All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: RANK
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANK(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - h
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: UPDATE_HASH
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_HASH(s,h,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - str
    - ','
    - match_head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: INSERT_STRING
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_STRING(s, str, match_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - str
    - ','
    - match_head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: INSERT_STRING
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_STRING(s, str, match_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: CLEAR_HASH
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_HASH(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 210
    functionName: slide_hash
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local slide_hash(deflate_state *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:227,1
    - Dst: adler32
      Src: /src/zlib/deflate.c:229,1
    - Dst: crc32
      Src: /src/zlib/deflate.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - strm
    - buf
    - size
    argTypes:
    - z_streamp
    - Bytef*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 240
    functionName: read_buf
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - adler32
    - crc32
    - zmemcpy
    linkageType: ''
    returnType: local unsigned
    signature: local unsigned read_buf(z_streamp strm, Bytef *buf, unsigned size)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/zlib/deflate.c:257,1
    - Dst: MAX_DIST
      Src: /src/zlib/deflate.c:285,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:287,1
    - Dst: slide_hash
      Src: /src/zlib/deflate.c:293,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:309,1
    - Dst: read_buf
      Src: /src/zlib/deflate.c:311,1
    - Dst: UPDATE_HASH
      Src: /src/zlib/deflate.c:318,1
    - Dst: UPDATE_HASH
      Src: /src/zlib/deflate.c:323,1
    - Dst: zmemzero
      Src: /src/zlib/deflate.c:358,1
    - Dst: zmemzero
      Src: /src/zlib/deflate.c:369,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:374,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 376
    functionName: fill_window
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - MAX_DIST
    - zmemzero
    - read_buf
    - zmemcpy
    - UPDATE_HASH
    - slide_hash
    - Assert
    linkageType: ''
    returnType: local
    signature: local fill_window(deflate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deflateInit2_
      Src: /src/zlib/deflate.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - strm
    - level
    - version
    - stream_size
    argTypes:
    - z_streamp
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: deflateInit_
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateInit2_
    linkageType: ''
    returnType: int
    signature: "int deflateInit_(z_streamp strm, int level, const char *version,\n
      \                        int stream_size)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ZALLOC
      Src: /src/zlib/deflate.c:440,1
    - Dst: zmemzero
      Src: /src/zlib/deflate.c:442,1
    - Dst: ZALLOC
      Src: /src/zlib/deflate.c:458,1
    - Dst: ZALLOC
      Src: /src/zlib/deflate.c:459,1
    - Dst: ZALLOC
      Src: /src/zlib/deflate.c:460,1
    - Dst: ZALLOC
      Src: /src/zlib/deflate.c:505,1
    - Dst: ERR_MSG
      Src: /src/zlib/deflate.c:511,1
    - Dst: deflateEnd
      Src: /src/zlib/deflate.c:512,1
    - Dst: deflateReset
      Src: /src/zlib/deflate.c:532,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 8
    argNames:
    - strm
    - level
    - method
    - windowBits
    - memLevel
    - strategy
    - version
    - stream_size
    argTypes:
    - z_streamp
    - int
    - int
    - int
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 533
    functionName: deflateInit2_
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 1
    functionsReached:
    - ERR_MSG
    - zmemzero
    - ZALLOC
    - deflateEnd
    - deflateReset
    linkageType: ''
    returnType: int
    signature: "int deflateInit2_(z_streamp strm, int level, int method,\n                          int
      windowBits, int memLevel, int strategy,\n                          const char
      *version, int stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 556
    functionName: deflateStateCheck
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local deflateStateCheck(z_streamp strm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:567,1
    - Dst: adler32
      Src: /src/zlib/deflate.c:576,1
    - Dst: CLEAR_HASH
      Src: /src/zlib/deflate.c:582,1
    - Dst: fill_window
      Src: /src/zlib/deflate.c:596,1
    - Dst: UPDATE_HASH
      Src: /src/zlib/deflate.c:601,1
    - Dst: fill_window
      Src: /src/zlib/deflate.c:610,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - strm
    - dictionary
    - dictLength
    argTypes:
    - z_streamp
    - Bytef*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 622
    functionName: deflateSetDictionary
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    - fill_window
    - adler32
    - CLEAR_HASH
    - UPDATE_HASH
    linkageType: ''
    returnType: int
    signature: "int deflateSetDictionary(z_streamp strm, const Bytef *dictionary,\n
      \                                uInt  dictLength)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:630,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:637,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - strm
    - dictionary
    - dictLength
    argTypes:
    - z_streamp
    - Bytef*
    - uInt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 641
    functionName: deflateGetDictionary
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    - zmemcpy
    linkageType: ''
    returnType: int
    signature: "int deflateGetDictionary(z_streamp strm, Bytef *dictionary,\n                                 uInt
      *dictLength)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_HASH
      Src: /src/zlib/deflate.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 701
    functionName: lm_init
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - CLEAR_HASH
    linkageType: ''
    returnType: local
    signature: local lm_init(deflate_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflateResetKeep
      Src: /src/zlib/deflate.c:707,1
    - Dst: lm_init
      Src: /src/zlib/deflate.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 711
    functionName: deflateReset
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 1
    functionsReached:
    - lm_init
    - deflateResetKeep
    linkageType: ''
    returnType: int
    signature: int deflateReset(z_streamp strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - strm
    - head
    argTypes:
    - z_streamp
    - gz_headerp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 719
    functionName: deflateSetHeader
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: int deflateSetHeader(z_streamp strm, gz_headerp head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - strm
    - pending
    - bits
    argTypes:
    - z_streamp
    - unsigned*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 734
    functionName: deflatePending
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: int deflatePending(z_streamp strm, unsigned *pending, int *bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - strm
    - bits
    argTypes:
    - z_streamp
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 742
    functionName: deflateUsed
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: int deflateUsed(z_streamp strm, int *bits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:749,1
    - Dst: _tr_flush_bits
      Src: /src/zlib/deflate.c:766,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - strm
    - bits
    - value
    argTypes:
    - z_streamp
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 771
    functionName: deflatePrime
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - _tr_flush_bits
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: int deflatePrime(z_streamp strm, int bits, int value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:778,1
    - Dst: deflate
      Src: /src/zlib/deflate.c:794,1
    - Dst: slide_hash
      Src: /src/zlib/deflate.c:803,1
    - Dst: CLEAR_HASH
      Src: /src/zlib/deflate.c:805,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - strm
    - level
    - strategy
    argTypes:
    - z_streamp
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 816
    functionName: deflateParams
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    - CLEAR_HASH
    - slide_hash
    - deflate
    linkageType: ''
    returnType: int
    signature: int deflateParams(z_streamp strm, int level, int strategy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - strm
    - good_length
    - max_lazy
    - nice_length
    - max_chain
    argTypes:
    - z_streamp
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 830
    functionName: deflateTune
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: "int deflateTune(z_streamp strm, int good_length, int max_lazy,\n                        int
      nice_length, int max_chain)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:876,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - strm
    - sourceLen
    argTypes:
    - z_streamp
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 928
    functionName: deflateBound_z
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    linkageType: ''
    returnType: z_size_t
    signature: z_size_t deflateBound_z(z_streamp strm, z_size_t sourceLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deflateBound_z
      Src: /src/zlib/deflate.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - strm
    - sourceLen
    argTypes:
    - z_streamp
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 929
    functionDepth: 2
    functionLinenumber: 929
    functionLinenumberEnd: 932
    functionName: deflateBound
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateBound_z
    linkageType: ''
    returnType: uLong
    signature: uLong deflateBound(z_streamp strm, uLong sourceLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_byte
      Src: /src/zlib/deflate.c:940,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - deflate_state*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 942
    functionName: putShortMSB
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - put_byte
    linkageType: ''
    returnType: local
    signature: local putShortMSB(deflate_state *s, uInt b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _tr_flush_bits
      Src: /src/zlib/deflate.c:954,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 968
    functionName: flush_pending
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - _tr_flush_bits
    - zmemcpy
    linkageType: ''
    returnType: local
    signature: local flush_pending(z_streamp strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - beg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 979
    functionName: HCRC_UPDATE
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCRC_UPDATE(beg)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:985,1
    - Dst: ERR_RETURN
      Src: /src/zlib/deflate.c:993,1
    - Dst: ERR_RETURN
      Src: /src/zlib/deflate.c:995,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1002,1
    - Dst: RANK
      Src: /src/zlib/deflate.c:1018,1
    - Dst: RANK
      Src: /src/zlib/deflate.c:1018,1
    - Dst: ERR_RETURN
      Src: /src/zlib/deflate.c:1020,1
    - Dst: ERR_RETURN
      Src: /src/zlib/deflate.c:1025,1
    - Dst: putShortMSB
      Src: /src/zlib/deflate.c:1048,1
    - Dst: putShortMSB
      Src: /src/zlib/deflate.c:1052,1
    - Dst: putShortMSB
      Src: /src/zlib/deflate.c:1053,1
    - Dst: adler32
      Src: /src/zlib/deflate.c:1055,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1059,1
    - Dst: crc32
      Src: /src/zlib/deflate.c:1068,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1069,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1070,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1071,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1073,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1074,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1075,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1076,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1077,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1078,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1081,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1085,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1092,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1098,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1099,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1100,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1101,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1102,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1105,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1107,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1108,1
    - Dst: crc32_z
      Src: /src/zlib/deflate.c:1111,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1123,1
    - Dst: HCRC_UPDATE
      Src: /src/zlib/deflate.c:1126,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1128,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1136,1
    - Dst: HCRC_UPDATE
      Src: /src/zlib/deflate.c:1139,1
    - Dst: HCRC_UPDATE
      Src: /src/zlib/deflate.c:1150,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1151,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1159,1
    - Dst: HCRC_UPDATE
      Src: /src/zlib/deflate.c:1161,1
    - Dst: HCRC_UPDATE
      Src: /src/zlib/deflate.c:1172,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1173,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1181,1
    - Dst: HCRC_UPDATE
      Src: /src/zlib/deflate.c:1183,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1190,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1196,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1197,1
    - Dst: crc32
      Src: /src/zlib/deflate.c:1198,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1203,1
    - Dst: deflate_stored
      Src: /src/zlib/deflate.c:1217,1
    - Dst: deflate_huff
      Src: /src/zlib/deflate.c:1218,1
    - Dst: deflate_rle
      Src: /src/zlib/deflate.c:1219,1
    - Dst: _tr_align
      Src: /src/zlib/deflate.c:1240,1
    - Dst: _tr_stored_block
      Src: /src/zlib/deflate.c:1242,1
    - Dst: CLEAR_HASH
      Src: /src/zlib/deflate.c:1247,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1255,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1269,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1270,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1271,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1272,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1273,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1274,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1275,1
    - Dst: put_byte
      Src: /src/zlib/deflate.c:1276,1
    - Dst: putShortMSB
      Src: /src/zlib/deflate.c:1281,1
    - Dst: putShortMSB
      Src: /src/zlib/deflate.c:1282,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1284,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 224
    argCount: 2
    argNames:
    - strm
    - flush
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 1290
    functionName: deflate
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 1
    functionsReached:
    - deflate_stored
    - deflate_rle
    - RANK
    - deflateStateCheck
    - putShortMSB
    - deflate_huff
    - put_byte
    - ERR_RETURN
    - adler32
    - zmemcpy
    - crc32_z
    - CLEAR_HASH
    - crc32
    - _tr_stored_block
    - HCRC_UPDATE
    - _tr_align
    - flush_pending
    linkageType: ''
    returnType: int
    signature: int deflate(z_streamp strm, int flush)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:1296,1
    - Dst: TRY_FREE
      Src: /src/zlib/deflate.c:1301,1
    - Dst: TRY_FREE
      Src: /src/zlib/deflate.c:1302,1
    - Dst: TRY_FREE
      Src: /src/zlib/deflate.c:1303,1
    - Dst: TRY_FREE
      Src: /src/zlib/deflate.c:1304,1
    - Dst: ZFREE
      Src: /src/zlib/deflate.c:1306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1310
    functionName: deflateEnd
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 1
    functionsReached:
    - TRY_FREE
    - deflateStateCheck
    - ZFREE
    linkageType: ''
    returnType: int
    signature: int deflateEnd(z_streamp strm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/zlib/deflate.c:1327,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1333,1
    - Dst: ZALLOC
      Src: /src/zlib/deflate.c:1335,1
    - Dst: zmemzero
      Src: /src/zlib/deflate.c:1337,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1339,1
    - Dst: ZALLOC
      Src: /src/zlib/deflate.c:1342,1
    - Dst: ZALLOC
      Src: /src/zlib/deflate.c:1343,1
    - Dst: ZALLOC
      Src: /src/zlib/deflate.c:1344,1
    - Dst: ZALLOC
      Src: /src/zlib/deflate.c:1345,1
    - Dst: deflateEnd
      Src: /src/zlib/deflate.c:1349,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1353,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1354,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1357,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1360,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1364,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1365,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1368,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - z_streamp
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1377
    functionName: deflateCopy
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    - zmemzero
    - ZALLOC
    - deflateEnd
    - zmemcpy
    linkageType: ''
    returnType: int
    signature: int deflateCopy(z_streamp dest, z_streamp source)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MAX_DIST
      Src: /src/zlib/deflate.c:1396,1
    - Dst: MAX_DIST
      Src: /src/zlib/deflate.c:1397,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1420,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1431,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1435,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1462,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1473,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1494,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1506,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 44
    argCount: 2
    argNames:
    - s
    - cur_match
    argTypes:
    - deflate_state*
    - IPos
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1530
    functionName: longest_match
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - MAX_DIST
    - Assert
    linkageType: ''
    returnType: local
    signature: local longest_match(deflate_state *s, IPos cur_match)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/zlib/deflate.c:1546,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1548,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1551,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1566,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:1578,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 2
    argNames:
    - s
    - cur_match
    argTypes:
    - deflate_state*
    - IPos
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1586
    functionName: longest_match
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - Assert
    linkageType: ''
    returnType: local
    signature: local longest_match(deflate_state *s, IPos cur_match)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: zmemcmp
      Src: /src/zlib/deflate.c:1609,1
    - Dst: fprintf
      Src: /src/zlib/deflate.c:1610,1
    - Dst: fprintf
      Src: /src/zlib/deflate.c:1613,1
    - Dst: z_error
      Src: /src/zlib/deflate.c:1615,1
    - Dst: fprintf
      Src: /src/zlib/deflate.c:1618,1
    - Dst: putc
      Src: /src/zlib/deflate.c:1619,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - s
    - start
    - match
    - length
    argTypes:
    - deflate_state*
    - IPos
    - IPos
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1621
    functionName: check_match
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - putc
    - zmemcmp
    - fprintf
    - z_error
    linkageType: ''
    returnType: local
    signature: local check_match(deflate_state *s, IPos start, IPos match, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1640
    functionName: FLUSH_BLOCK_ONLY
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLUSH_BLOCK_ONLY(s, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1646
    functionName: FLUSH_BLOCK
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLUSH_BLOCK(s, last)
  - 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: 1652
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1652
    functionName: MIN
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/zlib/deflate.c:1673,1
    - Dst: _tr_stored_block
      Src: /src/zlib/deflate.c:1713,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1722,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1734,1
    - Dst: read_buf
      Src: /src/zlib/deflate.c:1746,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1766,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1774,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1780,1
    - Dst: MIN
      Src: /src/zlib/deflate.c:1782,1
    - Dst: zmemcpy
      Src: /src/zlib/deflate.c:1806,1
    - Dst: read_buf
      Src: /src/zlib/deflate.c:1816,1
    - Dst: MIN
      Src: /src/zlib/deflate.c:1818,1
    - Dst: MIN
      Src: /src/zlib/deflate.c:1830,1
    - Dst: MIN
      Src: /src/zlib/deflate.c:1831,1
    - Dst: MIN
      Src: /src/zlib/deflate.c:1836,1
    - Dst: _tr_stored_block
      Src: /src/zlib/deflate.c:1839,1
    - Dst: flush_pending
      Src: /src/zlib/deflate.c:1841,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 104
    argCount: 2
    argNames:
    - s
    - flush
    argTypes:
    - deflate_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1668
    functionDepth: 1
    functionLinenumber: 1668
    functionLinenumberEnd: 1848
    functionName: block_state::deflate_stored
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - read_buf
    - zmemcpy
    - _tr_stored_block
    - flush_pending
    - MIN
    linkageType: ''
    returnType: local
    signature: local block_state deflate_stored(deflate_state *s, int flush)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fill_window
      Src: /src/zlib/deflate.c:1868,1
    - Dst: INSERT_STRING
      Src: /src/zlib/deflate.c:1880,1
    - Dst: MAX_DIST
      Src: /src/zlib/deflate.c:1886,1
    - Dst: longest_match
      Src: /src/zlib/deflate.c:1891,1
    - Dst: check_match
      Src: /src/zlib/deflate.c:1895,1
    - Dst: _tr_tally_dist
      Src: /src/zlib/deflate.c:1897,1
    - Dst: INSERT_STRING
      Src: /src/zlib/deflate.c:1911,1
    - Dst: UPDATE_HASH
      Src: /src/zlib/deflate.c:1923,1
    - Dst: Tracevv
      Src: /src/zlib/deflate.c:1933,1
    - Dst: _tr_tally_lit
      Src: /src/zlib/deflate.c:1934,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:1938,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:1942,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:1946,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - s
    - flush
    argTypes:
    - deflate_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1857
    functionDepth: 2
    functionLinenumber: 1857
    functionLinenumberEnd: 1948
    functionName: block_state::deflate_fast
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - FLUSH_BLOCK
    - MAX_DIST
    - longest_match
    - INSERT_STRING
    - fill_window
    - check_match
    - _tr_tally_lit
    - UPDATE_HASH
    - Tracevv
    - _tr_tally_dist
    linkageType: ''
    returnType: local
    signature: local block_state deflate_fast(deflate_state *s, int flush)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fill_window
      Src: /src/zlib/deflate.c:1968,1
    - Dst: INSERT_STRING
      Src: /src/zlib/deflate.c:1980,1
    - Dst: MAX_DIST
      Src: /src/zlib/deflate.c:1989,1
    - Dst: longest_match
      Src: /src/zlib/deflate.c:1994,1
    - Dst: check_match
      Src: /src/zlib/deflate.c:2017,1
    - Dst: _tr_tally_dist
      Src: /src/zlib/deflate.c:2019,1
    - Dst: INSERT_STRING
      Src: /src/zlib/deflate.c:2031,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:2038,1
    - Dst: Tracevv
      Src: /src/zlib/deflate.c:2045,1
    - Dst: _tr_tally_lit
      Src: /src/zlib/deflate.c:2046,1
    - Dst: FLUSH_BLOCK_ONLY
      Src: /src/zlib/deflate.c:2048,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:2062,1
    - Dst: Tracevv
      Src: /src/zlib/deflate.c:2064,1
    - Dst: _tr_tally_lit
      Src: /src/zlib/deflate.c:2065,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:2070,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:2074,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 2
    argNames:
    - s
    - flush
    argTypes:
    - deflate_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 1956
    functionDepth: 2
    functionLinenumber: 1956
    functionLinenumberEnd: 2076
    functionName: block_state::deflate_slow
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - FLUSH_BLOCK
    - MAX_DIST
    - longest_match
    - INSERT_STRING
    - FLUSH_BLOCK_ONLY
    - fill_window
    - check_match
    - _tr_tally_lit
    - Tracevv
    - Assert
    - _tr_tally_dist
    linkageType: ''
    returnType: local
    signature: local block_state deflate_slow(deflate_state *s, int flush)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fill_window
      Src: /src/zlib/deflate.c:2095,1
    - Dst: Assert
      Src: /src/zlib/deflate.c:2119,1
    - Dst: check_match
      Src: /src/zlib/deflate.c:2125,1
    - Dst: _tr_tally_dist
      Src: /src/zlib/deflate.c:2127,1
    - Dst: Tracevv
      Src: /src/zlib/deflate.c:2134,1
    - Dst: _tr_tally_lit
      Src: /src/zlib/deflate.c:2135,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:2139,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:2143,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:2147,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 47
    argCount: 2
    argNames:
    - s
    - flush
    argTypes:
    - deflate_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2084
    functionDepth: 2
    functionLinenumber: 2084
    functionLinenumberEnd: 2149
    functionName: block_state::deflate_rle
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - FLUSH_BLOCK
    - fill_window
    - check_match
    - _tr_tally_lit
    - Tracevv
    - Assert
    - _tr_tally_dist
    linkageType: ''
    returnType: local
    signature: local block_state deflate_rle(deflate_state *s, int flush)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fill_window
      Src: /src/zlib/deflate.c:2161,1
    - Dst: Tracevv
      Src: /src/zlib/deflate.c:2171,1
    - Dst: _tr_tally_lit
      Src: /src/zlib/deflate.c:2172,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:2175,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:2179,1
    - Dst: FLUSH_BLOCK
      Src: /src/zlib/deflate.c:2183,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - s
    - flush
    argTypes:
    - deflate_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2155
    functionDepth: 2
    functionLinenumber: 2155
    functionLinenumberEnd: 2185
    functionName: block_state::deflate_huff
    functionSourceFile: /src/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - _tr_tally_lit
    - FLUSH_BLOCK
    - fill_window
    - Tracevv
    linkageType: ''
    returnType: local
    signature: local block_state deflate_huff(deflate_state *s, int flush)
  - 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: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: put_byte
    functionSourceFile: /src/zlib/deflate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_byte(s, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: MAX_DIST
    functionSourceFile: /src/zlib/deflate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_DIST(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dist
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: d_code
    functionSourceFile: /src/zlib/deflate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d_code(dist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 346
    functionName: _tr_tally_lit
    functionSourceFile: /src/zlib/deflate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_lit(s, c, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - distance
    - ','
    - length
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: _tr_tally_dist
    functionSourceFile: /src/zlib/deflate.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_dist(s, distance, length, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: _tr_tally_lit
    functionSourceFile: /src/zlib/deflate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_lit(s, c, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - distance
    - ','
    - length
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 376
    functionName: _tr_tally_dist
    functionSourceFile: /src/zlib/deflate.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_dist(s, distance, length, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: _tr_tally_lit
    functionSourceFile: /src/zlib/deflate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_lit(s, c, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - distance
    - ','
    - length
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: _tr_tally_dist
    functionSourceFile: /src/zlib/deflate.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_dist(s, distance, length, flush)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZALLOC
      Src: /src/zlib/infback.c:51,1
    - Dst: Tracev
      Src: /src/zlib/infback.c:54,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - strm
    - windowBits
    - window
    - version
    - stream_size
    argTypes:
    - z_streamp
    - int
    - unsigned char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 64
    functionName: inflateBackInit_
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached:
    - ZALLOC
    - Tracev
    linkageType: ''
    returnType: int
    signature: "int inflateBackInit_(z_streamp strm, int windowBits,\n                             unsigned
      char FAR *window, const char *version,\n                             int stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: LOAD
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: RESTORE
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESTORE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: INITBITS
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITBITS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: PULL
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: PULLBYTE
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULLBYTE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: NEEDBITS
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDBITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: BITS
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: DROPBITS
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DROPBITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: BYTEBITS
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTEBITS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: ROOM
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROOM()
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: BYTEBITS
      Src: /src/zlib/infback.c:231,1
    - Dst: NEEDBITS
      Src: /src/zlib/infback.c:235,1
    - Dst: BITS
      Src: /src/zlib/infback.c:236,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:237,1
    - Dst: BITS
      Src: /src/zlib/infback.c:238,1
    - Dst: Tracev
      Src: /src/zlib/infback.c:240,1
    - Dst: inflate_fixed
      Src: /src/zlib/infback.c:245,1
    - Dst: Tracev
      Src: /src/zlib/infback.c:246,1
    - Dst: Tracev
      Src: /src/zlib/infback.c:251,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:259,1
    - Dst: BYTEBITS
      Src: /src/zlib/infback.c:264,1
    - Dst: NEEDBITS
      Src: /src/zlib/infback.c:265,1
    - Dst: Tracev
      Src: /src/zlib/infback.c:272,1
    - Dst: INITBITS
      Src: /src/zlib/infback.c:274,1
    - Dst: PULL
      Src: /src/zlib/infback.c:279,1
    - Dst: ROOM
      Src: /src/zlib/infback.c:280,1
    - Dst: zmemcpy
      Src: /src/zlib/infback.c:283,1
    - Dst: Tracev
      Src: /src/zlib/infback.c:290,1
    - Dst: NEEDBITS
      Src: /src/zlib/infback.c:296,1
    - Dst: BITS
      Src: /src/zlib/infback.c:297,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:298,1
    - Dst: BITS
      Src: /src/zlib/infback.c:299,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:300,1
    - Dst: BITS
      Src: /src/zlib/infback.c:301,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:302,1
    - Dst: Tracev
      Src: /src/zlib/infback.c:311,1
    - Dst: NEEDBITS
      Src: /src/zlib/infback.c:316,1
    - Dst: BITS
      Src: /src/zlib/infback.c:317,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:318,1
    - Dst: inflate_table
      Src: /src/zlib/infback.c:325,1
    - Dst: Tracev
      Src: /src/zlib/infback.c:332,1
    - Dst: BITS
      Src: /src/zlib/infback.c:338,1
    - Dst: PULLBYTE
      Src: /src/zlib/infback.c:340,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:343,1
    - Dst: NEEDBITS
      Src: /src/zlib/infback.c:348,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:349,1
    - Dst: BITS
      Src: /src/zlib/infback.c:357,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:358,1
    - Dst: NEEDBITS
      Src: /src/zlib/infback.c:361,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:362,1
    - Dst: BITS
      Src: /src/zlib/infback.c:364,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:365,1
    - Dst: NEEDBITS
      Src: /src/zlib/infback.c:368,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:369,1
    - Dst: BITS
      Src: /src/zlib/infback.c:371,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:372,1
    - Dst: inflate_table
      Src: /src/zlib/infback.c:402,1
    - Dst: inflate_table
      Src: /src/zlib/infback.c:411,1
    - Dst: Tracev
      Src: /src/zlib/infback.c:418,1
    - Dst: RESTORE
      Src: /src/zlib/infback.c:425,1
    - Dst: inflate_fast
      Src: /src/zlib/infback.c:426,1
    - Dst: LOAD
      Src: /src/zlib/infback.c:427,1
    - Dst: BITS
      Src: /src/zlib/infback.c:433,1
    - Dst: PULLBYTE
      Src: /src/zlib/infback.c:435,1
    - Dst: BITS
      Src: /src/zlib/infback.c:441,1
    - Dst: PULLBYTE
      Src: /src/zlib/infback.c:443,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:445,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:447,1
    - Dst: Tracevv
      Src: /src/zlib/infback.c:452,1
    - Dst: ROOM
      Src: /src/zlib/infback.c:455,1
    - Dst: Tracevv
      Src: /src/zlib/infback.c:464,1
    - Dst: NEEDBITS
      Src: /src/zlib/infback.c:479,1
    - Dst: BITS
      Src: /src/zlib/infback.c:480,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:481,1
    - Dst: Tracevv
      Src: /src/zlib/infback.c:483,1
    - Dst: BITS
      Src: /src/zlib/infback.c:487,1
    - Dst: PULLBYTE
      Src: /src/zlib/infback.c:489,1
    - Dst: BITS
      Src: /src/zlib/infback.c:495,1
    - Dst: PULLBYTE
      Src: /src/zlib/infback.c:497,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:499,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:501,1
    - Dst: NEEDBITS
      Src: /src/zlib/infback.c:512,1
    - Dst: BITS
      Src: /src/zlib/infback.c:513,1
    - Dst: DROPBITS
      Src: /src/zlib/infback.c:514,1
    - Dst: Tracevv
      Src: /src/zlib/infback.c:522,1
    - Dst: ROOM
      Src: /src/zlib/infback.c:526,1
    - Dst: out
      Src: /src/zlib/infback.c:563,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 304
    argCount: 5
    argNames:
    - strm
    - in
    - in_desc
    - out
    - out_desc
    argTypes:
    - z_streamp
    - in_func
    - void*
    - out_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 570
    functionName: inflateBack
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached:
    - inflate_fast
    - BYTEBITS
    - RESTORE
    - INITBITS
    - DROPBITS
    - inflate_table
    - inflate_fixed
    - LOAD
    - ROOM
    - zmemcpy
    - Tracev
    - PULLBYTE
    - Tracevv
    - BITS
    - out
    - NEEDBITS
    - PULL
    linkageType: ''
    returnType: int
    signature: "int inflateBack(z_streamp strm, in_func in, void FAR *in_desc,\n                        out_func
      out, void FAR *out_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZFREE
      Src: /src/zlib/infback.c:575,1
    - Dst: Tracev
      Src: /src/zlib/infback.c:577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 579
    functionName: inflateBackEnd
    functionSourceFile: /src/zlib/infback.c
    functionUses: 0
    functionsReached:
    - Tracev
    - ZFREE
    linkageType: ''
    returnType: int
    signature: int inflateBackEnd(z_streamp strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: zlibVersion
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ZEXPORT zlibVersion(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 121
    functionName: zlibCompileFlags
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uLong
    signature: uLong zlibCompileFlags(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/zutil.c:131,1
    - Dst: exit
      Src: /src/zlib/zutil.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: ZLIB_INTERNAL::z_error
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL z_error(char *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_MSG
      Src: /src/zlib/zutil.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: zError
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - ERR_MSG
    linkageType: ''
    returnType: char
    signature: char * ZEXPORT zError(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - src
    - n
    argTypes:
    - void*
    - void*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: ZLIB_INTERNAL::zmemcpy
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL zmemcpy(void FAR *dst, const void FAR *src, z_size_t
      n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: ZLIB_INTERNAL::zmemcmp
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZLIB_INTERNAL zmemcmp(const void FAR *s1, const void FAR *s2, z_size_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - void*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: ZLIB_INTERNAL::zmemzero
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL zmemzero(void FAR *b, z_size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: farmalloc
      Src: /src/zlib/zutil.c:225,1
    - Dst: farmalloc
      Src: /src/zlib/zutil.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - voidpf
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 238
    functionName: ZLIB_INTERNAL::zcalloc
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - farmalloc
    linkageType: ''
    returnType: voidpf
    signature: voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned
      size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: farfree
      Src: /src/zlib/zutil.c:246,1
    - Dst: farfree
      Src: /src/zlib/zutil.c:253,1
    - Dst: Assert
      Src: /src/zlib/zutil.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: ZLIB_INTERNAL::zcfree
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - Assert
    - farfree
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _halloc
      Src: /src/zlib/zutil.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - voidpf
    - uInt
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: ZLIB_INTERNAL::zcalloc
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - _halloc
    linkageType: ''
    returnType: voidpf
    signature: voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, uInt items, uInt size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hfree
      Src: /src/zlib/zutil.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: ZLIB_INTERNAL::zcfree
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - _hfree
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/zutil.c:301,1
    - Dst: calloc
      Src: /src/zlib/zutil.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - voidpf
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: ZLIB_INTERNAL::zcalloc
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - malloc
    - calloc
    linkageType: ''
    returnType: voidpf
    signature: voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/zutil.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: ZLIB_INTERNAL::zcfree
    functionSourceFile: /src/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/zlib/gzlib.c:33,1
    - Dst: FormatMessage
      Src: /src/zlib/gzlib.c:34,1
    - Dst: wcstombs
      Src: /src/zlib/gzlib.c:55,1
    - Dst: LocalFree
      Src: /src/zlib/gzlib.c:56,1
    - Dst: sprintf
      Src: /src/zlib/gzlib.c:59,1
    - Dst: SetLastError
      Src: /src/zlib/gzlib.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 64
    functionName: ZLIB_INTERNAL *gz_strwinerror(DWORD error)
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - FormatMessage
    - GetLastError
    - sprintf
    - wcstombs
    - SetLastError
    - LocalFree
    linkageType: ''
    returnType: char
    signature: char ZLIB_INTERNAL *gz_strwinerror(DWORD error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzlib.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: gz_reset
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_error
    linkageType: ''
    returnType: local
    signature: local gz_reset(gz_statep state)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/gzlib.c:100,1
    - Dst: free
      Src: /src/zlib/gzlib.c:130,1
    - Dst: free
      Src: /src/zlib/gzlib.c:175,1
    - Dst: free
      Src: /src/zlib/gzlib.c:183,1
    - Dst: free
      Src: /src/zlib/gzlib.c:193,1
    - Dst: wcstombs
      Src: /src/zlib/gzlib.c:202,1
    - Dst: strlen
      Src: /src/zlib/gzlib.c:205,1
    - Dst: malloc
      Src: /src/zlib/gzlib.c:206,1
    - Dst: free
      Src: /src/zlib/gzlib.c:208,1
    - Dst: wcstombs
      Src: /src/zlib/gzlib.c:214,1
    - Dst: snprintf
      Src: /src/zlib/gzlib.c:222,1
    - Dst: strcpy
      Src: /src/zlib/gzlib.c:224,1
    - Dst: O_EXCL
      Src: /src/zlib/gzlib.c:239,1
    - Dst: open
      Src: /src/zlib/gzlib.c:248,1
    - Dst: _wopen
      Src: /src/zlib/gzlib.c:251,1
    - Dst: fcntl
      Src: /src/zlib/gzlib.c:256,1
    - Dst: fcntl
      Src: /src/zlib/gzlib.c:256,1
    - Dst: fcntl
      Src: /src/zlib/gzlib.c:260,1
    - Dst: fcntl
      Src: /src/zlib/gzlib.c:260,1
    - Dst: free
      Src: /src/zlib/gzlib.c:265,1
    - Dst: free
      Src: /src/zlib/gzlib.c:266,1
    - Dst: LSEEK
      Src: /src/zlib/gzlib.c:270,1
    - Dst: LSEEK
      Src: /src/zlib/gzlib.c:276,1
    - Dst: gz_reset
      Src: /src/zlib/gzlib.c:281,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 121
    argCount: 3
    argNames:
    - path
    - fd
    - mode
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 285
    functionName: gz_open
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_reset
    - snprintf
    - strcpy
    - open
    - fcntl
    - LSEEK
    - wcstombs
    - O_EXCL
    - strlen
    - free
    - malloc
    - _wopen
    linkageType: ''
    returnType: local
    signature: local gz_open(const void *path, int fd, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gz_open
      Src: /src/zlib/gzlib.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: gzopen
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_open
    linkageType: ''
    returnType: gzFile
    signature: gzFile gzopen(const char *path, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gz_open
      Src: /src/zlib/gzlib.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: gzopen64
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_open
    linkageType: ''
    returnType: gzFile
    signature: gzFile gzopen64(const char *path, const char *mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/gzlib.c:302,1
    - Dst: snprintf
      Src: /src/zlib/gzlib.c:305,1
    - Dst: sprintf
      Src: /src/zlib/gzlib.c:307,1
    - Dst: gz_open
      Src: /src/zlib/gzlib.c:309,1
    - Dst: free
      Src: /src/zlib/gzlib.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 312
    functionName: gzdopen
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - snprintf
    - gz_open
    - sprintf
    - free
    - malloc
    linkageType: ''
    returnType: gzFile
    signature: gzFile gzdopen(int fd, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gz_open
      Src: /src/zlib/gzlib.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - wchar_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: gzopen_w
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_open
    linkageType: ''
    returnType: gzFile
    signature: gzFile gzopen_w(const wchar_t *path, const char *mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - file
    - size
    argTypes:
    - gzFile
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 343
    functionName: gzbuffer
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gzbuffer(gzFile file, unsigned size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LSEEK
      Src: /src/zlib/gzlib.c:360,1
    - Dst: gz_reset
      Src: /src/zlib/gzlib.c:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 364
    functionName: gzrewind
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_reset
    - LSEEK
    linkageType: ''
    returnType: int
    signature: int gzrewind(gzFile file)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: LSEEK
      Src: /src/zlib/gzlib.c:398,1
    - Dst: gz_error
      Src: /src/zlib/gzlib.c:405,1
    - Dst: gzrewind
      Src: /src/zlib/gzlib.c:418,1
    - Dst: GT_OFF
      Src: /src/zlib/gzlib.c:424,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - file
    - offset
    - whence
    argTypes:
    - gzFile
    - z_off64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 435
    functionName: gzseek64
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gzrewind
    - LSEEK
    - gz_error
    - GT_OFF
    linkageType: ''
    returnType: z_off64_t
    signature: z_off64_t gzseek64(gzFile file, z_off64_t offset, int whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzseek64
      Src: /src/zlib/gzlib.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - offset
    - whence
    argTypes:
    - gzFile
    - z_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: gzseek
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gzseek64
    linkageType: ''
    returnType: z_off_t
    signature: z_off_t gzseek(gzFile file, z_off_t offset, int whence)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 458
    functionName: gztell64
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: z_off64_t
    signature: z_off64_t gztell64(gzFile file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gztell64
      Src: /src/zlib/gzlib.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: gztell
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gztell64
    linkageType: ''
    returnType: z_off_t
    signature: z_off_t gztell(gzFile file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LSEEK
      Src: /src/zlib/gzlib.c:481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 487
    functionName: gzoffset64
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - LSEEK
    linkageType: ''
    returnType: z_off64_t
    signature: z_off64_t gzoffset64(gzFile file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzoffset64
      Src: /src/zlib/gzlib.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: gzoffset
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gzoffset64
    linkageType: ''
    returnType: z_off_t
    signature: z_off_t gzoffset(gzFile file)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 510
    functionName: gzeof
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gzeof(gzFile file)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - file
    - errnum
    argTypes:
    - gzFile
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 528
    functionName: gzerror
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ZEXPORT gzerror(gzFile file, int *errnum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzlib.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 547
    functionName: gzclearerr
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_error
    linkageType: ''
    returnType: void
    signature: void gzclearerr(gzFile file)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/gzlib.c:559,1
    - Dst: malloc
      Src: /src/zlib/gzlib.c:577,1
    - Dst: strlen
      Src: /src/zlib/gzlib.c:577,1
    - Dst: strlen
      Src: /src/zlib/gzlib.c:577,1
    - Dst: snprintf
      Src: /src/zlib/gzlib.c:583,1
    - Dst: strlen
      Src: /src/zlib/gzlib.c:583,1
    - Dst: strlen
      Src: /src/zlib/gzlib.c:583,1
    - Dst: strcpy
      Src: /src/zlib/gzlib.c:586,1
    - Dst: strcat
      Src: /src/zlib/gzlib.c:587,1
    - Dst: strcat
      Src: /src/zlib/gzlib.c:588,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - state
    - err
    - msg
    argTypes:
    - gz_statep
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 590
    functionName: ZLIB_INTERNAL::gz_error
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strcpy
    - strcat
    - strlen
    - free
    - malloc
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL gz_error(gz_statep state, int err, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 609
    functionName: gz_intmax
    functionSourceFile: /src/zlib/gzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned ZLIB_INTERNAL
    signature: unsigned ZLIB_INTERNAL gz_intmax(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deflateInit
      Src: /src/zlib/compress.c:42,1
    - Dst: deflate
      Src: /src/zlib/compress.c:60,1
    - Dst: deflateEnd
      Src: /src/zlib/compress.c:64,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    - level
    argTypes:
    - Bytef*
    - z_size_t*
    - Bytef*
    - z_size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 66
    functionName: compress2_z
    functionSourceFile: /src/zlib/compress.c
    functionUses: 0
    functionsReached:
    - deflateEnd
    - deflateInit
    - deflate
    linkageType: ''
    returnType: int
    signature: "int compress2_z(Bytef *dest, z_size_t *destLen, const Bytef *source,\n
      \                       z_size_t sourceLen, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compress2_z
      Src: /src/zlib/compress.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    - level
    argTypes:
    - Bytef*
    - uLongf*
    - Bytef*
    - uLong
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: compress2
    functionSourceFile: /src/zlib/compress.c
    functionUses: 0
    functionsReached:
    - compress2_z
    linkageType: ''
    returnType: int
    signature: "int compress2(Bytef *dest, uLongf *destLen, const Bytef *source,\n
      \                     uLong sourceLen, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compress2_z
      Src: /src/zlib/compress.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    argTypes:
    - Bytef*
    - z_size_t*
    - Bytef*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: compress_z
    functionSourceFile: /src/zlib/compress.c
    functionUses: 0
    functionsReached:
    - compress2_z
    linkageType: ''
    returnType: int
    signature: "int compress_z(Bytef *dest, z_size_t *destLen, const Bytef *source,\n
      \                      z_size_t sourceLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compress2
      Src: /src/zlib/compress.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    argTypes:
    - Bytef*
    - uLongf*
    - Bytef*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: compress
    functionSourceFile: /src/zlib/compress.c
    functionUses: 0
    functionsReached:
    - compress2
    linkageType: ''
    returnType: int
    signature: "int compress(Bytef *dest, uLongf *destLen, const Bytef *source,\n
      \                    uLong sourceLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sourceLen
    argTypes:
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: compressBound_z
    functionSourceFile: /src/zlib/compress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: z_size_t
    signature: z_size_t compressBound_z(z_size_t sourceLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compressBound_z
      Src: /src/zlib/compress.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sourceLen
    argTypes:
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: compressBound
    functionSourceFile: /src/zlib/compress.c
    functionUses: 0
    functionsReached:
    - compressBound_z
    linkageType: ''
    returnType: uLong
    signature: uLong compressBound(uLong sourceLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: put_short
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_short(s, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - code
    - len
    argTypes:
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: bi_reverse
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local unsigned
    signature: local unsigned bi_reverse(unsigned code, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: put_short
      Src: /src/zlib/trees.c:168,1
    - Dst: put_byte
      Src: /src/zlib/trees.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: bi_flush
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - put_short
    - put_byte
    linkageType: ''
    returnType: local
    signature: local bi_flush(deflate_state *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: put_short
      Src: /src/zlib/trees.c:183,1
    - Dst: put_byte
      Src: /src/zlib/trees.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: bi_windup
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - put_short
    - put_byte
    linkageType: ''
    returnType: local
    signature: local bi_windup(deflate_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/zlib/trees.c:219,1
    - Dst: Tracev
      Src: /src/zlib/trees.c:221,1
    - Dst: bi_reverse
      Src: /src/zlib/trees.c:227,1
    - Dst: Tracecv
      Src: /src/zlib/trees.c:229,1
    - Dst: isgraph
      Src: /src/zlib/trees.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - tree
    - max_code
    - bl_count
    argTypes:
    - ct_data*
    - int
    - ushf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 232
    functionName: gen_codes
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - bi_reverse
    - Tracev
    - isgraph
    - Tracecv
    - Assert
    linkageType: ''
    returnType: local
    signature: local gen_codes(ct_data *tree, int max_code, ushf *bl_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - tree
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: send_code
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: send_code(s, c, tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - tree
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: send_code
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: send_code(s, c, tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tracevv
      Src: /src/zlib/trees.c:254,1
    - Dst: Assert
      Src: /src/zlib/trees.c:255,1
    - Dst: put_short
      Src: /src/zlib/trees.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - s
    - value
    - length
    argTypes:
    - deflate_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 271
    functionName: send_bits
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - Assert
    - put_short
    - Tracevv
    linkageType: ''
    returnType: local
    signature: local send_bits(deflate_state *s, int value, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - value
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 287
    functionName: send_bits
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: send_bits(s, value, length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/zlib/trees.c:325,1
    - Dst: Assert
      Src: /src/zlib/trees.c:340,1
    - Dst: Assert
      Src: /src/zlib/trees.c:348,1
    - Dst: gen_codes
      Src: /src/zlib/trees.c:361,1
    - Dst: bi_reverse
      Src: /src/zlib/trees.c:366,1
    - Dst: gen_trees_header
      Src: /src/zlib/trees.c:371,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 374
    functionName: tr_static_init
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - gen_trees_header
    - bi_reverse
    - Assert
    - gen_codes
    linkageType: ''
    returnType: local
    signature: local tr_static_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - last
    - ','
    - width
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: SEPARATOR
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEPARATOR(i, last, width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/zlib/trees.c:389,1
    - Dst: Assert
      Src: /src/zlib/trees.c:392,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:393,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:396,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:398,1
    - Dst: SEPARATOR
      Src: /src/zlib/trees.c:399,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:402,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:404,1
    - Dst: SEPARATOR
      Src: /src/zlib/trees.c:405,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:408,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:410,1
    - Dst: SEPARATOR
      Src: /src/zlib/trees.c:411,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:414,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:417,1
    - Dst: SEPARATOR
      Src: /src/zlib/trees.c:418,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:421,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:423,1
    - Dst: SEPARATOR
      Src: /src/zlib/trees.c:424,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:427,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:429,1
    - Dst: SEPARATOR
      Src: /src/zlib/trees.c:430,1
    - Dst: fclose
      Src: /src/zlib/trees.c:433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 434
    functionName: gen_trees_header
    functionSourceFile: /src/zlib/trees.c
    functionUses: 1
    functionsReached:
    - fclose
    - SEPARATOR
    - fopen
    - Assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: void gen_trees_header(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 451
    functionName: init_block
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local init_block(deflate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr_static_init
      Src: /src/zlib/trees.c:457,1
    - Dst: init_block
      Src: /src/zlib/trees.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 478
    functionName: ZLIB_INTERNAL::_tr_init
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - tr_static_init
    - init_block
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL _tr_init(deflate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - tree
    - ','
    - top
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 494
    functionName: pqremove
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pqremove(s, tree, top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tree
    - ','
    - n
    - ','
    - m
    - ','
    - depth
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: smaller
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smaller(tree, n, m, depth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smaller
      Src: /src/zlib/trees.c:515,1
    - Dst: smaller
      Src: /src/zlib/trees.c:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - s
    - tree
    - k
    argTypes:
    - deflate_state*
    - ct_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 528
    functionName: pqdownheap
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - smaller
    linkageType: ''
    returnType: local
    signature: local pqdownheap(deflate_state *s, ct_data *tree, int k)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Tracev
      Src: /src/zlib/trees.c:579,1
    - Dst: Tracev
      Src: /src/zlib/trees.c:606,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - s
    - desc
    argTypes:
    - deflate_state*
    - tree_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 613
    functionName: gen_bitlen
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - Tracev
    linkageType: ''
    returnType: local
    signature: local gen_bitlen(deflate_state *s, tree_desc *desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pqdownheap
      Src: /src/zlib/trees.c:667,1
    - Dst: pqremove
      Src: /src/zlib/trees.c:674,1
    - Dst: fprintf
      Src: /src/zlib/trees.c:687,1
    - Dst: pqdownheap
      Src: /src/zlib/trees.c:693,1
    - Dst: gen_bitlen
      Src: /src/zlib/trees.c:702,1
    - Dst: gen_codes
      Src: /src/zlib/trees.c:705,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - s
    - desc
    argTypes:
    - deflate_state*
    - tree_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 706
    functionName: build_tree
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - pqdownheap
    - pqremove
    - gen_bitlen
    - gen_codes
    - fprintf
    linkageType: ''
    returnType: local
    signature: local build_tree(deflate_state *s, tree_desc *desc)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - s
    - tree
    - max_code
    argTypes:
    - deflate_state*
    - ct_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 747
    functionName: scan_tree
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local scan_tree(deflate_state *s, ct_data *tree, int max_code)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: send_code
      Src: /src/zlib/trees.c:770,1
    - Dst: send_code
      Src: /src/zlib/trees.c:774,1
    - Dst: Assert
      Src: /src/zlib/trees.c:776,1
    - Dst: send_code
      Src: /src/zlib/trees.c:777,1
    - Dst: send_bits
      Src: /src/zlib/trees.c:777,1
    - Dst: send_code
      Src: /src/zlib/trees.c:780,1
    - Dst: send_bits
      Src: /src/zlib/trees.c:780,1
    - Dst: send_code
      Src: /src/zlib/trees.c:783,1
    - Dst: send_bits
      Src: /src/zlib/trees.c:783,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - s
    - tree
    - max_code
    argTypes:
    - deflate_state*
    - ct_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 794
    functionName: send_tree
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - send_code
    - Assert
    - send_bits
    linkageType: ''
    returnType: local
    signature: local send_tree(deflate_state *s, ct_data *tree, int max_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scan_tree
      Src: /src/zlib/trees.c:804,1
    - Dst: scan_tree
      Src: /src/zlib/trees.c:805,1
    - Dst: build_tree
      Src: /src/zlib/trees.c:808,1
    - Dst: Tracev
      Src: /src/zlib/trees.c:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 800
    functionDepth: 3
    functionLinenumber: 800
    functionLinenumberEnd: 826
    functionName: build_bl_tree
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - Tracev
    - build_tree
    - scan_tree
    linkageType: ''
    returnType: local
    signature: local build_bl_tree(deflate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/zlib/trees.c:837,1
    - Dst: Assert
      Src: /src/zlib/trees.c:838,1
    - Dst: Tracev
      Src: /src/zlib/trees.c:840,1
    - Dst: send_bits
      Src: /src/zlib/trees.c:841,1
    - Dst: send_bits
      Src: /src/zlib/trees.c:842,1
    - Dst: send_bits
      Src: /src/zlib/trees.c:843,1
    - Dst: Tracev
      Src: /src/zlib/trees.c:845,1
    - Dst: send_bits
      Src: /src/zlib/trees.c:846,1
    - Dst: Tracev
      Src: /src/zlib/trees.c:848,1
    - Dst: send_tree
      Src: /src/zlib/trees.c:850,1
    - Dst: Tracev
      Src: /src/zlib/trees.c:851,1
    - Dst: send_tree
      Src: /src/zlib/trees.c:853,1
    - Dst: Tracev
      Src: /src/zlib/trees.c:854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - s
    - lcodes
    - dcodes
    - blcodes
    argTypes:
    - deflate_state*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 855
    functionName: send_all_trees
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - send_bits
    - Tracev
    - send_tree
    - Assert
    linkageType: ''
    returnType: local
    signature: "local send_all_trees(deflate_state *s, int lcodes, int dcodes,\n                          int
      blcodes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send_bits
      Src: /src/zlib/trees.c:862,1
    - Dst: bi_windup
      Src: /src/zlib/trees.c:863,1
    - Dst: put_short
      Src: /src/zlib/trees.c:864,1
    - Dst: put_short
      Src: /src/zlib/trees.c:865,1
    - Dst: ZLIB_INTERNAL::zmemcpy
      Src: /src/zlib/trees.c:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - s
    - buf
    - stored_len
    - last
    argTypes:
    - deflate_state*
    - charf*
    - ulg
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 875
    functionName: ZLIB_INTERNAL::_tr_stored_block
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - send_bits
    - bi_windup
    - put_short
    - ZLIB_INTERNAL::zmemcpy
    linkageType: ''
    returnType: void
    signature: "void ZLIB_INTERNAL _tr_stored_block(deflate_state *s, charf *buf,\n
      \                                   ulg stored_len, int last)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bi_flush
      Src: /src/zlib/trees.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 882
    functionName: ZLIB_INTERNAL::_tr_flush_bits
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - bi_flush
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL _tr_flush_bits(deflate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_bits
      Src: /src/zlib/trees.c:889,1
    - Dst: send_code
      Src: /src/zlib/trees.c:890,1
    - Dst: bi_flush
      Src: /src/zlib/trees.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 895
    functionName: ZLIB_INTERNAL::_tr_align
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - send_bits
    - send_code
    - bi_flush
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL _tr_align(deflate_state *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: send_code
      Src: /src/zlib/trees.c:918,1
    - Dst: Tracecv
      Src: /src/zlib/trees.c:919,1
    - Dst: isgraph
      Src: /src/zlib/trees.c:919,1
    - Dst: send_code
      Src: /src/zlib/trees.c:923,1
    - Dst: send_bits
      Src: /src/zlib/trees.c:927,1
    - Dst: d_code
      Src: /src/zlib/trees.c:930,1
    - Dst: Assert
      Src: /src/zlib/trees.c:931,1
    - Dst: send_code
      Src: /src/zlib/trees.c:933,1
    - Dst: send_bits
      Src: /src/zlib/trees.c:937,1
    - Dst: Assert
      Src: /src/zlib/trees.c:943,1
    - Dst: Assert
      Src: /src/zlib/trees.c:945,1
    - Dst: send_code
      Src: /src/zlib/trees.c:950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - s
    - ltree
    - dtree
    argTypes:
    - deflate_state*
    - ct_data*
    - ct_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 951
    functionName: compress_block
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - send_code
    - send_bits
    - isgraph
    - Tracecv
    - Assert
    - d_code
    linkageType: ''
    returnType: local
    signature: "local compress_block(deflate_state *s, const ct_data *ltree,\n                          const
      ct_data *dtree)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 991
    functionName: detect_data_type
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local detect_data_type(deflate_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/zlib/trees.c:1111,1
    - Dst: MAX_DIST
      Src: /src/zlib/trees.c:1111,1
    - Dst: d_code
      Src: /src/zlib/trees.c:1113,1
    - Dst: d_code
      Src: /src/zlib/trees.c:1116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - s
    - dist
    - lc
    argTypes:
    - deflate_state*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1119
    functionName: ZLIB_INTERNAL::_tr_tally
    functionSourceFile: /src/zlib/trees.c
    functionUses: 0
    functionsReached:
    - MAX_DIST
    - Assert
    - d_code
    linkageType: ''
    returnType: int
    signature: int ZLIB_INTERNAL _tr_tally(deflate_state *s, unsigned dist, unsigned
      lc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1918
    functionDepth: 0
    functionLinenumber: 1918
    functionLinenumberEnd: 1920
    functionName: z_deflateInit
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_deflateInit(strm, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1920
    functionDepth: 0
    functionLinenumber: 1920
    functionLinenumberEnd: 1922
    functionName: z_inflateInit
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_inflateInit(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - strm
    - ','
    - level
    - ','
    - method
    - ','
    - windowBits
    - ','
    - memLevel
    - ','
    - strategy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1922
    functionDepth: 0
    functionLinenumber: 1922
    functionLinenumberEnd: 1925
    functionName: z_deflateInit2
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_deflateInit2(strm, level, method, windowBits, memLevel, strategy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1925
    functionDepth: 0
    functionLinenumber: 1925
    functionLinenumberEnd: 1928
    functionName: z_inflateInit2
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_inflateInit2(strm, windowBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - ','
    - window
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1931
    functionName: z_inflateBackInit
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_inflateBackInit(strm, windowBits, window)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1932
    functionDepth: 0
    functionLinenumber: 1932
    functionLinenumberEnd: 1934
    functionName: deflateInit
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateInit(strm, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1934
    functionDepth: 0
    functionLinenumber: 1934
    functionLinenumberEnd: 1936
    functionName: inflateInit
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateInit(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - strm
    - ','
    - level
    - ','
    - method
    - ','
    - windowBits
    - ','
    - memLevel
    - ','
    - strategy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1936
    functionDepth: 0
    functionLinenumber: 1936
    functionLinenumberEnd: 1939
    functionName: deflateInit2
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateInit2(strm, level, method, windowBits, memLevel, strategy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1939
    functionDepth: 0
    functionLinenumber: 1939
    functionLinenumberEnd: 1942
    functionName: inflateInit2
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateInit2(strm, windowBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - ','
    - window
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1942
    functionDepth: 0
    functionLinenumber: 1942
    functionLinenumberEnd: 1945
    functionName: inflateBackInit
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateBackInit(strm, windowBits, window)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1964
    functionDepth: 0
    functionLinenumber: 1964
    functionLinenumberEnd: 1966
    functionName: z_gzgetc
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_gzgetc(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1967
    functionDepth: 0
    functionLinenumber: 1967
    functionLinenumberEnd: 1969
    functionName: gzgetc
    functionSourceFile: /src/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gzgetc(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: OF
    functionSourceFile: /src/zlib/zconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OF(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: OF
    functionSourceFile: /src/zlib/zconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OF(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ERR_MSG
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_MSG(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: ERR_RETURN
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_RETURN(strm,err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: F_OPEN
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_OPEN(name, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: F_OPEN
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_OPEN(name, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: zmemzero
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zmemzero(dest, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: zmemzero
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zmemzero(dest, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: Assert
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Assert(cond,msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: Trace
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Trace(x)
  - 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: Tracev
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracev(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: Tracevv
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracevv(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: Tracec
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracec(c,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: Tracecv
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracecv(c,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - strm
    - ','
    - items
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: ZALLOC
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZALLOC(strm, items, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: ZFREE
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZFREE(strm, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: TRY_FREE
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_FREE(s, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - q
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: ZSWAP32
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSWAP32(q)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/zlib/zutil.h:283,1
    - Dst: atomic_flag_test_and_set
      Src: /src/zlib/zutil.h:284,1
    - Dst: atomic_load
      Src: /src/zlib/zutil.h:285,1
    - Dst: init
      Src: /src/zlib/zutil.h:288,1
    - Dst: atomic_store
      Src: /src/zlib/zutil.h:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - z_once_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: z_once
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 0
    functionsReached:
    - atomic_flag_test_and_set
    - init
    - atomic_store
    - atomic_load
    linkageType: ''
    returnType: local
    signature: local z_once(z_once_t *state, void (*init)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 312
    functionName: test_and_set
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local test_and_set(int volatile *flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set
      Src: /src/zlib/zutil.h:317,1
    - Dst: init
      Src: /src/zlib/zutil.h:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - z_once_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: z_once
    functionSourceFile: /src/zlib/zutil.h
    functionUses: 0
    functionsReached:
    - init
    - test_and_set
    linkageType: ''
    returnType: local
    signature: local z_once(z_once_t *state, void (*init)(void))
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: Tracevv
      Src: /src/zlib/inffast.c:114,1
    - Dst: Tracevv
      Src: /src/zlib/inffast.c:131,1
    - Dst: Tracevv
      Src: /src/zlib/inffast.c:166,1
    - Dst: Tracevv
      Src: /src/zlib/inffast.c:279,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 210
    argCount: 2
    argNames:
    - strm
    - start
    argTypes:
    - z_streamp
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 305
    functionName: ZLIB_INTERNAL::inflate_fast
    functionSourceFile: /src/zlib/inffast.c
    functionUses: 0
    functionsReached:
    - Tracevv
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL inflate_fast(z_streamp strm, unsigned start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - word
    argTypes:
    - z_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 139
    functionName: byte_swap
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local byte_swap(z_word_t word)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uLong
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 178
    functionName: multmodp
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local multmodp(uLong a, uLong b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: multmodp
      Src: /src/zlib/crc32.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - z_off64_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 195
    functionName: x2nmodp
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - multmodp
    linkageType: ''
    returnType: local
    signature: local x2nmodp(z_off64_t n, unsigned k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: byte_swap
      Src: /src/zlib/crc32.c:254,1
    - Dst: multmodp
      Src: /src/zlib/crc32.c:262,1
    - Dst: braid
      Src: /src/zlib/crc32.c:266,1
    - Dst: fopen
      Src: /src/zlib/crc32.c:285,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:289,1
    - Dst: write_table
      Src: /src/zlib/crc32.c:295,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:296,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:300,1
    - Dst: write_table64
      Src: /src/zlib/crc32.c:308,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:309,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:313,1
    - Dst: write_table32hi
      Src: /src/zlib/crc32.c:319,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:320,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:327,1
    - Dst: braid
      Src: /src/zlib/crc32.c:332,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:335,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:341,1
    - Dst: write_table
      Src: /src/zlib/crc32.c:342,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:343,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:345,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:350,1
    - Dst: write_table64
      Src: /src/zlib/crc32.c:351,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:352,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:354,1
    - Dst: braid
      Src: /src/zlib/crc32.c:358,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:361,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:367,1
    - Dst: write_table
      Src: /src/zlib/crc32.c:368,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:369,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:371,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:376,1
    - Dst: write_table32hi
      Src: /src/zlib/crc32.c:377,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:378,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:380,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:387,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:392,1
    - Dst: write_table
      Src: /src/zlib/crc32.c:396,1
    - Dst: fprintf
      Src: /src/zlib/crc32.c:397,1
    - Dst: fclose
      Src: /src/zlib/crc32.c:399,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 402
    functionName: make_crc_table
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - fclose
    - braid
    - write_table
    - fopen
    - write_table32hi
    - multmodp
    - write_table64
    - fprintf
    - byte_swap
    linkageType: ''
    returnType: local
    signature: local make_crc_table(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/crc32.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - out
    - table
    - k
    argTypes:
    - FILE*
    - z_crc_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 417
    functionName: write_table
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: local
    signature: local write_table(FILE *out, const z_crc_t FAR *table, int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/crc32.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - out
    - table
    - k
    argTypes:
    - FILE*
    - z_word_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: write_table32hi
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: local
    signature: local write_table32hi(FILE *out, const z_word_t FAR *table, int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/crc32.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - out
    - table
    - k
    argTypes:
    - FILE*
    - z_word_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 446
    functionName: write_table64
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: local
    signature: local write_table64(FILE *out, const z_word_t FAR *table, int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_crc_table
      Src: /src/zlib/crc32.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: main
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - make_crc_table
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x2nmodp
      Src: /src/zlib/crc32.c:465,1
    - Dst: multmodp
      Src: /src/zlib/crc32.c:469,1
    - Dst: byte_swap
      Src: /src/zlib/crc32.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ltl
    - big
    - n
    - w
    argTypes:
    - z_crc_t[][]
    - z_word_t[][]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 473
    functionName: braid
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 1
    functionsReached:
    - x2nmodp
    - byte_swap
    - multmodp
    linkageType: ''
    returnType: local
    signature: local braid(z_crc_t ltl[][256], z_word_t big[][256], int n, int w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: z_once
      Src: /src/zlib/crc32.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 487
    functionName: get_crc_table
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - z_once
    linkageType: ''
    returnType: z_crc_t
    signature: z_crc_t * ZEXPORT get_crc_table(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: z_once
      Src: /src/zlib/crc32.c:520,1
    - Dst: multmodp
      Src: /src/zlib/crc32.c:554,1
    - Dst: multmodp
      Src: /src/zlib/crc32.c:555,1
    - Dst: x2nmodp
      Src: /src/zlib/crc32.c:575,1
    - Dst: multmodp
      Src: /src/zlib/crc32.c:576,1
    - Dst: multmodp
      Src: /src/zlib/crc32.c:577,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uLong
    - unsigned char*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 597
    functionName: crc32_z
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 1
    functionsReached:
    - x2nmodp
    - multmodp
    - z_once
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_z(uLong crc, const unsigned char FAR *buf, z_size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - z_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: crc_word
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local crc_word(z_word_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - z_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 621
    functionName: crc_word_big
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local crc_word_big(z_word_t data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: z_once
      Src: /src/zlib/crc32.c:631,1
    - Dst: crc_word
      Src: /src/zlib/crc32.c:772,1
    - Dst: crc_word
      Src: /src/zlib/crc32.c:774,1
    - Dst: crc_word
      Src: /src/zlib/crc32.c:776,1
    - Dst: crc_word
      Src: /src/zlib/crc32.c:778,1
    - Dst: crc_word
      Src: /src/zlib/crc32.c:780,1
    - Dst: crc_word
      Src: /src/zlib/crc32.c:782,1
    - Dst: byte_swap
      Src: /src/zlib/crc32.c:811,1
    - Dst: crc_word_big
      Src: /src/zlib/crc32.c:894,1
    - Dst: crc_word_big
      Src: /src/zlib/crc32.c:896,1
    - Dst: crc_word_big
      Src: /src/zlib/crc32.c:898,1
    - Dst: crc_word_big
      Src: /src/zlib/crc32.c:900,1
    - Dst: crc_word_big
      Src: /src/zlib/crc32.c:902,1
    - Dst: crc_word_big
      Src: /src/zlib/crc32.c:904,1
    - Dst: byte_swap
      Src: /src/zlib/crc32.c:911,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 108
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uLong
    - unsigned char*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 941
    functionName: crc32_z
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 1
    functionsReached:
    - crc_word
    - crc_word_big
    - byte_swap
    - z_once
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_z(uLong crc, const unsigned char FAR *buf, z_size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32_z_hook
      Src: /src/zlib/crc32.c:948,1
    - Dst: crc32_z
      Src: /src/zlib/crc32.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uLong
    - unsigned char*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 946
    functionDepth: 3
    functionLinenumber: 946
    functionLinenumberEnd: 951
    functionName: crc32
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 2
    functionsReached:
    - crc32_z
    - crc32_z_hook
    linkageType: ''
    returnType: uLong
    signature: uLong crc32(uLong crc, const unsigned char FAR *buf, uInt len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: z_once
      Src: /src/zlib/crc32.c:958,1
    - Dst: x2nmodp
      Src: /src/zlib/crc32.c:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - len2
    argTypes:
    - z_off64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 961
    functionName: crc32_combine_gen64
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - x2nmodp
    - z_once
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_combine_gen64(z_off64_t len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32_combine_gen64
      Src: /src/zlib/crc32.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len2
    argTypes:
    - z_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 964
    functionDepth: 3
    functionLinenumber: 964
    functionLinenumberEnd: 966
    functionName: crc32_combine_gen
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - crc32_combine_gen64
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_combine_gen(z_off_t len2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: multmodp
      Src: /src/zlib/crc32.c:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - crc1
    - crc2
    - op
    argTypes:
    - uLong
    - uLong
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 973
    functionName: crc32_combine_op
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - multmodp
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_combine_op(uLong crc1, uLong crc2, uLong op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32_combine_op
      Src: /src/zlib/crc32.c:977,1
    - Dst: crc32_combine_gen64
      Src: /src/zlib/crc32.c:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crc1
    - crc2
    - len2
    argTypes:
    - uLong
    - uLong
    - z_off64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 976
    functionDepth: 3
    functionLinenumber: 976
    functionLinenumberEnd: 978
    functionName: crc32_combine64
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - crc32_combine_op
    - crc32_combine_gen64
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_combine64(uLong crc1, uLong crc2, z_off64_t len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32_combine64
      Src: /src/zlib/crc32.c:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crc1
    - crc2
    - len2
    argTypes:
    - uLong
    - uLong
    - z_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 981
    functionDepth: 4
    functionLinenumber: 981
    functionLinenumberEnd: 983
    functionName: crc32_combine
    functionSourceFile: /src/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - crc32_combine64
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_combine(uLong crc1, uLong crc2, z_off_t len2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit
      Src: /src/zlib/uncompr.c:51,1
    - Dst: inflate
      Src: /src/zlib/uncompr.c:66,1
    - Dst: inflateEnd
      Src: /src/zlib/uncompr.c:77,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 4
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    argTypes:
    - Bytef*
    - z_size_t*
    - Bytef*
    - z_size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 82
    functionName: uncompress2_z
    functionSourceFile: /src/zlib/uncompr.c
    functionUses: 0
    functionsReached:
    - inflateInit
    - inflate
    - inflateEnd
    linkageType: ''
    returnType: int
    signature: "int uncompress2_z(Bytef *dest, z_size_t *destLen, const Bytef *source,\n
      \                         z_size_t *sourceLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uncompress2_z
      Src: /src/zlib/uncompr.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    argTypes:
    - Bytef*
    - uLongf*
    - Bytef*
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: uncompress2
    functionSourceFile: /src/zlib/uncompr.c
    functionUses: 0
    functionsReached:
    - uncompress2_z
    linkageType: ''
    returnType: int
    signature: "int uncompress2(Bytef *dest, uLongf *destLen, const Bytef *source,\n
      \                       uLong *sourceLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uncompress2_z
      Src: /src/zlib/uncompr.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    argTypes:
    - Bytef*
    - z_size_t*
    - Bytef*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: uncompress_z
    functionSourceFile: /src/zlib/uncompr.c
    functionUses: 0
    functionsReached:
    - uncompress2_z
    linkageType: ''
    returnType: int
    signature: "int uncompress_z(Bytef *dest, z_size_t *destLen, const Bytef *source,\n
      \                        z_size_t sourceLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uncompress2
      Src: /src/zlib/uncompr.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    argTypes:
    - Bytef*
    - uLongf*
    - Bytef*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: uncompress
    functionSourceFile: /src/zlib/uncompr.c
    functionUses: 0
    functionsReached:
    - uncompress2
    linkageType: ''
    returnType: int
    signature: "int uncompress(Bytef *dest, uLongf *destLen, const Bytef *source,\n
      \                      uLong sourceLen)"
  - 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: zstrerror
    functionSourceFile: /src/zlib/gzguts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zstrerror()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: zstrerror
    functionSourceFile: /src/zlib/gzguts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zstrerror()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: zstrerror
    functionSourceFile: /src/zlib/gzguts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zstrerror()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: GT_OFF
    functionSourceFile: /src/zlib/gzguts.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GT_OFF(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/zlib/gzread.c:30,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:41,1
    - Dst: zstrerror
      Src: /src/zlib/gzread.c:41,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - state
    - buf
    - len
    - have
    argTypes:
    - gz_statep
    - unsigned char*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 47
    functionName: gz_load
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - zstrerror
    - read
    - gz_error
    linkageType: ''
    returnType: local
    signature: "local gz_load(gz_statep state, unsigned char *buf, unsigned len,\n
      \                 unsigned *have)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gz_load
      Src: /src/zlib/gzread.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 82
    functionName: gz_avail
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_load
    linkageType: ''
    returnType: local
    signature: local gz_avail(gz_statep state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/gzread.c:99,1
    - Dst: malloc
      Src: /src/zlib/gzread.c:100,1
    - Dst: free
      Src: /src/zlib/gzread.c:102,1
    - Dst: free
      Src: /src/zlib/gzread.c:103,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:104,1
    - Dst: inflateInit2
      Src: /src/zlib/gzread.c:115,1
    - Dst: free
      Src: /src/zlib/gzread.c:116,1
    - Dst: free
      Src: /src/zlib/gzread.c:117,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:119,1
    - Dst: inflateReset
      Src: /src/zlib/gzread.c:128,1
    - Dst: gz_avail
      Src: /src/zlib/gzread.c:141,1
    - Dst: inflateReset
      Src: /src/zlib/gzread.c:154,1
    - Dst: memcpy
      Src: /src/zlib/gzread.c:165,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 170
    functionName: gz_look
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - inflateInit2
    - memcpy
    - gz_error
    - gz_avail
    - free
    - malloc
    - inflateReset
    linkageType: ''
    returnType: local
    signature: local gz_look(gz_statep state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gz_avail
      Src: /src/zlib/gzread.c:189,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:195,1
    - Dst: inflate
      Src: /src/zlib/gzread.c:200,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:205,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:210,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:221,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 240
    functionName: gz_decomp
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_error
    - gz_avail
    - inflate
    linkageType: ''
    returnType: local
    signature: local gz_decomp(gz_statep state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: gz_look
      Src: /src/zlib/gzread.c:254,1
    - Dst: gz_load
      Src: /src/zlib/gzread.c:260,1
    - Dst: gz_decomp
      Src: /src/zlib/gzread.c:268,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:272,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 277
    functionName: gz_fetch
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_load
    - gz_decomp
    - gz_error
    - gz_look
    linkageType: ''
    returnType: local
    signature: local gz_fetch(gz_statep state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GT_OFF
      Src: /src/zlib/gzread.c:288,1
    - Dst: gz_fetch
      Src: /src/zlib/gzread.c:304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 281
    functionDepth: 5
    functionLinenumber: 281
    functionLinenumberEnd: 309
    functionName: gz_skip
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_fetch
    - GT_OFF
    linkageType: ''
    returnType: local
    signature: local gz_skip(gz_statep state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: gz_skip
      Src: /src/zlib/gzread.c:327,1
    - Dst: memcpy
      Src: /src/zlib/gzread.c:343,1
    - Dst: gz_fetch
      Src: /src/zlib/gzread.c:359,1
    - Dst: gz_load
      Src: /src/zlib/gzread.c:369,1
    - Dst: gz_decomp
      Src: /src/zlib/gzread.c:375,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - gz_statep
    - voidp
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 317
    functionDepth: 6
    functionLinenumber: 317
    functionLinenumberEnd: 393
    functionName: gz_read
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_load
    - gz_fetch
    - memcpy
    - gz_decomp
    - gz_skip
    linkageType: ''
    returnType: local
    signature: local gz_read(gz_statep state, voidp buf, z_size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzread.c:409,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:414,1
    - Dst: gz_read
      Src: /src/zlib/gzread.c:419,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:429,1
    - Dst: zstrerror
      Src: /src/zlib/gzread.c:429,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - file
    - buf
    - len
    argTypes:
    - gzFile
    - voidp
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 396
    functionDepth: 7
    functionLinenumber: 396
    functionLinenumberEnd: 436
    functionName: gzread
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - zstrerror
    - gz_error
    - gz_read
    linkageType: ''
    returnType: int
    signature: int gzread(gzFile file, voidp buf, unsigned len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzread.c:454,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:459,1
    - Dst: gz_read
      Src: /src/zlib/gzread.c:464,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - buf
    - size
    - nitems
    - file
    argTypes:
    - voidp
    - z_size_t
    - z_size_t
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 439
    functionDepth: 7
    functionLinenumber: 439
    functionLinenumberEnd: 465
    functionName: gzfread
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_error
    - gz_read
    linkageType: ''
    returnType: z_size_t
    signature: "z_size_t gzfread(voidp buf, z_size_t size, z_size_t nitems,\n                         gzFile
      file)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzread.c:487,1
    - Dst: gz_read
      Src: /src/zlib/gzread.c:497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 473
    functionDepth: 7
    functionLinenumber: 473
    functionLinenumberEnd: 498
    functionName: gzgetc
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_error
    - gz_read
    linkageType: ''
    returnType: int
    signature: int gzgetc(gzFile file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzgetc
      Src: /src/zlib/gzread.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: gzgetc_
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gzgetc
    linkageType: ''
    returnType: int
    signature: int gzgetc_(gzFile file)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gz_look
      Src: /src/zlib/gzread.c:517,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:522,1
    - Dst: gz_skip
      Src: /src/zlib/gzread.c:525,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:544,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - c
    - file
    argTypes:
    - int
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 505
    functionDepth: 6
    functionLinenumber: 505
    functionLinenumberEnd: 563
    functionName: gzungetc
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_error
    - gz_skip
    - gz_look
    linkageType: ''
    returnType: int
    signature: int gzungetc(int c, gzFile file)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzread.c:583,1
    - Dst: gz_skip
      Src: /src/zlib/gzread.c:586,1
    - Dst: gz_fetch
      Src: /src/zlib/gzread.c:595,1
    - Dst: memchr
      Src: /src/zlib/gzread.c:604,1
    - Dst: memcpy
      Src: /src/zlib/gzread.c:609,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 3
    argNames:
    - file
    - buf
    - len
    argTypes:
    - gzFile
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 566
    functionDepth: 6
    functionLinenumber: 566
    functionLinenumberEnd: 624
    functionName: gzgets
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - memchr
    - gz_fetch
    - memcpy
    - gz_error
    - gz_skip
    linkageType: ''
    returnType: char
    signature: char * ZEXPORT gzgets(gzFile file, char *buf, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gz_look
      Src: /src/zlib/gzread.c:638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 642
    functionName: gzdirect
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_look
    linkageType: ''
    returnType: int
    signature: int gzdirect(gzFile file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/zlib/gzread.c:658,1
    - Dst: free
      Src: /src/zlib/gzread.c:659,1
    - Dst: free
      Src: /src/zlib/gzread.c:660,1
    - Dst: gz_error
      Src: /src/zlib/gzread.c:663,1
    - Dst: free
      Src: /src/zlib/gzread.c:664,1
    - Dst: close
      Src: /src/zlib/gzread.c:665,1
    - Dst: free
      Src: /src/zlib/gzread.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 668
    functionName: gzclose_r
    functionSourceFile: /src/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - close
    - gz_error
    - inflateEnd
    - free
    linkageType: ''
    returnType: int
    signature: int gzclose_r(gzFile file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/gzwrite.c:16,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:18,1
    - Dst: malloc
      Src: /src/zlib/gzwrite.c:25,1
    - Dst: free
      Src: /src/zlib/gzwrite.c:27,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:28,1
    - Dst: deflateInit2
      Src: /src/zlib/gzwrite.c:36,1
    - Dst: free
      Src: /src/zlib/gzwrite.c:39,1
    - Dst: free
      Src: /src/zlib/gzwrite.c:40,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 57
    functionName: gz_init
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - malloc
    - deflateInit2
    - gz_error
    - free
    linkageType: ''
    returnType: local
    signature: local gz_init(gz_statep state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: gz_init
      Src: /src/zlib/gzwrite.c:71,1
    - Dst: write
      Src: /src/zlib/gzwrite.c:80,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:84,1
    - Dst: zstrerror
      Src: /src/zlib/gzwrite.c:84,1
    - Dst: deflateReset
      Src: /src/zlib/gzwrite.c:99,1
    - Dst: write
      Src: /src/zlib/gzwrite.c:115,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:119,1
    - Dst: zstrerror
      Src: /src/zlib/gzwrite.c:119,1
    - Dst: deflate
      Src: /src/zlib/gzwrite.c:133,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:135,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 2
    argNames:
    - state
    - flush
    argTypes:
    - gz_statep
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 148
    functionName: gz_comp
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - zstrerror
    - write
    - gz_error
    - deflateReset
    - gz_init
    - deflate
    linkageType: ''
    returnType: local
    signature: local gz_comp(gz_statep state, int flush)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_comp
      Src: /src/zlib/gzwrite.c:160,1
    - Dst: GT_OFF
      Src: /src/zlib/gzwrite.c:166,1
    - Dst: memset
      Src: /src/zlib/gzwrite.c:169,1
    - Dst: gz_comp
      Src: /src/zlib/gzwrite.c:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 182
    functionName: gz_zero
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_comp
    - memset
    - GT_OFF
    linkageType: ''
    returnType: local
    signature: local gz_zero(gz_statep state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: gz_init
      Src: /src/zlib/gzwrite.c:197,1
    - Dst: gz_zero
      Src: /src/zlib/gzwrite.c:201,1
    - Dst: memcpy
      Src: /src/zlib/gzwrite.c:217,1
    - Dst: gz_comp
      Src: /src/zlib/gzwrite.c:224,1
    - Dst: gz_comp
      Src: /src/zlib/gzwrite.c:230,1
    - Dst: gz_comp
      Src: /src/zlib/gzwrite.c:241,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - gz_statep
    - voidpc
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 252
    functionName: gz_write
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - gz_comp
    - gz_init
    - memcpy
    linkageType: ''
    returnType: local
    signature: local gz_write(gz_statep state, voidpc buf, z_size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:266,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:271,1
    - Dst: gz_write
      Src: /src/zlib/gzwrite.c:276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - file
    - buf
    - len
    argTypes:
    - gzFile
    - voidpc
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 255
    functionDepth: 5
    functionLinenumber: 255
    functionLinenumberEnd: 277
    functionName: gzwrite
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_error
    - gz_write
    linkageType: ''
    returnType: int
    signature: int gzwrite(gzFile file, voidpc buf, unsigned len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:293,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:298,1
    - Dst: gz_write
      Src: /src/zlib/gzwrite.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - buf
    - size
    - nitems
    - file
    argTypes:
    - voidpc
    - z_size_t
    - z_size_t
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 280
    functionDepth: 5
    functionLinenumber: 280
    functionLinenumberEnd: 304
    functionName: gzfwrite
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_error
    - gz_write
    linkageType: ''
    returnType: z_size_t
    signature: "z_size_t gzfwrite(voidpc buf, z_size_t size, z_size_t nitems,\n                          gzFile
      file)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:322,1
    - Dst: gz_zero
      Src: /src/zlib/gzwrite.c:325,1
    - Dst: gz_write
      Src: /src/zlib/gzwrite.c:344,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - file
    - c
    argTypes:
    - gzFile
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 307
    functionDepth: 5
    functionLinenumber: 307
    functionLinenumberEnd: 347
    functionName: gzputc
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - gz_error
    - gz_write
    linkageType: ''
    returnType: int
    signature: int gzputc(gzFile file, int c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:362,1
    - Dst: strlen
      Src: /src/zlib/gzwrite.c:365,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:367,1
    - Dst: gz_write
      Src: /src/zlib/gzwrite.c:370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - file
    - s
    argTypes:
    - gzFile
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 350
    functionDepth: 5
    functionLinenumber: 350
    functionLinenumberEnd: 372
    functionName: gzputs
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - strlen
    - gz_error
    - gz_write
    linkageType: ''
    returnType: int
    signature: int gzputs(gzFile file, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gz_comp
      Src: /src/zlib/gzwrite.c:388,1
    - Dst: memmove
      Src: /src/zlib/gzwrite.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 396
    functionName: gz_vacate
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_comp
    - memmove
    linkageType: ''
    returnType: local
    signature: local gz_vacate(gz_statep state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:425,1
    - Dst: gz_init
      Src: /src/zlib/gzwrite.c:428,1
    - Dst: gz_zero
      Src: /src/zlib/gzwrite.c:432,1
    - Dst: gz_vacate
      Src: /src/zlib/gzwrite.c:438,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:445,1
    - Dst: vsprintf
      Src: /src/zlib/gzwrite.c:456,1
    - Dst: vsprintf
      Src: /src/zlib/gzwrite.c:460,1
    - Dst: vsnprintf
      Src: /src/zlib/gzwrite.c:464,1
    - Dst: strlen
      Src: /src/zlib/gzwrite.c:465,1
    - Dst: vsnprintf
      Src: /src/zlib/gzwrite.c:467,1
    - Dst: gz_vacate
      Src: /src/zlib/gzwrite.c:480,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 3
    argNames:
    - file
    - format
    - va
    argTypes:
    - gzFile
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 485
    functionName: gzvprintf
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - gz_vacate
    - gz_error
    - vsprintf
    - strlen
    - vsnprintf
    - gz_init
    linkageType: ''
    returnType: int
    signature: int gzvprintf(gzFile file, const char *format, va_list va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/zlib/gzwrite.c:491,1
    - Dst: gzvprintf
      Src: /src/zlib/gzwrite.c:492,1
    - Dst: va_end
      Src: /src/zlib/gzwrite.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - file
    - format
    argTypes:
    - gzFile
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 5
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: gzprintf
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - gzvprintf
    linkageType: ''
    returnType: int
    signature: int gzprintf(gzFile file, const char *format, ...)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:533,1
    - Dst: gz_init
      Src: /src/zlib/gzwrite.c:536,1
    - Dst: gz_zero
      Src: /src/zlib/gzwrite.c:540,1
    - Dst: gz_vacate
      Src: /src/zlib/gzwrite.c:546,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:553,1
    - Dst: sprintf
      Src: /src/zlib/gzwrite.c:564,1
    - Dst: sprintf
      Src: /src/zlib/gzwrite.c:570,1
    - Dst: snprintf
      Src: /src/zlib/gzwrite.c:575,1
    - Dst: strlen
      Src: /src/zlib/gzwrite.c:577,1
    - Dst: snprintf
      Src: /src/zlib/gzwrite.c:579,1
    - Dst: gz_vacate
      Src: /src/zlib/gzwrite.c:593,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 44
    argCount: 22
    argNames:
    - file
    - format
    - a1
    - a2
    - a3
    - a4
    - a5
    - a6
    - a7
    - a8
    - a9
    - a10
    - a11
    - a12
    - a13
    - a14
    - a15
    - a16
    - a17
    - a18
    - a19
    - a20
    argTypes:
    - gzFile
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 500
    functionDepth: 4
    functionLinenumber: 500
    functionLinenumberEnd: 598
    functionName: gzprintf
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - snprintf
    - sprintf
    - gz_vacate
    - gz_error
    - strlen
    - gz_init
    linkageType: ''
    returnType: int
    signature: "int gzprintf(gzFile file, const char *format, int a1, int a2, int
      a3,\n                       int a4, int a5, int a6, int a7, int a8, int a9,
      int a10,\n                       int a11, int a12, int a13, int a14, int a15,
      int a16,\n                       int a17, int a18, int a19, int a20)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:614,1
    - Dst: gz_zero
      Src: /src/zlib/gzwrite.c:621,1
    - Dst: gz_comp
      Src: /src/zlib/gzwrite.c:625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - file
    - flush
    argTypes:
    - gzFile
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 603
    functionDepth: 4
    functionLinenumber: 603
    functionLinenumberEnd: 627
    functionName: gzflush
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - gz_comp
    - gz_error
    linkageType: ''
    returnType: int
    signature: int gzflush(gzFile file, int flush)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:644,1
    - Dst: gz_zero
      Src: /src/zlib/gzwrite.c:651,1
    - Dst: gz_comp
      Src: /src/zlib/gzwrite.c:657,1
    - Dst: deflateParams
      Src: /src/zlib/gzwrite.c:659,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 3
    argNames:
    - file
    - level
    - strategy
    argTypes:
    - gzFile
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 664
    functionName: gzsetparams
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - gz_comp
    - gz_error
    - deflateParams
    linkageType: ''
    returnType: int
    signature: int gzsetparams(gzFile file, int level, int strategy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gz_zero
      Src: /src/zlib/gzwrite.c:681,1
    - Dst: gz_comp
      Src: /src/zlib/gzwrite.c:685,1
    - Dst: deflateEnd
      Src: /src/zlib/gzwrite.c:689,1
    - Dst: free
      Src: /src/zlib/gzwrite.c:690,1
    - Dst: free
      Src: /src/zlib/gzwrite.c:692,1
    - Dst: gz_error
      Src: /src/zlib/gzwrite.c:694,1
    - Dst: free
      Src: /src/zlib/gzwrite.c:695,1
    - Dst: close
      Src: /src/zlib/gzwrite.c:696,1
    - Dst: free
      Src: /src/zlib/gzwrite.c:698,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 667
    functionDepth: 4
    functionLinenumber: 667
    functionLinenumberEnd: 700
    functionName: gzclose_w
    functionSourceFile: /src/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - deflateEnd
    - gz_error
    - free
    - close
    - gz_comp
    linkageType: ''
    returnType: int
    signature: int gzclose_w(gzFile file)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: inflateStateCheck
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local inflateStateCheck(z_streamp strm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:103,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 123
    functionName: inflateResetKeep
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - Tracev
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflateResetKeep(z_streamp strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:128,1
    - Dst: inflateResetKeep
      Src: /src/zlib/inflate.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: inflateReset
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 1
    functionsReached:
    - inflateStateCheck
    - inflateResetKeep
    linkageType: ''
    returnType: int
    signature: int inflateReset(z_streamp strm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:141,1
    - Dst: ZFREE
      Src: /src/zlib/inflate.c:163,1
    - Dst: inflateReset
      Src: /src/zlib/inflate.c:170,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - strm
    - windowBits
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 171
    functionName: inflateReset2
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    - ZFREE
    - inflateReset
    linkageType: ''
    returnType: int
    signature: int inflateReset2(z_streamp strm, int windowBits)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZALLOC
      Src: /src/zlib/inflate.c:198,1
    - Dst: zmemzero
      Src: /src/zlib/inflate.c:200,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:201,1
    - Dst: inflateReset2
      Src: /src/zlib/inflate.c:206,1
    - Dst: ZFREE
      Src: /src/zlib/inflate.c:208,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - strm
    - windowBits
    - version
    - stream_size
    argTypes:
    - z_streamp
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 212
    functionName: inflateInit2_
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - ZFREE
    - zmemzero
    - ZALLOC
    - inflateReset2
    - Tracev
    linkageType: ''
    returnType: int
    signature: "int inflateInit2_(z_streamp strm, int windowBits,\n                          const
      char *version, int stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit2_
      Src: /src/zlib/inflate.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - strm
    - version
    - stream_size
    argTypes:
    - z_streamp
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: inflateInit_
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateInit2_
    linkageType: ''
    returnType: int
    signature: "int inflateInit_(z_streamp strm, const char *version,\n                         int
      stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - strm
    - bits
    - value
    argTypes:
    - z_streamp
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 236
    functionName: inflatePrime
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflatePrime(z_streamp strm, int bits, int value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ZALLOC
      Src: /src/zlib/inflate.c:261,1
    - Dst: zmemcpy
      Src: /src/zlib/inflate.c:275,1
    - Dst: zmemcpy
      Src: /src/zlib/inflate.c:282,1
    - Dst: zmemcpy
      Src: /src/zlib/inflate.c:285,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - strm
    - end
    - copy
    argTypes:
    - z_streamp
    - Bytef*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 296
    functionName: updatewindow
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - ZALLOC
    - zmemcpy
    linkageType: ''
    returnType: local
    signature: local updatewindow(z_streamp strm, const Bytef *end, unsigned copy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - check
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: UPDATE_CHECK
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_CHECK(check, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - check
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: UPDATE_CHECK
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_CHECK(check, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - check
    - ','
    - word
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: CRC2
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRC2(check, word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - check
    - ','
    - word
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 325
    functionName: CRC4
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRC4(check, word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 337
    functionName: LOAD
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: RESTORE
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESTORE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: INITBITS
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITBITS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: PULLBYTE
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULLBYTE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 373
    functionName: NEEDBITS
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDBITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: BITS
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: DROPBITS
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DROPBITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 391
    functionName: BYTEBITS
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTEBITS()
  - BBCount: 140
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:494,1
    - Dst: LOAD
      Src: /src/zlib/inflate.c:500,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:511,1
    - Dst: crc32
      Src: /src/zlib/inflate.c:516,1
    - Dst: CRC2
      Src: /src/zlib/inflate.c:517,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:518,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:528,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:533,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:538,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:539,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:549,1
    - Dst: adler32
      Src: /src/zlib/inflate.c:550,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:552,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:556,1
    - Dst: CRC2
      Src: /src/zlib/inflate.c:571,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:572,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:576,1
    - Dst: CRC4
      Src: /src/zlib/inflate.c:580,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:581,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:585,1
    - Dst: CRC2
      Src: /src/zlib/inflate.c:591,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:592,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:597,1
    - Dst: CRC2
      Src: /src/zlib/inflate.c:602,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:603,1
    - Dst: zmemcpy
      Src: /src/zlib/inflate.c:618,1
    - Dst: crc32
      Src: /src/zlib/inflate.c:623,1
    - Dst: crc32
      Src: /src/zlib/inflate.c:645,1
    - Dst: crc32
      Src: /src/zlib/inflate.c:667,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:678,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:684,1
    - Dst: crc32
      Src: /src/zlib/inflate.c:690,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:695,1
    - Dst: ZSWAP32
      Src: /src/zlib/inflate.c:696,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:697,1
    - Dst: RESTORE
      Src: /src/zlib/inflate.c:702,1
    - Dst: adler32
      Src: /src/zlib/inflate.c:705,1
    - Dst: BYTEBITS
      Src: /src/zlib/inflate.c:713,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:717,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:718,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:719,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:720,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:722,1
    - Dst: inflate_fixed
      Src: /src/zlib/inflate.c:727,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:728,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:732,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:737,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:745,1
    - Dst: BYTEBITS
      Src: /src/zlib/inflate.c:748,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:749,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:756,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:758,1
    - Dst: zmemcpy
      Src: /src/zlib/inflate.c:771,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:779,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:783,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:784,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:785,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:786,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:787,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:788,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:789,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:798,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:804,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:805,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:806,1
    - Dst: inflate_table
      Src: /src/zlib/inflate.c:813,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:820,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:827,1
    - Dst: PULLBYTE
      Src: /src/zlib/inflate.c:829,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:832,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:837,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:838,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:846,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:847,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:850,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:851,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:853,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:854,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:857,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:858,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:860,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:861,1
    - Dst: inflate_table
      Src: /src/zlib/inflate.c:891,1
    - Dst: inflate_table
      Src: /src/zlib/inflate.c:900,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:907,1
    - Dst: RESTORE
      Src: /src/zlib/inflate.c:916,1
    - Dst: inflate_fast
      Src: /src/zlib/inflate.c:917,1
    - Dst: LOAD
      Src: /src/zlib/inflate.c:918,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:925,1
    - Dst: PULLBYTE
      Src: /src/zlib/inflate.c:927,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:933,1
    - Dst: PULLBYTE
      Src: /src/zlib/inflate.c:935,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:937,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:940,1
    - Dst: Tracevv
      Src: /src/zlib/inflate.c:944,1
    - Dst: Tracevv
      Src: /src/zlib/inflate.c:951,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:966,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:967,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:968,1
    - Dst: Tracevv
      Src: /src/zlib/inflate.c:971,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:977,1
    - Dst: PULLBYTE
      Src: /src/zlib/inflate.c:979,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:985,1
    - Dst: PULLBYTE
      Src: /src/zlib/inflate.c:987,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:989,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:992,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:1005,1
    - Dst: BITS
      Src: /src/zlib/inflate.c:1006,1
    - Dst: DROPBITS
      Src: /src/zlib/inflate.c:1007,1
    - Dst: Tracevv
      Src: /src/zlib/inflate.c:1017,1
    - Dst: Trace
      Src: /src/zlib/inflate.c:1033,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:1074,1
    - Dst: UPDATE_CHECK
      Src: /src/zlib/inflate.c:1080,1
    - Dst: ZSWAP32
      Src: /src/zlib/inflate.c:1086,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:1091,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:1092,1
    - Dst: NEEDBITS
      Src: /src/zlib/inflate.c:1099,1
    - Dst: INITBITS
      Src: /src/zlib/inflate.c:1105,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:1106,1
    - Dst: RESTORE
      Src: /src/zlib/inflate.c:1132,1
    - Dst: updatewindow
      Src: /src/zlib/inflate.c:1135,1
    - Dst: UPDATE_CHECK
      Src: /src/zlib/inflate.c:1146,1
    CyclomaticComplexity: 215
    EdgeCount: 215
    ICount: 609
    argCount: 2
    argNames:
    - strm
    - flush
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 1153
    functionName: inflate
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 2
    functionsReached:
    - CRC4
    - inflateStateCheck
    - CRC2
    - INITBITS
    - PULLBYTE
    - crc32
    - Tracevv
    - DROPBITS
    - inflate_table
    - adler32
    - LOAD
    - inflate_fixed
    - updatewindow
    - BITS
    - NEEDBITS
    - RESTORE
    - Trace
    - UPDATE_CHECK
    - ZSWAP32
    - inflate_fast
    - BYTEBITS
    - zmemcpy
    - Tracev
    linkageType: ''
    returnType: int
    signature: int inflate(z_streamp strm, int flush)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1157,1
    - Dst: ZFREE
      Src: /src/zlib/inflate.c:1160,1
    - Dst: ZFREE
      Src: /src/zlib/inflate.c:1161,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1165
    functionName: inflateEnd
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 2
    functionsReached:
    - Tracev
    - inflateStateCheck
    - ZFREE
    linkageType: ''
    returnType: int
    signature: int inflateEnd(z_streamp strm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1172,1
    - Dst: zmemcpy
      Src: /src/zlib/inflate.c:1177,1
    - Dst: zmemcpy
      Src: /src/zlib/inflate.c:1179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - strm
    - dictionary
    - dictLength
    argTypes:
    - z_streamp
    - Bytef*
    - uInt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1185
    functionName: inflateGetDictionary
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    - zmemcpy
    linkageType: ''
    returnType: int
    signature: "int inflateGetDictionary(z_streamp strm, Bytef *dictionary,\n                                 uInt
      *dictLength)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1194,1
    - Dst: adler32
      Src: /src/zlib/inflate.c:1201,1
    - Dst: adler32
      Src: /src/zlib/inflate.c:1202,1
    - Dst: updatewindow
      Src: /src/zlib/inflate.c:1209,1
    - Dst: Tracev
      Src: /src/zlib/inflate.c:1215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - strm
    - dictionary
    - dictLength
    argTypes:
    - z_streamp
    - Bytef*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1217
    functionName: inflateSetDictionary
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - Tracev
    - inflateStateCheck
    - adler32
    - updatewindow
    linkageType: ''
    returnType: int
    signature: "int inflateSetDictionary(z_streamp strm, const Bytef *dictionary,\n
      \                                uInt dictLength)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - strm
    - head
    argTypes:
    - z_streamp
    - gz_headerp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1231
    functionName: inflateGetHeader
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflateGetHeader(z_streamp strm, gz_headerp head)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - have
    - buf
    - len
    argTypes:
    - unsigned FAR*
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1262
    functionName: syncsearch
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local unsigned
    signature: "local unsigned syncsearch(unsigned FAR *have, const unsigned char
      FAR *buf,\n                          unsigned len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1272,1
    - Dst: syncsearch
      Src: /src/zlib/inflate.c:1288,1
    - Dst: syncsearch
      Src: /src/zlib/inflate.c:1292,1
    - Dst: inflateReset
      Src: /src/zlib/inflate.c:1305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1264
    functionDepth: 1
    functionLinenumber: 1264
    functionLinenumberEnd: 1310
    functionName: inflateSync
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    - syncsearch
    - inflateReset
    linkageType: ''
    returnType: int
    signature: int inflateSync(z_streamp strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1326
    functionName: inflateSyncPoint
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflateSyncPoint(z_streamp strm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1334,1
    - Dst: ZALLOC
      Src: /src/zlib/inflate.c:1340,1
    - Dst: zmemzero
      Src: /src/zlib/inflate.c:1342,1
    - Dst: ZALLOC
      Src: /src/zlib/inflate.c:1346,1
    - Dst: ZFREE
      Src: /src/zlib/inflate.c:1348,1
    - Dst: zmemcpy
      Src: /src/zlib/inflate.c:1354,1
    - Dst: zmemcpy
      Src: /src/zlib/inflate.c:1355,1
    - Dst: zmemcpy
      Src: /src/zlib/inflate.c:1364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - z_streamp
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1368
    functionName: inflateCopy
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    - ZFREE
    - zmemzero
    - ZALLOC
    - zmemcpy
    linkageType: ''
    returnType: int
    signature: int inflateCopy(z_streamp dest, z_streamp source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - strm
    - subvert
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1370
    functionDepth: 1
    functionLinenumber: 1370
    functionLinenumberEnd: 1383
    functionName: inflateUndermine
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflateUndermine(z_streamp strm, int subvert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - strm
    - check
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1395
    functionName: inflateValidate
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflateValidate(z_streamp strm, int check)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1406
    functionName: inflateMark
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: long ZEXPORT
    signature: long ZEXPORT inflateMark(z_streamp strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/zlib/inflate.c:1410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1413
    functionName: inflateCodesUsed
    functionSourceFile: /src/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: unsigned long ZEXPORT
    signature: unsigned long ZEXPORT inflateCodesUsed(z_streamp strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: DO1
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO1(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: DO2
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO2(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: DO4
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO4(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: DO8
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO8(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: DO16
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO16(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: CHOP
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHOP(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: MOD28
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD28(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: MOD
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: MOD
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: MOD28
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD28(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: MOD63
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD63(a)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MOD28
      Src: /src/zlib/adler32.c:92,1
    - Dst: DO16
      Src: /src/zlib/adler32.c:101,1
    - Dst: MOD
      Src: /src/zlib/adler32.c:104,1
    - Dst: MOD
      Src: /src/zlib/adler32.c:105,1
    - Dst: DO16
      Src: /src/zlib/adler32.c:112,1
    - Dst: MOD
      Src: /src/zlib/adler32.c:119,1
    - Dst: MOD
      Src: /src/zlib/adler32.c:120,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 3
    argNames:
    - adler
    - buf
    - len
    argTypes:
    - uLong
    - Bytef*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 125
    functionName: adler32_z
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached:
    - MOD
    - DO16
    - MOD28
    linkageType: ''
    returnType: uLong
    signature: uLong adler32_z(uLong adler, const Bytef *buf, z_size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adler32_z
      Src: /src/zlib/adler32.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - adler
    - buf
    - len
    argTypes:
    - uLong
    - Bytef*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: adler32
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 5
    functionsReached:
    - adler32_z
    linkageType: ''
    returnType: uLong
    signature: uLong adler32(uLong adler, const Bytef *buf, uInt len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MOD63
      Src: /src/zlib/adler32.c:143,1
    - Dst: MOD
      Src: /src/zlib/adler32.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - adler1
    - adler2
    - len2
    argTypes:
    - uLong
    - uLong
    - z_off64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 155
    functionName: adler32_combine_
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached:
    - MOD63
    - MOD
    linkageType: ''
    returnType: local
    signature: local adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adler32_combine_
      Src: /src/zlib/adler32.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - adler1
    - adler2
    - len2
    argTypes:
    - uLong
    - uLong
    - z_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: adler32_combine
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached:
    - adler32_combine_
    linkageType: ''
    returnType: uLong
    signature: uLong adler32_combine(uLong adler1, uLong adler2, z_off_t len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adler32_combine_
      Src: /src/zlib/adler32.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - adler1
    - adler2
    - len2
    argTypes:
    - uLong
    - uLong
    - z_off64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: adler32_combine64
    functionSourceFile: /src/zlib/adler32.c
    functionUses: 0
    functionsReached:
    - adler32_combine_
    linkageType: ''
    returnType: uLong
    signature: uLong adler32_combine64(uLong adler1, uLong adler2, z_off64_t len2)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 129
    argCount: 6
    argNames:
    - type
    - lens
    - codes
    - table
    - bits
    - work
    argTypes:
    - codetype
    - unsigned short FAR*
    - unsigned
    - code**
    - unsigned FAR*
    - unsigned short FAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 311
    functionName: ZLIB_INTERNAL::inflate_table
    functionSourceFile: /src/zlib/inftrees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ZLIB_INTERNAL inflate_table(codetype type, unsigned short FAR
      *lens,\n                                unsigned codes, code FAR * FAR *table,\n
      \                               unsigned FAR *bits, unsigned short FAR *work)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inflate_table
      Src: /src/zlib/inftrees.c:341,1
    - Dst: inflate_table
      Src: /src/zlib/inftrees.c:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 349
    functionName: buildtables
    functionSourceFile: /src/zlib/inftrees.c
    functionUses: 0
    functionsReached:
    - inflate_table
    linkageType: ''
    returnType: local
    signature: local buildtables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: z_once
      Src: /src/zlib/inftrees.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct inflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: inflate_fixed
    functionSourceFile: /src/zlib/inftrees.c
    functionUses: 2
    functionsReached:
    - z_once
    linkageType: ''
    returnType: void
    signature: void inflate_fixed(struct inflate_state FAR *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inflate_fixed
      Src: /src/zlib/inftrees.c:390,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:391,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:392,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:393,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:394,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:395,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:396,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:397,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:398,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:399,1
    - Dst: printf
      Src: /src/zlib/inftrees.c:401,1
    - Dst: printf
      Src: /src/zlib/inftrees.c:404,1
    - Dst: printf
      Src: /src/zlib/inftrees.c:405,1
    - Dst: putchar
      Src: /src/zlib/inftrees.c:408,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:410,1
    - Dst: printf
      Src: /src/zlib/inftrees.c:412,1
    - Dst: printf
      Src: /src/zlib/inftrees.c:415,1
    - Dst: printf
      Src: /src/zlib/inftrees.c:416,1
    - Dst: putchar
      Src: /src/zlib/inftrees.c:419,1
    - Dst: puts
      Src: /src/zlib/inftrees.c:421,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 423
    functionName: main
    functionSourceFile: /src/zlib/inftrees.c
    functionUses: 0
    functionsReached:
    - puts
    - putchar
    - inflate_fixed
    - printf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzclose_r
      Src: /src/zlib/gzclose.c:19,1
    - Dst: gzclose_w
      Src: /src/zlib/gzclose.c:19,1
    - Dst: gzclose_r
      Src: /src/zlib/gzclose.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 11
    functionDepth: 5
    functionLinenumber: 11
    functionLinenumberEnd: 23
    functionName: gzclose
    functionSourceFile: /src/zlib/gzclose.c
    functionUses: 0
    functionsReached:
    - gzclose_r
    - gzclose_w
    linkageType: ''
    returnType: int
    signature: int gzclose(gzFile file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/test/infcover.c:84,1
    - Dst: memset
      Src: /src/zlib/test/infcover.c:87,1
    - Dst: malloc
      Src: /src/zlib/test/infcover.c:90,1
    - Dst: free
      Src: /src/zlib/test/infcover.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - mem
    - count
    - size
    argTypes:
    - void*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 109
    functionName: mem_alloc
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - malloc
    - memset
    - free
    linkageType: ''
    returnType: local
    signature: local *mem_alloc(void *mem, unsigned count, unsigned size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/test/infcover.c:119,1
    - Dst: free
      Src: /src/zlib/test/infcover.c:145,1
    - Dst: free
      Src: /src/zlib/test/infcover.c:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - mem
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 154
    functionName: mem_free
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: local
    signature: local mem_free(void *mem, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/test/infcover.c:162,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_stream*
    assertStmts:
    - condition: (zone != NULL)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/zlib/test/infcover.c
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: mem_setup
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - malloc
    - assert
    linkageType: ''
    returnType: local
    signature: local mem_setup(z_stream *strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - strm
    - limit
    argTypes:
    - z_stream*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: mem_limit
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local mem_limit(z_stream *strm, size_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/test/infcover.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - strm
    - prefix
    argTypes:
    - z_stream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: mem_used
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: local
    signature: local mem_used(z_stream *strm, char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/test/infcover.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - strm
    - prefix
    argTypes:
    - z_stream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: mem_high
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: local
    signature: local mem_high(z_stream *strm, char *prefix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mem_high
      Src: /src/zlib/test/infcover.c:207,1
    - Dst: free
      Src: /src/zlib/test/infcover.c:212,1
    - Dst: free
      Src: /src/zlib/test/infcover.c:214,1
    - Dst: fprintf
      Src: /src/zlib/test/infcover.c:221,1
    - Dst: fprintf
      Src: /src/zlib/test/infcover.c:224,1
    - Dst: fprintf
      Src: /src/zlib/test/infcover.c:226,1
    - Dst: free
      Src: /src/zlib/test/infcover.c:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - strm
    - prefix
    argTypes:
    - z_stream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 234
    functionName: mem_done
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - fprintf
    - mem_high
    - free
    linkageType: ''
    returnType: local
    signature: local mem_done(z_stream *strm, char *prefix)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/test/infcover.c:250,1
    - Dst: strlen
      Src: /src/zlib/test/infcover.c:250,1
    - Dst: realloc
      Src: /src/zlib/test/infcover.c:271,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - hex
    - len
    argTypes:
    - char*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 273
    functionName: h2b
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - malloc
    - strlen
    - realloc
    linkageType: ''
    returnType: local unsigned
    signature: local unsigned *h2b(const char *hex, unsigned *len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mem_setup
      Src: /src/zlib/test/infcover.c:293,1
    - Dst: inflateInit2
      Src: /src/zlib/test/infcover.c:296,1
    - Dst: mem_done
      Src: /src/zlib/test/infcover.c:298,1
    - Dst: malloc
      Src: /src/zlib/test/infcover.c:301,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:301,1
    - Dst: inflateGetHeader
      Src: /src/zlib/test/infcover.c:309,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:309,1
    - Dst: h2b
      Src: /src/zlib/test/infcover.c:311,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:311,1
    - Dst: inflate
      Src: /src/zlib/test/infcover.c:320,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:320,1
    - Dst: inflateSetDictionary
      Src: /src/zlib/test/infcover.c:324,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:325,1
    - Dst: mem_limit
      Src: /src/zlib/test/infcover.c:326,1
    - Dst: inflateSetDictionary
      Src: /src/zlib/test/infcover.c:327,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:328,1
    - Dst: mem_limit
      Src: /src/zlib/test/infcover.c:329,1
    - Dst: inflateSetDictionary
      Src: /src/zlib/test/infcover.c:331,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:332,1
    - Dst: inflate
      Src: /src/zlib/test/infcover.c:333,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:333,1
    - Dst: inflateCopy
      Src: /src/zlib/test/infcover.c:335,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:335,1
    - Dst: inflateEnd
      Src: /src/zlib/test/infcover.c:336,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:336,1
    - Dst: free
      Src: /src/zlib/test/infcover.c:342,1
    - Dst: free
      Src: /src/zlib/test/infcover.c:343,1
    - Dst: inflateReset2
      Src: /src/zlib/test/infcover.c:344,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:344,1
    - Dst: inflateEnd
      Src: /src/zlib/test/infcover.c:345,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:345,1
    - Dst: mem_done
      Src: /src/zlib/test/infcover.c:346,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 64
    argCount: 6
    argNames:
    - hex
    - what
    - step
    - win
    - len
    - err
    argTypes:
    - char*
    - char*
    - unsigned
    - int
    - unsigned
    - int
    assertStmts:
    - condition: (ret == Z_OK)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_DATA_ERROR)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/zlib/test/infcover.c
    - condition: (out != NULL)
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_MEM_ERROR)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_BUF_ERROR)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/zlib/test/infcover.c
    - condition: (err == 9 || ret == err)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/zlib/test/infcover.c
    - condition: (in != NULL)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/zlib/test/infcover.c
    constantsTouched: []
    func_position:
      end: 347
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 347
    functionName: inf
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - inflateGetHeader
    - inflateInit2
    - assert
    - inflateCopy
    - inflate
    - free
    - mem_limit
    - inflateReset2
    - mem_setup
    - mem_done
    - h2b
    - inflateSetDictionary
    - malloc
    - inflateEnd
    linkageType: ''
    returnType: local
    signature: "local inf(char *hex, char *what, unsigned step, int win, unsigned
      len,\n               int err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_setup
      Src: /src/zlib/test/infcover.c:355,1
    - Dst: inflateInit
      Src: /src/zlib/test/infcover.c:358,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:358,1
    - Dst: mem_used
      Src: /src/zlib/test/infcover.c:359,1
    - Dst: inflatePrime
      Src: /src/zlib/test/infcover.c:360,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:360,1
    - Dst: inflatePrime
      Src: /src/zlib/test/infcover.c:361,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:361,1
    - Dst: inflateSetDictionary
      Src: /src/zlib/test/infcover.c:362,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:363,1
    - Dst: inflateEnd
      Src: /src/zlib/test/infcover.c:364,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:364,1
    - Dst: mem_done
      Src: /src/zlib/test/infcover.c:365,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:367,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:368,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:369,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:370,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:371,1
    - Dst: mem_setup
      Src: /src/zlib/test/infcover.c:373,1
    - Dst: inflateInit_
      Src: /src/zlib/test/infcover.c:376,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:377,1
    - Dst: mem_done
      Src: /src/zlib/test/infcover.c:378,1
    - Dst: inflateInit
      Src: /src/zlib/test/infcover.c:382,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:382,1
    - Dst: inflateEnd
      Src: /src/zlib/test/infcover.c:383,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:383,1
    - Dst: fputs
      Src: /src/zlib/test/infcover.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ret == Z_STREAM_ERROR)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_VERSION_ERROR)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/zlib/test/infcover.c
    constantsTouched: []
    func_position:
      end: 385
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 385
    functionName: cover_support
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - inf
    - fputs
    - assert
    - inflateInit_
    - inflateInit
    - mem_setup
    - mem_done
    - inflatePrime
    - mem_used
    - inflateSetDictionary
    - inflateEnd
    linkageType: ''
    returnType: local
    signature: local cover_support(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inflate
      Src: /src/zlib/test/infcover.c:394,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:394,1
    - Dst: inflateEnd
      Src: /src/zlib/test/infcover.c:395,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:395,1
    - Dst: inflateCopy
      Src: /src/zlib/test/infcover.c:396,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:396,1
    - Dst: fputs
      Src: /src/zlib/test/infcover.c:397,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:399,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:400,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:401,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:402,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:403,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:404,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:405,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:407,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:409,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:410,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:411,1
    - Dst: mem_setup
      Src: /src/zlib/test/infcover.c:413,1
    - Dst: inflateInit2
      Src: /src/zlib/test/infcover.c:416,1
    - Dst: mem_limit
      Src: /src/zlib/test/infcover.c:421,1
    - Dst: inflate
      Src: /src/zlib/test/infcover.c:422,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:422,1
    - Dst: inflate
      Src: /src/zlib/test/infcover.c:423,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:423,1
    - Dst: mem_limit
      Src: /src/zlib/test/infcover.c:424,1
    - Dst: memset
      Src: /src/zlib/test/infcover.c:425,1
    - Dst: inflateSetDictionary
      Src: /src/zlib/test/infcover.c:426,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:427,1
    - Dst: mem_limit
      Src: /src/zlib/test/infcover.c:428,1
    - Dst: inflatePrime
      Src: /src/zlib/test/infcover.c:429,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:429,1
    - Dst: inflateSync
      Src: /src/zlib/test/infcover.c:432,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:432,1
    - Dst: inflate
      Src: /src/zlib/test/infcover.c:433,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:433,1
    - Dst: inflateSync
      Src: /src/zlib/test/infcover.c:436,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:436,1
    - Dst: inflateSyncPoint
      Src: /src/zlib/test/infcover.c:437,1
    - Dst: inflateCopy
      Src: /src/zlib/test/infcover.c:438,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:438,1
    - Dst: mem_limit
      Src: /src/zlib/test/infcover.c:439,1
    - Dst: inflateUndermine
      Src: /src/zlib/test/infcover.c:440,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:440,1
    - Dst: inflateMark
      Src: /src/zlib/test/infcover.c:441,1
    - Dst: inflateEnd
      Src: /src/zlib/test/infcover.c:442,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:442,1
    - Dst: mem_done
      Src: /src/zlib/test/infcover.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ret == Z_STREAM_ERROR)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_MEM_ERROR)
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_DATA_ERROR)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_STREAM_ERROR)
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 426
        line_start: 426
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_STREAM_ERROR)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_DATA_ERROR)
      pos:
        line_end: 439
        line_start: 439
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_STREAM_ERROR)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_MEM_ERROR)
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_MEM_ERROR)
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/zlib/test/infcover.c
    constantsTouched: []
    func_position:
      end: 444
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 444
    functionName: cover_wrap
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - memset
    - fputs
    - inflateInit2
    - assert
    - inflateCopy
    - inflateUndermine
    - inflate
    - inflateSync
    - inflateMark
    - mem_limit
    - inflatePrime
    - mem_setup
    - mem_done
    - inf
    - inflateSetDictionary
    - inflateSyncPoint
    - inflateEnd
    linkageType: ''
    returnType: local
    signature: local cover_wrap(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - desc
    - buf
    argTypes:
    - void*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: pull
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local unsigned
    signature: local unsigned pull(void *desc, unsigned char z_const **buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - desc
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: push
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local push(void *desc, unsigned char *buf, unsigned len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inflateBackInit_
      Src: /src/zlib/test/infcover.c:477,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:478,1
    - Dst: inflateBackInit
      Src: /src/zlib/test/infcover.c:479,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:479,1
    - Dst: inflateBack
      Src: /src/zlib/test/infcover.c:480,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:481,1
    - Dst: inflateBackEnd
      Src: /src/zlib/test/infcover.c:482,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:482,1
    - Dst: fputs
      Src: /src/zlib/test/infcover.c:483,1
    - Dst: mem_setup
      Src: /src/zlib/test/infcover.c:485,1
    - Dst: inflateBackInit
      Src: /src/zlib/test/infcover.c:486,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:486,1
    - Dst: inflateBack
      Src: /src/zlib/test/infcover.c:489,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:490,1
    - Dst: inflateBack
      Src: /src/zlib/test/infcover.c:494,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:495,1
    - Dst: inflateBack
      Src: /src/zlib/test/infcover.c:497,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:498,1
    - Dst: inflateBackEnd
      Src: /src/zlib/test/infcover.c:499,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:499,1
    - Dst: mem_done
      Src: /src/zlib/test/infcover.c:500,1
    - Dst: inflateBackInit
      Src: /src/zlib/test/infcover.c:502,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:502,1
    - Dst: inflateBackEnd
      Src: /src/zlib/test/infcover.c:503,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:503,1
    - Dst: fputs
      Src: /src/zlib/test/infcover.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ret == Z_STREAM_ERROR)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_BUF_ERROR)
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_STREAM_END)
      pos:
        line_end: 489
        line_start: 489
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_STREAM_ERROR)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 502
        line_start: 502
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_VERSION_ERROR)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_STREAM_ERROR)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_STREAM_ERROR)
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == Z_OK)
      pos:
        line_end: 485
        line_start: 485
        source_file: /src/zlib/test/infcover.c
    constantsTouched: []
    func_position:
      end: 505
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 505
    functionName: cover_back
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - inflateBackInit_
    - fputs
    - assert
    - inflateBackEnd
    - inflateBackInit
    - inflateBack
    - mem_setup
    - mem_done
    linkageType: ''
    returnType: local
    signature: local cover_back(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inf
      Src: /src/zlib/test/infcover.c:612,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 615
    functionName: cover_inflate
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - inf
    linkageType: ''
    returnType: local
    signature: local cover_inflate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inflate_table
      Src: /src/zlib/test/infcover.c:632,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:633,1
    - Dst: inflate_table
      Src: /src/zlib/test/infcover.c:636,1
    - Dst: assert
      Src: /src/zlib/test/infcover.c:637,1
    - Dst: fputs
      Src: /src/zlib/test/infcover.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ret == 1)
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/zlib/test/infcover.c
    - condition: (ret == 1)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/zlib/test/infcover.c
    constantsTouched: []
    func_position:
      end: 639
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 639
    functionName: cover_trees
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - inflate_table
    - fputs
    - assert
    linkageType: ''
    returnType: local
    signature: local cover_trees(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inf
      Src: /src/zlib/test/infcover.c:644,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:646,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:649,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:651,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:653,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:655,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:656,1
    - Dst: inf
      Src: /src/zlib/test/infcover.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 660
    functionName: cover_fast
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - inf
    linkageType: ''
    returnType: local
    signature: local cover_fast(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/test/infcover.c:664,1
    - Dst: zlibVersion
      Src: /src/zlib/test/infcover.c:664,1
    - Dst: cover_support
      Src: /src/zlib/test/infcover.c:665,1
    - Dst: cover_wrap
      Src: /src/zlib/test/infcover.c:666,1
    - Dst: cover_back
      Src: /src/zlib/test/infcover.c:667,1
    - Dst: cover_inflate
      Src: /src/zlib/test/infcover.c:668,1
    - Dst: cover_trees
      Src: /src/zlib/test/infcover.c:669,1
    - Dst: cover_fast
      Src: /src/zlib/test/infcover.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 662
    functionDepth: 5
    functionLinenumber: 662
    functionLinenumberEnd: 672
    functionName: main
    functionSourceFile: /src/zlib/test/infcover.c
    functionUses: 0
    functionsReached:
    - cover_back
    - cover_inflate
    - cover_support
    - cover_trees
    - cover_fast
    - cover_wrap
    - fprintf
    - zlibVersion
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - file
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: SET_BINARY_MODE
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BINARY_MODE(file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - file
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: fileno
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fileno(file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: perror
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perror(s)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - dst
    - src
    - len
    argTypes:
    - char*
    - char*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: string_copy
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *string_copy(char *dst, char const *src, z_size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/zlib/test/minigzip.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - q
    - n
    - m
    argTypes:
    - void*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: myalloc
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: void *myalloc(void *q, unsigned n, unsigned m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/test/minigzip.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - q
    - p
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: myfree
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void myfree(void *q, void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/test/minigzip.c:202,1
    - Dst: strchr
      Src: /src/zlib/test/minigzip.c:205,1
    - Dst: deflateInit2
      Src: /src/zlib/test/minigzip.c:210,1
    - Dst: inflateInit2
      Src: /src/zlib/test/minigzip.c:214,1
    - Dst: free
      Src: /src/zlib/test/minigzip.c:217,1
    - Dst: fdopen
      Src: /src/zlib/test/minigzip.c:220,1
    - Dst: fopen
      Src: /src/zlib/test/minigzip.c:221,1
    - Dst: deflateEnd
      Src: /src/zlib/test/minigzip.c:223,1
    - Dst: inflateEnd
      Src: /src/zlib/test/minigzip.c:223,1
    - Dst: free
      Src: /src/zlib/test/minigzip.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - path
    - fd
    - mode
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 230
    functionName: gz_open
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 4
    functionsReached:
    - inflateInit2
    - deflateInit2
    - fopen
    - strchr
    - fdopen
    - deflateEnd
    - free
    - malloc
    - inflateEnd
    linkageType: ''
    returnType: gzFile
    signature: gzFile gz_open(const char *path, int fd, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gz_open
      Src: /src/zlib/test/minigzip.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: gzopen
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - gz_open
    linkageType: ''
    returnType: gzFile
    signature: gzFile gzopen(const char *path, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gz_open
      Src: /src/zlib/test/minigzip.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: gzdopen
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - gz_open
    linkageType: ''
    returnType: gzFile
    signature: gzFile gzdopen(int fd, const char *mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflate
      Src: /src/zlib/test/minigzip.c:252,1
    - Dst: fwrite
      Src: /src/zlib/test/minigzip.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - gz
    - buf
    - len
    argTypes:
    - gzFile
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 256
    functionName: gzwrite
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - fwrite
    - deflate
    linkageType: ''
    returnType: int
    signature: int gzwrite(gzFile gz, const void *buf, unsigned len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/zlib/test/minigzip.c:272,1
    - Dst: inflate
      Src: /src/zlib/test/minigzip.c:277,1
    - Dst: inflateReset
      Src: /src/zlib/test/minigzip.c:284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - gz
    - buf
    - len
    argTypes:
    - gzFile
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 287
    functionName: gzread
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - inflateReset
    - fread
    - inflate
    linkageType: ''
    returnType: int
    signature: int gzread(gzFile gz, void *buf, unsigned len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: deflate
      Src: /src/zlib/test/minigzip.c:302,1
    - Dst: fwrite
      Src: /src/zlib/test/minigzip.c:303,1
    - Dst: deflateEnd
      Src: /src/zlib/test/minigzip.c:305,1
    - Dst: inflateEnd
      Src: /src/zlib/test/minigzip.c:308,1
    - Dst: fclose
      Src: /src/zlib/test/minigzip.c:309,1
    - Dst: free
      Src: /src/zlib/test/minigzip.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - gz
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 312
    functionName: gzclose
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - fclose
    - fwrite
    - deflateEnd
    - free
    - inflateEnd
    - deflate
    linkageType: ''
    returnType: int
    signature: int gzclose(gzFile gz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gz
    - err
    argTypes:
    - gzFile
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: gzerror
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *gzerror(gzFile gz, int *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/test/minigzip.c:327,1
    - Dst: exit
      Src: /src/zlib/test/minigzip.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: error
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 25
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void error(const char *msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/zlib/test/minigzip.c:339,1
    - Dst: fstat
      Src: /src/zlib/test/minigzip.c:345,1
    - Dst: mmap
      Src: /src/zlib/test/minigzip.c:350,1
    - Dst: gzwrite
      Src: /src/zlib/test/minigzip.c:354,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:356,1
    - Dst: gzerror
      Src: /src/zlib/test/minigzip.c:356,1
    - Dst: munmap
      Src: /src/zlib/test/minigzip.c:358,1
    - Dst: fclose
      Src: /src/zlib/test/minigzip.c:359,1
    - Dst: gzclose
      Src: /src/zlib/test/minigzip.c:360,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - FILE*
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 362
    functionName: gz_compress_mmap
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - gzerror
    - gzwrite
    - fileno
    - fstat
    - gzclose
    - munmap
    - mmap
    linkageType: ''
    returnType: int
    signature: int gz_compress_mmap(FILE *in, gzFile out)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gz_compress_mmap
      Src: /src/zlib/test/minigzip.c:378,1
    - Dst: fread
      Src: /src/zlib/test/minigzip.c:381,1
    - Dst: ferror
      Src: /src/zlib/test/minigzip.c:382,1
    - Dst: perror
      Src: /src/zlib/test/minigzip.c:383,1
    - Dst: exit
      Src: /src/zlib/test/minigzip.c:384,1
    - Dst: gzwrite
      Src: /src/zlib/test/minigzip.c:388,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:388,1
    - Dst: gzerror
      Src: /src/zlib/test/minigzip.c:388,1
    - Dst: fclose
      Src: /src/zlib/test/minigzip.c:390,1
    - Dst: gzclose
      Src: /src/zlib/test/minigzip.c:391,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - FILE*
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 392
    functionName: gz_compress
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - error
    - ferror
    - fclose
    - perror
    - gzerror
    - gzwrite
    - exit
    - gz_compress_mmap
    - gzclose
    - fread
    linkageType: ''
    returnType: void
    signature: void gz_compress(FILE *in, gzFile out)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gzread
      Src: /src/zlib/test/minigzip.c:403,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:404,1
    - Dst: gzerror
      Src: /src/zlib/test/minigzip.c:404,1
    - Dst: fwrite
      Src: /src/zlib/test/minigzip.c:407,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:408,1
    - Dst: fclose
      Src: /src/zlib/test/minigzip.c:411,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:411,1
    - Dst: gzclose
      Src: /src/zlib/test/minigzip.c:413,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - gzFile
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 414
    functionName: gz_uncompress
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - gzerror
    - fwrite
    - gzread
    - gzclose
    linkageType: ''
    returnType: void
    signature: void gz_uncompress(gzFile in, FILE *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/zlib/test/minigzip.c:426,1
    - Dst: strlen
      Src: /src/zlib/test/minigzip.c:426,1
    - Dst: fprintf
      Src: /src/zlib/test/minigzip.c:427,1
    - Dst: exit
      Src: /src/zlib/test/minigzip.c:428,1
    - Dst: string_copy
      Src: /src/zlib/test/minigzip.c:431,1
    - Dst: string_copy
      Src: /src/zlib/test/minigzip.c:432,1
    - Dst: fopen
      Src: /src/zlib/test/minigzip.c:434,1
    - Dst: perror
      Src: /src/zlib/test/minigzip.c:436,1
    - Dst: exit
      Src: /src/zlib/test/minigzip.c:437,1
    - Dst: gzopen
      Src: /src/zlib/test/minigzip.c:439,1
    - Dst: fclose
      Src: /src/zlib/test/minigzip.c:441,1
    - Dst: fprintf
      Src: /src/zlib/test/minigzip.c:442,1
    - Dst: exit
      Src: /src/zlib/test/minigzip.c:443,1
    - Dst: gz_compress
      Src: /src/zlib/test/minigzip.c:445,1
    - Dst: unlink
      Src: /src/zlib/test/minigzip.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - file
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 448
    functionName: file_compress
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - fclose
    - perror
    - gz_compress
    - gzopen
    - exit
    - fopen
    - strlen
    - fprintf
    - string_copy
    - unlink
    linkageType: ''
    returnType: void
    signature: void file_compress(char *file, char *mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/zlib/test/minigzip.c:459,1
    - Dst: strlen
      Src: /src/zlib/test/minigzip.c:461,1
    - Dst: fprintf
      Src: /src/zlib/test/minigzip.c:462,1
    - Dst: exit
      Src: /src/zlib/test/minigzip.c:463,1
    - Dst: string_copy
      Src: /src/zlib/test/minigzip.c:466,1
    - Dst: strcmp
      Src: /src/zlib/test/minigzip.c:468,1
    - Dst: string_copy
      Src: /src/zlib/test/minigzip.c:475,1
    - Dst: gzopen
      Src: /src/zlib/test/minigzip.c:477,1
    - Dst: fprintf
      Src: /src/zlib/test/minigzip.c:479,1
    - Dst: exit
      Src: /src/zlib/test/minigzip.c:480,1
    - Dst: fopen
      Src: /src/zlib/test/minigzip.c:482,1
    - Dst: gzclose
      Src: /src/zlib/test/minigzip.c:484,1
    - Dst: perror
      Src: /src/zlib/test/minigzip.c:485,1
    - Dst: exit
      Src: /src/zlib/test/minigzip.c:486,1
    - Dst: gz_uncompress
      Src: /src/zlib/test/minigzip.c:489,1
    - Dst: unlink
      Src: /src/zlib/test/minigzip.c:491,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 492
    functionName: file_uncompress
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - gzclose
    - perror
    - gzopen
    - exit
    - fopen
    - strlen
    - strcmp
    - gz_uncompress
    - fprintf
    - string_copy
    - unlink
    linkageType: ''
    returnType: void
    signature: void file_uncompress(char *file)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: string_copy
      Src: /src/zlib/test/minigzip.c:511,1
    - Dst: strrchr
      Src: /src/zlib/test/minigzip.c:513,1
    - Dst: strcmp
      Src: /src/zlib/test/minigzip.c:520,1
    - Dst: strcmp
      Src: /src/zlib/test/minigzip.c:522,1
    - Dst: strcmp
      Src: /src/zlib/test/minigzip.c:526,1
    - Dst: strcmp
      Src: /src/zlib/test/minigzip.c:528,1
    - Dst: strcmp
      Src: /src/zlib/test/minigzip.c:530,1
    - Dst: strcmp
      Src: /src/zlib/test/minigzip.c:532,1
    - Dst: strcmp
      Src: /src/zlib/test/minigzip.c:534,1
    - Dst: SET_BINARY_MODE
      Src: /src/zlib/test/minigzip.c:546,1
    - Dst: SET_BINARY_MODE
      Src: /src/zlib/test/minigzip.c:547,1
    - Dst: gzdopen
      Src: /src/zlib/test/minigzip.c:549,1
    - Dst: fileno
      Src: /src/zlib/test/minigzip.c:549,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:550,1
    - Dst: gz_uncompress
      Src: /src/zlib/test/minigzip.c:551,1
    - Dst: gzdopen
      Src: /src/zlib/test/minigzip.c:553,1
    - Dst: fileno
      Src: /src/zlib/test/minigzip.c:553,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:554,1
    - Dst: gz_compress
      Src: /src/zlib/test/minigzip.c:555,1
    - Dst: SET_BINARY_MODE
      Src: /src/zlib/test/minigzip.c:559,1
    - Dst: gzopen
      Src: /src/zlib/test/minigzip.c:564,1
    - Dst: fprintf
      Src: /src/zlib/test/minigzip.c:566,1
    - Dst: gz_uncompress
      Src: /src/zlib/test/minigzip.c:568,1
    - Dst: file_uncompress
      Src: /src/zlib/test/minigzip.c:570,1
    - Dst: fopen
      Src: /src/zlib/test/minigzip.c:574,1
    - Dst: perror
      Src: /src/zlib/test/minigzip.c:577,1
    - Dst: gzdopen
      Src: /src/zlib/test/minigzip.c:579,1
    - Dst: fileno
      Src: /src/zlib/test/minigzip.c:579,1
    - Dst: error
      Src: /src/zlib/test/minigzip.c:580,1
    - Dst: gz_compress
      Src: /src/zlib/test/minigzip.c:582,1
    - Dst: file_compress
      Src: /src/zlib/test/minigzip.c:586,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 505
    functionDepth: 4
    functionLinenumber: 505
    functionLinenumberEnd: 592
    functionName: main
    functionSourceFile: /src/zlib/test/minigzip.c
    functionUses: 0
    functionsReached:
    - error
    - file_uncompress
    - gz_compress
    - perror
    - strrchr
    - gzopen
    - fileno
    - gzdopen
    - fopen
    - SET_BINARY_MODE
    - strcmp
    - file_compress
    - gz_uncompress
    - fprintf
    - string_copy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - err
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: CHECK_ERR
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ERR(err, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/zlib/test/example.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - q
    - n
    - m
    argTypes:
    - void*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: myalloc
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: void *myalloc(void *q, unsigned n, unsigned m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/test/example.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - q
    - p
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: myfree
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void myfree(void *q, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/zlib/test/example.c:69,1
    - Dst: compress
      Src: /src/zlib/test/example.c:71,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:72,1
    - Dst: strcpy
      Src: /src/zlib/test/example.c:74,1
    - Dst: uncompress
      Src: /src/zlib/test/example.c:76,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:77,1
    - Dst: strcmp
      Src: /src/zlib/test/example.c:79,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:80,1
    - Dst: exit
      Src: /src/zlib/test/example.c:81,1
    - Dst: printf
      Src: /src/zlib/test/example.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - compr
    - comprLen
    - uncompr
    - uncomprLen
    argTypes:
    - Byte*
    - uLong
    - Byte*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: test_compress
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - compress
    - strcpy
    - printf
    - exit
    - strlen
    - uncompress
    - strcmp
    - fprintf
    - CHECK_ERR
    linkageType: ''
    returnType: void
    signature: "void test_compress(Byte *compr, uLong comprLen, Byte *uncompr,\n                   uLong
      uncomprLen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/test/example.c:92,1
    - Dst: strlen
      Src: /src/zlib/test/example.c:95,1
    - Dst: gzopen
      Src: /src/zlib/test/example.c:99,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:101,1
    - Dst: exit
      Src: /src/zlib/test/example.c:102,1
    - Dst: gzputc
      Src: /src/zlib/test/example.c:104,1
    - Dst: gzputs
      Src: /src/zlib/test/example.c:105,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:106,1
    - Dst: gzerror
      Src: /src/zlib/test/example.c:106,1
    - Dst: exit
      Src: /src/zlib/test/example.c:107,1
    - Dst: gzprintf
      Src: /src/zlib/test/example.c:109,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:110,1
    - Dst: gzerror
      Src: /src/zlib/test/example.c:110,1
    - Dst: exit
      Src: /src/zlib/test/example.c:111,1
    - Dst: gzseek
      Src: /src/zlib/test/example.c:113,1
    - Dst: gzclose
      Src: /src/zlib/test/example.c:114,1
    - Dst: gzopen
      Src: /src/zlib/test/example.c:116,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:118,1
    - Dst: exit
      Src: /src/zlib/test/example.c:119,1
    - Dst: strcpy
      Src: /src/zlib/test/example.c:121,1
    - Dst: gzread
      Src: /src/zlib/test/example.c:123,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:124,1
    - Dst: gzerror
      Src: /src/zlib/test/example.c:124,1
    - Dst: exit
      Src: /src/zlib/test/example.c:125,1
    - Dst: strcmp
      Src: /src/zlib/test/example.c:127,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:128,1
    - Dst: exit
      Src: /src/zlib/test/example.c:129,1
    - Dst: printf
      Src: /src/zlib/test/example.c:131,1
    - Dst: gzseek
      Src: /src/zlib/test/example.c:134,1
    - Dst: gztell
      Src: /src/zlib/test/example.c:135,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:136,1
    - Dst: gztell
      Src: /src/zlib/test/example.c:137,1
    - Dst: exit
      Src: /src/zlib/test/example.c:138,1
    - Dst: gzgetc
      Src: /src/zlib/test/example.c:141,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:142,1
    - Dst: exit
      Src: /src/zlib/test/example.c:143,1
    - Dst: gzungetc
      Src: /src/zlib/test/example.c:146,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:147,1
    - Dst: exit
      Src: /src/zlib/test/example.c:148,1
    - Dst: gzgets
      Src: /src/zlib/test/example.c:151,1
    - Dst: strlen
      Src: /src/zlib/test/example.c:152,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:153,1
    - Dst: gzerror
      Src: /src/zlib/test/example.c:153,1
    - Dst: exit
      Src: /src/zlib/test/example.c:154,1
    - Dst: strcmp
      Src: /src/zlib/test/example.c:156,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:157,1
    - Dst: exit
      Src: /src/zlib/test/example.c:158,1
    - Dst: printf
      Src: /src/zlib/test/example.c:160,1
    - Dst: gzclose
      Src: /src/zlib/test/example.c:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 59
    argCount: 3
    argNames:
    - fname
    - uncompr
    - uncomprLen
    argTypes:
    - char*
    - Byte*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 90
    functionDepth: 7
    functionLinenumber: 90
    functionLinenumberEnd: 165
    functionName: test_gzio
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - gzgets
    - strcpy
    - gzputc
    - gzerror
    - printf
    - gzseek
    - gztell
    - exit
    - gzgetc
    - gzprintf
    - gzread
    - strlen
    - strcmp
    - gzungetc
    - gzclose
    - gzputs
    - fprintf
    - gzopen
    linkageType: ''
    returnType: void
    signature: void test_gzio(const char *fname, Byte *uncompr, uLong uncomprLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/zlib/test/example.c:175,1
    - Dst: deflateInit
      Src: /src/zlib/test/example.c:181,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:182,1
    - Dst: deflate
      Src: /src/zlib/test/example.c:189,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:190,1
    - Dst: deflate
      Src: /src/zlib/test/example.c:195,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:197,1
    - Dst: deflateEnd
      Src: /src/zlib/test/example.c:200,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - compr
    - comprLen
    argTypes:
    - Byte*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 202
    functionName: test_deflate
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - deflateInit
    - deflateEnd
    - strlen
    - CHECK_ERR
    - deflate
    linkageType: ''
    returnType: void
    signature: void test_deflate(Byte *compr, uLong comprLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/zlib/test/example.c:212,1
    - Dst: inflateInit
      Src: /src/zlib/test/example.c:222,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:223,1
    - Dst: inflate
      Src: /src/zlib/test/example.c:227,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:229,1
    - Dst: inflateEnd
      Src: /src/zlib/test/example.c:232,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:233,1
    - Dst: strcmp
      Src: /src/zlib/test/example.c:235,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:236,1
    - Dst: exit
      Src: /src/zlib/test/example.c:237,1
    - Dst: printf
      Src: /src/zlib/test/example.c:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - compr
    - comprLen
    - uncompr
    - uncomprLen
    argTypes:
    - Byte*
    - uLong
    - Byte*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 241
    functionName: test_inflate
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - strcpy
    - printf
    - inflateInit
    - inflate
    - exit
    - strcmp
    - inflateEnd
    - fprintf
    - CHECK_ERR
    linkageType: ''
    returnType: void
    signature: "void test_inflate(Byte *compr, uLong comprLen, Byte *uncompr,\n                  uLong
      uncomprLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: deflateInit
      Src: /src/zlib/test/example.c:255,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:256,1
    - Dst: deflate
      Src: /src/zlib/test/example.c:266,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:267,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:269,1
    - Dst: exit
      Src: /src/zlib/test/example.c:270,1
    - Dst: deflateParams
      Src: /src/zlib/test/example.c:274,1
    - Dst: deflate
      Src: /src/zlib/test/example.c:277,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:278,1
    - Dst: deflateParams
      Src: /src/zlib/test/example.c:281,1
    - Dst: deflate
      Src: /src/zlib/test/example.c:284,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:285,1
    - Dst: deflate
      Src: /src/zlib/test/example.c:287,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:289,1
    - Dst: exit
      Src: /src/zlib/test/example.c:290,1
    - Dst: deflateEnd
      Src: /src/zlib/test/example.c:292,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 4
    argNames:
    - compr
    - comprLen
    - uncompr
    - uncomprLen
    argTypes:
    - Byte*
    - uLong
    - Byte*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 294
    functionName: test_large_deflate
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - deflateInit
    - exit
    - deflateEnd
    - deflateParams
    - fprintf
    - CHECK_ERR
    - deflate
    linkageType: ''
    returnType: void
    signature: "void test_large_deflate(Byte *compr, uLong comprLen, Byte *uncompr,\n
      \                       uLong uncomprLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/zlib/test/example.c:304,1
    - Dst: inflateInit
      Src: /src/zlib/test/example.c:313,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:314,1
    - Dst: inflate
      Src: /src/zlib/test/example.c:319,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:321,1
    - Dst: inflateEnd
      Src: /src/zlib/test/example.c:324,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:325,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:328,1
    - Dst: exit
      Src: /src/zlib/test/example.c:329,1
    - Dst: printf
      Src: /src/zlib/test/example.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - compr
    - comprLen
    - uncompr
    - uncomprLen
    argTypes:
    - Byte*
    - uLong
    - Byte*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 333
    functionName: test_large_inflate
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - strcpy
    - printf
    - inflateInit
    - inflate
    - exit
    - inflateEnd
    - fprintf
    - CHECK_ERR
    linkageType: ''
    returnType: void
    signature: "void test_large_inflate(Byte *compr, uLong comprLen, Byte *uncompr,\n
      \                       uLong uncomprLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/zlib/test/example.c:341,1
    - Dst: deflateInit
      Src: /src/zlib/test/example.c:347,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:348,1
    - Dst: deflate
      Src: /src/zlib/test/example.c:354,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:355,1
    - Dst: deflate
      Src: /src/zlib/test/example.c:360,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:362,1
    - Dst: deflateEnd
      Src: /src/zlib/test/example.c:364,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - compr
    - comprLen
    argTypes:
    - Byte*
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 368
    functionName: test_flush
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - deflateInit
    - deflateEnd
    - strlen
    - CHECK_ERR
    - deflate
    linkageType: ''
    returnType: void
    signature: void test_flush(Byte *compr, uLong *comprLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/zlib/test/example.c:378,1
    - Dst: inflateInit
      Src: /src/zlib/test/example.c:387,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:388,1
    - Dst: inflate
      Src: /src/zlib/test/example.c:393,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:394,1
    - Dst: inflateSync
      Src: /src/zlib/test/example.c:397,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:398,1
    - Dst: inflate
      Src: /src/zlib/test/example.c:400,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:402,1
    - Dst: exit
      Src: /src/zlib/test/example.c:403,1
    - Dst: inflateEnd
      Src: /src/zlib/test/example.c:405,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:406,1
    - Dst: printf
      Src: /src/zlib/test/example.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 4
    argNames:
    - compr
    - comprLen
    - uncompr
    - uncomprLen
    argTypes:
    - Byte*
    - uLong
    - Byte*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 409
    functionName: test_sync
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - strcpy
    - printf
    - inflateInit
    - inflate
    - exit
    - inflateSync
    - inflateEnd
    - fprintf
    - CHECK_ERR
    linkageType: ''
    returnType: void
    signature: "void test_sync(Byte *compr, uLong comprLen, Byte *uncompr,\n                      uLong
      uncomprLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflateInit
      Src: /src/zlib/test/example.c:422,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:423,1
    - Dst: deflateSetDictionary
      Src: /src/zlib/test/example.c:425,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:427,1
    - Dst: strlen
      Src: /src/zlib/test/example.c:434,1
    - Dst: deflate
      Src: /src/zlib/test/example.c:436,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:438,1
    - Dst: exit
      Src: /src/zlib/test/example.c:439,1
    - Dst: deflateEnd
      Src: /src/zlib/test/example.c:441,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - compr
    - comprLen
    argTypes:
    - Byte*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 443
    functionName: test_dict_deflate
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - deflateInit
    - exit
    - deflateEnd
    - strlen
    - deflateSetDictionary
    - fprintf
    - CHECK_ERR
    - deflate
    linkageType: ''
    returnType: void
    signature: void test_dict_deflate(Byte *compr, uLong comprLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/zlib/test/example.c:453,1
    - Dst: inflateInit
      Src: /src/zlib/test/example.c:462,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:463,1
    - Dst: inflate
      Src: /src/zlib/test/example.c:469,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:473,1
    - Dst: exit
      Src: /src/zlib/test/example.c:474,1
    - Dst: inflateSetDictionary
      Src: /src/zlib/test/example.c:476,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:479,1
    - Dst: inflateEnd
      Src: /src/zlib/test/example.c:482,1
    - Dst: CHECK_ERR
      Src: /src/zlib/test/example.c:483,1
    - Dst: strcmp
      Src: /src/zlib/test/example.c:485,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:486,1
    - Dst: exit
      Src: /src/zlib/test/example.c:487,1
    - Dst: printf
      Src: /src/zlib/test/example.c:489,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - compr
    - comprLen
    - uncompr
    - uncomprLen
    argTypes:
    - Byte*
    - uLong
    - Byte*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 491
    functionName: test_dict_inflate
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - strcpy
    - printf
    - inflateInit
    - inflate
    - exit
    - strcmp
    - inflateSetDictionary
    - inflateEnd
    - fprintf
    - CHECK_ERR
    linkageType: ''
    returnType: void
    signature: "void test_dict_inflate(Byte *compr, uLong comprLen, Byte *uncompr,\n
      \                      uLong uncomprLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: zlibVersion
      Src: /src/zlib/test/example.c:503,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:504,1
    - Dst: exit
      Src: /src/zlib/test/example.c:505,1
    - Dst: strcmp
      Src: /src/zlib/test/example.c:507,1
    - Dst: zlibVersion
      Src: /src/zlib/test/example.c:507,1
    - Dst: fprintf
      Src: /src/zlib/test/example.c:508,1
    - Dst: zlibVersion
      Src: /src/zlib/test/example.c:509,1
    - Dst: printf
      Src: /src/zlib/test/example.c:512,1
    - Dst: zlibCompileFlags
      Src: /src/zlib/test/example.c:513,1
    - Dst: calloc
      Src: /src/zlib/test/example.c:515,1
    - Dst: calloc
      Src: /src/zlib/test/example.c:516,1
    - Dst: printf
      Src: /src/zlib/test/example.c:521,1
    - Dst: exit
      Src: /src/zlib/test/example.c:522,1
    - Dst: test_compress
      Src: /src/zlib/test/example.c:529,1
    - Dst: test_gzio
      Src: /src/zlib/test/example.c:531,1
    - Dst: test_deflate
      Src: /src/zlib/test/example.c:535,1
    - Dst: test_inflate
      Src: /src/zlib/test/example.c:536,1
    - Dst: test_large_deflate
      Src: /src/zlib/test/example.c:538,1
    - Dst: test_large_inflate
      Src: /src/zlib/test/example.c:539,1
    - Dst: test_flush
      Src: /src/zlib/test/example.c:541,1
    - Dst: test_sync
      Src: /src/zlib/test/example.c:542,1
    - Dst: test_dict_deflate
      Src: /src/zlib/test/example.c:545,1
    - Dst: test_dict_inflate
      Src: /src/zlib/test/example.c:546,1
    - Dst: free
      Src: /src/zlib/test/example.c:548,1
    - Dst: free
      Src: /src/zlib/test/example.c:549,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 497
    functionDepth: 8
    functionLinenumber: 497
    functionLinenumberEnd: 552
    functionName: main
    functionSourceFile: /src/zlib/test/example.c
    functionUses: 0
    functionsReached:
    - test_large_deflate
    - test_deflate
    - test_flush
    - printf
    - test_dict_inflate
    - test_gzio
    - exit
    - zlibCompileFlags
    - test_dict_deflate
    - free
    - test_large_inflate
    - test_compress
    - test_inflate
    - strcmp
    - test_sync
    - calloc
    - fprintf
    - zlibVersion
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/examples/gzjoin.c:68,1
    - Dst: exit
      Src: /src/zlib/examples/gzjoin.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - why1
    - why2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: bail
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: local
    signature: local bail(char *why1, char *why2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/zlib/examples/gzjoin.c:91,1
    - Dst: free
      Src: /src/zlib/examples/gzjoin.c:93,1
    - Dst: free
      Src: /src/zlib/examples/gzjoin.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - bin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: bclose
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - close
    - free
    linkageType: ''
    returnType: local
    signature: local bclose(bin *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/examples/gzjoin.c:104,1
    - Dst: malloc
      Src: /src/zlib/examples/gzjoin.c:107,1
    - Dst: open
      Src: /src/zlib/examples/gzjoin.c:108,1
    - Dst: bclose
      Src: /src/zlib/examples/gzjoin.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 117
    functionName: bopen
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - bclose
    - malloc
    - open
    linkageType: ''
    returnType: local
    signature: local *bopen(char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/zlib/examples/gzjoin.c:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - bin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: bload
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: local
    signature: local bload(bin *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - in
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: bget
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bget(in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:149,1
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:150,1
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:151,1
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - bin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: bget4
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - bget
    linkageType: ''
    returnType: local unsigned long
    signature: local unsigned long bget4(bin *in)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/zlib/examples/gzjoin.c:182,1
    - Dst: read
      Src: /src/zlib/examples/gzjoin.c:183,1
    - Dst: bail
      Src: /src/zlib/examples/gzjoin.c:184,1
    - Dst: lseek
      Src: /src/zlib/examples/gzjoin.c:189,1
    - Dst: bload
      Src: /src/zlib/examples/gzjoin.c:194,1
    - Dst: bail
      Src: /src/zlib/examples/gzjoin.c:196,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - in
    - skip
    argTypes:
    - bin*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 199
    functionName: bskip
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - read
    - lseek
    - bload
    - bail
    linkageType: ''
    returnType: local
    signature: local bskip(bin *in, unsigned skip)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:209,1
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:209,1
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:209,1
    - Dst: bail
      Src: /src/zlib/examples/gzjoin.c:210,1
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:213,1
    - Dst: bail
      Src: /src/zlib/examples/gzjoin.c:215,1
    - Dst: bskip
      Src: /src/zlib/examples/gzjoin.c:218,1
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:224,1
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:225,1
    - Dst: bskip
      Src: /src/zlib/examples/gzjoin.c:226,1
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:231,1
    - Dst: bget
      Src: /src/zlib/examples/gzjoin.c:236,1
    - Dst: bskip
      Src: /src/zlib/examples/gzjoin.c:241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - in
    argTypes:
    - bin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 242
    functionName: gzhead
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - bskip
    - bget
    - bail
    linkageType: ''
    returnType: local
    signature: local gzhead(bin *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:247,1
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:248,1
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:249,1
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - val
    - out
    argTypes:
    - unsigned long
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 251
    functionName: put4
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - putc
    linkageType: ''
    returnType: local
    signature: local put4(unsigned long val, FILE *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bload
      Src: /src/zlib/examples/gzjoin.c:257,1
    - Dst: bail
      Src: /src/zlib/examples/gzjoin.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - strm
    - in
    argTypes:
    - z_streamp
    - bin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: zpull
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - bail
    - bload
    linkageType: ''
    returnType: local
    signature: local zpull(z_streamp strm, bin *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/zlib/examples/gzjoin.c:267,1
    - Dst: crc32
      Src: /src/zlib/examples/gzjoin.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - crc
    - tot
    - out
    argTypes:
    - unsigned long*
    - unsigned long*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: gzinit
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - fwrite
    - crc32
    linkageType: ''
    returnType: local
    signature: local gzinit(unsigned long *crc, unsigned long *tot, FILE *out)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: bopen
      Src: /src/zlib/examples/gzjoin.c:292,1
    - Dst: bail
      Src: /src/zlib/examples/gzjoin.c:294,1
    - Dst: gzhead
      Src: /src/zlib/examples/gzjoin.c:295,1
    - Dst: malloc
      Src: /src/zlib/examples/gzjoin.c:299,1
    - Dst: inflateInit2
      Src: /src/zlib/examples/gzjoin.c:305,1
    - Dst: bail
      Src: /src/zlib/examples/gzjoin.c:307,1
    - Dst: zpull
      Src: /src/zlib/examples/gzjoin.c:311,1
    - Dst: fwrite
      Src: /src/zlib/examples/gzjoin.c:320,1
    - Dst: zpull
      Src: /src/zlib/examples/gzjoin.c:323,1
    - Dst: inflate
      Src: /src/zlib/examples/gzjoin.c:329,1
    - Dst: bail
      Src: /src/zlib/examples/gzjoin.c:332,1
    - Dst: bail
      Src: /src/zlib/examples/gzjoin.c:334,1
    - Dst: fwrite
      Src: /src/zlib/examples/gzjoin.c:361,1
    - Dst: zpull
      Src: /src/zlib/examples/gzjoin.c:364,1
    - Dst: fwrite
      Src: /src/zlib/examples/gzjoin.c:379,1
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:383,1
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:389,1
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:391,1
    - Dst: fwrite
      Src: /src/zlib/examples/gzjoin.c:392,1
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:398,1
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:401,1
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:404,1
    - Dst: putc
      Src: /src/zlib/examples/gzjoin.c:405,1
    - Dst: crc32_combine
      Src: /src/zlib/examples/gzjoin.c:411,1
    - Dst: bget4
      Src: /src/zlib/examples/gzjoin.c:411,1
    - Dst: inflateEnd
      Src: /src/zlib/examples/gzjoin.c:415,1
    - Dst: free
      Src: /src/zlib/examples/gzjoin.c:416,1
    - Dst: bclose
      Src: /src/zlib/examples/gzjoin.c:417,1
    - Dst: put4
      Src: /src/zlib/examples/gzjoin.c:421,1
    - Dst: put4
      Src: /src/zlib/examples/gzjoin.c:422,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 96
    argCount: 5
    argNames:
    - name
    - clr
    - crc
    - tot
    - out
    argTypes:
    - char*
    - int
    - unsigned long*
    - unsigned long*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 279
    functionDepth: 5
    functionLinenumber: 279
    functionLinenumberEnd: 424
    functionName: gzcopy
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - bopen
    - putc
    - inflateInit2
    - put4
    - bail
    - fwrite
    - inflate
    - crc32_combine
    - zpull
    - bclose
    - bget4
    - inflateEnd
    - free
    - malloc
    - gzhead
    linkageType: ''
    returnType: local
    signature: "local gzcopy(char *name, int clr, unsigned long *crc, unsigned long
      *tot,\n                  FILE *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/zlib/examples/gzjoin.c:437,1
    - Dst: gzinit
      Src: /src/zlib/examples/gzjoin.c:443,1
    - Dst: gzcopy
      Src: /src/zlib/examples/gzjoin.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 427
    functionDepth: 6
    functionLinenumber: 427
    functionLinenumberEnd: 449
    functionName: main
    functionSourceFile: /src/zlib/examples/gzjoin.c
    functionUses: 0
    functionsReached:
    - gzinit
    - gzcopy
    - fputs
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - file
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: SET_BINARY_MODE
    functionSourceFile: /src/zlib/examples/zpipe.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BINARY_MODE(file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: deflateInit
      Src: /src/zlib/examples/zpipe.c:49,1
    - Dst: fread
      Src: /src/zlib/examples/zpipe.c:55,1
    - Dst: ferror
      Src: /src/zlib/examples/zpipe.c:56,1
    - Dst: deflateEnd
      Src: /src/zlib/examples/zpipe.c:57,1
    - Dst: feof
      Src: /src/zlib/examples/zpipe.c:60,1
    - Dst: deflate
      Src: /src/zlib/examples/zpipe.c:68,1
    - Dst: assert
      Src: /src/zlib/examples/zpipe.c:69,1
    - Dst: fwrite
      Src: /src/zlib/examples/zpipe.c:71,1
    - Dst: ferror
      Src: /src/zlib/examples/zpipe.c:71,1
    - Dst: deflateEnd
      Src: /src/zlib/examples/zpipe.c:72,1
    - Dst: assert
      Src: /src/zlib/examples/zpipe.c:76,1
    - Dst: assert
      Src: /src/zlib/examples/zpipe.c:80,1
    - Dst: deflateEnd
      Src: /src/zlib/examples/zpipe.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - source
    - dest
    - level
    argTypes:
    - FILE*
    - FILE*
    - int
    assertStmts:
    - condition: (ret != Z_STREAM_ERROR)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/zlib/examples/zpipe.c
    - condition: (ret == Z_STREAM_END)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/zlib/examples/zpipe.c
    - condition: (strm.avail_in == 0)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/zlib/examples/zpipe.c
    constantsTouched: []
    func_position:
      end: 85
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 85
    functionName: def
    functionSourceFile: /src/zlib/examples/zpipe.c
    functionUses: 0
    functionsReached:
    - ferror
    - deflateInit
    - feof
    - assert
    - fwrite
    - deflateEnd
    - fread
    - deflate
    linkageType: ''
    returnType: int
    signature: int def(FILE *source, FILE *dest, int level)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit
      Src: /src/zlib/examples/zpipe.c:107,1
    - Dst: fread
      Src: /src/zlib/examples/zpipe.c:113,1
    - Dst: ferror
      Src: /src/zlib/examples/zpipe.c:114,1
    - Dst: inflateEnd
      Src: /src/zlib/examples/zpipe.c:115,1
    - Dst: inflate
      Src: /src/zlib/examples/zpipe.c:126,1
    - Dst: assert
      Src: /src/zlib/examples/zpipe.c:127,1
    - Dst: inflateEnd
      Src: /src/zlib/examples/zpipe.c:133,1
    - Dst: fwrite
      Src: /src/zlib/examples/zpipe.c:137,1
    - Dst: ferror
      Src: /src/zlib/examples/zpipe.c:137,1
    - Dst: inflateEnd
      Src: /src/zlib/examples/zpipe.c:138,1
    - Dst: inflateEnd
      Src: /src/zlib/examples/zpipe.c:147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - FILE*
    - FILE*
    assertStmts:
    - condition: (ret != Z_STREAM_ERROR)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/zlib/examples/zpipe.c
    constantsTouched: []
    func_position:
      end: 149
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 149
    functionName: inf
    functionSourceFile: /src/zlib/examples/zpipe.c
    functionUses: 4
    functionsReached:
    - ferror
    - assert
    - fwrite
    - inflateInit
    - inflate
    - inflateEnd
    - fread
    linkageType: ''
    returnType: int
    signature: int inf(FILE *source, FILE *dest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/zlib/examples/zpipe.c:154,1
    - Dst: ferror
      Src: /src/zlib/examples/zpipe.c:157,1
    - Dst: fputs
      Src: /src/zlib/examples/zpipe.c:158,1
    - Dst: ferror
      Src: /src/zlib/examples/zpipe.c:159,1
    - Dst: fputs
      Src: /src/zlib/examples/zpipe.c:160,1
    - Dst: fputs
      Src: /src/zlib/examples/zpipe.c:163,1
    - Dst: fputs
      Src: /src/zlib/examples/zpipe.c:166,1
    - Dst: fputs
      Src: /src/zlib/examples/zpipe.c:169,1
    - Dst: fputs
      Src: /src/zlib/examples/zpipe.c:172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: zerr
    functionSourceFile: /src/zlib/examples/zpipe.c
    functionUses: 0
    functionsReached:
    - ferror
    - fputs
    linkageType: ''
    returnType: void
    signature: void zerr(int ret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SET_BINARY_MODE
      Src: /src/zlib/examples/zpipe.c:182,1
    - Dst: SET_BINARY_MODE
      Src: /src/zlib/examples/zpipe.c:183,1
    - Dst: def
      Src: /src/zlib/examples/zpipe.c:187,1
    - Dst: zerr
      Src: /src/zlib/examples/zpipe.c:189,1
    - Dst: strcmp
      Src: /src/zlib/examples/zpipe.c:194,1
    - Dst: inf
      Src: /src/zlib/examples/zpipe.c:195,1
    - Dst: zerr
      Src: /src/zlib/examples/zpipe.c:197,1
    - Dst: fputs
      Src: /src/zlib/examples/zpipe.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 206
    functionName: main
    functionSourceFile: /src/zlib/examples/zpipe.c
    functionUses: 0
    functionsReached:
    - fputs
    - zerr
    - SET_BINARY_MODE
    - strcmp
    - def
    - inf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: BAIL
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BAIL(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: PULL2
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL2(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: PULL4
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL4(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: PULL8
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL8(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: PUT2
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT2(p,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: PUT4
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT4(p,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: PUT8
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT8(p,a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:353,1
    - Dst: open
      Src: /src/zlib/examples/gzlog.c:354,1
    - Dst: stat
      Src: /src/zlib/examples/gzlog.c:357,1
    - Dst: time
      Src: /src/zlib/examples/gzlog.c:357,1
    - Dst: unlink
      Src: /src/zlib/examples/gzlog.c:358,1
    - Dst: sleep
      Src: /src/zlib/examples/gzlog.c:361,1
    - Dst: close
      Src: /src/zlib/examples/gzlog.c:363,1
    - Dst: stat
      Src: /src/zlib/examples/gzlog.c:364,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 367
    functionName: log_lock
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - open
    - strcpy
    - stat
    - time
    - close
    - sleep
    - unlink
    linkageType: ''
    returnType: local
    signature: local log_lock(struct log *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:376,1
    - Dst: utimes
      Src: /src/zlib/examples/gzlog.c:377,1
    - Dst: stat
      Src: /src/zlib/examples/gzlog.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 380
    functionName: log_touch
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - utimes
    - stat
    - strcpy
    linkageType: ''
    returnType: local
    signature: local log_touch(struct log *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:388,1
    - Dst: stat
      Src: /src/zlib/examples/gzlog.c:389,1
    - Dst: log_touch
      Src: /src/zlib/examples/gzlog.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: log_check
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - stat
    - strcpy
    - log_touch
    linkageType: ''
    returnType: local
    signature: local log_check(struct log *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_check
      Src: /src/zlib/examples/gzlog.c:398,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:400,1
    - Dst: unlink
      Src: /src/zlib/examples/gzlog.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: log_unlock
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - log_check
    - strcpy
    - unlink
    linkageType: ''
    returnType: local
    signature: local log_unlock(struct log *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:415,1
    - Dst: read
      Src: /src/zlib/examples/gzlog.c:416,1
    - Dst: memcmp
      Src: /src/zlib/examples/gzlog.c:417,1
    - Dst: PULL8
      Src: /src/zlib/examples/gzlog.c:420,1
    - Dst: PULL8
      Src: /src/zlib/examples/gzlog.c:421,1
    - Dst: PULL4
      Src: /src/zlib/examples/gzlog.c:422,1
    - Dst: PULL4
      Src: /src/zlib/examples/gzlog.c:423,1
    - Dst: PULL4
      Src: /src/zlib/examples/gzlog.c:424,1
    - Dst: PULL4
      Src: /src/zlib/examples/gzlog.c:425,1
    - Dst: PULL2
      Src: /src/zlib/examples/gzlog.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 430
    functionName: log_head
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - read
    - PULL4
    - lseek
    - PULL8
    - PULL2
    - memcmp
    linkageType: ''
    returnType: local
    signature: local log_head(struct log *log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PUT8
      Src: /src/zlib/examples/gzlog.c:442,1
    - Dst: PUT8
      Src: /src/zlib/examples/gzlog.c:443,1
    - Dst: PUT4
      Src: /src/zlib/examples/gzlog.c:444,1
    - Dst: PUT4
      Src: /src/zlib/examples/gzlog.c:445,1
    - Dst: PUT4
      Src: /src/zlib/examples/gzlog.c:446,1
    - Dst: PUT4
      Src: /src/zlib/examples/gzlog.c:447,1
    - Dst: PUT2
      Src: /src/zlib/examples/gzlog.c:448,1
    - Dst: fsync
      Src: /src/zlib/examples/gzlog.c:450,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:451,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:452,1
    - Dst: fsync
      Src: /src/zlib/examples/gzlog.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - log
    - op
    argTypes:
    - struct log*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 455
    functionName: log_mark
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - PUT4
    - lseek
    - write
    - PUT2
    - fsync
    - PUT8
    linkageType: ''
    returnType: local
    signature: local log_mark(struct log *log, int op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:476,1
    - Dst: read
      Src: /src/zlib/examples/gzlog.c:477,1
    - Dst: PUT2
      Src: /src/zlib/examples/gzlog.c:489,1
    - Dst: PUT2
      Src: /src/zlib/examples/gzlog.c:490,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:491,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:492,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:493,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - log
    - last
    argTypes:
    - struct log*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 494
    functionName: log_last
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - PUT2
    - read
    - lseek
    - write
    linkageType: ''
    returnType: local
    signature: local log_last(struct log *log, int last)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_last
      Src: /src/zlib/examples/gzlog.c:510,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:521,1
    - Dst: BAIL
      Src: /src/zlib/examples/gzlog.c:523,1
    - Dst: crc32
      Src: /src/zlib/examples/gzlog.c:524,1
    - Dst: log_last
      Src: /src/zlib/examples/gzlog.c:534,1
    - Dst: log_last
      Src: /src/zlib/examples/gzlog.c:543,1
    - Dst: BAIL
      Src: /src/zlib/examples/gzlog.c:545,1
    - Dst: PUT4
      Src: /src/zlib/examples/gzlog.c:550,1
    - Dst: PUT4
      Src: /src/zlib/examples/gzlog.c:551,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:552,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:553,1
    - Dst: ftruncate
      Src: /src/zlib/examples/gzlog.c:553,1
    - Dst: log_mark
      Src: /src/zlib/examples/gzlog.c:557,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:559,1
    - Dst: unlink
      Src: /src/zlib/examples/gzlog.c:560,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - log
    - data
    - len
    argTypes:
    - struct log*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 562
    functionName: log_append
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - ftruncate
    - PUT4
    - log_last
    - strcpy
    - log_mark
    - write
    - lseek
    - crc32
    - BAIL
    - unlink
    linkageType: ''
    returnType: local
    signature: local log_append(struct log *log, unsigned char *data, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:577,1
    - Dst: unlink
      Src: /src/zlib/examples/gzlog.c:578,1
    - Dst: BAIL
      Src: /src/zlib/examples/gzlog.c:579,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:582,1
    - Dst: malloc
      Src: /src/zlib/examples/gzlog.c:583,1
    - Dst: strlen
      Src: /src/zlib/examples/gzlog.c:583,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:586,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:587,1
    - Dst: rename
      Src: /src/zlib/examples/gzlog.c:588,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:589,1
    - Dst: BAIL
      Src: /src/zlib/examples/gzlog.c:592,1
    - Dst: log_mark
      Src: /src/zlib/examples/gzlog.c:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 596
    functionName: log_replace
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - strcpy
    - log_mark
    - rename
    - strlen
    - free
    - malloc
    - BAIL
    - unlink
    linkageType: ''
    returnType: local
    signature: local log_replace(struct log *log)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: deflateInit2
      Src: /src/zlib/examples/gzlog.c:623,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:628,1
    - Dst: open
      Src: /src/zlib/examples/gzlog.c:629,1
    - Dst: read
      Src: /src/zlib/examples/gzlog.c:631,1
    - Dst: close
      Src: /src/zlib/examples/gzlog.c:632,1
    - Dst: deflateEnd
      Src: /src/zlib/examples/gzlog.c:634,1
    - Dst: deflateSetDictionary
      Src: /src/zlib/examples/gzlog.c:638,1
    - Dst: log_touch
      Src: /src/zlib/examples/gzlog.c:640,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:644,1
    - Dst: read
      Src: /src/zlib/examples/gzlog.c:646,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:646,1
    - Dst: deflateEnd
      Src: /src/zlib/examples/gzlog.c:647,1
    - Dst: deflatePrime
      Src: /src/zlib/examples/gzlog.c:650,1
    - Dst: deflate
      Src: /src/zlib/examples/gzlog.c:661,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:663,1
    - Dst: deflateEnd
      Src: /src/zlib/examples/gzlog.c:664,1
    - Dst: log_touch
      Src: /src/zlib/examples/gzlog.c:667,1
    - Dst: deflateEnd
      Src: /src/zlib/examples/gzlog.c:670,1
    - Dst: BAIL
      Src: /src/zlib/examples/gzlog.c:671,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:677,1
    - Dst: read
      Src: /src/zlib/examples/gzlog.c:678,1
    - Dst: PUT4
      Src: /src/zlib/examples/gzlog.c:702,1
    - Dst: PUT4
      Src: /src/zlib/examples/gzlog.c:703,1
    - Dst: log_last
      Src: /src/zlib/examples/gzlog.c:704,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:704,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:705,1
    - Dst: ftruncate
      Src: /src/zlib/examples/gzlog.c:705,1
    - Dst: BAIL
      Src: /src/zlib/examples/gzlog.c:707,1
    - Dst: log_mark
      Src: /src/zlib/examples/gzlog.c:710,1
    - Dst: log_replace
      Src: /src/zlib/examples/gzlog.c:714,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 3
    argNames:
    - log
    - data
    - len
    argTypes:
    - struct log*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 715
    functionName: log_compress
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - ftruncate
    - read
    - PUT4
    - open
    - strcpy
    - log_touch
    - log_last
    - log_mark
    - deflatePrime
    - lseek
    - deflateInit2
    - write
    - deflateEnd
    - close
    - deflateSetDictionary
    - log_replace
    - BAIL
    - deflate
    linkageType: ''
    returnType: local
    signature: local log_compress(struct log *log, unsigned char *data, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/zlib/examples/gzlog.c:723,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:724,1
    - Dst: fopen
      Src: /src/zlib/examples/gzlog.c:725,1
    - Dst: fprintf
      Src: /src/zlib/examples/gzlog.c:728,1
    - Dst: ctime
      Src: /src/zlib/examples/gzlog.c:728,1
    - Dst: fclose
      Src: /src/zlib/examples/gzlog.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - log
    - op
    - record
    argTypes:
    - struct log*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 732
    functionName: log_log
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - fclose
    - strcpy
    - ctime
    - fopen
    - fprintf
    - time
    linkageType: ''
    returnType: local
    signature: local log_log(struct log *log, int op, char *record)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_log
      Src: /src/zlib/examples/gzlog.c:746,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:750,1
    - Dst: stat
      Src: /src/zlib/examples/gzlog.c:751,1
    - Dst: malloc
      Src: /src/zlib/examples/gzlog.c:754,1
    - Dst: log_log
      Src: /src/zlib/examples/gzlog.c:755,1
    - Dst: open
      Src: /src/zlib/examples/gzlog.c:758,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:759,1
    - Dst: log_log
      Src: /src/zlib/examples/gzlog.c:760,1
    - Dst: read
      Src: /src/zlib/examples/gzlog.c:763,1
    - Dst: close
      Src: /src/zlib/examples/gzlog.c:764,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:766,1
    - Dst: log_log
      Src: /src/zlib/examples/gzlog.c:767,1
    - Dst: log_log
      Src: /src/zlib/examples/gzlog.c:770,1
    - Dst: log_log
      Src: /src/zlib/examples/gzlog.c:773,1
    - Dst: log_append
      Src: /src/zlib/examples/gzlog.c:779,1
    - Dst: log_compress
      Src: /src/zlib/examples/gzlog.c:782,1
    - Dst: log_replace
      Src: /src/zlib/examples/gzlog.c:785,1
    - Dst: log_log
      Src: /src/zlib/examples/gzlog.c:789,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:793,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - log
    - op
    argTypes:
    - struct log*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 738
    functionDepth: 4
    functionLinenumber: 738
    functionLinenumberEnd: 795
    functionName: log_recover
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - read
    - open
    - strcpy
    - log_compress
    - stat
    - log_append
    - log_replace
    - free
    - close
    - malloc
    - log_log
    linkageType: ''
    returnType: local
    signature: local log_recover(struct log *log, int op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/zlib/examples/gzlog.c:801,1
    - Dst: log_unlock
      Src: /src/zlib/examples/gzlog.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 798
    functionDepth: 4
    functionLinenumber: 798
    functionLinenumberEnd: 804
    functionName: log_close
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - close
    - log_unlock
    linkageType: ''
    returnType: local
    signature: local log_close(struct log *log)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/zlib/examples/gzlog.c:822,1
    - Dst: log_lock
      Src: /src/zlib/examples/gzlog.c:826,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:830,1
    - Dst: open
      Src: /src/zlib/examples/gzlog.c:831,1
    - Dst: log_close
      Src: /src/zlib/examples/gzlog.c:833,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:838,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:839,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:840,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:841,1
    - Dst: log_close
      Src: /src/zlib/examples/gzlog.c:842,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:845,1
    - Dst: unlink
      Src: /src/zlib/examples/gzlog.c:846,1
    - Dst: log_head
      Src: /src/zlib/examples/gzlog.c:850,1
    - Dst: log_close
      Src: /src/zlib/examples/gzlog.c:851,1
    - Dst: log_recover
      Src: /src/zlib/examples/gzlog.c:856,1
    - Dst: log_close
      Src: /src/zlib/examples/gzlog.c:857,1
    - Dst: log_touch
      Src: /src/zlib/examples/gzlog.c:862,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 815
    functionDepth: 5
    functionLinenumber: 815
    functionLinenumberEnd: 864
    functionName: log_open
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - open
    - strcpy
    - log_lock
    - log_touch
    - log_close
    - lseek
    - write
    - log_recover
    - close
    - log_head
    - unlink
    linkageType: ''
    returnType: local
    signature: local log_open(struct log *log)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/examples/gzlog.c:877,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:880,1
    - Dst: strlen
      Src: /src/zlib/examples/gzlog.c:884,1
    - Dst: malloc
      Src: /src/zlib/examples/gzlog.c:885,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:887,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:890,1
    - Dst: log_open
      Src: /src/zlib/examples/gzlog.c:895,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:896,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 867
    functionDepth: 6
    functionLinenumber: 867
    functionLinenumberEnd: 903
    functionName: gzlog_open
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - strcpy
    - strlen
    - free
    - malloc
    - log_open
    linkageType: ''
    returnType: gzlog
    signature: gzlog *gzlog_open(char *path)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/zlib/examples/gzlog.c:919,1
    - Dst: log_check
      Src: /src/zlib/examples/gzlog.c:925,1
    - Dst: log_open
      Src: /src/zlib/examples/gzlog.c:925,1
    - Dst: malloc
      Src: /src/zlib/examples/gzlog.c:931,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:937,1
    - Dst: read
      Src: /src/zlib/examples/gzlog.c:941,1
    - Dst: PULL2
      Src: /src/zlib/examples/gzlog.c:943,1
    - Dst: read
      Src: /src/zlib/examples/gzlog.c:945,1
    - Dst: lseek
      Src: /src/zlib/examples/gzlog.c:949,1
    - Dst: log_touch
      Src: /src/zlib/examples/gzlog.c:951,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:954,1
    - Dst: open
      Src: /src/zlib/examples/gzlog.c:955,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:958,1
    - Dst: close
      Src: /src/zlib/examples/gzlog.c:959,1
    - Dst: log_touch
      Src: /src/zlib/examples/gzlog.c:961,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:964,1
    - Dst: open
      Src: /src/zlib/examples/gzlog.c:965,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:969,1
    - Dst: close
      Src: /src/zlib/examples/gzlog.c:970,1
    - Dst: log_touch
      Src: /src/zlib/examples/gzlog.c:972,1
    - Dst: log_mark
      Src: /src/zlib/examples/gzlog.c:977,1
    - Dst: BAIL
      Src: /src/zlib/examples/gzlog.c:979,1
    - Dst: log_compress
      Src: /src/zlib/examples/gzlog.c:982,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:983,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:988,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 51
    argCount: 1
    argNames:
    - logd
    argTypes:
    - gzlog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 910
    functionDepth: 6
    functionLinenumber: 910
    functionLinenumberEnd: 990
    functionName: gzlog_compress
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - log_check
    - read
    - log_touch
    - strcpy
    - open
    - log_mark
    - log_compress
    - lseek
    - write
    - free
    - PULL2
    - strcmp
    - close
    - malloc
    - BAIL
    - log_open
    linkageType: ''
    returnType: int
    signature: int gzlog_compress(gzlog *logd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/zlib/examples/gzlog.c:1003,1
    - Dst: log_check
      Src: /src/zlib/examples/gzlog.c:1011,1
    - Dst: log_open
      Src: /src/zlib/examples/gzlog.c:1011,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:1015,1
    - Dst: open
      Src: /src/zlib/examples/gzlog.c:1016,1
    - Dst: write
      Src: /src/zlib/examples/gzlog.c:1019,1
    - Dst: close
      Src: /src/zlib/examples/gzlog.c:1020,1
    - Dst: log_touch
      Src: /src/zlib/examples/gzlog.c:1022,1
    - Dst: log_mark
      Src: /src/zlib/examples/gzlog.c:1025,1
    - Dst: BAIL
      Src: /src/zlib/examples/gzlog.c:1027,1
    - Dst: log_append
      Src: /src/zlib/examples/gzlog.c:1030,1
    - Dst: gzlog_compress
      Src: /src/zlib/examples/gzlog.c:1038,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - logd
    - data
    - len
    argTypes:
    - gzlog*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 997
    functionDepth: 7
    functionLinenumber: 997
    functionLinenumberEnd: 1039
    functionName: gzlog_write
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - log_check
    - open
    - strcpy
    - log_touch
    - log_mark
    - write
    - gzlog_compress
    - log_append
    - strcmp
    - close
    - BAIL
    - log_open
    linkageType: ''
    returnType: int
    signature: int gzlog_write(gzlog *logd, void *data, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/zlib/examples/gzlog.c:1049,1
    - Dst: log_close
      Src: /src/zlib/examples/gzlog.c:1053,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:1057,1
    - Dst: strcpy
      Src: /src/zlib/examples/gzlog.c:1058,1
    - Dst: free
      Src: /src/zlib/examples/gzlog.c:1059,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - logd
    argTypes:
    - gzlog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1044
    functionDepth: 5
    functionLinenumber: 1044
    functionLinenumberEnd: 1061
    functionName: gzlog_close
    functionSourceFile: /src/zlib/examples/gzlog.c
    functionUses: 0
    functionsReached:
    - log_close
    - strcpy
    - free
    - strcmp
    linkageType: ''
    returnType: int
    signature: int gzlog_close(gzlog *logd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/examples/gzappend.c:95,1
    - Dst: exit
      Src: /src/zlib/examples/gzappend.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg1
    - msg2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: bye
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: local
    signature: local bye(char *msg1, char *msg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 120
    functionName: gcd
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local unsigned
    signature: local unsigned gcd(unsigned a, unsigned b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/zlib/examples/gzappend.c:140,1
    - Dst: memmove
      Src: /src/zlib/examples/gzappend.c:148,1
    - Dst: gcd
      Src: /src/zlib/examples/gzappend.c:154,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - list
    - len
    - rot
    argTypes:
    - unsigned char*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 167
    functionName: rotate
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached:
    - memmove
    - gcd
    linkageType: ''
    returnType: local
    signature: local rotate(unsigned char *list, unsigned len, unsigned rot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/zlib/examples/gzappend.c:184,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: readin
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached:
    - read
    - bye
    linkageType: ''
    returnType: local
    signature: local readin(file *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readin
      Src: /src/zlib/examples/gzappend.c:194,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: readmore
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached:
    - bye
    - readin
    linkageType: ''
    returnType: local
    signature: local readmore(file *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - in
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: read1
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read1(in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/zlib/examples/gzappend.c:210,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:211,1
    - Dst: readmore
      Src: /src/zlib/examples/gzappend.c:214,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - in
    - n
    argTypes:
    - file*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 220
    functionName: skip
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 4
    functionsReached:
    - lseek
    - bye
    - readmore
    linkageType: ''
    returnType: local
    signature: local skip(file *in, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:227,1
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:228,1
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:229,1
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: read4
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached:
    - read1
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long read4(file *in)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:240,1
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:240,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:240,1
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:241,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:241,1
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:242,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:243,1
    - Dst: skip
      Src: /src/zlib/examples/gzappend.c:244,1
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:246,1
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:247,1
    - Dst: skip
      Src: /src/zlib/examples/gzappend.c:248,1
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:250,1
    - Dst: read1
      Src: /src/zlib/examples/gzappend.c:251,1
    - Dst: skip
      Src: /src/zlib/examples/gzappend.c:252,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - in
    argTypes:
    - file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 235
    functionDepth: 5
    functionLinenumber: 235
    functionLinenumberEnd: 253
    functionName: gzheader
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached:
    - skip
    - read1
    - bye
    linkageType: ''
    returnType: local
    signature: local gzheader(file *in)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/zlib/examples/gzappend.c:270,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:271,1
    - Dst: malloc
      Src: /src/zlib/examples/gzappend.c:272,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:273,1
    - Dst: gzheader
      Src: /src/zlib/examples/gzappend.c:278,1
    - Dst: malloc
      Src: /src/zlib/examples/gzappend.c:281,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:282,1
    - Dst: inflateInit2
      Src: /src/zlib/examples/gzappend.c:286,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:287,1
    - Dst: lseek
      Src: /src/zlib/examples/gzappend.c:291,1
    - Dst: crc32
      Src: /src/zlib/examples/gzappend.c:295,1
    - Dst: readmore
      Src: /src/zlib/examples/gzappend.c:300,1
    - Dst: inflate
      Src: /src/zlib/examples/gzappend.c:310,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:311,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:312,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:314,1
    - Dst: crc32
      Src: /src/zlib/examples/gzappend.c:317,1
    - Dst: lseek
      Src: /src/zlib/examples/gzappend.c:331,1
    - Dst: inflateEnd
      Src: /src/zlib/examples/gzappend.c:335,1
    - Dst: lseek
      Src: /src/zlib/examples/gzappend.c:340,1
    - Dst: read4
      Src: /src/zlib/examples/gzappend.c:343,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:344,1
    - Dst: read4
      Src: /src/zlib/examples/gzappend.c:346,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:347,1
    - Dst: readin
      Src: /src/zlib/examples/gzappend.c:350,1
    - Dst: fprintf
      Src: /src/zlib/examples/gzappend.c:351,1
    - Dst: lseek
      Src: /src/zlib/examples/gzappend.c:355,1
    - Dst: read
      Src: /src/zlib/examples/gzappend.c:356,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:356,1
    - Dst: lseek
      Src: /src/zlib/examples/gzappend.c:358,1
    - Dst: write
      Src: /src/zlib/examples/gzappend.c:359,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:359,1
    - Dst: rotate
      Src: /src/zlib/examples/gzappend.c:363,1
    - Dst: deflateInit2
      Src: /src/zlib/examples/gzappend.c:368,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:369,1
    - Dst: deflateSetDictionary
      Src: /src/zlib/examples/gzappend.c:370,1
    - Dst: lseek
      Src: /src/zlib/examples/gzappend.c:374,1
    - Dst: read
      Src: /src/zlib/examples/gzappend.c:375,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:375,1
    - Dst: deflatePrime
      Src: /src/zlib/examples/gzappend.c:376,1
    - Dst: lseek
      Src: /src/zlib/examples/gzappend.c:378,1
    - Dst: free
      Src: /src/zlib/examples/gzappend.c:381,1
    - Dst: free
      Src: /src/zlib/examples/gzappend.c:382,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 94
    argCount: 3
    argNames:
    - name
    - strm
    - level
    argTypes:
    - char*
    - z_stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 259
    functionDepth: 6
    functionLinenumber: 259
    functionLinenumberEnd: 384
    functionName: gzscan
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached:
    - readin
    - read4
    - crc32
    - free
    - read
    - inflateInit2
    - gzheader
    - rotate
    - deflatePrime
    - write
    - inflate
    - deflateInit2
    - deflateSetDictionary
    - bye
    - open
    - readmore
    - lseek
    - malloc
    - inflateEnd
    - fprintf
    linkageType: ''
    returnType: local
    signature: local gzscan(char *name, z_stream *strm, int level)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/zlib/examples/gzappend.c:397,1
    - Dst: fprintf
      Src: /src/zlib/examples/gzappend.c:399,1
    - Dst: malloc
      Src: /src/zlib/examples/gzappend.c:404,1
    - Dst: malloc
      Src: /src/zlib/examples/gzappend.c:405,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:406,1
    - Dst: read
      Src: /src/zlib/examples/gzappend.c:411,1
    - Dst: fprintf
      Src: /src/zlib/examples/gzappend.c:413,1
    - Dst: crc32
      Src: /src/zlib/examples/gzappend.c:420,1
    - Dst: deflate
      Src: /src/zlib/examples/gzappend.c:426,1
    - Dst: write
      Src: /src/zlib/examples/gzappend.c:429,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:430,1
    - Dst: deflateEnd
      Src: /src/zlib/examples/gzappend.c:438,1
    - Dst: write
      Src: /src/zlib/examples/gzappend.c:449,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:450,1
    - Dst: close
      Src: /src/zlib/examples/gzappend.c:453,1
    - Dst: free
      Src: /src/zlib/examples/gzappend.c:457,1
    - Dst: free
      Src: /src/zlib/examples/gzappend.c:458,1
    - Dst: close
      Src: /src/zlib/examples/gzappend.c:459,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 4
    argNames:
    - name
    - gd
    - strm
    - last
    argTypes:
    - char*
    - int
    - z_stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 460
    functionName: gztack
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached:
    - read
    - open
    - write
    - deflateEnd
    - crc32
    - free
    - close
    - malloc
    - bye
    - fprintf
    - deflate
    linkageType: ''
    returnType: local
    signature: local gztack(char *name, int gd, z_stream *strm, int last)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/zlib/examples/gzappend.c:476,1
    - Dst: printf
      Src: /src/zlib/examples/gzappend.c:479,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:488,1
    - Dst: bye
      Src: /src/zlib/examples/gzappend.c:490,1
    - Dst: gzscan
      Src: /src/zlib/examples/gzappend.c:494,1
    - Dst: gztack
      Src: /src/zlib/examples/gzappend.c:498,1
    - Dst: gztack
      Src: /src/zlib/examples/gzappend.c:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 466
    functionDepth: 7
    functionLinenumber: 466
    functionLinenumberEnd: 504
    functionName: main
    functionSourceFile: /src/zlib/examples/gzappend.c
    functionUses: 0
    functionsReached:
    - gztack
    - bye
    - printf
    - gzscan
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/examples/zran.c:77,1
    - Dst: free
      Src: /src/zlib/examples/zran.c:78,1
    - Dst: inflateEnd
      Src: /src/zlib/examples/zran.c:80,1
    - Dst: free
      Src: /src/zlib/examples/zran.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct deflate_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: deflate_index_free
    functionSourceFile: /src/zlib/examples/zran.c
    functionUses: 0
    functionsReached:
    - inflateEnd
    - free
    linkageType: ''
    returnType: void
    signature: void deflate_index_free(struct deflate_index *index)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/zlib/examples/zran.c:95,1
    - Dst: malloc
      Src: /src/zlib/examples/zran.c:110,1
    - Dst: memcpy
      Src: /src/zlib/examples/zran.c:115,1
    - Dst: memcpy
      Src: /src/zlib/examples/zran.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - index
    - in
    - out
    - beg
    - window
    argTypes:
    - struct deflate_index*
    - off_t
    - off_t
    - off_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 121
    functionName: add_point
    functionSourceFile: /src/zlib/examples/zran.c
    functionUses: 0
    functionsReached:
    - realloc
    - malloc
    - memcpy
    linkageType: ''
    returnType: struct deflate_index
    signature: "struct deflate_index *add_point(struct deflate_index *index, off_t
      in,\n                                       off_t out, off_t beg,\n                                       unsigned
      char *window)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/examples/zran.c:135,1
    - Dst: fread
      Src: /src/zlib/examples/zran.c:159,1
    - Dst: ferror
      Src: /src/zlib/examples/zran.c:162,1
    - Dst: inflateInit2
      Src: /src/zlib/examples/zran.c:180,1
    - Dst: inflate
      Src: /src/zlib/examples/zran.c:201,1
    - Dst: add_point
      Src: /src/zlib/examples/zran.c:212,1
    - Dst: ungetc
      Src: /src/zlib/examples/zran.c:222,1
    - Dst: getc
      Src: /src/zlib/examples/zran.c:222,1
    - Dst: inflateReset2
      Src: /src/zlib/examples/zran.c:226,1
    - Dst: deflate_index_free
      Src: /src/zlib/examples/zran.c:237,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - in
    - span
    - built
    argTypes:
    - FILE*
    - off_t
    - struct deflate_index**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 246
    functionName: deflate_index_build
    functionSourceFile: /src/zlib/examples/zran.c
    functionUses: 0
    functionsReached:
    - ungetc
    - ferror
    - inflateInit2
    - deflate_index_free
    - inflate
    - add_point
    - inflateReset2
    - malloc
    - fread
    - getc
    linkageType: ''
    returnType: int
    signature: int deflate_index_build(FILE *in, off_t span, struct deflate_index
      **built)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - value
    - bits
    - in
    - have
    argTypes:
    - unsigned
    - int
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 275
    functionName: append_bits
    functionSourceFile: /src/zlib/examples/zran.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void append_bits(unsigned value, int bits,\n                               unsigned
      char *in, int *have)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/zlib/examples/zran.c:306,1
    - Dst: append_bits
      Src: /src/zlib/examples/zran.c:312,1
    - Dst: append_bits
      Src: /src/zlib/examples/zran.c:315,1
    - Dst: inflate
      Src: /src/zlib/examples/zran.c:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - strm
    - bits
    - value
    argTypes:
    - z_stream*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 330
    functionName: inflatePreface
    functionSourceFile: /src/zlib/examples/zran.c
    functionUses: 0
    functionsReached:
    - inflate
    - append_bits
    - memcpy
    linkageType: ''
    returnType: int
    signature: int inflatePreface(z_stream *strm, int bits, int value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fseeko
      Src: /src/zlib/examples/zran.c:361,1
    - Dst: getc
      Src: /src/zlib/examples/zran.c:365,1
    - Dst: ferror
      Src: /src/zlib/examples/zran.c:366,1
    - Dst: inflateReset2
      Src: /src/zlib/examples/zran.c:368,1
    - Dst: INFLATEPRIME
      Src: /src/zlib/examples/zran.c:372,1
    - Dst: inflateSetDictionary
      Src: /src/zlib/examples/zran.c:373,1
    - Dst: fread
      Src: /src/zlib/examples/zran.c:397,1
    - Dst: ferror
      Src: /src/zlib/examples/zran.c:398,1
    - Dst: inflate
      Src: /src/zlib/examples/zran.c:405,1
    - Dst: getc
      Src: /src/zlib/examples/zran.c:432,1
    - Dst: ferror
      Src: /src/zlib/examples/zran.c:434,1
    - Dst: ungetc
      Src: /src/zlib/examples/zran.c:438,1
    - Dst: getc
      Src: /src/zlib/examples/zran.c:438,1
    - Dst: inflateReset2
      Src: /src/zlib/examples/zran.c:441,1
    - Dst: fread
      Src: /src/zlib/examples/zran.c:444,1
    - Dst: ferror
      Src: /src/zlib/examples/zran.c:445,1
    - Dst: inflate
      Src: /src/zlib/examples/zran.c:453,1
    - Dst: inflateReset2
      Src: /src/zlib/examples/zran.c:457,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 81
    argCount: 5
    argNames:
    - in
    - index
    - offset
    - buf
    - len
    argTypes:
    - FILE*
    - struct deflate_index*
    - off_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 467
    functionName: deflate_index_extract
    functionSourceFile: /src/zlib/examples/zran.c
    functionUses: 0
    functionsReached:
    - ferror
    - inflate
    - fseeko
    - INFLATEPRIME
    - inflateReset2
    - inflateSetDictionary
    - ungetc
    - fread
    - getc
    linkageType: ''
    returnType: ptrdiff_t
    signature: "ptrdiff_t deflate_index_extract(FILE *in, struct deflate_index *index,\n
      \                               off_t offset, unsigned char *buf, size_t len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:482,1
    - Dst: fopen
      Src: /src/zlib/examples/zran.c:485,1
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:487,1
    - Dst: strtoll
      Src: /src/zlib/examples/zran.c:495,1
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:497,1
    - Dst: deflate_index_build
      Src: /src/zlib/examples/zran.c:504,1
    - Dst: fclose
      Src: /src/zlib/examples/zran.c:506,1
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:509,1
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:512,1
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:515,1
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:518,1
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:521,1
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:525,1
    - Dst: deflate_index_extract
      Src: /src/zlib/examples/zran.c:531,1
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:533,1
    - Dst: fwrite
      Src: /src/zlib/examples/zran.c:536,1
    - Dst: fprintf
      Src: /src/zlib/examples/zran.c:537,1
    - Dst: deflate_index_free
      Src: /src/zlib/examples/zran.c:541,1
    - Dst: fclose
      Src: /src/zlib/examples/zran.c:542,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 479
    functionDepth: 4
    functionLinenumber: 479
    functionLinenumberEnd: 544
    functionName: main
    functionSourceFile: /src/zlib/examples/zran.c
    functionUses: 0
    functionsReached:
    - fclose
    - deflate_index_build
    - strtoll
    - deflate_index_free
    - fwrite
    - fopen
    - deflate_index_extract
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/zlib/examples/fitblk.c:64,1
    - Dst: exit
      Src: /src/zlib/examples/fitblk.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - why
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: quit
    functionSourceFile: /src/zlib/examples/fitblk.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: local
    signature: local quit(char *why)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/zlib/examples/fitblk.c:80,1
    - Dst: ferror
      Src: /src/zlib/examples/fitblk.c:81,1
    - Dst: feof
      Src: /src/zlib/examples/fitblk.c:84,1
    - Dst: deflate
      Src: /src/zlib/examples/fitblk.c:86,1
    - Dst: assert
      Src: /src/zlib/examples/fitblk.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - in
    - def
    argTypes:
    - FILE*
    - z_streamp
    assertStmts:
    - condition: (ret != Z_STREAM_ERROR)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/zlib/examples/fitblk.c
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: partcompress
    functionSourceFile: /src/zlib/examples/fitblk.c
    functionUses: 0
    functionsReached:
    - ferror
    - assert
    - feof
    - fread
    - deflate
    linkageType: ''
    returnType: local
    signature: local partcompress(FILE *in, z_streamp def)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflate
      Src: /src/zlib/examples/fitblk.c:106,1
    - Dst: assert
      Src: /src/zlib/examples/fitblk.c:107,1
    - Dst: deflate
      Src: /src/zlib/examples/fitblk.c:117,1
    - Dst: assert
      Src: /src/zlib/examples/fitblk.c:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - inf
    - def
    argTypes:
    - z_streamp
    - z_streamp
    assertStmts:
    - condition: (ret != Z_STREAM_ERROR)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/zlib/examples/fitblk.c
    - condition: "(ret != Z_STREAM_ERROR && ret != Z_DATA_ERROR &&\n               ret
        != Z_NEED_DICT)"
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/zlib/examples/fitblk.c
    constantsTouched: []
    func_position:
      end: 121
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 121
    functionName: recompress
    functionSourceFile: /src/zlib/examples/fitblk.c
    functionUses: 0
    functionsReached:
    - inflate
    - assert
    - deflate
    linkageType: ''
    returnType: local
    signature: local recompress(z_streamp inf, z_streamp def)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: quit
      Src: /src/zlib/examples/fitblk.c:138,1
    - Dst: strtol
      Src: /src/zlib/examples/fitblk.c:139,1
    - Dst: quit
      Src: /src/zlib/examples/fitblk.c:141,1
    - Dst: quit
      Src: /src/zlib/examples/fitblk.c:143,1
    - Dst: malloc
      Src: /src/zlib/examples/fitblk.c:147,1
    - Dst: deflateInit
      Src: /src/zlib/examples/fitblk.c:151,1
    - Dst: quit
      Src: /src/zlib/examples/fitblk.c:153,1
    - Dst: partcompress
      Src: /src/zlib/examples/fitblk.c:158,1
    - Dst: quit
      Src: /src/zlib/examples/fitblk.c:160,1
    - Dst: fwrite
      Src: /src/zlib/examples/fitblk.c:166,1
    - Dst: ferror
      Src: /src/zlib/examples/fitblk.c:166,1
    - Dst: quit
      Src: /src/zlib/examples/fitblk.c:167,1
    - Dst: deflateEnd
      Src: /src/zlib/examples/fitblk.c:170,1
    - Dst: assert
      Src: /src/zlib/examples/fitblk.c:171,1
    - Dst: free
      Src: /src/zlib/examples/fitblk.c:172,1
    - Dst: fprintf
      Src: /src/zlib/examples/fitblk.c:173,1
    - Dst: inflateInit
      Src: /src/zlib/examples/fitblk.c:185,1
    - Dst: malloc
      Src: /src/zlib/examples/fitblk.c:186,1
    - Dst: quit
      Src: /src/zlib/examples/fitblk.c:188,1
    - Dst: deflateReset
      Src: /src/zlib/examples/fitblk.c:189,1
    - Dst: assert
      Src: /src/zlib/examples/fitblk.c:190,1
    - Dst: recompress
      Src: /src/zlib/examples/fitblk.c:197,1
    - Dst: quit
      Src: /src/zlib/examples/fitblk.c:199,1
    - Dst: inflateReset
      Src: /src/zlib/examples/fitblk.c:202,1
    - Dst: assert
      Src: /src/zlib/examples/fitblk.c:203,1
    - Dst: deflateReset
      Src: /src/zlib/examples/fitblk.c:204,1
    - Dst: assert
      Src: /src/zlib/examples/fitblk.c:205,1
    - Dst: recompress
      Src: /src/zlib/examples/fitblk.c:212,1
    - Dst: quit
      Src: /src/zlib/examples/fitblk.c:214,1
    - Dst: assert
      Src: /src/zlib/examples/fitblk.c:215,1
    - Dst: fwrite
      Src: /src/zlib/examples/fitblk.c:219,1
    - Dst: ferror
      Src: /src/zlib/examples/fitblk.c:219,1
    - Dst: quit
      Src: /src/zlib/examples/fitblk.c:220,1
    - Dst: free
      Src: /src/zlib/examples/fitblk.c:223,1
    - Dst: inflateEnd
      Src: /src/zlib/examples/fitblk.c:224,1
    - Dst: assert
      Src: /src/zlib/examples/fitblk.c:225,1
    - Dst: deflateEnd
      Src: /src/zlib/examples/fitblk.c:226,1
    - Dst: assert
      Src: /src/zlib/examples/fitblk.c:227,1
    - Dst: free
      Src: /src/zlib/examples/fitblk.c:228,1
    - Dst: fprintf
      Src: /src/zlib/examples/fitblk.c:229,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (ret != Z_STREAM_ERROR)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/zlib/examples/fitblk.c
    - condition: (ret != Z_STREAM_ERROR)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/zlib/examples/fitblk.c
    - condition: (ret != Z_STREAM_ERROR)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/zlib/examples/fitblk.c
    - condition: (ret == Z_STREAM_END)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/zlib/examples/fitblk.c
    - condition: (ret != Z_STREAM_ERROR)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/zlib/examples/fitblk.c
    - condition: (ret != Z_STREAM_ERROR)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/zlib/examples/fitblk.c
    - condition: (ret != Z_STREAM_ERROR)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/zlib/examples/fitblk.c
    constantsTouched: []
    func_position:
      end: 233
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 233
    functionName: main
    functionSourceFile: /src/zlib/examples/fitblk.c
    functionUses: 0
    functionsReached:
    - partcompress
    - ferror
    - deflateInit
    - assert
    - malloc
    - fwrite
    - inflateInit
    - deflateEnd
    - quit
    - inflateEnd
    - deflateReset
    - free
    - strtol
    - inflateReset
    - fprintf
    - recompress
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: string_clear
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local string_clear(string_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/examples/enough.c:189,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:190,1
    - Dst: string_clear
      Src: /src/zlib/examples/enough.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_t*
    assertStmts:
    - condition: (s->str != NULL && "out of memory")
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/zlib/examples/enough.c
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: string_init
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 0
    functionsReached:
    - malloc
    - string_clear
    - assert
    linkageType: ''
    returnType: local
    signature: local string_init(string_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/examples/enough.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - string_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: string_free
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: local
    signature: local string_free(string_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/zlib/examples/enough.c:206,1
    - Dst: vsnprintf
      Src: /src/zlib/examples/enough.c:208,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:209,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:214,1
    - Dst: realloc
      Src: /src/zlib/examples/enough.c:216,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:217,1
    - Dst: vsnprintf
      Src: /src/zlib/examples/enough.c:218,1
    - Dst: va_end
      Src: /src/zlib/examples/enough.c:220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - s
    - fmt
    argTypes:
    - string_t*
    - char*
    assertStmts:
    - condition: (ret >= 0 && "out of memory")
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/zlib/examples/enough.c
    - condition: (s->size != 0 && "overflow")
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/zlib/examples/enough.c
    - condition: (s->str != NULL && "out of memory")
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/zlib/examples/enough.c
    constantsTouched: []
    func_position:
      end: 221
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 221
    functionName: string_printf
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 0
    functionsReached:
    - assert
    - va_end
    - realloc
    - va_start
    - vsnprintf
    linkageType: ''
    returnType: local
    signature: local string_printf(string_t *s, char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - syms
    - left
    - len
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: map
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local map(int syms, int left, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/examples/enough.c:248,1
    - Dst: free
      Src: /src/zlib/examples/enough.c:250,1
    - Dst: free
      Src: /src/zlib/examples/enough.c:252,1
    - Dst: free
      Src: /src/zlib/examples/enough.c:253,1
    - Dst: string_free
      Src: /src/zlib/examples/enough.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 255
    functionName: cleanup
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 0
    functionsReached:
    - string_free
    - free
    linkageType: ''
    returnType: local
    signature: local cleanup(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/zlib/examples/enough.c:267,1
    - Dst: map
      Src: /src/zlib/examples/enough.c:270,1
    - Dst: count
      Src: /src/zlib/examples/enough.c:290,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:297,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - syms
    - left
    - len
    argTypes:
    - int
    - int
    - int
    assertStmts:
    - condition: (syms > left && left > 0 && len < g.max)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/zlib/examples/enough.c
    - condition: (sum != 0)
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/zlib/examples/enough.c
    constantsTouched: []
    func_position:
      end: 302
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 302
    functionName: count
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 1
    functionsReached:
    - assert
    - count
    - map
    linkageType: ''
    returnType: local
    signature: local count(int syms, int left, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/zlib/examples/enough.c:310,1
    - Dst: realloc
      Src: /src/zlib/examples/enough.c:333,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:334,1
    - Dst: memset
      Src: /src/zlib/examples/enough.c:335,1
    - Dst: calloc
      Src: /src/zlib/examples/enough.c:343,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:344,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - syms
    - left
    - len
    - mem
    - rem
    argTypes:
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (vector != NULL && "out of memory")
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/zlib/examples/enough.c
    - condition: (vector != NULL && "out of memory")
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/zlib/examples/enough.c
    constantsTouched: []
    func_position:
      end: 355
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 355
    functionName: been_here
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - realloc
    - map
    - calloc
    linkageType: ''
    returnType: local
    signature: local been_here(int syms, int left, int len, int mem, int rem)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/zlib/examples/enough.c:373,1
    - Dst: string_clear
      Src: /src/zlib/examples/enough.c:381,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:390,1
    - Dst: string_printf
      Src: /src/zlib/examples/enough.c:395,1
    - Dst: string_printf
      Src: /src/zlib/examples/enough.c:399,1
    - Dst: string_printf
      Src: /src/zlib/examples/enough.c:400,1
    - Dst: been_here
      Src: /src/zlib/examples/enough.c:409,1
    - Dst: examine
      Src: /src/zlib/examples/enough.c:436,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 5
    argNames:
    - syms
    - left
    - len
    - mem
    - rem
    argTypes:
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (rem == left)
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/zlib/examples/enough.c
    - condition: ((left & 1) == 0)
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/zlib/examples/enough.c
    constantsTouched: []
    func_position:
      end: 447
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 447
    functionName: examine
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 1
    functionsReached:
    - been_here
    - assert
    - examine
    - string_printf
    - string_clear
    linkageType: ''
    returnType: local
    signature: local examine(int syms, int left, int len, int mem, int rem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_clear
      Src: /src/zlib/examples/enough.c:460,1
    - Dst: map
      Src: /src/zlib/examples/enough.c:467,1
    - Dst: examine
      Src: /src/zlib/examples/enough.c:469,1
    - Dst: examine
      Src: /src/zlib/examples/enough.c:474,1
    - Dst: printf
      Src: /src/zlib/examples/enough.c:479,1
    - Dst: fputs
      Src: /src/zlib/examples/enough.c:480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - syms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 481
    functionName: enough
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 0
    functionsReached:
    - fputs
    - examine
    - string_clear
    - map
    - printf
    linkageType: ''
    returnType: local
    signature: local enough(int syms)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: string_init
      Src: /src/zlib/examples/enough.c:503,1
    - Dst: atoi
      Src: /src/zlib/examples/enough.c:510,1
    - Dst: atoi
      Src: /src/zlib/examples/enough.c:512,1
    - Dst: atoi
      Src: /src/zlib/examples/enough.c:514,1
    - Dst: fputs
      Src: /src/zlib/examples/enough.c:518,1
    - Dst: fputs
      Src: /src/zlib/examples/enough.c:534,1
    - Dst: fprintf
      Src: /src/zlib/examples/enough.c:540,1
    - Dst: calloc
      Src: /src/zlib/examples/enough.c:546,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:547,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:556,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:559,1
    - Dst: calloc
      Src: /src/zlib/examples/enough.c:561,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:562,1
    - Dst: count
      Src: /src/zlib/examples/enough.c:568,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:570,1
    - Dst: printf
      Src: /src/zlib/examples/enough.c:572,1
    - Dst: printf
      Src: /src/zlib/examples/enough.c:574,1
    - Dst: puts
      Src: /src/zlib/examples/enough.c:576,1
    - Dst: calloc
      Src: /src/zlib/examples/enough.c:582,1
    - Dst: assert
      Src: /src/zlib/examples/enough.c:583,1
    - Dst: enough
      Src: /src/zlib/examples/enough.c:590,1
    - Dst: fputs
      Src: /src/zlib/examples/enough.c:592,1
    - Dst: cleanup
      Src: /src/zlib/examples/enough.c:595,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (g.code != NULL && "out of memory")
      pos:
        line_end: 546
        line_start: 546
        source_file: /src/zlib/examples/enough.c
    - condition: (g.size <= (size_t)-1 / n && "overflow")
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/zlib/examples/enough.c
    - condition: (g.num != NULL && "out of memory")
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/zlib/examples/enough.c
    - condition: (got != (big_t)-1 && sum >= got && "overflow")
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/zlib/examples/enough.c
    - condition: (g.size <= (size_t)-1 / n && "overflow")
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/zlib/examples/enough.c
    - condition: (g.done != NULL && "out of memory")
      pos:
        line_end: 582
        line_start: 582
        source_file: /src/zlib/examples/enough.c
    constantsTouched: []
    func_position:
      end: 597
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 597
    functionName: main
    functionSourceFile: /src/zlib/examples/enough.c
    functionUses: 0
    functionsReached:
    - fputs
    - string_init
    - atoi
    - assert
    - count
    - printf
    - puts
    - enough
    - cleanup
    - calloc
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/zlib/examples/gun.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - in_desc
    - buf
    argTypes:
    - void*
    - z_const unsigned**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: in
    functionSourceFile: /src/zlib/examples/gun.c
    functionUses: 2
    functionsReached:
    - read
    linkageType: ''
    returnType: local unsigned
    signature: local unsigned in(void *in_desc, z_const unsigned char **buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/zlib/examples/gun.c:137,1
    - Dst: write
      Src: /src/zlib/examples/gun.c:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - out_desc
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 152
    functionName: out
    functionSourceFile: /src/zlib/examples/gun.c
    functionUses: 1
    functionsReached:
    - write
    - crc32
    linkageType: ''
    returnType: local
    signature: local out(void *out_desc, unsigned char *buf, unsigned len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: NEXT
    functionSourceFile: /src/zlib/examples/gun.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 190
    functionName: FLUSHCODE
    functionSourceFile: /src/zlib/examples/gun.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLUSHCODE()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:226,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:249,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:252,1
    - Dst: FLUSHCODE
      Src: /src/zlib/examples/gun.c:269,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:279,1
    - Dst: out
      Src: /src/zlib/examples/gun.c:281,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:291,1
    - Dst: FLUSHCODE
      Src: /src/zlib/examples/gun.c:303,1
    - Dst: out
      Src: /src/zlib/examples/gun.c:353,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 111
    argCount: 5
    argNames:
    - have
    - next
    - indp
    - outfile
    - strm
    argTypes:
    - unsigned
    - z_const unsigned*
    - struct ind*
    - int
    - z_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 369
    functionName: lunpipe
    functionSourceFile: /src/zlib/examples/gun.c
    functionUses: 0
    functionsReached:
    - NEXT
    - out
    - FLUSHCODE
    linkageType: ''
    returnType: local
    signature: "local lunpipe(unsigned have, z_const unsigned char *next, struct ind
      *indp,\n                  int outfile, z_stream *strm)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:402,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:406,1
    - Dst: lunpipe
      Src: /src/zlib/examples/gun.c:415,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:421,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:427,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:428,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:429,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:430,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:431,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:432,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:433,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:441,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:442,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:447,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:455,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:458,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:461,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:462,1
    - Dst: crc32
      Src: /src/zlib/examples/gun.c:469,1
    - Dst: inflateBack
      Src: /src/zlib/examples/gun.c:475,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:483,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:484,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:485,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:486,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:494,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:495,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:496,1
    - Dst: NEXT
      Src: /src/zlib/examples/gun.c:497,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 102
    argCount: 3
    argNames:
    - strm
    - infile
    - outfile
    argTypes:
    - z_stream*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 511
    functionName: gunpipe
    functionSourceFile: /src/zlib/examples/gun.c
    functionUses: 0
    functionsReached:
    - NEXT
    - inflateBack
    - crc32
    - lunpipe
    linkageType: ''
    returnType: local
    signature: local gunpipe(z_stream *strm, int infile, int outfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/zlib/examples/gun.c:523,1
    - Dst: chmod
      Src: /src/zlib/examples/gun.c:527,1
    - Dst: chown
      Src: /src/zlib/examples/gun.c:530,1
    - Dst: utime
      Src: /src/zlib/examples/gun.c:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 536
    functionName: copymeta
    functionSourceFile: /src/zlib/examples/gun.c
    functionUses: 0
    functionsReached:
    - chmod
    - utime
    - chown
    - stat
    linkageType: ''
    returnType: local
    signature: local copymeta(char *from, char *to)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/zlib/examples/gun.c:559,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:561,1
    - Dst: open
      Src: /src/zlib/examples/gun.c:572,1
    - Dst: close
      Src: /src/zlib/examples/gun.c:574,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:575,1
    - Dst: gunpipe
      Src: /src/zlib/examples/gun.c:582,1
    - Dst: close
      Src: /src/zlib/examples/gun.c:583,1
    - Dst: close
      Src: /src/zlib/examples/gun.c:584,1
    - Dst: copymeta
      Src: /src/zlib/examples/gun.c:591,1
    - Dst: unlink
      Src: /src/zlib/examples/gun.c:592,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:595,1
    - Dst: unlink
      Src: /src/zlib/examples/gun.c:599,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:600,1
    - Dst: unlink
      Src: /src/zlib/examples/gun.c:603,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:604,1
    - Dst: unlink
      Src: /src/zlib/examples/gun.c:607,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:609,1
    - Dst: strerror
      Src: /src/zlib/examples/gun.c:610,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:613,1
    - Dst: strerror
      Src: /src/zlib/examples/gun.c:614,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:617,1
    - Dst: unlink
      Src: /src/zlib/examples/gun.c:622,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:623,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 4
    argNames:
    - strm
    - inname
    - outname
    - test
    argTypes:
    - z_stream*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 627
    functionName: gunzip
    functionSourceFile: /src/zlib/examples/gun.c
    functionUses: 0
    functionsReached:
    - open
    - gunpipe
    - copymeta
    - strerror
    - close
    - fprintf
    - unlink
    linkageType: ''
    returnType: local
    signature: local gunzip(z_stream *strm, char *inname, char *outname, int test)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: inflateBackInit
      Src: /src/zlib/examples/gun.c:643,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:645,1
    - Dst: strcmp
      Src: /src/zlib/examples/gun.c:653,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:654,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:655,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:656,1
    - Dst: strcmp
      Src: /src/zlib/examples/gun.c:659,1
    - Dst: strlen
      Src: /src/zlib/examples/gun.c:669,1
    - Dst: strcmp
      Src: /src/zlib/examples/gun.c:670,1
    - Dst: strcmp
      Src: /src/zlib/examples/gun.c:671,1
    - Dst: strcmp
      Src: /src/zlib/examples/gun.c:673,1
    - Dst: strcmp
      Src: /src/zlib/examples/gun.c:674,1
    - Dst: strcmp
      Src: /src/zlib/examples/gun.c:675,1
    - Dst: strcmp
      Src: /src/zlib/examples/gun.c:676,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:679,1
    - Dst: malloc
      Src: /src/zlib/examples/gun.c:683,1
    - Dst: fprintf
      Src: /src/zlib/examples/gun.c:685,1
    - Dst: memcpy
      Src: /src/zlib/examples/gun.c:689,1
    - Dst: gunzip
      Src: /src/zlib/examples/gun.c:692,1
    - Dst: free
      Src: /src/zlib/examples/gun.c:693,1
    - Dst: gunzip
      Src: /src/zlib/examples/gun.c:697,1
    - Dst: inflateBackEnd
      Src: /src/zlib/examples/gun.c:700,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 631
    functionDepth: 5
    functionLinenumber: 631
    functionLinenumberEnd: 702
    functionName: main
    functionSourceFile: /src/zlib/examples/gun.c
    functionUses: 0
    functionsReached:
    - inflateBackEnd
    - inflateBackInit
    - gunzip
    - memcpy
    - strlen
    - strcmp
    - free
    - malloc
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - file
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: SET_BINARY_MODE
    functionSourceFile: /src/zlib/examples/gznorm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BINARY_MODE(file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/zlib/examples/gznorm.c:43,1
    - Dst: vsnprintf
      Src: /src/zlib/examples/gznorm.c:44,1
    - Dst: va_end
      Src: /src/zlib/examples/gznorm.c:45,1
    - Dst: malloc
      Src: /src/zlib/examples/gznorm.c:50,1
    - Dst: va_start
      Src: /src/zlib/examples/gznorm.c:53,1
    - Dst: vsnprintf
      Src: /src/zlib/examples/gznorm.c:54,1
    - Dst: va_end
      Src: /src/zlib/examples/gznorm.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 57
    functionName: aprintf
    functionSourceFile: /src/zlib/examples/gznorm.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - vsnprintf
    - malloc
    linkageType: ''
    returnType: local
    signature: local *aprintf(char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: BYE
    functionSourceFile: /src/zlib/examples/gznorm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYE(...)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit2
      Src: /src/zlib/examples/gznorm.c:98,1
    - Dst: BYE
      Src: /src/zlib/examples/gznorm.c:99,1
    - Dst: fwrite
      Src: /src/zlib/examples/gznorm.c:115,1
    - Dst: fread
      Src: /src/zlib/examples/gznorm.c:132,1
    - Dst: inflate
      Src: /src/zlib/examples/gznorm.c:152,1
    - Dst: BYE
      Src: /src/zlib/examples/gznorm.c:154,1
    - Dst: BYE
      Src: /src/zlib/examples/gznorm.c:156,1
    - Dst: BYE
      Src: /src/zlib/examples/gznorm.c:158,1
    - Dst: BYE
      Src: /src/zlib/examples/gznorm.c:166,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:283,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:320,1
    - Dst: fwrite
      Src: /src/zlib/examples/gznorm.c:325,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:344,1
    - Dst: BYE
      Src: /src/zlib/examples/gznorm.c:398,1
    - Dst: crc32_combine
      Src: /src/zlib/examples/gznorm.c:399,1
    - Dst: inflateReset
      Src: /src/zlib/examples/gznorm.c:410,1
    - Dst: BYE
      Src: /src/zlib/examples/gznorm.c:411,1
    - Dst: inflateEnd
      Src: /src/zlib/examples/gznorm.c:426,1
    - Dst: BYE
      Src: /src/zlib/examples/gznorm.c:430,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:435,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:436,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:438,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:442,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:443,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:444,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:445,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:446,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:447,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:448,1
    - Dst: putc
      Src: /src/zlib/examples/gznorm.c:449,1
    - Dst: fflush
      Src: /src/zlib/examples/gznorm.c:450,1
    - Dst: ferror
      Src: /src/zlib/examples/gznorm.c:453,1
    - Dst: ferror
      Src: /src/zlib/examples/gznorm.c:453,1
    - Dst: BYE
      Src: /src/zlib/examples/gznorm.c:454,1
    - Dst: strerror
      Src: /src/zlib/examples/gznorm.c:454,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 149
    argCount: 3
    argNames:
    - in
    - out
    - err
    argTypes:
    - FILE*
    - FILE*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 459
    functionName: gzip_normalize
    functionSourceFile: /src/zlib/examples/gznorm.c
    functionUses: 0
    functionsReached:
    - ferror
    - putc
    - BYE
    - inflateInit2
    - fwrite
    - inflate
    - crc32_combine
    - strerror
    - fflush
    - inflateEnd
    - fread
    - inflateReset
    linkageType: ''
    returnType: local
    signature: local gzip_normalize(FILE *in, FILE *out, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SET_BINARY_MODE
      Src: /src/zlib/examples/gznorm.c:464,1
    - Dst: SET_BINARY_MODE
      Src: /src/zlib/examples/gznorm.c:465,1
    - Dst: gzip_normalize
      Src: /src/zlib/examples/gznorm.c:469,1
    - Dst: fprintf
      Src: /src/zlib/examples/gznorm.c:471,1
    - Dst: free
      Src: /src/zlib/examples/gznorm.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 462
    functionDepth: 6
    functionLinenumber: 462
    functionLinenumberEnd: 474
    functionName: main
    functionSourceFile: /src/zlib/examples/gznorm.c
    functionUses: 0
    functionsReached:
    - free
    - gzip_normalize
    - fprintf
    - SET_BINARY_MODE
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setcompressionlevel
      Src: /src/zlib/contrib/iostream/test.cpp:14,1
    - Dst: setcompressionlevel
      Src: /src/zlib/contrib/iostream/test.cpp:17,1
    - Dst: gzofstream::close
      Src: /src/zlib/contrib/iostream/test.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 24
    functionName: main
    functionSourceFile: /src/zlib/contrib/iostream/test.cpp
    functionUses: 0
    functionsReached:
    - gzofstream::close
    - setcompressionlevel
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: gzfilebuf::is_open
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_open() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - (*f)(gzofstream , T)
    - v
    argTypes:
    - gzofstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: gzomanip::gzomanip
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gzomanip(gzofstream &(*f)(gzofstream &, T), T v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - m
    argTypes:
    - gzofstream
    - gzomanip<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: '&operator<<(gzofstream &s, const gzomanip<T> &m)'
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gzofstream
    signature: gzofstream &operator<<(gzofstream &s, const gzomanip<T> &m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::rdbuf
      Src: /src/zlib/contrib/iostream/zfstream.h:108,1
    - Dst: setcompressionlevel
      Src: /src/zlib/contrib/iostream/zfstream.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - l
    argTypes:
    - gzofstream
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: setcompressionlevel
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.h
    functionUses: 2
    functionsReached:
    - gzofstream::rdbuf
    - setcompressionlevel
    linkageType: ''
    returnType: gzofstream
    signature: gzofstream &setcompressionlevel( gzofstream &s, int l )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::rdbuf
      Src: /src/zlib/contrib/iostream/zfstream.h:114,1
    - Dst: setcompressionstrategy
      Src: /src/zlib/contrib/iostream/zfstream.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - l
    argTypes:
    - gzofstream
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: setcompressionstrategy
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.h
    functionUses: 1
    functionsReached:
    - gzofstream::rdbuf
    - setcompressionstrategy
    linkageType: ''
    returnType: gzofstream
    signature: gzofstream &setcompressionstrategy( gzofstream &s, int l )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzomanip<int>
      Src: /src/zlib/contrib/iostream/zfstream.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: setcompressionlevel
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.h
    functionUses: 2
    functionsReached:
    - gzomanip<int>
    linkageType: ''
    returnType: gzomanip<int>
    signature: gzomanip<int> setcompressionlevel(int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzomanip<int>
      Src: /src/zlib/contrib/iostream/zfstream.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: setcompressionstrategy
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.h
    functionUses: 1
    functionsReached:
    - gzomanip<int>
    linkageType: ''
    returnType: gzomanip<int>
    signature: gzomanip<int> setcompressionstrategy(int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 8
    functionName: gzfilebuf::gzfilebuf
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gzfilebuf::gzfilebuf()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::sync
      Src: /src/zlib/contrib/iostream/zfstream.cpp:12,1
    - Dst: gzfilebuf::close
      Src: /src/zlib/contrib/iostream/zfstream.cpp:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: gzfilebuf::~gzfilebuf()
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gzfilebuf::sync
    - gzfilebuf::close
    linkageType: ''
    returnType: void
    signature: void gzfilebuf::~gzfilebuf()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream/zfstream.cpp:21,1
    - Dst: gzopen
      Src: /src/zlib/contrib/iostream/zfstream.cpp:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - name
    - io_mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 58
    functionName: gzfilebuf::open
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gzfilebuf::is_open
    - gzopen
    linkageType: ''
    returnType: gzfilebuf
    signature: "gzfilebuf *gzfilebuf::open( const char *name,\n                            int
      io_mode )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream/zfstream.cpp:63,1
    - Dst: gzdopen
      Src: /src/zlib/contrib/iostream/zfstream.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - file_descriptor
    - io_mode
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 100
    functionName: gzfilebuf::attach
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gzdopen
    - gzfilebuf::is_open
    linkageType: ''
    returnType: gzfilebuf
    signature: "gzfilebuf *gzfilebuf::attach( int file_descriptor,\n                              int
      io_mode )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream/zfstream.cpp:104,1
    - Dst: gzfilebuf::sync
      Src: /src/zlib/contrib/iostream/zfstream.cpp:106,1
    - Dst: gzclose
      Src: /src/zlib/contrib/iostream/zfstream.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: gzfilebuf::close
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 1
    functionsReached:
    - gzfilebuf::sync
    - gzfilebuf::is_open
    - gzclose
    linkageType: ''
    returnType: gzfilebuf
    signature: gzfilebuf *gzfilebuf::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzsetparams
      Src: /src/zlib/contrib/iostream/zfstream.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comp_level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: gzfilebuf::setcompressionlevel
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gzsetparams
    linkageType: ''
    returnType: int
    signature: int gzfilebuf::setcompressionlevel( int comp_level )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzsetparams
      Src: /src/zlib/contrib/iostream/zfstream.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comp_strategy
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 5
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: gzfilebuf::setcompressionstrategy
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gzsetparams
    linkageType: ''
    returnType: int
    signature: int gzfilebuf::setcompressionstrategy( int comp_strategy )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: streampos
      Src: /src/zlib/contrib/iostream/zfstream.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - 'off'
    - dir
    - which
    argTypes:
    - streamoff
    - ios::seek_dir
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: gzfilebuf::seekoff
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - streampos
    linkageType: ''
    returnType: streampos
    signature: streampos gzfilebuf::seekoff( streamoff off, ios::seek_dir dir, int
      which )
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream/zfstream.cpp:138,1
    - Dst: base
      Src: /src/zlib/contrib/iostream/zfstream.cpp:142,1
    - Dst: allocate
      Src: /src/zlib/contrib/iostream/zfstream.cpp:144,1
    - Dst: setp
      Src: /src/zlib/contrib/iostream/zfstream.cpp:146,1
    - Dst: in_avail
      Src: /src/zlib/contrib/iostream/zfstream.cpp:150,1
    - Dst: gptr
      Src: /src/zlib/contrib/iostream/zfstream.cpp:151,1
    - Dst: out_waiting
      Src: /src/zlib/contrib/iostream/zfstream.cpp:153,1
    - Dst: gzfilebuf::flushbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:154,1
    - Dst: gzfilebuf::fillbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:162,1
    - Dst: setg
      Src: /src/zlib/contrib/iostream/zfstream.cpp:165,1
    - Dst: gptr
      Src: /src/zlib/contrib/iostream/zfstream.cpp:169,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 171
    functionName: gzfilebuf::underflow
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gptr
    - setp
    - gzfilebuf::flushbuf
    - in_avail
    - allocate
    - setg
    - gzfilebuf::fillbuf
    - gzfilebuf::is_open
    - out_waiting
    - base
    linkageType: ''
    returnType: int
    signature: int gzfilebuf::underflow()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream/zfstream.cpp:175,1
    - Dst: base
      Src: /src/zlib/contrib/iostream/zfstream.cpp:178,1
    - Dst: allocate
      Src: /src/zlib/contrib/iostream/zfstream.cpp:179,1
    - Dst: setg
      Src: /src/zlib/contrib/iostream/zfstream.cpp:181,1
    - Dst: in_avail
      Src: /src/zlib/contrib/iostream/zfstream.cpp:183,1
    - Dst: out_waiting
      Src: /src/zlib/contrib/iostream/zfstream.cpp:186,1
    - Dst: gzfilebuf::flushbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:187,1
    - Dst: blen
      Src: /src/zlib/contrib/iostream/zfstream.cpp:192,1
    - Dst: setp
      Src: /src/zlib/contrib/iostream/zfstream.cpp:193,1
    - Dst: base
      Src: /src/zlib/contrib/iostream/zfstream.cpp:193,1
    - Dst: base
      Src: /src/zlib/contrib/iostream/zfstream.cpp:193,1
    - Dst: pptr
      Src: /src/zlib/contrib/iostream/zfstream.cpp:197,1
    - Dst: pbump
      Src: /src/zlib/contrib/iostream/zfstream.cpp:198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: gzfilebuf::overflow
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - pptr
    - blen
    - setp
    - gzfilebuf::flushbuf
    - in_avail
    - allocate
    - setg
    - pbump
    - gzfilebuf::is_open
    - out_waiting
    - base
    linkageType: ''
    returnType: int
    signature: int gzfilebuf::overflow( int c )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream/zfstream.cpp:208,1
    - Dst: out_waiting
      Src: /src/zlib/contrib/iostream/zfstream.cpp:211,1
    - Dst: gzfilebuf::flushbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: gzfilebuf::sync
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 2
    functionsReached:
    - gzfilebuf::flushbuf
    - gzfilebuf::is_open
    - out_waiting
    linkageType: ''
    returnType: int
    signature: int gzfilebuf::sync()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pbase
      Src: /src/zlib/contrib/iostream/zfstream.cpp:223,1
    - Dst: pptr
      Src: /src/zlib/contrib/iostream/zfstream.cpp:224,1
    - Dst: gzwrite
      Src: /src/zlib/contrib/iostream/zfstream.cpp:226,1
    - Dst: setp
      Src: /src/zlib/contrib/iostream/zfstream.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: gzfilebuf::flushbuf
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 3
    functionsReached:
    - gzwrite
    - pptr
    - setp
    - pbase
    linkageType: ''
    returnType: int
    signature: int gzfilebuf::flushbuf()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: base
      Src: /src/zlib/contrib/iostream/zfstream.cpp:240,1
    - Dst: blen
      Src: /src/zlib/contrib/iostream/zfstream.cpp:242,1
    - Dst: gzread
      Src: /src/zlib/contrib/iostream/zfstream.cpp:244,1
    - Dst: setg
      Src: /src/zlib/contrib/iostream/zfstream.cpp:248,1
    - Dst: base
      Src: /src/zlib/contrib/iostream/zfstream.cpp:248,1
    - Dst: base
      Src: /src/zlib/contrib/iostream/zfstream.cpp:248,1
    - Dst: base
      Src: /src/zlib/contrib/iostream/zfstream.cpp:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 252
    functionName: gzfilebuf::fillbuf
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 1
    functionsReached:
    - setg
    - blen
    - gzread
    - base
    linkageType: ''
    returnType: int
    signature: int gzfilebuf::fillbuf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzfilestream_common::rdbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: gzfilestream_common::gzfilestream_common
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gzfilestream_common::rdbuf
    linkageType: ''
    returnType: void
    signature: void gzfilestream_common::gzfilestream_common()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: gzfilestream_common::~gzfilestream_common()
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gzfilestream_common::~gzfilestream_common()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzfilestream_common::attach
      Src: /src/zlib/contrib/iostream/zfstream.cpp:263,1
    - Dst: clear
      Src: /src/zlib/contrib/iostream/zfstream.cpp:264,1
    - Dst: clear
      Src: /src/zlib/contrib/iostream/zfstream.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - io_mode
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: gzfilestream_common::attach
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 1
    functionsReached:
    - clear
    - gzfilestream_common::attach
    linkageType: ''
    returnType: void
    signature: void gzfilestream_common::attach( int fd, int io_mode )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzfilestream_common::open
      Src: /src/zlib/contrib/iostream/zfstream.cpp:272,1
    - Dst: clear
      Src: /src/zlib/contrib/iostream/zfstream.cpp:273,1
    - Dst: clear
      Src: /src/zlib/contrib/iostream/zfstream.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - io_mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: gzfilestream_common::open
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 1
    functionsReached:
    - clear
    - gzfilestream_common::open
    linkageType: ''
    returnType: void
    signature: void gzfilestream_common::open( const char *name, int io_mode )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzfilestream_common::close
      Src: /src/zlib/contrib/iostream/zfstream.cpp:281,1
    - Dst: clear
      Src: /src/zlib/contrib/iostream/zfstream.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: gzfilestream_common::close
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 1
    functionsReached:
    - clear
    - gzfilestream_common::close
    linkageType: ''
    returnType: void
    signature: void gzfilestream_common::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: gzfilestream_common::rdbuf
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gzfilebuf
    signature: gzfilebuf *gzfilestream_common::rdbuf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzfilestream_common::rdbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:292,1
    - Dst: clear
      Src: /src/zlib/contrib/iostream/zfstream.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: gzifstream::gzifstream
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - clear
    - gzfilestream_common::rdbuf
    linkageType: ''
    returnType: void
    signature: void gzifstream::gzifstream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzfilestream_common::rdbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:298,1
    - Dst: gzfilestream_common::open
      Src: /src/zlib/contrib/iostream/zfstream.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - io_mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: gzifstream::gzifstream
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gzfilestream_common::rdbuf
    - gzfilestream_common::open
    linkageType: ''
    returnType: void
    signature: void gzifstream::gzifstream( const char *name, int io_mode )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzfilestream_common::rdbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:304,1
    - Dst: gzfilestream_common::attach
      Src: /src/zlib/contrib/iostream/zfstream.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - io_mode
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: gzifstream::gzifstream
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gzfilestream_common::rdbuf
    - gzfilestream_common::attach
    linkageType: ''
    returnType: void
    signature: void gzifstream::gzifstream( int fd, int io_mode )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: gzifstream::~gzifstream()
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gzifstream::~gzifstream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzfilestream_common::rdbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:312,1
    - Dst: clear
      Src: /src/zlib/contrib/iostream/zfstream.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: gzofstream::gzofstream
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - clear
    - gzfilestream_common::rdbuf
    linkageType: ''
    returnType: void
    signature: void gzofstream::gzofstream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzfilestream_common::rdbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:318,1
    - Dst: gzfilestream_common::open
      Src: /src/zlib/contrib/iostream/zfstream.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - io_mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: gzofstream::gzofstream
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gzfilestream_common::rdbuf
    - gzfilestream_common::open
    linkageType: ''
    returnType: void
    signature: void gzofstream::gzofstream( const char *name, int io_mode )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzfilestream_common::rdbuf
      Src: /src/zlib/contrib/iostream/zfstream.cpp:324,1
    - Dst: gzfilestream_common::attach
      Src: /src/zlib/contrib/iostream/zfstream.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - io_mode
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: gzofstream::gzofstream
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached:
    - gzfilestream_common::rdbuf
    - gzfilestream_common::attach
    linkageType: ''
    returnType: void
    signature: void gzofstream::gzofstream( int fd, int io_mode )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 329
    functionName: gzofstream::~gzofstream()
    functionSourceFile: /src/zlib/contrib/iostream/zfstream.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gzofstream::~gzofstream()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/zlib/contrib/puff/puff.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - s
    - need
    argTypes:
    - struct state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 145
    functionName: bits
    functionSourceFile: /src/zlib/contrib/puff/puff.c
    functionUses: 8
    functionsReached:
    - longjmp
    linkageType: ''
    returnType: local
    signature: local bits(struct state *s, int need)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 197
    functionName: stored
    functionSourceFile: /src/zlib/contrib/puff/puff.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local stored(struct state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - struct state*
    - struct huffman*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 255
    functionName: decode
    functionSourceFile: /src/zlib/contrib/puff/puff.c
    functionUses: 0
    functionsReached:
    - bits
    linkageType: ''
    returnType: local
    signature: local decode(struct state *s, const struct huffman *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/zlib/contrib/puff/puff.c:299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - struct state*
    - struct huffman*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 305
    functionName: decode
    functionSourceFile: /src/zlib/contrib/puff/puff.c
    functionUses: 0
    functionsReached:
    - longjmp
    linkageType: ''
    returnType: local
    signature: local decode(struct state *s, const struct huffman *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - h
    - length
    - n
    argTypes:
    - struct huffman*
    - short*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 379
    functionName: construct
    functionSourceFile: /src/zlib/contrib/puff/puff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local construct(struct huffman *h, const short *length, int n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: decode
      Src: /src/zlib/contrib/puff/puff.c:460,1
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:477,1
    - Dst: decode
      Src: /src/zlib/contrib/puff/puff.c:480,1
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:483,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - s
    - lencode
    - distcode
    argTypes:
    - struct state*
    - struct huffman*
    - struct huffman*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 510
    functionName: codes
    functionSourceFile: /src/zlib/contrib/puff/puff.c
    functionUses: 2
    functionsReached:
    - decode
    - bits
    linkageType: ''
    returnType: local
    signature: "local codes(struct state *s,\n                const struct huffman
      *lencode,\n                const struct huffman *distcode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/zlib/contrib/puff/puff.c:563,1
    - Dst: construct
      Src: /src/zlib/contrib/puff/puff.c:568,1
    - Dst: codes
      Src: /src/zlib/contrib/puff/puff.c:575,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 576
    functionName: fixed
    functionSourceFile: /src/zlib/contrib/puff/puff.c
    functionUses: 3
    functionsReached:
    - codes
    - construct
    linkageType: ''
    returnType: local
    signature: local fixed(struct state *s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:684,1
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:685,1
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:686,1
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:692,1
    - Dst: construct
      Src: /src/zlib/contrib/puff/puff.c:697,1
    - Dst: decode
      Src: /src/zlib/contrib/puff/puff.c:707,1
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:718,1
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:721,1
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:723,1
    - Dst: construct
      Src: /src/zlib/contrib/puff/puff.c:736,1
    - Dst: construct
      Src: /src/zlib/contrib/puff/puff.c:741,1
    - Dst: codes
      Src: /src/zlib/contrib/puff/puff.c:746,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 747
    functionName: dynamic
    functionSourceFile: /src/zlib/contrib/puff/puff.c
    functionUses: 0
    functionsReached:
    - codes
    - decode
    - bits
    - construct
    linkageType: ''
    returnType: local
    signature: local dynamic(struct state *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setjmp
      Src: /src/zlib/contrib/puff/puff.c:815,1
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:820,1
    - Dst: bits
      Src: /src/zlib/contrib/puff/puff.c:821,1
    - Dst: stored
      Src: /src/zlib/contrib/puff/puff.c:823,1
    - Dst: fixed
      Src: /src/zlib/contrib/puff/puff.c:825,1
    - Dst: dynamic
      Src: /src/zlib/contrib/puff/puff.c:827,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - dest
    - destlen
    - source
    - sourcelen
    argTypes:
    - unsigned char*
    - unsigned long*
    - unsigned char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 840
    functionName: puff
    functionSourceFile: /src/zlib/contrib/puff/puff.c
    functionUses: 0
    functionsReached:
    - dynamic
    - fixed
    - stored
    - setjmp
    - bits
    linkageType: ''
    returnType: int
    signature: "int puff(unsigned char *dest,           /* pointer to destination
      pointer */\n         unsigned long *destlen,        /* amount of output space
      */\n         const unsigned char *source,   /* pointer to source data pointer
      */\n         unsigned long *sourcelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - file
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: SET_BINARY_MODE
    functionSourceFile: /src/zlib/contrib/puff/pufftest.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BINARY_MODE(file)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: bythirds
    functionSourceFile: /src/zlib/contrib/puff/pufftest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local bythirds(size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/contrib/puff/pufftest.c:70,1
    - Dst: fopen
      Src: /src/zlib/contrib/puff/pufftest.c:73,1
    - Dst: fread
      Src: /src/zlib/contrib/puff/pufftest.c:76,1
    - Dst: bythirds
      Src: /src/zlib/contrib/puff/pufftest.c:78,1
    - Dst: realloc
      Src: /src/zlib/contrib/puff/pufftest.c:79,1
    - Dst: free
      Src: /src/zlib/contrib/puff/pufftest.c:80,1
    - Dst: fclose
      Src: /src/zlib/contrib/puff/pufftest.c:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: load
    functionSourceFile: /src/zlib/contrib/puff/pufftest.c
    functionUses: 6
    functionsReached:
    - fclose
    - fopen
    - realloc
    - free
    - malloc
    - fread
    - bythirds
    linkageType: ''
    returnType: local
    signature: local *load(const char *name, size_t *len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/zlib/contrib/puff/pufftest.c:108,1
    - Dst: fprintf
      Src: /src/zlib/contrib/puff/pufftest.c:110,1
    - Dst: fprintf
      Src: /src/zlib/contrib/puff/pufftest.c:115,1
    - Dst: load
      Src: /src/zlib/contrib/puff/pufftest.c:120,1
    - Dst: fprintf
      Src: /src/zlib/contrib/puff/pufftest.c:122,1
    - Dst: fprintf
      Src: /src/zlib/contrib/puff/pufftest.c:126,1
    - Dst: free
      Src: /src/zlib/contrib/puff/pufftest.c:128,1
    - Dst: fprintf
      Src: /src/zlib/contrib/puff/pufftest.c:132,1
    - Dst: free
      Src: /src/zlib/contrib/puff/pufftest.c:133,1
    - Dst: puff
      Src: /src/zlib/contrib/puff/pufftest.c:140,1
    - Dst: fprintf
      Src: /src/zlib/contrib/puff/pufftest.c:142,1
    - Dst: fprintf
      Src: /src/zlib/contrib/puff/pufftest.c:144,1
    - Dst: fprintf
      Src: /src/zlib/contrib/puff/pufftest.c:145,1
    - Dst: malloc
      Src: /src/zlib/contrib/puff/pufftest.c:153,1
    - Dst: fprintf
      Src: /src/zlib/contrib/puff/pufftest.c:155,1
    - Dst: free
      Src: /src/zlib/contrib/puff/pufftest.c:156,1
    - Dst: puff
      Src: /src/zlib/contrib/puff/pufftest.c:159,1
    - Dst: SET_BINARY_MODE
      Src: /src/zlib/contrib/puff/pufftest.c:160,1
    - Dst: fwrite
      Src: /src/zlib/contrib/puff/pufftest.c:161,1
    - Dst: free
      Src: /src/zlib/contrib/puff/pufftest.c:162,1
    - Dst: free
      Src: /src/zlib/contrib/puff/pufftest.c:166,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/zlib/contrib/puff/pufftest.c
    functionUses: 0
    functionsReached:
    - atoi
    - fwrite
    - SET_BINARY_MODE
    - puff
    - free
    - malloc
    - load
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getchar
      Src: /src/zlib/contrib/puff/bin-writer.c:14,1
    - Dst: getchar
      Src: /src/zlib/contrib/puff/bin-writer.c:16,1
    - Dst: strtol
      Src: /src/zlib/contrib/puff/bin-writer.c:19,1
    - Dst: fwrite
      Src: /src/zlib/contrib/puff/bin-writer.c:20,1
    - Dst: getchar
      Src: /src/zlib/contrib/puff/bin-writer.c:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 26
    functionName: main
    functionSourceFile: /src/zlib/contrib/puff/bin-writer.c
    functionUses: 0
    functionsReached:
    - getchar
    - fwrite
    - strtol
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - R
    - A
    - B
    argTypes:
    - LARGE_INTEGER*
    - LARGE_INTEGER
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 18
    functionName: MyDoMinus64
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MyDoMinus64(LARGE_INTEGER *R,LARGE_INTEGER A,LARGE_INTEGER B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __rdtsc
      Src: /src/zlib/contrib/testzlib/testzlib.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pbeginTime64
    argTypes:
    - LARGE_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: BeginCountRdtsc
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached:
    - __rdtsc
    linkageType: ''
    returnType: void
    signature: void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __rdtsc
      Src: /src/zlib/contrib/testzlib/testzlib.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - beginTime64
    - fComputeTimeQueryPerf
    argTypes:
    - LARGE_INTEGER
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: GetResRdtsc
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached:
    - __rdtsc
    linkageType: ''
    returnType: LARGE_INTEGER
    signature: LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pbeginTime64
    argTypes:
    - LARGE_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: myGetRDTSC32
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void myGetRDTSC32(LARGE_INTEGER * pbeginTime64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: myGetRDTSC32
      Src: /src/zlib/contrib/testzlib/testzlib.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pbeginTime64
    argTypes:
    - LARGE_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: BeginCountRdtsc
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached:
    - myGetRDTSC32
    linkageType: ''
    returnType: void
    signature: void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: myGetRDTSC32
      Src: /src/zlib/contrib/testzlib/testzlib.c:60,1
    - Dst: MyDoMinus64
      Src: /src/zlib/contrib/testzlib/testzlib.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - beginTime64
    - fComputeTimeQueryPerf
    argTypes:
    - LARGE_INTEGER
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: GetResRdtsc
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached:
    - myGetRDTSC32
    - MyDoMinus64
    linkageType: ''
    returnType: LARGE_INTEGER
    signature: LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pbeginTime64
    argTypes:
    - LARGE_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: myGetRDTSC32
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void myGetRDTSC32(LARGE_INTEGER * pbeginTime64)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pbeginTime64
    argTypes:
    - LARGE_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: BeginCountRdtsc
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - beginTime64
    - fComputeTimeQueryPerf
    argTypes:
    - LARGE_INTEGER
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: GetResRdtsc
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LARGE_INTEGER
    signature: LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceCounter
      Src: /src/zlib/contrib/testzlib/testzlib.c:86,1
    - Dst: GetTickCount
      Src: /src/zlib/contrib/testzlib/testzlib.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pbeginTime64
    - fComputeTimeQueryPerf
    argTypes:
    - LARGE_INTEGER*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: BeginCountPerfCounter
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached:
    - QueryPerformanceCounter
    - GetTickCount
    linkageType: ''
    returnType: void
    signature: void BeginCountPerfCounter(LARGE_INTEGER * pbeginTime64,BOOL fComputeTimeQueryPerf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceCounter
      Src: /src/zlib/contrib/testzlib/testzlib.c:99,1
    - Dst: GetTickCount
      Src: /src/zlib/contrib/testzlib/testzlib.c:100,1
    - Dst: MyDoMinus64
      Src: /src/zlib/contrib/testzlib/testzlib.c:103,1
    - Dst: QueryPerformanceFrequency
      Src: /src/zlib/contrib/testzlib/testzlib.c:104,1
    - Dst: Int64ShrlMod32
      Src: /src/zlib/contrib/testzlib/testzlib.c:108,1
    - Dst: Int64ShrlMod32
      Src: /src/zlib/contrib/testzlib/testzlib.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - beginTime64
    - fComputeTimeQueryPerf
    argTypes:
    - LARGE_INTEGER
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 117
    functionName: GetMsecSincePerfCounter
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached:
    - QueryPerformanceCounter
    - QueryPerformanceFrequency
    - Int64ShrlMod32
    - MyDoMinus64
    - GetTickCount
    linkageType: ''
    returnType: DWORD
    signature: DWORD GetMsecSincePerfCounter(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/zlib/contrib/testzlib/testzlib.c:124,1
    - Dst: fseek
      Src: /src/zlib/contrib/testzlib/testzlib.c:128,1
    - Dst: ftell
      Src: /src/zlib/contrib/testzlib/testzlib.c:130,1
    - Dst: fseek
      Src: /src/zlib/contrib/testzlib/testzlib.c:131,1
    - Dst: malloc
      Src: /src/zlib/contrib/testzlib/testzlib.c:132,1
    - Dst: fread
      Src: /src/zlib/contrib/testzlib/testzlib.c:137,1
    - Dst: fclose
      Src: /src/zlib/contrib/testzlib/testzlib.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - filename
    - plFileSize
    - pFilePtr
    argTypes:
    - char*
    - long*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 143
    functionName: ReadFileMemory
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached:
    - fclose
    - fseek
    - ftell
    - fopen
    - malloc
    - fread
    linkageType: ''
    returnType: int
    signature: int ReadFileMemory(const char* filename,long* plFileSize,unsigned char**
      pFilePtr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:163,1
    - Dst: ReadFileMemory
      Src: /src/zlib/contrib/testzlib/testzlib.c:167,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:169,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:172,1
    - Dst: atol
      Src: /src/zlib/contrib/testzlib/testzlib.c:175,1
    - Dst: atol
      Src: /src/zlib/contrib/testzlib/testzlib.c:178,1
    - Dst: atol
      Src: /src/zlib/contrib/testzlib/testzlib.c:181,1
    - Dst: malloc
      Src: /src/zlib/contrib/testzlib/testzlib.c:186,1
    - Dst: BeginCountPerfCounter
      Src: /src/zlib/contrib/testzlib/testzlib.c:188,1
    - Dst: GetTickCount
      Src: /src/zlib/contrib/testzlib/testzlib.c:189,1
    - Dst: BeginCountRdtsc
      Src: /src/zlib/contrib/testzlib/testzlib.c:190,1
    - Dst: memset
      Src: /src/zlib/contrib/testzlib/testzlib.c:197,1
    - Dst: deflateInit
      Src: /src/zlib/contrib/testzlib/testzlib.c:198,1
    - Dst: min
      Src: /src/zlib/contrib/testzlib/testzlib.c:207,1
    - Dst: deflate
      Src: /src/zlib/contrib/testzlib/testzlib.c:209,1
    - Dst: deflateEnd
      Src: /src/zlib/contrib/testzlib/testzlib.c:216,1
    - Dst: GetTickCount
      Src: /src/zlib/contrib/testzlib/testzlib.c:217,1
    - Dst: GetMsecSincePerfCounter
      Src: /src/zlib/contrib/testzlib/testzlib.c:218,1
    - Dst: GetResRdtsc
      Src: /src/zlib/contrib/testzlib/testzlib.c:219,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:220,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:221,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:222,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:223,1
    - Dst: realloc
      Src: /src/zlib/contrib/testzlib/testzlib.c:226,1
    - Dst: malloc
      Src: /src/zlib/contrib/testzlib/testzlib.c:227,1
    - Dst: BeginCountPerfCounter
      Src: /src/zlib/contrib/testzlib/testzlib.c:229,1
    - Dst: GetTickCount
      Src: /src/zlib/contrib/testzlib/testzlib.c:230,1
    - Dst: BeginCountRdtsc
      Src: /src/zlib/contrib/testzlib/testzlib.c:231,1
    - Dst: memset
      Src: /src/zlib/contrib/testzlib/testzlib.c:238,1
    - Dst: inflateInit
      Src: /src/zlib/contrib/testzlib/testzlib.c:239,1
    - Dst: min
      Src: /src/zlib/contrib/testzlib/testzlib.c:248,1
    - Dst: inflate
      Src: /src/zlib/contrib/testzlib/testzlib.c:250,1
    - Dst: inflateEnd
      Src: /src/zlib/contrib/testzlib/testzlib.c:257,1
    - Dst: GetTickCount
      Src: /src/zlib/contrib/testzlib/testzlib.c:258,1
    - Dst: GetMsecSincePerfCounter
      Src: /src/zlib/contrib/testzlib/testzlib.c:259,1
    - Dst: GetResRdtsc
      Src: /src/zlib/contrib/testzlib/testzlib.c:260,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:261,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:262,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:263,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:264,1
    - Dst: memcmp
      Src: /src/zlib/contrib/testzlib/testzlib.c:269,1
    - Dst: printf
      Src: /src/zlib/contrib/testzlib/testzlib.c:270,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 275
    functionName: main
    functionSourceFile: /src/zlib/contrib/testzlib/testzlib.c
    functionUses: 0
    functionsReached:
    - memcmp
    - inflateInit
    - realloc
    - BeginCountPerfCounter
    - atol
    - printf
    - BeginCountRdtsc
    - memset
    - inflate
    - deflateEnd
    - min
    - GetTickCount
    - ReadFileMemory
    - deflateInit
    - GetResRdtsc
    - GetMsecSincePerfCounter
    - malloc
    - inflateEnd
    - deflate
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::ios_base::openmode
      Src: /src/zlib/contrib/iostream3/zfstream.cc:22,1
    - Dst: gzfilebuf::disable_buffer
      Src: /src/zlib/contrib/iostream3/zfstream.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: gzfilebuf::gzfilebuf
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - std::ios_base::openmode
    - gzfilebuf::disable_buffer
    linkageType: ''
    returnType: void
    signature: void gzfilebuf::gzfilebuf()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::sync
      Src: /src/zlib/contrib/iostream3/zfstream.cc:34,1
    - Dst: gzfilebuf::close
      Src: /src/zlib/contrib/iostream3/zfstream.cc:36,1
    - Dst: gzfilebuf::disable_buffer
      Src: /src/zlib/contrib/iostream3/zfstream.cc:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: gzfilebuf::~gzfilebuf()
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzfilebuf::sync
    - gzfilebuf::close
    - gzfilebuf::disable_buffer
    linkageType: ''
    returnType: void
    signature: void gzfilebuf::~gzfilebuf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzsetparams
      Src: /src/zlib/contrib/iostream3/zfstream.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comp_level
    - comp_strategy
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: gzfilebuf::setcompression
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzsetparams
    linkageType: ''
    returnType: int
    signature: "int gzfilebuf::setcompression(int comp_level,\n                          int
      comp_strategy)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:55,1
    - Dst: gzfilebuf::open_mode
      Src: /src/zlib/contrib/iostream3/zfstream.cc:63,1
    - Dst: gzopen
      Src: /src/zlib/contrib/iostream3/zfstream.cc:67,1
    - Dst: gzfilebuf::enable_buffer
      Src: /src/zlib/contrib/iostream3/zfstream.cc:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - name
    - mode
    argTypes:
    - char*
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 75
    functionName: gzfilebuf::open
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzopen
    - gzfilebuf::enable_buffer
    - gzfilebuf::is_open
    - gzfilebuf::open_mode
    linkageType: ''
    returnType: gzfilebuf
    signature: "gzfilebuf *\ngzfilebuf::open(const char *name,\n                std::ios_base::openmode
      mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:83,1
    - Dst: gzfilebuf::open_mode
      Src: /src/zlib/contrib/iostream3/zfstream.cc:91,1
    - Dst: gzdopen
      Src: /src/zlib/contrib/iostream3/zfstream.cc:95,1
    - Dst: gzfilebuf::enable_buffer
      Src: /src/zlib/contrib/iostream3/zfstream.cc:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 103
    functionName: gzfilebuf::attach
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzfilebuf::enable_buffer
    - gzdopen
    - gzfilebuf::is_open
    - gzfilebuf::open_mode
    linkageType: ''
    returnType: gzfilebuf
    signature: "gzfilebuf *\ngzfilebuf::attach(int fd,\n                  std::ios_base::openmode
      mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:110,1
    - Dst: gzfilebuf::sync
      Src: /src/zlib/contrib/iostream3/zfstream.cc:115,1
    - Dst: gzclose
      Src: /src/zlib/contrib/iostream3/zfstream.cc:117,1
    - Dst: gzfilebuf::disable_buffer
      Src: /src/zlib/contrib/iostream3/zfstream.cc:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: gzfilebuf::close
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 2
    functionsReached:
    - gzfilebuf::sync
    - gzfilebuf::disable_buffer
    - gzfilebuf::is_open
    - gzclose
    linkageType: ''
    returnType: gzfilebuf
    signature: 'gzfilebuf *

      gzfilebuf::close()'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/zlib/contrib/iostream3/zfstream.cc:146,1
    - Dst: strcpy
      Src: /src/zlib/contrib/iostream3/zfstream.cc:148,1
    - Dst: strcpy
      Src: /src/zlib/contrib/iostream3/zfstream.cc:150,1
    - Dst: strcpy
      Src: /src/zlib/contrib/iostream3/zfstream.cc:152,1
    - Dst: strlen
      Src: /src/zlib/contrib/iostream3/zfstream.cc:160,1
    - Dst: strcat
      Src: /src/zlib/contrib/iostream3/zfstream.cc:163,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 14
    argCount: 2
    argNames:
    - mode
    - c_mode
    argTypes:
    - std::ios_base::openmode
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 165
    functionName: gzfilebuf::open_mode
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 2
    functionsReached:
    - strcat
    - strlen
    - strcpy
    linkageType: ''
    returnType: bool
    signature: "bool gzfilebuf::open_mode(std::ios_base::openmode mode,\n                     char*
      c_mode) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:172,1
    - Dst: gzfilebuf::gptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:175,1
    - Dst: gzfilebuf::gptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:175,1
    - Dst: gzfilebuf::egptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:175,1
    - Dst: std::streamsize
      Src: /src/zlib/contrib/iostream3/zfstream.cc:176,1
    - Dst: gzfilebuf::egptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:176,1
    - Dst: gzfilebuf::gptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: gzfilebuf::showmanyc
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzfilebuf::gptr
    - std::streamsize
    - gzfilebuf::is_open
    - gzfilebuf::egptr
    linkageType: ''
    returnType: std::streamsize
    signature: std::streamsize gzfilebuf::showmanyc()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::gptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:188,1
    - Dst: gzfilebuf::gptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:188,1
    - Dst: gzfilebuf::egptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:188,1
    - Dst: traits_type::to_int_type
      Src: /src/zlib/contrib/iostream3/zfstream.cc:189,1
    - Dst: gzfilebuf::gptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:189,1
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:192,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:193,1
    - Dst: gzread
      Src: /src/zlib/contrib/iostream3/zfstream.cc:197,1
    - Dst: gzfilebuf::setg
      Src: /src/zlib/contrib/iostream3/zfstream.cc:202,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:203,1
    - Dst: gzfilebuf::setg
      Src: /src/zlib/contrib/iostream3/zfstream.cc:206,1
    - Dst: traits_type::to_int_type
      Src: /src/zlib/contrib/iostream3/zfstream.cc:209,1
    - Dst: gzfilebuf::gptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 210
    functionName: gzfilebuf::underflow
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzfilebuf::setg
    - gzfilebuf::gptr
    - gzeof
    - gzfilebuf::egptr
    - gzread
    - gzfilebuf::is_open
    - traits_type::to_int_type
    linkageType: ''
    returnType: gzfilebuf::int_type
    signature: gzfilebuf::int_type gzfilebuf::underflow()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::pbase
      Src: /src/zlib/contrib/iostream3/zfstream.cc:217,1
    - Dst: gzfilebuf::pptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:220,1
    - Dst: gzfilebuf::epptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:220,1
    - Dst: gzfilebuf::pptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:220,1
    - Dst: gzfilebuf::pbase
      Src: /src/zlib/contrib/iostream3/zfstream.cc:220,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:221,1
    - Dst: traits_type::eq_int_type
      Src: /src/zlib/contrib/iostream3/zfstream.cc:223,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:223,1
    - Dst: gzfilebuf::pptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:225,1
    - Dst: traits_type::to_char_type
      Src: /src/zlib/contrib/iostream3/zfstream.cc:225,1
    - Dst: gzfilebuf::pbump
      Src: /src/zlib/contrib/iostream3/zfstream.cc:226,1
    - Dst: gzfilebuf::pptr
      Src: /src/zlib/contrib/iostream3/zfstream.cc:229,1
    - Dst: gzfilebuf::pbase
      Src: /src/zlib/contrib/iostream3/zfstream.cc:229,1
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:234,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:235,1
    - Dst: gzwrite
      Src: /src/zlib/contrib/iostream3/zfstream.cc:237,1
    - Dst: gzfilebuf::pbase
      Src: /src/zlib/contrib/iostream3/zfstream.cc:237,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:238,1
    - Dst: gzfilebuf::pbump
      Src: /src/zlib/contrib/iostream3/zfstream.cc:240,1
    - Dst: traits_type::eq_int_type
      Src: /src/zlib/contrib/iostream3/zfstream.cc:244,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:244,1
    - Dst: gzfilebuf::is_open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:247,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:248,1
    - Dst: traits_type::to_char_type
      Src: /src/zlib/contrib/iostream3/zfstream.cc:250,1
    - Dst: gzwrite
      Src: /src/zlib/contrib/iostream3/zfstream.cc:252,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:253,1
    - Dst: traits_type::eq_int_type
      Src: /src/zlib/contrib/iostream3/zfstream.cc:258,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:258,1
    - Dst: traits_type::not_eof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:259,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 1
    argNames:
    - c
    argTypes:
    - int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 262
    functionName: gzfilebuf::overflow
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzfilebuf::pptr
    - gzfilebuf::pbase
    - traits_type::not_eof
    - gzwrite
    - gzeof
    - gzfilebuf::pbump
    - gzfilebuf::epptr
    - traits_type::to_char_type
    - traits_type::eq_int_type
    - gzfilebuf::is_open
    linkageType: ''
    returnType: gzfilebuf::int_type
    signature: gzfilebuf::int_type gzfilebuf::overflow(int_type c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::sync
      Src: /src/zlib/contrib/iostream3/zfstream.cc:270,1
    - Dst: gzfilebuf::disable_buffer
      Src: /src/zlib/contrib/iostream3/zfstream.cc:279,1
    - Dst: gzfilebuf::enable_buffer
      Src: /src/zlib/contrib/iostream3/zfstream.cc:283,1
    - Dst: gzfilebuf::disable_buffer
      Src: /src/zlib/contrib/iostream3/zfstream.cc:288,1
    - Dst: gzfilebuf::enable_buffer
      Src: /src/zlib/contrib/iostream3/zfstream.cc:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - char_type*
    - std::streamsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 295
    functionName: gzfilebuf::setbuf
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzfilebuf::sync
    - gzfilebuf::enable_buffer
    - gzfilebuf::disable_buffer
    linkageType: ''
    returnType: std::streambuf
    signature: "std::streambuf *\ngzfilebuf::setbuf(char_type* p,\n                  std::streamsize
      n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: traits_type::eq_int_type
      Src: /src/zlib/contrib/iostream3/zfstream.cc:301,1
    - Dst: gzfilebuf::overflow
      Src: /src/zlib/contrib/iostream3/zfstream.cc:301,1
    - Dst: gzeof
      Src: /src/zlib/contrib/iostream3/zfstream.cc:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: gzfilebuf::sync
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 5
    functionsReached:
    - traits_type::eq_int_type
    - gzeof
    - gzfilebuf::overflow
    linkageType: ''
    returnType: int
    signature: int gzfilebuf::sync()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: char_type::char_type
      Src: /src/zlib/contrib/iostream3/zfstream.cc:317,1
    - Dst: gzfilebuf::setg
      Src: /src/zlib/contrib/iostream3/zfstream.cc:319,1
    - Dst: gzfilebuf::setp
      Src: /src/zlib/contrib/iostream3/zfstream.cc:324,1
    - Dst: char_type::char_type
      Src: /src/zlib/contrib/iostream3/zfstream.cc:330,1
    - Dst: gzfilebuf::setg
      Src: /src/zlib/contrib/iostream3/zfstream.cc:331,1
    - Dst: gzfilebuf::setp
      Src: /src/zlib/contrib/iostream3/zfstream.cc:333,1
    - Dst: gzfilebuf::setg
      Src: /src/zlib/contrib/iostream3/zfstream.cc:340,1
    - Dst: gzfilebuf::setp
      Src: /src/zlib/contrib/iostream3/zfstream.cc:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 343
    functionName: gzfilebuf::enable_buffer
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 3
    functionsReached:
    - gzfilebuf::setg
    - char_type::char_type
    - gzfilebuf::setp
    linkageType: ''
    returnType: void
    signature: void gzfilebuf::enable_buffer()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gzfilebuf::pbase
      Src: /src/zlib/contrib/iostream3/zfstream.cc:353,1
    - Dst: gzfilebuf::setg
      Src: /src/zlib/contrib/iostream3/zfstream.cc:357,1
    - Dst: gzfilebuf::setp
      Src: /src/zlib/contrib/iostream3/zfstream.cc:358,1
    - Dst: gzfilebuf::setg
      Src: /src/zlib/contrib/iostream3/zfstream.cc:363,1
    - Dst: gzfilebuf::setp
      Src: /src/zlib/contrib/iostream3/zfstream.cc:365,1
    - Dst: gzfilebuf::setp
      Src: /src/zlib/contrib/iostream3/zfstream.cc:367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 369
    functionName: gzfilebuf::disable_buffer
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 4
    functionsReached:
    - gzfilebuf::setg
    - gzfilebuf::pbase
    - gzfilebuf::setp
    linkageType: ''
    returnType: void
    signature: void gzfilebuf::disable_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzifstream::init
      Src: /src/zlib/contrib/iostream3/zfstream.cc:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 376
    functionName: gzifstream::gzifstream
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzifstream::init
    linkageType: ''
    returnType: void
    signature: void gzifstream::gzifstream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzifstream::init
      Src: /src/zlib/contrib/iostream3/zfstream.cc:383,1
    - Dst: gzifstream::open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - mode
    argTypes:
    - char*
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: gzifstream::gzifstream
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzifstream::open
    - gzifstream::init
    linkageType: ''
    returnType: void
    signature: "void gzifstream::gzifstream(const char* name,\n                       std::ios_base::openmode
      mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzifstream::init
      Src: /src/zlib/contrib/iostream3/zfstream.cc:392,1
    - Dst: gzifstream::attach
      Src: /src/zlib/contrib/iostream3/zfstream.cc:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 394
    functionName: gzifstream::gzifstream
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzifstream::init
    - gzifstream::attach
    linkageType: ''
    returnType: void
    signature: "void gzifstream::gzifstream(int fd,\n                       std::ios_base::openmode
      mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzifstream::open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:401,1
    - Dst: gzifstream::setstate
      Src: /src/zlib/contrib/iostream3/zfstream.cc:402,1
    - Dst: gzifstream::clear
      Src: /src/zlib/contrib/iostream3/zfstream.cc:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - mode
    argTypes:
    - char*
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 405
    functionName: gzifstream::open
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 2
    functionsReached:
    - gzifstream::open
    - gzifstream::setstate
    - gzifstream::clear
    linkageType: ''
    returnType: void
    signature: "void gzifstream::open(const char* name,\n                 std::ios_base::openmode
      mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzifstream::attach
      Src: /src/zlib/contrib/iostream3/zfstream.cc:412,1
    - Dst: gzifstream::setstate
      Src: /src/zlib/contrib/iostream3/zfstream.cc:413,1
    - Dst: gzifstream::clear
      Src: /src/zlib/contrib/iostream3/zfstream.cc:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: gzifstream::attach
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 2
    functionsReached:
    - gzifstream::clear
    - gzifstream::setstate
    - gzifstream::attach
    linkageType: ''
    returnType: void
    signature: "void gzifstream::attach(int fd,\n                   std::ios_base::openmode
      mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzifstream::close
      Src: /src/zlib/contrib/iostream3/zfstream.cc:422,1
    - Dst: gzifstream::setstate
      Src: /src/zlib/contrib/iostream3/zfstream.cc:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: gzifstream::close
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 1
    functionsReached:
    - gzifstream::close
    - gzifstream::setstate
    linkageType: ''
    returnType: void
    signature: void gzifstream::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::init
      Src: /src/zlib/contrib/iostream3/zfstream.cc:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: gzofstream::gzofstream
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzofstream::init
    linkageType: ''
    returnType: void
    signature: void gzofstream::gzofstream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::init
      Src: /src/zlib/contrib/iostream3/zfstream.cc:438,1
    - Dst: gzofstream::open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - mode
    argTypes:
    - char*
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 440
    functionName: gzofstream::gzofstream
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzofstream::open
    - gzofstream::init
    linkageType: ''
    returnType: void
    signature: "void gzofstream::gzofstream(const char* name,\n                       std::ios_base::openmode
      mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::init
      Src: /src/zlib/contrib/iostream3/zfstream.cc:447,1
    - Dst: gzofstream::attach
      Src: /src/zlib/contrib/iostream3/zfstream.cc:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 449
    functionName: gzofstream::gzofstream
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 0
    functionsReached:
    - gzofstream::attach
    - gzofstream::init
    linkageType: ''
    returnType: void
    signature: "void gzofstream::gzofstream(int fd,\n                       std::ios_base::openmode
      mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::open
      Src: /src/zlib/contrib/iostream3/zfstream.cc:456,1
    - Dst: gzofstream::setstate
      Src: /src/zlib/contrib/iostream3/zfstream.cc:457,1
    - Dst: gzofstream::clear
      Src: /src/zlib/contrib/iostream3/zfstream.cc:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - mode
    argTypes:
    - char*
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: gzofstream::open
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 2
    functionsReached:
    - gzofstream::open
    - gzofstream::setstate
    - gzofstream::clear
    linkageType: ''
    returnType: void
    signature: "void gzofstream::open(const char* name,\n                 std::ios_base::openmode
      mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::attach
      Src: /src/zlib/contrib/iostream3/zfstream.cc:467,1
    - Dst: gzofstream::setstate
      Src: /src/zlib/contrib/iostream3/zfstream.cc:468,1
    - Dst: gzofstream::clear
      Src: /src/zlib/contrib/iostream3/zfstream.cc:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 471
    functionName: gzofstream::attach
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 2
    functionsReached:
    - gzofstream::attach
    - gzofstream::setstate
    - gzofstream::clear
    linkageType: ''
    returnType: void
    signature: "void gzofstream::attach(int fd,\n                   std::ios_base::openmode
      mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::close
      Src: /src/zlib/contrib/iostream3/zfstream.cc:477,1
    - Dst: gzofstream::setstate
      Src: /src/zlib/contrib/iostream3/zfstream.cc:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: gzofstream::close
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.cc
    functionUses: 2
    functionsReached:
    - gzofstream::close
    - gzofstream::setstate
    linkageType: ''
    returnType: void
    signature: void gzofstream::close()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: gzfilebuf::is_open
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_open() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<gzfilebuf*>
      Src: /src/zlib/contrib/iostream3/zfstream.h:263,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: gzifstream::rdbuf
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.h
    functionUses: 0
    functionsReached:
    - const_cast<gzfilebuf*>
    linkageType: ''
    returnType: gzfilebuf
    signature: "gzfilebuf *\n  rdbuf() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzifstream::is_open
      Src: /src/zlib/contrib/iostream3/zfstream.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: gzifstream::is_open
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.h
    functionUses: 1
    functionsReached:
    - gzifstream::is_open
    linkageType: ''
    returnType: bool
    signature: bool is_open()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<gzfilebuf*>
      Src: /src/zlib/contrib/iostream3/zfstream.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: gzofstream::rdbuf
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.h
    functionUses: 2
    functionsReached:
    - const_cast<gzfilebuf*>
    linkageType: ''
    returnType: gzfilebuf
    signature: "gzfilebuf *\n  rdbuf() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::is_open
      Src: /src/zlib/contrib/iostream3/zfstream.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: gzofstream::is_open
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.h
    functionUses: 1
    functionsReached:
    - gzofstream::is_open
    linkageType: ''
    returnType: bool
    signature: bool is_open()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::rdbuf
      Src: /src/zlib/contrib/iostream3/zfstream.h:442,1
    - Dst: setcompression
      Src: /src/zlib/contrib/iostream3/zfstream.h:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gzs
    - l
    argTypes:
    - gzofstream
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: setcompression
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.h
    functionUses: 1
    functionsReached:
    - gzofstream::rdbuf
    - setcompression
    linkageType: ''
    returnType: gzofstream
    signature: 'gzofstream &

      setcompression(gzofstream &gzs, int l, int s = Z_DEFAULT_STRATEGY)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - (*f)(gzofstream , T1, T2)
    - v1
    - v2
    argTypes:
    - gzofstream
    - T1
    - T2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: gzomanip2<T1,T2>::gzomanip2
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void gzomanip2<T1,T2>::gzomanip2(gzofstream &(*f)(gzofstream &, T1,
      T2),\n                              T1 v1,\n                              T2
      v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - ' m'
    argTypes:
    - gzofstream
    - gzomanip2<T1,T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 459
    functionName: "&\n  operator<<(gzofstream& s, const gzomanip2<T1,T2>& m)"
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gzofstream
    signature: "gzofstream &\n  operator<<(gzofstream& s, const gzomanip2<T1,T2>&
      m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzomanip2<int,int>
      Src: /src/zlib/contrib/iostream3/zfstream.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: setcompression
    functionSourceFile: /src/zlib/contrib/iostream3/zfstream.h
    functionUses: 1
    functionsReached:
    - gzomanip2<int,int>
    linkageType: ''
    returnType: gzomanip2<int,int>
    signature: gzomanip2<int,int> setcompression(int l, int s = Z_DEFAULT_STRATEGY)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzofstream::gzofstream
      Src: /src/zlib/contrib/iostream3/test.cc:13,1
    - Dst: gzifstream::gzifstream
      Src: /src/zlib/contrib/iostream3/test.cc:14,1
    - Dst: gzofstream::open
      Src: /src/zlib/contrib/iostream3/test.cc:17,1
    - Dst: gzofstream::close
      Src: /src/zlib/contrib/iostream3/test.cc:20,1
    - Dst: gzifstream::open
      Src: /src/zlib/contrib/iostream3/test.cc:26,1
    - Dst: gzifstream::getline
      Src: /src/zlib/contrib/iostream3/test.cc:27,1
    - Dst: gzifstream::rdbuf
      Src: /src/zlib/contrib/iostream3/test.cc:28,1
    - Dst: gzifstream::close
      Src: /src/zlib/contrib/iostream3/test.cc:30,1
    - Dst: gzofstream::rdbuf
      Src: /src/zlib/contrib/iostream3/test.cc:32,1
    - Dst: gzofstream::open
      Src: /src/zlib/contrib/iostream3/test.cc:33,1
    - Dst: setcompression
      Src: /src/zlib/contrib/iostream3/test.cc:34,1
    - Dst: gzofstream::close
      Src: /src/zlib/contrib/iostream3/test.cc:37,1
    - Dst: gzifstream::rdbuf
      Src: /src/zlib/contrib/iostream3/test.cc:41,1
    - Dst: gzifstream::open
      Src: /src/zlib/contrib/iostream3/test.cc:42,1
    - Dst: gzifstream::getline
      Src: /src/zlib/contrib/iostream3/test.cc:43,1
    - Dst: gzifstream::rdbuf
      Src: /src/zlib/contrib/iostream3/test.cc:44,1
    - Dst: gzifstream::close
      Src: /src/zlib/contrib/iostream3/test.cc:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 11
    functionDepth: 2
    functionLinenumber: 11
    functionLinenumberEnd: 50
    functionName: main
    functionSourceFile: /src/zlib/contrib/iostream3/test.cc
    functionUses: 0
    functionsReached:
    - gzofstream::open
    - gzifstream::gzifstream
    - gzifstream::getline
    - gzifstream::close
    - gzofstream::rdbuf
    - gzofstream::close
    - gzofstream::gzofstream
    - gzifstream::rdbuf
    - gzifstream::open
    - setcompression
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_insert
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:79,1
    - Dst: vec_perm
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:82,1
    - Dst: vec_perm
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:83,1
    - Dst: vec_perm
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:84,1
    - Dst: vec_perm
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:85,1
    - Dst: vec_perm
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:93,1
    - Dst: vec_perm
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:94,1
    - Dst: vec_perm
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:95,1
    - Dst: vec_perm
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:96,1
    - Dst: vec_gfmsum_accum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:105,1
    - Dst: vec_gfmsum_accum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:106,1
    - Dst: vec_gfmsum_accum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:107,1
    - Dst: vec_gfmsum_accum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:108,1
    - Dst: vec_gfmsum_accum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:119,1
    - Dst: vec_gfmsum_accum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:120,1
    - Dst: vec_gfmsum_accum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:121,1
    - Dst: vec_perm
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:125,1
    - Dst: vec_gfmsum_accum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:128,1
    - Dst: vec_insert
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:141,1
    - Dst: vec_srb
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:148,1
    - Dst: vec_gfmsum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:157,1
    - Dst: vec_insert
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:172,1
    - Dst: vec_srb
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:173,1
    - Dst: vec_unpackl
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:174,1
    - Dst: vec_gfmsum_accum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:175,1
    - Dst: vec_unpackl
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:197,1
    - Dst: vec_gfmsum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:198,1
    - Dst: vec_unpackl
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:205,1
    - Dst: vec_gfmsum_accum_128
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 209
    functionName: crc32_le_vgfm_16
    functionSourceFile: /src/zlib/contrib/crc32vx/crc32_vx.c
    functionUses: 0
    functionsReached:
    - vec_perm
    - vec_unpackl
    - vec_gfmsum_128
    - vec_srb
    - vec_insert
    - vec_gfmsum_accum_128
    linkageType: ''
    returnType: local
    signature: local crc32_le_vgfm_16(uint32_t crc, const unsigned char *buf, size_t
      len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crc32_z
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:219,1
    - Dst: crc32_z
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:224,1
    - Dst: crc32_le_vgfm_16
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:230,1
    - Dst: crc32_z
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - unsigned long
    - unsigned char*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 236
    functionName: s390_crc32_vx
    functionSourceFile: /src/zlib/contrib/crc32vx/crc32_vx.c
    functionUses: 0
    functionsReached:
    - crc32_z
    - crc32_le_vgfm_16
    linkageType: ''
    returnType: local unsigned long
    signature: local unsigned long s390_crc32_vx(unsigned long crc, const unsigned
      char FAR *buf, z_size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getauxval
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: s390_crc32_setup
    functionSourceFile: /src/zlib/contrib/crc32vx/crc32_vx.c
    functionUses: 0
    functionsReached:
    - getauxval
    linkageType: ''
    returnType: local
    signature: local s390_crc32_setup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: z_once
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:250,1
    - Dst: crc32_z_hook
      Src: /src/zlib/contrib/crc32vx/crc32_vx.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - unsigned long
    - unsigned char*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: s390_crc32_init
    functionSourceFile: /src/zlib/contrib/crc32vx/crc32_vx.c
    functionUses: 0
    functionsReached:
    - crc32_z_hook
    - z_once
    linkageType: ''
    returnType: local unsigned long
    signature: local unsigned long s390_crc32_init(unsigned long crc, const unsigned
      char FAR *buf, z_size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZALLOC
      Src: /src/zlib/contrib/infback9/infback9.c:34,1
    - Dst: Tracev
      Src: /src/zlib/contrib/infback9/infback9.c:37,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - strm
    - window
    - version
    - stream_size
    argTypes:
    - z_stream*
    - unsigned char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 41
    functionName: inflateBack9Init_
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 0
    functionsReached:
    - ZALLOC
    - Tracev
    linkageType: ''
    returnType: int
    signature: "int inflateBack9Init_(z_stream FAR *strm, unsigned char FAR *window,\n
      \                             const char *version, int stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inflate_table9
      Src: /src/zlib/contrib/infback9/infback9.c:65,1
    - Dst: inflate_table9
      Src: /src/zlib/contrib/infback9/infback9.c:72,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:75,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:76,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:77,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:78,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:79,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:80,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:81,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:82,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:83,1
    - Dst: printf
      Src: /src/zlib/contrib/infback9/infback9.c:85,1
    - Dst: printf
      Src: /src/zlib/contrib/infback9/infback9.c:88,1
    - Dst: printf
      Src: /src/zlib/contrib/infback9/infback9.c:89,1
    - Dst: putchar
      Src: /src/zlib/contrib/infback9/infback9.c:92,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:94,1
    - Dst: printf
      Src: /src/zlib/contrib/infback9/infback9.c:96,1
    - Dst: printf
      Src: /src/zlib/contrib/infback9/infback9.c:99,1
    - Dst: printf
      Src: /src/zlib/contrib/infback9/infback9.c:100,1
    - Dst: putchar
      Src: /src/zlib/contrib/infback9/infback9.c:103,1
    - Dst: puts
      Src: /src/zlib/contrib/infback9/infback9.c:105,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 106
    functionName: makefixed9
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 0
    functionsReached:
    - puts
    - putchar
    - printf
    - inflate_table9
    linkageType: ''
    returnType: void
    signature: void makefixed9(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: INITBITS
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITBITS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: PULL
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: PULLBYTE
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULLBYTE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: NEEDBITS
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDBITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: BITS
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: DROPBITS
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DROPBITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: BYTEBITS
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTEBITS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 184
    functionName: ROOM
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROOM()
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: BYTEBITS
      Src: /src/zlib/contrib/infback9/infback9.c:268,1
    - Dst: NEEDBITS
      Src: /src/zlib/contrib/infback9/infback9.c:272,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:273,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:274,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:275,1
    - Dst: Tracev
      Src: /src/zlib/contrib/infback9/infback9.c:277,1
    - Dst: Tracev
      Src: /src/zlib/contrib/infback9/infback9.c:286,1
    - Dst: Tracev
      Src: /src/zlib/contrib/infback9/infback9.c:291,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:299,1
    - Dst: BYTEBITS
      Src: /src/zlib/contrib/infback9/infback9.c:304,1
    - Dst: NEEDBITS
      Src: /src/zlib/contrib/infback9/infback9.c:305,1
    - Dst: Tracev
      Src: /src/zlib/contrib/infback9/infback9.c:312,1
    - Dst: INITBITS
      Src: /src/zlib/contrib/infback9/infback9.c:314,1
    - Dst: PULL
      Src: /src/zlib/contrib/infback9/infback9.c:319,1
    - Dst: ROOM
      Src: /src/zlib/contrib/infback9/infback9.c:320,1
    - Dst: zmemcpy
      Src: /src/zlib/contrib/infback9/infback9.c:323,1
    - Dst: Tracev
      Src: /src/zlib/contrib/infback9/infback9.c:330,1
    - Dst: NEEDBITS
      Src: /src/zlib/contrib/infback9/infback9.c:336,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:337,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:338,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:339,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:340,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:341,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:342,1
    - Dst: Tracev
      Src: /src/zlib/contrib/infback9/infback9.c:348,1
    - Dst: NEEDBITS
      Src: /src/zlib/contrib/infback9/infback9.c:353,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:354,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:355,1
    - Dst: inflate_table9
      Src: /src/zlib/contrib/infback9/infback9.c:362,1
    - Dst: Tracev
      Src: /src/zlib/contrib/infback9/infback9.c:369,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:375,1
    - Dst: PULLBYTE
      Src: /src/zlib/contrib/infback9/infback9.c:377,1
    - Dst: NEEDBITS
      Src: /src/zlib/contrib/infback9/infback9.c:380,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:381,1
    - Dst: NEEDBITS
      Src: /src/zlib/contrib/infback9/infback9.c:386,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:387,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:394,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:395,1
    - Dst: NEEDBITS
      Src: /src/zlib/contrib/infback9/infback9.c:398,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:399,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:401,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:402,1
    - Dst: NEEDBITS
      Src: /src/zlib/contrib/infback9/infback9.c:405,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:406,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:408,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:409,1
    - Dst: inflate_table9
      Src: /src/zlib/contrib/infback9/infback9.c:437,1
    - Dst: inflate_table9
      Src: /src/zlib/contrib/infback9/infback9.c:446,1
    - Dst: Tracev
      Src: /src/zlib/contrib/infback9/infback9.c:454,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:460,1
    - Dst: PULLBYTE
      Src: /src/zlib/contrib/infback9/infback9.c:462,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:468,1
    - Dst: PULLBYTE
      Src: /src/zlib/contrib/infback9/infback9.c:470,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:472,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:474,1
    - Dst: Tracevv
      Src: /src/zlib/contrib/infback9/infback9.c:479,1
    - Dst: ROOM
      Src: /src/zlib/contrib/infback9/infback9.c:482,1
    - Dst: Tracevv
      Src: /src/zlib/contrib/infback9/infback9.c:491,1
    - Dst: NEEDBITS
      Src: /src/zlib/contrib/infback9/infback9.c:506,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:507,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:508,1
    - Dst: Tracevv
      Src: /src/zlib/contrib/infback9/infback9.c:510,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:514,1
    - Dst: PULLBYTE
      Src: /src/zlib/contrib/infback9/infback9.c:516,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:522,1
    - Dst: PULLBYTE
      Src: /src/zlib/contrib/infback9/infback9.c:524,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:526,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:528,1
    - Dst: NEEDBITS
      Src: /src/zlib/contrib/infback9/infback9.c:539,1
    - Dst: BITS
      Src: /src/zlib/contrib/infback9/infback9.c:540,1
    - Dst: DROPBITS
      Src: /src/zlib/contrib/infback9/infback9.c:541,1
    - Dst: Tracevv
      Src: /src/zlib/contrib/infback9/infback9.c:548,1
    - Dst: ROOM
      Src: /src/zlib/contrib/infback9/infback9.c:552,1
    - Dst: out
      Src: /src/zlib/contrib/infback9/infback9.c:575,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 305
    argCount: 5
    argNames:
    - strm
    - in
    - in_desc
    - out
    - out_desc
    argTypes:
    - z_stream*
    - in_func
    - void*
    - out_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 594
    functionName: inflateBack9
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 0
    functionsReached:
    - BYTEBITS
    - inflate_table9
    - INITBITS
    - DROPBITS
    - ROOM
    - zmemcpy
    - Tracev
    - PULLBYTE
    - Tracevv
    - BITS
    - out
    - NEEDBITS
    - PULL
    linkageType: ''
    returnType: int
    signature: "int inflateBack9(z_stream FAR *strm, in_func in, void FAR *in_desc,\n
      \                        out_func out, void FAR *out_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZFREE
      Src: /src/zlib/contrib/infback9/infback9.c:599,1
    - Dst: Tracev
      Src: /src/zlib/contrib/infback9/infback9.c:601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 603
    functionName: inflateBack9End
    functionSourceFile: /src/zlib/contrib/infback9/infback9.c
    functionUses: 0
    functionsReached:
    - Tracev
    - ZFREE
    linkageType: ''
    returnType: int
    signature: int inflateBack9End(z_stream FAR *strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - window
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: inflateBack9Init
    functionSourceFile: /src/zlib/contrib/infback9/infback9.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateBack9Init(strm, window)
  - BBCount: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 140
    argCount: 6
    argNames:
    - type
    - lens
    - codes
    - table
    - bits
    - work
    argTypes:
    - codetype
    - unsigned short FAR*
    - unsigned
    - code**
    - unsigned FAR*
    - unsigned short FAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 319
    functionName: inflate_table9
    functionSourceFile: /src/zlib/contrib/infback9/inftree9.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int inflate_table9(codetype type, unsigned short FAR *lens, unsigned
      codes,\n                   code FAR * FAR *table, unsigned FAR *bits,\n                   unsigned
      short FAR *work)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - file
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: SET_BINARY_MODE
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BINARY_MODE(file)
  - 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: zstringlen::value
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: izstream::izstream
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void izstream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: izstream::open
      Src: /src/zlib/contrib/iostream2/zstream.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: izstream::izstream
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - izstream::open
    linkageType: ''
    returnType: void
    signature: void izstream(FILE* fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: izstream::open
      Src: /src/zlib/contrib/iostream2/zstream.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: izstream::izstream
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - izstream::open
    linkageType: ''
    returnType: void
    signature: void izstream(const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/zlib/contrib/iostream2/zstream.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: ~izstream()
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~izstream()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: izstream::close
      Src: /src/zlib/contrib/iostream2/zstream.h:65,1
    - Dst: gzopen
      Src: /src/zlib/contrib/iostream2/zstream.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: izstream::open
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 2
    functionsReached:
    - izstream::close
    - gzopen
    linkageType: ''
    returnType: void
    signature: void open(const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SET_BINARY_MODE
      Src: /src/zlib/contrib/iostream2/zstream.h:70,1
    - Dst: izstream::close
      Src: /src/zlib/contrib/iostream2/zstream.h:71,1
    - Dst: gzdopen
      Src: /src/zlib/contrib/iostream2/zstream.h:72,1
    - Dst: fileno
      Src: /src/zlib/contrib/iostream2/zstream.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: izstream::open
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 2
    functionsReached:
    - fileno
    - izstream::close
    - gzdopen
    - SET_BINARY_MODE
    linkageType: ''
    returnType: void
    signature: void open(FILE* fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzclose
      Src: /src/zlib/contrib/iostream2/zstream.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: izstream::close
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 2
    functionsReached:
    - gzclose
    linkageType: ''
    returnType: int
    signature: int close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzread
      Src: /src/zlib/contrib/iostream2/zstream.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: izstream::read
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - gzread
    linkageType: ''
    returnType: int
    signature: int read(void* buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzerror
      Src: /src/zlib/contrib/iostream2/zstream.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: izstream::error
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - gzerror
    linkageType: ''
    returnType: char
    signature: char * error(int* errnum)
  - 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: izstream::fp
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gzFile
    signature: gzFile fp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzread
      Src: /src/zlib/contrib/iostream2/zstream.h:115,1
    - Dst: fp
      Src: /src/zlib/contrib/iostream2/zstream.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' zs'
    - x
    - items
    argTypes:
    - izstream
    - T*
    - Items
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: read
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 31
    functionsReached:
    - fp
    - gzread
    linkageType: ''
    returnType: int
    signature: int read(izstream& zs, T* x, Items items)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzread
      Src: /src/zlib/contrib/iostream2/zstream.h:123,1
    - Dst: fp
      Src: /src/zlib/contrib/iostream2/zstream.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' zs'
    - ' x'
    argTypes:
    - izstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: '& operator>(izstream& zs, T& x)'
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - fp
    - gzread
    linkageType: ''
    returnType: izstream
    signature: izstream & operator>(izstream& zs, T& x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' zs'
    argTypes:
    - izstream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: zstringlen::zstringlen
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void zstringlen::zstringlen(izstream& zs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzread
      Src: /src/zlib/contrib/iostream2/zstream.h:139,1
    - Dst: fp
      Src: /src/zlib/contrib/iostream2/zstream.h:139,1
    - Dst: zstringlen::value
      Src: /src/zlib/contrib/iostream2/zstream.h:139,1
    - Dst: zstringlen::value
      Src: /src/zlib/contrib/iostream2/zstream.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' zs'
    - x
    argTypes:
    - izstream
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: '& operator>(izstream& zs, char* x)'
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - fp
    - zstringlen::value
    - gzread
    linkageType: ''
    returnType: izstream
    signature: izstream & operator>(izstream& zs, char* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zstringlen::value
      Src: /src/zlib/contrib/iostream2/zstream.h:146,1
    - Dst: char::char
      Src: /src/zlib/contrib/iostream2/zstream.h:146,1
    - Dst: gzread
      Src: /src/zlib/contrib/iostream2/zstream.h:147,1
    - Dst: fp
      Src: /src/zlib/contrib/iostream2/zstream.h:147,1
    - Dst: zstringlen::value
      Src: /src/zlib/contrib/iostream2/zstream.h:147,1
    - Dst: zstringlen::value
      Src: /src/zlib/contrib/iostream2/zstream.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' zs'
    argTypes:
    - izstream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: read_string
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - fp
    - zstringlen::value
    - char::char
    - gzread
    linkageType: ''
    returnType: char
    signature: char * read_string(izstream& zs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: ozstream::ozstream
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ozstream()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ozstream::open
      Src: /src/zlib/contrib/iostream2/zstream.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: ozstream::ozstream
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - ozstream::open
    linkageType: ''
    returnType: void
    signature: void ozstream(FILE* fp, int level = Z_DEFAULT_COMPRESSION)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ozstream::open
      Src: /src/zlib/contrib/iostream2/zstream.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ozstream::ozstream
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - ozstream::open
    linkageType: ''
    returnType: void
    signature: void ozstream(const char* name, int level = Z_DEFAULT_COMPRESSION)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/zlib/contrib/iostream2/zstream.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: ~ozstream()
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~ozstream()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ozstream::close
      Src: /src/zlib/contrib/iostream2/zstream.h:179,1
    - Dst: gzopen
      Src: /src/zlib/contrib/iostream2/zstream.h:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: ozstream::open
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 2
    functionsReached:
    - ozstream::close
    - gzopen
    linkageType: ''
    returnType: void
    signature: void open(const char* name, int level = Z_DEFAULT_COMPRESSION)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SET_BINARY_MODE
      Src: /src/zlib/contrib/iostream2/zstream.h:186,1
    - Dst: ozstream::close
      Src: /src/zlib/contrib/iostream2/zstream.h:189,1
    - Dst: gzdopen
      Src: /src/zlib/contrib/iostream2/zstream.h:190,1
    - Dst: fileno
      Src: /src/zlib/contrib/iostream2/zstream.h:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: ozstream::open
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 2
    functionsReached:
    - fileno
    - gzdopen
    - ozstream::close
    - SET_BINARY_MODE
    linkageType: ''
    returnType: void
    signature: void open(FILE* fp, int level = Z_DEFAULT_COMPRESSION)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzwrite
      Src: /src/zlib/contrib/iostream2/zstream.h:199,1
    - Dst: str
      Src: /src/zlib/contrib/iostream2/zstream.h:199,1
    - Dst: pcount
      Src: /src/zlib/contrib/iostream2/zstream.h:199,1
    - Dst: str
      Src: /src/zlib/contrib/iostream2/zstream.h:200,1
    - Dst: gzclose
      Src: /src/zlib/contrib/iostream2/zstream.h:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: ozstream::close
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 2
    functionsReached:
    - gzwrite
    - pcount
    - str
    - gzclose
    linkageType: ''
    returnType: int
    signature: int close()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzwrite
      Src: /src/zlib/contrib/iostream2/zstream.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: ozstream::write
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - gzwrite
    linkageType: ''
    returnType: int
    signature: int write(const void* buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ozstream::os_flush
      Src: /src/zlib/contrib/iostream2/zstream.h:219,1
    - Dst: gzflush
      Src: /src/zlib/contrib/iostream2/zstream.h:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _flush
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: ozstream::flush
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - ozstream::os_flush
    - gzflush
    linkageType: ''
    returnType: int
    signature: int flush(int _flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzerror
      Src: /src/zlib/contrib/iostream2/zstream.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: ozstream::error
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - gzerror
    linkageType: ''
    returnType: char
    signature: char * error(int* errnum)
  - 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: ozstream::fp
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gzFile
    signature: gzFile fp()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ostrstream::ostrstream
      Src: /src/zlib/contrib/iostream2/zstream.h:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: '& os()'
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - ostrstream::ostrstream
    linkageType: ''
    returnType: ostream
    signature: ostream & os()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcount
      Src: /src/zlib/contrib/iostream2/zstream.h:241,1
    - Dst: ostrstream::ostrstream
      Src: /src/zlib/contrib/iostream2/zstream.h:242,1
    - Dst: ostrstream*::fill
      Src: /src/zlib/contrib/iostream2/zstream.h:243,1
    - Dst: fill
      Src: /src/zlib/contrib/iostream2/zstream.h:243,1
    - Dst: ostrstream*::flags
      Src: /src/zlib/contrib/iostream2/zstream.h:244,1
    - Dst: flags
      Src: /src/zlib/contrib/iostream2/zstream.h:244,1
    - Dst: ostrstream*::precision
      Src: /src/zlib/contrib/iostream2/zstream.h:245,1
    - Dst: precision
      Src: /src/zlib/contrib/iostream2/zstream.h:245,1
    - Dst: ostrstream*::width
      Src: /src/zlib/contrib/iostream2/zstream.h:246,1
    - Dst: width
      Src: /src/zlib/contrib/iostream2/zstream.h:246,1
    - Dst: gzwrite
      Src: /src/zlib/contrib/iostream2/zstream.h:247,1
    - Dst: str
      Src: /src/zlib/contrib/iostream2/zstream.h:247,1
    - Dst: pcount
      Src: /src/zlib/contrib/iostream2/zstream.h:247,1
    - Dst: str
      Src: /src/zlib/contrib/iostream2/zstream.h:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: ozstream::os_flush
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 1
    functionsReached:
    - ostrstream*::fill
    - str
    - gzwrite
    - ostrstream*::width
    - ostrstream::ostrstream
    - ostrstream*::flags
    - fill
    - pcount
    - ostrstream*::precision
    - width
    - precision
    - flags
    linkageType: ''
    returnType: void
    signature: void os_flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzwrite
      Src: /src/zlib/contrib/iostream2/zstream.h:264,1
    - Dst: fp
      Src: /src/zlib/contrib/iostream2/zstream.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' zs'
    - x
    - items
    argTypes:
    - ozstream
    - T*
    - Items
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: write
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 35
    functionsReached:
    - gzwrite
    - fp
    linkageType: ''
    returnType: int
    signature: int write(ozstream& zs, const T* x, Items items)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzwrite
      Src: /src/zlib/contrib/iostream2/zstream.h:272,1
    - Dst: fp
      Src: /src/zlib/contrib/iostream2/zstream.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' zs'
    - ' x'
    argTypes:
    - ozstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: '& operator<(ozstream& zs, const T& x)'
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - gzwrite
    - fp
    linkageType: ''
    returnType: ozstream
    signature: ozstream & operator<(ozstream& zs, const T& x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/zlib/contrib/iostream2/zstream.h:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' zs'
    - x
    argTypes:
    - ozstream
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: zstringlen::zstringlen
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void zstringlen::zstringlen(ozstream& zs, const char* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzwrite
      Src: /src/zlib/contrib/iostream2/zstream.h:287,1
    - Dst: fp
      Src: /src/zlib/contrib/iostream2/zstream.h:287,1
    - Dst: zstringlen::value
      Src: /src/zlib/contrib/iostream2/zstream.h:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' zs'
    - x
    argTypes:
    - ozstream
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: '& operator<(ozstream& zs, const char* x)'
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - gzwrite
    - fp
    - zstringlen::value
    linkageType: ''
    returnType: ozstream
    signature: ozstream & operator<(ozstream& zs, const char* x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' zs'
    - ' x'
    argTypes:
    - ozstream
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: '& operator<(ozstream& zs, char* const& x)'
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ozstream
    signature: ozstream & operator<(ozstream& zs, char* const& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_flush
      Src: /src/zlib/contrib/iostream2/zstream.h:302,1
    - Dst: os
      Src: /src/zlib/contrib/iostream2/zstream.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' zs'
    - ' x'
    argTypes:
    - ozstream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: '& operator<<(ozstream& zs, const T& x)'
    functionSourceFile: /src/zlib/contrib/iostream2/zstream.h
    functionUses: 0
    functionsReached:
    - os
    - os_flush
    linkageType: ''
    returnType: ostream
    signature: ostream & operator<<(ozstream& zs, const T& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ozstream::close
      Src: /src/zlib/contrib/iostream2/zstream_test.cpp:11,1
    - Dst: read_string
      Src: /src/zlib/contrib/iostream2/zstream_test.cpp:14,1
    - Dst: char::char
      Src: /src/zlib/contrib/iostream2/zstream_test.cpp:14,1
    - Dst: izstream::close
      Src: /src/zlib/contrib/iostream2/zstream_test.cpp:16,1
    - Dst: ozstream::open
      Src: /src/zlib/contrib/iostream2/zstream_test.cpp:19,1
    - Dst: setw
      Src: /src/zlib/contrib/iostream2/zstream_test.cpp:20,1
    - Dst: setfill
      Src: /src/zlib/contrib/iostream2/zstream_test.cpp:20,1
    - Dst: setprecision
      Src: /src/zlib/contrib/iostream2/zstream_test.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 6
    functionDepth: 2
    functionLinenumber: 6
    functionLinenumberEnd: 25
    functionName: main
    functionSourceFile: /src/zlib/contrib/iostream2/zstream_test.cpp
    functionUses: 0
    functionsReached:
    - izstream::close
    - read_string
    - ozstream::open
    - ozstream::close
    - setfill
    - setw
    - setprecision
    - char::char
    linkageType: ''
    returnType: void
    signature: void main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - adr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: READ_8
    functionSourceFile: /src/zlib/contrib/minizip/mztools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_8(adr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - adr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: READ_16
    functionSourceFile: /src/zlib/contrib/minizip/mztools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_16(adr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - adr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: READ_32
    functionSourceFile: /src/zlib/contrib/minizip/mztools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_32(adr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buff
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: WRITE_8
    functionSourceFile: /src/zlib/contrib/minizip/mztools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_8(buff, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buff
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: WRITE_16
    functionSourceFile: /src/zlib/contrib/minizip/mztools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_16(buff, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buff
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: WRITE_32
    functionSourceFile: /src/zlib/contrib/minizip/mztools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_32(buff, n)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/zlib/contrib/minizip/mztools.c:35,1
    - Dst: fopen
      Src: /src/zlib/contrib/minizip/mztools.c:36,1
    - Dst: fopen
      Src: /src/zlib/contrib/minizip/mztools.c:37,1
    - Dst: fread
      Src: /src/zlib/contrib/minizip/mztools.c:46,1
    - Dst: READ_32
      Src: /src/zlib/contrib/minizip/mztools.c:50,1
    - Dst: READ_16
      Src: /src/zlib/contrib/minizip/mztools.c:51,1
    - Dst: READ_16
      Src: /src/zlib/contrib/minizip/mztools.c:52,1
    - Dst: READ_16
      Src: /src/zlib/contrib/minizip/mztools.c:53,1
    - Dst: READ_16
      Src: /src/zlib/contrib/minizip/mztools.c:54,1
    - Dst: READ_16
      Src: /src/zlib/contrib/minizip/mztools.c:55,1
    - Dst: READ_32
      Src: /src/zlib/contrib/minizip/mztools.c:56,1
    - Dst: READ_32
      Src: /src/zlib/contrib/minizip/mztools.c:57,1
    - Dst: READ_32
      Src: /src/zlib/contrib/minizip/mztools.c:58,1
    - Dst: READ_16
      Src: /src/zlib/contrib/minizip/mztools.c:59,1
    - Dst: READ_16
      Src: /src/zlib/contrib/minizip/mztools.c:60,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:64,1
    - Dst: fread
      Src: /src/zlib/contrib/minizip/mztools.c:74,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:75,1
    - Dst: fread
      Src: /src/zlib/contrib/minizip/mztools.c:97,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:98,1
    - Dst: malloc
      Src: /src/zlib/contrib/minizip/mztools.c:121,1
    - Dst: fread
      Src: /src/zlib/contrib/minizip/mztools.c:123,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:124,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/mztools.c:133,1
    - Dst: strlen
      Src: /src/zlib/contrib/minizip/mztools.c:148,1
    - Dst: WRITE_32
      Src: /src/zlib/contrib/minizip/mztools.c:149,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:150,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:151,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:152,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:153,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:154,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:155,1
    - Dst: WRITE_32
      Src: /src/zlib/contrib/minizip/mztools.c:156,1
    - Dst: WRITE_32
      Src: /src/zlib/contrib/minizip/mztools.c:157,1
    - Dst: WRITE_32
      Src: /src/zlib/contrib/minizip/mztools.c:158,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:159,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:160,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:161,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:162,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:163,1
    - Dst: WRITE_32
      Src: /src/zlib/contrib/minizip/mztools.c:164,1
    - Dst: WRITE_32
      Src: /src/zlib/contrib/minizip/mztools.c:165,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:167,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:172,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:185,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:195,1
    - Dst: strlen
      Src: /src/zlib/contrib/minizip/mztools.c:223,1
    - Dst: WRITE_32
      Src: /src/zlib/contrib/minizip/mztools.c:227,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:228,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:229,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:230,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:231,1
    - Dst: WRITE_32
      Src: /src/zlib/contrib/minizip/mztools.c:232,1
    - Dst: WRITE_32
      Src: /src/zlib/contrib/minizip/mztools.c:233,1
    - Dst: WRITE_16
      Src: /src/zlib/contrib/minizip/mztools.c:234,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:237,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:241,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/mztools.c:252,1
    - Dst: fopen
      Src: /src/zlib/contrib/minizip/mztools.c:254,1
    - Dst: fread
      Src: /src/zlib/contrib/minizip/mztools.c:258,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/mztools.c:259,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/mztools.c:264,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/mztools.c:269,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/mztools.c:270,1
    - Dst: remove
      Src: /src/zlib/contrib/minizip/mztools.c:273,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/mztools.c:286,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/mztools.c:288,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/mztools.c:290,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 186
    argCount: 5
    argNames:
    - file
    - fileOut
    - fileOutTmp
    - nRecovered
    - bytesRecovered
    argTypes:
    - char*
    - char*
    - char*
    - uLong*
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 294
    functionName: unzRepair
    functionSourceFile: /src/zlib/contrib/minizip/mztools.c
    functionUses: 0
    functionsReached:
    - fclose
    - READ_16
    - READ_32
    - fwrite
    - fopen
    - WRITE_32
    - strlen
    - WRITE_16
    - free
    - malloc
    - fread
    - remove
    linkageType: ''
    returnType: int
    signature: int unzRepair(const char* file, const char* fileOut, const char* fileOutTmp,
      uLong* nRecovered, uLong* bytesRecovered)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gen
    - seed
    - seq
    argTypes:
    - set_rand_t*
    - ui64_t
    - ui64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: set_seed
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_seed(set_rand_t *gen, ui64_t seed, ui64_t seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_seed
      Src: /src/zlib/contrib/minizip/skipset.h:96,1
    - Dst: time
      Src: /src/zlib/contrib/minizip/skipset.h:97,1
    - Dst: clock
      Src: /src/zlib/contrib/minizip/skipset.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gen
    - ptr
    argTypes:
    - set_rand_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: set_uniq
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - clock
    - set_seed
    - time
    linkageType: ''
    returnType: void
    signature: void set_uniq(set_rand_t *gen, const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - gen
    argTypes:
    - set_rand_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: set_rand
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ui32_t
    signature: ui32_t set_rand(set_rand_t *gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: SET_ALLOC_SIZE
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ALLOC_SIZE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: SET_ALLOC_SIZE
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ALLOC_SIZE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: SET_ALLOC_SIZE
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ALLOC_SIZE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: SET_ALLOC_SIZE
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ALLOC_SIZE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: SET_ALLOC_SIZE
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ALLOC_SIZE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: SET_ALLOC_SIZE
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ALLOC_SIZE(ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SET_ALLOC_SIZE
      Src: /src/zlib/contrib/minizip/skipset.h:163,1
    - Dst: realloc
      Src: /src/zlib/contrib/minizip/skipset.h:164,1
    - Dst: longjmp
      Src: /src/zlib/contrib/minizip/skipset.h:166,1
    - Dst: SET_ALLOC_SIZE
      Src: /src/zlib/contrib/minizip/skipset.h:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - set
    - ptr
    - size
    argTypes:
    - set_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: set_alloc
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - SET_ALLOC_SIZE
    - realloc
    - longjmp
    linkageType: ''
    returnType: void
    signature: void *set_alloc(set_t *set, void *ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SET_ALLOC_SIZE
      Src: /src/zlib/contrib/minizip/skipset.h:174,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/skipset.h:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - set
    - ptr
    argTypes:
    - set_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: set_free
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - SET_ALLOC_SIZE
    - free
    linkageType: ''
    returnType: void
    signature: void set_free(set_t *set, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/zlib/contrib/minizip/skipset.h:181,1
    - Dst: longjmp
      Src: /src/zlib/contrib/minizip/skipset.h:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - set
    - ptr
    - size
    argTypes:
    - set_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: set_alloc
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - realloc
    - longjmp
    linkageType: ''
    returnType: void
    signature: void *set_alloc(set_t *set, void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/contrib/minizip/skipset.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - set
    - ptr
    argTypes:
    - set_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: set_free
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void set_free(set_t *set, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_alloc
      Src: /src/zlib/contrib/minizip/skipset.h:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - set
    - node
    - want
    - fill
    argTypes:
    - set_t*
    - set_node_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 210
    functionName: set_grow
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - set_alloc
    linkageType: ''
    returnType: void
    signature: void set_grow(set_t *set, set_node_t *node, int want, int fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_alloc
      Src: /src/zlib/contrib/minizip/skipset.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - set
    argTypes:
    - set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: set_node
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - set_alloc
    linkageType: ''
    returnType: set_node_t
    signature: set_node_t *set_node(set_t *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_drop
      Src: /src/zlib/contrib/minizip/skipset.h:226,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/skipset.h:227,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/skipset.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - set
    argTypes:
    - set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 231
    functionName: set_sweep
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - set_drop
    - set_free
    linkageType: ''
    returnType: void
    signature: void set_sweep(set_t *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_node
      Src: /src/zlib/contrib/minizip/skipset.h:245,1
    - Dst: set_node
      Src: /src/zlib/contrib/minizip/skipset.h:246,1
    - Dst: set_grow
      Src: /src/zlib/contrib/minizip/skipset.h:247,1
    - Dst: set_uniq
      Src: /src/zlib/contrib/minizip/skipset.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - set
    argTypes:
    - set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 252
    functionName: set_start
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - set_grow
    - set_node
    - set_uniq
    linkageType: ''
    returnType: SKIPSET_EXPORT
    signature: SKIPSET_EXPORT set_start(set_t *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: set_ok
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SKIPSET_EXPORT
    signature: SKIPSET_EXPORT set_ok(set_t *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/zlib/contrib/minizip/skipset.h:266,1
    - Dst: set_ok
      Src: /src/zlib/contrib/minizip/skipset.h:266,1
    - Dst: set_sweep
      Src: /src/zlib/contrib/minizip/skipset.h:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - set
    argTypes:
    - set_t*
    assertStmts:
    - condition: (set_ok(set) && "improper use")
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/zlib/contrib/minizip/skipset.h
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: set_clear
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - set_ok
    - assert
    - set_sweep
    linkageType: ''
    returnType: SKIPSET_EXPORT
    signature: SKIPSET_EXPORT set_clear(set_t *set)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_sweep
      Src: /src/zlib/contrib/minizip/skipset.h:288,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/skipset.h:289,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/skipset.h:291,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/skipset.h:296,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/skipset.h:297,1
    - Dst: set_drop
      Src: /src/zlib/contrib/minizip/skipset.h:302,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/skipset.h:303,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/skipset.h:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - set
    argTypes:
    - set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 307
    functionName: set_end
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - set_drop
    - set_free
    - set_sweep
    linkageType: ''
    returnType: SKIPSET_EXPORT
    signature: SKIPSET_EXPORT set_end(set_t *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/zlib/contrib/minizip/skipset.h:314,1
    - Dst: set_ok
      Src: /src/zlib/contrib/minizip/skipset.h:314,1
    - Dst: set_grow
      Src: /src/zlib/contrib/minizip/skipset.h:320,1
    - Dst: set_cmp
      Src: /src/zlib/contrib/minizip/skipset.h:323,1
    - Dst: set_cmp
      Src: /src/zlib/contrib/minizip/skipset.h:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - set
    - key
    argTypes:
    - set_t*
    - set_key_t
    assertStmts:
    - condition: (set_ok(set) && "improper use")
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/zlib/contrib/minizip/skipset.h
    constantsTouched: []
    func_position:
      end: 331
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 331
    functionName: set_found
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - set_grow
    - set_cmp
    - set_ok
    - assert
    linkageType: ''
    returnType: SKIPSET_EXPORT
    signature: SKIPSET_EXPORT set_found(set_t *set, set_key_t key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/zlib/contrib/minizip/skipset.h:338,1
    - Dst: set_ok
      Src: /src/zlib/contrib/minizip/skipset.h:338,1
    - Dst: set_found
      Src: /src/zlib/contrib/minizip/skipset.h:340,1
    - Dst: set_rand
      Src: /src/zlib/contrib/minizip/skipset.h:349,1
    - Dst: assert
      Src: /src/zlib/contrib/minizip/skipset.h:354,1
    - Dst: set_grow
      Src: /src/zlib/contrib/minizip/skipset.h:360,1
    - Dst: set_grow
      Src: /src/zlib/contrib/minizip/skipset.h:361,1
    - Dst: set_node
      Src: /src/zlib/contrib/minizip/skipset.h:367,1
    - Dst: set_grow
      Src: /src/zlib/contrib/minizip/skipset.h:369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - set
    - key
    argTypes:
    - set_t*
    - set_key_t
    assertStmts:
    - condition: (set_ok(set) && "improper use")
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/zlib/contrib/minizip/skipset.h
    - condition: "(level < 32767 &&\n               \"Overhead, without any fuss,
        the stars were going out.\")"
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/zlib/contrib/minizip/skipset.h
    constantsTouched: []
    func_position:
      end: 376
      start: 334
    functionDepth: 4
    functionLinenumber: 334
    functionLinenumberEnd: 376
    functionName: set_insert
    functionSourceFile: /src/zlib/contrib/minizip/skipset.h
    functionUses: 0
    functionsReached:
    - assert
    - set_node
    - set_found
    - set_grow
    - set_ok
    - set_rand
    linkageType: ''
    returnType: SKIPSET_EXPORT
    signature: SKIPSET_EXPORT set_insert(set_t *set, set_key_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filename
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: FOPEN_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOPEN_FUNC(filename, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: FTELLO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTELLO_FUNC(stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stream
    - ','
    - offset
    - ','
    - origin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: FSEEKO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSEEKO_FUNC(stream, offset, origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filename
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: FOPEN_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOPEN_FUNC(filename, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: FTELLO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTELLO_FUNC(stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stream
    - ','
    - offset
    - ','
    - origin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: FSEEKO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSEEKO_FUNC(stream, offset, origin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FindFirstFileA
      Src: /src/zlib/contrib/minizip/minizip.c:87,1
    - Dst: FileTimeToLocalFileTime
      Src: /src/zlib/contrib/minizip/minizip.c:90,1
    - Dst: FileTimeToDosDateTime
      Src: /src/zlib/contrib/minizip/minizip.c:91,1
    - Dst: FindClose
      Src: /src/zlib/contrib/minizip/minizip.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - f
    - tmzip
    - dt
    argTypes:
    - char*
    - tm_zip*
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 97
    functionName: filetime
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached:
    - FindFirstFileA
    - FileTimeToDosDateTime
    - FileTimeToLocalFileTime
    - FindClose
    linkageType: ''
    returnType: int
    signature: int filetime(const char *f, tm_zip *tmzip, uLong *dt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/zlib/contrib/minizip/minizip.c:108,1
    - Dst: strlen
      Src: /src/zlib/contrib/minizip/minizip.c:111,1
    - Dst: strncpy
      Src: /src/zlib/contrib/minizip/minizip.c:115,1
    - Dst: stat
      Src: /src/zlib/contrib/minizip/minizip.c:122,1
    - Dst: localtime
      Src: /src/zlib/contrib/minizip/minizip.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - f
    - tmzip
    - dt
    argTypes:
    - char*
    - tm_zip*
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 138
    functionName: filetime
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached:
    - localtime
    - stat
    - strncpy
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: int filetime(const char *f, tm_zip *tmzip, uLong *dt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - f
    - tmzip
    - dt
    argTypes:
    - char*
    - tm_zip*
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: filetime
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int filetime(const char *f, tm_zip *tmzip, uLong *dt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOPEN_FUNC
      Src: /src/zlib/contrib/minizip/minizip.c:156,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/minizip.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: check_exist_file
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached:
    - fclose
    - FOPEN_FUNC
    linkageType: ''
    returnType: int
    signature: int check_exist_file(const char* filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:165,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: do_banner
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void do_banner(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: do_help
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void do_help(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FOPEN_FUNC
      Src: /src/zlib/contrib/minizip/minizip.c:184,1
    - Dst: fread
      Src: /src/zlib/contrib/minizip/minizip.c:197,1
    - Dst: feof
      Src: /src/zlib/contrib/minizip/minizip.c:199,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:201,1
    - Dst: crc32_z
      Src: /src/zlib/contrib/minizip/minizip.c:206,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/minizip.c:212,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - filenameinzip
    - buf
    - size_buf
    - result_crc
    argTypes:
    - char*
    - void*
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 217
    functionName: getFileCrc
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached:
    - fclose
    - feof
    - crc32_z
    - FOPEN_FUNC
    - fread
    - printf
    linkageType: ''
    returnType: int
    signature: int getFileCrc(const char* filenameinzip, void* buf, unsigned long
      size_buf, unsigned long* result_crc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FOPEN_FUNC
      Src: /src/zlib/contrib/minizip/minizip.c:222,1
    - Dst: FSEEKO_FUNC
      Src: /src/zlib/contrib/minizip/minizip.c:226,1
    - Dst: FTELLO_FUNC
      Src: /src/zlib/contrib/minizip/minizip.c:227,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:229,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/minizip.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 238
    functionName: isLargeFile
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached:
    - fclose
    - FSEEKO_FUNC
    - FOPEN_FUNC
    - printf
    - FTELLO_FUNC
    linkageType: ''
    returnType: int
    signature: int isLargeFile(const char* filename)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: do_banner
      Src: /src/zlib/contrib/minizip/minizip.c:254,1
    - Dst: do_help
      Src: /src/zlib/contrib/minizip/minizip.c:257,1
    - Dst: malloc
      Src: /src/zlib/contrib/minizip/minizip.c:298,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:301,1
    - Dst: strncpy
      Src: /src/zlib/contrib/minizip/minizip.c:315,1
    - Dst: strlen
      Src: /src/zlib/contrib/minizip/minizip.c:319,1
    - Dst: strcat
      Src: /src/zlib/contrib/minizip/minizip.c:325,1
    - Dst: check_exist_file
      Src: /src/zlib/contrib/minizip/minizip.c:330,1
    - Dst: check_exist_file
      Src: /src/zlib/contrib/minizip/minizip.c:335,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:342,1
    - Dst: scanf
      Src: /src/zlib/contrib/minizip/minizip.c:343,1
    - Dst: exit
      Src: /src/zlib/contrib/minizip/minizip.c:346,1
    - Dst: fill_win32_filefunc64A
      Src: /src/zlib/contrib/minizip/minizip.c:366,1
    - Dst: zipOpen2_64
      Src: /src/zlib/contrib/minizip/minizip.c:367,1
    - Dst: zipOpen64
      Src: /src/zlib/contrib/minizip/minizip.c:369,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:374,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:378,1
    - Dst: strlen
      Src: /src/zlib/contrib/minizip/minizip.c:387,1
    - Dst: filetime
      Src: /src/zlib/contrib/minizip/minizip.c:402,1
    - Dst: getFileCrc
      Src: /src/zlib/contrib/minizip/minizip.c:411,1
    - Dst: isLargeFile
      Src: /src/zlib/contrib/minizip/minizip.c:413,1
    - Dst: zipOpenNewFileInZip3_64
      Src: /src/zlib/contrib/minizip/minizip.c:442,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:451,1
    - Dst: FOPEN_FUNC
      Src: /src/zlib/contrib/minizip/minizip.c:454,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:458,1
    - Dst: fread
      Src: /src/zlib/contrib/minizip/minizip.c:466,1
    - Dst: feof
      Src: /src/zlib/contrib/minizip/minizip.c:468,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:470,1
    - Dst: zipWriteInFileInZip
      Src: /src/zlib/contrib/minizip/minizip.c:476,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:479,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/minizip.c:487,1
    - Dst: zipCloseFileInZip
      Src: /src/zlib/contrib/minizip/minizip.c:493,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:495,1
    - Dst: zipClose
      Src: /src/zlib/contrib/minizip/minizip.c:500,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/minizip.c:502,1
    - Dst: do_help
      Src: /src/zlib/contrib/minizip/minizip.c:506,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/minizip.c:509,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 145
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 240
    functionDepth: 4
    functionLinenumber: 240
    functionLinenumberEnd: 511
    functionName: main
    functionSourceFile: /src/zlib/contrib/minizip/minizip.c
    functionUses: 0
    functionsReached:
    - fclose
    - zipCloseFileInZip
    - zipWriteInFileInZip
    - feof
    - filetime
    - free
    - FOPEN_FUNC
    - printf
    - strncpy
    - check_exist_file
    - scanf
    - do_help
    - zipOpenNewFileInZip3_64
    - strcat
    - fill_win32_filefunc64A
    - do_banner
    - zipOpen2_64
    - getFileCrc
    - exit
    - zipClose
    - zipOpen64
    - strlen
    - isLargeFile
    - malloc
    - fread
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - filefunc
    - ','
    - filestream
    - ','
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: ZREAD64
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZREAD64(filefunc,filestream,buf,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - filefunc
    - ','
    - filestream
    - ','
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: ZWRITE64
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZWRITE64(filefunc,filestream,buf,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filefunc
    - ','
    - filestream
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: ZCLOSE64
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZCLOSE64(filefunc,filestream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filefunc
    - ','
    - filestream
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: ZERROR64
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZERROR64(filefunc,filestream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - filefunc
    - ','
    - filename
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: ZOPEN64
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZOPEN64(filefunc,filename,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filefunc
    - ','
    - filestream
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: ZTELL64
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZTELL64(filefunc,filestream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - filefunc
    - ','
    - filestream
    - ','
    - pos
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: ZSEEK64
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSEEK64(filefunc,filestream,pos,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: CRC32
    functionSourceFile: /src/zlib/contrib/minizip/crypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRC32(c, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pkeys
    - pcrc_32_tab
    argTypes:
    - unsigned long*
    - z_crc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: decrypt_byte
    functionSourceFile: /src/zlib/contrib/minizip/crypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int decrypt_byte(unsigned long* pkeys, const z_crc_t* pcrc_32_tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRC32
      Src: /src/zlib/contrib/minizip/crypt.h:46,1
    - Dst: CRC32
      Src: /src/zlib/contrib/minizip/crypt.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - pkeys
    - pcrc_32_tab
    - c
    argTypes:
    - unsigned long*
    - z_crc_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: update_keys
    functionSourceFile: /src/zlib/contrib/minizip/crypt.h
    functionUses: 0
    functionsReached:
    - CRC32
    linkageType: ''
    returnType: int
    signature: int update_keys(unsigned long* pkeys, const z_crc_t* pcrc_32_tab, int
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_keys
      Src: /src/zlib/contrib/minizip/crypt.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - passwd
    - pkeys
    - pcrc_32_tab
    argTypes:
    - char*
    - unsigned long*
    - z_crc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: init_keys
    functionSourceFile: /src/zlib/contrib/minizip/crypt.h
    functionUses: 0
    functionsReached:
    - update_keys
    linkageType: ''
    returnType: void
    signature: void init_keys(const char* passwd, unsigned long* pkeys, const z_crc_t*
      pcrc_32_tab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pkeys
    - ','
    - pcrc_32_tab
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: zdecode
    functionSourceFile: /src/zlib/contrib/minizip/crypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zdecode(pkeys,pcrc_32_tab,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pkeys
    - ','
    - pcrc_32_tab
    - ','
    - c
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: zencode
    functionSourceFile: /src/zlib/contrib/minizip/crypt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zencode(pkeys,pcrc_32_tab,c,t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/zlib/contrib/minizip/crypt.h:106,1
    - Dst: time
      Src: /src/zlib/contrib/minizip/crypt.h:106,1
    - Dst: init_keys
      Src: /src/zlib/contrib/minizip/crypt.h:108,1
    - Dst: rand
      Src: /src/zlib/contrib/minizip/crypt.h:111,1
    - Dst: zencode
      Src: /src/zlib/contrib/minizip/crypt.h:112,1
    - Dst: init_keys
      Src: /src/zlib/contrib/minizip/crypt.h:115,1
    - Dst: zencode
      Src: /src/zlib/contrib/minizip/crypt.h:118,1
    - Dst: zencode
      Src: /src/zlib/contrib/minizip/crypt.h:120,1
    - Dst: zencode
      Src: /src/zlib/contrib/minizip/crypt.h:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - passwd
    - buf
    - bufSize
    - pkeys
    - pcrc_32_tab
    - crcForCrypting
    argTypes:
    - char*
    - unsigned char*
    - int
    - unsigned long*
    - z_crc_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 123
    functionName: crypthead
    functionSourceFile: /src/zlib/contrib/minizip/crypt.h
    functionUses: 0
    functionsReached:
    - rand
    - time
    - srand
    - zencode
    - init_keys
    linkageType: ''
    returnType: unsigned
    signature: "unsigned crypthead(const char* passwd,       /* password string */\n
      \                         unsigned char* buf,       /* where to write header
      */\n                          int bufSize,\n                          unsigned
      long* pkeys,\n                          const z_crc_t* pcrc_32_tab,\n                          unsigned
      long crcForCrypting)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PartitionSet
    - ','
    - Partition
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: WINAPI_FAMILY_ONE_PARTITION
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WINAPI_FAMILY_ONE_PARTITION(PartitionSet, Partition)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - mode
    - lpdwDesiredAccess
    - lpdwCreationDisposition
    - lpdwShareMode
    - lpdwFlagsAndAttributes
    argTypes:
    - int
    - DWORD*
    - DWORD*
    - DWORD*
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: win32_translate_open_mode
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void win32_translate_open_mode(int mode,\n                                      DWORD*
      lpdwDesiredAccess,\n                                      DWORD* lpdwCreationDisposition,\n
      \                                     DWORD* lpdwShareMode,\n                                      DWORD*
      lpdwFlagsAndAttributes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/zlib/contrib/minizip/iowin32.c:80,1
    - Dst: CloseHandle
      Src: /src/zlib/contrib/minizip/iowin32.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - hFile
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: win32_build_iowin
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - malloc
    - CloseHandle
    linkageType: ''
    returnType: voidpf
    signature: voidpf win32_build_iowin(HANDLE hFile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: win32_translate_open_mode
      Src: /src/zlib/contrib/minizip/iowin32.c:95,1
    - Dst: CreateFile2
      Src: /src/zlib/contrib/minizip/iowin32.c:100,1
    - Dst: MultiByteToWideChar
      Src: /src/zlib/contrib/minizip/iowin32.c:105,1
    - Dst: CreateFile2
      Src: /src/zlib/contrib/minizip/iowin32.c:106,1
    - Dst: CreateFile
      Src: /src/zlib/contrib/minizip/iowin32.c:111,1
    - Dst: win32_build_iowin
      Src: /src/zlib/contrib/minizip/iowin32.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - opaque
    - filename
    - mode
    argTypes:
    - voidpf
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 115
    functionName: win32_open64_file_func
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - MultiByteToWideChar
    - CreateFile2
    - win32_build_iowin
    - win32_translate_open_mode
    - CreateFile
    linkageType: ''
    returnType: voidpf
    signature: voidpf win32_open64_file_func(voidpf opaque, const void* filename,
      int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: win32_translate_open_mode
      Src: /src/zlib/contrib/minizip/iowin32.c:123,1
    - Dst: MultiByteToWideChar
      Src: /src/zlib/contrib/minizip/iowin32.c:129,1
    - Dst: CreateFile2
      Src: /src/zlib/contrib/minizip/iowin32.c:130,1
    - Dst: CreateFileA
      Src: /src/zlib/contrib/minizip/iowin32.c:134,1
    - Dst: win32_build_iowin
      Src: /src/zlib/contrib/minizip/iowin32.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - opaque
    - filename
    - mode
    argTypes:
    - voidpf
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: win32_open64_file_funcA
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - MultiByteToWideChar
    - CreateFileA
    - CreateFile2
    - win32_build_iowin
    - win32_translate_open_mode
    linkageType: ''
    returnType: voidpf
    signature: voidpf win32_open64_file_funcA(voidpf opaque, const void* filename,
      int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: win32_translate_open_mode
      Src: /src/zlib/contrib/minizip/iowin32.c:146,1
    - Dst: CreateFile2
      Src: /src/zlib/contrib/minizip/iowin32.c:150,1
    - Dst: CreateFileW
      Src: /src/zlib/contrib/minizip/iowin32.c:153,1
    - Dst: win32_build_iowin
      Src: /src/zlib/contrib/minizip/iowin32.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - opaque
    - filename
    - mode
    argTypes:
    - voidpf
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: win32_open64_file_funcW
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - CreateFile2
    - win32_translate_open_mode
    - win32_build_iowin
    linkageType: ''
    returnType: voidpf
    signature: voidpf win32_open64_file_funcW(voidpf opaque, const void* filename,
      int mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: win32_translate_open_mode
      Src: /src/zlib/contrib/minizip/iowin32.c:165,1
    - Dst: CreateFile2
      Src: /src/zlib/contrib/minizip/iowin32.c:170,1
    - Dst: MultiByteToWideChar
      Src: /src/zlib/contrib/minizip/iowin32.c:175,1
    - Dst: CreateFile2
      Src: /src/zlib/contrib/minizip/iowin32.c:176,1
    - Dst: CreateFile
      Src: /src/zlib/contrib/minizip/iowin32.c:181,1
    - Dst: win32_build_iowin
      Src: /src/zlib/contrib/minizip/iowin32.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - opaque
    - filename
    - mode
    argTypes:
    - voidpf
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 185
    functionName: win32_open_file_func
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - MultiByteToWideChar
    - CreateFile2
    - win32_build_iowin
    - win32_translate_open_mode
    - CreateFile
    linkageType: ''
    returnType: voidpf
    signature: voidpf win32_open_file_func(voidpf opaque, const char* filename, int
      mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/zlib/contrib/minizip/iowin32.c:197,1
    - Dst: GetLastError
      Src: /src/zlib/contrib/minizip/iowin32.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - opaque
    - stream
    - buf
    - size
    argTypes:
    - voidpf
    - voidpf
    - void*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 207
    functionName: win32_read_file_func
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - ReadFile
    linkageType: ''
    returnType: uLong
    signature: uLong win32_read_file_func(voidpf opaque, voidpf stream, void* buf,uLong
      size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WriteFile
      Src: /src/zlib/contrib/minizip/iowin32.c:219,1
    - Dst: GetLastError
      Src: /src/zlib/contrib/minizip/iowin32.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - opaque
    - stream
    - buf
    - size
    argTypes:
    - voidpf
    - voidpf
    - void*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 229
    functionName: win32_write_file_func
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - WriteFile
    linkageType: ''
    returnType: uLong
    signature: uLong win32_write_file_func(voidpf opaque, voidpf stream, const void*
      buf, uLong size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SetFilePointerEx
      Src: /src/zlib/contrib/minizip/iowin32.c:233,1
    - Dst: SetFilePointer
      Src: /src/zlib/contrib/minizip/iowin32.c:236,1
    - Dst: GetLastError
      Src: /src/zlib/contrib/minizip/iowin32.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - hFile
    - pos
    - newPos
    - dwMoveMethod
    argTypes:
    - HANDLE
    - LARGE_INTEGER
    - LARGE_INTEGER*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 248
    functionName: MySetFilePointerEx
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - SetFilePointer
    - GetLastError
    - SetFilePointerEx
    linkageType: ''
    returnType: BOOL
    signature: BOOL MySetFilePointerEx(HANDLE hFile, LARGE_INTEGER pos, LARGE_INTEGER
      *newPos, DWORD dwMoveMethod)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MySetFilePointerEx
      Src: /src/zlib/contrib/minizip/iowin32.c:261,1
    - Dst: GetLastError
      Src: /src/zlib/contrib/minizip/iowin32.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - opaque
    - stream
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 271
    functionName: win32_tell_file_func
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - MySetFilePointerEx
    - GetLastError
    linkageType: ''
    returnType: long ZCALLBACK
    signature: long ZCALLBACK win32_tell_file_func(voidpf opaque, voidpf stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MySetFilePointerEx
      Src: /src/zlib/contrib/minizip/iowin32.c:285,1
    - Dst: GetLastError
      Src: /src/zlib/contrib/minizip/iowin32.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - opaque
    - stream
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 295
    functionName: win32_tell64_file_func
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - MySetFilePointerEx
    - GetLastError
    linkageType: ''
    returnType: ZPOS64_T
    signature: ZPOS64_T win32_tell64_file_func(voidpf opaque, voidpf stream)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MySetFilePointerEx
      Src: /src/zlib/contrib/minizip/iowin32.c:324,1
    - Dst: GetLastError
      Src: /src/zlib/contrib/minizip/iowin32.c:326,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - opaque
    - stream
    - offset
    - origin
    argTypes:
    - voidpf
    - voidpf
    - uLong
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 334
    functionName: win32_seek_file_func
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - MySetFilePointerEx
    - GetLastError
    linkageType: ''
    returnType: long ZCALLBACK
    signature: long ZCALLBACK win32_seek_file_func(voidpf opaque, voidpf stream, uLong
      offset, int origin)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MySetFilePointerEx
      Src: /src/zlib/contrib/minizip/iowin32.c:363,1
    - Dst: GetLastError
      Src: /src/zlib/contrib/minizip/iowin32.c:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - opaque
    - stream
    - offset
    - origin
    argTypes:
    - voidpf
    - voidpf
    - ZPOS64_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 373
    functionName: win32_seek64_file_func
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - MySetFilePointerEx
    - GetLastError
    linkageType: ''
    returnType: long ZCALLBACK
    signature: long ZCALLBACK win32_seek64_file_func(voidpf opaque, voidpf stream,
      ZPOS64_T offset, int origin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/zlib/contrib/minizip/iowin32.c:385,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/iowin32.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - opaque
    - stream
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 391
    functionName: win32_close_file_func
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - free
    linkageType: ''
    returnType: int
    signature: int win32_close_file_func(voidpf opaque, voidpf stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - opaque
    - stream
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: win32_error_file_func
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int win32_error_file_func(voidpf opaque, voidpf stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pzlib_filefunc_def
    argTypes:
    - zlib_filefunc_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 412
    functionName: fill_win32_filefunc
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_win32_filefunc(zlib_filefunc_def* pzlib_filefunc_def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pzlib_filefunc_def
    argTypes:
    - zlib_filefunc64_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 423
    functionName: fill_win32_filefunc64
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_win32_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pzlib_filefunc_def
    argTypes:
    - zlib_filefunc64_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: fill_win32_filefunc64A
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_win32_filefunc64A(zlib_filefunc64_def* pzlib_filefunc_def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pzlib_filefunc_def
    argTypes:
    - zlib_filefunc64_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: fill_win32_filefunc64W
    functionSourceFile: /src/zlib/contrib/minizip/iowin32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_win32_filefunc64W(zlib_filefunc64_def* pzlib_filefunc_def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filename
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: FOPEN_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOPEN_FUNC(filename, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: FTELLO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTELLO_FUNC(stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stream
    - ','
    - offset
    - ','
    - origin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: FSEEKO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSEEKO_FUNC(stream, offset, origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filename
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: FOPEN_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOPEN_FUNC(filename, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: FTELLO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTELLO_FUNC(stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stream
    - ','
    - offset
    - ','
    - origin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: FSEEKO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSEEKO_FUNC(stream, offset, origin)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pfilefunc
    - filename
    - mode
    argTypes:
    - zlib_filefunc64_32_def*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: call_zopen64
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: voidpf
    signature: voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc, const
      void*filename, int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - pfilefunc
    - filestream
    - offset
    - origin
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    - ZPOS64_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: call_zseek64
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long call_zseek64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream,
      ZPOS64_T offset, int origin)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pfilefunc
    - filestream
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: call_ztell64
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZPOS64_T
    signature: ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc, voidpf
      filestream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - p_filefunc64_32
    - p_filefunc32
    argTypes:
    - zlib_filefunc64_32_def*
    - zlib_filefunc_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: fill_zlib_filefunc64_32_def_from_filefunc32
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def*
      p_filefunc64_32, const zlib_filefunc_def* p_filefunc32)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/zlib/contrib/minizip/ioapi.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - opaque
    - filename
    - mode
    argTypes:
    - voidpf
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: fopen_file_func
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached:
    - fopen
    linkageType: ''
    returnType: voidpf
    signature: voidpf fopen_file_func(voidpf opaque, const char* filename, int mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FOPEN_FUNC
      Src: /src/zlib/contrib/minizip/ioapi.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - opaque
    - filename
    - mode
    argTypes:
    - voidpf
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: fopen64_file_func
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached:
    - FOPEN_FUNC
    linkageType: ''
    returnType: voidpf
    signature: voidpf fopen64_file_func(voidpf opaque, const void* filename, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/zlib/contrib/minizip/ioapi.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - opaque
    - stream
    - buf
    - size
    argTypes:
    - voidpf
    - voidpf
    - void*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: fread_file_func
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached:
    - fread
    linkageType: ''
    returnType: uLong
    signature: uLong fread_file_func(voidpf opaque, voidpf stream, void* buf, uLong
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/ioapi.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - opaque
    - stream
    - buf
    - size
    argTypes:
    - voidpf
    - voidpf
    - void*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: fwrite_file_func
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: uLong
    signature: uLong fwrite_file_func(voidpf opaque, voidpf stream, const void* buf,
      uLong size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ftell
      Src: /src/zlib/contrib/minizip/ioapi.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - opaque
    - stream
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: ftell_file_func
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached:
    - ftell
    linkageType: ''
    returnType: long ZCALLBACK
    signature: long ZCALLBACK ftell_file_func(voidpf opaque, voidpf stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FTELLO_FUNC
      Src: /src/zlib/contrib/minizip/ioapi.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - opaque
    - stream
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: ftell64_file_func
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached:
    - FTELLO_FUNC
    linkageType: ''
    returnType: ZPOS64_T
    signature: ZPOS64_T ftell64_file_func(voidpf opaque, voidpf stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/zlib/contrib/minizip/ioapi.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - opaque
    - stream
    - offset
    - origin
    argTypes:
    - voidpf
    - voidpf
    - uLong
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 169
    functionName: fseek_file_func
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached:
    - fseek
    linkageType: ''
    returnType: long ZCALLBACK
    signature: long ZCALLBACK fseek_file_func(voidpf opaque, voidpf stream, uLong
      offset, int origin)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FSEEKO_FUNC
      Src: /src/zlib/contrib/minizip/ioapi.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - opaque
    - stream
    - offset
    - origin
    argTypes:
    - voidpf
    - voidpf
    - ZPOS64_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 194
    functionName: fseek64_file_func
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached:
    - FSEEKO_FUNC
    linkageType: ''
    returnType: long ZCALLBACK
    signature: long ZCALLBACK fseek64_file_func(voidpf opaque, voidpf stream, ZPOS64_T
      offset, int origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/ioapi.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - opaque
    - stream
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: fclose_file_func
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: int
    signature: int fclose_file_func(voidpf opaque, voidpf stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ferror
      Src: /src/zlib/contrib/minizip/ioapi.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - opaque
    - stream
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: ferror_file_func
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached:
    - ferror
    linkageType: ''
    returnType: int
    signature: int ferror_file_func(voidpf opaque, voidpf stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pzlib_filefunc_def
    argTypes:
    - zlib_filefunc_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: fill_fopen_filefunc
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_fopen_filefunc(zlib_filefunc_def* pzlib_filefunc_def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pzlib_filefunc_def
    argTypes:
    - zlib_filefunc64_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 231
    functionName: fill_fopen64_filefunc
    functionSourceFile: /src/zlib/contrib/minizip/ioapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_fopen64_filefunc(zlib_filefunc64_def* pzlib_filefunc_def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: ALLOC
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC(size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:202,1
    - Dst: ZERROR64
      Src: /src/zlib/contrib/minizip/unzip.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pzlib_filefunc_def
    - filestream
    - pX
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 216
    functionName: unz64local_getShort
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - ZREAD64
    - ZERROR64
    linkageType: ''
    returnType: local
    signature: "local unz64local_getShort(const zlib_filefunc64_32_def* pzlib_filefunc_def,\n
      \                             voidpf filestream,\n                              uLong
      *pX)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:222,1
    - Dst: ZERROR64
      Src: /src/zlib/contrib/minizip/unzip.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pzlib_filefunc_def
    - filestream
    - pX
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 236
    functionName: unz64local_getLong
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - ZREAD64
    - ZERROR64
    linkageType: ''
    returnType: local
    signature: "local unz64local_getLong(const zlib_filefunc64_32_def* pzlib_filefunc_def,\n
      \                            voidpf filestream,\n                             uLong
      *pX)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:243,1
    - Dst: ZERROR64
      Src: /src/zlib/contrib/minizip/unzip.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pzlib_filefunc_def
    - filestream
    - pX
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    - ZPOS64_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 258
    functionName: unz64local_getLong64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - ZREAD64
    - ZERROR64
    linkageType: ''
    returnType: local
    signature: "local unz64local_getLong64(const zlib_filefunc64_32_def* pzlib_filefunc_def,\n
      \                              voidpf filestream,\n                               ZPOS64_T
      *pX)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - fileName1
    - fileName2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 279
    functionName: strcmpcasenosensitive_internal
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local strcmpcasenosensitive_internal(const char* fileName1, const char*
      fileName2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/zlib/contrib/minizip/unzip.c:308,1
    - Dst: STRCMPCASENOSENTIVEFUNCTION
      Src: /src/zlib/contrib/minizip/unzip.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - fileName1
    - fileName2
    - iCaseSensitivity
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 311
    functionName: unzStringFileNameCompare
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - STRCMPCASENOSENTIVEFUNCTION
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int unzStringFileNameCompare (const char*  fileName1,\n                                             const
      char*  fileName2,\n                                             int iCaseSensitivity)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:332,1
    - Dst: ZTELL64
      Src: /src/zlib/contrib/minizip/unzip.c:336,1
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/unzip.c:341,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:359,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:362,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/unzip.c:376,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 2
    argNames:
    - pzlib_filefunc_def
    - filestream
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 378
    functionName: unz64local_SearchCentralDir
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - ALLOC
    - ZSEEK64
    - ZTELL64
    - ZREAD64
    - free
    linkageType: ''
    returnType: local
    signature: local unz64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_filefunc_def,
      voidpf filestream)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:395,1
    - Dst: ZTELL64
      Src: /src/zlib/contrib/minizip/unzip.c:399,1
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/unzip.c:404,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:422,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:425,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/unzip.c:439,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:444,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:448,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:452,1
    - Dst: unz64local_getLong64
      Src: /src/zlib/contrib/minizip/unzip.c:458,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:462,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:468,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:472,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 52
    argCount: 2
    argNames:
    - pzlib_filefunc_def
    - filestream
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 479
    functionName: unz64local_SearchCentralDir64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unz64local_getLong64
    - ALLOC
    - ZSEEK64
    - ZTELL64
    - ZREAD64
    - unz64local_getLong
    - free
    linkageType: ''
    returnType: local
    signature: "local unz64local_SearchCentralDir64(const zlib_filefunc64_32_def*
      pzlib_filefunc_def,\n                                             voidpf filestream)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: fill_fopen64_filefunc
      Src: /src/zlib/contrib/minizip/unzip.c:514,1
    - Dst: ZOPEN64
      Src: /src/zlib/contrib/minizip/unzip.c:521,1
    - Dst: unz64local_SearchCentralDir64
      Src: /src/zlib/contrib/minizip/unzip.c:528,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:536,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:541,1
    - Dst: unz64local_getLong64
      Src: /src/zlib/contrib/minizip/unzip.c:545,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:549,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:553,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:557,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:561,1
    - Dst: unz64local_getLong64
      Src: /src/zlib/contrib/minizip/unzip.c:565,1
    - Dst: unz64local_getLong64
      Src: /src/zlib/contrib/minizip/unzip.c:569,1
    - Dst: unz64local_getLong64
      Src: /src/zlib/contrib/minizip/unzip.c:578,1
    - Dst: unz64local_getLong64
      Src: /src/zlib/contrib/minizip/unzip.c:583,1
    - Dst: unz64local_SearchCentralDir
      Src: /src/zlib/contrib/minizip/unzip.c:590,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:596,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:601,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:605,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:609,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:613,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:618,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:628,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:634,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:639,1
    - Dst: ZCLOSE64
      Src: /src/zlib/contrib/minizip/unzip.c:649,1
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/unzip.c:660,1
    - Dst: unzGoToFirstFile
      Src: /src/zlib/contrib/minizip/unzip.c:664,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 86
    argCount: 3
    argNames:
    - path
    - pzlib_filefunc64_32_def
    - is64bitOpenFunction
    argTypes:
    - void*
    - zlib_filefunc64_32_def*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 667
    functionName: unzOpenInternal
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unz64local_getLong64
    - ALLOC
    - unz64local_getShort
    - fill_fopen64_filefunc
    - unzGoToFirstFile
    - ZSEEK64
    - ZOPEN64
    - unz64local_getLong
    - unz64local_SearchCentralDir
    - ZCLOSE64
    - unz64local_SearchCentralDir64
    linkageType: ''
    returnType: local
    signature: "local unzOpenInternal(const void *path,\n                              zlib_filefunc64_32_def*
      pzlib_filefunc64_32_def,\n                              int is64bitOpenFunction)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fill_zlib_filefunc64_32_def_from_filefunc32
      Src: /src/zlib/contrib/minizip/unzip.c:675,1
    - Dst: unzOpenInternal
      Src: /src/zlib/contrib/minizip/unzip.c:676,1
    - Dst: unzOpenInternal
      Src: /src/zlib/contrib/minizip/unzip.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - path
    - pzlib_filefunc32_def
    argTypes:
    - char*
    - zlib_filefunc_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 4
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: unzOpen2
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - fill_zlib_filefunc64_32_def_from_filefunc32
    - unzOpenInternal
    linkageType: ''
    returnType: unzFile
    signature: "unzFile unzOpen2(const char *path,\n                                zlib_filefunc_def*
      pzlib_filefunc32_def)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unzOpenInternal
      Src: /src/zlib/contrib/minizip/unzip.c:691,1
    - Dst: unzOpenInternal
      Src: /src/zlib/contrib/minizip/unzip.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - path
    - pzlib_filefunc_def
    argTypes:
    - void*
    - zlib_filefunc64_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 695
    functionName: unzOpen2_64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzOpenInternal
    linkageType: ''
    returnType: unzFile
    signature: "unzFile unzOpen2_64(const void *path,\n                                   zlib_filefunc64_def*
      pzlib_filefunc_def)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unzOpenInternal
      Src: /src/zlib/contrib/minizip/unzip.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 697
    functionDepth: 4
    functionLinenumber: 697
    functionLinenumberEnd: 699
    functionName: unzOpen
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzOpenInternal
    linkageType: ''
    returnType: unzFile
    signature: unzFile unzOpen(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unzOpenInternal
      Src: /src/zlib/contrib/minizip/unzip.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 701
    functionDepth: 4
    functionLinenumber: 701
    functionLinenumberEnd: 703
    functionName: unzOpen64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzOpenInternal
    linkageType: ''
    returnType: unzFile
    signature: unzFile unzOpen64(const void *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unzCloseCurrentFile
      Src: /src/zlib/contrib/minizip/unzip.c:717,1
    - Dst: ZCLOSE64
      Src: /src/zlib/contrib/minizip/unzip.c:719,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/unzip.c:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 722
    functionName: unzClose
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzCloseCurrentFile
    - ZCLOSE64
    - free
    linkageType: ''
    returnType: int
    signature: int unzClose(unzFile file)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - file
    - pglobal_info
    argTypes:
    - unzFile
    - unz_global_info64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 736
    functionName: unzGetGlobalInfo64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unzGetGlobalInfo64(unzFile file, unz_global_info64* pglobal_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - file
    - pglobal_info32
    argTypes:
    - unzFile
    - unz_global_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 747
    functionName: unzGetGlobalInfo
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unzGetGlobalInfo(unzFile file, unz_global_info* pglobal_info32)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ulDosDate
    - ptm
    argTypes:
    - ZPOS64_T
    - tm_unz*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 761
    functionName: unz64local_DosDateToTmuDate
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local unz64local_DosDateToTmuDate(ZPOS64_T ulDosDate, tm_unz* ptm)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:787,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:796,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:802,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:805,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:808,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:811,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:814,1
    - Dst: unz64local_DosDateToTmuDate
      Src: /src/zlib/contrib/minizip/unzip.c:817,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:819,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:822,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:826,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:830,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:833,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:836,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:839,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:842,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:845,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:849,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:866,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:882,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:889,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:907,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:918,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:921,1
    - Dst: unz64local_getLong64
      Src: /src/zlib/contrib/minizip/unzip.c:929,1
    - Dst: unz64local_getLong64
      Src: /src/zlib/contrib/minizip/unzip.c:935,1
    - Dst: unz64local_getLong64
      Src: /src/zlib/contrib/minizip/unzip.c:942,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:949,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:956,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:977,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:984,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 131
    argCount: 9
    argNames:
    - file
    - pfile_info
    - pfile_info_internal
    - szFileName
    - fileNameBufferSize
    - extraField
    - extraFieldBufferSize
    - szComment
    - commentBufferSize
    argTypes:
    - unzFile
    - unz_file_info64*
    - unz_file_info64_internal*
    - char*
    - uLong
    - void*
    - uLong
    - char*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 999
    functionName: unz64local_GetCurrentFileInfoInternal
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unz64local_getLong64
    - unz64local_getShort
    - ZSEEK64
    - unz64local_DosDateToTmuDate
    - unz64local_getLong
    - ZREAD64
    linkageType: ''
    returnType: local
    signature: "local unz64local_GetCurrentFileInfoInternal(unzFile file,\n                                                unz_file_info64
      *pfile_info,\n                                                unz_file_info64_internal\n
      \                                               *pfile_info_internal,\n                                                char
      *szFileName,\n                                                uLong fileNameBufferSize,\n
      \                                               void *extraField,\n                                                uLong
      extraFieldBufferSize,\n                                                char
      *szComment,\n                                                uLong commentBufferSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unz64local_GetCurrentFileInfoInternal
      Src: /src/zlib/contrib/minizip/unzip.c:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - file
    - pfile_info
    - szFileName
    - fileNameBufferSize
    - extraField
    - extraFieldBufferSize
    - szComment
    - commentBufferSize
    argTypes:
    - unzFile
    - unz_file_info64*
    - char*
    - uLong
    - void*
    - uLong
    - char*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1008
    functionDepth: 3
    functionLinenumber: 1008
    functionLinenumberEnd: 1017
    functionName: unzGetCurrentFileInfo64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unz64local_GetCurrentFileInfoInternal
    linkageType: ''
    returnType: int
    signature: "int unzGetCurrentFileInfo64(unzFile file,\n                                           unz_file_info64
      * pfile_info,\n                                           char * szFileName,
      uLong fileNameBufferSize,\n                                           void *extraField,
      uLong extraFieldBufferSize,\n                                           char*
      szComment,  uLong commentBufferSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unz64local_GetCurrentFileInfoInternal
      Src: /src/zlib/contrib/minizip/unzip.c:1026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 8
    argNames:
    - file
    - pfile_info
    - szFileName
    - fileNameBufferSize
    - extraField
    - extraFieldBufferSize
    - szComment
    - commentBufferSize
    argTypes:
    - unzFile
    - unz_file_info*
    - char*
    - uLong
    - void*
    - uLong
    - char*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1019
    functionDepth: 3
    functionLinenumber: 1019
    functionLinenumberEnd: 1055
    functionName: unzGetCurrentFileInfo
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unz64local_GetCurrentFileInfoInternal
    linkageType: ''
    returnType: int
    signature: "int unzGetCurrentFileInfo(unzFile file,\n                                         unz_file_info
      * pfile_info,\n                                         char * szFileName, uLong
      fileNameBufferSize,\n                                         void *extraField,
      uLong extraFieldBufferSize,\n                                         char*
      szComment,  uLong commentBufferSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unz64local_GetCurrentFileInfoInternal
      Src: /src/zlib/contrib/minizip/unzip.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1060
    functionDepth: 3
    functionLinenumber: 1060
    functionLinenumberEnd: 1073
    functionName: unzGoToFirstFile
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 1
    functionsReached:
    - unz64local_GetCurrentFileInfoInternal
    linkageType: ''
    returnType: int
    signature: int unzGoToFirstFile(unzFile file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unz64local_GetCurrentFileInfoInternal
      Src: /src/zlib/contrib/minizip/unzip.c:1096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1080
    functionDepth: 3
    functionLinenumber: 1080
    functionLinenumberEnd: 1101
    functionName: unzGoToNextFile
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unz64local_GetCurrentFileInfoInternal
    linkageType: ''
    returnType: int
    signature: int unzGoToNextFile(unzFile file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/zlib/contrib/minizip/unzip.c:1128,1
    - Dst: unzGoToFirstFile
      Src: /src/zlib/contrib/minizip/unzip.c:1141,1
    - Dst: unzGetCurrentFileInfo64
      Src: /src/zlib/contrib/minizip/unzip.c:1146,1
    - Dst: unzStringFileNameCompare
      Src: /src/zlib/contrib/minizip/unzip.c:1151,1
    - Dst: unzGoToNextFile
      Src: /src/zlib/contrib/minizip/unzip.c:1154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - file
    - szFileName
    - iCaseSensitivity
    argTypes:
    - unzFile
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1112
    functionDepth: 4
    functionLinenumber: 1112
    functionLinenumberEnd: 1166
    functionName: unzLocateFile
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzGetCurrentFileInfo64
    - unzGoToNextFile
    - unzGoToFirstFile
    - strlen
    - unzStringFileNameCompare
    linkageType: ''
    returnType: int
    signature: int unzLocateFile(unzFile file, const char *szFileName, int iCaseSensitivity)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - file
    - file_pos
    argTypes:
    - unzFile
    - unz64_file_pos*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1199
    functionName: unzGetFilePos64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unzGetFilePos64(unzFile file, unz64_file_pos* file_pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unzGetFilePos64
      Src: /src/zlib/contrib/minizip/unzip.c:1203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - file
    - file_pos
    argTypes:
    - unzFile
    - unz_file_pos*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1210
    functionName: unzGetFilePos
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzGetFilePos64
    linkageType: ''
    returnType: int
    signature: int unzGetFilePos(unzFile file, unz_file_pos* file_pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unz64local_GetCurrentFileInfoInternal
      Src: /src/zlib/contrib/minizip/unzip.c:1225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - file
    - file_pos
    argTypes:
    - unzFile
    - unz64_file_pos*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1212
    functionDepth: 3
    functionLinenumber: 1212
    functionLinenumberEnd: 1231
    functionName: unzGoToFilePos64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unz64local_GetCurrentFileInfoInternal
    linkageType: ''
    returnType: int
    signature: int unzGoToFilePos64(unzFile file, const unz64_file_pos* file_pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unzGoToFilePos64
      Src: /src/zlib/contrib/minizip/unzip.c:1240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - file
    - file_pos
    argTypes:
    - unzFile
    - unz_file_pos*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1233
    functionDepth: 4
    functionLinenumber: 1233
    functionLinenumberEnd: 1241
    functionName: unzGoToFilePos
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzGoToFilePos64
    linkageType: ''
    returnType: int
    signature: int unzGoToFilePos(unzFile file, unz_file_pos* file_pos)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:1266,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:1273,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:1279,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:1285,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:1288,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:1300,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:1303,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:1308,1
    - Dst: unz64local_getLong
      Src: /src/zlib/contrib/minizip/unzip.c:1313,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:1318,1
    - Dst: unz64local_getShort
      Src: /src/zlib/contrib/minizip/unzip.c:1325,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 47
    argCount: 4
    argNames:
    - s
    - piSizeVar
    - poffset_local_extrafield
    - psize_local_extrafield
    argTypes:
    - unz64_s*
    - uInt*
    - ZPOS64_T*
    - uInt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1254
    functionDepth: 2
    functionLinenumber: 1254
    functionLinenumberEnd: 1334
    functionName: unz64local_CheckCurrentFileCoherencyHeader
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unz64local_getLong
    - unz64local_getShort
    - ZSEEK64
    linkageType: ''
    returnType: local
    signature: "local unz64local_CheckCurrentFileCoherencyHeader(unz64_s* s, uInt*
      piSizeVar,\n                                                     ZPOS64_T *
      poffset_local_extrafield,\n                                                     uInt
      \ * psize_local_extrafield)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: unzCloseCurrentFile
      Src: /src/zlib/contrib/minizip/unzip.c:1362,1
    - Dst: unz64local_CheckCurrentFileCoherencyHeader
      Src: /src/zlib/contrib/minizip/unzip.c:1364,1
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/unzip.c:1367,1
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/unzip.c:1371,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/unzip.c:1379,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/zlib/contrib/minizip/unzip.c:1431,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/unzip.c:1436,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/unzip.c:1437,1
    - Dst: inflateInit2
      Src: /src/zlib/contrib/minizip/unzip.c:1452,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/unzip.c:1457,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/unzip.c:1458,1
    - Dst: get_crc_table
      Src: /src/zlib/contrib/minizip/unzip.c:1488,1
    - Dst: init_keys
      Src: /src/zlib/contrib/minizip/unzip.c:1489,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:1490,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:1495,1
    - Dst: zdecode
      Src: /src/zlib/contrib/minizip/unzip.c:1499,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 103
    argCount: 5
    argNames:
    - file
    - method
    - level
    - raw
    - password
    argTypes:
    - unzFile
    - int*
    - int*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1340
    functionDepth: 3
    functionLinenumber: 1340
    functionLinenumberEnd: 1508
    functionName: unzOpenCurrentFile3
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - ALLOC
    - inflateInit2
    - ZSEEK64
    - BZ2_bzDecompressInit
    - unz64local_CheckCurrentFileCoherencyHeader
    - get_crc_table
    - ZREAD64
    - free
    - unzCloseCurrentFile
    - zdecode
    - init_keys
    linkageType: ''
    returnType: int
    signature: "int unzOpenCurrentFile3(unzFile file, int* method,\n                                       int*
      level, int raw, const char* password)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unzOpenCurrentFile3
      Src: /src/zlib/contrib/minizip/unzip.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1510
    functionDepth: 4
    functionLinenumber: 1510
    functionLinenumberEnd: 1512
    functionName: unzOpenCurrentFile
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzOpenCurrentFile3
    linkageType: ''
    returnType: int
    signature: int unzOpenCurrentFile(unzFile file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unzOpenCurrentFile3
      Src: /src/zlib/contrib/minizip/unzip.c:1515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - password
    argTypes:
    - unzFile
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1514
    functionDepth: 4
    functionLinenumber: 1514
    functionLinenumberEnd: 1516
    functionName: unzOpenCurrentFilePassword
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzOpenCurrentFile3
    linkageType: ''
    returnType: int
    signature: int unzOpenCurrentFilePassword(unzFile file, const char* password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unzOpenCurrentFile3
      Src: /src/zlib/contrib/minizip/unzip.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - file
    - method
    - level
    - raw
    argTypes:
    - unzFile
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1518
    functionDepth: 4
    functionLinenumber: 1518
    functionLinenumberEnd: 1520
    functionName: unzOpenCurrentFile2
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzOpenCurrentFile3
    linkageType: ''
    returnType: int
    signature: int unzOpenCurrentFile2(unzFile file, int* method, int* level, int
      raw)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1535
    functionName: unzGetCurrentFileZStreamPos64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZPOS64_T
    signature: ZPOS64_T unzGetCurrentFileZStreamPos64(unzFile file)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:1594,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:1600,1
    - Dst: zdecode
      Src: /src/zlib/contrib/minizip/unzip.c:1613,1
    - Dst: crc32
      Src: /src/zlib/contrib/minizip/unzip.c:1648,1
    - Dst: BZ2_bzDecompress
      Src: /src/zlib/contrib/minizip/unzip.c:1678,1
    - Dst: crc32
      Src: /src/zlib/contrib/minizip/unzip.c:1685,1
    - Dst: inflate
      Src: /src/zlib/contrib/minizip/unzip.c:1718,1
    - Dst: crc32
      Src: /src/zlib/contrib/minizip/unzip.c:1732,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 105
    argCount: 3
    argNames:
    - file
    - buf
    - len
    argTypes:
    - unzFile
    - voidp
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1750
    functionName: unzReadCurrentFile
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - inflate
    - ZSEEK64
    - ZREAD64
    - crc32
    - BZ2_bzDecompress
    - zdecode
    linkageType: ''
    returnType: int
    signature: int unzReadCurrentFile(unzFile file, voidp buf, unsigned len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1756
    functionDepth: 0
    functionLinenumber: 1756
    functionLinenumberEnd: 1768
    functionName: unztell
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: z_off_t
    signature: z_off_t unztell(unzFile file)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1783
    functionName: unztell64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZPOS64_T
    signature: ZPOS64_T unztell64(unzFile file)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1789
    functionDepth: 0
    functionLinenumber: 1789
    functionLinenumberEnd: 1804
    functionName: unzeof
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unzeof(unzFile file)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:1848,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:1855,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - file
    - buf
    - len
    argTypes:
    - unzFile
    - voidp
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1820
    functionDepth: 1
    functionLinenumber: 1820
    functionLinenumberEnd: 1861
    functionName: unzGetLocalExtrafield
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - ZREAD64
    - ZSEEK64
    linkageType: ''
    returnType: int
    signature: int unzGetLocalExtrafield(unzFile file, voidp buf, unsigned len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/contrib/minizip/unzip.c:1889,1
    - Dst: inflateEnd
      Src: /src/zlib/contrib/minizip/unzip.c:1892,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/zlib/contrib/minizip/unzip.c:1895,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/unzip.c:1900,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1867
    functionDepth: 1
    functionLinenumber: 1867
    functionLinenumberEnd: 1905
    functionName: unzCloseCurrentFile
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 2
    functionsReached:
    - inflateEnd
    - BZ2_bzDecompressEnd
    - free
    linkageType: ''
    returnType: int
    signature: int unzCloseCurrentFile(unzFile file)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/unzip.c:1924,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/unzip.c:1930,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - file
    - szComment
    - uSizeBuf
    argTypes:
    - unzFile
    - char*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1913
    functionDepth: 1
    functionLinenumber: 1913
    functionLinenumberEnd: 1937
    functionName: unzGetGlobalComment
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - ZREAD64
    - ZSEEK64
    linkageType: ''
    returnType: int
    signature: int unzGetGlobalComment(unzFile file, char * szComment, uLong uSizeBuf)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1952
    functionName: unzGetOffset64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZPOS64_T
    signature: ZPOS64_T unzGetOffset64(unzFile file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unzGetOffset64
      Src: /src/zlib/contrib/minizip/unzip.c:1959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - file
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1961
    functionName: unzGetOffset
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzGetOffset64
    linkageType: ''
    returnType: uLong
    signature: uLong unzGetOffset(unzFile file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unz64local_GetCurrentFileInfoInternal
      Src: /src/zlib/contrib/minizip/unzip.c:1973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - file
    - pos
    argTypes:
    - unzFile
    - ZPOS64_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1963
    functionDepth: 3
    functionLinenumber: 1963
    functionLinenumberEnd: 1978
    functionName: unzSetOffset64
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unz64local_GetCurrentFileInfoInternal
    linkageType: ''
    returnType: int
    signature: int unzSetOffset64(unzFile file, ZPOS64_T pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unzSetOffset64
      Src: /src/zlib/contrib/minizip/unzip.c:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - pos
    argTypes:
    - unzFile
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1980
    functionDepth: 4
    functionLinenumber: 1980
    functionLinenumberEnd: 1982
    functionName: unzSetOffset
    functionSourceFile: /src/zlib/contrib/minizip/unzip.c
    functionUses: 0
    functionsReached:
    - unzSetOffset64
    linkageType: ''
    returnType: int
    signature: int unzSetOffset (unzFile file, uLong pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ALLOC
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC(size)
  - 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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: MAKEULONG64
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKEULONG64(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: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: set_cmp
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_cmp(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: set_drop
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_drop(s, k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/zip.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: linkedlist_datablock_internal* allocate_new_datablock(void)
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - ALLOC
    linkageType: ''
    returnType: local
    signature: local linkedlist_datablock_internal* allocate_new_datablock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/zlib/contrib/minizip/zip.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ldi
    argTypes:
    - linkedlist_datablock_internal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 227
    functionName: free_datablock
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: local
    signature: local free_datablock(linkedlist_datablock_internal* ldi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ll
    argTypes:
    - linkedlist_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: init_linkedlist
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local init_linkedlist(linkedlist_data* ll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_datablock
      Src: /src/zlib/contrib/minizip/zip.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ll
    argTypes:
    - linkedlist_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: free_linkedlist
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - free_datablock
    linkageType: ''
    returnType: local
    signature: local free_linkedlist(linkedlist_data* ll)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: allocate_new_datablock
      Src: /src/zlib/contrib/minizip/zip.c:248,1
    - Dst: allocate_new_datablock
      Src: /src/zlib/contrib/minizip/zip.c:264,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - ll
    - buf
    - len
    argTypes:
    - linkedlist_data*
    - void*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 287
    functionName: add_data_in_datablock
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - allocate_new_datablock
    linkageType: ''
    returnType: local
    signature: local add_data_in_datablock(linkedlist_data* ll, const void* buf, uLong
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - block
    - list
    argTypes:
    - block_t*
    - linkedlist_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: block_init
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local block_init(block_t *block, linkedlist_data *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - block
    argTypes:
    - block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: block_stop
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local block_stop(block_t *block)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - block
    argTypes:
    - block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 333
    functionName: block_end
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local block_end(block_t *block)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - block
    argTypes:
    - block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 358
    functionName: block_get
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local block_get(block_t *block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_get
      Src: /src/zlib/contrib/minizip/zip.c:363,1
    - Dst: block_get
      Src: /src/zlib/contrib/minizip/zip.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - block
    argTypes:
    - block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: block_get2
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - block_get
    linkageType: ''
    returnType: local long
    signature: local long block_get2(block_t *block)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: block_get
      Src: /src/zlib/contrib/minizip/zip.c:375,1
    - Dst: memcpy
      Src: /src/zlib/contrib/minizip/zip.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - block
    - buf
    - len
    argTypes:
    - block_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 391
    functionName: block_read
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - memcpy
    - block_get
    linkageType: ''
    returnType: local
    signature: local block_read(block_t *block, unsigned char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_get
      Src: /src/zlib/contrib/minizip/zip.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - block
    - n
    argTypes:
    - block_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: block_skip
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - block_get
    linkageType: ''
    returnType: local
    signature: local block_skip(block_t *block, size_t n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: block_end
      Src: /src/zlib/contrib/minizip/zip.c:416,1
    - Dst: block_get2
      Src: /src/zlib/contrib/minizip/zip.c:421,1
    - Dst: block_get2
      Src: /src/zlib/contrib/minizip/zip.c:422,1
    - Dst: block_skip
      Src: /src/zlib/contrib/minizip/zip.c:428,1
    - Dst: block_get2
      Src: /src/zlib/contrib/minizip/zip.c:429,1
    - Dst: block_get2
      Src: /src/zlib/contrib/minizip/zip.c:430,1
    - Dst: block_get2
      Src: /src/zlib/contrib/minizip/zip.c:431,1
    - Dst: block_skip
      Src: /src/zlib/contrib/minizip/zip.c:432,1
    - Dst: set_alloc
      Src: /src/zlib/contrib/minizip/zip.c:437,1
    - Dst: block_read
      Src: /src/zlib/contrib/minizip/zip.c:438,1
    - Dst: block_skip
      Src: /src/zlib/contrib/minizip/zip.c:439,1
    - Dst: memchr
      Src: /src/zlib/contrib/minizip/zip.c:444,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/zip.c:449,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/zip.c:460,1
    - Dst: block_stop
      Src: /src/zlib/contrib/minizip/zip.c:461,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - block
    - set
    argTypes:
    - block_t*
    - set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 463
    functionName: block_central_name
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - memchr
    - block_get2
    - set_free
    - block_read
    - block_stop
    - block_skip
    - set_alloc
    - block_end
    linkageType: ''
    returnType: local
    signature: local *block_central_name(block_t *block, set_t *set)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: setjmp
      Src: /src/zlib/contrib/minizip/zip.c:478,1
    - Dst: set_end
      Src: /src/zlib/contrib/minizip/zip.c:480,1
    - Dst: set_ok
      Src: /src/zlib/contrib/minizip/zip.c:483,1
    - Dst: set_start
      Src: /src/zlib/contrib/minizip/zip.c:486,1
    - Dst: block_init
      Src: /src/zlib/contrib/minizip/zip.c:487,1
    - Dst: block_central_name
      Src: /src/zlib/contrib/minizip/zip.c:494,1
    - Dst: set_insert
      Src: /src/zlib/contrib/minizip/zip.c:503,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/zip.c:506,1
    - Dst: strlen
      Src: /src/zlib/contrib/minizip/zip.c:510,1
    - Dst: set_alloc
      Src: /src/zlib/contrib/minizip/zip.c:511,1
    - Dst: memcpy
      Src: /src/zlib/contrib/minizip/zip.c:512,1
    - Dst: set_found
      Src: /src/zlib/contrib/minizip/zip.c:513,1
    - Dst: set_free
      Src: /src/zlib/contrib/minizip/zip.c:514,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - file
    - name
    argTypes:
    - zipFile
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 468
    functionDepth: 5
    functionLinenumber: 468
    functionLinenumberEnd: 516
    functionName: zipAlreadyThere
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - set_start
    - set_free
    - memcpy
    - set_found
    - strlen
    - set_ok
    - block_init
    - block_central_name
    - set_alloc
    - setjmp
    - set_insert
    - set_end
    linkageType: ''
    returnType: int
    signature: int zipAlreadyThere(zipFile file, char const *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZWRITE64
      Src: /src/zlib/contrib/minizip/zip.c:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - pzlib_filefunc_def
    - filestream
    - x
    - nbByte
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    - ZPOS64_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 547
    functionName: zip64local_putValue
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - ZWRITE64
    linkageType: ''
    returnType: local
    signature: local zip64local_putValue(const zlib_filefunc64_32_def* pzlib_filefunc_def,
      voidpf filestream, ZPOS64_T x, int nbByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - dest
    - x
    - nbByte
    argTypes:
    - void*
    - ZPOS64_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 564
    functionName: zip64local_putValue_inmemory
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local zip64local_putValue_inmemory (void* dest, ZPOS64_T x, int nbByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ptm
    argTypes:
    - tm_zip*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 578
    functionName: zip64local_TmzDateToDosDate
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local zip64local_TmzDateToDosDate(const tm_zip* ptm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/zip.c:585,1
    - Dst: ZERROR64
      Src: /src/zlib/contrib/minizip/zip.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pzlib_filefunc_def
    - filestream
    - pi
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 598
    functionName: zip64local_getByte
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - ZREAD64
    - ZERROR64
    linkageType: ''
    returnType: local
    signature: local zip64local_getByte(const zlib_filefunc64_32_def* pzlib_filefunc_def,
      voidpf filestream, int* pi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:609,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pzlib_filefunc_def
    - filestream
    - pX
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 621
    functionName: zip64local_getShort
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zip64local_getByte
    linkageType: ''
    returnType: local
    signature: local zip64local_getShort(const zlib_filefunc64_32_def* pzlib_filefunc_def,
      voidpf filestream, uLong* pX)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:628,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:632,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:636,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:640,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - pzlib_filefunc_def
    - filestream
    - pX
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 648
    functionName: zip64local_getLong
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zip64local_getByte
    linkageType: ''
    returnType: local
    signature: local zip64local_getLong(const zlib_filefunc64_32_def* pzlib_filefunc_def,
      voidpf filestream, uLong* pX)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:656,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:660,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:664,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:668,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:672,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:676,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:680,1
    - Dst: zip64local_getByte
      Src: /src/zlib/contrib/minizip/zip.c:684,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - pzlib_filefunc_def
    - filestream
    - pX
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    - ZPOS64_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 693
    functionName: zip64local_getLong64
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zip64local_getByte
    linkageType: ''
    returnType: local
    signature: local zip64local_getLong64(const zlib_filefunc64_32_def* pzlib_filefunc_def,
      voidpf filestream, ZPOS64_T *pX)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:709,1
    - Dst: ZTELL64
      Src: /src/zlib/contrib/minizip/zip.c:713,1
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/zip.c:718,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:736,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/zip.c:739,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/zip.c:753,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 2
    argNames:
    - pzlib_filefunc_def
    - filestream
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 755
    functionName: zip64local_SearchCentralDir
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - ALLOC
    - ZSEEK64
    - ZTELL64
    - ZREAD64
    - free
    linkageType: ''
    returnType: local
    signature: local zip64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_filefunc_def,
      voidpf filestream)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:770,1
    - Dst: ZTELL64
      Src: /src/zlib/contrib/minizip/zip.c:773,1
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/zip.c:778,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:796,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/zip.c:799,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/zip.c:816,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:821,1
    - Dst: zip64local_getLong
      Src: /src/zlib/contrib/minizip/zip.c:825,1
    - Dst: zip64local_getLong
      Src: /src/zlib/contrib/minizip/zip.c:829,1
    - Dst: zip64local_getLong64
      Src: /src/zlib/contrib/minizip/zip.c:835,1
    - Dst: zip64local_getLong
      Src: /src/zlib/contrib/minizip/zip.c:839,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:845,1
    - Dst: zip64local_getLong
      Src: /src/zlib/contrib/minizip/zip.c:849,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 53
    argCount: 2
    argNames:
    - pzlib_filefunc_def
    - filestream
    argTypes:
    - zlib_filefunc64_32_def*
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 761
    functionDepth: 3
    functionLinenumber: 761
    functionLinenumberEnd: 856
    functionName: zip64local_SearchCentralDir64
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - ALLOC
    - zip64local_getLong
    - ZSEEK64
    - ZTELL64
    - ZREAD64
    - free
    - zip64local_getLong64
    linkageType: ''
    returnType: local
    signature: local zip64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib_filefunc_def,
      voidpf filestream)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: zip64local_SearchCentralDir64
      Src: /src/zlib/contrib/minizip/zip.c:882,1
    - Dst: zip64local_SearchCentralDir
      Src: /src/zlib/contrib/minizip/zip.c:889,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:900,1
    - Dst: zip64local_getLong
      Src: /src/zlib/contrib/minizip/zip.c:904,1
    - Dst: zip64local_getLong64
      Src: /src/zlib/contrib/minizip/zip.c:908,1
    - Dst: zip64local_getShort
      Src: /src/zlib/contrib/minizip/zip.c:912,1
    - Dst: zip64local_getShort
      Src: /src/zlib/contrib/minizip/zip.c:916,1
    - Dst: zip64local_getLong
      Src: /src/zlib/contrib/minizip/zip.c:920,1
    - Dst: zip64local_getLong
      Src: /src/zlib/contrib/minizip/zip.c:924,1
    - Dst: zip64local_getLong64
      Src: /src/zlib/contrib/minizip/zip.c:928,1
    - Dst: zip64local_getLong64
      Src: /src/zlib/contrib/minizip/zip.c:932,1
    - Dst: zip64local_getLong64
      Src: /src/zlib/contrib/minizip/zip.c:939,1
    - Dst: zip64local_getLong64
      Src: /src/zlib/contrib/minizip/zip.c:944,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:954,1
    - Dst: zip64local_getLong
      Src: /src/zlib/contrib/minizip/zip.c:958,1
    - Dst: zip64local_getShort
      Src: /src/zlib/contrib/minizip/zip.c:962,1
    - Dst: zip64local_getShort
      Src: /src/zlib/contrib/minizip/zip.c:966,1
    - Dst: zip64local_getShort
      Src: /src/zlib/contrib/minizip/zip.c:971,1
    - Dst: zip64local_getShort
      Src: /src/zlib/contrib/minizip/zip.c:978,1
    - Dst: zip64local_getLong
      Src: /src/zlib/contrib/minizip/zip.c:988,1
    - Dst: zip64local_getLong
      Src: /src/zlib/contrib/minizip/zip.c:995,1
    - Dst: zip64local_getShort
      Src: /src/zlib/contrib/minizip/zip.c:1002,1
    - Dst: ZCLOSE64
      Src: /src/zlib/contrib/minizip/zip.c:1012,1
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/zip.c:1018,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/zip.c:1021,1
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/zip.c:1032,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:1033,1
    - Dst: ZREAD64
      Src: /src/zlib/contrib/minizip/zip.c:1042,1
    - Dst: add_data_in_datablock
      Src: /src/zlib/contrib/minizip/zip.c:1046,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/zip.c:1050,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:1055,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 97
    argCount: 1
    argNames:
    - pziinit
    argTypes:
    - zip64_internal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 858
    functionDepth: 4
    functionLinenumber: 858
    functionLinenumberEnd: 1059
    functionName: LoadCentralDirectoryRecord
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zip64local_getShort
    - ALLOC
    - zip64local_getLong
    - zip64local_SearchCentralDir
    - ZSEEK64
    - ZREAD64
    - ZCLOSE64
    - zip64local_SearchCentralDir64
    - add_data_in_datablock
    - free
    - zip64local_getLong64
    linkageType: ''
    returnType: local
    signature: local LoadCentralDirectoryRecord(zip64_internal* pziinit)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fill_fopen64_filefunc
      Src: /src/zlib/contrib/minizip/zip.c:1074,1
    - Dst: ZOPEN64
      Src: /src/zlib/contrib/minizip/zip.c:1078,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:1088,1
    - Dst: ZTELL64
      Src: /src/zlib/contrib/minizip/zip.c:1090,1
    - Dst: init_linkedlist
      Src: /src/zlib/contrib/minizip/zip.c:1095,1
    - Dst: memset
      Src: /src/zlib/contrib/minizip/zip.c:1096,1
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/zip.c:1100,1
    - Dst: ZCLOSE64
      Src: /src/zlib/contrib/minizip/zip.c:1103,1
    - Dst: LoadCentralDirectoryRecord
      Src: /src/zlib/contrib/minizip/zip.c:1113,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/zip.c:1125,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/zip.c:1127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 4
    argNames:
    - pathname
    - append
    - globalcomment
    - pzlib_filefunc64_32_def
    argTypes:
    - void*
    - int
    - zipcharpc*
    - zlib_filefunc64_32_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1066
    functionDepth: 5
    functionLinenumber: 1066
    functionLinenumberEnd: 1135
    functionName: zipOpen3
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - memset
    - ALLOC
    - fill_fopen64_filefunc
    - ZSEEK64
    - ZTELL64
    - ZOPEN64
    - init_linkedlist
    - ZCLOSE64
    - free
    - LoadCentralDirectoryRecord
    linkageType: ''
    returnType: zipFile
    signature: zipFile zipOpen3(const void *pathname, int append, zipcharpc* globalcomment,
      zlib_filefunc64_32_def* pzlib_filefunc64_32_def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fill_zlib_filefunc64_32_def_from_filefunc32
      Src: /src/zlib/contrib/minizip/zip.c:1141,1
    - Dst: zipOpen3
      Src: /src/zlib/contrib/minizip/zip.c:1142,1
    - Dst: zipOpen3
      Src: /src/zlib/contrib/minizip/zip.c:1145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pathname
    - append
    - globalcomment
    - pzlib_filefunc32_def
    argTypes:
    - char*
    - int
    - zipcharpc*
    - zlib_filefunc_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1137
    functionDepth: 6
    functionLinenumber: 1137
    functionLinenumberEnd: 1146
    functionName: zipOpen2
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - fill_zlib_filefunc64_32_def_from_filefunc32
    - zipOpen3
    linkageType: ''
    returnType: zipFile
    signature: zipFile zipOpen2(const char *pathname, int append, zipcharpc* globalcomment,
      zlib_filefunc_def* pzlib_filefunc32_def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zipOpen3
      Src: /src/zlib/contrib/minizip/zip.c:1156,1
    - Dst: zipOpen3
      Src: /src/zlib/contrib/minizip/zip.c:1159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - pathname
    - append
    - globalcomment
    - pzlib_filefunc_def
    argTypes:
    - void*
    - int
    - zipcharpc*
    - zlib_filefunc64_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1148
    functionDepth: 6
    functionLinenumber: 1148
    functionLinenumberEnd: 1160
    functionName: zipOpen2_64
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 1
    functionsReached:
    - zipOpen3
    linkageType: ''
    returnType: zipFile
    signature: zipFile zipOpen2_64(const void *pathname, int append, zipcharpc* globalcomment,
      zlib_filefunc64_def* pzlib_filefunc_def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipOpen3
      Src: /src/zlib/contrib/minizip/zip.c:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pathname
    - append
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1164
    functionDepth: 6
    functionLinenumber: 1164
    functionLinenumberEnd: 1166
    functionName: zipOpen
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zipOpen3
    linkageType: ''
    returnType: zipFile
    signature: zipFile zipOpen(const char* pathname, int append)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipOpen3
      Src: /src/zlib/contrib/minizip/zip.c:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pathname
    - append
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1168
    functionDepth: 6
    functionLinenumber: 1168
    functionLinenumberEnd: 1170
    functionName: zipOpen64
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 1
    functionsReached:
    - zipOpen3
    linkageType: ''
    returnType: zipFile
    signature: zipFile zipOpen64(const void* pathname, int append)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/zlib/contrib/minizip/zip.c:1175,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1178,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1183,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1185,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1189,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1192,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1195,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1199,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1203,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1205,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1210,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1212,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1216,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1224,1
    - Dst: ZWRITE64
      Src: /src/zlib/contrib/minizip/zip.c:1228,1
    - Dst: ZWRITE64
      Src: /src/zlib/contrib/minizip/zip.c:1234,1
    - Dst: ZTELL64
      Src: /src/zlib/contrib/minizip/zip.c:1248,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1250,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1251,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1253,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1254,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 4
    argNames:
    - zi
    - filename
    - size_extrafield_local
    - extrafield_local
    argTypes:
    - zip64_internal*
    - char*
    - uInt
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1258
    functionName: Write_LocalFileHeader
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - ZWRITE64
    - strlen
    - zip64local_putValue
    - ZTELL64
    linkageType: ''
    returnType: local
    signature: local Write_LocalFileHeader(zip64_internal* zi, const char* filename,
      uInt size_extrafield_local, const void* extrafield_local)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1281
    functionName: utf8len
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local utf8len(unsigned char const *str, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utf8len
      Src: /src/zlib/contrib/minizip/zip.c:1289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1286
    functionDepth: 1
    functionLinenumber: 1286
    functionLinenumberEnd: 1298
    functionName: isutf8
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - utf8len
    linkageType: ''
    returnType: local
    signature: local isutf8(char const *str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipOpenNewFileInZip4_64
      Src: /src/zlib/contrib/minizip/zip.c:1537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 18
    argNames:
    - file
    - filename
    - zipfi
    - extrafield_local
    - size_extrafield_local
    - extrafield_global
    - size_extrafield_global
    - comment
    - method
    - level
    - raw
    - windowBits
    - memLevel
    - strategy
    - password
    - crcForCrypting
    - versionMadeBy
    - flagBase
    argTypes:
    - zipFile
    - char*
    - zip_fileinfo*
    - void*
    - uInt
    - void*
    - uInt
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    - char*
    - uLong
    - uLong
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1543
    functionName: zipOpenNewFileInZip4
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zipOpenNewFileInZip4_64
    linkageType: ''
    returnType: int
    signature: "int zipOpenNewFileInZip4(zipFile file, const char* filename, const
      zip_fileinfo* zipfi,\n                                        const void* extrafield_local,
      uInt size_extrafield_local,\n                                        const void*
      extrafield_global, uInt size_extrafield_global,\n                                        const
      char* comment, int method, int level, int raw,\n                                        int
      windowBits,int memLevel, int strategy,\n                                        const
      char* password, uLong crcForCrypting,\n                                        uLong
      versionMadeBy, uLong flagBase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipOpenNewFileInZip4_64
      Src: /src/zlib/contrib/minizip/zip.c:1551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 16
    argNames:
    - file
    - filename
    - zipfi
    - extrafield_local
    - size_extrafield_local
    - extrafield_global
    - size_extrafield_global
    - comment
    - method
    - level
    - raw
    - windowBits
    - memLevel
    - strategy
    - password
    - crcForCrypting
    argTypes:
    - zipFile
    - char*
    - zip_fileinfo*
    - void*
    - uInt
    - void*
    - uInt
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    - char*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1557
    functionName: zipOpenNewFileInZip3
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zipOpenNewFileInZip4_64
    linkageType: ''
    returnType: int
    signature: "int zipOpenNewFileInZip3(zipFile file, const char* filename, const
      zip_fileinfo* zipfi,\n                                        const void* extrafield_local,
      uInt size_extrafield_local,\n                                        const void*
      extrafield_global, uInt size_extrafield_global,\n                                        const
      char* comment, int method, int level, int raw,\n                                        int
      windowBits,int memLevel, int strategy,\n                                        const
      char* password, uLong crcForCrypting)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipOpenNewFileInZip4_64
      Src: /src/zlib/contrib/minizip/zip.c:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 17
    argNames:
    - file
    - filename
    - zipfi
    - extrafield_local
    - size_extrafield_local
    - extrafield_global
    - size_extrafield_global
    - comment
    - method
    - level
    - raw
    - windowBits
    - memLevel
    - strategy
    - password
    - crcForCrypting
    - zip64
    argTypes:
    - zipFile
    - char*
    - zip_fileinfo*
    - void*
    - uInt
    - void*
    - uInt
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    - char*
    - uLong
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1559
    functionDepth: 0
    functionLinenumber: 1559
    functionLinenumberEnd: 1571
    functionName: zipOpenNewFileInZip3_64
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 1
    functionsReached:
    - zipOpenNewFileInZip4_64
    linkageType: ''
    returnType: int
    signature: "int zipOpenNewFileInZip3_64(zipFile file, const char* filename, const
      zip_fileinfo* zipfi,\n                                         const void* extrafield_local,
      uInt size_extrafield_local,\n                                         const
      void* extrafield_global, uInt size_extrafield_global,\n                                         const
      char* comment, int method, int level, int raw,\n                                         int
      windowBits,int memLevel, int strategy,\n                                         const
      char* password, uLong crcForCrypting, int zip64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipOpenNewFileInZip4_64
      Src: /src/zlib/contrib/minizip/zip.c:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - file
    - filename
    - zipfi
    - extrafield_local
    - size_extrafield_local
    - extrafield_global
    - size_extrafield_global
    - comment
    - method
    - level
    - raw
    argTypes:
    - zipFile
    - char*
    - zip_fileinfo*
    - void*
    - uInt
    - void*
    - uInt
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1583
    functionName: zipOpenNewFileInZip2
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zipOpenNewFileInZip4_64
    linkageType: ''
    returnType: int
    signature: "int zipOpenNewFileInZip2(zipFile file, const char* filename, const
      zip_fileinfo* zipfi,\n                                        const void* extrafield_local,
      uInt size_extrafield_local,\n                                        const void*
      extrafield_global, uInt size_extrafield_global,\n                                        const
      char* comment, int method, int level, int raw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipOpenNewFileInZip4_64
      Src: /src/zlib/contrib/minizip/zip.c:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 12
    argNames:
    - file
    - filename
    - zipfi
    - extrafield_local
    - size_extrafield_local
    - extrafield_global
    - size_extrafield_global
    - comment
    - method
    - level
    - raw
    - zip64
    argTypes:
    - zipFile
    - char*
    - zip_fileinfo*
    - void*
    - uInt
    - void*
    - uInt
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1595
    functionName: zipOpenNewFileInZip2_64
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zipOpenNewFileInZip4_64
    linkageType: ''
    returnType: int
    signature: "int zipOpenNewFileInZip2_64(zipFile file, const char* filename, const
      zip_fileinfo* zipfi,\n                                           const void*
      extrafield_local, uInt size_extrafield_local,\n                                           const
      void* extrafield_global, uInt size_extrafield_global,\n                                           const
      char* comment, int method, int level, int raw, int zip64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipOpenNewFileInZip4_64
      Src: /src/zlib/contrib/minizip/zip.c:1601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - file
    - filename
    - zipfi
    - extrafield_local
    - size_extrafield_local
    - extrafield_global
    - size_extrafield_global
    - comment
    - method
    - level
    - zip64
    argTypes:
    - zipFile
    - char*
    - zip_fileinfo*
    - void*
    - uInt
    - void*
    - uInt
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1607
    functionName: zipOpenNewFileInZip64
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zipOpenNewFileInZip4_64
    linkageType: ''
    returnType: int
    signature: "int zipOpenNewFileInZip64(zipFile file, const char* filename, const
      zip_fileinfo* zipfi,\n                                         const void* extrafield_local,
      uInt size_extrafield_local,\n                                         const
      void*extrafield_global, uInt size_extrafield_global,\n                                         const
      char* comment, int method, int level, int zip64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipOpenNewFileInZip4_64
      Src: /src/zlib/contrib/minizip/zip.c:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - file
    - filename
    - zipfi
    - extrafield_local
    - size_extrafield_local
    - extrafield_global
    - size_extrafield_global
    - comment
    - method
    - level
    argTypes:
    - zipFile
    - char*
    - zip_fileinfo*
    - void*
    - uInt
    - void*
    - uInt
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1619
    functionName: zipOpenNewFileInZip
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zipOpenNewFileInZip4_64
    linkageType: ''
    returnType: int
    signature: "int zipOpenNewFileInZip(zipFile file, const char* filename, const
      zip_fileinfo* zipfi,\n                                       const void* extrafield_local,
      uInt size_extrafield_local,\n                                       const void*extrafield_global,
      uInt size_extrafield_global,\n                                       const char*
      comment, int method, int level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: zencode
      Src: /src/zlib/contrib/minizip/zip.c:1630,1
    - Dst: ZWRITE64
      Src: /src/zlib/contrib/minizip/zip.c:1634,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - zi
    argTypes:
    - zip64_internal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1621
    functionDepth: 1
    functionLinenumber: 1621
    functionLinenumberEnd: 1657
    functionName: zip64FlushWriteBuffer
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zencode
    - ZWRITE64
    linkageType: ''
    returnType: local
    signature: local zip64FlushWriteBuffer(zip64_internal* zi)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/zlib/contrib/minizip/zip.c:1670,1
    - Dst: zip64FlushWriteBuffer
      Src: /src/zlib/contrib/minizip/zip.c:1683,1
    - Dst: BZ2_bzCompress
      Src: /src/zlib/contrib/minizip/zip.c:1697,1
    - Dst: zip64FlushWriteBuffer
      Src: /src/zlib/contrib/minizip/zip.c:1716,1
    - Dst: deflate
      Src: /src/zlib/contrib/minizip/zip.c:1729,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - file
    - buf
    - len
    argTypes:
    - zipFile
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1659
    functionDepth: 2
    functionLinenumber: 1659
    functionLinenumberEnd: 1758
    functionName: zipWriteInFileInZip
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 1
    functionsReached:
    - crc32
    - BZ2_bzCompress
    - zip64FlushWriteBuffer
    - deflate
    linkageType: ''
    returnType: int
    signature: int zipWriteInFileInZip(zipFile file, const void* buf, unsigned int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipCloseFileInZipRaw64
      Src: /src/zlib/contrib/minizip/zip.c:1761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - file
    - uncompressed_size
    - crc32
    argTypes:
    - zipFile
    - uLong
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1760
    functionDepth: 1
    functionLinenumber: 1760
    functionLinenumberEnd: 1762
    functionName: zipCloseFileInZipRaw
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zipCloseFileInZipRaw64
    linkageType: ''
    returnType: int
    signature: int zipCloseFileInZipRaw(zipFile file, uLong uncompressed_size, uLong
      crc32)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: zip64FlushWriteBuffer
      Src: /src/zlib/contrib/minizip/zip.c:1786,1
    - Dst: deflate
      Src: /src/zlib/contrib/minizip/zip.c:1792,1
    - Dst: zip64FlushWriteBuffer
      Src: /src/zlib/contrib/minizip/zip.c:1805,1
    - Dst: BZ2_bzCompress
      Src: /src/zlib/contrib/minizip/zip.c:1811,1
    - Dst: zip64FlushWriteBuffer
      Src: /src/zlib/contrib/minizip/zip.c:1828,1
    - Dst: deflateEnd
      Src: /src/zlib/contrib/minizip/zip.c:1834,1
    - Dst: BZ2_bzCompressEnd
      Src: /src/zlib/contrib/minizip/zip.c:1842,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1864,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1866,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1870,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1874,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1876,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1880,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1883,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1885,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1912,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1914,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1919,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1925,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1931,1
    - Dst: zip64local_putValue_inmemory
      Src: /src/zlib/contrib/minizip/zip.c:1943,1
    - Dst: add_data_in_datablock
      Src: /src/zlib/contrib/minizip/zip.c:1947,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/zip.c:1949,1
    - Dst: ZTELL64
      Src: /src/zlib/contrib/minizip/zip.c:1955,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:1957,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1961,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:1968,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1972,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1975,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1983,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:1986,1
    - Dst: ZSEEK64
      Src: /src/zlib/contrib/minizip/zip.c:1989,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 134
    argCount: 3
    argNames:
    - file
    - uncompressed_size
    - crc32
    argTypes:
    - zipFile
    - ZPOS64_T
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1764
    functionDepth: 2
    functionLinenumber: 1764
    functionLinenumberEnd: 1997
    functionName: zipCloseFileInZipRaw64
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 1
    functionsReached:
    - BZ2_bzCompress
    - zip64local_putValue
    - ZSEEK64
    - deflateEnd
    - ZTELL64
    - zip64FlushWriteBuffer
    - zip64local_putValue_inmemory
    - add_data_in_datablock
    - free
    - BZ2_bzCompressEnd
    - deflate
    linkageType: ''
    returnType: int
    signature: int zipCloseFileInZipRaw64(zipFile file, ZPOS64_T uncompressed_size,
      uLong crc32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zipCloseFileInZipRaw
      Src: /src/zlib/contrib/minizip/zip.c:2000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - zipFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1999
    functionDepth: 2
    functionLinenumber: 1999
    functionLinenumberEnd: 2001
    functionName: zipCloseFileInZip
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 1
    functionsReached:
    - zipCloseFileInZipRaw
    linkageType: ''
    returnType: int
    signature: int zipCloseFileInZip(zipFile file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2007,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2011,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2015,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2019,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - zi
    - zip64eocd_pos_inzip
    argTypes:
    - zip64_internal*
    - ZPOS64_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2003
    functionDepth: 2
    functionLinenumber: 2003
    functionLinenumberEnd: 2022
    functionName: Write_Zip64EndOfCentralDirectoryLocator
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zip64local_putValue
    linkageType: ''
    returnType: local
    signature: local Write_Zip64EndOfCentralDirectoryLocator(zip64_internal* zi, ZPOS64_T
      zip64eocd_pos_inzip)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2029,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2032,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2035,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2038,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2041,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2044,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2047,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2050,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2053,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2058,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - zi
    - size_centraldir
    - centraldir_pos_inzip
    argTypes:
    - zip64_internal*
    - uLong
    - ZPOS64_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2024
    functionDepth: 2
    functionLinenumber: 2024
    functionLinenumberEnd: 2061
    functionName: Write_Zip64EndOfCentralDirectoryRecord
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zip64local_putValue
    linkageType: ''
    returnType: local
    signature: local Write_Zip64EndOfCentralDirectoryRecord(zip64_internal* zi, uLong
      size_centraldir, ZPOS64_T centraldir_pos_inzip)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2067,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2070,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2073,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2079,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2081,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2088,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2090,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2094,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2101,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - zi
    - size_centraldir
    - centraldir_pos_inzip
    argTypes:
    - zip64_internal*
    - uLong
    - ZPOS64_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2063
    functionDepth: 2
    functionLinenumber: 2063
    functionLinenumberEnd: 2108
    functionName: Write_EndOfCentralDirectoryRecord
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - zip64local_putValue
    linkageType: ''
    returnType: local
    signature: local Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir,
      ZPOS64_T centraldir_pos_inzip)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/zlib/contrib/minizip/zip.c:2115,1
    - Dst: zip64local_putValue
      Src: /src/zlib/contrib/minizip/zip.c:2117,1
    - Dst: ZWRITE64
      Src: /src/zlib/contrib/minizip/zip.c:2121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - zi
    - global_comment
    argTypes:
    - zip64_internal*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2110
    functionDepth: 2
    functionLinenumber: 2110
    functionLinenumberEnd: 2125
    functionName: Write_GlobalComment
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - ZWRITE64
    - strlen
    - zip64local_putValue
    linkageType: ''
    returnType: local
    signature: local Write_GlobalComment(zip64_internal* zi, const char* global_comment)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: zipCloseFileInZip
      Src: /src/zlib/contrib/minizip/zip.c:2141,1
    - Dst: ZTELL64
      Src: /src/zlib/contrib/minizip/zip.c:2149,1
    - Dst: ZWRITE64
      Src: /src/zlib/contrib/minizip/zip.c:2158,1
    - Dst: free_linkedlist
      Src: /src/zlib/contrib/minizip/zip.c:2166,1
    - Dst: set_end
      Src: /src/zlib/contrib/minizip/zip.c:2168,1
    - Dst: ZTELL64
      Src: /src/zlib/contrib/minizip/zip.c:2173,1
    - Dst: Write_Zip64EndOfCentralDirectoryRecord
      Src: /src/zlib/contrib/minizip/zip.c:2174,1
    - Dst: Write_Zip64EndOfCentralDirectoryLocator
      Src: /src/zlib/contrib/minizip/zip.c:2176,1
    - Dst: Write_EndOfCentralDirectoryRecord
      Src: /src/zlib/contrib/minizip/zip.c:2180,1
    - Dst: Write_GlobalComment
      Src: /src/zlib/contrib/minizip/zip.c:2183,1
    - Dst: ZCLOSE64
      Src: /src/zlib/contrib/minizip/zip.c:2185,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/zip.c:2190,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/zip.c:2192,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - file
    - global_comment
    argTypes:
    - zipFile
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2127
    functionDepth: 4
    functionLinenumber: 2127
    functionLinenumberEnd: 2195
    functionName: zipClose
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 1
    functionsReached:
    - zipCloseFileInZip
    - Write_Zip64EndOfCentralDirectoryLocator
    - Write_Zip64EndOfCentralDirectoryRecord
    - Write_EndOfCentralDirectoryRecord
    - Write_GlobalComment
    - ZTELL64
    - ZCLOSE64
    - ZWRITE64
    - free
    - free_linkedlist
    - set_end
    linkageType: ''
    returnType: int
    signature: int zipClose(zipFile file, const char* global_comment)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC
      Src: /src/zlib/contrib/minizip/zip.c:2210,1
    - Dst: memcpy
      Src: /src/zlib/contrib/minizip/zip.c:2225,1
    - Dst: memset
      Src: /src/zlib/contrib/minizip/zip.c:2235,1
    - Dst: memcpy
      Src: /src/zlib/contrib/minizip/zip.c:2239,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/zip.c:2249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - pData
    - dataLen
    - sHeader
    argTypes:
    - char*
    - int*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2197
    functionDepth: 1
    functionLinenumber: 2197
    functionLinenumberEnd: 2252
    functionName: zipRemoveExtraInfoBlock
    functionSourceFile: /src/zlib/contrib/minizip/zip.c
    functionUses: 0
    functionsReached:
    - free
    - ALLOC
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int zipRemoveExtraInfoBlock(char* pData, int* dataLen, short sHeader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filename
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: FOPEN_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOPEN_FUNC(filename, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: FTELLO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTELLO_FUNC(stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stream
    - ','
    - offset
    - ','
    - origin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: FSEEKO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSEEKO_FUNC(stream, offset, origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filename
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: FOPEN_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOPEN_FUNC(filename, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: FTELLO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTELLO_FUNC(stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stream
    - ','
    - offset
    - ','
    - origin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: FSEEKO_FUNC
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSEEKO_FUNC(stream, offset, origin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileA
      Src: /src/zlib/contrib/minizip/miniunz.c:92,1
    - Dst: GetFileTime
      Src: /src/zlib/contrib/minizip/miniunz.c:94,1
    - Dst: DosDateTimeToFileTime
      Src: /src/zlib/contrib/minizip/miniunz.c:95,1
    - Dst: LocalFileTimeToFileTime
      Src: /src/zlib/contrib/minizip/miniunz.c:96,1
    - Dst: SetFileTime
      Src: /src/zlib/contrib/minizip/miniunz.c:97,1
    - Dst: CloseHandle
      Src: /src/zlib/contrib/minizip/miniunz.c:98,1
    - Dst: mktime
      Src: /src/zlib/contrib/minizip/miniunz.c:114,1
    - Dst: utime
      Src: /src/zlib/contrib/minizip/miniunz.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - filename
    - dosdate
    - tmu_date
    argTypes:
    - char*
    - uLong
    - tm_unz
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 121
    functionName: change_file_date
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 0
    functionsReached:
    - GetFileTime
    - CreateFileA
    - DosDateTimeToFileTime
    - mktime
    - utime
    - CloseHandle
    - LocalFileTimeToFileTime
    - SetFileTime
    linkageType: ''
    returnType: void
    signature: void change_file_date(const char *filename, uLong dosdate, tm_unz tmu_date)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mkdir
      Src: /src/zlib/contrib/minizip/miniunz.c:130,1
    - Dst: mkdir
      Src: /src/zlib/contrib/minizip/miniunz.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: mymkdir
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 0
    functionsReached:
    - mkdir
    - _mkdir
    linkageType: ''
    returnType: int
    signature: int mymkdir(const char* dirname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/zlib/contrib/minizip/miniunz.c:142,1
    - Dst: malloc
      Src: /src/zlib/contrib/minizip/miniunz.c:147,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:150,1
    - Dst: memcpy
      Src: /src/zlib/contrib/minizip/miniunz.c:153,1
    - Dst: mymkdir
      Src: /src/zlib/contrib/minizip/miniunz.c:158,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/miniunz.c:160,1
    - Dst: mymkdir
      Src: /src/zlib/contrib/minizip/miniunz.c:173,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:175,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/miniunz.c:176,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/miniunz.c:183,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - newdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 185
    functionName: makedir
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 0
    functionsReached:
    - mymkdir
    - memcpy
    - strlen
    - free
    - malloc
    - printf
    linkageType: ''
    returnType: int
    signature: int makedir(const char *newdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:188,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: do_banner
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void do_banner(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 201
    functionName: do_help
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void do_help(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:223,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - n
    - size_char
    argTypes:
    - ZPOS64_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 228
    functionName: Display64BitsSize
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void Display64BitsSize(ZPOS64_T n, int size_char)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: unzGetGlobalInfo64
      Src: /src/zlib/contrib/minizip/miniunz.c:235,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:237,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:238,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:239,1
    - Dst: unzGetCurrentFileInfo64
      Src: /src/zlib/contrib/minizip/miniunz.c:247,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:250,1
    - Dst: Display64BitsSize
      Src: /src/zlib/contrib/minizip/miniunz.c:281,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:282,1
    - Dst: Display64BitsSize
      Src: /src/zlib/contrib/minizip/miniunz.c:283,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:284,1
    - Dst: unzGoToNextFile
      Src: /src/zlib/contrib/minizip/miniunz.c:293,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:296,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 1
    argNames:
    - uf
    argTypes:
    - unzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 303
    functionName: do_list
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 0
    functionsReached:
    - unzGetCurrentFileInfo64
    - unzGoToNextFile
    - Display64BitsSize
    - unzGetGlobalInfo64
    - printf
    linkageType: ''
    returnType: int
    signature: int do_list(unzFile uf)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: unzGetCurrentFileInfo64
      Src: /src/zlib/contrib/minizip/miniunz.c:316,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:320,1
    - Dst: malloc
      Src: /src/zlib/contrib/minizip/miniunz.c:325,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:328,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:344,1
    - Dst: mymkdir
      Src: /src/zlib/contrib/minizip/miniunz.c:345,1
    - Dst: unzOpenCurrentFilePassword
      Src: /src/zlib/contrib/minizip/miniunz.c:372,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:375,1
    - Dst: FOPEN_FUNC
      Src: /src/zlib/contrib/minizip/miniunz.c:382,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/miniunz.c:385,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:391,1
    - Dst: scanf
      Src: /src/zlib/contrib/minizip/miniunz.c:392,1
    - Dst: exit
      Src: /src/zlib/contrib/minizip/miniunz.c:395,1
    - Dst: FOPEN_FUNC
      Src: /src/zlib/contrib/minizip/miniunz.c:413,1
    - Dst: makedir
      Src: /src/zlib/contrib/minizip/miniunz.c:420,1
    - Dst: FOPEN_FUNC
      Src: /src/zlib/contrib/minizip/miniunz.c:422,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:427,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:433,1
    - Dst: unzReadCurrentFile
      Src: /src/zlib/contrib/minizip/miniunz.c:437,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:440,1
    - Dst: fwrite
      Src: /src/zlib/contrib/minizip/miniunz.c:444,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:446,1
    - Dst: fclose
      Src: /src/zlib/contrib/minizip/miniunz.c:453,1
    - Dst: change_file_date
      Src: /src/zlib/contrib/minizip/miniunz.c:456,1
    - Dst: unzCloseCurrentFile
      Src: /src/zlib/contrib/minizip/miniunz.c:462,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:465,1
    - Dst: unzCloseCurrentFile
      Src: /src/zlib/contrib/minizip/miniunz.c:469,1
    - Dst: free
      Src: /src/zlib/contrib/minizip/miniunz.c:472,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 102
    argCount: 4
    argNames:
    - uf
    - popt_extract_without_path
    - popt_overwrite
    - password
    argTypes:
    - unzFile
    - int*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 306
    functionDepth: 5
    functionLinenumber: 306
    functionLinenumberEnd: 474
    functionName: do_extract_currentfile
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 0
    functionsReached:
    - unzGetCurrentFileInfo64
    - fclose
    - unzOpenCurrentFilePassword
    - unzReadCurrentFile
    - mymkdir
    - fwrite
    - exit
    - scanf
    - change_file_date
    - makedir
    - free
    - unzCloseCurrentFile
    - malloc
    - FOPEN_FUNC
    - printf
    linkageType: ''
    returnType: int
    signature: int do_extract_currentfile(unzFile uf, const int* popt_extract_without_path,
      int* popt_overwrite, const char* password)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unzGetGlobalInfo64
      Src: /src/zlib/contrib/minizip/miniunz.c:482,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:485,1
    - Dst: do_extract_currentfile
      Src: /src/zlib/contrib/minizip/miniunz.c:491,1
    - Dst: unzGoToNextFile
      Src: /src/zlib/contrib/minizip/miniunz.c:499,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:502,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - uf
    - opt_extract_without_path
    - opt_overwrite
    - password
    argTypes:
    - unzFile
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 477
    functionDepth: 6
    functionLinenumber: 477
    functionLinenumberEnd: 509
    functionName: do_extract
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 0
    functionsReached:
    - do_extract_currentfile
    - unzGoToNextFile
    - printf
    - unzGetGlobalInfo64
    linkageType: ''
    returnType: int
    signature: int do_extract(unzFile uf, int opt_extract_without_path, int opt_overwrite,
      const char* password)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unzLocateFile
      Src: /src/zlib/contrib/minizip/miniunz.c:512,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:514,1
    - Dst: do_extract_currentfile
      Src: /src/zlib/contrib/minizip/miniunz.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - uf
    - filename
    - opt_extract_without_path
    - opt_overwrite
    - password
    argTypes:
    - unzFile
    - char*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 511
    functionDepth: 6
    functionLinenumber: 511
    functionLinenumberEnd: 521
    functionName: do_extract_onefile
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 0
    functionsReached:
    - do_extract_currentfile
    - printf
    - unzLocateFile
    linkageType: ''
    returnType: int
    signature: int do_extract_onefile(unzFile uf, const char* filename, int opt_extract_without_path,
      int opt_overwrite, const char* password)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: do_banner
      Src: /src/zlib/contrib/minizip/miniunz.c:539,1
    - Dst: do_help
      Src: /src/zlib/contrib/minizip/miniunz.c:542,1
    - Dst: strncpy
      Src: /src/zlib/contrib/minizip/miniunz.c:596,1
    - Dst: fill_win32_filefunc64A
      Src: /src/zlib/contrib/minizip/miniunz.c:601,1
    - Dst: unzOpen2_64
      Src: /src/zlib/contrib/minizip/miniunz.c:602,1
    - Dst: unzOpen64
      Src: /src/zlib/contrib/minizip/miniunz.c:604,1
    - Dst: strcat
      Src: /src/zlib/contrib/minizip/miniunz.c:608,1
    - Dst: unzOpen2_64
      Src: /src/zlib/contrib/minizip/miniunz.c:610,1
    - Dst: unzOpen64
      Src: /src/zlib/contrib/minizip/miniunz.c:612,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:619,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:622,1
    - Dst: do_list
      Src: /src/zlib/contrib/minizip/miniunz.c:625,1
    - Dst: _chdir
      Src: /src/zlib/contrib/minizip/miniunz.c:629,1
    - Dst: chdir
      Src: /src/zlib/contrib/minizip/miniunz.c:631,1
    - Dst: printf
      Src: /src/zlib/contrib/minizip/miniunz.c:634,1
    - Dst: exit
      Src: /src/zlib/contrib/minizip/miniunz.c:635,1
    - Dst: do_extract
      Src: /src/zlib/contrib/minizip/miniunz.c:639,1
    - Dst: do_extract_onefile
      Src: /src/zlib/contrib/minizip/miniunz.c:641,1
    - Dst: unzClose
      Src: /src/zlib/contrib/minizip/miniunz.c:644,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 68
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 524
    functionDepth: 7
    functionLinenumber: 524
    functionLinenumberEnd: 647
    functionName: main
    functionSourceFile: /src/zlib/contrib/minizip/miniunz.c
    functionUses: 0
    functionsReached:
    - chdir
    - unzClose
    - exit
    - do_extract_onefile
    - do_help
    - unzOpen2_64
    - strncpy
    - fill_win32_filefunc64A
    - strcat
    - do_banner
    - do_list
    - _chdir
    - do_extract
    - unzOpen64
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/zlib/contrib/blast/blast-test.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - how
    - buf
    argTypes:
    - void*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: inf
    functionSourceFile: /src/zlib/contrib/blast/blast-test.c
    functionUses: 5
    functionsReached:
    - fread
    linkageType: ''
    returnType: local unsigned
    signature: local unsigned inf(void *how, unsigned char **buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/zlib/contrib/blast/blast-test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - how
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: outf
    functionSourceFile: /src/zlib/contrib/blast/blast-test.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: local
    signature: local outf(void *how, unsigned char *buf, unsigned len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blast
      Src: /src/zlib/contrib/blast/blast-test.c:30,1
    - Dst: fprintf
      Src: /src/zlib/contrib/blast/blast-test.c:32,1
    - Dst: getchar
      Src: /src/zlib/contrib/blast/blast-test.c:35,1
    - Dst: fprintf
      Src: /src/zlib/contrib/blast/blast-test.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 42
    functionName: main
    functionSourceFile: /src/zlib/contrib/blast/blast-test.c
    functionUses: 0
    functionsReached:
    - getchar
    - fprintf
    - blast
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct state*::infun
      Src: /src/zlib/contrib/blast/blast.c:79,1
    - Dst: longjmp
      Src: /src/zlib/contrib/blast/blast.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - s
    - need
    argTypes:
    - struct state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 93
    functionName: bits
    functionSourceFile: /src/zlib/contrib/blast/blast.c
    functionUses: 12
    functionsReached:
    - longjmp
    - struct state*::infun
    linkageType: ''
    returnType: local
    signature: local bits(struct state *s, int need)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct state*::infun
      Src: /src/zlib/contrib/blast/blast.c:163,1
    - Dst: longjmp
      Src: /src/zlib/contrib/blast/blast.c:164,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - struct state*
    - struct huffman*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 171
    functionName: decode
    functionSourceFile: /src/zlib/contrib/blast/blast.c
    functionUses: 4
    functionsReached:
    - longjmp
    - struct state*::infun
    linkageType: ''
    returnType: local
    signature: local decode(struct state *s, struct huffman *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - h
    - rep
    - n
    argTypes:
    - struct huffman*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 241
    functionName: construct
    functionSourceFile: /src/zlib/contrib/blast/blast.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local construct(struct huffman *h, const unsigned char *rep, int n)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/zlib/contrib/blast/blast.c:316,1
    - Dst: construct
      Src: /src/zlib/contrib/blast/blast.c:317,1
    - Dst: construct
      Src: /src/zlib/contrib/blast/blast.c:318,1
    - Dst: bits
      Src: /src/zlib/contrib/blast/blast.c:323,1
    - Dst: bits
      Src: /src/zlib/contrib/blast/blast.c:325,1
    - Dst: bits
      Src: /src/zlib/contrib/blast/blast.c:330,1
    - Dst: decode
      Src: /src/zlib/contrib/blast/blast.c:332,1
    - Dst: bits
      Src: /src/zlib/contrib/blast/blast.c:333,1
    - Dst: decode
      Src: /src/zlib/contrib/blast/blast.c:338,1
    - Dst: bits
      Src: /src/zlib/contrib/blast/blast.c:339,1
    - Dst: struct state*::outfun
      Src: /src/zlib/contrib/blast/blast.c:361,1
    - Dst: decode
      Src: /src/zlib/contrib/blast/blast.c:369,1
    - Dst: bits
      Src: /src/zlib/contrib/blast/blast.c:369,1
    - Dst: struct state*::outfun
      Src: /src/zlib/contrib/blast/blast.c:372,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 379
    functionName: decomp
    functionSourceFile: /src/zlib/contrib/blast/blast.c
    functionUses: 2
    functionsReached:
    - struct state*::outfun
    - decode
    - bits
    - construct
    linkageType: ''
    returnType: local
    signature: local decomp(struct state *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setjmp
      Src: /src/zlib/contrib/blast/blast.c:407,1
    - Dst: decomp
      Src: /src/zlib/contrib/blast/blast.c:410,1
    - Dst: struct state::outfun
      Src: /src/zlib/contrib/blast/blast.c:419,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 6
    argNames:
    - infun
    - inhow
    - outfun
    - outhow
    - left
    - in
    argTypes:
    - blast_in
    - void*
    - blast_out
    - void*
    - unsigned*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 422
    functionName: blast
    functionSourceFile: /src/zlib/contrib/blast/blast.c
    functionUses: 1
    functionsReached:
    - struct state::outfun
    - setjmp
    - decomp
    linkageType: ''
    returnType: int
    signature: "int blast(blast_in infun, void *inhow, blast_out outfun, void *outhow,\n
      \         unsigned *left, unsigned char **in)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/diffcore-break.c:63,1
    - Dst: S_ISREG
      Src: /src/git/diffcore-break.c:63,1
    - Dst: oideq
      Src: /src/git/diffcore-break.c:69,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/diffcore-break.c:72,1
    - Dst: diff_populate_filespec
      Src: /src/git/diffcore-break.c:77,1
    - Dst: diff_populate_filespec
      Src: /src/git/diffcore-break.c:78,1
    - Dst: diffcore_count_changes
      Src: /src/git/diffcore-break.c:88,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 5
    argNames:
    - r
    - src
    - dst
    - break_score
    - merge_score_p
    argTypes:
    - struct repository*
    - struct diff_filespec*
    - struct diff_filespec*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 129
    functionName: should_break
    functionSourceFile: /src/git/diffcore-break.c
    functionUses: 0
    functionsReached:
    - repo_has_promisor_remote
    - diff_populate_filespec
    - diffcore_count_changes
    - oideq
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int should_break(struct repository *r,\n\t\t\tstruct diff_filespec
      *src,\n\t\t\tstruct diff_filespec *dst,\n\t\t\tint break_score,\n\t\t\tint *merge_score_p)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-break.c:189,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-break.c:189,1
    - Dst: object_type
      Src: /src/git/diffcore-break.c:190,1
    - Dst: object_type
      Src: /src/git/diffcore-break.c:191,1
    - Dst: strcmp
      Src: /src/git/diffcore-break.c:192,1
    - Dst: should_break
      Src: /src/git/diffcore-break.c:193,1
    - Dst: alloc_filespec
      Src: /src/git/diffcore-break.c:209,1
    - Dst: diff_queue
      Src: /src/git/diffcore-break.c:210,1
    - Dst: alloc_filespec
      Src: /src/git/diffcore-break.c:215,1
    - Dst: diff_queue
      Src: /src/git/diffcore-break.c:216,1
    - Dst: diff_free_filespec_blob
      Src: /src/git/diffcore-break.c:220,1
    - Dst: diff_free_filespec_blob
      Src: /src/git/diffcore-break.c:221,1
    - Dst: free
      Src: /src/git/diffcore-break.c:222,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diffcore-break.c:229,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diffcore-break.c:230,1
    - Dst: diff_q
      Src: /src/git/diffcore-break.c:231,1
    - Dst: free
      Src: /src/git/diffcore-break.c:233,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - r
    - break_score
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 237
    functionName: diffcore_break
    functionSourceFile: /src/git/diffcore-break.c
    functionUses: 0
    functionsReached:
    - object_type
    - diff_free_filespec_data
    - should_break
    - diff_queue
    - alloc_filespec
    - diff_q
    - diff_free_filespec_blob
    - strcmp
    - free
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: void
    signature: void diffcore_break(struct repository *r, int break_score)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-break.c:245,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-break.c:250,1
    - Dst: die
      Src: /src/git/diffcore-break.c:251,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-break.c:252,1
    - Dst: die
      Src: /src/git/diffcore-break.c:253,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-break.c:254,1
    - Dst: die
      Src: /src/git/diffcore-break.c:255,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-break.c:256,1
    - Dst: die
      Src: /src/git/diffcore-break.c:257,1
    - Dst: diff_queue
      Src: /src/git/diffcore-break.c:259,1
    - Dst: free_filespec
      Src: /src/git/diffcore-break.c:268,1
    - Dst: free_filespec
      Src: /src/git/diffcore-break.c:269,1
    - Dst: free
      Src: /src/git/diffcore-break.c:270,1
    - Dst: free
      Src: /src/git/diffcore-break.c:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - p
    - pp
    - outq
    argTypes:
    - struct diff_filepair*
    - struct diff_filepair*
    - struct diff_queue_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 272
    functionName: merge_broken
    functionSourceFile: /src/git/diffcore-break.c
    functionUses: 0
    functionsReached:
    - DIFF_FILE_VALID
    - die
    - diff_queue
    - free
    - free_filespec
    linkageType: ''
    returnType: void
    signature: "void merge_broken(struct diff_filepair *p,\n\t\t\t struct diff_filepair
      *pp,\n\t\t\t struct diff_queue_struct *outq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diffcore-break.c:286,1
    - Dst: strcmp
      Src: /src/git/diffcore-break.c:293,1
    - Dst: strcmp
      Src: /src/git/diffcore-break.c:294,1
    - Dst: merge_broken
      Src: /src/git/diffcore-break.c:296,1
    - Dst: diff_q
      Src: /src/git/diffcore-break.c:304,1
    - Dst: diff_q
      Src: /src/git/diffcore-break.c:307,1
    - Dst: free
      Src: /src/git/diffcore-break.c:310,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 314
    functionName: diffcore_merge_broken
    functionSourceFile: /src/git/diffcore-break.c
    functionUses: 0
    functionsReached:
    - free
    - diff_q
    - merge_broken
    - strcmp
    linkageType: ''
    returnType: void
    signature: void diffcore_merge_broken(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_find_unique_abbrev
      Src: /src/git/replay.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - repo
    - commit
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: short_commit_name
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - repo_find_unique_abbrev
    linkageType: ''
    returnType: char
    signature: "char *short_commit_name(struct repository *repo,\n\t\t\t\t     struct
      commit *commit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/replay.c:40,1
    - Dst: die
      Src: /src/git/replay.c:41,1
    - Dst: _
      Src: /src/git/replay.c:41,1
    - Dst: parse_object_or_die
      Src: /src/git/replay.c:42,1
    - Dst: repo_peel_to_type
      Src: /src/git/replay.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - repo
    - name
    - mode
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: peel_committish
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - die
    - repo_peel_to_type
    - repo_get_oid
    - _
    - parse_object_or_die
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *peel_committish(struct repository *repo,\n\t\t\t\t
      \     const char *name,\n\t\t\t\t      const char *mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_commit_header
      Src: /src/git/replay.c:52,1
    - Dst: xmemdupz
      Src: /src/git/replay.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: get_author
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - find_commit_header
    - xmemdupz
    linkageType: ''
    returnType: char
    signature: char *get_author(const char *message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_output_encoding
      Src: /src/git/replay.c:63,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/replay.c:64,1
    - Dst: find_commit_subject
      Src: /src/git/replay.c:69,1
    - Dst: xmemdupz
      Src: /src/git/replay.c:70,1
    - Dst: sequencer_format_revert_message
      Src: /src/git/replay.c:72,1
    - Dst: free
      Src: /src/git/replay.c:76,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/replay.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - msg
    - commit
    - repo
    argTypes:
    - struct strbuf*
    - struct commit*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: generate_revert_message
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - sequencer_format_revert_message
    - find_commit_subject
    - repo_unuse_commit_buffer
    - repo_logmsg_reencode
    - get_commit_output_encoding
    - free
    linkageType: ''
    returnType: void
    signature: "void generate_revert_message(struct strbuf *msg,\n\t\t\t\t    struct
      commit *commit,\n\t\t\t\t    struct repository *repo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_output_encoding
      Src: /src/git/replay.c:93,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/replay.c:94,1
    - Dst: commit_list_insert
      Src: /src/git/replay.c:99,1
    - Dst: read_commit_extra_headers
      Src: /src/git/replay.c:100,1
    - Dst: generate_revert_message
      Src: /src/git/replay.c:102,1
    - Dst: find_commit_subject
      Src: /src/git/replay.c:105,1
    - Dst: strbuf_addstr
      Src: /src/git/replay.c:106,1
    - Dst: get_author
      Src: /src/git/replay.c:107,1
    - Dst: BUG
      Src: /src/git/replay.c:109,1
    - Dst: reset_ident_date
      Src: /src/git/replay.c:111,1
    - Dst: commit_tree_extended
      Src: /src/git/replay.c:112,1
    - Dst: error
      Src: /src/git/replay.c:114,1
    - Dst: _
      Src: /src/git/replay.c:114,1
    - Dst: parse_object
      Src: /src/git/replay.c:118,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/replay.c:121,1
    - Dst: free_commit_extra_headers
      Src: /src/git/replay.c:122,1
    - Dst: free_commit_list
      Src: /src/git/replay.c:123,1
    - Dst: strbuf_release
      Src: /src/git/replay.c:124,1
    - Dst: free
      Src: /src/git/replay.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 5
    argNames:
    - repo
    - tree
    - based_on
    - parent
    - mode
    argTypes:
    - struct repository*
    - struct tree*
    - struct commit*
    - struct commit*
    - enum replay_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 127
    functionName: create_commit
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - commit_tree_extended
    - get_commit_output_encoding
    - free
    - reset_ident_date
    - error
    - strbuf_release
    - find_commit_subject
    - free_commit_list
    - read_commit_extra_headers
    - strbuf_addstr
    - repo_unuse_commit_buffer
    - parse_object
    - free_commit_extra_headers
    - repo_logmsg_reencode
    - _
    - generate_revert_message
    - get_author
    - commit_list_insert
    - BUG
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *create_commit(struct repository *repo,\n\t\t\t\t    struct
      tree *tree,\n\t\t\t\t    struct commit *based_on,\n\t\t\t\t    struct commit
      *parent,\n\t\t\t\t    enum replay_mode mode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strset_init
      Src: /src/git/replay.c:142,1
    - Dst: strset_init
      Src: /src/git/replay.c:143,1
    - Dst: repo_dwim_ref
      Src: /src/git/replay.c:171,1
    - Dst: strlen
      Src: /src/git/replay.c:171,1
    - Dst: strset_add
      Src: /src/git/replay.c:176,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/replay.c:178,1
    - Dst: strset_add
      Src: /src/git/replay.c:183,1
    - Dst: free
      Src: /src/git/replay.c:187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - repo
    - cmd_info
    - ref_info
    argTypes:
    - struct repository*
    - struct rev_cmdline_info*
    - struct ref_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 189
    functionName: get_ref_information
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference_gently
    - repo_dwim_ref
    - strlen
    - free
    - strset_init
    - strset_add
    linkageType: ''
    returnType: void
    signature: "void get_ref_information(struct repository *repo,\n\t\t\t\tstruct
      rev_cmdline_info *cmd_info,\n\t\t\t\tstruct ref_info *ref_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_dwim_ref
      Src: /src/git/replay.c:200,1
    - Dst: strlen
      Src: /src/git/replay.c:200,1
    - Dst: free
      Src: /src/git/replay.c:202,1
    - Dst: die
      Src: /src/git/replay.c:205,1
    - Dst: _
      Src: /src/git/replay.c:205,1
    - Dst: peel_committish
      Src: /src/git/replay.c:207,1
    - Dst: die
      Src: /src/git/replay.c:209,1
    - Dst: _
      Src: /src/git/replay.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - repo
    - branch_name
    - option_name
    - rinfo
    - onto
    argTypes:
    - struct repository*
    - char**
    - char*
    - struct ref_info*
    - struct commit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 212
    functionName: set_up_branch_mode
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - die
    - repo_dwim_ref
    - strlen
    - _
    - free
    - peel_committish
    linkageType: ''
    returnType: void
    signature: "void set_up_branch_mode(struct repository *repo,\n\t\t\t       char
      **branch_name,\n\t\t\t       const char *option_name,\n\t\t\t       struct ref_info
      *rinfo,\n\t\t\t       struct commit **onto)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: refs_read_ref_full
      Src: /src/git/replay.c:226,1
    - Dst: get_main_ref_store
      Src: /src/git/replay.c:226,1
    - Dst: get_ref_information
      Src: /src/git/replay.c:230,1
    - Dst: die
      Src: /src/git/replay.c:232,1
    - Dst: _
      Src: /src/git/replay.c:232,1
    - Dst: peel_committish
      Src: /src/git/replay.c:235,1
    - Dst: strset_get_size
      Src: /src/git/replay.c:237,1
    - Dst: die
      Src: /src/git/replay.c:238,1
    - Dst: _
      Src: /src/git/replay.c:238,1
    - Dst: xcalloc
      Src: /src/git/replay.c:239,1
    - Dst: memset
      Src: /src/git/replay.c:241,1
    - Dst: set_up_branch_mode
      Src: /src/git/replay.c:243,1
    - Dst: set_up_branch_mode
      Src: /src/git/replay.c:245,1
    - Dst: BUG
      Src: /src/git/replay.c:247,1
    - Dst: strset_clear
      Src: /src/git/replay.c:249,1
    - Dst: strset_clear
      Src: /src/git/replay.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 8
    argNames:
    - repo
    - cmd_info
    - onto_name
    - detached_head
    - advance_name
    - revert_name
    - onto
    - update_refs
    argTypes:
    - struct repository*
    - struct rev_cmdline_info*
    - char*
    - bool*
    - char**
    - char**
    - struct commit**
    - struct strset**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 251
    functionName: set_up_replay_mode
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - strset_clear
    - strset_get_size
    - get_ref_information
    - refs_read_ref_full
    - set_up_branch_mode
    - xcalloc
    - _
    - peel_committish
    - BUG
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void set_up_replay_mode(struct repository *repo,\n\t\t\t       struct
      rev_cmdline_info *cmd_info,\n\t\t\t       const char *onto_name,\n\t\t\t       bool
      *detached_head,\n\t\t\t       char **advance_name,\n\t\t\t       char **revert_name,\n\t\t\t
      \      struct commit **onto,\n\t\t\t       struct strset **update_refs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_map
      Src: /src/git/replay.c:260,1
    - Dst: kh_end
      Src: /src/git/replay.c:261,1
    - Dst: kh_value
      Src: /src/git/replay.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - replayed_commits
    - commit
    - fallback
    argTypes:
    - kh_oid_map_t*
    - struct commit*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: mapped_commit
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - kh_value
    - kh_end
    - kh_get_oid_map
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *mapped_commit(kh_oid_map_t *replayed_commits,\n\t\t\t\t
      \   struct commit *commit,\n\t\t\t\t    struct commit *fallback)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_tree
      Src: /src/git/replay.c:280,1
    - Dst: lookup_tree
      Src: /src/git/replay.c:283,1
    - Dst: mapped_commit
      Src: /src/git/replay.c:286,1
    - Dst: repo_get_commit_tree
      Src: /src/git/replay.c:287,1
    - Dst: repo_get_commit_tree
      Src: /src/git/replay.c:288,1
    - Dst: short_commit_name
      Src: /src/git/replay.c:292,1
    - Dst: short_commit_name
      Src: /src/git/replay.c:293,1
    - Dst: xstrfmt
      Src: /src/git/replay.c:295,1
    - Dst: xstrdup
      Src: /src/git/replay.c:297,1
    - Dst: merge_incore_nonrecursive
      Src: /src/git/replay.c:299,1
    - Dst: free
      Src: /src/git/replay.c:305,1
    - Dst: short_commit_name
      Src: /src/git/replay.c:308,1
    - Dst: short_commit_name
      Src: /src/git/replay.c:309,1
    - Dst: xstrfmt
      Src: /src/git/replay.c:310,1
    - Dst: merge_incore_nonrecursive
      Src: /src/git/replay.c:313,1
    - Dst: free
      Src: /src/git/replay.c:319,1
    - Dst: BUG
      Src: /src/git/replay.c:321,1
    - Dst: oideq
      Src: /src/git/replay.c:330,1
    - Dst: oideq
      Src: /src/git/replay.c:331,1
    - Dst: error
      Src: /src/git/replay.c:338,1
    - Dst: _
      Src: /src/git/replay.c:338,1
    - Dst: oid_to_hex
      Src: /src/git/replay.c:339,1
    - Dst: create_commit
      Src: /src/git/replay.c:344,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 8
    argNames:
    - repo
    - pickme
    - replayed_commits
    - onto
    - merge_opt
    - result
    - mode
    - empty
    argTypes:
    - struct repository*
    - struct commit*
    - kh_oid_map_t*
    - struct commit*
    - struct merge_options*
    - struct merge_result*
    - enum replay_mode
    - enum replay_empty_commit_action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 345
    functionName: pick_regular_commit
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - error
    - oideq
    - oid_to_hex
    - BUG
    - create_commit
    - xstrfmt
    - _
    - repo_get_commit_tree
    - mapped_commit
    - free
    - lookup_tree
    - merge_incore_nonrecursive
    - short_commit_name
    - xstrdup
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *pick_regular_commit(struct repository *repo,\n\t\t\t\t\t
      \ struct commit *pickme,\n\t\t\t\t\t  kh_oid_map_t *replayed_commits,\n\t\t\t\t\t
      \ struct commit *onto,\n\t\t\t\t\t  struct merge_options *merge_opt,\n\t\t\t\t\t
      \ struct merge_result *result,\n\t\t\t\t\t  enum replay_mode mode,\n\t\t\t\t\t
      \ enum replay_empty_commit_action empty)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/replay.c:350,1
    - Dst: free
      Src: /src/git/replay.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - result
    argTypes:
    - struct replay_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: replay_result_release
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void replay_result_release(struct replay_result *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/replay.c:359,1
    - Dst: xstrdup
      Src: /src/git/replay.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - result
    - refname
    - old_oid
    - new_oid
    argTypes:
    - struct replay_result*
    - char*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: replay_result_queue_update
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void replay_result_queue_update(struct replay_result *result,\n\t\t\t\t
      \      const char *refname,\n\t\t\t\t       const struct object_id *old_oid,\n\t\t\t\t
      \      const struct object_id *new_oid)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/replay.c:387,1
    - Dst: xstrdup_or_null
      Src: /src/git/replay.c:388,1
    - Dst: set_up_replay_mode
      Src: /src/git/replay.c:391,1
    - Dst: strset_get_size
      Src: /src/git/replay.c:397,1
    - Dst: error
      Src: /src/git/replay.c:398,1
    - Dst: _
      Src: /src/git/replay.c:398,1
    - Dst: check_refname_format
      Src: /src/git/replay.c:401,1
    - Dst: starts_with
      Src: /src/git/replay.c:401,1
    - Dst: error
      Src: /src/git/replay.c:402,1
    - Dst: _
      Src: /src/git/replay.c:402,1
    - Dst: refs_read_ref
      Src: /src/git/replay.c:406,1
    - Dst: get_main_ref_store
      Src: /src/git/replay.c:406,1
    - Dst: oidcpy
      Src: /src/git/replay.c:407,1
    - Dst: oidclr
      Src: /src/git/replay.c:409,1
    - Dst: oidcpy
      Src: /src/git/replay.c:412,1
    - Dst: prepare_revision_walk
      Src: /src/git/replay.c:415,1
    - Dst: error
      Src: /src/git/replay.c:416,1
    - Dst: _
      Src: /src/git/replay.c:416,1
    - Dst: init_basic_merge_options
      Src: /src/git/replay.c:420,1
    - Dst: kh_init_oid_map
      Src: /src/git/replay.c:423,1
    - Dst: get_revision
      Src: /src/git/replay.c:424,1
    - Dst: die
      Src: /src/git/replay.c:430,1
    - Dst: _
      Src: /src/git/replay.c:430,1
    - Dst: pick_regular_commit
      Src: /src/git/replay.c:432,1
    - Dst: kh_put_oid_map
      Src: /src/git/replay.c:439,1
    - Dst: BUG
      Src: /src/git/replay.c:441,1
    - Dst: oid_to_hex
      Src: /src/git/replay.c:442,1
    - Dst: kh_value
      Src: /src/git/replay.c:443,1
    - Dst: get_name_decoration
      Src: /src/git/replay.c:449,1
    - Dst: strset_contains
      Src: /src/git/replay.c:466,1
    - Dst: replay_result_queue_update
      Src: /src/git/replay.c:469,1
    - Dst: replay_result_queue_update
      Src: /src/git/replay.c:486,1
    - Dst: strset_clear
      Src: /src/git/replay.c:493,1
    - Dst: free
      Src: /src/git/replay.c:494,1
    - Dst: kh_destroy_oid_map
      Src: /src/git/replay.c:496,1
    - Dst: merge_finalize
      Src: /src/git/replay.c:497,1
    - Dst: free
      Src: /src/git/replay.c:498,1
    - Dst: free
      Src: /src/git/replay.c:499,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 80
    argCount: 3
    argNames:
    - revs
    - opts
    - out
    argTypes:
    - struct rev_info*
    - struct replay_revisions_options*
    - struct replay_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 501
    functionName: replay_revisions
    functionSourceFile: /src/git/replay.c
    functionUses: 0
    functionsReached:
    - strset_contains
    - oidcpy
    - oidclr
    - free
    - get_main_ref_store
    - error
    - xstrdup_or_null
    - die
    - replay_result_queue_update
    - merge_finalize
    - init_basic_merge_options
    - kh_value
    - prepare_revision_walk
    - oid_to_hex
    - strset_clear
    - strset_get_size
    - kh_init_oid_map
    - get_name_decoration
    - set_up_replay_mode
    - check_refname_format
    - _
    - kh_destroy_oid_map
    - pick_regular_commit
    - kh_put_oid_map
    - refs_read_ref
    - starts_with
    - get_revision
    - BUG
    linkageType: ''
    returnType: int
    signature: "int replay_revisions(struct rev_info *revs,\n\t\t     struct replay_revisions_options
      *opts,\n\t\t     struct replay_result *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: LIST_HEAD
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: INIT_LIST_HEAD
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_LIST_HEAD(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: LIST_HEAD_INIT
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_INIT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - newp
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: list_add
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add(struct list_head *newp, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - newp
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: list_add_tail
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add_tail(struct list_head *newp, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: __list_del
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __list_del(struct list_head *prev, struct list_head *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/git/list.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: list_del
    functionSourceFile: /src/git/list.h
    functionUses: 1
    functionsReached:
    - __list_del
    linkageType: ''
    returnType: void
    signature: void list_del(struct list_head *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/git/list.h:88,1
    - Dst: INIT_LIST_HEAD
      Src: /src/git/list.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - elem
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: list_del_init
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_del
    linkageType: ''
    returnType: void
    signature: void list_del_init(struct list_head *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/git/list.h:95,1
    - Dst: list_add
      Src: /src/git/list.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - elem
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: list_move
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached:
    - __list_del
    - list_add
    linkageType: ''
    returnType: void
    signature: void list_move(struct list_head *elem, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - old
    - newp
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: list_replace
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_replace(struct list_head *old, struct list_head *newp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - add
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: list_splice
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_splice(struct list_head *add, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: list_entry
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: list_first_entry
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_first_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: list_for_each
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - p
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: list_for_each_safe
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_safe(pos, p, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: list_for_each_prev
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_prev(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - p
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: list_for_each_prev_safe
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_prev_safe(pos, p, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: list_empty
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int list_empty(struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/git/list.h:164,1
    - Dst: list_add_tail
      Src: /src/git/list.h:165,1
    - Dst: INIT_LIST_HEAD
      Src: /src/git/list.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - old
    - newp
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: list_replace_init
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached:
    - list_add_tail
    - list_del
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: "void list_replace_init(struct list_head *old,\n\t\t\t\t     struct
      list_head *newp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: VOLATILE_LIST_HEAD
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VOLATILE_LIST_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - prev
    - next
    argTypes:
    - struct volatile_list_head*
    - struct volatile_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: __volatile_list_del
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __volatile_list_del(volatile struct volatile_list_head *prev,\n\t\t\t\t
      \      volatile struct volatile_list_head *next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile_list_del
      Src: /src/git/list.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - struct volatile_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: volatile_list_del
    functionSourceFile: /src/git/list.h
    functionUses: 1
    functionsReached:
    - __volatile_list_del
    linkageType: ''
    returnType: void
    signature: void volatile_list_del(volatile struct volatile_list_head *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct volatile_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: volatile_list_empty
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int volatile_list_empty(volatile struct volatile_list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - newp
    - head
    argTypes:
    - struct volatile_list_head*
    - struct volatile_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: volatile_list_add
    functionSourceFile: /src/git/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void volatile_list_add(volatile struct volatile_list_head *newp,\n\t\t\t\t
      \    volatile struct volatile_list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 413
    functionName: config_error_nonbool
    functionSourceFile: /src/git/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: config_error_nonbool(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mapping
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 726
    functionName: LOOKUP_CONFIG
    functionSourceFile: /src/git/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOOKUP_CONFIG(mapping, var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/refs.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ref_storage_format
    argTypes:
    - enum ref_storage_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: find_ref_storage_backend
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct ref_storage_be
    signature: "struct ref_storage_be *find_ref_storage_backend(\n\tenum ref_storage_format
      ref_storage_format)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/refs.c:53,1
    - Dst: strcmp
      Src: /src/git/refs.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: ref_storage_format_by_name
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strcmp
    linkageType: ''
    returnType: enum ref_storage_format
    signature: enum ref_storage_format ref_storage_format_by_name(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_ref_storage_backend
      Src: /src/git/refs.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ref_storage_format
    argTypes:
    - enum ref_storage_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: ref_storage_format_to_name
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - find_ref_storage_backend
    linkageType: ''
    returnType: char
    signature: char *ref_storage_format_to_name(enum ref_storage_format ref_storage_format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/refs.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - namespace
    - ref
    argTypes:
    - enum ref_namespace
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: update_ref_namespace
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void update_ref_namespace(enum ref_namespace namespace, char *ref)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/refs.c:207,1
    - Dst: strbuf_setlen
      Src: /src/git/refs.c:216,1
    - Dst: memcmp
      Src: /src/git/refs.c:265,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/refs.c:269,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 3
    argNames:
    - refname
    - flags
    - sanitized
    argTypes:
    - char*
    - int*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 274
    functionName: check_refname_component
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strbuf_strip_suffix
    - strbuf_setlen
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: "int check_refname_component(const char *refname, int *flags,\n\t\t\t\t
      \  struct strbuf *sanitized)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs.c:281,1
    - Dst: strbuf_addch
      Src: /src/git/refs.c:284,1
    - Dst: strbuf_complete
      Src: /src/git/refs.c:291,1
    - Dst: check_refname_component
      Src: /src/git/refs.c:294,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 3
    argNames:
    - refname
    - flags
    - sanitized
    argTypes:
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 318
    functionName: check_or_sanitize_refname
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    - strbuf_complete
    - check_refname_component
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int check_or_sanitize_refname(const char *refname, int flags,\n\t\t\t\t
      \    struct strbuf *sanitized)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_or_sanitize_refname
      Src: /src/git/refs.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refname
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: check_refname_format
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - check_or_sanitize_refname
    linkageType: ''
    returnType: int
    signature: int check_refname_format(const char *refname, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/refs.c:329,1
    - Dst: fsck_report_ref
      Src: /src/git/refs.c:330,1
    - Dst: oid_to_hex
      Src: /src/git/refs.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - UNUSED
    - o
    - report
    - refname
    - oid
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - struct fsck_ref_report*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: refs_fsck_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fsck_report_ref
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: "int refs_fsck_ref(struct ref_store *refs UNUSED, struct fsck_options
      *o,\n\t\t  struct fsck_ref_report *report,\n\t\t  const char *refname UNUSED,
      const struct object_id *oid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_worktree_ref
      Src: /src/git/refs.c:343,1
    - Dst: strcmp
      Src: /src/git/refs.c:345,1
    - Dst: starts_with
      Src: /src/git/refs.c:346,1
    - Dst: fsck_report_ref
      Src: /src/git/refs.c:347,1
    - Dst: is_root_ref
      Src: /src/git/refs.c:351,1
    - Dst: check_refname_format
      Src: /src/git/refs.c:354,1
    - Dst: fsck_report_ref
      Src: /src/git/refs.c:355,1
    - Dst: starts_with
      Src: /src/git/refs.c:359,1
    - Dst: starts_with
      Src: /src/git/refs.c:360,1
    - Dst: fsck_report_ref
      Src: /src/git/refs.c:361,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 5
    argNames:
    - UNUSED
    - o
    - report
    - refname
    - target
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - struct fsck_ref_report*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 366
    functionName: refs_fsck_symref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - parse_worktree_ref
    - is_root_ref
    - starts_with
    - check_refname_format
    - strcmp
    - fsck_report_ref
    linkageType: ''
    returnType: int
    signature: "int refs_fsck_symref(struct ref_store *refs UNUSED, struct fsck_options
      *o,\n\t\t     struct fsck_ref_report *report,\n\t\t     const char *refname,
      const char *target)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/refs.c:372,1
    - Dst: _
      Src: /src/git/refs.c:372,1
    - Dst: struct ref_store*::be::fsck
      Src: /src/git/refs.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - refs
    - o
    - wt
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: refs_fsck
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct ref_store*::be::fsck
    - fprintf_ln
    - _
    linkageType: ''
    returnType: int
    signature: "int refs_fsck(struct ref_store *refs, struct fsck_options *o,\n\t
      \     struct worktree *wt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_or_sanitize_refname
      Src: /src/git/refs.c:379,1
    - Dst: BUG
      Src: /src/git/refs.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - refname
    - out
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: sanitize_refname_component
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - BUG
    - check_or_sanitize_refname
    linkageType: ''
    returnType: void
    signature: void sanitize_refname_component(const char *refname, struct strbuf
      *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/refs.c:387,1
    - Dst: strlen
      Src: /src/git/refs.c:390,1
    - Dst: xmallocz
      Src: /src/git/refs.c:401,1
    - Dst: normalize_path_copy
      Src: /src/git/refs.c:402,1
    - Dst: strcmp
      Src: /src/git/refs.c:402,1
    - Dst: free
      Src: /src/git/refs.c:403,1
    - Dst: isupper
      Src: /src/git/refs.c:408,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 413
    functionName: refname_is_safe
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - isupper
    - normalize_path_copy
    - xmallocz
    - strlen
    - strcmp
    - free
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int refname_is_safe(const char *refname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/refs.c:427,1
    - Dst: error
      Src: /src/git/refs.c:429,1
    - Dst: _
      Src: /src/git/refs.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - refname
    - repo
    - oid
    - flags
    argTypes:
    - char*
    - struct repository*
    - struct object_id*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 433
    functionName: ref_resolves_to_object
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - odb_has_object
    - error
    - _
    linkageType: ''
    returnType: int
    signature: "int ref_resolves_to_object(const char *refname,\n\t\t\t   struct repository
      *repo,\n\t\t\t   const struct object_id *oid,\n\t\t\t   unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs.c:441,1
    - Dst: xstrdup_or_null
      Src: /src/git/refs.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - refs
    - refname
    - resolve_flags
    - oid
    - flags
    argTypes:
    - struct ref_store*
    - char*
    - int
    - struct object_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 444
    functionName: refs_resolve_refdup
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - xstrdup_or_null
    linkageType: ''
    returnType: char
    signature: "char *refs_resolve_refdup(struct ref_store *refs,\n\t\t\t  const char
      *refname, int resolve_flags,\n\t\t\t  struct object_id *oid, int *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - refs
    - refname
    - resolve_flags
    - oid
    - flags
    argTypes:
    - struct ref_store*
    - char*
    - int
    - struct object_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: refs_read_ref_full
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - refs_resolve_ref_unsafe
    linkageType: ''
    returnType: int
    signature: "int refs_read_ref_full(struct ref_store *refs, const char *refname,\n\t\t
      \      int resolve_flags, struct object_id *oid, int *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_read_ref_full
      Src: /src/git/refs.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - refs
    - refname
    - oid
    argTypes:
    - struct ref_store*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: refs_read_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - refs_read_ref_full
    linkageType: ''
    returnType: int
    signature: int refs_read_ref(struct ref_store *refs, const char *refname, struct
      object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - refname
    argTypes:
    - struct ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: refs_ref_exists
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    linkageType: ''
    returnType: int
    signature: int refs_ref_exists(struct ref_store *refs, const char *refname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wildmatch
      Src: /src/git/refs.c:478,1
    - Dst: strlen
      Src: /src/git/refs.c:482,1
    - Dst: BUG
      Src: /src/git/refs.c:483,1
    - Dst: struct for_each_ref_filter*::fn
      Src: /src/git/refs.c:485,1
    - Dst: struct for_each_ref_filter*::fn
      Src: /src/git/refs.c:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ref
    - data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 489
    functionName: for_each_filter_refs
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct for_each_ref_filter*::fn
    - strlen
    - BUG
    - wildmatch
    linkageType: ''
    returnType: int
    signature: int for_each_filter_refs(const struct reference *ref, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs.c:507,1
    - Dst: string_list_has_string
      Src: /src/git/refs.c:509,1
    - Dst: _
      Src: /src/git/refs.c:514,1
    - Dst: _
      Src: /src/git/refs.c:515,1
    - Dst: fprintf
      Src: /src/git/refs.c:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 518
    functionName: warn_if_dangling_symref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - string_list_has_string
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int warn_if_dangling_symref(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_ref_ext
      Src: /src/git/refs.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - refs
    - fp
    - indent
    - dry_run
    - refnames
    argTypes:
    - struct ref_store*
    - FILE*
    - char*
    - int
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 535
    functionName: refs_warn_dangling_symrefs
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    linkageType: ''
    returnType: void
    signature: "void refs_warn_dangling_symrefs(struct ref_store *refs, FILE *fp,\n\t\t\t\tconst
      char *indent, int dry_run,\n\t\t\t\tconst struct string_list *refnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/refs.c:541,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/refs.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - refs
    - cb
    - cb_data
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 544
    functionName: refs_for_each_tag_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - strlen
    linkageType: ''
    returnType: int
    signature: int refs_for_each_tag_ref(struct ref_store *refs, refs_for_each_cb
      cb, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/refs.c:550,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/refs.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - refs
    - cb
    - cb_data
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 553
    functionName: refs_for_each_branch_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - strlen
    linkageType: ''
    returnType: int
    signature: int refs_for_each_branch_ref(struct ref_store *refs, refs_for_each_cb
      cb, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/refs.c:559,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/refs.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - refs
    - cb
    - cb_data
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 562
    functionName: refs_for_each_remote_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - strlen
    linkageType: ''
    returnType: int
    signature: int refs_for_each_remote_ref(struct ref_store *refs, refs_for_each_cb
      cb, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/refs.c:571,1
    - Dst: get_git_namespace
      Src: /src/git/refs.c:571,1
    - Dst: refs_read_ref_full
      Src: /src/git/refs.c:572,1
    - Dst: fn
      Src: /src/git/refs.c:579,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - refs
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 584
    functionName: refs_head_ref_namespaced
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fn
    - strbuf_addf
    - refs_read_ref_full
    - get_git_namespace
    linkageType: ''
    returnType: int
    signature: int refs_head_ref_namespaced(struct ref_store *refs, refs_for_each_cb
      fn, void *cb_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:592,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:595,1
    - Dst: starts_with
      Src: /src/git/refs.c:596,1
    - Dst: strcmp
      Src: /src/git/refs.c:597,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:598,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:604,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/refs.c:605,1
    - Dst: strbuf_detach
      Src: /src/git/refs.c:607,1
    - Dst: has_glob_specials
      Src: /src/git/refs.c:608,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - item
    - prefix
    - pattern
    argTypes:
    - struct string_list_item*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 610
    functionName: normalize_glob_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_strip_suffix
    - has_glob_specials
    - starts_with
    - strbuf_detach
    - strbuf_addstr
    - strcmp
    - BUG
    linkageType: ''
    returnType: void
    signature: "void normalize_glob_ref(struct string_list_item *item, const char
      *prefix,\n\t\t\tconst char *pattern)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/refs.c:614,1
    - Dst: skip_prefix
      Src: /src/git/refs.c:615,1
    - Dst: skip_prefix
      Src: /src/git/refs.c:616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 619
    functionName: prettify_refname
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: char
    signature: char *prettify_refname(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/refs.c:643,1
    - Dst: strcmp
      Src: /src/git/refs.c:647,1
    - Dst: mkpath
      Src: /src/git/refs.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - abbrev_name
    - full_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 651
    functionName: refname_match
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - mkpath
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: int refname_match(const char *abbrev_name, const char *full_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/refs.c:660,1
    - Dst: strvec_pushf
      Src: /src/git/refs.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - prefixes
    - prefix
    argTypes:
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 664
    functionName: expand_ref_prefix
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strlen
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: void expand_ref_prefix(struct strvec *prefixes, const char *prefix)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/refs.c:695,1
    - Dst: xstrdup
      Src: /src/git/refs.c:698,1
    - Dst: repo_config_get_string
      Src: /src/git/refs.c:699,1
    - Dst: die
      Src: /src/git/refs.c:700,1
    - Dst: _
      Src: /src/git/refs.c:700,1
    - Dst: xstrdup
      Src: /src/git/refs.c:704,1
    - Dst: xstrdup
      Src: /src/git/refs.c:706,1
    - Dst: advise_if_enabled
      Src: /src/git/refs.c:709,1
    - Dst: _
      Src: /src/git/refs.c:710,1
    - Dst: xstrfmt
      Src: /src/git/refs.c:713,1
    - Dst: check_refname_format
      Src: /src/git/refs.c:714,1
    - Dst: die
      Src: /src/git/refs.c:715,1
    - Dst: _
      Src: /src/git/refs.c:715,1
    - Dst: free
      Src: /src/git/refs.c:716,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - r
    - quiet
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 690
    functionDepth: 4
    functionLinenumber: 690
    functionLinenumberEnd: 719
    functionName: repo_default_branch_name
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - die
    - xstrfmt
    - repo_config_get_string
    - advise_if_enabled
    - check_refname_format
    - _
    - free
    - getenv
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *repo_default_branch_name(struct repository *r, int quiet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_interpret_branch_name
      Src: /src/git/refs.c:734,1
    - Dst: strbuf_detach
      Src: /src/git/refs.c:738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - r
    - string
    - len
    - nonfatal_dangling_mark
    argTypes:
    - struct repository*
    - char**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 744
    functionName: substitute_branch_name
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - repo_interpret_branch_name
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: "char *substitute_branch_name(struct repository *r,\n\t\t\t\t    const
      char **string, int *len,\n\t\t\t\t    int nonfatal_dangling_mark)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/refs.c:749,1
    - Dst: repo_interpret_branch_name
      Src: /src/git/refs.c:753,1
    - Dst: strbuf_add
      Src: /src/git/refs.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - sb
    - name
    - allowed
    argTypes:
    - struct strbuf*
    - char*
    - enum interpret_branch_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 759
    functionName: copy_branchname
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - repo_interpret_branch_name
    - strlen
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void copy_branchname(struct strbuf *sb, const char *name,\n\t\t     enum
      interpret_branch_kind allowed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: copy_branchname
      Src: /src/git/refs.c:764,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:766,1
    - Dst: strbuf_splice
      Src: /src/git/refs.c:774,1
    - Dst: strcmp
      Src: /src/git/refs.c:777,1
    - Dst: check_refname_format
      Src: /src/git/refs.c:780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sb
    - name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 761
    functionDepth: 4
    functionLinenumber: 761
    functionLinenumberEnd: 781
    functionName: check_branch_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - copy_branchname
    - strbuf_splice
    - strcmp
    - check_refname_format
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int check_branch_ref(struct strbuf *sb, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs.c:785,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:788,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:789,1
    - Dst: check_refname_format
      Src: /src/git/refs.c:791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sb
    - name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 783
    functionDepth: 4
    functionLinenumber: 783
    functionLinenumberEnd: 792
    functionName: check_tag_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addf
    - check_refname_format
    - strcmp
    linkageType: ''
    returnType: int
    signature: int check_tag_ref(struct strbuf *sb, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: substitute_branch_name
      Src: /src/git/refs.c:797,1
    - Dst: expand_ref
      Src: /src/git/refs.c:799,1
    - Dst: free
      Src: /src/git/refs.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - r
    - str
    - len
    - oid
    - ref
    - nonfatal_dangling_mark
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object_id*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 802
    functionName: repo_dwim_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 2
    functionsReached:
    - expand_ref
    - substitute_branch_name
    - free
    linkageType: ''
    returnType: int
    signature: "int repo_dwim_ref(struct repository *r, const char *str, int len,\n\t\t
      \ struct object_id *oid, char **ref, int nonfatal_dangling_mark)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_main_ref_store
      Src: /src/git/refs.c:816,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:819,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:820,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs.c:821,1
    - Dst: xstrdup
      Src: /src/git/refs.c:826,1
    - Dst: repo_settings_get_warn_ambiguous_refs
      Src: /src/git/refs.c:827,1
    - Dst: strcmp
      Src: /src/git/refs.c:829,1
    - Dst: warning
      Src: /src/git/refs.c:830,1
    - Dst: _
      Src: /src/git/refs.c:830,1
    - Dst: strchr
      Src: /src/git/refs.c:831,1
    - Dst: warning
      Src: /src/git/refs.c:832,1
    - Dst: _
      Src: /src/git/refs.c:832,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:835,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - repo
    - str
    - len
    - oid
    - ref
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object_id*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 837
    functionName: expand_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - refs_resolve_ref_unsafe
    - repo_settings_get_warn_ambiguous_refs
    - strbuf_addf
    - strchr
    - strcmp
    - warning
    - get_main_ref_store
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int expand_ref(struct repository *repo, const char *str, int len,\n\t
      \      struct object_id *oid, char **ref)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_main_ref_store
      Src: /src/git/refs.c:842,1
    - Dst: substitute_branch_name
      Src: /src/git/refs.c:843,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:853,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:854,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs.c:855,1
    - Dst: refs_reflog_exists
      Src: /src/git/refs.c:860,1
    - Dst: strcmp
      Src: /src/git/refs.c:862,1
    - Dst: refs_reflog_exists
      Src: /src/git/refs.c:863,1
    - Dst: xstrdup
      Src: /src/git/refs.c:868,1
    - Dst: oidcpy
      Src: /src/git/refs.c:870,1
    - Dst: repo_settings_get_warn_ambiguous_refs
      Src: /src/git/refs.c:872,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:875,1
    - Dst: free
      Src: /src/git/refs.c:876,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 5
    argNames:
    - r
    - str
    - len
    - oid
    - log
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object_id*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 878
    functionName: repo_dwim_log
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - substitute_branch_name
    - oidcpy
    - strbuf_reset
    - refs_resolve_ref_unsafe
    - repo_settings_get_warn_ambiguous_refs
    - strbuf_addf
    - refs_reflog_exists
    - strcmp
    - free
    - xstrdup
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int repo_dwim_log(struct repository *r, const char *str, int len,\n\t\t
      \ struct object_id *oid, char **log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/refs.c:882,1
    - Dst: starts_with
      Src: /src/git/refs.c:883,1
    - Dst: starts_with
      Src: /src/git/refs.c:884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 885
    functionName: is_per_worktree_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: int
    signature: int is_per_worktree_ref(const char *refname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/refs.c:895,1
    - Dst: strcmp
      Src: /src/git/refs.c:896,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 900
    functionName: is_pseudo_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_pseudo_ref(const char *refname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isupper
      Src: /src/git/refs.c:907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 912
    functionName: is_root_ref_syntax
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - isupper
    linkageType: ''
    returnType: int
    signature: int is_root_ref_syntax(const char *refname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_root_ref_syntax
      Src: /src/git/refs.c:926,1
    - Dst: is_pseudo_ref
      Src: /src/git/refs.c:927,1
    - Dst: ends_with
      Src: /src/git/refs.c:930,1
    - Dst: ARRAY_SIZE
      Src: /src/git/refs.c:933,1
    - Dst: strcmp
      Src: /src/git/refs.c:934,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 938
    functionName: is_root_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - ends_with
    - is_root_ref_syntax
    - is_pseudo_ref
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_root_ref(const char *refname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_root_ref_syntax
      Src: /src/git/refs.c:941,1
    - Dst: is_per_worktree_ref
      Src: /src/git/refs.c:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 942
    functionName: is_current_worktree_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - is_root_ref_syntax
    - is_per_worktree_ref
    linkageType: ''
    returnType: int
    signature: int is_current_worktree_ref(const char *ref)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/refs.c:959,1
    - Dst: strchr
      Src: /src/git/refs.c:960,1
    - Dst: strlen
      Src: /src/git/refs.c:964,1
    - Dst: is_current_worktree_ref
      Src: /src/git/refs.c:974,1
    - Dst: skip_prefix
      Src: /src/git/refs.c:981,1
    - Dst: is_current_worktree_ref
      Src: /src/git/refs.c:982,1
    - Dst: is_current_worktree_ref
      Src: /src/git/refs.c:986,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - maybe_worktree_ref
    - worktree_name
    - worktree_name_length
    - bare_refname
    argTypes:
    - char*
    - char**
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 944
    functionDepth: 3
    functionLinenumber: 944
    functionLinenumberEnd: 990
    functionName: parse_worktree_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - strlen
    - skip_prefix
    - strchr
    - is_current_worktree_ref
    linkageType: ''
    returnType: enum ref_worktree_type
    signature: "enum ref_worktree_type parse_worktree_ref(const char *maybe_worktree_ref,\n\t\t\t\t\t
      \ const char **worktree_name, int *worktree_name_length,\n\t\t\t\t\t  const
      char **bare_refname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/refs.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1005
    functionName: get_files_ref_lock_timeout_ms
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    linkageType: ''
    returnType: long
    signature: long get_files_ref_lock_timeout_ms(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ref_store_transaction_begin
      Src: /src/git/refs.c:1015,1
    - Dst: ref_transaction_delete
      Src: /src/git/refs.c:1017,1
    - Dst: ref_transaction_commit
      Src: /src/git/refs.c:1019,1
    - Dst: error
      Src: /src/git/refs.c:1020,1
    - Dst: ref_transaction_free
      Src: /src/git/refs.c:1021,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:1022,1
    - Dst: ref_transaction_free
      Src: /src/git/refs.c:1025,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:1026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - refs
    - msg
    - refname
    - old_oid
    - flags
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - struct object_id*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1028
    functionName: refs_delete_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - error
    - strbuf_release
    - ref_transaction_delete
    - ref_transaction_free
    - ref_store_transaction_begin
    linkageType: ''
    returnType: int
    signature: "int refs_delete_ref(struct ref_store *refs, const char *msg,\n\t\t
      \   const char *refname,\n\t\t    const struct object_id *old_oid,\n\t\t    unsigned
      int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/refs.c:1036,1
    - Dst: isspace
      Src: /src/git/refs.c:1038,1
    - Dst: strbuf_addch
      Src: /src/git/refs.c:1041,1
    - Dst: strbuf_rtrim
      Src: /src/git/refs.c:1043,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - sb
    - msg
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1044
    functionName: copy_reflog_msg
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_rtrim
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void copy_reflog_msg(struct strbuf *sb, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_reflog_msg
      Src: /src/git/refs.c:1051,1
    - Dst: strbuf_detach
      Src: /src/git/refs.c:1052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1046
    functionDepth: 2
    functionLinenumber: 1046
    functionLinenumberEnd: 1053
    functionName: normalize_reflog_message
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - copy_reflog_msg
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *normalize_reflog_message(const char *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/refs.c:1062,1
    - Dst: starts_with
      Src: /src/git/refs.c:1063,1
    - Dst: starts_with
      Src: /src/git/refs.c:1064,1
    - Dst: strcmp
      Src: /src/git/refs.c:1065,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - log_all_ref_updates
    - refname
    argTypes:
    - enum log_refs_config
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1069
    functionName: should_autocreate_reflog
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - starts_with
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int should_autocreate_reflog(enum log_refs_config log_all_ref_updates,\n\t\t\t
      \    const char *refname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs.c:1073,1
    - Dst: starts_with
      Src: /src/git/refs.c:1073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1074
    functionName: is_branch
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - starts_with
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_branch(const char *refname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/refs.c:1097,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - cb
    - timestamp
    - tz
    - message
    argTypes:
    - struct read_ref_at_cb*
    - timestamp_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1104
    functionName: set_read_ref_cutoffs
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void set_read_ref_cutoffs(struct read_ref_at_cb *cb,\n\t\ttimestamp_t
      timestamp, int tz, const char *message)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: set_read_ref_cutoffs
      Src: /src/git/refs.c:1118,1
    - Dst: is_null_oid
      Src: /src/git/refs.c:1123,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1124,1
    - Dst: oideq
      Src: /src/git/refs.c:1125,1
    - Dst: warning
      Src: /src/git/refs.c:1126,1
    - Dst: _
      Src: /src/git/refs.c:1126,1
    - Dst: show_date
      Src: /src/git/refs.c:1127,1
    - Dst: DATE_MODE
      Src: /src/git/refs.c:1127,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1130,1
    - Dst: oideq
      Src: /src/git/refs.c:1131,1
    - Dst: warning
      Src: /src/git/refs.c:1132,1
    - Dst: _
      Src: /src/git/refs.c:1132,1
    - Dst: show_date
      Src: /src/git/refs.c:1133,1
    - Dst: DATE_MODE
      Src: /src/git/refs.c:1133,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1135,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1136,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1141,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 8
    argNames:
    - refname
    - ooid
    - noid
    - UNUSED
    - timestamp
    - tz
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1106
    functionDepth: 2
    functionLinenumber: 1106
    functionLinenumberEnd: 1146
    functionName: read_ref_at_ent
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - set_read_ref_cutoffs
    - is_null_oid
    - DATE_MODE
    - show_date
    - _
    - warning
    - oideq
    linkageType: ''
    returnType: int
    signature: "int read_ref_at_ent(const char *refname,\n\t\t\t   struct object_id
      *ooid, struct object_id *noid,\n\t\t\t   const char *email UNUSED,\n\t\t\t   timestamp_t
      timestamp, int tz,\n\t\t\t   const char *message, void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_read_ref_cutoffs
      Src: /src/git/refs.c:1156,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1157,1
    - Dst: is_null_oid
      Src: /src/git/refs.c:1158,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 8
    argNames:
    - refname
    - ooid
    - noid
    - UNUSED
    - timestamp
    - tz
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1162
    functionName: read_ref_at_ent_oldest
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - is_null_oid
    - set_read_ref_cutoffs
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int read_ref_at_ent_oldest(const char *refname UNUSED,\n\t\t\t\t  struct
      object_id *ooid, struct object_id *noid,\n\t\t\t\t  const char *email UNUSED,\n\t\t\t\t
      \ timestamp_t timestamp, int tz,\n\t\t\t\t  const char *message, void *cb_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/refs.c:1171,1
    - Dst: refs_for_each_reflog_ent_reverse
      Src: /src/git/refs.c:1180,1
    - Dst: set_read_ref_cutoffs
      Src: /src/git/refs.c:1195,1
    - Dst: exit
      Src: /src/git/refs.c:1199,1
    - Dst: die
      Src: /src/git/refs.c:1201,1
    - Dst: _
      Src: /src/git/refs.c:1201,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/refs.c:1206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 10
    argNames:
    - refs
    - refname
    - flags
    - at_time
    - cnt
    - oid
    - msg
    - cutoff_time
    - cutoff_tz
    - cutoff_cnt
    argTypes:
    - struct ref_store*
    - char*
    - unsigned int
    - timestamp_t
    - int
    - struct object_id*
    - char**
    - timestamp_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1164
    functionDepth: 2
    functionLinenumber: 1164
    functionLinenumberEnd: 1209
    functionName: read_ref_at
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - refs_for_each_reflog_ent
    - exit
    - set_read_ref_cutoffs
    - refs_for_each_reflog_ent_reverse
    - _
    linkageType: ''
    returnType: int
    signature: "int read_ref_at(struct ref_store *refs, const char *refname,\n\t\tunsigned
      int flags, timestamp_t at_time, int cnt,\n\t\tstruct object_id *oid, char **msg,\n\t\ttimestamp_t
      *cutoff_time, int *cutoff_tz, int *cutoff_cnt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/refs.c:1216,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs.c:1218,1
    - Dst: string_list_init_dup
      Src: /src/git/refs.c:1221,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs.c:1224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - refs
    - flags
    - err
    argTypes:
    - struct ref_store*
    - unsigned int
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 1215
        line_start: 1215
        source_file: /src/git/refs.c
    constantsTouched: []
    func_position:
      end: 1227
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1227
    functionName: ref_store_transaction_begin
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - string_list_init_dup
    - assert
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct ref_transaction
    signature: "struct ref_transaction *ref_store_transaction_begin(struct ref_store
      *refs,\n\t\t\t\t\t\t    unsigned int flags,\n\t\t\t\t\t\t    struct strbuf *err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:1242,1
    - Dst: BUG
      Src: /src/git/refs.c:1245,1
    - Dst: free
      Src: /src/git/refs.c:1250,1
    - Dst: free
      Src: /src/git/refs.c:1251,1
    - Dst: free
      Src: /src/git/refs.c:1252,1
    - Dst: free
      Src: /src/git/refs.c:1253,1
    - Dst: free
      Src: /src/git/refs.c:1254,1
    - Dst: free
      Src: /src/git/refs.c:1255,1
    - Dst: free
      Src: /src/git/refs.c:1259,1
    - Dst: free
      Src: /src/git/refs.c:1260,1
    - Dst: string_list_clear
      Src: /src/git/refs.c:1262,1
    - Dst: free
      Src: /src/git/refs.c:1263,1
    - Dst: free
      Src: /src/git/refs.c:1264,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - transaction
    argTypes:
    - struct ref_transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1265
    functionName: ref_transaction_free
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    - BUG
    - free
    linkageType: ''
    returnType: void
    signature: void ref_transaction_free(struct ref_transaction *transaction)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:1273,1
    - Dst: BUG
      Src: /src/git/refs.c:1279,1
    - Dst: string_list_remove
      Src: /src/git/refs.c:1292,1
    - Dst: strbuf_detach
      Src: /src/git/refs.c:1296,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs.c:1297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - transaction
    - update_idx
    - err
    - details
    argTypes:
    - struct ref_transaction*
    - size_t
    - enum ref_transaction_error
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1303
    functionName: ref_transaction_maybe_set_rejected
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - string_list_remove
    - BUG
    - strbuf_detach
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: "int ref_transaction_maybe_set_rejected(struct ref_transaction *transaction,\n\t\t\t\t
      \      size_t update_idx,\n\t\t\t\t       enum ref_transaction_error err,\n\t\t\t\t
      \      struct strbuf *details)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:1319,1
    - Dst: BUG
      Src: /src/git/refs.c:1322,1
    - Dst: BUG
      Src: /src/git/refs.c:1324,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/refs.c:1326,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs.c:1327,1
    - Dst: xstrdup_or_null
      Src: /src/git/refs.c:1333,1
    - Dst: xstrdup_or_null
      Src: /src/git/refs.c:1334,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1336,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1338,1
    - Dst: xstrdup_or_null
      Src: /src/git/refs.c:1340,1
    - Dst: normalize_reflog_message
      Src: /src/git/refs.c:1341,1
    - Dst: oidcpy
      Src: /src/git/refs.c:1344,1
    - Dst: string_list_append
      Src: /src/git/refs.c:1352,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 10
    argNames:
    - transaction
    - refname
    - flags
    - new_oid
    - old_oid
    - peeled
    - new_target
    - old_target
    - committer_info
    - msg
    argTypes:
    - struct ref_transaction*
    - char*
    - unsigned int
    - struct object_id*
    - struct object_id*
    - struct object_id*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1305
    functionDepth: 3
    functionLinenumber: 1305
    functionLinenumberEnd: 1357
    functionName: ref_transaction_add_update
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - oidcpy
    - normalize_reflog_message
    - ALLOC_GROW
    - string_list_append
    - BUG
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: struct ref_update
    signature: "struct ref_update *ref_transaction_add_update(\n\t\tstruct ref_transaction
      *transaction,\n\t\tconst char *refname, unsigned int flags,\n\t\tconst struct
      object_id *new_oid,\n\t\tconst struct object_id *old_oid,\n\t\tconst struct
      object_id *peeled,\n\t\tconst char *new_target, const char *old_target,\n\t\tconst
      char *committer_info,\n\t\tconst char *msg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_pseudo_ref
      Src: /src/git/refs.c:1366,1
    - Dst: _
      Src: /src/git/refs.c:1369,1
    - Dst: _
      Src: /src/git/refs.c:1371,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:1372,1
    - Dst: is_null_oid
      Src: /src/git/refs.c:1374,1
    - Dst: check_refname_format
      Src: /src/git/refs.c:1375,1
    - Dst: refname_is_safe
      Src: /src/git/refs.c:1376,1
    - Dst: _
      Src: /src/git/refs.c:1379,1
    - Dst: _
      Src: /src/git/refs.c:1381,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:1382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - refname
    - new_oid
    - flags
    - err
    argTypes:
    - char*
    - struct object_id*
    - unsigned int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1359
    functionDepth: 4
    functionLinenumber: 1359
    functionLinenumberEnd: 1387
    functionName: transaction_refname_valid
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - refname_is_safe
    - is_null_oid
    - is_pseudo_ref
    - check_refname_format
    - _
    linkageType: ''
    returnType: int
    signature: "int transaction_refname_valid(const char *refname,\n\t\t\t\t     const
      struct object_id *new_oid,\n\t\t\t\t     unsigned int flags, struct strbuf *err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/refs.c:1400,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:1404,1
    - Dst: _
      Src: /src/git/refs.c:1404,1
    - Dst: transaction_refname_valid
      Src: /src/git/refs.c:1408,1
    - Dst: BUG
      Src: /src/git/refs.c:1412,1
    - Dst: is_null_oid
      Src: /src/git/refs.c:1424,1
    - Dst: parse_object
      Src: /src/git/refs.c:1426,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:1429,1
    - Dst: _
      Src: /src/git/refs.c:1430,1
    - Dst: oid_to_hex
      Src: /src/git/refs.c:1431,1
    - Dst: is_branch
      Src: /src/git/refs.c:1435,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:1436,1
    - Dst: _
      Src: /src/git/refs.c:1436,1
    - Dst: oid_to_hex
      Src: /src/git/refs.c:1437,1
    - Dst: peel_object
      Src: /src/git/refs.c:1442,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs.c:1448,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 9
    argNames:
    - transaction
    - refname
    - new_oid
    - old_oid
    - new_target
    - old_target
    - flags
    - msg
    - err
    argTypes:
    - struct ref_transaction*
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - char*
    - unsigned int
    - char*
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 1399
        line_start: 1399
        source_file: /src/git/refs.c
    constantsTouched: []
    func_position:
      end: 1453
      start: 1389
    functionDepth: 5
    functionLinenumber: 1389
    functionLinenumberEnd: 1453
    functionName: ref_transaction_update
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - transaction_refname_valid
    - assert
    - strbuf_addf
    - parse_object
    - is_branch
    - is_null_oid
    - strbuf_addstr
    - _
    - peel_object
    - ref_transaction_add_update
    - BUG
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error ref_transaction_update(struct ref_transaction
      *transaction,\n\t\t\t\t\t\t  const char *refname,\n\t\t\t\t\t\t  const struct
      object_id *new_oid,\n\t\t\t\t\t\t  const struct object_id *old_oid,\n\t\t\t\t\t\t
      \ const char *new_target,\n\t\t\t\t\t\t  const char *old_target,\n\t\t\t\t\t\t
      \ unsigned int flags, const char *msg,\n\t\t\t\t\t\t  struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/refs.c:1467,1
    - Dst: transaction_refname_valid
      Src: /src/git/refs.c:1472,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs.c:1475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - transaction
    - refname
    - new_oid
    - old_oid
    - committer_info
    - msg
    - index
    - err
    argTypes:
    - struct ref_transaction*
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - char*
    - uint64_t
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 1466
        line_start: 1466
        source_file: /src/git/refs.c
    constantsTouched: []
    func_position:
      end: 1488
      start: 1455
    functionDepth: 5
    functionLinenumber: 1455
    functionLinenumberEnd: 1488
    functionName: ref_transaction_update_reflog
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - ref_transaction_add_update
    - transaction_refname_valid
    - assert
    linkageType: ''
    returnType: int
    signature: "int ref_transaction_update_reflog(struct ref_transaction *transaction,\n\t\t\t\t
      \ const char *refname,\n\t\t\t\t  const struct object_id *new_oid,\n\t\t\t\t
      \ const struct object_id *old_oid,\n\t\t\t\t  const char *committer_info,\n\t\t\t\t
      \ const char *msg,\n\t\t\t\t  uint64_t index,\n\t\t\t\t  struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:1498,1
    - Dst: is_null_oid
      Src: /src/git/refs.c:1499,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:1500,1
    - Dst: ref_transaction_update
      Src: /src/git/refs.c:1503,1
    - Dst: null_oid
      Src: /src/git/refs.c:1504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 7
    argNames:
    - transaction
    - refname
    - new_oid
    - new_target
    - flags
    - msg
    - err
    argTypes:
    - struct ref_transaction*
    - char*
    - struct object_id*
    - char*
    - unsigned int
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1490
    functionDepth: 6
    functionLinenumber: 1490
    functionLinenumberEnd: 1506
    functionName: ref_transaction_create
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - BUG
    - strbuf_addf
    - ref_transaction_update
    - is_null_oid
    - null_oid
    linkageType: ''
    returnType: int
    signature: "int ref_transaction_create(struct ref_transaction *transaction,\n\t\t\t
      \  const char *refname,\n\t\t\t   const struct object_id *new_oid,\n\t\t\t   const
      char *new_target,\n\t\t\t   unsigned int flags, const char *msg,\n\t\t\t   struct
      strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/refs.c:1516,1
    - Dst: BUG
      Src: /src/git/refs.c:1517,1
    - Dst: BUG
      Src: /src/git/refs.c:1519,1
    - Dst: BUG
      Src: /src/git/refs.c:1521,1
    - Dst: ref_transaction_update
      Src: /src/git/refs.c:1522,1
    - Dst: null_oid
      Src: /src/git/refs.c:1523,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 7
    argNames:
    - transaction
    - refname
    - old_oid
    - old_target
    - flags
    - msg
    - err
    argTypes:
    - struct ref_transaction*
    - char*
    - struct object_id*
    - char*
    - unsigned int
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1508
    functionDepth: 6
    functionLinenumber: 1508
    functionLinenumberEnd: 1526
    functionName: ref_transaction_delete
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - null_oid
    - BUG
    - ref_transaction_update
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: "int ref_transaction_delete(struct ref_transaction *transaction,\n\t\t\t
      \  const char *refname,\n\t\t\t   const struct object_id *old_oid,\n\t\t\t   const
      char *old_target,\n\t\t\t   unsigned int flags,\n\t\t\t   const char *msg,\n\t\t\t
      \  struct strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:1536,1
    - Dst: BUG
      Src: /src/git/refs.c:1538,1
    - Dst: BUG
      Src: /src/git/refs.c:1540,1
    - Dst: ref_transaction_update
      Src: /src/git/refs.c:1541,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 6
    argNames:
    - transaction
    - refname
    - old_oid
    - old_target
    - flags
    - err
    argTypes:
    - struct ref_transaction*
    - char*
    - struct object_id*
    - char*
    - unsigned int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1528
    functionDepth: 6
    functionLinenumber: 1528
    functionLinenumberEnd: 1545
    functionName: ref_transaction_verify
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - BUG
    - ref_transaction_update
    linkageType: ''
    returnType: int
    signature: "int ref_transaction_verify(struct ref_transaction *transaction,\n\t\t\t
      \  const char *refname,\n\t\t\t   const struct object_id *old_oid,\n\t\t\t   const
      char *old_target,\n\t\t\t   unsigned int flags,\n\t\t\t   struct strbuf *err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ref_store_transaction_begin
      Src: /src/git/refs.c:1556,1
    - Dst: ref_transaction_update
      Src: /src/git/refs.c:1558,1
    - Dst: ref_transaction_commit
      Src: /src/git/refs.c:1560,1
    - Dst: ref_transaction_free
      Src: /src/git/refs.c:1562,1
    - Dst: _
      Src: /src/git/refs.c:1565,1
    - Dst: error
      Src: /src/git/refs.c:1569,1
    - Dst: die
      Src: /src/git/refs.c:1572,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:1577,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:1580,1
    - Dst: ref_transaction_free
      Src: /src/git/refs.c:1582,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 7
    argNames:
    - refs
    - msg
    - refname
    - new_oid
    - old_oid
    - flags
    - onerr
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - struct object_id*
    - struct object_id*
    - unsigned int
    - enum action_on_err
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1547
    functionDepth: 6
    functionLinenumber: 1547
    functionLinenumberEnd: 1584
    functionName: refs_update_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - error
    - strbuf_release
    - die
    - ref_transaction_update
    - ref_transaction_free
    - _
    - ref_store_transaction_begin
    linkageType: ''
    returnType: int
    signature: "int refs_update_ref(struct ref_store *refs, const char *msg,\n\t\t
      \   const char *refname, const struct object_id *new_oid,\n\t\t    const struct
      object_id *old_oid, unsigned int flags,\n\t\t    enum action_on_err onerr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:1602,1
    - Dst: skip_prefix
      Src: /src/git/refs.c:1612,1
    - Dst: strip_suffix
      Src: /src/git/refs.c:1618,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - refname
    - rule
    - len
    argTypes:
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1622
    functionName: match_parse_rule
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strip_suffix
    - skip_prefix
    - BUG
    linkageType: ''
    returnType: char
    signature: "char *match_parse_rule(const char *refname, const char *rule,\n\t\t\t\t
      \   size_t *len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: match_parse_rule
      Src: /src/git/refs.c:1637,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:1665,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:1666,1
    - Dst: cast_size_t_to_int
      Src: /src/git/refs.c:1667,1
    - Dst: refs_ref_exists
      Src: /src/git/refs.c:1669,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:1678,1
    - Dst: xmemdupz
      Src: /src/git/refs.c:1679,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:1683,1
    - Dst: xstrdup
      Src: /src/git/refs.c:1684,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - refs
    - refname
    - strict
    argTypes:
    - struct ref_store*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1624
    functionDepth: 2
    functionLinenumber: 1624
    functionLinenumberEnd: 1685
    functionName: refs_shorten_unambiguous_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strbuf_release
    - strbuf_reset
    - strbuf_addf
    - cast_size_t_to_int
    - match_parse_rule
    - refs_ref_exists
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *refs_shorten_unambiguous_ref(struct ref_store *refs,\n\t\t\t\t
      \  const char *refname, int strict)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs.c:1691,1
    - Dst: parse_config_key
      Src: /src/git/refs.c:1692,1
    - Dst: strcmp
      Src: /src/git/refs.c:1693,1
    - Dst: config_error_nonbool
      Src: /src/git/refs.c:1698,1
    - Dst: strvec_push
      Src: /src/git/refs.c:1701,1
    - Dst: strlen
      Src: /src/git/refs.c:1702,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - var
    - value
    - section
    - hide_refs
    argTypes:
    - char*
    - char*
    - char*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1687
    functionDepth: 1
    functionLinenumber: 1687
    functionLinenumberEnd: 1707
    functionName: parse_hide_refs_config
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_config_key
    - strlen
    - strcmp
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int parse_hide_refs_config(const char *var, const char *value, const
      char *section,\n\t\t\t   struct strvec *hide_refs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/refs.c:1734,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - refname
    - refname_full
    - hide_refs
    argTypes:
    - char*
    - char*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1739
    functionName: ref_is_hidden
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int ref_is_hidden(const char *refname, const char *refname_full,\n\t\t
      \ const struct strvec *hide_refs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1741
    functionDepth: 0
    functionLinenumber: 1741
    functionLinenumberEnd: 1763
    functionName: hidden_refs_to_excludes
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char **hidden_refs_to_excludes(const struct strvec *hide_refs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/refs.c:1773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1776
    functionName: get_namespaced_exclude_patterns
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strvec_pushf
    linkageType: ''
    returnType: char
    signature: "char **get_namespaced_exclude_patterns(const char **exclude_patterns,\n\t\t\t\t\t
      \    const char *namespace,\n\t\t\t\t\t     struct strvec *out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_list_find_insert_index
      Src: /src/git/refs.c:1791,1
    - Dst: starts_with
      Src: /src/git/refs.c:1795,1
    - Dst: string_list_has_string
      Src: /src/git/refs.c:1798,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - dirname
    - extras
    - skip
    argTypes:
    - char*
    - struct string_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1778
    functionDepth: 1
    functionLinenumber: 1778
    functionLinenumberEnd: 1802
    functionName: find_descendant_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - string_list_find_insert_index
    - string_list_has_string
    - starts_with
    linkageType: ''
    returnType: char
    signature: "char *find_descendant_ref(const char *dirname,\n\t\t\t\tconst struct
      string_list *extras,\n\t\t\t\tconst struct string_list *skip)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs.c:1809,1
    - Dst: fn
      Src: /src/git/refs.c:1817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - refs
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1804
    functionDepth: 1
    functionLinenumber: 1804
    functionLinenumberEnd: 1821
    functionName: refs_head_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - fn
    linkageType: ''
    returnType: int
    signature: int refs_head_ref(struct ref_store *refs, refs_for_each_cb fn, void
      *cb_data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/refs.c:1836,1
    - Dst: strvec_push
      Src: /src/git/refs.c:1841,1
    - Dst: strvec_pushf
      Src: /src/git/refs.c:1843,1
    - Dst: git_env_bool
      Src: /src/git/refs.c:1854,1
    - Dst: struct ref_store*::be::iterator_begin
      Src: /src/git/refs.c:1861,1
    - Dst: prefix_ref_iterator_begin
      Src: /src/git/refs.c:1867,1
    - Dst: strvec_clear
      Src: /src/git/refs.c:1869,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 5
    argNames:
    - refs
    - prefix
    - exclude_patterns
    - trim
    - flags
    argTypes:
    - struct ref_store*
    - char*
    - char**
    - int
    - enum refs_for_each_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1823
    functionDepth: 1
    functionLinenumber: 1823
    functionLinenumberEnd: 1872
    functionName: refs_ref_iterator_begin
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - git_env_bool
    - struct ref_store*::be::iterator_begin
    - strlen
    - strvec_clear
    - prefix_ref_iterator_begin
    - strvec_pushf
    linkageType: ''
    returnType: struct ref_iterator
    signature: "struct ref_iterator *refs_ref_iterator_begin(\n\t\tstruct ref_store
      *refs,\n\t\tconst char *prefix,\n\t\tconst char **exclude_patterns,\n\t\tint
      trim,\n\t\tenum refs_for_each_flag flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:1889,1
    - Dst: BUG
      Src: /src/git/refs.c:1895,1
    - Dst: strlen
      Src: /src/git/refs.c:1897,1
    - Dst: BUG
      Src: /src/git/refs.c:1899,1
    - Dst: starts_with
      Src: /src/git/refs.c:1903,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:1904,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:1906,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:1907,1
    - Dst: has_glob_specials
      Src: /src/git/refs.c:1909,1
    - Dst: strbuf_complete
      Src: /src/git/refs.c:1911,1
    - Dst: strbuf_addch
      Src: /src/git/refs.c:1913,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:1932,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:1934,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:1936,1
    - Dst: get_namespaced_exclude_patterns
      Src: /src/git/refs.c:1939,1
    - Dst: refs_ref_iterator_begin
      Src: /src/git/refs.c:1947,1
    - Dst: do_for_each_ref_iterator
      Src: /src/git/refs.c:1950,1
    - Dst: strvec_clear
      Src: /src/git/refs.c:1952,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:1953,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:1954,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 4
    argNames:
    - refs
    - cb
    - cb_data
    - opts
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    - struct refs_for_each_ref_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1874
    functionDepth: 2
    functionLinenumber: 1874
    functionLinenumberEnd: 1956
    functionName: refs_for_each_ref_ext
    functionSourceFile: /src/git/refs.c
    functionUses: 4
    functionsReached:
    - strbuf_release
    - refs_ref_iterator_begin
    - has_glob_specials
    - get_namespaced_exclude_patterns
    - starts_with
    - strbuf_addch
    - strlen
    - strvec_clear
    - strbuf_addstr
    - strbuf_complete
    - do_for_each_ref_iterator
    - BUG
    linkageType: ''
    returnType: int
    signature: "int refs_for_each_ref_ext(struct ref_store *refs,\n\t\t\t  refs_for_each_cb
      cb, void *cb_data,\n\t\t\t  const struct refs_for_each_ref_options *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_ref_ext
      Src: /src/git/refs.c:1961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - refs
    - cb
    - cb_data
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1958
    functionDepth: 3
    functionLinenumber: 1958
    functionLinenumberEnd: 1962
    functionName: refs_for_each_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    linkageType: ''
    returnType: int
    signature: int refs_for_each_ref(struct ref_store *refs, refs_for_each_cb cb,
      void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/refs.c:1969,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/refs.c:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - refs
    - cb
    - cb_data
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1964
    functionDepth: 3
    functionLinenumber: 1964
    functionLinenumberEnd: 1973
    functionName: refs_for_each_replace_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - strlen
    linkageType: ''
    returnType: int
    signature: int refs_for_each_replace_ref(struct ref_store *refs, refs_for_each_cb
      cb, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs.c:1980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 1981
    functionName: qsort_strcmp
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int qsort_strcmp(const void *va, const void *vb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_glob_special
      Src: /src/git/refs.c:1991,1
    - Dst: string_list_append
      Src: /src/git/refs.c:1992,1
    - Dst: strbuf_addch
      Src: /src/git/refs.c:2010,1
    - Dst: find_longest_prefixes_1
      Src: /src/git/refs.c:2011,1
    - Dst: strbuf_setlen
      Src: /src/git/refs.c:2012,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - out
    - prefix
    - patterns
    - nr
    argTypes:
    - struct string_list*
    - struct strbuf*
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 2016
    functionName: find_longest_prefixes_1
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - find_longest_prefixes_1
    - is_glob_special
    - strbuf_setlen
    - strbuf_addch
    - string_list_append
    linkageType: ''
    returnType: void
    signature: "void find_longest_prefixes_1(struct string_list *out,\n\t\t\t\t  struct
      strbuf *prefix,\n\t\t\t\t  const char **patterns, size_t nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushv
      Src: /src/git/refs.c:2024,1
    - Dst: QSORT
      Src: /src/git/refs.c:2025,1
    - Dst: find_longest_prefixes_1
      Src: /src/git/refs.c:2027,1
    - Dst: strvec_clear
      Src: /src/git/refs.c:2029,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - patterns
    argTypes:
    - struct string_list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2018
    functionDepth: 2
    functionLinenumber: 2018
    functionLinenumberEnd: 2031
    functionName: find_longest_prefixes
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - find_longest_prefixes_1
    - strvec_pushv
    - strvec_clear
    - QSORT
    linkageType: ''
    returnType: void
    signature: "void find_longest_prefixes(struct string_list *out,\n\t\t\t\t  const
      char **patterns)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:2043,1
    - Dst: find_longest_prefixes
      Src: /src/git/refs.c:2045,1
    - Dst: for_each_string_list_item
      Src: /src/git/refs.c:2047,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/refs.c:2051,1
    - Dst: string_list_clear
      Src: /src/git/refs.c:2057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ref_store
    - prefixes
    - opts
    - cb
    - cb_data
    argTypes:
    - struct ref_store*
    - char**
    - struct refs_for_each_ref_options*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2033
    functionDepth: 3
    functionLinenumber: 2033
    functionLinenumberEnd: 2059
    functionName: refs_for_each_ref_in_prefixes
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - refs_for_each_ref_ext
    - BUG
    - find_longest_prefixes
    linkageType: ''
    returnType: int
    signature: "int refs_for_each_ref_in_prefixes(struct ref_store *ref_store,\n\t\t\t\t
      \ const char **prefixes,\n\t\t\t\t  const struct refs_for_each_ref_options *opts,\n\t\t\t\t
      \ refs_for_each_cb cb, void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2069,1
    - Dst: strbuf_read_file
      Src: /src/git/refs.c:2071,1
    - Dst: parse_loose_ref_contents
      Src: /src/git/refs.c:2076,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2080,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - ref_store
    - refname
    - oid
    - referent
    - type
    - failure_errno
    argTypes:
    - struct ref_store*
    - char*
    - struct object_id*
    - struct strbuf*
    - unsigned int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2061
    functionDepth: 1
    functionLinenumber: 2061
    functionLinenumberEnd: 2083
    functionName: refs_read_special_head
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_read_file
    - strbuf_addf
    - parse_loose_ref_contents
    linkageType: ''
    returnType: int
    signature: "int refs_read_special_head(struct ref_store *ref_store,\n\t\t\t\t
      \ const char *refname, struct object_id *oid,\n\t\t\t\t  struct strbuf *referent,
      unsigned int *type,\n\t\t\t\t  int *failure_errno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/refs.c:2089,1
    - Dst: is_pseudo_ref
      Src: /src/git/refs.c:2090,1
    - Dst: refs_read_special_head
      Src: /src/git/refs.c:2091,1
    - Dst: struct ref_store*::be::read_raw_ref
      Src: /src/git/refs.c:2094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ref_store
    - refname
    - oid
    - referent
    - type
    - failure_errno
    argTypes:
    - struct ref_store*
    - char*
    - struct object_id*
    - struct strbuf*
    - unsigned int*
    - int*
    assertStmts:
    - condition: (failure_errno)
      pos:
        line_end: 2088
        line_start: 2088
        source_file: /src/git/refs.c
    constantsTouched: []
    func_position:
      end: 2096
      start: 2085
    functionDepth: 2
    functionLinenumber: 2085
    functionLinenumberEnd: 2096
    functionName: refs_read_raw_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct ref_store*::be::read_raw_ref
    - is_pseudo_ref
    - assert
    - refs_read_special_head
    linkageType: ''
    returnType: int
    signature: "int refs_read_raw_ref(struct ref_store *ref_store, const char *refname,\n\t\t
      \     struct object_id *oid, struct strbuf *referent,\n\t\t      unsigned int
      *type, int *failure_errno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::read_symbolic_ref
      Src: /src/git/refs.c:2101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ref_store
    - refname
    - referent
    argTypes:
    - struct ref_store*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2098
    functionDepth: 0
    functionLinenumber: 2098
    functionLinenumberEnd: 2102
    functionName: refs_read_symbolic_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct ref_store*::be::read_symbolic_ref
    linkageType: ''
    returnType: int
    signature: "int refs_read_symbolic_ref(struct ref_store *ref_store, const char
      *refname,\n\t\t\t   struct strbuf *referent)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: check_refname_format
      Src: /src/git/refs.c:2122,1
    - Dst: refname_is_safe
      Src: /src/git/refs.c:2124,1
    - Dst: refs_read_raw_ref
      Src: /src/git/refs.c:2142,1
    - Dst: oidclr
      Src: /src/git/refs.c:2160,1
    - Dst: oidclr
      Src: /src/git/refs.c:2170,1
    - Dst: oidclr
      Src: /src/git/refs.c:2178,1
    - Dst: check_refname_format
      Src: /src/git/refs.c:2181,1
    - Dst: refname_is_safe
      Src: /src/git/refs.c:2183,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 5
    argNames:
    - refs
    - refname
    - resolve_flags
    - oid
    - flags
    argTypes:
    - struct ref_store*
    - char*
    - int
    - struct object_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2104
    functionDepth: 4
    functionLinenumber: 2104
    functionLinenumberEnd: 2191
    functionName: refs_resolve_ref_unsafe
    functionSourceFile: /src/git/refs.c
    functionUses: 7
    functionsReached:
    - oidclr
    - refs_read_raw_ref
    - refname_is_safe
    - check_refname_format
    linkageType: ''
    returnType: char
    signature: "char *refs_resolve_ref_unsafe(struct ref_store *refs,\n\t\t\t\t    const
      char *refname,\n\t\t\t\t    int resolve_flags,\n\t\t\t\t    struct object_id
      *oid,\n\t\t\t\t    int *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2198,1
    - Dst: write_file
      Src: /src/git/refs.c:2199,1
    - Dst: adjust_shared_perm
      Src: /src/git/refs.c:2200,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:2202,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2203,1
    - Dst: safe_create_dir
      Src: /src/git/refs.c:2204,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:2207,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2208,1
    - Dst: write_file
      Src: /src/git/refs.c:2209,1
    - Dst: adjust_shared_perm
      Src: /src/git/refs.c:2210,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - repo
    - refdir
    - refs_heads_content
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2193
    functionDepth: 1
    functionLinenumber: 2193
    functionLinenumberEnd: 2214
    functionName: refs_create_refdir_stubs
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - write_file
    - strbuf_reset
    - strbuf_addf
    - safe_create_dir
    - adjust_shared_perm
    linkageType: ''
    returnType: void
    signature: "void refs_create_refdir_stubs(struct repository *repo, const char
      *refdir,\n\t\t\t      const char *refs_heads_content)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::create_on_disk
      Src: /src/git/refs.c:2219,1
    - Dst: refs_create_refdir_stubs
      Src: /src/git/refs.c:2224,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/refs.c:2226,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2228,1
    - Dst: refs_create_refdir_stubs
      Src: /src/git/refs.c:2229,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - refs
    - flags
    - err
    argTypes:
    - struct ref_store*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2217
    functionDepth: 2
    functionLinenumber: 2217
    functionLinenumberEnd: 2235
    functionName: ref_store_create_on_disk
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - ref_storage_format_by_name
    - refs_create_refdir_stubs
    - struct ref_store*::be::create_on_disk
    linkageType: ''
    returnType: int
    signature: int ref_store_create_on_disk(struct ref_store *refs, int flags, struct
      strbuf *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::remove_on_disk
      Src: /src/git/refs.c:2239,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/refs.c:2242,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2253,1
    - Dst: unlink
      Src: /src/git/refs.c:2254,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2255,1
    - Dst: strerror
      Src: /src/git/refs.c:2256,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:2259,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2261,1
    - Dst: unlink
      Src: /src/git/refs.c:2262,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2263,1
    - Dst: strerror
      Src: /src/git/refs.c:2264,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:2267,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2269,1
    - Dst: rmdir
      Src: /src/git/refs.c:2270,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2271,1
    - Dst: strerror
      Src: /src/git/refs.c:2272,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - refs
    - err
    argTypes:
    - struct ref_store*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2237
    functionDepth: 1
    functionLinenumber: 2237
    functionLinenumberEnd: 2280
    functionName: ref_store_remove_on_disk
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - strbuf_addf
    - strerror
    - struct ref_store*::be::remove_on_disk
    - ref_storage_format_by_name
    - rmdir
    - unlink
    linkageType: ''
    returnType: int
    signature: int ref_store_remove_on_disk(struct ref_store *refs, struct strbuf
      *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_submodule_ref_store
      Src: /src/git/refs.c:2289,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs.c:2293,1
    - Dst: is_null_oid
      Src: /src/git/refs.c:2294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - r
    - submodule
    - refname
    - oid
    argTypes:
    - struct repository*
    - char*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2282
    functionDepth: 5
    functionLinenumber: 2282
    functionLinenumberEnd: 2297
    functionName: repo_resolve_gitlink_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - repo_get_submodule_ref_store
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: "int repo_resolve_gitlink_ref(struct repository *r,\n\t\t\t     const
      char *submodule, const char *refname,\n\t\t\t     struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get_entry
      Src: /src/git/refs.c:2312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - map
    - name
    argTypes:
    - struct strmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2303
    functionDepth: 1
    functionLinenumber: 2303
    functionLinenumberEnd: 2314
    functionName: lookup_ref_store_map
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strmap_get_entry
    linkageType: ''
    returnType: struct ref_store
    signature: "struct ref_store *lookup_ref_store_map(struct strmap *map,\n\t\t\t\t\t
      \     const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_settings_get_log_all_ref_updates
      Src: /src/git/refs.c:2329,1
    - Dst: find_ref_storage_backend
      Src: /src/git/refs.c:2332,1
    - Dst: BUG
      Src: /src/git/refs.c:2334,1
    - Dst: struct ref_storage_be*::init
      Src: /src/git/refs.c:2340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - repo
    - format
    - gitdir
    - flags
    argTypes:
    - struct repository*
    - enum ref_storage_format
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2320
    functionDepth: 1
    functionLinenumber: 2320
    functionLinenumberEnd: 2343
    functionName: ref_store_init
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - find_ref_storage_backend
    - BUG
    - repo_settings_get_log_all_ref_updates
    - struct ref_storage_be*::init
    linkageType: ''
    returnType: struct ref_store
    signature: "struct ref_store *ref_store_init(struct repository *repo,\n\t\t\t\t\tenum
      ref_storage_format format,\n\t\t\t\t\tconst char *gitdir,\n\t\t\t\t\tunsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::release
      Src: /src/git/refs.c:2347,1
    - Dst: free
      Src: /src/git/refs.c:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ref_store
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2349
    functionName: ref_store_release
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct ref_store*::be::release
    - free
    linkageType: ''
    returnType: void
    signature: void ref_store_release(struct ref_store *ref_store)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:2357,1
    - Dst: ref_store_init
      Src: /src/git/refs.c:2359,1
    - Dst: maybe_debug_wrap_ref_store
      Src: /src/git/refs.c:2361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2351
    functionDepth: 2
    functionLinenumber: 2351
    functionLinenumberEnd: 2363
    functionName: get_main_ref_store
    functionSourceFile: /src/git/refs.c
    functionUses: 4
    functionsReached:
    - ref_store_init
    - BUG
    - maybe_debug_wrap_ref_store
    linkageType: ''
    returnType: struct ref_store
    signature: struct ref_store *get_main_ref_store(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strmap_init
      Src: /src/git/refs.c:2375,1
    - Dst: strmap_put
      Src: /src/git/refs.c:2376,1
    - Dst: BUG
      Src: /src/git/refs.c:2377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - map
    - type
    - refs
    - name
    argTypes:
    - struct strmap*
    - char*
    - struct ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2378
    functionName: register_ref_store_map
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strmap_put
    - BUG
    - strmap_init
    linkageType: ''
    returnType: void
    signature: "void register_ref_store_map(struct strmap *map,\n\t\t\t\t   const
      char *type,\n\t\t\t\t   struct ref_store *refs,\n\t\t\t\t   const char *name)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/refs.c:2392,1
    - Dst: is_dir_sep
      Src: /src/git/refs.c:2393,1
    - Dst: xmemdupz
      Src: /src/git/refs.c:2400,1
    - Dst: lookup_ref_store_map
      Src: /src/git/refs.c:2402,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:2406,1
    - Dst: is_nonbare_repository_dir
      Src: /src/git/refs.c:2407,1
    - Dst: submodule_to_gitdir
      Src: /src/git/refs.c:2410,1
    - Dst: xmalloc
      Src: /src/git/refs.c:2413,1
    - Dst: repo_submodule_init
      Src: /src/git/refs.c:2415,1
    - Dst: null_oid
      Src: /src/git/refs.c:2416,1
    - Dst: free
      Src: /src/git/refs.c:2417,1
    - Dst: ref_store_init
      Src: /src/git/refs.c:2420,1
    - Dst: register_ref_store_map
      Src: /src/git/refs.c:2423,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2427,1
    - Dst: free
      Src: /src/git/refs.c:2428,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - repo
    - submodule
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2380
    functionDepth: 2
    functionLinenumber: 2380
    functionLinenumberEnd: 2431
    functionName: repo_get_submodule_ref_store
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - register_ref_store_map
    - xmemdupz
    - strbuf_release
    - is_dir_sep
    - repo_submodule_init
    - ref_store_init
    - submodule_to_gitdir
    - strlen
    - xmalloc
    - strbuf_addstr
    - lookup_ref_store_map
    - free
    - is_nonbare_repository_dir
    - null_oid
    linkageType: ''
    returnType: struct ref_store
    signature: "struct ref_store *repo_get_submodule_ref_store(struct repository *repo,\n\t\t\t\t\t
      \      const char *submodule)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_main_ref_store
      Src: /src/git/refs.c:2439,1
    - Dst: lookup_ref_store_map
      Src: /src/git/refs.c:2442,1
    - Dst: repo_common_path_append
      Src: /src/git/refs.c:2448,1
    - Dst: ref_store_init
      Src: /src/git/refs.c:2450,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2452,1
    - Dst: ref_store_init
      Src: /src/git/refs.c:2454,1
    - Dst: register_ref_store_map
      Src: /src/git/refs.c:2459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - wt
    argTypes:
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2433
    functionDepth: 3
    functionLinenumber: 2433
    functionLinenumberEnd: 2463
    functionName: get_worktree_ref_store
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - register_ref_store_map
    - strbuf_release
    - repo_common_path_append
    - ref_store_init
    - lookup_ref_store_map
    - get_main_ref_store
    linkageType: ''
    returnType: struct ref_store
    signature: struct ref_store *get_worktree_ref_store(const struct worktree *wt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/refs.c:2470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - refs
    - repo
    - path
    - be
    argTypes:
    - struct ref_store*
    - struct repository*
    - char*
    - struct ref_storage_be*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2465
    functionDepth: 1
    functionLinenumber: 2465
    functionLinenumberEnd: 2471
    functionName: base_ref_store_init
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void base_ref_store_init(struct ref_store *refs, struct repository
      *repo,\n\t\t\t const char *path, const struct ref_storage_be *be)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::optimize
      Src: /src/git/refs.c:2475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - opts
    argTypes:
    - struct ref_store*
    - struct refs_optimize_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2473
    functionDepth: 0
    functionLinenumber: 2473
    functionLinenumberEnd: 2476
    functionName: refs_optimize
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct ref_store*::be::optimize
    linkageType: ''
    returnType: int
    signature: int refs_optimize(struct ref_store *refs, struct refs_optimize_opts
      *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::optimize_required
      Src: /src/git/refs.c:2482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - refs
    - opts
    - required
    argTypes:
    - struct ref_store*
    - struct refs_optimize_opts*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2478
    functionDepth: 0
    functionLinenumber: 2478
    functionLinenumberEnd: 2483
    functionName: refs_optimize_required
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct ref_store*::be::optimize_required
    linkageType: ''
    returnType: int
    signature: "int refs_optimize_required(struct ref_store *refs,\n\t\t\t   struct
      refs_optimize_opts *opts,\n\t\t\t   bool *required)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/refs.c:2490,1
    - Dst: peel_object
      Src: /src/git/refs.c:2494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - repo
    - ref
    - peeled_oid
    argTypes:
    - struct repository*
    - struct reference*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2485
    functionDepth: 1
    functionLinenumber: 2485
    functionLinenumberEnd: 2495
    functionName: reference_get_peeled_oid
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - peel_object
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int reference_get_peeled_oid(struct repository *repo,\n\t\t\t     const
      struct reference *ref,\n\t\t\t     struct object_id *peeled_oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_update_symref_extended
      Src: /src/git/refs.c:2500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - refs
    - ref
    - target
    - logmsg
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2501
      start: 2497
    functionDepth: 1
    functionLinenumber: 2497
    functionLinenumberEnd: 2501
    functionName: refs_update_symref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_update_symref_extended
    linkageType: ''
    returnType: int
    signature: "int refs_update_symref(struct ref_store *refs, const char *ref,\n\t\t
      \      const char *target, const char *logmsg)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ref_store_transaction_begin
      Src: /src/git/refs.c:2511,1
    - Dst: error
      Src: /src/git/refs.c:2514,1
    - Dst: ref_transaction_create
      Src: /src/git/refs.c:2518,1
    - Dst: ref_transaction_prepare
      Src: /src/git/refs.c:2521,1
    - Dst: ref_transaction_update
      Src: /src/git/refs.c:2525,1
    - Dst: ref_transaction_prepare
      Src: /src/git/refs.c:2528,1
    - Dst: refs_read_symbolic_ref
      Src: /src/git/refs.c:2532,1
    - Dst: refs_read_ref
      Src: /src/git/refs.c:2534,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:2535,1
    - Dst: oid_to_hex
      Src: /src/git/refs.c:2535,1
    - Dst: ref_transaction_commit
      Src: /src/git/refs.c:2543,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2547,1
    - Dst: ref_transaction_free
      Src: /src/git/refs.c:2549,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 6
    argNames:
    - refs
    - ref
    - target
    - logmsg
    - referent
    - create_only
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2503
    functionDepth: 7
    functionLinenumber: 2503
    functionLinenumberEnd: 2552
    functionName: refs_update_symref_extended
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - error
    - ref_transaction_commit
    - strbuf_release
    - oid_to_hex
    - refs_read_symbolic_ref
    - refs_read_ref
    - ref_transaction_update
    - ref_transaction_prepare
    - ref_transaction_free
    - strbuf_addstr
    - ref_transaction_create
    - ref_store_transaction_begin
    linkageType: ''
    returnType: int
    signature: "int refs_update_symref_extended(struct ref_store *refs, const char
      *ref,\n\t\t       const char *target, const char *logmsg,\n\t\t       struct
      strbuf *referent, int create_only)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/refs.c:2564,1
    - Dst: strcmp
      Src: /src/git/refs.c:2567,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2571,1
    - Dst: _
      Src: /src/git/refs.c:2572,1
    - Dst: BUG
      Src: /src/git/refs.c:2576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - refnames
    - err
    argTypes:
    - struct string_list*
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 2563
        line_start: 2563
        source_file: /src/git/refs.c
    constantsTouched: []
    func_position:
      end: 2580
      start: 2559
    functionDepth: 1
    functionLinenumber: 2559
    functionLinenumberEnd: 2580
    functionName: ref_update_reject_duplicates
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - assert
    - strbuf_addf
    - strcmp
    - _
    - BUG
    linkageType: ''
    returnType: int
    signature: "int ref_update_reject_duplicates(struct string_list *refnames,\n\t\t\t\t\tstruct
      strbuf *err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/refs.c:2605,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2608,1
    - Dst: oid_to_hex
      Src: /src/git/refs.c:2608,1
    - Dst: null_oid
      Src: /src/git/refs.c:2608,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2610,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2612,1
    - Dst: oid_to_hex
      Src: /src/git/refs.c:2612,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2615,1
    - Dst: oid_to_hex
      Src: /src/git/refs.c:2615,1
    - Dst: null_oid
      Src: /src/git/refs.c:2615,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2617,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2619,1
    - Dst: oid_to_hex
      Src: /src/git/refs.c:2619,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2621,1
    - Dst: write_in_full
      Src: /src/git/refs.c:2623,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - hook_stdin_fd
    - pp_cb
    - pp_task_cb
    argTypes:
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2587
    functionDepth: 1
    functionLinenumber: 2587
    functionLinenumberEnd: 2628
    functionName: transaction_hook_feed_stdin
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - strbuf_reset
    - strbuf_addf
    - write_in_full
    - null_oid
    linkageType: ''
    returnType: int
    signature: int transaction_hook_feed_stdin(int hook_stdin_fd, void *pp_cb, void
      *pp_task_cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs.c:2633,1
    - Dst: strbuf_init
      Src: /src/git/refs.c:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - feed_pipe_ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2637
    functionName: transaction_feed_cb_data_alloc
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_init
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void *transaction_feed_cb_data_alloc(void *feed_pipe_ctx UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/refs.c:2644,1
    - Dst: free
      Src: /src/git/refs.c:2645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2639
    functionDepth: 1
    functionLinenumber: 2639
    functionLinenumberEnd: 2646
    functionName: transaction_feed_cb_data_free
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void transaction_feed_cb_data_free(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/refs.c:2654,1
    - Dst: run_hooks_opt
      Src: /src/git/refs.c:2661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - transaction
    - state
    argTypes:
    - struct ref_transaction*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2648
    functionDepth: 1
    functionLinenumber: 2648
    functionLinenumberEnd: 2664
    functionName: run_transaction_hook
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_hooks_opt
    linkageType: ''
    returnType: int
    signature: "int run_transaction_hook(struct ref_transaction *transaction,\n\t\t\t\tconst
      char *state)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:2677,1
    - Dst: BUG
      Src: /src/git/refs.c:2680,1
    - Dst: BUG
      Src: /src/git/refs.c:2683,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:2688,1
    - Dst: _
      Src: /src/git/refs.c:2689,1
    - Dst: string_list_sort
      Src: /src/git/refs.c:2693,1
    - Dst: ref_update_reject_duplicates
      Src: /src/git/refs.c:2694,1
    - Dst: run_transaction_hook
      Src: /src/git/refs.c:2698,1
    - Dst: ref_transaction_abort
      Src: /src/git/refs.c:2700,1
    - Dst: die
      Src: /src/git/refs.c:2701,1
    - Dst: _
      Src: /src/git/refs.c:2701,1
    - Dst: struct ref_store*::be::transaction_prepare
      Src: /src/git/refs.c:2704,1
    - Dst: run_transaction_hook
      Src: /src/git/refs.c:2708,1
    - Dst: ref_transaction_abort
      Src: /src/git/refs.c:2710,1
    - Dst: die
      Src: /src/git/refs.c:2711,1
    - Dst: _
      Src: /src/git/refs.c:2711,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - transaction
    - err
    argTypes:
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2666
    functionDepth: 2
    functionLinenumber: 2666
    functionLinenumberEnd: 2715
    functionName: ref_transaction_prepare
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - ref_transaction_abort
    - die
    - string_list_sort
    - strbuf_addstr
    - _
    - ref_update_reject_duplicates
    - struct ref_store*::be::transaction_prepare
    - BUG
    - run_transaction_hook
    linkageType: ''
    returnType: int
    signature: "int ref_transaction_prepare(struct ref_transaction *transaction,\n\t\t\t
      \   struct strbuf *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::transaction_abort
      Src: /src/git/refs.c:2728,1
    - Dst: BUG
      Src: /src/git/refs.c:2731,1
    - Dst: BUG
      Src: /src/git/refs.c:2734,1
    - Dst: run_transaction_hook
      Src: /src/git/refs.c:2738,1
    - Dst: ref_transaction_free
      Src: /src/git/refs.c:2740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - transaction
    - err
    argTypes:
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2742
    functionName: ref_transaction_abort
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - struct ref_store*::be::transaction_abort
    - ref_transaction_free
    - BUG
    - run_transaction_hook
    linkageType: ''
    returnType: int
    signature: "int ref_transaction_abort(struct ref_transaction *transaction,\n\t\t\t
      \ struct strbuf *err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ref_transaction_prepare
      Src: /src/git/refs.c:2753,1
    - Dst: BUG
      Src: /src/git/refs.c:2761,1
    - Dst: BUG
      Src: /src/git/refs.c:2764,1
    - Dst: struct ref_store*::be::transaction_finish
      Src: /src/git/refs.c:2768,1
    - Dst: run_transaction_hook
      Src: /src/git/refs.c:2770,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - transaction
    - err
    argTypes:
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2744
    functionDepth: 3
    functionLinenumber: 2744
    functionLinenumberEnd: 2772
    functionName: ref_transaction_commit
    functionSourceFile: /src/git/refs.c
    functionUses: 3
    functionsReached:
    - struct ref_store*::be::transaction_finish
    - ref_transaction_prepare
    - BUG
    - run_transaction_hook
    linkageType: ''
    returnType: int
    signature: "int ref_transaction_commit(struct ref_transaction *transaction,\n\t\t\t
      \  struct strbuf *err)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/refs.c:2795,1
    - Dst: strset_init
      Src: /src/git/refs.c:2797,1
    - Dst: strset_init
      Src: /src/git/refs.c:2798,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:2808,1
    - Dst: strchr
      Src: /src/git/refs.c:2810,1
    - Dst: strchr
      Src: /src/git/refs.c:2810,1
    - Dst: strbuf_add
      Src: /src/git/refs.c:2820,1
    - Dst: string_list_has_string
      Src: /src/git/refs.c:2827,1
    - Dst: strset_add
      Src: /src/git/refs.c:2835,1
    - Dst: strset_contains
      Src: /src/git/refs.c:2839,1
    - Dst: refs_read_raw_ref
      Src: /src/git/refs.c:2840,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2843,1
    - Dst: _
      Src: /src/git/refs.c:2843,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs.c:2846,1
    - Dst: strset_remove
      Src: /src/git/refs.c:2849,1
    - Dst: strset_add
      Src: /src/git/refs.c:2850,1
    - Dst: string_list_has_string
      Src: /src/git/refs.c:2857,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2858,1
    - Dst: _
      Src: /src/git/refs.c:2858,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs.c:2861,1
    - Dst: strset_remove
      Src: /src/git/refs.c:2864,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:2880,1
    - Dst: strbuf_addch
      Src: /src/git/refs.c:2881,1
    - Dst: refs_ref_iterator_begin
      Src: /src/git/refs.c:2887,1
    - Dst: ref_iterator_seek
      Src: /src/git/refs.c:2889,1
    - Dst: ref_iterator_advance
      Src: /src/git/refs.c:2893,1
    - Dst: string_list_has_string
      Src: /src/git/refs.c:2895,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2897,1
    - Dst: _
      Src: /src/git/refs.c:2897,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs.c:2900,1
    - Dst: BUG
      Src: /src/git/refs.c:2909,1
    - Dst: find_descendant_ref
      Src: /src/git/refs.c:2912,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2914,1
    - Dst: _
      Src: /src/git/refs.c:2914,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs.c:2917,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2930,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:2931,1
    - Dst: strset_clear
      Src: /src/git/refs.c:2932,1
    - Dst: strset_clear
      Src: /src/git/refs.c:2933,1
    - Dst: ref_iterator_free
      Src: /src/git/refs.c:2934,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 76
    argCount: 7
    argNames:
    - refs
    - refnames
    - extras
    - skip
    - transaction
    - initial_transaction
    - err
    argTypes:
    - struct ref_store*
    - struct string_list*
    - struct string_list*
    - struct string_list*
    - struct ref_transaction*
    - unsigned int
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 2794
        line_start: 2794
        source_file: /src/git/refs.c
    constantsTouched: []
    func_position:
      end: 2936
      start: 2774
    functionDepth: 3
    functionLinenumber: 2774
    functionLinenumberEnd: 2936
    functionName: refs_verify_refnames_available
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_read_raw_ref
    - strset_contains
    - strbuf_addf
    - strchr
    - ref_transaction_maybe_set_rejected
    - strset_remove
    - strbuf_release
    - strbuf_addstr
    - ref_iterator_seek
    - refs_ref_iterator_begin
    - strset_clear
    - _
    - ref_iterator_advance
    - strset_init
    - strset_add
    - strbuf_add
    - assert
    - strbuf_reset
    - find_descendant_ref
    - strbuf_addch
    - string_list_has_string
    - ref_iterator_free
    - BUG
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error refs_verify_refnames_available(struct ref_store
      *refs,\n\t\t\t\t\t  const struct string_list *refnames,\n\t\t\t\t\t  const struct
      string_list *extras,\n\t\t\t\t\t  const struct string_list *skip,\n\t\t\t\t\t
      \ struct ref_transaction *transaction,\n\t\t\t\t\t  unsigned int initial_transaction,\n\t\t\t\t\t
      \ struct strbuf *err)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/refs.c:2808,1
    - Dst: strchr
      Src: /src/git/refs.c:2810,1
    - Dst: strchr
      Src: /src/git/refs.c:2810,1
    - Dst: strbuf_add
      Src: /src/git/refs.c:2820,1
    - Dst: string_list_has_string
      Src: /src/git/refs.c:2827,1
    - Dst: strset_add
      Src: /src/git/refs.c:2835,1
    - Dst: strset_contains
      Src: /src/git/refs.c:2839,1
    - Dst: refs_read_raw_ref
      Src: /src/git/refs.c:2840,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2843,1
    - Dst: _
      Src: /src/git/refs.c:2843,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs.c:2846,1
    - Dst: strset_remove
      Src: /src/git/refs.c:2849,1
    - Dst: strset_add
      Src: /src/git/refs.c:2850,1
    - Dst: string_list_has_string
      Src: /src/git/refs.c:2857,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2858,1
    - Dst: _
      Src: /src/git/refs.c:2858,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs.c:2861,1
    - Dst: strset_remove
      Src: /src/git/refs.c:2864,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:2880,1
    - Dst: strbuf_addch
      Src: /src/git/refs.c:2881,1
    - Dst: refs_ref_iterator_begin
      Src: /src/git/refs.c:2887,1
    - Dst: ref_iterator_seek
      Src: /src/git/refs.c:2889,1
    - Dst: ref_iterator_advance
      Src: /src/git/refs.c:2893,1
    - Dst: string_list_has_string
      Src: /src/git/refs.c:2895,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2897,1
    - Dst: _
      Src: /src/git/refs.c:2897,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs.c:2900,1
    - Dst: BUG
      Src: /src/git/refs.c:2909,1
    - Dst: find_descendant_ref
      Src: /src/git/refs.c:2912,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:2914,1
    - Dst: _
      Src: /src/git/refs.c:2914,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs.c:2917,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2800
    functionDepth: 3
    functionLinenumber: 2800
    functionLinenumberEnd: 2925
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - strset_remove
    - refs_read_raw_ref
    - strset_contains
    - refs_ref_iterator_begin
    - strbuf_reset
    - BUG
    - strbuf_addf
    - find_descendant_ref
    - strchr
    - strbuf_addch
    - ref_transaction_maybe_set_rejected
    - string_list_has_string
    - strbuf_addstr
    - _
    - ref_iterator_seek
    - ref_iterator_advance
    - strset_add
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, refnames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_verify_refnames_available
      Src: /src/git/refs.c:2952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - refs
    - refname
    - extras
    - skip
    - initial_transaction
    - err
    argTypes:
    - struct ref_store*
    - char*
    - struct string_list*
    - struct string_list*
    - unsigned int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2938
    functionDepth: 4
    functionLinenumber: 2938
    functionLinenumberEnd: 2954
    functionName: refs_verify_refname_available
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_verify_refnames_available
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error refs_verify_refname_available(\n\tstruct
      ref_store *refs,\n\tconst char *refname,\n\tconst struct string_list *extras,\n\tconst
      struct string_list *skip,\n\tunsigned int initial_transaction,\n\tstruct strbuf
      *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct do_for_each_reflog_help*::fn
      Src: /src/git/refs.c:2964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2961
    functionDepth: 0
    functionLinenumber: 2961
    functionLinenumberEnd: 2965
    functionName: do_for_each_reflog_helper
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct do_for_each_reflog_help*::fn
    linkageType: ''
    returnType: int
    signature: int do_for_each_reflog_helper(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::reflog_iterator_begin
      Src: /src/git/refs.c:2972,1
    - Dst: do_for_each_ref_iterator
      Src: /src/git/refs.c:2974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - refs
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - each_reflog_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2975
      start: 2967
    functionDepth: 1
    functionLinenumber: 2967
    functionLinenumberEnd: 2975
    functionName: refs_for_each_reflog
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - do_for_each_ref_iterator
    - struct ref_store*::be::reflog_iterator_begin
    linkageType: ''
    returnType: int
    signature: int refs_for_each_reflog(struct ref_store *refs, each_reflog_fn fn,
      void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::for_each_reflog_ent_reverse
      Src: /src/git/refs.c:2982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - refs
    - refname
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - char*
    - each_reflog_ent_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2977
    functionDepth: 0
    functionLinenumber: 2977
    functionLinenumberEnd: 2984
    functionName: refs_for_each_reflog_ent_reverse
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - struct ref_store*::be::for_each_reflog_ent_reverse
    linkageType: ''
    returnType: int
    signature: "int refs_for_each_reflog_ent_reverse(struct ref_store *refs,\n\t\t\t\t
      \    const char *refname,\n\t\t\t\t     each_reflog_ent_fn fn,\n\t\t\t\t     void
      *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::for_each_reflog_ent
      Src: /src/git/refs.c:2989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - refs
    - refname
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - char*
    - each_reflog_ent_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2986
    functionDepth: 0
    functionLinenumber: 2986
    functionLinenumberEnd: 2990
    functionName: refs_for_each_reflog_ent
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - struct ref_store*::be::for_each_reflog_ent
    linkageType: ''
    returnType: int
    signature: "int refs_for_each_reflog_ent(struct ref_store *refs, const char *refname,\n\t\t\t
      \    each_reflog_ent_fn fn, void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::reflog_exists
      Src: /src/git/refs.c:2994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - refname
    argTypes:
    - struct ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 2995
    functionName: refs_reflog_exists
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - struct ref_store*::be::reflog_exists
    linkageType: ''
    returnType: int
    signature: int refs_reflog_exists(struct ref_store *refs, const char *refname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::create_reflog
      Src: /src/git/refs.c:3000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - refs
    - refname
    - err
    argTypes:
    - struct ref_store*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2997
    functionDepth: 0
    functionLinenumber: 2997
    functionLinenumberEnd: 3001
    functionName: refs_create_reflog
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct ref_store*::be::create_reflog
    linkageType: ''
    returnType: int
    signature: "int refs_create_reflog(struct ref_store *refs, const char *refname,\n\t\t
      \      struct strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::delete_reflog
      Src: /src/git/refs.c:3005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - refname
    argTypes:
    - struct ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 3003
    functionDepth: 0
    functionLinenumber: 3003
    functionLinenumberEnd: 3006
    functionName: refs_delete_reflog
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct ref_store*::be::delete_reflog
    linkageType: ''
    returnType: int
    signature: int refs_delete_reflog(struct ref_store *refs, const char *refname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::reflog_expire
      Src: /src/git/refs.c:3016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - refs
    - refname
    - flags
    - prepare_fn
    - should_prune_fn
    - cleanup_fn
    - policy_cb_data
    argTypes:
    - struct ref_store*
    - char*
    - unsigned int
    - reflog_expiry_prepare_fn
    - reflog_expiry_should_prune_fn
    - reflog_expiry_cleanup_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3019
      start: 3008
    functionDepth: 0
    functionLinenumber: 3008
    functionLinenumberEnd: 3019
    functionName: refs_reflog_expire
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct ref_store*::be::reflog_expire
    linkageType: ''
    returnType: int
    signature: "int refs_reflog_expire(struct ref_store *refs,\n\t\t       const char
      *refname,\n\t\t       unsigned int flags,\n\t\t       reflog_expiry_prepare_fn
      prepare_fn,\n\t\t       reflog_expiry_should_prune_fn should_prune_fn,\n\t\t
      \      reflog_expiry_cleanup_fn cleanup_fn,\n\t\t       void *policy_cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/git/refs.c:3028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - transaction
    - cb
    - cb_data
    argTypes:
    - struct ref_transaction*
    - ref_transaction_for_each_queued_update_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3033
      start: 3021
    functionDepth: 0
    functionLinenumber: 3021
    functionLinenumberEnd: 3033
    functionName: ref_transaction_for_each_queued_update
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void ref_transaction_for_each_queued_update(struct ref_transaction
      *transaction,\n\t\t\t\t\t    ref_transaction_for_each_queued_update_fn cb,\n\t\t\t\t\t
      \   void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/git/refs.c:3049,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - transaction
    - cb
    - cb_data
    argTypes:
    - struct ref_transaction*
    - ref_transaction_for_each_rejected_update_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3055
      start: 3035
    functionDepth: 0
    functionLinenumber: 3035
    functionLinenumberEnd: 3055
    functionName: ref_transaction_for_each_rejected_update
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void ref_transaction_for_each_rejected_update(struct ref_transaction
      *transaction,\n\t\t\t\t\t      ref_transaction_for_each_rejected_update_fn cb,\n\t\t\t\t\t
      \     void *cb_data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: normalize_reflog_message
      Src: /src/git/refs.c:3069,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/refs.c:3076,1
    - Dst: error
      Src: /src/git/refs.c:3078,1
    - Dst: ref_transaction_delete
      Src: /src/git/refs.c:3083,1
    - Dst: warning
      Src: /src/git/refs.c:3086,1
    - Dst: _
      Src: /src/git/refs.c:3086,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:3088,1
    - Dst: ref_transaction_commit
      Src: /src/git/refs.c:3093,1
    - Dst: error
      Src: /src/git/refs.c:3096,1
    - Dst: _
      Src: /src/git/refs.c:3096,1
    - Dst: error
      Src: /src/git/refs.c:3099,1
    - Dst: _
      Src: /src/git/refs.c:3099,1
    - Dst: ref_transaction_free
      Src: /src/git/refs.c:3105,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:3106,1
    - Dst: free
      Src: /src/git/refs.c:3107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - refs
    - logmsg
    - refnames
    - flags
    argTypes:
    - struct ref_store*
    - char*
    - struct string_list*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3109
      start: 3057
    functionDepth: 7
    functionLinenumber: 3057
    functionLinenumberEnd: 3109
    functionName: refs_delete_refs
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - error
    - ref_transaction_commit
    - strbuf_release
    - strbuf_reset
    - normalize_reflog_message
    - ref_transaction_delete
    - ref_transaction_free
    - warning
    - _
    - free
    - ref_store_transaction_begin
    linkageType: ''
    returnType: int
    signature: "int refs_delete_refs(struct ref_store *refs, const char *logmsg,\n\t\t
      \    struct string_list *refnames, unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ref_transaction_delete
      Src: /src/git/refs.c:3083,1
    - Dst: warning
      Src: /src/git/refs.c:3086,1
    - Dst: _
      Src: /src/git/refs.c:3086,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:3088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3082
    functionDepth: 7
    functionLinenumber: 3082
    functionLinenumberEnd: 3091
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/refs.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - ref_transaction_delete
    - warning
    - _
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, refnames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: normalize_reflog_message
      Src: /src/git/refs.c:3117,1
    - Dst: struct ref_store*::be::rename_ref
      Src: /src/git/refs.c:3118,1
    - Dst: free
      Src: /src/git/refs.c:3119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - refs
    - oldref
    - newref
    - logmsg
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 3111
    functionDepth: 3
    functionLinenumber: 3111
    functionLinenumberEnd: 3121
    functionName: refs_rename_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - free
    - struct ref_store*::be::rename_ref
    - normalize_reflog_message
    linkageType: ''
    returnType: int
    signature: "int refs_rename_ref(struct ref_store *refs, const char *oldref,\n\t\t
      \   const char *newref, const char *logmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: normalize_reflog_message
      Src: /src/git/refs.c:3129,1
    - Dst: struct ref_store*::be::copy_ref
      Src: /src/git/refs.c:3130,1
    - Dst: free
      Src: /src/git/refs.c:3131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - refs
    - oldref
    - newref
    - logmsg
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3133
      start: 3123
    functionDepth: 3
    functionLinenumber: 3123
    functionLinenumberEnd: 3133
    functionName: refs_copy_existing_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - struct ref_store*::be::copy_ref
    - free
    - normalize_reflog_message
    linkageType: ''
    returnType: int
    signature: "int refs_copy_existing_ref(struct ref_store *refs, const char *oldref,\n\t\t
      \   const char *newref, const char *logmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - update
    argTypes:
    - struct ref_update*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3141
      start: 3135
    functionDepth: 0
    functionLinenumber: 3135
    functionLinenumberEnd: 3141
    functionName: ref_update_original_update_refname
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ref_update_original_update_refname(struct ref_update *update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/refs.c:3145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - update
    argTypes:
    - struct ref_update*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3146
      start: 3143
    functionDepth: 1
    functionLinenumber: 3143
    functionLinenumberEnd: 3146
    functionName: ref_update_has_null_new_value
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int ref_update_has_null_new_value(struct ref_update *update)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs.c:3153,1
    - Dst: strcmp
      Src: /src/git/refs.c:3155,1
    - Dst: strcmp
      Src: /src/git/refs.c:3158,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:3159,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs.c:3161,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:3166,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs.c:3167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - referent
    - update
    - err
    argTypes:
    - char*
    - struct ref_update*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3170
      start: 3148
    functionDepth: 1
    functionLinenumber: 3148
    functionLinenumberEnd: 3170
    functionName: ref_update_check_old_target
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - ref_update_original_update_refname
    - strbuf_addf
    - BUG
    - strcmp
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error ref_update_check_old_target(const char
      *referent,\n\t\t\t\t\t\t       struct ref_update *update,\n\t\t\t\t\t\t       struct
      strbuf *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: refs_read_symbolic_ref
      Src: /src/git/refs.c:3188,1
    - Dst: ref_transaction_update
      Src: /src/git/refs.c:3192,1
    - Dst: null_oid
      Src: /src/git/refs.c:3192,1
    - Dst: ref_transaction_create
      Src: /src/git/refs.c:3198,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:3206,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3208
      start: 3180
    functionDepth: 7
    functionLinenumber: 3180
    functionLinenumberEnd: 3208
    functionName: migrate_one_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - refs_read_symbolic_ref
    - ref_transaction_update
    - ref_transaction_create
    - null_oid
    linkageType: ''
    returnType: int
    signature: int migrate_one_ref(const struct reference *ref, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: split_ident_line
      Src: /src/git/refs.c:3222,1
    - Dst: strlen
      Src: /src/git/refs.c:3222,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:3225,1
    - Dst: strbuf_add
      Src: /src/git/refs.c:3226,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:3227,1
    - Dst: strbuf_add
      Src: /src/git/refs.c:3228,1
    - Dst: show_date
      Src: /src/git/refs.c:3230,1
    - Dst: DATE_MODE
      Src: /src/git/refs.c:3230,1
    - Dst: strbuf_reset
      Src: /src/git/refs.c:3231,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:3232,1
    - Dst: fmt_ident
      Src: /src/git/refs.c:3232,1
    - Dst: ref_transaction_update_reflog
      Src: /src/git/refs.c:3234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 8
    argNames:
    - refname
    - old_oid
    - new_oid
    - committer
    - timestamp
    - tz
    - msg
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3238
      start: 3210
    functionDepth: 6
    functionLinenumber: 3210
    functionLinenumberEnd: 3238
    functionName: migrate_one_reflog_entry
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - fmt_ident
    - strbuf_reset
    - DATE_MODE
    - strlen
    - show_date
    - strbuf_addstr
    - ref_transaction_update_reflog
    - split_ident_line
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int migrate_one_reflog_entry(const char *refname,\n\t\t\t\t    struct
      object_id *old_oid,\n\t\t\t\t    struct object_id *new_oid,\n\t\t\t\t    const
      char *committer,\n\t\t\t\t    timestamp_t timestamp, int tz,\n\t\t\t\t    const
      char *msg, void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/refs.c:3243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refname
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3240
    functionDepth: 1
    functionLinenumber: 3240
    functionLinenumberEnd: 3245
    functionName: migrate_one_reflog
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - refs_for_each_reflog_ent
    linkageType: ''
    returnType: int
    signature: int migrate_one_reflog(const char *refname, void *cb_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/refs.c:3254,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:3256,1
    - Dst: strerror
      Src: /src/git/refs.c:3257,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:3262,1
    - Dst: strbuf_complete
      Src: /src/git/refs.c:3263,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:3266,1
    - Dst: strbuf_complete
      Src: /src/git/refs.c:3267,1
    - Dst: readdir
      Src: /src/git/refs.c:3274,1
    - Dst: strcmp
      Src: /src/git/refs.c:3278,1
    - Dst: strcmp
      Src: /src/git/refs.c:3279,1
    - Dst: strbuf_setlen
      Src: /src/git/refs.c:3282,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:3283,1
    - Dst: strbuf_setlen
      Src: /src/git/refs.c:3285,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:3286,1
    - Dst: rename
      Src: /src/git/refs.c:3288,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:3290,1
    - Dst: strerror
      Src: /src/git/refs.c:3291,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:3297,1
    - Dst: strerror
      Src: /src/git/refs.c:3298,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:3306,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:3307,1
    - Dst: closedir
      Src: /src/git/refs.c:3309,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - from_path
    - to_path
    - errbuf
    argTypes:
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3247
    functionDepth: 1
    functionLinenumber: 3247
    functionLinenumberEnd: 3311
    functionName: move_files
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strerror
    - strbuf_addf
    - strbuf_setlen
    - rename
    - opendir
    - strcmp
    - strbuf_addstr
    - strbuf_complete
    - closedir
    - readdir
    linkageType: ''
    returnType: int
    signature: int move_files(const char *from_path, const char *to_path, struct strbuf
      *errbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees
      Src: /src/git/refs.c:3315,1
    - Dst: is_main_worktree
      Src: /src/git/refs.c:3320,1
    - Dst: free_worktrees
      Src: /src/git/refs.c:3325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3327
      start: 3313
    functionDepth: 1
    functionLinenumber: 3313
    functionLinenumberEnd: 3327
    functionName: has_worktrees
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - get_worktrees
    - free_worktrees
    - is_main_worktree
    linkageType: ''
    returnType: int
    signature: int has_worktrees(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:3349,1
    - Dst: get_main_ref_store
      Src: /src/git/refs.c:3354,1
    - Dst: has_worktrees
      Src: /src/git/refs.c:3365,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:3366,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:3397,1
    - Dst: mkdtemp
      Src: /src/git/refs.c:3398,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:3399,1
    - Dst: strerror
      Src: /src/git/refs.c:3400,1
    - Dst: ref_store_init
      Src: /src/git/refs.c:3405,1
    - Dst: ref_store_create_on_disk
      Src: /src/git/refs.c:3407,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/refs.c:3411,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/refs.c:3431,1
    - Dst: refs_for_each_reflog
      Src: /src/git/refs.c:3436,1
    - Dst: ref_transaction_commit
      Src: /src/git/refs.c:3441,1
    - Dst: printf
      Src: /src/git/refs.c:3447,1
    - Dst: _
      Src: /src/git/refs.c:3447,1
    - Dst: ref_store_release
      Src: /src/git/refs.c:3458,1
    - Dst: FREE_AND_NULL
      Src: /src/git/refs.c:3459,1
    - Dst: ref_store_remove_on_disk
      Src: /src/git/refs.c:3473,1
    - Dst: move_files
      Src: /src/git/refs.c:3477,1
    - Dst: rmdir
      Src: /src/git/refs.c:3481,1
    - Dst: warning_errno
      Src: /src/git/refs.c:3482,1
    - Dst: _
      Src: /src/git/refs.c:3482,1
    - Dst: initialize_repository_version
      Src: /src/git/refs.c:3490,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/refs.c:3490,1
    - Dst: ref_store_release
      Src: /src/git/refs.c:3497,1
    - Dst: FREE_AND_NULL
      Src: /src/git/refs.c:3498,1
    - Dst: strbuf_complete
      Src: /src/git/refs.c:3505,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:3506,1
    - Dst: _
      Src: /src/git/refs.c:3506,1
    - Dst: ref_store_release
      Src: /src/git/refs.c:3511,1
    - Dst: free
      Src: /src/git/refs.c:3512,1
    - Dst: ref_transaction_free
      Src: /src/git/refs.c:3514,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:3515,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:3516,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:3517,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:3518,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 87
    argCount: 4
    argNames:
    - repo
    - format
    - flags
    - errbuf
    argTypes:
    - struct repository*
    - enum ref_storage_format
    - unsigned int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3520
      start: 3329
    functionDepth: 4
    functionLinenumber: 3329
    functionLinenumberEnd: 3520
    functionName: repo_migrate_ref_storage_format
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - refs_for_each_reflog
    - mkdtemp
    - strbuf_addf
    - strbuf_complete
    - free
    - ref_store_transaction_begin
    - printf
    - get_main_ref_store
    - strbuf_release
    - ref_store_init
    - strerror
    - initialize_repository_version
    - ref_transaction_free
    - strbuf_addstr
    - ref_store_release
    - hash_algo_by_ptr
    - _
    - FREE_AND_NULL
    - ref_store_create_on_disk
    - warning_errno
    - has_worktrees
    - ref_store_remove_on_disk
    - refs_for_each_ref_ext
    - rmdir
    - move_files
    linkageType: ''
    returnType: int
    signature: "int repo_migrate_ref_storage_format(struct repository *repo,\n\t\t\t\t
      \   enum ref_storage_format format,\n\t\t\t\t    unsigned int flags,\n\t\t\t\t
      \   struct strbuf *errbuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/refs.c:3528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - update
    argTypes:
    - struct ref_update*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3529
      start: 3522
    functionDepth: 1
    functionLinenumber: 3522
    functionLinenumberEnd: 3529
    functionName: ref_update_expects_existing_old_ref
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int ref_update_expects_existing_old_ref(struct ref_update *update)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - err
    argTypes:
    - enum ref_transaction_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3551
      start: 3531
    functionDepth: 0
    functionLinenumber: 3531
    functionLinenumberEnd: 3551
    functionName: ref_transaction_error_msg
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ref_transaction_error_msg(enum ref_transaction_error err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_common_dir_noenv
      Src: /src/git/refs.c:3559,1
    - Dst: strbuf_addstr
      Src: /src/git/refs.c:3567,1
    - Dst: is_absolute_path
      Src: /src/git/refs.c:3571,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:3572,1
    - Dst: strbuf_realpath
      Src: /src/git/refs.c:3573,1
    - Dst: strbuf_realpath
      Src: /src/git/refs.c:3575,1
    - Dst: strbuf_addbuf
      Src: /src/git/refs.c:3578,1
    - Dst: strrchr
      Src: /src/git/refs.c:3581,1
    - Dst: BUG
      Src: /src/git/refs.c:3583,1
    - Dst: strbuf_addf
      Src: /src/git/refs.c:3584,1
    - Dst: strbuf_release
      Src: /src/git/refs.c:3587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - gitdir
    - payload
    - is_worktree
    - refdir
    - ref_common_dir
    argTypes:
    - char*
    - char*
    - bool*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3588
      start: 3553
    functionDepth: 1
    functionLinenumber: 3553
    functionLinenumberEnd: 3588
    functionName: refs_compute_filesystem_location
    functionSourceFile: /src/git/refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - is_absolute_path
    - strbuf_realpath
    - strrchr
    - strbuf_addf
    - get_common_dir_noenv
    - strbuf_addbuf
    - strbuf_addstr
    - BUG
    linkageType: ''
    returnType: void
    signature: "void refs_compute_filesystem_location(const char *gitdir, const char
      *payload,\n\t\t\t\t      bool *is_worktree, struct strbuf *refdir,\n\t\t\t\t
      \     struct strbuf *ref_common_dir)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 37
    functionName: tm_to_time_t
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t tm_to_time_t(const struct tm *tm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_add_overflows
      Src: /src/git/date.c:57,1
    - Dst: die
      Src: /src/git/date.c:58,1
    - Dst: die
      Src: /src/git/date.c:61,1
    - Dst: date_overflows
      Src: /src/git/date.c:63,1
    - Dst: die
      Src: /src/git/date.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - time
    - tz
    argTypes:
    - timestamp_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: gm_time_t
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - date_overflows
    - die
    - unsigned_add_overflows
    linkageType: ''
    returnType: time_t
    signature: time_t gm_time_t(timestamp_t time, int tz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gm_time_t
      Src: /src/git/date.c:75,1
    - Dst: gmtime_r
      Src: /src/git/date.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - time
    - tz
    - tm
    argTypes:
    - timestamp_t
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: time_to_tm
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - gmtime_r
    - gm_time_t
    linkageType: ''
    returnType: struct tm
    signature: struct tm *time_to_tm(timestamp_t time, int tz, struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/git/date.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - time
    - tm
    argTypes:
    - timestamp_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: time_to_tm_local
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - localtime_r
    linkageType: ''
    returnType: struct tm
    signature: struct tm *time_to_tm_local(timestamp_t time, struct tm *tm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/git/date.c:94,1
    - Dst: tm_to_time_t
      Src: /src/git/date.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - t
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: local_time_tzoffset
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - tm_to_time_t
    - localtime_r
    linkageType: ''
    returnType: int
    signature: int local_time_tzoffset(time_t t, struct tm *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: date_overflows
      Src: /src/git/date.c:118,1
    - Dst: die
      Src: /src/git/date.c:119,1
    - Dst: local_time_tzoffset
      Src: /src/git/date.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - time
    argTypes:
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: local_tzoffset
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - local_time_tzoffset
    - date_overflows
    - die
    linkageType: ''
    returnType: int
    signature: int local_tzoffset(timestamp_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/date.c:128,1
    - Dst: atoi
      Src: /src/git/date.c:130,1
    - Dst: gettimeofday
      Src: /src/git/date.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - now
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: get_time
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - getenv
    - atoi
    linkageType: ''
    returnType: void
    signature: void get_time(struct timeval *now)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/git/date.c:438,1
    - Dst: toupper
      Src: /src/git/date.c:438,1
    - Dst: isalnum
      Src: /src/git/date.c:440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - date
    - str
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: match_string
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - isalnum
    - toupper
    linkageType: ''
    returnType: int
    signature: int match_string(const char *date, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/git/date.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - date
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 454
    functionName: skip_alpha
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - isalpha
    linkageType: ''
    returnType: int
    signature: int skip_alpha(const char *date)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: match_string
      Src: /src/git/date.c:464,1
    - Dst: match_string
      Src: /src/git/date.c:472,1
    - Dst: ARRAY_SIZE
      Src: /src/git/date.c:479,1
    - Dst: match_string
      Src: /src/git/date.c:480,1
    - Dst: strlen
      Src: /src/git/date.c:481,1
    - Dst: match_string
      Src: /src/git/date.c:495,1
    - Dst: match_string
      Src: /src/git/date.c:500,1
    - Dst: isdigit
      Src: /src/git/date.c:506,1
    - Dst: skip_alpha
      Src: /src/git/date.c:512,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - date
    - tm
    - offset
    argTypes:
    - char*
    - struct tm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 513
    functionName: match_alpha
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - skip_alpha
    - isdigit
    - strlen
    - match_string
    linkageType: ''
    returnType: int
    signature: int match_alpha(const char *date, struct tm *tm, int *offset)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tm_to_time_t
      Src: /src/git/date.c:540,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 6
    argNames:
    - year
    - month
    - day
    - now_tm
    - now
    - tm
    argTypes:
    - int
    - int
    - int
    - struct tm*
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 555
    functionName: set_date
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - tm_to_time_t
    linkageType: ''
    returnType: int
    signature: int set_date(int year, int month, int day, struct tm *now_tm, time_t
      now, struct tm *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - hour
    - minute
    - second
    - tm
    argTypes:
    - long
    - long
    - long
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 569
    functionName: set_time
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int set_time(long hour, long minute, long second, struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: is_date_known
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_date_known(struct tm *tm)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/git/date.c:583,1
    - Dst: isdigit
      Src: /src/git/date.c:585,1
    - Dst: strtol
      Src: /src/git/date.c:586,1
    - Dst: set_time
      Src: /src/git/date.c:593,1
    - Dst: isdigit
      Src: /src/git/date.c:599,1
    - Dst: is_date_known
      Src: /src/git/date.c:599,1
    - Dst: strtol
      Src: /src/git/date.c:600,1
    - Dst: time
      Src: /src/git/date.c:609,1
    - Dst: gmtime_r
      Src: /src/git/date.c:611,1
    - Dst: set_date
      Src: /src/git/date.c:616,1
    - Dst: set_date
      Src: /src/git/date.c:619,1
    - Dst: set_date
      Src: /src/git/date.c:627,1
    - Dst: set_date
      Src: /src/git/date.c:630,1
    - Dst: set_date
      Src: /src/git/date.c:634,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 38
    argCount: 6
    argNames:
    - num
    - c
    - date
    - end
    - tm
    - now
    argTypes:
    - timestamp_t
    - char
    - char*
    - char*
    - struct tm*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 639
    functionName: match_multi_number
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - is_date_known
    - isdigit
    - gmtime_r
    - set_time
    - strtol
    - set_date
    - time
    linkageType: ''
    returnType: int
    signature: "int match_multi_number(timestamp_t num, char c, const char *date,\n\t\t\t
      \     char *end, struct tm *tm, time_t now)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 654
    functionName: nodate
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nodate(struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 666
    functionName: maybeiso8601
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int maybeiso8601(struct tm *tm)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: parse_timestamp
      Src: /src/git/date.c:677,1
    - Dst: nodate
      Src: /src/git/date.c:684,1
    - Dst: gmtime_r
      Src: /src/git/date.c:686,1
    - Dst: isdigit
      Src: /src/git/date.c:700,1
    - Dst: match_multi_number
      Src: /src/git/date.c:701,1
    - Dst: isdigit
      Src: /src/git/date.c:715,1
    - Dst: set_date
      Src: /src/git/date.c:724,1
    - Dst: time
      Src: /src/git/date.c:724,1
    - Dst: set_time
      Src: /src/git/date.c:725,1
    - Dst: isdigit
      Src: /src/git/date.c:726,1
    - Dst: strtoul
      Src: /src/git/date.c:727,1
    - Dst: maybeiso8601
      Src: /src/git/date.c:732,1
    - Dst: nodate
      Src: /src/git/date.c:739,1
    - Dst: set_time
      Src: /src/git/date.c:740,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 65
    argCount: 4
    argNames:
    - date
    - tm
    - offset
    - tm_gmt
    argTypes:
    - char*
    - struct tm*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 796
    functionName: match_digit
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - maybeiso8601
    - match_multi_number
    - gmtime_r
    - isdigit
    - parse_timestamp
    - set_time
    - nodate
    - set_date
    - strtoul
    - time
    linkageType: ''
    returnType: int
    signature: int match_digit(const char *date, struct tm *tm, int *offset, int *tm_gmt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/date.c:801,1
    - Dst: strtoul
      Src: /src/git/date.c:813,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - date
    - offp
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 833
    functionName: match_tz
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: int
    signature: int match_tz(const char *date, int *offp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/date.c:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - date
    - offset
    - buf
    argTypes:
    - timestamp_t
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 844
    functionName: date_string
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void date_string(timestamp_t date, int offset, struct strbuf *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_timestamp
      Src: /src/git/date.c:858,1
    - Dst: strtol
      Src: /src/git/date.c:862,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - date
    - timestamp
    - offset
    argTypes:
    - char*
    - timestamp_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 871
    functionName: match_object_header_date
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - strtol
    - parse_timestamp
    linkageType: ''
    returnType: int
    signature: int match_object_header_date(const char *date, timestamp_t *timestamp,
      int *offset)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/date.c:891,1
    - Dst: match_object_header_date
      Src: /src/git/date.c:903,1
    - Dst: isalpha
      Src: /src/git/date.c:913,1
    - Dst: match_alpha
      Src: /src/git/date.c:914,1
    - Dst: isdigit
      Src: /src/git/date.c:915,1
    - Dst: match_digit
      Src: /src/git/date.c:916,1
    - Dst: isdigit
      Src: /src/git/date.c:917,1
    - Dst: match_tz
      Src: /src/git/date.c:918,1
    - Dst: tm_to_time_t
      Src: /src/git/date.c:929,1
    - Dst: mktime
      Src: /src/git/date.c:938,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 3
    argNames:
    - date
    - timestamp
    - offset
    argTypes:
    - char*
    - timestamp_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 879
    functionDepth: 4
    functionLinenumber: 879
    functionLinenumberEnd: 955
    functionName: parse_date_basic
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - memset
    - isalpha
    - match_tz
    - match_object_header_date
    - tm_to_time_t
    - mktime
    - isdigit
    - match_alpha
    - match_digit
    linkageType: ''
    returnType: int
    signature: int parse_date_basic(const char *date, timestamp_t *timestamp, int
      *offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/date.c:961,1
    - Dst: strcmp
      Src: /src/git/date.c:961,1
    - Dst: strcmp
      Src: /src/git/date.c:963,1
    - Dst: strcmp
      Src: /src/git/date.c:963,1
    - Dst: approxidate_careful
      Src: /src/git/date.c:974,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - date
    - timestamp
    argTypes:
    - char*
    - timestamp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 977
    functionName: parse_expiry_date
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - approxidate_careful
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_expiry_date(const char *date, timestamp_t *timestamp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_date_basic
      Src: /src/git/date.c:983,1
    - Dst: date_string
      Src: /src/git/date.c:985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - date
    - result
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 979
    functionDepth: 5
    functionLinenumber: 979
    functionLinenumberEnd: 987
    functionName: parse_date
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - date_string
    - parse_date_basic
    linkageType: ''
    returnType: int
    signature: int parse_date(const char *date, struct strbuf *result)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/date.c:991,1
    - Dst: skip_prefix
      Src: /src/git/date.c:993,1
    - Dst: skip_prefix
      Src: /src/git/date.c:994,1
    - Dst: skip_prefix
      Src: /src/git/date.c:996,1
    - Dst: skip_prefix
      Src: /src/git/date.c:997,1
    - Dst: skip_prefix
      Src: /src/git/date.c:999,1
    - Dst: skip_prefix
      Src: /src/git/date.c:1000,1
    - Dst: skip_prefix
      Src: /src/git/date.c:1002,1
    - Dst: skip_prefix
      Src: /src/git/date.c:1004,1
    - Dst: skip_prefix
      Src: /src/git/date.c:1006,1
    - Dst: skip_prefix
      Src: /src/git/date.c:1008,1
    - Dst: skip_prefix
      Src: /src/git/date.c:1010,1
    - Dst: skip_prefix
      Src: /src/git/date.c:1012,1
    - Dst: die
      Src: /src/git/date.c:1019,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 2
    argNames:
    - format
    - end
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1020
    functionName: parse_date_type
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - die
    linkageType: ''
    returnType: enum date_mode_type
    signature: enum date_mode_type parse_date_type(const char *format, const char
      **end)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/date.c:1027,1
    - Dst: isatty
      Src: /src/git/date.c:1028,1
    - Dst: pager_in_use
      Src: /src/git/date.c:1028,1
    - Dst: strcmp
      Src: /src/git/date.c:1035,1
    - Dst: parse_date_type
      Src: /src/git/date.c:1038,1
    - Dst: skip_prefix
      Src: /src/git/date.c:1041,1
    - Dst: skip_prefix
      Src: /src/git/date.c:1045,1
    - Dst: die
      Src: /src/git/date.c:1046,1
    - Dst: xstrdup
      Src: /src/git/date.c:1047,1
    - Dst: die
      Src: /src/git/date.c:1049,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - format
    - mode
    argTypes:
    - char*
    - struct date_mode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1050
    functionName: parse_date_format
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - die
    - pager_in_use
    - skip_prefix
    - parse_date_type
    - strcmp
    - isatty
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void parse_date_format(const char *format, struct date_mode *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/date.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - struct date_mode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1055
    functionName: date_mode_release
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void date_mode_release(struct date_mode *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/date.c:1063,1
    - Dst: tm_to_time_t
      Src: /src/git/date.c:1065,1
    - Dst: localtime_r
      Src: /src/git/date.c:1065,1
    - Dst: date_string
      Src: /src/git/date.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1069
    functionName: datestamp
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - date_string
    - tm_to_time_t
    - localtime_r
    - time
    linkageType: ''
    returnType: void
    signature: void datestamp(struct strbuf *out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mktime
      Src: /src/git/date.c:1089,1
    - Dst: localtime_r
      Src: /src/git/date.c:1090,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - tm
    - now
    - sec
    argTypes:
    - struct tm*
    - struct tm*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1092
    functionName: update_tm
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - localtime_r
    - mktime
    linkageType: ''
    returnType: time_t
    signature: time_t update_tm(struct tm *tm, struct tm *now, time_t sec)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 2
    argNames:
    - tm
    - num
    argTypes:
    - struct tm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1119
    functionName: pending_number
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pending_number(struct tm *tm, int *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_tm
      Src: /src/git/date.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tm
    - now
    - num
    argTypes:
    - struct tm*
    - struct tm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1125
    functionName: date_now
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - update_tm
    linkageType: ''
    returnType: void
    signature: void date_now(struct tm *tm, struct tm *now, int *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_tm
      Src: /src/git/date.c:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tm
    - now
    - num
    argTypes:
    - struct tm*
    - struct tm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1131
    functionName: date_yesterday
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - update_tm
    linkageType: ''
    returnType: void
    signature: void date_yesterday(struct tm *tm, struct tm *now, int *num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_tm
      Src: /src/git/date.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tm
    - now
    - hour
    argTypes:
    - struct tm*
    - struct tm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1140
    functionName: date_time
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - update_tm
    linkageType: ''
    returnType: void
    signature: void date_time(struct tm *tm, struct tm *now, int hour)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pending_number
      Src: /src/git/date.c:1144,1
    - Dst: date_time
      Src: /src/git/date.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tm
    - now
    - num
    argTypes:
    - struct tm*
    - struct tm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1146
    functionName: date_midnight
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - pending_number
    - date_time
    linkageType: ''
    returnType: void
    signature: void date_midnight(struct tm *tm, struct tm *now, int *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pending_number
      Src: /src/git/date.c:1150,1
    - Dst: date_time
      Src: /src/git/date.c:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tm
    - now
    - num
    argTypes:
    - struct tm*
    - struct tm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1152
    functionName: date_noon
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - pending_number
    - date_time
    linkageType: ''
    returnType: void
    signature: void date_noon(struct tm *tm, struct tm *now, int *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pending_number
      Src: /src/git/date.c:1156,1
    - Dst: date_time
      Src: /src/git/date.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tm
    - now
    - num
    argTypes:
    - struct tm*
    - struct tm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1154
    functionDepth: 2
    functionLinenumber: 1154
    functionLinenumberEnd: 1158
    functionName: date_tea
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - pending_number
    - date_time
    linkageType: ''
    returnType: void
    signature: void date_tea(struct tm *tm, struct tm *now, int *num)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - tm
    - UNUSED
    - num
    argTypes:
    - struct tm*
    - struct tm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1172
    functionName: date_pm
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void date_pm(struct tm *tm, struct tm *now UNUSED, int *num)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - tm
    - UNUSED
    - num
    argTypes:
    - struct tm*
    - struct tm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1186
    functionName: date_am
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void date_am(struct tm *tm, struct tm *now UNUSED, int *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/git/date.c:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tm
    - UNUSED
    - num
    argTypes:
    - struct tm*
    - struct tm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1193
    functionName: date_never
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - localtime_r
    linkageType: ''
    returnType: void
    signature: void date_never(struct tm *tm, struct tm *now UNUSED, int *num)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/git/date.c:1234,1
    - Dst: match_string
      Src: /src/git/date.c:1238,1
    - Dst: strlen
      Src: /src/git/date.c:1247,1
    - Dst: match_string
      Src: /src/git/date.c:1248,1
    - Dst: struct special*::fn
      Src: /src/git/date.c:1249,1
    - Dst: strlen
      Src: /src/git/date.c:1257,1
    - Dst: match_string
      Src: /src/git/date.c:1258,1
    - Dst: match_string
      Src: /src/git/date.c:1264,1
    - Dst: strlen
      Src: /src/git/date.c:1273,1
    - Dst: match_string
      Src: /src/git/date.c:1274,1
    - Dst: update_tm
      Src: /src/git/date.c:1275,1
    - Dst: match_string
      Src: /src/git/date.c:1284,1
    - Dst: update_tm
      Src: /src/git/date.c:1294,1
    - Dst: match_string
      Src: /src/git/date.c:1300,1
    - Dst: update_tm
      Src: /src/git/date.c:1302,1
    - Dst: match_string
      Src: /src/git/date.c:1314,1
    - Dst: update_tm
      Src: /src/git/date.c:1315,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 73
    argCount: 5
    argNames:
    - date
    - tm
    - now
    - num
    - touched
    argTypes:
    - char*
    - struct tm*
    - struct tm*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1227
    functionDepth: 2
    functionLinenumber: 1227
    functionLinenumberEnd: 1323
    functionName: approxidate_alpha
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - isalpha
    - update_tm
    - strlen
    - match_string
    - struct special*::fn
    linkageType: ''
    returnType: char
    signature: char *approxidate_alpha(const char *date, struct tm *tm, struct tm
      *now, int *num, int *touched)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_timestamp
      Src: /src/git/date.c:1329,1
    - Dst: isdigit
      Src: /src/git/date.c:1336,1
    - Dst: match_multi_number
      Src: /src/git/date.c:1337,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - date
    - tm
    - num
    - now
    argTypes:
    - char*
    - struct tm*
    - int*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1325
    functionDepth: 3
    functionLinenumber: 1325
    functionLinenumberEnd: 1348
    functionName: approxidate_digit
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - isdigit
    - match_multi_number
    - parse_timestamp
    linkageType: ''
    returnType: char
    signature: "char *approxidate_digit(const char *date, struct tm *tm, int *num,\n\t\t\t\t
      \    time_t now)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/git/date.c:1360,1
    - Dst: isdigit
      Src: /src/git/date.c:1372,1
    - Dst: pending_number
      Src: /src/git/date.c:1373,1
    - Dst: approxidate_digit
      Src: /src/git/date.c:1374,1
    - Dst: isalpha
      Src: /src/git/date.c:1378,1
    - Dst: approxidate_alpha
      Src: /src/git/date.c:1379,1
    - Dst: pending_number
      Src: /src/git/date.c:1381,1
    - Dst: update_tm
      Src: /src/git/date.c:1384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - date
    - tv
    - error_ret
    argTypes:
    - char*
    - struct timeval*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1350
    functionDepth: 4
    functionLinenumber: 1350
    functionLinenumberEnd: 1385
    functionName: approxidate_str
    functionSourceFile: /src/git/date.c
    functionUses: 0
    functionsReached:
    - pending_number
    - isalpha
    - approxidate_alpha
    - update_tm
    - isdigit
    - approxidate_digit
    - localtime_r
    linkageType: ''
    returnType: timestamp_t
    signature: "timestamp_t approxidate_str(const char *date,\n\t\t\t\t   const struct
      timeval *tv,\n\t\t\t\t   int *error_ret)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_date_basic
      Src: /src/git/date.c:1396,1
    - Dst: get_time
      Src: /src/git/date.c:1401,1
    - Dst: approxidate_str
      Src: /src/git/date.c:1402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - date
    - error_ret
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1387
    functionDepth: 5
    functionLinenumber: 1387
    functionLinenumberEnd: 1403
    functionName: approxidate_careful
    functionSourceFile: /src/git/date.c
    functionUses: 1
    functionsReached:
    - get_time
    - approxidate_str
    - parse_date_basic
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t approxidate_careful(const char *date, int *error_ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1420
    functionName: date_overflows
    functionSourceFile: /src/git/date.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int date_overflows(timestamp_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - struct bitmap_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: bitmap_writer_nr_selected_commits
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bitmap_writer_nr_selected_commits(struct bitmap_writer *writer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/pack-bitmap-write.c:50,1
    - Dst: BUG
      Src: /src/git/pack-bitmap-write.c:52,1
    - Dst: kh_init_oid_map
      Src: /src/git/pack-bitmap-write.c:54,1
    - Dst: kh_init_oid_map
      Src: /src/git/pack-bitmap-write.c:55,1
    - Dst: string_list_init_dup
      Src: /src/git/pack-bitmap-write.c:59,1
    - Dst: load_pseudo_merges_from_config
      Src: /src/git/pack-bitmap-write.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - writer
    - r
    - pdata
    - midx
    argTypes:
    - struct bitmap_writer*
    - struct repository*
    - struct packing_data*
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: bitmap_writer_init
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - memset
    - load_pseudo_merges_from_config
    - kh_init_oid_map
    - string_list_init_dup
    - BUG
    linkageType: ''
    returnType: void
    signature: "void bitmap_writer_init(struct bitmap_writer *writer, struct repository
      *r,\n\t\t\tstruct packing_data *pdata,\n\t\t\tstruct multi_pack_index *midx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/pack-bitmap-write.c:68,1
    - Dst: free
      Src: /src/git/pack-bitmap-write.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - struct pseudo_merge_commit_idx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: free_pseudo_merge_commit_idx
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_pseudo_merge_commit_idx(struct pseudo_merge_commit_idx *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pseudo_merge_group_release
      Src: /src/git/pack-bitmap-write.c:74,1
    - Dst: free
      Src: /src/git/pack-bitmap-write.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - payload
    - UNUSED
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: pseudo_merge_group_release_cb
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - pseudo_merge_group_release
    - free
    linkageType: ''
    returnType: void
    signature: void pseudo_merge_group_release_cb(void *payload, const char *name
      UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ewah_free
      Src: /src/git/pack-bitmap-write.c:86,1
    - Dst: ewah_free
      Src: /src/git/pack-bitmap-write.c:87,1
    - Dst: ewah_free
      Src: /src/git/pack-bitmap-write.c:88,1
    - Dst: ewah_free
      Src: /src/git/pack-bitmap-write.c:89,1
    - Dst: kh_destroy_oid_map
      Src: /src/git/pack-bitmap-write.c:91,1
    - Dst: kh_foreach_value
      Src: /src/git/pack-bitmap-write.c:93,1
    - Dst: free_pseudo_merge_commit_idx
      Src: /src/git/pack-bitmap-write.c:94,1
    - Dst: kh_destroy_oid_map
      Src: /src/git/pack-bitmap-write.c:95,1
    - Dst: string_list_clear_func
      Src: /src/git/pack-bitmap-write.c:96,1
    - Dst: ewah_free
      Src: /src/git/pack-bitmap-write.c:102,1
    - Dst: ewah_free
      Src: /src/git/pack-bitmap-write.c:103,1
    - Dst: free
      Src: /src/git/pack-bitmap-write.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - writer
    argTypes:
    - struct bitmap_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 106
    functionName: bitmap_writer_free
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - string_list_clear_func
    - kh_destroy_oid_map
    - free
    - ewah_free
    - free_pseudo_merge_commit_idx
    - kh_foreach_value
    linkageType: ''
    returnType: void
    signature: void bitmap_writer_free(struct bitmap_writer *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - show
    argTypes:
    - struct bitmap_writer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: bitmap_writer_show_progress
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitmap_writer_show_progress(struct bitmap_writer *writer, int
      show)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ewah_new
      Src: /src/git/pack-bitmap-write.c:126,1
    - Dst: ewah_new
      Src: /src/git/pack-bitmap-write.c:127,1
    - Dst: ewah_new
      Src: /src/git/pack-bitmap-write.c:128,1
    - Dst: ewah_new
      Src: /src/git/pack-bitmap-write.c:129,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-bitmap-write.c:130,1
    - Dst: oe_set_in_pack_pos
      Src: /src/git/pack-bitmap-write.c:136,1
    - Dst: oe_type
      Src: /src/git/pack-bitmap-write.c:138,1
    - Dst: oe_type
      Src: /src/git/pack-bitmap-write.c:143,1
    - Dst: odb_read_object_info
      Src: /src/git/pack-bitmap-write.c:147,1
    - Dst: ewah_set
      Src: /src/git/pack-bitmap-write.c:154,1
    - Dst: ewah_set
      Src: /src/git/pack-bitmap-write.c:158,1
    - Dst: ewah_set
      Src: /src/git/pack-bitmap-write.c:162,1
    - Dst: ewah_set
      Src: /src/git/pack-bitmap-write.c:166,1
    - Dst: die
      Src: /src/git/pack-bitmap-write.c:170,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap-write.c:171,1
    - Dst: oe_type
      Src: /src/git/pack-bitmap-write.c:172,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - writer
    - index
    argTypes:
    - struct bitmap_writer*
    - struct pack_idx_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 175
    functionName: bitmap_writer_build_type_index
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - ewah_new
    - oid_to_hex
    - oe_type
    - die
    - ALLOC_ARRAY
    - ewah_set
    - odb_read_object_info
    - oe_set_in_pack_pos
    linkageType: ''
    returnType: void
    signature: "void bitmap_writer_build_type_index(struct bitmap_writer *writer,\n\t\t\t\t
      \   struct pack_idx_entry **index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_map
      Src: /src/git/pack-bitmap-write.c:180,1
    - Dst: kh_end
      Src: /src/git/pack-bitmap-write.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - oid
    argTypes:
    - struct bitmap_writer*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: bitmap_writer_has_bitmapped_object_id
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - kh_end
    - kh_get_oid_map
    linkageType: ''
    returnType: int
    signature: "int bitmap_writer_has_bitmapped_object_id(struct bitmap_writer *writer,\n\t\t\t\t\t
      \ const struct object_id *oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC_ARRAY
      Src: /src/git/pack-bitmap-write.c:192,1
    - Dst: kh_put_oid_map
      Src: /src/git/pack-bitmap-write.c:197,1
    - Dst: die
      Src: /src/git/pack-bitmap-write.c:202,1
    - Dst: _
      Src: /src/git/pack-bitmap-write.c:202,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap-write.c:203,1
    - Dst: kh_value
      Src: /src/git/pack-bitmap-write.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - writer
    - commit
    - pseudo_merge
    argTypes:
    - struct bitmap_writer*
    - struct commit*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 214
    functionName: bitmap_writer_push_commit
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - kh_put_oid_map
    - kh_value
    - REALLOC_ARRAY
    - _
    linkageType: ''
    returnType: void
    signature: "void bitmap_writer_push_commit(struct bitmap_writer *writer,\n\t\t\t
      \      struct commit *commit, unsigned pseudo_merge)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: packlist_find
      Src: /src/git/pack-bitmap-write.c:221,1
    - Dst: oe_in_pack_pos
      Src: /src/git/pack-bitmap-write.c:230,1
    - Dst: bsearch_midx
      Src: /src/git/pack-bitmap-write.c:234,1
    - Dst: midx_to_pack_pos
      Src: /src/git/pack-bitmap-write.c:236,1
    - Dst: warning
      Src: /src/git/pack-bitmap-write.c:247,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap-write.c:248,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - writer
    - oid
    - found
    argTypes:
    - struct bitmap_writer*
    - struct object_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 250
    functionName: find_object_pos
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - bsearch_midx
    - oid_to_hex
    - oe_in_pack_pos
    - packlist_find
    - warning
    - midx_to_pack_pos
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t find_object_pos(struct bitmap_writer *writer,\n\t\t\t\tconst
      struct object_id *oid, int *found)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ewah_pool_new
      Src: /src/git/pack-bitmap-write.c:275,1
    - Dst: ewah_xor
      Src: /src/git/pack-bitmap-write.c:276,1
    - Dst: ewah_pool_free
      Src: /src/git/pack-bitmap-write.c:280,1
    - Dst: ewah_pool_free
      Src: /src/git/pack-bitmap-write.c:285,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - writer
    argTypes:
    - struct bitmap_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 295
    functionName: compute_xor_offsets
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - ewah_pool_new
    - ewah_xor
    - ewah_pool_free
    linkageType: ''
    returnType: void
    signature: void compute_xor_offsets(struct bitmap_writer *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_free
      Src: /src/git/pack-bitmap-write.c:309,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap-write.c:310,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap-write.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct bb_commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: clear_bb_commit
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - commit_list_free
    - bitmap_free
    linkageType: ''
    returnType: void
    signature: void clear_bb_commit(struct bb_commit *commit)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: init_bb_data
      Src: /src/git/pack-bitmap-write.c:331,1
    - Dst: commit_stack_init
      Src: /src/git/pack-bitmap-write.c:332,1
    - Dst: reset_revision_walk
      Src: /src/git/pack-bitmap-write.c:334,1
    - Dst: repo_init_revisions
      Src: /src/git/pack-bitmap-write.c:335,1
    - Dst: bb_data_at
      Src: /src/git/pack-bitmap-write.c:341,1
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap-write.c:348,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap-write.c:349,1
    - Dst: add_pending_object
      Src: /src/git/pack-bitmap-write.c:351,1
    - Dst: prepare_revision_walk
      Src: /src/git/pack-bitmap-write.c:354,1
    - Dst: die
      Src: /src/git/pack-bitmap-write.c:355,1
    - Dst: get_revision
      Src: /src/git/pack-bitmap-write.c:357,1
    - Dst: parse_commit_or_die
      Src: /src/git/pack-bitmap-write.c:361,1
    - Dst: bb_data_at
      Src: /src/git/pack-bitmap-write.c:363,1
    - Dst: bitmap_for_commit
      Src: /src/git/pack-bitmap-write.c:376,1
    - Dst: commit_list_insert
      Src: /src/git/pack-bitmap-write.c:386,1
    - Dst: commit_stack_push
      Src: /src/git/pack-bitmap-write.c:392,1
    - Dst: bb_data_at
      Src: /src/git/pack-bitmap-write.c:396,1
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap-write.c:400,1
    - Dst: bitmap_is_subset
      Src: /src/git/pack-bitmap-write.c:404,1
    - Dst: bitmap_is_subset
      Src: /src/git/pack-bitmap-write.c:405,1
    - Dst: bitmap_or
      Src: /src/git/pack-bitmap-write.c:411,1
    - Dst: commit_list_free
      Src: /src/git/pack-bitmap-write.c:417,1
    - Dst: commit_list_insert
      Src: /src/git/pack-bitmap-write.c:422,1
    - Dst: commit_list_contains
      Src: /src/git/pack-bitmap-write.c:427,1
    - Dst: commit_list_insert
      Src: /src/git/pack-bitmap-write.c:428,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap-write.c:434,1
    - Dst: commit_stack_push
      Src: /src/git/pack-bitmap-write.c:439,1
    - Dst: trace2_data_intmax
      Src: /src/git/pack-bitmap-write.c:442,1
    - Dst: trace2_data_intmax
      Src: /src/git/pack-bitmap-write.c:444,1
    - Dst: release_revisions
      Src: /src/git/pack-bitmap-write.c:447,1
    - Dst: commit_list_free
      Src: /src/git/pack-bitmap-write.c:448,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 3
    argNames:
    - bb
    - writer
    - old_bitmap
    argTypes:
    - struct bitmap_builder*
    - struct bitmap_writer*
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 449
    functionName: bitmap_builder_init
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - bitmap_free
    - trace2_data_intmax
    - bb_data_at
    - repo_init_revisions
    - bitmap_or
    - parse_commit_or_die
    - die
    - release_revisions
    - bitmap_set
    - prepare_revision_walk
    - commit_stack_init
    - bitmap_for_commit
    - commit_list_contains
    - commit_stack_push
    - init_bb_data
    - bitmap_new
    - bitmap_is_subset
    - reset_revision_walk
    - add_pending_object
    - commit_list_free
    - get_revision
    - commit_list_insert
    linkageType: ''
    returnType: void
    signature: "void bitmap_builder_init(struct bitmap_builder *bb,\n\t\t\t\tstruct
      bitmap_writer *writer,\n\t\t\t\tstruct bitmap_index *old_bitmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deep_clear_bb_data
      Src: /src/git/pack-bitmap-write.c:453,1
    - Dst: commit_stack_clear
      Src: /src/git/pack-bitmap-write.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bb
    argTypes:
    - struct bitmap_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 455
    functionName: bitmap_builder_clear
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - commit_stack_clear
    - deep_clear_bb_data
    linkageType: ''
    returnType: void
    signature: void bitmap_builder_clear(struct bitmap_builder *bb)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find_object_pos
      Src: /src/git/pack-bitmap-write.c:470,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap-write.c:473,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap-write.c:475,1
    - Dst: repo_parse_tree
      Src: /src/git/pack-bitmap-write.c:477,1
    - Dst: die
      Src: /src/git/pack-bitmap-write.c:478,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap-write.c:479,1
    - Dst: init_tree_desc
      Src: /src/git/pack-bitmap-write.c:480,1
    - Dst: tree_entry
      Src: /src/git/pack-bitmap-write.c:482,1
    - Dst: object_type
      Src: /src/git/pack-bitmap-write.c:483,1
    - Dst: fill_bitmap_tree
      Src: /src/git/pack-bitmap-write.c:485,1
    - Dst: lookup_tree
      Src: /src/git/pack-bitmap-write.c:486,1
    - Dst: find_object_pos
      Src: /src/git/pack-bitmap-write.c:490,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap-write.c:493,1
    - Dst: free_tree_buffer
      Src: /src/git/pack-bitmap-write.c:501,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - writer
    - bitmap
    - tree
    argTypes:
    - struct bitmap_writer*
    - struct bitmap*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 503
    functionName: fill_bitmap_tree
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 1
    functionsReached:
    - object_type
    - find_object_pos
    - die
    - oid_to_hex
    - tree_entry
    - repo_parse_tree
    - bitmap_set
    - free_tree_buffer
    - fill_bitmap_tree
    - bitmap_get
    - lookup_tree
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int fill_bitmap_tree(struct bitmap_writer *writer,\n\t\t\t    struct
      bitmap *bitmap,\n\t\t\t    struct tree *tree)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap-write.c:519,1
    - Dst: prio_queue_put
      Src: /src/git/pack-bitmap-write.c:521,1
    - Dst: prio_queue_get
      Src: /src/git/pack-bitmap-write.c:525,1
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap-write.c:529,1
    - Dst: pseudo_merge_bitmap_for_commit
      Src: /src/git/pack-bitmap-write.c:532,1
    - Dst: bitmap_for_commit
      Src: /src/git/pack-bitmap-write.c:534,1
    - Dst: rebuild_bitmap
      Src: /src/git/pack-bitmap-write.c:540,1
    - Dst: bitmap_or
      Src: /src/git/pack-bitmap-write.c:541,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap-write.c:542,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap-write.c:549,1
    - Dst: find_object_pos
      Src: /src/git/pack-bitmap-write.c:557,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap-write.c:560,1
    - Dst: prio_queue_put
      Src: /src/git/pack-bitmap-write.c:561,1
    - Dst: repo_get_commit_tree
      Src: /src/git/pack-bitmap-write.c:562,1
    - Dst: find_object_pos
      Src: /src/git/pack-bitmap-write.c:566,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap-write.c:570,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap-write.c:571,1
    - Dst: prio_queue_put
      Src: /src/git/pack-bitmap-write.c:572,1
    - Dst: fill_bitmap_tree
      Src: /src/git/pack-bitmap-write.c:578,1
    - Dst: prio_queue_get
      Src: /src/git/pack-bitmap-write.c:579,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 7
    argNames:
    - writer
    - ent
    - commit
    - queue
    - tree_queue
    - old_bitmap
    - mapping
    argTypes:
    - struct bitmap_writer*
    - struct bb_commit*
    - struct commit*
    - struct prio_queue*
    - struct prio_queue*
    - struct bitmap_index*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 583
    functionName: fill_bitmap_commit
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - pseudo_merge_bitmap_for_commit
    - find_object_pos
    - prio_queue_put
    - bitmap_for_commit
    - prio_queue_get
    - bitmap_set
    - repo_get_commit_tree
    - fill_bitmap_tree
    - bitmap_get
    - bitmap_free
    - bitmap_or
    - rebuild_bitmap
    - bitmap_new
    linkageType: ''
    returnType: int
    signature: "int fill_bitmap_commit(struct bitmap_writer *writer,\n\t\t\t      struct
      bb_commit *ent,\n\t\t\t      struct commit *commit,\n\t\t\t      struct prio_queue
      *queue,\n\t\t\t      struct prio_queue *tree_queue,\n\t\t\t      struct bitmap_index
      *old_bitmap,\n\t\t\t      const uint32_t *mapping)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_to_ewah
      Src: /src/git/pack-bitmap-write.c:591,1
    - Dst: kh_get_oid_map
      Src: /src/git/pack-bitmap-write.c:596,1
    - Dst: kh_end
      Src: /src/git/pack-bitmap-write.c:597,1
    - Dst: die
      Src: /src/git/pack-bitmap-write.c:598,1
    - Dst: _
      Src: /src/git/pack-bitmap-write.c:598,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap-write.c:599,1
    - Dst: kh_value
      Src: /src/git/pack-bitmap-write.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - writer
    - ent
    - commit
    argTypes:
    - struct bitmap_writer*
    - struct bb_commit*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 602
    functionName: store_selected
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - kh_get_oid_map
    - bitmap_to_ewah
    - kh_value
    - _
    - kh_end
    linkageType: ''
    returnType: void
    signature: "void store_selected(struct bitmap_writer *writer,\n\t\t\t   struct
      bb_commit *ent, struct commit *commit)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: start_progress
      Src: /src/git/pack-bitmap-write.c:616,1
    - Dst: trace2_region_enter
      Src: /src/git/pack-bitmap-write.c:619,1
    - Dst: prepare_bitmap_git
      Src: /src/git/pack-bitmap-write.c:622,1
    - Dst: create_bitmap_mapping
      Src: /src/git/pack-bitmap-write.c:624,1
    - Dst: bitmap_builder_init
      Src: /src/git/pack-bitmap-write.c:628,1
    - Dst: bb_data_at
      Src: /src/git/pack-bitmap-write.c:631,1
    - Dst: fill_bitmap_commit
      Src: /src/git/pack-bitmap-write.c:635,1
    - Dst: store_selected
      Src: /src/git/pack-bitmap-write.c:642,1
    - Dst: display_progress
      Src: /src/git/pack-bitmap-write.c:644,1
    - Dst: pop_commit
      Src: /src/git/pack-bitmap-write.c:647,1
    - Dst: bb_data_at
      Src: /src/git/pack-bitmap-write.c:649,1
    - Dst: bitmap_or
      Src: /src/git/pack-bitmap-write.c:652,1
    - Dst: bitmap_dup
      Src: /src/git/pack-bitmap-write.c:654,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap-write.c:661,1
    - Dst: clear_prio_queue
      Src: /src/git/pack-bitmap-write.c:664,1
    - Dst: clear_prio_queue
      Src: /src/git/pack-bitmap-write.c:665,1
    - Dst: bitmap_builder_clear
      Src: /src/git/pack-bitmap-write.c:666,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap-write.c:667,1
    - Dst: free
      Src: /src/git/pack-bitmap-write.c:668,1
    - Dst: trace2_region_leave
      Src: /src/git/pack-bitmap-write.c:670,1
    - Dst: trace2_data_intmax
      Src: /src/git/pack-bitmap-write.c:672,1
    - Dst: trace2_data_intmax
      Src: /src/git/pack-bitmap-write.c:674,1
    - Dst: stop_progress
      Src: /src/git/pack-bitmap-write.c:678,1
    - Dst: compute_xor_offsets
      Src: /src/git/pack-bitmap-write.c:681,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - writer
    argTypes:
    - struct bitmap_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 604
    functionDepth: 4
    functionLinenumber: 604
    functionLinenumberEnd: 683
    functionName: bitmap_writer_build
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - trace2_data_intmax
    - bb_data_at
    - trace2_region_enter
    - free
    - bitmap_or
    - compute_xor_offsets
    - store_selected
    - create_bitmap_mapping
    - bitmap_builder_clear
    - pop_commit
    - prepare_bitmap_git
    - bitmap_builder_init
    - trace2_region_leave
    - display_progress
    - free_bitmap_index
    - bitmap_free
    - bitmap_dup
    - clear_prio_queue
    - start_progress
    - fill_bitmap_commit
    linkageType: ''
    returnType: int
    signature: int bitmap_writer_build(struct bitmap_writer *writer)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - idx
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 710
    functionName: next_commit_index
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int next_commit_index(unsigned int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 717
    functionName: date_compare
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int date_compare(const void *_a, const void *_b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/pack-bitmap-write.c:725,1
    - Dst: bitmap_writer_push_commit
      Src: /src/git/pack-bitmap-write.c:729,1
    - Dst: select_pseudo_merges
      Src: /src/git/pack-bitmap-write.c:731,1
    - Dst: start_progress
      Src: /src/git/pack-bitmap-write.c:737,1
    - Dst: next_commit_index
      Src: /src/git/pack-bitmap-write.c:743,1
    - Dst: bitmap_writer_push_commit
      Src: /src/git/pack-bitmap-write.c:766,1
    - Dst: display_progress
      Src: /src/git/pack-bitmap-write.c:769,1
    - Dst: stop_progress
      Src: /src/git/pack-bitmap-write.c:772,1
    - Dst: select_pseudo_merges
      Src: /src/git/pack-bitmap-write.c:774,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - writer
    - indexed_commits
    - indexed_commits_nr
    argTypes:
    - struct bitmap_writer*
    - struct commit**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 775
    functionName: bitmap_writer_select_commits
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - bitmap_writer_push_commit
    - stop_progress
    - next_commit_index
    - select_pseudo_merges
    - QSORT
    - display_progress
    - start_progress
    linkageType: ''
    returnType: void
    signature: "void bitmap_writer_select_commits(struct bitmap_writer *writer,\n\t\t\t\t
      \ struct commit **indexed_commits,\n\t\t\t\t  unsigned int indexed_commits_nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite
      Src: /src/git/pack-bitmap-write.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - f
    - buf
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 783
    functionName: hashwrite_ewah_helper
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - hashwrite
    linkageType: ''
    returnType: int
    signature: int hashwrite_ewah_helper(void *f, const void *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ewah_serialize_to
      Src: /src/git/pack-bitmap-write.c:790,1
    - Dst: die
      Src: /src/git/pack-bitmap-write.c:791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - f
    - bitmap
    argTypes:
    - struct hashfile*
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 792
    functionName: dump_bitmap
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - ewah_serialize_to
    - die
    linkageType: ''
    returnType: void
    signature: void dump_bitmap(struct hashfile *f, struct ewah_bitmap *bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pos
    - table
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 798
    functionName: oid_access
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *oid_access(size_t pos, const void *table)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_writer_nr_selected_commits
      Src: /src/git/pack-bitmap-write.c:805,1
    - Dst: BUG
      Src: /src/git/pack-bitmap-write.c:808,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap-write.c:809,1
    - Dst: hashfile_total
      Src: /src/git/pack-bitmap-write.c:812,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-bitmap-write.c:814,1
    - Dst: hashwrite_u8
      Src: /src/git/pack-bitmap-write.c:815,1
    - Dst: hashwrite_u8
      Src: /src/git/pack-bitmap-write.c:816,1
    - Dst: dump_bitmap
      Src: /src/git/pack-bitmap-write.c:818,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - writer
    - f
    - offsets
    argTypes:
    - struct bitmap_writer*
    - struct hashfile*
    - off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 820
    functionName: write_selected_commits_v1
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - hashfile_total
    - oid_to_hex
    - dump_bitmap
    - hashwrite_u8
    - bitmap_writer_nr_selected_commits
    - hashwrite_be32
    - BUG
    linkageType: ''
    returnType: void
    signature: "void write_selected_commits_v1(struct bitmap_writer *writer,\n\t\t\t\t
      \     struct hashfile *f, off_t *offsets)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_object_pos
      Src: /src/git/pack-bitmap-write.c:826,1
    - Dst: find_object_pos
      Src: /src/git/pack-bitmap-write.c:827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - _va
    - _vb
    - _data
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 834
    functionName: pseudo_merge_commit_pos_cmp
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - find_object_pos
    linkageType: ''
    returnType: int
    signature: "int pseudo_merge_commit_pos_cmp(const void *_va, const void *_vb,\n\t\t\t\t
      \      void *_data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_writer_nr_selected_commits
      Src: /src/git/pack-bitmap-write.c:844,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pack-bitmap-write.c:847,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pack-bitmap-write.c:848,1
    - Dst: BUG
      Src: /src/git/pack-bitmap-write.c:855,1
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap-write.c:857,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap-write.c:860,1
    - Dst: find_object_pos
      Src: /src/git/pack-bitmap-write.c:861,1
    - Dst: hashfile_total
      Src: /src/git/pack-bitmap-write.c:865,1
    - Dst: bitmap_to_ewah
      Src: /src/git/pack-bitmap-write.c:868,1
    - Dst: hashfile_total
      Src: /src/git/pack-bitmap-write.c:870,1
    - Dst: dump_bitmap
      Src: /src/git/pack-bitmap-write.c:872,1
    - Dst: dump_bitmap
      Src: /src/git/pack-bitmap-write.c:873,1
    - Dst: ewah_free
      Src: /src/git/pack-bitmap-write.c:875,1
    - Dst: st_add
      Src: /src/git/pack-bitmap-write.c:878,1
    - Dst: hashfile_total
      Src: /src/git/pack-bitmap-write.c:878,1
    - Dst: st_mult
      Src: /src/git/pack-bitmap-write.c:879,1
    - Dst: kh_size
      Src: /src/git/pack-bitmap-write.c:879,1
    - Dst: hashfile_total
      Src: /src/git/pack-bitmap-write.c:882,1
    - Dst: kh_size
      Src: /src/git/pack-bitmap-write.c:884,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pack-bitmap-write.c:885,1
    - Dst: kh_begin
      Src: /src/git/pack-bitmap-write.c:887,1
    - Dst: kh_end
      Src: /src/git/pack-bitmap-write.c:887,1
    - Dst: kh_exist
      Src: /src/git/pack-bitmap-write.c:888,1
    - Dst: oid_array_append
      Src: /src/git/pack-bitmap-write.c:890,1
    - Dst: kh_key
      Src: /src/git/pack-bitmap-write.c:890,1
    - Dst: QSORT_S
      Src: /src/git/pack-bitmap-write.c:898,1
    - Dst: kh_get_oid_map
      Src: /src/git/pack-bitmap-write.c:905,1
    - Dst: kh_end
      Src: /src/git/pack-bitmap-write.c:907,1
    - Dst: BUG
      Src: /src/git/pack-bitmap-write.c:908,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap-write.c:909,1
    - Dst: kh_value
      Src: /src/git/pack-bitmap-write.c:911,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-bitmap-write.c:913,1
    - Dst: find_object_pos
      Src: /src/git/pack-bitmap-write.c:913,1
    - Dst: hashwrite_be64
      Src: /src/git/pack-bitmap-write.c:916,1
    - Dst: die
      Src: /src/git/pack-bitmap-write.c:919,1
    - Dst: _
      Src: /src/git/pack-bitmap-write.c:919,1
    - Dst: hashwrite_be64
      Src: /src/git/pack-bitmap-write.c:920,1
    - Dst: st_add3
      Src: /src/git/pack-bitmap-write.c:921,1
    - Dst: st_mult
      Src: /src/git/pack-bitmap-write.c:923,1
    - Dst: BUG
      Src: /src/git/pack-bitmap-write.c:925,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap-write.c:926,1
    - Dst: kh_get_oid_map
      Src: /src/git/pack-bitmap-write.c:934,1
    - Dst: kh_end
      Src: /src/git/pack-bitmap-write.c:936,1
    - Dst: BUG
      Src: /src/git/pack-bitmap-write.c:937,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap-write.c:938,1
    - Dst: kh_value
      Src: /src/git/pack-bitmap-write.c:940,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-bitmap-write.c:944,1
    - Dst: hashwrite_be64
      Src: /src/git/pack-bitmap-write.c:946,1
    - Dst: hashwrite_be64
      Src: /src/git/pack-bitmap-write.c:951,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-bitmap-write.c:953,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-bitmap-write.c:954,1
    - Dst: kh_size
      Src: /src/git/pack-bitmap-write.c:954,1
    - Dst: hashwrite_be64
      Src: /src/git/pack-bitmap-write.c:955,1
    - Dst: hashwrite_be64
      Src: /src/git/pack-bitmap-write.c:956,1
    - Dst: hashfile_total
      Src: /src/git/pack-bitmap-write.c:956,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap-write.c:959,1
    - Dst: oid_array_clear
      Src: /src/git/pack-bitmap-write.c:961,1
    - Dst: free
      Src: /src/git/pack-bitmap-write.c:962,1
    - Dst: free
      Src: /src/git/pack-bitmap-write.c:963,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 2
    argNames:
    - writer
    - f
    argTypes:
    - struct bitmap_writer*
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 964
    functionName: write_pseudo_merges
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - hashfile_total
    - CALLOC_ARRAY
    - kh_get_oid_map
    - free
    - st_add
    - find_object_pos
    - die
    - oid_array_clear
    - bitmap_to_ewah
    - bitmap_set
    - kh_value
    - kh_exist
    - st_add3
    - oid_array_append
    - kh_begin
    - oid_to_hex
    - dump_bitmap
    - bitmap_writer_nr_selected_commits
    - hashwrite_be32
    - _
    - ewah_free
    - kh_end
    - st_mult
    - bitmap_new
    - kh_key
    - hashwrite_be64
    - kh_size
    - bitmap_free
    - BUG
    - QSORT_S
    linkageType: ''
    returnType: void
    signature: "void write_pseudo_merges(struct bitmap_writer *writer,\n\t\t\t\tstruct
      hashfile *f)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - _va
    - _vb
    - _data
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 978
    functionName: table_cmp
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int table_cmp(const void *_va, const void *_vb, void *_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-bitmap-write.c:986,1
    - Dst: bitmap_writer_nr_selected_commits
      Src: /src/git/pack-bitmap-write.c:986,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-bitmap-write.c:987,1
    - Dst: bitmap_writer_nr_selected_commits
      Src: /src/git/pack-bitmap-write.c:987,1
    - Dst: bitmap_writer_nr_selected_commits
      Src: /src/git/pack-bitmap-write.c:989,1
    - Dst: QSORT_S
      Src: /src/git/pack-bitmap-write.c:997,1
    - Dst: bitmap_writer_nr_selected_commits
      Src: /src/git/pack-bitmap-write.c:997,1
    - Dst: bitmap_writer_nr_selected_commits
      Src: /src/git/pack-bitmap-write.c:1002,1
    - Dst: trace2_region_enter
      Src: /src/git/pack-bitmap-write.c:1005,1
    - Dst: bitmap_writer_nr_selected_commits
      Src: /src/git/pack-bitmap-write.c:1006,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-bitmap-write.c:1028,1
    - Dst: hashwrite_be64
      Src: /src/git/pack-bitmap-write.c:1029,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-bitmap-write.c:1030,1
    - Dst: trace2_region_leave
      Src: /src/git/pack-bitmap-write.c:1032,1
    - Dst: free
      Src: /src/git/pack-bitmap-write.c:1034,1
    - Dst: free
      Src: /src/git/pack-bitmap-write.c:1035,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - writer
    - f
    - offsets
    argTypes:
    - struct bitmap_writer*
    - struct hashfile*
    - off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 1036
    functionName: write_lookup_table
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be64
    - bitmap_writer_nr_selected_commits
    - hashwrite_be32
    - ALLOC_ARRAY
    - trace2_region_leave
    - trace2_region_enter
    - free
    - QSORT_S
    linkageType: ''
    returnType: void
    signature: "void write_lookup_table(struct bitmap_writer *writer, struct hashfile
      *f,\n\t\t\t       off_t *offsets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite_be32
      Src: /src/git/pack-bitmap-write.c:1046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - f
    - index
    - index_nr
    argTypes:
    - struct hashfile*
    - struct pack_idx_entry**
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1048
    functionName: write_hash_cache
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    linkageType: ''
    returnType: void
    signature: "void write_hash_cache(struct hashfile *f,\n\t\t\t     struct pack_idx_entry
      **index,\n\t\t\t     uint32_t index_nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashcpy
      Src: /src/git/pack-bitmap-write.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - sha1
    argTypes:
    - struct bitmap_writer*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1054
    functionName: bitmap_writer_set_checksum
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - hashcpy
    linkageType: ''
    returnType: void
    signature: "void bitmap_writer_set_checksum(struct bitmap_writer *writer,\n\t\t\t\tconst
      unsigned char *sha1)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: odb_mkstemp
      Src: /src/git/pack-bitmap-write.c:1070,1
    - Dst: hashfd
      Src: /src/git/pack-bitmap-write.c:1076,1
    - Dst: memcpy
      Src: /src/git/pack-bitmap-write.c:1078,1
    - Dst: htons
      Src: /src/git/pack-bitmap-write.c:1079,1
    - Dst: htons
      Src: /src/git/pack-bitmap-write.c:1080,1
    - Dst: htonl
      Src: /src/git/pack-bitmap-write.c:1081,1
    - Dst: bitmap_writer_nr_selected_commits
      Src: /src/git/pack-bitmap-write.c:1081,1
    - Dst: hashcpy
      Src: /src/git/pack-bitmap-write.c:1082,1
    - Dst: hashwrite
      Src: /src/git/pack-bitmap-write.c:1084,1
    - Dst: dump_bitmap
      Src: /src/git/pack-bitmap-write.c:1085,1
    - Dst: dump_bitmap
      Src: /src/git/pack-bitmap-write.c:1086,1
    - Dst: dump_bitmap
      Src: /src/git/pack-bitmap-write.c:1087,1
    - Dst: dump_bitmap
      Src: /src/git/pack-bitmap-write.c:1088,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pack-bitmap-write.c:1091,1
    - Dst: bitmap_writer_nr_selected_commits
      Src: /src/git/pack-bitmap-write.c:1099,1
    - Dst: oid_pos
      Src: /src/git/pack-bitmap-write.c:1101,1
    - Dst: BUG
      Src: /src/git/pack-bitmap-write.c:1106,1
    - Dst: write_selected_commits_v1
      Src: /src/git/pack-bitmap-write.c:1110,1
    - Dst: write_pseudo_merges
      Src: /src/git/pack-bitmap-write.c:1113,1
    - Dst: write_lookup_table
      Src: /src/git/pack-bitmap-write.c:1116,1
    - Dst: write_hash_cache
      Src: /src/git/pack-bitmap-write.c:1119,1
    - Dst: finalize_hashfile
      Src: /src/git/pack-bitmap-write.c:1121,1
    - Dst: adjust_shared_perm
      Src: /src/git/pack-bitmap-write.c:1124,1
    - Dst: die_errno
      Src: /src/git/pack-bitmap-write.c:1125,1
    - Dst: rename
      Src: /src/git/pack-bitmap-write.c:1127,1
    - Dst: die_errno
      Src: /src/git/pack-bitmap-write.c:1128,1
    - Dst: strbuf_release
      Src: /src/git/pack-bitmap-write.c:1130,1
    - Dst: free
      Src: /src/git/pack-bitmap-write.c:1131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - writer
    - index
    - filename
    - options
    argTypes:
    - struct bitmap_writer*
    - struct pack_idx_entry**
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1056
    functionDepth: 3
    functionLinenumber: 1056
    functionLinenumberEnd: 1132
    functionName: bitmap_writer_finish
    functionSourceFile: /src/git/pack-bitmap-write.c
    functionUses: 0
    functionsReached:
    - write_lookup_table
    - odb_mkstemp
    - hashfd
    - CALLOC_ARRAY
    - write_pseudo_merges
    - adjust_shared_perm
    - oid_pos
    - free
    - strbuf_release
    - write_selected_commits_v1
    - htonl
    - memcpy
    - write_hash_cache
    - dump_bitmap
    - bitmap_writer_nr_selected_commits
    - hashwrite
    - die_errno
    - hashcpy
    - rename
    - finalize_hashfile
    - BUG
    - htons
    linkageType: ''
    returnType: void
    signature: "void bitmap_writer_finish(struct bitmap_writer *writer,\n\t\t\t  struct
      pack_idx_entry **index,\n\t\t\t  const char *filename,\n\t\t\t  uint16_t options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readdir
      Src: /src/git/dir.c:84,1
    - Dst: is_dot_or_dotdot
      Src: /src/git/dir.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: readdir_skip_dot_and_dotdot
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - is_dot_or_dotdot
    - readdir
    linkageType: ''
    returnType: struct dirent
    signature: struct dirent *readdir_skip_dot_and_dotdot(DIR *dirp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/dir.c:96,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/dir.c:101,1
    - Dst: get_dtype
      Src: /src/git/dir.c:102,1
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:103,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:104,1
    - Dst: fn
      Src: /src/git/dir.c:107,1
    - Dst: strbuf_addch
      Src: /src/git/dir.c:109,1
    - Dst: for_each_file_in_dir
      Src: /src/git/dir.c:110,1
    - Dst: closedir
      Src: /src/git/dir.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - path
    - fn
    - data
    argTypes:
    - struct strbuf*
    - file_iterator
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 116
    functionName: for_each_file_in_dir
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - get_dtype
    - fn
    - strbuf_setlen
    - strbuf_addch
    - opendir
    - readdir_skip_dot_and_dotdot
    - for_each_file_in_dir
    - strbuf_addstr
    - closedir
    linkageType: ''
    returnType: int
    signature: int for_each_file_in_dir(struct strbuf *path, file_iterator fn, const
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: count_slashes
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count_slashes(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/dir.c:129,1
    - Dst: strcmp
      Src: /src/git/dir.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: git_fspathcmp
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: int git_fspathcmp(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fspathcmp
      Src: /src/git/dir.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: fspatheq
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - fspathcmp
    linkageType: ''
    returnType: int
    signature: int fspatheq(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/git/dir.c:139,1
    - Dst: strncmp
      Src: /src/git/dir.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - count
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: git_fspathncmp
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int git_fspathncmp(const char *a, const char *b, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/dir.c:144,1
    - Dst: strlen
      Src: /src/git/dir.c:144,1
    - Dst: fspatheq
      Src: /src/git/dir.c:147,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:150,1
    - Dst: fspathncmp
      Src: /src/git/dir.c:150,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:151,1
    - Dst: fspathncmp
      Src: /src/git/dir.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: paths_collide
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strlen
    - fspatheq
    - fspathncmp
    linkageType: ''
    returnType: int
    signature: int paths_collide(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strihash
      Src: /src/git/dir.c:156,1
    - Dst: strhash
      Src: /src/git/dir.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: fspathhash
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strhash
    - strihash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fspathhash(const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ps_strncmp
      Src: /src/git/dir.c:164,1
    - Dst: strlen
      Src: /src/git/dir.c:170,1
    - Dst: strlen
      Src: /src/git/dir.c:171,1
    - Dst: ps_strcmp
      Src: /src/git/dir.c:173,1
    - Dst: wildmatch
      Src: /src/git/dir.c:177,1
    - Dst: wildmatch
      Src: /src/git/dir.c:182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - item
    - pattern
    - string
    - prefix
    argTypes:
    - struct pathspec_item*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 184
    functionName: git_fnmatch
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - ps_strcmp
    - strlen
    - ps_strncmp
    - wildmatch
    linkageType: ''
    returnType: int
    signature: "int git_fnmatch(const struct pathspec_item *item,\n\t\tconst char
      *pattern, const char *string,\n\t\tint prefix)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/dir.c:197,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:201,1
    - Dst: wildmatch
      Src: /src/git/dir.c:207,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:209,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - pattern
    - patternlen
    - string
    - stringlen
    - flags
    argTypes:
    - char*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 213
    functionName: fnmatch_icase_mem
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_add
    - wildmatch
    linkageType: ''
    returnType: int
    signature: "int fnmatch_icase_mem(const char *pattern, int patternlen,\n\t\t\t
      \    const char *string, int stringlen,\n\t\t\t     int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GUARD_PATHSPEC
      Src: /src/git/dir.c:227,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 1
    argNames:
    - pathspec
    argTypes:
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 259
    functionName: common_prefix_len
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - GUARD_PATHSPEC
    linkageType: ''
    returnType: size_t
    signature: size_t common_prefix_len(const struct pathspec *pathspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_prefix_len
      Src: /src/git/dir.c:267,1
    - Dst: xmemdupz
      Src: /src/git/dir.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pathspec
    argTypes:
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: common_prefix
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - common_prefix_len
    linkageType: ''
    returnType: char
    signature: char *common_prefix(const struct pathspec *pathspec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/dir.c:281,1
    - Dst: common_prefix_len
      Src: /src/git/dir.c:287,1
    - Dst: read_directory
      Src: /src/git/dir.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dir
    - istate
    - pathspec
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 294
    functionName: fill_directory
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - read_directory
    - common_prefix_len
    - BUG
    linkageType: ''
    returnType: int
    signature: "int fill_directory(struct dir_struct *dir,\n\t\t   struct index_state
      *istate,\n\t\t   const struct pathspec *pathspec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - name
    - namelen
    - depth
    - max_depth
    argTypes:
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 309
    functionName: within_depth
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int within_depth(const char *name, int namelen,\n\t\t\tint depth,
      int max_depth)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/dir.c:333,1
    - Dst: free
      Src: /src/git/dir.c:335,1
    - Dst: memset
      Src: /src/git/dir.c:340,1
    - Dst: oidcpy
      Src: /src/git/dir.c:341,1
    - Dst: free
      Src: /src/git/dir.c:345,1
    - Dst: xrealloc
      Src: /src/git/dir.c:350,1
    - Dst: st_add
      Src: /src/git/dir.c:350,1
    - Dst: xsize_t
      Src: /src/git/dir.c:354,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - oid
    - oid_stat
    - size_out
    - data_out
    argTypes:
    - struct object_id*
    - struct oid_stat*
    - size_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 358
    functionName: do_read_blob
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - memset
    - oidcpy
    - xrealloc
    - xsize_t
    - free
    - odb_read_object
    - st_add
    linkageType: ''
    returnType: int
    signature: "int do_read_blob(const struct object_id *oid, struct oid_stat *oid_stat,\n\t\t\tsize_t
      *size_out, char **data_out)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/dir.c:425,1
    - Dst: BUG
      Src: /src/git/dir.c:430,1
    - Dst: match_pathspec_attrs
      Src: /src/git/dir.c:431,1
    - Dst: ps_strncmp
      Src: /src/git/dir.c:439,1
    - Dst: ps_strncmp
      Src: /src/git/dir.c:448,1
    - Dst: git_fnmatch
      Src: /src/git/dir.c:452,1
    - Dst: ps_strncmp
      Src: /src/git/dir.c:463,1
    - Dst: ps_strncmp
      Src: /src/git/dir.c:468,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 31
    argCount: 6
    argNames:
    - istate
    - item
    - prefix
    - name
    - namelen
    - flags
    argTypes:
    - struct index_state*
    - struct pathspec_item*
    - int
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 492
    functionName: match_pathspec_item
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - match_pathspec_attrs
    - ps_strncmp
    - strncmp
    - BUG
    - git_fnmatch
    linkageType: ''
    returnType: int
    signature: "int match_pathspec_item(struct index_state *istate,\n\t\t\t       const
      struct pathspec_item *item, int prefix,\n\t\t\t       const char *name, int
      namelen, unsigned flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GUARD_PATHSPEC
      Src: /src/git/dir.c:521,1
    - Dst: within_depth
      Src: /src/git/dir.c:536,1
    - Dst: match_pathspec_item
      Src: /src/git/dir.c:561,1
    - Dst: within_depth
      Src: /src/git/dir.c:570,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 34
    argCount: 7
    argNames:
    - istate
    - ps
    - name
    - namelen
    - prefix
    - seen
    - flags
    argTypes:
    - struct index_state*
    - struct pathspec*
    - char*
    - int
    - int
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 583
    functionName: do_match_pathspec
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - GUARD_PATHSPEC
    - match_pathspec_item
    - within_depth
    linkageType: ''
    returnType: int
    signature: "int do_match_pathspec(struct index_state *istate,\n\t\t\t     const
      struct pathspec *ps,\n\t\t\t     const char *name, int namelen,\n\t\t\t     int
      prefix, char *seen,\n\t\t\t     unsigned flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_match_pathspec
      Src: /src/git/dir.c:591,1
    - Dst: do_match_pathspec
      Src: /src/git/dir.c:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - istate
    - ps
    - name
    - namelen
    - prefix
    - seen
    - flags
    argTypes:
    - struct index_state*
    - struct pathspec*
    - char*
    - int
    - int
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 599
    functionName: match_pathspec_with_flags
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - do_match_pathspec
    linkageType: ''
    returnType: int
    signature: "int match_pathspec_with_flags(struct index_state *istate,\n\t\t\t\t
      \    const struct pathspec *ps,\n\t\t\t\t     const char *name, int namelen,\n\t\t\t\t
      \    int prefix, char *seen, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_pathspec_with_flags
      Src: /src/git/dir.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - istate
    - ps
    - name
    - namelen
    - prefix
    - seen
    - is_dir
    argTypes:
    - struct index_state*
    - struct pathspec*
    - char*
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 601
    functionDepth: 5
    functionLinenumber: 601
    functionLinenumberEnd: 609
    functionName: match_pathspec
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - match_pathspec_with_flags
    linkageType: ''
    returnType: int
    signature: "int match_pathspec(struct index_state *istate,\n\t\t   const struct
      pathspec *ps,\n\t\t   const char *name, int namelen,\n\t\t   int prefix, char
      *seen, int is_dir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_pathspec_with_flags
      Src: /src/git/dir.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - istate
    - ps
    - name
    - namelen
    - prefix
    - seen
    - is_dir
    argTypes:
    - struct index_state*
    - struct pathspec*
    - char*
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 611
    functionDepth: 5
    functionLinenumber: 611
    functionLinenumberEnd: 619
    functionName: match_leading_pathspec
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - match_pathspec_with_flags
    linkageType: ''
    returnType: int
    signature: "int match_leading_pathspec(struct index_state *istate,\n\t\t\t   const
      struct pathspec *ps,\n\t\t\t   const char *name, int namelen,\n\t\t\t   int
      prefix, char *seen, int is_dir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_pathspec_with_flags
      Src: /src/git/dir.c:629,1
    - Dst: strlen
      Src: /src/git/dir.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - istate
    - ps
    - submodule_name
    - seen
    argTypes:
    - struct index_state*
    - struct pathspec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 624
    functionDepth: 5
    functionLinenumber: 624
    functionLinenumberEnd: 635
    functionName: submodule_path_match
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strlen
    - match_pathspec_with_flags
    linkageType: ''
    returnType: int
    signature: "int submodule_path_match(struct index_state *istate,\n\t\t\t const
      struct pathspec *ps,\n\t\t\t const char *submodule_name,\n\t\t\t char *seen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/dir.c:660,1
    - Dst: error
      Src: /src/git/dir.c:670,1
    - Dst: _
      Src: /src/git/dir.c:670,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 2
    argNames:
    - ps_matched
    - pathspec
    argTypes:
    - char*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 675
    functionName: report_path_error
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int report_path_error(const char *ps_matched,\n\t\t      const struct
      pathspec *pathspec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_glob_special
      Src: /src/git/dir.c:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - match
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: simple_length
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - is_glob_special
    linkageType: ''
    returnType: int
    signature: int simple_length(const char *match)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simple_length
      Src: /src/git/dir.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 695
    functionName: no_wildcard
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - simple_length
    linkageType: ''
    returnType: int
    signature: int no_wildcard(const char *string)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/dir.c:710,1
    - Dst: simple_length
      Src: /src/git/dir.c:721,1
    - Dst: no_wildcard
      Src: /src/git/dir.c:729,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - pattern
    - patternlen
    - flags
    - nowildcardlen
    argTypes:
    - char**
    - int*
    - unsigned*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 733
    functionName: parse_path_pattern
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strlen
    - simple_length
    - no_wildcard
    linkageType: ''
    returnType: void
    signature: "void parse_path_pattern(const char **pattern,\n\t\t\t   int *patternlen,\n\t\t\t
      \  unsigned *flags,\n\t\t\t   int *nowildcardlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/dir.c:741,1
    - Dst: container_of
      Src: /src/git/dir.c:743,1
    - Dst: fspathncmp
      Src: /src/git/dir.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cmp_data
    - a
    - b
    - UNUSED
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 750
    functionName: pl_hashmap_cmp
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - container_of
    - fspathncmp
    linkageType: ''
    returnType: int
    signature: "int pl_hashmap_cmp(const void *cmp_data UNUSED,\n\t\t   const struct
      hashmap_entry *a,\n\t\t   const struct hashmap_entry *b,\n\t\t   const void
      *key UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/dir.c:756,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 780
    functionName: dup_and_filter_pattern
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *dup_and_filter_pattern(const char *pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/dir.c:787,1
    - Dst: free
      Src: /src/git/dir.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct hashmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 791
    functionName: clear_pattern_entry_hashmap
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - hashmap_for_each_entry
    - free
    linkageType: ''
    returnType: void
    signature: void clear_pattern_entry_hashmap(struct hashmap *map)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/dir.c:805,1
    - Dst: strcmp
      Src: /src/git/dir.c:810,1
    - Dst: strstr
      Src: /src/git/dir.c:817,1
    - Dst: warning
      Src: /src/git/dir.c:819,1
    - Dst: _
      Src: /src/git/dir.c:819,1
    - Dst: strcmp
      Src: /src/git/dir.c:824,1
    - Dst: warning
      Src: /src/git/dir.c:826,1
    - Dst: _
      Src: /src/git/dir.c:826,1
    - Dst: is_glob_special
      Src: /src/git/dir.c:836,1
    - Dst: is_glob_special
      Src: /src/git/dir.c:845,1
    - Dst: warning
      Src: /src/git/dir.c:855,1
    - Dst: _
      Src: /src/git/dir.c:855,1
    - Dst: strcmp
      Src: /src/git/dir.c:865,1
    - Dst: warning
      Src: /src/git/dir.c:870,1
    - Dst: _
      Src: /src/git/dir.c:870,1
    - Dst: dup_and_filter_pattern
      Src: /src/git/dir.c:874,1
    - Dst: xmalloc
      Src: /src/git/dir.c:876,1
    - Dst: hashmap_entry_init
      Src: /src/git/dir.c:879,1
    - Dst: fspathhash
      Src: /src/git/dir.c:880,1
    - Dst: hashmap_get_entry
      Src: /src/git/dir.c:882,1
    - Dst: warning
      Src: /src/git/dir.c:885,1
    - Dst: _
      Src: /src/git/dir.c:885,1
    - Dst: free
      Src: /src/git/dir.c:887,1
    - Dst: free
      Src: /src/git/dir.c:888,1
    - Dst: hashmap_add
      Src: /src/git/dir.c:892,1
    - Dst: hashmap_remove_entry
      Src: /src/git/dir.c:893,1
    - Dst: free
      Src: /src/git/dir.c:895,1
    - Dst: free
      Src: /src/git/dir.c:896,1
    - Dst: free
      Src: /src/git/dir.c:898,1
    - Dst: warning
      Src: /src/git/dir.c:903,1
    - Dst: _
      Src: /src/git/dir.c:903,1
    - Dst: xmalloc
      Src: /src/git/dir.c:908,1
    - Dst: dup_and_filter_pattern
      Src: /src/git/dir.c:910,1
    - Dst: hashmap_entry_init
      Src: /src/git/dir.c:912,1
    - Dst: fspathhash
      Src: /src/git/dir.c:913,1
    - Dst: hashmap_add
      Src: /src/git/dir.c:915,1
    - Dst: hashmap_get_entry
      Src: /src/git/dir.c:917,1
    - Dst: warning
      Src: /src/git/dir.c:919,1
    - Dst: _
      Src: /src/git/dir.c:919,1
    - Dst: warning
      Src: /src/git/dir.c:927,1
    - Dst: _
      Src: /src/git/dir.c:927,1
    - Dst: clear_pattern_entry_hashmap
      Src: /src/git/dir.c:928,1
    - Dst: clear_pattern_entry_hashmap
      Src: /src/git/dir.c:929,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 95
    argCount: 2
    argNames:
    - pl
    - given
    argTypes:
    - struct pattern_list*
    - struct path_pattern*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 931
    functionName: add_pattern_to_hashsets
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - hashmap_add
    - is_glob_special
    - strstr
    - dup_and_filter_pattern
    - hashmap_remove_entry
    - clear_pattern_entry_hashmap
    - hashmap_entry_init
    - free
    - xmalloc
    - strcmp
    - hashmap_get_entry
    - _
    - fspathhash
    - warning
    linkageType: ''
    returnType: void
    signature: void add_pattern_to_hashsets(struct pattern_list *pl, struct path_pattern
      *given)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/dir.c:941,1
    - Dst: fspathhash
      Src: /src/git/dir.c:941,1
    - Dst: hashmap_get_entry
      Src: /src/git/dir.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - map
    - pattern
    argTypes:
    - struct hashmap*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 943
    functionName: hashmap_contains_path
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - fspathhash
    - hashmap_entry_init
    - hashmap_get_entry
    linkageType: ''
    returnType: int
    signature: "int hashmap_contains_path(struct hashmap *map,\n\t\t\t\t struct strbuf
      *pattern)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:951,1
    - Dst: strbuf_addch
      Src: /src/git/dir.c:954,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:956,1
    - Dst: strrchr
      Src: /src/git/dir.c:958,1
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:961,1
    - Dst: hashmap_contains_path
      Src: /src/git/dir.c:963,1
    - Dst: strrchr
      Src: /src/git/dir.c:966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - map
    - path
    - buffer
    argTypes:
    - struct hashmap*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 945
    functionDepth: 3
    functionLinenumber: 945
    functionLinenumberEnd: 970
    functionName: hashmap_contains_parent
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strrchr
    - strbuf_setlen
    - strbuf_addch
    - hashmap_contains_path
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int hashmap_contains_parent(struct hashmap *map,\n\t\t\t    const
      char *path,\n\t\t\t    struct strbuf *buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_path_pattern
      Src: /src/git/dir.c:980,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/dir.c:981,1
    - Dst: ALLOC_GROW
      Src: /src/git/dir.c:988,1
    - Dst: add_pattern_to_hashsets
      Src: /src/git/dir.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - string
    - base
    - baselen
    - pl
    - srcpos
    argTypes:
    - char*
    - char*
    - int
    - struct pattern_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 972
    functionDepth: 4
    functionLinenumber: 972
    functionLinenumberEnd: 993
    functionName: add_pattern
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - parse_path_pattern
    - FLEX_ALLOC_MEM
    - ALLOC_GROW
    - add_pattern_to_hashsets
    linkageType: ''
    returnType: void
    signature: "void add_pattern(const char *string, const char *base,\n\t\t int baselen,
      struct pattern_list *pl, int srcpos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/dir.c:1002,1
    - Dst: index_name_pos
      Src: /src/git/dir.c:1003,1
    - Dst: ce_skip_worktree
      Src: /src/git/dir.c:1006,1
    - Dst: do_read_blob
      Src: /src/git/dir.c:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - istate
    - path
    - size_out
    - data_out
    - oid_stat
    argTypes:
    - struct index_state*
    - char*
    - size_t*
    - char**
    - struct oid_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1010
    functionName: read_skip_worktree_file_from_index
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strlen
    - ce_skip_worktree
    - index_name_pos
    - do_read_blob
    linkageType: ''
    returnType: int
    signature: "int read_skip_worktree_file_from_index(struct index_state *istate,\n\t\t\t\t\t
      \     const char *path,\n\t\t\t\t\t      size_t *size_out, char **data_out,\n\t\t\t\t\t
      \     struct oid_stat *oid_stat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/dir.c:1021,1
    - Dst: free
      Src: /src/git/dir.c:1022,1
    - Dst: clear_pattern_entry_hashmap
      Src: /src/git/dir.c:1023,1
    - Dst: clear_pattern_entry_hashmap
      Src: /src/git/dir.c:1024,1
    - Dst: memset
      Src: /src/git/dir.c:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pl
    argTypes:
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1027
    functionName: clear_pattern_list
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - memset
    - clear_pattern_entry_hashmap
    - free
    linkageType: ''
    returnType: void
    signature: void clear_pattern_list(struct pattern_list *pl)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1050
    functionName: trim_trailing_spaces
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void trim_trailing_spaces(char *buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/dir.c:1074,1
    - Dst: strlen
      Src: /src/git/dir.c:1075,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/dir.c:1087,1
    - Dst: ALLOC_GROW
      Src: /src/git/dir.c:1089,1
    - Dst: MOVE_ARRAY
      Src: /src/git/dir.c:1090,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - uc
    - dir
    - name
    - len
    argTypes:
    - struct untracked_cache*
    - struct untracked_cache_dir*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1095
    functionName: lookup_untracked
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - MOVE_ARRAY
    - FLEX_ALLOC_MEM
    - strlen
    - ALLOC_GROW
    - strncmp
    linkageType: ''
    returnType: struct untracked_cache_dir
    signature: "struct untracked_cache_dir *lookup_untracked(struct untracked_cache
      *uc,\n\t\t\t\t\t\t    struct untracked_cache_dir *dir,\n\t\t\t\t\t\t    const
      char *name, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/dir.c:1102,1
    - Dst: do_invalidate_gitignore
      Src: /src/git/dir.c:1105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dir
    argTypes:
    - struct untracked_cache_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1106
    functionName: do_invalidate_gitignore
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - do_invalidate_gitignore
    - free
    linkageType: ''
    returnType: void
    signature: void do_invalidate_gitignore(struct untracked_cache_dir *dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_invalidate_gitignore
      Src: /src/git/dir.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - uc
    - dir
    argTypes:
    - struct untracked_cache*
    - struct untracked_cache_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1108
    functionDepth: 2
    functionLinenumber: 1108
    functionLinenumberEnd: 1113
    functionName: invalidate_gitignore
    functionSourceFile: /src/git/dir.c
    functionUses: 2
    functionsReached:
    - do_invalidate_gitignore
    linkageType: ''
    returnType: void
    signature: "void invalidate_gitignore(struct untracked_cache *uc,\n\t\t\t\t struct
      untracked_cache_dir *dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/dir.c:1131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - uc
    - dir
    argTypes:
    - struct untracked_cache*
    - struct untracked_cache_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1135
    functionName: invalidate_directory
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void invalidate_directory(struct untracked_cache *uc,\n\t\t\t\t struct
      untracked_cache_dir *dir)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: open_nofollow
      Src: /src/git/dir.c:1160,1
    - Dst: open
      Src: /src/git/dir.c:1162,1
    - Dst: fstat
      Src: /src/git/dir.c:1164,1
    - Dst: warn_on_fopen_errors
      Src: /src/git/dir.c:1166,1
    - Dst: close
      Src: /src/git/dir.c:1168,1
    - Dst: read_skip_worktree_file_from_index
      Src: /src/git/dir.c:1171,1
    - Dst: xsize_t
      Src: /src/git/dir.c:1177,1
    - Dst: fill_stat_data
      Src: /src/git/dir.c:1180,1
    - Dst: oidcpy
      Src: /src/git/dir.c:1181,1
    - Dst: close
      Src: /src/git/dir.c:1184,1
    - Dst: xmallocz
      Src: /src/git/dir.c:1187,1
    - Dst: read_in_full
      Src: /src/git/dir.c:1188,1
    - Dst: free
      Src: /src/git/dir.c:1189,1
    - Dst: close
      Src: /src/git/dir.c:1190,1
    - Dst: close
      Src: /src/git/dir.c:1194,1
    - Dst: match_stat_data_racy
      Src: /src/git/dir.c:1198,1
    - Dst: index_name_pos
      Src: /src/git/dir.c:1201,1
    - Dst: strlen
      Src: /src/git/dir.c:1201,1
    - Dst: ce_stage
      Src: /src/git/dir.c:1202,1
    - Dst: ce_uptodate
      Src: /src/git/dir.c:1203,1
    - Dst: would_convert_to_git
      Src: /src/git/dir.c:1204,1
    - Dst: oidcpy
      Src: /src/git/dir.c:1205,1
    - Dst: hash_object_file
      Src: /src/git/dir.c:1208,1
    - Dst: fill_stat_data
      Src: /src/git/dir.c:1210,1
    - Dst: warning
      Src: /src/git/dir.c:1216,1
    - Dst: free
      Src: /src/git/dir.c:1217,1
    - Dst: add_patterns_from_buffer
      Src: /src/git/dir.c:1221,1
    - Dst: free
      Src: /src/git/dir.c:1222,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 7
    argNames:
    - fname
    - base
    - baselen
    - pl
    - istate
    - flags
    - oid_stat
    argTypes:
    - char*
    - char*
    - int
    - struct pattern_list*
    - struct index_state*
    - unsigned
    - struct oid_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1224
    functionName: add_patterns
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - hash_object_file
    - oidcpy
    - xsize_t
    - free
    - open_nofollow
    - index_name_pos
    - ce_uptodate
    - xmallocz
    - read_in_full
    - fill_stat_data
    - warning
    - add_patterns_from_buffer
    - ce_stage
    - open
    - fstat
    - match_stat_data_racy
    - would_convert_to_git
    - strlen
    - close
    - warn_on_fopen_errors
    - read_skip_worktree_file_from_index
    linkageType: ''
    returnType: int
    signature: "int add_patterns(const char *fname, const char *base, int baselen,\n\t\t\tstruct
      pattern_list *pl, struct index_state *istate,\n\t\t\tunsigned flags, struct
      oid_stat *oid_stat)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/dir.c:1234,1
    - Dst: hashmap_init
      Src: /src/git/dir.c:1235,1
    - Dst: skip_utf8_bom
      Src: /src/git/dir.c:1237,1
    - Dst: trim_trailing_spaces
      Src: /src/git/dir.c:1246,1
    - Dst: add_pattern
      Src: /src/git/dir.c:1247,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - buf
    - size
    - base
    - baselen
    - pl
    argTypes:
    - char*
    - size_t
    - char*
    - int
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1226
    functionDepth: 5
    functionLinenumber: 1226
    functionLinenumberEnd: 1254
    functionName: add_patterns_from_buffer
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - hashmap_init
    - trim_trailing_spaces
    - skip_utf8_bom
    - add_pattern
    linkageType: ''
    returnType: int
    signature: "int add_patterns_from_buffer(char *buf, size_t size,\n\t\t\t     const
      char *base, int baselen,\n\t\t\t     struct pattern_list *pl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_patterns
      Src: /src/git/dir.c:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - fname
    - base
    - baselen
    - pl
    - istate
    - flags
    argTypes:
    - char*
    - char*
    - int
    - struct pattern_list*
    - struct index_state*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1256
    functionDepth: 4
    functionLinenumber: 1256
    functionLinenumberEnd: 1262
    functionName: add_patterns_from_file_to_list
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - add_patterns
    linkageType: ''
    returnType: int
    signature: "int add_patterns_from_file_to_list(const char *fname, const char *base,\n\t\t\t\t
      \  int baselen, struct pattern_list *pl,\n\t\t\t\t   struct index_state *istate,\n\t\t\t\t
      \  unsigned flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_read_blob
      Src: /src/git/dir.c:1273,1
    - Dst: warning
      Src: /src/git/dir.c:1278,1
    - Dst: oid_to_hex
      Src: /src/git/dir.c:1279,1
    - Dst: free
      Src: /src/git/dir.c:1280,1
    - Dst: add_patterns_from_buffer
      Src: /src/git/dir.c:1284,1
    - Dst: free
      Src: /src/git/dir.c:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - oid
    - base
    - baselen
    - pl
    argTypes:
    - struct object_id*
    - char*
    - int
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1264
    functionDepth: 6
    functionLinenumber: 1264
    functionLinenumberEnd: 1287
    functionName: add_patterns_from_blob_to_list
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - do_read_blob
    - warning
    - free
    - add_patterns_from_buffer
    linkageType: ''
    returnType: int
    signature: "int add_patterns_from_blob_to_list(\n\tstruct object_id *oid,\n\tconst
      char *base, int baselen,\n\tstruct pattern_list *pl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/dir.c:1296,1
    - Dst: memset
      Src: /src/git/dir.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - dir
    - group_type
    - src
    argTypes:
    - struct dir_struct*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1301
    functionName: add_pattern_list
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - memset
    - ALLOC_GROW
    linkageType: ''
    returnType: struct pattern_list
    signature: "struct pattern_list *add_pattern_list(struct dir_struct *dir,\n\t\t\t\t
      \     int group_type, const char *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_pattern_list
      Src: /src/git/dir.c:1317,1
    - Dst: add_patterns
      Src: /src/git/dir.c:1318,1
    - Dst: die
      Src: /src/git/dir.c:1319,1
    - Dst: _
      Src: /src/git/dir.c:1319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dir
    - fname
    - oid_stat
    argTypes:
    - struct dir_struct*
    - char*
    - struct oid_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1306
    functionDepth: 4
    functionLinenumber: 1306
    functionLinenumberEnd: 1320
    functionName: add_patterns_from_file_1
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - add_patterns
    - add_pattern_list
    - die
    - _
    linkageType: ''
    returnType: void
    signature: "void add_patterns_from_file_1(struct dir_struct *dir, const char *fname,\n\t\t\t\t
      \    struct oid_stat *oid_stat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_patterns_from_file_1
      Src: /src/git/dir.c:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dir
    - fname
    argTypes:
    - struct dir_struct*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1322
    functionDepth: 5
    functionLinenumber: 1322
    functionLinenumberEnd: 1326
    functionName: add_patterns_from_file
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - add_patterns_from_file_1
    linkageType: ''
    returnType: void
    signature: void add_patterns_from_file(struct dir_struct *dir, const char *fname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fspathncmp
      Src: /src/git/dir.c:1334,1
    - Dst: fspathncmp
      Src: /src/git/dir.c:1339,1
    - Dst: fnmatch_icase_mem
      Src: /src/git/dir.c:1344,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 6
    argNames:
    - basename
    - basenamelen
    - pattern
    - prefix
    - patternlen
    - flags
    argTypes:
    - char*
    - int
    - char*
    - int
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1350
    functionName: match_basename
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - fnmatch_icase_mem
    - fspathncmp
    linkageType: ''
    returnType: int
    signature: "int match_basename(const char *basename, int basenamelen,\n\t\t   const
      char *pattern, int prefix, int patternlen,\n\t\t   unsigned flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fspathncmp
      Src: /src/git/dir.c:1375,1
    - Dst: fspathncmp
      Src: /src/git/dir.c:1389,1
    - Dst: fnmatch_icase_mem
      Src: /src/git/dir.c:1412,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 7
    argNames:
    - pathname
    - pathlen
    - base
    - baselen
    - pattern
    - prefix
    - patternlen
    argTypes:
    - char*
    - int
    - char*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1352
    functionDepth: 2
    functionLinenumber: 1352
    functionLinenumberEnd: 1415
    functionName: match_pathname
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - fnmatch_icase_mem
    - fspathncmp
    linkageType: ''
    returnType: int
    signature: "int match_pathname(const char *pathname, int pathlen,\n\t\t   const
      char *base, int baselen,\n\t\t   const char *pattern, int prefix, int patternlen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: resolve_dtype
      Src: /src/git/dir.c:1442,1
    - Dst: match_basename
      Src: /src/git/dir.c:1448,1
    - Dst: assert
      Src: /src/git/dir.c:1458,1
    - Dst: match_pathname
      Src: /src/git/dir.c:1460,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 6
    argNames:
    - pathname
    - pathlen
    - basename
    - dtype
    - pl
    - istate
    argTypes:
    - char*
    - int
    - char*
    - int*
    - struct pattern_list*
    - struct index_state*
    assertStmts:
    - condition: "(pattern->baselen == 0 ||\n\t\t       pattern->base[pattern->baselen
        - 1] == '/')"
      pos:
        line_end: 1458
        line_start: 1457
        source_file: /src/git/dir.c
    constantsTouched: []
    func_position:
      end: 1469
      start: 1423
    functionDepth: 3
    functionLinenumber: 1423
    functionLinenumberEnd: 1469
    functionName: last_matching_pattern_from_list
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - match_basename
    - match_pathname
    - resolve_dtype
    - assert
    linkageType: ''
    returnType: struct path_pattern
    signature: "struct path_pattern *last_matching_pattern_from_list(const char *pathname,\n\t\t\t\t\t\t
      \      int pathlen,\n\t\t\t\t\t\t       const char *basename,\n\t\t\t\t\t\t
      \      int *dtype,\n\t\t\t\t\t\t       struct pattern_list *pl,\n\t\t\t\t\t\t
      \      struct index_state *istate)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: last_matching_pattern_from_list
      Src: /src/git/dir.c:1489,1
    - Dst: strbuf_addch
      Src: /src/git/dir.c:1504,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:1505,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:1517,1
    - Dst: strrchr
      Src: /src/git/dir.c:1519,1
    - Dst: hashmap_contains_path
      Src: /src/git/dir.c:1523,1
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:1535,1
    - Dst: hashmap_contains_path
      Src: /src/git/dir.c:1537,1
    - Dst: hashmap_contains_parent
      Src: /src/git/dir.c:1542,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:1548,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 6
    argNames:
    - pathname
    - pathlen
    - basename
    - dtype
    - pl
    - istate
    argTypes:
    - char*
    - int
    - char*
    - int*
    - struct pattern_list*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1477
    functionDepth: 4
    functionLinenumber: 1477
    functionLinenumberEnd: 1550
    functionName: path_matches_pattern_list
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strrchr
    - hashmap_contains_parent
    - strbuf_setlen
    - strbuf_addch
    - hashmap_contains_path
    - last_matching_pattern_from_list
    - strbuf_add
    linkageType: ''
    returnType: enum pattern_match_result
    signature: "enum pattern_match_result path_matches_pattern_list(\n\t\t\t\tconst
      char *pathname, int pathlen,\n\t\t\t\tconst char *basename, int *dtype,\n\t\t\t\tstruct
      pattern_list *pl,\n\t\t\t\tstruct index_state *istate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/dir.c:1554,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/dir.c:1561,1
    - Dst: get_sparse_checkout_patterns
      Src: /src/git/dir.c:1563,1
    - Dst: FREE_AND_NULL
      Src: /src/git/dir.c:1564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1552
    functionDepth: 1
    functionLinenumber: 1552
    functionLinenumberEnd: 1569
    functionName: init_sparse_checkout_patterns
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - repo_config_values
    - FREE_AND_NULL
    - get_sparse_checkout_patterns
    - CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: int init_sparse_checkout_patterns(struct index_state *istate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_sparse_checkout_patterns
      Src: /src/git/dir.c:1584,1
    - Dst: strlen
      Src: /src/git/dir.c:1595,1
    - Dst: path_matches_pattern_list
      Src: /src/git/dir.c:1602,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - path
    - istate
    - require_cone_mode
    argTypes:
    - char*
    - struct index_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1571
    functionDepth: 5
    functionLinenumber: 1571
    functionLinenumberEnd: 1610
    functionName: path_in_sparse_checkout_1
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - path_matches_pattern_list
    - strlen
    - init_sparse_checkout_patterns
    linkageType: ''
    returnType: int
    signature: "int path_in_sparse_checkout_1(const char *path,\n\t\t\t\t     struct
      index_state *istate,\n\t\t\t\t     int require_cone_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_in_sparse_checkout_1
      Src: /src/git/dir.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - istate
    argTypes:
    - char*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1612
    functionDepth: 6
    functionLinenumber: 1612
    functionLinenumberEnd: 1616
    functionName: path_in_sparse_checkout
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - path_in_sparse_checkout_1
    linkageType: ''
    returnType: int
    signature: "int path_in_sparse_checkout(const char *path,\n\t\t\t    struct index_state
      *istate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_in_sparse_checkout_1
      Src: /src/git/dir.c:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - istate
    argTypes:
    - char*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1618
    functionDepth: 6
    functionLinenumber: 1618
    functionLinenumberEnd: 1622
    functionName: path_in_cone_mode_sparse_checkout
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - path_in_sparse_checkout_1
    linkageType: ''
    returnType: int
    signature: "int path_in_cone_mode_sparse_checkout(const char *path,\n\t\t\t\t
      \    struct index_state *istate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: last_matching_pattern_from_list
      Src: /src/git/dir.c:1635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - dir
    - istate
    - pathname
    - pathlen
    - basename
    - dtype_p
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - char*
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1624
    functionDepth: 4
    functionLinenumber: 1624
    functionLinenumberEnd: 1643
    functionName: last_matching_pattern_from_lists
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - last_matching_pattern_from_list
    linkageType: ''
    returnType: struct path_pattern
    signature: "struct path_pattern *last_matching_pattern_from_lists(\n\t\tstruct
      dir_struct *dir, struct index_state *istate,\n\t\tconst char *pathname, int
      pathlen,\n\t\tconst char *basename, int *dtype_p)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/dir.c:1668,1
    - Dst: free
      Src: /src/git/dir.c:1673,1
    - Dst: clear_pattern_list
      Src: /src/git/dir.c:1674,1
    - Dst: free
      Src: /src/git/dir.c:1675,1
    - Dst: strbuf_init
      Src: /src/git/dir.c:1689,1
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:1693,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/dir.c:1703,1
    - Dst: strchr
      Src: /src/git/dir.c:1708,1
    - Dst: die
      Src: /src/git/dir.c:1710,1
    - Dst: lookup_untracked
      Src: /src/git/dir.c:1713,1
    - Dst: add_pattern_list
      Src: /src/git/dir.c:1722,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:1723,1
    - Dst: assert
      Src: /src/git/dir.c:1724,1
    - Dst: last_matching_pattern_from_lists
      Src: /src/git/dir.c:1730,1
    - Dst: oidclr
      Src: /src/git/dir.c:1745,1
    - Dst: is_null_oid
      Src: /src/git/dir.c:1760,1
    - Dst: strbuf_addbuf
      Src: /src/git/dir.c:1770,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:1771,1
    - Dst: strbuf_detach
      Src: /src/git/dir.c:1772,1
    - Dst: add_patterns
      Src: /src/git/dir.c:1773,1
    - Dst: oideq
      Src: /src/git/dir.c:1792,1
    - Dst: invalidate_gitignore
      Src: /src/git/dir.c:1793,1
    - Dst: oidcpy
      Src: /src/git/dir.c:1794,1
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:1799,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 4
    argNames:
    - dir
    - istate
    - base
    - baselen
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - char*
    - int
    assertStmts:
    - condition: (stk->baselen == dir->internal.basebuf.len)
      pos:
        line_end: 1723
        line_start: 1723
        source_file: /src/git/dir.c
    constantsTouched: []
    func_position:
      end: 1800
      start: 1649
    functionDepth: 5
    functionLinenumber: 1649
    functionLinenumberEnd: 1800
    functionName: prep_exclude
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - add_pattern_list
    - oidcpy
    - invalidate_gitignore
    - strchr
    - is_null_oid
    - oidclr
    - strbuf_addbuf
    - CALLOC_ARRAY
    - free
    - die
    - strbuf_setlen
    - strbuf_addstr
    - strncmp
    - strbuf_init
    - last_matching_pattern_from_lists
    - add_patterns
    - strbuf_detach
    - clear_pattern_list
    - strbuf_add
    - assert
    - lookup_untracked
    - oideq
    linkageType: ''
    returnType: void
    signature: "void prep_exclude(struct dir_struct *dir,\n\t\t\t struct index_state
      *istate,\n\t\t\t const char *base, int baselen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/dir.c:1813,1
    - Dst: strrchr
      Src: /src/git/dir.c:1814,1
    - Dst: prep_exclude
      Src: /src/git/dir.c:1817,1
    - Dst: last_matching_pattern_from_lists
      Src: /src/git/dir.c:1822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - dir
    - istate
    - pathname
    - dtype_p
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1808
    functionDepth: 6
    functionLinenumber: 1808
    functionLinenumberEnd: 1824
    functionName: last_matching_pattern
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - prep_exclude
    - strlen
    - last_matching_pattern_from_lists
    - strrchr
    linkageType: ''
    returnType: struct path_pattern
    signature: "struct path_pattern *last_matching_pattern(struct dir_struct *dir,\n\t\t\t\t
      \     struct index_state *istate,\n\t\t\t\t      const char *pathname,\n\t\t\t\t
      \     int *dtype_p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: last_matching_pattern
      Src: /src/git/dir.c:1835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - dir
    - istate
    - pathname
    - dtype_p
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1831
    functionDepth: 7
    functionLinenumber: 1831
    functionLinenumberEnd: 1839
    functionName: is_excluded
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - last_matching_pattern
    linkageType: ''
    returnType: int
    signature: "int is_excluded(struct dir_struct *dir, struct index_state *istate,\n\t\tconst
      char *pathname, int *dtype_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/dir.c:1845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pathname
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1841
    functionDepth: 1
    functionLinenumber: 1841
    functionLinenumberEnd: 1848
    functionName: dir_entry_new
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - FLEX_ALLOC_MEM
    linkageType: ''
    returnType: struct dir_entry
    signature: struct dir_entry *dir_entry_new(const char *pathname, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: index_file_exists
      Src: /src/git/dir.c:1854,1
    - Dst: ALLOC_GROW
      Src: /src/git/dir.c:1857,1
    - Dst: dir_entry_new
      Src: /src/git/dir.c:1858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dir
    - istate
    - pathname
    - len
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1850
    functionDepth: 2
    functionLinenumber: 1850
    functionLinenumberEnd: 1859
    functionName: dir_add_name
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - index_file_exists
    - dir_entry_new
    - ALLOC_GROW
    linkageType: ''
    returnType: struct dir_entry
    signature: "struct dir_entry *dir_add_name(struct dir_struct *dir,\n\t\t\t\t      struct
      index_state *istate,\n\t\t\t\t      const char *pathname, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: index_name_is_other
      Src: /src/git/dir.c:1865,1
    - Dst: ALLOC_GROW
      Src: /src/git/dir.c:1868,1
    - Dst: dir_entry_new
      Src: /src/git/dir.c:1869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dir
    - istate
    - pathname
    - len
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1861
    functionDepth: 2
    functionLinenumber: 1861
    functionLinenumberEnd: 1870
    functionName: dir_add_ignored
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - index_name_is_other
    - dir_entry_new
    - ALLOC_GROW
    linkageType: ''
    returnType: struct dir_entry
    signature: "struct dir_entry *dir_add_ignored(struct dir_struct *dir,\n\t\t\t\t
      \ struct index_state *istate,\n\t\t\t\t  const char *pathname, int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: index_dir_exists
      Src: /src/git/dir.c:1888,1
    - Dst: index_file_exists
      Src: /src/git/dir.c:1891,1
    - Dst: S_ISGITLINK
      Src: /src/git/dir.c:1892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - istate
    - dirname
    - len
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1883
    functionDepth: 1
    functionLinenumber: 1883
    functionLinenumberEnd: 1896
    functionName: directory_exists_in_index_icase
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - index_file_exists
    - index_dir_exists
    - S_ISGITLINK
    linkageType: ''
    returnType: enum exist_status
    signature: "enum exist_status directory_exists_in_index_icase(struct index_state
      *istate,\n\t\t\t\t\t\t\t const char *dirname, int len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: directory_exists_in_index_icase
      Src: /src/git/dir.c:1911,1
    - Dst: index_name_pos
      Src: /src/git/dir.c:1913,1
    - Dst: strncmp
      Src: /src/git/dir.c:1920,1
    - Dst: S_ISGITLINK
      Src: /src/git/dir.c:1927,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - istate
    - dirname
    - len
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1905
    functionDepth: 2
    functionLinenumber: 1905
    functionLinenumberEnd: 1931
    functionName: directory_exists_in_index
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - directory_exists_in_index_icase
    - strncmp
    - index_name_pos
    - S_ISGITLINK
    linkageType: ''
    returnType: enum exist_status
    signature: "enum exist_status directory_exists_in_index(struct index_state *istate,\n\t\t\t\t\t\t
      \  const char *dirname, int len)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: directory_exists_in_index
      Src: /src/git/dir.c:1982,1
    - Dst: BUG
      Src: /src/git/dir.c:1989,1
    - Dst: match_pathspec_with_flags
      Src: /src/git/dir.c:1999,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:2021,1
    - Dst: is_nonbare_repository_dir
      Src: /src/git/dir.c:2022,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:2026,1
    - Dst: real_pathdup
      Src: /src/git/dir.c:2027,1
    - Dst: real_pathdup
      Src: /src/git/dir.c:2028,1
    - Dst: strcmp
      Src: /src/git/dir.c:2030,1
    - Dst: free
      Src: /src/git/dir.c:2031,1
    - Dst: free
      Src: /src/git/dir.c:2032,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:2034,1
    - Dst: read_directory_recursive
      Src: /src/git/dir.c:2063,1
    - Dst: assert
      Src: /src/git/dir.c:2072,1
    - Dst: lookup_untracked
      Src: /src/git/dir.c:2162,1
    - Dst: read_directory_recursive
      Src: /src/git/dir.c:2164,1
    - Dst: FREE_AND_NULL
      Src: /src/git/dir.c:2191,1
    - Dst: FREE_AND_NULL
      Src: /src/git/dir.c:2203,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 75
    argCount: 8
    argNames:
    - dir
    - istate
    - untracked
    - dirname
    - len
    - baselen
    - excluded
    - pathspec
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - struct untracked_cache_dir*
    - char*
    - int
    - int
    - int
    - struct pathspec*
    assertStmts:
    - condition: (dir->flags & DIR_SHOW_OTHER_DIRECTORIES)
      pos:
        line_end: 2071
        line_start: 2071
        source_file: /src/git/dir.c
    constantsTouched: []
    func_position:
      end: 2216
      start: 1966
    functionDepth: 5
    functionLinenumber: 1966
    functionLinenumberEnd: 2216
    functionName: treat_directory
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - assert
    - read_directory_recursive
    - match_pathspec_with_flags
    - lookup_untracked
    - FREE_AND_NULL
    - strbuf_addstr
    - strcmp
    - free
    - is_nonbare_repository_dir
    - real_pathdup
    - BUG
    - directory_exists_in_index
    linkageType: ''
    returnType: enum path_treatment
    signature: "enum path_treatment treat_directory(struct dir_struct *dir,\n\tstruct
      index_state *istate,\n\tstruct untracked_cache_dir *untracked,\n\tconst char
      *dirname, int len, int baselen, int excluded,\n\tconst struct pathspec *pathspec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GUARD_PATHSPEC
      Src: /src/git/dir.c:2231,1
    - Dst: ps_strncmp
      Src: /src/git/dir.c:2246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - path
    - pathlen
    - pathspec
    argTypes:
    - char*
    - int
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2223
    functionDepth: 1
    functionLinenumber: 2223
    functionLinenumberEnd: 2251
    functionName: simplify_away
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - GUARD_PATHSPEC
    - ps_strncmp
    linkageType: ''
    returnType: int
    signature: "int simplify_away(const char *path, int pathlen,\n\t\t\t const struct
      pathspec *pathspec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GUARD_PATHSPEC
      Src: /src/git/dir.c:2272,1
    - Dst: ps_strncmp
      Src: /src/git/dir.c:2286,1
    - Dst: ps_strncmp
      Src: /src/git/dir.c:2290,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - path
    - pathlen
    - pathspec
    argTypes:
    - char*
    - int
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2264
    functionDepth: 1
    functionLinenumber: 2264
    functionLinenumberEnd: 2294
    functionName: exclude_matches_pathspec
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - GUARD_PATHSPEC
    - ps_strncmp
    linkageType: ''
    returnType: int
    signature: "int exclude_matches_pathspec(const char *path, int pathlen,\n\t\t\t\t
      \   const struct pathspec *pathspec)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: index_file_exists
      Src: /src/git/dir.c:2302,1
    - Dst: ce_uptodate
      Src: /src/git/dir.c:2304,1
    - Dst: S_ISGITLINK
      Src: /src/git/dir.c:2306,1
    - Dst: index_name_pos
      Src: /src/git/dir.c:2316,1
    - Dst: strncmp
      Src: /src/git/dir.c:2322,1
    - Dst: ce_uptodate
      Src: /src/git/dir.c:2328,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - istate
    - path
    - len
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2296
    functionDepth: 1
    functionLinenumber: 2296
    functionLinenumberEnd: 2333
    functionName: get_index_dtype
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - ce_uptodate
    - S_ISGITLINK
    - strncmp
    - index_file_exists
    linkageType: ''
    returnType: int
    signature: "int get_index_dtype(struct index_state *istate,\n\t\t\t   const char
      *path, int len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DTYPE
      Src: /src/git/dir.c:2339,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:2350,1
    - Dst: stat
      Src: /src/git/dir.c:2351,1
    - Dst: lstat
      Src: /src/git/dir.c:2352,1
    - Dst: S_ISREG
      Src: /src/git/dir.c:2356,1
    - Dst: S_ISDIR
      Src: /src/git/dir.c:2358,1
    - Dst: S_ISLNK
      Src: /src/git/dir.c:2360,1
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:2364,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 3
    argNames:
    - e
    - path
    - follow_symlink
    argTypes:
    - struct dirent*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2335
    functionDepth: 1
    functionLinenumber: 2335
    functionLinenumberEnd: 2366
    functionName: get_dtype
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - S_ISLNK
    - stat
    - strbuf_setlen
    - strbuf_addstr
    - DTYPE
    - lstat
    - S_ISREG
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char get_dtype(struct dirent *e, struct strbuf *path,\n\t\t\tint
      follow_symlink)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_index_dtype
      Src: /src/git/dir.c:2375,1
    - Dst: lstat
      Src: /src/git/dir.c:2378,1
    - Dst: S_ISREG
      Src: /src/git/dir.c:2380,1
    - Dst: S_ISDIR
      Src: /src/git/dir.c:2382,1
    - Dst: S_ISLNK
      Src: /src/git/dir.c:2384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - dtype
    - istate
    - path
    - len
    argTypes:
    - int
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2368
    functionDepth: 2
    functionLinenumber: 2368
    functionLinenumberEnd: 2387
    functionName: resolve_dtype
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - S_ISLNK
    - get_index_dtype
    - lstat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int resolve_dtype(int dtype, struct index_state *istate,\n\t\t\t const
      char *path, int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:2401,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:2403,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:2406,1
    - Dst: strbuf_complete
      Src: /src/git/dir.c:2408,1
    - Dst: read_directory_recursive
      Src: /src/git/dir.c:2415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - dir
    - cdir
    - istate
    - path
    - baselen
    - pathspec
    argTypes:
    - struct dir_struct*
    - struct cached_dir*
    - struct index_state*
    - struct strbuf*
    - int
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2389
    functionDepth: 1
    functionLinenumber: 2389
    functionLinenumberEnd: 2424
    functionName: treat_path_fast
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - read_directory_recursive
    - strbuf_setlen
    - strbuf_addstr
    - strbuf_complete
    linkageType: ''
    returnType: enum path_treatment
    signature: "enum path_treatment treat_path_fast(struct dir_struct *dir,\n\t\t\t\t\t
      \  struct cached_dir *cdir,\n\t\t\t\t\t   struct index_state *istate,\n\t\t\t\t\t
      \  struct strbuf *path,\n\t\t\t\t\t   int baselen,\n\t\t\t\t\t   const struct
      pathspec *pathspec)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: treat_path_fast
      Src: /src/git/dir.c:2437,1
    - Dst: is_dot_or_dotdot
      Src: /src/git/dir.c:2439,1
    - Dst: fspathcmp
      Src: /src/git/dir.c:2439,1
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:2441,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:2442,1
    - Dst: simplify_away
      Src: /src/git/dir.c:2443,1
    - Dst: resolve_dtype
      Src: /src/git/dir.c:2446,1
    - Dst: index_file_exists
      Src: /src/git/dir.c:2449,1
    - Dst: directory_exists_in_index
      Src: /src/git/dir.c:2475,1
    - Dst: is_excluded
      Src: /src/git/dir.c:2478,1
    - Dst: strbuf_addch
      Src: /src/git/dir.c:2497,1
    - Dst: treat_directory
      Src: /src/git/dir.c:2498,1
    - Dst: match_pathspec
      Src: /src/git/dir.c:2504,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 7
    argNames:
    - dir
    - untracked
    - cdir
    - istate
    - path
    - baselen
    - pathspec
    argTypes:
    - struct dir_struct*
    - struct untracked_cache_dir*
    - struct cached_dir*
    - struct index_state*
    - struct strbuf*
    - int
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2426
    functionDepth: 8
    functionLinenumber: 2426
    functionLinenumberEnd: 2512
    functionName: treat_path
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - treat_directory
    - is_dot_or_dotdot
    - resolve_dtype
    - strbuf_setlen
    - is_excluded
    - strbuf_addch
    - simplify_away
    - treat_path_fast
    - match_pathspec
    - strbuf_addstr
    - fspathcmp
    - index_file_exists
    - directory_exists_in_index
    linkageType: ''
    returnType: enum path_treatment
    signature: "enum path_treatment treat_path(struct dir_struct *dir,\n\t\t\t\t      struct
      untracked_cache_dir *untracked,\n\t\t\t\t      struct cached_dir *cdir,\n\t\t\t\t
      \     struct index_state *istate,\n\t\t\t\t      struct strbuf *path,\n\t\t\t\t
      \     int baselen,\n\t\t\t\t      const struct pathspec *pathspec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/dir.c:2518,1
    - Dst: xstrdup
      Src: /src/git/dir.c:2520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dir
    - name
    argTypes:
    - struct untracked_cache_dir*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2514
    functionDepth: 1
    functionLinenumber: 2514
    functionLinenumberEnd: 2521
    functionName: add_untracked
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void add_untracked(struct untracked_cache_dir *dir, const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: refresh_fsmonitor
      Src: /src/git/dir.c:2537,1
    - Dst: lstat
      Src: /src/git/dir.c:2539,1
    - Dst: memset
      Src: /src/git/dir.c:2540,1
    - Dst: match_stat_data_racy
      Src: /src/git/dir.c:2544,1
    - Dst: fill_stat_data
      Src: /src/git/dir.c:2545,1
    - Dst: strbuf_addch
      Src: /src/git/dir.c:2561,1
    - Dst: prep_exclude
      Src: /src/git/dir.c:2562,1
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:2563,1
    - Dst: prep_exclude
      Src: /src/git/dir.c:2565,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - dir
    - untracked
    - istate
    - path
    - check_only
    argTypes:
    - struct dir_struct*
    - struct untracked_cache_dir*
    - struct index_state*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2523
    functionDepth: 6
    functionLinenumber: 2523
    functionLinenumberEnd: 2569
    functionName: valid_cached_dir
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - memset
    - match_stat_data_racy
    - strbuf_setlen
    - strbuf_addch
    - prep_exclude
    - fill_stat_data
    - refresh_fsmonitor
    - lstat
    linkageType: ''
    returnType: int
    signature: "int valid_cached_dir(struct dir_struct *dir,\n\t\t\t    struct untracked_cache_dir
      *untracked,\n\t\t\t    struct index_state *istate,\n\t\t\t    struct strbuf
      *path,\n\t\t\t    int check_only)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/dir.c:2580,1
    - Dst: valid_cached_dir
      Src: /src/git/dir.c:2582,1
    - Dst: opendir
      Src: /src/git/dir.c:2585,1
    - Dst: warning_errno
      Src: /src/git/dir.c:2587,1
    - Dst: _
      Src: /src/git/dir.c:2587,1
    - Dst: invalidate_directory
      Src: /src/git/dir.c:2589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - cdir
    - dir
    - untracked
    - istate
    - path
    - check_only
    argTypes:
    - struct cached_dir*
    - struct dir_struct*
    - struct untracked_cache_dir*
    - struct index_state*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2571
    functionDepth: 7
    functionLinenumber: 2571
    functionLinenumberEnd: 2595
    functionName: open_cached_dir
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - memset
    - warning_errno
    - opendir
    - valid_cached_dir
    - _
    - invalidate_directory
    linkageType: ''
    returnType: int
    signature: "int open_cached_dir(struct cached_dir *cdir,\n\t\t\t   struct dir_struct
      *dir,\n\t\t\t   struct untracked_cache_dir *untracked,\n\t\t\t   struct index_state
      *istate,\n\t\t\t   struct strbuf *path,\n\t\t\t   int check_only)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/dir.c:2602,1
    - Dst: DTYPE
      Src: /src/git/dir.c:2609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - cdir
    argTypes:
    - struct cached_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2597
    functionDepth: 2
    functionLinenumber: 2597
    functionLinenumberEnd: 2629
    functionName: read_cached_dir
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - readdir_skip_dot_and_dotdot
    - DTYPE
    linkageType: ''
    returnType: int
    signature: int read_cached_dir(struct cached_dir *cdir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/git/dir.c:2634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cdir
    argTypes:
    - struct cached_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2631
    functionDepth: 0
    functionLinenumber: 2631
    functionLinenumberEnd: 2643
    functionName: close_cached_dir
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - closedir
    linkageType: ''
    returnType: void
    signature: void close_cached_dir(struct cached_dir *cdir)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dir_add_name
      Src: /src/git/dir.c:2658,1
    - Dst: exclude_matches_pathspec
      Src: /src/git/dir.c:2661,1
    - Dst: dir_add_ignored
      Src: /src/git/dir.c:2663,1
    - Dst: dir_add_name
      Src: /src/git/dir.c:2669,1
    - Dst: add_untracked
      Src: /src/git/dir.c:2671,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 8
    argNames:
    - dir
    - untracked
    - cdir
    - istate
    - path
    - baselen
    - pathspec
    - state
    argTypes:
    - struct dir_struct*
    - struct untracked_cache_dir*
    - struct cached_dir*
    - struct index_state*
    - struct strbuf*
    - int
    - struct pathspec*
    - enum path_treatment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2645
    functionDepth: 3
    functionLinenumber: 2645
    functionLinenumberEnd: 2677
    functionName: add_path_to_appropriate_result_list
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - dir_add_name
    - dir_add_ignored
    - exclude_matches_pathspec
    - add_untracked
    linkageType: ''
    returnType: void
    signature: "void add_path_to_appropriate_result_list(struct dir_struct *dir,\n\tstruct
      untracked_cache_dir *untracked,\n\tstruct cached_dir *cdir,\n\tstruct index_state
      *istate,\n\tstruct strbuf *path,\n\tint baselen,\n\tconst struct pathspec *pathspec,\n\tenum
      path_treatment state)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/dir.c:2712,1
    - Dst: open_cached_dir
      Src: /src/git/dir.c:2714,1
    - Dst: read_cached_dir
      Src: /src/git/dir.c:2721,1
    - Dst: treat_path
      Src: /src/git/dir.c:2723,1
    - Dst: lookup_untracked
      Src: /src/git/dir.c:2733,1
    - Dst: read_directory_recursive
      Src: /src/git/dir.c:2738,1
    - Dst: match_pathspec
      Src: /src/git/dir.c:2745,1
    - Dst: add_untracked
      Src: /src/git/dir.c:2777,1
    - Dst: add_path_to_appropriate_result_list
      Src: /src/git/dir.c:2784,1
    - Dst: close_cached_dir
      Src: /src/git/dir.c:2788,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:2790,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 8
    argNames:
    - dir
    - istate
    - base
    - baselen
    - untracked
    - check_only
    - stop_at_first_file
    - pathspec
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - char*
    - int
    - struct untracked_cache_dir*
    - int
    - int
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2698
    functionDepth: 9
    functionLinenumber: 2698
    functionLinenumberEnd: 2793
    functionName: read_directory_recursive
    functionSourceFile: /src/git/dir.c
    functionUses: 3
    functionsReached:
    - strbuf_release
    - read_cached_dir
    - read_directory_recursive
    - close_cached_dir
    - open_cached_dir
    - lookup_untracked
    - treat_path
    - match_pathspec
    - add_untracked
    - add_path_to_appropriate_result_list
    - strbuf_add
    linkageType: ''
    returnType: enum path_treatment
    signature: "enum path_treatment read_directory_recursive(struct dir_struct *dir,\n\tstruct
      index_state *istate, const char *base, int baselen,\n\tstruct untracked_cache_dir
      *untracked, int check_only,\n\tint stop_at_first_file, const struct pathspec
      *pathspec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name_compare
      Src: /src/git/dir.c:2800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2795
    functionDepth: 1
    functionLinenumber: 2795
    functionLinenumberEnd: 2801
    functionName: cmp_dir_entry
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - name_compare
    linkageType: ''
    returnType: int
    signature: int cmp_dir_entry(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/dir.c:2808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - struct dir_entry*
    - struct dir_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2809
      start: 2804
    functionDepth: 0
    functionLinenumber: 2804
    functionLinenumberEnd: 2809
    functionName: check_dir_entry_contains
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int check_dir_entry_contains(const struct dir_entry *out, const struct
      dir_entry *in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/dir.c:2845,1
    - Dst: memchr
      Src: /src/git/dir.c:2852,1
    - Dst: strbuf_reset
      Src: /src/git/dir.c:2857,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:2858,1
    - Dst: is_directory
      Src: /src/git/dir.c:2859,1
    - Dst: strbuf_reset
      Src: /src/git/dir.c:2861,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:2862,1
    - Dst: strbuf_reset
      Src: /src/git/dir.c:2863,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:2864,1
    - Dst: treat_path
      Src: /src/git/dir.c:2866,1
    - Dst: add_path_to_appropriate_result_list
      Src: /src/git/dir.c:2873,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:2877,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:2878,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 5
    argNames:
    - dir
    - istate
    - path
    - len
    - pathspec
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - char*
    - int
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2811
    functionDepth: 9
    functionLinenumber: 2811
    functionLinenumberEnd: 2880
    functionName: treat_leading_path
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - memset
    - memchr
    - strbuf_release
    - strbuf_reset
    - treat_path
    - is_directory
    - add_path_to_appropriate_result_list
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int treat_leading_path(struct dir_struct *dir,\n\t\t\t      struct
      index_state *istate,\n\t\t\t      const char *path, int len,\n\t\t\t      const
      struct pathspec *pathspec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/git/dir.c:2889,1
    - Dst: die_errno
      Src: /src/git/dir.c:2890,1
    - Dst: _
      Src: /src/git/dir.c:2890,1
    - Dst: strbuf_addf
      Src: /src/git/dir.c:2891,1
    - Dst: repo_get_work_tree
      Src: /src/git/dir.c:2891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2894
      start: 2882
    functionDepth: 1
    functionLinenumber: 2882
    functionLinenumberEnd: 2894
    functionName: get_ident_string
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - repo_get_work_tree
    - strbuf_addf
    - die_errno
    - _
    - uname
    linkageType: ''
    returnType: char
    signature: char *get_ident_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/dir.c:2904,1
    - Dst: get_ident_string
      Src: /src/git/dir.c:2904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uc
    argTypes:
    - struct untracked_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2896
    functionDepth: 2
    functionLinenumber: 2896
    functionLinenumberEnd: 2905
    functionName: ident_in_untracked
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - get_ident_string
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ident_in_untracked(const struct untracked_cache *uc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/dir.c:2909,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:2910,1
    - Dst: get_ident_string
      Src: /src/git/dir.c:2910,1
    - Dst: strbuf_addch
      Src: /src/git/dir.c:2916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - uc
    argTypes:
    - struct untracked_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2907
    functionDepth: 2
    functionLinenumber: 2907
    functionLinenumberEnd: 2917
    functionName: set_untracked_ident
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - get_ident_string
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void set_untracked_ident(struct untracked_cache *uc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_tmp
      Src: /src/git/dir.c:2929,1
    - Dst: strcmp
      Src: /src/git/dir.c:2930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2938
      start: 2919
    functionDepth: 1
    functionLinenumber: 2919
    functionLinenumberEnd: 2938
    functionName: new_untracked_cache_flags
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - repo_config_get_string_tmp
    - strcmp
    linkageType: ''
    returnType: unsigned
    signature: unsigned new_untracked_cache_flags(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/dir.c:2942,1
    - Dst: strbuf_init
      Src: /src/git/dir.c:2943,1
    - Dst: new_untracked_cache_flags
      Src: /src/git/dir.c:2945,1
    - Dst: set_untracked_ident
      Src: /src/git/dir.c:2946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - istate
    - flags
    argTypes:
    - struct index_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2940
    functionDepth: 3
    functionLinenumber: 2940
    functionLinenumberEnd: 2949
    functionName: new_untracked_cache
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - new_untracked_cache_flags
    - set_untracked_ident
    - strbuf_init
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void new_untracked_cache(struct index_state *istate, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_untracked_cache
      Src: /src/git/dir.c:2954,1
    - Dst: ident_in_untracked
      Src: /src/git/dir.c:2956,1
    - Dst: free_untracked_cache
      Src: /src/git/dir.c:2957,1
    - Dst: new_untracked_cache
      Src: /src/git/dir.c:2958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2951
    functionDepth: 4
    functionLinenumber: 2951
    functionLinenumberEnd: 2961
    functionName: add_untracked_cache
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - ident_in_untracked
    - new_untracked_cache
    - free_untracked_cache
    linkageType: ''
    returnType: void
    signature: void add_untracked_cache(struct index_state *istate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_untracked_cache
      Src: /src/git/dir.c:2966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2963
    functionDepth: 1
    functionLinenumber: 2963
    functionLinenumberEnd: 2970
    functionName: remove_untracked_cache
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - free_untracked_cache
    linkageType: ''
    returnType: void
    signature: void remove_untracked_cache(struct index_state *istate)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/dir.c:2983,1
    - Dst: strcmp
      Src: /src/git/dir.c:3016,1
    - Dst: ident_in_untracked
      Src: /src/git/dir.c:3026,1
    - Dst: warning
      Src: /src/git/dir.c:3027,1
    - Dst: _
      Src: /src/git/dir.c:3027,1
    - Dst: new_untracked_cache_flags
      Src: /src/git/dir.c:3061,1
    - Dst: free_untracked_cache
      Src: /src/git/dir.c:3062,1
    - Dst: new_untracked_cache
      Src: /src/git/dir.c:3063,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/dir.c:3077,1
    - Dst: oideq
      Src: /src/git/dir.c:3083,1
    - Dst: invalidate_gitignore
      Src: /src/git/dir.c:3085,1
    - Dst: oideq
      Src: /src/git/dir.c:3088,1
    - Dst: invalidate_gitignore
      Src: /src/git/dir.c:3090,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - dir
    - base_len
    - pathspec
    - istate
    argTypes:
    - struct dir_struct*
    - int
    - struct pathspec*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 2972
    functionDepth: 4
    functionLinenumber: 2972
    functionLinenumberEnd: 3097
    functionName: validate_untracked_cache
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - free_untracked_cache
    - new_untracked_cache
    - git_env_bool
    - oideq
    - new_untracked_cache_flags
    - ident_in_untracked
    - invalidate_gitignore
    - strcmp
    - _
    - warning
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: struct untracked_cache_dir
    signature: "struct untracked_cache_dir *validate_untracked_cache(struct dir_struct
      *dir,\n\t\t\t\t\t\t      int base_len,\n\t\t\t\t\t\t      const struct pathspec
      *pathspec,\n\t\t\t\t\t\t      struct index_state *istate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace2_is_enabled
      Src: /src/git/dir.c:3104,1
    - Dst: trace2_data_string
      Src: /src/git/dir.c:3108,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3111,1
    - Dst: trace2_data_string
      Src: /src/git/dir.c:3112,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:3113,1
    - Dst: trace2_data_intmax
      Src: /src/git/dir.c:3116,1
    - Dst: trace2_data_intmax
      Src: /src/git/dir.c:3118,1
    - Dst: trace2_data_intmax
      Src: /src/git/dir.c:3123,1
    - Dst: trace2_data_intmax
      Src: /src/git/dir.c:3125,1
    - Dst: trace2_data_intmax
      Src: /src/git/dir.c:3128,1
    - Dst: trace2_data_intmax
      Src: /src/git/dir.c:3131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - dir
    - repo
    - path
    - path_len
    argTypes:
    - struct dir_struct*
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3133
      start: 3099
    functionDepth: 1
    functionLinenumber: 3099
    functionLinenumberEnd: 3133
    functionName: emit_traversal_statistics
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - trace2_is_enabled
    - trace2_data_intmax
    - strbuf_add
    - trace2_data_string
    linkageType: ''
    returnType: void
    signature: "void emit_traversal_statistics(struct dir_struct *dir,\n\t\t\t\t      struct
      repository *repo,\n\t\t\t\t      const char *path,\n\t\t\t\t      int path_len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/dir.c:3140,1
    - Dst: has_symlink_leading_path
      Src: /src/git/dir.c:3144,1
    - Dst: trace2_region_leave
      Src: /src/git/dir.c:3145,1
    - Dst: validate_untracked_cache
      Src: /src/git/dir.c:3149,1
    - Dst: treat_leading_path
      Src: /src/git/dir.c:3156,1
    - Dst: read_directory_recursive
      Src: /src/git/dir.c:3157,1
    - Dst: QSORT
      Src: /src/git/dir.c:3158,1
    - Dst: QSORT
      Src: /src/git/dir.c:3159,1
    - Dst: emit_traversal_statistics
      Src: /src/git/dir.c:3161,1
    - Dst: trace2_region_leave
      Src: /src/git/dir.c:3163,1
    - Dst: git_env_bool
      Src: /src/git/dir.c:3169,1
    - Dst: FREE_AND_NULL
      Src: /src/git/dir.c:3179,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 5
    argNames:
    - dir
    - istate
    - path
    - len
    - pathspec
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - char*
    - int
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3184
      start: 3135
    functionDepth: 10
    functionLinenumber: 3135
    functionLinenumberEnd: 3184
    functionName: read_directory
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - emit_traversal_statistics
    - validate_untracked_cache
    - treat_leading_path
    - git_env_bool
    - read_directory_recursive
    - trace2_region_leave
    - trace2_region_enter
    - QSORT
    - FREE_AND_NULL
    - has_symlink_leading_path
    linkageType: ''
    returnType: int
    signature: "int read_directory(struct dir_struct *dir, struct index_state *istate,\n\t\t
      \  const char *path, int len, const struct pathspec *pathspec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/dir.c:3189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3190
      start: 3186
    functionDepth: 1
    functionLinenumber: 3186
    functionLinenumberEnd: 3190
    functionName: file_exists
    functionSourceFile: /src/git/dir.c
    functionUses: 4
    functionsReached:
    - lstat
    linkageType: ''
    returnType: int
    signature: int file_exists(const char *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/dir.c:3195,1
    - Dst: file_exists
      Src: /src/git/dir.c:3197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3198
      start: 3192
    functionDepth: 2
    functionLinenumber: 3192
    functionLinenumberEnd: 3198
    functionName: repo_file_exists
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - file_exists
    - BUG
    linkageType: ''
    returnType: int
    signature: int repo_file_exists(struct repository *repo, const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/git/dir.c:3205,1
    - Dst: toupper
      Src: /src/git/dir.c:3205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3200
    functionDepth: 1
    functionLinenumber: 3200
    functionLinenumberEnd: 3207
    functionName: cmp_icase
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - toupper
    linkageType: ''
    returnType: int
    signature: int cmp_icase(char a, char b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/dir.c:3218,1
    - Dst: cmp_icase
      Src: /src/git/dir.c:3220,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:3234,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:3235,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:3238,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - subdir
    - dir
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (dir && subdir && *dir && *subdir)
      pos:
        line_end: 3217
        line_start: 3217
        source_file: /src/git/dir.c
    constantsTouched: []
    func_position:
      end: 3239
      start: 3214
    functionDepth: 2
    functionLinenumber: 3214
    functionLinenumberEnd: 3239
    functionName: dir_inside_of
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - cmp_icase
    - assert
    linkageType: ''
    returnType: int
    signature: int dir_inside_of(const char *subdir, const char *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xgetcwd
      Src: /src/git/dir.c:3249,1
    - Dst: dir_inside_of
      Src: /src/git/dir.c:3250,1
    - Dst: free
      Src: /src/git/dir.c:3251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3253
      start: 3241
    functionDepth: 3
    functionLinenumber: 3241
    functionLinenumberEnd: 3253
    functionName: is_inside_dir
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - xgetcwd
    - dir_inside_of
    - free
    linkageType: ''
    returnType: int
    signature: int is_inside_dir(const char *dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/dir.c:3257,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/dir.c:3264,1
    - Dst: closedir
      Src: /src/git/dir.c:3268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3270
      start: 3255
    functionDepth: 2
    functionLinenumber: 3255
    functionLinenumberEnd: 3270
    functionName: is_empty_dir
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - opendir
    - closedir
    - readdir_skip_dot_and_dotdot
    linkageType: ''
    returnType: int
    signature: int is_empty_dir(const char *path)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/dir.c:3274,1
    - Dst: strstr
      Src: /src/git/dir.c:3281,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:3292,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:3300,1
    - Dst: isspace
      Src: /src/git/dir.c:3300,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:3302,1
    - Dst: strncmp
      Src: /src/git/dir.c:3303,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:3305,1
    - Dst: die
      Src: /src/git/dir.c:3315,1
    - Dst: _
      Src: /src/git/dir.c:3315,1
    - Dst: memchr
      Src: /src/git/dir.c:3326,1
    - Dst: memchr
      Src: /src/git/dir.c:3327,1
    - Dst: isdigit
      Src: /src/git/dir.c:3329,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:3342,1
    - Dst: strip_suffix_mem
      Src: /src/git/dir.c:3350,1
    - Dst: die
      Src: /src/git/dir.c:3353,1
    - Dst: _
      Src: /src/git/dir.c:3353,1
    - Dst: xstrfmt
      Src: /src/git/dir.c:3357,1
    - Dst: xstrndup
      Src: /src/git/dir.c:3359,1
    - Dst: isspace
      Src: /src/git/dir.c:3371,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 53
    argCount: 3
    argNames:
    - repo
    - is_bundle
    - is_bare
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3384
      start: 3272
    functionDepth: 1
    functionLinenumber: 3272
    functionLinenumberEnd: 3384
    functionName: git_url_basename
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - isspace
    - memchr
    - die
    - strstr
    - is_dir_sep
    - xstrfmt
    - xstrndup
    - isdigit
    - strlen
    - strip_suffix_mem
    - _
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *git_url_basename(const char *repo, int is_bundle, int is_bare)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/dir.c:3388,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:3390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3393
      start: 3386
    functionDepth: 1
    functionLinenumber: 3386
    functionLinenumberEnd: 3393
    functionName: strip_dir_trailing_slashes
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strlen
    linkageType: ''
    returnType: void
    signature: void strip_dir_trailing_slashes(char *dir)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/dir.c:3406,1
    - Dst: opendir
      Src: /src/git/dir.c:3415,1
    - Dst: rmdir
      Src: /src/git/dir.c:3424,1
    - Dst: strbuf_complete
      Src: /src/git/dir.c:3428,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/dir.c:3431,1
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:3434,1
    - Dst: strbuf_addstr
      Src: /src/git/dir.c:3435,1
    - Dst: lstat
      Src: /src/git/dir.c:3436,1
    - Dst: S_ISDIR
      Src: /src/git/dir.c:3444,1
    - Dst: remove_dir_recurse
      Src: /src/git/dir.c:3445,1
    - Dst: unlink
      Src: /src/git/dir.c:3448,1
    - Dst: closedir
      Src: /src/git/dir.c:3456,1
    - Dst: strbuf_setlen
      Src: /src/git/dir.c:3458,1
    - Dst: strcmp
      Src: /src/git/dir.c:3462,1
    - Dst: rmdir
      Src: /src/git/dir.c:3465,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 44
    argCount: 3
    argNames:
    - path
    - flag
    - kept_up
    argTypes:
    - struct strbuf*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3473
      start: 3395
    functionDepth: 6
    functionLinenumber: 3395
    functionLinenumberEnd: 3473
    functionName: remove_dir_recurse
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - strbuf_setlen
    - remove_dir_recurse
    - opendir
    - readdir_skip_dot_and_dotdot
    - strcmp
    - repo_resolve_gitlink_ref
    - strbuf_complete
    - rmdir
    - strbuf_addstr
    - closedir
    - lstat
    - unlink
    linkageType: ''
    returnType: int
    signature: int remove_dir_recurse(struct strbuf *path, int flag, int *kept_up)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_dir_recurse
      Src: /src/git/dir.c:3477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - flag
    argTypes:
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3478
      start: 3475
    functionDepth: 7
    functionLinenumber: 3475
    functionLinenumberEnd: 3478
    functionName: remove_dir_recursively
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - remove_dir_recurse
    linkageType: ''
    returnType: int
    signature: int remove_dir_recursively(struct strbuf *path, int flag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xdg_config_home
      Src: /src/git/dir.c:3488,1
    - Dst: access_or_warn
      Src: /src/git/dir.c:3489,1
    - Dst: add_patterns_from_file_1
      Src: /src/git/dir.c:3490,1
    - Dst: git_path_info_exclude
      Src: /src/git/dir.c:3495,1
    - Dst: access_or_warn
      Src: /src/git/dir.c:3496,1
    - Dst: add_patterns_from_file_1
      Src: /src/git/dir.c:3497,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - setup_standard_excludes
    argTypes:
    - void
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3500
      start: 3480
    functionDepth: 5
    functionLinenumber: 3480
    functionLinenumberEnd: 3500
    functionName: GIT_PATH_FUNC
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - access_or_warn
    - git_path_info_exclude
    - add_patterns_from_file_1
    - xdg_config_home
    linkageType: ''
    returnType: void
    signature: 'void GIT_PATH_FUNC(git_path_info_exclude, "info/exclude")


      void setup_standard_excludes(struct dir_struct *dir)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/dir.c:3504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3505
      start: 3502
    functionDepth: 1
    functionLinenumber: 3502
    functionLinenumberEnd: 3505
    functionName: get_sparse_checkout_filename
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    linkageType: ''
    returnType: char
    signature: char *get_sparse_checkout_filename(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sparse_checkout_filename
      Src: /src/git/dir.c:3510,1
    - Dst: add_patterns_from_file_to_list
      Src: /src/git/dir.c:3513,1
    - Dst: free
      Src: /src/git/dir.c:3515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pl
    argTypes:
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3517
      start: 3507
    functionDepth: 5
    functionLinenumber: 3507
    functionLinenumberEnd: 3517
    functionName: get_sparse_checkout_patterns
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - free
    - get_sparse_checkout_filename
    - add_patterns_from_file_to_list
    linkageType: ''
    returnType: int
    signature: int get_sparse_checkout_patterns(struct pattern_list *pl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/git/dir.c:3523,1
    - Dst: is_missing_file_error
      Src: /src/git/dir.c:3523,1
    - Dst: strrchr
      Src: /src/git/dir.c:3526,1
    - Dst: xstrdup
      Src: /src/git/dir.c:3528,1
    - Dst: strcmp
      Src: /src/git/dir.c:3533,1
    - Dst: rmdir
      Src: /src/git/dir.c:3535,1
    - Dst: strrchr
      Src: /src/git/dir.c:3535,1
    - Dst: free
      Src: /src/git/dir.c:3536,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3539
      start: 3519
    functionDepth: 1
    functionLinenumber: 3519
    functionLinenumberEnd: 3539
    functionName: remove_path
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strrchr
    - is_missing_file_error
    - free
    - strcmp
    - rmdir
    - unlink
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int remove_path(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/dir.c:3558,1
    - Dst: clear_pattern_list
      Src: /src/git/dir.c:3559,1
    - Dst: free
      Src: /src/git/dir.c:3561,1
    - Dst: free
      Src: /src/git/dir.c:3565,1
    - Dst: free
      Src: /src/git/dir.c:3567,1
    - Dst: free
      Src: /src/git/dir.c:3568,1
    - Dst: free
      Src: /src/git/dir.c:3569,1
    - Dst: free
      Src: /src/git/dir.c:3574,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:3577,1
    - Dst: memcpy
      Src: /src/git/dir.c:3579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - dir
    argTypes:
    - struct dir_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3545
    functionDepth: 3
    functionLinenumber: 3545
    functionLinenumberEnd: 3580
    functionName: dir_clear
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - clear_pattern_list
    - strbuf_release
    - memcpy
    - free
    linkageType: ''
    returnType: void
    signature: void dir_clear(struct dir_struct *dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3589
      start: 3588
    functionDepth: 0
    functionLinenumber: 3588
    functionLinenumberEnd: 3589
    functionName: ouc_offset
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ouc_offset(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/git/dir.c:3602,1
    - Dst: htonl
      Src: /src/git/dir.c:3603,1
    - Dst: htonl
      Src: /src/git/dir.c:3604,1
    - Dst: htonl
      Src: /src/git/dir.c:3605,1
    - Dst: htonl
      Src: /src/git/dir.c:3606,1
    - Dst: htonl
      Src: /src/git/dir.c:3607,1
    - Dst: htonl
      Src: /src/git/dir.c:3608,1
    - Dst: htonl
      Src: /src/git/dir.c:3609,1
    - Dst: htonl
      Src: /src/git/dir.c:3610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - struct stat_data*
    - struct stat_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3611
      start: 3600
    functionDepth: 1
    functionLinenumber: 3600
    functionLinenumberEnd: 3611
    functionName: stat_data_to_disk
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: void
    signature: void stat_data_to_disk(struct stat_data *to, const struct stat_data
      *from)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/dir.c:3629,1
    - Dst: ewah_set
      Src: /src/git/dir.c:3635,1
    - Dst: ewah_set
      Src: /src/git/dir.c:3637,1
    - Dst: stat_data_to_disk
      Src: /src/git/dir.c:3638,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3639,1
    - Dst: is_null_oid
      Src: /src/git/dir.c:3641,1
    - Dst: ewah_set
      Src: /src/git/dir.c:3642,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3643,1
    - Dst: encode_varint
      Src: /src/git/dir.c:3647,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3648,1
    - Dst: encode_varint
      Src: /src/git/dir.c:3654,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3655,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3657,1
    - Dst: strlen
      Src: /src/git/dir.c:3657,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3660,1
    - Dst: strlen
      Src: /src/git/dir.c:3661,1
    - Dst: write_one_dir
      Src: /src/git/dir.c:3665,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - untracked
    - wd
    argTypes:
    - struct untracked_cache_dir*
    - struct write_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3666
      start: 3613
    functionDepth: 2
    functionLinenumber: 3613
    functionLinenumberEnd: 3666
    functionName: write_one_dir
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - write_one_dir
    - ewah_set
    - is_null_oid
    - strlen
    - free
    - stat_data_to_disk
    - encode_varint
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void write_one_dir(struct untracked_cache_dir *untracked,\n\t\t\t
      \ struct write_data *wd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/dir.c:3676,1
    - Dst: stat_data_to_disk
      Src: /src/git/dir.c:3677,1
    - Dst: stat_data_to_disk
      Src: /src/git/dir.c:3678,1
    - Dst: htonl
      Src: /src/git/dir.c:3679,1
    - Dst: encode_varint
      Src: /src/git/dir.c:3681,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3682,1
    - Dst: strbuf_addbuf
      Src: /src/git/dir.c:3683,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3685,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3686,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3687,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3688,1
    - Dst: strlen
      Src: /src/git/dir.c:3688,1
    - Dst: FREE_AND_NULL
      Src: /src/git/dir.c:3689,1
    - Dst: encode_varint
      Src: /src/git/dir.c:3692,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3693,1
    - Dst: ewah_new
      Src: /src/git/dir.c:3698,1
    - Dst: ewah_new
      Src: /src/git/dir.c:3699,1
    - Dst: ewah_new
      Src: /src/git/dir.c:3700,1
    - Dst: strbuf_init
      Src: /src/git/dir.c:3701,1
    - Dst: strbuf_init
      Src: /src/git/dir.c:3702,1
    - Dst: strbuf_init
      Src: /src/git/dir.c:3703,1
    - Dst: write_one_dir
      Src: /src/git/dir.c:3704,1
    - Dst: encode_varint
      Src: /src/git/dir.c:3706,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3707,1
    - Dst: strbuf_addbuf
      Src: /src/git/dir.c:3708,1
    - Dst: ewah_serialize_strbuf
      Src: /src/git/dir.c:3709,1
    - Dst: ewah_serialize_strbuf
      Src: /src/git/dir.c:3710,1
    - Dst: ewah_serialize_strbuf
      Src: /src/git/dir.c:3711,1
    - Dst: strbuf_addbuf
      Src: /src/git/dir.c:3712,1
    - Dst: strbuf_addbuf
      Src: /src/git/dir.c:3713,1
    - Dst: strbuf_addch
      Src: /src/git/dir.c:3714,1
    - Dst: ewah_free
      Src: /src/git/dir.c:3716,1
    - Dst: ewah_free
      Src: /src/git/dir.c:3717,1
    - Dst: ewah_free
      Src: /src/git/dir.c:3718,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:3719,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:3720,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:3721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 2
    argNames:
    - out
    - untracked
    argTypes:
    - struct strbuf*
    - struct untracked_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3722
      start: 3668
    functionDepth: 3
    functionLinenumber: 3668
    functionLinenumberEnd: 3722
    functionName: write_untracked_extension
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - ewah_new
    - write_one_dir
    - strbuf_release
    - ewah_free
    - htonl
    - strbuf_addch
    - ewah_serialize_strbuf
    - strbuf_addbuf
    - strlen
    - CALLOC_ARRAY
    - stat_data_to_disk
    - encode_varint
    - FREE_AND_NULL
    - strbuf_init
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void write_untracked_extension(struct strbuf *out, struct untracked_cache
      *untracked)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_untracked
      Src: /src/git/dir.c:3730,1
    - Dst: free
      Src: /src/git/dir.c:3732,1
    - Dst: free
      Src: /src/git/dir.c:3733,1
    - Dst: free
      Src: /src/git/dir.c:3734,1
    - Dst: free
      Src: /src/git/dir.c:3735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ucd
    argTypes:
    - struct untracked_cache_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3736
      start: 3724
    functionDepth: 1
    functionLinenumber: 3724
    functionLinenumberEnd: 3736
    functionName: free_untracked
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - free_untracked
    - free
    linkageType: ''
    returnType: void
    signature: void free_untracked(struct untracked_cache_dir *ucd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/dir.c:3743,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:3744,1
    - Dst: free_untracked
      Src: /src/git/dir.c:3745,1
    - Dst: free
      Src: /src/git/dir.c:3746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - uc
    argTypes:
    - struct untracked_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3747
      start: 3738
    functionDepth: 2
    functionLinenumber: 3738
    functionLinenumberEnd: 3747
    functionName: free_untracked_cache
    functionSourceFile: /src/git/dir.c
    functionUses: 3
    functionsReached:
    - strbuf_release
    - free_untracked
    - free
    linkageType: ''
    returnType: void
    signature: void free_untracked_cache(struct untracked_cache *uc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/dir.c:3761,1
    - Dst: ntohl
      Src: /src/git/dir.c:3762,1
    - Dst: ntohl
      Src: /src/git/dir.c:3763,1
    - Dst: ntohl
      Src: /src/git/dir.c:3764,1
    - Dst: ntohl
      Src: /src/git/dir.c:3765,1
    - Dst: ntohl
      Src: /src/git/dir.c:3766,1
    - Dst: ntohl
      Src: /src/git/dir.c:3767,1
    - Dst: ntohl
      Src: /src/git/dir.c:3768,1
    - Dst: ntohl
      Src: /src/git/dir.c:3769,1
    - Dst: ntohl
      Src: /src/git/dir.c:3770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - to
    - data
    argTypes:
    - struct stat_data*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3771
      start: 3759
    functionDepth: 1
    functionLinenumber: 3759
    functionLinenumberEnd: 3771
    functionName: stat_data_from_disk
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - ntohl
    - memcpy
    linkageType: ''
    returnType: void
    signature: void stat_data_from_disk(struct stat_data *to, const unsigned char
      *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/dir.c:3782,1
    - Dst: decode_varint
      Src: /src/git/dir.c:3784,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/dir.c:3791,1
    - Dst: decode_varint
      Src: /src/git/dir.c:3793,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/dir.c:3796,1
    - Dst: memchr
      Src: /src/git/dir.c:3798,1
    - Dst: xmalloc
      Src: /src/git/dir.c:3802,1
    - Dst: st_add3
      Src: /src/git/dir.c:3802,1
    - Dst: memcpy
      Src: /src/git/dir.c:3803,1
    - Dst: memcpy
      Src: /src/git/dir.c:3804,1
    - Dst: memchr
      Src: /src/git/dir.c:3808,1
    - Dst: xmemdupz
      Src: /src/git/dir.c:3811,1
    - Dst: read_one_dir
      Src: /src/git/dir.c:3819,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - untracked_
    - rd
    argTypes:
    - struct untracked_cache_dir**
    - struct read_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3823
      start: 3773
    functionDepth: 1
    functionLinenumber: 3773
    functionLinenumberEnd: 3823
    functionName: read_one_dir
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - decode_varint
    - xmemdupz
    - memset
    - memchr
    - ALLOC_ARRAY
    - memcpy
    - xmalloc
    - read_one_dir
    - st_add3
    linkageType: ''
    returnType: int
    signature: "int read_one_dir(struct untracked_cache_dir **untracked_,\n\t\t\tstruct
      read_data *rd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pos
    - cb
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3830
      start: 3825
    functionDepth: 0
    functionLinenumber: 3825
    functionLinenumberEnd: 3830
    functionName: set_check_only
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_check_only(size_t pos, void *cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat_data_from_disk
      Src: /src/git/dir.c:3840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pos
    - cb
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3843
      start: 3832
    functionDepth: 2
    functionLinenumber: 3832
    functionLinenumberEnd: 3843
    functionName: read_stat
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - stat_data_from_disk
    linkageType: ''
    returnType: void
    signature: void read_stat(size_t pos, void *cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidread
      Src: /src/git/dir.c:3853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pos
    - cb
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3855
      start: 3845
    functionDepth: 1
    functionLinenumber: 3845
    functionLinenumberEnd: 3855
    functionName: read_oid
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - oidread
    linkageType: ''
    returnType: void
    signature: void read_oid(size_t pos, void *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat_data_from_disk
      Src: /src/git/dir.c:3860,1
    - Dst: oidread
      Src: /src/git/dir.c:3861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - oid_stat
    - data
    - sha1
    argTypes:
    - struct oid_stat*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3863
      start: 3857
    functionDepth: 2
    functionLinenumber: 3857
    functionLinenumberEnd: 3863
    functionName: load_oid_stat
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - stat_data_from_disk
    - oidread
    linkageType: ''
    returnType: void
    signature: "void load_oid_stat(struct oid_stat *oid_stat, const unsigned char
      *data,\n\t\t\t  const unsigned char *sha1)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: decode_varint
      Src: /src/git/dir.c:3883,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/dir.c:3892,1
    - Dst: strbuf_init
      Src: /src/git/dir.c:3893,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:3894,1
    - Dst: load_oid_stat
      Src: /src/git/dir.c:3895,1
    - Dst: ouc_offset
      Src: /src/git/dir.c:3896,1
    - Dst: load_oid_stat
      Src: /src/git/dir.c:3898,1
    - Dst: ouc_offset
      Src: /src/git/dir.c:3899,1
    - Dst: get_be32
      Src: /src/git/dir.c:3901,1
    - Dst: ouc_offset
      Src: /src/git/dir.c:3901,1
    - Dst: xstrdup
      Src: /src/git/dir.c:3903,1
    - Dst: strlen
      Src: /src/git/dir.c:3905,1
    - Dst: decode_varint
      Src: /src/git/dir.c:3909,1
    - Dst: ewah_new
      Src: /src/git/dir.c:3913,1
    - Dst: ewah_new
      Src: /src/git/dir.c:3914,1
    - Dst: ewah_new
      Src: /src/git/dir.c:3915,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/dir.c:3919,1
    - Dst: read_one_dir
      Src: /src/git/dir.c:3921,1
    - Dst: ewah_read_mmap
      Src: /src/git/dir.c:3925,1
    - Dst: ewah_read_mmap
      Src: /src/git/dir.c:3930,1
    - Dst: ewah_read_mmap
      Src: /src/git/dir.c:3935,1
    - Dst: ewah_each_bit
      Src: /src/git/dir.c:3939,1
    - Dst: ewah_each_bit
      Src: /src/git/dir.c:3941,1
    - Dst: ewah_each_bit
      Src: /src/git/dir.c:3942,1
    - Dst: free
      Src: /src/git/dir.c:3946,1
    - Dst: ewah_free
      Src: /src/git/dir.c:3947,1
    - Dst: ewah_free
      Src: /src/git/dir.c:3948,1
    - Dst: ewah_free
      Src: /src/git/dir.c:3949,1
    - Dst: free_untracked_cache
      Src: /src/git/dir.c:3952,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 2
    argNames:
    - data
    - sz
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3956
      start: 3865
    functionDepth: 3
    functionLinenumber: 3865
    functionLinenumberEnd: 3956
    functionName: read_untracked_extension
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - decode_varint
    - ewah_new
    - free_untracked_cache
    - ewah_each_bit
    - ALLOC_ARRAY
    - ewah_read_mmap
    - get_be32
    - ouc_offset
    - load_oid_stat
    - strlen
    - read_one_dir
    - CALLOC_ARRAY
    - free
    - ewah_free
    - strbuf_init
    - strbuf_add
    - xstrdup
    linkageType: ''
    returnType: struct untracked_cache
    signature: struct untracked_cache *read_untracked_extension(const void *data,
      unsigned long sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/dir.c:3964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - uc
    - ucd
    argTypes:
    - struct untracked_cache*
    - struct untracked_cache_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3966
      start: 3958
    functionDepth: 1
    functionLinenumber: 3958
    functionLinenumberEnd: 3966
    functionName: invalidate_one_directory
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void invalidate_one_directory(struct untracked_cache *uc,\n\t\t\t\t
      \    struct untracked_cache_dir *ucd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/dir.c:3996,1
    - Dst: lookup_untracked
      Src: /src/git/dir.c:4001,1
    - Dst: invalidate_one_component
      Src: /src/git/dir.c:4003,1
    - Dst: invalidate_one_directory
      Src: /src/git/dir.c:4006,1
    - Dst: invalidate_one_directory
      Src: /src/git/dir.c:4010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - uc
    - dir
    - path
    - len
    argTypes:
    - struct untracked_cache*
    - struct untracked_cache_dir*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 3992
    functionDepth: 2
    functionLinenumber: 3992
    functionLinenumberEnd: 4012
    functionName: invalidate_one_component
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - invalidate_one_directory
    - lookup_untracked
    - invalidate_one_component
    - strchr
    linkageType: ''
    returnType: int
    signature: "int invalidate_one_component(struct untracked_cache *uc,\n\t\t\t\t
      \   struct untracked_cache_dir *dir,\n\t\t\t\t    const char *path, int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: verify_path
      Src: /src/git/dir.c:4019,1
    - Dst: invalidate_one_component
      Src: /src/git/dir.c:4021,1
    - Dst: strlen
      Src: /src/git/dir.c:4022,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - istate
    - path
    - safe_path
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4023
      start: 4014
    functionDepth: 3
    functionLinenumber: 4014
    functionLinenumberEnd: 4023
    functionName: untracked_cache_invalidate_path
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - verify_path
    - strlen
    - invalidate_one_component
    linkageType: ''
    returnType: void
    signature: "void untracked_cache_invalidate_path(struct index_state *istate,\n\t\t\t\t
      \    const char *path, int safe_path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/dir.c:4029,1
    - Dst: BUG
      Src: /src/git/dir.c:4032,1
    - Dst: untracked_cache_invalidate_path
      Src: /src/git/dir.c:4035,1
    - Dst: strbuf_add
      Src: /src/git/dir.c:4039,1
    - Dst: untracked_cache_invalidate_path
      Src: /src/git/dir.c:4040,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:4041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - istate
    - path
    - safe_path
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4043
      start: 4025
    functionDepth: 4
    functionLinenumber: 4025
    functionLinenumberEnd: 4043
    functionName: untracked_cache_invalidate_trimmed_path
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strlen
    - untracked_cache_invalidate_path
    - BUG
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void untracked_cache_invalidate_trimmed_path(struct index_state *istate,\n\t\t\t\t\t
      \    const char *path,\n\t\t\t\t\t     int safe_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: untracked_cache_invalidate_path
      Src: /src/git/dir.c:4048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4045
    functionDepth: 4
    functionLinenumber: 4045
    functionLinenumberEnd: 4049
    functionName: untracked_cache_remove_from_index
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - untracked_cache_invalidate_path
    linkageType: ''
    returnType: void
    signature: "void untracked_cache_remove_from_index(struct index_state *istate,\n\t\t\t\t
      \      const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: untracked_cache_invalidate_path
      Src: /src/git/dir.c:4054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4055
      start: 4051
    functionDepth: 4
    functionLinenumber: 4051
    functionLinenumberEnd: 4055
    functionName: untracked_cache_add_to_index
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - untracked_cache_invalidate_path
    linkageType: ''
    returnType: void
    signature: "void untracked_cache_add_to_index(struct index_state *istate,\n\t\t\t\t
      \ const char *path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_init
      Src: /src/git/dir.c:4068,1
    - Dst: repo_read_index
      Src: /src/git/dir.c:4071,1
    - Dst: die
      Src: /src/git/dir.c:4072,1
    - Dst: _
      Src: /src/git/dir.c:4072,1
    - Dst: ensure_full_index
      Src: /src/git/dir.c:4075,1
    - Dst: S_ISGITLINK
      Src: /src/git/dir.c:4079,1
    - Dst: strcmp
      Src: /src/git/dir.c:4083,1
    - Dst: submodule_from_path
      Src: /src/git/dir.c:4090,1
    - Dst: null_oid
      Src: /src/git/dir.c:4090,1
    - Dst: is_submodule_active
      Src: /src/git/dir.c:4091,1
    - Dst: strbuf_reset
      Src: /src/git/dir.c:4095,1
    - Dst: strbuf_reset
      Src: /src/git/dir.c:4096,1
    - Dst: strbuf_addf
      Src: /src/git/dir.c:4097,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/dir.c:4098,1
    - Dst: connect_work_tree_and_git_dir
      Src: /src/git/dir.c:4100,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:4102,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:4103,1
    - Dst: repo_clear
      Src: /src/git/dir.c:4104,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - sub_worktree
    - sub_gitdir
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4105
      start: 4057
    functionDepth: 1
    functionLinenumber: 4057
    functionLinenumberEnd: 4105
    functionName: connect_wt_gitdir_in_nested
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - submodule_from_path
    - is_submodule_active
    - submodule_name_to_gitdir
    - die
    - strbuf_release
    - repo_read_index
    - strbuf_reset
    - connect_work_tree_and_git_dir
    - S_ISGITLINK
    - strbuf_addf
    - repo_clear
    - repo_init
    - strcmp
    - _
    - null_oid
    linkageType: ''
    returnType: void
    signature: "void connect_wt_gitdir_in_nested(const char *sub_worktree,\n\t\t\t\t\tconst
      char *sub_gitdir)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/dir.c:4117,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/dir.c:4118,1
    - Dst: die
      Src: /src/git/dir.c:4119,1
    - Dst: _
      Src: /src/git/dir.c:4119,1
    - Dst: strbuf_addf
      Src: /src/git/dir.c:4122,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/dir.c:4123,1
    - Dst: die
      Src: /src/git/dir.c:4124,1
    - Dst: _
      Src: /src/git/dir.c:4124,1
    - Dst: real_pathdup
      Src: /src/git/dir.c:4126,1
    - Dst: real_pathdup
      Src: /src/git/dir.c:4127,1
    - Dst: write_file
      Src: /src/git/dir.c:4130,1
    - Dst: relative_path
      Src: /src/git/dir.c:4131,1
    - Dst: repo_config_set_in_file
      Src: /src/git/dir.c:4133,1
    - Dst: relative_path
      Src: /src/git/dir.c:4134,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:4136,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:4137,1
    - Dst: strbuf_release
      Src: /src/git/dir.c:4138,1
    - Dst: connect_wt_gitdir_in_nested
      Src: /src/git/dir.c:4141,1
    - Dst: free
      Src: /src/git/dir.c:4143,1
    - Dst: free
      Src: /src/git/dir.c:4144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - work_tree_
    - git_dir_
    - recurse_into_nested
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4145
      start: 4107
    functionDepth: 2
    functionLinenumber: 4107
    functionLinenumberEnd: 4145
    functionName: connect_work_tree_and_git_dir
    functionSourceFile: /src/git/dir.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - die
    - write_file
    - connect_wt_gitdir_in_nested
    - relative_path
    - repo_config_set_in_file
    - strbuf_addf
    - safe_create_leading_directories_const
    - _
    - free
    - real_pathdup
    linkageType: ''
    returnType: void
    signature: "void connect_work_tree_and_git_dir(const char *work_tree_,\n\t\t\t\t
      \  const char *git_dir_,\n\t\t\t\t   int recurse_into_nested)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rename
      Src: /src/git/dir.c:4152,1
    - Dst: die_errno
      Src: /src/git/dir.c:4153,1
    - Dst: _
      Src: /src/git/dir.c:4153,1
    - Dst: connect_work_tree_and_git_dir
      Src: /src/git/dir.c:4156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - path
    - old_git_dir
    - new_git_dir
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4157
      start: 4150
    functionDepth: 3
    functionLinenumber: 4150
    functionLinenumberEnd: 4157
    functionName: relocate_gitdir
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - connect_work_tree_and_git_dir
    - die_errno
    - rename
    - _
    linkageType: ''
    returnType: void
    signature: void relocate_gitdir(const char *path, const char *old_git_dir, const
      char *new_git_dir)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/dir.c:4165,1
    - Dst: BUG
      Src: /src/git/dir.c:4167,1
    - Dst: BUG
      Src: /src/git/dir.c:4171,1
    - Dst: BUG
      Src: /src/git/dir.c:4173,1
    - Dst: is_dir_sep
      Src: /src/git/dir.c:4182,1
    - Dst: is_xplatform_dir_sep
      Src: /src/git/dir.c:4184,1
    - Dst: BUG
      Src: /src/git/dir.c:4185,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - str
    - flags
    argTypes:
    - char*
    - enum path_match_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4186
      start: 4159
    functionDepth: 1
    functionLinenumber: 4159
    functionLinenumberEnd: 4186
    functionName: path_match_flags
    functionSourceFile: /src/git/dir.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - BUG
    - is_xplatform_dir_sep
    linkageType: ''
    returnType: int
    signature: int path_match_flags(const char *const str, const enum path_match_flags
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - option
    - ','
    - filter
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: _OPT_MERGED_NO_MERGED
    functionSourceFile: /src/git/ref-filter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _OPT_MERGED_NO_MERGED(option, filter, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: OPT_MERGED
    functionSourceFile: /src/git/ref-filter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_MERGED(f, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: OPT_NO_MERGED
    functionSourceFile: /src/git/ref-filter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_NO_MERGED(f, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: OPT_REF_SORT
    functionSourceFile: /src/git/ref-filter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_REF_SORT(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: OPT_REF_FILTER_EXCLUDE
    functionSourceFile: /src/git/ref-filter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_REF_FILTER_EXCLUDE(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: DATE_MODE
    functionSourceFile: /src/git/date.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATE_MODE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: approxidate
    functionSourceFile: /src/git/date.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: approxidate(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/mem-pool.c:45,1
    - Dst: st_add
      Src: /src/git/mem-pool.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - pool
    - block_alloc
    - insert_after
    argTypes:
    - struct mem_pool*
    - size_t
    - struct mp_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: mem_pool_alloc_block
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - st_add
    linkageType: ''
    returnType: struct mp_block
    signature: "struct mp_block *mem_pool_alloc_block(struct mem_pool *pool,\n\t\t\t\t\t
      \    size_t block_alloc,\n\t\t\t\t\t     struct mp_block *insert_after)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/mem-pool.c:63,1
    - Dst: mem_pool_alloc_block
      Src: /src/git/mem-pool.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - initial_size
    argTypes:
    - struct mem_pool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: mem_pool_init
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached:
    - mem_pool_alloc_block
    - memset
    linkageType: ''
    returnType: void
    signature: void mem_pool_init(struct mem_pool *pool, size_t initial_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/mem-pool.c:81,1
    - Dst: free
      Src: /src/git/mem-pool.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - invalidate_memory
    argTypes:
    - struct mem_pool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: mem_pool_discard
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void mem_pool_discard(struct mem_pool *pool, int invalidate_memory)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/git/mem-pool.c:95,1
    - Dst: mem_pool_alloc_block
      Src: /src/git/mem-pool.c:103,1
    - Dst: mem_pool_alloc_block
      Src: /src/git/mem-pool.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pool
    - len
    argTypes:
    - struct mem_pool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 111
    functionName: mem_pool_alloc
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached:
    - mem_pool_alloc_block
    - DIV_ROUND_UP
    linkageType: ''
    returnType: void
    signature: void *mem_pool_alloc(struct mem_pool *pool, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/git/mem-pool.c:124,1
    - Dst: vsnprintf
      Src: /src/git/mem-pool.c:125,1
    - Dst: va_end
      Src: /src/git/mem-pool.c:126,1
    - Dst: die
      Src: /src/git/mem-pool.c:128,1
    - Dst: _
      Src: /src/git/mem-pool.c:128,1
    - Dst: st_add
      Src: /src/git/mem-pool.c:130,1
    - Dst: mem_pool_alloc
      Src: /src/git/mem-pool.c:131,1
    - Dst: vsnprintf
      Src: /src/git/mem-pool.c:137,1
    - Dst: BUG
      Src: /src/git/mem-pool.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pool
    - fmt
    - ap
    argTypes:
    - struct mem_pool*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 141
    functionName: mem_pool_strvfmt
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached:
    - die
    - va_copy
    - va_end
    - mem_pool_alloc
    - _
    - vsnprintf
    - st_add
    - BUG
    linkageType: ''
    returnType: char
    signature: "char *mem_pool_strvfmt(struct mem_pool *pool, const char *fmt,\n\t\t\t
      \     va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/mem-pool.c:148,1
    - Dst: mem_pool_strvfmt
      Src: /src/git/mem-pool.c:149,1
    - Dst: va_end
      Src: /src/git/mem-pool.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - fmt
    argTypes:
    - struct mem_pool*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: mem_pool_strfmt
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - mem_pool_strvfmt
    linkageType: ''
    returnType: char
    signature: char *mem_pool_strfmt(struct mem_pool *pool, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: st_mult
      Src: /src/git/mem-pool.c:156,1
    - Dst: mem_pool_alloc
      Src: /src/git/mem-pool.c:157,1
    - Dst: memset
      Src: /src/git/mem-pool.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pool
    - count
    - size
    argTypes:
    - struct mem_pool*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: mem_pool_calloc
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached:
    - mem_pool_alloc
    - memset
    - st_mult
    linkageType: ''
    returnType: void
    signature: void *mem_pool_calloc(struct mem_pool *pool, size_t count, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/mem-pool.c:164,1
    - Dst: mem_pool_alloc
      Src: /src/git/mem-pool.c:165,1
    - Dst: memcpy
      Src: /src/git/mem-pool.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - str
    argTypes:
    - struct mem_pool*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: mem_pool_strdup
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached:
    - mem_pool_alloc
    - strlen
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *mem_pool_strdup(struct mem_pool *pool, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/mem-pool.c:172,1
    - Dst: mem_pool_alloc
      Src: /src/git/mem-pool.c:174,1
    - Dst: memcpy
      Src: /src/git/mem-pool.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pool
    - str
    - len
    argTypes:
    - struct mem_pool*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: mem_pool_strndup
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached:
    - mem_pool_alloc
    - memchr
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *mem_pool_strndup(struct mem_pool *pool, const char *str, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - mem
    argTypes:
    - struct mem_pool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 191
    functionName: mem_pool_contains
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mem_pool_contains(struct mem_pool *pool, void *mem)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct mem_pool*
    - struct mem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 220
    functionName: mem_pool_combine
    functionSourceFile: /src/git/mem-pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mem_pool_combine(struct mem_pool *dst, struct mem_pool *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hold_lock_file_for_update_timeout_mode
      Src: /src/git/lockfile.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - lk
    - path
    - flags
    - timeout_ms
    argTypes:
    - struct lock_file*
    - char*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: hold_lock_file_for_update_timeout
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - hold_lock_file_for_update_timeout_mode
    linkageType: ''
    returnType: int
    signature: "int hold_lock_file_for_update_timeout(\n\tstruct lock_file *lk, const
      char *path,\n\tint flags, long timeout_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hold_lock_file_for_update_timeout
      Src: /src/git/lockfile.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lk
    - path
    - flags
    argTypes:
    - struct lock_file*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: hold_lock_file_for_update
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - hold_lock_file_for_update_timeout
    linkageType: ''
    returnType: int
    signature: "int hold_lock_file_for_update(\n\tstruct lock_file *lk, const char
      *path, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hold_lock_file_for_update_timeout_mode
      Src: /src/git/lockfile.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - lk
    - path
    - flags
    - mode
    argTypes:
    - struct lock_file*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: hold_lock_file_for_update_mode
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - hold_lock_file_for_update_timeout_mode
    linkageType: ''
    returnType: int
    signature: "int hold_lock_file_for_update_mode(\n\tstruct lock_file *lk, const
      char *path,\n\tint flags, int mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/lockfile.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lk
    argTypes:
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: is_lock_file_locked
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - is_tempfile_active
    linkageType: ''
    returnType: int
    signature: int is_lock_file_locked(struct lock_file *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdopen_tempfile
      Src: /src/git/lockfile.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lk
    - mode
    argTypes:
    - struct lock_file*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: fdopen_lock_file
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - fdopen_tempfile
    linkageType: ''
    returnType: FILE
    signature: FILE *fdopen_lock_file(struct lock_file *lk, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tempfile_path
      Src: /src/git/lockfile.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lk
    argTypes:
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: get_lock_file_path
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - get_tempfile_path
    linkageType: ''
    returnType: char
    signature: char *get_lock_file_path(struct lock_file *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tempfile_fd
      Src: /src/git/lockfile.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lk
    argTypes:
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: get_lock_file_fd
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - get_tempfile_fd
    linkageType: ''
    returnType: int
    signature: int get_lock_file_fd(struct lock_file *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tempfile_fp
      Src: /src/git/lockfile.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lk
    argTypes:
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: get_lock_file_fp
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - get_tempfile_fp
    linkageType: ''
    returnType: FILE
    signature: FILE *get_lock_file_fp(struct lock_file *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_tempfile_gently
      Src: /src/git/lockfile.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lk
    argTypes:
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: close_lock_file_gently
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - close_tempfile_gently
    linkageType: ''
    returnType: int
    signature: int close_lock_file_gently(struct lock_file *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reopen_tempfile
      Src: /src/git/lockfile.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lk
    argTypes:
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: reopen_lock_file
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - reopen_tempfile
    linkageType: ''
    returnType: int
    signature: int reopen_lock_file(struct lock_file *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rename_tempfile
      Src: /src/git/lockfile.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lk
    - path
    argTypes:
    - struct lock_file*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: commit_lock_file_to
    functionSourceFile: /src/git/lockfile.h
    functionUses: 0
    functionsReached:
    - rename_tempfile
    linkageType: ''
    returnType: int
    signature: int commit_lock_file_to(struct lock_file *lk, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: always_auth_proactively
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int always_auth_proactively(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/http.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - eltsize
    - nmemb
    - buffer_
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 184
    functionName: fread_buffer
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t fread_buffer(char *ptr, size_t eltsize, size_t nmemb, void *buffer_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/http.c:191,1
    - Dst: error
      Src: /src/git/http.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - clientp
    - offset
    - origin
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: seek_buffer
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - error
    - BUG
    linkageType: ''
    returnType: int
    signature: int seek_buffer(void *clientp, curl_off_t offset, int origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/http.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - eltsize
    - nmemb
    - buffer_
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: fwrite_buffer
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_add
    linkageType: ''
    returnType: size_t
    signature: size_t fwrite_buffer(char *ptr, size_t eltsize, size_t nmemb, void
      *buffer_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: is_hdr_continuation
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_hdr_continuation(const char *ptr, const size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_iprefix_mem
      Src: /src/git/http.c:253,1
    - Dst: strbuf_add
      Src: /src/git/http.c:254,1
    - Dst: strbuf_trim
      Src: /src/git/http.c:261,1
    - Dst: strvec_push
      Src: /src/git/http.c:263,1
    - Dst: is_hdr_continuation
      Src: /src/git/http.c:273,1
    - Dst: strbuf_add
      Src: /src/git/http.c:277,1
    - Dst: strbuf_trim
      Src: /src/git/http.c:278,1
    - Dst: BUG
      Src: /src/git/http.c:286,1
    - Dst: xstrdup
      Src: /src/git/http.c:288,1
    - Dst: strvec_pop
      Src: /src/git/http.c:293,1
    - Dst: strvec_pushf
      Src: /src/git/http.c:294,1
    - Dst: free
      Src: /src/git/http.c:295,1
    - Dst: skip_iprefix_mem
      Src: /src/git/http.c:311,1
    - Dst: strvec_clear
      Src: /src/git/http.c:312,1
    - Dst: strbuf_release
      Src: /src/git/http.c:315,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - ptr
    - eltsize
    - nmemb
    - MAYBE_UNUSED
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 317
    functionName: fwrite_wwwauth
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - strvec_pop
    - is_hdr_continuation
    - skip_iprefix_mem
    - strbuf_trim
    - strvec_clear
    - free
    - BUG
    - strvec_pushf
    - strbuf_add
    - xstrdup
    linkageType: ''
    returnType: size_t
    signature: size_t fwrite_wwwauth(char *ptr, size_t eltsize, size_t nmemb, void
      *p MAYBE_UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - UNUSED
    - eltsize
    - nmemb
    - UNUSED
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: fwrite_null
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t fwrite_null(char *ptr UNUSED, size_t eltsize UNUSED, size_t
      nmemb,\n\t\t   void *data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/git/http.c:327,1
    - Dst: http_copy_default_headers
      Src: /src/git/http.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: object_request_headers
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - http_copy_default_headers
    - curl_slist_append
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *object_request_headers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot
    argTypes:
    - struct active_request_slot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: closedown_active_slot
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void closedown_active_slot(struct active_request_slot *slot)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: closedown_active_slot
      Src: /src/git/http.c:338,1
    - Dst: curl_easy_getinfo
      Src: /src/git/http.c:339,1
    - Dst: curl_easy_getinfo
      Src: /src/git/http.c:348,1
    - Dst: curl_easy_getinfo
      Src: /src/git/http.c:351,1
    - Dst: struct active_request_slot*::callback_func
      Src: /src/git/http.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - slot
    argTypes:
    - struct active_request_slot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 358
    functionName: finish_active_slot
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - struct active_request_slot*::callback_func
    - closedown_active_slot
    linkageType: ''
    returnType: void
    signature: void finish_active_slot(struct active_request_slot *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_remove_handle
      Src: /src/git/http.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - struct active_request_slot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: xmulti_remove_handle
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - curl_multi_remove_handle
    linkageType: ''
    returnType: void
    signature: void xmulti_remove_handle(struct active_request_slot *slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_info_read
      Src: /src/git/http.c:369,1
    - Dst: xmulti_remove_handle
      Src: /src/git/http.c:379,1
    - Dst: finish_active_slot
      Src: /src/git/http.c:381,1
    - Dst: fprintf
      Src: /src/git/http.c:383,1
    - Dst: fprintf
      Src: /src/git/http.c:386,1
    - Dst: curl_multi_info_read
      Src: /src/git/http.c:389,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 391
    functionName: process_curl_messages
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - finish_active_slot
    - curl_multi_info_read
    - fprintf
    - xmulti_remove_handle
    linkageType: ''
    returnType: void
    signature: void process_curl_messages(void)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/http.c:396,1
    - Dst: git_config_string
      Src: /src/git/http.c:397,1
    - Dst: strcmp
      Src: /src/git/http.c:399,1
    - Dst: git_config_bool
      Src: /src/git/http.c:400,1
    - Dst: strcmp
      Src: /src/git/http.c:403,1
    - Dst: git_config_string
      Src: /src/git/http.c:404,1
    - Dst: strcmp
      Src: /src/git/http.c:405,1
    - Dst: git_config_string
      Src: /src/git/http.c:406,1
    - Dst: strcmp
      Src: /src/git/http.c:407,1
    - Dst: git_config_pathname
      Src: /src/git/http.c:408,1
    - Dst: strcmp
      Src: /src/git/http.c:409,1
    - Dst: git_config_string
      Src: /src/git/http.c:410,1
    - Dst: strcmp
      Src: /src/git/http.c:411,1
    - Dst: git_config_pathname
      Src: /src/git/http.c:412,1
    - Dst: strcmp
      Src: /src/git/http.c:413,1
    - Dst: git_config_string
      Src: /src/git/http.c:414,1
    - Dst: strcmp
      Src: /src/git/http.c:415,1
    - Dst: git_config_pathname
      Src: /src/git/http.c:416,1
    - Dst: strcmp
      Src: /src/git/http.c:417,1
    - Dst: git_config_pathname
      Src: /src/git/http.c:418,1
    - Dst: strcmp
      Src: /src/git/http.c:419,1
    - Dst: git_config_bool
      Src: /src/git/http.c:420,1
    - Dst: strcmp
      Src: /src/git/http.c:423,1
    - Dst: git_config_bool
      Src: /src/git/http.c:424,1
    - Dst: strcmp
      Src: /src/git/http.c:427,1
    - Dst: free
      Src: /src/git/http.c:428,1
    - Dst: xstrdup_or_null
      Src: /src/git/http.c:429,1
    - Dst: strcmp
      Src: /src/git/http.c:433,1
    - Dst: git_config_bool
      Src: /src/git/http.c:434,1
    - Dst: strcmp
      Src: /src/git/http.c:438,1
    - Dst: git_config_bool
      Src: /src/git/http.c:439,1
    - Dst: strcmp
      Src: /src/git/http.c:443,1
    - Dst: git_config_int
      Src: /src/git/http.c:444,1
    - Dst: strcmp
      Src: /src/git/http.c:449,1
    - Dst: git_config_int
      Src: /src/git/http.c:450,1
    - Dst: strcmp
      Src: /src/git/http.c:453,1
    - Dst: git_config_int
      Src: /src/git/http.c:454,1
    - Dst: strcmp
      Src: /src/git/http.c:457,1
    - Dst: git_config_int
      Src: /src/git/http.c:458,1
    - Dst: strcmp
      Src: /src/git/http.c:462,1
    - Dst: git_config_bool
      Src: /src/git/http.c:463,1
    - Dst: strcmp
      Src: /src/git/http.c:466,1
    - Dst: git_config_string
      Src: /src/git/http.c:467,1
    - Dst: strcmp
      Src: /src/git/http.c:469,1
    - Dst: git_config_string
      Src: /src/git/http.c:470,1
    - Dst: strcmp
      Src: /src/git/http.c:472,1
    - Dst: git_config_string
      Src: /src/git/http.c:473,1
    - Dst: strcmp
      Src: /src/git/http.c:475,1
    - Dst: git_config_string
      Src: /src/git/http.c:476,1
    - Dst: strcmp
      Src: /src/git/http.c:478,1
    - Dst: git_config_string
      Src: /src/git/http.c:479,1
    - Dst: strcmp
      Src: /src/git/http.c:481,1
    - Dst: git_config_bool
      Src: /src/git/http.c:482,1
    - Dst: strcmp
      Src: /src/git/http.c:486,1
    - Dst: git_config_pathname
      Src: /src/git/http.c:487,1
    - Dst: strcmp
      Src: /src/git/http.c:488,1
    - Dst: git_config_bool
      Src: /src/git/http.c:489,1
    - Dst: strcmp
      Src: /src/git/http.c:493,1
    - Dst: git_config_ssize_t
      Src: /src/git/http.c:494,1
    - Dst: warning
      Src: /src/git/http.c:496,1
    - Dst: _
      Src: /src/git/http.c:496,1
    - Dst: strcmp
      Src: /src/git/http.c:502,1
    - Dst: git_config_string
      Src: /src/git/http.c:503,1
    - Dst: strcmp
      Src: /src/git/http.c:505,1
    - Dst: strcmp
      Src: /src/git/http.c:506,1
    - Dst: git_config_bool
      Src: /src/git/http.c:509,1
    - Dst: strcmp
      Src: /src/git/http.c:513,1
    - Dst: git_config_string
      Src: /src/git/http.c:515,1
    - Dst: warning
      Src: /src/git/http.c:517,1
    - Dst: _
      Src: /src/git/http.c:517,1
    - Dst: strcmp
      Src: /src/git/http.c:522,1
    - Dst: git_config_pathname
      Src: /src/git/http.c:523,1
    - Dst: strcmp
      Src: /src/git/http.c:526,1
    - Dst: config_error_nonbool
      Src: /src/git/http.c:528,1
    - Dst: string_list_clear
      Src: /src/git/http.c:530,1
    - Dst: string_list_append
      Src: /src/git/http.c:532,1
    - Dst: strcmp
      Src: /src/git/http.c:537,1
    - Dst: config_error_nonbool
      Src: /src/git/http.c:539,1
    - Dst: curl_slist_free_all
      Src: /src/git/http.c:541,1
    - Dst: curl_slist_append
      Src: /src/git/http.c:544,1
    - Dst: strcmp
      Src: /src/git/http.c:549,1
    - Dst: strcmp
      Src: /src/git/http.c:550,1
    - Dst: git_config_bool
      Src: /src/git/http.c:552,1
    - Dst: strcmp
      Src: /src/git/http.c:559,1
    - Dst: config_error_nonbool
      Src: /src/git/http.c:561,1
    - Dst: strcmp
      Src: /src/git/http.c:562,1
    - Dst: strcmp
      Src: /src/git/http.c:564,1
    - Dst: strcmp
      Src: /src/git/http.c:566,1
    - Dst: warning
      Src: /src/git/http.c:569,1
    - Dst: _
      Src: /src/git/http.c:569,1
    - Dst: strcmp
      Src: /src/git/http.c:573,1
    - Dst: git_config_int
      Src: /src/git/http.c:574,1
    - Dst: strcmp
      Src: /src/git/http.c:577,1
    - Dst: git_config_int
      Src: /src/git/http.c:578,1
    - Dst: strcmp
      Src: /src/git/http.c:581,1
    - Dst: git_config_int
      Src: /src/git/http.c:582,1
    - Dst: strcmp
      Src: /src/git/http.c:586,1
    - Dst: git_config_int
      Src: /src/git/http.c:587,1
    - Dst: strcmp
      Src: /src/git/http.c:591,1
    - Dst: git_config_int
      Src: /src/git/http.c:592,1
    - Dst: strcmp
      Src: /src/git/http.c:596,1
    - Dst: git_config_int
      Src: /src/git/http.c:597,1
    - Dst: git_default_config
      Src: /src/git/http.c:602,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 179
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 603
    functionName: http_options
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - git_config_pathname
    - git_config_int
    - xstrdup_or_null
    - git_config_ssize_t
    - git_config_string
    - curl_slist_free_all
    - strcmp
    - curl_slist_append
    - config_error_nonbool
    - git_config_bool
    - free
    - string_list_append
    - git_default_config
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: "int http_options(const char *var, const char *value,\n\t\t\tconst
      struct config_context *ctx, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 623
    functionName: curl_empty_auth_enabled
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int curl_empty_auth_enabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/http.c:630,1
    - Dst: curl_slist_append
      Src: /src/git/http.c:632,1
    - Dst: strbuf_release
      Src: /src/git/http.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - headers
    argTypes:
    - struct credential*
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 636
    functionName: http_append_auth_header
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - curl_slist_append
    linkageType: ''
    returnType: struct curl_slist
    signature: "struct curl_slist *http_append_auth_header(const struct credential
      *c,\n\t\t\t\t\t   struct curl_slist *headers)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: always_auth_proactively
      Src: /src/git/http.c:642,1
    - Dst: curl_empty_auth_enabled
      Src: /src/git/http.c:642,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:643,1
    - Dst: always_auth_proactively
      Src: /src/git/http.c:645,1
    - Dst: strvec_push
      Src: /src/git/http.c:648,1
    - Dst: credential_fill
      Src: /src/git/http.c:652,1
    - Dst: always_auth_proactively
      Src: /src/git/http.c:655,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:662,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:664,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:665,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - result
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 667
    functionName: init_curl_http_auth
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - always_auth_proactively
    - strvec_push
    - curl_empty_auth_enabled
    - credential_fill
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void init_curl_http_auth(CURL *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: credential_fill
      Src: /src/git/http.c:682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - all_capabilities
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 683
    functionName: http_reauth_prepare
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - credential_fill
    linkageType: ''
    returnType: void
    signature: void http_reauth_prepare(int all_capabilities)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/http.c:689,1
    - Dst: xstrdup
      Src: /src/git/http.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 692
    functionName: var_override
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void var_override(char **var, char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:697,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:699,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:702,1
    - Dst: http_append_auth_header
      Src: /src/git/http.c:703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - result
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 705
    functionName: set_proxyauth_name_password
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - http_append_auth_header
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void set_proxyauth_name_password(CURL *result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: credential_fill
      Src: /src/git/http.c:711,1
    - Dst: set_proxyauth_name_password
      Src: /src/git/http.c:712,1
    - Dst: var_override
      Src: /src/git/http.c:715,1
    - Dst: getenv
      Src: /src/git/http.c:715,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http.c:719,1
    - Dst: strcmp
      Src: /src/git/http.c:720,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:721,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http.c:726,1
    - Dst: warning
      Src: /src/git/http.c:727,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:729,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:733,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - result
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 734
    functionName: init_curl_proxy_auth
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - set_proxyauth_name_password
    - var_override
    - credential_fill
    - strcmp
    - getenv
    - warning
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void init_curl_proxy_auth(CURL *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/http.c:741,1
    - Dst: xstrdup
      Src: /src/git/http.c:742,1
    - Dst: xstrdup
      Src: /src/git/http.c:743,1
    - Dst: xstrdup
      Src: /src/git/http.c:744,1
    - Dst: credential_fill
      Src: /src/git/http.c:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 748
    functionName: has_cert_password
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - credential_fill
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int has_cert_password(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/http.c:755,1
    - Dst: xstrdup
      Src: /src/git/http.c:756,1
    - Dst: xstrdup
      Src: /src/git/http.c:757,1
    - Dst: xstrdup
      Src: /src/git/http.c:758,1
    - Dst: credential_fill
      Src: /src/git/http.c:759,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 762
    functionName: has_proxy_cert_password
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - credential_fill
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int has_proxy_cert_password(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/http.c:782,1
    - Dst: strcmp
      Src: /src/git/http.c:783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 788
    functionName: find_socks_proxy_type
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strcmp
    linkageType: ''
    returnType: struct socks_proxy_type
    signature: struct socks_proxy_type *find_socks_proxy_type(const char *protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_socks_proxy_type
      Src: /src/git/http.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 793
    functionName: is_socks_proxy_protocol
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - find_socks_proxy_type
    linkageType: ''
    returnType: int
    signature: int is_socks_proxy_protocol(const char *protocol)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/http.c:799,1
    - Dst: find_socks_proxy_type
      Src: /src/git/http.c:802,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:804,1
    - Dst: strcmp
      Src: /src/git/http.c:808,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:809,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:812,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:816,1
    - Dst: has_proxy_cert_password
      Src: /src/git/http.c:819,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:820,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - result
    - protocol
    argTypes:
    - CURL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 825
    functionName: set_curl_proxy_type
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - find_socks_proxy_type
    - has_proxy_cert_password
    - curl_easy_setopt
    - strcmp
    linkageType: ''
    returnType: int
    signature: int set_curl_proxy_type(CURL *result, const char *protocol)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_iprefix
      Src: /src/git/http.c:834,1
    - Dst: skip_iprefix
      Src: /src/git/http.c:835,1
    - Dst: isspace
      Src: /src/git/http.c:837,1
    - Dst: isspace
      Src: /src/git/http.c:839,1
    - Dst: strbuf_setlen
      Src: /src/git/http.c:842,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:843,1
    - Dst: skip_iprefix
      Src: /src/git/http.c:846,1
    - Dst: isspace
      Src: /src/git/http.c:850,1
    - Dst: strstr
      Src: /src/git/http.c:857,1
    - Dst: strchrnul
      Src: /src/git/http.c:860,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:863,1
    - Dst: strbuf_add
      Src: /src/git/http.c:866,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:867,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:873,1
    - Dst: strlen
      Src: /src/git/http.c:874,1
    - Dst: strbuf_setlen
      Src: /src/git/http.c:880,1
    - Dst: strbuf_addbuf
      Src: /src/git/http.c:881,1
    - Dst: strbuf_release
      Src: /src/git/http.c:882,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - header
    - offset
    argTypes:
    - struct strbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 886
    functionName: redact_sensitive_header
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - isspace
    - skip_iprefix
    - strbuf_release
    - strstr
    - strbuf_setlen
    - strlen
    - strbuf_addbuf
    - strbuf_addstr
    - strchrnul
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int redact_sensitive_header(struct strbuf *header, size_t offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_iprefix
      Src: /src/git/http.c:899,1
    - Dst: skip_iprefix
      Src: /src/git/http.c:900,1
    - Dst: skip_iprefix
      Src: /src/git/http.c:908,1
    - Dst: isdigit
      Src: /src/git/http.c:909,1
    - Dst: skip_prefix
      Src: /src/git/http.c:911,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - line
    - out
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 916
    functionName: match_curl_h2_trace
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - isdigit
    - skip_iprefix
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int match_curl_h2_trace(const char *line, const char **out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: match_curl_h2_trace
      Src: /src/git/http.c:924,1
    - Dst: redact_sensitive_header
      Src: /src/git/http.c:925,1
    - Dst: strbuf_addch
      Src: /src/git/http.c:927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 919
    functionDepth: 2
    functionLinenumber: 919
    functionLinenumberEnd: 930
    functionName: redact_sensitive_info_header
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - redact_sensitive_header
    - match_curl_h2_trace
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void redact_sensitive_info_header(struct strbuf *header)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/http.c:937,1
    - Dst: trace_strbuf
      Src: /src/git/http.c:939,1
    - Dst: strbuf_reset
      Src: /src/git/http.c:940,1
    - Dst: strbuf_add
      Src: /src/git/http.c:941,1
    - Dst: strbuf_split_max
      Src: /src/git/http.c:942,1
    - Dst: redact_sensitive_header
      Src: /src/git/http.c:946,1
    - Dst: strbuf_insertstr
      Src: /src/git/http.c:947,1
    - Dst: strbuf_insertstr
      Src: /src/git/http.c:948,1
    - Dst: strlen
      Src: /src/git/http.c:948,1
    - Dst: strbuf_rtrim
      Src: /src/git/http.c:949,1
    - Dst: strbuf_addch
      Src: /src/git/http.c:950,1
    - Dst: trace_strbuf
      Src: /src/git/http.c:951,1
    - Dst: strbuf_list_free
      Src: /src/git/http.c:953,1
    - Dst: strbuf_release
      Src: /src/git/http.c:954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - text
    - ptr
    - size
    - hide_sensitive_header
    argTypes:
    - char*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 955
    functionName: curl_dump_header
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_insertstr
    - strbuf_release
    - redact_sensitive_header
    - strbuf_reset
    - strbuf_split_max
    - strbuf_addf
    - strbuf_addch
    - strlen
    - strbuf_list_free
    - trace_strbuf
    - strbuf_add
    - strbuf_rtrim
    linkageType: ''
    returnType: void
    signature: void curl_dump_header(const char *text, unsigned char *ptr, size_t
      size, int hide_sensitive_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/http.c:963,1
    - Dst: trace_strbuf
      Src: /src/git/http.c:965,1
    - Dst: strbuf_reset
      Src: /src/git/http.c:970,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:971,1
    - Dst: strbuf_addch
      Src: /src/git/http.c:975,1
    - Dst: strbuf_addch
      Src: /src/git/http.c:979,1
    - Dst: trace_strbuf
      Src: /src/git/http.c:980,1
    - Dst: strbuf_release
      Src: /src/git/http.c:982,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - text
    - ptr
    - size
    argTypes:
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 983
    functionName: curl_dump_data
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - trace_strbuf
    linkageType: ''
    returnType: void
    signature: void curl_dump_data(const char *text, unsigned char *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/http.c:989,1
    - Dst: redact_sensitive_info_header
      Src: /src/git/http.c:991,1
    - Dst: trace_printf_key
      Src: /src/git/http.c:992,1
    - Dst: strbuf_release
      Src: /src/git/http.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 995
    functionName: curl_dump_info
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - redact_sensitive_info_header
    - strbuf_add
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void curl_dump_info(char *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace_override_envvar
      Src: /src/git/http.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1051
    functionName: http_trace_curl_no_data
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - trace_override_envvar
    linkageType: ''
    returnType: void
    signature: void http_trace_curl_no_data(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace_want
      Src: /src/git/http.c:1055,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1057,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1058,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1060
    functionName: setup_curl_trace
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - trace_want
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void setup_curl_trace(CURL *handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/http.c:1067,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:1068,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - list
    - proto
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1069
    functionName: proto_list_append
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void proto_list_append(struct strbuf *list, const char *proto)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_transport_allowed
      Src: /src/git/http.c:1075,1
    - Dst: proto_list_append
      Src: /src/git/http.c:1077,1
    - Dst: is_transport_allowed
      Src: /src/git/http.c:1079,1
    - Dst: proto_list_append
      Src: /src/git/http.c:1081,1
    - Dst: is_transport_allowed
      Src: /src/git/http.c:1083,1
    - Dst: proto_list_append
      Src: /src/git/http.c:1085,1
    - Dst: is_transport_allowed
      Src: /src/git/http.c:1087,1
    - Dst: proto_list_append
      Src: /src/git/http.c:1089,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - from_user
    - list
    argTypes:
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1093
    functionName: get_curl_allowed_protocols
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - is_transport_allowed
    - proto_list_append
    linkageType: ''
    returnType: long
    signature: long get_curl_allowed_protocols(int from_user, struct strbuf *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/http.c:1106,1
    - Dst: strcmp
      Src: /src/git/http.c:1107,1
    - Dst: warning
      Src: /src/git/http.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - version_string
    - opt
    argTypes:
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1115
    functionName: get_curl_http_version_opt
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - warning
    - strcmp
    linkageType: ''
    returnType: int
    signature: int get_curl_http_version_opt(const char *version_string, long *opt)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/git/http.c:1119,1
    - Dst: die
      Src: /src/git/http.c:1122,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1125,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1126,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1129,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1131,1
    - Dst: get_curl_http_version_opt
      Src: /src/git/http.c:1136,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1138,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1142,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1143,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http.c:1148,1
    - Dst: strcmp
      Src: /src/git/http.c:1149,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1150,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http.c:1155,1
    - Dst: warning
      Src: /src/git/http.c:1156,1
    - Dst: strcmp
      Src: /src/git/http.c:1161,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1163,1
    - Dst: init_curl_http_auth
      Src: /src/git/http.c:1167,1
    - Dst: getenv
      Src: /src/git/http.c:1169,1
    - Dst: getenv
      Src: /src/git/http.c:1170,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http.c:1173,1
    - Dst: strcmp
      Src: /src/git/http.c:1174,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1175,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http.c:1180,1
    - Dst: warning
      Src: /src/git/http.c:1181,1
    - Dst: getenv
      Src: /src/git/http.c:1185,1
    - Dst: getenv
      Src: /src/git/http.c:1186,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1188,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1192,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1194,1
    - Dst: has_cert_password
      Src: /src/git/http.c:1195,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1196,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1198,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1200,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1202,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1204,1
    - Dst: strcmp
      Src: /src/git/http.c:1205,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1207,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1208,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1211,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1213,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1217,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1219,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1223,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1224,1
    - Dst: get_curl_allowed_protocols
      Src: /src/git/http.c:1230,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1231,1
    - Dst: strbuf_reset
      Src: /src/git/http.c:1232,1
    - Dst: get_curl_allowed_protocols
      Src: /src/git/http.c:1234,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1235,1
    - Dst: strbuf_release
      Src: /src/git/http.c:1236,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1239,1
    - Dst: get_curl_allowed_protocols
      Src: /src/git/http.c:1240,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1241,1
    - Dst: get_curl_allowed_protocols
      Src: /src/git/http.c:1242,1
    - Dst: getenv
      Src: /src/git/http.c:1245,1
    - Dst: http_trace_curl_no_data
      Src: /src/git/http.c:1246,1
    - Dst: setup_curl_trace
      Src: /src/git/http.c:1247,1
    - Dst: getenv
      Src: /src/git/http.c:1248,1
    - Dst: git_env_bool
      Src: /src/git/http.c:1250,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1253,1
    - Dst: git_user_agent
      Src: /src/git/http.c:1254,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1257,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1260,1
    - Dst: strcmp
      Src: /src/git/http.c:1275,1
    - Dst: var_override
      Src: /src/git/http.c:1276,1
    - Dst: getenv
      Src: /src/git/http.c:1276,1
    - Dst: var_override
      Src: /src/git/http.c:1277,1
    - Dst: getenv
      Src: /src/git/http.c:1277,1
    - Dst: var_override
      Src: /src/git/http.c:1279,1
    - Dst: getenv
      Src: /src/git/http.c:1279,1
    - Dst: var_override
      Src: /src/git/http.c:1282,1
    - Dst: getenv
      Src: /src/git/http.c:1282,1
    - Dst: var_override
      Src: /src/git/http.c:1283,1
    - Dst: getenv
      Src: /src/git/http.c:1283,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1293,1
    - Dst: strstr
      Src: /src/git/http.c:1297,1
    - Dst: credential_from_url
      Src: /src/git/http.c:1298,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:1301,1
    - Dst: credential_from_url
      Src: /src/git/http.c:1302,1
    - Dst: strbuf_release
      Src: /src/git/http.c:1303,1
    - Dst: set_curl_proxy_type
      Src: /src/git/http.c:1306,1
    - Dst: die
      Src: /src/git/http.c:1307,1
    - Dst: die
      Src: /src/git/http.c:1311,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:1313,1
    - Dst: curl_version_info
      Src: /src/git/http.c:1315,1
    - Dst: die
      Src: /src/git/http.c:1318,1
    - Dst: is_socks_proxy_protocol
      Src: /src/git/http.c:1320,1
    - Dst: die
      Src: /src/git/http.c:1321,1
    - Dst: strcasecmp
      Src: /src/git/http.c:1324,1
    - Dst: die
      Src: /src/git/http.c:1325,1
    - Dst: strbuf_addch
      Src: /src/git/http.c:1328,1
    - Dst: strbuf_add_percentencode
      Src: /src/git/http.c:1329,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1331,1
    - Dst: strbuf_release
      Src: /src/git/http.c:1332,1
    - Dst: var_override
      Src: /src/git/http.c:1334,1
    - Dst: getenv
      Src: /src/git/http.c:1334,1
    - Dst: var_override
      Src: /src/git/http.c:1335,1
    - Dst: getenv
      Src: /src/git/http.c:1335,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1336,1
    - Dst: init_curl_proxy_auth
      Src: /src/git/http.c:1338,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1340,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1343,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1346,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1350,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 151
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1117
    functionDepth: 4
    functionLinenumber: 1117
    functionLinenumberEnd: 1354
    functionName: get_curl_handle
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - init_curl_http_auth
    - strcasecmp
    - strbuf_addf
    - strcmp
    - credential_from_url
    - strbuf_release
    - die
    - git_env_bool
    - strstr
    - strbuf_add_percentencode
    - setup_curl_trace
    - is_socks_proxy_protocol
    - strbuf_addstr
    - curl_easy_setopt
    - ARRAY_SIZE
    - git_user_agent
    - var_override
    - init_curl_proxy_auth
    - get_curl_http_version_opt
    - get_curl_allowed_protocols
    - warning
    - curl_version_info
    - curl_easy_init
    - has_cert_password
    - set_curl_proxy_type
    - strbuf_reset
    - http_trace_curl_no_data
    - strbuf_addch
    - getenv
    linkageType: ''
    returnType: CURL
    signature: CURL *get_curl_handle(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/http.c:1358,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http.c:1360,1
    - Dst: xstrdup
      Src: /src/git/http.c:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - var
    - envname
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1363
    functionName: set_from_env
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - getenv
    - FREE_AND_NULL
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void set_from_env(char **var, const char *envname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/http.c:1367,1
    - Dst: strtol
      Src: /src/git/http.c:1374,1
    - Dst: warning_errno
      Src: /src/git/http.c:1377,1
    - Dst: _
      Src: /src/git/http.c:1377,1
    - Dst: warning
      Src: /src/git/http.c:1379,1
    - Dst: _
      Src: /src/git/http.c:1379,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - var
    - envname
    argTypes:
    - long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1385
    functionName: set_long_from_env
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - warning_errno
    - strtol
    - _
    - getenv
    - warning
    linkageType: ''
    returnType: void
    signature: void set_long_from_env(long *var, const char *envname)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: url_normalize
      Src: /src/git/http.c:1399,1
    - Dst: repo_config
      Src: /src/git/http.c:1401,1
    - Dst: free
      Src: /src/git/http.c:1402,1
    - Dst: string_list_clear
      Src: /src/git/http.c:1403,1
    - Dst: curl_global_sslset
      Src: /src/git/http.c:1410,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:1412,1
    - Dst: _
      Src: /src/git/http.c:1412,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:1416,1
    - Dst: die
      Src: /src/git/http.c:1417,1
    - Dst: die
      Src: /src/git/http.c:1419,1
    - Dst: _
      Src: /src/git/http.c:1419,1
    - Dst: die
      Src: /src/git/http.c:1423,1
    - Dst: _
      Src: /src/git/http.c:1423,1
    - Dst: curl_global_init
      Src: /src/git/http.c:1430,1
    - Dst: die
      Src: /src/git/http.c:1431,1
    - Dst: getenv
      Src: /src/git/http.c:1435,1
    - Dst: curl_global_trace
      Src: /src/git/http.c:1437,1
    - Dst: xstrdup
      Src: /src/git/http.c:1445,1
    - Dst: var_override
      Src: /src/git/http.c:1448,1
    - Dst: curl_slist_append
      Src: /src/git/http.c:1450,1
    - Dst: http_copy_default_headers
      Src: /src/git/http.c:1450,1
    - Dst: getenv
      Src: /src/git/http.c:1454,1
    - Dst: atoi
      Src: /src/git/http.c:1456,1
    - Dst: curl_multi_init
      Src: /src/git/http.c:1459,1
    - Dst: die
      Src: /src/git/http.c:1461,1
    - Dst: getenv
      Src: /src/git/http.c:1463,1
    - Dst: set_from_env
      Src: /src/git/http.c:1466,1
    - Dst: set_from_env
      Src: /src/git/http.c:1467,1
    - Dst: set_from_env
      Src: /src/git/http.c:1468,1
    - Dst: set_from_env
      Src: /src/git/http.c:1469,1
    - Dst: set_from_env
      Src: /src/git/http.c:1470,1
    - Dst: set_from_env
      Src: /src/git/http.c:1471,1
    - Dst: set_from_env
      Src: /src/git/http.c:1473,1
    - Dst: set_long_from_env
      Src: /src/git/http.c:1475,1
    - Dst: set_long_from_env
      Src: /src/git/http.c:1476,1
    - Dst: set_from_env
      Src: /src/git/http.c:1485,1
    - Dst: set_from_env
      Src: /src/git/http.c:1486,1
    - Dst: set_from_env
      Src: /src/git/http.c:1487,1
    - Dst: getenv
      Src: /src/git/http.c:1489,1
    - Dst: getenv
      Src: /src/git/http.c:1492,1
    - Dst: credential_from_url
      Src: /src/git/http.c:1496,1
    - Dst: getenv
      Src: /src/git/http.c:1498,1
    - Dst: starts_with
      Src: /src/git/http.c:1499,1
    - Dst: set_long_from_env
      Src: /src/git/http.c:1503,1
    - Dst: set_long_from_env
      Src: /src/git/http.c:1504,1
    - Dst: set_long_from_env
      Src: /src/git/http.c:1505,1
    - Dst: set_long_from_env
      Src: /src/git/http.c:1507,1
    - Dst: set_long_from_env
      Src: /src/git/http.c:1508,1
    - Dst: set_long_from_env
      Src: /src/git/http.c:1509,1
    - Dst: get_curl_handle
      Src: /src/git/http.c:1511,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 3
    argNames:
    - remote
    - url
    - proactive_auth
    argTypes:
    - struct remote*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1387
    functionDepth: 5
    functionLinenumber: 1387
    functionLinenumberEnd: 1512
    functionName: http_init
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - curl_multi_init
    - get_curl_handle
    - strbuf_addf
    - set_from_env
    - set_long_from_env
    - free
    - repo_config
    - credential_from_url
    - die
    - http_copy_default_headers
    - curl_global_trace
    - string_list_clear
    - atoi
    - var_override
    - _
    - xstrdup
    - curl_global_sslset
    - url_normalize
    - curl_global_init
    - starts_with
    - curl_slist_append
    - getenv
    linkageType: ''
    returnType: void
    signature: void http_init(struct remote *remote, const char *url, int proactive_auth)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmulti_remove_handle
      Src: /src/git/http.c:1521,1
    - Dst: curl_easy_cleanup
      Src: /src/git/http.c:1522,1
    - Dst: free
      Src: /src/git/http.c:1524,1
    - Dst: curl_easy_cleanup
      Src: /src/git/http.c:1529,1
    - Dst: curl_multi_cleanup
      Src: /src/git/http.c:1531,1
    - Dst: curl_global_cleanup
      Src: /src/git/http.c:1532,1
    - Dst: string_list_clear
      Src: /src/git/http.c:1534,1
    - Dst: curl_slist_free_all
      Src: /src/git/http.c:1536,1
    - Dst: curl_slist_free_all
      Src: /src/git/http.c:1539,1
    - Dst: free
      Src: /src/git/http.c:1543,1
    - Dst: memset
      Src: /src/git/http.c:1548,1
    - Dst: strlen
      Src: /src/git/http.c:1548,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http.c:1549,1
    - Dst: free
      Src: /src/git/http.c:1552,1
    - Dst: free
      Src: /src/git/http.c:1555,1
    - Dst: memset
      Src: /src/git/http.c:1559,1
    - Dst: strlen
      Src: /src/git/http.c:1559,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http.c:1560,1
    - Dst: memset
      Src: /src/git/http.c:1565,1
    - Dst: strlen
      Src: /src/git/http.c:1565,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http.c:1566,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http.c:1570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1571
    functionName: http_cleanup
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - memset
    - curl_easy_cleanup
    - curl_global_cleanup
    - curl_slist_free_all
    - curl_multi_cleanup
    - strlen
    - free
    - FREE_AND_NULL
    - xmulti_remove_handle
    linkageType: ''
    returnType: void
    signature: void http_cleanup(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_perform
      Src: /src/git/http.c:1582,1
    - Dst: process_curl_messages
      Src: /src/git/http.c:1584,1
    - Dst: xmalloc
      Src: /src/git/http.c:1591,1
    - Dst: curl_easy_duphandle
      Src: /src/git/http.c:1608,1
    - Dst: strcmp
      Src: /src/git/http.c:1619,1
    - Dst: warning
      Src: /src/git/http.c:1620,1
    - Dst: _
      Src: /src/git/http.c:1620,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http.c:1621,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1623,1
    - Dst: warning
      Src: /src/git/http.c:1626,1
    - Dst: _
      Src: /src/git/http.c:1626,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1629,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1630,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1631,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1632,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1633,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1634,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1635,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1636,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1637,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1638,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1639,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1640,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1641,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1649,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1651,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1653,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:1654,1
    - Dst: curl_empty_auth_enabled
      Src: /src/git/http.c:1655,1
    - Dst: init_curl_http_auth
      Src: /src/git/http.c:1656,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1573
    functionDepth: 3
    functionLinenumber: 1573
    functionLinenumberEnd: 1659
    functionName: get_active_slot
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - curl_easy_duphandle
    - init_curl_http_auth
    - curl_empty_auth_enabled
    - curl_multi_perform
    - xmalloc
    - strcmp
    - process_curl_messages
    - warning
    - FREE_AND_NULL
    - _
    - curl_easy_setopt
    linkageType: ''
    returnType: struct active_request_slot
    signature: struct active_request_slot *get_active_slot(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_add_handle
      Src: /src/git/http.c:1663,1
    - Dst: warning
      Src: /src/git/http.c:1668,1
    - Dst: curl_multi_strerror
      Src: /src/git/http.c:1669,1
    - Dst: curl_multi_perform
      Src: /src/git/http.c:1679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - slot
    argTypes:
    - struct active_request_slot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1681
    functionName: start_active_slot
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - curl_multi_add_handle
    - warning
    - curl_multi_strerror
    - curl_multi_perform
    linkageType: ''
    returnType: int
    signature: int start_active_slot(struct active_request_slot *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/http.c:1693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1691
    functionDepth: 0
    functionLinenumber: 1691
    functionLinenumberEnd: 1701
    functionName: add_fill_function
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: void
    signature: void add_fill_function(void *data, int (*fill)(void *))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct fill_chain*::fill
      Src: /src/git/http.c:1710,1
    - Dst: curl_easy_cleanup
      Src: /src/git/http.c:1720,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1703
    functionDepth: 0
    functionLinenumber: 1703
    functionLinenumberEnd: 1726
    functionName: fill_active_slots
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - struct fill_chain*::fill
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void fill_active_slots(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_perform
      Src: /src/git/http.c:1734,1
    - Dst: process_curl_messages
      Src: /src/git/http.c:1737,1
    - Dst: fill_active_slots
      Src: /src/git/http.c:1738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1728
    functionDepth: 3
    functionLinenumber: 1728
    functionLinenumberEnd: 1740
    functionName: step_active_slots
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - process_curl_messages
    - fill_active_slots
    - curl_multi_perform
    linkageType: ''
    returnType: void
    signature: void step_active_slots(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: step_active_slots
      Src: /src/git/http.c:1753,1
    - Dst: curl_multi_timeout
      Src: /src/git/http.c:1757,1
    - Dst: FD_ZERO
      Src: /src/git/http.c:1769,1
    - Dst: FD_ZERO
      Src: /src/git/http.c:1770,1
    - Dst: FD_ZERO
      Src: /src/git/http.c:1771,1
    - Dst: curl_multi_fdset
      Src: /src/git/http.c:1772,1
    - Dst: select
      Src: /src/git/http.c:1786,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - slot
    argTypes:
    - struct active_request_slot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1742
    functionDepth: 4
    functionLinenumber: 1742
    functionLinenumberEnd: 1815
    functionName: run_active_slot
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - curl_multi_fdset
    - step_active_slots
    - select
    - FD_ZERO
    - curl_multi_timeout
    linkageType: ''
    returnType: void
    signature: void run_active_slot(struct active_request_slot *slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: closedown_active_slot
      Src: /src/git/http.c:1819,1
    - Dst: xmulti_remove_handle
      Src: /src/git/http.c:1821,1
    - Dst: curl_easy_cleanup
      Src: /src/git/http.c:1823,1
    - Dst: fill_active_slots
      Src: /src/git/http.c:1828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - slot
    argTypes:
    - struct active_request_slot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1817
    functionDepth: 1
    functionLinenumber: 1817
    functionLinenumberEnd: 1829
    functionName: release_active_slot
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - fill_active_slots
    - curl_easy_cleanup
    - closedown_active_slot
    - xmulti_remove_handle
    linkageType: ''
    returnType: void
    signature: void release_active_slot(struct active_request_slot *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_active_slot
      Src: /src/git/http.c:1837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1831
    functionDepth: 5
    functionLinenumber: 1831
    functionLinenumberEnd: 1842
    functionName: finish_all_active_slots
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - run_active_slot
    linkageType: ''
    returnType: void
    signature: void finish_all_active_slots(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1845
    functionDepth: 0
    functionLinenumber: 1845
    functionLinenumberEnd: 1855
    functionName: needs_quote
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int needs_quote(int ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_url_with_slash
      Src: /src/git/http.c:1863,1
    - Dst: needs_quote
      Src: /src/git/http.c:1866,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:1867,1
    - Dst: strbuf_addch
      Src: /src/git/http.c:1869,1
    - Dst: strbuf_detach
      Src: /src/git/http.c:1871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - base
    - ref
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1872
    functionName: quote_ref_url
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - needs_quote
    - strbuf_addch
    - end_url_with_slash
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *quote_ref_url(const char *base, const char *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_url_with_slash
      Src: /src/git/http.c:1878,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:1880,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:1882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - url
    - hex
    - only_two_digit_prefix
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1883
    functionName: append_remote_object_url
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - end_url_with_slash
    - strbuf_addf
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void append_remote_object_url(struct strbuf *buf, const char *url,\n\t\t\t
      \     const char *hex,\n\t\t\t      int only_two_digit_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_remote_object_url
      Src: /src/git/http.c:1889,1
    - Dst: strbuf_detach
      Src: /src/git/http.c:1890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - url
    - hex
    - only_two_digit_prefix
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1885
    functionDepth: 2
    functionLinenumber: 1885
    functionLinenumberEnd: 1891
    functionName: get_remote_object_url
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - append_remote_object_url
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: "char *get_remote_object_url(const char *url, const char *hex,\n\t\t\t
      \   int only_two_digit_prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/http.c:1912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - result
    - http_code
    - errorstr
    - errorlen
    argTypes:
    - CURLcode*
    - long
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1893
    functionDepth: 1
    functionLinenumber: 1893
    functionLinenumberEnd: 1916
    functionName: normalize_curl_result
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: "void normalize_curl_result(CURLcode *result, long http_code,\n\t\t\t
      \  char *errorstr, size_t errorlen)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: normalize_curl_result
      Src: /src/git/http.c:1920,1
    - Dst: credential_approve
      Src: /src/git/http.c:1924,1
    - Dst: credential_approve
      Src: /src/git/http.c:1925,1
    - Dst: credential_approve
      Src: /src/git/http.c:1926,1
    - Dst: credential_reject
      Src: /src/git/http.c:1935,1
    - Dst: missing_target
      Src: /src/git/http.c:1939,1
    - Dst: credential_clear_secrets
      Src: /src/git/http.c:1945,1
    - Dst: credential_reject
      Src: /src/git/http.c:1948,1
    - Dst: always_auth_proactively
      Src: /src/git/http.c:1949,1
    - Dst: trace2_data_intmax
      Src: /src/git/http.c:1972,1
    - Dst: credential_reject
      Src: /src/git/http.c:1977,1
    - Dst: strlcpy
      Src: /src/git/http.c:1979,1
    - Dst: curl_easy_strerror
      Src: /src/git/http.c:1980,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 1
    argNames:
    - results
    argTypes:
    - struct slot_results*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1918
    functionDepth: 2
    functionLinenumber: 1918
    functionLinenumberEnd: 1984
    functionName: handle_curl_result
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - always_auth_proactively
    - credential_approve
    - trace2_data_intmax
    - normalize_curl_result
    - credential_clear_secrets
    - credential_reject
    - missing_target
    - strlcpy
    - curl_easy_strerror
    linkageType: ''
    returnType: int
    signature: int handle_curl_result(struct slot_results *results)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_active_slot
      Src: /src/git/http.c:1991,1
    - Dst: xsnprintf
      Src: /src/git/http.c:1992,1
    - Dst: run_active_slot
      Src: /src/git/http.c:1997,1
    - Dst: handle_curl_result
      Src: /src/git/http.c:1998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - slot
    - results
    argTypes:
    - struct active_request_slot*
    - struct slot_results*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1986
    functionDepth: 5
    functionLinenumber: 1986
    functionLinenumberEnd: 1999
    functionName: run_one_slot
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - run_active_slot
    - handle_curl_result
    - xsnprintf
    - start_active_slot
    linkageType: ''
    returnType: int
    signature: "int run_one_slot(struct active_request_slot *slot,\n\t\t struct slot_results
      *results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/http.c:2006,1
    - Dst: curl_slist_append
      Src: /src/git/http.c:2007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 2001
    functionDepth: 0
    functionLinenumber: 2001
    functionLinenumberEnd: 2010
    functionName: http_copy_default_headers
    functionSourceFile: /src/git/http.c
    functionUses: 2
    functionsReached:
    - for_each_string_list_item
    - curl_slist_append
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *http_copy_default_headers(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/http.c:2017,1
    - Dst: curl_easy_getinfo
      Src: /src/git/http.c:2018,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:2020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - curl
    - info
    - buf
    argTypes:
    - CURL*
    - CURLINFO
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2022
    functionName: curlinfo_strbuf
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - curl_easy_getinfo
    - strbuf_addstr
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode curlinfo_strbuf(CURL *curl, CURLINFO info, struct strbuf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/http.c:2035,1
    - Dst: strncasecmp
      Src: /src/git/http.c:2037,1
    - Dst: isspace
      Src: /src/git/http.c:2045,1
    - Dst: strbuf_addch
      Src: /src/git/http.c:2046,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - raw
    - name
    - out
    argTypes:
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2032
    functionDepth: 1
    functionLinenumber: 2032
    functionLinenumberEnd: 2048
    functionName: extract_param
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - isspace
    - strlen
    - strbuf_addch
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: "int extract_param(const char *raw, const char *name,\n\t\t\t struct
      strbuf *out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/http.c:2072,1
    - Dst: strbuf_grow
      Src: /src/git/http.c:2073,1
    - Dst: isspace
      Src: /src/git/http.c:2075,1
    - Dst: strbuf_addch
      Src: /src/git/http.c:2081,1
    - Dst: tolower
      Src: /src/git/http.c:2081,1
    - Dst: strbuf_reset
      Src: /src/git/http.c:2087,1
    - Dst: isspace
      Src: /src/git/http.c:2089,1
    - Dst: extract_param
      Src: /src/git/http.c:2091,1
    - Dst: isspace
      Src: /src/git/http.c:2093,1
    - Dst: starts_with
      Src: /src/git/http.c:2097,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:2098,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 3
    argNames:
    - raw
    - type
    - charset
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2067
    functionDepth: 2
    functionLinenumber: 2067
    functionLinenumberEnd: 2099
    functionName: extract_content_type
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_reset
    - starts_with
    - strbuf_addch
    - extract_param
    - strbuf_grow
    - strbuf_addstr
    - tolower
    linkageType: ''
    returnType: void
    signature: "void extract_content_type(struct strbuf *raw, struct strbuf *type,\n\t\t\t\t
      struct strbuf *charset)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_preferred_languages
      Src: /src/git/http.c:2114,1
    - Dst: isalnum
      Src: /src/git/http.c:2128,1
    - Dst: strbuf_addch
      Src: /src/git/http.c:2129,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/http.c:2137,1
    - Dst: strbuf_detach
      Src: /src/git/http.c:2138,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/http.c:2152,1
    - Dst: xstrdup
      Src: /src/git/http.c:2153,1
    - Dst: xsnprintf
      Src: /src/git/http.c:2161,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:2163,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:2167,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:2169,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:2172,1
    - Dst: strbuf_remove
      Src: /src/git/http.c:2175,1
    - Dst: free
      Src: /src/git/http.c:2184,1
    - Dst: free
      Src: /src/git/http.c:2185,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2101
    functionDepth: 1
    functionLinenumber: 2101
    functionLinenumberEnd: 2186
    functionName: write_accept_language
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_remove
    - strbuf_addf
    - get_preferred_languages
    - strbuf_addch
    - REALLOC_ARRAY
    - strbuf_detach
    - xsnprintf
    - strbuf_addstr
    - free
    - isalnum
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void write_accept_language(struct strbuf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_accept_language
      Src: /src/git/http.c:2203,1
    - Dst: strbuf_detach
      Src: /src/git/http.c:2205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2199
    functionDepth: 2
    functionLinenumber: 2199
    functionLinenumberEnd: 2209
    functionName: http_get_accept_language_header
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_detach
    - write_accept_language
    linkageType: ''
    returnType: char
    signature: char *http_get_accept_language_header(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/http.c:2214,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - curl
    - pos
    argTypes:
    - CURL*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2211
    functionDepth: 1
    functionLinenumber: 2211
    functionLinenumberEnd: 2216
    functionName: http_opt_request_remainder
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void http_opt_request_remainder(CURL *curl, off_t pos)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: http_copy_default_headers
      Src: /src/git/http.c:2228,1
    - Dst: get_active_slot
      Src: /src/git/http.c:2233,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2234,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2237,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2239,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2240,1
    - Dst: ftello
      Src: /src/git/http.c:2243,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2244,1
    - Dst: http_opt_request_remainder
      Src: /src/git/http.c:2247,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2249,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2253,1
    - Dst: http_get_accept_language_header
      Src: /src/git/http.c:2255,1
    - Dst: curl_slist_append
      Src: /src/git/http.c:2258,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:2260,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:2262,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2265,1
    - Dst: curl_slist_append
      Src: /src/git/http.c:2267,1
    - Dst: for_each_string_list_item
      Src: /src/git/http.c:2272,1
    - Dst: curl_slist_append
      Src: /src/git/http.c:2273,1
    - Dst: http_append_auth_header
      Src: /src/git/http.c:2276,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2278,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2279,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2280,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2281,1
    - Dst: run_one_slot
      Src: /src/git/http.c:2283,1
    - Dst: curl_easy_getinfo
      Src: /src/git/http.c:2288,1
    - Dst: curlinfo_strbuf
      Src: /src/git/http.c:2298,1
    - Dst: extract_content_type
      Src: /src/git/http.c:2299,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2301,1
    - Dst: curlinfo_strbuf
      Src: /src/git/http.c:2305,1
    - Dst: curl_slist_free_all
      Src: /src/git/http.c:2308,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2309,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - url
    - result
    - target
    - options
    argTypes:
    - char*
    - void*
    - int
    - struct http_get_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2222
    functionDepth: 6
    functionLinenumber: 2222
    functionLinenumberEnd: 2312
    functionName: http_request
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - curl_easy_getinfo
    - strbuf_release
    - http_copy_default_headers
    - ftello
    - http_opt_request_remainder
    - extract_content_type
    - curl_slist_free_all
    - curl_slist_append
    - http_get_accept_language_header
    - strbuf_addstr
    - http_append_auth_header
    - curlinfo_strbuf
    - run_one_slot
    - get_active_slot
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: "int http_request(const char *url,\n\t\t\tvoid *result, int target,\n\t\t\tstruct
      http_get_options *options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/http.c:2346,1
    - Dst: skip_prefix
      Src: /src/git/http.c:2349,1
    - Dst: BUG
      Src: /src/git/http.c:2350,1
    - Dst: strip_suffix_mem
      Src: /src/git/http.c:2354,1
    - Dst: die
      Src: /src/git/http.c:2355,1
    - Dst: _
      Src: /src/git/http.c:2355,1
    - Dst: strbuf_reset
      Src: /src/git/http.c:2360,1
    - Dst: strbuf_add
      Src: /src/git/http.c:2361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - base
    - asked
    - got
    argTypes:
    - struct strbuf*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2339
    functionDepth: 1
    functionLinenumber: 2339
    functionLinenumberEnd: 2364
    functionName: update_url_from_redirect
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - die
    - strbuf_reset
    - strip_suffix_mem
    - strcmp
    - skip_prefix
    - BUG
    - strbuf_add
    - _
    linkageType: ''
    returnType: int
    signature: "int update_url_from_redirect(struct strbuf *base,\n\t\t\t\t    const
      char *asked,\n\t\t\t\t    const struct strbuf *got)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/http.c:2377,1
    - Dst: _
      Src: /src/git/http.c:2377,1
    - Dst: trace2_data_string
      Src: /src/git/http.c:2379,1
    - Dst: trace2_data_intmax
      Src: /src/git/http.c:2381,1
    - Dst: error
      Src: /src/git/http.c:2389,1
    - Dst: _
      Src: /src/git/http.c:2389,1
    - Dst: trace2_data_string
      Src: /src/git/http.c:2391,1
    - Dst: trace2_data_string
      Src: /src/git/http.c:2395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - slot_retry_after
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2371
    functionDepth: 1
    functionLinenumber: 2371
    functionLinenumberEnd: 2399
    functionName: handle_rate_limit_retry
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - error
    - trace2_data_string
    - trace2_data_intmax
    - _
    linkageType: ''
    returnType: long
    signature: long handle_rate_limit_retry(long slot_retry_after)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: always_auth_proactively
      Src: /src/git/http.c:2413,1
    - Dst: credential_fill
      Src: /src/git/http.c:2414,1
    - Dst: http_request
      Src: /src/git/http.c:2416,1
    - Dst: update_url_from_redirect
      Src: /src/git/http.c:2426,1
    - Dst: credential_from_url
      Src: /src/git/http.c:2428,1
    - Dst: strbuf_reset
      Src: /src/git/http.c:2442,1
    - Dst: fflush
      Src: /src/git/http.c:2446,1
    - Dst: error_errno
      Src: /src/git/http.c:2447,1
    - Dst: rewind
      Src: /src/git/http.c:2450,1
    - Dst: ftruncate
      Src: /src/git/http.c:2451,1
    - Dst: fileno
      Src: /src/git/http.c:2451,1
    - Dst: error_errno
      Src: /src/git/http.c:2452,1
    - Dst: BUG
      Src: /src/git/http.c:2458,1
    - Dst: handle_rate_limit_retry
      Src: /src/git/http.c:2461,1
    - Dst: warning
      Src: /src/git/http.c:2466,1
    - Dst: _
      Src: /src/git/http.c:2466,1
    - Dst: trace2_data_intmax
      Src: /src/git/http.c:2467,1
    - Dst: sleep
      Src: /src/git/http.c:2469,1
    - Dst: http_reauth_prepare
      Src: /src/git/http.c:2472,1
    - Dst: http_request
      Src: /src/git/http.c:2475,1
    - Dst: trace2_data_string
      Src: /src/git/http.c:2478,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 4
    argNames:
    - url
    - result
    - target
    - options
    argTypes:
    - char*
    - void*
    - int
    - struct http_get_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2401
    functionDepth: 7
    functionLinenumber: 2401
    functionLinenumberEnd: 2483
    functionName: http_request_recoverable
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - error_errno
    - trace2_data_intmax
    - sleep
    - credential_from_url
    - http_reauth_prepare
    - ftruncate
    - fileno
    - http_request
    - update_url_from_redirect
    - credential_fill
    - handle_rate_limit_retry
    - fflush
    - _
    - warning
    - always_auth_proactively
    - strbuf_reset
    - rewind
    - BUG
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: "int http_request_recoverable(const char *url,\n\t\t\t       void *result,
      int target,\n\t\t\t       struct http_get_options *options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_request_recoverable
      Src: /src/git/http.c:2489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - url
    - result
    - options
    argTypes:
    - char*
    - struct strbuf*
    - struct http_get_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2485
    functionDepth: 8
    functionLinenumber: 2485
    functionLinenumberEnd: 2490
    functionName: http_get_strbuf
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - http_request_recoverable
    linkageType: ''
    returnType: int
    signature: "int http_get_strbuf(const char *url,\n\t\t    struct strbuf *result,\n\t\t
      \   struct http_get_options *options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/http.c:2505,1
    - Dst: fopen
      Src: /src/git/http.c:2506,1
    - Dst: error
      Src: /src/git/http.c:2508,1
    - Dst: http_request_recoverable
      Src: /src/git/http.c:2513,1
    - Dst: fclose
      Src: /src/git/http.c:2514,1
    - Dst: finalize_object_file
      Src: /src/git/http.c:2516,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - url
    - filename
    - options
    argTypes:
    - char*
    - char*
    - struct http_get_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2498
    functionDepth: 8
    functionLinenumber: 2498
    functionLinenumberEnd: 2521
    functionName: http_get_file
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - strbuf_release
    - strbuf_addf
    - fopen
    - http_request_recoverable
    - finalize_object_file
    linkageType: ''
    returnType: int
    signature: "int http_get_file(const char *url, const char *filename,\n\t\t  struct
      http_get_options *options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quote_ref_url
      Src: /src/git/http.c:2532,1
    - Dst: http_get_strbuf
      Src: /src/git/http.c:2533,1
    - Dst: strbuf_rtrim
      Src: /src/git/http.c:2534,1
    - Dst: get_oid_hex
      Src: /src/git/http.c:2536,1
    - Dst: starts_with
      Src: /src/git/http.c:2537,1
    - Dst: xstrdup
      Src: /src/git/http.c:2538,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2543,1
    - Dst: free
      Src: /src/git/http.c:2544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - base
    - ref
    argTypes:
    - char*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2523
    functionDepth: 9
    functionLinenumber: 2523
    functionLinenumberEnd: 2546
    functionName: http_fetch_ref
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_oid_hex
    - starts_with
    - quote_ref_url
    - free
    - http_get_strbuf
    - xstrdup
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: int http_fetch_ref(const char *base, struct ref *ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/http.c:2555,1
    - Dst: hash_to_hex
      Src: /src/git/http.c:2555,1
    - Dst: end_url_with_slash
      Src: /src/git/http.c:2557,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:2558,1
    - Dst: hash_to_hex
      Src: /src/git/http.c:2558,1
    - Dst: strbuf_detach
      Src: /src/git/http.c:2559,1
    - Dst: xstrfmt
      Src: /src/git/http.c:2575,1
    - Dst: repo_get_object_directory
      Src: /src/git/http.c:2576,1
    - Dst: hash_to_hex
      Src: /src/git/http.c:2577,1
    - Dst: register_tempfile
      Src: /src/git/http.c:2578,1
    - Dst: http_get_file
      Src: /src/git/http.c:2580,1
    - Dst: error
      Src: /src/git/http.c:2581,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http.c:2582,1
    - Dst: free
      Src: /src/git/http.c:2585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - hash
    - base_url
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2587
      start: 2549
    functionDepth: 9
    functionLinenumber: 2549
    functionLinenumberEnd: 2587
    functionName: fetch_pack_index
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - register_tempfile
    - error
    - hash_to_hex
    - xstrfmt
    - strbuf_addf
    - http_get_file
    - end_url_with_slash
    - repo_get_object_directory
    - strbuf_detach
    - free
    - FREE_AND_NULL
    - fprintf
    linkageType: ''
    returnType: char
    signature: char *fetch_pack_index(unsigned char *hash, const char *base_url)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hasheq
      Src: /src/git/http.c:2602,1
    - Dst: fetch_pack_index
      Src: /src/git/http.c:2606,1
    - Dst: parse_pack_index
      Src: /src/git/http.c:2610,1
    - Dst: unlink
      Src: /src/git/http.c:2612,1
    - Dst: free
      Src: /src/git/http.c:2613,1
    - Dst: verify_pack_index
      Src: /src/git/http.c:2618,1
    - Dst: close_pack_index
      Src: /src/git/http.c:2620,1
    - Dst: free
      Src: /src/git/http.c:2621,1
    - Dst: packfile_list_prepend
      Src: /src/git/http.c:2625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - packs
    - sha1
    - base_url
    argTypes:
    - struct packfile_list*
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2589
    functionDepth: 10
    functionLinenumber: 2589
    functionLinenumberEnd: 2627
    functionName: fetch_and_setup_pack_index
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - close_pack_index
    - hasheq
    - fetch_pack_index
    - parse_pack_index
    - free
    - verify_pack_index
    - packfile_list_prepend
    - unlink
    linkageType: ''
    returnType: int
    signature: "int fetch_and_setup_pack_index(struct packfile_list *packs,\n\t\t\t\t
      \     unsigned char *sha1,\n\t\t\t\t      const char *base_url)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hasheq
      Src: /src/git/http.c:2602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2601
    functionDepth: 1
    functionLinenumber: 2601
    functionLinenumberEnd: 2604
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - hasheq
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: end_url_with_slash
      Src: /src/git/http.c:2638,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:2639,1
    - Dst: strbuf_detach
      Src: /src/git/http.c:2640,1
    - Dst: http_get_strbuf
      Src: /src/git/http.c:2643,1
    - Dst: skip_prefix
      Src: /src/git/http.c:2649,1
    - Dst: parse_oid_hex
      Src: /src/git/http.c:2650,1
    - Dst: skip_prefix
      Src: /src/git/http.c:2651,1
    - Dst: fetch_and_setup_pack_index
      Src: /src/git/http.c:2653,1
    - Dst: strchrnul
      Src: /src/git/http.c:2655,1
    - Dst: free
      Src: /src/git/http.c:2662,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2663,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - base_url
    - packs
    argTypes:
    - char*
    - struct packfile_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2629
    functionDepth: 11
    functionLinenumber: 2629
    functionLinenumberEnd: 2665
    functionName: http_get_info_packs
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fetch_and_setup_pack_index
    - end_url_with_slash
    - strchrnul
    - parse_oid_hex
    - strbuf_detach
    - strbuf_addstr
    - free
    - http_get_strbuf
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int http_get_info_packs(const char *base_url, struct packfile_list
      *packs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/git/http.c:2670,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2674,1
    - Dst: curl_slist_free_all
      Src: /src/git/http.c:2675,1
    - Dst: free
      Src: /src/git/http.c:2676,1
    - Dst: free
      Src: /src/git/http.c:2677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - preq
    argTypes:
    - struct http_pack_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2678
      start: 2667
    functionDepth: 1
    functionLinenumber: 2667
    functionLinenumberEnd: 2678
    functionName: release_http_pack_request
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - curl_slist_free_all
    - free
    linkageType: ''
    returnType: void
    signature: void release_http_pack_request(struct http_pack_request *preq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/git/http.c:2689,1
    - Dst: xopen
      Src: /src/git/http.c:2692,1
    - Dst: strvec_pushv
      Src: /src/git/http.c:2696,1
    - Dst: run_command
      Src: /src/git/http.c:2705,1
    - Dst: close
      Src: /src/git/http.c:2711,1
    - Dst: unlink
      Src: /src/git/http.c:2712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - preq
    argTypes:
    - struct http_pack_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2683
    functionDepth: 1
    functionLinenumber: 2683
    functionLinenumberEnd: 2714
    functionName: finish_http_pack_request
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - fclose
    - xopen
    - run_command
    - strvec_pushv
    - close
    - unlink
    linkageType: ''
    returnType: int
    signature: int finish_http_pack_request(struct http_pack_request *preq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/http.c:2719,1
    - Dst: packfile_list_remove
      Src: /src/git/http.c:2720,1
    - Dst: packfile_store_add_pack
      Src: /src/git/http.c:2721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - list_to_remove_from
    argTypes:
    - struct packed_git*
    - struct packfile_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2716
    functionDepth: 1
    functionLinenumber: 2716
    functionLinenumberEnd: 2722
    functionName: http_install_packfile
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - packfile_store_add_pack
    - packfile_list_remove
    - odb_source_files_downcast
    linkageType: ''
    returnType: void
    signature: "void http_install_packfile(struct packed_git *p,\n\t\t\t   struct
      packfile_list *list_to_remove_from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_url_with_slash
      Src: /src/git/http.c:2729,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:2730,1
    - Dst: hash_to_hex
      Src: /src/git/http.c:2731,1
    - Dst: new_direct_http_pack_request
      Src: /src/git/http.c:2732,1
    - Dst: strbuf_detach
      Src: /src/git/http.c:2733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - packed_git_hash
    - base_url
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2724
    functionDepth: 1
    functionLinenumber: 2724
    functionLinenumberEnd: 2734
    functionName: new_http_pack_request
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - hash_to_hex
    - strbuf_addf
    - new_direct_http_pack_request
    - end_url_with_slash
    - strbuf_detach
    linkageType: ''
    returnType: struct http_pack_request
    signature: "struct http_pack_request *new_http_pack_request(\n\tconst unsigned
      char *packed_git_hash, const char *base_url)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/http.c:2742,1
    - Dst: strbuf_init
      Src: /src/git/http.c:2743,1
    - Dst: odb_pack_name
      Src: /src/git/http.c:2747,1
    - Dst: strbuf_addstr
      Src: /src/git/http.c:2748,1
    - Dst: fopen
      Src: /src/git/http.c:2749,1
    - Dst: error
      Src: /src/git/http.c:2751,1
    - Dst: get_active_slot
      Src: /src/git/http.c:2756,1
    - Dst: object_request_headers
      Src: /src/git/http.c:2757,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2758,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2759,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2760,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2761,1
    - Dst: ftello
      Src: /src/git/http.c:2767,1
    - Dst: fprintf
      Src: /src/git/http.c:2770,1
    - Dst: hash_to_hex
      Src: /src/git/http.c:2772,1
    - Dst: http_opt_request_remainder
      Src: /src/git/http.c:2774,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2780,1
    - Dst: free
      Src: /src/git/http.c:2781,1
    - Dst: free
      Src: /src/git/http.c:2782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - packed_git_hash
    - url
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2736
    functionDepth: 4
    functionLinenumber: 2736
    functionLinenumberEnd: 2784
    functionName: new_direct_http_pack_request
    functionSourceFile: /src/git/http.c
    functionUses: 1
    functionsReached:
    - error
    - strbuf_release
    - hash_to_hex
    - odb_pack_name
    - ftello
    - http_opt_request_remainder
    - fopen
    - curl_easy_setopt
    - fprintf
    - strbuf_addstr
    - CALLOC_ARRAY
    - free
    - strbuf_init
    - get_active_slot
    - object_request_headers
    linkageType: ''
    returnType: struct http_pack_request
    signature: "struct http_pack_request *new_direct_http_pack_request(\n\tconst unsigned
      char *packed_git_hash, char *url)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/git/http.c:2797,1
    - Dst: BUG
      Src: /src/git/http.c:2800,1
    - Dst: curl_easy_strerror
      Src: /src/git/http.c:2801,1
    - Dst: xwrite
      Src: /src/git/http.c:2807,1
    - Dst: git_inflate
      Src: /src/git/http.c:2819,1
    - Dst: git_hash_update
      Src: /src/git/http.c:2820,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - ptr
    - eltsize
    - nmemb
    - data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2787
    functionDepth: 1
    functionLinenumber: 2787
    functionLinenumberEnd: 2824
    functionName: fwrite_sha1_file
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - xwrite
    - git_inflate
    - curl_easy_getinfo
    - git_hash_update
    - BUG
    - curl_easy_strerror
    linkageType: ''
    returnType: size_t
    signature: "size_t fwrite_sha1_file(char *ptr, size_t eltsize, size_t nmemb,\n\t\t\t
      \      void *data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/http.c:2829,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/http.c:2838,1
    - Dst: strbuf_init
      Src: /src/git/http.c:2839,1
    - Dst: oidcpy
      Src: /src/git/http.c:2840,1
    - Dst: odb_loose_path
      Src: /src/git/http.c:2843,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:2844,1
    - Dst: strbuf_addf
      Src: /src/git/http.c:2846,1
    - Dst: unlink_or_warn
      Src: /src/git/http.c:2847,1
    - Dst: rename
      Src: /src/git/http.c:2848,1
    - Dst: unlink_or_warn
      Src: /src/git/http.c:2849,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2850,1
    - Dst: error
      Src: /src/git/http.c:2853,1
    - Dst: open
      Src: /src/git/http.c:2854,1
    - Dst: strrchr
      Src: /src/git/http.c:2861,1
    - Dst: mkdir
      Src: /src/git/http.c:2864,1
    - Dst: open
      Src: /src/git/http.c:2867,1
    - Dst: error_errno
      Src: /src/git/http.c:2872,1
    - Dst: git_inflate_init
      Src: /src/git/http.c:2877,1
    - Dst: init_fn
      Src: /src/git/http.c:2879,1
    - Dst: get_remote_object_url
      Src: /src/git/http.c:2881,1
    - Dst: open
      Src: /src/git/http.c:2887,1
    - Dst: xread
      Src: /src/git/http.c:2890,1
    - Dst: fwrite_sha1_file
      Src: /src/git/http.c:2892,1
    - Dst: close
      Src: /src/git/http.c:2902,1
    - Dst: unlink_or_warn
      Src: /src/git/http.c:2904,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2905,1
    - Dst: git_inflate_end
      Src: /src/git/http.c:2912,1
    - Dst: memset
      Src: /src/git/http.c:2913,1
    - Dst: git_inflate_init
      Src: /src/git/http.c:2914,1
    - Dst: init_fn
      Src: /src/git/http.c:2915,1
    - Dst: lseek
      Src: /src/git/http.c:2918,1
    - Dst: ftruncate
      Src: /src/git/http.c:2919,1
    - Dst: error_errno
      Src: /src/git/http.c:2920,1
    - Dst: get_active_slot
      Src: /src/git/http.c:2927,1
    - Dst: object_request_headers
      Src: /src/git/http.c:2928,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2930,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2931,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2932,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2933,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2934,1
    - Dst: curl_easy_setopt
      Src: /src/git/http.c:2935,1
    - Dst: fprintf
      Src: /src/git/http.c:2943,1
    - Dst: http_opt_request_remainder
      Src: /src/git/http.c:2946,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2952,1
    - Dst: free
      Src: /src/git/http.c:2953,1
    - Dst: free
      Src: /src/git/http.c:2954,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 82
    argCount: 2
    argNames:
    - base_url
    - oid
    argTypes:
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2826
    functionDepth: 4
    functionLinenumber: 2826
    functionLinenumberEnd: 2956
    functionName: new_http_object_request
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - error_errno
    - oidcpy
    - http_opt_request_remainder
    - strbuf_addf
    - CALLOC_ARRAY
    - free
    - get_remote_object_url
    - git_inflate_init
    - object_request_headers
    - error
    - strbuf_release
    - fwrite_sha1_file
    - init_fn
    - strbuf_init
    - curl_easy_setopt
    - ftruncate
    - memset
    - oid_to_hex
    - unlink_or_warn
    - mkdir
    - xread
    - odb_loose_path
    - open
    - strrchr
    - lseek
    - rename
    - close
    - fprintf
    - get_active_slot
    - git_inflate_end
    linkageType: ''
    returnType: struct http_object_request
    signature: "struct http_object_request *new_http_object_request(const char *base_url,\n\t\t\t\t\t\t
      \   const struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - freq
    argTypes:
    - struct http_object_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2958
    functionDepth: 0
    functionLinenumber: 2958
    functionLinenumberEnd: 2965
    functionName: process_http_object_request
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void process_http_object_request(struct http_object_request *freq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/http.c:2972,1
    - Dst: process_http_object_request
      Src: /src/git/http.c:2975,1
    - Dst: warning
      Src: /src/git/http.c:2978,1
    - Dst: stat
      Src: /src/git/http.c:2980,1
    - Dst: unlink_or_warn
      Src: /src/git/http.c:2982,1
    - Dst: git_hash_final_oid
      Src: /src/git/http.c:2986,1
    - Dst: unlink_or_warn
      Src: /src/git/http.c:2988,1
    - Dst: oideq
      Src: /src/git/http.c:2991,1
    - Dst: unlink_or_warn
      Src: /src/git/http.c:2992,1
    - Dst: odb_loose_path
      Src: /src/git/http.c:2995,1
    - Dst: finalize_object_file
      Src: /src/git/http.c:2996,1
    - Dst: strbuf_release
      Src: /src/git/http.c:2997,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - freq
    argTypes:
    - struct http_object_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2967
    functionDepth: 1
    functionLinenumber: 2967
    functionLinenumberEnd: 3000
    functionName: finish_http_object_request
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - unlink_or_warn
    - stat
    - process_http_object_request
    - git_hash_final_oid
    - odb_loose_path
    - close
    - warning
    - oideq
    - finalize_object_file
    linkageType: ''
    returnType: int
    signature: int finish_http_object_request(struct http_object_request *freq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink_or_warn
      Src: /src/git/http.c:3005,1
    - Dst: release_http_object_request
      Src: /src/git/http.c:3007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - freq_p
    argTypes:
    - struct http_object_request**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 3002
    functionDepth: 1
    functionLinenumber: 3002
    functionLinenumberEnd: 3008
    functionName: abort_http_object_request
    functionSourceFile: /src/git/http.c
    functionUses: 0
    functionsReached:
    - release_http_object_request
    - unlink_or_warn
    linkageType: ''
    returnType: void
    signature: void abort_http_object_request(struct http_object_request **freq_p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/http.c:3014,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http.c:3017,1
    - Dst: release_active_slot
      Src: /src/git/http.c:3021,1
    - Dst: curl_slist_free_all
      Src: /src/git/http.c:3024,1
    - Dst: strbuf_release
      Src: /src/git/http.c:3025,1
    - Dst: git_inflate_end
      Src: /src/git/http.c:3026,1
    - Dst: free
      Src: /src/git/http.c:3028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - freq_p
    argTypes:
    - struct http_object_request**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3030
      start: 3010
    functionDepth: 2
    functionLinenumber: 3010
    functionLinenumberEnd: 3030
    functionName: release_http_object_request
    functionSourceFile: /src/git/http.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - curl_slist_free_all
    - release_active_slot
    - free
    - close
    - FREE_AND_NULL
    - git_inflate_end
    linkageType: ''
    returnType: void
    signature: void release_http_object_request(struct http_object_request **freq_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pipe_command
      Src: /src/git/run-command.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - out
    - hint
    argTypes:
    - struct child_process*
    - struct strbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: capture_command
    functionSourceFile: /src/git/run-command.h
    functionUses: 0
    functionsReached:
    - pipe_command
    linkageType: ''
    returnType: int
    signature: "int capture_command(struct child_process *cmd,\n\t\t\t\t  struct strbuf
      *out,\n\t\t\t\t  size_t hint)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsm_settings__get_mode
      Src: /src/git/fsmonitor.h:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: is_fsmonitor_refreshed
    functionSourceFile: /src/git/fsmonitor.h
    functionUses: 0
    functionsReached:
    - fsm_settings__get_mode
    linkageType: ''
    returnType: int
    signature: int is_fsmonitor_refreshed(const struct index_state *istate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fsm_settings__get_mode
      Src: /src/git/fsmonitor.h:41,1
    - Dst: S_ISGITLINK
      Src: /src/git/fsmonitor.h:45,1
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.h:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: mark_fsmonitor_valid
    functionSourceFile: /src/git/fsmonitor.h
    functionUses: 0
    functionsReached:
    - fsm_settings__get_mode
    - trace_printf_key
    - S_ISGITLINK
    linkageType: ''
    returnType: void
    signature: void mark_fsmonitor_valid(struct index_state *istate, struct cache_entry
      *ce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsm_settings__get_mode
      Src: /src/git/fsmonitor.h:62,1
    - Dst: untracked_cache_invalidate_path
      Src: /src/git/fsmonitor.h:66,1
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: mark_fsmonitor_invalid
    functionSourceFile: /src/git/fsmonitor.h
    functionUses: 0
    functionsReached:
    - fsm_settings__get_mode
    - untracked_cache_invalidate_path
    - trace_printf_key
    linkageType: ''
    returnType: void
    signature: void mark_fsmonitor_invalid(struct index_state *istate, struct cache_entry
      *ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string
      Src: /src/git/apply.c:52,1
    - Dst: repo_config_get_string
      Src: /src/git/apply.c:53,1
    - Dst: repo_config
      Src: /src/git/apply.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: git_apply_config
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - repo_config
    - repo_config_get_string
    linkageType: ''
    returnType: void
    signature: void git_apply_config(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/apply.c:63,1
    - Dst: strcmp
      Src: /src/git/apply.c:67,1
    - Dst: strcmp
      Src: /src/git/apply.c:71,1
    - Dst: strcmp
      Src: /src/git/apply.c:75,1
    - Dst: strcmp
      Src: /src/git/apply.c:80,1
    - Dst: strcmp
      Src: /src/git/apply.c:80,1
    - Dst: error
      Src: /src/git/apply.c:89,1
    - Dst: _
      Src: /src/git/apply.c:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - state
    - option
    argTypes:
    - struct apply_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 90
    functionName: parse_whitespace_option
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_whitespace_option(struct apply_state *state, const char *option)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/apply.c:95,1
    - Dst: strcmp
      Src: /src/git/apply.c:96,1
    - Dst: strcmp
      Src: /src/git/apply.c:96,1
    - Dst: strcmp
      Src: /src/git/apply.c:97,1
    - Dst: strcmp
      Src: /src/git/apply.c:101,1
    - Dst: error
      Src: /src/git/apply.c:105,1
    - Dst: _
      Src: /src/git/apply.c:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - state
    - option
    argTypes:
    - struct apply_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: parse_ignorewhitespace_option
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int parse_ignorewhitespace_option(struct apply_state *state,\n\t\t\t\t\t\t
      const char *option)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/apply.c:112,1
    - Dst: string_list_init_nodup
      Src: /src/git/apply.c:123,1
    - Dst: string_list_init_nodup
      Src: /src/git/apply.c:124,1
    - Dst: strset_init
      Src: /src/git/apply.c:125,1
    - Dst: strset_init
      Src: /src/git/apply.c:126,1
    - Dst: strbuf_init
      Src: /src/git/apply.c:127,1
    - Dst: git_apply_config
      Src: /src/git/apply.c:129,1
    - Dst: parse_whitespace_option
      Src: /src/git/apply.c:130,1
    - Dst: parse_ignorewhitespace_option
      Src: /src/git/apply.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - state
    - repo
    - prefix
    argTypes:
    - struct apply_state*
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 135
    functionName: init_apply_state
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - memset
    - string_list_init_nodup
    - parse_whitespace_option
    - parse_ignorewhitespace_option
    - git_apply_config
    - strset_init
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: "int init_apply_state(struct apply_state *state,\n\t\t     struct repository
      *repo,\n\t\t     const char *prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/apply.c:139,1
    - Dst: strset_clear
      Src: /src/git/apply.c:140,1
    - Dst: strset_clear
      Src: /src/git/apply.c:141,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:142,1
    - Dst: FREE_AND_NULL
      Src: /src/git/apply.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct apply_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: clear_apply_state
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strset_clear
    - string_list_clear
    - strbuf_release
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void clear_apply_state(struct apply_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - UNUSED
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: mute_routine
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mute_routine(const char *msg UNUSED, va_list params UNUSED)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/apply.c:158,1
    - Dst: _
      Src: /src/git/apply.c:158,1
    - Dst: error
      Src: /src/git/apply.c:161,1
    - Dst: _
      Src: /src/git/apply.c:161,1
    - Dst: error
      Src: /src/git/apply.c:172,1
    - Dst: _
      Src: /src/git/apply.c:172,1
    - Dst: error
      Src: /src/git/apply.c:175,1
    - Dst: _
      Src: /src/git/apply.c:175,1
    - Dst: get_error_routine
      Src: /src/git/apply.c:184,1
    - Dst: get_warn_routine
      Src: /src/git/apply.c:185,1
    - Dst: set_error_routine
      Src: /src/git/apply.c:186,1
    - Dst: set_warn_routine
      Src: /src/git/apply.c:187,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 33
    argCount: 2
    argNames:
    - state
    - force_apply
    argTypes:
    - struct apply_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 191
    functionName: check_apply_state
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - get_warn_routine
    - set_warn_routine
    - get_error_routine
    - set_error_routine
    - _
    linkageType: ''
    returnType: int
    signature: int check_apply_state(struct apply_state *state, int force_apply)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct apply_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: set_default_whitespace_mode
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_default_whitespace_mode(struct apply_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/apply.c:236,1
    - Dst: free
      Src: /src/git/apply.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct fragment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: free_fragment_list
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_fragment_list(struct fragment *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_fragment_list
      Src: /src/git/apply.c:244,1
    - Dst: free
      Src: /src/git/apply.c:245,1
    - Dst: free
      Src: /src/git/apply.c:246,1
    - Dst: free
      Src: /src/git/apply.c:247,1
    - Dst: free
      Src: /src/git/apply.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: release_patch
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - free_fragment_list
    - free
    linkageType: ''
    returnType: void
    signature: void release_patch(struct patch *patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_patch
      Src: /src/git/apply.c:253,1
    - Dst: free
      Src: /src/git/apply.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: free_patch
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - release_patch
    - free
    linkageType: ''
    returnType: void
    signature: void free_patch(struct patch *patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_patch
      Src: /src/git/apply.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 4
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: free_patch_list
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - free_patch
    linkageType: ''
    returnType: void
    signature: void free_patch_list(struct patch *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/apply.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: image_init
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void image_init(struct image *image)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/apply.c:299,1
    - Dst: free
      Src: /src/git/apply.c:300,1
    - Dst: image_init
      Src: /src/git/apply.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: image_clear
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - image_init
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void image_clear(struct image *image)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/apply.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cp
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: hash_line
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_line(const char *cp, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/apply.c:318,1
    - Dst: hash_line
      Src: /src/git/apply.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - img
    - bol
    - len
    - flag
    argTypes:
    - struct image*
    - char*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: image_add_line
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - hash_line
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void image_add_line(struct image *img, const char *bol, size_t len,
      unsigned flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: image_clear
      Src: /src/git/apply.c:335,1
    - Dst: strbuf_attach
      Src: /src/git/apply.c:336,1
    - Dst: image_add_line
      Src: /src/git/apply.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - image
    - buf
    - len
    - prepare_linetable
    argTypes:
    - struct image*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 352
    functionName: image_prepare
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strbuf_attach
    - image_clear
    - image_add_line
    linkageType: ''
    returnType: void
    signature: "void image_prepare(struct image *image, char *buf, size_t len,\n\t\t\t
      \ int prepare_linetable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_remove
      Src: /src/git/apply.c:356,1
    - Dst: MOVE_ARRAY
      Src: /src/git/apply.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - img
    argTypes:
    - struct image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: image_remove_first_line
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strbuf_remove
    - MOVE_ARRAY
    linkageType: ''
    returnType: void
    signature: void image_remove_first_line(struct image *img)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/apply.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - img
    argTypes:
    - struct image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: image_remove_last_line
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strbuf_setlen
    linkageType: ''
    returnType: void
    signature: void image_remove_last_line(struct image *img)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/apply.c:375,1
    - Dst: quote_c_style
      Src: /src/git/apply.c:376,1
    - Dst: strbuf_addstr
      Src: /src/git/apply.c:377,1
    - Dst: quote_c_style
      Src: /src/git/apply.c:378,1
    - Dst: quote_c_style
      Src: /src/git/apply.c:383,1
    - Dst: fprintf
      Src: /src/git/apply.c:385,1
    - Dst: fputc
      Src: /src/git/apply.c:386,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - output
    - fmt
    - patch
    argTypes:
    - FILE*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 388
    functionName: say_patch_name
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addstr
    - strcmp
    - fputc
    - quote_c_style
    - fprintf
    linkageType: ''
    returnType: void
    signature: void say_patch_name(FILE *output, const char *fmt, struct patch *patch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read
      Src: /src/git/apply.c:404,1
    - Dst: error_errno
      Src: /src/git/apply.c:405,1
    - Dst: _
      Src: /src/git/apply.c:405,1
    - Dst: error
      Src: /src/git/apply.c:407,1
    - Dst: _
      Src: /src/git/apply.c:407,1
    - Dst: strbuf_grow
      Src: /src/git/apply.c:413,1
    - Dst: memset
      Src: /src/git/apply.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sb
    - fd
    argTypes:
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 416
    functionName: read_patch_file
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - memset
    - strbuf_read
    - strbuf_grow
    - _
    linkageType: ''
    returnType: int
    signature: int read_patch_file(struct strbuf *sb, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: linelen
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long linelen(const char *buffer, unsigned long size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/apply.c:431,1
    - Dst: isspace
      Src: /src/git/apply.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: is_dev_null
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isspace
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int is_dev_null(const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - c
    - terminate
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 445
    functionName: name_terminate
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int name_terminate(int c, int terminate)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 462
    functionName: squash_slash
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *squash_slash(char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unquote_c_style
      Src: /src/git/apply.c:475,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:476,1
    - Dst: strchr
      Src: /src/git/apply.c:481,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:483,1
    - Dst: strbuf_remove
      Src: /src/git/apply.c:489,1
    - Dst: strbuf_insert
      Src: /src/git/apply.c:491,1
    - Dst: squash_slash
      Src: /src/git/apply.c:492,1
    - Dst: strbuf_detach
      Src: /src/git/apply.c:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - root
    - line
    - p_value
    argTypes:
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 493
    functionName: find_name_gnu
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_remove
    - strbuf_insert
    - strchr
    - unquote_c_style
    - squash_slash
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: "char *find_name_gnu(struct strbuf *root,\n\t\t\t   const char *line,\n\t\t\t
      \  int p_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/apply.c:499,1
    - Dst: strlen
      Src: /src/git/apply.c:499,1
    - Dst: strlen
      Src: /src/git/apply.c:501,1
    - Dst: isdigit
      Src: /src/git/apply.c:507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 511
    functionName: sane_tz_len
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t sane_tz_len(const char *line, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/apply.c:517,1
    - Dst: strlen
      Src: /src/git/apply.c:517,1
    - Dst: strlen
      Src: /src/git/apply.c:519,1
    - Dst: isdigit
      Src: /src/git/apply.c:524,1
    - Dst: isdigit
      Src: /src/git/apply.c:524,1
    - Dst: isdigit
      Src: /src/git/apply.c:525,1
    - Dst: isdigit
      Src: /src/git/apply.c:525,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 529
    functionName: tz_with_colon_len
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t tz_with_colon_len(const char *line, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/apply.c:535,1
    - Dst: strlen
      Src: /src/git/apply.c:535,1
    - Dst: strlen
      Src: /src/git/apply.c:537,1
    - Dst: isdigit
      Src: /src/git/apply.c:539,1
    - Dst: isdigit
      Src: /src/git/apply.c:539,1
    - Dst: isdigit
      Src: /src/git/apply.c:540,1
    - Dst: isdigit
      Src: /src/git/apply.c:540,1
    - Dst: isdigit
      Src: /src/git/apply.c:541,1
    - Dst: isdigit
      Src: /src/git/apply.c:541,1
    - Dst: strlen
      Src: /src/git/apply.c:544,1
    - Dst: isdigit
      Src: /src/git/apply.c:545,1
    - Dst: isdigit
      Src: /src/git/apply.c:545,1
    - Dst: strlen
      Src: /src/git/apply.c:546,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 9
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 549
    functionName: date_len
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t date_len(const char *line, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/apply.c:555,1
    - Dst: strlen
      Src: /src/git/apply.c:555,1
    - Dst: strlen
      Src: /src/git/apply.c:557,1
    - Dst: isdigit
      Src: /src/git/apply.c:561,1
    - Dst: isdigit
      Src: /src/git/apply.c:561,1
    - Dst: isdigit
      Src: /src/git/apply.c:562,1
    - Dst: isdigit
      Src: /src/git/apply.c:562,1
    - Dst: isdigit
      Src: /src/git/apply.c:563,1
    - Dst: isdigit
      Src: /src/git/apply.c:563,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 7
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 567
    functionName: short_time_len
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t short_time_len(const char *line, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/git/apply.c:575,1
    - Dst: isdigit
      Src: /src/git/apply.c:580,1
    - Dst: short_time_len
      Src: /src/git/apply.c:586,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 591
    functionName: fractional_time_len
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isdigit
    - short_time_len
    linkageType: ''
    returnType: size_t
    signature: size_t fractional_time_len(const char *line, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 610
    functionName: trailing_spaces_len
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t trailing_spaces_len(const char *line, size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/git/apply.c:622,1
    - Dst: sane_tz_len
      Src: /src/git/apply.c:625,1
    - Dst: tz_with_colon_len
      Src: /src/git/apply.c:627,1
    - Dst: short_time_len
      Src: /src/git/apply.c:630,1
    - Dst: fractional_time_len
      Src: /src/git/apply.c:632,1
    - Dst: date_len
      Src: /src/git/apply.c:635,1
    - Dst: trailing_spaces_len
      Src: /src/git/apply.c:650,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 652
    functionName: diff_timestamp_len
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - date_len
    - fractional_time_len
    - isdigit
    - short_time_len
    - sane_tz_len
    - trailing_spaces_len
    - tz_with_colon_len
    linkageType: ''
    returnType: size_t
    signature: size_t diff_timestamp_len(const char *line, size_t len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/apply.c:669,1
    - Dst: name_terminate
      Src: /src/git/apply.c:672,1
    - Dst: squash_slash
      Src: /src/git/apply.c:680,1
    - Dst: xstrdup_or_null
      Src: /src/git/apply.c:680,1
    - Dst: squash_slash
      Src: /src/git/apply.c:683,1
    - Dst: xstrdup_or_null
      Src: /src/git/apply.c:683,1
    - Dst: strlen
      Src: /src/git/apply.c:692,1
    - Dst: strncmp
      Src: /src/git/apply.c:693,1
    - Dst: squash_slash
      Src: /src/git/apply.c:694,1
    - Dst: xstrdup
      Src: /src/git/apply.c:694,1
    - Dst: xstrfmt
      Src: /src/git/apply.c:698,1
    - Dst: squash_slash
      Src: /src/git/apply.c:699,1
    - Dst: squash_slash
      Src: /src/git/apply.c:702,1
    - Dst: xmemdupz
      Src: /src/git/apply.c:702,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 6
    argNames:
    - root
    - line
    - def
    - p_value
    - end
    - terminate
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 703
    functionName: find_name_common
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isspace
    - xmemdupz
    - xstrdup_or_null
    - xstrfmt
    - strlen
    - squash_slash
    - name_terminate
    - strncmp
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *find_name_common(struct strbuf *root,\n\t\t\t      const char
      *line,\n\t\t\t      const char *def,\n\t\t\t      int p_value,\n\t\t\t      const
      char *end,\n\t\t\t      int terminate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_name_gnu
      Src: /src/git/apply.c:712,1
    - Dst: find_name_common
      Src: /src/git/apply.c:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - root
    - line
    - def
    - p_value
    - terminate
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 718
    functionName: find_name
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - find_name_common
    - find_name_gnu
    linkageType: ''
    returnType: char
    signature: "char *find_name(struct strbuf *root,\n\t\t       const char *line,\n\t\t
      \      char *def,\n\t\t       int p_value,\n\t\t       int terminate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_name_gnu
      Src: /src/git/apply.c:729,1
    - Dst: strchrnul
      Src: /src/git/apply.c:734,1
    - Dst: diff_timestamp_len
      Src: /src/git/apply.c:735,1
    - Dst: find_name_common
      Src: /src/git/apply.c:737,1
    - Dst: find_name_common
      Src: /src/git/apply.c:740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - root
    - line
    - def
    - p_value
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 720
    functionDepth: 4
    functionLinenumber: 720
    functionLinenumberEnd: 741
    functionName: find_name_traditional
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - diff_timestamp_len
    - strchrnul
    - find_name_common
    - find_name_gnu
    linkageType: ''
    returnType: char
    signature: "char *find_name_traditional(struct strbuf *root,\n\t\t\t\t   const
      char *line,\n\t\t\t\t   char *def,\n\t\t\t\t   int p_value)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_dev_null
      Src: /src/git/apply.c:752,1
    - Dst: find_name_traditional
      Src: /src/git/apply.c:754,1
    - Dst: strchr
      Src: /src/git/apply.c:757,1
    - Dst: starts_with
      Src: /src/git/apply.c:765,1
    - Dst: count_slashes
      Src: /src/git/apply.c:766,1
    - Dst: starts_with
      Src: /src/git/apply.c:769,1
    - Dst: count_slashes
      Src: /src/git/apply.c:770,1
    - Dst: free
      Src: /src/git/apply.c:773,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - state
    - nameline
    argTypes:
    - struct apply_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 747
    functionDepth: 5
    functionLinenumber: 747
    functionLinenumberEnd: 775
    functionName: guess_p_value
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - find_name_traditional
    - strchr
    - starts_with
    - count_slashes
    - free
    - is_dev_null
    linkageType: ''
    returnType: int
    signature: int guess_p_value(struct apply_state *state, const char *nameline)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/apply.c:811,1
    - Dst: skip_prefix
      Src: /src/git/apply.c:813,1
    - Dst: xmalloc
      Src: /src/git/apply.c:819,1
    - Dst: regcomp
      Src: /src/git/apply.c:820,1
    - Dst: warning
      Src: /src/git/apply.c:821,1
    - Dst: _
      Src: /src/git/apply.c:821,1
    - Dst: regexec
      Src: /src/git/apply.c:827,1
    - Dst: ARRAY_SIZE
      Src: /src/git/apply.c:827,1
    - Dst: warning
      Src: /src/git/apply.c:830,1
    - Dst: _
      Src: /src/git/apply.c:830,1
    - Dst: strtol
      Src: /src/git/apply.c:835,1
    - Dst: strtol
      Src: /src/git/apply.c:836,1
    - Dst: strtol
      Src: /src/git/apply.c:838,1
    - Dst: strtol
      Src: /src/git/apply.c:840,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - nameline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 847
    functionName: has_epoch_timestamp
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - regexec
    - xmalloc
    - warning
    - _
    - regcomp
    - strtol
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int has_epoch_timestamp(const char *nameline)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: guess_p_value
      Src: /src/git/apply.c:867,1
    - Dst: guess_p_value
      Src: /src/git/apply.c:868,1
    - Dst: is_dev_null
      Src: /src/git/apply.c:875,1
    - Dst: find_name_traditional
      Src: /src/git/apply.c:878,1
    - Dst: is_dev_null
      Src: /src/git/apply.c:880,1
    - Dst: find_name_traditional
      Src: /src/git/apply.c:883,1
    - Dst: find_name_traditional
      Src: /src/git/apply.c:887,1
    - Dst: find_name_traditional
      Src: /src/git/apply.c:888,1
    - Dst: free
      Src: /src/git/apply.c:889,1
    - Dst: has_epoch_timestamp
      Src: /src/git/apply.c:890,1
    - Dst: has_epoch_timestamp
      Src: /src/git/apply.c:894,1
    - Dst: xstrdup_or_null
      Src: /src/git/apply.c:900,1
    - Dst: error
      Src: /src/git/apply.c:904,1
    - Dst: _
      Src: /src/git/apply.c:904,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 4
    argNames:
    - state
    - first
    - second
    - patch
    argTypes:
    - struct apply_state*
    - char*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 856
    functionDepth: 6
    functionLinenumber: 856
    functionLinenumberEnd: 908
    functionName: parse_traditional_patch
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - has_epoch_timestamp
    - xstrdup_or_null
    - find_name_traditional
    - free
    - is_dev_null
    - guess_p_value
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_traditional_patch(struct apply_state *state,\n\t\t\t\t   const
      char *first,\n\t\t\t\t   const char *second,\n\t\t\t\t   struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - UNUSED
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 915
    functionName: gitdiff_hdrend
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int gitdiff_hdrend(struct gitdiff_data *state UNUSED,\n\t\t\t  const
      char *line UNUSED,\n\t\t\t  struct patch *patch UNUSED)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find_name
      Src: /src/git/apply.c:936,1
    - Dst: error
      Src: /src/git/apply.c:944,1
    - Dst: _
      Src: /src/git/apply.c:944,1
    - Dst: error
      Src: /src/git/apply.c:946,1
    - Dst: _
      Src: /src/git/apply.c:946,1
    - Dst: find_name
      Src: /src/git/apply.c:949,1
    - Dst: strcmp
      Src: /src/git/apply.c:950,1
    - Dst: free
      Src: /src/git/apply.c:951,1
    - Dst: error
      Src: /src/git/apply.c:953,1
    - Dst: _
      Src: /src/git/apply.c:954,1
    - Dst: _
      Src: /src/git/apply.c:955,1
    - Dst: error
      Src: /src/git/apply.c:957,1
    - Dst: _
      Src: /src/git/apply.c:958,1
    - Dst: _
      Src: /src/git/apply.c:959,1
    - Dst: free
      Src: /src/git/apply.c:962,1
    - Dst: is_dev_null
      Src: /src/git/apply.c:964,1
    - Dst: error
      Src: /src/git/apply.c:966,1
    - Dst: _
      Src: /src/git/apply.c:966,1
    - Dst: error
      Src: /src/git/apply.c:968,1
    - Dst: _
      Src: /src/git/apply.c:968,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 5
    argNames:
    - state
    - line
    - isnull
    - name
    - side
    argTypes:
    - struct gitdiff_data*
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 929
    functionDepth: 3
    functionLinenumber: 929
    functionLinenumberEnd: 974
    functionName: gitdiff_verify_name
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - find_name
    - strcmp
    - free
    - _
    - is_dev_null
    linkageType: ''
    returnType: int
    signature: "int gitdiff_verify_name(struct gitdiff_data *state,\n\t\t\t       const
      char *line,\n\t\t\t       int isnull,\n\t\t\t       char **name,\n\t\t\t       int
      side)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gitdiff_verify_name
      Src: /src/git/apply.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 976
    functionDepth: 4
    functionLinenumber: 976
    functionLinenumberEnd: 983
    functionName: gitdiff_oldname
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - gitdiff_verify_name
    linkageType: ''
    returnType: int
    signature: "int gitdiff_oldname(struct gitdiff_data *state,\n\t\t\t   const char
      *line,\n\t\t\t   struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gitdiff_verify_name
      Src: /src/git/apply.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 985
    functionDepth: 4
    functionLinenumber: 985
    functionLinenumberEnd: 992
    functionName: gitdiff_newname
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - gitdiff_verify_name
    linkageType: ''
    returnType: int
    signature: "int gitdiff_newname(struct gitdiff_data *state,\n\t\t\t   const char
      *line,\n\t\t\t   struct patch *patch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/apply.c:1000,1
    - Dst: isspace
      Src: /src/git/apply.c:1001,1
    - Dst: error
      Src: /src/git/apply.c:1003,1
    - Dst: _
      Src: /src/git/apply.c:1003,1
    - Dst: error
      Src: /src/git/apply.c:1005,1
    - Dst: _
      Src: /src/git/apply.c:1005,1
    - Dst: canon_mode
      Src: /src/git/apply.c:1007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - line
    - patch_input_file
    - linenr
    - mode
    argTypes:
    - char*
    - char*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1009
    functionName: parse_mode_line
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isspace
    - error
    - canon_mode
    - _
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int parse_mode_line(const char *line,\n\t\t\t   const char *patch_input_file,\n\t\t\t
      \  int linenr,\n\t\t\t   unsigned int *mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_mode_line
      Src: /src/git/apply.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1017
    functionName: gitdiff_oldmode
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - parse_mode_line
    linkageType: ''
    returnType: int
    signature: "int gitdiff_oldmode(struct gitdiff_data *state,\n\t\t\t   const char
      *line,\n\t\t\t   struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_mode_line
      Src: /src/git/apply.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1025
    functionName: gitdiff_newmode
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - parse_mode_line
    linkageType: ''
    returnType: int
    signature: "int gitdiff_newmode(struct gitdiff_data *state,\n\t\t\t   const char
      *line,\n\t\t\t   struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/apply.c:1032,1
    - Dst: xstrdup_or_null
      Src: /src/git/apply.c:1033,1
    - Dst: gitdiff_oldmode
      Src: /src/git/apply.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1035
    functionName: gitdiff_delete
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - gitdiff_oldmode
    - free
    linkageType: ''
    returnType: int
    signature: "int gitdiff_delete(struct gitdiff_data *state,\n\t\t\t  const char
      *line,\n\t\t\t  struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/apply.c:1042,1
    - Dst: xstrdup_or_null
      Src: /src/git/apply.c:1043,1
    - Dst: gitdiff_newmode
      Src: /src/git/apply.c:1044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1037
    functionDepth: 3
    functionLinenumber: 1037
    functionLinenumberEnd: 1045
    functionName: gitdiff_newfile
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - gitdiff_newmode
    - xstrdup_or_null
    - free
    linkageType: ''
    returnType: int
    signature: "int gitdiff_newfile(struct gitdiff_data *state,\n\t\t\t   const char
      *line,\n\t\t\t   struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/apply.c:1052,1
    - Dst: find_name
      Src: /src/git/apply.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1047
    functionDepth: 3
    functionLinenumber: 1047
    functionLinenumberEnd: 1055
    functionName: gitdiff_copysrc
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - find_name
    - free
    linkageType: ''
    returnType: int
    signature: "int gitdiff_copysrc(struct gitdiff_data *state,\n\t\t\t   const char
      *line,\n\t\t\t   struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/apply.c:1062,1
    - Dst: find_name
      Src: /src/git/apply.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1057
    functionDepth: 3
    functionLinenumber: 1057
    functionLinenumberEnd: 1065
    functionName: gitdiff_copydst
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - find_name
    - free
    linkageType: ''
    returnType: int
    signature: "int gitdiff_copydst(struct gitdiff_data *state,\n\t\t\t   const char
      *line,\n\t\t\t   struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/apply.c:1072,1
    - Dst: find_name
      Src: /src/git/apply.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1067
    functionDepth: 3
    functionLinenumber: 1067
    functionLinenumberEnd: 1075
    functionName: gitdiff_renamesrc
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - find_name
    - free
    linkageType: ''
    returnType: int
    signature: "int gitdiff_renamesrc(struct gitdiff_data *state,\n\t\t\t     const
      char *line,\n\t\t\t     struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/apply.c:1082,1
    - Dst: find_name
      Src: /src/git/apply.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1077
    functionDepth: 3
    functionLinenumber: 1077
    functionLinenumberEnd: 1085
    functionName: gitdiff_renamedst
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - find_name
    - free
    linkageType: ''
    returnType: int
    signature: "int gitdiff_renamedst(struct gitdiff_data *state,\n\t\t\t     const
      char *line,\n\t\t\t     struct patch *patch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/apply.c:1091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - UNUSED
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1095
    functionName: gitdiff_similarity
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int gitdiff_similarity(struct gitdiff_data *state UNUSED,\n\t\t\t
      \     const char *line,\n\t\t\t      struct patch *patch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/apply.c:1101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - UNUSED
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1105
    functionName: gitdiff_dissimilarity
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int gitdiff_dissimilarity(struct gitdiff_data *state UNUSED,\n\t\t\t\t
      const char *line,\n\t\t\t\t struct patch *patch)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/apply.c:1119,1
    - Dst: memcpy
      Src: /src/git/apply.c:1123,1
    - Dst: strchr
      Src: /src/git/apply.c:1127,1
    - Dst: strchrnul
      Src: /src/git/apply.c:1128,1
    - Dst: memcpy
      Src: /src/git/apply.c:1136,1
    - Dst: gitdiff_oldmode
      Src: /src/git/apply.c:1139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - state
    - line
    - patch
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1107
    functionDepth: 3
    functionLinenumber: 1107
    functionLinenumberEnd: 1141
    functionName: gitdiff_index
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - gitdiff_oldmode
    - strchrnul
    - strchr
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int gitdiff_index(struct gitdiff_data *state,\n\t\t\t const char *line,\n\t\t\t
      struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - UNUSED
    argTypes:
    - struct gitdiff_data*
    - char*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1152
    functionName: gitdiff_unrecognized
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int gitdiff_unrecognized(struct gitdiff_data *state UNUSED,\n\t\t\t\tconst
      char *line UNUSED,\n\t\t\t\tstruct patch *patch UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - p_value
    - line
    - llen
    argTypes:
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1175
    functionName: skip_tree_prefix
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *skip_tree_prefix(int p_value,\n\t\t\t\t    const char *line,\n\t\t\t\t
      \   int llen)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/apply.c:1193,1
    - Dst: strlen
      Src: /src/git/apply.c:1194,1
    - Dst: unquote_c_style
      Src: /src/git/apply.c:1201,1
    - Dst: skip_tree_prefix
      Src: /src/git/apply.c:1205,1
    - Dst: strbuf_remove
      Src: /src/git/apply.c:1208,1
    - Dst: isspace
      Src: /src/git/apply.c:1214,1
    - Dst: unquote_c_style
      Src: /src/git/apply.c:1220,1
    - Dst: skip_tree_prefix
      Src: /src/git/apply.c:1222,1
    - Dst: strcmp
      Src: /src/git/apply.c:1226,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:1228,1
    - Dst: strbuf_detach
      Src: /src/git/apply.c:1229,1
    - Dst: skip_tree_prefix
      Src: /src/git/apply.c:1233,1
    - Dst: memcmp
      Src: /src/git/apply.c:1237,1
    - Dst: strbuf_detach
      Src: /src/git/apply.c:1239,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:1242,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:1243,1
    - Dst: skip_tree_prefix
      Src: /src/git/apply.c:1248,1
    - Dst: unquote_c_style
      Src: /src/git/apply.c:1261,1
    - Dst: skip_tree_prefix
      Src: /src/git/apply.c:1264,1
    - Dst: strncmp
      Src: /src/git/apply.c:1270,1
    - Dst: isspace
      Src: /src/git/apply.c:1271,1
    - Dst: strbuf_remove
      Src: /src/git/apply.c:1273,1
    - Dst: strbuf_detach
      Src: /src/git/apply.c:1274,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:1278,1
    - Dst: strchr
      Src: /src/git/apply.c:1287,1
    - Dst: skip_tree_prefix
      Src: /src/git/apply.c:1308,1
    - Dst: strncmp
      Src: /src/git/apply.c:1324,1
    - Dst: xmemdupz
      Src: /src/git/apply.c:1325,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 89
    argCount: 3
    argNames:
    - p_value
    - line
    - llen
    argTypes:
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1328
    functionName: git_header_name
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isspace
    - xmemdupz
    - strbuf_release
    - strbuf_remove
    - strchr
    - strlen
    - unquote_c_style
    - skip_tree_prefix
    - strbuf_detach
    - strcmp
    - strncmp
    - memcmp
    linkageType: ''
    returnType: char
    signature: "char *git_header_name(int p_value,\n\t\t\t     const char *line,\n\t\t\t
      \    int llen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/apply.c:1335,1
    - Dst: _
      Src: /src/git/apply.c:1335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - linenr
    - patch
    argTypes:
    - int
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1340
    functionName: check_header_line
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - _
    linkageType: ''
    returnType: int
    signature: int check_header_line(int linenr, struct patch *patch)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: git_header_name
      Src: /src/git/apply.c:1364,1
    - Dst: xstrfmt
      Src: /src/git/apply.c:1366,1
    - Dst: free
      Src: /src/git/apply.c:1367,1
    - Dst: linelen
      Src: /src/git/apply.c:1404,1
    - Dst: ARRAY_SIZE
      Src: /src/git/apply.c:1407,1
    - Dst: strlen
      Src: /src/git/apply.c:1409,1
    - Dst: memcmp
      Src: /src/git/apply.c:1411,1
    - Dst: struct opentry*::fn
      Src: /src/git/apply.c:1414,1
    - Dst: check_header_line
      Src: /src/git/apply.c:1417,1
    - Dst: error
      Src: /src/git/apply.c:1429,1
    - Dst: Q_
      Src: /src/git/apply.c:1429,1
    - Dst: error
      Src: /src/git/apply.c:1436,1
    - Dst: Q_
      Src: /src/git/apply.c:1436,1
    - Dst: xstrdup
      Src: /src/git/apply.c:1444,1
    - Dst: xstrdup
      Src: /src/git/apply.c:1445,1
    - Dst: error
      Src: /src/git/apply.c:1450,1
    - Dst: _
      Src: /src/git/apply.c:1450,1
    - Dst: error
      Src: /src/git/apply.c:1453,1
    - Dst: _
      Src: /src/git/apply.c:1453,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 8
    argNames:
    - root
    - patch_input_file
    - linenr
    - p_value
    - line
    - len
    - size
    - patch
    argTypes:
    - struct strbuf*
    - char*
    - int*
    - int
    - char*
    - int
    - unsigned int
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1342
    functionDepth: 2
    functionLinenumber: 1342
    functionLinenumberEnd: 1459
    functionName: parse_git_diff_header
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - ARRAY_SIZE
    - check_header_line
    - xstrfmt
    - struct opentry*::fn
    - xstrdup
    - _
    - strlen
    - free
    - Q_
    - git_header_name
    - linelen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int parse_git_diff_header(struct strbuf *root,\n\t\t\t  const char
      *patch_input_file,\n\t\t\t  int *linenr,\n\t\t\t  int p_value,\n\t\t\t  const
      char *line,\n\t\t\t  int len,\n\t\t\t  unsigned int size,\n\t\t\t  struct patch
      *patch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/git/apply.c:1465,1
    - Dst: strtoul
      Src: /src/git/apply.c:1468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - line
    - p
    argTypes:
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1472
    functionName: parse_num
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_num(const char *line, unsigned long *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_num
      Src: /src/git/apply.c:1484,1
    - Dst: parse_num
      Src: /src/git/apply.c:1494,1
    - Dst: strlen
      Src: /src/git/apply.c:1503,1
    - Dst: memcmp
      Src: /src/git/apply.c:1506,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 6
    argNames:
    - line
    - len
    - offset
    - expect
    - p1
    - p2
    argTypes:
    - char*
    - int
    - int
    - char*
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1474
    functionDepth: 2
    functionLinenumber: 1474
    functionLinenumberEnd: 1510
    functionName: parse_range
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strlen
    - parse_num
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int parse_range(const char *line, int len, int offset, const char
      *expect,\n\t\t       unsigned long *p1, unsigned long *p2)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/apply.c:1517,1
    - Dst: linelen
      Src: /src/git/apply.c:1522,1
    - Dst: starts_with
      Src: /src/git/apply.c:1542,1
    - Dst: starts_with
      Src: /src/git/apply.c:1545,1
    - Dst: warning
      Src: /src/git/apply.c:1552,1
    - Dst: _
      Src: /src/git/apply.c:1552,1
    - Dst: linelen
      Src: /src/git/apply.c:1553,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - line
    - size
    - fragment
    argTypes:
    - char*
    - int
    - struct fragment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1512
    functionDepth: 1
    functionLinenumber: 1512
    functionLinenumberEnd: 1560
    functionName: recount_diff
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - warning
    - _
    - linelen
    - starts_with
    linkageType: ''
    returnType: void
    signature: void recount_diff(const char *line, int size, struct fragment *fragment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_range
      Src: /src/git/apply.c:1574,1
    - Dst: parse_range
      Src: /src/git/apply.c:1575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - line
    - len
    - fragment
    argTypes:
    - char*
    - int
    - struct fragment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1578
    functionName: parse_fragment_header
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - parse_range
    linkageType: ''
    returnType: int
    signature: int parse_fragment_header(const char *line, int len, struct fragment
      *fragment)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: linelen
      Src: /src/git/apply.c:1604,1
    - Dst: memcmp
      Src: /src/git/apply.c:1617,1
    - Dst: parse_fragment_header
      Src: /src/git/apply.c:1619,1
    - Dst: error
      Src: /src/git/apply.c:1621,1
    - Dst: _
      Src: /src/git/apply.c:1621,1
    - Dst: memcmp
      Src: /src/git/apply.c:1634,1
    - Dst: parse_git_diff_header
      Src: /src/git/apply.c:1635,1
    - Dst: memcmp
      Src: /src/git/apply.c:1649,1
    - Dst: memcmp
      Src: /src/git/apply.c:1649,1
    - Dst: linelen
      Src: /src/git/apply.c:1657,1
    - Dst: memcmp
      Src: /src/git/apply.c:1658,1
    - Dst: parse_traditional_patch
      Src: /src/git/apply.c:1662,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 5
    argNames:
    - state
    - line
    - size
    - hdrsize
    - patch
    argTypes:
    - struct apply_state*
    - char*
    - unsigned long
    - int*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1588
    functionDepth: 7
    functionLinenumber: 1588
    functionLinenumberEnd: 1669
    functionName: find_header
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - parse_traditional_patch
    - parse_git_diff_header
    - _
    - parse_fragment_header
    - linelen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int find_header(struct apply_state *state,\n\t\t       const char
      *line,\n\t\t       unsigned long size,\n\t\t       int *hdrsize,\n\t\t       struct
      patch *patch)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: whitespace_error_string
      Src: /src/git/apply.c:1695,1
    - Dst: fprintf
      Src: /src/git/apply.c:1697,1
    - Dst: free
      Src: /src/git/apply.c:1699,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - state
    - result
    - line
    - len
    - linenr
    argTypes:
    - struct apply_state*
    - unsigned
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1700
    functionName: record_ws_error
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - whitespace_error_string
    - fprintf
    - free
    linkageType: ''
    returnType: void
    signature: "void record_ws_error(struct apply_state *state,\n\t\t\t    unsigned
      result,\n\t\t\t    const char *line,\n\t\t\t    int len,\n\t\t\t    int linenr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ws_check
      Src: /src/git/apply.c:1707,1
    - Dst: record_ws_error
      Src: /src/git/apply.c:1709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - line
    - len
    - ws_rule
    argTypes:
    - struct apply_state*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1702
    functionDepth: 2
    functionLinenumber: 1702
    functionLinenumberEnd: 1710
    functionName: check_whitespace
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - record_ws_error
    - ws_check
    linkageType: ''
    returnType: void
    signature: "void check_whitespace(struct apply_state *state,\n\t\t\t     const
      char *line,\n\t\t\t     int len,\n\t\t\t     unsigned ws_rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - patch
    - line
    - len
    argTypes:
    - struct patch*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1716
    functionDepth: 0
    functionLinenumber: 1716
    functionLinenumberEnd: 1722
    functionName: check_old_for_crlf
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void check_old_for_crlf(struct patch *patch, const char *line, int
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/apply.c:1746,1
    - Dst: linelen
      Src: /src/git/apply.c:1748,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - line
    - len
    - size
    argTypes:
    - char*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1752
    functionName: adjust_incomplete
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - linelen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int adjust_incomplete(const char *line, int len,\n\t\t\t     unsigned
      long size)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: linelen
      Src: /src/git/apply.c:1767,1
    - Dst: S_ISLNK
      Src: /src/git/apply.c:1788,1
    - Dst: parse_fragment_header
      Src: /src/git/apply.c:1792,1
    - Dst: recount_diff
      Src: /src/git/apply.c:1796,1
    - Dst: linelen
      Src: /src/git/apply.c:1812,1
    - Dst: adjust_incomplete
      Src: /src/git/apply.c:1826,1
    - Dst: check_old_for_crlf
      Src: /src/git/apply.c:1841,1
    - Dst: check_whitespace
      Src: /src/git/apply.c:1850,1
    - Dst: check_old_for_crlf
      Src: /src/git/apply.c:1856,1
    - Dst: check_whitespace
      Src: /src/git/apply.c:1859,1
    - Dst: check_old_for_crlf
      Src: /src/git/apply.c:1866,1
    - Dst: check_whitespace
      Src: /src/git/apply.c:1869,1
    - Dst: error
      Src: /src/git/apply.c:1894,1
    - Dst: _
      Src: /src/git/apply.c:1894,1
    - Dst: error
      Src: /src/git/apply.c:1896,1
    - Dst: _
      Src: /src/git/apply.c:1896,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 85
    argCount: 5
    argNames:
    - state
    - line
    - size
    - patch
    - fragment
    argTypes:
    - struct apply_state*
    - char*
    - unsigned long
    - struct patch*
    - struct fragment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1760
    functionDepth: 3
    functionLinenumber: 1760
    functionLinenumberEnd: 1898
    functionName: parse_fragment
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - S_ISLNK
    - check_old_for_crlf
    - recount_diff
    - _
    - check_whitespace
    - adjust_incomplete
    - parse_fragment_header
    - linelen
    linkageType: ''
    returnType: int
    signature: "int parse_fragment(struct apply_state *state,\n\t\t\t  const char
      *line,\n\t\t\t  unsigned long size,\n\t\t\t  struct patch *patch,\n\t\t\t  struct
      fragment *fragment)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/apply.c:1921,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/apply.c:1925,1
    - Dst: parse_fragment
      Src: /src/git/apply.c:1927,1
    - Dst: free
      Src: /src/git/apply.c:1929,1
    - Dst: error
      Src: /src/git/apply.c:1930,1
    - Dst: _
      Src: /src/git/apply.c:1930,1
    - Dst: error
      Src: /src/git/apply.c:1968,1
    - Dst: _
      Src: /src/git/apply.c:1968,1
    - Dst: error
      Src: /src/git/apply.c:1970,1
    - Dst: _
      Src: /src/git/apply.c:1970,1
    - Dst: fprintf_ln
      Src: /src/git/apply.c:1972,1
    - Dst: _
      Src: /src/git/apply.c:1973,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 31
    argCount: 4
    argNames:
    - state
    - line
    - size
    - patch
    argTypes:
    - struct apply_state*
    - char*
    - unsigned long
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1912
    functionDepth: 4
    functionLinenumber: 1912
    functionLinenumberEnd: 1978
    functionName: parse_single_patch
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - fprintf_ln
    - parse_fragment
    - CALLOC_ARRAY
    - free
    - _
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int parse_single_patch(struct apply_state *state,\n\t\t\t      const
      char *line,\n\t\t\t      unsigned long size,\n\t\t\t      struct patch *patch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1980
    functionDepth: 0
    functionLinenumber: 1980
    functionLinenumberEnd: 1988
    functionName: metadata_changes
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int metadata_changes(struct patch *patch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/apply.c:1997,1
    - Dst: xmalloc
      Src: /src/git/apply.c:2001,1
    - Dst: git_inflate_init
      Src: /src/git/apply.c:2003,1
    - Dst: git_inflate
      Src: /src/git/apply.c:2004,1
    - Dst: git_inflate_end
      Src: /src/git/apply.c:2005,1
    - Dst: free
      Src: /src/git/apply.c:2007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - data
    - size
    - inflated_size
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1990
    functionDepth: 1
    functionLinenumber: 1990
    functionLinenumberEnd: 2011
    functionName: inflate_it
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - memset
    - git_inflate
    - xmalloc
    - free
    - git_inflate_init
    - git_inflate_end
    linkageType: ''
    returnType: char
    signature: "char *inflate_it(const void *data, unsigned long size,\n\t\t\tunsigned
      long inflated_size)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: linelen
      Src: /src/git/apply.c:2045,1
    - Dst: starts_with
      Src: /src/git/apply.c:2050,1
    - Dst: strtoul
      Src: /src/git/apply.c:2052,1
    - Dst: starts_with
      Src: /src/git/apply.c:2054,1
    - Dst: strtoul
      Src: /src/git/apply.c:2056,1
    - Dst: linelen
      Src: /src/git/apply.c:2066,1
    - Dst: xrealloc
      Src: /src/git/apply.c:2097,1
    - Dst: decode_85
      Src: /src/git/apply.c:2098,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/apply.c:2105,1
    - Dst: inflate_it
      Src: /src/git/apply.c:2106,1
    - Dst: free
      Src: /src/git/apply.c:2110,1
    - Dst: free
      Src: /src/git/apply.c:2119,1
    - Dst: error
      Src: /src/git/apply.c:2121,1
    - Dst: _
      Src: /src/git/apply.c:2121,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 5
    argNames:
    - state
    - buf_p
    - sz_p
    - status_p
    - used_p
    argTypes:
    - struct apply_state*
    - char**
    - unsigned long*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2018
    functionDepth: 2
    functionLinenumber: 2018
    functionLinenumberEnd: 2124
    functionName: parse_binary_hunk
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - inflate_it
    - decode_85
    - starts_with
    - xrealloc
    - _
    - CALLOC_ARRAY
    - free
    - linelen
    - strtoul
    linkageType: ''
    returnType: struct fragment
    signature: "struct fragment *parse_binary_hunk(struct apply_state *state,\n\t\t\t\t\t
      \ char **buf_p,\n\t\t\t\t\t  unsigned long *sz_p,\n\t\t\t\t\t  int *status_p,\n\t\t\t\t\t
      \ int *used_p)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_binary_hunk
      Src: /src/git/apply.c:2155,1
    - Dst: error
      Src: /src/git/apply.c:2158,1
    - Dst: _
      Src: /src/git/apply.c:2158,1
    - Dst: parse_binary_hunk
      Src: /src/git/apply.c:2164,1
    - Dst: free
      Src: /src/git/apply.c:2172,1
    - Dst: free
      Src: /src/git/apply.c:2173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - state
    - buffer
    - size
    - patch
    argTypes:
    - struct apply_state*
    - char*
    - unsigned long
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2131
    functionDepth: 3
    functionLinenumber: 2131
    functionLinenumberEnd: 2180
    functionName: parse_binary
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - parse_binary_hunk
    - free
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_binary(struct apply_state *state,\n\t\t\tchar *buffer,\n\t\t\tunsigned
      long size,\n\t\t\tstruct patch *patch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prefix_filename
      Src: /src/git/apply.c:2187,1
    - Dst: free
      Src: /src/git/apply.c:2188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - name
    argTypes:
    - struct apply_state*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2182
    functionDepth: 1
    functionLinenumber: 2182
    functionLinenumberEnd: 2189
    functionName: prefix_one
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - prefix_filename
    - free
    linkageType: ''
    returnType: void
    signature: void prefix_one(struct apply_state *state, char **name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prefix_one
      Src: /src/git/apply.c:2195,1
    - Dst: prefix_one
      Src: /src/git/apply.c:2196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - state
    - p
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2191
    functionDepth: 2
    functionLinenumber: 2191
    functionLinenumberEnd: 2197
    functionName: prefix_patch
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - prefix_one
    linkageType: ''
    returnType: void
    signature: void prefix_patch(struct apply_state *state, struct patch *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/apply.c:2209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - name
    - exclude
    argTypes:
    - struct apply_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2211
    functionName: add_name_limit
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - string_list_append
    linkageType: ''
    returnType: void
    signature: "void add_name_limit(struct apply_state *state,\n\t\t\t   const char
      *name,\n\t\t\t   int exclude)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/apply.c:2221,1
    - Dst: wildmatch
      Src: /src/git/apply.c:2228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - state
    - p
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2213
    functionDepth: 1
    functionLinenumber: 2213
    functionLinenumberEnd: 2238
    functionName: use_patch
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - wildmatch
    linkageType: ''
    returnType: int
    signature: int use_patch(struct apply_state *state, struct patch *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: find_header
      Src: /src/git/apply.c:2254,1
    - Dst: prefix_patch
      Src: /src/git/apply.c:2259,1
    - Dst: use_patch
      Src: /src/git/apply.c:2261,1
    - Dst: whitespace_rule
      Src: /src/git/apply.c:2264,1
    - Dst: whitespace_rule
      Src: /src/git/apply.c:2267,1
    - Dst: parse_single_patch
      Src: /src/git/apply.c:2270,1
    - Dst: linelen
      Src: /src/git/apply.c:2281,1
    - Dst: memcmp
      Src: /src/git/apply.c:2284,1
    - Dst: parse_binary
      Src: /src/git/apply.c:2287,1
    - Dst: memcmp
      Src: /src/git/apply.c:2296,1
    - Dst: strlen
      Src: /src/git/apply.c:2304,1
    - Dst: memcmp
      Src: /src/git/apply.c:2306,1
    - Dst: metadata_changes
      Src: /src/git/apply.c:2320,1
    - Dst: error
      Src: /src/git/apply.c:2321,1
    - Dst: _
      Src: /src/git/apply.c:2321,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 4
    argNames:
    - state
    - buffer
    - size
    - patch
    argTypes:
    - struct apply_state*
    - char*
    - unsigned long
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2251
    functionDepth: 8
    functionLinenumber: 2251
    functionLinenumberEnd: 2328
    functionName: parse_chunk
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - find_header
    - parse_binary
    - prefix_patch
    - whitespace_rule
    - use_patch
    - parse_single_patch
    - strlen
    - _
    - metadata_changes
    - linelen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int parse_chunk(struct apply_state *state, char *buffer, unsigned long
      size, struct patch *patch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/git/apply.c:2335,1
    - Dst: SWAP
      Src: /src/git/apply.c:2337,1
    - Dst: SWAP
      Src: /src/git/apply.c:2338,1
    - Dst: SWAP
      Src: /src/git/apply.c:2339,1
    - Dst: SWAP
      Src: /src/git/apply.c:2340,1
    - Dst: SWAP
      Src: /src/git/apply.c:2343,1
    - Dst: SWAP
      Src: /src/git/apply.c:2344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2330
    functionDepth: 1
    functionLinenumber: 2330
    functionLinenumberEnd: 2347
    functionName: reverse_patches
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: void
    signature: void reverse_patches(struct patch *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quote_c_style
      Src: /src/git/apply.c:2360,1
    - Dst: strchr
      Src: /src/git/apply.c:2370,1
    - Dst: strbuf_splice
      Src: /src/git/apply.c:2373,1
    - Dst: printf
      Src: /src/git/apply.c:2377,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:2378,1
    - Dst: printf
      Src: /src/git/apply.c:2382,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:2383,1
    - Dst: printf
      Src: /src/git/apply.c:2397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2354
    functionDepth: 1
    functionLinenumber: 2354
    functionLinenumberEnd: 2399
    functionName: show_stats
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strchr
    - strbuf_splice
    - quote_c_style
    - printf
    linkageType: ''
    returnType: void
    signature: void show_stats(struct apply_state *state, struct patch *patch)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_readlink
      Src: /src/git/apply.c:2408,1
    - Dst: error
      Src: /src/git/apply.c:2409,1
    - Dst: _
      Src: /src/git/apply.c:2409,1
    - Dst: strbuf_read_file
      Src: /src/git/apply.c:2412,1
    - Dst: error
      Src: /src/git/apply.c:2413,1
    - Dst: _
      Src: /src/git/apply.c:2413,1
    - Dst: convert_to_git
      Src: /src/git/apply.c:2422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - st
    - patch
    - path
    - buf
    argTypes:
    - struct stat*
    - struct patch*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2401
    functionDepth: 1
    functionLinenumber: 2401
    functionLinenumberEnd: 2427
    functionName: read_old_data
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_read_file
    - strbuf_readlink
    - _
    - convert_to_git
    linkageType: ''
    returnType: int
    signature: "int read_old_data(struct stat *st, struct patch *patch,\n\t\t\t const
      char *path, struct strbuf *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: image_prepare
      Src: /src/git/apply.c:2447,1
    - Dst: image_clear
      Src: /src/git/apply.c:2450,1
    - Dst: strbuf_splice
      Src: /src/git/apply.c:2484,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - preimage
    - postimage
    - buf
    - len
    argTypes:
    - struct image*
    - struct image*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2433
    functionDepth: 4
    functionLinenumber: 2433
    functionLinenumberEnd: 2494
    functionName: update_pre_post_images
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - image_prepare
    - image_clear
    - strbuf_splice
    linkageType: ''
    returnType: void
    signature: "void update_pre_post_images(struct image *preimage,\n\t\t\t\t   struct
      image *postimage,\n\t\t\t\t   char *buf, size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/apply.c:2513,1
    - Dst: isspace
      Src: /src/git/apply.c:2518,1
    - Dst: isspace
      Src: /src/git/apply.c:2520,1
    - Dst: isspace
      Src: /src/git/apply.c:2522,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 4
    argNames:
    - s1
    - n1
    - s2
    - n2
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2500
    functionDepth: 1
    functionLinenumber: 2500
    functionLinenumberEnd: 2530
    functionName: fuzzy_matchlines
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: "int fuzzy_matchlines(const char *s1, size_t n1,\n\t\t\t    const char
      *s2, size_t n2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fuzzy_matchlines
      Src: /src/git/apply.c:2554,1
    - Dst: isspace
      Src: /src/git/apply.c:2577,1
    - Dst: strbuf_init
      Src: /src/git/apply.c:2588,1
    - Dst: strbuf_add
      Src: /src/git/apply.c:2589,1
    - Dst: strbuf_add
      Src: /src/git/apply.c:2590,1
    - Dst: strbuf_detach
      Src: /src/git/apply.c:2591,1
    - Dst: update_pre_post_images
      Src: /src/git/apply.c:2592,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - img
    - preimage
    - postimage
    - current
    - current_lno
    - preimage_limit
    argTypes:
    - struct image*
    - struct image*
    - struct image*
    - unsigned long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2532
    functionDepth: 5
    functionLinenumber: 2532
    functionLinenumberEnd: 2595
    functionName: line_by_line_fuzzy_match
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isspace
    - update_pre_post_images
    - fuzzy_matchlines
    - strbuf_detach
    - strbuf_init
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int line_by_line_fuzzy_match(struct image *img,\n\t\t\t\t    struct
      image *preimage,\n\t\t\t\t    struct image *postimage,\n\t\t\t\t    unsigned
      long current,\n\t\t\t\t    int current_lno,\n\t\t\t\t    int preimage_limit)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/apply.c:2668,1
    - Dst: isspace
      Src: /src/git/apply.c:2688,1
    - Dst: line_by_line_fuzzy_match
      Src: /src/git/apply.c:2702,1
    - Dst: strbuf_grow
      Src: /src/git/apply.c:2732,1
    - Dst: ws_fix_copy
      Src: /src/git/apply.c:2743,1
    - Dst: strbuf_init
      Src: /src/git/apply.c:2746,1
    - Dst: ws_fix_copy
      Src: /src/git/apply.c:2747,1
    - Dst: memcmp
      Src: /src/git/apply.c:2760,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:2763,1
    - Dst: ws_fix_copy
      Src: /src/git/apply.c:2786,1
    - Dst: isspace
      Src: /src/git/apply.c:2789,1
    - Dst: strbuf_detach
      Src: /src/git/apply.c:2804,1
    - Dst: update_pre_post_images
      Src: /src/git/apply.c:2805,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:2811,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 93
    argCount: 9
    argNames:
    - state
    - img
    - preimage
    - postimage
    - current
    - current_lno
    - ws_rule
    - match_beginning
    - match_end
    argTypes:
    - struct apply_state*
    - struct image*
    - struct image*
    - struct image*
    - unsigned long
    - int
    - unsigned
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2597
    functionDepth: 6
    functionLinenumber: 2597
    functionLinenumberEnd: 2813
    functionName: match_fragment
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_release
    - ws_fix_copy
    - line_by_line_fuzzy_match
    - update_pre_post_images
    - strbuf_detach
    - strbuf_grow
    - strbuf_init
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int match_fragment(struct apply_state *state,\n\t\t\t  struct image
      *img,\n\t\t\t  struct image *preimage,\n\t\t\t  struct image *postimage,\n\t\t\t
      \ unsigned long current,\n\t\t\t  int current_lno,\n\t\t\t  unsigned ws_rule,\n\t\t\t
      \ int match_beginning, int match_end)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: match_fragment
      Src: /src/git/apply.c:2870,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 8
    argNames:
    - state
    - img
    - preimage
    - postimage
    - line
    - ws_rule
    - match_beginning
    - match_end
    argTypes:
    - struct apply_state*
    - struct image*
    - struct image*
    - struct image*
    - int
    - unsigned
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2901
      start: 2815
    functionDepth: 7
    functionLinenumber: 2815
    functionLinenumberEnd: 2901
    functionName: find_pos
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - match_fragment
    linkageType: ''
    returnType: int
    signature: "int find_pos(struct apply_state *state,\n\t\t    struct image *img,\n\t\t
      \   struct image *preimage,\n\t\t    struct image *postimage,\n\t\t    int line,\n\t\t
      \   unsigned ws_rule,\n\t\t    int match_beginning, int match_end)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: st_add3
      Src: /src/git/apply.c:2946,1
    - Dst: st_sub
      Src: /src/git/apply.c:2946,1
    - Dst: xmalloc
      Src: /src/git/apply.c:2947,1
    - Dst: memcpy
      Src: /src/git/apply.c:2948,1
    - Dst: memcpy
      Src: /src/git/apply.c:2949,1
    - Dst: memcpy
      Src: /src/git/apply.c:2950,1
    - Dst: strbuf_attach
      Src: /src/git/apply.c:2953,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/apply.c:2963,1
    - Dst: MOVE_ARRAY
      Src: /src/git/apply.c:2965,1
    - Dst: COPY_ARRAY
      Src: /src/git/apply.c:2968,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - state
    - img
    - applied_pos
    - preimage
    - postimage
    argTypes:
    - struct apply_state*
    - struct image*
    - int
    - struct image*
    - struct image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2908
    functionDepth: 1
    functionLinenumber: 2908
    functionLinenumberEnd: 2973
    functionName: update_image
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - COPY_ARRAY
    - MOVE_ARRAY
    - strbuf_attach
    - memcpy
    - xmalloc
    - REALLOC_ARRAY
    - st_add3
    - st_sub
    linkageType: ''
    returnType: void
    signature: "void update_image(struct apply_state *state,\n\t\t\t struct image
      *img,\n\t\t\t int applied_pos,\n\t\t\t struct image *preimage,\n\t\t\t struct
      image *postimage)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/apply.c:2998,1
    - Dst: strbuf_init
      Src: /src/git/apply.c:2999,1
    - Dst: linelen
      Src: /src/git/apply.c:3004,1
    - Dst: strbuf_addch
      Src: /src/git/apply.c:3038,1
    - Dst: image_add_line
      Src: /src/git/apply.c:3039,1
    - Dst: image_add_line
      Src: /src/git/apply.c:3040,1
    - Dst: ws_blank_line
      Src: /src/git/apply.c:3045,1
    - Dst: memcpy
      Src: /src/git/apply.c:3049,1
    - Dst: image_add_line
      Src: /src/git/apply.c:3050,1
    - Dst: strbuf_add
      Src: /src/git/apply.c:3065,1
    - Dst: ws_fix_copy
      Src: /src/git/apply.c:3068,1
    - Dst: image_add_line
      Src: /src/git/apply.c:3070,1
    - Dst: ws_blank_line
      Src: /src/git/apply.c:3074,1
    - Dst: error
      Src: /src/git/apply.c:3082,1
    - Dst: _
      Src: /src/git/apply.c:3082,1
    - Dst: strbuf_setlen
      Src: /src/git/apply.c:3103,1
    - Dst: strbuf_add
      Src: /src/git/apply.c:3135,1
    - Dst: strbuf_swap
      Src: /src/git/apply.c:3136,1
    - Dst: find_pos
      Src: /src/git/apply.c:3140,1
    - Dst: image_remove_first_line
      Src: /src/git/apply.c:3160,1
    - Dst: image_remove_first_line
      Src: /src/git/apply.c:3161,1
    - Dst: image_remove_last_line
      Src: /src/git/apply.c:3166,1
    - Dst: image_remove_last_line
      Src: /src/git/apply.c:3167,1
    - Dst: record_ws_error
      Src: /src/git/apply.c:3177,1
    - Dst: image_remove_last_line
      Src: /src/git/apply.c:3181,1
    - Dst: fprintf_ln
      Src: /src/git/apply.c:3198,1
    - Dst: Q_
      Src: /src/git/apply.c:3199,1
    - Dst: fprintf_ln
      Src: /src/git/apply.c:3211,1
    - Dst: _
      Src: /src/git/apply.c:3211,1
    - Dst: update_image
      Src: /src/git/apply.c:3214,1
    - Dst: error
      Src: /src/git/apply.c:3217,1
    - Dst: _
      Src: /src/git/apply.c:3217,1
    - Dst: free
      Src: /src/git/apply.c:3222,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:3223,1
    - Dst: image_clear
      Src: /src/git/apply.c:3224,1
    - Dst: image_clear
      Src: /src/git/apply.c:3225,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 135
    argCount: 6
    argNames:
    - state
    - img
    - frag
    - inaccurate_eof
    - ws_rule
    - nth_fragment
    argTypes:
    - struct apply_state*
    - struct image*
    - struct fragment*
    - int
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3228
      start: 2980
    functionDepth: 8
    functionLinenumber: 2980
    functionLinenumberEnd: 3228
    functionName: apply_one_fragment
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - free
    - strbuf_swap
    - error
    - strbuf_release
    - strbuf_setlen
    - memcpy
    - ws_fix_copy
    - Q_
    - image_remove_last_line
    - strbuf_init
    - fprintf_ln
    - image_add_line
    - _
    - image_clear
    - strbuf_add
    - ws_blank_line
    - update_image
    - find_pos
    - record_ws_error
    - strbuf_addch
    - image_remove_first_line
    - linelen
    linkageType: ''
    returnType: int
    signature: "int apply_one_fragment(struct apply_state *state,\n\t\t\t      struct
      image *img, struct fragment *frag,\n\t\t\t      int inaccurate_eof, unsigned
      ws_rule,\n\t\t\t      int nth_fragment)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/apply.c:3239,1
    - Dst: _
      Src: /src/git/apply.c:3239,1
    - Dst: error
      Src: /src/git/apply.c:3247,1
    - Dst: _
      Src: /src/git/apply.c:3247,1
    - Dst: patch_delta
      Src: /src/git/apply.c:3255,1
    - Dst: image_clear
      Src: /src/git/apply.c:3259,1
    - Dst: strbuf_attach
      Src: /src/git/apply.c:3260,1
    - Dst: image_clear
      Src: /src/git/apply.c:3263,1
    - Dst: strbuf_add
      Src: /src/git/apply.c:3264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - state
    - img
    - patch
    argTypes:
    - struct apply_state*
    - struct image*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3268
      start: 3230
    functionDepth: 2
    functionLinenumber: 3230
    functionLinenumberEnd: 3268
    functionName: apply_binary_fragment
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_attach
    - patch_delta
    - _
    - image_clear
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int apply_binary_fragment(struct apply_state *state,\n\t\t\t\t struct
      image *img,\n\t\t\t\t struct patch *patch)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/apply.c:3288,1
    - Dst: strlen
      Src: /src/git/apply.c:3289,1
    - Dst: get_oid_hex
      Src: /src/git/apply.c:3290,1
    - Dst: get_oid_hex
      Src: /src/git/apply.c:3291,1
    - Dst: error
      Src: /src/git/apply.c:3292,1
    - Dst: _
      Src: /src/git/apply.c:3292,1
    - Dst: hash_object_file
      Src: /src/git/apply.c:3300,1
    - Dst: strcmp
      Src: /src/git/apply.c:3302,1
    - Dst: oid_to_hex
      Src: /src/git/apply.c:3302,1
    - Dst: error
      Src: /src/git/apply.c:3303,1
    - Dst: _
      Src: /src/git/apply.c:3303,1
    - Dst: oid_to_hex
      Src: /src/git/apply.c:3306,1
    - Dst: error
      Src: /src/git/apply.c:3311,1
    - Dst: _
      Src: /src/git/apply.c:3311,1
    - Dst: get_oid_hex
      Src: /src/git/apply.c:3315,1
    - Dst: is_null_oid
      Src: /src/git/apply.c:3316,1
    - Dst: image_clear
      Src: /src/git/apply.c:3317,1
    - Dst: odb_has_object
      Src: /src/git/apply.c:3321,1
    - Dst: odb_read_object
      Src: /src/git/apply.c:3327,1
    - Dst: error
      Src: /src/git/apply.c:3330,1
    - Dst: _
      Src: /src/git/apply.c:3330,1
    - Dst: image_clear
      Src: /src/git/apply.c:3333,1
    - Dst: strbuf_attach
      Src: /src/git/apply.c:3334,1
    - Dst: apply_binary_fragment
      Src: /src/git/apply.c:3341,1
    - Dst: error
      Src: /src/git/apply.c:3342,1
    - Dst: _
      Src: /src/git/apply.c:3342,1
    - Dst: hash_object_file
      Src: /src/git/apply.c:3346,1
    - Dst: strcmp
      Src: /src/git/apply.c:3348,1
    - Dst: oid_to_hex
      Src: /src/git/apply.c:3348,1
    - Dst: error
      Src: /src/git/apply.c:3349,1
    - Dst: _
      Src: /src/git/apply.c:3349,1
    - Dst: oid_to_hex
      Src: /src/git/apply.c:3350,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - state
    - img
    - patch
    argTypes:
    - struct apply_state*
    - struct image*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3276
    functionDepth: 3
    functionLinenumber: 3276
    functionLinenumberEnd: 3354
    functionName: apply_binary
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - apply_binary_fragment
    - hash_object_file
    - get_oid_hex
    - strbuf_attach
    - is_null_oid
    - odb_has_object
    - strlen
    - strcmp
    - _
    - odb_read_object
    - image_clear
    linkageType: ''
    returnType: int
    signature: "int apply_binary(struct apply_state *state,\n\t\t\tstruct image *img,\n\t\t\tstruct
      patch *patch)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apply_binary
      Src: /src/git/apply.c:3365,1
    - Dst: apply_one_fragment
      Src: /src/git/apply.c:3369,1
    - Dst: error
      Src: /src/git/apply.c:3370,1
    - Dst: _
      Src: /src/git/apply.c:3370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - state
    - img
    - patch
    argTypes:
    - struct apply_state*
    - struct image*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3378
      start: 3356
    functionDepth: 9
    functionLinenumber: 3356
    functionLinenumberEnd: 3378
    functionName: apply_fragments
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - apply_binary
    - _
    - apply_one_fragment
    linkageType: ''
    returnType: int
    signature: int apply_fragments(struct apply_state *state, struct image *img, struct
      patch *patch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/apply.c:3382,1
    - Dst: strbuf_grow
      Src: /src/git/apply.c:3383,1
    - Dst: strbuf_addf
      Src: /src/git/apply.c:3384,1
    - Dst: oid_to_hex
      Src: /src/git/apply.c:3384,1
    - Dst: odb_read_object
      Src: /src/git/apply.c:3390,1
    - Dst: strbuf_attach
      Src: /src/git/apply.c:3395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - oid
    - mode
    argTypes:
    - struct strbuf*
    - struct object_id*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3380
    functionDepth: 1
    functionLinenumber: 3380
    functionLinenumberEnd: 3398
    functionName: read_blob_object
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - strbuf_attach
    - strbuf_addf
    - S_ISGITLINK
    - strbuf_grow
    - odb_read_object
    linkageType: ''
    returnType: int
    signature: int read_blob_object(struct strbuf *buf, const struct object_id *oid,
      unsigned mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_blob_object
      Src: /src/git/apply.c:3404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ce
    - buf
    argTypes:
    - struct cache_entry*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3400
    functionDepth: 2
    functionLinenumber: 3400
    functionLinenumberEnd: 3405
    functionName: read_file_or_gitlink
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - read_blob_object
    linkageType: ''
    returnType: int
    signature: int read_file_or_gitlink(const struct cache_entry *ce, struct strbuf
      *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_lookup
      Src: /src/git/apply.c:3414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - state
    - name
    argTypes:
    - struct apply_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3407
    functionDepth: 1
    functionLinenumber: 3407
    functionLinenumberEnd: 3419
    functionName: in_fn_table
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    linkageType: ''
    returnType: struct patch
    signature: struct patch *in_fn_table(struct apply_state *state, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3439
      start: 3436
    functionDepth: 0
    functionLinenumber: 3436
    functionLinenumberEnd: 3439
    functionName: to_be_deleted
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int to_be_deleted(struct patch *patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3444
      start: 3441
    functionDepth: 0
    functionLinenumber: 3441
    functionLinenumberEnd: 3444
    functionName: was_deleted
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int was_deleted(struct patch *patch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/apply.c:3456,1
    - Dst: string_list_insert
      Src: /src/git/apply.c:3465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3446
    functionDepth: 1
    functionLinenumber: 3446
    functionLinenumberEnd: 3468
    functionName: add_to_fn_table
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - string_list_insert
    linkageType: ''
    returnType: void
    signature: void add_to_fn_table(struct apply_state *state, struct patch *patch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/apply.c:3478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3483
      start: 3470
    functionDepth: 1
    functionLinenumber: 3470
    functionLinenumberEnd: 3483
    functionName: prepare_fn_table
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - string_list_insert
    linkageType: ''
    returnType: void
    signature: void prepare_fn_table(struct apply_state *state, struct patch *patch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: checkout_entry
      Src: /src/git/apply.c:3492,1
    - Dst: lstat
      Src: /src/git/apply.c:3493,1
    - Dst: error
      Src: /src/git/apply.c:3494,1
    - Dst: _
      Src: /src/git/apply.c:3494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - istate
    - ce
    - st
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3496
      start: 3485
    functionDepth: 1
    functionLinenumber: 3485
    functionLinenumberEnd: 3496
    functionName: checkout_target
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - lstat
    - checkout_entry
    - _
    linkageType: ''
    returnType: int
    signature: "int checkout_target(struct index_state *istate,\n\t\t\t   struct cache_entry
      *ce, struct stat *st)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: in_fn_table
      Src: /src/git/apply.c:3508,1
    - Dst: to_be_deleted
      Src: /src/git/apply.c:3512,1
    - Dst: was_deleted
      Src: /src/git/apply.c:3515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - state
    - patch
    - gone
    argTypes:
    - struct apply_state*
    - struct patch*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3519
      start: 3498
    functionDepth: 2
    functionLinenumber: 3498
    functionLinenumberEnd: 3519
    functionName: previous_patch
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - in_fn_table
    - to_be_deleted
    - was_deleted
    linkageType: ''
    returnType: struct patch
    signature: "struct patch *previous_patch(struct apply_state *state,\n\t\t\t\t
      \   struct patch *patch,\n\t\t\t\t    int *gone)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/apply.c:3525,1
    - Dst: S_ISDIR
      Src: /src/git/apply.c:3526,1
    - Dst: ie_match_stat
      Src: /src/git/apply.c:3530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - state
    - ce
    - st
    argTypes:
    - struct apply_state*
    - struct cache_entry*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3532
      start: 3521
    functionDepth: 1
    functionLinenumber: 3521
    functionLinenumberEnd: 3532
    functionName: verify_index_match
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - S_ISGITLINK
    - ie_match_stat
    linkageType: ''
    returnType: int
    signature: "int verify_index_match(struct apply_state *state,\n\t\t\t      const
      struct cache_entry *ce,\n\t\t\t      struct stat *st)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: read_file_or_gitlink
      Src: /src/git/apply.c:3545,1
    - Dst: error
      Src: /src/git/apply.c:3546,1
    - Dst: _
      Src: /src/git/apply.c:3546,1
    - Dst: S_ISGITLINK
      Src: /src/git/apply.c:3548,1
    - Dst: read_file_or_gitlink
      Src: /src/git/apply.c:3550,1
    - Dst: has_symlink_leading_path
      Src: /src/git/apply.c:3553,1
    - Dst: strlen
      Src: /src/git/apply.c:3553,1
    - Dst: error
      Src: /src/git/apply.c:3554,1
    - Dst: _
      Src: /src/git/apply.c:3554,1
    - Dst: read_old_data
      Src: /src/git/apply.c:3556,1
    - Dst: error
      Src: /src/git/apply.c:3557,1
    - Dst: _
      Src: /src/git/apply.c:3557,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 7
    argNames:
    - state
    - buf
    - ce
    - st
    - patch
    - name
    - expected_mode
    argTypes:
    - struct apply_state*
    - struct strbuf*
    - struct cache_entry*
    - struct stat*
    - struct patch*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3561
      start: 3536
    functionDepth: 3
    functionLinenumber: 3536
    functionLinenumberEnd: 3561
    functionName: load_patch_target
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - S_ISGITLINK
    - read_file_or_gitlink
    - strlen
    - _
    - has_symlink_leading_path
    - read_old_data
    linkageType: ''
    returnType: int
    signature: "int load_patch_target(struct apply_state *state,\n\t\t\t     struct
      strbuf *buf,\n\t\t\t     const struct cache_entry *ce,\n\t\t\t     struct stat
      *st,\n\t\t\t     struct patch *patch,\n\t\t\t     const char *name,\n\t\t\t
      \    unsigned expected_mode)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: previous_patch
      Src: /src/git/apply.c:3581,1
    - Dst: error
      Src: /src/git/apply.c:3583,1
    - Dst: _
      Src: /src/git/apply.c:3583,1
    - Dst: strbuf_add
      Src: /src/git/apply.c:3587,1
    - Dst: load_patch_target
      Src: /src/git/apply.c:3589,1
    - Dst: free_fragment_list
      Src: /src/git/apply.c:3600,1
    - Dst: error
      Src: /src/git/apply.c:3603,1
    - Dst: _
      Src: /src/git/apply.c:3603,1
    - Dst: strbuf_detach
      Src: /src/git/apply.c:3607,1
    - Dst: image_prepare
      Src: /src/git/apply.c:3608,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - state
    - image
    - patch
    - st
    - ce
    argTypes:
    - struct apply_state*
    - struct image*
    - struct patch*
    - struct stat*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3570
    functionDepth: 4
    functionLinenumber: 3570
    functionLinenumberEnd: 3610
    functionName: load_preimage
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - previous_patch
    - free_fragment_list
    - load_patch_target
    - image_prepare
    - strbuf_detach
    - _
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int load_preimage(struct apply_state *state,\n\t\t\t struct image
      *image,\n\t\t\t struct patch *patch, struct stat *st,\n\t\t\t const struct cache_entry
      *ce)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: image_clear
      Src: /src/git/apply.c:3618,1
    - Dst: odb_read_object
      Src: /src/git/apply.c:3620,1
    - Dst: die
      Src: /src/git/apply.c:3622,1
    - Dst: oid_to_hex
      Src: /src/git/apply.c:3622,1
    - Dst: strbuf_attach
      Src: /src/git/apply.c:3623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - image
    - result_id
    argTypes:
    - struct image*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3626
      start: 3612
    functionDepth: 2
    functionLinenumber: 3612
    functionLinenumberEnd: 3626
    functionName: resolve_to
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - strbuf_attach
    - odb_read_object
    - image_clear
    linkageType: ''
    returnType: int
    signature: int resolve_to(struct image *image, const struct object_id *result_id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/apply.c:3641,1
    - Dst: resolve_to
      Src: /src/git/apply.c:3642,1
    - Dst: oideq
      Src: /src/git/apply.c:3643,1
    - Dst: oideq
      Src: /src/git/apply.c:3643,1
    - Dst: resolve_to
      Src: /src/git/apply.c:3644,1
    - Dst: read_mmblob
      Src: /src/git/apply.c:3646,1
    - Dst: read_mmblob
      Src: /src/git/apply.c:3647,1
    - Dst: read_mmblob
      Src: /src/git/apply.c:3648,1
    - Dst: ll_merge
      Src: /src/git/apply.c:3650,1
    - Dst: warning
      Src: /src/git/apply.c:3657,1
    - Dst: free
      Src: /src/git/apply.c:3659,1
    - Dst: free
      Src: /src/git/apply.c:3660,1
    - Dst: free
      Src: /src/git/apply.c:3661,1
    - Dst: free
      Src: /src/git/apply.c:3663,1
    - Dst: image_clear
      Src: /src/git/apply.c:3666,1
    - Dst: strbuf_attach
      Src: /src/git/apply.c:3667,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - state
    - image
    - path
    - base
    - ours
    - theirs
    argTypes:
    - struct apply_state*
    - struct image*
    - char*
    - struct object_id*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3670
      start: 3628
    functionDepth: 3
    functionLinenumber: 3628
    functionLinenumberEnd: 3670
    functionName: three_way_merge
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - oideq
    - image_clear
    - strbuf_attach
    - resolve_to
    - read_mmblob
    - free
    - warning
    - ll_merge
    linkageType: ''
    returnType: int
    signature: "int three_way_merge(struct apply_state *state,\n\t\t\t   struct image
      *image,\n\t\t\t   char *path,\n\t\t\t   const struct object_id *base,\n\t\t\t
      \  const struct object_id *ours,\n\t\t\t   const struct object_id *theirs)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/apply.c:3691,1
    - Dst: index_name_pos
      Src: /src/git/apply.c:3693,1
    - Dst: strlen
      Src: /src/git/apply.c:3693,1
    - Dst: error
      Src: /src/git/apply.c:3695,1
    - Dst: _
      Src: /src/git/apply.c:3695,1
    - Dst: lstat
      Src: /src/git/apply.c:3697,1
    - Dst: error_errno
      Src: /src/git/apply.c:3699,1
    - Dst: checkout_target
      Src: /src/git/apply.c:3700,1
    - Dst: verify_index_match
      Src: /src/git/apply.c:3703,1
    - Dst: error
      Src: /src/git/apply.c:3704,1
    - Dst: _
      Src: /src/git/apply.c:3704,1
    - Dst: load_patch_target
      Src: /src/git/apply.c:3706,1
    - Dst: strbuf_detach
      Src: /src/git/apply.c:3711,1
    - Dst: image_prepare
      Src: /src/git/apply.c:3712,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - state
    - image
    - patch
    argTypes:
    - struct apply_state*
    - struct image*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3714
      start: 3677
    functionDepth: 4
    functionLinenumber: 3677
    functionLinenumberEnd: 3714
    functionName: load_current
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - index_name_pos
    - load_patch_target
    - image_prepare
    - strlen
    - verify_index_match
    - checkout_target
    - strbuf_detach
    - _
    - lstat
    - BUG
    linkageType: ''
    returnType: int
    signature: "int load_current(struct apply_state *state,\n\t\t\tstruct image *image,\n\t\t\tstruct
      patch *patch)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/apply.c:3731,1
    - Dst: S_ISGITLINK
      Src: /src/git/apply.c:3731,1
    - Dst: odb_write_object
      Src: /src/git/apply.c:3738,1
    - Dst: repo_get_oid
      Src: /src/git/apply.c:3739,1
    - Dst: read_blob_object
      Src: /src/git/apply.c:3740,1
    - Dst: error
      Src: /src/git/apply.c:3741,1
    - Dst: _
      Src: /src/git/apply.c:3741,1
    - Dst: fprintf
      Src: /src/git/apply.c:3744,1
    - Dst: _
      Src: /src/git/apply.c:3744,1
    - Dst: strbuf_detach
      Src: /src/git/apply.c:3746,1
    - Dst: image_prepare
      Src: /src/git/apply.c:3747,1
    - Dst: apply_fragments
      Src: /src/git/apply.c:3749,1
    - Dst: image_clear
      Src: /src/git/apply.c:3750,1
    - Dst: odb_write_object
      Src: /src/git/apply.c:3754,1
    - Dst: image_clear
      Src: /src/git/apply.c:3756,1
    - Dst: load_current
      Src: /src/git/apply.c:3760,1
    - Dst: error
      Src: /src/git/apply.c:3761,1
    - Dst: _
      Src: /src/git/apply.c:3761,1
    - Dst: load_preimage
      Src: /src/git/apply.c:3764,1
    - Dst: error
      Src: /src/git/apply.c:3765,1
    - Dst: _
      Src: /src/git/apply.c:3765,1
    - Dst: odb_write_object
      Src: /src/git/apply.c:3768,1
    - Dst: image_clear
      Src: /src/git/apply.c:3770,1
    - Dst: three_way_merge
      Src: /src/git/apply.c:3773,1
    - Dst: fprintf
      Src: /src/git/apply.c:3777,1
    - Dst: _
      Src: /src/git/apply.c:3778,1
    - Dst: oidclr
      Src: /src/git/apply.c:3785,1
    - Dst: oidcpy
      Src: /src/git/apply.c:3787,1
    - Dst: oidcpy
      Src: /src/git/apply.c:3788,1
    - Dst: oidcpy
      Src: /src/git/apply.c:3789,1
    - Dst: fprintf
      Src: /src/git/apply.c:3791,1
    - Dst: _
      Src: /src/git/apply.c:3792,1
    - Dst: fprintf
      Src: /src/git/apply.c:3796,1
    - Dst: _
      Src: /src/git/apply.c:3797,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 5
    argNames:
    - state
    - image
    - patch
    - st
    - ce
    argTypes:
    - struct apply_state*
    - struct image*
    - struct patch*
    - struct stat*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3801
      start: 3716
    functionDepth: 10
    functionLinenumber: 3716
    functionLinenumberEnd: 3801
    functionName: try_threeway
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - apply_fragments
    - odb_write_object
    - oidcpy
    - repo_get_oid
    - S_ISGITLINK
    - image_prepare
    - load_preimage
    - oidclr
    - three_way_merge
    - read_blob_object
    - strbuf_detach
    - _
    - load_current
    - image_clear
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int try_threeway(struct apply_state *state,\n\t\t\tstruct image *image,\n\t\t\tstruct
      patch *patch,\n\t\t\tstruct stat *st,\n\t\t\tconst struct cache_entry *ce)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: load_preimage
      Src: /src/git/apply.c:3808,1
    - Dst: try_threeway
      Src: /src/git/apply.c:3811,1
    - Dst: fprintf
      Src: /src/git/apply.c:3814,1
    - Dst: _
      Src: /src/git/apply.c:3814,1
    - Dst: apply_fragments
      Src: /src/git/apply.c:3817,1
    - Dst: image_clear
      Src: /src/git/apply.c:3818,1
    - Dst: strbuf_detach
      Src: /src/git/apply.c:3822,1
    - Dst: add_to_fn_table
      Src: /src/git/apply.c:3823,1
    - Dst: free
      Src: /src/git/apply.c:3824,1
    - Dst: error
      Src: /src/git/apply.c:3827,1
    - Dst: _
      Src: /src/git/apply.c:3827,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 4
    argNames:
    - state
    - patch
    - st
    - ce
    argTypes:
    - struct apply_state*
    - struct patch*
    - struct stat*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3830
      start: 3803
    functionDepth: 11
    functionLinenumber: 3803
    functionLinenumberEnd: 3830
    functionName: apply_data
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - apply_fragments
    - error
    - try_threeway
    - load_preimage
    - add_to_fn_table
    - strbuf_detach
    - _
    - free
    - image_clear
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int apply_data(struct apply_state *state, struct patch *patch,\n\t\t
      \     struct stat *st, const struct cache_entry *ce)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/apply.c:3856,1
    - Dst: previous_patch
      Src: /src/git/apply.c:3857,1
    - Dst: error
      Src: /src/git/apply.c:3860,1
    - Dst: _
      Src: /src/git/apply.c:3860,1
    - Dst: lstat
      Src: /src/git/apply.c:3864,1
    - Dst: error_errno
      Src: /src/git/apply.c:3866,1
    - Dst: index_name_pos
      Src: /src/git/apply.c:3870,1
    - Dst: strlen
      Src: /src/git/apply.c:3871,1
    - Dst: error
      Src: /src/git/apply.c:3875,1
    - Dst: _
      Src: /src/git/apply.c:3875,1
    - Dst: checkout_target
      Src: /src/git/apply.c:3879,1
    - Dst: verify_index_match
      Src: /src/git/apply.c:3882,1
    - Dst: error
      Src: /src/git/apply.c:3883,1
    - Dst: _
      Src: /src/git/apply.c:3883,1
    - Dst: error_errno
      Src: /src/git/apply.c:3889,1
    - Dst: BUG
      Src: /src/git/apply.c:3894,1
    - Dst: S_ISREG
      Src: /src/git/apply.c:3896,1
    - Dst: ce_mode_from_stat
      Src: /src/git/apply.c:3897,1
    - Dst: error
      Src: /src/git/apply.c:3909,1
    - Dst: _
      Src: /src/git/apply.c:3909,1
    - Dst: warning
      Src: /src/git/apply.c:3911,1
    - Dst: _
      Src: /src/git/apply.c:3911,1
    - Dst: FREE_AND_NULL
      Src: /src/git/apply.c:3920,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 64
    argCount: 4
    argNames:
    - state
    - patch
    - ce
    - st
    argTypes:
    - struct apply_state*
    - struct patch*
    - struct cache_entry**
    - struct stat*
    assertStmts:
    - condition: (patch->is_new <= 0)
      pos:
        line_end: 3855
        line_start: 3855
        source_file: /src/git/apply.c
    constantsTouched: []
    func_position:
      end: 3922
      start: 3843
    functionDepth: 3
    functionLinenumber: 3843
    functionLinenumberEnd: 3922
    functionName: check_preimage
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - index_name_pos
    - assert
    - previous_patch
    - BUG
    - strlen
    - FREE_AND_NULL
    - verify_index_match
    - checkout_target
    - _
    - ce_mode_from_stat
    - warning
    - lstat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int check_preimage(struct apply_state *state,\n\t\t\t  struct patch
      *patch,\n\t\t\t  struct cache_entry **ce,\n\t\t\t  struct stat *st)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/apply.c:3938,1
    - Dst: strlen
      Src: /src/git/apply.c:3938,1
    - Dst: lstat
      Src: /src/git/apply.c:3955,1
    - Dst: S_ISDIR
      Src: /src/git/apply.c:3956,1
    - Dst: has_symlink_leading_path
      Src: /src/git/apply.c:3965,1
    - Dst: strlen
      Src: /src/git/apply.c:3965,1
    - Dst: is_missing_file_error
      Src: /src/git/apply.c:3969,1
    - Dst: error_errno
      Src: /src/git/apply.c:3970,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 3
    argNames:
    - state
    - new_name
    - ok_if_exists
    argTypes:
    - struct apply_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3929
    functionDepth: 1
    functionLinenumber: 3929
    functionLinenumberEnd: 3973
    functionName: check_to_create
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error_errno
    - index_name_pos
    - S_ISDIR
    - is_missing_file_error
    - strlen
    - lstat
    - has_symlink_leading_path
    linkageType: ''
    returnType: int
    signature: "int check_to_create(struct apply_state *state,\n\t\t\t   const char
      *new_name,\n\t\t\t   int ok_if_exists)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISLNK
      Src: /src/git/apply.c:3978,1
    - Dst: strset_add
      Src: /src/git/apply.c:3981,1
    - Dst: S_ISLNK
      Src: /src/git/apply.c:3983,1
    - Dst: strset_add
      Src: /src/git/apply.c:3985,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3987
      start: 3975
    functionDepth: 1
    functionLinenumber: 3975
    functionLinenumberEnd: 3987
    functionName: prepare_symlink_changes
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - strset_add
    - S_ISLNK
    linkageType: ''
    returnType: void
    signature: void prepare_symlink_changes(struct apply_state *state, struct patch
      *patch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strset_contains
      Src: /src/git/apply.c:3997,1
    - Dst: strset_contains
      Src: /src/git/apply.c:3999,1
    - Dst: index_file_exists
      Src: /src/git/apply.c:4010,1
    - Dst: S_ISLNK
      Src: /src/git/apply.c:4012,1
    - Dst: lstat
      Src: /src/git/apply.c:4016,1
    - Dst: S_ISLNK
      Src: /src/git/apply.c:4016,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 2
    argNames:
    - state
    - name
    argTypes:
    - struct apply_state*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4021
      start: 3989
    functionDepth: 1
    functionLinenumber: 3989
    functionLinenumberEnd: 4021
    functionName: path_is_beyond_symlink_1
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - index_file_exists
    - lstat
    - strset_contains
    - S_ISLNK
    linkageType: ''
    returnType: int
    signature: int path_is_beyond_symlink_1(struct apply_state *state, struct strbuf
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/apply.c:4028,1
    - Dst: strbuf_addstr
      Src: /src/git/apply.c:4029,1
    - Dst: path_is_beyond_symlink_1
      Src: /src/git/apply.c:4030,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:4031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - state
    - name_
    argTypes:
    - struct apply_state*
    - char*
    assertStmts:
    - condition: (*name_ != '\0')
      pos:
        line_end: 4027
        line_start: 4027
        source_file: /src/git/apply.c
    constantsTouched: []
    func_position:
      end: 4034
      start: 4023
    functionDepth: 2
    functionLinenumber: 4023
    functionLinenumberEnd: 4034
    functionName: path_is_beyond_symlink
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - path_is_beyond_symlink_1
    - strbuf_release
    - assert
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int path_is_beyond_symlink(struct apply_state *state, const char *name_)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: verify_path
      Src: /src/git/apply.c:4047,1
    - Dst: error
      Src: /src/git/apply.c:4048,1
    - Dst: _
      Src: /src/git/apply.c:4048,1
    - Dst: verify_path
      Src: /src/git/apply.c:4049,1
    - Dst: error
      Src: /src/git/apply.c:4050,1
    - Dst: _
      Src: /src/git/apply.c:4050,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4036
    functionDepth: 1
    functionLinenumber: 4036
    functionLinenumberEnd: 4052
    functionName: check_unsafe_path
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - verify_path
    - _
    linkageType: ''
    returnType: int
    signature: int check_unsafe_path(struct patch *patch)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: check_preimage
      Src: /src/git/apply.c:4071,1
    - Dst: in_fn_table
      Src: /src/git/apply.c:4090,1
    - Dst: was_deleted
      Src: /src/git/apply.c:4091,1
    - Dst: to_be_deleted
      Src: /src/git/apply.c:4091,1
    - Dst: check_to_create
      Src: /src/git/apply.c:4098,1
    - Dst: error
      Src: /src/git/apply.c:4106,1
    - Dst: _
      Src: /src/git/apply.c:4106,1
    - Dst: error
      Src: /src/git/apply.c:4108,1
    - Dst: _
      Src: /src/git/apply.c:4108,1
    - Dst: error
      Src: /src/git/apply.c:4110,1
    - Dst: _
      Src: /src/git/apply.c:4110,1
    - Dst: strcmp
      Src: /src/git/apply.c:4125,1
    - Dst: error
      Src: /src/git/apply.c:4130,1
    - Dst: _
      Src: /src/git/apply.c:4130,1
    - Dst: error
      Src: /src/git/apply.c:4135,1
    - Dst: _
      Src: /src/git/apply.c:4135,1
    - Dst: check_unsafe_path
      Src: /src/git/apply.c:4142,1
    - Dst: path_is_beyond_symlink
      Src: /src/git/apply.c:4154,1
    - Dst: error
      Src: /src/git/apply.c:4155,1
    - Dst: _
      Src: /src/git/apply.c:4155,1
    - Dst: apply_data
      Src: /src/git/apply.c:4158,1
    - Dst: error
      Src: /src/git/apply.c:4159,1
    - Dst: _
      Src: /src/git/apply.c:4159,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4058
    functionDepth: 12
    functionLinenumber: 4058
    functionLinenumberEnd: 4162
    functionName: check_patch
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - check_to_create
    - path_is_beyond_symlink
    - check_unsafe_path
    - in_fn_table
    - strcmp
    - was_deleted
    - to_be_deleted
    - _
    - check_preimage
    - apply_data
    linkageType: ''
    returnType: int
    signature: int check_patch(struct apply_state *state, struct patch *patch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_symlink_changes
      Src: /src/git/apply.c:4168,1
    - Dst: prepare_fn_table
      Src: /src/git/apply.c:4169,1
    - Dst: say_patch_name
      Src: /src/git/apply.c:4173,1
    - Dst: _
      Src: /src/git/apply.c:4174,1
    - Dst: check_patch
      Src: /src/git/apply.c:4175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4164
    functionDepth: 13
    functionLinenumber: 4164
    functionLinenumberEnd: 4182
    functionName: check_patch_list
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - say_patch_name
    - prepare_symlink_changes
    - _
    - check_patch
    - prepare_fn_table
    linkageType: ''
    returnType: int
    signature: int check_patch_list(struct apply_state *state, struct patch *patch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_index_from
      Src: /src/git/apply.c:4187,1
    - Dst: repo_get_git_dir
      Src: /src/git/apply.c:4188,1
    - Dst: repo_read_index
      Src: /src/git/apply.c:4190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct apply_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4191
      start: 4184
    functionDepth: 1
    functionLinenumber: 4184
    functionLinenumberEnd: 4191
    functionName: read_apply_cache
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - repo_read_index
    - read_index_from
    - repo_get_git_dir
    linkageType: ''
    returnType: int
    signature: int read_apply_cache(struct apply_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_apply_cache
      Src: /src/git/apply.c:4199,1
    - Dst: index_name_pos
      Src: /src/git/apply.c:4201,1
    - Dst: strlen
      Src: /src/git/apply.c:4201,1
    - Dst: oidcpy
      Src: /src/git/apply.c:4204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - state
    - path
    - oid
    argTypes:
    - struct apply_state*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4206
      start: 4194
    functionDepth: 2
    functionLinenumber: 4194
    functionLinenumberEnd: 4206
    functionName: get_current_oid
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - strlen
    - read_apply_cache
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int get_current_oid(struct apply_state *state, const char *path,\n\t\t\t
      \  struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/apply.c:4229,1
    - Dst: starts_with
      Src: /src/git/apply.c:4230,1
    - Dst: get_oid_hex
      Src: /src/git/apply.c:4232,1
    - Dst: starts_with
      Src: /src/git/apply.c:4235,1
    - Dst: get_oid_hex
      Src: /src/git/apply.c:4239,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 2
    argNames:
    - p
    - oid
    argTypes:
    - struct patch*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4240
      start: 4208
    functionDepth: 1
    functionLinenumber: 4208
    functionLinenumberEnd: 4240
    functionName: preimage_oid_in_gitlink_patch
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - get_oid_hex
    - memchr
    - starts_with
    linkageType: ''
    returnType: int
    signature: int preimage_oid_in_gitlink_patch(struct patch *p, struct object_id
      *oid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INDEX_STATE_INIT
      Src: /src/git/apply.c:4246,1
    - Dst: S_ISGITLINK
      Src: /src/git/apply.c:4262,1
    - Dst: preimage_oid_in_gitlink_patch
      Src: /src/git/apply.c:4263,1
    - Dst: error
      Src: /src/git/apply.c:4266,1
    - Dst: _
      Src: /src/git/apply.c:4266,1
    - Dst: repo_get_oid_blob
      Src: /src/git/apply.c:4268,1
    - Dst: get_current_oid
      Src: /src/git/apply.c:4272,1
    - Dst: error
      Src: /src/git/apply.c:4273,1
    - Dst: _
      Src: /src/git/apply.c:4273,1
    - Dst: error
      Src: /src/git/apply.c:4276,1
    - Dst: _
      Src: /src/git/apply.c:4276,1
    - Dst: make_cache_entry
      Src: /src/git/apply.c:4279,1
    - Dst: error
      Src: /src/git/apply.c:4281,1
    - Dst: _
      Src: /src/git/apply.c:4281,1
    - Dst: add_index_entry
      Src: /src/git/apply.c:4283,1
    - Dst: discard_cache_entry
      Src: /src/git/apply.c:4284,1
    - Dst: error
      Src: /src/git/apply.c:4285,1
    - Dst: _
      Src: /src/git/apply.c:4285,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/apply.c:4290,1
    - Dst: write_locked_index
      Src: /src/git/apply.c:4291,1
    - Dst: discard_index
      Src: /src/git/apply.c:4292,1
    - Dst: error
      Src: /src/git/apply.c:4295,1
    - Dst: _
      Src: /src/git/apply.c:4295,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - state
    - list
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4299
      start: 4243
    functionDepth: 3
    functionLinenumber: 4243
    functionLinenumberEnd: 4299
    functionName: build_fake_ancestor
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - INDEX_STATE_INIT
    - error
    - hold_lock_file_for_update
    - preimage_oid_in_gitlink_patch
    - repo_get_oid_blob
    - S_ISGITLINK
    - get_current_oid
    - discard_cache_entry
    - write_locked_index
    - add_index_entry
    - _
    - make_cache_entry
    - discard_index
    linkageType: ''
    returnType: int
    signature: int build_fake_ancestor(struct apply_state *state, struct patch *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_stats
      Src: /src/git/apply.c:4309,1
    - Dst: print_stat_summary
      Src: /src/git/apply.c:4312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4301
    functionDepth: 1
    functionLinenumber: 4301
    functionLinenumberEnd: 4313
    functionName: stat_patch_list
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - show_stats
    - print_stat_summary
    linkageType: ''
    returnType: void
    signature: void stat_patch_list(struct apply_state *state, struct patch *patch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/apply.c:4322,1
    - Dst: printf
      Src: /src/git/apply.c:4324,1
    - Dst: write_name_quoted
      Src: /src/git/apply.c:4325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4315
    functionDepth: 1
    functionLinenumber: 4315
    functionLinenumberEnd: 4327
    functionName: numstat_patch_list
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - write_name_quoted
    - printf
    linkageType: ''
    returnType: void
    signature: "void numstat_patch_list(struct apply_state *state,\n\t\t\t       struct
      patch *patch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/apply.c:4332,1
    - Dst: printf
      Src: /src/git/apply.c:4334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - newdelete
    - mode
    - name
    argTypes:
    - char*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4335
      start: 4329
    functionDepth: 0
    functionLinenumber: 4329
    functionLinenumberEnd: 4335
    functionName: show_file_mode_name
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void show_file_mode_name(const char *newdelete, unsigned int mode,
      const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/apply.c:4341,1
    - Dst: printf
      Src: /src/git/apply.c:4344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - p
    - show_name
    argTypes:
    - struct patch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4347
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4347
    functionName: show_mode_change
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void show_mode_change(struct patch *p, int show_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/apply.c:4359,1
    - Dst: strchr
      Src: /src/git/apply.c:4360,1
    - Dst: memcmp
      Src: /src/git/apply.c:4364,1
    - Dst: printf
      Src: /src/git/apply.c:4373,1
    - Dst: printf
      Src: /src/git/apply.c:4377,1
    - Dst: show_mode_change
      Src: /src/git/apply.c:4379,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4380
      start: 4349
    functionDepth: 0
    functionLinenumber: 4349
    functionLinenumberEnd: 4380
    functionName: show_rename_copy
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - show_mode_change
    - printf
    - strchr
    - memcmp
    linkageType: ''
    returnType: void
    signature: void show_rename_copy(struct patch *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: show_file_mode_name
      Src: /src/git/apply.c:4388,1
    - Dst: show_file_mode_name
      Src: /src/git/apply.c:4390,1
    - Dst: show_rename_copy
      Src: /src/git/apply.c:4393,1
    - Dst: printf
      Src: /src/git/apply.c:4396,1
    - Dst: show_mode_change
      Src: /src/git/apply.c:4398,1
    - Dst: show_mode_change
      Src: /src/git/apply.c:4401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4382
    functionDepth: 0
    functionLinenumber: 4382
    functionLinenumberEnd: 4405
    functionName: summary_patch_list
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - show_file_mode_name
    - show_mode_change
    - printf
    - show_rename_copy
    linkageType: ''
    returnType: void
    signature: void summary_patch_list(struct patch *patch)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: quote_c_style
      Src: /src/git/apply.c:4414,1
    - Dst: strlen
      Src: /src/git/apply.c:4416,1
    - Dst: quote_c_style
      Src: /src/git/apply.c:4421,1
    - Dst: strlen
      Src: /src/git/apply.c:4423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4427
      start: 4407
    functionDepth: 1
    functionLinenumber: 4407
    functionLinenumberEnd: 4427
    functionName: patch_stats
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - quote_c_style
    - strlen
    linkageType: ''
    returnType: void
    signature: void patch_stats(struct apply_state *state, struct patch *patch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remove_file_from_index
      Src: /src/git/apply.c:4432,1
    - Dst: error
      Src: /src/git/apply.c:4433,1
    - Dst: _
      Src: /src/git/apply.c:4433,1
    - Dst: remove_or_warn
      Src: /src/git/apply.c:4436,1
    - Dst: remove_path
      Src: /src/git/apply.c:4437,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - state
    - patch
    - rmdir_empty
    argTypes:
    - struct apply_state*
    - struct patch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4441
      start: 4429
    functionDepth: 2
    functionLinenumber: 4429
    functionLinenumberEnd: 4441
    functionName: remove_file
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - remove_file_from_index
    - remove_path
    - _
    - remove_or_warn
    linkageType: ''
    returnType: int
    signature: int remove_file(struct apply_state *state, struct patch *patch, int
      rmdir_empty)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/apply.c:4451,1
    - Dst: make_empty_cache_entry
      Src: /src/git/apply.c:4453,1
    - Dst: memcpy
      Src: /src/git/apply.c:4454,1
    - Dst: create_ce_mode
      Src: /src/git/apply.c:4455,1
    - Dst: create_ce_flags
      Src: /src/git/apply.c:4456,1
    - Dst: set_object_name_for_intent_to_add_entry
      Src: /src/git/apply.c:4460,1
    - Dst: S_ISGITLINK
      Src: /src/git/apply.c:4461,1
    - Dst: skip_prefix
      Src: /src/git/apply.c:4464,1
    - Dst: get_oid_hex
      Src: /src/git/apply.c:4465,1
    - Dst: discard_cache_entry
      Src: /src/git/apply.c:4466,1
    - Dst: error
      Src: /src/git/apply.c:4467,1
    - Dst: _
      Src: /src/git/apply.c:4467,1
    - Dst: lstat
      Src: /src/git/apply.c:4471,1
    - Dst: discard_cache_entry
      Src: /src/git/apply.c:4472,1
    - Dst: error_errno
      Src: /src/git/apply.c:4473,1
    - Dst: _
      Src: /src/git/apply.c:4473,1
    - Dst: fill_stat_cache_info
      Src: /src/git/apply.c:4477,1
    - Dst: odb_write_object
      Src: /src/git/apply.c:4479,1
    - Dst: discard_cache_entry
      Src: /src/git/apply.c:4481,1
    - Dst: error
      Src: /src/git/apply.c:4482,1
    - Dst: _
      Src: /src/git/apply.c:4482,1
    - Dst: add_index_entry
      Src: /src/git/apply.c:4486,1
    - Dst: discard_cache_entry
      Src: /src/git/apply.c:4487,1
    - Dst: error
      Src: /src/git/apply.c:4488,1
    - Dst: _
      Src: /src/git/apply.c:4488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - state
    - path
    - mode
    - buf
    - size
    argTypes:
    - struct apply_state*
    - char*
    - unsigned
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4492
      start: 4443
    functionDepth: 1
    functionLinenumber: 4443
    functionLinenumberEnd: 4492
    functionName: add_index_file
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - odb_write_object
    - get_oid_hex
    - S_ISGITLINK
    - make_empty_cache_entry
    - memcpy
    - discard_cache_entry
    - add_index_entry
    - strlen
    - fill_stat_cache_info
    - set_object_name_for_intent_to_add_entry
    - create_ce_mode
    - lstat
    - skip_prefix
    - create_ce_flags
    - _
    linkageType: ''
    returnType: int
    signature: "int add_index_file(struct apply_state *state,\n\t\t\t  const char
      *path,\n\t\t\t  unsigned mode,\n\t\t\t  void *buf,\n\t\t\t  unsigned long size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/apply.c:4507,1
    - Dst: lstat
      Src: /src/git/apply.c:4509,1
    - Dst: S_ISDIR
      Src: /src/git/apply.c:4509,1
    - Dst: mkdir
      Src: /src/git/apply.c:4511,1
    - Dst: S_ISLNK
      Src: /src/git/apply.c:4514,1
    - Dst: symlink
      Src: /src/git/apply.c:4518,1
    - Dst: open
      Src: /src/git/apply.c:4520,1
    - Dst: convert_to_working_tree
      Src: /src/git/apply.c:4524,1
    - Dst: write_in_full
      Src: /src/git/apply.c:4529,1
    - Dst: error_errno
      Src: /src/git/apply.c:4531,1
    - Dst: _
      Src: /src/git/apply.c:4531,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:4532,1
    - Dst: close
      Src: /src/git/apply.c:4534,1
    - Dst: error_errno
      Src: /src/git/apply.c:4535,1
    - Dst: _
      Src: /src/git/apply.c:4535,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 5
    argNames:
    - state
    - path
    - mode
    - buf
    - size
    argTypes:
    - struct apply_state*
    - char*
    - unsigned int
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4538
      start: 4500
    functionDepth: 1
    functionLinenumber: 4500
    functionLinenumberEnd: 4538
    functionName: try_create_file
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error_errno
    - S_ISDIR
    - strbuf_release
    - open
    - S_ISLNK
    - convert_to_working_tree
    - S_ISGITLINK
    - mkdir
    - close
    - _
    - write_in_full
    - lstat
    - symlink
    linkageType: ''
    returnType: int
    signature: "int try_create_file(struct apply_state *state, const char *path,\n\t\t\t
      \  unsigned int mode, const char *buf,\n\t\t\t   unsigned long size)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: path_is_beyond_symlink
      Src: /src/git/apply.c:4585,1
    - Dst: error
      Src: /src/git/apply.c:4586,1
    - Dst: _
      Src: /src/git/apply.c:4586,1
    - Dst: try_create_file
      Src: /src/git/apply.c:4588,1
    - Dst: safe_create_leading_directories_no_share
      Src: /src/git/apply.c:4595,1
    - Dst: try_create_file
      Src: /src/git/apply.c:4597,1
    - Dst: lstat
      Src: /src/git/apply.c:4609,1
    - Dst: S_ISDIR
      Src: /src/git/apply.c:4609,1
    - Dst: rmdir
      Src: /src/git/apply.c:4609,1
    - Dst: getpid
      Src: /src/git/apply.c:4614,1
    - Dst: mkpathdup
      Src: /src/git/apply.c:4617,1
    - Dst: try_create_file
      Src: /src/git/apply.c:4618,1
    - Dst: rename
      Src: /src/git/apply.c:4622,1
    - Dst: unlink_or_warn
      Src: /src/git/apply.c:4624,1
    - Dst: FREE_AND_NULL
      Src: /src/git/apply.c:4630,1
    - Dst: error_errno
      Src: /src/git/apply.c:4633,1
    - Dst: _
      Src: /src/git/apply.c:4633,1
    - Dst: free
      Src: /src/git/apply.c:4635,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 5
    argNames:
    - state
    - path
    - mode
    - buf
    - size
    argTypes:
    - struct apply_state*
    - char*
    - unsigned
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4637
      start: 4549
    functionDepth: 3
    functionLinenumber: 4549
    functionLinenumberEnd: 4637
    functionName: create_one_file
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - S_ISDIR
    - unlink_or_warn
    - path_is_beyond_symlink
    - rename
    - free
    - try_create_file
    - FREE_AND_NULL
    - _
    - rmdir
    - getpid
    - lstat
    - mkpathdup
    - safe_create_leading_directories_no_share
    linkageType: ''
    returnType: int
    signature: "int create_one_file(struct apply_state *state,\n\t\t\t   char *path,\n\t\t\t
      \  unsigned mode,\n\t\t\t   const char *buf,\n\t\t\t   unsigned long size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/apply.c:4648,1
    - Dst: remove_file_from_index
      Src: /src/git/apply.c:4651,1
    - Dst: is_null_oid
      Src: /src/git/apply.c:4653,1
    - Dst: make_empty_cache_entry
      Src: /src/git/apply.c:4655,1
    - Dst: memcpy
      Src: /src/git/apply.c:4656,1
    - Dst: create_ce_mode
      Src: /src/git/apply.c:4657,1
    - Dst: create_ce_flags
      Src: /src/git/apply.c:4658,1
    - Dst: oidcpy
      Src: /src/git/apply.c:4660,1
    - Dst: add_index_entry
      Src: /src/git/apply.c:4661,1
    - Dst: discard_cache_entry
      Src: /src/git/apply.c:4662,1
    - Dst: error
      Src: /src/git/apply.c:4663,1
    - Dst: _
      Src: /src/git/apply.c:4663,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4669
      start: 4639
    functionDepth: 1
    functionLinenumber: 4639
    functionLinenumberEnd: 4669
    functionName: add_conflicted_stages_file
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - oidcpy
    - remove_file_from_index
    - make_empty_cache_entry
    - memcpy
    - is_null_oid
    - add_index_entry
    - strlen
    - discard_cache_entry
    - create_ce_mode
    - create_ce_flags
    - _
    linkageType: ''
    returnType: int
    signature: "int add_conflicted_stages_file(struct apply_state *state,\n\t\t\t\t
      \      struct patch *patch)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_one_file
      Src: /src/git/apply.c:4680,1
    - Dst: add_conflicted_stages_file
      Src: /src/git/apply.c:4684,1
    - Dst: add_index_file
      Src: /src/git/apply.c:4686,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4688
      start: 4671
    functionDepth: 4
    functionLinenumber: 4671
    functionLinenumberEnd: 4688
    functionName: create_file
    functionSourceFile: /src/git/apply.c
    functionUses: 1
    functionsReached:
    - add_index_file
    - add_conflicted_stages_file
    - create_one_file
    linkageType: ''
    returnType: int
    signature: int create_file(struct apply_state *state, struct patch *patch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: remove_file
      Src: /src/git/apply.c:4697,1
    - Dst: create_file
      Src: /src/git/apply.c:4702,1
    - Dst: remove_file
      Src: /src/git/apply.c:4710,1
    - Dst: create_file
      Src: /src/git/apply.c:4712,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - state
    - patch
    - phase
    argTypes:
    - struct apply_state*
    - struct patch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4714
      start: 4691
    functionDepth: 3
    functionLinenumber: 4691
    functionLinenumberEnd: 4714
    functionName: write_out_one_result
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - remove_file
    - create_file
    linkageType: ''
    returnType: int
    signature: "int write_out_one_result(struct apply_state *state,\n\t\t\t\tstruct
      patch *patch,\n\t\t\t\tint phase)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: say_patch_name
      Src: /src/git/apply.c:4732,1
    - Dst: _
      Src: /src/git/apply.c:4733,1
    - Dst: die
      Src: /src/git/apply.c:4741,1
    - Dst: _
      Src: /src/git/apply.c:4741,1
    - Dst: strbuf_addf
      Src: /src/git/apply.c:4744,1
    - Dst: Q_
      Src: /src/git/apply.c:4744,1
    - Dst: say_patch_name
      Src: /src/git/apply.c:4749,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:4750,1
    - Dst: xstrfmt
      Src: /src/git/apply.c:4752,1
    - Dst: open
      Src: /src/git/apply.c:4754,1
    - Dst: error_errno
      Src: /src/git/apply.c:4757,1
    - Dst: _
      Src: /src/git/apply.c:4757,1
    - Dst: unlink
      Src: /src/git/apply.c:4760,1
    - Dst: error_errno
      Src: /src/git/apply.c:4761,1
    - Dst: _
      Src: /src/git/apply.c:4761,1
    - Dst: open
      Src: /src/git/apply.c:4764,1
    - Dst: error_errno
      Src: /src/git/apply.c:4766,1
    - Dst: _
      Src: /src/git/apply.c:4766,1
    - Dst: fdopen
      Src: /src/git/apply.c:4770,1
    - Dst: error_errno
      Src: /src/git/apply.c:4772,1
    - Dst: _
      Src: /src/git/apply.c:4772,1
    - Dst: close
      Src: /src/git/apply.c:4773,1
    - Dst: fprintf
      Src: /src/git/apply.c:4782,1
    - Dst: fprintf_ln
      Src: /src/git/apply.c:4789,1
    - Dst: _
      Src: /src/git/apply.c:4789,1
    - Dst: fprintf_ln
      Src: /src/git/apply.c:4793,1
    - Dst: _
      Src: /src/git/apply.c:4793,1
    - Dst: fprintf
      Src: /src/git/apply.c:4794,1
    - Dst: fputc
      Src: /src/git/apply.c:4796,1
    - Dst: fclose
      Src: /src/git/apply.c:4798,1
    - Dst: free
      Src: /src/git/apply.c:4800,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 2
    argNames:
    - state
    - patch
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4716
    functionDepth: 2
    functionLinenumber: 4716
    functionLinenumberEnd: 4802
    functionName: write_out_one_reject
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - say_patch_name
    - error_errno
    - strbuf_release
    - fclose
    - die
    - open
    - fprintf_ln
    - xstrfmt
    - strbuf_addf
    - fdopen
    - free
    - close
    - _
    - Q_
    - fputc
    - fprintf
    - unlink
    linkageType: ''
    returnType: int
    signature: int write_out_one_reject(struct apply_state *state, struct patch *patch)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: write_out_one_result
      Src: /src/git/apply.c:4823,1
    - Dst: string_list_clear
      Src: /src/git/apply.c:4824,1
    - Dst: write_out_one_reject
      Src: /src/git/apply.c:4828,1
    - Dst: string_list_append
      Src: /src/git/apply.c:4831,1
    - Dst: string_list_sort
      Src: /src/git/apply.c:4843,1
    - Dst: for_each_string_list_item
      Src: /src/git/apply.c:4845,1
    - Dst: fprintf
      Src: /src/git/apply.c:4846,1
    - Dst: string_list_clear
      Src: /src/git/apply.c:4848,1
    - Dst: repo_rerere
      Src: /src/git/apply.c:4855,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - state
    - list
    argTypes:
    - struct apply_state*
    - struct patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4859
      start: 4810
    functionDepth: 4
    functionLinenumber: 4810
    functionLinenumberEnd: 4859
    functionName: write_out_results
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - for_each_string_list_item
    - write_out_one_result
    - write_out_one_reject
    - string_list_sort
    - repo_rerere
    - string_list_append
    - fprintf
    linkageType: ''
    returnType: int
    signature: int write_out_results(struct apply_state *state, struct patch *list)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: read_patch_file
      Src: /src/git/apply.c:4884,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/apply.c:4893,1
    - Dst: parse_chunk
      Src: /src/git/apply.c:4896,1
    - Dst: free_patch
      Src: /src/git/apply.c:4898,1
    - Dst: reverse_patches
      Src: /src/git/apply.c:4906,1
    - Dst: use_patch
      Src: /src/git/apply.c:4907,1
    - Dst: patch_stats
      Src: /src/git/apply.c:4908,1
    - Dst: ends_with_path_components
      Src: /src/git/apply.c:4918,1
    - Dst: ends_with_path_components
      Src: /src/git/apply.c:4921,1
    - Dst: say_patch_name
      Src: /src/git/apply.c:4927,1
    - Dst: _
      Src: /src/git/apply.c:4927,1
    - Dst: free_patch
      Src: /src/git/apply.c:4928,1
    - Dst: error
      Src: /src/git/apply.c:4936,1
    - Dst: _
      Src: /src/git/apply.c:4936,1
    - Dst: is_lock_file_locked
      Src: /src/git/apply.c:4946,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/apply.c:4948,1
    - Dst: repo_hold_locked_index
      Src: /src/git/apply.c:4952,1
    - Dst: read_apply_cache
      Src: /src/git/apply.c:4956,1
    - Dst: error
      Src: /src/git/apply.c:4957,1
    - Dst: _
      Src: /src/git/apply.c:4957,1
    - Dst: check_patch_list
      Src: /src/git/apply.c:4963,1
    - Dst: write_out_results
      Src: /src/git/apply.c:4975,1
    - Dst: build_fake_ancestor
      Src: /src/git/apply.c:4988,1
    - Dst: stat_patch_list
      Src: /src/git/apply.c:4994,1
    - Dst: numstat_patch_list
      Src: /src/git/apply.c:4997,1
    - Dst: summary_patch_list
      Src: /src/git/apply.c:5000,1
    - Dst: reset_parsed_attributes
      Src: /src/git/apply.c:5003,1
    - Dst: free_patch_list
      Src: /src/git/apply.c:5005,1
    - Dst: strbuf_release
      Src: /src/git/apply.c:5006,1
    - Dst: string_list_clear
      Src: /src/git/apply.c:5007,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 109
    argCount: 4
    argNames:
    - state
    - fd
    - filename
    - options
    argTypes:
    - struct apply_state*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5009
      start: 4870
    functionDepth: 14
    functionLinenumber: 4870
    functionLinenumberEnd: 5009
    functionName: apply_patch
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - hold_lock_file_for_update
    - repo_hold_locked_index
    - use_patch
    - read_apply_cache
    - CALLOC_ARRAY
    - build_fake_ancestor
    - error
    - reset_parsed_attributes
    - reverse_patches
    - strbuf_release
    - free_patch
    - ends_with_path_components
    - numstat_patch_list
    - patch_stats
    - summary_patch_list
    - say_patch_name
    - string_list_clear
    - read_patch_file
    - _
    - is_lock_file_locked
    - stat_patch_list
    - check_patch_list
    - free_patch_list
    - parse_chunk
    - write_out_results
    linkageType: ''
    returnType: int
    signature: "int apply_patch(struct apply_state *state,\n\t\t       int fd,\n\t\t
      \      const char *filename,\n\t\t       int options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/apply.c:5016,1
    - Dst: add_name_limit
      Src: /src/git/apply.c:5018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5020
      start: 5011
    functionDepth: 1
    functionLinenumber: 5011
    functionLinenumberEnd: 5020
    functionName: apply_option_parse_exclude
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - add_name_limit
    linkageType: ''
    returnType: int
    signature: "int apply_option_parse_exclude(const struct option *opt,\n\t\t\t\t
      \     const char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/apply.c:5027,1
    - Dst: add_name_limit
      Src: /src/git/apply.c:5029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5032
      start: 5022
    functionDepth: 1
    functionLinenumber: 5022
    functionLinenumberEnd: 5032
    functionName: apply_option_parse_include
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - add_name_limit
    linkageType: ''
    returnType: int
    signature: "int apply_option_parse_include(const struct option *opt,\n\t\t\t\t
      \     const char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/apply.c:5040,1
    - Dst: strtol_i
      Src: /src/git/apply.c:5042,1
    - Dst: die
      Src: /src/git/apply.c:5043,1
    - Dst: _
      Src: /src/git/apply.c:5043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5046
      start: 5034
    functionDepth: 1
    functionLinenumber: 5034
    functionLinenumberEnd: 5046
    functionName: apply_option_parse_p
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - strtol_i
    - _
    linkageType: ''
    returnType: int
    signature: "int apply_option_parse_p(const struct option *opt,\n\t\t\t\tconst
      char *arg,\n\t\t\t\tint unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/apply.c:5053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5060
      start: 5048
    functionDepth: 1
    functionLinenumber: 5048
    functionLinenumberEnd: 5060
    functionName: apply_option_parse_space_change
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int apply_option_parse_space_change(const struct option *opt,\n\t\t\t\t\t
      \  const char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/apply.c:5067,1
    - Dst: parse_whitespace_option
      Src: /src/git/apply.c:5070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5073
      start: 5062
    functionDepth: 1
    functionLinenumber: 5062
    functionLinenumberEnd: 5073
    functionName: apply_option_parse_whitespace
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - parse_whitespace_option
    linkageType: ''
    returnType: int
    signature: "int apply_option_parse_whitespace(const struct option *opt,\n\t\t\t\t\t
      const char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/apply.c:5080,1
    - Dst: strbuf_reset
      Src: /src/git/apply.c:5082,1
    - Dst: strbuf_addstr
      Src: /src/git/apply.c:5083,1
    - Dst: strbuf_normalize_path
      Src: /src/git/apply.c:5085,1
    - Dst: error
      Src: /src/git/apply.c:5086,1
    - Dst: _
      Src: /src/git/apply.c:5086,1
    - Dst: strbuf_complete
      Src: /src/git/apply.c:5088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5090
      start: 5075
    functionDepth: 1
    functionLinenumber: 5075
    functionLinenumberEnd: 5090
    functionName: apply_option_parse_directory
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_reset
    - strbuf_complete
    - strbuf_addstr
    - strbuf_normalize_path
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: "int apply_option_parse_directory(const struct option *opt,\n\t\t\t\t\tconst
      char *arg, int unset)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/apply.c:5107,1
    - Dst: apply_patch
      Src: /src/git/apply.c:5108,1
    - Dst: prefix_filename
      Src: /src/git/apply.c:5115,1
    - Dst: open
      Src: /src/git/apply.c:5117,1
    - Dst: error
      Src: /src/git/apply.c:5119,1
    - Dst: _
      Src: /src/git/apply.c:5119,1
    - Dst: strerror
      Src: /src/git/apply.c:5119,1
    - Dst: free
      Src: /src/git/apply.c:5121,1
    - Dst: set_default_whitespace_mode
      Src: /src/git/apply.c:5125,1
    - Dst: apply_patch
      Src: /src/git/apply.c:5126,1
    - Dst: close
      Src: /src/git/apply.c:5127,1
    - Dst: free
      Src: /src/git/apply.c:5128,1
    - Dst: set_default_whitespace_mode
      Src: /src/git/apply.c:5133,1
    - Dst: apply_patch
      Src: /src/git/apply.c:5135,1
    - Dst: warning
      Src: /src/git/apply.c:5146,1
    - Dst: Q_
      Src: /src/git/apply.c:5146,1
    - Dst: error
      Src: /src/git/apply.c:5152,1
    - Dst: Q_
      Src: /src/git/apply.c:5152,1
    - Dst: warning
      Src: /src/git/apply.c:5160,1
    - Dst: Q_
      Src: /src/git/apply.c:5160,1
    - Dst: warning
      Src: /src/git/apply.c:5167,1
    - Dst: Q_
      Src: /src/git/apply.c:5167,1
    - Dst: write_locked_index
      Src: /src/git/apply.c:5174,1
    - Dst: error
      Src: /src/git/apply.c:5176,1
    - Dst: _
      Src: /src/git/apply.c:5176,1
    - Dst: rollback_lock_file
      Src: /src/git/apply.c:5185,1
    - Dst: set_error_routine
      Src: /src/git/apply.c:5188,1
    - Dst: set_warn_routine
      Src: /src/git/apply.c:5189,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 4
    argNames:
    - state
    - argc
    - argv
    - options
    argTypes:
    - struct apply_state*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5195
      start: 5092
    functionDepth: 1
    functionLinenumber: 5092
    functionLinenumberEnd: 5195
    functionName: apply_all_patches
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - error
    - open
    - prefix_filename
    - set_default_whitespace_mode
    - set_warn_routine
    - Q_
    - strerror
    - write_locked_index
    - set_error_routine
    - rollback_lock_file
    - close
    - warning
    - strcmp
    - free
    - apply_patch
    - _
    linkageType: ''
    returnType: int
    signature: "int apply_all_patches(struct apply_state *state,\n\t\t      int argc,\n\t\t
      \     const char **argv,\n\t\t      int options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/apply.c:5203,1
    - Dst: N_
      Src: /src/git/apply.c:5203,1
    - Dst: N_
      Src: /src/git/apply.c:5204,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/apply.c:5206,1
    - Dst: N_
      Src: /src/git/apply.c:5206,1
    - Dst: N_
      Src: /src/git/apply.c:5207,1
    - Dst: OPT_CALLBACK
      Src: /src/git/apply.c:5209,1
    - Dst: N_
      Src: /src/git/apply.c:5209,1
    - Dst: N_
      Src: /src/git/apply.c:5210,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5212,1
    - Dst: N_
      Src: /src/git/apply.c:5213,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5214,1
    - Dst: N_
      Src: /src/git/apply.c:5215,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/apply.c:5216,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/apply.c:5217,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5218,1
    - Dst: N_
      Src: /src/git/apply.c:5219,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5220,1
    - Dst: N_
      Src: /src/git/apply.c:5221,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5222,1
    - Dst: N_
      Src: /src/git/apply.c:5223,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5224,1
    - Dst: N_
      Src: /src/git/apply.c:5225,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5226,1
    - Dst: N_
      Src: /src/git/apply.c:5227,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5228,1
    - Dst: N_
      Src: /src/git/apply.c:5229,1
    - Dst: OPT_BOOL_F
      Src: /src/git/apply.c:5230,1
    - Dst: N_
      Src: /src/git/apply.c:5231,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5233,1
    - Dst: N_
      Src: /src/git/apply.c:5234,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5235,1
    - Dst: N_
      Src: /src/git/apply.c:5236,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/apply.c:5237,1
    - Dst: N_
      Src: /src/git/apply.c:5238,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/apply.c:5240,1
    - Dst: N_
      Src: /src/git/apply.c:5241,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/apply.c:5243,1
    - Dst: N_
      Src: /src/git/apply.c:5244,1
    - Dst: OPT_FILENAME
      Src: /src/git/apply.c:5246,1
    - Dst: N_
      Src: /src/git/apply.c:5247,1
    - Dst: OPT_SET_INT
      Src: /src/git/apply.c:5249,1
    - Dst: N_
      Src: /src/git/apply.c:5250,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/apply.c:5251,1
    - Dst: N_
      Src: /src/git/apply.c:5252,1
    - Dst: OPT_CALLBACK
      Src: /src/git/apply.c:5253,1
    - Dst: N_
      Src: /src/git/apply.c:5253,1
    - Dst: N_
      Src: /src/git/apply.c:5254,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/apply.c:5256,1
    - Dst: N_
      Src: /src/git/apply.c:5257,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/apply.c:5259,1
    - Dst: N_
      Src: /src/git/apply.c:5260,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5262,1
    - Dst: N_
      Src: /src/git/apply.c:5263,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5264,1
    - Dst: N_
      Src: /src/git/apply.c:5265,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5266,1
    - Dst: N_
      Src: /src/git/apply.c:5267,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5268,1
    - Dst: N_
      Src: /src/git/apply.c:5269,1
    - Dst: OPT__VERBOSITY
      Src: /src/git/apply.c:5270,1
    - Dst: OPT_BIT
      Src: /src/git/apply.c:5271,1
    - Dst: N_
      Src: /src/git/apply.c:5272,1
    - Dst: OPT_BIT
      Src: /src/git/apply.c:5274,1
    - Dst: N_
      Src: /src/git/apply.c:5275,1
    - Dst: OPT_CALLBACK
      Src: /src/git/apply.c:5277,1
    - Dst: N_
      Src: /src/git/apply.c:5277,1
    - Dst: N_
      Src: /src/git/apply.c:5278,1
    - Dst: OPT_BOOL
      Src: /src/git/apply.c:5280,1
    - Dst: N_
      Src: /src/git/apply.c:5281,1
    - Dst: OPT_END
      Src: /src/git/apply.c:5282,1
    - Dst: parse_options
      Src: /src/git/apply.c:5285,1
    - Dst: die
      Src: /src/git/apply.c:5288,1
    - Dst: _
      Src: /src/git/apply.c:5288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - argc
    - argv
    - state
    - force_apply
    - options
    - apply_usage
    argTypes:
    - int
    - char**
    - struct apply_state*
    - int*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5291
      start: 5197
    functionDepth: 1
    functionLinenumber: 5197
    functionLinenumberEnd: 5291
    functionName: apply_parse_options
    functionSourceFile: /src/git/apply.c
    functionUses: 0
    functionsReached:
    - OPT_FILENAME
    - OPT_END
    - OPT_BOOL_F
    - parse_options
    - die
    - OPT_SET_INT
    - OPT_SET_INT_F
    - OPT_UNSIGNED
    - OPT_CALLBACK_F
    - OPT_BOOL
    - OPT_CALLBACK
    - OPT_BIT
    - OPT_NOOP_NOARG
    - _
    - N_
    - OPT__VERBOSITY
    linkageType: ''
    returnType: int
    signature: "int apply_parse_options(int argc, const char **argv,\n\t\t\tstruct
      apply_state *state,\n\t\t\tint *force_apply, int *options,\n\t\t\tconst char
      * const *apply_usage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: get_max_object_index
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_max_object_index(const struct repository *repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - repo
    - idx
    argTypes:
    - struct repository*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: get_indexed_object
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object
    signature: "struct object *get_indexed_object(const struct repository *repo,\n\t\t\t\t
      \      unsigned int idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/object.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: type_name
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *type_name(unsigned int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/object.c:49,1
    - Dst: ARRAY_SIZE
      Src: /src/git/object.c:51,1
    - Dst: xstrncmpz
      Src: /src/git/object.c:52,1
    - Dst: die
      Src: /src/git/object.c:58,1
    - Dst: _
      Src: /src/git/object.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - str
    - len
    - gentle
    argTypes:
    - char*
    - ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: type_from_string_gently
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    - ARRAY_SIZE
    - die
    - strlen
    - _
    linkageType: ''
    returnType: int
    signature: int type_from_string_gently(const char *str, ssize_t len, int gentle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidhash
      Src: /src/git/object.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid
    - n
    argTypes:
    - struct object_id*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: hash_obj
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - oidhash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash_obj(const struct object_id *oid, unsigned int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_obj
      Src: /src/git/object.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - obj
    - hash
    - size
    argTypes:
    - struct object*
    - struct object**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: insert_obj_hash
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - hash_obj
    linkageType: ''
    returnType: void
    signature: void insert_obj_hash(struct object *obj, struct object **hash, unsigned
      int size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hash_obj
      Src: /src/git/object.c:100,1
    - Dst: oideq
      Src: /src/git/object.c:102,1
    - Dst: SWAP
      Src: /src/git/object.c:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 118
    functionName: lookup_object
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - hash_obj
    - SWAP
    - oideq
    linkageType: ''
    returnType: struct object
    signature: struct object *lookup_object(struct repository *r, const struct object_id
      *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/object.c:135,1
    - Dst: insert_obj_hash
      Src: /src/git/object.c:141,1
    - Dst: free
      Src: /src/git/object.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: grow_object_hash
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - free
    - insert_obj_hash
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void grow_object_hash(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/object.c:154,1
    - Dst: grow_object_hash
      Src: /src/git/object.c:157,1
    - Dst: insert_obj_hash
      Src: /src/git/object.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - r
    - oid
    - o
    argTypes:
    - struct repository*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 163
    functionName: create_object
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - insert_obj_hash
    - grow_object_hash
    - oidcpy
    linkageType: ''
    returnType: void
    signature: void *create_object(struct repository *r, const struct object_id *oid,
      void *o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_commit_node
      Src: /src/git/object.c:171,1
    - Dst: error
      Src: /src/git/object.c:178,1
    - Dst: _
      Src: /src/git/object.c:178,1
    - Dst: oid_to_hex
      Src: /src/git/object.c:179,1
    - Dst: type_name
      Src: /src/git/object.c:180,1
    - Dst: type_name
      Src: /src/git/object.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - obj
    - type
    - quiet
    argTypes:
    - struct object*
    - enum object_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: object_as_type
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - init_commit_node
    - _
    - type_name
    linkageType: ''
    returnType: void
    signature: void *object_as_type(struct object *obj, enum object_type type, int
      quiet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/object.c:187,1
    - Dst: create_object
      Src: /src/git/object.c:189,1
    - Dst: alloc_object_node
      Src: /src/git/object.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: lookup_unknown_object
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - lookup_object
    - create_object
    - alloc_object_node
    linkageType: ''
    returnType: struct object
    signature: struct object *lookup_unknown_object(struct repository *r, const struct
      object_id *oid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit
      Src: /src/git/object.c:199,1
    - Dst: lookup_tree
      Src: /src/git/object.c:201,1
    - Dst: lookup_tag
      Src: /src/git/object.c:203,1
    - Dst: lookup_blob
      Src: /src/git/object.c:205,1
    - Dst: BUG
      Src: /src/git/object.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - r
    - oid
    - type
    argTypes:
    - struct repository*
    - struct object_id*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 209
    functionName: lookup_object_by_type
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - lookup_tag
    - lookup_commit
    - lookup_blob
    - lookup_tree
    - BUG
    linkageType: ''
    returnType: struct object
    signature: "struct object *lookup_object_by_type(struct repository *r,\n\t\t\t
      \   const struct object_id *oid,\n\t\t\t    enum object_type type)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lookup_unknown_object
      Src: /src/git/object.c:217,1
    - Dst: odb_read_object_info
      Src: /src/git/object.c:220,1
    - Dst: object_as_type
      Src: /src/git/object.c:221,1
    - Dst: parse_object
      Src: /src/git/object.c:231,1
    - Dst: odb_read_object_info
      Src: /src/git/object.c:236,1
    - Dst: object_as_type
      Src: /src/git/object.c:237,1
    - Dst: oidcpy
      Src: /src/git/object.c:247,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 5
    argNames:
    - r
    - name
    - oid
    - flags
    - typep
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    - unsigned
    - enum object_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 250
    functionName: peel_object_ext
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - object_as_type
    - oidcpy
    - parse_object
    - odb_read_object_info
    - lookup_unknown_object
    linkageType: ''
    returnType: enum peel_status
    signature: "enum peel_status peel_object_ext(struct repository *r,\n\t\t\t\t const
      struct object_id *name,\n\t\t\t\t struct object_id *oid,\n\t\t\t\t unsigned
      flags,\n\t\t\t\t enum object_type *typep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peel_object_ext
      Src: /src/git/object.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - name
    - oid
    - flags
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 5
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: peel_object
    functionSourceFile: /src/git/object.c
    functionUses: 2
    functionsReached:
    - peel_object_ext
    linkageType: ''
    returnType: enum peel_status
    signature: "enum peel_status peel_object(struct repository *r,\n\t\t\t     const
      struct object_id *name,\n\t\t\t     struct object_id *oid,\n\t\t\t     unsigned
      flags)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: lookup_blob
      Src: /src/git/object.c:268,1
    - Dst: parse_blob_buffer
      Src: /src/git/object.c:270,1
    - Dst: lookup_tree
      Src: /src/git/object.c:274,1
    - Dst: parse_tree_buffer
      Src: /src/git/object.c:280,1
    - Dst: lookup_commit
      Src: /src/git/object.c:286,1
    - Dst: parse_commit_buffer
      Src: /src/git/object.c:288,1
    - Dst: get_cached_commit_buffer
      Src: /src/git/object.c:291,1
    - Dst: set_commit_buffer
      Src: /src/git/object.c:292,1
    - Dst: lookup_tag
      Src: /src/git/object.c:298,1
    - Dst: parse_tag_buffer
      Src: /src/git/object.c:300,1
    - Dst: warning
      Src: /src/git/object.c:305,1
    - Dst: _
      Src: /src/git/object.c:305,1
    - Dst: oid_to_hex
      Src: /src/git/object.c:305,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 6
    argNames:
    - r
    - oid
    - type
    - size
    - buffer
    - eaten_p
    argTypes:
    - struct repository*
    - struct object_id*
    - enum object_type
    - unsigned long
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 309
    functionName: parse_object_buffer
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - lookup_tag
    - parse_blob_buffer
    - _
    - set_commit_buffer
    - lookup_commit
    - parse_tag_buffer
    - lookup_blob
    - parse_commit_buffer
    - warning
    - lookup_tree
    - parse_tree_buffer
    - get_cached_commit_buffer
    linkageType: ''
    returnType: struct object
    signature: struct object *parse_object_buffer(struct repository *r, const struct
      object_id *oid, enum object_type type, unsigned long size, void *buffer, int
      *eaten_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/object.c:315,1
    - Dst: die
      Src: /src/git/object.c:319,1
    - Dst: _
      Src: /src/git/object.c:319,1
    - Dst: oid_to_hex
      Src: /src/git/object.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - repo
    - oid
    - name
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: parse_object_or_die
    functionSourceFile: /src/git/object.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - die
    - parse_object
    - _
    linkageType: ''
    returnType: struct object
    signature: "struct object *parse_object_or_die(struct repository *repo,\n\t\t\t\t
      \  const struct object_id *oid,\n\t\t\t\t   const char *name)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lookup_replace_object
      Src: /src/git/object.c:331,1
    - Dst: lookup_object
      Src: /src/git/object.c:335,1
    - Dst: lookup_commit_in_graph
      Src: /src/git/object.c:340,1
    - Dst: odb_read_object_info
      Src: /src/git/object.c:346,1
    - Dst: odb_read_stream_open
      Src: /src/git/object.c:348,1
    - Dst: error
      Src: /src/git/object.c:351,1
    - Dst: _
      Src: /src/git/object.c:351,1
    - Dst: oid_to_hex
      Src: /src/git/object.c:351,1
    - Dst: stream_object_signature
      Src: /src/git/object.c:355,1
    - Dst: error
      Src: /src/git/object.c:356,1
    - Dst: _
      Src: /src/git/object.c:356,1
    - Dst: oid_to_hex
      Src: /src/git/object.c:356,1
    - Dst: odb_read_stream_close
      Src: /src/git/object.c:357,1
    - Dst: odb_read_stream_close
      Src: /src/git/object.c:361,1
    - Dst: parse_blob_buffer
      Src: /src/git/object.c:363,1
    - Dst: lookup_blob
      Src: /src/git/object.c:363,1
    - Dst: lookup_object
      Src: /src/git/object.c:364,1
    - Dst: odb_read_object_info
      Src: /src/git/object.c:374,1
    - Dst: lookup_tree
      Src: /src/git/object.c:375,1
    - Dst: odb_read_object
      Src: /src/git/object.c:378,1
    - Dst: check_object_signature
      Src: /src/git/object.c:381,1
    - Dst: free
      Src: /src/git/object.c:382,1
    - Dst: error
      Src: /src/git/object.c:383,1
    - Dst: _
      Src: /src/git/object.c:383,1
    - Dst: oid_to_hex
      Src: /src/git/object.c:383,1
    - Dst: parse_object_buffer
      Src: /src/git/object.c:387,1
    - Dst: free
      Src: /src/git/object.c:390,1
    - Dst: free_tree_buffer
      Src: /src/git/object.c:392,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 42
    argCount: 3
    argNames:
    - r
    - oid
    - flags
    argTypes:
    - struct repository*
    - struct object_id*
    - enum parse_object_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 396
    functionName: parse_object_with_flags
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - error
    - odb_read_stream_close
    - lookup_replace_object
    - odb_read_stream_open
    - oid_to_hex
    - odb_read_object
    - parse_blob_buffer
    - free
    - free_tree_buffer
    - stream_object_signature
    - odb_read_object_info
    - lookup_object
    - lookup_blob
    - _
    - check_object_signature
    - lookup_commit_in_graph
    - lookup_tree
    - parse_object_buffer
    linkageType: ''
    returnType: struct object
    signature: "struct object *parse_object_with_flags(struct repository *r,\n\t\t\t\t
      \      const struct object_id *oid,\n\t\t\t\t       enum parse_object_flags
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_object_with_flags
      Src: /src/git/object.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: parse_object
    functionSourceFile: /src/git/object.c
    functionUses: 4
    functionsReached:
    - parse_object_with_flags
    linkageType: ''
    returnType: struct object
    signature: struct object *parse_object(struct repository *r, const struct object_id
      *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/object.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - item
    - list_p
    argTypes:
    - struct object*
    - struct object_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 411
    functionName: object_list_insert
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: struct object_list
    signature: "struct object_list *object_list_insert(struct object *item,\n\t\t\t\t
      \      struct object_list **list_p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - list
    - obj
    argTypes:
    - struct object_list*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 421
    functionName: object_list_contains
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int object_list_contains(struct object_list *list, struct object *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/object.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct object_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: object_list_free
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void object_list_free(struct object_list **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/object.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: object_array_init
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void object_array_init(struct object_array *array)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC_ARRAY
      Src: /src/git/object.c:455,1
    - Dst: xstrdup
      Src: /src/git/object.c:467,1
    - Dst: xstrdup
      Src: /src/git/object.c:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - obj
    - name
    - array
    - mode
    - path
    argTypes:
    - struct object*
    - char*
    - struct object_array*
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 474
    functionName: add_object_array_with_path
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - REALLOC_ARRAY
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void add_object_array_with_path(struct object *obj, const char *name,\n\t\t\t\tstruct
      object_array *array,\n\t\t\t\tunsigned mode, const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_object_array_with_path
      Src: /src/git/object.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - array
    argTypes:
    - struct object*
    - char*
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: add_object_array
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - add_object_array_with_path
    linkageType: ''
    returnType: void
    signature: void add_object_array(struct object *obj, const char *name, struct
      object_array *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/object.c:488,1
    - Dst: free
      Src: /src/git/object.c:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ent
    argTypes:
    - struct object_array_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: object_array_release_entry
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void object_array_release_entry(struct object_array_entry *ent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: object_array_release_entry
      Src: /src/git/object.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 503
    functionName: object_array_pop
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - object_array_release_entry
    linkageType: ''
    returnType: struct object
    signature: struct object *object_array_pop(struct object_array *array)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: want
      Src: /src/git/object.c:512,1
    - Dst: object_array_release_entry
      Src: /src/git/object.c:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - array
    - want
    - cb_data
    argTypes:
    - struct object_array*
    - object_array_each_func_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 521
    functionName: object_array_filter
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - object_array_release_entry
    - want
    linkageType: ''
    returnType: void
    signature: "void object_array_filter(struct object_array *array,\n\t\t\t object_array_each_func_t
      want, void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_array_release_entry
      Src: /src/git/object.c:527,1
    - Dst: FREE_AND_NULL
      Src: /src/git/object.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 530
    functionName: object_array_clear
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - object_array_release_entry
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void object_array_clear(struct object_array *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - repo
    - flags
    argTypes:
    - struct repository*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: clear_object_flags
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_object_flags(struct repository *repo, unsigned flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - struct repository*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: repo_clear_commit_marks
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_clear_commit_marks(struct repository *r, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/object.c:556,1
    - Dst: memset
      Src: /src/git/object.c:557,1
    - Dst: alloc_state_alloc
      Src: /src/git/object.c:560,1
    - Dst: alloc_state_alloc
      Src: /src/git/object.c:561,1
    - Dst: alloc_state_alloc
      Src: /src/git/object.c:562,1
    - Dst: alloc_state_alloc
      Src: /src/git/object.c:563,1
    - Dst: alloc_state_alloc
      Src: /src/git/object.c:564,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/object.c:566,1
    - Dst: allocate_commit_buffer_slab
      Src: /src/git/object.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 571
    functionName: parsed_object_pool_new
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - memset
    - xmalloc
    - CALLOC_ARRAY
    - allocate_commit_buffer_slab
    - alloc_state_alloc
    linkageType: ''
    returnType: struct parsed_object_pool
    signature: struct parsed_object_pool *parsed_object_pool_new(struct repository
      *repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unparse_commit
      Src: /src/git/object.c:576,1
    - Dst: free
      Src: /src/git/object.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct parsed_object_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 581
    functionName: parsed_object_pool_reset_commit_grafts
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - unparse_commit
    - free
    linkageType: ''
    returnType: void
    signature: void parsed_object_pool_reset_commit_grafts(struct parsed_object_pool
      *o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free_tree_buffer
      Src: /src/git/object.c:601,1
    - Dst: release_commit_memory
      Src: /src/git/object.c:603,1
    - Dst: release_tag_memory
      Src: /src/git/object.c:605,1
    - Dst: FREE_AND_NULL
      Src: /src/git/object.c:608,1
    - Dst: free_commit_buffer_slab
      Src: /src/git/object.c:611,1
    - Dst: parsed_object_pool_reset_commit_grafts
      Src: /src/git/object.c:614,1
    - Dst: alloc_state_free_and_null
      Src: /src/git/object.c:615,1
    - Dst: alloc_state_free_and_null
      Src: /src/git/object.c:616,1
    - Dst: alloc_state_free_and_null
      Src: /src/git/object.c:617,1
    - Dst: alloc_state_free_and_null
      Src: /src/git/object.c:618,1
    - Dst: alloc_state_free_and_null
      Src: /src/git/object.c:619,1
    - Dst: stat_validity_clear
      Src: /src/git/object.c:620,1
    - Dst: FREE_AND_NULL
      Src: /src/git/object.c:621,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct parsed_object_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 622
    functionName: parsed_object_pool_clear
    functionSourceFile: /src/git/object.c
    functionUses: 0
    functionsReached:
    - free_commit_buffer_slab
    - release_commit_memory
    - release_tag_memory
    - free_tree_buffer
    - alloc_state_free_and_null
    - stat_validity_clear
    - parsed_object_pool_reset_commit_grafts
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void parsed_object_pool_clear(struct parsed_object_pool *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_command
      Src: /src/git/repack-promisor.c:27,1
    - Dst: die
      Src: /src/git/repack-promisor.c:28,1
    - Dst: _
      Src: /src/git/repack-promisor.c:28,1
    - Dst: write_in_full
      Src: /src/git/repack-promisor.c:31,1
    - Dst: oid_to_hex
      Src: /src/git/repack-promisor.c:31,1
    - Dst: write_in_full
      Src: /src/git/repack-promisor.c:32,1
    - Dst: die
      Src: /src/git/repack-promisor.c:33,1
    - Dst: _
      Src: /src/git/repack-promisor.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: write_oid
    functionSourceFile: /src/git/repack-promisor.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - _
    - write_in_full
    - start_command
    linkageType: ''
    returnType: int
    signature: "int write_oid(const struct object_id *oid,\n\t\t     struct object_info
      *oi UNUSED,\n\t\t     void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/repack-promisor.c:45,1
    - Dst: xfdopen
      Src: /src/git/repack-promisor.c:47,1
    - Dst: strbuf_getline_lf
      Src: /src/git/repack-promisor.c:48,1
    - Dst: die
      Src: /src/git/repack-promisor.c:53,1
    - Dst: _
      Src: /src/git/repack-promisor.c:53,1
    - Dst: string_list_append
      Src: /src/git/repack-promisor.c:54,1
    - Dst: mkpathdup
      Src: /src/git/repack-promisor.c:67,1
    - Dst: write_promisor_file
      Src: /src/git/repack-promisor.c:69,1
    - Dst: generated_pack_populate
      Src: /src/git/repack-promisor.c:71,1
    - Dst: free
      Src: /src/git/repack-promisor.c:73,1
    - Dst: fclose
      Src: /src/git/repack-promisor.c:76,1
    - Dst: finish_command
      Src: /src/git/repack-promisor.c:77,1
    - Dst: die
      Src: /src/git/repack-promisor.c:78,1
    - Dst: _
      Src: /src/git/repack-promisor.c:78,1
    - Dst: strbuf_release
      Src: /src/git/repack-promisor.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - repo
    - cmd
    - names
    - packtmp
    argTypes:
    - struct repository*
    - struct child_process*
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 80
    functionName: finish_repacking_promisor_objects
    functionSourceFile: /src/git/repack-promisor.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - die
    - finish_command
    - write_promisor_file
    - free
    - string_list_append
    - _
    - close
    - xfdopen
    - mkpathdup
    - generated_pack_populate
    linkageType: ''
    returnType: void
    signature: "void finish_repacking_promisor_objects(struct repository *repo,\n\t\t\t\t\t
      \     struct child_process *cmd,\n\t\t\t\t\t      struct string_list *names,\n\t\t\t\t\t
      \     const char *packtmp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_pack_objects
      Src: /src/git/repack-promisor.c:89,1
    - Dst: odb_for_each_object
      Src: /src/git/repack-promisor.c:101,1
    - Dst: child_process_clear
      Src: /src/git/repack-promisor.c:106,1
    - Dst: finish_repacking_promisor_objects
      Src: /src/git/repack-promisor.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - repo
    - args
    - names
    - packtmp
    argTypes:
    - struct repository*
    - struct pack_objects_args*
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 111
    functionName: repack_promisor_objects
    functionSourceFile: /src/git/repack-promisor.c
    functionUses: 0
    functionsReached:
    - prepare_pack_objects
    - finish_repacking_promisor_objects
    - child_process_clear
    - odb_for_each_object
    linkageType: ''
    returnType: void
    signature: "void repack_promisor_objects(struct repository *repo,\n\t\t\t     const
      struct pack_objects_args *args,\n\t\t\t     struct string_list *names, const
      char *packtmp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_pack_objects
      Src: /src/git/repack-promisor.c:125,1
    - Dst: strvec_push
      Src: /src/git/repack-promisor.c:126,1
    - Dst: start_command
      Src: /src/git/repack-promisor.c:128,1
    - Dst: die
      Src: /src/git/repack-promisor.c:129,1
    - Dst: _
      Src: /src/git/repack-promisor.c:129,1
    - Dst: xfdopen
      Src: /src/git/repack-promisor.c:131,1
    - Dst: fprintf
      Src: /src/git/repack-promisor.c:133,1
    - Dst: pack_basename
      Src: /src/git/repack-promisor.c:133,1
    - Dst: fprintf
      Src: /src/git/repack-promisor.c:135,1
    - Dst: pack_basename
      Src: /src/git/repack-promisor.c:135,1
    - Dst: fclose
      Src: /src/git/repack-promisor.c:136,1
    - Dst: finish_repacking_promisor_objects
      Src: /src/git/repack-promisor.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - repo
    - args
    - geometry
    - names
    - packtmp
    argTypes:
    - struct repository*
    - struct pack_objects_args*
    - struct pack_geometry*
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 139
    functionName: pack_geometry_repack_promisors
    functionSourceFile: /src/git/repack-promisor.c
    functionUses: 0
    functionsReached:
    - prepare_pack_objects
    - strvec_push
    - fclose
    - finish_repacking_promisor_objects
    - die
    - pack_basename
    - _
    - xfdopen
    - fprintf
    - start_command
    linkageType: ''
    returnType: void
    signature: "void pack_geometry_repack_promisors(struct repository *repo,\n\t\t\t\t
      \   const struct pack_objects_args *args,\n\t\t\t\t    const struct pack_geometry
      *geometry,\n\t\t\t\t    struct string_list *names,\n\t\t\t\t    const char *packtmp)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/convert.c:49,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - buf
    - size
    - stats
    argTypes:
    - char*
    - unsigned long
    - struct text_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 88
    functionName: gather_stats
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void gather_stats(const char *buf, unsigned long size, struct text_stat
      *stats)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - stats
    argTypes:
    - struct text_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: convert_is_binary
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int convert_is_binary(const struct text_stat *stats)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gather_stats
      Src: /src/git/convert.c:111,1
    - Dst: convert_is_binary
      Src: /src/git/convert.c:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: gather_convert_stats
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - convert_is_binary
    - gather_stats
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gather_convert_stats(const char *data, unsigned long size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gather_convert_stats
      Src: /src/git/convert.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: gather_convert_stats_ascii
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - gather_convert_stats
    linkageType: ''
    returnType: char
    signature: char *gather_convert_stats_ascii(const char *data, unsigned long size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_blob_data_from_index
      Src: /src/git/convert.c:145,1
    - Dst: gather_convert_stats_ascii
      Src: /src/git/convert.c:146,1
    - Dst: free
      Src: /src/git/convert.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: get_cached_convert_stats_ascii
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - gather_convert_stats_ascii
    - read_blob_data_from_index
    - free
    linkageType: ''
    returnType: char
    signature: "char *get_cached_convert_stats_ascii(struct index_state *istate,\n\t\t\t\t\t
      \  const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/convert.c:155,1
    - Dst: gather_convert_stats_ascii
      Src: /src/git/convert.c:156,1
    - Dst: strbuf_release
      Src: /src/git/convert.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: get_wt_convert_stats_ascii
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - gather_convert_stats_ascii
    - strbuf_read_file
    - strbuf_release
    linkageType: ''
    returnType: char
    signature: char *get_wt_convert_stats_ascii(const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: text_eol_is_crlf
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int text_eol_is_crlf(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: text_eol_is_crlf
      Src: /src/git/convert.c:191,1
    - Dst: warning
      Src: /src/git/convert.c:193,1
    - Dst: _
      Src: /src/git/convert.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - crlf_action
    argTypes:
    - enum convert_crlf_action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 195
    functionName: output_eol
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - warning
    - text_eol_is_crlf
    - _
    linkageType: ''
    returnType: enum eol
    signature: enum eol output_eol(enum convert_crlf_action crlf_action)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/convert.c:206,1
    - Dst: _
      Src: /src/git/convert.c:206,1
    - Dst: warning
      Src: /src/git/convert.c:208,1
    - Dst: _
      Src: /src/git/convert.c:208,1
    - Dst: die
      Src: /src/git/convert.c:216,1
    - Dst: _
      Src: /src/git/convert.c:216,1
    - Dst: warning
      Src: /src/git/convert.c:218,1
    - Dst: _
      Src: /src/git/convert.c:218,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - path
    - old_stats
    - new_stats
    - conv_flags
    argTypes:
    - char*
    - struct text_stat*
    - struct text_stat*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 222
    functionName: check_global_conv_flags_eol
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - warning
    - die
    - _
    linkageType: ''
    returnType: void
    signature: "void check_global_conv_flags_eol(const char *path,\n\t\t\t    struct
      text_stat *old_stats, struct text_stat *new_stats,\n\t\t\t    int conv_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_blob_data_from_index
      Src: /src/git/convert.c:231,1
    - Dst: memchr
      Src: /src/git/convert.c:235,1
    - Dst: gather_convert_stats
      Src: /src/git/convert.c:238,1
    - Dst: free
      Src: /src/git/convert.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 245
    functionName: has_crlf_in_index
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - memchr
    - gather_convert_stats
    - read_blob_data_from_index
    - free
    linkageType: ''
    returnType: int
    signature: int has_crlf_in_index(struct index_state *istate, const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output_eol
      Src: /src/git/convert.c:250,1
    - Dst: convert_is_binary
      Src: /src/git/convert.c:262,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - stats
    - crlf_action
    argTypes:
    - struct text_stat*
    - enum convert_crlf_action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 267
    functionName: will_convert_lf_to_crlf
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - convert_is_binary
    - output_eol
    linkageType: ''
    returnType: int
    signature: "int will_convert_lf_to_crlf(struct text_stat *stats,\n\t\t\t\t   enum
      convert_crlf_action crlf_action)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_iprefix
      Src: /src/git/convert.c:275,1
    - Dst: skip_prefix
      Src: /src/git/convert.c:276,1
    - Dst: has_prohibited_utf_bom
      Src: /src/git/convert.c:281,1
    - Dst: _
      Src: /src/git/convert.c:282,1
    - Dst: _
      Src: /src/git/convert.c:289,1
    - Dst: strlen
      Src: /src/git/convert.c:293,1
    - Dst: strlen
      Src: /src/git/convert.c:293,1
    - Dst: advise
      Src: /src/git/convert.c:294,1
    - Dst: die
      Src: /src/git/convert.c:296,1
    - Dst: error
      Src: /src/git/convert.c:298,1
    - Dst: is_missing_required_utf_bom
      Src: /src/git/convert.c:301,1
    - Dst: _
      Src: /src/git/convert.c:302,1
    - Dst: _
      Src: /src/git/convert.c:304,1
    - Dst: advise
      Src: /src/git/convert.c:309,1
    - Dst: die
      Src: /src/git/convert.c:311,1
    - Dst: error
      Src: /src/git/convert.c:313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - path
    - enc
    - data
    - len
    - die_on_error
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 319
    functionName: validate_encoding
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - error
    - has_prohibited_utf_bom
    - skip_iprefix
    - die
    - strlen
    - _
    - is_missing_required_utf_bom
    - advise
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int validate_encoding(const char *path, const char *enc,\n\t\t      const
      char *data, size_t len, int die_on_error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_KEY_INIT
      Src: /src/git/convert.c:324,1
    - Dst: trace_want
      Src: /src/git/convert.c:328,1
    - Dst: strbuf_addf
      Src: /src/git/convert.c:331,1
    - Dst: strbuf_addf
      Src: /src/git/convert.c:333,1
    - Dst: strbuf_addchars
      Src: /src/git/convert.c:341,1
    - Dst: trace_strbuf
      Src: /src/git/convert.c:343,1
    - Dst: strbuf_release
      Src: /src/git/convert.c:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - context
    - path
    - encoding
    - buf
    - len
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 345
    functionName: trace_encoding
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    - strbuf_release
    - trace_want
    - TRACE_KEY_INIT
    - strbuf_addf
    - trace_strbuf
    linkageType: ''
    returnType: void
    signature: "void trace_encoding(const char *context, const char *path,\n\t\t\t
      \  const char *encoding, const char *buf, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasestr
      Src: /src/git/convert.c:356,1
    - Dst: strlen
      Src: /src/git/convert.c:361,1
    - Dst: strlen
      Src: /src/git/convert.c:362,1
    - Dst: isspace
      Src: /src/git/convert.c:370,1
    - Dst: isspace
      Src: /src/git/convert.c:380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 1
    argNames:
    - enc_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 383
    functionName: check_roundtrip
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - isspace
    - strlen
    - strcasestr
    linkageType: ''
    returnType: int
    signature: int check_roundtrip(const char *enc_name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: validate_encoding
      Src: /src/git/convert.c:410,1
    - Dst: trace_encoding
      Src: /src/git/convert.c:413,1
    - Dst: reencode_string_len
      Src: /src/git/convert.c:414,1
    - Dst: _
      Src: /src/git/convert.c:423,1
    - Dst: die
      Src: /src/git/convert.c:425,1
    - Dst: error
      Src: /src/git/convert.c:427,1
    - Dst: trace_encoding
      Src: /src/git/convert.c:431,1
    - Dst: check_roundtrip
      Src: /src/git/convert.c:452,1
    - Dst: reencode_string_len
      Src: /src/git/convert.c:456,1
    - Dst: trace_printf
      Src: /src/git/convert.c:460,1
    - Dst: trace_encoding
      Src: /src/git/convert.c:461,1
    - Dst: memcmp
      Src: /src/git/convert.c:465,1
    - Dst: _
      Src: /src/git/convert.c:466,1
    - Dst: die
      Src: /src/git/convert.c:468,1
    - Dst: free
      Src: /src/git/convert.c:471,1
    - Dst: strbuf_attach
      Src: /src/git/convert.c:474,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 6
    argNames:
    - path
    - src
    - src_len
    - buf
    - enc
    - conv_flags
    argTypes:
    - char*
    - char*
    - size_t
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 476
    functionName: encode_to_git
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - error
    - reencode_string_len
    - die
    - strbuf_attach
    - trace_printf
    - free
    - trace_encoding
    - _
    - check_roundtrip
    - validate_encoding
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int encode_to_git(const char *path, const char *src, size_t src_len,\n\t\t\t
      struct strbuf *buf, const char *enc, int conv_flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reencode_string_len
      Src: /src/git/convert.c:491,1
    - Dst: error
      Src: /src/git/convert.c:494,1
    - Dst: _
      Src: /src/git/convert.c:494,1
    - Dst: strbuf_attach
      Src: /src/git/convert.c:499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - path
    - src
    - src_len
    - buf
    - enc
    argTypes:
    - char*
    - char*
    - size_t
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 501
    functionName: encode_to_worktree
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - error
    - reencode_string_len
    - strbuf_attach
    - _
    linkageType: ''
    returnType: int
    signature: "int encode_to_worktree(const char *path, const char *src, size_t src_len,\n\t\t\t
      \     struct strbuf *buf, const char *enc)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: gather_stats
      Src: /src/git/convert.c:523,1
    - Dst: convert_is_binary
      Src: /src/git/convert.c:528,1
    - Dst: has_crlf_in_index
      Src: /src/git/convert.c:537,1
    - Dst: memcpy
      Src: /src/git/convert.c:543,1
    - Dst: will_convert_lf_to_crlf
      Src: /src/git/convert.c:550,1
    - Dst: check_global_conv_flags_eol
      Src: /src/git/convert.c:554,1
    - Dst: strbuf_avail
      Src: /src/git/convert.c:567,1
    - Dst: strbuf_grow
      Src: /src/git/convert.c:568,1
    - Dst: strbuf_setlen
      Src: /src/git/convert.c:588,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 45
    argCount: 7
    argNames:
    - istate
    - path
    - src
    - len
    - buf
    - crlf_action
    - conv_flags
    argTypes:
    - struct index_state*
    - char*
    - char*
    - size_t
    - struct strbuf*
    - enum convert_crlf_action
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 590
    functionName: crlf_to_git
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - strbuf_avail
    - convert_is_binary
    - check_global_conv_flags_eol
    - has_crlf_in_index
    - strbuf_setlen
    - will_convert_lf_to_crlf
    - memcpy
    - strbuf_grow
    - gather_stats
    linkageType: ''
    returnType: int
    signature: "int crlf_to_git(struct index_state *istate,\n\t\t       const char
      *path, const char *src, size_t len,\n\t\t       struct strbuf *buf,\n\t\t       enum
      convert_crlf_action crlf_action, int conv_flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output_eol
      Src: /src/git/convert.c:598,1
    - Dst: gather_stats
      Src: /src/git/convert.c:601,1
    - Dst: will_convert_lf_to_crlf
      Src: /src/git/convert.c:602,1
    - Dst: strbuf_detach
      Src: /src/git/convert.c:607,1
    - Dst: strbuf_grow
      Src: /src/git/convert.c:609,1
    - Dst: memchr
      Src: /src/git/convert.c:611,1
    - Dst: strbuf_add
      Src: /src/git/convert.c:615,1
    - Dst: strbuf_add
      Src: /src/git/convert.c:617,1
    - Dst: strbuf_addstr
      Src: /src/git/convert.c:618,1
    - Dst: strbuf_add
      Src: /src/git/convert.c:623,1
    - Dst: free
      Src: /src/git/convert.c:625,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - src
    - len
    - buf
    - crlf_action
    argTypes:
    - char*
    - size_t
    - struct strbuf*
    - enum convert_crlf_action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 627
    functionName: crlf_to_worktree
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - memchr
    - output_eol
    - will_convert_lf_to_crlf
    - strbuf_detach
    - strbuf_grow
    - strbuf_addstr
    - free
    - strbuf_add
    - gather_stats
    linkageType: ''
    returnType: int
    signature: "int crlf_to_worktree(const char *src, size_t len, struct strbuf *buf,\n\t\t\t
      \   enum convert_crlf_action crlf_action)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_expand_step
      Src: /src/git/convert.c:651,1
    - Dst: skip_prefix
      Src: /src/git/convert.c:652,1
    - Dst: strbuf_addch
      Src: /src/git/convert.c:653,1
    - Dst: skip_prefix
      Src: /src/git/convert.c:654,1
    - Dst: sq_quote_buf
      Src: /src/git/convert.c:655,1
    - Dst: strbuf_addch
      Src: /src/git/convert.c:657,1
    - Dst: strvec_push
      Src: /src/git/convert.c:660,1
    - Dst: start_command
      Src: /src/git/convert.c:665,1
    - Dst: strbuf_release
      Src: /src/git/convert.c:666,1
    - Dst: error
      Src: /src/git/convert.c:667,1
    - Dst: _
      Src: /src/git/convert.c:667,1
    - Dst: sigchain_push
      Src: /src/git/convert.c:671,1
    - Dst: write_in_full
      Src: /src/git/convert.c:674,1
    - Dst: copy_fd
      Src: /src/git/convert.c:679,1
    - Dst: close
      Src: /src/git/convert.c:684,1
    - Dst: error
      Src: /src/git/convert.c:687,1
    - Dst: _
      Src: /src/git/convert.c:687,1
    - Dst: sigchain_pop
      Src: /src/git/convert.c:690,1
    - Dst: finish_command
      Src: /src/git/convert.c:692,1
    - Dst: error
      Src: /src/git/convert.c:694,1
    - Dst: _
      Src: /src/git/convert.c:694,1
    - Dst: strbuf_release
      Src: /src/git/convert.c:696,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - UNUSED
    - out
    - data
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 698
    functionName: filter_buffer_or_fd
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - sq_quote_buf
    - strvec_push
    - strbuf_release
    - error
    - copy_fd
    - finish_command
    - sigchain_push
    - sigchain_pop
    - strbuf_addch
    - strbuf_expand_step
    - close
    - _
    - write_in_full
    - skip_prefix
    - start_command
    linkageType: ''
    returnType: int
    signature: int filter_buffer_or_fd(int in UNUSED, int out, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/convert.c:714,1
    - Dst: fflush
      Src: /src/git/convert.c:724,1
    - Dst: start_async
      Src: /src/git/convert.c:725,1
    - Dst: strbuf_read
      Src: /src/git/convert.c:728,1
    - Dst: error
      Src: /src/git/convert.c:729,1
    - Dst: _
      Src: /src/git/convert.c:729,1
    - Dst: close
      Src: /src/git/convert.c:731,1
    - Dst: error
      Src: /src/git/convert.c:732,1
    - Dst: _
      Src: /src/git/convert.c:732,1
    - Dst: finish_async
      Src: /src/git/convert.c:734,1
    - Dst: error
      Src: /src/git/convert.c:735,1
    - Dst: _
      Src: /src/git/convert.c:735,1
    - Dst: strbuf_swap
      Src: /src/git/convert.c:739,1
    - Dst: strbuf_release
      Src: /src/git/convert.c:741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - path
    - src
    - len
    - fd
    - dst
    - cmd
    argTypes:
    - char*
    - char*
    - size_t
    - int
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 743
    functionName: apply_single_file_filter
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - error
    - memset
    - strbuf_read
    - strbuf_release
    - fflush
    - finish_async
    - _
    - close
    - start_async
    - strbuf_swap
    linkageType: ''
    returnType: int
    signature: "int apply_single_file_filter(const char *path, const char *src, size_t
      len, int fd,\n\t\t\t\t    struct strbuf *dst, const char *cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subprocess_handshake
      Src: /src/git/convert.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - subprocess
    argTypes:
    - struct subprocess_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 770
    functionName: start_multi_file_filter_fn
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - subprocess_handshake
    linkageType: ''
    returnType: int
    signature: int start_multi_file_filter_fn(struct subprocess_entry *subprocess)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/convert.c:776,1
    - Dst: strcmp
      Src: /src/git/convert.c:778,1
    - Dst: error
      Src: /src/git/convert.c:790,1
    - Dst: _
      Src: /src/git/convert.c:790,1
    - Dst: subprocess_stop
      Src: /src/git/convert.c:791,1
    - Dst: free
      Src: /src/git/convert.c:792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - filter_status
    - entry
    - wanted_capability
    argTypes:
    - struct strbuf*
    - struct cmd2process*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 794
    functionName: handle_filter_error
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - error
    - subprocess_stop
    - strcmp
    - free
    - _
    linkageType: ''
    returnType: void
    signature: "void handle_filter_error(const struct strbuf *filter_status,\n\t\t\t\tstruct
      cmd2process *entry,\n\t\t\t\tconst unsigned int wanted_capability)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/convert.c:812,1
    - Dst: subprocess_find_entry
      Src: /src/git/convert.c:815,1
    - Dst: fflush
      Src: /src/git/convert.c:818,1
    - Dst: xmalloc
      Src: /src/git/convert.c:821,1
    - Dst: subprocess_start
      Src: /src/git/convert.c:824,1
    - Dst: free
      Src: /src/git/convert.c:825,1
    - Dst: die
      Src: /src/git/convert.c:839,1
    - Dst: _
      Src: /src/git/convert.c:839,1
    - Dst: sigchain_push
      Src: /src/git/convert.c:841,1
    - Dst: assert
      Src: /src/git/convert.c:843,1
    - Dst: strlen
      Src: /src/git/convert.c:843,1
    - Dst: strlen
      Src: /src/git/convert.c:843,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/convert.c:844,1
    - Dst: strlen
      Src: /src/git/convert.c:848,1
    - Dst: strlen
      Src: /src/git/convert.c:848,1
    - Dst: error
      Src: /src/git/convert.c:850,1
    - Dst: _
      Src: /src/git/convert.c:850,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/convert.c:854,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/convert.c:859,1
    - Dst: is_null_oid
      Src: /src/git/convert.c:864,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/convert.c:865,1
    - Dst: oid_to_hex
      Src: /src/git/convert.c:865,1
    - Dst: is_null_oid
      Src: /src/git/convert.c:870,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/convert.c:871,1
    - Dst: oid_to_hex
      Src: /src/git/convert.c:871,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/convert.c:879,1
    - Dst: packet_flush_gently
      Src: /src/git/convert.c:884,1
    - Dst: write_packetized_from_fd_no_flush
      Src: /src/git/convert.c:889,1
    - Dst: write_packetized_from_buf_no_flush
      Src: /src/git/convert.c:891,1
    - Dst: packet_flush_gently
      Src: /src/git/convert.c:895,1
    - Dst: subprocess_read_status
      Src: /src/git/convert.c:899,1
    - Dst: strcmp
      Src: /src/git/convert.c:903,1
    - Dst: string_list_insert
      Src: /src/git/convert.c:904,1
    - Dst: string_list_insert
      Src: /src/git/convert.c:905,1
    - Dst: strcmp
      Src: /src/git/convert.c:908,1
    - Dst: read_packetized_to_strbuf
      Src: /src/git/convert.c:912,1
    - Dst: subprocess_read_status
      Src: /src/git/convert.c:917,1
    - Dst: strcmp
      Src: /src/git/convert.c:921,1
    - Dst: sigchain_pop
      Src: /src/git/convert.c:925,1
    - Dst: handle_filter_error
      Src: /src/git/convert.c:928,1
    - Dst: strbuf_swap
      Src: /src/git/convert.c:930,1
    - Dst: strbuf_release
      Src: /src/git/convert.c:931,1
    - Dst: strbuf_release
      Src: /src/git/convert.c:932,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 111
    argCount: 9
    argNames:
    - path
    - src
    - len
    - fd
    - dst
    - cmd
    - wanted_capability
    - meta
    - dco
    argTypes:
    - char*
    - char*
    - size_t
    - int
    - struct strbuf*
    - char*
    - unsigned int
    - struct checkout_metadata*
    - struct delayed_checkout*
    assertStmts:
    - condition: (strlen(filter_type) < LARGE_PACKET_DATA_MAX - strlen("command=\n"))
      pos:
        line_end: 842
        line_start: 842
        source_file: /src/git/convert.c
    constantsTouched: []
    func_position:
      end: 934
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 934
    functionName: apply_multi_file_filter
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - hashmap_init
    - read_packetized_to_strbuf
    - write_packetized_from_fd_no_flush
    - is_null_oid
    - xmalloc
    - free
    - strcmp
    - packet_write_fmt_gently
    - strbuf_swap
    - error
    - strbuf_release
    - die
    - string_list_insert
    - sigchain_push
    - subprocess_read_status
    - oid_to_hex
    - sigchain_pop
    - packet_flush_gently
    - fflush
    - _
    - subprocess_start
    - subprocess_find_entry
    - write_packetized_from_buf_no_flush
    - assert
    - handle_filter_error
    - strlen
    linkageType: ''
    returnType: int
    signature: "int apply_multi_file_filter(const char *path, const char *src, size_t
      len,\n\t\t\t\t   int fd, struct strbuf *dst, const char *cmd,\n\t\t\t\t   const
      unsigned int wanted_capability,\n\t\t\t\t   const struct checkout_metadata *meta,\n\t\t\t\t
      \  struct delayed_checkout *dco)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/convert.c:945,1
    - Dst: subprocess_find_entry
      Src: /src/git/convert.c:946,1
    - Dst: error
      Src: /src/git/convert.c:948,1
    - Dst: _
      Src: /src/git/convert.c:948,1
    - Dst: sigchain_push
      Src: /src/git/convert.c:953,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/convert.c:955,1
    - Dst: packet_flush_gently
      Src: /src/git/convert.c:960,1
    - Dst: packet_read_line
      Src: /src/git/convert.c:964,1
    - Dst: skip_prefix
      Src: /src/git/convert.c:966,1
    - Dst: string_list_insert
      Src: /src/git/convert.c:967,1
    - Dst: subprocess_read_status
      Src: /src/git/convert.c:972,1
    - Dst: strcmp
      Src: /src/git/convert.c:976,1
    - Dst: sigchain_pop
      Src: /src/git/convert.c:979,1
    - Dst: handle_filter_error
      Src: /src/git/convert.c:982,1
    - Dst: strbuf_release
      Src: /src/git/convert.c:983,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - cmd
    - available_paths
    argTypes:
    - char*
    - struct string_list*
    assertStmts:
    - condition: (subprocess_map_initialized)
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/git/convert.c
    constantsTouched: []
    func_position:
      end: 985
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 985
    functionName: async_query_available_blobs
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - packet_read_line
    - assert
    - string_list_insert
    - sigchain_push
    - sigchain_pop
    - handle_filter_error
    - packet_flush_gently
    - subprocess_read_status
    - strcmp
    - _
    - subprocess_find_entry
    - skip_prefix
    - packet_write_fmt_gently
    linkageType: ''
    returnType: int
    signature: int async_query_available_blobs(const char *cmd, struct string_list
      *available_paths)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: apply_single_file_filter
      Src: /src/git/convert.c:1016,1
    - Dst: apply_multi_file_filter
      Src: /src/git/convert.c:1018,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 9
    argNames:
    - path
    - src
    - len
    - fd
    - dst
    - drv
    - wanted_capability
    - meta
    - dco
    argTypes:
    - char*
    - char*
    - size_t
    - int
    - struct strbuf*
    - struct convert_driver*
    - unsigned int
    - struct checkout_metadata*
    - struct delayed_checkout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1022
    functionName: apply_filter
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - apply_single_file_filter
    - apply_multi_file_filter
    linkageType: ''
    returnType: int
    signature: "int apply_filter(const char *path, const char *src, size_t len,\n\t\t\tint
      fd, struct strbuf *dst, struct convert_driver *drv,\n\t\t\tconst unsigned int
      wanted_capability,\n\t\t\tconst struct checkout_metadata *meta,\n\t\t\tstruct
      delayed_checkout *dco)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/convert.c:1036,1
    - Dst: xstrncmpz
      Src: /src/git/convert.c:1039,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/convert.c:1042,1
    - Dst: xmemdupz
      Src: /src/git/convert.c:1043,1
    - Dst: strcmp
      Src: /src/git/convert.c:1057,1
    - Dst: FREE_AND_NULL
      Src: /src/git/convert.c:1058,1
    - Dst: git_config_string
      Src: /src/git/convert.c:1059,1
    - Dst: strcmp
      Src: /src/git/convert.c:1062,1
    - Dst: FREE_AND_NULL
      Src: /src/git/convert.c:1063,1
    - Dst: git_config_string
      Src: /src/git/convert.c:1064,1
    - Dst: strcmp
      Src: /src/git/convert.c:1067,1
    - Dst: FREE_AND_NULL
      Src: /src/git/convert.c:1068,1
    - Dst: git_config_string
      Src: /src/git/convert.c:1069,1
    - Dst: strcmp
      Src: /src/git/convert.c:1072,1
    - Dst: git_config_bool
      Src: /src/git/convert.c:1073,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1078
    functionName: read_convert_config
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    - xmemdupz
    - git_config_bool
    - git_config_string
    - parse_config_key
    - strcmp
    - CALLOC_ARRAY
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: "int read_convert_config(const char *var, const char *value,\n\t\t\t
      \      const struct config_context *ctx UNUSED,\n\t\t\t       void *cb UNUSED)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/convert.c:1095,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 2
    argNames:
    - cp
    - size
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1120
    functionName: count_ident
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int count_ident(const char *cp, unsigned long size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: count_ident
      Src: /src/git/convert.c:1128,1
    - Dst: strbuf_avail
      Src: /src/git/convert.c:1135,1
    - Dst: strbuf_grow
      Src: /src/git/convert.c:1136,1
    - Dst: memchr
      Src: /src/git/convert.c:1139,1
    - Dst: memmove
      Src: /src/git/convert.c:1142,1
    - Dst: memcmp
      Src: /src/git/convert.c:1147,1
    - Dst: memchr
      Src: /src/git/convert.c:1148,1
    - Dst: memchr
      Src: /src/git/convert.c:1151,1
    - Dst: memcpy
      Src: /src/git/convert.c:1156,1
    - Dst: memmove
      Src: /src/git/convert.c:1162,1
    - Dst: strbuf_setlen
      Src: /src/git/convert.c:1163,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 4
    argNames:
    - src
    - len
    - buf
    - ident
    argTypes:
    - char*
    - size_t
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1165
    functionName: ident_to_git
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - count_ident
    - strbuf_avail
    - memchr
    - strbuf_setlen
    - memcpy
    - strbuf_grow
    - memmove
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int ident_to_git(const char *src, size_t len,\n\t\t\tstruct strbuf
      *buf, int ident)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: count_ident
      Src: /src/git/convert.c:1178,1
    - Dst: strbuf_detach
      Src: /src/git/convert.c:1184,1
    - Dst: hash_object_file
      Src: /src/git/convert.c:1185,1
    - Dst: strbuf_grow
      Src: /src/git/convert.c:1187,1
    - Dst: memchr
      Src: /src/git/convert.c:1190,1
    - Dst: strbuf_add
      Src: /src/git/convert.c:1193,1
    - Dst: memcmp
      Src: /src/git/convert.c:1198,1
    - Dst: memchr
      Src: /src/git/convert.c:1213,1
    - Dst: memchr
      Src: /src/git/convert.c:1219,1
    - Dst: memchr
      Src: /src/git/convert.c:1224,1
    - Dst: strbuf_addstr
      Src: /src/git/convert.c:1241,1
    - Dst: strbuf_addstr
      Src: /src/git/convert.c:1242,1
    - Dst: oid_to_hex
      Src: /src/git/convert.c:1242,1
    - Dst: strbuf_addstr
      Src: /src/git/convert.c:1243,1
    - Dst: strbuf_add
      Src: /src/git/convert.c:1245,1
    - Dst: free
      Src: /src/git/convert.c:1247,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 4
    argNames:
    - src
    - len
    - buf
    - ident
    argTypes:
    - char*
    - size_t
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1249
    functionName: ident_to_worktree
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - count_ident
    - memchr
    - oid_to_hex
    - hash_object_file
    - strbuf_detach
    - strbuf_grow
    - strbuf_addstr
    - free
    - strbuf_add
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int ident_to_worktree(const char *src, size_t len,\n\t\t\t     struct
      strbuf *buf, int ident)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ATTR_UNSET
      Src: /src/git/convert.c:1255,1
    - Dst: strlen
      Src: /src/git/convert.c:1255,1
    - Dst: ATTR_TRUE
      Src: /src/git/convert.c:1258,1
    - Dst: ATTR_FALSE
      Src: /src/git/convert.c:1258,1
    - Dst: die
      Src: /src/git/convert.c:1259,1
    - Dst: _
      Src: /src/git/convert.c:1259,1
    - Dst: same_encoding
      Src: /src/git/convert.c:1263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1267
    functionName: git_path_check_encoding
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - die
    - ATTR_FALSE
    - same_encoding
    - strlen
    - ATTR_UNSET
    - _
    - ATTR_TRUE
    linkageType: ''
    returnType: char
    signature: char *git_path_check_encoding(struct attr_check_item *check)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ATTR_TRUE
      Src: /src/git/convert.c:1273,1
    - Dst: ATTR_FALSE
      Src: /src/git/convert.c:1275,1
    - Dst: ATTR_UNSET
      Src: /src/git/convert.c:1277,1
    - Dst: strcmp
      Src: /src/git/convert.c:1279,1
    - Dst: strcmp
      Src: /src/git/convert.c:1281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1284
    functionName: git_path_check_crlf
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - ATTR_FALSE
    - strcmp
    - ATTR_UNSET
    - ATTR_TRUE
    linkageType: ''
    returnType: enum convert_crlf_action
    signature: enum convert_crlf_action git_path_check_crlf(struct attr_check_item
      *check)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ATTR_UNSET
      Src: /src/git/convert.c:1290,1
    - Dst: strcmp
      Src: /src/git/convert.c:1292,1
    - Dst: strcmp
      Src: /src/git/convert.c:1294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1286
    functionDepth: 1
    functionLinenumber: 1286
    functionLinenumberEnd: 1297
    functionName: git_path_check_eol
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - ATTR_UNSET
    - strcmp
    linkageType: ''
    returnType: enum eol
    signature: enum eol git_path_check_eol(struct attr_check_item *check)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ATTR_TRUE
      Src: /src/git/convert.c:1304,1
    - Dst: ATTR_FALSE
      Src: /src/git/convert.c:1304,1
    - Dst: ATTR_UNSET
      Src: /src/git/convert.c:1304,1
    - Dst: strcmp
      Src: /src/git/convert.c:1307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1310
    functionName: git_path_check_convert
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - ATTR_FALSE
    - strcmp
    - ATTR_UNSET
    - ATTR_TRUE
    linkageType: ''
    returnType: struct convert_driver
    signature: struct convert_driver *git_path_check_convert(struct attr_check_item
      *check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ATTR_TRUE
      Src: /src/git/convert.c:1316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1317
    functionName: git_path_check_ident
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - ATTR_TRUE
    linkageType: ''
    returnType: int
    signature: int git_path_check_ident(struct attr_check_item *check)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: attr_check_initl
      Src: /src/git/convert.c:1327,1
    - Dst: repo_config
      Src: /src/git/convert.c:1331,1
    - Dst: git_check_attr
      Src: /src/git/convert.c:1334,1
    - Dst: git_path_check_crlf
      Src: /src/git/convert.c:1336,1
    - Dst: git_path_check_crlf
      Src: /src/git/convert.c:1338,1
    - Dst: git_path_check_ident
      Src: /src/git/convert.c:1339,1
    - Dst: git_path_check_convert
      Src: /src/git/convert.c:1340,1
    - Dst: git_path_check_eol
      Src: /src/git/convert.c:1342,1
    - Dst: git_path_check_encoding
      Src: /src/git/convert.c:1352,1
    - Dst: text_eol_is_crlf
      Src: /src/git/convert.c:1357,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 3
    argNames:
    - istate
    - ca
    - path
    argTypes:
    - struct index_state*
    - struct conv_attrs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1321
    functionDepth: 2
    functionLinenumber: 1321
    functionLinenumberEnd: 1364
    functionName: convert_attrs
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - text_eol_is_crlf
    - git_path_check_ident
    - git_path_check_encoding
    - git_path_check_crlf
    - git_path_check_eol
    - git_path_check_convert
    - attr_check_initl
    - repo_config
    - git_check_attr
    linkageType: ''
    returnType: void
    signature: "void convert_attrs(struct index_state *istate,\n\t\t   struct conv_attrs
      *ca, const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attr_check_free
      Src: /src/git/convert.c:1370,1
    - Dst: reset_merge_attributes
      Src: /src/git/convert.c:1372,1
    - Dst: free
      Src: /src/git/convert.c:1376,1
    - Dst: free
      Src: /src/git/convert.c:1377,1
    - Dst: free
      Src: /src/git/convert.c:1378,1
    - Dst: free
      Src: /src/git/convert.c:1379,1
    - Dst: free
      Src: /src/git/convert.c:1380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1384
    functionName: reset_parsed_attributes
    functionSourceFile: /src/git/convert.c
    functionUses: 1
    functionsReached:
    - reset_merge_attributes
    - attr_check_free
    - free
    linkageType: ''
    returnType: void
    signature: void reset_parsed_attributes(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: convert_attrs
      Src: /src/git/convert.c:1390,1
    - Dst: apply_filter
      Src: /src/git/convert.c:1402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1386
    functionDepth: 4
    functionLinenumber: 1386
    functionLinenumberEnd: 1403
    functionName: would_convert_to_git_filter_fd
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - convert_attrs
    - apply_filter
    linkageType: ''
    returnType: int
    signature: int would_convert_to_git_filter_fd(struct index_state *istate, const
      char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: convert_attrs
      Src: /src/git/convert.c:1409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1405
    functionDepth: 3
    functionLinenumber: 1405
    functionLinenumberEnd: 1429
    functionName: get_convert_attr_ascii
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - convert_attrs
    linkageType: ''
    returnType: char
    signature: char *get_convert_attr_ascii(struct index_state *istate, const char
      *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: convert_attrs
      Src: /src/git/convert.c:1438,1
    - Dst: apply_filter
      Src: /src/git/convert.c:1440,1
    - Dst: die
      Src: /src/git/convert.c:1442,1
    - Dst: _
      Src: /src/git/convert.c:1442,1
    - Dst: encode_to_git
      Src: /src/git/convert.c:1449,1
    - Dst: crlf_to_git
      Src: /src/git/convert.c:1456,1
    - Dst: ident_to_git
      Src: /src/git/convert.c:1462,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 6
    argNames:
    - istate
    - path
    - src
    - len
    - dst
    - conv_flags
    argTypes:
    - struct index_state*
    - char*
    - char*
    - size_t
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1431
    functionDepth: 4
    functionLinenumber: 1431
    functionLinenumberEnd: 1463
    functionName: convert_to_git
    functionSourceFile: /src/git/convert.c
    functionUses: 2
    functionsReached:
    - crlf_to_git
    - die
    - apply_filter
    - convert_attrs
    - _
    - ident_to_git
    - encode_to_git
    linkageType: ''
    returnType: int
    signature: "int convert_to_git(struct index_state *istate,\n\t\t   const char
      *path, const char *src, size_t len,\n\t\t   struct strbuf *dst, int conv_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: convert_attrs
      Src: /src/git/convert.c:1470,1
    - Dst: assert
      Src: /src/git/convert.c:1472,1
    - Dst: apply_filter
      Src: /src/git/convert.c:1474,1
    - Dst: die
      Src: /src/git/convert.c:1475,1
    - Dst: _
      Src: /src/git/convert.c:1475,1
    - Dst: encode_to_git
      Src: /src/git/convert.c:1477,1
    - Dst: crlf_to_git
      Src: /src/git/convert.c:1478,1
    - Dst: ident_to_git
      Src: /src/git/convert.c:1479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - istate
    - path
    - fd
    - dst
    - conv_flags
    argTypes:
    - struct index_state*
    - char*
    - int
    - struct strbuf*
    - int
    assertStmts:
    - condition: (ca.drv)
      pos:
        line_end: 1471
        line_start: 1471
        source_file: /src/git/convert.c
    constantsTouched: []
    func_position:
      end: 1480
      start: 1465
    functionDepth: 4
    functionLinenumber: 1465
    functionLinenumberEnd: 1480
    functionName: convert_to_git_filter_fd
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - crlf_to_git
    - die
    - assert
    - apply_filter
    - convert_attrs
    - _
    - ident_to_git
    - encode_to_git
    linkageType: ''
    returnType: void
    signature: "void convert_to_git_filter_fd(struct index_state *istate,\n\t\t\t
      \     const char *path, int fd, struct strbuf *dst,\n\t\t\t      int conv_flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ident_to_worktree
      Src: /src/git/convert.c:1491,1
    - Dst: crlf_to_worktree
      Src: /src/git/convert.c:1502,1
    - Dst: encode_to_worktree
      Src: /src/git/convert.c:1509,1
    - Dst: apply_filter
      Src: /src/git/convert.c:1515,1
    - Dst: die
      Src: /src/git/convert.c:1518,1
    - Dst: _
      Src: /src/git/convert.c:1518,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 8
    argNames:
    - ca
    - path
    - src
    - len
    - dst
    - normalizing
    - meta
    - dco
    argTypes:
    - struct conv_attrs*
    - char*
    - char*
    - size_t
    - struct strbuf*
    - int
    - struct checkout_metadata*
    - struct delayed_checkout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1482
    functionDepth: 4
    functionLinenumber: 1482
    functionLinenumberEnd: 1521
    functionName: convert_to_working_tree_ca_internal
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - die
    - crlf_to_worktree
    - encode_to_worktree
    - ident_to_worktree
    - apply_filter
    - _
    linkageType: ''
    returnType: int
    signature: "int convert_to_working_tree_ca_internal(const struct conv_attrs *ca,\n\t\t\t\t\t
      \      const char *path, const char *src,\n\t\t\t\t\t       size_t len, struct
      strbuf *dst,\n\t\t\t\t\t       int normalizing,\n\t\t\t\t\t       const struct
      checkout_metadata *meta,\n\t\t\t\t\t       struct delayed_checkout *dco)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_working_tree_ca_internal
      Src: /src/git/convert.c:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ca
    - path
    - src
    - len
    - dst
    - meta
    - dco
    argTypes:
    - struct conv_attrs*
    - char*
    - char*
    - size_t
    - struct strbuf*
    - struct checkout_metadata*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1523
    functionDepth: 5
    functionLinenumber: 1523
    functionLinenumberEnd: 1531
    functionName: async_convert_to_working_tree_ca
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - convert_to_working_tree_ca_internal
    linkageType: ''
    returnType: int
    signature: "int async_convert_to_working_tree_ca(const struct conv_attrs *ca,\n\t\t\t\t
      \    const char *path, const char *src,\n\t\t\t\t     size_t len, struct strbuf
      *dst,\n\t\t\t\t     const struct checkout_metadata *meta,\n\t\t\t\t     void
      *dco)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_working_tree_ca_internal
      Src: /src/git/convert.c:1538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ca
    - path
    - src
    - len
    - dst
    - meta
    argTypes:
    - struct conv_attrs*
    - char*
    - char*
    - size_t
    - struct strbuf*
    - struct checkout_metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1533
    functionDepth: 5
    functionLinenumber: 1533
    functionLinenumberEnd: 1540
    functionName: convert_to_working_tree_ca
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - convert_to_working_tree_ca_internal
    linkageType: ''
    returnType: int
    signature: "int convert_to_working_tree_ca(const struct conv_attrs *ca,\n\t\t\t
      \      const char *path, const char *src,\n\t\t\t       size_t len, struct strbuf
      *dst,\n\t\t\t       const struct checkout_metadata *meta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: convert_attrs
      Src: /src/git/convert.c:1548,1
    - Dst: convert_to_working_tree_ca_internal
      Src: /src/git/convert.c:1549,1
    - Dst: convert_to_git
      Src: /src/git/convert.c:1555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - istate
    - path
    - src
    - len
    - dst
    argTypes:
    - struct index_state*
    - char*
    - char*
    - size_t
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1542
    functionDepth: 5
    functionLinenumber: 1542
    functionLinenumberEnd: 1556
    functionName: renormalize_buffer
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - convert_attrs
    - convert_to_git
    - convert_to_working_tree_ca_internal
    linkageType: ''
    returnType: int
    signature: "int renormalize_buffer(struct index_state *istate, const char *path,\n\t\t
      \      const char *src, size_t len, struct strbuf *dst)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/git/convert.c:1590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - filter
    - input
    - isize_p
    - output
    - osize_p
    argTypes:
    - struct stream_filter*
    - char*
    - size_t*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1595
    functionName: null_filter_fn
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: int
    signature: "int null_filter_fn(struct stream_filter *filter UNUSED,\n\t\t\t  const
      char *input, size_t *isize_p,\n\t\t\t  char *output, size_t *osize_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct stream_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1600
    functionName: null_free_fn
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void null_free_fn(struct stream_filter *filter UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct stream_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1611
    functionDepth: 0
    functionLinenumber: 1611
    functionLinenumberEnd: 1614
    functionName: is_null_stream_filter
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_null_stream_filter(struct stream_filter *filter)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 5
    argNames:
    - filter
    - input
    - isize_p
    - output
    - osize_p
    argTypes:
    - struct stream_filter*
    - char*
    - size_t*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1704
    functionName: lf_to_crlf_filter_fn
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int lf_to_crlf_filter_fn(struct stream_filter *filter,\n\t\t\t\tconst
      char *input, size_t *isize_p,\n\t\t\t\tchar *output, size_t *osize_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/convert.c:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct stream_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1706
    functionDepth: 1
    functionLinenumber: 1706
    functionLinenumberEnd: 1709
    functionName: lf_to_crlf_free_fn
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void lf_to_crlf_free_fn(struct stream_filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/convert.c:1718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1716
    functionDepth: 1
    functionLinenumber: 1716
    functionLinenumberEnd: 1722
    functionName: lf_to_crlf_filter
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct stream_filter
    signature: struct stream_filter *lf_to_crlf_filter(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stream_filter
      Src: /src/git/convert.c:1754,1
    - Dst: stream_filter
      Src: /src/git/convert.c:1768,1
    - Dst: stream_filter
      Src: /src/git/convert.c:1787,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 5
    argNames:
    - filter
    - input
    - isize_p
    - output
    - osize_p
    argTypes:
    - struct stream_filter*
    - char*
    - size_t*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1736
    functionDepth: 1
    functionLinenumber: 1736
    functionLinenumberEnd: 1797
    functionName: cascade_filter_fn
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - stream_filter
    linkageType: ''
    returnType: int
    signature: "int cascade_filter_fn(struct stream_filter *filter,\n\t\t\t     const
      char *input, size_t *isize_p,\n\t\t\t     char *output, size_t *osize_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_stream_filter
      Src: /src/git/convert.c:1802,1
    - Dst: free_stream_filter
      Src: /src/git/convert.c:1803,1
    - Dst: free
      Src: /src/git/convert.c:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct stream_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1805
    functionName: cascade_free_fn
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - free_stream_filter
    - free
    linkageType: ''
    returnType: void
    signature: void cascade_free_fn(struct stream_filter *filter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null_stream_filter
      Src: /src/git/convert.c:1817,1
    - Dst: is_null_stream_filter
      Src: /src/git/convert.c:1819,1
    - Dst: xmalloc
      Src: /src/git/convert.c:1822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - struct stream_filter*
    - struct stream_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1828
    functionName: cascade_filter
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - is_null_stream_filter
    linkageType: ''
    returnType: struct stream_filter
    signature: "struct stream_filter *cascade_filter(struct stream_filter *one,\n\t\t\t\t\t
      \   struct stream_filter *two)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/convert.c:1846,1
    - Dst: isspace
      Src: /src/git/convert.c:1849,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1842
    functionDepth: 1
    functionLinenumber: 1842
    functionLinenumberEnd: 1853
    functionName: is_foreign_ident
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - isspace
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int is_foreign_ident(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/convert.c:1862,1
    - Dst: strbuf_remove
      Src: /src/git/convert.c:1863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ident
    - output_p
    - osize_p
    argTypes:
    - struct ident_filter*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1855
    functionDepth: 1
    functionLinenumber: 1855
    functionLinenumberEnd: 1869
    functionName: ident_drain
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - strbuf_remove
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ident_drain(struct ident_filter *ident, char **output_p, size_t
      *osize_p)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/convert.c:1882,1
    - Dst: ident_drain
      Src: /src/git/convert.c:1887,1
    - Dst: ident_drain
      Src: /src/git/convert.c:1896,1
    - Dst: strbuf_addch
      Src: /src/git/convert.c:1910,1
    - Dst: is_foreign_ident
      Src: /src/git/convert.c:1913,1
    - Dst: strbuf_setlen
      Src: /src/git/convert.c:1914,1
    - Dst: strbuf_addstr
      Src: /src/git/convert.c:1915,1
    - Dst: strbuf_add
      Src: /src/git/convert.c:1928,1
    - Dst: strbuf_addch
      Src: /src/git/convert.c:1931,1
    - Dst: strbuf_addch
      Src: /src/git/convert.c:1937,1
    - Dst: strbuf_addstr
      Src: /src/git/convert.c:1940,1
    - Dst: strbuf_addch
      Src: /src/git/convert.c:1946,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 5
    argNames:
    - filter
    - input
    - isize_p
    - output
    - osize_p
    argTypes:
    - struct stream_filter*
    - char*
    - size_t*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1871
    functionDepth: 2
    functionLinenumber: 1871
    functionLinenumberEnd: 1950
    functionName: ident_filter_fn
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - is_foreign_ident
    - strbuf_setlen
    - strbuf_addch
    - strbuf_addstr
    - ident_drain
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int ident_filter_fn(struct stream_filter *filter,\n\t\t\t   const
      char *input, size_t *isize_p,\n\t\t\t   char *output, size_t *osize_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/convert.c:1955,1
    - Dst: free
      Src: /src/git/convert.c:1956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct stream_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1952
    functionDepth: 1
    functionLinenumber: 1952
    functionLinenumberEnd: 1957
    functionName: ident_free_fn
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void ident_free_fn(struct stream_filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/convert.c:1966,1
    - Dst: xsnprintf
      Src: /src/git/convert.c:1968,1
    - Dst: oid_to_hex
      Src: /src/git/convert.c:1969,1
    - Dst: strbuf_init
      Src: /src/git/convert.c:1970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1974
    functionName: ident_filter
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - oid_to_hex
    - strbuf_init
    - xsnprintf
    linkageType: ''
    returnType: struct stream_filter
    signature: struct stream_filter *ident_filter(const struct object_id *oid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: classify_conv_attrs
      Src: /src/git/convert.c:1989,1
    - Dst: ident_filter
      Src: /src/git/convert.c:1993,1
    - Dst: output_eol
      Src: /src/git/convert.c:1995,1
    - Dst: cascade_filter
      Src: /src/git/convert.c:1996,1
    - Dst: lf_to_crlf_filter
      Src: /src/git/convert.c:1996,1
    - Dst: cascade_filter
      Src: /src/git/convert.c:1998,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ca
    - oid
    argTypes:
    - struct conv_attrs*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1984
    functionDepth: 2
    functionLinenumber: 1984
    functionLinenumberEnd: 2001
    functionName: get_stream_filter_ca
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - ident_filter
    - output_eol
    - cascade_filter
    - lf_to_crlf_filter
    - classify_conv_attrs
    linkageType: ''
    returnType: struct stream_filter
    signature: "struct stream_filter *get_stream_filter_ca(const struct conv_attrs
      *ca,\n\t\t\t\t\t   const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_attrs
      Src: /src/git/convert.c:2008,1
    - Dst: get_stream_filter_ca
      Src: /src/git/convert.c:2009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - istate
    - path
    - oid
    argTypes:
    - struct index_state*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 2003
    functionDepth: 3
    functionLinenumber: 2003
    functionLinenumberEnd: 2010
    functionName: get_stream_filter
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - convert_attrs
    - get_stream_filter_ca
    linkageType: ''
    returnType: struct stream_filter
    signature: "struct stream_filter *get_stream_filter(struct index_state *istate,\n\t\t\t\t\tconst
      char *path,\n\t\t\t\t\tconst struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct stream_filter*::vtbl::free
      Src: /src/git/convert.c:2014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct stream_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2015
    functionName: free_stream_filter
    functionSourceFile: /src/git/convert.c
    functionUses: 1
    functionsReached:
    - struct stream_filter*::vtbl::free
    linkageType: ''
    returnType: void
    signature: void free_stream_filter(struct stream_filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct stream_filter*::vtbl::filter
      Src: /src/git/convert.c:2021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - filter
    - input
    - isize_p
    - output
    - osize_p
    argTypes:
    - struct stream_filter*
    - char*
    - size_t*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2017
    functionDepth: 0
    functionLinenumber: 2017
    functionLinenumberEnd: 2022
    functionName: stream_filter
    functionSourceFile: /src/git/convert.c
    functionUses: 3
    functionsReached:
    - struct stream_filter*::vtbl::filter
    linkageType: ''
    returnType: int
    signature: "int stream_filter(struct stream_filter *filter,\n\t\t  const char
      *input, size_t *isize_p,\n\t\t  char *output, size_t *osize_p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/convert.c:2028,1
    - Dst: oidcpy
      Src: /src/git/convert.c:2032,1
    - Dst: oidcpy
      Src: /src/git/convert.c:2034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - meta
    - refname
    - treeish
    - blob
    argTypes:
    - struct checkout_metadata*
    - char*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2035
    functionName: init_checkout_metadata
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - memset
    - oidcpy
    linkageType: ''
    returnType: void
    signature: "void init_checkout_metadata(struct checkout_metadata *meta, const
      char *refname,\n\t\t\t    const struct object_id *treeish,\n\t\t\t    const
      struct object_id *blob)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/convert.c:2041,1
    - Dst: oidcpy
      Src: /src/git/convert.c:2043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - blob
    argTypes:
    - struct checkout_metadata*
    - struct checkout_metadata*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2037
    functionDepth: 1
    functionLinenumber: 2037
    functionLinenumberEnd: 2044
    functionName: clone_checkout_metadata
    functionSourceFile: /src/git/convert.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void clone_checkout_metadata(struct checkout_metadata *dst,\n\t\t\t
      \    const struct checkout_metadata *src,\n\t\t\t     const struct object_id
      *blob)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - ca
    argTypes:
    - struct conv_attrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2046
    functionDepth: 0
    functionLinenumber: 2046
    functionLinenumberEnd: 2062
    functionName: classify_conv_attrs
    functionSourceFile: /src/git/convert.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum conv_attrs_classification
    signature: enum conv_attrs_classification classify_conv_attrs(const struct conv_attrs
      *ca)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-revindex.c:65,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-revindex.c:66,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/pack-revindex.c:78,1
    - Dst: BUCKET_FOR
      Src: /src/git/pack-revindex.c:89,1
    - Dst: BUCKET_FOR
      Src: /src/git/pack-revindex.c:107,1
    - Dst: SWAP
      Src: /src/git/pack-revindex.c:113,1
    - Dst: COPY_ARRAY
      Src: /src/git/pack-revindex.c:121,1
    - Dst: free
      Src: /src/git/pack-revindex.c:122,1
    - Dst: free
      Src: /src/git/pack-revindex.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - entries
    - n
    - max
    argTypes:
    - struct revindex_entry*
    - unsigned
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 128
    functionName: sort_revindex
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - BUCKET_FOR
    - ALLOC_ARRAY
    - MEMZERO_ARRAY
    - SWAP
    - free
    - COPY_ARRAY
    linkageType: ''
    returnType: void
    signature: void sort_revindex(struct revindex_entry *entries, unsigned n, off_t
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: BUCKET_FOR
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_FOR(a, i, bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-revindex.c:140,1
    - Dst: ntohl
      Src: /src/git/pack-revindex.c:148,1
    - Dst: get_be64
      Src: /src/git/pack-revindex.c:152,1
    - Dst: ntohl
      Src: /src/git/pack-revindex.c:160,1
    - Dst: sort_revindex
      Src: /src/git/pack-revindex.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 172
    functionName: create_pack_revindex
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - sort_revindex
    - ntohl
    - ALLOC_ARRAY
    - get_be64
    linkageType: ''
    returnType: void
    signature: void create_pack_revindex(struct packed_git *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/pack-revindex.c:176,1
    - Dst: die
      Src: /src/git/pack-revindex.c:177,1
    - Dst: open_pack_index
      Src: /src/git/pack-revindex.c:179,1
    - Dst: create_pack_revindex
      Src: /src/git/pack-revindex.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: create_pack_revindex_in_memory
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - open_pack_index
    - die
    - git_env_bool
    - create_pack_revindex
    linkageType: ''
    returnType: int
    signature: int create_pack_revindex_in_memory(struct packed_git *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix
      Src: /src/git/pack-revindex.c:188,1
    - Dst: BUG
      Src: /src/git/pack-revindex.c:189,1
    - Dst: xstrfmt
      Src: /src/git/pack-revindex.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: pack_revindex_filename
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - strip_suffix
    - xstrfmt
    - BUG
    linkageType: ''
    returnType: char
    signature: char *pack_revindex_filename(struct packed_git *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo
    argTypes:
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: ridx_min_size
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ridx_min_size(const struct git_hash_algo *algo)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/pack-revindex.c:217,1
    - Dst: die
      Src: /src/git/pack-revindex.c:218,1
    - Dst: git_open
      Src: /src/git/pack-revindex.c:220,1
    - Dst: fstat
      Src: /src/git/pack-revindex.c:227,1
    - Dst: error_errno
      Src: /src/git/pack-revindex.c:228,1
    - Dst: _
      Src: /src/git/pack-revindex.c:228,1
    - Dst: xsize_t
      Src: /src/git/pack-revindex.c:232,1
    - Dst: ridx_min_size
      Src: /src/git/pack-revindex.c:234,1
    - Dst: error
      Src: /src/git/pack-revindex.c:235,1
    - Dst: _
      Src: /src/git/pack-revindex.c:235,1
    - Dst: ridx_min_size
      Src: /src/git/pack-revindex.c:239,1
    - Dst: st_mult
      Src: /src/git/pack-revindex.c:239,1
    - Dst: error
      Src: /src/git/pack-revindex.c:240,1
    - Dst: _
      Src: /src/git/pack-revindex.c:240,1
    - Dst: xmmap
      Src: /src/git/pack-revindex.c:244,1
    - Dst: ntohl
      Src: /src/git/pack-revindex.c:247,1
    - Dst: error
      Src: /src/git/pack-revindex.c:248,1
    - Dst: _
      Src: /src/git/pack-revindex.c:248,1
    - Dst: ntohl
      Src: /src/git/pack-revindex.c:251,1
    - Dst: error
      Src: /src/git/pack-revindex.c:252,1
    - Dst: _
      Src: /src/git/pack-revindex.c:252,1
    - Dst: ntohl
      Src: /src/git/pack-revindex.c:253,1
    - Dst: ntohl
      Src: /src/git/pack-revindex.c:256,1
    - Dst: ntohl
      Src: /src/git/pack-revindex.c:256,1
    - Dst: error
      Src: /src/git/pack-revindex.c:257,1
    - Dst: _
      Src: /src/git/pack-revindex.c:257,1
    - Dst: ntohl
      Src: /src/git/pack-revindex.c:258,1
    - Dst: munmap
      Src: /src/git/pack-revindex.c:265,1
    - Dst: close
      Src: /src/git/pack-revindex.c:272,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 5
    argNames:
    - algo
    - revindex_name
    - num_objects
    - data_p
    - len_p
    argTypes:
    - struct git_hash_algo*
    - char*
    - uint32_t
    - uint32_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 274
    functionName: load_revindex_from_disk
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - die
    - git_env_bool
    - ridx_min_size
    - fstat
    - ntohl
    - git_open
    - xmmap
    - xsize_t
    - _
    - close
    - munmap
    - st_mult
    linkageType: ''
    returnType: int
    signature: "int load_revindex_from_disk(const struct git_hash_algo *algo,\n\t\t\t\t
      \  char *revindex_name,\n\t\t\t\t   uint32_t num_objects,\n\t\t\t\t   const
      uint32_t **data_p, size_t *len_p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/pack-revindex.c:284,1
    - Dst: pack_revindex_filename
      Src: /src/git/pack-revindex.c:287,1
    - Dst: load_revindex_from_disk
      Src: /src/git/pack-revindex.c:289,1
    - Dst: free
      Src: /src/git/pack-revindex.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 302
    functionName: load_pack_revindex_from_disk
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - free
    - load_revindex_from_disk
    - open_pack_index
    - pack_revindex_filename
    linkageType: ''
    returnType: int
    signature: int load_pack_revindex_from_disk(struct packed_git *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/pack-revindex.c:309,1
    - Dst: load_pack_revindex_from_disk
      Src: /src/git/pack-revindex.c:312,1
    - Dst: create_pack_revindex_in_memory
      Src: /src/git/pack-revindex.c:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - struct repository*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: load_pack_revindex
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - create_pack_revindex_in_memory
    - load_pack_revindex_from_disk
    - prepare_repo_settings
    linkageType: ''
    returnType: int
    signature: int load_pack_revindex(struct repository *r, struct packed_git *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashfile_checksum_valid
      Src: /src/git/pack-revindex.c:333,1
    - Dst: error
      Src: /src/git/pack-revindex.c:335,1
    - Dst: _
      Src: /src/git/pack-revindex.c:335,1
    - Dst: create_pack_revindex_in_memory
      Src: /src/git/pack-revindex.c:340,1
    - Dst: get_be32
      Src: /src/git/pack-revindex.c:345,1
    - Dst: error
      Src: /src/git/pack-revindex.c:348,1
    - Dst: _
      Src: /src/git/pack-revindex.c:348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 355
    functionName: verify_pack_revindex
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - error
    - hashfile_checksum_valid
    - get_be32
    - create_pack_revindex_in_memory
    - _
    linkageType: ''
    returnType: int
    signature: int verify_pack_revindex(struct packed_git *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: st_mult
      Src: /src/git/pack-revindex.c:361,1
    - Dst: error
      Src: /src/git/pack-revindex.c:362,1
    - Dst: _
      Src: /src/git/pack-revindex.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 366
    functionName: can_use_midx_ridx_chunk
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - st_mult
    linkageType: ''
    returnType: int
    signature: int can_use_midx_ridx_chunk(struct multi_pack_index *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: can_use_midx_ridx_chunk
      Src: /src/git/pack-revindex.c:376,1
    - Dst: trace2_data_string
      Src: /src/git/pack-revindex.c:386,1
    - Dst: trace2_data_string
      Src: /src/git/pack-revindex.c:392,1
    - Dst: get_split_midx_filename_ext
      Src: /src/git/pack-revindex.c:396,1
    - Dst: midx_get_checksum_hash
      Src: /src/git/pack-revindex.c:397,1
    - Dst: get_midx_filename_ext
      Src: /src/git/pack-revindex.c:400,1
    - Dst: midx_get_checksum_hash
      Src: /src/git/pack-revindex.c:401,1
    - Dst: load_revindex_from_disk
      Src: /src/git/pack-revindex.c:404,1
    - Dst: strbuf_release
      Src: /src/git/pack-revindex.c:415,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 417
    functionName: load_midx_revindex
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_split_midx_filename_ext
    - midx_get_checksum_hash
    - can_use_midx_ridx_chunk
    - load_revindex_from_disk
    - get_midx_filename_ext
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: int load_midx_revindex(struct multi_pack_index *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/git/pack-revindex.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 431
    functionName: close_midx_revindex
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: int close_midx_revindex(struct multi_pack_index *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: load_pack_revindex
      Src: /src/git/pack-revindex.c:437,1
    - Dst: pack_pos_to_offset
      Src: /src/git/pack-revindex.c:445,1
    - Dst: error
      Src: /src/git/pack-revindex.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - p
    - ofs
    - pos
    argTypes:
    - struct packed_git*
    - off_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 433
    functionDepth: 5
    functionLinenumber: 433
    functionLinenumberEnd: 458
    functionName: offset_to_pack_pos
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - error
    - pack_pos_to_offset
    - load_pack_revindex
    linkageType: ''
    returnType: int
    signature: int offset_to_pack_pos(struct packed_git *p, off_t ofs, uint32_t *pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-revindex.c:463,1
    - Dst: BUG
      Src: /src/git/pack-revindex.c:465,1
    - Dst: get_be32
      Src: /src/git/pack-revindex.c:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - p
    - pos
    argTypes:
    - struct packed_git*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: pack_pos_to_index
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - BUG
    - get_be32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pack_pos_to_index(struct packed_git *p, uint32_t pos)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-revindex.c:476,1
    - Dst: BUG
      Src: /src/git/pack-revindex.c:478,1
    - Dst: nth_packed_object_offset
      Src: /src/git/pack-revindex.c:485,1
    - Dst: pack_pos_to_index
      Src: /src/git/pack-revindex.c:485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - p
    - pos
    argTypes:
    - struct packed_git*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 486
    functionName: pack_pos_to_offset
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 1
    functionsReached:
    - nth_packed_object_offset
    - pack_pos_to_index
    - BUG
    linkageType: ''
    returnType: off_t
    signature: off_t pack_pos_to_offset(struct packed_git *p, uint32_t pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-revindex.c:493,1
    - Dst: BUG
      Src: /src/git/pack-revindex.c:495,1
    - Dst: BUG
      Src: /src/git/pack-revindex.c:497,1
    - Dst: get_be32
      Src: /src/git/pack-revindex.c:498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - m
    - pos
    argTypes:
    - struct multi_pack_index*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 499
    functionName: pack_pos_to_midx
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - BUG
    - get_be32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pack_pos_to_midx(struct multi_pack_index *m, uint32_t pos)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pack_pos_to_midx
      Src: /src/git/pack-revindex.c:515,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/pack-revindex.c:516,1
    - Dst: nth_midxed_offset
      Src: /src/git/pack-revindex.c:538,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 545
    functionName: midx_pack_order_cmp
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - nth_midxed_pack_int_id
    - pack_pos_to_midx
    - nth_midxed_offset
    linkageType: ''
    returnType: int
    signature: int midx_pack_order_cmp(const void *va, const void *vb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-revindex.c:554,1
    - Dst: midx_preferred_pack
      Src: /src/git/pack-revindex.c:565,1
    - Dst: error
      Src: /src/git/pack-revindex.c:566,1
    - Dst: _
      Src: /src/git/pack-revindex.c:566,1
    - Dst: bsearch
      Src: /src/git/pack-revindex.c:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - m
    - key
    - pos
    argTypes:
    - struct multi_pack_index*
    - struct midx_pack_key*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 578
    functionName: midx_key_to_pack_pos
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - bsearch
    - BUG
    - midx_preferred_pack
    linkageType: ''
    returnType: int
    signature: "int midx_key_to_pack_pos(struct multi_pack_index *m,\n\t\t\t\tstruct
      midx_pack_key *key,\n\t\t\t\tuint32_t *pos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-revindex.c:587,1
    - Dst: BUG
      Src: /src/git/pack-revindex.c:589,1
    - Dst: BUG
      Src: /src/git/pack-revindex.c:591,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/pack-revindex.c:593,1
    - Dst: nth_midxed_offset
      Src: /src/git/pack-revindex.c:594,1
    - Dst: midx_key_to_pack_pos
      Src: /src/git/pack-revindex.c:597,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - m
    - at
    - pos
    argTypes:
    - struct multi_pack_index*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 598
    functionName: midx_to_pack_pos
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 1
    functionsReached:
    - nth_midxed_pack_int_id
    - midx_key_to_pack_pos
    - BUG
    - nth_midxed_offset
    linkageType: ''
    returnType: int
    signature: int midx_to_pack_pos(struct multi_pack_index *m, uint32_t at, uint32_t
      *pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: midx_key_to_pack_pos
      Src: /src/git/pack-revindex.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - m
    - pack_int_id
    - ofs
    - pos
    argTypes:
    - struct multi_pack_index*
    - uint32_t
    - off_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 609
    functionName: midx_pair_to_pack_pos
    functionSourceFile: /src/git/pack-revindex.c
    functionUses: 0
    functionsReached:
    - midx_key_to_pack_pos
    linkageType: ''
    returnType: int
    signature: "int midx_pair_to_pack_pos(struct multi_pack_index *m, uint32_t pack_int_id,\n\t\t\t
      \ off_t ofs, uint32_t *pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - filename
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: REPO_GIT_PATH_FUNC
    functionSourceFile: /src/git/path.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPO_GIT_PATH_FUNC(var, filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - filename
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: GIT_PATH_FUNC
    functionSourceFile: /src/git/path.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GIT_PATH_FUNC(func, filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - enum cmit_fmt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: cmit_fmt_is_mail
    functionSourceFile: /src/git/pretty.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmit_fmt_is_mail(enum cmit_fmt fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/exec-cmd.c:50,1
    - Dst: assert
      Src: /src/git/exec-cmd.c:51,1
    - Dst: is_absolute_path
      Src: /src/git/exec-cmd.c:51,1
    - Dst: strip_path_suffix
      Src: /src/git/exec-cmd.c:54,1
    - Dst: strip_path_suffix
      Src: /src/git/exec-cmd.c:55,1
    - Dst: strip_path_suffix
      Src: /src/git/exec-cmd.c:56,1
    - Dst: trace_printf
      Src: /src/git/exec-cmd.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (executable_dirname)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/git/exec-cmd.c
    - condition: (is_absolute_path(executable_dirname))
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/git/exec-cmd.c
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: system_prefix
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - trace_printf
    - is_absolute_path
    - assert
    - strip_path_suffix
    linkageType: ''
    returnType: char
    signature: char *system_prefix(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_last_dir_sep
      Src: /src/git/exec-cmd.c:77,1
    - Dst: trace_printf
      Src: /src/git/exec-cmd.c:79,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/exec-cmd.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - argv0
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: git_get_exec_path_from_argv0
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - find_last_dir_sep
    - trace_printf
    - strbuf_add_absolute_path
    linkageType: ''
    returnType: int
    signature: int git_get_exec_path_from_argv0(struct strbuf *buf, const char *argv0)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/exec-cmd.c:95,1
    - Dst: trace_printf
      Src: /src/git/exec-cmd.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: git_get_exec_path_procfs
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - trace_printf
    - strbuf_realpath
    linkageType: ''
    returnType: int
    signature: int git_get_exec_path_procfs(struct strbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysctl
      Src: /src/git/exec-cmd.c:121,1
    - Dst: trace_printf
      Src: /src/git/exec-cmd.c:122,1
    - Dst: strbuf_addstr
      Src: /src/git/exec-cmd.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 129
    functionName: git_get_exec_path_bsd_sysctl
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - trace_printf
    - sysctl
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int git_get_exec_path_bsd_sysctl(struct strbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _NSGetExecutablePath
      Src: /src/git/exec-cmd.c:142,1
    - Dst: trace_printf
      Src: /src/git/exec-cmd.c:143,1
    - Dst: strbuf_addstr
      Src: /src/git/exec-cmd.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: git_get_exec_path_darwin
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - trace_printf
    - _NSGetExecutablePath
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int git_get_exec_path_darwin(struct strbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __getprogramdir
      Src: /src/git/exec-cmd.c:161,1
    - Dst: getprogname
      Src: /src/git/exec-cmd.c:162,1
    - Dst: strbuf_addf
      Src: /src/git/exec-cmd.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: git_get_exec_path_zos
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - getprogname
    - strbuf_addf
    - __getprogramdir
    linkageType: ''
    returnType: int
    signature: int git_get_exec_path_zos(struct strbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/git/exec-cmd.c:180,1
    - Dst: strbuf_grow
      Src: /src/git/exec-cmd.c:181,1
    - Dst: xwcstoutf
      Src: /src/git/exec-cmd.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: git_get_exec_path_wpgmptr
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - wcslen
    - xwcstoutf
    - strbuf_grow
    linkageType: ''
    returnType: int
    signature: int git_get_exec_path_wpgmptr(struct strbuf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_get_exec_path
      Src: /src/git/exec-cmd.c:252,1
    - Dst: trace_printf
      Src: /src/git/exec-cmd.c:253,1
    - Dst: strbuf_release
      Src: /src/git/exec-cmd.c:256,1
    - Dst: strbuf_detach
      Src: /src/git/exec-cmd.c:260,1
    - Dst: find_last_dir_sep
      Src: /src/git/exec-cmd.c:261,1
    - Dst: trace_printf
      Src: /src/git/exec-cmd.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 268
    functionName: git_resolve_executable_dir
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - trace_printf
    - git_get_exec_path
    - find_last_dir_sep
    - strbuf_detach
    linkageType: ''
    returnType: void
    signature: void git_resolve_executable_dir(const char *argv0)
  - 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: system_prefix
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *system_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: git_resolve_executable_dir
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void git_resolve_executable_dir(const char *argv0 UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute_path
      Src: /src/git/exec-cmd.c:294,1
    - Dst: xstrdup
      Src: /src/git/exec-cmd.c:295,1
    - Dst: strbuf_addf
      Src: /src/git/exec-cmd.c:297,1
    - Dst: system_prefix
      Src: /src/git/exec-cmd.c:297,1
    - Dst: strbuf_detach
      Src: /src/git/exec-cmd.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: system_path
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - is_absolute_path
    - strbuf_addf
    - system_prefix
    - strbuf_detach
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *system_path(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/git/exec-cmd.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exec_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: git_set_exec_path
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - setenv
    linkageType: ''
    returnType: void
    signature: void git_set_exec_path(const char *exec_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/exec-cmd.c:316,1
    - Dst: xstrdup
      Src: /src/git/exec-cmd.c:318,1
    - Dst: system_path
      Src: /src/git/exec-cmd.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 323
    functionName: git_exec_path
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - getenv
    - system_path
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *git_exec_path(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_absolute_path
      Src: /src/git/exec-cmd.c:328,1
    - Dst: strbuf_addch
      Src: /src/git/exec-cmd.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - out
    - path
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: add_path
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - strbuf_add_absolute_path
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void add_path(struct strbuf *out, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_exec_path
      Src: /src/git/exec-cmd.c:335,1
    - Dst: getenv
      Src: /src/git/exec-cmd.c:336,1
    - Dst: git_set_exec_path
      Src: /src/git/exec-cmd.c:339,1
    - Dst: add_path
      Src: /src/git/exec-cmd.c:340,1
    - Dst: strbuf_addstr
      Src: /src/git/exec-cmd.c:343,1
    - Dst: strbuf_addstr
      Src: /src/git/exec-cmd.c:345,1
    - Dst: setenv
      Src: /src/git/exec-cmd.c:347,1
    - Dst: strbuf_release
      Src: /src/git/exec-cmd.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 350
    functionName: setup_path
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - git_set_exec_path
    - setenv
    - add_path
    - strbuf_addstr
    - getenv
    - git_exec_path
    linkageType: ''
    returnType: void
    signature: void setup_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/exec-cmd.c:354,1
    - Dst: strvec_pushv
      Src: /src/git/exec-cmd.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: prepare_git_cmd
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_pushv
    linkageType: ''
    returnType: char
    signature: char **prepare_git_cmd(struct strvec *out, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_git_cmd
      Src: /src/git/exec-cmd.c:363,1
    - Dst: trace_argv_printf
      Src: /src/git/exec-cmd.c:364,1
    - Dst: sane_execvp
      Src: /src/git/exec-cmd.c:367,1
    - Dst: trace_printf
      Src: /src/git/exec-cmd.c:369,1
    - Dst: strerror
      Src: /src/git/exec-cmd.c:369,1
    - Dst: strvec_clear
      Src: /src/git/exec-cmd.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 373
    functionName: execv_git_cmd
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - trace_printf
    - strerror
    - prepare_git_cmd
    - strvec_clear
    - sane_execvp
    - trace_argv_printf
    linkageType: ''
    returnType: int
    signature: int execv_git_cmd(const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/exec-cmd.c:382,1
    - Dst: va_arg
      Src: /src/git/exec-cmd.c:386,1
    - Dst: va_end
      Src: /src/git/exec-cmd.c:390,1
    - Dst: error
      Src: /src/git/exec-cmd.c:392,1
    - Dst: _
      Src: /src/git/exec-cmd.c:392,1
    - Dst: execv_git_cmd
      Src: /src/git/exec-cmd.c:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 396
    functionName: execl_git_cmd
    functionSourceFile: /src/git/exec-cmd.c
    functionUses: 0
    functionsReached:
    - error
    - va_end
    - va_arg
    - execv_git_cmd
    - _
    - va_start
    linkageType: ''
    returnType: int
    signature: int execl_git_cmd(const char *cmd, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - blob
    argTypes:
    - struct blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: mark_blob_uninteresting
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mark_blob_uninteresting(struct blob *blob)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree_gently
      Src: /src/git/revision.c:75,1
    - Dst: init_tree_desc
      Src: /src/git/revision.c:78,1
    - Dst: tree_entry
      Src: /src/git/revision.c:79,1
    - Dst: object_type
      Src: /src/git/revision.c:80,1
    - Dst: mark_tree_uninteresting
      Src: /src/git/revision.c:82,1
    - Dst: lookup_tree
      Src: /src/git/revision.c:82,1
    - Dst: mark_blob_uninteresting
      Src: /src/git/revision.c:85,1
    - Dst: lookup_blob
      Src: /src/git/revision.c:85,1
    - Dst: free_tree_buffer
      Src: /src/git/revision.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - r
    - tree
    argTypes:
    - struct repository*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 98
    functionName: mark_tree_contents_uninteresting
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - object_type
    - tree_entry
    - free_tree_buffer
    - mark_tree_uninteresting
    - repo_parse_tree_gently
    - mark_blob_uninteresting
    - lookup_blob
    - lookup_tree
    - init_tree_desc
    linkageType: ''
    returnType: void
    signature: "void mark_tree_contents_uninteresting(struct repository *r,\n\t\t\t\t\t
      \    struct tree *tree)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mark_tree_contents_uninteresting
      Src: /src/git/revision.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - tree
    argTypes:
    - struct repository*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: mark_tree_uninteresting
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - mark_tree_contents_uninteresting
    linkageType: ''
    returnType: void
    signature: void mark_tree_uninteresting(struct repository *r, struct tree *tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/revision.c:127,1
    - Dst: container_of
      Src: /src/git/revision.c:128,1
    - Dst: strcmp
      Src: /src/git/revision.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hashmap_cmp_fn_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: path_and_oids_cmp
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int path_and_oids_cmp(const void *hashmap_cmp_fn_data UNUSED,\n\t\t\t
      \    const struct hashmap_entry *eptr,\n\t\t\t     const struct hashmap_entry
      *entry_or_key,\n\t\t\t     const void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/revision.c:138,1
    - Dst: oidset_clear
      Src: /src/git/revision.c:139,1
    - Dst: free
      Src: /src/git/revision.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct hashmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: paths_and_oids_clear
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - hashmap_for_each_entry
    - oidset_clear
    - free
    linkageType: ''
    returnType: void
    signature: void paths_and_oids_clear(struct hashmap *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strhash
      Src: /src/git/revision.c:150,1
    - Dst: hashmap_entry_init
      Src: /src/git/revision.c:154,1
    - Dst: oidset_init
      Src: /src/git/revision.c:158,1
    - Dst: hashmap_get_entry
      Src: /src/git/revision.c:160,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/revision.c:162,1
    - Dst: hashmap_entry_init
      Src: /src/git/revision.c:163,1
    - Dst: xstrdup
      Src: /src/git/revision.c:164,1
    - Dst: oidset_init
      Src: /src/git/revision.c:165,1
    - Dst: hashmap_put
      Src: /src/git/revision.c:166,1
    - Dst: oidset_insert
      Src: /src/git/revision.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - map
    - path
    - oid
    argTypes:
    - struct hashmap*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: paths_and_oids_insert
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - strhash
    - oidset_init
    - hashmap_entry_init
    - hashmap_get_entry
    - hashmap_put
    - CALLOC_ARRAY
    - oidset_insert
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void paths_and_oids_insert(struct hashmap *map,\n\t\t\t\t  const char
      *path,\n\t\t\t\t  const struct object_id *oid)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree_gently
      Src: /src/git/revision.c:182,1
    - Dst: init_tree_desc
      Src: /src/git/revision.c:185,1
    - Dst: tree_entry
      Src: /src/git/revision.c:186,1
    - Dst: object_type
      Src: /src/git/revision.c:187,1
    - Dst: paths_and_oids_insert
      Src: /src/git/revision.c:189,1
    - Dst: lookup_tree
      Src: /src/git/revision.c:192,1
    - Dst: lookup_blob
      Src: /src/git/revision.c:199,1
    - Dst: free_tree_buffer
      Src: /src/git/revision.c:210,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - r
    - tree
    - map
    argTypes:
    - struct repository*
    - struct tree*
    - struct hashmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 211
    functionName: add_children_by_path
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - object_type
    - paths_and_oids_insert
    - tree_entry
    - free_tree_buffer
    - repo_parse_tree_gently
    - lookup_blob
    - lookup_tree
    - init_tree_desc
    linkageType: ''
    returnType: void
    signature: "void add_children_by_path(struct repository *r,\n\t\t\t\t struct tree
      *tree,\n\t\t\t\t struct hashmap *map)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HASHMAP_INIT
      Src: /src/git/revision.c:217,1
    - Dst: oidset_iter_init
      Src: /src/git/revision.c:223,1
    - Dst: oidset_iter_next
      Src: /src/git/revision.c:225,1
    - Dst: lookup_tree
      Src: /src/git/revision.c:226,1
    - Dst: oidset_iter_init
      Src: /src/git/revision.c:241,1
    - Dst: oidset_iter_next
      Src: /src/git/revision.c:242,1
    - Dst: lookup_tree
      Src: /src/git/revision.c:243,1
    - Dst: add_children_by_path
      Src: /src/git/revision.c:244,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/revision.c:247,1
    - Dst: mark_trees_uninteresting_sparse
      Src: /src/git/revision.c:248,1
    - Dst: paths_and_oids_clear
      Src: /src/git/revision.c:250,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - r
    - trees
    argTypes:
    - struct repository*
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 251
    functionName: mark_trees_uninteresting_sparse
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - mark_trees_uninteresting_sparse
    - paths_and_oids_clear
    - HASHMAP_INIT
    - oidset_iter_next
    - add_children_by_path
    - lookup_tree
    - hashmap_for_each_entry
    - oidset_iter_init
    linkageType: ''
    returnType: void
    signature: "void mark_trees_uninteresting_sparse(struct repository *r,\n\t\t\t\t
      \    struct oidset *trees)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: commit_stack_push
      Src: /src/git/revision.c:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - revs
    - commit
    - pending
    argTypes:
    - struct rev_info*
    - struct commit*
    - struct commit_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 275
    functionName: mark_one_parent_uninteresting
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_stack_push
    linkageType: ''
    returnType: void
    signature: "void mark_one_parent_uninteresting(struct rev_info *revs, struct commit
      *commit,\n\t\t\t\t\t  struct commit_stack *pending)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mark_one_parent_uninteresting
      Src: /src/git/revision.c:283,1
    - Dst: mark_one_parent_uninteresting
      Src: /src/git/revision.c:289,1
    - Dst: commit_stack_pop
      Src: /src/git/revision.c:289,1
    - Dst: commit_stack_clear
      Src: /src/git/revision.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 293
    functionName: mark_parents_uninteresting
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_stack_pop
    - mark_one_parent_uninteresting
    - commit_stack_clear
    linkageType: ''
    returnType: void
    signature: void mark_parents_uninteresting(struct rev_info *revs, struct commit
      *commit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/revision.c:307,1
    - Dst: repo_interpret_branch_name
      Src: /src/git/revision.c:308,1
    - Dst: strbuf_addstr
      Src: /src/git/revision.c:312,1
    - Dst: add_reflog_for_walk
      Src: /src/git/revision.c:313,1
    - Dst: strbuf_release
      Src: /src/git/revision.c:316,1
    - Dst: add_object_array_with_path
      Src: /src/git/revision.c:319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 5
    argNames:
    - revs
    - obj
    - name
    - mode
    - path
    argTypes:
    - struct rev_info*
    - struct object*
    - char*
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 320
    functionName: add_pending_object_with_path
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - add_reflog_for_walk
    - repo_interpret_branch_name
    - strlen
    - strbuf_addstr
    - add_object_array_with_path
    linkageType: ''
    returnType: void
    signature: "void add_pending_object_with_path(struct rev_info *revs,\n\t\t\t\t\t
      struct object *obj,\n\t\t\t\t\t const char *name, unsigned mode,\n\t\t\t\t\t
      const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pending_object_with_path
      Src: /src/git/revision.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - revs
    - obj
    - name
    - mode
    argTypes:
    - struct rev_info*
    - struct object*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: add_pending_object_with_mode
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_pending_object_with_path
    linkageType: ''
    returnType: void
    signature: "void add_pending_object_with_mode(struct rev_info *revs,\n\t\t\t\t\t
      struct object *obj,\n\t\t\t\t\t const char *name, unsigned mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pending_object_with_mode
      Src: /src/git/revision.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - revs
    - obj
    - name
    argTypes:
    - struct rev_info*
    - struct object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: add_pending_object
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - add_pending_object_with_mode
    linkageType: ''
    returnType: void
    signature: "void add_pending_object(struct rev_info *revs,\n\t\t\tstruct object
      *obj, const char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/revision.c:339,1
    - Dst: parse_object
      Src: /src/git/revision.c:341,1
    - Dst: add_pending_object
      Src: /src/git/revision.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 5
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: add_head_to_pending
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_pending_object
    - repo_get_oid
    - parse_object
    linkageType: ''
    returnType: void
    signature: void add_head_to_pending(struct rev_info *revs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_object_with_flags
      Src: /src/git/revision.c:353,1
    - Dst: is_promisor_object
      Src: /src/git/revision.c:362,1
    - Dst: oidset_insert
      Src: /src/git/revision.c:365,1
    - Dst: die
      Src: /src/git/revision.c:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - revs
    - name
    - oid
    - flags
    argTypes:
    - struct rev_info*
    - char*
    - struct object_id*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 372
    functionName: get_reference
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - parse_object_with_flags
    - is_promisor_object
    - die
    - oidset_insert
    linkageType: ''
    returnType: struct object
    signature: "struct object *get_reference(struct rev_info *revs, const char *name,\n\t\t\t\t
      \   const struct object_id *oid,\n\t\t\t\t    unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_reference
      Src: /src/git/revision.c:377,1
    - Dst: add_pending_object
      Src: /src/git/revision.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - revs
    - name
    - oid
    - flags
    argTypes:
    - struct rev_info*
    - char*
    - struct object_id*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: add_pending_oid
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_pending_object
    - get_reference
    linkageType: ''
    returnType: void
    signature: "void add_pending_oid(struct rev_info *revs, const char *name,\n\t\t
      \     const struct object_id *oid, unsigned int flags)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: add_pending_object
      Src: /src/git/revision.c:397,1
    - Dst: get_tagged_oid
      Src: /src/git/revision.c:398,1
    - Dst: parse_object
      Src: /src/git/revision.c:399,1
    - Dst: is_promisor_object
      Src: /src/git/revision.c:404,1
    - Dst: oidset_insert
      Src: /src/git/revision.c:407,1
    - Dst: die
      Src: /src/git/revision.c:410,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:410,1
    - Dst: repo_parse_commit
      Src: /src/git/revision.c:429,1
    - Dst: die
      Src: /src/git/revision.c:430,1
    - Dst: mark_parents_uninteresting
      Src: /src/git/revision.c:432,1
    - Dst: generation_numbers_enabled
      Src: /src/git/revision.c:434,1
    - Dst: revision_sources_at
      Src: /src/git/revision.c:438,1
    - Dst: xstrdup
      Src: /src/git/revision.c:441,1
    - Dst: mark_tree_contents_uninteresting
      Src: /src/git/revision.c:455,1
    - Dst: add_pending_object_with_path
      Src: /src/git/revision.c:458,1
    - Dst: add_pending_object_with_path
      Src: /src/git/revision.c:470,1
    - Dst: die
      Src: /src/git/revision.c:473,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 2
    argNames:
    - revs
    - entry
    argTypes:
    - struct rev_info*
    - struct object_array_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 381
    functionDepth: 5
    functionLinenumber: 381
    functionLinenumberEnd: 474
    functionName: handle_commit
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - generation_numbers_enabled
    - repo_parse_commit
    - add_pending_object_with_path
    - parse_object
    - mark_tree_contents_uninteresting
    - add_pending_object
    - is_promisor_object
    - oidset_insert
    - revision_sources_at
    - mark_parents_uninteresting
    - get_tagged_oid
    - xstrdup
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *handle_commit(struct rev_info *revs,\n\t\t\t\t    struct
      object_array_entry *entry)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - orig
    - interesting_cache
    argTypes:
    - struct prio_queue*
    - struct commit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 496
    functionName: everybody_uninteresting
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int everybody_uninteresting(struct prio_queue *orig,\n\t\t\t\t   struct
      commit **interesting_cache)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: relevant_commit
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int relevant_commit(struct commit *commit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: relevant_commit
      Src: /src/git/revision.c:563,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - revs
    - orig
    argTypes:
    - struct rev_info*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 570
    functionName: one_relevant_parent
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - relevant_commit
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *one_relevant_parent(const struct rev_info *revs,\n\t\t\t\t\t
      \ struct commit_list *orig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - options
    - addremove
    - UNUSED
    - UNUSED
    - oid_valid
    - fullpath
    - UNUSED
    argTypes:
    - struct diff_options*
    - int
    - unsigned mode
    - struct object_id*
    - int
    - char*
    - unsigned dirty_submodule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 609
    functionName: file_add_remove
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void file_add_remove(struct diff_options *options,\n\t\t    int addremove,\n\t\t
      \   unsigned mode UNUSED,\n\t\t    const struct object_id *oid UNUSED,\n\t\t
      \   int oid_valid UNUSED,\n\t\t    const char *fullpath UNUSED,\n\t\t    unsigned
      dirty_submodule UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 10
    argNames:
    - options
    - UNUSED
    - UNUSED
    - old_oid
    - new_oid
    - old_oid_valid
    - new_oid_valid
    - fullpath
    - UNUSED
    - UNUSED
    argTypes:
    - struct diff_options*
    - unsigned old_mode
    - unsigned new_mode
    - struct object_id*
    - struct object_id*
    - int
    - int
    - char*
    - unsigned old_dirty_submodule
    - unsigned new_dirty_submodule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 624
    functionName: file_change
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void file_change(struct diff_options *options,\n\t\t unsigned old_mode
      UNUSED,\n\t\t unsigned new_mode UNUSED,\n\t\t const struct object_id *old_oid
      UNUSED,\n\t\t const struct object_id *new_oid UNUSED,\n\t\t int old_oid_valid
      UNUSED,\n\t\t int new_oid_valid UNUSED,\n\t\t const char *fullpath UNUSED,\n\t\t
      unsigned old_dirty_submodule UNUSED,\n\t\t unsigned new_dirty_submodule UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/revision.c:636,1
    - Dst: jw_object_intmax
      Src: /src/git/revision.c:637,1
    - Dst: jw_object_intmax
      Src: /src/git/revision.c:638,1
    - Dst: jw_object_intmax
      Src: /src/git/revision.c:639,1
    - Dst: jw_object_intmax
      Src: /src/git/revision.c:640,1
    - Dst: jw_end
      Src: /src/git/revision.c:641,1
    - Dst: trace2_data_json
      Src: /src/git/revision.c:643,1
    - Dst: jw_release
      Src: /src/git/revision.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 646
    functionName: trace2_bloom_filter_statistics_atexit
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - jw_object_begin
    - jw_end
    - trace2_data_json
    - jw_object_intmax
    - jw_release
    linkageType: ''
    returnType: void
    signature: void trace2_bloom_filter_statistics_atexit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - spec
    argTypes:
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 664
    functionName: forbid_bloom_filters
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int forbid_bloom_filters(struct pathspec *spec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmemdupz
      Src: /src/git/revision.c:695,1
    - Dst: bloom_keyvec_new
      Src: /src/git/revision.c:700,1
    - Dst: free
      Src: /src/git/revision.c:704,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - out
    - pi
    - settings
    argTypes:
    - struct bloom_keyvec**
    - struct pathspec_item*
    - struct bloom_filter_settings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 706
    functionName: convert_pathspec_to_bloom_keyvec
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - bloom_keyvec_new
    - xmemdupz
    - free
    linkageType: ''
    returnType: int
    signature: "int convert_pathspec_to_bloom_keyvec(struct bloom_keyvec **out,\n\t\t\t\t\t
      \   const struct pathspec_item *pi,\n\t\t\t\t\t    const struct bloom_filter_settings
      *settings)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: forbid_bloom_filters
      Src: /src/git/revision.c:713,1
    - Dst: repo_parse_commit
      Src: /src/git/revision.c:716,1
    - Dst: get_bloom_filter_settings
      Src: /src/git/revision.c:718,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/revision.c:726,1
    - Dst: convert_pathspec_to_bloom_keyvec
      Src: /src/git/revision.c:729,1
    - Dst: trace2_is_enabled
      Src: /src/git/revision.c:735,1
    - Dst: atexit
      Src: /src/git/revision.c:736,1
    - Dst: release_revisions_bloom_keyvecs
      Src: /src/git/revision.c:744,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 745
    functionName: prepare_to_use_bloom_filter
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - get_bloom_filter_settings
    - atexit
    - trace2_is_enabled
    - repo_parse_commit
    - convert_pathspec_to_bloom_keyvec
    - release_revisions_bloom_keyvecs
    - CALLOC_ARRAY
    - forbid_bloom_filters
    linkageType: ''
    returnType: void
    signature: void prepare_to_use_bloom_filter(struct rev_info *revs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_generation
      Src: /src/git/revision.c:753,1
    - Dst: get_bloom_filter
      Src: /src/git/revision.c:756,1
    - Dst: bloom_filter_contains_vec
      Src: /src/git/revision.c:764,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 775
    functionName: check_maybe_different_in_bloom_filter
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - bloom_filter_contains_vec
    - get_bloom_filter
    - commit_graph_generation
    linkageType: ''
    returnType: int
    signature: "int check_maybe_different_in_bloom_filter(struct rev_info *revs,\n\t\t\t\t\t\t
      struct commit *commit)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_tree
      Src: /src/git/revision.c:780,1
    - Dst: repo_get_commit_tree
      Src: /src/git/revision.c:781,1
    - Dst: get_name_decoration
      Src: /src/git/revision.c:794,1
    - Dst: check_maybe_different_in_bloom_filter
      Src: /src/git/revision.c:808,1
    - Dst: diff_tree_oid
      Src: /src/git/revision.c:816,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - revs
    - parent
    - commit
    - nth_parent
    argTypes:
    - struct rev_info*
    - struct commit*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 823
    functionName: rev_compare_tree
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - get_name_decoration
    - repo_get_commit_tree
    - diff_tree_oid
    - check_maybe_different_in_bloom_filter
    linkageType: ''
    returnType: int
    signature: "int rev_compare_tree(struct rev_info *revs,\n\t\t\t    struct commit
      *parent, struct commit *commit, int nth_parent)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_tree
      Src: /src/git/revision.c:828,1
    - Dst: check_maybe_different_in_bloom_filter
      Src: /src/git/revision.c:835,1
    - Dst: diff_tree_oid
      Src: /src/git/revision.c:842,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - revs
    - commit
    - nth_parent
    argTypes:
    - struct rev_info*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 848
    functionName: rev_same_tree_as_empty
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - repo_get_commit_tree
    - diff_tree_oid
    - check_maybe_different_in_bloom_filter
    linkageType: ''
    returnType: int
    signature: "int rev_same_tree_as_empty(struct rev_info *revs, struct commit *commit,\n\t\t\t\t
      \ int nth_parent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_count
      Src: /src/git/revision.c:857,1
    - Dst: xcalloc
      Src: /src/git/revision.c:858,1
    - Dst: st_add
      Src: /src/git/revision.c:858,1
    - Dst: add_decoration
      Src: /src/git/revision.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 862
    functionName: initialise_treesame
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - st_add
    - add_decoration
    - commit_list_count
    linkageType: ''
    returnType: struct treesame_state
    signature: struct treesame_state *initialise_treesame(struct rev_info *revs, struct
      commit *commit)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/revision.c:882,1
    - Dst: rev_same_tree_as_empty
      Src: /src/git/revision.c:884,1
    - Dst: lookup_decoration
      Src: /src/git/revision.c:891,1
    - Dst: die
      Src: /src/git/revision.c:893,1
    - Dst: memmove
      Src: /src/git/revision.c:896,1
    - Dst: die
      Src: /src/git/revision.c:907,1
    - Dst: free
      Src: /src/git/revision.c:912,1
    - Dst: add_decoration
      Src: /src/git/revision.c:912,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - revs
    - commit
    - nth_parent
    argTypes:
    - struct rev_info*
    - struct commit*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 871
    functionDepth: 3
    functionLinenumber: 871
    functionLinenumberEnd: 916
    functionName: compact_treesame
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - die
    - rev_same_tree_as_empty
    - add_decoration
    - lookup_decoration
    - free
    - memmove
    linkageType: ''
    returnType: int
    signature: int compact_treesame(struct rev_info *revs, struct commit *commit,
      unsigned nth_parent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_decoration
      Src: /src/git/revision.c:927,1
    - Dst: die
      Src: /src/git/revision.c:929,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:929,1
    - Dst: relevant_commit
      Src: /src/git/revision.c:933,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 946
    functionName: update_treesame
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - lookup_decoration
    - relevant_commit
    linkageType: ''
    returnType: unsigned
    signature: unsigned update_treesame(struct rev_info *revs, struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 961
    functionName: limiting_can_increase_treesame
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int limiting_can_increase_treesame(const struct rev_info *revs)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_tree
      Src: /src/git/revision.c:976,1
    - Dst: rev_same_tree_as_empty
      Src: /src/git/revision.c:987,1
    - Dst: relevant_commit
      Src: /src/git/revision.c:1003,1
    - Dst: initialise_treesame
      Src: /src/git/revision.c:1027,1
    - Dst: repo_parse_commit
      Src: /src/git/revision.c:1032,1
    - Dst: die
      Src: /src/git/revision.c:1033,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:1034,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:1035,1
    - Dst: rev_compare_tree
      Src: /src/git/revision.c:1036,1
    - Dst: relevant_commit
      Src: /src/git/revision.c:1038,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:1050,1
    - Dst: pop_commit
      Src: /src/git/revision.c:1053,1
    - Dst: rev_same_tree_as_empty
      Src: /src/git/revision.c:1072,1
    - Dst: repo_parse_commit
      Src: /src/git/revision.c:1081,1
    - Dst: die
      Src: /src/git/revision.c:1082,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:1083,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:1084,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:1085,1
    - Dst: relevant_commit
      Src: /src/git/revision.c:1091,1
    - Dst: die
      Src: /src/git/revision.c:1101,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:1101,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 61
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 963
    functionDepth: 3
    functionLinenumber: 963
    functionLinenumberEnd: 1116
    functionName: try_to_simplify_commit
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - rev_same_tree_as_empty
    - repo_parse_commit
    - initialise_treesame
    - pop_commit
    - repo_get_commit_tree
    - rev_compare_tree
    - commit_list_free
    - relevant_commit
    linkageType: ''
    returnType: void
    signature: void try_to_simplify_commit(struct rev_info *revs, struct commit *commit)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: oidset_contains
      Src: /src/git/revision.c:1127,1
    - Dst: struct rev_info*::include_check
      Src: /src/git/revision.c:1132,1
    - Dst: repo_parse_commit_gently
      Src: /src/git/revision.c:1154,1
    - Dst: mark_parents_uninteresting
      Src: /src/git/revision.c:1157,1
    - Dst: commit_list_insert_by_date
      Src: /src/git/revision.c:1162,1
    - Dst: prio_queue_put
      Src: /src/git/revision.c:1164,1
    - Dst: try_to_simplify_commit
      Src: /src/git/revision.c:1176,1
    - Dst: repo_parse_commit_gently
      Src: /src/git/revision.c:1188,1
    - Dst: is_promisor_object
      Src: /src/git/revision.c:1190,1
    - Dst: oidset_insert
      Src: /src/git/revision.c:1197,1
    - Dst: revision_sources_at
      Src: /src/git/revision.c:1202,1
    - Dst: revision_sources_at
      Src: /src/git/revision.c:1205,1
    - Dst: commit_list_insert_by_date
      Src: /src/git/revision.c:1211,1
    - Dst: prio_queue_put
      Src: /src/git/revision.c:1213,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 60
    argCount: 4
    argNames:
    - revs
    - commit
    - list
    - queue
    argTypes:
    - struct rev_info*
    - struct commit*
    - struct commit_list**
    - struct prio_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1118
    functionDepth: 4
    functionLinenumber: 1118
    functionLinenumberEnd: 1219
    functionName: process_parents
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - struct rev_info*::include_check
    - commit_list_insert_by_date
    - prio_queue_put
    - oidset_contains
    - is_promisor_object
    - mark_parents_uninteresting
    - oidset_insert
    - revision_sources_at
    - repo_parse_commit_gently
    - try_to_simplify_commit
    linkageType: ''
    returnType: int
    signature: "int process_parents(struct rev_info *revs, struct commit *commit,\n\t\t\t
      \  struct commit_list **list, struct prio_queue *queue)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: init_patch_ids
      Src: /src/git/revision.c:1245,1
    - Dst: add_commit_patch_id
      Src: /src/git/revision.c:1262,1
    - Dst: patch_id_iter_first
      Src: /src/git/revision.c:1286,1
    - Dst: patch_id_iter_next
      Src: /src/git/revision.c:1293,1
    - Dst: free_patch_ids
      Src: /src/git/revision.c:1296,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 2
    argNames:
    - list
    - revs
    argTypes:
    - struct commit_list*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1297
    functionName: cherry_pick_list
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - patch_id_iter_first
    - init_patch_ids
    - free_patch_ids
    - add_commit_patch_id
    - patch_id_iter_next
    linkageType: ''
    returnType: void
    signature: void cherry_pick_list(struct commit_list *list, struct rev_info *revs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_peek
      Src: /src/git/revision.c:1309,1
    - Dst: everybody_uninteresting
      Src: /src/git/revision.c:1319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - src
    - date
    - slop
    - interesting_cache
    argTypes:
    - struct prio_queue*
    - timestamp_t
    - int
    - struct commit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1324
    functionName: still_interesting
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - everybody_uninteresting
    - prio_queue_peek
    linkageType: ''
    returnType: int
    signature: "int still_interesting(struct prio_queue *src, timestamp_t date, int
      slop,\n\t\t\t     struct commit **interesting_cache)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/revision.c:1355,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:1405,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 2
    argNames:
    - bottoms
    - list
    argTypes:
    - struct commit_list*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1344
    functionDepth: 1
    functionLinenumber: 1344
    functionLinenumberEnd: 1406
    functionName: limit_to_ancestry
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_list_free
    - commit_list_insert
    linkageType: ''
    returnType: void
    signature: void limit_to_ancestry(struct commit_list *bottoms, struct commit_list
      *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/revision.c:1422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - list
    - bottom
    argTypes:
    - struct commit_list*
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1423
    functionName: collect_bottom_commits
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_list_insert
    linkageType: ''
    returnType: void
    signature: "void collect_bottom_commits(struct commit_list *list,\n\t\t\t\t   struct
      commit_list **bottom)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - list
    - revs
    argTypes:
    - struct commit_list*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1440
    functionName: limit_left_right
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void limit_left_right(struct commit_list *list, struct rev_info *revs)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: collect_bottom_commits
      Src: /src/git/revision.c:1453,1
    - Dst: die
      Src: /src/git/revision.c:1456,1
    - Dst: pop_commit
      Src: /src/git/revision.c:1460,1
    - Dst: prio_queue_put
      Src: /src/git/revision.c:1461,1
    - Dst: prio_queue_get
      Src: /src/git/revision.c:1465,1
    - Dst: process_parents
      Src: /src/git/revision.c:1473,1
    - Dst: clear_prio_queue
      Src: /src/git/revision.c:1474,1
    - Dst: mark_parents_uninteresting
      Src: /src/git/revision.c:1478,1
    - Dst: still_interesting
      Src: /src/git/revision.c:1479,1
    - Dst: commit_list_insert
      Src: /src/git/revision.c:1491,1
    - Dst: cherry_pick_list
      Src: /src/git/revision.c:1494,1
    - Dst: limit_left_right
      Src: /src/git/revision.c:1497,1
    - Dst: limit_to_ancestry
      Src: /src/git/revision.c:1500,1
    - Dst: limiting_can_increase_treesame
      Src: /src/git/revision.c:1506,1
    - Dst: update_treesame
      Src: /src/git/revision.c:1512,1
    - Dst: clear_prio_queue
      Src: /src/git/revision.c:1516,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 48
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1442
    functionDepth: 5
    functionLinenumber: 1442
    functionLinenumberEnd: 1519
    functionName: limit_list
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - die
    - limiting_can_increase_treesame
    - prio_queue_put
    - process_parents
    - collect_bottom_commits
    - prio_queue_get
    - commit_list_insert
    - cherry_pick_list
    - limit_to_ancestry
    - pop_commit
    - update_treesame
    - limit_left_right
    - mark_parents_uninteresting
    - clear_prio_queue
    - still_interesting
    linkageType: ''
    returnType: int
    signature: int limit_list(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/revision.c:1534,1
    - Dst: xstrdup
      Src: /src/git/revision.c:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - revs
    - item
    - name
    - whence
    - flags
    argTypes:
    - struct rev_info*
    - struct object*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1525
    functionDepth: 1
    functionLinenumber: 1525
    functionLinenumberEnd: 1540
    functionName: add_rev_cmdline
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void add_rev_cmdline(struct rev_info *revs,\n\t\t\t    struct object
      *item,\n\t\t\t    const char *name,\n\t\t\t    int whence,\n\t\t\t    unsigned
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_rev_cmdline
      Src: /src/git/revision.c:1549,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:1549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - revs
    - commit_list
    - whence
    - flags
    argTypes:
    - struct rev_info*
    - struct commit_list*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1542
    functionDepth: 2
    functionLinenumber: 1542
    functionLinenumberEnd: 1553
    functionName: add_rev_cmdline_list
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - add_rev_cmdline
    linkageType: ''
    returnType: void
    signature: "void add_rev_cmdline_list(struct rev_info *revs,\n\t\t\t\t struct
      commit_list *commit_list,\n\t\t\t\t int whence,\n\t\t\t\t unsigned flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strip_namespace
      Src: /src/git/revision.c:1557,1
    - Dst: for_each_string_list_item
      Src: /src/git/revision.c:1560,1
    - Dst: wildmatch
      Src: /src/git/revision.c:1561,1
    - Dst: ref_is_hidden
      Src: /src/git/revision.c:1565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - exclusions
    - path
    argTypes:
    - struct ref_exclusions*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1569
    functionName: ref_excluded
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - ref_is_hidden
    - strip_namespace
    - wildmatch
    linkageType: ''
    returnType: int
    signature: int ref_excluded(const struct ref_exclusions *exclusions, const char
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/revision.c:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exclusions
    argTypes:
    - struct ref_exclusions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1575
    functionName: init_ref_exclusions
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void init_ref_exclusions(struct ref_exclusions *exclusions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/revision.c:1579,1
    - Dst: strvec_clear
      Src: /src/git/revision.c:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - exclusions
    argTypes:
    - struct ref_exclusions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1577
    functionDepth: 1
    functionLinenumber: 1577
    functionLinenumberEnd: 1582
    functionName: clear_ref_exclusions
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void clear_ref_exclusions(struct ref_exclusions *exclusions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/revision.c:1586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exclusions
    - exclude
    argTypes:
    - struct ref_exclusions*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1587
    functionName: add_ref_exclusion
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - string_list_append
    linkageType: ''
    returnType: void
    signature: void add_ref_exclusion(struct ref_exclusions *exclusions, const char
      *exclude)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_hide_refs_config
      Src: /src/git/revision.c:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - cb_data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1594
    functionDepth: 2
    functionLinenumber: 1594
    functionLinenumberEnd: 1602
    functionName: hide_refs_config
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - parse_hide_refs_config
    linkageType: ''
    returnType: int
    signature: "int hide_refs_config(const char *var, const char *value,\n\t\t\t    const
      struct config_context *ctx UNUSED,\n\t\t\t    void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/revision.c:1608,1
    - Dst: strcmp
      Src: /src/git/revision.c:1608,1
    - Dst: strcmp
      Src: /src/git/revision.c:1609,1
    - Dst: die
      Src: /src/git/revision.c:1610,1
    - Dst: _
      Src: /src/git/revision.c:1610,1
    - Dst: die
      Src: /src/git/revision.c:1613,1
    - Dst: _
      Src: /src/git/revision.c:1613,1
    - Dst: repo_config
      Src: /src/git/revision.c:1618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - exclusions
    - section
    argTypes:
    - struct ref_exclusions*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1604
    functionDepth: 1
    functionLinenumber: 1604
    functionLinenumberEnd: 1619
    functionName: exclude_hidden_refs
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - repo_config
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: void
    signature: void exclude_hidden_refs(struct ref_exclusions *exclusions, const char
      *section)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ref_excluded
      Src: /src/git/revision.c:1634,1
    - Dst: get_reference
      Src: /src/git/revision.c:1637,1
    - Dst: add_rev_cmdline
      Src: /src/git/revision.c:1638,1
    - Dst: add_pending_object
      Src: /src/git/revision.c:1639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1629
    functionDepth: 5
    functionLinenumber: 1629
    functionLinenumberEnd: 1641
    functionName: handle_one_ref
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_pending_object
    - get_reference
    - ref_excluded
    - add_rev_cmdline
    linkageType: ''
    returnType: int
    signature: int handle_one_ref(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cb
    - revs
    - flags
    argTypes:
    - struct all_refs_cb*
    - struct rev_info*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1643
    functionDepth: 0
    functionLinenumber: 1643
    functionLinenumberEnd: 1650
    functionName: init_all_refs_cb
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void init_all_refs_cb(struct all_refs_cb *cb, struct rev_info *revs,\n\tunsigned
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_all_refs_cb
      Src: /src/git/revision.c:1663,1
    - Dst: for_each
      Src: /src/git/revision.c:1664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - refs
    - revs
    - flags
    argTypes:
    - struct ref_store*
    - struct rev_info*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1652
    functionDepth: 1
    functionLinenumber: 1652
    functionLinenumberEnd: 1665
    functionName: handle_refs
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - for_each
    - init_all_refs_cb
    linkageType: ''
    returnType: void
    signature: "void handle_refs(struct ref_store *refs,\n\t\t\tstruct rev_info *revs,
      unsigned flags,\n\t\t\tint (*for_each)(struct ref_store *, refs_for_each_cb,
      void *))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/revision.c:1670,1
    - Dst: parse_object
      Src: /src/git/revision.c:1671,1
    - Dst: add_pending_object
      Src: /src/git/revision.c:1675,1
    - Dst: warning
      Src: /src/git/revision.c:1678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - oid
    - cb_data
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1667
    functionDepth: 5
    functionLinenumber: 1667
    functionLinenumberEnd: 1683
    functionName: handle_one_reflog_commit
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_pending_object
    - warning
    - parse_object
    - is_null_oid
    linkageType: ''
    returnType: void
    signature: void handle_one_reflog_commit(struct object_id *oid, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_one_reflog_commit
      Src: /src/git/revision.c:1693,1
    - Dst: handle_one_reflog_commit
      Src: /src/git/revision.c:1694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - refname
    - ooid
    - noid
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1685
    functionDepth: 6
    functionLinenumber: 1685
    functionLinenumberEnd: 1696
    functionName: handle_one_reflog_ent
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - handle_one_reflog_commit
    linkageType: ''
    returnType: int
    signature: "int handle_one_reflog_ent(const char *refname UNUSED,\n\t\t\t\t struct
      object_id *ooid, struct object_id *noid,\n\t\t\t\t const char *email UNUSED,\n\t\t\t\t
      timestamp_t timestamp UNUSED,\n\t\t\t\t int tz UNUSED,\n\t\t\t\t const char
      *message UNUSED,\n\t\t\t\t void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_worktree_ref
      Src: /src/git/revision.c:1704,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/revision.c:1706,1
    - Dst: get_main_ref_store
      Src: /src/git/revision.c:1706,1
    - Dst: strbuf_release
      Src: /src/git/revision.c:1709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - refname_in_wt
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1698
    functionDepth: 3
    functionLinenumber: 1698
    functionLinenumberEnd: 1711
    functionName: handle_one_reflog
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_worktree_ref
    - refs_for_each_reflog_ent
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int handle_one_reflog(const char *refname_in_wt, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees
      Src: /src/git/revision.c:1717,1
    - Dst: refs_for_each_reflog
      Src: /src/git/revision.c:1725,1
    - Dst: get_worktree_ref_store
      Src: /src/git/revision.c:1725,1
    - Dst: free_worktrees
      Src: /src/git/revision.c:1729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - cb
    argTypes:
    - struct all_refs_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1713
    functionDepth: 4
    functionLinenumber: 1713
    functionLinenumberEnd: 1730
    functionName: add_other_reflogs_to_pending
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - get_worktree_ref_store
    - refs_for_each_reflog
    - get_worktrees
    - free_worktrees
    linkageType: ''
    returnType: void
    signature: void add_other_reflogs_to_pending(struct all_refs_cb *cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_reflog
      Src: /src/git/revision.c:1739,1
    - Dst: get_main_ref_store
      Src: /src/git/revision.c:1739,1
    - Dst: add_other_reflogs_to_pending
      Src: /src/git/revision.c:1743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - revs
    - flags
    argTypes:
    - struct rev_info*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1732
    functionDepth: 5
    functionLinenumber: 1732
    functionLinenumberEnd: 1744
    functionName: add_reflogs_to_pending
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - refs_for_each_reflog
    - add_other_reflogs_to_pending
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void add_reflogs_to_pending(struct rev_info *revs, unsigned flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tree
      Src: /src/git/revision.c:1753,1
    - Dst: add_pending_object_with_path
      Src: /src/git/revision.c:1755,1
    - Dst: strbuf_addf
      Src: /src/git/revision.c:1761,1
    - Dst: add_cache_tree
      Src: /src/git/revision.c:1762,1
    - Dst: strbuf_setlen
      Src: /src/git/revision.c:1763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - it
    - revs
    - path
    - flags
    argTypes:
    - struct cache_tree*
    - struct rev_info*
    - struct strbuf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1746
    functionDepth: 3
    functionLinenumber: 1746
    functionLinenumberEnd: 1766
    functionName: add_cache_tree
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - add_pending_object_with_path
    - strbuf_addf
    - strbuf_setlen
    - add_cache_tree
    - lookup_tree
    linkageType: ''
    returnType: void
    signature: "void add_cache_tree(struct cache_tree *it, struct rev_info *revs,\n\t\t\t
      \  struct strbuf *path, unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/revision.c:1786,1
    - Dst: lookup_blob
      Src: /src/git/revision.c:1789,1
    - Dst: warning
      Src: /src/git/revision.c:1791,1
    - Dst: _
      Src: /src/git/revision.c:1791,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:1792,1
    - Dst: add_pending_object_with_path
      Src: /src/git/revision.c:1795,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - istate
    - revs
    argTypes:
    - struct index_state*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1768
    functionDepth: 3
    functionLinenumber: 1768
    functionLinenumberEnd: 1799
    functionName: add_resolve_undo_to_pending
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - add_pending_object_with_path
    - lookup_blob
    - _
    - warning
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void add_resolve_undo_to_pending(struct index_state *istate, struct
      rev_info *revs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/revision.c:1786,1
    - Dst: lookup_blob
      Src: /src/git/revision.c:1789,1
    - Dst: warning
      Src: /src/git/revision.c:1791,1
    - Dst: _
      Src: /src/git/revision.c:1791,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:1792,1
    - Dst: add_pending_object_with_path
      Src: /src/git/revision.c:1795,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1776
    functionDepth: 3
    functionLinenumber: 1776
    functionLinenumberEnd: 1798
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/revision.c
    functionUses: 5
    functionsReached:
    - oid_to_hex
    - add_pending_object_with_path
    - lookup_blob
    - _
    - warning
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, resolve_undo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ensure_full_index
      Src: /src/git/revision.c:1808,1
    - Dst: S_ISGITLINK
      Src: /src/git/revision.c:1813,1
    - Dst: lookup_blob
      Src: /src/git/revision.c:1816,1
    - Dst: die
      Src: /src/git/revision.c:1818,1
    - Dst: add_pending_object_with_path
      Src: /src/git/revision.c:1820,1
    - Dst: add_cache_tree
      Src: /src/git/revision.c:1826,1
    - Dst: strbuf_release
      Src: /src/git/revision.c:1827,1
    - Dst: add_resolve_undo_to_pending
      Src: /src/git/revision.c:1830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - revs
    - istate
    - flags
    argTypes:
    - struct rev_info*
    - struct index_state*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1801
    functionDepth: 4
    functionLinenumber: 1801
    functionLinenumberEnd: 1831
    functionName: do_add_index_objects_to_pending
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - add_resolve_undo_to_pending
    - strbuf_release
    - die
    - add_pending_object_with_path
    - S_ISGITLINK
    - add_cache_tree
    - lookup_blob
    linkageType: ''
    returnType: void
    signature: "void do_add_index_objects_to_pending(struct rev_info *revs,\n\t\t\t\t\t
      \   struct index_state *istate,\n\t\t\t\t\t    unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/revision.c:1837,1
    - Dst: do_add_index_objects_to_pending
      Src: /src/git/revision.c:1838,1
    - Dst: get_worktrees
      Src: /src/git/revision.c:1843,1
    - Dst: INDEX_STATE_INIT
      Src: /src/git/revision.c:1846,1
    - Dst: get_worktree_git_dir
      Src: /src/git/revision.c:1852,1
    - Dst: read_index_from
      Src: /src/git/revision.c:1854,1
    - Dst: worktree_git_path
      Src: /src/git/revision.c:1855,1
    - Dst: do_add_index_objects_to_pending
      Src: /src/git/revision.c:1857,1
    - Dst: discard_index
      Src: /src/git/revision.c:1859,1
    - Dst: free
      Src: /src/git/revision.c:1860,1
    - Dst: free_worktrees
      Src: /src/git/revision.c:1862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - revs
    - flags
    argTypes:
    - struct rev_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1833
    functionDepth: 5
    functionLinenumber: 1833
    functionLinenumberEnd: 1863
    functionName: add_index_objects_to_pending
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - INDEX_STATE_INIT
    - get_worktrees
    - free_worktrees
    - repo_read_index
    - get_worktree_git_dir
    - worktree_git_path
    - free
    - read_index_from
    - do_add_index_objects_to_pending
    - discard_index
    linkageType: ''
    returnType: void
    signature: void add_index_objects_to_pending(struct rev_info *revs, unsigned int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_reference
      Src: /src/git/revision.c:1877,1
    - Dst: add_rev_cmdline
      Src: /src/git/revision.c:1878,1
    - Dst: add_pending_object
      Src: /src/git/revision.c:1879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - oid
    - vdata
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1870
    functionDepth: 5
    functionLinenumber: 1870
    functionLinenumberEnd: 1880
    functionName: add_one_alternate_ref
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_pending_object
    - get_reference
    - add_rev_cmdline
    linkageType: ''
    returnType: void
    signature: "void add_one_alternate_ref(const struct object_id *oid,\n\t\t\t\t
      \ void *vdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_for_each_alternate_ref
      Src: /src/git/revision.c:1888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - revs
    - flags
    argTypes:
    - struct rev_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1882
    functionDepth: 1
    functionLinenumber: 1882
    functionLinenumberEnd: 1890
    functionName: add_alternate_refs_to_pending
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - odb_for_each_alternate_ref
    linkageType: ''
    returnType: void
    signature: "void add_alternate_refs_to_pending(struct rev_info *revs,\n\t\t\t\t\t
      \ unsigned int flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_committish
      Src: /src/git/revision.c:1906,1
    - Dst: get_reference
      Src: /src/git/revision.c:1909,1
    - Dst: oidcpy
      Src: /src/git/revision.c:1916,1
    - Dst: commit_list_count
      Src: /src/git/revision.c:1922,1
    - Dst: add_rev_cmdline
      Src: /src/git/revision.c:1932,1
    - Dst: add_pending_object
      Src: /src/git/revision.c:1933,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 4
    argNames:
    - revs
    - arg_
    - flags
    - exclude_parent
    argTypes:
    - struct rev_info*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1892
    functionDepth: 5
    functionLinenumber: 1892
    functionLinenumberEnd: 1936
    functionName: add_parents_only
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - get_reference
    - add_pending_object
    - repo_get_oid_committish
    - commit_list_count
    - add_rev_cmdline
    linkageType: ''
    returnType: int
    signature: "int add_parents_only(struct rev_info *revs, const char *arg_, int
      flags,\n\t\t\t    int exclude_parent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/revision.c:1943,1
    - Dst: grep_init
      Src: /src/git/revision.c:1952,1
    - Dst: repo_diff_setup
      Src: /src/git/revision.c:1955,1
    - Dst: strlen
      Src: /src/git/revision.c:1958,1
    - Dst: init_display_notes
      Src: /src/git/revision.c:1961,1
    - Dst: list_objects_filter_init
      Src: /src/git/revision.c:1962,1
    - Dst: init_ref_exclusions
      Src: /src/git/revision.c:1963,1
    - Dst: oidset_init
      Src: /src/git/revision.c:1964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - r
    - revs
    - prefix
    argTypes:
    - struct repository*
    - struct rev_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1938
    functionDepth: 1
    functionLinenumber: 1938
    functionLinenumberEnd: 1965
    functionName: repo_init_revisions
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - oidset_init
    - memcpy
    - grep_init
    - list_objects_filter_init
    - strlen
    - init_ref_exclusions
    - repo_diff_setup
    - init_display_notes
    linkageType: ''
    returnType: void
    signature: "void repo_init_revisions(struct repository *r,\n\t\t\t struct rev_info
      *revs,\n\t\t\t const char *prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pending_object
      Src: /src/git/revision.c:1974,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:1974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - revs
    - commit_list
    - flags
    argTypes:
    - struct rev_info*
    - struct commit_list*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1967
    functionDepth: 5
    functionLinenumber: 1967
    functionLinenumberEnd: 1977
    functionName: add_pending_commit_list
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_pending_object
    - oid_to_hex
    linkageType: ''
    returnType: void
    signature: "void add_pending_commit_list(struct rev_info *revs,\n\t\t\t\t    struct
      commit_list *commit_list,\n\t\t\t\t    unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/revision.c:1986,1
    - Dst: refs_read_ref_full
      Src: /src/git/revision.c:1987,1
    - Dst: get_main_ref_store
      Src: /src/git/revision.c:1987,1
    - Dst: is_null_oid
      Src: /src/git/revision.c:1990,1
    - Dst: die
      Src: /src/git/revision.c:1991,1
    - Dst: _
      Src: /src/git/revision.c:1991,1
    - Dst: die
      Src: /src/git/revision.c:1995,1
    - Dst: _
      Src: /src/git/revision.c:1995,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1979
    functionDepth: 3
    functionLinenumber: 1979
    functionLinenumberEnd: 1996
    functionName: lookup_other_head
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - die
    - is_null_oid
    - refs_read_ref_full
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: char
    signature: char *lookup_other_head(struct object_id *oid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/revision.c:2008,1
    - Dst: die
      Src: /src/git/revision.c:2009,1
    - Dst: lookup_commit_or_die
      Src: /src/git/revision.c:2010,1
    - Dst: lookup_other_head
      Src: /src/git/revision.c:2011,1
    - Dst: lookup_commit_or_die
      Src: /src/git/revision.c:2012,1
    - Dst: add_pending_object
      Src: /src/git/revision.c:2013,1
    - Dst: add_pending_object
      Src: /src/git/revision.c:2014,1
    - Dst: repo_get_merge_bases
      Src: /src/git/revision.c:2015,1
    - Dst: exit
      Src: /src/git/revision.c:2016,1
    - Dst: add_rev_cmdline_list
      Src: /src/git/revision.c:2017,1
    - Dst: add_pending_commit_list
      Src: /src/git/revision.c:2018,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:2019,1
    - Dst: repo_read_index
      Src: /src/git/revision.c:2023,1
    - Dst: ce_stage
      Src: /src/git/revision.c:2026,1
    - Dst: ce_path_match
      Src: /src/git/revision.c:2028,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/revision.c:2030,1
    - Dst: ce_same_name
      Src: /src/git/revision.c:2035,1
    - Dst: clear_pathspec
      Src: /src/git/revision.c:2038,1
    - Dst: parse_pathspec
      Src: /src/git/revision.c:2039,1
    - Dst: free
      Src: /src/git/revision.c:2042,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 1998
    functionDepth: 6
    functionLinenumber: 1998
    functionLinenumberEnd: 2043
    functionName: prepare_show_merge
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_pending_commit_list
    - ce_same_name
    - die
    - clear_pathspec
    - repo_read_index
    - repo_get_oid
    - exit
    - ce_stage
    - ce_path_match
    - repo_get_merge_bases
    - add_pending_object
    - commit_list_free
    - REALLOC_ARRAY
    - lookup_commit_or_die
    - free
    - parse_pathspec
    - add_rev_cmdline_list
    - lookup_other_head
    linkageType: ''
    returnType: void
    signature: void prepare_show_merge(struct rev_info *revs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/revision.c:2050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - full_name
    - revs
    - symmetric
    argTypes:
    - char*
    - struct rev_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2045
    functionDepth: 0
    functionLinenumber: 2045
    functionLinenumberEnd: 2053
    functionName: dotdot_missing
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: int
    signature: "int dotdot_missing(const char *full_name,\n\t\t\t  struct rev_info
      *revs, int symmetric)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_with_context
      Src: /src/git/revision.c:2074,1
    - Dst: get_oid_with_context
      Src: /src/git/revision.c:2075,1
    - Dst: verify_non_filename
      Src: /src/git/revision.c:2079,1
    - Dst: parse_object
      Src: /src/git/revision.c:2082,1
    - Dst: parse_object
      Src: /src/git/revision.c:2083,1
    - Dst: dotdot_missing
      Src: /src/git/revision.c:2085,1
    - Dst: lookup_commit_reference
      Src: /src/git/revision.c:2096,1
    - Dst: lookup_commit_reference
      Src: /src/git/revision.c:2097,1
    - Dst: dotdot_missing
      Src: /src/git/revision.c:2099,1
    - Dst: repo_get_merge_bases
      Src: /src/git/revision.c:2101,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:2102,1
    - Dst: add_rev_cmdline_list
      Src: /src/git/revision.c:2105,1
    - Dst: add_pending_commit_list
      Src: /src/git/revision.c:2107,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:2108,1
    - Dst: add_rev_cmdline
      Src: /src/git/revision.c:2116,1
    - Dst: add_rev_cmdline
      Src: /src/git/revision.c:2117,1
    - Dst: add_pending_object_with_path
      Src: /src/git/revision.c:2118,1
    - Dst: add_pending_object_with_path
      Src: /src/git/revision.c:2119,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 9
    argNames:
    - a_name
    - b_name
    - full_name
    - symmetric
    - revs
    - flags
    - cant_be_filename
    - a_oc
    - b_oc
    argTypes:
    - char*
    - char*
    - char*
    - int
    - struct rev_info*
    - int
    - int
    - struct object_context*
    - struct object_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2055
    functionDepth: 6
    functionLinenumber: 2055
    functionLinenumberEnd: 2121
    functionName: handle_dotdot_1
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_pending_commit_list
    - dotdot_missing
    - verify_non_filename
    - lookup_commit_reference
    - add_pending_object_with_path
    - parse_object
    - repo_get_merge_bases
    - commit_list_free
    - get_oid_with_context
    - add_rev_cmdline_list
    - add_rev_cmdline
    linkageType: ''
    returnType: int
    signature: "int handle_dotdot_1(const char *a_name, const char *b_name,\n\t\t\t
      \  const char *full_name, int symmetric,\n\t\t\t   struct rev_info *revs, int
      flags,\n\t\t\t   int cant_be_filename,\n\t\t\t   struct object_context *a_oc,\n\t\t\t
      \  struct object_context *b_oc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/revision.c:2128,1
    - Dst: xmemdupz
      Src: /src/git/revision.c:2136,1
    - Dst: handle_dotdot_1
      Src: /src/git/revision.c:2142,1
    - Dst: free
      Src: /src/git/revision.c:2144,1
    - Dst: object_context_release
      Src: /src/git/revision.c:2146,1
    - Dst: object_context_release
      Src: /src/git/revision.c:2147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - arg
    - revs
    - flags
    - cant_be_filename
    argTypes:
    - char*
    - struct rev_info*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2123
    functionDepth: 7
    functionLinenumber: 2123
    functionLinenumberEnd: 2149
    functionName: handle_dotdot
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strstr
    - object_context_release
    - free
    - handle_dotdot_1
    linkageType: ''
    returnType: int
    signature: "int handle_dotdot(const char *arg,\n\t\t\t struct rev_info *revs,
      int flags,\n\t\t\t int cant_be_filename)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/revision.c:2168,1
    - Dst: handle_dotdot
      Src: /src/git/revision.c:2177,1
    - Dst: strstr
      Src: /src/git/revision.c:2182,1
    - Dst: xmemdupz
      Src: /src/git/revision.c:2184,1
    - Dst: add_parents_only
      Src: /src/git/revision.c:2185,1
    - Dst: strstr
      Src: /src/git/revision.c:2190,1
    - Dst: xmemdupz
      Src: /src/git/revision.c:2192,1
    - Dst: add_parents_only
      Src: /src/git/revision.c:2193,1
    - Dst: strstr
      Src: /src/git/revision.c:2196,1
    - Dst: strtol_i
      Src: /src/git/revision.c:2201,1
    - Dst: xmemdupz
      Src: /src/git/revision.c:2208,1
    - Dst: add_parents_only
      Src: /src/git/revision.c:2209,1
    - Dst: get_oid_with_context
      Src: /src/git/revision.c:2227,1
    - Dst: verify_non_filename
      Src: /src/git/revision.c:2232,1
    - Dst: get_reference
      Src: /src/git/revision.c:2233,1
    - Dst: add_rev_cmdline
      Src: /src/git/revision.c:2238,1
    - Dst: add_pending_object_with_path
      Src: /src/git/revision.c:2239,1
    - Dst: object_context_release
      Src: /src/git/revision.c:2244,1
    - Dst: free
      Src: /src/git/revision.c:2245,1
    - Dst: free
      Src: /src/git/revision.c:2246,1
    - Dst: free
      Src: /src/git/revision.c:2247,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 4
    argNames:
    - arg_
    - revs
    - flags
    - revarg_opt
    argTypes:
    - char*
    - struct rev_info*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2151
    functionDepth: 8
    functionLinenumber: 2151
    functionLinenumberEnd: 2249
    functionName: handle_revision_arg_1
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - verify_non_filename
    - strstr
    - add_pending_object_with_path
    - get_reference
    - object_context_release
    - strtol_i
    - handle_dotdot
    - strcmp
    - free
    - get_oid_with_context
    - add_parents_only
    - add_rev_cmdline
    linkageType: ''
    returnType: int
    signature: int handle_revision_arg_1(const char *arg_, struct rev_info *revs,
      int flags, unsigned revarg_opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_revision_arg_1
      Src: /src/git/revision.c:2253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - arg
    - revs
    - flags
    - revarg_opt
    argTypes:
    - char*
    - struct rev_info*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2251
    functionDepth: 9
    functionLinenumber: 2251
    functionLinenumberEnd: 2257
    functionName: handle_revision_arg
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - handle_revision_arg_1
    linkageType: ''
    returnType: int
    signature: int handle_revision_arg(const char *arg, struct rev_info *revs, int
      flags, unsigned revarg_opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline
      Src: /src/git/revision.c:2262,1
    - Dst: strvec_push
      Src: /src/git/revision.c:2263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sb
    - prune
    argTypes:
    - struct strbuf*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2259
    functionDepth: 1
    functionLinenumber: 2259
    functionLinenumberEnd: 2264
    functionName: read_pathspec_from_stdin
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_getline
    linkageType: ''
    returnType: void
    signature: "void read_pathspec_from_stdin(struct strbuf *sb,\n\t\t\t\t     struct
      strvec *prune)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_grep_pattern
      Src: /src/git/revision.c:2268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - revs
    - ptn
    - what
    argTypes:
    - struct rev_info*
    - char*
    - enum grep_pat_token
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2266
    functionDepth: 1
    functionLinenumber: 2266
    functionLinenumberEnd: 2269
    functionName: add_grep
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - append_grep_pattern
    linkageType: ''
    returnType: void
    signature: void add_grep(struct rev_info *revs, const char *ptn, enum grep_pat_token
      what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_header_grep_pattern
      Src: /src/git/revision.c:2273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - revs
    - field
    - pattern
    argTypes:
    - struct rev_info*
    - enum grep_header_field
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2271
    functionDepth: 1
    functionLinenumber: 2271
    functionLinenumberEnd: 2274
    functionName: add_header_grep
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - append_header_grep_pattern
    linkageType: ''
    returnType: void
    signature: void add_header_grep(struct rev_info *revs, enum grep_header_field
      field, const char *pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_grep
      Src: /src/git/revision.c:2278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - revs
    - pattern
    argTypes:
    - struct rev_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2276
    functionDepth: 2
    functionLinenumber: 2276
    functionLinenumberEnd: 2279
    functionName: add_message_grep
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_grep
    linkageType: ''
    returnType: void
    signature: void add_message_grep(struct rev_info *revs, const char *pattern)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol_i
      Src: /src/git/revision.c:2285,1
    - Dst: die
      Src: /src/git/revision.c:2286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2281
    functionDepth: 1
    functionLinenumber: 2281
    functionLinenumberEnd: 2288
    functionName: parse_count
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - die
    - strtol_i
    linkageType: ''
    returnType: int
    signature: int parse_count(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_timestamp
      Src: /src/git/revision.c:2296,1
    - Dst: die
      Src: /src/git/revision.c:2298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2290
    functionDepth: 0
    functionLinenumber: 2290
    functionLinenumberEnd: 2300
    functionName: parse_age
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - die
    - parse_timestamp
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t parse_age(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/revision.c:2313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - argc
    - argv
    - value
    - opt
    argTypes:
    - int*
    - char**
    - char**
    - struct setup_revision_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2302
    functionDepth: 1
    functionLinenumber: 2302
    functionLinenumberEnd: 2318
    functionName: overwrite_argv
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void overwrite_argv(int *argc, const char **argv,\n\t\t\t   const
      char **value,\n\t\t\t   const struct setup_revision_opt *opt)"
  - BBCount: 126
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/revision.c:2330,1
    - Dst: strcmp
      Src: /src/git/revision.c:2330,1
    - Dst: strcmp
      Src: /src/git/revision.c:2331,1
    - Dst: strcmp
      Src: /src/git/revision.c:2331,1
    - Dst: strcmp
      Src: /src/git/revision.c:2332,1
    - Dst: strcmp
      Src: /src/git/revision.c:2332,1
    - Dst: strcmp
      Src: /src/git/revision.c:2333,1
    - Dst: strcmp
      Src: /src/git/revision.c:2333,1
    - Dst: strcmp
      Src: /src/git/revision.c:2334,1
    - Dst: starts_with
      Src: /src/git/revision.c:2334,1
    - Dst: strcmp
      Src: /src/git/revision.c:2335,1
    - Dst: strcmp
      Src: /src/git/revision.c:2336,1
    - Dst: starts_with
      Src: /src/git/revision.c:2337,1
    - Dst: starts_with
      Src: /src/git/revision.c:2337,1
    - Dst: starts_with
      Src: /src/git/revision.c:2338,1
    - Dst: starts_with
      Src: /src/git/revision.c:2338,1
    - Dst: starts_with
      Src: /src/git/revision.c:2339,1
    - Dst: starts_with
      Src: /src/git/revision.c:2339,1
    - Dst: overwrite_argv
      Src: /src/git/revision.c:2341,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2345,1
    - Dst: parse_count
      Src: /src/git/revision.c:2346,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2349,1
    - Dst: parse_count
      Src: /src/git/revision.c:2350,1
    - Dst: isdigit
      Src: /src/git/revision.c:2352,1
    - Dst: parse_count
      Src: /src/git/revision.c:2354,1
    - Dst: strcmp
      Src: /src/git/revision.c:2356,1
    - Dst: error
      Src: /src/git/revision.c:2358,1
    - Dst: parse_count
      Src: /src/git/revision.c:2359,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2362,1
    - Dst: parse_count
      Src: /src/git/revision.c:2363,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2365,1
    - Dst: parse_age
      Src: /src/git/revision.c:2366,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2368,1
    - Dst: approxidate
      Src: /src/git/revision.c:2369,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2371,1
    - Dst: approxidate
      Src: /src/git/revision.c:2372,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2374,1
    - Dst: approxidate
      Src: /src/git/revision.c:2375,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2377,1
    - Dst: parse_age
      Src: /src/git/revision.c:2378,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2380,1
    - Dst: approxidate
      Src: /src/git/revision.c:2381,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2383,1
    - Dst: approxidate
      Src: /src/git/revision.c:2384,1
    - Dst: strcmp
      Src: /src/git/revision.c:2386,1
    - Dst: strcmp
      Src: /src/git/revision.c:2388,1
    - Dst: strcmp
      Src: /src/git/revision.c:2390,1
    - Dst: strcmp
      Src: /src/git/revision.c:2392,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2397,1
    - Dst: _
      Src: /src/git/revision.c:2400,1
    - Dst: repo_get_oid_committish
      Src: /src/git/revision.c:2406,1
    - Dst: error
      Src: /src/git/revision.c:2407,1
    - Dst: get_reference
      Src: /src/git/revision.c:2408,1
    - Dst: lookup_commit_reference
      Src: /src/git/revision.c:2409,1
    - Dst: error
      Src: /src/git/revision.c:2411,1
    - Dst: commit_list_insert
      Src: /src/git/revision.c:2412,1
    - Dst: strcmp
      Src: /src/git/revision.c:2413,1
    - Dst: strcmp
      Src: /src/git/revision.c:2413,1
    - Dst: init_reflog_walk
      Src: /src/git/revision.c:2414,1
    - Dst: strcmp
      Src: /src/git/revision.c:2415,1
    - Dst: error
      Src: /src/git/revision.c:2417,1
    - Dst: strcmp
      Src: /src/git/revision.c:2420,1
    - Dst: strcmp
      Src: /src/git/revision.c:2422,1
    - Dst: strcmp
      Src: /src/git/revision.c:2425,1
    - Dst: strcmp
      Src: /src/git/revision.c:2431,1
    - Dst: strcmp
      Src: /src/git/revision.c:2439,1
    - Dst: strcmp
      Src: /src/git/revision.c:2442,1
    - Dst: strcmp
      Src: /src/git/revision.c:2445,1
    - Dst: strcmp
      Src: /src/git/revision.c:2448,1
    - Dst: strcmp
      Src: /src/git/revision.c:2450,1
    - Dst: strcmp
      Src: /src/git/revision.c:2452,1
    - Dst: strcmp
      Src: /src/git/revision.c:2454,1
    - Dst: strcmp
      Src: /src/git/revision.c:2456,1
    - Dst: strcmp
      Src: /src/git/revision.c:2458,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2460,1
    - Dst: parse_count
      Src: /src/git/revision.c:2461,1
    - Dst: strcmp
      Src: /src/git/revision.c:2462,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2464,1
    - Dst: parse_count
      Src: /src/git/revision.c:2465,1
    - Dst: strcmp
      Src: /src/git/revision.c:2466,1
    - Dst: strcmp
      Src: /src/git/revision.c:2468,1
    - Dst: strcmp
      Src: /src/git/revision.c:2470,1
    - Dst: strcmp
      Src: /src/git/revision.c:2472,1
    - Dst: die
      Src: /src/git/revision.c:2474,1
    - Dst: _
      Src: /src/git/revision.c:2474,1
    - Dst: strcmp
      Src: /src/git/revision.c:2478,1
    - Dst: die
      Src: /src/git/revision.c:2480,1
    - Dst: _
      Src: /src/git/revision.c:2480,1
    - Dst: strcmp
      Src: /src/git/revision.c:2483,1
    - Dst: die
      Src: /src/git/revision.c:2485,1
    - Dst: _
      Src: /src/git/revision.c:2485,1
    - Dst: strcmp
      Src: /src/git/revision.c:2490,1
    - Dst: strcmp
      Src: /src/git/revision.c:2492,1
    - Dst: die
      Src: /src/git/revision.c:2494,1
    - Dst: _
      Src: /src/git/revision.c:2494,1
    - Dst: strcmp
      Src: /src/git/revision.c:2497,1
    - Dst: die
      Src: /src/git/revision.c:2499,1
    - Dst: _
      Src: /src/git/revision.c:2499,1
    - Dst: strcmp
      Src: /src/git/revision.c:2502,1
    - Dst: strcmp
      Src: /src/git/revision.c:2506,1
    - Dst: strcmp
      Src: /src/git/revision.c:2511,1
    - Dst: strcmp
      Src: /src/git/revision.c:2517,1
    - Dst: disable_commit_graph
      Src: /src/git/revision.c:2522,1
    - Dst: strcmp
      Src: /src/git/revision.c:2523,1
    - Dst: starts_with
      Src: /src/git/revision.c:2525,1
    - Dst: die
      Src: /src/git/revision.c:2526,1
    - Dst: _
      Src: /src/git/revision.c:2526,1
    - Dst: strcmp
      Src: /src/git/revision.c:2527,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2531,1
    - Dst: strcmp
      Src: /src/git/revision.c:2533,1
    - Dst: strcmp
      Src: /src/git/revision.c:2535,1
    - Dst: strcmp
      Src: /src/git/revision.c:2537,1
    - Dst: strcmp
      Src: /src/git/revision.c:2540,1
    - Dst: diff_merges_parse_opts
      Src: /src/git/revision.c:2544,1
    - Dst: strcmp
      Src: /src/git/revision.c:2546,1
    - Dst: strcmp
      Src: /src/git/revision.c:2548,1
    - Dst: get_commit_format
      Src: /src/git/revision.c:2551,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2552,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2553,1
    - Dst: get_commit_format
      Src: /src/git/revision.c:2560,1
    - Dst: strcmp
      Src: /src/git/revision.c:2561,1
    - Dst: strcmp
      Src: /src/git/revision.c:2563,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2565,1
    - Dst: strtol_i
      Src: /src/git/revision.c:2567,1
    - Dst: die
      Src: /src/git/revision.c:2568,1
    - Dst: strcmp
      Src: /src/git/revision.c:2570,1
    - Dst: strcmp
      Src: /src/git/revision.c:2570,1
    - Dst: enable_default_display_notes
      Src: /src/git/revision.c:2571,1
    - Dst: strcmp
      Src: /src/git/revision.c:2573,1
    - Dst: strcmp
      Src: /src/git/revision.c:2575,1
    - Dst: strcmp
      Src: /src/git/revision.c:2577,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2581,1
    - Dst: xstrdup
      Src: /src/git/revision.c:2582,1
    - Dst: strcmp
      Src: /src/git/revision.c:2585,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2587,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2588,1
    - Dst: starts_with
      Src: /src/git/revision.c:2589,1
    - Dst: enable_ref_display_notes
      Src: /src/git/revision.c:2592,1
    - Dst: strcmp
      Src: /src/git/revision.c:2594,1
    - Dst: disable_display_notes
      Src: /src/git/revision.c:2595,1
    - Dst: strcmp
      Src: /src/git/revision.c:2597,1
    - Dst: strcmp
      Src: /src/git/revision.c:2600,1
    - Dst: strcmp
      Src: /src/git/revision.c:2602,1
    - Dst: get_commit_format
      Src: /src/git/revision.c:2604,1
    - Dst: strcmp
      Src: /src/git/revision.c:2607,1
    - Dst: graph_clear
      Src: /src/git/revision.c:2608,1
    - Dst: graph_init
      Src: /src/git/revision.c:2609,1
    - Dst: strcmp
      Src: /src/git/revision.c:2610,1
    - Dst: graph_clear
      Src: /src/git/revision.c:2611,1
    - Dst: strcmp
      Src: /src/git/revision.c:2613,1
    - Dst: strcmp
      Src: /src/git/revision.c:2615,1
    - Dst: strcmp
      Src: /src/git/revision.c:2617,1
    - Dst: strcmp
      Src: /src/git/revision.c:2619,1
    - Dst: strcmp
      Src: /src/git/revision.c:2621,1
    - Dst: strcmp
      Src: /src/git/revision.c:2623,1
    - Dst: strcmp
      Src: /src/git/revision.c:2625,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2627,1
    - Dst: strtoul
      Src: /src/git/revision.c:2628,1
    - Dst: strcmp
      Src: /src/git/revision.c:2633,1
    - Dst: strcmp
      Src: /src/git/revision.c:2636,1
    - Dst: strcmp
      Src: /src/git/revision.c:2638,1
    - Dst: strcmp
      Src: /src/git/revision.c:2641,1
    - Dst: strcmp
      Src: /src/git/revision.c:2643,1
    - Dst: strcmp
      Src: /src/git/revision.c:2645,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2648,1
    - Dst: parse_date_format
      Src: /src/git/revision.c:2649,1
    - Dst: strcmp
      Src: /src/git/revision.c:2652,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2658,1
    - Dst: add_header_grep
      Src: /src/git/revision.c:2659,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2661,1
    - Dst: add_header_grep
      Src: /src/git/revision.c:2662,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2664,1
    - Dst: add_header_grep
      Src: /src/git/revision.c:2665,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2667,1
    - Dst: add_message_grep
      Src: /src/git/revision.c:2668,1
    - Dst: strcmp
      Src: /src/git/revision.c:2670,1
    - Dst: strcmp
      Src: /src/git/revision.c:2672,1
    - Dst: strcmp
      Src: /src/git/revision.c:2672,1
    - Dst: strcmp
      Src: /src/git/revision.c:2674,1
    - Dst: strcmp
      Src: /src/git/revision.c:2674,1
    - Dst: strcmp
      Src: /src/git/revision.c:2677,1
    - Dst: strcmp
      Src: /src/git/revision.c:2677,1
    - Dst: strcmp
      Src: /src/git/revision.c:2679,1
    - Dst: strcmp
      Src: /src/git/revision.c:2679,1
    - Dst: strcmp
      Src: /src/git/revision.c:2681,1
    - Dst: strcmp
      Src: /src/git/revision.c:2683,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2685,1
    - Dst: free
      Src: /src/git/revision.c:2686,1
    - Dst: strcmp
      Src: /src/git/revision.c:2687,1
    - Dst: xstrdup
      Src: /src/git/revision.c:2688,1
    - Dst: xstrdup
      Src: /src/git/revision.c:2690,1
    - Dst: strcmp
      Src: /src/git/revision.c:2692,1
    - Dst: strcmp
      Src: /src/git/revision.c:2694,1
    - Dst: strcmp
      Src: /src/git/revision.c:2697,1
    - Dst: strcmp
      Src: /src/git/revision.c:2700,1
    - Dst: BUG
      Src: /src/git/revision.c:2702,1
    - Dst: diff_opt_parse
      Src: /src/git/revision.c:2705,1
    - Dst: overwrite_argv
      Src: /src/git/revision.c:2707,1
    CyclomaticComplexity: 155
    EdgeCount: 155
    ICount: 454
    argCount: 6
    argNames:
    - revs
    - argc
    - argv
    - unkc
    - unkv
    - opt
    argTypes:
    - struct rev_info*
    - int
    - char**
    - int*
    - char**
    - struct setup_revision_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2320
    functionDepth: 4
    functionLinenumber: 2320
    functionLinenumberEnd: 2712
    functionName: handle_revision_opt
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - disable_commit_graph
    - BUG
    - strcmp
    - free
    - parse_long_opt
    - graph_clear
    - add_message_grep
    - parse_count
    - error
    - die
    - enable_ref_display_notes
    - overwrite_argv
    - graph_init
    - lookup_commit_reference
    - parse_date_format
    - strtol_i
    - get_commit_format
    - diff_merges_parse_opts
    - strtoul
    - approxidate
    - get_reference
    - _
    - skip_prefix
    - xstrdup
    - disable_display_notes
    - enable_default_display_notes
    - add_header_grep
    - starts_with
    - isdigit
    - diff_opt_parse
    - repo_get_oid_committish
    - init_reflog_walk
    - commit_list_insert
    - parse_age
    linkageType: ''
    returnType: int
    signature: "int handle_revision_opt(struct rev_info *revs, int argc, const char
      **argv,\n\t\t\t       int *unkc, const char **unkv,\n\t\t\t       const struct
      setup_revision_opt* opt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_revision_opt
      Src: /src/git/revision.c:2718,1
    - Dst: error
      Src: /src/git/revision.c:2721,1
    - Dst: usage_with_options
      Src: /src/git/revision.c:2722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - revs
    - ctx
    - options
    - usagestr
    argTypes:
    - struct rev_info*
    - struct parse_opt_ctx_t*
    - struct option*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2714
    functionDepth: 5
    functionLinenumber: 2714
    functionLinenumberEnd: 2726
    functionName: parse_revision_opt
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - error
    - handle_revision_opt
    - usage_with_options
    linkageType: ''
    returnType: void
    signature: "void parse_revision_opt(struct rev_info *revs, struct parse_opt_ctx_t
      *ctx,\n\t\t\tconst struct option *options,\n\t\t\tconst char * const usagestr[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/revision.c:2731,1
    - Dst: _
      Src: /src/git/revision.c:2731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2728
    functionDepth: 0
    functionLinenumber: 2728
    functionLinenumberEnd: 2737
    functionName: revision_opts_finish
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void revision_opts_finish(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/revision.c:2745,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/revision.c:2747,1
    - Dst: strbuf_release
      Src: /src/git/revision.c:2748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - refs
    - fn
    - cb_data
    - term
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2739
    functionDepth: 3
    functionLinenumber: 2739
    functionLinenumberEnd: 2750
    functionName: for_each_bisect_ref
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: int
    signature: "int for_each_bisect_ref(struct ref_store *refs, refs_for_each_cb fn,\n\t\t\t
      \      void *cb_data, const char *term)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_bisect_ref
      Src: /src/git/revision.c:2754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - refs
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2752
    functionDepth: 4
    functionLinenumber: 2752
    functionLinenumberEnd: 2755
    functionName: for_each_bad_bisect_ref
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - for_each_bisect_ref
    linkageType: ''
    returnType: int
    signature: int for_each_bad_bisect_ref(struct ref_store *refs, refs_for_each_cb
      fn, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_bisect_ref
      Src: /src/git/revision.c:2759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - refs
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2757
    functionDepth: 4
    functionLinenumber: 2757
    functionLinenumberEnd: 2760
    functionName: for_each_good_bisect_ref
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - for_each_bisect_ref
    linkageType: ''
    returnType: int
    signature: int for_each_good_bisect_ref(struct ref_store *refs, refs_for_each_cb
      fn, void *cb_data)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/revision.c:2778,1
    - Dst: get_main_ref_store
      Src: /src/git/revision.c:2780,1
    - Dst: strcmp
      Src: /src/git/revision.c:2792,1
    - Dst: handle_refs
      Src: /src/git/revision.c:2793,1
    - Dst: handle_refs
      Src: /src/git/revision.c:2794,1
    - Dst: init_all_refs_cb
      Src: /src/git/revision.c:2798,1
    - Dst: other_head_refs
      Src: /src/git/revision.c:2799,1
    - Dst: clear_ref_exclusions
      Src: /src/git/revision.c:2801,1
    - Dst: strcmp
      Src: /src/git/revision.c:2802,1
    - Dst: error
      Src: /src/git/revision.c:2804,1
    - Dst: _
      Src: /src/git/revision.c:2804,1
    - Dst: handle_refs
      Src: /src/git/revision.c:2806,1
    - Dst: clear_ref_exclusions
      Src: /src/git/revision.c:2807,1
    - Dst: strcmp
      Src: /src/git/revision.c:2808,1
    - Dst: read_bisect_terms
      Src: /src/git/revision.c:2809,1
    - Dst: handle_refs
      Src: /src/git/revision.c:2810,1
    - Dst: handle_refs
      Src: /src/git/revision.c:2811,1
    - Dst: strcmp
      Src: /src/git/revision.c:2814,1
    - Dst: error
      Src: /src/git/revision.c:2816,1
    - Dst: _
      Src: /src/git/revision.c:2816,1
    - Dst: handle_refs
      Src: /src/git/revision.c:2818,1
    - Dst: clear_ref_exclusions
      Src: /src/git/revision.c:2819,1
    - Dst: strcmp
      Src: /src/git/revision.c:2820,1
    - Dst: error
      Src: /src/git/revision.c:2822,1
    - Dst: _
      Src: /src/git/revision.c:2822,1
    - Dst: handle_refs
      Src: /src/git/revision.c:2824,1
    - Dst: clear_ref_exclusions
      Src: /src/git/revision.c:2825,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2826,1
    - Dst: init_all_refs_cb
      Src: /src/git/revision.c:2831,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/revision.c:2832,1
    - Dst: get_main_ref_store
      Src: /src/git/revision.c:2832,1
    - Dst: clear_ref_exclusions
      Src: /src/git/revision.c:2834,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2836,1
    - Dst: add_ref_exclusion
      Src: /src/git/revision.c:2837,1
    - Dst: parse_long_opt
      Src: /src/git/revision.c:2839,1
    - Dst: exclude_hidden_refs
      Src: /src/git/revision.c:2840,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2842,1
    - Dst: strlen
      Src: /src/git/revision.c:2845,1
    - Dst: error
      Src: /src/git/revision.c:2850,1
    - Dst: _
      Src: /src/git/revision.c:2850,1
    - Dst: init_all_refs_cb
      Src: /src/git/revision.c:2852,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/revision.c:2853,1
    - Dst: get_main_ref_store
      Src: /src/git/revision.c:2853,1
    - Dst: clear_ref_exclusions
      Src: /src/git/revision.c:2855,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2856,1
    - Dst: strlen
      Src: /src/git/revision.c:2859,1
    - Dst: error
      Src: /src/git/revision.c:2864,1
    - Dst: _
      Src: /src/git/revision.c:2864,1
    - Dst: init_all_refs_cb
      Src: /src/git/revision.c:2866,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/revision.c:2867,1
    - Dst: get_main_ref_store
      Src: /src/git/revision.c:2867,1
    - Dst: clear_ref_exclusions
      Src: /src/git/revision.c:2869,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2870,1
    - Dst: strlen
      Src: /src/git/revision.c:2873,1
    - Dst: error
      Src: /src/git/revision.c:2878,1
    - Dst: _
      Src: /src/git/revision.c:2878,1
    - Dst: init_all_refs_cb
      Src: /src/git/revision.c:2880,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/revision.c:2881,1
    - Dst: get_main_ref_store
      Src: /src/git/revision.c:2881,1
    - Dst: clear_ref_exclusions
      Src: /src/git/revision.c:2883,1
    - Dst: strcmp
      Src: /src/git/revision.c:2884,1
    - Dst: add_reflogs_to_pending
      Src: /src/git/revision.c:2885,1
    - Dst: strcmp
      Src: /src/git/revision.c:2886,1
    - Dst: add_index_objects_to_pending
      Src: /src/git/revision.c:2887,1
    - Dst: strcmp
      Src: /src/git/revision.c:2888,1
    - Dst: add_alternate_refs_to_pending
      Src: /src/git/revision.c:2889,1
    - Dst: strcmp
      Src: /src/git/revision.c:2890,1
    - Dst: strcmp
      Src: /src/git/revision.c:2892,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2894,1
    - Dst: strcmp
      Src: /src/git/revision.c:2900,1
    - Dst: strcmp
      Src: /src/git/revision.c:2902,1
    - Dst: error
      Src: /src/git/revision.c:2905,1
    - Dst: strcmp
      Src: /src/git/revision.c:2906,1
    - Dst: strcmp
      Src: /src/git/revision.c:2908,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2910,1
    - Dst: parse_list_objects_filter
      Src: /src/git/revision.c:2911,1
    - Dst: strcmp
      Src: /src/git/revision.c:2912,1
    - Dst: list_objects_filter_set_no_filter
      Src: /src/git/revision.c:2913,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 112
    argCount: 3
    argNames:
    - revs
    - argv
    - flags
    argTypes:
    - struct rev_info*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2762
    functionDepth: 6
    functionLinenumber: 2762
    functionLinenumberEnd: 2919
    functionName: handle_revision_pseudo_opt
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - clear_ref_exclusions
    - handle_refs
    - list_objects_filter_set_no_filter
    - strcmp
    - add_index_objects_to_pending
    - parse_long_opt
    - exclude_hidden_refs
    - get_main_ref_store
    - error
    - parse_list_objects_filter
    - add_alternate_refs_to_pending
    - add_ref_exclusion
    - init_all_refs_cb
    - read_bisect_terms
    - _
    - skip_prefix
    - refs_for_each_ref_ext
    - strlen
    - other_head_refs
    - BUG
    - add_reflogs_to_pending
    linkageType: ''
    returnType: int
    signature: "int handle_revision_pseudo_opt(struct rev_info *revs,\n\t\t\t\t      const
      char **argv, int *flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/revision.c:2933,1
    - Dst: strbuf_getline
      Src: /src/git/revision.c:2934,1
    - Dst: strcmp
      Src: /src/git/revision.c:2938,1
    - Dst: strcmp
      Src: /src/git/revision.c:2946,1
    - Dst: handle_revision_pseudo_opt
      Src: /src/git/revision.c:2951,1
    - Dst: die
      Src: /src/git/revision.c:2954,1
    - Dst: _
      Src: /src/git/revision.c:2954,1
    - Dst: handle_revision_arg
      Src: /src/git/revision.c:2957,1
    - Dst: die
      Src: /src/git/revision.c:2959,1
    - Dst: read_pathspec_from_stdin
      Src: /src/git/revision.c:2962,1
    - Dst: strbuf_release
      Src: /src/git/revision.c:2964,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - revs
    - prune
    argTypes:
    - struct rev_info*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2921
    functionDepth: 10
    functionLinenumber: 2921
    functionLinenumberEnd: 2966
    functionName: read_revisions_from_stdin
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - handle_revision_arg
    - read_pathspec_from_stdin
    - handle_revision_pseudo_opt
    - strcmp
    - strbuf_getline
    - strbuf_init
    - _
    linkageType: ''
    returnType: void
    signature: "void read_revisions_from_stdin(struct rev_info *revs,\n\t\t\t\t      struct
      strvec *prune)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/revision.c:2973,1
    - Dst: get_main_ref_store
      Src: /src/git/revision.c:2973,1
    - Dst: die
      Src: /src/git/revision.c:2976,1
    - Dst: _
      Src: /src/git/revision.c:2976,1
    - Dst: skip_prefix
      Src: /src/git/revision.c:2978,1
    - Dst: die
      Src: /src/git/revision.c:2979,1
    - Dst: _
      Src: /src/git/revision.c:2979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - def
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2981
      start: 2968
    functionDepth: 5
    functionLinenumber: 2968
    functionLinenumberEnd: 2981
    functionName: diagnose_missing_default
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - die
    - refs_resolve_ref_unsafe
    - _
    - skip_prefix
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void diagnose_missing_default(const char *def)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/revision.c:3003,1
    - Dst: free
      Src: /src/git/revision.c:3006,1
    - Dst: strvec_pushv
      Src: /src/git/revision.c:3010,1
    - Dst: handle_revision_pseudo_opt
      Src: /src/git/revision.c:3026,1
    - Dst: strcmp
      Src: /src/git/revision.c:3034,1
    - Dst: overwrite_argv
      Src: /src/git/revision.c:3036,1
    - Dst: die
      Src: /src/git/revision.c:3040,1
    - Dst: read_revisions_from_stdin
      Src: /src/git/revision.c:3041,1
    - Dst: strcmp
      Src: /src/git/revision.c:3045,1
    - Dst: handle_revision_opt
      Src: /src/git/revision.c:3050,1
    - Dst: exit
      Src: /src/git/revision.c:3057,1
    - Dst: handle_revision_arg
      Src: /src/git/revision.c:3062,1
    - Dst: die
      Src: /src/git/revision.c:3065,1
    - Dst: verify_filename
      Src: /src/git/revision.c:3074,1
    - Dst: strvec_pushv
      Src: /src/git/revision.c:3076,1
    - Dst: revision_opts_finish
      Src: /src/git/revision.c:3080,1
    - Dst: parse_pathspec
      Src: /src/git/revision.c:3097,1
    - Dst: strvec_clear
      Src: /src/git/revision.c:3100,1
    - Dst: struct setup_revision_opt*::tweak
      Src: /src/git/revision.c:3105,1
    - Dst: prepare_show_merge
      Src: /src/git/revision.c:3107,1
    - Dst: get_oid_with_context
      Src: /src/git/revision.c:3112,1
    - Dst: diagnose_missing_default
      Src: /src/git/revision.c:3113,1
    - Dst: get_reference
      Src: /src/git/revision.c:3114,1
    - Dst: add_pending_object_with_mode
      Src: /src/git/revision.c:3115,1
    - Dst: object_context_release
      Src: /src/git/revision.c:3116,1
    - Dst: want_ancestry
      Src: /src/git/revision.c:3133,1
    - Dst: generation_numbers_enabled
      Src: /src/git/revision.c:3140,1
    - Dst: copy_pathspec
      Src: /src/git/revision.c:3144,1
    - Dst: copy_pathspec
      Src: /src/git/revision.c:3149,1
    - Dst: diff_merges_setup_revs
      Src: /src/git/revision.c:3153,1
    - Dst: diff_setup_done
      Src: /src/git/revision.c:3157,1
    - Dst: is_encoding_utf8
      Src: /src/git/revision.c:3159,1
    - Dst: get_log_output_encoding
      Src: /src/git/revision.c:3159,1
    - Dst: compile_grep_patterns
      Src: /src/git/revision.c:3161,1
    - Dst: die
      Src: /src/git/revision.c:3164,1
    - Dst: die
      Src: /src/git/revision.c:3166,1
    - Dst: _
      Src: /src/git/revision.c:3166,1
    - Dst: die
      Src: /src/git/revision.c:3168,1
    - Dst: _
      Src: /src/git/revision.c:3168,1
    - Dst: die_for_incompatible_opt3
      Src: /src/git/revision.c:3173,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/revision.c:3177,1
    - Dst: die
      Src: /src/git/revision.c:3181,1
    - Dst: _
      Src: /src/git/revision.c:3181,1
    - Dst: die
      Src: /src/git/revision.c:3183,1
    - Dst: _
      Src: /src/git/revision.c:3183,1
    - Dst: die
      Src: /src/git/revision.c:3187,1
    - Dst: _
      Src: /src/git/revision.c:3187,1
    - Dst: enable_default_display_notes
      Src: /src/git/revision.c:3193,1
    - Dst: free
      Src: /src/git/revision.c:3199,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 133
    argCount: 4
    argNames:
    - argc
    - argv
    - revs
    - opt
    argTypes:
    - int
    - char**
    - struct rev_info*
    - struct setup_revision_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3204
      start: 2990
    functionDepth: 11
    functionLinenumber: 2990
    functionLinenumberEnd: 3204
    functionName: setup_revisions
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - object_context_release
    - read_revisions_from_stdin
    - add_pending_object_with_mode
    - strcmp
    - free
    - get_oid_with_context
    - die
    - overwrite_argv
    - is_encoding_utf8
    - revision_opts_finish
    - die_for_incompatible_opt2
    - handle_revision_arg
    - compile_grep_patterns
    - diff_setup_done
    - parse_pathspec
    - diff_merges_setup_revs
    - handle_revision_opt
    - prepare_show_merge
    - copy_pathspec
    - strvec_pushv
    - diagnose_missing_default
    - get_reference
    - _
    - verify_filename
    - generation_numbers_enabled
    - exit
    - enable_default_display_notes
    - strvec_clear
    - handle_revision_pseudo_opt
    - get_log_output_encoding
    - die_for_incompatible_opt3
    - want_ancestry
    - struct setup_revision_opt*::tweak
    linkageType: ''
    returnType: int
    signature: int setup_revisions(int argc, const char **argv, struct rev_info *revs,
      struct setup_revision_opt *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/revision.c:3213,1
    - Dst: setup_revisions
      Src: /src/git/revision.c:3218,1
    - Dst: free
      Src: /src/git/revision.c:3221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - argv
    - revs
    - opt
    argTypes:
    - struct strvec*
    - struct rev_info*
    - struct setup_revision_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3223
      start: 3206
    functionDepth: 12
    functionLinenumber: 3206
    functionLinenumberEnd: 3223
    functionName: setup_revisions_from_strvec
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - setup_revisions
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: "void setup_revisions_from_strvec(struct strvec *argv, struct rev_info
      *revs,\n\t\t\t\t struct setup_revision_opt *opt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/revision.c:3230,1
    - Dst: free
      Src: /src/git/revision.c:3231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - struct rev_cmdline_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3232
      start: 3225
    functionDepth: 1
    functionLinenumber: 3225
    functionLinenumberEnd: 3232
    functionName: release_revisions_cmdline
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void release_revisions_cmdline(struct rev_cmdline_info *cmdline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_mailmap
      Src: /src/git/revision.c:3238,1
    - Dst: free
      Src: /src/git/revision.c:3239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mailmap
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3240
      start: 3234
    functionDepth: 1
    functionLinenumber: 3234
    functionLinenumberEnd: 3240
    functionName: release_revisions_mailmap
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - clear_mailmap
    - free
    linkageType: ''
    returnType: void
    signature: void release_revisions_mailmap(struct string_list *mailmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bloom_keyvec_free
      Src: /src/git/revision.c:3247,1
    - Dst: FREE_AND_NULL
      Src: /src/git/revision.c:3248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3250
      start: 3244
    functionDepth: 1
    functionLinenumber: 3244
    functionLinenumberEnd: 3250
    functionName: release_revisions_bloom_keyvecs
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - FREE_AND_NULL
    - bloom_keyvec_free
    linkageType: ''
    returnType: void
    signature: void release_revisions_bloom_keyvecs(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_free
      Src: /src/git/revision.c:3254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3255
      start: 3252
    functionDepth: 1
    functionLinenumber: 3252
    functionLinenumberEnd: 3255
    functionName: free_void_commit_list
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_list_free
    linkageType: ''
    returnType: void
    signature: void free_void_commit_list(void *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_free
      Src: /src/git/revision.c:3259,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:3260,1
    - Dst: release_display_notes
      Src: /src/git/revision.c:3261,1
    - Dst: object_array_clear
      Src: /src/git/revision.c:3262,1
    - Dst: object_array_clear
      Src: /src/git/revision.c:3263,1
    - Dst: release_revisions_cmdline
      Src: /src/git/revision.c:3264,1
    - Dst: list_objects_filter_release
      Src: /src/git/revision.c:3265,1
    - Dst: clear_pathspec
      Src: /src/git/revision.c:3266,1
    - Dst: date_mode_release
      Src: /src/git/revision.c:3267,1
    - Dst: release_revisions_mailmap
      Src: /src/git/revision.c:3268,1
    - Dst: free_grep_patterns
      Src: /src/git/revision.c:3269,1
    - Dst: graph_clear
      Src: /src/git/revision.c:3270,1
    - Dst: diff_free
      Src: /src/git/revision.c:3271,1
    - Dst: diff_free
      Src: /src/git/revision.c:3272,1
    - Dst: reflog_walk_info_release
      Src: /src/git/revision.c:3273,1
    - Dst: release_revisions_topo_walk_info
      Src: /src/git/revision.c:3274,1
    - Dst: clear_decoration
      Src: /src/git/revision.c:3275,1
    - Dst: clear_decoration
      Src: /src/git/revision.c:3276,1
    - Dst: clear_decoration
      Src: /src/git/revision.c:3277,1
    - Dst: line_log_free
      Src: /src/git/revision.c:3278,1
    - Dst: oidset_clear
      Src: /src/git/revision.c:3279,1
    - Dst: release_revisions_bloom_keyvecs
      Src: /src/git/revision.c:3280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3281
      start: 3257
    functionDepth: 3
    functionLinenumber: 3257
    functionLinenumberEnd: 3281
    functionName: release_revisions
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - clear_pathspec
    - date_mode_release
    - object_array_clear
    - clear_decoration
    - line_log_free
    - diff_free
    - graph_clear
    - oidset_clear
    - release_revisions_mailmap
    - release_revisions_cmdline
    - commit_list_free
    - release_revisions_bloom_keyvecs
    - release_display_notes
    - free_grep_patterns
    - list_objects_filter_release
    - release_revisions_topo_walk_info
    - reflog_walk_info_release
    linkageType: ''
    returnType: void
    signature: void release_revisions(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/revision.c:3285,1
    - Dst: add_decoration
      Src: /src/git/revision.c:3288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - revs
    - parent
    - child
    argTypes:
    - struct rev_info*
    - struct commit*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3289
      start: 3283
    functionDepth: 1
    functionLinenumber: 3283
    functionLinenumberEnd: 3289
    functionName: add_child
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_decoration
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void add_child(struct rev_info *revs, struct commit *parent, struct
      commit *child)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_decoration
      Src: /src/git/revision.c:3293,1
    - Dst: free
      Src: /src/git/revision.c:3304,1
    - Dst: compact_treesame
      Src: /src/git/revision.c:3306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3319
      start: 3291
    functionDepth: 4
    functionLinenumber: 3291
    functionLinenumberEnd: 3319
    functionName: remove_duplicate_parents
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - compact_treesame
    - lookup_decoration
    - free
    linkageType: ''
    returnType: int
    signature: int remove_duplicate_parents(struct rev_info *revs, struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_decoration
      Src: /src/git/revision.c:3329,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/revision.c:3331,1
    - Dst: add_decoration
      Src: /src/git/revision.c:3332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3335
      start: 3325
    functionDepth: 1
    functionLinenumber: 3325
    functionLinenumberEnd: 3335
    functionName: locate_simplify_state
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_decoration
    - lookup_decoration
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct merge_simplify_state
    signature: struct merge_simplify_state *locate_simplify_state(struct rev_info
      *revs, struct commit *commit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reduce_heads
      Src: /src/git/revision.c:3339,1
    - Dst: commit_list_count
      Src: /src/git/revision.c:3344,1
    - Dst: commit_list_count
      Src: /src/git/revision.c:3345,1
    - Dst: die
      Src: /src/git/revision.c:3366,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:3368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3371
      start: 3337
    functionDepth: 1
    functionLinenumber: 3337
    functionLinenumberEnd: 3371
    functionName: mark_redundant_parents
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - reduce_heads
    - commit_list_free
    - die
    - commit_list_count
    linkageType: ''
    returnType: int
    signature: int mark_redundant_parents(struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3387
      start: 3373
    functionDepth: 0
    functionLinenumber: 3373
    functionLinenumberEnd: 3387
    functionName: mark_treesame_root_parents
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mark_treesame_root_parents(struct commit *commit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lookup_decoration
      Src: /src/git/revision.c:3396,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3454
      start: 3394
    functionDepth: 1
    functionLinenumber: 3394
    functionLinenumberEnd: 3454
    functionName: leave_one_treesame_to_parent
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - lookup_decoration
    linkageType: ''
    returnType: int
    signature: int leave_one_treesame_to_parent(struct rev_info *revs, struct commit
      *commit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/revision.c:3468,1
    - Dst: compact_treesame
      Src: /src/git/revision.c:3470,1
    - Dst: update_treesame
      Src: /src/git/revision.c:3479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3456
    functionDepth: 4
    functionLinenumber: 3456
    functionLinenumberEnd: 3482
    functionName: remove_marked_parents
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - compact_treesame
    - update_treesame
    - free
    linkageType: ''
    returnType: int
    signature: int remove_marked_parents(struct rev_info *revs, struct commit *commit)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: locate_simplify_state
      Src: /src/git/revision.c:3491,1
    - Dst: locate_simplify_state
      Src: /src/git/revision.c:3515,1
    - Dst: commit_list_insert
      Src: /src/git/revision.c:3517,1
    - Dst: commit_list_insert
      Src: /src/git/revision.c:3524,1
    - Dst: locate_simplify_state
      Src: /src/git/revision.c:3534,1
    - Dst: remove_duplicate_parents
      Src: /src/git/revision.c:3543,1
    - Dst: mark_redundant_parents
      Src: /src/git/revision.c:3565,1
    - Dst: mark_treesame_root_parents
      Src: /src/git/revision.c:3566,1
    - Dst: leave_one_treesame_to_parent
      Src: /src/git/revision.c:3568,1
    - Dst: remove_marked_parents
      Src: /src/git/revision.c:3570,1
    - Dst: one_relevant_parent
      Src: /src/git/revision.c:3586,1
    - Dst: locate_simplify_state
      Src: /src/git/revision.c:3590,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3594
      start: 3484
    functionDepth: 5
    functionLinenumber: 3484
    functionLinenumberEnd: 3594
    functionName: simplify_one
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - remove_duplicate_parents
    - mark_treesame_root_parents
    - remove_marked_parents
    - leave_one_treesame_to_parent
    - locate_simplify_state
    - commit_list_insert
    - one_relevant_parent
    - mark_redundant_parents
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list **simplify_one(struct rev_info *revs, struct commit
      *commit, struct commit_list **tail)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/revision.c:3614,1
    - Dst: pop_commit
      Src: /src/git/revision.c:3621,1
    - Dst: simplify_one
      Src: /src/git/revision.c:3622,1
    - Dst: pop_commit
      Src: /src/git/revision.c:3633,1
    - Dst: locate_simplify_state
      Src: /src/git/revision.c:3634,1
    - Dst: commit_list_insert
      Src: /src/git/revision.c:3636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3638
      start: 3596
    functionDepth: 6
    functionLinenumber: 3596
    functionLinenumberEnd: 3638
    functionName: simplify_merges
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - pop_commit
    - locate_simplify_state
    - simplify_one
    - commit_list_insert
    linkageType: ''
    returnType: void
    signature: void simplify_merges(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_child
      Src: /src/git/revision.c:3648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3650
      start: 3640
    functionDepth: 0
    functionLinenumber: 3640
    functionLinenumberEnd: 3650
    functionName: set_children
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - add_child
    linkageType: ''
    returnType: void
    signature: void set_children(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_object_flags
      Src: /src/git/revision.c:3654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3656
      start: 3652
    functionDepth: 1
    functionLinenumber: 3652
    functionLinenumberEnd: 3656
    functionName: reset_revision_walk
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - clear_object_flags
    linkageType: ''
    returnType: void
    signature: void reset_revision_walk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_unknown_object
      Src: /src/git/revision.c:3663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - cb
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3666
      start: 3658
    functionDepth: 4
    functionLinenumber: 3658
    functionLinenumberEnd: 3666
    functionName: mark_uninteresting
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - lookup_unknown_object
    linkageType: ''
    returnType: int
    signature: "int mark_uninteresting(const struct object_id *oid,\n\t\t\t      struct
      object_info *oi UNUSED,\n\t\t\t      void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/revision.c:3689,1
    - Dst: jw_object_intmax
      Src: /src/git/revision.c:3690,1
    - Dst: jw_object_intmax
      Src: /src/git/revision.c:3691,1
    - Dst: jw_object_intmax
      Src: /src/git/revision.c:3692,1
    - Dst: jw_end
      Src: /src/git/revision.c:3693,1
    - Dst: trace2_data_json
      Src: /src/git/revision.c:3695,1
    - Dst: jw_release
      Src: /src/git/revision.c:3697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3685
    functionDepth: 1
    functionLinenumber: 3685
    functionLinenumberEnd: 3698
    functionName: trace2_topo_walk_statistics_atexit
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - jw_object_begin
    - jw_end
    - trace2_data_json
    - jw_object_intmax
    - jw_release
    linkageType: ''
    returnType: void
    signature: void trace2_topo_walk_statistics_atexit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_put
      Src: /src/git/revision.c:3706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - q
    - c
    - flag
    argTypes:
    - struct prio_queue*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3707
      start: 3700
    functionDepth: 1
    functionLinenumber: 3700
    functionLinenumberEnd: 3707
    functionName: test_flag_and_insert
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - prio_queue_put
    linkageType: ''
    returnType: void
    signature: void test_flag_and_insert(struct prio_queue *q, struct commit *c, int
      flag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_get
      Src: /src/git/revision.c:3713,1
    - Dst: repo_parse_commit_gently
      Src: /src/git/revision.c:3718,1
    - Dst: record_author_date
      Src: /src/git/revision.c:3724,1
    - Dst: process_parents
      Src: /src/git/revision.c:3729,1
    - Dst: mark_parents_uninteresting
      Src: /src/git/revision.c:3733,1
    - Dst: test_flag_and_insert
      Src: /src/git/revision.c:3736,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3737
      start: 3709
    functionDepth: 5
    functionLinenumber: 3709
    functionLinenumberEnd: 3737
    functionName: explore_walk_step
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - process_parents
    - prio_queue_get
    - repo_parse_commit_gently
    - mark_parents_uninteresting
    - record_author_date
    - test_flag_and_insert
    linkageType: ''
    returnType: void
    signature: void explore_walk_step(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_peek
      Src: /src/git/revision.c:3744,1
    - Dst: commit_graph_generation
      Src: /src/git/revision.c:3745,1
    - Dst: explore_walk_step
      Src: /src/git/revision.c:3746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - revs
    - gen_cutoff
    argTypes:
    - struct rev_info*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3747
      start: 3739
    functionDepth: 6
    functionLinenumber: 3739
    functionLinenumberEnd: 3747
    functionName: explore_to_depth
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_graph_generation
    - explore_walk_step
    - prio_queue_peek
    linkageType: ''
    returnType: void
    signature: "void explore_to_depth(struct rev_info *revs,\n\t\t\t     timestamp_t
      gen_cutoff)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_get
      Src: /src/git/revision.c:3753,1
    - Dst: repo_parse_commit_gently
      Src: /src/git/revision.c:3758,1
    - Dst: explore_to_depth
      Src: /src/git/revision.c:3763,1
    - Dst: commit_graph_generation
      Src: /src/git/revision.c:3763,1
    - Dst: indegree_slab_at
      Src: /src/git/revision.c:3767,1
    - Dst: repo_parse_commit_gently
      Src: /src/git/revision.c:3769,1
    - Dst: test_flag_and_insert
      Src: /src/git/revision.c:3777,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3782
      start: 3749
    functionDepth: 7
    functionLinenumber: 3749
    functionLinenumberEnd: 3782
    functionName: indegree_walk_step
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_graph_generation
    - prio_queue_get
    - explore_to_depth
    - repo_parse_commit_gently
    - indegree_slab_at
    - test_flag_and_insert
    linkageType: ''
    returnType: void
    signature: void indegree_walk_step(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_peek
      Src: /src/git/revision.c:3789,1
    - Dst: commit_graph_generation
      Src: /src/git/revision.c:3790,1
    - Dst: indegree_walk_step
      Src: /src/git/revision.c:3791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - revs
    - gen_cutoff
    argTypes:
    - struct rev_info*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3792
      start: 3784
    functionDepth: 8
    functionLinenumber: 3784
    functionLinenumberEnd: 3792
    functionName: compute_indegrees_to_depth
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - indegree_walk_step
    - commit_graph_generation
    - prio_queue_peek
    linkageType: ''
    returnType: void
    signature: "void compute_indegrees_to_depth(struct rev_info *revs,\n\t\t\t\t       timestamp_t
      gen_cutoff)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_prio_queue
      Src: /src/git/revision.c:3798,1
    - Dst: clear_prio_queue
      Src: /src/git/revision.c:3799,1
    - Dst: clear_prio_queue
      Src: /src/git/revision.c:3800,1
    - Dst: clear_indegree_slab
      Src: /src/git/revision.c:3801,1
    - Dst: clear_author_date_slab
      Src: /src/git/revision.c:3802,1
    - Dst: free
      Src: /src/git/revision.c:3803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct topo_walk_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3804
      start: 3794
    functionDepth: 1
    functionLinenumber: 3794
    functionLinenumberEnd: 3804
    functionName: release_revisions_topo_walk_info
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - clear_indegree_slab
    - clear_prio_queue
    - clear_author_date_slab
    - free
    linkageType: ''
    returnType: void
    signature: void release_revisions_topo_walk_info(struct topo_walk_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_revisions_topo_walk_info
      Src: /src/git/revision.c:3808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3810
      start: 3806
    functionDepth: 2
    functionLinenumber: 3806
    functionLinenumberEnd: 3810
    functionName: reset_topo_walk
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - release_revisions_topo_walk_info
    linkageType: ''
    returnType: void
    signature: void reset_topo_walk(struct rev_info *revs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: reset_topo_walk
      Src: /src/git/revision.c:3817,1
    - Dst: xmalloc
      Src: /src/git/revision.c:3819,1
    - Dst: memset
      Src: /src/git/revision.c:3821,1
    - Dst: init_indegree_slab
      Src: /src/git/revision.c:3823,1
    - Dst: memset
      Src: /src/git/revision.c:3824,1
    - Dst: memset
      Src: /src/git/revision.c:3825,1
    - Dst: memset
      Src: /src/git/revision.c:3826,1
    - Dst: init_author_date_slab
      Src: /src/git/revision.c:3836,1
    - Dst: repo_parse_commit_gently
      Src: /src/git/revision.c:3850,1
    - Dst: test_flag_and_insert
      Src: /src/git/revision.c:3853,1
    - Dst: test_flag_and_insert
      Src: /src/git/revision.c:3854,1
    - Dst: commit_graph_generation
      Src: /src/git/revision.c:3856,1
    - Dst: indegree_slab_at
      Src: /src/git/revision.c:3860,1
    - Dst: record_author_date
      Src: /src/git/revision.c:3863,1
    - Dst: compute_indegrees_to_depth
      Src: /src/git/revision.c:3865,1
    - Dst: indegree_slab_at
      Src: /src/git/revision.c:3870,1
    - Dst: prio_queue_put
      Src: /src/git/revision.c:3871,1
    - Dst: prio_queue_reverse
      Src: /src/git/revision.c:3879,1
    - Dst: trace2_is_enabled
      Src: /src/git/revision.c:3881,1
    - Dst: atexit
      Src: /src/git/revision.c:3882,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3885
      start: 3812
    functionDepth: 9
    functionLinenumber: 3812
    functionLinenumberEnd: 3885
    functionName: init_topo_walk
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - atexit
    - memset
    - trace2_is_enabled
    - prio_queue_put
    - commit_graph_generation
    - init_indegree_slab
    - prio_queue_reverse
    - init_author_date_slab
    - compute_indegrees_to_depth
    - reset_topo_walk
    - xmalloc
    - repo_parse_commit_gently
    - record_author_date
    - indegree_slab_at
    - test_flag_and_insert
    linkageType: ''
    returnType: void
    signature: void init_topo_walk(struct rev_info *revs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_get
      Src: /src/git/revision.c:3893,1
    - Dst: indegree_slab_at
      Src: /src/git/revision.c:3896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3887
    functionDepth: 1
    functionLinenumber: 3887
    functionLinenumberEnd: 3899
    functionName: next_topo_commit
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - prio_queue_get
    - indegree_slab_at
    linkageType: ''
    returnType: struct commit
    signature: struct commit *next_topo_commit(struct rev_info *revs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: process_parents
      Src: /src/git/revision.c:3905,1
    - Dst: die
      Src: /src/git/revision.c:3907,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:3908,1
    - Dst: repo_parse_commit_gently
      Src: /src/git/revision.c:3921,1
    - Dst: commit_graph_generation
      Src: /src/git/revision.c:3924,1
    - Dst: compute_indegrees_to_depth
      Src: /src/git/revision.c:3927,1
    - Dst: indegree_slab_at
      Src: /src/git/revision.c:3930,1
    - Dst: prio_queue_put
      Src: /src/git/revision.c:3934,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3939
      start: 3901
    functionDepth: 9
    functionLinenumber: 3901
    functionLinenumberEnd: 3939
    functionName: expand_topo_walk
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - process_parents
    - commit_graph_generation
    - prio_queue_put
    - compute_indegrees_to_depth
    - repo_parse_commit_gently
    - indegree_slab_at
    linkageType: ''
    returnType: void
    signature: void expand_topo_walk(struct rev_info *revs, struct commit *commit)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/revision.c:3947,1
    - Dst: handle_commit
      Src: /src/git/revision.c:3953,1
    - Dst: commit_list_append
      Src: /src/git/revision.c:3957,1
    - Dst: object_array_clear
      Src: /src/git/revision.c:3961,1
    - Dst: limiting_can_increase_treesame
      Src: /src/git/revision.c:3965,1
    - Dst: odb_for_each_object
      Src: /src/git/revision.c:3969,1
    - Dst: prepare_to_use_bloom_filter
      Src: /src/git/revision.c:3973,1
    - Dst: commit_list_sort_by_date
      Src: /src/git/revision.c:3975,1
    - Dst: limit_list
      Src: /src/git/revision.c:3979,1
    - Dst: sort_in_topological_order
      Src: /src/git/revision.c:3982,1
    - Dst: init_topo_walk
      Src: /src/git/revision.c:3984,1
    - Dst: want_ancestry
      Src: /src/git/revision.c:3985,1
    - Dst: line_log_filter
      Src: /src/git/revision.c:3993,1
    - Dst: simplify_merges
      Src: /src/git/revision.c:3995,1
    - Dst: set_children
      Src: /src/git/revision.c:3997,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4000
      start: 3941
    functionDepth: 10
    functionLinenumber: 3941
    functionLinenumberEnd: 4000
    functionName: prepare_revision_walk
    functionSourceFile: /src/git/revision.c
    functionUses: 2
    functionsReached:
    - set_children
    - prepare_to_use_bloom_filter
    - limiting_can_increase_treesame
    - commit_list_append
    - object_array_clear
    - handle_commit
    - init_topo_walk
    - simplify_merges
    - memcpy
    - odb_for_each_object
    - want_ancestry
    - sort_in_topological_order
    - line_log_filter
    - commit_list_sort_by_date
    - limit_list
    linkageType: ''
    returnType: int
    signature: int prepare_revision_walk(struct rev_info *revs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: process_parents
      Src: /src/git/revision.c:4009,1
    - Dst: one_relevant_parent
      Src: /src/git/revision.c:4017,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - revs
    - pp
    - queue
    argTypes:
    - struct rev_info*
    - struct commit**
    - struct prio_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4021
      start: 4002
    functionDepth: 5
    functionLinenumber: 4002
    functionLinenumberEnd: 4021
    functionName: rewrite_one_1
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - one_relevant_parent
    - process_parents
    linkageType: ''
    returnType: enum rewrite_result
    signature: "enum rewrite_result rewrite_one_1(struct rev_info *revs,\n\t\t\t\t\t
      struct commit **pp,\n\t\t\t\t\t struct prio_queue *queue)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_peek
      Src: /src/git/revision.c:4026,1
    - Dst: commit_list_insert
      Src: /src/git/revision.c:4032,1
    - Dst: prio_queue_get
      Src: /src/git/revision.c:4034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - q
    - list
    argTypes:
    - struct prio_queue*
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4037
      start: 4023
    functionDepth: 1
    functionLinenumber: 4023
    functionLinenumberEnd: 4037
    functionName: merge_queue_into_list
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - prio_queue_get
    - commit_list_insert
    - prio_queue_peek
    linkageType: ''
    returnType: void
    signature: void merge_queue_into_list(struct prio_queue *q, struct commit_list
      **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rewrite_one_1
      Src: /src/git/revision.c:4042,1
    - Dst: merge_queue_into_list
      Src: /src/git/revision.c:4043,1
    - Dst: clear_prio_queue
      Src: /src/git/revision.c:4044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - revs
    - pp
    argTypes:
    - struct rev_info*
    - struct commit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4046
      start: 4039
    functionDepth: 6
    functionLinenumber: 4039
    functionLinenumberEnd: 4046
    functionName: rewrite_one
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - clear_prio_queue
    - rewrite_one_1
    - merge_queue_into_list
    linkageType: ''
    returnType: enum rewrite_result
    signature: enum rewrite_result rewrite_one(struct rev_info *revs, struct commit
      **pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rewrite_parent
      Src: /src/git/revision.c:4054,1
    - Dst: free
      Src: /src/git/revision.c:4059,1
    - Dst: remove_duplicate_parents
      Src: /src/git/revision.c:4066,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - revs
    - commit
    - rewrite_parent
    argTypes:
    - struct rev_info*
    - struct commit*
    - rewrite_parent_fn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4068
      start: 4048
    functionDepth: 5
    functionLinenumber: 4048
    functionLinenumberEnd: 4068
    functionName: rewrite_parents
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - rewrite_parent
    - remove_duplicate_parents
    - free
    linkageType: ''
    returnType: int
    signature: "int rewrite_parents(struct rev_info *revs, struct commit *commit,\n\trewrite_parent_fn_t
      rewrite_parent)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/revision.c:4082,1
    - Dst: get_reflog_message
      Src: /src/git/revision.c:4083,1
    - Dst: strbuf_addch
      Src: /src/git/revision.c:4084,1
    - Dst: get_log_output_encoding
      Src: /src/git/revision.c:4094,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/revision.c:4095,1
    - Dst: strbuf_addstr
      Src: /src/git/revision.c:4099,1
    - Dst: strbuf_addstr
      Src: /src/git/revision.c:4105,1
    - Dst: apply_mailmap_to_header
      Src: /src/git/revision.c:4107,1
    - Dst: strbuf_addstr
      Src: /src/git/revision.c:4113,1
    - Dst: format_display_notes
      Src: /src/git/revision.c:4114,1
    - Dst: grep_buffer
      Src: /src/git/revision.c:4126,1
    - Dst: grep_buffer
      Src: /src/git/revision.c:4128,1
    - Dst: strlen
      Src: /src/git/revision.c:4129,1
    - Dst: strbuf_release
      Src: /src/git/revision.c:4130,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/revision.c:4131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - commit
    - opt
    argTypes:
    - struct commit*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4133
      start: 4070
    functionDepth: 1
    functionLinenumber: 4070
    functionLinenumberEnd: 4133
    functionName: commit_match
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - repo_unuse_commit_buffer
    - apply_mailmap_to_header
    - strbuf_addch
    - get_log_output_encoding
    - repo_logmsg_reencode
    - strlen
    - get_reflog_message
    - strbuf_addstr
    - grep_buffer
    - format_display_notes
    linkageType: ''
    returnType: int
    signature: int commit_match(struct commit *commit, struct rev_info *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4138
      start: 4135
    functionDepth: 0
    functionLinenumber: 4135
    functionLinenumberEnd: 4138
    functionName: want_ancestry
    functionSourceFile: /src/git/revision.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int want_ancestry(const struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_reflog_timestamp
      Src: /src/git/revision.c:4148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4150
      start: 4144
    functionDepth: 1
    functionLinenumber: 4144
    functionLinenumberEnd: 4150
    functionName: comparison_date
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - get_reflog_timestamp
    linkageType: ''
    returnType: timestamp_t
    signature: "timestamp_t comparison_date(const struct rev_info *revs,\n\t\t\t\t
      \  struct commit *commit)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: has_object_pack
      Src: /src/git/revision.c:4158,1
    - Dst: has_object_kept_pack
      Src: /src/git/revision.c:4161,1
    - Dst: want_ancestry
      Src: /src/git/revision.c:4167,1
    - Dst: line_log_process_ranges_arbitrary_commit
      Src: /src/git/revision.c:4180,1
    - Dst: comparison_date
      Src: /src/git/revision.c:4184,1
    - Dst: comparison_date
      Src: /src/git/revision.c:4187,1
    - Dst: commit_list_count
      Src: /src/git/revision.c:4190,1
    - Dst: commit_match
      Src: /src/git/revision.c:4195,1
    - Dst: want_ancestry
      Src: /src/git/revision.c:4203,1
    - Dst: relevant_commit
      Src: /src/git/revision.c:4217,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 41
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4224
      start: 4152
    functionDepth: 2
    functionLinenumber: 4152
    functionLinenumberEnd: 4224
    functionName: get_commit_action
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_match
    - has_object_kept_pack
    - line_log_process_ranges_arbitrary_commit
    - want_ancestry
    - relevant_commit
    - has_object_pack
    - comparison_date
    - commit_list_count
    linkageType: ''
    returnType: enum commit_action
    signature: enum commit_action get_commit_action(struct rev_info *revs, struct
      commit *commit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/revision.c:4239,1
    - Dst: init_saved_parents
      Src: /src/git/revision.c:4240,1
    - Dst: saved_parents_at
      Src: /src/git/revision.c:4243,1
    - Dst: commit_list_copy
      Src: /src/git/revision.c:4257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4260
      start: 4234
    functionDepth: 1
    functionLinenumber: 4234
    functionLinenumberEnd: 4260
    functionName: save_parents
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_list_copy
    - saved_parents_at
    - xmalloc
    - init_saved_parents
    linkageType: ''
    returnType: void
    signature: void save_parents(struct rev_info *revs, struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_free
      Src: /src/git/revision.c:4265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - parents
    argTypes:
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4266
      start: 4262
    functionDepth: 1
    functionLinenumber: 4262
    functionLinenumberEnd: 4266
    functionName: free_saved_parent
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_list_free
    linkageType: ''
    returnType: void
    signature: void free_saved_parent(struct commit_list **parents)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deep_clear_saved_parents
      Src: /src/git/revision.c:4272,1
    - Dst: FREE_AND_NULL
      Src: /src/git/revision.c:4273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4274
      start: 4268
    functionDepth: 1
    functionLinenumber: 4268
    functionLinenumberEnd: 4274
    functionName: free_saved_parents
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - deep_clear_saved_parents
    linkageType: ''
    returnType: void
    signature: void free_saved_parents(struct rev_info *revs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: saved_parents_at
      Src: /src/git/revision.c:4283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4287
      start: 4276
    functionDepth: 0
    functionLinenumber: 4276
    functionLinenumberEnd: 4287
    functionName: get_saved_parents
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - saved_parents_at
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *get_saved_parents(struct rev_info *revs, const
      struct commit *commit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_action
      Src: /src/git/revision.c:4291,1
    - Dst: want_ancestry
      Src: /src/git/revision.c:4294,1
    - Dst: save_parents
      Src: /src/git/revision.c:4302,1
    - Dst: rewrite_parents
      Src: /src/git/revision.c:4303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4307
      start: 4289
    functionDepth: 6
    functionLinenumber: 4289
    functionLinenumberEnd: 4307
    functionName: simplify_commit
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - get_commit_action
    - save_parents
    - want_ancestry
    - rewrite_parents
    linkageType: ''
    returnType: enum commit_action
    signature: enum commit_action simplify_commit(struct rev_info *revs, struct commit
      *commit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/revision.c:4318,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:4326,1
    - Dst: commit_list_copy
      Src: /src/git/revision.c:4327,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4328
      start: 4309
    functionDepth: 1
    functionLinenumber: 4309
    functionLinenumberEnd: 4328
    functionName: track_linear
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_list_copy
    - commit_list_free
    - oideq
    linkageType: ''
    returnType: void
    signature: void track_linear(struct rev_info *revs, struct commit *commit)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: next_reflog_entry
      Src: /src/git/revision.c:4336,1
    - Dst: next_topo_commit
      Src: /src/git/revision.c:4338,1
    - Dst: pop_commit
      Src: /src/git/revision.c:4340,1
    - Dst: comparison_date
      Src: /src/git/revision.c:4355,1
    - Dst: try_to_simplify_commit
      Src: /src/git/revision.c:4359,1
    - Dst: expand_topo_walk
      Src: /src/git/revision.c:4361,1
    - Dst: process_parents
      Src: /src/git/revision.c:4362,1
    - Dst: die
      Src: /src/git/revision.c:4364,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:4365,1
    - Dst: simplify_commit
      Src: /src/git/revision.c:4369,1
    - Dst: die
      Src: /src/git/revision.c:4373,1
    - Dst: oid_to_hex
      Src: /src/git/revision.c:4374,1
    - Dst: track_linear
      Src: /src/git/revision.c:4377,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4381
      start: 4330
    functionDepth: 10
    functionLinenumber: 4330
    functionLinenumberEnd: 4381
    functionName: get_revision_1
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - expand_topo_walk
    - process_parents
    - next_topo_commit
    - next_reflog_entry
    - pop_commit
    - simplify_commit
    - track_linear
    - comparison_date
    - try_to_simplify_commit
    linkageType: ''
    returnType: struct commit
    signature: struct commit *get_revision_1(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - entry
    - cb_data
    argTypes:
    - struct object_array_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4390
      start: 4387
    functionDepth: 0
    functionLinenumber: 4387
    functionLinenumberEnd: 4390
    functionName: entry_unshown
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int entry_unshown(struct object_array_entry *entry, void *cb_data UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: object_array_filter
      Src: /src/git/revision.c:4399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4400
      start: 4396
    functionDepth: 3
    functionLinenumber: 4396
    functionLinenumberEnd: 4400
    functionName: gc_boundary
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - object_array_filter
    linkageType: ''
    returnType: void
    signature: void gc_boundary(struct object_array *array)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_free
      Src: /src/git/revision.c:4415,1
    - Dst: commit_list_insert
      Src: /src/git/revision.c:4431,1
    - Dst: sort_in_topological_order
      Src: /src/git/revision.c:4438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4439
      start: 4402
    functionDepth: 1
    functionLinenumber: 4402
    functionLinenumberEnd: 4439
    functionName: create_boundary_commit_list
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - commit_list_free
    - commit_list_insert
    - sort_in_topological_order
    linkageType: ''
    returnType: void
    signature: void create_boundary_commit_list(struct rev_info *revs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pop_commit
      Src: /src/git/revision.c:4453,1
    - Dst: get_revision_1
      Src: /src/git/revision.c:4470,1
    - Dst: get_revision_1
      Src: /src/git/revision.c:4474,1
    - Dst: free_commit_buffer
      Src: /src/git/revision.c:4477,1
    - Dst: create_boundary_commit_list
      Src: /src/git/revision.c:4503,1
    - Dst: get_revision_internal
      Src: /src/git/revision.c:4505,1
    - Dst: gc_boundary
      Src: /src/git/revision.c:4521,1
    - Dst: add_object_array
      Src: /src/git/revision.c:4522,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4526
      start: 4441
    functionDepth: 11
    functionLinenumber: 4441
    functionLinenumberEnd: 4526
    functionName: get_revision_internal
    functionSourceFile: /src/git/revision.c
    functionUses: 1
    functionsReached:
    - free_commit_buffer
    - get_revision_1
    - add_object_array
    - pop_commit
    - create_boundary_commit_list
    - get_revision_internal
    - gc_boundary
    linkageType: ''
    returnType: struct commit
    signature: struct commit *get_revision_internal(struct rev_info *revs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_revision_internal
      Src: /src/git/revision.c:4535,1
    - Dst: commit_list_insert
      Src: /src/git/revision.c:4536,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:4537,1
    - Dst: pop_commit
      Src: /src/git/revision.c:4544,1
    - Dst: get_revision_internal
      Src: /src/git/revision.c:4550,1
    - Dst: graph_update
      Src: /src/git/revision.c:4552,1
    - Dst: free_saved_parents
      Src: /src/git/revision.c:4554,1
    - Dst: commit_list_free
      Src: /src/git/revision.c:4555,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4528
    functionDepth: 12
    functionLinenumber: 4528
    functionLinenumberEnd: 4559
    functionName: get_revision
    functionSourceFile: /src/git/revision.c
    functionUses: 2
    functionsReached:
    - free_saved_parents
    - pop_commit
    - commit_list_free
    - get_revision_internal
    - graph_update
    - commit_list_insert
    linkageType: ''
    returnType: struct commit
    signature: struct commit *get_revision(struct rev_info *revs)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4579
      start: 4561
    functionDepth: 0
    functionLinenumber: 4561
    functionLinenumberEnd: 4579
    functionName: get_revision_mark
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_revision_mark(const struct rev_info *revs, const struct commit
      *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_revision_mark
      Src: /src/git/revision.c:4583,1
    - Dst: strlen
      Src: /src/git/revision.c:4584,1
    - Dst: fputs
      Src: /src/git/revision.c:4586,1
    - Dst: putchar
      Src: /src/git/revision.c:4587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4581
    functionDepth: 1
    functionLinenumber: 4581
    functionLinenumberEnd: 4588
    functionName: put_revision_mark
    functionSourceFile: /src/git/revision.c
    functionUses: 0
    functionsReached:
    - strlen
    - fputs
    - get_revision_mark
    - putchar
    linkageType: ''
    returnType: void
    signature: void put_revision_mark(const struct rev_info *revs, const struct commit
      *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/run-command.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - child
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: child_process_init
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void child_process_init(struct child_process *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_clear
      Src: /src/git/run-command.c:29,1
    - Dst: strvec_clear
      Src: /src/git/run-command.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - child
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: child_process_clear
    functionSourceFile: /src/git/run-command.c
    functionUses: 1
    functionsReached:
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void child_process_clear(struct child_process *child)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf
      Src: /src/git/run-command.c:52,1
    - Dst: struct child_process*::clean_on_exit_handler
      Src: /src/git/run-command.c:56,1
    - Dst: kill
      Src: /src/git/run-command.c:60,1
    - Dst: free
      Src: /src/git/run-command.c:67,1
    - Dst: waitpid
      Src: /src/git/run-command.c:75,1
    - Dst: free
      Src: /src/git/run-command.c:79,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - sig
    - in_signal
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 81
    functionName: cleanup_children
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - trace_printf
    - kill
    - free
    - struct child_process*::clean_on_exit_handler
    - waitpid
    linkageType: ''
    returnType: void
    signature: void cleanup_children(int sig, int in_signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_children
      Src: /src/git/run-command.c:85,1
    - Dst: sigchain_pop
      Src: /src/git/run-command.c:86,1
    - Dst: raise
      Src: /src/git/run-command.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: cleanup_children_on_signal
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - cleanup_children
    - sigchain_pop
    - raise
    linkageType: ''
    returnType: void
    signature: void cleanup_children_on_signal(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_children
      Src: /src/git/run-command.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: cleanup_children_on_exit
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - cleanup_children
    linkageType: ''
    returnType: void
    signature: void cleanup_children_on_exit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/run-command.c:97,1
    - Dst: atexit
      Src: /src/git/run-command.c:104,1
    - Dst: sigchain_push_common
      Src: /src/git/run-command.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pid
    - process
    argTypes:
    - pid_t
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: mark_child_for_cleanup
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - atexit
    - xmalloc
    - sigchain_push_common
    linkageType: ''
    returnType: void
    signature: void mark_child_for_cleanup(pid_t pid, struct child_process *process)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/run-command.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: clear_child_for_cleanup
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void clear_child_for_cleanup(pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/run-command.c:127,1
    - Dst: close
      Src: /src/git/run-command.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: close_pair
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close_pair(int fd[2])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/run-command.c:135,1
    - Dst: S_ISREG
      Src: /src/git/run-command.c:136,1
    - Dst: ends_with
      Src: /src/git/run-command.c:148,1
    - Dst: open
      Src: /src/git/run-command.c:158,1
    - Dst: read
      Src: /src/git/run-command.c:161,1
    - Dst: strcmp
      Src: /src/git/run-command.c:164,1
    - Dst: close
      Src: /src/git/run-command.c:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 171
    functionName: is_executable
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - read
    - open
    - stat
    - strcmp
    - ends_with
    - close
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int is_executable(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/run-command.c:193,1
    - Dst: strchrnul
      Src: /src/git/run-command.c:200,1
    - Dst: strbuf_reset
      Src: /src/git/run-command.c:202,1
    - Dst: strbuf_add
      Src: /src/git/run-command.c:206,1
    - Dst: strbuf_addch
      Src: /src/git/run-command.c:207,1
    - Dst: strbuf_addstr
      Src: /src/git/run-command.c:209,1
    - Dst: is_executable
      Src: /src/git/run-command.c:211,1
    - Dst: strbuf_detach
      Src: /src/git/run-command.c:212,1
    - Dst: strbuf_release
      Src: /src/git/run-command.c:219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 221
    functionName: locate_in_PATH
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - strbuf_addch
    - strbuf_detach
    - strbuf_addstr
    - getenv
    - strchrnul
    - strbuf_add
    - is_executable
    linkageType: ''
    returnType: char
    signature: char *locate_in_PATH(const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: locate_in_PATH
      Src: /src/git/run-command.c:226,1
    - Dst: free
      Src: /src/git/run-command.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - command
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: exists_in_PATH
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - locate_in_PATH
    - free
    linkageType: ''
    returnType: int
    signature: int exists_in_PATH(const char *command)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace2_exec
      Src: /src/git/run-command.c:243,1
    - Dst: execvp
      Src: /src/git/run-command.c:246,1
    - Dst: trace2_exec_result
      Src: /src/git/run-command.c:252,1
    - Dst: strchr
      Src: /src/git/run-command.c:270,1
    - Dst: exists_in_PATH
      Src: /src/git/run-command.c:271,1
    - Dst: strchr
      Src: /src/git/run-command.c:272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - file
    - argv
    argTypes:
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 275
    functionName: sane_execvp
    functionSourceFile: /src/git/run-command.c
    functionUses: 1
    functionsReached:
    - execvp
    - strchr
    - trace2_exec_result
    - exists_in_PATH
    - trace2_exec
    linkageType: ''
    returnType: int
    signature: int sane_execvp(const char *file, char * const argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/run-command.c:280,1
    - Dst: locate_in_PATH
      Src: /src/git/run-command.c:282,1
    - Dst: convert_slashes
      Src: /src/git/run-command.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 286
    functionName: git_shell_path
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - locate_in_PATH
    - convert_slashes
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *git_shell_path(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/run-command.c:291,1
    - Dst: strcspn
      Src: /src/git/run-command.c:293,1
    - Dst: strlen
      Src: /src/git/run-command.c:293,1
    - Dst: strvec_push_nodup
      Src: /src/git/run-command.c:294,1
    - Dst: git_shell_path
      Src: /src/git/run-command.c:294,1
    - Dst: strvec_push
      Src: /src/git/run-command.c:295,1
    - Dst: strvec_push
      Src: /src/git/run-command.c:302,1
    - Dst: strvec_pushf
      Src: /src/git/run-command.c:304,1
    - Dst: strvec_pushv
      Src: /src/git/run-command.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: prepare_shell_cmd
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - BUG
    - strvec_pushv
    - git_shell_path
    - strlen
    - strcspn
    - strvec_push_nodup
    - strvec_pushf
    linkageType: ''
    returnType: char
    signature: char **prepare_shell_cmd(struct strvec *out, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xwrite
      Src: /src/git/run-command.c:336,1
    - Dst: _exit
      Src: /src/git/run-command.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - enum child_errcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: child_die
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - xwrite
    - _exit
    linkageType: ''
    returnType: void
    signature: void child_die(enum child_errcode err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dup2
      Src: /src/git/run-command.c:342,1
    - Dst: child_die
      Src: /src/git/run-command.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - fd
    - to
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: child_dup2
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - dup2
    - child_die
    linkageType: ''
    returnType: void
    signature: void child_dup2(int fd, int to)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/run-command.c:348,1
    - Dst: child_die
      Src: /src/git/run-command.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: child_close
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - close
    - child_die
    linkageType: ''
    returnType: void
    signature: void child_close(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: child_close
      Src: /src/git/run-command.c:354,1
    - Dst: child_close
      Src: /src/git/run-command.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: child_close_pair
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - child_close
    linkageType: ''
    returnType: void
    signature: void child_close_pair(int fd[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xwrite
      Src: /src/git/run-command.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: child_error_fn
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - xwrite
    linkageType: ''
    returnType: void
    signature: void child_error_fn(const char *err UNUSED, va_list params UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xwrite
      Src: /src/git/run-command.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: child_warn_fn
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - xwrite
    linkageType: ''
    returnType: void
    signature: void child_warn_fn(const char *err UNUSED, va_list params UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xwrite
      Src: /src/git/run-command.c:373,1
    - Dst: _exit
      Src: /src/git/run-command.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - UNUSED
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 375
    functionName: child_die_fn
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - xwrite
    - _exit
    linkageType: ''
    returnType: void
    signature: void child_die_fn(const char *err UNUSED, va_list params UNUSED)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_die_message_routine
      Src: /src/git/run-command.c:381,1
    - Dst: get_error_routine
      Src: /src/git/run-command.c:383,1
    - Dst: set_error_routine
      Src: /src/git/run-command.c:384,1
    - Dst: error_errno
      Src: /src/git/run-command.c:389,1
    - Dst: error_errno
      Src: /src/git/run-command.c:393,1
    - Dst: error_errno
      Src: /src/git/run-command.c:396,1
    - Dst: error_errno
      Src: /src/git/run-command.c:399,1
    - Dst: error_errno
      Src: /src/git/run-command.c:404,1
    - Dst: set_error_routine
      Src: /src/git/run-command.c:407,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - cmd
    - cerr
    argTypes:
    - struct child_process*
    - struct child_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 408
    functionName: child_err_spew
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - set_error_routine
    - get_die_message_routine
    - get_error_routine
    - error_errno
    linkageType: ''
    returnType: void
    signature: void child_err_spew(struct child_process *cmd, struct child_err *cerr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/run-command.c:413,1
    - Dst: strvec_push
      Src: /src/git/run-command.c:419,1
    - Dst: prepare_git_cmd
      Src: /src/git/run-command.c:422,1
    - Dst: prepare_shell_cmd
      Src: /src/git/run-command.c:424,1
    - Dst: strvec_pushv
      Src: /src/git/run-command.c:426,1
    - Dst: has_dir_sep
      Src: /src/git/run-command.c:435,1
    - Dst: locate_in_PATH
      Src: /src/git/run-command.c:436,1
    - Dst: free
      Src: /src/git/run-command.c:438,1
    - Dst: strvec_clear
      Src: /src/git/run-command.c:441,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - out
    - cmd
    argTypes:
    - struct strvec*
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 448
    functionName: prepare_cmd
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - prepare_shell_cmd
    - strvec_push
    - strvec_pushv
    - locate_in_PATH
    - prepare_git_cmd
    - strvec_clear
    - free
    - BUG
    - has_dir_sep
    linkageType: ''
    returnType: int
    signature: int prepare_cmd(struct strvec *out, const struct child_process *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/run-command.c:461,1
    - Dst: strbuf_reset
      Src: /src/git/run-command.c:464,1
    - Dst: strbuf_add
      Src: /src/git/run-command.c:465,1
    - Dst: string_list_append
      Src: /src/git/run-command.c:466,1
    - Dst: string_list_append
      Src: /src/git/run-command.c:468,1
    - Dst: string_list_sort
      Src: /src/git/run-command.c:471,1
    - Dst: strchr
      Src: /src/git/run-command.c:475,1
    - Dst: strbuf_reset
      Src: /src/git/run-command.c:479,1
    - Dst: strbuf_add
      Src: /src/git/run-command.c:480,1
    - Dst: string_list_insert
      Src: /src/git/run-command.c:481,1
    - Dst: string_list_remove
      Src: /src/git/run-command.c:484,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/run-command.c:489,1
    - Dst: string_list_clear
      Src: /src/git/run-command.c:494,1
    - Dst: strbuf_release
      Src: /src/git/run-command.c:495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 497
    functionName: prep_childenv
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_release
    - string_list_insert
    - strbuf_reset
    - string_list_sort
    - ALLOC_ARRAY
    - strchr
    - string_list_remove
    - string_list_append
    - strbuf_add
    linkageType: ''
    returnType: char
    signature: char **prep_childenv(const char *const *deltaenv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - err
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 512
    functionName: CHECK_BUG
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_BUG(err, msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NOT_CONSTANT
      Src: /src/git/run-command.c:523,1
    - Dst: sigfillset
      Src: /src/git/run-command.c:523,1
    - Dst: die_errno
      Src: /src/git/run-command.c:524,1
    - Dst: sigprocmask
      Src: /src/git/run-command.c:526,1
    - Dst: die_errno
      Src: /src/git/run-command.c:527,1
    - Dst: CHECK_BUG
      Src: /src/git/run-command.c:529,1
    - Dst: pthread_sigmask
      Src: /src/git/run-command.c:529,1
    - Dst: CHECK_BUG
      Src: /src/git/run-command.c:531,1
    - Dst: pthread_setcancelstate
      Src: /src/git/run-command.c:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - as
    argTypes:
    - struct atfork_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 534
    functionName: atfork_prepare
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - sigprocmask
    - NOT_CONSTANT
    - sigfillset
    - die_errno
    - pthread_setcancelstate
    - CHECK_BUG
    - pthread_sigmask
    linkageType: ''
    returnType: void
    signature: void atfork_prepare(struct atfork_state *as)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigprocmask
      Src: /src/git/run-command.c:539,1
    - Dst: die_errno
      Src: /src/git/run-command.c:540,1
    - Dst: CHECK_BUG
      Src: /src/git/run-command.c:542,1
    - Dst: pthread_setcancelstate
      Src: /src/git/run-command.c:542,1
    - Dst: CHECK_BUG
      Src: /src/git/run-command.c:544,1
    - Dst: pthread_sigmask
      Src: /src/git/run-command.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - as
    argTypes:
    - struct atfork_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 547
    functionName: atfork_parent
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - sigprocmask
    - die_errno
    - pthread_setcancelstate
    - CHECK_BUG
    - pthread_sigmask
    linkageType: ''
    returnType: void
    signature: void atfork_parent(struct atfork_state *as)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/git/run-command.c:552,1
    - Dst: fcntl
      Src: /src/git/run-command.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 555
    functionName: set_cloexec
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: void
    signature: void set_cloexec(int fd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/git/run-command.c:563,1
    - Dst: error_errno
      Src: /src/git/run-command.c:569,1
    - Dst: error
      Src: /src/git/run-command.c:572,1
    - Dst: WIFSIGNALED
      Src: /src/git/run-command.c:573,1
    - Dst: WTERMSIG
      Src: /src/git/run-command.c:574,1
    - Dst: error
      Src: /src/git/run-command.c:576,1
    - Dst: WIFEXITED
      Src: /src/git/run-command.c:583,1
    - Dst: WEXITSTATUS
      Src: /src/git/run-command.c:584,1
    - Dst: error
      Src: /src/git/run-command.c:587,1
    - Dst: clear_child_for_cleanup
      Src: /src/git/run-command.c:591,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 3
    argNames:
    - pid
    - argv0
    - in_signal
    argTypes:
    - pid_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 595
    functionName: wait_or_whine
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - WIFSIGNALED
    - WEXITSTATUS
    - WTERMSIG
    - clear_child_for_cleanup
    - WIFEXITED
    - waitpid
    linkageType: ''
    returnType: int
    signature: int wait_or_whine(pid_t pid, const char *argv0, int in_signal)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/run-command.c:607,1
    - Dst: strbuf_add
      Src: /src/git/run-command.c:610,1
    - Dst: string_list_insert
      Src: /src/git/run-command.c:611,1
    - Dst: string_list_insert
      Src: /src/git/run-command.c:613,1
    - Dst: strbuf_release
      Src: /src/git/run-command.c:615,1
    - Dst: getenv
      Src: /src/git/run-command.c:623,1
    - Dst: strbuf_addstr
      Src: /src/git/run-command.c:627,1
    - Dst: strbuf_addf
      Src: /src/git/run-command.c:630,1
    - Dst: strbuf_addch
      Src: /src/git/run-command.c:633,1
    - Dst: getenv
      Src: /src/git/run-command.c:644,1
    - Dst: strcmp
      Src: /src/git/run-command.c:645,1
    - Dst: strbuf_addf
      Src: /src/git/run-command.c:648,1
    - Dst: sq_quote_buf_pretty
      Src: /src/git/run-command.c:649,1
    - Dst: string_list_clear
      Src: /src/git/run-command.c:651,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - dst
    - deltaenv
    argTypes:
    - struct strbuf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 652
    functionName: trace_add_env
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_release
    - string_list_insert
    - strbuf_addf
    - strchr
    - strbuf_addch
    - sq_quote_buf_pretty
    - strbuf_addstr
    - strcmp
    - getenv
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void trace_add_env(struct strbuf *dst, const char *const *deltaenv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace_want
      Src: /src/git/run-command.c:658,1
    - Dst: strbuf_addstr
      Src: /src/git/run-command.c:661,1
    - Dst: strbuf_addstr
      Src: /src/git/run-command.c:663,1
    - Dst: sq_quote_buf_pretty
      Src: /src/git/run-command.c:664,1
    - Dst: strbuf_addch
      Src: /src/git/run-command.c:665,1
    - Dst: trace_add_env
      Src: /src/git/run-command.c:667,1
    - Dst: strbuf_addstr
      Src: /src/git/run-command.c:669,1
    - Dst: sq_quote_argv_pretty
      Src: /src/git/run-command.c:670,1
    - Dst: trace_printf
      Src: /src/git/run-command.c:672,1
    - Dst: strbuf_release
      Src: /src/git/run-command.c:673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 674
    functionName: trace_run_command
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - trace_want
    - sq_quote_argv_pretty
    - trace_printf
    - strbuf_addch
    - sq_quote_buf_pretty
    - strbuf_addstr
    - trace_add_env
    linkageType: ''
    returnType: void
    signature: void trace_run_command(const struct child_process *cp)
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/git/run-command.c:690,1
    - Dst: close
      Src: /src/git/run-command.c:693,1
    - Dst: pipe
      Src: /src/git/run-command.c:704,1
    - Dst: close_pair
      Src: /src/git/run-command.c:707,1
    - Dst: close
      Src: /src/git/run-command.c:709,1
    - Dst: pipe
      Src: /src/git/run-command.c:718,1
    - Dst: close_pair
      Src: /src/git/run-command.c:721,1
    - Dst: close
      Src: /src/git/run-command.c:723,1
    - Dst: close_pair
      Src: /src/git/run-command.c:725,1
    - Dst: close
      Src: /src/git/run-command.c:727,1
    - Dst: error
      Src: /src/git/run-command.c:730,1
    - Dst: strerror
      Src: /src/git/run-command.c:731,1
    - Dst: child_process_clear
      Src: /src/git/run-command.c:732,1
    - Dst: trace2_child_start
      Src: /src/git/run-command.c:739,1
    - Dst: trace_run_command
      Src: /src/git/run-command.c:740,1
    - Dst: fflush
      Src: /src/git/run-command.c:742,1
    - Dst: odb_close
      Src: /src/git/run-command.c:745,1
    - Dst: prepare_cmd
      Src: /src/git/run-command.c:756,1
    - Dst: error_errno
      Src: /src/git/run-command.c:760,1
    - Dst: trace_argv_printf
      Src: /src/git/run-command.c:764,1
    - Dst: pipe
      Src: /src/git/run-command.c:766,1
    - Dst: xopen
      Src: /src/git/run-command.c:770,1
    - Dst: set_cloexec
      Src: /src/git/run-command.c:771,1
    - Dst: prep_childenv
      Src: /src/git/run-command.c:774,1
    - Dst: atfork_prepare
      Src: /src/git/run-command.c:775,1
    - Dst: fork
      Src: /src/git/run-command.c:786,1
    - Dst: set_die_routine
      Src: /src/git/run-command.c:794,1
    - Dst: set_error_routine
      Src: /src/git/run-command.c:795,1
    - Dst: set_warn_routine
      Src: /src/git/run-command.c:796,1
    - Dst: close
      Src: /src/git/run-command.c:798,1
    - Dst: set_cloexec
      Src: /src/git/run-command.c:799,1
    - Dst: child_dup2
      Src: /src/git/run-command.c:803,1
    - Dst: child_dup2
      Src: /src/git/run-command.c:805,1
    - Dst: child_close_pair
      Src: /src/git/run-command.c:806,1
    - Dst: child_dup2
      Src: /src/git/run-command.c:808,1
    - Dst: child_close
      Src: /src/git/run-command.c:809,1
    - Dst: child_dup2
      Src: /src/git/run-command.c:813,1
    - Dst: child_dup2
      Src: /src/git/run-command.c:815,1
    - Dst: child_close_pair
      Src: /src/git/run-command.c:816,1
    - Dst: child_dup2
      Src: /src/git/run-command.c:818,1
    - Dst: child_close
      Src: /src/git/run-command.c:819,1
    - Dst: child_dup2
      Src: /src/git/run-command.c:823,1
    - Dst: child_dup2
      Src: /src/git/run-command.c:825,1
    - Dst: child_dup2
      Src: /src/git/run-command.c:827,1
    - Dst: child_close_pair
      Src: /src/git/run-command.c:828,1
    - Dst: child_dup2
      Src: /src/git/run-command.c:830,1
    - Dst: child_close
      Src: /src/git/run-command.c:831,1
    - Dst: chdir
      Src: /src/git/run-command.c:834,1
    - Dst: child_die
      Src: /src/git/run-command.c:835,1
    - Dst: signal
      Src: /src/git/run-command.c:843,1
    - Dst: signal
      Src: /src/git/run-command.c:844,1
    - Dst: sigprocmask
      Src: /src/git/run-command.c:847,1
    - Dst: child_die
      Src: /src/git/run-command.c:848,1
    - Dst: execve
      Src: /src/git/run-command.c:856,1
    - Dst: execve
      Src: /src/git/run-command.c:859,1
    - Dst: child_die
      Src: /src/git/run-command.c:863,1
    - Dst: child_die
      Src: /src/git/run-command.c:864,1
    - Dst: atfork_parent
      Src: /src/git/run-command.c:866,1
    - Dst: error_errno
      Src: /src/git/run-command.c:868,1
    - Dst: mark_child_for_cleanup
      Src: /src/git/run-command.c:870,1
    - Dst: close
      Src: /src/git/run-command.c:879,1
    - Dst: xread
      Src: /src/git/run-command.c:880,1
    - Dst: wait_or_whine
      Src: /src/git/run-command.c:885,1
    - Dst: child_err_spew
      Src: /src/git/run-command.c:886,1
    - Dst: close
      Src: /src/git/run-command.c:890,1
    - Dst: close
      Src: /src/git/run-command.c:893,1
    - Dst: strvec_clear
      Src: /src/git/run-command.c:894,1
    - Dst: free
      Src: /src/git/run-command.c:895,1
    - Dst: open
      Src: /src/git/run-command.c:906,1
    - Dst: dup
      Src: /src/git/run-command.c:908,1
    - Dst: dup
      Src: /src/git/run-command.c:910,1
    - Dst: open
      Src: /src/git/run-command.c:913,1
    - Dst: dup
      Src: /src/git/run-command.c:915,1
    - Dst: dup
      Src: /src/git/run-command.c:917,1
    - Dst: open
      Src: /src/git/run-command.c:920,1
    - Dst: dup
      Src: /src/git/run-command.c:922,1
    - Dst: dup
      Src: /src/git/run-command.c:924,1
    - Dst: dup
      Src: /src/git/run-command.c:926,1
    - Dst: prepare_git_cmd
      Src: /src/git/run-command.c:929,1
    - Dst: prepare_shell_cmd
      Src: /src/git/run-command.c:931,1
    - Dst: trace_argv_printf
      Src: /src/git/run-command.c:933,1
    - Dst: mingw_spawnvpe
      Src: /src/git/run-command.c:934,1
    - Dst: error_errno
      Src: /src/git/run-command.c:939,1
    - Dst: mark_child_for_cleanup
      Src: /src/git/run-command.c:941,1
    - Dst: strvec_clear
      Src: /src/git/run-command.c:943,1
    - Dst: close
      Src: /src/git/run-command.c:946,1
    - Dst: close
      Src: /src/git/run-command.c:948,1
    - Dst: close
      Src: /src/git/run-command.c:950,1
    - Dst: trace2_child_exit
      Src: /src/git/run-command.c:955,1
    - Dst: close_pair
      Src: /src/git/run-command.c:958,1
    - Dst: close
      Src: /src/git/run-command.c:960,1
    - Dst: close_pair
      Src: /src/git/run-command.c:962,1
    - Dst: close
      Src: /src/git/run-command.c:964,1
    - Dst: close_pair
      Src: /src/git/run-command.c:966,1
    - Dst: close
      Src: /src/git/run-command.c:968,1
    - Dst: child_process_clear
      Src: /src/git/run-command.c:969,1
    - Dst: close
      Src: /src/git/run-command.c:975,1
    - Dst: close
      Src: /src/git/run-command.c:977,1
    - Dst: close
      Src: /src/git/run-command.c:980,1
    - Dst: close
      Src: /src/git/run-command.c:982,1
    - Dst: close
      Src: /src/git/run-command.c:985,1
    - Dst: close
      Src: /src/git/run-command.c:987,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 218
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 676
    functionDepth: 6
    functionLinenumber: 676
    functionLinenumberEnd: 990
    functionName: start_command
    functionSourceFile: /src/git/run-command.c
    functionUses: 3
    functionsReached:
    - sigprocmask
    - error_errno
    - mingw_spawnvpe
    - set_warn_routine
    - child_die
    - execve
    - mark_child_for_cleanup
    - child_close
    - free
    - close_pair
    - wait_or_whine
    - trace2_child_start
    - error
    - xopen
    - prepare_shell_cmd
    - pipe
    - prepare_cmd
    - child_process_clear
    - strerror
    - atfork_parent
    - trace_run_command
    - trace2_child_exit
    - child_err_spew
    - odb_close
    - chdir
    - dup
    - fork
    - prepare_git_cmd
    - child_dup2
    - xread
    - fflush
    - atfork_prepare
    - trace_argv_printf
    - prep_childenv
    - set_cloexec
    - set_die_routine
    - open
    - signal
    - set_error_routine
    - strvec_clear
    - child_close_pair
    - close
    linkageType: ''
    returnType: int
    signature: int start_command(struct child_process *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wait_or_whine
      Src: /src/git/run-command.c:994,1
    - Dst: trace2_child_exit
      Src: /src/git/run-command.c:995,1
    - Dst: child_process_clear
      Src: /src/git/run-command.c:996,1
    - Dst: invalidate_lstat_cache
      Src: /src/git/run-command.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 992
    functionDepth: 3
    functionLinenumber: 992
    functionLinenumberEnd: 999
    functionName: finish_command
    functionSourceFile: /src/git/run-command.c
    functionUses: 2
    functionsReached:
    - trace2_child_exit
    - wait_or_whine
    - child_process_clear
    - invalidate_lstat_cache
    linkageType: ''
    returnType: int
    signature: int finish_command(struct child_process *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait_or_whine
      Src: /src/git/run-command.c:1003,1
    - Dst: trace2_child_exit
      Src: /src/git/run-command.c:1005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1001
    functionDepth: 3
    functionLinenumber: 1001
    functionLinenumberEnd: 1007
    functionName: finish_command_in_signal
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - trace2_child_exit
    - wait_or_whine
    linkageType: ''
    returnType: int
    signature: int finish_command_in_signal(struct child_process *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/run-command.c:1015,1
    - Dst: start_command
      Src: /src/git/run-command.c:1017,1
    - Dst: finish_command
      Src: /src/git/run-command.c:1020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1010
    functionDepth: 7
    functionLinenumber: 1010
    functionLinenumberEnd: 1021
    functionName: run_command
    functionSourceFile: /src/git/run-command.c
    functionUses: 2
    functionsReached:
    - BUG
    - finish_command
    - start_command
    linkageType: ''
    returnType: int
    signature: int run_command(struct child_process *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/git/run-command.c:1036,1
    - Dst: sigaddset
      Src: /src/git/run-command.c:1037,1
    - Dst: pthread_sigmask
      Src: /src/git/run-command.c:1038,1
    - Dst: error
      Src: /src/git/run-command.c:1039,1
    - Dst: pthread_setspecific
      Src: /src/git/run-command.c:1044,1
    - Dst: struct async*::proc
      Src: /src/git/run-command.c:1045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1047
    functionName: run_thread
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - error
    - pthread_setspecific
    - struct async*::proc
    - sigemptyset
    - sigaddset
    - pthread_sigmask
    linkageType: ''
    returnType: void
    signature: void *run_thread(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_die_message_routine
      Src: /src/git/run-command.c:1051,1
    - Dst: die_message_fn
      Src: /src/git/run-command.c:1053,1
    - Dst: in_async
      Src: /src/git/run-command.c:1055,1
    - Dst: pthread_getspecific
      Src: /src/git/run-command.c:1056,1
    - Dst: close
      Src: /src/git/run-command.c:1058,1
    - Dst: close
      Src: /src/git/run-command.c:1060,1
    - Dst: pthread_exit
      Src: /src/git/run-command.c:1061,1
    - Dst: exit
      Src: /src/git/run-command.c:1064,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - err
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1065
    functionName: die_async
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - in_async
    - pthread_exit
    - die_message_fn
    - pthread_getspecific
    - get_die_message_routine
    - exit
    - close
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN die_async(const char *err, va_list params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/git/run-command.c:1069,1
    - Dst: pthread_setspecific
      Src: /src/git/run-command.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1072
    functionName: async_die_is_recursing
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - pthread_getspecific
    - pthread_setspecific
    linkageType: ''
    returnType: int
    signature: int async_die_is_recursing(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/git/run-command.c:1078,1
    - Dst: pthread_self
      Src: /src/git/run-command.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1079
    functionName: in_async
    functionSourceFile: /src/git/run-command.c
    functionUses: 1
    functionsReached:
    - pthread_equal
    - pthread_self
    linkageType: ''
    returnType: int
    signature: int in_async(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_exit
      Src: /src/git/run-command.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1084
    functionName: async_exit
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - pthread_exit
    linkageType: ''
    returnType: void
    signature: void async_exit(int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1102
    functionName: git_atexit_dispatch
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void git_atexit_dispatch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/run-command.c:1106,1
    - Dst: memset
      Src: /src/git/run-command.c:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1109
    functionName: git_atexit_clear
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void git_atexit_clear(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/run-command.c:1114,1
    - Dst: atexit
      Src: /src/git/run-command.c:1117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1122
    functionName: git_atexit
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - atexit
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: int git_atexit(void (*handler)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1129
    functionName: in_async
    functionSourceFile: /src/git/run-command.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int in_async(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/git/run-command.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1134
    functionName: async_exit
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void async_exit(int code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: in_async
      Src: /src/git/run-command.c:1141,1
    - Dst: async_exit
      Src: /src/git/run-command.c:1142,1
    - Dst: signal
      Src: /src/git/run-command.c:1144,1
    - Dst: raise
      Src: /src/git/run-command.c:1145,1
    - Dst: exit
      Src: /src/git/run-command.c:1147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1149
    functionName: check_pipe
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - async_exit
    - in_async
    - raise
    - exit
    - signal
    linkageType: ''
    returnType: void
    signature: void check_pipe(int err)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/git/run-command.c:1159,1
    - Dst: close
      Src: /src/git/run-command.c:1161,1
    - Dst: error_errno
      Src: /src/git/run-command.c:1162,1
    - Dst: pipe
      Src: /src/git/run-command.c:1169,1
    - Dst: close_pair
      Src: /src/git/run-command.c:1171,1
    - Dst: close
      Src: /src/git/run-command.c:1173,1
    - Dst: error_errno
      Src: /src/git/run-command.c:1174,1
    - Dst: fflush
      Src: /src/git/run-command.c:1195,1
    - Dst: fork
      Src: /src/git/run-command.c:1197,1
    - Dst: error_errno
      Src: /src/git/run-command.c:1199,1
    - Dst: close
      Src: /src/git/run-command.c:1204,1
    - Dst: close
      Src: /src/git/run-command.c:1206,1
    - Dst: git_atexit_clear
      Src: /src/git/run-command.c:1207,1
    - Dst: exit
      Src: /src/git/run-command.c:1209,1
    - Dst: struct async*::proc
      Src: /src/git/run-command.c:1209,1
    - Dst: mark_child_for_cleanup
      Src: /src/git/run-command.c:1212,1
    - Dst: close
      Src: /src/git/run-command.c:1215,1
    - Dst: close
      Src: /src/git/run-command.c:1217,1
    - Dst: close
      Src: /src/git/run-command.c:1220,1
    - Dst: close
      Src: /src/git/run-command.c:1222,1
    - Dst: pthread_self
      Src: /src/git/run-command.c:1230,1
    - Dst: pthread_key_create
      Src: /src/git/run-command.c:1231,1
    - Dst: pthread_key_create
      Src: /src/git/run-command.c:1232,1
    - Dst: set_die_routine
      Src: /src/git/run-command.c:1233,1
    - Dst: set_die_is_recursing_routine
      Src: /src/git/run-command.c:1234,1
    - Dst: set_cloexec
      Src: /src/git/run-command.c:1238,1
    - Dst: set_cloexec
      Src: /src/git/run-command.c:1240,1
    - Dst: pthread_create
      Src: /src/git/run-command.c:1244,1
    - Dst: error
      Src: /src/git/run-command.c:1246,1
    - Dst: _
      Src: /src/git/run-command.c:1246,1
    - Dst: strerror
      Src: /src/git/run-command.c:1246,1
    - Dst: close_pair
      Src: /src/git/run-command.c:1255,1
    - Dst: close
      Src: /src/git/run-command.c:1257,1
    - Dst: close_pair
      Src: /src/git/run-command.c:1260,1
    - Dst: close
      Src: /src/git/run-command.c:1262,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 1
    argNames:
    - async
    argTypes:
    - struct async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1264
    functionName: start_async
    functionSourceFile: /src/git/run-command.c
    functionUses: 1
    functionsReached:
    - error_errno
    - mark_child_for_cleanup
    - set_die_is_recursing_routine
    - close_pair
    - error
    - pipe
    - struct async*::proc
    - pthread_key_create
    - strerror
    - git_atexit_clear
    - pthread_create
    - fork
    - fflush
    - _
    - pthread_self
    - set_cloexec
    - set_die_routine
    - exit
    - close
    linkageType: ''
    returnType: int
    signature: int start_async(struct async *async)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait_or_whine
      Src: /src/git/run-command.c:1269,1
    - Dst: invalidate_lstat_cache
      Src: /src/git/run-command.c:1271,1
    - Dst: pthread_join
      Src: /src/git/run-command.c:1277,1
    - Dst: error
      Src: /src/git/run-command.c:1278,1
    - Dst: invalidate_lstat_cache
      Src: /src/git/run-command.c:1279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - async
    argTypes:
    - struct async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1266
    functionDepth: 3
    functionLinenumber: 1266
    functionLinenumberEnd: 1283
    functionName: finish_async
    functionSourceFile: /src/git/run-command.c
    functionUses: 1
    functionsReached:
    - error
    - wait_or_whine
    - pthread_join
    - invalidate_lstat_cache
    linkageType: ''
    returnType: int
    signature: int finish_async(struct async *async)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1292
    functionName: async_with_fork
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int async_with_fork(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/git/run-command.c:1333,1
    - Dst: die_errno
      Src: /src/git/run-command.c:1336,1
    - Dst: write
      Src: /src/git/run-command.c:1358,1
    - Dst: close
      Src: /src/git/run-command.c:1365,1
    - Dst: close
      Src: /src/git/run-command.c:1372,1
    - Dst: strbuf_read_once
      Src: /src/git/run-command.c:1379,1
    - Dst: close
      Src: /src/git/run-command.c:1384,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 3
    argNames:
    - slots
    - nr
    - pfd
    argTypes:
    - struct io_pump*
    - int
    - struct pollfd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1316
    functionDepth: 1
    functionLinenumber: 1316
    functionLinenumberEnd: 1391
    functionName: pump_io_round
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - strbuf_read_once
    - write
    - die_errno
    - close
    - poll
    linkageType: ''
    returnType: int
    signature: int pump_io_round(struct io_pump *slots, int nr, struct pollfd *pfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/run-command.c:1401,1
    - Dst: pump_io_round
      Src: /src/git/run-command.c:1402,1
    - Dst: free
      Src: /src/git/run-command.c:1404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - slots
    - nr
    argTypes:
    - struct io_pump*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1393
    functionDepth: 2
    functionLinenumber: 1393
    functionLinenumberEnd: 1414
    functionName: pump_io
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - pump_io_round
    - free
    linkageType: ''
    returnType: int
    signature: int pump_io(struct io_pump *slots, int nr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: start_command
      Src: /src/git/run-command.c:1432,1
    - Dst: enable_pipe_nonblock
      Src: /src/git/run-command.c:1436,1
    - Dst: error_errno
      Src: /src/git/run-command.c:1437,1
    - Dst: close
      Src: /src/git/run-command.c:1438,1
    - Dst: close
      Src: /src/git/run-command.c:1440,1
    - Dst: close
      Src: /src/git/run-command.c:1442,1
    - Dst: pump_io
      Src: /src/git/run-command.c:1466,1
    - Dst: finish_command
      Src: /src/git/run-command.c:1467,1
    - Dst: finish_command
      Src: /src/git/run-command.c:1471,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 7
    argNames:
    - cmd
    - in
    - in_len
    - out
    - out_hint
    - err
    - err_hint
    argTypes:
    - struct child_process*
    - char*
    - size_t
    - struct strbuf*
    - size_t
    - struct strbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1417
    functionDepth: 7
    functionLinenumber: 1417
    functionLinenumberEnd: 1472
    functionName: pipe_command
    functionSourceFile: /src/git/run-command.c
    functionUses: 1
    functionsReached:
    - error_errno
    - pump_io
    - finish_command
    - enable_pipe_nonblock
    - close
    - start_command
    linkageType: ''
    returnType: int
    signature: "int pipe_command(struct child_process *cmd,\n\t\t const char *in,
      size_t in_len,\n\t\t struct strbuf *out, size_t out_hint,\n\t\t struct strbuf
      *err, size_t err_hint)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp_child
    argTypes:
    - struct parallel_child*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1490
    functionName: child_is_working
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int child_is_working(const struct parallel_child *pp_child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: child_is_working
      Src: /src/git/run-command.c:1494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pp_child
    argTypes:
    - struct parallel_child*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1492
    functionDepth: 1
    functionLinenumber: 1492
    functionLinenumberEnd: 1495
    functionName: child_is_ready_for_cleanup
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - child_is_working
    linkageType: ''
    returnType: int
    signature: int child_is_ready_for_cleanup(const struct parallel_child *pp_child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: child_is_working
      Src: /src/git/run-command.c:1499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pp_child
    argTypes:
    - struct parallel_child*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1500
    functionName: child_is_receiving_input
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - child_is_working
    linkageType: ''
    returnType: int
    signature: int child_is_receiving_input(const struct parallel_child *pp_child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: child_is_working
      Src: /src/git/run-command.c:1507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pp_child
    argTypes:
    - struct parallel_child*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1508
    functionName: child_is_sending_output
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - child_is_working
    linkageType: ''
    returnType: int
    signature: int child_is_sending_output(const struct parallel_child *pp_child)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: child_is_working
      Src: /src/git/run-command.c:1536,1
    - Dst: kill
      Src: /src/git/run-command.c:1537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - pp
    - opts
    - signo
    argTypes:
    - struct parallel_processes*
    - struct run_process_parallel_opts*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1538
    functionName: kill_children
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - kill
    - child_is_working
    linkageType: ''
    returnType: void
    signature: "void kill_children(const struct parallel_processes *pp,\n\t\t\t  const
      struct run_process_parallel_opts *opts,\n\t\t\t  int signo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kill_children
      Src: /src/git/run-command.c:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pp_sig
    - signo
    argTypes:
    - struct parallel_processes_for_signal*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1540
    functionDepth: 2
    functionLinenumber: 1540
    functionLinenumberEnd: 1544
    functionName: kill_children_signal
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - kill_children
    linkageType: ''
    returnType: void
    signature: "void kill_children_signal(const struct parallel_processes_for_signal
      *pp_sig,\n\t\t\t\t int signo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kill_children_signal
      Src: /src/git/run-command.c:1550,1
    - Dst: sigchain_pop
      Src: /src/git/run-command.c:1551,1
    - Dst: raise
      Src: /src/git/run-command.c:1552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1548
    functionDepth: 3
    functionLinenumber: 1548
    functionLinenumberEnd: 1553
    functionName: handle_children_on_signal
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - kill_children_signal
    - sigchain_pop
    - raise
    linkageType: ''
    returnType: void
    signature: void handle_children_on_signal(int signo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/run-command.c:1562,1
    - Dst: trace_printf
      Src: /src/git/run-command.c:1564,1
    - Dst: BUG
      Src: /src/git/run-command.c:1568,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/run-command.c:1570,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/run-command.c:1572,1
    - Dst: strbuf_init
      Src: /src/git/run-command.c:1575,1
    - Dst: child_process_init
      Src: /src/git/run-command.c:1576,1
    - Dst: sigchain_push_common
      Src: /src/git/run-command.c:1586,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - pp
    - opts
    - pp_sig
    argTypes:
    - struct parallel_processes*
    - struct run_process_parallel_opts*
    - struct parallel_processes_for_signal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1587
    functionName: pp_init
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - sigchain_push_common
    - child_process_init
    - trace_printf
    - CALLOC_ARRAY
    - BUG
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: "void pp_init(struct parallel_processes *pp,\n\t\t    const struct
      run_process_parallel_opts *opts,\n\t\t    struct parallel_processes_for_signal
      *pp_sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf
      Src: /src/git/run-command.c:1592,1
    - Dst: strbuf_release
      Src: /src/git/run-command.c:1594,1
    - Dst: child_process_clear
      Src: /src/git/run-command.c:1595,1
    - Dst: free
      Src: /src/git/run-command.c:1598,1
    - Dst: free
      Src: /src/git/run-command.c:1599,1
    - Dst: strbuf_write
      Src: /src/git/run-command.c:1605,1
    - Dst: strbuf_release
      Src: /src/git/run-command.c:1606,1
    - Dst: sigchain_pop_common
      Src: /src/git/run-command.c:1608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pp
    - opts
    argTypes:
    - struct parallel_processes*
    - struct run_process_parallel_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1589
    functionDepth: 2
    functionLinenumber: 1589
    functionLinenumberEnd: 1609
    functionName: pp_cleanup
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - strbuf_write
    - strbuf_release
    - trace_printf
    - child_process_clear
    - sigchain_pop_common
    - free
    linkageType: ''
    returnType: void
    signature: "void pp_cleanup(struct parallel_processes *pp,\n\t\t       const struct
      run_process_parallel_opts *opts)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/run-command.c:1628,1
    - Dst: struct run_process_parallel_opts*::get_next_task
      Src: /src/git/run-command.c:1638,1
    - Dst: strbuf_addbuf
      Src: /src/git/run-command.c:1644,1
    - Dst: strbuf_reset
      Src: /src/git/run-command.c:1645,1
    - Dst: start_command
      Src: /src/git/run-command.c:1654,1
    - Dst: struct run_process_parallel_opts*::start_failure
      Src: /src/git/run-command.c:1656,1
    - Dst: strbuf_addbuf
      Src: /src/git/run-command.c:1664,1
    - Dst: strbuf_reset
      Src: /src/git/run-command.c:1665,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - pp
    - opts
    argTypes:
    - struct parallel_processes*
    - struct run_process_parallel_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1618
    functionDepth: 7
    functionLinenumber: 1618
    functionLinenumberEnd: 1677
    functionName: pp_start_one
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - struct run_process_parallel_opts*::start_failure
    - strbuf_reset
    - strbuf_addbuf
    - struct run_process_parallel_opts*::get_next_task
    - BUG
    - start_command
    linkageType: ''
    returnType: int
    signature: "int pp_start_one(struct parallel_processes *pp,\n\t\t\tconst struct
      run_process_parallel_opts *opts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: child_is_receiving_input
      Src: /src/git/run-command.c:1687,1
    - Dst: close
      Src: /src/git/run-command.c:1695,1
    - Dst: struct run_process_parallel_opts*::feed_pipe
      Src: /src/git/run-command.c:1706,1
    - Dst: die_errno
      Src: /src/git/run-command.c:1708,1
    - Dst: close
      Src: /src/git/run-command.c:1711,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - pp
    - opts
    argTypes:
    - struct parallel_processes*
    - struct run_process_parallel_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1679
    functionDepth: 2
    functionLinenumber: 1679
    functionLinenumberEnd: 1715
    functionName: pp_buffer_stdin
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - close
    - child_is_receiving_input
    - struct run_process_parallel_opts*::feed_pipe
    - die_errno
    linkageType: ''
    returnType: void
    signature: "void pp_buffer_stdin(struct parallel_processes *pp,\n\t\t\t    const
      struct run_process_parallel_opts *opts)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: child_is_sending_output
      Src: /src/git/run-command.c:1723,1
    - Dst: child_is_receiving_input
      Src: /src/git/run-command.c:1730,1
    - Dst: poll
      Src: /src/git/run-command.c:1738,1
    - Dst: pp_cleanup
      Src: /src/git/run-command.c:1741,1
    - Dst: die_errno
      Src: /src/git/run-command.c:1742,1
    - Dst: struct run_process_parallel_opts*::feed_pipe
      Src: /src/git/run-command.c:1749,1
    - Dst: die_errno
      Src: /src/git/run-command.c:1753,1
    - Dst: close
      Src: /src/git/run-command.c:1756,1
    - Dst: close
      Src: /src/git/run-command.c:1766,1
    - Dst: child_is_working
      Src: /src/git/run-command.c:1772,1
    - Dst: strbuf_read_once
      Src: /src/git/run-command.c:1774,1
    - Dst: close
      Src: /src/git/run-command.c:1777,1
    - Dst: die_errno
      Src: /src/git/run-command.c:1781,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - pp
    - opts
    - timeout
    argTypes:
    - struct parallel_processes*
    - struct run_process_parallel_opts*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1717
    functionDepth: 3
    functionLinenumber: 1717
    functionLinenumberEnd: 1784
    functionName: pp_buffer_io
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - strbuf_read_once
    - poll
    - child_is_sending_output
    - die_errno
    - child_is_receiving_input
    - struct run_process_parallel_opts*::feed_pipe
    - close
    - child_is_working
    - pp_cleanup
    linkageType: ''
    returnType: void
    signature: "void pp_buffer_io(struct parallel_processes *pp,\n\t\t\t const struct
      run_process_parallel_opts *opts,\n\t\t\t int timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: child_is_working
      Src: /src/git/run-command.c:1790,1
    - Dst: strbuf_write
      Src: /src/git/run-command.c:1792,1
    - Dst: strbuf_reset
      Src: /src/git/run-command.c:1793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pp
    argTypes:
    - struct parallel_processes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1795
    functionName: pp_output
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_write
    - child_is_working
    linkageType: ''
    returnType: void
    signature: void pp_output(const struct parallel_processes *pp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: finish_command
      Src: /src/git/run-command.c:1811,1
    - Dst: struct run_process_parallel_opts*::task_finished
      Src: /src/git/run-command.c:1814,1
    - Dst: child_process_init
      Src: /src/git/run-command.c:1830,1
    - Dst: strbuf_addbuf
      Src: /src/git/run-command.c:1835,1
    - Dst: strbuf_reset
      Src: /src/git/run-command.c:1836,1
    - Dst: strbuf_write
      Src: /src/git/run-command.c:1840,1
    - Dst: strbuf_reset
      Src: /src/git/run-command.c:1841,1
    - Dst: strbuf_write
      Src: /src/git/run-command.c:1844,1
    - Dst: strbuf_reset
      Src: /src/git/run-command.c:1845,1
    - Dst: child_is_working
      Src: /src/git/run-command.c:1856,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - pp
    - opts
    argTypes:
    - struct parallel_processes*
    - struct run_process_parallel_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1797
    functionDepth: 4
    functionLinenumber: 1797
    functionLinenumberEnd: 1862
    functionName: pp_collect_finished
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - strbuf_write
    - finish_command
    - child_process_init
    - strbuf_reset
    - struct run_process_parallel_opts*::task_finished
    - strbuf_addbuf
    - child_is_working
    linkageType: ''
    returnType: int
    signature: "int pp_collect_finished(struct parallel_processes *pp,\n\t\t\t       const
      struct run_process_parallel_opts *opts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pp_buffer_stdin
      Src: /src/git/run-command.c:1869,1
    - Dst: child_is_ready_for_cleanup
      Src: /src/git/run-command.c:1871,1
    - Dst: pp_buffer_io
      Src: /src/git/run-command.c:1874,1
    - Dst: pp_output
      Src: /src/git/run-command.c:1875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pp
    - opts
    - timeout
    argTypes:
    - struct parallel_processes*
    - struct run_process_parallel_opts*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1864
    functionDepth: 4
    functionLinenumber: 1864
    functionLinenumberEnd: 1877
    functionName: pp_handle_child_IO
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - child_is_ready_for_cleanup
    - pp_buffer_stdin
    - pp_output
    - pp_buffer_io
    linkageType: ''
    returnType: void
    signature: "void pp_handle_child_IO(struct parallel_processes *pp,\n\t\t\t\tconst
      struct run_process_parallel_opts *opts,\n\t\t\t\tint timeout)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter_printf
      Src: /src/git/run-command.c:1894,1
    - Dst: pp_init
      Src: /src/git/run-command.c:1898,1
    - Dst: sigchain_push
      Src: /src/git/run-command.c:1909,1
    - Dst: pp_start_one
      Src: /src/git/run-command.c:1916,1
    - Dst: kill_children
      Src: /src/git/run-command.c:1921,1
    - Dst: pp_handle_child_IO
      Src: /src/git/run-command.c:1927,1
    - Dst: pp_collect_finished
      Src: /src/git/run-command.c:1928,1
    - Dst: kill_children
      Src: /src/git/run-command.c:1932,1
    - Dst: sigchain_pop
      Src: /src/git/run-command.c:1936,1
    - Dst: pp_cleanup
      Src: /src/git/run-command.c:1938,1
    - Dst: trace2_region_leave
      Src: /src/git/run-command.c:1941,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct run_process_parallel_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1879
    functionDepth: 8
    functionLinenumber: 1879
    functionLinenumberEnd: 1942
    functionName: run_processes_parallel
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - pp_handle_child_IO
    - pp_collect_finished
    - pp_start_one
    - sigchain_push
    - sigchain_pop
    - trace2_region_leave
    - kill_children
    - pp_init
    - trace2_region_enter_printf
    - pp_cleanup
    linkageType: ''
    returnType: void
    signature: void run_processes_parallel(const struct run_process_parallel_opts
      *opts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/run-command.c:1949,1
    - Dst: repo_config_get_int
      Src: /src/git/run-command.c:1951,1
    - Dst: repo_config_get_bool
      Src: /src/git/run-command.c:1962,1
    - Dst: repo_config_get_bool
      Src: /src/git/run-command.c:1963,1
    - Dst: git_env_bool
      Src: /src/git/run-command.c:1964,1
    - Dst: strvec_pushl
      Src: /src/git/run-command.c:1968,1
    - Dst: strvec_push
      Src: /src/git/run-command.c:1969,1
    - Dst: strvec_push
      Src: /src/git/run-command.c:1970,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - r
    - quiet
    - maint
    argTypes:
    - struct repository*
    - int
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1944
    functionDepth: 1
    functionLinenumber: 1944
    functionLinenumberEnd: 1973
    functionName: prepare_auto_maintenance
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - strvec_push
    - git_env_bool
    - strvec_pushl
    - repo_config_get_bool
    linkageType: ''
    returnType: int
    signature: "int prepare_auto_maintenance(struct repository *r, int quiet,\n\t\t\t
      \    struct child_process *maint)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_auto_maintenance
      Src: /src/git/run-command.c:1978,1
    - Dst: run_command
      Src: /src/git/run-command.c:1980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - quiet
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1975
    functionDepth: 8
    functionLinenumber: 1975
    functionLinenumberEnd: 1981
    functionName: run_auto_maintenance
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - prepare_auto_maintenance
    - run_command
    linkageType: ''
    returnType: int
    signature: int run_auto_maintenance(struct repository *r, int quiet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/run-command.c:1988,1
    - Dst: strcmp
      Src: /src/git/run-command.c:1989,1
    - Dst: strvec_push
      Src: /src/git/run-command.c:1990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 1992
    functionName: sanitize_repo_env
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strcmp
    linkageType: ''
    returnType: void
    signature: void sanitize_repo_env(struct strvec *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_repo_env
      Src: /src/git/run-command.c:1996,1
    - Dst: strvec_pushf
      Src: /src/git/run-command.c:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - new_git_dir
    argTypes:
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1994
    functionDepth: 2
    functionLinenumber: 1994
    functionLinenumberEnd: 1998
    functionName: prepare_other_repo_env
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - sanitize_repo_env
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: void prepare_other_repo_env(struct strvec *env, const char *new_git_dir)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/run-command.c:2018,1
    - Dst: start_command
      Src: /src/git/run-command.c:2023,1
    - Dst: time
      Src: /src/git/run-command.c:2040,1
    - Dst: waitpid
      Src: /src/git/run-command.c:2044,1
    - Dst: trace2_child_ready
      Src: /src/git/run-command.c:2057,1
    - Dst: time
      Src: /src/git/run-command.c:2067,1
    - Dst: trace2_child_ready
      Src: /src/git/run-command.c:2076,1
    - Dst: trace2_child_ready
      Src: /src/git/run-command.c:2084,1
    - Dst: WIFEXITED
      Src: /src/git/run-command.c:2107,1
    - Dst: WEXITSTATUS
      Src: /src/git/run-command.c:2108,1
    - Dst: WIFSIGNALED
      Src: /src/git/run-command.c:2109,1
    - Dst: WTERMSIG
      Src: /src/git/run-command.c:2110,1
    - Dst: trace2_child_exit
      Src: /src/git/run-command.c:2111,1
    - Dst: trace2_child_exit
      Src: /src/git/run-command.c:2120,1
    - Dst: child_process_clear
      Src: /src/git/run-command.c:2124,1
    - Dst: invalidate_lstat_cache
      Src: /src/git/run-command.c:2125,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 4
    argNames:
    - cmd
    - wait_cb
    - cb_data
    - timeout_sec
    argTypes:
    - struct child_process*
    - start_bg_wait_cb*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2000
    functionDepth: 7
    functionLinenumber: 2000
    functionLinenumberEnd: 2127
    functionName: start_bg_command
    functionSourceFile: /src/git/run-command.c
    functionUses: 0
    functionsReached:
    - WIFSIGNALED
    - WEXITSTATUS
    - BUG
    - WTERMSIG
    - child_process_clear
    - time
    - WIFEXITED
    - invalidate_lstat_cache
    - trace2_child_exit
    - waitpid
    - start_command
    - trace2_child_ready
    linkageType: ''
    returnType: enum start_bg_result
    signature: "enum start_bg_result start_bg_command(struct child_process *cmd,\n\t\t\t\t
      \     start_bg_wait_cb *wait_cb,\n\t\t\t\t      void *cb_data,\n\t\t\t\t      unsigned
      int timeout_sec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/git/help.h:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - c
    - num
    argTypes:
    - char
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: mput_char
    functionSourceFile: /src/git/help.h
    functionUses: 0
    functionsReached:
    - putchar
    linkageType: ''
    returnType: void
    signature: void mput_char(char c, unsigned int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append_nodup
      Src: /src/git/help.h:57,1
    - Dst: xstrfmt
      Src: /src/git/help.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - list
    - prefix
    - str
    argTypes:
    - struct string_list*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: list_config_item
    functionSourceFile: /src/git/help.h
    functionUses: 0
    functionsReached:
    - xstrfmt
    - string_list_append_nodup
    linkageType: ''
    returnType: void
    signature: "void list_config_item(struct string_list *list,\n\t\t\t\t    const
      char *prefix,\n\t\t\t\t    const char *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - array
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: define_list_config_array
    functionSourceFile: /src/git/help.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: define_list_config_array(array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - array
    - ','
    - values
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: define_list_config_array_extra
    functionSourceFile: /src/git/help.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: define_list_config_array_extra(array, values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/upload-pack.c:140,1
    - Dst: packet_writer_init
      Src: /src/git/upload-pack.c:153,1
    - Dst: list_objects_filter_init
      Src: /src/git/upload-pack.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 158
    functionName: upload_pack_data_init
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - list_objects_filter_init
    - memset
    - packet_writer_init
    linkageType: ''
    returnType: void
    signature: void upload_pack_data_init(struct upload_pack_data *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/upload-pack.c:162,1
    - Dst: strmap_clear
      Src: /src/git/upload-pack.c:163,1
    - Dst: strvec_clear
      Src: /src/git/upload-pack.c:164,1
    - Dst: object_array_clear
      Src: /src/git/upload-pack.c:165,1
    - Dst: object_array_clear
      Src: /src/git/upload-pack.c:166,1
    - Dst: object_array_clear
      Src: /src/git/upload-pack.c:167,1
    - Dst: oidset_clear
      Src: /src/git/upload-pack.c:168,1
    - Dst: object_array_clear
      Src: /src/git/upload-pack.c:169,1
    - Dst: list_objects_filter_release
      Src: /src/git/upload-pack.c:170,1
    - Dst: string_list_clear
      Src: /src/git/upload-pack.c:171,1
    - Dst: string_list_clear
      Src: /src/git/upload-pack.c:172,1
    - Dst: free
      Src: /src/git/upload-pack.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 175
    functionName: upload_pack_data_clear
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strmap_clear
    - object_array_clear
    - oidset_clear
    - strvec_clear
    - free
    - list_objects_filter_release
    linkageType: ''
    returnType: void
    signature: void upload_pack_data_clear(struct upload_pack_data *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/git/upload-pack.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: reset_timeout
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - alarm
    linkageType: ''
    returnType: void
    signature: void reset_timeout(unsigned int timeout)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: send_sideband
      Src: /src/git/upload-pack.c:186,1
    - Dst: xwrite
      Src: /src/git/upload-pack.c:194,1
    - Dst: write_or_die
      Src: /src/git/upload-pack.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - fd
    - data
    - sz
    - use_sideband
    argTypes:
    - int
    - char*
    - ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 198
    functionName: send_client_data
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - xwrite
    - send_sideband
    linkageType: ''
    returnType: void
    signature: "void send_client_data(int fd, const char *data, ssize_t sz,\n\t\t\t
      \    int use_sideband)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/upload-pack.c:204,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - graft
    - cb_data
    argTypes:
    - struct commit_graft*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: write_one_shallow
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fprintf
    linkageType: ''
    returnType: int
    signature: int write_one_shallow(const struct commit_graft *graft, void *cb_data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xread
      Src: /src/git/upload-pack.c:239,1
    - Dst: memcmp
      Src: /src/git/upload-pack.c:248,1
    - Dst: packet_delim
      Src: /src/git/upload-pack.c:252,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:253,1
    - Dst: memchr
      Src: /src/git/upload-pack.c:258,1
    - Dst: BUG
      Src: /src/git/upload-pack.c:262,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:263,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:266,1
    - Dst: memmove
      Src: /src/git/upload-pack.c:270,1
    - Dst: send_client_data
      Src: /src/git/upload-pack.c:287,1
    - Dst: send_client_data
      Src: /src/git/upload-pack.c:291,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 5
    argNames:
    - pack_objects_out
    - os
    - use_sideband
    - write_packfile_line
    - did_send_data
    argTypes:
    - int
    - struct output_state*
    - int
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 297
    functionName: relay_pack_data
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - memchr
    - packet_delim
    - xread
    - send_client_data
    - memmove
    - BUG
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int relay_pack_data(int pack_objects_out, struct output_state *os,\n\t\t\t
      \  int use_sideband, int write_packfile_line,\n\t\t\t   bool *did_send_data)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/upload-pack.c:303,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:315,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:316,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:321,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:322,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:324,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:325,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:327,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:329,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:331,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:333,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:335,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:337,1
    - Dst: repo_has_accepted_promisor_remote
      Src: /src/git/upload-pack.c:338,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:339,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/upload-pack.c:342,1
    - Dst: strvec_pushf
      Src: /src/git/upload-pack.c:343,1
    - Dst: strvec_pushf
      Src: /src/git/upload-pack.c:347,1
    - Dst: start_command
      Src: /src/git/upload-pack.c:356,1
    - Dst: die
      Src: /src/git/upload-pack.c:357,1
    - Dst: xfdopen
      Src: /src/git/upload-pack.c:359,1
    - Dst: for_each_commit_graft
      Src: /src/git/upload-pack.c:362,1
    - Dst: fprintf
      Src: /src/git/upload-pack.c:365,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:366,1
    - Dst: fprintf
      Src: /src/git/upload-pack.c:367,1
    - Dst: fprintf
      Src: /src/git/upload-pack.c:369,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:370,1
    - Dst: fprintf
      Src: /src/git/upload-pack.c:372,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:373,1
    - Dst: fprintf
      Src: /src/git/upload-pack.c:374,1
    - Dst: fflush
      Src: /src/git/upload-pack.c:375,1
    - Dst: fclose
      Src: /src/git/upload-pack.c:376,1
    - Dst: getnanotime
      Src: /src/git/upload-pack.c:383,1
    - Dst: reset_timeout
      Src: /src/git/upload-pack.c:391,1
    - Dst: poll
      Src: /src/git/upload-pack.c:426,1
    - Dst: error_errno
      Src: /src/git/upload-pack.c:430,1
    - Dst: sleep
      Src: /src/git/upload-pack.c:431,1
    - Dst: xread
      Src: /src/git/upload-pack.c:440,1
    - Dst: send_client_data
      Src: /src/git/upload-pack.c:443,1
    - Dst: close
      Src: /src/git/upload-pack.c:447,1
    - Dst: relay_pack_data
      Src: /src/git/upload-pack.c:458,1
    - Dst: close
      Src: /src/git/upload-pack.c:465,1
    - Dst: send_client_data
      Src: /src/git/upload-pack.c:488,1
    - Dst: write_or_die
      Src: /src/git/upload-pack.c:494,1
    - Dst: finish_command
      Src: /src/git/upload-pack.c:501,1
    - Dst: error
      Src: /src/git/upload-pack.c:502,1
    - Dst: send_client_data
      Src: /src/git/upload-pack.c:508,1
    - Dst: free
      Src: /src/git/upload-pack.c:510,1
    - Dst: packet_flush
      Src: /src/git/upload-pack.c:512,1
    - Dst: free
      Src: /src/git/upload-pack.c:516,1
    - Dst: send_client_data
      Src: /src/git/upload-pack.c:517,1
    - Dst: strlen
      Src: /src/git/upload-pack.c:517,1
    - Dst: die
      Src: /src/git/upload-pack.c:519,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 140
    argCount: 2
    argNames:
    - pack_data
    - uri_protocols
    argTypes:
    - struct upload_pack_data*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 299
    functionDepth: 7
    functionLinenumber: 299
    functionLinenumberEnd: 520
    functionName: create_pack_file
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - fclose
    - strvec_push
    - error_errno
    - packet_flush
    - free
    - sleep
    - reset_timeout
    - error
    - write_or_die
    - die
    - finish_command
    - relay_pack_data
    - xcalloc
    - getnanotime
    - poll
    - expand_list_objects_filter_spec
    - oid_to_hex
    - xread
    - send_client_data
    - fflush
    - for_each_commit_graft
    - xfdopen
    - strvec_pushf
    - repo_has_accepted_promisor_remote
    - strlen
    - close
    - fprintf
    - start_command
    linkageType: ''
    returnType: void
    signature: "void create_pack_file(struct upload_pack_data *pack_data,\n\t\t\t
      \    const struct string_list *uri_protocols)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_object_with_flags
      Src: /src/git/upload-pack.c:524,1
    - Dst: die
      Src: /src/git/upload-pack.c:529,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:529,1
    - Dst: add_object_array
      Src: /src/git/upload-pack.c:547,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - data
    - oid
    argTypes:
    - struct upload_pack_data*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 549
    functionName: do_got_oid
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - parse_object_with_flags
    - add_object_array
    - oid_to_hex
    - die
    linkageType: ''
    returnType: int
    signature: int do_got_oid(struct upload_pack_data *data, const struct object_id
      *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_hex
      Src: /src/git/upload-pack.c:554,1
    - Dst: die
      Src: /src/git/upload-pack.c:555,1
    - Dst: odb_has_object
      Src: /src/git/upload-pack.c:556,1
    - Dst: do_got_oid
      Src: /src/git/upload-pack.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - data
    - hex
    - oid
    argTypes:
    - struct upload_pack_data*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 551
    functionDepth: 4
    functionLinenumber: 551
    functionLinenumberEnd: 559
    functionName: got_oid
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 1
    functionsReached:
    - get_oid_hex
    - die
    - odb_has_object
    - do_got_oid
    linkageType: ''
    returnType: int
    signature: "int got_oid(struct upload_pack_data *data,\n\t\t   const char *hex,
      struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: can_all_from_reach_with_flag
      Src: /src/git/upload-pack.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 571
    functionName: ok_to_give_up
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - can_all_from_reach_with_flag
    linkageType: ''
    returnType: int
    signature: int ok_to_give_up(struct upload_pack_data *data)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: reset_timeout
      Src: /src/git/upload-pack.c:585,1
    - Dst: packet_reader_read
      Src: /src/git/upload-pack.c:587,1
    - Dst: ok_to_give_up
      Src: /src/git/upload-pack.c:591,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:593,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:596,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:599,1
    - Dst: exit
      Src: /src/git/upload-pack.c:603,1
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:608,1
    - Dst: got_oid
      Src: /src/git/upload-pack.c:609,1
    - Dst: ok_to_give_up
      Src: /src/git/upload-pack.c:613,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:614,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:617,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:619,1
    - Dst: oid_to_hex_r
      Src: /src/git/upload-pack.c:624,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:626,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:628,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:630,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:635,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:638,1
    - Dst: packet_write_fmt
      Src: /src/git/upload-pack.c:641,1
    - Dst: die
      Src: /src/git/upload-pack.c:644,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct upload_pack_data*
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 573
    functionDepth: 5
    functionLinenumber: 573
    functionLinenumberEnd: 646
    functionName: get_common_commits
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - oid_to_hex
    - oid_to_hex_r
    - die
    - exit
    - ok_to_give_up
    - got_oid
    - strcmp
    - skip_prefix
    - packet_reader_read
    - reset_timeout
    linkageType: ''
    returnType: int
    signature: "int get_common_commits(struct upload_pack_data *data,\n\t\t\t      struct
      packet_reader *reader)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - allow_uor
    argTypes:
    - enum allow_uor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 653
    functionName: allow_hidden_refs
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int allow_hidden_refs(enum allow_uor allow_uor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_git_namespace
      Src: /src/git/upload-pack.c:659,1
    - Dst: allow_hidden_refs
      Src: /src/git/upload-pack.c:671,1
    - Dst: hidden_refs_to_excludes
      Src: /src/git/upload-pack.c:672,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/upload-pack.c:674,1
    - Dst: get_main_ref_store
      Src: /src/git/upload-pack.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fn
    - data
    argTypes:
    - refs_for_each_cb
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 676
    functionName: for_each_namespaced_ref_1
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - hidden_refs_to_excludes
    - refs_for_each_ref_ext
    - allow_hidden_refs
    - get_git_namespace
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void for_each_namespaced_ref_1(refs_for_each_cb fn,\n\t\t\t\t      struct
      upload_pack_data *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allow_hidden_refs
      Src: /src/git/upload-pack.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - allow_uor
    argTypes:
    - struct object*
    - enum allow_uor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: is_our_ref
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - allow_hidden_refs
    linkageType: ''
    returnType: int
    signature: int is_our_ref(struct object *o, enum allow_uor allow_uor)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/upload-pack.c:696,1
    - Dst: sigchain_push
      Src: /src/git/upload-pack.c:707,1
    - Dst: start_command
      Src: /src/git/upload-pack.c:709,1
    - Dst: xfdopen
      Src: /src/git/upload-pack.c:712,1
    - Dst: get_max_object_index
      Src: /src/git/upload-pack.c:714,1
    - Dst: get_indexed_object
      Src: /src/git/upload-pack.c:715,1
    - Dst: is_our_ref
      Src: /src/git/upload-pack.c:720,1
    - Dst: fprintf
      Src: /src/git/upload-pack.c:722,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:722,1
    - Dst: is_our_ref
      Src: /src/git/upload-pack.c:727,1
    - Dst: add_object_array
      Src: /src/git/upload-pack.c:729,1
    - Dst: fprintf
      Src: /src/git/upload-pack.c:734,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:734,1
    - Dst: ferror
      Src: /src/git/upload-pack.c:737,1
    - Dst: fflush
      Src: /src/git/upload-pack.c:737,1
    - Dst: fclose
      Src: /src/git/upload-pack.c:739,1
    - Dst: sigchain_pop
      Src: /src/git/upload-pack.c:741,1
    - Dst: sigchain_pop
      Src: /src/git/upload-pack.c:746,1
    - Dst: fclose
      Src: /src/git/upload-pack.c:749,1
    - Dst: close
      Src: /src/git/upload-pack.c:751,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 4
    argNames:
    - cmd
    - src
    - reachable
    - allow_uor
    argTypes:
    - struct child_process*
    - struct object_array*
    - struct object_array*
    - enum allow_uor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 687
    functionDepth: 7
    functionLinenumber: 687
    functionLinenumberEnd: 753
    functionName: do_reachable_revlist
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - fclose
    - ferror
    - oid_to_hex
    - sigchain_push
    - sigchain_pop
    - strvec_pushl
    - add_object_array
    - get_max_object_index
    - fflush
    - is_our_ref
    - close
    - xfdopen
    - fprintf
    - start_command
    - get_indexed_object
    linkageType: ''
    returnType: int
    signature: "int do_reachable_revlist(struct child_process *cmd,\n\t\t\t\tstruct
      object_array *src,\n\t\t\t\tstruct object_array *reachable,\n\t\t\t\tenum allow_uor
      allow_uor)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: do_reachable_revlist
      Src: /src/git/upload-pack.c:761,1
    - Dst: read_in_full
      Src: /src/git/upload-pack.c:768,1
    - Dst: close
      Src: /src/git/upload-pack.c:771,1
    - Dst: finish_command
      Src: /src/git/upload-pack.c:779,1
    - Dst: close
      Src: /src/git/upload-pack.c:787,1
    - Dst: child_process_clear
      Src: /src/git/upload-pack.c:788,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - src
    - allow_uor
    argTypes:
    - struct object_array*
    - enum allow_uor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 755
    functionDepth: 8
    functionLinenumber: 755
    functionLinenumberEnd: 790
    functionName: has_unreachable
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - finish_command
    - child_process_clear
    - read_in_full
    - close
    - do_reachable_revlist
    linkageType: ''
    returnType: int
    signature: int has_unreachable(struct object_array *src, enum allow_uor allow_uor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_unreachable
      Src: /src/git/upload-pack.c:803,1
    - Dst: is_our_ref
      Src: /src/git/upload-pack.c:811,1
    - Dst: error
      Src: /src/git/upload-pack.c:812,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:813,1
    - Dst: packet_writer_error
      Src: /src/git/upload-pack.c:814,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:816,1
    - Dst: exit
      Src: /src/git/upload-pack.c:817,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 792
    functionDepth: 9
    functionLinenumber: 792
    functionLinenumberEnd: 820
    functionName: check_non_tip
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - packet_writer_error
    - exit
    - is_our_ref
    - has_unreachable
    linkageType: ''
    returnType: void
    signature: void check_non_tip(struct upload_pack_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_writer_write
      Src: /src/git/upload-pack.c:828,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:829,1
    - Dst: register_shallow
      Src: /src/git/upload-pack.c:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - data
    - result
    argTypes:
    - struct upload_pack_data*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 835
    functionName: send_shallow
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - packet_writer_write
    - oid_to_hex
    - register_shallow
    linkageType: ''
    returnType: void
    signature: "void send_shallow(struct upload_pack_data *data,\n\t\t\t struct commit_list
      *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_writer_write
      Src: /src/git/upload-pack.c:845,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:846,1
    - Dst: unregister_shallow
      Src: /src/git/upload-pack.c:855,1
    - Dst: parse_commit_or_die
      Src: /src/git/upload-pack.c:857,1
    - Dst: add_object_array
      Src: /src/git/upload-pack.c:860,1
    - Dst: add_object_array
      Src: /src/git/upload-pack.c:864,1
    - Dst: register_shallow
      Src: /src/git/upload-pack.c:867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 869
    functionName: send_unshallow
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - parse_commit_or_die
    - oid_to_hex
    - add_object_array
    - packet_writer_write
    - register_shallow
    - unregister_shallow
    linkageType: ''
    returnType: void
    signature: void send_unshallow(struct upload_pack_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_repository_shallow
      Src: /src/git/upload-pack.c:875,1
    - Dst: get_shallow_commits
      Src: /src/git/upload-pack.c:885,1
    - Dst: send_shallow
      Src: /src/git/upload-pack.c:888,1
    - Dst: free_commit_list
      Src: /src/git/upload-pack.c:889,1
    - Dst: send_unshallow
      Src: /src/git/upload-pack.c:892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - depth
    argTypes:
    - struct upload_pack_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 873
    functionDepth: 4
    functionLinenumber: 873
    functionLinenumberEnd: 893
    functionName: deepen
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - send_shallow
    - free_commit_list
    - send_unshallow
    - is_repository_shallow
    - get_shallow_commits
    linkageType: ''
    returnType: void
    signature: void deepen(struct upload_pack_data *data, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disable_commit_graph
      Src: /src/git/upload-pack.c:900,1
    - Dst: get_shallow_commits_by_rev_list
      Src: /src/git/upload-pack.c:901,1
    - Dst: send_shallow
      Src: /src/git/upload-pack.c:902,1
    - Dst: free_commit_list
      Src: /src/git/upload-pack.c:903,1
    - Dst: send_unshallow
      Src: /src/git/upload-pack.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - data
    - argv
    argTypes:
    - struct upload_pack_data*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 895
    functionDepth: 4
    functionLinenumber: 895
    functionLinenumberEnd: 905
    functionName: deepen_by_rev_list
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - disable_commit_graph
    - send_shallow
    - free_commit_list
    - send_unshallow
    - get_shallow_commits_by_rev_list
    linkageType: ''
    returnType: void
    signature: "void deepen_by_rev_list(struct upload_pack_data *data,\n\t\t\t       struct
      strvec *argv)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/upload-pack.c:913,1
    - Dst: deepen
      Src: /src/git/upload-pack.c:915,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:921,1
    - Dst: strvec_pushf
      Src: /src/git/upload-pack.c:923,1
    - Dst: oidset_size
      Src: /src/git/upload-pack.c:924,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:927,1
    - Dst: oidset_iter_init
      Src: /src/git/upload-pack.c:928,1
    - Dst: oidset_iter_next
      Src: /src/git/upload-pack.c:929,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:930,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:930,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:931,1
    - Dst: strvec_push
      Src: /src/git/upload-pack.c:935,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:935,1
    - Dst: deepen_by_rev_list
      Src: /src/git/upload-pack.c:937,1
    - Dst: strvec_clear
      Src: /src/git/upload-pack.c:938,1
    - Dst: register_shallow
      Src: /src/git/upload-pack.c:944,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 908
    functionDepth: 5
    functionLinenumber: 908
    functionLinenumberEnd: 951
    functionName: send_shallow_list
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - oidset_size
    - strvec_push
    - oid_to_hex
    - die
    - deepen
    - deepen_by_rev_list
    - register_shallow
    - strvec_clear
    - oidset_iter_next
    - strvec_pushf
    - oidset_iter_init
    linkageType: ''
    returnType: int
    signature: int send_shallow_list(struct upload_pack_data *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:956,1
    - Dst: get_oid_hex
      Src: /src/git/upload-pack.c:959,1
    - Dst: die
      Src: /src/git/upload-pack.c:960,1
    - Dst: parse_object
      Src: /src/git/upload-pack.c:961,1
    - Dst: die
      Src: /src/git/upload-pack.c:965,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:965,1
    - Dst: add_object_array
      Src: /src/git/upload-pack.c:968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - line
    - shallows
    argTypes:
    - char*
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 953
    functionDepth: 4
    functionLinenumber: 953
    functionLinenumberEnd: 974
    functionName: process_shallow
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - get_oid_hex
    - add_object_array
    - parse_object
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int process_shallow(const char *line, struct object_array *shallows)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:979,1
    - Dst: strtol
      Src: /src/git/upload-pack.c:981,1
    - Dst: die
      Src: /src/git/upload-pack.c:983,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - line
    - depth
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 988
    functionName: process_deepen
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - strtol
    - skip_prefix
    - die
    linkageType: ''
    returnType: int
    signature: int process_deepen(const char *line, int *depth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:993,1
    - Dst: parse_timestamp
      Src: /src/git/upload-pack.c:995,1
    - Dst: die
      Src: /src/git/upload-pack.c:999,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - line
    - deepen_since
    - deepen_rev_list
    argTypes:
    - char*
    - timestamp_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1004
    functionName: process_deepen_since
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - die
    - parse_timestamp
    linkageType: ''
    returnType: int
    signature: int process_deepen_since(const char *line, timestamp_t *deepen_since,
      int *deepen_rev_list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:1009,1
    - Dst: expand_ref
      Src: /src/git/upload-pack.c:1013,1
    - Dst: strlen
      Src: /src/git/upload-pack.c:1013,1
    - Dst: die
      Src: /src/git/upload-pack.c:1015,1
    - Dst: die
      Src: /src/git/upload-pack.c:1017,1
    - Dst: oidset_insert
      Src: /src/git/upload-pack.c:1018,1
    - Dst: free
      Src: /src/git/upload-pack.c:1019,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - line
    - deepen_not
    - deepen_rev_list
    argTypes:
    - char*
    - struct oidset*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1006
    functionDepth: 2
    functionLinenumber: 1006
    functionLinenumberEnd: 1024
    functionName: process_deepen_not
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - expand_ref
    - die
    - strlen
    - oidset_insert
    - free
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int process_deepen_not(const char *line, struct oidset *deepen_not,
      int *deepen_rev_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/upload-pack.c:1026,1
    - Dst: va_start
      Src: /src/git/upload-pack.c:1033,1
    - Dst: strbuf_vaddf
      Src: /src/git/upload-pack.c:1034,1
    - Dst: va_end
      Src: /src/git/upload-pack.c:1035,1
    - Dst: packet_writer_error
      Src: /src/git/upload-pack.c:1037,1
    - Dst: die
      Src: /src/git/upload-pack.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - struct upload_pack_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1039
    functionName: send_err_and_die
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - strbuf_vaddf
    - die
    - packet_writer_error
    - va_end
    - va_start
    - format
    linkageType: ''
    returnType: NORETURN
    signature: "NORETURN send_err_and_die(struct upload_pack_data *data,\n\t\t\t     const
      char *fmt, ...)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_object_filter_config_name
      Src: /src/git/upload-pack.c:1044,1
    - Dst: string_list_lookup
      Src: /src/git/upload-pack.c:1045,1
    - Dst: send_err_and_die
      Src: /src/git/upload-pack.c:1055,1
    - Dst: send_err_and_die
      Src: /src/git/upload-pack.c:1059,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - data
    - opts
    argTypes:
    - struct upload_pack_data*
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1041
    functionDepth: 2
    functionLinenumber: 1041
    functionLinenumberEnd: 1063
    functionName: check_one_filter
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - send_err_and_die
    - string_list_lookup
    - list_object_filter_config_name
    linkageType: ''
    returnType: void
    signature: "void check_one_filter(struct upload_pack_data *data,\n\t\t\t     struct
      list_objects_filter_options *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_one_filter
      Src: /src/git/upload-pack.c:1070,1
    - Dst: check_filter_recurse
      Src: /src/git/upload-pack.c:1075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - opts
    argTypes:
    - struct upload_pack_data*
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1065
    functionDepth: 3
    functionLinenumber: 1065
    functionLinenumberEnd: 1076
    functionName: check_filter_recurse
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 1
    functionsReached:
    - check_one_filter
    - check_filter_recurse
    linkageType: ''
    returnType: void
    signature: "void check_filter_recurse(struct upload_pack_data *data,\n\t\t\t\t
      struct list_objects_filter_options *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_filter_recurse
      Src: /src/git/upload-pack.c:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1078
    functionDepth: 4
    functionLinenumber: 1078
    functionLinenumberEnd: 1081
    functionName: die_if_using_banned_filter
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - check_filter_recurse
    linkageType: ''
    returnType: void
    signature: void die_if_using_banned_filter(struct upload_pack_data *data)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: reset_timeout
      Src: /src/git/upload-pack.c:1096,1
    - Dst: packet_reader_read
      Src: /src/git/upload-pack.c:1097,1
    - Dst: process_shallow
      Src: /src/git/upload-pack.c:1100,1
    - Dst: process_deepen
      Src: /src/git/upload-pack.c:1102,1
    - Dst: process_deepen_since
      Src: /src/git/upload-pack.c:1104,1
    - Dst: process_deepen_not
      Src: /src/git/upload-pack.c:1106,1
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:1109,1
    - Dst: die
      Src: /src/git/upload-pack.c:1111,1
    - Dst: list_objects_filter_die_if_populated
      Src: /src/git/upload-pack.c:1112,1
    - Dst: parse_list_objects_filter
      Src: /src/git/upload-pack.c:1113,1
    - Dst: die_if_using_banned_filter
      Src: /src/git/upload-pack.c:1114,1
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:1118,1
    - Dst: parse_oid_hex
      Src: /src/git/upload-pack.c:1119,1
    - Dst: die
      Src: /src/git/upload-pack.c:1120,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1123,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1125,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1127,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1129,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1131,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1133,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1135,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1137,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1139,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1141,1
    - Dst: parse_feature_request
      Src: /src/git/upload-pack.c:1144,1
    - Dst: parse_feature_value
      Src: /src/git/upload-pack.c:1147,1
    - Dst: xstrndup
      Src: /src/git/upload-pack.c:1149,1
    - Dst: trace2_data_string
      Src: /src/git/upload-pack.c:1150,1
    - Dst: free
      Src: /src/git/upload-pack.c:1151,1
    - Dst: parse_object_with_flags
      Src: /src/git/upload-pack.c:1154,1
    - Dst: packet_writer_error
      Src: /src/git/upload-pack.c:1158,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:1160,1
    - Dst: die
      Src: /src/git/upload-pack.c:1161,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:1162,1
    - Dst: is_our_ref
      Src: /src/git/upload-pack.c:1167,1
    - Dst: add_object_array
      Src: /src/git/upload-pack.c:1169,1
    - Dst: check_non_tip
      Src: /src/git/upload-pack.c:1181,1
    - Dst: send_shallow_list
      Src: /src/git/upload-pack.c:1189,1
    - Dst: packet_flush
      Src: /src/git/upload-pack.c:1190,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 71
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - struct upload_pack_data*
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1083
    functionDepth: 10
    functionLinenumber: 1083
    functionLinenumberEnd: 1191
    functionName: receive_needs
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - die_if_using_banned_filter
    - packet_flush
    - process_deepen_since
    - process_shallow
    - free
    - process_deepen
    - reset_timeout
    - die
    - parse_list_objects_filter
    - check_non_tip
    - list_objects_filter_die_if_populated
    - oid_to_hex
    - process_deepen_not
    - send_shallow_list
    - packet_writer_error
    - parse_feature_value
    - is_our_ref
    - parse_object_with_flags
    - skip_prefix
    - add_object_array
    - xstrndup
    - parse_feature_request
    - parse_oid_hex
    - packet_reader_read
    - trace2_data_string
    linkageType: ''
    returnType: void
    signature: "void receive_needs(struct upload_pack_data *data,\n\t\t\t  struct
      packet_reader *reader)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_unknown_object
      Src: /src/git/upload-pack.c:1197,1
    - Dst: ref_is_hidden
      Src: /src/git/upload-pack.c:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - refname
    - refname_full
    - oid
    - hidden_refs
    argTypes:
    - char*
    - char*
    - struct object_id*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1194
    functionDepth: 4
    functionLinenumber: 1194
    functionLinenumberEnd: 1205
    functionName: mark_our_ref
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - lookup_unknown_object
    - ref_is_hidden
    linkageType: ''
    returnType: int
    signature: "int mark_our_ref(const char *refname, const char *refname_full,\n\t\t\tconst
      struct object_id *oid, const struct strvec *hidden_refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strip_namespace
      Src: /src/git/upload-pack.c:1209,1
    - Dst: mark_our_ref
      Src: /src/git/upload-pack.c:1212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1207
    functionDepth: 5
    functionLinenumber: 1207
    functionLinenumberEnd: 1214
    functionName: check_ref
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - mark_our_ref
    - strip_namespace
    linkageType: ''
    returnType: int
    signature: int check_ref(const struct reference *ref, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/upload-pack.c:1222,1
    - Dst: strbuf_addf
      Src: /src/git/upload-pack.c:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - symref
    argTypes:
    - struct strbuf*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1224
    functionName: format_symref_info
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void format_symref_info(struct strbuf *buf, struct string_list *symref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/upload-pack.c:1228,1
    - Dst: trace2_session_id
      Src: /src/git/upload-pack.c:1228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - d
    argTypes:
    - struct strbuf*
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1229
    functionName: format_session_id
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - trace2_session_id
    linkageType: ''
    returnType: void
    signature: void format_session_id(struct strbuf *buf, struct upload_pack_data
      *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mark_our_ref
      Src: /src/git/upload-pack.c:1240,1
    - Dst: format_symref_info
      Src: /src/git/upload-pack.c:1247,1
    - Dst: format_session_id
      Src: /src/git/upload-pack.c:1248,1
    - Dst: packet_fwrite_fmt
      Src: /src/git/upload-pack.c:1249,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:1250,1
    - Dst: git_user_agent_sanitized
      Src: /src/git/upload-pack.c:1261,1
    - Dst: strbuf_release
      Src: /src/git/upload-pack.c:1262,1
    - Dst: strbuf_release
      Src: /src/git/upload-pack.c:1263,1
    - Dst: packet_fwrite_fmt
      Src: /src/git/upload-pack.c:1266,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:1266,1
    - Dst: reference_get_peeled_oid
      Src: /src/git/upload-pack.c:1269,1
    - Dst: packet_fwrite_fmt
      Src: /src/git/upload-pack.c:1270,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:1270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - data
    - ref
    - refname_nons
    argTypes:
    - struct upload_pack_data*
    - struct reference*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1231
    functionDepth: 5
    functionLinenumber: 1231
    functionLinenumberEnd: 1272
    functionName: write_v0_ref
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - format_session_id
    - oid_to_hex
    - reference_get_peeled_oid
    - format_symref_info
    - mark_our_ref
    - packet_fwrite_fmt
    - git_user_agent_sanitized
    linkageType: ''
    returnType: void
    signature: "void write_v0_ref(struct upload_pack_data *data,\n\t\t\t const struct
      reference *ref,\n\t\t\t const char *refname_nons)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_v0_ref
      Src: /src/git/upload-pack.c:1276,1
    - Dst: strip_namespace
      Src: /src/git/upload-pack.c:1276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1274
    functionDepth: 6
    functionLinenumber: 1274
    functionLinenumberEnd: 1278
    functionName: send_ref
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - strip_namespace
    - write_v0_ref
    linkageType: ''
    returnType: int
    signature: int send_ref(const struct reference *ref, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/upload-pack.c:1288,1
    - Dst: get_main_ref_store
      Src: /src/git/upload-pack.c:1288,1
    - Dst: die
      Src: /src/git/upload-pack.c:1291,1
    - Dst: string_list_append
      Src: /src/git/upload-pack.c:1292,1
    - Dst: strip_namespace
      Src: /src/git/upload-pack.c:1292,1
    - Dst: xstrdup
      Src: /src/git/upload-pack.c:1293,1
    - Dst: strip_namespace
      Src: /src/git/upload-pack.c:1293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1280
    functionDepth: 5
    functionLinenumber: 1280
    functionLinenumberEnd: 1295
    functionName: find_symref
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - strip_namespace
    - die
    - refs_resolve_ref_unsafe
    - string_list_append
    - xstrdup
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int find_symref(const struct reference *ref, void *cb_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/upload-pack.c:1305,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1309,1
    - Dst: git_config_bool
      Src: /src/git/upload-pack.c:1310,1
    - Dst: strbuf_add
      Src: /src/git/upload-pack.c:1314,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1316,1
    - Dst: string_list_insert
      Src: /src/git/upload-pack.c:1317,1
    - Dst: git_config_bool
      Src: /src/git/upload-pack.c:1318,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1319,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1319,1
    - Dst: strbuf_release
      Src: /src/git/upload-pack.c:1321,1
    - Dst: config_error_nonbool
      Src: /src/git/upload-pack.c:1322,1
    - Dst: string_list_insert
      Src: /src/git/upload-pack.c:1324,1
    - Dst: git_config_ulong
      Src: /src/git/upload-pack.c:1326,1
    - Dst: strbuf_release
      Src: /src/git/upload-pack.c:1330,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - var
    - value
    - kvi
    - data
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1332
    functionName: parse_object_filter_config
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - git_config_ulong
    - string_list_insert
    - parse_config_key
    - strcmp
    - config_error_nonbool
    - git_config_bool
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int parse_object_filter_config(const char *var, const char *value,\n\t\t\t\t
      \     const struct key_value_info *kvi,\n\t\t\t\t      struct upload_pack_data
      *data)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1340,1
    - Dst: git_config_bool
      Src: /src/git/upload-pack.c:1341,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1345,1
    - Dst: git_config_bool
      Src: /src/git/upload-pack.c:1346,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1350,1
    - Dst: git_config_bool
      Src: /src/git/upload-pack.c:1351,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1355,1
    - Dst: git_config_int
      Src: /src/git/upload-pack.c:1356,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1359,1
    - Dst: git_config_bool
      Src: /src/git/upload-pack.c:1360,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1361,1
    - Dst: git_config_bool
      Src: /src/git/upload-pack.c:1362,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1363,1
    - Dst: git_config_bool
      Src: /src/git/upload-pack.c:1364,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1365,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1368,1
    - Dst: git_config_bool
      Src: /src/git/upload-pack.c:1369,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1370,1
    - Dst: git_config_bool
      Src: /src/git/upload-pack.c:1371,1
    - Dst: parse_object_filter_config
      Src: /src/git/upload-pack.c:1374,1
    - Dst: parse_hide_refs_config
      Src: /src/git/upload-pack.c:1377,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb_data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1334
    functionDepth: 2
    functionLinenumber: 1334
    functionLinenumberEnd: 1378
    functionName: upload_pack_config
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - parse_hide_refs_config
    - parse_object_filter_config
    - strcmp
    - git_config_bool
    linkageType: ''
    returnType: int
    signature: "int upload_pack_config(const char *var, const char *value,\n\t\t\t
      \     const struct config_context *ctx,\n\t\t\t      void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1386,1
    - Dst: git_config_string
      Src: /src/git/upload-pack.c:1387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - cb_data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1389
    functionName: upload_pack_protected_config
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - git_config_string
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int upload_pack_protected_config(const char *var, const char *value,\n\t\t\t\t\tconst
      struct config_context *ctx UNUSED,\n\t\t\t\t\tvoid *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/upload-pack.c:1394,1
    - Dst: git_protected_config
      Src: /src/git/upload-pack.c:1395,1
    - Dst: git_env_bool
      Src: /src/git/upload-pack.c:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - data
    argTypes:
    - struct repository*
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1398
    functionName: get_upload_pack_config
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - repo_config
    - git_protected_config
    - git_env_bool
    linkageType: ''
    returnType: void
    signature: "void get_upload_pack_config(struct repository *r,\n\t\t\t\t   struct
      upload_pack_data *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: upload_pack_data_init
      Src: /src/git/upload-pack.c:1406,1
    - Dst: get_upload_pack_config
      Src: /src/git/upload-pack.c:1407,1
    - Dst: refs_head_ref_namespaced
      Src: /src/git/upload-pack.c:1414,1
    - Dst: get_main_ref_store
      Src: /src/git/upload-pack.c:1414,1
    - Dst: reset_timeout
      Src: /src/git/upload-pack.c:1418,1
    - Dst: refs_head_ref_namespaced
      Src: /src/git/upload-pack.c:1421,1
    - Dst: get_main_ref_store
      Src: /src/git/upload-pack.c:1421,1
    - Dst: for_each_namespaced_ref_1
      Src: /src/git/upload-pack.c:1423,1
    - Dst: null_oid
      Src: /src/git/upload-pack.c:1427,1
    - Dst: write_v0_ref
      Src: /src/git/upload-pack.c:1430,1
    - Dst: fflush_or_die
      Src: /src/git/upload-pack.c:1436,1
    - Dst: advertise_shallow_grafts
      Src: /src/git/upload-pack.c:1437,1
    - Dst: packet_flush
      Src: /src/git/upload-pack.c:1438,1
    - Dst: refs_head_ref_namespaced
      Src: /src/git/upload-pack.c:1440,1
    - Dst: get_main_ref_store
      Src: /src/git/upload-pack.c:1440,1
    - Dst: for_each_namespaced_ref_1
      Src: /src/git/upload-pack.c:1442,1
    - Dst: packet_reader_init
      Src: /src/git/upload-pack.c:1446,1
    - Dst: receive_needs
      Src: /src/git/upload-pack.c:1450,1
    - Dst: packet_reader_peek
      Src: /src/git/upload-pack.c:1461,1
    - Dst: get_common_commits
      Src: /src/git/upload-pack.c:1463,1
    - Dst: create_pack_file
      Src: /src/git/upload-pack.c:1464,1
    - Dst: upload_pack_data_clear
      Src: /src/git/upload-pack.c:1468,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - advertise_refs
    - stateless_rpc
    - timeout
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1400
    functionDepth: 11
    functionLinenumber: 1400
    functionLinenumberEnd: 1469
    functionName: upload_pack
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - fflush_or_die
    - get_upload_pack_config
    - refs_head_ref_namespaced
    - receive_needs
    - packet_flush
    - get_common_commits
    - packet_reader_init
    - advertise_shallow_grafts
    - create_pack_file
    - write_v0_ref
    - upload_pack_data_clear
    - packet_reader_peek
    - upload_pack_data_init
    - for_each_namespaced_ref_1
    - null_oid
    - reset_timeout
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void upload_pack(const int advertise_refs, const int stateless_rpc,\n\t\t
      const int timeout)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:1475,1
    - Dst: get_oid_hex
      Src: /src/git/upload-pack.c:1479,1
    - Dst: die
      Src: /src/git/upload-pack.c:1480,1
    - Dst: parse_object_with_flags
      Src: /src/git/upload-pack.c:1483,1
    - Dst: packet_writer_error
      Src: /src/git/upload-pack.c:1488,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:1490,1
    - Dst: die
      Src: /src/git/upload-pack.c:1491,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:1492,1
    - Dst: add_object_array
      Src: /src/git/upload-pack.c:1497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - writer
    - line
    - want_obj
    argTypes:
    - struct packet_writer*
    - char*
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1504
    functionName: parse_want
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - get_oid_hex
    - packet_writer_error
    - add_object_array
    - parse_object_with_flags
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int parse_want(struct packet_writer *writer, const char *line,\n\t\t
      \     struct object_array *want_obj)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:1512,1
    - Dst: strbuf_addf
      Src: /src/git/upload-pack.c:1517,1
    - Dst: get_git_namespace
      Src: /src/git/upload-pack.c:1517,1
    - Dst: ref_is_hidden
      Src: /src/git/upload-pack.c:1518,1
    - Dst: refs_read_ref
      Src: /src/git/upload-pack.c:1519,1
    - Dst: get_main_ref_store
      Src: /src/git/upload-pack.c:1519,1
    - Dst: packet_writer_error
      Src: /src/git/upload-pack.c:1520,1
    - Dst: die
      Src: /src/git/upload-pack.c:1521,1
    - Dst: strbuf_release
      Src: /src/git/upload-pack.c:1523,1
    - Dst: strmap_put
      Src: /src/git/upload-pack.c:1525,1
    - Dst: oiddup
      Src: /src/git/upload-pack.c:1525,1
    - Dst: packet_writer_error
      Src: /src/git/upload-pack.c:1526,1
    - Dst: die
      Src: /src/git/upload-pack.c:1528,1
    - Dst: starts_with
      Src: /src/git/upload-pack.c:1531,1
    - Dst: lookup_commit_in_graph
      Src: /src/git/upload-pack.c:1532,1
    - Dst: parse_object_or_die
      Src: /src/git/upload-pack.c:1538,1
    - Dst: add_object_array
      Src: /src/git/upload-pack.c:1542,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - writer
    - line
    - wanted_refs
    - hidden_refs
    - want_obj
    argTypes:
    - struct packet_writer*
    - char*
    - struct strmap*
    - struct strvec*
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1506
    functionDepth: 3
    functionLinenumber: 1506
    functionLinenumberEnd: 1549
    functionName: parse_want_ref
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - oiddup
    - strbuf_release
    - die
    - packet_writer_error
    - refs_read_ref
    - strbuf_addf
    - starts_with
    - add_object_array
    - get_main_ref_store
    - strmap_put
    - lookup_commit_in_graph
    - parse_object_or_die
    - skip_prefix
    - get_git_namespace
    - ref_is_hidden
    linkageType: ''
    returnType: int
    signature: "int parse_want_ref(struct packet_writer *writer, const char *line,\n\t\t\t
      \ struct strmap *wanted_refs,\n\t\t\t  struct strvec *hidden_refs,\n\t\t\t  struct
      object_array *want_obj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:1554,1
    - Dst: got_oid
      Src: /src/git/upload-pack.c:1557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - line
    - data
    argTypes:
    - char*
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1551
    functionDepth: 5
    functionLinenumber: 1551
    functionLinenumberEnd: 1563
    functionName: parse_have
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - got_oid
    linkageType: ''
    returnType: int
    signature: int parse_have(const char *line, struct upload_pack_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/upload-pack.c:1569,1
    - Dst: jw_object_intmax
      Src: /src/git/upload-pack.c:1570,1
    - Dst: jw_object_intmax
      Src: /src/git/upload-pack.c:1571,1
    - Dst: jw_object_intmax
      Src: /src/git/upload-pack.c:1572,1
    - Dst: strmap_get_size
      Src: /src/git/upload-pack.c:1572,1
    - Dst: jw_object_intmax
      Src: /src/git/upload-pack.c:1573,1
    - Dst: jw_object_intmax
      Src: /src/git/upload-pack.c:1574,1
    - Dst: jw_object_bool
      Src: /src/git/upload-pack.c:1575,1
    - Dst: jw_object_intmax
      Src: /src/git/upload-pack.c:1576,1
    - Dst: oidset_size
      Src: /src/git/upload-pack.c:1576,1
    - Dst: jw_object_bool
      Src: /src/git/upload-pack.c:1577,1
    - Dst: jw_object_string
      Src: /src/git/upload-pack.c:1579,1
    - Dst: list_object_filter_config_name
      Src: /src/git/upload-pack.c:1579,1
    - Dst: jw_object_null
      Src: /src/git/upload-pack.c:1581,1
    - Dst: jw_end
      Src: /src/git/upload-pack.c:1582,1
    - Dst: trace2_data_json
      Src: /src/git/upload-pack.c:1584,1
    - Dst: jw_release
      Src: /src/git/upload-pack.c:1586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1587
    functionName: trace2_fetch_info
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - oidset_size
    - strmap_get_size
    - jw_object_null
    - jw_object_begin
    - jw_object_string
    - jw_end
    - trace2_data_json
    - list_object_filter_config_name
    - jw_object_intmax
    - jw_release
    - jw_object_bool
    linkageType: ''
    returnType: void
    signature: void trace2_fetch_info(struct upload_pack_data *data)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/upload-pack.c:1592,1
    - Dst: parse_want
      Src: /src/git/upload-pack.c:1597,1
    - Dst: parse_want_ref
      Src: /src/git/upload-pack.c:1600,1
    - Dst: parse_have
      Src: /src/git/upload-pack.c:1604,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1608,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1612,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1616,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1620,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1624,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1628,1
    - Dst: process_shallow
      Src: /src/git/upload-pack.c:1634,1
    - Dst: process_deepen
      Src: /src/git/upload-pack.c:1636,1
    - Dst: process_deepen_since
      Src: /src/git/upload-pack.c:1638,1
    - Dst: process_deepen_not
      Src: /src/git/upload-pack.c:1641,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1644,1
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:1649,1
    - Dst: list_objects_filter_die_if_populated
      Src: /src/git/upload-pack.c:1650,1
    - Dst: parse_list_objects_filter
      Src: /src/git/upload-pack.c:1651,1
    - Dst: die_if_using_banned_filter
      Src: /src/git/upload-pack.c:1652,1
    - Dst: strcmp
      Src: /src/git/upload-pack.c:1657,1
    - Dst: skip_prefix
      Src: /src/git/upload-pack.c:1663,1
    - Dst: send_err_and_die
      Src: /src/git/upload-pack.c:1665,1
    - Dst: string_list_split
      Src: /src/git/upload-pack.c:1667,1
    - Dst: die
      Src: /src/git/upload-pack.c:1672,1
    - Dst: string_list_clear
      Src: /src/git/upload-pack.c:1676,1
    - Dst: die
      Src: /src/git/upload-pack.c:1679,1
    - Dst: _
      Src: /src/git/upload-pack.c:1679,1
    - Dst: trace2_is_enabled
      Src: /src/git/upload-pack.c:1681,1
    - Dst: trace2_fetch_info
      Src: /src/git/upload-pack.c:1682,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 68
    argCount: 2
    argNames:
    - request
    - data
    argTypes:
    - struct packet_reader*
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1589
    functionDepth: 6
    functionLinenumber: 1589
    functionLinenumberEnd: 1683
    functionName: process_args
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - die_if_using_banned_filter
    - process_deepen_since
    - process_shallow
    - strcmp
    - process_deepen
    - die
    - parse_list_objects_filter
    - list_objects_filter_die_if_populated
    - string_list_clear
    - trace2_fetch_info
    - process_deepen_not
    - trace2_is_enabled
    - parse_want
    - parse_want_ref
    - string_list_split
    - parse_have
    - _
    - skip_prefix
    - send_err_and_die
    - packet_reader_read
    linkageType: ''
    returnType: void
    signature: "void process_args(struct packet_reader *request,\n\t\t\t struct upload_pack_data
      *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packet_writer_write
      Src: /src/git/upload-pack.c:1689,1
    - Dst: packet_writer_write
      Src: /src/git/upload-pack.c:1693,1
    - Dst: packet_writer_write
      Src: /src/git/upload-pack.c:1696,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:1697,1
    - Dst: ok_to_give_up
      Src: /src/git/upload-pack.c:1700,1
    - Dst: packet_writer_write
      Src: /src/git/upload-pack.c:1702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - acks
    argTypes:
    - struct upload_pack_data*
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1685
    functionDepth: 2
    functionLinenumber: 1685
    functionLinenumberEnd: 1707
    functionName: send_acks
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - packet_writer_write
    - oid_to_hex
    - ok_to_give_up
    linkageType: ''
    returnType: int
    signature: int send_acks(struct upload_pack_data *data, struct object_array *acks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_acks
      Src: /src/git/upload-pack.c:1715,1
    - Dst: packet_writer_delim
      Src: /src/git/upload-pack.c:1716,1
    - Dst: packet_writer_flush
      Src: /src/git/upload-pack.c:1720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1709
    functionDepth: 3
    functionLinenumber: 1709
    functionLinenumberEnd: 1725
    functionName: process_haves_and_send_acks
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - send_acks
    - packet_writer_delim
    - packet_writer_flush
    linkageType: ''
    returnType: int
    signature: int process_haves_and_send_acks(struct upload_pack_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_empty
      Src: /src/git/upload-pack.c:1732,1
    - Dst: packet_writer_write
      Src: /src/git/upload-pack.c:1735,1
    - Dst: strmap_for_each_entry
      Src: /src/git/upload-pack.c:1737,1
    - Dst: packet_writer_write
      Src: /src/git/upload-pack.c:1738,1
    - Dst: oid_to_hex
      Src: /src/git/upload-pack.c:1739,1
    - Dst: packet_writer_delim
      Src: /src/git/upload-pack.c:1743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1744
    functionName: send_wanted_ref_info
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - strmap_for_each_entry
    - packet_writer_write
    - strmap_empty
    - packet_writer_delim
    linkageType: ''
    returnType: void
    signature: void send_wanted_ref_info(struct upload_pack_data *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_repository_shallow
      Src: /src/git/upload-pack.c:1750,1
    - Dst: packet_writer_write
      Src: /src/git/upload-pack.c:1753,1
    - Dst: send_shallow_list
      Src: /src/git/upload-pack.c:1755,1
    - Dst: is_repository_shallow
      Src: /src/git/upload-pack.c:1756,1
    - Dst: deepen
      Src: /src/git/upload-pack.c:1757,1
    - Dst: packet_delim
      Src: /src/git/upload-pack.c:1759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct upload_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1746
    functionDepth: 6
    functionLinenumber: 1746
    functionLinenumberEnd: 1760
    functionName: send_shallow_info
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - deepen
    - send_shallow_list
    - packet_delim
    - packet_writer_write
    - is_repository_shallow
    linkageType: ''
    returnType: void
    signature: void send_shallow_info(struct upload_pack_data *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: clear_object_flags
      Src: /src/git/upload-pack.c:1774,1
    - Dst: upload_pack_data_init
      Src: /src/git/upload-pack.c:1776,1
    - Dst: get_upload_pack_config
      Src: /src/git/upload-pack.c:1778,1
    - Dst: process_args
      Src: /src/git/upload-pack.c:1783,1
    - Dst: process_haves_and_send_acks
      Src: /src/git/upload-pack.c:1808,1
    - Dst: send_wanted_ref_info
      Src: /src/git/upload-pack.c:1814,1
    - Dst: send_shallow_info
      Src: /src/git/upload-pack.c:1815,1
    - Dst: create_pack_file
      Src: /src/git/upload-pack.c:1818,1
    - Dst: packet_writer_write
      Src: /src/git/upload-pack.c:1820,1
    - Dst: create_pack_file
      Src: /src/git/upload-pack.c:1821,1
    - Dst: upload_pack_data_clear
      Src: /src/git/upload-pack.c:1830,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - r
    - request
    argTypes:
    - struct repository*
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1769
    functionDepth: 8
    functionLinenumber: 1769
    functionLinenumberEnd: 1832
    functionName: upload_pack_v2
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - get_upload_pack_config
    - process_haves_and_send_acks
    - packet_writer_write
    - create_pack_file
    - send_wanted_ref_info
    - upload_pack_data_clear
    - send_shallow_info
    - process_args
    - upload_pack_data_init
    - clear_object_flags
    linkageType: ''
    returnType: int
    signature: int upload_pack_v2(struct repository *r, struct packet_reader *request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: upload_pack_data_init
      Src: /src/git/upload-pack.c:1839,1
    - Dst: get_upload_pack_config
      Src: /src/git/upload-pack.c:1840,1
    - Dst: strbuf_addstr
      Src: /src/git/upload-pack.c:1843,1
    - Dst: strbuf_addstr
      Src: /src/git/upload-pack.c:1846,1
    - Dst: strbuf_addstr
      Src: /src/git/upload-pack.c:1849,1
    - Dst: strbuf_addstr
      Src: /src/git/upload-pack.c:1852,1
    - Dst: strbuf_addstr
      Src: /src/git/upload-pack.c:1855,1
    - Dst: upload_pack_data_clear
      Src: /src/git/upload-pack.c:1858,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1834
    functionDepth: 4
    functionLinenumber: 1834
    functionLinenumberEnd: 1861
    functionName: upload_pack_advertise
    functionSourceFile: /src/git/upload-pack.c
    functionUses: 0
    functionsReached:
    - upload_pack_data_init
    - upload_pack_data_clear
    - strbuf_addstr
    - get_upload_pack_config
    linkageType: ''
    returnType: int
    signature: "int upload_pack_advertise(struct repository *r,\n\t\t\t  struct strbuf
      *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/prompt.c:17,1
    - Dst: strvec_push
      Src: /src/git/prompt.c:18,1
    - Dst: start_command
      Src: /src/git/prompt.c:22,1
    - Dst: strbuf_reset
      Src: /src/git/prompt.c:25,1
    - Dst: strbuf_read
      Src: /src/git/prompt.c:26,1
    - Dst: close
      Src: /src/git/prompt.c:29,1
    - Dst: finish_command
      Src: /src/git/prompt.c:31,1
    - Dst: error
      Src: /src/git/prompt.c:35,1
    - Dst: strbuf_release
      Src: /src/git/prompt.c:36,1
    - Dst: strbuf_setlen
      Src: /src/git/prompt.c:40,1
    - Dst: strcspn
      Src: /src/git/prompt.c:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - cmd
    - prompt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 43
    functionName: do_askpass
    functionSourceFile: /src/git/prompt.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - strbuf_release
    - strbuf_read
    - finish_command
    - strbuf_reset
    - strbuf_setlen
    - strcspn
    - close
    - start_command
    linkageType: ''
    returnType: char
    signature: char *do_askpass(const char *cmd, const char *prompt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/prompt.c:52,1
    - Dst: getenv
      Src: /src/git/prompt.c:56,1
    - Dst: do_askpass
      Src: /src/git/prompt.c:58,1
    - Dst: git_env_bool
      Src: /src/git/prompt.c:64,1
    - Dst: git_terminal_prompt
      Src: /src/git/prompt.c:65,1
    - Dst: strerror
      Src: /src/git/prompt.c:66,1
    - Dst: die
      Src: /src/git/prompt.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - prompt
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 45
    functionDepth: 8
    functionLinenumber: 45
    functionLinenumberEnd: 76
    functionName: git_prompt
    functionSourceFile: /src/git/prompt.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    - die
    - git_terminal_prompt
    - strerror
    - do_askpass
    - getenv
    linkageType: ''
    returnType: char
    signature: char *git_prompt(const char *prompt, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/git/prompt.c:80,1
    - Dst: strbuf_getline
      Src: /src/git/prompt.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - line
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: git_read_line_interactively
    functionSourceFile: /src/git/prompt.c
    functionUses: 0
    functionsReached:
    - strbuf_getline
    - fflush
    linkageType: ''
    returnType: int
    signature: int git_read_line_interactively(struct strbuf *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - whence
    argTypes:
    - enum commit_whence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: is_from_cherry_pick
    functionSourceFile: /src/git/wt-status.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_from_cherry_pick(enum commit_whence whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - whence
    argTypes:
    - enum commit_whence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: is_from_rebase
    functionSourceFile: /src/git/wt-status.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_from_rebase(enum commit_whence whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: say
    functionSourceFile: /src/git/base85.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: say(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: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: say1
    functionSourceFile: /src/git/base85.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: say1(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: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: say2
    functionSourceFile: /src/git/base85.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: say2(a,b,c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/base85.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: prep_base85
    functionSourceFile: /src/git/base85.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void prep_base85(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prep_base85
      Src: /src/git/base85.c:42,1
    - Dst: say2
      Src: /src/git/base85.c:44,1
    - Dst: error
      Src: /src/git/base85.c:53,1
    - Dst: error
      Src: /src/git/base85.c:59,1
    - Dst: error
      Src: /src/git/base85.c:63,1
    - Dst: say1
      Src: /src/git/base85.c:65,1
    - Dst: say
      Src: /src/git/base85.c:74,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - dst
    - buffer
    - len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 77
    functionName: decode_85
    functionSourceFile: /src/git/base85.c
    functionUses: 1
    functionsReached:
    - error
    - say1
    - say2
    - say
    - prep_base85
    linkageType: ''
    returnType: int
    signature: int decode_85(char *dst, const char *buffer, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: say
      Src: /src/git/base85.c:81,1
    - Dst: say1
      Src: /src/git/base85.c:91,1
    - Dst: say
      Src: /src/git/base85.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - data
    - bytes
    argTypes:
    - char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: encode_85
    functionSourceFile: /src/git/base85.c
    functionUses: 0
    functionsReached:
    - say
    - say1
    linkageType: ''
    returnType: void
    signature: void encode_85(char *buf, const unsigned char *data, int bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/base85.c:109,1
    - Dst: strlen
      Src: /src/git/base85.c:110,1
    - Dst: encode_85
      Src: /src/git/base85.c:111,1
    - Dst: printf
      Src: /src/git/base85.c:114,1
    - Dst: strcmp
      Src: /src/git/base85.c:117,1
    - Dst: decode_85
      Src: /src/git/base85.c:121,1
    - Dst: printf
      Src: /src/git/base85.c:122,1
    - Dst: strcmp
      Src: /src/git/base85.c:125,1
    - Dst: encode_85
      Src: /src/git/base85.c:127,1
    - Dst: printf
      Src: /src/git/base85.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 131
    functionName: main
    functionSourceFile: /src/git/base85.c
    functionUses: 0
    functionsReached:
    - decode_85
    - strlen
    - encode_85
    - strcmp
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int ac, char **av)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/pack-refs.c:28,1
    - Dst: N_
      Src: /src/git/pack-refs.c:28,1
    - Dst: OPT_BIT
      Src: /src/git/pack-refs.c:29,1
    - Dst: N_
      Src: /src/git/pack-refs.c:29,1
    - Dst: OPT_BIT
      Src: /src/git/pack-refs.c:30,1
    - Dst: N_
      Src: /src/git/pack-refs.c:30,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/pack-refs.c:31,1
    - Dst: N_
      Src: /src/git/pack-refs.c:31,1
    - Dst: N_
      Src: /src/git/pack-refs.c:32,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/pack-refs.c:33,1
    - Dst: N_
      Src: /src/git/pack-refs.c:33,1
    - Dst: N_
      Src: /src/git/pack-refs.c:34,1
    - Dst: OPT_END
      Src: /src/git/pack-refs.c:35,1
    - Dst: repo_config
      Src: /src/git/pack-refs.c:37,1
    - Dst: parse_options
      Src: /src/git/pack-refs.c:38,1
    - Dst: usage_with_options
      Src: /src/git/pack-refs.c:39,1
    - Dst: for_each_string_list_item
      Src: /src/git/pack-refs.c:41,1
    - Dst: add_ref_exclusion
      Src: /src/git/pack-refs.c:42,1
    - Dst: string_list_append
      Src: /src/git/pack-refs.c:45,1
    - Dst: string_list_append
      Src: /src/git/pack-refs.c:48,1
    - Dst: refs_optimize
      Src: /src/git/pack-refs.c:50,1
    - Dst: get_main_ref_store
      Src: /src/git/pack-refs.c:50,1
    - Dst: clear_ref_exclusions
      Src: /src/git/pack-refs.c:52,1
    - Dst: string_list_clear
      Src: /src/git/pack-refs.c:53,1
    - Dst: string_list_clear
      Src: /src/git/pack-refs.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - argc
    - argv
    - prefix
    - repo
    - usage_opts
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 56
    functionName: pack_refs_core
    functionSourceFile: /src/git/pack-refs.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - parse_options
    - OPT_END
    - string_list_clear
    - refs_optimize
    - OPT_BOOL
    - clear_ref_exclusions
    - OPT_BIT
    - repo_config
    - get_main_ref_store
    - string_list_append
    - N_
    - add_ref_exclusion
    - OPT_STRING_LIST
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int pack_refs_core(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo,\n\t\t   const char * const *usage_opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: CACHE_EXT
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CACHE_EXT(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_alloc
      Src: /src/git/read-cache.c:102,1
    - Dst: cache_entry_size
      Src: /src/git/read-cache.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mem_pool
    - len
    argTypes:
    - struct mem_pool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: mem_pool__ce_alloc
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - mem_pool_alloc
    - cache_entry_size
    linkageType: ''
    returnType: struct cache_entry
    signature: struct cache_entry *mem_pool__ce_alloc(struct mem_pool *mem_pool, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_calloc
      Src: /src/git/read-cache.c:110,1
    - Dst: cache_entry_size
      Src: /src/git/read-cache.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mem_pool
    - len
    argTypes:
    - struct mem_pool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: mem_pool__ce_calloc
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - mem_pool_calloc
    - cache_entry_size
    linkageType: ''
    returnType: struct cache_entry
    signature: struct cache_entry *mem_pool__ce_calloc(struct mem_pool *mem_pool,
      size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/read-cache.c:125,1
    - Dst: mem_pool_init
      Src: /src/git/read-cache.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: find_mem_pool
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - mem_pool_init
    linkageType: ''
    returnType: struct mem_pool
    signature: struct mem_pool *find_mem_pool(struct index_state *istate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISSPARSEDIR
      Src: /src/git/read-cache.c:136,1
    - Dst: add_name_hash
      Src: /src/git/read-cache.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - istate
    - nr
    - ce
    argTypes:
    - struct index_state*
    - int
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: set_index_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - add_name_hash
    - S_ISSPARSEDIR
    linkageType: ''
    returnType: void
    signature: void set_index_entry(struct index_state *istate, int nr, struct cache_entry
      *ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replace_index_entry_in_base
      Src: /src/git/read-cache.c:147,1
    - Dst: remove_name_hash
      Src: /src/git/read-cache.c:148,1
    - Dst: discard_cache_entry
      Src: /src/git/read-cache.c:149,1
    - Dst: set_index_entry
      Src: /src/git/read-cache.c:151,1
    - Dst: mark_fsmonitor_invalid
      Src: /src/git/read-cache.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - istate
    - nr
    - ce
    argTypes:
    - struct index_state*
    - int
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: replace_index_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - remove_name_hash
    - mark_fsmonitor_invalid
    - discard_cache_entry
    - replace_index_entry_in_base
    - set_index_entry
    linkageType: ''
    returnType: void
    signature: void replace_index_entry(struct index_state *istate, int nr, struct
      cache_entry *ce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/read-cache.c:160,1
    - Dst: make_empty_cache_entry
      Src: /src/git/read-cache.c:162,1
    - Dst: copy_cache_entry
      Src: /src/git/read-cache.c:163,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:167,1
    - Dst: cache_tree_invalidate_path
      Src: /src/git/read-cache.c:169,1
    - Dst: untracked_cache_remove_from_index
      Src: /src/git/read-cache.c:170,1
    - Dst: remove_index_entry_at
      Src: /src/git/read-cache.c:171,1
    - Dst: refresh_cache_entry
      Src: /src/git/read-cache.c:180,1
    - Dst: add_index_entry
      Src: /src/git/read-cache.c:182,1
    - Dst: discard_cache_entry
      Src: /src/git/read-cache.c:183,1
    - Dst: add_index_entry
      Src: /src/git/read-cache.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - istate
    - nr
    - new_name
    argTypes:
    - struct index_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 157
    functionDepth: 5
    functionLinenumber: 157
    functionLinenumberEnd: 186
    functionName: rename_index_entry_at
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - copy_cache_entry
    - untracked_cache_remove_from_index
    - make_empty_cache_entry
    - memcpy
    - discard_cache_entry
    - remove_index_entry_at
    - strlen
    - add_index_entry
    - refresh_cache_entry
    - cache_tree_invalidate_path
    linkageType: ''
    returnType: void
    signature: void rename_index_entry_at(struct index_state *istate, int nr, const
      char *new_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fill_stat_data
      Src: /src/git/read-cache.c:195,1
    - Dst: S_ISREG
      Src: /src/git/read-cache.c:200,1
    - Dst: ce_mark_uptodate
      Src: /src/git/read-cache.c:201,1
    - Dst: mark_fsmonitor_valid
      Src: /src/git/read-cache.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - istate
    - ce
    - st
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 204
    functionName: fill_stat_cache_info
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - ce_mark_uptodate
    - fill_stat_data
    - mark_fsmonitor_valid
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void fill_stat_cache_info(struct index_state *istate, struct cache_entry
      *ce, struct stat *st)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/read-cache.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ce
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 222
    functionName: st_mode_from_ce
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int st_mode_from_ce(const struct cache_entry *ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fake_lstat_data
      Src: /src/git/read-cache.c:226,1
    - Dst: st_mode_from_ce
      Src: /src/git/read-cache.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ce
    - st
    argTypes:
    - struct cache_entry*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: fake_lstat
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - fake_lstat_data
    - st_mode_from_ce
    linkageType: ''
    returnType: int
    signature: int fake_lstat(const struct cache_entry *ce, struct stat *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_open_cloexec
      Src: /src/git/read-cache.c:238,1
    - Dst: index_fd
      Src: /src/git/read-cache.c:242,1
    - Dst: oideq
      Src: /src/git/read-cache.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - istate
    - ce
    - st
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: ce_compare_data
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - index_fd
    - oideq
    - git_open_cloexec
    linkageType: ''
    returnType: int
    signature: "int ce_compare_data(struct index_state *istate,\n\t\t\t   const struct
      cache_entry *ce,\n\t\t\t   struct stat *st)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_readlink
      Src: /src/git/read-cache.c:257,1
    - Dst: odb_read_object
      Src: /src/git/read-cache.c:260,1
    - Dst: memcmp
      Src: /src/git/read-cache.c:263,1
    - Dst: free
      Src: /src/git/read-cache.c:264,1
    - Dst: strbuf_release
      Src: /src/git/read-cache.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ce
    - expected_size
    argTypes:
    - struct cache_entry*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 268
    functionName: ce_compare_link
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_readlink
    - free
    - odb_read_object
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ce_compare_link(const struct cache_entry *ce, size_t expected_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/read-cache.c:282,1
    - Dst: oideq
      Src: /src/git/read-cache.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ce
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 286
    functionName: ce_compare_gitlink
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - oideq
    - repo_resolve_gitlink_ref
    linkageType: ''
    returnType: int
    signature: int ce_compare_gitlink(const struct cache_entry *ce)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ce_compare_data
      Src: /src/git/read-cache.c:294,1
    - Dst: ce_compare_link
      Src: /src/git/read-cache.c:298,1
    - Dst: xsize_t
      Src: /src/git/read-cache.c:298,1
    - Dst: S_ISGITLINK
      Src: /src/git/read-cache.c:302,1
    - Dst: ce_compare_gitlink
      Src: /src/git/read-cache.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - istate
    - ce
    - st
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 7
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: ce_modified_check_fs
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - S_ISGITLINK
    - xsize_t
    - ce_compare_link
    - ce_compare_data
    - ce_compare_gitlink
    linkageType: ''
    returnType: int
    signature: "int ce_modified_check_fs(struct index_state *istate,\n\t\t\t\tconst
      struct cache_entry *ce,\n\t\t\t\tstruct stat *st)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/read-cache.c:320,1
    - Dst: S_ISLNK
      Src: /src/git/read-cache.c:329,1
    - Dst: S_ISREG
      Src: /src/git/read-cache.c:330,1
    - Dst: S_ISDIR
      Src: /src/git/read-cache.c:335,1
    - Dst: ce_compare_gitlink
      Src: /src/git/read-cache.c:337,1
    - Dst: BUG
      Src: /src/git/read-cache.c:341,1
    - Dst: match_stat_data
      Src: /src/git/read-cache.c:344,1
    - Dst: is_empty_blob_oid
      Src: /src/git/read-cache.c:348,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - ce
    - st
    argTypes:
    - struct cache_entry*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 311
    functionDepth: 7
    functionLinenumber: 311
    functionLinenumberEnd: 353
    functionName: ce_match_stat_basic
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - S_ISLNK
    - match_stat_data
    - is_empty_blob_oid
    - S_ISREG
    - BUG
    - ce_compare_gitlink
    linkageType: ''
    returnType: int
    signature: int ce_match_stat_basic(const struct cache_entry *ce, struct stat *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: USE_NSEC
      Src: /src/git/read-cache.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - istate
    - sd
    argTypes:
    - struct index_state*
    - struct stat_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 368
    functionName: is_racy_stat
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - USE_NSEC
    linkageType: ''
    returnType: int
    signature: "int is_racy_stat(const struct index_state *istate,\n\t\t\tconst struct
      stat_data *sd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/read-cache.c:373,1
    - Dst: is_racy_stat
      Src: /src/git/read-cache.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 375
    functionName: is_racy_timestamp
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - S_ISGITLINK
    - is_racy_stat
    linkageType: ''
    returnType: int
    signature: "int is_racy_timestamp(const struct index_state *istate,\n\t\t\t     const
      struct cache_entry *ce)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_racy_stat
      Src: /src/git/read-cache.c:380,1
    - Dst: match_stat_data
      Src: /src/git/read-cache.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - istate
    - sd
    - st
    argTypes:
    - struct index_state*
    - struct stat_data*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: match_stat_data_racy
    functionSourceFile: /src/git/read-cache.c
    functionUses: 2
    functionsReached:
    - match_stat_data
    - is_racy_stat
    linkageType: ''
    returnType: int
    signature: "int match_stat_data_racy(const struct index_state *istate,\n\t\t\t
      const struct stat_data *sd, struct stat *st)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: refresh_fsmonitor
      Src: /src/git/read-cache.c:396,1
    - Dst: ce_skip_worktree
      Src: /src/git/read-cache.c:403,1
    - Dst: ce_intent_to_add
      Src: /src/git/read-cache.c:415,1
    - Dst: ce_match_stat_basic
      Src: /src/git/read-cache.c:418,1
    - Dst: is_racy_timestamp
      Src: /src/git/read-cache.c:436,1
    - Dst: ce_modified_check_fs
      Src: /src/git/read-cache.c:440,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - istate
    - ce
    - st
    - options
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - struct stat*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 385
    functionDepth: 8
    functionLinenumber: 385
    functionLinenumberEnd: 444
    functionName: ie_match_stat
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - ce_intent_to_add
    - is_racy_timestamp
    - ce_skip_worktree
    - ce_modified_check_fs
    - ce_match_stat_basic
    - refresh_fsmonitor
    linkageType: ''
    returnType: int
    signature: "int ie_match_stat(struct index_state *istate,\n\t\t  const struct
      cache_entry *ce, struct stat *st,\n\t\t  unsigned int options)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ie_match_stat
      Src: /src/git/read-cache.c:452,1
    - Dst: GIT_WINDOWS_NATIVE
      Src: /src/git/read-cache.c:477,1
    - Dst: S_ISLNK
      Src: /src/git/read-cache.c:486,1
    - Dst: S_ISGITLINK
      Src: /src/git/read-cache.c:488,1
    - Dst: ce_modified_check_fs
      Src: /src/git/read-cache.c:491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 4
    argNames:
    - istate
    - ce
    - st
    - options
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - struct stat*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 446
    functionDepth: 9
    functionLinenumber: 446
    functionLinenumberEnd: 495
    functionName: ie_modified
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - ie_match_stat
    - GIT_WINDOWS_NATIVE
    - S_ISGITLINK
    - ce_modified_check_fs
    linkageType: ''
    returnType: int
    signature: "int ie_modified(struct index_state *istate,\n\t\tconst struct cache_entry
      *ce,\n\t\tstruct stat *st, unsigned int options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name_compare
      Src: /src/git/read-cache.c:502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - name1
    - len1
    - stage1
    - name2
    - len2
    - stage2
    argTypes:
    - char*
    - int
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 511
    functionName: cache_name_stage_compare
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - name_compare
    linkageType: ''
    returnType: int
    signature: "int cache_name_stage_compare(const char *name1, int len1, int stage1,\n\t\t\t\t
      \   const char *name2, int len2, int stage2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cache_name_stage_compare
      Src: /src/git/read-cache.c:519,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:519,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 521
    functionName: cmp_cache_name_compare
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ce_stage
    - cache_name_stage_compare
    linkageType: ''
    returnType: int
    signature: int cmp_cache_name_compare(const void *a_, const void *b_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cache_name_stage_compare
      Src: /src/git/read-cache.c:535,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:535,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:535,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/read-cache.c:557,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:558,1
    - Dst: strncmp
      Src: /src/git/read-cache.c:559,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:559,1
    - Dst: ensure_full_index
      Src: /src/git/read-cache.c:560,1
    - Dst: index_name_stage_pos
      Src: /src/git/read-cache.c:561,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 5
    argNames:
    - istate
    - name
    - namelen
    - stage
    - search_mode
    argTypes:
    - struct index_state*
    - char*
    - int
    - int
    - enum index_search_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 566
    functionName: index_name_stage_pos
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - ensure_full_index
    - index_name_stage_pos
    - ce_namelen
    - cache_name_stage_compare
    - S_ISSPARSEDIR
    - strncmp
    - ce_stage
    linkageType: ''
    returnType: int
    signature: "int index_name_stage_pos(struct index_state *istate,\n\t\t\t\tconst
      char *name, int namelen,\n\t\t\t\tint stage,\n\t\t\t\tenum index_search_mode
      search_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_name_stage_pos
      Src: /src/git/read-cache.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - istate
    - name
    - namelen
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: index_name_pos
    functionSourceFile: /src/git/read-cache.c
    functionUses: 8
    functionsReached:
    - index_name_stage_pos
    linkageType: ''
    returnType: int
    signature: int index_name_pos(struct index_state *istate, const char *name, int
      namelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_name_stage_pos
      Src: /src/git/read-cache.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - istate
    - name
    - namelen
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 576
    functionName: index_name_pos_sparse
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - index_name_stage_pos
    linkageType: ''
    returnType: int
    signature: int index_name_pos_sparse(struct index_state *istate, const char *name,
      int namelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_name_stage_pos
      Src: /src/git/read-cache.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - istate
    - name
    - namelen
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 581
    functionName: index_entry_exists
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - index_name_stage_pos
    linkageType: ''
    returnType: int
    signature: int index_entry_exists(struct index_state *istate, const char *name,
      int namelen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: record_resolve_undo
      Src: /src/git/read-cache.c:587,1
    - Dst: remove_name_hash
      Src: /src/git/read-cache.c:588,1
    - Dst: save_or_free_index_entry
      Src: /src/git/read-cache.c:589,1
    - Dst: MOVE_ARRAY
      Src: /src/git/read-cache.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - istate
    - pos
    argTypes:
    - struct index_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 597
    functionName: remove_index_entry_at
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - record_resolve_undo
    - MOVE_ARRAY
    - save_or_free_index_entry
    - remove_name_hash
    linkageType: ''
    returnType: int
    signature: int remove_index_entry_at(struct index_state *istate, int pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree_invalidate_path
      Src: /src/git/read-cache.c:612,1
    - Dst: untracked_cache_remove_from_index
      Src: /src/git/read-cache.c:614,1
    - Dst: remove_name_hash
      Src: /src/git/read-cache.c:617,1
    - Dst: save_or_free_index_entry
      Src: /src/git/read-cache.c:618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - istate
    - invalidate
    argTypes:
    - struct index_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 604
    functionDepth: 5
    functionLinenumber: 604
    functionLinenumberEnd: 627
    functionName: remove_marked_cache_entries
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - remove_name_hash
    - save_or_free_index_entry
    - untracked_cache_remove_from_index
    - cache_tree_invalidate_path
    linkageType: ''
    returnType: void
    signature: void remove_marked_cache_entries(struct index_state *istate, int invalidate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/read-cache.c:631,1
    - Dst: strlen
      Src: /src/git/read-cache.c:631,1
    - Dst: cache_tree_invalidate_path
      Src: /src/git/read-cache.c:634,1
    - Dst: untracked_cache_remove_from_index
      Src: /src/git/read-cache.c:635,1
    - Dst: strcmp
      Src: /src/git/read-cache.c:636,1
    - Dst: remove_index_entry_at
      Src: /src/git/read-cache.c:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 629
    functionDepth: 5
    functionLinenumber: 629
    functionLinenumberEnd: 639
    functionName: remove_file_from_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 2
    functionsReached:
    - index_name_pos
    - untracked_cache_remove_from_index
    - remove_index_entry_at
    - strlen
    - strcmp
    - cache_tree_invalidate_path
    linkageType: ''
    returnType: int
    signature: int remove_file_from_index(struct index_state *istate, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:643,1
    - Dst: memcmp
      Src: /src/git/read-cache.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ce
    - path
    - namelen
    argTypes:
    - struct cache_entry*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: compare_name
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ce_namelen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int compare_name(struct cache_entry *ce, const char *path, int namelen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/read-cache.c:649,1
    - Dst: compare_name
      Src: /src/git/read-cache.c:658,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:662,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:663,1
    - Dst: compare_name
      Src: /src/git/read-cache.c:664,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - istate
    - path
    - namelen
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 646
    functionDepth: 4
    functionLinenumber: 646
    functionLinenumberEnd: 667
    functionName: index_name_pos_also_unmerged
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - ce_stage
    - compare_name
    linkageType: ''
    returnType: int
    signature: "int index_name_pos_also_unmerged(struct index_state *istate,\n\tconst
      char *path, int namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:671,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:672,1
    - Dst: memcmp
      Src: /src/git/read-cache.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ce
    - alias
    argTypes:
    - struct cache_entry*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: different_name
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ce_namelen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int different_name(struct cache_entry *ce, struct cache_entry *alias)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/read-cache.c:692,1
    - Dst: _
      Src: /src/git/read-cache.c:692,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:696,1
    - Dst: make_empty_cache_entry
      Src: /src/git/read-cache.c:697,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:698,1
    - Dst: copy_cache_entry
      Src: /src/git/read-cache.c:699,1
    - Dst: save_or_free_index_entry
      Src: /src/git/read-cache.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - istate
    - ce
    - alias
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 702
    functionName: create_alias_ce
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - die
    - ce_namelen
    - copy_cache_entry
    - make_empty_cache_entry
    - memcpy
    - save_or_free_index_entry
    - _
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *create_alias_ce(struct index_state *istate,\n\t\t\t\t\t
      \  struct cache_entry *ce,\n\t\t\t\t\t   struct cache_entry *alias)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_write_object
      Src: /src/git/read-cache.c:707,1
    - Dst: die
      Src: /src/git/read-cache.c:708,1
    - Dst: _
      Src: /src/git/read-cache.c:708,1
    - Dst: oidcpy
      Src: /src/git/read-cache.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ce
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 710
    functionName: set_object_name_for_intent_to_add_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - oidcpy
    - die
    - odb_write_object
    - _
    linkageType: ''
    returnType: void
    signature: void set_object_name_for_intent_to_add_entry(struct cache_entry *ce)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/read-cache.c:728,1
    - Dst: S_ISLNK
      Src: /src/git/read-cache.c:728,1
    - Dst: S_ISDIR
      Src: /src/git/read-cache.c:728,1
    - Dst: error
      Src: /src/git/read-cache.c:729,1
    - Dst: _
      Src: /src/git/read-cache.c:729,1
    - Dst: strlen
      Src: /src/git/read-cache.c:731,1
    - Dst: S_ISDIR
      Src: /src/git/read-cache.c:732,1
    - Dst: make_empty_cache_entry
      Src: /src/git/read-cache.c:736,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:737,1
    - Dst: fill_stat_cache_info
      Src: /src/git/read-cache.c:740,1
    - Dst: create_ce_mode
      Src: /src/git/read-cache.c:746,1
    - Dst: index_name_pos_also_unmerged
      Src: /src/git/read-cache.c:752,1
    - Dst: ce_mode_from_stat
      Src: /src/git/read-cache.c:755,1
    - Dst: adjust_dirname_case
      Src: /src/git/read-cache.c:764,1
    - Dst: index_file_exists
      Src: /src/git/read-cache.c:767,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:768,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:770,1
    - Dst: ie_match_stat
      Src: /src/git/read-cache.c:771,1
    - Dst: S_ISGITLINK
      Src: /src/git/read-cache.c:773,1
    - Dst: ce_mark_uptodate
      Src: /src/git/read-cache.c:774,1
    - Dst: discard_cache_entry
      Src: /src/git/read-cache.c:777,1
    - Dst: index_path
      Src: /src/git/read-cache.c:782,1
    - Dst: discard_cache_entry
      Src: /src/git/read-cache.c:783,1
    - Dst: error
      Src: /src/git/read-cache.c:784,1
    - Dst: _
      Src: /src/git/read-cache.c:784,1
    - Dst: set_object_name_for_intent_to_add_entry
      Src: /src/git/read-cache.c:787,1
    - Dst: different_name
      Src: /src/git/read-cache.c:789,1
    - Dst: create_alias_ce
      Src: /src/git/read-cache.c:790,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:795,1
    - Dst: oideq
      Src: /src/git/read-cache.c:796,1
    - Dst: discard_cache_entry
      Src: /src/git/read-cache.c:800,1
    - Dst: add_index_entry
      Src: /src/git/read-cache.c:801,1
    - Dst: discard_cache_entry
      Src: /src/git/read-cache.c:802,1
    - Dst: error
      Src: /src/git/read-cache.c:803,1
    - Dst: _
      Src: /src/git/read-cache.c:803,1
    - Dst: printf
      Src: /src/git/read-cache.c:806,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 55
    argCount: 4
    argNames:
    - istate
    - path
    - st
    - flags
    argTypes:
    - struct index_state*
    - char*
    - struct stat*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 712
    functionDepth: 9
    functionLinenumber: 712
    functionLinenumberEnd: 808
    functionName: add_to_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - make_empty_cache_entry
    - fill_stat_cache_info
    - index_name_pos_also_unmerged
    - index_file_exists
    - printf
    - error
    - ie_match_stat
    - memcpy
    - discard_cache_entry
    - create_ce_mode
    - ce_mark_uptodate
    - S_ISREG
    - S_ISGITLINK
    - add_index_entry
    - set_object_name_for_intent_to_add_entry
    - _
    - ce_mode_from_stat
    - ce_stage
    - S_ISDIR
    - create_alias_ce
    - index_path
    - ce_namelen
    - strlen
    - adjust_dirname_case
    - different_name
    - oideq
    linkageType: ''
    returnType: int
    signature: int add_to_index(struct index_state *istate, const char *path, struct
      stat *st, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/read-cache.c:813,1
    - Dst: die_errno
      Src: /src/git/read-cache.c:814,1
    - Dst: _
      Src: /src/git/read-cache.c:814,1
    - Dst: add_to_index
      Src: /src/git/read-cache.c:815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - istate
    - path
    - flags
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 810
    functionDepth: 10
    functionLinenumber: 810
    functionLinenumberEnd: 816
    functionName: add_file_to_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - add_to_index
    - die_errno
    - lstat
    - _
    linkageType: ''
    returnType: int
    signature: int add_file_to_index(struct index_state *istate, const char *path,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool__ce_calloc
      Src: /src/git/read-cache.c:820,1
    - Dst: find_mem_pool
      Src: /src/git/read-cache.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - istate
    - len
    argTypes:
    - struct index_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 818
    functionDepth: 5
    functionLinenumber: 818
    functionLinenumberEnd: 821
    functionName: make_empty_cache_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 5
    functionsReached:
    - mem_pool__ce_calloc
    - find_mem_pool
    linkageType: ''
    returnType: struct cache_entry
    signature: struct cache_entry *make_empty_cache_entry(struct index_state *istate,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool__ce_calloc
      Src: /src/git/read-cache.c:827,1
    - Dst: xcalloc
      Src: /src/git/read-cache.c:828,1
    - Dst: cache_entry_size
      Src: /src/git/read-cache.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - len
    - ce_mem_pool
    argTypes:
    - size_t
    - struct mem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 823
    functionDepth: 5
    functionLinenumber: 823
    functionLinenumberEnd: 829
    functionName: make_empty_transient_cache_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - cache_entry_size
    - mem_pool__ce_calloc
    - xcalloc
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *make_empty_transient_cache_entry(size_t len,\n\t\t\t\t\t\t
      \    struct mem_pool *ce_mem_pool)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_path_internal
      Src: /src/git/read-cache.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 842
    functionName: verify_path
    functionSourceFile: /src/git/read-cache.c
    functionUses: 2
    functionsReached:
    - verify_path_internal
    linkageType: ''
    returnType: int
    signature: int verify_path(const char *path, unsigned mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: verify_path_internal
      Src: /src/git/read-cache.c:854,1
    - Dst: error
      Src: /src/git/read-cache.c:855,1
    - Dst: _
      Src: /src/git/read-cache.c:855,1
    - Dst: strlen
      Src: /src/git/read-cache.c:859,1
    - Dst: make_empty_cache_entry
      Src: /src/git/read-cache.c:860,1
    - Dst: oidcpy
      Src: /src/git/read-cache.c:862,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:863,1
    - Dst: create_ce_flags
      Src: /src/git/read-cache.c:864,1
    - Dst: create_ce_mode
      Src: /src/git/read-cache.c:866,1
    - Dst: refresh_cache_entry
      Src: /src/git/read-cache.c:868,1
    - Dst: discard_cache_entry
      Src: /src/git/read-cache.c:870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - istate
    - mode
    - oid
    - path
    - stage
    - refresh_options
    argTypes:
    - struct index_state*
    - unsigned int
    - struct object_id*
    - char*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 844
    functionDepth: 6
    functionLinenumber: 844
    functionLinenumberEnd: 872
    functionName: make_cache_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - error
    - oidcpy
    - make_empty_cache_entry
    - memcpy
    - discard_cache_entry
    - strlen
    - refresh_cache_entry
    - _
    - create_ce_mode
    - create_ce_flags
    - verify_path_internal
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *make_cache_entry(struct index_state *istate,\n\t\t\t\t
      \    unsigned int mode,\n\t\t\t\t     const struct object_id *oid,\n\t\t\t\t
      \    const char *path,\n\t\t\t\t     int stage,\n\t\t\t\t     unsigned int refresh_options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_path
      Src: /src/git/read-cache.c:883,1
    - Dst: error
      Src: /src/git/read-cache.c:884,1
    - Dst: _
      Src: /src/git/read-cache.c:884,1
    - Dst: strlen
      Src: /src/git/read-cache.c:888,1
    - Dst: make_empty_transient_cache_entry
      Src: /src/git/read-cache.c:889,1
    - Dst: oidcpy
      Src: /src/git/read-cache.c:891,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:892,1
    - Dst: create_ce_flags
      Src: /src/git/read-cache.c:893,1
    - Dst: create_ce_mode
      Src: /src/git/read-cache.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - mode
    - oid
    - path
    - stage
    - ce_mem_pool
    argTypes:
    - unsigned int
    - struct object_id*
    - char*
    - int
    - struct mem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 874
    functionDepth: 6
    functionLinenumber: 874
    functionLinenumberEnd: 898
    functionName: make_transient_cache_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - error
    - verify_path
    - oidcpy
    - make_empty_transient_cache_entry
    - memcpy
    - strlen
    - _
    - create_ce_mode
    - create_ce_flags
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *make_transient_cache_entry(unsigned int mode,\n\t\t\t\t\t
      \      const struct object_id *oid,\n\t\t\t\t\t       const char *path,\n\t\t\t\t\t
      \      int stage,\n\t\t\t\t\t       struct mem_pool *ce_mem_pool)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/read-cache.c:910,1
    - Dst: cache_tree_invalidate_path
      Src: /src/git/read-cache.c:922,1
    - Dst: mark_fsmonitor_invalid
      Src: /src/git/read-cache.c:924,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - istate
    - ce
    - flip
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 907
    functionDepth: 5
    functionLinenumber: 907
    functionLinenumberEnd: 928
    functionName: chmod_index_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - cache_tree_invalidate_path
    - mark_fsmonitor_invalid
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int chmod_index_entry(struct index_state *istate, struct cache_entry
      *ce,\n\t\t      char flip)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:932,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:933,1
    - Dst: memcmp
      Src: /src/git/read-cache.c:933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct cache_entry*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 934
    functionName: ce_same_name
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - ce_namelen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ce_same_name(const struct cache_entry *a, const struct cache_entry
      *b)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/read-cache.c:953,1
    - Dst: is_dir_sep
      Src: /src/git/read-cache.c:972,1
    - Dst: S_ISLNK
      Src: /src/git/read-cache.c:974,1
    - Dst: skip_iprefix
      Src: /src/git/read-cache.c:976,1
    - Dst: is_dir_sep
      Src: /src/git/read-cache.c:977,1
    - Dst: is_dir_sep
      Src: /src/git/read-cache.c:982,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 23
    argCount: 2
    argNames:
    - rest
    - mode
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 986
    functionName: verify_dotfile
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - skip_iprefix
    - S_ISLNK
    linkageType: ''
    returnType: int
    signature: int verify_dotfile(const char *rest, unsigned mode)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: has_dos_drive_prefix
      Src: /src/git/read-cache.c:993,1
    - Dst: is_valid_path
      Src: /src/git/read-cache.c:996,1
    - Dst: is_dir_sep
      Src: /src/git/read-cache.c:1003,1
    - Dst: is_hfs_dotgit
      Src: /src/git/read-cache.c:1007,1
    - Dst: S_ISLNK
      Src: /src/git/read-cache.c:1009,1
    - Dst: is_hfs_dotgitmodules
      Src: /src/git/read-cache.c:1010,1
    - Dst: is_ntfs_dotgit
      Src: /src/git/read-cache.c:1019,1
    - Dst: S_ISLNK
      Src: /src/git/read-cache.c:1021,1
    - Dst: is_ntfs_dotgitmodules
      Src: /src/git/read-cache.c:1022,1
    - Dst: verify_dotfile
      Src: /src/git/read-cache.c:1028,1
    - Dst: is_dir_sep
      Src: /src/git/read-cache.c:1029,1
    - Dst: S_ISDIR
      Src: /src/git/read-cache.c:1036,1
    - Dst: is_ntfs_dotgit
      Src: /src/git/read-cache.c:1039,1
    - Dst: S_ISLNK
      Src: /src/git/read-cache.c:1041,1
    - Dst: is_ntfs_dotgitmodules
      Src: /src/git/read-cache.c:1042,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 47
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 1049
    functionName: verify_path_internal
    functionSourceFile: /src/git/read-cache.c
    functionUses: 2
    functionsReached:
    - S_ISDIR
    - is_valid_path
    - S_ISLNK
    - is_dir_sep
    - is_ntfs_dotgitmodules
    - has_dos_drive_prefix
    - is_hfs_dotgit
    - is_hfs_dotgitmodules
    - is_ntfs_dotgit
    - verify_dotfile
    linkageType: ''
    returnType: enum verify_path_result
    signature: "enum verify_path_result verify_path_internal(const char *path,\n\t\t\t\t\t\t
      \   unsigned mode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:1059,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1060,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:1066,1
    - Dst: memcmp
      Src: /src/git/read-cache.c:1068,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1070,1
    - Dst: remove_index_entry_at
      Src: /src/git/read-cache.c:1079,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 4
    argNames:
    - istate
    - ce
    - pos
    - ok_to_replace
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1082
    functionName: has_file_name
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - remove_index_entry_at
    - ce_stage
    - ce_namelen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int has_file_name(struct index_state *istate,\n\t\t\t const struct
      cache_entry *ce, int pos, int ok_to_replace)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/read-cache.c:1094,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - s1
    - s2
    - first_change
    argTypes:
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1102
    functionName: strcmp_offset
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int strcmp_offset(const char *s1, const char *s2, size_t *first_change)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1115,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:1117,1
    - Dst: strcmp_offset
      Src: /src/git/read-cache.c:1134,1
    - Dst: index_name_stage_pos
      Src: /src/git/read-cache.c:1156,1
    - Dst: remove_index_entry_at
      Src: /src/git/read-cache.c:1170,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:1184,1
    - Dst: memcmp
      Src: /src/git/read-cache.c:1186,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1188,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 34
    argCount: 4
    argNames:
    - istate
    - ce
    - pos
    - ok_to_replace
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1111
    functionDepth: 3
    functionLinenumber: 1111
    functionLinenumberEnd: 1200
    functionName: has_dir_name
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - index_name_stage_pos
    - strcmp_offset
    - ce_namelen
    - remove_index_entry_at
    - ce_stage
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int has_dir_name(struct index_state *istate,\n\t\t\tconst struct cache_entry
      *ce, int pos, int ok_to_replace)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_file_name
      Src: /src/git/read-cache.c:1228,1
    - Dst: has_dir_name
      Src: /src/git/read-cache.c:1234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - istate
    - ce
    - pos
    - ok_to_replace
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1211
    functionDepth: 4
    functionLinenumber: 1211
    functionLinenumberEnd: 1235
    functionName: check_file_directory_conflict
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - has_file_name
    - has_dir_name
    linkageType: ''
    returnType: int
    signature: "int check_file_directory_conflict(struct index_state *istate,\n\t\t\t\t\t
      const struct cache_entry *ce,\n\t\t\t\t\t int pos, int ok_to_replace)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/read-cache.c:1250,1
    - Dst: index_pos_to_insert_pos
      Src: /src/git/read-cache.c:1251,1
    - Dst: index_name_stage_pos
      Src: /src/git/read-cache.c:1253,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:1253,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1253,1
    - Dst: cache_tree_invalidate_path
      Src: /src/git/read-cache.c:1260,1
    - Dst: replace_index_entry
      Src: /src/git/read-cache.c:1265,1
    - Dst: untracked_cache_add_to_index
      Src: /src/git/read-cache.c:1271,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1277,1
    - Dst: ce_same_name
      Src: /src/git/read-cache.c:1278,1
    - Dst: remove_index_entry_at
      Src: /src/git/read-cache.c:1280,1
    - Dst: verify_path_internal
      Src: /src/git/read-cache.c:1287,1
    - Dst: error
      Src: /src/git/read-cache.c:1288,1
    - Dst: _
      Src: /src/git/read-cache.c:1288,1
    - Dst: check_file_directory_conflict
      Src: /src/git/read-cache.c:1291,1
    - Dst: error
      Src: /src/git/read-cache.c:1293,1
    - Dst: _
      Src: /src/git/read-cache.c:1293,1
    - Dst: index_name_stage_pos
      Src: /src/git/read-cache.c:1295,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:1295,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1295,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 3
    argNames:
    - istate
    - ce
    - option
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1237
    functionDepth: 6
    functionLinenumber: 1237
    functionLinenumberEnd: 1299
    functionName: add_index_entry_with_check
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - error
    - index_name_stage_pos
    - ce_same_name
    - ce_namelen
    - index_pos_to_insert_pos
    - check_file_directory_conflict
    - untracked_cache_add_to_index
    - remove_index_entry_at
    - replace_index_entry
    - strcmp
    - cache_tree_invalidate_path
    - ce_stage
    - _
    - verify_path_internal
    linkageType: ''
    returnType: int
    signature: int add_index_entry_with_check(struct index_state *istate, struct cache_entry
      *ce, int option)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_index_entry_with_check
      Src: /src/git/read-cache.c:1309,1
    - Dst: ALLOC_GROW
      Src: /src/git/read-cache.c:1316,1
    - Dst: MOVE_ARRAY
      Src: /src/git/read-cache.c:1321,1
    - Dst: set_index_entry
      Src: /src/git/read-cache.c:1323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - istate
    - ce
    - option
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1301
    functionDepth: 7
    functionLinenumber: 1301
    functionLinenumberEnd: 1326
    functionName: add_index_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 5
    functionsReached:
    - add_index_entry_with_check
    - set_index_entry
    - ALLOC_GROW
    - MOVE_ARRAY
    linkageType: ''
    returnType: int
    signature: int add_index_entry(struct index_state *istate, struct cache_entry
      *ce, int option)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ce_uptodate
      Src: /src/git/read-cache.c:1355,1
    - Dst: refresh_fsmonitor
      Src: /src/git/read-cache.c:1359,1
    - Dst: ce_skip_worktree
      Src: /src/git/read-cache.c:1365,1
    - Dst: ce_mark_uptodate
      Src: /src/git/read-cache.c:1366,1
    - Dst: ce_mark_uptodate
      Src: /src/git/read-cache.c:1370,1
    - Dst: ce_mark_uptodate
      Src: /src/git/read-cache.c:1374,1
    - Dst: has_symlink_leading_path
      Src: /src/git/read-cache.c:1378,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:1378,1
    - Dst: lstat
      Src: /src/git/read-cache.c:1388,1
    - Dst: ie_match_stat
      Src: /src/git/read-cache.c:1396,1
    - Dst: S_ISGITLINK
      Src: /src/git/read-cache.c:1416,1
    - Dst: ce_mark_uptodate
      Src: /src/git/read-cache.c:1417,1
    - Dst: mark_fsmonitor_valid
      Src: /src/git/read-cache.c:1418,1
    - Dst: ie_modified
      Src: /src/git/read-cache.c:1426,1
    - Dst: make_empty_cache_entry
      Src: /src/git/read-cache.c:1432,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:1432,1
    - Dst: copy_cache_entry
      Src: /src/git/read-cache.c:1433,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:1434,1
    - Dst: fill_stat_cache_info
      Src: /src/git/read-cache.c:1435,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 60
    argCount: 7
    argNames:
    - istate
    - ce
    - options
    - err
    - changed_ret
    - t2_did_lstat
    - t2_did_scan
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - unsigned int
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1339
    functionDepth: 10
    functionLinenumber: 1339
    functionLinenumberEnd: 1448
    functionName: refresh_cache_ent
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ce_uptodate
    - ce_namelen
    - ie_match_stat
    - copy_cache_entry
    - S_ISGITLINK
    - mark_fsmonitor_valid
    - has_symlink_leading_path
    - make_empty_cache_entry
    - memcpy
    - fill_stat_cache_info
    - ce_skip_worktree
    - lstat
    - ie_modified
    - refresh_fsmonitor
    - ce_mark_uptodate
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *refresh_cache_ent(struct index_state *istate,\n\t\t\t\t\t
      \    struct cache_entry *ce,\n\t\t\t\t\t     unsigned int options, int *err,\n\t\t\t\t\t
      \    int *changed_ret,\n\t\t\t\t\t     int *t2_did_lstat,\n\t\t\t\t\t     int
      *t2_did_scan)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/read-cache.c:1454,1
    - Dst: printf
      Src: /src/git/read-cache.c:1457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - fmt
    - name
    - in_porcelain
    - first
    - header_msg
    argTypes:
    - char*
    - char*
    - int
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1450
    functionDepth: 0
    functionLinenumber: 1450
    functionLinenumberEnd: 1458
    functionName: show_file
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void show_file(const char * fmt, const char * name, int in_porcelain,\n\t\t
      \     int * first, const char *header_msg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_hold_locked_index
      Src: /src/git/read-cache.c:1470,1
    - Dst: refresh_index
      Src: /src/git/read-cache.c:1474,1
    - Dst: write_locked_index
      Src: /src/git/read-cache.c:1476,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 7
    argNames:
    - repo
    - refresh_flags
    - write_flags
    - gentle
    - pathspec
    - seen
    - header_msg
    argTypes:
    - struct repository*
    - unsigned int
    - unsigned int
    - int
    - struct pathspec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1460
    functionDepth: 1
    functionLinenumber: 1460
    functionLinenumberEnd: 1479
    functionName: repo_refresh_and_write_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - repo_hold_locked_index
    - write_locked_index
    - refresh_index
    linkageType: ''
    returnType: int
    signature: "int repo_refresh_and_write_index(struct repository *repo,\n\t\t\t\t
      unsigned int refresh_flags,\n\t\t\t\t unsigned int write_flags,\n\t\t\t\t int
      gentle,\n\t\t\t\t const struct pathspec *pathspec,\n\t\t\t\t char *seen, const
      char *header_msg)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/read-cache.c:1508,1
    - Dst: start_delayed_progress
      Src: /src/git/read-cache.c:1509,1
    - Dst: _
      Src: /src/git/read-cache.c:1510,1
    - Dst: trace_performance_enter
      Src: /src/git/read-cache.c:1513,1
    - Dst: preload_index
      Src: /src/git/read-cache.c:1524,1
    - Dst: trace2_region_enter
      Src: /src/git/read-cache.c:1525,1
    - Dst: S_ISGITLINK
      Src: /src/git/read-cache.c:1536,1
    - Dst: ce_skip_worktree
      Src: /src/git/read-cache.c:1538,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/read-cache.c:1545,1
    - Dst: ce_path_match
      Src: /src/git/read-cache.c:1548,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1551,1
    - Dst: strcmp
      Src: /src/git/read-cache.c:1553,1
    - Dst: show_file
      Src: /src/git/read-cache.c:1559,1
    - Dst: refresh_cache_ent
      Src: /src/git/read-cache.c:1568,1
    - Dst: display_progress
      Src: /src/git/read-cache.c:1575,1
    - Dst: mark_fsmonitor_invalid
      Src: /src/git/read-cache.c:1585,1
    - Dst: ce_intent_to_add
      Src: /src/git/read-cache.c:1593,1
    - Dst: show_file
      Src: /src/git/read-cache.c:1599,1
    - Dst: replace_index_entry
      Src: /src/git/read-cache.c:1605,1
    - Dst: trace2_data_intmax
      Src: /src/git/read-cache.c:1607,1
    - Dst: trace2_data_intmax
      Src: /src/git/read-cache.c:1608,1
    - Dst: trace2_region_leave
      Src: /src/git/read-cache.c:1609,1
    - Dst: display_progress
      Src: /src/git/read-cache.c:1610,1
    - Dst: stop_progress
      Src: /src/git/read-cache.c:1611,1
    - Dst: trace_performance_leave
      Src: /src/git/read-cache.c:1612,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 69
    argCount: 5
    argNames:
    - istate
    - flags
    - pathspec
    - seen
    - header_msg
    argTypes:
    - struct index_state*
    - unsigned int
    - struct pathspec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1482
    functionDepth: 11
    functionLinenumber: 1482
    functionLinenumberEnd: 1614
    functionName: refresh_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - refresh_cache_ent
    - preload_index
    - stop_progress
    - trace2_data_intmax
    - trace2_region_enter
    - ce_skip_worktree
    - replace_index_entry
    - start_delayed_progress
    - strcmp
    - trace_performance_leave
    - show_file
    - mark_fsmonitor_invalid
    - ce_intent_to_add
    - S_ISSPARSEDIR
    - ce_path_match
    - isatty
    - S_ISGITLINK
    - _
    - ce_stage
    - trace_performance_enter
    - trace2_region_leave
    - display_progress
    linkageType: ''
    returnType: int
    signature: "int refresh_index(struct index_state *istate, unsigned int flags,\n\t\t
      \ const struct pathspec *pathspec,\n\t\t  char *seen, const char *header_msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refresh_cache_ent
      Src: /src/git/read-cache.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - istate
    - ce
    - options
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1616
    functionDepth: 11
    functionLinenumber: 1616
    functionLinenumberEnd: 1621
    functionName: refresh_cache_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 2
    functionsReached:
    - refresh_cache_ent
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *refresh_cache_entry(struct index_state *istate,\n\t\t\t\t\tstruct
      cache_entry *ce,\n\t\t\t\t\tunsigned int options)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/read-cache.c:1632,1
    - Dst: prepare_repo_settings
      Src: /src/git/read-cache.c:1637,1
    - Dst: warning
      Src: /src/git/read-cache.c:1642,1
    - Dst: _
      Src: /src/git/read-cache.c:1642,1
    - Dst: strtoul
      Src: /src/git/read-cache.c:1649,1
    - Dst: warning
      Src: /src/git/read-cache.c:1652,1
    - Dst: _
      Src: /src/git/read-cache.c:1652,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1657
    functionName: get_index_format_default
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - prepare_repo_settings
    - _
    - getenv
    - warning
    - strtoul
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_index_format_default(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1688
    functionName: align_padding_size
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: align_padding_size(size, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STRUCT
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1688
    functionDepth: 0
    functionLinenumber: 1688
    functionLinenumberEnd: 1689
    functionName: align_flex_name
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: align_flex_name(STRUCT,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1689
    functionDepth: 0
    functionLinenumber: 1689
    functionLinenumberEnd: 1690
    functionName: ondisk_cache_entry_size
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ondisk_cache_entry_size(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flags
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1690
    functionDepth: 0
    functionLinenumber: 1690
    functionLinenumberEnd: 1692
    functionName: ondisk_data_size
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ondisk_data_size(flags, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1693
    functionName: ondisk_data_size_max
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ondisk_data_size_max(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ce
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1694
    functionName: ondisk_ce_size
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ondisk_ce_size(ce)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/git/read-cache.c:1709,1
    - Dst: error
      Src: /src/git/read-cache.c:1710,1
    - Dst: _
      Src: /src/git/read-cache.c:1710,1
    - Dst: ntohl
      Src: /src/git/read-cache.c:1711,1
    - Dst: error
      Src: /src/git/read-cache.c:1713,1
    - Dst: _
      Src: /src/git/read-cache.c:1713,1
    - Dst: oidread
      Src: /src/git/read-cache.c:1720,1
    - Dst: oideq
      Src: /src/git/read-cache.c:1721,1
    - Dst: null_oid
      Src: /src/git/read-cache.c:1721,1
    - Dst: init_fn
      Src: /src/git/read-cache.c:1724,1
    - Dst: git_hash_update
      Src: /src/git/read-cache.c:1725,1
    - Dst: git_hash_final
      Src: /src/git/read-cache.c:1726,1
    - Dst: hasheq
      Src: /src/git/read-cache.c:1727,1
    - Dst: error
      Src: /src/git/read-cache.c:1728,1
    - Dst: _
      Src: /src/git/read-cache.c:1728,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - hdr
    - size
    argTypes:
    - struct cache_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1701
    functionDepth: 1
    functionLinenumber: 1701
    functionLinenumberEnd: 1730
    functionName: verify_hdr
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - error
    - hasheq
    - init_fn
    - git_hash_final
    - ntohl
    - htonl
    - _
    - git_hash_update
    - null_oid
    - oideq
    - oidread
    linkageType: ''
    returnType: int
    signature: int verify_hdr(const struct cache_header *hdr, unsigned long size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CACHE_EXT
      Src: /src/git/read-cache.c:1735,1
    - Dst: cache_tree_read
      Src: /src/git/read-cache.c:1737,1
    - Dst: resolve_undo_read
      Src: /src/git/read-cache.c:1740,1
    - Dst: read_link_extension
      Src: /src/git/read-cache.c:1743,1
    - Dst: read_untracked_extension
      Src: /src/git/read-cache.c:1747,1
    - Dst: read_fsmonitor_extension
      Src: /src/git/read-cache.c:1750,1
    - Dst: error
      Src: /src/git/read-cache.c:1762,1
    - Dst: _
      Src: /src/git/read-cache.c:1762,1
    - Dst: fprintf_ln
      Src: /src/git/read-cache.c:1764,1
    - Dst: _
      Src: /src/git/read-cache.c:1764,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - istate
    - ext
    - data
    - sz
    argTypes:
    - struct index_state*
    - char*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1732
    functionDepth: 4
    functionLinenumber: 1732
    functionLinenumberEnd: 1768
    functionName: read_index_extension
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - error
    - CACHE_EXT
    - cache_tree_read
    - read_link_extension
    - fprintf_ln
    - read_untracked_extension
    - _
    - resolve_undo_read
    - read_fsmonitor_extension
    linkageType: ''
    returnType: int
    signature: "int read_index_extension(struct index_state *istate,\n\t\t\t\tconst
      char *ext, const char *data, unsigned long sz)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_be16
      Src: /src/git/read-cache.c:1804,1
    - Dst: get_be16
      Src: /src/git/read-cache.c:1809,1
    - Dst: die
      Src: /src/git/read-cache.c:1812,1
    - Dst: _
      Src: /src/git/read-cache.c:1812,1
    - Dst: decode_varint
      Src: /src/git/read-cache.c:1824,1
    - Dst: die
      Src: /src/git/read-cache.c:1828,1
    - Dst: _
      Src: /src/git/read-cache.c:1828,1
    - Dst: strlen
      Src: /src/git/read-cache.c:1836,1
    - Dst: mem_pool__ce_alloc
      Src: /src/git/read-cache.c:1841,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:1851,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:1853,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:1855,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:1857,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:1859,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:1860,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:1861,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:1862,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:1863,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:1864,1
    - Dst: oidread
      Src: /src/git/read-cache.c:1868,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:1873,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:1874,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:1877,1
    - Dst: ondisk_ce_size
      Src: /src/git/read-cache.c:1878,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 5
    argNames:
    - ce_mem_pool
    - version
    - ondisk
    - ent_size
    - previous_ce
    argTypes:
    - struct mem_pool*
    - unsigned int
    - char*
    - unsigned long*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1781
    functionDepth: 4
    functionLinenumber: 1781
    functionLinenumberEnd: 1881
    functionName: create_from_disk
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - decode_varint
    - mem_pool__ce_alloc
    - die
    - get_be32
    - get_be16
    - memcpy
    - ondisk_ce_size
    - strlen
    - _
    - oidread
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *create_from_disk(struct mem_pool *ce_mem_pool,\n\t\t\t\t\t
      \   unsigned int version,\n\t\t\t\t\t    const char *ondisk,\n\t\t\t\t\t    unsigned
      long *ent_size,\n\t\t\t\t\t    const struct cache_entry *previous_ce)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/read-cache.c:1893,1
    - Dst: die
      Src: /src/git/read-cache.c:1896,1
    - Dst: _
      Src: /src/git/read-cache.c:1896,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1898,1
    - Dst: die
      Src: /src/git/read-cache.c:1899,1
    - Dst: _
      Src: /src/git/read-cache.c:1899,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1901,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:1901,1
    - Dst: die
      Src: /src/git/read-cache.c:1902,1
    - Dst: _
      Src: /src/git/read-cache.c:1902,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1883
    functionDepth: 1
    functionLinenumber: 1883
    functionLinenumberEnd: 1906
    functionName: check_ce_order
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - die
    - ce_stage
    - _
    - strcmp
    linkageType: ''
    returnType: void
    signature: void check_ce_order(struct index_state *istate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/read-cache.c:1912,1
    - Dst: remove_untracked_cache
      Src: /src/git/read-cache.c:1916,1
    - Dst: add_untracked_cache
      Src: /src/git/read-cache.c:1919,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1908
    functionDepth: 5
    functionLinenumber: 1908
    functionLinenumberEnd: 1930
    functionName: tweak_untracked_cache
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - add_untracked_cache
    - remove_untracked_cache
    - prepare_repo_settings
    linkageType: ''
    returnType: void
    signature: void tweak_untracked_cache(struct index_state *istate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_split_index
      Src: /src/git/read-cache.c:1934,1
    - Dst: remove_split_index
      Src: /src/git/read-cache.c:1938,1
    - Dst: add_split_index
      Src: /src/git/read-cache.c:1941,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1932
    functionDepth: 1
    functionLinenumber: 1932
    functionLinenumberEnd: 1946
    functionName: tweak_split_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - add_split_index
    - remove_split_index
    - repo_config_get_split_index
    linkageType: ''
    returnType: void
    signature: void tweak_split_index(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_ce_order
      Src: /src/git/read-cache.c:1950,1
    - Dst: tweak_untracked_cache
      Src: /src/git/read-cache.c:1951,1
    - Dst: tweak_split_index
      Src: /src/git/read-cache.c:1952,1
    - Dst: tweak_fsmonitor
      Src: /src/git/read-cache.c:1953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1948
    functionDepth: 6
    functionLinenumber: 1948
    functionLinenumberEnd: 1954
    functionName: post_read_index_from
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - check_ce_order
    - tweak_untracked_cache
    - tweak_split_index
    - tweak_fsmonitor
    linkageType: ''
    returnType: void
    signature: void post_read_index_from(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entries
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1956
    functionDepth: 0
    functionLinenumber: 1956
    functionLinenumberEnd: 1959
    functionName: estimate_cache_size_from_compressed
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t estimate_cache_size_from_compressed(unsigned int entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: align_padding_size
      Src: /src/git/read-cache.c:1968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ondisk_size
    - entries
    argTypes:
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1961
    functionDepth: 1
    functionLinenumber: 1961
    functionLinenumberEnd: 1970
    functionName: estimate_cache_size
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - align_padding_size
    linkageType: ''
    returnType: size_t
    signature: size_t estimate_cache_size(size_t ondisk_size, unsigned int entries)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_be32
      Src: /src/git/read-cache.c:2011,1
    - Dst: read_index_extension
      Src: /src/git/read-cache.c:2012,1
    - Dst: munmap
      Src: /src/git/read-cache.c:2016,1
    - Dst: die
      Src: /src/git/read-cache.c:2017,1
    - Dst: _
      Src: /src/git/read-cache.c:2017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 1999
    functionDepth: 5
    functionLinenumber: 1999
    functionLinenumberEnd: 2024
    functionName: load_index_extensions
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - die
    - get_be32
    - _
    - read_index_extension
    - munmap
    linkageType: ''
    returnType: void
    signature: void *load_index_extensions(void *_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_from_disk
      Src: /src/git/read-cache.c:2041,1
    - Dst: set_index_entry
      Src: /src/git/read-cache.c:2044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - istate
    - ce_mem_pool
    - offset
    - nr
    - mmap
    - start_offset
    - previous_ce
    argTypes:
    - struct index_state*
    - struct mem_pool*
    - int
    - int
    - char*
    - unsigned long
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2030
    functionDepth: 5
    functionLinenumber: 2030
    functionLinenumberEnd: 2050
    functionName: load_cache_entry_block
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - set_index_entry
    - create_from_disk
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long load_cache_entry_block(struct index_state *istate,\n\t\t\tstruct
      mem_pool *ce_mem_pool, int offset, int nr, const char *mmap,\n\t\t\tunsigned
      long start_offset, const struct cache_entry *previous_ce)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/read-cache.c:2057,1
    - Dst: mem_pool_init
      Src: /src/git/read-cache.c:2059,1
    - Dst: estimate_cache_size_from_compressed
      Src: /src/git/read-cache.c:2060,1
    - Dst: mem_pool_init
      Src: /src/git/read-cache.c:2062,1
    - Dst: estimate_cache_size
      Src: /src/git/read-cache.c:2063,1
    - Dst: load_cache_entry_block
      Src: /src/git/read-cache.c:2066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - istate
    - mmap
    - mmap_size
    - src_offset
    argTypes:
    - struct index_state*
    - char*
    - size_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2052
    functionDepth: 6
    functionLinenumber: 2052
    functionLinenumberEnd: 2069
    functionName: load_all_cache_entries
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - mem_pool_init
    - load_cache_entry_block
    - xmalloc
    - estimate_cache_size_from_compressed
    - estimate_cache_size
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long load_all_cache_entries(struct index_state *istate,\n\t\t\tconst
      char *mmap, size_t mmap_size, unsigned long src_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_cache_entry_block
      Src: /src/git/read-cache.c:2104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2097
    functionDepth: 6
    functionLinenumber: 2097
    functionLinenumberEnd: 2109
    functionName: load_cache_entries_thread
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - load_cache_entry_block
    linkageType: ''
    returnType: void
    signature: void *load_cache_entries_thread(void *_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/read-cache.c:2120,1
    - Dst: xmalloc
      Src: /src/git/read-cache.c:2122,1
    - Dst: mem_pool_init
      Src: /src/git/read-cache.c:2123,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/read-cache.c:2128,1
    - Dst: DIV_ROUND_UP
      Src: /src/git/read-cache.c:2131,1
    - Dst: xmalloc
      Src: /src/git/read-cache.c:2150,1
    - Dst: mem_pool_init
      Src: /src/git/read-cache.c:2152,1
    - Dst: estimate_cache_size_from_compressed
      Src: /src/git/read-cache.c:2153,1
    - Dst: mem_pool_init
      Src: /src/git/read-cache.c:2155,1
    - Dst: estimate_cache_size
      Src: /src/git/read-cache.c:2156,1
    - Dst: pthread_create
      Src: /src/git/read-cache.c:2159,1
    - Dst: die
      Src: /src/git/read-cache.c:2161,1
    - Dst: _
      Src: /src/git/read-cache.c:2161,1
    - Dst: strerror
      Src: /src/git/read-cache.c:2161,1
    - Dst: pthread_join
      Src: /src/git/read-cache.c:2172,1
    - Dst: die
      Src: /src/git/read-cache.c:2174,1
    - Dst: _
      Src: /src/git/read-cache.c:2174,1
    - Dst: strerror
      Src: /src/git/read-cache.c:2174,1
    - Dst: mem_pool_combine
      Src: /src/git/read-cache.c:2175,1
    - Dst: free
      Src: /src/git/read-cache.c:2176,1
    - Dst: free
      Src: /src/git/read-cache.c:2180,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 5
    argNames:
    - istate
    - mmap
    - mmap_size
    - nr_threads
    - ieot
    argTypes:
    - struct index_state*
    - char*
    - size_t
    - int
    - struct index_entry_offset_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2111
    functionDepth: 3
    functionLinenumber: 2111
    functionLinenumberEnd: 2183
    functionName: load_cache_entries_threaded
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - mem_pool_init
    - die
    - DIV_ROUND_UP
    - pthread_create
    - strerror
    - pthread_join
    - xmalloc
    - CALLOC_ARRAY
    - free
    - estimate_cache_size_from_compressed
    - estimate_cache_size
    - BUG
    - mem_pool_combine
    - _
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long load_cache_entries_threaded(struct index_state *istate,
      const char *mmap, size_t mmap_size,\n\t\t\t\t\t\t int nr_threads, struct index_entry_offset_table
      *ieot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/read-cache.c:2191,1
    - Dst: is_sparse_index_allowed
      Src: /src/git/read-cache.c:2193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2185
    functionDepth: 1
    functionLinenumber: 2185
    functionLinenumberEnd: 2195
    functionName: set_new_index_sparsity
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - is_sparse_index_allowed
    - prepare_repo_settings
    linkageType: ''
    returnType: void
    signature: void set_new_index_sparsity(struct index_state *istate)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/read-cache.c:2216,1
    - Dst: set_new_index_sparsity
      Src: /src/git/read-cache.c:2219,1
    - Dst: die_errno
      Src: /src/git/read-cache.c:2223,1
    - Dst: _
      Src: /src/git/read-cache.c:2223,1
    - Dst: fstat
      Src: /src/git/read-cache.c:2226,1
    - Dst: die_errno
      Src: /src/git/read-cache.c:2227,1
    - Dst: _
      Src: /src/git/read-cache.c:2227,1
    - Dst: xsize_t
      Src: /src/git/read-cache.c:2229,1
    - Dst: die
      Src: /src/git/read-cache.c:2231,1
    - Dst: _
      Src: /src/git/read-cache.c:2231,1
    - Dst: xmmap_gently
      Src: /src/git/read-cache.c:2233,1
    - Dst: die_errno
      Src: /src/git/read-cache.c:2235,1
    - Dst: _
      Src: /src/git/read-cache.c:2235,1
    - Dst: mmap_os_err
      Src: /src/git/read-cache.c:2236,1
    - Dst: close
      Src: /src/git/read-cache.c:2237,1
    - Dst: verify_hdr
      Src: /src/git/read-cache.c:2240,1
    - Dst: oidread
      Src: /src/git/read-cache.c:2243,1
    - Dst: ntohl
      Src: /src/git/read-cache.c:2245,1
    - Dst: ntohl
      Src: /src/git/read-cache.c:2246,1
    - Dst: alloc_nr
      Src: /src/git/read-cache.c:2247,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/read-cache.c:2248,1
    - Dst: repo_config_get_index_threads
      Src: /src/git/read-cache.c:2257,1
    - Dst: online_cpus
      Src: /src/git/read-cache.c:2263,1
    - Dst: read_eoie_extension
      Src: /src/git/read-cache.c:2272,1
    - Dst: pthread_create
      Src: /src/git/read-cache.c:2277,1
    - Dst: die
      Src: /src/git/read-cache.c:2279,1
    - Dst: _
      Src: /src/git/read-cache.c:2279,1
    - Dst: strerror
      Src: /src/git/read-cache.c:2279,1
    - Dst: read_ieot_extension
      Src: /src/git/read-cache.c:2290,1
    - Dst: load_cache_entries_threaded
      Src: /src/git/read-cache.c:2293,1
    - Dst: free
      Src: /src/git/read-cache.c:2294,1
    - Dst: load_all_cache_entries
      Src: /src/git/read-cache.c:2296,1
    - Dst: ST_MTIME_NSEC
      Src: /src/git/read-cache.c:2300,1
    - Dst: pthread_join
      Src: /src/git/read-cache.c:2304,1
    - Dst: die
      Src: /src/git/read-cache.c:2306,1
    - Dst: _
      Src: /src/git/read-cache.c:2306,1
    - Dst: strerror
      Src: /src/git/read-cache.c:2306,1
    - Dst: load_index_extensions
      Src: /src/git/read-cache.c:2309,1
    - Dst: munmap
      Src: /src/git/read-cache.c:2311,1
    - Dst: trace2_data_intmax
      Src: /src/git/read-cache.c:2313,1
    - Dst: trace2_data_intmax
      Src: /src/git/read-cache.c:2315,1
    - Dst: prepare_repo_settings
      Src: /src/git/read-cache.c:2323,1
    - Dst: ensure_full_index
      Src: /src/git/read-cache.c:2325,1
    - Dst: ensure_correct_sparsity
      Src: /src/git/read-cache.c:2327,1
    - Dst: munmap
      Src: /src/git/read-cache.c:2332,1
    - Dst: die
      Src: /src/git/read-cache.c:2333,1
    - Dst: _
      Src: /src/git/read-cache.c:2333,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 3
    argNames:
    - istate
    - path
    - must_exist
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2198
    functionDepth: 7
    functionLinenumber: 2198
    functionLinenumberEnd: 2334
    functionName: do_read_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - load_all_cache_entries
    - load_index_extensions
    - ensure_full_index
    - trace2_data_intmax
    - pthread_join
    - xsize_t
    - CALLOC_ARRAY
    - free
    - ensure_correct_sparsity
    - die
    - online_cpus
    - strerror
    - repo_config_get_index_threads
    - read_eoie_extension
    - munmap
    - mmap_os_err
    - verify_hdr
    - xmmap_gently
    - set_new_index_sparsity
    - pthread_create
    - die_errno
    - _
    - open
    - fstat
    - ntohl
    - alloc_nr
    - read_ieot_extension
    - prepare_repo_settings
    - ST_MTIME_NSEC
    - close
    - load_cache_entries_threaded
    - oidread
    linkageType: ''
    returnType: int
    signature: int do_read_index(struct index_state *istate, const char *path, int
      must_exist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_and_freshen_file
      Src: /src/git/read-cache.c:2344,1
    - Dst: warning
      Src: /src/git/read-cache.c:2345,1
    - Dst: _
      Src: /src/git/read-cache.c:2345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - shared_index
    - warn
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2342
    functionDepth: 1
    functionLinenumber: 2342
    functionLinenumberEnd: 2346
    functionName: freshen_shared_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - warning
    - check_and_freshen_file
    - _
    linkageType: ''
    returnType: void
    signature: void freshen_shared_index(const char *shared_index, int warn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter_printf
      Src: /src/git/read-cache.c:2360,1
    - Dst: trace_performance_enter
      Src: /src/git/read-cache.c:2362,1
    - Dst: do_read_index
      Src: /src/git/read-cache.c:2363,1
    - Dst: trace_performance_leave
      Src: /src/git/read-cache.c:2364,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/read-cache.c:2365,1
    - Dst: is_null_oid
      Src: /src/git/read-cache.c:2369,1
    - Dst: post_read_index_from
      Src: /src/git/read-cache.c:2370,1
    - Dst: trace_performance_enter
      Src: /src/git/read-cache.c:2374,1
    - Dst: release_index
      Src: /src/git/read-cache.c:2376,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/read-cache.c:2378,1
    - Dst: index_state_init
      Src: /src/git/read-cache.c:2379,1
    - Dst: oid_to_hex
      Src: /src/git/read-cache.c:2381,1
    - Dst: xstrfmt
      Src: /src/git/read-cache.c:2382,1
    - Dst: file_exists
      Src: /src/git/read-cache.c:2383,1
    - Dst: trace2_region_enter_printf
      Src: /src/git/read-cache.c:2384,1
    - Dst: do_read_index
      Src: /src/git/read-cache.c:2387,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/read-cache.c:2388,1
    - Dst: xstrdup
      Src: /src/git/read-cache.c:2391,1
    - Dst: xstrfmt
      Src: /src/git/read-cache.c:2392,1
    - Dst: dirname
      Src: /src/git/read-cache.c:2393,1
    - Dst: free
      Src: /src/git/read-cache.c:2394,1
    - Dst: trace2_region_enter_printf
      Src: /src/git/read-cache.c:2395,1
    - Dst: do_read_index
      Src: /src/git/read-cache.c:2397,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/read-cache.c:2398,1
    - Dst: free
      Src: /src/git/read-cache.c:2400,1
    - Dst: oideq
      Src: /src/git/read-cache.c:2402,1
    - Dst: die
      Src: /src/git/read-cache.c:2403,1
    - Dst: _
      Src: /src/git/read-cache.c:2403,1
    - Dst: oid_to_hex
      Src: /src/git/read-cache.c:2405,1
    - Dst: freshen_shared_index
      Src: /src/git/read-cache.c:2407,1
    - Dst: merge_base_index
      Src: /src/git/read-cache.c:2408,1
    - Dst: post_read_index_from
      Src: /src/git/read-cache.c:2409,1
    - Dst: trace_performance_leave
      Src: /src/git/read-cache.c:2410,1
    - Dst: free
      Src: /src/git/read-cache.c:2411,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 3
    argNames:
    - istate
    - path
    - gitdir
    argTypes:
    - struct index_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2348
    functionDepth: 8
    functionLinenumber: 2348
    functionLinenumberEnd: 2413
    functionName: read_index_from
    functionSourceFile: /src/git/read-cache.c
    functionUses: 3
    functionsReached:
    - post_read_index_from
    - is_null_oid
    - free
    - file_exists
    - trace_performance_leave
    - die
    - do_read_index
    - ALLOC_ARRAY
    - dirname
    - oid_to_hex
    - trace2_region_enter_printf
    - _
    - index_state_init
    - trace_performance_enter
    - xstrdup
    - freshen_shared_index
    - trace2_region_leave_printf
    - xstrfmt
    - release_index
    - merge_base_index
    - oideq
    linkageType: ''
    returnType: int
    signature: "int read_index_from(struct index_state *istate, const char *path,\n\t\t
      \   const char *gitdir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2415
    functionDepth: 0
    functionLinenumber: 2415
    functionLinenumberEnd: 2418
    functionName: is_index_unborn
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_index_unborn(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INDEX_STATE_INIT
      Src: /src/git/read-cache.c:2422,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:2423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - istate
    - r
    argTypes:
    - struct index_state*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2420
    functionDepth: 1
    functionLinenumber: 2420
    functionLinenumberEnd: 2424
    functionName: index_state_init
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - INDEX_STATE_INIT
    - memcpy
    linkageType: ''
    returnType: void
    signature: void index_state_init(struct index_state *istate, struct repository
      *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_cache_entries
      Src: /src/git/read-cache.c:2435,1
    - Dst: resolve_undo_clear_index
      Src: /src/git/read-cache.c:2437,1
    - Dst: free_name_hash
      Src: /src/git/read-cache.c:2438,1
    - Dst: cache_tree_free
      Src: /src/git/read-cache.c:2439,1
    - Dst: free
      Src: /src/git/read-cache.c:2440,1
    - Dst: free
      Src: /src/git/read-cache.c:2441,1
    - Dst: discard_split_index
      Src: /src/git/read-cache.c:2442,1
    - Dst: free_untracked_cache
      Src: /src/git/read-cache.c:2443,1
    - Dst: clear_pattern_list
      Src: /src/git/read-cache.c:2446,1
    - Dst: FREE_AND_NULL
      Src: /src/git/read-cache.c:2447,1
    - Dst: mem_pool_discard
      Src: /src/git/read-cache.c:2451,1
    - Dst: should_validate_cache_entries
      Src: /src/git/read-cache.c:2451,1
    - Dst: FREE_AND_NULL
      Src: /src/git/read-cache.c:2452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2426
    functionDepth: 3
    functionLinenumber: 2426
    functionLinenumberEnd: 2454
    functionName: release_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - resolve_undo_clear_index
    - free_untracked_cache
    - mem_pool_discard
    - free_name_hash
    - validate_cache_entries
    - should_validate_cache_entries
    - cache_tree_free
    - discard_split_index
    - free
    - clear_pattern_list
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void release_index(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_index
      Src: /src/git/read-cache.c:2458,1
    - Dst: index_state_init
      Src: /src/git/read-cache.c:2459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2456
    functionDepth: 4
    functionLinenumber: 2456
    functionLinenumberEnd: 2460
    functionName: discard_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 2
    functionsReached:
    - index_state_init
    - release_index
    linkageType: ''
    returnType: void
    signature: void discard_index(struct index_state *istate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: should_validate_cache_entries
      Src: /src/git/read-cache.c:2473,1
    - Dst: BUG
      Src: /src/git/read-cache.c:2478,1
    - Dst: mem_pool_contains
      Src: /src/git/read-cache.c:2480,1
    - Dst: mem_pool_contains
      Src: /src/git/read-cache.c:2484,1
    - Dst: BUG
      Src: /src/git/read-cache.c:2485,1
    - Dst: validate_cache_entries
      Src: /src/git/read-cache.c:2491,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2469
    functionDepth: 1
    functionLinenumber: 2469
    functionLinenumberEnd: 2492
    functionName: validate_cache_entries
    functionSourceFile: /src/git/read-cache.c
    functionUses: 2
    functionsReached:
    - mem_pool_contains
    - BUG
    - should_validate_cache_entries
    - validate_cache_entries
    linkageType: ''
    returnType: void
    signature: void validate_cache_entries(const struct index_state *istate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ce_stage
      Src: /src/git/read-cache.c:2498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2494
    functionDepth: 1
    functionLinenumber: 2494
    functionLinenumberEnd: 2502
    functionName: unmerged_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ce_stage
    linkageType: ''
    returnType: int
    signature: int unmerged_index(const struct index_state *istate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_tree
      Src: /src/git/read-cache.c:2514,1
    - Dst: repo_diff_setup
      Src: /src/git/read-cache.c:2517,1
    - Dst: diff_setup_done
      Src: /src/git/read-cache.c:2521,1
    - Dst: do_diff_cache
      Src: /src/git/read-cache.c:2522,1
    - Dst: diffcore_std
      Src: /src/git/read-cache.c:2523,1
    - Dst: strbuf_addch
      Src: /src/git/read-cache.c:2526,1
    - Dst: strbuf_addstr
      Src: /src/git/read-cache.c:2527,1
    - Dst: diff_flush
      Src: /src/git/read-cache.c:2529,1
    - Dst: ensure_full_index
      Src: /src/git/read-cache.c:2533,1
    - Dst: strbuf_addch
      Src: /src/git/read-cache.c:2536,1
    - Dst: strbuf_addstr
      Src: /src/git/read-cache.c:2537,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - repo
    - tree
    - sb
    argTypes:
    - struct repository*
    - struct tree*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2504
    functionDepth: 1
    functionLinenumber: 2504
    functionLinenumberEnd: 2541
    functionName: repo_index_has_changes
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - repo_get_oid_tree
    - strbuf_addch
    - diff_flush
    - diffcore_std
    - diff_setup_done
    - strbuf_addstr
    - repo_diff_setup
    - do_diff_cache
    linkageType: ''
    returnType: int
    signature: "int repo_index_has_changes(struct repository *repo,\n\t\t\t   struct
      tree *tree,\n\t\t\t   struct strbuf *sb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite_be32
      Src: /src/git/read-cache.c:2548,1
    - Dst: hashwrite_be32
      Src: /src/git/read-cache.c:2549,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2552,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2553,1
    - Dst: git_hash_update
      Src: /src/git/read-cache.c:2554,1
    - Dst: git_hash_update
      Src: /src/git/read-cache.c:2555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - f
    - eoie_f
    - ext
    - sz
    argTypes:
    - struct hashfile*
    - struct git_hash_ctx*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2543
    functionDepth: 1
    functionLinenumber: 2543
    functionLinenumberEnd: 2558
    functionName: write_index_ext_header
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    - git_hash_update
    - htonl
    linkageType: ''
    returnType: int
    signature: "int write_index_ext_header(struct hashfile *f,\n\t\t\t\t  struct git_hash_ctx
      *eoie_f,\n\t\t\t\t  unsigned int ext,\n\t\t\t\t  unsigned int sz)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/read-cache.c:2576,1
    - Dst: ce_match_stat_basic
      Src: /src/git/read-cache.c:2578,1
    - Dst: ce_modified_check_fs
      Src: /src/git/read-cache.c:2580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2560
    functionDepth: 8
    functionLinenumber: 2560
    functionLinenumberEnd: 2608
    functionName: ce_smudge_racily_clean_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ce_match_stat_basic
    - ce_modified_check_fs
    - lstat
    linkageType: ''
    returnType: void
    signature: "void ce_smudge_racily_clean_entry(struct index_state *istate,\n\t\t\t\t\t
      struct cache_entry *ce)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/git/read-cache.c:2618,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2619,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2620,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2621,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2622,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2623,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2624,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2625,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2626,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2627,1
    - Dst: hashcpy
      Src: /src/git/read-cache.c:2628,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:2631,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:2631,1
    - Dst: htons
      Src: /src/git/read-cache.c:2632,1
    - Dst: htons
      Src: /src/git/read-cache.c:2634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - ondisk
    - ce
    argTypes:
    - struct ondisk_cache_entry*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2611
    functionDepth: 1
    functionLinenumber: 2611
    functionLinenumberEnd: 2636
    functionName: copy_cache_entry_to_ondisk
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ce_namelen
    - htonl
    - htons
    - hashcpy
    linkageType: ''
    returnType: void
    signature: "void copy_cache_entry_to_ondisk(struct ondisk_cache_entry *ondisk,\n\t\t\t\t
      \      struct cache_entry *ce)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:2647,1
    - Dst: ondisk_data_size
      Src: /src/git/read-cache.c:2652,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:2655,1
    - Dst: copy_cache_entry_to_ondisk
      Src: /src/git/read-cache.c:2656,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:2657,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:2658,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:2659,1
    - Dst: align_padding_size
      Src: /src/git/read-cache.c:2659,1
    - Dst: encode_varint
      Src: /src/git/read-cache.c:2672,1
    - Dst: copy_cache_entry_to_ondisk
      Src: /src/git/read-cache.c:2674,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:2675,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:2676,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:2677,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:2677,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:2678,1
    - Dst: strbuf_splice
      Src: /src/git/read-cache.c:2680,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:2681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - f
    - ce
    - previous_name
    - ondisk
    argTypes:
    - struct hashfile*
    - struct cache_entry*
    - struct strbuf*
    - struct ondisk_cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2638
    functionDepth: 2
    functionLinenumber: 2638
    functionLinenumberEnd: 2689
    functionName: ce_write_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ce_namelen
    - copy_cache_entry_to_ondisk
    - hashwrite
    - strbuf_splice
    - align_padding_size
    - ondisk_data_size
    - encode_varint
    linkageType: ''
    returnType: int
    signature: "int ce_write_entry(struct hashfile *f, struct cache_entry *ce,\n\t\t\t
      \ struct strbuf *previous_name, struct ondisk_cache_entry *ondisk)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/read-cache.c:2705,1
    - Dst: fstat
      Src: /src/git/read-cache.c:2709,1
    - Dst: pread_in_full
      Src: /src/git/read-cache.c:2715,1
    - Dst: hasheq
      Src: /src/git/read-cache.c:2719,1
    - Dst: close
      Src: /src/git/read-cache.c:2722,1
    - Dst: close
      Src: /src/git/read-cache.c:2726,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2695
    functionDepth: 1
    functionLinenumber: 2695
    functionLinenumberEnd: 2728
    functionName: verify_index_from
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - open
    - hasheq
    - fstat
    - pread_in_full
    - close
    linkageType: ''
    returnType: int
    signature: int verify_index_from(const struct index_state *istate, const char
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_index_from
      Src: /src/git/read-cache.c:2732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2730
    functionDepth: 2
    functionLinenumber: 2730
    functionLinenumberEnd: 2733
    functionName: repo_verify_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - verify_index_from
    linkageType: ''
    returnType: int
    signature: int repo_verify_index(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_racy_timestamp
      Src: /src/git/read-cache.c:2742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2735
    functionDepth: 2
    functionLinenumber: 2735
    functionLinenumberEnd: 2746
    functionName: has_racy_timestamp
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - is_racy_timestamp
    linkageType: ''
    returnType: int
    signature: int has_racy_timestamp(struct index_state *istate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_racy_timestamp
      Src: /src/git/read-cache.c:2752,1
    - Dst: repo_verify_index
      Src: /src/git/read-cache.c:2753,1
    - Dst: write_locked_index
      Src: /src/git/read-cache.c:2754,1
    - Dst: rollback_lock_file
      Src: /src/git/read-cache.c:2756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - repo
    - lockfile
    argTypes:
    - struct repository*
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2748
    functionDepth: 3
    functionLinenumber: 2748
    functionLinenumberEnd: 2757
    functionName: repo_update_index_if_able
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - has_racy_timestamp
    - rollback_lock_file
    - repo_verify_index
    - write_locked_index
    linkageType: ''
    returnType: void
    signature: "void repo_update_index_if_able(struct repository *repo,\n\t\t\t       struct
      lock_file *lockfile)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/read-cache.c:2763,1
    - Dst: repo_config_get_index_threads
      Src: /src/git/read-cache.c:2771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2759
    functionDepth: 1
    functionLinenumber: 2759
    functionLinenumberEnd: 2772
    functionName: record_eoie
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - repo_config_get_bool
    - repo_config_get_index_threads
    linkageType: ''
    returnType: int
    signature: int record_eoie(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/read-cache.c:2778,1
    - Dst: repo_config_get_index_threads
      Src: /src/git/read-cache.c:2786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2787
      start: 2774
    functionDepth: 1
    functionLinenumber: 2774
    functionLinenumberEnd: 2787
    functionName: record_ieot
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - repo_config_get_bool
    - repo_config_get_index_threads
    linkageType: ''
    returnType: int
    signature: int record_ieot(void)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/read-cache.c:2809,1
    - Dst: hashfd
      Src: /src/git/read-cache.c:2828,1
    - Dst: prepare_repo_settings
      Src: /src/git/read-cache.c:2830,1
    - Dst: get_index_format_default
      Src: /src/git/read-cache.c:2846,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2854,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2855,1
    - Dst: htonl
      Src: /src/git/read-cache.c:2856,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:2858,1
    - Dst: repo_config_get_index_threads
      Src: /src/git/read-cache.c:2860,1
    - Dst: record_ieot
      Src: /src/git/read-cache.c:2863,1
    - Dst: online_cpus
      Src: /src/git/read-cache.c:2873,1
    - Dst: xcalloc
      Src: /src/git/read-cache.c:2887,1
    - Dst: DIV_ROUND_UP
      Src: /src/git/read-cache.c:2889,1
    - Dst: hashfile_total
      Src: /src/git/read-cache.c:2893,1
    - Dst: ce_uptodate
      Src: /src/git/read-cache.c:2902,1
    - Dst: is_racy_timestamp
      Src: /src/git/read-cache.c:2902,1
    - Dst: ce_smudge_racily_clean_entry
      Src: /src/git/read-cache.c:2903,1
    - Dst: is_null_oid
      Src: /src/git/read-cache.c:2904,1
    - Dst: git_env_bool
      Src: /src/git/read-cache.c:2909,1
    - Dst: warning
      Src: /src/git/read-cache.c:2911,1
    - Dst: error
      Src: /src/git/read-cache.c:2913,1
    - Dst: hashfile_total
      Src: /src/git/read-cache.c:2930,1
    - Dst: ce_write_entry
      Src: /src/git/read-cache.c:2932,1
    - Dst: strbuf_release
      Src: /src/git/read-cache.c:2944,1
    - Dst: hashfile_total
      Src: /src/git/read-cache.c:2951,1
    - Dst: record_eoie
      Src: /src/git/read-cache.c:2957,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/read-cache.c:2958,1
    - Dst: init_fn
      Src: /src/git/read-cache.c:2959,1
    - Dst: strbuf_reset
      Src: /src/git/read-cache.c:2970,1
    - Dst: write_ieot_extension
      Src: /src/git/read-cache.c:2972,1
    - Dst: write_index_ext_header
      Src: /src/git/read-cache.c:2973,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:2974,1
    - Dst: strbuf_reset
      Src: /src/git/read-cache.c:2983,1
    - Dst: die
      Src: /src/git/read-cache.c:2986,1
    - Dst: _
      Src: /src/git/read-cache.c:2986,1
    - Dst: write_link_extension
      Src: /src/git/read-cache.c:2988,1
    - Dst: write_index_ext_header
      Src: /src/git/read-cache.c:2989,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:2991,1
    - Dst: strbuf_reset
      Src: /src/git/read-cache.c:2999,1
    - Dst: cache_tree_write
      Src: /src/git/read-cache.c:3001,1
    - Dst: write_index_ext_header
      Src: /src/git/read-cache.c:3002,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:3003,1
    - Dst: strbuf_reset
      Src: /src/git/read-cache.c:3011,1
    - Dst: resolve_undo_write
      Src: /src/git/read-cache.c:3013,1
    - Dst: write_index_ext_header
      Src: /src/git/read-cache.c:3014,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:3016,1
    - Dst: strbuf_reset
      Src: /src/git/read-cache.c:3024,1
    - Dst: write_untracked_extension
      Src: /src/git/read-cache.c:3026,1
    - Dst: write_index_ext_header
      Src: /src/git/read-cache.c:3027,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:3029,1
    - Dst: strbuf_reset
      Src: /src/git/read-cache.c:3037,1
    - Dst: write_fsmonitor_extension
      Src: /src/git/read-cache.c:3039,1
    - Dst: write_index_ext_header
      Src: /src/git/read-cache.c:3040,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:3041,1
    - Dst: write_index_ext_header
      Src: /src/git/read-cache.c:3048,1
    - Dst: strbuf_reset
      Src: /src/git/read-cache.c:3061,1
    - Dst: write_eoie_extension
      Src: /src/git/read-cache.c:3063,1
    - Dst: write_index_ext_header
      Src: /src/git/read-cache.c:3064,1
    - Dst: hashwrite
      Src: /src/git/read-cache.c:3065,1
    - Dst: finalize_hashfile
      Src: /src/git/read-cache.c:3076,1
    - Dst: close_tempfile_gently
      Src: /src/git/read-cache.c:3080,1
    - Dst: error
      Src: /src/git/read-cache.c:3081,1
    - Dst: _
      Src: /src/git/read-cache.c:3081,1
    - Dst: get_tempfile_path
      Src: /src/git/read-cache.c:3081,1
    - Dst: stat
      Src: /src/git/read-cache.c:3084,1
    - Dst: get_tempfile_path
      Src: /src/git/read-cache.c:3084,1
    - Dst: ST_MTIME_NSEC
      Src: /src/git/read-cache.c:3089,1
    - Dst: trace_performance_since
      Src: /src/git/read-cache.c:3090,1
    - Dst: trace2_data_intmax
      Src: /src/git/read-cache.c:3092,1
    - Dst: trace2_data_intmax
      Src: /src/git/read-cache.c:3094,1
    - Dst: free_hashfile
      Src: /src/git/read-cache.c:3101,1
    - Dst: strbuf_release
      Src: /src/git/read-cache.c:3102,1
    - Dst: free
      Src: /src/git/read-cache.c:3103,1
    - Dst: free
      Src: /src/git/read-cache.c:3104,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 201
    argCount: 4
    argNames:
    - istate
    - tempfile
    - write_extensions
    - flags
    argTypes:
    - struct index_state*
    - struct tempfile*
    - enum write_extensions
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 2806
    functionDepth: 9
    functionLinenumber: 2806
    functionLinenumberEnd: 3106
    functionName: do_write_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - hashfile_total
    - resolve_undo_write
    - trace2_data_intmax
    - record_eoie
    - write_eoie_extension
    - is_null_oid
    - ce_smudge_racily_clean_entry
    - get_index_format_default
    - hashfd
    - CALLOC_ARRAY
    - free
    - get_tempfile_path
    - error
    - trace_performance_since
    - strbuf_release
    - git_env_bool
    - DIV_ROUND_UP
    - online_cpus
    - die
    - record_ieot
    - is_racy_timestamp
    - htonl
    - repo_config_get_index_threads
    - xcalloc
    - write_link_extension
    - getnanotime
    - init_fn
    - ce_uptodate
    - write_index_ext_header
    - write_fsmonitor_extension
    - stat
    - hashwrite
    - free_hashfile
    - cache_tree_write
    - close_tempfile_gently
    - _
    - warning
    - write_untracked_extension
    - ce_write_entry
    - strbuf_reset
    - prepare_repo_settings
    - finalize_hashfile
    - write_ieot_extension
    - ST_MTIME_NSEC
    linkageType: ''
    returnType: int
    signature: "int do_write_index(struct index_state *istate, struct tempfile *tempfile,\n\t\t\t
      \ enum write_extensions write_extensions, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3108
    functionDepth: 0
    functionLinenumber: 3108
    functionLinenumberEnd: 3111
    functionName: set_alternate_index_output
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_alternate_index_output(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_lock_file_to
      Src: /src/git/read-cache.c:3116,1
    - Dst: commit_lock_file
      Src: /src/git/read-cache.c:3118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lk
    argTypes:
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3113
    functionDepth: 2
    functionLinenumber: 3113
    functionLinenumberEnd: 3119
    functionName: commit_locked_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - commit_lock_file_to
    - commit_lock_file
    linkageType: ''
    returnType: int
    signature: int commit_locked_index(struct lock_file *lk)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_sparse
      Src: /src/git/read-cache.c:3129,1
    - Dst: warning
      Src: /src/git/read-cache.c:3132,1
    - Dst: _
      Src: /src/git/read-cache.c:3132,1
    - Dst: trace2_region_enter_printf
      Src: /src/git/read-cache.c:3136,1
    - Dst: get_lock_file_path
      Src: /src/git/read-cache.c:3137,1
    - Dst: do_write_index
      Src: /src/git/read-cache.c:3138,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/read-cache.c:3139,1
    - Dst: get_lock_file_path
      Src: /src/git/read-cache.c:3140,1
    - Dst: ensure_full_index
      Src: /src/git/read-cache.c:3143,1
    - Dst: commit_locked_index
      Src: /src/git/read-cache.c:3148,1
    - Dst: close_lock_file_gently
      Src: /src/git/read-cache.c:3150,1
    - Dst: run_hooks_l
      Src: /src/git/read-cache.c:3152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - istate
    - lock
    - flags
    - write_extensions
    argTypes:
    - struct index_state*
    - struct lock_file*
    - unsigned
    - enum write_extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3159
      start: 3121
    functionDepth: 10
    functionLinenumber: 3121
    functionLinenumberEnd: 3159
    functionName: do_write_locked_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - close_lock_file_gently
    - run_hooks_l
    - trace2_region_leave_printf
    - commit_locked_index
    - do_write_index
    - trace2_region_enter_printf
    - _
    - warning
    - get_lock_file_path
    - convert_to_sparse
    linkageType: ''
    returnType: int
    signature: "int do_write_locked_index(struct index_state *istate,\n\t\t\t\t struct
      lock_file *lock,\n\t\t\t\t unsigned flags,\n\t\t\t\t enum write_extensions write_extensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_to_write_split_index
      Src: /src/git/read-cache.c:3166,1
    - Dst: do_write_locked_index
      Src: /src/git/read-cache.c:3167,1
    - Dst: finish_writing_split_index
      Src: /src/git/read-cache.c:3168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - istate
    - lock
    - flags
    argTypes:
    - struct index_state*
    - struct lock_file*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3170
      start: 3161
    functionDepth: 11
    functionLinenumber: 3161
    functionLinenumberEnd: 3170
    functionName: write_split_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - finish_writing_split_index
    - prepare_to_write_split_index
    - do_write_locked_index
    linkageType: ''
    returnType: int
    signature: "int write_split_index(struct index_state *istate,\n\t\t\t     struct
      lock_file *lock,\n\t\t\t     unsigned flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_expiry
      Src: /src/git/read-cache.c:3181,1
    - Dst: approxidate
      Src: /src/git/read-cache.c:3186,1
    - Dst: free
      Src: /src/git/read-cache.c:3189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3172
    functionDepth: 1
    functionLinenumber: 3172
    functionLinenumberEnd: 3193
    functionName: get_shared_index_expire_date
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - repo_config_get_expiry
    - approxidate
    - free
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_shared_index_expire_date(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_shared_index_expire_date
      Src: /src/git/read-cache.c:3201,1
    - Dst: stat
      Src: /src/git/read-cache.c:3204,1
    - Dst: error_errno
      Src: /src/git/read-cache.c:3205,1
    - Dst: _
      Src: /src/git/read-cache.c:3205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - shared_index_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3195
    functionDepth: 2
    functionLinenumber: 3195
    functionLinenumberEnd: 3210
    functionName: should_delete_shared_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - get_shared_index_expire_date
    - error_errno
    - stat
    - _
    linkageType: ''
    returnType: int
    signature: int should_delete_shared_index(const char *shared_index_path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/read-cache.c:3215,1
    - Dst: repo_get_git_dir
      Src: /src/git/read-cache.c:3215,1
    - Dst: error_errno
      Src: /src/git/read-cache.c:3218,1
    - Dst: _
      Src: /src/git/read-cache.c:3218,1
    - Dst: repo_get_git_dir
      Src: /src/git/read-cache.c:3219,1
    - Dst: readdir
      Src: /src/git/read-cache.c:3221,1
    - Dst: skip_prefix
      Src: /src/git/read-cache.c:3224,1
    - Dst: strcmp
      Src: /src/git/read-cache.c:3226,1
    - Dst: repo_git_path
      Src: /src/git/read-cache.c:3229,1
    - Dst: should_delete_shared_index
      Src: /src/git/read-cache.c:3230,1
    - Dst: unlink
      Src: /src/git/read-cache.c:3231,1
    - Dst: warning_errno
      Src: /src/git/read-cache.c:3232,1
    - Dst: _
      Src: /src/git/read-cache.c:3232,1
    - Dst: free
      Src: /src/git/read-cache.c:3234,1
    - Dst: closedir
      Src: /src/git/read-cache.c:3236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - current_hex
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3239
      start: 3212
    functionDepth: 3
    functionLinenumber: 3212
    functionLinenumberEnd: 3239
    functionName: clean_shared_index_files
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - error_errno
    - repo_git_path
    - closedir
    - warning_errno
    - should_delete_shared_index
    - opendir
    - strcmp
    - repo_get_git_dir
    - _
    - free
    - skip_prefix
    - readdir
    - unlink
    linkageType: ''
    returnType: int
    signature: int clean_shared_index_files(const char *current_hex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: move_cache_to_base_index
      Src: /src/git/read-cache.c:3248,1
    - Dst: convert_to_sparse
      Src: /src/git/read-cache.c:3249,1
    - Dst: trace2_region_enter_printf
      Src: /src/git/read-cache.c:3251,1
    - Dst: get_tempfile_path
      Src: /src/git/read-cache.c:3252,1
    - Dst: do_write_index
      Src: /src/git/read-cache.c:3253,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/read-cache.c:3254,1
    - Dst: get_tempfile_path
      Src: /src/git/read-cache.c:3255,1
    - Dst: ensure_full_index
      Src: /src/git/read-cache.c:3258,1
    - Dst: adjust_shared_perm
      Src: /src/git/read-cache.c:3262,1
    - Dst: get_tempfile_path
      Src: /src/git/read-cache.c:3262,1
    - Dst: error
      Src: /src/git/read-cache.c:3264,1
    - Dst: _
      Src: /src/git/read-cache.c:3264,1
    - Dst: get_tempfile_path
      Src: /src/git/read-cache.c:3264,1
    - Dst: repo_git_path
      Src: /src/git/read-cache.c:3268,1
    - Dst: oid_to_hex
      Src: /src/git/read-cache.c:3268,1
    - Dst: rename_tempfile
      Src: /src/git/read-cache.c:3269,1
    - Dst: oidcpy
      Src: /src/git/read-cache.c:3271,1
    - Dst: clean_shared_index_files
      Src: /src/git/read-cache.c:3272,1
    - Dst: oid_to_hex
      Src: /src/git/read-cache.c:3272,1
    - Dst: free
      Src: /src/git/read-cache.c:3275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - istate
    - temp
    - flags
    argTypes:
    - struct index_state*
    - struct tempfile**
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3241
    functionDepth: 10
    functionLinenumber: 3241
    functionLinenumberEnd: 3277
    functionName: write_shared_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - error
    - repo_git_path
    - oid_to_hex
    - rename_tempfile
    - convert_to_sparse
    - oidcpy
    - trace2_region_leave_printf
    - clean_shared_index_files
    - do_write_index
    - trace2_region_enter_printf
    - move_cache_to_base_index
    - _
    - free
    - adjust_shared_perm
    - get_tempfile_path
    linkageType: ''
    returnType: int
    signature: "int write_shared_index(struct index_state *istate,\n\t\t\t      struct
      tempfile **temp, unsigned flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_max_percent_split_change
      Src: /src/git/read-cache.c:3284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3307
      start: 3281
    functionDepth: 1
    functionLinenumber: 3281
    functionLinenumberEnd: 3307
    functionName: too_many_not_shared_entries
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - repo_config_get_max_percent_split_change
    linkageType: ''
    returnType: int
    signature: int too_many_not_shared_entries(struct index_state *istate)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/read-cache.c:3315,1
    - Dst: cache_tree_verify
      Src: /src/git/read-cache.c:3316,1
    - Dst: rollback_lock_file
      Src: /src/git/read-cache.c:3321,1
    - Dst: fill_fsmonitor_bitmap
      Src: /src/git/read-cache.c:3326,1
    - Dst: git_env_bool
      Src: /src/git/read-cache.c:3328,1
    - Dst: do_write_locked_index
      Src: /src/git/read-cache.c:3333,1
    - Dst: init_split_index
      Src: /src/git/read-cache.c:3340,1
    - Dst: too_many_not_shared_entries
      Src: /src/git/read-cache.c:3348,1
    - Dst: repo_git_path
      Src: /src/git/read-cache.c:3359,1
    - Dst: mks_tempfile_sm
      Src: /src/git/read-cache.c:3360,1
    - Dst: free
      Src: /src/git/read-cache.c:3361,1
    - Dst: do_write_locked_index
      Src: /src/git/read-cache.c:3363,1
    - Dst: write_shared_index
      Src: /src/git/read-cache.c:3367,1
    - Dst: is_tempfile_active
      Src: /src/git/read-cache.c:3370,1
    - Dst: delete_tempfile
      Src: /src/git/read-cache.c:3371,1
    - Dst: write_split_index
      Src: /src/git/read-cache.c:3378,1
    - Dst: is_null_oid
      Src: /src/git/read-cache.c:3381,1
    - Dst: repo_git_path
      Src: /src/git/read-cache.c:3382,1
    - Dst: oid_to_hex
      Src: /src/git/read-cache.c:3383,1
    - Dst: freshen_shared_index
      Src: /src/git/read-cache.c:3384,1
    - Dst: free
      Src: /src/git/read-cache.c:3385,1
    - Dst: rollback_lock_file
      Src: /src/git/read-cache.c:3390,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 3
    argNames:
    - istate
    - lock
    - flags
    argTypes:
    - struct index_state*
    - struct lock_file*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3309
    functionDepth: 12
    functionLinenumber: 3309
    functionLinenumberEnd: 3392
    functionName: write_locked_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 6
    functionsReached:
    - delete_tempfile
    - repo_git_path
    - mks_tempfile_sm
    - git_env_bool
    - write_split_index
    - oid_to_hex
    - do_write_locked_index
    - too_many_not_shared_entries
    - is_null_oid
    - rollback_lock_file
    - init_split_index
    - fill_fsmonitor_bitmap
    - write_shared_index
    - free
    - cache_tree_verify
    - is_tempfile_active
    - freshen_shared_index
    linkageType: ''
    returnType: int
    signature: "int write_locked_index(struct index_state *istate, struct lock_file
      *lock,\n\t\t       unsigned flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/read-cache.c:3410,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:3417,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:3420,1
    - Dst: make_empty_cache_entry
      Src: /src/git/read-cache.c:3421,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:3422,1
    - Dst: create_ce_flags
      Src: /src/git/read-cache.c:3423,1
    - Dst: add_index_entry
      Src: /src/git/read-cache.c:3426,1
    - Dst: error
      Src: /src/git/read-cache.c:3427,1
    - Dst: _
      Src: /src/git/read-cache.c:3427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3431
      start: 3404
    functionDepth: 8
    functionLinenumber: 3404
    functionLinenumberEnd: 3431
    functionName: repo_read_index_unmerged
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - error
    - ce_namelen
    - repo_read_index
    - make_empty_cache_entry
    - memcpy
    - add_index_entry
    - _
    - create_ce_flags
    - ce_stage
    linkageType: ''
    returnType: int
    signature: int repo_read_index_unmerged(struct repository *repo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/read-cache.c:3448,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:3454,1
    - Dst: memcmp
      Src: /src/git/read-cache.c:3455,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - istate
    - name
    - namelen
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3459
      start: 3442
    functionDepth: 4
    functionLinenumber: 3442
    functionLinenumberEnd: 3459
    functionName: index_name_is_other
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - index_name_pos
    - ce_namelen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int index_name_is_other(struct index_state *istate, const char *name,\n\t\t\tint
      namelen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/read-cache.c:3469,1
    - Dst: index_name_pos
      Src: /src/git/read-cache.c:3470,1
    - Dst: strcmp
      Src: /src/git/read-cache.c:3479,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:3481,1
    - Dst: odb_read_object
      Src: /src/git/read-cache.c:3486,1
    - Dst: free
      Src: /src/git/read-cache.c:3489,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - istate
    - path
    - size
    argTypes:
    - struct index_state*
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3461
    functionDepth: 4
    functionLinenumber: 3461
    functionLinenumberEnd: 3495
    functionName: read_blob_data_from_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 2
    functionsReached:
    - index_name_pos
    - strlen
    - strcmp
    - free
    - odb_read_object
    - ce_stage
    linkageType: ''
    returnType: void
    signature: "void *read_blob_data_from_index(struct index_state *istate,\n\t\t\t\tconst
      char *path, unsigned long *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct index_state*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3503
      start: 3497
    functionDepth: 0
    functionLinenumber: 3497
    functionLinenumberEnd: 3503
    functionName: move_index_extensions
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void move_index_extensions(struct index_state *dst, struct index_state
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ce_size
      Src: /src/git/read-cache.c:3508,1
    - Dst: make_empty_cache_entry
      Src: /src/git/read-cache.c:3510,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.c:3510,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:3513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ce
    - istate
    argTypes:
    - struct cache_entry*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3516
      start: 3505
    functionDepth: 6
    functionLinenumber: 3505
    functionLinenumberEnd: 3516
    functionName: dup_cache_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ce_namelen
    - ce_size
    - make_empty_cache_entry
    - memcpy
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *dup_cache_entry(const struct cache_entry *ce,\n\t\t\t\t
      \   struct index_state *istate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_validate_cache_entries
      Src: /src/git/read-cache.c:3520,1
    - Dst: memset
      Src: /src/git/read-cache.c:3521,1
    - Dst: cache_entry_size
      Src: /src/git/read-cache.c:3521,1
    - Dst: free
      Src: /src/git/read-cache.c:3526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ce
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3527
      start: 3518
    functionDepth: 1
    functionLinenumber: 3518
    functionLinenumberEnd: 3527
    functionName: discard_cache_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 7
    functionsReached:
    - cache_entry_size
    - memset
    - should_validate_cache_entries
    - free
    linkageType: ''
    returnType: void
    signature: void discard_cache_entry(struct cache_entry *ce)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/read-cache.c:3534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3541
      start: 3529
    functionDepth: 0
    functionLinenumber: 3529
    functionLinenumberEnd: 3541
    functionName: should_validate_cache_entries
    functionSourceFile: /src/git/read-cache.c
    functionUses: 3
    functionsReached:
    - getenv
    linkageType: ''
    returnType: int
    signature: int should_validate_cache_entries(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CACHE_EXT
      Src: /src/git/read-cache.c:3569,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:3574,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:3583,1
    - Dst: init_fn
      Src: /src/git/read-cache.c:3600,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:3609,1
    - Dst: ntohl
      Src: /src/git/read-cache.c:3610,1
    - Dst: git_hash_update
      Src: /src/git/read-cache.c:3616,1
    - Dst: git_hash_final
      Src: /src/git/read-cache.c:3621,1
    - Dst: hasheq
      Src: /src/git/read-cache.c:3622,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - mmap
    - mmap_size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3630
      start: 3546
    functionDepth: 1
    functionLinenumber: 3546
    functionLinenumberEnd: 3630
    functionName: read_eoie_extension
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - CACHE_EXT
    - hasheq
    - git_hash_final
    - ntohl
    - get_be32
    - memcpy
    - git_hash_update
    - init_fn
    linkageType: ''
    returnType: size_t
    signature: size_t read_eoie_extension(const char *mmap, size_t mmap_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_be32
      Src: /src/git/read-cache.c:3638,1
    - Dst: strbuf_add
      Src: /src/git/read-cache.c:3639,1
    - Dst: git_hash_final
      Src: /src/git/read-cache.c:3642,1
    - Dst: strbuf_add
      Src: /src/git/read-cache.c:3643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sb
    - eoie_context
    - offset
    argTypes:
    - struct strbuf*
    - struct git_hash_ctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3632
    functionDepth: 1
    functionLinenumber: 3632
    functionLinenumberEnd: 3644
    functionName: write_eoie_extension
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - put_be32
    - git_hash_final
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void write_eoie_extension(struct strbuf *sb, struct git_hash_ctx *eoie_context,
      size_t offset)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_be32
      Src: /src/git/read-cache.c:3659,1
    - Dst: CACHE_EXT
      Src: /src/git/read-cache.c:3660,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:3671,1
    - Dst: error
      Src: /src/git/read-cache.c:3673,1
    - Dst: error
      Src: /src/git/read-cache.c:3681,1
    - Dst: xmalloc
      Src: /src/git/read-cache.c:3684,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:3688,1
    - Dst: get_be32
      Src: /src/git/read-cache.c:3690,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - mmap
    - mmap_size
    - offset
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3695
      start: 3648
    functionDepth: 1
    functionLinenumber: 3648
    functionLinenumberEnd: 3695
    functionName: read_ieot_extension
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - error
    - CACHE_EXT
    - xmalloc
    - get_be32
    linkageType: ''
    returnType: struct index_entry_offset_table
    signature: struct index_entry_offset_table *read_ieot_extension(const char *mmap,
      size_t mmap_size, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_be32
      Src: /src/git/read-cache.c:3703,1
    - Dst: strbuf_add
      Src: /src/git/read-cache.c:3704,1
    - Dst: put_be32
      Src: /src/git/read-cache.c:3710,1
    - Dst: strbuf_add
      Src: /src/git/read-cache.c:3711,1
    - Dst: put_be32
      Src: /src/git/read-cache.c:3714,1
    - Dst: strbuf_add
      Src: /src/git/read-cache.c:3715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - sb
    - ieot
    argTypes:
    - struct strbuf*
    - struct index_entry_offset_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3717
      start: 3697
    functionDepth: 1
    functionLinenumber: 3697
    functionLinenumberEnd: 3717
    functionName: write_ieot_extension
    functionSourceFile: /src/git/read-cache.c
    functionUses: 1
    functionsReached:
    - put_be32
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void write_ieot_extension(struct strbuf *sb, struct index_entry_offset_table
      *ieot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/read-cache.c:3728,1
    - Dst: must_prefetch
      Src: /src/git/read-cache.c:3728,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/read-cache.c:3730,1
    - Dst: oid_array_append
      Src: /src/git/read-cache.c:3734,1
    - Dst: promisor_remote_get_direct
      Src: /src/git/read-cache.c:3736,1
    - Dst: oid_array_clear
      Src: /src/git/read-cache.c:3738,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - istate
    - must_prefetch
    argTypes:
    - struct index_state*
    - must_prefetch_predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3739
      start: 3719
    functionDepth: 1
    functionLinenumber: 3719
    functionLinenumberEnd: 3739
    functionName: prefetch_cache_entries
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - must_prefetch
    - oid_array_clear
    - S_ISGITLINK
    - odb_read_object_info_extended
    - promisor_remote_get_direct
    - oid_array_append
    linkageType: ''
    returnType: void
    signature: "void prefetch_cache_entries(const struct index_state *istate,\n\t\t\t
      \   must_prefetch_predicate must_prefetch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/read-cache.c:3750,1
    - Dst: strlen
      Src: /src/git/read-cache.c:3753,1
    - Dst: make_empty_cache_entry
      Src: /src/git/read-cache.c:3754,1
    - Dst: create_ce_mode
      Src: /src/git/read-cache.c:3756,1
    - Dst: create_ce_flags
      Src: /src/git/read-cache.c:3757,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:3759,1
    - Dst: memcpy
      Src: /src/git/read-cache.c:3760,1
    - Dst: oidcpy
      Src: /src/git/read-cache.c:3761,1
    - Dst: add_index_entry
      Src: /src/git/read-cache.c:3762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - istate
    - oid
    - base
    - pathname
    - mode
    - opt
    argTypes:
    - struct index_state*
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3763
      start: 3741
    functionDepth: 8
    functionLinenumber: 3741
    functionLinenumberEnd: 3763
    functionName: read_one_entry_opt
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - oidcpy
    - make_empty_cache_entry
    - memcpy
    - add_index_entry
    - strlen
    - create_ce_mode
    - create_ce_flags
    linkageType: ''
    returnType: int
    signature: "int read_one_entry_opt(struct index_state *istate,\n\t\t\t      const
      struct object_id *oid,\n\t\t\t      struct strbuf *base,\n\t\t\t      const
      char *pathname,\n\t\t\t      unsigned mode, int opt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_one_entry_opt
      Src: /src/git/read-cache.c:3770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - oid
    - base
    - pathname
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3773
      start: 3765
    functionDepth: 9
    functionLinenumber: 3765
    functionLinenumberEnd: 3773
    functionName: read_one_entry
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - read_one_entry_opt
    linkageType: ''
    returnType: int
    signature: "int read_one_entry(const struct object_id *oid, struct strbuf *base,\n\t\t\t
      \ const char *pathname, unsigned mode,\n\t\t\t  void *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_one_entry_opt
      Src: /src/git/read-cache.c:3784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - oid
    - base
    - pathname
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3786
      start: 3779
    functionDepth: 9
    functionLinenumber: 3779
    functionLinenumberEnd: 3786
    functionName: read_one_entry_quick
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - read_one_entry_opt
    linkageType: ''
    returnType: int
    signature: "int read_one_entry_quick(const struct object_id *oid, struct strbuf
      *base,\n\t\t\t\tconst char *pathname, unsigned mode,\n\t\t\t\tvoid *context)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/read-cache.c:3807,1
    - Dst: die
      Src: /src/git/read-cache.c:3808,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/read-cache.c:3809,1
    - Dst: die
      Src: /src/git/read-cache.c:3811,1
    - Dst: ensure_full_index
      Src: /src/git/read-cache.c:3815,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:3818,1
    - Dst: parse_pathspec
      Src: /src/git/read-cache.c:3826,1
    - Dst: memset
      Src: /src/git/read-cache.c:3829,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:3838,1
    - Dst: read_tree
      Src: /src/git/read-cache.c:3844,1
    - Dst: clear_pathspec
      Src: /src/git/read-cache.c:3845,1
    - Dst: die
      Src: /src/git/read-cache.c:3847,1
    - Dst: cache_tree_free
      Src: /src/git/read-cache.c:3853,1
    - Dst: QSORT
      Src: /src/git/read-cache.c:3854,1
    - Dst: ce_stage
      Src: /src/git/read-cache.c:3859,1
    - Dst: strcmp
      Src: /src/git/read-cache.c:3872,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - istate
    - tree_name
    - prefix
    argTypes:
    - struct index_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3876
      start: 3796
    functionDepth: 1
    functionLinenumber: 3796
    functionLinenumberEnd: 3876
    functionName: overlay_tree_on_index
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - memset
    - clear_pathspec
    - die
    - repo_parse_tree_indirect
    - read_tree
    - repo_get_oid
    - QSORT
    - cache_tree_free
    - strcmp
    - parse_pathspec
    - ce_stage
    linkageType: ''
    returnType: void
    signature: "void overlay_tree_on_index(struct index_state *istate,\n\t\t\t   const
      char *tree_name, const char *prefix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - p
    - data
    argTypes:
    - struct diff_filepair*
    - struct update_callback_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3907
      start: 3888
    functionDepth: 0
    functionLinenumber: 3888
    functionLinenumberEnd: 3907
    functionName: fix_unmerged_status
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fix_unmerged_status(struct diff_filepair *p,\n\t\t\t       struct
      update_callback_data *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/read-cache.c:3921,1
    - Dst: S_ISDIR
      Src: /src/git/read-cache.c:3921,1
    - Dst: submodule_from_path
      Src: /src/git/read-cache.c:3925,1
    - Dst: null_oid
      Src: /src/git/read-cache.c:3925,1
    - Dst: strcmp
      Src: /src/git/read-cache.c:3926,1
    - Dst: trace_printf
      Src: /src/git/read-cache.c:3929,1
    - Dst: trace_printf
      Src: /src/git/read-cache.c:3930,1
    - Dst: xstrdup
      Src: /src/git/read-cache.c:3940,1
    - Dst: strip_dir_trailing_slashes
      Src: /src/git/read-cache.c:3941,1
    - Dst: strcmp
      Src: /src/git/read-cache.c:3942,1
    - Dst: FREE_AND_NULL
      Src: /src/git/read-cache.c:3944,1
    - Dst: FREE_AND_NULL
      Src: /src/git/read-cache.c:3947,1
    - Dst: trace_printf
      Src: /src/git/read-cache.c:3954,1
    - Dst: advise_if_enabled
      Src: /src/git/read-cache.c:3957,1
    - Dst: _
      Src: /src/git/read-cache.c:3958,1
    - Dst: trace_printf
      Src: /src/git/read-cache.c:3965,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 4
    argNames:
    - path
    - repo
    - pathspec
    - ignored_too
    argTypes:
    - char*
    - struct repository*
    - struct pathspec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3967
      start: 3909
    functionDepth: 2
    functionLinenumber: 3909
    functionLinenumberEnd: 3967
    functionName: skip_submodule
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - S_ISDIR
    - strip_dir_trailing_slashes
    - trace_printf
    - advise_if_enabled
    - FREE_AND_NULL
    - null_oid
    - strcmp
    - lstat
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int skip_submodule(const char *path,\n\t\t\t\t\t\tstruct repository
      *repo,\n\t\t\t\t\t\tstruct pathspec *pathspec,\n\t\t\t\t\t\tint ignored_too)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: path_in_sparse_checkout
      Src: /src/git/read-cache.c:3980,1
    - Dst: fix_unmerged_status
      Src: /src/git/read-cache.c:3983,1
    - Dst: die
      Src: /src/git/read-cache.c:3985,1
    - Dst: _
      Src: /src/git/read-cache.c:3985,1
    - Dst: skip_submodule
      Src: /src/git/read-cache.c:3988,1
    - Dst: add_file_to_index
      Src: /src/git/read-cache.c:3993,1
    - Dst: die
      Src: /src/git/read-cache.c:3995,1
    - Dst: _
      Src: /src/git/read-cache.c:3995,1
    - Dst: remove_file_from_index
      Src: /src/git/read-cache.c:4003,1
    - Dst: printf
      Src: /src/git/read-cache.c:4005,1
    - Dst: _
      Src: /src/git/read-cache.c:4005,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 3
    argNames:
    - q
    - UNUSED
    - cbdata
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3969
    functionDepth: 11
    functionLinenumber: 3969
    functionLinenumberEnd: 4009
    functionName: update_callback
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - skip_submodule
    - die
    - add_file_to_index
    - remove_file_from_index
    - fix_unmerged_status
    - path_in_sparse_checkout
    - _
    - printf
    linkageType: ''
    returnType: void
    signature: "void update_callback(struct diff_queue_struct *q,\n\t\t\t\t\t\t\tstruct
      diff_options *opt UNUSED, void *cbdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/read-cache.c:4019,1
    - Dst: repo_init_revisions
      Src: /src/git/read-cache.c:4027,1
    - Dst: setup_revisions
      Src: /src/git/read-cache.c:4028,1
    - Dst: copy_pathspec
      Src: /src/git/read-cache.c:4030,1
    - Dst: odb_transaction_begin
      Src: /src/git/read-cache.c:4045,1
    - Dst: run_diff_files
      Src: /src/git/read-cache.c:4046,1
    - Dst: odb_transaction_commit
      Src: /src/git/read-cache.c:4047,1
    - Dst: release_revisions
      Src: /src/git/read-cache.c:4049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 7
    argNames:
    - repo
    - prefix
    - pathspec
    - ps_matched
    - include_sparse
    - flags
    - ignored_too
    argTypes:
    - struct repository*
    - char*
    - struct pathspec*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4051
      start: 4011
    functionDepth: 12
    functionLinenumber: 4011
    functionLinenumberEnd: 4051
    functionName: add_files_to_cache
    functionSourceFile: /src/git/read-cache.c
    functionUses: 0
    functionsReached:
    - memset
    - release_revisions
    - copy_pathspec
    - odb_transaction_commit
    - repo_init_revisions
    - odb_transaction_begin
    - setup_revisions
    - run_diff_files
    linkageType: ''
    returnType: int
    signature: "int add_files_to_cache(struct repository *repo, const char *prefix,\n\t\t
      \      const struct pathspec *pathspec, char *ps_matched,\n\t\t       int include_sparse,
      int flags, int ignored_too )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/merge.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: merge_argument
    functionSourceFile: /src/git/merge.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    linkageType: ''
    returnType: char
    signature: char *merge_argument(struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/merge.c:31,1
    - Dst: strvec_pushf
      Src: /src/git/merge.c:33,1
    - Dst: strvec_push
      Src: /src/git/merge.c:35,1
    - Dst: merge_argument
      Src: /src/git/merge.c:35,1
    - Dst: strvec_push
      Src: /src/git/merge.c:36,1
    - Dst: strvec_push
      Src: /src/git/merge.c:37,1
    - Dst: strvec_push
      Src: /src/git/merge.c:39,1
    - Dst: merge_argument
      Src: /src/git/merge.c:39,1
    - Dst: run_command
      Src: /src/git/merge.c:42,1
    - Dst: discard_index
      Src: /src/git/merge.c:44,1
    - Dst: repo_read_index
      Src: /src/git/merge.c:45,1
    - Dst: die
      Src: /src/git/merge.c:46,1
    - Dst: _
      Src: /src/git/merge.c:46,1
    - Dst: resolve_undo_clear_index
      Src: /src/git/merge.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - r
    - strategy
    - xopts_nr
    - xopts
    - common
    - head_arg
    - remotes
    argTypes:
    - struct repository*
    - char*
    - size_t
    - char**
    - struct commit_list*
    - char*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 8
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: try_merge_command
    functionSourceFile: /src/git/merge.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - resolve_undo_clear_index
    - die
    - run_command
    - repo_read_index
    - merge_argument
    - _
    - strvec_pushf
    - discard_index
    linkageType: ''
    returnType: int
    signature: "int try_merge_command(struct repository *r,\n\t\t      const char
      *strategy, size_t xopts_nr,\n\t\t      const char **xopts, struct commit_list
      *common,\n\t\t      const char *head_arg, struct commit_list *remotes)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: refresh_index
      Src: /src/git/merge.c:63,1
    - Dst: repo_hold_locked_index
      Src: /src/git/merge.c:65,1
    - Dst: memset
      Src: /src/git/merge.c:68,1
    - Dst: memset
      Src: /src/git/merge.c:69,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/merge.c:71,1
    - Dst: rollback_lock_file
      Src: /src/git/merge.c:73,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/merge.c:76,1
    - Dst: rollback_lock_file
      Src: /src/git/merge.c:78,1
    - Dst: repo_parse_tree
      Src: /src/git/merge.c:82,1
    - Dst: rollback_lock_file
      Src: /src/git/merge.c:83,1
    - Dst: init_tree_desc
      Src: /src/git/merge.c:86,1
    - Dst: memset
      Src: /src/git/merge.c:90,1
    - Dst: init_checkout_metadata
      Src: /src/git/merge.c:100,1
    - Dst: setup_unpack_trees_porcelain
      Src: /src/git/merge.c:101,1
    - Dst: unpack_trees
      Src: /src/git/merge.c:103,1
    - Dst: rollback_lock_file
      Src: /src/git/merge.c:104,1
    - Dst: clear_unpack_trees_porcelain
      Src: /src/git/merge.c:105,1
    - Dst: clear_unpack_trees_porcelain
      Src: /src/git/merge.c:108,1
    - Dst: write_locked_index
      Src: /src/git/merge.c:110,1
    - Dst: error
      Src: /src/git/merge.c:111,1
    - Dst: _
      Src: /src/git/merge.c:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 4
    argNames:
    - r
    - head
    - remote
    - overwrite_ignore
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 52
    functionDepth: 13
    functionLinenumber: 52
    functionLinenumberEnd: 113
    functionName: checkout_fast_forward
    functionSourceFile: /src/git/merge.c
    functionUses: 0
    functionsReached:
    - error
    - memset
    - repo_parse_tree_indirect
    - init_checkout_metadata
    - setup_unpack_trees_porcelain
    - clear_unpack_trees_porcelain
    - repo_parse_tree
    - write_locked_index
    - repo_hold_locked_index
    - rollback_lock_file
    - unpack_trees
    - refresh_index
    - _
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int checkout_fast_forward(struct repository *r,\n\t\t\t  const struct
      object_id *head,\n\t\t\t  const struct object_id *remote,\n\t\t\t  int overwrite_ignore)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/versioncmp.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - tagname
    - suffix
    - suffix_len
    - start
    - conf_pos
    - match
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    - struct suffix_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: find_better_matching_suffix
    functionSourceFile: /src/git/versioncmp.c
    functionUses: 0
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: void
    signature: "void find_better_matching_suffix(const char *tagname, const char *suffix,\n\t\t\t\t\tint
      suffix_len, int start, int conf_pos,\n\t\t\t\t\tstruct suffix_match *match)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/versioncmp.c:85,1
    - Dst: find_better_matching_suffix
      Src: /src/git/versioncmp.c:90,1
    - Dst: find_better_matching_suffix
      Src: /src/git/versioncmp.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - s1
    - s2
    - 'off'
    - diff
    argTypes:
    - char*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 110
    functionName: swap_prereleases
    functionSourceFile: /src/git/versioncmp.c
    functionUses: 0
    functionsReached:
    - strlen
    - find_better_matching_suffix
    linkageType: ''
    returnType: int
    signature: "int swap_prereleases(const char *s1,\n\t\t\t    const char *s2,\n\t\t\t
      \   int off,\n\t\t\t    int *diff)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/git/versioncmp.c:153,1
    - Dst: isdigit
      Src: /src/git/versioncmp.c:162,1
    - Dst: repo_config_get_string_multi
      Src: /src/git/versioncmp.c:170,1
    - Dst: repo_config_get_string_multi
      Src: /src/git/versioncmp.c:171,1
    - Dst: warning
      Src: /src/git/versioncmp.c:174,1
    - Dst: swap_prereleases
      Src: /src/git/versioncmp.c:182,1
    - Dst: isdigit
      Src: /src/git/versioncmp.c:186,1
    - Dst: isdigit
      Src: /src/git/versioncmp.c:193,1
    - Dst: isdigit
      Src: /src/git/versioncmp.c:194,1
    - Dst: isdigit
      Src: /src/git/versioncmp.c:197,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 202
    functionName: versioncmp
    functionSourceFile: /src/git/versioncmp.c
    functionUses: 0
    functionsReached:
    - isdigit
    - warning
    - repo_config_get_string_multi
    - swap_prereleases
    linkageType: ''
    returnType: int
    signature: int versioncmp(const char *s1, const char *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: OPT_RERERE_AUTOUPDATE
    functionSourceFile: /src/git/rerere.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_RERERE_AUTOUPDATE(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/kwset.c:47,1
    - Dst: xmalloc
      Src: /src/git/kwset.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: obstack_chunk_alloc
    functionSourceFile: /src/git/kwset.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - BUG
    linkageType: ''
    returnType: void
    signature: void *obstack_chunk_alloc(long size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: U
    functionSourceFile: /src/git/kwset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/kwset.c:135,1
    - Dst: obstack_init
      Src: /src/git/kwset.c:137,1
    - Dst: obstack_alloc
      Src: /src/git/kwset.c:140,1
    - Dst: kwsfree
      Src: /src/git/kwset.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - trans
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 159
    functionName: kwsalloc
    functionSourceFile: /src/git/kwset.c
    functionUses: 0
    functionsReached:
    - obstack_alloc
    - xmalloc
    - obstack_init
    - kwsfree
    linkageType: ''
    returnType: kwset_t
    signature: kwset_t kwsalloc (unsigned char const *trans)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: U
      Src: /src/git/kwset.c:187,1
    - Dst: obstack_alloc
      Src: /src/git/kwset.c:214,1
    - Dst: obstack_alloc
      Src: /src/git/kwset.c:220,1
    - Dst: obstack_free
      Src: /src/git/kwset.c:224,1
    - Dst: abort
      Src: /src/git/kwset.c:276,1
    - Dst: abort
      Src: /src/git/kwset.c:296,1
    - Dst: abort
      Src: /src/git/kwset.c:300,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 125
    argCount: 3
    argNames:
    - kws
    - text
    - len
    argTypes:
    - kwset_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 326
    functionName: kwsincr
    functionSourceFile: /src/git/kwset.c
    functionUses: 0
    functionsReached:
    - U
    - obstack_free
    - obstack_alloc
    - abort
    linkageType: ''
    returnType: char
    signature: 'char *

      kwsincr (kwset_t kws, char const *text, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: enqueue
      Src: /src/git/kwset.c:335,1
    - Dst: enqueue
      Src: /src/git/kwset.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tree
    - last
    argTypes:
    - struct tree*
    - struct trie**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 338
    functionName: enqueue
    functionSourceFile: /src/git/kwset.c
    functionUses: 1
    functionsReached:
    - enqueue
    linkageType: ''
    returnType: void
    signature: void enqueue (struct tree *tree, struct trie **last)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: treefails
      Src: /src/git/kwset.c:352,1
    - Dst: treefails
      Src: /src/git/kwset.c:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - tree
    - fail
    - recourse
    argTypes:
    - struct tree*
    - struct trie*
    - struct trie*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 374
    functionName: treefails
    functionSourceFile: /src/git/kwset.c
    functionUses: 1
    functionsReached:
    - treefails
    linkageType: ''
    returnType: void
    signature: "void treefails (register struct tree const *tree, struct trie const
      *fail,\n\t   struct trie *recourse)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: treedelta
      Src: /src/git/kwset.c:385,1
    - Dst: treedelta
      Src: /src/git/kwset.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - tree
    - depth
    - delta
    argTypes:
    - struct tree*
    - unsigned int
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 389
    functionName: treedelta
    functionSourceFile: /src/git/kwset.c
    functionUses: 1
    functionsReached:
    - treedelta
    linkageType: ''
    returnType: void
    signature: "void treedelta (register struct tree const *tree,\n\t   register unsigned
      int depth,\n\t   unsigned char delta[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hasevery
      Src: /src/git/kwset.c:397,1
    - Dst: hasevery
      Src: /src/git/kwset.c:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct tree*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 407
    functionName: hasevery
    functionSourceFile: /src/git/kwset.c
    functionUses: 1
    functionsReached:
    - hasevery
    linkageType: ''
    returnType: int
    signature: int hasevery (register struct tree const *a, register struct tree const
      *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: treenext
      Src: /src/git/kwset.c:416,1
    - Dst: treenext
      Src: /src/git/kwset.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tree
    - next
    argTypes:
    - struct tree*
    - struct trie*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 419
    functionName: treenext
    functionSourceFile: /src/git/kwset.c
    functionUses: 1
    functionsReached:
    - treenext
    linkageType: ''
    returnType: void
    signature: void treenext (struct tree const *tree, struct trie *next[])
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/kwset.c:437,1
    - Dst: obstack_alloc
      Src: /src/git/kwset.c:446,1
    - Dst: U
      Src: /src/git/kwset.c:456,1
    - Dst: enqueue
      Src: /src/git/kwset.c:475,1
    - Dst: treedelta
      Src: /src/git/kwset.c:481,1
    - Dst: treefails
      Src: /src/git/kwset.c:484,1
    - Dst: hasevery
      Src: /src/git/kwset.c:493,1
    - Dst: treenext
      Src: /src/git/kwset.c:519,1
    - Dst: U
      Src: /src/git/kwset.c:523,1
    - Dst: COPY_ARRAY
      Src: /src/git/kwset.c:525,1
    - Dst: U
      Src: /src/git/kwset.c:531,1
    - Dst: memcpy
      Src: /src/git/kwset.c:533,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 1
    argNames:
    - kws
    argTypes:
    - kwset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 536
    functionName: kwsprep
    functionSourceFile: /src/git/kwset.c
    functionUses: 0
    functionsReached:
    - U
    - memset
    - hasevery
    - COPY_ARRAY
    - obstack_alloc
    - memcpy
    - treedelta
    - treenext
    - enqueue
    - treefails
    linkageType: ''
    returnType: char
    signature: 'char *

      kwsprep (kwset_t kws)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/kwset.c:556,1
    - Dst: U
      Src: /src/git/kwset.c:562,1
    - Dst: U
      Src: /src/git/kwset.c:573,1
    - Dst: U
      Src: /src/git/kwset.c:574,1
    - Dst: U
      Src: /src/git/kwset.c:577,1
    - Dst: U
      Src: /src/git/kwset.c:578,1
    - Dst: U
      Src: /src/git/kwset.c:579,1
    - Dst: U
      Src: /src/git/kwset.c:582,1
    - Dst: U
      Src: /src/git/kwset.c:583,1
    - Dst: U
      Src: /src/git/kwset.c:584,1
    - Dst: U
      Src: /src/git/kwset.c:587,1
    - Dst: U
      Src: /src/git/kwset.c:588,1
    - Dst: U
      Src: /src/git/kwset.c:592,1
    - Dst: U
      Src: /src/git/kwset.c:594,1
    - Dst: U
      Src: /src/git/kwset.c:594,1
    - Dst: U
      Src: /src/git/kwset.c:605,1
    - Dst: U
      Src: /src/git/kwset.c:608,1
    - Dst: U
      Src: /src/git/kwset.c:611,1
    - Dst: U
      Src: /src/git/kwset.c:613,1
    - Dst: U
      Src: /src/git/kwset.c:613,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 3
    argNames:
    - kws
    - text
    - size
    argTypes:
    - kwset_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 622
    functionName: bmexec
    functionSourceFile: /src/git/kwset.c
    functionUses: 0
    functionsReached:
    - U
    - memchr
    linkageType: ''
    returnType: size_t
    signature: size_t bmexec (kwset_t kws, char const *text, size_t size)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: U
      Src: /src/git/kwset.c:673,1
    - Dst: U
      Src: /src/git/kwset.c:674,1
    - Dst: U
      Src: /src/git/kwset.c:692,1
    - Dst: U
      Src: /src/git/kwset.c:743,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 112
    argCount: 4
    argNames:
    - kws
    - text
    - len
    - kwsmatch
    argTypes:
    - kwset_t
    - char*
    - size_t
    - struct kwsmatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 779
    functionName: cwexec
    functionSourceFile: /src/git/kwset.c
    functionUses: 0
    functionsReached:
    - U
    linkageType: ''
    returnType: size_t
    signature: size_t cwexec (kwset_t kws, char const *text, size_t len, struct kwsmatch
      *kwsmatch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bmexec
      Src: /src/git/kwset.c:795,1
    - Dst: cwexec
      Src: /src/git/kwset.c:805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - kws
    - text
    - size
    - kwsmatch
    argTypes:
    - kwset_t
    - char*
    - size_t
    - struct kwsmatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 806
    functionName: kwsexec
    functionSourceFile: /src/git/kwset.c
    functionUses: 0
    functionsReached:
    - cwexec
    - bmexec
    linkageType: ''
    returnType: size_t
    signature: "size_t kwsexec (kwset_t kws, char const *text, size_t size,\n\t struct
      kwsmatch *kwsmatch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: obstack_free
      Src: /src/git/kwset.c:815,1
    - Dst: free
      Src: /src/git/kwset.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - kws
    argTypes:
    - kwset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 817
    functionName: kwsfree
    functionSourceFile: /src/git/kwset.c
    functionUses: 1
    functionsReached:
    - obstack_free
    - free
    linkageType: ''
    returnType: void
    signature: void kwsfree (kwset_t kws)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/gettext.c:20,1
    - Dst: getenv
      Src: /src/git/gettext.c:23,1
    - Dst: getenv
      Src: /src/git/gettext.c:25,1
    - Dst: strchr
      Src: /src/git/gettext.c:30,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: locale_charset
    functionSourceFile: /src/git/gettext.c
    functionUses: 0
    functionsReached:
    - getenv
    - strchr
    linkageType: ''
    returnType: char
    signature: char *locale_charset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: locale_charset
    functionSourceFile: /src/git/gettext.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: locale_charset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/gettext.c:54,1
    - Dst: setlocale
      Src: /src/git/gettext.c:59,1
    - Dst: strcmp
      Src: /src/git/gettext.c:61,1
    - Dst: strcmp
      Src: /src/git/gettext.c:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: get_preferred_languages
    functionSourceFile: /src/git/gettext.c
    functionUses: 1
    functionsReached:
    - getenv
    - setlocale
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *get_preferred_languages(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/gettext.c:70,1
    - Dst: va_start
      Src: /src/git/gettext.c:76,1
    - Dst: vsnprintf
      Src: /src/git/gettext.c:77,1
    - Dst: va_end
      Src: /src/git/gettext.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: test_vsnprintf
    functionSourceFile: /src/git/gettext.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - vsnprintf
    - format
    linkageType: ''
    returnType: int
    signature: int test_vsnprintf(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: locale_charset
      Src: /src/git/gettext.c:84,1
    - Dst: bind_textdomain_codeset
      Src: /src/git/gettext.c:85,1
    - Dst: test_vsnprintf
      Src: /src/git/gettext.c:101,1
    - Dst: setlocale
      Src: /src/git/gettext.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - domain
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: init_gettext_charset
    functionSourceFile: /src/git/gettext.c
    functionUses: 0
    functionsReached:
    - locale_charset
    - test_vsnprintf
    - setlocale
    - bind_textdomain_codeset
    linkageType: ''
    returnType: void
    signature: void init_gettext_charset(const char *domain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/gettext.c:109,1
    - Dst: system_path
      Src: /src/git/gettext.c:113,1
    - Dst: is_directory
      Src: /src/git/gettext.c:115,1
    - Dst: free
      Src: /src/git/gettext.c:116,1
    - Dst: bindtextdomain
      Src: /src/git/gettext.c:120,1
    - Dst: setlocale
      Src: /src/git/gettext.c:121,1
    - Dst: setlocale
      Src: /src/git/gettext.c:122,1
    - Dst: init_gettext_charset
      Src: /src/git/gettext.c:123,1
    - Dst: textdomain
      Src: /src/git/gettext.c:124,1
    - Dst: free
      Src: /src/git/gettext.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: git_setup_gettext
    functionSourceFile: /src/git/gettext.c
    functionUses: 0
    functionsReached:
    - textdomain
    - bindtextdomain
    - init_gettext_charset
    - free
    - is_directory
    - getenv
    - system_path
    - setlocale
    linkageType: ''
    returnType: void
    signature: void git_setup_gettext(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_utf8_locale
      Src: /src/git/gettext.c:136,1
    - Dst: utf8_strwidth
      Src: /src/git/gettext.c:138,1
    - Dst: strlen
      Src: /src/git/gettext.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: gettext_width
    functionSourceFile: /src/git/gettext.c
    functionUses: 0
    functionsReached:
    - is_utf8_locale
    - utf8_strwidth
    - strlen
    linkageType: ''
    returnType: int
    signature: int gettext_width(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/gettext.c:146,1
    - Dst: getenv
      Src: /src/git/gettext.c:148,1
    - Dst: getenv
      Src: /src/git/gettext.c:150,1
    - Dst: strchr
      Src: /src/git/gettext.c:153,1
    - Dst: strchr
      Src: /src/git/gettext.c:154,1
    - Dst: xstrdup
      Src: /src/git/gettext.c:155,1
    - Dst: is_encoding_utf8
      Src: /src/git/gettext.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 159
    functionName: is_utf8_locale
    functionSourceFile: /src/git/gettext.c
    functionUses: 1
    functionsReached:
    - getenv
    - is_encoding_utf8
    - strchr
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int is_utf8_locale(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - code
    - result
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: missing__target
    functionSourceFile: /src/git/http.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int missing__target(int code, int result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: missing_target
    functionSourceFile: /src/git/http.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: missing_target(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: maximum_signed_value_of_type
      Src: /src/git/http.h:110,1
    - Dst: die
      Src: /src/git/http.h:111,1
    - Dst: _
      Src: /src/git/http.h:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 114
    functionName: cast_size_t_to_curl_off_t
    functionSourceFile: /src/git/http.h
    functionUses: 0
    functionsReached:
    - maximum_signed_value_of_type
    - die
    - _
    linkageType: ''
    returnType: curl_off_t
    signature: curl_off_t cast_size_t_to_curl_off_t(size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/merge-ort.c:432,1
    - Dst: free
      Src: /src/git/merge-ort.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - util
    - UNUSED
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 434
    functionName: conflicted_submodule_item_free
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void conflicted_submodule_item_free(void *util, const char *str UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ci
    - ','
    - mi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: INITIALIZE_CI
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITIALIZE_CI(ci, mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ci
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 672
    functionName: VERIFY_CI
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_CI(ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ci
    - ','
    - mi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: ASSIGN_AND_VERIFY_CI
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSIGN_AND_VERIFY_CI(ci, mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:682,1
    - Dst: free
      Src: /src/git/merge-ort.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 685
    functionName: free_strmap_strings
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strmap_for_each_entry
    - free
    linkageType: ''
    returnType: void
    signature: void free_strmap_strings(struct strmap *map)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strmap_clear_func
      Src: /src/git/merge-ort.c:699,1
    - Dst: strmap_clear_func
      Src: /src/git/merge-ort.c:706,1
    - Dst: discard_index
      Src: /src/git/merge-ort.c:708,1
    - Dst: strintmap_clear_func
      Src: /src/git/merge-ort.c:712,1
    - Dst: strmap_clear_func
      Src: /src/git/merge-ort.c:713,1
    - Dst: strintmap_clear_func
      Src: /src/git/merge-ort.c:714,1
    - Dst: assert
      Src: /src/git/merge-ort.c:716,1
    - Dst: strset_clear_func
      Src: /src/git/merge-ort.c:719,1
    - Dst: strmap_clear_func
      Src: /src/git/merge-ort.c:720,1
    - Dst: strset_clear_func
      Src: /src/git/merge-ort.c:721,1
    - Dst: partial_clear_dir_rename_count
      Src: /src/git/merge-ort.c:722,1
    - Dst: strmap_clear
      Src: /src/git/merge-ort.c:724,1
    - Dst: strintmap_clear_func
      Src: /src/git/merge-ort.c:728,1
    - Dst: strset_clear_func
      Src: /src/git/merge-ort.c:729,1
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:740,1
    - Dst: strvec_clear
      Src: /src/git/merge-ort.c:745,1
    - Dst: string_list_clear
      Src: /src/git/merge-ort.c:755,1
    - Dst: free
      Src: /src/git/merge-ort.c:756,1
    - Dst: strmap_clear
      Src: /src/git/merge-ort.c:758,1
    - Dst: mem_pool_discard
      Src: /src/git/merge-ort.c:761,1
    - Dst: string_list_clear_func
      Src: /src/git/merge-ort.c:763,1
    - Dst: FREE_AND_NULL
      Src: /src/git/merge-ort.c:767,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 2
    argNames:
    - opti
    - reinitialize
    argTypes:
    - struct merge_options_internal*
    - int
    assertStmts:
    - condition: (renames->cached_pairs_valid_side == 0)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 769
      start: 687
    functionDepth: 5
    functionLinenumber: 687
    functionLinenumberEnd: 769
    functionName: clear_or_reinit_internal_opts
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - assert
    - strmap_clear
    - mem_pool_discard
    - string_list_clear_func
    - strmap_for_each_entry
    - strset_clear_func
    - partial_clear_dir_rename_count
    - strvec_clear
    - strmap_clear_func
    - free
    - strintmap_clear_func
    - FREE_AND_NULL
    - discard_index
    linkageType: ''
    returnType: void
    signature: "void clear_or_reinit_internal_opts(struct merge_options_internal *opti,\n\t\t\t\t\t
      \ int reinitialize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addchars
      Src: /src/git/merge-ort.c:780,1
    - Dst: merge_remote_util
      Src: /src/git/merge-ort.c:781,1
    - Dst: strbuf_addf
      Src: /src/git/merge-ort.c:783,1
    - Dst: repo_format_commit_message
      Src: /src/git/merge-ort.c:787,1
    - Dst: strbuf_addch
      Src: /src/git/merge-ort.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - sb
    - indent
    - repo
    - commit
    argTypes:
    - struct strbuf*
    - int
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 789
    functionName: format_commit
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - strbuf_addchars
    - merge_remote_util
    - strbuf_addf
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void format_commit(struct strbuf *sb,\n\t\t\t  int indent,\n\t\t\t
      \ struct repository *repo,\n\t\t\t  struct commit *commit)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/merge-ort.c:791,1
    - Dst: ASSERT
      Src: /src/git/merge-ort.c:809,1
    - Dst: starts_with
      Src: /src/git/merge-ort.c:810,1
    - Dst: starts_with
      Src: /src/git/merge-ort.c:811,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:819,1
    - Dst: xmalloc
      Src: /src/git/merge-ort.c:821,1
    - Dst: string_list_init_dup
      Src: /src/git/merge-ort.c:822,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:823,1
    - Dst: xcalloc
      Src: /src/git/merge-ort.c:827,1
    - Dst: strvec_init
      Src: /src/git/merge-ort.c:829,1
    - Dst: strvec_push
      Src: /src/git/merge-ort.c:832,1
    - Dst: strvec_push
      Src: /src/git/merge-ort.c:834,1
    - Dst: strvec_push
      Src: /src/git/merge-ort.c:836,1
    - Dst: strvec_push
      Src: /src/git/merge-ort.c:839,1
    - Dst: va_start
      Src: /src/git/merge-ort.c:844,1
    - Dst: strbuf_addchars
      Src: /src/git/merge-ort.c:846,1
    - Dst: strbuf_addstr
      Src: /src/git/merge-ort.c:847,1
    - Dst: strbuf_addchars
      Src: /src/git/merge-ort.c:848,1
    - Dst: strbuf_vaddf
      Src: /src/git/merge-ort.c:850,1
    - Dst: va_end
      Src: /src/git/merge-ort.c:851,1
    - Dst: strbuf_addf
      Src: /src/git/merge-ort.c:859,1
    - Dst: strbuf_grow
      Src: /src/git/merge-ort.c:862,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:875,1
    - Dst: string_list_append_nodup
      Src: /src/git/merge-ort.c:877,1
    - Dst: strbuf_detach
      Src: /src/git/merge-ort.c:877,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 8
    argNames:
    - opt
    - type
    - omittable_hint
    - primary_path
    - other_path_1
    - other_path_2
    - other_paths
    - fmt
    argTypes:
    - struct merge_options*
    - enum conflict_and_info_types
    - int
    - char*
    - char*
    - char*
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 879
    functionName: path_msg
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_addf
    - strmap_get
    - va_end
    - xmalloc
    - strmap_put
    - string_list_init_dup
    - strbuf_release
    - xcalloc
    - strbuf_addstr
    - strbuf_addchars
    - strbuf_vaddf
    - strvec_init
    - ASSERT
    - strbuf_detach
    - strbuf_grow
    - string_list_append_nodup
    - starts_with
    - va_start
    - format
    linkageType: ''
    returnType: void
    signature: "void path_msg(struct merge_options *opt,\n\t\t     enum conflict_and_info_types
      type,\n\t\t     int omittable_hint, /* skippable under --remerge-diff */\n\t\t
      \    const char *primary_path,\n\t\t     const char *other_path_1, /* may be
      NULL */\n\t\t     const char *other_path_2, /* may be NULL */\n\t\t     struct
      string_list *other_paths, /* may be NULL */\n\t\t     const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_calloc
      Src: /src/git/merge-ort.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - path
    argTypes:
    - struct mem_pool*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 881
    functionDepth: 4
    functionLinenumber: 881
    functionLinenumberEnd: 893
    functionName: pool_alloc_filespec
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - mem_pool_calloc
    linkageType: ''
    returnType: struct diff_filespec
    signature: "struct diff_filespec *pool_alloc_filespec(struct mem_pool *pool,\n\t\t\t\t\t\t
      const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_calloc
      Src: /src/git/merge-ort.c:903,1
    - Dst: diff_q
      Src: /src/git/merge-ort.c:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pool
    - queue
    - one
    - two
    argTypes:
    - struct mem_pool*
    - struct diff_queue_struct*
    - struct diff_filespec*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 895
    functionDepth: 4
    functionLinenumber: 895
    functionLinenumberEnd: 909
    functionName: pool_diff_queue
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - mem_pool_calloc
    - diff_q
    linkageType: ''
    returnType: struct diff_filepair
    signature: "struct diff_filepair *pool_diff_queue(struct mem_pool *pool,\n\t\t\t\t\t
      \    struct diff_queue_struct *queue,\n\t\t\t\t\t     struct diff_filespec *one,\n\t\t\t\t\t
      \    struct diff_filespec *two)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/merge-ort.c:915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - out
    - s
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 919
    functionName: add_flattened_path
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void add_flattened_path(struct strbuf *out, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/merge-ort.c:931,1
    - Dst: add_flattened_path
      Src: /src/git/merge-ort.c:932,1
    - Dst: strmap_contains
      Src: /src/git/merge-ort.c:935,1
    - Dst: strbuf_setlen
      Src: /src/git/merge-ort.c:936,1
    - Dst: strbuf_addf
      Src: /src/git/merge-ort.c:937,1
    - Dst: mem_pool_alloc
      Src: /src/git/merge-ort.c:941,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:942,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - opt
    - path
    - branch
    argTypes:
    - struct merge_options*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 921
    functionDepth: 3
    functionLinenumber: 921
    functionLinenumberEnd: 945
    functionName: unique_path
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - strbuf_setlen
    - memcpy
    - mem_pool_alloc
    - add_flattened_path
    - strmap_contains
    linkageType: ''
    returnType: char
    signature: "char *unique_path(struct merge_options *opt,\n\t\t\t const char *path,\n\t\t\t
      const char *branch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:959,1
    - Dst: xstrdup
      Src: /src/git/merge-ort.c:962,1
    - Dst: ALLOC_GROW
      Src: /src/git/merge-ort.c:967,1
    - Dst: COPY_ARRAY
      Src: /src/git/merge-ort.c:971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - n
    - mask
    - dirmask
    - names
    - info
    argTypes:
    - int
    - unsigned long
    - unsigned long
    - struct name_entry*
    - struct traverse_info*
    assertStmts:
    - condition: (n==3)
      pos:
        line_end: 958
        line_start: 958
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 976
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 976
    functionName: traverse_trees_wrapper_callback
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - COPY_ARRAY
    - assert
    - ALLOC_GROW
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int traverse_trees_wrapper_callback(int n,\n\t\t\t\t\t   unsigned
      long mask,\n\t\t\t\t\t   unsigned long dirmask,\n\t\t\t\t\t   struct name_entry
      *names,\n\t\t\t\t\t   struct traverse_info *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:996,1
    - Dst: traverse_trees
      Src: /src/git/merge-ort.c:1004,1
    - Dst: struct traverse_info*::fn
      Src: /src/git/merge-ort.c:1011,1
    - Dst: free
      Src: /src/git/merge-ort.c:1019,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - istate
    - n
    - t
    - info
    argTypes:
    - struct index_state*
    - int
    - struct tree_desc*
    - struct traverse_info*
    assertStmts:
    - condition: (renames->dir_rename_mask == 2 || renames->dir_rename_mask == 4)
      pos:
        line_end: 995
        line_start: 995
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 1023
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1023
    functionName: traverse_trees_wrapper
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - traverse_trees
    - assert
    - struct traverse_info*::fn
    - free
    linkageType: ''
    returnType: int
    signature: "int traverse_trees_wrapper(struct index_state *istate,\n\t\t\t\t  int
      n,\n\t\t\t\t  struct tree_desc *t,\n\t\t\t\t  struct traverse_info *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:1041,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1042,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1043,1
    - Dst: mem_pool_calloc
      Src: /src/git/merge-ort.c:1045,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:1053,1
    - Dst: ASSIGN_AND_VERIFY_CI
      Src: /src/git/merge-ort.c:1059,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:1063,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:1080,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 12
    argNames:
    - opt
    - result
    - current_dir_name
    - current_dir_name_len
    - fullpath
    - names
    - merged_version
    - is_null
    - df_conflict
    - filemask
    - dirmask
    - resolved
    argTypes:
    - struct merge_options*
    - struct string_list_item*
    - char*
    - int
    - char*
    - struct name_entry*
    - struct name_entry*
    - unsigned
    - unsigned
    - unsigned
    - unsigned
    - int
    assertStmts:
    - condition: (!is_null || resolved)
      pos:
        line_end: 1040
        line_start: 1040
        source_file: /src/git/merge-ort.c
    - condition: (!df_conflict || !resolved)
      pos:
        line_end: 1041
        line_start: 1041
        source_file: /src/git/merge-ort.c
    - condition: (resolved == (merged_version != NULL))
      pos:
        line_end: 1042
        line_start: 1042
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 1083
      start: 1025
    functionDepth: 4
    functionLinenumber: 1025
    functionLinenumberEnd: 1083
    functionName: setup_path_info
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - mem_pool_calloc
    - ASSIGN_AND_VERIFY_CI
    - assert
    - oidcpy
    - strmap_put
    linkageType: ''
    returnType: void
    signature: "void setup_path_info(struct merge_options *opt,\n\t\t\t    struct
      string_list_item *result,\n\t\t\t    const char *current_dir_name,\n\t\t\t    int
      current_dir_name_len,\n\t\t\t    char *fullpath, /* we'll take over ownership
      */\n\t\t\t    struct name_entry *names,\n\t\t\t    struct name_entry *merged_version,\n\t\t\t
      \   unsigned is_null,     /* boolean */\n\t\t\t    unsigned df_conflict, /*
      boolean */\n\t\t\t    unsigned filemask,\n\t\t\t    unsigned dirmask,\n\t\t\t
      \   int resolved          /* boolean */)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:1098,1
    - Dst: strset_contains
      Src: /src/git/merge-ort.c:1099,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1106,1
    - Dst: strset_remove
      Src: /src/git/merge-ort.c:1115,1
    - Dst: strintmap_set
      Src: /src/git/merge-ort.c:1130,1
    - Dst: strmap_contains
      Src: /src/git/merge-ort.c:1139,1
    - Dst: strset_contains
      Src: /src/git/merge-ort.c:1140,1
    - Dst: pool_alloc_filespec
      Src: /src/git/merge-ort.c:1144,1
    - Dst: pool_alloc_filespec
      Src: /src/git/merge-ort.c:1145,1
    - Dst: fill_filespec
      Src: /src/git/merge-ort.c:1146,1
    - Dst: pool_diff_queue
      Src: /src/git/merge-ort.c:1148,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 7
    argNames:
    - opt
    - names
    - pathname
    - side
    - is_add
    - match_mask
    - dir_rename_mask
    argTypes:
    - struct merge_options*
    - struct name_entry*
    - char*
    - unsigned
    - unsigned
    - unsigned
    - unsigned
    assertStmts:
    - condition: (match_mask == 0 || match_mask == 6)
      pos:
        line_end: 1097
        line_start: 1097
        source_file: /src/git/merge-ort.c
    - condition: (match_mask == 0 || match_mask == 3 || match_mask == 5)
      pos:
        line_end: 1105
        line_start: 1105
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 1149
      start: 1085
    functionDepth: 5
    functionLinenumber: 1085
    functionLinenumberEnd: 1149
    functionName: add_pair
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strset_remove
    - pool_alloc_filespec
    - pool_diff_queue
    - strset_contains
    - assert
    - strintmap_set
    - fill_filespec
    - strmap_contains
    linkageType: ''
    returnType: void
    signature: "void add_pair(struct merge_options *opt,\n\t\t     struct name_entry
      *names,\n\t\t     const char *pathname,\n\t\t     unsigned side,\n\t\t     unsigned
      is_add /* if false, is_delete */,\n\t\t     unsigned match_mask,\n\t\t     unsigned
      dir_rename_mask)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:1186,1
    - Dst: strintmap_set
      Src: /src/git/merge-ort.c:1207,1
    - Dst: strintmap_set
      Src: /src/git/merge-ort.c:1210,1
    - Dst: strintmap_set
      Src: /src/git/merge-ort.c:1229,1
    - Dst: add_pair
      Src: /src/git/merge-ort.c:1241,1
    - Dst: add_pair
      Src: /src/git/merge-ort.c:1247,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 22
    argCount: 7
    argNames:
    - opt
    - names
    - dirname
    - fullname
    - filemask
    - dirmask
    - match_mask
    argTypes:
    - struct merge_options*
    - struct name_entry*
    - char*
    - char*
    - unsigned
    - unsigned
    - unsigned
    assertStmts:
    - condition: "(renames->dir_rename_mask == 0 ||\n\t\t       renames->dir_rename_mask
        == (dirmask & ~1))"
      pos:
        line_end: 1186
        line_start: 1185
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 1251
      start: 1151
    functionDepth: 6
    functionLinenumber: 1151
    functionLinenumberEnd: 1251
    functionName: collect_rename_info
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - add_pair
    - strintmap_set
    - assert
    linkageType: ''
    returnType: void
    signature: "void collect_rename_info(struct merge_options *opt,\n\t\t\t\tstruct
      name_entry *names,\n\t\t\t\tconst char *dirname,\n\t\t\t\tconst char *fullname,\n\t\t\t\tunsigned
      filemask,\n\t\t\t\tunsigned dirmask,\n\t\t\t\tunsigned match_mask)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/merge-ort.c:1282,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:1285,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:1288,1
    - Dst: BUG
      Src: /src/git/merge-ort.c:1308,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1315,1
    - Dst: is_null_oid
      Src: /src/git/merge-ort.c:1315,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1316,1
    - Dst: is_null_oid
      Src: /src/git/merge-ort.c:1316,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1317,1
    - Dst: is_null_oid
      Src: /src/git/merge-ort.c:1317,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1318,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1319,1
    - Dst: traverse_path_len
      Src: /src/git/merge-ort.c:1336,1
    - Dst: mem_pool_alloc
      Src: /src/git/merge-ort.c:1339,1
    - Dst: make_traverse_path
      Src: /src/git/merge-ort.c:1340,1
    - Dst: setup_path_info
      Src: /src/git/merge-ort.c:1349,1
    - Dst: setup_path_info
      Src: /src/git/merge-ort.c:1363,1
    - Dst: setup_path_info
      Src: /src/git/merge-ort.c:1377,1
    - Dst: setup_path_info
      Src: /src/git/merge-ort.c:1386,1
    - Dst: collect_rename_info
      Src: /src/git/merge-ort.c:1403,1
    - Dst: setup_path_info
      Src: /src/git/merge-ort.c:1412,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:1416,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1432,1
    - Dst: strset_contains
      Src: /src/git/merge-ort.c:1446,1
    - Dst: strintmap_set
      Src: /src/git/merge-ort.c:1448,1
    - Dst: st_add3
      Src: /src/git/merge-ort.c:1460,1
    - Dst: fill_tree_descriptor
      Src: /src/git/merge-ort.c:1482,1
    - Dst: traverse_trees
      Src: /src/git/merge-ort.c:1492,1
    - Dst: traverse_trees_wrapper
      Src: /src/git/merge-ort.c:1494,1
    - Dst: free
      Src: /src/git/merge-ort.c:1499,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 85
    argCount: 5
    argNames:
    - n
    - mask
    - dirmask
    - names
    - info
    argTypes:
    - int
    - unsigned long
    - unsigned long
    - struct name_entry*
    - struct traverse_info*
    assertStmts:
    - condition: (mbase_null == is_null_oid(&names[0].oid))
      pos:
        line_end: 1314
        line_start: 1314
        source_file: /src/git/merge-ort.c
    - condition: (!mbase_null || !side1_null || !side2_null)
      pos:
        line_end: 1317
        line_start: 1317
        source_file: /src/git/merge-ort.c
    - condition: (!side1_matches_mbase || !side2_matches_mbase)
      pos:
        line_end: 1431
        line_start: 1431
        source_file: /src/git/merge-ort.c
    - condition: (side1_null == is_null_oid(&names[1].oid))
      pos:
        line_end: 1315
        line_start: 1315
        source_file: /src/git/merge-ort.c
    - condition: (mask > 0 && mask < 8)
      pos:
        line_end: 1318
        line_start: 1318
        source_file: /src/git/merge-ort.c
    - condition: (side2_null == is_null_oid(&names[2].oid))
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 1506
      start: 1253
    functionDepth: 7
    functionLinenumber: 1253
    functionLinenumberEnd: 1506
    functionName: collect_merge_info_callback
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - traverse_trees
    - collect_rename_info
    - assert
    - strset_contains
    - fill_tree_descriptor
    - is_null_oid
    - mem_pool_alloc
    - traverse_path_len
    - strintmap_set
    - setup_path_info
    - st_add3
    - free
    - traverse_trees_wrapper
    - BUG
    - VERIFY_CI
    - oideq
    - make_traverse_path
    linkageType: ''
    returnType: int
    signature: "int collect_merge_info_callback(int n,\n\t\t\t\t       unsigned long
      mask,\n\t\t\t\t       unsigned long dirmask,\n\t\t\t\t       struct name_entry
      *names,\n\t\t\t\t       struct traverse_info *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:1510,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1511,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:1518,1
    - Dst: is_null_oid
      Src: /src/git/merge-ort.c:1520,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1547,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ci
    - side
    argTypes:
    - struct conflict_info*
    - int
    assertStmts:
    - condition: (!ci->filemask || !ci->dirmask)
      pos:
        line_end: 1546
        line_start: 1546
        source_file: /src/git/merge-ort.c
    - condition: "((side == 1 && ci->match_mask == 5) ||\n\t       (side == 2 && ci->match_mask
        == 3))"
      pos:
        line_end: 1511
        line_start: 1510
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 1551
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1551
    functionName: resolve_trivial_directory_merge
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - assert
    - is_null_oid
    - VERIFY_CI
    - oidcpy
    linkageType: ''
    returnType: void
    signature: void resolve_trivial_directory_merge(struct conflict_info *ci, int
      side)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get_size
      Src: /src/git/merge-ort.c:1562,1
    - Dst: strintmap_for_each_entry
      Src: /src/git/merge-ort.c:1568,1
    - Dst: strset_contains
      Src: /src/git/merge-ort.c:1578,1
    - Dst: strmap_get_entry
      Src: /src/git/merge-ort.c:1581,1
    - Dst: strmap_contains
      Src: /src/git/merge-ort.c:1594,1
    - Dst: xstrdup
      Src: /src/git/merge-ort.c:1602,1
    - Dst: strrchr
      Src: /src/git/merge-ort.c:1603,1
    - Dst: strset_contains
      Src: /src/git/merge-ort.c:1605,1
    - Dst: strset_add
      Src: /src/git/merge-ort.c:1608,1
    - Dst: free
      Src: /src/git/merge-ort.c:1611,1
    - Dst: strintmap_init_with_options
      Src: /src/git/merge-ort.c:1625,1
    - Dst: strintmap_for_each_entry
      Src: /src/git/merge-ort.c:1629,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:1638,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:1639,1
    - Dst: strset_contains
      Src: /src/git/merge-ort.c:1643,1
    - Dst: resolve_trivial_directory_merge
      Src: /src/git/merge-ort.c:1645,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:1650,1
    - Dst: fill_tree_descriptor
      Src: /src/git/merge-ort.c:1664,1
    - Dst: traverse_trees
      Src: /src/git/merge-ort.c:1674,1
    - Dst: traverse_trees_wrapper
      Src: /src/git/merge-ort.c:1676,1
    - Dst: free
      Src: /src/git/merge-ort.c:1679,1
    - Dst: strintmap_clear
      Src: /src/git/merge-ort.c:1684,1
    - Dst: strintmap_for_each_entry
      Src: /src/git/merge-ort.c:1685,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:1690,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:1691,1
    - Dst: ASSERT
      Src: /src/git/merge-ort.c:1693,1
    - Dst: strset_contains
      Src: /src/git/merge-ort.c:1694,1
    - Dst: resolve_trivial_directory_merge
      Src: /src/git/merge-ort.c:1696,1
    - Dst: strmap_get_size
      Src: /src/git/merge-ort.c:1699,1
    - Dst: assert
      Src: /src/git/merge-ort.c:1716,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 82
    argCount: 2
    argNames:
    - opt
    - info
    argTypes:
    - struct merge_options*
    - struct traverse_info*
    assertStmts:
    - condition: (renames->redo_after_renames == 0)
      pos:
        line_end: 1715
        line_start: 1715
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 1725
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1725
    functionName: handle_deferred_entries
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - traverse_trees
    - strset_contains
    - strmap_get
    - strmap_get_entry
    - free
    - strintmap_for_each_entry
    - fill_tree_descriptor
    - resolve_trivial_directory_merge
    - VERIFY_CI
    - strintmap_clear
    - strmap_contains
    - ASSERT
    - strintmap_init_with_options
    - strset_add
    - strmap_get_size
    - xstrdup
    - assert
    - strrchr
    - strlen
    - traverse_trees_wrapper
    linkageType: ''
    returnType: int
    signature: "int handle_deferred_entries(struct merge_options *opt,\n\t\t\t\t   struct
      traverse_info *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_traverse_info
      Src: /src/git/merge-ort.c:1738,1
    - Dst: repo_parse_tree
      Src: /src/git/merge-ort.c:1743,1
    - Dst: repo_parse_tree
      Src: /src/git/merge-ort.c:1744,1
    - Dst: repo_parse_tree
      Src: /src/git/merge-ort.c:1745,1
    - Dst: init_tree_desc
      Src: /src/git/merge-ort.c:1747,1
    - Dst: init_tree_desc
      Src: /src/git/merge-ort.c:1749,1
    - Dst: init_tree_desc
      Src: /src/git/merge-ort.c:1750,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:1752,1
    - Dst: traverse_trees
      Src: /src/git/merge-ort.c:1753,1
    - Dst: handle_deferred_entries
      Src: /src/git/merge-ort.c:1755,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:1756,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - opt
    - merge_base
    - side1
    - side2
    argTypes:
    - struct merge_options*
    - struct tree*
    - struct tree*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1727
    functionDepth: 3
    functionLinenumber: 1727
    functionLinenumberEnd: 1759
    functionName: collect_merge_info
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - traverse_trees
    - setup_traverse_info
    - handle_deferred_entries
    - trace2_region_leave
    - repo_parse_tree
    - trace2_region_enter
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int collect_merge_info(struct merge_options *opt,\n\t\t\t      struct
      tree *merge_base,\n\t\t\t      struct tree *side1,\n\t\t\t      struct tree
      *side2)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/merge-ort.c:1780,1
    - Dst: memset
      Src: /src/git/merge-ort.c:1781,1
    - Dst: xsnprintf
      Src: /src/git/merge-ort.c:1784,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort.c:1785,1
    - Dst: repo_init_revisions
      Src: /src/git/merge-ort.c:1786,1
    - Dst: setup_revisions
      Src: /src/git/merge-ort.c:1789,1
    - Dst: ARRAY_SIZE
      Src: /src/git/merge-ort.c:1789,1
    - Dst: prepare_revision_walk
      Src: /src/git/merge-ort.c:1792,1
    - Dst: die
      Src: /src/git/merge-ort.c:1793,1
    - Dst: get_revision
      Src: /src/git/merge-ort.c:1794,1
    - Dst: repo_in_merge_bases
      Src: /src/git/merge-ort.c:1796,1
    - Dst: object_array_clear
      Src: /src/git/merge-ort.c:1799,1
    - Dst: release_revisions
      Src: /src/git/merge-ort.c:1800,1
    - Dst: add_object_array
      Src: /src/git/merge-ort.c:1804,1
    - Dst: reset_revision_walk
      Src: /src/git/merge-ort.c:1806,1
    - Dst: repo_in_merge_bases
      Src: /src/git/merge-ort.c:1819,1
    - Dst: object_array_clear
      Src: /src/git/merge-ort.c:1821,1
    - Dst: release_revisions
      Src: /src/git/merge-ort.c:1822,1
    - Dst: add_object_array
      Src: /src/git/merge-ort.c:1833,1
    - Dst: object_array_clear
      Src: /src/git/merge-ort.c:1836,1
    - Dst: release_revisions
      Src: /src/git/merge-ort.c:1837,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 5
    argNames:
    - repo
    - path
    - a
    - b
    - result
    argTypes:
    - struct repository*
    - char*
    - struct commit*
    - struct commit*
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1763
    functionDepth: 13
    functionLinenumber: 1763
    functionLinenumberEnd: 1839
    functionName: find_first_merges
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - memset
    - oid_to_hex
    - die
    - release_revisions
    - object_array_clear
    - add_object_array
    - repo_init_revisions
    - repo_in_merge_bases
    - reset_revision_walk
    - prepare_revision_walk
    - xsnprintf
    - get_revision
    - setup_revisions
    linkageType: ''
    returnType: int
    signature: "int find_first_merges(struct repository *repo,\n\t\t\t     const char
      *path,\n\t\t\t     struct commit *a,\n\t\t\t     struct commit *b,\n\t\t\t     struct
      object_array *result)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:1861,1
    - Dst: is_null_oid
      Src: /src/git/merge-ort.c:1864,1
    - Dst: is_null_oid
      Src: /src/git/merge-ort.c:1864,1
    - Dst: BUG
      Src: /src/git/merge-ort.c:1865,1
    - Dst: repo_submodule_init
      Src: /src/git/merge-ort.c:1867,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:1868,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1869,1
    - Dst: _
      Src: /src/git/merge-ort.c:1871,1
    - Dst: is_null_oid
      Src: /src/git/merge-ort.c:1877,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1878,1
    - Dst: _
      Src: /src/git/merge-ort.c:1880,1
    - Dst: lookup_commit_reference
      Src: /src/git/merge-ort.c:1885,1
    - Dst: lookup_commit_reference
      Src: /src/git/merge-ort.c:1886,1
    - Dst: lookup_commit_reference
      Src: /src/git/merge-ort.c:1887,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1888,1
    - Dst: _
      Src: /src/git/merge-ort.c:1890,1
    - Dst: repo_in_merge_bases
      Src: /src/git/merge-ort.c:1897,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1899,1
    - Dst: _
      Src: /src/git/merge-ort.c:1901,1
    - Dst: repo_in_merge_bases
      Src: /src/git/merge-ort.c:1908,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1910,1
    - Dst: _
      Src: /src/git/merge-ort.c:1912,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1919,1
    - Dst: _
      Src: /src/git/merge-ort.c:1921,1
    - Dst: repo_in_merge_bases
      Src: /src/git/merge-ort.c:1928,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1930,1
    - Dst: _
      Src: /src/git/merge-ort.c:1932,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:1939,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1940,1
    - Dst: _
      Src: /src/git/merge-ort.c:1942,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort.c:1943,1
    - Dst: repo_in_merge_bases
      Src: /src/git/merge-ort.c:1947,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1949,1
    - Dst: _
      Src: /src/git/merge-ort.c:1951,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:1958,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1959,1
    - Dst: _
      Src: /src/git/merge-ort.c:1961,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort.c:1962,1
    - Dst: find_first_merges
      Src: /src/git/merge-ort.c:1979,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1983,1
    - Dst: _
      Src: /src/git/merge-ort.c:1985,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1991,1
    - Dst: _
      Src: /src/git/merge-ort.c:1993,1
    - Dst: format_commit
      Src: /src/git/merge-ort.c:1997,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:1999,1
    - Dst: _
      Src: /src/git/merge-ort.c:2001,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:2004,1
    - Dst: format_commit
      Src: /src/git/merge-ort.c:2008,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2010,1
    - Dst: _
      Src: /src/git/merge-ort.c:2012,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:2014,1
    - Dst: object_array_clear
      Src: /src/git/merge-ort.c:2017,1
    - Dst: xmalloc
      Src: /src/git/merge-ort.c:2024,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/merge-ort.c:2028,1
    - Dst: xstrdup
      Src: /src/git/merge-ort.c:2029,1
    - Dst: string_list_append
      Src: /src/git/merge-ort.c:2031,1
    - Dst: repo_clear
      Src: /src/git/merge-ort.c:2035,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 108
    argCount: 6
    argNames:
    - opt
    - path
    - o
    - a
    - b
    - result
    argTypes:
    - struct merge_options*
    - char*
    - struct object_id*
    - struct object_id*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 1841
    functionDepth: 14
    functionLinenumber: 1841
    functionLinenumberEnd: 2037
    functionName: merge_submodule
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - object_array_clear
    - repo_submodule_init
    - BUG
    - is_null_oid
    - xmalloc
    - strbuf_release
    - lookup_commit_reference
    - find_first_merges
    - format_commit
    - oid_to_hex
    - string_list_append
    - _
    - xstrdup
    - repo_in_merge_bases
    - repo_clear
    - repo_find_unique_abbrev
    - path_msg
    - null_oid
    linkageType: ''
    returnType: int
    signature: "int merge_submodule(struct merge_options *opt,\n\t\t\t   const char
      *path,\n\t\t\t   const struct object_id *o,\n\t\t\t   const struct object_id
      *a,\n\t\t\t   const struct object_id *b,\n\t\t\t   struct object_id *result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:2057,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:2062,1
    - Dst: make_empty_cache_entry
      Src: /src/git/merge-ort.c:2063,1
    - Dst: create_ce_mode
      Src: /src/git/merge-ort.c:2064,1
    - Dst: create_ce_flags
      Src: /src/git/merge-ort.c:2065,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2067,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:2068,1
    - Dst: add_index_entry
      Src: /src/git/merge-ort.c:2069,1
    - Dst: get_stream_filter
      Src: /src/git/merge-ort.c:2071,1
    - Dst: ASSIGN_AND_VERIFY_CI
      Src: /src/git/merge-ort.c:2076,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:2082,1
    - Dst: make_empty_cache_entry
      Src: /src/git/merge-ort.c:2083,1
    - Dst: create_ce_mode
      Src: /src/git/merge-ort.c:2084,1
    - Dst: create_ce_flags
      Src: /src/git/merge-ort.c:2085,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2087,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:2088,1
    - Dst: add_index_entry
      Src: /src/git/merge-ort.c:2089,1
    - Dst: get_stream_filter
      Src: /src/git/merge-ort.c:2091,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2039
    functionDepth: 8
    functionLinenumber: 2039
    functionLinenumberEnd: 2095
    functionName: initialize_attr_index
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - ASSIGN_AND_VERIFY_CI
    - get_stream_filter
    - oidcpy
    - strmap_get
    - make_empty_cache_entry
    - memcpy
    - add_index_entry
    - strlen
    - create_ce_mode
    - create_ce_flags
    linkageType: ''
    returnType: void
    signature: void initialize_attr_index(struct merge_options *opt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: initialize_attr_index
      Src: /src/git/merge-ort.c:2112,1
    - Dst: assert
      Src: /src/git/merge-ort.c:2136,1
    - Dst: mkpathdup
      Src: /src/git/merge-ort.c:2138,1
    - Dst: mkpathdup
      Src: /src/git/merge-ort.c:2139,1
    - Dst: mkpathdup
      Src: /src/git/merge-ort.c:2140,1
    - Dst: mkpathdup
      Src: /src/git/merge-ort.c:2142,1
    - Dst: mkpathdup
      Src: /src/git/merge-ort.c:2143,1
    - Dst: mkpathdup
      Src: /src/git/merge-ort.c:2144,1
    - Dst: read_mmblob
      Src: /src/git/merge-ort.c:2147,1
    - Dst: read_mmblob
      Src: /src/git/merge-ort.c:2148,1
    - Dst: read_mmblob
      Src: /src/git/merge-ort.c:2149,1
    - Dst: ll_merge
      Src: /src/git/merge-ort.c:2151,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2155,1
    - Dst: free
      Src: /src/git/merge-ort.c:2160,1
    - Dst: free
      Src: /src/git/merge-ort.c:2161,1
    - Dst: free
      Src: /src/git/merge-ort.c:2162,1
    - Dst: free
      Src: /src/git/merge-ort.c:2163,1
    - Dst: free
      Src: /src/git/merge-ort.c:2164,1
    - Dst: free
      Src: /src/git/merge-ort.c:2165,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 8
    argNames:
    - opt
    - path
    - o
    - a
    - b
    - pathnames
    - extra_marker_size
    - result_buf
    argTypes:
    - struct merge_options*
    - char*
    - struct object_id*
    - struct object_id*
    - struct object_id*
    - char*[]
    - int
    - mmbuffer_t*
    assertStmts:
    - condition: (pathnames[0] && pathnames[1] && pathnames[2] && opt->ancestor)
      pos:
        line_end: 2135
        line_start: 2135
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 2167
      start: 2097
    functionDepth: 9
    functionLinenumber: 2097
    functionLinenumberEnd: 2167
    functionName: merge_3way
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - assert
    - read_mmblob
    - initialize_attr_index
    - free
    - mkpathdup
    - path_msg
    - ll_merge
    linkageType: ''
    returnType: int
    signature: "int merge_3way(struct merge_options *opt,\n\t\t      const char *path,\n\t\t
      \     const struct object_id *o,\n\t\t      const struct object_id *a,\n\t\t
      \     const struct object_id *b,\n\t\t      const char *pathnames[3],\n\t\t
      \     const int extra_marker_size,\n\t\t      mmbuffer_t *result_buf)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:2199,1
    - Dst: assert
      Src: /src/git/merge-ort.c:2206,1
    - Dst: S_ISREG
      Src: /src/git/merge-ort.c:2206,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:2233,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:2233,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2234,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:2235,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2236,1
    - Dst: S_ISREG
      Src: /src/git/merge-ort.c:2239,1
    - Dst: merge_3way
      Src: /src/git/merge-ort.c:2250,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:2251,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2257,1
    - Dst: _
      Src: /src/git/merge-ort.c:2259,1
    - Dst: odb_write_object
      Src: /src/git/merge-ort.c:2265,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2267,1
    - Dst: _
      Src: /src/git/merge-ort.c:2269,1
    - Dst: free
      Src: /src/git/merge-ort.c:2272,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2278,1
    - Dst: _
      Src: /src/git/merge-ort.c:2279,1
    - Dst: S_ISGITLINK
      Src: /src/git/merge-ort.c:2280,1
    - Dst: merge_submodule
      Src: /src/git/merge-ort.c:2282,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:2283,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2289,1
    - Dst: S_ISLNK
      Src: /src/git/merge-ort.c:2291,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2295,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2300,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2303,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2306,1
    - Dst: BUG
      Src: /src/git/merge-ort.c:2311,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 9
    argNames:
    - opt
    - path
    - o
    - a
    - b
    - pathnames
    - extra_marker_size
    - record_object
    - result
    argTypes:
    - struct merge_options*
    - char*
    - struct version_info*
    - struct version_info*
    - struct version_info*
    - char*[]
    - int
    - int
    - struct version_info*
    assertStmts:
    - condition: ((S_IFMT & a->mode) == (S_IFMT & b->mode))
      pos:
        line_end: 2198
        line_start: 2198
        source_file: /src/git/merge-ort.c
    - condition: (S_ISREG(a->mode))
      pos:
        line_end: 2205
        line_start: 2205
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 2315
      start: 2169
    functionDepth: 15
    functionLinenumber: 2169
    functionLinenumberEnd: 2315
    functionName: handle_content_merge
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - assert
    - odb_write_object
    - oidcpy
    - merge_submodule
    - S_ISLNK
    - merge_3way
    - BUG
    - S_ISGITLINK
    - free
    - _
    - path_msg
    - null_oid
    - oideq
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int handle_content_merge(struct merge_options *opt,\n\t\t\t\tconst
      char *path,\n\t\t\t\tconst struct version_info *o,\n\t\t\t\tconst struct version_info
      *a,\n\t\t\t\tconst struct version_info *b,\n\t\t\t\tconst char *pathnames[3],\n\t\t\t\tconst
      int extra_marker_size,\n\t\t\t\tconst int record_object,\n\t\t\t\tstruct version_info
      *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/merge-ort.c:2342,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:2353,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:2354,1
    - Dst: strbuf_grow
      Src: /src/git/merge-ort.c:2355,1
    - Dst: strbuf_add
      Src: /src/git/merge-ort.c:2356,1
    - Dst: strbuf_addstr
      Src: /src/git/merge-ort.c:2357,1
    - Dst: strbuf_detach
      Src: /src/git/merge-ort.c:2359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - rename_info
    - old_path
    argTypes:
    - struct strmap_entry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2360
    functionName: apply_dir_rename
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strlen
    - strbuf_detach
    - strbuf_addstr
    - strbuf_grow
    - strbuf_add
    linkageType: ''
    returnType: char
    signature: "char *apply_dir_rename(struct strmap_entry *rename_info,\n\t\t\t      const
      char *old_path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:2367,1
    - Dst: INITIALIZE_CI
      Src: /src/git/merge-ort.c:2371,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:2375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - paths
    - path
    - side_mask
    - p
    argTypes:
    - struct strmap*
    - char*
    - unsigned
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2362
    functionDepth: 1
    functionLinenumber: 2362
    functionLinenumberEnd: 2376
    functionName: path_in_way
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - INITIALIZE_CI
    - strmap_get
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int path_in_way(struct strmap *paths,\n\t\t       const char *path,\n\t\t
      \      unsigned side_mask,\n\t\t       struct diff_filepair *p)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: apply_dir_rename
      Src: /src/git/merge-ort.c:2400,1
    - Dst: BUG
      Src: /src/git/merge-ort.c:2402,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:2409,1
    - Dst: BUG
      Src: /src/git/merge-ort.c:2411,1
    - Dst: path_in_way
      Src: /src/git/merge-ort.c:2422,1
    - Dst: strbuf_add_separated_string_list
      Src: /src/git/merge-ort.c:2424,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2426,1
    - Dst: _
      Src: /src/git/merge-ort.c:2428,1
    - Dst: strbuf_add_separated_string_list
      Src: /src/git/merge-ort.c:2436,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2438,1
    - Dst: _
      Src: /src/git/merge-ort.c:2440,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:2448,1
    - Dst: free
      Src: /src/git/merge-ort.c:2450,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - opt
    - path
    - side_index
    - p
    - rename_info
    - collisions
    argTypes:
    - struct merge_options*
    - char*
    - unsigned
    - struct diff_filepair*
    - struct strmap_entry*
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2384
    functionDepth: 2
    functionLinenumber: 2384
    functionLinenumberEnd: 2455
    functionName: handle_path_level_conflicts
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strbuf_add_separated_string_list
    - strbuf_release
    - apply_dir_rename
    - path_in_way
    - strmap_get
    - free
    - _
    - path_msg
    - BUG
    linkageType: ''
    returnType: char
    signature: "char *handle_path_level_conflicts(struct merge_options *opt,\n\t\t\t\t\t
      const char *path,\n\t\t\t\t\t unsigned side_index,\n\t\t\t\t\t struct diff_filepair
      *p,\n\t\t\t\t\t struct strmap_entry *rename_info,\n\t\t\t\t\t struct strmap
      *collisions)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:2472,1
    - Dst: strintmap_for_each_entry
      Src: /src/git/merge-ort.c:2481,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2497,1
    - Dst: _
      Src: /src/git/merge-ort.c:2499,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:2507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - opt
    - side
    - clean
    argTypes:
    - struct merge_options*
    - unsigned
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2457
    functionDepth: 2
    functionLinenumber: 2457
    functionLinenumberEnd: 2511
    functionName: get_provisional_directory_renames
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strmap_for_each_entry
    - strmap_put
    - _
    - strintmap_for_each_entry
    - path_msg
    linkageType: ''
    returnType: void
    signature: "void get_provisional_directory_renames(struct merge_options *opt,\n\t\t\t\t\t
      \     unsigned side,\n\t\t\t\t\t      int *clean)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:2523,1
    - Dst: strmap_contains
      Src: /src/git/merge-ort.c:2524,1
    - Dst: string_list_append
      Src: /src/git/merge-ort.c:2525,1
    - Dst: strmap_remove
      Src: /src/git/merge-ort.c:2529,1
    - Dst: strmap_remove
      Src: /src/git/merge-ort.c:2530,1
    - Dst: string_list_clear
      Src: /src/git/merge-ort.c:2532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2513
    functionDepth: 1
    functionLinenumber: 2513
    functionLinenumberEnd: 2533
    functionName: handle_directory_level_conflicts
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strmap_remove
    - strmap_for_each_entry
    - string_list_append
    - strmap_contains
    linkageType: ''
    returnType: void
    signature: void handle_directory_level_conflicts(struct merge_options *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/merge-ort.c:2538,1
    - Dst: strrchr
      Src: /src/git/merge-ort.c:2542,1
    - Dst: strmap_get_entry
      Src: /src/git/merge-ort.c:2544,1
    - Dst: free
      Src: /src/git/merge-ort.c:2548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - path
    - dir_renames
    argTypes:
    - char*
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2550
      start: 2535
    functionDepth: 1
    functionLinenumber: 2535
    functionLinenumberEnd: 2550
    functionName: check_dir_renamed
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - free
    - strrchr
    - strmap_get_entry
    - xstrdup
    linkageType: ''
    returnType: struct strmap_entry
    signature: "struct strmap_entry *check_dir_renamed(const char *path,\n\t\t\t\t\t
      \     struct strmap *dir_renames)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strmap_init_with_options
      Src: /src/git/merge-ort.c:2558,1
    - Dst: strmap_empty
      Src: /src/git/merge-ort.c:2559,1
    - Dst: check_dir_renamed
      Src: /src/git/merge-ort.c:2586,1
    - Dst: apply_dir_rename
      Src: /src/git/merge-ort.c:2590,1
    - Dst: assert
      Src: /src/git/merge-ort.c:2591,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:2592,1
    - Dst: free
      Src: /src/git/merge-ort.c:2594,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/merge-ort.c:2596,1
    - Dst: string_list_init_nodup
      Src: /src/git/merge-ort.c:2597,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:2598,1
    - Dst: string_list_insert
      Src: /src/git/merge-ort.c:2600,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - collisions
    - dir_renames
    - pairs
    argTypes:
    - struct strmap*
    - struct strmap*
    - struct diff_queue_struct*
    assertStmts:
    - condition: (new_path)
      pos:
        line_end: 2590
        line_start: 2590
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 2603
      start: 2552
    functionDepth: 2
    functionLinenumber: 2552
    functionLinenumberEnd: 2603
    functionName: compute_collisions
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - string_list_init_nodup
    - apply_dir_rename
    - assert
    - string_list_insert
    - strmap_init_with_options
    - strmap_get
    - check_dir_renamed
    - strmap_put
    - free
    - CALLOC_ARRAY
    - strmap_empty
    linkageType: ''
    returnType: void
    signature: "void compute_collisions(struct strmap *collisions,\n\t\t\t       struct
      strmap *dir_renames,\n\t\t\t       struct diff_queue_struct *pairs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:2611,1
    - Dst: string_list_clear
      Src: /src/git/merge-ort.c:2613,1
    - Dst: free_strmap_strings
      Src: /src/git/merge-ort.c:2622,1
    - Dst: strmap_clear
      Src: /src/git/merge-ort.c:2623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - collisions
    argTypes:
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2605
    functionDepth: 2
    functionLinenumber: 2605
    functionLinenumberEnd: 2624
    functionName: free_collisions
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strmap_for_each_entry
    - string_list_clear
    - strmap_clear
    - free_strmap_strings
    linkageType: ''
    returnType: void
    signature: void free_collisions(struct strmap *collisions)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strmap_empty
      Src: /src/git/merge-ort.c:2644,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:2646,1
    - Dst: check_dir_renamed
      Src: /src/git/merge-ort.c:2648,1
    - Dst: strmap_contains
      Src: /src/git/merge-ort.c:2677,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2678,1
    - Dst: _
      Src: /src/git/merge-ort.c:2680,1
    - Dst: handle_path_level_conflicts
      Src: /src/git/merge-ort.c:2686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 8
    argNames:
    - opt
    - path
    - side_index
    - p
    - dir_renames
    - dir_rename_exclusions
    - collisions
    - clean_merge
    argTypes:
    - struct merge_options*
    - char*
    - unsigned
    - struct diff_filepair*
    - struct strmap*
    - struct strmap*
    - struct strmap*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2626
    functionDepth: 3
    functionLinenumber: 2626
    functionLinenumberEnd: 2692
    functionName: check_for_directory_rename
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - handle_path_level_conflicts
    - strmap_get
    - check_dir_renamed
    - _
    - strmap_empty
    - path_msg
    - strmap_contains
    linkageType: ''
    returnType: char
    signature: "char *check_for_directory_rename(struct merge_options *opt,\n\t\t\t\t\tconst
      char *path,\n\t\t\t\t\tunsigned side_index,\n\t\t\t\t\tstruct diff_filepair
      *p,\n\t\t\t\t\tstruct strmap *dir_renames,\n\t\t\t\t\tstruct strmap *dir_rename_exclusions,\n\t\t\t\t\tstruct
      strmap *collisions,\n\t\t\t\t\tint *clean_merge)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get_entry
      Src: /src/git/merge-ort.c:2730,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:2733,1
    - Dst: mem_pool_strdup
      Src: /src/git/merge-ort.c:2736,1
    - Dst: free
      Src: /src/git/merge-ort.c:2737,1
    - Dst: strrchr
      Src: /src/git/merge-ort.c:2742,1
    - Dst: mem_pool_strndup
      Src: /src/git/merge-ort.c:2744,1
    - Dst: strmap_get_entry
      Src: /src/git/merge-ort.c:2753,1
    - Dst: string_list_append
      Src: /src/git/merge-ort.c:2760,1
    - Dst: mem_pool_calloc
      Src: /src/git/merge-ort.c:2769,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:2772,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:2776,1
    - Dst: assert
      Src: /src/git/merge-ort.c:2781,1
    - Dst: assert
      Src: /src/git/merge-ort.c:2782,1
    - Dst: strmap_remove
      Src: /src/git/merge-ort.c:2784,1
    - Dst: mem_pool_calloc
      Src: /src/git/merge-ort.c:2792,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:2793,1
    - Dst: assert
      Src: /src/git/merge-ort.c:2794,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2797,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:2797,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2810,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:2810,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:2822,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:2824,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:2827,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:2832,1
    - Dst: assert
      Src: /src/git/merge-ort.c:2833,1
    - Dst: assert
      Src: /src/git/merge-ort.c:2834,1
    - Dst: assert
      Src: /src/git/merge-ort.c:2835,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:2844,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2852,1
    - Dst: _
      Src: /src/git/merge-ort.c:2854,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2860,1
    - Dst: _
      Src: /src/git/merge-ort.c:2862,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2874,1
    - Dst: _
      Src: /src/git/merge-ort.c:2876,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:2883,1
    - Dst: _
      Src: /src/git/merge-ort.c:2885,1
    - Dst: string_list_clear
      Src: /src/git/merge-ort.c:2898,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 86
    argCount: 3
    argNames:
    - opt
    - pair
    - new_path
    argTypes:
    - struct merge_options*
    - struct diff_filepair*
    - char*
    assertStmts:
    - condition: ((new_ci->filemask & ci->filemask) == 0)
      pos:
        line_end: 2833
        line_start: 2833
        source_file: /src/git/merge-ort.c
    - condition: (ci->dirmask == 0 || ci->dirmask == 1)
      pos:
        line_end: 2781
        line_start: 2781
        source_file: /src/git/merge-ort.c
    - condition: (ci->filemask == 2 || ci->filemask == 4)
      pos:
        line_end: 2780
        line_start: 2780
        source_file: /src/git/merge-ort.c
    - condition: (!new_ci->match_mask)
      pos:
        line_end: 2793
        line_start: 2793
        source_file: /src/git/merge-ort.c
    - condition: (ci->filemask == 2 || ci->filemask == 4)
      pos:
        line_end: 2832
        line_start: 2832
        source_file: /src/git/merge-ort.c
    - condition: (!new_ci->merged.clean)
      pos:
        line_end: 2834
        line_start: 2834
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 2899
      start: 2694
    functionDepth: 4
    functionLinenumber: 2694
    functionLinenumberEnd: 2899
    functionName: apply_directory_rename_modifications
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - strmap_get
    - mem_pool_strdup
    - strmap_get_entry
    - strmap_put
    - free
    - mem_pool_calloc
    - memcpy
    - VERIFY_CI
    - string_list_clear
    - string_list_append
    - _
    - mem_pool_strndup
    - assert
    - strrchr
    - strmap_remove
    - strlen
    - null_oid
    - path_msg
    linkageType: ''
    returnType: void
    signature: "void apply_directory_rename_modifications(struct merge_options *opt,\n\t\t\t\t\t\t
      struct diff_filepair *pair,\n\t\t\t\t\t\t char *new_path)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get_entry
      Src: /src/git/merge-ort.c:2918,1
    - Dst: strmap_get_entry
      Src: /src/git/merge-ort.c:2919,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:2961,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:2973,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:2974,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:2975,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:2977,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:2978,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:2979,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:2981,1
    - Dst: assert
      Src: /src/git/merge-ort.c:2986,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:2987,1
    - Dst: handle_content_merge
      Src: /src/git/merge-ort.c:3011,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:3024,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:3026,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:3040,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:3043,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:3060,1
    - Dst: _
      Src: /src/git/merge-ort.c:3062,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:3072,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:3073,1
    - Dst: assert
      Src: /src/git/merge-ort.c:3075,1
    - Dst: S_ISREG
      Src: /src/git/merge-ort.c:3081,1
    - Dst: S_ISREG
      Src: /src/git/merge-ort.c:3082,1
    - Dst: assert
      Src: /src/git/merge-ort.c:3122,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:3123,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:3139,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:3140,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:3141,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:3143,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:3144,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:3145,1
    - Dst: handle_content_merge
      Src: /src/git/merge-ort.c:3147,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:3158,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:3161,1
    - Dst: _
      Src: /src/git/merge-ort.c:3163,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:3181,1
    - Dst: _
      Src: /src/git/merge-ort.c:3183,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:3192,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:3199,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:3199,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:3206,1
    - Dst: _
      Src: /src/git/merge-ort.c:3208,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:3214,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 123
    argCount: 2
    argNames:
    - opt
    - renames
    argTypes:
    - struct merge_options*
    - struct diff_queue_struct*
    assertStmts:
    - condition: "(source_deleted || oldinfo->filemask & old_sidemask ||\n\t\t       !strcmp(pair->one->path,
        pair->two->path))"
      pos:
        line_end: 3122
        line_start: 3121
        source_file: /src/git/merge-ort.c
    - condition: (side1 == side2)
      pos:
        line_end: 2985
        line_start: 2985
        source_file: /src/git/merge-ort.c
    - condition: (target_index == 1 || target_index == 2)
      pos:
        line_end: 3074
        line_start: 3074
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 3231
      start: 2903
    functionDepth: 16
    functionLinenumber: 2903
    functionLinenumberEnd: 3231
    functionName: process_renames
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - assert
    - oidcpy
    - strmap_get
    - _
    - memcpy
    - strmap_get_entry
    - null_oid
    - strcmp
    - handle_content_merge
    - path_msg
    - VERIFY_CI
    - oideq
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int process_renames(struct merge_options *opt,\n\t\t\t   struct diff_queue_struct
      *renames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_empty
      Src: /src/git/merge-ort.c:3237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - renames
    - side_index
    argTypes:
    - struct rename_info*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3238
      start: 3233
    functionDepth: 1
    functionLinenumber: 3233
    functionLinenumberEnd: 3238
    functionName: possible_side_renames
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strintmap_empty
    linkageType: ''
    returnType: int
    signature: "int possible_side_renames(struct rename_info *renames,\n\t\t\t\t\tunsigned
      side_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: possible_side_renames
      Src: /src/git/merge-ort.c:3242,1
    - Dst: possible_side_renames
      Src: /src/git/merge-ort.c:3243,1
    - Dst: strmap_empty
      Src: /src/git/merge-ort.c:3244,1
    - Dst: strmap_empty
      Src: /src/git/merge-ort.c:3245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - renames
    argTypes:
    - struct rename_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3240
    functionDepth: 2
    functionLinenumber: 3240
    functionLinenumberEnd: 3246
    functionName: possible_renames
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strmap_empty
    - possible_side_renames
    linkageType: ''
    returnType: int
    signature: int possible_renames(struct rename_info *renames)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/merge-ort.c:3260,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/merge-ort.c:3262,1
    - Dst: DIFF_PAIR_RENAME
      Src: /src/git/merge-ort.c:3264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct diff_queue_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3248
    functionDepth: 1
    functionLinenumber: 3248
    functionLinenumberEnd: 3267
    functionName: resolve_diffpair_statuses
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - DIFF_FILE_VALID
    - DIFF_PAIR_RENAME
    linkageType: ''
    returnType: void
    signature: void resolve_diffpair_statuses(struct diff_queue_struct *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:3277,1
    - Dst: strintmap_remove
      Src: /src/git/merge-ort.c:3278,1
    - Dst: strset_for_each_entry
      Src: /src/git/merge-ort.c:3282,1
    - Dst: strintmap_remove
      Src: /src/git/merge-ort.c:3283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - renames
    - side
    argTypes:
    - struct rename_info*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3286
      start: 3269
    functionDepth: 1
    functionLinenumber: 3269
    functionLinenumberEnd: 3286
    functionName: prune_cached_from_relevant
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strmap_for_each_entry
    - strintmap_remove
    - strset_for_each_entry
    linkageType: ''
    returnType: void
    signature: "void prune_cached_from_relevant(struct rename_info *renames,\n\t\t\t\t
      \      unsigned side)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:3299,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:3323,1
    - Dst: mem_pool_strdup
      Src: /src/git/merge-ort.c:3338,1
    - Dst: mem_pool_strdup
      Src: /src/git/merge-ort.c:3339,1
    - Dst: pool_alloc_filespec
      Src: /src/git/merge-ort.c:3342,1
    - Dst: pool_alloc_filespec
      Src: /src/git/merge-ort.c:3343,1
    - Dst: pool_diff_queue
      Src: /src/git/merge-ort.c:3344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - opt
    - cached_pairs
    - pairs
    argTypes:
    - struct merge_options*
    - struct strmap*
    - struct diff_queue_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3347
      start: 3288
    functionDepth: 5
    functionLinenumber: 3288
    functionLinenumberEnd: 3347
    functionName: use_cached_pairs
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - pool_diff_queue
    - pool_alloc_filespec
    - strmap_get
    - mem_pool_strdup
    - strmap_for_each_entry
    linkageType: ''
    returnType: void
    signature: "void use_cached_pairs(struct merge_options *opt,\n\t\t\t     struct
      strmap *cached_pairs,\n\t\t\t     struct diff_queue_struct *pairs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/merge-ort.c:3356,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:3357,1
    - Dst: strset_add
      Src: /src/git/merge-ort.c:3359,1
    - Dst: free
      Src: /src/git/merge-ort.c:3361,1
    - Dst: assert
      Src: /src/git/merge-ort.c:3363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - renames
    - side
    - old_path
    - new_path
    - free_old_value
    argTypes:
    - struct rename_info*
    - int
    - char*
    - char*
    - int
    assertStmts:
    - condition: (!old_value)
      pos:
        line_end: 3362
        line_start: 3362
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 3364
      start: 3349
    functionDepth: 1
    functionLinenumber: 3349
    functionLinenumberEnd: 3364
    functionName: cache_new_pair
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - assert
    - strmap_put
    - free
    - strset_add
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void cache_new_pair(struct rename_info *renames,\n\t\t\t   int side,\n\t\t\t
      \  char *old_path,\n\t\t\t   char *new_path,\n\t\t\t   int free_old_value)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_get
      Src: /src/git/merge-ort.c:3380,1
    - Dst: assert
      Src: /src/git/merge-ort.c:3383,1
    - Dst: strset_add
      Src: /src/git/merge-ort.c:3384,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:3396,1
    - Dst: cache_new_pair
      Src: /src/git/merge-ort.c:3401,1
    - Dst: cache_new_pair
      Src: /src/git/merge-ort.c:3403,1
    - Dst: cache_new_pair
      Src: /src/git/merge-ort.c:3405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - renames
    - p
    - side
    - new_path
    argTypes:
    - struct rename_info*
    - struct diff_filepair*
    - unsigned
    - char*
    assertStmts:
    - condition: (p->status == 'D')
      pos:
        line_end: 3382
        line_start: 3382
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 3408
      start: 3366
    functionDepth: 2
    functionLinenumber: 3366
    functionLinenumberEnd: 3408
    functionName: possibly_cache_new_pair
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strintmap_get
    - assert
    - cache_new_pair
    - strmap_put
    - strset_add
    linkageType: ''
    returnType: void
    signature: "void possibly_cache_new_pair(struct rename_info *renames,\n\t\t\t\t
      \   struct diff_filepair *p,\n\t\t\t\t    unsigned side,\n\t\t\t\t    char *new_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/merge-ort.c:3415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3410
    functionDepth: 0
    functionLinenumber: 3410
    functionLinenumberEnd: 3416
    functionName: compare_pairs
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare_pairs(const void *a_, const void *b_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prune_cached_from_relevant
      Src: /src/git/merge-ort.c:3425,1
    - Dst: possible_side_renames
      Src: /src/git/merge-ort.c:3426,1
    - Dst: resolve_diffpair_statuses
      Src: /src/git/merge-ort.c:3432,1
    - Dst: partial_clear_dir_rename_count
      Src: /src/git/merge-ort.c:3436,1
    - Dst: repo_diff_setup
      Src: /src/git/merge-ort.c:3437,1
    - Dst: diff_setup_done
      Src: /src/git/merge-ort.c:3447,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:3450,1
    - Dst: diffcore_rename_extended
      Src: /src/git/merge-ort.c:3451,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:3457,1
    - Dst: resolve_diffpair_statuses
      Src: /src/git/merge-ort.c:3458,1
    - Dst: diff_flush
      Src: /src/git/merge-ort.c:3470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - opt
    - side_index
    argTypes:
    - struct merge_options*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3473
      start: 3419
    functionDepth: 2
    functionLinenumber: 3419
    functionLinenumberEnd: 3473
    functionName: detect_regular_renames
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - trace2_region_leave
    - trace2_region_enter
    - prune_cached_from_relevant
    - diff_flush
    - partial_clear_dir_rename_count
    - possible_side_renames
    - diff_setup_done
    - repo_diff_setup
    - diffcore_rename_extended
    - resolve_diffpair_statuses
    linkageType: ''
    returnType: int
    signature: "int detect_regular_renames(struct merge_options *opt,\n\t\t\t\t  unsigned
      side_index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: possibly_cache_new_pair
      Src: /src/git/merge-ort.c:3499,1
    - Dst: pool_diff_free_filepair
      Src: /src/git/merge-ort.c:3500,1
    - Dst: possibly_cache_new_pair
      Src: /src/git/merge-ort.c:3505,1
    - Dst: check_for_directory_rename
      Src: /src/git/merge-ort.c:3509,1
    - Dst: possibly_cache_new_pair
      Src: /src/git/merge-ort.c:3516,1
    - Dst: pool_diff_free_filepair
      Src: /src/git/merge-ort.c:3518,1
    - Dst: apply_directory_rename_modifications
      Src: /src/git/merge-ort.c:3523,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - opt
    - result
    - side_index
    - collisions
    - dir_renames_for_side
    - rename_exclusions
    argTypes:
    - struct merge_options*
    - struct diff_queue_struct*
    - unsigned
    - struct strmap*
    - struct strmap*
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3541
      start: 3481
    functionDepth: 5
    functionLinenumber: 3481
    functionLinenumberEnd: 3541
    functionName: collect_renames
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - pool_diff_free_filepair
    - apply_directory_rename_modifications
    - check_for_directory_rename
    - possibly_cache_new_pair
    linkageType: ''
    returnType: int
    signature: "int collect_renames(struct merge_options *opt,\n\t\t\t   struct diff_queue_struct
      *result,\n\t\t\t   unsigned side_index,\n\t\t\t   struct strmap *collisions,\n\t\t\t
      \  struct strmap *dir_renames_for_side,\n\t\t\t   struct strmap *rename_exclusions)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: possible_renames
      Src: /src/git/merge-ort.c:3551,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:3559,1
    - Dst: detect_regular_renames
      Src: /src/git/merge-ort.c:3560,1
    - Dst: detect_regular_renames
      Src: /src/git/merge-ort.c:3561,1
    - Dst: possibly_cache_new_pair
      Src: /src/git/merge-ort.c:3574,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:3580,1
    - Dst: use_cached_pairs
      Src: /src/git/merge-ort.c:3583,1
    - Dst: use_cached_pairs
      Src: /src/git/merge-ort.c:3584,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:3585,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:3587,1
    - Dst: get_provisional_directory_renames
      Src: /src/git/merge-ort.c:3594,1
    - Dst: get_provisional_directory_renames
      Src: /src/git/merge-ort.c:3595,1
    - Dst: handle_directory_level_conflicts
      Src: /src/git/merge-ort.c:3596,1
    - Dst: ALLOC_GROW
      Src: /src/git/merge-ort.c:3599,1
    - Dst: compute_collisions
      Src: /src/git/merge-ort.c:3604,1
    - Dst: collect_renames
      Src: /src/git/merge-ort.c:3608,1
    - Dst: collect_renames
      Src: /src/git/merge-ort.c:3612,1
    - Dst: free_collisions
      Src: /src/git/merge-ort.c:3617,1
    - Dst: STABLE_QSORT
      Src: /src/git/merge-ort.c:3618,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:3619,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:3621,1
    - Dst: process_renames
      Src: /src/git/merge-ort.c:3622,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:3623,1
    - Dst: pool_diff_free_filepair
      Src: /src/git/merge-ort.c:3639,1
    - Dst: free
      Src: /src/git/merge-ort.c:3646,1
    - Dst: diff_queue_init
      Src: /src/git/merge-ort.c:3647,1
    - Dst: pool_diff_free_filepair
      Src: /src/git/merge-ort.c:3650,1
    - Dst: free
      Src: /src/git/merge-ort.c:3651,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3654
      start: 3543
    functionDepth: 17
    functionLinenumber: 3543
    functionLinenumberEnd: 3654
    functionName: detect_and_process_renames
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - pool_diff_free_filepair
    - free_collisions
    - possibly_cache_new_pair
    - detect_regular_renames
    - collect_renames
    - trace2_region_leave
    - use_cached_pairs
    - trace2_region_enter
    - process_renames
    - STABLE_QSORT
    - free
    - get_provisional_directory_renames
    - diff_queue_init
    - compute_collisions
    - handle_directory_level_conflicts
    - possible_renames
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: int detect_and_process_renames(struct merge_options *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3710
      start: 3658
    functionDepth: 0
    functionLinenumber: 3658
    functionLinenumberEnd: 3710
    functionName: sort_dirs_next_to_their_children
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sort_dirs_next_to_their_children(const char *one, const char *two)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/merge-ort.c:3720,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:3722,1
    - Dst: _
      Src: /src/git/merge-ort.c:3724,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort.c:3724,1
    - Dst: free
      Src: /src/git/merge-ort.c:3728,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:3729,1
    - Dst: _
      Src: /src/git/merge-ort.c:3731,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort.c:3731,1
    - Dst: strbuf_attach
      Src: /src/git/merge-ort.c:3734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - opt
    - oid
    - dst
    - path
    argTypes:
    - struct merge_options*
    - struct object_id*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3736
      start: 3712
    functionDepth: 2
    functionLinenumber: 3712
    functionLinenumberEnd: 3736
    functionName: read_oid_strbuf
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - strbuf_attach
    - free
    - odb_read_object
    - path_msg
    - _
    linkageType: ''
    returnType: int
    signature: "int read_oid_strbuf(struct merge_options *opt,\n\t\t\t   const struct
      object_id *oid,\n\t\t\t   struct strbuf *dst,\n\t\t\t   const char *path)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: initialize_attr_index
      Src: /src/git/merge-ort.c:3749,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:3753,1
    - Dst: read_oid_strbuf
      Src: /src/git/merge-ort.c:3756,1
    - Dst: read_oid_strbuf
      Src: /src/git/merge-ort.c:3757,1
    - Dst: renormalize_buffer
      Src: /src/git/merge-ort.c:3764,1
    - Dst: renormalize_buffer
      Src: /src/git/merge-ort.c:3765,1
    - Dst: memcmp
      Src: /src/git/merge-ort.c:3767,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:3770,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:3771,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - opt
    - base
    - side
    - path
    argTypes:
    - struct merge_options*
    - struct version_info*
    - struct version_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3773
      start: 3738
    functionDepth: 9
    functionLinenumber: 3738
    functionLinenumberEnd: 3773
    functionName: blob_unchanged
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - read_oid_strbuf
    - initialize_attr_index
    - renormalize_buffer
    - oideq
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int blob_unchanged(struct merge_options *opt,\n\t\t\t  const struct
      version_info *base,\n\t\t\t  const struct version_info *side,\n\t\t\t  const
      char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_name_compare
      Src: /src/git/merge-ort.c:3825,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:3825,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:3826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3827
      start: 3818
    functionDepth: 1
    functionLinenumber: 3818
    functionLinenumberEnd: 3827
    functionName: tree_entry_order
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strlen
    - base_name_compare
    linkageType: ''
    returnType: int
    signature: int tree_entry_order(const void *a_, const void *b_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:3840,1
    - Dst: QSORT
      Src: /src/git/merge-ort.c:3844,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:3849,1
    - Dst: strbuf_grow
      Src: /src/git/merge-ort.c:3851,1
    - Dst: strbuf_addf
      Src: /src/git/merge-ort.c:3857,1
    - Dst: strbuf_add
      Src: /src/git/merge-ort.c:3860,1
    - Dst: odb_write_object
      Src: /src/git/merge-ort.c:3864,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:3867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - repo
    - result_oid
    - versions
    - offset
    argTypes:
    - struct repository*
    - struct object_id*
    - struct string_list*
    - unsigned int
    assertStmts:
    - condition: (offset <= versions->nr)
      pos:
        line_end: 3839
        line_start: 3839
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 3869
      start: 3829
    functionDepth: 1
    functionLinenumber: 3829
    functionLinenumberEnd: 3869
    functionName: write_tree
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - assert
    - odb_write_object
    - strbuf_addf
    - strlen
    - QSORT
    - strbuf_grow
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int write_tree(struct repository *repo,\n\t\t      struct object_id
      *result_oid,\n\t\t      struct string_list *versions,\n\t\t      unsigned int
      offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:3882,1
    - Dst: strchr
      Src: /src/git/merge-ort.c:3882,1
    - Dst: string_list_append
      Src: /src/git/merge-ort.c:3883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dir_metadata
    - path
    - mi
    argTypes:
    - struct directory_versions*
    - char*
    - struct merged_info*
    assertStmts:
    - condition: (strchr(basename, '/') == NULL)
      pos:
        line_end: 3881
        line_start: 3881
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 3885
      start: 3871
    functionDepth: 1
    functionLinenumber: 3871
    functionLinenumberEnd: 3885
    functionName: record_entry_for_tree
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - string_list_append
    - assert
    - strchr
    linkageType: ''
    returnType: void
    signature: "void record_entry_for_tree(struct directory_versions *dir_metadata,\n\t\t\t\t
      \ const char *path,\n\t\t\t\t  struct merged_info *mi)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/merge-ort.c:3988,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:3993,1
    - Dst: string_list_append
      Src: /src/git/merge-ort.c:3999,1
    - Dst: strmap_get
      Src: /src/git/merge-ort.c:4011,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4012,1
    - Dst: write_tree
      Src: /src/git/merge-ort.c:4034,1
    - Dst: string_list_append
      Src: /src/git/merge-ort.c:4057,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:4063,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - opt
    - new_directory_name
    - info
    argTypes:
    - struct merge_options*
    - char*
    - struct directory_versions*
    assertStmts:
    - condition: (dir_info)
      pos:
        line_end: 4011
        line_start: 4011
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 4066
      start: 3887
    functionDepth: 1
    functionLinenumber: 3887
    functionLinenumberEnd: 4066
    functionName: write_completed_directory
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - assert
    - strmap_get
    - strlen
    - string_list_append
    - strncmp
    - write_tree
    linkageType: ''
    returnType: int
    signature: "int write_completed_directory(struct merge_options *opt,\n\t\t\t\t
      \    const char *new_directory_name,\n\t\t\t\t     struct directory_versions
      *info)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:4076,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4077,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4079,1
    - Dst: record_entry_for_tree
      Src: /src/git/merge-ort.c:4083,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4087,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4099,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4109,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:4109,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4123,1
    - Dst: mem_pool_calloc
      Src: /src/git/merge-ort.c:4141,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:4148,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4156,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:4156,1
    - Dst: unique_path
      Src: /src/git/merge-ort.c:4167,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:4168,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:4170,1
    - Dst: _
      Src: /src/git/merge-ort.c:4172,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4200,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4210,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4212,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4213,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4223,1
    - Dst: mem_pool_alloc
      Src: /src/git/merge-ort.c:4235,1
    - Dst: S_ISREG
      Src: /src/git/merge-ort.c:4238,1
    - Dst: S_ISREG
      Src: /src/git/merge-ort.c:4240,1
    - Dst: unique_path
      Src: /src/git/merge-ort.c:4248,1
    - Dst: unique_path
      Src: /src/git/merge-ort.c:4250,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:4253,1
    - Dst: _
      Src: /src/git/merge-ort.c:4255,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:4261,1
    - Dst: _
      Src: /src/git/merge-ort.c:4264,1
    - Dst: memcpy
      Src: /src/git/merge-ort.c:4272,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4276,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4278,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:4278,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4282,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:4282,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4288,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4290,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:4290,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4294,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:4294,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4299,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:4301,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:4305,1
    - Dst: strmap_remove
      Src: /src/git/merge-ort.c:4308,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:4314,1
    - Dst: record_entry_for_tree
      Src: /src/git/merge-ort.c:4315,1
    - Dst: handle_content_merge
      Src: /src/git/merge-ort.c:4335,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4346,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4348,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4351,1
    - Dst: _
      Src: /src/git/merge-ort.c:4354,1
    - Dst: _
      Src: /src/git/merge-ort.c:4356,1
    - Dst: S_ISGITLINK
      Src: /src/git/merge-ort.c:4357,1
    - Dst: _
      Src: /src/git/merge-ort.c:4358,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:4359,1
    - Dst: _
      Src: /src/git/merge-ort.c:4361,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4371,1
    - Dst: blob_unchanged
      Src: /src/git/merge-ort.c:4378,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:4397,1
    - Dst: path_msg
      Src: /src/git/merge-ort.c:4404,1
    - Dst: _
      Src: /src/git/merge-ort.c:4406,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4416,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4422,1
    - Dst: null_oid
      Src: /src/git/merge-ort.c:4422,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4423,1
    - Dst: strmap_put
      Src: /src/git/merge-ort.c:4433,1
    - Dst: record_entry_for_tree
      Src: /src/git/merge-ort.c:4436,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 180
    argCount: 4
    argNames:
    - opt
    - path
    - ci
    - dir_metadata
    argTypes:
    - struct merge_options*
    - char*
    - struct conflict_info*
    - struct directory_versions*
    assertStmts:
    - condition: (ci->df_conflict)
      pos:
        line_end: 4086
        line_start: 4086
        source_file: /src/git/merge-ort.c
    - condition: (ci->filemask >= 0 && ci->filemask <= 7)
      pos:
        line_end: 4076
        line_start: 4076
        source_file: /src/git/merge-ort.c
    - condition: (ci->merged.result.mode == S_IFDIR)
      pos:
        line_end: 4122
        line_start: 4122
        source_file: /src/git/merge-ort.c
    - condition: "(ci->match_mask == 0 || ci->match_mask == 3 ||\n\t       ci->match_mask
        == 5 || ci->match_mask == 6)"
      pos:
        line_end: 4079
        line_start: 4078
        source_file: /src/git/merge-ort.c
    - condition: (ci->filemask != 0)
      pos:
        line_end: 4098
        line_start: 4098
        source_file: /src/git/merge-ort.c
    - condition: (othermask == 2 || othermask == 4)
      pos:
        line_end: 4211
        line_start: 4211
        source_file: /src/git/merge-ort.c
    - condition: "(ci->merged.is_null ==\n\t\t\t       (ci->filemask == ci->match_mask))"
      pos:
        line_end: 4213
        line_start: 4212
        source_file: /src/git/merge-ort.c
    - condition: (rename_a || rename_b)
      pos:
        line_end: 4298
        line_start: 4298
        source_file: /src/git/merge-ort.c
    - condition: (!ci->df_conflict)
      pos:
        line_end: 4422
        line_start: 4422
        source_file: /src/git/merge-ort.c
    - condition: (df_file_index == 1 || df_file_index == 2)
      pos:
        line_end: 4347
        line_start: 4347
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 4438
      start: 4069
    functionDepth: 16
    functionLinenumber: 4069
    functionLinenumberEnd: 4438
    functionName: process_entry
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - mem_pool_calloc
    - oideq
    - assert
    - oidcpy
    - S_ISGITLINK
    - strmap_remove
    - memcpy
    - unique_path
    - mem_pool_alloc
    - blob_unchanged
    - strmap_put
    - _
    - path_msg
    - handle_content_merge
    - null_oid
    - VERIFY_CI
    - record_entry_for_tree
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int process_entry(struct merge_options *opt,\n\t\t\t const char *path,\n\t\t\t
      struct conflict_info *ci,\n\t\t\t struct directory_versions *dir_metadata)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_has_promisor_remote
      Src: /src/git/merge-ort.c:4446,1
    - Dst: S_ISREG
      Src: /src/git/merge-ort.c:4460,1
    - Dst: S_ISREG
      Src: /src/git/merge-ort.c:4461,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:4462,1
    - Dst: S_ISREG
      Src: /src/git/merge-ort.c:4467,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:4468,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:4469,1
    - Dst: S_ISREG
      Src: /src/git/merge-ort.c:4477,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/merge-ort.c:4478,1
    - Dst: oid_array_append
      Src: /src/git/merge-ort.c:4480,1
    - Dst: promisor_remote_get_direct
      Src: /src/git/merge-ort.c:4484,1
    - Dst: oid_array_clear
      Src: /src/git/merge-ort.c:4485,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 17
    argCount: 2
    argNames:
    - opt
    - plist
    argTypes:
    - struct merge_options*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4486
      start: 4440
    functionDepth: 1
    functionLinenumber: 4440
    functionLinenumberEnd: 4486
    functionName: prefetch_for_content_merges
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - repo_has_promisor_remote
    - oid_array_clear
    - odb_read_object_info_extended
    - promisor_remote_get_direct
    - oid_array_append
    - oideq
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: "void prefetch_for_content_merges(struct merge_options *opt,\n\t\t\t\t\tstruct
      string_list *plist)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:4502,1
    - Dst: strmap_empty
      Src: /src/git/merge-ort.c:4503,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4504,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:4509,1
    - Dst: ALLOC_GROW
      Src: /src/git/merge-ort.c:4510,1
    - Dst: strmap_get_size
      Src: /src/git/merge-ort.c:4510,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4511,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:4514,1
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:4515,1
    - Dst: string_list_append
      Src: /src/git/merge-ort.c:4516,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4518,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:4520,1
    - Dst: string_list_sort
      Src: /src/git/merge-ort.c:4522,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4523,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4525,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:4536,1
    - Dst: prefetch_for_content_merges
      Src: /src/git/merge-ort.c:4537,1
    - Dst: write_completed_directory
      Src: /src/git/merge-ort.c:4547,1
    - Dst: record_entry_for_tree
      Src: /src/git/merge-ort.c:4553,1
    - Dst: process_entry
      Src: /src/git/merge-ort.c:4556,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4568,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:4570,1
    - Dst: printf
      Src: /src/git/merge-ort.c:4573,1
    - Dst: printf
      Src: /src/git/merge-ort.c:4575,1
    - Dst: fflush
      Src: /src/git/merge-ort.c:4577,1
    - Dst: BUG
      Src: /src/git/merge-ort.c:4578,1
    - Dst: write_tree
      Src: /src/git/merge-ort.c:4581,1
    - Dst: string_list_clear
      Src: /src/git/merge-ort.c:4584,1
    - Dst: string_list_clear
      Src: /src/git/merge-ort.c:4585,1
    - Dst: string_list_clear
      Src: /src/git/merge-ort.c:4586,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4587,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 2
    argNames:
    - opt
    - result_oid
    argTypes:
    - struct merge_options*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4590
      start: 4488
    functionDepth: 17
    functionLinenumber: 4488
    functionLinenumberEnd: 4590
    functionName: process_entries
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - write_tree
    - string_list_clear
    - process_entry
    - printf
    - oidcpy
    - string_list_sort
    - trace2_region_leave
    - trace2_region_enter
    - strmap_for_each_entry
    - prefetch_for_content_merges
    - write_completed_directory
    - fflush
    - ALLOC_GROW
    - string_list_append
    - strmap_empty
    - BUG
    - record_entry_for_tree
    - strmap_get_size
    linkageType: ''
    returnType: int
    signature: "int process_entries(struct merge_options *opt,\n\t\t\t   struct object_id
      *result_oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/merge-ort.c:4603,1
    - Dst: setup_unpack_trees_porcelain
      Src: /src/git/merge-ort.c:4608,1
    - Dst: repo_parse_tree
      Src: /src/git/merge-ort.c:4626,1
    - Dst: init_tree_desc
      Src: /src/git/merge-ort.c:4628,1
    - Dst: repo_parse_tree
      Src: /src/git/merge-ort.c:4629,1
    - Dst: init_tree_desc
      Src: /src/git/merge-ort.c:4631,1
    - Dst: unpack_trees
      Src: /src/git/merge-ort.c:4633,1
    - Dst: clear_unpack_trees_porcelain
      Src: /src/git/merge-ort.c:4634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - opt
    - prev
    - next
    argTypes:
    - struct merge_options*
    - struct tree*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4636
      start: 4594
    functionDepth: 1
    functionLinenumber: 4594
    functionLinenumberEnd: 4636
    functionName: checkout
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 1
    functionsReached:
    - memset
    - setup_unpack_trees_porcelain
    - clear_unpack_trees_porcelain
    - repo_parse_tree
    - unpack_trees
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int checkout(struct merge_options *opt,\n\t\t    struct tree *prev,\n\t\t
      \   struct tree *next)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strmap_empty
      Src: /src/git/merge-ort.c:4647,1
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:4658,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/merge-ort.c:4659,1
    - Dst: ensure_full_index
      Src: /src/git/merge-ort.c:4660,1
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:4673,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:4680,1
    - Dst: SWAP
      Src: /src/git/merge-ort.c:4696,1
    - Dst: index_name_pos
      Src: /src/git/merge-ort.c:4697,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:4697,1
    - Dst: SWAP
      Src: /src/git/merge-ort.c:4698,1
    - Dst: BUG
      Src: /src/git/merge-ort.c:4701,1
    - Dst: cache_tree_invalidate_path
      Src: /src/git/merge-ort.c:4702,1
    - Dst: ce_skip_worktree
      Src: /src/git/merge-ort.c:4715,1
    - Dst: checkout_entry
      Src: /src/git/merge-ort.c:4716,1
    - Dst: make_cache_entry
      Src: /src/git/merge-ort.c:4736,1
    - Dst: add_index_entry
      Src: /src/git/merge-ort.c:4738,1
    - Dst: remove_marked_cache_entries
      Src: /src/git/merge-ort.c:4747,1
    - Dst: QSORT
      Src: /src/git/merge-ort.c:4753,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4756
      start: 4638
    functionDepth: 8
    functionLinenumber: 4638
    functionLinenumberEnd: 4756
    functionName: record_conflicted_index_entries
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - index_name_pos
    - checkout_entry
    - cache_tree_invalidate_path
    - remove_marked_cache_entries
    - strmap_for_each_entry
    - add_index_entry
    - strlen
    - ce_skip_worktree
    - QSORT
    - SWAP
    - path_in_sparse_checkout
    - make_cache_entry
    - strmap_empty
    - BUG
    - VERIFY_CI
    linkageType: ''
    returnType: int
    signature: int record_conflicted_index_entries(struct merge_options *opt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_separated_string_list
      Src: /src/git/merge-ort.c:4767,1
    - Dst: strbuf_addf
      Src: /src/git/merge-ort.c:4786,1
    - Dst: _
      Src: /src/git/merge-ort.c:4786,1
    - Dst: strbuf_addf
      Src: /src/git/merge-ort.c:4796,1
    - Dst: _
      Src: /src/git/merge-ort.c:4797,1
    - Dst: advise_if_enabled
      Src: /src/git/merge-ort.c:4808,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:4810,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:4811,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:4812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - csub
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4813
      start: 4758
    functionDepth: 1
    functionLinenumber: 4758
    functionLinenumberEnd: 4813
    functionName: print_submodule_conflict_suggestion
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - strbuf_add_separated_string_list
    - strbuf_release
    - strbuf_addf
    - advise_if_enabled
    - _
    linkageType: ''
    returnType: void
    signature: void print_submodule_conflict_suggestion(struct string_list *csub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/merge-ort.c:4786,1
    - Dst: _
      Src: /src/git/merge-ort.c:4786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4789
      start: 4768
    functionDepth: 1
    functionLinenumber: 4768
    functionLinenumberEnd: 4789
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 7
    functionsReached:
    - strbuf_addf
    - _
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, csub)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/merge-ort.c:4826,1
    - Dst: BUG
      Src: /src/git/merge-ort.c:4828,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:4830,1
    - Dst: ALLOC_GROW
      Src: /src/git/merge-ort.c:4833,1
    - Dst: strmap_get_size
      Src: /src/git/merge-ort.c:4833,1
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:4837,1
    - Dst: string_list_append
      Src: /src/git/merge-ort.c:4838,1
    - Dst: string_list_sort
      Src: /src/git/merge-ort.c:4840,1
    - Dst: fprintf
      Src: /src/git/merge-ort.c:4859,1
    - Dst: fputc
      Src: /src/git/merge-ort.c:4860,1
    - Dst: fputs
      Src: /src/git/merge-ort.c:4862,1
    - Dst: fputc
      Src: /src/git/merge-ort.c:4863,1
    - Dst: fputs
      Src: /src/git/merge-ort.c:4865,1
    - Dst: fputc
      Src: /src/git/merge-ort.c:4866,1
    - Dst: fputs
      Src: /src/git/merge-ort.c:4868,1
    - Dst: fputc
      Src: /src/git/merge-ort.c:4869,1
    - Dst: fputc
      Src: /src/git/merge-ort.c:4871,1
    - Dst: string_list_clear
      Src: /src/git/merge-ort.c:4874,1
    - Dst: print_submodule_conflict_suggestion
      Src: /src/git/merge-ort.c:4877,1
    - Dst: diff_warn_rename_limit
      Src: /src/git/merge-ort.c:4880,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4883,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - opt
    - detailed
    - result
    argTypes:
    - struct merge_options*
    - int
    - struct merge_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4884
      start: 4815
    functionDepth: 2
    functionLinenumber: 4815
    functionLinenumberEnd: 4884
    functionName: merge_display_update_messages
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - fputs
    - print_submodule_conflict_suggestion
    - string_list_sort
    - trace2_region_leave
    - trace2_region_enter
    - strmap_for_each_entry
    - ALLOC_GROW
    - string_list_append
    - fputc
    - BUG
    - fprintf
    - diff_warn_rename_limit
    - strmap_get_size
    linkageType: ''
    returnType: void
    signature: "void merge_display_update_messages(struct merge_options *opt,\n\t\t\t\t
      \  int detailed,\n\t\t\t\t   struct merge_result *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/merge-ort.c:4893,1
    - Dst: VERIFY_CI
      Src: /src/git/merge-ort.c:4898,1
    - Dst: xmalloc
      Src: /src/git/merge-ort.c:4906,1
    - Dst: oidcpy
      Src: /src/git/merge-ort.c:4909,1
    - Dst: string_list_append
      Src: /src/git/merge-ort.c:4910,1
    - Dst: string_list_sort
      Src: /src/git/merge-ort.c:4914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - result
    - conflicted_files
    argTypes:
    - struct merge_result*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4915
      start: 4886
    functionDepth: 1
    functionLinenumber: 4886
    functionLinenumberEnd: 4915
    functionName: merge_get_conflicted_files
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - string_list_sort
    - strmap_for_each_entry
    - xmalloc
    - string_list_append
    - VERIFY_CI
    linkageType: ''
    returnType: void
    signature: "void merge_get_conflicted_files(struct merge_result *result,\n\t\t\t\tstruct
      string_list *conflicted_files)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:4923,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:4925,1
    - Dst: checkout
      Src: /src/git/merge-ort.c:4926,1
    - Dst: merge_finalize
      Src: /src/git/merge-ort.c:4929,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4930,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4933,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:4935,1
    - Dst: record_conflicted_index_entries
      Src: /src/git/merge-ort.c:4937,1
    - Dst: merge_finalize
      Src: /src/git/merge-ort.c:4941,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4942,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4947,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:4949,1
    - Dst: refs_update_ref
      Src: /src/git/merge-ort.c:4950,1
    - Dst: get_main_ref_store
      Src: /src/git/merge-ort.c:4950,1
    - Dst: merge_finalize
      Src: /src/git/merge-ort.c:4956,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4957,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:4961,1
    - Dst: merge_display_update_messages
      Src: /src/git/merge-ort.c:4964,1
    - Dst: merge_finalize
      Src: /src/git/merge-ort.c:4966,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 5
    argNames:
    - opt
    - head
    - result
    - update_worktree_and_index
    - display_update_msgs
    argTypes:
    - struct merge_options*
    - struct tree*
    - struct merge_result*
    - int
    - int
    assertStmts:
    - condition: (opt->priv == NULL)
      pos:
        line_end: 4922
        line_start: 4922
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 4967
      start: 4917
    functionDepth: 9
    functionLinenumber: 4917
    functionLinenumberEnd: 4967
    functionName: merge_switch_to_result
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - assert
    - merge_finalize
    - merge_display_update_messages
    - trace2_region_leave
    - trace2_region_enter
    - record_conflicted_index_entries
    - checkout
    - refs_update_ref
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void merge_switch_to_result(struct merge_options *opt,\n\t\t\t    struct
      tree *head,\n\t\t\t    struct merge_result *result,\n\t\t\t    int update_worktree_and_index,\n\t\t\t
      \   int display_update_msgs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_attr_set_direction
      Src: /src/git/merge-ort.c:4973,1
    - Dst: assert
      Src: /src/git/merge-ort.c:4974,1
    - Dst: clear_or_reinit_internal_opts
      Src: /src/git/merge-ort.c:4977,1
    - Dst: FREE_AND_NULL
      Src: /src/git/merge-ort.c:4978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - opt
    - result
    argTypes:
    - struct merge_options*
    - struct merge_result*
    assertStmts:
    - condition: (opt->priv == NULL)
      pos:
        line_end: 4973
        line_start: 4973
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 4980
      start: 4969
    functionDepth: 6
    functionLinenumber: 4969
    functionLinenumberEnd: 4980
    functionName: merge_finalize
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 2
    functionsReached:
    - git_attr_set_direction
    - clear_or_reinit_internal_opts
    - FREE_AND_NULL
    - assert
    linkageType: ''
    returnType: void
    signature: "void merge_finalize(struct merge_options *opt,\n\t\t    struct merge_result
      *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shift_tree
      Src: /src/git/merge-ort.c:4991,1
    - Dst: shift_tree_by
      Src: /src/git/merge-ort.c:4993,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:4996,1
    - Dst: lookup_tree
      Src: /src/git/merge-ort.c:4998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - repo
    - one
    - two
    - subtree_shift
    argTypes:
    - struct repository*
    - struct tree*
    - struct tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4999
      start: 4984
    functionDepth: 1
    functionLinenumber: 4984
    functionLinenumberEnd: 4999
    functionName: shift_tree_object
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - lookup_tree
    - shift_tree_by
    - shift_tree
    - oideq
    linkageType: ''
    returnType: struct tree
    signature: "struct tree *shift_tree_object(struct repository *repo,\n\t\t\t\t
      \     struct tree *one, struct tree *two,\n\t\t\t\t      const char *subtree_shift)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - t
    argTypes:
    - struct commit*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5004
      start: 5001
    functionDepth: 0
    functionLinenumber: 5001
    functionLinenumberEnd: 5004
    functionName: set_commit_tree
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_commit_tree(struct commit *c, struct tree *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_commit_node
      Src: /src/git/merge-ort.c:5010,1
    - Dst: set_merge_remote_desc
      Src: /src/git/merge-ort.c:5012,1
    - Dst: set_commit_tree
      Src: /src/git/merge-ort.c:5013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - repo
    - tree
    - comment
    argTypes:
    - struct repository*
    - struct tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5016
      start: 5006
    functionDepth: 1
    functionLinenumber: 5006
    functionLinenumberEnd: 5016
    functionName: make_virtual_commit
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - alloc_commit_node
    - set_commit_tree
    - set_merge_remote_desc
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *make_virtual_commit(struct repository *repo,\n\t\t\t\t
      \  struct tree *tree,\n\t\t\t\t   const char *comment)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:5025,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5026,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5028,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5030,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5032,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5033,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5034,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5036,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5037,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5041,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5048,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5050,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5051,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5052,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5054,1
    - Dst: BUG
      Src: /src/git/merge-ort.c:5057,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5058,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5067,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5068,1
    - Dst: strlen
      Src: /src/git/merge-ort.c:5069,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5071,1
    - Dst: git_attr_set_direction
      Src: /src/git/merge-ort.c:5075,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:5078,1
    - Dst: clear_or_reinit_internal_opts
      Src: /src/git/merge-ort.c:5080,1
    - Dst: string_list_init_nodup
      Src: /src/git/merge-ort.c:5081,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5082,1
    - Dst: xcalloc
      Src: /src/git/merge-ort.c:5085,1
    - Dst: mem_pool_init
      Src: /src/git/merge-ort.c:5089,1
    - Dst: strintmap_init_with_options
      Src: /src/git/merge-ort.c:5092,1
    - Dst: strmap_init_with_options
      Src: /src/git/merge-ort.c:5094,1
    - Dst: strmap_init_with_options
      Src: /src/git/merge-ort.c:5096,1
    - Dst: strintmap_init_with_options
      Src: /src/git/merge-ort.c:5105,1
    - Dst: strmap_init_with_options
      Src: /src/git/merge-ort.c:5108,1
    - Dst: strset_init_with_options
      Src: /src/git/merge-ort.c:5110,1
    - Dst: strset_init_with_options
      Src: /src/git/merge-ort.c:5112,1
    - Dst: strintmap_init_with_options
      Src: /src/git/merge-ort.c:5116,1
    - Dst: strset_init_with_options
      Src: /src/git/merge-ort.c:5118,1
    - Dst: strmap_init_with_options
      Src: /src/git/merge-ort.c:5132,1
    - Dst: strmap_init_with_options
      Src: /src/git/merge-ort.c:5133,1
    - Dst: strmap_init
      Src: /src/git/merge-ort.c:5140,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5142,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 2
    argNames:
    - opt
    - result
    argTypes:
    - struct merge_options*
    - struct merge_result*
    assertStmts:
    - condition: (opt->rename_score >= 0 && opt->rename_score <= MAX_SCORE)
      pos:
        line_end: 5032
        line_start: 5032
        source_file: /src/git/merge-ort.c
    - condition: "(opt->recursive_variant >= MERGE_VARIANT_NORMAL &&\n\t       opt->recursive_variant
        <= MERGE_VARIANT_THEIRS)"
      pos:
        line_end: 5037
        line_start: 5036
        source_file: /src/git/merge-ort.c
    - condition: (opt->priv == NULL)
      pos:
        line_end: 5053
        line_start: 5053
        source_file: /src/git/merge-ort.c
    - condition: "(!opt->priv->toplevel_dir ||\n\t\t       0 == strlen(opt->priv->toplevel_dir))"
      pos:
        line_end: 5068
        line_start: 5067
        source_file: /src/git/merge-ort.c
    - condition: (opt->verbosity >= 0 && opt->verbosity <= 5)
      pos:
        line_end: 5049
        line_start: 5049
        source_file: /src/git/merge-ort.c
    - condition: (opt->rename_limit >= -1)
      pos:
        line_end: 5031
        line_start: 5031
        source_file: /src/git/merge-ort.c
    - condition: (opt->xdl_opts >= 0)
      pos:
        line_end: 5035
        line_start: 5035
        source_file: /src/git/merge-ort.c
    - condition: (opt->priv->call_depth == 0)
      pos:
        line_end: 5066
        line_start: 5066
        source_file: /src/git/merge-ort.c
    - condition: (opt->obuf.len == 0)
      pos:
        line_end: 5051
        line_start: 5051
        source_file: /src/git/merge-ort.c
    - condition: (opt->branch1 && opt->branch2)
      pos:
        line_end: 5027
        line_start: 5027
        source_file: /src/git/merge-ort.c
    - condition: (opt->record_conflict_msgs_as_headers)
      pos:
        line_end: 5040
        line_start: 5040
        source_file: /src/git/merge-ort.c
    - condition: "(opt->detect_renames >= -1 &&\n\t       opt->detect_renames <= DIFF_DETECT_COPY)"
      pos:
        line_end: 5048
        line_start: 5047
        source_file: /src/git/merge-ort.c
    - condition: (opt->buffer_output <= 2)
      pos:
        line_end: 5050
        line_start: 5050
        source_file: /src/git/merge-ort.c
    - condition: (opt->repo)
      pos:
        line_end: 5025
        line_start: 5025
        source_file: /src/git/merge-ort.c
    - condition: "(opt->detect_directory_renames >= MERGE_DIRECTORY_RENAMES_NONE &&\n\t
        \      opt->detect_directory_renames <= MERGE_DIRECTORY_RENAMES_TRUE)"
      pos:
        line_end: 5030
        line_start: 5029
        source_file: /src/git/merge-ort.c
    - condition: (opt->show_rename_progress >= 0 && opt->show_rename_progress <= 1)
      pos:
        line_end: 5033
        line_start: 5033
        source_file: /src/git/merge-ort.c
    - condition: (!!result->priv == !!result->_properly_initialized)
      pos:
        line_end: 5057
        line_start: 5057
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 5143
      start: 5018
    functionDepth: 6
    functionLinenumber: 5018
    functionLinenumberEnd: 5143
    functionName: merge_start
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - clear_or_reinit_internal_opts
    - string_list_init_nodup
    - assert
    - mem_pool_init
    - trace2_region_leave
    - strmap_init_with_options
    - trace2_region_enter
    - git_attr_set_direction
    - strlen
    - xcalloc
    - strintmap_init_with_options
    - strset_init_with_options
    - BUG
    - strmap_init
    linkageType: ''
    returnType: void
    signature: void merge_start(struct merge_options *opt, struct merge_result *result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:5166,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5197,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:5200,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:5201,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:5203,1
    - Dst: oideq
      Src: /src/git/merge-ort.c:5204,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 5
    argNames:
    - opt
    - result
    - merge_base
    - side1
    - side2
    argTypes:
    - struct merge_options*
    - struct merge_result*
    - struct tree*
    - struct tree*
    - struct tree*
    assertStmts:
    - condition: (!merge_trees[0] && !merge_trees[1] && !merge_trees[2])
      pos:
        line_end: 5165
        line_start: 5165
        source_file: /src/git/merge-ort.c
    - condition: (merge_trees[0] && merge_trees[1] && merge_trees[2])
      pos:
        line_end: 5196
        line_start: 5196
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 5208
      start: 5145
    functionDepth: 1
    functionLinenumber: 5145
    functionLinenumberEnd: 5208
    functionName: merge_check_renames_reusable
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - assert
    - oideq
    linkageType: ''
    returnType: void
    signature: "void merge_check_renames_reusable(struct merge_options *opt,\n\t\t\t\t\t
      struct merge_result *result,\n\t\t\t\t\t struct tree *merge_base,\n\t\t\t\t\t
      struct tree *side1,\n\t\t\t\t\t struct tree *side2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ort.c:5226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - opt
    - result
    argTypes:
    - struct merge_options*
    - struct merge_result*
    assertStmts:
    - condition: (opt->priv && !result->priv)
      pos:
        line_end: 5225
        line_start: 5225
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 5230
      start: 5212
    functionDepth: 1
    functionLinenumber: 5212
    functionLinenumberEnd: 5230
    functionName: move_opt_priv_to_result_priv
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void move_opt_priv_to_result_priv(struct merge_options *opt,\n\t\t\t\t\t
      struct merge_result *result)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: shift_tree_object
      Src: /src/git/merge-ort.c:5244,1
    - Dst: shift_tree_object
      Src: /src/git/merge-ort.c:5246,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:5251,1
    - Dst: collect_merge_info
      Src: /src/git/merge-ort.c:5252,1
    - Dst: error
      Src: /src/git/merge-ort.c:5257,1
    - Dst: _
      Src: /src/git/merge-ort.c:5257,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort.c:5258,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort.c:5259,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort.c:5260,1
    - Dst: move_opt_priv_to_result_priv
      Src: /src/git/merge-ort.c:5262,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5265,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:5267,1
    - Dst: detect_and_process_renames
      Src: /src/git/merge-ort.c:5268,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5269,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:5271,1
    - Dst: clear_or_reinit_internal_opts
      Src: /src/git/merge-ort.c:5272,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5273,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:5277,1
    - Dst: process_entries
      Src: /src/git/merge-ort.c:5278,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5280,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/merge-ort.c:5287,1
    - Dst: die
      Src: /src/git/merge-ort.c:5290,1
    - Dst: _
      Src: /src/git/merge-ort.c:5290,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort.c:5291,1
    - Dst: strmap_empty
      Src: /src/git/merge-ort.c:5294,1
    - Dst: move_opt_priv_to_result_priv
      Src: /src/git/merge-ort.c:5297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - opt
    - merge_base
    - side1
    - side2
    - result
    argTypes:
    - struct merge_options*
    - struct tree*
    - struct tree*
    - struct tree*
    - struct merge_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5298
      start: 5235
    functionDepth: 18
    functionLinenumber: 5235
    functionLinenumberEnd: 5298
    functionName: merge_ort_nonrecursive_internal
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - collect_merge_info
    - clear_or_reinit_internal_opts
    - move_opt_priv_to_result_priv
    - process_entries
    - repo_parse_tree_indirect
    - die
    - trace2_region_leave
    - trace2_region_enter
    - shift_tree_object
    - _
    - strmap_empty
    - detect_and_process_renames
    linkageType: ''
    returnType: void
    signature: "void merge_ort_nonrecursive_internal(struct merge_options *opt,\n\t\t\t\t\t
      \   struct tree *merge_base,\n\t\t\t\t\t    struct tree *side1,\n\t\t\t\t\t
      \   struct tree *side2,\n\t\t\t\t\t    struct merge_result *result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_copy
      Src: /src/git/merge-ort.c:5309,1
    - Dst: repo_get_merge_bases
      Src: /src/git/merge-ort.c:5316,1
    - Dst: commit_list_reverse
      Src: /src/git/merge-ort.c:5322,1
    - Dst: pop_commit
      Src: /src/git/merge-ort.c:5325,1
    - Dst: lookup_tree
      Src: /src/git/merge-ort.c:5330,1
    - Dst: make_virtual_commit
      Src: /src/git/merge-ort.c:5331,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/merge-ort.c:5339,1
    - Dst: pop_commit
      Src: /src/git/merge-ort.c:5345,1
    - Dst: pop_commit
      Src: /src/git/merge-ort.c:5346,1
    - Dst: merge_ort_internal
      Src: /src/git/merge-ort.c:5363,1
    - Dst: make_virtual_commit
      Src: /src/git/merge-ort.c:5370,1
    - Dst: commit_list_insert
      Src: /src/git/merge-ort.c:5373,1
    - Dst: commit_list_insert
      Src: /src/git/merge-ort.c:5374,1
    - Dst: clear_or_reinit_internal_opts
      Src: /src/git/merge-ort.c:5376,1
    - Dst: merge_ort_nonrecursive_internal
      Src: /src/git/merge-ort.c:5380,1
    - Dst: repo_get_commit_tree
      Src: /src/git/merge-ort.c:5381,1
    - Dst: repo_get_commit_tree
      Src: /src/git/merge-ort.c:5383,1
    - Dst: repo_get_commit_tree
      Src: /src/git/merge-ort.c:5384,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort.c:5386,1
    - Dst: commit_list_free
      Src: /src/git/merge-ort.c:5390,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 5
    argNames:
    - opt
    - _merge_bases
    - h1
    - h2
    - result
    argTypes:
    - struct merge_options*
    - struct commit_list*
    - struct commit*
    - struct commit*
    - struct merge_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5391
      start: 5303
    functionDepth: 19
    functionLinenumber: 5303
    functionLinenumberEnd: 5391
    functionName: merge_ort_internal
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 1
    functionsReached:
    - commit_list_reverse
    - commit_list_copy
    - clear_or_reinit_internal_opts
    - strbuf_release
    - commit_list_insert
    - merge_ort_nonrecursive_internal
    - repo_get_merge_bases
    - pop_commit
    - repo_get_commit_tree
    - commit_list_free
    - merge_ort_internal
    - make_virtual_commit
    - lookup_tree
    - strbuf_add_unique_abbrev
    linkageType: ''
    returnType: void
    signature: "void merge_ort_internal(struct merge_options *opt,\n\t\t\t       const
      struct commit_list *_merge_bases,\n\t\t\t       struct commit *h1,\n\t\t\t       struct
      commit *h2,\n\t\t\t       struct merge_result *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:5399,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:5401,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5402,1
    - Dst: merge_check_renames_reusable
      Src: /src/git/merge-ort.c:5403,1
    - Dst: merge_start
      Src: /src/git/merge-ort.c:5404,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5413,1
    - Dst: merge_ort_nonrecursive_internal
      Src: /src/git/merge-ort.c:5415,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - opt
    - merge_base
    - side1
    - side2
    - result
    argTypes:
    - struct merge_options*
    - struct tree*
    - struct tree*
    - struct tree*
    - struct merge_result*
    assertStmts:
    - condition: (opt->ancestor != NULL)
      pos:
        line_end: 5401
        line_start: 5401
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 5417
      start: 5393
    functionDepth: 19
    functionLinenumber: 5393
    functionLinenumberEnd: 5417
    functionName: merge_incore_nonrecursive
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 1
    functionsReached:
    - merge_check_renames_reusable
    - assert
    - trace2_region_leave
    - trace2_region_enter
    - merge_ort_nonrecursive_internal
    - merge_start
    linkageType: ''
    returnType: void
    signature: "void merge_incore_nonrecursive(struct merge_options *opt,\n\t\t\t
      \      struct tree *merge_base,\n\t\t\t       struct tree *side1,\n\t\t\t       struct
      tree *side2,\n\t\t\t       struct merge_result *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:5425,1
    - Dst: assert
      Src: /src/git/merge-ort.c:5432,1
    - Dst: trace2_region_enter
      Src: /src/git/merge-ort.c:5435,1
    - Dst: merge_start
      Src: /src/git/merge-ort.c:5436,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5437,1
    - Dst: merge_ort_internal
      Src: /src/git/merge-ort.c:5439,1
    - Dst: trace2_region_leave
      Src: /src/git/merge-ort.c:5440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - opt
    - merge_bases
    - side1
    - side2
    - result
    argTypes:
    - struct merge_options*
    - struct commit_list*
    - struct commit*
    - struct commit*
    - struct merge_result*
    assertStmts:
    - condition: "(opt->ancestor == NULL ||\n\t       (merge_bases && !merge_bases->next))"
      pos:
        line_end: 5432
        line_start: 5431
        source_file: /src/git/merge-ort.c
    constantsTouched: []
    func_position:
      end: 5441
      start: 5419
    functionDepth: 20
    functionLinenumber: 5419
    functionLinenumberEnd: 5441
    functionName: merge_incore_recursive
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - assert
    - trace2_region_leave
    - trace2_region_enter
    - merge_start
    - merge_ort_internal
    linkageType: ''
    returnType: void
    signature: "void merge_incore_recursive(struct merge_options *opt,\n\t\t\t    const
      struct commit_list *merge_bases,\n\t\t\t    struct commit *side1,\n\t\t\t    struct
      commit *side2,\n\t\t\t    struct merge_result *result)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/merge-ort.c:5447,1
    - Dst: repo_config_get_int
      Src: /src/git/merge-ort.c:5448,1
    - Dst: repo_config_get_int
      Src: /src/git/merge-ort.c:5449,1
    - Dst: repo_config_get_bool
      Src: /src/git/merge-ort.c:5450,1
    - Dst: repo_config_get_string
      Src: /src/git/merge-ort.c:5452,1
    - Dst: git_config_rename
      Src: /src/git/merge-ort.c:5453,1
    - Dst: free
      Src: /src/git/merge-ort.c:5454,1
    - Dst: repo_config_get_string
      Src: /src/git/merge-ort.c:5456,1
    - Dst: git_config_rename
      Src: /src/git/merge-ort.c:5457,1
    - Dst: free
      Src: /src/git/merge-ort.c:5458,1
    - Dst: repo_config_get_string
      Src: /src/git/merge-ort.c:5460,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/merge-ort.c:5461,1
    - Dst: strcasecmp
      Src: /src/git/merge-ort.c:5466,1
    - Dst: free
      Src: /src/git/merge-ort.c:5470,1
    - Dst: repo_config_get_string
      Src: /src/git/merge-ort.c:5473,1
    - Dst: parse_algorithm_value
      Src: /src/git/merge-ort.c:5474,1
    - Dst: die
      Src: /src/git/merge-ort.c:5476,1
    - Dst: _
      Src: /src/git/merge-ort.c:5476,1
    - Dst: free
      Src: /src/git/merge-ort.c:5478,1
    - Dst: repo_config
      Src: /src/git/merge-ort.c:5481,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - opt
    - ui
    argTypes:
    - struct merge_options*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5482
      start: 5443
    functionDepth: 1
    functionLinenumber: 5443
    functionLinenumberEnd: 5482
    functionName: merge_recursive_config
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - die
    - strcasecmp
    - parse_algorithm_value
    - repo_config_get_string
    - repo_config_get_bool
    - git_config_rename
    - git_parse_maybe_bool
    - free
    - repo_config
    - _
    linkageType: ''
    returnType: void
    signature: void merge_recursive_config(struct merge_options *opt, int ui)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/merge-ort.c:5488,1
    - Dst: strbuf_init
      Src: /src/git/merge-ort.c:5498,1
    - Dst: DIFF_WITH_ALG
      Src: /src/git/merge-ort.c:5503,1
    - Dst: merge_recursive_config
      Src: /src/git/merge-ort.c:5505,1
    - Dst: getenv
      Src: /src/git/merge-ort.c:5506,1
    - Dst: strtol
      Src: /src/git/merge-ort.c:5508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - opt
    - repo
    - ui
    argTypes:
    - struct merge_options*
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5511
      start: 5484
    functionDepth: 2
    functionLinenumber: 5484
    functionLinenumberEnd: 5511
    functionName: init_merge_options
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - memset
    - DIFF_WITH_ALG
    - merge_recursive_config
    - strtol
    - getenv
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: "void init_merge_options(struct merge_options *opt,\n\t\t\tstruct repository
      *repo, int ui)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_merge_options
      Src: /src/git/merge-ort.c:5516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opt
    - repo
    argTypes:
    - struct merge_options*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5517
      start: 5513
    functionDepth: 3
    functionLinenumber: 5513
    functionLinenumberEnd: 5517
    functionName: init_ui_merge_options
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - init_merge_options
    linkageType: ''
    returnType: void
    signature: "void init_ui_merge_options(struct merge_options *opt,\n\t\t\tstruct
      repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_merge_options
      Src: /src/git/merge-ort.c:5522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opt
    - repo
    argTypes:
    - struct merge_options*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5523
      start: 5519
    functionDepth: 3
    functionLinenumber: 5519
    functionLinenumberEnd: 5523
    functionName: init_basic_merge_options
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 1
    functionsReached:
    - init_merge_options
    linkageType: ''
    returnType: void
    signature: "void init_basic_merge_options(struct merge_options *opt,\n\t\t\tstruct
      repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct merge_options*
    - struct merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5534
      start: 5531
    functionDepth: 0
    functionLinenumber: 5531
    functionLinenumberEnd: 5534
    functionName: copy_merge_options
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_merge_options(struct merge_options *dst, struct merge_options
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5539
      start: 5536
    functionDepth: 0
    functionLinenumber: 5536
    functionLinenumberEnd: 5539
    functionName: clear_merge_options
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_merge_options(struct merge_options *opt UNUSED)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5547,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5549,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5551,1
    - Dst: skip_prefix
      Src: /src/git/merge-ort.c:5553,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5555,1
    - Dst: DIFF_WITH_ALG
      Src: /src/git/merge-ort.c:5556,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5557,1
    - Dst: DIFF_WITH_ALG
      Src: /src/git/merge-ort.c:5558,1
    - Dst: skip_prefix
      Src: /src/git/merge-ort.c:5559,1
    - Dst: parse_algorithm_value
      Src: /src/git/merge-ort.c:5560,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5567,1
    - Dst: DIFF_XDL_SET
      Src: /src/git/merge-ort.c:5568,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5569,1
    - Dst: DIFF_XDL_SET
      Src: /src/git/merge-ort.c:5570,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5571,1
    - Dst: DIFF_XDL_SET
      Src: /src/git/merge-ort.c:5572,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5573,1
    - Dst: DIFF_XDL_SET
      Src: /src/git/merge-ort.c:5574,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5575,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5577,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5579,1
    - Dst: strcmp
      Src: /src/git/merge-ort.c:5581,1
    - Dst: skip_prefix
      Src: /src/git/merge-ort.c:5585,1
    - Dst: skip_prefix
      Src: /src/git/merge-ort.c:5586,1
    - Dst: parse_rename_score
      Src: /src/git/merge-ort.c:5587,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 2
    argNames:
    - opt
    - s
    argTypes:
    - struct merge_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5598
      start: 5541
    functionDepth: 1
    functionLinenumber: 5541
    functionLinenumberEnd: 5598
    functionName: parse_merge_opt
    functionSourceFile: /src/git/merge-ort.c
    functionUses: 0
    functionsReached:
    - parse_rename_score
    - DIFF_XDL_SET
    - DIFF_WITH_ALG
    - parse_algorithm_value
    - strcmp
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int parse_merge_opt(struct merge_options *opt, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: __ac_isempty
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_isempty(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: __ac_isdel
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_isdel(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: __ac_iseither
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_iseither(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: __ac_set_isdel_false
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_set_isdel_false(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: __ac_set_isempty_false
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_set_isempty_false(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: __ac_set_isboth_false
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_set_isboth_false(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flag
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: __ac_set_isdel_true
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_set_isdel_true(flag, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: __ac_fsize
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ac_fsize(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: kroundup32
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kroundup32(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: __ac_X31_hash_string
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: khint_t
    signature: khint_t __ac_X31_hash_string(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: kh_str_hash_func
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_str_hash_func(key)
  - 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: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: kh_str_hash_equal
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_str_hash_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - khkey_t
    - ','
    - khval_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: __KHASH_TYPE
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KHASH_TYPE(name, khkey_t, khval_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - khkey_t
    - ','
    - khval_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: __KHASH_PROTOTYPES
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KHASH_PROTOTYPES(name, khkey_t, khval_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name
    - ','
    - SCOPE
    - ','
    - khkey_t
    - ','
    - khval_t
    - ','
    - kh_is_map
    - ','
    - __hash_func
    - ','
    - __hash_equal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 119
    functionName: __KHASH_IMPL
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __KHASH_IMPL(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func,
      __hash_equal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - khkey_t
    - ','
    - khval_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: KHASH_DECLARE
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_DECLARE(name, khkey_t, khval_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name
    - ','
    - SCOPE
    - ','
    - khkey_t
    - ','
    - khval_t
    - ','
    - kh_is_map
    - ','
    - __hash_func
    - ','
    - __hash_equal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: KHASH_INIT2
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_INIT2(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func,
      __hash_equal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - name
    - ','
    - khkey_t
    - ','
    - khval_t
    - ','
    - kh_is_map
    - ','
    - __hash_func
    - ','
    - __hash_equal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: KHASH_INIT
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KHASH_INIT(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: kh_exist
    functionSourceFile: /src/git/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_exist(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: kh_key
    functionSourceFile: /src/git/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_key(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: kh_val
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_val(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: kh_value
    functionSourceFile: /src/git/khash.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_value(h, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: kh_begin
    functionSourceFile: /src/git/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_begin(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: kh_end
    functionSourceFile: /src/git/khash.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_end(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: kh_size
    functionSourceFile: /src/git/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_size(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: kh_n_buckets
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_n_buckets(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - h
    - ','
    - kvar
    - ','
    - vvar
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 308
    functionName: kh_foreach
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_foreach(h, kvar, vvar, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h
    - ','
    - vvar
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: kh_foreach_value
    functionSourceFile: /src/git/khash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kh_foreach_value(h, vvar, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidhash
      Src: /src/git/khash.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: oidhash_by_value
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached:
    - oidhash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int oidhash_by_value(struct object_id oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/khash.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct object_id
    - struct object_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: oideq_by_value
    functionSourceFile: /src/git/khash.h
    functionUses: 0
    functionsReached:
    - oideq
    linkageType: ''
    returnType: int
    signature: int oideq_by_value(struct object_id a, struct object_id b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1DCInit
      Src: /src/git/sha1dc_git.c:11,1
    - Dst: SHA1DCSetSafeHash
      Src: /src/git/sha1dc_git.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: git_SHA1DCInit
    functionSourceFile: /src/git/sha1dc_git.c
    functionUses: 0
    functionsReached:
    - SHA1DCSetSafeHash
    - SHA1DCInit
    linkageType: ''
    returnType: void
    signature: void git_SHA1DCInit(SHA1_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA1DCFinal
      Src: /src/git/sha1dc_git.c:21,1
    - Dst: die
      Src: /src/git/sha1dc_git.c:23,1
    - Dst: hash_to_hex_algop
      Src: /src/git/sha1dc_git.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hash
    - ctx
    argTypes:
    - unsigned char[]
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: git_SHA1DCFinal
    functionSourceFile: /src/git/sha1dc_git.c
    functionUses: 0
    functionsReached:
    - die
    - SHA1DCFinal
    - hash_to_hex_algop
    linkageType: ''
    returnType: void
    signature: void git_SHA1DCFinal(unsigned char hash[20], SHA1_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1DCUpdate
      Src: /src/git/sha1dc_git.c:35,1
    - Dst: SHA1DCUpdate
      Src: /src/git/sha1dc_git.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - vdata
    - len
    argTypes:
    - SHA1_CTX*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: git_SHA1DCUpdate
    functionSourceFile: /src/git/sha1dc_git.c
    functionUses: 0
    functionsReached:
    - SHA1DCUpdate
    linkageType: ''
    returnType: void
    signature: void git_SHA1DCUpdate(SHA1_CTX *ctx, const void *vdata, unsigned long
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: BUG_ON_NON_EMPTY_PREFIX
    functionSourceFile: /src/git/builtin.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_NON_EMPTY_PREFIX(prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/json-writer.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 10
    functionName: jw_init
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void jw_init(struct json_writer *jw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/json-writer.c:14,1
    - Dst: strbuf_release
      Src: /src/git/json-writer.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: jw_release
    functionSourceFile: /src/git/json-writer.c
    functionUses: 3
    functionsReached:
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void jw_release(struct json_writer *jw)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:25,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:28,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:30,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:32,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:34,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:36,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:38,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:40,1
    - Dst: strbuf_addf
      Src: /src/git/json-writer.c:42,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:44,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:46,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 47
    functionName: append_quoted_string
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void append_quoted_string(struct strbuf *out, const char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstrings
      Src: /src/git/json-writer.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: indent_pretty
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - strbuf_addstrings
    linkageType: ''
    returnType: void
    signature: void indent_pretty(struct json_writer *jw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:62,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - jw
    - ch_open
    - pretty
    argTypes:
    - struct json_writer*
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: begin
    functionSourceFile: /src/git/json-writer.c
    functionUses: 15
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void begin(struct json_writer *jw, char ch_open, int pretty)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/json-writer.c:74,1
    - Dst: BUG
      Src: /src/git/json-writer.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - jw
    - key
    argTypes:
    - struct json_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: assert_in_object
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void assert_in_object(const struct json_writer *jw, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/json-writer.c:85,1
    - Dst: BUG
      Src: /src/git/json-writer.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: assert_in_array
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void assert_in_array(const struct json_writer *jw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: maybe_add_comma
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void maybe_add_comma(struct json_writer *jw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/json-writer.c:105,1
    - Dst: strbuf_addf
      Src: /src/git/json-writer.c:108,1
    - Dst: strbuf_addf
      Src: /src/git/json-writer.c:109,1
    - Dst: strbuf_release
      Src: /src/git/json-writer.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - jw
    - precision
    - value
    argTypes:
    - struct json_writer*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: fmt_double
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fmt_double(struct json_writer *jw, int precision,\n\t\t\t      double
      value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_in_object
      Src: /src/git/json-writer.c:116,1
    - Dst: maybe_add_comma
      Src: /src/git/json-writer.c:117,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:120,1
    - Dst: indent_pretty
      Src: /src/git/json-writer.c:121,1
    - Dst: append_quoted_string
      Src: /src/git/json-writer.c:124,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:125,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - jw
    - key
    argTypes:
    - struct json_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: object_common
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - indent_pretty
    - maybe_add_comma
    - strbuf_addch
    - append_quoted_string
    - assert_in_object
    linkageType: ''
    returnType: void
    signature: void object_common(struct json_writer *jw, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_in_array
      Src: /src/git/json-writer.c:132,1
    - Dst: maybe_add_comma
      Src: /src/git/json-writer.c:133,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:136,1
    - Dst: indent_pretty
      Src: /src/git/json-writer.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: array_common
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - indent_pretty
    - assert_in_array
    - maybe_add_comma
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void array_common(struct json_writer *jw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/json-writer.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: assert_is_terminated
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void assert_is_terminated(const struct json_writer *jw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/git/json-writer.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - jw
    - pretty
    argTypes:
    - struct json_writer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: jw_object_begin
    functionSourceFile: /src/git/json-writer.c
    functionUses: 3
    functionsReached:
    - begin
    linkageType: ''
    returnType: void
    signature: void jw_object_begin(struct json_writer *jw, int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_common
      Src: /src/git/json-writer.c:159,1
    - Dst: append_quoted_string
      Src: /src/git/json-writer.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - jw
    - key
    - value
    argTypes:
    - struct json_writer*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: jw_object_string
    functionSourceFile: /src/git/json-writer.c
    functionUses: 1
    functionsReached:
    - object_common
    - append_quoted_string
    linkageType: ''
    returnType: void
    signature: void jw_object_string(struct json_writer *jw, const char *key, const
      char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_common
      Src: /src/git/json-writer.c:165,1
    - Dst: strbuf_addf
      Src: /src/git/json-writer.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - jw
    - key
    - value
    argTypes:
    - struct json_writer*
    - char*
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: jw_object_intmax
    functionSourceFile: /src/git/json-writer.c
    functionUses: 3
    functionsReached:
    - object_common
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void jw_object_intmax(struct json_writer *jw, const char *key, intmax_t
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_common
      Src: /src/git/json-writer.c:172,1
    - Dst: fmt_double
      Src: /src/git/json-writer.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - jw
    - key
    - precision
    - value
    argTypes:
    - struct json_writer*
    - char*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: jw_object_double
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - object_common
    - fmt_double
    linkageType: ''
    returnType: void
    signature: "void jw_object_double(struct json_writer *jw, const char *key, int
      precision,\n\t\t      double value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_common
      Src: /src/git/json-writer.c:178,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jw
    - key
    argTypes:
    - struct json_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: jw_object_true
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - object_common
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void jw_object_true(struct json_writer *jw, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_common
      Src: /src/git/json-writer.c:184,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jw
    - key
    argTypes:
    - struct json_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: jw_object_false
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - object_common
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void jw_object_false(struct json_writer *jw, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_true
      Src: /src/git/json-writer.c:191,1
    - Dst: jw_object_false
      Src: /src/git/json-writer.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - jw
    - key
    - value
    argTypes:
    - struct json_writer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: jw_object_bool
    functionSourceFile: /src/git/json-writer.c
    functionUses: 1
    functionsReached:
    - jw_object_true
    - jw_object_false
    linkageType: ''
    returnType: void
    signature: void jw_object_bool(struct json_writer *jw, const char *key, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_common
      Src: /src/git/json-writer.c:198,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jw
    - key
    argTypes:
    - struct json_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: jw_object_null
    functionSourceFile: /src/git/json-writer.c
    functionUses: 1
    functionsReached:
    - object_common
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void jw_object_null(struct json_writer *jw, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/json-writer.c:208,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:211,1
    - Dst: strbuf_addchars
      Src: /src/git/json-writer.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sb
    - jw
    - indent
    argTypes:
    - struct strbuf*
    - struct json_writer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: increase_indent
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addchars
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void increase_indent(struct strbuf *sb,\n\t\t\t    const struct json_writer
      *jw,\n\t\t\t    int indent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/json-writer.c:223,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - sb
    - jw
    argTypes:
    - struct strbuf*
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 235
    functionName: kill_indent
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void kill_indent(struct strbuf *sb,\n\t\t\tconst struct json_writer
      *jw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: increase_indent
      Src: /src/git/json-writer.c:255,1
    - Dst: strbuf_addbuf
      Src: /src/git/json-writer.c:256,1
    - Dst: strbuf_release
      Src: /src/git/json-writer.c:257,1
    - Dst: kill_indent
      Src: /src/git/json-writer.c:262,1
    - Dst: strbuf_addbuf
      Src: /src/git/json-writer.c:263,1
    - Dst: strbuf_release
      Src: /src/git/json-writer.c:264,1
    - Dst: strbuf_addbuf
      Src: /src/git/json-writer.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - jw
    - value
    argTypes:
    - struct json_writer*
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 269
    functionName: append_sub_jw
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - increase_indent
    - strbuf_addbuf
    - kill_indent
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: "void append_sub_jw(struct json_writer *jw,\n\t\t\t  const struct json_writer
      *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_is_terminated
      Src: /src/git/json-writer.c:274,1
    - Dst: object_common
      Src: /src/git/json-writer.c:276,1
    - Dst: append_sub_jw
      Src: /src/git/json-writer.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - jw
    - key
    - value
    argTypes:
    - struct json_writer*
    - char*
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: jw_object_sub_jw
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - assert_is_terminated
    - object_common
    - append_sub_jw
    linkageType: ''
    returnType: void
    signature: "void jw_object_sub_jw(struct json_writer *jw, const char *key,\n\t\t
      \     const struct json_writer *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_common
      Src: /src/git/json-writer.c:282,1
    - Dst: jw_object_begin
      Src: /src/git/json-writer.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jw
    - key
    argTypes:
    - struct json_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: jw_object_inline_begin_object
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - object_common
    - jw_object_begin
    linkageType: ''
    returnType: void
    signature: void jw_object_inline_begin_object(struct json_writer *jw, const char
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_common
      Src: /src/git/json-writer.c:289,1
    - Dst: jw_array_begin
      Src: /src/git/json-writer.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jw
    - key
    argTypes:
    - struct json_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: jw_object_inline_begin_array
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - object_common
    - jw_array_begin
    linkageType: ''
    returnType: void
    signature: void jw_object_inline_begin_array(struct json_writer *jw, const char
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/git/json-writer.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - jw
    - pretty
    argTypes:
    - struct json_writer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: jw_array_begin
    functionSourceFile: /src/git/json-writer.c
    functionUses: 1
    functionsReached:
    - begin
    linkageType: ''
    returnType: void
    signature: void jw_array_begin(struct json_writer *jw, int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_common
      Src: /src/git/json-writer.c:301,1
    - Dst: append_quoted_string
      Src: /src/git/json-writer.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jw
    - value
    argTypes:
    - struct json_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: jw_array_string
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - append_quoted_string
    - array_common
    linkageType: ''
    returnType: void
    signature: void jw_array_string(struct json_writer *jw, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_common
      Src: /src/git/json-writer.c:307,1
    - Dst: strbuf_addf
      Src: /src/git/json-writer.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jw
    - value
    argTypes:
    - struct json_writer*
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: jw_array_intmax
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - array_common
    linkageType: ''
    returnType: void
    signature: void jw_array_intmax(struct json_writer *jw, intmax_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_common
      Src: /src/git/json-writer.c:313,1
    - Dst: fmt_double
      Src: /src/git/json-writer.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - jw
    - precision
    - value
    argTypes:
    - struct json_writer*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: jw_array_double
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - fmt_double
    - array_common
    linkageType: ''
    returnType: void
    signature: void jw_array_double(struct json_writer *jw, int precision, double
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_common
      Src: /src/git/json-writer.c:319,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: jw_array_true
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    - array_common
    linkageType: ''
    returnType: void
    signature: void jw_array_true(struct json_writer *jw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_common
      Src: /src/git/json-writer.c:325,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: jw_array_false
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    - array_common
    linkageType: ''
    returnType: void
    signature: void jw_array_false(struct json_writer *jw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jw_array_true
      Src: /src/git/json-writer.c:332,1
    - Dst: jw_array_false
      Src: /src/git/json-writer.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - jw
    - value
    argTypes:
    - struct json_writer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: jw_array_bool
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - jw_array_false
    - jw_array_true
    linkageType: ''
    returnType: void
    signature: void jw_array_bool(struct json_writer *jw, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_common
      Src: /src/git/json-writer.c:339,1
    - Dst: strbuf_addstr
      Src: /src/git/json-writer.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: jw_array_null
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    - array_common
    linkageType: ''
    returnType: void
    signature: void jw_array_null(struct json_writer *jw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_is_terminated
      Src: /src/git/json-writer.c:345,1
    - Dst: array_common
      Src: /src/git/json-writer.c:347,1
    - Dst: append_sub_jw
      Src: /src/git/json-writer.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - jw
    - value
    argTypes:
    - struct json_writer*
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: jw_array_sub_jw
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - assert_is_terminated
    - append_sub_jw
    - array_common
    linkageType: ''
    returnType: void
    signature: void jw_array_sub_jw(struct json_writer *jw, const struct json_writer
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_array_string
      Src: /src/git/json-writer.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - jw
    - argc
    - argv
    argTypes:
    - struct json_writer*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: jw_array_argc_argv
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - jw_array_string
    linkageType: ''
    returnType: void
    signature: void jw_array_argc_argv(struct json_writer *jw, int argc, const char
      **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_array_string
      Src: /src/git/json-writer.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - jw
    - argv
    argTypes:
    - struct json_writer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 4
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: jw_array_argv
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - jw_array_string
    linkageType: ''
    returnType: void
    signature: void jw_array_argv(struct json_writer *jw, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_common
      Src: /src/git/json-writer.c:367,1
    - Dst: jw_object_begin
      Src: /src/git/json-writer.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: jw_array_inline_begin_object
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - jw_object_begin
    - array_common
    linkageType: ''
    returnType: void
    signature: void jw_array_inline_begin_object(struct json_writer *jw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_common
      Src: /src/git/json-writer.c:374,1
    - Dst: jw_array_begin
      Src: /src/git/json-writer.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: jw_array_inline_begin_array
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached:
    - jw_array_begin
    - array_common
    linkageType: ''
    returnType: void
    signature: void jw_array_inline_begin_array(struct json_writer *jw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: jw_is_terminated
    functionSourceFile: /src/git/json-writer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int jw_is_terminated(const struct json_writer *jw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/json-writer.c:390,1
    - Dst: strbuf_setlen
      Src: /src/git/json-writer.c:395,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:399,1
    - Dst: indent_pretty
      Src: /src/git/json-writer.c:400,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:404,1
    - Dst: strbuf_addch
      Src: /src/git/json-writer.c:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - jw
    argTypes:
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 407
    functionName: jw_end
    functionSourceFile: /src/git/json-writer.c
    functionUses: 3
    functionsReached:
    - indent_pretty
    - BUG
    - strbuf_setlen
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void jw_end(struct json_writer *jw)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: get_conv_flags
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_conv_flags(unsigned flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/object-file.c:57,1
    - Dst: strbuf_addch
      Src: /src/git/object-file.c:58,1
    - Dst: strbuf_addch
      Src: /src/git/object-file.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - oid
    - algop
    argTypes:
    - struct strbuf*
    - struct object_id*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: fill_loose_path
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void fill_loose_path(struct strbuf *buf,\n\t\t\t    const struct object_id
      *oid,\n\t\t\t    const struct git_hash_algo *algop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/object-file.c:68,1
    - Dst: strbuf_addstr
      Src: /src/git/object-file.c:69,1
    - Dst: strbuf_addch
      Src: /src/git/object-file.c:70,1
    - Dst: fill_loose_path
      Src: /src/git/object-file.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buf
    - oid
    argTypes:
    - struct odb_source*
    - struct strbuf*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: odb_loose_path
    functionSourceFile: /src/git/object-file.c
    functionUses: 2
    functionsReached:
    - strbuf_reset
    - fill_loose_path
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: "char *odb_loose_path(struct odb_source *source,\n\t\t\t   struct strbuf
      *buf,\n\t\t\t   const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utime
      Src: /src/git/object-file.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: freshen_file
    functionSourceFile: /src/git/object-file.c
    functionUses: 1
    functionsReached:
    - utime
    linkageType: ''
    returnType: int
    signature: int freshen_file(const char *fn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/git/object-file.c:90,1
    - Dst: freshen_file
      Src: /src/git/object-file.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - fn
    - freshen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: check_and_freshen_file
    functionSourceFile: /src/git/object-file.c
    functionUses: 1
    functionsReached:
    - freshen_file
    - access
    linkageType: ''
    returnType: int
    signature: int check_and_freshen_file(const char *fn, int freshen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_loose_path
      Src: /src/git/object-file.c:102,1
    - Dst: check_and_freshen_file
      Src: /src/git/object-file.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - oid
    - freshen
    argTypes:
    - struct odb_source*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: check_and_freshen_source
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - check_and_freshen_file
    - odb_loose_path
    linkageType: ''
    returnType: int
    signature: "int check_and_freshen_source(struct odb_source *source,\n\t\t\t\t
      \   const struct object_id *oid,\n\t\t\t\t    int freshen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_and_freshen_source
      Src: /src/git/object-file.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - oid
    argTypes:
    - struct odb_source*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: odb_source_loose_has_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - check_and_freshen_source
    linkageType: ''
    returnType: int
    signature: "int odb_source_loose_has_object(struct odb_source *source,\n\t\t\t\tconst
      struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type_name
      Src: /src/git/object-file.c:115,1
    - Dst: BUG
      Src: /src/git/object-file.c:118,1
    - Dst: xsnprintf
      Src: /src/git/object-file.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - str
    - size
    - type
    - objsize
    argTypes:
    - char*
    - size_t
    - enum object_type
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: format_object_header
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - type_name
    - BUG
    - xsnprintf
    linkageType: ''
    returnType: int
    signature: "int format_object_header(char *str, size_t size, enum object_type
      type,\n\t\t\t size_t objsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_object_file
      Src: /src/git/object-file.c:131,1
    - Dst: oideq
      Src: /src/git/object-file.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - r
    - oid
    - buf
    - size
    - type
    argTypes:
    - struct repository*
    - struct object_id*
    - void*
    - unsigned long
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: check_object_signature
    functionSourceFile: /src/git/object-file.c
    functionUses: 1
    functionsReached:
    - hash_object_file
    - oideq
    linkageType: ''
    returnType: int
    signature: "int check_object_signature(struct repository *r, const struct object_id
      *oid,\n\t\t\t   void *buf, unsigned long size,\n\t\t\t   enum object_type type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_object_header
      Src: /src/git/object-file.c:146,1
    - Dst: struct repository*::hash_algo::init_fn
      Src: /src/git/object-file.c:149,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:150,1
    - Dst: odb_read_stream_read
      Src: /src/git/object-file.c:153,1
    - Dst: odb_read_stream_close
      Src: /src/git/object-file.c:156,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:161,1
    - Dst: git_hash_final_oid
      Src: /src/git/object-file.c:163,1
    - Dst: oideq
      Src: /src/git/object-file.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - r
    - st
    - oid
    argTypes:
    - struct repository*
    - struct odb_read_stream*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 165
    functionName: stream_object_signature
    functionSourceFile: /src/git/object-file.c
    functionUses: 1
    functionsReached:
    - odb_read_stream_close
    - struct repository*::hash_algo::init_fn
    - format_object_header
    - git_hash_final_oid
    - odb_read_stream_read
    - git_hash_update
    - oideq
    linkageType: ''
    returnType: int
    signature: "int stream_object_signature(struct repository *r,\n\t\t\t    struct
      odb_read_stream *st,\n\t\t\t    const struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_loose_path
      Src: /src/git/object-file.c:181,1
    - Dst: git_open
      Src: /src/git/object-file.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - loose
    - oid
    - path
    argTypes:
    - struct odb_source_loose*
    - struct object_id*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 187
    functionName: open_loose_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - git_open
    - odb_loose_path
    linkageType: ''
    returnType: int
    signature: "int open_loose_object(struct odb_source_loose *loose,\n\t\t\t     const
      struct object_id *oid, const char **path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidtree_contains
      Src: /src/git/object-file.c:192,1
    - Dst: odb_source_loose_cache
      Src: /src/git/object-file.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - loose
    - oid
    argTypes:
    - struct odb_source_loose*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: quick_has_loose
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - odb_source_loose_cache
    - oidtree_contains
    linkageType: ''
    returnType: int
    signature: "int quick_has_loose(struct odb_source_loose *loose,\n\t\t\t   const
      struct object_id *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/git/object-file.c:204,1
    - Dst: xsize_t
      Src: /src/git/object-file.c:205,1
    - Dst: error
      Src: /src/git/object-file.c:208,1
    - Dst: _
      Src: /src/git/object-file.c:208,1
    - Dst: close
      Src: /src/git/object-file.c:209,1
    - Dst: xmmap
      Src: /src/git/object-file.c:212,1
    - Dst: close
      Src: /src/git/object-file.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - path
    - size
    argTypes:
    - int
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: map_fd
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error
    - fstat
    - xmmap
    - xsize_t
    - _
    - close
    linkageType: ''
    returnType: void
    signature: void *map_fd(int fd, const char *path, unsigned long *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/object-file.c:222,1
    - Dst: open_loose_object
      Src: /src/git/object-file.c:224,1
    - Dst: map_fd
      Src: /src/git/object-file.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - source
    - oid
    - size
    argTypes:
    - struct odb_source*
    - struct object_id*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: odb_source_loose_map_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - open_loose_object
    - map_fd
    - odb_source_files_downcast
    linkageType: ''
    returnType: void
    signature: "void *odb_source_loose_map_object(struct odb_source *source,\n\t\t\t\t\t
      const struct object_id *oid,\n\t\t\t\t\t unsigned long *size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/object-file.c:258,1
    - Dst: git_inflate_init
      Src: /src/git/object-file.c:264,1
    - Dst: obj_read_unlock
      Src: /src/git/object-file.c:265,1
    - Dst: git_inflate
      Src: /src/git/object-file.c:266,1
    - Dst: obj_read_lock
      Src: /src/git/object-file.c:267,1
    - Dst: memchr
      Src: /src/git/object-file.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - stream
    - map
    - mapsize
    - buffer
    - bufsiz
    argTypes:
    - git_zstream*
    - unsigned char*
    - unsigned long
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 281
    functionName: unpack_loose_header
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - memset
    - memchr
    - obj_read_lock
    - git_inflate
    - obj_read_unlock
    - git_inflate_init
    linkageType: ''
    returnType: enum unpack_loose_header_result
    signature: "enum unpack_loose_header_result unpack_loose_header(git_zstream *stream,\n\t\t\t\t\t\t\t
      \  unsigned char *map,\n\t\t\t\t\t\t\t   unsigned long mapsize,\n\t\t\t\t\t\t\t
      \  void *buffer,\n\t\t\t\t\t\t\t   unsigned long bufsiz)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/object-file.c:287,1
    - Dst: xmallocz
      Src: /src/git/object-file.c:288,1
    - Dst: memcpy
      Src: /src/git/object-file.c:294,1
    - Dst: obj_read_unlock
      Src: /src/git/object-file.c:313,1
    - Dst: git_inflate
      Src: /src/git/object-file.c:314,1
    - Dst: obj_read_lock
      Src: /src/git/object-file.c:315,1
    - Dst: error
      Src: /src/git/object-file.c:320,1
    - Dst: _
      Src: /src/git/object-file.c:320,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:320,1
    - Dst: FREE_AND_NULL
      Src: /src/git/object-file.c:321,1
    - Dst: error
      Src: /src/git/object-file.c:323,1
    - Dst: _
      Src: /src/git/object-file.c:323,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:324,1
    - Dst: FREE_AND_NULL
      Src: /src/git/object-file.c:325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - stream
    - buffer
    - size
    - oid
    argTypes:
    - git_zstream*
    - void*
    - unsigned long
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 329
    functionName: unpack_loose_rest
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - xmallocz
    - obj_read_lock
    - git_inflate
    - memcpy
    - obj_read_unlock
    - strlen
    - _
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: "void *unpack_loose_rest(git_zstream *stream,\n\t\t\t       void *buffer,
      unsigned long size,\n\t\t\t       const struct object_id *oid)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: type_from_string_gently
      Src: /src/git/object-file.c:362,1
    - Dst: st_add
      Src: /src/git/object-file.c:379,1
    - Dst: st_mult
      Src: /src/git/object-file.c:379,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/object-file.c:384,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - hdr
    - oi
    argTypes:
    - char*
    - struct object_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 397
    functionName: parse_loose_header
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - st_add
    - cast_size_t_to_ulong
    - type_from_string_gently
    - st_mult
    linkageType: ''
    returnType: int
    signature: int parse_loose_header(const char *hdr, struct object_info *oi)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/object-file.c:405,1
    - Dst: quick_has_loose
      Src: /src/git/object-file.c:428,1
    - Dst: lstat
      Src: /src/git/object-file.c:432,1
    - Dst: git_open
      Src: /src/git/object-file.c:448,1
    - Dst: error_errno
      Src: /src/git/object-file.c:451,1
    - Dst: _
      Src: /src/git/object-file.c:451,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:451,1
    - Dst: fstat
      Src: /src/git/object-file.c:456,1
    - Dst: close
      Src: /src/git/object-file.c:457,1
    - Dst: xsize_t
      Src: /src/git/object-file.c:462,1
    - Dst: close
      Src: /src/git/object-file.c:464,1
    - Dst: error
      Src: /src/git/object-file.c:465,1
    - Dst: _
      Src: /src/git/object-file.c:465,1
    - Dst: xmmap
      Src: /src/git/object-file.c:469,1
    - Dst: close
      Src: /src/git/object-file.c:470,1
    - Dst: unpack_loose_header
      Src: /src/git/object-file.c:483,1
    - Dst: parse_loose_header
      Src: /src/git/object-file.c:490,1
    - Dst: error
      Src: /src/git/object-file.c:491,1
    - Dst: _
      Src: /src/git/object-file.c:491,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:491,1
    - Dst: die
      Src: /src/git/object-file.c:496,1
    - Dst: _
      Src: /src/git/object-file.c:496,1
    - Dst: unpack_loose_rest
      Src: /src/git/object-file.c:499,1
    - Dst: error
      Src: /src/git/object-file.c:508,1
    - Dst: _
      Src: /src/git/object-file.c:508,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:509,1
    - Dst: error
      Src: /src/git/object-file.c:512,1
    - Dst: _
      Src: /src/git/object-file.c:512,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:513,1
    - Dst: die
      Src: /src/git/object-file.c:521,1
    - Dst: _
      Src: /src/git/object-file.c:521,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:522,1
    - Dst: git_inflate_end
      Src: /src/git/object-file.c:526,1
    - Dst: munmap
      Src: /src/git/object-file.c:528,1
    - Dst: oidclr
      Src: /src/git/object-file.c:535,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 108
    argCount: 5
    argNames:
    - source
    - path
    - oid
    - oi
    - flags
    argTypes:
    - struct odb_source*
    - char*
    - struct object_id*
    - struct object_info*
    - enum object_info_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 541
    functionName: read_object_info_from_path
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error_errno
    - git_open
    - xsize_t
    - oidclr
    - error
    - die
    - odb_source_files_downcast
    - close
    - munmap
    - oid_to_hex
    - quick_has_loose
    - _
    - unpack_loose_rest
    - fstat
    - xmmap
    - parse_loose_header
    - unpack_loose_header
    - lstat
    - git_inflate_end
    linkageType: ''
    returnType: int
    signature: "int read_object_info_from_path(struct odb_source *source,\n\t\t\t\t
      \     const char *path,\n\t\t\t\t      const struct object_id *oid,\n\t\t\t\t
      \     struct object_info *oi,\n\t\t\t\t      enum object_info_flags flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_loose_path
      Src: /src/git/object-file.c:559,1
    - Dst: read_object_info_from_path
      Src: /src/git/object-file.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - source
    - oid
    - oi
    - flags
    argTypes:
    - struct odb_source*
    - struct object_id*
    - struct object_info*
    - enum object_info_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 561
    functionName: odb_source_loose_read_object_info
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - read_object_info_from_path
    - odb_loose_path
    linkageType: ''
    returnType: int
    signature: "int odb_source_loose_read_object_info(struct odb_source *source,\n\t\t\t\t
      \     const struct object_id *oid,\n\t\t\t\t      struct object_info *oi,\n\t\t\t\t
      \     enum object_info_flags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/object-file.c:568,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:569,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:570,1
    - Dst: git_hash_final_oid
      Src: /src/git/object-file.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - algo
    - c
    - buf
    - len
    - oid
    - hdr
    - hdrlen
    argTypes:
    - struct git_hash_algo*
    - struct git_hash_ctx*
    - void*
    - unsigned long
    - struct object_id*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 572
    functionName: hash_object_body
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - git_hash_update
    - struct git_hash_algo*::init_fn
    - git_hash_final_oid
    linkageType: ''
    returnType: void
    signature: "void hash_object_body(const struct git_hash_algo *algo, struct git_hash_ctx
      *c,\n\t\t\t     const void *buf, unsigned long len,\n\t\t\t     struct object_id
      *oid,\n\t\t\t     char *hdr, int *hdrlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_object_header
      Src: /src/git/object-file.c:582,1
    - Dst: hash_object_body
      Src: /src/git/object-file.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - algo
    - buf
    - len
    - type
    - oid
    - hdr
    - hdrlen
    argTypes:
    - struct git_hash_algo*
    - void*
    - unsigned long
    - enum object_type
    - struct object_id*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 586
    functionName: write_object_file_prepare
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - format_object_header
    - hash_object_body
    linkageType: ''
    returnType: void
    signature: "void write_object_file_prepare(const struct git_hash_algo *algo,\n\t\t\t\t
      \     const void *buf, unsigned long len,\n\t\t\t\t      enum object_type type,
      struct object_id *oid,\n\t\t\t\t      char *hdr, int *hdrlen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/object-file.c:596,1
    - Dst: error_errno
      Src: /src/git/object-file.c:598,1
    - Dst: _
      Src: /src/git/object-file.c:598,1
    - Dst: open
      Src: /src/git/object-file.c:602,1
    - Dst: error_errno
      Src: /src/git/object-file.c:605,1
    - Dst: _
      Src: /src/git/object-file.c:605,1
    - Dst: read_in_full
      Src: /src/git/object-file.c:614,1
    - Dst: error_errno
      Src: /src/git/object-file.c:616,1
    - Dst: _
      Src: /src/git/object-file.c:616,1
    - Dst: read_in_full
      Src: /src/git/object-file.c:620,1
    - Dst: error_errno
      Src: /src/git/object-file.c:622,1
    - Dst: _
      Src: /src/git/object-file.c:622,1
    - Dst: memcmp
      Src: /src/git/object-file.c:626,1
    - Dst: error
      Src: /src/git/object-file.c:627,1
    - Dst: _
      Src: /src/git/object-file.c:627,1
    - Dst: close
      Src: /src/git/object-file.c:638,1
    - Dst: close
      Src: /src/git/object-file.c:640,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 642
    functionName: check_collision
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - open
    - read_in_full
    - _
    - close
    - memcmp
    linkageType: ''
    returnType: int
    signature: int check_collision(const char *source, const char *dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finalize_object_file_flags
      Src: /src/git/object-file.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - repo
    - tmpfile
    - filename
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: finalize_object_file
    functionSourceFile: /src/git/object-file.c
    functionUses: 2
    functionsReached:
    - finalize_object_file_flags
    linkageType: ''
    returnType: int
    signature: "int finalize_object_file(struct repository *repo,\n\t\t\t const char
      *tmpfile, const char *filename)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: link
      Src: /src/git/object-file.c:665,1
    - Dst: unlink_or_warn
      Src: /src/git/object-file.c:668,1
    - Dst: stat
      Src: /src/git/object-file.c:685,1
    - Dst: rename
      Src: /src/git/object-file.c:687,1
    - Dst: unlink_or_warn
      Src: /src/git/object-file.c:695,1
    - Dst: error_errno
      Src: /src/git/object-file.c:697,1
    - Dst: _
      Src: /src/git/object-file.c:697,1
    - Dst: check_collision
      Src: /src/git/object-file.c:700,1
    - Dst: error
      Src: /src/git/object-file.c:703,1
    - Dst: _
      Src: /src/git/object-file.c:703,1
    - Dst: unlink_or_warn
      Src: /src/git/object-file.c:710,1
    - Dst: adjust_shared_perm
      Src: /src/git/object-file.c:714,1
    - Dst: error
      Src: /src/git/object-file.c:715,1
    - Dst: _
      Src: /src/git/object-file.c:715,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 4
    argNames:
    - repo
    - tmpfile
    - filename
    - flags
    argTypes:
    - struct repository*
    - char*
    - char*
    - enum finalize_object_file_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 717
    functionName: finalize_object_file_flags
    functionSourceFile: /src/git/object-file.c
    functionUses: 1
    functionsReached:
    - error
    - error_errno
    - unlink_or_warn
    - stat
    - rename
    - link
    - _
    - check_collision
    - adjust_shared_perm
    linkageType: ''
    returnType: int
    signature: "int finalize_object_file_flags(struct repository *repo,\n\t\t\t       const
      char *tmpfile, const char *filename,\n\t\t\t       enum finalize_object_file_flags
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_object_file_prepare
      Src: /src/git/object-file.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - algo
    - buf
    - len
    - type
    - oid
    argTypes:
    - struct git_hash_algo*
    - void*
    - unsigned long
    - enum object_type
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 727
    functionName: hash_object_file
    functionSourceFile: /src/git/object-file.c
    functionUses: 4
    functionsReached:
    - write_object_file_prepare
    linkageType: ''
    returnType: void
    signature: "void hash_object_file(const struct git_hash_algo *algo, const void
      *buf,\n\t\t      unsigned long len, enum object_type type,\n\t\t      struct
      object_id *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of_or_null
      Src: /src/git/object-file.c:750,1
    - Dst: tmp_objdir_create
      Src: /src/git/object-file.c:761,1
    - Dst: tmp_objdir_replace_primary_odb
      Src: /src/git/object-file.c:763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct odb_transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 764
    functionName: prepare_loose_object_transaction
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - tmp_objdir_replace_primary_odb
    - container_of_or_null
    - tmp_objdir_create
    linkageType: ''
    returnType: void
    signature: void prepare_loose_object_transaction(struct odb_transaction *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of_or_null
      Src: /src/git/object-file.c:770,1
    - Dst: git_fsync
      Src: /src/git/object-file.c:780,1
    - Dst: warning
      Src: /src/git/object-file.c:782,1
    - Dst: _
      Src: /src/git/object-file.c:782,1
    - Dst: fsync_or_die
      Src: /src/git/object-file.c:783,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - base
    - fd
    - filename
    argTypes:
    - struct odb_transaction*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 785
    functionName: fsync_loose_object_transaction
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - container_of_or_null
    - git_fsync
    - fsync_or_die
    - _
    - warning
    linkageType: ''
    returnType: void
    signature: "void fsync_loose_object_transaction(struct odb_transaction *base,\n\t\t\t\t\t
      \  int fd, const char *filename)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/object-file.c:807,1
    - Dst: repo_get_object_directory
      Src: /src/git/object-file.c:808,1
    - Dst: xmks_tempfile
      Src: /src/git/object-file.c:809,1
    - Dst: fsync_or_die
      Src: /src/git/object-file.c:810,1
    - Dst: get_tempfile_fd
      Src: /src/git/object-file.c:810,1
    - Dst: get_tempfile_path
      Src: /src/git/object-file.c:810,1
    - Dst: delete_tempfile
      Src: /src/git/object-file.c:811,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:812,1
    - Dst: tmp_objdir_migrate
      Src: /src/git/object-file.c:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - transaction
    argTypes:
    - struct odb_transaction_files*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 820
    functionName: flush_loose_object_transaction
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - delete_tempfile
    - strbuf_release
    - tmp_objdir_migrate
    - strbuf_addf
    - fsync_or_die
    - get_tempfile_fd
    - repo_get_object_directory
    - xmks_tempfile
    - get_tempfile_path
    linkageType: ''
    returnType: void
    signature: void flush_loose_object_transaction(struct odb_transaction_files *transaction)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: batch_fsync_enabled
      Src: /src/git/object-file.c:829,1
    - Dst: fsync_loose_object_transaction
      Src: /src/git/object-file.c:830,1
    - Dst: fsync_or_die
      Src: /src/git/object-file.c:832,1
    - Dst: fsync_component_or_die
      Src: /src/git/object-file.c:834,1
    - Dst: close
      Src: /src/git/object-file.c:838,1
    - Dst: die_errno
      Src: /src/git/object-file.c:839,1
    - Dst: _
      Src: /src/git/object-file.c:839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - source
    - fd
    - filename
    argTypes:
    - struct odb_source*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 840
    functionName: close_loose_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - fsync_loose_object_transaction
    - die_errno
    - fsync_or_die
    - _
    - close
    - batch_fsync_enabled
    - fsync_component_or_die
    linkageType: ''
    returnType: void
    signature: "void close_loose_object(struct odb_source *source,\n\t\t\t       int
      fd, const char *filename)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/object-file.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 849
    functionName: directory_size
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: int
    signature: int directory_size(const char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: directory_size
      Src: /src/git/object-file.c:861,1
    - Dst: strbuf_reset
      Src: /src/git/object-file.c:863,1
    - Dst: strbuf_add
      Src: /src/git/object-file.c:864,1
    - Dst: strbuf_addstr
      Src: /src/git/object-file.c:865,1
    - Dst: git_mkstemp_mode
      Src: /src/git/object-file.c:866,1
    - Dst: strbuf_reset
      Src: /src/git/object-file.c:874,1
    - Dst: strbuf_add
      Src: /src/git/object-file.c:875,1
    - Dst: mkdir
      Src: /src/git/object-file.c:876,1
    - Dst: adjust_shared_perm
      Src: /src/git/object-file.c:878,1
    - Dst: strbuf_addstr
      Src: /src/git/object-file.c:882,1
    - Dst: git_mkstemp_mode
      Src: /src/git/object-file.c:883,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - repo
    - tmp
    - filename
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 886
    functionName: create_tmpfile
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - mkdir
    - directory_size
    - strbuf_addstr
    - adjust_shared_perm
    - git_mkstemp_mode
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int create_tmpfile(struct repository *repo,\n\t\t\t  struct strbuf
      *tmp, const char *filename)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_tmpfile
      Src: /src/git/object-file.c:911,1
    - Dst: error
      Src: /src/git/object-file.c:916,1
    - Dst: _
      Src: /src/git/object-file.c:916,1
    - Dst: error_errno
      Src: /src/git/object-file.c:920,1
    - Dst: _
      Src: /src/git/object-file.c:921,1
    - Dst: git_deflate_init
      Src: /src/git/object-file.c:925,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/object-file.c:928,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/object-file.c:930,1
    - Dst: git_deflate
      Src: /src/git/object-file.c:935,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:937,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:939,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 11
    argNames:
    - source
    - tmp_file
    - filename
    - flags
    - stream
    - buf
    - buflen
    - c
    - compat_c
    - hdr
    - hdrlen
    argTypes:
    - struct odb_source*
    - struct strbuf*
    - char*
    - unsigned
    - git_zstream*
    - unsigned char*
    - size_t
    - struct git_hash_ctx*
    - struct git_hash_ctx*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 942
    functionName: start_loose_object_common
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - git_deflate_init
    - git_deflate
    - _
    - git_hash_update
    - struct git_hash_algo*::init_fn
    - create_tmpfile
    linkageType: ''
    returnType: int
    signature: "int start_loose_object_common(struct odb_source *source,\n\t\t\t\t
      \    struct strbuf *tmp_file,\n\t\t\t\t     const char *filename, unsigned flags,\n\t\t\t\t
      \    git_zstream *stream,\n\t\t\t\t     unsigned char *buf, size_t buflen,\n\t\t\t\t
      \    struct git_hash_ctx *c, struct git_hash_ctx *compat_c,\n\t\t\t\t     char
      *hdr, int hdrlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate
      Src: /src/git/object-file.c:958,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:959,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:961,1
    - Dst: write_in_full
      Src: /src/git/object-file.c:962,1
    - Dst: die_errno
      Src: /src/git/object-file.c:963,1
    - Dst: _
      Src: /src/git/object-file.c:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 9
    argNames:
    - source
    - c
    - compat_c
    - stream
    - flush
    - in0
    - fd
    - compressed
    - compressed_len
    argTypes:
    - struct odb_source*
    - struct git_hash_ctx*
    - struct git_hash_ctx*
    - git_zstream*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 968
    functionName: write_loose_object_common
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - git_deflate
    - die_errno
    - _
    - write_in_full
    - git_hash_update
    linkageType: ''
    returnType: int
    signature: "int write_loose_object_common(struct odb_source *source,\n\t\t\t\t
      \    struct git_hash_ctx *c, struct git_hash_ctx *compat_c,\n\t\t\t\t     git_zstream
      *stream, const int flush,\n\t\t\t\t     unsigned char *in0, const int fd,\n\t\t\t\t
      \    unsigned char *compressed,\n\t\t\t\t     const size_t compressed_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate_end_gently
      Src: /src/git/object-file.c:984,1
    - Dst: git_hash_final_oid
      Src: /src/git/object-file.c:987,1
    - Dst: git_hash_final_oid
      Src: /src/git/object-file.c:989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - source
    - c
    - compat_c
    - stream
    - oid
    - compat_oid
    argTypes:
    - struct odb_source*
    - struct git_hash_ctx*
    - struct git_hash_ctx*
    - git_zstream*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 992
    functionName: end_loose_object_common
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - git_deflate_end_gently
    - git_hash_final_oid
    linkageType: ''
    returnType: int
    signature: "int end_loose_object_common(struct odb_source *source,\n\t\t\t\t   struct
      git_hash_ctx *c, struct git_hash_ctx *compat_c,\n\t\t\t\t   git_zstream *stream,
      struct object_id *oid,\n\t\t\t\t   struct object_id *compat_oid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: batch_fsync_enabled
      Src: /src/git/object-file.c:1007,1
    - Dst: prepare_loose_object_transaction
      Src: /src/git/object-file.c:1008,1
    - Dst: odb_loose_path
      Src: /src/git/object-file.c:1010,1
    - Dst: start_loose_object_common
      Src: /src/git/object-file.c:1012,1
    - Dst: write_loose_object_common
      Src: /src/git/object-file.c:1024,1
    - Dst: die
      Src: /src/git/object-file.c:1029,1
    - Dst: _
      Src: /src/git/object-file.c:1029,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:1029,1
    - Dst: end_loose_object_common
      Src: /src/git/object-file.c:1031,1
    - Dst: die
      Src: /src/git/object-file.c:1033,1
    - Dst: _
      Src: /src/git/object-file.c:1033,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:1033,1
    - Dst: oideq
      Src: /src/git/object-file.c:1035,1
    - Dst: die
      Src: /src/git/object-file.c:1036,1
    - Dst: _
      Src: /src/git/object-file.c:1036,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:1037,1
    - Dst: close_loose_object
      Src: /src/git/object-file.c:1039,1
    - Dst: utime
      Src: /src/git/object-file.c:1045,1
    - Dst: warning_errno
      Src: /src/git/object-file.c:1047,1
    - Dst: _
      Src: /src/git/object-file.c:1047,1
    - Dst: finalize_object_file_flags
      Src: /src/git/object-file.c:1050,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 8
    argNames:
    - source
    - oid
    - hdr
    - hdrlen
    - buf
    - len
    - mtime
    - flags
    argTypes:
    - struct odb_source*
    - struct object_id*
    - char*
    - int
    - void*
    - unsigned long
    - time_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 994
    functionDepth: 3
    functionLinenumber: 994
    functionLinenumberEnd: 1052
    functionName: write_loose_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - oideq
    - end_loose_object_common
    - close_loose_object
    - prepare_loose_object_transaction
    - warning_errno
    - start_loose_object_common
    - utime
    - finalize_object_file_flags
    - odb_loose_path
    - write_loose_object_common
    - batch_fsync_enabled
    - _
    linkageType: ''
    returnType: int
    signature: "int write_loose_object(struct odb_source *source,\n\t\t\t      const
      struct object_id *oid, char *hdr,\n\t\t\t      int hdrlen, const void *buf,
      unsigned long len,\n\t\t\t      time_t mtime, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_and_freshen_source
      Src: /src/git/object-file.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - oid
    argTypes:
    - struct odb_source*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1054
    functionDepth: 4
    functionLinenumber: 1054
    functionLinenumberEnd: 1058
    functionName: odb_source_loose_freshen_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - check_and_freshen_source
    linkageType: ''
    returnType: int
    signature: "int odb_source_loose_freshen_object(struct odb_source *source,\n\t\t\t\t
      \   const struct object_id *oid)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: batch_fsync_enabled
      Src: /src/git/object-file.c:1077,1
    - Dst: prepare_loose_object_transaction
      Src: /src/git/object-file.c:1078,1
    - Dst: strbuf_addf
      Src: /src/git/object-file.c:1081,1
    - Dst: format_object_header
      Src: /src/git/object-file.c:1082,1
    - Dst: start_loose_object_common
      Src: /src/git/object-file.c:1092,1
    - Dst: odb_write_stream_read
      Src: /src/git/object-file.c:1105,1
    - Dst: close
      Src: /src/git/object-file.c:1108,1
    - Dst: write_loose_object_common
      Src: /src/git/object-file.c:1120,1
    - Dst: die
      Src: /src/git/object-file.c:1131,1
    - Dst: _
      Src: /src/git/object-file.c:1131,1
    - Dst: die
      Src: /src/git/object-file.c:1142,1
    - Dst: _
      Src: /src/git/object-file.c:1142,1
    - Dst: end_loose_object_common
      Src: /src/git/object-file.c:1143,1
    - Dst: die
      Src: /src/git/object-file.c:1145,1
    - Dst: _
      Src: /src/git/object-file.c:1145,1
    - Dst: close_loose_object
      Src: /src/git/object-file.c:1146,1
    - Dst: odb_freshen_object
      Src: /src/git/object-file.c:1148,1
    - Dst: unlink_or_warn
      Src: /src/git/object-file.c:1149,1
    - Dst: odb_loose_path
      Src: /src/git/object-file.c:1152,1
    - Dst: directory_size
      Src: /src/git/object-file.c:1155,1
    - Dst: strbuf_add
      Src: /src/git/object-file.c:1158,1
    - Dst: safe_create_dir_in_gitdir
      Src: /src/git/object-file.c:1160,1
    - Dst: error_errno
      Src: /src/git/object-file.c:1162,1
    - Dst: _
      Src: /src/git/object-file.c:1162,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1163,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1166,1
    - Dst: finalize_object_file_flags
      Src: /src/git/object-file.c:1169,1
    - Dst: repo_add_loose_object_map
      Src: /src/git/object-file.c:1172,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1174,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1175,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 4
    argNames:
    - source
    - in_stream
    - len
    - oid
    argTypes:
    - struct odb_source*
    - struct odb_write_stream*
    - size_t
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1060
    functionDepth: 3
    functionLinenumber: 1060
    functionLinenumberEnd: 1177
    functionName: odb_source_loose_write_stream
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error_errno
    - close_loose_object
    - strbuf_addf
    - directory_size
    - batch_fsync_enabled
    - strbuf_release
    - die
    - repo_add_loose_object_map
    - start_loose_object_common
    - odb_freshen_object
    - odb_write_stream_read
    - format_object_header
    - unlink_or_warn
    - prepare_loose_object_transaction
    - finalize_object_file_flags
    - odb_loose_path
    - _
    - write_loose_object_common
    - strbuf_add
    - end_loose_object_common
    - safe_create_dir_in_gitdir
    - close
    linkageType: ''
    returnType: int
    signature: "int odb_source_loose_write_stream(struct odb_source *source,\n\t\t\t\t
      \ struct odb_write_stream *in_stream, size_t len,\n\t\t\t\t  struct object_id
      *oid)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/object-file.c:1194,1
    - Dst: hash_object_file
      Src: /src/git/object-file.c:1196,1
    - Dst: convert_object_file
      Src: /src/git/object-file.c:1199,1
    - Dst: hash_object_file
      Src: /src/git/object-file.c:1201,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1203,1
    - Dst: write_object_file_prepare
      Src: /src/git/object-file.c:1210,1
    - Dst: odb_freshen_object
      Src: /src/git/object-file.c:1211,1
    - Dst: write_loose_object
      Src: /src/git/object-file.c:1213,1
    - Dst: repo_add_loose_object_map
      Src: /src/git/object-file.c:1216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 7
    argNames:
    - source
    - buf
    - len
    - type
    - oid
    - compat_oid_in
    - flags
    argTypes:
    - struct odb_source*
    - void*
    - unsigned long
    - enum object_type
    - struct object_id*
    - struct object_id*
    - enum odb_write_object_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1179
    functionDepth: 4
    functionLinenumber: 1179
    functionLinenumberEnd: 1218
    functionName: odb_source_loose_write_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - hash_object_file
    - oidcpy
    - repo_add_loose_object_map
    - write_loose_object
    - write_object_file_prepare
    - convert_object_file
    - odb_freshen_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_loose_write_object(struct odb_source *source,\n\t\t\t\t
      \ const void *buf, unsigned long len,\n\t\t\t\t  enum object_type type, struct
      object_id *oid,\n\t\t\t\t  struct object_id *compat_oid_in,\n\t\t\t\t  enum
      odb_write_object_flags flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_loose_has_object
      Src: /src/git/object-file.c:1234,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/object-file.c:1240,1
    - Dst: error
      Src: /src/git/object-file.c:1241,1
    - Dst: _
      Src: /src/git/object-file.c:1241,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:1241,1
    - Dst: repo_oid_to_algop
      Src: /src/git/object-file.c:1243,1
    - Dst: error
      Src: /src/git/object-file.c:1244,1
    - Dst: _
      Src: /src/git/object-file.c:1244,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:1245,1
    - Dst: format_object_header
      Src: /src/git/object-file.c:1247,1
    - Dst: write_loose_object
      Src: /src/git/object-file.c:1248,1
    - Dst: repo_add_loose_object_map
      Src: /src/git/object-file.c:1250,1
    - Dst: free
      Src: /src/git/object-file.c:1251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - source
    - oid
    - mtime
    argTypes:
    - struct odb_source*
    - struct object_id*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1220
    functionDepth: 5
    functionLinenumber: 1220
    functionLinenumberEnd: 1254
    functionName: force_object_loose
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error
    - odb_source_loose_has_object
    - oid_to_hex
    - format_object_header
    - repo_add_loose_object_map
    - write_loose_object
    - _
    - free
    - odb_read_object_info_extended
    - repo_oid_to_algop
    linkageType: ''
    returnType: int
    signature: "int force_object_loose(struct odb_source *source,\n\t\t       const
      struct object_id *oid, time_t mtime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/object-file.c:1268,1
    - Dst: _
      Src: /src/git/object-file.c:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - UNUSED
    - fsck_report
    - msg_type
    - msg_id
    - message
    argTypes:
    - struct fsck_options*
    - void*
    - enum fsck_msg_type
    - enum fsck_msg_id
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1262
    functionDepth: 0
    functionLinenumber: 1262
    functionLinenumberEnd: 1270
    functionName: hash_format_check_report
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error
    - _
    linkageType: ''
    returnType: int
    signature: "int hash_format_check_report(struct fsck_options *opts UNUSED,\n\t\t\t\t
      \   void *fsck_report UNUSED,\n\t\t\t\t    enum fsck_msg_type msg_type UNUSED,\n\t\t\t\t
      \   enum fsck_msg_id msg_id UNUSED,\n\t\t\t\t    const char *message)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_git
      Src: /src/git/object-file.c:1289,1
    - Dst: get_conv_flags
      Src: /src/git/object-file.c:1290,1
    - Dst: fsck_options_init
      Src: /src/git/object-file.c:1298,1
    - Dst: fsck_buffer
      Src: /src/git/object-file.c:1301,1
    - Dst: null_oid
      Src: /src/git/object-file.c:1301,1
    - Dst: die
      Src: /src/git/object-file.c:1302,1
    - Dst: _
      Src: /src/git/object-file.c:1302,1
    - Dst: fsck_finish
      Src: /src/git/object-file.c:1303,1
    - Dst: odb_write_object
      Src: /src/git/object-file.c:1307,1
    - Dst: hash_object_file
      Src: /src/git/object-file.c:1309,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1311,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 7
    argNames:
    - istate
    - oid
    - buf
    - size
    - type
    - path
    - flags
    argTypes:
    - struct index_state*
    - struct object_id*
    - void*
    - size_t
    - enum object_type
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1272
    functionDepth: 5
    functionLinenumber: 1272
    functionLinenumberEnd: 1313
    functionName: index_mem
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - fsck_buffer
    - strbuf_release
    - die
    - fsck_finish
    - odb_write_object
    - hash_object_file
    - get_conv_flags
    - fsck_options_init
    - _
    - convert_to_git
    - null_oid
    linkageType: ''
    returnType: int
    signature: "int index_mem(struct index_state *istate,\n\t\t     struct object_id
      *oid,\n\t\t     const void *buf, size_t size,\n\t\t     enum object_type type,\n\t\t
      \    const char *path, unsigned flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/object-file.c:1325,1
    - Dst: ASSERT
      Src: /src/git/object-file.c:1326,1
    - Dst: would_convert_to_git_filter_fd
      Src: /src/git/object-file.c:1326,1
    - Dst: convert_to_git_filter_fd
      Src: /src/git/object-file.c:1328,1
    - Dst: get_conv_flags
      Src: /src/git/object-file.c:1329,1
    - Dst: odb_write_object
      Src: /src/git/object-file.c:1332,1
    - Dst: hash_object_file
      Src: /src/git/object-file.c:1335,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - istate
    - oid
    - fd
    - path
    - flags
    argTypes:
    - struct index_state*
    - struct object_id*
    - int
    - char*
    - unsigned
    assertStmts:
    - condition: (path)
      pos:
        line_end: 1324
        line_start: 1324
        source_file: /src/git/object-file.c
    constantsTouched: []
    func_position:
      end: 1339
      start: 1315
    functionDepth: 5
    functionLinenumber: 1315
    functionLinenumberEnd: 1339
    functionName: index_stream_convert_blob
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - assert
    - odb_write_object
    - hash_object_file
    - get_conv_flags
    - ASSERT
    - convert_to_git_filter_fd
    - would_convert_to_git_filter_fd
    linkageType: ''
    returnType: int
    signature: "int index_stream_convert_blob(struct index_state *istate,\n\t\t\t\t
      \    struct object_id *oid,\n\t\t\t\t     int fd,\n\t\t\t\t     const char *path,\n\t\t\t\t
      \    unsigned flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read
      Src: /src/git/object-file.c:1348,1
    - Dst: index_mem
      Src: /src/git/object-file.c:1349,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - istate
    - oid
    - fd
    - type
    - path
    - flags
    argTypes:
    - struct index_state*
    - struct object_id*
    - int
    - enum object_type
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1341
    functionDepth: 6
    functionLinenumber: 1341
    functionLinenumberEnd: 1354
    functionName: index_pipe
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - index_mem
    - strbuf_release
    - strbuf_read
    linkageType: ''
    returnType: int
    signature: "int index_pipe(struct index_state *istate, struct object_id *oid,\n\t\t
      \     int fd, enum object_type type,\n\t\t      const char *path, unsigned flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: index_mem
      Src: /src/git/object-file.c:1366,1
    - Dst: xmalloc
      Src: /src/git/object-file.c:1368,1
    - Dst: read_in_full
      Src: /src/git/object-file.c:1369,1
    - Dst: error_errno
      Src: /src/git/object-file.c:1371,1
    - Dst: _
      Src: /src/git/object-file.c:1371,1
    - Dst: error
      Src: /src/git/object-file.c:1374,1
    - Dst: _
      Src: /src/git/object-file.c:1374,1
    - Dst: index_mem
      Src: /src/git/object-file.c:1377,1
    - Dst: free
      Src: /src/git/object-file.c:1378,1
    - Dst: xmmap
      Src: /src/git/object-file.c:1380,1
    - Dst: index_mem
      Src: /src/git/object-file.c:1381,1
    - Dst: munmap
      Src: /src/git/object-file.c:1382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - istate
    - oid
    - fd
    - size
    - type
    - path
    - flags
    argTypes:
    - struct index_state*
    - struct object_id*
    - int
    - size_t
    - enum object_type
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1358
    functionDepth: 6
    functionLinenumber: 1358
    functionLinenumberEnd: 1385
    functionName: index_core
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - free
    - xmmap
    - read_in_full
    - xmalloc
    - _
    - index_mem
    - munmap
    linkageType: ''
    returnType: int
    signature: "int index_core(struct index_state *istate,\n\t\t      struct object_id
      *oid, int fd, size_t size,\n\t\t      enum object_type type, const char *path,\n\t\t
      \     unsigned flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/object-file.c:1391,1
    - Dst: oideq
      Src: /src/git/object-file.c:1397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - transaction
    - oid
    argTypes:
    - struct odb_transaction_files*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1387
    functionDepth: 1
    functionLinenumber: 1387
    functionLinenumberEnd: 1402
    functionName: already_written
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - odb_has_object
    - oideq
    linkageType: ''
    returnType: int
    signature: "int already_written(struct odb_transaction_files *transaction,\n\t\t\t
      \  struct object_id *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_tmp_packfile
      Src: /src/git/object-file.c:1411,1
    - Dst: reset_pack_idx_option
      Src: /src/git/object-file.c:1413,1
    - Dst: write_pack_header
      Src: /src/git/object-file.c:1416,1
    - Dst: die_errno
      Src: /src/git/object-file.c:1418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - transaction
    argTypes:
    - struct odb_transaction_files*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1405
    functionDepth: 1
    functionLinenumber: 1405
    functionLinenumberEnd: 1419
    functionName: prepare_packfile_transaction
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - reset_pack_idx_option
    - die_errno
    - write_pack_header
    - create_tmp_packfile
    linkageType: ''
    returnType: void
    signature: void prepare_packfile_transaction(struct odb_transaction_files *transaction)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_object_header
      Src: /src/git/object-file.c:1430,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/object-file.c:1432,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:1433,1
    - Dst: odb_write_stream_read
      Src: /src/git/object-file.c:1436,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:1442,1
    - Dst: git_hash_final_oid
      Src: /src/git/object-file.c:1449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - stream
    - hash_algo
    - result_oid
    - size
    argTypes:
    - struct odb_write_stream*
    - struct git_hash_algo*
    - struct object_id*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1421
    functionDepth: 2
    functionLinenumber: 1421
    functionLinenumberEnd: 1452
    functionName: hash_blob_stream
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - format_object_header
    - git_hash_final_oid
    - git_hash_update
    - struct git_hash_algo*::init_fn
    - odb_write_stream_read
    linkageType: ''
    returnType: int
    signature: "int hash_blob_stream(struct odb_write_stream *stream,\n\t\t\t    const
      struct git_hash_algo *hash_algo,\n\t\t\t    struct object_id *result_oid, size_t
      size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate_init
      Src: /src/git/object-file.c:1469,1
    - Dst: encode_in_pack_object_header
      Src: /src/git/object-file.c:1471,1
    - Dst: odb_write_stream_read
      Src: /src/git/object-file.c:1477,1
    - Dst: die
      Src: /src/git/object-file.c:1481,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:1483,1
    - Dst: git_deflate
      Src: /src/git/object-file.c:1490,1
    - Dst: hashwrite
      Src: /src/git/object-file.c:1495,1
    - Dst: die
      Src: /src/git/object-file.c:1507,1
    - Dst: die
      Src: /src/git/object-file.c:1512,1
    - Dst: git_deflate_end
      Src: /src/git/object-file.c:1515,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - state
    - ctx
    - size
    - stream
    argTypes:
    - struct transaction_packfile*
    - struct git_hash_ctx*
    - size_t
    - struct odb_write_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1516
    functionName: stream_blob_to_pack
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - git_deflate_init
    - die
    - git_deflate
    - hashwrite
    - git_deflate_end
    - git_hash_update
    - odb_write_stream_read
    - encode_in_pack_object_header
    linkageType: ''
    returnType: void
    signature: "void stream_blob_to_pack(struct transaction_packfile *state,\n\t\t\t\tstruct
      git_hash_ctx *ctx, size_t size,\n\t\t\t\tstruct odb_write_stream *stream)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/object-file.c:1530,1
    - Dst: free_hashfile
      Src: /src/git/object-file.c:1531,1
    - Dst: unlink
      Src: /src/git/object-file.c:1532,1
    - Dst: finalize_hashfile
      Src: /src/git/object-file.c:1535,1
    - Dst: finalize_hashfile
      Src: /src/git/object-file.c:1538,1
    - Dst: fixup_pack_header_footer
      Src: /src/git/object-file.c:1539,1
    - Dst: close
      Src: /src/git/object-file.c:1542,1
    - Dst: strbuf_addf
      Src: /src/git/object-file.c:1545,1
    - Dst: repo_get_object_directory
      Src: /src/git/object-file.c:1546,1
    - Dst: hash_to_hex_algop
      Src: /src/git/object-file.c:1547,1
    - Dst: stage_tmp_packfiles
      Src: /src/git/object-file.c:1549,1
    - Dst: rename_tmp_packfile_idx
      Src: /src/git/object-file.c:1552,1
    - Dst: free
      Src: /src/git/object-file.c:1555,1
    - Dst: free
      Src: /src/git/object-file.c:1558,1
    - Dst: free
      Src: /src/git/object-file.c:1559,1
    - Dst: free
      Src: /src/git/object-file.c:1560,1
    - Dst: memset
      Src: /src/git/object-file.c:1561,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1563,1
    - Dst: odb_reprepare
      Src: /src/git/object-file.c:1565,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - transaction
    argTypes:
    - struct odb_transaction_files*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1566
    functionName: flush_packfile_transaction
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - rename_tmp_packfile_idx
    - memset
    - fixup_pack_header_footer
    - strbuf_release
    - odb_reprepare
    - strbuf_addf
    - finalize_hashfile
    - free_hashfile
    - repo_get_object_directory
    - stage_tmp_packfiles
    - free
    - close
    - hash_to_hex_algop
    - unlink
    linkageType: ''
    returnType: void
    signature: void flush_packfile_transaction(struct odb_transaction_files *transaction)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/object-file.c:1591,1
    - Dst: format_object_header
      Src: /src/git/object-file.c:1601,1
    - Dst: struct odb_transaction_files*::base::source::odb::repo::hash_algo::init_fn
      Src: /src/git/object-file.c:1603,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:1604,1
    - Dst: flush_packfile_transaction
      Src: /src/git/object-file.c:1618,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/object-file.c:1620,1
    - Dst: prepare_packfile_transaction
      Src: /src/git/object-file.c:1621,1
    - Dst: hashfile_checkpoint_init
      Src: /src/git/object-file.c:1622,1
    - Dst: hashfile_checkpoint
      Src: /src/git/object-file.c:1624,1
    - Dst: crc32_begin
      Src: /src/git/object-file.c:1626,1
    - Dst: stream_blob_to_pack
      Src: /src/git/object-file.c:1627,1
    - Dst: git_hash_final_oid
      Src: /src/git/object-file.c:1628,1
    - Dst: crc32_end
      Src: /src/git/object-file.c:1630,1
    - Dst: already_written
      Src: /src/git/object-file.c:1631,1
    - Dst: hashfile_truncate
      Src: /src/git/object-file.c:1632,1
    - Dst: free
      Src: /src/git/object-file.c:1634,1
    - Dst: oidcpy
      Src: /src/git/object-file.c:1636,1
    - Dst: ALLOC_GROW
      Src: /src/git/object-file.c:1637,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - base
    - stream
    - size
    - result_oid
    argTypes:
    - struct odb_transaction*
    - struct odb_write_stream*
    - size_t
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1586
    functionDepth: 2
    functionLinenumber: 1586
    functionLinenumberEnd: 1643
    functionName: odb_transaction_files_write_object_stream
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - container_of
    - struct odb_transaction_files*::base::source::odb::repo::hash_algo::init_fn
    - format_object_header
    - crc32_begin
    - hashfile_truncate
    - oidcpy
    - prepare_packfile_transaction
    - stream_blob_to_pack
    - already_written
    - hashfile_checkpoint_init
    - git_hash_final_oid
    - crc32_end
    - ALLOC_GROW
    - CALLOC_ARRAY
    - free
    - git_hash_update
    - hashfile_checkpoint
    - flush_packfile_transaction
    linkageType: ''
    returnType: int
    signature: "int odb_transaction_files_write_object_stream(struct odb_transaction
      *base,\n\t\t\t\t\t\t     struct odb_write_stream *stream,\n\t\t\t\t\t\t     size_t
      size,\n\t\t\t\t\t\t     struct object_id *result_oid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: would_convert_to_git_filter_fd
      Src: /src/git/object-file.c:1655,1
    - Dst: index_stream_convert_blob
      Src: /src/git/object-file.c:1656,1
    - Dst: S_ISREG
      Src: /src/git/object-file.c:1657,1
    - Dst: index_pipe
      Src: /src/git/object-file.c:1658,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/object-file.c:1660,1
    - Dst: would_convert_to_git
      Src: /src/git/object-file.c:1662,1
    - Dst: index_core
      Src: /src/git/object-file.c:1663,1
    - Dst: xsize_t
      Src: /src/git/object-file.c:1663,1
    - Dst: odb_write_stream_from_fd
      Src: /src/git/object-file.c:1667,1
    - Dst: xsize_t
      Src: /src/git/object-file.c:1667,1
    - Dst: odb_transaction_begin
      Src: /src/git/object-file.c:1671,1
    - Dst: odb_transaction_write_object_stream
      Src: /src/git/object-file.c:1673,1
    - Dst: xsize_t
      Src: /src/git/object-file.c:1675,1
    - Dst: odb_transaction_commit
      Src: /src/git/object-file.c:1677,1
    - Dst: hash_blob_stream
      Src: /src/git/object-file.c:1679,1
    - Dst: xsize_t
      Src: /src/git/object-file.c:1681,1
    - Dst: odb_write_stream_release
      Src: /src/git/object-file.c:1684,1
    - Dst: close
      Src: /src/git/object-file.c:1687,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 7
    argNames:
    - istate
    - oid
    - fd
    - st
    - type
    - path
    - flags
    argTypes:
    - struct index_state*
    - struct object_id*
    - int
    - struct stat*
    - enum object_type
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1645
    functionDepth: 7
    functionLinenumber: 1645
    functionLinenumberEnd: 1689
    functionName: index_fd
    functionSourceFile: /src/git/object-file.c
    functionUses: 1
    functionsReached:
    - odb_transaction_commit
    - index_pipe
    - repo_settings_get_big_file_threshold
    - would_convert_to_git
    - odb_write_stream_from_fd
    - odb_transaction_write_object_stream
    - odb_write_stream_release
    - xsize_t
    - odb_transaction_begin
    - index_stream_convert_blob
    - would_convert_to_git_filter_fd
    - index_core
    - close
    - hash_blob_stream
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int index_fd(struct index_state *istate, struct object_id *oid,\n\t
      \    int fd, struct stat *st,\n\t     enum object_type type, const char *path,
      unsigned flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/object-file.c:1700,1
    - Dst: error_errno
      Src: /src/git/object-file.c:1702,1
    - Dst: index_fd
      Src: /src/git/object-file.c:1703,1
    - Dst: error
      Src: /src/git/object-file.c:1704,1
    - Dst: _
      Src: /src/git/object-file.c:1704,1
    - Dst: strbuf_readlink
      Src: /src/git/object-file.c:1708,1
    - Dst: error_errno
      Src: /src/git/object-file.c:1709,1
    - Dst: hash_object_file
      Src: /src/git/object-file.c:1711,1
    - Dst: odb_write_object
      Src: /src/git/object-file.c:1713,1
    - Dst: error
      Src: /src/git/object-file.c:1714,1
    - Dst: _
      Src: /src/git/object-file.c:1714,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1715,1
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/object-file.c:1718,1
    - Dst: error
      Src: /src/git/object-file.c:1719,1
    - Dst: _
      Src: /src/git/object-file.c:1719,1
    - Dst: error
      Src: /src/git/object-file.c:1721,1
    - Dst: _
      Src: /src/git/object-file.c:1721,1
    - Dst: error
      Src: /src/git/object-file.c:1724,1
    - Dst: _
      Src: /src/git/object-file.c:1724,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - istate
    - oid
    - path
    - st
    - flags
    argTypes:
    - struct index_state*
    - struct object_id*
    - char*
    - struct stat*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1691
    functionDepth: 8
    functionLinenumber: 1691
    functionLinenumberEnd: 1727
    functionName: index_path
    functionSourceFile: /src/git/object-file.c
    functionUses: 1
    functionsReached:
    - error
    - error_errno
    - strbuf_release
    - open
    - hash_object_file
    - odb_write_object
    - strbuf_readlink
    - index_fd
    - repo_resolve_gitlink_ref
    - _
    linkageType: ''
    returnType: int
    signature: "int index_path(struct index_state *istate, struct object_id *oid,\n\t
      \      const char *path, struct stat *st, unsigned flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_in_full
      Src: /src/git/object-file.c:1731,1
    - Dst: htonl
      Src: /src/git/object-file.c:1735,1
    - Dst: pack_version_ok
      Src: /src/git/object-file.c:1738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - fd
    - header
    argTypes:
    - int
    - struct pack_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1729
    functionDepth: 1
    functionLinenumber: 1729
    functionLinenumberEnd: 1742
    functionName: read_pack_header
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - read_in_full
    - pack_version_ok
    - htonl
    linkageType: ''
    returnType: int
    signature: int read_pack_header(int fd, struct pack_header *header)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/object-file.c:1759,1
    - Dst: strbuf_complete
      Src: /src/git/object-file.c:1762,1
    - Dst: strbuf_addf
      Src: /src/git/object-file.c:1763,1
    - Dst: opendir
      Src: /src/git/object-file.c:1765,1
    - Dst: error_errno
      Src: /src/git/object-file.c:1768,1
    - Dst: _
      Src: /src/git/object-file.c:1768,1
    - Dst: strbuf_setlen
      Src: /src/git/object-file.c:1769,1
    - Dst: strbuf_addch
      Src: /src/git/object-file.c:1774,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/object-file.c:1777,1
    - Dst: strlen
      Src: /src/git/object-file.c:1780,1
    - Dst: strbuf_setlen
      Src: /src/git/object-file.c:1781,1
    - Dst: strbuf_add
      Src: /src/git/object-file.c:1782,1
    - Dst: hex_to_bytes
      Src: /src/git/object-file.c:1784,1
    - Dst: oid_set_algo
      Src: /src/git/object-file.c:1786,1
    - Dst: memset
      Src: /src/git/object-file.c:1787,1
    - Dst: obj_cb
      Src: /src/git/object-file.c:1790,1
    - Dst: cruft_cb
      Src: /src/git/object-file.c:1798,1
    - Dst: closedir
      Src: /src/git/object-file.c:1803,1
    - Dst: strbuf_setlen
      Src: /src/git/object-file.c:1805,1
    - Dst: subdir_cb
      Src: /src/git/object-file.c:1807,1
    - Dst: strbuf_setlen
      Src: /src/git/object-file.c:1809,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 7
    argNames:
    - subdir_nr
    - path
    - algop
    - obj_cb
    - cruft_cb
    - subdir_cb
    - data
    argTypes:
    - unsigned int
    - struct strbuf*
    - struct git_hash_algo*
    - each_loose_object_fn
    - each_loose_cruft_fn
    - each_loose_subdir_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1744
    functionDepth: 2
    functionLinenumber: 1744
    functionLinenumberEnd: 1812
    functionName: for_each_file_in_obj_subdir
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error_errno
    - memset
    - obj_cb
    - hex_to_bytes
    - cruft_cb
    - strbuf_addf
    - strbuf_setlen
    - strbuf_addch
    - opendir
    - readdir_skip_dot_and_dotdot
    - strlen
    - oid_set_algo
    - subdir_cb
    - strbuf_complete
    - closedir
    - BUG
    - strbuf_add
    - _
    linkageType: ''
    returnType: int
    signature: "int for_each_file_in_obj_subdir(unsigned int subdir_nr,\n\t\t\t\t
      \      struct strbuf *path,\n\t\t\t\t       const struct git_hash_algo *algop,\n\t\t\t\t
      \      each_loose_object_fn obj_cb,\n\t\t\t\t       each_loose_cruft_fn cruft_cb,\n\t\t\t\t
      \      each_loose_subdir_fn subdir_cb,\n\t\t\t\t       void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/object-file.c:1823,1
    - Dst: for_each_file_in_obj_subdir
      Src: /src/git/object-file.c:1825,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:1831,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - source
    - obj_cb
    - cruft_cb
    - subdir_cb
    - data
    argTypes:
    - struct odb_source*
    - each_loose_object_fn
    - each_loose_cruft_fn
    - each_loose_subdir_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1814
    functionDepth: 3
    functionLinenumber: 1814
    functionLinenumberEnd: 1833
    functionName: for_each_loose_file_in_source
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - for_each_file_in_obj_subdir
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int for_each_loose_file_in_source(struct odb_source *source,\n\t\t\t\t
      \ each_loose_object_fn obj_cb,\n\t\t\t\t  each_loose_cruft_fn cruft_cb,\n\t\t\t\t
      \ each_loose_subdir_fn subdir_cb,\n\t\t\t\t  void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_object_info_from_path
      Src: /src/git/object-file.c:1851,1
    - Dst: struct for_each_object_wrapper_data*::cb
      Src: /src/git/object-file.c:1854,1
    - Dst: struct for_each_object_wrapper_data*::cb
      Src: /src/git/object-file.c:1856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - oid
    - path
    - cb_data
    argTypes:
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1842
    functionDepth: 4
    functionLinenumber: 1842
    functionLinenumberEnd: 1858
    functionName: for_each_object_wrapper_cb
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - read_object_info_from_path
    - struct for_each_object_wrapper_data*::cb
    linkageType: ''
    returnType: int
    signature: "int for_each_object_wrapper_cb(const struct object_id *oid,\n\t\t\t\t
      \     const char *path,\n\t\t\t\t      void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_loose_read_object_info
      Src: /src/git/object-file.c:1868,1
    - Dst: struct for_each_object_wrapper_data*::cb
      Src: /src/git/object-file.c:1872,1
    - Dst: struct for_each_object_wrapper_data*::cb
      Src: /src/git/object-file.c:1874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - oid
    - node_data
    - cb_data
    argTypes:
    - struct object_id*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1860
    functionDepth: 5
    functionLinenumber: 1860
    functionLinenumberEnd: 1876
    functionName: for_each_prefixed_object_wrapper_cb
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - struct for_each_object_wrapper_data*::cb
    - odb_source_loose_read_object_info
    linkageType: ''
    returnType: int
    signature: "int for_each_prefixed_object_wrapper_cb(const struct object_id *oid,\n\t\t\t\t\t
      \      void *node_data UNUSED,\n\t\t\t\t\t       void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidtree_each
      Src: /src/git/object-file.c:1898,1
    - Dst: odb_source_loose_cache
      Src: /src/git/object-file.c:1898,1
    - Dst: for_each_loose_file_in_source
      Src: /src/git/object-file.c:1902,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - source
    - request
    - cb
    - cb_data
    - opts
    argTypes:
    - struct odb_source*
    - struct object_info*
    - odb_for_each_object_cb
    - void*
    - struct odb_for_each_object_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1878
    functionDepth: 4
    functionLinenumber: 1878
    functionLinenumberEnd: 1904
    functionName: odb_source_loose_for_each_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - odb_source_loose_cache
    - for_each_loose_file_in_source
    - oidtree_each
    linkageType: ''
    returnType: int
    signature: "int odb_source_loose_for_each_object(struct odb_source *source,\n\t\t\t\t
      \    const struct object_info *request,\n\t\t\t\t     odb_for_each_object_cb
      cb,\n\t\t\t\t     void *cb_data,\n\t\t\t\t     const struct odb_for_each_object_options
      *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - payload
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1906
    functionDepth: 0
    functionLinenumber: 1906
    functionLinenumberEnd: 1913
    functionName: count_loose_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int count_loose_object(const struct object_id *oid UNUSED,\n\t\t\t
      \     struct object_info *oi UNUSED,\n\t\t\t      void *payload)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/object-file.c:1928,1
    - Dst: opendir
      Src: /src/git/object-file.c:1930,1
    - Dst: error_errno
      Src: /src/git/object-file.c:1938,1
    - Dst: readdir
      Src: /src/git/object-file.c:1942,1
    - Dst: strspn
      Src: /src/git/object-file.c:1943,1
    - Dst: odb_source_loose_for_each_object
      Src: /src/git/object-file.c:1954,1
    - Dst: closedir
      Src: /src/git/object-file.c:1960,1
    - Dst: free
      Src: /src/git/object-file.c:1961,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - source
    - flags
    - out
    argTypes:
    - struct odb_source*
    - enum odb_count_objects_flags
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1915
    functionDepth: 5
    functionLinenumber: 1915
    functionLinenumberEnd: 1963
    functionName: odb_source_loose_count_objects
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error_errno
    - xstrfmt
    - opendir
    - strspn
    - free
    - closedir
    - readdir
    - odb_source_loose_for_each_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_loose_count_objects(struct odb_source *source,\n\t\t\t\t
      \  enum odb_count_objects_flags flags,\n\t\t\t\t   unsigned long *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oid_common_prefix_hexlen
      Src: /src/git/object-file.c:1975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1970
    functionDepth: 1
    functionLinenumber: 1970
    functionLinenumberEnd: 1979
    functionName: find_abbrev_len_cb
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - oid_common_prefix_hexlen
    linkageType: ''
    returnType: int
    signature: "int find_abbrev_len_cb(const struct object_id *oid,\n\t\t\t      struct
      object_info *oi UNUSED,\n\t\t\t      void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_loose_for_each_object
      Src: /src/git/object-file.c:1996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - source
    - oid
    - min_len
    - out
    argTypes:
    - struct odb_source*
    - struct object_id*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1981
    functionDepth: 5
    functionLinenumber: 1981
    functionLinenumberEnd: 2001
    functionName: odb_source_loose_find_abbrev_len
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - odb_source_loose_for_each_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_loose_find_abbrev_len(struct odb_source *source,\n\t\t\t\t
      \    const struct object_id *oid,\n\t\t\t\t     unsigned min_len,\n\t\t\t\t
      \    unsigned *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidtree_insert
      Src: /src/git/object-file.c:2007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - data
    argTypes:
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 2003
    functionDepth: 1
    functionLinenumber: 2003
    functionLinenumberEnd: 2009
    functionName: append_loose_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - oidtree_insert
    linkageType: ''
    returnType: int
    signature: "int append_loose_object(const struct object_id *oid,\n\t\t\t       const
      char *path UNUSED,\n\t\t\t       void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/object-file.c:2014,1
    - Dst: bitsizeof
      Src: /src/git/object-file.c:2017,1
    - Dst: bitsizeof
      Src: /src/git/object-file.c:2023,1
    - Dst: BUG
      Src: /src/git/object-file.c:2024,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/object-file.c:2030,1
    - Dst: oidtree_init
      Src: /src/git/object-file.c:2031,1
    - Dst: strbuf_addstr
      Src: /src/git/object-file.c:2033,1
    - Dst: for_each_file_in_obj_subdir
      Src: /src/git/object-file.c:2034,1
    - Dst: strbuf_release
      Src: /src/git/object-file.c:2040,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - source
    - oid
    argTypes:
    - struct odb_source*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2011
    functionDepth: 3
    functionLinenumber: 2011
    functionLinenumberEnd: 2042
    functionName: odb_source_loose_cache
    functionSourceFile: /src/git/object-file.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - for_each_file_in_obj_subdir
    - odb_source_files_downcast
    - oidtree_init
    - ALLOC_ARRAY
    - bitsizeof
    - strbuf_addstr
    - BUG
    linkageType: ''
    returnType: struct oidtree
    signature: "struct oidtree *odb_source_loose_cache(struct odb_source *source,\n\t\t\t\t\t
      \     const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidtree_clear
      Src: /src/git/object-file.c:2046,1
    - Dst: FREE_AND_NULL
      Src: /src/git/object-file.c:2047,1
    - Dst: memset
      Src: /src/git/object-file.c:2048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - loose
    argTypes:
    - struct odb_source_loose*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2044
    functionDepth: 1
    functionLinenumber: 2044
    functionLinenumberEnd: 2050
    functionName: odb_source_loose_clear_cache
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - oidtree_clear
    - memset
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void odb_source_loose_clear_cache(struct odb_source_loose *loose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/object-file.c:2054,1
    - Dst: odb_source_loose_clear_cache
      Src: /src/git/object-file.c:2055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2052
    functionDepth: 2
    functionLinenumber: 2052
    functionLinenumberEnd: 2056
    functionName: odb_source_loose_reprepare
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - odb_source_loose_clear_cache
    - odb_source_files_downcast
    linkageType: ''
    returnType: void
    signature: void odb_source_loose_reprepare(struct odb_source *source)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/object-file.c:2071,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:2072,1
    - Dst: strlen
      Src: /src/git/object-file.c:2078,1
    - Dst: git_inflate
      Src: /src/git/object-file.c:2091,1
    - Dst: git_hash_update
      Src: /src/git/object-file.c:2092,1
    - Dst: error
      Src: /src/git/object-file.c:2097,1
    - Dst: _
      Src: /src/git/object-file.c:2097,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:2097,1
    - Dst: error
      Src: /src/git/object-file.c:2101,1
    - Dst: _
      Src: /src/git/object-file.c:2101,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:2102,1
    - Dst: git_hash_final_oid
      Src: /src/git/object-file.c:2106,1
    - Dst: oideq
      Src: /src/git/object-file.c:2107,1
    - Dst: error
      Src: /src/git/object-file.c:2108,1
    - Dst: _
      Src: /src/git/object-file.c:2108,1
    - Dst: oid_to_hex
      Src: /src/git/object-file.c:2109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - stream
    - hdr
    - size
    - path
    - expected_oid
    - algop
    argTypes:
    - git_zstream*
    - char*
    - unsigned long
    - char*
    - struct object_id*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2058
    functionDepth: 1
    functionLinenumber: 2058
    functionLinenumberEnd: 2114
    functionName: check_stream_oid
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - git_inflate
    - git_hash_final_oid
    - strlen
    - _
    - git_hash_update
    - struct git_hash_algo*::init_fn
    - oideq
    linkageType: ''
    returnType: int
    signature: "int check_stream_oid(git_zstream *stream,\n\t\t\t    const char *hdr,\n\t\t\t
      \   unsigned long size,\n\t\t\t    const char *path,\n\t\t\t    const struct
      object_id *expected_oid,\n\t\t\t    const struct git_hash_algo *algop)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: git_open
      Src: /src/git/object-file.c:2131,1
    - Dst: map_fd
      Src: /src/git/object-file.c:2133,1
    - Dst: error_errno
      Src: /src/git/object-file.c:2135,1
    - Dst: _
      Src: /src/git/object-file.c:2135,1
    - Dst: unpack_loose_header
      Src: /src/git/object-file.c:2139,1
    - Dst: error
      Src: /src/git/object-file.c:2140,1
    - Dst: _
      Src: /src/git/object-file.c:2140,1
    - Dst: parse_loose_header
      Src: /src/git/object-file.c:2144,1
    - Dst: error
      Src: /src/git/object-file.c:2145,1
    - Dst: _
      Src: /src/git/object-file.c:2145,1
    - Dst: error
      Src: /src/git/object-file.c:2150,1
    - Dst: _
      Src: /src/git/object-file.c:2150,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/object-file.c:2156,1
    - Dst: check_stream_oid
      Src: /src/git/object-file.c:2157,1
    - Dst: unpack_loose_rest
      Src: /src/git/object-file.c:2161,1
    - Dst: error
      Src: /src/git/object-file.c:2163,1
    - Dst: _
      Src: /src/git/object-file.c:2163,1
    - Dst: hash_object_file
      Src: /src/git/object-file.c:2166,1
    - Dst: oideq
      Src: /src/git/object-file.c:2169,1
    - Dst: git_inflate_end
      Src: /src/git/object-file.c:2176,1
    - Dst: munmap
      Src: /src/git/object-file.c:2179,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 6
    argNames:
    - repo
    - path
    - expected_oid
    - real_oid
    - contents
    - oi
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    - struct object_id*
    - void**
    - struct object_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2116
    functionDepth: 4
    functionLinenumber: 2116
    functionLinenumberEnd: 2181
    functionName: read_loose_object
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - hash_object_file
    - check_stream_oid
    - repo_settings_get_big_file_threshold
    - git_open
    - parse_loose_header
    - _
    - unpack_loose_header
    - unpack_loose_rest
    - munmap
    - map_fd
    - oideq
    - git_inflate_end
    linkageType: ''
    returnType: int
    signature: "int read_loose_object(struct repository *repo,\n\t\t      const char
      *path,\n\t\t      const struct object_id *expected_oid,\n\t\t      struct object_id
      *real_oid,\n\t\t      void **contents,\n\t\t      struct object_info *oi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/object-file.c:2186,1
    - Dst: flush_loose_object_transaction
      Src: /src/git/object-file.c:2188,1
    - Dst: flush_packfile_transaction
      Src: /src/git/object-file.c:2189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct odb_transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2183
    functionDepth: 2
    functionLinenumber: 2183
    functionLinenumberEnd: 2190
    functionName: odb_transaction_files_commit
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - container_of
    - flush_loose_object_transaction
    - flush_packfile_transaction
    linkageType: ''
    returnType: void
    signature: void odb_transaction_files_commit(struct odb_transaction *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/object-file.c:2200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2192
    functionDepth: 1
    functionLinenumber: 2192
    functionLinenumberEnd: 2206
    functionName: odb_transaction_files_begin
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct odb_transaction
    signature: struct odb_transaction *odb_transaction_files_begin(struct odb_source
      *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/object-file.c:2211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2208
    functionDepth: 1
    functionLinenumber: 2208
    functionLinenumberEnd: 2214
    functionName: odb_source_loose_new
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct odb_source_loose
    signature: struct odb_source_loose *odb_source_loose_new(struct odb_source *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_loose_clear_cache
      Src: /src/git/object-file.c:2220,1
    - Dst: loose_object_map_clear
      Src: /src/git/object-file.c:2221,1
    - Dst: free
      Src: /src/git/object-file.c:2222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - loose
    argTypes:
    - struct odb_source_loose*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2216
    functionDepth: 2
    functionLinenumber: 2216
    functionLinenumberEnd: 2223
    functionName: odb_source_loose_free
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - free
    - odb_source_loose_clear_cache
    - loose_object_map_clear
    linkageType: ''
    returnType: void
    signature: void odb_source_loose_free(struct odb_source_loose *loose)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/object-file.c:2243,1
    - Dst: memcpy
      Src: /src/git/object-file.c:2259,1
    - Dst: git_inflate
      Src: /src/git/object-file.c:2269,1
    - Dst: git_inflate_end
      Src: /src/git/object-file.c:2274,1
    - Dst: git_inflate_end
      Src: /src/git/object-file.c:2279,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - _st
    - buf
    - sz
    argTypes:
    - struct odb_read_stream*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2240
    functionDepth: 1
    functionLinenumber: 2240
    functionLinenumberEnd: 2285
    functionName: read_istream_loose
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - git_inflate_end
    - container_of
    - git_inflate
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_istream_loose(struct odb_read_stream *_st, char *buf,
      size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/object-file.c:2290,1
    - Dst: git_inflate_end
      Src: /src/git/object-file.c:2293,1
    - Dst: munmap
      Src: /src/git/object-file.c:2294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - _st
    argTypes:
    - struct odb_read_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2287
    functionDepth: 1
    functionLinenumber: 2287
    functionLinenumberEnd: 2296
    functionName: close_istream_loose
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - container_of
    - munmap
    - git_inflate_end
    linkageType: ''
    returnType: int
    signature: int close_istream_loose(struct odb_read_stream *_st)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_loose_map_object
      Src: /src/git/object-file.c:2308,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/object-file.c:2318,1
    - Dst: unpack_loose_header
      Src: /src/git/object-file.c:2320,1
    - Dst: parse_loose_header
      Src: /src/git/object-file.c:2338,1
    - Dst: strlen
      Src: /src/git/object-file.c:2344,1
    - Dst: git_inflate_end
      Src: /src/git/object-file.c:2354,1
    - Dst: munmap
      Src: /src/git/object-file.c:2355,1
    - Dst: free
      Src: /src/git/object-file.c:2356,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - out
    - source
    - oid
    argTypes:
    - struct odb_read_stream**
    - struct odb_source*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2298
    functionDepth: 5
    functionLinenumber: 2298
    functionLinenumberEnd: 2358
    functionName: odb_source_loose_read_object_stream
    functionSourceFile: /src/git/object-file.c
    functionUses: 0
    functionsReached:
    - free
    - odb_source_loose_map_object
    - strlen
    - parse_loose_header
    - CALLOC_ARRAY
    - unpack_loose_header
    - munmap
    - git_inflate_end
    linkageType: ''
    returnType: int
    signature: "int odb_source_loose_read_object_stream(struct odb_read_stream **out,\n\t\t\t\t\tstruct
      odb_source *source,\n\t\t\t\t\tconst struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hex2chr
      Src: /src/git/hex.c:11,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - hex
    - hash
    - algop
    argTypes:
    - char*
    - unsigned char*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 18
    functionName: get_hash_hex_algop
    functionSourceFile: /src/git/hex.c
    functionUses: 0
    functionsReached:
    - hex2chr
    linkageType: ''
    returnType: int
    signature: "int get_hash_hex_algop(const char *hex, unsigned char *hash,\n\t\t\t
      \     const struct git_hash_algo *algop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_hash_hex_algop
      Src: /src/git/hex.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hex
    - sha1
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: get_hash_hex
    functionSourceFile: /src/git/hex.c
    functionUses: 0
    functionsReached:
    - get_hash_hex_algop
    linkageType: ''
    returnType: int
    signature: int get_hash_hex(const char *hex, unsigned char *sha1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_hash_hex_algop
      Src: /src/git/hex.c:28,1
    - Dst: oid_set_algo
      Src: /src/git/hex.c:30,1
    - Dst: memset
      Src: /src/git/hex.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - hex
    - oid
    - algop
    argTypes:
    - char*
    - struct object_id*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: get_oid_hex_algop
    functionSourceFile: /src/git/hex.c
    functionUses: 0
    functionsReached:
    - get_hash_hex_algop
    - memset
    - oid_set_algo
    linkageType: ''
    returnType: int
    signature: "int get_oid_hex_algop(const char *hex, struct object_id *oid,\n\t\t
      \     const struct git_hash_algo *algop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_hex_algop
      Src: /src/git/hex.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - hex
    - oid
    argTypes:
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: get_oid_hex_any
    functionSourceFile: /src/git/hex.c
    functionUses: 0
    functionsReached:
    - get_oid_hex_algop
    linkageType: ''
    returnType: int
    signature: int get_oid_hex_any(const char *hex, struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_hex_algop
      Src: /src/git/hex.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hex
    - oid
    argTypes:
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: get_oid_hex
    functionSourceFile: /src/git/hex.c
    functionUses: 7
    functionsReached:
    - get_oid_hex_algop
    linkageType: ''
    returnType: int
    signature: int get_oid_hex(const char *hex, struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_hex_algop
      Src: /src/git/hex.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - hex
    - oid
    - end
    - algop
    argTypes:
    - char*
    - struct object_id*
    - char**
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: parse_oid_hex_algop_impl
    functionSourceFile: /src/git/hex.c
    functionUses: 0
    functionsReached:
    - get_oid_hex_algop
    linkageType: ''
    returnType: int
    signature: "int parse_oid_hex_algop_impl(const char *hex, struct object_id *oid,\n\t\t\t
      \    const char **end,\n\t\t\t     const struct git_hash_algo *algop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_hex_any
      Src: /src/git/hex.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - hex
    - oid
    - end
    argTypes:
    - char*
    - struct object_id*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: parse_oid_hex_any
    functionSourceFile: /src/git/hex.c
    functionUses: 0
    functionsReached:
    - get_oid_hex_any
    linkageType: ''
    returnType: int
    signature: int parse_oid_hex_any(const char *hex, struct object_id *oid, const
      char **end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex_algop
      Src: /src/git/hex.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hex
    - oid
    - end
    argTypes:
    - char*
    - struct object_id*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: parse_oid_hex
    functionSourceFile: /src/git/hex.c
    functionUses: 2
    functionsReached:
    - parse_oid_hex_algop
    linkageType: ''
    returnType: int
    signature: int parse_oid_hex(const char *hex, struct object_id *oid, const char
      **end)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buffer
    - hash
    - algop
    argTypes:
    - char*
    - unsigned char*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 101
    functionName: hash_to_hex_algop_r
    functionSourceFile: /src/git/hex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *hash_to_hex_algop_r(char *buffer, const unsigned char *hash,\n\t\t\t
      \ const struct git_hash_algo *algop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_to_hex_algop_r
      Src: /src/git/hex.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - oid
    argTypes:
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: oid_to_hex_r
    functionSourceFile: /src/git/hex.c
    functionUses: 1
    functionsReached:
    - hash_to_hex_algop_r
    linkageType: ''
    returnType: char
    signature: char *oid_to_hex_r(char *buffer, const struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/hex.c:112,1
    - Dst: hash_to_hex_algop_r
      Src: /src/git/hex.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hash
    - algop
    argTypes:
    - unsigned char*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: hash_to_hex_algop
    functionSourceFile: /src/git/hex.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - hash_to_hex_algop_r
    linkageType: ''
    returnType: char
    signature: char *hash_to_hex_algop(const unsigned char *hash, const struct git_hash_algo
      *algop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_to_hex_algop
      Src: /src/git/hex.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: hash_to_hex
    functionSourceFile: /src/git/hex.c
    functionUses: 3
    functionsReached:
    - hash_to_hex_algop
    linkageType: ''
    returnType: char
    signature: char *hash_to_hex(const unsigned char *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_to_hex_algop
      Src: /src/git/hex.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: oid_to_hex
    functionSourceFile: /src/git/hex.c
    functionUses: 63
    functionsReached:
    - hash_to_hex_algop
    linkageType: ''
    returnType: char
    signature: char *oid_to_hex(const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/packfile.h:194,1
    - Dst: odb_source_files_downcast
      Src: /src/git/packfile.h:197,1
    - Dst: packfile_store_get_packs
      Src: /src/git/packfile.h:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 207
    functionName: repo_for_eack_pack_data_init
    functionSourceFile: /src/git/packfile.h
    functionUses: 0
    functionsReached:
    - odb_prepare_alternates
    - packfile_store_get_packs
    - odb_source_files_downcast
    linkageType: ''
    returnType: struct repo_for_each_pack_data
    signature: struct repo_for_each_pack_data repo_for_eack_pack_data_init(struct
      repository *repo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/packfile.h:218,1
    - Dst: packfile_store_get_packs
      Src: /src/git/packfile.h:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct repo_for_each_pack_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 229
    functionName: repo_for_each_pack_data_next
    functionSourceFile: /src/git/packfile.h
    functionUses: 0
    functionsReached:
    - packfile_store_get_packs
    - odb_source_files_downcast
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack_data_next(struct repo_for_each_pack_data *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - repo
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/packfile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: repo_for_each_pack(repo, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/pager.c:26,1
    - Dst: close
      Src: /src/git/pager.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: close_pager_fds
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close_pager_fds(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/git/pager.c:33,1
    - Dst: fflush
      Src: /src/git/pager.c:34,1
    - Dst: close_pager_fds
      Src: /src/git/pager.c:35,1
    - Dst: finish_command
      Src: /src/git/pager.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: finish_pager
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - close_pager_fds
    - fflush
    - finish_command
    linkageType: ''
    returnType: void
    signature: void finish_pager(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finish_pager
      Src: /src/git/pager.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: wait_for_pager_atexit
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - finish_pager
    linkageType: ''
    returnType: void
    signature: void wait_for_pager_atexit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: finish_pager
      Src: /src/git/pager.c:52,1
    - Dst: sigchain_pop_common
      Src: /src/git/pager.c:53,1
    - Dst: unsetenv
      Src: /src/git/pager.c:54,1
    - Dst: dup2
      Src: /src/git/pager.c:55,1
    - Dst: close
      Src: /src/git/pager.c:56,1
    - Dst: dup2
      Src: /src/git/pager.c:59,1
    - Dst: close
      Src: /src/git/pager.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: wait_for_pager
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - sigchain_pop_common
    - close
    - finish_pager
    - dup2
    - unsetenv
    linkageType: ''
    returnType: void
    signature: void wait_for_pager(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_pager_fds
      Src: /src/git/pager.c:70,1
    - Dst: finish_command_in_signal
      Src: /src/git/pager.c:71,1
    - Dst: sigchain_pop
      Src: /src/git/pager.c:72,1
    - Dst: raise
      Src: /src/git/pager.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: wait_for_pager_signal
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - close_pager_fds
    - sigchain_pop
    - raise
    - finish_command_in_signal
    linkageType: ''
    returnType: void
    signature: void wait_for_pager_signal(int signo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/pager.c:80,1
    - Dst: git_config_string
      Src: /src/git/pager.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: core_pager_config
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - git_config_string
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int core_pager_config(const char *var, const char *value,\n\t\t\t
      \    const struct config_context *ctx UNUSED,\n\t\t\t     void *data UNUSED)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/pager.c:92,1
    - Dst: read_early_config
      Src: /src/git/pager.c:95,1
    - Dst: getenv
      Src: /src/git/pager.c:100,1
    - Dst: strcmp
      Src: /src/git/pager.c:103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - r
    - stdout_is_tty
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: git_pager
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - getenv
    - read_early_config
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *git_pager(struct repository *r, int stdout_is_tty)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/pager.c:113,1
    - Dst: split_cmdline
      Src: /src/git/pager.c:115,1
    - Dst: die
      Src: /src/git/pager.c:118,1
    - Dst: split_cmdline_strerror
      Src: /src/git/pager.c:119,1
    - Dst: strchr
      Src: /src/git/pager.c:122,1
    - Dst: die
      Src: /src/git/pager.c:125,1
    - Dst: getenv
      Src: /src/git/pager.c:128,1
    - Dst: strvec_push
      Src: /src/git/pager.c:130,1
    - Dst: free
      Src: /src/git/pager.c:133,1
    - Dst: free
      Src: /src/git/pager.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 135
    functionName: setup_pager_env
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - die
    - split_cmdline_strerror
    - strchr
    - split_cmdline
    - free
    - getenv
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void setup_pager_env(struct strvec *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/pager.c:139,1
    - Dst: setup_pager_env
      Src: /src/git/pager.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pager_process
    - pager
    argTypes:
    - struct child_process*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: prepare_pager_args
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - setup_pager_env
    linkageType: ''
    returnType: void
    signature: void prepare_pager_args(struct child_process *pager_process, const
      char *pager)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: git_pager
      Src: /src/git/pager.c:148,1
    - Dst: isatty
      Src: /src/git/pager.c:148,1
    - Dst: xsnprintf
      Src: /src/git/pager.c:160,1
    - Dst: term_columns
      Src: /src/git/pager.c:160,1
    - Dst: setenv
      Src: /src/git/pager.c:162,1
    - Dst: setenv
      Src: /src/git/pager.c:165,1
    - Dst: child_process_init
      Src: /src/git/pager.c:167,1
    - Dst: prepare_pager_args
      Src: /src/git/pager.c:170,1
    - Dst: strvec_push
      Src: /src/git/pager.c:172,1
    - Dst: start_command
      Src: /src/git/pager.c:173,1
    - Dst: die
      Src: /src/git/pager.c:174,1
    - Dst: dup
      Src: /src/git/pager.c:177,1
    - Dst: dup2
      Src: /src/git/pager.c:178,1
    - Dst: isatty
      Src: /src/git/pager.c:179,1
    - Dst: dup
      Src: /src/git/pager.c:180,1
    - Dst: dup2
      Src: /src/git/pager.c:181,1
    - Dst: close
      Src: /src/git/pager.c:183,1
    - Dst: sigchain_push_common
      Src: /src/git/pager.c:185,1
    - Dst: atexit
      Src: /src/git/pager.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 145
    functionDepth: 7
    functionLinenumber: 145
    functionLinenumberEnd: 191
    functionName: setup_pager
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - sigchain_push_common
    - dup
    - prepare_pager_args
    - die
    - child_process_init
    - atexit
    - setenv
    - git_pager
    - xsnprintf
    - close
    - term_columns
    - isatty
    - dup2
    - start_command
    linkageType: ''
    returnType: void
    signature: void setup_pager(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/pager.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: pager_in_use
    functionSourceFile: /src/git/pager.c
    functionUses: 1
    functionsReached:
    - git_env_bool
    linkageType: ''
    returnType: int
    signature: int pager_in_use(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/pager.c:216,1
    - Dst: atoi
      Src: /src/git/pager.c:217,1
    - Dst: struct
      Src: /src/git/pager.c:223,1
    - Dst: ioctl
      Src: /src/git/pager.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 232
    functionName: term_columns
    functionSourceFile: /src/git/pager.c
    functionUses: 1
    functionsReached:
    - ioctl
    - getenv
    - struct
    - atoi
    linkageType: ''
    returnType: int
    signature: int term_columns(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/pager.c:239,1
    - Dst: is_terminal_dumb
      Src: /src/git/pager.c:241,1
    - Dst: fprintf
      Src: /src/git/pager.c:247,1
    - Dst: term_columns
      Src: /src/git/pager.c:247,1
    - Dst: fputs
      Src: /src/git/pager.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 254
    functionName: term_clear_line
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - fputs
    - is_terminal_dumb
    - term_columns
    - isatty
    - fprintf
    linkageType: ''
    returnType: void
    signature: void term_clear_line(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - number
    argTypes:
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: decimal_width
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int decimal_width(uintmax_t number)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/pager.c:281,1
    - Dst: strcmp
      Src: /src/git/pager.c:281,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/pager.c:282,1
    - Dst: xstrdup
      Src: /src/git/pager.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - vdata
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 292
    functionName: pager_command_config
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - git_parse_maybe_bool
    - skip_prefix
    - xstrdup
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int pager_command_config(const char *var, const char *value,\n\t\t\t\tconst
      struct config_context *ctx UNUSED,\n\t\t\t\tvoid *vdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_early_config
      Src: /src/git/pager.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - r
    - cmd
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 308
    functionName: check_pager_config
    functionSourceFile: /src/git/pager.c
    functionUses: 0
    functionsReached:
    - read_early_config
    linkageType: ''
    returnType: int
    signature: int check_pager_config(struct repository *r, const char *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ignored
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: get_gecos
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_gecos(ignored)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - struct_passwd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: get_gecos
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_gecos(struct_passwd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getpwuid
      Src: /src/git/ident.c:46,1
    - Dst: getuid
      Src: /src/git/ident.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - is_bogus
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: xgetpwuid_self
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - getpwuid
    - getuid
    linkageType: ''
    returnType: struct passwd
    signature: struct passwd *xgetpwuid_self(int *is_bogus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_gecos
      Src: /src/git/ident.c:68,1
    - Dst: strbuf_addch
      Src: /src/git/ident.c:71,1
    - Dst: strbuf_addch
      Src: /src/git/ident.c:74,1
    - Dst: toupper
      Src: /src/git/ident.c:74,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - w
    - name
    argTypes:
    - struct passwd*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: copy_gecos
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - get_gecos
    - toupper
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void copy_gecos(const struct passwd *w, struct strbuf *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen_or_warn
      Src: /src/git/ident.c:85,1
    - Dst: strbuf_getline
      Src: /src/git/ident.c:89,1
    - Dst: ferror
      Src: /src/git/ident.c:90,1
    - Dst: warning_errno
      Src: /src/git/ident.c:91,1
    - Dst: strbuf_release
      Src: /src/git/ident.c:92,1
    - Dst: fclose
      Src: /src/git/ident.c:93,1
    - Dst: strbuf_addbuf
      Src: /src/git/ident.c:97,1
    - Dst: strbuf_release
      Src: /src/git/ident.c:98,1
    - Dst: fclose
      Src: /src/git/ident.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 101
    functionName: add_mailname_host
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - fclose
    - ferror
    - strbuf_release
    - warning_errno
    - strbuf_addbuf
    - fopen_or_warn
    - strbuf_getline
    linkageType: ''
    returnType: int
    signature: int add_mailname_host(struct strbuf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/ident.c:109,1
    - Dst: getaddrinfo
      Src: /src/git/ident.c:111,1
    - Dst: strchr
      Src: /src/git/ident.c:112,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:113,1
    - Dst: freeaddrinfo
      Src: /src/git/ident.c:116,1
    - Dst: gethostbyname
      Src: /src/git/ident.c:119,1
    - Dst: strchr
      Src: /src/git/ident.c:120,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - host
    - out
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 127
    functionName: canonical_name
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - memset
    - getaddrinfo
    - strchr
    - freeaddrinfo
    - strbuf_addstr
    - gethostbyname
    linkageType: ''
    returnType: int
    signature: int canonical_name(const char *host, struct strbuf *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xgethostname
      Src: /src/git/ident.c:133,1
    - Dst: warning_errno
      Src: /src/git/ident.c:134,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:135,1
    - Dst: strchr
      Src: /src/git/ident.c:139,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:140,1
    - Dst: canonical_name
      Src: /src/git/ident.c:141,1
    - Dst: strbuf_addf
      Src: /src/git/ident.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - out
    - is_bogus
    argTypes:
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 145
    functionName: add_domainname
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - canonical_name
    - warning_errno
    - strbuf_addf
    - strchr
    - xgethostname
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void add_domainname(struct strbuf *out, int *is_bogus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:154,1
    - Dst: strbuf_addch
      Src: /src/git/ident.c:155,1
    - Dst: add_mailname_host
      Src: /src/git/ident.c:157,1
    - Dst: add_domainname
      Src: /src/git/ident.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pw
    - email
    - is_bogus
    argTypes:
    - struct passwd*
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 160
    functionName: copy_email
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - add_mailname_host
    - add_domainname
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void copy_email(const struct passwd *pw, struct strbuf *email,\n\t\t
      \      int *is_bogus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_gecos
      Src: /src/git/ident.c:165,1
    - Dst: xgetpwuid_self
      Src: /src/git/ident.c:165,1
    - Dst: strbuf_trim
      Src: /src/git/ident.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: ident_default_name
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - strbuf_trim
    - copy_gecos
    - xgetpwuid_self
    linkageType: ''
    returnType: char
    signature: char *ident_default_name(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/ident.c:174,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:177,1
    - Dst: query_user_email
      Src: /src/git/ident.c:180,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:181,1
    - Dst: free
      Src: /src/git/ident.c:182,1
    - Dst: copy_email
      Src: /src/git/ident.c:184,1
    - Dst: xgetpwuid_self
      Src: /src/git/ident.c:184,1
    - Dst: strbuf_trim
      Src: /src/git/ident.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 189
    functionName: ident_default_email
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - xgetpwuid_self
    - strbuf_trim
    - query_user_email
    - strbuf_addstr
    - free
    - getenv
    - copy_email
    linkageType: ''
    returnType: char
    signature: char *ident_default_email(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: datestamp
      Src: /src/git/ident.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: ident_default_date
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - datestamp
    linkageType: ''
    returnType: char
    signature: char *ident_default_date(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/ident.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: reset_ident_date
    functionSourceFile: /src/git/ident.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    linkageType: ''
    returnType: void
    signature: void reset_ident_date(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: crud
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int crud(unsigned char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crud
      Src: /src/git/ident.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: has_non_crud
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - crud
    linkageType: ''
    returnType: int
    signature: int has_non_crud(const char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crud
      Src: /src/git/ident.c:236,1
    - Dst: strlen
      Src: /src/git/ident.c:242,1
    - Dst: crud
      Src: /src/git/ident.c:245,1
    - Dst: strbuf_grow
      Src: /src/git/ident.c:256,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - sb
    - src
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 266
    functionName: strbuf_addstr_without_crud
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - strlen
    - strbuf_grow
    - crud
    linkageType: ''
    returnType: void
    signature: void strbuf_addstr_without_crud(struct strbuf *sb, const char *src)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/ident.c:281,1
    - Dst: isspace
      Src: /src/git/ident.c:293,1
    - Dst: isspace
      Src: /src/git/ident.c:324,1
    - Dst: strspn
      Src: /src/git/ident.c:329,1
    - Dst: isspace
      Src: /src/git/ident.c:333,1
    - Dst: strspn
      Src: /src/git/ident.c:338,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 57
    argCount: 3
    argNames:
    - split
    - line
    - len
    argTypes:
    - struct ident_split*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 350
    functionName: split_ident_line
    functionSourceFile: /src/git/ident.c
    functionUses: 1
    functionsReached:
    - isspace
    - strspn
    - memset
    linkageType: ''
    returnType: int
    signature: int split_ident_line(struct ident_split *split, const char *line, size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: split_ident_line
      Src: /src/git/ident.c:364,1
    - Dst: map_user
      Src: /src/git/ident.c:372,1
    - Dst: strbuf_addf
      Src: /src/git/ident.c:376,1
    - Dst: strbuf_splice
      Src: /src/git/ident.c:379,1
    - Dst: strbuf_release
      Src: /src/git/ident.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - person
    - len
    - buf
    - mailmap
    argTypes:
    - char*
    - size_t
    - struct strbuf*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 390
    functionName: rewrite_ident_line
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - split_ident_line
    - strbuf_addf
    - strbuf_splice
    - map_user
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t rewrite_ident_line(const char *person, size_t len,\n\t\t\t\t
      \  struct strbuf *buf,\n\t\t\t\t   struct string_list *mailmap)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/ident.c:410,1
    - Dst: strchrnul
      Src: /src/git/ident.c:411,1
    - Dst: rewrite_ident_line
      Src: /src/git/ident.c:414,1
    - Dst: strchrnul
      Src: /src/git/ident.c:423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - buf
    - header
    - mailmap
    argTypes:
    - struct strbuf*
    - char**
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 428
    functionName: apply_mailmap_to_header
    functionSourceFile: /src/git/ident.c
    functionUses: 1
    functionsReached:
    - strchrnul
    - skip_prefix
    - rewrite_ident_line
    linkageType: ''
    returnType: void
    signature: "void apply_mailmap_to_header(struct strbuf *buf, const char **header,\n\t\t\t
      \      struct string_list *mailmap)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/git/ident.c:434,1
    - Dst: _
      Src: /src/git/ident.c:434,1
    - Dst: fputs
      Src: /src/git/ident.c:437,1
    - Dst: _
      Src: /src/git/ident.c:437,1
    - Dst: fputs
      Src: /src/git/ident.c:443,1
    - Dst: _
      Src: /src/git/ident.c:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - whose_ident
    argTypes:
    - enum want_ident
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 454
    functionName: ident_env_hint
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - fputs
    - _
    linkageType: ''
    returnType: void
    signature: void ident_env_hint(enum want_ident whose_ident)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/ident.c:466,1
    - Dst: ident_env_hint
      Src: /src/git/ident.c:477,1
    - Dst: die
      Src: /src/git/ident.c:478,1
    - Dst: _
      Src: /src/git/ident.c:478,1
    - Dst: ident_default_email
      Src: /src/git/ident.c:480,1
    - Dst: ident_env_hint
      Src: /src/git/ident.c:482,1
    - Dst: die
      Src: /src/git/ident.c:483,1
    - Dst: _
      Src: /src/git/ident.c:483,1
    - Dst: ident_env_hint
      Src: /src/git/ident.c:499,1
    - Dst: die
      Src: /src/git/ident.c:500,1
    - Dst: _
      Src: /src/git/ident.c:500,1
    - Dst: ident_default_name
      Src: /src/git/ident.c:502,1
    - Dst: ident_env_hint
      Src: /src/git/ident.c:505,1
    - Dst: die
      Src: /src/git/ident.c:506,1
    - Dst: _
      Src: /src/git/ident.c:506,1
    - Dst: ident_env_hint
      Src: /src/git/ident.c:513,1
    - Dst: die
      Src: /src/git/ident.c:514,1
    - Dst: _
      Src: /src/git/ident.c:514,1
    - Dst: xgetpwuid_self
      Src: /src/git/ident.c:516,1
    - Dst: has_non_crud
      Src: /src/git/ident.c:519,1
    - Dst: die
      Src: /src/git/ident.c:520,1
    - Dst: _
      Src: /src/git/ident.c:520,1
    - Dst: strbuf_reset
      Src: /src/git/ident.c:523,1
    - Dst: strbuf_addstr_without_crud
      Src: /src/git/ident.c:525,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:526,1
    - Dst: strbuf_addstr_without_crud
      Src: /src/git/ident.c:528,1
    - Dst: strbuf_addch
      Src: /src/git/ident.c:530,1
    - Dst: strbuf_addch
      Src: /src/git/ident.c:532,1
    - Dst: parse_date
      Src: /src/git/ident.c:534,1
    - Dst: die
      Src: /src/git/ident.c:535,1
    - Dst: _
      Src: /src/git/ident.c:535,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:538,1
    - Dst: ident_default_date
      Src: /src/git/ident.c:538,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 67
    argCount: 5
    argNames:
    - name
    - email
    - whose_ident
    - date_str
    - flag
    argTypes:
    - char*
    - char*
    - enum want_ident
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 456
    functionDepth: 6
    functionLinenumber: 456
    functionLinenumberEnd: 542
    functionName: fmt_ident
    functionSourceFile: /src/git/ident.c
    functionUses: 1
    functionsReached:
    - ident_default_date
    - ARRAY_SIZE
    - die
    - ident_default_email
    - strbuf_reset
    - strbuf_addstr_without_crud
    - has_non_crud
    - parse_date
    - ident_default_name
    - xgetpwuid_self
    - ident_env_hint
    - strbuf_addch
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: char
    signature: "char *fmt_ident(const char *name, const char *email,\n\t\t      enum
      want_ident whose_ident, const char *date_str, int flag)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/ident.c:553,1
    - Dst: getenv
      Src: /src/git/ident.c:554,1
    - Dst: getenv
      Src: /src/git/ident.c:557,1
    - Dst: getenv
      Src: /src/git/ident.c:558,1
    - Dst: fmt_ident
      Src: /src/git/ident.c:561,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - whose_ident
    argTypes:
    - enum want_ident
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 544
    functionDepth: 7
    functionLinenumber: 544
    functionLinenumberEnd: 563
    functionName: fmt_name
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - getenv
    - fmt_ident
    linkageType: ''
    returnType: char
    signature: char *fmt_name(enum want_ident whose_ident)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/ident.c:567,1
    - Dst: getenv
      Src: /src/git/ident.c:569,1
    - Dst: fmt_ident
      Src: /src/git/ident.c:571,1
    - Dst: getenv
      Src: /src/git/ident.c:571,1
    - Dst: getenv
      Src: /src/git/ident.c:572,1
    - Dst: getenv
      Src: /src/git/ident.c:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 565
    functionDepth: 7
    functionLinenumber: 565
    functionLinenumberEnd: 576
    functionName: git_author_info
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - getenv
    - fmt_ident
    linkageType: ''
    returnType: char
    signature: char *git_author_info(int flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/ident.c:580,1
    - Dst: getenv
      Src: /src/git/ident.c:582,1
    - Dst: fmt_ident
      Src: /src/git/ident.c:584,1
    - Dst: getenv
      Src: /src/git/ident.c:584,1
    - Dst: getenv
      Src: /src/git/ident.c:585,1
    - Dst: getenv
      Src: /src/git/ident.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 578
    functionDepth: 7
    functionLinenumber: 578
    functionLinenumberEnd: 589
    functionName: git_committer_info
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - getenv
    - fmt_ident
    linkageType: ''
    returnType: char
    signature: char *git_committer_info(int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_ident_explicitly_given
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 598
    functionName: ident_is_sufficient
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ident_is_sufficient(int user_ident_explicitly_given)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ident_is_sufficient
      Src: /src/git/ident.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: committer_ident_sufficiently_given
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - ident_is_sufficient
    linkageType: ''
    returnType: int
    signature: int committer_ident_sufficiently_given(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ident_is_sufficient
      Src: /src/git/ident.c: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: author_ident_sufficiently_given
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - ident_is_sufficient
    linkageType: ''
    returnType: int
    signature: int author_ident_sufficiently_given(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ident.c:612,1
    - Dst: config_error_nonbool
      Src: /src/git/ident.c:614,1
    - Dst: strbuf_reset
      Src: /src/git/ident.c:615,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:616,1
    - Dst: strcmp
      Src: /src/git/ident.c:622,1
    - Dst: config_error_nonbool
      Src: /src/git/ident.c:624,1
    - Dst: strbuf_reset
      Src: /src/git/ident.c:625,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:626,1
    - Dst: strcmp
      Src: /src/git/ident.c:632,1
    - Dst: config_error_nonbool
      Src: /src/git/ident.c:634,1
    - Dst: strbuf_reset
      Src: /src/git/ident.c:635,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:636,1
    - Dst: strcmp
      Src: /src/git/ident.c:642,1
    - Dst: config_error_nonbool
      Src: /src/git/ident.c:644,1
    - Dst: strbuf_reset
      Src: /src/git/ident.c:645,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:646,1
    - Dst: strcmp
      Src: /src/git/ident.c:652,1
    - Dst: config_error_nonbool
      Src: /src/git/ident.c:654,1
    - Dst: strbuf_reset
      Src: /src/git/ident.c:655,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:656,1
    - Dst: strcmp
      Src: /src/git/ident.c:663,1
    - Dst: config_error_nonbool
      Src: /src/git/ident.c:665,1
    - Dst: strbuf_reset
      Src: /src/git/ident.c:666,1
    - Dst: strbuf_addstr
      Src: /src/git/ident.c:667,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 675
    functionName: set_ident
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addstr
    - config_error_nonbool
    - strcmp
    linkageType: ''
    returnType: int
    signature: int set_ident(const char *var, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ident.c:681,1
    - Dst: git_config_bool
      Src: /src/git/ident.c:682,1
    - Dst: set_ident
      Src: /src/git/ident.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 687
    functionName: git_ident_config
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - set_ident
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_ident_config(const char *var, const char *value,\n\t\t     const
      struct config_context *ctx UNUSED,\n\t\t     void *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/ident.c:691,1
    - Dst: setenv
      Src: /src/git/ident.c:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - key
    - value
    - given
    - bit
    argTypes:
    - char*
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 695
    functionName: set_env_if
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - setenv
    - getenv
    linkageType: ''
    returnType: void
    signature: void set_env_if(const char *key, const char *value, int *given, int
      bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_env_if
      Src: /src/git/ident.c:699,1
    - Dst: set_env_if
      Src: /src/git/ident.c:701,1
    - Dst: set_env_if
      Src: /src/git/ident.c:703,1
    - Dst: set_env_if
      Src: /src/git/ident.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - name
    - email
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 707
    functionName: prepare_fallback_ident
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - set_env_if
    linkageType: ''
    returnType: void
    signature: void prepare_fallback_ident(const char *name, const char *email)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/ident.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - a_begin
    - a_end
    - b_begin
    - b_end
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 722
    functionName: buf_cmp
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int buf_cmp(const char *a_begin, const char *a_end,\n\t\t   const
      char *b_begin, const char *b_end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buf_cmp
      Src: /src/git/ident.c:729,1
    - Dst: buf_cmp
      Src: /src/git/ident.c:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct ident_split*
    - struct ident_split*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 736
    functionName: ident_cmp
    functionSourceFile: /src/git/ident.c
    functionUses: 0
    functionsReached:
    - buf_cmp
    linkageType: ''
    returnType: int
    signature: "int ident_cmp(const struct ident_split *a,\n\t      const struct ident_split
      *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: traverse_commit_list_filtered
      Src: /src/git/list-objects.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - revs
    - show_commit
    - show_object
    - show_data
    argTypes:
    - struct rev_info*
    - show_commit_fn
    - show_object_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: traverse_commit_list
    functionSourceFile: /src/git/list-objects.h
    functionUses: 0
    functionsReached:
    - traverse_commit_list_filtered
    linkageType: ''
    returnType: void
    signature: "void traverse_commit_list(\n\tstruct rev_info *revs,\n\tshow_commit_fn
      show_commit,\n\tshow_object_fn show_object,\n\tvoid *show_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/hash.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - git_SHA_CTX*
    - git_SHA_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: git_SHA1_Clone
    functionSourceFile: /src/git/hash.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void git_SHA1_Clone(git_SHA_CTX *dst, const git_SHA_CTX *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/hash.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - git_SHA_CTX_unsafe*
    - git_SHA_CTX_unsafe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: git_SHA1_Clone_unsafe
    functionSourceFile: /src/git/hash.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void git_SHA1_Clone_unsafe(git_SHA_CTX_unsafe *dst,\n\t\t\t\t       const
      git_SHA_CTX_unsafe *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/hash.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - git_SHA256_CTX*
    - git_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: git_SHA256_Clone
    functionSourceFile: /src/git/hash.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void git_SHA256_Clone(git_SHA256_CTX *dst, const git_SHA256_CTX *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 350
    functionName: hash_algo_by_ptr
    functionSourceFile: /src/git/hash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_algo_by_ptr(const struct git_hash_algo *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/hash.h:363,1
    - Dst: memcmp
      Src: /src/git/hash.h:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - sha1
    - sha2
    - algop
    argTypes:
    - unsigned char*
    - unsigned char*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 365
    functionName: hashcmp
    functionSourceFile: /src/git/hash.h
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int hashcmp(const unsigned char *sha1, const unsigned char *sha2, const
      struct git_hash_algo *algop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/hash.h:374,1
    - Dst: memcmp
      Src: /src/git/hash.h:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - sha1
    - sha2
    - algop
    argTypes:
    - unsigned char*
    - unsigned char*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 376
    functionName: hasheq
    functionSourceFile: /src/git/hash.h
    functionUses: 5
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int hasheq(const unsigned char *sha1, const unsigned char *sha2, const
      struct git_hash_algo *algop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/hash.h:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sha_dst
    - sha_src
    - algop
    argTypes:
    - unsigned char*
    - unsigned char*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: hashcpy
    functionSourceFile: /src/git/hash.h
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void hashcpy(unsigned char *sha_dst, const unsigned char *sha_src,\n\t\t\t
      \  const struct git_hash_algo *algop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/hash.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - algop
    argTypes:
    - unsigned char*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: hashclr
    functionSourceFile: /src/git/hash.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void hashclr(unsigned char *hash, const struct git_hash_algo *algop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/hash.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid1
    - oid2
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: oidcmp
    functionSourceFile: /src/git/hash.h
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int oidcmp(const struct object_id *oid1, const struct object_id *oid2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/hash.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid1
    - oid2
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: oideq
    functionSourceFile: /src/git/hash.h
    functionUses: 29
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int oideq(const struct object_id *oid1, const struct object_id *oid2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/hash.h:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: oidcpy
    functionSourceFile: /src/git/hash.h
    functionUses: 35
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void oidcpy(struct object_id *dst, const struct object_id *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/hash.h:411,1
    - Dst: memset
      Src: /src/git/hash.h:413,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/hash.h:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - oid
    - hash
    - algop
    argTypes:
    - struct object_id*
    - unsigned char*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 415
    functionName: oidread
    functionSourceFile: /src/git/hash.h
    functionUses: 5
    functionsReached:
    - memset
    - hash_algo_by_ptr
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void oidread(struct object_id *oid, const unsigned char *hash,\n\t\t\t
      \  const struct git_hash_algo *algop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/hash.h:420,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/hash.h:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - oid
    - algop
    argTypes:
    - struct object_id*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 422
    functionName: oidclr
    functionSourceFile: /src/git/hash.h
    functionUses: 5
    functionsReached:
    - memset
    - hash_algo_by_ptr
    linkageType: ''
    returnType: void
    signature: "void oidclr(struct object_id *oid,\n\t\t\t  const struct git_hash_algo
      *algop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/hash.h:426,1
    - Dst: oidcpy
      Src: /src/git/hash.h:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 429
    functionName: oiddup
    functionSourceFile: /src/git/hash.h
    functionUses: 1
    functionsReached:
    - xmalloc
    - oidcpy
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *oiddup(const struct object_id *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_algo_by_ptr
      Src: /src/git/hash.h:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid
    - algop
    argTypes:
    - struct object_id*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: oid_set_algo
    functionSourceFile: /src/git/hash.h
    functionUses: 2
    functionsReached:
    - hash_algo_by_ptr
    linkageType: ''
    returnType: void
    signature: void oid_set_algo(struct object_id *oid, const struct git_hash_algo
      *algop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/hash.h:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 453
    functionName: oidhash
    functionSourceFile: /src/git/hash.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int oidhash(const struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/hash.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 459
    functionName: is_null_oid
    functionSourceFile: /src/git/hash.h
    functionUses: 23
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_null_oid(const struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/hash.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid
    - algop
    argTypes:
    - struct object_id*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: is_empty_blob_oid
    functionSourceFile: /src/git/hash.h
    functionUses: 1
    functionsReached:
    - oideq
    linkageType: ''
    returnType: int
    signature: "int is_empty_blob_oid(const struct object_id *oid,\n\t\t\t\t    const
      struct git_hash_algo *algop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/hash.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid
    - algop
    argTypes:
    - struct object_id*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 473
    functionName: is_empty_tree_oid
    functionSourceFile: /src/git/hash.h
    functionUses: 0
    functionsReached:
    - oideq
    linkageType: ''
    returnType: int
    signature: "int is_empty_tree_oid(const struct object_id *oid,\n\t\t\t\t    const
      struct git_hash_algo *algop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: GET_PTR_TYPE
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PTR_TYPE(ptr)
  - 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: CLR_PTR_TYPE
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLR_PTR_TYPE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: SET_PTR_TYPE
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_PTR_TYPE(ptr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - sha1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: GET_NIBBLE
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_NIBBLE(n, sha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key_sha1
    - ','
    - subtree_sha1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: SUBTREE_SHA1_PREFIXCMP
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUBTREE_SHA1_PREFIXCMP(key_sha1, subtree_sha1)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:111,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:112,1
    - Dst: SUBTREE_SHA1_PREFIXCMP
      Src: /src/git/notes.c:113,1
    - Dst: load_subtree
      Src: /src/git/notes.c:116,1
    - Dst: free
      Src: /src/git/notes.c:117,1
    - Dst: note_tree_search
      Src: /src/git/notes.c:118,1
    - Dst: GET_NIBBLE
      Src: /src/git/notes.c:122,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:124,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:126,1
    - Dst: note_tree_search
      Src: /src/git/notes.c:128,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:130,1
    - Dst: SUBTREE_SHA1_PREFIXCMP
      Src: /src/git/notes.c:131,1
    - Dst: load_subtree
      Src: /src/git/notes.c:134,1
    - Dst: free
      Src: /src/git/notes.c:135,1
    - Dst: note_tree_search
      Src: /src/git/notes.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: note_tree_search
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - GET_PTR_TYPE
    - load_subtree
    - GET_NIBBLE
    - SUBTREE_SHA1_PREFIXCMP
    - CLR_PTR_TYPE
    - free
    - note_tree_search
    linkageType: ''
    returnType: void
    signature: "void **note_tree_search(struct notes_tree *t, struct int_node **tree,\n\t\tunsigned
      char *n, const unsigned char *key_sha1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: note_tree_search
      Src: /src/git/notes.c:153,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:154,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:155,1
    - Dst: hasheq
      Src: /src/git/notes.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - t
    - tree
    - n
    - key_sha1
    argTypes:
    - struct notes_tree*
    - struct int_node*
    - unsigned char
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: note_tree_find
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - CLR_PTR_TYPE
    - GET_PTR_TYPE
    - note_tree_search
    - hasheq
    linkageType: ''
    returnType: struct leaf_node
    signature: "struct leaf_node *note_tree_find(struct notes_tree *t,\n\t\tstruct
      int_node *tree, unsigned char n,\n\t\tconst unsigned char *key_sha1)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:175,1
    - Dst: assert
      Src: /src/git/notes.c:176,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:176,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:179,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:186,1
    - Dst: free
      Src: /src/git/notes.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - tree
    - parent
    - index
    argTypes:
    - struct int_node*
    - struct int_node*
    - unsigned char
    assertStmts:
    - condition: (tree && parent)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/git/notes.c
    - condition: (CLR_PTR_TYPE(parent->a[index]) == tree)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 192
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 192
    functionName: note_tree_consolidate
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - CLR_PTR_TYPE
    - GET_PTR_TYPE
    - assert
    - free
    linkageType: ''
    returnType: int
    signature: "int note_tree_consolidate(struct int_node *tree,\n\tstruct int_node
      *parent, unsigned char index)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: note_tree_search
      Src: /src/git/notes.c:209,1
    - Dst: assert
      Src: /src/git/notes.c:211,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:211,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:212,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:214,1
    - Dst: oideq
      Src: /src/git/notes.c:215,1
    - Dst: oidcpy
      Src: /src/git/notes.c:219,1
    - Dst: free
      Src: /src/git/notes.c:220,1
    - Dst: SET_PTR_TYPE
      Src: /src/git/notes.c:221,1
    - Dst: GET_NIBBLE
      Src: /src/git/notes.c:229,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:230,1
    - Dst: assert
      Src: /src/git/notes.c:232,1
    - Dst: note_tree_consolidate
      Src: /src/git/notes.c:235,1
    - Dst: GET_NIBBLE
      Src: /src/git/notes.c:236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - t
    - tree
    - n
    - entry
    argTypes:
    - struct notes_tree*
    - struct int_node*
    - unsigned char
    - struct leaf_node*
    assertStmts:
    - condition: (GET_PTR_TYPE(entry) == 0)
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/git/notes.c
    - condition: (i == n && parent_stack[i] == tree)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 238
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 238
    functionName: note_tree_remove
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - SET_PTR_TYPE
    - GET_PTR_TYPE
    - assert
    - note_tree_consolidate
    - oidcpy
    - GET_NIBBLE
    - CLR_PTR_TYPE
    - free
    - note_tree_search
    - oideq
    linkageType: ''
    returnType: void
    signature: "void note_tree_remove(struct notes_tree *t,\n\t\tstruct int_node *tree,
      unsigned char n,\n\t\tstruct leaf_node *entry)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: note_tree_search
      Src: /src/git/notes.c:259,1
    - Dst: assert
      Src: /src/git/notes.c:262,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:262,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:263,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:264,1
    - Dst: assert
      Src: /src/git/notes.c:266,1
    - Dst: is_null_oid
      Src: /src/git/notes.c:267,1
    - Dst: free
      Src: /src/git/notes.c:268,1
    - Dst: SET_PTR_TYPE
      Src: /src/git/notes.c:270,1
    - Dst: oideq
      Src: /src/git/notes.c:275,1
    - Dst: oideq
      Src: /src/git/notes.c:277,1
    - Dst: free
      Src: /src/git/notes.c:278,1
    - Dst: combine_notes
      Src: /src/git/notes.c:282,1
    - Dst: is_null_oid
      Src: /src/git/notes.c:284,1
    - Dst: note_tree_remove
      Src: /src/git/notes.c:285,1
    - Dst: free
      Src: /src/git/notes.c:286,1
    - Dst: SUBTREE_SHA1_PREFIXCMP
      Src: /src/git/notes.c:291,1
    - Dst: load_subtree
      Src: /src/git/notes.c:294,1
    - Dst: free
      Src: /src/git/notes.c:295,1
    - Dst: SUBTREE_SHA1_PREFIXCMP
      Src: /src/git/notes.c:302,1
    - Dst: load_subtree
      Src: /src/git/notes.c:305,1
    - Dst: free
      Src: /src/git/notes.c:306,1
    - Dst: note_tree_insert
      Src: /src/git/notes.c:307,1
    - Dst: assert
      Src: /src/git/notes.c:314,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:314,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:315,1
    - Dst: is_null_oid
      Src: /src/git/notes.c:316,1
    - Dst: free
      Src: /src/git/notes.c:317,1
    - Dst: xcalloc
      Src: /src/git/notes.c:320,1
    - Dst: note_tree_insert
      Src: /src/git/notes.c:321,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:321,1
    - Dst: SET_PTR_TYPE
      Src: /src/git/notes.c:325,1
    - Dst: note_tree_insert
      Src: /src/git/notes.c:326,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 6
    argNames:
    - t
    - tree
    - n
    - entry
    - type
    - combine_notes
    argTypes:
    - struct notes_tree*
    - struct int_node*
    - unsigned char
    - struct leaf_node*
    - unsigned char
    - combine_notes_fn
    assertStmts:
    - condition: (!*p)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/git/notes.c
    - condition: (GET_PTR_TYPE(entry) == 0)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/git/notes.c
    - condition: "(GET_PTR_TYPE(*p) == PTR_TYPE_NOTE ||\n\t       GET_PTR_TYPE(*p)
        == PTR_TYPE_SUBTREE)"
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 327
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 327
    functionName: note_tree_insert
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - SET_PTR_TYPE
    - GET_PTR_TYPE
    - combine_notes
    - assert
    - note_tree_insert
    - load_subtree
    - is_null_oid
    - CLR_PTR_TYPE
    - SUBTREE_SHA1_PREFIXCMP
    - note_tree_remove
    - xcalloc
    - free
    - note_tree_search
    - oideq
    linkageType: ''
    returnType: int
    signature: "int note_tree_insert(struct notes_tree *t, struct int_node *tree,\n\t\tunsigned
      char n, struct leaf_node *entry, unsigned char type,\n\t\tcombine_notes_fn combine_notes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:335,1
    - Dst: note_tree_free
      Src: /src/git/notes.c:337,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:337,1
    - Dst: free
      Src: /src/git/notes.c:341,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tree
    argTypes:
    - struct int_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 344
    functionName: note_tree_free
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - note_tree_free
    - GET_PTR_TYPE
    - CLR_PTR_TYPE
    - free
    linkageType: ''
    returnType: void
    signature: void note_tree_free(struct int_node *tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/notes.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct non_note*
    - struct non_note*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: non_note_cmp
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int non_note_cmp(const struct non_note *a, const struct non_note *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/notes.c:356,1
    - Dst: oidread
      Src: /src/git/notes.c:360,1
    - Dst: non_note_cmp
      Src: /src/git/notes.c:368,1
    - Dst: non_note_cmp
      Src: /src/git/notes.c:370,1
    - Dst: non_note_cmp
      Src: /src/git/notes.c:380,1
    - Dst: non_note_cmp
      Src: /src/git/notes.c:383,1
    - Dst: assert
      Src: /src/git/notes.c:384,1
    - Dst: strcmp
      Src: /src/git/notes.c:384,1
    - Dst: oidcpy
      Src: /src/git/notes.c:386,1
    - Dst: free
      Src: /src/git/notes.c:387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - t
    - path
    - mode
    - sha1
    argTypes:
    - struct notes_tree*
    - char*
    - unsigned int
    - unsigned char*
    assertStmts:
    - condition: (strcmp(p->path, n->path) == 0)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 395
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 395
    functionName: add_non_note
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - assert
    - oidcpy
    - xmalloc
    - strcmp
    - free
    - non_note_cmp
    - oidread
    linkageType: ''
    returnType: void
    signature: "void add_non_note(struct notes_tree *t, char *path,\n\t\tunsigned
      int mode, const unsigned char *sha1)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fill_tree_descriptor
      Src: /src/git/notes.c:407,1
    - Dst: die
      Src: /src/git/notes.c:409,1
    - Dst: oid_to_hex
      Src: /src/git/notes.c:410,1
    - Dst: BUG
      Src: /src/git/notes.c:414,1
    - Dst: BUG
      Src: /src/git/notes.c:416,1
    - Dst: memcpy
      Src: /src/git/notes.c:417,1
    - Dst: tree_entry
      Src: /src/git/notes.c:418,1
    - Dst: strlen
      Src: /src/git/notes.c:421,1
    - Dst: S_ISREG
      Src: /src/git/notes.c:426,1
    - Dst: hex_to_bytes
      Src: /src/git/notes.c:430,1
    - Dst: memset
      Src: /src/git/notes.c:434,1
    - Dst: S_ISDIR
      Src: /src/git/notes.c:441,1
    - Dst: hex_to_bytes
      Src: /src/git/notes.c:445,1
    - Dst: memset
      Src: /src/git/notes.c:453,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/notes.c:462,1
    - Dst: oidcpy
      Src: /src/git/notes.c:463,1
    - Dst: oidcpy
      Src: /src/git/notes.c:464,1
    - Dst: oid_set_algo
      Src: /src/git/notes.c:465,1
    - Dst: oid_set_algo
      Src: /src/git/notes.c:466,1
    - Dst: note_tree_insert
      Src: /src/git/notes.c:467,1
    - Dst: die
      Src: /src/git/notes.c:469,1
    - Dst: oid_to_hex
      Src: /src/git/notes.c:472,1
    - Dst: oid_to_hex
      Src: /src/git/notes.c:488,1
    - Dst: strbuf_addch
      Src: /src/git/notes.c:491,1
    - Dst: strbuf_addch
      Src: /src/git/notes.c:492,1
    - Dst: strbuf_addch
      Src: /src/git/notes.c:493,1
    - Dst: strbuf_addstr
      Src: /src/git/notes.c:495,1
    - Dst: oid_set_algo
      Src: /src/git/notes.c:496,1
    - Dst: add_non_note
      Src: /src/git/notes.c:497,1
    - Dst: strbuf_detach
      Src: /src/git/notes.c:497,1
    - Dst: free
      Src: /src/git/notes.c:501,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 4
    argNames:
    - t
    - subtree
    - node
    - n
    argTypes:
    - struct notes_tree*
    - struct leaf_node*
    - struct int_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 502
    functionName: load_subtree
    functionSourceFile: /src/git/notes.c
    functionUses: 2
    functionsReached:
    - oidcpy
    - oid_set_algo
    - CALLOC_ARRAY
    - free
    - fill_tree_descriptor
    - hex_to_bytes
    - die
    - memcpy
    - strbuf_addstr
    - S_ISREG
    - memset
    - oid_to_hex
    - note_tree_insert
    - strbuf_detach
    - add_non_note
    - S_ISDIR
    - tree_entry
    - strbuf_addch
    - strlen
    - BUG
    linkageType: ''
    returnType: void
    signature: "void load_subtree(struct notes_tree *t, struct leaf_node *subtree,\n\t\tstruct
      int_node *node, unsigned int n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - tree
    - n
    - fanout
    argTypes:
    - struct int_node*
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 542
    functionName: determine_fanout
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - GET_PTR_TYPE
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char determine_fanout(struct int_node *tree, unsigned char
      n,\n\t\tunsigned char fanout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_to_hex
      Src: /src/git/notes.c:551,1
    - Dst: assert
      Src: /src/git/notes.c:552,1
    - Dst: xsnprintf
      Src: /src/git/notes.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - hash
    - fanout
    - path
    argTypes:
    - unsigned char*
    - unsigned char
    - char*
    assertStmts:
    - condition: (fanout < the_hash_algo->rawsz)
      pos:
        line_end: 551
        line_start: 551
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 560
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 560
    functionName: construct_path_with_fanout
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    - assert
    - hash_to_hex
    linkageType: ''
    returnType: void
    signature: "void construct_path_with_fanout(const unsigned char *hash,\n\t\tunsigned
      char fanout, char *path)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: determine_fanout
      Src: /src/git/notes.c:572,1
    - Dst: GET_PTR_TYPE
      Src: /src/git/notes.c:576,1
    - Dst: for_each_note_helper
      Src: /src/git/notes.c:579,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:579,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:583,1
    - Dst: assert
      Src: /src/git/notes.c:603,1
    - Dst: construct_path_with_fanout
      Src: /src/git/notes.c:604,1
    - Dst: fn
      Src: /src/git/notes.c:611,1
    - Dst: load_subtree
      Src: /src/git/notes.c:619,1
    - Dst: free
      Src: /src/git/notes.c:620,1
    - Dst: CLR_PTR_TYPE
      Src: /src/git/notes.c:625,1
    - Dst: construct_path_with_fanout
      Src: /src/git/notes.c:626,1
    - Dst: fn
      Src: /src/git/notes.c:628,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 7
    argNames:
    - t
    - tree
    - n
    - fanout
    - flags
    - fn
    - cb_data
    argTypes:
    - struct notes_tree*
    - struct int_node*
    - unsigned char
    - unsigned char
    - int
    - each_note_fn
    - void*
    assertStmts:
    - condition: (path_len < FANOUT_PATH_MAX - 1)
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 636
      start: 562
    functionDepth: 5
    functionLinenumber: 562
    functionLinenumberEnd: 636
    functionName: for_each_note_helper
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - GET_PTR_TYPE
    - fn
    - assert
    - for_each_note_helper
    - load_subtree
    - determine_fanout
    - CLR_PTR_TYPE
    - construct_path_with_fanout
    - free
    linkageType: ''
    returnType: int
    signature: "int for_each_note_helper(struct notes_tree *t, struct int_node *tree,\n\t\tunsigned
      char n, unsigned char fanout, int flags,\n\t\teach_note_fn fn, void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - tws
    - full_path
    argTypes:
    - struct tree_write_stack*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: matches_tree_write_stack
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int matches_tree_write_stack(struct tree_write_stack *tws,\n\t\tconst
      char *full_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/notes.c:656,1
    - Dst: strbuf_add
      Src: /src/git/notes.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - buf
    - mode
    - path
    - path_len
    - hash
    argTypes:
    - struct strbuf*
    - unsigned int
    - char*
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 658
    functionName: write_tree_entry
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void write_tree_entry(struct strbuf *buf, unsigned int mode,\n\t\tconst
      char *path, unsigned int path_len, const\n\t\tunsigned char *hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:664,1
    - Dst: assert
      Src: /src/git/notes.c:665,1
    - Dst: xmalloc
      Src: /src/git/notes.c:667,1
    - Dst: strbuf_init
      Src: /src/git/notes.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - tws
    - path
    argTypes:
    - struct tree_write_stack*
    - char*
    assertStmts:
    - condition: (!tws->next)
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/git/notes.c
    - condition: (tws->path[0] == '\0' && tws->path[1] == '\0')
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 674
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 674
    functionName: tree_write_stack_init_subtree
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - assert
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: "void tree_write_stack_init_subtree(struct tree_write_stack *tws,\n\t\tconst
      char *path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tree_write_stack_finish_subtree
      Src: /src/git/notes.c:682,1
    - Dst: odb_write_object
      Src: /src/git/notes.c:685,1
    - Dst: strbuf_release
      Src: /src/git/notes.c:689,1
    - Dst: free
      Src: /src/git/notes.c:690,1
    - Dst: write_tree_entry
      Src: /src/git/notes.c:692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - tws
    argTypes:
    - struct tree_write_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 696
    functionName: tree_write_stack_finish_subtree
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - write_tree_entry
    - odb_write_object
    - tree_write_stack_finish_subtree
    - free
    linkageType: ''
    returnType: int
    signature: int tree_write_stack_finish_subtree(struct tree_write_stack *tws)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/notes.c:702,1
    - Dst: matches_tree_write_stack
      Src: /src/git/notes.c:708,1
    - Dst: tree_write_stack_finish_subtree
      Src: /src/git/notes.c:714,1
    - Dst: tree_write_stack_init_subtree
      Src: /src/git/notes.c:720,1
    - Dst: assert
      Src: /src/git/notes.c:726,1
    - Dst: memchr
      Src: /src/git/notes.c:726,1
    - Dst: write_tree_entry
      Src: /src/git/notes.c:729,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - tws
    - path
    - mode
    - oid
    argTypes:
    - struct tree_write_stack*
    - char*
    - unsigned int
    - struct object_id*
    assertStmts:
    - condition: (memchr(path + 3 * n, '/', path_len - (3 * n)) == NULL)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 733
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 733
    functionName: write_each_note_helper
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - memchr
    - write_tree_entry
    - assert
    - matches_tree_write_stack
    - strlen
    - tree_write_stack_finish_subtree
    - tree_write_stack_init_subtree
    linkageType: ''
    returnType: int
    signature: "int write_each_note_helper(struct tree_write_stack *tws,\n\t\tconst
      char *path, unsigned int mode,\n\t\tconst struct object_id *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/notes.c:747,1
    - Dst: write_each_note_helper
      Src: /src/git/notes.c:751,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - note_path
    - d
    argTypes:
    - char*
    - struct write_each_note_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 761
    functionName: write_each_non_note_until
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - write_each_note_helper
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int write_each_non_note_until(const char *note_path,\n\t\tstruct write_each_note_data
      *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/notes.c:769,1
    - Dst: assert
      Src: /src/git/notes.c:778,1
    - Dst: write_each_non_note_until
      Src: /src/git/notes.c:781,1
    - Dst: write_each_note_helper
      Src: /src/git/notes.c:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - object_oid
    - note_oid
    - note_path
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_id*
    - char*
    - void*
    assertStmts:
    - condition: (note_path_len <= GIT_MAX_HEXSZ + FANOUT_PATH_SEPARATORS)
      pos:
        line_end: 777
        line_start: 777
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 783
      start: 763
    functionDepth: 5
    functionLinenumber: 763
    functionLinenumberEnd: 783
    functionName: write_each_note
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - strlen
    - write_each_note_helper
    - assert
    - write_each_non_note_until
    linkageType: ''
    returnType: int
    signature: "int write_each_note(const struct object_id *object_oid UNUSED,\n\t\tconst
      struct object_id *note_oid, char *note_path,\n\t\tvoid *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/notes.c:798,1
    - Dst: xmalloc
      Src: /src/git/notes.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - object_oid
    - note_oid
    - note_path
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 808
    functionName: prune_notes_helper
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - odb_has_object
    - xmalloc
    linkageType: ''
    returnType: int
    signature: "int prune_notes_helper(const struct object_id *object_oid,\n\t\t\t
      \     const struct object_id *note_oid UNUSED,\n\t\t\t      char *note_path
      UNUSED,\n\t\t\t      void *cb_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/notes.c:819,1
    - Dst: odb_read_object
      Src: /src/git/notes.c:820,1
    - Dst: free
      Src: /src/git/notes.c:823,1
    - Dst: is_null_oid
      Src: /src/git/notes.c:826,1
    - Dst: odb_read_object
      Src: /src/git/notes.c:827,1
    - Dst: free
      Src: /src/git/notes.c:830,1
    - Dst: free
      Src: /src/git/notes.c:831,1
    - Dst: oidcpy
      Src: /src/git/notes.c:832,1
    - Dst: xmalloc
      Src: /src/git/notes.c:842,1
    - Dst: memcpy
      Src: /src/git/notes.c:843,1
    - Dst: memcpy
      Src: /src/git/notes.c:846,1
    - Dst: free
      Src: /src/git/notes.c:847,1
    - Dst: free
      Src: /src/git/notes.c:848,1
    - Dst: odb_write_object
      Src: /src/git/notes.c:851,1
    - Dst: free
      Src: /src/git/notes.c:853,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - cur_oid
    - new_oid
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 855
    functionName: combine_notes_concatenate
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - odb_write_object
    - oidcpy
    - is_null_oid
    - memcpy
    - xmalloc
    - free
    - odb_read_object
    linkageType: ''
    returnType: int
    signature: "int combine_notes_concatenate(struct object_id *cur_oid,\n\t\t\t      const
      struct object_id *new_oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/notes.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cur_oid
    - new_oid
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 862
    functionName: combine_notes_overwrite
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int combine_notes_overwrite(struct object_id *cur_oid,\n\t\t\t    const
      struct object_id *new_oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cur_oid
    - new_oid
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 868
    functionName: combine_notes_ignore
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int combine_notes_ignore(struct object_id *cur_oid UNUSED,\n\t\t\t
      const struct object_id *new_oid UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/notes.c:881,1
    - Dst: odb_read_object
      Src: /src/git/notes.c:885,1
    - Dst: free
      Src: /src/git/notes.c:887,1
    - Dst: string_list_split
      Src: /src/git/notes.c:897,1
    - Dst: free
      Src: /src/git/notes.c:898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - list
    - oid
    argTypes:
    - struct string_list*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 900
    functionName: string_list_add_note_lines
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - free
    - odb_read_object
    - string_list_split
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: "int string_list_add_note_lines(struct string_list *list,\n\t\t\t\t
      \     const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/notes.c:906,1
    - Dst: strbuf_addch
      Src: /src/git/notes.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 909
    functionName: string_list_join_lines_helper
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: "int string_list_join_lines_helper(struct string_list_item *item,\n\t\t\t\t\t
      void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_list_add_note_lines
      Src: /src/git/notes.c:919,1
    - Dst: string_list_add_note_lines
      Src: /src/git/notes.c:921,1
    - Dst: string_list_remove_empty_items
      Src: /src/git/notes.c:923,1
    - Dst: string_list_sort_u
      Src: /src/git/notes.c:924,1
    - Dst: for_each_string_list
      Src: /src/git/notes.c:927,1
    - Dst: odb_write_object
      Src: /src/git/notes.c:931,1
    - Dst: strbuf_release
      Src: /src/git/notes.c:935,1
    - Dst: string_list_clear
      Src: /src/git/notes.c:936,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - cur_oid
    - new_oid
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 938
    functionName: combine_notes_cat_sort_uniq
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_add_note_lines
    - strbuf_release
    - odb_write_object
    - string_list_remove_empty_items
    - for_each_string_list
    - string_list_sort_u
    linkageType: ''
    returnType: int
    signature: "int combine_notes_cat_sort_uniq(struct object_id *cur_oid,\n\t\t\t\tconst
      struct object_id *new_oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unsorted_string_list_has_string
      Src: /src/git/notes.c:943,1
    - Dst: string_list_append
      Src: /src/git/notes.c:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - cb
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 946
    functionName: string_list_add_one_ref
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - unsorted_string_list_has_string
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int string_list_add_one_ref(const struct reference *ref, void *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:953,1
    - Dst: has_glob_specials
      Src: /src/git/notes.c:954,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/notes.c:958,1
    - Dst: get_main_ref_store
      Src: /src/git/notes.c:958,1
    - Dst: repo_get_oid
      Src: /src/git/notes.c:962,1
    - Dst: warning
      Src: /src/git/notes.c:963,1
    - Dst: unsorted_string_list_has_string
      Src: /src/git/notes.c:964,1
    - Dst: string_list_append
      Src: /src/git/notes.c:965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - list
    - glob
    argTypes:
    - struct string_list*
    - char*
    assertStmts:
    - condition: (list->strdup_strings)
      pos:
        line_end: 952
        line_start: 952
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 967
      start: 951
    functionDepth: 3
    functionLinenumber: 951
    functionLinenumberEnd: 967
    functionName: string_list_add_refs_by_glob
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - assert
    - has_glob_specials
    - repo_get_oid
    - refs_for_each_ref_ext
    - unsorted_string_list_has_string
    - string_list_append
    - warning
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void string_list_add_refs_by_glob(struct string_list *list, const char
      *glob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/notes.c:973,1
    - Dst: string_list_split_in_place_f
      Src: /src/git/notes.c:976,1
    - Dst: string_list_add_refs_by_glob
      Src: /src/git/notes.c:980,1
    - Dst: string_list_clear
      Src: /src/git/notes.c:982,1
    - Dst: free
      Src: /src/git/notes.c:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - list
    - globs
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 969
    functionDepth: 4
    functionLinenumber: 969
    functionLinenumberEnd: 984
    functionName: string_list_add_refs_from_colon_sep
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_split_in_place_f
    - string_list_add_refs_by_glob
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void string_list_add_refs_from_colon_sep(struct string_list *list,\n\t\t\t\t\t
      const char *globs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/notes.c:992,1
    - Dst: config_error_nonbool
      Src: /src/git/notes.c:994,1
    - Dst: string_list_add_refs_by_glob
      Src: /src/git/notes.c:995,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - k
    - v
    - UNUSED
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 986
    functionDepth: 4
    functionLinenumber: 986
    functionLinenumberEnd: 999
    functionName: notes_display_config
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - string_list_add_refs_by_glob
    - config_error_nonbool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int notes_display_config(const char *k, const char *v,\n\t\t\t\tconst
      struct config_context *ctx UNUSED,\n\t\t\t\tvoid *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/notes.c:1006,1
    - Dst: getenv
      Src: /src/git/notes.c:1006,1
    - Dst: repo_config_get_string
      Src: /src/git/notes.c:1008,1
    - Dst: xstrdup
      Src: /src/git/notes.c:1010,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1012
    functionName: default_notes_ref
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - getenv
    - xstrdup_or_null
    - repo_config_get_string
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *default_notes_ref(struct repository *repo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:1024,1
    - Dst: default_notes_ref
      Src: /src/git/notes.c:1027,1
    - Dst: update_ref_namespace
      Src: /src/git/notes.c:1028,1
    - Dst: xstrdup
      Src: /src/git/notes.c:1028,1
    - Dst: xcalloc
      Src: /src/git/notes.c:1033,1
    - Dst: xstrdup
      Src: /src/git/notes.c:1036,1
    - Dst: repo_get_oid_treeish
      Src: /src/git/notes.c:1043,1
    - Dst: refs_read_ref
      Src: /src/git/notes.c:1045,1
    - Dst: get_main_ref_store
      Src: /src/git/notes.c:1045,1
    - Dst: die
      Src: /src/git/notes.c:1046,1
    - Dst: get_tree_entry
      Src: /src/git/notes.c:1047,1
    - Dst: die
      Src: /src/git/notes.c:1048,1
    - Dst: oid_to_hex
      Src: /src/git/notes.c:1049,1
    - Dst: oidclr
      Src: /src/git/notes.c:1051,1
    - Dst: oidcpy
      Src: /src/git/notes.c:1052,1
    - Dst: load_subtree
      Src: /src/git/notes.c:1053,1
    - Dst: free
      Src: /src/git/notes.c:1056,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - t
    - notes_ref
    - combine_notes
    - flags
    argTypes:
    - struct notes_tree*
    - char*
    - combine_notes_fn
    - int
    assertStmts:
    - condition: (!t->initialized)
      pos:
        line_end: 1023
        line_start: 1023
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 1057
      start: 1014
    functionDepth: 5
    functionLinenumber: 1014
    functionLinenumberEnd: 1057
    functionName: init_notes
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - get_tree_entry
    - die
    - assert
    - default_notes_ref
    - oid_to_hex
    - update_ref_namespace
    - repo_get_oid_treeish
    - oidcpy
    - load_subtree
    - refs_read_ref
    - oidclr
    - xcalloc
    - free
    - get_main_ref_store
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void init_notes(struct notes_tree *t, const char *notes_ref,\n\t\tcombine_notes_fn
      combine_notes, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/notes.c:1064,1
    - Dst: xcalloc
      Src: /src/git/notes.c:1066,1
    - Dst: init_notes
      Src: /src/git/notes.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1059
    functionDepth: 6
    functionLinenumber: 1059
    functionLinenumberEnd: 1072
    functionName: load_notes_trees
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - init_notes
    - xcalloc
    linkageType: ''
    returnType: struct notes_tree
    signature: struct notes_tree **load_notes_trees(struct string_list *refs, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/notes.c:1066,1
    - Dst: init_notes
      Src: /src/git/notes.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1065
    functionDepth: 6
    functionLinenumber: 1065
    functionLinenumberEnd: 1069
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/notes.c
    functionUses: 7
    functionsReached:
    - init_notes
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/notes.c:1076,1
    - Dst: string_list_init_dup
      Src: /src/git/notes.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct display_notes_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1079
    functionName: init_display_notes
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - memset
    - string_list_init_dup
    linkageType: ''
    returnType: void
    signature: void init_display_notes(struct display_notes_opt *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/notes.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct display_notes_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1084
    functionName: release_display_notes
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    linkageType: ''
    returnType: void
    signature: void release_display_notes(struct display_notes_opt *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opt
    - show_notes
    argTypes:
    - struct display_notes_opt*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1090
    functionName: enable_default_display_notes
    functionSourceFile: /src/git/notes.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void enable_default_display_notes(struct display_notes_opt *opt, int
      *show_notes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/notes.c:1095,1
    - Dst: expand_notes_ref
      Src: /src/git/notes.c:1096,1
    - Dst: string_list_append_nodup
      Src: /src/git/notes.c:1097,1
    - Dst: strbuf_detach
      Src: /src/git/notes.c:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - show_notes
    - ref
    argTypes:
    - struct display_notes_opt*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1100
    functionName: enable_ref_display_notes
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - strbuf_detach
    - expand_notes_ref
    - string_list_append_nodup
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void enable_ref_display_notes(struct display_notes_opt *opt, int *show_notes,\n\t\tconst
      char *ref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/notes.c:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - opt
    - show_notes
    argTypes:
    - struct display_notes_opt*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1107
    functionName: disable_display_notes
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    linkageType: ''
    returnType: void
    signature: void disable_display_notes(struct display_notes_opt *opt, int *show_notes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:1115,1
    - Dst: string_list_append_nodup
      Src: /src/git/notes.c:1119,1
    - Dst: default_notes_ref
      Src: /src/git/notes.c:1119,1
    - Dst: getenv
      Src: /src/git/notes.c:1120,1
    - Dst: string_list_add_refs_from_colon_sep
      Src: /src/git/notes.c:1122,1
    - Dst: repo_config
      Src: /src/git/notes.c:1129,1
    - Dst: for_each_string_list_item
      Src: /src/git/notes.c:1133,1
    - Dst: string_list_add_refs_by_glob
      Src: /src/git/notes.c:1134,1
    - Dst: load_notes_trees
      Src: /src/git/notes.c:1138,1
    - Dst: string_list_clear
      Src: /src/git/notes.c:1139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct display_notes_opt*
    assertStmts:
    - condition: (!display_notes_trees)
      pos:
        line_end: 1114
        line_start: 1114
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 1140
      start: 1109
    functionDepth: 7
    functionLinenumber: 1109
    functionLinenumberEnd: 1140
    functionName: load_display_notes
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - string_list_append_nodup
    - assert
    - default_notes_ref
    - load_notes_trees
    - string_list_add_refs_from_colon_sep
    - string_list_add_refs_by_glob
    - getenv
    - repo_config
    linkageType: ''
    returnType: void
    signature: void load_display_notes(struct display_notes_opt *opt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:1149,1
    - Dst: xmalloc
      Src: /src/git/notes.c:1153,1
    - Dst: oidcpy
      Src: /src/git/notes.c:1154,1
    - Dst: oidcpy
      Src: /src/git/notes.c:1155,1
    - Dst: note_tree_insert
      Src: /src/git/notes.c:1156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - t
    - object_oid
    - note_oid
    - combine_notes
    argTypes:
    - struct notes_tree*
    - struct object_id*
    - struct object_id*
    - combine_notes_fn
    assertStmts:
    - condition: (t->initialized)
      pos:
        line_end: 1148
        line_start: 1148
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 1157
      start: 1142
    functionDepth: 4
    functionLinenumber: 1142
    functionLinenumberEnd: 1157
    functionName: add_note
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - note_tree_insert
    - xmalloc
    - assert
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int add_note(struct notes_tree *t, const struct object_id *object_oid,\n\t\tconst
      struct object_id *note_oid, combine_notes_fn combine_notes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:1165,1
    - Dst: oidread
      Src: /src/git/notes.c:1166,1
    - Dst: oidclr
      Src: /src/git/notes.c:1167,1
    - Dst: note_tree_remove
      Src: /src/git/notes.c:1168,1
    - Dst: is_null_oid
      Src: /src/git/notes.c:1169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - t
    - object_sha1
    argTypes:
    - struct notes_tree*
    - unsigned char*
    assertStmts:
    - condition: (t->initialized)
      pos:
        line_end: 1164
        line_start: 1164
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 1173
      start: 1159
    functionDepth: 3
    functionLinenumber: 1159
    functionLinenumberEnd: 1173
    functionName: remove_note
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - assert
    - is_null_oid
    - oidclr
    - note_tree_remove
    - oidread
    linkageType: ''
    returnType: int
    signature: int remove_note(struct notes_tree *t, const unsigned char *object_sha1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:1182,1
    - Dst: note_tree_find
      Src: /src/git/notes.c:1183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - oid
    argTypes:
    - struct notes_tree*
    - struct object_id*
    assertStmts:
    - condition: (t->initialized)
      pos:
        line_end: 1181
        line_start: 1181
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 1185
      start: 1175
    functionDepth: 3
    functionLinenumber: 1175
    functionLinenumberEnd: 1185
    functionName: get_note
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - note_tree_find
    - assert
    linkageType: ''
    returnType: struct object_id
    signature: "struct object_id *get_note(struct notes_tree *t,\n\t\tconst struct
      object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:1192,1
    - Dst: for_each_note_helper
      Src: /src/git/notes.c:1193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - t
    - flags
    - fn
    - cb_data
    argTypes:
    - struct notes_tree*
    - int
    - each_note_fn
    - void*
    assertStmts:
    - condition: (t->initialized)
      pos:
        line_end: 1191
        line_start: 1191
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 1194
      start: 1187
    functionDepth: 6
    functionLinenumber: 1187
    functionLinenumberEnd: 1194
    functionName: for_each_note
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - for_each_note_helper
    - assert
    linkageType: ''
    returnType: int
    signature: "int for_each_note(struct notes_tree *t, int flags, each_note_fn fn,\n\t\tvoid
      *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:1205,1
    - Dst: strbuf_init
      Src: /src/git/notes.c:1209,1
    - Dst: for_each_note
      Src: /src/git/notes.c:1218,1
    - Dst: write_each_non_note_until
      Src: /src/git/notes.c:1219,1
    - Dst: tree_write_stack_finish_subtree
      Src: /src/git/notes.c:1220,1
    - Dst: odb_write_object
      Src: /src/git/notes.c:1221,1
    - Dst: strbuf_release
      Src: /src/git/notes.c:1223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - t
    - result
    argTypes:
    - struct notes_tree*
    - struct object_id*
    assertStmts:
    - condition: (t->initialized)
      pos:
        line_end: 1204
        line_start: 1204
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 1225
      start: 1196
    functionDepth: 7
    functionLinenumber: 1196
    functionLinenumberEnd: 1225
    functionName: write_notes_tree
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - assert
    - odb_write_object
    - for_each_note
    - write_each_non_note_until
    - tree_write_stack_finish_subtree
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: int write_notes_tree(struct notes_tree *t, struct object_id *result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:1233,1
    - Dst: for_each_note
      Src: /src/git/notes.c:1235,1
    - Dst: printf
      Src: /src/git/notes.c:1241,1
    - Dst: hash_to_hex
      Src: /src/git/notes.c:1241,1
    - Dst: remove_note
      Src: /src/git/notes.c:1243,1
    - Dst: free
      Src: /src/git/notes.c:1246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - t
    - flags
    argTypes:
    - struct notes_tree*
    - int
    assertStmts:
    - condition: (t->initialized)
      pos:
        line_end: 1232
        line_start: 1232
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 1249
      start: 1227
    functionDepth: 7
    functionLinenumber: 1227
    functionLinenumberEnd: 1249
    functionName: prune_notes
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - assert
    - hash_to_hex
    - for_each_note
    - remove_note
    - free
    - printf
    linkageType: ''
    returnType: void
    signature: void prune_notes(struct notes_tree *t, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: note_tree_free
      Src: /src/git/notes.c:1256,1
    - Dst: free
      Src: /src/git/notes.c:1257,1
    - Dst: free
      Src: /src/git/notes.c:1260,1
    - Dst: free
      Src: /src/git/notes.c:1261,1
    - Dst: free
      Src: /src/git/notes.c:1264,1
    - Dst: memset
      Src: /src/git/notes.c:1265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct notes_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1251
    functionDepth: 2
    functionLinenumber: 1251
    functionLinenumberEnd: 1266
    functionName: free_notes
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - note_tree_free
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void free_notes(struct notes_tree *t)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: init_notes
      Src: /src/git/notes.c:1291,1
    - Dst: get_note
      Src: /src/git/notes.c:1293,1
    - Dst: odb_read_object
      Src: /src/git/notes.c:1297,1
    - Dst: free
      Src: /src/git/notes.c:1299,1
    - Dst: is_encoding_utf8
      Src: /src/git/notes.c:1304,1
    - Dst: reencode_string
      Src: /src/git/notes.c:1305,1
    - Dst: free
      Src: /src/git/notes.c:1307,1
    - Dst: strlen
      Src: /src/git/notes.c:1309,1
    - Dst: strcmp
      Src: /src/git/notes.c:1319,1
    - Dst: strbuf_addstr
      Src: /src/git/notes.c:1320,1
    - Dst: skip_prefix
      Src: /src/git/notes.c:1322,1
    - Dst: skip_prefix
      Src: /src/git/notes.c:1323,1
    - Dst: strbuf_addf
      Src: /src/git/notes.c:1324,1
    - Dst: strchrnul
      Src: /src/git/notes.c:1329,1
    - Dst: strbuf_addstr
      Src: /src/git/notes.c:1332,1
    - Dst: strbuf_add
      Src: /src/git/notes.c:1333,1
    - Dst: strbuf_addch
      Src: /src/git/notes.c:1334,1
    - Dst: free
      Src: /src/git/notes.c:1337,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 5
    argNames:
    - t
    - object_oid
    - sb
    - output_encoding
    - raw
    argTypes:
    - struct notes_tree*
    - struct object_id*
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1279
    functionDepth: 6
    functionLinenumber: 1279
    functionLinenumberEnd: 1338
    functionName: format_note
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - get_note
    - is_encoding_utf8
    - strbuf_addf
    - strbuf_addch
    - strchrnul
    - reencode_string
    - strlen
    - init_notes
    - strcmp
    - strbuf_addstr
    - free
    - odb_read_object
    - skip_prefix
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void format_note(struct notes_tree *t, const struct object_id *object_oid,\n\t\t\tstruct
      strbuf *sb, const char *output_encoding, int raw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes.c:1344,1
    - Dst: format_note
      Src: /src/git/notes.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - object_oid
    - sb
    - output_encoding
    - raw
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - int
    assertStmts:
    - condition: (display_notes_trees)
      pos:
        line_end: 1343
        line_start: 1343
        source_file: /src/git/notes.c
    constantsTouched: []
    func_position:
      end: 1348
      start: 1340
    functionDepth: 7
    functionLinenumber: 1340
    functionLinenumberEnd: 1348
    functionName: format_display_notes
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - format_note
    - assert
    linkageType: ''
    returnType: void
    signature: "void format_display_notes(const struct object_id *object_oid,\n\t\t\t
      \ struct strbuf *sb, const char *output_encoding, int raw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_note
      Src: /src/git/notes.c:1354,1
    - Dst: get_note
      Src: /src/git/notes.c:1355,1
    - Dst: add_note
      Src: /src/git/notes.c:1361,1
    - Dst: add_note
      Src: /src/git/notes.c:1363,1
    - Dst: null_oid
      Src: /src/git/notes.c:1363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - t
    - from_obj
    - to_obj
    - force
    - combine_notes
    argTypes:
    - struct notes_tree*
    - struct object_id*
    - struct object_id*
    - int
    - combine_notes_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1350
    functionDepth: 5
    functionLinenumber: 1350
    functionLinenumberEnd: 1366
    functionName: copy_note
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - get_note
    - null_oid
    - add_note
    linkageType: ''
    returnType: int
    signature: "int copy_note(struct notes_tree *t,\n\t      const struct object_id
      *from_obj, const struct object_id *to_obj,\n\t      int force, combine_notes_fn
      combine_notes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/notes.c:1370,1
    - Dst: starts_with
      Src: /src/git/notes.c:1372,1
    - Dst: strbuf_insertstr
      Src: /src/git/notes.c:1373,1
    - Dst: strbuf_insertstr
      Src: /src/git/notes.c:1375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1376
    functionName: expand_notes_ref
    functionSourceFile: /src/git/notes.c
    functionUses: 1
    functionsReached:
    - strbuf_insertstr
    - starts_with
    linkageType: ''
    returnType: void
    signature: void expand_notes_ref(struct strbuf *sb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/notes.c:1382,1
    - Dst: expand_notes_ref
      Src: /src/git/notes.c:1384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1386
    functionName: expand_loose_notes_ref
    functionSourceFile: /src/git/notes.c
    functionUses: 0
    functionsReached:
    - expand_notes_ref
    - repo_get_oid
    linkageType: ''
    returnType: void
    signature: void expand_loose_notes_ref(struct strbuf *sb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_tmp
      Src: /src/git/transport.c:58,1
    - Dst: git_config_colorbool
      Src: /src/git/transport.c:59,1
    - Dst: want_color_stderr
      Src: /src/git/transport.c:61,1
    - Dst: ARRAY_SIZE
      Src: /src/git/transport.c:64,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/transport.c:65,1
    - Dst: config_error_nonbool
      Src: /src/git/transport.c:67,1
    - Dst: color_parse
      Src: /src/git/transport.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: transport_color_config
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - git_config_colorbool
    - ARRAY_SIZE
    - repo_config_get_string_tmp
    - want_color_stderr
    - color_parse
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: int transport_color_config(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color_stderr
      Src: /src/git/transport.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ix
    argTypes:
    - enum color_transport
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: transport_get_color
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - want_color_stderr
    linkageType: ''
    returnType: char
    signature: char *transport_get_color(enum color_transport ix)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/transport.c:100,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/transport.c:106,1
    - Dst: get_main_ref_store
      Src: /src/git/transport.c:106,1
    - Dst: starts_with
      Src: /src/git/transport.c:110,1
    - Dst: starts_with
      Src: /src/git/transport.c:114,1
    - Dst: starts_with
      Src: /src/git/transport.c:116,1
    - Dst: install_branch_config
      Src: /src/git/transport.c:121,1
    - Dst: printf
      Src: /src/git/transport.c:124,1
    - Dst: _
      Src: /src/git/transport.c:124,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 23
    argCount: 3
    argNames:
    - transport
    - refs
    - pretend
    argTypes:
    - struct transport*
    - struct ref*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 128
    functionName: set_upstreams
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - starts_with
    - is_null_oid
    - _
    - install_branch_config
    - printf
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void set_upstreams(struct transport *transport, struct ref *refs,\n\tint
      pretend)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/transport.c:143,1
    - Dst: read_bundle_header
      Src: /src/git/transport.c:144,1
    - Dst: die
      Src: /src/git/transport.c:146,1
    - Dst: _
      Src: /src/git/transport.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: get_refs_from_bundle_inner
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - close
    - read_bundle_header
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void get_refs_from_bundle_inner(struct transport *transport)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_refs_from_bundle_inner
      Src: /src/git/transport.c:161,1
    - Dst: alloc_ref
      Src: /src/git/transport.c:166,1
    - Dst: oidcpy
      Src: /src/git/transport.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - transport
    - for_push
    - transport_options
    argTypes:
    - struct transport*
    - int
    - struct transport_ls_refs_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 173
    functionName: get_refs_from_bundle
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - get_refs_from_bundle_inner
    - alloc_ref
    - oidcpy
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *get_refs_from_bundle(struct transport *transport,\n\t\t\t\t\tint
      for_push,\n\t\t\t\t\tstruct transport_ls_refs_options *transport_options UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fetch_pack_fsck_config
      Src: /src/git/transport.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: fetch_fsck_config_cb
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - fetch_pack_fsck_config
    linkageType: ''
    returnType: int
    signature: "int fetch_fsck_config_cb(const char *var, const char *value,\n\t\t\t\tconst
      struct config_context *ctx UNUSED, void *cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fetch_pack_fsck_objects
      Src: /src/git/transport.c:193,1
    - Dst: strvec_push
      Src: /src/git/transport.c:201,1
    - Dst: get_refs_from_bundle_inner
      Src: /src/git/transport.c:204,1
    - Dst: repo_config
      Src: /src/git/transport.c:206,1
    - Dst: unbundle
      Src: /src/git/transport.c:209,1
    - Dst: strvec_clear
      Src: /src/git/transport.c:214,1
    - Dst: strbuf_release
      Src: /src/git/transport.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - transport
    - nr_heads
    - to_fetch
    argTypes:
    - struct transport*
    - int
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 217
    functionName: fetch_refs_from_bundle
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - unbundle
    - strvec_push
    - strbuf_release
    - fetch_pack_fsck_objects
    - strvec_clear
    - get_refs_from_bundle_inner
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int fetch_refs_from_bundle(struct transport *transport,\n\t\t\t\t
      \ int nr_heads UNUSED,\n\t\t\t\t  struct ref **to_fetch UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/transport.c:223,1
    - Dst: bundle_header_release
      Src: /src/git/transport.c:224,1
    - Dst: free
      Src: /src/git/transport.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: close_bundle
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - close
    - bundle_header_release
    - free
    linkageType: ''
    returnType: int
    signature: int close_bundle(struct transport *transport)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/transport.c:242,1
    - Dst: strcmp
      Src: /src/git/transport.c:245,1
    - Dst: strcmp
      Src: /src/git/transport.c:248,1
    - Dst: strcmp
      Src: /src/git/transport.c:251,1
    - Dst: strcmp
      Src: /src/git/transport.c:254,1
    - Dst: strcmp
      Src: /src/git/transport.c:257,1
    - Dst: strcmp
      Src: /src/git/transport.c:260,1
    - Dst: strtol
      Src: /src/git/transport.c:265,1
    - Dst: die
      Src: /src/git/transport.c:267,1
    - Dst: _
      Src: /src/git/transport.c:267,1
    - Dst: strcmp
      Src: /src/git/transport.c:270,1
    - Dst: strcmp
      Src: /src/git/transport.c:273,1
    - Dst: strcmp
      Src: /src/git/transport.c:276,1
    - Dst: strcmp
      Src: /src/git/transport.c:279,1
    - Dst: strcmp
      Src: /src/git/transport.c:282,1
    - Dst: list_objects_filter_die_if_populated
      Src: /src/git/transport.c:283,1
    - Dst: parse_list_objects_filter
      Src: /src/git/transport.c:284,1
    - Dst: strcmp
      Src: /src/git/transport.c:286,1
    - Dst: strcmp
      Src: /src/git/transport.c:289,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 3
    argNames:
    - opts
    - name
    - value
    argTypes:
    - struct git_transport_options*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 294
    functionName: set_git_option
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - die
    - parse_list_objects_filter
    - strcmp
    - _
    - strtol
    - list_objects_filter_die_if_populated
    linkageType: ''
    returnType: int
    signature: "int set_git_option(struct git_transport_options *opts,\n\t\t\t  const
      char *name, const char *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_connect
      Src: /src/git/transport.c:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - transport
    - for_push
    argTypes:
    - struct transport*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 320
    functionName: connect_setup
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - git_connect
    linkageType: ''
    returnType: int
    signature: int connect_setup(struct transport *transport, int for_push)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advise
      Src: /src/git/transport.c:326,1
    - Dst: _
      Src: /src/git/transport.c:326,1
    - Dst: die
      Src: /src/git/transport.c:327,1
    - Dst: _
      Src: /src/git/transport.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: die_if_server_options
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - advise
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void die_if_server_options(struct transport *transport)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: connect_setup
      Src: /src/git/transport.c:349,1
    - Dst: packet_reader_init
      Src: /src/git/transport.c:351,1
    - Dst: discover_version
      Src: /src/git/transport.c:356,1
    - Dst: server_feature_v2
      Src: /src/git/transport.c:362,1
    - Dst: trace2_data_string
      Src: /src/git/transport.c:363,1
    - Dst: get_remote_refs
      Src: /src/git/transport.c:365,1
    - Dst: die_if_server_options
      Src: /src/git/transport.c:372,1
    - Dst: get_remote_heads
      Src: /src/git/transport.c:373,1
    - Dst: server_feature_value
      Src: /src/git/transport.c:377,1
    - Dst: xstrndup
      Src: /src/git/transport.c:379,1
    - Dst: trace2_data_string
      Src: /src/git/transport.c:380,1
    - Dst: free
      Src: /src/git/transport.c:381,1
    - Dst: BUG
      Src: /src/git/transport.c:385,1
    - Dst: BUG
      Src: /src/git/transport.c:391,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - transport
    - for_push
    - options
    - must_list_refs
    argTypes:
    - struct transport*
    - int
    - struct transport_ls_refs_options*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 394
    functionName: handshake
    functionSourceFile: /src/git/transport.c
    functionUses: 1
    functionsReached:
    - get_remote_refs
    - server_feature_value
    - connect_setup
    - packet_reader_init
    - xstrndup
    - die_if_server_options
    - get_remote_heads
    - free
    - server_feature_v2
    - BUG
    - discover_version
    - trace2_data_string
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *handshake(struct transport *transport, int for_push,\n\t\t\t
      \    struct transport_ls_refs_options *options,\n\t\t\t     int must_list_refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handshake
      Src: /src/git/transport.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - transport
    - for_push
    - options
    argTypes:
    - struct transport*
    - int
    - struct transport_ls_refs_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: get_refs_via_connect
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - handshake
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *get_refs_via_connect(struct transport *transport, int
      for_push,\n\t\t\t\t\tstruct transport_ls_refs_options *options)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/transport.c:409,1
    - Dst: init_bundle_list
      Src: /src/git/transport.c:410,1
    - Dst: handshake
      Src: /src/git/transport.c:414,1
    - Dst: free_refs
      Src: /src/git/transport.c:417,1
    - Dst: server_supports_v2
      Src: /src/git/transport.c:424,1
    - Dst: packet_reader_init
      Src: /src/git/transport.c:427,1
    - Dst: get_remote_bundle_uri
      Src: /src/git/transport.c:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 433
    functionName: get_bundle_uri
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - handshake
    - free_refs
    - packet_reader_init
    - init_bundle_list
    - CALLOC_ARRAY
    - server_supports_v2
    - get_remote_bundle_uri
    linkageType: ''
    returnType: int
    signature: int get_bundle_uri(struct transport *transport)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/transport.c:444,1
    - Dst: list_objects_filter_copy
      Src: /src/git/transport.c:462,1
    - Dst: handshake
      Src: /src/git/transport.c:480,1
    - Dst: BUG
      Src: /src/git/transport.c:484,1
    - Dst: die_if_server_options
      Src: /src/git/transport.c:486,1
    - Dst: warning
      Src: /src/git/transport.c:490,1
    - Dst: _
      Src: /src/git/transport.c:490,1
    - Dst: server_supports_feature
      Src: /src/git/transport.c:492,1
    - Dst: warning
      Src: /src/git/transport.c:493,1
    - Dst: _
      Src: /src/git/transport.c:493,1
    - Dst: negotiate_using_fetch
      Src: /src/git/transport.c:496,1
    - Dst: DUP_ARRAY
      Src: /src/git/transport.c:512,1
    - Dst: fetch_pack
      Src: /src/git/transport.c:515,1
    - Dst: report_unmatched_refs
      Src: /src/git/transport.c:527,1
    - Dst: close
      Src: /src/git/transport.c:531,1
    - Dst: close
      Src: /src/git/transport.c:533,1
    - Dst: finish_connect
      Src: /src/git/transport.c:534,1
    - Dst: free
      Src: /src/git/transport.c:538,1
    - Dst: free_refs
      Src: /src/git/transport.c:539,1
    - Dst: free_refs
      Src: /src/git/transport.c:540,1
    - Dst: list_objects_filter_release
      Src: /src/git/transport.c:541,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 76
    argCount: 3
    argNames:
    - transport
    - nr_heads
    - to_fetch
    argTypes:
    - struct transport*
    - int
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 543
    functionName: fetch_refs_via_pack
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - finish_connect
    - memset
    - server_supports_feature
    - handshake
    - negotiate_using_fetch
    - fetch_pack
    - free
    - free_refs
    - die_if_server_options
    - list_objects_filter_release
    - list_objects_filter_copy
    - _
    - close
    - DUP_ARRAY
    - warning
    - BUG
    - report_unmatched_refs
    linkageType: ''
    returnType: int
    signature: "int fetch_refs_via_pack(struct transport *transport,\n\t\t\t       int
      nr_heads, struct ref **to_fetch)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 558
    functionName: push_had_errors
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int push_had_errors(struct ref *ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 572
    functionName: transport_refs_pushed
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int transport_refs_pushed(struct ref *ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/transport.c:580,1
    - Dst: remote_find_tracking
      Src: /src/git/transport.c:584,1
    - Dst: fprintf
      Src: /src/git/transport.c:586,1
    - Dst: refs_delete_ref
      Src: /src/git/transport.c:588,1
    - Dst: get_main_ref_store
      Src: /src/git/transport.c:588,1
    - Dst: refs_update_ref
      Src: /src/git/transport.c:591,1
    - Dst: get_main_ref_store
      Src: /src/git/transport.c:591,1
    - Dst: free
      Src: /src/git/transport.c:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - remote
    - refname
    - new_oid
    - deletion
    - verbose
    argTypes:
    - struct remote*
    - char*
    - struct object_id*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 574
    functionDepth: 7
    functionLinenumber: 574
    functionLinenumberEnd: 596
    functionName: update_one_tracking_ref
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - memset
    - refs_delete_ref
    - remote_find_tracking
    - free
    - refs_update_ref
    - fprintf
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void update_one_tracking_ref(struct remote *remote, char *refname,\n\t\t\t\t
      \   struct object_id *new_oid, int deletion,\n\t\t\t\t    int verbose)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_one_tracking_ref
      Src: /src/git/transport.c:609,1
    - Dst: update_one_tracking_ref
      Src: /src/git/transport.c:615,1
    - Dst: is_null_oid
      Src: /src/git/transport.c:616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - remote
    - ref
    - verbose
    argTypes:
    - struct remote*
    - struct ref*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 598
    functionDepth: 8
    functionLinenumber: 598
    functionLinenumberEnd: 618
    functionName: transport_update_tracking_ref
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - is_null_oid
    - update_one_tracking_ref
    linkageType: ''
    returnType: void
    signature: void transport_update_tracking_ref(struct remote *remote, struct ref
      *ref, int verbose)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/transport.c:634,1
    - Dst: fprintf
      Src: /src/git/transport.c:636,1
    - Dst: fprintf
      Src: /src/git/transport.c:638,1
    - Dst: fprintf
      Src: /src/git/transport.c:640,1
    - Dst: push_had_errors
      Src: /src/git/transport.c:643,1
    - Dst: transport_get_color
      Src: /src/git/transport.c:644,1
    - Dst: transport_get_color
      Src: /src/git/transport.c:645,1
    - Dst: fprintf
      Src: /src/git/transport.c:647,1
    - Dst: fprintf
      Src: /src/git/transport.c:650,1
    - Dst: prettify_refname
      Src: /src/git/transport.c:651,1
    - Dst: prettify_refname
      Src: /src/git/transport.c:652,1
    - Dst: fputs
      Src: /src/git/transport.c:654,1
    - Dst: prettify_refname
      Src: /src/git/transport.c:654,1
    - Dst: fputs
      Src: /src/git/transport.c:656,1
    - Dst: fputs
      Src: /src/git/transport.c:657,1
    - Dst: fputc
      Src: /src/git/transport.c:658,1
    - Dst: fputc
      Src: /src/git/transport.c:660,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 8
    argNames:
    - flag
    - summary
    - to
    - from
    - msg
    - report
    - porcelain
    - summary_width
    argTypes:
    - char
    - char*
    - struct ref*
    - struct ref*
    - char*
    - struct ref_push_report*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 662
    functionName: print_ref_status
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - fputs
    - push_had_errors
    - fputc
    - transport_get_color
    - prettify_refname
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void print_ref_status(char flag, const char *summary,\n\t\t\t     struct
      ref *to, struct ref *from, const char *msg,\n\t\t\t     struct ref_push_report
      *report,\n\t\t\t     int porcelain, int summary_width)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: print_ref_status
      Src: /src/git/transport.c:691,1
    - Dst: is_null_oid
      Src: /src/git/transport.c:693,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:694,1
    - Dst: starts_with
      Src: /src/git/transport.c:695,1
    - Dst: starts_with
      Src: /src/git/transport.c:697,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/transport.c:707,1
    - Dst: strbuf_addstr
      Src: /src/git/transport.c:710,1
    - Dst: strbuf_addstr
      Src: /src/git/transport.c:714,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/transport.c:718,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:721,1
    - Dst: strbuf_release
      Src: /src/git/transport.c:723,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - ref
    - report
    - porcelain
    - summary_width
    argTypes:
    - struct ref*
    - struct ref_push_report*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 725
    functionName: print_ok_ref_status
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - starts_with
    - is_null_oid
    - print_ref_status
    - strbuf_addstr
    - strbuf_add_unique_abbrev
    linkageType: ''
    returnType: void
    signature: "void print_ok_ref_status(struct ref *ref,\n\t\t\t\tstruct ref_push_report
      *report,\n\t\t\t\tint porcelain, int summary_width)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: transport_anonymize_url
      Src: /src/git/transport.c:732,1
    - Dst: fprintf
      Src: /src/git/transport.c:733,1
    - Dst: free
      Src: /src/git/transport.c:734,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:739,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:743,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:748,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:753,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:758,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:763,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:768,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:773,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:778,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:783,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:788,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:794,1
    - Dst: print_ref_status
      Src: /src/git/transport.c:800,1
    - Dst: print_ok_ref_status
      Src: /src/git/transport.c:805,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 6
    argNames:
    - ref
    - dest
    - count
    - report
    - porcelain
    - summary_width
    argTypes:
    - struct ref*
    - char*
    - int
    - struct ref_push_report*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 810
    functionName: print_one_push_report
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - transport_anonymize_url
    - print_ref_status
    - free
    - print_ok_ref_status
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int print_one_push_report(struct ref *ref, const char *dest, int count,\n\t\t\t\t
      struct ref_push_report *report,\n\t\t\t\t int porcelain, int summary_width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_one_push_report
      Src: /src/git/transport.c:819,1
    - Dst: print_one_push_report
      Src: /src/git/transport.c:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - ref
    - dest
    - count
    - porcelain
    - summary_width
    argTypes:
    - struct ref*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 812
    functionDepth: 5
    functionLinenumber: 812
    functionLinenumberEnd: 826
    functionName: print_one_push_status
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - print_one_push_report
    linkageType: ''
    returnType: int
    signature: "int print_one_push_status(struct ref *ref, const char *dest, int count,\n\t\t\t\t
      int porcelain, int summary_width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_find_unique_abbrev_r
      Src: /src/git/transport.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid
    - sofar
    argTypes:
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 835
    functionName: measure_abbrev
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - repo_find_unique_abbrev_r
    linkageType: ''
    returnType: int
    signature: int measure_abbrev(const struct object_id *oid, int sofar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: measure_abbrev
      Src: /src/git/transport.c:842,1
    - Dst: measure_abbrev
      Src: /src/git/transport.c:843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - refs
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 848
    functionName: transport_summary_width
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - measure_abbrev
    linkageType: ''
    returnType: int
    signature: int transport_summary_width(const struct ref *refs)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: transport_summary_width
      Src: /src/git/transport.c:856,1
    - Dst: transport_color_config
      Src: /src/git/transport.c:858,1
    - Dst: warning
      Src: /src/git/transport.c:859,1
    - Dst: _
      Src: /src/git/transport.c:859,1
    - Dst: refs_resolve_refdup
      Src: /src/git/transport.c:861,1
    - Dst: get_main_ref_store
      Src: /src/git/transport.c:861,1
    - Dst: print_one_push_status
      Src: /src/git/transport.c:867,1
    - Dst: print_one_push_status
      Src: /src/git/transport.c:873,1
    - Dst: print_one_push_status
      Src: /src/git/transport.c:881,1
    - Dst: strcmp
      Src: /src/git/transport.c:884,1
    - Dst: free
      Src: /src/git/transport.c:898,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 5
    argNames:
    - dest
    - refs
    - verbose
    - porcelain
    - reject_reasons
    argTypes:
    - char*
    - struct ref*
    - int
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 850
    functionDepth: 6
    functionLinenumber: 850
    functionLinenumberEnd: 899
    functionName: transport_print_push_status
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - transport_color_config
    - print_one_push_status
    - transport_summary_width
    - strcmp
    - _
    - free
    - warning
    - get_main_ref_store
    - refs_resolve_refdup
    linkageType: ''
    returnType: void
    signature: "void transport_print_push_status(const char *dest, struct ref *refs,\n\t\t\t\t
      \ int verbose, int porcelain, unsigned int *reject_reasons)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: transport_color_config
      Src: /src/git/transport.c:907,1
    - Dst: get_refs_via_connect
      Src: /src/git/transport.c:911,1
    - Dst: memset
      Src: /src/git/transport.c:913,1
    - Dst: die
      Src: /src/git/transport.c:937,1
    - Dst: _
      Src: /src/git/transport.c:937,1
    - Dst: send_pack
      Src: /src/git/transport.c:941,1
    - Dst: BUG
      Src: /src/git/transport.c:952,1
    - Dst: close
      Src: /src/git/transport.c:955,1
    - Dst: close
      Src: /src/git/transport.c:956,1
    - Dst: finish_connect
      Src: /src/git/transport.c:957,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 3
    argNames:
    - transport
    - remote_refs
    - flags
    argTypes:
    - struct transport*
    - struct ref*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 901
    functionDepth: 4
    functionLinenumber: 901
    functionLinenumberEnd: 962
    functionName: git_transport_push
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - transport_color_config
    - finish_connect
    - memset
    - die
    - get_refs_via_connect
    - send_pack
    - _
    - close
    - BUG
    linkageType: ''
    returnType: int
    signature: int git_transport_push(struct transport *transport, struct ref *remote_refs,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_connect
      Src: /src/git/transport.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - transport
    - name
    - executable
    - fd
    argTypes:
    - struct transport*
    - char*
    - char*
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 973
    functionName: connect_git
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - git_connect
    linkageType: ''
    returnType: int
    signature: "int connect_git(struct transport *transport, const char *name,\n\t\t
      \      const char *executable, int fd[2])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: packet_flush
      Src: /src/git/transport.c:980,1
    - Dst: close
      Src: /src/git/transport.c:981,1
    - Dst: close
      Src: /src/git/transport.c:983,1
    - Dst: finish_connect
      Src: /src/git/transport.c:984,1
    - Dst: oid_array_clear
      Src: /src/git/transport.c:988,1
    - Dst: free
      Src: /src/git/transport.c:989,1
    - Dst: oid_array_clear
      Src: /src/git/transport.c:992,1
    - Dst: free
      Src: /src/git/transport.c:993,1
    - Dst: list_objects_filter_release
      Src: /src/git/transport.c:995,1
    - Dst: oid_array_clear
      Src: /src/git/transport.c:996,1
    - Dst: oid_array_clear
      Src: /src/git/transport.c:997,1
    - Dst: free
      Src: /src/git/transport.c:998,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1000
    functionName: disconnect_git
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - finish_connect
    - oid_array_clear
    - packet_flush
    - free
    - close
    - list_objects_filter_release
    linkageType: ''
    returnType: int
    signature: int disconnect_git(struct transport *transport)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/transport.c:1016,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/transport.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - transport
    - child
    argTypes:
    - struct transport*
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1031
    functionName: transport_take_over
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - BUG
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void transport_take_over(struct transport *transport,\n\t\t\t struct
      child_process *child)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/transport.c:1036,1
    - Dst: S_ISREG
      Src: /src/git/transport.c:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1039
    functionName: is_file
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - stat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int is_file(const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/transport.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1044
    functionName: external_specification_len
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int external_specification_len(const char *url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/transport.c:1052,1
    - Dst: string_list_split
      Src: /src/git/transport.c:1054,1
    - Dst: string_list_sort
      Src: /src/git/transport.c:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1063
    functionName: protocol_allow_list
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - string_list_split
    - getenv
    - string_list_sort
    linkageType: ''
    returnType: struct string_list
    signature: struct string_list *protocol_allow_list(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/transport.c:1074,1
    - Dst: strcasecmp
      Src: /src/git/transport.c:1076,1
    - Dst: strcasecmp
      Src: /src/git/transport.c:1078,1
    - Dst: die
      Src: /src/git/transport.c:1081,1
    - Dst: _
      Src: /src/git/transport.c:1081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1082
    functionName: parse_protocol_config
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - die
    - _
    linkageType: ''
    returnType: enum protocol_allow_config
    signature: "enum protocol_allow_config parse_protocol_config(const char *key,\n\t\t\t\t\t\t\tconst
      char *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/transport.c:1086,1
    - Dst: repo_config_get_string
      Src: /src/git/transport.c:1090,1
    - Dst: parse_protocol_config
      Src: /src/git/transport.c:1092,1
    - Dst: free
      Src: /src/git/transport.c:1093,1
    - Dst: free
      Src: /src/git/transport.c:1094,1
    - Dst: free
      Src: /src/git/transport.c:1097,1
    - Dst: repo_config_get_string
      Src: /src/git/transport.c:1100,1
    - Dst: parse_protocol_config
      Src: /src/git/transport.c:1102,1
    - Dst: free
      Src: /src/git/transport.c:1103,1
    - Dst: strcmp
      Src: /src/git/transport.c:1109,1
    - Dst: strcmp
      Src: /src/git/transport.c:1110,1
    - Dst: strcmp
      Src: /src/git/transport.c:1111,1
    - Dst: strcmp
      Src: /src/git/transport.c:1112,1
    - Dst: strcmp
      Src: /src/git/transport.c:1116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1121
    functionName: get_protocol_config
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - parse_protocol_config
    - xstrfmt
    - repo_config_get_string
    - strcmp
    - free
    linkageType: ''
    returnType: enum protocol_allow_config
    signature: enum protocol_allow_config get_protocol_config(const char *type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: protocol_allow_list
      Src: /src/git/transport.c:1125,1
    - Dst: string_list_has_string
      Src: /src/git/transport.c:1127,1
    - Dst: get_protocol_config
      Src: /src/git/transport.c:1129,1
    - Dst: git_env_bool
      Src: /src/git/transport.c:1136,1
    - Dst: BUG
      Src: /src/git/transport.c:1140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - type
    - from_user
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1123
    functionDepth: 3
    functionLinenumber: 1123
    functionLinenumberEnd: 1141
    functionName: is_transport_allowed
    functionSourceFile: /src/git/transport.c
    functionUses: 1
    functionsReached:
    - git_env_bool
    - get_protocol_config
    - protocol_allow_list
    - string_list_has_string
    - BUG
    linkageType: ''
    returnType: int
    signature: int is_transport_allowed(const char *type, int from_user)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: config_error_nonbool
      Src: /src/git/transport.c:1147,1
    - Dst: string_list_clear
      Src: /src/git/transport.c:1149,1
    - Dst: string_list_append
      Src: /src/git/transport.c:1151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - var
    - value
    - transport_options
    argTypes:
    - char*
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1153
    functionName: parse_transport_option
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_append
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int parse_transport_option(const char *var, const char *value,\n\t\t\t
      \  struct string_list *transport_options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_transport_allowed
      Src: /src/git/transport.c:1157,1
    - Dst: die
      Src: /src/git/transport.c:1158,1
    - Dst: _
      Src: /src/git/transport.c:1158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1155
    functionDepth: 4
    functionLinenumber: 1155
    functionLinenumberEnd: 1159
    functionName: transport_check_allowed
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - is_transport_allowed
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void transport_check_allowed(const char *type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/transport.c:1181,1
    - Dst: isatty
      Src: /src/git/transport.c:1183,1
    - Dst: string_list_init_dup
      Src: /src/git/transport.c:1184,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/transport.c:1186,1
    - Dst: init_bundle_list
      Src: /src/git/transport.c:1187,1
    - Dst: BUG
      Src: /src/git/transport.c:1190,1
    - Dst: is_urlschemechar
      Src: /src/git/transport.c:1201,1
    - Dst: starts_with
      Src: /src/git/transport.c:1203,1
    - Dst: xstrndup
      Src: /src/git/transport.c:1204,1
    - Dst: transport_helper_init
      Src: /src/git/transport.c:1207,1
    - Dst: free
      Src: /src/git/transport.c:1208,1
    - Dst: starts_with
      Src: /src/git/transport.c:1209,1
    - Dst: die
      Src: /src/git/transport.c:1210,1
    - Dst: _
      Src: /src/git/transport.c:1210,1
    - Dst: url_is_local_not_ssh
      Src: /src/git/transport.c:1211,1
    - Dst: is_file
      Src: /src/git/transport.c:1211,1
    - Dst: is_bundle
      Src: /src/git/transport.c:1211,1
    - Dst: xcalloc
      Src: /src/git/transport.c:1212,1
    - Dst: bundle_header_init
      Src: /src/git/transport.c:1213,1
    - Dst: transport_check_allowed
      Src: /src/git/transport.c:1214,1
    - Dst: is_url
      Src: /src/git/transport.c:1218,1
    - Dst: starts_with
      Src: /src/git/transport.c:1219,1
    - Dst: starts_with
      Src: /src/git/transport.c:1220,1
    - Dst: starts_with
      Src: /src/git/transport.c:1221,1
    - Dst: starts_with
      Src: /src/git/transport.c:1222,1
    - Dst: starts_with
      Src: /src/git/transport.c:1223,1
    - Dst: xcalloc
      Src: /src/git/transport.c:1229,1
    - Dst: list_objects_filter_init
      Src: /src/git/transport.c:1230,1
    - Dst: external_specification_len
      Src: /src/git/transport.c:1240,1
    - Dst: xmemdupz
      Src: /src/git/transport.c:1241,1
    - Dst: transport_helper_init
      Src: /src/git/transport.c:1242,1
    - Dst: free
      Src: /src/git/transport.c:1243,1
    - Dst: sideband_apply_url_config
      Src: /src/git/transport.c:1258,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - remote
    - url
    argTypes:
    - struct remote*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1176
    functionDepth: 5
    functionLinenumber: 1176
    functionLinenumberEnd: 1261
    functionName: transport_get
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - transport_helper_init
    - is_bundle
    - url_is_local_not_ssh
    - init_bundle_list
    - bundle_header_init
    - CALLOC_ARRAY
    - is_url
    - free
    - string_list_init_dup
    - die
    - is_file
    - list_objects_filter_init
    - transport_check_allowed
    - xcalloc
    - isatty
    - _
    - external_specification_len
    - starts_with
    - xstrndup
    - is_urlschemechar
    - sideband_apply_url_config
    - BUG
    linkageType: ''
    returnType: struct transport
    signature: struct transport *transport_get(struct remote *remote, const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1266
    functionName: transport_get_hash_algo
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct git_hash_algo
    signature: struct git_hash_algo *transport_get_hash_algo(struct transport *transport)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_git_option
      Src: /src/git/transport.c:1274,1
    - Dst: struct transport*::vtable::set_option
      Src: /src/git/transport.c:1278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - transport
    - name
    - value
    argTypes:
    - struct transport*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1268
    functionDepth: 2
    functionLinenumber: 1268
    functionLinenumberEnd: 1289
    functionName: transport_set_option
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - struct transport*::vtable::set_option
    - set_git_option
    linkageType: ''
    returnType: int
    signature: "int transport_set_option(struct transport *transport,\n\t\t\t const
      char *name, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/transport.c:1311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - transport
    - verbosity
    - force_progress
    argTypes:
    - struct transport*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1312
    functionName: transport_set_verbosity
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - isatty
    linkageType: ''
    returnType: void
    signature: "void transport_set_verbosity(struct transport *transport, int verbosity,\n\tint
      force_progress)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/transport.c:1316,1
    - Dst: _
      Src: /src/git/transport.c:1316,1
    - Dst: fprintf
      Src: /src/git/transport.c:1319,1
    - Dst: fprintf
      Src: /src/git/transport.c:1320,1
    - Dst: _
      Src: /src/git/transport.c:1320,1
    - Dst: string_list_clear
      Src: /src/git/transport.c:1326,1
    - Dst: die
      Src: /src/git/transport.c:1328,1
    - Dst: _
      Src: /src/git/transport.c:1328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - needs_pushing
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1329
    functionName: die_with_unpushed_submodules
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - die
    - fprintf
    - _
    linkageType: ''
    returnType: void
    signature: void die_with_unpushed_submodules(struct string_list *needs_pushing)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/transport.c:1360,1
    - Dst: strbuf_addf
      Src: /src/git/transport.c:1361,1
    - Dst: oid_to_hex
      Src: /src/git/transport.c:1362,1
    - Dst: oid_to_hex
      Src: /src/git/transport.c:1363,1
    - Dst: write_in_full
      Src: /src/git/transport.c:1365,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - hook_stdin_fd
    - UNUSED
    - pp_task_cb
    argTypes:
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1336
    functionDepth: 3
    functionLinenumber: 1336
    functionLinenumberEnd: 1370
    functionName: pre_push_hook_feed_stdin
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - oid_to_hex
    - strbuf_addf
    - write_in_full
    linkageType: ''
    returnType: int
    signature: int pre_push_hook_feed_stdin(int hook_stdin_fd, void *pp_cb UNUSED,
      void *pp_task_cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/transport.c:1375,1
    - Dst: strbuf_init
      Src: /src/git/transport.c:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - feed_pipe_ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1379
    functionName: pre_push_hook_data_alloc
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - strbuf_init
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void *pre_push_hook_data_alloc(void *feed_pipe_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/transport.c:1386,1
    - Dst: free
      Src: /src/git/transport.c:1387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1388
    functionName: pre_push_hook_data_free
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void pre_push_hook_data_free(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/transport.c:1396,1
    - Dst: strvec_push
      Src: /src/git/transport.c:1397,1
    - Dst: run_hooks_opt
      Src: /src/git/transport.c:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - transport
    - remote_refs
    argTypes:
    - struct transport*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1415
    functionName: run_pre_push_hook
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_hooks_opt
    linkageType: ''
    returnType: int
    signature: "int run_pre_push_hook(struct transport *transport,\n\t\t\t     struct
      ref *remote_refs)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: transport_color_config
      Src: /src/git/transport.c:1436,1
    - Dst: get_local_heads
      Src: /src/git/transport.c:1442,1
    - Dst: check_push_refs
      Src: /src/git/transport.c:1444,1
    - Dst: refspec_ref_prefixes
      Src: /src/git/transport.c:1447,1
    - Dst: trace2_region_enter
      Src: /src/git/transport.c:1449,1
    - Dst: struct transport*::vtable::get_refs_list
      Src: /src/git/transport.c:1450,1
    - Dst: trace2_region_leave
      Src: /src/git/transport.c:1452,1
    - Dst: transport_ls_refs_options_release
      Src: /src/git/transport.c:1454,1
    - Dst: match_push_refs
      Src: /src/git/transport.c:1465,1
    - Dst: is_empty_cas
      Src: /src/git/transport.c:1470,1
    - Dst: apply_push_cas
      Src: /src/git/transport.c:1471,1
    - Dst: set_ref_status_for_push
      Src: /src/git/transport.c:1474,1
    - Dst: run_pre_push_hook
      Src: /src/git/transport.c:1479,1
    - Dst: is_bare_repository
      Src: /src/git/transport.c:1484,1
    - Dst: trace2_region_enter
      Src: /src/git/transport.c:1488,1
    - Dst: is_null_oid
      Src: /src/git/transport.c:1490,1
    - Dst: oid_array_append
      Src: /src/git/transport.c:1491,1
    - Dst: push_unpushed_submodules
      Src: /src/git/transport.c:1494,1
    - Dst: oid_array_clear
      Src: /src/git/transport.c:1500,1
    - Dst: trace2_region_leave
      Src: /src/git/transport.c:1501,1
    - Dst: die
      Src: /src/git/transport.c:1502,1
    - Dst: _
      Src: /src/git/transport.c:1502,1
    - Dst: oid_array_clear
      Src: /src/git/transport.c:1504,1
    - Dst: trace2_region_leave
      Src: /src/git/transport.c:1505,1
    - Dst: is_bare_repository
      Src: /src/git/transport.c:1511,1
    - Dst: trace2_region_enter
      Src: /src/git/transport.c:1516,1
    - Dst: is_null_oid
      Src: /src/git/transport.c:1518,1
    - Dst: oid_array_append
      Src: /src/git/transport.c:1519,1
    - Dst: find_unpushed_submodules
      Src: /src/git/transport.c:1522,1
    - Dst: oid_array_clear
      Src: /src/git/transport.c:1526,1
    - Dst: trace2_region_leave
      Src: /src/git/transport.c:1527,1
    - Dst: die_with_unpushed_submodules
      Src: /src/git/transport.c:1528,1
    - Dst: string_list_clear
      Src: /src/git/transport.c:1530,1
    - Dst: oid_array_clear
      Src: /src/git/transport.c:1531,1
    - Dst: trace2_region_leave
      Src: /src/git/transport.c:1532,1
    - Dst: trace2_region_enter
      Src: /src/git/transport.c:1536,1
    - Dst: struct transport*::vtable::push_refs
      Src: /src/git/transport.c:1537,1
    - Dst: trace2_region_leave
      Src: /src/git/transport.c:1538,1
    - Dst: push_had_errors
      Src: /src/git/transport.c:1541,1
    - Dst: transport_print_push_status
      Src: /src/git/transport.c:1545,1
    - Dst: set_upstreams
      Src: /src/git/transport.c:1550,1
    - Dst: transport_update_tracking_ref
      Src: /src/git/transport.c:1556,1
    - Dst: puts
      Src: /src/git/transport.c:1560,1
    - Dst: transport_refs_pushed
      Src: /src/git/transport.c:1561,1
    - Dst: fprintf
      Src: /src/git/transport.c:1563,1
    - Dst: free_refs
      Src: /src/git/transport.c:1566,1
    - Dst: free_refs
      Src: /src/git/transport.c:1567,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 87
    argCount: 5
    argNames:
    - r
    - transport
    - rs
    - flags
    - reject_reasons
    argTypes:
    - struct repository*
    - struct transport*
    - struct refspec*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1417
    functionDepth: 9
    functionLinenumber: 1417
    functionLinenumberEnd: 1569
    functionName: transport_push
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - transport_color_config
    - apply_push_cas
    - trace2_region_enter
    - is_null_oid
    - push_had_errors
    - transport_print_push_status
    - set_ref_status_for_push
    - transport_refs_pushed
    - die
    - is_empty_cas
    - puts
    - oid_array_clear
    - struct transport*::vtable::get_refs_list
    - check_push_refs
    - transport_update_tracking_ref
    - get_local_heads
    - oid_array_append
    - string_list_clear
    - die_with_unpushed_submodules
    - set_upstreams
    - find_unpushed_submodules
    - refspec_ref_prefixes
    - _
    - is_bare_repository
    - push_unpushed_submodules
    - struct transport*::vtable::push_refs
    - trace2_region_leave
    - transport_ls_refs_options_release
    - free_refs
    - match_push_refs
    - run_pre_push_hook
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int transport_push(struct repository *r,\n\t\t   struct transport
      *transport,\n\t\t   struct refspec *rs, int flags,\n\t\t   unsigned int *reject_reasons)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct transport*::vtable::get_refs_list
      Src: /src/git/transport.c:1576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - transport
    - transport_options
    argTypes:
    - struct transport*
    - struct transport_ls_refs_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1582
    functionName: transport_get_remote_refs
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - struct transport*::vtable::get_refs_list
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *transport_get_remote_refs(struct transport *transport,\n\t\t\t\t\t
      \   struct transport_ls_refs_options *transport_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_clear
      Src: /src/git/transport.c:1586,1
    - Dst: free
      Src: /src/git/transport.c:1587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct transport_ls_refs_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1588
    functionName: transport_ls_refs_options_release
    functionSourceFile: /src/git/transport.c
    functionUses: 1
    functionsReached:
    - strvec_clear
    - free
    linkageType: ''
    returnType: void
    signature: void transport_ls_refs_options_release(struct transport_ls_refs_options
      *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/transport.c:1600,1
    - Dst: oideq
      Src: /src/git/transport.c:1601,1
    - Dst: ALLOC_GROW
      Src: /src/git/transport.c:1603,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/transport.c:1615,1
    - Dst: struct transport*::vtable::fetch_refs
      Src: /src/git/transport.c:1620,1
    - Dst: free
      Src: /src/git/transport.c:1622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - transport
    - refs
    argTypes:
    - struct transport*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1590
    functionDepth: 1
    functionLinenumber: 1590
    functionLinenumberEnd: 1624
    functionName: transport_fetch_refs
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - struct transport*::vtable::fetch_refs
    - ALLOC_ARRAY
    - is_null_oid
    - ALLOC_GROW
    - free
    - oideq
    linkageType: ''
    returnType: int
    signature: int transport_fetch_refs(struct transport *transport, struct ref *refs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/transport.c:1640,1
    - Dst: xstrdup
      Src: /src/git/transport.c:1644,1
    - Dst: error
      Src: /src/git/transport.c:1647,1
    - Dst: _
      Src: /src/git/transport.c:1647,1
    - Dst: struct transport_vtable*::get_bundle_uri
      Src: /src/git/transport.c:1649,1
    - Dst: error
      Src: /src/git/transport.c:1650,1
    - Dst: _
      Src: /src/git/transport.c:1650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1652
    functionName: transport_get_remote_bundle_uri
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - error
    - repo_config_get_bool
    - _
    - struct transport_vtable*::get_bundle_uri
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int transport_get_remote_bundle_uri(struct transport *transport)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/git/transport.c:1660,1
    - Dst: unlink_or_warn
      Src: /src/git/transport.c:1662,1
    - Dst: string_list_clear
      Src: /src/git/transport.c:1664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - transport
    - flags
    argTypes:
    - struct transport*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1665
    functionName: transport_unlock_pack
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - unlink_or_warn
    - unlink
    linkageType: ''
    returnType: void
    signature: void transport_unlock_pack(struct transport *transport, unsigned int
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct transport*::vtable::connect
      Src: /src/git/transport.c:1671,1
    - Dst: die
      Src: /src/git/transport.c:1673,1
    - Dst: _
      Src: /src/git/transport.c:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - transport
    - name
    - exec
    - fd
    argTypes:
    - struct transport*
    - char*
    - char*
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1674
    functionName: transport_connect
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - die
    - struct transport*::vtable::connect
    - _
    linkageType: ''
    returnType: int
    signature: "int transport_connect(struct transport *transport, const char *name,\n\t\t
      \     const char *exec, int fd[2])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct transport*::vtable::disconnect
      Src: /src/git/transport.c:1680,1
    - Dst: free_refs
      Src: /src/git/transport.c:1682,1
    - Dst: clear_bundle_list
      Src: /src/git/transport.c:1683,1
    - Dst: free
      Src: /src/git/transport.c:1684,1
    - Dst: free
      Src: /src/git/transport.c:1685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1676
    functionDepth: 1
    functionLinenumber: 1676
    functionLinenumberEnd: 1687
    functionName: transport_disconnect
    functionSourceFile: /src/git/transport.c
    functionUses: 0
    functionsReached:
    - struct transport*::vtable::disconnect
    - clear_bundle_list
    - free_refs
    - free
    linkageType: ''
    returnType: int
    signature: int transport_disconnect(struct transport *transport)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/transport.c:1698,1
    - Dst: url_is_local_not_ssh
      Src: /src/git/transport.c:1699,1
    - Dst: strlen
      Src: /src/git/transport.c:1702,1
    - Dst: strstr
      Src: /src/git/transport.c:1703,1
    - Dst: strchr
      Src: /src/git/transport.c:1705,1
    - Dst: isalnum
      Src: /src/git/transport.c:1717,1
    - Dst: strchr
      Src: /src/git/transport.c:1724,1
    - Dst: xstrfmt
      Src: /src/git/transport.c:1729,1
    - Dst: xstrdup
      Src: /src/git/transport.c:1732,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1733
    functionName: transport_anonymize_url
    functionSourceFile: /src/git/transport.c
    functionUses: 1
    functionsReached:
    - strstr
    - url_is_local_not_ssh
    - xstrfmt
    - strchr
    - strlen
    - isalnum
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *transport_anonymize_url(const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pragma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: PRAGMA
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRAGMA(pragma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - warning
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: DISABLE_WARNING
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISABLE_WARNING(warning)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: BUILD_ASSERT_OR_ZERO
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_ASSERT_OR_ZERO(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: BARF_UNLESS_AN_ARRAY
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BARF_UNLESS_AN_ARRAY(arr)
  - 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: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: BARF_UNLESS_COPYABLE
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BARF_UNLESS_COPYABLE(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: BARF_UNLESS_SIGNED
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BARF_UNLESS_SIGNED(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: BARF_UNLESS_UNSIGNED
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BARF_UNLESS_UNSIGNED(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: BARF_UNLESS_AN_ARRAY
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BARF_UNLESS_AN_ARRAY(arr)
  - 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: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: BARF_UNLESS_COPYABLE
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BARF_UNLESS_COPYABLE(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: BARF_UNLESS_SIGNED
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BARF_UNLESS_SIGNED(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: BARF_UNLESS_UNSIGNED
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BARF_UNLESS_UNSIGNED(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: ARRAY_SIZE
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: bitsizeof
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitsizeof(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: maximum_signed_value_of_type
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maximum_signed_value_of_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: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: maximum_unsigned_value_of_type
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maximum_unsigned_value_of_type(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: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: signed_add_overflows
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signed_add_overflows(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: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: unsigned_add_overflows
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unsigned_add_overflows(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: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: unsigned_mult_overflows
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unsigned_mult_overflows(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: unsigned_left_shift_overflows
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unsigned_left_shift_overflows(a, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: TYPEOF
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPEOF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: MSB
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSB(x, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: HAS_MULTI_BITS
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_MULTI_BITS(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: DIV_ROUND_UP
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIV_ROUND_UP(n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: decimal_length
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decimal_length(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: _have_unix_sockets
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _have_unix_sockets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: is_xplatform_dir_sep
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_xplatform_dir_sep(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - prefix
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: precompose_argv_prefix
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *precompose_argv_prefix(int argc UNUSED,\n\t\t\t\t\t\t const
      char **argv UNUSED,\n\t\t\t\t\t\t const char *prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: precompose_string_if_needed
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *precompose_string_if_needed(const char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: noop_core_config
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int noop_core_config(const char *var UNUSED,\n\t\t\t\t   const char
      *value UNUSED,\n\t\t\t\t   const struct config_context *ctx UNUSED,\n\t\t\t\t
      \  void *cb UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: git_has_dos_drive_prefix
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int git_has_dos_drive_prefix(const char *path UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: git_skip_dos_drive_prefix
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int git_skip_dos_drive_prefix(char **path UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: git_is_dir_sep
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int git_is_dir_sep(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/git-compat-util.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: git_offset_1st_component
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - is_dir_sep
    linkageType: ''
    returnType: int
    signature: int git_offset_1st_component(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: is_valid_path
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_valid_path(path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/git-compat-util.h:298,1
    - Dst: strtoul
      Src: /src/git/git-compat-util.h:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - env
    - id
    argTypes:
    - char*
    - uid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 311
    functionName: extract_id_from_env
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - getenv
    - strtoul
    linkageType: ''
    returnType: void
    signature: void extract_id_from_env(const char *env, uid_t *id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/git-compat-util.h:319,1
    - Dst: geteuid
      Src: /src/git/git-compat-util.h:322,1
    - Dst: extract_id_from_env
      Src: /src/git/git-compat-util.h:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - path
    - report
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 332
    functionName: is_path_owned_by_current_uid
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - extract_id_from_env
    - lstat
    - geteuid
    linkageType: ''
    returnType: int
    signature: "int is_path_owned_by_current_uid(const char *path,\n\t\t\t\t\t       struct
      strbuf *report UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: find_last_dir_sep
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_last_dir_sep(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/git-compat-util.h:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: git_has_dir_sep
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int git_has_dir_sep(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: has_dir_sep
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_dir_sep(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: query_user_email
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: query_user_email()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: const_error
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int const_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: error
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 169
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: error(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: error_errno
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: error_errno(...)
  - 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: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    functionName: CONST_OUTPARAM
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_OUTPARAM(in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - prefix
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 499
    functionName: skip_prefix
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: skip_prefix(str, prefix, out)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str
    - prefix
    - out
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 509
    functionName: skip_prefix_impl
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool skip_prefix_impl(const char *str, const char *prefix,\n\t\t\t\t
      \   const char **out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/git-compat-util.h:519,1
    - Dst: memcmp
      Src: /src/git/git-compat-util.h:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - buf
    - len
    - prefix
    - out
    - outlen
    argTypes:
    - char*
    - size_t
    - char*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 526
    functionName: skip_prefix_mem
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: bool
    signature: "bool skip_prefix_mem(const char *buf, size_t len,\n\t\t\t\t   const
      char *prefix,\n\t\t\t\t   const char **out, size_t *outlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/git-compat-util.h:535,1
    - Dst: memcmp
      Src: /src/git/git-compat-util.h:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - len
    - suffix
    argTypes:
    - char*
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: strip_suffix_mem
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 2
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: bool
    signature: "bool strip_suffix_mem(const char *buf, size_t *len,\n\t\t\t\t    const
      char *suffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/git-compat-util.h:552,1
    - Dst: strip_suffix_mem
      Src: /src/git/git-compat-util.h:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - str
    - suffix
    - len
    argTypes:
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: strip_suffix
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 4
    functionsReached:
    - strip_suffix_mem
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool strip_suffix(const char *str, const char *suffix,\n\t\t\t\tsize_t
      *len)"
  - 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: 565
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 565
    functionName: SWAP
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 583
    functionName: on_disk_bytes
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: on_disk_bytes(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 585
    functionName: on_disk_bytes
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: on_disk_bytes(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 616
    functionName: git_open
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: git_open(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_add_overflows
      Src: /src/git/git-compat-util.h:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - out
    argTypes:
    - size_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: st_add_overflow
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - unsigned_add_overflows
    linkageType: ''
    returnType: bool
    signature: bool st_add_overflow(size_t a, size_t b, size_t *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: st_add_overflow
      Src: /src/git/git-compat-util.h:637,1
    - Dst: die
      Src: /src/git/git-compat-util.h:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 641
    functionName: st_add
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 7
    functionsReached:
    - st_add_overflow
    - die
    linkageType: ''
    returnType: size_t
    signature: size_t st_add(size_t a, size_t 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: 643
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 643
    functionName: st_add3
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: st_add3(a,b,c)
  - 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: 644
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 644
    functionName: st_add4
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: st_add4(a,b,c,d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_mult_overflows
      Src: /src/git/git-compat-util.h:647,1
    - Dst: die
      Src: /src/git/git-compat-util.h:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 651
    functionName: st_mult
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 5
    functionsReached:
    - die
    - unsigned_mult_overflows
    linkageType: ''
    returnType: size_t
    signature: size_t st_mult(size_t a, size_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/git-compat-util.h:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 659
    functionName: st_sub
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached:
    - die
    linkageType: ''
    returnType: size_t
    signature: size_t st_sub(size_t a, size_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_left_shift_overflows
      Src: /src/git/git-compat-util.h:663,1
    - Dst: die
      Src: /src/git/git-compat-util.h:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - shift
    argTypes:
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 667
    functionName: st_left_shift
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - die
    - unsigned_left_shift_overflows
    linkageType: ''
    returnType: size_t
    signature: size_t st_left_shift(size_t a, unsigned shift)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/git-compat-util.h:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 676
    functionName: cast_size_t_to_ulong
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached:
    - die
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long cast_size_t_to_ulong(size_t a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/git-compat-util.h:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 685
    functionName: cast_size_t_to_uint32_t
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cast_size_t_to_uint32_t(size_t a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/git-compat-util.h:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: cast_size_t_to_int
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached:
    - die
    linkageType: ''
    returnType: int
    signature: int cast_size_t_to_int(size_t a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_mult_overflows
      Src: /src/git/git-compat-util.h:697,1
    - Dst: die
      Src: /src/git/git-compat-util.h:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 701
    functionName: u64_mult
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - die
    - unsigned_mult_overflows
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t u64_mult(uint64_t a, uint64_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_add_overflows
      Src: /src/git/git-compat-util.h:705,1
    - Dst: die
      Src: /src/git/git-compat-util.h:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 709
    functionName: u64_add
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - die
    - unsigned_add_overflows
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t u64_add(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 742
    functionName: xalloca
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xalloca(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 743
    functionName: xalloca_free
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xalloca_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 745
    functionName: xalloca
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xalloca(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 746
    functionName: xalloca_free
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xalloca_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 753
    functionName: FREE_AND_NULL
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_AND_NULL(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 755
    functionName: ALLOC_ARRAY
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_ARRAY(x, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 756
    functionName: CALLOC_ARRAY
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALLOC_ARRAY(x, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 757
    functionName: REALLOC_ARRAY
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REALLOC_ARRAY(x, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 758
    functionName: MEMZERO_ARRAY
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMZERO_ARRAY(x, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 761
    functionName: COPY_ARRAY
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ARRAY(dst, src, n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/git-compat-util.h:764,1
    - Dst: st_mult
      Src: /src/git/git-compat-util.h:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - dst
    - src
    - n
    - size
    argTypes:
    - void*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 765
    functionName: copy_array
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - st_mult
    - memcpy
    linkageType: ''
    returnType: void
    signature: void copy_array(void *dst, const void *src, size_t n, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 769
    functionName: MOVE_ARRAY
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOVE_ARRAY(dst, src, n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/git/git-compat-util.h:772,1
    - Dst: st_mult
      Src: /src/git/git-compat-util.h:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - dst
    - src
    - n
    - size
    argTypes:
    - void*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 773
    functionName: move_array
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - memmove
    - st_mult
    linkageType: ''
    returnType: void
    signature: void move_array(void *dst, const void *src, size_t n, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 779
    functionName: DUP_ARRAY
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUP_ARRAY(dst, src, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - flexname
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 826
    functionName: FLEX_ALLOC_MEM
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLEX_ALLOC_MEM(x, flexname, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - ptrname
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 832
    functionName: FLEXPTR_ALLOC_MEM
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLEXPTR_ALLOC_MEM(x, ptrname, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - flexname
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 834
    functionName: FLEX_ALLOC_STR
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLEX_ALLOC_STR(x, flexname, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - ptrname
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 836
    functionName: FLEXPTR_ALLOC_STR
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLEXPTR_ALLOC_STR(x, ptrname, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 838
    functionName: alloc_nr
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alloc_nr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - nr
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 892
    functionName: ALLOC_GROW
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_GROW(x, nr, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - nr
    - ','
    - increase
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 911
    functionName: ALLOC_GROW_BY
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_GROW_BY(x, nr, increase, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/git-compat-util.h:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: xstrdup_or_null
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 9
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *xstrdup_or_null(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/git-compat-util.h:920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - len
    argTypes:
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 922
    functionName: xsize_t
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 8
    functionsReached:
    - die
    linkageType: ''
    returnType: size_t
    signature: size_t xsize_t(off_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - prefix
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 931
    functionName: skip_iprefix
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: skip_iprefix(str, prefix, out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/git/git-compat-util.h:939,1
    - Dst: tolower
      Src: /src/git/git-compat-util.h:939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str
    - prefix
    - out
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 941
    functionName: skip_iprefix_impl
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: bool
    signature: "bool skip_iprefix_impl(const char *str, const char *prefix,\n\t\t\t\t
      \    const char **out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/git/git-compat-util.h:958,1
    - Dst: tolower
      Src: /src/git/git-compat-util.h:958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - buf
    - len
    - prefix
    - out
    - outlen
    argTypes:
    - char*
    - size_t
    - char*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 960
    functionName: skip_iprefix_mem
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached:
    - tolower
    linkageType: ''
    returnType: bool
    signature: "bool skip_iprefix_mem(const char *buf, size_t len,\n\t\t\t\t   const
      char *prefix,\n\t\t\t\t   const char **out, size_t *outlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/git-compat-util.h:969,1
    - Dst: strtoul
      Src: /src/git/git-compat-util.h:971,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - s
    - base
    - result
    argTypes:
    - char*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 976
    functionName: strtoul_ui
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - strchr
    - strtoul
    linkageType: ''
    returnType: int
    signature: int strtoul_ui(char const *s, int base, unsigned int *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/git/git-compat-util.h:984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - s
    - base
    - result
    argTypes:
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 989
    functionName: strtol_i
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 4
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int strtol_i(char const *s, int base, int *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/git-compat-util.h:998,1
    - Dst: regexec
      Src: /src/git/git-compat-util.h:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - preg
    - buf
    - size
    - nmatch
    - pmatch
    - eflags
    argTypes:
    - regex_t*
    - char*
    - size_t
    - size_t
    - regmatch_t[]
    - int
    assertStmts:
    - condition: (nmatch > 0 && pmatch)
      pos:
        line_end: 997
        line_start: 997
        source_file: /src/git/git-compat-util.h
    constantsTouched: []
    func_position:
      end: 1002
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1002
    functionName: regexec_buf
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached:
    - assert
    - regexec
    linkageType: ''
    returnType: int
    signature: "int regexec_buf(const regex_t *preg, const char *buf, size_t size,\n\t\t\t
      \     size_t nmatch, regmatch_t pmatch[], int eflags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1017
    functionName: fstat_is_reliable
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fstat_is_reliable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1019
    functionName: fstat_is_reliable
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fstat_is_reliable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1030
    functionName: BUG
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 91
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1032
    functionName: ASSERT
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1035
    functionName: bug
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bug(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1039
    functionName: BUG_if_bug
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_if_bug(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - errno_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1065
    functionName: is_missing_file_error
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_missing_file_error(int errno_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1075
    functionName: exit
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exit(code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1091
    functionName: container_of
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - offset
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1099
    functionName: container_of_or_null_offset
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *container_of_or_null_offset(void *ptr, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1106
    functionName: container_of_or_null
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of_or_null(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1115
    functionName: OFFSETOF_VAR
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSETOF_VAR(ptr, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1118
    functionName: OFFSETOF_VAR
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSETOF_VAR(ptr, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1128
    functionName: NOT_CONSTANT
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_CONSTANT(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1134
    functionName: assert
    functionSourceFile: /src/git/git-compat-util.h
    functionUses: 84
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert(expr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/git/ws.c:43,1
    - Dst: strchrnul
      Src: /src/git/ws.c:44,1
    - Dst: ARRAY_SIZE
      Src: /src/git/ws.c:54,1
    - Dst: strncmp
      Src: /src/git/ws.c:55,1
    - Dst: skip_prefix
      Src: /src/git/ws.c:64,1
    - Dst: atoi
      Src: /src/git/ws.c:65,1
    - Dst: warning
      Src: /src/git/ws.c:71,1
    - Dst: die
      Src: /src/git/ws.c:78,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 80
    functionName: parse_whitespace_rule
    functionSourceFile: /src/git/ws.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - atoi
    - die
    - skip_prefix
    - strspn
    - warning
    - strncmp
    - strchrnul
    linkageType: ''
    returnType: unsigned
    signature: unsigned parse_whitespace_rule(const char *string)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: attr_check_initl
      Src: /src/git/ws.c:88,1
    - Dst: git_check_attr
      Src: /src/git/ws.c:90,1
    - Dst: ATTR_TRUE
      Src: /src/git/ws.c:92,1
    - Dst: ws_tab_width
      Src: /src/git/ws.c:94,1
    - Dst: ARRAY_SIZE
      Src: /src/git/ws.c:96,1
    - Dst: ATTR_FALSE
      Src: /src/git/ws.c:101,1
    - Dst: ws_tab_width
      Src: /src/git/ws.c:103,1
    - Dst: ATTR_UNSET
      Src: /src/git/ws.c:104,1
    - Dst: parse_whitespace_rule
      Src: /src/git/ws.c:109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - istate
    - pathname
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 111
    functionName: whitespace_rule
    functionSourceFile: /src/git/ws.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - ws_tab_width
    - ATTR_FALSE
    - parse_whitespace_rule
    - ATTR_UNSET
    - attr_check_initl
    - git_check_attr
    - ATTR_TRUE
    linkageType: ''
    returnType: unsigned
    signature: unsigned whitespace_rule(struct index_state *istate, const char *pathname)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:118,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:121,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:124,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:125,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:130,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:131,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:135,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:136,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:140,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:141,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:145,1
    - Dst: strbuf_addstr
      Src: /src/git/ws.c:146,1
    - Dst: strbuf_detach
      Src: /src/git/ws.c:148,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - ws
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 149
    functionName: whitespace_error_string
    functionSourceFile: /src/git/ws.c
    functionUses: 1
    functionsReached:
    - strbuf_detach
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *whitespace_error_string(unsigned ws)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/ws.c:177,1
    - Dst: fputs
      Src: /src/git/ws.c:201,1
    - Dst: fwrite
      Src: /src/git/ws.c:202,1
    - Dst: fputs
      Src: /src/git/ws.c:203,1
    - Dst: fwrite
      Src: /src/git/ws.c:204,1
    - Dst: fwrite
      Src: /src/git/ws.c:209,1
    - Dst: fputs
      Src: /src/git/ws.c:210,1
    - Dst: fwrite
      Src: /src/git/ws.c:211,1
    - Dst: fputs
      Src: /src/git/ws.c:212,1
    - Dst: fwrite
      Src: /src/git/ws.c:215,1
    - Dst: ws_tab_width
      Src: /src/git/ws.c:221,1
    - Dst: fputs
      Src: /src/git/ws.c:224,1
    - Dst: fwrite
      Src: /src/git/ws.c:225,1
    - Dst: fputs
      Src: /src/git/ws.c:226,1
    - Dst: fputs
      Src: /src/git/ws.c:239,1
    - Dst: fwrite
      Src: /src/git/ws.c:240,1
    - Dst: fputs
      Src: /src/git/ws.c:242,1
    - Dst: fputs
      Src: /src/git/ws.c:247,1
    - Dst: fwrite
      Src: /src/git/ws.c:248,1
    - Dst: fputs
      Src: /src/git/ws.c:250,1
    - Dst: fputc
      Src: /src/git/ws.c:253,1
    - Dst: fputc
      Src: /src/git/ws.c:255,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 76
    argCount: 7
    argNames:
    - line
    - len
    - ws_rule
    - stream
    - set
    - reset
    - ws
    argTypes:
    - char*
    - int
    - unsigned
    - FILE*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 258
    functionName: ws_check_emit_1
    functionSourceFile: /src/git/ws.c
    functionUses: 0
    functionsReached:
    - isspace
    - fputs
    - ws_tab_width
    - fwrite
    - fputc
    linkageType: ''
    returnType: unsigned
    signature: "unsigned ws_check_emit_1(const char *line, int len, unsigned ws_rule,\n\t\t\t\tFILE
      *stream, const char *set,\n\t\t\t\tconst char *reset, const char *ws)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ws_check_emit_1
      Src: /src/git/ws.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - line
    - len
    - ws_rule
    - stream
    - set
    - reset
    - ws
    argTypes:
    - char*
    - int
    - unsigned
    - FILE*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: ws_check_emit
    functionSourceFile: /src/git/ws.c
    functionUses: 0
    functionsReached:
    - ws_check_emit_1
    linkageType: ''
    returnType: void
    signature: "void ws_check_emit(const char *line, int len, unsigned ws_rule,\n\t\t
      \  FILE *stream, const char *set,\n\t\t   const char *reset, const char *ws)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ws_check_emit_1
      Src: /src/git/ws.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - line
    - len
    - ws_rule
    argTypes:
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: ws_check
    functionSourceFile: /src/git/ws.c
    functionUses: 1
    functionsReached:
    - ws_check_emit_1
    linkageType: ''
    returnType: unsigned
    signature: unsigned ws_check(const char *line, int len, unsigned ws_rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/ws.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 285
    functionName: ws_blank_line
    functionSourceFile: /src/git/ws.c
    functionUses: 1
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int ws_blank_line(const char *line, int len)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/ws.c:326,1
    - Dst: isspace
      Src: /src/git/ws.c:327,1
    - Dst: ws_tab_width
      Src: /src/git/ws.c:346,1
    - Dst: strbuf_addch
      Src: /src/git/ws.c:373,1
    - Dst: ws_tab_width
      Src: /src/git/ws.c:376,1
    - Dst: strbuf_addch
      Src: /src/git/ws.c:377,1
    - Dst: strbuf_addch
      Src: /src/git/ws.c:383,1
    - Dst: strbuf_addch
      Src: /src/git/ws.c:394,1
    - Dst: ws_tab_width
      Src: /src/git/ws.c:395,1
    - Dst: strbuf_addch
      Src: /src/git/ws.c:397,1
    - Dst: strbuf_add
      Src: /src/git/ws.c:404,1
    - Dst: strbuf_addch
      Src: /src/git/ws.c:406,1
    - Dst: strbuf_addch
      Src: /src/git/ws.c:408,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 78
    argCount: 5
    argNames:
    - dst
    - src
    - len
    - ws_rule
    - error_count
    argTypes:
    - struct strbuf*
    - char*
    - int
    - unsigned
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 411
    functionName: ws_fix_copy
    functionSourceFile: /src/git/ws.c
    functionUses: 2
    functionsReached:
    - isspace
    - ws_tab_width
    - strbuf_add
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void ws_fix_copy(struct strbuf *dst, const char *src, int len, unsigned
      ws_rule, int *error_count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/sideband.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - value
    - prefix
    - out
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: skip_prefix_in_csv
    functionSourceFile: /src/git/sideband.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int skip_prefix_in_csv(const char *value, const char *prefix,\n\t\t\t\t
      \    const char **out)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/sideband.c:52,1
    - Dst: skip_prefix_in_csv
      Src: /src/git/sideband.c:65,1
    - Dst: skip_prefix_in_csv
      Src: /src/git/sideband.c:67,1
    - Dst: skip_prefix_in_csv
      Src: /src/git/sideband.c:69,1
    - Dst: skip_prefix_in_csv
      Src: /src/git/sideband.c:71,1
    - Dst: skip_prefix_in_csv
      Src: /src/git/sideband.c:73,1
    - Dst: warning
      Src: /src/git/sideband.c:76,1
    - Dst: _
      Src: /src/git/sideband.c:76,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 79
    functionName: sideband_allow_control_characters_config
    functionSourceFile: /src/git/sideband.c
    functionUses: 0
    functionsReached:
    - git_parse_maybe_bool
    - _
    - warning
    - skip_prefix_in_csv
    linkageType: ''
    returnType: int
    signature: int sideband_allow_control_characters_config(const char *var, const
      char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/sideband.c:85,1
    - Dst: sideband_allow_control_characters_config
      Src: /src/git/sideband.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: sideband_config_callback
    functionSourceFile: /src/git/sideband.c
    functionUses: 0
    functionsReached:
    - sideband_allow_control_characters_config
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sideband_config_callback(const char *var, const char *value,\n\t\t\t\t
      \   const struct config_context *ctx UNUSED,\n\t\t\t\t    void *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/sideband.c:97,1
    - Dst: url_normalize
      Src: /src/git/sideband.c:102,1
    - Dst: repo_config
      Src: /src/git/sideband.c:103,1
    - Dst: free
      Src: /src/git/sideband.c:104,1
    - Dst: string_list_clear
      Src: /src/git/sideband.c:105,1
    - Dst: urlmatch_config_release
      Src: /src/git/sideband.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 107
    functionName: sideband_apply_url_config
    functionSourceFile: /src/git/sideband.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    - urlmatch_config_release
    - BUG
    - url_normalize
    - free
    - repo_config
    linkageType: ''
    returnType: void
    signature: void sideband_apply_url_config(const char *url)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_value
      Src: /src/git/sideband.c:123,1
    - Dst: sideband_allow_control_characters_config
      Src: /src/git/sideband.c:124,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/sideband.c:130,1
    - Dst: git_config_colorbool
      Src: /src/git/sideband.c:131,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/sideband.c:132,1
    - Dst: git_config_colorbool
      Src: /src/git/sideband.c:133,1
    - Dst: ARRAY_SIZE
      Src: /src/git/sideband.c:137,1
    - Dst: strbuf_reset
      Src: /src/git/sideband.c:138,1
    - Dst: strbuf_addf
      Src: /src/git/sideband.c:139,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/sideband.c:140,1
    - Dst: color_parse
      Src: /src/git/sideband.c:142,1
    - Dst: strbuf_release
      Src: /src/git/sideband.c:145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 147
    functionName: use_sideband_colors
    functionSourceFile: /src/git/sideband.c
    functionUses: 0
    functionsReached:
    - git_config_colorbool
    - ARRAY_SIZE
    - strbuf_release
    - repo_config_get_string_tmp
    - repo_config_get_value
    - strbuf_reset
    - sideband_allow_control_characters_config
    - strbuf_addf
    - color_parse
    linkageType: ''
    returnType: enum git_colorbool
    signature: enum git_colorbool use_sideband_colors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/sideband.c:153,1
    - Dst: list_config_item
      Src: /src/git/sideband.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - list
    - prefix
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: list_config_color_sideband_slots
    functionSourceFile: /src/git/sideband.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - list_config_item
    linkageType: ''
    returnType: void
    signature: void list_config_color_sideband_slots(struct string_list *list, const
      char *prefix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/sideband.c:207,1
    - Dst: strchr
      Src: /src/git/sideband.c:209,1
    - Dst: strbuf_add
      Src: /src/git/sideband.c:210,1
    - Dst: isdigit
      Src: /src/git/sideband.c:213,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 12
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 218
    functionName: handle_ansi_sequence
    functionSourceFile: /src/git/sideband.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strbuf_add
    - strchr
    linkageType: ''
    returnType: int
    signature: int handle_ansi_sequence(struct strbuf *dest, const char *src, int
      n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/sideband.c:225,1
    - Dst: strbuf_grow
      Src: /src/git/sideband.c:229,1
    - Dst: iscntrl
      Src: /src/git/sideband.c:231,1
    - Dst: strbuf_addch
      Src: /src/git/sideband.c:232,1
    - Dst: handle_ansi_sequence
      Src: /src/git/sideband.c:234,1
    - Dst: strbuf_addch
      Src: /src/git/sideband.c:238,1
    - Dst: strbuf_addch
      Src: /src/git/sideband.c:239,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 242
    functionName: strbuf_add_sanitized
    functionSourceFile: /src/git/sideband.c
    functionUses: 0
    functionsReached:
    - iscntrl
    - strbuf_addch
    - handle_ansi_sequence
    - strbuf_grow
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void strbuf_add_sanitized(struct strbuf *dest, const char *src, int
      n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: want_color_stderr
      Src: /src/git/sideband.c:258,1
    - Dst: use_sideband_colors
      Src: /src/git/sideband.c:258,1
    - Dst: strbuf_add_sanitized
      Src: /src/git/sideband.c:259,1
    - Dst: isspace
      Src: /src/git/sideband.c:263,1
    - Dst: strbuf_addch
      Src: /src/git/sideband.c:264,1
    - Dst: ARRAY_SIZE
      Src: /src/git/sideband.c:269,1
    - Dst: strlen
      Src: /src/git/sideband.c:271,1
    - Dst: strncasecmp
      Src: /src/git/sideband.c:281,1
    - Dst: isalnum
      Src: /src/git/sideband.c:282,1
    - Dst: strbuf_addstr
      Src: /src/git/sideband.c:283,1
    - Dst: strbuf_add
      Src: /src/git/sideband.c:284,1
    - Dst: strbuf_addstr
      Src: /src/git/sideband.c:285,1
    - Dst: strbuf_add_sanitized
      Src: /src/git/sideband.c:292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 293
    functionName: maybe_colorize_sideband
    functionSourceFile: /src/git/sideband.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_add_sanitized
    - ARRAY_SIZE
    - isalnum
    - strncasecmp
    - want_color_stderr
    - strbuf_addch
    - strlen
    - strbuf_addstr
    - use_sideband_colors
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void maybe_colorize_sideband(struct strbuf *dest, const char *src,
      int n)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/sideband.c:312,1
    - Dst: is_terminal_dumb
      Src: /src/git/sideband.c:312,1
    - Dst: strbuf_addf
      Src: /src/git/sideband.c:322,1
    - Dst: BUG
      Src: /src/git/sideband.c:330,1
    - Dst: strbuf_addf
      Src: /src/git/sideband.c:334,1
    - Dst: die
      Src: /src/git/sideband.c:351,1
    - Dst: _
      Src: /src/git/sideband.c:351,1
    - Dst: strbuf_addf
      Src: /src/git/sideband.c:352,1
    - Dst: maybe_colorize_sideband
      Src: /src/git/sideband.c:353,1
    - Dst: strpbrk
      Src: /src/git/sideband.c:368,1
    - Dst: strbuf_addstr
      Src: /src/git/sideband.c:380,1
    - Dst: strbuf_addstr
      Src: /src/git/sideband.c:383,1
    - Dst: maybe_colorize_sideband
      Src: /src/git/sideband.c:397,1
    - Dst: strbuf_addstr
      Src: /src/git/sideband.c:398,1
    - Dst: strbuf_addch
      Src: /src/git/sideband.c:401,1
    - Dst: write_in_full
      Src: /src/git/sideband.c:402,1
    - Dst: strbuf_reset
      Src: /src/git/sideband.c:403,1
    - Dst: strbuf_addstr
      Src: /src/git/sideband.c:410,1
    - Dst: maybe_colorize_sideband
      Src: /src/git/sideband.c:411,1
    - Dst: strlen
      Src: /src/git/sideband.c:411,1
    - Dst: strbuf_addf
      Src: /src/git/sideband.c:418,1
    - Dst: die
      Src: /src/git/sideband.c:426,1
    - Dst: strbuf_addch
      Src: /src/git/sideband.c:428,1
    - Dst: write_in_full
      Src: /src/git/sideband.c:429,1
    - Dst: strbuf_release
      Src: /src/git/sideband.c:431,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 7
    argNames:
    - me
    - status
    - buf
    - len
    - die_on_error
    - scratch
    - sideband_type
    argTypes:
    - char*
    - int
    - char*
    - int
    - int
    - struct strbuf*
    - enum sideband_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 301
    functionDepth: 5
    functionLinenumber: 301
    functionLinenumberEnd: 433
    functionName: demultiplex_sideband
    functionSourceFile: /src/git/sideband.c
    functionUses: 0
    functionsReached:
    - maybe_colorize_sideband
    - strbuf_release
    - die
    - is_terminal_dumb
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - strlen
    - strbuf_addstr
    - _
    - strpbrk
    - isatty
    - BUG
    - write_in_full
    linkageType: ''
    returnType: int
    signature: "int demultiplex_sideband(const char *me, int status,\n\t\t\t char
      *buf, int len,\n\t\t\t int die_on_error,\n\t\t\t struct strbuf *scratch,\n\t\t\t
      enum sideband_type *sideband_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/sideband.c:451,1
    - Dst: write_or_die
      Src: /src/git/sideband.c:453,1
    - Dst: xsnprintf
      Src: /src/git/sideband.c:455,1
    - Dst: write_or_die
      Src: /src/git/sideband.c:456,1
    - Dst: write_or_die
      Src: /src/git/sideband.c:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - fd
    - band
    - data
    - sz
    - packet_max
    argTypes:
    - int
    - int
    - char*
    - ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 462
    functionName: send_sideband
    functionSourceFile: /src/git/sideband.c
    functionUses: 1
    functionsReached:
    - write_or_die
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void send_sideband(int fd, int band, const char *data, ssize_t sz,
      int packet_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: trace2_initialize
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_initialize()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - argv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: trace2_cmd_start
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_start(argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: trace2_cmd_exit
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_exit(code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: trace2_cmd_error_va
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_error_va(fmt, ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: trace2_cmd_path
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_path(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: trace2_cmd_ancestry
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_ancestry(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: trace2_cmd_name
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_name(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: trace2_cmd_mode
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_mode(sv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - alias
    - ','
    - argv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: trace2_cmd_alias
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_alias(alias, argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: trace2_cmd_list_config
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_list_config()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: trace2_cmd_list_env_vars
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_list_env_vars()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - k
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: trace2_cmd_set_config
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_cmd_set_config(k, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: trace2_child_start
    functionSourceFile: /src/git/trace2.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_child_start(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cmd
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: trace2_child_exit
    functionSourceFile: /src/git/trace2.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_child_exit(cmd, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cmd
    - ','
    - ready
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: trace2_child_ready
    functionSourceFile: /src/git/trace2.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_child_ready(cmd, ready)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - exe
    - ','
    - argv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: trace2_exec
    functionSourceFile: /src/git/trace2.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_exec(exe, argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: trace2_exec_result
    functionSourceFile: /src/git/trace2.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_exec_result(id, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - thread_base_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: trace2_thread_start
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_thread_start(thread_base_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: trace2_thread_exit
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_thread_exit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - param
    - ','
    - value
    - ','
    - kvi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: trace2_def_param
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_def_param(param, value, kvi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - repo
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: trace2_def_repo
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_def_repo(repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - label
    - ','
    - repo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: trace2_region_enter
    functionSourceFile: /src/git/trace2.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_region_enter(category, label, repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - category
    - ','
    - label
    - ','
    - repo
    - ','
    - fmt
    - ','
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: trace2_region_enter_printf_va
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_region_enter_printf_va(category, label, repo, fmt, ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - category
    - ','
    - label
    - ','
    - repo
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: trace2_region_enter_printf
    functionSourceFile: /src/git/trace2.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_region_enter_printf(category, label, repo, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - category
    - ','
    - label
    - ','
    - repo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: trace2_region_leave
    functionSourceFile: /src/git/trace2.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_region_leave(category, label, repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - category
    - ','
    - label
    - ','
    - repo
    - ','
    - fmt
    - ','
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: trace2_region_leave_printf_va
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_region_leave_printf_va(category, label, repo, fmt, ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - category
    - ','
    - label
    - ','
    - repo
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: trace2_region_leave_printf
    functionSourceFile: /src/git/trace2.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_region_leave_printf(category, label, repo, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - category
    - ','
    - repo
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: trace2_data_string
    functionSourceFile: /src/git/trace2.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_data_string(category, repo, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - category
    - ','
    - repo
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: trace2_data_intmax
    functionSourceFile: /src/git/trace2.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_data_intmax(category, repo, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - category
    - ','
    - repo
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 473
    functionName: trace2_data_json
    functionSourceFile: /src/git/trace2.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_data_json(category, repo, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: trace2_printf_va
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_printf_va(fmt, ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    functionName: trace2_printf
    functionSourceFile: /src/git/trace2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace2_printf(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/git/url.c:8,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 10
    functionName: is_rfc3986_unreserved
    functionSourceFile: /src/git/url.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: int
    signature: int is_rfc3986_unreserved(char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: is_casefolding_rfc3986_unreserved
    functionSourceFile: /src/git/url.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_casefolding_rfc3986_unreserved(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/git/url.c:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - first_flag
    - ch
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: is_urlschemechar
    functionSourceFile: /src/git/url.c
    functionUses: 1
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: int
    signature: int is_urlschemechar(int first_flag, int ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_urlschemechar
      Src: /src/git/url.c:37,1
    - Dst: is_urlschemechar
      Src: /src/git/url.c:40,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: is_url
    functionSourceFile: /src/git/url.c
    functionUses: 1
    functionsReached:
    - is_urlschemechar
    linkageType: ''
    returnType: int
    signature: int is_url(const char *url)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/url.c:58,1
    - Dst: hex2chr
      Src: /src/git/url.c:65,1
    - Dst: strbuf_addch
      Src: /src/git/url.c:67,1
    - Dst: strbuf_addch
      Src: /src/git/url.c:75,1
    - Dst: strbuf_addch
      Src: /src/git/url.c:77,1
    - Dst: strbuf_detach
      Src: /src/git/url.c:82,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 5
    argNames:
    - query
    - len
    - stop_at
    - out
    - decode_plus
    argTypes:
    - char**
    - int
    - char*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 83
    functionName: url_decode_internal
    functionSourceFile: /src/git/url.c
    functionUses: 0
    functionsReached:
    - hex2chr
    - strbuf_detach
    - strchr
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: "char *url_decode_internal(const char **query, int len,\n\t\t\t\t const
      char *stop_at, struct strbuf *out,\n\t\t\t\t int decode_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_decode_mem
      Src: /src/git/url.c:87,1
    - Dst: strlen
      Src: /src/git/url.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: url_decode
    functionSourceFile: /src/git/url.c
    functionUses: 0
    functionsReached:
    - url_decode_mem
    - strlen
    linkageType: ''
    returnType: char
    signature: char *url_decode(const char *url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/url.c:93,1
    - Dst: strbuf_add
      Src: /src/git/url.c:97,1
    - Dst: url_decode_internal
      Src: /src/git/url.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - url
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: url_decode_mem
    functionSourceFile: /src/git/url.c
    functionUses: 1
    functionsReached:
    - memchr
    - strbuf_add
    - url_decode_internal
    linkageType: ''
    returnType: char
    signature: char *url_decode_mem(const char *url, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_decode_internal
      Src: /src/git/url.c:107,1
    - Dst: strlen
      Src: /src/git/url.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoded
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: url_percent_decode
    functionSourceFile: /src/git/url.c
    functionUses: 0
    functionsReached:
    - url_decode_internal
    - strlen
    linkageType: ''
    returnType: char
    signature: char *url_percent_decode(const char *encoded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_decode_internal
      Src: /src/git/url.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - query
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: url_decode_parameter_name
    functionSourceFile: /src/git/url.c
    functionUses: 0
    functionsReached:
    - url_decode_internal
    linkageType: ''
    returnType: char
    signature: char *url_decode_parameter_name(const char **query)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_decode_internal
      Src: /src/git/url.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - query
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: url_decode_parameter_value
    functionSourceFile: /src/git/url.c
    functionUses: 0
    functionsReached:
    - url_decode_internal
    linkageType: ''
    returnType: char
    signature: char *url_decode_parameter_value(const char **query)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/url.c:124,1
    - Dst: strbuf_complete
      Src: /src/git/url.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - url
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: end_url_with_slash
    functionSourceFile: /src/git/url.c
    functionUses: 5
    functionsReached:
    - strbuf_addstr
    - strbuf_complete
    linkageType: ''
    returnType: void
    signature: void end_url_with_slash(struct strbuf *buf, const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_url_with_slash
      Src: /src/git/url.c:131,1
    - Dst: free
      Src: /src/git/url.c:132,1
    - Dst: strbuf_detach
      Src: /src/git/url.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - url
    - dest
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: str_end_url_with_slash
    functionSourceFile: /src/git/url.c
    functionUses: 0
    functionsReached:
    - end_url_with_slash
    - strbuf_detach
    - free
    linkageType: ''
    returnType: void
    signature: void str_end_url_with_slash(const char *url, char **dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/url.c:138,1
    - Dst: strchr
      Src: /src/git/url.c:139,1
    - Dst: has_dos_drive_prefix
      Src: /src/git/url.c:141,1
    - Dst: is_valid_path
      Src: /src/git/url.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: url_is_local_not_ssh
    functionSourceFile: /src/git/url.c
    functionUses: 2
    functionsReached:
    - is_valid_path
    - strchr
    - has_dos_drive_prefix
    linkageType: ''
    returnType: int
    signature: int url_is_local_not_ssh(const char *url)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/url.c:146,1
    - Dst: strcmp
      Src: /src/git/url.c:148,1
    - Dst: strcmp
      Src: /src/git/url.c:150,1
    - Dst: strcmp
      Src: /src/git/url.c:152,1
    - Dst: strcmp
      Src: /src/git/url.c:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: url_get_scheme
    functionSourceFile: /src/git/url.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum url_scheme
    signature: enum url_scheme url_get_scheme(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/repack-geometry.c:12,1
    - Dst: die
      Src: /src/git/repack-geometry.c:13,1
    - Dst: _
      Src: /src/git/repack-geometry.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: pack_geometry_weight
    functionSourceFile: /src/git/repack-geometry.c
    functionUses: 0
    functionsReached:
    - die
    - open_pack_index
    - _
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pack_geometry_weight(struct packed_git *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pack_geometry_weight
      Src: /src/git/repack-geometry.c:19,1
    - Dst: pack_geometry_weight
      Src: /src/git/repack-geometry.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: pack_geometry_cmp
    functionSourceFile: /src/git/repack-geometry.c
    functionUses: 0
    functionsReached:
    - pack_geometry_weight
    linkageType: ''
    returnType: int
    signature: int pack_geometry_cmp(const void *va, const void *vb)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_multi_pack_index
      Src: /src/git/repack-geometry.c:35,1
    - Dst: repo_for_each_pack
      Src: /src/git/repack-geometry.c:37,1
    - Dst: midx_layer_contains_pack
      Src: /src/git/repack-geometry.c:53,1
    - Dst: pack_basename
      Src: /src/git/repack-geometry.c:53,1
    - Dst: strbuf_reset
      Src: /src/git/repack-geometry.c:80,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-geometry.c:81,1
    - Dst: pack_basename
      Src: /src/git/repack-geometry.c:81,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack-geometry.c:82,1
    - Dst: string_list_has_string
      Src: /src/git/repack-geometry.c:84,1
    - Dst: ALLOC_GROW
      Src: /src/git/repack-geometry.c:91,1
    - Dst: ALLOC_GROW
      Src: /src/git/repack-geometry.c:98,1
    - Dst: QSORT
      Src: /src/git/repack-geometry.c:107,1
    - Dst: QSORT
      Src: /src/git/repack-geometry.c:108,1
    - Dst: strbuf_release
      Src: /src/git/repack-geometry.c:109,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 3
    argNames:
    - geometry
    - existing
    - args
    argTypes:
    - struct pack_geometry*
    - struct existing_packs*
    - struct pack_objects_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 110
    functionName: pack_geometry_init
    functionSourceFile: /src/git/repack-geometry.c
    functionUses: 0
    functionsReached:
    - midx_layer_contains_pack
    - strbuf_release
    - pack_basename
    - strbuf_reset
    - strbuf_strip_suffix
    - get_multi_pack_index
    - QSORT
    - string_list_has_string
    - repo_for_each_pack
    - strbuf_addstr
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: "void pack_geometry_init(struct pack_geometry *geometry,\n\t\t\tstruct
      existing_packs *existing,\n\t\t\tconst struct pack_objects_args *args)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_mult_overflows
      Src: /src/git/repack-geometry.c:130,1
    - Dst: pack_geometry_weight
      Src: /src/git/repack-geometry.c:131,1
    - Dst: die
      Src: /src/git/repack-geometry.c:132,1
    - Dst: _
      Src: /src/git/repack-geometry.c:132,1
    - Dst: pack_geometry_weight
      Src: /src/git/repack-geometry.c:136,1
    - Dst: pack_geometry_weight
      Src: /src/git/repack-geometry.c:137,1
    - Dst: unsigned_add_overflows
      Src: /src/git/repack-geometry.c:165,1
    - Dst: pack_geometry_weight
      Src: /src/git/repack-geometry.c:165,1
    - Dst: die
      Src: /src/git/repack-geometry.c:166,1
    - Dst: _
      Src: /src/git/repack-geometry.c:166,1
    - Dst: pack_geometry_weight
      Src: /src/git/repack-geometry.c:167,1
    - Dst: unsigned_mult_overflows
      Src: /src/git/repack-geometry.c:172,1
    - Dst: die
      Src: /src/git/repack-geometry.c:173,1
    - Dst: _
      Src: /src/git/repack-geometry.c:173,1
    - Dst: pack_geometry_weight
      Src: /src/git/repack-geometry.c:175,1
    - Dst: unsigned_add_overflows
      Src: /src/git/repack-geometry.c:176,1
    - Dst: pack_geometry_weight
      Src: /src/git/repack-geometry.c:177,1
    - Dst: die
      Src: /src/git/repack-geometry.c:178,1
    - Dst: _
      Src: /src/git/repack-geometry.c:178,1
    - Dst: pack_geometry_weight
      Src: /src/git/repack-geometry.c:182,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - pack
    - pack_nr
    - split_factor
    argTypes:
    - struct packed_git**
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 188
    functionName: compute_pack_geometry_split
    functionSourceFile: /src/git/repack-geometry.c
    functionUses: 0
    functionsReached:
    - die
    - unsigned_mult_overflows
    - pack_geometry_weight
    - unsigned_add_overflows
    - _
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t compute_pack_geometry_split(struct packed_git **pack, size_t
      pack_nr,\n\t\t\t\t\t    int split_factor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compute_pack_geometry_split
      Src: /src/git/repack-geometry.c:192,1
    - Dst: compute_pack_geometry_split
      Src: /src/git/repack-geometry.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - geometry
    argTypes:
    - struct pack_geometry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 211
    functionName: pack_geometry_split
    functionSourceFile: /src/git/repack-geometry.c
    functionUses: 1
    functionsReached:
    - compute_pack_geometry_split
    linkageType: ''
    returnType: void
    signature: void pack_geometry_split(struct pack_geometry *geometry)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - geometry
    argTypes:
    - struct pack_geometry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 246
    functionName: pack_geometry_preferred_pack
    functionSourceFile: /src/git/repack-geometry.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct packed_git
    signature: struct packed_git *pack_geometry_preferred_pack(struct pack_geometry
      *geometry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_has_string
      Src: /src/git/repack-geometry.c:261,1
    - Dst: hash_to_hex_algop
      Src: /src/git/repack-geometry.c:261,1
    - Dst: strbuf_reset
      Src: /src/git/repack-geometry.c:265,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-geometry.c:266,1
    - Dst: pack_basename
      Src: /src/git/repack-geometry.c:266,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack-geometry.c:267,1
    - Dst: string_list_has_string
      Src: /src/git/repack-geometry.c:270,1
    - Dst: repack_remove_redundant_pack
      Src: /src/git/repack-geometry.c:273,1
    - Dst: strbuf_release
      Src: /src/git/repack-geometry.c:277,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 6
    argNames:
    - pack
    - pack_nr
    - names
    - existing
    - packdir
    - wrote_incremental_midx
    argTypes:
    - struct packed_git**
    - uint32_t
    - struct string_list*
    - struct existing_packs*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 278
    functionName: remove_redundant_packs
    functionSourceFile: /src/git/repack-geometry.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - repack_remove_redundant_pack
    - pack_basename
    - strbuf_reset
    - strbuf_strip_suffix
    - string_list_has_string
    - strbuf_addstr
    - hash_to_hex_algop
    linkageType: ''
    returnType: void
    signature: "void remove_redundant_packs(struct packed_git **pack,\n\t\t\t\t   uint32_t
      pack_nr,\n\t\t\t\t   struct string_list *names,\n\t\t\t\t   struct existing_packs
      *existing,\n\t\t\t\t   const char *packdir,\n\t\t\t\t   bool wrote_incremental_midx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_redundant_packs
      Src: /src/git/repack-geometry.c:286,1
    - Dst: remove_redundant_packs
      Src: /src/git/repack-geometry.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - geometry
    - names
    - existing
    - packdir
    - wrote_incremental_midx
    argTypes:
    - struct pack_geometry*
    - struct string_list*
    - struct existing_packs*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: pack_geometry_remove_redundant
    functionSourceFile: /src/git/repack-geometry.c
    functionUses: 0
    functionsReached:
    - remove_redundant_packs
    linkageType: ''
    returnType: void
    signature: "void pack_geometry_remove_redundant(struct pack_geometry *geometry,\n\t\t\t\t
      \   struct string_list *names,\n\t\t\t\t    struct existing_packs *existing,\n\t\t\t\t
      \   const char *packdir,\n\t\t\t\t    bool wrote_incremental_midx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/repack-geometry.c:297,1
    - Dst: free
      Src: /src/git/repack-geometry.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - geometry
    argTypes:
    - struct pack_geometry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: pack_geometry_release
    functionSourceFile: /src/git/repack-geometry.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void pack_geometry_release(struct pack_geometry *geometry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/path-walk.c:77,1
    - Dst: strmap_get
      Src: /src/git/path-walk.c:78,1
    - Dst: strcmp
      Src: /src/git/path-walk.c:84,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - one
    - two
    - cb_data
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 99
    functionName: compare_by_type
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - strmap_get
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare_by_type(const void *one, const void *two, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strset_contains
      Src: /src/git/path-walk.c:104,1
    - Dst: strset_add
      Src: /src/git/path-walk.c:107,1
    - Dst: prio_queue_put
      Src: /src/git/path-walk.c:108,1
    - Dst: xstrdup
      Src: /src/git/path-walk.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - path
    argTypes:
    - struct path_walk_context*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: push_to_stack
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - strset_add
    - strset_contains
    - prio_queue_put
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void push_to_stack(struct path_walk_context *ctx,\n\t\t\t  const char
      *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/path-walk.c:117,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/path-walk.c:120,1
    - Dst: strmap_put
      Src: /src/git/path-walk.c:122,1
    - Dst: oid_array_append
      Src: /src/git/path-walk.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - path
    - type
    - oid
    - interesting
    argTypes:
    - struct path_walk_context*
    - char*
    - enum object_type
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: add_path_to_list
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - oid_array_append
    - strmap_get
    - strmap_put
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void add_path_to_list(struct path_walk_context *ctx,\n\t\t\t     const
      char *path,\n\t\t\t     enum object_type type,\n\t\t\t     struct object_id
      *oid,\n\t\t\t     int interesting)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tree
      Src: /src/git/path-walk.c:137,1
    - Dst: error
      Src: /src/git/path-walk.c:140,1
    - Dst: _
      Src: /src/git/path-walk.c:140,1
    - Dst: oid_to_hex
      Src: /src/git/path-walk.c:141,1
    - Dst: repo_parse_tree_gently
      Src: /src/git/path-walk.c:143,1
    - Dst: error
      Src: /src/git/path-walk.c:144,1
    - Dst: oid_to_hex
      Src: /src/git/path-walk.c:144,1
    - Dst: strbuf_addstr
      Src: /src/git/path-walk.c:148,1
    - Dst: init_tree_desc
      Src: /src/git/path-walk.c:151,1
    - Dst: tree_entry
      Src: /src/git/path-walk.c:152,1
    - Dst: S_ISDIR
      Src: /src/git/path-walk.c:155,1
    - Dst: S_ISGITLINK
      Src: /src/git/path-walk.c:158,1
    - Dst: lookup_tree
      Src: /src/git/path-walk.c:166,1
    - Dst: lookup_blob
      Src: /src/git/path-walk.c:169,1
    - Dst: BUG
      Src: /src/git/path-walk.c:172,1
    - Dst: error
      Src: /src/git/path-walk.c:176,1
    - Dst: _
      Src: /src/git/path-walk.c:176,1
    - Dst: oid_to_hex
      Src: /src/git/path-walk.c:177,1
    - Dst: strbuf_setlen
      Src: /src/git/path-walk.c:186,1
    - Dst: strbuf_add
      Src: /src/git/path-walk.c:187,1
    - Dst: strbuf_addch
      Src: /src/git/path-walk.c:194,1
    - Dst: path_matches_pattern_list
      Src: /src/git/path-walk.c:199,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/path-walk.c:215,1
    - Dst: dir_prefix
      Src: /src/git/path-walk.c:225,1
    - Dst: dir_prefix
      Src: /src/git/path-walk.c:226,1
    - Dst: strbuf_addch
      Src: /src/git/path-walk.c:233,1
    - Dst: add_path_to_list
      Src: /src/git/path-walk.c:240,1
    - Dst: push_to_stack
      Src: /src/git/path-walk.c:243,1
    - Dst: free_tree_buffer
      Src: /src/git/path-walk.c:246,1
    - Dst: strbuf_release
      Src: /src/git/path-walk.c:247,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 61
    argCount: 3
    argNames:
    - ctx
    - base_path
    - oid
    argTypes:
    - struct path_walk_context*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 249
    functionName: add_tree_entries
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - free_tree_buffer
    - lookup_tree
    - error
    - strbuf_release
    - strbuf_setlen
    - strbuf_addstr
    - lookup_blob
    - oid_to_hex
    - strbuf_strip_suffix
    - S_ISGITLINK
    - repo_parse_tree_gently
    - _
    - strbuf_add
    - init_tree_desc
    - path_matches_pattern_list
    - add_path_to_list
    - S_ISDIR
    - dir_prefix
    - tree_entry
    - strbuf_addch
    - push_to_stack
    - BUG
    linkageType: ''
    returnType: int
    signature: "int add_tree_entries(struct path_walk_context *ctx,\n\t\t\t    const
      char *base_path,\n\t\t\t    struct object_id *oid)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/path-walk.c:262,1
    - Dst: BUG
      Src: /src/git/path-walk.c:265,1
    - Dst: lookup_tree
      Src: /src/git/path-walk.c:287,1
    - Dst: lookup_blob
      Src: /src/git/path-walk.c:292,1
    - Dst: match_pathspec
      Src: /src/git/path-walk.c:309,1
    - Dst: strlen
      Src: /src/git/path-walk.c:310,1
    - Dst: struct path_walk_context*::info::path_fn
      Src: /src/git/path-walk.c:318,1
    - Dst: add_tree_entries
      Src: /src/git/path-walk.c:324,1
    - Dst: oid_array_clear
      Src: /src/git/path-walk.c:330,1
    - Dst: strmap_remove
      Src: /src/git/path-walk.c:331,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 37
    argCount: 2
    argNames:
    - ctx
    - path
    argTypes:
    - struct path_walk_context*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 256
    functionDepth: 6
    functionLinenumber: 256
    functionLinenumberEnd: 333
    functionName: walk_path
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - struct path_walk_context*::info::path_fn
    - oid_array_clear
    - strmap_get
    - strmap_remove
    - strlen
    - match_pathspec
    - lookup_blob
    - add_tree_entries
    - lookup_tree
    - BUG
    linkageType: ''
    returnType: int
    signature: "int walk_path(struct path_walk_context *ctx,\n\t\t     const char
      *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/path-walk.c:340,1
    - Dst: oid_array_clear
      Src: /src/git/path-walk.c:342,1
    - Dst: strmap_clear
      Src: /src/git/path-walk.c:344,1
    - Dst: strmap_init
      Src: /src/git/path-walk.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 346
    functionName: clear_paths_to_lists
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - strmap_clear
    - oid_array_clear
    - hashmap_for_each_entry
    - strmap_init
    linkageType: ''
    returnType: void
    signature: void clear_paths_to_lists(struct strmap *map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_tree
      Src: /src/git/path-walk.c:353,1
    - Dst: oid_array_append
      Src: /src/git/path-walk.c:365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 366
    functionName: show_edge
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - repo_get_commit_tree
    - oid_array_append
    linkageType: ''
    returnType: void
    signature: void show_edge(struct commit *commit)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/path-walk.c:376,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/path-walk.c:378,1
    - Dst: strmap_get
      Src: /src/git/path-walk.c:380,1
    - Dst: lookup_tag
      Src: /src/git/path-walk.c:399,1
    - Dst: error
      Src: /src/git/path-walk.c:401,1
    - Dst: _
      Src: /src/git/path-walk.c:401,1
    - Dst: oid_to_hex
      Src: /src/git/path-walk.c:402,1
    - Dst: oid_array_append
      Src: /src/git/path-walk.c:410,1
    - Dst: xstrfmt
      Src: /src/git/path-walk.c:427,1
    - Dst: xstrdup
      Src: /src/git/path-walk.c:428,1
    - Dst: add_path_to_list
      Src: /src/git/path-walk.c:429,1
    - Dst: free
      Src: /src/git/path-walk.c:430,1
    - Dst: oid_array_append
      Src: /src/git/path-walk.c:433,1
    - Dst: add_path_to_list
      Src: /src/git/path-walk.c:441,1
    - Dst: oid_array_append
      Src: /src/git/path-walk.c:443,1
    - Dst: add_pending_object
      Src: /src/git/path-walk.c:449,1
    - Dst: BUG
      Src: /src/git/path-walk.c:453,1
    - Dst: strmap_put
      Src: /src/git/path-walk.c:465,1
    - Dst: push_to_stack
      Src: /src/git/path-walk.c:466,1
    - Dst: oid_array_clear
      Src: /src/git/path-walk.c:468,1
    - Dst: free
      Src: /src/git/path-walk.c:469,1
    - Dst: strmap_put
      Src: /src/git/path-walk.c:477,1
    - Dst: push_to_stack
      Src: /src/git/path-walk.c:478,1
    - Dst: oid_array_clear
      Src: /src/git/path-walk.c:480,1
    - Dst: free
      Src: /src/git/path-walk.c:481,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 76
    argCount: 2
    argNames:
    - info
    - ctx
    argTypes:
    - struct path_walk_info*
    - struct path_walk_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 368
    functionDepth: 5
    functionLinenumber: 368
    functionLinenumberEnd: 486
    functionName: setup_pending_objects
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - error
    - add_path_to_list
    - oid_to_hex
    - lookup_tag
    - BUG
    - xstrfmt
    - oid_array_clear
    - strmap_get
    - free
    - add_pending_object
    - push_to_stack
    - strmap_put
    - _
    - CALLOC_ARRAY
    - oid_array_append
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int setup_pending_objects(struct path_walk_info *info,\n\t\t\t\t struct
      path_walk_context *ctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/path-walk.c:513,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/path-walk.c:515,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/path-walk.c:528,1
    - Dst: strmap_put
      Src: /src/git/path-walk.c:531,1
    - Dst: push_to_stack
      Src: /src/git/path-walk.c:532,1
    - Dst: prepare_revision_walk
      Src: /src/git/path-walk.c:541,1
    - Dst: die
      Src: /src/git/path-walk.c:542,1
    - Dst: _
      Src: /src/git/path-walk.c:542,1
    - Dst: mark_edges_uninteresting
      Src: /src/git/path-walk.c:551,1
    - Dst: trace2_region_enter
      Src: /src/git/path-walk.c:558,1
    - Dst: setup_pending_objects
      Src: /src/git/path-walk.c:559,1
    - Dst: trace2_region_leave
      Src: /src/git/path-walk.c:560,1
    - Dst: get_revision
      Src: /src/git/path-walk.c:565,1
    - Dst: oid_array_append
      Src: /src/git/path-walk.c:571,1
    - Dst: get_commit_tree_oid
      Src: /src/git/path-walk.c:578,1
    - Dst: lookup_tree
      Src: /src/git/path-walk.c:579,1
    - Dst: error
      Src: /src/git/path-walk.c:582,1
    - Dst: oid_to_hex
      Src: /src/git/path-walk.c:582,1
    - Dst: oid_array_append
      Src: /src/git/path-walk.c:589,1
    - Dst: trace2_data_intmax
      Src: /src/git/path-walk.c:592,1
    - Dst: trace2_region_leave
      Src: /src/git/path-walk.c:593,1
    - Dst: struct path_walk_info*::path_fn
      Src: /src/git/path-walk.c:597,1
    - Dst: oid_array_clear
      Src: /src/git/path-walk.c:599,1
    - Dst: free
      Src: /src/git/path-walk.c:600,1
    - Dst: trace2_region_enter
      Src: /src/git/path-walk.c:602,1
    - Dst: prio_queue_get
      Src: /src/git/path-walk.c:604,1
    - Dst: walk_path
      Src: /src/git/path-walk.c:607,1
    - Dst: free
      Src: /src/git/path-walk.c:609,1
    - Dst: strmap_empty
      Src: /src/git/path-walk.c:613,1
    - Dst: strmap_for_each_entry
      Src: /src/git/path-walk.c:617,1
    - Dst: push_to_stack
      Src: /src/git/path-walk.c:618,1
    - Dst: prio_queue_get
      Src: /src/git/path-walk.c:621,1
    - Dst: walk_path
      Src: /src/git/path-walk.c:624,1
    - Dst: free
      Src: /src/git/path-walk.c:626,1
    - Dst: trace2_data_intmax
      Src: /src/git/path-walk.c:630,1
    - Dst: trace2_region_leave
      Src: /src/git/path-walk.c:631,1
    - Dst: clear_paths_to_lists
      Src: /src/git/path-walk.c:633,1
    - Dst: strset_clear
      Src: /src/git/path-walk.c:634,1
    - Dst: clear_prio_queue
      Src: /src/git/path-walk.c:635,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct path_walk_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 494
    functionDepth: 13
    functionLinenumber: 494
    functionLinenumberEnd: 637
    functionName: walk_objects_by_path
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - trace2_data_intmax
    - prio_queue_get
    - trace2_region_enter
    - strmap_put
    - CALLOC_ARRAY
    - free
    - strmap_empty
    - lookup_tree
    - mark_edges_uninteresting
    - error
    - die
    - oid_array_clear
    - prepare_revision_walk
    - clear_paths_to_lists
    - walk_path
    - oid_array_append
    - oid_to_hex
    - struct path_walk_info*::path_fn
    - strset_clear
    - setup_pending_objects
    - _
    - trace2_region_leave
    - strmap_for_each_entry
    - get_commit_tree_oid
    - push_to_stack
    - get_revision
    - clear_prio_queue
    linkageType: ''
    returnType: int
    signature: int walk_objects_by_path(struct path_walk_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/path-walk.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct path_walk_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: path_walk_info_init
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void path_walk_info_init(struct path_walk_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_pattern_list
      Src: /src/git/path-walk.c:648,1
    - Dst: free
      Src: /src/git/path-walk.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct path_walk_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 651
    functionName: path_walk_info_clear
    functionSourceFile: /src/git/path-walk.c
    functionUses: 0
    functionsReached:
    - clear_pattern_list
    - free
    linkageType: ''
    returnType: void
    signature: void path_walk_info_clear(struct path_walk_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_or_die
      Src: /src/git/archive-tar.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: tar_write_block
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - write_or_die
    linkageType: ''
    returnType: void
    signature: void tar_write_block(const void *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_block
      Src: /src/git/archive-tar.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: write_if_needed
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - write_block
    linkageType: ''
    returnType: void
    signature: void write_if_needed(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/archive-tar.c:77,1
    - Dst: write_if_needed
      Src: /src/git/archive-tar.c:81,1
    - Dst: write_block
      Src: /src/git/archive-tar.c:84,1
    - Dst: memcpy
      Src: /src/git/archive-tar.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: do_write_blocked
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - write_block
    - write_if_needed
    - memcpy
    linkageType: ''
    returnType: void
    signature: void do_write_blocked(const void *data, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/archive-tar.c:99,1
    - Dst: write_if_needed
      Src: /src/git/archive-tar.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: finish_record
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - memset
    - write_if_needed
    linkageType: ''
    returnType: void
    signature: void finish_record(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_write_blocked
      Src: /src/git/archive-tar.c:107,1
    - Dst: finish_record
      Src: /src/git/archive-tar.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: write_blocked
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 1
    functionsReached:
    - do_write_blocked
    - finish_record
    linkageType: ''
    returnType: void
    signature: void write_blocked(const void *data, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/archive-tar.c:118,1
    - Dst: write_block
      Src: /src/git/archive-tar.c:119,1
    - Dst: memset
      Src: /src/git/archive-tar.c:121,1
    - Dst: write_block
      Src: /src/git/archive-tar.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: write_trailer
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - memset
    - write_block
    linkageType: ''
    returnType: void
    signature: void write_trailer(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_stream_open
      Src: /src/git/archive-tar.c:136,1
    - Dst: error
      Src: /src/git/archive-tar.c:138,1
    - Dst: _
      Src: /src/git/archive-tar.c:138,1
    - Dst: oid_to_hex
      Src: /src/git/archive-tar.c:138,1
    - Dst: odb_read_stream_read
      Src: /src/git/archive-tar.c:140,1
    - Dst: do_write_blocked
      Src: /src/git/archive-tar.c:143,1
    - Dst: odb_read_stream_close
      Src: /src/git/archive-tar.c:145,1
    - Dst: finish_record
      Src: /src/git/archive-tar.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 149
    functionName: stream_blocked
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - error
    - odb_read_stream_close
    - oid_to_hex
    - odb_read_stream_open
    - finish_record
    - _
    - odb_read_stream_read
    - do_write_blocked
    linkageType: ''
    returnType: int
    signature: int stream_blocked(struct repository *r, const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/archive-tar.c:164,1
    - Dst: strbuf_grow
      Src: /src/git/archive-tar.c:168,1
    - Dst: strbuf_addf
      Src: /src/git/archive-tar.c:169,1
    - Dst: strbuf_add
      Src: /src/git/archive-tar.c:170,1
    - Dst: strbuf_addch
      Src: /src/git/archive-tar.c:171,1
    - Dst: BUG
      Src: /src/git/archive-tar.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - sb
    - keyword
    - value
    - valuelen
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 177
    functionName: strbuf_append_ext_header
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addch
    - strlen
    - strbuf_grow
    - BUG
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void strbuf_append_ext_header(struct strbuf *sb, const char *keyword,\n\t\t\t\t
      \    const char *value, size_t valuelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:189,1
    - Dst: strbuf_append_ext_header
      Src: /src/git/archive-tar.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sb
    - keyword
    - value
    argTypes:
    - struct strbuf*
    - char*
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: strbuf_append_ext_header_uint
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - strbuf_append_ext_header
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: "void strbuf_append_ext_header_uint(struct strbuf *sb,\n\t\t\t\t\t
      \ const char *keyword,\n\t\t\t\t\t  uintmax_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct ustar_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 204
    functionName: ustar_header_chksum
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ustar_header_chksum(const struct ustar_header *header)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - path
    - pathlen
    - maxlen
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 217
    functionName: get_path_prefix
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_path_prefix(const char *path, size_t pathlen, size_t maxlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:223,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:224,1
    - Dst: S_ISREG
      Src: /src/git/archive-tar.c:224,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:225,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:227,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:228,1
    - Dst: strlcpy
      Src: /src/git/archive-tar.c:229,1
    - Dst: strlcpy
      Src: /src/git/archive-tar.c:230,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:231,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:232,1
    - Dst: memcpy
      Src: /src/git/archive-tar.c:234,1
    - Dst: memcpy
      Src: /src/git/archive-tar.c:235,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:237,1
    - Dst: ustar_header_chksum
      Src: /src/git/archive-tar.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - args
    - header
    - mode
    - size
    argTypes:
    - struct archiver_args*
    - struct ustar_header*
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 238
    functionName: prepare_header
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - ustar_header_chksum
    - memcpy
    - xsnprintf
    - strlcpy
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: "void prepare_header(struct archiver_args *args,\n\t\t\t   struct ustar_header
      *header,\n\t\t\t   unsigned int mode, unsigned long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/archive-tar.c:246,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:249,1
    - Dst: oid_to_hex
      Src: /src/git/archive-tar.c:249,1
    - Dst: prepare_header
      Src: /src/git/archive-tar.c:250,1
    - Dst: write_blocked
      Src: /src/git/archive-tar.c:251,1
    - Dst: write_blocked
      Src: /src/git/archive-tar.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - args
    - oid
    - buffer
    - size
    argTypes:
    - struct archiver_args*
    - struct object_id*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: write_extended_header
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - prepare_header
    - memset
    - oid_to_hex
    - xsnprintf
    - write_blocked
    linkageType: ''
    returnType: void
    signature: "void write_extended_header(struct archiver_args *args,\n\t\t\t\t  const
      struct object_id *oid,\n\t\t\t\t  const void *buffer, unsigned long size)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/archive-tar.c:266,1
    - Dst: S_ISDIR
      Src: /src/git/archive-tar.c:268,1
    - Dst: S_ISGITLINK
      Src: /src/git/archive-tar.c:268,1
    - Dst: S_ISLNK
      Src: /src/git/archive-tar.c:271,1
    - Dst: S_ISREG
      Src: /src/git/archive-tar.c:274,1
    - Dst: error
      Src: /src/git/archive-tar.c:278,1
    - Dst: _
      Src: /src/git/archive-tar.c:278,1
    - Dst: oid_to_hex
      Src: /src/git/archive-tar.c:279,1
    - Dst: get_path_prefix
      Src: /src/git/archive-tar.c:282,1
    - Dst: memcpy
      Src: /src/git/archive-tar.c:286,1
    - Dst: memcpy
      Src: /src/git/archive-tar.c:287,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:289,1
    - Dst: oid_to_hex
      Src: /src/git/archive-tar.c:290,1
    - Dst: strbuf_append_ext_header
      Src: /src/git/archive-tar.c:291,1
    - Dst: memcpy
      Src: /src/git/archive-tar.c:295,1
    - Dst: S_ISLNK
      Src: /src/git/archive-tar.c:297,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:299,1
    - Dst: oid_to_hex
      Src: /src/git/archive-tar.c:300,1
    - Dst: strbuf_append_ext_header
      Src: /src/git/archive-tar.c:301,1
    - Dst: memcpy
      Src: /src/git/archive-tar.c:304,1
    - Dst: S_ISREG
      Src: /src/git/archive-tar.c:308,1
    - Dst: strbuf_append_ext_header_uint
      Src: /src/git/archive-tar.c:310,1
    - Dst: prepare_header
      Src: /src/git/archive-tar.c:313,1
    - Dst: write_extended_header
      Src: /src/git/archive-tar.c:316,1
    - Dst: strbuf_release
      Src: /src/git/archive-tar.c:319,1
    - Dst: write_blocked
      Src: /src/git/archive-tar.c:320,1
    - Dst: S_ISREG
      Src: /src/git/archive-tar.c:321,1
    - Dst: write_blocked
      Src: /src/git/archive-tar.c:323,1
    - Dst: stream_blocked
      Src: /src/git/archive-tar.c:325,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 7
    argNames:
    - args
    - oid
    - path
    - pathlen
    - mode
    - buffer
    - size
    argTypes:
    - struct archiver_args*
    - struct object_id*
    - char*
    - size_t
    - unsigned int
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 328
    functionName: write_tar_entry
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - error
    - prepare_header
    - memset
    - S_ISDIR
    - oid_to_hex
    - strbuf_release
    - write_blocked
    - S_ISLNK
    - stream_blocked
    - write_extended_header
    - S_ISGITLINK
    - memcpy
    - strbuf_append_ext_header_uint
    - xsnprintf
    - _
    - strbuf_append_ext_header
    - get_path_prefix
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int write_tar_entry(struct archiver_args *args,\n\t\t\t   const struct
      object_id *oid,\n\t\t\t   const char *path, size_t pathlen,\n\t\t\t   unsigned
      int mode,\n\t\t\t   void *buffer, unsigned long size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_append_ext_header
      Src: /src/git/archive-tar.c:338,1
    - Dst: oid_to_hex
      Src: /src/git/archive-tar.c:339,1
    - Dst: strbuf_append_ext_header_uint
      Src: /src/git/archive-tar.c:342,1
    - Dst: memset
      Src: /src/git/archive-tar.c:350,1
    - Dst: xsnprintf
      Src: /src/git/archive-tar.c:353,1
    - Dst: prepare_header
      Src: /src/git/archive-tar.c:354,1
    - Dst: write_blocked
      Src: /src/git/archive-tar.c:355,1
    - Dst: write_blocked
      Src: /src/git/archive-tar.c:356,1
    - Dst: strbuf_release
      Src: /src/git/archive-tar.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct archiver_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 358
    functionName: write_global_extended_header
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - prepare_header
    - memset
    - oid_to_hex
    - strbuf_release
    - strbuf_append_ext_header_uint
    - xsnprintf
    - write_blocked
    - strbuf_append_ext_header
    linkageType: ''
    returnType: void
    signature: void write_global_extended_header(struct archiver_args *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrncmpz
      Src: /src/git/archive-tar.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 373
    functionName: find_tar_filter
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    linkageType: ''
    returnType: struct archiver
    signature: struct archiver *find_tar_filter(const char *name, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/archive-tar.c:383,1
    - Dst: find_tar_filter
      Src: /src/git/archive-tar.c:386,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/archive-tar.c:388,1
    - Dst: xmemdupz
      Src: /src/git/archive-tar.c:389,1
    - Dst: ALLOC_GROW
      Src: /src/git/archive-tar.c:393,1
    - Dst: strcmp
      Src: /src/git/archive-tar.c:397,1
    - Dst: config_error_nonbool
      Src: /src/git/archive-tar.c:399,1
    - Dst: free
      Src: /src/git/archive-tar.c:400,1
    - Dst: xstrdup
      Src: /src/git/archive-tar.c:401,1
    - Dst: strcmp
      Src: /src/git/archive-tar.c:404,1
    - Dst: git_config_bool
      Src: /src/git/archive-tar.c:405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - var
    - value
    - UNUSED
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 413
    functionName: tar_filter_config
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - git_config_bool
    - xstrdup
    - parse_config_key
    - strcmp
    - ALLOC_GROW
    - CALLOC_ARRAY
    - free
    - config_error_nonbool
    - find_tar_filter
    linkageType: ''
    returnType: int
    signature: "int tar_filter_config(const char *var, const char *value,\n\t\t\t
      \    void *data UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/archive-tar.c:418,1
    - Dst: strcmp
      Src: /src/git/archive-tar.c:419,1
    - Dst: umask
      Src: /src/git/archive-tar.c:420,1
    - Dst: umask
      Src: /src/git/archive-tar.c:421,1
    - Dst: git_config_int
      Src: /src/git/archive-tar.c:423,1
    - Dst: tar_filter_config
      Src: /src/git/archive-tar.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 429
    functionName: git_tar_config
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - umask
    - tar_filter_config
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_tar_config(const char *var, const char *value,\n\t\t\t  const
      struct config_context *ctx, void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_global_extended_header
      Src: /src/git/archive-tar.c:436,1
    - Dst: write_archive_entries
      Src: /src/git/archive-tar.c:437,1
    - Dst: write_trailer
      Src: /src/git/archive-tar.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - UNUSED
    - args
    argTypes:
    - struct archiver*
    - struct archiver_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 431
    functionDepth: 4
    functionLinenumber: 431
    functionLinenumberEnd: 441
    functionName: write_tar_archive
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - write_global_extended_header
    - write_archive_entries
    - write_trailer
    linkageType: ''
    returnType: int
    signature: "int write_tar_archive(const struct archiver *ar UNUSED,\n\t\t\t     struct
      archiver_args *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate
      Src: /src/git/archive-tar.c:449,1
    - Dst: write_or_die
      Src: /src/git/archive-tar.c:451,1
    - Dst: die
      Src: /src/git/archive-tar.c:458,1
    - Dst: _
      Src: /src/git/archive-tar.c:458,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - flush
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 460
    functionName: tgz_deflate
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - die
    - git_deflate
    - _
    linkageType: ''
    returnType: void
    signature: void tgz_deflate(int flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tgz_deflate
      Src: /src/git/archive-tar.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: tgz_write_block
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - tgz_deflate
    linkageType: ''
    returnType: void
    signature: void tgz_write_block(const void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/archive-tar.c:480,1
    - Dst: strcmp
      Src: /src/git/archive-tar.c:482,1
    - Dst: git_deflate_init_gzip
      Src: /src/git/archive-tar.c:484,1
    - Dst: deflateSetHeader
      Src: /src/git/archive-tar.c:485,1
    - Dst: BUG
      Src: /src/git/archive-tar.c:486,1
    - Dst: write_tar_archive
      Src: /src/git/archive-tar.c:490,1
    - Dst: tgz_deflate
      Src: /src/git/archive-tar.c:492,1
    - Dst: git_deflate_end
      Src: /src/git/archive-tar.c:493,1
    - Dst: strbuf_addstr
      Src: /src/git/archive-tar.c:497,1
    - Dst: strbuf_addf
      Src: /src/git/archive-tar.c:499,1
    - Dst: strvec_push
      Src: /src/git/archive-tar.c:501,1
    - Dst: start_command
      Src: /src/git/archive-tar.c:506,1
    - Dst: die_errno
      Src: /src/git/archive-tar.c:507,1
    - Dst: _
      Src: /src/git/archive-tar.c:507,1
    - Dst: close
      Src: /src/git/archive-tar.c:508,1
    - Dst: dup2
      Src: /src/git/archive-tar.c:509,1
    - Dst: die_errno
      Src: /src/git/archive-tar.c:510,1
    - Dst: _
      Src: /src/git/archive-tar.c:510,1
    - Dst: close
      Src: /src/git/archive-tar.c:511,1
    - Dst: write_tar_archive
      Src: /src/git/archive-tar.c:513,1
    - Dst: close
      Src: /src/git/archive-tar.c:515,1
    - Dst: finish_command
      Src: /src/git/archive-tar.c:516,1
    - Dst: die
      Src: /src/git/archive-tar.c:517,1
    - Dst: _
      Src: /src/git/archive-tar.c:517,1
    - Dst: strbuf_release
      Src: /src/git/archive-tar.c:519,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - ar
    - args
    argTypes:
    - struct archiver*
    - struct archiver_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 471
    functionDepth: 7
    functionLinenumber: 471
    functionLinenumberEnd: 521
    functionName: write_tar_filter_archive
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - die
    - finish_command
    - tgz_deflate
    - strbuf_addf
    - die_errno
    - git_deflate_end
    - _
    - dup2
    - git_deflate_init_gzip
    - close
    - deflateSetHeader
    - strcmp
    - strbuf_addstr
    - BUG
    - write_tar_archive
    - start_command
    linkageType: ''
    returnType: int
    signature: "int write_tar_filter_archive(const struct archiver *ar,\n\t\t\t\t
      \   struct archiver_args *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: register_archiver
      Src: /src/git/archive-tar.c:532,1
    - Dst: tar_filter_config
      Src: /src/git/archive-tar.c:534,1
    - Dst: tar_filter_config
      Src: /src/git/archive-tar.c:535,1
    - Dst: tar_filter_config
      Src: /src/git/archive-tar.c:536,1
    - Dst: tar_filter_config
      Src: /src/git/archive-tar.c:537,1
    - Dst: repo_config
      Src: /src/git/archive-tar.c:538,1
    - Dst: register_archiver
      Src: /src/git/archive-tar.c:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 544
    functionName: init_tar_archiver
    functionSourceFile: /src/git/archive-tar.c
    functionUses: 0
    functionsReached:
    - register_archiver
    - repo_config
    - tar_filter_config
    linkageType: ''
    returnType: void
    signature: void init_tar_archiver(void)
  - 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: gettext
    functionSourceFile: /src/git/gettext.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gettext(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: ngettext
    functionSourceFile: /src/git/gettext.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ngettext(s, p, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: FORMAT_PRESERVING
    functionSourceFile: /src/git/gettext.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORMAT_PRESERVING(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: git_setup_gettext
    functionSourceFile: /src/git/gettext.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void git_setup_gettext(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/gettext.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: gettext_width
    functionSourceFile: /src/git/gettext.h
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int gettext_width(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gettext
      Src: /src/git/gettext.h:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: (1) const char *_(const char *msgid)
    functionSourceFile: /src/git/gettext.h
    functionUses: 0
    functionsReached:
    - gettext
    linkageType: ''
    returnType: FORMAT_PRESERVING
    signature: FORMAT_PRESERVING (1) const char *_(const char *msgid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ngettext
      Src: /src/git/gettext.h:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: '(1) FORMAT_PRESERVING(2)

      const char *Q_(const char *msgid, const char *plu, unsigned long n)'
    functionSourceFile: /src/git/gettext.h
    functionUses: 0
    functionsReached:
    - ngettext
    linkageType: ''
    returnType: FORMAT_PRESERVING
    signature: 'FORMAT_PRESERVING (1) FORMAT_PRESERVING(2)

      const char *Q_(const char *msgid, const char *plu, unsigned long n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: N_
    functionSourceFile: /src/git/gettext.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: N_(msgid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix
      Src: /src/git/pack-mtimes.c:11,1
    - Dst: BUG
      Src: /src/git/pack-mtimes.c:12,1
    - Dst: xstrfmt
      Src: /src/git/pack-mtimes.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 8
    functionDepth: 3
    functionLinenumber: 8
    functionLinenumberEnd: 14
    functionName: pack_mtimes_filename
    functionSourceFile: /src/git/pack-mtimes.c
    functionUses: 0
    functionsReached:
    - strip_suffix
    - xstrfmt
    - BUG
    linkageType: ''
    returnType: char
    signature: char *pack_mtimes_filename(struct packed_git *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: git_open
      Src: /src/git/pack-mtimes.c:34,1
    - Dst: fstat
      Src: /src/git/pack-mtimes.c:40,1
    - Dst: error_errno
      Src: /src/git/pack-mtimes.c:41,1
    - Dst: _
      Src: /src/git/pack-mtimes.c:41,1
    - Dst: xsize_t
      Src: /src/git/pack-mtimes.c:45,1
    - Dst: error
      Src: /src/git/pack-mtimes.c:48,1
    - Dst: _
      Src: /src/git/pack-mtimes.c:48,1
    - Dst: xmmap
      Src: /src/git/pack-mtimes.c:52,1
    - Dst: ntohl
      Src: /src/git/pack-mtimes.c:54,1
    - Dst: ntohl
      Src: /src/git/pack-mtimes.c:55,1
    - Dst: ntohl
      Src: /src/git/pack-mtimes.c:56,1
    - Dst: error
      Src: /src/git/pack-mtimes.c:59,1
    - Dst: _
      Src: /src/git/pack-mtimes.c:59,1
    - Dst: error
      Src: /src/git/pack-mtimes.c:64,1
    - Dst: _
      Src: /src/git/pack-mtimes.c:64,1
    - Dst: error
      Src: /src/git/pack-mtimes.c:70,1
    - Dst: _
      Src: /src/git/pack-mtimes.c:70,1
    - Dst: st_add
      Src: /src/git/pack-mtimes.c:77,1
    - Dst: st_mult
      Src: /src/git/pack-mtimes.c:77,1
    - Dst: st_add
      Src: /src/git/pack-mtimes.c:78,1
    - Dst: error
      Src: /src/git/pack-mtimes.c:81,1
    - Dst: _
      Src: /src/git/pack-mtimes.c:81,1
    - Dst: munmap
      Src: /src/git/pack-mtimes.c:88,1
    - Dst: close
      Src: /src/git/pack-mtimes.c:95,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 4
    argNames:
    - mtimes_file
    - num_objects
    - data_p
    - len_p
    argTypes:
    - char*
    - uint32_t
    - uint32_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 97
    functionName: load_pack_mtimes_file
    functionSourceFile: /src/git/pack-mtimes.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - fstat
    - ntohl
    - git_open
    - xmmap
    - xsize_t
    - _
    - close
    - munmap
    - st_add
    - st_mult
    linkageType: ''
    returnType: int
    signature: "int load_pack_mtimes_file(char *mtimes_file,\n\t\t\t\t uint32_t num_objects,\n\t\t\t\t
      const uint32_t **data_p, size_t *len_p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/pack-mtimes.c:109,1
    - Dst: pack_mtimes_filename
      Src: /src/git/pack-mtimes.c:113,1
    - Dst: load_pack_mtimes_file
      Src: /src/git/pack-mtimes.c:114,1
    - Dst: free
      Src: /src/git/pack-mtimes.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 121
    functionName: load_pack_mtimes
    functionSourceFile: /src/git/pack-mtimes.c
    functionUses: 0
    functionsReached:
    - pack_mtimes_filename
    - load_pack_mtimes_file
    - open_pack_index
    - free
    linkageType: ''
    returnType: int
    signature: int load_pack_mtimes(struct packed_git *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-mtimes.c:126,1
    - Dst: BUG
      Src: /src/git/pack-mtimes.c:128,1
    - Dst: get_be32
      Src: /src/git/pack-mtimes.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pos
    argTypes:
    - struct packed_git*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 132
    functionName: nth_packed_mtime
    functionSourceFile: /src/git/pack-mtimes.c
    functionUses: 0
    functionsReached:
    - BUG
    - get_be32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t nth_packed_mtime(struct packed_git *p, uint32_t pos)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/help.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - name
    - category
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: drop_prefix
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: char
    signature: char *drop_prefix(const char *name, uint32_t category)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/help.c:85,1
    - Dst: BUG
      Src: /src/git/help.c:86,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/help.c:88,1
    - Dst: ARRAY_SIZE
      Src: /src/git/help.c:88,1
    - Dst: ARRAY_SIZE
      Src: /src/git/help.c:90,1
    - Dst: drop_prefix
      Src: /src/git/help.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - p_cmds
    - mask
    argTypes:
    - struct cmdname_help**
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 103
    functionName: extract_cmds
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - ALLOC_ARRAY
    - BUG
    - drop_prefix
    linkageType: ''
    returnType: void
    signature: void extract_cmds(struct cmdname_help **p_cmds, uint32_t mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utf8_strwidth
      Src: /src/git/help.c:112,1
    - Dst: printf
      Src: /src/git/help.c:113,1
    - Dst: mput_char
      Src: /src/git/help.c:115,1
    - Dst: puts
      Src: /src/git/help.c:116,1
    - Dst: _
      Src: /src/git/help.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - cmds
    - mask
    - longest
    argTypes:
    - struct cmdname_help*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: print_command_list
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - mput_char
    - puts
    - utf8_strwidth
    - _
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_command_list(const struct cmdname_help *cmds,\n\t\t\t       uint32_t
      mask, int longest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/help.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elem1
    - elem2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: cmd_name_cmp
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmd_name_cmp(const void *elem1, const void *elem2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extract_cmds
      Src: /src/git/help.c:140,1
    - Dst: strlen
      Src: /src/git/help.c:143,1
    - Dst: strlen
      Src: /src/git/help.c:144,1
    - Dst: QSORT
      Src: /src/git/help.c:146,1
    - Dst: putchar
      Src: /src/git/help.c:153,1
    - Dst: puts
      Src: /src/git/help.c:154,1
    - Dst: _
      Src: /src/git/help.c:154,1
    - Dst: print_command_list
      Src: /src/git/help.c:155,1
    - Dst: free
      Src: /src/git/help.c:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - catdesc
    - longest_p
    argTypes:
    - struct category_description*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 160
    functionName: print_cmd_by_category
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - putchar
    - puts
    - strlen
    - QSORT
    - _
    - free
    - extract_cmds
    - print_command_list
    linkageType: ''
    returnType: void
    signature: "void print_cmd_by_category(const struct category_description *catdesc,\n\t\t\t\t
      \ int *longest_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/help.c:165,1
    - Dst: ALLOC_GROW
      Src: /src/git/help.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cmds
    - name
    - len
    argTypes:
    - struct cmdnames*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: add_cmdname
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - FLEX_ALLOC_MEM
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void add_cmdname(struct cmdnames *cmds, const char *name, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/help.c:176,1
    - Dst: free
      Src: /src/git/help.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - struct cmdnames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: cmdnames_release
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cmdnames_release(struct cmdnames *cmds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/help.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: cmdname_compare
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmdname_compare(const void *a_, const void *b_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/help.c:197,1
    - Dst: free
      Src: /src/git/help.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - struct cmdnames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: uniq
    functionSourceFile: /src/git/help.c
    functionUses: 1
    functionsReached:
    - free
    - strcmp
    linkageType: ''
    returnType: void
    signature: void uniq(struct cmdnames *cmds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/help.c:213,1
    - Dst: free
      Src: /src/git/help.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - cmds
    - excludes
    argTypes:
    - struct cmdnames*
    - struct cmdnames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 227
    functionName: exclude_cmds
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - free
    - strcmp
    linkageType: ''
    returnType: void
    signature: void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/help.c:236,1
    - Dst: memset
      Src: /src/git/help.c:242,1
    - Dst: print_columns
      Src: /src/git/help.c:245,1
    - Dst: string_list_clear
      Src: /src/git/help.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cmds
    - colopts
    argTypes:
    - struct cmdnames*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 247
    functionName: pretty_print_cmdnames
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - memset
    - print_columns
    - string_list_append
    linkageType: ''
    returnType: void
    signature: void pretty_print_cmdnames(struct cmdnames *cmds, unsigned int colopts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/help.c:253,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:263,1
    - Dst: readdir
      Src: /src/git/help.c:266,1
    - Dst: skip_prefix
      Src: /src/git/help.c:270,1
    - Dst: strbuf_setlen
      Src: /src/git/help.c:273,1
    - Dst: strbuf_addstr
      Src: /src/git/help.c:274,1
    - Dst: is_executable
      Src: /src/git/help.c:275,1
    - Dst: strlen
      Src: /src/git/help.c:278,1
    - Dst: strip_suffix
      Src: /src/git/help.c:279,1
    - Dst: add_cmdname
      Src: /src/git/help.c:281,1
    - Dst: closedir
      Src: /src/git/help.c:283,1
    - Dst: strbuf_release
      Src: /src/git/help.c:284,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - cmds
    - path
    - prefix
    argTypes:
    - struct cmdnames*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 285
    functionName: list_commands_in_dir
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strip_suffix
    - closedir
    - strbuf_addf
    - strbuf_setlen
    - opendir
    - strlen
    - strbuf_addstr
    - add_cmdname
    - skip_prefix
    - readdir
    - is_executable
    linkageType: ''
    returnType: void
    signature: "void list_commands_in_dir(struct cmdnames *cmds,\n\t\t\t\t\t const
      char *path,\n\t\t\t\t\t const char *prefix)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/help.c:291,1
    - Dst: git_exec_path
      Src: /src/git/help.c:292,1
    - Dst: load_builtin_commands
      Src: /src/git/help.c:294,1
    - Dst: list_commands_in_dir
      Src: /src/git/help.c:297,1
    - Dst: QSORT
      Src: /src/git/help.c:298,1
    - Dst: uniq
      Src: /src/git/help.c:299,1
    - Dst: xstrdup
      Src: /src/git/help.c:304,1
    - Dst: strchr
      Src: /src/git/help.c:306,1
    - Dst: strcmp
      Src: /src/git/help.c:308,1
    - Dst: list_commands_in_dir
      Src: /src/git/help.c:309,1
    - Dst: free
      Src: /src/git/help.c:315,1
    - Dst: QSORT
      Src: /src/git/help.c:317,1
    - Dst: uniq
      Src: /src/git/help.c:318,1
    - Dst: exclude_cmds
      Src: /src/git/help.c:320,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - prefix
    - main_cmds
    - other_cmds
    argTypes:
    - char*
    - struct cmdnames*
    - struct cmdnames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 321
    functionName: load_command_list
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - load_builtin_commands
    - exclude_cmds
    - list_commands_in_dir
    - strchr
    - QSORT
    - uniq
    - strcmp
    - free
    - getenv
    - git_exec_path
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void load_command_list(const char *prefix,\n\t\tstruct cmdnames *main_cmds,\n\t\tstruct
      cmdnames *other_cmds)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/help.c:328,1
    - Dst: git_column_config
      Src: /src/git/help.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: get_colopts
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - git_column_config
    - starts_with
    linkageType: ''
    returnType: int
    signature: "int get_colopts(const char *var, const char *value,\n\t\t       const
      struct config_context *ctx UNUSED, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/help.c:337,1
    - Dst: git_exec_path
      Src: /src/git/help.c:340,1
    - Dst: printf_ln
      Src: /src/git/help.c:341,1
    - Dst: _
      Src: /src/git/help.c:341,1
    - Dst: putchar
      Src: /src/git/help.c:342,1
    - Dst: pretty_print_cmdnames
      Src: /src/git/help.c:343,1
    - Dst: putchar
      Src: /src/git/help.c:344,1
    - Dst: puts
      Src: /src/git/help.c:348,1
    - Dst: _
      Src: /src/git/help.c:348,1
    - Dst: putchar
      Src: /src/git/help.c:349,1
    - Dst: pretty_print_cmdnames
      Src: /src/git/help.c:350,1
    - Dst: putchar
      Src: /src/git/help.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - main_cmds
    - other_cmds
    argTypes:
    - struct cmdnames*
    - struct cmdnames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 334
    functionDepth: 4
    functionLinenumber: 334
    functionLinenumberEnd: 353
    functionName: list_commands
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - putchar
    - puts
    - pretty_print_cmdnames
    - _
    - git_exec_path
    - printf_ln
    - repo_config
    linkageType: ''
    returnType: void
    signature: void list_commands(struct cmdnames *main_cmds, struct cmdnames *other_cmds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/git/help.c:357,1
    - Dst: _
      Src: /src/git/help.c:357,1
    - Dst: putchar
      Src: /src/git/help.c:358,1
    - Dst: print_cmd_by_category
      Src: /src/git/help.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 4
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: list_common_cmds_help
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - puts
    - putchar
    - print_cmd_by_category
    - _
    linkageType: ''
    returnType: void
    signature: void list_common_cmds_help(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/help.c:367,1
    - Dst: memset
      Src: /src/git/help.c:368,1
    - Dst: load_command_list
      Src: /src/git/help.c:369,1
    - Dst: string_list_append
      Src: /src/git/help.c:372,1
    - Dst: cmdnames_release
      Src: /src/git/help.c:374,1
    - Dst: cmdnames_release
      Src: /src/git/help.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 362
    functionDepth: 5
    functionLinenumber: 362
    functionLinenumberEnd: 376
    functionName: list_all_main_cmds
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - memset
    - cmdnames_release
    - string_list_append
    - load_command_list
    linkageType: ''
    returnType: void
    signature: void list_all_main_cmds(struct string_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/help.c:383,1
    - Dst: memset
      Src: /src/git/help.c:384,1
    - Dst: load_command_list
      Src: /src/git/help.c:385,1
    - Dst: string_list_append
      Src: /src/git/help.c:388,1
    - Dst: cmdnames_release
      Src: /src/git/help.c:390,1
    - Dst: cmdnames_release
      Src: /src/git/help.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 378
    functionDepth: 5
    functionLinenumber: 378
    functionLinenumberEnd: 392
    functionName: list_all_other_cmds
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - memset
    - cmdnames_release
    - string_list_append
    - load_command_list
    linkageType: ''
    returnType: void
    signature: void list_all_other_cmds(struct string_list *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/help.c:397,1
    - Dst: strcmp
      Src: /src/git/help.c:401,1
    - Dst: die
      Src: /src/git/help.c:407,1
    - Dst: _
      Src: /src/git/help.c:407,1
    - Dst: string_list_append
      Src: /src/git/help.c:414,1
    - Dst: drop_prefix
      Src: /src/git/help.c:414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - list
    - cat
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 416
    functionName: list_cmds_by_category
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - die
    - drop_prefix
    - strcmp
    - string_list_append
    - _
    linkageType: ''
    returnType: void
    signature: "void list_cmds_by_category(struct string_list *list,\n\t\t\t   const
      char *cat)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_tmp
      Src: /src/git/help.c:422,1
    - Dst: string_list_sort_u
      Src: /src/git/help.c:425,1
    - Dst: strchrnul
      Src: /src/git/help.c:429,1
    - Dst: strbuf_add
      Src: /src/git/help.c:431,1
    - Dst: string_list_remove
      Src: /src/git/help.c:433,1
    - Dst: string_list_insert
      Src: /src/git/help.c:435,1
    - Dst: strbuf_release
      Src: /src/git/help.c:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 441
    functionName: list_cmds_by_config
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - repo_config_get_string_tmp
    - string_list_insert
    - string_list_remove
    - strchrnul
    - string_list_sort_u
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void list_cmds_by_config(struct string_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/help.c:446,1
    - Dst: print_cmd_by_category
      Src: /src/git/help.c:449,1
    - Dst: putchar
      Src: /src/git/help.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 443
    functionDepth: 4
    functionLinenumber: 443
    functionLinenumberEnd: 451
    functionName: list_guides_help
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - N_
    - putchar
    - print_cmd_by_category
    linkageType: ''
    returnType: void
    signature: void list_guides_help(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/help.c:456,1
    - Dst: print_cmd_by_category
      Src: /src/git/help.c:459,1
    - Dst: putchar
      Src: /src/git/help.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 461
    functionName: list_user_interfaces_help
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - N_
    - putchar
    - print_cmd_by_category
    linkageType: ''
    returnType: void
    signature: void list_user_interfaces_help(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/help.c:466,1
    - Dst: print_cmd_by_category
      Src: /src/git/help.c:469,1
    - Dst: putchar
      Src: /src/git/help.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 471
    functionName: list_developer_interfaces_help
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - N_
    - putchar
    - print_cmd_by_category
    linkageType: ''
    returnType: void
    signature: void list_developer_interfaces_help(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_all_other_cmds
      Src: /src/git/help.c:478,1
    - Dst: printf
      Src: /src/git/help.c:480,1
    - Dst: _
      Src: /src/git/help.c:480,1
    - Dst: printf
      Src: /src/git/help.c:482,1
    - Dst: string_list_clear
      Src: /src/git/help.c:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 473
    functionDepth: 6
    functionLinenumber: 473
    functionLinenumberEnd: 484
    functionName: list_all_cmds_help_external_commands
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - printf
    - _
    - list_all_other_cmds
    linkageType: ''
    returnType: void
    signature: void list_all_cmds_help_external_commands(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_aliases
      Src: /src/git/help.c:492,1
    - Dst: string_list_sort
      Src: /src/git/help.c:493,1
    - Dst: utf8_strwidth
      Src: /src/git/help.c:496,1
    - Dst: printf
      Src: /src/git/help.c:502,1
    - Dst: _
      Src: /src/git/help.c:502,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/help.c:503,1
    - Dst: print_command_list
      Src: /src/git/help.c:510,1
    - Dst: free
      Src: /src/git/help.c:511,1
    - Dst: string_list_clear
      Src: /src/git/help.c:513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - longest
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 514
    functionName: list_all_cmds_help_aliases
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_sort
    - ALLOC_ARRAY
    - utf8_strwidth
    - _
    - free
    - list_aliases
    - printf
    - print_command_list
    linkageType: ''
    returnType: void
    signature: void list_all_cmds_help_aliases(int longest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/git/help.c:520,1
    - Dst: _
      Src: /src/git/help.c:520,1
    - Dst: putchar
      Src: /src/git/help.c:521,1
    - Dst: print_cmd_by_category
      Src: /src/git/help.c:522,1
    - Dst: list_all_cmds_help_external_commands
      Src: /src/git/help.c:525,1
    - Dst: list_all_cmds_help_aliases
      Src: /src/git/help.c:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - show_external_commands
    - show_aliases
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 516
    functionDepth: 7
    functionLinenumber: 516
    functionLinenumberEnd: 528
    functionName: list_all_cmds_help
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - putchar
    - puts
    - list_all_cmds_help_aliases
    - list_all_cmds_help_external_commands
    - _
    - print_cmd_by_category
    linkageType: ''
    returnType: void
    signature: void list_all_cmds_help(int show_external_commands, int show_aliases)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/help.c:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct cmdnames*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 537
    functionName: is_in_cmdlist
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_in_cmdlist(struct cmdnames *c, const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool_text
      Src: /src/git/help.c:551,1
    - Dst: strcmp
      Src: /src/git/help.c:560,1
    - Dst: strcmp
      Src: /src/git/help.c:562,1
    - Dst: strcmp
      Src: /src/git/help.c:564,1
    - Dst: strcmp
      Src: /src/git/help.c:566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 570
    functionName: parse_autocorrect
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - strcmp
    - git_parse_maybe_bool_text
    linkageType: ''
    returnType: int
    signature: int parse_autocorrect(const char *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/help.c:580,1
    - Dst: parse_autocorrect
      Src: /src/git/help.c:581,1
    - Dst: git_config_int
      Src: /src/git/help.c:584,1
    - Dst: parse_config_key
      Src: /src/git/help.c:593,1
    - Dst: strlen
      Src: /src/git/help.c:595,1
    - Dst: strcmp
      Src: /src/git/help.c:599,1
    - Dst: add_cmdname
      Src: /src/git/help.c:600,1
    - Dst: strlen
      Src: /src/git/help.c:603,1
    - Dst: strlen
      Src: /src/git/help.c:604,1
    - Dst: add_cmdname
      Src: /src/git/help.c:605,1
    - Dst: add_cmdname
      Src: /src/git/help.c:609,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 614
    functionName: git_unknown_cmd_config
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - parse_config_key
    - parse_autocorrect
    - strlen
    - strcmp
    - add_cmdname
    linkageType: ''
    returnType: int
    signature: "int git_unknown_cmd_config(const char *var, const char *value,\n\t\t\t\t
      \ const struct config_context *ctx,\n\t\t\t\t  void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/help.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 623
    functionName: levenshtein_compare
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int levenshtein_compare(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/help.c:628,1
    - Dst: FREE_AND_NULL
      Src: /src/git/help.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cmds
    - old
    argTypes:
    - struct cmdnames*
    - struct cmdnames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 634
    functionName: add_cmd_list
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void add_cmd_list(struct cmdnames *cmds, struct cmdnames *old)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 639
    functionName: SIMILAR_ENOUGH
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMILAR_ENOUGH(x)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: read_early_config
      Src: /src/git/help.c:652,1
    - Dst: isatty
      Src: /src/git/help.c:657,1
    - Dst: isatty
      Src: /src/git/help.c:657,1
    - Dst: fprintf_ln
      Src: /src/git/help.c:661,1
    - Dst: _
      Src: /src/git/help.c:661,1
    - Dst: exit
      Src: /src/git/help.c:662,1
    - Dst: load_command_list
      Src: /src/git/help.c:665,1
    - Dst: add_cmd_list
      Src: /src/git/help.c:667,1
    - Dst: add_cmd_list
      Src: /src/git/help.c:668,1
    - Dst: QSORT
      Src: /src/git/help.c:669,1
    - Dst: uniq
      Src: /src/git/help.c:670,1
    - Dst: extract_cmds
      Src: /src/git/help.c:672,1
    - Dst: strcmp
      Src: /src/git/help.c:684,1
    - Dst: die
      Src: /src/git/help.c:685,1
    - Dst: _
      Src: /src/git/help.c:685,1
    - Dst: strcmp
      Src: /src/git/help.c:689,1
    - Dst: starts_with
      Src: /src/git/help.c:694,1
    - Dst: levenshtein
      Src: /src/git/help.c:702,1
    - Dst: FREE_AND_NULL
      Src: /src/git/help.c:704,1
    - Dst: QSORT
      Src: /src/git/help.c:706,1
    - Dst: die
      Src: /src/git/help.c:709,1
    - Dst: _
      Src: /src/git/help.c:709,1
    - Dst: SIMILAR_ENOUGH
      Src: /src/git/help.c:727,1
    - Dst: xstrdup
      Src: /src/git/help.c:728,1
    - Dst: fprintf_ln
      Src: /src/git/help.c:730,1
    - Dst: _
      Src: /src/git/help.c:731,1
    - Dst: fprintf_ln
      Src: /src/git/help.c:735,1
    - Dst: _
      Src: /src/git/help.c:736,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:742,1
    - Dst: _
      Src: /src/git/help.c:742,1
    - Dst: git_prompt
      Src: /src/git/help.c:743,1
    - Dst: strbuf_release
      Src: /src/git/help.c:744,1
    - Dst: starts_with
      Src: /src/git/help.c:745,1
    - Dst: starts_with
      Src: /src/git/help.c:746,1
    - Dst: exit
      Src: /src/git/help.c:747,1
    - Dst: fprintf_ln
      Src: /src/git/help.c:749,1
    - Dst: _
      Src: /src/git/help.c:750,1
    - Dst: sleep_millisec
      Src: /src/git/help.c:753,1
    - Dst: cmdnames_release
      Src: /src/git/help.c:756,1
    - Dst: cmdnames_release
      Src: /src/git/help.c:757,1
    - Dst: cmdnames_release
      Src: /src/git/help.c:758,1
    - Dst: fprintf_ln
      Src: /src/git/help.c:762,1
    - Dst: _
      Src: /src/git/help.c:762,1
    - Dst: SIMILAR_ENOUGH
      Src: /src/git/help.c:764,1
    - Dst: fprintf_ln
      Src: /src/git/help.c:765,1
    - Dst: Q_
      Src: /src/git/help.c:766,1
    - Dst: fprintf
      Src: /src/git/help.c:771,1
    - Dst: exit
      Src: /src/git/help.c:774,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 66
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 644
    functionDepth: 9
    functionLinenumber: 644
    functionLinenumberEnd: 775
    functionName: help_unknown_cmd
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strcmp
    - strbuf_release
    - die
    - sleep_millisec
    - QSORT
    - levenshtein
    - SIMILAR_ENOUGH
    - Q_
    - isatty
    - extract_cmds
    - fprintf_ln
    - add_cmd_list
    - git_prompt
    - _
    - FREE_AND_NULL
    - xstrdup
    - exit
    - starts_with
    - read_early_config
    - uniq
    - cmdnames_release
    - fprintf
    - load_command_list
    linkageType: ''
    returnType: char
    signature: char *help_unknown_cmd(const char *cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/help.c:785,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:788,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:790,1
    - Dst: strbuf_addstr
      Src: /src/git/help.c:793,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:794,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:795,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:796,1
    - Dst: strbuf_addstr
      Src: /src/git/help.c:800,1
    - Dst: strbuf_addstr
      Src: /src/git/help.c:802,1
    - Dst: fsmonitor_ipc__is_supported
      Src: /src/git/help.c:805,1
    - Dst: strbuf_addstr
      Src: /src/git/help.c:806,1
    - Dst: strbuf_addstr
      Src: /src/git/help.c:808,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:811,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:814,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:817,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:819,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:821,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:823,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:826,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:827,1
    - Dst: ref_storage_format_to_name
      Src: /src/git/help.c:828,1
    - Dst: strbuf_addf
      Src: /src/git/help.c:829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - show_build_options
    argTypes:
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 831
    functionName: get_version_info
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - ref_storage_format_to_name
    - strbuf_addstr
    - fsmonitor_ipc__is_supported
    linkageType: ''
    returnType: void
    signature: void get_version_info(struct strbuf *buf, int show_build_options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/help.c:838,1
    - Dst: OPT_BOOL
      Src: /src/git/help.c:842,1
    - Dst: OPT_END
      Src: /src/git/help.c:844,1
    - Dst: parse_options
      Src: /src/git/help.c:847,1
    - Dst: get_version_info
      Src: /src/git/help.c:849,1
    - Dst: printf
      Src: /src/git/help.c:850,1
    - Dst: strbuf_release
      Src: /src/git/help.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repository
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 855
    functionName: cmd_version
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - strbuf_release
    - OPT_BOOL
    - get_version_info
    - N_
    - printf
    linkageType: ''
    returnType: int
    signature: int cmd_version(int argc, const char **argv, const char *prefix, struct
      repository *repository UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/help.c:865,1
    - Dst: starts_with
      Src: /src/git/help.c:868,1
    - Dst: strcmp
      Src: /src/git/help.c:869,1
    - Dst: string_list_append_nodup
      Src: /src/git/help.c:870,1
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/help.c:871,1
    - Dst: get_main_ref_store
      Src: /src/git/help.c:871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 873
    functionName: append_similar_ref
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - string_list_append_nodup
    - strrchr
    - refs_shorten_unambiguous_ref
    - starts_with
    - strcmp
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int append_similar_ref(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_ref
      Src: /src/git/help.c:882,1
    - Dst: get_main_ref_store
      Src: /src/git/help.c:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ref
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 875
    functionDepth: 4
    functionLinenumber: 875
    functionLinenumberEnd: 885
    functionName: guess_refs
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref
    - get_main_ref_store
    linkageType: ''
    returnType: struct string_list
    signature: struct string_list guess_refs(const char *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guess_refs
      Src: /src/git/help.c:891,1
    - Dst: fprintf_ln
      Src: /src/git/help.c:893,1
    - Dst: _
      Src: /src/git/help.c:893,1
    - Dst: fprintf_ln
      Src: /src/git/help.c:896,1
    - Dst: Q_
      Src: /src/git/help.c:897,1
    - Dst: fprintf
      Src: /src/git/help.c:901,1
    - Dst: string_list_clear
      Src: /src/git/help.c:904,1
    - Dst: exit
      Src: /src/git/help.c:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ref
    - cmd
    - error
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 887
    functionDepth: 5
    functionLinenumber: 887
    functionLinenumberEnd: 906
    functionName: help_unknown_ref
    functionSourceFile: /src/git/help.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - fprintf_ln
    - exit
    - guess_refs
    - _
    - Q_
    - fprintf
    linkageType: ''
    returnType: NORETURN
    signature: "NORETURN help_unknown_ref(const char *ref, const char *cmd,\n\t\t\t
      \      const char *error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: read_gitfile
    functionSourceFile: /src/git/setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_gitfile(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: resolve_gitdir
    functionSourceFile: /src/git/setup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: resolve_gitdir(path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: discover_git_directory_reason
      Src: /src/git/setup.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - commondir
    - gitdir
    argTypes:
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: discover_git_directory
    functionSourceFile: /src/git/setup.h
    functionUses: 0
    functionsReached:
    - discover_git_directory_reason
    linkageType: ''
    returnType: int
    signature: "int discover_git_directory(struct strbuf *commondir,\n\t\t\t\t\t struct
      strbuf *gitdir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/cache-tree.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: cache_tree
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 2
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct cache_tree
    signature: struct cache_tree *cache_tree(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree_free
      Src: /src/git/cache-tree.c:41,1
    - Dst: free
      Src: /src/git/cache-tree.c:42,1
    - Dst: free
      Src: /src/git/cache-tree.c:44,1
    - Dst: free
      Src: /src/git/cache-tree.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - it_p
    argTypes:
    - struct cache_tree**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: cache_tree_free
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 3
    functionsReached:
    - cache_tree_free
    - free
    linkageType: ''
    returnType: void
    signature: void cache_tree_free(struct cache_tree **it_p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/cache-tree.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - one
    - onelen
    - two
    - twolen
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: subtree_name_cmp
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int subtree_name_cmp(const char *one, int onelen,\n\t\t\t    const
      char *two, int twolen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: subtree_name_cmp
      Src: /src/git/cache-tree.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - it
    - path
    - pathlen
    argTypes:
    - struct cache_tree*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: cache_tree_subtree_pos
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - subtree_name_cmp
    linkageType: ''
    returnType: int
    signature: int cache_tree_subtree_pos(struct cache_tree *it, const char *path,
      int pathlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree_subtree_pos
      Src: /src/git/cache-tree.c:86,1
    - Dst: ALLOC_GROW
      Src: /src/git/cache-tree.c:93,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/cache-tree.c:96,1
    - Dst: MOVE_ARRAY
      Src: /src/git/cache-tree.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - it
    - path
    - pathlen
    - create
    argTypes:
    - struct cache_tree*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: find_subtree
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - FLEX_ALLOC_MEM
    - cache_tree_subtree_pos
    - ALLOC_GROW
    - MOVE_ARRAY
    linkageType: ''
    returnType: struct cache_tree_sub
    signature: "struct cache_tree_sub *find_subtree(struct cache_tree *it,\n\t\t\t\t\t
      \  const char *path,\n\t\t\t\t\t   int pathlen,\n\t\t\t\t\t   int create)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/cache-tree.c:109,1
    - Dst: find_subtree
      Src: /src/git/cache-tree.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - path
    argTypes:
    - struct cache_tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: cache_tree_sub
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - strlen
    - find_subtree
    linkageType: ''
    returnType: struct cache_tree_sub
    signature: struct cache_tree_sub *cache_tree_sub(struct cache_tree *it, const
      char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/cache-tree.c:127,1
    - Dst: strchrnul
      Src: /src/git/cache-tree.c:132,1
    - Dst: cache_tree_subtree_pos
      Src: /src/git/cache-tree.c:137,1
    - Dst: cache_tree_free
      Src: /src/git/cache-tree.c:139,1
    - Dst: free
      Src: /src/git/cache-tree.c:140,1
    - Dst: MOVE_ARRAY
      Src: /src/git/cache-tree.c:147,1
    - Dst: find_subtree
      Src: /src/git/cache-tree.c:153,1
    - Dst: do_invalidate_path
      Src: /src/git/cache-tree.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - it
    - path
    argTypes:
    - struct cache_tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 157
    functionName: do_invalidate_path
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - MOVE_ARRAY
    - find_subtree
    - do_invalidate_path
    - strchrnul
    - cache_tree_free
    - free
    - cache_tree_subtree_pos
    - fprintf
    linkageType: ''
    returnType: int
    signature: int do_invalidate_path(struct cache_tree *it, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_invalidate_path
      Src: /src/git/cache-tree.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: cache_tree_invalidate_path
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 6
    functionsReached:
    - do_invalidate_path
    linkageType: ''
    returnType: void
    signature: void cache_tree_invalidate_path(struct index_state *istate, const char
      *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ce_stage
      Src: /src/git/cache-tree.c:174,1
    - Dst: fprintf
      Src: /src/git/cache-tree.c:178,1
    - Dst: fprintf
      Src: /src/git/cache-tree.c:181,1
    - Dst: oid_to_hex
      Src: /src/git/cache-tree.c:182,1
    - Dst: ce_namelen
      Src: /src/git/cache-tree.c:202,1
    - Dst: ce_namelen
      Src: /src/git/cache-tree.c:203,1
    - Dst: strncmp
      Src: /src/git/cache-tree.c:205,1
    - Dst: fprintf
      Src: /src/git/cache-tree.c:207,1
    - Dst: fprintf
      Src: /src/git/cache-tree.c:210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - istate
    - flags
    argTypes:
    - struct index_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 217
    functionName: verify_cache
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - ce_namelen
    - ce_stage
    - strncmp
    - fprintf
    linkageType: ''
    returnType: int
    signature: int verify_cache(struct index_state *istate, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree_free
      Src: /src/git/cache-tree.c:229,1
    - Dst: free
      Src: /src/git/cache-tree.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct cache_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 234
    functionName: discard_unused_subtrees
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - cache_tree_free
    - free
    linkageType: ''
    returnType: void
    signature: void discard_unused_subtrees(struct cache_tree *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/cache-tree.c:242,1
    - Dst: cache_tree_fully_valid
      Src: /src/git/cache-tree.c:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct cache_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: cache_tree_fully_valid
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - odb_has_object
    - cache_tree_fully_valid
    linkageType: ''
    returnType: int
    signature: int cache_tree_fully_valid(struct cache_tree *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_has_promisor_remote
      Src: /src/git/cache-tree.c:254,1
    - Dst: ce_skip_worktree
      Src: /src/git/cache-tree.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ce
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: must_check_existence
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - repo_has_promisor_remote
    - ce_skip_worktree
    linkageType: ''
    returnType: int
    signature: int must_check_existence(const struct cache_entry *ce)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/cache-tree.c:272,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/cache-tree.c:285,1
    - Dst: strncmp
      Src: /src/git/cache-tree.c:287,1
    - Dst: oidcpy
      Src: /src/git/cache-tree.c:289,1
    - Dst: odb_has_object
      Src: /src/git/cache-tree.c:295,1
    - Dst: ce_namelen
      Src: /src/git/cache-tree.c:318,1
    - Dst: memcmp
      Src: /src/git/cache-tree.c:319,1
    - Dst: strchr
      Src: /src/git/cache-tree.c:322,1
    - Dst: find_subtree
      Src: /src/git/cache-tree.c:333,1
    - Dst: cache_tree
      Src: /src/git/cache-tree.c:335,1
    - Dst: update_one
      Src: /src/git/cache-tree.c:336,1
    - Dst: die
      Src: /src/git/cache-tree.c:345,1
    - Dst: discard_unused_subtrees
      Src: /src/git/cache-tree.c:352,1
    - Dst: strbuf_init
      Src: /src/git/cache-tree.c:357,1
    - Dst: ce_namelen
      Src: /src/git/cache-tree.c:372,1
    - Dst: memcmp
      Src: /src/git/cache-tree.c:373,1
    - Dst: strchr
      Src: /src/git/cache-tree.c:376,1
    - Dst: find_subtree
      Src: /src/git/cache-tree.c:379,1
    - Dst: die
      Src: /src/git/cache-tree.c:381,1
    - Dst: must_check_existence
      Src: /src/git/cache-tree.c:400,1
    - Dst: is_null_oid
      Src: /src/git/cache-tree.c:401,1
    - Dst: odb_has_object
      Src: /src/git/cache-tree.c:403,1
    - Dst: strbuf_release
      Src: /src/git/cache-tree.c:405,1
    - Dst: error
      Src: /src/git/cache-tree.c:408,1
    - Dst: oid_to_hex
      Src: /src/git/cache-tree.c:409,1
    - Dst: ce_intent_to_add
      Src: /src/git/cache-tree.c:427,1
    - Dst: is_empty_tree_oid
      Src: /src/git/cache-tree.c:435,1
    - Dst: strbuf_grow
      Src: /src/git/cache-tree.c:438,1
    - Dst: strbuf_addf
      Src: /src/git/cache-tree.c:439,1
    - Dst: strbuf_add
      Src: /src/git/cache-tree.c:440,1
    - Dst: fprintf
      Src: /src/git/cache-tree.c:443,1
    - Dst: hash_object_file
      Src: /src/git/cache-tree.c:450,1
    - Dst: odb_has_object
      Src: /src/git/cache-tree.c:452,1
    - Dst: oidcpy
      Src: /src/git/cache-tree.c:453,1
    - Dst: hash_object_file
      Src: /src/git/cache-tree.c:457,1
    - Dst: odb_write_object_ext
      Src: /src/git/cache-tree.c:459,1
    - Dst: strbuf_release
      Src: /src/git/cache-tree.c:461,1
    - Dst: strbuf_release
      Src: /src/git/cache-tree.c:465,1
    - Dst: fprintf
      Src: /src/git/cache-tree.c:468,1
    - Dst: oid_to_hex
      Src: /src/git/cache-tree.c:470,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 106
    argCount: 7
    argNames:
    - it
    - cache
    - entries
    - base
    - baselen
    - skip_count
    - flags
    argTypes:
    - struct cache_tree*
    - struct cache_entry**
    - int
    - char*
    - int
    - int*
    - int
    assertStmts:
    - condition: (!(dryrun && repair))
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/git/cache-tree.c
    constantsTouched: []
    func_position:
      end: 473
      start: 257
    functionDepth: 4
    functionLinenumber: 257
    functionLinenumberEnd: 473
    functionName: update_one
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - hash_object_file
    - oidcpy
    - strbuf_addf
    - strchr
    - is_null_oid
    - error
    - strbuf_release
    - die
    - ce_intent_to_add
    - cache_tree
    - S_ISSPARSEDIR
    - odb_has_object
    - strncmp
    - update_one
    - strbuf_init
    - oid_to_hex
    - strbuf_grow
    - strbuf_add
    - assert
    - ce_namelen
    - discard_unused_subtrees
    - must_check_existence
    - odb_write_object_ext
    - is_empty_tree_oid
    - find_subtree
    - fprintf
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int update_one(struct cache_tree *it,\n\t\t      struct cache_entry
      **cache,\n\t\t      int entries,\n\t\t      const char *base,\n\t\t      int
      baselen,\n\t\t      int *skip_count,\n\t\t      int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: verify_cache
      Src: /src/git/cache-tree.c:480,1
    - Dst: cache_tree
      Src: /src/git/cache-tree.c:486,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/cache-tree.c:488,1
    - Dst: prefetch_cache_entries
      Src: /src/git/cache-tree.c:489,1
    - Dst: trace_performance_enter
      Src: /src/git/cache-tree.c:491,1
    - Dst: trace2_region_enter
      Src: /src/git/cache-tree.c:492,1
    - Dst: odb_transaction_begin
      Src: /src/git/cache-tree.c:493,1
    - Dst: update_one
      Src: /src/git/cache-tree.c:494,1
    - Dst: odb_transaction_commit
      Src: /src/git/cache-tree.c:496,1
    - Dst: trace2_region_leave
      Src: /src/git/cache-tree.c:497,1
    - Dst: trace_performance_leave
      Src: /src/git/cache-tree.c:498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - istate
    - flags
    argTypes:
    - struct index_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 475
    functionDepth: 4
    functionLinenumber: 475
    functionLinenumberEnd: 503
    functionName: cache_tree_update
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - verify_cache
    - repo_has_promisor_remote
    - trace_performance_leave
    - odb_transaction_commit
    - cache_tree
    - trace2_region_leave
    - trace2_region_enter
    - prefetch_cache_entries
    - odb_transaction_begin
    - update_one
    - trace_performance_enter
    linkageType: ''
    returnType: int
    signature: int cache_tree_update(struct index_state *istate, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/cache-tree.c:516,1
    - Dst: strbuf_add
      Src: /src/git/cache-tree.c:517,1
    - Dst: strbuf_addf
      Src: /src/git/cache-tree.c:518,1
    - Dst: fprintf
      Src: /src/git/cache-tree.c:522,1
    - Dst: oid_to_hex
      Src: /src/git/cache-tree.c:524,1
    - Dst: fprintf
      Src: /src/git/cache-tree.c:526,1
    - Dst: strbuf_add
      Src: /src/git/cache-tree.c:531,1
    - Dst: subtree_name_cmp
      Src: /src/git/cache-tree.c:537,1
    - Dst: die
      Src: /src/git/cache-tree.c:539,1
    - Dst: write_one
      Src: /src/git/cache-tree.c:541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - buffer
    - it
    - path
    - pathlen
    argTypes:
    - struct strbuf*
    - struct cache_tree*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 543
    functionName: write_one
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - write_one
    - oid_to_hex
    - subtree_name_cmp
    - die
    - strbuf_addf
    - strbuf_grow
    - fprintf
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void write_one(struct strbuf *buffer, struct cache_tree *it,\n\t\t
      \     const char *path, int pathlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/cache-tree.c:547,1
    - Dst: write_one
      Src: /src/git/cache-tree.c:548,1
    - Dst: trace2_region_leave
      Src: /src/git/cache-tree.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sb
    - root
    argTypes:
    - struct strbuf*
    - struct cache_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: cache_tree_write
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - write_one
    - trace2_region_leave
    - trace2_region_enter
    linkageType: ''
    returnType: void
    signature: void cache_tree_write(struct strbuf *sb, struct cache_tree *root)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/git/cache-tree.c:566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ptr
    - len_p
    - out
    argTypes:
    - char**
    - unsigned long*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 581
    functionName: parse_int
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: int parse_int(const char **ptr, unsigned long *len_p, int *out)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree
      Src: /src/git/cache-tree.c:600,1
    - Dst: parse_int
      Src: /src/git/cache-tree.c:602,1
    - Dst: parse_int
      Src: /src/git/cache-tree.c:607,1
    - Dst: oidread
      Src: /src/git/cache-tree.c:615,1
    - Dst: fprintf
      Src: /src/git/cache-tree.c:623,1
    - Dst: oid_to_hex
      Src: /src/git/cache-tree.c:625,1
    - Dst: fprintf
      Src: /src/git/cache-tree.c:627,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/cache-tree.c:637,1
    - Dst: read_one
      Src: /src/git/cache-tree.c:644,1
    - Dst: cache_tree_sub
      Src: /src/git/cache-tree.c:647,1
    - Dst: die
      Src: /src/git/cache-tree.c:651,1
    - Dst: cache_tree_free
      Src: /src/git/cache-tree.c:657,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 2
    argNames:
    - buffer
    - size_p
    argTypes:
    - char**
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 583
    functionDepth: 4
    functionLinenumber: 583
    functionLinenumberEnd: 659
    functionName: read_one
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - cache_tree_sub
    - oid_to_hex
    - die
    - read_one
    - cache_tree
    - cache_tree_free
    - parse_int
    - CALLOC_ARRAY
    - fprintf
    - oidread
    linkageType: ''
    returnType: struct cache_tree
    signature: struct cache_tree *read_one(const char **buffer, unsigned long *size_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/cache-tree.c:668,1
    - Dst: read_one
      Src: /src/git/cache-tree.c:669,1
    - Dst: trace2_region_leave
      Src: /src/git/cache-tree.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 661
    functionDepth: 5
    functionLinenumber: 661
    functionLinenumberEnd: 673
    functionName: cache_tree_read
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - trace2_region_leave
    - trace2_region_enter
    - read_one
    linkageType: ''
    returnType: struct cache_tree
    signature: struct cache_tree *cache_tree_read(const char *buffer, unsigned long
      size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/cache-tree.c:683,1
    - Dst: find_subtree
      Src: /src/git/cache-tree.c:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - it
    - path
    argTypes:
    - struct cache_tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 698
    functionName: cache_tree_find
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - strchrnul
    - find_subtree
    linkageType: ''
    returnType: struct cache_tree
    signature: struct cache_tree *cache_tree_find(struct cache_tree *it, const char
      *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree_free
      Src: /src/git/cache-tree.c:707,1
    - Dst: cache_tree_update
      Src: /src/git/cache-tree.c:711,1
    - Dst: cache_tree_find
      Src: /src/git/cache-tree.c:716,1
    - Dst: oidcpy
      Src: /src/git/cache-tree.c:719,1
    - Dst: oidcpy
      Src: /src/git/cache-tree.c:722,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - oid
    - index_state
    - cache_tree_valid
    - flags
    - prefix
    argTypes:
    - struct object_id*
    - struct index_state*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 700
    functionDepth: 5
    functionLinenumber: 700
    functionLinenumberEnd: 725
    functionName: write_index_as_tree_internal
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - cache_tree_find
    - cache_tree_update
    - cache_tree_free
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int write_index_as_tree_internal(struct object_id *oid,\n\t\t\t\t\tstruct
      index_state *index_state,\n\t\t\t\t\tint cache_tree_valid,\n\t\t\t\t\tint flags,\n\t\t\t\t\tconst
      char *prefix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree_fully_valid
      Src: /src/git/cache-tree.c:733,1
    - Dst: write_index_as_tree_internal
      Src: /src/git/cache-tree.c:735,1
    - Dst: bug
      Src: /src/git/cache-tree.c:738,1
    - Dst: ce_stage
      Src: /src/git/cache-tree.c:741,1
    - Dst: bug
      Src: /src/git/cache-tree.c:742,1
    - Dst: ce_stage
      Src: /src/git/cache-tree.c:742,1
    - Dst: ce_namelen
      Src: /src/git/cache-tree.c:743,1
    - Dst: BUG
      Src: /src/git/cache-tree.c:745,1
    - Dst: lookup_tree
      Src: /src/git/cache-tree.c:748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - repo
    - index_state
    argTypes:
    - struct repository*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 727
    functionDepth: 6
    functionLinenumber: 727
    functionLinenumberEnd: 749
    functionName: write_in_core_index_as_tree
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - cache_tree_fully_valid
    - ce_namelen
    - bug
    - write_index_as_tree_internal
    - lookup_tree
    - BUG
    - ce_stage
    linkageType: ''
    returnType: struct tree
    signature: "struct tree *write_in_core_index_as_tree(struct repository *repo,\n\t\t\t\t\t
      struct index_state *index_state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hold_lock_file_for_update
      Src: /src/git/cache-tree.c:758,1
    - Dst: read_index_from
      Src: /src/git/cache-tree.c:760,1
    - Dst: repo_get_git_dir
      Src: /src/git/cache-tree.c:761,1
    - Dst: cache_tree_fully_valid
      Src: /src/git/cache-tree.c:769,1
    - Dst: write_index_as_tree_internal
      Src: /src/git/cache-tree.c:771,1
    - Dst: write_locked_index
      Src: /src/git/cache-tree.c:774,1
    - Dst: rollback_lock_file
      Src: /src/git/cache-tree.c:784,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - oid
    - index_state
    - index_path
    - flags
    - prefix
    argTypes:
    - struct object_id*
    - struct index_state*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 752
    functionDepth: 13
    functionLinenumber: 752
    functionLinenumberEnd: 786
    functionName: write_index_as_tree
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - hold_lock_file_for_update
    - cache_tree_fully_valid
    - write_locked_index
    - rollback_lock_file
    - repo_get_git_dir
    - write_index_as_tree_internal
    - read_index_from
    linkageType: ''
    returnType: int
    signature: int write_index_as_tree(struct object_id *oid, struct index_state *index_state,
      const char *index_path, int flags, const char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/cache-tree.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - it
    - tree
    argTypes:
    - struct cache_tree*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 794
    functionName: prime_cache_tree_sparse_dir
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - oidcpy
    linkageType: ''
    returnType: void
    signature: "void prime_cache_tree_sparse_dir(struct cache_tree *it,\n\t\t\t\t\tstruct
      tree *tree)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/cache-tree.c:806,1
    - Dst: init_tree_desc
      Src: /src/git/cache-tree.c:808,1
    - Dst: tree_entry
      Src: /src/git/cache-tree.c:810,1
    - Dst: S_ISDIR
      Src: /src/git/cache-tree.c:811,1
    - Dst: lookup_tree
      Src: /src/git/cache-tree.c:815,1
    - Dst: repo_parse_tree
      Src: /src/git/cache-tree.c:817,1
    - Dst: exit
      Src: /src/git/cache-tree.c:818,1
    - Dst: cache_tree_sub
      Src: /src/git/cache-tree.c:819,1
    - Dst: cache_tree
      Src: /src/git/cache-tree.c:820,1
    - Dst: strbuf_setlen
      Src: /src/git/cache-tree.c:828,1
    - Dst: strbuf_add
      Src: /src/git/cache-tree.c:829,1
    - Dst: strbuf_addch
      Src: /src/git/cache-tree.c:830,1
    - Dst: index_entry_exists
      Src: /src/git/cache-tree.c:841,1
    - Dst: prime_cache_tree_sparse_dir
      Src: /src/git/cache-tree.c:842,1
    - Dst: prime_cache_tree_rec
      Src: /src/git/cache-tree.c:844,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - r
    - it
    - tree
    - tree_path
    argTypes:
    - struct repository*
    - struct cache_tree*
    - struct tree*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 796
    functionDepth: 4
    functionLinenumber: 796
    functionLinenumberEnd: 850
    functionName: prime_cache_tree_rec
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - prime_cache_tree_sparse_dir
    - tree_entry
    - oidcpy
    - prime_cache_tree_rec
    - cache_tree
    - exit
    - repo_parse_tree
    - strbuf_setlen
    - strbuf_addch
    - index_entry_exists
    - lookup_tree
    - cache_tree_sub
    - strbuf_add
    - init_tree_desc
    linkageType: ''
    returnType: void
    signature: "void prime_cache_tree_rec(struct repository *r,\n\t\t\t\t struct cache_tree
      *it,\n\t\t\t\t struct tree *tree,\n\t\t\t\t struct strbuf *tree_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/cache-tree.c:858,1
    - Dst: cache_tree_free
      Src: /src/git/cache-tree.c:859,1
    - Dst: cache_tree
      Src: /src/git/cache-tree.c:860,1
    - Dst: prime_cache_tree_rec
      Src: /src/git/cache-tree.c:862,1
    - Dst: strbuf_release
      Src: /src/git/cache-tree.c:863,1
    - Dst: trace2_region_leave
      Src: /src/git/cache-tree.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - r
    - istate
    - tree
    argTypes:
    - struct repository*
    - struct index_state*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 852
    functionDepth: 5
    functionLinenumber: 852
    functionLinenumberEnd: 866
    functionName: prime_cache_tree
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - prime_cache_tree_rec
    - cache_tree
    - trace2_region_leave
    - trace2_region_enter
    - cache_tree_free
    linkageType: ''
    returnType: void
    signature: "void prime_cache_tree(struct repository *r,\n\t\t      struct index_state
      *istate,\n\t\t      struct tree *tree)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_cache_tree_from_traversal
      Src: /src/git/cache-tree.c:883,1
    - Dst: cache_tree_find
      Src: /src/git/cache-tree.c:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - root
    - info
    argTypes:
    - struct cache_tree*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 876
    functionDepth: 4
    functionLinenumber: 876
    functionLinenumberEnd: 885
    functionName: find_cache_tree_from_traversal
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - cache_tree_find
    - find_cache_tree_from_traversal
    linkageType: ''
    returnType: struct cache_tree
    signature: "struct cache_tree *find_cache_tree_from_traversal(struct cache_tree
      *root,\n\t\t\t\t\t\t\t struct traverse_info *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_cache_tree_from_traversal
      Src: /src/git/cache-tree.c:893,1
    - Dst: cache_tree_find
      Src: /src/git/cache-tree.c:894,1
    - Dst: oideq
      Src: /src/git/cache-tree.c:895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - root
    - ent
    - info
    argTypes:
    - struct cache_tree*
    - struct name_entry*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 887
    functionDepth: 5
    functionLinenumber: 887
    functionLinenumberEnd: 898
    functionName: cache_tree_matches_traversal
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - cache_tree_find
    - find_cache_tree_from_traversal
    - oideq
    linkageType: ''
    returnType: int
    signature: "int cache_tree_matches_traversal(struct cache_tree *root,\n\t\t\t\t
      struct name_entry *ent,\n\t\t\t\t struct traverse_info *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISSPARSEDIR
      Src: /src/git/cache-tree.c:905,1
    - Dst: error
      Src: /src/git/cache-tree.c:906,1
    - Dst: _
      Src: /src/git/cache-tree.c:906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - istate
    - path
    - pos
    argTypes:
    - struct index_state*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 909
    functionName: verify_one_sparse
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 0
    functionsReached:
    - error
    - S_ISSPARSEDIR
    - _
    linkageType: ''
    returnType: int
    signature: "int verify_one_sparse(struct index_state *istate,\n\t\t\t     struct
      strbuf *path,\n\t\t\t     int pos)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/cache-tree.c:930,1
    - Dst: verify_one
      Src: /src/git/cache-tree.c:931,1
    - Dst: strbuf_setlen
      Src: /src/git/cache-tree.c:935,1
    - Dst: lookup_replace_object
      Src: /src/git/cache-tree.c:940,1
    - Dst: index_name_pos
      Src: /src/git/cache-tree.c:952,1
    - Dst: verify_one_sparse
      Src: /src/git/cache-tree.c:959,1
    - Dst: error
      Src: /src/git/cache-tree.c:969,1
    - Dst: _
      Src: /src/git/cache-tree.c:969,1
    - Dst: error
      Src: /src/git/cache-tree.c:984,1
    - Dst: _
      Src: /src/git/cache-tree.c:984,1
    - Dst: strchr
      Src: /src/git/cache-tree.c:990,1
    - Dst: find_subtree
      Src: /src/git/cache-tree.c:994,1
    - Dst: error
      Src: /src/git/cache-tree.c:996,1
    - Dst: _
      Src: /src/git/cache-tree.c:996,1
    - Dst: ce_namelen
      Src: /src/git/cache-tree.c:1006,1
    - Dst: strbuf_addf
      Src: /src/git/cache-tree.c:1009,1
    - Dst: strbuf_add
      Src: /src/git/cache-tree.c:1010,1
    - Dst: hash_object_file
      Src: /src/git/cache-tree.c:1013,1
    - Dst: oideq
      Src: /src/git/cache-tree.c:1016,1
    - Dst: error
      Src: /src/git/cache-tree.c:1017,1
    - Dst: _
      Src: /src/git/cache-tree.c:1017,1
    - Dst: oid_to_hex
      Src: /src/git/cache-tree.c:1019,1
    - Dst: oid_to_hex
      Src: /src/git/cache-tree.c:1019,1
    - Dst: strbuf_setlen
      Src: /src/git/cache-tree.c:1025,1
    - Dst: strbuf_release
      Src: /src/git/cache-tree.c:1026,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - r
    - istate
    - it
    - path
    argTypes:
    - struct repository*
    - struct index_state*
    - struct cache_tree*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 919
    functionDepth: 4
    functionLinenumber: 919
    functionLinenumberEnd: 1028
    functionName: verify_one
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - error
    - index_name_pos
    - lookup_replace_object
    - oideq
    - verify_one
    - ce_namelen
    - hash_object_file
    - verify_one_sparse
    - oid_to_hex
    - strbuf_release
    - strbuf_addf
    - strbuf_setlen
    - strchr
    - _
    - find_subtree
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int verify_one(struct repository *r,\n\t\t      struct index_state
      *istate,\n\t\t      struct cache_tree *it,\n\t\t      struct strbuf *path)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: verify_one
      Src: /src/git/cache-tree.c:1040,1
    - Dst: strbuf_reset
      Src: /src/git/cache-tree.c:1044,1
    - Dst: verify_one
      Src: /src/git/cache-tree.c:1046,1
    - Dst: BUG
      Src: /src/git/cache-tree.c:1050,1
    - Dst: strbuf_release
      Src: /src/git/cache-tree.c:1056,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - r
    - istate
    argTypes:
    - struct repository*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1030
    functionDepth: 5
    functionLinenumber: 1030
    functionLinenumberEnd: 1058
    functionName: cache_tree_verify
    functionSourceFile: /src/git/cache-tree.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - strbuf_release
    - BUG
    - verify_one
    linkageType: ''
    returnType: int
    signature: int cache_tree_verify(struct repository *r, struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - node
    argTypes:
    - struct cb_tree*
    - struct cb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: cb_node_key
    functionSourceFile: /src/git/cbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *cb_node_key(struct cb_tree *t, struct cb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: cb_node_of
    functionSourceFile: /src/git/cbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct cb_node
    signature: struct cb_node *cb_node_of(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cb_node_of
      Src: /src/git/cbtree.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - k
    - klen
    argTypes:
    - struct cb_node*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: cb_internal_best_match
    functionSourceFile: /src/git/cbtree.c
    functionUses: 0
    functionsReached:
    - cb_node_of
    linkageType: ''
    returnType: struct cb_node
    signature: "struct cb_node *cb_internal_best_match(struct cb_node *p,\n\t\t\t\t\tconst
      uint8_t *k, size_t klen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/cbtree.c:43,1
    - Dst: cb_node_key
      Src: /src/git/cbtree.c:50,1
    - Dst: cb_internal_best_match
      Src: /src/git/cbtree.c:53,1
    - Dst: cb_node_key
      Src: /src/git/cbtree.c:54,1
    - Dst: cb_node_of
      Src: /src/git/cbtree.c:85,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - t
    - node
    - klen
    argTypes:
    - struct cb_tree*
    - struct cb_node*
    - size_t
    assertStmts:
    - condition: (!((uintptr_t)node & 1))
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/git/cbtree.c
    constantsTouched: []
    func_position:
      end: 99
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 99
    functionName: cb_insert
    functionSourceFile: /src/git/cbtree.c
    functionUses: 0
    functionsReached:
    - cb_internal_best_match
    - cb_node_key
    - assert
    - cb_node_of
    linkageType: ''
    returnType: struct cb_node
    signature: struct cb_node *cb_insert(struct cb_tree *t, struct cb_node *node,
      size_t klen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cb_internal_best_match
      Src: /src/git/cbtree.c:103,1
    - Dst: memcmp
      Src: /src/git/cbtree.c:105,1
    - Dst: cb_node_key
      Src: /src/git/cbtree.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - t
    - k
    - klen
    argTypes:
    - struct cb_tree*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: cb_lookup
    functionSourceFile: /src/git/cbtree.c
    functionUses: 0
    functionsReached:
    - cb_node_key
    - cb_internal_best_match
    - memcmp
    linkageType: ''
    returnType: struct cb_node
    signature: struct cb_node *cb_lookup(struct cb_tree *t, const uint8_t *k, size_t
      klen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cb_node_of
      Src: /src/git/cbtree.c:111,1
    - Dst: cb_descend
      Src: /src/git/cbtree.c:112,1
    - Dst: cb_descend
      Src: /src/git/cbtree.c:115,1
    - Dst: fn
      Src: /src/git/cbtree.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - p
    - fn
    - arg
    argTypes:
    - struct cb_node*
    - cb_iter
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: cb_descend
    functionSourceFile: /src/git/cbtree.c
    functionUses: 1
    functionsReached:
    - fn
    - cb_descend
    - cb_node_of
    linkageType: ''
    returnType: int
    signature: int cb_descend(struct cb_node *p, cb_iter fn, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cb_node_of
      Src: /src/git/cbtree.c:134,1
    - Dst: cb_node_key
      Src: /src/git/cbtree.c:143,1
    - Dst: cb_descend
      Src: /src/git/cbtree.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - t
    - kpfx
    - klen
    - fn
    - arg
    argTypes:
    - struct cb_tree*
    - uint8_t*
    - size_t
    - cb_iter
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 150
    functionName: cb_each
    functionSourceFile: /src/git/cbtree.c
    functionUses: 0
    functionsReached:
    - cb_node_key
    - cb_descend
    - cb_node_of
    linkageType: ''
    returnType: int
    signature: "int cb_each(struct cb_tree *t, const uint8_t *kpfx, size_t klen,\n\t
      \   cb_iter fn, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/add-patch.c:293,1
    - Dst: want_color
      Src: /src/git/add-patch.c:296,1
    - Dst: repo_config_get_value
      Src: /src/git/add-patch.c:298,1
    - Dst: color_parse
      Src: /src/git/add-patch.c:299,1
    - Dst: strlcpy
      Src: /src/git/add-patch.c:300,1
    - Dst: free
      Src: /src/git/add-patch.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - r
    - use_color
    - section_and_slot
    - dst
    - default_color
    argTypes:
    - struct repository*
    - enum git_colorbool
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 303
    functionName: init_color
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - repo_config_get_value
    - xstrfmt
    - color_parse
    - free
    - want_color
    - strlcpy
    linkageType: ''
    returnType: void
    signature: "void init_color(struct repository *r,\n\t\t       enum git_colorbool
      use_color,\n\t\t       const char *section_and_slot, char *dst,\n\t\t       const
      char *default_color)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_value
      Src: /src/git/add-patch.c:310,1
    - Dst: git_config_colorbool
      Src: /src/git/add-patch.c:313,1
    - Dst: repo_config_get_value
      Src: /src/git/add-patch.c:321,1
    - Dst: git_config_colorbool
      Src: /src/git/add-patch.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - r
    - var
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 325
    functionName: check_color_config
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - git_config_colorbool
    - repo_config_get_value
    linkageType: ''
    returnType: enum git_colorbool
    signature: enum git_colorbool check_color_config(struct repository *r, const char
      *var)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: check_color_config
      Src: /src/git/add-patch.c:335,1
    - Dst: init_color
      Src: /src/git/add-patch.c:337,1
    - Dst: init_color
      Src: /src/git/add-patch.c:339,1
    - Dst: init_color
      Src: /src/git/add-patch.c:341,1
    - Dst: init_color
      Src: /src/git/add-patch.c:343,1
    - Dst: strlcpy
      Src: /src/git/add-patch.c:345,1
    - Dst: want_color
      Src: /src/git/add-patch.c:346,1
    - Dst: check_color_config
      Src: /src/git/add-patch.c:348,1
    - Dst: init_color
      Src: /src/git/add-patch.c:350,1
    - Dst: diff_get_color
      Src: /src/git/add-patch.c:351,1
    - Dst: init_color
      Src: /src/git/add-patch.c:352,1
    - Dst: strcmp
      Src: /src/git/add-patch.c:354,1
    - Dst: init_color
      Src: /src/git/add-patch.c:355,1
    - Dst: diff_get_color
      Src: /src/git/add-patch.c:357,1
    - Dst: init_color
      Src: /src/git/add-patch.c:358,1
    - Dst: diff_get_color
      Src: /src/git/add-patch.c:359,1
    - Dst: init_color
      Src: /src/git/add-patch.c:360,1
    - Dst: diff_get_color
      Src: /src/git/add-patch.c:361,1
    - Dst: strlcpy
      Src: /src/git/add-patch.c:362,1
    - Dst: want_color
      Src: /src/git/add-patch.c:363,1
    - Dst: FREE_AND_NULL
      Src: /src/git/add-patch.c:365,1
    - Dst: repo_config_get_string
      Src: /src/git/add-patch.c:366,1
    - Dst: FREE_AND_NULL
      Src: /src/git/add-patch.c:369,1
    - Dst: repo_config_get_string
      Src: /src/git/add-patch.c:370,1
    - Dst: repo_config_get_int
      Src: /src/git/add-patch.c:373,1
    - Dst: die
      Src: /src/git/add-patch.c:375,1
    - Dst: _
      Src: /src/git/add-patch.c:375,1
    - Dst: repo_config_get_int
      Src: /src/git/add-patch.c:376,1
    - Dst: die
      Src: /src/git/add-patch.c:378,1
    - Dst: _
      Src: /src/git/add-patch.c:378,1
    - Dst: repo_config_get_bool
      Src: /src/git/add-patch.c:380,1
    - Dst: setbuf
      Src: /src/git/add-patch.c:382,1
    - Dst: die
      Src: /src/git/add-patch.c:386,1
    - Dst: _
      Src: /src/git/add-patch.c:386,1
    - Dst: die
      Src: /src/git/add-patch.c:391,1
    - Dst: _
      Src: /src/git/add-patch.c:391,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - cfg
    - r
    - opts
    argTypes:
    - struct interactive_config*
    - struct repository*
    - struct interactive_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 394
    functionName: interactive_config_init
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - die
    - init_color
    - check_color_config
    - _
    - repo_config_get_string
    - repo_config_get_bool
    - diff_get_color
    - strcmp
    - setbuf
    - FREE_AND_NULL
    - want_color
    - strlcpy
    linkageType: ''
    returnType: void
    signature: "void interactive_config_init(struct interactive_config *cfg,\n\t\t\t
      \    struct repository *r,\n\t\t\t     struct interactive_options *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/add-patch.c:398,1
    - Dst: FREE_AND_NULL
      Src: /src/git/add-patch.c:399,1
    - Dst: memset
      Src: /src/git/add-patch.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct interactive_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: interactive_config_clear
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - memset
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void interactive_config_clear(struct interactive_config *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/add-patch.c:409,1
    - Dst: strbuf_release
      Src: /src/git/add-patch.c:410,1
    - Dst: strbuf_release
      Src: /src/git/add-patch.c:411,1
    - Dst: strbuf_release
      Src: /src/git/add-patch.c:412,1
    - Dst: free
      Src: /src/git/add-patch.c:414,1
    - Dst: free
      Src: /src/git/add-patch.c:415,1
    - Dst: interactive_config_clear
      Src: /src/git/add-patch.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct add_p_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 417
    functionName: add_p_state_clear
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - interactive_config_clear
    - free
    linkageType: ''
    returnType: void
    signature: void add_p_state_clear(struct add_p_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/add-patch.c:419,1
    - Dst: va_start
      Src: /src/git/add-patch.c:424,1
    - Dst: fputs
      Src: /src/git/add-patch.c:425,1
    - Dst: vprintf
      Src: /src/git/add-patch.c:426,1
    - Dst: puts
      Src: /src/git/add-patch.c:427,1
    - Dst: va_end
      Src: /src/git/add-patch.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - fmt
    argTypes:
    - struct add_p_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 429
    functionName: err
    functionSourceFile: /src/git/add-patch.c
    functionUses: 5
    functionsReached:
    - fputs
    - puts
    - va_end
    - vprintf
    - va_start
    - format
    linkageType: ''
    returnType: void
    signature: void err(struct add_p_state *s, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/add-patch.c:438,1
    - Dst: va_arg
      Src: /src/git/add-patch.c:439,1
    - Dst: strvec_push
      Src: /src/git/add-patch.c:440,1
    - Dst: va_end
      Src: /src/git/add-patch.c:441,1
    - Dst: strvec_pushf
      Src: /src/git/add-patch.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - cp
    argTypes:
    - struct add_p_state*
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 446
    functionName: setup_child_process
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - va_end
    - va_arg
    - va_start
    - strvec_pushf
    linkageType: ''
    returnType: LAST_ARG_MUST_BE_NULL
    signature: "LAST_ARG_MUST_BE_NULL setup_child_process(struct add_p_state *s,\n\t\t\t\tstruct
      child_process *cp, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/add-patch.c:453,1
    - Dst: strtoul
      Src: /src/git/add-patch.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - p
    - offset
    - count
    argTypes:
    - char**
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 463
    functionName: parse_range
    functionSourceFile: /src/git/add-patch.c
    functionUses: 1
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int parse_range(const char **p,\n\t\t       unsigned long *offset,
      unsigned long *count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/add-patch.c:469,1
    - Dst: skip_prefix
      Src: /src/git/add-patch.c:474,1
    - Dst: parse_range
      Src: /src/git/add-patch.c:475,1
    - Dst: skip_prefix
      Src: /src/git/add-patch.c:476,1
    - Dst: parse_range
      Src: /src/git/add-patch.c:477,1
    - Dst: skip_prefix
      Src: /src/git/add-patch.c:478,1
    - Dst: error
      Src: /src/git/add-patch.c:479,1
    - Dst: _
      Src: /src/git/add-patch.c:479,1
    - Dst: memchr
      Src: /src/git/add-patch.c:493,1
    - Dst: memmem
      Src: /src/git/add-patch.c:496,1
    - Dst: memmem
      Src: /src/git/add-patch.c:497,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - s
    - hunk
    argTypes:
    - struct add_p_state*
    - struct hunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 508
    functionName: parse_hunk_header
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - error
    - parse_range
    - memchr
    - _
    - skip_prefix
    - memmem
    linkageType: ''
    returnType: int
    signature: int parse_hunk_header(struct add_p_state *s, struct hunk *hunk)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 519
    functionName: is_octal
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_octal(const char *p, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - marker
    - hunk
    argTypes:
    - char
    - struct hunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 530
    functionName: complete_file
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void complete_file(char marker, struct hunk *hunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: normalize_marker
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int normalize_marker(const char *p)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushv
      Src: /src/git/add-patch.c:549,1
    - Dst: strvec_pushf
      Src: /src/git/add-patch.c:551,1
    - Dst: strvec_pushf
      Src: /src/git/add-patch.c:553,1
    - Dst: strvec_pushf
      Src: /src/git/add-patch.c:555,1
    - Dst: strvec_push
      Src: /src/git/add-patch.c:558,1
    - Dst: strcmp
      Src: /src/git/add-patch.c:560,1
    - Dst: repo_get_oid
      Src: /src/git/add-patch.c:561,1
    - Dst: empty_tree_oid_hex
      Src: /src/git/add-patch.c:562,1
    - Dst: strvec_pushl
      Src: /src/git/add-patch.c:566,1
    - Dst: strvec_push
      Src: /src/git/add-patch.c:569,1
    - Dst: setup_child_process
      Src: /src/git/add-patch.c:571,1
    - Dst: strvec_pushv
      Src: /src/git/add-patch.c:572,1
    - Dst: capture_command
      Src: /src/git/add-patch.c:573,1
    - Dst: strvec_clear
      Src: /src/git/add-patch.c:575,1
    - Dst: error
      Src: /src/git/add-patch.c:576,1
    - Dst: _
      Src: /src/git/add-patch.c:576,1
    - Dst: strvec_clear
      Src: /src/git/add-patch.c:579,1
    - Dst: strbuf_complete_line
      Src: /src/git/add-patch.c:582,1
    - Dst: want_color_fd
      Src: /src/git/add-patch.c:584,1
    - Dst: setup_child_process
      Src: /src/git/add-patch.c:588,1
    - Dst: xsnprintf
      Src: /src/git/add-patch.c:589,1
    - Dst: strvec_pushv
      Src: /src/git/add-patch.c:590,1
    - Dst: capture_command
      Src: /src/git/add-patch.c:592,1
    - Dst: strvec_clear
      Src: /src/git/add-patch.c:593,1
    - Dst: error
      Src: /src/git/add-patch.c:595,1
    - Dst: _
      Src: /src/git/add-patch.c:595,1
    - Dst: setup_child_process
      Src: /src/git/add-patch.c:600,1
    - Dst: strbuf_reset
      Src: /src/git/add-patch.c:604,1
    - Dst: pipe_command
      Src: /src/git/add-patch.c:605,1
    - Dst: error
      Src: /src/git/add-patch.c:609,1
    - Dst: _
      Src: /src/git/add-patch.c:609,1
    - Dst: strbuf_swap
      Src: /src/git/add-patch.c:611,1
    - Dst: strbuf_complete_line
      Src: /src/git/add-patch.c:614,1
    - Dst: strvec_clear
      Src: /src/git/add-patch.c:618,1
    - Dst: memchr
      Src: /src/git/add-patch.c:624,1
    - Dst: normalize_marker
      Src: /src/git/add-patch.c:626,1
    - Dst: starts_with
      Src: /src/git/add-patch.c:631,1
    - Dst: starts_with
      Src: /src/git/add-patch.c:632,1
    - Dst: complete_file
      Src: /src/git/add-patch.c:633,1
    - Dst: ALLOC_GROW_BY
      Src: /src/git/add-patch.c:634,1
    - Dst: BUG
      Src: /src/git/add-patch.c:643,1
    - Dst: starts_with
      Src: /src/git/add-patch.c:647,1
    - Dst: skip_prefix
      Src: /src/git/add-patch.c:649,1
    - Dst: ALLOC_GROW_BY
      Src: /src/git/add-patch.c:657,1
    - Dst: parse_hunk_header
      Src: /src/git/add-patch.c:667,1
    - Dst: starts_with
      Src: /src/git/add-patch.c:676,1
    - Dst: skip_prefix
      Src: /src/git/add-patch.c:679,1
    - Dst: is_octal
      Src: /src/git/add-patch.c:680,1
    - Dst: BUG
      Src: /src/git/add-patch.c:682,1
    - Dst: BUG
      Src: /src/git/add-patch.c:685,1
    - Dst: ALLOC_GROW_BY
      Src: /src/git/add-patch.c:693,1
    - Dst: skip_prefix
      Src: /src/git/add-patch.c:700,1
    - Dst: is_octal
      Src: /src/git/add-patch.c:701,1
    - Dst: BUG
      Src: /src/git/add-patch.c:708,1
    - Dst: BUG
      Src: /src/git/add-patch.c:711,1
    - Dst: BUG
      Src: /src/git/add-patch.c:714,1
    - Dst: starts_with
      Src: /src/git/add-patch.c:718,1
    - Dst: BUG
      Src: /src/git/add-patch.c:723,1
    - Dst: memchr
      Src: /src/git/add-patch.c:737,1
    - Dst: BUG
      Src: /src/git/add-patch.c:755,1
    - Dst: complete_file
      Src: /src/git/add-patch.c:763,1
    - Dst: error
      Src: /src/git/add-patch.c:768,1
    - Dst: _
      Src: /src/git/add-patch.c:768,1
    - Dst: advise
      Src: /src/git/add-patch.c:769,1
    - Dst: _
      Src: /src/git/add-patch.c:769,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 144
    argCount: 2
    argNames:
    - s
    - ps
    argTypes:
    - struct add_p_state*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 538
    functionDepth: 8
    functionLinenumber: 538
    functionLinenumberEnd: 775
    functionName: parse_diff
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - is_octal
    - repo_get_oid
    - parse_hunk_header
    - capture_command
    - xsnprintf
    - empty_tree_oid_hex
    - strcmp
    - want_color_fd
    - strbuf_swap
    - error
    - complete_file
    - advise
    - strvec_pushv
    - strvec_pushl
    - pipe_command
    - _
    - skip_prefix
    - strvec_pushf
    - memchr
    - strbuf_complete_line
    - strbuf_reset
    - starts_with
    - ALLOC_GROW_BY
    - strvec_clear
    - setup_child_process
    - BUG
    - normalize_marker
    linkageType: ''
    returnType: int
    signature: int parse_diff(struct add_p_state *s, const struct pathspec *ps)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/add-patch.c:782,1
    - Dst: memchr
      Src: /src/git/add-patch.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sb
    - offset
    argTypes:
    - struct strbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 789
    functionName: find_next_line
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - memchr
    - BUG
    linkageType: ''
    returnType: size_t
    signature: size_t find_next_line(struct strbuf *sb, size_t offset)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:810,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:815,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:819,1
    - Dst: strbuf_addf
      Src: /src/git/add-patch.c:830,1
    - Dst: strbuf_addf
      Src: /src/git/add-patch.c:832,1
    - Dst: strbuf_addf
      Src: /src/git/add-patch.c:833,1
    - Dst: strbuf_addf
      Src: /src/git/add-patch.c:835,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:836,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:839,1
    - Dst: strbuf_addf
      Src: /src/git/add-patch.c:841,1
    - Dst: strbuf_addch
      Src: /src/git/add-patch.c:843,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:847,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:850,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - s
    - hunk
    - delta
    - colored
    - out
    argTypes:
    - struct add_p_state*
    - struct hunk*
    - ssize_t
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 852
    functionName: render_hunk
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    - strbuf_add
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void render_hunk(struct add_p_state *s, struct hunk *hunk,\n\t\t\tssize_t
      delta, int colored, struct strbuf *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: render_hunk
      Src: /src/git/add-patch.c:868,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:875,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:877,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:882,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:883,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - s
    - file_diff
    - colored
    - out
    argTypes:
    - struct add_p_state*
    - struct file_diff*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 885
    functionName: render_diff_header
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - render_hunk
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void render_diff_header(struct add_p_state *s,\n\t\t\t       struct
      file_diff *file_diff, int colored,\n\t\t\t       struct strbuf *out)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find_next_line
      Src: /src/git/add-patch.c:945,1
    - Dst: BUG
      Src: /src/git/add-patch.c:949,1
    - Dst: normalize_marker
      Src: /src/git/add-patch.c:955,1
    - Dst: error
      Src: /src/git/add-patch.c:956,1
    - Dst: _
      Src: /src/git/add-patch.c:956,1
    - Dst: memcmp
      Src: /src/git/add-patch.c:969,1
    - Dst: error
      Src: /src/git/add-patch.c:971,1
    - Dst: _
      Src: /src/git/add-patch.c:971,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:986,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:993,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 5
    argNames:
    - s
    - file_diff
    - hunk_index
    - use_all
    - merged
    argTypes:
    - struct add_p_state*
    - struct file_diff*
    - size_t*
    - int
    - struct hunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 1013
    functionName: merge_hunks
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - error
    - find_next_line
    - _
    - BUG
    - normalize_marker
    - strbuf_add
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int merge_hunks(struct add_p_state *s, struct file_diff *file_diff,\n\t\t
      \      size_t *hunk_index, int use_all, struct hunk *merged)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: render_diff_header
      Src: /src/git/add-patch.c:1023,1
    - Dst: merge_hunks
      Src: /src/git/add-patch.c:1034,1
    - Dst: render_hunk
      Src: /src/git/add-patch.c:1037,1
    - Dst: strbuf_setlen
      Src: /src/git/add-patch.c:1044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - s
    - file_diff
    - use_all
    - out
    argTypes:
    - struct add_p_state*
    - struct file_diff*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1049
    functionName: reassemble_patch
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - render_diff_header
    - strbuf_setlen
    - render_hunk
    - merge_hunks
    linkageType: ''
    returnType: void
    signature: "void reassemble_patch(struct add_p_state *s,\n\t\t\t     struct file_diff
      *file_diff, int use_all,\n\t\t\t     struct strbuf *out)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/add-patch.c:1062,1
    - Dst: ALLOC_GROW
      Src: /src/git/add-patch.c:1075,1
    - Dst: memmove
      Src: /src/git/add-patch.c:1077,1
    - Dst: memset
      Src: /src/git/add-patch.c:1084,1
    - Dst: normalize_marker
      Src: /src/git/add-patch.c:1096,1
    - Dst: BUG
      Src: /src/git/add-patch.c:1099,1
    - Dst: BUG
      Src: /src/git/add-patch.c:1134,1
    - Dst: find_next_line
      Src: /src/git/add-patch.c:1136,1
    - Dst: find_next_line
      Src: /src/git/add-patch.c:1139,1
    - Dst: BUG
      Src: /src/git/add-patch.c:1153,1
    - Dst: BUG
      Src: /src/git/add-patch.c:1197,1
    - Dst: BUG
      Src: /src/git/add-patch.c:1200,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 93
    argCount: 3
    argNames:
    - s
    - file_diff
    - hunk_index
    argTypes:
    - struct add_p_state*
    - struct file_diff*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1051
    functionDepth: 2
    functionLinenumber: 1051
    functionLinenumberEnd: 1209
    functionName: split_hunk
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - memset
    - find_next_line
    - ALLOC_GROW
    - memmove
    - BUG
    - normalize_marker
    linkageType: ''
    returnType: int
    signature: "int split_hunk(struct add_p_state *s, struct file_diff *file_diff,\n\t\t
      \      size_t hunk_index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1228,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:1234,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1235,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:1237,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - s
    - hunk
    argTypes:
    - struct add_p_state*
    - struct hunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1241
    functionName: recolor_hunk
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - strbuf_add
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void recolor_hunk(struct add_p_state *s, struct hunk *hunk)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/add-patch.c:1247,1
    - Dst: strbuf_commented_addf
      Src: /src/git/add-patch.c:1248,1
    - Dst: _
      Src: /src/git/add-patch.c:1249,1
    - Dst: render_hunk
      Src: /src/git/add-patch.c:1251,1
    - Dst: strbuf_commented_addf
      Src: /src/git/add-patch.c:1252,1
    - Dst: _
      Src: /src/git/add-patch.c:1253,1
    - Dst: strbuf_commented_addf
      Src: /src/git/add-patch.c:1261,1
    - Dst: _
      Src: /src/git/add-patch.c:1262,1
    - Dst: strbuf_commented_addf
      Src: /src/git/add-patch.c:1267,1
    - Dst: _
      Src: /src/git/add-patch.c:1268,1
    - Dst: strbuf_edit_interactively
      Src: /src/git/add-patch.c:1274,1
    - Dst: find_next_line
      Src: /src/git/add-patch.c:1281,1
    - Dst: starts_with
      Src: /src/git/add-patch.c:1283,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:1284,1
    - Dst: recolor_hunk
      Src: /src/git/add-patch.c:1293,1
    - Dst: parse_hunk_header
      Src: /src/git/add-patch.c:1301,1
    - Dst: error
      Src: /src/git/add-patch.c:1302,1
    - Dst: _
      Src: /src/git/add-patch.c:1302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - s
    - hunk
    argTypes:
    - struct add_p_state*
    - struct hunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1305
    functionName: edit_hunk_manually
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - strbuf_edit_interactively
    - error
    - recolor_hunk
    - render_hunk
    - strbuf_reset
    - find_next_line
    - strbuf_commented_addf
    - starts_with
    - parse_hunk_header
    - _
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int edit_hunk_manually(struct add_p_state *s, struct hunk *hunk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: normalize_marker
      Src: /src/git/add-patch.c:1317,1
    - Dst: find_next_line
      Src: /src/git/add-patch.c:1338,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - s
    - hunk
    - orig_old_count
    - orig_new_count
    argTypes:
    - struct add_p_state*
    - struct hunk*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1307
    functionDepth: 2
    functionLinenumber: 1307
    functionLinenumberEnd: 1343
    functionName: recount_edited_hunk
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - find_next_line
    - normalize_marker
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t recount_edited_hunk(struct add_p_state *s, struct hunk *hunk,\n\t\t\t\t
      \  size_t orig_old_count, size_t orig_new_count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/add-patch.c:1350,1
    - Dst: reassemble_patch
      Src: /src/git/add-patch.c:1351,1
    - Dst: setup_child_process
      Src: /src/git/add-patch.c:1353,1
    - Dst: strvec_pushv
      Src: /src/git/add-patch.c:1355,1
    - Dst: pipe_command
      Src: /src/git/add-patch.c:1356,1
    - Dst: error
      Src: /src/git/add-patch.c:1357,1
    - Dst: _
      Src: /src/git/add-patch.c:1357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - file_diff
    argTypes:
    - struct add_p_state*
    - struct file_diff*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1345
    functionDepth: 8
    functionLinenumber: 1345
    functionLinenumberEnd: 1360
    functionName: run_apply_check
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_reset
    - strvec_pushv
    - pipe_command
    - setup_child_process
    - reassemble_patch
    - _
    linkageType: ''
    returnType: int
    signature: "int run_apply_check(struct add_p_state *s,\n\t\t\t   struct file_diff
      *file_diff)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_key_without_echo
      Src: /src/git/add-patch.c:1365,1
    - Dst: printf
      Src: /src/git/add-patch.c:1366,1
    - Dst: git_read_line_interactively
      Src: /src/git/add-patch.c:1370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct add_p_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1362
    functionDepth: 2
    functionLinenumber: 1362
    functionLinenumberEnd: 1373
    functionName: read_single_character
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - git_read_line_interactively
    - read_key_without_echo
    - printf
    linkageType: ''
    returnType: int
    signature: int read_single_character(struct add_p_state *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: color_fprintf
      Src: /src/git/add-patch.c:1378,1
    - Dst: _
      Src: /src/git/add-patch.c:1378,1
    - Dst: fflush
      Src: /src/git/add-patch.c:1379,1
    - Dst: read_single_character
      Src: /src/git/add-patch.c:1380,1
    - Dst: tolower
      Src: /src/git/add-patch.c:1383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - prompt
    argTypes:
    - struct add_p_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1375
    functionDepth: 3
    functionLinenumber: 1375
    functionLinenumberEnd: 1388
    functionName: prompt_yesno
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - color_fprintf
    - fflush
    - read_single_character
    - tolower
    - _
    linkageType: ''
    returnType: int
    signature: int prompt_yesno(struct add_p_state *s, const char *prompt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: edit_hunk_manually
      Src: /src/git/add-patch.c:1399,1
    - Dst: recount_edited_hunk
      Src: /src/git/add-patch.c:1408,1
    - Dst: run_apply_check
      Src: /src/git/add-patch.c:1411,1
    - Dst: strbuf_setlen
      Src: /src/git/add-patch.c:1416,1
    - Dst: strbuf_setlen
      Src: /src/git/add-patch.c:1417,1
    - Dst: prompt_yesno
      Src: /src/git/add-patch.c:1427,1
    - Dst: _
      Src: /src/git/add-patch.c:1427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - s
    - file_diff
    - hunk
    argTypes:
    - struct add_p_state*
    - struct file_diff*
    - struct hunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1390
    functionDepth: 9
    functionLinenumber: 1390
    functionLinenumberEnd: 1433
    functionName: edit_hunk_loop
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - recount_edited_hunk
    - run_apply_check
    - prompt_yesno
    - edit_hunk_manually
    - strbuf_setlen
    - _
    linkageType: ''
    returnType: int
    signature: "int edit_hunk_loop(struct add_p_state *s,\n\t\t\t  struct file_diff
      *file_diff, struct hunk *hunk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_child_process
      Src: /src/git/add-patch.c:1445,1
    - Dst: pipe_command
      Src: /src/git/add-patch.c:1447,1
    - Dst: setup_child_process
      Src: /src/git/add-patch.c:1450,1
    - Dst: pipe_command
      Src: /src/git/add-patch.c:1452,1
    - Dst: setup_child_process
      Src: /src/git/add-patch.c:1456,1
    - Dst: pipe_command
      Src: /src/git/add-patch.c:1458,1
    - Dst: setup_child_process
      Src: /src/git/add-patch.c:1461,1
    - Dst: pipe_command
      Src: /src/git/add-patch.c:1463,1
    - Dst: err
      Src: /src/git/add-patch.c:1470,1
    - Dst: _
      Src: /src/git/add-patch.c:1470,1
    - Dst: prompt_yesno
      Src: /src/git/add-patch.c:1471,1
    - Dst: _
      Src: /src/git/add-patch.c:1471,1
    - Dst: setup_child_process
      Src: /src/git/add-patch.c:1473,1
    - Dst: pipe_command
      Src: /src/git/add-patch.c:1475,1
    - Dst: err
      Src: /src/git/add-patch.c:1478,1
    - Dst: _
      Src: /src/git/add-patch.c:1478,1
    - Dst: fwrite
      Src: /src/git/add-patch.c:1481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - s
    - diff
    - is_reverse
    argTypes:
    - struct add_p_state*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1435
    functionDepth: 8
    functionLinenumber: 1435
    functionLinenumberEnd: 1484
    functionName: apply_for_checkout
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - prompt_yesno
    - fwrite
    - err
    - pipe_command
    - setup_child_process
    - _
    linkageType: ''
    returnType: int
    signature: "int apply_for_checkout(struct add_p_state *s, struct strbuf *diff,\n\t\t\t
      \     int is_reverse)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/add-patch.c:1495,1
    - Dst: strbuf_addchars
      Src: /src/git/add-patch.c:1499,1
    - Dst: find_next_line
      Src: /src/git/add-patch.c:1501,1
    - Dst: strbuf_add
      Src: /src/git/add-patch.c:1505,1
    - Dst: find_next_line
      Src: /src/git/add-patch.c:1505,1
    - Dst: strbuf_setlen
      Src: /src/git/add-patch.c:1507,1
    - Dst: strbuf_complete_line
      Src: /src/git/add-patch.c:1508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - s
    - hunk
    - out
    argTypes:
    - struct add_p_state*
    - struct hunk*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1488
    functionDepth: 2
    functionLinenumber: 1488
    functionLinenumberEnd: 1509
    functionName: summarize_hunk
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    - strbuf_complete_line
    - find_next_line
    - strbuf_setlen
    - strbuf_addf
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void summarize_hunk(struct add_p_state *s, struct hunk *hunk,\n\t\t\t
      \  struct strbuf *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/add-patch.c:1523,1
    - Dst: strbuf_addf
      Src: /src/git/add-patch.c:1524,1
    - Dst: summarize_hunk
      Src: /src/git/add-patch.c:1527,1
    - Dst: fputs
      Src: /src/git/add-patch.c:1528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s
    - file_diff
    - start_index
    argTypes:
    - struct add_p_state*
    - struct file_diff*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1512
    functionDepth: 3
    functionLinenumber: 1512
    functionLinenumberEnd: 1532
    functionName: display_hunks
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - summarize_hunk
    - fputs
    - strbuf_addf
    linkageType: ''
    returnType: size_t
    signature: "size_t display_hunks(struct add_p_state *s,\n\t\t\t    struct file_diff
      *file_diff, size_t start_index)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/add-patch.c:1563,1
    - Dst: reassemble_patch
      Src: /src/git/add-patch.c:1564,1
    - Dst: discard_index
      Src: /src/git/add-patch.c:1566,1
    - Dst: apply_for_checkout
      Src: /src/git/add-patch.c:1568,1
    - Dst: setup_child_process
      Src: /src/git/add-patch.c:1571,1
    - Dst: strvec_pushv
      Src: /src/git/add-patch.c:1572,1
    - Dst: pipe_command
      Src: /src/git/add-patch.c:1573,1
    - Dst: error
      Src: /src/git/add-patch.c:1575,1
    - Dst: _
      Src: /src/git/add-patch.c:1575,1
    - Dst: read_index_from
      Src: /src/git/add-patch.c:1577,1
    - Dst: repo_refresh_and_write_index
      Src: /src/git/add-patch.c:1579,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - s
    - file_diff
    argTypes:
    - struct add_p_state*
    - struct file_diff*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1550
    functionDepth: 9
    functionLinenumber: 1550
    functionLinenumberEnd: 1584
    functionName: apply_patch
    functionSourceFile: /src/git/add-patch.c
    functionUses: 1
    functionsReached:
    - error
    - strbuf_reset
    - strvec_pushv
    - apply_for_checkout
    - pipe_command
    - setup_child_process
    - reassemble_patch
    - _
    - read_index_from
    - repo_refresh_and_write_index
    - discard_index
    linkageType: ''
    returnType: void
    signature: void apply_patch(struct add_p_state *s, struct file_diff *file_diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - m
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1589
    functionName: dec_mod
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dec_mod(size_t a, size_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - m
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1594
    functionName: inc_mod
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t inc_mod(size_t a, size_t m)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - file_diff
    - idx
    argTypes:
    - struct file_diff*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1605
    functionName: get_first_undecided
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool get_first_undecided(const struct file_diff *file_diff, size_t
      *idx)
  - BBCount: 85
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/add-patch.c:1625,1
    - Dst: render_diff_header
      Src: /src/git/add-patch.c:1626,1
    - Dst: fputs
      Src: /src/git/add-patch.c:1627,1
    - Dst: dec_mod
      Src: /src/git/add-patch.c:1651,1
    - Dst: dec_mod
      Src: /src/git/add-patch.c:1653,1
    - Dst: inc_mod
      Src: /src/git/add-patch.c:1659,1
    - Dst: inc_mod
      Src: /src/git/add-patch.c:1661,1
    - Dst: strbuf_reset
      Src: /src/git/add-patch.c:1678,1
    - Dst: setup_pager
      Src: /src/git/add-patch.c:1682,1
    - Dst: sigchain_push
      Src: /src/git/add-patch.c:1683,1
    - Dst: render_hunk
      Src: /src/git/add-patch.c:1685,1
    - Dst: fputs
      Src: /src/git/add-patch.c:1686,1
    - Dst: sigchain_pop
      Src: /src/git/add-patch.c:1689,1
    - Dst: wait_for_pager
      Src: /src/git/add-patch.c:1690,1
    - Dst: strbuf_reset
      Src: /src/git/add-patch.c:1695,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1698,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1702,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1706,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1710,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1714,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1718,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1724,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1728,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1732,1
    - Dst: strbuf_addstr
      Src: /src/git/add-patch.c:1734,1
    - Dst: printf
      Src: /src/git/add-patch.c:1745,1
    - Dst: _
      Src: /src/git/add-patch.c:1752,1
    - Dst: _
      Src: /src/git/add-patch.c:1754,1
    - Dst: printf
      Src: /src/git/add-patch.c:1756,1
    - Dst: _
      Src: /src/git/add-patch.c:1756,1
    - Dst: fputs
      Src: /src/git/add-patch.c:1759,1
    - Dst: fflush
      Src: /src/git/add-patch.c:1760,1
    - Dst: read_single_character
      Src: /src/git/add-patch.c:1761,1
    - Dst: tolower
      Src: /src/git/add-patch.c:1768,1
    - Dst: err
      Src: /src/git/add-patch.c:1772,1
    - Dst: _
      Src: /src/git/add-patch.c:1772,1
    - Dst: get_first_undecided
      Src: /src/git/add-patch.c:1790,1
    - Dst: get_first_undecided
      Src: /src/git/add-patch.c:1802,1
    - Dst: err
      Src: /src/git/add-patch.c:1818,1
    - Dst: _
      Src: /src/git/add-patch.c:1818,1
    - Dst: err
      Src: /src/git/add-patch.c:1829,1
    - Dst: _
      Src: /src/git/add-patch.c:1829,1
    - Dst: dec_mod
      Src: /src/git/add-patch.c:1834,1
    - Dst: err
      Src: /src/git/add-patch.c:1837,1
    - Dst: _
      Src: /src/git/add-patch.c:1837,1
    - Dst: err
      Src: /src/git/add-patch.c:1842,1
    - Dst: _
      Src: /src/git/add-patch.c:1842,1
    - Dst: err
      Src: /src/git/add-patch.c:1847,1
    - Dst: _
      Src: /src/git/add-patch.c:1847,1
    - Dst: err
      Src: /src/git/add-patch.c:1852,1
    - Dst: _
      Src: /src/git/add-patch.c:1852,1
    - Dst: err
      Src: /src/git/add-patch.c:1858,1
    - Dst: _
      Src: /src/git/add-patch.c:1858,1
    - Dst: strbuf_remove
      Src: /src/git/add-patch.c:1861,1
    - Dst: strbuf_trim
      Src: /src/git/add-patch.c:1862,1
    - Dst: display_hunks
      Src: /src/git/add-patch.c:1867,1
    - Dst: printf
      Src: /src/git/add-patch.c:1868,1
    - Dst: _
      Src: /src/git/add-patch.c:1869,1
    - Dst: _
      Src: /src/git/add-patch.c:1870,1
    - Dst: fflush
      Src: /src/git/add-patch.c:1871,1
    - Dst: strbuf_getline
      Src: /src/git/add-patch.c:1872,1
    - Dst: strbuf_trim_trailing_newline
      Src: /src/git/add-patch.c:1875,1
    - Dst: strbuf_trim
      Src: /src/git/add-patch.c:1878,1
    - Dst: strtoul
      Src: /src/git/add-patch.c:1879,1
    - Dst: err
      Src: /src/git/add-patch.c:1881,1
    - Dst: _
      Src: /src/git/add-patch.c:1881,1
    - Dst: err
      Src: /src/git/add-patch.c:1886,1
    - Dst: Q_
      Src: /src/git/add-patch.c:1886,1
    - Dst: err
      Src: /src/git/add-patch.c:1895,1
    - Dst: _
      Src: /src/git/add-patch.c:1895,1
    - Dst: strbuf_remove
      Src: /src/git/add-patch.c:1898,1
    - Dst: strbuf_trim_trailing_newline
      Src: /src/git/add-patch.c:1899,1
    - Dst: printf
      Src: /src/git/add-patch.c:1901,1
    - Dst: _
      Src: /src/git/add-patch.c:1901,1
    - Dst: fflush
      Src: /src/git/add-patch.c:1902,1
    - Dst: strbuf_getline
      Src: /src/git/add-patch.c:1903,1
    - Dst: strbuf_trim_trailing_newline
      Src: /src/git/add-patch.c:1906,1
    - Dst: regcomp
      Src: /src/git/add-patch.c:1910,1
    - Dst: regerror
      Src: /src/git/add-patch.c:1915,1
    - Dst: err
      Src: /src/git/add-patch.c:1916,1
    - Dst: _
      Src: /src/git/add-patch.c:1916,1
    - Dst: render_hunk
      Src: /src/git/add-patch.c:1923,1
    - Dst: regexec
      Src: /src/git/add-patch.c:1925,1
    - Dst: err
      Src: /src/git/add-patch.c:1933,1
    - Dst: _
      Src: /src/git/add-patch.c:1933,1
    - Dst: regfree
      Src: /src/git/add-patch.c:1936,1
    - Dst: err
      Src: /src/git/add-patch.c:1941,1
    - Dst: _
      Src: /src/git/add-patch.c:1941,1
    - Dst: split_hunk
      Src: /src/git/add-patch.c:1942,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-patch.c:1944,1
    - Dst: _
      Src: /src/git/add-patch.c:1945,1
    - Dst: err
      Src: /src/git/add-patch.c:1951,1
    - Dst: _
      Src: /src/git/add-patch.c:1951,1
    - Dst: edit_hunk_loop
      Src: /src/git/add-patch.c:1952,1
    - Dst: _
      Src: /src/git/add-patch.c:1960,1
    - Dst: color_fprintf
      Src: /src/git/add-patch.c:1962,1
    - Dst: _
      Src: /src/git/add-patch.c:1963,1
    - Dst: strchrnul
      Src: /src/git/add-patch.c:1970,1
    - Dst: strncmp
      Src: /src/git/add-patch.c:1977,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-patch.c:1986,1
    - Dst: _
      Src: /src/git/add-patch.c:1986,1
    - Dst: strchr
      Src: /src/git/add-patch.c:1989,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-patch.c:1992,1
    - Dst: err
      Src: /src/git/add-patch.c:1996,1
    - Dst: _
      Src: /src/git/add-patch.c:1996,1
    - Dst: apply_patch
      Src: /src/git/add-patch.c:2002,1
    - Dst: putchar
      Src: /src/git/add-patch.c:2004,1
    CyclomaticComplexity: 132
    EdgeCount: 132
    ICount: 310
    argCount: 3
    argNames:
    - s
    - idx
    - flags
    argTypes:
    - struct add_p_state*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1607
    functionDepth: 10
    functionLinenumber: 1607
    functionLinenumberEnd: 2006
    functionName: patch_update_file
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - strbuf_trim_trailing_newline
    - putchar
    - inc_mod
    - fputs
    - strbuf_remove
    - edit_hunk_loop
    - strchr
    - read_single_character
    - dec_mod
    - render_diff_header
    - color_fprintf_ln
    - display_hunks
    - printf
    - render_hunk
    - sigchain_push
    - regexec
    - strbuf_addstr
    - get_first_undecided
    - Q_
    - regcomp
    - split_hunk
    - strchrnul
    - tolower
    - strncmp
    - strtoul
    - setup_pager
    - color_fprintf
    - sigchain_pop
    - strbuf_trim
    - fflush
    - _
    - strbuf_getline
    - strbuf_reset
    - regfree
    - err
    - regerror
    - apply_patch
    - wait_for_pager
    linkageType: ''
    returnType: size_t
    signature: "size_t patch_update_file(struct add_p_state *s,\n\t\t\t\tsize_t idx,\n\t\t\t\tunsigned
      flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_diff
      Src: /src/git/add-patch.c:2015,1
    - Dst: patch_update_file
      Src: /src/git/add-patch.c:2024,1
    - Dst: apply_patch
      Src: /src/git/add-patch.c:2030,1
    - Dst: err
      Src: /src/git/add-patch.c:2033,1
    - Dst: _
      Src: /src/git/add-patch.c:2033,1
    - Dst: err
      Src: /src/git/add-patch.c:2035,1
    - Dst: _
      Src: /src/git/add-patch.c:2035,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - state
    - ps
    - flags
    argTypes:
    - struct add_p_state*
    - struct pathspec*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2008
    functionDepth: 11
    functionLinenumber: 2008
    functionLinenumberEnd: 2038
    functionName: run_add_p_common
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - err
    - parse_diff
    - _
    - apply_patch
    - patch_update_file
    linkageType: ''
    returnType: int
    signature: "int run_add_p_common(struct add_p_state *state,\n\t\t\t    const struct
      pathspec *ps,\n\t\t\t    unsigned flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: interactive_config_init
      Src: /src/git/add-patch.c:2056,1
    - Dst: strcmp
      Src: /src/git/add-patch.c:2061,1
    - Dst: strcmp
      Src: /src/git/add-patch.c:2068,1
    - Dst: strcmp
      Src: /src/git/add-patch.c:2075,1
    - Dst: discard_index
      Src: /src/git/add-patch.c:2083,1
    - Dst: repo_read_index
      Src: /src/git/add-patch.c:2084,1
    - Dst: repo_refresh_and_write_index
      Src: /src/git/add-patch.c:2086,1
    - Dst: run_add_p_common
      Src: /src/git/add-patch.c:2092,1
    - Dst: add_p_state_clear
      Src: /src/git/add-patch.c:2099,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 6
    argNames:
    - r
    - mode
    - opts
    - revision
    - ps
    - flags
    argTypes:
    - struct repository*
    - enum add_p_mode
    - struct interactive_options*
    - char*
    - struct pathspec*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2040
    functionDepth: 12
    functionLinenumber: 2040
    functionLinenumberEnd: 2101
    functionName: run_add_p
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - repo_read_index
    - run_add_p_common
    - strcmp
    - interactive_config_init
    - repo_refresh_and_write_index
    - add_p_state_clear
    - discard_index
    linkageType: ''
    returnType: int
    signature: "int run_add_p(struct repository *r, enum add_p_mode mode,\n\t      struct
      interactive_options *opts, const char *revision,\n\t      const struct pathspec
      *ps,\n\t      unsigned flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/add-patch.c:2115,1
    - Dst: N_
      Src: /src/git/add-patch.c:2116,1
    - Dst: N_
      Src: /src/git/add-patch.c:2117,1
    - Dst: N_
      Src: /src/git/add-patch.c:2118,1
    - Dst: N_
      Src: /src/git/add-patch.c:2120,1
    - Dst: N_
      Src: /src/git/add-patch.c:2123,1
    - Dst: interactive_config_init
      Src: /src/git/add-patch.c:2147,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/add-patch.c:2149,1
    - Dst: err
      Src: /src/git/add-patch.c:2151,1
    - Dst: _
      Src: /src/git/add-patch.c:2151,1
    - Dst: oid_to_hex_r
      Src: /src/git/add-patch.c:2157,1
    - Dst: get_commit_tree_oid
      Src: /src/git/add-patch.c:2157,1
    - Dst: oid_to_hex_r
      Src: /src/git/add-patch.c:2159,1
    - Dst: run_add_p_common
      Src: /src/git/add-patch.c:2165,1
    - Dst: add_p_state_clear
      Src: /src/git/add-patch.c:2172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 7
    argNames:
    - r
    - index
    - index_file
    - opts
    - revision
    - ps
    - flags
    argTypes:
    - struct repository*
    - struct index_state*
    - char*
    - struct interactive_options*
    - char*
    - struct pathspec*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2103
    functionDepth: 12
    functionLinenumber: 2103
    functionLinenumberEnd: 2174
    functionName: run_add_p_index
    functionSourceFile: /src/git/add-patch.c
    functionUses: 0
    functionsReached:
    - oid_to_hex_r
    - lookup_commit_reference_by_name
    - err
    - get_commit_tree_oid
    - run_add_p_common
    - _
    - N_
    - interactive_config_init
    - add_p_state_clear
    linkageType: ''
    returnType: int
    signature: "int run_add_p_index(struct repository *r,\n\t\t    struct index_state
      *index,\n\t\t    const char *index_file,\n\t\t    struct interactive_options
      *opts,\n\t\t    const char *revision,\n\t\t    const struct pathspec *ps,\n\t\t
      \   unsigned flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: msort_with_tmp
      Src: /src/git/stable-qsort.c:24,1
    - Dst: msort_with_tmp
      Src: /src/git/stable-qsort.c:25,1
    - Dst: cmp
      Src: /src/git/stable-qsort.c:30,1
    - Dst: memcpy
      Src: /src/git/stable-qsort.c:31,1
    - Dst: memcpy
      Src: /src/git/stable-qsort.c:36,1
    - Dst: memcpy
      Src: /src/git/stable-qsort.c:43,1
    - Dst: memcpy
      Src: /src/git/stable-qsort.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - b
    - n
    - s
    - t
    argTypes:
    - void*
    - size_t
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 45
    functionName: msort_with_tmp
    functionSourceFile: /src/git/stable-qsort.c
    functionUses: 1
    functionsReached:
    - msort_with_tmp
    - cmp
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void msort_with_tmp(void *b, size_t n, size_t s,\n\t\t\t   int (*cmp)(const
      void *, const void *),\n\t\t\t   char *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: st_mult
      Src: /src/git/stable-qsort.c:50,1
    - Dst: xmalloc
      Src: /src/git/stable-qsort.c:53,1
    - Dst: msort_with_tmp
      Src: /src/git/stable-qsort.c:54,1
    - Dst: free
      Src: /src/git/stable-qsort.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - b
    - n
    - s
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: git_stable_qsort
    functionSourceFile: /src/git/stable-qsort.c
    functionUses: 0
    functionsReached:
    - free
    - xmalloc
    - msort_with_tmp
    - st_mult
    linkageType: ''
    returnType: void
    signature: "void git_stable_qsort(void *b, size_t n, size_t s,\n\t\t      int
      (*cmp)(const void *, const void *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/protocol-caps.c:25,1
    - Dst: string_list_append
      Src: /src/git/protocol-caps.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - line
    - oid_str_list
    argTypes:
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: parse_oid
    functionSourceFile: /src/git/protocol-caps.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int parse_oid(const char *line, struct string_list *oid_str_list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: packet_writer_write
      Src: /src/git/protocol-caps.c:48,1
    - Dst: get_oid_hex_algop
      Src: /src/git/protocol-caps.c:55,1
    - Dst: packet_writer_error
      Src: /src/git/protocol-caps.c:56,1
    - Dst: strbuf_addstr
      Src: /src/git/protocol-caps.c:63,1
    - Dst: odb_read_object_info
      Src: /src/git/protocol-caps.c:66,1
    - Dst: strbuf_addstr
      Src: /src/git/protocol-caps.c:67,1
    - Dst: strbuf_addf
      Src: /src/git/protocol-caps.c:69,1
    - Dst: packet_writer_write
      Src: /src/git/protocol-caps.c:73,1
    - Dst: strbuf_reset
      Src: /src/git/protocol-caps.c:74,1
    - Dst: strbuf_release
      Src: /src/git/protocol-caps.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - r
    - writer
    - oid_str_list
    - info
    argTypes:
    - struct repository*
    - struct packet_writer*
    - struct string_list*
    - struct requested_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 77
    functionName: send_info
    functionSourceFile: /src/git/protocol-caps.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - get_oid_hex_algop
    - packet_writer_error
    - strbuf_addf
    - odb_read_object_info
    - packet_writer_write
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void send_info(struct repository *r, struct packet_writer *writer,\n\t\t
      \     struct string_list *oid_str_list,\n\t\t      struct requested_info *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_hex_algop
      Src: /src/git/protocol-caps.c:55,1
    - Dst: packet_writer_error
      Src: /src/git/protocol-caps.c:56,1
    - Dst: strbuf_addstr
      Src: /src/git/protocol-caps.c:63,1
    - Dst: odb_read_object_info
      Src: /src/git/protocol-caps.c:66,1
    - Dst: strbuf_addstr
      Src: /src/git/protocol-caps.c:67,1
    - Dst: strbuf_addf
      Src: /src/git/protocol-caps.c:69,1
    - Dst: packet_writer_write
      Src: /src/git/protocol-caps.c:73,1
    - Dst: strbuf_reset
      Src: /src/git/protocol-caps.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 75
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/protocol-caps.c
    functionUses: 8
    functionsReached:
    - strbuf_reset
    - get_oid_hex_algop
    - packet_writer_error
    - strbuf_addf
    - odb_read_object_info
    - packet_writer_write
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item (item, oid_str_list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: packet_writer_init
      Src: /src/git/protocol-caps.c:85,1
    - Dst: packet_reader_read
      Src: /src/git/protocol-caps.c:87,1
    - Dst: strcmp
      Src: /src/git/protocol-caps.c:88,1
    - Dst: parse_oid
      Src: /src/git/protocol-caps.c:93,1
    - Dst: packet_writer_error
      Src: /src/git/protocol-caps.c:96,1
    - Dst: packet_writer_error
      Src: /src/git/protocol-caps.c:102,1
    - Dst: die
      Src: /src/git/protocol-caps.c:104,1
    - Dst: _
      Src: /src/git/protocol-caps.c:104,1
    - Dst: send_info
      Src: /src/git/protocol-caps.c:107,1
    - Dst: string_list_clear
      Src: /src/git/protocol-caps.c:109,1
    - Dst: packet_flush
      Src: /src/git/protocol-caps.c:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - r
    - request
    argTypes:
    - struct repository*
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 114
    functionName: cap_object_info
    functionSourceFile: /src/git/protocol-caps.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - packet_writer_init
    - send_info
    - die
    - packet_writer_error
    - packet_flush
    - parse_oid
    - strcmp
    - packet_reader_read
    - _
    linkageType: ''
    returnType: int
    signature: int cap_object_info(struct repository *r, struct packet_reader *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - hex
    - ','
    - oid
    - ','
    - end
    - ','
    - algo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: parse_oid_hex_algop
    functionSourceFile: /src/git/hex.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parse_oid_hex_algop(hex, oid, end, algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/notes-merge.c:34,1
    - Dst: strbuf_init
      Src: /src/git/notes-merge.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - o
    argTypes:
    - struct repository*
    - struct notes_merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: init_notes_merge_options
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - memset
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: "void init_notes_merge_options(struct repository *r,\n\t\t\t      struct
      notes_merge_options *o)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_hex
      Src: /src/git/notes-merge.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - path
    - oid
    argTypes:
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: path_to_oid
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - get_oid_hex
    linkageType: ''
    returnType: int
    signature: int path_to_oid(const char *path, struct object_id *oid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes-merge.c:58,1
    - Dst: assert
      Src: /src/git/notes-merge.c:59,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:59,1
    - Dst: assert
      Src: /src/git/notes-merge.c:60,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:60,1
    - Dst: assert
      Src: /src/git/notes-merge.c:63,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:63,1
    - Dst: assert
      Src: /src/git/notes-merge.c:66,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:66,1
    - Dst: assert
      Src: /src/git/notes-merge.c:71,1
    - Dst: strcmp
      Src: /src/git/notes-merge.c:71,1
    - Dst: path_to_oid
      Src: /src/git/notes-merge.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - p
    - oid
    argTypes:
    - struct diff_filepair*
    - struct object_id*
    assertStmts:
    - condition: (p->one->mode == p->two->mode)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/git/notes-merge.c
    - condition: (!is_null_oid(&p->two->oid))
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/git/notes-merge.c
    - condition: (!is_null_oid(&p->one->oid))
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/git/notes-merge.c
    - condition: (is_null_oid(&p->one->oid))
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/git/notes-merge.c
    - condition: (is_null_oid(&p->two->oid))
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/git/notes-merge.c
    - condition: (!strcmp(p->one->path, p->two->path))
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/git/notes-merge.c
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: verify_notes_filepair
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - path_to_oid
    - strcmp
    - assert
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int verify_notes_filepair(struct diff_filepair *p, struct object_id
      *oid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/notes-merge.c:93,1
    - Dst: MOVE_ARRAY
      Src: /src/git/notes-merge.c:117,1
    - Dst: memset
      Src: /src/git/notes-merge.c:118,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 5
    argNames:
    - list
    - len
    - obj
    - insert_new
    - occupied
    argTypes:
    - struct notes_merge_pair*
    - int
    - struct object_id*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 123
    functionName: find_notes_merge_pair_pos
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - memset
    - oidcmp
    - MOVE_ARRAY
    linkageType: ''
    returnType: struct notes_merge_pair
    signature: "struct notes_merge_pair *find_notes_merge_pair_pos(\n\t\tstruct notes_merge_pair
      *list, int len, struct object_id *obj,\n\t\tint insert_new, int *occupied)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:140,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:141,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:141,1
    - Dst: repo_diff_setup
      Src: /src/git/notes-merge.c:143,1
    - Dst: diff_setup_done
      Src: /src/git/notes-merge.c:146,1
    - Dst: diff_tree_oid
      Src: /src/git/notes-merge.c:147,1
    - Dst: diffcore_std
      Src: /src/git/notes-merge.c:148,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/notes-merge.c:150,1
    - Dst: verify_notes_filepair
      Src: /src/git/notes-merge.c:158,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:159,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:161,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:162,1
    - Dst: find_notes_merge_pair_pos
      Src: /src/git/notes-merge.c:165,1
    - Dst: assert
      Src: /src/git/notes-merge.c:168,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:168,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:169,1
    - Dst: assert
      Src: /src/git/notes-merge.c:170,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:170,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:171,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:172,1
    - Dst: assert
      Src: /src/git/notes-merge.c:173,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:173,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:174,1
    - Dst: assert
      Src: /src/git/notes-merge.c:176,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:178,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:179,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:180,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:181,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:184,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:185,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:185,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:186,1
    - Dst: diff_flush
      Src: /src/git/notes-merge.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 4
    argNames:
    - o
    - base
    - remote
    - num_changes
    argTypes:
    - struct notes_merge_options*
    - struct object_id*
    - struct object_id*
    - int*
    assertStmts:
    - condition: (is_null_oid(&mp->remote))
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/git/notes-merge.c
    - condition: (oideq(&mp->obj, &obj))
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/git/notes-merge.c
    - condition: (is_null_oid(&mp->base))
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/git/notes-merge.c
    - condition: (!"Invalid existing change recorded")
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/git/notes-merge.c
    constantsTouched: []
    func_position:
      end: 192
      start: 131
    functionDepth: 6
    functionLinenumber: 131
    functionLinenumberEnd: 192
    functionName: diff_tree_remote
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - oideq
    - assert
    - find_notes_merge_pair_pos
    - oidcpy
    - diff_tree_oid
    - trace_printf
    - is_null_oid
    - diff_flush
    - diffcore_std
    - diff_setup_done
    - CALLOC_ARRAY
    - repo_diff_setup
    - verify_notes_filepair
    linkageType: ''
    returnType: struct notes_merge_pair
    signature: "struct notes_merge_pair *diff_tree_remote(struct notes_merge_options
      *o,\n\t\t\t\t\t\t const struct object_id *base,\n\t\t\t\t\t\t const struct object_id
      *remote,\n\t\t\t\t\t\t int *num_changes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:202,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:203,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:203,1
    - Dst: repo_diff_setup
      Src: /src/git/notes-merge.c:205,1
    - Dst: diff_setup_done
      Src: /src/git/notes-merge.c:208,1
    - Dst: diff_tree_oid
      Src: /src/git/notes-merge.c:209,1
    - Dst: diffcore_std
      Src: /src/git/notes-merge.c:210,1
    - Dst: verify_notes_filepair
      Src: /src/git/notes-merge.c:218,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:219,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:221,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:222,1
    - Dst: find_notes_merge_pair_pos
      Src: /src/git/notes-merge.c:225,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:227,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:228,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:229,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:230,1
    - Dst: assert
      Src: /src/git/notes-merge.c:234,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:234,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:235,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:245,1
    - Dst: oidclr
      Src: /src/git/notes-merge.c:246,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:247,1
    - Dst: assert
      Src: /src/git/notes-merge.c:256,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:256,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:257,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:258,1
    - Dst: assert
      Src: /src/git/notes-merge.c:265,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:265,1
    - Dst: assert
      Src: /src/git/notes-merge.c:266,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:266,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:267,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:269,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:270,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:270,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:271,1
    - Dst: diff_flush
      Src: /src/git/notes-merge.c:273,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - o
    - changes
    - len
    - base
    - local
    argTypes:
    - struct notes_merge_options*
    - struct notes_merge_pair*
    - int
    - struct object_id*
    - struct object_id*
    assertStmts:
    - condition: (oideq(&mp->obj, &obj))
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/git/notes-merge.c
    - condition: "(is_null_oid(&mp->local) ||\n\t\t\t       oideq(&mp->local, &uninitialized))"
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/git/notes-merge.c
    - condition: (oideq(&p->one->oid, &mp->base))
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/git/notes-merge.c
    - condition: (oideq(&mp->local, &uninitialized))
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/git/notes-merge.c
    constantsTouched: []
    func_position:
      end: 274
      start: 194
    functionDepth: 6
    functionLinenumber: 194
    functionLinenumberEnd: 274
    functionName: diff_tree_local
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - oideq
    - assert
    - find_notes_merge_pair_pos
    - oidcpy
    - diff_tree_oid
    - trace_printf
    - is_null_oid
    - diff_flush
    - oidclr
    - diffcore_std
    - diff_setup_done
    - repo_diff_setup
    - verify_notes_filepair
    linkageType: ''
    returnType: void
    signature: "void diff_tree_local(struct notes_merge_options *o,\n\t\t\t    struct
      notes_merge_pair *changes, int len,\n\t\t\t    const struct object_id *base,\n\t\t\t
      \   const struct object_id *local)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/notes-merge.c:285,1
    - Dst: repo_git_path_replace
      Src: /src/git/notes-merge.c:285,1
    - Dst: is_empty_dir
      Src: /src/git/notes-merge.c:286,1
    - Dst: repo_git_path_replace
      Src: /src/git/notes-merge.c:286,1
    - Dst: advice_enabled
      Src: /src/git/notes-merge.c:287,1
    - Dst: die
      Src: /src/git/notes-merge.c:288,1
    - Dst: _
      Src: /src/git/notes-merge.c:288,1
    - Dst: repo_git_path_replace
      Src: /src/git/notes-merge.c:293,1
    - Dst: die
      Src: /src/git/notes-merge.c:295,1
    - Dst: _
      Src: /src/git/notes-merge.c:295,1
    - Dst: repo_git_path_replace
      Src: /src/git/notes-merge.c:296,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/notes-merge.c:299,1
    - Dst: repo_git_path_replace
      Src: /src/git/notes-merge.c:299,1
    - Dst: die_errno
      Src: /src/git/notes-merge.c:301,1
    - Dst: repo_git_path_replace
      Src: /src/git/notes-merge.c:302,1
    - Dst: file_exists
      Src: /src/git/notes-merge.c:304,1
    - Dst: repo_git_path_replace
      Src: /src/git/notes-merge.c:304,1
    - Dst: die
      Src: /src/git/notes-merge.c:306,1
    - Dst: repo_git_path_replace
      Src: /src/git/notes-merge.c:307,1
    - Dst: strbuf_release
      Src: /src/git/notes-merge.c:309,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct notes_merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 310
    functionName: check_notes_merge_worktree
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - is_empty_dir
    - die_errno
    - safe_create_leading_directories_const
    - _
    - file_exists
    - repo_git_path_replace
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: void check_notes_merge_worktree(struct notes_merge_options *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/notes-merge.c:316,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:316,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/notes-merge.c:317,1
    - Dst: die_errno
      Src: /src/git/notes-merge.c:318,1
    - Dst: xopen
      Src: /src/git/notes-merge.c:320,1
    - Dst: write_in_full
      Src: /src/git/notes-merge.c:323,1
    - Dst: die_errno
      Src: /src/git/notes-merge.c:328,1
    - Dst: close
      Src: /src/git/notes-merge.c:334,1
    - Dst: free
      Src: /src/git/notes-merge.c:335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - obj
    - buf
    - size
    argTypes:
    - struct object_id*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 336
    functionName: write_buf_to_worktree
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - xopen
    - repo_git_path
    - oid_to_hex
    - die_errno
    - safe_create_leading_directories_const
    - close
    - free
    - write_in_full
    linkageType: ''
    returnType: void
    signature: "void write_buf_to_worktree(const struct object_id *obj,\n\t\t\t\t
      \ const char *buf, unsigned long size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/notes-merge.c:343,1
    - Dst: die
      Src: /src/git/notes-merge.c:346,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:347,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:347,1
    - Dst: die
      Src: /src/git/notes-merge.c:349,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:350,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:350,1
    - Dst: write_buf_to_worktree
      Src: /src/git/notes-merge.c:351,1
    - Dst: free
      Src: /src/git/notes-merge.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - note
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 353
    functionName: write_note_to_worktree
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - write_buf_to_worktree
    - free
    - odb_read_object
    linkageType: ''
    returnType: void
    signature: "void write_note_to_worktree(const struct object_id *obj,\n\t\t\t\t
      \  const struct object_id *note)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_mmblob
      Src: /src/git/notes-merge.c:362,1
    - Dst: read_mmblob
      Src: /src/git/notes-merge.c:363,1
    - Dst: read_mmblob
      Src: /src/git/notes-merge.c:364,1
    - Dst: ll_merge
      Src: /src/git/notes-merge.c:366,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:366,1
    - Dst: free
      Src: /src/git/notes-merge.c:370,1
    - Dst: free
      Src: /src/git/notes-merge.c:371,1
    - Dst: free
      Src: /src/git/notes-merge.c:372,1
    - Dst: warning
      Src: /src/git/notes-merge.c:375,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:376,1
    - Dst: die
      Src: /src/git/notes-merge.c:378,1
    - Dst: write_buf_to_worktree
      Src: /src/git/notes-merge.c:380,1
    - Dst: free
      Src: /src/git/notes-merge.c:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - struct notes_merge_options*
    - struct notes_merge_pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 355
    functionDepth: 4
    functionLinenumber: 355
    functionLinenumberEnd: 384
    functionName: ll_merge_in_worktree
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - write_buf_to_worktree
    - read_mmblob
    - free
    - warning
    - ll_merge
    linkageType: ''
    returnType: int
    signature: "int ll_merge_in_worktree(struct notes_merge_options *o,\n\t\t\t\tstruct
      notes_merge_pair *p)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:393,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:395,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:395,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:396,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:396,1
    - Dst: strbuf_addstr
      Src: /src/git/notes-merge.c:400,1
    - Dst: strbuf_addf
      Src: /src/git/notes-merge.c:402,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:402,1
    - Dst: printf
      Src: /src/git/notes-merge.c:405,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:405,1
    - Dst: check_notes_merge_worktree
      Src: /src/git/notes-merge.c:406,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:407,1
    - Dst: assert
      Src: /src/git/notes-merge.c:409,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:409,1
    - Dst: printf
      Src: /src/git/notes-merge.c:411,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:414,1
    - Dst: write_note_to_worktree
      Src: /src/git/notes-merge.c:415,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:416,1
    - Dst: assert
      Src: /src/git/notes-merge.c:418,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:418,1
    - Dst: printf
      Src: /src/git/notes-merge.c:420,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:423,1
    - Dst: write_note_to_worktree
      Src: /src/git/notes-merge.c:424,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:428,1
    - Dst: assert
      Src: /src/git/notes-merge.c:430,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:430,1
    - Dst: assert
      Src: /src/git/notes-merge.c:431,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:431,1
    - Dst: printf
      Src: /src/git/notes-merge.c:433,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:435,1
    - Dst: ll_merge_in_worktree
      Src: /src/git/notes-merge.c:436,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:439,1
    - Dst: remove_note
      Src: /src/git/notes-merge.c:440,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - o
    - p
    - t
    argTypes:
    - struct notes_merge_options*
    - struct notes_merge_pair*
    - struct notes_tree*
    assertStmts:
    - condition: (!is_null_oid(&p->remote))
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/git/notes-merge.c
    - condition: (!is_null_oid(&p->remote))
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/git/notes-merge.c
    - condition: (!is_null_oid(&p->local))
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/git/notes-merge.c
    - condition: (!is_null_oid(&p->local))
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/git/notes-merge.c
    constantsTouched: []
    func_position:
      end: 443
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 443
    functionName: merge_one_change_manual
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - ll_merge_in_worktree
    - oid_to_hex
    - assert
    - write_note_to_worktree
    - trace_printf
    - strbuf_addf
    - is_null_oid
    - remove_note
    - check_notes_merge_worktree
    - strbuf_addstr
    - printf
    linkageType: ''
    returnType: int
    signature: "int merge_one_change_manual(struct notes_merge_options *o,\n\t\t\t\t
      \  struct notes_merge_pair *p,\n\t\t\t\t   struct notes_tree *t)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: merge_one_change_manual
      Src: /src/git/notes-merge.c:455,1
    - Dst: printf
      Src: /src/git/notes-merge.c:458,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:459,1
    - Dst: printf
      Src: /src/git/notes-merge.c:464,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:465,1
    - Dst: add_note
      Src: /src/git/notes-merge.c:466,1
    - Dst: BUG
      Src: /src/git/notes-merge.c:467,1
    - Dst: printf
      Src: /src/git/notes-merge.c:471,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:472,1
    - Dst: add_note
      Src: /src/git/notes-merge.c:473,1
    - Dst: die
      Src: /src/git/notes-merge.c:474,1
    - Dst: printf
      Src: /src/git/notes-merge.c:479,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:480,1
    - Dst: add_note
      Src: /src/git/notes-merge.c:481,1
    - Dst: die
      Src: /src/git/notes-merge.c:482,1
    - Dst: die
      Src: /src/git/notes-merge.c:486,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - o
    - p
    - t
    argTypes:
    - struct notes_merge_options*
    - struct notes_merge_pair*
    - struct notes_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 445
    functionDepth: 6
    functionLinenumber: 445
    functionLinenumberEnd: 487
    functionName: merge_one_change
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - add_note
    - merge_one_change_manual
    - BUG
    - printf
    linkageType: ''
    returnType: int
    signature: "int merge_one_change(struct notes_merge_options *o,\n\t\t\t    struct
      notes_merge_pair *p, struct notes_tree *t)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:495,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:498,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:499,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:499,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:500,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:501,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:503,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:505,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:506,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:508,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:509,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:510,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:512,1
    - Dst: add_note
      Src: /src/git/notes-merge.c:513,1
    - Dst: BUG
      Src: /src/git/notes-merge.c:515,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:518,1
    - Dst: merge_one_change
      Src: /src/git/notes-merge.c:519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - o
    - changes
    - num_changes
    - t
    argTypes:
    - struct notes_merge_options*
    - struct notes_merge_pair*
    - int*
    - struct notes_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 489
    functionDepth: 7
    functionLinenumber: 489
    functionLinenumberEnd: 524
    functionName: merge_changes
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - trace_printf
    - merge_one_change
    - add_note
    - BUG
    - oideq
    linkageType: ''
    returnType: int
    signature: "int merge_changes(struct notes_merge_options *o,\n\t\t\t struct notes_merge_pair
      *changes, int *num_changes,\n\t\t\t struct notes_tree *t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:535,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:536,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:536,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:537,1
    - Dst: diff_tree_remote
      Src: /src/git/notes-merge.c:539,1
    - Dst: diff_tree_local
      Src: /src/git/notes-merge.c:540,1
    - Dst: merge_changes
      Src: /src/git/notes-merge.c:542,1
    - Dst: free
      Src: /src/git/notes-merge.c:543,1
    - Dst: printf
      Src: /src/git/notes-merge.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - o
    - base
    - local
    - remote
    - t
    argTypes:
    - struct notes_merge_options*
    - struct object_id*
    - struct object_id*
    - struct object_id*
    - struct notes_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 526
    functionDepth: 8
    functionLinenumber: 526
    functionLinenumberEnd: 552
    functionName: merge_from_diffs
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - diff_tree_local
    - merge_changes
    - trace_printf
    - diff_tree_remote
    - free
    - printf
    linkageType: ''
    returnType: int
    signature: "int merge_from_diffs(struct notes_merge_options *o,\n\t\t\t    const
      struct object_id *base,\n\t\t\t    const struct object_id *local,\n\t\t\t    const
      struct object_id *remote,\n\t\t\t    struct notes_tree *t)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes-merge.c:564,1
    - Dst: assert
      Src: /src/git/notes-merge.c:565,1
    - Dst: strcmp
      Src: /src/git/notes-merge.c:565,1
    - Dst: oidclr
      Src: /src/git/notes-merge.c:566,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:568,1
    - Dst: refs_read_ref_full
      Src: /src/git/notes-merge.c:572,1
    - Dst: get_main_ref_store
      Src: /src/git/notes-merge.c:572,1
    - Dst: die
      Src: /src/git/notes-merge.c:573,1
    - Dst: check_refname_format
      Src: /src/git/notes-merge.c:574,1
    - Dst: is_null_oid
      Src: /src/git/notes-merge.c:575,1
    - Dst: lookup_commit_reference
      Src: /src/git/notes-merge.c:577,1
    - Dst: die
      Src: /src/git/notes-merge.c:578,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:579,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:580,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:580,1
    - Dst: repo_get_oid
      Src: /src/git/notes-merge.c:583,1
    - Dst: check_refname_format
      Src: /src/git/notes-merge.c:588,1
    - Dst: oidclr
      Src: /src/git/notes-merge.c:589,1
    - Dst: die
      Src: /src/git/notes-merge.c:592,1
    - Dst: lookup_commit_reference
      Src: /src/git/notes-merge.c:595,1
    - Dst: die
      Src: /src/git/notes-merge.c:596,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:597,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:599,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:599,1
    - Dst: die
      Src: /src/git/notes-merge.c:602,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:606,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:611,1
    - Dst: assert
      Src: /src/git/notes-merge.c:614,1
    - Dst: repo_get_merge_bases
      Src: /src/git/notes-merge.c:617,1
    - Dst: exit
      Src: /src/git/notes-merge.c:618,1
    - Dst: null_oid
      Src: /src/git/notes-merge.c:620,1
    - Dst: printf
      Src: /src/git/notes-merge.c:623,1
    - Dst: get_commit_tree_oid
      Src: /src/git/notes-merge.c:626,1
    - Dst: printf
      Src: /src/git/notes-merge.c:628,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:629,1
    - Dst: get_commit_tree_oid
      Src: /src/git/notes-merge.c:633,1
    - Dst: printf
      Src: /src/git/notes-merge.c:635,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:636,1
    - Dst: printf
      Src: /src/git/notes-merge.c:640,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:641,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:642,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:643,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:645,1
    - Dst: printf_ln
      Src: /src/git/notes-merge.c:648,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:649,1
    - Dst: oideq
      Src: /src/git/notes-merge.c:652,1
    - Dst: printf
      Src: /src/git/notes-merge.c:655,1
    - Dst: oidcpy
      Src: /src/git/notes-merge.c:656,1
    - Dst: merge_from_diffs
      Src: /src/git/notes-merge.c:660,1
    - Dst: get_commit_tree_oid
      Src: /src/git/notes-merge.c:661,1
    - Dst: get_commit_tree_oid
      Src: /src/git/notes-merge.c:662,1
    - Dst: commit_list_insert
      Src: /src/git/notes-merge.c:667,1
    - Dst: commit_list_insert
      Src: /src/git/notes-merge.c:668,1
    - Dst: create_notes_commit
      Src: /src/git/notes-merge.c:669,1
    - Dst: commit_list_free
      Src: /src/git/notes-merge.c:671,1
    - Dst: commit_list_free
      Src: /src/git/notes-merge.c:675,1
    - Dst: strbuf_release
      Src: /src/git/notes-merge.c:676,1
    - Dst: trace_printf
      Src: /src/git/notes-merge.c:677,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:678,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 3
    argNames:
    - o
    - local_tree
    - result_oid
    argTypes:
    - struct notes_merge_options*
    - struct notes_tree*
    - struct object_id*
    assertStmts:
    - condition: (o->local_ref && o->remote_ref)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/git/notes-merge.c
    - condition: (!strcmp(o->local_ref, local_tree->ref))
      pos:
        line_end: 564
        line_start: 564
        source_file: /src/git/notes-merge.c
    - condition: (local && remote)
      pos:
        line_end: 613
        line_start: 613
        source_file: /src/git/notes-merge.c
    constantsTouched: []
    func_position:
      end: 680
      start: 554
    functionDepth: 9
    functionLinenumber: 554
    functionLinenumberEnd: 680
    functionName: notes_merge
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - commit_list_insert
    - repo_get_oid
    - is_null_oid
    - repo_get_merge_bases
    - merge_from_diffs
    - oidclr
    - strcmp
    - printf
    - get_main_ref_store
    - strbuf_release
    - die
    - lookup_commit_reference
    - trace_printf
    - refs_read_ref_full
    - oid_to_hex
    - check_refname_format
    - assert
    - exit
    - get_commit_tree_oid
    - commit_list_free
    - create_notes_commit
    - printf_ln
    - null_oid
    - oideq
    linkageType: ''
    returnType: int
    signature: "int notes_merge(struct notes_merge_options *o,\n\t\tstruct notes_tree
      *local_tree,\n\t\tstruct object_id *result_oid)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_buffer
      Src: /src/git/notes-merge.c:697,1
    - Dst: strstr
      Src: /src/git/notes-merge.c:699,1
    - Dst: repo_git_path_replace
      Src: /src/git/notes-merge.c:702,1
    - Dst: printf
      Src: /src/git/notes-merge.c:704,1
    - Dst: die
      Src: /src/git/notes-merge.c:708,1
    - Dst: opendir
      Src: /src/git/notes-merge.c:711,1
    - Dst: die_errno
      Src: /src/git/notes-merge.c:713,1
    - Dst: strbuf_addch
      Src: /src/git/notes-merge.c:715,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/notes-merge.c:717,1
    - Dst: get_oid_hex
      Src: /src/git/notes-merge.c:721,1
    - Dst: printf
      Src: /src/git/notes-merge.c:723,1
    - Dst: strbuf_addstr
      Src: /src/git/notes-merge.c:728,1
    - Dst: stat
      Src: /src/git/notes-merge.c:730,1
    - Dst: die_errno
      Src: /src/git/notes-merge.c:731,1
    - Dst: index_path
      Src: /src/git/notes-merge.c:732,1
    - Dst: die
      Src: /src/git/notes-merge.c:733,1
    - Dst: add_note
      Src: /src/git/notes-merge.c:734,1
    - Dst: die
      Src: /src/git/notes-merge.c:735,1
    - Dst: printf
      Src: /src/git/notes-merge.c:738,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:739,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:739,1
    - Dst: strbuf_setlen
      Src: /src/git/notes-merge.c:740,1
    - Dst: create_notes_commit
      Src: /src/git/notes-merge.c:743,1
    - Dst: strlen
      Src: /src/git/notes-merge.c:744,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/notes-merge.c:745,1
    - Dst: printf
      Src: /src/git/notes-merge.c:747,1
    - Dst: oid_to_hex
      Src: /src/git/notes-merge.c:748,1
    - Dst: strbuf_release
      Src: /src/git/notes-merge.c:749,1
    - Dst: closedir
      Src: /src/git/notes-merge.c:750,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 4
    argNames:
    - o
    - partial_tree
    - partial_commit
    - result_oid
    argTypes:
    - struct notes_merge_options*
    - struct notes_tree*
    - struct commit*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 682
    functionDepth: 9
    functionLinenumber: 682
    functionLinenumberEnd: 752
    functionName: notes_merge_commit
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - repo_get_commit_buffer
    - printf
    - strbuf_release
    - die
    - strstr
    - strbuf_setlen
    - add_note
    - strbuf_addstr
    - oid_to_hex
    - get_oid_hex
    - stat
    - die_errno
    - repo_unuse_commit_buffer
    - readdir_skip_dot_and_dotdot
    - closedir
    - index_path
    - strbuf_addch
    - opendir
    - strlen
    - create_notes_commit
    - repo_git_path_replace
    linkageType: ''
    returnType: int
    signature: "int notes_merge_commit(struct notes_merge_options *o,\n\t\t       struct
      notes_tree *partial_tree,\n\t\t       struct commit *partial_commit,\n\t\t       struct
      object_id *result_oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path_replace
      Src: /src/git/notes-merge.c:764,1
    - Dst: printf
      Src: /src/git/notes-merge.c:766,1
    - Dst: remove_dir_recursively
      Src: /src/git/notes-merge.c:767,1
    - Dst: strbuf_release
      Src: /src/git/notes-merge.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct notes_merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 754
    functionDepth: 8
    functionLinenumber: 754
    functionLinenumberEnd: 770
    functionName: notes_merge_abort
    functionSourceFile: /src/git/notes-merge.c
    functionUses: 0
    functionsReached:
    - remove_dir_recursively
    - strbuf_release
    - repo_git_path_replace
    - printf
    linkageType: ''
    returnType: int
    signature: int notes_merge_abort(struct notes_merge_options *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/bundle.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct bundle_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: bundle_header_init
    functionSourceFile: /src/git/bundle.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void bundle_header_init(struct bundle_header *header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/bundle.c:42,1
    - Dst: string_list_clear
      Src: /src/git/bundle.c:43,1
    - Dst: list_objects_filter_release
      Src: /src/git/bundle.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct bundle_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: bundle_header_release
    functionSourceFile: /src/git/bundle.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    - list_objects_filter_release
    linkageType: ''
    returnType: void
    signature: void bundle_header_release(struct bundle_header *header)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/bundle.c:50,1
    - Dst: hash_algo_by_name
      Src: /src/git/bundle.c:51,1
    - Dst: error
      Src: /src/git/bundle.c:53,1
    - Dst: _
      Src: /src/git/bundle.c:53,1
    - Dst: skip_prefix
      Src: /src/git/bundle.c:57,1
    - Dst: parse_list_objects_filter
      Src: /src/git/bundle.c:58,1
    - Dst: error
      Src: /src/git/bundle.c:61,1
    - Dst: _
      Src: /src/git/bundle.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - header
    - capability
    argTypes:
    - struct bundle_header*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: parse_capability
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - error
    - parse_list_objects_filter
    - _
    - hash_algo_by_name
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int parse_capability(struct bundle_header *header, const char *capability)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/bundle.c:68,1
    - Dst: strcmp
      Src: /src/git/bundle.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - header
    - line
    argTypes:
    - struct bundle_header*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: parse_bundle_signature
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_bundle_signature(struct bundle_header *header, const char
      *line)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getwholeline_fd
      Src: /src/git/bundle.c:84,1
    - Dst: parse_bundle_signature
      Src: /src/git/bundle.c:85,1
    - Dst: error
      Src: /src/git/bundle.c:87,1
    - Dst: _
      Src: /src/git/bundle.c:87,1
    - Dst: strbuf_getwholeline_fd
      Src: /src/git/bundle.c:101,1
    - Dst: strbuf_rtrim
      Src: /src/git/bundle.c:107,1
    - Dst: parse_capability
      Src: /src/git/bundle.c:110,1
    - Dst: strbuf_remove
      Src: /src/git/bundle.c:119,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/bundle.c:127,1
    - Dst: isspace
      Src: /src/git/bundle.c:128,1
    - Dst: error
      Src: /src/git/bundle.c:131,1
    - Dst: _
      Src: /src/git/bundle.c:131,1
    - Dst: oiddup
      Src: /src/git/bundle.c:136,1
    - Dst: string_list_append
      Src: /src/git/bundle.c:138,1
    - Dst: string_list_append
      Src: /src/git/bundle.c:140,1
    - Dst: close
      Src: /src/git/bundle.c:146,1
    - Dst: strbuf_release
      Src: /src/git/bundle.c:149,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 41
    argCount: 3
    argNames:
    - fd
    - header
    - report_path
    argTypes:
    - int
    - struct bundle_header*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 151
    functionName: read_bundle_header_fd
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - error
    - isspace
    - oiddup
    - parse_bundle_signature
    - strbuf_release
    - strbuf_remove
    - parse_oid_hex_algop
    - close
    - string_list_append
    - _
    - strbuf_getwholeline_fd
    - parse_capability
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: "int read_bundle_header_fd(int fd, struct bundle_header *header,\n\t\t\t
      \ const char *report_path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/bundle.c:155,1
    - Dst: error
      Src: /src/git/bundle.c:158,1
    - Dst: _
      Src: /src/git/bundle.c:158,1
    - Dst: read_bundle_header_fd
      Src: /src/git/bundle.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - path
    - header
    argTypes:
    - char*
    - struct bundle_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: read_bundle_header
    functionSourceFile: /src/git/bundle.c
    functionUses: 1
    functionsReached:
    - error
    - read_bundle_header_fd
    - open
    - _
    linkageType: ''
    returnType: int
    signature: int read_bundle_header(const char *path, struct bundle_header *header)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/bundle.c:165,1
    - Dst: read_bundle_header_fd
      Src: /src/git/bundle.c:169,1
    - Dst: close
      Src: /src/git/bundle.c:171,1
    - Dst: bundle_header_release
      Src: /src/git/bundle.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - quiet
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 174
    functionName: is_bundle
    functionSourceFile: /src/git/bundle.c
    functionUses: 1
    functionsReached:
    - close
    - read_bundle_header_fd
    - bundle_header_release
    - open
    linkageType: ''
    returnType: int
    signature: int is_bundle(const char *path, int quiet)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/bundle.c:187,1
    - Dst: printf
      Src: /src/git/bundle.c:195,1
    - Dst: oid_to_hex
      Src: /src/git/bundle.c:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - r
    - argc
    - argv
    argTypes:
    - struct string_list*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 198
    functionName: list_refs
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - printf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int list_refs(struct string_list *r, int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cb_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: iterate_ref_map
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *iterate_ref_map(void *cb_data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/bundle.c:228,1
    - Dst: error
      Src: /src/git/bundle.c:237,1
    - Dst: _
      Src: /src/git/bundle.c:237,1
    - Dst: parse_object
      Src: /src/git/bundle.c:243,1
    - Dst: error
      Src: /src/git/bundle.c:250,1
    - Dst: error
      Src: /src/git/bundle.c:251,1
    - Dst: oid_to_hex
      Src: /src/git/bundle.c:251,1
    - Dst: check_connected
      Src: /src/git/bundle.c:256,1
    - Dst: error
      Src: /src/git/bundle.c:257,1
    - Dst: _
      Src: /src/git/bundle.c:257,1
    - Dst: printf_ln
      Src: /src/git/bundle.c:265,1
    - Dst: Q_
      Src: /src/git/bundle.c:265,1
    - Dst: list_refs
      Src: /src/git/bundle.c:269,1
    - Dst: printf_ln
      Src: /src/git/bundle.c:273,1
    - Dst: _
      Src: /src/git/bundle.c:273,1
    - Dst: printf_ln
      Src: /src/git/bundle.c:275,1
    - Dst: Q_
      Src: /src/git/bundle.c:275,1
    - Dst: list_refs
      Src: /src/git/bundle.c:279,1
    - Dst: printf_ln
      Src: /src/git/bundle.c:282,1
    - Dst: _
      Src: /src/git/bundle.c:282,1
    - Dst: printf_ln
      Src: /src/git/bundle.c:285,1
    - Dst: _
      Src: /src/git/bundle.c:285,1
    - Dst: list_objects_filter_spec
      Src: /src/git/bundle.c:286,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - r
    - header
    - flags
    argTypes:
    - struct repository*
    - struct bundle_header*
    - enum verify_bundle_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 290
    functionName: verify_bundle
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - error
    - list_objects_filter_spec
    - oid_to_hex
    - check_connected
    - parse_object
    - _
    - Q_
    - list_refs
    - printf_ln
    linkageType: ''
    returnType: int
    signature: "int verify_bundle(struct repository *r,\n\t\t  struct bundle_header
      *header,\n\t\t  enum verify_bundle_flags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_refs
      Src: /src/git/bundle.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - header
    - argc
    - argv
    argTypes:
    - struct bundle_header*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: list_bundle_refs
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - list_refs
    linkageType: ''
    returnType: int
    signature: int list_bundle_refs(struct bundle_header *header, int argc, const
      char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/bundle.c:308,1
    - Dst: memmem
      Src: /src/git/bundle.c:311,1
    - Dst: memchr
      Src: /src/git/bundle.c:314,1
    - Dst: memchr
      Src: /src/git/bundle.c:315,1
    - Dst: parse_timestamp
      Src: /src/git/bundle.c:318,1
    - Dst: free
      Src: /src/git/bundle.c:322,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - tag
    - revs
    argTypes:
    - struct object*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 324
    functionName: is_tag_in_date_range
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - memchr
    - parse_timestamp
    - free
    - odb_read_object
    - memmem
    linkageType: ''
    returnType: int
    signature: int is_tag_in_date_range(struct object *tag, struct rev_info *revs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/bundle.c:333,1
    - Dst: strvec_pushv
      Src: /src/git/bundle.c:337,1
    - Dst: strvec_pushf
      Src: /src/git/bundle.c:339,1
    - Dst: list_objects_filter_spec
      Src: /src/git/bundle.c:340,1
    - Dst: dup
      Src: /src/git/bundle.c:350,1
    - Dst: error_errno
      Src: /src/git/bundle.c:352,1
    - Dst: _
      Src: /src/git/bundle.c:352,1
    - Dst: child_process_clear
      Src: /src/git/bundle.c:353,1
    - Dst: start_command
      Src: /src/git/bundle.c:358,1
    - Dst: error
      Src: /src/git/bundle.c:359,1
    - Dst: _
      Src: /src/git/bundle.c:359,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:364,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:365,1
    - Dst: oid_to_hex
      Src: /src/git/bundle.c:365,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:366,1
    - Dst: close
      Src: /src/git/bundle.c:368,1
    - Dst: finish_command
      Src: /src/git/bundle.c:369,1
    - Dst: error
      Src: /src/git/bundle.c:370,1
    - Dst: _
      Src: /src/git/bundle.c:370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - bundle_fd
    - revs
    - pack_options
    argTypes:
    - int
    - struct rev_info*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 372
    functionName: write_pack_data
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - error
    - list_objects_filter_spec
    - error_errno
    - dup
    - write_or_die
    - oid_to_hex
    - finish_command
    - strvec_pushv
    - strvec_pushl
    - child_process_clear
    - _
    - close
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: int
    signature: int write_pack_data(int bundle_fd, struct rev_info *revs, struct strvec
      *pack_options)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_dwim_ref
      Src: /src/git/bundle.c:398,1
    - Dst: strlen
      Src: /src/git/bundle.c:398,1
    - Dst: refs_read_ref_full
      Src: /src/git/bundle.c:401,1
    - Dst: get_main_ref_store
      Src: /src/git/bundle.c:401,1
    - Dst: strset_contains
      Src: /src/git/bundle.c:405,1
    - Dst: is_tag_in_date_range
      Src: /src/git/bundle.c:409,1
    - Dst: warning
      Src: /src/git/bundle.c:424,1
    - Dst: _
      Src: /src/git/bundle.c:424,1
    - Dst: strset_add
      Src: /src/git/bundle.c:430,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:431,1
    - Dst: oid_to_hex
      Src: /src/git/bundle.c:431,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:432,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:433,1
    - Dst: strlen
      Src: /src/git/bundle.c:433,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:434,1
    - Dst: free
      Src: /src/git/bundle.c:436,1
    - Dst: strset_clear
      Src: /src/git/bundle.c:439,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:442,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - bundle_fd
    - revs
    argTypes:
    - int
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 444
    functionName: write_bundle_refs
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - oid_to_hex
    - strset_contains
    - repo_dwim_ref
    - is_tag_in_date_range
    - strset_clear
    - strlen
    - refs_read_ref_full
    - _
    - free
    - warning
    - strset_add
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int write_bundle_refs(int bundle_fd, struct rev_info *revs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/bundle.c:460,1
    - Dst: oid_to_hex
      Src: /src/git/bundle.c:460,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:461,1
    - Dst: get_log_output_encoding
      Src: /src/git/bundle.c:464,1
    - Dst: strbuf_reset
      Src: /src/git/bundle.c:465,1
    - Dst: pretty_print_commit
      Src: /src/git/bundle.c:466,1
    - Dst: strbuf_trim
      Src: /src/git/bundle.c:467,1
    - Dst: add_object_array_with_path
      Src: /src/git/bundle.c:471,1
    - Dst: strbuf_addch
      Src: /src/git/bundle.c:473,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:474,1
    - Dst: strbuf_release
      Src: /src/git/bundle.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - commit
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 476
    functionName: write_bundle_prerequisites
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - strbuf_release
    - oid_to_hex
    - pretty_print_commit
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - strbuf_trim
    - get_log_output_encoding
    - add_object_array_with_path
    linkageType: ''
    returnType: void
    signature: void write_bundle_prerequisites(struct commit *commit, void *data)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/bundle.c:493,1
    - Dst: setup_revisions
      Src: /src/git/bundle.c:501,1
    - Dst: error
      Src: /src/git/bundle.c:514,1
    - Dst: _
      Src: /src/git/bundle.c:514,1
    - Dst: strcmp
      Src: /src/git/bundle.c:518,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/bundle.c:522,1
    - Dst: die
      Src: /src/git/bundle.c:529,1
    - Dst: _
      Src: /src/git/bundle.c:529,1
    - Dst: die
      Src: /src/git/bundle.c:531,1
    - Dst: _
      Src: /src/git/bundle.c:531,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:533,1
    - Dst: strlen
      Src: /src/git/bundle.c:533,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:536,1
    - Dst: strlen
      Src: /src/git/bundle.c:536,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:537,1
    - Dst: strlen
      Src: /src/git/bundle.c:537,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:538,1
    - Dst: strlen
      Src: /src/git/bundle.c:538,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:539,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/bundle.c:542,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:544,1
    - Dst: strlen
      Src: /src/git/bundle.c:544,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:545,1
    - Dst: strlen
      Src: /src/git/bundle.c:545,1
    - Dst: write_or_die
      Src: /src/git/bundle.c:546,1
    - Dst: memcpy
      Src: /src/git/bundle.c:551,1
    - Dst: add_object_array_with_path
      Src: /src/git/bundle.c:558,1
    - Dst: prepare_revision_walk
      Src: /src/git/bundle.c:565,1
    - Dst: die
      Src: /src/git/bundle.c:566,1
    - Dst: traverse_commit_list
      Src: /src/git/bundle.c:575,1
    - Dst: write_bundle_refs
      Src: /src/git/bundle.c:578,1
    - Dst: die
      Src: /src/git/bundle.c:580,1
    - Dst: _
      Src: /src/git/bundle.c:580,1
    - Dst: write_pack_data
      Src: /src/git/bundle.c:587,1
    - Dst: commit_lock_file
      Src: /src/git/bundle.c:593,1
    - Dst: die_errno
      Src: /src/git/bundle.c:594,1
    - Dst: _
      Src: /src/git/bundle.c:594,1
    - Dst: object_array_clear
      Src: /src/git/bundle.c:600,1
    - Dst: release_revisions
      Src: /src/git/bundle.c:601,1
    - Dst: rollback_lock_file
      Src: /src/git/bundle.c:602,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 6
    argNames:
    - r
    - path
    - argc
    - argv
    - pack_options
    - version
    argTypes:
    - struct repository*
    - char*
    - int
    - char**
    - struct strvec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 478
    functionDepth: 12
    functionLinenumber: 478
    functionLinenumberEnd: 604
    functionName: create_bundle
    functionSourceFile: /src/git/bundle.c
    functionUses: 0
    functionsReached:
    - hold_lock_file_for_update
    - write_pack_data
    - object_array_clear
    - write_bundle_refs
    - repo_init_revisions
    - strcmp
    - error
    - write_or_die
    - die
    - traverse_commit_list
    - commit_lock_file
    - release_revisions
    - memcpy
    - rollback_lock_file
    - prepare_revision_walk
    - expand_list_objects_filter_spec
    - die_errno
    - _
    - setup_revisions
    - strlen
    - add_object_array_with_path
    linkageType: ''
    returnType: int
    signature: "int create_bundle(struct repository *r, const char *path,\n\t\t  int
      argc, const char **argv, struct strvec *pack_options, int version)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: verify_bundle
      Src: /src/git/bundle.c:616,1
    - Dst: close
      Src: /src/git/bundle.c:617,1
    - Dst: strvec_pushl
      Src: /src/git/bundle.c:621,1
    - Dst: strvec_push
      Src: /src/git/bundle.c:625,1
    - Dst: strvec_pushf
      Src: /src/git/bundle.c:628,1
    - Dst: strvec_pushv
      Src: /src/git/bundle.c:632,1
    - Dst: run_command
      Src: /src/git/bundle.c:637,1
    - Dst: error
      Src: /src/git/bundle.c:638,1
    - Dst: _
      Src: /src/git/bundle.c:638,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - r
    - header
    - bundle_fd
    - extra_index_pack_args
    - opts
    argTypes:
    - struct repository*
    - struct bundle_header*
    - int
    - struct strvec*
    - struct unbundle_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 606
    functionDepth: 8
    functionLinenumber: 606
    functionLinenumberEnd: 640
    functionName: unbundle
    functionSourceFile: /src/git/bundle.c
    functionUses: 1
    functionsReached:
    - error
    - strvec_push
    - run_command
    - strvec_pushv
    - strvec_pushl
    - verify_bundle
    - _
    - close
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int unbundle(struct repository *r, struct bundle_header *header,\n\t
      \    int bundle_fd, struct strvec *extra_index_pack_args,\n\t     struct unbundle_opts
      *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - j
    - ','
    - tgt_j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: for_each_builtin
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_builtin(j, tgt_j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - j
    - ','
    - tgt_j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: for_each_wanted_builtin
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_wanted_builtin(j, tgt_j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_builtin
      Src: /src/git/trace2.c:70,1
    - Dst: struct tr2_tgt*::pfn_init
      Src: /src/git/trace2.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: tr2_tgt_want_builtins
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_builtin
    - struct tr2_tgt*::pfn_init
    linkageType: ''
    returnType: int
    signature: int tr2_tgt_want_builtins(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_builtin
      Src: /src/git/trace2.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: tr2_tgt_disable_builtins
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_builtin
    linkageType: ''
    returnType: void
    signature: void tr2_tgt_disable_builtins(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:103,1
    - Dst: struct tr2_tgt*::pfn_timer
      Src: /src/git/trace2.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - meta
    - timer
    - is_final_data
    argTypes:
    - struct tr2_timer_metadata*
    - struct tr2_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: tr2_tgt_emit_a_timer
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - struct tr2_tgt*::pfn_timer
    linkageType: ''
    returnType: void
    signature: "void tr2_tgt_emit_a_timer(const struct tr2_timer_metadata *meta,\n\t\t\t\t
      const struct tr2_timer *timer,\n\t\t\t\t int is_final_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:119,1
    - Dst: struct tr2_tgt*::pfn_counter
      Src: /src/git/trace2.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - meta
    - counter
    - is_final_data
    argTypes:
    - struct tr2_counter_metadata*
    - struct tr2_counter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: tr2_tgt_emit_a_counter
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - struct tr2_tgt*::pfn_counter
    linkageType: ''
    returnType: void
    signature: "void tr2_tgt_emit_a_counter(const struct tr2_counter_metadata *meta,\n\t\t\t\t
      \  const struct tr2_counter *counter,\n\t\t\t\t   int is_final_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:141,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:142,1
    - Dst: tr2tls_pop_unwind_self
      Src: /src/git/trace2.c:149,1
    - Dst: tr2_emit_per_thread_timers
      Src: /src/git/trace2.c:158,1
    - Dst: tr2_emit_per_thread_counters
      Src: /src/git/trace2.c:159,1
    - Dst: tr2tls_lock
      Src: /src/git/trace2.c:170,1
    - Dst: tr2_update_final_timers
      Src: /src/git/trace2.c:171,1
    - Dst: tr2_update_final_counters
      Src: /src/git/trace2.c:172,1
    - Dst: tr2_emit_final_timers
      Src: /src/git/trace2.c:173,1
    - Dst: tr2_emit_final_counters
      Src: /src/git/trace2.c:174,1
    - Dst: tr2tls_unlock
      Src: /src/git/trace2.c:175,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:177,1
    - Dst: struct tr2_tgt*::pfn_atexit
      Src: /src/git/trace2.c:179,1
    - Dst: tr2_tgt_disable_builtins
      Src: /src/git/trace2.c:182,1
    - Dst: tr2tls_release
      Src: /src/git/trace2.c:184,1
    - Dst: tr2_sid_release
      Src: /src/git/trace2.c:185,1
    - Dst: tr2_cmd_name_release
      Src: /src/git/trace2.c:186,1
    - Dst: tr2_cfg_free_patterns
      Src: /src/git/trace2.c:187,1
    - Dst: tr2_cfg_free_env_vars
      Src: /src/git/trace2.c:188,1
    - Dst: tr2_sysenv_release
      Src: /src/git/trace2.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 192
    functionName: tr2main_atexit_handler
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2_update_final_timers
    - tr2_tgt_disable_builtins
    - tr2_emit_final_timers
    - tr2_emit_per_thread_counters
    - tr2tls_pop_unwind_self
    - tr2_sid_release
    - struct tr2_tgt*::pfn_atexit
    - for_each_wanted_builtin
    - getnanotime
    - tr2_cmd_name_release
    - tr2_sysenv_release
    - tr2_update_final_counters
    - tr2_emit_per_thread_timers
    - tr2tls_release
    - tr2_emit_final_counters
    - tr2tls_absolute_elapsed
    - tr2_cfg_free_env_vars
    - tr2tls_unlock
    - tr2_cfg_free_patterns
    - tr2tls_lock
    linkageType: ''
    returnType: void
    signature: void tr2main_atexit_handler(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:201,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:202,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:204,1
    - Dst: struct tr2_tgt*::pfn_signal
      Src: /src/git/trace2.c:206,1
    - Dst: sigchain_pop
      Src: /src/git/trace2.c:208,1
    - Dst: raise
      Src: /src/git/trace2.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 210
    functionName: tr2main_signal_handler
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - sigchain_pop
    - tr2tls_absolute_elapsed
    - raise
    - struct tr2_tgt*::pfn_signal
    - for_each_wanted_builtin
    - getnanotime
    linkageType: ''
    returnType: void
    signature: void tr2main_signal_handler(int signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_start_process_clock
      Src: /src/git/trace2.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: trace2_initialize_clock
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2tls_start_process_clock
    linkageType: ''
    returnType: void
    signature: void trace2_initialize_clock(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tr2_sysenv_load
      Src: /src/git/trace2.c:225,1
    - Dst: tr2_tgt_want_builtins
      Src: /src/git/trace2.c:227,1
    - Dst: git_env_bool
      Src: /src/git/trace2.c:230,1
    - Dst: tr2_sid_get
      Src: /src/git/trace2.c:233,1
    - Dst: atexit
      Src: /src/git/trace2.c:235,1
    - Dst: sigchain_push
      Src: /src/git/trace2.c:236,1
    - Dst: tr2tls_init
      Src: /src/git/trace2.c:237,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:242,1
    - Dst: struct tr2_tgt*::pfn_version_fl
      Src: /src/git/trace2.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 245
    functionName: trace2_initialize_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - atexit
    - git_env_bool
    - sigchain_push
    - tr2_sid_get
    - struct tr2_tgt*::pfn_version_fl
    - for_each_wanted_builtin
    - tr2_tgt_want_builtins
    - tr2_sysenv_load
    - tr2tls_init
    linkageType: ''
    returnType: void
    signature: void trace2_initialize_fl(const char *file, int line)
  - 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: trace2_is_enabled
    functionSourceFile: /src/git/trace2.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int trace2_is_enabled(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/trace2.c:265,1
    - Dst: skip_prefix
      Src: /src/git/trace2.c:266,1
    - Dst: strcspn
      Src: /src/git/trace2.c:269,1
    - Dst: memchr
      Src: /src/git/trace2.c:273,1
    - Dst: xstrfmt
      Src: /src/git/trace2.c:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 278
    functionName: redact_arg
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - memchr
    - skip_prefix
    - xstrfmt
    - strcspn
    linkageType: ''
    returnType: char
    signature: char *redact_arg(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redact_arg
      Src: /src/git/trace2.c:297,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/trace2.c:306,1
    - Dst: redact_arg
      Src: /src/git/trace2.c:313,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 318
    functionName: redact_argv
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - redact_arg
    linkageType: ''
    returnType: char
    signature: char **redact_argv(const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/trace2.c:327,1
    - Dst: free
      Src: /src/git/trace2.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - redacted
    - argv
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 330
    functionName: free_redacted_argv
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_redacted_argv(const char **redacted, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:343,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:344,1
    - Dst: redact_argv
      Src: /src/git/trace2.c:346,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:348,1
    - Dst: struct tr2_tgt*::pfn_start_fl
      Src: /src/git/trace2.c:350,1
    - Dst: free_redacted_argv
      Src: /src/git/trace2.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - file
    - line
    - argv
    argTypes:
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 354
    functionName: trace2_cmd_start_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - free_redacted_argv
    - tr2tls_absolute_elapsed
    - redact_argv
    - struct tr2_tgt*::pfn_start_fl
    - for_each_wanted_builtin
    - getnanotime
    linkageType: ''
    returnType: void
    signature: void trace2_cmd_start_fl(const char *file, int line, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace2_collect_process_info
      Src: /src/git/trace2.c:366,1
    - Dst: getnanotime
      Src: /src/git/trace2.c:370,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:371,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:373,1
    - Dst: struct tr2_tgt*::pfn_exit_fl
      Src: /src/git/trace2.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - file
    - line
    - code
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: trace2_cmd_exit_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2tls_absolute_elapsed
    - trace2_collect_process_info
    - for_each_wanted_builtin
    - getnanotime
    - struct tr2_tgt*::pfn_exit_fl
    linkageType: ''
    returnType: void
    signature: void trace2_cmd_exit_fl(const char *file, int line, int code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:392,1
    - Dst: struct tr2_tgt*::pfn_error_va_fl
      Src: /src/git/trace2.c:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 395
    functionName: trace2_cmd_error_va_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - struct tr2_tgt*::pfn_error_va_fl
    linkageType: ''
    returnType: void
    signature: "void trace2_cmd_error_va_fl(const char *file, int line, const char
      *fmt,\n\t\t\t    va_list ap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:405,1
    - Dst: struct tr2_tgt*::pfn_command_path_fl
      Src: /src/git/trace2.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - file
    - line
    - pathname
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 408
    functionName: trace2_cmd_path_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - struct tr2_tgt*::pfn_command_path_fl
    linkageType: ''
    returnType: void
    signature: void trace2_cmd_path_fl(const char *file, int line, const char *pathname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:418,1
    - Dst: struct tr2_tgt*::pfn_command_ancestry_fl
      Src: /src/git/trace2.c:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - file
    - line
    - parent_names
    argTypes:
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 421
    functionName: trace2_cmd_ancestry_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - struct tr2_tgt*::pfn_command_ancestry_fl
    linkageType: ''
    returnType: void
    signature: void trace2_cmd_ancestry_fl(const char *file, int line, const char
      **parent_names)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2_cmd_name_append_hierarchy
      Src: /src/git/trace2.c:432,1
    - Dst: tr2_cmd_name_get_hierarchy
      Src: /src/git/trace2.c:433,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:435,1
    - Dst: struct tr2_tgt*::pfn_command_name_fl
      Src: /src/git/trace2.c:437,1
    - Dst: trace2_cmd_list_config
      Src: /src/git/trace2.c:439,1
    - Dst: trace2_cmd_list_env_vars
      Src: /src/git/trace2.c:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - file
    - line
    - name
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 441
    functionName: trace2_cmd_name_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - trace2_cmd_list_config
    - struct tr2_tgt*::pfn_command_name_fl
    - trace2_cmd_list_env_vars
    - tr2_cmd_name_append_hierarchy
    - for_each_wanted_builtin
    - tr2_cmd_name_get_hierarchy
    linkageType: ''
    returnType: void
    signature: void trace2_cmd_name_fl(const char *file, int line, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:451,1
    - Dst: struct tr2_tgt*::pfn_command_mode_fl
      Src: /src/git/trace2.c:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - file
    - line
    - mode
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 454
    functionName: trace2_cmd_mode_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - struct tr2_tgt*::pfn_command_mode_fl
    linkageType: ''
    returnType: void
    signature: void trace2_cmd_mode_fl(const char *file, int line, const char *mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:465,1
    - Dst: struct tr2_tgt*::pfn_alias_fl
      Src: /src/git/trace2.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - file
    - line
    - alias
    - argv
    argTypes:
    - char*
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: trace2_cmd_alias_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - struct tr2_tgt*::pfn_alias_fl
    linkageType: ''
    returnType: void
    signature: "void trace2_cmd_alias_fl(const char *file, int line, const char *alias,\n\t\t\t
      const char **argv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2_cfg_list_config_fl
      Src: /src/git/trace2.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 482
    functionName: trace2_cmd_list_config_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2_cfg_list_config_fl
    linkageType: ''
    returnType: void
    signature: void trace2_cmd_list_config_fl(const char *file, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2_list_env_vars_fl
      Src: /src/git/trace2.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 496
    functionName: trace2_cmd_list_env_vars_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2_list_env_vars_fl
    linkageType: ''
    returnType: void
    signature: void trace2_cmd_list_env_vars_fl(const char *file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2_cfg_set_fl
      Src: /src/git/trace2.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - file
    - line
    - key
    - value
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 505
    functionName: trace2_cmd_set_config_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2_cfg_set_fl
    linkageType: ''
    returnType: void
    signature: "void trace2_cmd_set_config_fl(const char *file, int line, const char
      *key,\n\t\t\t      const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:519,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:520,1
    - Dst: tr2tls_locked_increment
      Src: /src/git/trace2.c:522,1
    - Dst: redact_argv
      Src: /src/git/trace2.c:532,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:534,1
    - Dst: struct tr2_tgt*::pfn_child_start_fl
      Src: /src/git/trace2.c:536,1
    - Dst: free_redacted_argv
      Src: /src/git/trace2.c:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - file
    - line
    - cmd
    argTypes:
    - char*
    - int
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 543
    functionName: trace2_child_start_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - free_redacted_argv
    - tr2tls_absolute_elapsed
    - tr2tls_locked_increment
    - redact_argv
    - for_each_wanted_builtin
    - getnanotime
    - struct tr2_tgt*::pfn_child_start_fl
    linkageType: ''
    returnType: void
    signature: "void trace2_child_start_fl(const char *file, int line,\n\t\t\t   struct
      child_process *cmd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:557,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:558,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:565,1
    - Dst: struct tr2_tgt*::pfn_child_exit_fl
      Src: /src/git/trace2.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - file
    - line
    - cmd
    - child_exit_code
    argTypes:
    - char*
    - int
    - struct child_process*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 572
    functionName: trace2_child_exit_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - getnanotime
    - tr2tls_absolute_elapsed
    - struct tr2_tgt*::pfn_child_exit_fl
    linkageType: ''
    returnType: void
    signature: "void trace2_child_exit_fl(const char *file, int line, struct child_process
      *cmd,\n\t\t\t  int child_exit_code)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:587,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:588,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:595,1
    - Dst: struct tr2_tgt*::pfn_child_ready_fl
      Src: /src/git/trace2.c:597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - file
    - line
    - cmd
    - ready
    argTypes:
    - char*
    - int
    - struct child_process*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 603
    functionName: trace2_child_ready_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - getnanotime
    - tr2tls_absolute_elapsed
    - struct tr2_tgt*::pfn_child_ready_fl
    linkageType: ''
    returnType: void
    signature: "void trace2_child_ready_fl(const char *file, int line,\n\t\t\t   struct
      child_process *cmd,\n\t\t\t   const char *ready)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:618,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:619,1
    - Dst: tr2tls_locked_increment
      Src: /src/git/trace2.c:621,1
    - Dst: redact_argv
      Src: /src/git/trace2.c:623,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:625,1
    - Dst: struct tr2_tgt*::pfn_exec_fl
      Src: /src/git/trace2.c:627,1
    - Dst: free_redacted_argv
      Src: /src/git/trace2.c:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - file
    - line
    - exe
    - argv
    argTypes:
    - char*
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 633
    functionName: trace2_exec_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - free_redacted_argv
    - tr2tls_absolute_elapsed
    - tr2tls_locked_increment
    - struct tr2_tgt*::pfn_exec_fl
    - redact_argv
    - for_each_wanted_builtin
    - getnanotime
    linkageType: ''
    returnType: int
    signature: "int trace2_exec_fl(const char *file, int line, const char *exe,\n\t\t
      \  const char **argv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:645,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:646,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:648,1
    - Dst: struct tr2_tgt*::pfn_exec_result_fl
      Src: /src/git/trace2.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - file
    - line
    - exec_id
    - code
    argTypes:
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 652
    functionName: trace2_exec_result_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - getnanotime
    - tr2tls_absolute_elapsed
    - struct tr2_tgt*::pfn_exec_result_fl
    linkageType: ''
    returnType: void
    signature: void trace2_exec_result_fl(const char *file, int line, int exec_id,
      int code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_is_main_thread
      Src: /src/git/trace2.c:664,1
    - Dst: trace2_region_enter_printf_fl
      Src: /src/git/trace2.c:674,1
    - Dst: getnanotime
      Src: /src/git/trace2.c:680,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:681,1
    - Dst: tr2tls_create_self
      Src: /src/git/trace2.c:683,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:685,1
    - Dst: struct tr2_tgt*::pfn_thread_start_fl
      Src: /src/git/trace2.c:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - file
    - line
    - thread_base_name
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 689
    functionName: trace2_thread_start_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - trace2_region_enter_printf_fl
    - tr2tls_absolute_elapsed
    - tr2tls_is_main_thread
    - for_each_wanted_builtin
    - struct tr2_tgt*::pfn_thread_start_fl
    - tr2tls_create_self
    - getnanotime
    linkageType: ''
    returnType: void
    signature: void trace2_thread_start_fl(const char *file, int line, const char
      *thread_base_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_is_main_thread
      Src: /src/git/trace2.c:702,1
    - Dst: trace2_region_leave_printf_fl
      Src: /src/git/trace2.c:713,1
    - Dst: getnanotime
      Src: /src/git/trace2.c:718,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:719,1
    - Dst: tr2tls_pop_unwind_self
      Src: /src/git/trace2.c:726,1
    - Dst: tr2tls_region_elasped_self
      Src: /src/git/trace2.c:727,1
    - Dst: tr2_emit_per_thread_timers
      Src: /src/git/trace2.c:735,1
    - Dst: tr2_emit_per_thread_counters
      Src: /src/git/trace2.c:736,1
    - Dst: tr2tls_lock
      Src: /src/git/trace2.c:743,1
    - Dst: tr2_update_final_timers
      Src: /src/git/trace2.c:744,1
    - Dst: tr2_update_final_counters
      Src: /src/git/trace2.c:745,1
    - Dst: tr2tls_unlock
      Src: /src/git/trace2.c:746,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:748,1
    - Dst: struct tr2_tgt*::pfn_thread_exit_fl
      Src: /src/git/trace2.c:750,1
    - Dst: tr2tls_unset_self
      Src: /src/git/trace2.c:754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 755
    functionName: trace2_thread_exit_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2_emit_per_thread_counters
    - tr2tls_pop_unwind_self
    - tr2_update_final_counters
    - tr2tls_absolute_elapsed
    - tr2tls_region_elasped_self
    - trace2_region_leave_printf_fl
    - tr2tls_is_main_thread
    - tr2_update_final_timers
    - tr2tls_unset_self
    - tr2_emit_per_thread_timers
    - tr2tls_unlock
    - struct tr2_tgt*::pfn_thread_exit_fl
    - for_each_wanted_builtin
    - getnanotime
    - tr2tls_lock
    linkageType: ''
    returnType: void
    signature: void trace2_thread_exit_fl(const char *file, int line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redact_arg
      Src: /src/git/trace2.c:767,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:769,1
    - Dst: struct tr2_tgt*::pfn_param_fl
      Src: /src/git/trace2.c:771,1
    - Dst: free
      Src: /src/git/trace2.c:774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - file
    - line
    - param
    - value
    - kvi
    argTypes:
    - char*
    - int
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 775
    functionName: trace2_def_param_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - struct tr2_tgt*::pfn_param_fl
    - for_each_wanted_builtin
    - redact_arg
    - free
    linkageType: ''
    returnType: void
    signature: "void trace2_def_param_fl(const char *file, int line, const char *param,\n\t\t\t
      const char *value, const struct key_value_info *kvi)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_locked_increment
      Src: /src/git/trace2.c:788,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:790,1
    - Dst: struct tr2_tgt*::pfn_repo_fl
      Src: /src/git/trace2.c:792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - file
    - line
    - repo
    argTypes:
    - char*
    - int
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 793
    functionName: trace2_def_repo_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - tr2tls_locked_increment
    - struct tr2_tgt*::pfn_repo_fl
    linkageType: ''
    returnType: void
    signature: void trace2_def_repo_fl(const char *file, int line, struct repository
      *repo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:808,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:809,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:818,1
    - Dst: struct tr2_tgt*::pfn_region_enter_printf_va_fl
      Src: /src/git/trace2.c:820,1
    - Dst: tr2tls_push_self
      Src: /src/git/trace2.c:824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - file
    - line
    - category
    - label
    - repo
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - char*
    - struct repository*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 825
    functionName: trace2_region_enter_printf_va_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2tls_push_self
    - tr2tls_absolute_elapsed
    - struct tr2_tgt*::pfn_region_enter_printf_va_fl
    - for_each_wanted_builtin
    - getnanotime
    linkageType: ''
    returnType: void
    signature: "void trace2_region_enter_printf_va_fl(const char *file, int line,\n\t\t\t\t
      \     const char *category, const char *label,\n\t\t\t\t      const struct repository
      *repo,\n\t\t\t\t      const char *fmt, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/trace2.c:831,1
    - Dst: trace2_region_enter_printf_va_fl
      Src: /src/git/trace2.c:832,1
    - Dst: va_end
      Src: /src/git/trace2.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - file
    - line
    - category
    - label
    - repo
    argTypes:
    - char*
    - int
    - char*
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 836
    functionName: trace2_region_enter_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - trace2_region_enter_printf_va_fl
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: "void trace2_region_enter_fl(const char *file, int line, const char
      *category,\n\t\t\t    const char *label, const struct repository *repo, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/trace2.c:845,1
    - Dst: trace2_region_enter_printf_va_fl
      Src: /src/git/trace2.c:846,1
    - Dst: va_end
      Src: /src/git/trace2.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - file
    - line
    - category
    - label
    - repo
    - fmt
    argTypes:
    - char*
    - int
    - char*
    - char*
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 849
    functionName: trace2_region_enter_printf_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 1
    functionsReached:
    - trace2_region_enter_printf_va_fl
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: "void trace2_region_enter_printf_fl(const char *file, int line,\n\t\t\t\t
      \  const char *category, const char *label,\n\t\t\t\t   const struct repository
      *repo,\n\t\t\t\t   const char *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:865,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:866,1
    - Dst: tr2tls_region_elasped_self
      Src: /src/git/trace2.c:874,1
    - Dst: tr2tls_pop_self
      Src: /src/git/trace2.c:876,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:882,1
    - Dst: struct tr2_tgt*::pfn_region_leave_printf_va_fl
      Src: /src/git/trace2.c:884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - file
    - line
    - category
    - label
    - repo
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - char*
    - struct repository*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 888
    functionName: trace2_region_leave_printf_va_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - struct tr2_tgt*::pfn_region_leave_printf_va_fl
    - tr2tls_absolute_elapsed
    - tr2tls_region_elasped_self
    - tr2tls_pop_self
    - for_each_wanted_builtin
    - getnanotime
    linkageType: ''
    returnType: void
    signature: "void trace2_region_leave_printf_va_fl(const char *file, int line,\n\t\t\t\t
      \     const char *category, const char *label,\n\t\t\t\t      const struct repository
      *repo,\n\t\t\t\t      const char *fmt, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/trace2.c:894,1
    - Dst: trace2_region_leave_printf_va_fl
      Src: /src/git/trace2.c:895,1
    - Dst: va_end
      Src: /src/git/trace2.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - file
    - line
    - category
    - label
    - repo
    argTypes:
    - char*
    - int
    - char*
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 898
    functionName: trace2_region_leave_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - trace2_region_leave_printf_va_fl
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: "void trace2_region_leave_fl(const char *file, int line, const char
      *category,\n\t\t\t    const char *label, const struct repository *repo, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/trace2.c:907,1
    - Dst: trace2_region_leave_printf_va_fl
      Src: /src/git/trace2.c:908,1
    - Dst: va_end
      Src: /src/git/trace2.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - file
    - line
    - category
    - label
    - repo
    - fmt
    argTypes:
    - char*
    - int
    - char*
    - char*
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 911
    functionName: trace2_region_leave_printf_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 1
    functionsReached:
    - trace2_region_leave_printf_va_fl
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: "void trace2_region_leave_printf_fl(const char *file, int line,\n\t\t\t\t
      \  const char *category, const char *label,\n\t\t\t\t   const struct repository
      *repo,\n\t\t\t\t   const char *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:926,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:927,1
    - Dst: tr2tls_region_elasped_self
      Src: /src/git/trace2.c:928,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:930,1
    - Dst: struct tr2_tgt*::pfn_data_fl
      Src: /src/git/trace2.c:932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - file
    - line
    - category
    - repo
    - key
    - value
    argTypes:
    - char*
    - int
    - char*
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 935
    functionName: trace2_data_string_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2tls_absolute_elapsed
    - tr2tls_region_elasped_self
    - for_each_wanted_builtin
    - getnanotime
    - struct tr2_tgt*::pfn_data_fl
    linkageType: ''
    returnType: void
    signature: "void trace2_data_string_fl(const char *file, int line, const char
      *category,\n\t\t\t   const struct repository *repo, const char *key,\n\t\t\t
      \  const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2.c:946,1
    - Dst: trace2_data_string_fl
      Src: /src/git/trace2.c:947,1
    - Dst: strbuf_release
      Src: /src/git/trace2.c:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - file
    - line
    - category
    - repo
    - key
    - value
    argTypes:
    - char*
    - int
    - char*
    - struct repository*
    - char*
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 949
    functionName: trace2_data_intmax_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - trace2_data_string_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void trace2_data_intmax_fl(const char *file, int line, const char
      *category,\n\t\t\t   const struct repository *repo, const char *key,\n\t\t\t
      \  intmax_t value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:964,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:965,1
    - Dst: tr2tls_region_elasped_self
      Src: /src/git/trace2.c:966,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:968,1
    - Dst: struct tr2_tgt*::pfn_data_json_fl
      Src: /src/git/trace2.c:970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - file
    - line
    - category
    - repo
    - key
    - value
    argTypes:
    - char*
    - int
    - char*
    - struct repository*
    - char*
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 973
    functionName: trace2_data_json_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - struct tr2_tgt*::pfn_data_json_fl
    - tr2tls_absolute_elapsed
    - tr2tls_region_elasped_self
    - for_each_wanted_builtin
    - getnanotime
    linkageType: ''
    returnType: void
    signature: "void trace2_data_json_fl(const char *file, int line, const char *category,\n\t\t\t
      const struct repository *repo, const char *key,\n\t\t\t const struct json_writer
      *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2.c:986,1
    - Dst: tr2tls_absolute_elapsed
      Src: /src/git/trace2.c:987,1
    - Dst: for_each_wanted_builtin
      Src: /src/git/trace2.c:993,1
    - Dst: struct tr2_tgt*::pfn_printf_va_fl
      Src: /src/git/trace2.c:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 997
    functionName: trace2_printf_va_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - for_each_wanted_builtin
    - getnanotime
    - tr2tls_absolute_elapsed
    - struct tr2_tgt*::pfn_printf_va_fl
    linkageType: ''
    returnType: void
    signature: "void trace2_printf_va_fl(const char *file, int line, const char *fmt,\n\t\t\t
      va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/trace2.c:1003,1
    - Dst: trace2_printf_va_fl
      Src: /src/git/trace2.c:1004,1
    - Dst: va_end
      Src: /src/git/trace2.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - fmt
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1006
    functionName: trace2_printf_fl
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - trace2_printf_va_fl
    linkageType: ''
    returnType: void
    signature: void trace2_printf_fl(const char *file, int line, const char *fmt,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/trace2.c:1014,1
    - Dst: tr2_start_timer
      Src: /src/git/trace2.c:1016,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - tid
    argTypes:
    - enum trace2_timer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1017
    functionName: trace2_timer_start
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2_start_timer
    - BUG
    linkageType: ''
    returnType: void
    signature: void trace2_timer_start(enum trace2_timer_id tid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/trace2.c:1025,1
    - Dst: tr2_stop_timer
      Src: /src/git/trace2.c:1027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - tid
    argTypes:
    - enum trace2_timer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1028
    functionName: trace2_timer_stop
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2_stop_timer
    - BUG
    linkageType: ''
    returnType: void
    signature: void trace2_timer_stop(enum trace2_timer_id tid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/trace2.c:1036,1
    - Dst: tr2_counter_increment
      Src: /src/git/trace2.c:1038,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - cid
    - value
    argTypes:
    - enum trace2_counter_id
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1039
    functionName: trace2_counter_add
    functionSourceFile: /src/git/trace2.c
    functionUses: 0
    functionsReached:
    - tr2_counter_increment
    - BUG
    linkageType: ''
    returnType: void
    signature: void trace2_counter_add(enum trace2_counter_id cid, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2_sid_get
      Src: /src/git/trace2.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1044
    functionName: trace2_session_id
    functionSourceFile: /src/git/trace2.c
    functionUses: 1
    functionsReached:
    - tr2_sid_get
    linkageType: ''
    returnType: char
    signature: char *trace2_session_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_index_has_changes
      Src: /src/git/merge-ort-wrappers.c:20,1
    - Dst: error
      Src: /src/git/merge-ort-wrappers.c:21,1
    - Dst: _
      Src: /src/git/merge-ort-wrappers.c:21,1
    - Dst: strbuf_release
      Src: /src/git/merge-ort-wrappers.c:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - opt
    - head
    argTypes:
    - struct merge_options*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: unclean
    functionSourceFile: /src/git/merge-ort-wrappers.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - repo_index_has_changes
    - _
    linkageType: ''
    returnType: int
    signature: int unclean(struct merge_options *opt, struct tree *head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unclean
      Src: /src/git/merge-ort-wrappers.c:38,1
    - Dst: oideq
      Src: /src/git/merge-ort-wrappers.c:41,1
    - Dst: printf_ln
      Src: /src/git/merge-ort-wrappers.c:42,1
    - Dst: _
      Src: /src/git/merge-ort-wrappers.c:42,1
    - Dst: memset
      Src: /src/git/merge-ort-wrappers.c:47,1
    - Dst: merge_incore_nonrecursive
      Src: /src/git/merge-ort-wrappers.c:48,1
    - Dst: merge_switch_to_result
      Src: /src/git/merge-ort-wrappers.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - opt
    - head
    - merge
    - merge_base
    argTypes:
    - struct merge_options*
    - struct tree*
    - struct tree*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 20
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: merge_ort_nonrecursive
    functionSourceFile: /src/git/merge-ort-wrappers.c
    functionUses: 0
    functionsReached:
    - memset
    - unclean
    - _
    - merge_switch_to_result
    - printf_ln
    - merge_incore_nonrecursive
    - oideq
    linkageType: ''
    returnType: int
    signature: "int merge_ort_nonrecursive(struct merge_options *opt,\n\t\t\t   struct
      tree *head,\n\t\t\t   struct tree *merge,\n\t\t\t   struct tree *merge_base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_tree
      Src: /src/git/merge-ort-wrappers.c:60,1
    - Dst: unclean
      Src: /src/git/merge-ort-wrappers.c:64,1
    - Dst: memset
      Src: /src/git/merge-ort-wrappers.c:68,1
    - Dst: merge_incore_recursive
      Src: /src/git/merge-ort-wrappers.c:69,1
    - Dst: merge_switch_to_result
      Src: /src/git/merge-ort-wrappers.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - opt
    - side1
    - side2
    - merge_bases
    - result
    argTypes:
    - struct merge_options*
    - struct commit*
    - struct commit*
    - struct commit_list*
    - struct commit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 21
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: merge_ort_recursive
    functionSourceFile: /src/git/merge-ort-wrappers.c
    functionUses: 0
    functionsReached:
    - memset
    - unclean
    - repo_get_commit_tree
    - merge_incore_recursive
    - merge_switch_to_result
    linkageType: ''
    returnType: int
    signature: "int merge_ort_recursive(struct merge_options *opt,\n\t\t\tstruct commit
      *side1,\n\t\t\tstruct commit *side2,\n\t\t\tconst struct commit_list *merge_bases,\n\t\t\tstruct
      commit **result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deref_tag
      Src: /src/git/merge-ort-wrappers.c:82,1
    - Dst: parse_object
      Src: /src/git/merge-ort-wrappers.c:82,1
    - Dst: strlen
      Src: /src/git/merge-ort-wrappers.c:83,1
    - Dst: make_virtual_commit
      Src: /src/git/merge-ort-wrappers.c:87,1
    - Dst: repo_parse_commit
      Src: /src/git/merge-ort-wrappers.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - repo
    - oid
    - name
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: get_ref
    functionSourceFile: /src/git/merge-ort-wrappers.c
    functionUses: 0
    functionsReached:
    - deref_tag
    - repo_parse_commit
    - parse_object
    - strlen
    - make_virtual_commit
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *get_ref(struct repository *repo,\n\t\t\t      const
      struct object_id *oid,\n\t\t\t      const char *name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_ref
      Src: /src/git/merge-ort-wrappers.c:104,1
    - Dst: get_ref
      Src: /src/git/merge-ort-wrappers.c:105,1
    - Dst: get_ref
      Src: /src/git/merge-ort-wrappers.c:112,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort-wrappers.c:113,1
    - Dst: error
      Src: /src/git/merge-ort-wrappers.c:114,1
    - Dst: _
      Src: /src/git/merge-ort-wrappers.c:114,1
    - Dst: oid_to_hex
      Src: /src/git/merge-ort-wrappers.c:115,1
    - Dst: commit_list_insert
      Src: /src/git/merge-ort-wrappers.c:116,1
    - Dst: repo_hold_locked_index
      Src: /src/git/merge-ort-wrappers.c:120,1
    - Dst: merge_ort_recursive
      Src: /src/git/merge-ort-wrappers.c:121,1
    - Dst: commit_list_free
      Src: /src/git/merge-ort-wrappers.c:123,1
    - Dst: rollback_lock_file
      Src: /src/git/merge-ort-wrappers.c:125,1
    - Dst: write_locked_index
      Src: /src/git/merge-ort-wrappers.c:129,1
    - Dst: error
      Src: /src/git/merge-ort-wrappers.c:131,1
    - Dst: _
      Src: /src/git/merge-ort-wrappers.c:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - opt
    - head
    - merge
    - num_merge_bases
    - merge_bases
    - result
    argTypes:
    - struct merge_options*
    - struct object_id*
    - struct object_id*
    - int
    - struct object_id*
    - struct commit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 95
    functionDepth: 22
    functionLinenumber: 95
    functionLinenumberEnd: 134
    functionName: merge_ort_generic
    functionSourceFile: /src/git/merge-ort-wrappers.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - write_locked_index
    - repo_hold_locked_index
    - commit_list_free
    - rollback_lock_file
    - merge_ort_recursive
    - _
    - commit_list_insert
    - get_ref
    linkageType: ''
    returnType: int
    signature: "int merge_ort_generic(struct merge_options *opt,\n\t\t      const
      struct object_id *head,\n\t\t      const struct object_id *merge,\n\t\t      int
      num_merge_bases,\n\t\t      const struct object_id *merge_bases,\n\t\t      struct
      commit **result)"
  - 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: 30
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 30
    functionName: DEFINE_LIST_MERGE_INTERNAL
    functionSourceFile: /src/git/mergesort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_LIST_MERGE_INTERNAL(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - scope
    - ','
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 78
    functionName: DEFINE_LIST_SORT_INTERNAL
    functionSourceFile: /src/git/mergesort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_LIST_SORT_INTERNAL(scope, name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - scope
    - ','
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: DECLARE_LIST_SORT
    functionSourceFile: /src/git/mergesort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_LIST_SORT(scope, name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - scope
    - ','
    - name
    - ','
    - type
    - ','
    - next_member
    - ','
    - on_get_next
    - ','
    - on_set_next
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: DEFINE_LIST_SORT_DEBUG
    functionSourceFile: /src/git/mergesort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "DEFINE_LIST_SORT_DEBUG(scope, name, type, next_member,\t\\\n\t\t\t
      \      on_get_next, on_set_next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - scope
    - ','
    - name
    - ','
    - type
    - ','
    - next_member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: DEFINE_LIST_SORT
    functionSourceFile: /src/git/mergesort.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_LIST_SORT(scope, name, type, next_member)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidhash
      Src: /src/git/decorate.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - n
    argTypes:
    - struct object*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: hash_obj
    functionSourceFile: /src/git/decorate.c
    functionUses: 2
    functionsReached:
    - oidhash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash_obj(const struct object *obj, unsigned int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hash_obj
      Src: /src/git/decorate.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - n
    - base
    - decoration
    argTypes:
    - struct decoration*
    - struct object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 33
    functionName: insert_decoration
    functionSourceFile: /src/git/decorate.c
    functionUses: 0
    functionsReached:
    - hash_obj
    linkageType: ''
    returnType: void
    signature: void *insert_decoration(struct decoration *n, const struct object *base,
      void *decoration)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/decorate.c:42,1
    - Dst: insert_decoration
      Src: /src/git/decorate.c:51,1
    - Dst: free
      Src: /src/git/decorate.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct decoration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: grow_decoration
    functionSourceFile: /src/git/decorate.c
    functionUses: 0
    functionsReached:
    - free
    - insert_decoration
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void grow_decoration(struct decoration *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grow_decoration
      Src: /src/git/decorate.c:60,1
    - Dst: insert_decoration
      Src: /src/git/decorate.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - n
    - obj
    - decoration
    argTypes:
    - struct decoration*
    - struct object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: add_decoration
    functionSourceFile: /src/git/decorate.c
    functionUses: 4
    functionsReached:
    - insert_decoration
    - grow_decoration
    linkageType: ''
    returnType: void
    signature: "void *add_decoration(struct decoration *n, const struct object *obj,\n\t\tvoid
      *decoration)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hash_obj
      Src: /src/git/decorate.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - n
    - obj
    argTypes:
    - struct decoration*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: lookup_decoration
    functionSourceFile: /src/git/decorate.c
    functionUses: 5
    functionsReached:
    - hash_obj
    linkageType: ''
    returnType: void
    signature: void *lookup_decoration(struct decoration *n, const struct object *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free_cb
      Src: /src/git/decorate.c:90,1
    - Dst: FREE_AND_NULL
      Src: /src/git/decorate.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct decoration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: clear_decoration
    functionSourceFile: /src/git/decorate.c
    functionUses: 1
    functionsReached:
    - free_cb
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void clear_decoration(struct decoration *n, void (*free_cb)(void *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: BANNED
    functionSourceFile: /src/git/banned.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BANNED(func)
  - 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: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: strcpy
    functionSourceFile: /src/git/banned.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strcpy(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: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: strcat
    functionSourceFile: /src/git/banned.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strcat(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: strncpy
    functionSourceFile: /src/git/banned.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strncpy(x,y,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: strncat
    functionSourceFile: /src/git/banned.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strncat(x,y,n)
  - 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: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: strtok
    functionSourceFile: /src/git/banned.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strtok(x,y)
  - 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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: strtok_r
    functionSourceFile: /src/git/banned.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strtok_r(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: sprintf
    functionSourceFile: /src/git/banned.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sprintf(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: vsprintf
    functionSourceFile: /src/git/banned.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vsprintf(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: gmtime
    functionSourceFile: /src/git/banned.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gmtime(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: localtime
    functionSourceFile: /src/git/banned.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: localtime(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: ctime
    functionSourceFile: /src/git/banned.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ctime(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: ctime_r
    functionSourceFile: /src/git/banned.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ctime_r(t, buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: asctime
    functionSourceFile: /src/git/banned.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: asctime(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: asctime_r
    functionSourceFile: /src/git/banned.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: asctime_r(t, buf)
  - 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: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: mktemp
    functionSourceFile: /src/git/banned.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mktemp(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/object-name.c:61,1
    - Dst: oideq
      Src: /src/git/object-name.c:64,1
    - Dst: struct disambiguate_state*::fn
      Src: /src/git/object-name.c:76,1
    - Dst: oidcpy
      Src: /src/git/object-name.c:83,1
    - Dst: struct disambiguate_state*::fn
      Src: /src/git/object-name.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - current
    - UNUSED
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 102
    functionName: update_disambiguate_state
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - struct disambiguate_state*::fn
    - oideq
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int update_disambiguate_state(const struct object_id *current,\n\t\t\t\t
      \    struct object_info *oi UNUSED,\n\t\t\t\t     void *cb_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct disambiguate_state*::fn
      Src: /src/git/object-name.c:129,1
    - Dst: oidcpy
      Src: /src/git/object-name.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ds
    - oid
    argTypes:
    - struct disambiguate_state*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 136
    functionName: finish_object_disambiguation
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - struct disambiguate_state*::fn
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int finish_object_disambiguation(struct disambiguate_state *ds,\n\t\t\t\t\tstruct
      object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/object-name.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - oid
    - cb_data
    argTypes:
    - struct repository*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: disambiguate_commit_only
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    linkageType: ''
    returnType: int
    signature: "int disambiguate_commit_only(struct repository *r,\n\t\t\t\t    const
      struct object_id *oid,\n\t\t\t\t    void *cb_data UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/object-name.c:153,1
    - Dst: deref_tag
      Src: /src/git/object-name.c:160,1
    - Dst: parse_object
      Src: /src/git/object-name.c:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - r
    - oid
    - cb_data
    argTypes:
    - struct repository*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 164
    functionName: disambiguate_committish_only
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    - deref_tag
    - parse_object
    linkageType: ''
    returnType: int
    signature: "int disambiguate_committish_only(struct repository *r,\n\t\t\t\t\tconst
      struct object_id *oid,\n\t\t\t\t\tvoid *cb_data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/object-name.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - oid
    - cb_data
    argTypes:
    - struct repository*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: disambiguate_tree_only
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    linkageType: ''
    returnType: int
    signature: "int disambiguate_tree_only(struct repository *r,\n\t\t\t\t  const
      struct object_id *oid,\n\t\t\t\t  void *cb_data UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/object-name.c:181,1
    - Dst: deref_tag
      Src: /src/git/object-name.c:188,1
    - Dst: parse_object
      Src: /src/git/object-name.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - r
    - oid
    - cb_data
    argTypes:
    - struct repository*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: disambiguate_treeish_only
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    - deref_tag
    - parse_object
    linkageType: ''
    returnType: int
    signature: "int disambiguate_treeish_only(struct repository *r,\n\t\t\t\t     const
      struct object_id *oid,\n\t\t\t\t     void *cb_data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/object-name.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - oid
    - cb_data
    argTypes:
    - struct repository*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: disambiguate_blob_only
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    linkageType: ''
    returnType: int
    signature: "int disambiguate_blob_only(struct repository *r,\n\t\t\t\t  const
      struct object_id *oid,\n\t\t\t\t  void *cb_data UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: config_error_nonbool
      Src: /src/git/object-name.c:220,1
    - Dst: ARRAY_SIZE
      Src: /src/git/object-name.c:222,1
    - Dst: strcasecmp
      Src: /src/git/object-name.c:223,1
    - Dst: error
      Src: /src/git/object-name.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 230
    functionName: set_disambiguate_hint_config
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - error
    - ARRAY_SIZE
    - strcasecmp
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: int set_disambiguate_hint_config(const char *var, const char *value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hash_algo_by_ptr
      Src: /src/git/object-name.c:263,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 5
    argNames:
    - name
    - len
    - algo
    - hex_out
    - oid_out
    argTypes:
    - char*
    - int
    - struct git_hash_algo*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 266
    functionName: parse_oid_prefix
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - hash_algo_by_ptr
    linkageType: ''
    returnType: int
    signature: "int parse_oid_prefix(const char *name, int len,\n\t\t\t    const struct
      git_hash_algo *algo,\n\t\t\t    char *hex_out,\n\t\t\t    struct object_id *oid_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/object-name.c:276,1
    - Dst: parse_oid_prefix
      Src: /src/git/object-name.c:278,1
    - Dst: odb_prepare_alternates
      Src: /src/git/object-name.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - r
    - name
    - len
    - algo
    - ds
    argTypes:
    - struct repository*
    - char*
    - int
    - struct git_hash_algo*
    - struct disambiguate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 285
    functionName: init_object_disambiguation
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - odb_prepare_alternates
    - memset
    - parse_oid_prefix
    linkageType: ''
    returnType: int
    signature: "int init_object_disambiguation(struct repository *r,\n\t\t\t\t      const
      char *name, int len,\n\t\t\t\t      const struct git_hash_algo *algo,\n\t\t\t\t
      \     struct disambiguate_state *ds)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: struct disambiguate_state*::fn
      Src: /src/git/object-name.c:302,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/object-name.c:305,1
    - Dst: odb_read_object_info
      Src: /src/git/object-name.c:306,1
    - Dst: strbuf_addf
      Src: /src/git/object-name.c:314,1
    - Dst: _
      Src: /src/git/object-name.c:314,1
    - Dst: assert
      Src: /src/git/object-name.c:318,1
    - Dst: lookup_commit
      Src: /src/git/object-name.c:324,1
    - Dst: repo_format_commit_message
      Src: /src/git/object-name.c:329,1
    - Dst: repo_format_commit_message
      Src: /src/git/object-name.c:331,1
    - Dst: strbuf_addf
      Src: /src/git/object-name.c:341,1
    - Dst: _
      Src: /src/git/object-name.c:341,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:344,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:345,1
    - Dst: lookup_tag
      Src: /src/git/object-name.c:347,1
    - Dst: parse_tag
      Src: /src/git/object-name.c:349,1
    - Dst: strbuf_addf
      Src: /src/git/object-name.c:362,1
    - Dst: _
      Src: /src/git/object-name.c:362,1
    - Dst: show_date
      Src: /src/git/object-name.c:363,1
    - Dst: DATE_MODE
      Src: /src/git/object-name.c:363,1
    - Dst: strbuf_addf
      Src: /src/git/object-name.c:373,1
    - Dst: _
      Src: /src/git/object-name.c:373,1
    - Dst: strbuf_addf
      Src: /src/git/object-name.c:381,1
    - Dst: _
      Src: /src/git/object-name.c:381,1
    - Dst: strbuf_addf
      Src: /src/git/object-name.c:387,1
    - Dst: _
      Src: /src/git/object-name.c:387,1
    - Dst: strbuf_addf
      Src: /src/git/object-name.c:398,1
    - Dst: _
      Src: /src/git/object-name.c:398,1
    - Dst: strbuf_reset
      Src: /src/git/object-name.c:400,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - oid
    - data
    argTypes:
    - struct object_id*
    - void*
    assertStmts:
    - condition: "(type == OBJ_TREE || type == OBJ_COMMIT ||\n\t       type == OBJ_BLOB
        || type == OBJ_TAG)"
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/git/object-name.c
    constantsTouched: []
    func_position:
      end: 402
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 402
    functionName: show_ambiguous_object
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - strbuf_release
    - lookup_tag
    - assert
    - strbuf_reset
    - struct disambiguate_state*::fn
    - strbuf_addf
    - parse_tag
    - DATE_MODE
    - odb_read_object_info
    - repo_find_unique_abbrev
    - lookup_commit
    - show_date
    - _
    linkageType: ''
    returnType: int
    signature: int show_ambiguous_object(const struct object_id *oid, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_append
      Src: /src/git/object-name.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - oid
    - data
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: collect_ambiguous
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - oid_array_append
    linkageType: ''
    returnType: int
    signature: int collect_ambiguous(const struct object_id *oid, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: collect_ambiguous
      Src: /src/git/object-name.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 415
    functionName: repo_collect_ambiguous
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - collect_ambiguous
    linkageType: ''
    returnType: int
    signature: "int repo_collect_ambiguous(const struct object_id *oid,\n\t\t\t\t
      \ struct object_info *oi UNUSED,\n\t\t\t\t  void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/object-name.c:421,1
    - Dst: odb_read_object_info
      Src: /src/git/object-name.c:422,1
    - Dst: oidcmp
      Src: /src/git/object-name.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - va
    - vb
    - ctx
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 449
    functionName: sort_ambiguous
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    - oidcmp
    linkageType: ''
    returnType: int
    signature: int sort_ambiguous(const void *va, const void *vb, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT_S
      Src: /src/git/object-name.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - struct repository*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: sort_ambiguous_oid_array
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - QSORT_S
    linkageType: ''
    returnType: void
    signature: void sort_ambiguous_oid_array(struct repository *r, struct oid_array
      *a)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: init_object_disambiguation
      Src: /src/git/object-name.c:470,1
    - Dst: HAS_MULTI_BITS
      Src: /src/git/object-name.c:473,1
    - Dst: BUG
      Src: /src/git/object-name.c:474,1
    - Dst: odb_for_each_object_ext
      Src: /src/git/object-name.c:492,1
    - Dst: finish_object_disambiguation
      Src: /src/git/object-name.c:494,1
    - Dst: odb_reprepare
      Src: /src/git/object-name.c:502,1
    - Dst: odb_for_each_object_ext
      Src: /src/git/object-name.c:503,1
    - Dst: finish_object_disambiguation
      Src: /src/git/object-name.c:505,1
    - Dst: error
      Src: /src/git/object-name.c:516,1
    - Dst: _
      Src: /src/git/object-name.c:516,1
    - Dst: repo_for_each_abbrev
      Src: /src/git/object-name.c:527,1
    - Dst: sort_ambiguous_oid_array
      Src: /src/git/object-name.c:528,1
    - Dst: oid_array_for_each
      Src: /src/git/object-name.c:530,1
    - Dst: BUG
      Src: /src/git/object-name.c:531,1
    - Dst: advise
      Src: /src/git/object-name.c:538,1
    - Dst: _
      Src: /src/git/object-name.c:538,1
    - Dst: oid_array_clear
      Src: /src/git/object-name.c:540,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:541,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:542,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 5
    argNames:
    - r
    - name
    - len
    - oid
    - flags
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object_id*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 546
    functionName: get_short_oid
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - odb_for_each_object_ext
    - oid_array_clear
    - HAS_MULTI_BITS
    - repo_for_each_abbrev
    - finish_object_disambiguation
    - init_object_disambiguation
    - oid_array_for_each
    - odb_reprepare
    - sort_ambiguous_oid_array
    - advise
    - BUG
    - _
    linkageType: ''
    returnType: enum get_oid_result
    signature: "enum get_oid_result get_short_oid(struct repository *r,\n\t\t\t\t\t
      const char *name, int len,\n\t\t\t\t\t struct object_id *oid,\n\t\t\t\t\t unsigned
      flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/object-name.c:555,1
    - Dst: parse_oid_prefix
      Src: /src/git/object-name.c:560,1
    - Dst: odb_for_each_object_ext
      Src: /src/git/object-name.c:563,1
    - Dst: oid_array_for_each_unique
      Src: /src/git/object-name.c:566,1
    - Dst: oid_array_clear
      Src: /src/git/object-name.c:567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - r
    - prefix
    - algo
    - fn
    - cb_data
    argTypes:
    - struct repository*
    - char*
    - struct git_hash_algo*
    - each_abbrev_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 569
    functionName: repo_for_each_abbrev
    functionSourceFile: /src/git/object-name.c
    functionUses: 1
    functionsReached:
    - odb_for_each_object_ext
    - oid_array_clear
    - strlen
    - oid_array_for_each_unique
    - parse_oid_prefix
    linkageType: ''
    returnType: int
    signature: "int repo_for_each_abbrev(struct repository *r, const char *prefix,\n\t\t\t
      const struct git_hash_algo *algo,\n\t\t\t each_abbrev_fn fn, void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/object-name.c:575,1
    - Dst: repo_find_unique_abbrev_r
      Src: /src/git/object-name.c:576,1
    - Dst: strbuf_setlen
      Src: /src/git/object-name.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - sb
    - repo
    - oid
    - abbrev_len
    argTypes:
    - struct strbuf*
    - struct repository*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 578
    functionName: strbuf_repo_add_unique_abbrev
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - repo_find_unique_abbrev_r
    - strbuf_setlen
    - strbuf_grow
    linkageType: ''
    returnType: void
    signature: "void strbuf_repo_add_unique_abbrev(struct strbuf *sb, struct repository
      *repo,\n\t\t\t\t   const struct object_id *oid, int abbrev_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_repo_add_unique_abbrev
      Src: /src/git/object-name.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sb
    - oid
    - abbrev_len
    argTypes:
    - struct strbuf*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: strbuf_add_unique_abbrev
    functionSourceFile: /src/git/object-name.c
    functionUses: 2
    functionsReached:
    - strbuf_repo_add_unique_abbrev
    linkageType: ''
    returnType: void
    signature: "void strbuf_add_unique_abbrev(struct strbuf *sb, const struct object_id
      *oid,\n\t\t\t      int abbrev_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_find_abbrev_len
      Src: /src/git/object-name.c:593,1
    - Dst: oid_to_hex_r
      Src: /src/git/object-name.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - r
    - hex
    - oid
    - min_len
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 600
    functionName: repo_find_unique_abbrev_r
    functionSourceFile: /src/git/object-name.c
    functionUses: 2
    functionsReached:
    - odb_find_abbrev_len
    - oid_to_hex_r
    linkageType: ''
    returnType: int
    signature: "int repo_find_unique_abbrev_r(struct repository *r, char *hex,\n\t\t\t
      \     const struct object_id *oid, int min_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/object-name.c:609,1
    - Dst: repo_find_unique_abbrev_r
      Src: /src/git/object-name.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - r
    - oid
    - len
    argTypes:
    - struct repository*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 612
    functionName: repo_find_unique_abbrev
    functionSourceFile: /src/git/object-name.c
    functionUses: 3
    functionsReached:
    - ARRAY_SIZE
    - repo_find_unique_abbrev_r
    linkageType: ''
    returnType: char
    signature: "char *repo_find_unique_abbrev(struct repository *r,\n\t\t\t\t    const
      struct object_id *oid,\n\t\t\t\t    int len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - path
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 637
    functionName: ambiguous_path
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ambiguous_path(const char *path, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/object-name.c:645,1
    - Dst: strncasecmp
      Src: /src/git/object-name.c:647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - string
    - len
    - suffix
    - nr
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 651
    functionName: at_mark
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: "int at_mark(const char *string, int len,\n\t\t\t  const char **suffix,
      int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at_mark
      Src: /src/git/object-name.c:656,1
    - Dst: ARRAY_SIZE
      Src: /src/git/object-name.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: upstream_mark
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - at_mark
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int upstream_mark(const char *string, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at_mark
      Src: /src/git/object-name.c:662,1
    - Dst: ARRAY_SIZE
      Src: /src/git/object-name.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: push_mark
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - at_mark
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int push_mark(const char *string, int len)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/object-name.c:672,1
    - Dst: get_oid_hex
      Src: /src/git/object-name.c:688,1
    - Dst: repo_settings_get_warn_ambiguous_refs
      Src: /src/git/object-name.c:690,1
    - Dst: repo_dwim_ref
      Src: /src/git/object-name.c:692,1
    - Dst: warning
      Src: /src/git/object-name.c:694,1
    - Dst: advice_enabled
      Src: /src/git/object-name.c:695,1
    - Dst: fprintf
      Src: /src/git/object-name.c:696,1
    - Dst: _
      Src: /src/git/object-name.c:696,1
    - Dst: free
      Src: /src/git/object-name.c:698,1
    - Dst: upstream_mark
      Src: /src/git/object-name.c:715,1
    - Dst: push_mark
      Src: /src/git/object-name.c:716,1
    - Dst: ambiguous_path
      Src: /src/git/object-name.c:726,1
    - Dst: interpret_nth_prior_checkout
      Src: /src/git/object-name.c:733,1
    - Dst: get_oid_hex
      Src: /src/git/object-name.c:734,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:735,1
    - Dst: repo_dwim_ref
      Src: /src/git/object-name.c:743,1
    - Dst: repo_dwim_log
      Src: /src/git/object-name.c:745,1
    - Dst: repo_dwim_ref
      Src: /src/git/object-name.c:747,1
    - Dst: repo_settings_get_warn_ambiguous_refs
      Src: /src/git/object-name.c:752,1
    - Dst: get_short_oid
      Src: /src/git/object-name.c:754,1
    - Dst: warning
      Src: /src/git/object-name.c:755,1
    - Dst: xstrndup
      Src: /src/git/object-name.c:778,1
    - Dst: approxidate_careful
      Src: /src/git/object-name.c:779,1
    - Dst: free
      Src: /src/git/object-name.c:780,1
    - Dst: free
      Src: /src/git/object-name.c:782,1
    - Dst: read_ref_at
      Src: /src/git/object-name.c:786,1
    - Dst: get_main_ref_store
      Src: /src/git/object-name.c:786,1
    - Dst: skip_prefix
      Src: /src/git/object-name.c:790,1
    - Dst: strlen
      Src: /src/git/object-name.c:792,1
    - Dst: warning
      Src: /src/git/object-name.c:796,1
    - Dst: _
      Src: /src/git/object-name.c:796,1
    - Dst: show_date
      Src: /src/git/object-name.c:798,1
    - Dst: DATE_MODE
      Src: /src/git/object-name.c:798,1
    - Dst: is_null_oid
      Src: /src/git/object-name.c:800,1
    - Dst: exit
      Src: /src/git/object-name.c:811,1
    - Dst: die
      Src: /src/git/object-name.c:813,1
    - Dst: _
      Src: /src/git/object-name.c:813,1
    - Dst: free
      Src: /src/git/object-name.c:817,1
    - Dst: free
      Src: /src/git/object-name.c:823,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 96
    argCount: 5
    argNames:
    - r
    - str
    - len
    - oid
    - flags
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object_id*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 668
    functionDepth: 6
    functionLinenumber: 668
    functionLinenumberEnd: 825
    functionName: get_oid_basic
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - repo_dwim_log
    - DATE_MODE
    - is_null_oid
    - approxidate_careful
    - free
    - get_main_ref_store
    - strbuf_release
    - die
    - get_short_oid
    - read_ref_at
    - get_oid_hex
    - advice_enabled
    - _
    - push_mark
    - N_
    - ambiguous_path
    - warning
    - upstream_mark
    - skip_prefix
    - repo_dwim_ref
    - repo_settings_get_warn_ambiguous_refs
    - exit
    - xstrndup
    - strlen
    - show_date
    - interpret_nth_prior_checkout
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int get_oid_basic(struct repository *r, const char *str, int len,\n\t\t\t
      struct object_id *oid, unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_1
      Src: /src/git/object-name.c:832,1
    - Dst: lookup_commit_reference
      Src: /src/git/object-name.c:839,1
    - Dst: repo_parse_commit
      Src: /src/git/object-name.c:840,1
    - Dst: oidcpy
      Src: /src/git/object-name.c:843,1
    - Dst: oidcpy
      Src: /src/git/object-name.c:849,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - r
    - name
    - len
    - result
    - idx
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 855
    functionName: get_parent
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - repo_parse_commit
    - get_oid_1
    - oidcpy
    linkageType: ''
    returnType: enum get_oid_result
    signature: "enum get_oid_result get_parent(struct repository *r,\n\t\t\t\t      const
      char *name, int len,\n\t\t\t\t      struct object_id *result, int idx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_1
      Src: /src/git/object-name.c:866,1
    - Dst: lookup_commit_reference
      Src: /src/git/object-name.c:869,1
    - Dst: repo_parse_commit
      Src: /src/git/object-name.c:874,1
    - Dst: oidcpy
      Src: /src/git/object-name.c:878,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - r
    - name
    - len
    - result
    - generation
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 880
    functionName: get_nth_ancestor
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - repo_parse_commit
    - get_oid_1
    - oidcpy
    linkageType: ''
    returnType: enum get_oid_result
    signature: "enum get_oid_result get_nth_ancestor(struct repository *r,\n\t\t\t\t\t
      \   const char *name, int len,\n\t\t\t\t\t    struct object_id *result,\n\t\t\t\t\t
      \   int generation)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/object-name.c:886,1
    - Dst: parse_object
      Src: /src/git/object-name.c:888,1
    - Dst: repo_get_commit_tree
      Src: /src/git/object-name.c:895,1
    - Dst: error
      Src: /src/git/object-name.c:898,1
    - Dst: type_name
      Src: /src/git/object-name.c:900,1
    - Dst: type_name
      Src: /src/git/object-name.c:901,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 5
    argNames:
    - r
    - name
    - namelen
    - o
    - expected_type
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 882
    functionDepth: 4
    functionLinenumber: 882
    functionLinenumberEnd: 905
    functionName: repo_peel_to_type
    functionSourceFile: /src/git/object-name.c
    functionUses: 1
    functionsReached:
    - error
    - parse_object
    - repo_get_commit_tree
    - strlen
    - type_name
    linkageType: ''
    returnType: struct object
    signature: "struct object *repo_peel_to_type(struct repository *r, const char
      *name, int namelen,\n\t\t\t\t struct object *o, enum object_type expected_type)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/object-name.c:935,1
    - Dst: starts_with
      Src: /src/git/object-name.c:937,1
    - Dst: starts_with
      Src: /src/git/object-name.c:939,1
    - Dst: starts_with
      Src: /src/git/object-name.c:941,1
    - Dst: starts_with
      Src: /src/git/object-name.c:943,1
    - Dst: get_oid_1
      Src: /src/git/object-name.c:958,1
    - Dst: parse_object
      Src: /src/git/object-name.c:961,1
    - Dst: deref_tag
      Src: /src/git/object-name.c:965,1
    - Dst: parse_object
      Src: /src/git/object-name.c:966,1
    - Dst: oidcpy
      Src: /src/git/object-name.c:968,1
    - Dst: repo_peel_to_type
      Src: /src/git/object-name.c:977,1
    - Dst: oidcpy
      Src: /src/git/object-name.c:981,1
    - Dst: xstrndup
      Src: /src/git/object-name.c:995,1
    - Dst: commit_list_insert
      Src: /src/git/object-name.c:996,1
    - Dst: get_oid_oneline
      Src: /src/git/object-name.c:997,1
    - Dst: commit_list_free
      Src: /src/git/object-name.c:999,1
    - Dst: free
      Src: /src/git/object-name.c:1000,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 57
    argCount: 5
    argNames:
    - r
    - name
    - len
    - oid
    - lookup_flags
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object_id*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 907
    functionDepth: 5
    functionLinenumber: 907
    functionLinenumberEnd: 1004
    functionName: peel_onion
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - get_oid_1
    - repo_peel_to_type
    - oidcpy
    - deref_tag
    - parse_object
    - starts_with
    - xstrndup
    - commit_list_free
    - free
    - commit_list_insert
    - get_oid_oneline
    linkageType: ''
    returnType: int
    signature: "int peel_onion(struct repository *r, const char *name, int len,\n\t\t
      \     struct object_id *oid, unsigned lookup_flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/git/object-name.c:1036,1
    - Dst: isxdigit
      Src: /src/git/object-name.c:1043,1
    - Dst: strbuf_init
      Src: /src/git/object-name.c:1051,1
    - Dst: strbuf_add
      Src: /src/git/object-name.c:1052,1
    - Dst: check_refname_format
      Src: /src/git/object-name.c:1053,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:1054,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1028
    functionDepth: 4
    functionLinenumber: 1028
    functionLinenumberEnd: 1056
    functionName: ref_and_count_parts_valid
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - isxdigit
    - check_refname_format
    - strbuf_init
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int ref_and_count_parts_valid(const char *name, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/git/object-name.c:1067,1
    - Dst: ref_and_count_parts_valid
      Src: /src/git/object-name.c:1072,1
    - Dst: get_short_oid
      Src: /src/git/object-name.c:1075,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - r
    - name
    - len
    - oid
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1058
    functionDepth: 5
    functionLinenumber: 1058
    functionLinenumberEnd: 1081
    functionName: get_describe_name
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - ref_and_count_parts_valid
    - isxdigit
    - get_short_oid
    linkageType: ''
    returnType: int
    signature: "int get_describe_name(struct repository *r,\n\t\t\t     const char
      *name, int len,\n\t\t\t     struct object_id *oid)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_mult_overflows
      Src: /src/git/object-name.c:1110,1
    - Dst: unsigned_add_overflows
      Src: /src/git/object-name.c:1113,1
    - Dst: get_parent
      Src: /src/git/object-name.c:1122,1
    - Dst: get_nth_ancestor
      Src: /src/git/object-name.c:1124,1
    - Dst: peel_onion
      Src: /src/git/object-name.c:1127,1
    - Dst: get_oid_basic
      Src: /src/git/object-name.c:1131,1
    - Dst: get_describe_name
      Src: /src/git/object-name.c:1136,1
    - Dst: get_short_oid
      Src: /src/git/object-name.c:1140,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 5
    argNames:
    - r
    - name
    - len
    - oid
    - lookup_flags
    argTypes:
    - struct repository*
    - char*
    - int
    - struct object_id*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1083
    functionDepth: 7
    functionLinenumber: 1083
    functionLinenumberEnd: 1141
    functionName: get_oid_1
    functionSourceFile: /src/git/object-name.c
    functionUses: 3
    functionsReached:
    - get_oid_basic
    - get_parent
    - get_describe_name
    - unsigned_mult_overflows
    - get_short_oid
    - get_nth_ancestor
    - unsigned_add_overflows
    - peel_onion
    linkageType: ''
    returnType: enum get_oid_result
    signature: "enum get_oid_result get_oid_1(struct repository *r,\n\t\t\t\t     const
      char *name, int len,\n\t\t\t\t     struct object_id *oid,\n\t\t\t\t     unsigned
      lookup_flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/object-name.c:1168,1
    - Dst: deref_tag
      Src: /src/git/object-name.c:1172,1
    - Dst: strlen
      Src: /src/git/object-name.c:1173,1
    - Dst: commit_list_insert
      Src: /src/git/object-name.c:1179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1164
    functionDepth: 4
    functionLinenumber: 1164
    functionLinenumberEnd: 1181
    functionName: handle_one_ref
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - deref_tag
    - commit_list_insert
    - parse_object
    - strlen
    linkageType: ''
    returnType: int
    signature: int handle_one_ref(const struct reference *ref, void *cb_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/git/object-name.c:1204,1
    - Dst: prio_queue_put
      Src: /src/git/object-name.c:1209,1
    - Dst: pop_most_recent_commit
      Src: /src/git/object-name.c:1216,1
    - Dst: parse_object
      Src: /src/git/object-name.c:1217,1
    - Dst: repo_get_commit_buffer
      Src: /src/git/object-name.c:1219,1
    - Dst: strstr
      Src: /src/git/object-name.c:1220,1
    - Dst: regexec
      Src: /src/git/object-name.c:1221,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/object-name.c:1222,1
    - Dst: oidcpy
      Src: /src/git/object-name.c:1225,1
    - Dst: regfree
      Src: /src/git/object-name.c:1230,1
    - Dst: clear_commit_marks
      Src: /src/git/object-name.c:1232,1
    - Dst: clear_prio_queue
      Src: /src/git/object-name.c:1233,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - r
    - prefix
    - oid
    - list
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1183
    functionDepth: 4
    functionLinenumber: 1183
    functionLinenumberEnd: 1235
    functionName: get_oid_oneline
    functionSourceFile: /src/git/object-name.c
    functionUses: 1
    functionsReached:
    - pop_most_recent_commit
    - prio_queue_put
    - strstr
    - oidcpy
    - regfree
    - repo_unuse_commit_buffer
    - parse_object
    - regexec
    - repo_get_commit_buffer
    - clear_commit_marks
    - regcomp
    - clear_prio_queue
    linkageType: ''
    returnType: int
    signature: "int get_oid_oneline(struct repository *r,\n\t\t\t   const char *prefix,
      struct object_id *oid,\n\t\t\t   const struct commit_list *list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/object-name.c:1254,1
    - Dst: strstr
      Src: /src/git/object-name.c:1255,1
    - Dst: strbuf_reset
      Src: /src/git/object-name.c:1261,1
    - Dst: strbuf_add
      Src: /src/git/object-name.c:1262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 8
    argNames:
    - refname
    - UNUSED
    - UNUSED
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1266
    functionName: grab_nth_branch_switch
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - skip_prefix
    - strbuf_add
    - strstr
    linkageType: ''
    returnType: int
    signature: "int grab_nth_branch_switch(const char *refname UNUSED,\n\t\t\t\t  struct
      object_id *ooid UNUSED,\n\t\t\t\t  struct object_id *noid UNUSED,\n\t\t\t\t
      \ const char *email UNUSED,\n\t\t\t\t  timestamp_t timestamp UNUSED,\n\t\t\t\t
      \ int tz UNUSED,\n\t\t\t\t  const char *message, void *cb_data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/object-name.c:1286,1
    - Dst: strtol
      Src: /src/git/object-name.c:1289,1
    - Dst: refs_for_each_reflog_ent_reverse
      Src: /src/git/object-name.c:1297,1
    - Dst: get_main_ref_store
      Src: /src/git/object-name.c:1297,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - r
    - name
    - namelen
    - buf
    argTypes:
    - struct repository*
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1272
    functionDepth: 3
    functionLinenumber: 1272
    functionLinenumberEnd: 1305
    functionName: interpret_nth_prior_checkout
    functionSourceFile: /src/git/object-name.c
    functionUses: 1
    functionsReached:
    - strtol
    - memchr
    - refs_for_each_reflog_ent_reverse
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int interpret_nth_prior_checkout(struct repository *r,\n\t\t\t\t\tconst
      char *name, int namelen,\n\t\t\t\t\tstruct strbuf *buf)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/object-name.c:1317,1
    - Dst: repo_get_oid
      Src: /src/git/object-name.c:1319,1
    - Dst: repo_get_oid
      Src: /src/git/object-name.c:1321,1
    - Dst: strbuf_init
      Src: /src/git/object-name.c:1324,1
    - Dst: strbuf_add
      Src: /src/git/object-name.c:1325,1
    - Dst: repo_get_oid_committish
      Src: /src/git/object-name.c:1326,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:1327,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/object-name.c:1331,1
    - Dst: repo_get_oid_committish
      Src: /src/git/object-name.c:1335,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/object-name.c:1337,1
    - Dst: repo_get_merge_bases
      Src: /src/git/object-name.c:1340,1
    - Dst: commit_list_free
      Src: /src/git/object-name.c:1341,1
    - Dst: oidcpy
      Src: /src/git/object-name.c:1348,1
    - Dst: commit_list_free
      Src: /src/git/object-name.c:1350,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - r
    - name
    - oid
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1352
    functionName: repo_get_oid_mb
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strstr
    - lookup_commit_reference_gently
    - oidcpy
    - repo_get_oid
    - repo_get_merge_bases
    - commit_list_free
    - repo_get_oid_committish
    - strbuf_init
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int repo_get_oid_mb(struct repository *r,\n\t\t    const char *name,\n\t\t
      \   struct object_id *oid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/object-name.c:1363,1
    - Dst: strbuf_reset
      Src: /src/git/object-name.c:1371,1
    - Dst: strbuf_add
      Src: /src/git/object-name.c:1372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - name
    - namelen
    - len
    - buf
    argTypes:
    - char*
    - int
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1374
    functionName: interpret_empty_at
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - memchr
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int interpret_empty_at(const char *name, int namelen, int len, struct
      strbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/object-name.c:1389,1
    - Dst: repo_interpret_branch_name
      Src: /src/git/object-name.c:1390,1
    - Dst: strbuf_setlen
      Src: /src/git/object-name.c:1393,1
    - Dst: strbuf_reset
      Src: /src/git/object-name.c:1396,1
    - Dst: strbuf_addbuf
      Src: /src/git/object-name.c:1397,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:1398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - r
    - name
    - namelen
    - len
    - buf
    - allowed
    argTypes:
    - struct repository*
    - char*
    - int
    - int
    - struct strbuf*
    - enum interpret_branch_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1401
    functionName: reinterpret
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - strbuf_setlen
    - repo_interpret_branch_name
    - strbuf_addbuf
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int reinterpret(struct repository *r,\n\t\t       const char *name,
      int namelen, int len,\n\t\t       struct strbuf *buf,\n\t\t       enum interpret_branch_kind
      allowed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/object-name.c:1405,1
    - Dst: get_main_ref_store
      Src: /src/git/object-name.c:1405,1
    - Dst: strbuf_reset
      Src: /src/git/object-name.c:1406,1
    - Dst: strbuf_addstr
      Src: /src/git/object-name.c:1407,1
    - Dst: free
      Src: /src/git/object-name.c:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - r
    - buf
    - ref
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1403
    functionDepth: 3
    functionLinenumber: 1403
    functionLinenumberEnd: 1409
    functionName: set_shortened_ref
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - refs_shorten_unambiguous_ref
    - strbuf_addstr
    - free
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void set_shortened_ref(struct repository *r, struct strbuf *buf, const
      char *ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/object-name.c:1418,1
    - Dst: starts_with
      Src: /src/git/object-name.c:1421,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - refname
    - allowed
    argTypes:
    - char*
    - enum interpret_branch_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1425
    functionName: branch_interpret_allowed
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: int
    signature: "int branch_interpret_allowed(const char *refname,\n\t\t\t\t    enum
      interpret_branch_kind allowed)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_mark
      Src: /src/git/object-name.c:1440,1
    - Dst: memchr
      Src: /src/git/object-name.c:1444,1
    - Dst: xmemdupz
      Src: /src/git/object-name.c:1448,1
    - Dst: branch_get
      Src: /src/git/object-name.c:1449,1
    - Dst: free
      Src: /src/git/object-name.c:1450,1
    - Dst: branch_get
      Src: /src/git/object-name.c:1452,1
    - Dst: get_data
      Src: /src/git/object-name.c:1454,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:1457,1
    - Dst: die
      Src: /src/git/object-name.c:1460,1
    - Dst: branch_interpret_allowed
      Src: /src/git/object-name.c:1464,1
    - Dst: set_shortened_ref
      Src: /src/git/object-name.c:1467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 7
    argNames:
    - r
    - name
    - namelen
    - at
    - buf
    - "(*get_data)(struct branch *,\n\t\t\t\t\t\t\t struct strbuf *)"
    - options
    argTypes:
    - struct repository*
    - char*
    - int
    - int
    - struct strbuf*
    - char*
    - struct interpret_branch_name_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1427
    functionDepth: 4
    functionLinenumber: 1427
    functionLinenumberEnd: 1469
    functionName: interpret_branch_mark
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - memchr
    - strbuf_release
    - die
    - set_shortened_ref
    - branch_get
    - get_data
    - branch_interpret_allowed
    - free
    - get_mark
    linkageType: ''
    returnType: int
    signature: "int interpret_branch_mark(struct repository *r,\n\t\t\t\t const char
      *name, int namelen,\n\t\t\t\t int at, struct strbuf *buf,\n\t\t\t\t int (*get_mark)(const
      char *, int),\n\t\t\t\t const char *(*get_data)(struct branch *,\n\t\t\t\t\t\t\t
      struct strbuf *),\n\t\t\t\t const struct interpret_branch_name_options *options)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/object-name.c:1481,1
    - Dst: interpret_nth_prior_checkout
      Src: /src/git/object-name.c:1484,1
    - Dst: reinterpret
      Src: /src/git/object-name.c:1491,1
    - Dst: memchr
      Src: /src/git/object-name.c:1497,1
    - Dst: interpret_empty_at
      Src: /src/git/object-name.c:1501,1
    - Dst: reinterpret
      Src: /src/git/object-name.c:1503,1
    - Dst: interpret_branch_mark
      Src: /src/git/object-name.c:1507,1
    - Dst: interpret_branch_mark
      Src: /src/git/object-name.c:1513,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 5
    argNames:
    - r
    - name
    - namelen
    - buf
    - options
    argTypes:
    - struct repository*
    - char*
    - int
    - struct strbuf*
    - struct interpret_branch_name_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1471
    functionDepth: 5
    functionLinenumber: 1471
    functionLinenumberEnd: 1521
    functionName: repo_interpret_branch_name
    functionSourceFile: /src/git/object-name.c
    functionUses: 4
    functionsReached:
    - interpret_branch_mark
    - memchr
    - interpret_empty_at
    - reinterpret
    - strlen
    - interpret_nth_prior_checkout
    linkageType: ''
    returnType: int
    signature: "int repo_interpret_branch_name(struct repository *r,\n\t\t\t       const
      char *name, int namelen,\n\t\t\t       struct strbuf *buf,\n\t\t\t       const
      struct interpret_branch_name_options *options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/object-name.c:1525,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct object_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1527
    functionName: object_context_release
    functionSourceFile: /src/git/object-name.c
    functionUses: 3
    functionsReached:
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void object_context_release(struct object_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_with_context
      Src: /src/git/object-name.c:1533,1
    - Dst: object_context_release
      Src: /src/git/object-name.c:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - name
    - oid
    - flags
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1529
    functionDepth: 2
    functionLinenumber: 1529
    functionLinenumberEnd: 1536
    functionName: repo_get_oid_with_flags
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - get_oid_with_context
    - object_context_release
    linkageType: ''
    returnType: int
    signature: "int repo_get_oid_with_flags(struct repository *r, const char *name,\n\t\t\t
      \   struct object_id *oid, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_with_flags
      Src: /src/git/object-name.c:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - name
    - oid
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1541
    functionName: repo_get_oid
    functionSourceFile: /src/git/object-name.c
    functionUses: 10
    functionsReached:
    - repo_get_oid_with_flags
    linkageType: ''
    returnType: int
    signature: int repo_get_oid(struct repository *r, const char *name, struct object_id
      *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/object-name.c:1553,1
    - Dst: strbuf_vaddf
      Src: /src/git/object-name.c:1554,1
    - Dst: va_end
      Src: /src/git/object-name.c:1555,1
    - Dst: repo_get_oid
      Src: /src/git/object-name.c:1557,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:1558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - oid
    - fmt
    argTypes:
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1547
    functionDepth: 4
    functionLinenumber: 1547
    functionLinenumberEnd: 1561
    functionName: get_oidf
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_vaddf
    - repo_get_oid
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int get_oidf(struct object_id *oid, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_with_flags
      Src: /src/git/object-name.c:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - name
    - oid
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1573
    functionDepth: 3
    functionLinenumber: 1573
    functionLinenumberEnd: 1578
    functionName: repo_get_oid_committish
    functionSourceFile: /src/git/object-name.c
    functionUses: 3
    functionsReached:
    - repo_get_oid_with_flags
    linkageType: ''
    returnType: int
    signature: "int repo_get_oid_committish(struct repository *r,\n\t\t\t    const
      char *name,\n\t\t\t    struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_with_flags
      Src: /src/git/object-name.c:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - name
    - oid
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1580
    functionDepth: 3
    functionLinenumber: 1580
    functionLinenumberEnd: 1585
    functionName: repo_get_oid_treeish
    functionSourceFile: /src/git/object-name.c
    functionUses: 1
    functionsReached:
    - repo_get_oid_with_flags
    linkageType: ''
    returnType: int
    signature: "int repo_get_oid_treeish(struct repository *r,\n\t\t\t const char
      *name,\n\t\t\t struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_with_flags
      Src: /src/git/object-name.c:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - name
    - oid
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1587
    functionDepth: 3
    functionLinenumber: 1587
    functionLinenumberEnd: 1592
    functionName: repo_get_oid_commit
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - repo_get_oid_with_flags
    linkageType: ''
    returnType: int
    signature: "int repo_get_oid_commit(struct repository *r,\n\t\t\tconst char *name,\n\t\t\tstruct
      object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_with_flags
      Src: /src/git/object-name.c:1598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - name
    - oid
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1594
    functionDepth: 3
    functionLinenumber: 1594
    functionLinenumberEnd: 1599
    functionName: repo_get_oid_tree
    functionSourceFile: /src/git/object-name.c
    functionUses: 1
    functionsReached:
    - repo_get_oid_with_flags
    linkageType: ''
    returnType: int
    signature: "int repo_get_oid_tree(struct repository *r,\n\t\t      const char
      *name,\n\t\t      struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_with_flags
      Src: /src/git/object-name.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - name
    - oid
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1601
    functionDepth: 3
    functionLinenumber: 1601
    functionLinenumberEnd: 1606
    functionName: repo_get_oid_blob
    functionSourceFile: /src/git/object-name.c
    functionUses: 1
    functionsReached:
    - repo_get_oid_with_flags
    linkageType: ''
    returnType: int
    signature: "int repo_get_oid_blob(struct repository *r,\n\t\t      const char
      *name,\n\t\t      struct object_id *oid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/object-name.c:1622,1
    - Dst: die
      Src: /src/git/object-name.c:1623,1
    - Dst: _
      Src: /src/git/object-name.c:1623,1
    - Dst: is_missing_file_error
      Src: /src/git/object-name.c:1625,1
    - Dst: xstrfmt
      Src: /src/git/object-name.c:1626,1
    - Dst: get_tree_entry
      Src: /src/git/object-name.c:1628,1
    - Dst: die
      Src: /src/git/object-name.c:1629,1
    - Dst: _
      Src: /src/git/object-name.c:1629,1
    - Dst: die
      Src: /src/git/object-name.c:1638,1
    - Dst: _
      Src: /src/git/object-name.c:1638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 6
    argNames:
    - r
    - prefix
    - filename
    - tree_oid
    - object_name
    - object_name_len
    argTypes:
    - struct repository*
    - char*
    - char*
    - struct object_id*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1609
    functionDepth: 2
    functionLinenumber: 1609
    functionLinenumberEnd: 1641
    functionName: diagnose_invalid_oid_path
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - get_tree_entry
    - die
    - xstrfmt
    - is_missing_file_error
    - _
    - file_exists
    linkageType: ''
    returnType: void
    signature: "void diagnose_invalid_oid_path(struct repository *r,\n\t\t\t\t      const
      char *prefix,\n\t\t\t\t      const char *filename,\n\t\t\t\t      const struct
      object_id *tree_oid,\n\t\t\t\t      const char *object_name,\n\t\t\t\t      int
      object_name_len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/object-name.c:1652,1
    - Dst: index_name_pos
      Src: /src/git/object-name.c:1659,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/object-name.c:1664,1
    - Dst: ce_namelen
      Src: /src/git/object-name.c:1665,1
    - Dst: memcmp
      Src: /src/git/object-name.c:1666,1
    - Dst: die
      Src: /src/git/object-name.c:1667,1
    - Dst: _
      Src: /src/git/object-name.c:1667,1
    - Dst: ce_stage
      Src: /src/git/object-name.c:1670,1
    - Dst: strbuf_addstr
      Src: /src/git/object-name.c:1674,1
    - Dst: strbuf_addstr
      Src: /src/git/object-name.c:1675,1
    - Dst: index_name_pos
      Src: /src/git/object-name.c:1676,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/object-name.c:1681,1
    - Dst: ce_namelen
      Src: /src/git/object-name.c:1682,1
    - Dst: memcmp
      Src: /src/git/object-name.c:1683,1
    - Dst: die
      Src: /src/git/object-name.c:1684,1
    - Dst: _
      Src: /src/git/object-name.c:1684,1
    - Dst: ce_stage
      Src: /src/git/object-name.c:1687,1
    - Dst: ce_stage
      Src: /src/git/object-name.c:1688,1
    - Dst: repo_file_exists
      Src: /src/git/object-name.c:1691,1
    - Dst: die
      Src: /src/git/object-name.c:1692,1
    - Dst: _
      Src: /src/git/object-name.c:1692,1
    - Dst: is_missing_file_error
      Src: /src/git/object-name.c:1693,1
    - Dst: die
      Src: /src/git/object-name.c:1694,1
    - Dst: _
      Src: /src/git/object-name.c:1694,1
    - Dst: strbuf_release
      Src: /src/git/object-name.c:1697,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 4
    argNames:
    - r
    - stage
    - prefix
    - filename
    argTypes:
    - struct repository*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1644
    functionDepth: 4
    functionLinenumber: 1644
    functionLinenumberEnd: 1698
    functionName: diagnose_invalid_index_path
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - strbuf_release
    - die
    - ce_namelen
    - S_ISSPARSEDIR
    - is_missing_file_error
    - strlen
    - repo_file_exists
    - strbuf_addstr
    - _
    - ce_stage
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void diagnose_invalid_index_path(struct repository *r,\n\t\t\t\t\tint
      stage,\n\t\t\t\t\tconst char *prefix,\n\t\t\t\t\tconst char *filename)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/object-name.c:1703,1
    - Dst: starts_with
      Src: /src/git/object-name.c:1703,1
    - Dst: is_inside_work_tree
      Src: /src/git/object-name.c:1706,1
    - Dst: die
      Src: /src/git/object-name.c:1707,1
    - Dst: _
      Src: /src/git/object-name.c:1707,1
    - Dst: prefix_path
      Src: /src/git/object-name.c:1710,1
    - Dst: strlen
      Src: /src/git/object-name.c:1711,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - r
    - rel
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1701
    functionDepth: 1
    functionLinenumber: 1701
    functionLinenumberEnd: 1713
    functionName: resolve_relative_path
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - die
    - is_inside_work_tree
    - starts_with
    - strlen
    - _
    - prefix_path
    linkageType: ''
    returnType: char
    signature: char *resolve_relative_path(struct repository *r, const char *rel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISSPARSEDIR
      Src: /src/git/object-name.c:1722,1
    - Dst: diagnose_invalid_index_path
      Src: /src/git/object-name.c:1725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - repo
    - only_to_die
    - ce
    - stage
    - prefix
    - cp
    argTypes:
    - struct repository*
    - int
    - struct cache_entry*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1715
    functionDepth: 5
    functionLinenumber: 1715
    functionLinenumberEnd: 1727
    functionName: reject_tree_in_index
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - diagnose_invalid_index_path
    - S_ISSPARSEDIR
    linkageType: ''
    returnType: int
    signature: "int reject_tree_in_index(struct repository *repo,\n\t\t\t\tint only_to_die,\n\t\t\t\tconst
      struct cache_entry *ce,\n\t\t\t\tint stage,\n\t\t\t\tconst char *prefix,\n\t\t\t\tconst
      char *cp)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/object-name.c:1737,1
    - Dst: memset
      Src: /src/git/object-name.c:1741,1
    - Dst: strbuf_init
      Src: /src/git/object-name.c:1743,1
    - Dst: get_oid_1
      Src: /src/git/object-name.c:1744,1
    - Dst: die
      Src: /src/git/object-name.c:1746,1
    - Dst: _
      Src: /src/git/object-name.c:1746,1
    - Dst: refs_for_each_ref
      Src: /src/git/object-name.c:1768,1
    - Dst: get_main_ref_store
      Src: /src/git/object-name.c:1768,1
    - Dst: refs_head_ref
      Src: /src/git/object-name.c:1769,1
    - Dst: get_main_ref_store
      Src: /src/git/object-name.c:1769,1
    - Dst: get_oid_oneline
      Src: /src/git/object-name.c:1770,1
    - Dst: commit_list_free
      Src: /src/git/object-name.c:1772,1
    - Dst: resolve_relative_path
      Src: /src/git/object-name.c:1783,1
    - Dst: strlen
      Src: /src/git/object-name.c:1788,1
    - Dst: xstrdup
      Src: /src/git/object-name.c:1792,1
    - Dst: repo_read_index
      Src: /src/git/object-name.c:1795,1
    - Dst: index_name_pos
      Src: /src/git/object-name.c:1796,1
    - Dst: ce_namelen
      Src: /src/git/object-name.c:1801,1
    - Dst: memcmp
      Src: /src/git/object-name.c:1802,1
    - Dst: ce_stage
      Src: /src/git/object-name.c:1804,1
    - Dst: free
      Src: /src/git/object-name.c:1805,1
    - Dst: reject_tree_in_index
      Src: /src/git/object-name.c:1806,1
    - Dst: oidcpy
      Src: /src/git/object-name.c:1809,1
    - Dst: diagnose_invalid_index_path
      Src: /src/git/object-name.c:1816,1
    - Dst: free
      Src: /src/git/object-name.c:1817,1
    - Dst: strchr
      Src: /src/git/object-name.c:1821,1
    - Dst: get_oid_1
      Src: /src/git/object-name.c:1838,1
    - Dst: resolve_relative_path
      Src: /src/git/object-name.c:1842,1
    - Dst: get_tree_entry_follow_symlinks
      Src: /src/git/object-name.c:1846,1
    - Dst: get_tree_entry
      Src: /src/git/object-name.c:1850,1
    - Dst: diagnose_invalid_oid_path
      Src: /src/git/object-name.c:1853,1
    - Dst: xstrdup
      Src: /src/git/object-name.c:1860,1
    - Dst: free
      Src: /src/git/object-name.c:1862,1
    - Dst: die
      Src: /src/git/object-name.c:1866,1
    - Dst: _
      Src: /src/git/object-name.c:1866,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 94
    argCount: 6
    argNames:
    - repo
    - name
    - flags
    - prefix
    - oid
    - oc
    argTypes:
    - struct repository*
    - char*
    - unsigned
    - char*
    - struct object_id*
    - struct object_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1729
    functionDepth: 8
    functionLinenumber: 1729
    functionLinenumberEnd: 1870
    functionName: get_oid_with_context_1
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - get_tree_entry
    - get_oid_1
    - oidcpy
    - strchr
    - free
    - get_main_ref_store
    - index_name_pos
    - die
    - repo_read_index
    - diagnose_invalid_index_path
    - diagnose_invalid_oid_path
    - strbuf_init
    - memset
    - refs_head_ref
    - get_tree_entry_follow_symlinks
    - _
    - ce_stage
    - get_oid_oneline
    - xstrdup
    - ce_namelen
    - refs_for_each_ref
    - strlen
    - commit_list_free
    - resolve_relative_path
    - reject_tree_in_index
    - memcmp
    linkageType: ''
    returnType: enum get_oid_result
    signature: "enum get_oid_result get_oid_with_context_1(struct repository *repo,\n\t\t\t\t
      \ const char *name,\n\t\t\t\t  unsigned flags,\n\t\t\t\t  const char *prefix,\n\t\t\t\t
      \ struct object_id *oid,\n\t\t\t\t  struct object_context *oc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_with_context_1
      Src: /src/git/object-name.c:1885,1
    - Dst: object_context_release
      Src: /src/git/object-name.c:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - name
    - prefix
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1879
    functionDepth: 9
    functionLinenumber: 1879
    functionLinenumberEnd: 1888
    functionName: maybe_die_on_misspelt_object_name
    functionSourceFile: /src/git/object-name.c
    functionUses: 0
    functionsReached:
    - get_oid_with_context_1
    - object_context_release
    linkageType: ''
    returnType: void
    signature: "void maybe_die_on_misspelt_object_name(struct repository *r,\n\t\t\t\t
      \      const char *name,\n\t\t\t\t       const char *prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/object-name.c:1897,1
    - Dst: get_oid_with_context_1
      Src: /src/git/object-name.c:1898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - repo
    - str
    - flags
    - oid
    - oc
    argTypes:
    - struct repository*
    - char*
    - unsigned
    - struct object_id*
    - struct object_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1890
    functionDepth: 9
    functionLinenumber: 1890
    functionLinenumberEnd: 1899
    functionName: get_oid_with_context
    functionSourceFile: /src/git/object-name.c
    functionUses: 4
    functionsReached:
    - get_oid_with_context_1
    - BUG
    linkageType: ''
    returnType: enum get_oid_result
    signature: "enum get_oid_result get_oid_with_context(struct repository *repo,\n\t\t\t\t\t
      const char *str,\n\t\t\t\t\t unsigned flags,\n\t\t\t\t\t struct object_id *oid,\n\t\t\t\t\t
      struct object_context *oc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: FOREACH_FSCK_MSG_ID
    functionSourceFile: /src/git/fsck.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_FSCK_MSG_ID(FUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - msg_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: MSG_ID
    functionSourceFile: /src/git/fsck.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSG_ID(id, msg_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/protocol.c:11,1
    - Dst: strcmp
      Src: /src/git/protocol.c:13,1
    - Dst: strcmp
      Src: /src/git/protocol.c:15,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 19
    functionName: parse_protocol_version
    functionSourceFile: /src/git/protocol.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum protocol_version
    signature: enum protocol_version parse_protocol_version(const char *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_tmp
      Src: /src/git/protocol.c:27,1
    - Dst: parse_protocol_version
      Src: /src/git/protocol.c:28,1
    - Dst: die
      Src: /src/git/protocol.c:31,1
    - Dst: getenv
      Src: /src/git/protocol.c:37,1
    - Dst: parse_protocol_version
      Src: /src/git/protocol.c:39,1
    - Dst: die
      Src: /src/git/protocol.c:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 47
    functionName: get_protocol_version_config
    functionSourceFile: /src/git/protocol.c
    functionUses: 0
    functionsReached:
    - getenv
    - repo_config_get_string_tmp
    - die
    - parse_protocol_version
    linkageType: ''
    returnType: enum protocol_version
    signature: enum protocol_version get_protocol_version_config(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/protocol.c:51,1
    - Dst: string_list_split
      Src: /src/git/protocol.c:64,1
    - Dst: for_each_string_list_item
      Src: /src/git/protocol.c:66,1
    - Dst: skip_prefix
      Src: /src/git/protocol.c:70,1
    - Dst: parse_protocol_version
      Src: /src/git/protocol.c:71,1
    - Dst: string_list_clear
      Src: /src/git/protocol.c:77,1
    - Dst: trace2_data_intmax
      Src: /src/git/protocol.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 83
    functionName: determine_protocol_version_server
    functionSourceFile: /src/git/protocol.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - trace2_data_intmax
    - parse_protocol_version
    - string_list_split
    - getenv
    - skip_prefix
    linkageType: ''
    returnType: enum protocol_version
    signature: enum protocol_version determine_protocol_version_server(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/protocol.c:89,1
    - Dst: parse_protocol_version
      Src: /src/git/protocol.c:90,1
    - Dst: die
      Src: /src/git/protocol.c:93,1
    - Dst: die
      Src: /src/git/protocol.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - server_response
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: determine_protocol_version_client
    functionSourceFile: /src/git/protocol.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - die
    - parse_protocol_version
    linkageType: ''
    returnType: enum protocol_version
    signature: enum protocol_version determine_protocol_version_client(const char
      *server_response)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: should_use_loose_object_map
    functionSourceFile: /src/git/loose.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int should_use_loose_object_map(struct repository *repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/loose.c:25,1
    - Dst: kh_init_oid_map
      Src: /src/git/loose.c:26,1
    - Dst: kh_init_oid_map
      Src: /src/git/loose.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct loose_object_map**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: loose_object_map_init
    functionSourceFile: /src/git/loose.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - kh_init_oid_map
    linkageType: ''
    returnType: void
    signature: void loose_object_map_init(struct loose_object_map **map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_put_oid_map
      Src: /src/git/loose.c:37,1
    - Dst: xmalloc
      Src: /src/git/loose.c:43,1
    - Dst: oidcpy
      Src: /src/git/loose.c:44,1
    - Dst: kh_value
      Src: /src/git/loose.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - map
    - key
    - value
    argTypes:
    - kh_oid_map_t*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: insert_oid_pair
    functionSourceFile: /src/git/loose.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - kh_value
    - kh_put_oid_map
    - xmalloc
    linkageType: ''
    returnType: int
    signature: int insert_oid_pair(kh_oid_map_t *map, const struct object_id *key,
      const struct object_id *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/loose.c:53,1
    - Dst: insert_oid_pair
      Src: /src/git/loose.c:57,1
    - Dst: insert_oid_pair
      Src: /src/git/loose.c:58,1
    - Dst: oidtree_insert
      Src: /src/git/loose.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - oid
    - compat_oid
    argTypes:
    - struct odb_source*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: insert_loose_map
    functionSourceFile: /src/git/loose.c
    functionUses: 0
    functionsReached:
    - insert_oid_pair
    - oidtree_insert
    - odb_source_files_downcast
    linkageType: ''
    returnType: int
    signature: "int insert_loose_map(struct odb_source *source,\n\t\t\t    const struct
      object_id *oid,\n\t\t\t    const struct object_id *compat_oid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/loose.c:67,1
    - Dst: loose_object_map_init
      Src: /src/git/loose.c:72,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/loose.c:74,1
    - Dst: oidtree_init
      Src: /src/git/loose.c:75,1
    - Dst: insert_loose_map
      Src: /src/git/loose.c:78,1
    - Dst: insert_loose_map
      Src: /src/git/loose.c:79,1
    - Dst: insert_loose_map
      Src: /src/git/loose.c:80,1
    - Dst: repo_common_path_replace
      Src: /src/git/loose.c:82,1
    - Dst: fopen
      Src: /src/git/loose.c:83,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:85,1
    - Dst: strbuf_getwholeline
      Src: /src/git/loose.c:90,1
    - Dst: strcmp
      Src: /src/git/loose.c:90,1
    - Dst: strbuf_getline_lf
      Src: /src/git/loose.c:92,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/loose.c:95,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/loose.c:97,1
    - Dst: insert_loose_map
      Src: /src/git/loose.c:100,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:103,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:104,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:107,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:108,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - repo
    - source
    argTypes:
    - struct repository*
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 110
    functionName: load_one_loose_object_map
    functionSourceFile: /src/git/loose.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - strbuf_release
    - strbuf_getline_lf
    - insert_loose_map
    - odb_source_files_downcast
    - oidtree_init
    - repo_common_path_replace
    - parse_oid_hex_algop
    - ALLOC_ARRAY
    - fopen
    - loose_object_map_init
    - strcmp
    linkageType: ''
    returnType: int
    signature: int load_one_loose_object_map(struct repository *repo, struct odb_source
      *source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_use_loose_object_map
      Src: /src/git/loose.c:116,1
    - Dst: odb_prepare_alternates
      Src: /src/git/loose.c:119,1
    - Dst: load_one_loose_object_map
      Src: /src/git/loose.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: repo_read_loose_object_map
    functionSourceFile: /src/git/loose.c
    functionUses: 0
    functionsReached:
    - odb_prepare_alternates
    - should_use_loose_object_map
    - load_one_loose_object_map
    linkageType: ''
    returnType: int
    signature: int repo_read_loose_object_map(struct repository *repo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/loose.c:131,1
    - Dst: should_use_loose_object_map
      Src: /src/git/loose.c:138,1
    - Dst: repo_common_path_replace
      Src: /src/git/loose.c:141,1
    - Dst: hold_lock_file_for_update_timeout
      Src: /src/git/loose.c:142,1
    - Dst: kh_begin
      Src: /src/git/loose.c:143,1
    - Dst: write_in_full
      Src: /src/git/loose.c:144,1
    - Dst: strlen
      Src: /src/git/loose.c:144,1
    - Dst: kh_end
      Src: /src/git/loose.c:147,1
    - Dst: kh_exist
      Src: /src/git/loose.c:148,1
    - Dst: oideq
      Src: /src/git/loose.c:149,1
    - Dst: kh_key
      Src: /src/git/loose.c:149,1
    - Dst: oideq
      Src: /src/git/loose.c:150,1
    - Dst: kh_key
      Src: /src/git/loose.c:150,1
    - Dst: strbuf_addf
      Src: /src/git/loose.c:152,1
    - Dst: oid_to_hex
      Src: /src/git/loose.c:152,1
    - Dst: kh_key
      Src: /src/git/loose.c:152,1
    - Dst: oid_to_hex
      Src: /src/git/loose.c:152,1
    - Dst: kh_value
      Src: /src/git/loose.c:152,1
    - Dst: write_in_full
      Src: /src/git/loose.c:153,1
    - Dst: strbuf_reset
      Src: /src/git/loose.c:155,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:158,1
    - Dst: commit_lock_file
      Src: /src/git/loose.c:159,1
    - Dst: error_errno
      Src: /src/git/loose.c:160,1
    - Dst: _
      Src: /src/git/loose.c:160,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:161,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:164,1
    - Dst: rollback_lock_file
      Src: /src/git/loose.c:167,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:168,1
    - Dst: error_errno
      Src: /src/git/loose.c:169,1
    - Dst: _
      Src: /src/git/loose.c:169,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:170,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 172
    functionName: repo_write_loose_object_map
    functionSourceFile: /src/git/loose.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_addf
    - strbuf_release
    - commit_lock_file
    - odb_source_files_downcast
    - repo_common_path_replace
    - hold_lock_file_for_update_timeout
    - kh_value
    - rollback_lock_file
    - kh_exist
    - write_in_full
    - kh_begin
    - oid_to_hex
    - _
    - kh_end
    - should_use_loose_object_map
    - kh_key
    - strbuf_reset
    - strlen
    - oideq
    linkageType: ''
    returnType: int
    signature: int repo_write_loose_object_map(struct repository *repo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/loose.c:183,1
    - Dst: hold_lock_file_for_update_timeout
      Src: /src/git/loose.c:184,1
    - Dst: open
      Src: /src/git/loose.c:186,1
    - Dst: fstat
      Src: /src/git/loose.c:189,1
    - Dst: write_in_full
      Src: /src/git/loose.c:191,1
    - Dst: strlen
      Src: /src/git/loose.c:191,1
    - Dst: strbuf_addf
      Src: /src/git/loose.c:194,1
    - Dst: oid_to_hex
      Src: /src/git/loose.c:194,1
    - Dst: oid_to_hex
      Src: /src/git/loose.c:194,1
    - Dst: write_in_full
      Src: /src/git/loose.c:195,1
    - Dst: close
      Src: /src/git/loose.c:197,1
    - Dst: adjust_shared_perm
      Src: /src/git/loose.c:199,1
    - Dst: rollback_lock_file
      Src: /src/git/loose.c:200,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:201,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:202,1
    - Dst: error_errno
      Src: /src/git/loose.c:205,1
    - Dst: _
      Src: /src/git/loose.c:205,1
    - Dst: close
      Src: /src/git/loose.c:206,1
    - Dst: rollback_lock_file
      Src: /src/git/loose.c:207,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:208,1
    - Dst: strbuf_release
      Src: /src/git/loose.c:209,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - source
    - oid
    - compat_oid
    argTypes:
    - struct odb_source*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 211
    functionName: write_one_object
    functionSourceFile: /src/git/loose.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - oid_to_hex
    - open
    - fstat
    - strbuf_addf
    - hold_lock_file_for_update_timeout
    - strlen
    - rollback_lock_file
    - close
    - _
    - write_in_full
    - adjust_shared_perm
    linkageType: ''
    returnType: int
    signature: "int write_one_object(struct odb_source *source,\n\t\t\t    const struct
      object_id *oid,\n\t\t\t    const struct object_id *compat_oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_use_loose_object_map
      Src: /src/git/loose.c:219,1
    - Dst: insert_loose_map
      Src: /src/git/loose.c:222,1
    - Dst: write_one_object
      Src: /src/git/loose.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - source
    - oid
    - compat_oid
    argTypes:
    - struct odb_source*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: repo_add_loose_object_map
    functionSourceFile: /src/git/loose.c
    functionUses: 3
    functionsReached:
    - should_use_loose_object_map
    - write_one_object
    - insert_loose_map
    linkageType: ''
    returnType: int
    signature: "int repo_add_loose_object_map(struct odb_source *source,\n\t\t\t      const
      struct object_id *oid,\n\t\t\t      const struct object_id *compat_oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/loose.c:238,1
    - Dst: kh_get_oid_map
      Src: /src/git/loose.c:245,1
    - Dst: kh_end
      Src: /src/git/loose.c:246,1
    - Dst: oidcpy
      Src: /src/git/loose.c:247,1
    - Dst: kh_value
      Src: /src/git/loose.c:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - repo
    - src
    - to
    - dest
    argTypes:
    - struct repository*
    - struct object_id*
    - struct git_hash_algo*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 252
    functionName: repo_loose_object_map_oid
    functionSourceFile: /src/git/loose.c
    functionUses: 0
    functionsReached:
    - odb_source_files_downcast
    - oidcpy
    - kh_value
    - kh_get_oid_map
    - kh_end
    linkageType: ''
    returnType: int
    signature: "int repo_loose_object_map_oid(struct repository *repo,\n\t\t\t      const
      struct object_id *src,\n\t\t\t      const struct git_hash_algo *to,\n\t\t\t
      \     struct object_id *dest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_foreach_value
      Src: /src/git/loose.c:262,1
    - Dst: free
      Src: /src/git/loose.c:262,1
    - Dst: kh_foreach_value
      Src: /src/git/loose.c:263,1
    - Dst: free
      Src: /src/git/loose.c:263,1
    - Dst: kh_destroy_oid_map
      Src: /src/git/loose.c:264,1
    - Dst: kh_destroy_oid_map
      Src: /src/git/loose.c:265,1
    - Dst: free
      Src: /src/git/loose.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct loose_object_map**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 268
    functionName: loose_object_map_clear
    functionSourceFile: /src/git/loose.c
    functionUses: 1
    functionsReached:
    - kh_destroy_oid_map
    - kh_foreach_value
    - free
    linkageType: ''
    returnType: void
    signature: void loose_object_map_clear(struct loose_object_map **map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/tag.c:26,1
    - Dst: parse_signature
      Src: /src/git/tag.c:28,1
    - Dst: write_in_full
      Src: /src/git/tag.c:30,1
    - Dst: error
      Src: /src/git/tag.c:31,1
    - Dst: strbuf_detach
      Src: /src/git/tag.c:35,1
    - Dst: check_signature
      Src: /src/git/tag.c:36,1
    - Dst: print_signature_buffer
      Src: /src/git/tag.c:39,1
    - Dst: signature_check_clear
      Src: /src/git/tag.c:41,1
    - Dst: strbuf_release
      Src: /src/git/tag.c:42,1
    - Dst: strbuf_release
      Src: /src/git/tag.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - size
    - flags
    argTypes:
    - char*
    - unsigned long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 45
    functionName: run_gpg_verify
    functionSourceFile: /src/git/tag.c
    functionUses: 0
    functionsReached:
    - error
    - parse_signature
    - memset
    - strbuf_release
    - check_signature
    - print_signature_buffer
    - strbuf_detach
    - signature_check_clear
    - write_in_full
    linkageType: ''
    returnType: int
    signature: int run_gpg_verify(const char *buf, unsigned long size, unsigned flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/tag.c:55,1
    - Dst: error
      Src: /src/git/tag.c:57,1
    - Dst: oid_to_hex
      Src: /src/git/tag.c:60,1
    - Dst: type_name
      Src: /src/git/tag.c:61,1
    - Dst: odb_read_object
      Src: /src/git/tag.c:63,1
    - Dst: error
      Src: /src/git/tag.c:65,1
    - Dst: oid_to_hex
      Src: /src/git/tag.c:68,1
    - Dst: run_gpg_verify
      Src: /src/git/tag.c:70,1
    - Dst: free
      Src: /src/git/tag.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - r
    - oid
    - name_to_report
    - flags
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: gpg_verify_tag
    functionSourceFile: /src/git/tag.c
    functionUses: 0
    functionsReached:
    - error
    - run_gpg_verify
    - oid_to_hex
    - odb_read_object_info
    - type_name
    - free
    - odb_read_object
    linkageType: ''
    returnType: int
    signature: "int gpg_verify_tag(struct repository *r, const struct object_id *oid,\n\t\t
      \  const char *name_to_report, unsigned flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/tag.c:82,1
    - Dst: is_promisor_object
      Src: /src/git/tag.c:88,1
    - Dst: strlen
      Src: /src/git/tag.c:91,1
    - Dst: error
      Src: /src/git/tag.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - r
    - o
    - warn
    - warnlen
    argTypes:
    - struct repository*
    - struct object*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 95
    functionName: deref_tag
    functionSourceFile: /src/git/tag.c
    functionUses: 5
    functionsReached:
    - error
    - strlen
    - is_promisor_object
    - parse_object
    linkageType: ''
    returnType: struct object
    signature: struct object *deref_tag(struct repository *r, struct object *o, const
      char *warn, int warnlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/tag.c:99,1
    - Dst: create_object
      Src: /src/git/tag.c:101,1
    - Dst: alloc_tag_node
      Src: /src/git/tag.c:101,1
    - Dst: object_as_type
      Src: /src/git/tag.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: lookup_tag
    functionSourceFile: /src/git/tag.c
    functionUses: 4
    functionsReached:
    - alloc_tag_node
    - lookup_object
    - object_as_type
    - create_object
    linkageType: ''
    returnType: struct tag
    signature: struct tag *lookup_tag(struct repository *r, const struct object_id
      *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_timestamp
      Src: /src/git/tag.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - tail
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: parse_tag_date
    functionSourceFile: /src/git/tag.c
    functionUses: 0
    functionsReached:
    - parse_timestamp
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t parse_tag_date(const char *buf, const char *tail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/tag.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: release_tag_memory
    functionSourceFile: /src/git/tag.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void release_tag_memory(struct tag *t)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/tag.c:148,1
    - Dst: memcmp
      Src: /src/git/tag.c:153,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/tag.c:154,1
    - Dst: starts_with
      Src: /src/git/tag.c:158,1
    - Dst: memchr
      Src: /src/git/tag.c:161,1
    - Dst: memcpy
      Src: /src/git/tag.c:164,1
    - Dst: strcmp
      Src: /src/git/tag.c:168,1
    - Dst: lookup_blob
      Src: /src/git/tag.c:169,1
    - Dst: strcmp
      Src: /src/git/tag.c:170,1
    - Dst: lookup_tree
      Src: /src/git/tag.c:171,1
    - Dst: strcmp
      Src: /src/git/tag.c:172,1
    - Dst: lookup_commit
      Src: /src/git/tag.c:173,1
    - Dst: strcmp
      Src: /src/git/tag.c:174,1
    - Dst: lookup_tag
      Src: /src/git/tag.c:175,1
    - Dst: error
      Src: /src/git/tag.c:177,1
    - Dst: oid_to_hex
      Src: /src/git/tag.c:178,1
    - Dst: error
      Src: /src/git/tag.c:182,1
    - Dst: oid_to_hex
      Src: /src/git/tag.c:183,1
    - Dst: oid_to_hex
      Src: /src/git/tag.c:184,1
    - Dst: starts_with
      Src: /src/git/tag.c:186,1
    - Dst: memchr
      Src: /src/git/tag.c:191,1
    - Dst: xmemdupz
      Src: /src/git/tag.c:194,1
    - Dst: starts_with
      Src: /src/git/tag.c:197,1
    - Dst: parse_tag_date
      Src: /src/git/tag.c:198,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - r
    - item
    - data
    - size
    argTypes:
    - struct repository*
    - struct tag*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 204
    functionName: parse_tag_buffer
    functionSourceFile: /src/git/tag.c
    functionUses: 1
    functionsReached:
    - error
    - xmemdupz
    - memchr
    - oid_to_hex
    - lookup_tag
    - parse_tag_date
    - parse_oid_hex_algop
    - starts_with
    - memcpy
    - lookup_commit
    - lookup_blob
    - strcmp
    - lookup_tree
    - FREE_AND_NULL
    - memcmp
    linkageType: ''
    returnType: int
    signature: int parse_tag_buffer(struct repository *r, struct tag *item, const
      void *data, unsigned long size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/tag.c:215,1
    - Dst: error
      Src: /src/git/tag.c:217,1
    - Dst: oid_to_hex
      Src: /src/git/tag.c:218,1
    - Dst: free
      Src: /src/git/tag.c:220,1
    - Dst: error
      Src: /src/git/tag.c:221,1
    - Dst: oid_to_hex
      Src: /src/git/tag.c:222,1
    - Dst: parse_tag_buffer
      Src: /src/git/tag.c:224,1
    - Dst: free
      Src: /src/git/tag.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - r
    - item
    argTypes:
    - struct repository*
    - struct tag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 206
    functionDepth: 5
    functionLinenumber: 206
    functionLinenumberEnd: 227
    functionName: parse_tag
    functionSourceFile: /src/git/tag.c
    functionUses: 1
    functionsReached:
    - error
    - oid_to_hex
    - parse_tag_buffer
    - free
    - odb_read_object
    linkageType: ''
    returnType: int
    signature: int parse_tag(struct repository *r, struct tag *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/tag.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tag
    argTypes:
    - struct tag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: get_tagged_oid
    functionSourceFile: /src/git/tag.c
    functionUses: 1
    functionsReached:
    - die
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *get_tagged_oid(struct tag *tag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hex2chr
      Src: /src/git/urlmatch.c:53,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:61,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:62,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:63,1
    - Dst: strbuf_addf
      Src: /src/git/urlmatch.c:64,1
    - Dst: strbuf_addch
      Src: /src/git/urlmatch.c:66,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 5
    argNames:
    - buf
    - from
    - from_len
    - esc_extra
    - esc_ok
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 70
    functionName: append_normalized_escapes
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 0
    functionsReached:
    - hex2chr
    - strbuf_addf
    - strchr
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: "int append_normalized_escapes(struct strbuf *buf,\n\t\t\t\t     const
      char *from,\n\t\t\t\t     size_t from_len,\n\t\t\t\t     const char *esc_extra,\n\t\t\t\t
      \    const char *esc_ok)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/urlmatch.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - char*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: end_of_token
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: char
    signature: char *end_of_token(const char *s, int c, size_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: end_of_token
      Src: /src/git/urlmatch.c:89,1
    - Dst: end_of_token
      Src: /src/git/urlmatch.c:90,1
    - Dst: memcmp
      Src: /src/git/urlmatch.c:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - url_info
    - pattern_info
    argTypes:
    - struct url_info*
    - struct url_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 113
    functionName: match_host
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 0
    functionsReached:
    - memcmp
    - end_of_token
    linkageType: ''
    returnType: int
    signature: "int match_host(const struct url_info *url_info,\n\t\t      const struct
      url_info *pattern_info)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/urlmatch.c:152,1
    - Dst: strspn
      Src: /src/git/urlmatch.c:164,1
    - Dst: isalpha
      Src: /src/git/urlmatch.c:165,1
    - Dst: _
      Src: /src/git/urlmatch.c:169,1
    - Dst: strbuf_init
      Src: /src/git/urlmatch.c:173,1
    - Dst: strbuf_addch
      Src: /src/git/urlmatch.c:178,1
    - Dst: tolower
      Src: /src/git/urlmatch.c:178,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:184,1
    - Dst: strcspn
      Src: /src/git/urlmatch.c:185,1
    - Dst: append_normalized_escapes
      Src: /src/git/urlmatch.c:189,1
    - Dst: _
      Src: /src/git/urlmatch.c:193,1
    - Dst: strbuf_release
      Src: /src/git/urlmatch.c:195,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:198,1
    - Dst: strbuf_addch
      Src: /src/git/urlmatch.c:207,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:216,1
    - Dst: starts_with
      Src: /src/git/urlmatch.c:218,1
    - Dst: _
      Src: /src/git/urlmatch.c:221,1
    - Dst: strbuf_release
      Src: /src/git/urlmatch.c:223,1
    - Dst: _
      Src: /src/git/urlmatch.c:238,1
    - Dst: strbuf_release
      Src: /src/git/urlmatch.c:240,1
    - Dst: strspn
      Src: /src/git/urlmatch.c:245,1
    - Dst: strspn
      Src: /src/git/urlmatch.c:247,1
    - Dst: _
      Src: /src/git/urlmatch.c:253,1
    - Dst: strbuf_release
      Src: /src/git/urlmatch.c:255,1
    - Dst: strbuf_addch
      Src: /src/git/urlmatch.c:259,1
    - Dst: tolower
      Src: /src/git/urlmatch.c:259,1
    - Dst: strspn
      Src: /src/git/urlmatch.c:271,1
    - Dst: starts_with
      Src: /src/git/urlmatch.c:277,1
    - Dst: strncmp
      Src: /src/git/urlmatch.c:278,1
    - Dst: starts_with
      Src: /src/git/urlmatch.c:281,1
    - Dst: strncmp
      Src: /src/git/urlmatch.c:282,1
    - Dst: strspn
      Src: /src/git/urlmatch.c:293,1
    - Dst: _
      Src: /src/git/urlmatch.c:298,1
    - Dst: strbuf_release
      Src: /src/git/urlmatch.c:300,1
    - Dst: strtoul
      Src: /src/git/urlmatch.c:304,1
    - Dst: _
      Src: /src/git/urlmatch.c:309,1
    - Dst: strbuf_release
      Src: /src/git/urlmatch.c:311,1
    - Dst: strbuf_addch
      Src: /src/git/urlmatch.c:314,1
    - Dst: strbuf_add
      Src: /src/git/urlmatch.c:316,1
    - Dst: strbuf_addch
      Src: /src/git/urlmatch.c:333,1
    - Dst: strcspn
      Src: /src/git/urlmatch.c:341,1
    - Dst: append_normalized_escapes
      Src: /src/git/urlmatch.c:348,1
    - Dst: _
      Src: /src/git/urlmatch.c:352,1
    - Dst: strbuf_release
      Src: /src/git/urlmatch.c:354,1
    - Dst: strcmp
      Src: /src/git/urlmatch.c:359,1
    - Dst: strbuf_setlen
      Src: /src/git/urlmatch.c:362,1
    - Dst: strbuf_setlen
      Src: /src/git/urlmatch.c:365,1
    - Dst: strcmp
      Src: /src/git/urlmatch.c:367,1
    - Dst: _
      Src: /src/git/urlmatch.c:377,1
    - Dst: strbuf_release
      Src: /src/git/urlmatch.c:379,1
    - Dst: strbuf_setlen
      Src: /src/git/urlmatch.c:384,1
    - Dst: strbuf_setlen
      Src: /src/git/urlmatch.c:387,1
    - Dst: strbuf_addch
      Src: /src/git/urlmatch.c:398,1
    - Dst: append_normalized_escapes
      Src: /src/git/urlmatch.c:408,1
    - Dst: _
      Src: /src/git/urlmatch.c:411,1
    - Dst: strbuf_release
      Src: /src/git/urlmatch.c:413,1
    - Dst: strbuf_detach
      Src: /src/git/urlmatch.c:419,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 203
    argCount: 3
    argNames:
    - url
    - out_info
    - allow_globs
    argTypes:
    - char*
    - struct url_info*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 437
    functionName: url_normalize_1
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - isalpha
    - strbuf_add
    - strbuf_setlen
    - strchr
    - strbuf_addch
    - starts_with
    - strspn
    - strlen
    - strcmp
    - strbuf_detach
    - _
    - strncmp
    - append_normalized_escapes
    - tolower
    - strbuf_init
    - strtoul
    - strcspn
    linkageType: ''
    returnType: char
    signature: char *url_normalize_1(const char *url, struct url_info *out_info, char
      allow_globs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_normalize_1
      Src: /src/git/urlmatch.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - url
    - out_info
    argTypes:
    - char*
    - struct url_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: url_normalize
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 2
    functionsReached:
    - url_normalize_1
    linkageType: ''
    returnType: char
    signature: char *url_normalize(const char *url, struct url_info *out_info)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: is_url
      Src: /src/git/urlmatch.c:455,1
    - Dst: url_decode
      Src: /src/git/urlmatch.c:456,1
    - Dst: xstrdup
      Src: /src/git/urlmatch.c:458,1
    - Dst: strbuf_init
      Src: /src/git/urlmatch.c:460,1
    - Dst: strlen
      Src: /src/git/urlmatch.c:460,1
    - Dst: strbuf_addstr
      Src: /src/git/urlmatch.c:461,1
    - Dst: free
      Src: /src/git/urlmatch.c:462,1
    - Dst: strstr
      Src: /src/git/urlmatch.c:464,1
    - Dst: url_get_scheme
      Src: /src/git/urlmatch.c:474,1
    - Dst: url_is_local_not_ssh
      Src: /src/git/urlmatch.c:478,1
    - Dst: strbuf_insertstr
      Src: /src/git/urlmatch.c:481,1
    - Dst: strlen
      Src: /src/git/urlmatch.c:482,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:510,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:517,1
    - Dst: strbuf_remove
      Src: /src/git/urlmatch.c:526,1
    - Dst: strbuf_remove
      Src: /src/git/urlmatch.c:527,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:530,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:532,1
    - Dst: strchr
      Src: /src/git/urlmatch.c:535,1
    - Dst: strbuf_remove
      Src: /src/git/urlmatch.c:540,1
    - Dst: strbuf_detach
      Src: /src/git/urlmatch.c:546,1
    - Dst: url_normalize
      Src: /src/git/urlmatch.c:547,1
    - Dst: free
      Src: /src/git/urlmatch.c:548,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 2
    argNames:
    - url_orig
    - out_info
    argTypes:
    - char*
    - struct url_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 444
    functionDepth: 4
    functionLinenumber: 444
    functionLinenumberEnd: 568
    functionName: url_parse
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 0
    functionsReached:
    - url_get_scheme
    - strbuf_insertstr
    - strbuf_remove
    - strstr
    - url_is_local_not_ssh
    - url_normalize
    - strchr
    - strlen
    - strbuf_detach
    - strbuf_addstr
    - free
    - is_url
    - url_decode
    - strbuf_init
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *url_parse(const char *url_orig, struct url_info *out_info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/urlmatch.c:595,1
    - Dst: strlen
      Src: /src/git/urlmatch.c:597,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 3
    argNames:
    - url
    - url_prefix
    - url_prefix_len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 600
    functionName: url_match_prefix
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: size_t
    signature: "size_t url_match_prefix(const char *url,\n\t\t\t       const char
      *url_prefix,\n\t\t\t       size_t url_prefix_len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/urlmatch.c:631,1
    - Dst: strncmp
      Src: /src/git/urlmatch.c:637,1
    - Dst: match_host
      Src: /src/git/urlmatch.c:645,1
    - Dst: strncmp
      Src: /src/git/urlmatch.c:650,1
    - Dst: url_match_prefix
      Src: /src/git/urlmatch.c:655,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 3
    argNames:
    - url
    - url_prefix
    - match
    argTypes:
    - struct url_info*
    - struct url_info*
    - struct urlmatch_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 669
    functionName: match_urls
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 0
    functionsReached:
    - strncmp
    - match_host
    - url_match_prefix
    linkageType: ''
    returnType: int
    signature: "int match_urls(const struct url_info *url,\n\t\t      const struct
      url_info *url_prefix,\n\t\t      struct urlmatch_item *match)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct urlmatch_item*
    - struct urlmatch_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 681
    functionName: cmp_matches
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cmp_matches(const struct urlmatch_item *a,\n\t\t       const struct
      urlmatch_item *b)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/urlmatch.c:696,1
    - Dst: struct urlmatch_config*::cascade_fn
      Src: /src/git/urlmatch.c:698,1
    - Dst: strrchr
      Src: /src/git/urlmatch.c:701,1
    - Dst: xmemdupz
      Src: /src/git/urlmatch.c:706,1
    - Dst: url_normalize_1
      Src: /src/git/urlmatch.c:707,1
    - Dst: match_urls
      Src: /src/git/urlmatch.c:709,1
    - Dst: struct urlmatch_config*::fallback_match_fn
      Src: /src/git/urlmatch.c:711,1
    - Dst: free
      Src: /src/git/urlmatch.c:715,1
    - Dst: free
      Src: /src/git/urlmatch.c:716,1
    - Dst: strcmp
      Src: /src/git/urlmatch.c:722,1
    - Dst: string_list_insert
      Src: /src/git/urlmatch.c:725,1
    - Dst: xcalloc
      Src: /src/git/urlmatch.c:727,1
    - Dst: select_fn
      Src: /src/git/urlmatch.c:729,1
    - Dst: memcpy
      Src: /src/git/urlmatch.c:738,1
    - Dst: strbuf_addstr
      Src: /src/git/urlmatch.c:739,1
    - Dst: strbuf_addch
      Src: /src/git/urlmatch.c:740,1
    - Dst: strbuf_addstr
      Src: /src/git/urlmatch.c:741,1
    - Dst: struct urlmatch_config*::collect_fn
      Src: /src/git/urlmatch.c:742,1
    - Dst: strbuf_release
      Src: /src/git/urlmatch.c:744,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 683
    functionDepth: 3
    functionLinenumber: 683
    functionLinenumberEnd: 746
    functionName: urlmatch_config_entry
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - match_urls
    - strbuf_release
    - string_list_insert
    - strrchr
    - memcpy
    - strbuf_addch
    - struct urlmatch_config*::cascade_fn
    - select_fn
    - struct urlmatch_config*::collect_fn
    - strcmp
    - xcalloc
    - free
    - url_normalize_1
    - strbuf_addstr
    - skip_prefix
    - struct urlmatch_config*::fallback_match_fn
    linkageType: ''
    returnType: int
    signature: "int urlmatch_config_entry(const char *var, const char *value,\n\t\t\t
      \ const struct config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/urlmatch.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct urlmatch_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 751
    functionName: urlmatch_config_release
    functionSourceFile: /src/git/urlmatch.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    linkageType: ''
    returnType: void
    signature: void urlmatch_config_release(struct urlmatch_config *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    - e
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: reencode_string_len
    functionSourceFile: /src/git/utf8.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *reencode_string_len(const char *a UNUSED, size_t b UNUSED,\n\t\t\t\t\tconst
      char *c UNUSED,\n\t\t\t\t\tconst char *d UNUSED, size_t *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reencode_string_len
      Src: /src/git/utf8.h:46,1
    - Dst: strlen
      Src: /src/git/utf8.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out_encoding
    - in_encoding
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: reencode_string
    functionSourceFile: /src/git/utf8.h
    functionUses: 1
    functionsReached:
    - reencode_string_len
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *reencode_string(const char *in,\n\t\t\t\t    const char *out_encoding,\n\t\t\t\t
      \   const char *in_encoding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_to_hex_algop
      Src: /src/git/midx.c:29,1
    - Dst: midx_get_checksum_hash
      Src: /src/git/midx.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: midx_get_checksum_hex
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - hash_to_hex_algop
    - midx_get_checksum_hash
    linkageType: ''
    returnType: char
    signature: char *midx_get_checksum_hex(const struct multi_pack_index *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: midx_get_checksum_hash
    functionSourceFile: /src/git/midx.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *midx_get_checksum_hash(const struct multi_pack_index
      *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_midx_filename_ext
      Src: /src/git/midx.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - out
    argTypes:
    - struct odb_source*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: get_midx_filename
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - get_midx_filename_ext
    linkageType: ''
    returnType: void
    signature: void get_midx_filename(struct odb_source *source, struct strbuf *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/midx.c:46,1
    - Dst: strbuf_addf
      Src: /src/git/midx.c:48,1
    - Dst: hash_to_hex_algop
      Src: /src/git/midx.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - source
    - out
    - hash
    - ext
    argTypes:
    - struct odb_source*
    - struct strbuf*
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: get_midx_filename_ext
    functionSourceFile: /src/git/midx.c
    functionUses: 2
    functionsReached:
    - hash_to_hex_algop
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void get_midx_filename_ext(struct odb_source *source, struct strbuf
      *out,\n\t\t\t   const unsigned char *hash, const char *ext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/midx.c:59,1
    - Dst: _
      Src: /src/git/midx.c:59,1
    - Dst: ntohl
      Src: /src/git/midx.c:63,1
    - Dst: ntohl
      Src: /src/git/midx.c:64,1
    - Dst: error
      Src: /src/git/midx.c:67,1
    - Dst: _
      Src: /src/git/midx.c:67,1
    - Dst: ntohl
      Src: /src/git/midx.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - chunk_start
    - chunk_size
    - data
    argTypes:
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: midx_read_oid_fanout
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - error
    - ntohl
    - _
    linkageType: ''
    returnType: int
    signature: "int midx_read_oid_fanout(const unsigned char *chunk_start,\n\t\t\t\tsize_t
      chunk_size, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: st_mult
      Src: /src/git/midx.c:82,1
    - Dst: error
      Src: /src/git/midx.c:83,1
    - Dst: _
      Src: /src/git/midx.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - chunk_start
    - chunk_size
    - data
    argTypes:
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: midx_read_oid_lookup
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - st_mult
    linkageType: ''
    returnType: int
    signature: "int midx_read_oid_lookup(const unsigned char *chunk_start,\n\t\t\t\tsize_t
      chunk_size, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: st_mult
      Src: /src/git/midx.c:95,1
    - Dst: error
      Src: /src/git/midx.c:96,1
    - Dst: _
      Src: /src/git/midx.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - chunk_start
    - chunk_size
    - data
    argTypes:
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: midx_read_object_offsets
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - st_mult
    linkageType: ''
    returnType: int
    signature: "int midx_read_object_offsets(const unsigned char *chunk_start,\n\t\t\t\t
      \   size_t chunk_size, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/midx.c:104,1
    - Dst: packfile_store_prepare
      Src: /src/git/midx.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: get_multi_pack_index
    functionSourceFile: /src/git/midx.c
    functionUses: 1
    functionsReached:
    - packfile_store_prepare
    - odb_source_files_downcast
    linkageType: ''
    returnType: struct multi_pack_index
    signature: struct multi_pack_index *get_multi_pack_index(struct odb_source *source)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: git_open
      Src: /src/git/midx.c:123,1
    - Dst: fstat
      Src: /src/git/midx.c:127,1
    - Dst: error_errno
      Src: /src/git/midx.c:128,1
    - Dst: _
      Src: /src/git/midx.c:128,1
    - Dst: xsize_t
      Src: /src/git/midx.c:132,1
    - Dst: error
      Src: /src/git/midx.c:135,1
    - Dst: _
      Src: /src/git/midx.c:135,1
    - Dst: xmmap
      Src: /src/git/midx.c:139,1
    - Dst: close
      Src: /src/git/midx.c:140,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/midx.c:142,1
    - Dst: get_be32
      Src: /src/git/midx.c:147,1
    - Dst: die
      Src: /src/git/midx.c:149,1
    - Dst: _
      Src: /src/git/midx.c:149,1
    - Dst: die
      Src: /src/git/midx.c:154,1
    - Dst: _
      Src: /src/git/midx.c:154,1
    - Dst: oid_version
      Src: /src/git/midx.c:158,1
    - Dst: error
      Src: /src/git/midx.c:159,1
    - Dst: _
      Src: /src/git/midx.c:159,1
    - Dst: oid_version
      Src: /src/git/midx.c:160,1
    - Dst: get_be32
      Src: /src/git/midx.c:167,1
    - Dst: init_chunkfile
      Src: /src/git/midx.c:171,1
    - Dst: read_table_of_contents
      Src: /src/git/midx.c:173,1
    - Dst: pair_chunk
      Src: /src/git/midx.c:178,1
    - Dst: die
      Src: /src/git/midx.c:179,1
    - Dst: _
      Src: /src/git/midx.c:179,1
    - Dst: read_chunk
      Src: /src/git/midx.c:180,1
    - Dst: die
      Src: /src/git/midx.c:181,1
    - Dst: _
      Src: /src/git/midx.c:181,1
    - Dst: read_chunk
      Src: /src/git/midx.c:182,1
    - Dst: die
      Src: /src/git/midx.c:183,1
    - Dst: _
      Src: /src/git/midx.c:183,1
    - Dst: read_chunk
      Src: /src/git/midx.c:184,1
    - Dst: die
      Src: /src/git/midx.c:185,1
    - Dst: _
      Src: /src/git/midx.c:185,1
    - Dst: pair_chunk
      Src: /src/git/midx.c:187,1
    - Dst: git_env_bool
      Src: /src/git/midx.c:189,1
    - Dst: pair_chunk
      Src: /src/git/midx.c:190,1
    - Dst: git_env_bool
      Src: /src/git/midx.c:194,1
    - Dst: pair_chunk
      Src: /src/git/midx.c:195,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/midx.c:198,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/midx.c:199,1
    - Dst: memchr
      Src: /src/git/midx.c:209,1
    - Dst: die
      Src: /src/git/midx.c:211,1
    - Dst: _
      Src: /src/git/midx.c:211,1
    - Dst: strcmp
      Src: /src/git/midx.c:215,1
    - Dst: die
      Src: /src/git/midx.c:216,1
    - Dst: _
      Src: /src/git/midx.c:216,1
    - Dst: trace2_data_intmax
      Src: /src/git/midx.c:221,1
    - Dst: trace2_data_intmax
      Src: /src/git/midx.c:222,1
    - Dst: free_chunkfile
      Src: /src/git/midx.c:224,1
    - Dst: free
      Src: /src/git/midx.c:228,1
    - Dst: free_chunkfile
      Src: /src/git/midx.c:229,1
    - Dst: munmap
      Src: /src/git/midx.c:231,1
    - Dst: close
      Src: /src/git/midx.c:233,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 2
    argNames:
    - source
    - midx_name
    argTypes:
    - struct odb_source*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 235
    functionName: load_multi_pack_index_one
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - error_errno
    - init_chunkfile
    - trace2_data_intmax
    - git_open
    - xsize_t
    - CALLOC_ARRAY
    - strcmp
    - free
    - error
    - die
    - git_env_bool
    - get_be32
    - pair_chunk
    - free_chunkfile
    - munmap
    - oid_version
    - read_chunk
    - _
    - read_table_of_contents
    - memchr
    - fstat
    - xmmap
    - close
    linkageType: ''
    returnType: struct multi_pack_index
    signature: "struct multi_pack_index *load_multi_pack_index_one(struct odb_source
      *source,\n\t\t\t\t\t\t\t  const char *midx_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/midx.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - buf
    argTypes:
    - struct odb_source*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: get_midx_chain_dirname
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void get_midx_chain_dirname(struct odb_source *source, struct strbuf
      *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_midx_chain_dirname
      Src: /src/git/midx.c:244,1
    - Dst: strbuf_addstr
      Src: /src/git/midx.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - source
    - buf
    argTypes:
    - struct odb_source*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: get_midx_chain_filename
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    - get_midx_chain_dirname
    linkageType: ''
    returnType: void
    signature: void get_midx_chain_filename(struct odb_source *source, struct strbuf
      *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_midx_chain_dirname
      Src: /src/git/midx.c:251,1
    - Dst: strbuf_addf
      Src: /src/git/midx.c:252,1
    - Dst: hash_to_hex_algop
      Src: /src/git/midx.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - source
    - buf
    - hash
    - ext
    argTypes:
    - struct odb_source*
    - struct strbuf*
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: get_split_midx_filename_ext
    functionSourceFile: /src/git/midx.c
    functionUses: 1
    functionsReached:
    - hash_to_hex_algop
    - strbuf_addf
    - get_midx_chain_dirname
    linkageType: ''
    returnType: void
    signature: "void get_split_midx_filename_ext(struct odb_source *source, struct
      strbuf *buf,\n\t\t\t\t const unsigned char *hash, const char *ext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_open
      Src: /src/git/midx.c:260,1
    - Dst: fstat
      Src: /src/git/midx.c:263,1
    - Dst: close
      Src: /src/git/midx.c:264,1
    - Dst: close
      Src: /src/git/midx.c:268,1
    - Dst: warning
      Src: /src/git/midx.c:273,1
    - Dst: _
      Src: /src/git/midx.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - hash_algo
    - chain_file
    - fd
    - st
    argTypes:
    - struct git_hash_algo*
    - char*
    - int*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 279
    functionName: open_multi_pack_index_chain
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - fstat
    - git_open
    - _
    - close
    - warning
    linkageType: ''
    returnType: int
    signature: "int open_multi_pack_index_chain(const struct git_hash_algo *hash_algo,\n\t\t\t\t
      \      const char *chain_file, int *fd,\n\t\t\t\t       struct stat *st)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_add_overflows
      Src: /src/git/midx.c:285,1
    - Dst: warning
      Src: /src/git/midx.c:287,1
    - Dst: _
      Src: /src/git/midx.c:287,1
    - Dst: unsigned_add_overflows
      Src: /src/git/midx.c:291,1
    - Dst: warning
      Src: /src/git/midx.c:293,1
    - Dst: _
      Src: /src/git/midx.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - midx
    - midx_chain
    argTypes:
    - struct multi_pack_index*
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 307
    functionName: add_midx_to_chain
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - warning
    - unsigned_add_overflows
    - _
    linkageType: ''
    returnType: int
    signature: "int add_midx_to_chain(struct multi_pack_index *midx,\n\t\t\t     struct
      multi_pack_index *midx_chain)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xfdopen
      Src: /src/git/midx.c:318,1
    - Dst: strbuf_getline_lf
      Src: /src/git/midx.c:326,1
    - Dst: get_oid_hex_algop
      Src: /src/git/midx.c:329,1
    - Dst: warning
      Src: /src/git/midx.c:330,1
    - Dst: _
      Src: /src/git/midx.c:330,1
    - Dst: strbuf_reset
      Src: /src/git/midx.c:339,1
    - Dst: get_split_midx_filename_ext
      Src: /src/git/midx.c:340,1
    - Dst: load_multi_pack_index_one
      Src: /src/git/midx.c:342,1
    - Dst: add_midx_to_chain
      Src: /src/git/midx.c:345,1
    - Dst: close_midx
      Src: /src/git/midx.c:349,1
    - Dst: warning
      Src: /src/git/midx.c:353,1
    - Dst: _
      Src: /src/git/midx.c:353,1
    - Dst: fclose
      Src: /src/git/midx.c:358,1
    - Dst: strbuf_release
      Src: /src/git/midx.c:359,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - source
    - fd
    - st
    - incomplete_chain
    argTypes:
    - struct odb_source*
    - int
    - struct stat*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 363
    functionName: load_midx_chain_fd_st
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - get_split_midx_filename_ext
    - strbuf_reset
    - close_midx
    - get_oid_hex_algop
    - warning
    - _
    - add_midx_to_chain
    - xfdopen
    - load_multi_pack_index_one
    linkageType: ''
    returnType: struct multi_pack_index
    signature: "struct multi_pack_index *load_midx_chain_fd_st(struct odb_source *source,\n\t\t\t\t\t\t
      \     int fd, struct stat *st,\n\t\t\t\t\t\t      int *incomplete_chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_midx_chain_filename
      Src: /src/git/midx.c:372,1
    - Dst: open_multi_pack_index_chain
      Src: /src/git/midx.c:373,1
    - Dst: load_midx_chain_fd_st
      Src: /src/git/midx.c:376,1
    - Dst: strbuf_release
      Src: /src/git/midx.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 381
    functionName: load_multi_pack_index_chain
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - open_multi_pack_index_chain
    - strbuf_release
    - load_midx_chain_fd_st
    - get_midx_chain_filename
    linkageType: ''
    returnType: struct multi_pack_index
    signature: struct multi_pack_index *load_multi_pack_index_chain(struct odb_source
      *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_midx_filename
      Src: /src/git/midx.c:388,1
    - Dst: load_multi_pack_index_one
      Src: /src/git/midx.c:390,1
    - Dst: load_multi_pack_index_chain
      Src: /src/git/midx.c:392,1
    - Dst: strbuf_release
      Src: /src/git/midx.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 383
    functionDepth: 5
    functionLinenumber: 383
    functionLinenumberEnd: 397
    functionName: load_multi_pack_index
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - load_multi_pack_index_chain
    - get_midx_filename
    - strbuf_release
    - load_multi_pack_index_one
    linkageType: ''
    returnType: struct multi_pack_index
    signature: struct multi_pack_index *load_multi_pack_index(struct odb_source *source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_midx
      Src: /src/git/midx.c:406,1
    - Dst: munmap
      Src: /src/git/midx.c:408,1
    - Dst: FREE_AND_NULL
      Src: /src/git/midx.c:414,1
    - Dst: FREE_AND_NULL
      Src: /src/git/midx.c:415,1
    - Dst: FREE_AND_NULL
      Src: /src/git/midx.c:416,1
    - Dst: free
      Src: /src/git/midx.c:417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 418
    functionName: close_midx
    functionSourceFile: /src/git/midx.c
    functionUses: 2
    functionsReached:
    - close_midx
    - munmap
    - FREE_AND_NULL
    - free
    linkageType: ''
    returnType: void
    signature: void close_midx(struct multi_pack_index *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/midx.c:427,1
    - Dst: die
      Src: /src/git/midx.c:430,1
    - Dst: _
      Src: /src/git/midx.c:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - _m
    - pos
    argTypes:
    - struct multi_pack_index**
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 435
    functionName: midx_for_object
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - die
    - BUG
    - _
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t midx_for_object(struct multi_pack_index **_m, uint32_t pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/midx.c:445,1
    - Dst: die
      Src: /src/git/midx.c:448,1
    - Dst: _
      Src: /src/git/midx.c:448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - _m
    - pack_int_id
    argTypes:
    - struct multi_pack_index**
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 454
    functionName: midx_for_pack
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - die
    - BUG
    - _
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t midx_for_pack(struct multi_pack_index **_m,\n\t\t\t      uint32_t
      pack_int_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/midx.c:459,1
    - Dst: midx_for_pack
      Src: /src/git/midx.c:463,1
    - Dst: strbuf_addf
      Src: /src/git/midx.c:470,1
    - Dst: packfile_store_load_pack
      Src: /src/git/midx.c:472,1
    - Dst: strbuf_release
      Src: /src/git/midx.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - m
    - pack_int_id
    argTypes:
    - struct multi_pack_index*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 485
    functionName: prepare_midx_pack
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - odb_source_files_downcast
    - packfile_store_load_pack
    - midx_for_pack
    - strbuf_addf
    linkageType: ''
    returnType: int
    signature: "int prepare_midx_pack(struct multi_pack_index *m,\n\t\t      uint32_t
      pack_int_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: midx_for_pack
      Src: /src/git/midx.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - m
    - pack_int_id
    argTypes:
    - struct multi_pack_index*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 494
    functionName: nth_midxed_pack
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - midx_for_pack
    linkageType: ''
    returnType: struct packed_git
    signature: "struct packed_git *nth_midxed_pack(struct multi_pack_index *m,\n\t\t\t\t
      \  uint32_t pack_int_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: midx_for_pack
      Src: /src/git/midx.c:501,1
    - Dst: error
      Src: /src/git/midx.c:504,1
    - Dst: _
      Src: /src/git/midx.c:504,1
    - Dst: prepare_midx_pack
      Src: /src/git/midx.c:506,1
    - Dst: error
      Src: /src/git/midx.c:507,1
    - Dst: _
      Src: /src/git/midx.c:507,1
    - Dst: get_be32
      Src: /src/git/midx.c:510,1
    - Dst: get_be32
      Src: /src/git/midx.c:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - m
    - bp
    - pack_int_id
    argTypes:
    - struct multi_pack_index*
    - struct bitmapped_pack*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 519
    functionName: nth_bitmapped_pack
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - error
    - midx_for_pack
    - get_be32
    - prepare_midx_pack
    - _
    linkageType: ''
    returnType: int
    signature: "int nth_bitmapped_pack(struct multi_pack_index *m,\n\t\t       struct
      bitmapped_pack *bp, uint32_t pack_int_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_hash
      Src: /src/git/midx.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - oid
    - m
    - result
    argTypes:
    - struct object_id*
    - struct multi_pack_index*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 531
    functionName: bsearch_one_midx
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - bsearch_hash
    linkageType: ''
    returnType: int
    signature: "int bsearch_one_midx(const struct object_id *oid, struct multi_pack_index
      *m,\n\t\t     uint32_t *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_one_midx
      Src: /src/git/midx.c:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - oid
    - m
    - result
    argTypes:
    - struct object_id*
    - struct multi_pack_index*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 540
    functionName: bsearch_midx
    functionSourceFile: /src/git/midx.c
    functionUses: 1
    functionsReached:
    - bsearch_one_midx
    linkageType: ''
    returnType: int
    signature: "int bsearch_midx(const struct object_id *oid, struct multi_pack_index
      *m,\n\t\t uint32_t *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_midx
      Src: /src/git/midx.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - oid
    argTypes:
    - struct multi_pack_index*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: midx_has_oid
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - bsearch_midx
    linkageType: ''
    returnType: int
    signature: int midx_has_oid(struct multi_pack_index *m, const struct object_id
      *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: midx_for_object
      Src: /src/git/midx.c:554,1
    - Dst: oidread
      Src: /src/git/midx.c:556,1
    - Dst: st_mult
      Src: /src/git/midx.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - oid
    - m
    - n
    argTypes:
    - struct object_id*
    - struct multi_pack_index*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 559
    functionName: nth_midxed_object_oid
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - midx_for_object
    - st_mult
    - oidread
    linkageType: ''
    returnType: struct object_id
    signature: "struct object_id *nth_midxed_object_oid(struct object_id *oid,\n\t\t\t\t\tstruct
      multi_pack_index *m,\n\t\t\t\t\tuint32_t n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: midx_for_object
      Src: /src/git/midx.c:566,1
    - Dst: get_be32
      Src: /src/git/midx.c:569,1
    - Dst: die
      Src: /src/git/midx.c:573,1
    - Dst: _
      Src: /src/git/midx.c:573,1
    - Dst: die
      Src: /src/git/midx.c:577,1
    - Dst: _
      Src: /src/git/midx.c:577,1
    - Dst: get_be64
      Src: /src/git/midx.c:578,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - m
    - pos
    argTypes:
    - struct multi_pack_index*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 582
    functionName: nth_midxed_offset
    functionSourceFile: /src/git/midx.c
    functionUses: 2
    functionsReached:
    - die
    - get_be64
    - get_be32
    - midx_for_object
    - _
    linkageType: ''
    returnType: off_t
    signature: off_t nth_midxed_offset(struct multi_pack_index *m, uint32_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: midx_for_object
      Src: /src/git/midx.c:586,1
    - Dst: get_be32
      Src: /src/git/midx.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - m
    - pos
    argTypes:
    - struct multi_pack_index*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 590
    functionName: nth_midxed_pack_int_id
    functionSourceFile: /src/git/midx.c
    functionUses: 2
    functionsReached:
    - midx_for_object
    - get_be32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t nth_midxed_pack_int_id(struct multi_pack_index *m, uint32_t
      pos)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_midx
      Src: /src/git/midx.c:600,1
    - Dst: midx_for_object
      Src: /src/git/midx.c:603,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/midx.c:604,1
    - Dst: prepare_midx_pack
      Src: /src/git/midx.c:606,1
    - Dst: is_pack_valid
      Src: /src/git/midx.c:617,1
    - Dst: oidset_size
      Src: /src/git/midx.c:620,1
    - Dst: oidset_contains
      Src: /src/git/midx.c:621,1
    - Dst: nth_midxed_offset
      Src: /src/git/midx.c:624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - m
    - oid
    - e
    argTypes:
    - struct multi_pack_index*
    - struct object_id*
    - struct pack_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 628
    functionName: fill_midx_entry
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - oidset_size
    - bsearch_midx
    - oidset_contains
    - is_pack_valid
    - midx_for_object
    - prepare_midx_pack
    - nth_midxed_pack_int_id
    - nth_midxed_offset
    linkageType: ''
    returnType: int
    signature: "int fill_midx_entry(struct multi_pack_index *m,\n\t\t    const struct
      object_id *oid,\n\t\t    struct pack_entry *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/midx.c:650,1
    - Dst: strcmp
      Src: /src/git/midx.c:650,1
    - Dst: strcmp
      Src: /src/git/midx.c:659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - idx_or_pack_name
    - idx_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 660
    functionName: cmp_idx_or_pack_name
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cmp_idx_or_pack_name(const char *idx_or_pack_name,\n\t\t\t const
      char *idx_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/midx.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - m_
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 668
    functionName: midx_pack_names_cmp
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int midx_pack_names_cmp(const void *a, const void *b, void *m_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/midx.c:678,1
    - Dst: QSORT_S
      Src: /src/git/midx.c:683,1
    - Dst: cmp_idx_or_pack_name
      Src: /src/git/midx.c:696,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - m
    - idx_or_pack_name
    argTypes:
    - struct multi_pack_index*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 707
    functionName: midx_layer_contains_pack
    functionSourceFile: /src/git/midx.c
    functionUses: 1
    functionsReached:
    - cmp_idx_or_pack_name
    - ALLOC_ARRAY
    - QSORT_S
    linkageType: ''
    returnType: int
    signature: "int midx_layer_contains_pack(struct multi_pack_index *m,\n\t\t\t     const
      char *idx_or_pack_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: midx_layer_contains_pack
      Src: /src/git/midx.c:712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - m
    - idx_or_pack_name
    argTypes:
    - struct multi_pack_index*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 715
    functionName: midx_contains_pack
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - midx_layer_contains_pack
    linkageType: ''
    returnType: int
    signature: int midx_contains_pack(struct multi_pack_index *m, const char *idx_or_pack_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: load_midx_revindex
      Src: /src/git/midx.c:721,1
    - Dst: pack_pos_to_midx
      Src: /src/git/midx.c:726,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/midx.c:728,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - m
    - pack_int_id
    argTypes:
    - struct multi_pack_index*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 735
    functionName: midx_preferred_pack
    functionSourceFile: /src/git/midx.c
    functionUses: 1
    functionsReached:
    - nth_midxed_pack_int_id
    - pack_pos_to_midx
    - load_midx_revindex
    linkageType: ''
    returnType: int
    signature: int midx_preferred_pack(struct multi_pack_index *m, uint32_t *pack_int_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/midx.c:739,1
    - Dst: prepare_repo_settings
      Src: /src/git/midx.c:742,1
    - Dst: load_multi_pack_index
      Src: /src/git/midx.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 737
    functionDepth: 6
    functionLinenumber: 737
    functionLinenumberEnd: 752
    functionName: prepare_multi_pack_index_one
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - load_multi_pack_index
    - odb_source_files_downcast
    - prepare_repo_settings
    linkageType: ''
    returnType: int
    signature: int prepare_multi_pack_index_one(struct odb_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashfile_checksum_valid
      Src: /src/git/midx.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 758
    functionName: midx_checksum_valid
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - hashfile_checksum_valid
    linkageType: ''
    returnType: int
    signature: int midx_checksum_valid(struct multi_pack_index *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/midx.c:770,1
    - Dst: ends_with
      Src: /src/git/midx.c:771,1
    - Dst: strset_contains
      Src: /src/git/midx.c:773,1
    - Dst: unlink
      Src: /src/git/midx.c:775,1
    - Dst: die_errno
      Src: /src/git/midx.c:776,1
    - Dst: _
      Src: /src/git/midx.c:776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - full_path
    - full_path_len
    - file_name
    - _data
    argTypes:
    - char*
    - size_t
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 777
    functionName: clear_midx_file_ext
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - strset_contains
    - die_errno
    - starts_with
    - ends_with
    - _
    - unlink
    linkageType: ''
    returnType: void
    signature: "void clear_midx_file_ext(const char *full_path, size_t full_path_len
      UNUSED,\n\t\t\t\tconst char *file_name, void *_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/midx.c:789,1
    - Dst: strset_add
      Src: /src/git/midx.c:791,1
    - Dst: strbuf_release
      Src: /src/git/midx.c:793,1
    - Dst: for_each_file_in_pack_dir
      Src: /src/git/midx.c:796,1
    - Dst: strset_clear
      Src: /src/git/midx.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - source
    - ext
    - keep_hash
    argTypes:
    - struct odb_source*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 799
    functionName: clear_midx_files_ext
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - for_each_file_in_pack_dir
    - strset_clear
    - strbuf_addf
    - strset_add
    linkageType: ''
    returnType: void
    signature: "void clear_midx_files_ext(struct odb_source *source, const char *ext,\n\t\t\t
      \ const char *keep_hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/midx.c:812,1
    - Dst: strbuf_addf
      Src: /src/git/midx.c:813,1
    - Dst: strset_add
      Src: /src/git/midx.c:816,1
    - Dst: for_each_file_in_pack_subdir
      Src: /src/git/midx.c:820,1
    - Dst: strbuf_release
      Src: /src/git/midx.c:823,1
    - Dst: strset_clear
      Src: /src/git/midx.c:824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - source
    - ext
    - keep_hashes
    argTypes:
    - struct odb_source*
    - char*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 825
    functionName: clear_incremental_midx_files_ext
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - for_each_file_in_pack_subdir
    - strbuf_release
    - strbuf_reset
    - strset_clear
    - strbuf_addf
    - strset_add
    linkageType: ''
    returnType: void
    signature: "void clear_incremental_midx_files_ext(struct odb_source *source, const
      char *ext,\n\t\t\t\t      const struct strvec *keep_hashes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_midx_filename
      Src: /src/git/midx.c:831,1
    - Dst: odb_source_files_downcast
      Src: /src/git/midx.c:837,1
    - Dst: close_midx
      Src: /src/git/midx.c:839,1
    - Dst: remove_path
      Src: /src/git/midx.c:844,1
    - Dst: die
      Src: /src/git/midx.c:845,1
    - Dst: _
      Src: /src/git/midx.c:845,1
    - Dst: clear_midx_files_ext
      Src: /src/git/midx.c:847,1
    - Dst: clear_midx_files_ext
      Src: /src/git/midx.c:848,1
    - Dst: strbuf_release
      Src: /src/git/midx.c:850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 851
    functionName: clear_midx_file
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - get_midx_filename
    - strbuf_release
    - die
    - odb_source_files_downcast
    - close_midx
    - clear_midx_files_ext
    - remove_path
    - _
    linkageType: ''
    returnType: void
    signature: void clear_midx_file(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_midx_chain_filename
      Src: /src/git/midx.c:859,1
    - Dst: odb_source_files_downcast
      Src: /src/git/midx.c:862,1
    - Dst: close_midx
      Src: /src/git/midx.c:864,1
    - Dst: remove_path
      Src: /src/git/midx.c:868,1
    - Dst: die
      Src: /src/git/midx.c:869,1
    - Dst: _
      Src: /src/git/midx.c:869,1
    - Dst: clear_incremental_midx_files_ext
      Src: /src/git/midx.c:872,1
    - Dst: clear_incremental_midx_files_ext
      Src: /src/git/midx.c:874,1
    - Dst: clear_incremental_midx_files_ext
      Src: /src/git/midx.c:876,1
    - Dst: strbuf_release
      Src: /src/git/midx.c:879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - r
    - keep_hashes
    argTypes:
    - struct repository*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 853
    functionDepth: 3
    functionLinenumber: 853
    functionLinenumberEnd: 880
    functionName: clear_incremental_midx_files
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - clear_incremental_midx_files_ext
    - strbuf_release
    - die
    - odb_source_files_downcast
    - close_midx
    - remove_path
    - get_midx_chain_filename
    - _
    linkageType: ''
    returnType: void
    signature: "void clear_incremental_midx_files(struct repository *r,\n\t\t\t\t
      \ const struct strvec *keep_hashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/midx.c:884,1
    - Dst: va_start
      Src: /src/git/midx.c:889,1
    - Dst: vfprintf
      Src: /src/git/midx.c:890,1
    - Dst: fprintf
      Src: /src/git/midx.c:891,1
    - Dst: va_end
      Src: /src/git/midx.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 893
    functionName: midx_report
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - va_end
    - va_start
    - fprintf
    - format
    linkageType: ''
    returnType: void
    signature: void midx_report(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 907
    functionName: compare_pair_pos_vs_id
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_pair_pos_vs_id(const void *_a, const void *_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - progress
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 920
    functionName: midx_display_sparse_progress
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: midx_display_sparse_progress(progress, n)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: load_multi_pack_index
      Src: /src/git/midx.c:927,1
    - Dst: get_midx_filename
      Src: /src/git/midx.c:936,1
    - Dst: stat
      Src: /src/git/midx.c:938,1
    - Dst: error
      Src: /src/git/midx.c:939,1
    - Dst: _
      Src: /src/git/midx.c:939,1
    - Dst: strbuf_release
      Src: /src/git/midx.c:942,1
    - Dst: midx_checksum_valid
      Src: /src/git/midx.c:946,1
    - Dst: midx_report
      Src: /src/git/midx.c:947,1
    - Dst: _
      Src: /src/git/midx.c:947,1
    - Dst: start_delayed_progress
      Src: /src/git/midx.c:950,1
    - Dst: _
      Src: /src/git/midx.c:951,1
    - Dst: prepare_midx_pack
      Src: /src/git/midx.c:954,1
    - Dst: midx_report
      Src: /src/git/midx.c:955,1
    - Dst: display_progress
      Src: /src/git/midx.c:957,1
    - Dst: stop_progress
      Src: /src/git/midx.c:959,1
    - Dst: midx_report
      Src: /src/git/midx.c:962,1
    - Dst: _
      Src: /src/git/midx.c:962,1
    - Dst: start_sparse_progress
      Src: /src/git/midx.c:971,1
    - Dst: _
      Src: /src/git/midx.c:972,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/midx.c:979,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/midx.c:980,1
    - Dst: oidcmp
      Src: /src/git/midx.c:982,1
    - Dst: midx_report
      Src: /src/git/midx.c:983,1
    - Dst: _
      Src: /src/git/midx.c:983,1
    - Dst: oid_to_hex
      Src: /src/git/midx.c:984,1
    - Dst: oid_to_hex
      Src: /src/git/midx.c:984,1
    - Dst: midx_display_sparse_progress
      Src: /src/git/midx.c:986,1
    - Dst: stop_progress
      Src: /src/git/midx.c:989,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/midx.c:997,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/midx.c:1000,1
    - Dst: start_sparse_progress
      Src: /src/git/midx.c:1004,1
    - Dst: _
      Src: /src/git/midx.c:1005,1
    - Dst: display_progress
      Src: /src/git/midx.c:1007,1
    - Dst: QSORT
      Src: /src/git/midx.c:1008,1
    - Dst: stop_progress
      Src: /src/git/midx.c:1009,1
    - Dst: start_sparse_progress
      Src: /src/git/midx.c:1012,1
    - Dst: _
      Src: /src/git/midx.c:1013,1
    - Dst: nth_midxed_pack
      Src: /src/git/midx.c:1021,1
    - Dst: nth_midxed_pack
      Src: /src/git/midx.c:1023,1
    - Dst: close_pack_fd
      Src: /src/git/midx.c:1025,1
    - Dst: close_pack_index
      Src: /src/git/midx.c:1026,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/midx.c:1029,1
    - Dst: fill_midx_entry
      Src: /src/git/midx.c:1031,1
    - Dst: midx_report
      Src: /src/git/midx.c:1032,1
    - Dst: _
      Src: /src/git/midx.c:1032,1
    - Dst: oid_to_hex
      Src: /src/git/midx.c:1033,1
    - Dst: open_pack_index
      Src: /src/git/midx.c:1037,1
    - Dst: midx_report
      Src: /src/git/midx.c:1038,1
    - Dst: _
      Src: /src/git/midx.c:1038,1
    - Dst: find_pack_entry_one
      Src: /src/git/midx.c:1044,1
    - Dst: midx_report
      Src: /src/git/midx.c:1047,1
    - Dst: _
      Src: /src/git/midx.c:1047,1
    - Dst: oid_to_hex
      Src: /src/git/midx.c:1048,1
    - Dst: midx_display_sparse_progress
      Src: /src/git/midx.c:1050,1
    - Dst: stop_progress
      Src: /src/git/midx.c:1052,1
    - Dst: free
      Src: /src/git/midx.c:1055,1
    - Dst: close_midx
      Src: /src/git/midx.c:1056,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 2
    argNames:
    - source
    - flags
    argTypes:
    - struct odb_source*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 921
    functionDepth: 6
    functionLinenumber: 921
    functionLinenumberEnd: 1059
    functionName: verify_midx_file
    functionSourceFile: /src/git/midx.c
    functionUses: 0
    functionsReached:
    - close_pack_index
    - stop_progress
    - nth_midxed_pack
    - start_delayed_progress
    - free
    - load_multi_pack_index
    - error
    - strbuf_release
    - ALLOC_ARRAY
    - QSORT
    - midx_report
    - prepare_midx_pack
    - nth_midxed_pack_int_id
    - find_pack_entry_one
    - get_midx_filename
    - start_sparse_progress
    - oidcmp
    - oid_to_hex
    - midx_checksum_valid
    - stat
    - _
    - nth_midxed_object_oid
    - midx_display_sparse_progress
    - close_pack_fd
    - close_midx
    - display_progress
    - fill_midx_entry
    - open_pack_index
    linkageType: ''
    returnType: int
    signature: int verify_midx_file(struct odb_source *source, unsigned flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/list-objects-filter-options.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - enum list_objects_filter_choice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 42
    functionName: list_object_filter_config_name
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 2
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *list_object_filter_config_name(enum list_objects_filter_choice
      c)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/list-objects-filter-options.c:55,1
    - Dst: strcmp
      Src: /src/git/list-objects-filter-options.c:57,1
    - Dst: strbuf_addstr
      Src: /src/git/list-objects-filter-options.c:59,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:60,1
    - Dst: strcmp
      Src: /src/git/list-objects-filter-options.c:66,1
    - Dst: skip_prefix
      Src: /src/git/list-objects-filter-options.c:70,1
    - Dst: git_parse_ulong
      Src: /src/git/list-objects-filter-options.c:71,1
    - Dst: skip_prefix
      Src: /src/git/list-objects-filter-options.c:76,1
    - Dst: git_parse_ulong
      Src: /src/git/list-objects-filter-options.c:77,1
    - Dst: strbuf_addstr
      Src: /src/git/list-objects-filter-options.c:78,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:78,1
    - Dst: skip_prefix
      Src: /src/git/list-objects-filter-options.c:84,1
    - Dst: xstrdup
      Src: /src/git/list-objects-filter-options.c:85,1
    - Dst: skip_prefix
      Src: /src/git/list-objects-filter-options.c:89,1
    - Dst: strbuf_addstr
      Src: /src/git/list-objects-filter-options.c:91,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:93,1
    - Dst: skip_prefix
      Src: /src/git/list-objects-filter-options.c:97,1
    - Dst: type_from_string_gently
      Src: /src/git/list-objects-filter-options.c:98,1
    - Dst: strlen
      Src: /src/git/list-objects-filter-options.c:98,1
    - Dst: strbuf_addf
      Src: /src/git/list-objects-filter-options.c:100,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:100,1
    - Dst: skip_prefix
      Src: /src/git/list-objects-filter-options.c:110,1
    - Dst: parse_combine_filter
      Src: /src/git/list-objects-filter-options.c:111,1
    - Dst: strbuf_addf
      Src: /src/git/list-objects-filter-options.c:119,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:119,1
    - Dst: list_objects_filter_init
      Src: /src/git/list-objects-filter-options.c:121,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 3
    argNames:
    - filter_options
    - arg
    - errbuf
    argTypes:
    - struct list_objects_filter_options*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 123
    functionName: gently_parse_list_objects_filter
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - git_parse_ulong
    - strbuf_addf
    - list_objects_filter_init
    - strlen
    - strcmp
    - strbuf_addstr
    - _
    - type_from_string_gently
    - parse_combine_filter
    - skip_prefix
    - BUG
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int gently_parse_list_objects_filter(\n\tstruct list_objects_filter_options
      *filter_options,\n\tconst char *arg,\n\tstruct strbuf *errbuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/list-objects-filter-options.c:132,1
    - Dst: strbuf_addf
      Src: /src/git/list-objects-filter-options.c:133,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - sub_spec
    - errbuf
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: has_reserved_character
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strchr
    - _
    linkageType: ''
    returnType: int
    signature: "int has_reserved_character(\n\tconst char *sub_spec, struct strbuf
      *errbuf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW_BY
      Src: /src/git/list-objects-filter-options.c:154,1
    - Dst: list_objects_filter_init
      Src: /src/git/list-objects-filter-options.c:156,1
    - Dst: url_percent_decode
      Src: /src/git/list-objects-filter-options.c:158,1
    - Dst: has_reserved_character
      Src: /src/git/list-objects-filter-options.c:160,1
    - Dst: gently_parse_list_objects_filter
      Src: /src/git/list-objects-filter-options.c:164,1
    - Dst: strbuf_addstr
      Src: /src/git/list-objects-filter-options.c:171,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:171,1
    - Dst: free
      Src: /src/git/list-objects-filter-options.c:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - filter_options
    - subspec
    - errbuf
    argTypes:
    - struct list_objects_filter_options*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 178
    functionName: parse_combine_subfilter
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - has_reserved_character
    - ALLOC_GROW_BY
    - list_objects_filter_init
    - url_percent_decode
    - strbuf_addstr
    - _
    - free
    - gently_parse_list_objects_filter
    linkageType: ''
    returnType: int
    signature: "int parse_combine_subfilter(\n\tstruct list_objects_filter_options
      *filter_options,\n\tconst char *subspec,\n\tstruct strbuf *errbuf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/list-objects-filter-options.c:190,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:190,1
    - Dst: strchrnul
      Src: /src/git/list-objects-filter-options.c:196,1
    - Dst: strbuf_reset
      Src: /src/git/list-objects-filter-options.c:198,1
    - Dst: strbuf_add
      Src: /src/git/list-objects-filter-options.c:199,1
    - Dst: parse_combine_subfilter
      Src: /src/git/list-objects-filter-options.c:202,1
    - Dst: strbuf_release
      Src: /src/git/list-objects-filter-options.c:208,1
    - Dst: list_objects_filter_release
      Src: /src/git/list-objects-filter-options.c:214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - filter_options
    - arg
    - errbuf
    argTypes:
    - struct list_objects_filter_options*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 216
    functionName: parse_combine_filter
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - parse_combine_subfilter
    - strbuf_reset
    - strbuf_addstr
    - _
    - strchrnul
    - list_objects_filter_release
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int parse_combine_filter(\n\tstruct list_objects_filter_options *filter_options,\n\tconst
      char *arg,\n\tstruct strbuf *errbuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/list-objects-filter-options.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: allow_unencoded
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int allow_unencoded(char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/list-objects-filter-options.c:229,1
    - Dst: trace_printf
      Src: /src/git/list-objects-filter-options.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - filter
    - raw
    argTypes:
    - struct list_objects_filter_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: filter_spec_append_urlencode
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr_urlencode
    - trace_printf
    linkageType: ''
    returnType: void
    signature: "void filter_spec_append_urlencode(\n\tstruct list_objects_filter_options
      *filter, const char *raw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/list-objects-filter-options.c:241,1
    - Dst: xcalloc
      Src: /src/git/list-objects-filter-options.c:247,1
    - Dst: list_objects_filter_init
      Src: /src/git/list-objects-filter-options.c:249,1
    - Dst: strbuf_addstr
      Src: /src/git/list-objects-filter-options.c:255,1
    - Dst: filter_spec_append_urlencode
      Src: /src/git/list-objects-filter-options.c:256,1
    - Dst: list_objects_filter_spec
      Src: /src/git/list-objects-filter-options.c:258,1
    - Dst: strbuf_release
      Src: /src/git/list-objects-filter-options.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - filter_options
    argTypes:
    - struct list_objects_filter_options*
    assertStmts:
    - condition: (filter_options->choice)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/git/list-objects-filter-options.c
    constantsTouched: []
    func_position:
      end: 264
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 264
    functionName: transform_to_combine_type
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - list_objects_filter_spec
    - strbuf_release
    - assert
    - list_objects_filter_init
    - strbuf_addstr
    - xcalloc
    - filter_spec_append_urlencode
    linkageType: ''
    returnType: void
    signature: "void transform_to_combine_type(\n\tstruct list_objects_filter_options
      *filter_options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/list-objects-filter-options.c:270,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - filter_options
    argTypes:
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: list_objects_filter_die_if_populated
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 3
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: "void list_objects_filter_die_if_populated(\n\tstruct list_objects_filter_options
      *filter_options)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/list-objects-filter-options.c:280,1
    - Dst: gently_parse_list_objects_filter
      Src: /src/git/list-objects-filter-options.c:283,1
    - Dst: die
      Src: /src/git/list-objects-filter-options.c:284,1
    - Dst: strbuf_addstr
      Src: /src/git/list-objects-filter-options.c:285,1
    - Dst: die
      Src: /src/git/list-objects-filter-options.c:290,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:290,1
    - Dst: transform_to_combine_type
      Src: /src/git/list-objects-filter-options.c:296,1
    - Dst: ALLOC_GROW_BY
      Src: /src/git/list-objects-filter-options.c:298,1
    - Dst: list_objects_filter_init
      Src: /src/git/list-objects-filter-options.c:302,1
    - Dst: gently_parse_list_objects_filter
      Src: /src/git/list-objects-filter-options.c:303,1
    - Dst: die
      Src: /src/git/list-objects-filter-options.c:304,1
    - Dst: die
      Src: /src/git/list-objects-filter-options.c:307,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:307,1
    - Dst: strbuf_addch
      Src: /src/git/list-objects-filter-options.c:309,1
    - Dst: filter_spec_append_urlencode
      Src: /src/git/list-objects-filter-options.c:310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - filter_options
    - arg
    argTypes:
    - struct list_objects_filter_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 312
    functionName: parse_list_objects_filter
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 7
    functionsReached:
    - die
    - ALLOC_GROW_BY
    - strbuf_addch
    - list_objects_filter_init
    - strbuf_addstr
    - _
    - transform_to_combine_type
    - BUG
    - filter_spec_append_urlencode
    - gently_parse_list_objects_filter
    linkageType: ''
    returnType: void
    signature: "void parse_list_objects_filter(\n\tstruct list_objects_filter_options
      *filter_options,\n\tconst char *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_objects_filter_set_no_filter
      Src: /src/git/list-objects-filter-options.c:320,1
    - Dst: parse_list_objects_filter
      Src: /src/git/list-objects-filter-options.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 324
    functionName: opt_parse_list_objects_filter
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - list_objects_filter_set_no_filter
    - parse_list_objects_filter
    linkageType: ''
    returnType: int
    signature: "int opt_parse_list_objects_filter(const struct option *opt,\n\t\t\t\t
      \ const char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/list-objects-filter-options.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: list_objects_filter_spec
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 5
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *list_objects_filter_spec(struct list_objects_filter_options *filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/list-objects-filter-options.c:337,1
    - Dst: strbuf_addf
      Src: /src/git/list-objects-filter-options.c:338,1
    - Dst: list_objects_filter_spec
      Src: /src/git/list-objects-filter-options.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: expand_list_objects_filter_spec
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 2
    functionsReached:
    - list_objects_filter_spec
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: char
    signature: "char *expand_list_objects_filter_spec(\n\tstruct list_objects_filter_options
      *filter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/list-objects-filter-options.c:355,1
    - Dst: free
      Src: /src/git/list-objects-filter-options.c:356,1
    - Dst: list_objects_filter_release
      Src: /src/git/list-objects-filter-options.c:358,1
    - Dst: free
      Src: /src/git/list-objects-filter-options.c:359,1
    - Dst: list_objects_filter_init
      Src: /src/git/list-objects-filter-options.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - filter_options
    argTypes:
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 362
    functionName: list_objects_filter_release
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 7
    functionsReached:
    - list_objects_filter_init
    - strbuf_release
    - list_objects_filter_release
    - free
    linkageType: ''
    returnType: void
    signature: "void list_objects_filter_release(\n\tstruct list_objects_filter_options
      *filter_options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_promisor_remote_find
      Src: /src/git/list-objects-filter-options.c:373,1
    - Dst: upgrade_repository_format
      Src: /src/git/list-objects-filter-options.c:381,1
    - Dst: die
      Src: /src/git/list-objects-filter-options.c:382,1
    - Dst: _
      Src: /src/git/list-objects-filter-options.c:382,1
    - Dst: xstrfmt
      Src: /src/git/list-objects-filter-options.c:385,1
    - Dst: repo_config_set
      Src: /src/git/list-objects-filter-options.c:386,1
    - Dst: free
      Src: /src/git/list-objects-filter-options.c:387,1
    - Dst: xstrfmt
      Src: /src/git/list-objects-filter-options.c:394,1
    - Dst: repo_config_set
      Src: /src/git/list-objects-filter-options.c:396,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/list-objects-filter-options.c:397,1
    - Dst: free
      Src: /src/git/list-objects-filter-options.c:398,1
    - Dst: repo_promisor_remote_reinit
      Src: /src/git/list-objects-filter-options.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - remote
    - filter_options
    argTypes:
    - char*
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 402
    functionName: partial_clone_register
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - die
    - xstrfmt
    - repo_config_set
    - repo_promisor_remote_find
    - upgrade_repository_format
    - _
    - free
    - repo_promisor_remote_reinit
    - expand_list_objects_filter_spec
    linkageType: ''
    returnType: void
    signature: "void partial_clone_register(\n\tconst char *remote,\n\tstruct list_objects_filter_options
      *filter_options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_promisor_remote_find
      Src: /src/git/list-objects-filter-options.c:408,1
    - Dst: strbuf_addstr
      Src: /src/git/list-objects-filter-options.c:418,1
    - Dst: gently_parse_list_objects_filter
      Src: /src/git/list-objects-filter-options.c:420,1
    - Dst: strbuf_release
      Src: /src/git/list-objects-filter-options.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - filter_options
    - remote
    argTypes:
    - struct list_objects_filter_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 424
    functionName: partial_clone_get_default_filter_spec
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - repo_promisor_remote_find
    - strbuf_addstr
    - gently_parse_list_objects_filter
    linkageType: ''
    returnType: void
    signature: "void partial_clone_get_default_filter_spec(\n\tstruct list_objects_filter_options
      *filter_options,\n\tconst char *remote)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/list-objects-filter-options.c:431,1
    - Dst: strbuf_init
      Src: /src/git/list-objects-filter-options.c:433,1
    - Dst: strbuf_addbuf
      Src: /src/git/list-objects-filter-options.c:434,1
    - Dst: xstrdup_or_null
      Src: /src/git/list-objects-filter-options.c:435,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/list-objects-filter-options.c:437,1
    - Dst: list_objects_filter_copy
      Src: /src/git/list-objects-filter-options.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - struct list_objects_filter_options*
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 440
    functionName: list_objects_filter_copy
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 2
    functionsReached:
    - xstrdup_or_null
    - ALLOC_ARRAY
    - memcpy
    - strbuf_addbuf
    - list_objects_filter_copy
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: "void list_objects_filter_copy(\n\tstruct list_objects_filter_options
      *dest,\n\tconst struct list_objects_filter_options *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/list-objects-filter-options.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter_options
    argTypes:
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: list_objects_filter_init
    functionSourceFile: /src/git/list-objects-filter-options.c
    functionUses: 8
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void list_objects_filter_init(struct list_objects_filter_options *filter_options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/tmp-objdir.c:35,1
    - Dst: strvec_clear
      Src: /src/git/tmp-objdir.c:36,1
    - Dst: free
      Src: /src/git/tmp-objdir.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tmp_objdir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: tmp_objdir_free
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strvec_clear
    - free
    linkageType: ''
    returnType: void
    signature: void tmp_objdir_free(struct tmp_objdir *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reparent_relative_path
      Src: /src/git/tmp-objdir.c:48,1
    - Dst: strbuf_reset
      Src: /src/git/tmp-objdir.c:50,1
    - Dst: strbuf_addstr
      Src: /src/git/tmp-objdir.c:51,1
    - Dst: free
      Src: /src/git/tmp-objdir.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - UNUSED
    - old_cwd
    - new_cwd
    - cb_data
    argTypes:
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: tmp_objdir_reparent
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - reparent_relative_path
    - strbuf_addstr
    - free
    linkageType: ''
    returnType: void
    signature: "void tmp_objdir_reparent(const char *name UNUSED,\n\t\t\t\tconst char
      *old_cwd,\n\t\t\t\tconst char *new_cwd,\n\t\t\t\tvoid *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_restore_primary_source
      Src: /src/git/tmp-objdir.c:66,1
    - Dst: remove_dir_recursively
      Src: /src/git/tmp-objdir.c:68,1
    - Dst: chdir_notify_unregister
      Src: /src/git/tmp-objdir.c:70,1
    - Dst: tmp_objdir_free
      Src: /src/git/tmp-objdir.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tmp_objdir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: tmp_objdir_destroy
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - remove_dir_recursively
    - tmp_objdir_free
    - chdir_notify_unregister
    - odb_restore_primary_source
    linkageType: ''
    returnType: int
    signature: int tmp_objdir_destroy(struct tmp_objdir *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmp_objdir_destroy
      Src: /src/git/tmp-objdir.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 9
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: remove_tmp_objdir
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - tmp_objdir_destroy
    linkageType: ''
    returnType: void
    signature: void remove_tmp_objdir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_dir_recursively
      Src: /src/git/tmp-objdir.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tmp_objdir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: tmp_objdir_discard_objects
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - remove_dir_recursively
    linkageType: ''
    returnType: void
    signature: void tmp_objdir_discard_objects(struct tmp_objdir *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/tmp-objdir.c:102,1
    - Dst: strbuf_addch
      Src: /src/git/tmp-objdir.c:103,1
    - Dst: quote_c_style
      Src: /src/git/tmp-objdir.c:104,1
    - Dst: strbuf_addch
      Src: /src/git/tmp-objdir.c:105,1
    - Dst: getenv
      Src: /src/git/tmp-objdir.c:109,1
    - Dst: strvec_pushf
      Src: /src/git/tmp-objdir.c:111,1
    - Dst: strvec_pushf
      Src: /src/git/tmp-objdir.c:113,1
    - Dst: strbuf_release
      Src: /src/git/tmp-objdir.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - env
    - key
    - val
    argTypes:
    - struct strvec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: env_append
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strchr
    - strbuf_addch
    - getenv
    - quote_c_style
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: void env_append(struct strvec *env, const char *key, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/tmp-objdir.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - key
    - val
    argTypes:
    - struct strvec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: env_replace
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: void env_replace(struct strvec *env, const char *key, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/tmp-objdir.c:128,1
    - Dst: mkdir
      Src: /src/git/tmp-objdir.c:129,1
    - Dst: free
      Src: /src/git/tmp-objdir.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - root
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: setup_tmp_objdir
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - mkdir
    - xstrfmt
    - free
    linkageType: ''
    returnType: int
    signature: int setup_tmp_objdir(const char *root)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/tmp-objdir.c:142,1
    - Dst: xcalloc
      Src: /src/git/tmp-objdir.c:144,1
    - Dst: strbuf_init
      Src: /src/git/tmp-objdir.c:146,1
    - Dst: strvec_init
      Src: /src/git/tmp-objdir.c:147,1
    - Dst: strbuf_addf
      Src: /src/git/tmp-objdir.c:154,1
    - Dst: repo_get_object_directory
      Src: /src/git/tmp-objdir.c:155,1
    - Dst: is_absolute_path
      Src: /src/git/tmp-objdir.c:157,1
    - Dst: chdir_notify_register
      Src: /src/git/tmp-objdir.c:158,1
    - Dst: mkdtemp
      Src: /src/git/tmp-objdir.c:160,1
    - Dst: tmp_objdir_free
      Src: /src/git/tmp-objdir.c:162,1
    - Dst: atexit
      Src: /src/git/tmp-objdir.c:168,1
    - Dst: setup_tmp_objdir
      Src: /src/git/tmp-objdir.c:172,1
    - Dst: tmp_objdir_destroy
      Src: /src/git/tmp-objdir.c:173,1
    - Dst: env_append
      Src: /src/git/tmp-objdir.c:177,1
    - Dst: absolute_path
      Src: /src/git/tmp-objdir.c:178,1
    - Dst: repo_get_object_directory
      Src: /src/git/tmp-objdir.c:178,1
    - Dst: env_replace
      Src: /src/git/tmp-objdir.c:179,1
    - Dst: absolute_path
      Src: /src/git/tmp-objdir.c:179,1
    - Dst: env_replace
      Src: /src/git/tmp-objdir.c:180,1
    - Dst: absolute_path
      Src: /src/git/tmp-objdir.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - r
    - prefix
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 135
    functionDepth: 9
    functionLinenumber: 135
    functionLinenumberEnd: 184
    functionName: tmp_objdir_create
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 1
    functionsReached:
    - absolute_path
    - atexit
    - is_absolute_path
    - tmp_objdir_destroy
    - mkdtemp
    - setup_tmp_objdir
    - env_append
    - chdir_notify_register
    - strbuf_addf
    - strvec_init
    - repo_get_object_directory
    - env_replace
    - tmp_objdir_free
    - xcalloc
    - BUG
    - strbuf_init
    linkageType: ''
    returnType: struct tmp_objdir
    signature: "struct tmp_objdir *tmp_objdir_create(struct repository *r,\n\t\t\t\t
      \    const char *prefix)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/tmp-objdir.c:195,1
    - Dst: ends_with
      Src: /src/git/tmp-objdir.c:197,1
    - Dst: ends_with
      Src: /src/git/tmp-objdir.c:199,1
    - Dst: ends_with
      Src: /src/git/tmp-objdir.c:201,1
    - Dst: ends_with
      Src: /src/git/tmp-objdir.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: pack_copy_priority
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - starts_with
    - ends_with
    linkageType: ''
    returnType: int
    signature: int pack_copy_priority(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_copy_priority
      Src: /src/git/tmp-objdir.c:210,1
    - Dst: pack_copy_priority
      Src: /src/git/tmp-objdir.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: pack_copy_cmp
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - pack_copy_priority
    linkageType: ''
    returnType: int
    signature: int pack_copy_cmp(const char *a, const char *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/tmp-objdir.c:218,1
    - Dst: readdir
      Src: /src/git/tmp-objdir.c:222,1
    - Dst: string_list_append
      Src: /src/git/tmp-objdir.c:224,1
    - Dst: closedir
      Src: /src/git/tmp-objdir.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - out
    - path
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 228
    functionName: read_dir_paths
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - opendir
    - closedir
    - readdir
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int read_dir_paths(struct string_list *out, const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/tmp-objdir.c:240,1
    - Dst: S_ISDIR
      Src: /src/git/tmp-objdir.c:242,1
    - Dst: mkdir
      Src: /src/git/tmp-objdir.c:243,1
    - Dst: adjust_shared_perm
      Src: /src/git/tmp-objdir.c:244,1
    - Dst: migrate_paths
      Src: /src/git/tmp-objdir.c:248,1
    - Dst: finalize_object_file_flags
      Src: /src/git/tmp-objdir.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - t
    - src
    - dst
    - flags
    argTypes:
    - struct tmp_objdir*
    - struct strbuf*
    - struct strbuf*
    - enum finalize_object_file_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 251
    functionName: migrate_one
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - adjust_shared_perm
    - stat
    - mkdir
    - finalize_object_file_flags
    - migrate_paths
    linkageType: ''
    returnType: int
    signature: "int migrate_one(struct tmp_objdir *t,\n\t\t       struct strbuf *src,
      struct strbuf *dst,\n\t\t       enum finalize_object_file_flags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/tmp-objdir.c:255,1
    - Dst: isxdigit
      Src: /src/git/tmp-objdir.c:255,1
    - Dst: isxdigit
      Src: /src/git/tmp-objdir.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: is_loose_object_shard
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - isxdigit
    - strlen
    linkageType: ''
    returnType: int
    signature: int is_loose_object_shard(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_dir_paths
      Src: /src/git/tmp-objdir.c:266,1
    - Dst: string_list_sort
      Src: /src/git/tmp-objdir.c:269,1
    - Dst: strbuf_addf
      Src: /src/git/tmp-objdir.c:275,1
    - Dst: strbuf_addf
      Src: /src/git/tmp-objdir.c:276,1
    - Dst: is_loose_object_shard
      Src: /src/git/tmp-objdir.c:278,1
    - Dst: migrate_one
      Src: /src/git/tmp-objdir.c:281,1
    - Dst: strbuf_setlen
      Src: /src/git/tmp-objdir.c:283,1
    - Dst: strbuf_setlen
      Src: /src/git/tmp-objdir.c:284,1
    - Dst: string_list_clear
      Src: /src/git/tmp-objdir.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - t
    - src
    - dst
    - flags
    argTypes:
    - struct tmp_objdir*
    - struct strbuf*
    - struct strbuf*
    - enum finalize_object_file_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 289
    functionName: migrate_paths
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    - migrate_one
    - string_list_sort
    - strbuf_addf
    - strbuf_setlen
    - read_dir_paths
    - is_loose_object_shard
    linkageType: ''
    returnType: int
    signature: "int migrate_paths(struct tmp_objdir *t,\n\t\t\t struct strbuf *src,
      struct strbuf *dst,\n\t\t\t enum finalize_object_file_flags flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/tmp-objdir.c:301,1
    - Dst: odb_restore_primary_source
      Src: /src/git/tmp-objdir.c:302,1
    - Dst: strbuf_addbuf
      Src: /src/git/tmp-objdir.c:306,1
    - Dst: strbuf_addstr
      Src: /src/git/tmp-objdir.c:307,1
    - Dst: repo_get_object_directory
      Src: /src/git/tmp-objdir.c:307,1
    - Dst: migrate_paths
      Src: /src/git/tmp-objdir.c:309,1
    - Dst: strbuf_release
      Src: /src/git/tmp-objdir.c:311,1
    - Dst: strbuf_release
      Src: /src/git/tmp-objdir.c:312,1
    - Dst: tmp_objdir_destroy
      Src: /src/git/tmp-objdir.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tmp_objdir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 291
    functionDepth: 9
    functionLinenumber: 291
    functionLinenumberEnd: 316
    functionName: tmp_objdir_migrate
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - tmp_objdir_destroy
    - odb_restore_primary_source
    - repo_get_object_directory
    - strbuf_addbuf
    - strbuf_addstr
    - migrate_paths
    - BUG
    linkageType: ''
    returnType: int
    signature: int tmp_objdir_migrate(struct tmp_objdir *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: tmp_objdir_env
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char **tmp_objdir_env(const struct tmp_objdir *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_add_to_alternates_memory
      Src: /src/git/tmp-objdir.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tmp_objdir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: tmp_objdir_add_as_alternate
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 0
    functionsReached:
    - odb_add_to_alternates_memory
    linkageType: ''
    returnType: void
    signature: void tmp_objdir_add_as_alternate(const struct tmp_objdir *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/tmp-objdir.c:333,1
    - Dst: odb_set_temporary_primary_source
      Src: /src/git/tmp-objdir.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - will_destroy
    argTypes:
    - struct tmp_objdir*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: tmp_objdir_replace_primary_odb
    functionSourceFile: /src/git/tmp-objdir.c
    functionUses: 1
    functionsReached:
    - odb_set_temporary_primary_source
    - BUG
    linkageType: ''
    returnType: void
    signature: void tmp_objdir_replace_primary_odb(struct tmp_objdir *t, int will_destroy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_delta_index
      Src: /src/git/delta.h:61,1
    - Dst: create_delta
      Src: /src/git/delta.h:63,1
    - Dst: free_delta_index
      Src: /src/git/delta.h:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - src_buf
    - src_bufsize
    - trg_buf
    - trg_bufsize
    - delta_size
    - max_delta_size
    argTypes:
    - void*
    - unsigned long
    - void*
    - unsigned long
    - unsigned long*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: diff_delta
    functionSourceFile: /src/git/delta.h
    functionUses: 0
    functionsReached:
    - create_delta
    - free_delta_index
    - create_delta_index
    linkageType: ''
    returnType: void
    signature: "void *\ndiff_delta(const void *src_buf, unsigned long src_bufsize,\n\t
      \  const void *trg_buf, unsigned long trg_bufsize,\n\t   unsigned long *delta_size,
      unsigned long max_delta_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: st_left_shift
      Src: /src/git/delta.h:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - datap
    - top
    argTypes:
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: get_delta_hdr_size_sz
    functionSourceFile: /src/git/delta.h
    functionUses: 0
    functionsReached:
    - st_left_shift
    linkageType: ''
    returnType: size_t
    signature: "size_t get_delta_hdr_size_sz(const unsigned char **datap,\n\t\t\t\t\t
      \  const unsigned char *top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_delta_hdr_size_sz
      Src: /src/git/delta.h:110,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/delta.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - datap
    - top
    argTypes:
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: get_delta_hdr_size
    functionSourceFile: /src/git/delta.h
    functionUses: 0
    functionsReached:
    - cast_size_t_to_ulong
    - get_delta_hdr_size_sz
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long get_delta_hdr_size(const unsigned char **datap,\n\t\t\t\t\t
      \      const unsigned char *top)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/fetch-negotiator.c:11,1
    - Dst: skipping_negotiator_init
      Src: /src/git/fetch-negotiator.c:14,1
    - Dst: noop_negotiator_init
      Src: /src/git/fetch-negotiator.c:18,1
    - Dst: default_negotiator_init
      Src: /src/git/fetch-negotiator.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - r
    - negotiator
    argTypes:
    - struct repository*
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 25
    functionName: fetch_negotiator_init
    functionSourceFile: /src/git/fetch-negotiator.c
    functionUses: 0
    functionsReached:
    - noop_negotiator_init
    - default_negotiator_init
    - skipping_negotiator_init
    - prepare_repo_settings
    linkageType: ''
    returnType: void
    signature: "void fetch_negotiator_init(struct repository *r,\n\t\t\t   struct
      fetch_negotiator *negotiator)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noop_negotiator_init
      Src: /src/git/fetch-negotiator.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - negotiator
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: fetch_negotiator_init_noop
    functionSourceFile: /src/git/fetch-negotiator.c
    functionUses: 0
    functionsReached:
    - noop_negotiator_init
    linkageType: ''
    returnType: void
    signature: void fetch_negotiator_init_noop(struct fetch_negotiator *negotiator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/reachable.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct connectivity_progress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: update_progress
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - display_progress
    linkageType: ''
    returnType: void
    signature: void update_progress(struct connectivity_progress *cp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_oneliner
      Src: /src/git/reachable.c:42,1
    - Dst: strbuf_release
      Src: /src/git/reachable.c:43,1
    - Dst: strbuf_trim
      Src: /src/git/reachable.c:46,1
    - Dst: get_oid_hex
      Src: /src/git/reachable.c:47,1
    - Dst: parse_object_or_die
      Src: /src/git/reachable.c:48,1
    - Dst: add_pending_object
      Src: /src/git/reachable.c:49,1
    - Dst: strbuf_release
      Src: /src/git/reachable.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - path
    - revs
    argTypes:
    - char*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: add_one_file
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - read_oneliner
    - strbuf_release
    - get_oid_hex
    - add_pending_object
    - strbuf_trim
    - parse_object_or_die
    linkageType: ''
    returnType: void
    signature: void add_one_file(const char *path, struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees
      Src: /src/git/reachable.c:65,1
    - Dst: get_worktree_git_dir
      Src: /src/git/reachable.c:68,1
    - Dst: strbuf_reset
      Src: /src/git/reachable.c:70,1
    - Dst: strbuf_addstr
      Src: /src/git/reachable.c:71,1
    - Dst: strbuf_complete
      Src: /src/git/reachable.c:72,1
    - Dst: ARRAY_SIZE
      Src: /src/git/reachable.c:74,1
    - Dst: strbuf_setlen
      Src: /src/git/reachable.c:75,1
    - Dst: strbuf_addstr
      Src: /src/git/reachable.c:76,1
    - Dst: add_one_file
      Src: /src/git/reachable.c:77,1
    - Dst: free
      Src: /src/git/reachable.c:80,1
    - Dst: strbuf_release
      Src: /src/git/reachable.c:82,1
    - Dst: free_worktrees
      Src: /src/git/reachable.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 84
    functionName: add_rebase_files
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - get_worktrees
    - strbuf_release
    - free_worktrees
    - strbuf_reset
    - strbuf_setlen
    - get_worktree_git_dir
    - free
    - strbuf_addstr
    - strbuf_complete
    - add_one_file
    linkageType: ''
    returnType: void
    signature: void add_rebase_files(struct rev_info *revs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/reachable.c:92,1
    - Dst: parse_object_or_die
      Src: /src/git/reachable.c:96,1
    - Dst: add_pending_object
      Src: /src/git/reachable.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: add_one_ref
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - add_pending_object
    - parse_object_or_die
    - warning
    linkageType: ''
    returnType: int
    signature: int add_one_ref(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_progress
      Src: /src/git/reachable.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - data
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: mark_object
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - update_progress
    linkageType: ''
    returnType: void
    signature: "void mark_object(struct object *obj UNUSED,\n\t\t\tconst char *name
      UNUSED,\n\t\t\tvoid *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_object
      Src: /src/git/reachable.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: mark_commit
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - mark_object
    linkageType: ''
    returnType: void
    signature: void mark_commit(struct commit *c, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/reachable.c:139,1
    - Dst: start_command
      Src: /src/git/reachable.c:141,1
    - Dst: xfdopen
      Src: /src/git/reachable.c:144,1
    - Dst: strbuf_getline
      Src: /src/git/reachable.c:145,1
    - Dst: parse_oid_hex
      Src: /src/git/reachable.c:149,1
    - Dst: error
      Src: /src/git/reachable.c:150,1
    - Dst: _
      Src: /src/git/reachable.c:150,1
    - Dst: oidset_insert
      Src: /src/git/reachable.c:154,1
    - Dst: fclose
      Src: /src/git/reachable.c:157,1
    - Dst: finish_command
      Src: /src/git/reachable.c:158,1
    - Dst: strbuf_release
      Src: /src/git/reachable.c:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - set
    - args
    argTypes:
    - struct oidset*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 128
    functionDepth: 7
    functionLinenumber: 128
    functionLinenumberEnd: 162
    functionName: run_one_gc_recent_objects_hook
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - fclose
    - strbuf_release
    - finish_command
    - parse_oid_hex
    - _
    - strbuf_getline
    - xfdopen
    - oidset_insert
    - start_command
    linkageType: ''
    returnType: int
    signature: "int run_one_gc_recent_objects_hook(struct oidset *set,\n\t\t\t\t\t
      \   const char *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_multi
      Src: /src/git/reachable.c:172,1
    - Dst: run_one_gc_recent_objects_hook
      Src: /src/git/reachable.c:176,1
    - Dst: die
      Src: /src/git/reachable.c:179,1
    - Dst: _
      Src: /src/git/reachable.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct recent_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 164
    functionDepth: 8
    functionLinenumber: 164
    functionLinenumberEnd: 181
    functionName: load_gc_recent_objects
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - run_one_gc_recent_objects_hook
    - die
    - repo_config_get_string_multi
    - _
    linkageType: ''
    returnType: void
    signature: void load_gc_recent_objects(struct recent_data *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_gc_recent_objects
      Src: /src/git/reachable.c:190,1
    - Dst: oidset_contains
      Src: /src/git/reachable.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - oid
    - mtime
    - data
    argTypes:
    - struct object_id*
    - timestamp_t
    - struct recent_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 9
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: obj_is_recent
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - load_gc_recent_objects
    - oidset_contains
    linkageType: ''
    returnType: int
    signature: "int obj_is_recent(const struct object_id *oid, timestamp_t mtime,\n\t\t\t
      struct recent_data *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_object_kept_pack
      Src: /src/git/reachable.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - oid
    argTypes:
    - struct recent_data*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: want_recent_object
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - has_object_kept_pack
    linkageType: ''
    returnType: int
    signature: "int want_recent_object(struct recent_data *data,\n\t\t\t      const
      struct object_id *oid)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: want_recent_object
      Src: /src/git/reachable.c:210,1
    - Dst: obj_is_recent
      Src: /src/git/reachable.c:211,1
    - Dst: parse_object_or_die
      Src: /src/git/reachable.c:217,1
    - Dst: lookup_tree
      Src: /src/git/reachable.c:220,1
    - Dst: lookup_blob
      Src: /src/git/reachable.c:223,1
    - Dst: die
      Src: /src/git/reachable.c:226,1
    - Dst: oid_to_hex
      Src: /src/git/reachable.c:227,1
    - Dst: type_name
      Src: /src/git/reachable.c:227,1
    - Dst: die
      Src: /src/git/reachable.c:231,1
    - Dst: oid_to_hex
      Src: /src/git/reachable.c:231,1
    - Dst: add_pending_object
      Src: /src/git/reachable.c:235,1
    - Dst: struct recent_data*::cb
      Src: /src/git/reachable.c:238,1
    - Dst: struct recent_data*::cb
      Src: /src/git/reachable.c:240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - oid
    - oi
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 203
    functionDepth: 10
    functionLinenumber: 203
    functionLinenumberEnd: 244
    functionName: add_recent_object
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - struct recent_data*::cb
    - obj_is_recent
    - add_pending_object
    - lookup_blob
    - want_recent_object
    - type_name
    - parse_object_or_die
    - lookup_tree
    linkageType: ''
    returnType: int
    signature: "int add_recent_object(const struct object_id *oid,\n\t\t\t     struct
      object_info *oi,\n\t\t\t     void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidset_init
      Src: /src/git/reachable.c:266,1
    - Dst: odb_for_each_object
      Src: /src/git/reachable.c:273,1
    - Dst: oidset_clear
      Src: /src/git/reachable.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - revs
    - timestamp
    - cb
    - ignore_in_core_kept_packs
    argTypes:
    - struct rev_info*
    - timestamp_t
    - report_recent_object_fn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 281
    functionName: add_unseen_recent_objects_to_traversal
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - odb_for_each_object
    - oidset_init
    - oidset_clear
    linkageType: ''
    returnType: int
    signature: "int add_unseen_recent_objects_to_traversal(struct rev_info *revs,\n\t\t\t\t\t
      \  timestamp_t timestamp,\n\t\t\t\t\t   report_recent_object_fn *cb,\n\t\t\t\t\t
      \  int ignore_in_core_kept_packs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object_by_type
      Src: /src/git/reachable.c:291,1
    - Dst: die
      Src: /src/git/reachable.c:293,1
    - Dst: oid_to_hex
      Src: /src/git/reachable.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - oid
    - type
    - exclude
    - name_hash
    - found_pack
    - found_offset
    - payload
    argTypes:
    - struct object_id*
    - enum object_type
    - int
    - uint32_t
    - struct packed_git*
    - off_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 297
    functionName: mark_object_seen
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - lookup_object_by_type
    linkageType: ''
    returnType: int
    signature: "int mark_object_seen(const struct object_id *oid,\n\t\t\t     enum
      object_type type,\n\t\t\t     int exclude UNUSED,\n\t\t\t     uint32_t name_hash
      UNUSED,\n\t\t\t     struct packed_git *found_pack UNUSED,\n\t\t\t     off_t
      found_offset UNUSED,\n\t\t\t     void *payload UNUSED)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: add_index_objects_to_pending
      Src: /src/git/reachable.c:314,1
    - Dst: refs_for_each_ref
      Src: /src/git/reachable.c:317,1
    - Dst: get_main_ref_store
      Src: /src/git/reachable.c:317,1
    - Dst: refs_head_ref
      Src: /src/git/reachable.c:321,1
    - Dst: get_main_ref_store
      Src: /src/git/reachable.c:321,1
    - Dst: other_head_refs
      Src: /src/git/reachable.c:322,1
    - Dst: add_rebase_files
      Src: /src/git/reachable.c:325,1
    - Dst: add_reflogs_to_pending
      Src: /src/git/reachable.c:329,1
    - Dst: prepare_bitmap_walk
      Src: /src/git/reachable.c:334,1
    - Dst: traverse_bitmap_commit_list
      Src: /src/git/reachable.c:336,1
    - Dst: free_bitmap_index
      Src: /src/git/reachable.c:337,1
    - Dst: prepare_revision_walk
      Src: /src/git/reachable.c:339,1
    - Dst: die
      Src: /src/git/reachable.c:340,1
    - Dst: traverse_commit_list
      Src: /src/git/reachable.c:341,1
    - Dst: add_unseen_recent_objects_to_traversal
      Src: /src/git/reachable.c:346,1
    - Dst: die
      Src: /src/git/reachable.c:348,1
    - Dst: prepare_revision_walk
      Src: /src/git/reachable.c:349,1
    - Dst: die
      Src: /src/git/reachable.c:350,1
    - Dst: traverse_commit_list
      Src: /src/git/reachable.c:351,1
    - Dst: display_progress
      Src: /src/git/reachable.c:354,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - revs
    - mark_reflog
    - mark_recent
    - progress
    argTypes:
    - struct rev_info*
    - int
    - timestamp_t
    - struct progress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 299
    functionDepth: 11
    functionLinenumber: 299
    functionLinenumberEnd: 355
    functionName: mark_reachable_objects
    functionSourceFile: /src/git/reachable.c
    functionUses: 0
    functionsReached:
    - prepare_bitmap_walk
    - refs_head_ref
    - add_rebase_files
    - die
    - traverse_commit_list
    - refs_for_each_ref
    - traverse_bitmap_commit_list
    - add_unseen_recent_objects_to_traversal
    - display_progress
    - prepare_revision_walk
    - free_bitmap_index
    - other_head_refs
    - add_index_objects_to_pending
    - add_reflogs_to_pending
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void mark_reachable_objects(struct rev_info *revs, int mark_reflog,\n\t\t\t
      \   timestamp_t mark_recent, struct progress *progress)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/gpg-interface.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: gpg_interface_lazy_init
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - repo_config
    linkageType: ''
    returnType: void
    signature: void gpg_interface_lazy_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/gpg-interface.c:130,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: get_format_by_name
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strcmp
    linkageType: ''
    returnType: struct gpg_format
    signature: struct gpg_format *get_format_by_name(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/gpg-interface.c:140,1
    - Dst: starts_with
      Src: /src/git/gpg-interface.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: get_format_by_sig
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - starts_with
    linkageType: ''
    returnType: struct gpg_format
    signature: struct gpg_format *get_format_by_sig(const char *sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_format_by_sig
      Src: /src/git/gpg-interface.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: get_signature_format
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - get_format_by_sig
    linkageType: ''
    returnType: char
    signature: char *get_signature_format(const char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_format_by_name
      Src: /src/git/gpg-interface.c:155,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: valid_signature_format
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - strcmp
    - get_format_by_name
    linkageType: ''
    returnType: int
    signature: int valid_signature_format(const char *format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:161,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:162,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:163,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:164,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:165,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:166,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - sigc
    argTypes:
    - struct signature_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: signature_check_clear
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 1
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void signature_check_clear(struct signature_check *sigc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/gpg-interface.c:214,1
    - Dst: xmemdupz
      Src: /src/git/gpg-interface.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - field
    - line
    - next
    argTypes:
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: replace_cstring
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - free
    linkageType: ''
    returnType: void
    signature: void replace_cstring(char **field, const char *line, const char *next)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/gpg-interface.c:227,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - level
    - res
    argTypes:
    - char*
    - enum signature_trust_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: parse_gpg_trust_level
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int parse_gpg_trust_level(const char *level,\n\t\t\t\t enum signature_trust_level
      *res)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/gpg-interface.c:244,1
    - Dst: skip_prefix
      Src: /src/git/gpg-interface.c:251,1
    - Dst: ARRAY_SIZE
      Src: /src/git/gpg-interface.c:255,1
    - Dst: skip_prefix
      Src: /src/git/gpg-interface.c:256,1
    - Dst: strchrnul
      Src: /src/git/gpg-interface.c:275,1
    - Dst: replace_cstring
      Src: /src/git/gpg-interface.c:276,1
    - Dst: strchrnul
      Src: /src/git/gpg-interface.c:280,1
    - Dst: replace_cstring
      Src: /src/git/gpg-interface.c:281,1
    - Dst: strcspn
      Src: /src/git/gpg-interface.c:293,1
    - Dst: xmemdupz
      Src: /src/git/gpg-interface.c:294,1
    - Dst: parse_gpg_trust_level
      Src: /src/git/gpg-interface.c:296,1
    - Dst: free
      Src: /src/git/gpg-interface.c:297,1
    - Dst: free
      Src: /src/git/gpg-interface.c:300,1
    - Dst: strchrnul
      Src: /src/git/gpg-interface.c:308,1
    - Dst: replace_cstring
      Src: /src/git/gpg-interface.c:309,1
    - Dst: strchrnul
      Src: /src/git/gpg-interface.c:317,1
    - Dst: strchrnul
      Src: /src/git/gpg-interface.c:322,1
    - Dst: strchrnul
      Src: /src/git/gpg-interface.c:327,1
    - Dst: replace_cstring
      Src: /src/git/gpg-interface.c:328,1
    - Dst: replace_cstring
      Src: /src/git/gpg-interface.c:330,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:343,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:344,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:345,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:346,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 1
    argNames:
    - sigc
    argTypes:
    - struct signature_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 347
    functionName: parse_gpg_output
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - xmemdupz
    - parse_gpg_trust_level
    - skip_prefix
    - replace_cstring
    - strcspn
    - free
    - strchrnul
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void parse_gpg_output(struct signature_check *sigc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mks_tempfile_t
      Src: /src/git/gpg-interface.c:360,1
    - Dst: error_errno
      Src: /src/git/gpg-interface.c:362,1
    - Dst: _
      Src: /src/git/gpg-interface.c:362,1
    - Dst: write_in_full
      Src: /src/git/gpg-interface.c:363,1
    - Dst: close_tempfile_gently
      Src: /src/git/gpg-interface.c:364,1
    - Dst: error_errno
      Src: /src/git/gpg-interface.c:365,1
    - Dst: _
      Src: /src/git/gpg-interface.c:365,1
    - Dst: delete_tempfile
      Src: /src/git/gpg-interface.c:367,1
    - Dst: strvec_push
      Src: /src/git/gpg-interface.c:371,1
    - Dst: strvec_pushv
      Src: /src/git/gpg-interface.c:372,1
    - Dst: strvec_pushl
      Src: /src/git/gpg-interface.c:373,1
    - Dst: sigchain_push
      Src: /src/git/gpg-interface.c:378,1
    - Dst: pipe_command
      Src: /src/git/gpg-interface.c:379,1
    - Dst: sigchain_pop
      Src: /src/git/gpg-interface.c:381,1
    - Dst: delete_tempfile
      Src: /src/git/gpg-interface.c:383,1
    - Dst: strstr
      Src: /src/git/gpg-interface.c:385,1
    - Dst: strstr
      Src: /src/git/gpg-interface.c:386,1
    - Dst: strbuf_detach
      Src: /src/git/gpg-interface.c:387,1
    - Dst: strbuf_detach
      Src: /src/git/gpg-interface.c:388,1
    - Dst: parse_gpg_output
      Src: /src/git/gpg-interface.c:390,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:392,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - sigc
    - fmt
    - signature
    - signature_size
    argTypes:
    - struct signature_check*
    - struct gpg_format*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 349
    functionDepth: 8
    functionLinenumber: 349
    functionLinenumberEnd: 396
    functionName: verify_gpg_signed_buffer
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - error_errno
    - delete_tempfile
    - strvec_push
    - parse_gpg_output
    - strbuf_release
    - strstr
    - sigchain_push
    - strvec_pushv
    - sigchain_pop
    - strvec_pushl
    - pipe_command
    - close_tempfile_gently
    - strbuf_detach
    - _
    - mks_tempfile_t
    - write_in_full
    linkageType: ''
    returnType: int
    signature: "int verify_gpg_signed_buffer(struct signature_check *sigc,\n\t\t\t\t
      \   struct gpg_format *fmt,\n\t\t\t\t    const char *signature,\n\t\t\t\t    size_t
      signature_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmemdupz
      Src: /src/git/gpg-interface.c:420,1
    - Dst: strcspn
      Src: /src/git/gpg-interface.c:420,1
    - Dst: skip_prefix
      Src: /src/git/gpg-interface.c:422,1
    - Dst: strstr
      Src: /src/git/gpg-interface.c:426,1
    - Dst: xmemdupz
      Src: /src/git/gpg-interface.c:436,1
    - Dst: skip_prefix
      Src: /src/git/gpg-interface.c:437,1
    - Dst: strstr
      Src: /src/git/gpg-interface.c:445,1
    - Dst: xstrdup
      Src: /src/git/gpg-interface.c:447,1
    - Dst: xstrdup
      Src: /src/git/gpg-interface.c:448,1
    - Dst: free
      Src: /src/git/gpg-interface.c:458,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - sigc
    argTypes:
    - struct signature_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 459
    functionName: parse_ssh_output
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strstr
    - strcspn
    - free
    - skip_prefix
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void parse_ssh_output(struct signature_check *sigc)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/gpg-interface.c:484,1
    - Dst: _
      Src: /src/git/gpg-interface.c:484,1
    - Dst: mks_tempfile_t
      Src: /src/git/gpg-interface.c:488,1
    - Dst: error_errno
      Src: /src/git/gpg-interface.c:490,1
    - Dst: _
      Src: /src/git/gpg-interface.c:490,1
    - Dst: write_in_full
      Src: /src/git/gpg-interface.c:491,1
    - Dst: close_tempfile_gently
      Src: /src/git/gpg-interface.c:492,1
    - Dst: error_errno
      Src: /src/git/gpg-interface.c:493,1
    - Dst: _
      Src: /src/git/gpg-interface.c:493,1
    - Dst: delete_tempfile
      Src: /src/git/gpg-interface.c:495,1
    - Dst: strbuf_addf
      Src: /src/git/gpg-interface.c:500,1
    - Dst: show_date
      Src: /src/git/gpg-interface.c:501,1
    - Dst: strvec_pushl
      Src: /src/git/gpg-interface.c:504,1
    - Dst: pipe_command
      Src: /src/git/gpg-interface.c:510,1
    - Dst: strstr
      Src: /src/git/gpg-interface.c:512,1
    - Dst: error
      Src: /src/git/gpg-interface.c:513,1
    - Dst: _
      Src: /src/git/gpg-interface.c:513,1
    - Dst: child_process_init
      Src: /src/git/gpg-interface.c:521,1
    - Dst: strvec_pushl
      Src: /src/git/gpg-interface.c:522,1
    - Dst: pipe_command
      Src: /src/git/gpg-interface.c:528,1
    - Dst: strchrnul
      Src: /src/git/gpg-interface.c:544,1
    - Dst: xmemdupz
      Src: /src/git/gpg-interface.c:561,1
    - Dst: child_process_init
      Src: /src/git/gpg-interface.c:563,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:564,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:565,1
    - Dst: strvec_push
      Src: /src/git/gpg-interface.c:566,1
    - Dst: strvec_pushl
      Src: /src/git/gpg-interface.c:571,1
    - Dst: file_exists
      Src: /src/git/gpg-interface.c:580,1
    - Dst: strvec_pushl
      Src: /src/git/gpg-interface.c:581,1
    - Dst: warning
      Src: /src/git/gpg-interface.c:584,1
    - Dst: _
      Src: /src/git/gpg-interface.c:584,1
    - Dst: sigchain_push
      Src: /src/git/gpg-interface.c:589,1
    - Dst: pipe_command
      Src: /src/git/gpg-interface.c:590,1
    - Dst: sigchain_pop
      Src: /src/git/gpg-interface.c:592,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:594,1
    - Dst: starts_with
      Src: /src/git/gpg-interface.c:597,1
    - Dst: strbuf_stripspace
      Src: /src/git/gpg-interface.c:604,1
    - Dst: strbuf_stripspace
      Src: /src/git/gpg-interface.c:605,1
    - Dst: strbuf_add
      Src: /src/git/gpg-interface.c:607,1
    - Dst: strbuf_add
      Src: /src/git/gpg-interface.c:608,1
    - Dst: strbuf_detach
      Src: /src/git/gpg-interface.c:609,1
    - Dst: xstrdup
      Src: /src/git/gpg-interface.c:610,1
    - Dst: parse_ssh_output
      Src: /src/git/gpg-interface.c:612,1
    - Dst: delete_tempfile
      Src: /src/git/gpg-interface.c:616,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:617,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:618,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:619,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:620,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:621,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - sigc
    - fmt
    - signature
    - signature_size
    argTypes:
    - struct signature_check*
    - struct gpg_format*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 461
    functionDepth: 8
    functionLinenumber: 461
    functionLinenumberEnd: 624
    functionName: verify_ssh_signed_buffer
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - error_errno
    - xmemdupz
    - strvec_push
    - parse_ssh_output
    - strbuf_addf
    - file_exists
    - error
    - delete_tempfile
    - strbuf_release
    - strstr
    - child_process_init
    - sigchain_push
    - write_in_full
    - mks_tempfile_t
    - strchrnul
    - strbuf_stripspace
    - sigchain_pop
    - strvec_pushl
    - pipe_command
    - close_tempfile_gently
    - strbuf_detach
    - _
    - warning
    - FREE_AND_NULL
    - strbuf_add
    - xstrdup
    - starts_with
    - show_date
    linkageType: ''
    returnType: int
    signature: "int verify_ssh_signed_buffer(struct signature_check *sigc,\n\t\t\t\t
      \   struct gpg_format *fmt,\n\t\t\t\t    const char *signature,\n\t\t\t\t    size_t
      signature_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/gpg-interface.c:645,1
    - Dst: find_commit_header
      Src: /src/git/gpg-interface.c:648,1
    - Dst: split_ident_line
      Src: /src/git/gpg-interface.c:652,1
    - Dst: parse_timestamp
      Src: /src/git/gpg-interface.c:656,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - sigc
    argTypes:
    - struct signature_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 659
    functionName: parse_payload_metadata
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - find_commit_header
    - BUG
    - split_ident_line
    - parse_timestamp
    linkageType: ''
    returnType: int
    signature: int parse_payload_metadata(struct signature_check *sigc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gpg_interface_lazy_init
      Src: /src/git/gpg-interface.c:667,1
    - Dst: get_format_by_sig
      Src: /src/git/gpg-interface.c:672,1
    - Dst: die
      Src: /src/git/gpg-interface.c:674,1
    - Dst: _
      Src: /src/git/gpg-interface.c:674,1
    - Dst: parse_payload_metadata
      Src: /src/git/gpg-interface.c:676,1
    - Dst: struct gpg_format*::verify_signed_buffer
      Src: /src/git/gpg-interface.c:679,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - sigc
    - signature
    - slen
    argTypes:
    - struct signature_check*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 688
    functionName: check_signature
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 1
    functionsReached:
    - get_format_by_sig
    - gpg_interface_lazy_init
    - die
    - parse_payload_metadata
    - struct gpg_format*::verify_signed_buffer
    - _
    linkageType: ''
    returnType: int
    signature: "int check_signature(struct signature_check *sigc,\n\t\t    const char
      *signature, size_t slen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/gpg-interface.c:696,1
    - Dst: fputs
      Src: /src/git/gpg-interface.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - sigc
    - flags
    argTypes:
    - struct signature_check*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 700
    functionName: print_signature_buffer
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 1
    functionsReached:
    - fwrite
    - fputs
    linkageType: ''
    returnType: void
    signature: void print_signature_buffer(const struct signature_check *sigc, unsigned
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_format_by_sig
      Src: /src/git/gpg-interface.c:709,1
    - Dst: memchr
      Src: /src/git/gpg-interface.c:712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 716
    functionName: parse_signed_buffer
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - get_format_by_sig
    - memchr
    linkageType: ''
    returnType: size_t
    signature: size_t parse_signed_buffer(const char *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_signed_buffer
      Src: /src/git/gpg-interface.c:720,1
    - Dst: strbuf_add
      Src: /src/git/gpg-interface.c:722,1
    - Dst: remove_signature
      Src: /src/git/gpg-interface.c:723,1
    - Dst: strbuf_add
      Src: /src/git/gpg-interface.c:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - buf
    - size
    - payload
    - signature
    argTypes:
    - char*
    - size_t
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 728
    functionName: parse_signature
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 1
    functionsReached:
    - remove_signature
    - strbuf_add
    - parse_signed_buffer
    linkageType: ''
    returnType: int
    signature: int parse_signature(const char *buf, size_t size, struct strbuf *payload,
      struct strbuf *signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gpg_interface_lazy_init
      Src: /src/git/gpg-interface.c:732,1
    - Dst: free
      Src: /src/git/gpg-interface.c:734,1
    - Dst: xstrdup
      Src: /src/git/gpg-interface.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 736
    functionName: set_signing_key
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - gpg_interface_lazy_init
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void set_signing_key(const char *key)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:747,1
    - Dst: config_error_nonbool
      Src: /src/git/gpg-interface.c:749,1
    - Dst: set_signing_key
      Src: /src/git/gpg-interface.c:750,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:754,1
    - Dst: config_error_nonbool
      Src: /src/git/gpg-interface.c:756,1
    - Dst: get_format_by_name
      Src: /src/git/gpg-interface.c:757,1
    - Dst: error
      Src: /src/git/gpg-interface.c:759,1
    - Dst: _
      Src: /src/git/gpg-interface.c:759,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:765,1
    - Dst: config_error_nonbool
      Src: /src/git/gpg-interface.c:767,1
    - Dst: xstrdup_toupper
      Src: /src/git/gpg-interface.c:769,1
    - Dst: parse_gpg_trust_level
      Src: /src/git/gpg-interface.c:770,1
    - Dst: free
      Src: /src/git/gpg-interface.c:771,1
    - Dst: error
      Src: /src/git/gpg-interface.c:774,1
    - Dst: _
      Src: /src/git/gpg-interface.c:774,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:779,1
    - Dst: git_config_string
      Src: /src/git/gpg-interface.c:780,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:782,1
    - Dst: git_config_pathname
      Src: /src/git/gpg-interface.c:783,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:785,1
    - Dst: git_config_pathname
      Src: /src/git/gpg-interface.c:786,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:788,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:788,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:791,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:794,1
    - Dst: get_format_by_name
      Src: /src/git/gpg-interface.c:801,1
    - Dst: git_config_pathname
      Src: /src/git/gpg-interface.c:802,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 811
    functionName: git_gpg_config
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - error
    - xstrdup_toupper
    - git_config_pathname
    - set_signing_key
    - get_format_by_name
    - parse_gpg_trust_level
    - _
    - git_config_string
    - strcmp
    - free
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_gpg_config(const char *var, const char *value,\n\t\t\t  const
      struct config_context *ctx UNUSED,\n\t\t\t  void *cb UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/gpg-interface.c:819,1
    - Dst: starts_with
      Src: /src/git/gpg-interface.c:821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - string
    - key
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 826
    functionName: is_literal_ssh_key
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - starts_with
    linkageType: ''
    returnType: int
    signature: int is_literal_ssh_key(const char *string, const char **key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_literal_ssh_key
      Src: /src/git/gpg-interface.c:840,1
    - Dst: strvec_pushl
      Src: /src/git/gpg-interface.c:841,1
    - Dst: pipe_command
      Src: /src/git/gpg-interface.c:842,1
    - Dst: strlen
      Src: /src/git/gpg-interface.c:843,1
    - Dst: strvec_pushl
      Src: /src/git/gpg-interface.c:846,1
    - Dst: pipe_command
      Src: /src/git/gpg-interface.c:848,1
    - Dst: die_errno
      Src: /src/git/gpg-interface.c:853,1
    - Dst: _
      Src: /src/git/gpg-interface.c:853,1
    - Dst: strchr
      Src: /src/git/gpg-interface.c:857,1
    - Dst: die
      Src: /src/git/gpg-interface.c:859,1
    - Dst: _
      Src: /src/git/gpg-interface.c:859,1
    - Dst: strchr
      Src: /src/git/gpg-interface.c:862,1
    - Dst: die
      Src: /src/git/gpg-interface.c:864,1
    - Dst: _
      Src: /src/git/gpg-interface.c:864,1
    - Dst: xmemdupz
      Src: /src/git/gpg-interface.c:866,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - signing_key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 828
    functionDepth: 8
    functionLinenumber: 828
    functionLinenumberEnd: 869
    functionName: get_ssh_key_fingerprint
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strbuf_release
    - die
    - strvec_pushl
    - die_errno
    - strchr
    - is_literal_ssh_key
    - pipe_command
    - strlen
    - _
    linkageType: ''
    returnType: char
    signature: char *get_ssh_key_fingerprint(const char *signing_key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/gpg-interface.c:885,1
    - Dst: _
      Src: /src/git/gpg-interface.c:885,1
    - Dst: xstrdup
      Src: /src/git/gpg-interface.c:887,1
    - Dst: split_cmdline
      Src: /src/git/gpg-interface.c:888,1
    - Dst: die
      Src: /src/git/gpg-interface.c:891,1
    - Dst: _
      Src: /src/git/gpg-interface.c:891,1
    - Dst: split_cmdline_strerror
      Src: /src/git/gpg-interface.c:892,1
    - Dst: strvec_pushv
      Src: /src/git/gpg-interface.c:894,1
    - Dst: pipe_command
      Src: /src/git/gpg-interface.c:895,1
    - Dst: strchr
      Src: /src/git/gpg-interface.c:900,1
    - Dst: xmemdupz
      Src: /src/git/gpg-interface.c:902,1
    - Dst: xstrdup
      Src: /src/git/gpg-interface.c:904,1
    - Dst: is_literal_ssh_key
      Src: /src/git/gpg-interface.c:905,1
    - Dst: free
      Src: /src/git/gpg-interface.c:912,1
    - Dst: warning
      Src: /src/git/gpg-interface.c:913,1
    - Dst: _
      Src: /src/git/gpg-interface.c:913,1
    - Dst: warning
      Src: /src/git/gpg-interface.c:918,1
    - Dst: _
      Src: /src/git/gpg-interface.c:918,1
    - Dst: free
      Src: /src/git/gpg-interface.c:922,1
    - Dst: free
      Src: /src/git/gpg-interface.c:923,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 872
    functionDepth: 8
    functionLinenumber: 872
    functionLinenumberEnd: 927
    functionName: get_default_ssh_signing_key
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strbuf_release
    - die
    - strvec_pushv
    - split_cmdline_strerror
    - strchr
    - is_literal_ssh_key
    - pipe_command
    - split_cmdline
    - _
    - free
    - warning
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *get_default_ssh_signing_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_signing_key
      Src: /src/git/gpg-interface.c:931,1
    - Dst: get_ssh_key_fingerprint
      Src: /src/git/gpg-interface.c:932,1
    - Dst: free
      Src: /src/git/gpg-interface.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 929
    functionDepth: 9
    functionLinenumber: 929
    functionLinenumberEnd: 935
    functionName: get_ssh_key_id
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - get_ssh_key_fingerprint
    - get_signing_key
    - free
    linkageType: ''
    returnType: char
    signature: char *get_ssh_key_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gpg_interface_lazy_init
      Src: /src/git/gpg-interface.c:940,1
    - Dst: get_key_id
      Src: /src/git/gpg-interface.c:943,1
    - Dst: get_signing_key
      Src: /src/git/gpg-interface.c:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 938
    functionDepth: 2
    functionLinenumber: 938
    functionLinenumberEnd: 948
    functionName: get_signing_key_id
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - gpg_interface_lazy_init
    - get_signing_key
    - get_key_id
    linkageType: ''
    returnType: char
    signature: char *get_signing_key_id(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gpg_interface_lazy_init
      Src: /src/git/gpg-interface.c:952,1
    - Dst: xstrdup
      Src: /src/git/gpg-interface.c:955,1
    - Dst: get_default_key
      Src: /src/git/gpg-interface.c:957,1
    - Dst: xstrdup
      Src: /src/git/gpg-interface.c:960,1
    - Dst: git_committer_info
      Src: /src/git/gpg-interface.c:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 950
    functionDepth: 8
    functionLinenumber: 950
    functionLinenumberEnd: 961
    functionName: get_signing_key
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 2
    functionsReached:
    - gpg_interface_lazy_init
    - git_committer_info
    - get_default_key
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *get_signing_key(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/gpg-interface.c:967,1
    - Dst: BUG
      Src: /src/git/gpg-interface.c:968,1
    - Dst: BUG
      Src: /src/git/gpg-interface.c:972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - level
    argTypes:
    - enum signature_trust_level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 975
    functionName: gpg_trust_level_to_str
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - BUG
    linkageType: ''
    returnType: char
    signature: char *gpg_trust_level_to_str(enum signature_trust_level level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gpg_interface_lazy_init
      Src: /src/git/gpg-interface.c:983,1
    - Dst: get_signing_key
      Src: /src/git/gpg-interface.c:986,1
    - Dst: sign_buffer
      Src: /src/git/gpg-interface.c:988,1
    - Dst: free
      Src: /src/git/gpg-interface.c:989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - buffer
    - signature
    - signing_key
    - flags
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - char*
    - enum sign_buffer_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 977
    functionDepth: 9
    functionLinenumber: 977
    functionLinenumberEnd: 991
    functionName: sign_buffer
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 1
    functionsReached:
    - sign_buffer
    - gpg_interface_lazy_init
    - get_signing_key
    - free
    linkageType: ''
    returnType: int
    signature: "int sign_buffer(struct strbuf *buffer, struct strbuf *signature,\n\t\tconst
      char *signing_key, enum sign_buffer_flags flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/gpg-interface.c:1008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buffer
    - offset
    argTypes:
    - struct strbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1009
    functionName: remove_cr_after
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - strbuf_setlen
    linkageType: ''
    returnType: void
    signature: void remove_cr_after(struct strbuf *buffer, size_t offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/gpg-interface.c:1020,1
    - Dst: sigchain_push
      Src: /src/git/gpg-interface.c:1032,1
    - Dst: pipe_command
      Src: /src/git/gpg-interface.c:1033,1
    - Dst: sigchain_pop
      Src: /src/git/gpg-interface.c:1035,1
    - Dst: strstr
      Src: /src/git/gpg-interface.c:1038,1
    - Dst: error
      Src: /src/git/gpg-interface.c:1045,1
    - Dst: _
      Src: /src/git/gpg-interface.c:1045,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:1047,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:1050,1
    - Dst: remove_cr_after
      Src: /src/git/gpg-interface.c:1053,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - buffer
    - signature
    - signing_key
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1011
    functionDepth: 8
    functionLinenumber: 1011
    functionLinenumberEnd: 1056
    functionName: sign_buffer_gpg
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - strstr
    - sigchain_push
    - sigchain_pop
    - strvec_pushl
    - pipe_command
    - remove_cr_after
    - _
    linkageType: ''
    returnType: int
    signature: "int sign_buffer_gpg(struct strbuf *buffer, struct strbuf *signature,\n\t\t\t
      \ const char *signing_key)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/gpg-interface.c:1072,1
    - Dst: _
      Src: /src/git/gpg-interface.c:1073,1
    - Dst: is_literal_ssh_key
      Src: /src/git/gpg-interface.c:1075,1
    - Dst: mks_tempfile_t
      Src: /src/git/gpg-interface.c:1078,1
    - Dst: error_errno
      Src: /src/git/gpg-interface.c:1080,1
    - Dst: _
      Src: /src/git/gpg-interface.c:1081,1
    - Dst: strlen
      Src: /src/git/gpg-interface.c:1082,1
    - Dst: write_in_full
      Src: /src/git/gpg-interface.c:1083,1
    - Dst: close_tempfile_gently
      Src: /src/git/gpg-interface.c:1084,1
    - Dst: error_errno
      Src: /src/git/gpg-interface.c:1085,1
    - Dst: _
      Src: /src/git/gpg-interface.c:1085,1
    - Dst: xstrdup
      Src: /src/git/gpg-interface.c:1089,1
    - Dst: interpolate_path
      Src: /src/git/gpg-interface.c:1092,1
    - Dst: mks_tempfile_t
      Src: /src/git/gpg-interface.c:1095,1
    - Dst: error_errno
      Src: /src/git/gpg-interface.c:1097,1
    - Dst: _
      Src: /src/git/gpg-interface.c:1097,1
    - Dst: write_in_full
      Src: /src/git/gpg-interface.c:1101,1
    - Dst: close_tempfile_gently
      Src: /src/git/gpg-interface.c:1102,1
    - Dst: error_errno
      Src: /src/git/gpg-interface.c:1103,1
    - Dst: _
      Src: /src/git/gpg-interface.c:1103,1
    - Dst: strvec_pushl
      Src: /src/git/gpg-interface.c:1108,1
    - Dst: strvec_push
      Src: /src/git/gpg-interface.c:1114,1
    - Dst: strvec_push
      Src: /src/git/gpg-interface.c:1115,1
    - Dst: sigchain_push
      Src: /src/git/gpg-interface.c:1117,1
    - Dst: pipe_command
      Src: /src/git/gpg-interface.c:1118,1
    - Dst: sigchain_pop
      Src: /src/git/gpg-interface.c:1119,1
    - Dst: strstr
      Src: /src/git/gpg-interface.c:1122,1
    - Dst: error
      Src: /src/git/gpg-interface.c:1123,1
    - Dst: _
      Src: /src/git/gpg-interface.c:1123,1
    - Dst: error
      Src: /src/git/gpg-interface.c:1125,1
    - Dst: strbuf_addbuf
      Src: /src/git/gpg-interface.c:1131,1
    - Dst: strbuf_addstr
      Src: /src/git/gpg-interface.c:1132,1
    - Dst: strbuf_read_file
      Src: /src/git/gpg-interface.c:1133,1
    - Dst: error_errno
      Src: /src/git/gpg-interface.c:1134,1
    - Dst: _
      Src: /src/git/gpg-interface.c:1135,1
    - Dst: remove_cr_after
      Src: /src/git/gpg-interface.c:1140,1
    - Dst: delete_tempfile
      Src: /src/git/gpg-interface.c:1144,1
    - Dst: delete_tempfile
      Src: /src/git/gpg-interface.c:1146,1
    - Dst: unlink_or_warn
      Src: /src/git/gpg-interface.c:1148,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:1149,1
    - Dst: strbuf_release
      Src: /src/git/gpg-interface.c:1150,1
    - Dst: FREE_AND_NULL
      Src: /src/git/gpg-interface.c:1151,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 3
    argNames:
    - buffer
    - signature
    - signing_key
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1058
    functionDepth: 8
    functionLinenumber: 1058
    functionLinenumberEnd: 1153
    functionName: sign_buffer_ssh
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strvec_push
    - strbuf_addbuf
    - error
    - delete_tempfile
    - interpolate_path
    - strbuf_release
    - strstr
    - sigchain_push
    - remove_cr_after
    - strbuf_addstr
    - mks_tempfile_t
    - write_in_full
    - unlink_or_warn
    - sigchain_pop
    - strvec_pushl
    - strbuf_read_file
    - is_literal_ssh_key
    - pipe_command
    - close_tempfile_gently
    - _
    - FREE_AND_NULL
    - xstrdup
    - strlen
    linkageType: ''
    returnType: int
    signature: "int sign_buffer_ssh(struct strbuf *buffer, struct strbuf *signature,\n\t\t\t
      \  const char *signing_key)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:1157,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:1159,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:1159,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:1161,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:1161,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:1163,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:1165,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:1167,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:1169,1
    - Dst: strcmp
      Src: /src/git/gpg-interface.c:1171,1
    - Dst: skip_prefix
      Src: /src/git/gpg-interface.c:1173,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - arg
    - mode
    - keyid
    argTypes:
    - char*
    - enum sign_mode*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1181
    functionName: parse_sign_mode
    functionSourceFile: /src/git/gpg-interface.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_sign_mode(const char *arg, enum sign_mode *mode, const char
      **keyid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/diffcore-order.c:24,1
    - Dst: die_errno
      Src: /src/git/diffcore-order.c:26,1
    - Dst: _
      Src: /src/git/diffcore-order.c:26,1
    - Dst: xmemdupz
      Src: /src/git/diffcore-order.c:42,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/diffcore-order.c:51,1
    - Dst: strbuf_release
      Src: /src/git/diffcore-order.c:55,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - orderfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 56
    functionName: prepare_order
    functionSourceFile: /src/git/diffcore-order.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strbuf_release
    - ALLOC_ARRAY
    - strbuf_read_file
    - die_errno
    - _
    linkageType: ''
    returnType: void
    signature: void prepare_order(const char *orderfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/diffcore-order.c:64,1
    - Dst: strbuf_addstr
      Src: /src/git/diffcore-order.c:65,1
    - Dst: wildmatch
      Src: /src/git/diffcore-order.c:68,1
    - Dst: strrchr
      Src: /src/git/diffcore-order.c:70,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: match_order
    functionSourceFile: /src/git/diffcore-order.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strrchr
    - strbuf_addstr
    - wildmatch
    linkageType: ''
    returnType: int
    signature: int match_order(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: compare_objs_order
    functionSourceFile: /src/git/diffcore-order.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_objs_order(const void *a_, const void *b_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_order
      Src: /src/git/diffcore-order.c:97,1
    - Dst: match_order
      Src: /src/git/diffcore-order.c:100,1
    - Dst: obj_path
      Src: /src/git/diffcore-order.c:100,1
    - Dst: QSORT
      Src: /src/git/diffcore-order.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - orderfile
    - obj_path
    - objs
    - nr
    argTypes:
    - char*
    - obj_path_fn_t
    - struct obj_order*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: order_objects
    functionSourceFile: /src/git/diffcore-order.c
    functionUses: 0
    functionsReached:
    - match_order
    - prepare_order
    - obj_path
    - QSORT
    linkageType: ''
    returnType: void
    signature: "void order_objects(const char *orderfile, obj_path_fn_t obj_path,\n\t\t
      \  struct obj_order *objs, int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: pair_pathtwo
    functionSourceFile: /src/git/diffcore-order.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *pair_pathtwo(void *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/diffcore-order.c:121,1
    - Dst: order_objects
      Src: /src/git/diffcore-order.c:124,1
    - Dst: free
      Src: /src/git/diffcore-order.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - orderfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: diffcore_order
    functionSourceFile: /src/git/diffcore-order.c
    functionUses: 0
    functionsReached:
    - order_objects
    - ALLOC_ARRAY
    - free
    linkageType: ''
    returnType: void
    signature: void diffcore_order(const char *orderfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - desc
    - pathp
    - modep
    argTypes:
    - struct tree_desc*
    - char**
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: tree_entry_extract
    functionSourceFile: /src/git/tree-walk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *tree_entry_extract(struct tree_desc *desc, const
      char **pathp, unsigned short *modep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ne
    argTypes:
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: tree_entry_len
    functionSourceFile: /src/git/tree-walk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tree_entry_len(const struct name_entry *ne)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: st_add
      Src: /src/git/tree-walk.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - info
    - namelen
    argTypes:
    - struct traverse_info*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: traverse_path_len
    functionSourceFile: /src/git/tree-walk.h
    functionUses: 1
    functionsReached:
    - st_add
    linkageType: ''
    returnType: size_t
    signature: "size_t traverse_path_len(const struct traverse_info *info,\n\t\t\t\t
      \      size_t namelen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/list-objects-filter.c:83,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:86,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:91,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:96,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:101,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:105,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:106,1
    - Dst: oidset_insert
      Src: /src/git/list-objects-filter.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 7
    argNames:
    - UNUSED
    - filter_situation
    - obj
    - pathname
    - filename
    - omits
    - filter_data_
    argTypes:
    - struct repository*
    - enum list_objects_filter_situation
    - struct object*
    - char*
    - char*
    - struct oidset*
    - void*
    assertStmts:
    - condition: (obj->type == OBJ_TAG)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_COMMIT)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_TREE)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_TREE)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_BLOB)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/git/list-objects-filter.c
    - condition: ((obj->flags & SEEN) == 0)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/git/list-objects-filter.c
    constantsTouched: []
    func_position:
      end: 112
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 112
    functionName: filter_blobs_none
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - BUG
    - assert
    - oidset_insert
    linkageType: ''
    returnType: enum list_objects_filter_result
    signature: "enum list_objects_filter_result filter_blobs_none(\n\tstruct repository
      *r UNUSED,\n\tenum list_objects_filter_situation filter_situation,\n\tstruct
      object *obj,\n\tconst char *pathname UNUSED,\n\tconst char *filename UNUSED,\n\tstruct
      oidset *omits,\n\tvoid *filter_data_ UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - filter_options
    - filter
    argTypes:
    - struct list_objects_filter_options*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: filter_blobs_none__init
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void filter_blobs_none__init(\n\tstruct list_objects_filter_options
      *filter_options UNUSED,\n\tstruct filter *filter)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidset_remove
      Src: /src/git/list-objects-filter.c:156,1
    - Dst: oidset_insert
      Src: /src/git/list-objects-filter.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - omits
    - include_it
    argTypes:
    - struct object*
    - struct oidset*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 159
    functionName: filter_trees_update_omits
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - oidset_remove
    - oidset_insert
    linkageType: ''
    returnType: int
    signature: "int filter_trees_update_omits(\n\tstruct object *obj,\n\tstruct oidset
      *omits,\n\tint include_it)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/list-objects-filter.c:184,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:187,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:192,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:197,1
    - Dst: filter_trees_update_omits
      Src: /src/git/list-objects-filter.c:202,1
    - Dst: oidmap_get
      Src: /src/git/list-objects-filter.c:206,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/list-objects-filter.c:209,1
    - Dst: oidcpy
      Src: /src/git/list-objects-filter.c:210,1
    - Dst: oidmap_put
      Src: /src/git/list-objects-filter.c:212,1
    - Dst: filter_trees_update_omits
      Src: /src/git/list-objects-filter.c:222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 7
    argNames:
    - UNUSED
    - filter_situation
    - obj
    - pathname
    - filename
    - omits
    - filter_data_
    argTypes:
    - struct repository*
    - enum list_objects_filter_situation
    - struct object*
    - char*
    - char*
    - struct oidset*
    - void*
    assertStmts:
    - condition: (obj->type == OBJ_TREE)
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_TAG)
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_COMMIT)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/git/list-objects-filter.c
    constantsTouched: []
    func_position:
      end: 241
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 241
    functionName: filter_trees_depth
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - oidmap_put
    - assert
    - oidcpy
    - oidmap_get
    - filter_trees_update_omits
    - CALLOC_ARRAY
    - BUG
    linkageType: ''
    returnType: enum list_objects_filter_result
    signature: "enum list_objects_filter_result filter_trees_depth(\n\tstruct repository
      *r UNUSED,\n\tenum list_objects_filter_situation filter_situation,\n\tstruct
      object *obj,\n\tconst char *pathname UNUSED,\n\tconst char *filename UNUSED,\n\tstruct
      oidset *omits,\n\tvoid *filter_data_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidmap_clear
      Src: /src/git/list-objects-filter.c:247,1
    - Dst: free
      Src: /src/git/list-objects-filter.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - filter_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: filter_trees_free
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - oidmap_clear
    - free
    linkageType: ''
    returnType: void
    signature: void filter_trees_free(void *filter_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/list-objects-filter.c:255,1
    - Dst: oidmap_init
      Src: /src/git/list-objects-filter.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - filter_options
    - filter
    argTypes:
    - struct list_objects_filter_options*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: filter_trees_depth__init
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - oidmap_init
    - xcalloc
    linkageType: ''
    returnType: void
    signature: "void filter_trees_depth__init(\n\tstruct list_objects_filter_options
      *filter_options,\n\tstruct filter *filter)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/list-objects-filter.c:288,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:291,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:296,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:301,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:306,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:310,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:311,1
    - Dst: odb_read_object_info
      Src: /src/git/list-objects-filter.c:313,1
    - Dst: oidset_insert
      Src: /src/git/list-objects-filter.c:328,1
    - Dst: oidset_remove
      Src: /src/git/list-objects-filter.c:334,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 7
    argNames:
    - r
    - filter_situation
    - obj
    - pathname
    - filename
    - omits
    - filter_data_
    argTypes:
    - struct repository*
    - enum list_objects_filter_situation
    - struct object*
    - char*
    - char*
    - struct oidset*
    - void*
    assertStmts:
    - condition: (obj->type == OBJ_TREE)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_COMMIT)
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_TREE)
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_TAG)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_BLOB)
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/git/list-objects-filter.c
    - condition: ((obj->flags & SEEN) == 0)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/git/list-objects-filter.c
    constantsTouched: []
    func_position:
      end: 336
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 336
    functionName: filter_blobs_limit
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - assert
    - oidset_remove
    - odb_read_object_info
    - oidset_insert
    - BUG
    linkageType: ''
    returnType: enum list_objects_filter_result
    signature: "enum list_objects_filter_result filter_blobs_limit(\n\tstruct repository
      *r,\n\tenum list_objects_filter_situation filter_situation,\n\tstruct object
      *obj,\n\tconst char *pathname UNUSED,\n\tconst char *filename UNUSED,\n\tstruct
      oidset *omits,\n\tvoid *filter_data_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/list-objects-filter.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - filter_options
    - filter
    argTypes:
    - struct list_objects_filter_options*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 348
    functionName: filter_blobs_limit__init
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: void
    signature: "void filter_blobs_limit__init(\n\tstruct list_objects_filter_options
      *filter_options,\n\tstruct filter *filter)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/list-objects-filter.c:402,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:405,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:410,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:415,1
    - Dst: path_matches_pattern_list
      Src: /src/git/list-objects-filter.c:417,1
    - Dst: strlen
      Src: /src/git/list-objects-filter.c:417,1
    - Dst: ALLOC_GROW
      Src: /src/git/list-objects-filter.c:423,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:451,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:452,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:473,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:474,1
    - Dst: path_matches_pattern_list
      Src: /src/git/list-objects-filter.c:479,1
    - Dst: strlen
      Src: /src/git/list-objects-filter.c:479,1
    - Dst: oidset_remove
      Src: /src/git/list-objects-filter.c:486,1
    - Dst: oidset_insert
      Src: /src/git/list-objects-filter.c:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 7
    argNames:
    - r
    - filter_situation
    - obj
    - pathname
    - filename
    - omits
    - filter_data_
    argTypes:
    - struct repository*
    - enum list_objects_filter_situation
    - struct object*
    - char*
    - char*
    - struct oidset*
    - void*
    assertStmts:
    - condition: (obj->type == OBJ_COMMIT)
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_TAG)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_TREE)
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_TREE)
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/git/list-objects-filter.c
    - condition: (filter_data->nr > 1)
      pos:
        line_end: 451
        line_start: 451
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_BLOB)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/git/list-objects-filter.c
    - condition: ((obj->flags & SEEN) == 0)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/git/list-objects-filter.c
    constantsTouched: []
    func_position:
      end: 511
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 511
    functionName: filter_sparse
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - path_matches_pattern_list
    - assert
    - oidset_remove
    - strlen
    - ALLOC_GROW
    - oidset_insert
    - BUG
    linkageType: ''
    returnType: enum list_objects_filter_result
    signature: "enum list_objects_filter_result filter_sparse(\n\tstruct repository
      *r,\n\tenum list_objects_filter_situation filter_situation,\n\tstruct object
      *obj,\n\tconst char *pathname,\n\tconst char *filename,\n\tstruct oidset *omits,\n\tvoid
      *filter_data_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_pattern_list
      Src: /src/git/list-objects-filter.c:517,1
    - Dst: free
      Src: /src/git/list-objects-filter.c:518,1
    - Dst: free
      Src: /src/git/list-objects-filter.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filter_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: filter_sparse_free
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - clear_pattern_list
    - free
    linkageType: ''
    returnType: void
    signature: void filter_sparse_free(void *filter_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/list-objects-filter.c:526,1
    - Dst: repo_get_oid_with_flags
      Src: /src/git/list-objects-filter.c:529,1
    - Dst: die
      Src: /src/git/list-objects-filter.c:532,1
    - Dst: _
      Src: /src/git/list-objects-filter.c:532,1
    - Dst: add_patterns_from_blob_to_list
      Src: /src/git/list-objects-filter.c:534,1
    - Dst: die
      Src: /src/git/list-objects-filter.c:535,1
    - Dst: _
      Src: /src/git/list-objects-filter.c:535,1
    - Dst: oid_to_hex
      Src: /src/git/list-objects-filter.c:536,1
    - Dst: ALLOC_GROW
      Src: /src/git/list-objects-filter.c:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - filter_options
    - filter
    argTypes:
    - struct list_objects_filter_options*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 522
    functionDepth: 7
    functionLinenumber: 522
    functionLinenumberEnd: 546
    functionName: filter_sparse_oid__init
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - repo_get_oid_with_flags
    - oid_to_hex
    - die
    - add_patterns_from_blob_to_list
    - xcalloc
    - _
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: "void filter_sparse_oid__init(\n\tstruct list_objects_filter_options
      *filter_options,\n\tstruct filter *filter)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/list-objects-filter.c:569,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:572,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:578,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:584,1
    - Dst: assert
      Src: /src/git/list-objects-filter.c:600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 7
    argNames:
    - UNUSED
    - filter_situation
    - obj
    - pathname
    - filename
    - UNUSED
    - filter_data_
    argTypes:
    - struct repository*
    - enum list_objects_filter_situation
    - struct object*
    - char*
    - char*
    - struct oidset*
    - void*
    assertStmts:
    - condition: (obj->type == OBJ_TAG)
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_BLOB)
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_TREE)
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/git/list-objects-filter.c
    - condition: (obj->type == OBJ_COMMIT)
      pos:
        line_end: 577
        line_start: 577
        source_file: /src/git/list-objects-filter.c
    constantsTouched: []
    func_position:
      end: 609
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 609
    functionName: filter_object_type
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - BUG
    - assert
    linkageType: ''
    returnType: enum list_objects_filter_result
    signature: "enum list_objects_filter_result filter_object_type(\n\tstruct repository
      *r UNUSED,\n\tenum list_objects_filter_situation filter_situation,\n\tstruct
      object *obj,\n\tconst char *pathname UNUSED,\n\tconst char *filename UNUSED,\n\tstruct
      oidset *omits UNUSED,\n\tvoid *filter_data_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/list-objects-filter.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - filter_options
    - filter
    argTypes:
    - struct list_objects_filter_options*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 621
    functionName: filter_object_type__init
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: void
    signature: "void filter_object_type__init(\n\tstruct list_objects_filter_options
      *filter_options,\n\tstruct filter *filter)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/list-objects-filter.c:650,1
    - Dst: oidset_contains
      Src: /src/git/list-objects-filter.c:655,1
    - Dst: list_objects_filter__filter_object
      Src: /src/git/list-objects-filter.c:658,1
    - Dst: oidset_insert
      Src: /src/git/list-objects-filter.c:662,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 6
    argNames:
    - r
    - filter_situation
    - obj
    - pathname
    - filename
    - sub
    argTypes:
    - struct repository*
    - enum list_objects_filter_situation
    - struct object*
    - char*
    - char*
    - struct subfilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 670
    functionName: process_subfilter
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - oidset_contains
    - list_objects_filter__filter_object
    - oideq
    - oidset_insert
    linkageType: ''
    returnType: enum list_objects_filter_result
    signature: "enum list_objects_filter_result process_subfilter(\n\tstruct repository
      *r,\n\tenum list_objects_filter_situation filter_situation,\n\tstruct object
      *obj,\n\tconst char *pathname,\n\tconst char *filename,\n\tstruct subfilter
      *sub)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: process_subfilter
      Src: /src/git/list-objects-filter.c:687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - r
    - filter_situation
    - obj
    - pathname
    - filename
    - UNUSED
    - filter_data
    argTypes:
    - struct repository*
    - enum list_objects_filter_situation
    - struct object*
    - char*
    - char*
    - struct oidset*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 699
    functionName: filter_combine
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - process_subfilter
    linkageType: ''
    returnType: enum list_objects_filter_result
    signature: "enum list_objects_filter_result filter_combine(\n\tstruct repository
      *r,\n\tenum list_objects_filter_situation filter_situation,\n\tstruct object
      *obj,\n\tconst char *pathname,\n\tconst char *filename,\n\tstruct oidset *omits
      UNUSED,\n\tvoid *filter_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_objects_filter__free
      Src: /src/git/list-objects-filter.c:706,1
    - Dst: oidset_clear
      Src: /src/git/list-objects-filter.c:707,1
    - Dst: BUG
      Src: /src/git/list-objects-filter.c:709,1
    - Dst: free
      Src: /src/git/list-objects-filter.c:711,1
    - Dst: free
      Src: /src/git/list-objects-filter.c:712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - filter_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 713
    functionName: filter_combine__free
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - BUG
    - oidset_clear
    - list_objects_filter__free
    - free
    linkageType: ''
    returnType: void
    signature: void filter_combine__free(void *filter_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_insert_from_set
      Src: /src/git/list-objects-filter.c:723,1
    - Dst: oidset_clear
      Src: /src/git/list-objects-filter.c:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - omits
    - filter_data
    argTypes:
    - struct oidset*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 726
    functionName: filter_combine__finalize_omits
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - oidset_clear
    - oidset_insert_from_set
    linkageType: ''
    returnType: void
    signature: "void filter_combine__finalize_omits(\n\tstruct oidset *omits,\n\tvoid
      *filter_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/list-objects-filter.c:732,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/list-objects-filter.c:736,1
    - Dst: list_objects_filter__init
      Src: /src/git/list-objects-filter.c:738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - filter_options
    - filter
    argTypes:
    - struct list_objects_filter_options*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 746
    functionName: filter_combine__init
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - list_objects_filter__init
    - xcalloc
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void filter_combine__init(\n\tstruct list_objects_filter_options *filter_options,\n\tstruct
      filter* filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/list-objects-filter.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filter_options
    - filter
    argTypes:
    - struct list_objects_filter_options*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 753
    functionName: filter_auto__init
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: "void filter_auto__init(\n\tstruct list_objects_filter_options *filter_options
      UNUSED,\n\tstruct filter *filter UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/list-objects-filter.c:780,1
    - Dst: BUG
      Src: /src/git/list-objects-filter.c:786,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/list-objects-filter.c:793,1
    - Dst: init_fn
      Src: /src/git/list-objects-filter.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - omitted
    - filter_options
    argTypes:
    - struct oidset*
    - struct list_objects_filter_options*
    assertStmts:
    - condition: ((sizeof(s_filters) / sizeof(s_filters[0])) == LOFC__COUNT)
      pos:
        line_end: 779
        line_start: 779
        source_file: /src/git/list-objects-filter.c
    constantsTouched: []
    func_position:
      end: 797
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 797
    functionName: list_objects_filter__init
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 1
    functionsReached:
    - BUG
    - assert
    - init_fn
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct filter
    signature: "struct filter *list_objects_filter__init(\n\tstruct oidset *omitted,\n\tstruct
      list_objects_filter_options *filter_options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct filter*::filter_object_fn
      Src: /src/git/list-objects-filter.c:808,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 6
    argNames:
    - r
    - filter_situation
    - obj
    - pathname
    - filename
    - filter
    argTypes:
    - struct repository*
    - enum list_objects_filter_situation
    - struct object*
    - char*
    - char*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 820
    functionName: list_objects_filter__filter_object
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 1
    functionsReached:
    - struct filter*::filter_object_fn
    linkageType: ''
    returnType: enum list_objects_filter_result
    signature: "enum list_objects_filter_result list_objects_filter__filter_object(\n\tstruct
      repository *r,\n\tenum list_objects_filter_situation filter_situation,\n\tstruct
      object *obj,\n\tconst char *pathname,\n\tconst char *filename,\n\tstruct filter
      *filter)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct filter*::finalize_omits_fn
      Src: /src/git/list-objects-filter.c:827,1
    - Dst: struct filter*::free_fn
      Src: /src/git/list-objects-filter.c:828,1
    - Dst: free
      Src: /src/git/list-objects-filter.c:829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 830
    functionName: list_objects_filter__free
    functionSourceFile: /src/git/list-objects-filter.c
    functionUses: 1
    functionsReached:
    - struct filter*::finalize_omits_fn
    - struct filter*::free_fn
    - free
    linkageType: ''
    returnType: void
    signature: void list_objects_filter__free(struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop_progress_msg
      Src: /src/git/progress.h:30,1
    - Dst: _
      Src: /src/git/progress.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_progress
    argTypes:
    - struct progress**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: stop_progress
    functionSourceFile: /src/git/progress.h
    functionUses: 4
    functionsReached:
    - stop_progress_msg
    - _
    linkageType: ''
    returnType: void
    signature: void stop_progress(struct progress **p_progress)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reference_get_peeled_oid
      Src: /src/git/repack-midx.c:29,1
    - Dst: oidset_insert
      Src: /src/git/repack-midx.c:32,1
    - Dst: odb_read_object_info
      Src: /src/git/repack-midx.c:35,1
    - Dst: fprintf
      Src: /src/git/repack-midx.c:38,1
    - Dst: oid_to_hex
      Src: /src/git/repack-midx.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ref
    - _data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 42
    functionName: midx_snapshot_ref_one
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - reference_get_peeled_oid
    - odb_read_object_info
    - oidset_insert
    - fprintf
    linkageType: ''
    returnType: int
    signature: int midx_snapshot_ref_one(const struct reference *ref, void *_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidset_init
      Src: /src/git/repack-midx.c:51,1
    - Dst: fdopen_tempfile
      Src: /src/git/repack-midx.c:53,1
    - Dst: die
      Src: /src/git/repack-midx.c:54,1
    - Dst: _
      Src: /src/git/repack-midx.c:54,1
    - Dst: get_tempfile_path
      Src: /src/git/repack-midx.c:55,1
    - Dst: for_each_preferred_bitmap_tip
      Src: /src/git/repack-midx.c:58,1
    - Dst: refs_for_each_ref
      Src: /src/git/repack-midx.c:61,1
    - Dst: get_main_ref_store
      Src: /src/git/repack-midx.c:61,1
    - Dst: close_tempfile_gently
      Src: /src/git/repack-midx.c:64,1
    - Dst: delete_tempfile
      Src: /src/git/repack-midx.c:66,1
    - Dst: die_errno
      Src: /src/git/repack-midx.c:68,1
    - Dst: _
      Src: /src/git/repack-midx.c:68,1
    - Dst: oidset_clear
      Src: /src/git/repack-midx.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - repo
    - f
    argTypes:
    - struct repository*
    - struct tempfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 72
    functionName: midx_snapshot_refs
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - delete_tempfile
    - die
    - oidset_init
    - refs_for_each_ref
    - die_errno
    - oidset_clear
    - for_each_preferred_bitmap_tip
    - close_tempfile_gently
    - _
    - get_main_ref_store
    - fdopen_tempfile
    - get_tempfile_path
    linkageType: ''
    returnType: void
    signature: void midx_snapshot_refs(struct repository *repo, struct tempfile *f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string_list_sort
      Src: /src/git/repack-midx.c:80,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-midx.c:82,1
    - Dst: string_list_has_string
      Src: /src/git/repack-midx.c:102,1
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:109,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:110,1
    - Dst: pack_basename
      Src: /src/git/repack-midx.c:110,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack-midx.c:111,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:112,1
    - Dst: strcmp
      Src: /src/git/repack-midx.c:114,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:115,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:120,1
    - Dst: string_list_lookup
      Src: /src/git/repack-midx.c:127,1
    - Dst: existing_pack_is_marked_for_deletion
      Src: /src/git/repack-midx.c:129,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - include
    - geometry
    - existing
    argTypes:
    - struct string_list*
    - struct pack_geometry*
    - struct existing_packs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 141
    functionName: midx_has_unknown_packs
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - strbuf_release
    - string_list_lookup
    - pack_basename
    - strbuf_reset
    - string_list_sort
    - strbuf_strip_suffix
    - existing_pack_is_marked_for_deletion
    - string_list_has_string
    - strbuf_addstr
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int midx_has_unknown_packs(struct string_list *include,\n\t\t\t\t
      \ struct pack_geometry *geometry,\n\t\t\t\t  struct existing_packs *existing)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/repack-midx.c:152,1
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:153,1
    - Dst: strbuf_addf
      Src: /src/git/repack-midx.c:154,1
    - Dst: string_list_insert
      Src: /src/git/repack-midx.c:155,1
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:159,1
    - Dst: strbuf_addf
      Src: /src/git/repack-midx.c:160,1
    - Dst: string_list_insert
      Src: /src/git/repack-midx.c:161,1
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:181,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:182,1
    - Dst: pack_basename
      Src: /src/git/repack-midx.c:182,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack-midx.c:183,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:184,1
    - Dst: string_list_insert
      Src: /src/git/repack-midx.c:186,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-midx.c:189,1
    - Dst: existing_pack_is_marked_for_deletion
      Src: /src/git/repack-midx.c:190,1
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:193,1
    - Dst: strbuf_addf
      Src: /src/git/repack-midx.c:194,1
    - Dst: string_list_insert
      Src: /src/git/repack-midx.c:195,1
    - Dst: midx_has_unknown_packs
      Src: /src/git/repack-midx.c:200,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-midx.c:213,1
    - Dst: existing_pack_is_marked_for_deletion
      Src: /src/git/repack-midx.c:229,1
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:232,1
    - Dst: strbuf_addf
      Src: /src/git/repack-midx.c:233,1
    - Dst: string_list_insert
      Src: /src/git/repack-midx.c:234,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:250,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - include
    - opts
    argTypes:
    - struct string_list*
    - struct repack_write_midx_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 251
    functionName: midx_included_packs
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - strbuf_release
    - string_list_insert
    - pack_basename
    - strbuf_reset
    - strbuf_strip_suffix
    - strbuf_addf
    - existing_pack_is_marked_for_deletion
    - midx_has_unknown_packs
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void midx_included_packs(struct string_list *include,\n\t\t\t\tstruct
      repack_write_midx_opts *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:159,1
    - Dst: strbuf_addf
      Src: /src/git/repack-midx.c:160,1
    - Dst: string_list_insert
      Src: /src/git/repack-midx.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 11
    functionsReached:
    - strbuf_reset
    - strbuf_addf
    - string_list_insert
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, names)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:260,1
    - Dst: strbuf_addch
      Src: /src/git/repack-midx.c:261,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:269,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack-midx.c:270,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:271,1
    - Dst: unlink
      Src: /src/git/repack-midx.c:273,1
    - Dst: warning_errno
      Src: /src/git/repack-midx.c:274,1
    - Dst: _
      Src: /src/git/repack-midx.c:274,1
    - Dst: strbuf_setlen
      Src: /src/git/repack-midx.c:277,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - include
    - packdir
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 280
    functionName: remove_redundant_bitmaps
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_strip_suffix
    - warning_errno
    - strbuf_setlen
    - strbuf_addch
    - strbuf_addstr
    - _
    - unlink
    linkageType: ''
    returnType: void
    signature: "void remove_redundant_bitmaps(struct string_list *include,\n\t\t\t\t
      \    const char *packdir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:269,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack-midx.c:270,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:271,1
    - Dst: unlink
      Src: /src/git/repack-midx.c:273,1
    - Dst: warning_errno
      Src: /src/git/repack-midx.c:274,1
    - Dst: _
      Src: /src/git/repack-midx.c:274,1
    - Dst: strbuf_setlen
      Src: /src/git/repack-midx.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 278
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 11
    functionsReached:
    - strbuf_strip_suffix
    - warning_errno
    - strbuf_setlen
    - strbuf_addstr
    - _
    - unlink
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, include)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/repack-midx.c:288,1
    - Dst: strvec_push
      Src: /src/git/repack-midx.c:291,1
    - Dst: strvec_push
      Src: /src/git/repack-midx.c:293,1
    - Dst: strvec_push
      Src: /src/git/repack-midx.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - opts
    - subcommand
    argTypes:
    - struct child_process*
    - struct repack_write_midx_opts*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 297
    functionName: repack_prepare_midx_command
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_pushl
    linkageType: ''
    returnType: void
    signature: "void repack_prepare_midx_command(struct child_process *cmd,\n\t\t\t\t\tstruct
      repack_write_midx_opts *opts,\n\t\t\t\t\tconst char *subcommand)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/repack-midx.c:308,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-midx.c:310,1
    - Dst: strbuf_addf
      Src: /src/git/repack-midx.c:311,1
    - Dst: pipe_command
      Src: /src/git/repack-midx.c:313,1
    - Dst: string_list_split_f
      Src: /src/git/repack-midx.c:317,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:320,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - cmd
    - include
    - out
    argTypes:
    - struct child_process*
    - struct string_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 299
    functionDepth: 8
    functionLinenumber: 299
    functionLinenumberEnd: 324
    functionName: repack_fill_midx_stdin_packs
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - for_each_string_list_item
    - strbuf_release
    - strbuf_addf
    - pipe_command
    - string_list_split_f
    linkageType: ''
    returnType: int
    signature: "int repack_fill_midx_stdin_packs(struct child_process *cmd,\n\t\t\t\t\tstruct
      string_list *include,\n\t\t\t\t\tstruct string_list *out)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pack_geometry_preferred_pack
      Src: /src/git/repack-midx.c:331,1
    - Dst: midx_included_packs
      Src: /src/git/repack-midx.c:334,1
    - Dst: repack_prepare_midx_command
      Src: /src/git/repack-midx.c:338,1
    - Dst: strvec_pushf
      Src: /src/git/repack-midx.c:341,1
    - Dst: pack_basename
      Src: /src/git/repack-midx.c:342,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-midx.c:356,1
    - Dst: generated_pack_has_ext
      Src: /src/git/repack-midx.c:358,1
    - Dst: strvec_pushf
      Src: /src/git/repack-midx.c:361,1
    - Dst: strvec_pushf
      Src: /src/git/repack-midx.c:377,1
    - Dst: repack_fill_midx_stdin_packs
      Src: /src/git/repack-midx.c:380,1
    - Dst: remove_redundant_bitmaps
      Src: /src/git/repack-midx.c:383,1
    - Dst: string_list_clear
      Src: /src/git/repack-midx.c:385,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct repack_write_midx_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 326
    functionDepth: 9
    functionLinenumber: 326
    functionLinenumberEnd: 388
    functionName: write_midx_included_packs
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - midx_included_packs
    - pack_basename
    - generated_pack_has_ext
    - pack_geometry_preferred_pack
    - remove_redundant_bitmaps
    - repack_prepare_midx_command
    - repack_fill_midx_stdin_packs
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int write_midx_included_packs(struct repack_write_midx_opts *opts)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repack-midx.c:415,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:417,1
    - Dst: BUG
      Src: /src/git/repack-midx.c:419,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:421,1
    - Dst: BUG
      Src: /src/git/repack-midx.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - step
    argTypes:
    - struct midx_compaction_step*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 425
    functionName: midx_compaction_step_base
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - midx_get_checksum_hex
    - BUG
    linkageType: ''
    returnType: char
    signature: char *midx_compaction_step_base(const struct midx_compaction_step *step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/repack-midx.c:429,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - step
    argTypes:
    - struct midx_compaction_step*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: midx_compaction_step_exec_copy
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - midx_get_checksum_hex
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int midx_compaction_step_exec_copy(struct midx_compaction_step *step)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/repack-midx.c:444,1
    - Dst: _
      Src: /src/git/repack-midx.c:444,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-midx.c:448,1
    - Dst: repack_prepare_midx_command
      Src: /src/git/repack-midx.c:453,1
    - Dst: strvec_pushl
      Src: /src/git/repack-midx.c:454,1
    - Dst: strvec_pushf
      Src: /src/git/repack-midx.c:455,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:460,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack-midx.c:461,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:462,1
    - Dst: strvec_pushf
      Src: /src/git/repack-midx.c:464,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:466,1
    - Dst: repack_fill_midx_stdin_packs
      Src: /src/git/repack-midx.c:469,1
    - Dst: error
      Src: /src/git/repack-midx.c:471,1
    - Dst: _
      Src: /src/git/repack-midx.c:471,1
    - Dst: xstrdup
      Src: /src/git/repack-midx.c:477,1
    - Dst: string_list_clear
      Src: /src/git/repack-midx.c:480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - step
    - opts
    - base
    argTypes:
    - struct midx_compaction_step*
    - struct repack_write_midx_opts*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 433
    functionDepth: 9
    functionLinenumber: 433
    functionLinenumberEnd: 483
    functionName: midx_compaction_step_exec_write
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - error
    - for_each_string_list_item
    - strbuf_release
    - string_list_clear
    - strbuf_strip_suffix
    - strvec_pushl
    - repack_prepare_midx_command
    - repack_fill_midx_stdin_packs
    - strbuf_addstr
    - _
    - strvec_pushf
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int midx_compaction_step_exec_write(struct midx_compaction_step *step,\n\t\t\t\t\t
      \  struct repack_write_midx_opts *opts,\n\t\t\t\t\t   const char *base)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repack_prepare_midx_command
      Src: /src/git/repack-midx.c:493,1
    - Dst: strvec_pushl
      Src: /src/git/repack-midx.c:494,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:495,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:496,1
    - Dst: start_command
      Src: /src/git/repack-midx.c:500,1
    - Dst: xfdopen
      Src: /src/git/repack-midx.c:504,1
    - Dst: strbuf_getline_lf
      Src: /src/git/repack-midx.c:505,1
    - Dst: error
      Src: /src/git/repack-midx.c:507,1
    - Dst: _
      Src: /src/git/repack-midx.c:507,1
    - Dst: fclose
      Src: /src/git/repack-midx.c:508,1
    - Dst: finish_command
      Src: /src/git/repack-midx.c:510,1
    - Dst: strbuf_detach
      Src: /src/git/repack-midx.c:513,1
    - Dst: finish_command
      Src: /src/git/repack-midx.c:516,1
    - Dst: fclose
      Src: /src/git/repack-midx.c:520,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:521,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - step
    - opts
    argTypes:
    - struct midx_compaction_step*
    - struct repack_write_midx_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 485
    functionDepth: 7
    functionLinenumber: 485
    functionLinenumberEnd: 524
    functionName: midx_compaction_step_exec_compact
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - finish_command
    - xfdopen
    - strvec_pushl
    - repack_prepare_midx_command
    - strbuf_detach
    - _
    - midx_get_checksum_hex
    - start_command
    linkageType: ''
    returnType: int
    signature: "int midx_compaction_step_exec_compact(struct midx_compaction_step
      *step,\n\t\t\t\t\t     struct repack_write_midx_opts *opts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repack-midx.c:532,1
    - Dst: midx_compaction_step_exec_copy
      Src: /src/git/repack-midx.c:534,1
    - Dst: midx_compaction_step_exec_write
      Src: /src/git/repack-midx.c:536,1
    - Dst: midx_compaction_step_exec_compact
      Src: /src/git/repack-midx.c:538,1
    - Dst: BUG
      Src: /src/git/repack-midx.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - step
    - opts
    - base
    argTypes:
    - struct midx_compaction_step*
    - struct repack_write_midx_opts*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 526
    functionDepth: 10
    functionLinenumber: 526
    functionLinenumberEnd: 542
    functionName: midx_compaction_step_exec
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - midx_compaction_step_exec_write
    - midx_compaction_step_exec_copy
    - BUG
    - midx_compaction_step_exec_compact
    linkageType: ''
    returnType: int
    signature: "int midx_compaction_step_exec(struct midx_compaction_step *step,\n\t\t\t\t
      \    struct repack_write_midx_opts *opts,\n\t\t\t\t     const char *base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/repack-midx.c:547,1
    - Dst: free
      Src: /src/git/repack-midx.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - step
    argTypes:
    - struct midx_compaction_step*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: midx_compaction_step_release
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - free
    linkageType: ''
    returnType: void
    signature: void midx_compaction_step_release(struct midx_compaction_step *step)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_reprepare
      Src: /src/git/repack-midx.c:565,1
    - Dst: get_multi_pack_index
      Src: /src/git/repack-midx.c:566,1
    - Dst: ALLOC_GROW
      Src: /src/git/repack-midx.c:572,1
    - Dst: st_add
      Src: /src/git/repack-midx.c:572,1
    - Dst: memset
      Src: /src/git/repack-midx.c:575,1
    - Dst: string_list_init_dup
      Src: /src/git/repack-midx.c:578,1
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:581,1
    - Dst: strbuf_addf
      Src: /src/git/repack-midx.c:582,1
    - Dst: string_list_append
      Src: /src/git/repack-midx.c:584,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:587,1
    - Dst: ALLOC_GROW
      Src: /src/git/repack-midx.c:591,1
    - Dst: st_add
      Src: /src/git/repack-midx.c:591,1
    - Dst: memset
      Src: /src/git/repack-midx.c:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - opts
    - steps_p
    - steps_nr_p
    argTypes:
    - struct repack_write_midx_opts*
    - struct midx_compaction_step**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 603
    functionName: repack_make_midx_append_plan
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - memset
    - strbuf_release
    - string_list_init_dup
    - strbuf_reset
    - strbuf_addf
    - get_multi_pack_index
    - ALLOC_GROW
    - odb_reprepare
    - string_list_append
    - st_add
    linkageType: ''
    returnType: void
    signature: "void repack_make_midx_append_plan(struct repack_write_midx_opts *opts,\n\t\t\t\t\t
      struct midx_compaction_step **steps_p,\n\t\t\t\t\t size_t *steps_nr_p)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/repack-midx.c:617,1
    - Dst: odb_reprepare
      Src: /src/git/repack-midx.c:620,1
    - Dst: get_multi_pack_index
      Src: /src/git/repack-midx.c:621,1
    - Dst: prepare_midx_pack
      Src: /src/git/repack-midx.c:624,1
    - Dst: error
      Src: /src/git/repack-midx.c:625,1
    - Dst: _
      Src: /src/git/repack-midx.c:625,1
    - Dst: trace2_region_enter
      Src: /src/git/repack-midx.c:631,1
    - Dst: string_list_init_dup
      Src: /src/git/repack-midx.c:649,1
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:652,1
    - Dst: strbuf_addf
      Src: /src/git/repack-midx.c:653,1
    - Dst: string_list_append
      Src: /src/git/repack-midx.c:654,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:656,1
    - Dst: unsigned_add_overflows
      Src: /src/git/repack-midx.c:662,1
    - Dst: error
      Src: /src/git/repack-midx.c:663,1
    - Dst: _
      Src: /src/git/repack-midx.c:663,1
    - Dst: trace2_data_intmax
      Src: /src/git/repack-midx.c:669,1
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:695,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:696,1
    - Dst: pack_basename
      Src: /src/git/repack-midx.c:696,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack-midx.c:697,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:698,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:702,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:707,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:709,1
    - Dst: string_list_append
      Src: /src/git/repack-midx.c:713,1
    - Dst: unsigned_add_overflows
      Src: /src/git/repack-midx.c:717,1
    - Dst: error
      Src: /src/git/repack-midx.c:718,1
    - Dst: _
      Src: /src/git/repack-midx.c:718,1
    - Dst: trace2_data_intmax
      Src: /src/git/repack-midx.c:724,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:736,1
    - Dst: trace2_region_enter
      Src: /src/git/repack-midx.c:739,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:748,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:749,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:757,1
    - Dst: trace2_data_intmax
      Src: /src/git/repack-midx.c:759,1
    - Dst: trace2_data_intmax
      Src: /src/git/repack-midx.c:762,1
    - Dst: trace2_data_intmax
      Src: /src/git/repack-midx.c:765,1
    - Dst: midx_preferred_pack
      Src: /src/git/repack-midx.c:772,1
    - Dst: error
      Src: /src/git/repack-midx.c:773,1
    - Dst: _
      Src: /src/git/repack-midx.c:773,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:774,1
    - Dst: nth_midxed_pack
      Src: /src/git/repack-midx.c:781,1
    - Dst: strbuf_reset
      Src: /src/git/repack-midx.c:783,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:784,1
    - Dst: pack_basename
      Src: /src/git/repack-midx.c:784,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack-midx.c:785,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-midx.c:786,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:788,1
    - Dst: string_list_append
      Src: /src/git/repack-midx.c:791,1
    - Dst: unsigned_add_overflows
      Src: /src/git/repack-midx.c:796,1
    - Dst: error
      Src: /src/git/repack-midx.c:797,1
    - Dst: _
      Src: /src/git/repack-midx.c:797,1
    - Dst: ALLOC_GROW
      Src: /src/git/repack-midx.c:810,1
    - Dst: trace2_data_intmax
      Src: /src/git/repack-midx.c:814,1
    - Dst: trace2_data_intmax
      Src: /src/git/repack-midx.c:816,1
    - Dst: trace2_region_leave
      Src: /src/git/repack-midx.c:819,1
    - Dst: trace2_region_leave
      Src: /src/git/repack-midx.c:820,1
    - Dst: trace2_region_enter
      Src: /src/git/repack-midx.c:822,1
    - Dst: ALLOC_GROW
      Src: /src/git/repack-midx.c:836,1
    - Dst: memset
      Src: /src/git/repack-midx.c:838,1
    - Dst: trace2_region_enter
      Src: /src/git/repack-midx.c:841,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:843,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:844,1
    - Dst: unsigned_add_overflows
      Src: /src/git/repack-midx.c:848,1
    - Dst: error
      Src: /src/git/repack-midx.c:849,1
    - Dst: _
      Src: /src/git/repack-midx.c:849,1
    - Dst: trace2_region_leave
      Src: /src/git/repack-midx.c:850,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:856,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:858,1
    - Dst: trace2_data_intmax
      Src: /src/git/repack-midx.c:859,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:882,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:884,1
    - Dst: trace2_data_intmax
      Src: /src/git/repack-midx.c:885,1
    - Dst: trace2_data_intmax
      Src: /src/git/repack-midx.c:897,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:907,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:914,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/repack-midx.c:915,1
    - Dst: trace2_data_string
      Src: /src/git/repack-midx.c:916,1
    - Dst: trace2_region_leave
      Src: /src/git/repack-midx.c:922,1
    - Dst: trace2_region_leave
      Src: /src/git/repack-midx.c:925,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:931,1
    - Dst: trace2_region_leave
      Src: /src/git/repack-midx.c:933,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 148
    argCount: 3
    argNames:
    - opts
    - steps_p
    - steps_nr_p
    argTypes:
    - struct repack_write_midx_opts*
    - struct midx_compaction_step**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 605
    functionDepth: 4
    functionLinenumber: 605
    functionLinenumberEnd: 937
    functionName: repack_make_midx_compaction_plan
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - nth_midxed_pack
    - trace2_data_intmax
    - strbuf_addf
    - trace2_region_enter
    - string_list_init_dup
    - error
    - strbuf_release
    - strbuf_addstr
    - prepare_midx_pack
    - midx_get_checksum_hex
    - memset
    - pack_basename
    - strbuf_strip_suffix
    - string_list_append
    - unsigned_add_overflows
    - _
    - midx_preferred_pack
    - strbuf_reset
    - trace2_region_leave
    - get_multi_pack_index
    - ALLOC_GROW
    - odb_reprepare
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: "int repack_make_midx_compaction_plan(struct repack_write_midx_opts
      *opts,\n\t\t\t\t\t    struct midx_compaction_step **steps_p,\n\t\t\t\t\t    size_t
      *steps_nr_p)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_midx_chain_filename
      Src: /src/git/repack-midx.c:949,1
    - Dst: safe_create_leading_directories
      Src: /src/git/repack-midx.c:950,1
    - Dst: die_errno
      Src: /src/git/repack-midx.c:952,1
    - Dst: _
      Src: /src/git/repack-midx.c:952,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/repack-midx.c:954,1
    - Dst: fdopen_lock_file
      Src: /src/git/repack-midx.c:956,1
    - Dst: error_errno
      Src: /src/git/repack-midx.c:957,1
    - Dst: _
      Src: /src/git/repack-midx.c:957,1
    - Dst: repack_make_midx_compaction_plan
      Src: /src/git/repack-midx.c:962,1
    - Dst: error
      Src: /src/git/repack-midx.c:963,1
    - Dst: _
      Src: /src/git/repack-midx.c:963,1
    - Dst: repack_make_midx_append_plan
      Src: /src/git/repack-midx.c:967,1
    - Dst: xstrdup
      Src: /src/git/repack-midx.c:975,1
    - Dst: midx_compaction_step_base
      Src: /src/git/repack-midx.c:975,1
    - Dst: midx_compaction_step_exec
      Src: /src/git/repack-midx.c:977,1
    - Dst: error
      Src: /src/git/repack-midx.c:978,1
    - Dst: _
      Src: /src/git/repack-midx.c:978,1
    - Dst: free
      Src: /src/git/repack-midx.c:980,1
    - Dst: free
      Src: /src/git/repack-midx.c:984,1
    - Dst: BUG
      Src: /src/git/repack-midx.c:991,1
    - Dst: fprintf
      Src: /src/git/repack-midx.c:993,1
    - Dst: get_lock_file_fp
      Src: /src/git/repack-midx.c:993,1
    - Dst: strvec_push
      Src: /src/git/repack-midx.c:994,1
    - Dst: commit_lock_file
      Src: /src/git/repack-midx.c:997,1
    - Dst: clear_incremental_midx_files
      Src: /src/git/repack-midx.c:999,1
    - Dst: strvec_clear
      Src: /src/git/repack-midx.c:1002,1
    - Dst: strbuf_release
      Src: /src/git/repack-midx.c:1003,1
    - Dst: midx_compaction_step_release
      Src: /src/git/repack-midx.c:1005,1
    - Dst: free
      Src: /src/git/repack-midx.c:1006,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct repack_write_midx_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 939
    functionDepth: 11
    functionLinenumber: 939
    functionLinenumberEnd: 1008
    functionName: write_midx_incremental
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - error_errno
    - hold_lock_file_for_update
    - strvec_push
    - safe_create_leading_directories
    - get_midx_chain_filename
    - midx_compaction_step_exec
    - free
    - error
    - strbuf_release
    - repack_make_midx_compaction_plan
    - commit_lock_file
    - repack_make_midx_append_plan
    - fdopen_lock_file
    - midx_compaction_step_base
    - get_lock_file_fp
    - midx_compaction_step_release
    - die_errno
    - _
    - xstrdup
    - clear_incremental_midx_files
    - strvec_clear
    - BUG
    - fprintf
    linkageType: ''
    returnType: int
    signature: int write_midx_incremental(struct repack_write_midx_opts *opts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repack-midx.c:1014,1
    - Dst: write_midx_included_packs
      Src: /src/git/repack-midx.c:1016,1
    - Dst: write_midx_incremental
      Src: /src/git/repack-midx.c:1018,1
    - Dst: BUG
      Src: /src/git/repack-midx.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct repack_write_midx_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1010
    functionDepth: 12
    functionLinenumber: 1010
    functionLinenumberEnd: 1022
    functionName: repack_write_midx
    functionSourceFile: /src/git/repack-midx.c
    functionUses: 0
    functionsReached:
    - write_midx_incremental
    - BUG
    - write_midx_included_packs
    linkageType: ''
    returnType: int
    signature: int repack_write_midx(struct repack_write_midx_opts *opts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/send-pack.c:30,1
    - Dst: strcasecmp
      Src: /src/git/send-pack.c:38,1
    - Dst: die
      Src: /src/git/send-pack.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: option_parse_push_signed
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - git_parse_maybe_bool
    - die
    linkageType: ''
    returnType: int
    signature: "int option_parse_push_signed(const struct option *opt,\n\t\t\t     const
      char *arg, int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/send-pack.c:48,1
    - Dst: putc
      Src: /src/git/send-pack.c:52,1
    - Dst: fputs
      Src: /src/git/send-pack.c:53,1
    - Dst: oid_to_hex
      Src: /src/git/send-pack.c:53,1
    - Dst: putc
      Src: /src/git/send-pack.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - r
    - oid
    - fh
    - negative
    argTypes:
    - struct repository*
    - struct object_id*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: feed_object
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached:
    - odb_has_object
    - putc
    - fputs
    - oid_to_hex
    linkageType: ''
    returnType: void
    signature: "void feed_object(struct repository *r,\n\t\t\tconst struct object_id
      *oid, FILE *fh, int negative)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/send-pack.c:74,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:75,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:76,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:77,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:78,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:80,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:82,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:84,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:86,1
    - Dst: is_repository_shallow
      Src: /src/git/send-pack.c:87,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:88,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:90,1
    - Dst: start_command
      Src: /src/git/send-pack.c:95,1
    - Dst: die_errno
      Src: /src/git/send-pack.c:96,1
    - Dst: xfdopen
      Src: /src/git/send-pack.c:102,1
    - Dst: feed_object
      Src: /src/git/send-pack.c:104,1
    - Dst: feed_object
      Src: /src/git/send-pack.c:106,1
    - Dst: is_null_oid
      Src: /src/git/send-pack.c:109,1
    - Dst: feed_object
      Src: /src/git/send-pack.c:110,1
    - Dst: is_null_oid
      Src: /src/git/send-pack.c:111,1
    - Dst: feed_object
      Src: /src/git/send-pack.c:112,1
    - Dst: fflush
      Src: /src/git/send-pack.c:116,1
    - Dst: ferror
      Src: /src/git/send-pack.c:117,1
    - Dst: die_errno
      Src: /src/git/send-pack.c:118,1
    - Dst: fclose
      Src: /src/git/send-pack.c:119,1
    - Dst: xmalloc
      Src: /src/git/send-pack.c:122,1
    - Dst: xread
      Src: /src/git/send-pack.c:124,1
    - Dst: send_sideband
      Src: /src/git/send-pack.c:127,1
    - Dst: free
      Src: /src/git/send-pack.c:129,1
    - Dst: close
      Src: /src/git/send-pack.c:130,1
    - Dst: finish_command
      Src: /src/git/send-pack.c:134,1
    - Dst: error
      Src: /src/git/send-pack.c:145,1
    - Dst: trace2_region_leave
      Src: /src/git/send-pack.c:146,1
    - Dst: trace2_region_leave
      Src: /src/git/send-pack.c:149,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 6
    argNames:
    - r
    - fd
    - refs
    - advertised
    - negotiated
    - args
    argTypes:
    - struct repository*
    - int
    - struct ref*
    - struct oid_array*
    - struct oid_array*
    - struct send_pack_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 151
    functionName: pack_objects
    functionSourceFile: /src/git/send-pack.c
    functionUses: 2
    functionsReached:
    - fclose
    - strvec_push
    - trace2_region_enter
    - is_null_oid
    - xmalloc
    - free
    - error
    - feed_object
    - finish_command
    - send_sideband
    - die_errno
    - is_repository_shallow
    - xread
    - fflush
    - xfdopen
    - ferror
    - trace2_region_leave
    - close
    - start_command
    linkageType: ''
    returnType: int
    signature: "int pack_objects(struct repository *r,\n\t\t\tint fd, struct ref *refs,
      struct oid_array *advertised,\n\t\t\tstruct oid_array *negotiated,\n\t\t\tstruct
      send_pack_args *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/send-pack.c:155,1
    - Dst: error
      Src: /src/git/send-pack.c:156,1
    - Dst: _
      Src: /src/git/send-pack.c:156,1
    - Dst: skip_prefix
      Src: /src/git/send-pack.c:157,1
    - Dst: error
      Src: /src/git/send-pack.c:158,1
    - Dst: _
      Src: /src/git/send-pack.c:158,1
    - Dst: strcmp
      Src: /src/git/send-pack.c:159,1
    - Dst: error
      Src: /src/git/send-pack.c:160,1
    - Dst: _
      Src: /src/git/send-pack.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: receive_unpack_status
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached:
    - error
    - strcmp
    - skip_prefix
    - packet_reader_read
    - _
    linkageType: ''
    returnType: int
    signature: int receive_unpack_status(struct packet_reader *reader)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/send-pack.c:173,1
    - Dst: receive_unpack_status
      Src: /src/git/send-pack.c:175,1
    - Dst: packet_reader_read
      Src: /src/git/send-pack.c:181,1
    - Dst: strchr
      Src: /src/git/send-pack.c:184,1
    - Dst: error
      Src: /src/git/send-pack.c:186,1
    - Dst: strcmp
      Src: /src/git/send-pack.c:192,1
    - Dst: error
      Src: /src/git/send-pack.c:198,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/send-pack.c:204,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/send-pack.c:210,1
    - Dst: strchr
      Src: /src/git/send-pack.c:216,1
    - Dst: strcmp
      Src: /src/git/send-pack.c:220,1
    - Dst: xstrdup_or_null
      Src: /src/git/send-pack.c:221,1
    - Dst: strcmp
      Src: /src/git/send-pack.c:222,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/send-pack.c:223,1
    - Dst: oiddup
      Src: /src/git/send-pack.c:224,1
    - Dst: strcmp
      Src: /src/git/send-pack.c:225,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/send-pack.c:226,1
    - Dst: oiddup
      Src: /src/git/send-pack.c:227,1
    - Dst: strcmp
      Src: /src/git/send-pack.c:228,1
    - Dst: strcmp
      Src: /src/git/send-pack.c:235,1
    - Dst: strcmp
      Src: /src/git/send-pack.c:235,1
    - Dst: error
      Src: /src/git/send-pack.c:236,1
    - Dst: strchr
      Src: /src/git/send-pack.c:241,1
    - Dst: find_ref_by_name
      Src: /src/git/send-pack.c:246,1
    - Dst: find_ref_by_name
      Src: /src/git/send-pack.c:248,1
    - Dst: warning
      Src: /src/git/send-pack.c:250,1
    - Dst: warning
      Src: /src/git/send-pack.c:257,1
    - Dst: free
      Src: /src/git/send-pack.c:266,1
    - Dst: strcmp
      Src: /src/git/send-pack.c:268,1
    - Dst: xstrdup
      Src: /src/git/send-pack.c:271,1
    - Dst: xstrdup
      Src: /src/git/send-pack.c:273,1
    - Dst: xstrdup_or_null
      Src: /src/git/send-pack.c:276,1
    - Dst: trace2_region_leave
      Src: /src/git/send-pack.c:280,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 3
    argNames:
    - r
    - reader
    - refs
    argTypes:
    - struct repository*
    - struct packet_reader*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 282
    functionName: receive_status
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached:
    - error
    - oiddup
    - xstrdup_or_null
    - parse_oid_hex_algop
    - CALLOC_ARRAY
    - trace2_region_leave
    - trace2_region_enter
    - strchr
    - free
    - strcmp
    - receive_unpack_status
    - warning
    - find_ref_by_name
    - packet_reader_read
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int receive_status(struct repository *r,\n\t\t\t  struct packet_reader
      *reader, struct ref *refs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_with_fork
      Src: /src/git/send-pack.c:287,1
    - Dst: close
      Src: /src/git/send-pack.c:288,1
    - Dst: recv_sideband
      Src: /src/git/send-pack.c:289,1
    - Dst: close
      Src: /src/git/send-pack.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - UNUSED
    - out
    - data
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: sideband_demux
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached:
    - async_with_fork
    - recv_sideband
    - close
    linkageType: ''
    returnType: int
    signature: int sideband_demux(int in UNUSED, int out, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_buf_write
      Src: /src/git/send-pack.c:298,1
    - Dst: oid_to_hex
      Src: /src/git/send-pack.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - graft
    - cb
    argTypes:
    - struct commit_graft*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: advertise_shallow_grafts_cb
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - packet_buf_write
    linkageType: ''
    returnType: int
    signature: int advertise_shallow_grafts_cb(const struct commit_graft *graft, void
      *cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_repository_shallow
      Src: /src/git/send-pack.c:304,1
    - Dst: for_each_commit_graft
      Src: /src/git/send-pack.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - sb
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: advertise_shallow_grafts_buf
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached:
    - is_repository_shallow
    - for_each_commit_graft
    linkageType: ''
    returnType: void
    signature: void advertise_shallow_grafts_buf(struct repository *r, struct strbuf
      *sb)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ref
    - args
    argTypes:
    - struct ref*
    - struct send_pack_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 337
    functionName: check_to_send_update
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_to_send_update(const struct ref *ref, const struct send_pack_args
      *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/send-pack.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: next_line
    functionSourceFile: /src/git/send-pack.c
    functionUses: 5
    functionsReached:
    - memchr
    linkageType: ''
    returnType: char
    signature: char *next_line(const char *line, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_signing_key_id
      Src: /src/git/send-pack.c:361,1
    - Dst: get_signing_key
      Src: /src/git/send-pack.c:362,1
    - Dst: strbuf_addstr
      Src: /src/git/send-pack.c:367,1
    - Dst: strbuf_addf
      Src: /src/git/send-pack.c:368,1
    - Dst: datestamp
      Src: /src/git/send-pack.c:369,1
    - Dst: strbuf_addch
      Src: /src/git/send-pack.c:370,1
    - Dst: transport_anonymize_url
      Src: /src/git/send-pack.c:372,1
    - Dst: strbuf_addf
      Src: /src/git/send-pack.c:373,1
    - Dst: free
      Src: /src/git/send-pack.c:374,1
    - Dst: strbuf_addf
      Src: /src/git/send-pack.c:377,1
    - Dst: for_each_string_list_item
      Src: /src/git/send-pack.c:379,1
    - Dst: strbuf_addf
      Src: /src/git/send-pack.c:380,1
    - Dst: strbuf_addstr
      Src: /src/git/send-pack.c:381,1
    - Dst: check_to_send_update
      Src: /src/git/send-pack.c:384,1
    - Dst: strbuf_addf
      Src: /src/git/send-pack.c:387,1
    - Dst: oid_to_hex
      Src: /src/git/send-pack.c:388,1
    - Dst: oid_to_hex
      Src: /src/git/send-pack.c:389,1
    - Dst: sign_buffer
      Src: /src/git/send-pack.c:395,1
    - Dst: die
      Src: /src/git/send-pack.c:396,1
    - Dst: _
      Src: /src/git/send-pack.c:396,1
    - Dst: packet_buf_write
      Src: /src/git/send-pack.c:398,1
    - Dst: next_line
      Src: /src/git/send-pack.c:400,1
    - Dst: packet_buf_write
      Src: /src/git/send-pack.c:401,1
    - Dst: packet_buf_write
      Src: /src/git/send-pack.c:404,1
    - Dst: free
      Src: /src/git/send-pack.c:407,1
    - Dst: free
      Src: /src/git/send-pack.c:408,1
    - Dst: strbuf_release
      Src: /src/git/send-pack.c:409,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 5
    argNames:
    - req_buf
    - remote_refs
    - args
    - cap_string
    - push_cert_nonce
    argTypes:
    - struct strbuf*
    - struct ref*
    - struct send_pack_args*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 353
    functionDepth: 10
    functionLinenumber: 353
    functionLinenumberEnd: 411
    functionName: generate_push_cert
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached:
    - sign_buffer
    - for_each_string_list_item
    - transport_anonymize_url
    - oid_to_hex
    - get_signing_key
    - die
    - strbuf_release
    - packet_buf_write
    - datestamp
    - strbuf_addf
    - get_signing_key_id
    - strbuf_addch
    - check_to_send_update
    - strbuf_addstr
    - free
    - next_line
    - _
    linkageType: ''
    returnType: int
    signature: "int generate_push_cert(struct strbuf *req_buf,\n\t\t\t      const
      struct ref *remote_refs,\n\t\t\t      struct send_pack_args *args,\n\t\t\t      const
      char *cap_string,\n\t\t\t      const char *push_cert_nonce)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/send-pack.c:420,1
    - Dst: isalnum
      Src: /src/git/send-pack.c:425,1
    - Dst: die
      Src: /src/git/send-pack.c:430,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 433
    functionName: reject_invalid_nonce
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached:
    - isalnum
    - die
    linkageType: ''
    returnType: void
    signature: void reject_invalid_nonce(const char *nonce, int len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/send-pack.c:450,1
    - Dst: for_each_string_list_item
      Src: /src/git/send-pack.c:454,1
    - Dst: strvec_pushf
      Src: /src/git/send-pack.c:455,1
    - Dst: is_null_oid
      Src: /src/git/send-pack.c:460,1
    - Dst: strvec_pushf
      Src: /src/git/send-pack.c:461,1
    - Dst: oid_to_hex
      Src: /src/git/send-pack.c:462,1
    - Dst: for_each_string_list_item
      Src: /src/git/send-pack.c:470,1
    - Dst: strvec_pushf
      Src: /src/git/send-pack.c:471,1
    - Dst: strvec_push
      Src: /src/git/send-pack.c:476,1
    - Dst: child_process_clear
      Src: /src/git/send-pack.c:479,1
    - Dst: start_command
      Src: /src/git/send-pack.c:483,1
    - Dst: die
      Src: /src/git/send-pack.c:484,1
    - Dst: _
      Src: /src/git/send-pack.c:484,1
    - Dst: read_in_full
      Src: /src/git/send-pack.c:488,1
    - Dst: die
      Src: /src/git/send-pack.c:495,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/send-pack.c:496,1
    - Dst: die
      Src: /src/git/send-pack.c:497,1
    - Dst: oid_array_append
      Src: /src/git/send-pack.c:498,1
    - Dst: finish_command
      Src: /src/git/send-pack.c:501,1
    - Dst: warning
      Src: /src/git/send-pack.c:506,1
    - Dst: _
      Src: /src/git/send-pack.c:506,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 6
    argNames:
    - r
    - url
    - negotiation_include
    - negotiation_restrict
    - remote_refs
    - commons
    argTypes:
    - struct repository*
    - char*
    - struct string_list*
    - struct string_list*
    - struct ref*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 435
    functionDepth: 7
    functionLinenumber: 435
    functionLinenumberEnd: 508
    functionName: get_commons_through_negotiation
    functionSourceFile: /src/git/send-pack.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - strvec_push
    - oid_to_hex
    - die
    - finish_command
    - parse_oid_hex_algop
    - strvec_pushl
    - child_process_clear
    - is_null_oid
    - read_in_full
    - _
    - warning
    - oid_array_append
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: void
    signature: "void get_commons_through_negotiation(struct repository *r,\n\t\t\t\t\t
      \   const char *url,\n\t\t\t\t\t    const struct string_list *negotiation_include,\n\t\t\t\t\t
      \   const struct string_list *negotiation_restrict,\n\t\t\t\t\t    const struct
      ref *remote_refs,\n\t\t\t\t\t    struct oid_array *commons)"
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/send-pack.c:543,1
    - Dst: repo_config_get_bool
      Src: /src/git/send-pack.c:549,1
    - Dst: trace2_region_enter
      Src: /src/git/send-pack.c:551,1
    - Dst: get_commons_through_negotiation
      Src: /src/git/send-pack.c:552,1
    - Dst: trace2_region_leave
      Src: /src/git/send-pack.c:556,1
    - Dst: repo_config_get_bool
      Src: /src/git/send-pack.c:559,1
    - Dst: repo_config_get_bool
      Src: /src/git/send-pack.c:562,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:565,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:567,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:569,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:571,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:573,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:575,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:577,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:579,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:581,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:583,1
    - Dst: server_supports
      Src: /src/git/send-pack.c:585,1
    - Dst: server_supports_hash
      Src: /src/git/send-pack.c:588,1
    - Dst: die
      Src: /src/git/send-pack.c:589,1
    - Dst: _
      Src: /src/git/send-pack.c:589,1
    - Dst: server_feature_value
      Src: /src/git/send-pack.c:593,1
    - Dst: reject_invalid_nonce
      Src: /src/git/send-pack.c:596,1
    - Dst: xmemdupz
      Src: /src/git/send-pack.c:597,1
    - Dst: die
      Src: /src/git/send-pack.c:599,1
    - Dst: _
      Src: /src/git/send-pack.c:599,1
    - Dst: warning
      Src: /src/git/send-pack.c:601,1
    - Dst: _
      Src: /src/git/send-pack.c:601,1
    - Dst: die
      Src: /src/git/send-pack.c:608,1
    - Dst: _
      Src: /src/git/send-pack.c:608,1
    - Dst: die
      Src: /src/git/send-pack.c:613,1
    - Dst: _
      Src: /src/git/send-pack.c:613,1
    - Dst: strbuf_addstr
      Src: /src/git/send-pack.c:618,1
    - Dst: strbuf_addstr
      Src: /src/git/send-pack.c:620,1
    - Dst: strbuf_addstr
      Src: /src/git/send-pack.c:622,1
    - Dst: strbuf_addstr
      Src: /src/git/send-pack.c:624,1
    - Dst: strbuf_addstr
      Src: /src/git/send-pack.c:626,1
    - Dst: strbuf_addstr
      Src: /src/git/send-pack.c:628,1
    - Dst: strbuf_addf
      Src: /src/git/send-pack.c:630,1
    - Dst: strbuf_addf
      Src: /src/git/send-pack.c:632,1
    - Dst: git_user_agent_sanitized
      Src: /src/git/send-pack.c:632,1
    - Dst: strbuf_addf
      Src: /src/git/send-pack.c:634,1
    - Dst: trace2_session_id
      Src: /src/git/send-pack.c:634,1
    - Dst: check_to_send_update
      Src: /src/git/send-pack.c:650,1
    - Dst: reject_atomic_push
      Src: /src/git/send-pack.c:660,1
    - Dst: error
      Src: /src/git/send-pack.c:661,1
    - Dst: packet_flush
      Src: /src/git/send-pack.c:664,1
    - Dst: advertise_shallow_grafts_buf
      Src: /src/git/send-pack.c:681,1
    - Dst: generate_push_cert
      Src: /src/git/send-pack.c:687,1
    - Dst: trace2_printf
      Src: /src/git/send-pack.c:689,1
    - Dst: check_to_send_update
      Src: /src/git/send-pack.c:694,1
    - Dst: oid_to_hex
      Src: /src/git/send-pack.c:697,1
    - Dst: oid_to_hex
      Src: /src/git/send-pack.c:698,1
    - Dst: packet_buf_write
      Src: /src/git/send-pack.c:700,1
    - Dst: packet_buf_write
      Src: /src/git/send-pack.c:706,1
    - Dst: packet_buf_flush
      Src: /src/git/send-pack.c:715,1
    - Dst: for_each_string_list_item
      Src: /src/git/send-pack.c:716,1
    - Dst: packet_buf_write
      Src: /src/git/send-pack.c:717,1
    - Dst: is_repository_shallow
      Src: /src/git/send-pack.c:721,1
    - Dst: packet_buf_flush
      Src: /src/git/send-pack.c:722,1
    - Dst: send_sideband
      Src: /src/git/send-pack.c:723,1
    - Dst: write_or_die
      Src: /src/git/send-pack.c:726,1
    - Dst: packet_flush
      Src: /src/git/send-pack.c:727,1
    - Dst: memset
      Src: /src/git/send-pack.c:731,1
    - Dst: start_async
      Src: /src/git/send-pack.c:736,1
    - Dst: die
      Src: /src/git/send-pack.c:737,1
    - Dst: packet_reader_init
      Src: /src/git/send-pack.c:741,1
    - Dst: pack_objects
      Src: /src/git/send-pack.c:746,1
    - Dst: close
      Src: /src/git/send-pack.c:748,1
    - Dst: git_connection_is_socket
      Src: /src/git/send-pack.c:749,1
    - Dst: shutdown
      Src: /src/git/send-pack.c:750,1
    - Dst: receive_status
      Src: /src/git/send-pack.c:759,1
    - Dst: close
      Src: /src/git/send-pack.c:762,1
    - Dst: finish_async
      Src: /src/git/send-pack.c:763,1
    - Dst: packet_flush
      Src: /src/git/send-pack.c:775,1
    - Dst: receive_status
      Src: /src/git/send-pack.c:778,1
    - Dst: packet_flush
      Src: /src/git/send-pack.c:782,1
    - Dst: close
      Src: /src/git/send-pack.c:785,1
    - Dst: finish_async
      Src: /src/git/send-pack.c:786,1
    - Dst: error
      Src: /src/git/send-pack.c:787,1
    - Dst: oid_array_clear
      Src: /src/git/send-pack.c:810,1
    - Dst: strbuf_release
      Src: /src/git/send-pack.c:811,1
    - Dst: strbuf_release
      Src: /src/git/send-pack.c:812,1
    - Dst: free
      Src: /src/git/send-pack.c:813,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 203
    argCount: 6
    argNames:
    - r
    - args
    - fd
    - conn
    - remote_refs
    - extra_have
    argTypes:
    - struct repository*
    - struct send_pack_args*
    - int[]
    - struct child_process*
    - struct ref*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 510
    functionDepth: 11
    functionLinenumber: 510
    functionLinenumberEnd: 815
    functionName: send_pack
    functionSourceFile: /src/git/send-pack.c
    functionUses: 1
    functionsReached:
    - xmemdupz
    - for_each_string_list_item
    - strbuf_addf
    - trace2_region_enter
    - trace2_session_id
    - packet_flush
    - receive_status
    - free
    - error
    - write_or_die
    - reject_atomic_push
    - strbuf_release
    - die
    - server_feature_value
    - pack_objects
    - packet_buf_flush
    - oid_array_clear
    - finish_async
    - strbuf_addstr
    - server_supports_hash
    - reject_invalid_nonce
    - memset
    - oid_to_hex
    - shutdown
    - send_sideband
    - check_to_send_update
    - get_commons_through_negotiation
    - is_repository_shallow
    - git_user_agent_sanitized
    - _
    - trace2_printf
    - git_connection_is_socket
    - warning
    - server_supports
    - advertise_shallow_grafts_buf
    - generate_push_cert
    - packet_buf_write
    - trace2_region_leave
    - packet_reader_init
    - repo_config_get_bool
    - close
    - start_async
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int send_pack(struct repository *r,\n\t      struct send_pack_args
      *args,\n\t      int fd[], struct child_process *conn,\n\t      struct ref *remote_refs,\n\t
      \     struct oid_array *extra_have)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/environment.c:130,1
    - Dst: strvec_push
      Src: /src/git/environment.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argv
    - name
    argTypes:
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: getenv_safe
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached:
    - getenv
    - strvec_push
    linkageType: ''
    returnType: char
    signature: char *getenv_safe(struct strvec *argv, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_work_tree
      Src: /src/git/environment.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: is_bare_repository
    functionSourceFile: /src/git/environment.c
    functionUses: 1
    functionsReached:
    - repo_get_work_tree
    linkageType: ''
    returnType: int
    signature: int is_bare_repository(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: have_git_dir
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int have_git_dir(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/environment.c:162,1
    - Dst: strbuf_addstr
      Src: /src/git/environment.c:168,1
    - Dst: string_list_split
      Src: /src/git/environment.c:170,1
    - Dst: strbuf_reset
      Src: /src/git/environment.c:171,1
    - Dst: for_each_string_list_item
      Src: /src/git/environment.c:173,1
    - Dst: strbuf_addf
      Src: /src/git/environment.c:175,1
    - Dst: string_list_clear
      Src: /src/git/environment.c:177,1
    - Dst: strbuf_trim_trailing_dir_sep
      Src: /src/git/environment.c:179,1
    - Dst: check_refname_format
      Src: /src/git/environment.c:180,1
    - Dst: die
      Src: /src/git/environment.c:181,1
    - Dst: _
      Src: /src/git/environment.c:181,1
    - Dst: strbuf_addch
      Src: /src/git/environment.c:182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 187
    functionName: get_git_namespace
    functionSourceFile: /src/git/environment.c
    functionUses: 3
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - die
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - string_list_split
    - strbuf_addstr
    - strbuf_trim_trailing_dir_sep
    - check_refname_format
    - getenv
    - _
    linkageType: ''
    returnType: char
    signature: char *get_git_namespace(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/environment.c:192,1
    - Dst: get_git_namespace
      Src: /src/git/environment.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - namespaced_ref
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: strip_namespace
    functionSourceFile: /src/git/environment.c
    functionUses: 4
    functionsReached:
    - skip_prefix
    - get_git_namespace
    linkageType: ''
    returnType: char
    signature: char *strip_namespace(const char *namespaced_ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_output_encoding
      Src: /src/git/environment.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: get_log_output_encoding
    functionSourceFile: /src/git/environment.c
    functionUses: 3
    functionsReached:
    - get_commit_output_encoding
    linkageType: ''
    returnType: char
    signature: char *get_log_output_encoding(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: get_commit_output_encoding
    functionSourceFile: /src/git/environment.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_commit_output_encoding(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/environment.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: use_optional_locks
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    linkageType: ''
    returnType: int
    signature: int use_optional_locks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/environment.c:222,1
    - Dst: strcasecmp
      Src: /src/git/environment.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: print_sha1_ellipsis
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached:
    - getenv
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int print_sha1_ellipsis(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/git/environment.c:256,1
    - Dst: strchrnul
      Src: /src/git/environment.c:257,1
    - Dst: strcmp
      Src: /src/git/environment.c:259,1
    - Dst: warning
      Src: /src/git/environment.c:269,1
    - Dst: _
      Src: /src/git/environment.c:269,1
    - Dst: ARRAY_SIZE
      Src: /src/git/environment.c:275,1
    - Dst: strncmp
      Src: /src/git/environment.c:278,1
    - Dst: xstrndup
      Src: /src/git/environment.c:289,1
    - Dst: warning
      Src: /src/git/environment.c:290,1
    - Dst: _
      Src: /src/git/environment.c:290,1
    - Dst: free
      Src: /src/git/environment.c:291,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - var
    - string
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 299
    functionName: parse_fsync_components
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - xstrndup
    - strspn
    - strcmp
    - warning
    - _
    - free
    - strncmp
    - strchrnul
    linkageType: ''
    returnType: enum fsync_component
    signature: enum fsync_component parse_fsync_components(const char *var, const
      char *string)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/environment.c:304,1
    - Dst: strcmp
      Src: /src/git/environment.c:307,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:308,1
    - Dst: strcmp
      Src: /src/git/environment.c:311,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:312,1
    - Dst: strcmp
      Src: /src/git/environment.c:315,1
    - Dst: config_error_nonbool
      Src: /src/git/environment.c:317,1
    - Dst: strcasecmp
      Src: /src/git/environment.c:318,1
    - Dst: strcasecmp
      Src: /src/git/environment.c:320,1
    - Dst: error
      Src: /src/git/environment.c:323,1
    - Dst: _
      Src: /src/git/environment.c:323,1
    - Dst: strcmp
      Src: /src/git/environment.c:327,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:328,1
    - Dst: strcmp
      Src: /src/git/environment.c:332,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:333,1
    - Dst: strcmp
      Src: /src/git/environment.c:337,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:338,1
    - Dst: strcmp
      Src: /src/git/environment.c:342,1
    - Dst: FREE_AND_NULL
      Src: /src/git/environment.c:343,1
    - Dst: git_config_pathname
      Src: /src/git/environment.c:344,1
    - Dst: strcmp
      Src: /src/git/environment.c:347,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:348,1
    - Dst: strcmp
      Src: /src/git/environment.c:352,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:353,1
    - Dst: strcmp
      Src: /src/git/environment.c:357,1
    - Dst: config_error_nonbool
      Src: /src/git/environment.c:359,1
    - Dst: strcasecmp
      Src: /src/git/environment.c:360,1
    - Dst: git_parse_maybe_bool_text
      Src: /src/git/environment.c:362,1
    - Dst: git_config_int
      Src: /src/git/environment.c:365,1
    - Dst: error
      Src: /src/git/environment.c:367,1
    - Dst: _
      Src: /src/git/environment.c:367,1
    - Dst: strcmp
      Src: /src/git/environment.c:373,1
    - Dst: set_disambiguate_hint_config
      Src: /src/git/environment.c:374,1
    - Dst: strcmp
      Src: /src/git/environment.c:376,1
    - Dst: git_config_int
      Src: /src/git/environment.c:377,1
    - Dst: die
      Src: /src/git/environment.c:381,1
    - Dst: _
      Src: /src/git/environment.c:381,1
    - Dst: strcmp
      Src: /src/git/environment.c:387,1
    - Dst: git_config_int
      Src: /src/git/environment.c:388,1
    - Dst: die
      Src: /src/git/environment.c:392,1
    - Dst: _
      Src: /src/git/environment.c:392,1
    - Dst: strcmp
      Src: /src/git/environment.c:400,1
    - Dst: strcasecmp
      Src: /src/git/environment.c:401,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:405,1
    - Dst: strcmp
      Src: /src/git/environment.c:409,1
    - Dst: strcasecmp
      Src: /src/git/environment.c:411,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:415,1
    - Dst: strcmp
      Src: /src/git/environment.c:421,1
    - Dst: strcasecmp
      Src: /src/git/environment.c:422,1
    - Dst: strcasecmp
      Src: /src/git/environment.c:424,1
    - Dst: strcasecmp
      Src: /src/git/environment.c:426,1
    - Dst: strcmp
      Src: /src/git/environment.c:433,1
    - Dst: FREE_AND_NULL
      Src: /src/git/environment.c:434,1
    - Dst: git_config_string
      Src: /src/git/environment.c:435,1
    - Dst: strcmp
      Src: /src/git/environment.c:438,1
    - Dst: FREE_AND_NULL
      Src: /src/git/environment.c:439,1
    - Dst: git_config_string
      Src: /src/git/environment.c:440,1
    - Dst: strcmp
      Src: /src/git/environment.c:443,1
    - Dst: strcmp
      Src: /src/git/environment.c:444,1
    - Dst: config_error_nonbool
      Src: /src/git/environment.c:446,1
    - Dst: strcasecmp
      Src: /src/git/environment.c:448,1
    - Dst: FREE_AND_NULL
      Src: /src/git/environment.c:450,1
    - Dst: strchr
      Src: /src/git/environment.c:454,1
    - Dst: error
      Src: /src/git/environment.c:455,1
    - Dst: _
      Src: /src/git/environment.c:455,1
    - Dst: FREE_AND_NULL
      Src: /src/git/environment.c:457,1
    - Dst: error
      Src: /src/git/environment.c:462,1
    - Dst: _
      Src: /src/git/environment.c:462,1
    - Dst: strcmp
      Src: /src/git/environment.c:466,1
    - Dst: FREE_AND_NULL
      Src: /src/git/environment.c:467,1
    - Dst: git_config_string
      Src: /src/git/environment.c:468,1
    - Dst: strcmp
      Src: /src/git/environment.c:471,1
    - Dst: FREE_AND_NULL
      Src: /src/git/environment.c:472,1
    - Dst: git_config_pathname
      Src: /src/git/environment.c:473,1
    - Dst: strcmp
      Src: /src/git/environment.c:476,1
    - Dst: config_error_nonbool
      Src: /src/git/environment.c:478,1
    - Dst: parse_whitespace_rule
      Src: /src/git/environment.c:479,1
    - Dst: strcmp
      Src: /src/git/environment.c:483,1
    - Dst: config_error_nonbool
      Src: /src/git/environment.c:485,1
    - Dst: parse_fsync_components
      Src: /src/git/environment.c:486,1
    - Dst: strcmp
      Src: /src/git/environment.c:490,1
    - Dst: config_error_nonbool
      Src: /src/git/environment.c:492,1
    - Dst: strcmp
      Src: /src/git/environment.c:493,1
    - Dst: strcmp
      Src: /src/git/environment.c:495,1
    - Dst: strcmp
      Src: /src/git/environment.c:497,1
    - Dst: warning
      Src: /src/git/environment.c:500,1
    - Dst: _
      Src: /src/git/environment.c:500,1
    - Dst: strcmp
      Src: /src/git/environment.c:504,1
    - Dst: warning
      Src: /src/git/environment.c:506,1
    - Dst: _
      Src: /src/git/environment.c:506,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:507,1
    - Dst: strcmp
      Src: /src/git/environment.c:511,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:512,1
    - Dst: strcmp
      Src: /src/git/environment.c:516,1
    - Dst: config_error_nonbool
      Src: /src/git/environment.c:518,1
    - Dst: strcmp
      Src: /src/git/environment.c:519,1
    - Dst: strcmp
      Src: /src/git/environment.c:521,1
    - Dst: die
      Src: /src/git/environment.c:524,1
    - Dst: _
      Src: /src/git/environment.c:524,1
    - Dst: strcmp
      Src: /src/git/environment.c:528,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:529,1
    - Dst: strcmp
      Src: /src/git/environment.c:533,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:534,1
    - Dst: strcmp
      Src: /src/git/environment.c:538,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:539,1
    - Dst: strcmp
      Src: /src/git/environment.c:543,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:544,1
    - Dst: strcmp
      Src: /src/git/environment.c:548,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:549,1
    - Dst: platform_core_config
      Src: /src/git/environment.c:554,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 203
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 555
    functionName: git_default_core_config
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - strchr
    - parse_whitespace_rule
    - strcmp
    - error
    - die
    - parse_fsync_components
    - repo_config_values
    - git_parse_maybe_bool_text
    - git_config_pathname
    - git_config_int
    - git_config_string
    - _
    - git_config_bool
    - warning
    - FREE_AND_NULL
    - platform_core_config
    - set_disambiguate_hint_config
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_default_core_config(const char *var, const char *value,\n\t\t\t
      \   const struct config_context *ctx, void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/environment.c:559,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 566
    functionName: git_default_sparse_config
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: int git_default_sparse_config(const char *var, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/environment.c:570,1
    - Dst: FREE_AND_NULL
      Src: /src/git/environment.c:571,1
    - Dst: git_config_string
      Src: /src/git/environment.c:572,1
    - Dst: strcmp
      Src: /src/git/environment.c:575,1
    - Dst: FREE_AND_NULL
      Src: /src/git/environment.c:576,1
    - Dst: git_config_string
      Src: /src/git/environment.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 582
    functionName: git_default_i18n_config
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - git_config_string
    - strcmp
    linkageType: ''
    returnType: int
    signature: int git_default_i18n_config(const char *var, const char *value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/environment.c:586,1
    - Dst: strcmp
      Src: /src/git/environment.c:588,1
    - Dst: strcmp
      Src: /src/git/environment.c:589,1
    - Dst: strcmp
      Src: /src/git/environment.c:592,1
    - Dst: strcmp
      Src: /src/git/environment.c:595,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:599,1
    - Dst: strcmp
      Src: /src/git/environment.c:602,1
    - Dst: config_error_nonbool
      Src: /src/git/environment.c:604,1
    - Dst: strcmp
      Src: /src/git/environment.c:605,1
    - Dst: strcmp
      Src: /src/git/environment.c:607,1
    - Dst: strcmp
      Src: /src/git/environment.c:609,1
    - Dst: strcmp
      Src: /src/git/environment.c:611,1
    - Dst: error
      Src: /src/git/environment.c:614,1
    - Dst: _
      Src: /src/git/environment.c:614,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 620
    functionName: git_default_branch_config
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - strcmp
    - git_config_bool
    - repo_config_values
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: int git_default_branch_config(const char *var, const char *value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/environment.c:624,1
    - Dst: config_error_nonbool
      Src: /src/git/environment.c:626,1
    - Dst: strcmp
      Src: /src/git/environment.c:627,1
    - Dst: strcmp
      Src: /src/git/environment.c:629,1
    - Dst: strcmp
      Src: /src/git/environment.c:631,1
    - Dst: strcmp
      Src: /src/git/environment.c:633,1
    - Dst: strcmp
      Src: /src/git/environment.c:635,1
    - Dst: strcmp
      Src: /src/git/environment.c:637,1
    - Dst: error
      Src: /src/git/environment.c:640,1
    - Dst: _
      Src: /src/git/environment.c:640,1
    - Dst: error
      Src: /src/git/environment.c:641,1
    - Dst: _
      Src: /src/git/environment.c:641,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 649
    functionName: git_default_push_config
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - config_error_nonbool
    - strcmp
    linkageType: ''
    returnType: int
    signature: int git_default_push_config(const char *var, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/environment.c:653,1
    - Dst: FREE_AND_NULL
      Src: /src/git/environment.c:654,1
    - Dst: git_config_string
      Src: /src/git/environment.c:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 663
    functionName: git_default_attr_config
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - git_config_string
    - strcmp
    linkageType: ''
    returnType: int
    signature: int git_default_attr_config(const char *var, const char *value)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/environment.c:668,1
    - Dst: git_default_core_config
      Src: /src/git/environment.c:669,1
    - Dst: starts_with
      Src: /src/git/environment.c:671,1
    - Dst: starts_with
      Src: /src/git/environment.c:672,1
    - Dst: starts_with
      Src: /src/git/environment.c:673,1
    - Dst: git_ident_config
      Src: /src/git/environment.c:674,1
    - Dst: starts_with
      Src: /src/git/environment.c:676,1
    - Dst: git_default_i18n_config
      Src: /src/git/environment.c:677,1
    - Dst: starts_with
      Src: /src/git/environment.c:679,1
    - Dst: git_default_branch_config
      Src: /src/git/environment.c:680,1
    - Dst: starts_with
      Src: /src/git/environment.c:682,1
    - Dst: git_default_push_config
      Src: /src/git/environment.c:683,1
    - Dst: starts_with
      Src: /src/git/environment.c:685,1
    - Dst: git_default_attr_config
      Src: /src/git/environment.c:686,1
    - Dst: starts_with
      Src: /src/git/environment.c:688,1
    - Dst: starts_with
      Src: /src/git/environment.c:688,1
    - Dst: git_default_advice_config
      Src: /src/git/environment.c:689,1
    - Dst: strcmp
      Src: /src/git/environment.c:691,1
    - Dst: strcmp
      Src: /src/git/environment.c:691,1
    - Dst: git_config_bool
      Src: /src/git/environment.c:692,1
    - Dst: strcmp
      Src: /src/git/environment.c:696,1
    - Dst: git_config_ulong
      Src: /src/git/environment.c:697,1
    - Dst: strcmp
      Src: /src/git/environment.c:701,1
    - Dst: git_config_int
      Src: /src/git/environment.c:702,1
    - Dst: die
      Src: /src/git/environment.c:706,1
    - Dst: _
      Src: /src/git/environment.c:706,1
    - Dst: starts_with
      Src: /src/git/environment.c:712,1
    - Dst: git_default_sparse_config
      Src: /src/git/environment.c:713,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 717
    functionName: git_default_config
    functionSourceFile: /src/git/environment.c
    functionUses: 1
    functionsReached:
    - git_default_branch_config
    - git_default_i18n_config
    - git_config_int
    - git_default_sparse_config
    - git_config_ulong
    - git_ident_config
    - git_config_bool
    - die
    - starts_with
    - git_default_attr_config
    - git_default_advice_config
    - strcmp
    - git_default_core_config
    - _
    - git_default_push_config
    linkageType: ''
    returnType: int
    signature: "int git_default_config(const char *var, const char *value,\n\t\t       const
      struct config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct repo_config_values*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 724
    functionName: repo_config_values_init
    functionSourceFile: /src/git/environment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_config_values_init(struct repo_config_values *cfg)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - str
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: starts_with
    functionSourceFile: /src/git/strbuf.c
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool starts_with(const char *str, const char *prefix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/git/strbuf.c:25,1
    - Dst: tolower
      Src: /src/git/strbuf.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - str
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: istarts_with
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: bool
    signature: bool istarts_with(const char *str, const char *prefix)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - str
    - len
    - prefix
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: starts_with_mem
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool starts_with_mem(const char *str, size_t len, const char *prefix)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/strbuf.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - str
    - prefix
    - arg
    - def
    argTypes:
    - char*
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 60
    functionName: skip_to_optional_arg_default
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: bool
    signature: "bool skip_to_optional_arg_default(const char *str, const char *prefix,\n\t\t\t\t
      const char **arg, const char *def)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/strbuf.c:72,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sb
    - hint
    argTypes:
    - struct strbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: strbuf_init
    functionSourceFile: /src/git/strbuf.c
    functionUses: 27
    functionsReached:
    - strbuf_grow
    - memcpy
    linkageType: ''
    returnType: void
    signature: void strbuf_init(struct strbuf *sb, size_t hint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/strbuf.c:80,1
    - Dst: strbuf_init
      Src: /src/git/strbuf.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: strbuf_release
    functionSourceFile: /src/git/strbuf.c
    functionUses: 202
    functionsReached:
    - strbuf_init
    - free
    linkageType: ''
    returnType: void
    signature: void strbuf_release(struct strbuf *sb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:88,1
    - Dst: strbuf_init
      Src: /src/git/strbuf.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sb
    - sz
    argTypes:
    - struct strbuf*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: strbuf_detach
    functionSourceFile: /src/git/strbuf.c
    functionUses: 38
    functionsReached:
    - strbuf_init
    - strbuf_grow
    linkageType: ''
    returnType: char
    signature: char *strbuf_detach(struct strbuf *sb, size_t *sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:98,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - sb
    - buf
    - len
    - alloc
    argTypes:
    - struct strbuf*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: strbuf_attach
    functionSourceFile: /src/git/strbuf.c
    functionUses: 10
    functionsReached:
    - strbuf_release
    - strbuf_grow
    linkageType: ''
    returnType: void
    signature: void strbuf_attach(struct strbuf *sb, void *buf, size_t len, size_t
      alloc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: st_add3
      Src: /src/git/strbuf.c:109,1
    - Dst: ALLOC_GROW
      Src: /src/git/strbuf.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sb
    - extra
    argTypes:
    - struct strbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: strbuf_grow
    functionSourceFile: /src/git/strbuf.c
    functionUses: 21
    functionsReached:
    - ALLOC_GROW
    - st_add3
    linkageType: ''
    returnType: void
    signature: void strbuf_grow(struct strbuf *sb, size_t extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_rtrim
      Src: /src/git/strbuf.c:119,1
    - Dst: strbuf_ltrim
      Src: /src/git/strbuf.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: strbuf_trim
    functionSourceFile: /src/git/strbuf.c
    functionUses: 6
    functionsReached:
    - strbuf_ltrim
    - strbuf_rtrim
    linkageType: ''
    returnType: void
    signature: void strbuf_trim(struct strbuf *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/strbuf.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: strbuf_rtrim
    functionSourceFile: /src/git/strbuf.c
    functionUses: 5
    functionsReached:
    - isspace
    linkageType: ''
    returnType: void
    signature: void strbuf_rtrim(struct strbuf *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/strbuf.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: strbuf_trim_trailing_dir_sep
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - is_dir_sep
    linkageType: ''
    returnType: void
    signature: void strbuf_trim_trailing_dir_sep(struct strbuf *sb)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: strbuf_trim_trailing_newline
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strbuf_trim_trailing_newline(struct strbuf *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/strbuf.c:149,1
    - Dst: memmove
      Src: /src/git/strbuf.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: strbuf_ltrim
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - isspace
    - memmove
    linkageType: ''
    returnType: void
    signature: void strbuf_ltrim(struct strbuf *sb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: same_encoding
      Src: /src/git/strbuf.c:162,1
    - Dst: reencode_string_len
      Src: /src/git/strbuf.c:165,1
    - Dst: strbuf_attach
      Src: /src/git/strbuf.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sb
    - from
    - to
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 171
    functionName: strbuf_reencode
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - reencode_string_len
    - same_encoding
    - strbuf_attach
    linkageType: ''
    returnType: int
    signature: int strbuf_reencode(struct strbuf *sb, const char *from, const char
      *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/git/strbuf.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: strbuf_tolower
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: void
    signature: void strbuf_tolower(struct strbuf *sb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/strbuf.c:190,1
    - Dst: xmalloc
      Src: /src/git/strbuf.c:194,1
    - Dst: strbuf_init
      Src: /src/git/strbuf.c:195,1
    - Dst: strbuf_add
      Src: /src/git/strbuf.c:196,1
    - Dst: ALLOC_GROW
      Src: /src/git/strbuf.c:197,1
    - Dst: ALLOC_GROW
      Src: /src/git/strbuf.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 205
    functionName: strbuf_split_buf
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - memchr
    - xmalloc
    - ALLOC_GROW
    - strbuf_init
    - strbuf_add
    linkageType: ''
    returnType: struct strbuf
    signature: "struct strbuf **strbuf_split_buf(const char *str, size_t slen,\n\t\t\t\t
      int terminator, int max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:216,1
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - str
    - sep
    - slist
    argTypes:
    - struct strbuf*
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: strbuf_add_separated_string_list
    functionSourceFile: /src/git/strbuf.c
    functionUses: 2
    functionsReached:
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void strbuf_add_separated_string_list(struct strbuf *str,\n\t\t\t\t
      \     const char *sep,\n\t\t\t\t      struct string_list *slist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:216,1
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/strbuf.c
    functionUses: 18
    functionsReached:
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, slist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:229,1
    - Dst: free
      Src: /src/git/strbuf.c:230,1
    - Dst: free
      Src: /src/git/strbuf.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sbs
    argTypes:
    - struct strbuf**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: strbuf_list_free
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void strbuf_list_free(struct strbuf **sbs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/strbuf.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: strbuf_cmp
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int strbuf_cmp(const struct strbuf *a, const struct strbuf *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_add_overflows
      Src: /src/git/strbuf.c:247,1
    - Dst: die
      Src: /src/git/strbuf.c:248,1
    - Dst: die
      Src: /src/git/strbuf.c:250,1
    - Dst: die
      Src: /src/git/strbuf.c:252,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:255,1
    - Dst: memmove
      Src: /src/git/strbuf.c:256,1
    - Dst: memcpy
      Src: /src/git/strbuf.c:259,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - sb
    - pos
    - len
    - data
    - dlen
    argTypes:
    - struct strbuf*
    - size_t
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: strbuf_splice
    functionSourceFile: /src/git/strbuf.c
    functionUses: 5
    functionsReached:
    - die
    - strbuf_setlen
    - memcpy
    - strbuf_grow
    - unsigned_add_overflows
    - memmove
    linkageType: ''
    returnType: void
    signature: "void strbuf_splice(struct strbuf *sb, size_t pos, size_t len,\n\t\t\t\t
      \  const void *data, size_t dlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_splice
      Src: /src/git/strbuf.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sb
    - pos
    - data
    - len
    argTypes:
    - struct strbuf*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: strbuf_insert
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - strbuf_splice
    linkageType: ''
    returnType: void
    signature: void strbuf_insert(struct strbuf *sb, size_t pos, const void *data,
      size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/strbuf.c:275,1
    - Dst: va_copy
      Src: /src/git/strbuf.c:276,1
    - Dst: vsnprintf
      Src: /src/git/strbuf.c:277,1
    - Dst: va_end
      Src: /src/git/strbuf.c:278,1
    - Dst: die
      Src: /src/git/strbuf.c:280,1
    - Dst: _
      Src: /src/git/strbuf.c:280,1
    - Dst: unsigned_add_overflows
      Src: /src/git/strbuf.c:283,1
    - Dst: die
      Src: /src/git/strbuf.c:284,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:285,1
    - Dst: memmove
      Src: /src/git/strbuf.c:286,1
    - Dst: vsnprintf
      Src: /src/git/strbuf.c:289,1
    - Dst: BUG
      Src: /src/git/strbuf.c:292,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - sb
    - pos
    - fmt
    - ap
    argTypes:
    - struct strbuf*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 294
    functionName: strbuf_vinsertf
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - die
    - va_copy
    - strbuf_setlen
    - va_end
    - unsigned_add_overflows
    - _
    - strbuf_grow
    - vsnprintf
    - memmove
    - BUG
    linkageType: ''
    returnType: void
    signature: void strbuf_vinsertf(struct strbuf *sb, size_t pos, const char *fmt,
      va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/strbuf.c:299,1
    - Dst: strbuf_vinsertf
      Src: /src/git/strbuf.c:300,1
    - Dst: va_end
      Src: /src/git/strbuf.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sb
    - pos
    - fmt
    argTypes:
    - struct strbuf*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: strbuf_insertf
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - strbuf_vinsertf
    linkageType: ''
    returnType: void
    signature: void strbuf_insertf(struct strbuf *sb, size_t pos, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_splice
      Src: /src/git/strbuf.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sb
    - pos
    - len
    argTypes:
    - struct strbuf*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: strbuf_remove
    functionSourceFile: /src/git/strbuf.c
    functionUses: 8
    functionsReached:
    - strbuf_splice
    linkageType: ''
    returnType: void
    signature: void strbuf_remove(struct strbuf *sb, size_t pos, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:311,1
    - Dst: memcpy
      Src: /src/git/strbuf.c:312,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sb
    - data
    - len
    argTypes:
    - struct strbuf*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: strbuf_add
    functionSourceFile: /src/git/strbuf.c
    functionUses: 68
    functionsReached:
    - strbuf_setlen
    - strbuf_grow
    - memcpy
    linkageType: ''
    returnType: void
    signature: void strbuf_add(struct strbuf *sb, const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/strbuf.c:318,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:320,1
    - Dst: st_mult
      Src: /src/git/strbuf.c:320,1
    - Dst: strbuf_add
      Src: /src/git/strbuf.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - sb
    - s
    - n
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: strbuf_addstrings
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - strlen
    - strbuf_add
    - strbuf_grow
    - st_mult
    linkageType: ''
    returnType: void
    signature: void strbuf_addstrings(struct strbuf *sb, const char *s, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:327,1
    - Dst: memcpy
      Src: /src/git/strbuf.c:328,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sb
    - sb2
    argTypes:
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: strbuf_addbuf
    functionSourceFile: /src/git/strbuf.c
    functionUses: 12
    functionsReached:
    - strbuf_setlen
    - strbuf_grow
    - memcpy
    linkageType: ''
    returnType: void
    signature: void strbuf_addbuf(struct strbuf *sb, const struct strbuf *sb2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:338,1
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:340,1
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - argc
    - argv
    - delim
    argTypes:
    - struct strbuf*
    - int
    - char**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 345
    functionName: strbuf_join_argv
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: "char *strbuf_join_argv(struct strbuf *buf,\n\t\t\t     int argc, const
      char **argv, char delim)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:349,1
    - Dst: memset
      Src: /src/git/strbuf.c:350,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sb
    - c
    - n
    argTypes:
    - struct strbuf*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: strbuf_addchars
    functionSourceFile: /src/git/strbuf.c
    functionUses: 5
    functionsReached:
    - memset
    - strbuf_setlen
    - strbuf_grow
    linkageType: ''
    returnType: void
    signature: void strbuf_addchars(struct strbuf *sb, int c, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/strbuf.c:357,1
    - Dst: strbuf_vaddf
      Src: /src/git/strbuf.c:358,1
    - Dst: va_end
      Src: /src/git/strbuf.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sb
    - fmt
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: strbuf_addf
    functionSourceFile: /src/git/strbuf.c
    functionUses: 108
    functionsReached:
    - va_end
    - va_start
    - strbuf_vaddf
    linkageType: ''
    returnType: void
    signature: void strbuf_addf(struct strbuf *sb, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/strbuf.c:368,1
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:371,1
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:373,1
    - Dst: strbuf_add
      Src: /src/git/strbuf.c:374,1
    - Dst: strbuf_complete_line
      Src: /src/git/strbuf.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - out
    - prefix
    - buf
    - size
    - space_after_prefix
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 379
    functionName: add_lines
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - memchr
    - strbuf_complete_line
    - strbuf_addch
    - strbuf_addstr
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void add_lines(struct strbuf *out,\n\t\t\tconst char *prefix,\n\t\t\tconst
      char *buf, size_t size,\n\t\t\tint space_after_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_lines
      Src: /src/git/strbuf.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - buf
    - size
    - comment_prefix
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: strbuf_add_commented_lines
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - add_lines
    linkageType: ''
    returnType: void
    signature: "void strbuf_add_commented_lines(struct strbuf *out, const char *buf,\n\t\t\t\tsize_t
      size, const char *comment_prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/strbuf.c:394,1
    - Dst: strbuf_vaddf
      Src: /src/git/strbuf.c:395,1
    - Dst: va_end
      Src: /src/git/strbuf.c:396,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/strbuf.c:398,1
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sb
    - comment_prefix
    - fmt
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 403
    functionName: strbuf_commented_addf
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - strbuf_add_commented_lines
    - strbuf_release
    - strbuf_vaddf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: "void strbuf_commented_addf(struct strbuf *sb, const char *comment_prefix,\n\t\t\t
      \  const char *fmt, ...)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_avail
      Src: /src/git/strbuf.c:410,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:411,1
    - Dst: va_copy
      Src: /src/git/strbuf.c:412,1
    - Dst: vsnprintf
      Src: /src/git/strbuf.c:413,1
    - Dst: va_end
      Src: /src/git/strbuf.c:414,1
    - Dst: die
      Src: /src/git/strbuf.c:416,1
    - Dst: _
      Src: /src/git/strbuf.c:416,1
    - Dst: strbuf_avail
      Src: /src/git/strbuf.c:417,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:418,1
    - Dst: vsnprintf
      Src: /src/git/strbuf.c:419,1
    - Dst: strbuf_avail
      Src: /src/git/strbuf.c:420,1
    - Dst: BUG
      Src: /src/git/strbuf.c:421,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - sb
    - fmt
    - ap
    argTypes:
    - struct strbuf*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 424
    functionName: strbuf_vaddf
    functionSourceFile: /src/git/strbuf.c
    functionUses: 5
    functionsReached:
    - strbuf_avail
    - die
    - va_copy
    - strbuf_setlen
    - va_end
    - strbuf_grow
    - _
    - vsnprintf
    - BUG
    linkageType: ''
    returnType: void
    signature: void strbuf_vaddf(struct strbuf *sb, const char *fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/strbuf.c:429,1
    - Dst: strbuf_add
      Src: /src/git/strbuf.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sb
    - formatp
    argTypes:
    - struct strbuf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 436
    functionName: strbuf_expand_step
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - strchrnul
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int strbuf_expand_step(struct strbuf *sb, const char **formatp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:444,1
    - Dst: hex2chr
      Src: /src/git/strbuf.c:448,1
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sb
    - placeholder
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 455
    functionName: strbuf_expand_literal
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - hex2chr
    - strbuf_addch
    linkageType: ''
    returnType: size_t
    signature: size_t strbuf_expand_literal(struct strbuf *sb, const char *placeholder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/strbuf.c:463,1
    - Dst: _
      Src: /src/git/strbuf.c:463,1
    - Dst: strchr
      Src: /src/git/strbuf.c:466,1
    - Dst: die
      Src: /src/git/strbuf.c:469,1
    - Dst: _
      Src: /src/git/strbuf.c:469,1
    - Dst: die
      Src: /src/git/strbuf.c:473,1
    - Dst: _
      Src: /src/git/strbuf.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - format
    - command
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 475
    functionName: strbuf_expand_bad_format
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - die
    - strchr
    - _
    linkageType: ''
    returnType: void
    signature: void strbuf_expand_bad_format(const char *format, const char *command)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:483,1
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 486
    functionName: strbuf_addbuf_percentquote
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void strbuf_addbuf_percentquote(struct strbuf *dst, const struct strbuf
      *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/strbuf.c:492,1
    - Dst: isalnum
      Src: /src/git/strbuf.c:499,1
    - Dst: strchr
      Src: /src/git/strbuf.c:499,1
    - Dst: strchr
      Src: /src/git/strbuf.c:500,1
    - Dst: strbuf_addf
      Src: /src/git/strbuf.c:501,1
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:503,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - src
    - flags
    argTypes:
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 505
    functionName: strbuf_add_percentencode
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - strbuf_addf
    - strchr
    - strbuf_addch
    - strlen
    - isalnum
    linkageType: ''
    returnType: void
    signature: void strbuf_add_percentencode(struct strbuf *dst, const char *src,
      int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:512,1
    - Dst: fread
      Src: /src/git/strbuf.c:513,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:515,1
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sb
    - size
    - f
    argTypes:
    - struct strbuf*
    - size_t
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 519
    functionName: strbuf_fread
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fread
    - strbuf_setlen
    - strbuf_grow
    linkageType: ''
    returnType: size_t
    signature: size_t strbuf_fread(struct strbuf *sb, size_t size, FILE *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:526,1
    - Dst: read_in_full
      Src: /src/git/strbuf.c:529,1
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:533,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:535,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - sb
    - fd
    - hint
    argTypes:
    - struct strbuf*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 546
    functionName: strbuf_read
    functionSourceFile: /src/git/strbuf.c
    functionUses: 4
    functionsReached:
    - read_in_full
    - strbuf_release
    - strbuf_setlen
    - strbuf_grow
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t strbuf_read(struct strbuf *sb, int fd, size_t hint)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:553,1
    - Dst: xread
      Src: /src/git/strbuf.c:554,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:556,1
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sb
    - fd
    - hint
    argTypes:
    - struct strbuf*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 560
    functionName: strbuf_read_once
    functionSourceFile: /src/git/strbuf.c
    functionUses: 2
    functionsReached:
    - xread
    - strbuf_setlen
    - strbuf_grow
    - strbuf_release
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t strbuf_read_once(struct strbuf *sb, int fd, size_t hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/strbuf.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sb
    - f
    argTypes:
    - struct strbuf*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: strbuf_write
    functionSourceFile: /src/git/strbuf.c
    functionUses: 3
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t strbuf_write(struct strbuf *sb, FILE *f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:579,1
    - Dst: readlink
      Src: /src/git/strbuf.c:580,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:585,1
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:593,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - sb
    - path
    - hint
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 569
    functionDepth: 3
    functionLinenumber: 569
    functionLinenumberEnd: 595
    functionName: strbuf_readlink
    functionSourceFile: /src/git/strbuf.c
    functionUses: 3
    functionsReached:
    - strbuf_release
    - strbuf_setlen
    - strbuf_grow
    - readlink
    linkageType: ''
    returnType: int
    signature: int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:603,1
    - Dst: getcwd
      Src: /src/git/strbuf.c:604,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:605,1
    - Dst: strlen
      Src: /src/git/strbuf.c:605,1
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:623,1
    - Dst: strbuf_reset
      Src: /src/git/strbuf.c:625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 627
    functionName: strbuf_getcwd
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - strbuf_setlen
    - getcwd
    - strlen
    - strbuf_grow
    linkageType: ''
    returnType: int
    signature: int strbuf_getcwd(struct strbuf *sb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: feof
      Src: /src/git/strbuf.c:634,1
    - Dst: strbuf_reset
      Src: /src/git/strbuf.c:637,1
    - Dst: getdelim
      Src: /src/git/strbuf.c:643,1
    - Dst: assert
      Src: /src/git/strbuf.c:649,1
    - Dst: die
      Src: /src/git/strbuf.c:663,1
    - Dst: strbuf_init
      Src: /src/git/strbuf.c:671,1
    - Dst: strbuf_reset
      Src: /src/git/strbuf.c:673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - sb
    - fp
    - term
    argTypes:
    - struct strbuf*
    - FILE*
    - int
    assertStmts:
    - condition: (r == -1)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/git/strbuf.c
    constantsTouched: []
    func_position:
      end: 675
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 675
    functionName: strbuf_getwholeline
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - die
    - assert
    - getdelim
    - feof
    - strbuf_reset
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: int strbuf_getwholeline(struct strbuf *sb, FILE *fp, int term)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: feof
      Src: /src/git/strbuf.c:681,1
    - Dst: strbuf_reset
      Src: /src/git/strbuf.c:684,1
    - Dst: flockfile
      Src: /src/git/strbuf.c:685,1
    - Dst: getc_unlocked
      Src: /src/git/strbuf.c:686,1
    - Dst: strbuf_avail
      Src: /src/git/strbuf.c:687,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:688,1
    - Dst: funlockfile
      Src: /src/git/strbuf.c:693,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - sb
    - fp
    - term
    argTypes:
    - struct strbuf*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 699
    functionName: strbuf_getwholeline
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - strbuf_avail
    - getc_unlocked
    - flockfile
    - feof
    - strbuf_reset
    - funlockfile
    - strbuf_grow
    linkageType: ''
    returnType: int
    signature: int strbuf_getwholeline(struct strbuf *sb, FILE *fp, int term)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getwholeline
      Src: /src/git/strbuf.c:705,1
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:706,1
    - Dst: strbuf_addbuf
      Src: /src/git/strbuf.c:709,1
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - sb
    - fp
    - term
    argTypes:
    - struct strbuf*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 712
    functionName: strbuf_appendwholeline
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - strbuf_release
    - strbuf_addbuf
    linkageType: ''
    returnType: int
    signature: int strbuf_appendwholeline(struct strbuf *sb, FILE *fp, int term)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getwholeline
      Src: /src/git/strbuf.c:716,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - sb
    - fp
    - term
    argTypes:
    - struct strbuf*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 714
    functionDepth: 3
    functionLinenumber: 714
    functionLinenumberEnd: 721
    functionName: strbuf_getdelim
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - strbuf_setlen
    linkageType: ''
    returnType: int
    signature: int strbuf_getdelim(struct strbuf *sb, FILE *fp, int term)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getwholeline
      Src: /src/git/strbuf.c:725,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:728,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - sb
    - fp
    - term
    argTypes:
    - struct strbuf*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 723
    functionDepth: 3
    functionLinenumber: 723
    functionLinenumberEnd: 733
    functionName: strbuf_getdelim_strip_crlf
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - strbuf_setlen
    linkageType: ''
    returnType: int
    signature: int strbuf_getdelim_strip_crlf(struct strbuf *sb, FILE *fp, int term)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getdelim_strip_crlf
      Src: /src/git/strbuf.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sb
    - fp
    argTypes:
    - struct strbuf*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 735
    functionDepth: 4
    functionLinenumber: 735
    functionLinenumberEnd: 738
    functionName: strbuf_getline
    functionSourceFile: /src/git/strbuf.c
    functionUses: 6
    functionsReached:
    - strbuf_getdelim_strip_crlf
    linkageType: ''
    returnType: int
    signature: int strbuf_getline(struct strbuf *sb, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getdelim
      Src: /src/git/strbuf.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sb
    - fp
    argTypes:
    - struct strbuf*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 740
    functionDepth: 4
    functionLinenumber: 740
    functionLinenumberEnd: 743
    functionName: strbuf_getline_lf
    functionSourceFile: /src/git/strbuf.c
    functionUses: 4
    functionsReached:
    - strbuf_getdelim
    linkageType: ''
    returnType: int
    signature: int strbuf_getline_lf(struct strbuf *sb, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getdelim
      Src: /src/git/strbuf.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sb
    - fp
    argTypes:
    - struct strbuf*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 745
    functionDepth: 4
    functionLinenumber: 745
    functionLinenumberEnd: 748
    functionName: strbuf_getline_nul
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_getdelim
    linkageType: ''
    returnType: int
    signature: int strbuf_getline_nul(struct strbuf *sb, FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/strbuf.c:752,1
    - Dst: xread
      Src: /src/git/strbuf.c:756,1
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:759,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - sb
    - fd
    - term
    argTypes:
    - struct strbuf*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 764
    functionName: strbuf_getwholeline_fd
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - xread
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: int strbuf_getwholeline_fd(struct strbuf *sb, int fd, int term)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/strbuf.c:772,1
    - Dst: strbuf_read
      Src: /src/git/strbuf.c:775,1
    - Dst: close
      Src: /src/git/strbuf.c:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - sb
    - path
    - hint
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 766
    functionDepth: 4
    functionLinenumber: 766
    functionLinenumberEnd: 784
    functionName: strbuf_read_file
    functionSourceFile: /src/git/strbuf.c
    functionUses: 5
    functionsReached:
    - close
    - strbuf_read
    - open
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t strbuf_read_file(struct strbuf *sb, const char *path, size_t
      hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_lines
      Src: /src/git/strbuf.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - prefix
    - buf
    - size
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 786
    functionDepth: 4
    functionLinenumber: 786
    functionLinenumberEnd: 790
    functionName: strbuf_add_lines
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - add_lines
    linkageType: ''
    returnType: void
    signature: "void strbuf_add_lines(struct strbuf *out, const char *prefix,\n\t\t
      \     const char *buf, size_t size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/git/strbuf.c:795,1
    - Dst: strbuf_add
      Src: /src/git/strbuf.c:796,1
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:800,1
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:803,1
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:806,1
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:809,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - buf
    - s
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 816
    functionName: strbuf_addstr_xml_quoted
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    - strbuf_add
    - strcspn
    linkageType: ''
    returnType: void
    signature: void strbuf_addstr_xml_quoted(struct strbuf *buf, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:821,1
    - Dst: allow_unencoded_fn
      Src: /src/git/strbuf.c:824,1
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:825,1
    - Dst: strbuf_addf
      Src: /src/git/strbuf.c:827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - sb
    - s
    - len
    - allow_unencoded_fn
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    - char_predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 829
    functionName: strbuf_add_urlencode
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - allow_unencoded_fn
    - strbuf_grow
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void strbuf_add_urlencode(struct strbuf *sb, const char *s, size_t
      len,\n\t\t\t\t char_predicate allow_unencoded_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_urlencode
      Src: /src/git/strbuf.c:834,1
    - Dst: strlen
      Src: /src/git/strbuf.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sb
    - s
    - allow_unencoded_fn
    argTypes:
    - struct strbuf*
    - char*
    - char_predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 835
    functionName: strbuf_addstr_urlencode
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - strlen
    - strbuf_add_urlencode
    linkageType: ''
    returnType: void
    signature: "void strbuf_addstr_urlencode(struct strbuf *sb, const char *s,\n\t\t\t
      \    char_predicate allow_unencoded_fn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/strbuf.c:841,1
    - Dst: _
      Src: /src/git/strbuf.c:841,1
    - Dst: _
      Src: /src/git/strbuf.c:844,1
    - Dst: xstrfmt
      Src: /src/git/strbuf.c:847,1
    - Dst: _
      Src: /src/git/strbuf.c:847,1
    - Dst: _
      Src: /src/git/strbuf.c:850,1
    - Dst: xstrfmt
      Src: /src/git/strbuf.c:853,1
    - Dst: _
      Src: /src/git/strbuf.c:853,1
    - Dst: _
      Src: /src/git/strbuf.c:856,1
    - Dst: xstrfmt
      Src: /src/git/strbuf.c:858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - count
    - value
    - unit
    argTypes:
    - size_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 861
    functionName: humanise_count
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - _
    linkageType: ''
    returnType: void
    signature: void humanise_count(size_t count, char **value, const char **unit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/strbuf.c:869,1
    - Dst: _
      Src: /src/git/strbuf.c:869,1
    - Dst: _
      Src: /src/git/strbuf.c:872,1
    - Dst: _
      Src: /src/git/strbuf.c:872,1
    - Dst: xstrfmt
      Src: /src/git/strbuf.c:875,1
    - Dst: _
      Src: /src/git/strbuf.c:875,1
    - Dst: _
      Src: /src/git/strbuf.c:878,1
    - Dst: _
      Src: /src/git/strbuf.c:878,1
    - Dst: xstrfmt
      Src: /src/git/strbuf.c:881,1
    - Dst: _
      Src: /src/git/strbuf.c:881,1
    - Dst: _
      Src: /src/git/strbuf.c:884,1
    - Dst: _
      Src: /src/git/strbuf.c:884,1
    - Dst: xstrfmt
      Src: /src/git/strbuf.c:886,1
    - Dst: _
      Src: /src/git/strbuf.c:889,1
    - Dst: _
      Src: /src/git/strbuf.c:889,1
    - Dst: Q_
      Src: /src/git/strbuf.c:893,1
    - Dst: Q_
      Src: /src/git/strbuf.c:895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - bytes
    - value
    - unit
    - flags
    argTypes:
    - off_t
    - char**
    - char**
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 897
    functionName: humanise_bytes
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - Q_
    - xstrfmt
    - _
    linkageType: ''
    returnType: void
    signature: "void humanise_bytes(off_t bytes, char **value, const char **unit,\n\t\t
      \   unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: humanise_bytes
      Src: /src/git/strbuf.c:904,1
    - Dst: strbuf_addf
      Src: /src/git/strbuf.c:910,1
    - Dst: _
      Src: /src/git/strbuf.c:910,1
    - Dst: free
      Src: /src/git/strbuf.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - buf
    - bytes
    - flags
    argTypes:
    - struct strbuf*
    - off_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 912
    functionName: strbuf_humanise
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - free
    - humanise_bytes
    - strbuf_addf
    - _
    linkageType: ''
    returnType: void
    signature: void strbuf_humanise(struct strbuf *buf, off_t bytes, unsigned flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_humanise
      Src: /src/git/strbuf.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bytes
    argTypes:
    - struct strbuf*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 914
    functionDepth: 3
    functionLinenumber: 914
    functionLinenumberEnd: 917
    functionName: strbuf_humanise_bytes
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_humanise
    linkageType: ''
    returnType: void
    signature: void strbuf_humanise_bytes(struct strbuf *buf, off_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_humanise
      Src: /src/git/strbuf.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bytes
    argTypes:
    - struct strbuf*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 919
    functionDepth: 3
    functionLinenumber: 919
    functionLinenumberEnd: 922
    functionName: strbuf_humanise_rate
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_humanise
    linkageType: ''
    returnType: void
    signature: void strbuf_humanise_rate(struct strbuf *buf, off_t bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/strbuf.c:928,1
    - Dst: vprintf
      Src: /src/git/strbuf.c:929,1
    - Dst: va_end
      Src: /src/git/strbuf.c:930,1
    - Dst: putchar
      Src: /src/git/strbuf.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 934
    functionName: printf_ln
    functionSourceFile: /src/git/strbuf.c
    functionUses: 12
    functionsReached:
    - va_end
    - va_start
    - putchar
    - vprintf
    linkageType: ''
    returnType: int
    signature: int printf_ln(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/strbuf.c:940,1
    - Dst: vfprintf
      Src: /src/git/strbuf.c:941,1
    - Dst: va_end
      Src: /src/git/strbuf.c:942,1
    - Dst: putc
      Src: /src/git/strbuf.c:943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - fp
    - fmt
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 946
    functionName: fprintf_ln
    functionSourceFile: /src/git/strbuf.c
    functionUses: 8
    functionsReached:
    - va_end
    - va_start
    - putc
    - vfprintf
    linkageType: ''
    returnType: int
    signature: int fprintf_ln(FILE *fp, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/strbuf.c:953,1
    - Dst: xmallocz
      Src: /src/git/strbuf.c:954,1
    - Dst: tolower
      Src: /src/git/strbuf.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 958
    functionName: xstrdup_tolower
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - xmallocz
    - strlen
    - tolower
    linkageType: ''
    returnType: char
    signature: char *xstrdup_tolower(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/strbuf.c:965,1
    - Dst: xmallocz
      Src: /src/git/strbuf.c:966,1
    - Dst: toupper
      Src: /src/git/strbuf.c:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 970
    functionName: xstrdup_toupper
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - xmallocz
    - strlen
    - toupper
    linkageType: ''
    returnType: char
    signature: char *xstrdup_toupper(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_vaddf
      Src: /src/git/strbuf.c:975,1
    - Dst: strbuf_detach
      Src: /src/git/strbuf.c:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 977
    functionName: xstrvfmt
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_vaddf
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *xstrvfmt(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/strbuf.c:984,1
    - Dst: xstrvfmt
      Src: /src/git/strbuf.c:985,1
    - Dst: va_end
      Src: /src/git/strbuf.c:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 979
    functionDepth: 4
    functionLinenumber: 979
    functionLinenumberEnd: 989
    functionName: xstrfmt
    functionSourceFile: /src/git/strbuf.c
    functionUses: 22
    functionsReached:
    - va_end
    - va_start
    - xstrvfmt
    linkageType: ''
    returnType: char
    signature: char *xstrfmt(const char *fmt, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_expand_step
      Src: /src/git/strbuf.c:1010,1
    - Dst: skip_prefix
      Src: /src/git/strbuf.c:1011,1
    - Dst: strbuf_addstr
      Src: /src/git/strbuf.c:1012,1
    - Dst: skip_prefix
      Src: /src/git/strbuf.c:1013,1
    - Dst: strbuf_addf
      Src: /src/git/strbuf.c:1014,1
    - Dst: tm_to_time_t
      Src: /src/git/strbuf.c:1015,1
    - Dst: skip_prefix
      Src: /src/git/strbuf.c:1018,1
    - Dst: strbuf_addf
      Src: /src/git/strbuf.c:1019,1
    - Dst: skip_prefix
      Src: /src/git/strbuf.c:1020,1
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:1023,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:1027,1
    - Dst: strftime
      Src: /src/git/strbuf.c:1028,1
    - Dst: strbuf_addch
      Src: /src/git/strbuf.c:1038,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:1041,1
    - Dst: strftime
      Src: /src/git/strbuf.c:1042,1
    - Dst: strbuf_release
      Src: /src/git/strbuf.c:1047,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:1048,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 5
    argNames:
    - sb
    - fmt
    - tm
    - tz_offset
    - suppress_tz_name
    argTypes:
    - struct strbuf*
    - char*
    - struct tm*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 991
    functionDepth: 4
    functionLinenumber: 991
    functionLinenumberEnd: 1049
    functionName: strbuf_addftime
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strftime
    - tm_to_time_t
    - strbuf_addf
    - strbuf_setlen
    - strbuf_addch
    - strbuf_expand_step
    - strbuf_addstr
    - strbuf_grow
    - skip_prefix
    linkageType: ''
    returnType: void
    signature: "void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct
      tm *tm,\n\t\t     int tz_offset, int suppress_tz_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/strbuf.c:1060,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1066
    functionName: cleanup
    functionSourceFile: /src/git/strbuf.c
    functionUses: 10
    functionsReached:
    - isspace
    linkageType: ''
    returnType: size_t
    signature: size_t cleanup(char *line, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/strbuf.c:1090,1
    - Dst: memchr
      Src: /src/git/strbuf.c:1093,1
    - Dst: starts_with
      Src: /src/git/strbuf.c:1097,1
    - Dst: cleanup
      Src: /src/git/strbuf.c:1101,1
    - Dst: memmove
      Src: /src/git/strbuf.c:1108,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:1115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - sb
    - comment_prefix
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1116
    functionName: strbuf_stripspace
    functionSourceFile: /src/git/strbuf.c
    functionUses: 1
    functionsReached:
    - memchr
    - strbuf_setlen
    - starts_with
    - cleanup
    - strbuf_grow
    - memmove
    linkageType: ''
    returnType: void
    signature: void strbuf_stripspace(struct strbuf *sb, const char *comment_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_last_dir_sep
      Src: /src/git/strbuf.c:1120,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.c:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1122
    functionName: strbuf_strip_file_from_path
    functionSourceFile: /src/git/strbuf.c
    functionUses: 0
    functionsReached:
    - find_last_dir_sep
    - strbuf_setlen
    linkageType: ''
    returnType: void
    signature: void strbuf_strip_file_from_path(struct strbuf *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/reflog-walk.c:33,1
    - Dst: oidcpy
      Src: /src/git/reflog-walk.c:35,1
    - Dst: oidcpy
      Src: /src/git/reflog-walk.c:36,1
    - Dst: xstrdup
      Src: /src/git/reflog-walk.c:37,1
    - Dst: xstrdup
      Src: /src/git/reflog-walk.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - refname
    - ooid
    - noid
    - email
    - timestamp
    - tz
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: read_one_reflog
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - ALLOC_GROW
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int read_one_reflog(const char *refname UNUSED,\n\t\t\t   struct object_id
      *ooid, struct object_id *noid,\n\t\t\t   const char *email, timestamp_t timestamp,
      int tz,\n\t\t\t   const char *message, void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/reflog-walk.c:53,1
    - Dst: free
      Src: /src/git/reflog-walk.c:54,1
    - Dst: free
      Src: /src/git/reflog-walk.c:56,1
    - Dst: free
      Src: /src/git/reflog-walk.c:57,1
    - Dst: free
      Src: /src/git/reflog-walk.c:58,1
    - Dst: free
      Src: /src/git/reflog-walk.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct complete_reflogs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: free_complete_reflog
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_complete_reflog(struct complete_reflogs *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_complete_reflog
      Src: /src/git/reflog-walk.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - util
    - UNUSED
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: complete_reflogs_clear
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 0
    functionsReached:
    - free_complete_reflog
    linkageType: ''
    returnType: void
    signature: void complete_reflogs_clear(void *util, const char *str UNUSED)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/reflog-walk.c:71,1
    - Dst: xstrdup
      Src: /src/git/reflog-walk.c:72,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/reflog-walk.c:73,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog-walk.c:73,1
    - Dst: refs_resolve_refdup
      Src: /src/git/reflog-walk.c:78,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog-walk.c:78,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/reflog-walk.c:83,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog-walk.c:83,1
    - Dst: free
      Src: /src/git/reflog-walk.c:86,1
    - Dst: xstrfmt
      Src: /src/git/reflog-walk.c:90,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/reflog-walk.c:91,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog-walk.c:91,1
    - Dst: free
      Src: /src/git/reflog-walk.c:94,1
    - Dst: xstrfmt
      Src: /src/git/reflog-walk.c:95,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/reflog-walk.c:96,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog-walk.c:96,1
    - Dst: free
      Src: /src/git/reflog-walk.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ref
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 103
    functionName: read_complete_reflog
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 0
    functionsReached:
    - refs_for_each_reflog_ent
    - xstrfmt
    - xcalloc
    - free
    - get_main_ref_store
    - xstrdup
    - refs_resolve_refdup
    linkageType: ''
    returnType: struct complete_reflogs
    signature: struct complete_reflogs *read_complete_reflog(const char *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - array
    - timestamp
    argTypes:
    - struct complete_reflogs*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: get_reflog_recno_by_time
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_reflog_recno_by_time(struct complete_reflogs *array,\n\ttimestamp_t
      timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/reflog-walk.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct reflog_walk_info**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: init_reflog_walk
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 1
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void init_reflog_walk(struct reflog_walk_info **info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/reflog-walk.c:146,1
    - Dst: string_list_clear_func
      Src: /src/git/reflog-walk.c:147,1
    - Dst: free
      Src: /src/git/reflog-walk.c:149,1
    - Dst: free
      Src: /src/git/reflog-walk.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct reflog_walk_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: reflog_walk_info_release
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 1
    functionsReached:
    - string_list_clear_func
    - free
    linkageType: ''
    returnType: void
    signature: void reflog_walk_info_release(struct reflog_walk_info *info)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/reflog-walk.c:161,1
    - Dst: die
      Src: /src/git/reflog-walk.c:166,1
    - Dst: xstrdup
      Src: /src/git/reflog-walk.c:168,1
    - Dst: strtoul
      Src: /src/git/reflog-walk.c:172,1
    - Dst: approxidate
      Src: /src/git/reflog-walk.c:175,1
    - Dst: string_list_lookup
      Src: /src/git/reflog-walk.c:183,1
    - Dst: free
      Src: /src/git/reflog-walk.c:188,1
    - Dst: refs_resolve_refdup
      Src: /src/git/reflog-walk.c:189,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog-walk.c:189,1
    - Dst: die
      Src: /src/git/reflog-walk.c:192,1
    - Dst: read_complete_reflog
      Src: /src/git/reflog-walk.c:195,1
    - Dst: repo_dwim_log
      Src: /src/git/reflog-walk.c:198,1
    - Dst: strlen
      Src: /src/git/reflog-walk.c:198,1
    - Dst: free
      Src: /src/git/reflog-walk.c:201,1
    - Dst: free_complete_reflog
      Src: /src/git/reflog-walk.c:203,1
    - Dst: free
      Src: /src/git/reflog-walk.c:204,1
    - Dst: read_complete_reflog
      Src: /src/git/reflog-walk.c:206,1
    - Dst: free_complete_reflog
      Src: /src/git/reflog-walk.c:210,1
    - Dst: free
      Src: /src/git/reflog-walk.c:211,1
    - Dst: string_list_insert
      Src: /src/git/reflog-walk.c:214,1
    - Dst: free
      Src: /src/git/reflog-walk.c:217,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/reflog-walk.c:219,1
    - Dst: get_reflog_recno_by_time
      Src: /src/git/reflog-walk.c:221,1
    - Dst: free
      Src: /src/git/reflog-walk.c:223,1
    - Dst: ALLOC_GROW
      Src: /src/git/reflog-walk.c:231,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 3
    argNames:
    - info
    - commit
    - name
    argTypes:
    - struct reflog_walk_info*
    - struct commit*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 153
    functionDepth: 6
    functionLinenumber: 153
    functionLinenumberEnd: 235
    functionName: add_reflog_for_walk
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 1
    functionsReached:
    - string_list_lookup
    - die
    - approxidate
    - free_complete_reflog
    - repo_dwim_log
    - string_list_insert
    - strchr
    - refs_resolve_refdup
    - strlen
    - read_complete_reflog
    - ALLOC_GROW
    - free
    - CALLOC_ARRAY
    - get_main_ref_store
    - get_reflog_recno_by_time
    - xstrdup
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int add_reflog_for_walk(struct reflog_walk_info *info,\n\t\tstruct
      commit *commit, const char *name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/reflog-walk.c:252,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog-walk.c:252,1
    - Dst: strbuf_addf
      Src: /src/git/reflog-walk.c:260,1
    - Dst: strbuf_addstr
      Src: /src/git/reflog-walk.c:264,1
    - Dst: show_date
      Src: /src/git/reflog-walk.c:264,1
    - Dst: strbuf_addf
      Src: /src/git/reflog-walk.c:266,1
    - Dst: strbuf_addch
      Src: /src/git/reflog-walk.c:270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - sb
    - reflog_info
    - dmode
    - force_date
    - shorten
    argTypes:
    - struct strbuf*
    - struct reflog_walk_info*
    - struct date_mode
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 271
    functionName: get_reflog_selector
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - refs_shorten_unambiguous_ref
    - strbuf_addch
    - show_date
    - strbuf_addstr
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void get_reflog_selector(struct strbuf *sb,\n\t\t\t struct reflog_walk_info
      *reflog_info,\n\t\t\t struct date_mode dmode, int force_date,\n\t\t\t int shorten)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/reflog-walk.c:284,1
    - Dst: strbuf_add
      Src: /src/git/reflog-walk.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sb
    - reflog_info
    argTypes:
    - struct strbuf*
    - struct reflog_walk_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 288
    functionName: get_reflog_message
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 1
    functionsReached:
    - strlen
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void get_reflog_message(struct strbuf *sb,\n\t\t\tstruct reflog_walk_info
      *reflog_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - reflog_info
    argTypes:
    - struct reflog_walk_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: get_reflog_ident
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_reflog_ident(struct reflog_walk_info *reflog_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - reflog_info
    argTypes:
    - struct reflog_walk_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: get_reflog_timestamp
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t get_reflog_timestamp(struct reflog_walk_info *reflog_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_reflog_selector
      Src: /src/git/reflog-walk.c:323,1
    - Dst: printf
      Src: /src/git/reflog-walk.c:325,1
    - Dst: printf
      Src: /src/git/reflog-walk.c:328,1
    - Dst: strbuf_release
      Src: /src/git/reflog-walk.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - reflog_info
    - oneline
    - dmode
    - force_date
    argTypes:
    - struct reflog_walk_info*
    - int
    - struct date_mode
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 334
    functionName: show_reflog_message
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 0
    functionsReached:
    - get_reflog_selector
    - strbuf_release
    - printf
    linkageType: ''
    returnType: void
    signature: "void show_reflog_message(struct reflog_walk_info *reflog_info, int
      oneline,\n\t\t\t struct date_mode dmode, int force_date)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct reflog_walk_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: reflog_walk_empty
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int reflog_walk_empty(struct reflog_walk_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/reflog-walk.c:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct commit_reflog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 352
    functionName: next_reflog_commit
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 0
    functionsReached:
    - parse_object
    linkageType: ''
    returnType: struct commit
    signature: struct commit *next_reflog_commit(struct commit_reflog *log)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct commit_reflog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: log_timestamp
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t log_timestamp(struct commit_reflog *log)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: next_reflog_commit
      Src: /src/git/reflog-walk.c:367,1
    - Dst: log_timestamp
      Src: /src/git/reflog-walk.c:372,1
    - Dst: log_timestamp
      Src: /src/git/reflog-walk.c:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - walk
    argTypes:
    - struct reflog_walk_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 385
    functionName: next_reflog_entry
    functionSourceFile: /src/git/reflog-walk.c
    functionUses: 1
    functionsReached:
    - next_reflog_commit
    - log_timestamp
    linkageType: ''
    returnType: struct commit
    signature: struct commit *next_reflog_entry(struct reflog_walk_info *walk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/rebase.c:19,1
    - Dst: strcmp
      Src: /src/git/rebase.c:25,1
    - Dst: strcmp
      Src: /src/git/rebase.c:25,1
    - Dst: strcmp
      Src: /src/git/rebase.c:27,1
    - Dst: strcmp
      Src: /src/git/rebase.c:27,1
    - Dst: strcmp
      Src: /src/git/rebase.c:29,1
    - Dst: strcmp
      Src: /src/git/rebase.c:29,1
    - Dst: error
      Src: /src/git/rebase.c:30,1
    - Dst: _
      Src: /src/git/rebase.c:30,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 37
    functionName: rebase_parse_value
    functionSourceFile: /src/git/rebase.c
    functionUses: 0
    functionsReached:
    - error
    - git_parse_maybe_bool
    - _
    - strcmp
    linkageType: ''
    returnType: enum rebase_type
    signature: enum rebase_type rebase_parse_value(const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_path
      Src: /src/git/shell.c:16,1
    - Dst: sq_dequote
      Src: /src/git/shell.c:17,1
    - Dst: die
      Src: /src/git/shell.c:18,1
    - Dst: skip_prefix
      Src: /src/git/shell.c:19,1
    - Dst: die
      Src: /src/git/shell.c:20,1
    - Dst: execv_git_cmd
      Src: /src/git/shell.c:26,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - me
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 12
    functionDepth: 5
    functionLinenumber: 12
    functionLinenumberEnd: 27
    functionName: do_generic_cmd
    functionSourceFile: /src/git/shell.c
    functionUses: 0
    functionsReached:
    - die
    - setup_path
    - sq_dequote
    - execv_git_cmd
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int do_generic_cmd(const char *me, char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/git/shell.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: is_valid_cmd_name
    functionSourceFile: /src/git/shell.c
    functionUses: 0
    functionsReached:
    - strcspn
    linkageType: ''
    returnType: int
    signature: int is_valid_cmd_name(const char *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/shell.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: make_cmd
    functionSourceFile: /src/git/shell.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    linkageType: ''
    returnType: char
    signature: char *make_cmd(const char *prog)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/shell.c:42,1
    - Dst: die
      Src: /src/git/shell.c:44,1
    - Dst: chdir
      Src: /src/git/shell.c:45,1
    - Dst: die
      Src: /src/git/shell.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: cd_to_homedir
    functionSourceFile: /src/git/shell.c
    functionUses: 0
    functionsReached:
    - getenv
    - chdir
    - die
    linkageType: ''
    returnType: void
    signature: void cd_to_homedir(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/git/shell.c:56,1
    - Dst: strvec_push
      Src: /src/git/shell.c:61,1
    - Dst: run_command
      Src: /src/git/shell.c:62,1
    - Dst: exit
      Src: /src/git/shell.c:64,1
    - Dst: exit
      Src: /src/git/shell.c:65,1
    - Dst: strvec_push
      Src: /src/git/shell.c:70,1
    - Dst: run_command
      Src: /src/git/shell.c:71,1
    - Dst: fprintf
      Src: /src/git/shell.c:83,1
    - Dst: fflush
      Src: /src/git/shell.c:91,1
    - Dst: xmalloc
      Src: /src/git/shell.c:92,1
    - Dst: fgets
      Src: /src/git/shell.c:93,1
    - Dst: fprintf
      Src: /src/git/shell.c:94,1
    - Dst: free
      Src: /src/git/shell.c:95,1
    - Dst: strlen
      Src: /src/git/shell.c:98,1
    - Dst: die
      Src: /src/git/shell.c:106,1
    - Dst: xstrdup
      Src: /src/git/shell.c:114,1
    - Dst: split_cmdline
      Src: /src/git/shell.c:115,1
    - Dst: fprintf
      Src: /src/git/shell.c:117,1
    - Dst: split_cmdline_strerror
      Src: /src/git/shell.c:118,1
    - Dst: free
      Src: /src/git/shell.c:119,1
    - Dst: free
      Src: /src/git/shell.c:120,1
    - Dst: strcmp
      Src: /src/git/shell.c:125,1
    - Dst: strcmp
      Src: /src/git/shell.c:126,1
    - Dst: strcmp
      Src: /src/git/shell.c:126,1
    - Dst: strcmp
      Src: /src/git/shell.c:127,1
    - Dst: strcmp
      Src: /src/git/shell.c:127,1
    - Dst: is_valid_cmd_name
      Src: /src/git/shell.c:129,1
    - Dst: make_cmd
      Src: /src/git/shell.c:132,1
    - Dst: strvec_pushv
      Src: /src/git/shell.c:135,1
    - Dst: run_command
      Src: /src/git/shell.c:136,1
    - Dst: fprintf
      Src: /src/git/shell.c:138,1
    - Dst: free
      Src: /src/git/shell.c:140,1
    - Dst: fprintf
      Src: /src/git/shell.c:142,1
    - Dst: free
      Src: /src/git/shell.c:145,1
    - Dst: free
      Src: /src/git/shell.c:146,1
    - Dst: free
      Src: /src/git/shell.c:147,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 51
    functionDepth: 8
    functionLinenumber: 51
    functionLinenumberEnd: 149
    functionName: run_shell
    functionSourceFile: /src/git/shell.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - fgets
    - is_valid_cmd_name
    - die
    - run_command
    - strvec_pushv
    - access
    - exit
    - split_cmdline_strerror
    - make_cmd
    - xmalloc
    - strlen
    - split_cmdline
    - fflush
    - strcmp
    - free
    - fprintf
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void run_shell(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/shell.c:171,1
    - Dst: cd_to_homedir
      Src: /src/git/shell.c:175,1
    - Dst: access
      Src: /src/git/shell.c:176,1
    - Dst: die
      Src: /src/git/shell.c:177,1
    - Dst: run_shell
      Src: /src/git/shell.c:181,1
    - Dst: exit
      Src: /src/git/shell.c:182,1
    - Dst: strcmp
      Src: /src/git/shell.c:183,1
    - Dst: die
      Src: /src/git/shell.c:189,1
    - Dst: xstrdup
      Src: /src/git/shell.c:192,1
    - Dst: strncmp
      Src: /src/git/shell.c:193,1
    - Dst: isspace
      Src: /src/git/shell.c:193,1
    - Dst: strlen
      Src: /src/git/shell.c:198,1
    - Dst: strncmp
      Src: /src/git/shell.c:200,1
    - Dst: struct commands*::exec
      Src: /src/git/shell.c:213,1
    - Dst: cd_to_homedir
      Src: /src/git/shell.c:216,1
    - Dst: split_cmdline
      Src: /src/git/shell.c:217,1
    - Dst: is_valid_cmd_name
      Src: /src/git/shell.c:219,1
    - Dst: make_cmd
      Src: /src/git/shell.c:220,1
    - Dst: execv
      Src: /src/git/shell.c:221,1
    - Dst: free
      Src: /src/git/shell.c:223,1
    - Dst: free
      Src: /src/git/shell.c:224,1
    - Dst: die
      Src: /src/git/shell.c:225,1
    - Dst: free
      Src: /src/git/shell.c:227,1
    - Dst: die
      Src: /src/git/shell.c:228,1
    - Dst: split_cmdline_strerror
      Src: /src/git/shell.c:229,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 161
    functionDepth: 9
    functionLinenumber: 161
    functionLinenumberEnd: 231
    functionName: cmd_main
    functionSourceFile: /src/git/shell.c
    functionUses: 0
    functionsReached:
    - isspace
    - is_valid_cmd_name
    - struct commands*::exec
    - die
    - access
    - exit
    - run_shell
    - split_cmdline_strerror
    - make_cmd
    - execv
    - strlen
    - split_cmdline
    - strcmp
    - free
    - strncmp
    - cd_to_homedir
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/write-or-die.c:25,1
    - Dst: fstat
      Src: /src/git/write-or-die.c:28,1
    - Dst: fileno
      Src: /src/git/write-or-die.c:28,1
    - Dst: S_ISREG
      Src: /src/git/write-or-die.c:31,1
    - Dst: ferror
      Src: /src/git/write-or-die.c:34,1
    - Dst: fflush
      Src: /src/git/write-or-die.c:37,1
    - Dst: check_pipe
      Src: /src/git/write-or-die.c:38,1
    - Dst: die_errno
      Src: /src/git/write-or-die.c:39,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - f
    - desc
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 41
    functionName: maybe_flush_or_die
    functionSourceFile: /src/git/write-or-die.c
    functionUses: 0
    functionsReached:
    - ferror
    - git_env_bool
    - fileno
    - fstat
    - die_errno
    - fflush
    - check_pipe
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void maybe_flush_or_die(FILE *f, const char *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/write-or-die.c:48,1
    - Dst: vfprintf
      Src: /src/git/write-or-die.c:49,1
    - Dst: va_end
      Src: /src/git/write-or-die.c:50,1
    - Dst: check_pipe
      Src: /src/git/write-or-die.c:53,1
    - Dst: die_errno
      Src: /src/git/write-or-die.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - f
    - fmt
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: fprintf_or_die
    functionSourceFile: /src/git/write-or-die.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - die_errno
    - va_end
    - va_start
    - check_pipe
    linkageType: ''
    returnType: void
    signature: void fprintf_or_die(FILE *f, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/write-or-die.c:61,1
    - Dst: git_fsync
      Src: /src/git/write-or-die.c:66,1
    - Dst: git_fsync
      Src: /src/git/write-or-die.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: maybe_fsync
    functionSourceFile: /src/git/write-or-die.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    - git_fsync
    linkageType: ''
    returnType: int
    signature: int maybe_fsync(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: maybe_fsync
      Src: /src/git/write-or-die.c:74,1
    - Dst: die_errno
      Src: /src/git/write-or-die.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - fd
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: fsync_or_die
    functionSourceFile: /src/git/write-or-die.c
    functionUses: 3
    functionsReached:
    - maybe_fsync
    - die_errno
    linkageType: ''
    returnType: void
    signature: void fsync_or_die(int fd, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: maybe_fsync
      Src: /src/git/write-or-die.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - component
    - fd
    argTypes:
    - enum fsync_component
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: fsync_component
    functionSourceFile: /src/git/write-or-die.c
    functionUses: 0
    functionsReached:
    - maybe_fsync
    linkageType: ''
    returnType: int
    signature: int fsync_component(enum fsync_component component, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsync_or_die
      Src: /src/git/write-or-die.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - component
    - fd
    - msg
    argTypes:
    - enum fsync_component
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: fsync_component_or_die
    functionSourceFile: /src/git/write-or-die.c
    functionUses: 1
    functionsReached:
    - fsync_or_die
    linkageType: ''
    returnType: void
    signature: void fsync_component_or_die(enum fsync_component component, int fd,
      const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_in_full
      Src: /src/git/write-or-die.c:93,1
    - Dst: check_pipe
      Src: /src/git/write-or-die.c:94,1
    - Dst: die_errno
      Src: /src/git/write-or-die.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: write_or_die
    functionSourceFile: /src/git/write-or-die.c
    functionUses: 10
    functionsReached:
    - write_in_full
    - die_errno
    - check_pipe
    linkageType: ''
    returnType: void
    signature: void write_or_die(int fd, const void *buf, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/write-or-die.c:101,1
    - Dst: die_errno
      Src: /src/git/write-or-die.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - f
    - buf
    - count
    argTypes:
    - FILE*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: fwrite_or_die
    functionSourceFile: /src/git/write-or-die.c
    functionUses: 0
    functionsReached:
    - fwrite
    - die_errno
    linkageType: ''
    returnType: void
    signature: void fwrite_or_die(FILE *f, const void *buf, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/git/write-or-die.c:107,1
    - Dst: die_errno
      Src: /src/git/write-or-die.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: fflush_or_die
    functionSourceFile: /src/git/write-or-die.c
    functionUses: 1
    functionsReached:
    - die_errno
    - fflush
    linkageType: ''
    returnType: void
    signature: void fflush_or_die(FILE *f)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/refspec.c:37,1
    - Dst: strlen
      Src: /src/git/refspec.c:53,1
    - Dst: strchr
      Src: /src/git/refspec.c:54,1
    - Dst: xstrndup
      Src: /src/git/refspec.c:55,1
    - Dst: strlen
      Src: /src/git/refspec.c:60,1
    - Dst: memchr
      Src: /src/git/refspec.c:61,1
    - Dst: xstrdup
      Src: /src/git/refspec.c:71,1
    - Dst: xstrndup
      Src: /src/git/refspec.c:73,1
    - Dst: get_oid_hex
      Src: /src/git/refspec.c:87,1
    - Dst: check_refname_format
      Src: /src/git/refspec.c:89,1
    - Dst: get_oid_hex
      Src: /src/git/refspec.c:104,1
    - Dst: check_refname_format
      Src: /src/git/refspec.c:106,1
    - Dst: check_refname_format
      Src: /src/git/refspec.c:115,1
    - Dst: check_refname_format
      Src: /src/git/refspec.c:130,1
    - Dst: check_refname_format
      Src: /src/git/refspec.c:143,1
    - Dst: check_refname_format
      Src: /src/git/refspec.c:148,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 83
    argCount: 3
    argNames:
    - item
    - refspec
    - fetch
    argTypes:
    - struct refspec_item*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 154
    functionName: parse_refspec
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - memchr
    - strrchr
    - get_oid_hex
    - strchr
    - xstrndup
    - strlen
    - check_refname_format
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int parse_refspec(struct refspec_item *item, const char *refspec, int
      fetch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/refspec.c:159,1
    - Dst: xstrdup
      Src: /src/git/refspec.c:160,1
    - Dst: parse_refspec
      Src: /src/git/refspec.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - item
    - refspec
    - fetch
    argTypes:
    - struct refspec_item*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 5
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: refspec_item_init
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - memset
    - parse_refspec
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int refspec_item_init(struct refspec_item *item, const char *refspec,\n\t\t\t
      \    int fetch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refspec_item_init
      Src: /src/git/refspec.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - refspec
    argTypes:
    - struct refspec_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 6
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: refspec_item_init_fetch
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - refspec_item_init
    linkageType: ''
    returnType: int
    signature: int refspec_item_init_fetch(struct refspec_item *item, const char *refspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refspec_item_init
      Src: /src/git/refspec.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - refspec
    argTypes:
    - struct refspec_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 6
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: refspec_item_init_push
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - refspec_item_init
    linkageType: ''
    returnType: int
    signature: int refspec_item_init_push(struct refspec_item *item, const char *refspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/refspec.c:176,1
    - Dst: FREE_AND_NULL
      Src: /src/git/refspec.c:177,1
    - Dst: FREE_AND_NULL
      Src: /src/git/refspec.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct refspec_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: refspec_item_clear
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void refspec_item_clear(struct refspec_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/refspec.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct refspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: refspec_init_fetch
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void refspec_init_fetch(struct refspec *rs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/refspec.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct refspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: refspec_init_push
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void refspec_init_push(struct refspec *rs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refspec_item_init_fetch
      Src: /src/git/refspec.c:203,1
    - Dst: refspec_item_init_push
      Src: /src/git/refspec.c:205,1
    - Dst: die
      Src: /src/git/refspec.c:207,1
    - Dst: _
      Src: /src/git/refspec.c:207,1
    - Dst: ALLOC_GROW
      Src: /src/git/refspec.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - rs
    - refspec
    argTypes:
    - struct refspec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 197
    functionDepth: 7
    functionLinenumber: 197
    functionLinenumberEnd: 213
    functionName: refspec_append
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - die
    - refspec_item_init_push
    - refspec_item_init_fetch
    - ALLOC_GROW
    - _
    linkageType: ''
    returnType: void
    signature: void refspec_append(struct refspec *rs, const char *refspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/refspec.c:220,1
    - Dst: xstrvfmt
      Src: /src/git/refspec.c:221,1
    - Dst: va_end
      Src: /src/git/refspec.c:222,1
    - Dst: refspec_append
      Src: /src/git/refspec.c:224,1
    - Dst: free
      Src: /src/git/refspec.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - rs
    - fmt
    argTypes:
    - struct refspec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 8
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: refspec_appendf
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - refspec_append
    - va_end
    - free
    - va_start
    - xstrvfmt
    linkageType: ''
    returnType: void
    signature: void refspec_appendf(struct refspec *rs, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refspec_append
      Src: /src/git/refspec.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - rs
    - refspecs
    - nr
    argTypes:
    - struct refspec*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 8
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: refspec_appendn
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - refspec_append
    linkageType: ''
    returnType: void
    signature: void refspec_appendn(struct refspec *rs, const char **refspecs, int
      nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refspec_item_clear
      Src: /src/git/refspec.c:240,1
    - Dst: FREE_AND_NULL
      Src: /src/git/refspec.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct refspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: refspec_clear
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - refspec_item_clear
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void refspec_clear(struct refspec *rs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refspec_item_init_fetch
      Src: /src/git/refspec.c:252,1
    - Dst: refspec_item_clear
      Src: /src/git/refspec.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fetch_refspec_str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 7
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: valid_fetch_refspec
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - refspec_item_clear
    - refspec_item_init_fetch
    linkageType: ''
    returnType: int
    signature: int valid_fetch_refspec(const char *fetch_refspec_str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/refspec.c:288,1
    - Dst: strvec_pushf
      Src: /src/git/refspec.c:289,1
    - Dst: expand_ref_prefix
      Src: /src/git/refspec.c:293,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - rs
    - ref_prefixes
    argTypes:
    - struct refspec*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 296
    functionName: refspec_ref_prefixes
    functionSourceFile: /src/git/refspec.c
    functionUses: 1
    functionsReached:
    - expand_ref_prefix
    - strvec_pushf
    - strchr
    linkageType: ''
    returnType: void
    signature: "void refspec_ref_prefixes(const struct refspec *rs,\n\t\t\t  struct
      strvec *ref_prefixes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/refspec.c:301,1
    - Dst: die
      Src: /src/git/refspec.c:307,1
    - Dst: _
      Src: /src/git/refspec.c:307,1
    - Dst: strlen
      Src: /src/git/refspec.c:309,1
    - Dst: strlen
      Src: /src/git/refspec.c:310,1
    - Dst: strncmp
      Src: /src/git/refspec.c:311,1
    - Dst: memcmp
      Src: /src/git/refspec.c:312,1
    - Dst: strchr
      Src: /src/git/refspec.c:315,1
    - Dst: die
      Src: /src/git/refspec.c:317,1
    - Dst: _
      Src: /src/git/refspec.c:317,1
    - Dst: strbuf_add
      Src: /src/git/refspec.c:318,1
    - Dst: strbuf_add
      Src: /src/git/refspec.c:319,1
    - Dst: strbuf_addstr
      Src: /src/git/refspec.c:320,1
    - Dst: strbuf_detach
      Src: /src/git/refspec.c:321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - pattern
    - refname
    - replacement
    - result
    argTypes:
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 324
    functionName: match_refname_with_pattern
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - die
    - strchr
    - strlen
    - strbuf_detach
    - strbuf_addstr
    - _
    - strncmp
    - strbuf_add
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int match_refname_with_pattern(const char *pattern, const char *refname,\n\t\t\t\t
      \  const char *replacement, char **result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_refname_with_pattern
      Src: /src/git/refspec.c:330,1
    - Dst: strcmp
      Src: /src/git/refspec.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - refspec
    - name
    argTypes:
    - struct refspec_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: refspec_match
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - match_refname_with_pattern
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int refspec_match(const struct refspec_item *refspec,\n\t\t\t const
      char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refspec_match
      Src: /src/git/refspec.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - refname
    - rs
    argTypes:
    - char*
    - struct refspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 5
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: refname_matches_negative_refspec_item
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - refspec_match
    linkageType: ''
    returnType: int
    signature: int refname_matches_negative_refspec_item(const char *refname, struct
      refspec *rs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: match_refname_with_pattern
      Src: /src/git/refspec.c:381,1
    - Dst: string_list_append_nodup
      Src: /src/git/refspec.c:382,1
    - Dst: string_list_append
      Src: /src/git/refspec.c:385,1
    - Dst: BUG
      Src: /src/git/refspec.c:387,1
    - Dst: strcmp
      Src: /src/git/refspec.c:388,1
    - Dst: string_list_append
      Src: /src/git/refspec.c:389,1
    - Dst: refname_matches_negative_refspec_item
      Src: /src/git/refspec.c:394,1
    - Dst: string_list_clear
      Src: /src/git/refspec.c:398,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - rs
    - query
    argTypes:
    - struct refspec*
    - struct refspec_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 346
    functionDepth: 6
    functionLinenumber: 346
    functionLinenumberEnd: 401
    functionName: refspec_find_negative_match
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - refname_matches_negative_refspec_item
    - match_refname_with_pattern
    - string_list_append_nodup
    - string_list_append
    - strcmp
    - BUG
    linkageType: ''
    returnType: int
    signature: int refspec_find_negative_match(struct refspec *rs, struct refspec_item
      *query)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refspec.c:411,1
    - Dst: refspec_find_negative_match
      Src: /src/git/refspec.c:413,1
    - Dst: match_refname_with_pattern
      Src: /src/git/refspec.c:426,1
    - Dst: string_list_append_nodup
      Src: /src/git/refspec.c:427,1
    - Dst: strcmp
      Src: /src/git/refspec.c:428,1
    - Dst: string_list_append
      Src: /src/git/refspec.c:429,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - rs
    - query
    - results
    argTypes:
    - struct refspec*
    - struct refspec_item*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 403
    functionDepth: 7
    functionLinenumber: 403
    functionLinenumberEnd: 432
    functionName: refspec_find_all_matches
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - match_refname_with_pattern
    - string_list_append_nodup
    - string_list_append
    - strcmp
    - BUG
    - refspec_find_negative_match
    linkageType: ''
    returnType: void
    signature: "void refspec_find_all_matches(struct refspec *rs,\n\t\t\t\t    struct
      refspec_item *query,\n\t\t\t\t    struct string_list *results)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refspec.c:442,1
    - Dst: refspec_find_negative_match
      Src: /src/git/refspec.c:444,1
    - Dst: match_refname_with_pattern
      Src: /src/git/refspec.c:455,1
    - Dst: strcmp
      Src: /src/git/refspec.c:459,1
    - Dst: xstrdup
      Src: /src/git/refspec.c:460,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - rs
    - query
    argTypes:
    - struct refspec*
    - struct refspec_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 434
    functionDepth: 7
    functionLinenumber: 434
    functionLinenumberEnd: 466
    functionName: refspec_find_match
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - match_refname_with_pattern
    - strcmp
    - BUG
    - refspec_find_negative_match
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int refspec_find_match(struct refspec *rs, struct refspec_item *query)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refname_matches_negative_refspec_item
      Src: /src/git/refspec.c:475,1
    - Dst: free
      Src: /src/git/refspec.c:477,1
    - Dst: free
      Src: /src/git/refspec.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ref_map
    - rs
    argTypes:
    - struct ref*
    - struct refspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 468
    functionDepth: 6
    functionLinenumber: 468
    functionLinenumberEnd: 484
    functionName: apply_negative_refspecs
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - refname_matches_negative_refspec_item
    - free
    linkageType: ''
    returnType: struct ref
    signature: struct ref *apply_negative_refspecs(struct ref *ref_map, struct refspec
      *rs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/refspec.c:490,1
    - Dst: refspec_find_match
      Src: /src/git/refspec.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - rs
    - name
    argTypes:
    - struct refspec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 486
    functionDepth: 8
    functionLinenumber: 486
    functionLinenumberEnd: 497
    functionName: apply_refspecs
    functionSourceFile: /src/git/refspec.c
    functionUses: 0
    functionsReached:
    - memset
    - refspec_find_match
    linkageType: ''
    returnType: char
    signature: char *apply_refspecs(struct refspec *rs, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/submodule-config.c:60,1
    - Dst: container_of
      Src: /src/git/submodule-config.c:61,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:63,1
    - Dst: oideq
      Src: /src/git/submodule-config.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: config_path_cmp
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - container_of
    - oideq
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int config_path_cmp(const void *cmp_data UNUSED,\n\t\t\t   const struct
      hashmap_entry *eptr,\n\t\t\t   const struct hashmap_entry *entry_or_key,\n\t\t\t
      \  const void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/submodule-config.c:74,1
    - Dst: container_of
      Src: /src/git/submodule-config.c:75,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:77,1
    - Dst: oideq
      Src: /src/git/submodule-config.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: config_name_cmp
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - container_of
    - oideq
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int config_name_cmp(const void *cmp_data UNUSED,\n\t\t\t   const struct
      hashmap_entry *eptr,\n\t\t\t   const struct hashmap_entry *entry_or_key,\n\t\t\t
      \  const void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/submodule-config.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: submodule_cache_alloc
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct submodule_cache
    signature: struct submodule_cache *submodule_cache_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/submodule-config.c:88,1
    - Dst: hashmap_init
      Src: /src/git/submodule-config.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct submodule_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: submodule_cache_init
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - hashmap_init
    linkageType: ''
    returnType: void
    signature: void submodule_cache_init(struct submodule_cache *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/submodule-config.c:95,1
    - Dst: free
      Src: /src/git/submodule-config.c:96,1
    - Dst: free
      Src: /src/git/submodule-config.c:97,1
    - Dst: free
      Src: /src/git/submodule-config.c:98,1
    - Dst: free
      Src: /src/git/submodule-config.c:99,1
    - Dst: submodule_update_strategy_release
      Src: /src/git/submodule-config.c:100,1
    - Dst: free
      Src: /src/git/submodule-config.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct submodule_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: free_one_config
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - submodule_update_strategy_release
    - free
    linkageType: ''
    returnType: void
    signature: void free_one_config(struct submodule_entry *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/submodule-config.c:117,1
    - Dst: free_one_config
      Src: /src/git/submodule-config.c:119,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/submodule-config.c:121,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/submodule-config.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct submodule_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: submodule_cache_clear
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - free_one_config
    - hashmap_for_each_entry
    - hashmap_clear_and_free
    linkageType: ''
    returnType: void
    signature: void submodule_cache_clear(struct submodule_cache *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: submodule_cache_clear
      Src: /src/git/submodule-config.c:129,1
    - Dst: free
      Src: /src/git/submodule-config.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct submodule_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: submodule_cache_free
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - submodule_cache_clear
    - free
    linkageType: ''
    returnType: void
    signature: void submodule_cache_free(struct submodule_cache *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memhash
      Src: /src/git/submodule-config.c:136,1
    - Dst: strhash
      Src: /src/git/submodule-config.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid
    - string
    argTypes:
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: hash_oid_string
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - strhash
    - memhash
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int hash_oid_string(const struct object_id *oid,\n\t\t\t\t
      \   const char *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_oid_string
      Src: /src/git/submodule-config.c:142,1
    - Dst: xmalloc
      Src: /src/git/submodule-config.c:144,1
    - Dst: hashmap_entry_init
      Src: /src/git/submodule-config.c:145,1
    - Dst: hashmap_put
      Src: /src/git/submodule-config.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cache
    - submodule
    argTypes:
    - struct submodule_cache*
    - struct submodule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: cache_put_path
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - hash_oid_string
    - xmalloc
    - hashmap_entry_init
    - hashmap_put
    linkageType: ''
    returnType: void
    signature: "void cache_put_path(struct submodule_cache *cache,\n\t\t\t   struct
      submodule *submodule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_oid_string
      Src: /src/git/submodule-config.c:153,1
    - Dst: hashmap_entry_init
      Src: /src/git/submodule-config.c:157,1
    - Dst: hashmap_remove_entry
      Src: /src/git/submodule-config.c:159,1
    - Dst: free
      Src: /src/git/submodule-config.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cache
    - submodule
    argTypes:
    - struct submodule_cache*
    - struct submodule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: cache_remove_path
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - hashmap_remove_entry
    - hash_oid_string
    - hashmap_entry_init
    - free
    linkageType: ''
    returnType: void
    signature: "void cache_remove_path(struct submodule_cache *cache,\n\t\t\t      struct
      submodule *submodule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_oid_string
      Src: /src/git/submodule-config.c:166,1
    - Dst: xmalloc
      Src: /src/git/submodule-config.c:168,1
    - Dst: hashmap_entry_init
      Src: /src/git/submodule-config.c:169,1
    - Dst: hashmap_add
      Src: /src/git/submodule-config.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cache
    - submodule
    argTypes:
    - struct submodule_cache*
    - struct submodule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: cache_add
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - hash_oid_string
    - xmalloc
    - hashmap_entry_init
    - hashmap_add
    linkageType: ''
    returnType: void
    signature: "void cache_add(struct submodule_cache *cache,\n\t\t      struct submodule
      *submodule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_oid_string
      Src: /src/git/submodule-config.c:178,1
    - Dst: oidcpy
      Src: /src/git/submodule-config.c:182,1
    - Dst: hashmap_entry_init
      Src: /src/git/submodule-config.c:185,1
    - Dst: hashmap_get_entry
      Src: /src/git/submodule-config.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - cache
    - gitmodules_oid
    - path
    argTypes:
    - struct submodule_cache*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: cache_lookup_path
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - hash_oid_string
    - hashmap_entry_init
    - hashmap_get_entry
    - oidcpy
    linkageType: ''
    returnType: struct submodule
    signature: "struct submodule *cache_lookup_path(struct submodule_cache *cache,\n\t\tconst
      struct object_id *gitmodules_oid, const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_oid_string
      Src: /src/git/submodule-config.c:198,1
    - Dst: oidcpy
      Src: /src/git/submodule-config.c:202,1
    - Dst: hashmap_entry_init
      Src: /src/git/submodule-config.c:205,1
    - Dst: hashmap_get_entry
      Src: /src/git/submodule-config.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - cache
    - gitmodules_oid
    - name
    argTypes:
    - struct submodule_cache*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 212
    functionName: cache_lookup_name
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - hash_oid_string
    - hashmap_entry_init
    - hashmap_get_entry
    - oidcpy
    linkageType: ''
    returnType: struct submodule
    signature: "struct submodule *cache_lookup_name(struct submodule_cache *cache,\n\t\tconst
      struct object_id *gitmodules_oid, const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_xplatform_dir_sep
      Src: /src/git/submodule-config.c:228,1
    - Dst: is_xplatform_dir_sep
      Src: /src/git/submodule-config.c:231,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 237
    functionName: check_submodule_name
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - is_xplatform_dir_sep
    linkageType: ''
    returnType: int
    signature: int check_submodule_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starts_with_dot_slash
      Src: /src/git/submodule-config.c:241,1
    - Dst: starts_with_dot_dot_slash
      Src: /src/git/submodule-config.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: submodule_url_is_relative
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - starts_with_dot_slash
    - starts_with_dot_dot_slash
    linkageType: ''
    returnType: int
    signature: int submodule_url_is_relative(const char *url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: starts_with_dot_dot_slash
      Src: /src/git/submodule-config.c:259,1
    - Dst: strlen
      Src: /src/git/submodule-config.c:261,1
    - Dst: starts_with_dot_slash
      Src: /src/git/submodule-config.c:264,1
    - Dst: strlen
      Src: /src/git/submodule-config.c:265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - url
    - out
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 271
    functionName: count_leading_dotdots
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - starts_with_dot_slash
    - starts_with_dot_dot_slash
    - strlen
    linkageType: ''
    returnType: int
    signature: int count_leading_dotdots(const char *url, const char **out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/submodule-config.c:296,1
    - Dst: skip_prefix
      Src: /src/git/submodule-config.c:297,1
    - Dst: skip_prefix
      Src: /src/git/submodule-config.c:298,1
    - Dst: skip_prefix
      Src: /src/git/submodule-config.c:299,1
    - Dst: starts_with
      Src: /src/git/submodule-config.c:301,1
    - Dst: starts_with
      Src: /src/git/submodule-config.c:302,1
    - Dst: starts_with
      Src: /src/git/submodule-config.c:303,1
    - Dst: starts_with
      Src: /src/git/submodule-config.c:304,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - url
    - out
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: url_to_curl_url
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - starts_with
    linkageType: ''
    returnType: int
    signature: int url_to_curl_url(const char *url, const char **out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: looks_like_command_line_option
      Src: /src/git/submodule-config.c:315,1
    - Dst: submodule_url_is_relative
      Src: /src/git/submodule-config.c:318,1
    - Dst: starts_with
      Src: /src/git/submodule-config.c:318,1
    - Dst: url_decode
      Src: /src/git/submodule-config.c:327,1
    - Dst: strchr
      Src: /src/git/submodule-config.c:328,1
    - Dst: free
      Src: /src/git/submodule-config.c:330,1
    - Dst: count_leading_dotdots
      Src: /src/git/submodule-config.c:341,1
    - Dst: url_to_curl_url
      Src: /src/git/submodule-config.c:346,1
    - Dst: url_normalize
      Src: /src/git/submodule-config.c:348,1
    - Dst: url_decode
      Src: /src/git/submodule-config.c:350,1
    - Dst: strchr
      Src: /src/git/submodule-config.c:351,1
    - Dst: free
      Src: /src/git/submodule-config.c:353,1
    - Dst: free
      Src: /src/git/submodule-config.c:354,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 363
    functionName: check_submodule_url
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - url_normalize
    - url_to_curl_url
    - strchr
    - starts_with
    - looks_like_command_line_option
    - submodule_url_is_relative
    - free
    - url_decode
    - count_leading_dotdots
    linkageType: ''
    returnType: int
    signature: int check_submodule_url(const char *url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/submodule-config.c:371,1
    - Dst: strbuf_add
      Src: /src/git/submodule-config.c:376,1
    - Dst: check_submodule_name
      Src: /src/git/submodule-config.c:377,1
    - Dst: warning
      Src: /src/git/submodule-config.c:378,1
    - Dst: _
      Src: /src/git/submodule-config.c:378,1
    - Dst: strbuf_release
      Src: /src/git/submodule-config.c:379,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule-config.c:383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - var
    - name
    - item
    argTypes:
    - char*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 386
    functionName: name_and_item_from_var
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - parse_config_key
    - check_submodule_name
    - strbuf_addstr
    - _
    - warning
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int name_and_item_from_var(const char *var, struct strbuf *name,\n\t\t\t\t
      \ struct strbuf *item)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_lookup_name
      Src: /src/git/submodule-config.c:394,1
    - Dst: xmalloc
      Src: /src/git/submodule-config.c:398,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule-config.c:400,1
    - Dst: strbuf_detach
      Src: /src/git/submodule-config.c:401,1
    - Dst: oidcpy
      Src: /src/git/submodule-config.c:412,1
    - Dst: cache_add
      Src: /src/git/submodule-config.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - cache
    - gitmodules_oid
    - name
    argTypes:
    - struct submodule_cache*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 417
    functionName: lookup_or_create_by_name
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - cache_add
    - cache_lookup_name
    - xmalloc
    - strbuf_detach
    - strbuf_addstr
    linkageType: ''
    returnType: struct submodule
    signature: "struct submodule *lookup_or_create_by_name(struct submodule_cache
      *cache,\n\t\tconst struct object_id *gitmodules_oid, const char *name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/submodule-config.c:422,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:428,1
    - Dst: die
      Src: /src/git/submodule-config.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - opt
    - arg
    - die_on_error
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 439
    functionName: parse_fetch_recurse
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - git_parse_maybe_bool
    - die
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int parse_fetch_recurse(const char *opt, const char *arg,\n\t\t\t
      \      int die_on_error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_config_int
      Src: /src/git/submodule-config.c:444,1
    - Dst: die
      Src: /src/git/submodule-config.c:446,1
    - Dst: _
      Src: /src/git/submodule-config.c:446,1
    - Dst: online_cpus
      Src: /src/git/submodule-config.c:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - var
    - value
    - kvi
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: parse_submodule_fetchjobs
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - die
    - online_cpus
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_submodule_fetchjobs(const char *var, const char *value,\n\t\t\t
      \     const struct key_value_info *kvi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_fetch_recurse
      Src: /src/git/submodule-config.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opt
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: parse_fetch_recurse_submodules_arg
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - parse_fetch_recurse
    linkageType: ''
    returnType: int
    signature: int parse_fetch_recurse_submodules_arg(const char *opt, const char
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_fetch_recurse_submodules_arg
      Src: /src/git/submodule-config.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 476
    functionName: option_fetch_parse_recurse_submodules
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - parse_fetch_recurse_submodules_arg
    linkageType: ''
    returnType: int
    signature: "int option_fetch_parse_recurse_submodules(const struct option *opt,\n\t\t\t\t\t
      \ const char *arg, int unset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/submodule-config.c:481,1
    - Dst: die
      Src: /src/git/submodule-config.c:488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - die_on_error
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 491
    functionName: parse_update_recurse
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - git_parse_maybe_bool
    - die
    linkageType: ''
    returnType: int
    signature: "int parse_update_recurse(const char *opt, const char *arg,\n\t\t\t\tint
      die_on_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_update_recurse
      Src: /src/git/submodule-config.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opt
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: parse_update_recurse_submodules_arg
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - parse_update_recurse
    linkageType: ''
    returnType: int
    signature: int parse_update_recurse_submodules_arg(const char *opt, const char
      *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/submodule-config.c:501,1
    - Dst: die
      Src: /src/git/submodule-config.c:505,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:511,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:513,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:515,1
    - Dst: die
      Src: /src/git/submodule-config.c:522,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - opt
    - arg
    - die_on_error
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 526
    functionName: parse_push_recurse
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - git_parse_maybe_bool
    - die
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int parse_push_recurse(const char *opt, const char *arg,\n\t\t\t       int
      die_on_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_push_recurse
      Src: /src/git/submodule-config.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opt
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: parse_push_recurse_submodules_arg
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - parse_push_recurse
    linkageType: ''
    returnType: int
    signature: int parse_push_recurse_submodules_arg(const char *opt, const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/submodule-config.c:538,1
    - Dst: warning
      Src: /src/git/submodule-config.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - treeish_name
    - name
    - option
    argTypes:
    - struct object_id*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 542
    functionName: warn_multiple_config
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - warning
    linkageType: ''
    returnType: void
    signature: "void warn_multiple_config(const struct object_id *treeish_name,\n\t\t\t\t
      const char *name, const char *option)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/submodule-config.c:546,1
    - Dst: _
      Src: /src/git/submodule-config.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 548
    functionName: warn_command_line_option
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - warning
    - _
    linkageType: ''
    returnType: void
    signature: void warn_command_line_option(const char *var, const char *value)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: name_and_item_from_var
      Src: /src/git/submodule-config.c:573,1
    - Dst: lookup_or_create_by_name
      Src: /src/git/submodule-config.c:576,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:580,1
    - Dst: config_error_nonbool
      Src: /src/git/submodule-config.c:582,1
    - Dst: looks_like_command_line_option
      Src: /src/git/submodule-config.c:583,1
    - Dst: warn_command_line_option
      Src: /src/git/submodule-config.c:584,1
    - Dst: warn_multiple_config
      Src: /src/git/submodule-config.c:586,1
    - Dst: cache_remove_path
      Src: /src/git/submodule-config.c:590,1
    - Dst: free
      Src: /src/git/submodule-config.c:591,1
    - Dst: xstrdup
      Src: /src/git/submodule-config.c:592,1
    - Dst: cache_put_path
      Src: /src/git/submodule-config.c:593,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:595,1
    - Dst: is_null_oid
      Src: /src/git/submodule-config.c:597,1
    - Dst: warn_multiple_config
      Src: /src/git/submodule-config.c:600,1
    - Dst: parse_fetch_recurse
      Src: /src/git/submodule-config.c:603,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:606,1
    - Dst: config_error_nonbool
      Src: /src/git/submodule-config.c:608,1
    - Dst: warn_multiple_config
      Src: /src/git/submodule-config.c:610,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:612,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:613,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:614,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:615,1
    - Dst: warning
      Src: /src/git/submodule-config.c:616,1
    - Dst: free
      Src: /src/git/submodule-config.c:619,1
    - Dst: xstrdup
      Src: /src/git/submodule-config.c:620,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:622,1
    - Dst: config_error_nonbool
      Src: /src/git/submodule-config.c:624,1
    - Dst: looks_like_command_line_option
      Src: /src/git/submodule-config.c:625,1
    - Dst: warn_command_line_option
      Src: /src/git/submodule-config.c:626,1
    - Dst: warn_multiple_config
      Src: /src/git/submodule-config.c:628,1
    - Dst: free
      Src: /src/git/submodule-config.c:631,1
    - Dst: xstrdup
      Src: /src/git/submodule-config.c:632,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:634,1
    - Dst: config_error_nonbool
      Src: /src/git/submodule-config.c:636,1
    - Dst: warn_multiple_config
      Src: /src/git/submodule-config.c:639,1
    - Dst: parse_submodule_update_strategy
      Src: /src/git/submodule-config.c:641,1
    - Dst: die
      Src: /src/git/submodule-config.c:644,1
    - Dst: _
      Src: /src/git/submodule-config.c:644,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:645,1
    - Dst: warn_multiple_config
      Src: /src/git/submodule-config.c:647,1
    - Dst: git_config_bool
      Src: /src/git/submodule-config.c:651,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:652,1
    - Dst: config_error_nonbool
      Src: /src/git/submodule-config.c:654,1
    - Dst: warn_multiple_config
      Src: /src/git/submodule-config.c:656,1
    - Dst: free
      Src: /src/git/submodule-config.c:659,1
    - Dst: xstrdup
      Src: /src/git/submodule-config.c:660,1
    - Dst: strbuf_release
      Src: /src/git/submodule-config.c:664,1
    - Dst: strbuf_release
      Src: /src/git/submodule-config.c:665,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 73
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 564
    functionDepth: 4
    functionLinenumber: 564
    functionLinenumberEnd: 668
    functionName: parse_config
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 1
    functionsReached:
    - is_null_oid
    - warn_multiple_config
    - config_error_nonbool
    - strcmp
    - free
    - strbuf_release
    - die
    - looks_like_command_line_option
    - parse_submodule_update_strategy
    - parse_fetch_recurse
    - cache_put_path
    - cache_remove_path
    - warn_command_line_option
    - git_config_bool
    - _
    - warning
    - xstrdup
    - lookup_or_create_by_name
    - name_and_item_from_var
    linkageType: ''
    returnType: int
    signature: "int parse_config(const char *var, const char *value,\n\t\t\tconst
      struct config_context *ctx UNUSED, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/submodule-config.c:676,1
    - Dst: oidclr
      Src: /src/git/submodule-config.c:677,1
    - Dst: strbuf_addf
      Src: /src/git/submodule-config.c:681,1
    - Dst: oid_to_hex
      Src: /src/git/submodule-config.c:681,1
    - Dst: repo_get_oid
      Src: /src/git/submodule-config.c:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - treeish_name
    - gitmodules_oid
    - rev
    argTypes:
    - struct object_id*
    - struct object_id*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 670
    functionDepth: 4
    functionLinenumber: 670
    functionLinenumberEnd: 686
    functionName: gitmodule_oid_from_commit
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - repo_get_oid
    - strbuf_addf
    - is_null_oid
    - oidclr
    linkageType: ''
    returnType: int
    signature: "int gitmodule_oid_from_commit(const struct object_id *treeish_name,\n\t\t\t\t
      \    struct object_id *gitmodules_oid,\n\t\t\t\t     struct strbuf *rev)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_iter_first_entry
      Src: /src/git/submodule-config.c:713,1
    - Dst: gitmodule_oid_from_commit
      Src: /src/git/submodule-config.c:721,1
    - Dst: cache_lookup_name
      Src: /src/git/submodule-config.c:726,1
    - Dst: cache_lookup_path
      Src: /src/git/submodule-config.c:729,1
    - Dst: odb_read_object
      Src: /src/git/submodule-config.c:735,1
    - Dst: git_config_from_mem
      Src: /src/git/submodule-config.c:745,1
    - Dst: strbuf_release
      Src: /src/git/submodule-config.c:747,1
    - Dst: free
      Src: /src/git/submodule-config.c:748,1
    - Dst: cache_lookup_name
      Src: /src/git/submodule-config.c:752,1
    - Dst: cache_lookup_path
      Src: /src/git/submodule-config.c:754,1
    - Dst: strbuf_release
      Src: /src/git/submodule-config.c:760,1
    - Dst: free
      Src: /src/git/submodule-config.c:761,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - cache
    - treeish_name
    - key
    - lookup_type
    argTypes:
    - struct submodule_cache*
    - struct object_id*
    - char*
    - enum lookup_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 692
    functionDepth: 5
    functionLinenumber: 692
    functionLinenumberEnd: 763
    functionName: config_from
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - odb_read_object
    - cache_lookup_path
    - cache_lookup_name
    - gitmodule_oid_from_commit
    - git_config_from_mem
    - free
    - hashmap_iter_first_entry
    linkageType: ''
    returnType: struct submodule
    signature: "struct submodule *config_from(struct submodule_cache *cache,\n\t\tconst
      struct object_id *treeish_name, const char *key,\n\t\tenum lookup_type lookup_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: submodule_cache_alloc
      Src: /src/git/submodule-config.c:771,1
    - Dst: submodule_cache_init
      Src: /src/git/submodule-config.c:773,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 774
    functionName: submodule_cache_check_init
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - submodule_cache_alloc
    - submodule_cache_init
    linkageType: ''
    returnType: void
    signature: void submodule_cache_check_init(struct repository *repo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_worktree_path
      Src: /src/git/submodule-config.c:795,1
    - Dst: file_exists
      Src: /src/git/submodule-config.c:796,1
    - Dst: repo_get_oid
      Src: /src/git/submodule-config.c:798,1
    - Dst: repo_get_oid
      Src: /src/git/submodule-config.c:799,1
    - Dst: xstrdup
      Src: /src/git/submodule-config.c:800,1
    - Dst: oid_to_hex
      Src: /src/git/submodule-config.c:800,1
    - Dst: odb_add_submodule_source_by_path
      Src: /src/git/submodule-config.c:802,1
    - Dst: config_with_options
      Src: /src/git/submodule-config.c:808,1
    - Dst: free
      Src: /src/git/submodule-config.c:811,1
    - Dst: free
      Src: /src/git/submodule-config.c:812,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - fn
    - repo
    - data
    argTypes:
    - config_fn_t
    - struct repository*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 784
    functionDepth: 4
    functionLinenumber: 784
    functionLinenumberEnd: 814
    functionName: config_from_gitmodules
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - repo_worktree_path
    - odb_add_submodule_source_by_path
    - repo_get_oid
    - config_with_options
    - free
    - file_exists
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void config_from_gitmodules(config_fn_t fn, struct repository *repo,
      void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: null_oid
      Src: /src/git/submodule-config.c:824,1
    - Dst: parse_config
      Src: /src/git/submodule-config.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 828
    functionName: gitmodules_cb
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - null_oid
    - parse_config
    linkageType: ''
    returnType: int
    signature: "int gitmodules_cb(const char *var, const char *value,\n\t\t\t const
      struct config_context *ctx, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: submodule_cache_check_init
      Src: /src/git/submodule-config.c:832,1
    - Dst: repo_read_index
      Src: /src/git/submodule-config.c:837,1
    - Dst: is_gitmodules_unmerged
      Src: /src/git/submodule-config.c:840,1
    - Dst: config_from_gitmodules
      Src: /src/git/submodule-config.c:841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - repo
    - skip_if_read
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 830
    functionDepth: 5
    functionLinenumber: 830
    functionLinenumberEnd: 844
    functionName: repo_read_gitmodules
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - repo_read_index
    - config_from_gitmodules
    - submodule_cache_check_init
    - is_gitmodules_unmerged
    linkageType: ''
    returnType: void
    signature: void repo_read_gitmodules(struct repository *repo, int skip_if_read)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: submodule_cache_check_init
      Src: /src/git/submodule-config.c:851,1
    - Dst: gitmodule_oid_from_commit
      Src: /src/git/submodule-config.c:853,1
    - Dst: git_config_from_blob_oid
      Src: /src/git/submodule-config.c:854,1
    - Dst: strbuf_release
      Src: /src/git/submodule-config.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - commit_oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 846
    functionDepth: 5
    functionLinenumber: 846
    functionLinenumberEnd: 861
    functionName: gitmodules_config_oid
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - gitmodule_oid_from_commit
    - strbuf_release
    - submodule_cache_check_init
    - git_config_from_blob_oid
    linkageType: ''
    returnType: void
    signature: void gitmodules_config_oid(const struct object_id *commit_oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_gitmodules
      Src: /src/git/submodule-config.c:867,1
    - Dst: config_from
      Src: /src/git/submodule-config.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - treeish_name
    - name
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 863
    functionDepth: 6
    functionLinenumber: 863
    functionLinenumberEnd: 869
    functionName: submodule_from_name
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - config_from
    - repo_read_gitmodules
    linkageType: ''
    returnType: struct submodule
    signature: "struct submodule *submodule_from_name(struct repository *r,\n\t\t\t\t\t
      \   const struct object_id *treeish_name,\n\t\tconst char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_gitmodules
      Src: /src/git/submodule-config.c:875,1
    - Dst: config_from
      Src: /src/git/submodule-config.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - treeish_name
    - path
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 871
    functionDepth: 6
    functionLinenumber: 871
    functionLinenumberEnd: 877
    functionName: submodule_from_path
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 2
    functionsReached:
    - config_from
    - repo_read_gitmodules
    linkageType: ''
    returnType: struct submodule
    signature: "struct submodule *submodule_from_path(struct repository *r,\n\t\t\t\t\t
      \   const struct object_id *treeish_name,\n\t\tconst char *path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fill_tree_descriptor
      Src: /src/git/submodule-config.c:897,1
    - Dst: tree_entry
      Src: /src/git/submodule-config.c:898,1
    - Dst: mkpathdup
      Src: /src/git/submodule-config.c:901,1
    - Dst: xstrdup
      Src: /src/git/submodule-config.c:903,1
    - Dst: S_ISGITLINK
      Src: /src/git/submodule-config.c:905,1
    - Dst: is_tree_submodule_active
      Src: /src/git/submodule-config.c:906,1
    - Dst: ALLOC_GROW
      Src: /src/git/submodule-config.c:907,1
    - Dst: xmalloc
      Src: /src/git/submodule-config.c:911,1
    - Dst: submodule_from_path
      Src: /src/git/submodule-config.c:914,1
    - Dst: xmalloc
      Src: /src/git/submodule-config.c:915,1
    - Dst: repo_submodule_init
      Src: /src/git/submodule-config.c:916,1
    - Dst: FREE_AND_NULL
      Src: /src/git/submodule-config.c:918,1
    - Dst: S_ISDIR
      Src: /src/git/submodule-config.c:920,1
    - Dst: traverse_tree_submodules
      Src: /src/git/submodule-config.c:921,1
    - Dst: free
      Src: /src/git/submodule-config.c:923,1
    - Dst: free
      Src: /src/git/submodule-config.c:926,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - r
    - root_tree
    - prefix
    - treeish_name
    - out
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    - struct object_id*
    - struct submodule_entry_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 885
    functionDepth: 7
    functionLinenumber: 885
    functionLinenumberEnd: 927
    functionName: traverse_tree_submodules
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 1
    functionsReached:
    - submodule_from_path
    - S_ISDIR
    - tree_entry
    - is_tree_submodule_active
    - repo_submodule_init
    - S_ISGITLINK
    - xmalloc
    - FREE_AND_NULL
    - ALLOC_GROW
    - traverse_tree_submodules
    - free
    - mkpathdup
    - fill_tree_descriptor
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void traverse_tree_submodules(struct repository *r,\n\t\t\t\t     const
      struct object_id *root_tree,\n\t\t\t\t     char *prefix,\n\t\t\t\t     const
      struct object_id *treeish_name,\n\t\t\t\t     struct submodule_entry_list *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/submodule-config.c:933,1
    - Dst: traverse_tree_submodules
      Src: /src/git/submodule-config.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - r
    - treeish_name
    - out
    argTypes:
    - struct repository*
    - struct object_id*
    - struct submodule_entry_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 929
    functionDepth: 8
    functionLinenumber: 929
    functionLinenumberEnd: 938
    functionName: submodules_of_tree
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - traverse_tree_submodules
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void submodules_of_tree(struct repository *r,\n\t\t\tconst struct
      object_id *treeish_name,\n\t\t\tstruct submodule_entry_list *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/submodule-config.c:943,1
    - Dst: repo_clear
      Src: /src/git/submodule-config.c:944,1
    - Dst: free
      Src: /src/git/submodule-config.c:945,1
    - Dst: free
      Src: /src/git/submodule-config.c:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct submodule_entry_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 948
    functionName: submodule_entry_list_release
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - repo_clear
    - free
    linkageType: ''
    returnType: void
    signature: void submodule_entry_list_release(struct submodule_entry_list *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: submodule_cache_clear
      Src: /src/git/submodule-config.c:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: submodule_free
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - submodule_cache_clear
    linkageType: ''
    returnType: void
    signature: void submodule_free(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/submodule-config.c:962,1
    - Dst: printf
      Src: /src/git/submodule-config.c:963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - cb_data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 966
    functionName: config_print_callback
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - printf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int config_print_callback(const char *var, const char *value,\n\t\t\t\t
      const struct config_context *ctx UNUSED,\n\t\t\t\t void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_config_parse_key
      Src: /src/git/submodule-config.c:973,1
    - Dst: config_from_gitmodules
      Src: /src/git/submodule-config.c:977,1
    - Dst: free
      Src: /src/git/submodule-config.c:979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - repo
    - key
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 968
    functionDepth: 5
    functionLinenumber: 968
    functionLinenumberEnd: 981
    functionName: print_config_from_gitmodules
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - config_from_gitmodules
    - git_config_parse_key
    - free
    linkageType: ''
    returnType: int
    signature: int print_config_from_gitmodules(struct repository *repo, const char
      *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/submodule-config.c:987,1
    - Dst: warning
      Src: /src/git/submodule-config.c:990,1
    - Dst: _
      Src: /src/git/submodule-config.c:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 993
    functionName: config_set_in_gitmodules_file_gently
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - repo_config_set_in_file_gently
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: int config_set_in_gitmodules_file_gently(const char *key, const char
      *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/submodule-config.c:1005,1
    - Dst: parse_submodule_fetchjobs
      Src: /src/git/submodule-config.c:1008,1
    - Dst: strcmp
      Src: /src/git/submodule-config.c:1010,1
    - Dst: parse_fetch_recurse_submodules_arg
      Src: /src/git/submodule-config.c:1013,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1000
    functionDepth: 3
    functionLinenumber: 1000
    functionLinenumberEnd: 1018
    functionName: gitmodules_fetch_config
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - parse_fetch_recurse_submodules_arg
    - parse_submodule_fetchjobs
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int gitmodules_fetch_config(const char *var, const char *value,\n\t\t\t\t
      \  const struct config_context *ctx,\n\t\t\t\t   void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_from_gitmodules
      Src: /src/git/submodule-config.c:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - max_children
    - recurse_submodules
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1020
    functionDepth: 5
    functionLinenumber: 1020
    functionLinenumberEnd: 1027
    functionName: fetch_config_from_gitmodules
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - config_from_gitmodules
    linkageType: ''
    returnType: void
    signature: void fetch_config_from_gitmodules(int *max_children, int *recurse_submodules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/submodule-config.c:1034,1
    - Dst: parse_submodule_fetchjobs
      Src: /src/git/submodule-config.c:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1037
    functionName: gitmodules_update_clone_config
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - parse_submodule_fetchjobs
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int gitmodules_update_clone_config(const char *var, const char *value,\n\t\t\t\t\t
      \ const struct config_context *ctx,\n\t\t\t\t\t  void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_from_gitmodules
      Src: /src/git/submodule-config.c:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_jobs
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1039
    functionDepth: 5
    functionLinenumber: 1039
    functionLinenumberEnd: 1042
    functionName: update_clone_config_from_gitmodules
    functionSourceFile: /src/git/submodule-config.c
    functionUses: 0
    functionsReached:
    - config_from_gitmodules
    linkageType: ''
    returnType: void
    signature: void update_clone_config_from_gitmodules(int *max_jobs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct diff_flags*
    - struct diff_flags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: diff_flags_or
    functionSourceFile: /src/git/diff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void diff_flags_or(struct diff_flags *a,\n\t\t\t\t const struct diff_flags
      *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opts
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: DIFF_XDL_TST
    functionSourceFile: /src/git/diff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF_XDL_TST(opts, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opts
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: DIFF_XDL_SET
    functionSourceFile: /src/git/diff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF_XDL_SET(opts, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opts
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: DIFF_XDL_CLR
    functionSourceFile: /src/git/diff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF_XDL_CLR(opts, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opts
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: DIFF_WITH_ALG
    functionSourceFile: /src/git/diff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF_WITH_ALG(opts, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - ix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: diff_get_color_opt
    functionSourceFile: /src/git/diff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: diff_get_color_opt(o, ix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: always_advertise
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int always_advertise(struct repository *r UNUSED,\n\t\t\t    struct
      strbuf *value UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/serve.c:29,1
    - Dst: git_user_agent_sanitized
      Src: /src/git/serve.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - UNUSED
    - value
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: agent_advertise
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - git_user_agent_sanitized
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int agent_advertise(struct repository *r UNUSED,\n\t\t\t   struct
      strbuf *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: promisor_remote_info
      Src: /src/git/serve.c:37,1
    - Dst: strbuf_addstr
      Src: /src/git/serve.c:40,1
    - Dst: free
      Src: /src/git/serve.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: promisor_remote_advertise
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - promisor_remote_info
    - strbuf_addstr
    - free
    linkageType: ''
    returnType: int
    signature: "int promisor_remote_advertise(struct repository *r,\n\t\t\t\t     struct
      strbuf *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_promisor_remotes_as_accepted
      Src: /src/git/serve.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - remotes
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: promisor_remote_receive
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - mark_promisor_remotes_as_accepted
    linkageType: ''
    returnType: void
    signature: "void promisor_remote_receive(struct repository *r,\n\t\t\t\t    const
      char *remotes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/serve.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: object_format_advertise
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int object_format_advertise(struct repository *r,\n\t\t\t\t   struct
      strbuf *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/serve.c:65,1
    - Dst: hash_algo_by_name
      Src: /src/git/serve.c:67,1
    - Dst: die
      Src: /src/git/serve.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - UNUSED
    - algo_name
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: object_format_receive
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - hash_algo_by_name
    - die
    linkageType: ''
    returnType: void
    signature: "void object_format_receive(struct repository *r UNUSED,\n\t\t\t\t
      \ const char *algo_name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/serve.c:75,1
    - Dst: strbuf_addstr
      Src: /src/git/serve.c:80,1
    - Dst: trace2_session_id
      Src: /src/git/serve.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: session_id_advertise
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - repo_config_get_bool
    - strbuf_addstr
    - trace2_session_id
    linkageType: ''
    returnType: int
    signature: int session_id_advertise(struct repository *r, struct strbuf *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace2_data_string
      Src: /src/git/serve.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - UNUSED
    - client_sid
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: session_id_receive
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - trace2_data_string
    linkageType: ''
    returnType: void
    signature: "void session_id_receive(struct repository *r UNUSED,\n\t\t\t       const
      char *client_sid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/serve.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - r
    - UNUSED
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: object_info_advertise
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - repo_config_get_bool
    linkageType: ''
    returnType: int
    signature: int object_info_advertise(struct repository *r, struct strbuf *value
      UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packet_write_fmt
      Src: /src/git/serve.c:192,1
    - Dst: ARRAY_SIZE
      Src: /src/git/serve.c:194,1
    - Dst: struct protocol_capability*::advertise
      Src: /src/git/serve.c:197,1
    - Dst: strbuf_addstr
      Src: /src/git/serve.c:198,1
    - Dst: strbuf_addch
      Src: /src/git/serve.c:201,1
    - Dst: strbuf_addbuf
      Src: /src/git/serve.c:202,1
    - Dst: strbuf_addch
      Src: /src/git/serve.c:205,1
    - Dst: packet_write
      Src: /src/git/serve.c:206,1
    - Dst: strbuf_reset
      Src: /src/git/serve.c:209,1
    - Dst: strbuf_reset
      Src: /src/git/serve.c:210,1
    - Dst: packet_flush
      Src: /src/git/serve.c:213,1
    - Dst: strbuf_release
      Src: /src/git/serve.c:214,1
    - Dst: strbuf_release
      Src: /src/git/serve.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 216
    functionName: protocol_v2_advertise_capabilities
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - packet_write_fmt
    - strbuf_release
    - strbuf_reset
    - struct protocol_capability*::advertise
    - packet_flush
    - strbuf_addch
    - strbuf_addbuf
    - strbuf_addstr
    - packet_write
    linkageType: ''
    returnType: void
    signature: void protocol_v2_advertise_capabilities(struct repository *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/serve.c:223,1
    - Dst: skip_prefix
      Src: /src/git/serve.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: get_capability
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - skip_prefix
    linkageType: ''
    returnType: struct protocol_capability
    signature: struct protocol_capability *get_capability(const char *key, const char
      **value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_capability
      Src: /src/git/serve.c:244,1
    - Dst: struct protocol_capability*::advertise
      Src: /src/git/serve.c:246,1
    - Dst: struct protocol_capability*::receive
      Src: /src/git/serve.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - r
    - key
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 252
    functionName: receive_client_capability
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - get_capability
    - struct protocol_capability*::advertise
    - struct protocol_capability*::receive
    linkageType: ''
    returnType: int
    signature: int receive_client_capability(struct repository *r, const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/serve.c:258,1
    - Dst: get_capability
      Src: /src/git/serve.c:260,1
    - Dst: die
      Src: /src/git/serve.c:263,1
    - Dst: struct protocol_capability*::advertise
      Src: /src/git/serve.c:265,1
    - Dst: die
      Src: /src/git/serve.c:266,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - r
    - key
    - command
    argTypes:
    - struct repository*
    - char*
    - struct protocol_capability**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 273
    functionName: parse_command
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - struct protocol_capability*::advertise
    - get_capability
    - skip_prefix
    - die
    linkageType: ''
    returnType: int
    signature: int parse_command(struct repository *r, const char *key, struct protocol_capability
      **command)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_init
      Src: /src/git/serve.c:287,1
    - Dst: packet_reader_peek
      Src: /src/git/serve.c:296,1
    - Dst: packet_reader_peek
      Src: /src/git/serve.c:301,1
    - Dst: BUG
      Src: /src/git/serve.c:303,1
    - Dst: parse_command
      Src: /src/git/serve.c:305,1
    - Dst: receive_client_capability
      Src: /src/git/serve.c:306,1
    - Dst: die
      Src: /src/git/serve.c:309,1
    - Dst: packet_reader_read
      Src: /src/git/serve.c:312,1
    - Dst: packet_reader_read
      Src: /src/git/serve.c:334,1
    - Dst: BUG
      Src: /src/git/serve.c:339,1
    - Dst: die
      Src: /src/git/serve.c:344,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/serve.c:346,1
    - Dst: die
      Src: /src/git/serve.c:347,1
    - Dst: struct protocol_capability*::command
      Src: /src/git/serve.c:351,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 354
    functionName: process_request
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - die
    - struct protocol_capability*::command
    - BUG
    - receive_client_capability
    - packet_reader_init
    - packet_reader_peek
    - parse_command
    - packet_reader_read
    - hash_algo_by_ptr
    linkageType: ''
    returnType: int
    signature: int process_request(struct repository *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: protocol_v2_advertise_capabilities
      Src: /src/git/serve.c:359,1
    - Dst: process_request
      Src: /src/git/serve.c:366,1
    - Dst: process_request
      Src: /src/git/serve.c:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - r
    - stateless_rpc
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 372
    functionName: protocol_v2_serve_loop
    functionSourceFile: /src/git/serve.c
    functionUses: 0
    functionsReached:
    - process_request
    - protocol_v2_advertise_capabilities
    linkageType: ''
    returnType: void
    signature: void protocol_v2_serve_loop(struct repository *r, int stateless_rpc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmallocz
      Src: /src/git/entry.c:22,1
    - Dst: has_dirs_only_path
      Src: /src/git/entry.c:41,1
    - Dst: mkdir
      Src: /src/git/entry.c:50,1
    - Dst: unlink_or_warn
      Src: /src/git/entry.c:52,1
    - Dst: mkdir
      Src: /src/git/entry.c:52,1
    - Dst: die_errno
      Src: /src/git/entry.c:54,1
    - Dst: free
      Src: /src/git/entry.c:57,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 3
    argNames:
    - path
    - path_len
    - state
    argTypes:
    - char*
    - int
    - struct checkout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 58
    functionName: create_directories
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - unlink_or_warn
    - xmallocz
    - die_errno
    - has_dirs_only_path
    - mkdir
    - free
    linkageType: ''
    returnType: void
    signature: "void create_directories(const char *path, int path_len,\n\t\t\t       const
      struct checkout *state)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/entry.c:62,1
    - Dst: die_errno
      Src: /src/git/entry.c:67,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/entry.c:68,1
    - Dst: strbuf_addch
      Src: /src/git/entry.c:71,1
    - Dst: strbuf_addstr
      Src: /src/git/entry.c:72,1
    - Dst: lstat
      Src: /src/git/entry.c:73,1
    - Dst: die_errno
      Src: /src/git/entry.c:74,1
    - Dst: S_ISDIR
      Src: /src/git/entry.c:75,1
    - Dst: remove_subtree
      Src: /src/git/entry.c:76,1
    - Dst: unlink
      Src: /src/git/entry.c:77,1
    - Dst: die_errno
      Src: /src/git/entry.c:78,1
    - Dst: strbuf_setlen
      Src: /src/git/entry.c:79,1
    - Dst: closedir
      Src: /src/git/entry.c:81,1
    - Dst: rmdir
      Src: /src/git/entry.c:82,1
    - Dst: die_errno
      Src: /src/git/entry.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 84
    functionName: remove_subtree
    functionSourceFile: /src/git/entry.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - die_errno
    - strbuf_setlen
    - strbuf_addch
    - opendir
    - readdir_skip_dot_and_dotdot
    - strbuf_addstr
    - remove_subtree
    - rmdir
    - closedir
    - lstat
    - unlink
    linkageType: ''
    returnType: void
    signature: void remove_subtree(struct strbuf *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/entry.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: create_file
    functionSourceFile: /src/git/entry.c
    functionUses: 2
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int create_file(const char *path, unsigned int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/entry.c:96,1
    - Dst: free
      Src: /src/git/entry.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ce
    - size
    argTypes:
    - struct cache_entry*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: read_blob_entry
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - odb_read_object
    - free
    linkageType: ''
    returnType: void
    signature: void *read_blob_entry(const struct cache_entry *ce, size_t *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/entry.c:112,1
    - Dst: mkstemp
      Src: /src/git/entry.c:114,1
    - Dst: create_file
      Src: /src/git/entry.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - path
    - ce
    - to_tempfile
    argTypes:
    - char*
    - struct cache_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: open_output_fd
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - create_file
    - mkstemp
    - xsnprintf
    linkageType: ''
    returnType: int
    signature: int open_output_fd(char *path, const struct cache_entry *ce, int to_tempfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstat_is_reliable
      Src: /src/git/entry.c:123,1
    - Dst: fstat
      Src: /src/git/entry.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - state
    - st
    argTypes:
    - int
    - struct checkout*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: fstat_checkout_output
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - fstat_is_reliable
    - fstat
    linkageType: ''
    returnType: int
    signature: int fstat_checkout_output(int fd, const struct checkout *state, struct
      stat *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_output_fd
      Src: /src/git/entry.c:138,1
    - Dst: odb_stream_blob_to_fd
      Src: /src/git/entry.c:142,1
    - Dst: fstat_checkout_output
      Src: /src/git/entry.c:143,1
    - Dst: close
      Src: /src/git/entry.c:144,1
    - Dst: unlink
      Src: /src/git/entry.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - ce
    - path
    - filter
    - state
    - to_tempfile
    - fstat_done
    - statbuf
    argTypes:
    - struct cache_entry*
    - char*
    - struct stream_filter*
    - struct checkout*
    - int
    - int*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 149
    functionName: streaming_write_entry
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - fstat_checkout_output
    - open_output_fd
    - close
    - odb_stream_blob_to_fd
    - unlink
    linkageType: ''
    returnType: int
    signature: "int streaming_write_entry(const struct cache_entry *ce, char *path,\n\t\t\t\t
      struct stream_filter *filter,\n\t\t\t\t const struct checkout *state, int to_tempfile,\n\t\t\t\t
      int *fstat_done, struct stat *statbuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/entry.c:154,1
    - Dst: string_list_init_nodup
      Src: /src/git/entry.c:156,1
    - Dst: string_list_init_nodup
      Src: /src/git/entry.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct checkout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: enable_delayed_checkout
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - string_list_init_nodup
    linkageType: ''
    returnType: void
    signature: void enable_delayed_checkout(struct checkout *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_lookup
      Src: /src/git/entry.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: remove_available_paths
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    linkageType: ''
    returnType: int
    signature: int remove_available_paths(struct string_list_item *item, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - UNUSED
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: string_is_not_null
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int string_is_not_null(struct string_list_item *item, void *data UNUSED)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/entry.c:191,1
    - Dst: _
      Src: /src/git/entry.c:192,1
    - Dst: for_each_string_list_item
      Src: /src/git/entry.c:195,1
    - Dst: async_query_available_blobs
      Src: /src/git/entry.c:198,1
    - Dst: filter_string_list
      Src: /src/git/entry.c:220,1
    - Dst: for_each_string_list_item
      Src: /src/git/entry.c:223,1
    - Dst: error
      Src: /src/git/entry.c:227,1
    - Dst: index_file_exists
      Src: /src/git/entry.c:240,1
    - Dst: strlen
      Src: /src/git/entry.c:241,1
    - Dst: display_progress
      Src: /src/git/entry.c:243,1
    - Dst: checkout_entry
      Src: /src/git/entry.c:244,1
    - Dst: display_throughput
      Src: /src/git/entry.c:246,1
    - Dst: string_list_clear
      Src: /src/git/entry.c:251,1
    - Dst: filter_string_list
      Src: /src/git/entry.c:254,1
    - Dst: stop_progress
      Src: /src/git/entry.c:256,1
    - Dst: string_list_clear
      Src: /src/git/entry.c:257,1
    - Dst: for_each_string_list_item
      Src: /src/git/entry.c:261,1
    - Dst: error
      Src: /src/git/entry.c:262,1
    - Dst: string_list_clear
      Src: /src/git/entry.c:264,1
    - Dst: free
      Src: /src/git/entry.c:266,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 2
    argNames:
    - state
    - show_progress
    argTypes:
    - struct checkout*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 270
    functionName: finish_delayed_checkout
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - error
    - for_each_string_list_item
    - string_list_clear
    - stop_progress
    - checkout_entry
    - filter_string_list
    - display_throughput
    - async_query_available_blobs
    - strlen
    - display_progress
    - start_delayed_progress
    - _
    - free
    - index_file_exists
    linkageType: ''
    returnType: int
    signature: int finish_delayed_checkout(struct checkout *state, int show_progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/entry.c:276,1
    - Dst: fill_stat_cache_info
      Src: /src/git/entry.c:277,1
    - Dst: mark_fsmonitor_invalid
      Src: /src/git/entry.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - state
    - ce
    - st
    argTypes:
    - struct checkout*
    - struct cache_entry*
    - struct stat*
    assertStmts:
    - condition: (state->istate)
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/git/entry.c
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 5
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: update_ce_after_write
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - fill_stat_cache_info
    - mark_fsmonitor_invalid
    - assert
    linkageType: ''
    returnType: void
    signature: "void update_ce_after_write(const struct checkout *state, struct cache_entry
      *ce,\n\t\t\t   struct stat *st)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: clone_checkout_metadata
      Src: /src/git/entry.c:302,1
    - Dst: get_stream_filter_ca
      Src: /src/git/entry.c:305,1
    - Dst: streaming_write_entry
      Src: /src/git/entry.c:307,1
    - Dst: read_blob_entry
      Src: /src/git/entry.c:315,1
    - Dst: error
      Src: /src/git/entry.c:317,1
    - Dst: oid_to_hex
      Src: /src/git/entry.c:318,1
    - Dst: symlink
      Src: /src/git/entry.c:327,1
    - Dst: free
      Src: /src/git/entry.c:328,1
    - Dst: error_errno
      Src: /src/git/entry.c:330,1
    - Dst: read_blob_entry
      Src: /src/git/entry.c:342,1
    - Dst: error
      Src: /src/git/entry.c:344,1
    - Dst: oid_to_hex
      Src: /src/git/entry.c:345,1
    - Dst: async_convert_to_working_tree_ca
      Src: /src/git/entry.c:352,1
    - Dst: string_list_lookup
      Src: /src/git/entry.c:357,1
    - Dst: free
      Src: /src/git/entry.c:361,1
    - Dst: convert_to_working_tree_ca
      Src: /src/git/entry.c:366,1
    - Dst: free
      Src: /src/git/entry.c:371,1
    - Dst: strbuf_detach
      Src: /src/git/entry.c:372,1
    - Dst: open_output_fd
      Src: /src/git/entry.c:382,1
    - Dst: free
      Src: /src/git/entry.c:384,1
    - Dst: error_errno
      Src: /src/git/entry.c:385,1
    - Dst: write_in_full
      Src: /src/git/entry.c:388,1
    - Dst: fstat_checkout_output
      Src: /src/git/entry.c:390,1
    - Dst: close
      Src: /src/git/entry.c:391,1
    - Dst: free
      Src: /src/git/entry.c:392,1
    - Dst: error
      Src: /src/git/entry.c:394,1
    - Dst: error
      Src: /src/git/entry.c:399,1
    - Dst: mkdir
      Src: /src/git/entry.c:400,1
    - Dst: error
      Src: /src/git/entry.c:401,1
    - Dst: submodule_from_ce
      Src: /src/git/entry.c:402,1
    - Dst: submodule_move_head
      Src: /src/git/entry.c:404,1
    - Dst: oid_to_hex
      Src: /src/git/entry.c:405,1
    - Dst: error
      Src: /src/git/entry.c:410,1
    - Dst: lstat
      Src: /src/git/entry.c:415,1
    - Dst: error_errno
      Src: /src/git/entry.c:416,1
    - Dst: update_ce_after_write
      Src: /src/git/entry.c:418,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 86
    argCount: 6
    argNames:
    - ce
    - path
    - ca
    - state
    - to_tempfile
    - nr_checkouts
    argTypes:
    - struct cache_entry*
    - char*
    - struct conv_attrs*
    - struct checkout*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 285
    functionDepth: 6
    functionLinenumber: 285
    functionLinenumberEnd: 424
    functionName: write_entry
    functionSourceFile: /src/git/entry.c
    functionUses: 2
    functionsReached:
    - error_errno
    - open_output_fd
    - free
    - streaming_write_entry
    - error
    - string_list_lookup
    - fstat_checkout_output
    - submodule_from_ce
    - write_in_full
    - read_blob_entry
    - oid_to_hex
    - async_convert_to_working_tree_ca
    - clone_checkout_metadata
    - mkdir
    - strbuf_detach
    - symlink
    - submodule_move_head
    - update_ce_after_write
    - get_stream_filter_ca
    - close
    - convert_to_working_tree_ca
    - lstat
    linkageType: ''
    returnType: int
    signature: "int write_entry(struct cache_entry *ce, char *path, struct conv_attrs
      *ca,\n\t\t       const struct checkout *state, int to_tempfile,\n\t\t       int
      *nr_checkouts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_dirs_only_path
      Src: /src/git/entry.c:436,1
    - Dst: lstat
      Src: /src/git/entry.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - path
    - len
    - st
    - skiplen
    argTypes:
    - char*
    - int
    - struct stat*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 441
    functionName: check_path
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - lstat
    - has_dirs_only_path
    linkageType: ''
    returnType: int
    signature: int check_path(const char *path, int len, struct stat *st, int skiplen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ensure_full_index
      Src: /src/git/entry.c:455,1
    - Dst: parallel_checkout_status
      Src: /src/git/entry.c:465,1
    - Dst: match_stat_data
      Src: /src/git/entry.c:474,1
    - Dst: paths_collide
      Src: /src/git/entry.c:475,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 3
    argNames:
    - state
    - ce
    - st
    argTypes:
    - struct checkout*
    - struct cache_entry*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 480
    functionName: mark_colliding_entries
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - paths_collide
    - parallel_checkout_status
    - match_stat_data
    linkageType: ''
    returnType: void
    signature: "void mark_colliding_entries(const struct checkout *state,\n\t\t\t\t
      \  struct cache_entry *ce, struct stat *st)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/entry.c:496,1
    - Dst: unlink_entry
      Src: /src/git/entry.c:497,1
    - Dst: S_ISREG
      Src: /src/git/entry.c:502,1
    - Dst: convert_attrs
      Src: /src/git/entry.c:503,1
    - Dst: write_entry
      Src: /src/git/entry.c:506,1
    - Dst: strbuf_reset
      Src: /src/git/entry.c:509,1
    - Dst: strbuf_add
      Src: /src/git/entry.c:510,1
    - Dst: strbuf_add
      Src: /src/git/entry.c:511,1
    - Dst: ce_namelen
      Src: /src/git/entry.c:511,1
    - Dst: check_path
      Src: /src/git/entry.c:513,1
    - Dst: ie_match_stat
      Src: /src/git/entry.c:515,1
    - Dst: submodule_from_ce
      Src: /src/git/entry.c:521,1
    - Dst: is_submodule_populated_gently
      Src: /src/git/entry.c:524,1
    - Dst: lstat
      Src: /src/git/entry.c:526,1
    - Dst: die
      Src: /src/git/entry.c:527,1
    - Dst: _
      Src: /src/git/entry.c:527,1
    - Dst: unlink_or_warn
      Src: /src/git/entry.c:529,1
    - Dst: submodule_move_head
      Src: /src/git/entry.c:531,1
    - Dst: oid_to_hex
      Src: /src/git/entry.c:532,1
    - Dst: submodule_move_head
      Src: /src/git/entry.c:534,1
    - Dst: oid_to_hex
      Src: /src/git/entry.c:535,1
    - Dst: fprintf
      Src: /src/git/entry.c:543,1
    - Dst: mark_colliding_entries
      Src: /src/git/entry.c:550,1
    - Dst: S_ISDIR
      Src: /src/git/entry.c:558,1
    - Dst: S_ISGITLINK
      Src: /src/git/entry.c:560,1
    - Dst: S_ISLNK
      Src: /src/git/entry.c:574,1
    - Dst: remove_subtree
      Src: /src/git/entry.c:576,1
    - Dst: unlink
      Src: /src/git/entry.c:577,1
    - Dst: error_errno
      Src: /src/git/entry.c:578,1
    - Dst: create_directories
      Src: /src/git/entry.c:582,1
    - Dst: S_ISREG
      Src: /src/git/entry.c:584,1
    - Dst: convert_attrs
      Src: /src/git/entry.c:585,1
    - Dst: enqueue_checkout
      Src: /src/git/entry.c:589,1
    - Dst: write_entry
      Src: /src/git/entry.c:592,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 5
    argNames:
    - ce
    - ca
    - state
    - topath
    - nr_checkouts
    argTypes:
    - struct cache_entry*
    - struct conv_attrs*
    - struct checkout*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 482
    functionDepth: 9
    functionLinenumber: 482
    functionLinenumberEnd: 593
    functionName: checkout_entry_ca
    functionSourceFile: /src/git/entry.c
    functionUses: 0
    functionsReached:
    - error_errno
    - write_entry
    - unlink_entry
    - BUG
    - S_ISLNK
    - check_path
    - die
    - ie_match_stat
    - enqueue_checkout
    - submodule_from_ce
    - remove_subtree
    - create_directories
    - S_ISREG
    - unlink
    - oid_to_hex
    - unlink_or_warn
    - S_ISGITLINK
    - convert_attrs
    - _
    - is_submodule_populated_gently
    - strbuf_add
    - S_ISDIR
    - ce_namelen
    - strbuf_reset
    - submodule_move_head
    - mark_colliding_entries
    - lstat
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int checkout_entry_ca(struct cache_entry *ce, struct conv_attrs *ca,\n\t\t
      \     const struct checkout *state, char *topath,\n\t\t      int *nr_checkouts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_ce
      Src: /src/git/entry.c:597,1
    - Dst: submodule_move_head
      Src: /src/git/entry.c:600,1
    - Dst: check_leading_path
      Src: /src/git/entry.c:603,1
    - Dst: ce_namelen
      Src: /src/git/entry.c:603,1
    - Dst: remove_or_warn
      Src: /src/git/entry.c:605,1
    - Dst: schedule_dir_for_removal
      Src: /src/git/entry.c:607,1
    - Dst: ce_namelen
      Src: /src/git/entry.c:607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ce
    - super_prefix
    argTypes:
    - struct cache_entry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 608
    functionName: unlink_entry
    functionSourceFile: /src/git/entry.c
    functionUses: 1
    functionsReached:
    - ce_namelen
    - submodule_move_head
    - check_leading_path
    - submodule_from_ce
    - remove_or_warn
    - schedule_dir_for_removal
    linkageType: ''
    returnType: void
    signature: void unlink_entry(const struct cache_entry *ce, const char *super_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/entry.c:612,1
    - Dst: rmdir_or_warn
      Src: /src/git/entry.c:612,1
    - Dst: unlink_or_warn
      Src: /src/git/entry.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - file
    argTypes:
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: remove_or_warn
    functionSourceFile: /src/git/entry.c
    functionUses: 2
    functionsReached:
    - S_ISGITLINK
    - rmdir_or_warn
    - unlink_or_warn
    linkageType: ''
    returnType: int
    signature: int remove_or_warn(unsigned int mode, const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_packetized_from_buf_no_flush_count
      Src: /src/git/pkt-line.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src_in
    - len
    - fd_out
    argTypes:
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: write_packetized_from_buf_no_flush
    functionSourceFile: /src/git/pkt-line.h
    functionUses: 1
    functionsReached:
    - write_packetized_from_buf_no_flush_count
    linkageType: ''
    returnType: int
    signature: "int write_packetized_from_buf_no_flush(const char *src_in,\n\t\t\t\t\t\t
      \    size_t len, int fd_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz_log2
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: INITIAL_FREE
    functionSourceFile: /src/git/diffcore-delta.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITIAL_FREE(sz_log2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/diffcore-delta.c:55,1
    - Dst: st_add
      Src: /src/git/diffcore-delta.c:55,1
    - Dst: st_mult
      Src: /src/git/diffcore-delta.c:56,1
    - Dst: INITIAL_FREE
      Src: /src/git/diffcore-delta.c:58,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/diffcore-delta.c:59,1
    - Dst: free
      Src: /src/git/diffcore-delta.c:78,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - orig
    argTypes:
    - struct spanhash_top*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 80
    functionName: spanhash_rehash
    functionSourceFile: /src/git/diffcore-delta.c
    functionUses: 0
    functionsReached:
    - INITIAL_FREE
    - xmalloc
    - MEMZERO_ARRAY
    - free
    - st_add
    - st_mult
    linkageType: ''
    returnType: struct spanhash_top
    signature: struct spanhash_top *spanhash_rehash(struct spanhash_top *orig)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: spanhash_rehash
      Src: /src/git/diffcore-delta.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - top
    - hashval
    - cnt
    argTypes:
    - struct spanhash_top*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 107
    functionName: add_spanhash
    functionSourceFile: /src/git/diffcore-delta.c
    functionUses: 0
    functionsReached:
    - spanhash_rehash
    linkageType: ''
    returnType: struct spanhash_top
    signature: "struct spanhash_top *add_spanhash(struct spanhash_top *top,\n\t\t\t\t\t
      unsigned int hashval, int cnt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: spanhash_cmp
    functionSourceFile: /src/git/diffcore-delta.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int spanhash_cmp(const void *a_, const void *b_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: diff_filespec_is_binary
      Src: /src/git/diffcore-delta.c:131,1
    - Dst: xmalloc
      Src: /src/git/diffcore-delta.c:134,1
    - Dst: st_add
      Src: /src/git/diffcore-delta.c:134,1
    - Dst: st_mult
      Src: /src/git/diffcore-delta.c:135,1
    - Dst: INITIAL_FREE
      Src: /src/git/diffcore-delta.c:137,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/diffcore-delta.c:138,1
    - Dst: add_spanhash
      Src: /src/git/diffcore-delta.c:157,1
    - Dst: add_spanhash
      Src: /src/git/diffcore-delta.c:163,1
    - Dst: QSORT
      Src: /src/git/diffcore-delta.c:165,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - r
    - one
    argTypes:
    - struct repository*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 167
    functionName: hash_chars
    functionSourceFile: /src/git/diffcore-delta.c
    functionUses: 0
    functionsReached:
    - INITIAL_FREE
    - add_spanhash
    - xmalloc
    - MEMZERO_ARRAY
    - QSORT
    - diff_filespec_is_binary
    - st_add
    - st_mult
    linkageType: ''
    returnType: struct spanhash_top
    signature: "struct spanhash_top *hash_chars(struct repository *r,\n\t\t\t\t       struct
      diff_filespec *one)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: hash_chars
      Src: /src/git/diffcore-delta.c:185,1
    - Dst: hash_chars
      Src: /src/git/diffcore-delta.c:192,1
    - Dst: free
      Src: /src/git/diffcore-delta.c:230,1
    - Dst: free
      Src: /src/git/diffcore-delta.c:232,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 7
    argNames:
    - r
    - src
    - dst
    - src_count_p
    - dst_count_p
    - src_copied
    - literal_added
    argTypes:
    - struct repository*
    - struct diff_filespec*
    - struct diff_filespec*
    - void**
    - void**
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 169
    functionDepth: 6
    functionLinenumber: 169
    functionLinenumberEnd: 236
    functionName: diffcore_count_changes
    functionSourceFile: /src/git/diffcore-delta.c
    functionUses: 1
    functionsReached:
    - hash_chars
    - free
    linkageType: ''
    returnType: int
    signature: "int diffcore_count_changes(struct repository *r,\n\t\t\t   struct
      diff_filespec *src,\n\t\t\t   struct diff_filespec *dst,\n\t\t\t   void **src_count_p,\n\t\t\t
      \  void **dst_count_p,\n\t\t\t   unsigned long *src_copied,\n\t\t\t   unsigned
      long *literal_added)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: S_ISGITLINK
    functionSourceFile: /src/git/object.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISGITLINK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: S_ISSPARSEDIR
    functionSourceFile: /src/git/object.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSPARSEDIR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/object.h:127,1
    - Dst: S_ISGITLINK
      Src: /src/git/object.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: object_type
    functionSourceFile: /src/git/object.h
    functionUses: 4
    functionsReached:
    - S_ISDIR
    - S_ISGITLINK
    linkageType: ''
    returnType: enum object_type
    signature: enum object_type object_type(unsigned int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: ce_permissions
    functionSourceFile: /src/git/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ce_permissions(mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISLNK
      Src: /src/git/object.h:135,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/object.h:137,1
    - Dst: S_ISDIR
      Src: /src/git/object.h:139,1
    - Dst: S_ISGITLINK
      Src: /src/git/object.h:139,1
    - Dst: ce_permissions
      Src: /src/git/object.h:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - mode
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: create_ce_mode
    functionSourceFile: /src/git/object.h
    functionUses: 7
    functionsReached:
    - S_ISDIR
    - S_ISLNK
    - ce_permissions
    - S_ISGITLINK
    - S_ISSPARSEDIR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int create_ce_mode(unsigned int mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/object.h:146,1
    - Dst: ce_permissions
      Src: /src/git/object.h:147,1
    - Dst: S_ISLNK
      Src: /src/git/object.h:148,1
    - Dst: S_ISDIR
      Src: /src/git/object.h:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - mode
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: canon_mode
    functionSourceFile: /src/git/object.h
    functionUses: 1
    functionsReached:
    - S_ISLNK
    - S_ISDIR
    - ce_permissions
    - S_ISREG
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int canon_mode(unsigned int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: type_from_string
    functionSourceFile: /src/git/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: type_from_string(str)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - str
    - modep
    argTypes:
    - char*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 214
    functionName: parse_mode
    functionSourceFile: /src/git/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *parse_mode(const char *str, uint16_t *modep)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: compare_entries
    functionSourceFile: /src/git/pack-check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_entries(const void *e1, const void *e2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/git/pack-check.c:34,1
    - Dst: use_pack
      Src: /src/git/pack-check.c:38,1
    - Dst: crc32
      Src: /src/git/pack-check.c:41,1
    - Dst: ntohl
      Src: /src/git/pack-check.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - p
    - w_curs
    - offset
    - len
    - nr
    argTypes:
    - struct packed_git*
    - struct pack_window**
    - off_t
    - off_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: check_pack_crc
    functionSourceFile: /src/git/pack-check.c
    functionUses: 0
    functionsReached:
    - ntohl
    - use_pack
    - crc32
    linkageType: ''
    returnType: int
    signature: "int check_pack_crc(struct packed_git *p, struct pack_window **w_curs,\n\t\t
      \  off_t offset, off_t len, unsigned int nr)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: is_pack_valid
      Src: /src/git/pack-check.c:69,1
    - Dst: error
      Src: /src/git/pack-check.c:70,1
    - Dst: struct repository*::hash_algo::init_fn
      Src: /src/git/pack-check.c:72,1
    - Dst: use_pack
      Src: /src/git/pack-check.c:75,1
    - Dst: git_hash_update
      Src: /src/git/pack-check.c:81,1
    - Dst: git_hash_final
      Src: /src/git/pack-check.c:83,1
    - Dst: use_pack
      Src: /src/git/pack-check.c:84,1
    - Dst: hasheq
      Src: /src/git/pack-check.c:85,1
    - Dst: error
      Src: /src/git/pack-check.c:86,1
    - Dst: hasheq
      Src: /src/git/pack-check.c:88,1
    - Dst: error
      Src: /src/git/pack-check.c:90,1
    - Dst: unuse_pack
      Src: /src/git/pack-check.c:92,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-check.c:99,1
    - Dst: nth_packed_object_offset
      Src: /src/git/pack-check.c:103,1
    - Dst: QSORT
      Src: /src/git/pack-check.c:106,1
    - Dst: nth_packed_object_id
      Src: /src/git/pack-check.c:117,1
    - Dst: BUG
      Src: /src/git/pack-check.c:118,1
    - Dst: check_pack_crc
      Src: /src/git/pack-check.c:125,1
    - Dst: error
      Src: /src/git/pack-check.c:126,1
    - Dst: oid_to_hex
      Src: /src/git/pack-check.c:128,1
    - Dst: unpack_object_header
      Src: /src/git/pack-check.c:133,1
    - Dst: unuse_pack
      Src: /src/git/pack-check.c:134,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/pack-check.c:137,1
    - Dst: unpack_entry
      Src: /src/git/pack-check.c:147,1
    - Dst: error
      Src: /src/git/pack-check.c:153,1
    - Dst: oid_to_hex
      Src: /src/git/pack-check.c:154,1
    - Dst: check_object_signature
      Src: /src/git/pack-check.c:156,1
    - Dst: error
      Src: /src/git/pack-check.c:158,1
    - Dst: oid_to_hex
      Src: /src/git/pack-check.c:159,1
    - Dst: packfile_read_object_stream
      Src: /src/git/pack-check.c:161,1
    - Dst: stream_object_signature
      Src: /src/git/pack-check.c:162,1
    - Dst: error
      Src: /src/git/pack-check.c:163,1
    - Dst: oid_to_hex
      Src: /src/git/pack-check.c:164,1
    - Dst: fn
      Src: /src/git/pack-check.c:167,1
    - Dst: display_progress
      Src: /src/git/pack-check.c:172,1
    - Dst: odb_read_stream_close
      Src: /src/git/pack-check.c:175,1
    - Dst: free
      Src: /src/git/pack-check.c:176,1
    - Dst: display_progress
      Src: /src/git/pack-check.c:179,1
    - Dst: free
      Src: /src/git/pack-check.c:180,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 7
    argNames:
    - r
    - p
    - w_curs
    - fn
    - fn_data
    - progress
    - base_count
    argTypes:
    - struct repository*
    - struct packed_git*
    - struct pack_window**
    - verify_fn
    - void*
    - struct progress*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 182
    functionName: verify_packfile
    functionSourceFile: /src/git/pack-check.c
    functionUses: 0
    functionsReached:
    - git_hash_final
    - free
    - error
    - fn
    - ALLOC_ARRAY
    - unpack_object_header
    - repo_settings_get_big_file_threshold
    - nth_packed_object_offset
    - stream_object_signature
    - nth_packed_object_id
    - QSORT
    - git_hash_update
    - odb_read_stream_close
    - use_pack
    - oid_to_hex
    - hasheq
    - check_object_signature
    - check_pack_crc
    - struct repository*::hash_algo::init_fn
    - unpack_entry
    - is_pack_valid
    - display_progress
    - unuse_pack
    - BUG
    - packfile_read_object_stream
    linkageType: ''
    returnType: int
    signature: "int verify_packfile(struct repository *r,\n\t\t\t   struct packed_git
      *p,\n\t\t\t   struct pack_window **w_curs,\n\t\t\t   verify_fn fn,\n\t\t\t   void
      *fn_data,\n\t\t\t   struct progress *progress, uint32_t base_count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/pack-check.c:188,1
    - Dst: error
      Src: /src/git/pack-check.c:189,1
    - Dst: hashfile_checksum_valid
      Src: /src/git/pack-check.c:192,1
    - Dst: error
      Src: /src/git/pack-check.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: verify_pack_index
    functionSourceFile: /src/git/pack-check.c
    functionUses: 1
    functionsReached:
    - error
    - hashfile_checksum_valid
    - open_pack_index
    linkageType: ''
    returnType: int
    signature: int verify_pack_index(struct packed_git *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_pack_index
      Src: /src/git/pack-check.c:204,1
    - Dst: verify_packfile
      Src: /src/git/pack-check.c:208,1
    - Dst: unuse_pack
      Src: /src/git/pack-check.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - r
    - p
    - fn
    - fn_data
    - progress
    - base_count
    argTypes:
    - struct repository*
    - struct packed_git*
    - verify_fn
    - void*
    - struct progress*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 212
    functionName: verify_pack
    functionSourceFile: /src/git/pack-check.c
    functionUses: 0
    functionsReached:
    - verify_pack_index
    - verify_packfile
    - unuse_pack
    linkageType: ''
    returnType: int
    signature: "int verify_pack(struct repository *r, struct packed_git *p, verify_fn
      fn, void *fn_data,\n\t\tstruct progress *progress, uint32_t base_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/chdir-notify.c:21,1
    - Dst: list_add_tail
      Src: /src/git/chdir-notify.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - name
    - cb
    - data
    argTypes:
    - char*
    - chdir_notify_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: chdir_notify_register
    functionSourceFile: /src/git/chdir-notify.c
    functionUses: 1
    functionsReached:
    - list_add_tail
    - xmalloc
    linkageType: ''
    returnType: void
    signature: "void chdir_notify_register(const char *name,\n\t\t\t   chdir_notify_callback
      cb,\n\t\t\t   void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_safe
      Src: /src/git/chdir-notify.c:33,1
    - Dst: list_entry
      Src: /src/git/chdir-notify.c:35,1
    - Dst: strcmp
      Src: /src/git/chdir-notify.c:38,1
    - Dst: list_del
      Src: /src/git/chdir-notify.c:41,1
    - Dst: free
      Src: /src/git/chdir-notify.c:42,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - name
    - cb
    - data
    argTypes:
    - char*
    - chdir_notify_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 44
    functionName: chdir_notify_unregister
    functionSourceFile: /src/git/chdir-notify.c
    functionUses: 1
    functionsReached:
    - list_for_each_safe
    - list_entry
    - list_del
    - strcmp
    - free
    linkageType: ''
    returnType: void
    signature: "void chdir_notify_unregister(const char *name, chdir_notify_callback
      cb,\n\t\t\t     void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reparent_relative_path
      Src: /src/git/chdir-notify.c:57,1
    - Dst: free
      Src: /src/git/chdir-notify.c:58,1
    - Dst: trace_printf_key
      Src: /src/git/chdir-notify.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - name
    - old_cwd
    - new_cwd
    - data
    argTypes:
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: reparent_cb
    functionSourceFile: /src/git/chdir-notify.c
    functionUses: 0
    functionsReached:
    - reparent_relative_path
    - trace_printf_key
    - free
    linkageType: ''
    returnType: void
    signature: "void reparent_cb(const char *name,\n\t\t\tconst char *old_cwd,\n\t\t\tconst
      char *new_cwd,\n\t\t\tvoid *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chdir_notify_register
      Src: /src/git/chdir-notify.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - path
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: chdir_notify_reparent
    functionSourceFile: /src/git/chdir-notify.c
    functionUses: 0
    functionsReached:
    - chdir_notify_register
    linkageType: ''
    returnType: void
    signature: void chdir_notify_reparent(const char *name, char **path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getcwd
      Src: /src/git/chdir-notify.c:77,1
    - Dst: chdir
      Src: /src/git/chdir-notify.c:79,1
    - Dst: strbuf_release
      Src: /src/git/chdir-notify.c:81,1
    - Dst: trace_printf_key
      Src: /src/git/chdir-notify.c:86,1
    - Dst: list_for_each
      Src: /src/git/chdir-notify.c:90,1
    - Dst: list_entry
      Src: /src/git/chdir-notify.c:92,1
    - Dst: struct chdir_notify_entry*::cb
      Src: /src/git/chdir-notify.c:93,1
    - Dst: strbuf_release
      Src: /src/git/chdir-notify.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - new_cwd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 98
    functionName: chdir_notify
    functionSourceFile: /src/git/chdir-notify.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - chdir
    - list_for_each
    - strbuf_getcwd
    - trace_printf_key
    - list_entry
    - struct chdir_notify_entry*::cb
    linkageType: ''
    returnType: int
    signature: int chdir_notify(const char *new_cwd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute_path
      Src: /src/git/chdir-notify.c:106,1
    - Dst: xstrdup
      Src: /src/git/chdir-notify.c:107,1
    - Dst: xstrfmt
      Src: /src/git/chdir-notify.c:109,1
    - Dst: xstrdup
      Src: /src/git/chdir-notify.c:110,1
    - Dst: remove_leading_path
      Src: /src/git/chdir-notify.c:110,1
    - Dst: free
      Src: /src/git/chdir-notify.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - old_cwd
    - new_cwd
    - path
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: reparent_relative_path
    functionSourceFile: /src/git/chdir-notify.c
    functionUses: 2
    functionsReached:
    - is_absolute_path
    - remove_leading_path
    - xstrfmt
    - free
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *reparent_relative_path(const char *old_cwd,\n\t\t\t     const
      char *new_cwd,\n\t\t\t     const char *path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/tree-walk.c:25,1
    - Dst: _
      Src: /src/git/tree-walk.c:25,1
    - Dst: parse_mode
      Src: /src/git/tree-walk.c:29,1
    - Dst: strbuf_addstr
      Src: /src/git/tree-walk.c:31,1
    - Dst: _
      Src: /src/git/tree-walk.c:31,1
    - Dst: strbuf_addstr
      Src: /src/git/tree-walk.c:35,1
    - Dst: _
      Src: /src/git/tree-walk.c:35,1
    - Dst: strlen
      Src: /src/git/tree-walk.c:38,1
    - Dst: canon_mode
      Src: /src/git/tree-walk.c:42,1
    - Dst: oidread
      Src: /src/git/tree-walk.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - desc
    - buf
    - size
    - err
    argTypes:
    - struct tree_desc*
    - char*
    - unsigned long
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 48
    functionName: decode_tree_entry
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - strlen
    - canon_mode
    - parse_mode
    - strbuf_addstr
    - _
    - oidread
    linkageType: ''
    returnType: int
    signature: int decode_tree_entry(struct tree_desc *desc, const char *buf, unsigned
      long size, struct strbuf *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_tree_entry
      Src: /src/git/tree-walk.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - desc
    - oid
    - buffer
    - size
    - err
    - flags
    argTypes:
    - struct tree_desc*
    - struct object_id*
    - void*
    - unsigned long
    - struct strbuf*
    - enum tree_desc_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: init_tree_desc_internal
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - decode_tree_entry
    linkageType: ''
    returnType: int
    signature: "int init_tree_desc_internal(struct tree_desc *desc,\n\t\t\t\t   const
      struct object_id *oid,\n\t\t\t\t   const void *buffer, unsigned long size,\n\t\t\t\t
      \  struct strbuf *err,\n\t\t\t\t   enum tree_desc_flags flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_tree_desc_internal
      Src: /src/git/tree-walk.c:69,1
    - Dst: die
      Src: /src/git/tree-walk.c:70,1
    - Dst: strbuf_release
      Src: /src/git/tree-walk.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - desc
    - tree_oid
    - buffer
    - size
    argTypes:
    - struct tree_desc*
    - struct object_id*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: init_tree_desc
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 8
    functionsReached:
    - init_tree_desc_internal
    - die
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: "void init_tree_desc(struct tree_desc *desc, const struct object_id
      *tree_oid,\n\t\t    const void *buffer, unsigned long size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_tree_desc_internal
      Src: /src/git/tree-walk.c:79,1
    - Dst: error
      Src: /src/git/tree-walk.c:81,1
    - Dst: strbuf_release
      Src: /src/git/tree-walk.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - desc
    - oid
    - buffer
    - size
    - flags
    argTypes:
    - struct tree_desc*
    - struct object_id*
    - void*
    - unsigned long
    - enum tree_desc_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: init_tree_desc_gently
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - error
    - init_tree_desc_internal
    - strbuf_release
    linkageType: ''
    returnType: int
    signature: "int init_tree_desc_gently(struct tree_desc *desc, const struct object_id
      *oid,\n\t\t\t  const void *buffer, unsigned long size,\n\t\t\t  enum tree_desc_flags
      flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_peeled
      Src: /src/git/tree-walk.c:94,1
    - Dst: die
      Src: /src/git/tree-walk.c:96,1
    - Dst: _
      Src: /src/git/tree-walk.c:96,1
    - Dst: oid_to_hex
      Src: /src/git/tree-walk.c:96,1
    - Dst: init_tree_desc
      Src: /src/git/tree-walk.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - r
    - desc
    - oid
    argTypes:
    - struct repository*
    - struct tree_desc*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: fill_tree_descriptor
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 4
    functionsReached:
    - oid_to_hex
    - die
    - odb_read_object_peeled
    - _
    - init_tree_desc
    linkageType: ''
    returnType: void
    signature: "void *fill_tree_descriptor(struct repository *r,\n\t\t\t   struct
      tree_desc *desc,\n\t\t\t   const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/tree-walk.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: entry_clear
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void entry_clear(struct name_entry *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - a
    argTypes:
    - struct tree_desc*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: entry_extract
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void entry_extract(struct tree_desc *t, struct name_entry *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/tree-walk.c:120,1
    - Dst: _
      Src: /src/git/tree-walk.c:120,1
    - Dst: decode_tree_entry
      Src: /src/git/tree-walk.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - desc
    - err
    argTypes:
    - struct tree_desc*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: update_tree_entry_internal
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - decode_tree_entry
    - die
    - _
    linkageType: ''
    returnType: int
    signature: int update_tree_entry_internal(struct tree_desc *desc, struct strbuf
      *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_tree_entry_internal
      Src: /src/git/tree-walk.c:133,1
    - Dst: die
      Src: /src/git/tree-walk.c:134,1
    - Dst: strbuf_release
      Src: /src/git/tree-walk.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct tree_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: update_tree_entry
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - die
    - update_tree_entry_internal
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void update_tree_entry(struct tree_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_tree_entry_internal
      Src: /src/git/tree-walk.c:141,1
    - Dst: error
      Src: /src/git/tree-walk.c:142,1
    - Dst: strbuf_release
      Src: /src/git/tree-walk.c:143,1
    - Dst: strbuf_release
      Src: /src/git/tree-walk.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct tree_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: update_tree_entry_gently
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - update_tree_entry_internal
    linkageType: ''
    returnType: int
    signature: int update_tree_entry_gently(struct tree_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_tree_entry
      Src: /src/git/tree-walk.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - desc
    - entry
    argTypes:
    - struct tree_desc*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 5
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: tree_entry
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 15
    functionsReached:
    - update_tree_entry
    linkageType: ''
    returnType: int
    signature: int tree_entry(struct tree_desc *desc, struct name_entry *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_tree_entry_gently
      Src: /src/git/tree-walk.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - desc
    - entry
    argTypes:
    - struct tree_desc*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 5
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: tree_entry_gently
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 1
    functionsReached:
    - update_tree_entry_gently
    linkageType: ''
    returnType: int
    signature: int tree_entry_gently(struct tree_desc *desc, struct name_entry *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/tree-walk.c:182,1
    - Dst: jw_object_intmax
      Src: /src/git/tree-walk.c:183,1
    - Dst: jw_object_intmax
      Src: /src/git/tree-walk.c:184,1
    - Dst: jw_end
      Src: /src/git/tree-walk.c:185,1
    - Dst: trace2_data_json
      Src: /src/git/tree-walk.c:187,1
    - Dst: jw_release
      Src: /src/git/tree-walk.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: trace2_traverse_trees_statistics_atexit
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - jw_object_begin
    - jw_end
    - trace2_data_json
    - jw_object_intmax
    - jw_release
    linkageType: ''
    returnType: void
    signature: void trace2_traverse_trees_statistics_atexit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/tree-walk.c:194,1
    - Dst: memset
      Src: /src/git/tree-walk.c:197,1
    - Dst: trace2_is_enabled
      Src: /src/git/tree-walk.c:206,1
    - Dst: atexit
      Src: /src/git/tree-walk.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - info
    - base
    argTypes:
    - struct traverse_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: setup_traverse_info
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 1
    functionsReached:
    - atexit
    - strlen
    - trace2_is_enabled
    - memset
    linkageType: ''
    returnType: void
    signature: void setup_traverse_info(struct traverse_info *info, const char *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: st_add
      Src: /src/git/tree-walk.c:217,1
    - Dst: BUG
      Src: /src/git/tree-walk.c:220,1
    - Dst: BUG
      Src: /src/git/tree-walk.c:225,1
    - Dst: memcpy
      Src: /src/git/tree-walk.c:227,1
    - Dst: BUG
      Src: /src/git/tree-walk.c:234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - path
    - pathlen
    - info
    - name
    - namelen
    argTypes:
    - char*
    - size_t
    - struct traverse_info*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 240
    functionName: make_traverse_path
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 1
    functionsReached:
    - st_add
    - BUG
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char *make_traverse_path(char *path, size_t pathlen,\n\t\t\t const
      struct traverse_info *info,\n\t\t\t const char *name, size_t namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: traverse_path_len
      Src: /src/git/tree-walk.c:246,1
    - Dst: strbuf_grow
      Src: /src/git/tree-walk.c:248,1
    - Dst: make_traverse_path
      Src: /src/git/tree-walk.c:249,1
    - Dst: strbuf_setlen
      Src: /src/git/tree-walk.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - out
    - info
    - name
    - namelen
    argTypes:
    - struct strbuf*
    - struct traverse_info*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 252
    functionName: strbuf_make_traverse_path
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - traverse_path_len
    - strbuf_setlen
    - strbuf_grow
    - make_traverse_path
    linkageType: ''
    returnType: void
    signature: "void strbuf_make_traverse_path(struct strbuf *out,\n\t\t\t       const
      struct traverse_info *info,\n\t\t\t       const char *name, size_t namelen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: name_compare
      Src: /src/git/tree-walk.c:284,1
    - Dst: memcmp
      Src: /src/git/tree-walk.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - b_len
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 303
    functionName: check_entry_match
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - name_compare
    - memcmp
    linkageType: ''
    returnType: int
    signature: int check_entry_match(const char *a, int a_len, const char *b, int
      b_len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: entry_clear
      Src: /src/git/tree-walk.c:344,1
    - Dst: entry_extract
      Src: /src/git/tree-walk.c:347,1
    - Dst: update_tree_entry
      Src: /src/git/tree-walk.c:354,1
    - Dst: tree_entry_len
      Src: /src/git/tree-walk.c:364,1
    - Dst: check_entry_match
      Src: /src/git/tree-walk.c:365,1
    - Dst: entry_clear
      Src: /src/git/tree-walk.c:367,1
    - Dst: entry_extract
      Src: /src/git/tree-walk.c:380,1
    - Dst: tree_entry_len
      Src: /src/git/tree-walk.c:382,1
    - Dst: check_entry_match
      Src: /src/git/tree-walk.c:383,1
    - Dst: entry_clear
      Src: /src/git/tree-walk.c:385,1
    - Dst: update_tree_entry
      Src: /src/git/tree-walk.c:389,1
    - Dst: entry_clear
      Src: /src/git/tree-walk.c:394,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - t
    - a
    - first
    - first_len
    argTypes:
    - struct tree_desc_x*
    - struct name_entry*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 328
    functionDepth: 5
    functionLinenumber: 328
    functionLinenumberEnd: 395
    functionName: extended_entry_extract
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - update_tree_entry
    - check_entry_match
    - entry_clear
    - entry_extract
    - tree_entry_len
    linkageType: ''
    returnType: void
    signature: "void extended_entry_extract(struct tree_desc_x *t,\n\t\t\t\t   struct
      name_entry *a,\n\t\t\t\t   const char *first,\n\t\t\t\t   int first_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_tree_entry
      Src: /src/git/tree-walk.c:400,1
    - Dst: xmalloc
      Src: /src/git/tree-walk.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - t
    - a
    argTypes:
    - struct tree_desc_x*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 397
    functionDepth: 5
    functionLinenumber: 397
    functionLinenumberEnd: 408
    functionName: update_extended_entry
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - update_tree_entry
    - xmalloc
    linkageType: ''
    returnType: void
    signature: void update_extended_entry(struct tree_desc_x *t, struct name_entry
      *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/tree-walk.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tree_desc_x*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: free_extended_entry
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_extended_entry(struct tree_desc_x *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tree_entry_interesting
      Src: /src/git/tree-walk.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - istate
    - e
    - info
    - base
    - still_interesting
    argTypes:
    - struct index_state*
    - struct name_entry*
    - struct traverse_info*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 432
    functionName: prune_traversal
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - tree_entry_interesting
    linkageType: ''
    returnType: int
    signature: "int prune_traversal(struct index_state *istate,\n\t\t\t\t  struct
      name_entry *e,\n\t\t\t\t  struct traverse_info *info,\n\t\t\t\t  struct strbuf
      *base,\n\t\t\t\t  int still_interesting)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/tree-walk.c:448,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/tree-walk.c:456,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/tree-walk.c:457,1
    - Dst: strbuf_make_traverse_path
      Src: /src/git/tree-walk.c:465,1
    - Dst: strbuf_addch
      Src: /src/git/tree-walk.c:467,1
    - Dst: xstrndup
      Src: /src/git/tree-walk.c:468,1
    - Dst: xstrndup
      Src: /src/git/tree-walk.c:470,1
    - Dst: extended_entry_extract
      Src: /src/git/tree-walk.c:483,1
    - Dst: tree_entry_len
      Src: /src/git/tree-walk.c:496,1
    - Dst: name_compare
      Src: /src/git/tree-walk.c:502,1
    - Dst: extended_entry_extract
      Src: /src/git/tree-walk.c:511,1
    - Dst: tree_entry_len
      Src: /src/git/tree-walk.c:515,1
    - Dst: name_compare
      Src: /src/git/tree-walk.c:516,1
    - Dst: entry_clear
      Src: /src/git/tree-walk.c:517,1
    - Dst: S_ISDIR
      Src: /src/git/tree-walk.c:528,1
    - Dst: prune_traversal
      Src: /src/git/tree-walk.c:534,1
    - Dst: struct traverse_info*::fn
      Src: /src/git/tree-walk.c:538,1
    - Dst: update_extended_entry
      Src: /src/git/tree-walk.c:548,1
    - Dst: free_extended_entry
      Src: /src/git/tree-walk.c:551,1
    - Dst: free
      Src: /src/git/tree-walk.c:552,1
    - Dst: free
      Src: /src/git/tree-walk.c:553,1
    - Dst: free
      Src: /src/git/tree-walk.c:554,1
    - Dst: strbuf_release
      Src: /src/git/tree-walk.c:556,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 4
    argNames:
    - istate
    - n
    - t
    - info
    argTypes:
    - struct index_state*
    - int
    - struct tree_desc*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 434
    functionDepth: 6
    functionLinenumber: 434
    functionLinenumberEnd: 560
    functionName: traverse_trees
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 4
    functionsReached:
    - error
    - prune_traversal
    - S_ISDIR
    - entry_clear
    - free_extended_entry
    - strbuf_release
    - strbuf_make_traverse_path
    - struct traverse_info*::fn
    - extended_entry_extract
    - ALLOC_ARRAY
    - update_extended_entry
    - name_compare
    - xstrndup
    - strbuf_addch
    - free
    - tree_entry_len
    linkageType: ''
    returnType: int
    signature: "int traverse_trees(struct index_state *istate,\n\t\t   int n, struct
      tree_desc *t,\n\t\t   struct traverse_info *info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/tree-walk.c:572,1
    - Dst: oidcpy
      Src: /src/git/tree-walk.c:578,1
    - Dst: tree_entry_extract
      Src: /src/git/tree-walk.c:578,1
    - Dst: tree_entry_len
      Src: /src/git/tree-walk.c:579,1
    - Dst: update_tree_entry
      Src: /src/git/tree-walk.c:580,1
    - Dst: memcmp
      Src: /src/git/tree-walk.c:583,1
    - Dst: oidcpy
      Src: /src/git/tree-walk.c:589,1
    - Dst: S_ISDIR
      Src: /src/git/tree-walk.c:594,1
    - Dst: oidcpy
      Src: /src/git/tree-walk.c:597,1
    - Dst: get_tree_entry
      Src: /src/git/tree-walk.c:600,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 5
    argNames:
    - r
    - t
    - name
    - result
    - mode
    argTypes:
    - struct repository*
    - struct tree_desc*
    - char*
    - struct object_id*
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 568
    functionDepth: 5
    functionLinenumber: 568
    functionLinenumberEnd: 603
    functionName: find_tree_entry
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - update_tree_entry
    - S_ISDIR
    - get_tree_entry
    - oidcpy
    - tree_entry_extract
    - strlen
    - tree_entry_len
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int find_tree_entry(struct repository *r, struct tree_desc *t,\n\t\t\t
      \  const char *name, struct object_id *result,\n\t\t\t   unsigned short *mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_peeled
      Src: /src/git/tree-walk.c:616,1
    - Dst: oidcpy
      Src: /src/git/tree-walk.c:621,1
    - Dst: free
      Src: /src/git/tree-walk.c:622,1
    - Dst: init_tree_desc
      Src: /src/git/tree-walk.c:630,1
    - Dst: find_tree_entry
      Src: /src/git/tree-walk.c:631,1
    - Dst: free
      Src: /src/git/tree-walk.c:633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - r
    - tree_oid
    - name
    - oid
    - mode
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    - struct object_id*
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 605
    functionDepth: 6
    functionLinenumber: 605
    functionLinenumberEnd: 635
    functionName: get_tree_entry
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 4
    functionsReached:
    - oidcpy
    - find_tree_entry
    - odb_read_object_peeled
    - free
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int get_tree_entry(struct repository *r,\n\t\t   const struct object_id
      *tree_oid,\n\t\t   const char *name,\n\t\t   struct object_id *oid,\n\t\t   unsigned
      short *mode)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: init_tree_desc
      Src: /src/git/tree-walk.c:673,1
    - Dst: strbuf_addstr
      Src: /src/git/tree-walk.c:674,1
    - Dst: oidcpy
      Src: /src/git/tree-walk.c:675,1
    - Dst: odb_read_object_peeled
      Src: /src/git/tree-walk.c:686,1
    - Dst: ALLOC_GROW
      Src: /src/git/tree-walk.c:691,1
    - Dst: oidcpy
      Src: /src/git/tree-walk.c:694,1
    - Dst: oidcpy
      Src: /src/git/tree-walk.c:698,1
    - Dst: init_tree_desc
      Src: /src/git/tree-walk.c:707,1
    - Dst: strbuf_remove
      Src: /src/git/tree-walk.c:712,1
    - Dst: strchr
      Src: /src/git/tree-walk.c:716,1
    - Dst: strcmp
      Src: /src/git/tree-walk.c:721,1
    - Dst: strbuf_add
      Src: /src/git/tree-walk.c:731,1
    - Dst: free
      Src: /src/git/tree-walk.c:738,1
    - Dst: init_tree_desc
      Src: /src/git/tree-walk.c:741,1
    - Dst: strbuf_remove
      Src: /src/git/tree-walk.c:742,1
    - Dst: oidcpy
      Src: /src/git/tree-walk.c:748,1
    - Dst: find_tree_entry
      Src: /src/git/tree-walk.c:754,1
    - Dst: S_ISDIR
      Src: /src/git/tree-walk.c:760,1
    - Dst: oidcpy
      Src: /src/git/tree-walk.c:762,1
    - Dst: strbuf_remove
      Src: /src/git/tree-walk.c:768,1
    - Dst: S_ISREG
      Src: /src/git/tree-walk.c:770,1
    - Dst: oidcpy
      Src: /src/git/tree-walk.c:772,1
    - Dst: S_ISLNK
      Src: /src/git/tree-walk.c:778,1
    - Dst: odb_read_object
      Src: /src/git/tree-walk.c:798,1
    - Dst: strbuf_addstr
      Src: /src/git/tree-walk.c:806,1
    - Dst: free
      Src: /src/git/tree-walk.c:807,1
    - Dst: init_tree_desc
      Src: /src/git/tree-walk.c:821,1
    - Dst: strbuf_splice
      Src: /src/git/tree-walk.c:822,1
    - Dst: free
      Src: /src/git/tree-walk.c:826,1
    - Dst: free
      Src: /src/git/tree-walk.c:831,1
    - Dst: free
      Src: /src/git/tree-walk.c:832,1
    - Dst: strbuf_release
      Src: /src/git/tree-walk.c:834,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 120
    argCount: 6
    argNames:
    - r
    - tree_oid
    - name
    - result
    - result_path
    - mode
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    - struct object_id*
    - struct strbuf*
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 659
    functionDepth: 6
    functionLinenumber: 659
    functionLinenumberEnd: 836
    functionName: get_tree_entry_follow_symlinks
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - odb_read_object
    - strbuf_release
    - strbuf_remove
    - oidcpy
    - S_ISLNK
    - find_tree_entry
    - strchr
    - odb_read_object_peeled
    - strcmp
    - ALLOC_GROW
    - strbuf_addstr
    - free
    - S_ISREG
    - strbuf_splice
    - strbuf_add
    - init_tree_desc
    linkageType: ''
    returnType: enum get_oid_result
    signature: "enum get_oid_result get_tree_entry_follow_symlinks(struct repository
      *r,\n\t\tstruct object_id *tree_oid, const char *name,\n\t\tstruct object_id
      *result, struct strbuf *result_path,\n\t\tunsigned short *mode)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/tree-walk.c:866,1
    - Dst: S_ISDIR
      Src: /src/git/tree-walk.c:899,1
    - Dst: S_ISGITLINK
      Src: /src/git/tree-walk.c:900,1
    - Dst: ps_strncmp
      Src: /src/git/tree-walk.c:909,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 6
    argNames:
    - item
    - entry
    - pathlen
    - match
    - matchlen
    - never_interesting
    argTypes:
    - struct pathspec_item*
    - struct name_entry*
    - int
    - char*
    - int
    - enum interesting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 927
    functionName: match_entry
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - strncmp
    - S_ISDIR
    - S_ISGITLINK
    - ps_strncmp
    linkageType: ''
    returnType: int
    signature: "int match_entry(const struct pathspec_item *item,\n\t\t       const
      struct name_entry *entry, int pathlen,\n\t\t       const char *match, int matchlen,\n\t\t
      \      enum interesting *never_interesting)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/tree-walk.c:935,1
    - Dst: ps_strncmp
      Src: /src/git/tree-walk.c:942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - item
    - base
    - match
    - len
    argTypes:
    - struct pathspec_item*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 943
    functionName: basecmp
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ps_strncmp
    linkageType: ''
    returnType: int
    signature: "int basecmp(const struct pathspec_item *item,\n\t\t   const char *base,
      const char *match, int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: basecmp
      Src: /src/git/tree-walk.c:949,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - item
    - base
    - match
    - matchlen
    argTypes:
    - struct pathspec_item*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 963
    functionName: match_dir_prefix
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - basecmp
    linkageType: ''
    returnType: int
    signature: "int match_dir_prefix(const struct pathspec_item *item,\n\t\t\t    const
      char *base,\n\t\t\t    const char *match, int matchlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: basecmp
      Src: /src/git/tree-walk.c:986,1
    - Dst: basecmp
      Src: /src/git/tree-walk.c:999,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - item
    - base
    - baselen
    - matched
    argTypes:
    - struct pathspec_item*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 1011
    functionName: match_wildcard_base
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - basecmp
    linkageType: ''
    returnType: int
    signature: "int match_wildcard_base(const struct pathspec_item *item,\n\t\t\t
      \      const char *base, int baselen,\n\t\t\t       int *matched)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: GUARD_PATHSPEC
      Src: /src/git/tree-walk.c:1030,1
    - Dst: within_depth
      Src: /src/git/tree-walk.c:1044,1
    - Dst: S_ISDIR
      Src: /src/git/tree-walk.c:1045,1
    - Dst: tree_entry_len
      Src: /src/git/tree-walk.c:1050,1
    - Dst: match_dir_prefix
      Src: /src/git/tree-walk.c:1064,1
    - Dst: within_depth
      Src: /src/git/tree-walk.c:1076,1
    - Dst: S_ISDIR
      Src: /src/git/tree-walk.c:1078,1
    - Dst: basecmp
      Src: /src/git/tree-walk.c:1086,1
    - Dst: match_entry
      Src: /src/git/tree-walk.c:1087,1
    - Dst: git_fnmatch
      Src: /src/git/tree-walk.c:1093,1
    - Dst: S_ISDIR
      Src: /src/git/tree-walk.c:1101,1
    - Dst: S_ISGITLINK
      Src: /src/git/tree-walk.c:1112,1
    - Dst: ps_strncmp
      Src: /src/git/tree-walk.c:1113,1
    - Dst: match_wildcard_base
      Src: /src/git/tree-walk.c:1127,1
    - Dst: strbuf_add
      Src: /src/git/tree-walk.c:1146,1
    - Dst: git_fnmatch
      Src: /src/git/tree-walk.c:1148,1
    - Dst: strbuf_setlen
      Src: /src/git/tree-walk.c:1150,1
    - Dst: S_ISGITLINK
      Src: /src/git/tree-walk.c:1161,1
    - Dst: ps_strncmp
      Src: /src/git/tree-walk.c:1162,1
    - Dst: strbuf_setlen
      Src: /src/git/tree-walk.c:1164,1
    - Dst: strbuf_setlen
      Src: /src/git/tree-walk.c:1168,1
    - Dst: S_ISDIR
      Src: /src/git/tree-walk.c:1177,1
    - Dst: S_ISDIR
      Src: /src/git/tree-walk.c:1200,1
    - Dst: strbuf_add
      Src: /src/git/tree-walk.c:1203,1
    - Dst: match_pathspec_attrs
      Src: /src/git/tree-walk.c:1204,1
    - Dst: strbuf_setlen
      Src: /src/git/tree-walk.c:1206,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 78
    argCount: 5
    argNames:
    - istate
    - entry
    - base
    - ps
    - exclude
    argTypes:
    - struct index_state*
    - struct name_entry*
    - struct strbuf*
    - struct pathspec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1019
    functionDepth: 3
    functionLinenumber: 1019
    functionLinenumberEnd: 1213
    functionName: do_match
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 0
    functionsReached:
    - match_wildcard_base
    - S_ISDIR
    - match_pathspec_attrs
    - ps_strncmp
    - match_dir_prefix
    - within_depth
    - S_ISGITLINK
    - strbuf_setlen
    - GUARD_PATHSPEC
    - match_entry
    - basecmp
    - tree_entry_len
    - git_fnmatch
    - strbuf_add
    linkageType: ''
    returnType: enum interesting
    signature: "enum interesting do_match(struct index_state *istate,\n\t\t\t\t const
      struct name_entry *entry,\n\t\t\t\t struct strbuf *base,\n\t\t\t\t const struct
      pathspec *ps,\n\t\t\t\t int exclude)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: do_match
      Src: /src/git/tree-walk.c:1227,1
    - Dst: do_match
      Src: /src/git/tree-walk.c:1264,1
    - Dst: S_ISDIR
      Src: /src/git/tree-walk.c:1276,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 4
    argNames:
    - istate
    - entry
    - base
    - ps
    argTypes:
    - struct index_state*
    - struct name_entry*
    - struct strbuf*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1221
    functionDepth: 4
    functionLinenumber: 1221
    functionLinenumberEnd: 1288
    functionName: tree_entry_interesting
    functionSourceFile: /src/git/tree-walk.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - do_match
    linkageType: ''
    returnType: enum interesting
    signature: "enum interesting tree_entry_interesting(struct index_state *istate,\n\t\t\t\t\tconst
      struct name_entry *entry,\n\t\t\t\t\tstruct strbuf *base,\n\t\t\t\t\tconst struct
      pathspec *ps)"
  - 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: progress_test_force_update
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void progress_test_force_update(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: progress_interval
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void progress_interval(int signum UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/progress.c:82,1
    - Dst: sigemptyset
      Src: /src/git/progress.c:84,1
    - Dst: sigaction
      Src: /src/git/progress.c:86,1
    - Dst: setitimer
      Src: /src/git/progress.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: set_progress_signal
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - setitimer
    - memset
    - sigaction
    linkageType: ''
    returnType: void
    signature: void set_progress_signal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setitimer
      Src: /src/git/progress.c:101,1
    - Dst: signal
      Src: /src/git/progress.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: clear_progress_signal
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - setitimer
    - signal
    linkageType: ''
    returnType: void
    signature: void clear_progress_signal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/git/progress.c:108,1
    - Dst: getpgid
      Src: /src/git/progress.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: is_foreground_fd
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - tcgetpgrp
    - getpgid
    linkageType: ''
    returnType: int
    signature: int is_foreground_fd(int fd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/progress.c:132,1
    - Dst: strbuf_addf
      Src: /src/git/progress.c:133,1
    - Dst: strbuf_reset
      Src: /src/git/progress.c:140,1
    - Dst: strbuf_addf
      Src: /src/git/progress.c:141,1
    - Dst: is_foreground_fd
      Src: /src/git/progress.c:146,1
    - Dst: fileno
      Src: /src/git/progress.c:146,1
    - Dst: term_columns
      Src: /src/git/progress.c:154,1
    - Dst: fprintf
      Src: /src/git/progress.c:157,1
    - Dst: fprintf
      Src: /src/git/progress.c:162,1
    - Dst: fprintf
      Src: /src/git/progress.c:167,1
    - Dst: fflush
      Src: /src/git/progress.c:170,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - progress
    - n
    - done
    argTypes:
    - struct progress*
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 173
    functionName: display
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - is_foreground_fd
    - strbuf_reset
    - fileno
    - strbuf_addf
    - fflush
    - term_columns
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display(struct progress *progress, uint64_t n, const char *done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/progress.c:178,1
    - Dst: strbuf_addstr
      Src: /src/git/progress.c:179,1
    - Dst: strbuf_humanise_bytes
      Src: /src/git/progress.c:180,1
    - Dst: strbuf_addstr
      Src: /src/git/progress.c:181,1
    - Dst: strbuf_humanise_rate
      Src: /src/git/progress.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - total
    - rate
    argTypes:
    - struct strbuf*
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: throughput_string
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_humanise_rate
    - strbuf_humanise_bytes
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void throughput_string(struct strbuf *buf, uint64_t total,\n\t\t\t
      \     unsigned int rate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/progress.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - progress
    argTypes:
    - struct progress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: progress_getnanotime
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - getnanotime
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t progress_getnanotime(struct progress *progress)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: progress_getnanotime
      Src: /src/git/progress.c:203,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/progress.c:206,1
    - Dst: strbuf_init
      Src: /src/git/progress.c:209,1
    - Dst: throughput_string
      Src: /src/git/progress.c:248,1
    - Dst: display
      Src: /src/git/progress.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - progress
    - total
    argTypes:
    - struct progress*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 251
    functionName: display_throughput
    functionSourceFile: /src/git/progress.c
    functionUses: 1
    functionsReached:
    - progress_getnanotime
    - throughput_string
    - CALLOC_ARRAY
    - strbuf_init
    - display
    linkageType: ''
    returnType: void
    signature: void display_throughput(struct progress *progress, uint64_t total)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display
      Src: /src/git/progress.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - progress
    - n
    argTypes:
    - struct progress*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: display_progress
    functionSourceFile: /src/git/progress.c
    functionUses: 8
    functionsReached:
    - display
    linkageType: ''
    returnType: void
    signature: void display_progress(struct progress *progress, uint64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/progress.c:263,1
    - Dst: getnanotime
      Src: /src/git/progress.c:272,1
    - Dst: strbuf_init
      Src: /src/git/progress.c:273,1
    - Dst: utf8_strwidth
      Src: /src/git/progress.c:274,1
    - Dst: set_progress_signal
      Src: /src/git/progress.c:276,1
    - Dst: trace2_region_enter
      Src: /src/git/progress.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - r
    - title
    - total
    - delay
    - sparse
    argTypes:
    - struct repository*
    - char*
    - uint64_t
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 279
    functionName: start_progress_delay
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - set_progress_signal
    - trace2_region_enter
    - xmalloc
    - utf8_strwidth
    - getnanotime
    - strbuf_init
    linkageType: ''
    returnType: struct progress
    signature: "struct progress *start_progress_delay(struct repository *r,\n\t\t\t\t\t
      \    const char *title, uint64_t total,\n\t\t\t\t\t     unsigned delay, unsigned
      sparse)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_env_ulong
      Src: /src/git/progress.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: get_default_delay
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - git_env_ulong
    linkageType: ''
    returnType: int
    signature: int get_default_delay(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_progress_delay
      Src: /src/git/progress.c:294,1
    - Dst: get_default_delay
      Src: /src/git/progress.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - title
    - total
    argTypes:
    - struct repository*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: start_delayed_progress
    functionSourceFile: /src/git/progress.c
    functionUses: 3
    functionsReached:
    - get_default_delay
    - start_progress_delay
    linkageType: ''
    returnType: struct progress
    signature: "struct progress *start_delayed_progress(struct repository *r,\n\t\t\t\t\tconst
      char *title, uint64_t total)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_progress_delay
      Src: /src/git/progress.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - title
    - total
    argTypes:
    - struct repository*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: start_progress
    functionSourceFile: /src/git/progress.c
    functionUses: 2
    functionsReached:
    - start_progress_delay
    linkageType: ''
    returnType: struct progress
    signature: "struct progress *start_progress(struct repository *r,\n\t\t\t\tconst
      char *title, uint64_t total)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_progress_delay
      Src: /src/git/progress.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - title
    - total
    argTypes:
    - struct repository*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: start_sparse_progress
    functionSourceFile: /src/git/progress.c
    functionUses: 1
    functionsReached:
    - start_progress_delay
    linkageType: ''
    returnType: struct progress
    signature: "struct progress *start_sparse_progress(struct repository *r,\n\t\t\t\t
      \      const char *title, uint64_t total)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_progress_delay
      Src: /src/git/progress.c:322,1
    - Dst: get_default_delay
      Src: /src/git/progress.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - title
    - total
    argTypes:
    - struct repository*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: start_delayed_sparse_progress
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - get_default_delay
    - start_progress_delay
    linkageType: ''
    returnType: struct progress
    signature: "struct progress *start_delayed_sparse_progress(struct repository *r,\n\t\t\t\t\t
      \      const char *title,\n\t\t\t\t\t       uint64_t total)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/progress.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - progress
    argTypes:
    - struct progress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: finish_if_sparse
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - display_progress
    linkageType: ''
    returnType: void
    signature: void finish_if_sparse(struct progress *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: progress_getnanotime
      Src: /src/git/progress.c:338,1
    - Dst: throughput_string
      Src: /src/git/progress.c:342,1
    - Dst: xstrfmt
      Src: /src/git/progress.c:345,1
    - Dst: display
      Src: /src/git/progress.c:346,1
    - Dst: free
      Src: /src/git/progress.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - progress
    - msg
    argTypes:
    - struct progress*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 5
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: force_last_update
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - progress_getnanotime
    - xstrfmt
    - throughput_string
    - free
    - display
    linkageType: ''
    returnType: void
    signature: void force_last_update(struct progress *progress, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace2_data_intmax
      Src: /src/git/progress.c:352,1
    - Dst: trace2_data_intmax
      Src: /src/git/progress.c:356,1
    - Dst: trace2_region_leave
      Src: /src/git/progress.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - progress
    argTypes:
    - struct progress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: log_trace2
    functionSourceFile: /src/git/progress.c
    functionUses: 0
    functionsReached:
    - trace2_region_leave
    - trace2_data_intmax
    linkageType: ''
    returnType: void
    signature: void log_trace2(struct progress *progress)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/progress.c:367,1
    - Dst: finish_if_sparse
      Src: /src/git/progress.c:374,1
    - Dst: force_last_update
      Src: /src/git/progress.c:376,1
    - Dst: log_trace2
      Src: /src/git/progress.c:377,1
    - Dst: clear_progress_signal
      Src: /src/git/progress.c:379,1
    - Dst: strbuf_release
      Src: /src/git/progress.c:380,1
    - Dst: strbuf_release
      Src: /src/git/progress.c:382,1
    - Dst: free
      Src: /src/git/progress.c:383,1
    - Dst: free
      Src: /src/git/progress.c:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - p_progress
    - msg
    argTypes:
    - struct progress**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 362
    functionDepth: 6
    functionLinenumber: 362
    functionLinenumberEnd: 385
    functionName: stop_progress_msg
    functionSourceFile: /src/git/progress.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - finish_if_sparse
    - clear_progress_signal
    - log_trace2
    - free
    - BUG
    - force_last_update
    linkageType: ''
    returnType: void
    signature: void stop_progress_msg(struct progress **p_progress, const char *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xread
      Src: /src/git/copy.c:14,1
    - Dst: write_in_full
      Src: /src/git/copy.c:19,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ifd
    - ofd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 23
    functionName: copy_fd
    functionSourceFile: /src/git/copy.c
    functionUses: 1
    functionsReached:
    - write_in_full
    - xread
    linkageType: ''
    returnType: int
    signature: int copy_fd(int ifd, int ofd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/copy.c:29,1
    - Dst: utime
      Src: /src/git/copy.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: copy_times
    functionSourceFile: /src/git/copy.c
    functionUses: 0
    functionsReached:
    - utime
    - stat
    linkageType: ''
    returnType: int
    signature: int copy_times(const char *dst, const char *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/copy.c:43,1
    - Dst: open
      Src: /src/git/copy.c:45,1
    - Dst: close
      Src: /src/git/copy.c:46,1
    - Dst: copy_fd
      Src: /src/git/copy.c:49,1
    - Dst: error_errno
      Src: /src/git/copy.c:52,1
    - Dst: error_errno
      Src: /src/git/copy.c:55,1
    - Dst: close
      Src: /src/git/copy.c:58,1
    - Dst: close
      Src: /src/git/copy.c:59,1
    - Dst: error_errno
      Src: /src/git/copy.c:60,1
    - Dst: adjust_shared_perm
      Src: /src/git/copy.c:62,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - dst
    - src
    - mode
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 66
    functionName: copy_file
    functionSourceFile: /src/git/copy.c
    functionUses: 0
    functionsReached:
    - error_errno
    - copy_fd
    - open
    - close
    - adjust_shared_perm
    linkageType: ''
    returnType: int
    signature: int copy_file(const char *dst, const char *src, int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_file
      Src: /src/git/copy.c:70,1
    - Dst: copy_times
      Src: /src/git/copy.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - mode
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: copy_file_with_time
    functionSourceFile: /src/git/copy.c
    functionUses: 0
    functionsReached:
    - copy_file
    - copy_times
    linkageType: ''
    returnType: int
    signature: int copy_file_with_time(const char *dst, const char *src, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - column
    - ','
    - row
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: COST
    functionSourceFile: /src/git/linear-assignment.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COST(column, row)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: MEMZERO_ARRAY
      Src: /src/git/linear-assignment.c:23,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/linear-assignment.c:24,1
    - Dst: memset
      Src: /src/git/linear-assignment.c:28,1
    - Dst: memset
      Src: /src/git/linear-assignment.c:29,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/linear-assignment.c:30,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:37,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:37,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:39,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/linear-assignment.c:52,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:60,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:62,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:63,1
    - Dst: free
      Src: /src/git/linear-assignment.c:70,1
    - Dst: free
      Src: /src/git/linear-assignment.c:71,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:86,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:90,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/linear-assignment.c:129,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/linear-assignment.c:130,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/linear-assignment.c:131,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:137,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:167,1
    - Dst: COST
      Src: /src/git/linear-assignment.c:170,1
    - Dst: BUG
      Src: /src/git/linear-assignment.c:195,1
    - Dst: SWAP
      Src: /src/git/linear-assignment.c:198,1
    - Dst: free
      Src: /src/git/linear-assignment.c:202,1
    - Dst: free
      Src: /src/git/linear-assignment.c:203,1
    - Dst: free
      Src: /src/git/linear-assignment.c:204,1
    - Dst: free
      Src: /src/git/linear-assignment.c:205,1
    - Dst: free
      Src: /src/git/linear-assignment.c:206,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 149
    argCount: 5
    argNames:
    - column_count
    - row_count
    - cost
    - column2row
    - row2column
    argTypes:
    - int
    - int
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 207
    functionName: compute_assignment
    functionSourceFile: /src/git/linear-assignment.c
    functionUses: 0
    functionsReached:
    - memset
    - ALLOC_ARRAY
    - COST
    - MEMZERO_ARRAY
    - SWAP
    - free
    - BUG
    linkageType: ''
    returnType: void
    signature: "void compute_assignment(int column_count, int row_count, int *cost,\n\t\t\tint
      *column2row, int *row2column)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/parse.c:9,1
    - Dst: strcasecmp
      Src: /src/git/parse.c:11,1
    - Dst: strcasecmp
      Src: /src/git/parse.c:13,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - end
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 16
    functionName: get_unit_factor
    functionSourceFile: /src/git/parse.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: uintmax_t
    signature: uintmax_t get_unit_factor(const char *end)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/parse.c:26,1
    - Dst: strtoimax
      Src: /src/git/parse.c:29,1
    - Dst: get_unit_factor
      Src: /src/git/parse.c:36,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - value
    - ret
    - max
    argTypes:
    - char*
    - intmax_t*
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 52
    functionName: git_parse_signed
    functionSourceFile: /src/git/parse.c
    functionUses: 0
    functionsReached:
    - strtoimax
    - get_unit_factor
    - BUG
    linkageType: ''
    returnType: int
    signature: int git_parse_signed(const char *value, intmax_t *ret, intmax_t max)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/parse.c:62,1
    - Dst: strtoumax
      Src: /src/git/parse.c:67,1
    - Dst: get_unit_factor
      Src: /src/git/parse.c:74,1
    - Dst: unsigned_mult_overflows
      Src: /src/git/parse.c:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - value
    - ret
    - max
    argTypes:
    - char*
    - uintmax_t*
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 90
    functionName: git_parse_unsigned
    functionSourceFile: /src/git/parse.c
    functionUses: 0
    functionsReached:
    - strtoumax
    - get_unit_factor
    - strchr
    - unsigned_mult_overflows
    linkageType: ''
    returnType: int
    signature: int git_parse_unsigned(const char *value, uintmax_t *ret, uintmax_t
      max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_signed
      Src: /src/git/parse.c:95,1
    - Dst: maximum_signed_value_of_type
      Src: /src/git/parse.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - value
    - ret
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: git_parse_int
    functionSourceFile: /src/git/parse.c
    functionUses: 0
    functionsReached:
    - maximum_signed_value_of_type
    - git_parse_signed
    linkageType: ''
    returnType: int
    signature: int git_parse_int(const char *value, int *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_signed
      Src: /src/git/parse.c:104,1
    - Dst: maximum_signed_value_of_type
      Src: /src/git/parse.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - value
    - ret
    argTypes:
    - char*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: git_parse_int64
    functionSourceFile: /src/git/parse.c
    functionUses: 0
    functionsReached:
    - maximum_signed_value_of_type
    - git_parse_signed
    linkageType: ''
    returnType: int
    signature: int git_parse_int64(const char *value, int64_t *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_unsigned
      Src: /src/git/parse.c:113,1
    - Dst: maximum_unsigned_value_of_type
      Src: /src/git/parse.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - value
    - ret
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: git_parse_uint
    functionSourceFile: /src/git/parse.c
    functionUses: 0
    functionsReached:
    - maximum_unsigned_value_of_type
    - git_parse_unsigned
    linkageType: ''
    returnType: int
    signature: int git_parse_uint(const char *value, unsigned int *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_unsigned
      Src: /src/git/parse.c:122,1
    - Dst: maximum_unsigned_value_of_type
      Src: /src/git/parse.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - value
    - ret
    argTypes:
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: git_parse_ulong
    functionSourceFile: /src/git/parse.c
    functionUses: 1
    functionsReached:
    - maximum_unsigned_value_of_type
    - git_parse_unsigned
    linkageType: ''
    returnType: int
    signature: int git_parse_ulong(const char *value, unsigned long *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_signed
      Src: /src/git/parse.c:131,1
    - Dst: maximum_signed_value_of_type
      Src: /src/git/parse.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - value
    - ret
    argTypes:
    - char*
    - ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: git_parse_ssize_t
    functionSourceFile: /src/git/parse.c
    functionUses: 0
    functionsReached:
    - maximum_signed_value_of_type
    - git_parse_signed
    linkageType: ''
    returnType: int
    signature: int git_parse_ssize_t(const char *value, ssize_t *ret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strtod
      Src: /src/git/parse.c:149,1
    - Dst: get_unit_factor
      Src: /src/git/parse.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - value
    - ret
    argTypes:
    - char*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: git_parse_double
    functionSourceFile: /src/git/parse.c
    functionUses: 0
    functionsReached:
    - get_unit_factor
    - strtod
    linkageType: ''
    returnType: int
    signature: int git_parse_double(const char *value, double *ret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/parse.c:172,1
    - Dst: strcasecmp
      Src: /src/git/parse.c:173,1
    - Dst: strcasecmp
      Src: /src/git/parse.c:174,1
    - Dst: strcasecmp
      Src: /src/git/parse.c:176,1
    - Dst: strcasecmp
      Src: /src/git/parse.c:177,1
    - Dst: strcasecmp
      Src: /src/git/parse.c:178,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 181
    functionName: git_parse_maybe_bool_text
    functionSourceFile: /src/git/parse.c
    functionUses: 2
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int git_parse_maybe_bool_text(const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool_text
      Src: /src/git/parse.c:185,1
    - Dst: git_parse_int
      Src: /src/git/parse.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: git_parse_maybe_bool
    functionSourceFile: /src/git/parse.c
    functionUses: 8
    functionsReached:
    - git_parse_int
    - git_parse_maybe_bool_text
    linkageType: ''
    returnType: int
    signature: int git_parse_maybe_bool(const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/parse.c:199,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/parse.c:203,1
    - Dst: die
      Src: /src/git/parse.c:205,1
    - Dst: _
      Src: /src/git/parse.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - k
    - def
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 197
    functionDepth: 5
    functionLinenumber: 197
    functionLinenumberEnd: 208
    functionName: git_env_bool
    functionSourceFile: /src/git/parse.c
    functionUses: 18
    functionsReached:
    - getenv
    - git_parse_maybe_bool
    - die
    - _
    linkageType: ''
    returnType: int
    signature: int git_env_bool(const char *k, int def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/parse.c:216,1
    - Dst: git_parse_ulong
      Src: /src/git/parse.c:217,1
    - Dst: die
      Src: /src/git/parse.c:218,1
    - Dst: _
      Src: /src/git/parse.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - k
    - val
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: git_env_ulong
    functionSourceFile: /src/git/parse.c
    functionUses: 1
    functionsReached:
    - getenv
    - git_parse_ulong
    - die
    - _
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long git_env_ulong(const char *k, unsigned long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkout_entry_ca
      Src: /src/git/entry.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ce
    - state
    - topath
    - nr_checkouts
    argTypes:
    - struct cache_entry*
    - struct checkout*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 10
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: checkout_entry
    functionSourceFile: /src/git/entry.h
    functionUses: 3
    functionsReached:
    - checkout_entry_ca
    linkageType: ''
    returnType: int
    signature: "int checkout_entry(struct cache_entry *ce,\n\t\t\t\t const struct
      checkout *state, char *topath,\n\t\t\t\t int *nr_checkouts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cb_init
      Src: /src/git/oidtree.c:17,1
    - Dst: mem_pool_init
      Src: /src/git/oidtree.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ot
    argTypes:
    - struct oidtree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: oidtree_init
    functionSourceFile: /src/git/oidtree.c
    functionUses: 2
    functionsReached:
    - cb_init
    - mem_pool_init
    linkageType: ''
    returnType: void
    signature: void oidtree_init(struct oidtree *ot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_discard
      Src: /src/git/oidtree.c:24,1
    - Dst: oidtree_init
      Src: /src/git/oidtree.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ot
    argTypes:
    - struct oidtree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: oidtree_clear
    functionSourceFile: /src/git/oidtree.c
    functionUses: 1
    functionsReached:
    - oidtree_init
    - mem_pool_discard
    linkageType: ''
    returnType: void
    signature: void oidtree_clear(struct oidtree *ot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/oidtree.c:40,1
    - Dst: mem_pool_alloc
      Src: /src/git/oidtree.c:42,1
    - Dst: oidcpy
      Src: /src/git/oidtree.c:43,1
    - Dst: cb_insert
      Src: /src/git/oidtree.c:52,1
    - Dst: container_of
      Src: /src/git/oidtree.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ot
    - oid
    - data
    argTypes:
    - struct oidtree*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: oidtree_insert
    functionSourceFile: /src/git/oidtree.c
    functionUses: 2
    functionsReached:
    - container_of
    - oidcpy
    - mem_pool_alloc
    - cb_insert
    - BUG
    linkageType: ''
    returnType: void
    signature: "void oidtree_insert(struct oidtree *ot, const struct object_id *oid,\n\t\t
      \   void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/oidtree.c:66,1
    - Dst: BUILD_ASSERT_OR_ZERO
      Src: /src/git/oidtree.c:72,1
    - Dst: cb_lookup
      Src: /src/git/oidtree.c:75,1
    - Dst: container_of
      Src: /src/git/oidtree.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ot
    - oid
    argTypes:
    - struct oidtree*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 77
    functionName: oidtree_lookup
    functionSourceFile: /src/git/oidtree.c
    functionUses: 0
    functionsReached:
    - container_of
    - cb_lookup
    - BUILD_ASSERT_OR_ZERO
    - oidcpy
    linkageType: ''
    returnType: struct oidtree_node
    signature: "struct oidtree_node *oidtree_lookup(struct oidtree *ot,\n\t\t\t\t\t
      \  const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidtree_lookup
      Src: /src/git/oidtree.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ot
    - oid
    argTypes:
    - struct oidtree*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: oidtree_contains
    functionSourceFile: /src/git/oidtree.c
    functionUses: 1
    functionsReached:
    - oidtree_lookup
    linkageType: ''
    returnType: bool
    signature: bool oidtree_contains(struct oidtree *ot, const struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidtree_lookup
      Src: /src/git/oidtree.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ot
    - oid
    argTypes:
    - struct oidtree*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: oidtree_get
    functionSourceFile: /src/git/oidtree.c
    functionUses: 0
    functionsReached:
    - oidtree_lookup
    linkageType: ''
    returnType: void
    signature: void *oidtree_get(struct oidtree *ot, const struct object_id *oid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/oidtree.c:101,1
    - Dst: struct oidtree_each_data*::cb
      Src: /src/git/oidtree.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - n
    - cb_data
    argTypes:
    - struct cb_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: iter
    functionSourceFile: /src/git/oidtree.c
    functionUses: 0
    functionsReached:
    - container_of
    - struct oidtree_each_data*::cb
    linkageType: ''
    returnType: int
    signature: int iter(struct cb_node *n, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/oidtree.c:124,1
    - Dst: cb_each
      Src: /src/git/oidtree.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ot
    - prefix
    - prefix_hex_len
    - cb
    - cb_data
    argTypes:
    - struct oidtree*
    - struct object_id*
    - size_t
    - oidtree_each_cb
    - void*
    assertStmts:
    - condition: (prefix_hex_len <= GIT_MAX_HEXSZ)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/git/oidtree.c
    constantsTouched: []
    func_position:
      end: 132
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 132
    functionName: oidtree_each
    functionSourceFile: /src/git/oidtree.c
    functionUses: 1
    functionsReached:
    - cb_each
    - assert
    linkageType: ''
    returnType: int
    signature: "int oidtree_each(struct oidtree *ot, const struct object_id *prefix,\n\t\t
      size_t prefix_hex_len, oidtree_each_cb cb, void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/repository.c:46,1
    - Dst: hash_algo_by_name
      Src: /src/git/repository.c:49,1
    - Dst: repo_set_hash_algo
      Src: /src/git/repository.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: set_default_hash_algo
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - getenv
    - hash_algo_by_name
    - repo_set_hash_algo
    linkageType: ''
    returnType: void
    signature: void set_default_hash_algo(struct repository *repo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repository.c:59,1
    - Dst: BUG
      Src: /src/git/repository.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: repo_config_values
    functionSourceFile: /src/git/repository.c
    functionUses: 3
    functionsReached:
    - BUG
    linkageType: ''
    returnType: struct repo_config_values
    signature: struct repo_config_values *repo_config_values(struct repository *repo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repository.c:68,1
    - Dst: remote_state_new
      Src: /src/git/repository.c:71,1
    - Dst: parsed_object_pool_new
      Src: /src/git/repository.c:72,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/repository.c:73,1
    - Dst: index_state_init
      Src: /src/git/repository.c:74,1
    - Dst: repo_config_values_init
      Src: /src/git/repository.c:76,1
    - Dst: set_default_hash_algo
      Src: /src/git/repository.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 99
    functionName: initialize_repository
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - set_default_hash_algo
    - repo_config_values_init
    - parsed_object_pool_new
    - ALLOC_ARRAY
    - index_state_init
    - BUG
    - remote_state_new
    linkageType: ''
    returnType: void
    signature: void initialize_repository(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/repository.c:104,1
    - Dst: xstrdup
      Src: /src/git/repository.c:106,1
    - Dst: xstrfmt
      Src: /src/git/repository.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in
    - base_dir
    - def_in
    argTypes:
    - char**
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: expand_base_dir
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: "void expand_base_dir(char **out, const char *in,\n\t\t\t    const
      char *base_dir, const char *def_in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repository.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: repo_get_git_dir
    functionSourceFile: /src/git/repository.c
    functionUses: 3
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *repo_get_git_dir(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repository.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: repo_get_common_dir
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *repo_get_common_dir(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repository.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: repo_get_object_directory
    functionSourceFile: /src/git/repository.c
    functionUses: 5
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *repo_get_object_directory(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repository.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: repo_get_index_file
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *repo_get_index_file(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repository.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: repo_get_graft_file
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *repo_get_graft_file(struct repository *repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: repo_get_work_tree
    functionSourceFile: /src/git/repository.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *repo_get_work_tree(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/repository.c:156,1
    - Dst: xstrdup
      Src: /src/git/repository.c:160,1
    - Dst: get_common_dir_noenv
      Src: /src/git/repository.c:164,1
    - Dst: strbuf_detach
      Src: /src/git/repository.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - repo
    - commondir
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: repo_set_commondir
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - get_common_dir_noenv
    - strbuf_detach
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: "void repo_set_commondir(struct repository *repo,\n\t\t\t       const
      char *commondir)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_gitfile
      Src: /src/git/repository.c:172,1
    - Dst: xstrdup
      Src: /src/git/repository.c:180,1
    - Dst: free
      Src: /src/git/repository.c:181,1
    - Dst: repo_set_commondir
      Src: /src/git/repository.c:183,1
    - Dst: odb_new
      Src: /src/git/repository.c:186,1
    - Dst: BUG
      Src: /src/git/repository.c:188,1
    - Dst: expand_base_dir
      Src: /src/git/repository.c:192,1
    - Dst: expand_base_dir
      Src: /src/git/repository.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - repo
    - root
    - o
    argTypes:
    - struct repository*
    - char*
    - struct set_gitdir_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 168
    functionDepth: 6
    functionLinenumber: 168
    functionLinenumberEnd: 196
    functionName: repo_set_gitdir
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - repo_set_commondir
    - odb_new
    - read_gitfile
    - free
    - expand_base_dir
    - BUG
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void repo_set_gitdir(struct repository *repo,\n\t\t     const char
      *root,\n\t\t     const struct set_gitdir_args *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - repo
    - hash_algo
    argTypes:
    - struct repository*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: repo_set_hash_algo
    functionSourceFile: /src/git/repository.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_set_hash_algo(struct repository *repo, uint32_t hash_algo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hash_algo_by_ptr
      Src: /src/git/repository.c:206,1
    - Dst: BUG
      Src: /src/git/repository.c:207,1
    - Dst: repo_read_loose_object_map
      Src: /src/git/repository.c:210,1
    - Dst: die
      Src: /src/git/repository.c:213,1
    - Dst: _
      Src: /src/git/repository.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - MAYBE_UNUSED
    - algo
    argTypes:
    - struct repository*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 215
    functionName: repo_set_compat_hash_algo
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - die
    - repo_read_loose_object_map
    - _
    - BUG
    - hash_algo_by_ptr
    linkageType: ''
    returnType: void
    signature: void repo_set_compat_hash_algo(struct repository *repo MAYBE_UNUSED,
      uint32_t algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/repository.c:222,1
    - Dst: xstrdup_or_null
      Src: /src/git/repository.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - repo
    - format
    - payload
    argTypes:
    - struct repository*
    - enum ref_storage_format
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: repo_set_ref_storage_format
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - free
    linkageType: ''
    returnType: void
    signature: "void repo_set_ref_storage_format(struct repository *repo,\n\t\t\t\t
      enum ref_storage_format format,\n\t\t\t\t const char *payload)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: real_pathdup
      Src: /src/git/repository.c:238,1
    - Dst: resolve_gitdir_gently
      Src: /src/git/repository.c:245,1
    - Dst: repo_set_gitdir
      Src: /src/git/repository.c:251,1
    - Dst: free
      Src: /src/git/repository.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - repo
    - gitdir
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 230
    functionDepth: 7
    functionLinenumber: 230
    functionLinenumberEnd: 256
    functionName: repo_init_gitdir
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - real_pathdup
    - resolve_gitdir_gently
    - repo_set_gitdir
    - free
    linkageType: ''
    returnType: int
    signature: int repo_init_gitdir(struct repository *repo, const char *gitdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: real_pathdup
      Src: /src/git/repository.c:260,1
    - Dst: trace2_def_repo
      Src: /src/git/repository.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: repo_set_worktree
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - real_pathdup
    - trace2_def_repo
    linkageType: ''
    returnType: void
    signature: void repo_set_worktree(struct repository *repo, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/repository.c:271,1
    - Dst: read_repository_format
      Src: /src/git/repository.c:272,1
    - Dst: strbuf_reset
      Src: /src/git/repository.c:273,1
    - Dst: verify_repository_format
      Src: /src/git/repository.c:275,1
    - Dst: warning
      Src: /src/git/repository.c:276,1
    - Dst: strbuf_release
      Src: /src/git/repository.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - format
    - commondir
    argTypes:
    - struct repository_format*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 282
    functionName: read_and_verify_repository_format
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - read_repository_format
    - strbuf_reset
    - strbuf_addf
    - verify_repository_format
    - warning
    linkageType: ''
    returnType: int
    signature: "int read_and_verify_repository_format(struct repository_format *format,\n\t\t\t\t\t
      \    const char *commondir)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/repository.c:293,1
    - Dst: initialize_repository
      Src: /src/git/repository.c:295,1
    - Dst: repo_init_gitdir
      Src: /src/git/repository.c:297,1
    - Dst: read_and_verify_repository_format
      Src: /src/git/repository.c:300,1
    - Dst: repo_set_hash_algo
      Src: /src/git/repository.c:303,1
    - Dst: repo_set_compat_hash_algo
      Src: /src/git/repository.c:304,1
    - Dst: repo_set_ref_storage_format
      Src: /src/git/repository.c:305,1
    - Dst: repo_set_worktree
      Src: /src/git/repository.c:317,1
    - Dst: repo_read_loose_object_map
      Src: /src/git/repository.c:320,1
    - Dst: clear_repository_format
      Src: /src/git/repository.c:322,1
    - Dst: clear_repository_format
      Src: /src/git/repository.c:326,1
    - Dst: repo_clear
      Src: /src/git/repository.c:327,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - repo
    - gitdir
    - worktree
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 288
    functionDepth: 8
    functionLinenumber: 288
    functionLinenumberEnd: 329
    functionName: repo_init
    functionSourceFile: /src/git/repository.c
    functionUses: 1
    functionsReached:
    - repo_set_worktree
    - repo_set_compat_hash_algo
    - memset
    - read_and_verify_repository_format
    - repo_clear
    - repo_read_loose_object_map
    - repo_set_hash_algo
    - clear_repository_format
    - repo_set_ref_storage_format
    - repo_init_gitdir
    - initialize_repository
    linkageType: ''
    returnType: int
    signature: "int repo_init(struct repository *repo,\n\t      const char *gitdir,\n\t
      \     const char *worktree)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_worktree_path_append
      Src: /src/git/repository.c:340,1
    - Dst: repo_worktree_path_append
      Src: /src/git/repository.c:341,1
    - Dst: repo_init
      Src: /src/git/repository.c:343,1
    - Dst: submodule_from_path
      Src: /src/git/repository.c:352,1
    - Dst: strbuf_reset
      Src: /src/git/repository.c:358,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/repository.c:359,1
    - Dst: repo_init
      Src: /src/git/repository.c:361,1
    - Dst: xstrfmt
      Src: /src/git/repository.c:367,1
    - Dst: strbuf_release
      Src: /src/git/repository.c:373,1
    - Dst: strbuf_release
      Src: /src/git/repository.c:374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - subrepo
    - superproject
    - path
    - treeish_name
    argTypes:
    - struct repository*
    - struct repository*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 331
    functionDepth: 9
    functionLinenumber: 331
    functionLinenumberEnd: 376
    functionName: repo_submodule_init
    functionSourceFile: /src/git/repository.c
    functionUses: 3
    functionsReached:
    - submodule_name_to_gitdir
    - submodule_from_path
    - strbuf_release
    - strbuf_reset
    - xstrfmt
    - repo_init
    - repo_worktree_path_append
    linkageType: ''
    returnType: int
    signature: "int repo_submodule_init(struct repository *subrepo,\n\t\t\tstruct
      repository *superproject,\n\t\t\tconst char *path,\n\t\t\tconst struct object_id
      *treeish_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:380,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:381,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:382,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:383,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:384,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:385,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct repo_path_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 387
    functionName: repo_clear_path_cache
    functionSourceFile: /src/git/repository.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void repo_clear_path_cache(struct repo_path_cache *cache)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:394,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:395,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:396,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:397,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:398,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:399,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:400,1
    - Dst: odb_free
      Src: /src/git/repository.c:402,1
    - Dst: parsed_object_pool_clear
      Src: /src/git/repository.c:405,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:406,1
    - Dst: repo_settings_clear
      Src: /src/git/repository.c:408,1
    - Dst: git_configset_clear
      Src: /src/git/repository.c:411,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:412,1
    - Dst: submodule_cache_free
      Src: /src/git/repository.c:416,1
    - Dst: discard_index
      Src: /src/git/repository.c:421,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:422,1
    - Dst: hook_cache_clear
      Src: /src/git/repository.c:426,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:427,1
    - Dst: strmap_clear
      Src: /src/git/repository.c:429,1
    - Dst: string_list_clear
      Src: /src/git/repository.c:430,1
    - Dst: promisor_remote_clear
      Src: /src/git/repository.c:433,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:434,1
    - Dst: remote_state_clear
      Src: /src/git/repository.c:438,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repository.c:439,1
    - Dst: strmap_for_each_entry
      Src: /src/git/repository.c:442,1
    - Dst: ref_store_release
      Src: /src/git/repository.c:443,1
    - Dst: strmap_clear
      Src: /src/git/repository.c:444,1
    - Dst: strmap_for_each_entry
      Src: /src/git/repository.c:446,1
    - Dst: ref_store_release
      Src: /src/git/repository.c:447,1
    - Dst: strmap_clear
      Src: /src/git/repository.c:448,1
    - Dst: repo_clear_path_cache
      Src: /src/git/repository.c:450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 389
    functionDepth: 5
    functionLinenumber: 389
    functionLinenumberEnd: 451
    functionName: repo_clear
    functionSourceFile: /src/git/repository.c
    functionUses: 4
    functionsReached:
    - repo_settings_clear
    - string_list_clear
    - hook_cache_clear
    - strmap_clear
    - parsed_object_pool_clear
    - strmap_for_each_entry
    - git_configset_clear
    - submodule_cache_free
    - promisor_remote_clear
    - odb_free
    - ref_store_release
    - remote_state_clear
    - repo_clear_path_cache
    - FREE_AND_NULL
    - discard_index
    linkageType: ''
    returnType: void
    signature: void repo_clear(struct repository *repo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/repository.c:459,1
    - Dst: index_state_init
      Src: /src/git/repository.c:460,1
    - Dst: BUG
      Src: /src/git/repository.c:462,1
    - Dst: read_index_from
      Src: /src/git/repository.c:465,1
    - Dst: prepare_repo_settings
      Src: /src/git/repository.c:467,1
    - Dst: ensure_full_index
      Src: /src/git/repository.c:469,1
    - Dst: clear_skip_worktree_from_present_files
      Src: /src/git/repository.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 453
    functionDepth: 9
    functionLinenumber: 453
    functionLinenumberEnd: 479
    functionName: repo_read_index
    functionSourceFile: /src/git/repository.c
    functionUses: 9
    functionsReached:
    - ensure_full_index
    - ALLOC_ARRAY
    - read_index_from
    - prepare_repo_settings
    - index_state_init
    - BUG
    - clear_skip_worktree_from_present_files
    linkageType: ''
    returnType: int
    signature: int repo_read_index(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repository.c:486,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/repository.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - repo
    - lf
    - flags
    argTypes:
    - struct repository*
    - struct lock_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: repo_hold_locked_index
    functionSourceFile: /src/git/repository.c
    functionUses: 4
    functionsReached:
    - hold_lock_file_for_update
    - BUG
    linkageType: ''
    returnType: int
    signature: "int repo_hold_locked_index(struct repository *repo,\n\t\t\t   struct
      lock_file *lf,\n\t\t\t   int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/http-backend.c:51,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/http-backend.c:53,1
    - Dst: url_decode_parameter_name
      Src: /src/git/http-backend.c:55,1
    - Dst: url_decode_parameter_value
      Src: /src/git/http-backend.c:56,1
    - Dst: string_list_lookup
      Src: /src/git/http-backend.c:59,1
    - Dst: string_list_insert
      Src: /src/git/http-backend.c:61,1
    - Dst: free
      Src: /src/git/http-backend.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: get_parameters
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    - string_list_insert
    - url_decode_parameter_name
    - url_decode_parameter_value
    - CALLOC_ARRAY
    - free
    - getenv
    linkageType: ''
    returnType: struct string_list
    signature: struct string_list *get_parameters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_lookup
      Src: /src/git/http-backend.c:73,1
    - Dst: get_parameters
      Src: /src/git/http-backend.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: get_parameter
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    - get_parameters
    linkageType: ''
    returnType: char
    signature: char *get_parameter(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/http-backend.c:77,1
    - Dst: va_start
      Src: /src/git/http-backend.c:85,1
    - Dst: vsnprintf
      Src: /src/git/http-backend.c:86,1
    - Dst: va_end
      Src: /src/git/http-backend.c:87,1
    - Dst: die
      Src: /src/git/http-backend.c:89,1
    - Dst: write_or_die
      Src: /src/git/http-backend.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: format_write
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - die
    - va_end
    - va_start
    - vsnprintf
    - format
    linkageType: ''
    returnType: void
    signature: void format_write(int fd, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hdr
    - code
    - msg
    argTypes:
    - struct strbuf*
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: http_status
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void http_status(struct strbuf *hdr, unsigned code, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hdr
    - name
    - value
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: hdr_str
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void hdr_str(struct strbuf *hdr, const char *name, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hdr
    - name
    - value
    argTypes:
    - struct strbuf*
    - char*
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: hdr_int
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void hdr_int(struct strbuf *hdr, const char *name, uintmax_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_date
      Src: /src/git/http-backend.c:111,1
    - Dst: DATE_MODE
      Src: /src/git/http-backend.c:111,1
    - Dst: hdr_str
      Src: /src/git/http-backend.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hdr
    - name
    - when
    argTypes:
    - struct strbuf*
    - char*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: hdr_date
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - hdr_str
    - show_date
    - DATE_MODE
    linkageType: ''
    returnType: void
    signature: void hdr_date(struct strbuf *hdr, const char *name, timestamp_t when)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hdr_str
      Src: /src/git/http-backend.c:117,1
    - Dst: hdr_str
      Src: /src/git/http-backend.c:118,1
    - Dst: hdr_str
      Src: /src/git/http-backend.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: hdr_nocache
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - hdr_str
    linkageType: ''
    returnType: void
    signature: void hdr_nocache(struct strbuf *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/http-backend.c:124,1
    - Dst: hdr_date
      Src: /src/git/http-backend.c:125,1
    - Dst: hdr_date
      Src: /src/git/http-backend.c:126,1
    - Dst: hdr_str
      Src: /src/git/http-backend.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: hdr_cache_forever
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - hdr_date
    - hdr_str
    - time
    linkageType: ''
    returnType: void
    signature: void hdr_cache_forever(struct strbuf *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/http-backend.c:132,1
    - Dst: write_or_die
      Src: /src/git/http-backend.c:133,1
    - Dst: strbuf_release
      Src: /src/git/http-backend.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: end_headers
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - strbuf_release
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void end_headers(struct strbuf *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/http-backend.c:137,1
    - Dst: http_status
      Src: /src/git/http-backend.c:142,1
    - Dst: hdr_nocache
      Src: /src/git/http-backend.c:143,1
    - Dst: end_headers
      Src: /src/git/http-backend.c:144,1
    - Dst: va_start
      Src: /src/git/http-backend.c:146,1
    - Dst: vfprintf
      Src: /src/git/http-backend.c:148,1
    - Dst: putc
      Src: /src/git/http-backend.c:149,1
    - Dst: va_end
      Src: /src/git/http-backend.c:151,1
    - Dst: exit
      Src: /src/git/http-backend.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - hdr
    - err
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 153
    functionName: not_found
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - putc
    - vfprintf
    - exit
    - http_status
    - hdr_nocache
    - va_end
    - end_headers
    - va_start
    - format
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN not_found(struct strbuf *hdr, const char *err, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/http-backend.c:155,1
    - Dst: http_status
      Src: /src/git/http-backend.c:160,1
    - Dst: hdr_nocache
      Src: /src/git/http-backend.c:161,1
    - Dst: end_headers
      Src: /src/git/http-backend.c:162,1
    - Dst: va_start
      Src: /src/git/http-backend.c:164,1
    - Dst: vfprintf
      Src: /src/git/http-backend.c:166,1
    - Dst: putc
      Src: /src/git/http-backend.c:167,1
    - Dst: va_end
      Src: /src/git/http-backend.c:169,1
    - Dst: exit
      Src: /src/git/http-backend.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - hdr
    - err
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 171
    functionName: forbidden
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - putc
    - vfprintf
    - exit
    - http_status
    - hdr_nocache
    - va_end
    - end_headers
    - va_start
    - format
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN forbidden(struct strbuf *hdr, const char *err, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: forbidden
      Src: /src/git/http-backend.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: select_getanyfile
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - forbidden
    linkageType: ''
    returnType: void
    signature: void select_getanyfile(struct strbuf *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hdr_int
      Src: /src/git/http-backend.c:182,1
    - Dst: hdr_str
      Src: /src/git/http-backend.c:183,1
    - Dst: end_headers
      Src: /src/git/http-backend.c:184,1
    - Dst: write_or_die
      Src: /src/git/http-backend.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - hdr
    - type
    - buf
    argTypes:
    - struct strbuf*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: send_strbuf
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - hdr_int
    - hdr_str
    - end_headers
    linkageType: ''
    returnType: void
    signature: "void send_strbuf(struct strbuf *hdr,\n\t\t\tconst char *type, struct
      strbuf *buf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/http-backend.c:191,1
    - Dst: xmalloc
      Src: /src/git/http-backend.c:193,1
    - Dst: open
      Src: /src/git/http-backend.c:197,1
    - Dst: not_found
      Src: /src/git/http-backend.c:199,1
    - Dst: strerror
      Src: /src/git/http-backend.c:199,1
    - Dst: fstat
      Src: /src/git/http-backend.c:200,1
    - Dst: die_errno
      Src: /src/git/http-backend.c:201,1
    - Dst: hdr_int
      Src: /src/git/http-backend.c:203,1
    - Dst: hdr_str
      Src: /src/git/http-backend.c:204,1
    - Dst: hdr_date
      Src: /src/git/http-backend.c:205,1
    - Dst: end_headers
      Src: /src/git/http-backend.c:206,1
    - Dst: xread
      Src: /src/git/http-backend.c:209,1
    - Dst: die_errno
      Src: /src/git/http-backend.c:211,1
    - Dst: write_or_die
      Src: /src/git/http-backend.c:214,1
    - Dst: close
      Src: /src/git/http-backend.c:216,1
    - Dst: free
      Src: /src/git/http-backend.c:217,1
    - Dst: free
      Src: /src/git/http-backend.c:218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - hdr
    - the_type
    - name
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 188
    functionDepth: 6
    functionLinenumber: 188
    functionLinenumberEnd: 219
    functionName: send_local_file
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - repo_git_path
    - open
    - fstat
    - strerror
    - die_errno
    - not_found
    - xmalloc
    - hdr_date
    - hdr_int
    - end_headers
    - xread
    - free
    - close
    - hdr_str
    linkageType: ''
    returnType: void
    signature: "void send_local_file(struct strbuf *hdr, const char *the_type,\n\t\t\t\tconst
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_getanyfile
      Src: /src/git/http-backend.c:223,1
    - Dst: hdr_nocache
      Src: /src/git/http-backend.c:224,1
    - Dst: send_local_file
      Src: /src/git/http-backend.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hdr
    - name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: get_text_file
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - send_local_file
    - select_getanyfile
    - hdr_nocache
    linkageType: ''
    returnType: void
    signature: void get_text_file(struct strbuf *hdr, char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_getanyfile
      Src: /src/git/http-backend.c:230,1
    - Dst: hdr_cache_forever
      Src: /src/git/http-backend.c:231,1
    - Dst: send_local_file
      Src: /src/git/http-backend.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hdr
    - name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 7
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: get_loose_object
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - hdr_cache_forever
    - select_getanyfile
    - send_local_file
    linkageType: ''
    returnType: void
    signature: void get_loose_object(struct strbuf *hdr, char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_getanyfile
      Src: /src/git/http-backend.c:237,1
    - Dst: hdr_cache_forever
      Src: /src/git/http-backend.c:238,1
    - Dst: send_local_file
      Src: /src/git/http-backend.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hdr
    - name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 7
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: get_pack_file
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - hdr_cache_forever
    - select_getanyfile
    - send_local_file
    linkageType: ''
    returnType: void
    signature: void get_pack_file(struct strbuf *hdr, char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_getanyfile
      Src: /src/git/http-backend.c:244,1
    - Dst: hdr_cache_forever
      Src: /src/git/http-backend.c:245,1
    - Dst: send_local_file
      Src: /src/git/http-backend.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hdr
    - name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 7
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: get_idx_file
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - hdr_cache_forever
    - select_getanyfile
    - send_local_file
    linkageType: ''
    returnType: void
    signature: void get_idx_file(struct strbuf *hdr, char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/http-backend.c:254,1
    - Dst: repo_config_get_ulong
      Src: /src/git/http-backend.c:255,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http-backend.c:257,1
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:259,1
    - Dst: repo_config_get_bool
      Src: /src/git/http-backend.c:260,1
    - Dst: strbuf_reset
      Src: /src/git/http-backend.c:262,1
    - Dst: strbuf_release
      Src: /src/git/http-backend.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 266
    functionName: http_config
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strbuf_release
    - repo_config_get_ulong
    - strbuf_reset
    - strbuf_addf
    - repo_config_get_bool
    linkageType: ''
    returnType: void
    signature: void http_config(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/http-backend.c:274,1
    - Dst: forbidden
      Src: /src/git/http-backend.c:275,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http-backend.c:277,1
    - Dst: strcmp
      Src: /src/git/http-backend.c:279,1
    - Dst: forbidden
      Src: /src/git/http-backend.c:286,1
    - Dst: getenv
      Src: /src/git/http-backend.c:289,1
    - Dst: forbidden
      Src: /src/git/http-backend.c:293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - hdr
    - name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 268
    functionDepth: 6
    functionLinenumber: 268
    functionLinenumberEnd: 295
    functionName: select_service
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - forbidden
    - strcmp
    - getenv
    - skip_prefix
    linkageType: ''
    returnType: struct rpc_service
    signature: struct rpc_service *select_service(struct strbuf *hdr, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_in_full
      Src: /src/git/http-backend.c:299,1
    - Dst: die
      Src: /src/git/http-backend.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - out
    - buf
    - len
    - prog_name
    argTypes:
    - int
    - unsigned char*
    - ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: write_to_child
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - write_in_full
    - die
    linkageType: ''
    returnType: void
    signature: void write_to_child(int out, const unsigned char *buf, ssize_t len,
      const char *prog_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/http-backend.c:311,1
    - Dst: read_in_full
      Src: /src/git/http-backend.c:319,1
    - Dst: free
      Src: /src/git/http-backend.c:321,1
    - Dst: die
      Src: /src/git/http-backend.c:334,1
    - Dst: alloc_nr
      Src: /src/git/http-backend.c:338,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/http-backend.c:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - fd
    - out
    argTypes:
    - int
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: read_request_eof
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - die
    - alloc_nr
    - read_in_full
    - xmalloc
    - REALLOC_ARRAY
    - free
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_request_eof(int fd, unsigned char **out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/http-backend.c:351,1
    - Dst: xmalloc
      Src: /src/git/http-backend.c:356,1
    - Dst: read_in_full
      Src: /src/git/http-backend.c:357,1
    - Dst: free
      Src: /src/git/http-backend.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - req_len
    - out
    argTypes:
    - int
    - ssize_t
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 364
    functionName: read_request_fixed_len
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - read_in_full
    - xmalloc
    - die
    - free
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_request_fixed_len(int fd, ssize_t req_len, unsigned char
      **out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/http-backend.c:369,1
    - Dst: git_parse_ssize_t
      Src: /src/git/http-backend.c:371,1
    - Dst: die
      Src: /src/git/http-backend.c:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 374
    functionName: get_content_length
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - getenv
    - git_parse_ssize_t
    - die
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t get_content_length(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_request_eof
      Src: /src/git/http-backend.c:379,1
    - Dst: read_request_fixed_len
      Src: /src/git/http-backend.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - out
    - req_len
    argTypes:
    - int
    - unsigned char**
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: read_request
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - read_request_eof
    - read_request_fixed_len
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_request(int fd, unsigned char **out, ssize_t req_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/http-backend.c:394,1
    - Dst: git_inflate_init_gzip_only
      Src: /src/git/http-backend.c:395,1
    - Dst: read_request
      Src: /src/git/http-backend.c:404,1
    - Dst: xread
      Src: /src/git/http-backend.c:412,1
    - Dst: die
      Src: /src/git/http-backend.c:419,1
    - Dst: git_inflate
      Src: /src/git/http-backend.c:428,1
    - Dst: die
      Src: /src/git/http-backend.c:430,1
    - Dst: write_to_child
      Src: /src/git/http-backend.c:433,1
    - Dst: git_inflate_end
      Src: /src/git/http-backend.c:442,1
    - Dst: close
      Src: /src/git/http-backend.c:443,1
    - Dst: free
      Src: /src/git/http-backend.c:444,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 4
    argNames:
    - prog_name
    - out
    - buffer_input
    - req_len
    argTypes:
    - char*
    - int
    - int
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 445
    functionName: inflate_request
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - git_inflate_init_gzip_only
    - write_to_child
    - git_inflate
    - read_request
    - xread
    - free
    - close
    - git_inflate_end
    linkageType: ''
    returnType: void
    signature: void inflate_request(const char *prog_name, int out, int buffer_input,
      ssize_t req_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_request
      Src: /src/git/http-backend.c:450,1
    - Dst: die_errno
      Src: /src/git/http-backend.c:452,1
    - Dst: write_to_child
      Src: /src/git/http-backend.c:453,1
    - Dst: close
      Src: /src/git/http-backend.c:454,1
    - Dst: free
      Src: /src/git/http-backend.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - prog_name
    - out
    - req_len
    argTypes:
    - char*
    - int
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 456
    functionName: copy_request
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - die_errno
    - write_to_child
    - read_request
    - free
    - close
    linkageType: ''
    returnType: void
    signature: void copy_request(const char *prog_name, int out, ssize_t req_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xread
      Src: /src/git/http-backend.c:465,1
    - Dst: die_errno
      Src: /src/git/http-backend.c:467,1
    - Dst: write_to_child
      Src: /src/git/http-backend.c:468,1
    - Dst: close
      Src: /src/git/http-backend.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - prog_name
    - out
    - req_len
    argTypes:
    - char*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 473
    functionName: pipe_fixed_length
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - write_to_child
    - xread
    - die_errno
    - close
    linkageType: ''
    returnType: void
    signature: void pipe_fixed_length(const char *prog_name, int out, size_t req_len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/http-backend.c:477,1
    - Dst: getenv
      Src: /src/git/http-backend.c:478,1
    - Dst: getenv
      Src: /src/git/http-backend.c:479,1
    - Dst: get_content_length
      Src: /src/git/http-backend.c:482,1
    - Dst: strcmp
      Src: /src/git/http-backend.c:484,1
    - Dst: strcmp
      Src: /src/git/http-backend.c:484,1
    - Dst: getenv
      Src: /src/git/http-backend.c:492,1
    - Dst: strvec_pushf
      Src: /src/git/http-backend.c:493,1
    - Dst: getenv
      Src: /src/git/http-backend.c:494,1
    - Dst: strvec_pushf
      Src: /src/git/http-backend.c:495,1
    - Dst: strvec_pushv
      Src: /src/git/http-backend.c:498,1
    - Dst: start_command
      Src: /src/git/http-backend.c:504,1
    - Dst: exit
      Src: /src/git/http-backend.c:505,1
    - Dst: close
      Src: /src/git/http-backend.c:507,1
    - Dst: inflate_request
      Src: /src/git/http-backend.c:509,1
    - Dst: copy_request
      Src: /src/git/http-backend.c:511,1
    - Dst: pipe_fixed_length
      Src: /src/git/http-backend.c:513,1
    - Dst: close
      Src: /src/git/http-backend.c:515,1
    - Dst: finish_command
      Src: /src/git/http-backend.c:517,1
    - Dst: exit
      Src: /src/git/http-backend.c:518,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 2
    argNames:
    - argv
    - buffer_input
    argTypes:
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 475
    functionDepth: 7
    functionLinenumber: 475
    functionLinenumberEnd: 519
    functionName: run_service
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - finish_command
    - strvec_pushv
    - exit
    - inflate_request
    - copy_request
    - pipe_fixed_length
    - strcmp
    - close
    - getenv
    - strvec_pushf
    - start_command
    - get_content_length
    linkageType: ''
    returnType: void
    signature: void run_service(const char **argv, int buffer_input)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strip_namespace
      Src: /src/git/http-backend.c:523,1
    - Dst: parse_object
      Src: /src/git/http-backend.c:525,1
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:529,1
    - Dst: oid_to_hex
      Src: /src/git/http-backend.c:529,1
    - Dst: deref_tag
      Src: /src/git/http-backend.c:531,1
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:534,1
    - Dst: oid_to_hex
      Src: /src/git/http-backend.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 521
    functionDepth: 6
    functionLinenumber: 521
    functionLinenumberEnd: 538
    functionName: show_text_ref
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - strip_namespace
    - deref_tag
    - strbuf_addf
    - parse_object
    linkageType: ''
    returnType: int
    signature: int show_text_ref(const struct reference *ref, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_parameter
      Src: /src/git/http-backend.c:542,1
    - Dst: hdr_nocache
      Src: /src/git/http-backend.c:545,1
    - Dst: select_service
      Src: /src/git/http-backend.c:551,1
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:553,1
    - Dst: hdr_str
      Src: /src/git/http-backend.c:555,1
    - Dst: end_headers
      Src: /src/git/http-backend.c:556,1
    - Dst: determine_protocol_version_server
      Src: /src/git/http-backend.c:559,1
    - Dst: packet_write_fmt
      Src: /src/git/http-backend.c:560,1
    - Dst: packet_flush
      Src: /src/git/http-backend.c:561,1
    - Dst: run_service
      Src: /src/git/http-backend.c:565,1
    - Dst: get_git_namespace
      Src: /src/git/http-backend.c:569,1
    - Dst: select_getanyfile
      Src: /src/git/http-backend.c:572,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/http-backend.c:573,1
    - Dst: get_main_ref_store
      Src: /src/git/http-backend.c:573,1
    - Dst: send_strbuf
      Src: /src/git/http-backend.c:575,1
    - Dst: strbuf_release
      Src: /src/git/http-backend.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - hdr
    - UNUSED
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 540
    functionDepth: 7
    functionLinenumber: 540
    functionLinenumberEnd: 578
    functionName: get_info_refs
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - select_service
    - strbuf_release
    - get_parameter
    - strbuf_addf
    - packet_flush
    - hdr_nocache
    - run_service
    - refs_for_each_ref_ext
    - send_strbuf
    - end_headers
    - select_getanyfile
    - determine_protocol_version_server
    - get_git_namespace
    - hdr_str
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void get_info_refs(struct strbuf *hdr, char *arg UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/http-backend.c:585,1
    - Dst: get_main_ref_store
      Src: /src/git/http-backend.c:585,1
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:591,1
    - Dst: strip_namespace
      Src: /src/git/http-backend.c:591,1
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:593,1
    - Dst: oid_to_hex
      Src: /src/git/http-backend.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 580
    functionDepth: 6
    functionLinenumber: 580
    functionLinenumberEnd: 597
    functionName: show_head_ref
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - strip_namespace
    - refs_resolve_ref_unsafe
    - strbuf_addf
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int show_head_ref(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_getanyfile
      Src: /src/git/http-backend.c:603,1
    - Dst: refs_head_ref_namespaced
      Src: /src/git/http-backend.c:604,1
    - Dst: get_main_ref_store
      Src: /src/git/http-backend.c:604,1
    - Dst: send_strbuf
      Src: /src/git/http-backend.c:606,1
    - Dst: strbuf_release
      Src: /src/git/http-backend.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hdr
    - UNUSED
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 599
    functionDepth: 7
    functionLinenumber: 599
    functionLinenumberEnd: 608
    functionName: get_head
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - refs_head_ref_namespaced
    - select_getanyfile
    - send_strbuf
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void get_head(struct strbuf *hdr, char *arg UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/http-backend.c:612,1
    - Dst: repo_get_object_directory
      Src: /src/git/http-backend.c:612,1
    - Dst: select_getanyfile
      Src: /src/git/http-backend.c:617,1
    - Dst: strbuf_grow
      Src: /src/git/http-backend.c:623,1
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:626,1
    - Dst: strbuf_addch
      Src: /src/git/http-backend.c:628,1
    - Dst: hdr_nocache
      Src: /src/git/http-backend.c:630,1
    - Dst: send_strbuf
      Src: /src/git/http-backend.c:631,1
    - Dst: strbuf_release
      Src: /src/git/http-backend.c:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - hdr
    - UNUSED
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 610
    functionDepth: 7
    functionLinenumber: 610
    functionLinenumberEnd: 633
    functionName: get_info_packs
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - strbuf_addch
    - hdr_nocache
    - repo_get_object_directory
    - strlen
    - select_getanyfile
    - strbuf_grow
    - send_strbuf
    linkageType: ''
    returnType: void
    signature: void get_info_packs(struct strbuf *hdr, char *arg UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/http-backend.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 627
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/http-backend.c
    functionUses: 1
    functionsReached:
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/http-backend.c:637,1
    - Dst: strcmp
      Src: /src/git/http-backend.c:642,1
    - Dst: http_status
      Src: /src/git/http-backend.c:643,1
    - Dst: hdr_nocache
      Src: /src/git/http-backend.c:644,1
    - Dst: end_headers
      Src: /src/git/http-backend.c:645,1
    - Dst: format_write
      Src: /src/git/http-backend.c:646,1
    - Dst: exit
      Src: /src/git/http-backend.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - hdr
    - accepted_type
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 635
    functionDepth: 5
    functionLinenumber: 635
    functionLinenumberEnd: 652
    functionName: check_content_type
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - exit
    - http_status
    - hdr_nocache
    - format_write
    - end_headers
    - strcmp
    - getenv
    linkageType: ''
    returnType: void
    signature: void check_content_type(struct strbuf *hdr, const char *accepted_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: select_service
      Src: /src/git/http-backend.c:657,1
    - Dst: strvec_push
      Src: /src/git/http-backend.c:660,1
    - Dst: strcmp
      Src: /src/git/http-backend.c:661,1
    - Dst: strvec_push
      Src: /src/git/http-backend.c:662,1
    - Dst: strvec_push
      Src: /src/git/http-backend.c:663,1
    - Dst: strbuf_reset
      Src: /src/git/http-backend.c:665,1
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:666,1
    - Dst: check_content_type
      Src: /src/git/http-backend.c:667,1
    - Dst: hdr_nocache
      Src: /src/git/http-backend.c:669,1
    - Dst: strbuf_reset
      Src: /src/git/http-backend.c:671,1
    - Dst: strbuf_addf
      Src: /src/git/http-backend.c:672,1
    - Dst: hdr_str
      Src: /src/git/http-backend.c:673,1
    - Dst: end_headers
      Src: /src/git/http-backend.c:675,1
    - Dst: run_service
      Src: /src/git/http-backend.c:677,1
    - Dst: strbuf_release
      Src: /src/git/http-backend.c:678,1
    - Dst: strvec_clear
      Src: /src/git/http-backend.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - hdr
    - service_name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 654
    functionDepth: 7
    functionLinenumber: 654
    functionLinenumberEnd: 680
    functionName: service_rpc
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - select_service
    - strbuf_release
    - strbuf_reset
    - strbuf_addf
    - hdr_nocache
    - run_service
    - strvec_clear
    - check_content_type
    - end_headers
    - strcmp
    - hdr_str
    linkageType: ''
    returnType: void
    signature: void service_rpc(struct strbuf *hdr, char *service_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_die_message_routine
      Src: /src/git/http-backend.c:687,1
    - Dst: die_message_fn
      Src: /src/git/http-backend.c:689,1
    - Dst: http_status
      Src: /src/git/http-backend.c:691,1
    - Dst: hdr_nocache
      Src: /src/git/http-backend.c:692,1
    - Dst: end_headers
      Src: /src/git/http-backend.c:693,1
    - Dst: exit
      Src: /src/git/http-backend.c:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - err
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 683
    functionDepth: 5
    functionLinenumber: 683
    functionLinenumberEnd: 696
    functionName: die_webcgi
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - die_message_fn
    - get_die_message_routine
    - exit
    - http_status
    - hdr_nocache
    - end_headers
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN die_webcgi(const char *err, va_list params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: die_webcgi_recursing
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int die_webcgi_recursing(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/http-backend.c:706,1
    - Dst: getenv
      Src: /src/git/http-backend.c:707,1
    - Dst: getenv
      Src: /src/git/http-backend.c:708,1
    - Dst: die
      Src: /src/git/http-backend.c:712,1
    - Dst: daemon_avoid_alias
      Src: /src/git/http-backend.c:713,1
    - Dst: die
      Src: /src/git/http-backend.c:714,1
    - Dst: end_url_with_slash
      Src: /src/git/http-backend.c:715,1
    - Dst: strbuf_addstr
      Src: /src/git/http-backend.c:718,1
    - Dst: strbuf_detach
      Src: /src/git/http-backend.c:719,1
    - Dst: xstrdup
      Src: /src/git/http-backend.c:721,1
    - Dst: die
      Src: /src/git/http-backend.c:723,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 725
    functionName: getdir
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - die
    - daemon_avoid_alias
    - end_url_with_slash
    - strbuf_detach
    - strbuf_addstr
    - getenv
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char * getdir(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/http-backend.c:751,1
    - Dst: strcmp
      Src: /src/git/http-backend.c:753,1
    - Dst: http_status
      Src: /src/git/http-backend.c:754,1
    - Dst: hdr_str
      Src: /src/git/http-backend.c:755,1
    - Dst: strcmp
      Src: /src/git/http-backend.c:756,1
    - Dst: http_status
      Src: /src/git/http-backend.c:758,1
    - Dst: hdr_nocache
      Src: /src/git/http-backend.c:759,1
    - Dst: end_headers
      Src: /src/git/http-backend.c:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - hdr
    - c
    argTypes:
    - struct strbuf*
    - struct service_cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 749
    functionDepth: 5
    functionLinenumber: 749
    functionLinenumberEnd: 762
    functionName: bad_request
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - http_status
    - hdr_nocache
    - end_headers
    - strcmp
    - getenv
    - hdr_str
    linkageType: ''
    returnType: int
    signature: int bad_request(struct strbuf *hdr, const struct service_cmd *c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/http-backend.c:766,1
    - Dst: set_die_routine
      Src: /src/git/http-backend.c:774,1
    - Dst: set_die_is_recursing_routine
      Src: /src/git/http-backend.c:775,1
    - Dst: die
      Src: /src/git/http-backend.c:778,1
    - Dst: strcmp
      Src: /src/git/http-backend.c:779,1
    - Dst: getdir
      Src: /src/git/http-backend.c:781,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http-backend.c:783,1
    - Dst: regcomp
      Src: /src/git/http-backend.c:789,1
    - Dst: die
      Src: /src/git/http-backend.c:790,1
    - Dst: regexec
      Src: /src/git/http-backend.c:791,1
    - Dst: regfree
      Src: /src/git/http-backend.c:792,1
    - Dst: strcmp
      Src: /src/git/http-backend.c:797,1
    - Dst: bad_request
      Src: /src/git/http-backend.c:798,1
    - Dst: xmemdupz
      Src: /src/git/http-backend.c:802,1
    - Dst: not_found
      Src: /src/git/http-backend.c:809,1
    - Dst: setup_path
      Src: /src/git/http-backend.c:811,1
    - Dst: enter_repo
      Src: /src/git/http-backend.c:812,1
    - Dst: not_found
      Src: /src/git/http-backend.c:813,1
    - Dst: getenv
      Src: /src/git/http-backend.c:814,1
    - Dst: access
      Src: /src/git/http-backend.c:815,1
    - Dst: not_found
      Src: /src/git/http-backend.c:816,1
    - Dst: free
      Src: /src/git/http-backend.c:817,1
    - Dst: http_config
      Src: /src/git/http-backend.c:819,1
    - Dst: git_env_ulong
      Src: /src/git/http-backend.c:820,1
    - Dst: getenv
      Src: /src/git/http-backend.c:822,1
    - Dst: setenv
      Src: /src/git/http-backend.c:824,1
    - Dst: struct service_cmd*::imp
      Src: /src/git/http-backend.c:826,1
    - Dst: free
      Src: /src/git/http-backend.c:827,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 764
    functionDepth: 6
    functionLinenumber: 764
    functionLinenumberEnd: 829
    functionName: cmd_main
    functionSourceFile: /src/git/http-backend.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - bad_request
    - setup_path
    - getdir
    - not_found
    - set_die_is_recursing_routine
    - free
    - strcmp
    - die
    - access
    - http_config
    - regexec
    - regcomp
    - struct service_cmd*::imp
    - ARRAY_SIZE
    - enter_repo
    - set_die_routine
    - git_env_ulong
    - regfree
    - setenv
    - getenv
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_attrs
      Src: /src/git/convert.h:121,1
    - Dst: convert_to_working_tree_ca
      Src: /src/git/convert.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - istate
    - path
    - src
    - len
    - dst
    - meta
    argTypes:
    - struct index_state*
    - char*
    - char*
    - size_t
    - struct strbuf*
    - struct checkout_metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 6
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: convert_to_working_tree
    functionSourceFile: /src/git/convert.h
    functionUses: 1
    functionsReached:
    - convert_attrs
    - convert_to_working_tree_ca
    linkageType: ''
    returnType: int
    signature: "int convert_to_working_tree(struct index_state *istate,\n\t\t\t\t\t
      \ const char *path, const char *src,\n\t\t\t\t\t  size_t len, struct strbuf
      *dst,\n\t\t\t\t\t  const struct checkout_metadata *meta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_attrs
      Src: /src/git/convert.h:131,1
    - Dst: async_convert_to_working_tree_ca
      Src: /src/git/convert.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - istate
    - path
    - src
    - len
    - dst
    - meta
    - dco
    argTypes:
    - struct index_state*
    - char*
    - char*
    - size_t
    - struct strbuf*
    - struct checkout_metadata*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 6
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: async_convert_to_working_tree
    functionSourceFile: /src/git/convert.h
    functionUses: 0
    functionsReached:
    - convert_attrs
    - async_convert_to_working_tree_ca
    linkageType: ''
    returnType: int
    signature: "int async_convert_to_working_tree(struct index_state *istate,\n\t\t\t\t\t\tconst
      char *path, const char *src,\n\t\t\t\t\t\tsize_t len, struct strbuf *dst,\n\t\t\t\t\t\tconst
      struct checkout_metadata *meta,\n\t\t\t\t\t\tvoid *dco)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_to_git
      Src: /src/git/convert.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: would_convert_to_git
    functionSourceFile: /src/git/convert.h
    functionUses: 2
    functionsReached:
    - convert_to_git
    linkageType: ''
    returnType: int
    signature: "int would_convert_to_git(struct index_state *istate,\n\t\t\t\t       const
      char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/strmap.c:12,1
    - Dst: container_of
      Src: /src/git/strmap.c:13,1
    - Dst: strcmp
      Src: /src/git/strmap.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hashmap_cmp_fn_data
    - entry1
    - entry2
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 15
    functionName: cmp_strmap_entry
    functionSourceFile: /src/git/strmap.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cmp_strmap_entry(const void *hashmap_cmp_fn_data UNUSED,\n\t\t
      \    const struct hashmap_entry *entry1,\n\t\t     const struct hashmap_entry
      *entry2,\n\t\t     const void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/strmap.c:21,1
    - Dst: strhash
      Src: /src/git/strmap.c:21,1
    - Dst: hashmap_get_entry
      Src: /src/git/strmap.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - map
    - str
    argTypes:
    - struct strmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: find_strmap_entry
    functionSourceFile: /src/git/strmap.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_entry_init
    - hashmap_get_entry
    linkageType: ''
    returnType: struct strmap_entry
    signature: "struct strmap_entry *find_strmap_entry(struct strmap *map,\n\t\t\t\t\t
      \     const char *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/strmap.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: strmap_init
    functionSourceFile: /src/git/strmap.c
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void strmap_init(struct strmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/strmap.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - map
    - pool
    - strdup_strings
    argTypes:
    - struct strmap*
    - struct mem_pool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: strmap_init_with_options
    functionSourceFile: /src/git/strmap.c
    functionUses: 2
    functionsReached:
    - hashmap_init
    linkageType: ''
    returnType: void
    signature: "void strmap_init_with_options(struct strmap *map,\n\t\t\t      struct
      mem_pool *pool,\n\t\t\t      int strdup_strings)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/strmap.c:60,1
    - Dst: free
      Src: /src/git/strmap.c:62,1
    - Dst: free
      Src: /src/git/strmap.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - map
    - free_values
    argTypes:
    - struct strmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 66
    functionName: strmap_free_entries_
    functionSourceFile: /src/git/strmap.c
    functionUses: 0
    functionsReached:
    - hashmap_for_each_entry
    - free
    linkageType: ''
    returnType: void
    signature: void strmap_free_entries_(struct strmap *map, int free_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_free_entries_
      Src: /src/git/strmap.c:70,1
    - Dst: hashmap_clear
      Src: /src/git/strmap.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - map
    - free_values
    argTypes:
    - struct strmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: strmap_clear
    functionSourceFile: /src/git/strmap.c
    functionUses: 5
    functionsReached:
    - strmap_free_entries_
    - hashmap_clear
    linkageType: ''
    returnType: void
    signature: void strmap_clear(struct strmap *map, int free_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_free_entries_
      Src: /src/git/strmap.c:76,1
    - Dst: hashmap_partial_clear
      Src: /src/git/strmap.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - map
    - free_values
    argTypes:
    - struct strmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: strmap_partial_clear
    functionSourceFile: /src/git/strmap.c
    functionUses: 0
    functionsReached:
    - strmap_free_entries_
    - hashmap_partial_clear
    linkageType: ''
    returnType: void
    signature: void strmap_partial_clear(struct strmap *map, int free_values)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLEXPTR_ALLOC_STR
      Src: /src/git/strmap.c:88,1
    - Dst: st_add
      Src: /src/git/strmap.c:90,1
    - Dst: strlen
      Src: /src/git/strmap.c:90,1
    - Dst: mem_pool_alloc
      Src: /src/git/strmap.c:91,1
    - Dst: st_add
      Src: /src/git/strmap.c:92,1
    - Dst: memcpy
      Src: /src/git/strmap.c:93,1
    - Dst: xmalloc
      Src: /src/git/strmap.c:97,1
    - Dst: mem_pool_alloc
      Src: /src/git/strmap.c:99,1
    - Dst: hashmap_entry_init
      Src: /src/git/strmap.c:101,1
    - Dst: strhash
      Src: /src/git/strmap.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - map
    - str
    - data
    argTypes:
    - struct strmap*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 106
    functionName: create_entry
    functionSourceFile: /src/git/strmap.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_entry_init
    - memcpy
    - FLEXPTR_ALLOC_STR
    - mem_pool_alloc
    - strlen
    - xmalloc
    - st_add
    linkageType: ''
    returnType: struct strmap_entry
    signature: "struct strmap_entry *create_entry(struct strmap *map,\n\t\t\t\t\t
      const char *str,\n\t\t\t\t\t void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_strmap_entry
      Src: /src/git/strmap.c:110,1
    - Dst: create_entry
      Src: /src/git/strmap.c:118,1
    - Dst: hashmap_add
      Src: /src/git/strmap.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - map
    - str
    - data
    argTypes:
    - struct strmap*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: strmap_put
    functionSourceFile: /src/git/strmap.c
    functionUses: 13
    functionsReached:
    - hashmap_add
    - find_strmap_entry
    - create_entry
    linkageType: ''
    returnType: void
    signature: void *strmap_put(struct strmap *map, const char *str, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_strmap_entry
      Src: /src/git/strmap.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - str
    argTypes:
    - struct strmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: strmap_get_entry
    functionSourceFile: /src/git/strmap.c
    functionUses: 5
    functionsReached:
    - find_strmap_entry
    linkageType: ''
    returnType: struct strmap_entry
    signature: struct strmap_entry *strmap_get_entry(struct strmap *map, const char
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_strmap_entry
      Src: /src/git/strmap.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - str
    argTypes:
    - struct strmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: strmap_get
    functionSourceFile: /src/git/strmap.c
    functionUses: 15
    functionsReached:
    - find_strmap_entry
    linkageType: ''
    returnType: void
    signature: void *strmap_get(struct strmap *map, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_strmap_entry
      Src: /src/git/strmap.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - str
    argTypes:
    - struct strmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: strmap_contains
    functionSourceFile: /src/git/strmap.c
    functionUses: 5
    functionsReached:
    - find_strmap_entry
    linkageType: ''
    returnType: int
    signature: int strmap_contains(struct strmap *map, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/strmap.c:142,1
    - Dst: strhash
      Src: /src/git/strmap.c:142,1
    - Dst: hashmap_remove_entry
      Src: /src/git/strmap.c:144,1
    - Dst: free
      Src: /src/git/strmap.c:148,1
    - Dst: free
      Src: /src/git/strmap.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - map
    - str
    - free_value
    argTypes:
    - struct strmap*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: strmap_remove
    functionSourceFile: /src/git/strmap.c
    functionUses: 4
    functionsReached:
    - hashmap_remove_entry
    - strhash
    - hashmap_entry_init
    - free
    linkageType: ''
    returnType: void
    signature: void strmap_remove(struct strmap *map, const char *str, int free_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_strmap_entry
      Src: /src/git/strmap.c:155,1
    - Dst: strintmap_set
      Src: /src/git/strmap.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - map
    - str
    - amt
    argTypes:
    - struct strintmap*
    - char*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: strintmap_incr
    functionSourceFile: /src/git/strmap.c
    functionUses: 0
    functionsReached:
    - find_strmap_entry
    - strintmap_set
    linkageType: ''
    returnType: void
    signature: void strintmap_incr(struct strintmap *map, const char *str, intptr_t
      amt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_strmap_entry
      Src: /src/git/strmap.c:171,1
    - Dst: create_entry
      Src: /src/git/strmap.c:176,1
    - Dst: hashmap_add
      Src: /src/git/strmap.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - set
    - str
    argTypes:
    - struct strset*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 179
    functionName: strset_add
    functionSourceFile: /src/git/strmap.c
    functionUses: 11
    functionsReached:
    - hashmap_add
    - find_strmap_entry
    - create_entry
    linkageType: ''
    returnType: int
    signature: int strset_add(struct strset *set, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lang
    - ','
    - rx
    - ','
    - wrx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 25
    functionName: PATTERNS
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATTERNS(lang, rx, wrx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lang
    - ','
    - rx
    - ','
    - wrx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: IPATTERN
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPATTERN(lang, rx, wrx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrncmpz
      Src: /src/git/userdiff.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - driver
    - UNUSED
    - priv
    argTypes:
    - struct userdiff_driver*
    - enum userdiff_driver_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 399
    functionName: userdiff_find_by_namelen_cb
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    linkageType: ''
    returnType: int
    signature: "int userdiff_find_by_namelen_cb(struct userdiff_driver *driver,\n\t\t\t\t
      \      enum userdiff_driver_type type UNUSED,\n\t\t\t\t       void *priv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/git/userdiff.c:411,1
    - Dst: BUG
      Src: /src/git/userdiff.c:412,1
    - Dst: regexec
      Src: /src/git/userdiff.c:413,1
    - Dst: strlen
      Src: /src/git/userdiff.c:415,1
    - Dst: regfree
      Src: /src/git/userdiff.c:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 418
    functionName: regexec_supports_multi_byte_chars
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - regfree
    - regexec
    - strlen
    - regcomp
    - BUG
    linkageType: ''
    returnType: int
    signature: int regexec_supports_multi_byte_chars(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_userdiff_driver
      Src: /src/git/userdiff.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 428
    functionName: userdiff_find_by_namelen
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - for_each_userdiff_driver
    linkageType: ''
    returnType: struct userdiff_driver
    signature: struct userdiff_driver *userdiff_find_by_namelen(const char *name,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/userdiff.c:434,1
    - Dst: git_config_string
      Src: /src/git/userdiff.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - f
    - k
    - v
    - cflags
    argTypes:
    - struct userdiff_funcname*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: parse_funcname
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - git_config_string
    linkageType: ''
    returnType: int
    signature: "int parse_funcname(struct userdiff_funcname *f, const char *k,\n\t\tconst
      char *v, int cflags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/userdiff.c:444,1
    - Dst: git_config_bool
      Src: /src/git/userdiff.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - b
    - k
    - v
    argTypes:
    - int*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 449
    functionName: parse_tristate
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - git_config_bool
    linkageType: ''
    returnType: int
    signature: int parse_tristate(int *b, const char *k, const char *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_bool
      Src: /src/git/userdiff.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - b
    - k
    - v
    argTypes:
    - int*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 455
    functionName: parse_bool
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    linkageType: ''
    returnType: int
    signature: int parse_bool(int *b, const char *k, const char *v)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/userdiff.c:463,1
    - Dst: userdiff_find_by_namelen
      Src: /src/git/userdiff.c:466,1
    - Dst: ALLOC_GROW
      Src: /src/git/userdiff.c:468,1
    - Dst: memset
      Src: /src/git/userdiff.c:470,1
    - Dst: xmemdupz
      Src: /src/git/userdiff.c:471,1
    - Dst: strcmp
      Src: /src/git/userdiff.c:475,1
    - Dst: parse_funcname
      Src: /src/git/userdiff.c:476,1
    - Dst: strcmp
      Src: /src/git/userdiff.c:477,1
    - Dst: parse_funcname
      Src: /src/git/userdiff.c:478,1
    - Dst: strcmp
      Src: /src/git/userdiff.c:479,1
    - Dst: parse_tristate
      Src: /src/git/userdiff.c:480,1
    - Dst: strcmp
      Src: /src/git/userdiff.c:481,1
    - Dst: FREE_AND_NULL
      Src: /src/git/userdiff.c:482,1
    - Dst: git_config_string
      Src: /src/git/userdiff.c:483,1
    - Dst: strcmp
      Src: /src/git/userdiff.c:485,1
    - Dst: git_config_bool
      Src: /src/git/userdiff.c:486,1
    - Dst: strcmp
      Src: /src/git/userdiff.c:489,1
    - Dst: FREE_AND_NULL
      Src: /src/git/userdiff.c:491,1
    - Dst: git_config_string
      Src: /src/git/userdiff.c:492,1
    - Dst: strcmp
      Src: /src/git/userdiff.c:496,1
    - Dst: parse_bool
      Src: /src/git/userdiff.c:497,1
    - Dst: strcmp
      Src: /src/git/userdiff.c:498,1
    - Dst: FREE_AND_NULL
      Src: /src/git/userdiff.c:500,1
    - Dst: git_config_string
      Src: /src/git/userdiff.c:501,1
    - Dst: strcmp
      Src: /src/git/userdiff.c:505,1
    - Dst: FREE_AND_NULL
      Src: /src/git/userdiff.c:507,1
    - Dst: git_config_string
      Src: /src/git/userdiff.c:508,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - k
    - v
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 514
    functionName: userdiff_config
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - userdiff_find_by_namelen
    - memset
    - xmemdupz
    - parse_tristate
    - parse_bool
    - git_config_bool
    - parse_funcname
    - git_config_string
    - parse_config_key
    - ALLOC_GROW
    - strcmp
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: int userdiff_config(const char *k, const char *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/userdiff.c:518,1
    - Dst: userdiff_find_by_namelen
      Src: /src/git/userdiff.c:519,1
    - Dst: regexec_supports_multi_byte_chars
      Src: /src/git/userdiff.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 526
    functionName: userdiff_find_by_name
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - userdiff_find_by_namelen
    - strlen
    - regexec_supports_multi_byte_chars
    linkageType: ''
    returnType: struct userdiff_driver
    signature: struct userdiff_driver *userdiff_find_by_name(const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: attr_check_initl
      Src: /src/git/userdiff.c:534,1
    - Dst: git_check_attr
      Src: /src/git/userdiff.c:537,1
    - Dst: ATTR_TRUE
      Src: /src/git/userdiff.c:539,1
    - Dst: ATTR_FALSE
      Src: /src/git/userdiff.c:541,1
    - Dst: ATTR_UNSET
      Src: /src/git/userdiff.c:543,1
    - Dst: userdiff_find_by_name
      Src: /src/git/userdiff.c:545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 546
    functionName: userdiff_find_by_path
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - userdiff_find_by_name
    - ATTR_FALSE
    - ATTR_UNSET
    - attr_check_initl
    - git_check_attr
    - ATTR_TRUE
    linkageType: ''
    returnType: struct userdiff_driver
    signature: "struct userdiff_driver *userdiff_find_by_path(struct index_state *istate,\n\t\t\t\t\t
      \     const char *path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: have_git_dir
      Src: /src/git/userdiff.c:555,1
    - Dst: xmalloc
      Src: /src/git/userdiff.c:556,1
    - Dst: strbuf_addf
      Src: /src/git/userdiff.c:559,1
    - Dst: notes_cache_init
      Src: /src/git/userdiff.c:560,1
    - Dst: strbuf_release
      Src: /src/git/userdiff.c:562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - r
    - driver
    argTypes:
    - struct repository*
    - struct userdiff_driver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 566
    functionName: userdiff_get_textconv
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - xmalloc
    - have_git_dir
    - notes_cache_init
    linkageType: ''
    returnType: struct userdiff_driver
    signature: "struct userdiff_driver *userdiff_get_textconv(struct repository *r,\n\t\t\t\t\t
      \     struct userdiff_driver *driver)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/userdiff.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - fn
    - type
    - cb_data
    - drv
    - drv_size
    argTypes:
    - each_userdiff_driver_fn
    - enum userdiff_driver_type
    - void*
    - struct userdiff_driver*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 581
    functionName: for_each_userdiff_driver_list
    functionSourceFile: /src/git/userdiff.c
    functionUses: 0
    functionsReached:
    - fn
    linkageType: ''
    returnType: int
    signature: "int for_each_userdiff_driver_list(each_userdiff_driver_fn fn,\n\t\t\t\t\t
      enum userdiff_driver_type type, void *cb_data,\n\t\t\t\t\t struct userdiff_driver
      *drv,\n\t\t\t\t\t int drv_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_userdiff_driver_list
      Src: /src/git/userdiff.c:587,1
    - Dst: for_each_userdiff_driver_list
      Src: /src/git/userdiff.c:592,1
    - Dst: ARRAY_SIZE
      Src: /src/git/userdiff.c:594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - fn
    - cb_data
    argTypes:
    - each_userdiff_driver_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 599
    functionName: for_each_userdiff_driver
    functionSourceFile: /src/git/userdiff.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - for_each_userdiff_driver_list
    linkageType: ''
    returnType: int
    signature: int for_each_userdiff_driver(each_userdiff_driver_fn fn, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: HASHMAP_INIT
    functionSourceFile: /src/git/hashmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHMAP_INIT(fn, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: hashmap_clear
    functionSourceFile: /src/git/hashmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_clear(map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: hashmap_partial_clear
    functionSourceFile: /src/git/hashmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_partial_clear(map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - map
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: hashmap_clear_and_free
    functionSourceFile: /src/git/hashmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_clear_and_free(map, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - map
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: hashmap_partial_clear_and_free
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_partial_clear_and_free(map, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - hash
    argTypes:
    - struct hashmap_entry*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: hashmap_entry_init
    functionSourceFile: /src/git/hashmap.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hashmap_entry_init(struct hashmap_entry *e,\n\t\t\t\t      unsigned
      int hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/hashmap.h:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct hashmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: hashmap_get_size
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hashmap_get_size(struct hashmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/hashmap.h:357,1
    - Dst: hashmap_get
      Src: /src/git/hashmap.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - map
    - hash
    - keydata
    argTypes:
    - struct hashmap*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 359
    functionName: hashmap_get_from_hash
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached:
    - hashmap_entry_init
    - hashmap_get
    linkageType: ''
    returnType: struct hashmap_entry
    signature: "struct hashmap_entry *hashmap_get_from_hash(\n\t\t\t\t\tconst struct
      hashmap *map,\n\t\t\t\t\tunsigned int hash,\n\t\t\t\t\tconst void *keydata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - map
    - ','
    - keyvar
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: hashmap_put_entry
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_put_entry(map, keyvar, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - map
    - ','
    - keyvar
    - ','
    - member
    - ','
    - keydata
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: hashmap_remove_entry
    functionSourceFile: /src/git/hashmap.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_remove_entry(map, keyvar, member, keydata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_iter_init
      Src: /src/git/hashmap.h:457,1
    - Dst: hashmap_iter_next
      Src: /src/git/hashmap.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - map
    - iter
    argTypes:
    - struct hashmap*
    - struct hashmap_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: hashmap_iter_first
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached:
    - hashmap_iter_init
    - hashmap_iter_next
    linkageType: ''
    returnType: struct hashmap_entry
    signature: "struct hashmap_entry *hashmap_iter_first(struct hashmap *map,\n\t\t\t\t\t\t
      \      struct hashmap_iter *iter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - map
    - ','
    - iter
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 468
    functionName: hashmap_iter_first_entry
    functionSourceFile: /src/git/hashmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_iter_first_entry(map, iter, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - iter
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 472
    functionName: hashmap_iter_next_entry_offset
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_iter_next_entry_offset(iter, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - map
    - ','
    - iter
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: hashmap_iter_first_entry_offset
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_iter_first_entry_offset(map, iter, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - map
    - ','
    - keyvar
    - ','
    - member
    - ','
    - keydata
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: hashmap_get_entry
    functionSourceFile: /src/git/hashmap.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_get_entry(map, keyvar, member, keydata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - map
    - ','
    - hash
    - ','
    - keydata
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: hashmap_get_entry_from_hash
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_get_entry_from_hash(map, hash, keydata, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - map
    - ','
    - var
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 510
    functionName: hashmap_get_next_entry
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_get_next_entry(map, var, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - map
    - ','
    - var
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 519
    functionName: hashmap_for_each_entry_from
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmap_for_each_entry_from(map, var, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct hashmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 533
    functionName: hashmap_disable_item_counting
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hashmap_disable_item_counting(struct hashmap *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_iter_init
      Src: /src/git/hashmap.h:548,1
    - Dst: hashmap_iter_next
      Src: /src/git/hashmap.h:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct hashmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 554
    functionName: hashmap_enable_item_counting
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached:
    - hashmap_iter_init
    - hashmap_iter_next
    linkageType: ''
    returnType: void
    signature: void hashmap_enable_item_counting(struct hashmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memintern
      Src: /src/git/hashmap.h:574,1
    - Dst: strlen
      Src: /src/git/hashmap.h:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: strintern
    functionSourceFile: /src/git/hashmap.h
    functionUses: 0
    functionsReached:
    - strlen
    - memintern
    linkageType: ''
    returnType: char
    signature: char *strintern(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fo
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: OPT_PARSE_LIST_OBJECTS_FILTER
    functionSourceFile: /src/git/list-objects-filter-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_PARSE_LIST_OBJECTS_FILTER(fo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_objects_filter_release
      Src: /src/git/list-objects-filter-options.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filter_options
    argTypes:
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: list_objects_filter_set_no_filter
    functionSourceFile: /src/git/list-objects-filter-options.h
    functionUses: 2
    functionsReached:
    - list_objects_filter_release
    linkageType: ''
    returnType: void
    signature: "void list_objects_filter_set_no_filter(\n\tstruct list_objects_filter_options
      *filter_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - slabname
    - ','
    - elemtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 6
    functionName: implement_static_commit_slab
    functionSourceFile: /src/git/commit-slab-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: implement_static_commit_slab(slabname, elemtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - slabname
    - ','
    - elemtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 9
    functionName: implement_shared_commit_slab
    functionSourceFile: /src/git/commit-slab-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: implement_shared_commit_slab(slabname, elemtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - slabname
    - ','
    - elemtype
    - ','
    - scope
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 92
    functionName: implement_commit_slab
    functionSourceFile: /src/git/commit-slab-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: implement_commit_slab(slabname, elemtype, scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/name-hash.c:39,1
    - Dst: container_of
      Src: /src/git/name-hash.c:40,1
    - Dst: strncasecmp
      Src: /src/git/name-hash.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: dir_entry_cmp
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - container_of
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: "int dir_entry_cmp(const void *cmp_data UNUSED,\n\t\t\t const struct
      hashmap_entry *eptr,\n\t\t\t const struct hashmap_entry *entry_or_key,\n\t\t\t
      const void *keydata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/name-hash.c:50,1
    - Dst: hashmap_get_entry
      Src: /src/git/name-hash.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - istate
    - name
    - namelen
    - hash
    argTypes:
    - struct index_state*
    - char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: find_dir_entry__hash
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - hashmap_entry_init
    - hashmap_get_entry
    linkageType: ''
    returnType: struct dir_entry
    signature: "struct dir_entry *find_dir_entry__hash(struct index_state *istate,\n\t\tconst
      char *name, unsigned int namelen, unsigned int hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_dir_entry__hash
      Src: /src/git/name-hash.c:58,1
    - Dst: memihash
      Src: /src/git/name-hash.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - istate
    - name
    - namelen
    argTypes:
    - struct index_state*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: find_dir_entry
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - find_dir_entry__hash
    - memihash
    linkageType: ''
    returnType: struct dir_entry
    signature: "struct dir_entry *find_dir_entry(struct index_state *istate,\n\t\tconst
      char *name, unsigned int namelen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/name-hash.c:74,1
    - Dst: find_dir_entry
      Src: /src/git/name-hash.c:81,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/name-hash.c:84,1
    - Dst: hashmap_entry_init
      Src: /src/git/name-hash.c:85,1
    - Dst: memihash
      Src: /src/git/name-hash.c:85,1
    - Dst: hashmap_add
      Src: /src/git/name-hash.c:87,1
    - Dst: hash_dir_entry
      Src: /src/git/name-hash.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - istate
    - ce
    - namelen
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 93
    functionName: hash_dir_entry
    functionSourceFile: /src/git/name-hash.c
    functionUses: 1
    functionsReached:
    - hashmap_add
    - find_dir_entry
    - memihash
    - is_dir_sep
    - hash_dir_entry
    - hashmap_entry_init
    - FLEX_ALLOC_MEM
    linkageType: ''
    returnType: struct dir_entry
    signature: "struct dir_entry *hash_dir_entry(struct index_state *istate,\n\t\tstruct
      cache_entry *ce, int namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_dir_entry
      Src: /src/git/name-hash.c:98,1
    - Dst: ce_namelen
      Src: /src/git/name-hash.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: add_dir_entry
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - ce_namelen
    - hash_dir_entry
    linkageType: ''
    returnType: void
    signature: void add_dir_entry(struct index_state *istate, struct cache_entry *ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_dir_entry
      Src: /src/git/name-hash.c:109,1
    - Dst: ce_namelen
      Src: /src/git/name-hash.c:109,1
    - Dst: hashmap_remove
      Src: /src/git/name-hash.c:112,1
    - Dst: free
      Src: /src/git/name-hash.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 116
    functionName: remove_dir_entry
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - free
    - hashmap_remove
    - ce_namelen
    - hash_dir_entry
    linkageType: ''
    returnType: void
    signature: void remove_dir_entry(struct index_state *istate, struct cache_entry
      *ce)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISSPARSEDIR
      Src: /src/git/name-hash.c:124,1
    - Dst: hashmap_entry_init
      Src: /src/git/name-hash.c:125,1
    - Dst: memihash
      Src: /src/git/name-hash.c:125,1
    - Dst: ce_namelen
      Src: /src/git/name-hash.c:125,1
    - Dst: hashmap_add
      Src: /src/git/name-hash.c:126,1
    - Dst: add_dir_entry
      Src: /src/git/name-hash.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: hash_index_entry
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - hashmap_add
    - ce_namelen
    - add_dir_entry
    - memihash
    - hashmap_entry_init
    - S_ISSPARSEDIR
    linkageType: ''
    returnType: void
    signature: void hash_index_entry(struct index_state *istate, struct cache_entry
      *ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/name-hash.c:140,1
    - Dst: container_of
      Src: /src/git/name-hash.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - remove
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: cache_entry_cmp
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: int
    signature: "int cache_entry_cmp(const void *cmp_data UNUSED,\n\t\t\t   const struct
      hashmap_entry *eptr,\n\t\t\t   const struct hashmap_entry *entry_or_key,\n\t\t\t
      \  const void *remove)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: online_cpus
      Src: /src/git/name-hash.c:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 224
    functionName: lookup_lazy_params
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - online_cpus
    linkageType: ''
    returnType: int
    signature: int lookup_lazy_params(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/name-hash.c:242,1
    - Dst: init_recursive_mutex
      Src: /src/git/name-hash.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: init_dir_mutex
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - init_recursive_mutex
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void init_dir_mutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/git/name-hash.c:253,1
    - Dst: free
      Src: /src/git/name-hash.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: cleanup_dir_mutex
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cleanup_dir_mutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/name-hash.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - j
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: lock_dir_mutex
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void lock_dir_mutex(int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/name-hash.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - j
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: unlock_dir_mutex
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void unlock_dir_mutex(int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_bucket
      Src: /src/git/name-hash.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - hash
    argTypes:
    - struct hashmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: compute_dir_lock_nr
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - hashmap_bucket
    linkageType: ''
    returnType: int
    signature: "int compute_dir_lock_nr(\n\tconst struct hashmap *map,\n\tunsigned
      int hash)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/name-hash.c:288,1
    - Dst: strchr
      Src: /src/git/name-hash.c:288,1
    - Dst: memihash_cont
      Src: /src/git/name-hash.c:291,1
    - Dst: memihash
      Src: /src/git/name-hash.c:295,1
    - Dst: compute_dir_lock_nr
      Src: /src/git/name-hash.c:297,1
    - Dst: lock_dir_mutex
      Src: /src/git/name-hash.c:298,1
    - Dst: find_dir_entry__hash
      Src: /src/git/name-hash.c:300,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/name-hash.c:302,1
    - Dst: hashmap_entry_init
      Src: /src/git/name-hash.c:303,1
    - Dst: hashmap_add
      Src: /src/git/name-hash.c:306,1
    - Dst: unlock_dir_mutex
      Src: /src/git/name-hash.c:309,1
    - Dst: compute_dir_lock_nr
      Src: /src/git/name-hash.c:312,1
    - Dst: lock_dir_mutex
      Src: /src/git/name-hash.c:313,1
    - Dst: unlock_dir_mutex
      Src: /src/git/name-hash.c:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - istate
    - parent
    - prefix
    argTypes:
    - struct index_state*
    - struct dir_entry*
    - struct strbuf*
    assertStmts:
    - condition: ((parent != NULL) ^ (strchr(prefix->buf, '/') == NULL))
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/git/name-hash.c
    constantsTouched: []
    func_position:
      end: 321
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 321
    functionName: hash_dir_entry_with_parent_and_prefix
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - hashmap_add
    - lock_dir_mutex
    - assert
    - memihash_cont
    - memihash
    - unlock_dir_mutex
    - hashmap_entry_init
    - strchr
    - FLEX_ALLOC_MEM
    - compute_dir_lock_nr
    - find_dir_entry__hash
    linkageType: ''
    returnType: struct dir_entry
    signature: "struct dir_entry *hash_dir_entry_with_parent_and_prefix(\n\tstruct
      index_state *istate,\n\tstruct dir_entry *parent,\n\tstruct strbuf *prefix)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hash_dir_entry_with_parent_and_prefix
      Src: /src/git/name-hash.c:351,1
    - Dst: strbuf_addch
      Src: /src/git/name-hash.c:353,1
    - Dst: strncmp
      Src: /src/git/name-hash.c:361,1
    - Dst: strncmp
      Src: /src/git/name-hash.c:363,1
    - Dst: assert
      Src: /src/git/name-hash.c:368,1
    - Dst: strncmp
      Src: /src/git/name-hash.c:371,1
    - Dst: die
      Src: /src/git/name-hash.c:377,1
    - Dst: handle_range_1
      Src: /src/git/name-hash.c:385,1
    - Dst: strbuf_setlen
      Src: /src/git/name-hash.c:387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 7
    argNames:
    - istate
    - k_start
    - k_end
    - parent
    - prefix
    - lazy_entries
    - dir_new_out
    argTypes:
    - struct index_state*
    - int
    - int
    - struct dir_entry*
    - struct strbuf*
    - struct lazy_entry*
    - struct dir_entry**
    assertStmts:
    - condition: (begin >= 0)
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/git/name-hash.c
    constantsTouched: []
    func_position:
      end: 391
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 391
    functionName: handle_range_dir
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - die
    - assert
    - strbuf_setlen
    - strbuf_addch
    - strncmp
    - hash_dir_entry_with_parent_and_prefix
    - handle_range_1
    linkageType: ''
    returnType: int
    signature: "int handle_range_dir(\n\tstruct index_state *istate,\n\tint k_start,\n\tint
      k_end,\n\tstruct dir_entry *parent,\n\tstruct strbuf *prefix,\n\tstruct lazy_entry
      *lazy_entries,\n\tstruct dir_entry **dir_new_out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/name-hash.c:408,1
    - Dst: strchr
      Src: /src/git/name-hash.c:412,1
    - Dst: strbuf_add
      Src: /src/git/name-hash.c:419,1
    - Dst: handle_range_dir
      Src: /src/git/name-hash.c:420,1
    - Dst: strbuf_setlen
      Src: /src/git/name-hash.c:423,1
    - Dst: strbuf_addch
      Src: /src/git/name-hash.c:427,1
    - Dst: handle_range_1
      Src: /src/git/name-hash.c:428,1
    - Dst: strbuf_setlen
      Src: /src/git/name-hash.c:430,1
    - Dst: memihash_cont
      Src: /src/git/name-hash.c:449,1
    - Dst: ce_namelen
      Src: /src/git/name-hash.c:452,1
    - Dst: memihash
      Src: /src/git/name-hash.c:455,1
    - Dst: ce_namelen
      Src: /src/git/name-hash.c:455,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 6
    argNames:
    - istate
    - k_start
    - k_end
    - parent
    - prefix
    - lazy_entries
    argTypes:
    - struct index_state*
    - int
    - int
    - struct dir_entry*
    - struct strbuf*
    - struct lazy_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 393
    functionDepth: 4
    functionLinenumber: 393
    functionLinenumberEnd: 462
    functionName: handle_range_1
    functionSourceFile: /src/git/name-hash.c
    functionUses: 2
    functionsReached:
    - ce_namelen
    - memihash_cont
    - memihash
    - strbuf_setlen
    - strchr
    - strbuf_addch
    - handle_range_1
    - handle_range_dir
    - strncmp
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int handle_range_1(\n\tstruct index_state *istate,\n\tint k_start,\n\tint
      k_end,\n\tstruct dir_entry *parent,\n\tstruct strbuf *prefix,\n\tstruct lazy_entry
      *lazy_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_range_1
      Src: /src/git/name-hash.c:476,1
    - Dst: strbuf_release
      Src: /src/git/name-hash.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 472
    functionDepth: 5
    functionLinenumber: 472
    functionLinenumberEnd: 479
    functionName: lazy_dir_thread_proc
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - handle_range_1
    linkageType: ''
    returnType: void
    signature: void *lazy_dir_thread_proc(void *_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISSPARSEDIR
      Src: /src/git/name-hash.c:495,1
    - Dst: hashmap_entry_init
      Src: /src/git/name-hash.c:496,1
    - Dst: hashmap_add
      Src: /src/git/name-hash.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 502
    functionName: lazy_name_thread_proc
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - hashmap_add
    - hashmap_entry_init
    - S_ISSPARSEDIR
    linkageType: ''
    returnType: void
    signature: void *lazy_name_thread_proc(void *_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - istate
    - lazy_entries
    argTypes:
    - struct index_state*
    - struct lazy_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 514
    functionName: lazy_update_dir_ref_counts
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void lazy_update_dir_ref_counts(\n\tstruct index_state *istate,\n\tstruct
      lazy_entry *lazy_entries)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/git/name-hash.c:531,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/name-hash.c:533,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/name-hash.c:534,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/name-hash.c:535,1
    - Dst: init_dir_mutex
      Src: /src/git/name-hash.c:537,1
    - Dst: pthread_create
      Src: /src/git/name-hash.c:552,1
    - Dst: die
      Src: /src/git/name-hash.c:554,1
    - Dst: _
      Src: /src/git/name-hash.c:554,1
    - Dst: strerror
      Src: /src/git/name-hash.c:554,1
    - Dst: pthread_join
      Src: /src/git/name-hash.c:558,1
    - Dst: die
      Src: /src/git/name-hash.c:559,1
    - Dst: pthread_create
      Src: /src/git/name-hash.c:574,1
    - Dst: die
      Src: /src/git/name-hash.c:576,1
    - Dst: _
      Src: /src/git/name-hash.c:576,1
    - Dst: strerror
      Src: /src/git/name-hash.c:576,1
    - Dst: lazy_update_dir_ref_counts
      Src: /src/git/name-hash.c:578,1
    - Dst: pthread_join
      Src: /src/git/name-hash.c:580,1
    - Dst: die
      Src: /src/git/name-hash.c:582,1
    - Dst: _
      Src: /src/git/name-hash.c:582,1
    - Dst: strerror
      Src: /src/git/name-hash.c:582,1
    - Dst: cleanup_dir_mutex
      Src: /src/git/name-hash.c:584,1
    - Dst: free
      Src: /src/git/name-hash.c:586,1
    - Dst: free
      Src: /src/git/name-hash.c:587,1
    - Dst: free
      Src: /src/git/name-hash.c:588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 589
    functionName: threaded_lazy_init_name_hash
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - die
    - DIV_ROUND_UP
    - pthread_create
    - strerror
    - lazy_update_dir_ref_counts
    - CALLOC_ARRAY
    - free
    - init_dir_mutex
    - pthread_join
    - _
    - cleanup_dir_mutex
    linkageType: ''
    returnType: void
    signature: "void threaded_lazy_init_name_hash(\n\tstruct index_state *istate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace_performance_enter
      Src: /src/git/name-hash.c:596,1
    - Dst: trace2_region_enter
      Src: /src/git/name-hash.c:597,1
    - Dst: hashmap_init
      Src: /src/git/name-hash.c:598,1
    - Dst: hashmap_init
      Src: /src/git/name-hash.c:599,1
    - Dst: lookup_lazy_params
      Src: /src/git/name-hash.c:601,1
    - Dst: hashmap_disable_item_counting
      Src: /src/git/name-hash.c:608,1
    - Dst: threaded_lazy_init_name_hash
      Src: /src/git/name-hash.c:609,1
    - Dst: hashmap_enable_item_counting
      Src: /src/git/name-hash.c:610,1
    - Dst: hash_index_entry
      Src: /src/git/name-hash.c:614,1
    - Dst: trace2_region_leave
      Src: /src/git/name-hash.c:618,1
    - Dst: trace_performance_leave
      Src: /src/git/name-hash.c:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 591
    functionDepth: 6
    functionLinenumber: 591
    functionLinenumberEnd: 620
    functionName: lazy_init_name_hash
    functionSourceFile: /src/git/name-hash.c
    functionUses: 1
    functionsReached:
    - trace_performance_leave
    - lookup_lazy_params
    - threaded_lazy_init_name_hash
    - hashmap_init
    - hashmap_enable_item_counting
    - trace2_region_leave
    - trace2_region_enter
    - hash_index_entry
    - trace_performance_enter
    - hashmap_disable_item_counting
    linkageType: ''
    returnType: void
    signature: void lazy_init_name_hash(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lazy_init_name_hash
      Src: /src/git/name-hash.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - istate
    - try_threaded
    argTypes:
    - struct index_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 631
    functionDepth: 7
    functionLinenumber: 631
    functionLinenumberEnd: 639
    functionName: test_lazy_init_name_hash
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - lazy_init_name_hash
    linkageType: ''
    returnType: int
    signature: int test_lazy_init_name_hash(struct index_state *istate, int try_threaded)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_index_entry
      Src: /src/git/name-hash.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 641
    functionDepth: 6
    functionLinenumber: 641
    functionLinenumberEnd: 645
    functionName: add_name_hash
    functionSourceFile: /src/git/name-hash.c
    functionUses: 1
    functionsReached:
    - hash_index_entry
    linkageType: ''
    returnType: void
    signature: void add_name_hash(struct index_state *istate, struct cache_entry *ce)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_remove
      Src: /src/git/name-hash.c:652,1
    - Dst: remove_dir_entry
      Src: /src/git/name-hash.c:655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 647
    functionDepth: 5
    functionLinenumber: 647
    functionLinenumberEnd: 656
    functionName: remove_name_hash
    functionSourceFile: /src/git/name-hash.c
    functionUses: 3
    functionsReached:
    - remove_dir_entry
    - hashmap_remove
    linkageType: ''
    returnType: void
    signature: void remove_name_hash(struct index_state *istate, struct cache_entry
      *ce)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/git/name-hash.c:668,1
    - Dst: toupper
      Src: /src/git/name-hash.c:669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - name1
    - len1
    - name2
    - len2
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 675
    functionName: slow_same_name
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - toupper
    linkageType: ''
    returnType: int
    signature: int slow_same_name(const char *name1, int len1, const char *name2,
      int len2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ce_namelen
      Src: /src/git/name-hash.c:679,1
    - Dst: memcmp
      Src: /src/git/name-hash.c:685,1
    - Dst: slow_same_name
      Src: /src/git/name-hash.c:691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - ce
    - name
    - namelen
    - icase
    argTypes:
    - struct cache_entry*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 692
    functionName: same_name
    functionSourceFile: /src/git/name-hash.c
    functionUses: 3
    functionsReached:
    - slow_same_name
    - ce_namelen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int same_name(const struct cache_entry *ce, const char *name, int namelen,
      int icase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lazy_init_name_hash
      Src: /src/git/name-hash.c:699,1
    - Dst: expand_to_path
      Src: /src/git/name-hash.c:700,1
    - Dst: find_dir_entry
      Src: /src/git/name-hash.c:701,1
    - Dst: strbuf_reset
      Src: /src/git/name-hash.c:704,1
    - Dst: strbuf_add
      Src: /src/git/name-hash.c:705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - istate
    - name
    - namelen
    - canonical_path
    argTypes:
    - struct index_state*
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 694
    functionDepth: 7
    functionLinenumber: 694
    functionLinenumberEnd: 709
    functionName: index_dir_find
    functionSourceFile: /src/git/name-hash.c
    functionUses: 0
    functionsReached:
    - find_dir_entry
    - strbuf_reset
    - expand_to_path
    - lazy_init_name_hash
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int index_dir_find(struct index_state *istate, const char *name, int
      namelen,\n\t\t   struct strbuf *canonical_path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lazy_init_name_hash
      Src: /src/git/name-hash.c:716,1
    - Dst: expand_to_path
      Src: /src/git/name-hash.c:717,1
    - Dst: strlen
      Src: /src/git/name-hash.c:717,1
    - Dst: find_dir_entry
      Src: /src/git/name-hash.c:725,1
    - Dst: memcpy
      Src: /src/git/name-hash.c:727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - istate
    - name
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 711
    functionDepth: 7
    functionLinenumber: 711
    functionLinenumberEnd: 733
    functionName: adjust_dirname_case
    functionSourceFile: /src/git/name-hash.c
    functionUses: 1
    functionsReached:
    - find_dir_entry
    - memcpy
    - strlen
    - expand_to_path
    - lazy_init_name_hash
    linkageType: ''
    returnType: void
    signature: void adjust_dirname_case(struct index_state *istate, char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memihash
      Src: /src/git/name-hash.c:738,1
    - Dst: lazy_init_name_hash
      Src: /src/git/name-hash.c:740,1
    - Dst: expand_to_path
      Src: /src/git/name-hash.c:741,1
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/name-hash.c:743,1
    - Dst: hashmap_for_each_entry_from
      Src: /src/git/name-hash.c:745,1
    - Dst: same_name
      Src: /src/git/name-hash.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - istate
    - name
    - namelen
    - icase
    argTypes:
    - struct index_state*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 735
    functionDepth: 7
    functionLinenumber: 735
    functionLinenumberEnd: 750
    functionName: index_file_exists
    functionSourceFile: /src/git/name-hash.c
    functionUses: 7
    functionsReached:
    - memihash
    - hashmap_get_entry_from_hash
    - expand_to_path
    - same_name
    - lazy_init_name_hash
    - hashmap_for_each_entry_from
    linkageType: ''
    returnType: struct cache_entry
    signature: struct cache_entry *index_file_exists(struct index_state *istate, const
      char *name, int namelen, int icase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_clear
      Src: /src/git/name-hash.c:758,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/name-hash.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 760
    functionName: free_name_hash
    functionSourceFile: /src/git/name-hash.c
    functionUses: 1
    functionsReached:
    - hashmap_clear
    - hashmap_clear_and_free
    linkageType: ''
    returnType: void
    signature: void free_name_hash(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/git/color.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - word
    - len
    - match
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: match_word
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int match_word(const char *word, int len, const char *match)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/color.c:74,1
    - Dst: hexval
      Src: /src/git/color.c:75,1
    - Dst: hexval
      Src: /src/git/color.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - inp
    - width
    - out
    argTypes:
    - char**
    - int
    - unsigned char*
    assertStmts:
    - condition: (width == 1 || width == 2)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/git/color.c
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: get_hex_color
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - hexval
    - assert
    linkageType: ''
    returnType: int
    signature: int get_hex_color(const char **inp, int width, unsigned char *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: match_word
      Src: /src/git/color.c:97,1
    - Dst: strncasecmp
      Src: /src/git/color.c:118,1
    - Dst: ARRAY_SIZE
      Src: /src/git/color.c:123,1
    - Dst: match_word
      Src: /src/git/color.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - out
    - name
    - len
    argTypes:
    - struct color*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 131
    functionName: parse_ansi_color
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - match_word
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int parse_ansi_color(struct color *out, const char *name, int len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: match_word
      Src: /src/git/color.c:139,1
    - Dst: get_hex_color
      Src: /src/git/color.c:149,1
    - Dst: get_hex_color
      Src: /src/git/color.c:150,1
    - Dst: get_hex_color
      Src: /src/git/color.c:151,1
    - Dst: parse_ansi_color
      Src: /src/git/color.c:158,1
    - Dst: strtol
      Src: /src/git/color.c:163,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - out
    - name
    - len
    argTypes:
    - struct color*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 192
    functionName: parse_color
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - strtol
    - parse_ansi_color
    - get_hex_color
    - match_word
    linkageType: ''
    returnType: int
    signature: int parse_color(struct color *out, const char *name, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ATTR
      Src: /src/git/color.c:201,1
    - Dst: ATTR
      Src: /src/git/color.c:202,1
    - Dst: ATTR
      Src: /src/git/color.c:203,1
    - Dst: ATTR
      Src: /src/git/color.c:204,1
    - Dst: ATTR
      Src: /src/git/color.c:205,1
    - Dst: ATTR
      Src: /src/git/color.c:206,1
    - Dst: ATTR
      Src: /src/git/color.c:207,1
    - Dst: ATTR
      Src: /src/git/color.c:208,1
    - Dst: skip_prefix_mem
      Src: /src/git/color.c:214,1
    - Dst: skip_prefix_mem
      Src: /src/git/color.c:215,1
    - Dst: ARRAY_SIZE
      Src: /src/git/color.c:219,1
    - Dst: memcmp
      Src: /src/git/color.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 224
    functionName: parse_attr
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - ATTR
    - skip_prefix_mem
    - memcmp
    linkageType: ''
    returnType: int
    signature: int parse_attr(const char *name, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/color.c:242,1
    - Dst: xsnprintf
      Src: /src/git/color.c:245,1
    - Dst: xsnprintf
      Src: /src/git/color.c:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - out
    - len
    - c
    - background
    argTypes:
    - char*
    - int
    - struct color*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 255
    functionName: color_output
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    linkageType: ''
    returnType: char
    signature: char *color_output(char *out, int len, const struct color *c, int background)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct color*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: color_empty
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int color_empty(const struct color *c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/color.c:273,1
    - Dst: isspace
      Src: /src/git/color.c:289,1
    - Dst: isspace
      Src: /src/git/color.c:295,1
    - Dst: match_word
      Src: /src/git/color.c:300,1
    - Dst: parse_color
      Src: /src/git/color.c:305,1
    - Dst: parse_attr
      Src: /src/git/color.c:316,1
    - Dst: color_empty
      Src: /src/git/color.c:330,1
    - Dst: color_empty
      Src: /src/git/color.c:330,1
    - Dst: OUT
      Src: /src/git/color.c:334,1
    - Dst: OUT
      Src: /src/git/color.c:335,1
    - Dst: OUT
      Src: /src/git/color.c:346,1
    - Dst: xsnprintf
      Src: /src/git/color.c:347,1
    - Dst: color_empty
      Src: /src/git/color.c:349,1
    - Dst: OUT
      Src: /src/git/color.c:351,1
    - Dst: color_output
      Src: /src/git/color.c:352,1
    - Dst: color_empty
      Src: /src/git/color.c:354,1
    - Dst: OUT
      Src: /src/git/color.c:356,1
    - Dst: color_output
      Src: /src/git/color.c:357,1
    - Dst: OUT
      Src: /src/git/color.c:359,1
    - Dst: OUT
      Src: /src/git/color.c:361,1
    - Dst: error
      Src: /src/git/color.c:364,1
    - Dst: _
      Src: /src/git/color.c:364,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 71
    argCount: 4
    argNames:
    - value
    - value_len
    - dst
    - quiet
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 366
    functionName: color_parse_mem_1
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - isspace
    - error
    - parse_attr
    - color_empty
    - parse_color
    - OUT
    - color_output
    - xsnprintf
    - _
    - match_word
    linkageType: ''
    returnType: int
    signature: "int color_parse_mem_1(const char *value, int value_len,\n\t\t\t     char
      *dst, int quiet)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: OUT
    functionSourceFile: /src/git/color.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: color_parse_mem_1
      Src: /src/git/color.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - value
    - value_len
    - dst
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: color_parse_mem
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - color_parse_mem_1
    linkageType: ''
    returnType: int
    signature: int color_parse_mem(const char *value, int value_len, char *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: color_parse_mem
      Src: /src/git/color.c:375,1
    - Dst: strlen
      Src: /src/git/color.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - dst
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 4
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: color_parse
    functionSourceFile: /src/git/color.c
    functionUses: 3
    functionsReached:
    - strlen
    - color_parse_mem
    linkageType: ''
    returnType: int
    signature: int color_parse(const char *value, char *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: color_parse_mem_1
      Src: /src/git/color.c:380,1
    - Dst: strlen
      Src: /src/git/color.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - dst
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: color_parse_quietly
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - strlen
    - color_parse_mem_1
    linkageType: ''
    returnType: int
    signature: int color_parse_quietly(const char *value, char *dst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/color.c:386,1
    - Dst: strcasecmp
      Src: /src/git/color.c:388,1
    - Dst: strcasecmp
      Src: /src/git/color.c:390,1
    - Dst: git_config_bool
      Src: /src/git/color.c:398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 403
    functionName: git_config_colorbool
    functionSourceFile: /src/git/color.c
    functionUses: 3
    functionsReached:
    - strcasecmp
    - git_config_bool
    linkageType: ''
    returnType: enum git_colorbool
    signature: enum git_colorbool git_config_colorbool(const char *var, const char
      *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/color.c:410,1
    - Dst: pager_in_use
      Src: /src/git/color.c:411,1
    - Dst: is_terminal_dumb
      Src: /src/git/color.c:412,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: check_auto_color
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - isatty
    - pager_in_use
    - is_terminal_dumb
    linkageType: ''
    returnType: bool
    signature: bool check_auto_color(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/color.c:429,1
    - Dst: BUG
      Src: /src/git/color.c:430,1
    - Dst: check_auto_color
      Src: /src/git/color.c:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - fd
    - var
    argTypes:
    - int
    - enum git_colorbool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 441
    functionName: want_color_fd
    functionSourceFile: /src/git/color.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - BUG
    - check_auto_color
    linkageType: ''
    returnType: bool
    signature: bool want_color_fd(int fd, enum git_colorbool var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/color.c:445,1
    - Dst: git_config_colorbool
      Src: /src/git/color.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - var
    - value
    - UNUSED
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 451
    functionName: git_color_config
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - git_config_colorbool
    - strcmp
    linkageType: ''
    returnType: int
    signature: int git_color_config(const char *var, const char *value, void *cb UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/color.c:456,1
    - Dst: fprintf
      Src: /src/git/color.c:457,1
    - Dst: fprintf
      Src: /src/git/color.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - fp
    - color
    - sb
    argTypes:
    - FILE*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 460
    functionName: color_print_strbuf
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void color_print_strbuf(FILE *fp, const char *color, const struct strbuf
      *sb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/color.c:468,1
    - Dst: vfprintf
      Src: /src/git/color.c:469,1
    - Dst: fprintf
      Src: /src/git/color.c:471,1
    - Dst: fprintf
      Src: /src/git/color.c:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - fp
    - color
    - fmt
    - args
    - trail
    argTypes:
    - FILE*
    - char*
    - char*
    - va_list
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 475
    functionName: color_vfprintf
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int color_vfprintf(FILE *fp, const char *color, const char *fmt,\n\t\tva_list
      args, const char *trail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/color.c:481,1
    - Dst: color_vfprintf
      Src: /src/git/color.c:482,1
    - Dst: va_end
      Src: /src/git/color.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fp
    - color
    - fmt
    argTypes:
    - FILE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 485
    functionName: color_fprintf
    functionSourceFile: /src/git/color.c
    functionUses: 2
    functionsReached:
    - va_end
    - va_start
    - color_vfprintf
    linkageType: ''
    returnType: int
    signature: int color_fprintf(FILE *fp, const char *color, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/color.c:491,1
    - Dst: color_vfprintf
      Src: /src/git/color.c:492,1
    - Dst: va_end
      Src: /src/git/color.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fp
    - color
    - fmt
    argTypes:
    - FILE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: color_fprintf_ln
    functionSourceFile: /src/git/color.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - color_vfprintf
    linkageType: ''
    returnType: int
    signature: int color_fprintf_ln(FILE *fp, const char *color, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/color.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: color_is_nil
    functionSourceFile: /src/git/color.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int color_is_nil(const char *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rmdir
      Src: /src/git/tempfile.c:60,1
    - Dst: rmdir_or_warn
      Src: /src/git/tempfile.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tempfile
    - in_signal_handler
    argTypes:
    - struct tempfile*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: remove_template_directory
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - rmdir
    - rmdir_or_warn
    linkageType: ''
    returnType: int
    signature: "int remove_template_directory(struct tempfile *tempfile,\n\t\t\t\t
      \     int in_signal_handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/git/tempfile.c:70,1
    - Dst: list_for_each
      Src: /src/git/tempfile.c:73,1
    - Dst: list_entry
      Src: /src/git/tempfile.c:74,1
    - Dst: is_tempfile_active
      Src: /src/git/tempfile.c:76,1
    - Dst: close
      Src: /src/git/tempfile.c:80,1
    - Dst: unlink
      Src: /src/git/tempfile.c:83,1
    - Dst: unlink_or_warn
      Src: /src/git/tempfile.c:85,1
    - Dst: remove_template_directory
      Src: /src/git/tempfile.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - in_signal_handler
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: remove_tempfiles
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - remove_template_directory
    - unlink_or_warn
    - list_for_each
    - list_entry
    - close
    - getpid
    - is_tempfile_active
    - unlink
    linkageType: ''
    returnType: void
    signature: void remove_tempfiles(int in_signal_handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_tempfiles
      Src: /src/git/tempfile.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: remove_tempfiles_on_exit
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - remove_tempfiles
    linkageType: ''
    returnType: void
    signature: void remove_tempfiles_on_exit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_tempfiles
      Src: /src/git/tempfile.c:97,1
    - Dst: sigchain_pop
      Src: /src/git/tempfile.c:98,1
    - Dst: raise
      Src: /src/git/tempfile.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: remove_tempfiles_on_signal
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - sigchain_pop
    - raise
    - remove_tempfiles
    linkageType: ''
    returnType: void
    signature: void remove_tempfiles_on_signal(int signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/tempfile.c:104,1
    - Dst: INIT_LIST_HEAD
      Src: /src/git/tempfile.c:108,1
    - Dst: strbuf_init
      Src: /src/git/tempfile.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: new_tempfile
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - xmalloc
    - strbuf_init
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *new_tempfile(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigchain_push_common
      Src: /src/git/tempfile.c:119,1
    - Dst: atexit
      Src: /src/git/tempfile.c:120,1
    - Dst: volatile_list_add
      Src: /src/git/tempfile.c:124,1
    - Dst: getpid
      Src: /src/git/tempfile.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tempfile
    argTypes:
    - struct tempfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: activate_tempfile
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - getpid
    - sigchain_push_common
    - atexit
    - volatile_list_add
    linkageType: ''
    returnType: void
    signature: void activate_tempfile(struct tempfile *tempfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: volatile_list_del
      Src: /src/git/tempfile.c:130,1
    - Dst: strbuf_release
      Src: /src/git/tempfile.c:131,1
    - Dst: free
      Src: /src/git/tempfile.c:132,1
    - Dst: free
      Src: /src/git/tempfile.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tempfile
    argTypes:
    - struct tempfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: deactivate_tempfile
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - volatile_list_del
    - free
    linkageType: ''
    returnType: void
    signature: void deactivate_tempfile(struct tempfile *tempfile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: new_tempfile
      Src: /src/git/tempfile.c:139,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/tempfile.c:141,1
    - Dst: open
      Src: /src/git/tempfile.c:142,1
    - Dst: open
      Src: /src/git/tempfile.c:146,1
    - Dst: deactivate_tempfile
      Src: /src/git/tempfile.c:149,1
    - Dst: activate_tempfile
      Src: /src/git/tempfile.c:152,1
    - Dst: adjust_shared_perm
      Src: /src/git/tempfile.c:153,1
    - Dst: error
      Src: /src/git/tempfile.c:155,1
    - Dst: delete_tempfile
      Src: /src/git/tempfile.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 162
    functionName: create_tempfile_mode
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - error
    - delete_tempfile
    - adjust_shared_perm
    - open
    - new_tempfile
    - deactivate_tempfile
    - activate_tempfile
    - strbuf_add_absolute_path
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *create_tempfile_mode(const char *path, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_tempfile
      Src: /src/git/tempfile.c:166,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/tempfile.c:167,1
    - Dst: activate_tempfile
      Src: /src/git/tempfile.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: register_tempfile
    functionSourceFile: /src/git/tempfile.c
    functionUses: 1
    functionsReached:
    - strbuf_add_absolute_path
    - new_tempfile
    - activate_tempfile
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *register_tempfile(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_tempfile
      Src: /src/git/tempfile.c:174,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/tempfile.c:176,1
    - Dst: git_mkstemps_mode
      Src: /src/git/tempfile.c:177,1
    - Dst: deactivate_tempfile
      Src: /src/git/tempfile.c:179,1
    - Dst: activate_tempfile
      Src: /src/git/tempfile.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - filename_template
    - suffixlen
    - mode
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 184
    functionName: mks_tempfile_sm
    functionSourceFile: /src/git/tempfile.c
    functionUses: 1
    functionsReached:
    - new_tempfile
    - git_mkstemps_mode
    - deactivate_tempfile
    - activate_tempfile
    - strbuf_add_absolute_path
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *mks_tempfile_sm(const char *filename_template, int
      suffixlen, int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_tempfile
      Src: /src/git/tempfile.c:188,1
    - Dst: getenv
      Src: /src/git/tempfile.c:191,1
    - Dst: strbuf_addf
      Src: /src/git/tempfile.c:195,1
    - Dst: git_mkstemps_mode
      Src: /src/git/tempfile.c:196,1
    - Dst: deactivate_tempfile
      Src: /src/git/tempfile.c:198,1
    - Dst: activate_tempfile
      Src: /src/git/tempfile.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - filename_template
    - suffixlen
    - mode
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 203
    functionName: mks_tempfile_tsm
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - new_tempfile
    - strbuf_addf
    - git_mkstemps_mode
    - deactivate_tempfile
    - activate_tempfile
    - getenv
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *mks_tempfile_tsm(const char *filename_template, int
      suffixlen, int mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ends_with
      Src: /src/git/tempfile.c:214,1
    - Dst: getenv
      Src: /src/git/tempfile.c:219,1
    - Dst: strbuf_addf
      Src: /src/git/tempfile.c:223,1
    - Dst: mkdtemp
      Src: /src/git/tempfile.c:225,1
    - Dst: strbuf_release
      Src: /src/git/tempfile.c:227,1
    - Dst: strbuf_addf
      Src: /src/git/tempfile.c:232,1
    - Dst: open
      Src: /src/git/tempfile.c:233,1
    - Dst: strbuf_setlen
      Src: /src/git/tempfile.c:236,1
    - Dst: rmdir
      Src: /src/git/tempfile.c:237,1
    - Dst: strbuf_release
      Src: /src/git/tempfile.c:238,1
    - Dst: new_tempfile
      Src: /src/git/tempfile.c:243,1
    - Dst: strbuf_swap
      Src: /src/git/tempfile.c:244,1
    - Dst: xmemdupz
      Src: /src/git/tempfile.c:245,1
    - Dst: activate_tempfile
      Src: /src/git/tempfile.c:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - directory_template
    - filename
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 249
    functionName: mks_tempfile_dt
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strbuf_release
    - open
    - mkdtemp
    - new_tempfile
    - strbuf_addf
    - strbuf_setlen
    - activate_tempfile
    - ends_with
    - rmdir
    - getenv
    - strbuf_swap
    linkageType: ''
    returnType: struct tempfile
    signature: "struct tempfile *mks_tempfile_dt(const char *directory_template,\n\t\t\t\t
      const char *filename)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_absolute_path
      Src: /src/git/tempfile.c:256,1
    - Dst: mks_tempfile_m
      Src: /src/git/tempfile.c:257,1
    - Dst: die_errno
      Src: /src/git/tempfile.c:259,1
    - Dst: strbuf_release
      Src: /src/git/tempfile.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - filename_template
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: xmks_tempfile_m
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - strbuf_add_absolute_path
    - strbuf_release
    - die_errno
    - mks_tempfile_m
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *xmks_tempfile_m(const char *filename_template, int
      mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/tempfile.c:268,1
    - Dst: BUG
      Src: /src/git/tempfile.c:269,1
    - Dst: BUG
      Src: /src/git/tempfile.c:271,1
    - Dst: fdopen
      Src: /src/git/tempfile.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tempfile
    - mode
    argTypes:
    - struct tempfile*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: fdopen_tempfile
    functionSourceFile: /src/git/tempfile.c
    functionUses: 2
    functionsReached:
    - is_tempfile_active
    - BUG
    - fdopen
    linkageType: ''
    returnType: FILE
    signature: FILE *fdopen_tempfile(struct tempfile *tempfile, const char *mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/tempfile.c:279,1
    - Dst: BUG
      Src: /src/git/tempfile.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tempfile
    argTypes:
    - struct tempfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: get_tempfile_path
    functionSourceFile: /src/git/tempfile.c
    functionUses: 5
    functionsReached:
    - is_tempfile_active
    - BUG
    linkageType: ''
    returnType: char
    signature: char *get_tempfile_path(struct tempfile *tempfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/tempfile.c:286,1
    - Dst: BUG
      Src: /src/git/tempfile.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tempfile
    argTypes:
    - struct tempfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: get_tempfile_fd
    functionSourceFile: /src/git/tempfile.c
    functionUses: 2
    functionsReached:
    - is_tempfile_active
    - BUG
    linkageType: ''
    returnType: int
    signature: int get_tempfile_fd(struct tempfile *tempfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/tempfile.c:293,1
    - Dst: BUG
      Src: /src/git/tempfile.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tempfile
    argTypes:
    - struct tempfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: get_tempfile_fp
    functionSourceFile: /src/git/tempfile.c
    functionUses: 1
    functionsReached:
    - is_tempfile_active
    - BUG
    linkageType: ''
    returnType: FILE
    signature: FILE *get_tempfile_fp(struct tempfile *tempfile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/tempfile.c:304,1
    - Dst: ferror
      Src: /src/git/tempfile.c:312,1
    - Dst: fclose
      Src: /src/git/tempfile.c:314,1
    - Dst: fclose
      Src: /src/git/tempfile.c:317,1
    - Dst: close
      Src: /src/git/tempfile.c:320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - tempfile
    argTypes:
    - struct tempfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 324
    functionName: close_tempfile_gently
    functionSourceFile: /src/git/tempfile.c
    functionUses: 6
    functionsReached:
    - fclose
    - ferror
    - is_tempfile_active
    - close
    linkageType: ''
    returnType: int
    signature: int close_tempfile_gently(struct tempfile *tempfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/tempfile.c:328,1
    - Dst: BUG
      Src: /src/git/tempfile.c:329,1
    - Dst: BUG
      Src: /src/git/tempfile.c:331,1
    - Dst: open
      Src: /src/git/tempfile.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tempfile
    argTypes:
    - struct tempfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: reopen_tempfile
    functionSourceFile: /src/git/tempfile.c
    functionUses: 1
    functionsReached:
    - open
    - is_tempfile_active
    - BUG
    linkageType: ''
    returnType: int
    signature: int reopen_tempfile(struct tempfile *tempfile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/tempfile.c:340,1
    - Dst: BUG
      Src: /src/git/tempfile.c:341,1
    - Dst: close_tempfile_gently
      Src: /src/git/tempfile.c:343,1
    - Dst: delete_tempfile
      Src: /src/git/tempfile.c:344,1
    - Dst: rename
      Src: /src/git/tempfile.c:348,1
    - Dst: delete_tempfile
      Src: /src/git/tempfile.c:350,1
    - Dst: deactivate_tempfile
      Src: /src/git/tempfile.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - tempfile_p
    - path
    argTypes:
    - struct tempfile**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 358
    functionName: rename_tempfile
    functionSourceFile: /src/git/tempfile.c
    functionUses: 2
    functionsReached:
    - delete_tempfile
    - rename
    - deactivate_tempfile
    - close_tempfile_gently
    - is_tempfile_active
    - BUG
    linkageType: ''
    returnType: int
    signature: int rename_tempfile(struct tempfile **tempfile_p, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/tempfile.c:365,1
    - Dst: close_tempfile_gently
      Src: /src/git/tempfile.c:368,1
    - Dst: unlink_or_warn
      Src: /src/git/tempfile.c:369,1
    - Dst: remove_template_directory
      Src: /src/git/tempfile.c:370,1
    - Dst: deactivate_tempfile
      Src: /src/git/tempfile.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tempfile_p
    argTypes:
    - struct tempfile**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 375
    functionName: delete_tempfile
    functionSourceFile: /src/git/tempfile.c
    functionUses: 8
    functionsReached:
    - is_tempfile_active
    - unlink_or_warn
    - deactivate_tempfile
    - close_tempfile_gently
    - remove_template_directory
    linkageType: ''
    returnType: int
    signature: int delete_tempfile(struct tempfile **tempfile_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each
      Src: /src/git/tempfile.c:381,1
    - Dst: list_entry
      Src: /src/git/tempfile.c:382,1
    - Dst: is_tempfile_active
      Src: /src/git/tempfile.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - pid_t
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 387
    functionName: reassign_tempfile_ownership
    functionSourceFile: /src/git/tempfile.c
    functionUses: 0
    functionsReached:
    - list_for_each
    - is_tempfile_active
    - list_entry
    linkageType: ''
    returnType: void
    signature: void reassign_tempfile_ownership(pid_t from, pid_t to)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/diff-lib.c:47,1
    - Dst: fake_lstat
      Src: /src/git/diff-lib.c:49,1
    - Dst: is_missing_file_error
      Src: /src/git/diff-lib.c:51,1
    - Dst: has_symlink_leading_path
      Src: /src/git/diff-lib.c:56,1
    - Dst: ce_namelen
      Src: /src/git/diff-lib.c:56,1
    - Dst: S_ISDIR
      Src: /src/git/diff-lib.c:58,1
    - Dst: S_ISGITLINK
      Src: /src/git/diff-lib.c:72,1
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/diff-lib.c:73,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ce
    - st
    argTypes:
    - struct cache_entry*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 78
    functionName: check_removed
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - ce_namelen
    - is_missing_file_error
    - S_ISGITLINK
    - repo_resolve_gitlink_ref
    - lstat
    - has_symlink_leading_path
    - fake_lstat
    linkageType: ''
    returnType: int
    signature: int check_removed(const struct cache_entry *ce, struct stat *st)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ie_match_stat
      Src: /src/git/diff-lib.c:93,1
    - Dst: S_ISGITLINK
      Src: /src/git/diff-lib.c:94,1
    - Dst: set_diffopt_flags_from_submodule_config
      Src: /src/git/diff-lib.c:97,1
    - Dst: is_submodule_modified
      Src: /src/git/diff-lib.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 5
    argNames:
    - diffopt
    - ce
    - st
    - ce_option
    - dirty_submodule
    argTypes:
    - struct diff_options*
    - struct cache_entry*
    - struct stat*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 88
    functionDepth: 9
    functionLinenumber: 88
    functionLinenumberEnd: 107
    functionName: match_stat_with_submodule
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - is_submodule_modified
    - S_ISGITLINK
    - set_diffopt_flags_from_submodule_config
    - ie_match_stat
    linkageType: ''
    returnType: int
    signature: "int match_stat_with_submodule(struct diff_options *diffopt,\n\t\t\t\t
      \    const struct cache_entry *ce,\n\t\t\t\t     struct stat *st, unsigned ce_option,\n\t\t\t\t
      \    unsigned *dirty_submodule)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/diff-lib.c:115,1
    - Dst: die
      Src: /src/git/diff-lib.c:119,1
    - Dst: _
      Src: /src/git/diff-lib.c:119,1
    - Dst: diff_set_mnemonic_prefix
      Src: /src/git/diff-lib.c:121,1
    - Dst: refresh_fsmonitor
      Src: /src/git/diff-lib.c:123,1
    - Dst: diff_can_quit_early
      Src: /src/git/diff-lib.c:135,1
    - Dst: ce_path_match
      Src: /src/git/diff-lib.c:147,1
    - Dst: strncmp
      Src: /src/git/diff-lib.c:151,1
    - Dst: ce_stage
      Src: /src/git/diff-lib.c:154,1
    - Dst: check_removed
      Src: /src/git/diff-lib.c:161,1
    - Dst: ce_mode_from_stat
      Src: /src/git/diff-lib.c:163,1
    - Dst: perror
      Src: /src/git/diff-lib.c:166,1
    - Dst: combine_diff_path_new
      Src: /src/git/diff-lib.c:177,1
    - Dst: ce_namelen
      Src: /src/git/diff-lib.c:177,1
    - Dst: null_oid
      Src: /src/git/diff-lib.c:178,1
    - Dst: strcmp
      Src: /src/git/diff-lib.c:184,1
    - Dst: ce_stage
      Src: /src/git/diff-lib.c:190,1
    - Dst: oidcpy
      Src: /src/git/diff-lib.c:194,1
    - Dst: ce_mode_from_stat
      Src: /src/git/diff-lib.c:196,1
    - Dst: show_combined_diff
      Src: /src/git/diff-lib.c:212,1
    - Dst: free
      Src: /src/git/diff-lib.c:213,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff-lib.c:216,1
    - Dst: diff_unmerge
      Src: /src/git/diff-lib.c:222,1
    - Dst: ce_stage
      Src: /src/git/diff-lib.c:225,1
    - Dst: ce_uptodate
      Src: /src/git/diff-lib.c:229,1
    - Dst: ce_skip_worktree
      Src: /src/git/diff-lib.c:229,1
    - Dst: diff_same
      Src: /src/git/diff-lib.c:231,1
    - Dst: check_removed
      Src: /src/git/diff-lib.c:252,1
    - Dst: perror
      Src: /src/git/diff-lib.c:255,1
    - Dst: diff_addremove
      Src: /src/git/diff-lib.c:258,1
    - Dst: is_null_oid
      Src: /src/git/diff-lib.c:260,1
    - Dst: ce_intent_to_add
      Src: /src/git/diff-lib.c:264,1
    - Dst: ce_mode_from_stat
      Src: /src/git/diff-lib.c:265,1
    - Dst: diff_addremove
      Src: /src/git/diff-lib.c:266,1
    - Dst: null_oid
      Src: /src/git/diff-lib.c:267,1
    - Dst: match_stat_with_submodule
      Src: /src/git/diff-lib.c:271,1
    - Dst: ce_mode_from_stat
      Src: /src/git/diff-lib.c:273,1
    - Dst: ce_mark_uptodate
      Src: /src/git/diff-lib.c:277,1
    - Dst: mark_fsmonitor_valid
      Src: /src/git/diff-lib.c:278,1
    - Dst: diff_same
      Src: /src/git/diff-lib.c:280,1
    - Dst: null_oid
      Src: /src/git/diff-lib.c:286,1
    - Dst: diff_change
      Src: /src/git/diff-lib.c:287,1
    - Dst: is_null_oid
      Src: /src/git/diff-lib.c:289,1
    - Dst: is_null_oid
      Src: /src/git/diff-lib.c:290,1
    - Dst: diffcore_std
      Src: /src/git/diff-lib.c:294,1
    - Dst: diff_flush
      Src: /src/git/diff-lib.c:295,1
    - Dst: trace_performance_since
      Src: /src/git/diff-lib.c:296,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 94
    argCount: 2
    argNames:
    - revs
    - option
    argTypes:
    - struct rev_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 109
    functionDepth: 10
    functionLinenumber: 109
    functionLinenumberEnd: 297
    functionName: run_diff_files
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 1
    functionsReached:
    - check_removed
    - oidcpy
    - is_null_oid
    - diff_set_mnemonic_prefix
    - ce_skip_worktree
    - diff_addremove
    - free
    - strcmp
    - trace_performance_since
    - die
    - ce_intent_to_add
    - match_stat_with_submodule
    - mark_fsmonitor_valid
    - ce_path_match
    - diff_same
    - strncmp
    - getnanotime
    - refresh_fsmonitor
    - ce_mark_uptodate
    - diff_can_quit_early
    - ce_uptodate
    - diff_flush
    - show_combined_diff
    - _
    - ce_mode_from_stat
    - FREE_AND_NULL
    - ce_stage
    - diff_change
    - perror
    - ce_namelen
    - combine_diff_path_new
    - diff_unmerge
    - diffcore_std
    - null_oid
    linkageType: ''
    returnType: void
    signature: void run_diff_files(struct rev_info *revs, unsigned int option)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_addremove
      Src: /src/git/diff-lib.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - revs
    - prefix
    - ce
    - oid
    - oid_valid
    - mode
    - dirty_submodule
    argTypes:
    - struct rev_info*
    - char*
    - struct cache_entry*
    - struct object_id*
    - int
    - unsigned int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 313
    functionName: diff_index_show_file
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - diff_addremove
    linkageType: ''
    returnType: void
    signature: "void diff_index_show_file(struct rev_info *revs,\n\t\t\t\t const char
      *prefix,\n\t\t\t\t const struct cache_entry *ce,\n\t\t\t\t const struct object_id
      *oid, int oid_valid,\n\t\t\t\t unsigned int mode,\n\t\t\t\t unsigned dirty_submodule)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ce_uptodate
      Src: /src/git/diff-lib.c:324,1
    - Dst: check_removed
      Src: /src/git/diff-lib.c:327,1
    - Dst: match_stat_with_submodule
      Src: /src/git/diff-lib.c:338,1
    - Dst: ce_mode_from_stat
      Src: /src/git/diff-lib.c:341,1
    - Dst: null_oid
      Src: /src/git/diff-lib.c:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - ce
    - oidp
    - modep
    - cached
    - match_missing
    - dirty_submodule
    - diffopt
    argTypes:
    - struct cache_entry*
    - struct object_id**
    - unsigned int*
    - int
    - int
    - unsigned*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 315
    functionDepth: 10
    functionLinenumber: 315
    functionLinenumberEnd: 349
    functionName: get_stat_data
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - check_removed
    - ce_uptodate
    - match_stat_with_submodule
    - ce_mode_from_stat
    - null_oid
    linkageType: ''
    returnType: int
    signature: "int get_stat_data(const struct cache_entry *ce,\n\t\t\t const struct
      object_id **oidp,\n\t\t\t unsigned int *modep,\n\t\t\t int cached, int match_missing,\n\t\t\t
      unsigned *dirty_submodule, struct diff_options *diffopt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISSPARSEDIR
      Src: /src/git/diff-lib.c:359,1
    - Dst: diff_tree_oid
      Src: /src/git/diff-lib.c:360,1
    - Dst: get_stat_data
      Src: /src/git/diff-lib.c:368,1
    - Dst: diff_index_show_file
      Src: /src/git/diff-lib.c:372,1
    - Dst: is_null_oid
      Src: /src/git/diff-lib.c:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - revs
    - new_file
    - cached
    - match_missing
    argTypes:
    - struct rev_info*
    - struct cache_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 351
    functionDepth: 11
    functionLinenumber: 351
    functionLinenumberEnd: 373
    functionName: show_new_file
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - diff_tree_oid
    - S_ISSPARSEDIR
    - get_stat_data
    - is_null_oid
    - diff_index_show_file
    linkageType: ''
    returnType: void
    signature: "void show_new_file(struct rev_info *revs,\n\t\t\t  const struct cache_entry
      *new_file,\n\t\t\t  int cached, int match_missing)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/diff-lib.c:385,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/diff-lib.c:385,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/diff-lib.c:386,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/diff-lib.c:394,1
    - Dst: diff_tree_oid
      Src: /src/git/diff-lib.c:395,1
    - Dst: get_stat_data
      Src: /src/git/diff-lib.c:399,1
    - Dst: diff_index_show_file
      Src: /src/git/diff-lib.c:402,1
    - Dst: oideq
      Src: /src/git/diff-lib.c:409,1
    - Dst: oideq
      Src: /src/git/diff-lib.c:409,1
    - Dst: combine_diff_path_new
      Src: /src/git/diff-lib.c:412,1
    - Dst: ce_namelen
      Src: /src/git/diff-lib.c:413,1
    - Dst: null_oid
      Src: /src/git/diff-lib.c:414,1
    - Dst: oidcpy
      Src: /src/git/diff-lib.c:417,1
    - Dst: oidcpy
      Src: /src/git/diff-lib.c:420,1
    - Dst: show_combined_diff
      Src: /src/git/diff-lib.c:421,1
    - Dst: free
      Src: /src/git/diff-lib.c:422,1
    - Dst: oideq
      Src: /src/git/diff-lib.c:427,1
    - Dst: diff_change
      Src: /src/git/diff-lib.c:428,1
    - Dst: is_null_oid
      Src: /src/git/diff-lib.c:429,1
    - Dst: diff_same
      Src: /src/git/diff-lib.c:432,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 6
    argNames:
    - revs
    - old_entry
    - new_entry
    - report_missing
    - cached
    - match_missing
    argTypes:
    - struct rev_info*
    - struct cache_entry*
    - struct cache_entry*
    - int
    - int
    - int
    assertStmts:
    - condition: "(S_ISSPARSEDIR(old_entry->ce_mode) ==\n\t       S_ISSPARSEDIR(new_entry->ce_mode))"
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/git/diff-lib.c
    constantsTouched: []
    func_position:
      end: 434
      start: 375
    functionDepth: 11
    functionLinenumber: 375
    functionLinenumberEnd: 434
    functionName: show_modified
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - assert
    - ce_namelen
    - oidcpy
    - diff_tree_oid
    - S_ISSPARSEDIR
    - get_stat_data
    - combine_diff_path_new
    - is_null_oid
    - diff_same
    - diff_index_show_file
    - show_combined_diff
    - free
    - diff_change
    - null_oid
    - oideq
    linkageType: ''
    returnType: int
    signature: "int show_modified(struct rev_info *revs,\n\t\t\t const struct cache_entry
      *old_entry,\n\t\t\t const struct cache_entry *new_entry,\n\t\t\t int report_missing,\n\t\t\t
      int cached, int match_missing)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ce_intent_to_add
      Src: /src/git/diff-lib.c:455,1
    - Dst: ce_skip_worktree
      Src: /src/git/diff-lib.c:463,1
    - Dst: ce_stage
      Src: /src/git/diff-lib.c:467,1
    - Dst: diff_unmerge
      Src: /src/git/diff-lib.c:469,1
    - Dst: fill_filespec
      Src: /src/git/diff-lib.c:471,1
    - Dst: show_new_file
      Src: /src/git/diff-lib.c:480,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/diff-lib.c:488,1
    - Dst: diff_tree_oid
      Src: /src/git/diff-lib.c:489,1
    - Dst: diff_index_show_file
      Src: /src/git/diff-lib.c:493,1
    - Dst: show_modified
      Src: /src/git/diff-lib.c:499,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 3
    argNames:
    - o
    - idx
    - tree
    argTypes:
    - struct unpack_trees_options*
    - struct cache_entry*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 442
    functionDepth: 12
    functionLinenumber: 442
    functionLinenumberEnd: 500
    functionName: do_oneway_diff
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - ce_intent_to_add
    - show_new_file
    - diff_tree_oid
    - S_ISSPARSEDIR
    - show_modified
    - diff_unmerge
    - ce_skip_worktree
    - diff_index_show_file
    - fill_filespec
    - ce_stage
    linkageType: ''
    returnType: void
    signature: "void do_oneway_diff(struct unpack_trees_options *o,\n\t\t\t   const
      struct cache_entry *idx,\n\t\t\t   const struct cache_entry *tree)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ce_path_match
      Src: /src/git/diff-lib.c:533,1
    - Dst: do_oneway_diff
      Src: /src/git/diff-lib.c:536,1
    - Dst: diff_can_quit_early
      Src: /src/git/diff-lib.c:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - src
    - o
    argTypes:
    - struct cache_entry**
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 517
    functionDepth: 13
    functionLinenumber: 517
    functionLinenumberEnd: 544
    functionName: oneway_diff
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 1
    functionsReached:
    - do_oneway_diff
    - diff_can_quit_early
    - ce_path_match
    linkageType: ''
    returnType: int
    signature: "int oneway_diff(const struct cache_entry * const *src,\n\t\t       struct
      unpack_trees_options *o)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree_indirect
      Src: /src/git/diff-lib.c:555,1
    - Dst: error
      Src: /src/git/diff-lib.c:557,1
    - Dst: oid_to_hex
      Src: /src/git/diff-lib.c:558,1
    - Dst: memset
      Src: /src/git/diff-lib.c:559,1
    - Dst: die
      Src: /src/git/diff-lib.c:572,1
    - Dst: _
      Src: /src/git/diff-lib.c:572,1
    - Dst: init_tree_desc
      Src: /src/git/diff-lib.c:574,1
    - Dst: unpack_trees
      Src: /src/git/diff-lib.c:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - revs
    - tree_oid
    - tree_name
    - cached
    argTypes:
    - struct rev_info*
    - struct object_id*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 546
    functionDepth: 5
    functionLinenumber: 546
    functionLinenumberEnd: 576
    functionName: diff_cache
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 1
    functionsReached:
    - error
    - memset
    - oid_to_hex
    - die
    - repo_parse_tree_indirect
    - unpack_trees
    - _
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int diff_cache(struct rev_info *revs,\n\t\t      const struct object_id
      *tree_oid,\n\t\t      const char *tree_name,\n\t\t      int cached)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/diff-lib.c:587,1
    - Dst: _
      Src: /src/git/diff-lib.c:587,1
    - Dst: BUG
      Src: /src/git/diff-lib.c:596,1
    - Dst: lookup_commit_reference
      Src: /src/git/diff-lib.c:599,1
    - Dst: repo_get_oid
      Src: /src/git/diff-lib.c:603,1
    - Dst: die
      Src: /src/git/diff-lib.c:604,1
    - Dst: _
      Src: /src/git/diff-lib.c:604,1
    - Dst: lookup_commit_reference
      Src: /src/git/diff-lib.c:606,1
    - Dst: repo_get_merge_bases
      Src: /src/git/diff-lib.c:609,1
    - Dst: exit
      Src: /src/git/diff-lib.c:610,1
    - Dst: die
      Src: /src/git/diff-lib.c:612,1
    - Dst: _
      Src: /src/git/diff-lib.c:612,1
    - Dst: die
      Src: /src/git/diff-lib.c:614,1
    - Dst: _
      Src: /src/git/diff-lib.c:614,1
    - Dst: oidcpy
      Src: /src/git/diff-lib.c:616,1
    - Dst: commit_list_free
      Src: /src/git/diff-lib.c:618,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - revs
    - mb
    argTypes:
    - struct rev_info*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 619
    functionName: diff_get_merge_base
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - die
    - oidcpy
    - lookup_commit_reference
    - repo_get_oid
    - exit
    - repo_get_merge_bases
    - commit_list_free
    - _
    - BUG
    linkageType: ''
    returnType: void
    signature: void diff_get_merge_base(const struct rev_info *revs, struct object_id
      *mb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/diff-lib.c:632,1
    - Dst: trace_performance_enter
      Src: /src/git/diff-lib.c:634,1
    - Dst: refresh_fsmonitor
      Src: /src/git/diff-lib.c:637,1
    - Dst: diff_get_merge_base
      Src: /src/git/diff-lib.c:640,1
    - Dst: oid_to_hex_r
      Src: /src/git/diff-lib.c:641,1
    - Dst: oidcpy
      Src: /src/git/diff-lib.c:643,1
    - Dst: diff_cache
      Src: /src/git/diff-lib.c:647,1
    - Dst: exit
      Src: /src/git/diff-lib.c:648,1
    - Dst: diff_set_mnemonic_prefix
      Src: /src/git/diff-lib.c:650,1
    - Dst: diffcore_fix_diff_index
      Src: /src/git/diff-lib.c:651,1
    - Dst: diffcore_std
      Src: /src/git/diff-lib.c:652,1
    - Dst: diff_flush
      Src: /src/git/diff-lib.c:653,1
    - Dst: trace_performance_leave
      Src: /src/git/diff-lib.c:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - revs
    - option
    argTypes:
    - struct rev_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 621
    functionDepth: 6
    functionLinenumber: 621
    functionLinenumberEnd: 655
    functionName: run_diff_index
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - oid_to_hex_r
    - trace_performance_leave
    - oidcpy
    - exit
    - diffcore_fix_diff_index
    - diff_flush
    - diff_set_mnemonic_prefix
    - diffcore_std
    - diff_get_merge_base
    - refresh_fsmonitor
    - BUG
    - diff_cache
    - trace_performance_enter
    linkageType: ''
    returnType: void
    signature: void run_diff_index(struct rev_info *revs, unsigned int option)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/diff-lib.c:661,1
    - Dst: copy_pathspec
      Src: /src/git/diff-lib.c:662,1
    - Dst: diff_free
      Src: /src/git/diff-lib.c:663,1
    - Dst: diff_cache
      Src: /src/git/diff-lib.c:667,1
    - Dst: exit
      Src: /src/git/diff-lib.c:668,1
    - Dst: release_revisions
      Src: /src/git/diff-lib.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - tree_oid
    - opt
    argTypes:
    - struct object_id*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 657
    functionDepth: 6
    functionLinenumber: 657
    functionLinenumberEnd: 672
    functionName: do_diff_cache
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 1
    functionsReached:
    - release_revisions
    - copy_pathspec
    - diff_free
    - exit
    - repo_init_revisions
    - diff_cache
    linkageType: ''
    returnType: int
    signature: int do_diff_cache(const struct object_id *tree_oid, struct diff_options
      *opt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/diff-lib.c:682,1
    - Dst: memset
      Src: /src/git/diff-lib.c:683,1
    - Dst: setup_revisions
      Src: /src/git/diff-lib.c:685,1
    - Dst: diff_flags_or
      Src: /src/git/diff-lib.c:689,1
    - Dst: run_diff_index
      Src: /src/git/diff-lib.c:698,1
    - Dst: release_revisions
      Src: /src/git/diff-lib.c:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - r
    - def
    - flags
    - ita_invisible_in_index
    argTypes:
    - struct repository*
    - char*
    - struct diff_flags*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 674
    functionDepth: 12
    functionLinenumber: 674
    functionLinenumberEnd: 702
    functionName: index_differs_from
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - memset
    - release_revisions
    - repo_init_revisions
    - diff_flags_or
    - run_diff_index
    - setup_revisions
    linkageType: ''
    returnType: int
    signature: "int index_differs_from(struct repository *r,\n\t\t       const char
      *def, const struct diff_flags *flags,\n\t\t       int ita_invisible_in_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - data
    argTypes:
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 707
    functionName: idiff_prefix_cb
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *idiff_prefix_cb(struct diff_options *opt UNUSED, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/diff-lib.c:715,1
    - Dst: strbuf_addchars
      Src: /src/git/diff-lib.c:718,1
    - Dst: diff_setup_done
      Src: /src/git/diff-lib.c:720,1
    - Dst: diff_tree_oid
      Src: /src/git/diff-lib.c:722,1
    - Dst: diffcore_std
      Src: /src/git/diff-lib.c:723,1
    - Dst: diff_flush
      Src: /src/git/diff-lib.c:724,1
    - Dst: strbuf_release
      Src: /src/git/diff-lib.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - oid1
    - oid2
    - indent
    - diffopt
    argTypes:
    - struct object_id*
    - struct object_id*
    - int
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 709
    functionDepth: 3
    functionLinenumber: 709
    functionLinenumberEnd: 727
    functionName: show_interdiff
    functionSourceFile: /src/git/diff-lib.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    - strbuf_release
    - diff_tree_oid
    - memcpy
    - diff_flush
    - diffcore_std
    - diff_setup_done
    linkageType: ''
    returnType: void
    signature: "void show_interdiff(const struct object_id *oid1, const struct object_id
      *oid2,\n\t\t    int indent, struct diff_options *diffopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/sub-process.c:16,1
    - Dst: container_of
      Src: /src/git/sub-process.c:17,1
    - Dst: strcmp
      Src: /src/git/sub-process.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 20
    functionName: cmd2process_cmp
    functionSourceFile: /src/git/sub-process.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cmd2process_cmp(const void *cmp_data UNUSED,\n\t\t    const struct
      hashmap_entry *eptr,\n\t\t    const struct hashmap_entry *entry_or_key,\n\t\t
      \   const void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/sub-process.c:26,1
    - Dst: strhash
      Src: /src/git/sub-process.c:26,1
    - Dst: hashmap_get_entry
      Src: /src/git/sub-process.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hashmap
    - cmd
    argTypes:
    - struct hashmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: subprocess_find_entry
    functionSourceFile: /src/git/sub-process.c
    functionUses: 2
    functionsReached:
    - strhash
    - hashmap_entry_init
    - hashmap_get_entry
    linkageType: ''
    returnType: struct subprocess_entry
    signature: struct subprocess_entry *subprocess_find_entry(struct hashmap *hashmap,
      const char *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packet_read_line_gently
      Src: /src/git/sub-process.c:39,1
    - Dst: skip_prefix
      Src: /src/git/sub-process.c:42,1
    - Dst: strbuf_reset
      Src: /src/git/sub-process.c:44,1
    - Dst: strbuf_addstr
      Src: /src/git/sub-process.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - fd
    - status
    argTypes:
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 50
    functionName: subprocess_read_status
    functionSourceFile: /src/git/sub-process.c
    functionUses: 2
    functionsReached:
    - strbuf_reset
    - skip_prefix
    - packet_read_line_gently
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int subprocess_read_status(int fd, struct strbuf *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/git/sub-process.c:58,1
    - Dst: finish_command
      Src: /src/git/sub-process.c:59,1
    - Dst: hashmap_remove
      Src: /src/git/sub-process.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hashmap
    - entry
    argTypes:
    - struct hashmap*
    - struct subprocess_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: subprocess_stop
    functionSourceFile: /src/git/sub-process.c
    functionUses: 1
    functionsReached:
    - kill
    - hashmap_remove
    - finish_command
    linkageType: ''
    returnType: void
    signature: void subprocess_stop(struct hashmap *hashmap, struct subprocess_entry
      *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigchain_push
      Src: /src/git/sub-process.c:66,1
    - Dst: close
      Src: /src/git/sub-process.c:68,1
    - Dst: close
      Src: /src/git/sub-process.c:69,1
    - Dst: sigchain_pop
      Src: /src/git/sub-process.c:70,1
    - Dst: finish_command
      Src: /src/git/sub-process.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - process
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: subprocess_exit_handler
    functionSourceFile: /src/git/sub-process.c
    functionUses: 0
    functionsReached:
    - sigchain_push
    - sigchain_pop
    - close
    - finish_command
    linkageType: ''
    returnType: void
    signature: void subprocess_exit_handler(struct child_process *process)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: child_process_init
      Src: /src/git/sub-process.c:84,1
    - Dst: strvec_push
      Src: /src/git/sub-process.c:85,1
    - Dst: start_command
      Src: /src/git/sub-process.c:93,1
    - Dst: error
      Src: /src/git/sub-process.c:95,1
    - Dst: hashmap_entry_init
      Src: /src/git/sub-process.c:99,1
    - Dst: strhash
      Src: /src/git/sub-process.c:99,1
    - Dst: startfn
      Src: /src/git/sub-process.c:101,1
    - Dst: error
      Src: /src/git/sub-process.c:103,1
    - Dst: subprocess_stop
      Src: /src/git/sub-process.c:104,1
    - Dst: hashmap_add
      Src: /src/git/sub-process.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 4
    argNames:
    - hashmap
    - entry
    - cmd
    - startfn
    argTypes:
    - struct hashmap*
    - struct subprocess_entry*
    - char*
    - subprocess_start_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 75
    functionDepth: 7
    functionLinenumber: 75
    functionLinenumberEnd: 110
    functionName: subprocess_start
    functionSourceFile: /src/git/sub-process.c
    functionUses: 1
    functionsReached:
    - error
    - strvec_push
    - strhash
    - hashmap_add
    - subprocess_stop
    - child_process_init
    - hashmap_entry_init
    - startfn
    - start_command
    linkageType: ''
    returnType: int
    signature: "int subprocess_start(struct hashmap *hashmap, struct subprocess_entry
      *entry, const char *cmd,\n\tsubprocess_start_fn startfn)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: packet_write_fmt_gently
      Src: /src/git/sub-process.c:124,1
    - Dst: error
      Src: /src/git/sub-process.c:126,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/sub-process.c:128,1
    - Dst: error
      Src: /src/git/sub-process.c:130,1
    - Dst: packet_flush_gently
      Src: /src/git/sub-process.c:132,1
    - Dst: error
      Src: /src/git/sub-process.c:133,1
    - Dst: packet_read_line
      Src: /src/git/sub-process.c:135,1
    - Dst: skip_prefix
      Src: /src/git/sub-process.c:136,1
    - Dst: strcmp
      Src: /src/git/sub-process.c:137,1
    - Dst: error
      Src: /src/git/sub-process.c:138,1
    - Dst: packet_read_line
      Src: /src/git/sub-process.c:140,1
    - Dst: skip_prefix
      Src: /src/git/sub-process.c:141,1
    - Dst: strtol_i
      Src: /src/git/sub-process.c:142,1
    - Dst: error
      Src: /src/git/sub-process.c:143,1
    - Dst: packet_read_line
      Src: /src/git/sub-process.c:145,1
    - Dst: error
      Src: /src/git/sub-process.c:146,1
    - Dst: error
      Src: /src/git/sub-process.c:154,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 4
    argNames:
    - process
    - welcome_prefix
    - versions
    - chosen_version
    argTypes:
    - struct child_process*
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 157
    functionName: handshake_version
    functionSourceFile: /src/git/sub-process.c
    functionUses: 0
    functionsReached:
    - error
    - packet_read_line
    - strtol_i
    - packet_flush_gently
    - strcmp
    - skip_prefix
    - packet_write_fmt_gently
    linkageType: ''
    returnType: int
    signature: "int handshake_version(struct child_process *process,\n\t\t\t     const
      char *welcome_prefix, int *versions,\n\t\t\t     int *chosen_version)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: packet_write_fmt_gently
      Src: /src/git/sub-process.c:167,1
    - Dst: error
      Src: /src/git/sub-process.c:169,1
    - Dst: packet_flush_gently
      Src: /src/git/sub-process.c:171,1
    - Dst: error
      Src: /src/git/sub-process.c:172,1
    - Dst: packet_read_line
      Src: /src/git/sub-process.c:174,1
    - Dst: skip_prefix
      Src: /src/git/sub-process.c:176,1
    - Dst: strcmp
      Src: /src/git/sub-process.c:180,1
    - Dst: die
      Src: /src/git/sub-process.c:187,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - process
    - capabilities
    - supported_capabilities
    argTypes:
    - struct child_process*
    - struct subprocess_capability*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 193
    functionName: handshake_capabilities
    functionSourceFile: /src/git/sub-process.c
    functionUses: 0
    functionsReached:
    - error
    - packet_read_line
    - die
    - packet_flush_gently
    - strcmp
    - skip_prefix
    - packet_write_fmt_gently
    linkageType: ''
    returnType: int
    signature: "int handshake_capabilities(struct child_process *process,\n\t\t\t\t
      \ struct subprocess_capability *capabilities,\n\t\t\t\t  unsigned int *supported_capabilities)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigchain_push
      Src: /src/git/sub-process.c:205,1
    - Dst: handshake_version
      Src: /src/git/sub-process.c:207,1
    - Dst: handshake_capabilities
      Src: /src/git/sub-process.c:209,1
    - Dst: sigchain_pop
      Src: /src/git/sub-process.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - entry
    - welcome_prefix
    - versions
    - chosen_version
    - capabilities
    - supported_capabilities
    argTypes:
    - struct subprocess_entry*
    - char*
    - int*
    - int*
    - struct subprocess_capability*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 214
    functionName: subprocess_handshake
    functionSourceFile: /src/git/sub-process.c
    functionUses: 1
    functionsReached:
    - sigchain_push
    - handshake_capabilities
    - sigchain_pop
    - handshake_version
    linkageType: ''
    returnType: int
    signature: "int subprocess_handshake(struct subprocess_entry *entry,\n\t\t\t const
      char *welcome_prefix,\n\t\t\t int *versions,\n\t\t\t int *chosen_version,\n\t\t\t
      struct subprocess_capability *capabilities,\n\t\t\t unsigned int *supported_capabilities)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/git/thread-utils.c:32,1
    - Dst: pstat_getdynamic
      Src: /src/git/thread-utils.c:39,1
    - Dst: sysctl
      Src: /src/git/thread-utils.c:55,1
    - Dst: sysconf
      Src: /src/git/thread-utils.c:60,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 66
    functionName: online_cpus
    functionSourceFile: /src/git/thread-utils.c
    functionUses: 4
    functionsReached:
    - GetSystemInfo
    - pstat_getdynamic
    - sysctl
    - sysconf
    linkageType: ''
    returnType: int
    signature: int online_cpus(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutexattr_init
      Src: /src/git/thread-utils.c:74,1
    - Dst: pthread_mutexattr_settype
      Src: /src/git/thread-utils.c:76,1
    - Dst: pthread_mutex_init
      Src: /src/git/thread-utils.c:78,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/git/thread-utils.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - m
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: init_recursive_mutex
    functionSourceFile: /src/git/thread-utils.c
    functionUses: 1
    functionsReached:
    - pthread_mutexattr_init
    - pthread_mutex_init
    - pthread_mutexattr_destroy
    - pthread_mutexattr_settype
    linkageType: ''
    returnType: int
    signature: int init_recursive_mutex(pthread_mutex_t *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pthread
    - attr
    - (*fn)(void *)
    - data
    argTypes:
    - pthread_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: dummy_pthread_create
    functionSourceFile: /src/git/thread-utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dummy_pthread_create(pthread_t *pthread, const void *attr,\n\t\t\t
      void *(*fn)(void *), void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: dummy_pthread_init
    functionSourceFile: /src/git/thread-utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dummy_pthread_init(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pthread
    - retval
    argTypes:
    - pthread_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: dummy_pthread_join
    functionSourceFile: /src/git/thread-utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dummy_pthread_join(pthread_t pthread, void **retval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/sequencer.c:241,1
    - Dst: strbuf_init
      Src: /src/git/sequencer.c:243,1
    - Dst: strbuf_init
      Src: /src/git/sequencer.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: replay_ctx_new
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_init
    - xcalloc
    linkageType: ''
    returnType: struct replay_ctx
    signature: struct replay_ctx * replay_ctx_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/sequencer.c:262,1
    - Dst: oidcpy
      Src: /src/git/sequencer.c:264,1
    - Dst: null_oid
      Src: /src/git/sequencer.c:264,1
    - Dst: oidcpy
      Src: /src/git/sequencer.c:265,1
    - Dst: null_oid
      Src: /src/git/sequencer.c:265,1
    - Dst: refs_read_ref
      Src: /src/git/sequencer.c:268,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ref
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 271
    functionName: init_update_ref_record
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - refs_read_ref
    - CALLOC_ARRAY
    - null_oid
    - get_main_ref_store
    linkageType: ''
    returnType: struct update_ref_record
    signature: struct update_ref_record *init_update_ref_record(const char *ref)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/sequencer.c:278,1
    - Dst: config_error_nonbool
      Src: /src/git/sequencer.c:280,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:282,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:285,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:288,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:291,1
    - Dst: warning
      Src: /src/git/sequencer.c:295,1
    - Dst: _
      Src: /src/git/sequencer.c:295,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:302,1
    - Dst: free
      Src: /src/git/sequencer.c:303,1
    - Dst: git_config_bool
      Src: /src/git/sequencer.c:304,1
    - Dst: xstrdup
      Src: /src/git/sequencer.c:304,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:308,1
    - Dst: git_config_string
      Src: /src/git/sequencer.c:309,1
    - Dst: strchr
      Src: /src/git/sequencer.c:315,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:322,1
    - Dst: git_config_bool
      Src: /src/git/sequencer.c:323,1
    - Dst: git_diff_basic_config
      Src: /src/git/sequencer.c:325,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - k
    - v
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 326
    functionName: git_sequencer_config
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - git_config_string
    - strchr
    - strcmp
    - git_diff_basic_config
    - config_error_nonbool
    - free
    - warning
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int git_sequencer_config(const char *k, const char *v,\n\t\t\t\tconst
      struct config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/sequencer.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: sequencer_init_config
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - repo_config
    linkageType: ''
    returnType: void
    signature: void sequencer_init_config(struct replay_opts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: is_rebase_i
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_rebase_i(const struct replay_opts *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:341,1
    - Dst: rebase_path
      Src: /src/git/sequencer.c:342,1
    - Dst: git_path_seq_dir
      Src: /src/git/sequencer.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: get_dir
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - is_rebase_i
    - rebase_path
    - git_path_seq_dir
    linkageType: ''
    returnType: char
    signature: char *get_dir(const struct replay_opts *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:348,1
    - Dst: rebase_path_todo
      Src: /src/git/sequencer.c:349,1
    - Dst: git_path_todo_file
      Src: /src/git/sequencer.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: get_todo_path
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - is_rebase_i
    - rebase_path_todo
    - git_path_todo_file
    linkageType: ''
    returnType: char
    signature: char *get_todo_path(const struct replay_opts *opts)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: trailer_iterator_init
      Src: /src/git/sequencer.c:372,1
    - Dst: trailer_iterator_advance
      Src: /src/git/sequencer.c:377,1
    - Dst: strncmp
      Src: /src/git/sequencer.c:379,1
    - Dst: trailer_iterator_release
      Src: /src/git/sequencer.c:382,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - sb
    - sob
    - ignore_footer
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 394
    functionName: has_conforming_footer
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - trailer_iterator_init
    - strncmp
    - trailer_iterator_advance
    - trailer_iterator_release
    linkageType: ''
    returnType: int
    signature: "int has_conforming_footer(struct strbuf *sb, struct strbuf *sob,\n\tsize_t
      ignore_footer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:400,1
    - Dst: sq_quotef
      Src: /src/git/sequencer.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: gpg_sign_opt_quoted
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - sq_quotef
    linkageType: ''
    returnType: char
    signature: char *gpg_sign_opt_quoted(struct replay_opts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:408,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct replay_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: replay_ctx_release
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void replay_ctx_release(struct replay_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/sequencer.c:416,1
    - Dst: free
      Src: /src/git/sequencer.c:417,1
    - Dst: free
      Src: /src/git/sequencer.c:418,1
    - Dst: free
      Src: /src/git/sequencer.c:419,1
    - Dst: strvec_clear
      Src: /src/git/sequencer.c:420,1
    - Dst: release_revisions
      Src: /src/git/sequencer.c:422,1
    - Dst: free
      Src: /src/git/sequencer.c:423,1
    - Dst: strvec_clear
      Src: /src/git/sequencer.c:424,1
    - Dst: replay_ctx_release
      Src: /src/git/sequencer.c:425,1
    - Dst: free
      Src: /src/git/sequencer.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 412
    functionDepth: 4
    functionLinenumber: 412
    functionLinenumberEnd: 427
    functionName: replay_opts_release
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strvec_clear
    - release_revisions
    - replay_ctx_release
    - free
    linkageType: ''
    returnType: void
    signature: void replay_opts_release(struct replay_opts *opts)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:434,1
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:435,1
    - Dst: rebase_path_refs_to_delete
      Src: /src/git/sequencer.c:435,1
    - Dst: strchr
      Src: /src/git/sequencer.c:438,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:441,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:441,1
    - Dst: warning
      Src: /src/git/sequencer.c:442,1
    - Dst: _
      Src: /src/git/sequencer.c:442,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:451,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:452,1
    - Dst: get_dir
      Src: /src/git/sequencer.c:452,1
    - Dst: remove_dir_recursively
      Src: /src/git/sequencer.c:453,1
    - Dst: error
      Src: /src/git/sequencer.c:454,1
    - Dst: _
      Src: /src/git/sequencer.c:454,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:455,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 429
    functionDepth: 8
    functionLinenumber: 429
    functionLinenumberEnd: 458
    functionName: sequencer_remove_state
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - refs_delete_ref
    - strbuf_release
    - strbuf_reset
    - remove_dir_recursively
    - strbuf_read_file
    - strchr
    - strbuf_addstr
    - rebase_path_refs_to_delete
    - is_rebase_i
    - get_dir
    - warning
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int sequencer_remove_state(struct replay_opts *opts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/sequencer.c:464,1
    - Dst: N_
      Src: /src/git/sequencer.c:466,1
    - Dst: N_
      Src: /src/git/sequencer.c:468,1
    - Dst: die
      Src: /src/git/sequencer.c:470,1
    - Dst: _
      Src: /src/git/sequencer.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: action_name
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - N_
    - die
    - _
    linkageType: ''
    returnType: char
    signature: char *action_name(const struct replay_opts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_find_unique_abbrev
      Src: /src/git/sequencer.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - commit
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 4
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: short_commit_name
    functionSourceFile: /src/git/sequencer.c
    functionUses: 1
    functionsReached:
    - repo_find_unique_abbrev
    linkageType: ''
    returnType: char
    signature: char *short_commit_name(struct repository *r, struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_logmsg_reencode
      Src: /src/git/sequencer.c:490,1
    - Dst: get_commit_output_encoding
      Src: /src/git/sequencer.c:491,1
    - Dst: short_commit_name
      Src: /src/git/sequencer.c:492,1
    - Dst: find_commit_subject
      Src: /src/git/sequencer.c:494,1
    - Dst: xmemdupz
      Src: /src/git/sequencer.c:496,1
    - Dst: xstrfmt
      Src: /src/git/sequencer.c:497,1
    - Dst: xstrfmt
      Src: /src/git/sequencer.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - commit
    - out
    argTypes:
    - struct commit*
    - struct commit_message*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 501
    functionName: get_message
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - find_commit_subject
    - xstrfmt
    - repo_logmsg_reencode
    - get_commit_output_encoding
    - short_commit_name
    linkageType: ''
    returnType: int
    signature: int get_message(struct commit *commit, struct commit_message *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/sequencer.c:505,1
    - Dst: free
      Src: /src/git/sequencer.c:506,1
    - Dst: free
      Src: /src/git/sequencer.c:507,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/sequencer.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - commit
    - msg
    argTypes:
    - struct commit*
    - struct commit_message*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 509
    functionName: free_message
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - repo_unuse_commit_buffer
    - free
    linkageType: ''
    returnType: void
    signature: void free_message(struct commit *commit, struct commit_message *msg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:523,1
    - Dst: getenv
      Src: /src/git/sequencer.c:526,1
    - Dst: advise_if_enabled
      Src: /src/git/sequencer.c:529,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:535,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:535,1
    - Dst: advise_if_enabled
      Src: /src/git/sequencer.c:542,1
    - Dst: _
      Src: /src/git/sequencer.c:543,1
    - Dst: advise_if_enabled
      Src: /src/git/sequencer.c:546,1
    - Dst: _
      Src: /src/git/sequencer.c:547,1
    - Dst: advise_if_enabled
      Src: /src/git/sequencer.c:554,1
    - Dst: _
      Src: /src/git/sequencer.c:555,1
    - Dst: BUG
      Src: /src/git/sequencer.c:562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - r
    - show_hint
    - opts
    argTypes:
    - struct repository*
    - int
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 564
    functionName: print_advice
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - refs_delete_ref
    - advise_if_enabled
    - _
    - is_rebase_i
    - getenv
    - BUG
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void print_advice(struct repository *r, int show_hint,\n\t\t\t struct
      replay_opts *opts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hold_lock_file_for_update
      Src: /src/git/sequencer.c:571,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:573,1
    - Dst: _
      Src: /src/git/sequencer.c:573,1
    - Dst: write_in_full
      Src: /src/git/sequencer.c:574,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:575,1
    - Dst: _
      Src: /src/git/sequencer.c:575,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:576,1
    - Dst: write
      Src: /src/git/sequencer.c:579,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:580,1
    - Dst: _
      Src: /src/git/sequencer.c:580,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:581,1
    - Dst: commit_lock_file
      Src: /src/git/sequencer.c:584,1
    - Dst: error
      Src: /src/git/sequencer.c:585,1
    - Dst: _
      Src: /src/git/sequencer.c:585,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - buf
    - len
    - filename
    - append_eol
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 588
    functionName: write_message
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - hold_lock_file_for_update
    - commit_lock_file
    - write
    - rollback_lock_file
    - _
    - write_in_full
    linkageType: ''
    returnType: int
    signature: "int write_message(const void *buf, size_t len, const char *filename,\n\t\t\t
      int append_eol)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:595,1
    - Dst: warning_errno
      Src: /src/git/sequencer.c:598,1
    - Dst: _
      Src: /src/git/sequencer.c:598,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 3
    argNames:
    - buf
    - path
    - flags
    argTypes:
    - struct strbuf*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 590
    functionDepth: 5
    functionLinenumber: 590
    functionLinenumberEnd: 612
    functionName: read_oneliner
    functionSourceFile: /src/git/sequencer.c
    functionUses: 1
    functionsReached:
    - strbuf_read_file
    - _
    - warning_errno
    linkageType: ''
    returnType: int
    signature: "int read_oneliner(struct strbuf *buf,\n\tconst char *path, unsigned
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tree
      Src: /src/git/sequencer.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 617
    functionName: empty_tree
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - lookup_tree
    linkageType: ''
    returnType: struct tree
    signature: struct tree *empty_tree(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index_unmerged
      Src: /src/git/sequencer.c:621,1
    - Dst: error_resolve_conflict
      Src: /src/git/sequencer.c:622,1
    - Dst: action_name
      Src: /src/git/sequencer.c:622,1
    - Dst: error
      Src: /src/git/sequencer.c:624,1
    - Dst: _
      Src: /src/git/sequencer.c:624,1
    - Dst: _
      Src: /src/git/sequencer.c:625,1
    - Dst: action_name
      Src: /src/git/sequencer.c:625,1
    - Dst: advice_enabled
      Src: /src/git/sequencer.c:627,1
    - Dst: advise
      Src: /src/git/sequencer.c:628,1
    - Dst: _
      Src: /src/git/sequencer.c:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - repo
    - opts
    argTypes:
    - struct repository*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 619
    functionDepth: 9
    functionLinenumber: 619
    functionLinenumberEnd: 630
    functionName: error_dirty_index
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - repo_read_index_unmerged
    - error_resolve_conflict
    - _
    - advise
    - advice_enabled
    - action_name
    linkageType: ''
    returnType: int
    signature: int error_dirty_index(struct repository *repo, struct replay_opts *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/sequencer.c:637,1
    - Dst: git_path_seq_dir
      Src: /src/git/sequencer.c:637,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:640,1
    - Dst: write_file
      Src: /src/git/sequencer.c:641,1
    - Dst: git_path_abort_safety_file
      Src: /src/git/sequencer.c:641,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:641,1
    - Dst: write_file
      Src: /src/git/sequencer.c:643,1
    - Dst: git_path_abort_safety_file
      Src: /src/git/sequencer.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 644
    functionName: update_abort_safety_file
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - git_path_seq_dir
    - write_file
    - repo_get_oid
    - git_path_abort_safety_file
    - file_exists
    linkageType: ''
    returnType: void
    signature: void update_abort_safety_file(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/sequencer.c:656,1
    - Dst: checkout_fast_forward
      Src: /src/git/sequencer.c:657,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:660,1
    - Dst: action_name
      Src: /src/git/sequencer.c:660,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/sequencer.c:662,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:662,1
    - Dst: ref_transaction_update
      Src: /src/git/sequencer.c:665,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:666,1
    - Dst: null_oid
      Src: /src/git/sequencer.c:667,1
    - Dst: ref_transaction_commit
      Src: /src/git/sequencer.c:669,1
    - Dst: ref_transaction_free
      Src: /src/git/sequencer.c:670,1
    - Dst: error
      Src: /src/git/sequencer.c:671,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:672,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:673,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:677,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:678,1
    - Dst: ref_transaction_free
      Src: /src/git/sequencer.c:679,1
    - Dst: update_abort_safety_file
      Src: /src/git/sequencer.c:680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - r
    - to
    - from
    - unborn
    - opts
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    - int
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 646
    functionDepth: 14
    functionLinenumber: 646
    functionLinenumberEnd: 682
    functionName: fast_forward_to
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - error
    - strbuf_release
    - checkout_fast_forward
    - update_abort_safety_file
    - repo_read_index
    - strbuf_addf
    - ref_transaction_update
    - null_oid
    - ref_transaction_free
    - is_rebase_i
    - ref_store_transaction_begin
    - get_main_ref_store
    - action_name
    linkageType: ''
    returnType: int
    signature: "int fast_forward_to(struct repository *r,\n\t\t\t   const struct object_id
      *to,\n\t\t\t   const struct object_id *from,\n\t\t\t   int unborn,\n\t\t\t   struct
      replay_opts *opts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/sequencer.c:687,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:690,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:692,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:694,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:696,1
    - Dst: die
      Src: /src/git/sequencer.c:700,1
    - Dst: _
      Src: /src/git/sequencer.c:700,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - cleanup_arg
    - use_editor
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 701
    functionName: get_cleanup_mode
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: enum commit_msg_cleanup_mode
    signature: "enum commit_msg_cleanup_mode get_cleanup_mode(const char *cleanup_arg,\n\tint
      use_editor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/sequencer.c:715,1
    - Dst: BUG
      Src: /src/git/sequencer.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cleanup_mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 719
    functionName: describe_cleanup_mode
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - BUG
    linkageType: ''
    returnType: char
    signature: char *describe_cleanup_mode(int cleanup_mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:727,1
    - Dst: wt_status_append_cut_line
      Src: /src/git/sequencer.c:728,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:729,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:732,1
    - Dst: strbuf_commented_addf
      Src: /src/git/sequencer.c:733,1
    - Dst: ce_stage
      Src: /src/git/sequencer.c:736,1
    - Dst: strbuf_commented_addf
      Src: /src/git/sequencer.c:737,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - istate
    - msgbuf
    - cleanup_mode
    argTypes:
    - struct index_state*
    - struct strbuf*
    - enum commit_msg_cleanup_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 721
    functionDepth: 6
    functionLinenumber: 721
    functionLinenumberEnd: 744
    functionName: append_conflicts_hint
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - wt_status_append_cut_line
    - strbuf_commented_addf
    - strbuf_addch
    - strbuf_addstr
    - strcmp
    - ce_stage
    linkageType: ''
    returnType: void
    signature: "void append_conflicts_hint(struct index_state *istate,\n\tstruct strbuf
      *msgbuf, enum commit_msg_cleanup_mode cleanup_mode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_hold_locked_index
      Src: /src/git/sequencer.c:759,1
    - Dst: repo_read_index
      Src: /src/git/sequencer.c:762,1
    - Dst: init_ui_merge_options
      Src: /src/git/sequencer.c:764,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:768,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/sequencer.c:772,1
    - Dst: error
      Src: /src/git/sequencer.c:774,1
    - Dst: _
      Src: /src/git/sequencer.c:774,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:774,1
    - Dst: repo_get_commit_tree
      Src: /src/git/sequencer.c:775,1
    - Dst: empty_tree
      Src: /src/git/sequencer.c:775,1
    - Dst: repo_get_commit_tree
      Src: /src/git/sequencer.c:776,1
    - Dst: empty_tree
      Src: /src/git/sequencer.c:776,1
    - Dst: parse_merge_opt
      Src: /src/git/sequencer.c:779,1
    - Dst: memset
      Src: /src/git/sequencer.c:781,1
    - Dst: merge_incore_nonrecursive
      Src: /src/git/sequencer.c:782,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:783,1
    - Dst: merge_switch_to_result
      Src: /src/git/sequencer.c:792,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:795,1
    - Dst: write_locked_index
      Src: /src/git/sequencer.c:799,1
    - Dst: error
      Src: /src/git/sequencer.c:805,1
    - Dst: _
      Src: /src/git/sequencer.c:805,1
    - Dst: _
      Src: /src/git/sequencer.c:806,1
    - Dst: action_name
      Src: /src/git/sequencer.c:806,1
    - Dst: append_conflicts_hint
      Src: /src/git/sequencer.c:809,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 8
    argNames:
    - r
    - base
    - next
    - base_label
    - next_label
    - head
    - msgbuf
    - opts
    argTypes:
    - struct repository*
    - struct commit*
    - struct commit*
    - char*
    - char*
    - struct object_id*
    - struct strbuf*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 746
    functionDepth: 20
    functionLinenumber: 746
    functionLinenumberEnd: 813
    functionName: do_recursive_merge
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - empty_tree
    - oid_to_hex
    - memset
    - repo_parse_tree_indirect
    - append_conflicts_hint
    - repo_read_index
    - write_locked_index
    - repo_hold_locked_index
    - repo_get_commit_tree
    - rollback_lock_file
    - init_ui_merge_options
    - _
    - is_rebase_i
    - merge_switch_to_result
    - parse_merge_opt
    - merge_incore_nonrecursive
    - action_name
    linkageType: ''
    returnType: int
    signature: "int do_recursive_merge(struct repository *r,\n\t\t\t      struct commit
      *base, struct commit *next,\n\t\t\t      const char *base_label, const char
      *next_label,\n\t\t\t      struct object_id *head, struct strbuf *msgbuf,\n\t\t\t
      \     struct replay_opts *opts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree_fully_valid
      Src: /src/git/sequencer.c:817,1
    - Dst: cache_tree_update
      Src: /src/git/sequencer.c:818,1
    - Dst: error
      Src: /src/git/sequencer.c:819,1
    - Dst: _
      Src: /src/git/sequencer.c:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 815
    functionDepth: 5
    functionLinenumber: 815
    functionLinenumberEnd: 824
    functionName: get_cache_tree_oid
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - cache_tree_update
    - cache_tree_fully_valid
    - _
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *get_cache_tree_oid(struct index_state *istate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/sequencer.c:834,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:834,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/sequencer.c:836,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:836,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:841,1
    - Dst: is_null_oid
      Src: /src/git/sequencer.c:842,1
    - Dst: error
      Src: /src/git/sequencer.c:843,1
    - Dst: _
      Src: /src/git/sequencer.c:843,1
    - Dst: lookup_commit
      Src: /src/git/sequencer.c:846,1
    - Dst: repo_parse_commit
      Src: /src/git/sequencer.c:856,1
    - Dst: get_commit_tree_oid
      Src: /src/git/sequencer.c:859,1
    - Dst: get_cache_tree_oid
      Src: /src/git/sequencer.c:862,1
    - Dst: oideq
      Src: /src/git/sequencer.c:865,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 826
    functionDepth: 6
    functionLinenumber: 826
    functionLinenumberEnd: 866
    functionName: is_index_unchanged
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - get_cache_tree_oid
    - refs_resolve_ref_unsafe
    - repo_parse_commit
    - starts_with
    - is_null_oid
    - get_commit_tree_oid
    - lookup_commit
    - _
    - oideq
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int is_index_unchanged(struct repository *r)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/sequencer.c:875,1
    - Dst: unlink
      Src: /src/git/sequencer.c:878,1
    - Dst: rebase_path_author_script
      Src: /src/git/sequencer.c:878,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:880,1
    - Dst: strchr
      Src: /src/git/sequencer.c:882,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:887,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:889,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:892,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:894,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:895,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:897,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:900,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:902,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:903,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:906,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:908,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:909,1
    - Dst: write_message
      Src: /src/git/sequencer.c:910,1
    - Dst: rebase_path_author_script
      Src: /src/git/sequencer.c:910,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:911,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 37
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 868
    functionDepth: 4
    functionLinenumber: 868
    functionLinenumberEnd: 913
    functionName: write_author_script
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - strchr
    - starts_with
    - strbuf_addch
    - write_message
    - strbuf_addstr
    - skip_prefix
    - rebase_path_author_script
    - unlink
    linkageType: ''
    returnType: int
    signature: int write_author_script(const char *message)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/sequencer.c:924,1
    - Dst: strchrnul
      Src: /src/git/sequencer.c:926,1
    - Dst: error
      Src: /src/git/sequencer.c:927,1
    - Dst: _
      Src: /src/git/sequencer.c:927,1
    - Dst: strchrnul
      Src: /src/git/sequencer.c:930,1
    - Dst: string_list_append
      Src: /src/git/sequencer.c:932,1
    - Dst: sq_dequote
      Src: /src/git/sequencer.c:936,1
    - Dst: error
      Src: /src/git/sequencer.c:938,1
    - Dst: _
      Src: /src/git/sequencer.c:938,1
    - Dst: xstrdup
      Src: /src/git/sequencer.c:940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - list
    argTypes:
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 943
    functionName: parse_key_value_squoted
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - strchr
    - sq_dequote
    - string_list_append
    - _
    - strchrnul
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int parse_key_value_squoted(char *buf, struct string_list *list)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:970,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:971,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:975,1
    - Dst: _
      Src: /src/git/sequencer.c:975,1
    - Dst: parse_key_value_squoted
      Src: /src/git/sequencer.c:979,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:983,1
    - Dst: error
      Src: /src/git/sequencer.c:985,1
    - Dst: _
      Src: /src/git/sequencer.c:985,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:988,1
    - Dst: error
      Src: /src/git/sequencer.c:990,1
    - Dst: _
      Src: /src/git/sequencer.c:990,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:993,1
    - Dst: error
      Src: /src/git/sequencer.c:995,1
    - Dst: _
      Src: /src/git/sequencer.c:995,1
    - Dst: error
      Src: /src/git/sequencer.c:999,1
    - Dst: _
      Src: /src/git/sequencer.c:999,1
    - Dst: error
      Src: /src/git/sequencer.c:1004,1
    - Dst: _
      Src: /src/git/sequencer.c:1004,1
    - Dst: error
      Src: /src/git/sequencer.c:1006,1
    - Dst: _
      Src: /src/git/sequencer.c:1006,1
    - Dst: error
      Src: /src/git/sequencer.c:1008,1
    - Dst: _
      Src: /src/git/sequencer.c:1008,1
    - Dst: string_list_clear
      Src: /src/git/sequencer.c:1016,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1017,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 5
    argNames:
    - path
    - name
    - email
    - date
    - allow_missing
    argTypes:
    - char*
    - char**
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 962
    functionDepth: 5
    functionLinenumber: 962
    functionLinenumberEnd: 1019
    functionName: read_author_script
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - strbuf_release
    - string_list_clear
    - strbuf_read_file
    - strcmp
    - _
    - parse_key_value_squoted
    linkageType: ''
    returnType: int
    signature: "int read_author_script(const char *path, char **name, char **email,
      char **date,\n\t\t       int allow_missing)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_author_script
      Src: /src/git/sequencer.c:1030,1
    - Dst: rebase_path_author_script
      Src: /src/git/sequencer.c:1030,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:1034,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:1035,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:1036,1
    - Dst: free
      Src: /src/git/sequencer.c:1037,1
    - Dst: free
      Src: /src/git/sequencer.c:1038,1
    - Dst: free
      Src: /src/git/sequencer.c:1039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1026
    functionDepth: 6
    functionLinenumber: 1026
    functionLinenumberEnd: 1042
    functionName: read_env_script
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - read_author_script
    - strvec_pushf
    - rebase_path_author_script
    - free
    linkageType: ''
    returnType: int
    signature: int read_env_script(struct strvec *env)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_commit_header
      Src: /src/git/sequencer.c:1049,1
    - Dst: xmemdupz
      Src: /src/git/sequencer.c:1051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1054
    functionName: get_author
    functionSourceFile: /src/git/sequencer.c
    functionUses: 1
    functionsReached:
    - find_commit_header
    - xmemdupz
    linkageType: ''
    returnType: char
    signature: char *get_author(const char *message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:1062,1
    - Dst: BUG
      Src: /src/git/sequencer.c:1069,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1070
    functionName: author_date_from_env
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - BUG
    linkageType: ''
    returnType: char
    signature: char *author_date_from_env(const struct strvec *env)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pipe_command
      Src: /src/git/sequencer.c:1099,1
    - Dst: fputs
      Src: /src/git/sequencer.c:1105,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1093
    functionDepth: 8
    functionLinenumber: 1093
    functionLinenumberEnd: 1108
    functionName: run_command_silent_on_success
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - pipe_command
    - strbuf_release
    - fputs
    linkageType: ''
    returnType: int
    signature: int run_command_silent_on_success(struct child_process *cmd)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:1131,1
    - Dst: read_env_script
      Src: /src/git/sequencer.c:1134,1
    - Dst: gpg_sign_opt_quoted
      Src: /src/git/sequencer.c:1135,1
    - Dst: error
      Src: /src/git/sequencer.c:1137,1
    - Dst: _
      Src: /src/git/sequencer.c:1137,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:1141,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:1144,1
    - Dst: author_date_from_env
      Src: /src/git/sequencer.c:1147,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1149,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1151,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1154,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1156,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:1158,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1160,1
    - Dst: strvec_pushl
      Src: /src/git/sequencer.c:1162,1
    - Dst: strvec_pushl
      Src: /src/git/sequencer.c:1164,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1166,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1168,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1172,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1175,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1178,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:1180,1
    - Dst: run_command_silent_on_success
      Src: /src/git/sequencer.c:1181,1
    - Dst: run_command
      Src: /src/git/sequencer.c:1183,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 35
    argCount: 4
    argNames:
    - defmsg
    - reflog_action
    - opts
    - flags
    argTypes:
    - char*
    - char*
    - struct replay_opts*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1122
    functionDepth: 9
    functionLinenumber: 1122
    functionLinenumberEnd: 1184
    functionName: run_git_commit
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - gpg_sign_opt_quoted
    - strvec_push
    - run_command
    - strvec_pushl
    - read_env_script
    - run_command_silent_on_success
    - _
    - is_rebase_i
    - strvec_pushf
    - author_date_from_env
    linkageType: ''
    returnType: int
    signature: "int run_git_commit(const char *defmsg,\n\t\t\t  const char *reflog_action,\n\t\t\t
      \ struct replay_opts *opts,\n\t\t\t  unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/sequencer.c:1193,1
    - Dst: strlen
      Src: /src/git/sequencer.c:1199,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:1200,1
    - Dst: isspace
      Src: /src/git/sequencer.c:1205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - sb
    - start
    argTypes:
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1210
    functionName: rest_is_empty
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - isspace
    - memchr
    - strlen
    - starts_with
    linkageType: ''
    returnType: int
    signature: int rest_is_empty(const struct strbuf *sb, int start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/sequencer.c:1217,1
    - Dst: wt_status_locate_end
      Src: /src/git/sequencer.c:1217,1
    - Dst: strbuf_stripspace
      Src: /src/git/sequencer.c:1219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - msgbuf
    - cleanup_mode
    - verbose
    argTypes:
    - struct strbuf*
    - enum commit_msg_cleanup_mode
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1212
    functionDepth: 3
    functionLinenumber: 1212
    functionLinenumberEnd: 1221
    functionName: cleanup_message
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_stripspace
    - strbuf_setlen
    - wt_status_locate_end
    linkageType: ''
    returnType: void
    signature: "void cleanup_message(struct strbuf *msgbuf,\n\tenum commit_msg_cleanup_mode
      cleanup_mode, int verbose)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rest_is_empty
      Src: /src/git/sequencer.c:1232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - sb
    - cleanup_mode
    argTypes:
    - struct strbuf*
    - enum commit_msg_cleanup_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1227
    functionDepth: 2
    functionLinenumber: 1227
    functionLinenumberEnd: 1233
    functionName: message_is_empty
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - rest_is_empty
    linkageType: ''
    returnType: int
    signature: "int message_is_empty(const struct strbuf *sb,\n\t\t     enum commit_msg_cleanup_mode
      cleanup_mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:1248,1
    - Dst: strbuf_stripspace
      Src: /src/git/sequencer.c:1251,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:1253,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1255,1
    - Dst: rest_is_empty
      Src: /src/git/sequencer.c:1256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - sb
    - template_file
    - cleanup_mode
    argTypes:
    - struct strbuf*
    - char*
    - enum commit_msg_cleanup_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1239
    functionDepth: 5
    functionLinenumber: 1239
    functionLinenumberEnd: 1257
    functionName: template_untouched
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_stripspace
    - strbuf_release
    - strbuf_read_file
    - rest_is_empty
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int template_untouched(const struct strbuf *sb, const char *template_file,\n\t\t
      \      enum commit_msg_cleanup_mode cleanup_mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:1270,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:1271,1
    - Dst: strchr
      Src: /src/git/sequencer.c:1274,1
    - Dst: strbuf_add
      Src: /src/git/sequencer.c:1276,1
    - Dst: strbuf_addbuf
      Src: /src/git/sequencer.c:1278,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:1279,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/sequencer.c:1282,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:1282,1
    - Dst: ref_transaction_update
      Src: /src/git/sequencer.c:1285,1
    - Dst: null_oid
      Src: /src/git/sequencer.c:1286,1
    - Dst: ref_transaction_commit
      Src: /src/git/sequencer.c:1288,1
    - Dst: ref_transaction_free
      Src: /src/git/sequencer.c:1291,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - old_head
    - new_head
    - action
    - msg
    - err
    argTypes:
    - struct commit*
    - struct object_id*
    - char*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1259
    functionDepth: 6
    functionLinenumber: 1259
    functionLinenumberEnd: 1295
    functionName: update_head_with_reflog
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - strbuf_release
    - ref_transaction_update
    - strchr
    - strbuf_addch
    - strbuf_addbuf
    - ref_transaction_free
    - strbuf_addstr
    - ref_store_transaction_begin
    - null_oid
    - strbuf_add
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int update_head_with_reflog(const struct commit *old_head,\n\t\t\t
      \   const struct object_id *new_head,\n\t\t\t    const char *action, const struct
      strbuf *msg,\n\t\t\t    struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/sequencer.c:1304,1
    - Dst: write_in_full
      Src: /src/git/sequencer.c:1306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - hook_stdin_fd
    - pp_cb
    - pp_task_cb
    argTypes:
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1311
    functionName: pipe_from_strbuf
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - write_in_full
    - BUG
    linkageType: ''
    returnType: int
    signature: int pipe_from_strbuf(int hook_stdin_fd, void *pp_cb, void *pp_task_cb
      UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:1320,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:1320,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:1320,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:1325,1
    - Dst: run_hooks_opt
      Src: /src/git/sequencer.c:1327,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - oldoid
    - newoid
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1313
    functionDepth: 3
    functionLinenumber: 1313
    functionLinenumberEnd: 1331
    functionName: run_rewrite_hook
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - oid_to_hex
    - strbuf_addf
    - run_hooks_opt
    linkageType: ''
    returnType: int
    signature: "int run_rewrite_hook(const struct object_id *oldoid,\n\t\t\t    const
      struct object_id *newoid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_copy_notes_for_rewrite
      Src: /src/git/sequencer.c:1339,1
    - Dst: copy_note_for_rewrite
      Src: /src/git/sequencer.c:1342,1
    - Dst: finish_copy_notes_for_rewrite
      Src: /src/git/sequencer.c:1343,1
    - Dst: run_rewrite_hook
      Src: /src/git/sequencer.c:1345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - r
    - old_head
    - new_head
    argTypes:
    - struct repository*
    - struct commit*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1333
    functionDepth: 4
    functionLinenumber: 1333
    functionLinenumberEnd: 1346
    functionName: commit_post_rewrite
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - copy_note_for_rewrite
    - run_rewrite_hook
    - finish_copy_notes_for_rewrite
    - init_copy_notes_for_rewrite
    linkageType: ''
    returnType: void
    signature: "void commit_post_rewrite(struct repository *r,\n\t\t\t const struct
      commit *old_head,\n\t\t\t const struct object_id *new_head)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_path_commit_editmsg
      Src: /src/git/sequencer.c:1355,1
    - Dst: write_message
      Src: /src/git/sequencer.c:1356,1
    - Dst: run_commit_hook
      Src: /src/git/sequencer.c:1365,1
    - Dst: error
      Src: /src/git/sequencer.c:1367,1
    - Dst: _
      Src: /src/git/sequencer.c:1367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - r
    - msg
    - commit
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1348
    functionDepth: 4
    functionLinenumber: 1348
    functionLinenumberEnd: 1370
    functionName: run_prepare_commit_msg_hook
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - run_commit_hook
    - git_path_commit_editmsg
    - write_message
    - _
    linkageType: ''
    returnType: int
    signature: "int run_prepare_commit_msg_hook(struct repository *r,\n\t\t\t\t       struct
      strbuf *msg,\n\t\t\t\t       const char *commit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: interpolate_path
      Src: /src/git/sequencer.c:1399,1
    - Dst: xdg_config_home
      Src: /src/git/sequencer.c:1400,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:1401,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:1401,1
    - Dst: free
      Src: /src/git/sequencer.c:1403,1
    - Dst: free
      Src: /src/git/sequencer.c:1404,1
    - Dst: _
      Src: /src/git/sequencer.c:1407,1
    - Dst: _
      Src: /src/git/sequencer.c:1409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1397
    functionDepth: 2
    functionLinenumber: 1397
    functionLinenumberEnd: 1411
    functionName: implicit_ident_advice
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - interpolate_path
    - free
    - xdg_config_home
    - _
    - file_exists
    linkageType: ''
    returnType: char
    signature: char *implicit_ident_advice(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit
      Src: /src/git/sequencer.c:1427,1
    - Dst: die
      Src: /src/git/sequencer.c:1429,1
    - Dst: _
      Src: /src/git/sequencer.c:1429,1
    - Dst: repo_parse_commit
      Src: /src/git/sequencer.c:1430,1
    - Dst: die
      Src: /src/git/sequencer.c:1431,1
    - Dst: _
      Src: /src/git/sequencer.c:1431,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:1433,1
    - Dst: repo_format_commit_message
      Src: /src/git/sequencer.c:1435,1
    - Dst: repo_format_commit_message
      Src: /src/git/sequencer.c:1437,1
    - Dst: strbuf_cmp
      Src: /src/git/sequencer.c:1439,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:1440,1
    - Dst: strbuf_addbuf_percentquote
      Src: /src/git/sequencer.c:1441,1
    - Dst: repo_format_commit_message
      Src: /src/git/sequencer.c:1446,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:1447,1
    - Dst: strbuf_addbuf_percentquote
      Src: /src/git/sequencer.c:1448,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1449,1
    - Dst: committer_ident_sufficiently_given
      Src: /src/git/sequencer.c:1451,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:1452,1
    - Dst: strbuf_addbuf_percentquote
      Src: /src/git/sequencer.c:1453,1
    - Dst: advice_enabled
      Src: /src/git/sequencer.c:1454,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:1455,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:1456,1
    - Dst: implicit_ident_advice
      Src: /src/git/sequencer.c:1456,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1459,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1460,1
    - Dst: repo_init_revisions
      Src: /src/git/sequencer.c:1462,1
    - Dst: setup_revisions
      Src: /src/git/sequencer.c:1463,1
    - Dst: get_commit_format
      Src: /src/git/sequencer.c:1471,1
    - Dst: diff_setup_done
      Src: /src/git/sequencer.c:1474,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:1476,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/sequencer.c:1477,1
    - Dst: die
      Src: /src/git/sequencer.c:1479,1
    - Dst: _
      Src: /src/git/sequencer.c:1479,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:1480,1
    - Dst: _
      Src: /src/git/sequencer.c:1481,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:1483,1
    - Dst: printf
      Src: /src/git/sequencer.c:1484,1
    - Dst: _
      Src: /src/git/sequencer.c:1485,1
    - Dst: log_tree_commit
      Src: /src/git/sequencer.c:1487,1
    - Dst: log_tree_commit
      Src: /src/git/sequencer.c:1490,1
    - Dst: release_revisions
      Src: /src/git/sequencer.c:1493,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1494,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 4
    argNames:
    - r
    - prefix
    - oid
    - flags
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1413
    functionDepth: 12
    functionLinenumber: 1413
    functionLinenumberEnd: 1495
    functionName: print_commit_summary
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - repo_init_revisions
    - strcmp
    - printf
    - get_main_ref_store
    - log_tree_commit
    - strbuf_release
    - die
    - release_revisions
    - repo_parse_commit
    - strbuf_cmp
    - strbuf_addbuf_percentquote
    - get_commit_format
    - strbuf_addstr
    - diff_setup_done
    - committer_ident_sufficiently_given
    - _
    - setup_revisions
    - skip_prefix
    - repo_format_commit_message
    - implicit_ident_advice
    - strbuf_addch
    - lookup_commit
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: "void print_commit_summary(struct repository *r,\n\t\t\t  const char
      *prefix,\n\t\t\t  const struct object_id *oid,\n\t\t\t  unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:1502,1
    - Dst: lookup_commit_reference
      Src: /src/git/sequencer.c:1505,1
    - Dst: error
      Src: /src/git/sequencer.c:1507,1
    - Dst: _
      Src: /src/git/sequencer.c:1507,1
    - Dst: oideq
      Src: /src/git/sequencer.c:1508,1
    - Dst: warning
      Src: /src/git/sequencer.c:1509,1
    - Dst: _
      Src: /src/git/sequencer.c:1509,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:1510,1
    - Dst: repo_parse_commit
      Src: /src/git/sequencer.c:1512,1
    - Dst: error
      Src: /src/git/sequencer.c:1513,1
    - Dst: _
      Src: /src/git/sequencer.c:1513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - r
    - head
    argTypes:
    - struct repository*
    - struct commit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1497
    functionDepth: 4
    functionLinenumber: 1497
    functionLinenumberEnd: 1518
    functionName: parse_head
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - lookup_commit_reference
    - repo_get_oid
    - repo_parse_commit
    - _
    - warning
    - oideq
    linkageType: ''
    returnType: int
    signature: int parse_head(struct repository *r, struct commit **head)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: parse_head
      Src: /src/git/sequencer.c:1547,1
    - Dst: get_commit_output_encoding
      Src: /src/git/sequencer.c:1552,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/sequencer.c:1553,1
    - Dst: find_commit_subject
      Src: /src/git/sequencer.c:1559,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:1561,1
    - Dst: get_author
      Src: /src/git/sequencer.c:1564,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/sequencer.c:1565,1
    - Dst: error
      Src: /src/git/sequencer.c:1568,1
    - Dst: _
      Src: /src/git/sequencer.c:1568,1
    - Dst: commit_list_copy
      Src: /src/git/sequencer.c:1571,1
    - Dst: read_commit_extra_headers
      Src: /src/git/sequencer.c:1572,1
    - Dst: commit_list_insert
      Src: /src/git/sequencer.c:1575,1
    - Dst: write_index_as_tree
      Src: /src/git/sequencer.c:1578,1
    - Dst: error
      Src: /src/git/sequencer.c:1579,1
    - Dst: _
      Src: /src/git/sequencer.c:1579,1
    - Dst: repo_parse_commit
      Src: /src/git/sequencer.c:1589,1
    - Dst: error
      Src: /src/git/sequencer.c:1590,1
    - Dst: _
      Src: /src/git/sequencer.c:1590,1
    - Dst: oideq
      Src: /src/git/sequencer.c:1597,1
    - Dst: get_commit_tree_oid
      Src: /src/git/sequencer.c:1598,1
    - Dst: hook_exists
      Src: /src/git/sequencer.c:1606,1
    - Dst: run_prepare_commit_msg_hook
      Src: /src/git/sequencer.c:1607,1
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:1610,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/sequencer.c:1610,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:1612,1
    - Dst: _
      Src: /src/git/sequencer.c:1612,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/sequencer.c:1614,1
    - Dst: strbuf_stripspace
      Src: /src/git/sequencer.c:1629,1
    - Dst: message_is_empty
      Src: /src/git/sequencer.c:1631,1
    - Dst: split_ident_line
      Src: /src/git/sequencer.c:1641,1
    - Dst: strlen
      Src: /src/git/sequencer.c:1641,1
    - Dst: error
      Src: /src/git/sequencer.c:1642,1
    - Dst: _
      Src: /src/git/sequencer.c:1642,1
    - Dst: error
      Src: /src/git/sequencer.c:1647,1
    - Dst: _
      Src: /src/git/sequencer.c:1647,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:1651,1
    - Dst: reset_ident_date
      Src: /src/git/sequencer.c:1657,1
    - Dst: fmt_ident
      Src: /src/git/sequencer.c:1659,1
    - Dst: getenv
      Src: /src/git/sequencer.c:1659,1
    - Dst: getenv
      Src: /src/git/sequencer.c:1660,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1664,1
    - Dst: reset_ident_date
      Src: /src/git/sequencer.c:1666,1
    - Dst: split_ident_line
      Src: /src/git/sequencer.c:1673,1
    - Dst: strlen
      Src: /src/git/sequencer.c:1673,1
    - Dst: error
      Src: /src/git/sequencer.c:1674,1
    - Dst: _
      Src: /src/git/sequencer.c:1674,1
    - Dst: xmemdupz
      Src: /src/git/sequencer.c:1677,1
    - Dst: xmemdupz
      Src: /src/git/sequencer.c:1678,1
    - Dst: fmt_ident
      Src: /src/git/sequencer.c:1679,1
    - Dst: free
      Src: /src/git/sequencer.c:1681,1
    - Dst: free
      Src: /src/git/sequencer.c:1682,1
    - Dst: commit_tree_extended
      Src: /src/git/sequencer.c:1685,1
    - Dst: error
      Src: /src/git/sequencer.c:1687,1
    - Dst: _
      Src: /src/git/sequencer.c:1687,1
    - Dst: update_head_with_reflog
      Src: /src/git/sequencer.c:1691,1
    - Dst: error
      Src: /src/git/sequencer.c:1693,1
    - Dst: run_commit_hook
      Src: /src/git/sequencer.c:1697,1
    - Dst: commit_post_rewrite
      Src: /src/git/sequencer.c:1699,1
    - Dst: free_commit_extra_headers
      Src: /src/git/sequencer.c:1702,1
    - Dst: commit_list_free
      Src: /src/git/sequencer.c:1703,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1704,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1705,1
    - Dst: free
      Src: /src/git/sequencer.c:1706,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 125
    argCount: 7
    argNames:
    - r
    - msg
    - author
    - reflog_action
    - opts
    - flags
    - oid
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    - char*
    - struct replay_opts*
    - unsigned int
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1529
    functionDepth: 14
    functionLinenumber: 1529
    functionLinenumberEnd: 1709
    functionName: try_to_commit
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error_errno
    - xmemdupz
    - fmt_ident
    - commit_tree_extended
    - strbuf_addf
    - git_path_commit_editmsg
    - get_commit_output_encoding
    - free
    - parse_head
    - reset_ident_date
    - error
    - strbuf_release
    - find_commit_subject
    - run_commit_hook
    - repo_parse_commit
    - strbuf_addstr
    - read_commit_extra_headers
    - write_index_as_tree
    - split_ident_line
    - strbuf_stripspace
    - message_is_empty
    - strbuf_read_file
    - repo_unuse_commit_buffer
    - free_commit_extra_headers
    - repo_logmsg_reencode
    - _
    - commit_list_copy
    - commit_post_rewrite
    - get_author
    - update_head_with_reflog
    - hook_exists
    - get_commit_tree_oid
    - strlen
    - commit_list_free
    - run_prepare_commit_msg_hook
    - getenv
    - commit_list_insert
    - oideq
    linkageType: ''
    returnType: int
    signature: "int try_to_commit(struct repository *r,\n\t\t\t struct strbuf *msg,
      const char *author,\n\t\t\t const char *reflog_action,\n\t\t\t struct replay_opts
      *opts, unsigned int flags,\n\t\t\t struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refs_update_ref
      Src: /src/git/sequencer.c:1713,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:1713,1
    - Dst: error
      Src: /src/git/sequencer.c:1715,1
    - Dst: _
      Src: /src/git/sequencer.c:1715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1711
    functionDepth: 7
    functionLinenumber: 1711
    functionLinenumberEnd: 1718
    functionName: write_rebase_head
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - refs_update_ref
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int write_rebase_head(struct object_id *oid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:1732,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:1733,1
    - Dst: _
      Src: /src/git/sequencer.c:1733,1
    - Dst: try_to_commit
      Src: /src/git/sequencer.c:1737,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1739,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:1741,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:1741,1
    - Dst: unlink
      Src: /src/git/sequencer.c:1743,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:1743,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:1744,1
    - Dst: print_commit_summary
      Src: /src/git/sequencer.c:1745,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:1751,1
    - Dst: write_rebase_head
      Src: /src/git/sequencer.c:1752,1
    - Dst: run_git_commit
      Src: /src/git/sequencer.c:1754,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 7
    argNames:
    - r
    - msg_file
    - author
    - reflog_action
    - opts
    - flags
    - oid
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - struct replay_opts*
    - unsigned int
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1720
    functionDepth: 15
    functionLinenumber: 1720
    functionLinenumberEnd: 1758
    functionName: do_commit
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - refs_delete_ref
    - git_path_merge_msg
    - print_commit_summary
    - strbuf_read_file
    - try_to_commit
    - is_rebase_i
    - unlink
    - write_rebase_head
    - run_git_commit
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int do_commit(struct repository *r,\n\t\t     const char *msg_file,
      const char *author,\n\t\t     const char *reflog_action,\n\t\t     struct replay_opts
      *opts, unsigned int flags,\n\t\t     struct object_id *oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/sequencer.c:1764,1
    - Dst: error
      Src: /src/git/sequencer.c:1765,1
    - Dst: _
      Src: /src/git/sequencer.c:1765,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:1766,1
    - Dst: repo_parse_commit
      Src: /src/git/sequencer.c:1769,1
    - Dst: error
      Src: /src/git/sequencer.c:1770,1
    - Dst: _
      Src: /src/git/sequencer.c:1770,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:1771,1
    - Dst: get_commit_tree_oid
      Src: /src/git/sequencer.c:1772,1
    - Dst: oideq
      Src: /src/git/sequencer.c:1777,1
    - Dst: get_commit_tree_oid
      Src: /src/git/sequencer.c:1777,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1760
    functionDepth: 3
    functionLinenumber: 1760
    functionLinenumberEnd: 1778
    functionName: is_original_commit_empty
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - repo_parse_commit
    - get_commit_tree_oid
    - _
    - oideq
    linkageType: ''
    returnType: int
    signature: int is_original_commit_empty(struct commit *commit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_index_unchanged
      Src: /src/git/sequencer.c:1801,1
    - Dst: is_original_commit_empty
      Src: /src/git/sequencer.c:1807,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - r
    - opts
    - commit
    argTypes:
    - struct repository*
    - struct replay_opts*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1787
    functionDepth: 7
    functionLinenumber: 1787
    functionLinenumberEnd: 1818
    functionName: allow_empty
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - is_original_commit_empty
    - is_index_unchanged
    linkageType: ''
    returnType: int
    signature: "int allow_empty(struct repository *r,\n\t\t       struct replay_opts
      *opts,\n\t\t       struct commit *commit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/sequencer.c:1847,1
    - Dst: _
      Src: /src/git/sequencer.c:1847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - command
    argTypes:
    - enum todo_command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1841
    functionDepth: 0
    functionLinenumber: 1841
    functionLinenumberEnd: 1848
    functionName: command_to_string
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: char
    signature: char *command_to_string(const enum todo_command command)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - command
    argTypes:
    - enum todo_command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1850
    functionDepth: 0
    functionLinenumber: 1850
    functionLinenumberEnd: 1855
    functionName: command_to_char
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char command_to_char(const enum todo_command command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - command
    argTypes:
    - enum todo_command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1857
    functionDepth: 0
    functionLinenumber: 1857
    functionLinenumberEnd: 1860
    functionName: is_noop
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_noop(const enum todo_command command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - command
    argTypes:
    - enum todo_command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1862
    functionDepth: 0
    functionLinenumber: 1862
    functionLinenumberEnd: 1865
    functionName: is_fixup
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_fixup(enum todo_command command)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - command
    argTypes:
    - enum todo_command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1868
    functionDepth: 0
    functionLinenumber: 1868
    functionLinenumberEnd: 1881
    functionName: is_pick_or_similar
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_pick_or_similar(enum todo_command command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - command
    - flag
    argTypes:
    - enum todo_command
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1895
    functionDepth: 0
    functionLinenumber: 1895
    functionLinenumberEnd: 1899
    functionName: is_fixup_flag
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_fixup_flag(enum todo_command command, unsigned flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with_mem
      Src: /src/git/sequencer.c:1908,1
    - Dst: memchr
      Src: /src/git/sequencer.c:1910,1
    - Dst: strbuf_add
      Src: /src/git/sequencer.c:1915,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/sequencer.c:1919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - str
    - len
    argTypes:
    - struct strbuf*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1905
    functionDepth: 5
    functionLinenumber: 1905
    functionLinenumberEnd: 1920
    functionName: add_commented_lines
    functionSourceFile: /src/git/sequencer.c
    functionUses: 2
    functionsReached:
    - strbuf_add_commented_lines
    - memchr
    - starts_with_mem
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void add_commented_lines(struct strbuf *buf, const void *str, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/sequencer.c:1925,1
    - Dst: strstr
      Src: /src/git/sequencer.c:1926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct replay_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1927
    functionName: seen_squash
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strstr
    - starts_with
    linkageType: ''
    returnType: int
    signature: int seen_squash(struct replay_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/sequencer.c:1931,1
    - Dst: strlen
      Src: /src/git/sequencer.c:1931,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:1932,1
    - Dst: _
      Src: /src/git/sequencer.c:1932,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:1933,1
    - Dst: strbuf_setlen
      Src: /src/git/sequencer.c:1934,1
    - Dst: strlen
      Src: /src/git/sequencer.c:1934,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:1935,1
    - Dst: _
      Src: /src/git/sequencer.c:1935,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:1936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - buf1
    - buf2
    - n
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1929
    functionDepth: 2
    functionLinenumber: 1929
    functionLinenumberEnd: 1937
    functionName: update_comment_bufs
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_setlen
    - strbuf_addch
    - strlen
    - _
    linkageType: ''
    returnType: void
    signature: void update_comment_bufs(struct strbuf *buf1, struct strbuf *buf2,
      int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_commented_lines
      Src: /src/git/sequencer.c:1953,1
    - Dst: _
      Src: /src/git/sequencer.c:1953,1
    - Dst: strlen
      Src: /src/git/sequencer.c:1954,1
    - Dst: _
      Src: /src/git/sequencer.c:1954,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/sequencer.c:1956,1
    - Dst: _
      Src: /src/git/sequencer.c:1956,1
    - Dst: strlen
      Src: /src/git/sequencer.c:1957,1
    - Dst: _
      Src: /src/git/sequencer.c:1957,1
    - Dst: strbuf_detach
      Src: /src/git/sequencer.c:1959,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:1963,1
    - Dst: copy_lines
      Src: /src/git/sequencer.c:1969,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:1971,1
    - Dst: strbuf_addbuf
      Src: /src/git/sequencer.c:1977,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:1979,1
    - Dst: update_comment_bufs
      Src: /src/git/sequencer.c:1982,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:1983,1
    - Dst: copy_lines
      Src: /src/git/sequencer.c:1985,1
    - Dst: update_comment_bufs
      Src: /src/git/sequencer.c:1989,1
    - Dst: strchr
      Src: /src/git/sequencer.c:1991,1
    - Dst: copy_lines
      Src: /src/git/sequencer.c:1996,1
    - Dst: free
      Src: /src/git/sequencer.c:1997,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1998,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:1999,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1944
    functionDepth: 5
    functionLinenumber: 1944
    functionLinenumberEnd: 2000
    functionName: update_squash_message_for_fixup
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_add_commented_lines
    - strbuf_release
    - strchr
    - strbuf_addch
    - strlen
    - copy_lines
    - strbuf_addbuf
    - strbuf_detach
    - update_comment_bufs
    - _
    - free
    - skip_prefix
    linkageType: ''
    returnType: void
    signature: void update_squash_message_for_fixup(struct strbuf *msg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/sequencer.c:2014,1
    - Dst: seen_squash
      Src: /src/git/sequencer.c:2015,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:2016,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:2016,1
    - Dst: commit_subject_length
      Src: /src/git/sequencer.c:2017,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2019,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2020,1
    - Dst: _
      Src: /src/git/sequencer.c:2020,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2022,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/sequencer.c:2023,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2026,1
    - Dst: is_fixup_flag
      Src: /src/git/sequencer.c:2029,1
    - Dst: seen_squash
      Src: /src/git/sequencer.c:2029,1
    - Dst: append_signoff
      Src: /src/git/sequencer.c:2036,1
    - Dst: amend_strbuf_with_trailers
      Src: /src/git/sequencer.c:2039,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:2043,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:2043,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:2044,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:2044,1
    - Dst: skip_blank_lines
      Src: /src/git/sequencer.c:2045,1
    - Dst: write_message
      Src: /src/git/sequencer.c:2046,1
    - Dst: strlen
      Src: /src/git/sequencer.c:2046,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:2047,1
    - Dst: error
      Src: /src/git/sequencer.c:2048,1
    - Dst: _
      Src: /src/git/sequencer.c:2048,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:2049,1
    - Dst: unlink
      Src: /src/git/sequencer.c:2051,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:2051,1
    - Dst: unlink
      Src: /src/git/sequencer.c:2054,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:2054,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 5
    argNames:
    - buf
    - body
    - command
    - opts
    - flag
    argTypes:
    - struct strbuf*
    - char*
    - enum todo_command
    - struct replay_opts*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2002
    functionDepth: 5
    functionLinenumber: 2002
    functionLinenumberEnd: 2058
    functionName: append_squash_message
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - seen_squash
    - error
    - strbuf_add_commented_lines
    - append_signoff
    - skip_blank_lines
    - is_fixup_flag
    - rebase_path_fixup_msg
    - amend_strbuf_with_trailers
    - strbuf_addf
    - rebase_path_squash_msg
    - starts_with
    - strlen
    - write_message
    - strbuf_addstr
    - _
    - file_exists
    - unlink
    - commit_subject_length
    linkageType: ''
    returnType: int
    signature: "int append_squash_message(struct strbuf *buf, const char *body,\n\t\t\t
      enum todo_command command, struct replay_opts *opts,\n\t\t\t unsigned flag)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_output_encoding
      Src: /src/git/sequencer.c:2070,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:2072,1
    - Dst: BUG
      Src: /src/git/sequencer.c:2073,1
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:2079,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:2079,1
    - Dst: error
      Src: /src/git/sequencer.c:2080,1
    - Dst: _
      Src: /src/git/sequencer.c:2080,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:2081,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:2083,1
    - Dst: strchrnul
      Src: /src/git/sequencer.c:2084,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2086,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2087,1
    - Dst: _
      Src: /src/git/sequencer.c:2087,1
    - Dst: strbuf_splice
      Src: /src/git/sequencer.c:2089,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:2090,1
    - Dst: is_fixup_flag
      Src: /src/git/sequencer.c:2091,1
    - Dst: seen_squash
      Src: /src/git/sequencer.c:2091,1
    - Dst: update_squash_message_for_fixup
      Src: /src/git/sequencer.c:2092,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:2098,1
    - Dst: error
      Src: /src/git/sequencer.c:2099,1
    - Dst: _
      Src: /src/git/sequencer.c:2099,1
    - Dst: lookup_commit_reference
      Src: /src/git/sequencer.c:2100,1
    - Dst: error
      Src: /src/git/sequencer.c:2101,1
    - Dst: _
      Src: /src/git/sequencer.c:2101,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/sequencer.c:2102,1
    - Dst: error
      Src: /src/git/sequencer.c:2104,1
    - Dst: _
      Src: /src/git/sequencer.c:2104,1
    - Dst: find_commit_subject
      Src: /src/git/sequencer.c:2106,1
    - Dst: write_message
      Src: /src/git/sequencer.c:2107,1
    - Dst: strlen
      Src: /src/git/sequencer.c:2107,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:2108,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/sequencer.c:2109,1
    - Dst: error
      Src: /src/git/sequencer.c:2110,1
    - Dst: _
      Src: /src/git/sequencer.c:2110,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:2110,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2112,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2113,1
    - Dst: _
      Src: /src/git/sequencer.c:2113,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2114,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2115,1
    - Dst: is_fixup_flag
      Src: /src/git/sequencer.c:2115,1
    - Dst: _
      Src: /src/git/sequencer.c:2116,1
    - Dst: _
      Src: /src/git/sequencer.c:2117,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2118,1
    - Dst: is_fixup_flag
      Src: /src/git/sequencer.c:2119,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/sequencer.c:2120,1
    - Dst: strlen
      Src: /src/git/sequencer.c:2120,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2123,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/sequencer.c:2125,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/sequencer.c:2128,1
    - Dst: error
      Src: /src/git/sequencer.c:2129,1
    - Dst: _
      Src: /src/git/sequencer.c:2129,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2130,1
    - Dst: find_commit_subject
      Src: /src/git/sequencer.c:2131,1
    - Dst: is_fixup_flag
      Src: /src/git/sequencer.c:2133,1
    - Dst: append_squash_message
      Src: /src/git/sequencer.c:2134,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2136,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2137,1
    - Dst: _
      Src: /src/git/sequencer.c:2137,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2139,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/sequencer.c:2140,1
    - Dst: strlen
      Src: /src/git/sequencer.c:2140,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/sequencer.c:2143,1
    - Dst: write_message
      Src: /src/git/sequencer.c:2146,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:2146,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:2148,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2151,1
    - Dst: command_to_string
      Src: /src/git/sequencer.c:2153,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2154,1
    - Dst: write_message
      Src: /src/git/sequencer.c:2155,1
    - Dst: rebase_path_current_fixups
      Src: /src/git/sequencer.c:2157,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 5
    argNames:
    - r
    - command
    - commit
    - opts
    - flag
    argTypes:
    - struct repository*
    - enum todo_command
    - struct commit*
    - struct replay_opts*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2060
    functionDepth: 6
    functionLinenumber: 2060
    functionLinenumberEnd: 2161
    functionName: update_squash_messages
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - BUG
    - rebase_path_current_fixups
    - repo_get_oid
    - strbuf_addf
    - strbuf_splice
    - get_commit_output_encoding
    - rebase_path_squash_msg
    - error
    - strbuf_release
    - find_commit_subject
    - lookup_commit_reference
    - strbuf_addstr
    - strchrnul
    - strbuf_add_commented_lines
    - oid_to_hex
    - update_squash_message_for_fixup
    - rebase_path_fixup_msg
    - strbuf_read_file
    - repo_unuse_commit_buffer
    - command_to_string
    - repo_logmsg_reencode
    - write_message
    - _
    - append_squash_message
    - seen_squash
    - starts_with
    - strlen
    - is_fixup
    - is_fixup_flag
    linkageType: ''
    returnType: int
    signature: "int update_squash_messages(struct repository *r,\n\t\t\t\t  enum todo_command
      command,\n\t\t\t\t  struct commit *commit,\n\t\t\t\t  struct replay_opts *opts,\n\t\t\t\t
      \ unsigned flag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:2169,1
    - Dst: rebase_path_rewritten_pending
      Src: /src/git/sequencer.c:2169,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:2170,1
    - Dst: fopen_or_warn
      Src: /src/git/sequencer.c:2171,1
    - Dst: rebase_path_rewritten_list
      Src: /src/git/sequencer.c:2171,1
    - Dst: strchrnul
      Src: /src/git/sequencer.c:2175,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:2176,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2177,1
    - Dst: fclose
      Src: /src/git/sequencer.c:2182,1
    - Dst: unlink
      Src: /src/git/sequencer.c:2183,1
    - Dst: rebase_path_rewritten_pending
      Src: /src/git/sequencer.c:2183,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:2185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2163
    functionDepth: 5
    functionLinenumber: 2163
    functionLinenumberEnd: 2186
    functionName: flush_rewritten_pending
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - rebase_path_rewritten_pending
    - fclose
    - strbuf_release
    - oid_to_hex
    - repo_get_oid
    - strbuf_read_file
    - rebase_path_rewritten_list
    - fopen_or_warn
    - strchrnul
    - fprintf
    - unlink
    linkageType: ''
    returnType: void
    signature: void flush_rewritten_pending(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen_or_warn
      Src: /src/git/sequencer.c:2191,1
    - Dst: rebase_path_rewritten_pending
      Src: /src/git/sequencer.c:2191,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:2196,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2196,1
    - Dst: fclose
      Src: /src/git/sequencer.c:2197,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:2199,1
    - Dst: flush_rewritten_pending
      Src: /src/git/sequencer.c:2200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - oid
    - next_command
    argTypes:
    - struct object_id*
    - enum todo_command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2188
    functionDepth: 6
    functionLinenumber: 2188
    functionLinenumberEnd: 2201
    functionName: record_in_rewritten
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - rebase_path_rewritten_pending
    - fclose
    - oid_to_hex
    - fopen_or_warn
    - flush_rewritten_pending
    - is_fixup
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void record_in_rewritten(struct object_id *oid,\n\t\tenum todo_command
      next_command)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/sequencer.c:2210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2212
    functionName: should_edit
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - isatty
    linkageType: ''
    returnType: int
    signature: int should_edit(struct replay_opts *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_format_commit_message
      Src: /src/git/sequencer.c:2223,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2226,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - r
    - msgbuf
    - commit
    - use_commit_reference
    argTypes:
    - struct repository*
    - struct strbuf*
    - struct commit*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2214
    functionDepth: 3
    functionLinenumber: 2214
    functionLinenumberEnd: 2228
    functionName: refer_to_commit
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - oid_to_hex
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void refer_to_commit(struct repository *r, struct strbuf *msgbuf,\n\t\t\t
      \   const struct commit *commit,\n\t\t\t    bool use_commit_reference)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/sequencer.c:2233,1
    - Dst: xstrdup
      Src: /src/git/sequencer.c:2235,1
    - Dst: action_name
      Src: /src/git/sequencer.c:2236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2240
    functionName: sequencer_reflog_action
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - getenv
    - action_name
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *sequencer_reflog_action(struct replay_opts *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/sequencer.c:2242,1
    - Dst: va_start
      Src: /src/git/sequencer.c:2249,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:2250,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2251,1
    - Dst: sequencer_reflog_action
      Src: /src/git/sequencer.c:2251,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:2253,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2255,1
    - Dst: strbuf_vaddf
      Src: /src/git/sequencer.c:2256,1
    - Dst: va_end
      Src: /src/git/sequencer.c:2258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - opts
    - sub_action
    - fmt
    argTypes:
    - struct replay_opts*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2242
    functionDepth: 3
    functionLinenumber: 2242
    functionLinenumberEnd: 2261
    functionName: reflog_message
    functionSourceFile: /src/git/sequencer.c
    functionUses: 5
    functionsReached:
    - strbuf_vaddf
    - strbuf_reset
    - strbuf_addf
    - sequencer_reflog_action
    - va_end
    - strbuf_addstr
    - va_start
    - format
    linkageType: ''
    returnType: char
    signature: "char *reflog_message(struct replay_opts *opts,\n\tconst char *sub_action,
      const char *fmt, ...)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: should_edit
      Src: /src/git/sequencer.c:2269,1
    - Dst: should_edit
      Src: /src/git/sequencer.c:2270,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:2270,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:2280,1
    - Dst: reflog_message
      Src: /src/git/sequencer.c:2281,1
    - Dst: command_to_string
      Src: /src/git/sequencer.c:2282,1
    - Dst: sequencer_reflog_action
      Src: /src/git/sequencer.c:2284,1
    - Dst: write_index_as_tree
      Src: /src/git/sequencer.c:2293,1
    - Dst: error
      Src: /src/git/sequencer.c:2294,1
    - Dst: _
      Src: /src/git/sequencer.c:2294,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:2296,1
    - Dst: is_pick_or_similar
      Src: /src/git/sequencer.c:2298,1
    - Dst: oideq
      Src: /src/git/sequencer.c:2299,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:2300,1
    - Dst: error
      Src: /src/git/sequencer.c:2301,1
    - Dst: _
      Src: /src/git/sequencer.c:2301,1
    - Dst: oidcpy
      Src: /src/git/sequencer.c:2305,1
    - Dst: index_differs_from
      Src: /src/git/sequencer.c:2306,1
    - Dst: empty_tree_oid_hex
      Src: /src/git/sequencer.c:2306,1
    - Dst: error_dirty_index
      Src: /src/git/sequencer.c:2308,1
    - Dst: discard_index
      Src: /src/git/sequencer.c:2310,1
    - Dst: error
      Src: /src/git/sequencer.c:2320,1
    - Dst: _
      Src: /src/git/sequencer.c:2320,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2321,1
    - Dst: error
      Src: /src/git/sequencer.c:2328,1
    - Dst: _
      Src: /src/git/sequencer.c:2328,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2329,1
    - Dst: error
      Src: /src/git/sequencer.c:2336,1
    - Dst: _
      Src: /src/git/sequencer.c:2336,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2337,1
    - Dst: get_message
      Src: /src/git/sequencer.c:2341,1
    - Dst: error
      Src: /src/git/sequencer.c:2342,1
    - Dst: _
      Src: /src/git/sequencer.c:2342,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2343,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:2345,1
    - Dst: oideq
      Src: /src/git/sequencer.c:2346,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:2348,1
    - Dst: write_author_script
      Src: /src/git/sequencer.c:2349,1
    - Dst: fast_forward_to
      Src: /src/git/sequencer.c:2350,1
    - Dst: repo_parse_commit
      Src: /src/git/sequencer.c:2358,1
    - Dst: error
      Src: /src/git/sequencer.c:2361,1
    - Dst: _
      Src: /src/git/sequencer.c:2361,1
    - Dst: command_to_string
      Src: /src/git/sequencer.c:2362,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2363,1
    - Dst: sequencer_format_revert_message
      Src: /src/git/sequencer.c:2377,1
    - Dst: find_commit_subject
      Src: /src/git/sequencer.c:2390,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2391,1
    - Dst: strbuf_complete_line
      Src: /src/git/sequencer.c:2394,1
    - Dst: has_conforming_footer
      Src: /src/git/sequencer.c:2395,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:2396,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2397,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2398,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2398,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:2399,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:2401,1
    - Dst: get_author
      Src: /src/git/sequencer.c:2402,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:2408,1
    - Dst: update_squash_messages
      Src: /src/git/sequencer.c:2409,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:2416,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:2417,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:2417,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:2418,1
    - Dst: git_path_squash_msg
      Src: /src/git/sequencer.c:2420,1
    - Dst: unlink
      Src: /src/git/sequencer.c:2421,1
    - Dst: copy_file
      Src: /src/git/sequencer.c:2422,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:2422,1
    - Dst: error
      Src: /src/git/sequencer.c:2423,1
    - Dst: _
      Src: /src/git/sequencer.c:2423,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:2424,1
    - Dst: unlink
      Src: /src/git/sequencer.c:2427,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:2427,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:2433,1
    - Dst: append_signoff
      Src: /src/git/sequencer.c:2434,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:2436,1
    - Dst: amend_strbuf_with_trailers
      Src: /src/git/sequencer.c:2437,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:2439,1
    - Dst: write_author_script
      Src: /src/git/sequencer.c:2439,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:2442,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:2443,1
    - Dst: do_recursive_merge
      Src: /src/git/sequencer.c:2445,1
    - Dst: write_message
      Src: /src/git/sequencer.c:2450,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:2451,1
    - Dst: write_message
      Src: /src/git/sequencer.c:2456,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:2457,1
    - Dst: commit_list_insert
      Src: /src/git/sequencer.c:2459,1
    - Dst: commit_list_insert
      Src: /src/git/sequencer.c:2460,1
    - Dst: try_merge_command
      Src: /src/git/sequencer.c:2461,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2463,1
    - Dst: commit_list_free
      Src: /src/git/sequencer.c:2464,1
    - Dst: commit_list_free
      Src: /src/git/sequencer.c:2465,1
    - Dst: refs_update_ref
      Src: /src/git/sequencer.c:2477,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:2477,1
    - Dst: refs_update_ref
      Src: /src/git/sequencer.c:2481,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:2481,1
    - Dst: error
      Src: /src/git/sequencer.c:2486,1
    - Dst: _
      Src: /src/git/sequencer.c:2487,1
    - Dst: _
      Src: /src/git/sequencer.c:2488,1
    - Dst: short_commit_name
      Src: /src/git/sequencer.c:2489,1
    - Dst: print_advice
      Src: /src/git/sequencer.c:2490,1
    - Dst: repo_rerere
      Src: /src/git/sequencer.c:2491,1
    - Dst: allow_empty
      Src: /src/git/sequencer.c:2496,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:2504,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:2504,1
    - Dst: unlink
      Src: /src/git/sequencer.c:2506,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:2506,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:2507,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:2507,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:2509,1
    - Dst: _
      Src: /src/git/sequencer.c:2510,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:2511,1
    - Dst: do_commit
      Src: /src/git/sequencer.c:2515,1
    - Dst: error
      Src: /src/git/sequencer.c:2519,1
    - Dst: _
      Src: /src/git/sequencer.c:2519,1
    - Dst: run_git_commit
      Src: /src/git/sequencer.c:2531,1
    - Dst: unlink
      Src: /src/git/sequencer.c:2538,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:2538,1
    - Dst: unlink
      Src: /src/git/sequencer.c:2539,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:2539,1
    - Dst: unlink
      Src: /src/git/sequencer.c:2540,1
    - Dst: rebase_path_current_fixups
      Src: /src/git/sequencer.c:2540,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:2541,1
    - Dst: free_message
      Src: /src/git/sequencer.c:2546,1
    - Dst: free
      Src: /src/git/sequencer.c:2547,1
    - Dst: update_abort_safety_file
      Src: /src/git/sequencer.c:2548,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 175
    argCount: 5
    argNames:
    - r
    - item
    - opts
    - final_fixup
    - check_todo
    argTypes:
    - struct repository*
    - struct todo_item*
    - struct replay_opts*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2263
    functionDepth: 21
    functionLinenumber: 2263
    functionLinenumberEnd: 2551
    functionName: do_pick_commit
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - update_squash_messages
    - oidcpy
    - rebase_path_current_fixups
    - repo_get_oid
    - do_recursive_merge
    - empty_tree_oid_hex
    - file_exists
    - is_pick_or_similar
    - strcmp
    - allow_empty
    - should_edit
    - free
    - discard_index
    - error
    - rebase_path_squash_msg
    - reflog_message
    - get_main_ref_store
    - find_commit_subject
    - append_signoff
    - short_commit_name
    - update_abort_safety_file
    - git_path_squash_msg
    - repo_rerere
    - repo_parse_commit
    - amend_strbuf_with_trailers
    - sequencer_reflog_action
    - refs_update_ref
    - strbuf_addstr
    - error_dirty_index
    - write_index_as_tree
    - run_git_commit
    - unlink
    - get_message
    - sequencer_format_revert_message
    - oid_to_hex
    - refs_delete_ref
    - write_author_script
    - rebase_path_fixup_msg
    - print_advice
    - command_to_string
    - fast_forward_to
    - has_conforming_footer
    - write_message
    - do_commit
    - _
    - is_rebase_i
    - git_path_merge_msg
    - get_author
    - strbuf_complete_line
    - try_merge_command
    - strbuf_reset
    - strbuf_addch
    - commit_list_free
    - copy_file
    - free_message
    - index_differs_from
    - commit_list_insert
    - is_fixup
    - fprintf
    - oideq
    linkageType: ''
    returnType: int
    signature: "int do_pick_commit(struct repository *r,\n\t\t\t  struct todo_item
      *item,\n\t\t\t  struct replay_opts *opts,\n\t\t\t  int final_fixup, int *check_todo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_revision_walk
      Src: /src/git/sequencer.c:2562,1
    - Dst: error
      Src: /src/git/sequencer.c:2563,1
    - Dst: _
      Src: /src/git/sequencer.c:2563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2553
    functionDepth: 11
    functionLinenumber: 2553
    functionLinenumberEnd: 2566
    functionName: prepare_revs
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - prepare_revision_walk
    - _
    linkageType: ''
    returnType: int
    signature: int prepare_revs(struct replay_opts *opts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_hold_locked_index
      Src: /src/git/sequencer.c:2572,1
    - Dst: repo_read_index
      Src: /src/git/sequencer.c:2573,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:2574,1
    - Dst: error
      Src: /src/git/sequencer.c:2575,1
    - Dst: _
      Src: /src/git/sequencer.c:2575,1
    - Dst: action_name
      Src: /src/git/sequencer.c:2576,1
    - Dst: refresh_index
      Src: /src/git/sequencer.c:2578,1
    - Dst: write_locked_index
      Src: /src/git/sequencer.c:2581,1
    - Dst: error
      Src: /src/git/sequencer.c:2583,1
    - Dst: _
      Src: /src/git/sequencer.c:2583,1
    - Dst: action_name
      Src: /src/git/sequencer.c:2584,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:2592,1
    - Dst: ensure_full_index
      Src: /src/git/sequencer.c:2593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - r
    - opts
    argTypes:
    - struct repository*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2568
    functionDepth: 13
    functionLinenumber: 2568
    functionLinenumberEnd: 2595
    functionName: read_and_refresh_cache
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - ensure_full_index
    - repo_read_index
    - write_locked_index
    - repo_hold_locked_index
    - rollback_lock_file
    - strcmp
    - _
    - refresh_index
    - action_name
    linkageType: ''
    returnType: int
    signature: "int read_and_refresh_cache(struct repository *r,\n\t\t\t\t  struct
      replay_opts *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:2599,1
    - Dst: FREE_AND_NULL
      Src: /src/git/sequencer.c:2600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - todo_list
    argTypes:
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2597
    functionDepth: 3
    functionLinenumber: 2597
    functionLinenumberEnd: 2602
    functionName: todo_list_release
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void todo_list_release(struct todo_list *todo_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/sequencer.c:2606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - todo_list
    argTypes:
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2604
    functionDepth: 1
    functionLinenumber: 2604
    functionLinenumberEnd: 2608
    functionName: append_new_todo
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: struct todo_item
    signature: struct todo_item *append_new_todo(struct todo_list *todo_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - todo_list
    - item
    argTypes:
    - struct todo_list*
    - struct todo_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2610
    functionDepth: 0
    functionLinenumber: 2610
    functionLinenumberEnd: 2614
    functionName: todo_item_get_arg
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *todo_item_get_arg(struct todo_list *todo_list,\n\t\t\t      struct
      todo_item *item)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:2622,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - command
    - bol
    argTypes:
    - enum todo_command
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2616
    functionDepth: 1
    functionLinenumber: 2616
    functionLinenumberEnd: 2628
    functionName: is_command
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int is_command(enum todo_command command, const char **bol)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/sequencer.c:2638,1
    - Dst: check_refname_format
      Src: /src/git/sequencer.c:2639,1
    - Dst: error
      Src: /src/git/sequencer.c:2640,1
    - Dst: _
      Src: /src/git/sequencer.c:2640,1
    - Dst: check_refname_format
      Src: /src/git/sequencer.c:2644,1
    - Dst: error
      Src: /src/git/sequencer.c:2645,1
    - Dst: _
      Src: /src/git/sequencer.c:2645,1
    - Dst: check_refname_format
      Src: /src/git/sequencer.c:2646,1
    - Dst: error
      Src: /src/git/sequencer.c:2647,1
    - Dst: _
      Src: /src/git/sequencer.c:2647,1
    - Dst: BUG
      Src: /src/git/sequencer.c:2652,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - command
    - arg
    argTypes:
    - enum todo_command
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2630
    functionDepth: 4
    functionLinenumber: 2630
    functionLinenumberEnd: 2656
    functionName: check_label_or_ref_arg
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - strcmp
    - check_refname_format
    - _
    - BUG
    linkageType: ''
    returnType: int
    signature: int check_label_or_ref_arg(enum todo_command command, const char *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/sequencer.c:2662,1
    - Dst: _
      Src: /src/git/sequencer.c:2662,1
    - Dst: advise_if_enabled
      Src: /src/git/sequencer.c:2664,1
    - Dst: _
      Src: /src/git/sequencer.c:2664,1
    - Dst: error
      Src: /src/git/sequencer.c:2674,1
    - Dst: _
      Src: /src/git/sequencer.c:2674,1
    - Dst: advise_if_enabled
      Src: /src/git/sequencer.c:2676,1
    - Dst: _
      Src: /src/git/sequencer.c:2676,1
    - Dst: error
      Src: /src/git/sequencer.c:2687,1
    - Dst: _
      Src: /src/git/sequencer.c:2687,1
    - Dst: advise_if_enabled
      Src: /src/git/sequencer.c:2689,1
    - Dst: _
      Src: /src/git/sequencer.c:2689,1
    - Dst: error
      Src: /src/git/sequencer.c:2702,1
    - Dst: _
      Src: /src/git/sequencer.c:2702,1
    - Dst: BUG
      Src: /src/git/sequencer.c:2709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - command
    argTypes:
    - enum todo_command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2658
    functionDepth: 1
    functionLinenumber: 2658
    functionLinenumberEnd: 2711
    functionName: check_merge_commit_insn
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - advise_if_enabled
    - BUG
    - _
    linkageType: ''
    returnType: int
    signature: int check_merge_commit_insn(enum todo_command command)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/git/sequencer.c:2724,1
    - Dst: starts_with_mem
      Src: /src/git/sequencer.c:2726,1
    - Dst: is_command
      Src: /src/git/sequencer.c:2735,1
    - Dst: error
      Src: /src/git/sequencer.c:2740,1
    - Dst: _
      Src: /src/git/sequencer.c:2740,1
    - Dst: strcspn
      Src: /src/git/sequencer.c:2741,1
    - Dst: strspn
      Src: /src/git/sequencer.c:2744,1
    - Dst: error
      Src: /src/git/sequencer.c:2749,1
    - Dst: _
      Src: /src/git/sequencer.c:2749,1
    - Dst: command_to_string
      Src: /src/git/sequencer.c:2750,1
    - Dst: error
      Src: /src/git/sequencer.c:2758,1
    - Dst: _
      Src: /src/git/sequencer.c:2758,1
    - Dst: command_to_string
      Src: /src/git/sequencer.c:2759,1
    - Dst: check_label_or_ref_arg
      Src: /src/git/sequencer.c:2772,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:2779,1
    - Dst: strspn
      Src: /src/git/sequencer.c:2780,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:2782,1
    - Dst: strspn
      Src: /src/git/sequencer.c:2783,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:2789,1
    - Dst: strspn
      Src: /src/git/sequencer.c:2790,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:2791,1
    - Dst: strspn
      Src: /src/git/sequencer.c:2792,1
    - Dst: strcspn
      Src: /src/git/sequencer.c:2803,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:2806,1
    - Dst: error
      Src: /src/git/sequencer.c:2808,1
    - Dst: _
      Src: /src/git/sequencer.c:2808,1
    - Dst: strspn
      Src: /src/git/sequencer.c:2811,1
    - Dst: lookup_commit_reference
      Src: /src/git/sequencer.c:2818,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:2821,1
    - Dst: check_merge_commit_insn
      Src: /src/git/sequencer.c:2823,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 83
    argCount: 6
    argNames:
    - r
    - opts
    - item
    - buf
    - bol
    - eol
    argTypes:
    - struct repository*
    - struct replay_opts*
    - struct todo_item*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2713
    functionDepth: 5
    functionLinenumber: 2713
    functionLinenumberEnd: 2825
    functionName: parse_insn_line
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - is_command
    - lookup_commit_reference
    - check_merge_commit_insn
    - repo_get_oid
    - command_to_string
    - check_label_or_ref_arg
    - strspn
    - starts_with_mem
    - _
    - is_rebase_i
    - skip_prefix
    - strcspn
    linkageType: ''
    returnType: int
    signature: "int parse_insn_line(struct repository *r, struct replay_opts *opts,\n\t\t\t
      \  struct todo_item *item, const char *buf,\n\t\t\t   const char *bol, char
      *eol)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_path_todo_file
      Src: /src/git/sequencer.c:2833,1
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:2834,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:2838,1
    - Dst: strspn
      Src: /src/git/sequencer.c:2840,1
    - Dst: is_command
      Src: /src/git/sequencer.c:2841,1
    - Dst: is_command
      Src: /src/git/sequencer.c:2843,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:2849,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - UNUSED
    - action
    argTypes:
    - struct repository*
    - enum replay_action*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2827
    functionDepth: 5
    functionLinenumber: 2827
    functionLinenumberEnd: 2852
    functionName: sequencer_get_last_command
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - is_command
    - strbuf_read_file
    - git_path_todo_file
    - strspn
    linkageType: ''
    returnType: int
    signature: int sequencer_get_last_command(struct repository *r UNUSED, enum replay_action
      *action)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/sequencer.c:2859,1
    - Dst: rebase_path_done
      Src: /src/git/sequencer.c:2859,1
    - Dst: strchrnul
      Src: /src/git/sequencer.c:2864,1
    - Dst: append_new_todo
      Src: /src/git/sequencer.c:2871,1
    - Dst: parse_insn_line
      Src: /src/git/sequencer.c:2873,1
    - Dst: error
      Src: /src/git/sequencer.c:2874,1
    - Dst: _
      Src: /src/git/sequencer.c:2874,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:2887,1
    - Dst: error
      Src: /src/git/sequencer.c:2888,1
    - Dst: _
      Src: /src/git/sequencer.c:2888,1
    - Dst: command_to_string
      Src: /src/git/sequencer.c:2889,1
    - Dst: is_noop
      Src: /src/git/sequencer.c:2890,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - r
    - opts
    - buf
    - todo_list
    argTypes:
    - struct repository*
    - struct replay_opts*
    - char*
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2854
    functionDepth: 6
    functionLinenumber: 2854
    functionLinenumberEnd: 2895
    functionName: todo_list_parse_insn_buffer
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - rebase_path_done
    - parse_insn_line
    - append_new_todo
    - command_to_string
    - is_noop
    - _
    - file_exists
    - strchrnul
    - is_fixup
    linkageType: ''
    returnType: int
    signature: "int todo_list_parse_insn_buffer(struct repository *r, struct replay_opts
      *opts,\n\t\t\t\tchar *buf, struct todo_list *todo_list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - todo_list
    argTypes:
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2897
    functionDepth: 0
    functionLinenumber: 2897
    functionLinenumberEnd: 2906
    functionName: count_commands
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count_commands(struct todo_list *todo_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - todo_list
    - index
    argTypes:
    - struct todo_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2908
    functionDepth: 0
    functionLinenumber: 2908
    functionLinenumberEnd: 2912
    functionName: get_item_line_offset
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_item_line_offset(struct todo_list *todo_list, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_item_line_offset
      Src: /src/git/sequencer.c:2916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - todo_list
    - index
    argTypes:
    - struct todo_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2914
    functionDepth: 1
    functionLinenumber: 2914
    functionLinenumberEnd: 2917
    functionName: get_item_line
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - get_item_line_offset
    linkageType: ''
    returnType: char
    signature: char *get_item_line(struct todo_list *todo_list, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_item_line_offset
      Src: /src/git/sequencer.c:2921,1
    - Dst: get_item_line_offset
      Src: /src/git/sequencer.c:2922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - todo_list
    - index
    argTypes:
    - struct todo_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2919
    functionDepth: 1
    functionLinenumber: 2919
    functionLinenumberEnd: 2923
    functionName: get_item_line_length
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - get_item_line_offset
    linkageType: ''
    returnType: int
    signature: int get_item_line_length(struct todo_list *todo_list, int index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/sequencer.c:2930,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:2932,1
    - Dst: _
      Src: /src/git/sequencer.c:2932,1
    - Dst: strbuf_read
      Src: /src/git/sequencer.c:2933,1
    - Dst: close
      Src: /src/git/sequencer.c:2934,1
    - Dst: error
      Src: /src/git/sequencer.c:2936,1
    - Dst: _
      Src: /src/git/sequencer.c:2936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sb
    - path
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2938
      start: 2925
    functionDepth: 4
    functionLinenumber: 2925
    functionLinenumberEnd: 2938
    functionName: strbuf_read_file_or_whine
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - strbuf_read
    - open
    - _
    - close
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t strbuf_read_file_or_whine(struct strbuf *sb, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_path_todo_file
      Src: /src/git/sequencer.c:2944,1
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:2947,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:2951,1
    - Dst: strchr
      Src: /src/git/sequencer.c:2956,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:2960,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2940
    functionDepth: 5
    functionLinenumber: 2940
    functionLinenumberEnd: 2963
    functionName: have_finished_the_last_pick
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - strbuf_read_file
    - git_path_todo_file
    - strchr
    linkageType: ''
    returnType: int
    signature: int have_finished_the_last_pick(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:2970,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:2970,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:2971,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:2971,1
    - Dst: warning
      Src: /src/git/sequencer.c:2974,1
    - Dst: _
      Src: /src/git/sequencer.c:2974,1
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:2979,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:2979,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:2980,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:2980,1
    - Dst: warning
      Src: /src/git/sequencer.c:2983,1
    - Dst: _
      Src: /src/git/sequencer.c:2983,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:2988,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:2988,1
    - Dst: have_finished_the_last_pick
      Src: /src/git/sequencer.c:2994,1
    - Dst: sequencer_remove_state
      Src: /src/git/sequencer.c:2997,1
    - Dst: replay_opts_release
      Src: /src/git/sequencer.c:2999,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - r
    - verbose
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2965
    functionDepth: 9
    functionLinenumber: 2965
    functionLinenumberEnd: 3000
    functionName: sequencer_post_commit_cleanup
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - refs_delete_ref
    - sequencer_remove_state
    - replay_opts_release
    - have_finished_the_last_pick
    - _
    - refs_ref_exists
    - warning
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void sequencer_post_commit_cleanup(struct repository *r, int verbose)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_or_warn
      Src: /src/git/sequencer.c:3004,1
    - Dst: rebase_path_msgtotal
      Src: /src/git/sequencer.c:3004,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:3007,1
    - Dst: fclose
      Src: /src/git/sequencer.c:3008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - todo_list
    argTypes:
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3002
    functionDepth: 1
    functionLinenumber: 3002
    functionLinenumberEnd: 3010
    functionName: todo_list_write_total_nr
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - fclose
    - fprintf
    - fopen_or_warn
    - rebase_path_msgtotal
    linkageType: ''
    returnType: void
    signature: void todo_list_write_total_nr(struct todo_list *todo_list)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_todo_path
      Src: /src/git/sequencer.c:3016,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:3019,1
    - Dst: strbuf_read_file_or_whine
      Src: /src/git/sequencer.c:3020,1
    - Dst: todo_list_parse_insn_buffer
      Src: /src/git/sequencer.c:3023,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:3025,1
    - Dst: error
      Src: /src/git/sequencer.c:3026,1
    - Dst: _
      Src: /src/git/sequencer.c:3026,1
    - Dst: error
      Src: /src/git/sequencer.c:3028,1
    - Dst: _
      Src: /src/git/sequencer.c:3028,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:3032,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3032,1
    - Dst: rebase_path_done
      Src: /src/git/sequencer.c:3032,1
    - Dst: error
      Src: /src/git/sequencer.c:3033,1
    - Dst: _
      Src: /src/git/sequencer.c:3033,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:3035,1
    - Dst: error
      Src: /src/git/sequencer.c:3044,1
    - Dst: _
      Src: /src/git/sequencer.c:3044,1
    - Dst: error
      Src: /src/git/sequencer.c:3046,1
    - Dst: _
      Src: /src/git/sequencer.c:3046,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:3049,1
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:3052,1
    - Dst: rebase_path_done
      Src: /src/git/sequencer.c:3052,1
    - Dst: todo_list_parse_insn_buffer
      Src: /src/git/sequencer.c:3053,1
    - Dst: count_commands
      Src: /src/git/sequencer.c:3054,1
    - Dst: count_commands
      Src: /src/git/sequencer.c:3059,1
    - Dst: todo_list_release
      Src: /src/git/sequencer.c:3060,1
    - Dst: todo_list_write_total_nr
      Src: /src/git/sequencer.c:3062,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - r
    - todo_list
    - opts
    argTypes:
    - struct repository*
    - struct todo_list*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 3012
    functionDepth: 7
    functionLinenumber: 3012
    functionLinenumberEnd: 3066
    functionName: read_populate_todo
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - file_exists
    - strbuf_reset
    - rebase_path_done
    - strbuf_read_file
    - todo_list_write_total_nr
    - get_todo_path
    - count_commands
    - todo_list_parse_insn_buffer
    - _
    - is_rebase_i
    - todo_list_release
    - strbuf_read_file_or_whine
    linkageType: ''
    returnType: int
    signature: "int read_populate_todo(struct repository *r,\n\t\t\t      struct todo_list
      *todo_list,\n\t\t\t      struct replay_opts *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: config_error_nonbool
      Src: /src/git/sequencer.c:3072,1
    - Dst: free
      Src: /src/git/sequencer.c:3073,1
    - Dst: xstrdup
      Src: /src/git/sequencer.c:3074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - var
    - value
    argTypes:
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3068
    functionDepth: 1
    functionLinenumber: 3068
    functionLinenumberEnd: 3076
    functionName: git_config_string_dup
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - config_error_nonbool
    - free
    linkageType: ''
    returnType: int
    signature: "int git_config_string_dup(char **dest,\n\t\t\t\t const char *var,
      const char *value)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/sequencer.c:3087,1
    - Dst: git_config_bool_or_int
      Src: /src/git/sequencer.c:3088,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3089,1
    - Dst: git_config_bool_or_int
      Src: /src/git/sequencer.c:3090,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3091,1
    - Dst: git_config_bool_or_int
      Src: /src/git/sequencer.c:3093,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3094,1
    - Dst: git_config_bool_or_int
      Src: /src/git/sequencer.c:3096,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3097,1
    - Dst: git_config_bool_or_int
      Src: /src/git/sequencer.c:3099,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3100,1
    - Dst: git_config_bool_or_int
      Src: /src/git/sequencer.c:3102,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3103,1
    - Dst: git_config_bool_or_int
      Src: /src/git/sequencer.c:3104,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3105,1
    - Dst: git_config_bool_or_int
      Src: /src/git/sequencer.c:3106,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3107,1
    - Dst: git_config_bool_or_int
      Src: /src/git/sequencer.c:3108,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3109,1
    - Dst: git_config_int
      Src: /src/git/sequencer.c:3110,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3111,1
    - Dst: git_config_string_dup
      Src: /src/git/sequencer.c:3112,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3113,1
    - Dst: git_config_string_dup
      Src: /src/git/sequencer.c:3114,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3115,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:3116,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3117,1
    - Dst: git_config_bool_or_int
      Src: /src/git/sequencer.c:3119,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3121,1
    - Dst: get_cleanup_mode
      Src: /src/git/sequencer.c:3123,1
    - Dst: error
      Src: /src/git/sequencer.c:3125,1
    - Dst: _
      Src: /src/git/sequencer.c:3125,1
    - Dst: error
      Src: /src/git/sequencer.c:3128,1
    - Dst: _
      Src: /src/git/sequencer.c:3128,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 4
    argNames:
    - key
    - value
    - ctx
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3078
    functionDepth: 2
    functionLinenumber: 3078
    functionLinenumberEnd: 3131
    functionName: populate_opts_cb
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - git_config_int
    - get_cleanup_mode
    - git_config_bool_or_int
    - git_config_string_dup
    - strcmp
    - _
    linkageType: ''
    returnType: int
    signature: "int populate_opts_cb(const char *key, const char *value,\n\t\t\t    const
      struct config_context *ctx,\n\t\t\t    void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: split_cmdline
      Src: /src/git/sequencer.c:3143,1
    - Dst: BUG
      Src: /src/git/sequencer.c:3145,1
    - Dst: split_cmdline_strerror
      Src: /src/git/sequencer.c:3146,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:3150,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:3151,1
    - Dst: free
      Src: /src/git/sequencer.c:3153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - opts
    - raw_opts
    argTypes:
    - struct replay_opts*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3154
      start: 3133
    functionDepth: 1
    functionLinenumber: 3133
    functionLinenumberEnd: 3154
    functionName: parse_strategy_opts
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - split_cmdline_strerror
    - split_cmdline
    - free
    - skip_prefix
    - BUG
    linkageType: ''
    returnType: void
    signature: void parse_strategy_opts(struct replay_opts *opts, char *raw_opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:3158,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:3159,1
    - Dst: rebase_path_strategy
      Src: /src/git/sequencer.c:3159,1
    - Dst: strbuf_detach
      Src: /src/git/sequencer.c:3161,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:3162,1
    - Dst: rebase_path_strategy_opts
      Src: /src/git/sequencer.c:3162,1
    - Dst: parse_strategy_opts
      Src: /src/git/sequencer.c:3165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - opts
    - buf
    argTypes:
    - struct replay_opts*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3166
      start: 3156
    functionDepth: 6
    functionLinenumber: 3156
    functionLinenumberEnd: 3166
    functionName: read_strategy_opts
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - read_oneliner
    - strbuf_reset
    - rebase_path_strategy_opts
    - strbuf_detach
    - rebase_path_strategy
    - parse_strategy_opts
    linkageType: ''
    returnType: void
    signature: void read_strategy_opts(struct replay_opts *opts, struct strbuf *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:3172,1
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:3173,1
    - Dst: rebase_path_trailer
      Src: /src/git/sequencer.c:3173,1
    - Dst: trailer_config_init
      Src: /src/git/sequencer.c:3177,1
    - Dst: strchr
      Src: /src/git/sequencer.c:3179,1
    - Dst: error
      Src: /src/git/sequencer.c:3182,1
    - Dst: _
      Src: /src/git/sequencer.c:3182,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:3183,1
    - Dst: error
      Src: /src/git/sequencer.c:3187,1
    - Dst: _
      Src: /src/git/sequencer.c:3187,1
    - Dst: error
      Src: /src/git/sequencer.c:3189,1
    - Dst: _
      Src: /src/git/sequencer.c:3189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - opts
    - buf
    argTypes:
    - struct replay_opts*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3168
    functionDepth: 5
    functionLinenumber: 3168
    functionLinenumberEnd: 3193
    functionName: read_trailers
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - strbuf_reset
    - strbuf_read_file
    - strchr
    - trailer_config_init
    - _
    - rebase_path_trailer
    linkageType: ''
    returnType: int
    signature: int read_trailers(struct replay_opts *opts, struct strbuf *buf)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:3199,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:3203,1
    - Dst: rebase_path_gpg_sign_opt
      Src: /src/git/sequencer.c:3203,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:3205,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:3206,1
    - Dst: free
      Src: /src/git/sequencer.c:3208,1
    - Dst: xstrdup
      Src: /src/git/sequencer.c:3209,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:3211,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:3214,1
    - Dst: rebase_path_allow_rerere_autoupdate
      Src: /src/git/sequencer.c:3214,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3216,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:3218,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:3220,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3223,1
    - Dst: rebase_path_verbose
      Src: /src/git/sequencer.c:3223,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3226,1
    - Dst: rebase_path_quiet
      Src: /src/git/sequencer.c:3226,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3229,1
    - Dst: rebase_path_signoff
      Src: /src/git/sequencer.c:3229,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3234,1
    - Dst: rebase_path_cdate_is_adate
      Src: /src/git/sequencer.c:3234,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3239,1
    - Dst: rebase_path_ignore_date
      Src: /src/git/sequencer.c:3239,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3244,1
    - Dst: rebase_path_reschedule_failed_exec
      Src: /src/git/sequencer.c:3244,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3246,1
    - Dst: rebase_path_no_reschedule_failed_exec
      Src: /src/git/sequencer.c:3246,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3249,1
    - Dst: rebase_path_drop_redundant_commits
      Src: /src/git/sequencer.c:3249,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3252,1
    - Dst: rebase_path_keep_redundant_commits
      Src: /src/git/sequencer.c:3252,1
    - Dst: read_strategy_opts
      Src: /src/git/sequencer.c:3255,1
    - Dst: read_trailers
      Src: /src/git/sequencer.c:3257,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:3261,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:3263,1
    - Dst: rebase_path_current_fixups
      Src: /src/git/sequencer.c:3264,1
    - Dst: strchr
      Src: /src/git/sequencer.c:3268,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:3274,1
    - Dst: rebase_path_squash_onto
      Src: /src/git/sequencer.c:3274,1
    - Dst: repo_get_oid_committish
      Src: /src/git/sequencer.c:3275,1
    - Dst: error
      Src: /src/git/sequencer.c:3276,1
    - Dst: _
      Src: /src/git/sequencer.c:3276,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3283,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3287,1
    - Dst: git_path_opts_file
      Src: /src/git/sequencer.c:3287,1
    - Dst: git_config_from_file
      Src: /src/git/sequencer.c:3295,1
    - Dst: git_path_opts_file
      Src: /src/git/sequencer.c:3295,1
    - Dst: error
      Src: /src/git/sequencer.c:3296,1
    - Dst: _
      Src: /src/git/sequencer.c:3296,1
    - Dst: git_path_opts_file
      Src: /src/git/sequencer.c:3297,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3195
    functionDepth: 7
    functionLinenumber: 3195
    functionLinenumberEnd: 3299
    functionName: read_populate_opts
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - read_strategy_opts
    - read_oneliner
    - rebase_path_current_fixups
    - strchr
    - strcmp
    - file_exists
    - free
    - rebase_path_keep_redundant_commits
    - git_path_opts_file
    - error
    - strbuf_release
    - rebase_path_gpg_sign_opt
    - rebase_path_allow_rerere_autoupdate
    - rebase_path_drop_redundant_commits
    - rebase_path_quiet
    - rebase_path_reschedule_failed_exec
    - rebase_path_verbose
    - rebase_path_signoff
    - read_trailers
    - _
    - is_rebase_i
    - git_config_from_file
    - xstrdup
    - strbuf_reset
    - rebase_path_squash_onto
    - starts_with
    - rebase_path_no_reschedule_failed_exec
    - rebase_path_ignore_date
    - rebase_path_cdate_is_adate
    - repo_get_oid_committish
    linkageType: ''
    returnType: int
    signature: int read_populate_opts(struct replay_opts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quote_cmdline
      Src: /src/git/sequencer.c:3309,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3310,1
    - Dst: rebase_path_strategy_opts
      Src: /src/git/sequencer.c:3310,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3312
      start: 3301
    functionDepth: 3
    functionLinenumber: 3301
    functionLinenumberEnd: 3312
    functionName: write_strategy_opts
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - rebase_path_strategy_opts
    - quote_cmdline
    - write_file
    linkageType: ''
    returnType: void
    signature: void write_strategy_opts(struct replay_opts *opts)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: write_file
      Src: /src/git/sequencer.c:3318,1
    - Dst: rebase_path_head_name
      Src: /src/git/sequencer.c:3318,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3320,1
    - Dst: rebase_path_onto
      Src: /src/git/sequencer.c:3320,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:3321,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3323,1
    - Dst: rebase_path_orig_head
      Src: /src/git/sequencer.c:3323,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:3324,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3327,1
    - Dst: rebase_path_quiet
      Src: /src/git/sequencer.c:3327,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3329,1
    - Dst: rebase_path_verbose
      Src: /src/git/sequencer.c:3329,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3331,1
    - Dst: rebase_path_strategy
      Src: /src/git/sequencer.c:3331,1
    - Dst: write_strategy_opts
      Src: /src/git/sequencer.c:3333,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3336,1
    - Dst: rebase_path_allow_rerere_autoupdate
      Src: /src/git/sequencer.c:3336,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3338,1
    - Dst: rebase_path_allow_rerere_autoupdate
      Src: /src/git/sequencer.c:3338,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3341,1
    - Dst: rebase_path_gpg_sign_opt
      Src: /src/git/sequencer.c:3341,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3343,1
    - Dst: rebase_path_signoff
      Src: /src/git/sequencer.c:3343,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3345,1
    - Dst: rebase_path_drop_redundant_commits
      Src: /src/git/sequencer.c:3345,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3347,1
    - Dst: rebase_path_keep_redundant_commits
      Src: /src/git/sequencer.c:3347,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3349,1
    - Dst: rebase_path_cdate_is_adate
      Src: /src/git/sequencer.c:3349,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3351,1
    - Dst: rebase_path_ignore_date
      Src: /src/git/sequencer.c:3351,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3353,1
    - Dst: rebase_path_reschedule_failed_exec
      Src: /src/git/sequencer.c:3353,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3355,1
    - Dst: rebase_path_no_reschedule_failed_exec
      Src: /src/git/sequencer.c:3355,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:3360,1
    - Dst: write_file
      Src: /src/git/sequencer.c:3361,1
    - Dst: rebase_path_trailer
      Src: /src/git/sequencer.c:3361,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3362,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 4
    argNames:
    - opts
    - head_name
    - onto
    - orig_head
    argTypes:
    - struct replay_opts*
    - char*
    - struct commit*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3366
      start: 3314
    functionDepth: 4
    functionLinenumber: 3314
    functionLinenumberEnd: 3366
    functionName: write_basic_state
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - write_file
    - strbuf_addf
    - rebase_path_strategy
    - rebase_path_keep_redundant_commits
    - rebase_path_trailer
    - strbuf_release
    - rebase_path_head_name
    - rebase_path_gpg_sign_opt
    - rebase_path_allow_rerere_autoupdate
    - rebase_path_drop_redundant_commits
    - oid_to_hex
    - rebase_path_quiet
    - rebase_path_onto
    - rebase_path_reschedule_failed_exec
    - rebase_path_verbose
    - rebase_path_signoff
    - rebase_path_no_reschedule_failed_exec
    - rebase_path_ignore_date
    - rebase_path_cdate_is_adate
    - write_strategy_opts
    - rebase_path_orig_head
    linkageType: ''
    returnType: int
    signature: "int write_basic_state(struct replay_opts *opts, const char *head_name,\n\t\t
      \     struct commit *onto, const struct object_id *orig_head)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_revs
      Src: /src/git/sequencer.c:3377,1
    - Dst: get_log_output_encoding
      Src: /src/git/sequencer.c:3380,1
    - Dst: get_revision
      Src: /src/git/sequencer.c:3382,1
    - Dst: append_new_todo
      Src: /src/git/sequencer.c:3383,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/sequencer.c:3384,1
    - Dst: find_commit_subject
      Src: /src/git/sequencer.c:3395,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:3396,1
    - Dst: short_commit_name
      Src: /src/git/sequencer.c:3397,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/sequencer.c:3399,1
    - Dst: error
      Src: /src/git/sequencer.c:3404,1
    - Dst: _
      Src: /src/git/sequencer.c:3404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - todo_list
    - opts
    argTypes:
    - struct todo_list*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3407
      start: 3368
    functionDepth: 13
    functionLinenumber: 3368
    functionLinenumberEnd: 3407
    functionName: walk_revs_populate_todo
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - find_commit_subject
    - prepare_revs
    - strbuf_addf
    - append_new_todo
    - repo_unuse_commit_buffer
    - _
    - get_log_output_encoding
    - repo_logmsg_reencode
    - get_revision
    - short_commit_name
    linkageType: ''
    returnType: int
    signature: "int walk_revs_populate_todo(struct todo_list *todo_list,\n\t\t\t\tstruct
      replay_opts *opts)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:3415,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:3415,1
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:3416,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:3416,1
    - Dst: sequencer_get_last_command
      Src: /src/git/sequencer.c:3418,1
    - Dst: _
      Src: /src/git/sequencer.c:3421,1
    - Dst: _
      Src: /src/git/sequencer.c:3423,1
    - Dst: _
      Src: /src/git/sequencer.c:3426,1
    - Dst: _
      Src: /src/git/sequencer.c:3428,1
    - Dst: BUG
      Src: /src/git/sequencer.c:3431,1
    - Dst: error
      Src: /src/git/sequencer.c:3435,1
    - Dst: advice_enabled
      Src: /src/git/sequencer.c:3436,1
    - Dst: advise
      Src: /src/git/sequencer.c:3437,1
    - Dst: mkdir
      Src: /src/git/sequencer.c:3441,1
    - Dst: git_path_seq_dir
      Src: /src/git/sequencer.c:3441,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:3442,1
    - Dst: _
      Src: /src/git/sequencer.c:3442,1
    - Dst: git_path_seq_dir
      Src: /src/git/sequencer.c:3443,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3409
    functionDepth: 6
    functionLinenumber: 3409
    functionLinenumberEnd: 3446
    functionName: create_seq_dir
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - git_path_seq_dir
    - sequencer_get_last_command
    - mkdir
    - _
    - refs_ref_exists
    - advise
    - BUG
    - advice_enabled
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int create_seq_dir(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_message
      Src: /src/git/sequencer.c:3450,1
    - Dst: strlen
      Src: /src/git/sequencer.c:3450,1
    - Dst: git_path_head_file
      Src: /src/git/sequencer.c:3450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3451
      start: 3448
    functionDepth: 4
    functionLinenumber: 3448
    functionLinenumberEnd: 3451
    functionName: save_head
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strlen
    - write_message
    - git_path_head_file
    linkageType: ''
    returnType: int
    signature: int save_head(const char *head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:3458,1
    - Dst: git_path_abort_safety_file
      Src: /src/git/sequencer.c:3458,1
    - Dst: strbuf_trim
      Src: /src/git/sequencer.c:3459,1
    - Dst: get_oid_hex
      Src: /src/git/sequencer.c:3460,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3461,1
    - Dst: die
      Src: /src/git/sequencer.c:3462,1
    - Dst: _
      Src: /src/git/sequencer.c:3462,1
    - Dst: git_path_abort_safety_file
      Src: /src/git/sequencer.c:3462,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3464,1
    - Dst: oidclr
      Src: /src/git/sequencer.c:3467,1
    - Dst: die_errno
      Src: /src/git/sequencer.c:3469,1
    - Dst: _
      Src: /src/git/sequencer.c:3469,1
    - Dst: git_path_abort_safety_file
      Src: /src/git/sequencer.c:3469,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:3471,1
    - Dst: oidclr
      Src: /src/git/sequencer.c:3472,1
    - Dst: oideq
      Src: /src/git/sequencer.c:3474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3475
      start: 3453
    functionDepth: 5
    functionLinenumber: 3453
    functionLinenumberEnd: 3475
    functionName: rollback_is_safe
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - get_oid_hex
    - git_path_abort_safety_file
    - strbuf_read_file
    - die_errno
    - repo_get_oid
    - strbuf_trim
    - oidclr
    - _
    - oideq
    linkageType: ''
    returnType: int
    signature: int rollback_is_safe(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/sequencer.c:3482,1
    - Dst: is_null_oid
      Src: /src/git/sequencer.c:3484,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:3485,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:3485,1
    - Dst: run_command
      Src: /src/git/sequencer.c:3487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3488
      start: 3477
    functionDepth: 8
    functionLinenumber: 3477
    functionLinenumberEnd: 3488
    functionName: reset_merge
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - oid_to_hex
    - run_command
    - strvec_pushl
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int reset_merge(const struct object_id *oid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:3494,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:3494,1
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:3495,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:3495,1
    - Dst: error
      Src: /src/git/sequencer.c:3496,1
    - Dst: _
      Src: /src/git/sequencer.c:3496,1
    - Dst: refs_read_ref_full
      Src: /src/git/sequencer.c:3497,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:3497,1
    - Dst: error
      Src: /src/git/sequencer.c:3498,1
    - Dst: _
      Src: /src/git/sequencer.c:3498,1
    - Dst: is_null_oid
      Src: /src/git/sequencer.c:3499,1
    - Dst: error
      Src: /src/git/sequencer.c:3500,1
    - Dst: _
      Src: /src/git/sequencer.c:3500,1
    - Dst: reset_merge
      Src: /src/git/sequencer.c:3501,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3502
      start: 3490
    functionDepth: 9
    functionLinenumber: 3490
    functionLinenumberEnd: 3502
    functionName: rollback_single_pick
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - reset_merge
    - is_null_oid
    - refs_read_ref_full
    - _
    - refs_ref_exists
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int rollback_single_pick(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refs_read_ref_full
      Src: /src/git/sequencer.c:3508,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:3508,1
    - Dst: error
      Src: /src/git/sequencer.c:3509,1
    - Dst: _
      Src: /src/git/sequencer.c:3509,1
    - Dst: reset_merge
      Src: /src/git/sequencer.c:3510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3511
      start: 3504
    functionDepth: 9
    functionLinenumber: 3504
    functionLinenumberEnd: 3511
    functionName: skip_single_pick
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - refs_read_ref_full
    - _
    - get_main_ref_store
    - reset_merge
    linkageType: ''
    returnType: int
    signature: int skip_single_pick(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/sequencer.c:3520,1
    - Dst: git_path_head_file
      Src: /src/git/sequencer.c:3520,1
    - Dst: rollback_single_pick
      Src: /src/git/sequencer.c:3527,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:3530,1
    - Dst: _
      Src: /src/git/sequencer.c:3530,1
    - Dst: git_path_head_file
      Src: /src/git/sequencer.c:3530,1
    - Dst: strbuf_getline_lf
      Src: /src/git/sequencer.c:3531,1
    - Dst: error
      Src: /src/git/sequencer.c:3532,1
    - Dst: _
      Src: /src/git/sequencer.c:3532,1
    - Dst: git_path_head_file
      Src: /src/git/sequencer.c:3532,1
    - Dst: ferror
      Src: /src/git/sequencer.c:3533,1
    - Dst: strerror
      Src: /src/git/sequencer.c:3533,1
    - Dst: _
      Src: /src/git/sequencer.c:3533,1
    - Dst: fclose
      Src: /src/git/sequencer.c:3534,1
    - Dst: fclose
      Src: /src/git/sequencer.c:3537,1
    - Dst: parse_oid_hex
      Src: /src/git/sequencer.c:3538,1
    - Dst: error
      Src: /src/git/sequencer.c:3539,1
    - Dst: _
      Src: /src/git/sequencer.c:3539,1
    - Dst: git_path_head_file
      Src: /src/git/sequencer.c:3540,1
    - Dst: is_null_oid
      Src: /src/git/sequencer.c:3543,1
    - Dst: error
      Src: /src/git/sequencer.c:3544,1
    - Dst: _
      Src: /src/git/sequencer.c:3544,1
    - Dst: rollback_is_safe
      Src: /src/git/sequencer.c:3548,1
    - Dst: warning
      Src: /src/git/sequencer.c:3550,1
    - Dst: _
      Src: /src/git/sequencer.c:3550,1
    - Dst: reset_merge
      Src: /src/git/sequencer.c:3553,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3555,1
    - Dst: sequencer_remove_state
      Src: /src/git/sequencer.c:3556,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3558,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - r
    - opts
    argTypes:
    - struct repository*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3513
    functionDepth: 10
    functionLinenumber: 3513
    functionLinenumberEnd: 3560
    functionName: sequencer_rollback
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - ferror
    - strbuf_getline_lf
    - fclose
    - strbuf_release
    - sequencer_remove_state
    - strerror
    - fopen
    - rollback_is_safe
    - is_null_oid
    - parse_oid_hex
    - _
    - warning
    - rollback_single_pick
    - git_path_head_file
    - reset_merge
    linkageType: ''
    returnType: int
    signature: int sequencer_rollback(struct repository *r, struct replay_opts *opts)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sequencer_get_last_command
      Src: /src/git/sequencer.c:3565,1
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:3589,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:3589,1
    - Dst: error
      Src: /src/git/sequencer.c:3591,1
    - Dst: _
      Src: /src/git/sequencer.c:3591,1
    - Dst: rollback_is_safe
      Src: /src/git/sequencer.c:3592,1
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:3597,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:3597,1
    - Dst: error
      Src: /src/git/sequencer.c:3600,1
    - Dst: _
      Src: /src/git/sequencer.c:3600,1
    - Dst: rollback_is_safe
      Src: /src/git/sequencer.c:3601,1
    - Dst: BUG
      Src: /src/git/sequencer.c:3606,1
    - Dst: skip_single_pick
      Src: /src/git/sequencer.c:3609,1
    - Dst: error
      Src: /src/git/sequencer.c:3610,1
    - Dst: _
      Src: /src/git/sequencer.c:3610,1
    - Dst: is_directory
      Src: /src/git/sequencer.c:3611,1
    - Dst: git_path_seq_dir
      Src: /src/git/sequencer.c:3611,1
    - Dst: sequencer_continue
      Src: /src/git/sequencer.c:3614,1
    - Dst: error
      Src: /src/git/sequencer.c:3617,1
    - Dst: _
      Src: /src/git/sequencer.c:3617,1
    - Dst: advice_enabled
      Src: /src/git/sequencer.c:3619,1
    - Dst: advise
      Src: /src/git/sequencer.c:3620,1
    - Dst: _
      Src: /src/git/sequencer.c:3620,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - r
    - opts
    argTypes:
    - struct repository*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3625
      start: 3562
    functionDepth: 10
    functionLinenumber: 3562
    functionLinenumberEnd: 3625
    functionName: sequencer_skip
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - git_path_seq_dir
    - sequencer_continue
    - rollback_is_safe
    - sequencer_get_last_command
    - skip_single_pick
    - _
    - is_directory
    - refs_ref_exists
    - advise
    - BUG
    - advice_enabled
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int sequencer_skip(struct repository *r, struct replay_opts *opts)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_todo_path
      Src: /src/git/sequencer.c:3631,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:3638,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/sequencer.c:3641,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:3643,1
    - Dst: _
      Src: /src/git/sequencer.c:3643,1
    - Dst: get_item_line_offset
      Src: /src/git/sequencer.c:3644,1
    - Dst: write_in_full
      Src: /src/git/sequencer.c:3645,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:3647,1
    - Dst: _
      Src: /src/git/sequencer.c:3647,1
    - Dst: commit_lock_file
      Src: /src/git/sequencer.c:3648,1
    - Dst: error
      Src: /src/git/sequencer.c:3649,1
    - Dst: _
      Src: /src/git/sequencer.c:3649,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:3651,1
    - Dst: rebase_path_done
      Src: /src/git/sequencer.c:3652,1
    - Dst: open
      Src: /src/git/sequencer.c:3653,1
    - Dst: write_in_full
      Src: /src/git/sequencer.c:3658,1
    - Dst: get_item_line
      Src: /src/git/sequencer.c:3658,1
    - Dst: get_item_line_length
      Src: /src/git/sequencer.c:3659,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:3661,1
    - Dst: _
      Src: /src/git/sequencer.c:3661,1
    - Dst: close
      Src: /src/git/sequencer.c:3662,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:3663,1
    - Dst: _
      Src: /src/git/sequencer.c:3663,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - todo_list
    - opts
    - reschedule
    argTypes:
    - struct todo_list*
    - struct replay_opts*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3667
      start: 3627
    functionDepth: 3
    functionLinenumber: 3627
    functionLinenumberEnd: 3667
    functionName: save_todo
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - hold_lock_file_for_update
    - get_item_line
    - commit_lock_file
    - open
    - rebase_path_done
    - get_todo_path
    - get_item_line_offset
    - close
    - _
    - is_rebase_i
    - get_item_line_length
    - write_in_full
    linkageType: ''
    returnType: int
    signature: "int save_todo(struct todo_list *todo_list, struct replay_opts *opts,\n\t\t
      \    int reschedule)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: git_path_opts_file
      Src: /src/git/sequencer.c:3671,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3675,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3678,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3681,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3684,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3687,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3690,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3693,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3696,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3699,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:3703,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3704,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3706,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3709,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3712,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/sequencer.c:3715,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3719,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/sequencer.c:3725,1
    - Dst: describe_cleanup_mode
      Src: /src/git/sequencer.c:3727,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3729
      start: 3669
    functionDepth: 3
    functionLinenumber: 3669
    functionLinenumberEnd: 3729
    functionName: save_opts
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - describe_cleanup_mode
    - repo_config_set_in_file_gently
    - strbuf_addf
    - repo_config_set_multivar_in_file_gently
    - git_path_opts_file
    linkageType: ''
    returnType: int
    signature: int save_opts(struct replay_opts *opts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:3740,1
    - Dst: BUG
      Src: /src/git/sequencer.c:3741,1
    - Dst: oid_to_hex_r
      Src: /src/git/sequencer.c:3743,1
    - Dst: write_message
      Src: /src/git/sequencer.c:3744,1
    - Dst: strlen
      Src: /src/git/sequencer.c:3744,1
    - Dst: rebase_path_stopped_sha
      Src: /src/git/sequencer.c:3744,1
    - Dst: write_rebase_head
      Src: /src/git/sequencer.c:3746,1
    - Dst: memset
      Src: /src/git/sequencer.c:3748,1
    - Dst: repo_init_revisions
      Src: /src/git/sequencer.c:3749,1
    - Dst: fopen
      Src: /src/git/sequencer.c:3755,1
    - Dst: rebase_path_patch
      Src: /src/git/sequencer.c:3755,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:3758,1
    - Dst: _
      Src: /src/git/sequencer.c:3758,1
    - Dst: rebase_path_patch
      Src: /src/git/sequencer.c:3759,1
    - Dst: log_tree_commit
      Src: /src/git/sequencer.c:3761,1
    - Dst: fclose
      Src: /src/git/sequencer.c:3762,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:3765,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:3765,1
    - Dst: get_commit_output_encoding
      Src: /src/git/sequencer.c:3766,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/sequencer.c:3767,1
    - Dst: find_commit_subject
      Src: /src/git/sequencer.c:3770,1
    - Dst: write_message
      Src: /src/git/sequencer.c:3771,1
    - Dst: strlen
      Src: /src/git/sequencer.c:3771,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:3771,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/sequencer.c:3772,1
    - Dst: release_revisions
      Src: /src/git/sequencer.c:3775,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - r
    - commit
    - opts
    argTypes:
    - struct repository*
    - struct commit*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3731
    functionDepth: 8
    functionLinenumber: 3731
    functionLinenumberEnd: 3778
    functionName: make_patch
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - repo_init_revisions
    - rebase_path_patch
    - get_commit_output_encoding
    - file_exists
    - write_rebase_head
    - log_tree_commit
    - rebase_path_message
    - find_commit_subject
    - release_revisions
    - fopen
    - memset
    - repo_unuse_commit_buffer
    - write_message
    - repo_logmsg_reencode
    - _
    - is_rebase_i
    - oid_to_hex_r
    - rebase_path_stopped_sha
    - strlen
    - BUG
    linkageType: ''
    returnType: int
    signature: "int make_patch(struct repository *r,\n\t\t      struct commit *commit,\n\t\t
      \     struct replay_opts *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:3785,1
    - Dst: error
      Src: /src/git/sequencer.c:3786,1
    - Dst: _
      Src: /src/git/sequencer.c:3786,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:3788,1
    - Dst: write_message
      Src: /src/git/sequencer.c:3789,1
    - Dst: strlen
      Src: /src/git/sequencer.c:3789,1
    - Dst: rebase_path_amend
      Src: /src/git/sequencer.c:3789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3790
      start: 3780
    functionDepth: 4
    functionLinenumber: 3780
    functionLinenumberEnd: 3790
    functionName: intend_to_amend
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - repo_get_oid
    - strlen
    - write_message
    - rebase_path_amend
    - _
    linkageType: ''
    returnType: int
    signature: int intend_to_amend(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/sequencer.c:3809,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:3809,1
    - Dst: write_message
      Src: /src/git/sequencer.c:3810,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:3811,1
    - Dst: error
      Src: /src/git/sequencer.c:3812,1
    - Dst: _
      Src: /src/git/sequencer.c:3812,1
    - Dst: make_patch
      Src: /src/git/sequencer.c:3814,1
    - Dst: intend_to_amend
      Src: /src/git/sequencer.c:3818,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:3821,1
    - Dst: _
      Src: /src/git/sequencer.c:3822,1
    - Dst: gpg_sign_opt_quoted
      Src: /src/git/sequencer.c:3829,1
    - Dst: fprintf_ln
      Src: /src/git/sequencer.c:3832,1
    - Dst: _
      Src: /src/git/sequencer.c:3832,1
    - Dst: short_commit_name
      Src: /src/git/sequencer.c:3833,1
    - Dst: fprintf_ln
      Src: /src/git/sequencer.c:3839,1
    - Dst: _
      Src: /src/git/sequencer.c:3839,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 7
    argNames:
    - r
    - commit
    - subject
    - subject_len
    - opts
    - exit_code
    - to_amend
    argTypes:
    - struct repository*
    - struct commit*
    - char*
    - int
    - struct replay_opts*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3792
    functionDepth: 9
    functionLinenumber: 3792
    functionLinenumberEnd: 3844
    functionName: error_with_patch
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - gpg_sign_opt_quoted
    - rebase_path_message
    - fprintf_ln
    - make_patch
    - intend_to_amend
    - write_message
    - _
    - file_exists
    - fprintf
    - short_commit_name
    linkageType: ''
    returnType: int
    signature: "int error_with_patch(struct repository *r,\n\t\t\t    struct commit
      *commit,\n\t\t\t    const char *subject, int subject_len,\n\t\t\t    struct
      replay_opts *opts,\n\t\t\t    int exit_code, int to_amend)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: copy_file
      Src: /src/git/sequencer.c:3852,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:3852,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:3852,1
    - Dst: error
      Src: /src/git/sequencer.c:3853,1
    - Dst: _
      Src: /src/git/sequencer.c:3853,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:3854,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:3854,1
    - Dst: unlink
      Src: /src/git/sequencer.c:3855,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:3855,1
    - Dst: copy_file
      Src: /src/git/sequencer.c:3856,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:3856,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:3856,1
    - Dst: error
      Src: /src/git/sequencer.c:3857,1
    - Dst: _
      Src: /src/git/sequencer.c:3857,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:3858,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:3859,1
    - Dst: error_with_patch
      Src: /src/git/sequencer.c:3860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - r
    - commit
    - opts
    - subject_len
    - subject
    argTypes:
    - struct repository*
    - struct commit*
    - struct replay_opts*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3861
      start: 3846
    functionDepth: 10
    functionLinenumber: 3846
    functionLinenumberEnd: 3861
    functionName: error_failed_squash
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - error_with_patch
    - rebase_path_message
    - git_path_merge_msg
    - copy_file
    - _
    - unlink
    - rebase_path_squash_msg
    linkageType: ''
    returnType: int
    signature: "int error_failed_squash(struct repository *r,\n\t\t\t       struct
      commit *commit,\n\t\t\t       struct replay_opts *opts,\n\t\t\t       int subject_len,\n\t\t\t
      \      const char *subject)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/sequencer.c:3869,1
    - Dst: _
      Src: /src/git/sequencer.c:3869,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:3871,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:3872,1
    - Dst: run_command
      Src: /src/git/sequencer.c:3873,1
    - Dst: discard_index
      Src: /src/git/sequencer.c:3876,1
    - Dst: repo_read_index
      Src: /src/git/sequencer.c:3877,1
    - Dst: error
      Src: /src/git/sequencer.c:3878,1
    - Dst: _
      Src: /src/git/sequencer.c:3878,1
    - Dst: require_clean_work_tree
      Src: /src/git/sequencer.c:3880,1
    - Dst: warning
      Src: /src/git/sequencer.c:3883,1
    - Dst: _
      Src: /src/git/sequencer.c:3883,1
    - Dst: _
      Src: /src/git/sequencer.c:3889,1
    - Dst: warning
      Src: /src/git/sequencer.c:3895,1
    - Dst: _
      Src: /src/git/sequencer.c:3895,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - r
    - command_line
    - quiet
    argTypes:
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3905
      start: 3863
    functionDepth: 10
    functionLinenumber: 3863
    functionLinenumberEnd: 3905
    functionName: do_exec
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - run_command
    - repo_read_index
    - require_clean_work_tree
    - _
    - warning
    - fprintf
    - discard_index
    linkageType: ''
    returnType: int
    signature: int do_exec(struct repository *r, const char *command_line, int quiet)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/sequencer.c:3907,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/sequencer.c:3912,1
    - Dst: strbuf_read_file
      Src: /src/git/sequencer.c:3919,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:3920,1
    - Dst: _
      Src: /src/git/sequencer.c:3920,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:3921,1
    - Dst: strbuf_complete
      Src: /src/git/sequencer.c:3924,1
    - Dst: va_start
      Src: /src/git/sequencer.c:3925,1
    - Dst: strbuf_vaddf
      Src: /src/git/sequencer.c:3926,1
    - Dst: va_end
      Src: /src/git/sequencer.c:3927,1
    - Dst: write_in_full
      Src: /src/git/sequencer.c:3929,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:3930,1
    - Dst: _
      Src: /src/git/sequencer.c:3930,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3931,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:3932,1
    - Dst: commit_lock_file
      Src: /src/git/sequencer.c:3935,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3936,1
    - Dst: error
      Src: /src/git/sequencer.c:3937,1
    - Dst: _
      Src: /src/git/sequencer.c:3937,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3940,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - filename
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3907
    functionDepth: 5
    functionLinenumber: 3907
    functionLinenumberEnd: 3942
    functionName: safe_append
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - hold_lock_file_for_update
    - strbuf_release
    - strbuf_vaddf
    - commit_lock_file
    - strbuf_read_file
    - va_end
    - rollback_lock_file
    - strbuf_complete
    - _
    - write_in_full
    - va_start
    - format
    linkageType: ''
    returnType: int
    signature: int safe_append(const char *filename, const char *fmt, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:3946,1
    - Dst: error
      Src: /src/git/sequencer.c:3954,1
    - Dst: _
      Src: /src/git/sequencer.c:3954,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:3956,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:3957,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/sequencer.c:3959,1
    - Dst: error
      Src: /src/git/sequencer.c:3961,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:3963,1
    - Dst: error
      Src: /src/git/sequencer.c:3964,1
    - Dst: _
      Src: /src/git/sequencer.c:3964,1
    - Dst: ref_transaction_update
      Src: /src/git/sequencer.c:3966,1
    - Dst: ref_transaction_commit
      Src: /src/git/sequencer.c:3969,1
    - Dst: error
      Src: /src/git/sequencer.c:3970,1
    - Dst: ref_transaction_free
      Src: /src/git/sequencer.c:3973,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3974,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3975,1
    - Dst: safe_append
      Src: /src/git/sequencer.c:3978,1
    - Dst: rebase_path_refs_to_delete
      Src: /src/git/sequencer.c:3978,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:3980,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - r
    - name
    - len
    argTypes:
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3983
      start: 3944
    functionDepth: 6
    functionLinenumber: 3944
    functionLinenumberEnd: 3983
    functionName: do_label
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - ref_transaction_commit
    - strbuf_release
    - rebase_path_refs_to_delete
    - repo_get_oid
    - safe_append
    - strbuf_addf
    - ref_transaction_update
    - ref_transaction_free
    - _
    - ref_store_transaction_begin
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int do_label(struct repository *r, const char *name, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:3991,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:3992,1
    - Dst: refs_read_ref
      Src: /src/git/sequencer.c:3993,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:3993,1
    - Dst: lookup_commit_object
      Src: /src/git/sequencer.c:3994,1
    - Dst: strbuf_splice
      Src: /src/git/sequencer.c:3997,1
    - Dst: strlen
      Src: /src/git/sequencer.c:3997,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/sequencer.c:3998,1
    - Dst: error
      Src: /src/git/sequencer.c:4002,1
    - Dst: _
      Src: /src/git/sequencer.c:4002,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - r
    - label
    - len
    - buf
    argTypes:
    - struct repository*
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4005
      start: 3985
    functionDepth: 3
    functionLinenumber: 3985
    functionLinenumberEnd: 4005
    functionName: lookup_label
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - lookup_commit_reference_by_name
    - strbuf_reset
    - refs_read_ref
    - strbuf_addf
    - lookup_commit_object
    - strlen
    - strbuf_splice
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *lookup_label(struct repository *r, const char *label,\n\t\t\t\t
      \  int len, struct strbuf *buf)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: repo_hold_locked_index
      Src: /src/git/sequencer.c:4019,1
    - Dst: strncmp
      Src: /src/git/sequencer.c:4022,1
    - Dst: commit_tree
      Src: /src/git/sequencer.c:4025,1
    - Dst: error
      Src: /src/git/sequencer.c:4028,1
    - Dst: _
      Src: /src/git/sequencer.c:4028,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4030,1
    - Dst: write_message
      Src: /src/git/sequencer.c:4031,1
    - Dst: strlen
      Src: /src/git/sequencer.c:4031,1
    - Dst: rebase_path_squash_onto
      Src: /src/git/sequencer.c:4032,1
    - Dst: error
      Src: /src/git/sequencer.c:4033,1
    - Dst: _
      Src: /src/git/sequencer.c:4033,1
    - Dst: oidcpy
      Src: /src/git/sequencer.c:4035,1
    - Dst: isspace
      Src: /src/git/sequencer.c:4042,1
    - Dst: lookup_label
      Src: /src/git/sequencer.c:4046,1
    - Dst: setup_unpack_trees_porcelain
      Src: /src/git/sequencer.c:4054,1
    - Dst: init_checkout_metadata
      Src: /src/git/sequencer.c:4063,1
    - Dst: repo_read_index_unmerged
      Src: /src/git/sequencer.c:4065,1
    - Dst: error_resolve_conflict
      Src: /src/git/sequencer.c:4066,1
    - Dst: action_name
      Src: /src/git/sequencer.c:4066,1
    - Dst: fill_tree_descriptor
      Src: /src/git/sequencer.c:4070,1
    - Dst: error
      Src: /src/git/sequencer.c:4071,1
    - Dst: _
      Src: /src/git/sequencer.c:4071,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4071,1
    - Dst: unpack_trees
      Src: /src/git/sequencer.c:4075,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/sequencer.c:4080,1
    - Dst: error
      Src: /src/git/sequencer.c:4082,1
    - Dst: _
      Src: /src/git/sequencer.c:4082,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4082,1
    - Dst: prime_cache_tree
      Src: /src/git/sequencer.c:4083,1
    - Dst: write_locked_index
      Src: /src/git/sequencer.c:4085,1
    - Dst: error
      Src: /src/git/sequencer.c:4086,1
    - Dst: _
      Src: /src/git/sequencer.c:4086,1
    - Dst: refs_update_ref
      Src: /src/git/sequencer.c:4089,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:4089,1
    - Dst: reflog_message
      Src: /src/git/sequencer.c:4089,1
    - Dst: free
      Src: /src/git/sequencer.c:4094,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:4096,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4097,1
    - Dst: clear_unpack_trees_porcelain
      Src: /src/git/sequencer.c:4098,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 4
    argNames:
    - r
    - name
    - len
    - opts
    argTypes:
    - struct repository*
    - char*
    - int
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4100
      start: 4007
    functionDepth: 13
    functionLinenumber: 4007
    functionLinenumberEnd: 4100
    functionName: do_reset
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - repo_hold_locked_index
    - free
    - fill_tree_descriptor
    - get_main_ref_store
    - error
    - isspace
    - reflog_message
    - strbuf_release
    - setup_unpack_trees_porcelain
    - commit_tree
    - lookup_label
    - error_resolve_conflict
    - rollback_lock_file
    - strncmp
    - oid_to_hex
    - repo_parse_tree_indirect
    - repo_read_index_unmerged
    - prime_cache_tree
    - write_message
    - unpack_trees
    - _
    - init_checkout_metadata
    - clear_unpack_trees_porcelain
    - rebase_path_squash_onto
    - write_locked_index
    - strlen
    - refs_update_ref
    - action_name
    linkageType: ''
    returnType: int
    signature: "int do_reset(struct repository *r,\n\t\t    const char *name, int
      len,\n\t\t    struct replay_opts *opts)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/sequencer.c:4115,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:4116,1
    - Dst: reflog_message
      Src: /src/git/sequencer.c:4122,1
    - Dst: repo_hold_locked_index
      Src: /src/git/sequencer.c:4124,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/sequencer.c:4129,1
    - Dst: error
      Src: /src/git/sequencer.c:4131,1
    - Dst: _
      Src: /src/git/sequencer.c:4131,1
    - Dst: strspn
      Src: /src/git/sequencer.c:4140,1
    - Dst: isspace
      Src: /src/git/sequencer.c:4143,1
    - Dst: strspn
      Src: /src/git/sequencer.c:4144,1
    - Dst: strcspn
      Src: /src/git/sequencer.c:4148,1
    - Dst: lookup_label
      Src: /src/git/sequencer.c:4151,1
    - Dst: error
      Src: /src/git/sequencer.c:4153,1
    - Dst: _
      Src: /src/git/sequencer.c:4153,1
    - Dst: commit_list_insert
      Src: /src/git/sequencer.c:4156,1
    - Dst: error
      Src: /src/git/sequencer.c:4162,1
    - Dst: _
      Src: /src/git/sequencer.c:4162,1
    - Dst: oideq
      Src: /src/git/sequencer.c:4167,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:4172,1
    - Dst: error
      Src: /src/git/sequencer.c:4174,1
    - Dst: _
      Src: /src/git/sequencer.c:4174,1
    - Dst: fast_forward_to
      Src: /src/git/sequencer.c:4177,1
    - Dst: oideq
      Src: /src/git/sequencer.c:4188,1
    - Dst: oideq
      Src: /src/git/sequencer.c:4199,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:4213,1
    - Dst: fast_forward_to
      Src: /src/git/sequencer.c:4214,1
    - Dst: get_commit_output_encoding
      Src: /src/git/sequencer.c:4223,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/sequencer.c:4224,1
    - Dst: error
      Src: /src/git/sequencer.c:4230,1
    - Dst: _
      Src: /src/git/sequencer.c:4230,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4231,1
    - Dst: write_author_script
      Src: /src/git/sequencer.c:4234,1
    - Dst: find_commit_subject
      Src: /src/git/sequencer.c:4235,1
    - Dst: strlen
      Src: /src/git/sequencer.c:4236,1
    - Dst: strbuf_add
      Src: /src/git/sequencer.c:4237,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/sequencer.c:4238,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:4242,1
    - Dst: git_author_info
      Src: /src/git/sequencer.c:4242,1
    - Dst: write_author_script
      Src: /src/git/sequencer.c:4243,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4244,1
    - Dst: strbuf_add
      Src: /src/git/sequencer.c:4247,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:4250,1
    - Dst: write_message
      Src: /src/git/sequencer.c:4256,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:4257,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:4258,1
    - Dst: _
      Src: /src/git/sequencer.c:4258,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:4259,1
    - Dst: read_env_script
      Src: /src/git/sequencer.c:4267,1
    - Dst: gpg_sign_opt_quoted
      Src: /src/git/sequencer.c:4268,1
    - Dst: error
      Src: /src/git/sequencer.c:4270,1
    - Dst: _
      Src: /src/git/sequencer.c:4270,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:4275,1
    - Dst: author_date_from_env
      Src: /src/git/sequencer.c:4278,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4280,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4283,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4284,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4286,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4288,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:4290,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4294,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4296,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4297,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4298,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4299,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4300,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4301,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:4301,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:4303,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4305,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4309,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4310,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4312,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:4313,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:4313,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:4315,1
    - Dst: run_command
      Src: /src/git/sequencer.c:4317,1
    - Dst: discard_index
      Src: /src/git/sequencer.c:4321,1
    - Dst: repo_read_index
      Src: /src/git/sequencer.c:4322,1
    - Dst: error
      Src: /src/git/sequencer.c:4323,1
    - Dst: _
      Src: /src/git/sequencer.c:4323,1
    - Dst: repo_get_merge_bases
      Src: /src/git/sequencer.c:4329,1
    - Dst: oideq
      Src: /src/git/sequencer.c:4334,1
    - Dst: write_message
      Src: /src/git/sequencer.c:4341,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4341,1
    - Dst: git_path_merge_head
      Src: /src/git/sequencer.c:4342,1
    - Dst: write_message
      Src: /src/git/sequencer.c:4343,1
    - Dst: git_path_merge_mode
      Src: /src/git/sequencer.c:4343,1
    - Dst: commit_list_reverse
      Src: /src/git/sequencer.c:4345,1
    - Dst: repo_read_index
      Src: /src/git/sequencer.c:4347,1
    - Dst: init_ui_merge_options
      Src: /src/git/sequencer.c:4348,1
    - Dst: merge_ort_recursive
      Src: /src/git/sequencer.c:4359,1
    - Dst: fputs
      Src: /src/git/sequencer.c:4361,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4362,1
    - Dst: error
      Src: /src/git/sequencer.c:4364,1
    - Dst: _
      Src: /src/git/sequencer.c:4364,1
    - Dst: unlink
      Src: /src/git/sequencer.c:4366,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:4366,1
    - Dst: write_locked_index
      Src: /src/git/sequencer.c:4380,1
    - Dst: error
      Src: /src/git/sequencer.c:4381,1
    - Dst: _
      Src: /src/git/sequencer.c:4381,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:4385,1
    - Dst: repo_rerere
      Src: /src/git/sequencer.c:4387,1
    - Dst: run_git_commit
      Src: /src/git/sequencer.c:4394,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:4394,1
    - Dst: run_git_commit
      Src: /src/git/sequencer.c:4401,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4407,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:4408,1
    - Dst: commit_list_free
      Src: /src/git/sequencer.c:4409,1
    - Dst: commit_list_free
      Src: /src/git/sequencer.c:4410,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 190
    argCount: 7
    argNames:
    - r
    - commit
    - arg
    - arg_len
    - flags
    - check_todo
    - opts
    argTypes:
    - struct repository*
    - struct commit*
    - char*
    - int
    - int
    - int*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4412
      start: 4102
    functionDepth: 22
    functionLinenumber: 4102
    functionLinenumberEnd: 4412
    functionName: do_merge
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - git_path_merge_mode
    - error_errno
    - strvec_push
    - fputs
    - strbuf_addf
    - git_path_merge_head
    - repo_get_merge_bases
    - repo_hold_locked_index
    - get_commit_output_encoding
    - strcmp
    - author_date_from_env
    - error
    - isspace
    - reflog_message
    - strbuf_release
    - find_commit_subject
    - lookup_commit_reference_by_name
    - gpg_sign_opt_quoted
    - get_main_ref_store
    - discard_index
    - repo_read_index
    - commit_list_reverse
    - repo_rerere
    - lookup_label
    - rollback_lock_file
    - run_git_commit
    - unlink
    - refs_delete_ref
    - oid_to_hex
    - write_author_script
    - repo_unuse_commit_buffer
    - fast_forward_to
    - strspn
    - repo_logmsg_reencode
    - write_message
    - _
    - git_path_merge_msg
    - strvec_pushf
    - strbuf_add
    - git_author_info
    - run_command
    - write_locked_index
    - strlen
    - commit_list_free
    - merge_ort_recursive
    - read_env_script
    - init_ui_merge_options
    - strcspn
    - commit_list_insert
    - oideq
    linkageType: ''
    returnType: int
    signature: "int do_merge(struct repository *r,\n\t\t    struct commit *commit,\n\t\t
      \   const char *arg, int arg_len,\n\t\t    int flags, int *check_todo, struct
      replay_opts *opts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rebase_path_update_refs
      Src: /src/git/sequencer.c:4422,1
    - Dst: unlink
      Src: /src/git/sequencer.c:4425,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:4426,1
    - Dst: _
      Src: /src/git/sequencer.c:4426,1
    - Dst: safe_create_leading_directories
      Src: /src/git/sequencer.c:4430,1
    - Dst: error
      Src: /src/git/sequencer.c:4431,1
    - Dst: _
      Src: /src/git/sequencer.c:4431,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/sequencer.c:4436,1
    - Dst: error
      Src: /src/git/sequencer.c:4437,1
    - Dst: _
      Src: /src/git/sequencer.c:4437,1
    - Dst: fdopen_lock_file
      Src: /src/git/sequencer.c:4443,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:4445,1
    - Dst: _
      Src: /src/git/sequencer.c:4445,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:4446,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:4452,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4453,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4453,1
    - Dst: commit_lock_file
      Src: /src/git/sequencer.c:4456,1
    - Dst: free
      Src: /src/git/sequencer.c:4459,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - refs_to_oids
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4461
      start: 4414
    functionDepth: 3
    functionLinenumber: 4414
    functionLinenumberEnd: 4461
    functionName: write_update_refs_state
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - hold_lock_file_for_update
    - oid_to_hex
    - commit_lock_file
    - rebase_path_update_refs
    - fdopen_lock_file
    - rollback_lock_file
    - _
    - free
    - safe_create_leading_directories
    - fprintf
    - unlink
    linkageType: ''
    returnType: int
    signature: int write_update_refs_state(struct string_list *refs_to_oids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/sequencer.c:4452,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4453,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4454
      start: 4450
    functionDepth: 3
    functionLinenumber: 4450
    functionLinenumberEnd: 4454
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/sequencer.c
    functionUses: 19
    functionsReached:
    - oid_to_hex
    - fprintf
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, refs_to_oids)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sequencer_get_update_refs_state
      Src: /src/git/sequencer.c:4479,1
    - Dst: strlen
      Src: /src/git/sequencer.c:4490,1
    - Dst: is_null_oid
      Src: /src/git/sequencer.c:4494,1
    - Dst: strncmp
      Src: /src/git/sequencer.c:4505,1
    - Dst: free
      Src: /src/git/sequencer.c:4512,1
    - Dst: free
      Src: /src/git/sequencer.c:4513,1
    - Dst: MOVE_ARRAY
      Src: /src/git/sequencer.c:4516,1
    - Dst: strlen
      Src: /src/git/sequencer.c:4538,1
    - Dst: strncmp
      Src: /src/git/sequencer.c:4539,1
    - Dst: strbuf_add
      Src: /src/git/sequencer.c:4546,1
    - Dst: string_list_insert
      Src: /src/git/sequencer.c:4547,1
    - Dst: init_update_ref_record
      Src: /src/git/sequencer.c:4548,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4549,1
    - Dst: write_update_refs_state
      Src: /src/git/sequencer.c:4555,1
    - Dst: string_list_clear
      Src: /src/git/sequencer.c:4556,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 2
    argNames:
    - r
    - todo_list
    argTypes:
    - struct repository*
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4557
      start: 4472
    functionDepth: 4
    functionLinenumber: 4472
    functionLinenumberEnd: 4557
    functionName: todo_list_filter_update_refs
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - init_update_ref_record
    - strbuf_release
    - string_list_clear
    - string_list_insert
    - MOVE_ARRAY
    - is_null_oid
    - strlen
    - free
    - strncmp
    - sequencer_get_update_refs_state
    - strbuf_add
    - write_update_refs_state
    linkageType: ''
    returnType: void
    signature: "void todo_list_filter_update_refs(struct repository *r,\n\t\t\t\t
      \ struct todo_list *todo_list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sequencer_get_update_refs_state
      Src: /src/git/sequencer.c:4564,1
    - Dst: for_each_string_list_item
      Src: /src/git/sequencer.c:4567,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:4568,1
    - Dst: refs_read_ref
      Src: /src/git/sequencer.c:4570,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:4570,1
    - Dst: write_update_refs_state
      Src: /src/git/sequencer.c:4576,1
    - Dst: string_list_clear
      Src: /src/git/sequencer.c:4577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - r
    - refname
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4579
      start: 4559
    functionDepth: 4
    functionLinenumber: 4559
    functionLinenumberEnd: 4579
    functionName: do_update_ref
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - refs_read_ref
    - strcmp
    - write_update_refs_state
    - sequencer_get_update_refs_state
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int do_update_ref(struct repository *r, const char *refname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:4586,1
    - Dst: sequencer_get_update_refs_state
      Src: /src/git/sequencer.c:4590,1
    - Dst: for_each_string_list_item
      Src: /src/git/sequencer.c:4593,1
    - Dst: refs_update_ref
      Src: /src/git/sequencer.c:4597,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:4607,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:4609,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:4614,1
    - Dst: _
      Src: /src/git/sequencer.c:4615,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:4620,1
    - Dst: _
      Src: /src/git/sequencer.c:4621,1
    - Dst: string_list_clear
      Src: /src/git/sequencer.c:4626,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4627,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4628,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - r
    - quiet
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4630
      start: 4581
    functionDepth: 7
    functionLinenumber: 4581
    functionLinenumberEnd: 4630
    functionName: do_update_refs
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - strbuf_release
    - strbuf_addf
    - fprintf
    - _
    - refs_update_ref
    - sequencer_get_update_refs_state
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int do_update_refs(struct repository *r, int quiet)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_fixup
      Src: /src/git/sequencer.c:4636,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:4640,1
    - Dst: is_noop
      Src: /src/git/sequencer.c:4642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - todo_list
    argTypes:
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4645
      start: 4632
    functionDepth: 1
    functionLinenumber: 4632
    functionLinenumberEnd: 4645
    functionName: is_final_fixup
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - is_noop
    - is_fixup
    linkageType: ''
    returnType: int
    signature: int is_final_fixup(struct todo_list *todo_list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_noop
      Src: /src/git/sequencer.c:4652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - todo_list
    - offset
    argTypes:
    - struct todo_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4656
      start: 4647
    functionDepth: 1
    functionLinenumber: 4647
    functionLinenumberEnd: 4656
    functionName: peek_command
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - is_noop
    linkageType: ''
    returnType: enum todo_command
    signature: enum todo_command peek_command(struct todo_list *todo_list, int offset)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/sequencer.c:4669,1
    - Dst: repo_hold_locked_index
      Src: /src/git/sequencer.c:4671,1
    - Dst: refresh_index
      Src: /src/git/sequencer.c:4672,1
    - Dst: repo_update_index_if_able
      Src: /src/git/sequencer.c:4674,1
    - Dst: rollback_lock_file
      Src: /src/git/sequencer.c:4675,1
    - Dst: has_unstaged_changes
      Src: /src/git/sequencer.c:4677,1
    - Dst: has_uncommitted_changes
      Src: /src/git/sequencer.c:4678,1
    - Dst: strvec_pushl
      Src: /src/git/sequencer.c:4683,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:4688,1
    - Dst: capture_command
      Src: /src/git/sequencer.c:4689,1
    - Dst: die
      Src: /src/git/sequencer.c:4690,1
    - Dst: _
      Src: /src/git/sequencer.c:4690,1
    - Dst: strbuf_trim_trailing_newline
      Src: /src/git/sequencer.c:4691,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:4692,1
    - Dst: die
      Src: /src/git/sequencer.c:4693,1
    - Dst: _
      Src: /src/git/sequencer.c:4693,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:4695,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/sequencer.c:4696,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/sequencer.c:4699,1
    - Dst: die
      Src: /src/git/sequencer.c:4700,1
    - Dst: _
      Src: /src/git/sequencer.c:4700,1
    - Dst: write_file
      Src: /src/git/sequencer.c:4702,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:4702,1
    - Dst: refs_update_ref
      Src: /src/git/sequencer.c:4704,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:4704,1
    - Dst: null_oid
      Src: /src/git/sequencer.c:4705,1
    - Dst: printf
      Src: /src/git/sequencer.c:4709,1
    - Dst: _
      Src: /src/git/sequencer.c:4709,1
    - Dst: reset_head
      Src: /src/git/sequencer.c:4710,1
    - Dst: die
      Src: /src/git/sequencer.c:4711,1
    - Dst: _
      Src: /src/git/sequencer.c:4711,1
    - Dst: discard_index
      Src: /src/git/sequencer.c:4712,1
    - Dst: repo_read_index
      Src: /src/git/sequencer.c:4713,1
    - Dst: die
      Src: /src/git/sequencer.c:4714,1
    - Dst: _
      Src: /src/git/sequencer.c:4714,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4716,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - r
    - path
    - refname
    - message
    - silent
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4717
      start: 4658
    functionDepth: 12
    functionLinenumber: 4658
    functionLinenumberEnd: 4717
    functionName: create_autostash_internal
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_trim_trailing_newline
    - has_unstaged_changes
    - write_file
    - repo_get_oid
    - repo_hold_locked_index
    - capture_command
    - reset_head
    - refresh_index
    - printf
    - get_main_ref_store
    - discard_index
    - strbuf_release
    - die
    - repo_read_index
    - rollback_lock_file
    - has_uncommitted_changes
    - oid_to_hex
    - strvec_pushl
    - safe_create_leading_directories_const
    - repo_update_index_if_able
    - _
    - strbuf_reset
    - null_oid
    - refs_update_ref
    - BUG
    - strbuf_add_unique_abbrev
    linkageType: ''
    returnType: void
    signature: "void create_autostash_internal(struct repository *r,\n\t\t\t\t      const
      char *path,\n\t\t\t\t      const char *refname,\n\t\t\t\t      const char *message,\n\t\t\t\t
      \     bool silent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_autostash_internal
      Src: /src/git/sequencer.c:4721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4722
      start: 4719
    functionDepth: 13
    functionLinenumber: 4719
    functionLinenumberEnd: 4722
    functionName: create_autostash
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - create_autostash_internal
    linkageType: ''
    returnType: void
    signature: void create_autostash(struct repository *r, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_autostash_internal
      Src: /src/git/sequencer.c:4727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - refname
    - message
    - silent
    argTypes:
    - struct repository*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4728
      start: 4724
    functionDepth: 13
    functionLinenumber: 4724
    functionLinenumberEnd: 4728
    functionName: create_autostash_ref
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - create_autostash_internal
    linkageType: ''
    returnType: void
    signature: "void create_autostash_ref(struct repository *r, const char *refname,\n\t\t\t
      \ const char *message, bool silent)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4742,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4743,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:4745,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:4747,1
    - Dst: strvec_pushf
      Src: /src/git/sequencer.c:4749,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4750,1
    - Dst: run_command
      Src: /src/git/sequencer.c:4751,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:4755,1
    - Dst: _
      Src: /src/git/sequencer.c:4755,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4760,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4761,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4762,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4763,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4764,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:4765,1
    - Dst: run_command
      Src: /src/git/sequencer.c:4766,1
    - Dst: error
      Src: /src/git/sequencer.c:4767,1
    - Dst: _
      Src: /src/git/sequencer.c:4767,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:4769,1
    - Dst: _
      Src: /src/git/sequencer.c:4770,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:4776,1
    - Dst: _
      Src: /src/git/sequencer.c:4777,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 6
    argNames:
    - stash_oid
    - attempt_apply
    - label_ours
    - label_theirs
    - label_base
    - stash_msg
    argTypes:
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4784
      start: 4730
    functionDepth: 8
    functionLinenumber: 4730
    functionLinenumberEnd: 4784
    functionName: apply_save_autostash_oid
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - run_command
    - _
    - strvec_pushf
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int apply_save_autostash_oid(const char *stash_oid, int attempt_apply,\n\t\t\t\t
      \   const char *label_ours, const char *label_theirs,\n\t\t\t\t    const char
      *label_base,\n\t\t\t\t    const char *stash_msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:4791,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4793,1
    - Dst: strbuf_trim
      Src: /src/git/sequencer.c:4796,1
    - Dst: apply_save_autostash_oid
      Src: /src/git/sequencer.c:4798,1
    - Dst: unlink
      Src: /src/git/sequencer.c:4801,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - path
    - attempt_apply
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4804
      start: 4786
    functionDepth: 9
    functionLinenumber: 4786
    functionLinenumberEnd: 4804
    functionName: apply_save_autostash
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - read_oneliner
    - strbuf_release
    - strbuf_trim
    - apply_save_autostash_oid
    - unlink
    linkageType: ''
    returnType: int
    signature: int apply_save_autostash(const char *path, int attempt_apply)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_save_autostash
      Src: /src/git/sequencer.c:4808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4809
      start: 4806
    functionDepth: 10
    functionLinenumber: 4806
    functionLinenumberEnd: 4809
    functionName: save_autostash
    functionSourceFile: /src/git/sequencer.c
    functionUses: 1
    functionsReached:
    - apply_save_autostash
    linkageType: ''
    returnType: int
    signature: int save_autostash(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_save_autostash
      Src: /src/git/sequencer.c:4813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4814
      start: 4811
    functionDepth: 10
    functionLinenumber: 4811
    functionLinenumberEnd: 4814
    functionName: apply_autostash
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - apply_save_autostash
    linkageType: ''
    returnType: int
    signature: int apply_autostash(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_save_autostash_oid
      Src: /src/git/sequencer.c:4818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stash_oid
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4819
      start: 4816
    functionDepth: 9
    functionLinenumber: 4816
    functionLinenumberEnd: 4819
    functionName: apply_autostash_oid
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - apply_save_autostash_oid
    linkageType: ''
    returnType: int
    signature: int apply_autostash_oid(const char *stash_oid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:4831,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:4831,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/sequencer.c:4834,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:4834,1
    - Dst: error
      Src: /src/git/sequencer.c:4838,1
    - Dst: _
      Src: /src/git/sequencer.c:4838,1
    - Dst: oid_to_hex_r
      Src: /src/git/sequencer.c:4840,1
    - Dst: apply_save_autostash_oid
      Src: /src/git/sequencer.c:4841,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:4845,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:4845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - r
    - refname
    - attempt_apply
    - label_ours
    - label_theirs
    - label_base
    - stash_msg
    argTypes:
    - struct repository*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4849
      start: 4821
    functionDepth: 9
    functionLinenumber: 4821
    functionLinenumberEnd: 4849
    functionName: apply_save_autostash_ref
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - refs_delete_ref
    - oid_to_hex_r
    - refs_resolve_ref_unsafe
    - _
    - refs_ref_exists
    - apply_save_autostash_oid
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int apply_save_autostash_ref(struct repository *r, const char *refname,\n\t\t\t\t
      \   int attempt_apply,\n\t\t\t\t    const char *label_ours, const char *label_theirs,\n\t\t\t\t
      \   const char *label_base,\n\t\t\t\t    const char *stash_msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_save_autostash_ref
      Src: /src/git/sequencer.c:4853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - refname
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4855
      start: 4851
    functionDepth: 10
    functionLinenumber: 4851
    functionLinenumberEnd: 4855
    functionName: save_autostash_ref
    functionSourceFile: /src/git/sequencer.c
    functionUses: 1
    functionsReached:
    - apply_save_autostash_ref
    linkageType: ''
    returnType: int
    signature: int save_autostash_ref(struct repository *r, const char *refname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_save_autostash_ref
      Src: /src/git/sequencer.c:4861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - r
    - refname
    - label_ours
    - label_theirs
    - label_base
    - stash_msg
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4864
      start: 4857
    functionDepth: 10
    functionLinenumber: 4857
    functionLinenumberEnd: 4864
    functionName: apply_autostash_ref
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - apply_save_autostash_ref
    linkageType: ''
    returnType: int
    signature: "int apply_autostash_ref(struct repository *r, const char *refname,\n\t\t\tconst
      char *label_ours, const char *label_theirs,\n\t\t\tconst char *label_base, const
      char *stash_msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reflog_message
      Src: /src/git/sequencer.c:4875,1
    - Dst: sequencer_reflog_action
      Src: /src/git/sequencer.c:4877,1
    - Dst: reset_head
      Src: /src/git/sequencer.c:4879,1
    - Dst: apply_autostash
      Src: /src/git/sequencer.c:4880,1
    - Dst: rebase_path_autostash
      Src: /src/git/sequencer.c:4880,1
    - Dst: sequencer_remove_state
      Src: /src/git/sequencer.c:4881,1
    - Dst: error
      Src: /src/git/sequencer.c:4882,1
    - Dst: _
      Src: /src/git/sequencer.c:4882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - r
    - opts
    - onto_name
    - onto
    - orig_head
    argTypes:
    - struct repository*
    - struct replay_opts*
    - char*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4886
      start: 4866
    functionDepth: 11
    functionLinenumber: 4866
    functionLinenumberEnd: 4886
    functionName: checkout_onto
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - reflog_message
    - sequencer_remove_state
    - rebase_path_autostash
    - sequencer_reflog_action
    - reset_head
    - apply_autostash
    - _
    linkageType: ''
    returnType: int
    signature: "int checkout_onto(struct repository *r, struct replay_opts *opts,\n\t\t\t
      const char *onto_name, const struct object_id *onto,\n\t\t\t const struct object_id
      *orig_head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:4894,1
    - Dst: lookup_commit
      Src: /src/git/sequencer.c:4895,1
    - Dst: repo_parse_commit
      Src: /src/git/sequencer.c:4896,1
    - Dst: get_message
      Src: /src/git/sequencer.c:4896,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:4897,1
    - Dst: _
      Src: /src/git/sequencer.c:4897,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:4899,1
    - Dst: _
      Src: /src/git/sequencer.c:4899,1
    - Dst: free_message
      Src: /src/git/sequencer.c:4900,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4904
      start: 4888
    functionDepth: 6
    functionLinenumber: 4888
    functionLinenumberEnd: 4904
    functionName: stopped_at_head
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - get_message
    - repo_get_oid
    - repo_parse_commit
    - lookup_commit
    - free_message
    - _
    - fprintf
    linkageType: ''
    returnType: int
    signature: int stopped_at_head(struct repository *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file_or_whine
      Src: /src/git/sequencer.c:4913,1
    - Dst: get_todo_path
      Src: /src/git/sequencer.c:4913,1
    - Dst: get_item_line_offset
      Src: /src/git/sequencer.c:4915,1
    - Dst: memcmp
      Src: /src/git/sequencer.c:4917,1
    - Dst: todo_list_release
      Src: /src/git/sequencer.c:4919,1
    - Dst: read_populate_todo
      Src: /src/git/sequencer.c:4920,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:4925,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - r
    - todo_list
    - opts
    argTypes:
    - struct repository*
    - struct todo_list*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4928
      start: 4906
    functionDepth: 8
    functionLinenumber: 4906
    functionLinenumberEnd: 4928
    functionName: reread_todo_if_changed
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_todo_path
    - get_item_line_offset
    - read_populate_todo
    - todo_list_release
    - strbuf_read_file_or_whine
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int reread_todo_if_changed(struct repository *r,\n\t\t\t\t  struct
      todo_list *todo_list,\n\t\t\t\t  struct replay_opts *opts)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: todo_item_get_arg
      Src: /src/git/sequencer.c:4948,1
    - Dst: do_pick_commit
      Src: /src/git/sequencer.c:4950,1
    - Dst: is_final_fixup
      Src: /src/git/sequencer.c:4950,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:4952,1
    - Dst: term_clear_line
      Src: /src/git/sequencer.c:4961,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:4962,1
    - Dst: _
      Src: /src/git/sequencer.c:4962,1
    - Dst: short_commit_name
      Src: /src/git/sequencer.c:4963,1
    - Dst: error_with_patch
      Src: /src/git/sequencer.c:4965,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:4968,1
    - Dst: record_in_rewritten
      Src: /src/git/sequencer.c:4969,1
    - Dst: peek_command
      Src: /src/git/sequencer.c:4970,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:4971,1
    - Dst: intend_to_amend
      Src: /src/git/sequencer.c:4973,1
    - Dst: error_failed_squash
      Src: /src/git/sequencer.c:4974,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:4976,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:4987,1
    - Dst: oideq
      Src: /src/git/sequencer.c:4988,1
    - Dst: oideq
      Src: /src/git/sequencer.c:4990,1
    - Dst: error_with_patch
      Src: /src/git/sequencer.c:4993,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 5
    argNames:
    - r
    - todo_list
    - opts
    - check_todo
    - reschedule
    argTypes:
    - struct repository*
    - struct todo_list*
    - struct replay_opts*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4998
      start: 4941
    functionDepth: 22
    functionLinenumber: 4941
    functionLinenumberEnd: 4998
    functionName: pick_one_commit
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error_with_patch
    - record_in_rewritten
    - oideq
    - repo_get_oid
    - do_pick_commit
    - is_final_fixup
    - peek_command
    - intend_to_amend
    - term_clear_line
    - todo_item_get_arg
    - _
    - is_rebase_i
    - error_failed_squash
    - is_fixup
    - fprintf
    - short_commit_name
    linkageType: ''
    returnType: int
    signature: "int pick_one_commit(struct repository *r,\n\t\t\t   struct todo_list
      *todo_list,\n\t\t\t   struct replay_opts *opts,\n\t\t\t   int *check_todo, int*
      reschedule)"
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/git/sequencer.c:5008,1
    - Dst: should_edit
      Src: /src/git/sequencer.c:5009,1
    - Dst: read_and_refresh_cache
      Src: /src/git/sequencer.c:5012,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5015,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:5015,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5016,1
    - Dst: rebase_path_stopped_sha
      Src: /src/git/sequencer.c:5016,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5017,1
    - Dst: rebase_path_amend
      Src: /src/git/sequencer.c:5017,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5018,1
    - Dst: rebase_path_patch
      Src: /src/git/sequencer.c:5018,1
    - Dst: todo_item_get_arg
      Src: /src/git/sequencer.c:5022,1
    - Dst: save_todo
      Src: /src/git/sequencer.c:5025,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:5027,1
    - Dst: fopen
      Src: /src/git/sequencer.c:5029,1
    - Dst: rebase_path_msgnum
      Src: /src/git/sequencer.c:5029,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:5034,1
    - Dst: fclose
      Src: /src/git/sequencer.c:5035,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:5038,1
    - Dst: _
      Src: /src/git/sequencer.c:5038,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5043,1
    - Dst: rebase_path_author_script
      Src: /src/git/sequencer.c:5043,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5044,1
    - Dst: git_path_merge_head
      Src: /src/git/sequencer.c:5044,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:5045,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5045,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:5047,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5047,1
    - Dst: term_clear_line
      Src: /src/git/sequencer.c:5052,1
    - Dst: stopped_at_head
      Src: /src/git/sequencer.c:5053,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:5056,1
    - Dst: pick_one_commit
      Src: /src/git/sequencer.c:5059,1
    - Dst: term_clear_line
      Src: /src/git/sequencer.c:5068,1
    - Dst: do_exec
      Src: /src/git/sequencer.c:5070,1
    - Dst: do_label
      Src: /src/git/sequencer.c:5079,1
    - Dst: do_reset
      Src: /src/git/sequencer.c:5082,1
    - Dst: do_merge
      Src: /src/git/sequencer.c:5085,1
    - Dst: record_in_rewritten
      Src: /src/git/sequencer.c:5089,1
    - Dst: peek_command
      Src: /src/git/sequencer.c:5090,1
    - Dst: error_with_patch
      Src: /src/git/sequencer.c:5093,1
    - Dst: strbuf_add
      Src: /src/git/sequencer.c:5098,1
    - Dst: do_update_ref
      Src: /src/git/sequencer.c:5099,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:5101,1
    - Dst: is_noop
      Src: /src/git/sequencer.c:5102,1
    - Dst: error
      Src: /src/git/sequencer.c:5103,1
    - Dst: _
      Src: /src/git/sequencer.c:5103,1
    - Dst: advise
      Src: /src/git/sequencer.c:5106,1
    - Dst: _
      Src: /src/git/sequencer.c:5106,1
    - Dst: get_item_line_length
      Src: /src/git/sequencer.c:5107,1
    - Dst: get_item_line
      Src: /src/git/sequencer.c:5109,1
    - Dst: save_todo
      Src: /src/git/sequencer.c:5110,1
    - Dst: write_rebase_head
      Src: /src/git/sequencer.c:5113,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:5114,1
    - Dst: reread_todo_if_changed
      Src: /src/git/sequencer.c:5115,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:5125,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:5129,1
    - Dst: rebase_path_head_name
      Src: /src/git/sequencer.c:5129,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:5130,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:5135,1
    - Dst: error
      Src: /src/git/sequencer.c:5136,1
    - Dst: _
      Src: /src/git/sequencer.c:5136,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:5138,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:5139,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:5142,1
    - Dst: rebase_path_orig_head
      Src: /src/git/sequencer.c:5142,1
    - Dst: get_oid_hex
      Src: /src/git/sequencer.c:5143,1
    - Dst: error
      Src: /src/git/sequencer.c:5144,1
    - Dst: _
      Src: /src/git/sequencer.c:5144,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:5147,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:5148,1
    - Dst: rebase_path_onto
      Src: /src/git/sequencer.c:5148,1
    - Dst: error
      Src: /src/git/sequencer.c:5149,1
    - Dst: _
      Src: /src/git/sequencer.c:5149,1
    - Dst: reflog_message
      Src: /src/git/sequencer.c:5152,1
    - Dst: refs_update_ref
      Src: /src/git/sequencer.c:5154,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5154,1
    - Dst: error
      Src: /src/git/sequencer.c:5156,1
    - Dst: _
      Src: /src/git/sequencer.c:5156,1
    - Dst: reflog_message
      Src: /src/git/sequencer.c:5160,1
    - Dst: refs_update_symref
      Src: /src/git/sequencer.c:5162,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5162,1
    - Dst: error
      Src: /src/git/sequencer.c:5163,1
    - Dst: _
      Src: /src/git/sequencer.c:5163,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:5167,1
    - Dst: memset
      Src: /src/git/sequencer.c:5174,1
    - Dst: repo_init_revisions
      Src: /src/git/sequencer.c:5175,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:5181,1
    - Dst: rebase_path_orig_head
      Src: /src/git/sequencer.c:5181,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:5182,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:5183,1
    - Dst: diff_tree_oid
      Src: /src/git/sequencer.c:5184,1
    - Dst: log_tree_diff_flush
      Src: /src/git/sequencer.c:5186,1
    - Dst: release_revisions
      Src: /src/git/sequencer.c:5188,1
    - Dst: flush_rewritten_pending
      Src: /src/git/sequencer.c:5190,1
    - Dst: stat
      Src: /src/git/sequencer.c:5191,1
    - Dst: rebase_path_rewritten_list
      Src: /src/git/sequencer.c:5191,1
    - Dst: open
      Src: /src/git/sequencer.c:5196,1
    - Dst: rebase_path_rewritten_list
      Src: /src/git/sequencer.c:5196,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:5198,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:5199,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:5200,1
    - Dst: run_command
      Src: /src/git/sequencer.c:5202,1
    - Dst: rebase_path_rewritten_list
      Src: /src/git/sequencer.c:5204,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:5205,1
    - Dst: run_hooks_opt
      Src: /src/git/sequencer.c:5206,1
    - Dst: apply_autostash
      Src: /src/git/sequencer.c:5208,1
    - Dst: rebase_path_autostash
      Src: /src/git/sequencer.c:5208,1
    - Dst: term_clear_line
      Src: /src/git/sequencer.c:5212,1
    - Dst: fprintf
      Src: /src/git/sequencer.c:5213,1
    - Dst: _
      Src: /src/git/sequencer.c:5214,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:5218,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:5219,1
    - Dst: do_update_refs
      Src: /src/git/sequencer.c:5221,1
    - Dst: sequencer_remove_state
      Src: /src/git/sequencer.c:5229,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 160
    argCount: 3
    argNames:
    - r
    - todo_list
    - opts
    argTypes:
    - struct repository*
    - struct todo_list*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5230
      start: 5000
    functionDepth: 23
    functionLinenumber: 5000
    functionLinenumberEnd: 5230
    functionName: pick_commits
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_with_patch
    - read_oneliner
    - strvec_push
    - repo_get_oid
    - refs_update_symref
    - rebase_path_autostash
    - git_path_merge_head
    - repo_init_revisions
    - rebase_path_patch
    - run_hooks_opt
    - apply_autostash
    - write_rebase_head
    - should_edit
    - rebase_path_author_script
    - save_todo
    - get_main_ref_store
    - pick_one_commit
    - error
    - record_in_rewritten
    - strbuf_release
    - rebase_path_message
    - do_update_ref
    - rebase_path_head_name
    - reflog_message
    - release_revisions
    - sequencer_remove_state
    - do_reset
    - fopen
    - rebase_path_msgnum
    - rebase_path_rewritten_list
    - do_label
    - term_clear_line
    - stopped_at_head
    - do_merge
    - get_item_line_length
    - advise
    - unlink
    - do_exec
    - refs_delete_ref
    - memset
    - get_oid_hex
    - rebase_path_onto
    - stat
    - do_update_refs
    - ASSERT
    - is_noop
    - log_tree_diff_flush
    - todo_item_get_arg
    - _
    - is_rebase_i
    - peek_command
    - strbuf_add
    - read_and_refresh_cache
    - get_item_line
    - open
    - reread_todo_if_changed
    - run_command
    - strbuf_reset
    - rebase_path_stopped_sha
    - diff_tree_oid
    - starts_with
    - rebase_path_amend
    - flush_rewritten_pending
    - refs_update_ref
    - rebase_path_orig_head
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int pick_commits(struct repository *r,\n\t\t\tstruct todo_list *todo_list,\n\t\t\tstruct
      replay_opts *opts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:5236,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5236,1
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:5237,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5237,1
    - Dst: error
      Src: /src/git/sequencer.c:5238,1
    - Dst: _
      Src: /src/git/sequencer.c:5238,1
    - Dst: strvec_push
      Src: /src/git/sequencer.c:5241,1
    - Dst: isatty
      Src: /src/git/sequencer.c:5249,1
    - Dst: strvec_pushl
      Src: /src/git/sequencer.c:5254,1
    - Dst: run_command
      Src: /src/git/sequencer.c:5256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - r
    - opts
    argTypes:
    - struct repository*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5257
      start: 5232
    functionDepth: 8
    functionLinenumber: 5232
    functionLinenumberEnd: 5257
    functionName: continue_single_pick
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - run_command
    - strvec_pushl
    - _
    - refs_ref_exists
    - isatty
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int continue_single_pick(struct repository *r, struct replay_opts *opts)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: reflog_message
      Src: /src/git/sequencer.c:5267,1
    - Dst: has_unstaged_changes
      Src: /src/git/sequencer.c:5270,1
    - Dst: error
      Src: /src/git/sequencer.c:5271,1
    - Dst: _
      Src: /src/git/sequencer.c:5271,1
    - Dst: has_uncommitted_changes
      Src: /src/git/sequencer.c:5275,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:5277,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:5277,1
    - Dst: gpg_sign_opt_quoted
      Src: /src/git/sequencer.c:5278,1
    - Dst: error
      Src: /src/git/sequencer.c:5279,1
    - Dst: _
      Src: /src/git/sequencer.c:5279,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:5283,1
    - Dst: rebase_path_amend
      Src: /src/git/sequencer.c:5283,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:5286,1
    - Dst: error
      Src: /src/git/sequencer.c:5287,1
    - Dst: _
      Src: /src/git/sequencer.c:5287,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:5291,1
    - Dst: rebase_path_amend
      Src: /src/git/sequencer.c:5291,1
    - Dst: error
      Src: /src/git/sequencer.c:5292,1
    - Dst: _
      Src: /src/git/sequencer.c:5292,1
    - Dst: rebase_path_amend
      Src: /src/git/sequencer.c:5292,1
    - Dst: get_oid_hex
      Src: /src/git/sequencer.c:5296,1
    - Dst: error
      Src: /src/git/sequencer.c:5297,1
    - Dst: _
      Src: /src/git/sequencer.c:5297,1
    - Dst: rebase_path_amend
      Src: /src/git/sequencer.c:5298,1
    - Dst: oideq
      Src: /src/git/sequencer.c:5301,1
    - Dst: error
      Src: /src/git/sequencer.c:5302,1
    - Dst: _
      Src: /src/git/sequencer.c:5302,1
    - Dst: oideq
      Src: /src/git/sequencer.c:5317,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:5318,1
    - Dst: rebase_path_stopped_sha
      Src: /src/git/sequencer.c:5318,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:5320,1
    - Dst: peek_command
      Src: /src/git/sequencer.c:5320,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5321,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:5321,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5322,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:5322,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5323,1
    - Dst: rebase_path_current_fixups
      Src: /src/git/sequencer.c:5323,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:5324,1
    - Dst: BUG
      Src: /src/git/sequencer.c:5334,1
    - Dst: strbuf_setlen
      Src: /src/git/sequencer.c:5337,1
    - Dst: write_message
      Src: /src/git/sequencer.c:5338,1
    - Dst: rebase_path_current_fixups
      Src: /src/git/sequencer.c:5338,1
    - Dst: error
      Src: /src/git/sequencer.c:5340,1
    - Dst: _
      Src: /src/git/sequencer.c:5340,1
    - Dst: rebase_path_current_fixups
      Src: /src/git/sequencer.c:5341,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:5357,1
    - Dst: peek_command
      Src: /src/git/sequencer.c:5357,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:5365,1
    - Dst: strstr
      Src: /src/git/sequencer.c:5366,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:5368,1
    - Dst: peek_command
      Src: /src/git/sequencer.c:5368,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:5375,1
    - Dst: get_commit_output_encoding
      Src: /src/git/sequencer.c:5376,1
    - Dst: parse_head
      Src: /src/git/sequencer.c:5378,1
    - Dst: error
      Src: /src/git/sequencer.c:5379,1
    - Dst: _
      Src: /src/git/sequencer.c:5379,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/sequencer.c:5383,1
    - Dst: error
      Src: /src/git/sequencer.c:5385,1
    - Dst: _
      Src: /src/git/sequencer.c:5385,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:5386,1
    - Dst: find_commit_subject
      Src: /src/git/sequencer.c:5389,1
    - Dst: write_message
      Src: /src/git/sequencer.c:5390,1
    - Dst: strlen
      Src: /src/git/sequencer.c:5390,1
    - Dst: error
      Src: /src/git/sequencer.c:5391,1
    - Dst: _
      Src: /src/git/sequencer.c:5391,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/sequencer.c:5399,1
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:5409,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5409,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:5411,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5411,1
    - Dst: error
      Src: /src/git/sequencer.c:5413,1
    - Dst: _
      Src: /src/git/sequencer.c:5413,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5417,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:5417,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:5418,1
    - Dst: _
      Src: /src/git/sequencer.c:5418,1
    - Dst: git_path_merge_msg
      Src: /src/git/sequencer.c:5419,1
    - Dst: run_git_commit
      Src: /src/git/sequencer.c:5429,1
    - Dst: rebase_path_message
      Src: /src/git/sequencer.c:5429,1
    - Dst: error
      Src: /src/git/sequencer.c:5431,1
    - Dst: _
      Src: /src/git/sequencer.c:5431,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5435,1
    - Dst: rebase_path_amend
      Src: /src/git/sequencer.c:5435,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5436,1
    - Dst: git_path_merge_head
      Src: /src/git/sequencer.c:5436,1
    - Dst: refs_delete_ref
      Src: /src/git/sequencer.c:5437,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5437,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5440,1
    - Dst: rebase_path_fixup_msg
      Src: /src/git/sequencer.c:5440,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5441,1
    - Dst: rebase_path_squash_msg
      Src: /src/git/sequencer.c:5441,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5448,1
    - Dst: rebase_path_current_fixups
      Src: /src/git/sequencer.c:5448,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:5449,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:5456,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 128
    argCount: 3
    argNames:
    - r
    - opts
    - todo_list
    argTypes:
    - struct repository*
    - struct replay_opts*
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5458
      start: 5259
    functionDepth: 10
    functionLinenumber: 5259
    functionLinenumberEnd: 5458
    functionName: commit_staged_changes
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error_errno
    - has_unstaged_changes
    - read_oneliner
    - BUG
    - rebase_path_current_fixups
    - repo_get_oid
    - git_path_merge_head
    - get_commit_output_encoding
    - file_exists
    - parse_head
    - rebase_path_squash_msg
    - error
    - gpg_sign_opt_quoted
    - reflog_message
    - get_main_ref_store
    - rebase_path_message
    - find_commit_subject
    - strstr
    - strbuf_release
    - strbuf_setlen
    - refs_ref_exists
    - run_git_commit
    - unlink
    - has_uncommitted_changes
    - oid_to_hex
    - refs_delete_ref
    - get_oid_hex
    - rebase_path_fixup_msg
    - repo_unuse_commit_buffer
    - write_message
    - repo_logmsg_reencode
    - _
    - git_path_merge_msg
    - peek_command
    - strbuf_reset
    - rebase_path_stopped_sha
    - starts_with
    - strlen
    - rebase_path_amend
    - is_fixup
    - oideq
    linkageType: ''
    returnType: int
    signature: "int commit_staged_changes(struct repository *r,\n\t\t\t\t struct replay_opts
      *opts,\n\t\t\t\t struct todo_list *todo_list)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: read_and_refresh_cache
      Src: /src/git/sequencer.c:5465,1
    - Dst: read_populate_opts
      Src: /src/git/sequencer.c:5468,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:5470,1
    - Dst: read_populate_todo
      Src: /src/git/sequencer.c:5471,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:5474,1
    - Dst: rebase_path_dropped
      Src: /src/git/sequencer.c:5474,1
    - Dst: todo_list_check_against_backup
      Src: /src/git/sequencer.c:5475,1
    - Dst: unlink
      Src: /src/git/sequencer.c:5479,1
    - Dst: rebase_path_dropped
      Src: /src/git/sequencer.c:5479,1
    - Dst: commit_staged_changes
      Src: /src/git/sequencer.c:5482,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:5486,1
    - Dst: get_todo_path
      Src: /src/git/sequencer.c:5486,1
    - Dst: continue_single_pick
      Src: /src/git/sequencer.c:5487,1
    - Dst: read_populate_todo
      Src: /src/git/sequencer.c:5488,1
    - Dst: is_rebase_i
      Src: /src/git/sequencer.c:5491,1
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:5493,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5493,1
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:5495,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:5495,1
    - Dst: continue_single_pick
      Src: /src/git/sequencer.c:5496,1
    - Dst: index_differs_from
      Src: /src/git/sequencer.c:5500,1
    - Dst: error_dirty_index
      Src: /src/git/sequencer.c:5501,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:5505,1
    - Dst: rebase_path_stopped_sha
      Src: /src/git/sequencer.c:5505,1
    - Dst: read_oneliner
      Src: /src/git/sequencer.c:5509,1
    - Dst: rebase_path_stopped_sha
      Src: /src/git/sequencer.c:5509,1
    - Dst: get_oid_hex
      Src: /src/git/sequencer.c:5511,1
    - Dst: record_in_rewritten
      Src: /src/git/sequencer.c:5512,1
    - Dst: peek_command
      Src: /src/git/sequencer.c:5512,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:5513,1
    - Dst: pick_commits
      Src: /src/git/sequencer.c:5516,1
    - Dst: todo_list_release
      Src: /src/git/sequencer.c:5518,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 2
    argNames:
    - r
    - opts
    argTypes:
    - struct repository*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5520
      start: 5460
    functionDepth: 24
    functionLinenumber: 5460
    functionLinenumberEnd: 5520
    functionName: sequencer_continue
    functionSourceFile: /src/git/sequencer.c
    functionUses: 1
    functionsReached:
    - read_oneliner
    - todo_list_check_against_backup
    - file_exists
    - get_main_ref_store
    - record_in_rewritten
    - strbuf_release
    - get_todo_path
    - refs_ref_exists
    - error_dirty_index
    - commit_staged_changes
    - todo_list_release
    - unlink
    - get_oid_hex
    - read_populate_todo
    - is_rebase_i
    - peek_command
    - read_and_refresh_cache
    - rebase_path_dropped
    - rebase_path_stopped_sha
    - read_populate_opts
    - pick_commits
    - index_differs_from
    - continue_single_pick
    linkageType: ''
    returnType: int
    signature: int sequencer_continue(struct repository *r, struct replay_opts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pick_commit
      Src: /src/git/sequencer.c:5533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - r
    - cmit
    - opts
    argTypes:
    - struct repository*
    - struct commit*
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5534
      start: 5522
    functionDepth: 22
    functionLinenumber: 5522
    functionLinenumberEnd: 5534
    functionName: single_pick
    functionSourceFile: /src/git/sequencer.c
    functionUses: 3
    functionsReached:
    - do_pick_commit
    linkageType: ''
    returnType: int
    signature: "int single_pick(struct repository *r,\n\t\t       struct commit *cmit,\n\t\t
      \      struct replay_opts *opts)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/sequencer.c:5543,1
    - Dst: read_and_refresh_cache
      Src: /src/git/sequencer.c:5544,1
    - Dst: strlen
      Src: /src/git/sequencer.c:5554,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:5557,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/sequencer.c:5558,1
    - Dst: odb_read_object_info
      Src: /src/git/sequencer.c:5559,1
    - Dst: error
      Src: /src/git/sequencer.c:5561,1
    - Dst: _
      Src: /src/git/sequencer.c:5561,1
    - Dst: type_name
      Src: /src/git/sequencer.c:5562,1
    - Dst: error
      Src: /src/git/sequencer.c:5566,1
    - Dst: _
      Src: /src/git/sequencer.c:5566,1
    - Dst: prepare_revision_walk
      Src: /src/git/sequencer.c:5584,1
    - Dst: error
      Src: /src/git/sequencer.c:5585,1
    - Dst: _
      Src: /src/git/sequencer.c:5585,1
    - Dst: get_revision
      Src: /src/git/sequencer.c:5589,1
    - Dst: error
      Src: /src/git/sequencer.c:5591,1
    - Dst: _
      Src: /src/git/sequencer.c:5591,1
    - Dst: get_revision
      Src: /src/git/sequencer.c:5595,1
    - Dst: BUG
      Src: /src/git/sequencer.c:5596,1
    - Dst: single_pick
      Src: /src/git/sequencer.c:5598,1
    - Dst: walk_revs_populate_todo
      Src: /src/git/sequencer.c:5608,1
    - Dst: create_seq_dir
      Src: /src/git/sequencer.c:5609,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:5614,1
    - Dst: error
      Src: /src/git/sequencer.c:5615,1
    - Dst: _
      Src: /src/git/sequencer.c:5615,1
    - Dst: save_head
      Src: /src/git/sequencer.c:5619,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:5619,1
    - Dst: save_opts
      Src: /src/git/sequencer.c:5624,1
    - Dst: update_abort_safety_file
      Src: /src/git/sequencer.c:5629,1
    - Dst: pick_commits
      Src: /src/git/sequencer.c:5630,1
    - Dst: todo_list_release
      Src: /src/git/sequencer.c:5633,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 2
    argNames:
    - r
    - opts
    argTypes:
    - struct repository*
    - struct replay_opts*
    assertStmts:
    - condition: (opts->revs)
      pos:
        line_end: 5542
        line_start: 5542
        source_file: /src/git/sequencer.c
    constantsTouched: []
    func_position:
      end: 5635
      start: 5536
    functionDepth: 24
    functionLinenumber: 5536
    functionLinenumberEnd: 5635
    functionName: sequencer_pick_revisions
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - repo_get_oid
    - create_seq_dir
    - odb_read_object_info
    - type_name
    - error
    - update_abort_safety_file
    - save_head
    - save_opts
    - prepare_revision_walk
    - todo_list_release
    - oid_to_hex
    - _
    - single_pick
    - walk_revs_populate_todo
    - read_and_refresh_cache
    - assert
    - lookup_commit_reference_gently
    - strlen
    - pick_commits
    - get_revision
    - BUG
    linkageType: ''
    returnType: int
    signature: "int sequencer_pick_revisions(struct repository *r,\n\t\t\t     struct
      replay_opts *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_commented_addf
      Src: /src/git/sequencer.c:5647,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:5649,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:5655,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5656,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5657,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5658,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5660,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5661,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5662,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5664,1
    - Dst: refer_to_commit
      Src: /src/git/sequencer.c:5665,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5668,1
    - Dst: refer_to_commit
      Src: /src/git/sequencer.c:5669,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - r
    - subject
    - commit
    - parent
    - use_commit_reference
    - message
    argTypes:
    - struct repository*
    - char*
    - struct commit*
    - struct commit*
    - bool
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5672
      start: 5637
    functionDepth: 6
    functionLinenumber: 5637
    functionLinenumberEnd: 5672
    functionName: sequencer_format_revert_message
    functionSourceFile: /src/git/sequencer.c
    functionUses: 2
    functionsReached:
    - refer_to_commit
    - strbuf_commented_addf
    - starts_with
    - strbuf_addstr
    - skip_prefix
    linkageType: ''
    returnType: void
    signature: "void sequencer_format_revert_message(struct repository *r,\n\t\t\t\t
      \    const char *subject,\n\t\t\t\t     const struct commit *commit,\n\t\t\t\t
      \    const struct commit *parent,\n\t\t\t\t     bool use_commit_reference,\n\t\t\t\t
      \    struct strbuf *message)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5680,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5681,1
    - Dst: fmt_name
      Src: /src/git/sequencer.c:5681,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:5682,1
    - Dst: strbuf_complete_line
      Src: /src/git/sequencer.c:5685,1
    - Dst: strncmp
      Src: /src/git/sequencer.c:5692,1
    - Dst: has_conforming_footer
      Src: /src/git/sequencer.c:5695,1
    - Dst: strbuf_splice
      Src: /src/git/sequencer.c:5723,1
    - Dst: strlen
      Src: /src/git/sequencer.c:5724,1
    - Dst: strbuf_splice
      Src: /src/git/sequencer.c:5728,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:5731,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - msgbuf
    - ignore_footer
    - flag
    argTypes:
    - struct strbuf*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5732
      start: 5674
    functionDepth: 8
    functionLinenumber: 5674
    functionLinenumberEnd: 5732
    functionName: append_signoff
    functionSourceFile: /src/git/sequencer.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - strbuf_complete_line
    - strbuf_addch
    - strlen
    - has_conforming_footer
    - strbuf_splice
    - strbuf_addstr
    - strncmp
    - fmt_name
    linkageType: ''
    returnType: void
    signature: void append_signoff(struct strbuf *msgbuf, size_t ignore_footer, unsigned
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/sequencer.c:5745,1
    - Dst: container_of
      Src: /src/git/sequencer.c:5746,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:5748,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:5748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - fndata
    - eptr
    - entry_or_key
    - key
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5749
      start: 5739
    functionDepth: 1
    functionLinenumber: 5739
    functionLinenumberEnd: 5749
    functionName: labels_cmp
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int labels_cmp(const void *fndata UNUSED,\n\t\t      const struct
      hashmap_entry *eptr,\n\t\t      const struct hashmap_entry *entry_or_key, const
      void *key)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: oidmap_get
      Src: /src/git/sequencer.c:5771,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:5788,1
    - Dst: strbuf_grow
      Src: /src/git/sequencer.c:5792,1
    - Dst: repo_find_unique_abbrev_r
      Src: /src/git/sequencer.c:5795,1
    - Dst: hashmap_get_from_hash
      Src: /src/git/sequencer.c:5802,1
    - Dst: strihash
      Src: /src/git/sequencer.c:5802,1
    - Dst: strlen
      Src: /src/git/sequencer.c:5803,1
    - Dst: oid_to_hex_r
      Src: /src/git/sequencer.c:5805,1
    - Dst: hashmap_get_from_hash
      Src: /src/git/sequencer.c:5809,1
    - Dst: strihash
      Src: /src/git/sequencer.c:5810,1
    - Dst: isalnum
      Src: /src/git/sequencer.c:5837,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:5839,1
    - Dst: utf8_width
      Src: /src/git/sequencer.c:5843,1
    - Dst: strbuf_add
      Src: /src/git/sequencer.c:5847,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:5851,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:5855,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:5857,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/sequencer.c:5858,1
    - Dst: get_oid_hex
      Src: /src/git/sequencer.c:5863,1
    - Dst: hashmap_get_from_hash
      Src: /src/git/sequencer.c:5865,1
    - Dst: strihash
      Src: /src/git/sequencer.c:5866,1
    - Dst: strbuf_setlen
      Src: /src/git/sequencer.c:5876,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:5877,1
    - Dst: hashmap_get_from_hash
      Src: /src/git/sequencer.c:5878,1
    - Dst: strihash
      Src: /src/git/sequencer.c:5879,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/sequencer.c:5888,1
    - Dst: hashmap_entry_init
      Src: /src/git/sequencer.c:5889,1
    - Dst: strihash
      Src: /src/git/sequencer.c:5889,1
    - Dst: hashmap_add
      Src: /src/git/sequencer.c:5890,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/sequencer.c:5892,1
    - Dst: oidcpy
      Src: /src/git/sequencer.c:5893,1
    - Dst: oidmap_put
      Src: /src/git/sequencer.c:5894,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 3
    argNames:
    - oid
    - label
    - state
    argTypes:
    - struct object_id*
    - char*
    - struct label_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5897
      start: 5763
    functionDepth: 4
    functionLinenumber: 5763
    functionLinenumberEnd: 5897
    functionName: label_oid
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - utf8_width
    - oidcpy
    - strbuf_addf
    - strihash
    - hashmap_get_from_hash
    - hashmap_add
    - oidmap_get
    - strbuf_setlen
    - hashmap_entry_init
    - strbuf_addstr
    - isalnum
    - oidmap_put
    - get_oid_hex
    - repo_find_unique_abbrev_r
    - strbuf_grow
    - strbuf_add
    - oid_to_hex_r
    - strbuf_reset
    - strbuf_addch
    - strlen
    - strbuf_add_unique_abbrev
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: char
    signature: "char *label_oid(struct object_id *oid, const char *label,\n\t\t\t
      \    struct label_state *state)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/sequencer.c:5925,1
    - Dst: oidmap_init
      Src: /src/git/sequencer.c:5927,1
    - Dst: oidmap_init
      Src: /src/git/sequencer.c:5928,1
    - Dst: hashmap_init
      Src: /src/git/sequencer.c:5929,1
    - Dst: strbuf_init
      Src: /src/git/sequencer.c:5930,1
    - Dst: load_branch_decorations
      Src: /src/git/sequencer.c:5931,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/sequencer.c:5936,1
    - Dst: oidcpy
      Src: /src/git/sequencer.c:5937,1
    - Dst: oidmap_put
      Src: /src/git/sequencer.c:5938,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/sequencer.c:5940,1
    - Dst: hashmap_entry_init
      Src: /src/git/sequencer.c:5941,1
    - Dst: strihash
      Src: /src/git/sequencer.c:5941,1
    - Dst: hashmap_add
      Src: /src/git/sequencer.c:5942,1
    - Dst: get_revision
      Src: /src/git/sequencer.c:5951,1
    - Dst: commit_list_insert
      Src: /src/git/sequencer.c:5957,1
    - Dst: oidset_insert
      Src: /src/git/sequencer.c:5958,1
    - Dst: is_original_commit_empty
      Src: /src/git/sequencer.c:5960,1
    - Dst: warning
      Src: /src/git/sequencer.c:5963,1
    - Dst: _
      Src: /src/git/sequencer.c:5963,1
    - Dst: short_commit_name
      Src: /src/git/sequencer.c:5964,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:5971,1
    - Dst: pretty_print_commit
      Src: /src/git/sequencer.c:5972,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:5977,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:5978,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:5979,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:5982,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/sequencer.c:5985,1
    - Dst: oidcpy
      Src: /src/git/sequencer.c:5986,1
    - Dst: oidmap_put
      Src: /src/git/sequencer.c:5987,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:5993,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:5994,1
    - Dst: strchr
      Src: /src/git/sequencer.c:5995,1
    - Dst: strchr
      Src: /src/git/sequencer.c:5996,1
    - Dst: strbuf_add
      Src: /src/git/sequencer.c:5997,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:5998,1
    - Dst: strstr
      Src: /src/git/sequencer.c:6000,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:6001,1
    - Dst: strlen
      Src: /src/git/sequencer.c:6001,1
    - Dst: strbuf_addbuf
      Src: /src/git/sequencer.c:6003,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:6005,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6006,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:6007,1
    - Dst: get_name_decoration
      Src: /src/git/sequencer.c:6013,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:6016,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:6020,1
    - Dst: oidset_contains
      Src: /src/git/sequencer.c:6022,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:6023,1
    - Dst: label_oid
      Src: /src/git/sequencer.c:6023,1
    - Dst: commit_list_insert
      Src: /src/git/sequencer.c:6028,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:6031,1
    - Dst: label_oid
      Src: /src/git/sequencer.c:6031,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6033,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/sequencer.c:6035,1
    - Dst: oidcpy
      Src: /src/git/sequencer.c:6036,1
    - Dst: oidmap_put
      Src: /src/git/sequencer.c:6037,1
    - Dst: advise_if_enabled
      Src: /src/git/sequencer.c:6040,1
    - Dst: _
      Src: /src/git/sequencer.c:6041,1
    - Dst: oidset_contains
      Src: /src/git/sequencer.c:6052,1
    - Dst: oidset_insert
      Src: /src/git/sequencer.c:6054,1
    - Dst: label_oid
      Src: /src/git/sequencer.c:6055,1
    - Dst: commit_list_insert
      Src: /src/git/sequencer.c:6060,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6071,1
    - Dst: oidset_contains
      Src: /src/git/sequencer.c:6076,1
    - Dst: oidmap_get
      Src: /src/git/sequencer.c:6078,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6081,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:6083,1
    - Dst: oidset_contains
      Src: /src/git/sequencer.c:6085,1
    - Dst: oidset_contains
      Src: /src/git/sequencer.c:6086,1
    - Dst: commit_list_insert
      Src: /src/git/sequencer.c:6087,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6096,1
    - Dst: oidmap_get
      Src: /src/git/sequencer.c:6102,1
    - Dst: label_oid
      Src: /src/git/sequencer.c:6107,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:6110,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6111,1
    - Dst: strbuf_reset
      Src: /src/git/sequencer.c:6113,1
    - Dst: pretty_print_commit
      Src: /src/git/sequencer.c:6114,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6115,1
    - Dst: oidmap_get
      Src: /src/git/sequencer.c:6122,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6125,1
    - Dst: oidmap_get
      Src: /src/git/sequencer.c:6126,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6128,1
    - Dst: oidset_insert
      Src: /src/git/sequencer.c:6130,1
    - Dst: commit_list_free
      Src: /src/git/sequencer.c:6133,1
    - Dst: commit_list_free
      Src: /src/git/sequencer.c:6136,1
    - Dst: commit_list_free
      Src: /src/git/sequencer.c:6137,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:6139,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:6140,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:6141,1
    - Dst: oidset_clear
      Src: /src/git/sequencer.c:6143,1
    - Dst: oidset_clear
      Src: /src/git/sequencer.c:6144,1
    - Dst: oidset_clear
      Src: /src/git/sequencer.c:6145,1
    - Dst: oidmap_clear
      Src: /src/git/sequencer.c:6146,1
    - Dst: oidmap_clear
      Src: /src/git/sequencer.c:6147,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/sequencer.c:6148,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:6149,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 132
    argCount: 4
    argNames:
    - pp
    - revs
    - out
    - flags
    argTypes:
    - struct pretty_print_context*
    - struct rev_info*
    - struct strbuf*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6152
      start: 5899
    functionDepth: 13
    functionLinenumber: 5899
    functionLinenumberEnd: 6152
    functionName: make_script_with_merges
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - hashmap_init
    - FLEX_ALLOC_STR
    - strbuf_addf
    - oidmap_init
    - strchr
    - oidset_clear
    - advise_if_enabled
    - strbuf_addbuf
    - strihash
    - oidset_insert
    - strcmp
    - oidmap_clear
    - hashmap_add
    - strbuf_release
    - pretty_print_commit
    - strstr
    - oidmap_get
    - hashmap_entry_init
    - strbuf_addstr
    - is_original_commit_empty
    - strbuf_init
    - load_branch_decorations
    - oidmap_put
    - oid_to_hex
    - label_oid
    - get_name_decoration
    - _
    - warning
    - skip_prefix
    - strbuf_add
    - repo_config_get_int
    - strbuf_reset
    - oidset_contains
    - hashmap_clear_and_free
    - strbuf_addch
    - strlen
    - commit_list_free
    - get_revision
    - commit_list_insert
    - short_commit_name
    linkageType: ''
    returnType: int
    signature: "int make_script_with_merges(struct pretty_print_context *pp,\n\t\t\t\t
      \  struct rev_info *revs, struct strbuf *out,\n\t\t\t\t   unsigned flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/sequencer.c:6168,1
    - Dst: repo_config_get_string
      Src: /src/git/sequencer.c:6180,1
    - Dst: free
      Src: /src/git/sequencer.c:6182,1
    - Dst: xstrdup
      Src: /src/git/sequencer.c:6183,1
    - Dst: xstrfmt
      Src: /src/git/sequencer.c:6187,1
    - Dst: free
      Src: /src/git/sequencer.c:6188,1
    - Dst: get_commit_format
      Src: /src/git/sequencer.c:6191,1
    - Dst: free
      Src: /src/git/sequencer.c:6192,1
    - Dst: get_log_output_encoding
      Src: /src/git/sequencer.c:6194,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/sequencer.c:6196,1
    - Dst: error
      Src: /src/git/sequencer.c:6198,1
    - Dst: _
      Src: /src/git/sequencer.c:6198,1
    - Dst: prepare_revision_walk
      Src: /src/git/sequencer.c:6202,1
    - Dst: error
      Src: /src/git/sequencer.c:6203,1
    - Dst: _
      Src: /src/git/sequencer.c:6203,1
    - Dst: make_script_with_merges
      Src: /src/git/sequencer.c:6208,1
    - Dst: get_revision
      Src: /src/git/sequencer.c:6212,1
    - Dst: is_original_commit_empty
      Src: /src/git/sequencer.c:6213,1
    - Dst: warning
      Src: /src/git/sequencer.c:6217,1
    - Dst: _
      Src: /src/git/sequencer.c:6217,1
    - Dst: short_commit_name
      Src: /src/git/sequencer.c:6218,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6224,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:6225,1
    - Dst: pretty_print_commit
      Src: /src/git/sequencer.c:6226,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6228,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:6229,1
    - Dst: advise_if_enabled
      Src: /src/git/sequencer.c:6232,1
    - Dst: _
      Src: /src/git/sequencer.c:6233,1
    - Dst: release_revisions
      Src: /src/git/sequencer.c:6235,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 4
    argNames:
    - r
    - out
    - argv
    - flags
    argTypes:
    - struct repository*
    - struct strbuf*
    - struct strvec*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6237
      start: 6154
    functionDepth: 14
    functionLinenumber: 6154
    functionLinenumberEnd: 6237
    functionName: sequencer_make_script
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - repo_init_revisions
    - advise_if_enabled
    - free
    - error
    - pretty_print_commit
    - release_revisions
    - get_commit_format
    - prepare_revision_walk
    - is_original_commit_empty
    - oid_to_hex
    - make_script_with_merges
    - _
    - warning
    - xstrdup
    - xstrfmt
    - repo_config_get_string
    - strbuf_addch
    - get_log_output_encoding
    - setup_revisions_from_strvec
    - get_revision
    - short_commit_name
    linkageType: ''
    returnType: int
    signature: "int sequencer_make_script(struct repository *r, struct strbuf *out,\n\t\t\t
      \ struct strvec *argv, unsigned flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/sequencer.c:6251,1
    - Dst: strlen
      Src: /src/git/sequencer.c:6253,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:6255,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:6256,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:6281,1
    - Dst: ALLOC_GROW
      Src: /src/git/sequencer.c:6282,1
    - Dst: COPY_ARRAY
      Src: /src/git/sequencer.c:6283,1
    - Dst: ALLOC_GROW
      Src: /src/git/sequencer.c:6289,1
    - Dst: ALLOC_GROW
      Src: /src/git/sequencer.c:6298,1
    - Dst: COPY_ARRAY
      Src: /src/git/sequencer.c:6299,1
    - Dst: free
      Src: /src/git/sequencer.c:6303,1
    - Dst: FREE_AND_NULL
      Src: /src/git/sequencer.c:6304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - todo_list
    - commands
    argTypes:
    - struct todo_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6308
      start: 6243
    functionDepth: 1
    functionLinenumber: 6243
    functionLinenumberEnd: 6308
    functionName: todo_list_add_exec_commands
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - free
    - strbuf_addch
    - strlen
    - FREE_AND_NULL
    - strbuf_addstr
    - CALLOC_ARRAY
    - ALLOC_GROW
    - COPY_ARRAY
    - is_fixup
    linkageType: ''
    returnType: void
    signature: "void todo_list_add_exec_commands(struct todo_list *todo_list,\n\t\t\t\t\tstruct
      string_list *commands)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6325,1
    - Dst: todo_item_get_arg
      Src: /src/git/sequencer.c:6326,1
    - Dst: command_to_char
      Src: /src/git/sequencer.c:6331,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:6333,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:6335,1
    - Dst: command_to_string
      Src: /src/git/sequencer.c:6335,1
    - Dst: short_commit_name
      Src: /src/git/sequencer.c:6340,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:6341,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:6345,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:6347,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:6353,1
    - Dst: strbuf_addstr
      Src: /src/git/sequencer.c:6355,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6358,1
    - Dst: strbuf_addch
      Src: /src/git/sequencer.c:6363,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6365,1
    - Dst: todo_item_get_arg
      Src: /src/git/sequencer.c:6366,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 5
    argNames:
    - r
    - todo_list
    - buf
    - num
    - flags
    argTypes:
    - struct repository*
    - struct todo_list*
    - struct strbuf*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6310
    functionDepth: 3
    functionLinenumber: 6310
    functionLinenumberEnd: 6368
    functionName: todo_list_to_strbuf
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - strbuf_addf
    - strbuf_addch
    - command_to_string
    - command_to_char
    - todo_item_get_arg
    - strbuf_addstr
    - short_commit_name
    linkageType: ''
    returnType: void
    signature: "void todo_list_to_strbuf(struct repository *r,\n\t\t\t\tstruct todo_list
      *todo_list,\n\t\t\t\tstruct strbuf *buf, int num, unsigned flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: todo_list_to_strbuf
      Src: /src/git/sequencer.c:6377,1
    - Dst: append_todo_help
      Src: /src/git/sequencer.c:6379,1
    - Dst: count_commands
      Src: /src/git/sequencer.c:6379,1
    - Dst: write_message
      Src: /src/git/sequencer.c:6382,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:6383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - r
    - todo_list
    - file
    - shortrevisions
    - shortonto
    - num
    - flags
    argTypes:
    - struct repository*
    - struct todo_list*
    - char*
    - char*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6386
      start: 6370
    functionDepth: 4
    functionLinenumber: 6370
    functionLinenumberEnd: 6386
    functionName: todo_list_write_to_file
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - write_message
    - todo_list_to_strbuf
    - append_todo_help
    - count_commands
    linkageType: ''
    returnType: int
    signature: "int todo_list_write_to_file(struct repository *r, struct todo_list
      *todo_list,\n\t\t\t    const char *file, const char *shortrevisions,\n\t\t\t
      \   const char *shortonto, int num, unsigned flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/sequencer.c:6403,1
    - Dst: error
      Src: /src/git/sequencer.c:6404,1
    - Dst: _
      Src: /src/git/sequencer.c:6404,1
    - Dst: oid_to_hex
      Src: /src/git/sequencer.c:6405,1
    - Dst: oideq
      Src: /src/git/sequencer.c:6412,1
    - Dst: oidcpy
      Src: /src/git/sequencer.c:6414,1
    - Dst: rebase_path_done
      Src: /src/git/sequencer.c:6417,1
    - Dst: todo_list_write_to_file
      Src: /src/git/sequencer.c:6419,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:6420,1
    - Dst: _
      Src: /src/git/sequencer.c:6420,1
    - Dst: MOVE_ARRAY
      Src: /src/git/sequencer.c:6424,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:6429,1
    - Dst: peek_command
      Src: /src/git/sequencer.c:6429,1
    - Dst: record_in_rewritten
      Src: /src/git/sequencer.c:6430,1
    - Dst: peek_command
      Src: /src/git/sequencer.c:6430,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 3
    argNames:
    - r
    - todo_list
    - base_oid
    argTypes:
    - struct repository*
    - struct todo_list*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6434
      start: 6389
    functionDepth: 7
    functionLinenumber: 6389
    functionLinenumberEnd: 6434
    functionName: skip_unnecessary_picks
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - record_in_rewritten
    - oid_to_hex
    - oidcpy
    - todo_list_write_to_file
    - rebase_path_done
    - repo_parse_commit
    - MOVE_ARRAY
    - _
    - is_fixup
    - peek_command
    - oideq
    linkageType: ''
    returnType: int
    signature: "int skip_unnecessary_picks(struct repository *r,\n\t\t\t\t  struct
      todo_list *todo_list,\n\t\t\t\t  struct object_id *base_oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_name_decoration
      Src: /src/git/sequencer.c:6447,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/sequencer.c:6448,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:6448,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:6468,1
    - Dst: ALLOC_GROW
      Src: /src/git/sequencer.c:6474,1
    - Dst: memset
      Src: /src/git/sequencer.c:6478,1
    - Dst: branch_checked_out
      Src: /src/git/sequencer.c:6481,1
    - Dst: strbuf_commented_addf
      Src: /src/git/sequencer.c:6483,1
    - Dst: strbuf_addf
      Src: /src/git/sequencer.c:6489,1
    - Dst: string_list_insert
      Src: /src/git/sequencer.c:6491,1
    - Dst: init_update_ref_record
      Src: /src/git/sequencer.c:6493,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - commit
    - ctx
    argTypes:
    - struct commit*
    - struct todo_add_branch_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6505
      start: 6444
    functionDepth: 6
    functionLinenumber: 6444
    functionLinenumberEnd: 6505
    functionName: add_decorations_to_list
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - init_update_ref_record
    - memset
    - string_list_insert
    - refs_resolve_ref_unsafe
    - strbuf_addf
    - strbuf_commented_addf
    - get_name_decoration
    - ALLOC_GROW
    - strcmp
    - branch_checked_out
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int add_decorations_to_list(const struct commit *commit,\n\t\t\t\t
      \  struct todo_add_branch_context *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/sequencer.c:6520,1
    - Dst: load_branch_decorations
      Src: /src/git/sequencer.c:6522,1
    - Dst: ALLOC_GROW
      Src: /src/git/sequencer.c:6528,1
    - Dst: add_decorations_to_list
      Src: /src/git/sequencer.c:6535,1
    - Dst: write_update_refs_state
      Src: /src/git/sequencer.c:6539,1
    - Dst: string_list_clear
      Src: /src/git/sequencer.c:6541,1
    - Dst: free
      Src: /src/git/sequencer.c:6545,1
    - Dst: free
      Src: /src/git/sequencer.c:6549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - todo_list
    argTypes:
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6555
      start: 6511
    functionDepth: 7
    functionLinenumber: 6511
    functionLinenumberEnd: 6555
    functionName: todo_list_add_update_ref_commands
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - load_branch_decorations
    - string_list_clear
    - ALLOC_ARRAY
    - ALLOC_GROW
    - add_decorations_to_list
    - free
    - write_update_refs_state
    linkageType: ''
    returnType: int
    signature: int todo_list_add_update_ref_commands(struct todo_list *todo_list)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rebase_path_todo
      Src: /src/git/sequencer.c:6565,1
    - Dst: repo_find_unique_abbrev_r
      Src: /src/git/sequencer.c:6571,1
    - Dst: append_new_todo
      Src: /src/git/sequencer.c:6575,1
    - Dst: todo_list_add_update_ref_commands
      Src: /src/git/sequencer.c:6581,1
    - Dst: todo_list_rearrange_squash
      Src: /src/git/sequencer.c:6584,1
    - Dst: todo_list_add_exec_commands
      Src: /src/git/sequencer.c:6588,1
    - Dst: count_commands
      Src: /src/git/sequencer.c:6590,1
    - Dst: apply_autostash
      Src: /src/git/sequencer.c:6591,1
    - Dst: rebase_path_autostash
      Src: /src/git/sequencer.c:6591,1
    - Dst: sequencer_remove_state
      Src: /src/git/sequencer.c:6592,1
    - Dst: error
      Src: /src/git/sequencer.c:6594,1
    - Dst: _
      Src: /src/git/sequencer.c:6594,1
    - Dst: edit_todo_list
      Src: /src/git/sequencer.c:6597,1
    - Dst: apply_autostash
      Src: /src/git/sequencer.c:6602,1
    - Dst: rebase_path_autostash
      Src: /src/git/sequencer.c:6602,1
    - Dst: sequencer_remove_state
      Src: /src/git/sequencer.c:6603,1
    - Dst: apply_autostash
      Src: /src/git/sequencer.c:6607,1
    - Dst: rebase_path_autostash
      Src: /src/git/sequencer.c:6607,1
    - Dst: sequencer_remove_state
      Src: /src/git/sequencer.c:6608,1
    - Dst: todo_list_release
      Src: /src/git/sequencer.c:6609,1
    - Dst: error
      Src: /src/git/sequencer.c:6611,1
    - Dst: _
      Src: /src/git/sequencer.c:6611,1
    - Dst: checkout_onto
      Src: /src/git/sequencer.c:6613,1
    - Dst: todo_list_release
      Src: /src/git/sequencer.c:6614,1
    - Dst: todo_list_to_strbuf
      Src: /src/git/sequencer.c:6620,1
    - Dst: strbuf_swap
      Src: /src/git/sequencer.c:6621,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:6622,1
    - Dst: todo_list_parse_insn_buffer
      Src: /src/git/sequencer.c:6625,1
    - Dst: BUG
      Src: /src/git/sequencer.c:6626,1
    - Dst: skip_unnecessary_picks
      Src: /src/git/sequencer.c:6629,1
    - Dst: todo_list_release
      Src: /src/git/sequencer.c:6630,1
    - Dst: error
      Src: /src/git/sequencer.c:6631,1
    - Dst: _
      Src: /src/git/sequencer.c:6631,1
    - Dst: todo_list_write_to_file
      Src: /src/git/sequencer.c:6634,1
    - Dst: todo_list_release
      Src: /src/git/sequencer.c:6636,1
    - Dst: error_errno
      Src: /src/git/sequencer.c:6637,1
    - Dst: _
      Src: /src/git/sequencer.c:6637,1
    - Dst: checkout_onto
      Src: /src/git/sequencer.c:6642,1
    - Dst: require_clean_work_tree
      Src: /src/git/sequencer.c:6645,1
    - Dst: todo_list_write_total_nr
      Src: /src/git/sequencer.c:6648,1
    - Dst: pick_commits
      Src: /src/git/sequencer.c:6649,1
    - Dst: todo_list_release
      Src: /src/git/sequencer.c:6652,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 11
    argNames:
    - r
    - opts
    - flags
    - shortrevisions
    - onto_name
    - onto
    - orig_head
    - commands
    - autosquash
    - update_refs
    - todo_list
    argTypes:
    - struct repository*
    - struct replay_opts*
    - unsigned
    - char*
    - char*
    - struct commit*
    - struct object_id*
    - struct string_list*
    - unsigned
    - unsigned
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6655
      start: 6557
    functionDepth: 24
    functionLinenumber: 6557
    functionLinenumberEnd: 6655
    functionName: complete_action
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - error_errno
    - todo_list_add_exec_commands
    - rebase_path_autostash
    - skip_unnecessary_picks
    - strbuf_swap
    - error
    - strbuf_release
    - sequencer_remove_state
    - todo_list_rearrange_squash
    - todo_list_write_to_file
    - todo_list_write_total_nr
    - todo_list_parse_insn_buffer
    - require_clean_work_tree
    - todo_list_release
    - edit_todo_list
    - repo_find_unique_abbrev_r
    - todo_list_to_strbuf
    - todo_list_add_update_ref_commands
    - _
    - count_commands
    - rebase_path_todo
    - append_new_todo
    - checkout_onto
    - pick_commits
    - apply_autostash
    - BUG
    linkageType: ''
    returnType: int
    signature: "int complete_action(struct repository *r, struct replay_opts *opts,
      unsigned flags,\n\t\t    const char *shortrevisions, const char *onto_name,\n\t\t
      \   struct commit *onto, const struct object_id *orig_head,\n\t\t    struct
      string_list *commands, unsigned autosquash,\n\t\t    unsigned update_refs,\n\t\t
      \   struct todo_list *todo_list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/sequencer.c:6670,1
    - Dst: container_of
      Src: /src/git/sequencer.c:6671,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:6673,1
    - Dst: strcmp
      Src: /src/git/sequencer.c:6673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - fndata
    - eptr
    - entry_or_key
    - key
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6674
      start: 6663
    functionDepth: 1
    functionLinenumber: 6663
    functionLinenumberEnd: 6674
    functionName: subject2item_cmp
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int subject2item_cmp(const void *fndata UNUSED,\n\t\t\t    const struct
      hashmap_entry *eptr,\n\t\t\t    const struct hashmap_entry *entry_or_key,\n\t\t\t
      \   const void *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:6679,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:6680,1
    - Dst: skip_prefix
      Src: /src/git/sequencer.c:6681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - subject
    - p
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6682
      start: 6678
    functionDepth: 1
    functionLinenumber: 6678
    functionLinenumberEnd: 6682
    functionName: skip_fixupish
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int skip_fixupish(const char *subject, const char **p)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: init_commit_todo_item
      Src: /src/git/sequencer.c:6702,1
    - Dst: hashmap_init
      Src: /src/git/sequencer.c:6712,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/sequencer.c:6713,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/sequencer.c:6714,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/sequencer.c:6715,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:6730,1
    - Dst: error
      Src: /src/git/sequencer.c:6731,1
    - Dst: _
      Src: /src/git/sequencer.c:6731,1
    - Dst: repo_parse_commit
      Src: /src/git/sequencer.c:6735,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/sequencer.c:6736,1
    - Dst: find_commit_subject
      Src: /src/git/sequencer.c:6739,1
    - Dst: format_subject
      Src: /src/git/sequencer.c:6740,1
    - Dst: strbuf_detach
      Src: /src/git/sequencer.c:6741,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/sequencer.c:6742,1
    - Dst: skip_fixupish
      Src: /src/git/sequencer.c:6744,1
    - Dst: isspace
      Src: /src/git/sequencer.c:6748,1
    - Dst: skip_fixupish
      Src: /src/git/sequencer.c:6750,1
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/sequencer.c:6754,1
    - Dst: strhash
      Src: /src/git/sequencer.c:6755,1
    - Dst: strchr
      Src: /src/git/sequencer.c:6761,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/sequencer.c:6763,1
    - Dst: commit_todo_item_at
      Src: /src/git/sequencer.c:6764,1
    - Dst: commit_todo_item_at
      Src: /src/git/sequencer.c:6766,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:6772,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:6780,1
    - Dst: starts_with
      Src: /src/git/sequencer.c:6782,1
    - Dst: hashmap_get_from_hash
      Src: /src/git/sequencer.c:6796,1
    - Dst: strhash
      Src: /src/git/sequencer.c:6797,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/sequencer.c:6798,1
    - Dst: hashmap_entry_init
      Src: /src/git/sequencer.c:6800,1
    - Dst: strhash
      Src: /src/git/sequencer.c:6801,1
    - Dst: hashmap_put
      Src: /src/git/sequencer.c:6802,1
    - Dst: commit_todo_item_at
      Src: /src/git/sequencer.c:6805,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/sequencer.c:6809,1
    - Dst: is_fixup
      Src: /src/git/sequencer.c:6819,1
    - Dst: assert
      Src: /src/git/sequencer.c:6828,1
    - Dst: FREE_AND_NULL
      Src: /src/git/sequencer.c:6830,1
    - Dst: free
      Src: /src/git/sequencer.c:6835,1
    - Dst: free
      Src: /src/git/sequencer.c:6836,1
    - Dst: free
      Src: /src/git/sequencer.c:6838,1
    - Dst: free
      Src: /src/git/sequencer.c:6839,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/sequencer.c:6840,1
    - Dst: clear_commit_todo_item
      Src: /src/git/sequencer.c:6842,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 95
    argCount: 1
    argNames:
    - todo_list
    argTypes:
    - struct todo_list*
    assertStmts:
    - condition: (nr == todo_list->nr)
      pos:
        line_end: 6827
        line_start: 6827
        source_file: /src/git/sequencer.c
    constantsTouched: []
    func_position:
      end: 6845
      start: 6693
    functionDepth: 3
    functionLinenumber: 6693
    functionLinenumberEnd: 6845
    functionName: todo_list_rearrange_squash
    functionSourceFile: /src/git/sequencer.c
    functionUses: 1
    functionsReached:
    - clear_commit_todo_item
    - commit_todo_item_at
    - hashmap_init
    - strchr
    - hashmap_put
    - free
    - hashmap_get_from_hash
    - error
    - isspace
    - find_commit_subject
    - lookup_commit_reference_by_name
    - repo_parse_commit
    - ALLOC_ARRAY
    - hashmap_entry_init
    - init_commit_todo_item
    - strhash
    - repo_unuse_commit_buffer
    - hashmap_get_entry_from_hash
    - format_subject
    - FLEX_ALLOC_MEM
    - repo_logmsg_reencode
    - strbuf_detach
    - _
    - FREE_AND_NULL
    - assert
    - starts_with
    - skip_fixupish
    - hashmap_clear_and_free
    - is_fixup
    linkageType: ''
    returnType: int
    signature: int todo_list_rearrange_squash(struct todo_list *todo_list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_ref_exists
      Src: /src/git/sequencer.c:6849,1
    - Dst: get_main_ref_store
      Src: /src/git/sequencer.c:6849,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:6852,1
    - Dst: git_path_seq_dir
      Src: /src/git/sequencer.c:6852,1
    - Dst: file_exists
      Src: /src/git/sequencer.c:6854,1
    - Dst: rebase_path
      Src: /src/git/sequencer.c:6854,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:6855,1
    - Dst: repo_get_oid
      Src: /src/git/sequencer.c:6856,1
    - Dst: oideq
      Src: /src/git/sequencer.c:6857,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - r
    - whence
    argTypes:
    - struct repository*
    - enum commit_whence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6866
      start: 6847
    functionDepth: 4
    functionLinenumber: 6847
    functionLinenumberEnd: 6866
    functionName: sequencer_determine_whence
    functionSourceFile: /src/git/sequencer.c
    functionUses: 0
    functionsReached:
    - git_path_seq_dir
    - repo_get_oid
    - rebase_path
    - file_exists
    - refs_ref_exists
    - oideq
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int sequencer_determine_whence(struct repository *r, enum commit_whence
      *whence)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rebase_path_update_refs
      Src: /src/git/sequencer.c:6877,1
    - Dst: fopen
      Src: /src/git/sequencer.c:6879,1
    - Dst: strbuf_getline
      Src: /src/git/sequencer.c:6883,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/sequencer.c:6886,1
    - Dst: strbuf_getline
      Src: /src/git/sequencer.c:6888,1
    - Dst: get_oid_hex
      Src: /src/git/sequencer.c:6889,1
    - Dst: warning
      Src: /src/git/sequencer.c:6890,1
    - Dst: _
      Src: /src/git/sequencer.c:6890,1
    - Dst: strbuf_getline
      Src: /src/git/sequencer.c:6896,1
    - Dst: get_oid_hex
      Src: /src/git/sequencer.c:6897,1
    - Dst: warning
      Src: /src/git/sequencer.c:6898,1
    - Dst: _
      Src: /src/git/sequencer.c:6898,1
    - Dst: string_list_insert
      Src: /src/git/sequencer.c:6904,1
    - Dst: fclose
      Src: /src/git/sequencer.c:6911,1
    - Dst: free
      Src: /src/git/sequencer.c:6912,1
    - Dst: free
      Src: /src/git/sequencer.c:6913,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:6914,1
    - Dst: strbuf_release
      Src: /src/git/sequencer.c:6915,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - wt_dir
    - refs
    argTypes:
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6917
      start: 6868
    functionDepth: 5
    functionLinenumber: 6868
    functionLinenumberEnd: 6917
    functionName: sequencer_get_update_refs_state
    functionSourceFile: /src/git/sequencer.c
    functionUses: 3
    functionsReached:
    - fclose
    - strbuf_release
    - rebase_path_update_refs
    - string_list_insert
    - get_oid_hex
    - fopen
    - CALLOC_ARRAY
    - free
    - strbuf_getline
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: "int sequencer_get_update_refs_state(const char *wt_dir,\n\t\t\t\t
      \   struct string_list *refs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct prio_queue*::compare
      Src: /src/git/prio-queue.c:6,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - queue
    - i
    - j
    argTypes:
    - struct prio_queue*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 12
    functionName: compare
    functionSourceFile: /src/git/prio-queue.c
    functionUses: 8
    functionsReached:
    - struct prio_queue*::compare
    linkageType: ''
    returnType: int
    signature: int compare(struct prio_queue *queue, size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/git/prio-queue.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - queue
    - i
    - j
    argTypes:
    - struct prio_queue*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: swap
    functionSourceFile: /src/git/prio-queue.c
    functionUses: 9
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: void
    signature: void swap(struct prio_queue *queue, size_t i, size_t j)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/prio-queue.c:24,1
    - Dst: swap
      Src: /src/git/prio-queue.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct prio_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: prio_queue_reverse
    functionSourceFile: /src/git/prio-queue.c
    functionUses: 1
    functionsReached:
    - BUG
    - swap
    linkageType: ''
    returnType: void
    signature: void prio_queue_reverse(struct prio_queue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/prio-queue.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct prio_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: clear_prio_queue
    functionSourceFile: /src/git/prio-queue.c
    functionUses: 6
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void clear_prio_queue(struct prio_queue *queue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/prio-queue.c:44,1
    - Dst: compare
      Src: /src/git/prio-queue.c:54,1
    - Dst: swap
      Src: /src/git/prio-queue.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - queue
    - thing
    argTypes:
    - struct prio_queue*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: prio_queue_put
    functionSourceFile: /src/git/prio-queue.c
    functionUses: 8
    functionsReached:
    - swap
    - ALLOC_GROW
    - compare
    linkageType: ''
    returnType: void
    signature: void prio_queue_put(struct prio_queue *queue, void *thing)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/git/prio-queue.c:69,1
    - Dst: compare
      Src: /src/git/prio-queue.c:72,1
    - Dst: swap
      Src: /src/git/prio-queue.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct prio_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: sift_down_root
    functionSourceFile: /src/git/prio-queue.c
    functionUses: 0
    functionsReached:
    - swap
    - compare
    linkageType: ''
    returnType: void
    signature: void sift_down_root(struct prio_queue *queue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sift_down_root
      Src: /src/git/prio-queue.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct prio_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: prio_queue_get
    functionSourceFile: /src/git/prio-queue.c
    functionUses: 7
    functionsReached:
    - sift_down_root
    linkageType: ''
    returnType: void
    signature: void *prio_queue_get(struct prio_queue *queue)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct prio_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: prio_queue_peek
    functionSourceFile: /src/git/prio-queue.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *prio_queue_peek(struct prio_queue *queue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_put
      Src: /src/git/prio-queue.c:109,1
    - Dst: sift_down_root
      Src: /src/git/prio-queue.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - queue
    - thing
    argTypes:
    - struct prio_queue*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: prio_queue_replace
    functionSourceFile: /src/git/prio-queue.c
    functionUses: 0
    functionsReached:
    - sift_down_root
    - prio_queue_put
    linkageType: ''
    returnType: void
    signature: void prio_queue_replace(struct prio_queue *queue, void *thing)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: blame_origin_incref
    functionSourceFile: /src/git/blame.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct blame_origin
    signature: struct blame_origin *blame_origin_incref(struct blame_origin *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/lockfile.c:25,1
    - Dst: is_dir_sep
      Src: /src/git/lockfile.c:32,1
    - Dst: strbuf_setlen
      Src: /src/git/lockfile.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: trim_last_path_component
    functionSourceFile: /src/git/lockfile.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strbuf_setlen
    linkageType: ''
    returnType: void
    signature: void trim_last_path_component(struct strbuf *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_readlink
      Src: /src/git/lockfile.c:59,1
    - Dst: is_absolute_path
      Src: /src/git/lockfile.c:62,1
    - Dst: strbuf_reset
      Src: /src/git/lockfile.c:64,1
    - Dst: trim_last_path_component
      Src: /src/git/lockfile.c:70,1
    - Dst: strbuf_addbuf
      Src: /src/git/lockfile.c:72,1
    - Dst: strbuf_reset
      Src: /src/git/lockfile.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: resolve_symlink
    functionSourceFile: /src/git/lockfile.c
    functionUses: 0
    functionsReached:
    - trim_last_path_component
    - is_absolute_path
    - strbuf_reset
    - strbuf_readlink
    - strbuf_addbuf
    linkageType: ''
    returnType: void
    signature: void resolve_symlink(struct strbuf *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/lockfile.c:98,1
    - Dst: strbuf_addstr
      Src: /src/git/lockfile.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - path
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: get_lock_path
    functionSourceFile: /src/git/lockfile.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void get_lock_path(struct strbuf *out, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/lockfile.c:104,1
    - Dst: strbuf_addstr
      Src: /src/git/lockfile.c:105,1
    - Dst: strbuf_addstr
      Src: /src/git/lockfile.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - path
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: get_pid_path
    functionSourceFile: /src/git/lockfile.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void get_pid_path(struct strbuf *out, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/lockfile.c:118,1
    - Dst: strbuf_addf
      Src: /src/git/lockfile.c:122,1
    - Dst: getpid
      Src: /src/git/lockfile.c:122,1
    - Dst: write_in_full
      Src: /src/git/lockfile.c:123,1
    - Dst: warning_errno
      Src: /src/git/lockfile.c:124,1
    - Dst: _
      Src: /src/git/lockfile.c:124,1
    - Dst: close
      Src: /src/git/lockfile.c:125,1
    - Dst: unlink
      Src: /src/git/lockfile.c:126,1
    - Dst: close
      Src: /src/git/lockfile.c:130,1
    - Dst: register_tempfile
      Src: /src/git/lockfile.c:131,1
    - Dst: strbuf_release
      Src: /src/git/lockfile.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - pid_path
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 136
    functionName: create_lock_pid_file
    functionSourceFile: /src/git/lockfile.c
    functionUses: 0
    functionsReached:
    - register_tempfile
    - strbuf_release
    - open
    - warning_errno
    - strbuf_addf
    - close
    - _
    - getpid
    - write_in_full
    - unlink
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *create_lock_pid_file(const char *pid_path, int mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/lockfile.c:144,1
    - Dst: strbuf_rtrim
      Src: /src/git/lockfile.c:147,1
    - Dst: skip_prefix
      Src: /src/git/lockfile.c:149,1
    - Dst: strtoumax
      Src: /src/git/lockfile.c:151,1
    - Dst: warning
      Src: /src/git/lockfile.c:157,1
    - Dst: _
      Src: /src/git/lockfile.c:157,1
    - Dst: strbuf_release
      Src: /src/git/lockfile.c:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pid_path
    - pid_out
    argTypes:
    - char*
    - uintmax_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 138
    functionDepth: 5
    functionLinenumber: 138
    functionLinenumberEnd: 162
    functionName: read_lock_pid
    functionSourceFile: /src/git/lockfile.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strtoumax
    - strbuf_read_file
    - skip_prefix
    - _
    - warning
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: int read_lock_pid(const char *pid_path, uintmax_t *pid_out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/lockfile.c:172,1
    - Dst: resolve_symlink
      Src: /src/git/lockfile.c:174,1
    - Dst: get_lock_path
      Src: /src/git/lockfile.c:176,1
    - Dst: get_pid_path
      Src: /src/git/lockfile.c:177,1
    - Dst: create_tempfile_mode
      Src: /src/git/lockfile.c:179,1
    - Dst: create_lock_pid_file
      Src: /src/git/lockfile.c:181,1
    - Dst: strbuf_release
      Src: /src/git/lockfile.c:183,1
    - Dst: strbuf_release
      Src: /src/git/lockfile.c:184,1
    - Dst: strbuf_release
      Src: /src/git/lockfile.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - lk
    - path
    - flags
    - mode
    argTypes:
    - struct lock_file*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 165
    functionDepth: 5
    functionLinenumber: 165
    functionLinenumberEnd: 187
    functionName: lock_file
    functionSourceFile: /src/git/lockfile.c
    functionUses: 20
    functionsReached:
    - create_lock_pid_file
    - strbuf_release
    - get_lock_path
    - strbuf_addstr
    - create_tempfile_mode
    - resolve_symlink
    - get_pid_path
    linkageType: ''
    returnType: int
    signature: "int lock_file(struct lock_file *lk, const char *path, int flags,\n\t\t
      \    int mode)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lock_file
      Src: /src/git/lockfile.c:212,1
    - Dst: srand
      Src: /src/git/lockfile.c:215,1
    - Dst: getpid
      Src: /src/git/lockfile.c:215,1
    - Dst: lock_file
      Src: /src/git/lockfile.c:226,1
    - Dst: rand
      Src: /src/git/lockfile.c:237,1
    - Dst: sleep_millisec
      Src: /src/git/lockfile.c:238,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - lk
    - path
    - flags
    - timeout_ms
    - mode
    argTypes:
    - struct lock_file*
    - char*
    - int
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 203
    functionDepth: 6
    functionLinenumber: 203
    functionLinenumberEnd: 248
    functionName: lock_file_timeout
    functionSourceFile: /src/git/lockfile.c
    functionUses: 0
    functionsReached:
    - rand
    - lock_file
    - sleep_millisec
    - srand
    - getpid
    linkageType: ''
    returnType: int
    signature: "int lock_file_timeout(struct lock_file *lk, const char *path,\n\t\t\t
      \    int flags, long timeout_ms, int mode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: absolute_path
      Src: /src/git/lockfile.c:253,1
    - Dst: get_lock_path
      Src: /src/git/lockfile.c:259,1
    - Dst: get_pid_path
      Src: /src/git/lockfile.c:260,1
    - Dst: strbuf_addf
      Src: /src/git/lockfile.c:262,1
    - Dst: _
      Src: /src/git/lockfile.c:262,1
    - Dst: strerror
      Src: /src/git/lockfile.c:263,1
    - Dst: read_lock_pid
      Src: /src/git/lockfile.c:269,1
    - Dst: kill
      Src: /src/git/lockfile.c:270,1
    - Dst: strbuf_addf
      Src: /src/git/lockfile.c:277,1
    - Dst: _
      Src: /src/git/lockfile.c:277,1
    - Dst: strbuf_addf
      Src: /src/git/lockfile.c:282,1
    - Dst: _
      Src: /src/git/lockfile.c:282,1
    - Dst: strbuf_addstr
      Src: /src/git/lockfile.c:287,1
    - Dst: _
      Src: /src/git/lockfile.c:287,1
    - Dst: strbuf_release
      Src: /src/git/lockfile.c:290,1
    - Dst: strbuf_release
      Src: /src/git/lockfile.c:291,1
    - Dst: strbuf_addf
      Src: /src/git/lockfile.c:293,1
    - Dst: _
      Src: /src/git/lockfile.c:293,1
    - Dst: absolute_path
      Src: /src/git/lockfile.c:294,1
    - Dst: strerror
      Src: /src/git/lockfile.c:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - path
    - err
    - buf
    argTypes:
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 250
    functionDepth: 6
    functionLinenumber: 250
    functionLinenumberEnd: 296
    functionName: unable_to_lock_message
    functionSourceFile: /src/git/lockfile.c
    functionUses: 0
    functionsReached:
    - absolute_path
    - strbuf_release
    - get_lock_path
    - kill
    - strbuf_addf
    - strerror
    - strbuf_addstr
    - _
    - read_lock_pid
    - get_pid_path
    linkageType: ''
    returnType: void
    signature: void unable_to_lock_message(const char *path, int err, struct strbuf
      *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unable_to_lock_message
      Src: /src/git/lockfile.c:302,1
    - Dst: die
      Src: /src/git/lockfile.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - err
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 7
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: unable_to_lock_die
    functionSourceFile: /src/git/lockfile.c
    functionUses: 0
    functionsReached:
    - die
    - unable_to_lock_message
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN unable_to_lock_die(const char *path, int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lock_file_timeout
      Src: /src/git/lockfile.c:311,1
    - Dst: unable_to_lock_die
      Src: /src/git/lockfile.c:314,1
    - Dst: unable_to_lock_message
      Src: /src/git/lockfile.c:317,1
    - Dst: error
      Src: /src/git/lockfile.c:318,1
    - Dst: strbuf_release
      Src: /src/git/lockfile.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - lk
    - path
    - flags
    - timeout_ms
    - mode
    argTypes:
    - struct lock_file*
    - char*
    - int
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 307
    functionDepth: 8
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: hold_lock_file_for_update_timeout_mode
    functionSourceFile: /src/git/lockfile.c
    functionUses: 2
    functionsReached:
    - error
    - strbuf_release
    - lock_file_timeout
    - unable_to_lock_die
    - unable_to_lock_message
    linkageType: ''
    returnType: int
    signature: "int hold_lock_file_for_update_timeout_mode(struct lock_file *lk,\n\t\t\t\t\t
      \  const char *path, int flags,\n\t\t\t\t\t   long timeout_ms, int mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/lockfile.c:329,1
    - Dst: get_tempfile_path
      Src: /src/git/lockfile.c:329,1
    - Dst: strcmp
      Src: /src/git/lockfile.c:331,1
    - Dst: BUG
      Src: /src/git/lockfile.c:332,1
    - Dst: strbuf_setlen
      Src: /src/git/lockfile.c:334,1
    - Dst: strbuf_detach
      Src: /src/git/lockfile.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lk
    argTypes:
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 336
    functionName: get_locked_file_path
    functionSourceFile: /src/git/lockfile.c
    functionUses: 0
    functionsReached:
    - strbuf_setlen
    - strbuf_detach
    - strbuf_addstr
    - strcmp
    - BUG
    - get_tempfile_path
    linkageType: ''
    returnType: char
    signature: char *get_locked_file_path(struct lock_file *lk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_locked_file_path
      Src: /src/git/lockfile.c:340,1
    - Dst: delete_tempfile
      Src: /src/git/lockfile.c:342,1
    - Dst: commit_lock_file_to
      Src: /src/git/lockfile.c:344,1
    - Dst: free
      Src: /src/git/lockfile.c:346,1
    - Dst: free
      Src: /src/git/lockfile.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lk
    argTypes:
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 338
    functionDepth: 5
    functionLinenumber: 338
    functionLinenumberEnd: 352
    functionName: commit_lock_file
    functionSourceFile: /src/git/lockfile.c
    functionUses: 8
    functionsReached:
    - delete_tempfile
    - get_locked_file_path
    - commit_lock_file_to
    - free
    linkageType: ''
    returnType: int
    signature: int commit_lock_file(struct lock_file *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: delete_tempfile
      Src: /src/git/lockfile.c:356,1
    - Dst: delete_tempfile
      Src: /src/git/lockfile.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lk
    argTypes:
    - struct lock_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 5
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: rollback_lock_file
    functionSourceFile: /src/git/lockfile.c
    functionUses: 17
    functionsReached:
    - delete_tempfile
    linkageType: ''
    returnType: int
    signature: int rollback_lock_file(struct lock_file *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/string-list.c:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 8
    functionName: string_list_init_nodup
    functionSourceFile: /src/git/string-list.c
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void string_list_init_nodup(struct string_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/string-list.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: string_list_init_dup
    functionSourceFile: /src/git/string-list.c
    functionUses: 7
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void string_list_init_dup(struct string_list *list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/git/string-list.c:26,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - list
    - string
    - exact_match
    argTypes:
    - struct string_list*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 41
    functionName: get_entry_index
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached:
    - cmp
    linkageType: ''
    returnType: size_t
    signature: "size_t get_entry_index(const struct string_list *list, const char
      *string,\n\t\t\t      bool *exact_match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_entry_index
      Src: /src/git/string-list.c:46,1
    - Dst: ALLOC_GROW
      Src: /src/git/string-list.c:51,1
    - Dst: MOVE_ARRAY
      Src: /src/git/string-list.c:53,1
    - Dst: xstrdup
      Src: /src/git/string-list.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: add_entry
    functionSourceFile: /src/git/string-list.c
    functionUses: 2
    functionsReached:
    - xstrdup
    - ALLOC_GROW
    - get_entry_index
    - MOVE_ARRAY
    linkageType: ''
    returnType: size_t
    signature: size_t add_entry(struct string_list *list, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_entry
      Src: /src/git/string-list.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: string_list_insert
    functionSourceFile: /src/git/string-list.c
    functionUses: 17
    functionsReached:
    - add_entry
    linkageType: ''
    returnType: struct string_list_item
    signature: struct string_list_item *string_list_insert(struct string_list *list,
      const char *string)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_entry_index
      Src: /src/git/string-list.c:74,1
    - Dst: free
      Src: /src/git/string-list.c:78,1
    - Dst: free
      Src: /src/git/string-list.c:80,1
    - Dst: MOVE_ARRAY
      Src: /src/git/string-list.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - list
    - string
    - free_util
    argTypes:
    - struct string_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: string_list_remove
    functionSourceFile: /src/git/string-list.c
    functionUses: 3
    functionsReached:
    - MOVE_ARRAY
    - get_entry_index
    - free
    linkageType: ''
    returnType: void
    signature: "void string_list_remove(struct string_list *list, const char *string,\n\t\t\tint
      free_util)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_entry_index
      Src: /src/git/string-list.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: string_list_has_string
    functionSourceFile: /src/git/string-list.c
    functionUses: 10
    functionsReached:
    - get_entry_index
    linkageType: ''
    returnType: bool
    signature: bool string_list_has_string(const struct string_list *list, const char
      *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_entry_index
      Src: /src/git/string-list.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - list
    - string
    - exact_match
    argTypes:
    - struct string_list*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: string_list_find_insert_index
    functionSourceFile: /src/git/string-list.c
    functionUses: 1
    functionsReached:
    - get_entry_index
    linkageType: ''
    returnType: size_t
    signature: "size_t string_list_find_insert_index(const struct string_list *list,
      const char *string,\n\t\t\t\t     bool *exact_match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_entry_index
      Src: /src/git/string-list.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: string_list_lookup
    functionSourceFile: /src/git/string-list.c
    functionUses: 8
    functionsReached:
    - get_entry_index
    linkageType: ''
    returnType: struct string_list_item
    signature: struct string_list_item *string_list_lookup(struct string_list *list,
      const char *string)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/git/string-list.c:115,1
    - Dst: free
      Src: /src/git/string-list.c:117,1
    - Dst: free
      Src: /src/git/string-list.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - list
    - free_util
    argTypes:
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: string_list_remove_duplicates
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached:
    - cmp
    - free
    linkageType: ''
    returnType: void
    signature: void string_list_remove_duplicates(struct string_list *list, int free_util)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/string-list.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - list
    - fn
    - cb_data
    argTypes:
    - struct string_list*
    - string_list_each_func_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: for_each_string_list
    functionSourceFile: /src/git/string-list.c
    functionUses: 1
    functionsReached:
    - fn
    linkageType: ''
    returnType: int
    signature: "int for_each_string_list(struct string_list *list,\n\t\t\t string_list_each_func_t
      fn, void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: want
      Src: /src/git/string-list.c:142,1
    - Dst: free
      Src: /src/git/string-list.c:146,1
    - Dst: free
      Src: /src/git/string-list.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - list
    - free_util
    - want
    - cb_data
    argTypes:
    - struct string_list*
    - int
    - string_list_each_func_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: filter_string_list
    functionSourceFile: /src/git/string-list.c
    functionUses: 1
    functionsReached:
    - want
    - free
    linkageType: ''
    returnType: void
    signature: "void filter_string_list(struct string_list *list, int free_util,\n\t\t\tstring_list_each_func_t
      want, void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - UNUSED
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: item_is_not_empty
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int item_is_not_empty(struct string_list_item *item, void *data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filter_string_list
      Src: /src/git/string-list.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - free_util
    argTypes:
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: string_list_remove_empty_items
    functionSourceFile: /src/git/string-list.c
    functionUses: 1
    functionsReached:
    - filter_string_list
    linkageType: ''
    returnType: void
    signature: void string_list_remove_empty_items(struct string_list *list, int free_util)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/string-list.c:169,1
    - Dst: free
      Src: /src/git/string-list.c:173,1
    - Dst: free
      Src: /src/git/string-list.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - list
    - free_util
    argTypes:
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 179
    functionName: string_list_clear
    functionSourceFile: /src/git/string-list.c
    functionUses: 51
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void string_list_clear(struct string_list *list, int free_util)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clearfunc
      Src: /src/git/string-list.c:186,1
    - Dst: free
      Src: /src/git/string-list.c:190,1
    - Dst: free
      Src: /src/git/string-list.c:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - list
    - clearfunc
    argTypes:
    - struct string_list*
    - string_list_clear_func_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 196
    functionName: string_list_clear_func
    functionSourceFile: /src/git/string-list.c
    functionUses: 3
    functionsReached:
    - clearfunc
    - free
    linkageType: ''
    returnType: void
    signature: void string_list_clear_func(struct string_list *list, string_list_clear_func_t
      clearfunc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/string-list.c:201,1
    - Dst: BUG
      Src: /src/git/string-list.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - struct string_list*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: string_list_setlen
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void string_list_setlen(struct string_list *list, size_t nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/string-list.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: string_list_append_nodup
    functionSourceFile: /src/git/string-list.c
    functionUses: 7
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: struct string_list_item
    signature: "struct string_list_item *string_list_append_nodup(struct string_list
      *list,\n\t\t\t\t\t\t  char *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append_nodup
      Src: /src/git/string-list.c:221,1
    - Dst: xstrdup
      Src: /src/git/string-list.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: string_list_append
    functionSourceFile: /src/git/string-list.c
    functionUses: 33
    functionsReached:
    - string_list_append_nodup
    - xstrdup
    linkageType: ''
    returnType: struct string_list_item
    signature: "struct string_list_item *string_list_append(struct string_list *list,\n\t\t\t\t\t
      \   const char *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct string_list_sort_ctx*::cmp
      Src: /src/git/string-list.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - ctx
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: cmp_items
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached:
    - struct string_list_sort_ctx*::cmp
    linkageType: ''
    returnType: int
    signature: int cmp_items(const void *a, const void *b, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT_S
      Src: /src/git/string-list.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: string_list_sort
    functionSourceFile: /src/git/string-list.c
    functionUses: 10
    functionsReached:
    - QSORT_S
    linkageType: ''
    returnType: void
    signature: void string_list_sort(struct string_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_sort
      Src: /src/git/string-list.c:252,1
    - Dst: string_list_remove_duplicates
      Src: /src/git/string-list.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list
    - free_util
    argTypes:
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: string_list_sort_u
    functionSourceFile: /src/git/string-list.c
    functionUses: 2
    functionsReached:
    - string_list_sort
    - string_list_remove_duplicates
    linkageType: ''
    returnType: void
    signature: void string_list_sort_u(struct string_list *list, int free_util)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/string-list.c:262,1
    - Dst: cmp
      Src: /src/git/string-list.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 266
    functionName: unsorted_string_list_lookup
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - cmp
    linkageType: ''
    returnType: struct string_list_item
    signature: "struct string_list_item *unsorted_string_list_lookup(struct string_list
      *list,\n\t\t\t\t\t\t     const char *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unsorted_string_list_lookup
      Src: /src/git/string-list.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: unsorted_string_list_has_string
    functionSourceFile: /src/git/string-list.c
    functionUses: 2
    functionsReached:
    - unsorted_string_list_lookup
    linkageType: ''
    returnType: int
    signature: "int unsorted_string_list_has_string(struct string_list *list,\n\t\t\t\t
      \   const char *string)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/string-list.c:277,1
    - Dst: free
      Src: /src/git/string-list.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - list
    - i
    - free_util
    argTypes:
    - struct string_list*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: unsorted_string_list_delete_item
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void unsorted_string_list_delete_item(struct string_list *list, int
      i, int free_util)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unsorted_string_list_lookup
      Src: /src/git/string-list.c:287,1
    - Dst: unsorted_string_list_delete_item
      Src: /src/git/string-list.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - list
    - str
    - free_util
    argTypes:
    - struct string_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: unsorted_string_list_remove
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached:
    - unsorted_string_list_delete_item
    - unsorted_string_list_lookup
    linkageType: ''
    returnType: void
    signature: "void unsorted_string_list_remove(struct string_list *list, const char
      *str,\n\t\t\t\t int free_util)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/string-list.c:302,1
    - Dst: isspace
      Src: /src/git/string-list.c:307,1
    - Dst: string_list_append
      Src: /src/git/string-list.c:316,1
    - Dst: string_list_append_nodup
      Src: /src/git/string-list.c:318,1
    - Dst: xmemdupz
      Src: /src/git/string-list.c:318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 5
    argNames:
    - list
    - p
    - end
    - in_place
    - flags
    argTypes:
    - struct string_list*
    - char*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 321
    functionName: append_one
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached:
    - isspace
    - xmemdupz
    - string_list_append_nodup
    - strlen
    - string_list_append
    linkageType: ''
    returnType: int
    signature: "int append_one(struct string_list *list,\n\t\t      const char *p,
      const char *end,\n\t\t      int in_place, unsigned flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/string-list.c:340,1
    - Dst: BUG
      Src: /src/git/string-list.c:342,1
    - Dst: isspace
      Src: /src/git/string-list.c:349,1
    - Dst: strpbrk
      Src: /src/git/string-list.c:356,1
    - Dst: append_one
      Src: /src/git/string-list.c:358,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 6
    argNames:
    - list
    - string
    - delim
    - maxsplit
    - in_place
    - flags
    argTypes:
    - struct string_list*
    - char*
    - char*
    - int
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 364
    functionName: split_string
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached:
    - isspace
    - BUG
    - strpbrk
    - append_one
    linkageType: ''
    returnType: int
    signature: "int split_string(struct string_list *list, const char *string, const
      char *delim,\n\t\t\tint maxsplit, int in_place, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: split_string
      Src: /src/git/string-list.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - list
    - string
    - delim
    - maxsplit
    argTypes:
    - struct string_list*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: string_list_split
    functionSourceFile: /src/git/string-list.c
    functionUses: 5
    functionsReached:
    - split_string
    linkageType: ''
    returnType: int
    signature: "int string_list_split(struct string_list *list, const char *string,\n\t\t
      \     const char *delim, int maxsplit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: split_string
      Src: /src/git/string-list.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - list
    - string
    - delim
    - maxsplit
    argTypes:
    - struct string_list*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: string_list_split_in_place
    functionSourceFile: /src/git/string-list.c
    functionUses: 0
    functionsReached:
    - split_string
    linkageType: ''
    returnType: int
    signature: "int string_list_split_in_place(struct string_list *list, char *string,\n\t\t\t
      \      const char *delim, int maxsplit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: split_string
      Src: /src/git/string-list.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - list
    - string
    - delim
    - maxsplit
    - flags
    argTypes:
    - struct string_list*
    - char*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: string_list_split_f
    functionSourceFile: /src/git/string-list.c
    functionUses: 1
    functionsReached:
    - split_string
    linkageType: ''
    returnType: int
    signature: "int string_list_split_f(struct string_list *list, const char *string,\n\t\t\tconst
      char *delim, int maxsplit, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: split_string
      Src: /src/git/string-list.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - list
    - string
    - delim
    - maxsplit
    - flags
    argTypes:
    - struct string_list*
    - char*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 4
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: string_list_split_in_place_f
    functionSourceFile: /src/git/string-list.c
    functionUses: 1
    functionsReached:
    - split_string
    linkageType: ''
    returnType: int
    signature: "int string_list_split_in_place_f(struct string_list *list, char *string,\n\t\t\t
      \      const char *delim, int maxsplit, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - colorbool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: want_color
    functionSourceFile: /src/git/color.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: want_color(colorbool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - colorbool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: want_color_stderr
    functionSourceFile: /src/git/color.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: want_color_stderr(colorbool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA1_Init
      Src: /src/git/hash.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: git_hash_sha1_init
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA1_Init
    linkageType: ''
    returnType: void
    signature: void git_hash_sha1_init(struct git_hash_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA1_Clone
      Src: /src/git/hash.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct git_hash_ctx*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: git_hash_sha1_clone
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA1_Clone
    linkageType: ''
    returnType: void
    signature: void git_hash_sha1_clone(struct git_hash_ctx *dst, const struct git_hash_ctx
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA1_Update
      Src: /src/git/hash.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - struct git_hash_ctx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: git_hash_sha1_update
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA1_Update
    linkageType: ''
    returnType: void
    signature: void git_hash_sha1_update(struct git_hash_ctx *ctx, const void *data,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA1_Final
      Src: /src/git/hash.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - ctx
    argTypes:
    - unsigned char*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: git_hash_sha1_final
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA1_Final
    linkageType: ''
    returnType: void
    signature: void git_hash_sha1_final(unsigned char *hash, struct git_hash_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA1_Final
      Src: /src/git/hash.c:70,1
    - Dst: memset
      Src: /src/git/hash.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - oid
    - ctx
    argTypes:
    - struct object_id*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: git_hash_sha1_final_oid
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - memset
    - git_SHA1_Final
    linkageType: ''
    returnType: void
    signature: void git_hash_sha1_final_oid(struct object_id *oid, struct git_hash_ctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unsafe_hash_algo
      Src: /src/git/hash.c:77,1
    - Dst: git_SHA1_Init_unsafe
      Src: /src/git/hash.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: git_hash_sha1_init_unsafe
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA1_Init_unsafe
    - unsafe_hash_algo
    linkageType: ''
    returnType: void
    signature: void git_hash_sha1_init_unsafe(struct git_hash_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA1_Clone_unsafe
      Src: /src/git/hash.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct git_hash_ctx*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: git_hash_sha1_clone_unsafe
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA1_Clone_unsafe
    linkageType: ''
    returnType: void
    signature: void git_hash_sha1_clone_unsafe(struct git_hash_ctx *dst, const struct
      git_hash_ctx *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA1_Update_unsafe
      Src: /src/git/hash.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - struct git_hash_ctx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: git_hash_sha1_update_unsafe
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA1_Update_unsafe
    linkageType: ''
    returnType: void
    signature: "void git_hash_sha1_update_unsafe(struct git_hash_ctx *ctx, const void
      *data,\n\t\t\t\t      size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA1_Final_unsafe
      Src: /src/git/hash.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - ctx
    argTypes:
    - unsigned char*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: git_hash_sha1_final_unsafe
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA1_Final_unsafe
    linkageType: ''
    returnType: void
    signature: void git_hash_sha1_final_unsafe(unsigned char *hash, struct git_hash_ctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA1_Final_unsafe
      Src: /src/git/hash.c:100,1
    - Dst: memset
      Src: /src/git/hash.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - oid
    - ctx
    argTypes:
    - struct object_id*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: git_hash_sha1_final_oid_unsafe
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - memset
    - git_SHA1_Final_unsafe
    linkageType: ''
    returnType: void
    signature: void git_hash_sha1_final_oid_unsafe(struct object_id *oid, struct git_hash_ctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unsafe_hash_algo
      Src: /src/git/hash.c:107,1
    - Dst: git_SHA256_Init
      Src: /src/git/hash.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: git_hash_sha256_init
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA256_Init
    - unsafe_hash_algo
    linkageType: ''
    returnType: void
    signature: void git_hash_sha256_init(struct git_hash_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA256_Clone
      Src: /src/git/hash.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct git_hash_ctx*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: git_hash_sha256_clone
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA256_Clone
    linkageType: ''
    returnType: void
    signature: void git_hash_sha256_clone(struct git_hash_ctx *dst, const struct git_hash_ctx
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA256_Update
      Src: /src/git/hash.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - struct git_hash_ctx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: git_hash_sha256_update
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA256_Update
    linkageType: ''
    returnType: void
    signature: void git_hash_sha256_update(struct git_hash_ctx *ctx, const void *data,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA256_Final
      Src: /src/git/hash.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - ctx
    argTypes:
    - unsigned char*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: git_hash_sha256_final
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - git_SHA256_Final
    linkageType: ''
    returnType: void
    signature: void git_hash_sha256_final(unsigned char *hash, struct git_hash_ctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_SHA256_Final
      Src: /src/git/hash.c:129,1
    - Dst: memset
      Src: /src/git/hash.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - oid
    - ctx
    argTypes:
    - struct object_id*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: git_hash_sha256_final_oid
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - memset
    - git_SHA256_Final
    linkageType: ''
    returnType: void
    signature: void git_hash_sha256_final_oid(struct object_id *oid, struct git_hash_ctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/hash.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: git_hash_unknown_init
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void git_hash_unknown_init(struct git_hash_ctx *ctx UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/hash.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct git_hash_ctx*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: git_hash_unknown_clone
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: "void git_hash_unknown_clone(struct git_hash_ctx *dst UNUSED,\n\t\t\t\t
      \  const struct git_hash_ctx *src UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/hash.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - UNUSED
    argTypes:
    - struct git_hash_ctx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: git_hash_unknown_update
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: "void git_hash_unknown_update(struct git_hash_ctx *ctx UNUSED,\n\t\t\t\t
      \   const void *data UNUSED,\n\t\t\t\t    size_t len UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/hash.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - unsigned char*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: git_hash_unknown_final
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: "void git_hash_unknown_final(unsigned char *hash UNUSED,\n\t\t\t\t
      \  struct git_hash_ctx *ctx UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/hash.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct object_id*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: git_hash_unknown_final_oid
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: "void git_hash_unknown_final_oid(struct object_id *oid UNUSED,\n\t\t\t\t
      \      struct git_hash_ctx *ctx UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algop
    argTypes:
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: null_oid
    functionSourceFile: /src/git/hash.c
    functionUses: 70
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *null_oid(const struct git_hash_algo *algop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex_r
      Src: /src/git/hash.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algop
    argTypes:
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: empty_tree_oid_hex
    functionSourceFile: /src/git/hash.c
    functionUses: 2
    functionsReached:
    - oid_to_hex_r
    linkageType: ''
    returnType: char
    signature: char *empty_tree_oid_hex(const struct git_hash_algo *algop)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - algo
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: hash_algo_ptr_by_number
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct git_hash_algo
    signature: struct git_hash_algo *hash_algo_ptr_by_number(uint32_t algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/hash.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: git_hash_alloc
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: struct git_hash_ctx
    signature: struct git_hash_ctx *git_hash_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/hash.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: git_hash_free
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void git_hash_free(struct git_hash_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/hash.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - algop
    argTypes:
    - struct git_hash_ctx*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: git_hash_init
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - struct git_hash_algo*::init_fn
    linkageType: ''
    returnType: void
    signature: void git_hash_init(struct git_hash_ctx *ctx, const struct git_hash_algo
      *algop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct git_hash_ctx*::algop::clone_fn
      Src: /src/git/hash.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct git_hash_ctx*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: git_hash_clone
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached:
    - struct git_hash_ctx*::algop::clone_fn
    linkageType: ''
    returnType: void
    signature: void git_hash_clone(struct git_hash_ctx *dst, const struct git_hash_ctx
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct git_hash_ctx*::algop::update_fn
      Src: /src/git/hash.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - in
    - len
    argTypes:
    - struct git_hash_ctx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: git_hash_update
    functionSourceFile: /src/git/hash.c
    functionUses: 13
    functionsReached:
    - struct git_hash_ctx*::algop::update_fn
    linkageType: ''
    returnType: void
    signature: void git_hash_update(struct git_hash_ctx *ctx, const void *in, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct git_hash_ctx*::algop::final_fn
      Src: /src/git/hash.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - ctx
    argTypes:
    - unsigned char*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: git_hash_final
    functionSourceFile: /src/git/hash.c
    functionUses: 4
    functionsReached:
    - struct git_hash_ctx*::algop::final_fn
    linkageType: ''
    returnType: void
    signature: void git_hash_final(unsigned char *hash, struct git_hash_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct git_hash_ctx*::algop::final_oid_fn
      Src: /src/git/hash.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid
    - ctx
    argTypes:
    - struct object_id*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: git_hash_final_oid
    functionSourceFile: /src/git/hash.c
    functionUses: 7
    functionsReached:
    - struct git_hash_ctx*::algop::final_oid_fn
    linkageType: ''
    returnType: void
    signature: void git_hash_final_oid(struct object_id *oid, struct git_hash_ctx
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/hash.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 294
    functionName: hash_algo_by_name
    functionSourceFile: /src/git/hash.c
    functionUses: 3
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_algo_by_name(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - format_id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: hash_algo_by_id
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_algo_by_id(uint32_t format_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: hash_algo_by_length
    functionSourceFile: /src/git/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_algo_by_length(size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - algop
    argTypes:
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: unsafe_hash_algo
    functionSourceFile: /src/git/hash.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct git_hash_algo
    signature: struct git_hash_algo *unsafe_hash_algo(const struct git_hash_algo *algop)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: oid_common_prefix_hexlen
    functionSourceFile: /src/git/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: "unsigned oid_common_prefix_hexlen(const struct object_id *a,\n\t\t\t\t
      \ const struct object_id *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/mailmap.c:29,1
    - Dst: free
      Src: /src/git/mailmap.c:30,1
    - Dst: free
      Src: /src/git/mailmap.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - UNUSED
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: free_mailmap_info
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_mailmap_info(void *p, const char *s UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/mailmap.c:38,1
    - Dst: free
      Src: /src/git/mailmap.c:39,1
    - Dst: string_list_clear_func
      Src: /src/git/mailmap.c:42,1
    - Dst: free
      Src: /src/git/mailmap.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - UNUSED
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: free_mailmap_entry
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - string_list_clear_func
    - free
    linkageType: ''
    returnType: void
    signature: void free_mailmap_entry(void *p, const char *s UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/mailmap.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: namemap_cmp
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int namemap_cmp(const char *a, const char *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/mailmap.c:72,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/mailmap.c:76,1
    - Dst: free
      Src: /src/git/mailmap.c:85,1
    - Dst: xstrdup
      Src: /src/git/mailmap.c:86,1
    - Dst: free
      Src: /src/git/mailmap.c:89,1
    - Dst: xstrdup
      Src: /src/git/mailmap.c:90,1
    - Dst: xcalloc
      Src: /src/git/mailmap.c:93,1
    - Dst: xstrdup_or_null
      Src: /src/git/mailmap.c:94,1
    - Dst: xstrdup_or_null
      Src: /src/git/mailmap.c:95,1
    - Dst: string_list_insert
      Src: /src/git/mailmap.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - map
    - new_name
    - new_email
    - old_name
    - old_email
    argTypes:
    - struct string_list*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 98
    functionName: add_mapping
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - string_list_insert
    - xcalloc
    - free
    - CALLOC_ARRAY
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void add_mapping(struct string_list *map,\n\t\t\tchar *new_name, char
      *new_email,\n\t\t\tchar *old_name, char *old_email)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/mailmap.c:106,1
    - Dst: strchr
      Src: /src/git/mailmap.c:108,1
    - Dst: isspace
      Src: /src/git/mailmap.c:115,1
    - Dst: isspace
      Src: /src/git/mailmap.c:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - buffer
    - name
    - email
    - allow_empty_email
    argTypes:
    - char*
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 127
    functionName: parse_name_and_email
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - isspace
    - strchr
    linkageType: ''
    returnType: char
    signature: "char *parse_name_and_email(char *buffer, char **name,\n\t\t\t\t  char
      **email, int allow_empty_email)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_name_and_email
      Src: /src/git/mailmap.c:136,1
    - Dst: parse_name_and_email
      Src: /src/git/mailmap.c:137,1
    - Dst: add_mapping
      Src: /src/git/mailmap.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - map
    - buffer
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 141
    functionName: read_mailmap_line
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - add_mapping
    - parse_name_and_email
    linkageType: ''
    returnType: void
    signature: void read_mailmap_line(struct string_list *map, char *buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open_nofollow
      Src: /src/git/mailmap.c:154,1
    - Dst: open
      Src: /src/git/mailmap.c:156,1
    - Dst: error_errno
      Src: /src/git/mailmap.c:161,1
    - Dst: xfdopen
      Src: /src/git/mailmap.c:163,1
    - Dst: fgets
      Src: /src/git/mailmap.c:165,1
    - Dst: read_mailmap_line
      Src: /src/git/mailmap.c:166,1
    - Dst: fclose
      Src: /src/git/mailmap.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - map
    - filename
    - flags
    argTypes:
    - struct string_list*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 169
    functionName: read_mailmap_file
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - fclose
    - fgets
    - error_errno
    - open
    - read_mailmap_line
    - open_nofollow
    - xfdopen
    linkageType: ''
    returnType: int
    signature: "int read_mailmap_file(struct string_list *map, const char *filename,\n\t\t
      \     unsigned flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/mailmap.c:174,1
    - Dst: read_mailmap_line
      Src: /src/git/mailmap.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - map
    - buf
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: read_mailmap_string
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - strchrnul
    - read_mailmap_line
    linkageType: ''
    returnType: void
    signature: void read_mailmap_string(struct string_list *map, char *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/mailmap.c:194,1
    - Dst: odb_read_object
      Src: /src/git/mailmap.c:197,1
    - Dst: error
      Src: /src/git/mailmap.c:199,1
    - Dst: free
      Src: /src/git/mailmap.c:201,1
    - Dst: error
      Src: /src/git/mailmap.c:202,1
    - Dst: read_mailmap_string
      Src: /src/git/mailmap.c:205,1
    - Dst: free
      Src: /src/git/mailmap.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - repo
    - map
    - name
    argTypes:
    - struct repository*
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 184
    functionDepth: 5
    functionLinenumber: 184
    functionLinenumberEnd: 209
    functionName: read_mailmap_blob
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - error
    - repo_get_oid
    - read_mailmap_string
    - free
    - odb_read_object
    linkageType: ''
    returnType: int
    signature: "int read_mailmap_blob(struct repository *repo, struct string_list
      *map,\n\t\t      const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_pathname
      Src: /src/git/mailmap.c:216,1
    - Dst: repo_config_get_string
      Src: /src/git/mailmap.c:217,1
    - Dst: is_bare_repository
      Src: /src/git/mailmap.c:222,1
    - Dst: xstrdup
      Src: /src/git/mailmap.c:223,1
    - Dst: is_bare_repository
      Src: /src/git/mailmap.c:225,1
    - Dst: read_mailmap_file
      Src: /src/git/mailmap.c:226,1
    - Dst: read_mailmap_blob
      Src: /src/git/mailmap.c:230,1
    - Dst: read_mailmap_file
      Src: /src/git/mailmap.c:232,1
    - Dst: free
      Src: /src/git/mailmap.c:234,1
    - Dst: free
      Src: /src/git/mailmap.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - repo
    - map
    argTypes:
    - struct repository*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 238
    functionName: read_mailmap
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - is_bare_repository
    - repo_config_get_pathname
    - repo_config_get_string
    - read_mailmap_file
    - free
    - read_mailmap_blob
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int read_mailmap(struct repository *repo, struct string_list *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear_func
      Src: /src/git/mailmap.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: clear_mailmap
    functionSourceFile: /src/git/mailmap.c
    functionUses: 1
    functionsReached:
    - string_list_clear_func
    linkageType: ''
    returnType: void
    signature: void clear_mailmap(struct string_list *map)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string_list_find_insert_index
      Src: /src/git/mailmap.c:254,1
    - Dst: strncasecmp
      Src: /src/git/mailmap.c:277,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - map
    - string
    - len
    argTypes:
    - struct string_list*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 294
    functionName: lookup_prefix
    functionSourceFile: /src/git/mailmap.c
    functionUses: 0
    functionsReached:
    - string_list_find_insert_index
    - strncasecmp
    linkageType: ''
    returnType: struct string_list_item
    signature: "struct string_list_item *lookup_prefix(struct string_list *map,\n\t\t\t\t\t
      \     const char *string, size_t len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lookup_prefix
      Src: /src/git/mailmap.c:303,1
    - Dst: lookup_prefix
      Src: /src/git/mailmap.c:313,1
    - Dst: strlen
      Src: /src/git/mailmap.c:324,1
    - Dst: strlen
      Src: /src/git/mailmap.c:328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - map
    - email
    - emaillen
    - name
    - namelen
    argTypes:
    - struct string_list*
    - char**
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 333
    functionName: map_user
    functionSourceFile: /src/git/mailmap.c
    functionUses: 1
    functionsReached:
    - lookup_prefix
    - strlen
    linkageType: ''
    returnType: int
    signature: "int map_user(struct string_list *map,\n\t     const char **email,
      size_t *emaillen,\n\t     const char **name, size_t *namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: strhash
    functionSourceFile: /src/git/hashmap.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int strhash(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 27
    functionName: strihash
    functionSourceFile: /src/git/hashmap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int strihash(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: memhash
    functionSourceFile: /src/git/hashmap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int memhash(const void *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: memihash
    functionSourceFile: /src/git/hashmap.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int memihash(const void *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - hash_seed
    - buf
    - len
    argTypes:
    - unsigned int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: memihash_cont
    functionSourceFile: /src/git/hashmap.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int memihash_cont(unsigned int hash_seed, const void *buf,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/hashmap.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - struct hashmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: alloc_table
    functionSourceFile: /src/git/hashmap.c
    functionUses: 0
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void alloc_table(struct hashmap *map, unsigned int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct hashmap*::cmpfn
      Src: /src/git/hashmap.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - map
    - e1
    - e2
    - keydata
    argTypes:
    - struct hashmap*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: entry_equals
    functionSourceFile: /src/git/hashmap.c
    functionUses: 0
    functionsReached:
    - struct hashmap*::cmpfn
    linkageType: ''
    returnType: int
    signature: "int entry_equals(const struct hashmap *map,\n\t\t\t       const struct
      hashmap_entry *e1,\n\t\t\t       const struct hashmap_entry *e2,\n\t\t\t       const
      void *keydata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct hashmap*
    - struct hashmap_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: bucket
    functionSourceFile: /src/git/hashmap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int bucket(const struct hashmap *map,\n\t\t\t\t  const struct
      hashmap_entry *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - hash
    argTypes:
    - struct hashmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: hashmap_bucket
    functionSourceFile: /src/git/hashmap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hashmap_bucket(const struct hashmap *map, unsigned int hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_table
      Src: /src/git/hashmap.c:121,1
    - Dst: bucket
      Src: /src/git/hashmap.c:126,1
    - Dst: free
      Src: /src/git/hashmap.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - map
    - newsize
    argTypes:
    - struct hashmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: rehash
    functionSourceFile: /src/git/hashmap.c
    functionUses: 1
    functionsReached:
    - free
    - bucket
    - alloc_table
    linkageType: ''
    returnType: void
    signature: void rehash(struct hashmap *map, unsigned int newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bucket
      Src: /src/git/hashmap.c:139,1
    - Dst: entry_equals
      Src: /src/git/hashmap.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: find_entry_ptr
    functionSourceFile: /src/git/hashmap.c
    functionUses: 0
    functionsReached:
    - entry_equals
    - bucket
    linkageType: ''
    returnType: struct hashmap_entry
    signature: "struct hashmap_entry **find_entry_ptr(const struct hashmap *map,\n\t\tconst
      struct hashmap_entry *key, const void *keydata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cmp_data
    - entry1
    - entry2
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: always_equal
    functionSourceFile: /src/git/hashmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int always_equal(const void *cmp_data UNUSED,\n\t\t\tconst struct
      hashmap_entry *entry1 UNUSED,\n\t\t\tconst struct hashmap_entry *entry2 UNUSED,\n\t\t\tconst
      void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/hashmap.c:158,1
    - Dst: alloc_table
      Src: /src/git/hashmap.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - map
    - equals_function
    - cmpfn_data
    - initial_size
    argTypes:
    - struct hashmap*
    - hashmap_cmp_fn
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 175
    functionName: hashmap_init
    functionSourceFile: /src/git/hashmap.c
    functionUses: 7
    functionsReached:
    - memset
    - alloc_table
    linkageType: ''
    returnType: void
    signature: "void hashmap_init(struct hashmap *map, hashmap_cmp_fn equals_function,\n\t\t
      \ const void *cmpfn_data, size_t initial_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_iter_init
      Src: /src/git/hashmap.c:182,1
    - Dst: hashmap_iter_next
      Src: /src/git/hashmap.c:183,1
    - Dst: free
      Src: /src/git/hashmap.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - map
    - entry_offset
    argTypes:
    - struct hashmap*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: free_individual_entries
    functionSourceFile: /src/git/hashmap.c
    functionUses: 0
    functionsReached:
    - hashmap_iter_init
    - hashmap_iter_next
    - free
    linkageType: ''
    returnType: void
    signature: void free_individual_entries(struct hashmap *map, ssize_t entry_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free_individual_entries
      Src: /src/git/hashmap.c:196,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/hashmap.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - map
    - entry_offset
    argTypes:
    - struct hashmap*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: hashmap_partial_clear_
    functionSourceFile: /src/git/hashmap.c
    functionUses: 0
    functionsReached:
    - free_individual_entries
    - MEMZERO_ARRAY
    linkageType: ''
    returnType: void
    signature: void hashmap_partial_clear_(struct hashmap *map, ssize_t entry_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free_individual_entries
      Src: /src/git/hashmap.c:207,1
    - Dst: FREE_AND_NULL
      Src: /src/git/hashmap.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - map
    - entry_offset
    argTypes:
    - struct hashmap*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: hashmap_clear_
    functionSourceFile: /src/git/hashmap.c
    functionUses: 0
    functionsReached:
    - free_individual_entries
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void hashmap_clear_(struct hashmap *map, ssize_t entry_offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_entry_ptr
      Src: /src/git/hashmap.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - map
    - key
    - keydata
    argTypes:
    - struct hashmap*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 220
    functionName: hashmap_get
    functionSourceFile: /src/git/hashmap.c
    functionUses: 1
    functionsReached:
    - find_entry_ptr
    linkageType: ''
    returnType: struct hashmap_entry
    signature: "struct hashmap_entry *hashmap_get(const struct hashmap *map,\n\t\t\t\tconst
      struct hashmap_entry *key,\n\t\t\t\tconst void *keydata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: entry_equals
      Src: /src/git/hashmap.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - map
    - entry
    argTypes:
    - struct hashmap*
    - struct hashmap_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: hashmap_get_next
    functionSourceFile: /src/git/hashmap.c
    functionUses: 0
    functionsReached:
    - entry_equals
    linkageType: ''
    returnType: struct hashmap_entry
    signature: "struct hashmap_entry *hashmap_get_next(const struct hashmap *map,\n\t\t\t\t
      \      const struct hashmap_entry *entry)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_table
      Src: /src/git/hashmap.c:237,1
    - Dst: bucket
      Src: /src/git/hashmap.c:239,1
    - Dst: rehash
      Src: /src/git/hashmap.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - map
    - entry
    argTypes:
    - struct hashmap*
    - struct hashmap_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 250
    functionName: hashmap_add
    functionSourceFile: /src/git/hashmap.c
    functionUses: 11
    functionsReached:
    - rehash
    - bucket
    - alloc_table
    linkageType: ''
    returnType: void
    signature: void hashmap_add(struct hashmap *map, struct hashmap_entry *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_entry_ptr
      Src: /src/git/hashmap.c:261,1
    - Dst: rehash
      Src: /src/git/hashmap.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - map
    - key
    - keydata
    argTypes:
    - struct hashmap*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 278
    functionName: hashmap_remove
    functionSourceFile: /src/git/hashmap.c
    functionUses: 3
    functionsReached:
    - rehash
    - find_entry_ptr
    linkageType: ''
    returnType: struct hashmap_entry
    signature: "struct hashmap_entry *hashmap_remove(struct hashmap *map,\n\t\t\t\t
      \    const struct hashmap_entry *key,\n\t\t\t\t     const void *keydata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_remove
      Src: /src/git/hashmap.c:283,1
    - Dst: hashmap_add
      Src: /src/git/hashmap.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - map
    - entry
    argTypes:
    - struct hashmap*
    - struct hashmap_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: hashmap_put
    functionSourceFile: /src/git/hashmap.c
    functionUses: 3
    functionsReached:
    - hashmap_add
    - hashmap_remove
    linkageType: ''
    returnType: struct hashmap_entry
    signature: "struct hashmap_entry *hashmap_put(struct hashmap *map,\n\t\t\t\t  struct
      hashmap_entry *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - map
    - iter
    argTypes:
    - struct hashmap*
    - struct hashmap_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: hashmap_iter_init
    functionSourceFile: /src/git/hashmap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hashmap_iter_init(struct hashmap *map, struct hashmap_iter *iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct hashmap_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 309
    functionName: hashmap_iter_next
    functionSourceFile: /src/git/hashmap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct hashmap_entry
    signature: struct hashmap_entry *hashmap_iter_next(struct hashmap_iter *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/hashmap.c:324,1
    - Dst: container_of
      Src: /src/git/hashmap.c:325,1
    - Dst: memcmp
      Src: /src/git/hashmap.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 329
    functionName: pool_entry_cmp
    functionSourceFile: /src/git/hashmap.c
    functionUses: 0
    functionsReached:
    - container_of
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int pool_entry_cmp(const void *cmp_data UNUSED,\n\t\t\t  const struct
      hashmap_entry *eptr,\n\t\t\t  const struct hashmap_entry *entry_or_key,\n\t\t\t
      \ const void *keydata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/hashmap.c:338,1
    - Dst: hashmap_entry_init
      Src: /src/git/hashmap.c:341,1
    - Dst: memhash
      Src: /src/git/hashmap.c:341,1
    - Dst: hashmap_get_entry
      Src: /src/git/hashmap.c:343,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/hashmap.c:346,1
    - Dst: hashmap_entry_init
      Src: /src/git/hashmap.c:347,1
    - Dst: hashmap_add
      Src: /src/git/hashmap.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 352
    functionName: memintern
    functionSourceFile: /src/git/hashmap.c
    functionUses: 1
    functionsReached:
    - hashmap_add
    - memhash
    - hashmap_init
    - hashmap_entry_init
    - FLEX_ALLOC_MEM
    - hashmap_get_entry
    linkageType: ''
    returnType: void
    signature: void *memintern(const void *data, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/diffcore-pickaxe.c:34,1
    - Dst: regexec_buf
      Src: /src/git/diffcore-pickaxe.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - priv
    - line
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 41
    functionName: diffgrep_consume
    functionSourceFile: /src/git/diffcore-pickaxe.c
    functionUses: 0
    functionsReached:
    - regexec_buf
    - BUG
    linkageType: ''
    returnType: int
    signature: int diffgrep_consume(void *priv, char *line, unsigned long len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/diffcore-pickaxe.c:56,1
    - Dst: memset
      Src: /src/git/diffcore-pickaxe.c:57,1
    - Dst: xdi_diff_outf
      Src: /src/git/diffcore-pickaxe.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - one
    - two
    - o
    - regexp
    - UNUSED
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - struct diff_options*
    - regex_t*
    - kwset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 75
    functionName: diff_grep
    functionSourceFile: /src/git/diffcore-pickaxe.c
    functionUses: 0
    functionsReached:
    - memset
    - xdi_diff_outf
    linkageType: ''
    returnType: int
    signature: "int diff_grep(mmfile_t *one, mmfile_t *two,\n\t\t     struct diff_options
      *o,\n\t\t     regex_t *regexp, kwset_t kws UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: regexec_buf
      Src: /src/git/diffcore-pickaxe.c:89,1
    - Dst: kwsexec
      Src: /src/git/diffcore-pickaxe.c:106,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - mf
    - regexp
    - kws
    - limit
    argTypes:
    - mmfile_t*
    - regex_t*
    - kwset_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 118
    functionName: contains
    functionSourceFile: /src/git/diffcore-pickaxe.c
    functionUses: 21
    functionsReached:
    - regexec_buf
    - kwsexec
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int contains(mmfile_t *mf, regex_t *regexp, kwset_t kws,\n\t\t\t
      \    unsigned int limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/git/diffcore-pickaxe.c:124,1
    - Dst: contains
      Src: /src/git/diffcore-pickaxe.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - one
    - two
    - UNUSED
    - regexp
    - kws
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - struct diff_options*
    - regex_t*
    - kwset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: has_changes
    functionSourceFile: /src/git/diffcore-pickaxe.c
    functionUses: 1
    functionsReached:
    - contains
    linkageType: ''
    returnType: int
    signature: "int has_changes(mmfile_t *one, mmfile_t *two,\n\t\t       struct diff_options
      *o UNUSED,\n\t\t       regex_t *regexp, kwset_t kws)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-pickaxe.c:138,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-pickaxe.c:138,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-pickaxe.c:142,1
    - Dst: oidset_contains
      Src: /src/git/diffcore-pickaxe.c:143,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-pickaxe.c:144,1
    - Dst: oidset_contains
      Src: /src/git/diffcore-pickaxe.c:145,1
    - Dst: get_textconv
      Src: /src/git/diffcore-pickaxe.c:149,1
    - Dst: get_textconv
      Src: /src/git/diffcore-pickaxe.c:150,1
    - Dst: diff_unmodified_pair
      Src: /src/git/diffcore-pickaxe.c:160,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diffcore-pickaxe.c:165,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diffcore-pickaxe.c:166,1
    - Dst: fill_textconv
      Src: /src/git/diffcore-pickaxe.c:169,1
    - Dst: fill_textconv
      Src: /src/git/diffcore-pickaxe.c:170,1
    - Dst: fn
      Src: /src/git/diffcore-pickaxe.c:172,1
    - Dst: free
      Src: /src/git/diffcore-pickaxe.c:175,1
    - Dst: free
      Src: /src/git/diffcore-pickaxe.c:177,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diffcore-pickaxe.c:178,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diffcore-pickaxe.c:179,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 5
    argNames:
    - p
    - o
    - regexp
    - kws
    - fn
    argTypes:
    - struct diff_filepair*
    - struct diff_options*
    - regex_t*
    - kwset_t
    - pickaxe_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 182
    functionName: pickaxe_match
    functionSourceFile: /src/git/diffcore-pickaxe.c
    functionUses: 0
    functionsReached:
    - diff_free_filespec_data
    - fn
    - fill_textconv
    - diff_unmodified_pair
    - oidset_contains
    - get_textconv
    - free
    - DIFF_FILE_VALID
    - diff_filespec_is_binary
    linkageType: ''
    returnType: int
    signature: "int pickaxe_match(struct diff_filepair *p, struct diff_options *o,\n\t\t\t
      regex_t *regexp, kwset_t kws, pickaxe_fn fn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pickaxe_match
      Src: /src/git/diffcore-pickaxe.c:194,1
    - Dst: diff_free_filepair
      Src: /src/git/diffcore-pickaxe.c:204,1
    - Dst: pickaxe_match
      Src: /src/git/diffcore-pickaxe.c:209,1
    - Dst: diff_q
      Src: /src/git/diffcore-pickaxe.c:210,1
    - Dst: diff_free_filepair
      Src: /src/git/diffcore-pickaxe.c:212,1
    - Dst: free
      Src: /src/git/diffcore-pickaxe.c:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - q
    - o
    - regexp
    - kws
    - fn
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - regex_t*
    - kwset_t
    - pickaxe_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 218
    functionName: pickaxe
    functionSourceFile: /src/git/diffcore-pickaxe.c
    functionUses: 0
    functionsReached:
    - diff_free_filepair
    - pickaxe_match
    - diff_q
    - free
    linkageType: ''
    returnType: void
    signature: "void pickaxe(struct diff_queue_struct *q, struct diff_options *o,\n\t\t
      \   regex_t *regexp, kwset_t kws, pickaxe_fn fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/git/diffcore-pickaxe.c:222,1
    - Dst: regerror
      Src: /src/git/diffcore-pickaxe.c:226,1
    - Dst: die
      Src: /src/git/diffcore-pickaxe.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - regex
    - needle
    - cflags
    argTypes:
    - regex_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 229
    functionName: regcomp_or_die
    functionSourceFile: /src/git/diffcore-pickaxe.c
    functionUses: 0
    functionsReached:
    - regcomp
    - die
    - regerror
    linkageType: ''
    returnType: void
    signature: void regcomp_or_die(regex_t *regex, const char *needle, int cflags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/diffcore-pickaxe.c:241,1
    - Dst: regcomp_or_die
      Src: /src/git/diffcore-pickaxe.c:246,1
    - Dst: BUG
      Src: /src/git/diffcore-pickaxe.c:261,1
    - Dst: has_non_ascii
      Src: /src/git/diffcore-pickaxe.c:264,1
    - Dst: basic_regex_quote_buf
      Src: /src/git/diffcore-pickaxe.c:268,1
    - Dst: regcomp_or_die
      Src: /src/git/diffcore-pickaxe.c:269,1
    - Dst: strbuf_release
      Src: /src/git/diffcore-pickaxe.c:270,1
    - Dst: kwsalloc
      Src: /src/git/diffcore-pickaxe.c:273,1
    - Dst: kwsincr
      Src: /src/git/diffcore-pickaxe.c:275,1
    - Dst: strlen
      Src: /src/git/diffcore-pickaxe.c:275,1
    - Dst: kwsprep
      Src: /src/git/diffcore-pickaxe.c:276,1
    - Dst: BUG
      Src: /src/git/diffcore-pickaxe.c:282,1
    - Dst: pickaxe
      Src: /src/git/diffcore-pickaxe.c:285,1
    - Dst: regfree
      Src: /src/git/diffcore-pickaxe.c:288,1
    - Dst: kwsfree
      Src: /src/git/diffcore-pickaxe.c:290,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 292
    functionName: diffcore_pickaxe
    functionSourceFile: /src/git/diffcore-pickaxe.c
    functionUses: 0
    functionsReached:
    - has_non_ascii
    - strbuf_release
    - kwsfree
    - regfree
    - pickaxe
    - kwsincr
    - strlen
    - regcomp_or_die
    - kwsprep
    - basic_regex_quote_buf
    - kwsalloc
    - BUG
    linkageType: ''
    returnType: void
    signature: void diffcore_pickaxe(struct diff_options *o)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 24
    functionName: zerr_to_string
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *zerr_to_string(int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: zlib_buf_cap
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uInt
    signature: uInt zlib_buf_cap(unsigned long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_buf_cap
      Src: /src/git/git-zlib.c:47,1
    - Dst: zlib_buf_cap
      Src: /src/git/git-zlib.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - git_zstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: zlib_pre_call
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 0
    functionsReached:
    - zlib_buf_cap
    linkageType: ''
    returnType: void
    signature: void zlib_pre_call(git_zstream *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/git-zlib.c:64,1
    - Dst: BUG
      Src: /src/git/git-zlib.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - status
    argTypes:
    - git_zstream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 81
    functionName: zlib_post_call
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void zlib_post_call(git_zstream *s, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zlib_pre_call
      Src: /src/git/git-zlib.c:87,1
    - Dst: inflateInit
      Src: /src/git/git-zlib.c:88,1
    - Dst: zlib_post_call
      Src: /src/git/git-zlib.c:89,1
    - Dst: die
      Src: /src/git/git-zlib.c:92,1
    - Dst: zerr_to_string
      Src: /src/git/git-zlib.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - git_zstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: git_inflate_init
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 3
    functionsReached:
    - die
    - zlib_post_call
    - inflateInit
    - zerr_to_string
    - zlib_pre_call
    linkageType: ''
    returnType: void
    signature: void git_inflate_init(git_zstream *strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zlib_pre_call
      Src: /src/git/git-zlib.c:105,1
    - Dst: inflateInit2
      Src: /src/git/git-zlib.c:106,1
    - Dst: zlib_post_call
      Src: /src/git/git-zlib.c:107,1
    - Dst: die
      Src: /src/git/git-zlib.c:110,1
    - Dst: zerr_to_string
      Src: /src/git/git-zlib.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - git_zstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: git_inflate_init_gzip_only
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 1
    functionsReached:
    - inflateInit2
    - die
    - zlib_post_call
    - zerr_to_string
    - zlib_pre_call
    linkageType: ''
    returnType: void
    signature: void git_inflate_init_gzip_only(git_zstream *strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zlib_pre_call
      Src: /src/git/git-zlib.c:118,1
    - Dst: inflateEnd
      Src: /src/git/git-zlib.c:119,1
    - Dst: zlib_post_call
      Src: /src/git/git-zlib.c:120,1
    - Dst: error
      Src: /src/git/git-zlib.c:123,1
    - Dst: zerr_to_string
      Src: /src/git/git-zlib.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - git_zstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: git_inflate_end
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 9
    functionsReached:
    - error
    - zlib_post_call
    - zerr_to_string
    - inflateEnd
    - zlib_pre_call
    linkageType: ''
    returnType: void
    signature: void git_inflate_end(git_zstream *strm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: zlib_pre_call
      Src: /src/git/git-zlib.c:132,1
    - Dst: inflate
      Src: /src/git/git-zlib.c:134,1
    - Dst: die
      Src: /src/git/git-zlib.c:138,1
    - Dst: zlib_post_call
      Src: /src/git/git-zlib.c:139,1
    - Dst: error
      Src: /src/git/git-zlib.c:160,1
    - Dst: zerr_to_string
      Src: /src/git/git-zlib.c:160,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - strm
    - flush
    argTypes:
    - git_zstream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 163
    functionName: git_inflate
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 7
    functionsReached:
    - error
    - die
    - zlib_post_call
    - inflate
    - zerr_to_string
    - zlib_pre_call
    linkageType: ''
    returnType: int
    signature: int git_inflate(git_zstream *strm, int flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deflateBound
      Src: /src/git/git-zlib.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - strm
    - size
    argTypes:
    - git_zstream*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: git_deflate_bound
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 0
    functionsReached:
    - deflateBound
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long git_deflate_bound(git_zstream *strm, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/git-zlib.c:174,1
    - Dst: zlib_pre_call
      Src: /src/git/git-zlib.c:175,1
    - Dst: deflateInit
      Src: /src/git/git-zlib.c:176,1
    - Dst: zlib_post_call
      Src: /src/git/git-zlib.c:177,1
    - Dst: die
      Src: /src/git/git-zlib.c:180,1
    - Dst: zerr_to_string
      Src: /src/git/git-zlib.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - strm
    - level
    argTypes:
    - git_zstream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 182
    functionName: git_deflate_init
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 2
    functionsReached:
    - memset
    - die
    - deflateInit
    - zlib_post_call
    - zerr_to_string
    - zlib_pre_call
    linkageType: ''
    returnType: void
    signature: void git_deflate_init(git_zstream *strm, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/git-zlib.c:188,1
    - Dst: zlib_pre_call
      Src: /src/git/git-zlib.c:189,1
    - Dst: deflateInit2
      Src: /src/git/git-zlib.c:190,1
    - Dst: zlib_post_call
      Src: /src/git/git-zlib.c:193,1
    - Dst: die
      Src: /src/git/git-zlib.c:196,1
    - Dst: zerr_to_string
      Src: /src/git/git-zlib.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - strm
    - level
    - windowBits
    argTypes:
    - git_zstream*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: do_git_deflate_init
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - zlib_post_call
    - deflateInit2
    - zerr_to_string
    - zlib_pre_call
    linkageType: ''
    returnType: void
    signature: void do_git_deflate_init(git_zstream *strm, int level, int windowBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_git_deflate_init
      Src: /src/git/git-zlib.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - strm
    - level
    argTypes:
    - git_zstream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: git_deflate_init_gzip
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 1
    functionsReached:
    - do_git_deflate_init
    linkageType: ''
    returnType: void
    signature: void git_deflate_init_gzip(git_zstream *strm, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_git_deflate_init
      Src: /src/git/git-zlib.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - strm
    - level
    argTypes:
    - git_zstream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 216
    functionName: git_deflate_init_raw
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 0
    functionsReached:
    - do_git_deflate_init
    linkageType: ''
    returnType: void
    signature: void git_deflate_init_raw(git_zstream *strm, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_pre_call
      Src: /src/git/git-zlib.c:222,1
    - Dst: deflateEnd
      Src: /src/git/git-zlib.c:223,1
    - Dst: zlib_post_call
      Src: /src/git/git-zlib.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - git_zstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 226
    functionName: git_deflate_abort
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 0
    functionsReached:
    - zlib_pre_call
    - deflateEnd
    - zlib_post_call
    linkageType: ''
    returnType: int
    signature: int git_deflate_abort(git_zstream *strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate_abort
      Src: /src/git/git-zlib.c:230,1
    - Dst: error
      Src: /src/git/git-zlib.c:234,1
    - Dst: zerr_to_string
      Src: /src/git/git-zlib.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - strm
    argTypes:
    - git_zstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: git_deflate_end
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 2
    functionsReached:
    - git_deflate_abort
    - zerr_to_string
    - error
    linkageType: ''
    returnType: void
    signature: void git_deflate_end(git_zstream *strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_pre_call
      Src: /src/git/git-zlib.c:242,1
    - Dst: deflateEnd
      Src: /src/git/git-zlib.c:243,1
    - Dst: zlib_post_call
      Src: /src/git/git-zlib.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - git_zstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: git_deflate_end_gently
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 1
    functionsReached:
    - zlib_pre_call
    - deflateEnd
    - zlib_post_call
    linkageType: ''
    returnType: int
    signature: int git_deflate_end_gently(git_zstream *strm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: zlib_pre_call
      Src: /src/git/git-zlib.c:253,1
    - Dst: deflate
      Src: /src/git/git-zlib.c:256,1
    - Dst: die
      Src: /src/git/git-zlib.c:260,1
    - Dst: zlib_post_call
      Src: /src/git/git-zlib.c:261,1
    - Dst: error
      Src: /src/git/git-zlib.c:282,1
    - Dst: zerr_to_string
      Src: /src/git/git-zlib.c:282,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - strm
    - flush
    argTypes:
    - git_zstream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 285
    functionName: git_deflate
    functionSourceFile: /src/git/git-zlib.c
    functionUses: 4
    functionsReached:
    - error
    - die
    - zlib_post_call
    - zerr_to_string
    - zlib_pre_call
    - deflate
    linkageType: ''
    returnType: int
    signature: int git_deflate(git_zstream *strm, int flush)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: want_color
      Src: /src/git/wt-status.c:60,1
    - Dst: color_is_nil
      Src: /src/git/wt-status.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - slot
    - s
    argTypes:
    - int
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: color
    functionSourceFile: /src/git/wt-status.c
    functionUses: 7
    functionsReached:
    - want_color
    - color_is_nil
    linkageType: ''
    returnType: char
    signature: char *color(int slot, struct wt_status *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_vaddf
      Src: /src/git/wt-status.c:74,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:77,1
    - Dst: strbuf_addch
      Src: /src/git/wt-status.c:79,1
    - Dst: color_print_strbuf
      Src: /src/git/wt-status.c:81,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:83,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:84,1
    - Dst: strchr
      Src: /src/git/wt-status.c:88,1
    - Dst: strbuf_reset
      Src: /src/git/wt-status.c:90,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:92,1
    - Dst: strbuf_addch
      Src: /src/git/wt-status.c:94,1
    - Dst: strbuf_add
      Src: /src/git/wt-status.c:97,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:99,1
    - Dst: color_print_strbuf
      Src: /src/git/wt-status.c:100,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:102,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:108,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:109,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:110,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 6
    argNames:
    - s
    - at_bol
    - color
    - fmt
    - ap
    - trail
    argTypes:
    - struct wt_status*
    - int
    - char*
    - char*
    - va_list
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 111
    functionName: status_vprintf
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_vaddf
    - strbuf_reset
    - strchr
    - strbuf_addch
    - color_print_strbuf
    - strbuf_addstr
    - fprintf
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void status_vprintf(struct wt_status *s, int at_bol, const char *color,\n\t\tconst
      char *fmt, va_list ap, const char *trail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/wt-status.c:118,1
    - Dst: status_vprintf
      Src: /src/git/wt-status.c:119,1
    - Dst: va_end
      Src: /src/git/wt-status.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - color
    - fmt
    argTypes:
    - struct wt_status*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: status_printf_ln
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - status_vprintf
    linkageType: ''
    returnType: void
    signature: "void status_printf_ln(struct wt_status *s, const char *color,\n\t\t\tconst
      char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/wt-status.c:128,1
    - Dst: status_vprintf
      Src: /src/git/wt-status.c:129,1
    - Dst: va_end
      Src: /src/git/wt-status.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - color
    - fmt
    argTypes:
    - struct wt_status*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: status_printf
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - status_vprintf
    linkageType: ''
    returnType: void
    signature: "void status_printf(struct wt_status *s, const char *color,\n\t\t\tconst
      char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/wt-status.c:133,1
    - Dst: va_start
      Src: /src/git/wt-status.c:139,1
    - Dst: status_vprintf
      Src: /src/git/wt-status.c:140,1
    - Dst: va_end
      Src: /src/git/wt-status.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - color
    - fmt
    argTypes:
    - struct wt_status*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: status_printf_more
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - status_vprintf
    - format
    linkageType: ''
    returnType: void
    signature: "void status_printf_more(struct wt_status *s, const char *color,\n\t\t\t
      \      const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/wt-status.c:146,1
    - Dst: memcpy
      Src: /src/git/wt-status.c:148,1
    - Dst: refs_resolve_refdup
      Src: /src/git/wt-status.c:153,1
    - Dst: get_main_ref_store
      Src: /src/git/wt-status.c:153,1
    - Dst: repo_get_index_file
      Src: /src/git/wt-status.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - r
    - s
    argTypes:
    - struct repository*
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 168
    functionName: wt_status_prepare
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - memset
    - repo_get_index_file
    - memcpy
    - get_main_ref_store
    - refs_resolve_refdup
    linkageType: ''
    returnType: void
    signature: void wt_status_prepare(struct repository *r, struct wt_status *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: color
      Src: /src/git/wt-status.c:176,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:178,1
    - Dst: _
      Src: /src/git/wt-status.c:178,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:205,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:206,1
    - Dst: _
      Src: /src/git/wt-status.c:207,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:209,1
    - Dst: _
      Src: /src/git/wt-status.c:210,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:213,1
    - Dst: _
      Src: /src/git/wt-status.c:213,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:217,1
    - Dst: _
      Src: /src/git/wt-status.c:217,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:219,1
    - Dst: _
      Src: /src/git/wt-status.c:219,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:221,1
    - Dst: _
      Src: /src/git/wt-status.c:221,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:223,1
    - Dst: _
      Src: /src/git/wt-status.c:223,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 225
    functionName: wt_longstatus_print_unmerged_header
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - status_printf_ln
    - strcmp
    - color
    - _
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_unmerged_header(struct wt_status *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: color
      Src: /src/git/wt-status.c:229,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:231,1
    - Dst: _
      Src: /src/git/wt-status.c:231,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:237,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:238,1
    - Dst: _
      Src: /src/git/wt-status.c:239,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:241,1
    - Dst: _
      Src: /src/git/wt-status.c:242,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:245,1
    - Dst: _
      Src: /src/git/wt-status.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 5
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: wt_longstatus_print_cached_header
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - status_printf_ln
    - strcmp
    - color
    - _
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_cached_header(struct wt_status *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: color
      Src: /src/git/wt-status.c:252,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:254,1
    - Dst: _
      Src: /src/git/wt-status.c:254,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:258,1
    - Dst: _
      Src: /src/git/wt-status.c:258,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:260,1
    - Dst: _
      Src: /src/git/wt-status.c:260,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:261,1
    - Dst: _
      Src: /src/git/wt-status.c:261,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:263,1
    - Dst: _
      Src: /src/git/wt-status.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - has_deleted
    - has_dirty_submodules
    argTypes:
    - struct wt_status*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: wt_longstatus_print_dirty_header
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - status_printf_ln
    - color
    - _
    linkageType: ''
    returnType: void
    signature: "void wt_longstatus_print_dirty_header(struct wt_status *s,\n\t\t\t\t\t
      \    int has_deleted,\n\t\t\t\t\t     int has_dirty_submodules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: color
      Src: /src/git/wt-status.c:270,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:271,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:274,1
    - Dst: _
      Src: /src/git/wt-status.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - what
    - how
    argTypes:
    - struct wt_status*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: wt_longstatus_print_other_header
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - status_printf_ln
    - color
    - _
    linkageType: ''
    returnType: void
    signature: "void wt_longstatus_print_other_header(struct wt_status *s,\n\t\t\t\t\t
      \    const char *what,\n\t\t\t\t\t     const char *how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:279,1
    - Dst: color
      Src: /src/git/wt-status.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 5
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: wt_longstatus_print_trailer
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - status_printf_ln
    - color
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_trailer(struct wt_status *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/wt-status.c:286,1
    - Dst: _
      Src: /src/git/wt-status.c:288,1
    - Dst: _
      Src: /src/git/wt-status.c:290,1
    - Dst: _
      Src: /src/git/wt-status.c:292,1
    - Dst: _
      Src: /src/git/wt-status.c:294,1
    - Dst: _
      Src: /src/git/wt-status.c:296,1
    - Dst: _
      Src: /src/git/wt-status.c:298,1
    - Dst: BUG
      Src: /src/git/wt-status.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - stagemask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 302
    functionName: wt_status_unmerged_status_string
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - BUG
    - _
    linkageType: ''
    returnType: char
    signature: char *wt_status_unmerged_status_string(int stagemask)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/wt-status.c:308,1
    - Dst: _
      Src: /src/git/wt-status.c:310,1
    - Dst: _
      Src: /src/git/wt-status.c:312,1
    - Dst: _
      Src: /src/git/wt-status.c:314,1
    - Dst: _
      Src: /src/git/wt-status.c:316,1
    - Dst: _
      Src: /src/git/wt-status.c:318,1
    - Dst: _
      Src: /src/git/wt-status.c:320,1
    - Dst: _
      Src: /src/git/wt-status.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 326
    functionName: wt_status_diff_status_string
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - _
    linkageType: ''
    returnType: char
    signature: char *wt_status_diff_status_string(int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: label
      Src: /src/git/wt-status.c:333,1
    - Dst: utf8_strwidth
      Src: /src/git/wt-status.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - (*label)(int)
    - minval
    - maxval
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 339
    functionName: maxwidth
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - utf8_strwidth
    - label
    linkageType: ''
    returnType: int
    signature: int maxwidth(const char *(*label)(int), int minval, int maxval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: color
      Src: /src/git/wt-status.c:344,1
    - Dst: maxwidth
      Src: /src/git/wt-status.c:353,1
    - Dst: strlen
      Src: /src/git/wt-status.c:354,1
    - Dst: xmallocz
      Src: /src/git/wt-status.c:355,1
    - Dst: memset
      Src: /src/git/wt-status.c:356,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:359,1
    - Dst: status_printf
      Src: /src/git/wt-status.c:360,1
    - Dst: color
      Src: /src/git/wt-status.c:360,1
    - Dst: wt_status_unmerged_status_string
      Src: /src/git/wt-status.c:362,1
    - Dst: utf8_strwidth
      Src: /src/git/wt-status.c:363,1
    - Dst: status_printf_more
      Src: /src/git/wt-status.c:364,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - s
    - it
    argTypes:
    - struct wt_status*
    - struct string_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 366
    functionName: wt_longstatus_print_unmerged_data
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - memset
    - strbuf_release
    - wt_status_unmerged_status_string
    - xmallocz
    - strlen
    - quote_path
    - utf8_strwidth
    - maxwidth
    - color
    - status_printf_more
    - status_printf
    linkageType: ''
    returnType: void
    signature: "void wt_longstatus_print_unmerged_data(struct wt_status *s,\n\t\t\t\t\t
      \     struct string_list_item *it)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: color
      Src: /src/git/wt-status.c:373,1
    - Dst: maxwidth
      Src: /src/git/wt-status.c:387,1
    - Dst: strlen
      Src: /src/git/wt-status.c:388,1
    - Dst: xmallocz
      Src: /src/git/wt-status.c:389,1
    - Dst: memset
      Src: /src/git/wt-status.c:390,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:400,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:402,1
    - Dst: _
      Src: /src/git/wt-status.c:402,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:404,1
    - Dst: _
      Src: /src/git/wt-status.c:404,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:406,1
    - Dst: _
      Src: /src/git/wt-status.c:406,1
    - Dst: strbuf_setlen
      Src: /src/git/wt-status.c:407,1
    - Dst: strbuf_addch
      Src: /src/git/wt-status.c:408,1
    - Dst: BUG
      Src: /src/git/wt-status.c:413,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:425,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:426,1
    - Dst: status_printf
      Src: /src/git/wt-status.c:428,1
    - Dst: color
      Src: /src/git/wt-status.c:428,1
    - Dst: wt_status_diff_status_string
      Src: /src/git/wt-status.c:429,1
    - Dst: BUG
      Src: /src/git/wt-status.c:431,1
    - Dst: utf8_strwidth
      Src: /src/git/wt-status.c:432,1
    - Dst: assert
      Src: /src/git/wt-status.c:433,1
    - Dst: status_printf_more
      Src: /src/git/wt-status.c:435,1
    - Dst: status_printf_more
      Src: /src/git/wt-status.c:438,1
    - Dst: status_printf_more
      Src: /src/git/wt-status.c:441,1
    - Dst: color
      Src: /src/git/wt-status.c:441,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:442,1
    - Dst: status_printf_more
      Src: /src/git/wt-status.c:444,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:445,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:446,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - s
    - change_type
    - it
    argTypes:
    - struct wt_status*
    - int
    - struct string_list_item*
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/git/wt-status.c
    constantsTouched: []
    func_position:
      end: 447
      start: 368
    functionDepth: 5
    functionLinenumber: 368
    functionLinenumberEnd: 447
    functionName: wt_longstatus_print_change_data
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - memset
    - strbuf_release
    - assert
    - xmallocz
    - strbuf_setlen
    - strbuf_addch
    - wt_status_diff_status_string
    - strlen
    - quote_path
    - utf8_strwidth
    - maxwidth
    - color
    - strbuf_addstr
    - status_printf_more
    - BUG
    - _
    - status_printf
    linkageType: ''
    returnType: void
    signature: "void wt_longstatus_print_change_data(struct wt_status *s,\n\t\t\t\t\t
      \   int change_type,\n\t\t\t\t\t    struct string_list_item *it)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct wt_status_change_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 458
    functionName: short_submodule_status
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char short_submodule_status(struct wt_status_change_data *d)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/wt-status.c:476,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/wt-status.c:479,1
    - Dst: S_ISGITLINK
      Src: /src/git/wt-status.c:484,1
    - Dst: oideq
      Src: /src/git/wt-status.c:486,1
    - Dst: short_submodule_status
      Src: /src/git/wt-status.c:489,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:499,1
    - Dst: BUG
      Src: /src/git/wt-status.c:506,1
    - Dst: xstrdup
      Src: /src/git/wt-status.c:507,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:516,1
    - Dst: BUG
      Src: /src/git/wt-status.c:520,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 3
    argNames:
    - q
    - options
    - data
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 525
    functionName: wt_status_collect_changed_cb
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - string_list_insert
    - oidcpy
    - S_ISGITLINK
    - short_submodule_status
    - CALLOC_ARRAY
    - BUG
    - oideq
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void wt_status_collect_changed_cb(struct diff_queue_struct *q,\n\t\t\t\t\t
      struct diff_options *options UNUSED,\n\t\t\t\t\t void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/wt-status.c:532,1
    - Dst: strlen
      Src: /src/git/wt-status.c:532,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:540,1
    - Dst: ce_stage
      Src: /src/git/wt-status.c:540,1
    - Dst: ce_stage
      Src: /src/git/wt-status.c:542,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 527
    functionDepth: 4
    functionLinenumber: 527
    functionLinenumberEnd: 545
    functionName: unmerged_mask
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - ce_stage
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: int unmerged_mask(struct index_state *istate, const char *path)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/wt-status.c:560,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/wt-status.c:563,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:572,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:577,1
    - Dst: BUG
      Src: /src/git/wt-status.c:585,1
    - Dst: xstrdup
      Src: /src/git/wt-status.c:586,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:594,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:595,1
    - Dst: unmerged_mask
      Src: /src/git/wt-status.c:599,1
    - Dst: BUG
      Src: /src/git/wt-status.c:609,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - q
    - options
    - data
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 547
    functionDepth: 5
    functionLinenumber: 547
    functionLinenumberEnd: 613
    functionName: wt_status_collect_updated_cb
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - string_list_insert
    - oidcpy
    - unmerged_mask
    - CALLOC_ARRAY
    - BUG
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void wt_status_collect_updated_cb(struct diff_queue_struct *q,\n\t\t\t\t\t
      struct diff_options *options UNUSED,\n\t\t\t\t\t void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_diff_setup
      Src: /src/git/wt-status.c:621,1
    - Dst: diff_setup_done
      Src: /src/git/wt-status.c:629,1
    - Dst: diff_tree_oid
      Src: /src/git/wt-status.c:631,1
    - Dst: diffcore_std
      Src: /src/git/wt-status.c:632,1
    - Dst: diff_flush
      Src: /src/git/wt-status.c:633,1
    - Dst: wt_status_get_state
      Src: /src/git/wt-status.c:634,1
    - Dst: diff_free
      Src: /src/git/wt-status.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - s
    - old_treeish
    - new_treeish
    argTypes:
    - struct wt_status*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 637
    functionName: wt_status_collect_changes_trees
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_status_get_state
    - diff_free
    - diff_tree_oid
    - diff_flush
    - diffcore_std
    - diff_setup_done
    - repo_diff_setup
    linkageType: ''
    returnType: void
    signature: "void wt_status_collect_changes_trees(struct wt_status *s,\n\t\t\t\t
      \    const struct object_id *old_treeish,\n\t\t\t\t     const struct object_id
      *new_treeish)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/wt-status.c:643,1
    - Dst: setup_revisions
      Src: /src/git/wt-status.c:644,1
    - Dst: handle_ignore_submodules_arg
      Src: /src/git/wt-status.c:652,1
    - Dst: handle_ignore_submodules_arg
      Src: /src/git/wt-status.c:655,1
    - Dst: copy_pathspec
      Src: /src/git/wt-status.c:661,1
    - Dst: run_diff_files
      Src: /src/git/wt-status.c:662,1
    - Dst: release_revisions
      Src: /src/git/wt-status.c:663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 639
    functionDepth: 12
    functionLinenumber: 639
    functionLinenumberEnd: 664
    functionName: wt_status_collect_changes_worktree
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - release_revisions
    - copy_pathspec
    - repo_init_revisions
    - handle_ignore_submodules_arg
    - setup_revisions
    - run_diff_files
    linkageType: ''
    returnType: void
    signature: void wt_status_collect_changes_worktree(struct wt_status *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/wt-status.c:671,1
    - Dst: memset
      Src: /src/git/wt-status.c:672,1
    - Dst: empty_tree_oid_hex
      Src: /src/git/wt-status.c:673,1
    - Dst: setup_revisions
      Src: /src/git/wt-status.c:674,1
    - Dst: handle_ignore_submodules_arg
      Src: /src/git/wt-status.c:679,1
    - Dst: handle_ignore_submodules_arg
      Src: /src/git/wt-status.c:689,1
    - Dst: copy_pathspec
      Src: /src/git/wt-status.c:707,1
    - Dst: run_diff_index
      Src: /src/git/wt-status.c:708,1
    - Dst: release_revisions
      Src: /src/git/wt-status.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 666
    functionDepth: 12
    functionLinenumber: 666
    functionLinenumberEnd: 710
    functionName: wt_status_collect_changes_index
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - empty_tree_oid_hex
    - memset
    - release_revisions
    - copy_pathspec
    - repo_init_revisions
    - run_diff_index
    - handle_ignore_submodules_arg
    - setup_revisions
    linkageType: ''
    returnType: void
    signature: void wt_status_collect_changes_index(struct wt_status *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/wt-status.c:721,1
    - Dst: strbuf_add
      Src: /src/git/wt-status.c:724,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:725,1
    - Dst: string_list_insert
      Src: /src/git/wt-status.c:726,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/wt-status.c:729,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:736,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - oid
    - base
    - path
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 740
    functionName: add_file_to_list
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - strbuf_release
    - string_list_insert
    - oidcpy
    - strbuf_addstr
    - CALLOC_ARRAY
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int add_file_to_list(const struct object_id *oid,\n\t\t\t    struct
      strbuf *base, const char *path,\n\t\t\t    unsigned int mode, void *context)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ce_path_match
      Src: /src/git/wt-status.c:753,1
    - Dst: ce_intent_to_add
      Src: /src/git/wt-status.c:755,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/wt-status.c:757,1
    - Dst: lookup_tree
      Src: /src/git/wt-status.c:765,1
    - Dst: strbuf_reset
      Src: /src/git/wt-status.c:771,1
    - Dst: strbuf_add
      Src: /src/git/wt-status.c:772,1
    - Dst: read_tree_at
      Src: /src/git/wt-status.c:773,1
    - Dst: string_list_insert
      Src: /src/git/wt-status.c:779,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/wt-status.c:782,1
    - Dst: ce_stage
      Src: /src/git/wt-status.c:785,1
    - Dst: ce_stage
      Src: /src/git/wt-status.c:787,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:798,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:803,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 804
    functionName: wt_status_collect_changes_initial
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - string_list_insert
    - oidcpy
    - ce_intent_to_add
    - strbuf_reset
    - S_ISSPARSEDIR
    - ce_path_match
    - CALLOC_ARRAY
    - lookup_tree
    - read_tree_at
    - ce_stage
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void wt_status_collect_changes_initial(struct wt_status *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/wt-status.c:810,1
    - Dst: setup_standard_excludes
      Src: /src/git/wt-status.c:828,1
    - Dst: fill_directory
      Src: /src/git/wt-status.c:830,1
    - Dst: index_name_is_other
      Src: /src/git/wt-status.c:834,1
    - Dst: string_list_insert
      Src: /src/git/wt-status.c:835,1
    - Dst: index_name_is_other
      Src: /src/git/wt-status.c:840,1
    - Dst: string_list_insert
      Src: /src/git/wt-status.c:841,1
    - Dst: dir_clear
      Src: /src/git/wt-status.c:844,1
    - Dst: advice_enabled
      Src: /src/git/wt-status.c:846,1
    - Dst: getnanotime
      Src: /src/git/wt-status.c:847,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 806
    functionDepth: 5
    functionLinenumber: 806
    functionLinenumberEnd: 848
    functionName: wt_status_collect_untracked
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - index_name_is_other
    - string_list_insert
    - setup_standard_excludes
    - dir_clear
    - fill_directory
    - getnanotime
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: void wt_status_collect_untracked(struct wt_status *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 861
    functionName: has_unmerged
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_unmerged(struct wt_status *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/wt-status.c:865,1
    - Dst: wt_status_collect_changes_worktree
      Src: /src/git/wt-status.c:866,1
    - Dst: trace2_region_leave
      Src: /src/git/wt-status.c:867,1
    - Dst: trace2_region_enter
      Src: /src/git/wt-status.c:870,1
    - Dst: wt_status_collect_changes_initial
      Src: /src/git/wt-status.c:871,1
    - Dst: trace2_region_leave
      Src: /src/git/wt-status.c:872,1
    - Dst: trace2_region_enter
      Src: /src/git/wt-status.c:874,1
    - Dst: wt_status_collect_changes_index
      Src: /src/git/wt-status.c:875,1
    - Dst: trace2_region_leave
      Src: /src/git/wt-status.c:876,1
    - Dst: trace2_region_enter
      Src: /src/git/wt-status.c:879,1
    - Dst: wt_status_collect_untracked
      Src: /src/git/wt-status.c:880,1
    - Dst: trace2_region_leave
      Src: /src/git/wt-status.c:881,1
    - Dst: wt_status_get_state
      Src: /src/git/wt-status.c:883,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:883,1
    - Dst: has_unmerged
      Src: /src/git/wt-status.c:884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 863
    functionDepth: 13
    functionLinenumber: 863
    functionLinenumberEnd: 886
    functionName: wt_status_collect
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_status_collect_changes_initial
    - wt_status_get_state
    - trace2_region_leave
    - trace2_region_enter
    - wt_status_collect_changes_worktree
    - wt_status_collect_untracked
    - wt_status_collect_changes_index
    - strcmp
    - has_unmerged
    linkageType: ''
    returnType: void
    signature: void wt_status_collect(struct wt_status *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wt_status_state_free_buffers
      Src: /src/git/wt-status.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 891
    functionName: wt_status_collect_free_buffers
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_status_state_free_buffers
    linkageType: ''
    returnType: void
    signature: void wt_status_collect_free_buffers(struct wt_status *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/wt-status.c:895,1
    - Dst: FREE_AND_NULL
      Src: /src/git/wt-status.c:896,1
    - Dst: FREE_AND_NULL
      Src: /src/git/wt-status.c:897,1
    - Dst: FREE_AND_NULL
      Src: /src/git/wt-status.c:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct wt_status_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 899
    functionName: wt_status_state_free_buffers
    functionSourceFile: /src/git/wt-status.c
    functionUses: 1
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void wt_status_state_free_buffers(struct wt_status_state *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wt_longstatus_print_unmerged_header
      Src: /src/git/wt-status.c:914,1
    - Dst: wt_longstatus_print_unmerged_data
      Src: /src/git/wt-status.c:917,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 901
    functionDepth: 6
    functionLinenumber: 901
    functionLinenumberEnd: 922
    functionName: wt_longstatus_print_unmerged
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_longstatus_print_trailer
    - wt_longstatus_print_unmerged_data
    - wt_longstatus_print_unmerged_header
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_unmerged(struct wt_status *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wt_longstatus_print_cached_header
      Src: /src/git/wt-status.c:938,1
    - Dst: wt_longstatus_print_change_data
      Src: /src/git/wt-status.c:941,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:944,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 924
    functionDepth: 6
    functionLinenumber: 924
    functionLinenumberEnd: 945
    functionName: wt_longstatus_print_updated
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_longstatus_print_trailer
    - wt_longstatus_print_cached_header
    - wt_longstatus_print_change_data
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_updated(struct wt_status *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - s
    - dirty_submodules
    argTypes:
    - struct wt_status*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 974
    functionName: wt_status_check_worktree_changes
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int wt_status_check_worktree_changes(struct wt_status *s,\n\t\t\t\t\t
      \    int *dirty_submodules)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wt_status_check_worktree_changes
      Src: /src/git/wt-status.c:979,1
    - Dst: wt_longstatus_print_dirty_header
      Src: /src/git/wt-status.c:984,1
    - Dst: wt_longstatus_print_change_data
      Src: /src/git/wt-status.c:994,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:996,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 976
    functionDepth: 6
    functionLinenumber: 976
    functionLinenumberEnd: 997
    functionName: wt_longstatus_print_changed
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_longstatus_print_dirty_header
    - wt_longstatus_print_trailer
    - wt_longstatus_print_change_data
    - wt_status_check_worktree_changes
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_changed(struct wt_status *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - refname
    - UNUSED
    - UNUSED
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1009
    functionName: stash_count_refs
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int stash_count_refs(const char *refname UNUSED,\n\t\t\t    struct
      object_id *ooid UNUSED,\n\t\t\t    struct object_id *noid UNUSED,\n\t\t\t    const
      char *email UNUSED,\n\t\t\t    timestamp_t timestamp UNUSED, int tz UNUSED,\n\t\t\t
      \   const char *message UNUSED, void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/wt-status.c:1014,1
    - Dst: get_main_ref_store
      Src: /src/git/wt-status.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1011
    functionDepth: 3
    functionLinenumber: 1011
    functionLinenumberEnd: 1017
    functionName: count_stash_entries
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - refs_for_each_reflog_ent
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int count_stash_entries(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count_stash_entries
      Src: /src/git/wt-status.c:1021,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1024,1
    - Dst: Q_
      Src: /src/git/wt-status.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1019
    functionDepth: 5
    functionLinenumber: 1019
    functionLinenumberEnd: 1028
    functionName: wt_longstatus_print_stash_summary
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - count_stash_entries
    - status_printf_ln
    - Q_
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_stash_summary(struct wt_status *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/wt-status.c:1037,1
    - Dst: strvec_push
      Src: /src/git/wt-status.c:1039,1
    - Dst: strvec_push
      Src: /src/git/wt-status.c:1040,1
    - Dst: strvec_push
      Src: /src/git/wt-status.c:1041,1
    - Dst: strvec_push
      Src: /src/git/wt-status.c:1042,1
    - Dst: strvec_push
      Src: /src/git/wt-status.c:1043,1
    - Dst: strvec_pushf
      Src: /src/git/wt-status.c:1044,1
    - Dst: strvec_push
      Src: /src/git/wt-status.c:1046,1
    - Dst: capture_command
      Src: /src/git/wt-status.c:1051,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:1056,1
    - Dst: _
      Src: /src/git/wt-status.c:1056,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:1058,1
    - Dst: _
      Src: /src/git/wt-status.c:1058,1
    - Dst: strbuf_addstr
      Src: /src/git/wt-status.c:1059,1
    - Dst: strbuf_addbuf
      Src: /src/git/wt-status.c:1061,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1062,1
    - Dst: strbuf_detach
      Src: /src/git/wt-status.c:1066,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/wt-status.c:1067,1
    - Dst: free
      Src: /src/git/wt-status.c:1068,1
    - Dst: fputs
      Src: /src/git/wt-status.c:1071,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1072,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - s
    - uncommitted
    argTypes:
    - struct wt_status*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1030
    functionDepth: 5
    functionLinenumber: 1030
    functionLinenumberEnd: 1073
    functionName: wt_longstatus_print_submodule_summary
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - strbuf_add_commented_lines
    - fputs
    - capture_command
    - strbuf_addbuf
    - strbuf_detach
    - strbuf_addstr
    - _
    - free
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_submodule_summary(struct wt_status *s, int
      uncommitted)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wt_longstatus_print_other_header
      Src: /src/git/wt-status.c:1088,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:1094,1
    - Dst: column_active
      Src: /src/git/wt-status.c:1095,1
    - Dst: string_list_append
      Src: /src/git/wt-status.c:1096,1
    - Dst: status_printf
      Src: /src/git/wt-status.c:1099,1
    - Dst: color
      Src: /src/git/wt-status.c:1099,1
    - Dst: status_printf_more
      Src: /src/git/wt-status.c:1100,1
    - Dst: color
      Src: /src/git/wt-status.c:1100,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1104,1
    - Dst: column_active
      Src: /src/git/wt-status.c:1105,1
    - Dst: strbuf_addf
      Src: /src/git/wt-status.c:1108,1
    - Dst: color
      Src: /src/git/wt-status.c:1109,1
    - Dst: color
      Src: /src/git/wt-status.c:1111,1
    - Dst: memset
      Src: /src/git/wt-status.c:1112,1
    - Dst: want_color
      Src: /src/git/wt-status.c:1115,1
    - Dst: print_columns
      Src: /src/git/wt-status.c:1117,1
    - Dst: string_list_clear
      Src: /src/git/wt-status.c:1118,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1119,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - s
    - l
    - what
    - how
    argTypes:
    - struct wt_status*
    - struct string_list*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1075
    functionDepth: 6
    functionLinenumber: 1075
    functionLinenumberEnd: 1122
    functionName: wt_longstatus_print_other
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_release
    - memset
    - wt_longstatus_print_other_header
    - strbuf_addf
    - column_active
    - quote_path
    - string_list_append
    - color
    - status_printf_more
    - status_printf_ln
    - print_columns
    - want_color
    - status_printf
    linkageType: ''
    returnType: void
    signature: "void wt_longstatus_print_other(struct wt_status *s,\n\t\t\t\t      struct
      string_list *l,\n\t\t\t\t      const char *what,\n\t\t\t\t      const char *how)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/wt-status.c:1129,1
    - Dst: starts_with
      Src: /src/git/wt-status.c:1130,1
    - Dst: strstr
      Src: /src/git/wt-status.c:1132,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1124
    functionDepth: 3
    functionLinenumber: 1124
    functionLinenumberEnd: 1139
    functionName: wt_status_locate_end
    functionSourceFile: /src/git/wt-status.c
    functionUses: 1
    functionsReached:
    - strstr
    - strbuf_release
    - strbuf_addf
    - starts_with
    linkageType: ''
    returnType: size_t
    signature: size_t wt_status_locate_end(const char *s, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/wt-status.c:1143,1
    - Dst: strbuf_commented_addf
      Src: /src/git/wt-status.c:1145,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/wt-status.c:1146,1
    - Dst: strlen
      Src: /src/git/wt-status.c:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1141
    functionDepth: 6
    functionLinenumber: 1141
    functionLinenumberEnd: 1147
    functionName: wt_status_append_cut_line
    functionSourceFile: /src/git/wt-status.c
    functionUses: 1
    functionsReached:
    - strbuf_add_commented_lines
    - strbuf_commented_addf
    - strlen
    - _
    linkageType: ''
    returnType: void
    signature: void wt_status_append_cut_line(struct strbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wt_status_append_cut_line
      Src: /src/git/wt-status.c:1156,1
    - Dst: fputs
      Src: /src/git/wt-status.c:1157,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1149
    functionDepth: 7
    functionLinenumber: 1149
    functionLinenumberEnd: 1159
    functionName: wt_status_add_cut_line
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_status_append_cut_line
    - strbuf_release
    - fputs
    linkageType: ''
    returnType: void
    signature: void wt_status_add_cut_line(struct wt_status *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: color
      Src: /src/git/wt-status.c:1166,1
    - Dst: repo_init_revisions
      Src: /src/git/wt-status.c:1168,1
    - Dst: memset
      Src: /src/git/wt-status.c:1172,1
    - Dst: empty_tree_oid_hex
      Src: /src/git/wt-status.c:1173,1
    - Dst: setup_revisions
      Src: /src/git/wt-status.c:1174,1
    - Dst: wt_status_add_cut_line
      Src: /src/git/wt-status.c:1193,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:1198,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1199,1
    - Dst: _
      Src: /src/git/wt-status.c:1199,1
    - Dst: run_diff_index
      Src: /src/git/wt-status.c:1203,1
    - Dst: wt_status_check_worktree_changes
      Src: /src/git/wt-status.c:1205,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1206,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1208,1
    - Dst: _
      Src: /src/git/wt-status.c:1208,1
    - Dst: setup_work_tree
      Src: /src/git/wt-status.c:1209,1
    - Dst: run_diff_files
      Src: /src/git/wt-status.c:1212,1
    - Dst: release_revisions
      Src: /src/git/wt-status.c:1214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1161
    functionDepth: 12
    functionLinenumber: 1161
    functionLinenumberEnd: 1215
    functionName: wt_longstatus_print_verbose
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - memset
    - wt_status_check_worktree_changes
    - setup_work_tree
    - release_revisions
    - status_printf_ln
    - repo_init_revisions
    - wt_status_add_cut_line
    - run_diff_index
    - color
    - empty_tree_oid_hex
    - setup_revisions
    - run_diff_files
    - wt_longstatus_print_trailer
    - _
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_verbose(struct wt_status *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/wt-status.c:1224,1
    - Dst: skip_prefix
      Src: /src/git/wt-status.c:1225,1
    - Dst: branch_get
      Src: /src/git/wt-status.c:1227,1
    - Dst: getnanotime
      Src: /src/git/wt-status.c:1229,1
    - Dst: format_tracking_info
      Src: /src/git/wt-status.c:1231,1
    - Dst: advice_enabled
      Src: /src/git/wt-status.c:1235,1
    - Dst: getnanotime
      Src: /src/git/wt-status.c:1237,1
    - Dst: strbuf_addf
      Src: /src/git/wt-status.c:1239,1
    - Dst: _
      Src: /src/git/wt-status.c:1239,1
    - Dst: strchr
      Src: /src/git/wt-status.c:1246,1
    - Dst: color_fprintf_ln
      Src: /src/git/wt-status.c:1247,1
    - Dst: color
      Src: /src/git/wt-status.c:1247,1
    - Dst: color_fprintf_ln
      Src: /src/git/wt-status.c:1253,1
    - Dst: color
      Src: /src/git/wt-status.c:1253,1
    - Dst: fputs
      Src: /src/git/wt-status.c:1256,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts:
    - condition: (s->branch && !s->is_initial)
      pos:
        line_end: 1223
        line_start: 1223
        source_file: /src/git/wt-status.c
    constantsTouched: []
    func_position:
      end: 1258
      start: 1217
    functionDepth: 3
    functionLinenumber: 1217
    functionLinenumberEnd: 1258
    functionName: wt_longstatus_print_tracking
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fputs
    - assert
    - branch_get
    - strbuf_addf
    - strchr
    - format_tracking_info
    - color
    - _
    - color_fprintf_ln
    - getnanotime
    - skip_prefix
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_tracking(struct wt_status *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/wt-status.c:1262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1265
    functionName: uf_was_slow
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: int
    signature: int uf_was_slow(struct wt_status *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_unmerged
      Src: /src/git/wt-status.c:1270,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1271,1
    - Dst: _
      Src: /src/git/wt-status.c:1271,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1273,1
    - Dst: _
      Src: /src/git/wt-status.c:1274,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1275,1
    - Dst: _
      Src: /src/git/wt-status.c:1276,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1279,1
    - Dst: _
      Src: /src/git/wt-status.c:1280,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1282,1
    - Dst: _
      Src: /src/git/wt-status.c:1283,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:1285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - color
    argTypes:
    - struct wt_status*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1267
    functionDepth: 6
    functionLinenumber: 1267
    functionLinenumberEnd: 1286
    functionName: show_merge_in_progress
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - status_printf_ln
    - has_unmerged
    - wt_longstatus_print_trailer
    - _
    linkageType: ''
    returnType: void
    signature: "void show_merge_in_progress(struct wt_status *s,\n\t\t\t\t   const
      char *color)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1293,1
    - Dst: _
      Src: /src/git/wt-status.c:1294,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1296,1
    - Dst: _
      Src: /src/git/wt-status.c:1297,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1301,1
    - Dst: _
      Src: /src/git/wt-status.c:1302,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1303,1
    - Dst: _
      Src: /src/git/wt-status.c:1304,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1306,1
    - Dst: _
      Src: /src/git/wt-status.c:1307,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1308,1
    - Dst: _
      Src: /src/git/wt-status.c:1309,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:1311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - color
    argTypes:
    - struct wt_status*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1288
    functionDepth: 6
    functionLinenumber: 1288
    functionLinenumberEnd: 1312
    functionName: show_am_in_progress
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - status_printf_ln
    - wt_longstatus_print_trailer
    - _
    linkageType: ''
    returnType: void
    signature: "void show_am_in_progress(struct wt_status *s,\n\t\t\t\tconst char
      *color)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen_or_warn
      Src: /src/git/wt-status.c:1317,1
    - Dst: repo_git_path_append
      Src: /src/git/wt-status.c:1317,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1321,1
    - Dst: strbuf_getline_lf
      Src: /src/git/wt-status.c:1324,1
    - Dst: fclose
      Src: /src/git/wt-status.c:1325,1
    - Dst: strbuf_detach
      Src: /src/git/wt-status.c:1326,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - r
    - filename
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1314
    functionDepth: 5
    functionLinenumber: 1314
    functionLinenumberEnd: 1331
    functionName: read_line_from_git_path
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - fclose
    - repo_git_path_append
    - strbuf_release
    - strbuf_getline_lf
    - fopen_or_warn
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *read_line_from_git_path(struct repository *r, const char *filename)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/wt-status.c:1341,1
    - Dst: refs_read_ref_full
      Src: /src/git/wt-status.c:1344,1
    - Dst: get_main_ref_store
      Src: /src/git/wt-status.c:1344,1
    - Dst: refs_read_ref_full
      Src: /src/git/wt-status.c:1346,1
    - Dst: get_main_ref_store
      Src: /src/git/wt-status.c:1346,1
    - Dst: read_line_from_git_path
      Src: /src/git/wt-status.c:1352,1
    - Dst: read_line_from_git_path
      Src: /src/git/wt-status.c:1353,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:1357,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:1358,1
    - Dst: oid_to_hex
      Src: /src/git/wt-status.c:1358,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:1359,1
    - Dst: oid_to_hex
      Src: /src/git/wt-status.c:1359,1
    - Dst: free
      Src: /src/git/wt-status.c:1362,1
    - Dst: free
      Src: /src/git/wt-status.c:1363,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1333
    functionDepth: 6
    functionLinenumber: 1333
    functionLinenumberEnd: 1366
    functionName: split_commit_in_progress
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - refs_read_ref_full
    - read_line_from_git_path
    - strcmp
    - free
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int split_commit_in_progress(struct wt_status *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/wt-status.c:1382,1
    - Dst: starts_with
      Src: /src/git/wt-status.c:1383,1
    - Dst: starts_with
      Src: /src/git/wt-status.c:1384,1
    - Dst: starts_with
      Src: /src/git/wt-status.c:1385,1
    - Dst: string_list_split
      Src: /src/git/wt-status.c:1388,1
    - Dst: repo_get_oid
      Src: /src/git/wt-status.c:1389,1
    - Dst: strbuf_reset
      Src: /src/git/wt-status.c:1390,1
    - Dst: strbuf_addf
      Src: /src/git/wt-status.c:1391,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/wt-status.c:1392,1
    - Dst: strbuf_addf
      Src: /src/git/wt-status.c:1394,1
    - Dst: string_list_clear
      Src: /src/git/wt-status.c:1396,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - r
    - line
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1377
    functionDepth: 5
    functionLinenumber: 1377
    functionLinenumberEnd: 1397
    functionName: abbrev_oid_in_line
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_reset
    - repo_get_oid
    - strbuf_addf
    - starts_with
    - string_list_split
    - strbuf_add_unique_abbrev
    linkageType: ''
    returnType: void
    signature: void abbrev_oid_in_line(struct repository *r, struct strbuf *line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/wt-status.c:1402,1
    - Dst: repo_git_path_append
      Src: /src/git/wt-status.c:1402,1
    - Dst: die_errno
      Src: /src/git/wt-status.c:1410,1
    - Dst: repo_git_path_replace
      Src: /src/git/wt-status.c:1411,1
    - Dst: strbuf_getline_lf
      Src: /src/git/wt-status.c:1413,1
    - Dst: starts_with
      Src: /src/git/wt-status.c:1414,1
    - Dst: strbuf_trim
      Src: /src/git/wt-status.c:1416,1
    - Dst: abbrev_oid_in_line
      Src: /src/git/wt-status.c:1419,1
    - Dst: string_list_append
      Src: /src/git/wt-status.c:1420,1
    - Dst: fclose
      Src: /src/git/wt-status.c:1422,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1426,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - r
    - fname
    - lines
    argTypes:
    - struct repository*
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1399
    functionDepth: 6
    functionLinenumber: 1399
    functionLinenumberEnd: 1428
    functionName: read_rebase_todolist
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - fclose
    - repo_git_path_append
    - strbuf_release
    - strbuf_getline_lf
    - die_errno
    - fopen
    - starts_with
    - strbuf_trim
    - abbrev_oid_in_line
    - string_list_append
    - repo_git_path_replace
    linkageType: ''
    returnType: int
    signature: int read_rebase_todolist(struct repository *r, const char *fname, struct
      string_list *lines)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: read_rebase_todolist
      Src: /src/git/wt-status.c:1440,1
    - Dst: read_rebase_todolist
      Src: /src/git/wt-status.c:1441,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1443,1
    - Dst: _
      Src: /src/git/wt-status.c:1444,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1446,1
    - Dst: _
      Src: /src/git/wt-status.c:1446,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1448,1
    - Dst: Q_
      Src: /src/git/wt-status.c:1449,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1457,1
    - Dst: repo_git_path
      Src: /src/git/wt-status.c:1459,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1460,1
    - Dst: _
      Src: /src/git/wt-status.c:1461,1
    - Dst: free
      Src: /src/git/wt-status.c:1462,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1467,1
    - Dst: _
      Src: /src/git/wt-status.c:1468,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1470,1
    - Dst: Q_
      Src: /src/git/wt-status.c:1471,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1476,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1478,1
    - Dst: _
      Src: /src/git/wt-status.c:1479,1
    - Dst: string_list_clear
      Src: /src/git/wt-status.c:1481,1
    - Dst: string_list_clear
      Src: /src/git/wt-status.c:1482,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - s
    - color
    argTypes:
    - struct wt_status*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1430
    functionDepth: 7
    functionLinenumber: 1430
    functionLinenumberEnd: 1484
    functionName: show_rebase_information
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - repo_git_path
    - free
    - read_rebase_todolist
    - _
    - Q_
    - status_printf_ln
    linkageType: ''
    returnType: void
    signature: "void show_rebase_information(struct wt_status *s,\n\t\t\t\t    const
      char *color)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1490,1
    - Dst: _
      Src: /src/git/wt-status.c:1491,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1495,1
    - Dst: _
      Src: /src/git/wt-status.c:1496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - color
    argTypes:
    - struct wt_status*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1486
    functionDepth: 5
    functionLinenumber: 1486
    functionLinenumberEnd: 1497
    functionName: print_rebase_state
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - status_printf_ln
    - _
    linkageType: ''
    returnType: void
    signature: "void print_rebase_state(struct wt_status *s,\n\t\t\t       const char
      *color)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: show_rebase_information
      Src: /src/git/wt-status.c:1504,1
    - Dst: has_unmerged
      Src: /src/git/wt-status.c:1505,1
    - Dst: print_rebase_state
      Src: /src/git/wt-status.c:1506,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1508,1
    - Dst: _
      Src: /src/git/wt-status.c:1509,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1510,1
    - Dst: _
      Src: /src/git/wt-status.c:1511,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1512,1
    - Dst: _
      Src: /src/git/wt-status.c:1513,1
    - Dst: stat
      Src: /src/git/wt-status.c:1516,1
    - Dst: git_path_merge_msg
      Src: /src/git/wt-status.c:1516,1
    - Dst: print_rebase_state
      Src: /src/git/wt-status.c:1517,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1519,1
    - Dst: _
      Src: /src/git/wt-status.c:1520,1
    - Dst: split_commit_in_progress
      Src: /src/git/wt-status.c:1521,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1523,1
    - Dst: _
      Src: /src/git/wt-status.c:1524,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1528,1
    - Dst: _
      Src: /src/git/wt-status.c:1529,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1531,1
    - Dst: _
      Src: /src/git/wt-status.c:1532,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1535,1
    - Dst: _
      Src: /src/git/wt-status.c:1536,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1540,1
    - Dst: _
      Src: /src/git/wt-status.c:1541,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1543,1
    - Dst: _
      Src: /src/git/wt-status.c:1544,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1545,1
    - Dst: _
      Src: /src/git/wt-status.c:1546,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:1549,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - s
    - color
    argTypes:
    - struct wt_status*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1499
    functionDepth: 8
    functionLinenumber: 1499
    functionLinenumberEnd: 1550
    functionName: show_rebase_in_progress
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - split_commit_in_progress
    - show_rebase_information
    - git_path_merge_msg
    - stat
    - _
    - print_rebase_state
    - status_printf_ln
    - has_unmerged
    - wt_longstatus_print_trailer
    linkageType: ''
    returnType: void
    signature: "void show_rebase_in_progress(struct wt_status *s,\n\t\t\t\t    const
      char *color)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/wt-status.c:1555,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1556,1
    - Dst: _
      Src: /src/git/wt-status.c:1557,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1559,1
    - Dst: _
      Src: /src/git/wt-status.c:1560,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/wt-status.c:1561,1
    - Dst: has_unmerged
      Src: /src/git/wt-status.c:1565,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1566,1
    - Dst: _
      Src: /src/git/wt-status.c:1567,1
    - Dst: is_null_oid
      Src: /src/git/wt-status.c:1568,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1569,1
    - Dst: _
      Src: /src/git/wt-status.c:1570,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1572,1
    - Dst: _
      Src: /src/git/wt-status.c:1573,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1574,1
    - Dst: _
      Src: /src/git/wt-status.c:1575,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1576,1
    - Dst: _
      Src: /src/git/wt-status.c:1577,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:1579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - color
    argTypes:
    - struct wt_status*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1552
    functionDepth: 6
    functionLinenumber: 1552
    functionLinenumberEnd: 1580
    functionName: show_cherry_pick_in_progress
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - is_null_oid
    - repo_find_unique_abbrev
    - _
    - status_printf_ln
    - has_unmerged
    - wt_longstatus_print_trailer
    linkageType: ''
    returnType: void
    signature: "void show_cherry_pick_in_progress(struct wt_status *s,\n\t\t\t\t\t
      const char *color)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/wt-status.c:1585,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1586,1
    - Dst: _
      Src: /src/git/wt-status.c:1587,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1589,1
    - Dst: _
      Src: /src/git/wt-status.c:1590,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/wt-status.c:1591,1
    - Dst: has_unmerged
      Src: /src/git/wt-status.c:1594,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1595,1
    - Dst: _
      Src: /src/git/wt-status.c:1596,1
    - Dst: is_null_oid
      Src: /src/git/wt-status.c:1597,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1598,1
    - Dst: _
      Src: /src/git/wt-status.c:1599,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1601,1
    - Dst: _
      Src: /src/git/wt-status.c:1602,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1603,1
    - Dst: _
      Src: /src/git/wt-status.c:1604,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1605,1
    - Dst: _
      Src: /src/git/wt-status.c:1606,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:1608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - color
    argTypes:
    - struct wt_status*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1582
    functionDepth: 6
    functionLinenumber: 1582
    functionLinenumberEnd: 1609
    functionName: show_revert_in_progress
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - is_null_oid
    - repo_find_unique_abbrev
    - _
    - status_printf_ln
    - has_unmerged
    - wt_longstatus_print_trailer
    linkageType: ''
    returnType: void
    signature: "void show_revert_in_progress(struct wt_status *s,\n\t\t\t\t    const
      char *color)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1615,1
    - Dst: _
      Src: /src/git/wt-status.c:1616,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1619,1
    - Dst: _
      Src: /src/git/wt-status.c:1620,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1622,1
    - Dst: _
      Src: /src/git/wt-status.c:1623,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:1624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - color
    argTypes:
    - struct wt_status*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1611
    functionDepth: 6
    functionLinenumber: 1611
    functionLinenumberEnd: 1625
    functionName: show_bisect_in_progress
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - status_printf_ln
    - wt_longstatus_print_trailer
    - _
    linkageType: ''
    returnType: void
    signature: "void show_bisect_in_progress(struct wt_status *s,\n\t\t\t\t    const
      char *color)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1634,1
    - Dst: _
      Src: /src/git/wt-status.c:1634,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1636,1
    - Dst: _
      Src: /src/git/wt-status.c:1637,1
    - Dst: wt_longstatus_print_trailer
      Src: /src/git/wt-status.c:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - color
    argTypes:
    - struct wt_status*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1627
    functionDepth: 6
    functionLinenumber: 1627
    functionLinenumberEnd: 1640
    functionName: show_sparse_checkout_in_use
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - status_printf_ln
    - wt_longstatus_print_trailer
    - _
    linkageType: ''
    returnType: void
    signature: "void show_sparse_checkout_in_use(struct wt_status *s,\n\t\t\t\t\tconst
      char *color)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/wt-status.c:1651,1
    - Dst: worktree_git_path
      Src: /src/git/wt-status.c:1651,1
    - Dst: strbuf_setlen
      Src: /src/git/wt-status.c:1655,1
    - Dst: skip_prefix
      Src: /src/git/wt-status.c:1658,1
    - Dst: strbuf_remove
      Src: /src/git/wt-status.c:1659,1
    - Dst: starts_with
      Src: /src/git/wt-status.c:1660,1
    - Dst: get_oid_hex
      Src: /src/git/wt-status.c:1662,1
    - Dst: strbuf_reset
      Src: /src/git/wt-status.c:1663,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/wt-status.c:1664,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:1665,1
    - Dst: strbuf_detach
      Src: /src/git/wt-status.c:1669,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1672,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - wt
    - path
    argTypes:
    - struct worktree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1645
    functionDepth: 5
    functionLinenumber: 1645
    functionLinenumberEnd: 1674
    functionName: get_branch
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_remove
    - get_oid_hex
    - strbuf_reset
    - strbuf_read_file
    - strbuf_setlen
    - starts_with
    - worktree_git_path
    - strbuf_detach
    - strcmp
    - skip_prefix
    - strbuf_add_unique_abbrev
    linkageType: ''
    returnType: char
    signature: char *get_branch(const struct worktree *wt, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/wt-status.c:1691,1
    - Dst: strstr
      Src: /src/git/wt-status.c:1693,1
    - Dst: strlen
      Src: /src/git/wt-status.c:1696,1
    - Dst: strbuf_reset
      Src: /src/git/wt-status.c:1697,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:1698,1
    - Dst: strchrnul
      Src: /src/git/wt-status.c:1699,1
    - Dst: strbuf_add
      Src: /src/git/wt-status.c:1700,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:1701,1
    - Dst: strbuf_reset
      Src: /src/git/wt-status.c:1703,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/wt-status.c:1704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 8
    argNames:
    - refname
    - UNUSED
    - noid
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1681
    functionDepth: 3
    functionLinenumber: 1681
    functionLinenumberEnd: 1707
    functionName: grab_1st_switch
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strstr
    - oidcpy
    - strbuf_reset
    - strchrnul
    - strlen
    - strcmp
    - skip_prefix
    - strbuf_add_unique_abbrev
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int grab_1st_switch(const char *refname UNUSED,\n\t\t\t   struct object_id
      *ooid UNUSED,\n\t\t\t   struct object_id *noid,\n\t\t\t   const char *email
      UNUSED,\n\t\t\t   timestamp_t timestamp UNUSED, int tz UNUSED,\n\t\t\t   const
      char *message, void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/wt-status.c:1717,1
    - Dst: refs_for_each_reflog_ent_reverse
      Src: /src/git/wt-status.c:1718,1
    - Dst: get_main_ref_store
      Src: /src/git/wt-status.c:1718,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1719,1
    - Dst: repo_dwim_ref
      Src: /src/git/wt-status.c:1723,1
    - Dst: oideq
      Src: /src/git/wt-status.c:1726,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/wt-status.c:1728,1
    - Dst: oideq
      Src: /src/git/wt-status.c:1729,1
    - Dst: skip_prefix
      Src: /src/git/wt-status.c:1731,1
    - Dst: skip_prefix
      Src: /src/git/wt-status.c:1732,1
    - Dst: xstrdup
      Src: /src/git/wt-status.c:1733,1
    - Dst: xstrdup
      Src: /src/git/wt-status.c:1736,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/wt-status.c:1736,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:1737,1
    - Dst: repo_get_oid
      Src: /src/git/wt-status.c:1738,1
    - Dst: oideq
      Src: /src/git/wt-status.c:1739,1
    - Dst: free
      Src: /src/git/wt-status.c:1741,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:1742,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - struct repository*
    - struct wt_status_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1709
    functionDepth: 4
    functionLinenumber: 1709
    functionLinenumberEnd: 1743
    functionName: wt_status_get_detached_from
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - repo_dwim_ref
    - lookup_commit_reference_gently
    - oidcpy
    - repo_get_oid
    - refs_for_each_reflog_ent_reverse
    - repo_find_unique_abbrev
    - free
    - xstrdup
    - skip_prefix
    - strbuf_init
    - oideq
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void wt_status_get_detached_from(struct repository *r,\n\t\t\t\t\tstruct
      wt_status_state *state)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/wt-status.c:1751,1
    - Dst: stat
      Src: /src/git/wt-status.c:1753,1
    - Dst: worktree_git_path
      Src: /src/git/wt-status.c:1753,1
    - Dst: stat
      Src: /src/git/wt-status.c:1754,1
    - Dst: worktree_git_path
      Src: /src/git/wt-status.c:1754,1
    - Dst: stat
      Src: /src/git/wt-status.c:1756,1
    - Dst: worktree_git_path
      Src: /src/git/wt-status.c:1756,1
    - Dst: get_branch
      Src: /src/git/wt-status.c:1760,1
    - Dst: get_branch
      Src: /src/git/wt-status.c:1761,1
    - Dst: stat
      Src: /src/git/wt-status.c:1763,1
    - Dst: worktree_git_path
      Src: /src/git/wt-status.c:1763,1
    - Dst: stat
      Src: /src/git/wt-status.c:1764,1
    - Dst: worktree_git_path
      Src: /src/git/wt-status.c:1764,1
    - Dst: get_branch
      Src: /src/git/wt-status.c:1768,1
    - Dst: get_branch
      Src: /src/git/wt-status.c:1769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - wt
    - state
    argTypes:
    - struct worktree*
    - struct wt_status_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1745
    functionDepth: 6
    functionLinenumber: 1745
    functionLinenumberEnd: 1773
    functionName: wt_status_check_rebase
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - worktree_git_path
    - stat
    - BUG
    - get_branch
    linkageType: ''
    returnType: int
    signature: "int wt_status_check_rebase(const struct worktree *wt,\n\t\t\t   struct
      wt_status_state *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/wt-status.c:1781,1
    - Dst: stat
      Src: /src/git/wt-status.c:1783,1
    - Dst: worktree_git_path
      Src: /src/git/wt-status.c:1783,1
    - Dst: get_branch
      Src: /src/git/wt-status.c:1785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - wt
    - state
    argTypes:
    - struct worktree*
    - struct wt_status_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1775
    functionDepth: 6
    functionLinenumber: 1775
    functionLinenumberEnd: 1789
    functionName: wt_status_check_bisect
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - worktree_git_path
    - stat
    - BUG
    - get_branch
    linkageType: ''
    returnType: int
    signature: "int wt_status_check_bisect(const struct worktree *wt,\n\t\t\t   struct
      wt_status_state *state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/wt-status.c:1796,1
    - Dst: ce_skip_worktree
      Src: /src/git/wt-status.c:1815,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - struct repository*
    - struct wt_status_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1791
    functionDepth: 2
    functionLinenumber: 1791
    functionLinenumberEnd: 1821
    functionName: wt_status_check_sparse_checkout
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - repo_config_values
    - ce_skip_worktree
    linkageType: ''
    returnType: void
    signature: "void wt_status_check_sparse_checkout(struct repository *r,\n\t\t\t\t\t
      \   struct wt_status_state *state)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_current_worktree
      Src: /src/git/wt-status.c:1830,1
    - Dst: stat
      Src: /src/git/wt-status.c:1832,1
    - Dst: git_path_merge_head
      Src: /src/git/wt-status.c:1832,1
    - Dst: wt_status_check_rebase
      Src: /src/git/wt-status.c:1833,1
    - Dst: wt_status_check_rebase
      Src: /src/git/wt-status.c:1835,1
    - Dst: refs_ref_exists
      Src: /src/git/wt-status.c:1837,1
    - Dst: get_main_ref_store
      Src: /src/git/wt-status.c:1837,1
    - Dst: repo_get_oid
      Src: /src/git/wt-status.c:1838,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:1840,1
    - Dst: wt_status_check_bisect
      Src: /src/git/wt-status.c:1842,1
    - Dst: refs_ref_exists
      Src: /src/git/wt-status.c:1843,1
    - Dst: get_main_ref_store
      Src: /src/git/wt-status.c:1843,1
    - Dst: repo_get_oid
      Src: /src/git/wt-status.c:1844,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:1846,1
    - Dst: sequencer_get_last_command
      Src: /src/git/wt-status.c:1848,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:1851,1
    - Dst: null_oid
      Src: /src/git/wt-status.c:1851,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:1854,1
    - Dst: null_oid
      Src: /src/git/wt-status.c:1854,1
    - Dst: wt_status_get_detached_from
      Src: /src/git/wt-status.c:1858,1
    - Dst: wt_status_check_sparse_checkout
      Src: /src/git/wt-status.c:1859,1
    - Dst: free_worktree
      Src: /src/git/wt-status.c:1861,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - r
    - state
    - get_detached_from
    argTypes:
    - struct repository*
    - struct wt_status_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1823
    functionDepth: 7
    functionLinenumber: 1823
    functionLinenumberEnd: 1862
    functionName: wt_status_get_state
    functionSourceFile: /src/git/wt-status.c
    functionUses: 2
    functionsReached:
    - get_current_worktree
    - oidcpy
    - wt_status_check_rebase
    - stat
    - repo_get_oid
    - git_path_merge_head
    - wt_status_check_sparse_checkout
    - sequencer_get_last_command
    - wt_status_get_detached_from
    - free_worktree
    - refs_ref_exists
    - null_oid
    - wt_status_check_bisect
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void wt_status_get_state(struct repository *r,\n\t\t\t struct wt_status_state
      *state,\n\t\t\t int get_detached_from)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: color
      Src: /src/git/wt-status.c:1866,1
    - Dst: show_rebase_information
      Src: /src/git/wt-status.c:1871,1
    - Dst: fputs
      Src: /src/git/wt-status.c:1872,1
    - Dst: show_merge_in_progress
      Src: /src/git/wt-status.c:1874,1
    - Dst: show_am_in_progress
      Src: /src/git/wt-status.c:1876,1
    - Dst: show_rebase_in_progress
      Src: /src/git/wt-status.c:1878,1
    - Dst: show_cherry_pick_in_progress
      Src: /src/git/wt-status.c:1880,1
    - Dst: show_revert_in_progress
      Src: /src/git/wt-status.c:1882,1
    - Dst: show_bisect_in_progress
      Src: /src/git/wt-status.c:1884,1
    - Dst: show_sparse_checkout_in_use
      Src: /src/git/wt-status.c:1887,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1864
    functionDepth: 9
    functionLinenumber: 1864
    functionLinenumberEnd: 1888
    functionName: wt_longstatus_print_state
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - show_bisect_in_progress
    - show_am_in_progress
    - fputs
    - show_rebase_information
    - show_revert_in_progress
    - show_cherry_pick_in_progress
    - color
    - show_sparse_checkout_in_use
    - show_rebase_in_progress
    - show_merge_in_progress
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print_state(struct wt_status *s)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: color
      Src: /src/git/wt-status.c:1892,1
    - Dst: color
      Src: /src/git/wt-status.c:1893,1
    - Dst: fsm_settings__get_mode
      Src: /src/git/wt-status.c:1894,1
    - Dst: _
      Src: /src/git/wt-status.c:1897,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:1899,1
    - Dst: color
      Src: /src/git/wt-status.c:1900,1
    - Dst: _
      Src: /src/git/wt-status.c:1904,1
    - Dst: _
      Src: /src/git/wt-status.c:1906,1
    - Dst: _
      Src: /src/git/wt-status.c:1911,1
    - Dst: _
      Src: /src/git/wt-status.c:1913,1
    - Dst: _
      Src: /src/git/wt-status.c:1916,1
    - Dst: skip_prefix
      Src: /src/git/wt-status.c:1919,1
    - Dst: status_printf
      Src: /src/git/wt-status.c:1920,1
    - Dst: color
      Src: /src/git/wt-status.c:1920,1
    - Dst: status_printf_more
      Src: /src/git/wt-status.c:1921,1
    - Dst: status_printf_more
      Src: /src/git/wt-status.c:1922,1
    - Dst: wt_longstatus_print_tracking
      Src: /src/git/wt-status.c:1924,1
    - Dst: wt_longstatus_print_state
      Src: /src/git/wt-status.c:1927,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1930,1
    - Dst: color
      Src: /src/git/wt-status.c:1930,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1931,1
    - Dst: color
      Src: /src/git/wt-status.c:1931,1
    - Dst: _
      Src: /src/git/wt-status.c:1933,1
    - Dst: _
      Src: /src/git/wt-status.c:1934,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1935,1
    - Dst: color
      Src: /src/git/wt-status.c:1935,1
    - Dst: wt_longstatus_print_updated
      Src: /src/git/wt-status.c:1938,1
    - Dst: wt_longstatus_print_unmerged
      Src: /src/git/wt-status.c:1939,1
    - Dst: wt_longstatus_print_changed
      Src: /src/git/wt-status.c:1940,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:1943,1
    - Dst: wt_longstatus_print_submodule_summary
      Src: /src/git/wt-status.c:1944,1
    - Dst: wt_longstatus_print_submodule_summary
      Src: /src/git/wt-status.c:1945,1
    - Dst: wt_longstatus_print_other
      Src: /src/git/wt-status.c:1948,1
    - Dst: _
      Src: /src/git/wt-status.c:1948,1
    - Dst: wt_longstatus_print_other
      Src: /src/git/wt-status.c:1950,1
    - Dst: _
      Src: /src/git/wt-status.c:1950,1
    - Dst: advice_enabled
      Src: /src/git/wt-status.c:1951,1
    - Dst: uf_was_slow
      Src: /src/git/wt-status.c:1951,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1952,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1954,1
    - Dst: _
      Src: /src/git/wt-status.c:1955,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1959,1
    - Dst: _
      Src: /src/git/wt-status.c:1960,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1963,1
    - Dst: _
      Src: /src/git/wt-status.c:1964,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1965,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1968,1
    - Dst: _
      Src: /src/git/wt-status.c:1968,1
    - Dst: _
      Src: /src/git/wt-status.c:1970,1
    - Dst: wt_longstatus_print_verbose
      Src: /src/git/wt-status.c:1973,1
    - Dst: status_printf_ln
      Src: /src/git/wt-status.c:1976,1
    - Dst: _
      Src: /src/git/wt-status.c:1976,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:1981,1
    - Dst: _
      Src: /src/git/wt-status.c:1981,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:1985,1
    - Dst: _
      Src: /src/git/wt-status.c:1985,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:1989,1
    - Dst: _
      Src: /src/git/wt-status.c:1989,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:1993,1
    - Dst: _
      Src: /src/git/wt-status.c:1993,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:1997,1
    - Dst: _
      Src: /src/git/wt-status.c:1997,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2001,1
    - Dst: _
      Src: /src/git/wt-status.c:2001,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2004,1
    - Dst: _
      Src: /src/git/wt-status.c:2004,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2007,1
    - Dst: _
      Src: /src/git/wt-status.c:2007,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2009,1
    - Dst: _
      Src: /src/git/wt-status.c:2009,1
    - Dst: wt_longstatus_print_stash_summary
      Src: /src/git/wt-status.c:2013,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 88
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1890
    functionDepth: 13
    functionLinenumber: 1890
    functionLinenumberEnd: 2014
    functionName: wt_longstatus_print
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_longstatus_print_verbose
    - strcmp
    - status_printf_ln
    - wt_longstatus_print_other
    - wt_longstatus_print_submodule_summary
    - wt_longstatus_print_updated
    - wt_longstatus_print_unmerged
    - uf_was_slow
    - wt_longstatus_print_state
    - wt_longstatus_print_tracking
    - advice_enabled
    - color
    - status_printf_more
    - _
    - wt_longstatus_print_changed
    - fsm_settings__get_mode
    - skip_prefix
    - wt_longstatus_print_stash_summary
    - fprintf
    - status_printf
    linkageType: ''
    returnType: void
    signature: void wt_longstatus_print(struct wt_status *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2031,1
    - Dst: color
      Src: /src/git/wt-status.c:2031,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2033,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:2037,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2038,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:2039,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - it
    - s
    argTypes:
    - struct string_list_item*
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2016
    functionDepth: 3
    functionLinenumber: 2016
    functionLinenumberEnd: 2041
    functionName: wt_shortstatus_unmerged
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - color_fprintf
    - quote_path
    - color
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void wt_shortstatus_unmerged(struct string_list_item *it,\n\t\t\t
      \  struct wt_status *s)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2049,1
    - Dst: color
      Src: /src/git/wt-status.c:2049,1
    - Dst: fputc
      Src: /src/git/wt-status.c:2051,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2053,1
    - Dst: color
      Src: /src/git/wt-status.c:2053,1
    - Dst: fputc
      Src: /src/git/wt-status.c:2055,1
    - Dst: fputc
      Src: /src/git/wt-status.c:2056,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2058,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2060,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:2066,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2068,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:2069,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:2071,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2072,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:2073,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - it
    - s
    argTypes:
    - struct string_list_item*
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2043
    functionDepth: 3
    functionLinenumber: 2043
    functionLinenumberEnd: 2075
    functionName: wt_shortstatus_status
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - color_fprintf
    - quote_path
    - color
    - fputc
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void wt_shortstatus_status(struct string_list_item *it,\n\t\t\t struct
      wt_status *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2080,1
    - Dst: color
      Src: /src/git/wt-status.c:2080,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2082,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:2086,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2087,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:2088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - it
    - s
    - sign
    argTypes:
    - struct string_list_item*
    - struct wt_status*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2077
    functionDepth: 3
    functionLinenumber: 2077
    functionLinenumberEnd: 2090
    functionName: wt_shortstatus_other
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - color_fprintf
    - quote_path
    - color
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void wt_shortstatus_other(struct string_list_item *it,\n\t\t\t\t struct
      wt_status *s, const char *sign)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: color
      Src: /src/git/wt-status.c:2095,1
    - Dst: color
      Src: /src/git/wt-status.c:2096,1
    - Dst: color
      Src: /src/git/wt-status.c:2097,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2105,1
    - Dst: color
      Src: /src/git/wt-status.c:2105,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2114,1
    - Dst: LABEL
      Src: /src/git/wt-status.c:2114,1
    - Dst: N_
      Src: /src/git/wt-status.c:2114,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:2116,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2117,1
    - Dst: color
      Src: /src/git/wt-status.c:2117,1
    - Dst: LABEL
      Src: /src/git/wt-status.c:2118,1
    - Dst: N_
      Src: /src/git/wt-status.c:2118,1
    - Dst: skip_prefix
      Src: /src/git/wt-status.c:2122,1
    - Dst: branch_get
      Src: /src/git/wt-status.c:2124,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2126,1
    - Dst: stat_tracking_info
      Src: /src/git/wt-status.c:2128,1
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/wt-status.c:2137,1
    - Dst: get_main_ref_store
      Src: /src/git/wt-status.c:2137,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2139,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2140,1
    - Dst: free
      Src: /src/git/wt-status.c:2141,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2146,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2148,1
    - Dst: LABEL
      Src: /src/git/wt-status.c:2148,1
    - Dst: N_
      Src: /src/git/wt-status.c:2148,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2150,1
    - Dst: LABEL
      Src: /src/git/wt-status.c:2150,1
    - Dst: N_
      Src: /src/git/wt-status.c:2150,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2152,1
    - Dst: LABEL
      Src: /src/git/wt-status.c:2152,1
    - Dst: N_
      Src: /src/git/wt-status.c:2152,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2153,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2155,1
    - Dst: LABEL
      Src: /src/git/wt-status.c:2155,1
    - Dst: N_
      Src: /src/git/wt-status.c:2155,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2156,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2158,1
    - Dst: LABEL
      Src: /src/git/wt-status.c:2158,1
    - Dst: N_
      Src: /src/git/wt-status.c:2158,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2159,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2160,1
    - Dst: LABEL
      Src: /src/git/wt-status.c:2160,1
    - Dst: N_
      Src: /src/git/wt-status.c:2160,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2161,1
    - Dst: color_fprintf
      Src: /src/git/wt-status.c:2164,1
    - Dst: fputc
      Src: /src/git/wt-status.c:2166,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2092
    functionDepth: 3
    functionLinenumber: 2092
    functionLinenumberEnd: 2167
    functionName: wt_shortstatus_print_tracking
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - color_fprintf
    - branch_get
    - stat_tracking_info
    - refs_shorten_unambiguous_ref
    - free
    - color
    - strcmp
    - N_
    - fputc
    - skip_prefix
    - LABEL
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void wt_shortstatus_print_tracking(struct wt_status *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2111
    functionDepth: 0
    functionLinenumber: 2111
    functionLinenumberEnd: 2112
    functionName: LABEL
    functionSourceFile: /src/git/wt-status.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LABEL(string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wt_shortstatus_print_tracking
      Src: /src/git/wt-status.c:2174,1
    - Dst: for_each_string_list_item
      Src: /src/git/wt-status.c:2176,1
    - Dst: wt_shortstatus_unmerged
      Src: /src/git/wt-status.c:2180,1
    - Dst: wt_shortstatus_status
      Src: /src/git/wt-status.c:2182,1
    - Dst: for_each_string_list_item
      Src: /src/git/wt-status.c:2184,1
    - Dst: wt_shortstatus_other
      Src: /src/git/wt-status.c:2185,1
    - Dst: for_each_string_list_item
      Src: /src/git/wt-status.c:2187,1
    - Dst: wt_shortstatus_other
      Src: /src/git/wt-status.c:2188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2169
    functionDepth: 4
    functionLinenumber: 2169
    functionLinenumberEnd: 2189
    functionName: wt_shortstatus_print
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_shortstatus_status
    - for_each_string_list_item
    - wt_shortstatus_unmerged
    - wt_shortstatus_print_tracking
    - wt_shortstatus_other
    linkageType: ''
    returnType: void
    signature: void wt_shortstatus_print(struct wt_status *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wt_shortstatus_print
      Src: /src/git/wt-status.c:2197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2191
    functionDepth: 5
    functionLinenumber: 2191
    functionLinenumberEnd: 2198
    functionName: wt_porcelain_print
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_shortstatus_print
    linkageType: ''
    returnType: void
    signature: void wt_porcelain_print(struct wt_status *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/wt-status.c:2241,1
    - Dst: oid_to_hex
      Src: /src/git/wt-status.c:2242,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2246,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:2248,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2249,1
    - Dst: skip_prefix
      Src: /src/git/wt-status.c:2260,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2262,1
    - Dst: branch_get
      Src: /src/git/wt-status.c:2266,1
    - Dst: stat_tracking_info
      Src: /src/git/wt-status.c:2268,1
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/wt-status.c:2271,1
    - Dst: get_main_ref_store
      Src: /src/git/wt-status.c:2271,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2273,1
    - Dst: free
      Src: /src/git/wt-status.c:2274,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2279,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2282,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2286,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2233
    functionDepth: 3
    functionLinenumber: 2233
    functionLinenumberEnd: 2290
    functionName: wt_porcelain_v2_print_tracking
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - branch_get
    - stat_tracking_info
    - refs_shorten_unambiguous_ref
    - strcmp
    - free
    - skip_prefix
    - fprintf
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void wt_porcelain_v2_print_tracking(struct wt_status *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count_stash_entries
      Src: /src/git/wt-status.c:2297,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2295
    functionDepth: 4
    functionLinenumber: 2295
    functionLinenumberEnd: 2302
    functionName: wt_porcelain_v2_print_stash
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - count_stash_entries
    - fprintf
    linkageType: ''
    returnType: void
    signature: void wt_porcelain_v2_print_stash(struct wt_status *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/wt-status.c:2312,1
    - Dst: S_ISGITLINK
      Src: /src/git/wt-status.c:2313,1
    - Dst: S_ISGITLINK
      Src: /src/git/wt-status.c:2314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - d
    - sub
    argTypes:
    - struct wt_status_change_data*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2308
    functionDepth: 1
    functionLinenumber: 2308
    functionLinenumberEnd: 2326
    functionName: wt_porcelain_v2_submodule_state
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - S_ISGITLINK
    linkageType: ''
    returnType: void
    signature: "void wt_porcelain_v2_submodule_state(\n\tstruct wt_status_change_data
      *d,\n\tchar sub[5])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/wt-status.c:2349,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:2351,1
    - Dst: assert
      Src: /src/git/wt-status.c:2370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct string_list_item*
    assertStmts:
    - condition: (d->mode_head == 0)
      pos:
        line_end: 2348
        line_start: 2348
        source_file: /src/git/wt-status.c
    - condition: (d->mode_worktree == 0)
      pos:
        line_end: 2369
        line_start: 2369
        source_file: /src/git/wt-status.c
    constantsTouched: []
    func_position:
      end: 2373
      start: 2331
    functionDepth: 1
    functionLinenumber: 2331
    functionLinenumberEnd: 2373
    functionName: wt_porcelain_v2_fix_up_changed
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - assert
    - oidcpy
    linkageType: ''
    returnType: void
    signature: void wt_porcelain_v2_fix_up_changed(struct string_list_item *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wt_porcelain_v2_fix_up_changed
      Src: /src/git/wt-status.c:2391,1
    - Dst: wt_porcelain_v2_submodule_state
      Src: /src/git/wt-status.c:2392,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:2416,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:2418,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2422,1
    - Dst: oid_to_hex
      Src: /src/git/wt-status.c:2425,1
    - Dst: oid_to_hex
      Src: /src/git/wt-status.c:2425,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2429,1
    - Dst: oid_to_hex
      Src: /src/git/wt-status.c:2432,1
    - Dst: oid_to_hex
      Src: /src/git/wt-status.c:2432,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:2435,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:2436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - it
    - s
    argTypes:
    - struct string_list_item*
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2378
    functionDepth: 3
    functionLinenumber: 2378
    functionLinenumberEnd: 2437
    functionName: wt_porcelain_v2_print_changed_entry
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - wt_porcelain_v2_submodule_state
    - quote_path
    - wt_porcelain_v2_fix_up_changed
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void wt_porcelain_v2_print_changed_entry(\n\tstruct string_list_item
      *it,\n\tstruct wt_status *s)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: wt_porcelain_v2_submodule_state
      Src: /src/git/wt-status.c:2461,1
    - Dst: BUG
      Src: /src/git/wt-status.c:2472,1
    - Dst: memset
      Src: /src/git/wt-status.c:2484,1
    - Dst: index_name_pos
      Src: /src/git/wt-status.c:2486,1
    - Dst: strlen
      Src: /src/git/wt-status.c:2486,1
    - Dst: assert
      Src: /src/git/wt-status.c:2487,1
    - Dst: ce_stage
      Src: /src/git/wt-status.c:2491,1
    - Dst: strcmp
      Src: /src/git/wt-status.c:2492,1
    - Dst: oidcpy
      Src: /src/git/wt-status.c:2495,1
    - Dst: BUG
      Src: /src/git/wt-status.c:2499,1
    - Dst: quote_path
      Src: /src/git/wt-status.c:2504,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2506,1
    - Dst: oid_to_hex
      Src: /src/git/wt-status.c:2512,1
    - Dst: oid_to_hex
      Src: /src/git/wt-status.c:2513,1
    - Dst: oid_to_hex
      Src: /src/git/wt-status.c:2514,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:2518,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - it
    - s
    argTypes:
    - struct string_list_item*
    - struct wt_status*
    assertStmts:
    - condition: (pos < 0)
      pos:
        line_end: 2486
        line_start: 2486
        source_file: /src/git/wt-status.c
    constantsTouched: []
    func_position:
      end: 2519
      start: 2442
    functionDepth: 4
    functionLinenumber: 2442
    functionLinenumberEnd: 2519
    functionName: wt_porcelain_v2_print_unmerged_entry
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - memset
    - index_name_pos
    - oid_to_hex
    - assert
    - strbuf_release
    - oidcpy
    - wt_porcelain_v2_submodule_state
    - strlen
    - quote_path
    - fprintf
    - strcmp
    - BUG
    - ce_stage
    linkageType: ''
    returnType: void
    signature: "void wt_porcelain_v2_print_unmerged_entry(\n\tstruct string_list_item
      *it,\n\tstruct wt_status *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quote_path
      Src: /src/git/wt-status.c:2537,1
    - Dst: fprintf
      Src: /src/git/wt-status.c:2541,1
    - Dst: strbuf_release
      Src: /src/git/wt-status.c:2543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - it
    - s
    - prefix
    argTypes:
    - struct string_list_item*
    - struct wt_status*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2524
    functionDepth: 3
    functionLinenumber: 2524
    functionLinenumberEnd: 2544
    functionName: wt_porcelain_v2_print_other
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - quote_path
    - strbuf_release
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void wt_porcelain_v2_print_other(\n\tstruct string_list_item *it,\n\tstruct
      wt_status *s,\n\tchar prefix)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wt_porcelain_v2_print_tracking
      Src: /src/git/wt-status.c:2563,1
    - Dst: wt_porcelain_v2_print_stash
      Src: /src/git/wt-status.c:2566,1
    - Dst: wt_porcelain_v2_print_changed_entry
      Src: /src/git/wt-status.c:2572,1
    - Dst: wt_porcelain_v2_print_unmerged_entry
      Src: /src/git/wt-status.c:2579,1
    - Dst: wt_porcelain_v2_print_other
      Src: /src/git/wt-status.c:2584,1
    - Dst: wt_porcelain_v2_print_other
      Src: /src/git/wt-status.c:2589,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2591
      start: 2556
    functionDepth: 5
    functionLinenumber: 2556
    functionLinenumberEnd: 2591
    functionName: wt_porcelain_v2_print
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_porcelain_v2_print_other
    - wt_porcelain_v2_print_stash
    - wt_porcelain_v2_print_unmerged_entry
    - wt_porcelain_v2_print_changed_entry
    - wt_porcelain_v2_print_tracking
    linkageType: ''
    returnType: void
    signature: void wt_porcelain_v2_print(struct wt_status *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: trace2_data_intmax
      Src: /src/git/wt-status.c:2595,1
    - Dst: trace2_data_intmax
      Src: /src/git/wt-status.c:2596,1
    - Dst: trace2_data_intmax
      Src: /src/git/wt-status.c:2598,1
    - Dst: trace2_region_enter
      Src: /src/git/wt-status.c:2600,1
    - Dst: wt_shortstatus_print
      Src: /src/git/wt-status.c:2604,1
    - Dst: wt_porcelain_print
      Src: /src/git/wt-status.c:2607,1
    - Dst: wt_porcelain_v2_print
      Src: /src/git/wt-status.c:2610,1
    - Dst: BUG
      Src: /src/git/wt-status.c:2613,1
    - Dst: wt_longstatus_print
      Src: /src/git/wt-status.c:2617,1
    - Dst: trace2_region_leave
      Src: /src/git/wt-status.c:2621,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2593
    functionDepth: 14
    functionLinenumber: 2593
    functionLinenumberEnd: 2622
    functionName: wt_status_print
    functionSourceFile: /src/git/wt-status.c
    functionUses: 0
    functionsReached:
    - wt_porcelain_v2_print
    - wt_longstatus_print
    - trace2_data_intmax
    - trace2_region_leave
    - trace2_region_enter
    - wt_porcelain_print
    - wt_shortstatus_print
    - BUG
    linkageType: ''
    returnType: void
    signature: void wt_status_print(struct wt_status *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/wt-status.c:2632,1
    - Dst: diff_setup_done
      Src: /src/git/wt-status.c:2638,1
    - Dst: run_diff_files
      Src: /src/git/wt-status.c:2639,1
    - Dst: diff_result_code
      Src: /src/git/wt-status.c:2640,1
    - Dst: release_revisions
      Src: /src/git/wt-status.c:2641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - r
    - ignore_submodules
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2627
    functionDepth: 11
    functionLinenumber: 2627
    functionLinenumberEnd: 2643
    functionName: has_unstaged_changes
    functionSourceFile: /src/git/wt-status.c
    functionUses: 2
    functionsReached:
    - release_revisions
    - diff_result_code
    - repo_init_revisions
    - diff_setup_done
    - run_diff_files
    linkageType: ''
    returnType: int
    signature: int has_unstaged_changes(struct repository *r, int ignore_submodules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_index_unborn
      Src: /src/git/wt-status.c:2654,1
    - Dst: repo_init_revisions
      Src: /src/git/wt-status.c:2657,1
    - Dst: add_head_to_pending
      Src: /src/git/wt-status.c:2662,1
    - Dst: lookup_tree
      Src: /src/git/wt-status.c:2668,1
    - Dst: add_pending_object
      Src: /src/git/wt-status.c:2669,1
    - Dst: diff_setup_done
      Src: /src/git/wt-status.c:2672,1
    - Dst: run_diff_index
      Src: /src/git/wt-status.c:2673,1
    - Dst: diff_result_code
      Src: /src/git/wt-status.c:2674,1
    - Dst: release_revisions
      Src: /src/git/wt-status.c:2675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - r
    - ignore_submodules
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2648
    functionDepth: 7
    functionLinenumber: 2648
    functionLinenumberEnd: 2677
    functionName: has_uncommitted_changes
    functionSourceFile: /src/git/wt-status.c
    functionUses: 2
    functionsReached:
    - is_index_unborn
    - release_revisions
    - add_head_to_pending
    - diff_result_code
    - repo_init_revisions
    - add_pending_object
    - run_diff_index
    - diff_setup_done
    - lookup_tree
    linkageType: ''
    returnType: int
    signature: "int has_uncommitted_changes(struct repository *r,\n\t\t\t    int ignore_submodules)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: repo_hold_locked_index
      Src: /src/git/wt-status.c:2692,1
    - Dst: refresh_index
      Src: /src/git/wt-status.c:2693,1
    - Dst: repo_update_index_if_able
      Src: /src/git/wt-status.c:2695,1
    - Dst: rollback_lock_file
      Src: /src/git/wt-status.c:2696,1
    - Dst: has_unstaged_changes
      Src: /src/git/wt-status.c:2698,1
    - Dst: error
      Src: /src/git/wt-status.c:2700,1
    - Dst: _
      Src: /src/git/wt-status.c:2700,1
    - Dst: _
      Src: /src/git/wt-status.c:2700,1
    - Dst: has_uncommitted_changes
      Src: /src/git/wt-status.c:2704,1
    - Dst: error
      Src: /src/git/wt-status.c:2706,1
    - Dst: _
      Src: /src/git/wt-status.c:2706,1
    - Dst: error
      Src: /src/git/wt-status.c:2708,1
    - Dst: _
      Src: /src/git/wt-status.c:2708,1
    - Dst: _
      Src: /src/git/wt-status.c:2709,1
    - Dst: BUG
      Src: /src/git/wt-status.c:2716,1
    - Dst: error
      Src: /src/git/wt-status.c:2718,1
    - Dst: exit
      Src: /src/git/wt-status.c:2721,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - r
    - action
    - hint
    - ignore_submodules
    - gently
    argTypes:
    - struct repository*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2683
    functionDepth: 12
    functionLinenumber: 2683
    functionLinenumberEnd: 2725
    functionName: require_clean_work_tree
    functionSourceFile: /src/git/wt-status.c
    functionUses: 2
    functionsReached:
    - error
    - has_unstaged_changes
    - has_uncommitted_changes
    - exit
    - repo_update_index_if_able
    - repo_hold_locked_index
    - rollback_lock_file
    - refresh_index
    - BUG
    - _
    linkageType: ''
    returnType: int
    signature: "int require_clean_work_tree(struct repository *r,\n\t\t\t    const
      char *action,\n\t\t\t    const char *hint,\n\t\t\t    int ignore_submodules,\n\t\t\t
      \   int gently)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/ref-filter.c:52,1
    - Dst: _
      Src: /src/git/ref-filter.c:53,1
    - Dst: _
      Src: /src/git/ref-filter.c:54,1
    - Dst: _
      Src: /src/git/ref-filter.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: setup_ref_filter_porcelain_msg
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - _
    linkageType: ''
    returnType: void
    signature: void setup_ref_filter_porcelain_msg(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/ref-filter.c:110,1
    - Dst: container_of
      Src: /src/git/ref-filter.c:111,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - lookupdata
    - eptr
    - kptr
    - keydata_aka_refname
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: ref_to_worktree_map_cmpfnc
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int ref_to_worktree_map_cmpfnc(const void *lookupdata UNUSED,\n\t\t\t\t
      \     const struct hashmap_entry *eptr,\n\t\t\t\t      const struct hashmap_entry
      *kptr,\n\t\t\t\t      const void *keydata_aka_refname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/ref-filter.c:254,1
    - Dst: va_start
      Src: /src/git/ref-filter.c:258,1
    - Dst: strbuf_vaddf
      Src: /src/git/ref-filter.c:259,1
    - Dst: va_end
      Src: /src/git/ref-filter.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sb
    - ret
    - fmt
    argTypes:
    - struct strbuf*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: strbuf_addf_ret
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - strbuf_vaddf
    - format
    linkageType: ''
    returnType: int
    signature: int strbuf_addf_ret(struct strbuf *sb, int ret, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/ref-filter.c:266,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:267,1
    - Dst: _
      Src: /src/git/ref-filter.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sb
    - name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 270
    functionName: err_no_arg
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strchrnul
    - strbuf_addf
    - _
    linkageType: ''
    returnType: int
    signature: int err_no_arg(struct strbuf *sb, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/ref-filter.c:274,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:275,1
    - Dst: _
      Src: /src/git/ref-filter.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sb
    - name
    - arg
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: err_bad_arg
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strchrnul
    - strbuf_addf
    - _
    linkageType: ''
    returnType: int
    signature: int err_bad_arg(struct strbuf *sb, const char *name, const char *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:308,1
    - Dst: strchrnul
      Src: /src/git/ref-filter.c:314,1
    - Dst: BUG
      Src: /src/git/ref-filter.c:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - to_parse
    - candidate
    - end
    - valuestart
    - valuelen
    argTypes:
    - char*
    - char*
    - char**
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 333
    functionName: match_atom_arg_value
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strchrnul
    - skip_prefix
    - BUG
    linkageType: ''
    returnType: int
    signature: "int match_atom_arg_value(const char *to_parse, const char *candidate,\n\t\t\t\tconst
      char **end, const char **valuestart,\n\t\t\t\tsize_t *valuelen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: match_atom_arg_value
      Src: /src/git/ref-filter.c:364,1
    - Dst: xstrndup
      Src: /src/git/ref-filter.c:372,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/ref-filter.c:373,1
    - Dst: free
      Src: /src/git/ref-filter.c:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - to_parse
    - candidate
    - end
    - val
    argTypes:
    - char*
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 382
    functionName: match_atom_bool_arg
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - match_atom_arg_value
    - git_parse_maybe_bool
    - free
    - xstrndup
    linkageType: ''
    returnType: int
    signature: "int match_atom_bool_arg(const char *to_parse, const char *candidate,\n\t\t\t\tconst
      char **end, int *val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:388,1
    - Dst: _
      Src: /src/git/ref-filter.c:388,1
    - Dst: color_parse
      Src: /src/git/ref-filter.c:389,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:390,1
    - Dst: _
      Src: /src/git/ref-filter.c:390,1
    - Dst: want_color
      Src: /src/git/ref-filter.c:396,1
    - Dst: color_parse
      Src: /src/git/ref-filter.c:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - format
    - atom
    - color_value
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 384
    functionDepth: 5
    functionLinenumber: 384
    functionLinenumberEnd: 399
    functionName: color_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_addf_ret
    - color_parse
    - want_color
    - _
    linkageType: ''
    returnType: int
    signature: "int color_atom_parser(struct ref_format *format, struct used_atom
      *atom,\n\t\t\t     const char *color_value, struct strbuf *err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:406,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:408,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:409,1
    - Dst: strtol_i
      Src: /src/git/ref-filter.c:411,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:412,1
    - Dst: _
      Src: /src/git/ref-filter.c:412,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:413,1
    - Dst: strtol_i
      Src: /src/git/ref-filter.c:415,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:416,1
    - Dst: _
      Src: /src/git/ref-filter.c:416,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - atom
    - arg
    - name
    - err
    argTypes:
    - struct refname_atom*
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 420
    functionName: refname_atom_parser_internal
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_bad_arg
    - strtol_i
    - strcmp
    - _
    - strbuf_addf_ret
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int refname_atom_parser_internal(struct refname_atom *atom, const
      char *arg,\n\t\t\t\t\t const char *name, struct strbuf *err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:429,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:429,1
    - Dst: refname_atom_parser_internal
      Src: /src/git/ref-filter.c:434,1
    - Dst: string_list_split
      Src: /src/git/ref-filter.c:439,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:444,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:446,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:448,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:450,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:453,1
    - Dst: refname_atom_parser_internal
      Src: /src/git/ref-filter.c:458,1
    - Dst: string_list_clear
      Src: /src/git/ref-filter.c:460,1
    - Dst: string_list_clear
      Src: /src/git/ref-filter.c:466,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 422
    functionDepth: 5
    functionLinenumber: 422
    functionLinenumberEnd: 468
    functionName: remote_ref_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - starts_with
    - string_list_split
    - strcmp
    - refname_atom_parser_internal
    linkageType: ''
    returnType: int
    signature: "int remote_ref_atom_parser(struct ref_format *format UNUSED,\n\t\t\t\t
      \ struct used_atom *atom,\n\t\t\t\t  const char *arg, struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: err_no_arg
      Src: /src/git/ref-filter.c:475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 481
    functionName: objecttype_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_no_arg
    linkageType: ''
    returnType: int
    signature: "int objecttype_atom_parser(struct ref_format *format UNUSED,\n\t\t\t\t
      \ struct used_atom *atom,\n\t\t\t\t  const char *arg, struct strbuf *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:493,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 502
    functionName: objectsize_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_bad_arg
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int objectsize_atom_parser(struct ref_format *format UNUSED,\n\t\t\t\t
      \ struct used_atom *atom,\n\t\t\t\t  const char *arg, struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: err_no_arg
      Src: /src/git/ref-filter.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 515
    functionName: deltabase_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_no_arg
    linkageType: ''
    returnType: int
    signature: "int deltabase_atom_parser(struct ref_format *format UNUSED,\n\t\t\t\t
      struct used_atom *atom,\n\t\t\t\t const char *arg, struct strbuf *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_no_arg
      Src: /src/git/ref-filter.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 525
    functionName: body_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_no_arg
    linkageType: ''
    returnType: int
    signature: "int body_atom_parser(struct ref_format *format UNUSED,\n\t\t\t    struct
      used_atom *atom,\n\t\t\t    const char *arg, struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:533,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 538
    functionName: subject_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_bad_arg
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int subject_atom_parser(struct ref_format *format UNUSED,\n\t\t\t
      \      struct used_atom *atom,\n\t\t\t       const char *arg, struct strbuf
      *err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:544,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:546,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:548,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:550,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:552,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:554,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 557
    functionName: parse_signature_option
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_signature_option(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_signature_option
      Src: /src/git/ref-filter.c:563,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 568
    functionName: signature_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - parse_signature_option
    - err_bad_arg
    linkageType: ''
    returnType: int
    signature: "int signature_atom_parser(struct ref_format *format UNUSED,\n\t\t\t\t
      struct used_atom *atom,\n\t\t\t\t const char *arg, struct strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:577,1
    - Dst: xmalloc
      Src: /src/git/ref-filter.c:589,1
    - Dst: string_list_init_dup
      Src: /src/git/ref-filter.c:590,1
    - Dst: strbuf_init
      Src: /src/git/ref-filter.c:591,1
    - Dst: strbuf_init
      Src: /src/git/ref-filter.c:592,1
    - Dst: format_set_trailers_options
      Src: /src/git/ref-filter.c:594,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:599,1
    - Dst: _
      Src: /src/git/ref-filter.c:599,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:601,1
    - Dst: _
      Src: /src/git/ref-filter.c:601,1
    - Dst: free
      Src: /src/git/ref-filter.c:602,1
    - Dst: free
      Src: /src/git/ref-filter.c:603,1
    - Dst: free
      Src: /src/git/ref-filter.c:606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 570
    functionDepth: 5
    functionLinenumber: 570
    functionLinenumberEnd: 610
    functionName: trailers_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - format_set_trailers_options
    - xstrfmt
    - strbuf_addf
    - xmalloc
    - _
    - free
    - string_list_init_dup
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: "int trailers_atom_parser(struct ref_format *format UNUSED,\n\t\t\t\tstruct
      used_atom *atom,\n\t\t\t\tconst char *arg, struct strbuf *err)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:617,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:619,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:622,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:624,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:626,1
    - Dst: trailers_atom_parser
      Src: /src/git/ref-filter.c:627,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:629,1
    - Dst: trailers_atom_parser
      Src: /src/git/ref-filter.c:630,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:632,1
    - Dst: strtoul_ui
      Src: /src/git/ref-filter.c:634,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:635,1
    - Dst: _
      Src: /src/git/ref-filter.c:635,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 612
    functionDepth: 6
    functionLinenumber: 612
    functionLinenumberEnd: 639
    functionName: contents_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_bad_arg
    - strcmp
    - strtoul_ui
    - trailers_atom_parser
    - strbuf_addf_ret
    - skip_prefix
    - _
    linkageType: ''
    returnType: int
    signature: "int contents_atom_parser(struct ref_format *format, struct used_atom
      *atom,\n\t\t\t\tconst char *arg, struct strbuf *err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: match_atom_bool_arg
      Src: /src/git/ref-filter.c:648,1
    - Dst: strvec_push
      Src: /src/git/ref-filter.c:650,1
    - Dst: strvec_push
      Src: /src/git/ref-filter.c:652,1
    - Dst: match_atom_arg_value
      Src: /src/git/ref-filter.c:656,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:660,1
    - Dst: _
      Src: /src/git/ref-filter.c:661,1
    - Dst: strtol
      Src: /src/git/ref-filter.c:663,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:664,1
    - Dst: _
      Src: /src/git/ref-filter.c:665,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:668,1
    - Dst: _
      Src: /src/git/ref-filter.c:669,1
    - Dst: strvec_pushf
      Src: /src/git/ref-filter.c:672,1
    - Dst: match_atom_arg_value
      Src: /src/git/ref-filter.c:676,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:678,1
    - Dst: _
      Src: /src/git/ref-filter.c:679,1
    - Dst: strvec_pushf
      Src: /src/git/ref-filter.c:682,1
    - Dst: match_atom_arg_value
      Src: /src/git/ref-filter.c:686,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:688,1
    - Dst: _
      Src: /src/git/ref-filter.c:689,1
    - Dst: strvec_pushf
      Src: /src/git/ref-filter.c:692,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - args
    - arg
    - err
    argTypes:
    - struct strvec*
    - char**
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 641
    functionDepth: 6
    functionLinenumber: 641
    functionLinenumberEnd: 697
    functionName: describe_atom_option_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strtol
    - _
    - match_atom_arg_value
    - strbuf_addf_ret
    - strvec_pushf
    - match_atom_bool_arg
    linkageType: ''
    returnType: int
    signature: "int describe_atom_option_parser(struct strvec *args, const char **arg,\n\t\t\t\t
      \      struct strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strvec_init
      Src: /src/git/ref-filter.c:703,1
    - Dst: describe_atom_option_parser
      Src: /src/git/ref-filter.c:712,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:716,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 699
    functionDepth: 7
    functionLinenumber: 699
    functionLinenumberEnd: 719
    functionName: describe_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_bad_arg
    - describe_atom_option_parser
    - strvec_init
    linkageType: ''
    returnType: int
    signature: "int describe_atom_parser(struct ref_format *format UNUSED,\n\t\t\t\tstruct
      used_atom *atom,\n\t\t\t\tconst char *arg, struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:727,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 733
    functionName: raw_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_bad_arg
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int raw_atom_parser(struct ref_format *format UNUSED,\n\t\t\t   struct
      used_atom *atom,\n\t\t\t   const char *arg, struct strbuf *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:741,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:743,1
    - Dst: strtoul_ui
      Src: /src/git/ref-filter.c:745,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:747,1
    - Dst: _
      Src: /src/git/ref-filter.c:747,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:751,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 735
    functionDepth: 4
    functionLinenumber: 735
    functionLinenumberEnd: 753
    functionName: oid_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_bad_arg
    - strcmp
    - strtoul_ui
    - _
    - strbuf_addf_ret
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int oid_atom_parser(struct ref_format *format UNUSED,\n\t\t\t   struct
      used_atom *atom,\n\t\t\t   const char *arg, struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:761,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 755
    functionDepth: 3
    functionLinenumber: 755
    functionLinenumberEnd: 766
    functionName: person_name_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_bad_arg
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int person_name_atom_parser(struct ref_format *format UNUSED,\n\t\t\t\t
      \  struct used_atom *atom,\n\t\t\t\t   const char *arg, struct strbuf *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:772,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:774,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 779
    functionName: email_atom_option_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int email_atom_option_parser(const char **arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: email_atom_option_parser
      Src: /src/git/ref-filter.c:786,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:790,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:798,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 801
    functionName: person_email_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_bad_arg
    - email_atom_option_parser
    linkageType: ''
    returnType: int
    signature: "int person_email_atom_parser(struct ref_format *format UNUSED,\n\t\t\t\t
      \   struct used_atom *atom,\n\t\t\t\t    const char *arg, struct strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refname_atom_parser_internal
      Src: /src/git/ref-filter.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 803
    functionDepth: 5
    functionLinenumber: 803
    functionLinenumberEnd: 808
    functionName: refname_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - refname_atom_parser_internal
    linkageType: ''
    returnType: int
    signature: "int refname_atom_parser(struct ref_format *format UNUSED,\n\t\t\t
      \      struct used_atom *atom,\n\t\t\t       const char *arg, struct strbuf
      *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:812,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:814,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:816,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 819
    functionName: parse_align_position
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: align_type
    signature: align_type parse_align_position(const char *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:831,1
    - Dst: _
      Src: /src/git/ref-filter.c:831,1
    - Dst: string_list_split
      Src: /src/git/ref-filter.c:835,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:840,1
    - Dst: parse_align_position
      Src: /src/git/ref-filter.c:841,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:843,1
    - Dst: _
      Src: /src/git/ref-filter.c:843,1
    - Dst: string_list_clear
      Src: /src/git/ref-filter.c:844,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:848,1
    - Dst: strtoul_ui
      Src: /src/git/ref-filter.c:849,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:850,1
    - Dst: _
      Src: /src/git/ref-filter.c:850,1
    - Dst: string_list_clear
      Src: /src/git/ref-filter.c:851,1
    - Dst: strtoul_ui
      Src: /src/git/ref-filter.c:854,1
    - Dst: parse_align_position
      Src: /src/git/ref-filter.c:856,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:859,1
    - Dst: _
      Src: /src/git/ref-filter.c:859,1
    - Dst: string_list_clear
      Src: /src/git/ref-filter.c:860,1
    - Dst: string_list_clear
      Src: /src/git/ref-filter.c:866,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:867,1
    - Dst: _
      Src: /src/git/ref-filter.c:867,1
    - Dst: string_list_clear
      Src: /src/git/ref-filter.c:870,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 821
    functionDepth: 5
    functionLinenumber: 821
    functionLinenumberEnd: 872
    functionName: align_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - parse_align_position
    - strbuf_addf
    - string_list_split
    - strtoul_ui
    - _
    - strbuf_addf_ret
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int align_atom_parser(struct ref_format *format UNUSED,\n\t\t\t     struct
      used_atom *atom,\n\t\t\t     const char *arg, struct strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:881,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:883,1
    - Dst: err_bad_arg
      Src: /src/git/ref-filter.c:886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 888
    functionName: if_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_bad_arg
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int if_atom_parser(struct ref_format *format UNUSED,\n\t\t\t  struct
      used_atom *atom,\n\t\t\t  const char *arg, struct strbuf *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_no_arg
      Src: /src/git/ref-filter.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - format
    - UNUSED
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 890
    functionDepth: 3
    functionLinenumber: 890
    functionLinenumberEnd: 897
    functionName: rest_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_no_arg
    linkageType: ''
    returnType: int
    signature: "int rest_atom_parser(struct ref_format *format UNUSED,\n\t\t\t    struct
      used_atom *atom UNUSED,\n\t\t\t    const char *arg, struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:904,1
    - Dst: _
      Src: /src/git/ref-filter.c:904,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/ref-filter.c:906,1
    - Dst: die
      Src: /src/git/ref-filter.c:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 899
    functionDepth: 4
    functionLinenumber: 899
    functionLinenumberEnd: 911
    functionName: ahead_behind_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_addf_ret
    - die
    - lookup_commit_reference_by_name
    - _
    linkageType: ''
    returnType: int
    signature: "int ahead_behind_atom_parser(struct ref_format *format UNUSED,\n\t\t\t\t
      \   struct used_atom *atom,\n\t\t\t\t    const char *arg, struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:918,1
    - Dst: _
      Src: /src/git/ref-filter.c:918,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:920,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/ref-filter.c:921,1
    - Dst: die
      Src: /src/git/ref-filter.c:923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 913
    functionDepth: 4
    functionLinenumber: 913
    functionLinenumberEnd: 926
    functionName: is_base_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - die
    - lookup_commit_reference_by_name
    - _
    - strbuf_addf_ret
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int is_base_atom_parser(struct ref_format *format UNUSED,\n\t\t\t
      \      struct used_atom *atom,\n\t\t\t       const char *arg, struct strbuf
      *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_no_arg
      Src: /src/git/ref-filter.c:933,1
    - Dst: refs_resolve_refdup
      Src: /src/git/ref-filter.c:934,1
    - Dst: get_main_ref_store
      Src: /src/git/ref-filter.c:934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - format
    - atom
    - arg
    - err
    argTypes:
    - struct ref_format*
    - struct used_atom*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 928
    functionDepth: 3
    functionLinenumber: 928
    functionLinenumberEnd: 938
    functionName: head_atom_parser
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - err_no_arg
    - get_main_ref_store
    - refs_resolve_refdup
    linkageType: ''
    returnType: int
    signature: "int head_atom_parser(struct ref_format *format UNUSED,\n\t\t\t    struct
      used_atom *atom,\n\t\t\t    const char *arg, struct strbuf *err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:1045,1
    - Dst: _
      Src: /src/git/ref-filter.c:1045,1
    - Dst: memchr
      Src: /src/git/ref-filter.c:1054,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:1059,1
    - Dst: memcmp
      Src: /src/git/ref-filter.c:1060,1
    - Dst: ARRAY_SIZE
      Src: /src/git/ref-filter.c:1065,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:1066,1
    - Dst: memcmp
      Src: /src/git/ref-filter.c:1067,1
    - Dst: ARRAY_SIZE
      Src: /src/git/ref-filter.c:1071,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:1072,1
    - Dst: _
      Src: /src/git/ref-filter.c:1072,1
    - Dst: have_git_dir
      Src: /src/git/ref-filter.c:1074,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:1075,1
    - Dst: _
      Src: /src/git/ref-filter.c:1076,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/ref-filter.c:1082,1
    - Dst: xmemdupz
      Src: /src/git/ref-filter.c:1084,1
    - Dst: memset
      Src: /src/git/ref-filter.c:1103,1
    - Dst: parser
      Src: /src/git/ref-filter.c:1104,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 4
    argNames:
    - format
    - atom
    - ep
    - err
    argTypes:
    - struct ref_format*
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1033
    functionDepth: 4
    functionLinenumber: 1033
    functionLinenumberEnd: 1111
    functionName: parse_ref_filter_atom
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - memchr
    - xmemdupz
    - memset
    - parser
    - strlen
    - REALLOC_ARRAY
    - have_git_dir
    - _
    - strbuf_addf_ret
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int parse_ref_filter_atom(struct ref_format *format,\n\t\t\t\t const
      char *atom, const char *ep,\n\t\t\t\t struct strbuf *err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/ref-filter.c:1118,1
    - Dst: strbuf_add
      Src: /src/git/ref-filter.c:1120,1
    - Dst: sq_quote_buf
      Src: /src/git/ref-filter.c:1123,1
    - Dst: perl_quote_buf
      Src: /src/git/ref-filter.c:1127,1
    - Dst: perl_quote_buf_with_len
      Src: /src/git/ref-filter.c:1129,1
    - Dst: python_quote_buf
      Src: /src/git/ref-filter.c:1132,1
    - Dst: tcl_quote_buf
      Src: /src/git/ref-filter.c:1135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - s
    - str
    - len
    - quote_style
    argTypes:
    - struct strbuf*
    - char*
    - ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1113
    functionDepth: 3
    functionLinenumber: 1113
    functionLinenumberEnd: 1138
    functionName: quote_formatting
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - sq_quote_buf
    - python_quote_buf
    - perl_quote_buf
    - strbuf_addstr
    - perl_quote_buf_with_len
    - tcl_quote_buf
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void quote_formatting(struct strbuf *s, const char *str, ssize_t len,
      int quote_style)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quote_formatting
      Src: /src/git/ref-filter.c:1150,1
    - Dst: strbuf_addstr
      Src: /src/git/ref-filter.c:1152,1
    - Dst: strbuf_add
      Src: /src/git/ref-filter.c:1154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - v
    - state
    - UNUSED
    argTypes:
    - struct atom_value*
    - struct ref_formatting_state*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1140
    functionDepth: 4
    functionLinenumber: 1140
    functionLinenumberEnd: 1156
    functionName: append_atom
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - quote_formatting
    - strbuf_add
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int append_atom(struct atom_value *v, struct ref_formatting_state
      *state,\n\t\t       struct strbuf *err UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/ref-filter.c:1160,1
    - Dst: strbuf_init
      Src: /src/git/ref-filter.c:1162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct ref_formatting_stack**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1165
    functionName: push_stack_element
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_init
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void push_stack_element(struct ref_formatting_stack **stack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addbuf
      Src: /src/git/ref-filter.c:1173,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:1174,1
    - Dst: struct ref_formatting_stack*::at_end_data_free
      Src: /src/git/ref-filter.c:1176,1
    - Dst: free
      Src: /src/git/ref-filter.c:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct ref_formatting_stack**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1167
    functionDepth: 3
    functionLinenumber: 1167
    functionLinenumberEnd: 1179
    functionName: pop_stack_element
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_addbuf
    - struct ref_formatting_stack*::at_end_data_free
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void pop_stack_element(struct ref_formatting_stack **stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_utf8_align
      Src: /src/git/ref-filter.c:1187,1
    - Dst: strbuf_swap
      Src: /src/git/ref-filter.c:1188,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct ref_formatting_stack**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1181
    functionDepth: 3
    functionLinenumber: 1181
    functionLinenumberEnd: 1190
    functionName: end_align_handler
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_utf8_align
    - strbuf_release
    - strbuf_swap
    linkageType: ''
    returnType: void
    signature: void end_align_handler(struct ref_formatting_stack **stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_stack_element
      Src: /src/git/ref-filter.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - atomv
    - state
    - UNUSED
    argTypes:
    - struct atom_value*
    - struct ref_formatting_state*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1192
    functionDepth: 3
    functionLinenumber: 1192
    functionLinenumberEnd: 1202
    functionName: align_atom_handler
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - push_stack_element
    linkageType: ''
    returnType: int
    signature: "int align_atom_handler(struct atom_value *atomv, struct ref_formatting_state
      *state,\n\t\t\t      struct strbuf *err UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/ref-filter.c:1211,1
    - Dst: _
      Src: /src/git/ref-filter.c:1211,1
    - Dst: strbuf_reset
      Src: /src/git/ref-filter.c:1220,1
    - Dst: pop_stack_element
      Src: /src/git/ref-filter.c:1221,1
    - Dst: strbuf_swap
      Src: /src/git/ref-filter.c:1223,1
    - Dst: strbuf_reset
      Src: /src/git/ref-filter.c:1224,1
    - Dst: pop_stack_element
      Src: /src/git/ref-filter.c:1225,1
    - Dst: strbuf_reset
      Src: /src/git/ref-filter.c:1232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct ref_formatting_stack**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1204
    functionDepth: 4
    functionLinenumber: 1204
    functionLinenumberEnd: 1236
    functionName: if_then_else_handler
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - die
    - strbuf_reset
    - pop_stack_element
    - _
    - strbuf_swap
    linkageType: ''
    returnType: void
    signature: void if_then_else_handler(struct ref_formatting_stack **stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/ref-filter.c:1242,1
    - Dst: push_stack_element
      Src: /src/git/ref-filter.c:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - atomv
    - state
    - UNUSED
    argTypes:
    - struct atom_value*
    - struct ref_formatting_state*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1253
    functionName: if_atom_handler
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - push_stack_element
    - xcalloc
    linkageType: ''
    returnType: int
    signature: "int if_atom_handler(struct atom_value *atomv, struct ref_formatting_state
      *state,\n\t\t\t   struct strbuf *err UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/ref-filter.c:1260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1264
    functionName: is_empty
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 3
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int is_empty(struct strbuf *buf)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:1277,1
    - Dst: _
      Src: /src/git/ref-filter.c:1277,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:1279,1
    - Dst: _
      Src: /src/git/ref-filter.c:1279,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:1281,1
    - Dst: _
      Src: /src/git/ref-filter.c:1281,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:1284,1
    - Dst: memcmp
      Src: /src/git/ref-filter.c:1292,1
    - Dst: memcmp
      Src: /src/git/ref-filter.c:1296,1
    - Dst: is_empty
      Src: /src/git/ref-filter.c:1298,1
    - Dst: strbuf_reset
      Src: /src/git/ref-filter.c:1300,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 3
    argNames:
    - UNUSED
    - state
    - err
    argTypes:
    - struct atom_value*
    - struct ref_formatting_state*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1266
    functionDepth: 4
    functionLinenumber: 1266
    functionLinenumberEnd: 1302
    functionName: then_atom_handler
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strlen
    - _
    - strbuf_addf_ret
    - is_empty
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int then_atom_handler(struct atom_value *atomv UNUSED,\n\t\t\t     struct
      ref_formatting_state *state,\n\t\t\t     struct strbuf *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:1314,1
    - Dst: _
      Src: /src/git/ref-filter.c:1314,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:1316,1
    - Dst: _
      Src: /src/git/ref-filter.c:1316,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:1318,1
    - Dst: _
      Src: /src/git/ref-filter.c:1318,1
    - Dst: push_stack_element
      Src: /src/git/ref-filter.c:1320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - UNUSED
    - state
    - err
    argTypes:
    - struct atom_value*
    - struct ref_formatting_state*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1304
    functionDepth: 4
    functionLinenumber: 1304
    functionLinenumberEnd: 1324
    functionName: else_atom_handler
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_addf_ret
    - push_stack_element
    - _
    linkageType: ''
    returnType: int
    signature: "int else_atom_handler(struct atom_value *atomv UNUSED,\n\t\t\t     struct
      ref_formatting_state *state,\n\t\t\t     struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:1334,1
    - Dst: _
      Src: /src/git/ref-filter.c:1334,1
    - Dst: struct ref_formatting_stack*::at_end
      Src: /src/git/ref-filter.c:1335,1
    - Dst: quote_formatting
      Src: /src/git/ref-filter.c:1346,1
    - Dst: strbuf_swap
      Src: /src/git/ref-filter.c:1347,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:1349,1
    - Dst: pop_stack_element
      Src: /src/git/ref-filter.c:1350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - UNUSED
    - state
    - err
    argTypes:
    - struct atom_value*
    - struct ref_formatting_state*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1326
    functionDepth: 4
    functionLinenumber: 1326
    functionLinenumberEnd: 1352
    functionName: end_atom_handler
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - struct ref_formatting_stack*::at_end
    - pop_stack_element
    - _
    - strbuf_addf_ret
    - quote_formatting
    - strbuf_swap
    linkageType: ''
    returnType: int
    signature: "int end_atom_handler(struct atom_value *atomv UNUSED,\n\t\t\t    struct
      ref_formatting_state *state,\n\t\t\t    struct strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1374
    functionName: find_next
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *find_next(const char *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atom_type
    argTypes:
    - enum atom_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1379
    functionName: reject_atom
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int reject_atom(enum atom_type atom_type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_next
      Src: /src/git/ref-filter.c:1390,1
    - Dst: strchr
      Src: /src/git/ref-filter.c:1392,1
    - Dst: error
      Src: /src/git/ref-filter.c:1396,1
    - Dst: _
      Src: /src/git/ref-filter.c:1396,1
    - Dst: parse_ref_filter_atom
      Src: /src/git/ref-filter.c:1398,1
    - Dst: die
      Src: /src/git/ref-filter.c:1400,1
    - Dst: reject_atom
      Src: /src/git/ref-filter.c:1401,1
    - Dst: die
      Src: /src/git/ref-filter.c:1402,1
    - Dst: _
      Src: /src/git/ref-filter.c:1402,1
    - Dst: die
      Src: /src/git/ref-filter.c:1409,1
    - Dst: _
      Src: /src/git/ref-filter.c:1409,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:1413,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:1414,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:1415,1
    - Dst: want_color
      Src: /src/git/ref-filter.c:1417,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 1
    argNames:
    - format
    argTypes:
    - struct ref_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1385
    functionDepth: 5
    functionLinenumber: 1385
    functionLinenumberEnd: 1420
    functionName: verify_ref_format
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - reject_atom
    - find_next
    - die
    - strchr
    - strcmp
    - parse_ref_filter_atom
    - skip_prefix
    - want_color
    - _
    linkageType: ''
    returnType: int
    signature: int verify_ref_format(struct ref_format *format)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/ref-filter.c:1427,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/ref-filter.c:1429,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/ref-filter.c:1432,1
    - Dst: BUG
      Src: /src/git/ref-filter.c:1435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - field
    - oid
    - atom
    argTypes:
    - char*
    - struct object_id*
    - struct used_atom*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1422
    functionDepth: 4
    functionLinenumber: 1422
    functionLinenumberEnd: 1437
    functionName: do_grab_oid
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - BUG
    - repo_find_unique_abbrev
    linkageType: ''
    returnType: char
    signature: "char *do_grab_oid(const char *field, const struct object_id *oid,\n\t\t\t
      \      struct used_atom *atom)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/ref-filter.c:1442,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1443,1
    - Dst: do_grab_oid
      Src: /src/git/ref-filter.c:1443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - name
    - field
    - oid
    - v
    - atom
    argTypes:
    - char*
    - char*
    - struct object_id*
    - struct atom_value*
    - struct used_atom*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1439
    functionDepth: 5
    functionLinenumber: 1439
    functionLinenumberEnd: 1447
    functionName: grab_oid
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 1
    functionsReached:
    - do_grab_oid
    - starts_with
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int grab_oid(const char *name, const char *field, const struct object_id
      *oid,\n\t\t    struct atom_value *v, struct used_atom *atom)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1463,1
    - Dst: type_name
      Src: /src/git/ref-filter.c:1463,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:1467,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:1470,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1473,1
    - Dst: oid_to_hex
      Src: /src/git/ref-filter.c:1473,1
    - Dst: grab_oid
      Src: /src/git/ref-filter.c:1475,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - val
    - deref
    - oi
    argTypes:
    - struct atom_value*
    - int
    - struct expand_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1450
    functionDepth: 6
    functionLinenumber: 1450
    functionLinenumberEnd: 1477
    functionName: grab_common_values
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - xstrfmt
    - grab_oid
    - type_name
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void grab_common_values(struct atom_value *val, int deref, struct expand_data
      *oi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_object_buffer
      Src: /src/git/ref-filter.c:1483,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:1486,1
    - Dst: _
      Src: /src/git/ref-filter.c:1486,1
    - Dst: oid_to_hex
      Src: /src/git/ref-filter.c:1487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - data
    - refname
    - err
    - eaten
    argTypes:
    - struct expand_data*
    - char*
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1479
    functionDepth: 3
    functionLinenumber: 1479
    functionLinenumberEnd: 1493
    functionName: get_or_parse_object
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - parse_object_buffer
    - oid_to_hex
    - strbuf_addf
    - _
    linkageType: ''
    returnType: struct object
    signature: "struct object *get_or_parse_object(struct expand_data *data, const
      char *refname,\n\t\t\t\t\t  struct strbuf *err, int *eaten)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_or_parse_object
      Src: /src/git/ref-filter.c:1511,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1520,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1522,1
    - Dst: type_name
      Src: /src/git/ref-filter.c:1522,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1524,1
    - Dst: oid_to_hex
      Src: /src/git/ref-filter.c:1524,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 6
    argNames:
    - val
    - deref
    - data
    - refname
    - err
    - eaten
    argTypes:
    - struct atom_value*
    - int
    - struct expand_data*
    - char*
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1496
    functionDepth: 4
    functionLinenumber: 1496
    functionLinenumberEnd: 1528
    functionName: grab_tag_values
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - type_name
    - get_or_parse_object
    - oid_to_hex
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int grab_tag_values(struct atom_value *val, int deref,\n\t\t\t   struct
      expand_data *data, const char *refname,\n\t\t\t   struct strbuf *err, int *eaten)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_or_parse_object
      Src: /src/git/ref-filter.c:1549,1
    - Dst: grab_oid
      Src: /src/git/ref-filter.c:1556,1
    - Dst: get_commit_tree_oid
      Src: /src/git/ref-filter.c:1556,1
    - Dst: commit_list_count
      Src: /src/git/ref-filter.c:1559,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:1560,1
    - Dst: strbuf_addch
      Src: /src/git/ref-filter.c:1568,1
    - Dst: strbuf_addstr
      Src: /src/git/ref-filter.c:1569,1
    - Dst: do_grab_oid
      Src: /src/git/ref-filter.c:1569,1
    - Dst: strbuf_detach
      Src: /src/git/ref-filter.c:1571,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 6
    argNames:
    - val
    - deref
    - data
    - refname
    - err
    - eaten
    argTypes:
    - struct atom_value*
    - int
    - struct expand_data*
    - char*
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1531
    functionDepth: 6
    functionLinenumber: 1531
    functionLinenumberEnd: 1576
    functionName: grab_commit_values
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - get_or_parse_object
    - xstrfmt
    - strbuf_addch
    - get_commit_tree_oid
    - strbuf_detach
    - strbuf_addstr
    - grab_oid
    - do_grab_oid
    - commit_list_count
    linkageType: ''
    returnType: int
    signature: "int grab_commit_values(struct atom_value *val, int deref,\n\t\t\t
      \     struct expand_data *data, const char *refname,\n\t\t\t      struct strbuf
      *err, int *eaten)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/ref-filter.c:1582,1
    - Dst: strchr
      Src: /src/git/ref-filter.c:1585,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - who
    - wholen
    - buf
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1594
    functionName: find_wholine
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strchr
    linkageType: ''
    returnType: char
    signature: char *find_wholine(const char *who, int wholen, const char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/ref-filter.c:1598,1
    - Dst: xmemdupz
      Src: /src/git/ref-filter.c:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1600
    functionName: copy_line
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strchrnul
    linkageType: ''
    returnType: char
    signature: char *copy_line(const char *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/ref-filter.c:1606,1
    - Dst: xmemdupz
      Src: /src/git/ref-filter.c:1607,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1610
    functionName: copy_name
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - starts_with
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *copy_name(const char *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/ref-filter.c:1617,1
    - Dst: strchr
      Src: /src/git/ref-filter.c:1620,1
    - Dst: strchr
      Src: /src/git/ref-filter.c:1624,1
    - Dst: strchr
      Src: /src/git/ref-filter.c:1636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - email
    - opt
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1640
    functionName: find_end_of_email
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *find_end_of_email(const char *email, int opt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/ref-filter.c:1644,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1649,1
    - Dst: find_end_of_email
      Src: /src/git/ref-filter.c:1654,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1656,1
    - Dst: xmemdupz
      Src: /src/git/ref-filter.c:1657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - atom
    argTypes:
    - char*
    - struct used_atom*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 1658
    functionName: copy_email
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 1
    functionsReached:
    - xmemdupz
    - find_end_of_email
    - strchr
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *copy_email(const char *buf, struct used_atom *atom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/ref-filter.c:1670,1
    - Dst: strbuf_addch
      Src: /src/git/ref-filter.c:1672,1
    - Dst: strbuf_detach
      Src: /src/git/ref-filter.c:1674,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1660
    functionDepth: 3
    functionLinenumber: 1660
    functionLinenumberEnd: 1675
    functionName: copy_subject
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_detach
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *copy_subject(const char *buf, unsigned long len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/ref-filter.c:1679,1
    - Dst: strchr
      Src: /src/git/ref-filter.c:1692,1
    - Dst: parse_date_format
      Src: /src/git/ref-filter.c:1695,1
    - Dst: parse_timestamp
      Src: /src/git/ref-filter.c:1706,1
    - Dst: strtol
      Src: /src/git/ref-filter.c:1710,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1713,1
    - Dst: show_date
      Src: /src/git/ref-filter.c:1713,1
    - Dst: date_mode_release
      Src: /src/git/ref-filter.c:1715,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1718,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - buf
    - v
    - atomname
    argTypes:
    - char*
    - struct atom_value*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1677
    functionDepth: 3
    functionLinenumber: 1677
    functionLinenumberEnd: 1720
    functionName: grab_date
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - date_mode_release
    - strstr
    - parse_date_format
    - strchr
    - show_date
    - parse_timestamp
    - strtol
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void grab_date(const char *buf, struct atom_value *v, const char *atomname)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/ref-filter.c:1728,1
    - Dst: strncmp
      Src: /src/git/ref-filter.c:1743,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:1746,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:1747,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:1748,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:1751,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:1753,1
    - Dst: read_mailmap
      Src: /src/git/ref-filter.c:1756,1
    - Dst: strbuf_addstr
      Src: /src/git/ref-filter.c:1757,1
    - Dst: apply_mailmap_to_header
      Src: /src/git/ref-filter.c:1758,1
    - Dst: find_wholine
      Src: /src/git/ref-filter.c:1759,1
    - Dst: find_wholine
      Src: /src/git/ref-filter.c:1761,1
    - Dst: copy_line
      Src: /src/git/ref-filter.c:1767,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:1768,1
    - Dst: copy_name
      Src: /src/git/ref-filter.c:1769,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:1770,1
    - Dst: copy_email
      Src: /src/git/ref-filter.c:1771,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:1772,1
    - Dst: grab_date
      Src: /src/git/ref-filter.c:1773,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:1775,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:1782,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:1782,1
    - Dst: find_wholine
      Src: /src/git/ref-filter.c:1785,1
    - Dst: grab_date
      Src: /src/git/ref-filter.c:1798,1
    - Dst: copy_line
      Src: /src/git/ref-filter.c:1800,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 47
    argCount: 4
    argNames:
    - who
    - val
    - deref
    - buf
    argTypes:
    - char*
    - struct atom_value*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1725
    functionDepth: 7
    functionLinenumber: 1725
    functionLinenumberEnd: 1802
    functionName: grab_person
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - copy_name
    - read_mailmap
    - find_wholine
    - grab_date
    - starts_with
    - apply_mailmap_to_header
    - strlen
    - strbuf_addstr
    - strcmp
    - strncmp
    - copy_email
    - copy_line
    linkageType: ''
    returnType: void
    signature: void grab_person(const char *who, struct atom_value *val, int deref,
      void *buf)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:1824,1
    - Dst: parse_signature_option
      Src: /src/git/ref-filter.c:1832,1
    - Dst: get_or_parse_object
      Src: /src/git/ref-filter.c:1838,1
    - Dst: check_commit_signature
      Src: /src/git/ref-filter.c:1844,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1850,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1853,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:1861,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:1864,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:1874,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1879,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1882,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1886,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:1890,1
    - Dst: gpg_trust_level_to_str
      Src: /src/git/ref-filter.c:1890,1
    - Dst: signature_check_clear
      Src: /src/git/ref-filter.c:1896,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 6
    argNames:
    - val
    - deref
    - data
    - refname
    - err
    - eaten
    argTypes:
    - struct atom_value*
    - int
    - struct expand_data*
    - char*
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1804
    functionDepth: 5
    functionLinenumber: 1804
    functionLinenumberEnd: 1899
    functionName: grab_signature
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - parse_signature_option
    - get_or_parse_object
    - xstrfmt
    - gpg_trust_level_to_str
    - signature_check_clear
    - check_commit_signature
    - skip_prefix
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int grab_signature(struct atom_value *val, int deref,\n\t\t\t  struct
      expand_data *data, const char *refname,\n\t\t\t  struct strbuf *err, int *eaten)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/ref-filter.c:1908,1
    - Dst: strchrnul
      Src: /src/git/ref-filter.c:1913,1
    - Dst: parse_signed_buffer
      Src: /src/git/ref-filter.c:1922,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:1922,1
    - Dst: strstr
      Src: /src/git/ref-filter.c:1929,1
    - Dst: strstr
      Src: /src/git/ref-filter.c:1930,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:1947,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 8
    argNames:
    - buf
    - sub
    - sublen
    - body
    - bodylen
    - nonsiglen
    - sig
    - siglen
    argTypes:
    - char*
    - char**
    - size_t*
    - char**
    - size_t*
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1901
    functionDepth: 3
    functionLinenumber: 1901
    functionLinenumberEnd: 1949
    functionName: find_subpos
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strlen
    - strchrnul
    - strstr
    - parse_signed_buffer
    linkageType: ''
    returnType: void
    signature: "void find_subpos(const char *buf,\n\t\t\tconst char **sub, size_t
      *sublen,\n\t\t\tconst char **body, size_t *bodylen,\n\t\t\tsize_t *nonsiglen,\n\t\t\tconst
      char **sig, size_t *siglen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/ref-filter.c:1965,1
    - Dst: memchr
      Src: /src/git/ref-filter.c:1966,1
    - Dst: strbuf_add
      Src: /src/git/ref-filter.c:1968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - out
    - buf
    - size
    - lines
    argTypes:
    - struct strbuf*
    - char*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1955
    functionDepth: 3
    functionLinenumber: 1955
    functionLinenumberEnd: 1973
    functionName: append_lines
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - memchr
    - strbuf_add
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void append_lines(struct strbuf *out, const char *buf, unsigned long
      size, int lines)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/ref-filter.c:1997,1
    - Dst: strvec_pushv
      Src: /src/git/ref-filter.c:1998,1
    - Dst: strvec_push
      Src: /src/git/ref-filter.c:1999,1
    - Dst: oid_to_hex
      Src: /src/git/ref-filter.c:1999,1
    - Dst: pipe_command
      Src: /src/git/ref-filter.c:2000,1
    - Dst: error
      Src: /src/git/ref-filter.c:2001,1
    - Dst: _
      Src: /src/git/ref-filter.c:2001,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2002,1
    - Dst: strbuf_rtrim
      Src: /src/git/ref-filter.c:2005,1
    - Dst: strbuf_detach
      Src: /src/git/ref-filter.c:2006,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:2008,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - val
    - deref
    - data
    argTypes:
    - struct atom_value*
    - int
    - struct expand_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1975
    functionDepth: 8
    functionLinenumber: 1975
    functionLinenumberEnd: 2010
    functionName: grab_describe_values
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - strbuf_release
    - oid_to_hex
    - strvec_pushv
    - strbuf_rtrim
    - pipe_command
    - strbuf_detach
    - _
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void grab_describe_values(struct atom_value *val, int deref,\n\t\t\t\t
      struct expand_data *data)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmemdupz
      Src: /src/git/ref-filter.c:2035,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:2039,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:2046,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:2047,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:2048,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:2049,1
    - Dst: find_subpos
      Src: /src/git/ref-filter.c:2052,1
    - Dst: copy_subject
      Src: /src/git/ref-filter.c:2058,1
    - Dst: format_sanitized_subject
      Src: /src/git/ref-filter.c:2061,1
    - Dst: strbuf_detach
      Src: /src/git/ref-filter.c:2062,1
    - Dst: xmemdupz
      Src: /src/git/ref-filter.c:2064,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:2066,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:2067,1
    - Dst: xmemdupz
      Src: /src/git/ref-filter.c:2069,1
    - Dst: xmemdupz
      Src: /src/git/ref-filter.c:2071,1
    - Dst: append_lines
      Src: /src/git/ref-filter.c:2077,1
    - Dst: strbuf_detach
      Src: /src/git/ref-filter.c:2078,1
    - Dst: xmemdupz
      Src: /src/git/ref-filter.c:2085,1
    - Dst: format_trailers_from_commit
      Src: /src/git/ref-filter.c:2090,1
    - Dst: free
      Src: /src/git/ref-filter.c:2091,1
    - Dst: strbuf_detach
      Src: /src/git/ref-filter.c:2093,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2095,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 3
    argNames:
    - val
    - deref
    - data
    argTypes:
    - struct atom_value*
    - int
    - struct expand_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2013
    functionDepth: 5
    functionLinenumber: 2013
    functionLinenumberEnd: 2098
    functionName: grab_sub_body_contents
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - find_subpos
    - copy_subject
    - append_lines
    - xstrfmt
    - starts_with
    - strlen
    - format_sanitized_subject
    - format_trailers_from_commit
    - strbuf_detach
    - strcmp
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void grab_sub_body_contents(struct atom_value *val, int deref, struct
      expand_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - struct atom_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2112
    functionName: fill_missing_values
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void fill_missing_values(struct atom_value *val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: grab_tag_values
      Src: /src/git/ref-filter.c:2129,1
    - Dst: grab_sub_body_contents
      Src: /src/git/ref-filter.c:2133,1
    - Dst: grab_person
      Src: /src/git/ref-filter.c:2134,1
    - Dst: grab_describe_values
      Src: /src/git/ref-filter.c:2135,1
    - Dst: grab_commit_values
      Src: /src/git/ref-filter.c:2138,1
    - Dst: grab_sub_body_contents
      Src: /src/git/ref-filter.c:2142,1
    - Dst: grab_person
      Src: /src/git/ref-filter.c:2143,1
    - Dst: grab_person
      Src: /src/git/ref-filter.c:2144,1
    - Dst: grab_signature
      Src: /src/git/ref-filter.c:2146,1
    - Dst: grab_describe_values
      Src: /src/git/ref-filter.c:2150,1
    - Dst: grab_sub_body_contents
      Src: /src/git/ref-filter.c:2154,1
    - Dst: grab_sub_body_contents
      Src: /src/git/ref-filter.c:2158,1
    - Dst: die
      Src: /src/git/ref-filter.c:2161,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 6
    argNames:
    - val
    - deref
    - data
    - refname
    - err
    - eaten
    argTypes:
    - struct atom_value*
    - int
    - struct expand_data*
    - char*
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2121
    functionDepth: 9
    functionLinenumber: 2121
    functionLinenumberEnd: 2167
    functionName: grab_values
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - grab_person
    - die
    - grab_signature
    - grab_sub_body_contents
    - grab_describe_values
    - grab_tag_values
    - grab_commit_values
    linkageType: ''
    returnType: int
    signature: "int grab_values(struct atom_value *val, int deref, struct expand_data
      *data,\n\t\t       const char *refname, struct strbuf *err, int *eaten)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2169
    functionDepth: 0
    functionLinenumber: 2169
    functionLinenumberEnd: 2174
    functionName: copy_advance
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *copy_advance(char *dst, const char *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - refname
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2176
    functionDepth: 0
    functionLinenumber: 2176
    functionLinenumberEnd: 2195
    functionName: normalize_component_count
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int normalize_component_count(const char *refname, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: normalize_component_count
      Src: /src/git/ref-filter.c:2199,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2204,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - refname
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2197
    functionDepth: 1
    functionLinenumber: 2197
    functionLinenumberEnd: 2212
    functionName: lstrip_ref_components
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - normalize_component_count
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *lstrip_ref_components(const char *refname, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: normalize_component_count
      Src: /src/git/ref-filter.c:2216,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:2217,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2221,1
    - Dst: xmemdupz
      Src: /src/git/ref-filter.c:2225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - refname
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2214
    functionDepth: 1
    functionLinenumber: 2214
    functionLinenumberEnd: 2226
    functionName: rstrip_ref_components
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strlen
    - normalize_component_count
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *rstrip_ref_components(const char *refname, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/ref-filter.c:2231,1
    - Dst: get_main_ref_store
      Src: /src/git/ref-filter.c:2231,1
    - Dst: repo_settings_get_warn_ambiguous_refs
      Src: /src/git/ref-filter.c:2233,1
    - Dst: lstrip_ref_components
      Src: /src/git/ref-filter.c:2235,1
    - Dst: rstrip_ref_components
      Src: /src/git/ref-filter.c:2237,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - atom
    - refname
    argTypes:
    - struct refname_atom*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2228
    functionDepth: 3
    functionLinenumber: 2228
    functionLinenumberEnd: 2240
    functionName: show_ref
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - repo_settings_get_warn_ambiguous_refs
    - lstrip_ref_components
    - refs_shorten_unambiguous_ref
    - rstrip_ref_components
    - xstrdup
    - get_main_ref_store
    linkageType: ''
    returnType: char
    signature: char *show_ref(struct refname_atom *atom, const char *refname)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: show_ref
      Src: /src/git/ref-filter.c:2247,1
    - Dst: stat_tracking_info
      Src: /src/git/ref-filter.c:2249,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2252,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2254,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:2256,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:2258,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:2260,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:2264,1
    - Dst: free
      Src: /src/git/ref-filter.c:2265,1
    - Dst: stat_tracking_info
      Src: /src/git/ref-filter.c:2268,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2271,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2275,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2277,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2279,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2281,1
    - Dst: pushremote_for_branch
      Src: /src/git/ref-filter.c:2285,1
    - Dst: remote_for_branch
      Src: /src/git/ref-filter.c:2286,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2287,1
    - Dst: remote_ref_for_branch
      Src: /src/git/ref-filter.c:2291,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2292,1
    - Dst: BUG
      Src: /src/git/ref-filter.c:2294,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 4
    argNames:
    - atom
    - refname
    - branch
    - s
    argTypes:
    - struct used_atom*
    - char*
    - struct branch*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2242
    functionDepth: 5
    functionLinenumber: 2242
    functionLinenumberEnd: 2295
    functionName: fill_remote_ref_details
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - remote_for_branch
    - stat_tracking_info
    - xstrfmt
    - pushremote_for_branch
    - remote_ref_for_branch
    - free
    - BUG
    - show_ref
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void fill_remote_ref_details(struct used_atom *atom, const char *refname,\n\t\t\t\t
      \   struct branch *branch, const char **s)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/ref-filter.c:2301,1
    - Dst: wt_status_get_state
      Src: /src/git/ref-filter.c:2302,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:2306,1
    - Dst: _
      Src: /src/git/ref-filter.c:2306,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:2309,1
    - Dst: _
      Src: /src/git/ref-filter.c:2309,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:2312,1
    - Dst: _
      Src: /src/git/ref-filter.c:2312,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:2316,1
    - Dst: _
      Src: /src/git/ref-filter.c:2316,1
    - Dst: strbuf_addf
      Src: /src/git/ref-filter.c:2319,1
    - Dst: _
      Src: /src/git/ref-filter.c:2319,1
    - Dst: strbuf_addstr
      Src: /src/git/ref-filter.c:2322,1
    - Dst: _
      Src: /src/git/ref-filter.c:2322,1
    - Dst: wt_status_state_free_buffers
      Src: /src/git/ref-filter.c:2324,1
    - Dst: strbuf_detach
      Src: /src/git/ref-filter.c:2326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2297
    functionDepth: 8
    functionLinenumber: 2297
    functionLinenumberEnd: 2327
    functionName: get_head_description
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - memset
    - wt_status_get_state
    - strbuf_addf
    - strbuf_detach
    - strbuf_addstr
    - _
    - wt_status_state_free_buffers
    linkageType: ''
    returnType: char
    signature: char *get_head_description(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2332,1
    - Dst: show_ref
      Src: /src/git/ref-filter.c:2334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - atom
    - ref
    argTypes:
    - struct used_atom*
    - struct ref_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2329
    functionDepth: 1
    functionLinenumber: 2329
    functionLinenumberEnd: 2335
    functionName: get_symref
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - show_ref
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *get_symref(struct used_atom *atom, struct ref_array_item *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_head_description
      Src: /src/git/ref-filter.c:2340,1
    - Dst: show_ref
      Src: /src/git/ref-filter.c:2341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - atom
    - ref
    argTypes:
    - struct used_atom*
    - struct ref_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2337
    functionDepth: 9
    functionLinenumber: 2337
    functionLinenumberEnd: 2342
    functionName: get_refname
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - get_head_description
    - show_ref
    linkageType: ''
    returnType: char
    signature: char *get_refname(struct used_atom *atom, struct ref_array_item *ref)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/ref-filter.c:2359,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:2361,1
    - Dst: _
      Src: /src/git/ref-filter.c:2361,1
    - Dst: oid_to_hex
      Src: /src/git/ref-filter.c:2362,1
    - Dst: BUG
      Src: /src/git/ref-filter.c:2366,1
    - Dst: grab_values
      Src: /src/git/ref-filter.c:2369,1
    - Dst: grab_common_values
      Src: /src/git/ref-filter.c:2374,1
    - Dst: free
      Src: /src/git/ref-filter.c:2379,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - ref
    - deref
    - oi
    - err
    argTypes:
    - struct ref_array_item*
    - int
    - struct expand_data*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2344
    functionDepth: 10
    functionLinenumber: 2344
    functionLinenumberEnd: 2381
    functionName: get_object
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - grab_values
    - grab_common_values
    - _
    - free
    - strbuf_addf_ret
    - odb_read_object_info_extended
    - BUG
    linkageType: ''
    returnType: int
    signature: "int get_object(struct ref_array_item *ref, int deref,\n\t\t      struct
      expand_data *oi, struct strbuf *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/ref-filter.c:2390,1
    - Dst: hashmap_entry_init
      Src: /src/git/ref-filter.c:2392,1
    - Dst: strhash
      Src: /src/git/ref-filter.c:2393,1
    - Dst: hashmap_add
      Src: /src/git/ref-filter.c:2395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - map
    - worktrees
    argTypes:
    - struct hashmap*
    - struct worktree**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2383
    functionDepth: 4
    functionLinenumber: 2383
    functionLinenumberEnd: 2398
    functionName: populate_worktree_map
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strhash
    - xmalloc
    - hashmap_entry_init
    - hashmap_add
    linkageType: ''
    returnType: void
    signature: void populate_worktree_map(struct hashmap *map, struct worktree **worktrees)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees
      Src: /src/git/ref-filter.c:2405,1
    - Dst: hashmap_init
      Src: /src/git/ref-filter.c:2406,1
    - Dst: populate_worktree_map
      Src: /src/git/ref-filter.c:2407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2400
    functionDepth: 5
    functionLinenumber: 2400
    functionLinenumberEnd: 2408
    functionName: lazy_init_worktree_map
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - hashmap_init
    - get_worktrees
    - populate_worktree_map
    linkageType: ''
    returnType: void
    signature: void lazy_init_worktree_map(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lazy_init_worktree_map
      Src: /src/git/ref-filter.c:2415,1
    - Dst: hashmap_entry_init
      Src: /src/git/ref-filter.c:2417,1
    - Dst: strhash
      Src: /src/git/ref-filter.c:2417,1
    - Dst: hashmap_get
      Src: /src/git/ref-filter.c:2418,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2421,1
    - Dst: container_of
      Src: /src/git/ref-filter.c:2423,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct ref_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2410
    functionDepth: 6
    functionLinenumber: 2410
    functionLinenumberEnd: 2426
    functionName: get_worktree_path
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strhash
    - container_of
    - lazy_init_worktree_map
    - hashmap_entry_init
    - hashmap_get
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *get_worktree_path(const struct ref_array_item *ref)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/ref-filter.c:2438,1
    - Dst: refs_resolve_refdup
      Src: /src/git/ref-filter.c:2447,1
    - Dst: get_main_ref_store
      Src: /src/git/ref-filter.c:2447,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2452,1
    - Dst: get_refname
      Src: /src/git/ref-filter.c:2476,1
    - Dst: get_worktree_path
      Src: /src/git/ref-filter.c:2479,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2481,1
    - Dst: get_symref
      Src: /src/git/ref-filter.c:2485,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:2489,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2491,1
    - Dst: branch_get
      Src: /src/git/ref-filter.c:2494,1
    - Dst: branch_get_upstream
      Src: /src/git/ref-filter.c:2496,1
    - Dst: fill_remote_ref_details
      Src: /src/git/ref-filter.c:2498,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2500,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2504,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:2505,1
    - Dst: branch_get
      Src: /src/git/ref-filter.c:2508,1
    - Dst: branch_get_push
      Src: /src/git/ref-filter.c:2513,1
    - Dst: free
      Src: /src/git/ref-filter.c:2518,1
    - Dst: fill_remote_ref_details
      Src: /src/git/ref-filter.c:2519,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2522,1
    - Dst: copy_advance
      Src: /src/git/ref-filter.c:2527,1
    - Dst: copy_advance
      Src: /src/git/ref-filter.c:2529,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2531,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2534,1
    - Dst: grab_oid
      Src: /src/git/ref-filter.c:2538,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:2541,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2542,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2544,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2548,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2552,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:2556,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2557,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2559,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2564,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2568,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2572,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2574,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:2580,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2583,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:2588,1
    - Dst: free
      Src: /src/git/ref-filter.c:2589,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2591,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:2599,1
    - Dst: xstrfmt
      Src: /src/git/ref-filter.c:2601,1
    - Dst: free
      Src: /src/git/ref-filter.c:2602,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:2608,1
    - Dst: _
      Src: /src/git/ref-filter.c:2608,1
    - Dst: oid_to_hex
      Src: /src/git/ref-filter.c:2609,1
    - Dst: memcmp
      Src: /src/git/ref-filter.c:2614,1
    - Dst: memcmp
      Src: /src/git/ref-filter.c:2615,1
    - Dst: get_object
      Src: /src/git/ref-filter.c:2620,1
    - Dst: is_null_oid
      Src: /src/git/ref-filter.c:2635,1
    - Dst: oidcpy
      Src: /src/git/ref-filter.c:2636,1
    - Dst: peel_object
      Src: /src/git/ref-filter.c:2637,1
    - Dst: die
      Src: /src/git/ref-filter.c:2641,1
    - Dst: get_object
      Src: /src/git/ref-filter.c:2645,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 159
    argCount: 2
    argNames:
    - ref
    - err
    argTypes:
    - struct ref_array_item*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2431
    functionDepth: 11
    functionLinenumber: 2431
    functionLinenumberEnd: 2646
    functionName: populate_value
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - get_object
    - oidcpy
    - is_null_oid
    - strcmp
    - grab_oid
    - CALLOC_ARRAY
    - free
    - get_main_ref_store
    - die
    - get_refname
    - branch_get
    - strbuf_addf_ret
    - branch_get_upstream
    - refs_resolve_refdup
    - copy_advance
    - oid_to_hex
    - fill_remote_ref_details
    - get_worktree_path
    - _
    - peel_object
    - skip_prefix
    - xstrdup
    - branch_get_push
    - xstrfmt
    - get_symref
    - memcmp
    linkageType: ''
    returnType: int
    signature: int populate_value(struct ref_array_item *ref, struct strbuf *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: populate_value
      Src: /src/git/ref-filter.c:2656,1
    - Dst: fill_missing_values
      Src: /src/git/ref-filter.c:2658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ref
    - atom
    - v
    - err
    argTypes:
    - struct ref_array_item*
    - int
    - struct atom_value**
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2652
    functionDepth: 12
    functionLinenumber: 2652
    functionLinenumberEnd: 2662
    functionName: get_ref_atom_value
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - populate_value
    - fill_missing_values
    linkageType: ''
    returnType: int
    signature: "int get_ref_atom_value(struct ref_array_item *ref, int atom,\n\t\t\t
      \     struct atom_value **v, struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:2682,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:2683,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:2684,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:2685,1
    - Dst: wildmatch
      Src: /src/git/ref-filter.c:2688,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - patterns
    - refname
    - ignore_case
    argTypes:
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2670
    functionDepth: 1
    functionLinenumber: 2670
    functionLinenumberEnd: 2692
    functionName: match_pattern
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - wildmatch
    linkageType: ''
    returnType: int
    signature: "int match_pattern(const char **patterns, const char *refname,\n\t\t\t
      int ignore_case)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/ref-filter.c:2703,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:2711,1
    - Dst: strncmp
      Src: /src/git/ref-filter.c:2714,1
    - Dst: wildmatch
      Src: /src/git/ref-filter.c:2719,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - pattern
    - refname
    - ignore_case
    argTypes:
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2700
    functionDepth: 1
    functionLinenumber: 2700
    functionLinenumberEnd: 2723
    functionName: match_name_as_path
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - wildmatch
    linkageType: ''
    returnType: int
    signature: "int match_name_as_path(const char **pattern, const char *refname,\n\t\t\t
      \     int ignore_case)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: match_name_as_path
      Src: /src/git/ref-filter.c:2731,1
    - Dst: match_pattern
      Src: /src/git/ref-filter.c:2733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - filter
    - refname
    argTypes:
    - struct ref_filter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2726
    functionDepth: 2
    functionLinenumber: 2726
    functionLinenumberEnd: 2735
    functionName: filter_pattern_match
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - match_pattern
    - match_name_as_path
    linkageType: ''
    returnType: int
    signature: int filter_pattern_match(struct ref_filter *filter, const char *refname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: match_name_as_path
      Src: /src/git/ref-filter.c:2742,1
    - Dst: match_pattern
      Src: /src/git/ref-filter.c:2744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - filter
    - refname
    argTypes:
    - struct ref_filter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2737
    functionDepth: 2
    functionLinenumber: 2737
    functionLinenumberEnd: 2745
    functionName: filter_exclude_match
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - match_pattern
    - match_name_as_path
    linkageType: ''
    returnType: int
    signature: int filter_exclude_match(struct ref_filter *filter, const char *refname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/ref-filter.c:2756,1
    - Dst: strbuf_addch
      Src: /src/git/ref-filter.c:2757,1
    - Dst: ref_iterator_seek
      Src: /src/git/ref-filter.c:2759,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:2761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - iter
    - marker
    argTypes:
    - struct ref_iterator*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2751
    functionDepth: 3
    functionLinenumber: 2751
    functionLinenumberEnd: 2763
    functionName: start_ref_iterator_after
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - ref_iterator_seek
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: int start_ref_iterator_after(struct ref_iterator *iter, const char
      *marker)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_ref_iterator_begin
      Src: /src/git/ref-filter.c:2771,1
    - Dst: get_main_ref_store
      Src: /src/git/ref-filter.c:2771,1
    - Dst: start_ref_iterator_after
      Src: /src/git/ref-filter.c:2774,1
    - Dst: do_for_each_ref_iterator
      Src: /src/git/ref-filter.c:2779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - filter
    - cb
    - cb_data
    - flags
    argTypes:
    - struct ref_filter*
    - refs_for_each_cb
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2765
    functionDepth: 4
    functionLinenumber: 2765
    functionLinenumberEnd: 2780
    functionName: for_each_fullref_with_seek
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - do_for_each_ref_iterator
    - start_ref_iterator_after
    - refs_ref_iterator_begin
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int for_each_fullref_with_seek(struct ref_filter *filter, refs_for_each_cb
      cb,\n\t\t\t\t       void *cb_data, unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: for_each_fullref_with_seek
      Src: /src/git/ref-filter.c:2797,1
    - Dst: for_each_fullref_with_seek
      Src: /src/git/ref-filter.c:2807,1
    - Dst: for_each_fullref_with_seek
      Src: /src/git/ref-filter.c:2816,1
    - Dst: for_each_fullref_with_seek
      Src: /src/git/ref-filter.c:2821,1
    - Dst: refs_for_each_ref_in_prefixes
      Src: /src/git/ref-filter.c:2824,1
    - Dst: get_main_ref_store
      Src: /src/git/ref-filter.c:2824,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - filter
    - cb
    - cb_data
    argTypes:
    - struct ref_filter*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2787
    functionDepth: 5
    functionLinenumber: 2787
    functionLinenumberEnd: 2827
    functionName: for_each_fullref_in_pattern
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - for_each_fullref_with_seek
    - refs_for_each_ref_in_prefixes
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int for_each_fullref_in_pattern(struct ref_filter *filter,\n\t\t\t\t
      \      refs_for_each_cb cb,\n\t\t\t\t       void *cb_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_lookup
      Src: /src/git/ref-filter.c:2846,1
    - Dst: parse_object_with_flags
      Src: /src/git/ref-filter.c:2848,1
    - Dst: parse_tag
      Src: /src/git/ref-filter.c:2853,1
    - Dst: oid_array_lookup
      Src: /src/git/ref-filter.c:2858,1
    - Dst: get_tagged_oid
      Src: /src/git/ref-filter.c:2858,1
    - Dst: die
      Src: /src/git/ref-filter.c:2864,1
    - Dst: _
      Src: /src/git/ref-filter.c:2864,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - points_at
    - oid
    - refname
    argTypes:
    - struct oid_array*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2840
    functionDepth: 6
    functionLinenumber: 2840
    functionLinenumberEnd: 2866
    functionName: match_points_at
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - oid_array_lookup
    - die
    - parse_tag
    - _
    - parse_object_with_flags
    - get_tagged_oid
    linkageType: ''
    returnType: int
    signature: "int match_points_at(struct oid_array *points_at,\n\t\t\t   const struct
      object_id *oid,\n\t\t\t   const char *refname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/ref-filter.c:2879,1
    - Dst: oidcpy
      Src: /src/git/ref-filter.c:2880,1
    - Dst: oidcpy
      Src: /src/git/ref-filter.c:2882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - refname
    - oid
    - peeled_oid
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2873
    functionDepth: 1
    functionLinenumber: 2873
    functionLinenumberEnd: 2886
    functionName: new_ref_array_item
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - FLEX_ALLOC_STR
    - oidcpy
    linkageType: ''
    returnType: struct ref_array_item
    signature: "struct ref_array_item *new_ref_array_item(const char *refname,\n\t\t\t\t\t\t
      const struct object_id *oid,\n\t\t\t\t\t\t const struct object_id *peeled_oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/ref-filter.c:2890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array
    - ref
    argTypes:
    - struct ref_array*
    - struct ref_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2892
      start: 2888
    functionDepth: 1
    functionLinenumber: 2888
    functionLinenumberEnd: 2892
    functionName: ref_array_append
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void ref_array_append(struct ref_array *array, struct ref_array_item
      *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_ref_array_item
      Src: /src/git/ref-filter.c:2899,1
    - Dst: ref_array_append
      Src: /src/git/ref-filter.c:2900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - array
    - refname
    - oid
    - peeled_oid
    argTypes:
    - struct ref_array*
    - char*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2902
      start: 2894
    functionDepth: 2
    functionLinenumber: 2894
    functionLinenumberEnd: 2902
    functionName: ref_array_push
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - ref_array_append
    - new_ref_array_item
    linkageType: ''
    returnType: struct ref_array_item
    signature: "struct ref_array_item *ref_array_push(struct ref_array *array,\n\t\t\t\t
      \     const char *refname,\n\t\t\t\t      const struct object_id *oid,\n\t\t\t\t
      \     const struct object_id *peeled_oid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/ref-filter.c:2917,1
    - Dst: ARRAY_SIZE
      Src: /src/git/ref-filter.c:2920,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:2921,1
    - Dst: is_pseudo_ref
      Src: /src/git/ref-filter.c:2925,1
    - Dst: is_root_ref
      Src: /src/git/ref-filter.c:2927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2931
      start: 2904
    functionDepth: 3
    functionLinenumber: 2904
    functionLinenumberEnd: 2931
    functionName: ref_kind_from_refname
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - is_root_ref
    - starts_with
    - is_pseudo_ref
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ref_kind_from_refname(const char *refname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ref_kind_from_refname
      Src: /src/git/ref-filter.c:2939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - filter
    - refname
    argTypes:
    - struct ref_filter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2933
    functionDepth: 4
    functionLinenumber: 2933
    functionLinenumberEnd: 2940
    functionName: filter_ref_kind
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - ref_kind_from_refname
    linkageType: ''
    returnType: int
    signature: int filter_ref_kind(struct ref_filter *filter, const char *refname)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/ref-filter.c:2950,1
    - Dst: _
      Src: /src/git/ref-filter.c:2950,1
    - Dst: warning
      Src: /src/git/ref-filter.c:2955,1
    - Dst: _
      Src: /src/git/ref-filter.c:2955,1
    - Dst: filter_ref_kind
      Src: /src/git/ref-filter.c:2960,1
    - Dst: filter_pattern_match
      Src: /src/git/ref-filter.c:2973,1
    - Dst: filter_exclude_match
      Src: /src/git/ref-filter.c:2976,1
    - Dst: match_points_at
      Src: /src/git/ref-filter.c:2979,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/ref-filter.c:2989,1
    - Dst: commit_contains
      Src: /src/git/ref-filter.c:2994,1
    - Dst: commit_contains
      Src: /src/git/ref-filter.c:2998,1
    - Dst: new_ref_array_item
      Src: /src/git/ref-filter.c:3007,1
    - Dst: xstrdup_or_null
      Src: /src/git/ref-filter.c:3011,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 2
    argNames:
    - ref
    - filter
    argTypes:
    - struct reference*
    - struct ref_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 2942
    functionDepth: 7
    functionLinenumber: 2942
    functionLinenumberEnd: 3014
    functionName: apply_ref_filter
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - lookup_commit_reference_gently
    - commit_contains
    - filter_pattern_match
    - new_ref_array_item
    - filter_ref_kind
    - filter_exclude_match
    - _
    - warning
    - match_points_at
    linkageType: ''
    returnType: struct ref_array_item
    signature: "struct ref_array_item *apply_ref_filter(const struct reference *ref,\n\t\t\t\t\t
      \      struct ref_filter *filter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apply_ref_filter
      Src: /src/git/ref-filter.c:3030,1
    - Dst: ref_array_append
      Src: /src/git/ref-filter.c:3032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3035
      start: 3025
    functionDepth: 8
    functionLinenumber: 3025
    functionLinenumberEnd: 3035
    functionName: filter_one
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - ref_array_append
    - apply_ref_filter
    linkageType: ''
    returnType: int
    signature: int filter_one(const struct reference *ref, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/ref-filter.c:3040,1
    - Dst: free
      Src: /src/git/ref-filter.c:3044,1
    - Dst: free
      Src: /src/git/ref-filter.c:3045,1
    - Dst: free
      Src: /src/git/ref-filter.c:3047,1
    - Dst: free
      Src: /src/git/ref-filter.c:3048,1
    - Dst: free
      Src: /src/git/ref-filter.c:3049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct ref_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3038
    functionDepth: 1
    functionLinenumber: 3038
    functionLinenumberEnd: 3050
    functionName: free_array_item
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_array_item(struct ref_array_item *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apply_ref_filter
      Src: /src/git/ref-filter.c:3067,1
    - Dst: format_ref_array_item
      Src: /src/git/ref-filter.c:3071,1
    - Dst: die
      Src: /src/git/ref-filter.c:3072,1
    - Dst: fwrite
      Src: /src/git/ref-filter.c:3075,1
    - Dst: putchar
      Src: /src/git/ref-filter.c:3076,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:3079,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:3080,1
    - Dst: free_array_item
      Src: /src/git/ref-filter.c:3081,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3061
    functionDepth: 8
    functionLinenumber: 3061
    functionLinenumberEnd: 3093
    functionName: filter_and_format_one
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - free_array_item
    - putchar
    - strbuf_release
    - die
    - apply_ref_filter
    - fwrite
    - format_ref_array_item
    linkageType: ''
    returnType: int
    signature: int filter_and_format_one(const struct reference *ref, void *cb_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free_array_item
      Src: /src/git/ref-filter.c:3101,1
    - Dst: FREE_AND_NULL
      Src: /src/git/ref-filter.c:3102,1
    - Dst: free
      Src: /src/git/ref-filter.c:3108,1
    - Dst: strvec_clear
      Src: /src/git/ref-filter.c:3110,1
    - Dst: free
      Src: /src/git/ref-filter.c:3112,1
    - Dst: string_list_clear
      Src: /src/git/ref-filter.c:3118,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:3119,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:3120,1
    - Dst: free
      Src: /src/git/ref-filter.c:3121,1
    - Dst: free
      Src: /src/git/ref-filter.c:3124,1
    - Dst: FREE_AND_NULL
      Src: /src/git/ref-filter.c:3126,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/ref-filter.c:3130,1
    - Dst: free_worktrees
      Src: /src/git/ref-filter.c:3132,1
    - Dst: FREE_AND_NULL
      Src: /src/git/ref-filter.c:3136,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct ref_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3137
      start: 3096
    functionDepth: 3
    functionLinenumber: 3096
    functionLinenumberEnd: 3137
    functionName: ref_array_clear
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - free_array_item
    - string_list_clear
    - strbuf_release
    - free_worktrees
    - hashmap_clear_and_free
    - strvec_clear
    - free
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void ref_array_clear(struct ref_array *array)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/ref-filter.c:3151,1
    - Dst: tips_reachable_from_bases
      Src: /src/git/ref-filter.c:3157,1
    - Dst: free_array_item
      Src: /src/git/ref-filter.c:3174,1
    - Dst: clear_commit_marks_many
      Src: /src/git/ref-filter.c:3177,1
    - Dst: pop_commit
      Src: /src/git/ref-filter.c:3180,1
    - Dst: clear_commit_marks
      Src: /src/git/ref-filter.c:3181,1
    - Dst: free
      Src: /src/git/ref-filter.c:3184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - array
    - check_reachable
    - include_reached
    argTypes:
    - struct ref_array*
    - struct commit_list**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3141
    functionDepth: 2
    functionLinenumber: 3141
    functionLinenumberEnd: 3185
    functionName: reach_filter
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - free_array_item
    - tips_reachable_from_bases
    - clear_commit_marks_many
    - pop_commit
    - clear_commit_marks
    - CALLOC_ARRAY
    - free
    linkageType: ''
    returnType: void
    signature: "void reach_filter(struct ref_array *array,\n\t\t\t struct commit_list
      **check_reachable,\n\t\t\t int include_reached)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/ref-filter.c:3203,1
    - Dst: st_add
      Src: /src/git/ref-filter.c:3203,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/ref-filter.c:3209,1
    - Dst: st_mult
      Src: /src/git/ref-filter.c:3209,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/ref-filter.c:3215,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/ref-filter.c:3220,1
    - Dst: ahead_behind
      Src: /src/git/ref-filter.c:3232,1
    - Dst: free
      Src: /src/git/ref-filter.c:3233,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - r
    - array
    argTypes:
    - struct repository*
    - struct ref_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3234
      start: 3187
    functionDepth: 3
    functionLinenumber: 3187
    functionLinenumberEnd: 3234
    functionName: filter_ahead_behind
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference_by_name
    - ALLOC_ARRAY
    - ahead_behind
    - CALLOC_ARRAY
    - free
    - st_add
    - st_mult
    linkageType: ''
    returnType: void
    signature: "void filter_ahead_behind(struct repository *r,\n\t\t\t struct ref_array
      *array)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/ref-filter.c:3253,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/ref-filter.c:3254,1
    - Dst: lookup_commit_reference_by_name_gently
      Src: /src/git/ref-filter.c:3258,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/ref-filter.c:3260,1
    - Dst: get_branch_base_for_tip
      Src: /src/git/ref-filter.c:3278,1
    - Dst: xstrdup
      Src: /src/git/ref-filter.c:3283,1
    - Dst: free
      Src: /src/git/ref-filter.c:3286,1
    - Dst: free
      Src: /src/git/ref-filter.c:3287,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - r
    - array
    argTypes:
    - struct repository*
    - struct ref_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3288
      start: 3236
    functionDepth: 1
    functionLinenumber: 3236
    functionLinenumberEnd: 3288
    functionName: filter_is_base
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference_by_name_gently
    - get_branch_base_for_tip
    - free
    - CALLOC_ARRAY
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void filter_is_base(struct repository *r,\n\t\t    struct ref_array
      *array)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: init_contains_cache
      Src: /src/git/ref-filter.c:3297,1
    - Dst: init_contains_cache
      Src: /src/git/ref-filter.c:3298,1
    - Dst: die
      Src: /src/git/ref-filter.c:3302,1
    - Dst: refs_ref_iterator_begin
      Src: /src/git/ref-filter.c:3320,1
    - Dst: get_main_ref_store
      Src: /src/git/ref-filter.c:3320,1
    - Dst: start_ref_iterator_after
      Src: /src/git/ref-filter.c:3324,1
    - Dst: ref_iterator_seek
      Src: /src/git/ref-filter.c:3326,1
    - Dst: do_for_each_ref_iterator
      Src: /src/git/ref-filter.c:3330,1
    - Dst: for_each_fullref_in_pattern
      Src: /src/git/ref-filter.c:3332,1
    - Dst: refs_head_ref
      Src: /src/git/ref-filter.c:3341,1
    - Dst: get_main_ref_store
      Src: /src/git/ref-filter.c:3341,1
    - Dst: clear_contains_cache
      Src: /src/git/ref-filter.c:3345,1
    - Dst: clear_contains_cache
      Src: /src/git/ref-filter.c:3346,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - filter
    - type
    - fn
    - cb_data
    argTypes:
    - struct ref_filter*
    - unsigned int
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3349
      start: 3290
    functionDepth: 6
    functionLinenumber: 3290
    functionLinenumberEnd: 3349
    functionName: do_filter_refs
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - die
    - refs_head_ref
    - refs_ref_iterator_begin
    - for_each_fullref_in_pattern
    - start_ref_iterator_after
    - clear_contains_cache
    - init_contains_cache
    - do_for_each_ref_iterator
    - ref_iterator_seek
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int do_filter_refs(struct ref_filter *filter, unsigned int type, refs_for_each_cb
      fn, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_filter_refs
      Src: /src/git/ref-filter.c:3369,1
    - Dst: reach_filter
      Src: /src/git/ref-filter.c:3372,1
    - Dst: reach_filter
      Src: /src/git/ref-filter.c:3373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - array
    - filter
    - type
    argTypes:
    - struct ref_array*
    - struct ref_filter*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3377
      start: 3357
    functionDepth: 7
    functionLinenumber: 3357
    functionLinenumberEnd: 3377
    functionName: filter_refs
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 1
    functionsReached:
    - do_filter_refs
    - reach_filter
    linkageType: ''
    returnType: int
    signature: int filter_refs(struct ref_array *array, struct ref_filter *filter,
      unsigned int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - filter
    - sorting
    argTypes:
    - struct ref_filter*
    - struct ref_sorting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3417
      start: 3385
    functionDepth: 0
    functionLinenumber: 3385
    functionLinenumberEnd: 3417
    functionName: can_do_iterative_format
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int can_do_iterative_format(struct ref_filter *filter,\n\t\t\t\t\t
      \ struct ref_sorting *sorting)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: can_do_iterative_format
      Src: /src/git/ref-filter.c:3423,1
    - Dst: do_filter_refs
      Src: /src/git/ref-filter.c:3433,1
    - Dst: filter_refs
      Src: /src/git/ref-filter.c:3438,1
    - Dst: filter_ahead_behind
      Src: /src/git/ref-filter.c:3439,1
    - Dst: filter_is_base
      Src: /src/git/ref-filter.c:3440,1
    - Dst: ref_array_sort
      Src: /src/git/ref-filter.c:3441,1
    - Dst: print_formatted_ref_array
      Src: /src/git/ref-filter.c:3442,1
    - Dst: ref_array_clear
      Src: /src/git/ref-filter.c:3443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - filter
    - type
    - sorting
    - format
    argTypes:
    - struct ref_filter*
    - unsigned int
    - struct ref_sorting*
    - struct ref_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3445
      start: 3419
    functionDepth: 7
    functionLinenumber: 3419
    functionLinenumberEnd: 3445
    functionName: filter_and_format_refs
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - do_filter_refs
    - filter_ahead_behind
    - filter_is_base
    - filter_refs
    - ref_array_sort
    - print_formatted_ref_array
    - ref_array_clear
    - can_do_iterative_format
    linkageType: ''
    returnType: void
    signature: "void filter_and_format_refs(struct ref_filter *filter, unsigned int
      type,\n\t\t\t    struct ref_sorting *sorting,\n\t\t\t    struct ref_format *format)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/ref-filter.c:3450,1
    - Dst: BUG
      Src: /src/git/ref-filter.c:3455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct ref_array_item*
    - struct ref_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3457
      start: 3447
    functionDepth: 1
    functionLinenumber: 3447
    functionLinenumberEnd: 3457
    functionName: compare_detached_head
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: int compare_detached_head(struct ref_array_item *a, struct ref_array_item
      *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/git/ref-filter.c:3465,1
    - Dst: tolower
      Src: /src/git/ref-filter.c:3465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - vs1
    - vs2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3459
    functionDepth: 1
    functionLinenumber: 3459
    functionLinenumberEnd: 3470
    functionName: memcasecmp
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int memcasecmp(const void *vs1, const void *vs2, size_t n)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_ref_atom_value
      Src: /src/git/ref-filter.c:3480,1
    - Dst: die
      Src: /src/git/ref-filter.c:3481,1
    - Dst: get_ref_atom_value
      Src: /src/git/ref-filter.c:3482,1
    - Dst: die
      Src: /src/git/ref-filter.c:3483,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:3484,1
    - Dst: compare_detached_head
      Src: /src/git/ref-filter.c:3487,1
    - Dst: versioncmp
      Src: /src/git/ref-filter.c:3490,1
    - Dst: cmp_fn
      Src: /src/git/ref-filter.c:3496,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:3499,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:3501,1
    - Dst: cmp_fn
      Src: /src/git/ref-filter.c:3506,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - s
    - a
    - b
    argTypes:
    - struct ref_sorting*
    - struct ref_array_item*
    - struct ref_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3472
    functionDepth: 13
    functionLinenumber: 3472
    functionLinenumberEnd: 3526
    functionName: cmp_ref_sorting
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - cmp_fn
    - versioncmp
    - get_ref_atom_value
    - strlen
    - compare_detached_head
    linkageType: ''
    returnType: int
    signature: int cmp_ref_sorting(struct ref_sorting *s, struct ref_array_item *a,
      struct ref_array_item *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp_ref_sorting
      Src: /src/git/ref-filter.c:3535,1
    - Dst: strcasecmp
      Src: /src/git/ref-filter.c:3541,1
    - Dst: strcmp
      Src: /src/git/ref-filter.c:3542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - a_
    - b_
    - ref_sorting
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3528
    functionDepth: 14
    functionLinenumber: 3528
    functionLinenumberEnd: 3543
    functionName: compare_refs
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - cmp_ref_sorting
    - strcasecmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare_refs(const void *a_, const void *b_, void *ref_sorting)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - sorting
    - mask
    - 'on'
    argTypes:
    - struct ref_sorting*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3545
    functionDepth: 0
    functionLinenumber: 3545
    functionLinenumberEnd: 3554
    functionName: ref_sorting_set_sort_flags_all
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ref_sorting_set_sort_flags_all(struct ref_sorting *sorting,\n\t\t\t\t
      \   unsigned int mask, int on)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QSORT_S
      Src: /src/git/ref-filter.c:3559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sorting
    - array
    argTypes:
    - struct ref_sorting*
    - struct ref_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3560
    functionName: ref_array_sort
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 1
    functionsReached:
    - QSORT_S
    linkageType: ''
    returnType: void
    signature: void ref_array_sort(struct ref_sorting *sorting, struct ref_array *array)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hex2chr
      Src: /src/git/ref-filter.c:3571,1
    - Dst: strbuf_addch
      Src: /src/git/ref-filter.c:3573,1
    - Dst: strbuf_addch
      Src: /src/git/ref-filter.c:3579,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - cp
    - ep
    - state
    argTypes:
    - char*
    - char*
    - struct ref_formatting_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3582
      start: 3562
    functionDepth: 1
    functionLinenumber: 3562
    functionLinenumberEnd: 3582
    functionName: append_literal
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - hex2chr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void append_literal(const char *cp, const char *ep, struct ref_formatting_state
      *state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: push_stack_element
      Src: /src/git/ref-filter.c:3593,1
    - Dst: find_next
      Src: /src/git/ref-filter.c:3595,1
    - Dst: strchr
      Src: /src/git/ref-filter.c:3599,1
    - Dst: append_literal
      Src: /src/git/ref-filter.c:3601,1
    - Dst: parse_ref_filter_atom
      Src: /src/git/ref-filter.c:3602,1
    - Dst: get_ref_atom_value
      Src: /src/git/ref-filter.c:3603,1
    - Dst: struct atom_value*::handler
      Src: /src/git/ref-filter.c:3604,1
    - Dst: pop_stack_element
      Src: /src/git/ref-filter.c:3605,1
    - Dst: strlen
      Src: /src/git/ref-filter.c:3610,1
    - Dst: append_literal
      Src: /src/git/ref-filter.c:3611,1
    - Dst: append_atom
      Src: /src/git/ref-filter.c:3616,1
    - Dst: pop_stack_element
      Src: /src/git/ref-filter.c:3617,1
    - Dst: pop_stack_element
      Src: /src/git/ref-filter.c:3622,1
    - Dst: strbuf_addf_ret
      Src: /src/git/ref-filter.c:3623,1
    - Dst: _
      Src: /src/git/ref-filter.c:3623,1
    - Dst: strbuf_addbuf
      Src: /src/git/ref-filter.c:3625,1
    - Dst: pop_stack_element
      Src: /src/git/ref-filter.c:3626,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - info
    - format
    - final_buf
    - error_buf
    argTypes:
    - struct ref_array_item*
    - struct ref_format*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3628
      start: 3584
    functionDepth: 13
    functionLinenumber: 3584
    functionLinenumberEnd: 3628
    functionName: format_ref_array_item
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 1
    functionsReached:
    - find_next
    - append_literal
    - struct atom_value*::handler
    - push_stack_element
    - pop_stack_element
    - strchr
    - get_ref_atom_value
    - strlen
    - append_atom
    - strbuf_addbuf
    - parse_ref_filter_atom
    - strbuf_addf_ret
    - _
    linkageType: ''
    returnType: int
    signature: "int format_ref_array_item(struct ref_array_item *info,\n\t\t\t  struct
      ref_format *format,\n\t\t\t  struct strbuf *final_buf,\n\t\t\t  struct strbuf
      *error_buf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/ref-filter.c:3639,1
    - Dst: strbuf_reset
      Src: /src/git/ref-filter.c:3640,1
    - Dst: format_ref_array_item
      Src: /src/git/ref-filter.c:3641,1
    - Dst: die
      Src: /src/git/ref-filter.c:3642,1
    - Dst: fwrite
      Src: /src/git/ref-filter.c:3644,1
    - Dst: putchar
      Src: /src/git/ref-filter.c:3645,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:3649,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:3650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - array
    - format
    argTypes:
    - struct ref_array*
    - struct ref_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3651
      start: 3630
    functionDepth: 14
    functionLinenumber: 3630
    functionLinenumberEnd: 3651
    functionName: print_formatted_ref_array
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 1
    functionsReached:
    - putchar
    - strbuf_release
    - die
    - strbuf_reset
    - fwrite
    - format_ref_array_item
    linkageType: ''
    returnType: void
    signature: void print_formatted_ref_array(struct ref_array *array, struct ref_format
      *format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_ref_array_item
      Src: /src/git/ref-filter.c:3661,1
    - Dst: ref_kind_from_refname
      Src: /src/git/ref-filter.c:3662,1
    - Dst: format_ref_array_item
      Src: /src/git/ref-filter.c:3663,1
    - Dst: die
      Src: /src/git/ref-filter.c:3664,1
    - Dst: fwrite
      Src: /src/git/ref-filter.c:3665,1
    - Dst: putchar
      Src: /src/git/ref-filter.c:3666,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:3668,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:3669,1
    - Dst: free_array_item
      Src: /src/git/ref-filter.c:3670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - name
    - oid
    - peeled_oid
    - format
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - struct ref_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3671
      start: 3653
    functionDepth: 14
    functionLinenumber: 3653
    functionLinenumberEnd: 3671
    functionName: pretty_print_ref
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - free_array_item
    - putchar
    - strbuf_release
    - die
    - fwrite
    - new_ref_array_item
    - format_ref_array_item
    - ref_kind_from_refname
    linkageType: ''
    returnType: void
    signature: "void pretty_print_ref(const char *name, const struct object_id *oid,\n\t\t
      \     const struct object_id *peeled_oid,\n\t\t      struct ref_format *format)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/ref-filter.c:3680,1
    - Dst: parse_ref_filter_atom
      Src: /src/git/ref-filter.c:3682,1
    - Dst: die
      Src: /src/git/ref-filter.c:3684,1
    - Dst: strbuf_release
      Src: /src/git/ref-filter.c:3685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - atom
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3687
      start: 3673
    functionDepth: 5
    functionLinenumber: 3673
    functionLinenumberEnd: 3687
    functionName: parse_sorting_atom
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strlen
    - die
    - strbuf_release
    - parse_ref_filter_atom
    linkageType: ''
    returnType: int
    signature: int parse_sorting_atom(const char *atom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/ref-filter.c:3693,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:3701,1
    - Dst: skip_prefix
      Src: /src/git/ref-filter.c:3702,1
    - Dst: parse_sorting_atom
      Src: /src/git/ref-filter.c:3704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - sorting_tail
    - arg
    argTypes:
    - struct ref_sorting**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3689
    functionDepth: 6
    functionLinenumber: 3689
    functionLinenumberEnd: 3705
    functionName: parse_ref_sorting
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - parse_sorting_atom
    - skip_prefix
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void parse_ref_sorting(struct ref_sorting **sorting_tail, const char
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/ref-filter.c:3713,1
    - Dst: parse_ref_sorting
      Src: /src/git/ref-filter.c:3714,1
    - Dst: string_list_clear
      Src: /src/git/ref-filter.c:3722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3707
    functionDepth: 7
    functionLinenumber: 3707
    functionLinenumberEnd: 3724
    functionName: ref_sorting_options
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - parse_ref_sorting
    - string_list_clear
    linkageType: ''
    returnType: struct ref_sorting
    signature: struct ref_sorting *ref_sorting_options(struct string_list *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/ref-filter.c:3730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sorting
    argTypes:
    - struct ref_sorting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3726
    functionDepth: 1
    functionLinenumber: 3726
    functionLinenumberEnd: 3733
    functionName: ref_sorting_release
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ref_sorting_release(struct ref_sorting *sorting)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/ref-filter.c:3741,1
    - Dst: repo_get_oid
      Src: /src/git/ref-filter.c:3743,1
    - Dst: die
      Src: /src/git/ref-filter.c:3744,1
    - Dst: _
      Src: /src/git/ref-filter.c:3744,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/ref-filter.c:3746,1
    - Dst: error
      Src: /src/git/ref-filter.c:3749,1
    - Dst: _
      Src: /src/git/ref-filter.c:3749,1
    - Dst: starts_with
      Src: /src/git/ref-filter.c:3751,1
    - Dst: commit_list_insert
      Src: /src/git/ref-filter.c:3752,1
    - Dst: commit_list_insert
      Src: /src/git/ref-filter.c:3754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3757
      start: 3735
    functionDepth: 4
    functionLinenumber: 3735
    functionLinenumberEnd: 3757
    functionName: parse_opt_merge_filter
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - error
    - die
    - lookup_commit_reference_gently
    - commit_list_insert
    - repo_get_oid
    - starts_with
    - _
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: int parse_opt_merge_filter(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/ref-filter.c:3762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct ref_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3763
      start: 3759
    functionDepth: 0
    functionLinenumber: 3759
    functionLinenumberEnd: 3763
    functionName: ref_filter_init
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ref_filter_init(struct ref_filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_clear
      Src: /src/git/ref-filter.c:3767,1
    - Dst: oid_array_clear
      Src: /src/git/ref-filter.c:3768,1
    - Dst: commit_list_free
      Src: /src/git/ref-filter.c:3769,1
    - Dst: commit_list_free
      Src: /src/git/ref-filter.c:3770,1
    - Dst: commit_list_free
      Src: /src/git/ref-filter.c:3771,1
    - Dst: commit_list_free
      Src: /src/git/ref-filter.c:3772,1
    - Dst: ref_filter_init
      Src: /src/git/ref-filter.c:3773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct ref_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3774
      start: 3765
    functionDepth: 1
    functionLinenumber: 3765
    functionLinenumberEnd: 3774
    functionName: ref_filter_clear
    functionSourceFile: /src/git/ref-filter.c
    functionUses: 0
    functionsReached:
    - strvec_clear
    - oid_array_clear
    - ref_filter_init
    - commit_list_free
    linkageType: ''
    returnType: void
    signature: void ref_filter_clear(struct ref_filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/chunk-format.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: init_chunkfile
    functionSourceFile: /src/git/chunk-format.c
    functionUses: 1
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct chunkfile
    signature: struct chunkfile *init_chunkfile(struct hashfile *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/chunk-format.c:43,1
    - Dst: free
      Src: /src/git/chunk-format.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct chunkfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: free_chunkfile
    functionSourceFile: /src/git/chunk-format.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_chunkfile(struct chunkfile *cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct chunkfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: get_num_chunks
    functionSourceFile: /src/git/chunk-format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_num_chunks(struct chunkfile *cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/chunk-format.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - cf
    - id
    - size
    - fn
    argTypes:
    - struct chunkfile*
    - uint32_t
    - size_t
    - chunk_write_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: add_chunk
    functionSourceFile: /src/git/chunk-format.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: "void add_chunk(struct chunkfile *cf,\n\t       uint32_t id,\n\t       size_t
      size,\n\t       chunk_write_fn fn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashfile_total
      Src: /src/git/chunk-format.c:68,1
    - Dst: trace2_region_enter
      Src: /src/git/chunk-format.c:70,1
    - Dst: hashwrite_be32
      Src: /src/git/chunk-format.c:76,1
    - Dst: hashwrite_be64
      Src: /src/git/chunk-format.c:77,1
    - Dst: hashwrite_be32
      Src: /src/git/chunk-format.c:83,1
    - Dst: hashwrite_be64
      Src: /src/git/chunk-format.c:84,1
    - Dst: hashfile_total
      Src: /src/git/chunk-format.c:87,1
    - Dst: write_fn
      Src: /src/git/chunk-format.c:88,1
    - Dst: hashfile_total
      Src: /src/git/chunk-format.c:93,1
    - Dst: BUG
      Src: /src/git/chunk-format.c:94,1
    - Dst: hashfile_total
      Src: /src/git/chunk-format.c:96,1
    - Dst: trace2_region_leave
      Src: /src/git/chunk-format.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - cf
    - data
    argTypes:
    - struct chunkfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 102
    functionName: write_chunkfile
    functionSourceFile: /src/git/chunk-format.c
    functionUses: 0
    functionsReached:
    - hashfile_total
    - hashwrite_be64
    - hashwrite_be32
    - trace2_region_leave
    - trace2_region_enter
    - write_fn
    - BUG
    linkageType: ''
    returnType: int
    signature: int write_chunkfile(struct chunkfile *cf, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/chunk-format.c:115,1
    - Dst: get_be32
      Src: /src/git/chunk-format.c:120,1
    - Dst: get_be64
      Src: /src/git/chunk-format.c:121,1
    - Dst: error
      Src: /src/git/chunk-format.c:124,1
    - Dst: _
      Src: /src/git/chunk-format.c:124,1
    - Dst: error
      Src: /src/git/chunk-format.c:128,1
    - Dst: _
      Src: /src/git/chunk-format.c:128,1
    - Dst: get_be64
      Src: /src/git/chunk-format.c:134,1
    - Dst: error
      Src: /src/git/chunk-format.c:138,1
    - Dst: _
      Src: /src/git/chunk-format.c:138,1
    - Dst: error
      Src: /src/git/chunk-format.c:145,1
    - Dst: _
      Src: /src/git/chunk-format.c:145,1
    - Dst: get_be32
      Src: /src/git/chunk-format.c:157,1
    - Dst: error
      Src: /src/git/chunk-format.c:159,1
    - Dst: _
      Src: /src/git/chunk-format.c:159,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 6
    argNames:
    - cf
    - mfile
    - mfile_size
    - toc_offset
    - toc_length
    - expected_alignment
    argTypes:
    - struct chunkfile*
    - unsigned char*
    - size_t
    - uint64_t
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 164
    functionName: read_table_of_contents
    functionSourceFile: /src/git/chunk-format.c
    functionUses: 1
    functionsReached:
    - error
    - get_be32
    - get_be64
    - ALLOC_GROW
    - _
    linkageType: ''
    returnType: int
    signature: "int read_table_of_contents(struct chunkfile *cf,\n\t\t\t   const unsigned
      char *mfile,\n\t\t\t   size_t mfile_size,\n\t\t\t   uint64_t toc_offset,\n\t\t\t
      \  int toc_length,\n\t\t\t   unsigned expected_alignment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - chunk_start
    - chunk_size
    - data
    argTypes:
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: pair_chunk_fn
    functionSourceFile: /src/git/chunk-format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pair_chunk_fn(const unsigned char *chunk_start,\n\t\t\t size_t
      chunk_size,\n\t\t\t void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_chunk
      Src: /src/git/chunk-format.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cf
    - chunk_id
    - p
    - size
    argTypes:
    - struct chunkfile*
    - uint32_t
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: pair_chunk
    functionSourceFile: /src/git/chunk-format.c
    functionUses: 1
    functionsReached:
    - read_chunk
    linkageType: ''
    returnType: int
    signature: "int pair_chunk(struct chunkfile *cf,\n\t       uint32_t chunk_id,\n\t
      \      const unsigned char **p,\n\t       size_t *size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/chunk-format.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - cf
    - chunk_id
    - fn
    - data
    argTypes:
    - struct chunkfile*
    - uint32_t
    - chunk_read_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: read_chunk
    functionSourceFile: /src/git/chunk-format.c
    functionUses: 2
    functionsReached:
    - fn
    linkageType: ''
    returnType: int
    signature: "int read_chunk(struct chunkfile *cf,\n\t       uint32_t chunk_id,\n\t
      \      chunk_read_fn fn,\n\t       void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hash_algo_by_ptr
      Src: /src/git/chunk-format.c:207,1
    - Dst: die
      Src: /src/git/chunk-format.c:213,1
    - Dst: _
      Src: /src/git/chunk-format.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - algop
    argTypes:
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: oid_version
    functionSourceFile: /src/git/chunk-format.c
    functionUses: 1
    functionsReached:
    - die
    - _
    - hash_algo_by_ptr
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t oid_version(const struct git_hash_algo *algop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: sane_istest
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sane_istest(x,mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: isascii
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isascii(x)
  - 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: isspace
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isspace(x)
  - 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: isdigit
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isdigit(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: isalpha
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isalpha(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: isalnum
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isalnum(x)
  - 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: isprint
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isprint(x)
  - 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: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: islower
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: islower(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: isupper
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isupper(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: is_glob_special
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_glob_special(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: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: is_regex_special
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_regex_special(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: iscntrl
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iscntrl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: ispunct
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ispunct(x)
  - 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: isxdigit
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isxdigit(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: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: tolower
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tolower(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: toupper
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: toupper(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: is_pathspec_magic
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_pathspec_magic(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sane_istest
      Src: /src/git/sane-ctype.h:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - high
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: sane_case
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 0
    functionsReached:
    - sane_istest
    linkageType: ''
    returnType: int
    signature: int sane_case(int x, int high)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sane_istest
      Src: /src/git/sane-ctype.h:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - x
    - is_lower
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: sane_iscase
    functionSourceFile: /src/git/sane-ctype.h
    functionUses: 0
    functionsReached:
    - sane_istest
    linkageType: ''
    returnType: int
    signature: int sane_iscase(int x, int is_lower)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrncmpz
      Src: /src/git/reflog.c:26,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/reflog.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - opts
    - pattern
    - len
    argTypes:
    - struct reflog_expire_options*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: find_cfg_ent
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    - FLEX_ALLOC_MEM
    linkageType: ''
    returnType: struct reflog_expire_entry_option
    signature: "struct reflog_expire_entry_option *find_cfg_ent(struct reflog_expire_options
      *opts,\n\t\t\t\t\t\t       const char *pattern, size_t len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/reflog.c:45,1
    - Dst: git_default_config
      Src: /src/git/reflog.c:46,1
    - Dst: strcmp
      Src: /src/git/reflog.c:48,1
    - Dst: git_config_expiry_date
      Src: /src/git/reflog.c:50,1
    - Dst: strcmp
      Src: /src/git/reflog.c:52,1
    - Dst: git_config_expiry_date
      Src: /src/git/reflog.c:54,1
    - Dst: git_default_config
      Src: /src/git/reflog.c:57,1
    - Dst: find_cfg_ent
      Src: /src/git/reflog.c:71,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 83
    functionName: reflog_expire_config
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - parse_config_key
    - git_default_config
    - strcmp
    - git_config_expiry_date
    - find_cfg_ent
    linkageType: ''
    returnType: int
    signature: "int reflog_expire_config(const char *var, const char *value,\n\t\t\t
      const struct config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/reflog.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct reflog_expire_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: reflog_clear_expire_config
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void reflog_clear_expire_config(struct reflog_expire_options *opts)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: wildmatch
      Src: /src/git/reflog.c:108,1
    - Dst: strcmp
      Src: /src/git/reflog.c:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - cb
    - ref
    argTypes:
    - struct reflog_expire_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 133
    functionName: reflog_expire_options_set_refname
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - strcmp
    - wildmatch
    linkageType: ''
    returnType: void
    signature: "void reflog_expire_options_set_refname(struct reflog_expire_options
      *cb,\n\t\t\t\t       const char *ref)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tree
      Src: /src/git/reflog.c:147,1
    - Dst: odb_read_object
      Src: /src/git/reflog.c:158,1
    - Dst: init_tree_desc
      Src: /src/git/reflog.c:167,1
    - Dst: tree_entry
      Src: /src/git/reflog.c:169,1
    - Dst: odb_has_object
      Src: /src/git/reflog.c:170,1
    - Dst: S_ISDIR
      Src: /src/git/reflog.c:172,1
    - Dst: tree_is_complete
      Src: /src/git/reflog.c:172,1
    - Dst: free_tree_buffer
      Src: /src/git/reflog.c:177,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 140
    functionDepth: 6
    functionLinenumber: 140
    functionLinenumberEnd: 182
    functionName: tree_is_complete
    functionSourceFile: /src/git/reflog.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - tree_is_complete
    - tree_entry
    - free_tree_buffer
    - odb_has_object
    - odb_read_object
    - lookup_tree
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: int tree_is_complete(const struct object_id *oid)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/reflog.c:203,1
    - Dst: memset
      Src: /src/git/reflog.c:204,1
    - Dst: add_object_array
      Src: /src/git/reflog.c:205,1
    - Dst: add_object_array
      Src: /src/git/reflog.c:206,1
    - Dst: object_array_pop
      Src: /src/git/reflog.c:212,1
    - Dst: parse_object
      Src: /src/git/reflog.c:213,1
    - Dst: add_object_array
      Src: /src/git/reflog.c:227,1
    - Dst: add_object_array
      Src: /src/git/reflog.c:228,1
    - Dst: tree_is_complete
      Src: /src/git/reflog.c:239,1
    - Dst: get_commit_tree_oid
      Src: /src/git/reflog.c:239,1
    - Dst: object_array_clear
      Src: /src/git/reflog.c:268,1
    - Dst: object_array_clear
      Src: /src/git/reflog.c:269,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 184
    functionDepth: 7
    functionLinenumber: 184
    functionLinenumberEnd: 271
    functionName: commit_is_complete
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - memset
    - tree_is_complete
    - object_array_clear
    - object_array_pop
    - add_object_array
    - parse_object
    - get_commit_tree_oid
    linkageType: ''
    returnType: int
    signature: int commit_is_complete(struct commit *commit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/reflog.c:277,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/reflog.c:279,1
    - Dst: commit_is_complete
      Src: /src/git/reflog.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - it
    - oid
    argTypes:
    - struct commit**
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 273
    functionDepth: 8
    functionLinenumber: 273
    functionLinenumberEnd: 295
    functionName: keep_entry
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - commit_is_complete
    - lookup_commit_reference_gently
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int keep_entry(struct commit **it, struct object_id *oid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pop_commit
      Src: /src/git/reflog.c:315,1
    - Dst: repo_parse_commit
      Src: /src/git/reflog.c:318,1
    - Dst: commit_list_insert
      Src: /src/git/reflog.c:322,1
    - Dst: commit_list_insert
      Src: /src/git/reflog.c:331,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - cb
    argTypes:
    - struct expire_reflog_policy_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 335
    functionName: mark_reachable
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - pop_commit
    - repo_parse_commit
    - commit_list_insert
    linkageType: ''
    returnType: void
    signature: void mark_reachable(struct expire_reflog_policy_cb *cb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/reflog.c:344,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/reflog.c:347,1
    - Dst: mark_reachable
      Src: /src/git/reflog.c:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - cb
    - commit
    - oid
    argTypes:
    - struct expire_reflog_policy_cb*
    - struct commit*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 365
    functionName: is_unreachable
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - mark_reachable
    - lookup_commit_reference_gently
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int is_unreachable(struct expire_reflog_policy_cb *cb, struct commit
      *commit, struct object_id *oid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: keep_entry
      Src: /src/git/reflog.c:383,1
    - Dst: keep_entry
      Src: /src/git/reflog.c:383,1
    - Dst: is_unreachable
      Src: /src/git/reflog.c:392,1
    - Dst: is_unreachable
      Src: /src/git/reflog.c:392,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 7
    argNames:
    - ooid
    - noid
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 402
    functionName: should_expire_reflog_ent
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - keep_entry
    - is_unreachable
    linkageType: ''
    returnType: int
    signature: "int should_expire_reflog_ent(struct object_id *ooid, struct object_id
      *noid,\n\t\t\t     const char *email UNUSED,\n\t\t\t     timestamp_t timestamp,
      int tz UNUSED,\n\t\t\t     const char *message UNUSED, void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: should_expire_reflog_ent
      Src: /src/git/reflog.c:413,1
    - Dst: printf
      Src: /src/git/reflog.c:417,1
    - Dst: printf
      Src: /src/git/reflog.c:419,1
    - Dst: printf
      Src: /src/git/reflog.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - ooid
    - noid
    - email
    - timestamp
    - tz
    - message
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 424
    functionName: should_expire_reflog_ent_verbose
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - should_expire_reflog_ent
    - printf
    linkageType: ''
    returnType: int
    signature: "int should_expire_reflog_ent_verbose(struct object_id *ooid,\n\t\t\t\t
      \    struct object_id *noid,\n\t\t\t\t     const char *email,\n\t\t\t\t     timestamp_t
      timestamp, int tz,\n\t\t\t\t     const char *message, void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference_gently
      Src: /src/git/reflog.c:432,1
    - Dst: commit_list_insert
      Src: /src/git/reflog.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 437
    functionName: push_tip_to_list
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - commit_list_insert
    - lookup_commit_reference_gently
    linkageType: ''
    returnType: int
    signature: int push_tip_to_list(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_worktree_ref
      Src: /src/git/reflog.c:442,1
    - Dst: strcmp
      Src: /src/git/reflog.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: is_head
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - parse_worktree_ref
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_head(const char *refname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_head
      Src: /src/git/reflog.c:454,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/reflog.c:457,1
    - Dst: is_null_oid
      Src: /src/git/reflog.c:459,1
    - Dst: refs_for_each_ref
      Src: /src/git/reflog.c:471,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog.c:471,1
    - Dst: commit_list_insert
      Src: /src/git/reflog.c:474,1
    - Dst: commit_list_insert
      Src: /src/git/reflog.c:477,1
    - Dst: mark_reachable
      Src: /src/git/reflog.c:482,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - refname
    - oid
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 446
    functionDepth: 5
    functionLinenumber: 446
    functionLinenumberEnd: 483
    functionName: reflog_expiry_prepare
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference_gently
    - refs_for_each_ref
    - is_null_oid
    - is_head
    - mark_reachable
    - commit_list_insert
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void reflog_expiry_prepare(const char *refname,\n\t\t\t   const struct
      object_id *oid,\n\t\t\t   void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear_commit_marks
      Src: /src/git/reflog.c:495,1
    - Dst: commit_list_free
      Src: /src/git/reflog.c:496,1
    - Dst: clear_commit_marks
      Src: /src/git/reflog.c:499,1
    - Dst: clear_commit_marks
      Src: /src/git/reflog.c:503,1
    - Dst: commit_list_free
      Src: /src/git/reflog.c:504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - cb_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 505
    functionName: reflog_expiry_cleanup
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - clear_commit_marks
    - commit_list_free
    linkageType: ''
    returnType: void
    signature: void reflog_expiry_cleanup(void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 8
    argNames:
    - refname
    - UNUSED
    - UNUSED
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 518
    functionName: count_reflog_ent
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int count_reflog_ent(const char *refname UNUSED,\n\t\t     struct
      object_id *ooid UNUSED,\n\t\t     struct object_id *noid UNUSED,\n\t\t     const
      char *email UNUSED,\n\t\t     timestamp_t timestamp, int tz UNUSED,\n\t\t     const
      char *message UNUSED, void *cb_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/reflog.c:525,1
    - Dst: error
      Src: /src/git/reflog.c:536,1
    - Dst: _
      Src: /src/git/reflog.c:536,1
    - Dst: repo_dwim_log
      Src: /src/git/reflog.c:538,1
    - Dst: error
      Src: /src/git/reflog.c:539,1
    - Dst: _
      Src: /src/git/reflog.c:539,1
    - Dst: strtoul
      Src: /src/git/reflog.c:543,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/reflog.c:546,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog.c:546,1
    - Dst: approxidate
      Src: /src/git/reflog.c:549,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/reflog.c:550,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog.c:550,1
    - Dst: refs_reflog_expire
      Src: /src/git/reflog.c:556,1
    - Dst: get_main_ref_store
      Src: /src/git/reflog.c:556,1
    - Dst: free
      Src: /src/git/reflog.c:564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - rev
    - flags
    - verbose
    argTypes:
    - char*
    - enum expire_reflog_flags
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 566
    functionName: reflog_delete
    functionSourceFile: /src/git/reflog.c
    functionUses: 0
    functionsReached:
    - error
    - refs_for_each_reflog_ent
    - approxidate
    - strstr
    - repo_dwim_log
    - refs_reflog_expire
    - _
    - free
    - get_main_ref_store
    - strtoul
    linkageType: ''
    returnType: int
    signature: int reflog_delete(const char *rev, enum expire_reflog_flags flags,
      int verbose)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/transport-helper.c:66,1
    - Dst: write_in_full
      Src: /src/git/transport-helper.c:67,1
    - Dst: die_errno
      Src: /src/git/transport-helper.c:68,1
    - Dst: _
      Src: /src/git/transport-helper.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - helper
    - buffer
    argTypes:
    - struct helper_data*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: sendline
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - write_in_full
    - die_errno
    - fprintf
    - _
    linkageType: ''
    returnType: void
    signature: void sendline(struct helper_data *helper, struct strbuf *buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/transport-helper.c:73,1
    - Dst: fprintf
      Src: /src/git/transport-helper.c:75,1
    - Dst: strbuf_getline
      Src: /src/git/transport-helper.c:76,1
    - Dst: fprintf
      Src: /src/git/transport-helper.c:78,1
    - Dst: fprintf
      Src: /src/git/transport-helper.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - helper
    - buffer
    argTypes:
    - FILE*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 5
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: recvline_fh
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_getline
    - fprintf
    linkageType: ''
    returnType: int
    signature: int recvline_fh(FILE *helper, struct strbuf *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recvline_fh
      Src: /src/git/transport-helper.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - helper
    - buffer
    argTypes:
    - struct helper_data*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: recvline
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - recvline_fh
    linkageType: ''
    returnType: int
    signature: int recvline(struct helper_data *helper, struct strbuf *buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/transport-helper.c:95,1
    - Dst: write_in_full
      Src: /src/git/transport-helper.c:96,1
    - Dst: strlen
      Src: /src/git/transport-helper.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - str
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: write_constant_gently
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - write_in_full
    - strlen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int write_constant_gently(int fd, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_constant_gently
      Src: /src/git/transport-helper.c:103,1
    - Dst: die_errno
      Src: /src/git/transport-helper.c:104,1
    - Dst: _
      Src: /src/git/transport-helper.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - fd
    - str
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: write_constant
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - die_errno
    - _
    - write_constant_gently
    linkageType: ''
    returnType: void
    signature: void write_constant(int fd, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/transport-helper.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: remove_ext_force
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *remove_ext_force(const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: transport_take_over
      Src: /src/git/transport-helper.c:121,1
    - Dst: fclose
      Src: /src/git/transport-helper.c:122,1
    - Dst: free
      Src: /src/git/transport-helper.c:123,1
    - Dst: free
      Src: /src/git/transport-helper.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: do_take_over
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - fclose
    - transport_take_over
    - free
    linkageType: ''
    returnType: void
    signature: void do_take_over(struct transport *transport)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/transport-helper.c:140,1
    - Dst: child_process_init
      Src: /src/git/transport-helper.c:141,1
    - Dst: strvec_pushf
      Src: /src/git/transport-helper.c:145,1
    - Dst: strvec_push
      Src: /src/git/transport-helper.c:146,1
    - Dst: strvec_push
      Src: /src/git/transport-helper.c:147,1
    - Dst: remove_ext_force
      Src: /src/git/transport-helper.c:147,1
    - Dst: have_git_dir
      Src: /src/git/transport-helper.c:151,1
    - Dst: strvec_pushf
      Src: /src/git/transport-helper.c:152,1
    - Dst: repo_get_git_dir
      Src: /src/git/transport-helper.c:153,1
    - Dst: start_command
      Src: /src/git/transport-helper.c:157,1
    - Dst: die
      Src: /src/git/transport-helper.c:159,1
    - Dst: _
      Src: /src/git/transport-helper.c:159,1
    - Dst: exit
      Src: /src/git/transport-helper.c:161,1
    - Dst: refspec_init_fetch
      Src: /src/git/transport-helper.c:165,1
    - Dst: dup
      Src: /src/git/transport-helper.c:173,1
    - Dst: die_errno
      Src: /src/git/transport-helper.c:175,1
    - Dst: _
      Src: /src/git/transport-helper.c:175,1
    - Dst: xfdopen
      Src: /src/git/transport-helper.c:176,1
    - Dst: sigchain_push
      Src: /src/git/transport-helper.c:178,1
    - Dst: write_constant_gently
      Src: /src/git/transport-helper.c:179,1
    - Dst: die
      Src: /src/git/transport-helper.c:180,1
    - Dst: sigchain_pop
      Src: /src/git/transport-helper.c:181,1
    - Dst: recvline
      Src: /src/git/transport-helper.c:186,1
    - Dst: die
      Src: /src/git/transport-helper.c:187,1
    - Dst: fprintf
      Src: /src/git/transport-helper.c:199,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:200,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:202,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:204,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:206,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:208,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:210,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:212,1
    - Dst: skip_prefix
      Src: /src/git/transport-helper.c:214,1
    - Dst: refspec_append
      Src: /src/git/transport-helper.c:215,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:216,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:218,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:220,1
    - Dst: skip_prefix
      Src: /src/git/transport-helper.c:222,1
    - Dst: xstrdup
      Src: /src/git/transport-helper.c:223,1
    - Dst: skip_prefix
      Src: /src/git/transport-helper.c:224,1
    - Dst: xstrdup
      Src: /src/git/transport-helper.c:225,1
    - Dst: starts_with
      Src: /src/git/transport-helper.c:226,1
    - Dst: starts_with
      Src: /src/git/transport-helper.c:228,1
    - Dst: die
      Src: /src/git/transport-helper.c:231,1
    - Dst: _
      Src: /src/git/transport-helper.c:231,1
    - Dst: warning
      Src: /src/git/transport-helper.c:237,1
    - Dst: _
      Src: /src/git/transport-helper.c:237,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:239,1
    - Dst: fprintf
      Src: /src/git/transport-helper.c:241,1
    - Dst: standard_options
      Src: /src/git/transport-helper.c:242,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 94
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 129
    functionDepth: 8
    functionLinenumber: 129
    functionLinenumberEnd: 244
    functionName: get_helper
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - write_constant_gently
    - refspec_init_fetch
    - recvline
    - xmalloc
    - strcmp
    - strbuf_release
    - die
    - child_process_init
    - sigchain_push
    - standard_options
    - dup
    - sigchain_pop
    - die_errno
    - _
    - xfdopen
    - skip_prefix
    - strvec_pushf
    - warning
    - xstrdup
    - refspec_append
    - remove_ext_force
    - exit
    - starts_with
    - have_git_dir
    - repo_get_git_dir
    - fprintf
    - start_command
    linkageType: ''
    returnType: struct child_process
    signature: struct child_process *get_helper(struct transport *transport)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/transport-helper.c:253,1
    - Dst: sigchain_push
      Src: /src/git/transport-helper.c:261,1
    - Dst: xwrite
      Src: /src/git/transport-helper.c:262,1
    - Dst: sigchain_pop
      Src: /src/git/transport-helper.c:263,1
    - Dst: close
      Src: /src/git/transport-helper.c:265,1
    - Dst: close
      Src: /src/git/transport-helper.c:266,1
    - Dst: fclose
      Src: /src/git/transport-helper.c:267,1
    - Dst: finish_command
      Src: /src/git/transport-helper.c:268,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:269,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 273
    functionName: disconnect_helper
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - fclose
    - xwrite
    - finish_command
    - sigchain_push
    - sigchain_pop
    - close
    - FREE_AND_NULL
    - fprintf
    linkageType: ''
    returnType: int
    signature: int disconnect_helper(struct transport *transport)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sendline
      Src: /src/git/transport-helper.c:294,1
    - Dst: recvline
      Src: /src/git/transport-helper.c:295,1
    - Dst: exit
      Src: /src/git/transport-helper.c:296,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:298,1
    - Dst: starts_with
      Src: /src/git/transport-helper.c:300,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:302,1
    - Dst: warning
      Src: /src/git/transport-helper.c:305,1
    - Dst: _
      Src: /src/git/transport-helper.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - data
    - buf
    argTypes:
    - struct helper_data*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 289
    functionDepth: 7
    functionLinenumber: 289
    functionLinenumberEnd: 309
    functionName: strbuf_set_helper_option
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - sendline
    - exit
    - recvline
    - starts_with
    - strcmp
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: "int strbuf_set_helper_option(struct helper_data *data,\n\t\t\t\t    struct
      strbuf *buf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:319,1
    - Dst: quote_c_style
      Src: /src/git/transport-helper.c:320,1
    - Dst: strbuf_addch
      Src: /src/git/transport-helper.c:321,1
    - Dst: strbuf_set_helper_option
      Src: /src/git/transport-helper.c:323,1
    - Dst: strbuf_reset
      Src: /src/git/transport-helper.c:325,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - data
    - name
    - list
    argTypes:
    - struct helper_data*
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 311
    functionDepth: 8
    functionLinenumber: 311
    functionLinenumberEnd: 329
    functionName: string_list_set_helper_option
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_set_helper_option
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - quote_c_style
    linkageType: ''
    returnType: int
    signature: "int string_list_set_helper_option(struct helper_data *data,\n\t\t\t\t\t
      const char *name,\n\t\t\t\t\t struct string_list *list)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:338,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:343,1
    - Dst: string_list_set_helper_option
      Src: /src/git/transport-helper.c:344,1
    - Dst: ARRAY_SIZE
      Src: /src/git/transport-helper.c:347,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:348,1
    - Dst: ARRAY_SIZE
      Src: /src/git/transport-helper.c:352,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:353,1
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:359,1
    - Dst: strbuf_addstr
      Src: /src/git/transport-helper.c:361,1
    - Dst: quote_c_style
      Src: /src/git/transport-helper.c:363,1
    - Dst: strbuf_addch
      Src: /src/git/transport-helper.c:364,1
    - Dst: strbuf_set_helper_option
      Src: /src/git/transport-helper.c:366,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:367,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - transport
    - name
    - value
    argTypes:
    - struct transport*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 331
    functionDepth: 9
    functionLinenumber: 331
    functionLinenumberEnd: 369
    functionName: set_helper_option
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - strbuf_release
    - get_helper
    - string_list_set_helper_option
    - strbuf_set_helper_option
    - strbuf_addf
    - strbuf_addch
    - strbuf_addstr
    - strcmp
    - quote_c_style
    linkageType: ''
    returnType: int
    signature: "int set_helper_option(struct transport *transport,\n\t\t\t  const
      char *name, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:376,1
    - Dst: xsnprintf
      Src: /src/git/transport-helper.c:378,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:379,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:389,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 371
    functionDepth: 10
    functionLinenumber: 371
    functionLinenumberEnd: 395
    functionName: standard_options
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 1
    functionsReached:
    - xsnprintf
    - set_helper_option
    linkageType: ''
    returnType: void
    signature: void standard_options(struct transport *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refspec_clear
      Src: /src/git/transport-helper.c:401,1
    - Dst: free
      Src: /src/git/transport-helper.c:402,1
    - Dst: free
      Src: /src/git/transport-helper.c:403,1
    - Dst: disconnect_helper
      Src: /src/git/transport-helper.c:404,1
    - Dst: free
      Src: /src/git/transport-helper.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 5
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: release_helper
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - disconnect_helper
    - refspec_clear
    - free
    linkageType: ''
    returnType: int
    signature: int release_helper(struct transport *transport)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:421,1
    - Dst: oid_to_hex
      Src: /src/git/transport-helper.c:422,1
    - Dst: strbuf_addch
      Src: /src/git/transport-helper.c:426,1
    - Dst: sendline
      Src: /src/git/transport-helper.c:427,1
    - Dst: recvline
      Src: /src/git/transport-helper.c:432,1
    - Dst: exit
      Src: /src/git/transport-helper.c:433,1
    - Dst: skip_prefix
      Src: /src/git/transport-helper.c:435,1
    - Dst: warning
      Src: /src/git/transport-helper.c:437,1
    - Dst: _
      Src: /src/git/transport-helper.c:437,1
    - Dst: string_list_append
      Src: /src/git/transport-helper.c:439,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:444,1
    - Dst: warning
      Src: /src/git/transport-helper.c:449,1
    - Dst: _
      Src: /src/git/transport-helper.c:449,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:451,1
    - Dst: odb_reprepare
      Src: /src/git/transport-helper.c:453,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - transport
    - nr_heads
    - to_fetch
    argTypes:
    - struct transport*
    - int
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 409
    functionDepth: 7
    functionLinenumber: 409
    functionLinenumberEnd: 455
    functionName: fetch_with_fetch
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - sendline
    - oid_to_hex
    - strbuf_release
    - odb_reprepare
    - exit
    - recvline
    - strbuf_addf
    - strbuf_addch
    - strcmp
    - warning
    - _
    - string_list_append
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int fetch_with_fetch(struct transport *transport,\n\t\t\t    int nr_heads,
      struct ref **to_fetch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:459,1
    - Dst: child_process_init
      Src: /src/git/transport-helper.c:462,1
    - Dst: xdup
      Src: /src/git/transport-helper.c:463,1
    - Dst: strvec_push
      Src: /src/git/transport-helper.c:464,1
    - Dst: strvec_push
      Src: /src/git/transport-helper.c:465,1
    - Dst: strvec_push
      Src: /src/git/transport-helper.c:466,1
    - Dst: xdup
      Src: /src/git/transport-helper.c:469,1
    - Dst: strvec_pushf
      Src: /src/git/transport-helper.c:470,1
    - Dst: start_command
      Src: /src/git/transport-helper.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - transport
    - fastimport
    argTypes:
    - struct transport*
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 457
    functionDepth: 9
    functionLinenumber: 457
    functionLinenumberEnd: 476
    functionName: get_importer
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - get_helper
    - xdup
    - child_process_init
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: int
    signature: int get_importer(struct transport *transport, struct child_process
      *fastimport)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:483,1
    - Dst: child_process_init
      Src: /src/git/transport-helper.c:485,1
    - Dst: dup
      Src: /src/git/transport-helper.c:489,1
    - Dst: strvec_push
      Src: /src/git/transport-helper.c:490,1
    - Dst: strvec_push
      Src: /src/git/transport-helper.c:491,1
    - Dst: strvec_push
      Src: /src/git/transport-helper.c:492,1
    - Dst: strvec_pushf
      Src: /src/git/transport-helper.c:495,1
    - Dst: strvec_pushf
      Src: /src/git/transport-helper.c:497,1
    - Dst: strvec_push
      Src: /src/git/transport-helper.c:500,1
    - Dst: start_command
      Src: /src/git/transport-helper.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - transport
    - fastexport
    - revlist_args
    argTypes:
    - struct transport*
    - struct child_process*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 478
    functionDepth: 9
    functionLinenumber: 478
    functionLinenumberEnd: 504
    functionName: get_exporter
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - dup
    - get_helper
    - child_process_init
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: int
    signature: "int get_exporter(struct transport *transport,\n\t\t\tstruct child_process
      *fastexport,\n\t\t\tstruct string_list *revlist_args)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:515,1
    - Dst: get_importer
      Src: /src/git/transport-helper.c:517,1
    - Dst: die
      Src: /src/git/transport-helper.c:518,1
    - Dst: _
      Src: /src/git/transport-helper.c:518,1
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:525,1
    - Dst: sendline
      Src: /src/git/transport-helper.c:527,1
    - Dst: strbuf_reset
      Src: /src/git/transport-helper.c:528,1
    - Dst: write_constant
      Src: /src/git/transport-helper.c:531,1
    - Dst: finish_command
      Src: /src/git/transport-helper.c:540,1
    - Dst: die
      Src: /src/git/transport-helper.c:541,1
    - Dst: _
      Src: /src/git/transport-helper.c:541,1
    - Dst: apply_refspecs
      Src: /src/git/transport-helper.c:565,1
    - Dst: xstrdup
      Src: /src/git/transport-helper.c:567,1
    - Dst: refs_read_ref
      Src: /src/git/transport-helper.c:569,1
    - Dst: get_main_ref_store
      Src: /src/git/transport-helper.c:569,1
    - Dst: die
      Src: /src/git/transport-helper.c:570,1
    - Dst: _
      Src: /src/git/transport-helper.c:570,1
    - Dst: free
      Src: /src/git/transport-helper.c:571,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:574,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - transport
    - nr_heads
    - to_fetch
    argTypes:
    - struct transport*
    - int
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 506
    functionDepth: 10
    functionLinenumber: 506
    functionLinenumberEnd: 576
    functionName: fetch_with_import
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - sendline
    - strbuf_release
    - die
    - get_helper
    - finish_command
    - strbuf_reset
    - strbuf_addf
    - refs_read_ref
    - _
    - free
    - get_importer
    - write_constant
    - get_main_ref_store
    - apply_refspecs
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int fetch_with_import(struct transport *transport,\n\t\t\t     int
      nr_heads, struct ref **to_fetch)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:586,1
    - Dst: dup
      Src: /src/git/transport-helper.c:594,1
    - Dst: die_errno
      Src: /src/git/transport-helper.c:596,1
    - Dst: _
      Src: /src/git/transport-helper.c:596,1
    - Dst: xfdopen
      Src: /src/git/transport-helper.c:597,1
    - Dst: setvbuf
      Src: /src/git/transport-helper.c:598,1
    - Dst: sendline
      Src: /src/git/transport-helper.c:600,1
    - Dst: recvline_fh
      Src: /src/git/transport-helper.c:601,1
    - Dst: exit
      Src: /src/git/transport-helper.c:602,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:604,1
    - Dst: fprintf
      Src: /src/git/transport-helper.c:607,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:610,1
    - Dst: fprintf
      Src: /src/git/transport-helper.c:612,1
    - Dst: die
      Src: /src/git/transport-helper.c:615,1
    - Dst: _
      Src: /src/git/transport-helper.c:615,1
    - Dst: fclose
      Src: /src/git/transport-helper.c:619,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - transport
    - cmdbuf
    argTypes:
    - struct transport*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 578
    functionDepth: 9
    functionLinenumber: 578
    functionLinenumberEnd: 621
    functionName: run_connect
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - fclose
    - sendline
    - dup
    - get_helper
    - die
    - exit
    - die_errno
    - recvline_fh
    - setvbuf
    - strcmp
    - _
    - xfdopen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int run_connect(struct transport *transport, struct strbuf *cmdbuf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/transport-helper.c:634,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:635,1
    - Dst: warning
      Src: /src/git/transport-helper.c:637,1
    - Dst: _
      Src: /src/git/transport-helper.c:637,1
    - Dst: warning
      Src: /src/git/transport-helper.c:639,1
    - Dst: _
      Src: /src/git/transport-helper.c:639,1
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:643,1
    - Dst: run_connect
      Src: /src/git/transport-helper.c:644,1
    - Dst: get_protocol_version_config
      Src: /src/git/transport-helper.c:646,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:647,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:648,1
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:649,1
    - Dst: run_connect
      Src: /src/git/transport-helper.c:650,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:655,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - transport
    - name
    - exec
    argTypes:
    - struct transport*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 623
    functionDepth: 10
    functionLinenumber: 623
    functionLinenumberEnd: 657
    functionName: process_connect_service
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_protocol_version_config
    - strbuf_addf
    - set_helper_option
    - strcmp
    - run_connect
    - _
    - warning
    linkageType: ''
    returnType: int
    signature: "int process_connect_service(struct transport *transport,\n\t\t\t\t
      \  const char *name, const char *exec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: process_connect_service
      Src: /src/git/transport-helper.c:673,1
    - Dst: do_take_over
      Src: /src/git/transport-helper.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - transport
    - for_push
    argTypes:
    - struct transport*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 659
    functionDepth: 11
    functionLinenumber: 659
    functionLinenumberEnd: 677
    functionName: process_connect
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - do_take_over
    - process_connect_service
    linkageType: ''
    returnType: int
    signature: "int process_connect(struct transport *transport,\n\t\t\t\t     int
      for_push)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:685,1
    - Dst: process_connect_service
      Src: /src/git/transport-helper.c:687,1
    - Dst: die
      Src: /src/git/transport-helper.c:688,1
    - Dst: _
      Src: /src/git/transport-helper.c:688,1
    - Dst: do_take_over
      Src: /src/git/transport-helper.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - transport
    - name
    - exec
    - fd
    argTypes:
    - struct transport*
    - char*
    - char*
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 679
    functionDepth: 11
    functionLinenumber: 679
    functionLinenumberEnd: 695
    functionName: connect_helper
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 1
    functionsReached:
    - do_take_over
    - die
    - get_helper
    - _
    - process_connect_service
    linkageType: ''
    returnType: int
    signature: "int connect_helper(struct transport *transport, const char *name,\n\t\t
      \  const char *exec, int fd[2])"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:706,1
    - Dst: process_connect
      Src: /src/git/transport-helper.c:708,1
    - Dst: struct transport*::vtable::fetch_refs
      Src: /src/git/transport-helper.c:709,1
    - Dst: warning
      Src: /src/git/transport-helper.c:717,1
    - Dst: _
      Src: /src/git/transport-helper.c:717,1
    - Dst: get_refs_list_using_list
      Src: /src/git/transport-helper.c:726,1
    - Dst: free_refs
      Src: /src/git/transport-helper.c:727,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:740,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:743,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:746,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:749,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/transport-helper.c:752,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:754,1
    - Dst: warning
      Src: /src/git/transport-helper.c:758,1
    - Dst: _
      Src: /src/git/transport-helper.c:758,1
    - Dst: fetch_with_fetch
      Src: /src/git/transport-helper.c:762,1
    - Dst: fetch_with_import
      Src: /src/git/transport-helper.c:765,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - transport
    - nr_heads
    - to_fetch
    argTypes:
    - struct transport*
    - int
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 700
    functionDepth: 12
    functionLinenumber: 700
    functionLinenumberEnd: 768
    functionName: fetch_refs
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 2
    functionsReached:
    - get_refs_list_using_list
    - get_helper
    - struct transport*::vtable::fetch_refs
    - fetch_with_fetch
    - fetch_with_import
    - free_refs
    - set_helper_option
    - process_connect
    - _
    - warning
    - expand_list_objects_filter_spec
    linkageType: ''
    returnType: int
    signature: "int fetch_refs(struct transport *transport,\n\t\t      int nr_heads,
      struct ref **to_fetch)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/transport-helper.c:783,1
    - Dst: die
      Src: /src/git/transport-helper.c:790,1
    - Dst: _
      Src: /src/git/transport-helper.c:790,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/transport-helper.c:793,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/transport-helper.c:799,1
    - Dst: strchr
      Src: /src/git/transport-helper.c:805,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:809,1
    - Dst: xstrdup_or_null
      Src: /src/git/transport-helper.c:810,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:811,1
    - Dst: parse_oid_hex
      Src: /src/git/transport-helper.c:812,1
    - Dst: oiddup
      Src: /src/git/transport-helper.c:813,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:814,1
    - Dst: parse_oid_hex
      Src: /src/git/transport-helper.c:815,1
    - Dst: oiddup
      Src: /src/git/transport-helper.c:816,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:817,1
    - Dst: starts_with
      Src: /src/git/transport-helper.c:826,1
    - Dst: starts_with
      Src: /src/git/transport-helper.c:829,1
    - Dst: die
      Src: /src/git/transport-helper.c:833,1
    - Dst: _
      Src: /src/git/transport-helper.c:833,1
    - Dst: strchr
      Src: /src/git/transport-helper.c:835,1
    - Dst: unquote_c_style
      Src: /src/git/transport-helper.c:841,1
    - Dst: strbuf_detach
      Src: /src/git/transport-helper.c:842,1
    - Dst: xstrdup
      Src: /src/git/transport-helper.c:844,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:845,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:847,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:849,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:851,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:853,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:855,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:857,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:859,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:861,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:863,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:865,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:867,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:869,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:871,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:873,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:875,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:877,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:879,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:881,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:883,1
    - Dst: FREE_AND_NULL
      Src: /src/git/transport-helper.c:885,1
    - Dst: find_ref_by_name
      Src: /src/git/transport-helper.c:890,1
    - Dst: find_ref_by_name
      Src: /src/git/transport-helper.c:892,1
    - Dst: warning
      Src: /src/git/transport-helper.c:894,1
    - Dst: _
      Src: /src/git/transport-helper.c:894,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 109
    argCount: 3
    argNames:
    - buf
    - state
    - remote_refs
    argTypes:
    - struct strbuf*
    - struct push_update_ref_state*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 776
    functionDepth: 3
    functionLinenumber: 776
    functionLinenumberEnd: 913
    functionName: push_update_ref_status
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - oiddup
    - strbuf_release
    - die
    - xstrdup_or_null
    - find_ref_by_name
    - strchr
    - starts_with
    - parse_oid_hex
    - strcmp
    - unquote_c_style
    - strbuf_detach
    - CALLOC_ARRAY
    - warning
    - FREE_AND_NULL
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int push_update_ref_status(struct strbuf *buf,\n\t\t\t\t   struct
      push_update_ref_state *state,\n\t\t\t\t   struct ref *remote_refs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: recvline
      Src: /src/git/transport-helper.c:925,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:926,1
    - Dst: push_update_ref_status
      Src: /src/git/transport-helper.c:931,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:933,1
    - Dst: apply_refspecs
      Src: /src/git/transport-helper.c:946,1
    - Dst: refs_update_ref
      Src: /src/git/transport-helper.c:949,1
    - Dst: get_main_ref_store
      Src: /src/git/transport-helper.c:949,1
    - Dst: free
      Src: /src/git/transport-helper.c:953,1
    - Dst: apply_refspecs
      Src: /src/git/transport-helper.c:956,1
    - Dst: refs_update_ref
      Src: /src/git/transport-helper.c:962,1
    - Dst: get_main_ref_store
      Src: /src/git/transport-helper.c:962,1
    - Dst: free
      Src: /src/git/transport-helper.c:968,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 3
    argNames:
    - data
    - remote_refs
    - flags
    argTypes:
    - struct helper_data*
    - struct ref*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 915
    functionDepth: 9
    functionLinenumber: 915
    functionLinenumberEnd: 973
    functionName: push_update_refs_status
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - recvline
    - push_update_ref_status
    - free
    - refs_update_ref
    - apply_refspecs
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int push_update_refs_status(struct helper_data *data,\n\t\t\t\t    struct
      ref *remote_refs,\n\t\t\t\t    int flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:979,1
    - Dst: die
      Src: /src/git/transport-helper.c:980,1
    - Dst: _
      Src: /src/git/transport-helper.c:980,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:982,1
    - Dst: die
      Src: /src/git/transport-helper.c:983,1
    - Dst: _
      Src: /src/git/transport-helper.c:983,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:985,1
    - Dst: die
      Src: /src/git/transport-helper.c:986,1
    - Dst: _
      Src: /src/git/transport-helper.c:986,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:990,1
    - Dst: die
      Src: /src/git/transport-helper.c:991,1
    - Dst: _
      Src: /src/git/transport-helper.c:991,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:994,1
    - Dst: die
      Src: /src/git/transport-helper.c:995,1
    - Dst: _
      Src: /src/git/transport-helper.c:995,1
    - Dst: for_each_string_list_item
      Src: /src/git/transport-helper.c:1000,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:1001,1
    - Dst: die
      Src: /src/git/transport-helper.c:1002,1
    - Dst: _
      Src: /src/git/transport-helper.c:1002,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - transport
    - name
    - flags
    argTypes:
    - struct transport*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 975
    functionDepth: 10
    functionLinenumber: 975
    functionLinenumberEnd: 1004
    functionName: set_common_push_options
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - die
    - _
    - set_helper_option
    linkageType: ''
    returnType: void
    signature: "void set_common_push_options(struct transport *transport,\n\t\t\t\t
      \  const char *name, int flags)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:1018,1
    - Dst: reject_atomic_push
      Src: /src/git/transport-helper.c:1033,1
    - Dst: string_list_clear
      Src: /src/git/transport-helper.c:1034,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:1035,1
    - Dst: strbuf_addstr
      Src: /src/git/transport-helper.c:1048,1
    - Dst: strbuf_addch
      Src: /src/git/transport-helper.c:1051,1
    - Dst: strbuf_addstr
      Src: /src/git/transport-helper.c:1053,1
    - Dst: strbuf_addstr
      Src: /src/git/transport-helper.c:1055,1
    - Dst: oid_to_hex
      Src: /src/git/transport-helper.c:1055,1
    - Dst: strbuf_addch
      Src: /src/git/transport-helper.c:1057,1
    - Dst: strbuf_addstr
      Src: /src/git/transport-helper.c:1058,1
    - Dst: strbuf_addch
      Src: /src/git/transport-helper.c:1059,1
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:1070,1
    - Dst: oid_to_hex
      Src: /src/git/transport-helper.c:1071,1
    - Dst: string_list_append_nodup
      Src: /src/git/transport-helper.c:1072,1
    - Dst: strbuf_detach
      Src: /src/git/transport-helper.c:1073,1
    - Dst: string_list_clear
      Src: /src/git/transport-helper.c:1077,1
    - Dst: for_each_string_list_item
      Src: /src/git/transport-helper.c:1081,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:1082,1
    - Dst: set_common_push_options
      Src: /src/git/transport-helper.c:1083,1
    - Dst: strbuf_addch
      Src: /src/git/transport-helper.c:1085,1
    - Dst: sendline
      Src: /src/git/transport-helper.c:1086,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:1087,1
    - Dst: string_list_clear
      Src: /src/git/transport-helper.c:1088,1
    - Dst: push_update_refs_status
      Src: /src/git/transport-helper.c:1090,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - transport
    - remote_refs
    - flags
    argTypes:
    - struct transport*
    - struct ref*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1006
    functionDepth: 11
    functionLinenumber: 1006
    functionLinenumberEnd: 1091
    functionName: push_refs_with_push
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - reject_atomic_push
    - strbuf_release
    - get_helper
    - oid_to_hex
    - string_list_append_nodup
    - for_each_string_list_item
    - sendline
    - strbuf_addf
    - push_update_refs_status
    - strbuf_addch
    - set_common_push_options
    - strbuf_detach
    - strbuf_addstr
    - set_helper_option
    linkageType: ''
    returnType: int
    signature: "int push_refs_with_push(struct transport *transport,\n\t\t\t       struct
      ref *remote_refs, int flags)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/transport-helper.c:1103,1
    - Dst: _
      Src: /src/git/transport-helper.c:1103,1
    - Dst: set_common_push_options
      Src: /src/git/transport-helper.c:1105,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:1107,1
    - Dst: warning
      Src: /src/git/transport-helper.c:1108,1
    - Dst: _
      Src: /src/git/transport-helper.c:1108,1
    - Dst: get_helper
      Src: /src/git/transport-helper.c:1111,1
    - Dst: write_constant
      Src: /src/git/transport-helper.c:1113,1
    - Dst: apply_refspecs
      Src: /src/git/transport-helper.c:1119,1
    - Dst: repo_get_oid
      Src: /src/git/transport-helper.c:1120,1
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:1121,1
    - Dst: string_list_append_nodup
      Src: /src/git/transport-helper.c:1122,1
    - Dst: strbuf_detach
      Src: /src/git/transport-helper.c:1123,1
    - Dst: oidcpy
      Src: /src/git/transport-helper.c:1124,1
    - Dst: free
      Src: /src/git/transport-helper.c:1126,1
    - Dst: strcmp
      Src: /src/git/transport-helper.c:1129,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/transport-helper.c:1135,1
    - Dst: get_main_ref_store
      Src: /src/git/transport-helper.c:1135,1
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:1143,1
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:1145,1
    - Dst: string_list_append
      Src: /src/git/transport-helper.c:1147,1
    - Dst: string_list_append
      Src: /src/git/transport-helper.c:1148,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:1149,1
    - Dst: string_list_append
      Src: /src/git/transport-helper.c:1152,1
    - Dst: get_exporter
      Src: /src/git/transport-helper.c:1156,1
    - Dst: die
      Src: /src/git/transport-helper.c:1157,1
    - Dst: _
      Src: /src/git/transport-helper.c:1157,1
    - Dst: string_list_clear
      Src: /src/git/transport-helper.c:1159,1
    - Dst: finish_command
      Src: /src/git/transport-helper.c:1161,1
    - Dst: die
      Src: /src/git/transport-helper.c:1162,1
    - Dst: _
      Src: /src/git/transport-helper.c:1162,1
    - Dst: push_update_refs_status
      Src: /src/git/transport-helper.c:1163,1
    - Dst: strbuf_addf
      Src: /src/git/transport-helper.c:1167,1
    - Dst: rename
      Src: /src/git/transport-helper.c:1168,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:1169,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 3
    argNames:
    - transport
    - remote_refs
    - flags
    argTypes:
    - struct transport*
    - struct ref*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1093
    functionDepth: 11
    functionLinenumber: 1093
    functionLinenumberEnd: 1173
    functionName: push_refs_with_export
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - get_helper
    - oidcpy
    - refs_resolve_ref_unsafe
    - repo_get_oid
    - strbuf_addf
    - strcmp
    - free
    - write_constant
    - get_main_ref_store
    - strbuf_release
    - die
    - finish_command
    - push_update_refs_status
    - set_common_push_options
    - string_list_clear
    - strbuf_detach
    - string_list_append
    - set_helper_option
    - _
    - warning
    - string_list_append_nodup
    - rename
    - get_exporter
    - apply_refspecs
    linkageType: ''
    returnType: int
    signature: "int push_refs_with_export(struct transport *transport,\n\t\tstruct
      ref *remote_refs, int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: process_connect
      Src: /src/git/transport-helper.c:1180,1
    - Dst: struct transport*::vtable::push_refs
      Src: /src/git/transport-helper.c:1181,1
    - Dst: fprintf
      Src: /src/git/transport-helper.c:1184,1
    - Dst: _
      Src: /src/git/transport-helper.c:1185,1
    - Dst: push_refs_with_push
      Src: /src/git/transport-helper.c:1191,1
    - Dst: push_refs_with_export
      Src: /src/git/transport-helper.c:1194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - transport
    - remote_refs
    - flags
    argTypes:
    - struct transport*
    - struct ref*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1175
    functionDepth: 12
    functionLinenumber: 1175
    functionLinenumberEnd: 1197
    functionName: push_refs
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 2
    functionsReached:
    - push_refs_with_export
    - struct transport*::vtable::push_refs
    - process_connect
    - push_refs_with_push
    - _
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int push_refs(struct transport *transport,\n\t\tstruct ref *remote_refs,
      int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/transport-helper.c:1206,1
    - Dst: strchrnul
      Src: /src/git/transport-helper.c:1208,1
    - Dst: strncmp
      Src: /src/git/transport-helper.c:1209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - attrs
    - attr
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1215
    functionName: has_attribute
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - strchrnul
    linkageType: ''
    returnType: int
    signature: int has_attribute(const char *attrs, const char *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:1220,1
    - Dst: process_connect
      Src: /src/git/transport-helper.c:1222,1
    - Dst: struct transport*::vtable::get_refs_list
      Src: /src/git/transport-helper.c:1223,1
    - Dst: get_refs_list_using_list
      Src: /src/git/transport-helper.c:1226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - transport
    - for_push
    - transport_options
    argTypes:
    - struct transport*
    - int
    - struct transport_ls_refs_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1217
    functionDepth: 12
    functionLinenumber: 1217
    functionLinenumberEnd: 1227
    functionName: get_refs_list
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 3
    functionsReached:
    - get_refs_list_using_list
    - get_helper
    - struct transport*::vtable::get_refs_list
    - process_connect
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *get_refs_list(struct transport *transport, int for_push,\n\t\t\t\t
      struct transport_ls_refs_options *transport_options)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:1240,1
    - Dst: set_helper_option
      Src: /src/git/transport-helper.c:1243,1
    - Dst: write_constant
      Src: /src/git/transport-helper.c:1246,1
    - Dst: write_constant
      Src: /src/git/transport-helper.c:1248,1
    - Dst: recvline
      Src: /src/git/transport-helper.c:1252,1
    - Dst: exit
      Src: /src/git/transport-helper.c:1253,1
    - Dst: skip_prefix
      Src: /src/git/transport-helper.c:1259,1
    - Dst: hash_algo_by_name
      Src: /src/git/transport-helper.c:1260,1
    - Dst: die
      Src: /src/git/transport-helper.c:1262,1
    - Dst: _
      Src: /src/git/transport-helper.c:1262,1
    - Dst: strchr
      Src: /src/git/transport-helper.c:1269,1
    - Dst: die
      Src: /src/git/transport-helper.c:1271,1
    - Dst: _
      Src: /src/git/transport-helper.c:1271,1
    - Dst: strchr
      Src: /src/git/transport-helper.c:1272,1
    - Dst: alloc_ref
      Src: /src/git/transport-helper.c:1276,1
    - Dst: xstrdup
      Src: /src/git/transport-helper.c:1278,1
    - Dst: get_oid_hex_algop
      Src: /src/git/transport-helper.c:1280,1
    - Dst: has_attribute
      Src: /src/git/transport-helper.c:1282,1
    - Dst: refs_read_ref
      Src: /src/git/transport-helper.c:1284,1
    - Dst: get_main_ref_store
      Src: /src/git/transport-helper.c:1284,1
    - Dst: die
      Src: /src/git/transport-helper.c:1285,1
    - Dst: _
      Src: /src/git/transport-helper.c:1285,1
    - Dst: fprintf
      Src: /src/git/transport-helper.c:1292,1
    - Dst: strbuf_release
      Src: /src/git/transport-helper.c:1293,1
    - Dst: resolve_remote_symref
      Src: /src/git/transport-helper.c:1296,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 2
    argNames:
    - transport
    - for_push
    argTypes:
    - struct transport*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1229
    functionDepth: 10
    functionLinenumber: 1229
    functionLinenumberEnd: 1299
    functionName: get_refs_list_using_list
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 2
    functionsReached:
    - get_helper
    - recvline
    - strchr
    - write_constant
    - alloc_ref
    - get_main_ref_store
    - strbuf_release
    - die
    - hash_algo_by_name
    - has_attribute
    - resolve_remote_symref
    - set_helper_option
    - _
    - skip_prefix
    - xstrdup
    - get_oid_hex_algop
    - exit
    - refs_read_ref
    - fprintf
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *get_refs_list_using_list(struct transport *transport,\n\t\t\t\t\t
      \   int for_push)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_helper
      Src: /src/git/transport-helper.c:1303,1
    - Dst: process_connect
      Src: /src/git/transport-helper.c:1305,1
    - Dst: struct transport*::vtable::get_bundle_uri
      Src: /src/git/transport-helper.c:1306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - transport
    argTypes:
    - struct transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1301
    functionDepth: 12
    functionLinenumber: 1301
    functionLinenumberEnd: 1309
    functionName: get_bundle_uri
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 2
    functionsReached:
    - get_helper
    - struct transport*::vtable::get_bundle_uri
    - process_connect
    linkageType: ''
    returnType: int
    signature: int get_bundle_uri(struct transport *transport)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/transport-helper.c:1323,1
    - Dst: xstrdup
      Src: /src/git/transport-helper.c:1324,1
    - Dst: transport_check_allowed
      Src: /src/git/transport-helper.c:1326,1
    - Dst: getenv
      Src: /src/git/transport-helper.c:1328,1
    - Dst: list_objects_filter_init
      Src: /src/git/transport-helper.c:1331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - transport
    - name
    argTypes:
    - struct transport*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1321
    functionDepth: 5
    functionLinenumber: 1321
    functionLinenumberEnd: 1337
    functionName: transport_helper_init
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 1
    functionsReached:
    - list_objects_filter_init
    - transport_check_allowed
    - xcalloc
    - getenv
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int transport_helper_init(struct transport *transport, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/transport-helper.c:1348,1
    - Dst: getenv
      Src: /src/git/transport-helper.c:1363,1
    - Dst: va_start
      Src: /src/git/transport-helper.c:1367,1
    - Dst: vsnprintf
      Src: /src/git/transport-helper.c:1368,1
    - Dst: va_end
      Src: /src/git/transport-helper.c:1369,1
    - Dst: fprintf
      Src: /src/git/transport-helper.c:1370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1371
    functionName: transfer_debug
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - va_end
    - fprintf
    - getenv
    - vsnprintf
    - va_start
    - format
    linkageType: ''
    returnType: void
    signature: void transfer_debug(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1384
    functionName: STATE_NEEDS_READING
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_NEEDS_READING(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1385
    functionName: STATE_NEEDS_WRITING
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_NEEDS_WRITING(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1385
    functionDepth: 0
    functionLinenumber: 1385
    functionLinenumberEnd: 1386
    functionName: STATE_NEEDS_CLOSING
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_NEEDS_CLOSING(state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_NEEDS_CLOSING
      Src: /src/git/transport-helper.c:1412,1
    - Dst: shutdown
      Src: /src/git/transport-helper.c:1415,1
    - Dst: close
      Src: /src/git/transport-helper.c:1417,1
    - Dst: transfer_debug
      Src: /src/git/transport-helper.c:1418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct unidirectional_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1420
    functionName: udt_close_if_finished
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - close
    - transfer_debug
    - shutdown
    - STATE_NEEDS_CLOSING
    linkageType: ''
    returnType: void
    signature: void udt_close_if_finished(struct unidirectional_transfer *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: transfer_debug
      Src: /src/git/transport-helper.c:1433,1
    - Dst: xread
      Src: /src/git/transport-helper.c:1434,1
    - Dst: error_errno
      Src: /src/git/transport-helper.c:1436,1
    - Dst: _
      Src: /src/git/transport-helper.c:1436,1
    - Dst: transfer_debug
      Src: /src/git/transport-helper.c:1439,1
    - Dst: transfer_debug
      Src: /src/git/transport-helper.c:1444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct unidirectional_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1426
    functionDepth: 1
    functionLinenumber: 1426
    functionLinenumberEnd: 1448
    functionName: udt_do_read
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - xread
    - transfer_debug
    - error_errno
    - _
    linkageType: ''
    returnType: int
    signature: int udt_do_read(struct unidirectional_transfer *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: transfer_debug
      Src: /src/git/transport-helper.c:1460,1
    - Dst: xwrite
      Src: /src/git/transport-helper.c:1461,1
    - Dst: error_errno
      Src: /src/git/transport-helper.c:1463,1
    - Dst: _
      Src: /src/git/transport-helper.c:1463,1
    - Dst: memmove
      Src: /src/git/transport-helper.c:1468,1
    - Dst: transfer_debug
      Src: /src/git/transport-helper.c:1469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct unidirectional_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1473
    functionName: udt_do_write
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - error_errno
    - transfer_debug
    - xwrite
    - _
    - memmove
    linkageType: ''
    returnType: int
    signature: int udt_do_write(struct unidirectional_transfer *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STATE_NEEDS_READING
      Src: /src/git/transport-helper.c:1488,1
    - Dst: udt_do_read
      Src: /src/git/transport-helper.c:1489,1
    - Dst: STATE_NEEDS_WRITING
      Src: /src/git/transport-helper.c:1491,1
    - Dst: udt_do_write
      Src: /src/git/transport-helper.c:1492,1
    - Dst: STATE_NEEDS_CLOSING
      Src: /src/git/transport-helper.c:1494,1
    - Dst: udt_close_if_finished
      Src: /src/git/transport-helper.c:1495,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - udt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1484
    functionDepth: 2
    functionLinenumber: 1484
    functionLinenumberEnd: 1498
    functionName: udt_copy_task_routine
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - STATE_NEEDS_WRITING
    - udt_do_read
    - udt_do_write
    - STATE_NEEDS_CLOSING
    - udt_close_if_finished
    - STATE_NEEDS_READING
    linkageType: ''
    returnType: void
    signature: void *udt_copy_task_routine(void *udt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/git/transport-helper.c:1510,1
    - Dst: error
      Src: /src/git/transport-helper.c:1512,1
    - Dst: _
      Src: /src/git/transport-helper.c:1512,1
    - Dst: error
      Src: /src/git/transport-helper.c:1516,1
    - Dst: _
      Src: /src/git/transport-helper.c:1516,1
    - Dst: strerror
      Src: /src/git/transport-helper.c:1516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - thread
    - name
    argTypes:
    - pthread_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1520
    functionName: tloop_join
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - error
    - strerror
    - pthread_join
    - _
    linkageType: ''
    returnType: int
    signature: int tloop_join(pthread_t thread, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/git/transport-helper.c:1532,1
    - Dst: die
      Src: /src/git/transport-helper.c:1535,1
    - Dst: _
      Src: /src/git/transport-helper.c:1535,1
    - Dst: strerror
      Src: /src/git/transport-helper.c:1535,1
    - Dst: pthread_create
      Src: /src/git/transport-helper.c:1536,1
    - Dst: die
      Src: /src/git/transport-helper.c:1539,1
    - Dst: _
      Src: /src/git/transport-helper.c:1539,1
    - Dst: strerror
      Src: /src/git/transport-helper.c:1539,1
    - Dst: tloop_join
      Src: /src/git/transport-helper.c:1541,1
    - Dst: tloop_join
      Src: /src/git/transport-helper.c:1542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct bidirectional_transfer_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1526
    functionDepth: 1
    functionLinenumber: 1526
    functionLinenumberEnd: 1544
    functionName: tloop_spawnwait_tasks
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - die
    - pthread_create
    - strerror
    - tloop_join
    - _
    linkageType: ''
    returnType: int
    signature: int tloop_spawnwait_tasks(struct bidirectional_transfer_state *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/transport-helper.c:1561,1
    - Dst: shutdown
      Src: /src/git/transport-helper.c:1563,1
    - Dst: close
      Src: /src/git/transport-helper.c:1565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct unidirectional_transfer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1548
    functionDepth: 0
    functionLinenumber: 1548
    functionLinenumberEnd: 1566
    functionName: udt_kill_transfer
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - close
    - shutdown
    linkageType: ''
    returnType: void
    signature: void udt_kill_transfer(struct unidirectional_transfer *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/git/transport-helper.c:1575,1
    - Dst: error_errno
      Src: /src/git/transport-helper.c:1576,1
    - Dst: _
      Src: /src/git/transport-helper.c:1576,1
    - Dst: WIFEXITED
      Src: /src/git/transport-helper.c:1579,1
    - Dst: WEXITSTATUS
      Src: /src/git/transport-helper.c:1579,1
    - Dst: error
      Src: /src/git/transport-helper.c:1580,1
    - Dst: _
      Src: /src/git/transport-helper.c:1580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pid
    - name
    argTypes:
    - pid_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1584
    functionName: tloop_join
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 1
    functionsReached:
    - error
    - error_errno
    - WEXITSTATUS
    - WIFEXITED
    - _
    - waitpid
    linkageType: ''
    returnType: int
    signature: int tloop_join(pid_t pid, const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/git/transport-helper.c:1596,1
    - Dst: die_errno
      Src: /src/git/transport-helper.c:1598,1
    - Dst: _
      Src: /src/git/transport-helper.c:1598,1
    - Dst: udt_kill_transfer
      Src: /src/git/transport-helper.c:1600,1
    - Dst: exit
      Src: /src/git/transport-helper.c:1601,1
    - Dst: udt_copy_task_routine
      Src: /src/git/transport-helper.c:1601,1
    - Dst: fork
      Src: /src/git/transport-helper.c:1605,1
    - Dst: die_errno
      Src: /src/git/transport-helper.c:1607,1
    - Dst: _
      Src: /src/git/transport-helper.c:1607,1
    - Dst: udt_kill_transfer
      Src: /src/git/transport-helper.c:1609,1
    - Dst: exit
      Src: /src/git/transport-helper.c:1610,1
    - Dst: udt_copy_task_routine
      Src: /src/git/transport-helper.c:1610,1
    - Dst: udt_kill_transfer
      Src: /src/git/transport-helper.c:1617,1
    - Dst: udt_kill_transfer
      Src: /src/git/transport-helper.c:1618,1
    - Dst: tloop_join
      Src: /src/git/transport-helper.c:1619,1
    - Dst: tloop_join
      Src: /src/git/transport-helper.c:1620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct bidirectional_transfer_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1590
    functionDepth: 3
    functionLinenumber: 1590
    functionLinenumberEnd: 1622
    functionName: tloop_spawnwait_tasks
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - udt_copy_task_routine
    - exit
    - fork
    - die_errno
    - tloop_join
    - _
    - udt_kill_transfer
    linkageType: ''
    returnType: int
    signature: int tloop_spawnwait_tasks(struct bidirectional_transfer_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tloop_spawnwait_tasks
      Src: /src/git/transport-helper.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1654
    functionName: bidirectional_transfer_loop
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 0
    functionsReached:
    - tloop_spawnwait_tasks
    linkageType: ''
    returnType: int
    signature: int bidirectional_transfer_loop(int input, int output)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - remote_refs
    - mirror_mode
    argTypes:
    - struct ref*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1676
    functionName: reject_atomic_push
    functionSourceFile: /src/git/transport-helper.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reject_atomic_push(struct ref *remote_refs, int mirror_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ps
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: GUARD_PATHSPEC
    functionSourceFile: /src/git/pathspec.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GUARD_PATHSPEC(ps, mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/git/pathspec.h:150,1
    - Dst: strncmp
      Src: /src/git/pathspec.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - item
    - s1
    - s2
    - n
    argTypes:
    - struct pathspec_item*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: ps_strncmp
    functionSourceFile: /src/git/pathspec.h
    functionUses: 7
    functionsReached:
    - strncmp
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: "int ps_strncmp(const struct pathspec_item *item,\n\t\t\t     const
      char *s1, const char *s2, size_t n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/pathspec.h:159,1
    - Dst: strcmp
      Src: /src/git/pathspec.h:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - item
    - s1
    - s2
    argTypes:
    - struct pathspec_item*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: ps_strcmp
    functionSourceFile: /src/git/pathspec.h
    functionUses: 1
    functionsReached:
    - strcasecmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int ps_strcmp(const struct pathspec_item *item,\n\t\t\t    const char
      *s1, const char *s2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_pathspecs_matching_skip_worktree
      Src: /src/git/pathspec.h:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pathspec
    - item
    - seen_ptr
    argTypes:
    - struct pathspec*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: matches_skip_worktree
    functionSourceFile: /src/git/pathspec.h
    functionUses: 0
    functionsReached:
    - find_pathspecs_matching_skip_worktree
    linkageType: ''
    returnType: int
    signature: "int matches_skip_worktree(const struct pathspec *pathspec,\n\t\t\t\t\tint
      item, char **seen_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/oidmap.c:12,1
    - Dst: container_of
      Src: /src/git/oidmap.c:13,1
    - Dst: oideq
      Src: /src/git/oidmap.c:16,1
    - Dst: oideq
      Src: /src/git/oidmap.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - hashmap_cmp_fn_data
    - e1
    - e2
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 18
    functionName: oidmap_neq
    functionSourceFile: /src/git/oidmap.c
    functionUses: 0
    functionsReached:
    - container_of
    - oideq
    linkageType: ''
    returnType: int
    signature: "int oidmap_neq(const void *hashmap_cmp_fn_data UNUSED,\n\t\t      const
      struct hashmap_entry *e1,\n\t\t      const struct hashmap_entry *e2,\n\t\t      const
      void *keydata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/oidmap.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - initial_size
    argTypes:
    - struct oidmap*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: oidmap_init
    functionSourceFile: /src/git/oidmap.c
    functionUses: 2
    functionsReached:
    - hashmap_init
    linkageType: ''
    returnType: void
    signature: void oidmap_init(struct oidmap *map, size_t initial_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidmap_clear_with_free
      Src: /src/git/oidmap.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - free_entries
    argTypes:
    - struct oidmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: oidmap_clear
    functionSourceFile: /src/git/oidmap.c
    functionUses: 2
    functionsReached:
    - oidmap_clear_with_free
    linkageType: ''
    returnType: void
    signature: void oidmap_clear(struct oidmap *map, int free_entries)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_iter_init
      Src: /src/git/oidmap.c:40,1
    - Dst: hashmap_iter_next
      Src: /src/git/oidmap.c:41,1
    - Dst: container_of
      Src: /src/git/oidmap.c:43,1
    - Dst: free_fn
      Src: /src/git/oidmap.c:45,1
    - Dst: hashmap_clear
      Src: /src/git/oidmap.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - map
    - free_fn
    argTypes:
    - struct oidmap*
    - oidmap_free_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: oidmap_clear_with_free
    functionSourceFile: /src/git/oidmap.c
    functionUses: 1
    functionsReached:
    - container_of
    - free_fn
    - hashmap_clear
    - hashmap_iter_init
    - hashmap_iter_next
    linkageType: ''
    returnType: void
    signature: "void oidmap_clear_with_free(struct oidmap *map,\n\t\t\t    oidmap_free_fn
      free_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_get_from_hash
      Src: /src/git/oidmap.c:56,1
    - Dst: oidhash
      Src: /src/git/oidmap.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct oidmap*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: oidmap_get
    functionSourceFile: /src/git/oidmap.c
    functionUses: 3
    functionsReached:
    - oidhash
    - hashmap_get_from_hash
    linkageType: ''
    returnType: void
    signature: void *oidmap_get(const struct oidmap *map, const struct object_id *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidmap_init
      Src: /src/git/oidmap.c:64,1
    - Dst: hashmap_entry_init
      Src: /src/git/oidmap.c:66,1
    - Dst: oidhash
      Src: /src/git/oidmap.c:66,1
    - Dst: hashmap_remove
      Src: /src/git/oidmap.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct oidmap*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: oidmap_remove
    functionSourceFile: /src/git/oidmap.c
    functionUses: 0
    functionsReached:
    - oidhash
    - hashmap_remove
    - hashmap_entry_init
    - oidmap_init
    linkageType: ''
    returnType: void
    signature: void *oidmap_remove(struct oidmap *map, const struct object_id *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidmap_init
      Src: /src/git/oidmap.c:75,1
    - Dst: hashmap_entry_init
      Src: /src/git/oidmap.c:77,1
    - Dst: oidhash
      Src: /src/git/oidmap.c:77,1
    - Dst: hashmap_put
      Src: /src/git/oidmap.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - map
    - entry
    argTypes:
    - struct oidmap*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: oidmap_put
    functionSourceFile: /src/git/oidmap.c
    functionUses: 3
    functionsReached:
    - oidhash
    - hashmap_entry_init
    - oidmap_init
    - hashmap_put
    linkageType: ''
    returnType: void
    signature: void *oidmap_put(struct oidmap *map, void *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_value
      Src: /src/git/rebase-interactive.c:33,1
    - Dst: strcasecmp
      Src: /src/git/rebase-interactive.c:34,1
    - Dst: strcasecmp
      Src: /src/git/rebase-interactive.c:36,1
    - Dst: strcasecmp
      Src: /src/git/rebase-interactive.c:38,1
    - Dst: warning
      Src: /src/git/rebase-interactive.c:40,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: get_missing_commit_check_level
    functionSourceFile: /src/git/rebase-interactive.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - repo_config_get_value
    - warning
    - _
    linkageType: ''
    returnType: enum missing_commit_check_level
    signature: enum missing_commit_check_level get_missing_commit_check_level(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/rebase-interactive.c:49,1
    - Dst: strbuf_addch
      Src: /src/git/rebase-interactive.c:75,1
    - Dst: strbuf_commented_addf
      Src: /src/git/rebase-interactive.c:76,1
    - Dst: Q_
      Src: /src/git/rebase-interactive.c:77,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/rebase-interactive.c:83,1
    - Dst: strlen
      Src: /src/git/rebase-interactive.c:83,1
    - Dst: get_missing_commit_check_level
      Src: /src/git/rebase-interactive.c:85,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:86,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:89,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/rebase-interactive.c:92,1
    - Dst: strlen
      Src: /src/git/rebase-interactive.c:92,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:95,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:100,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/rebase-interactive.c:103,1
    - Dst: strlen
      Src: /src/git/rebase-interactive.c:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - command_count
    - shortrevisions
    - shortonto
    - buf
    argTypes:
    - int
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 104
    functionName: append_todo_help
    functionSourceFile: /src/git/rebase-interactive.c
    functionUses: 1
    functionsReached:
    - strbuf_add_commented_lines
    - strbuf_commented_addf
    - strbuf_addch
    - strlen
    - _
    - Q_
    - get_missing_commit_check_level
    linkageType: ''
    returnType: void
    signature: "void append_todo_help(int command_count,\n\t\t      const char *shortrevisions,
      const char *shortonto,\n\t\t      struct strbuf *buf)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rebase_path_todo
      Src: /src/git/rebase-interactive.c:111,1
    - Dst: rebase_path_todo_backup
      Src: /src/git/rebase-interactive.c:112,1
    - Dst: todo_list_parse_insn_buffer
      Src: /src/git/rebase-interactive.c:120,1
    - Dst: file_exists
      Src: /src/git/rebase-interactive.c:123,1
    - Dst: rebase_path_dropped
      Src: /src/git/rebase-interactive.c:123,1
    - Dst: todo_list_write_to_file
      Src: /src/git/rebase-interactive.c:125,1
    - Dst: error_errno
      Src: /src/git/rebase-interactive.c:127,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:127,1
    - Dst: todo_list_write_to_file
      Src: /src/git/rebase-interactive.c:130,1
    - Dst: error
      Src: /src/git/rebase-interactive.c:133,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:133,1
    - Dst: rebase_path_todo_backup
      Src: /src/git/rebase-interactive.c:133,1
    - Dst: launch_sequence_editor
      Src: /src/git/rebase-interactive.c:135,1
    - Dst: strbuf_stripspace
      Src: /src/git/rebase-interactive.c:138,1
    - Dst: todo_list_parse_insn_buffer
      Src: /src/git/rebase-interactive.c:142,1
    - Dst: fprintf
      Src: /src/git/rebase-interactive.c:143,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:143,1
    - Dst: todo_list_check_against_backup
      Src: /src/git/rebase-interactive.c:148,1
    - Dst: write_file
      Src: /src/git/rebase-interactive.c:149,1
    - Dst: rebase_path_dropped
      Src: /src/git/rebase-interactive.c:149,1
    - Dst: unlink
      Src: /src/git/rebase-interactive.c:154,1
    - Dst: rebase_path_dropped
      Src: /src/git/rebase-interactive.c:154,1
    - Dst: todo_list_check
      Src: /src/git/rebase-interactive.c:155,1
    - Dst: write_file
      Src: /src/git/rebase-interactive.c:156,1
    - Dst: rebase_path_dropped
      Src: /src/git/rebase-interactive.c:156,1
    - Dst: todo_list_filter_update_refs
      Src: /src/git/rebase-interactive.c:164,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 7
    argNames:
    - r
    - opts
    - todo_list
    - new_todo
    - shortrevisions
    - shortonto
    - flags
    argTypes:
    - struct repository*
    - struct replay_opts*
    - struct todo_list*
    - struct todo_list*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 106
    functionDepth: 7
    functionLinenumber: 106
    functionLinenumberEnd: 167
    functionName: edit_todo_list
    functionSourceFile: /src/git/rebase-interactive.c
    functionUses: 1
    functionsReached:
    - error
    - error_errno
    - strbuf_stripspace
    - todo_list_check_against_backup
    - launch_sequence_editor
    - rebase_path_dropped
    - write_file
    - todo_list_write_to_file
    - todo_list_filter_update_refs
    - todo_list_parse_insn_buffer
    - _
    - file_exists
    - rebase_path_todo
    - rebase_path_todo_backup
    - fprintf
    - todo_list_check
    - unlink
    linkageType: ''
    returnType: int
    signature: "int edit_todo_list(struct repository *r, struct replay_opts *opts,\n\t\t
      \  struct todo_list *todo_list, struct todo_list *new_todo,\n\t\t   const char
      *shortrevisions, const char *shortonto,\n\t\t   unsigned flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_missing_commit_check_level
      Src: /src/git/rebase-interactive.c:178,1
    - Dst: init_commit_seen
      Src: /src/git/rebase-interactive.c:183,1
    - Dst: commit_seen_at
      Src: /src/git/rebase-interactive.c:192,1
    - Dst: commit_seen_at
      Src: /src/git/rebase-interactive.c:199,1
    - Dst: strbuf_addf
      Src: /src/git/rebase-interactive.c:200,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/rebase-interactive.c:201,1
    - Dst: todo_item_get_arg
      Src: /src/git/rebase-interactive.c:203,1
    - Dst: commit_seen_at
      Src: /src/git/rebase-interactive.c:204,1
    - Dst: fprintf
      Src: /src/git/rebase-interactive.c:215,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:216,1
    - Dst: fputs
      Src: /src/git/rebase-interactive.c:220,1
    - Dst: strbuf_release
      Src: /src/git/rebase-interactive.c:221,1
    - Dst: fprintf
      Src: /src/git/rebase-interactive.c:223,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:223,1
    - Dst: fprintf
      Src: /src/git/rebase-interactive.c:229,1
    - Dst: _
      Src: /src/git/rebase-interactive.c:229,1
    - Dst: clear_commit_seen
      Src: /src/git/rebase-interactive.c:232,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - old_todo
    - new_todo
    argTypes:
    - struct todo_list*
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 234
    functionName: todo_list_check
    functionSourceFile: /src/git/rebase-interactive.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - fputs
    - clear_commit_seen
    - init_commit_seen
    - strbuf_addf
    - repo_find_unique_abbrev
    - todo_item_get_arg
    - _
    - get_missing_commit_check_level
    - commit_seen_at
    - fprintf
    linkageType: ''
    returnType: int
    signature: int todo_list_check(struct todo_list *old_todo, struct todo_list *new_todo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/rebase-interactive.c:243,1
    - Dst: rebase_path_todo_backup
      Src: /src/git/rebase-interactive.c:243,1
    - Dst: todo_list_parse_insn_buffer
      Src: /src/git/rebase-interactive.c:244,1
    - Dst: todo_list_check
      Src: /src/git/rebase-interactive.c:245,1
    - Dst: todo_list_release
      Src: /src/git/rebase-interactive.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - r
    - opts
    - todo_list
    argTypes:
    - struct repository*
    - struct replay_opts*
    - struct todo_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 236
    functionDepth: 7
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: todo_list_check_against_backup
    functionSourceFile: /src/git/rebase-interactive.c
    functionUses: 2
    functionsReached:
    - strbuf_read_file
    - todo_list_parse_insn_buffer
    - todo_list_release
    - rebase_path_todo_backup
    - todo_list_check
    linkageType: ''
    returnType: int
    signature: "int todo_list_check_against_backup(struct repository *r,\n\t\t\t\t
      \  struct replay_opts *opts,\n\t\t\t\t   struct todo_list *todo_list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_get_size
      Src: /src/git/oidmap.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct oidmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: oidmap_get_size
    functionSourceFile: /src/git/oidmap.h
    functionUses: 0
    functionsReached:
    - hashmap_get_size
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int oidmap_get_size(struct oidmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_iter_init
      Src: /src/git/oidmap.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - iter
    argTypes:
    - struct oidmap*
    - struct oidmap_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: oidmap_iter_init
    functionSourceFile: /src/git/oidmap.h
    functionUses: 0
    functionsReached:
    - hashmap_iter_init
    linkageType: ''
    returnType: void
    signature: void oidmap_iter_init(struct oidmap *map, struct oidmap_iter *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_iter_next
      Src: /src/git/oidmap.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct oidmap_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: oidmap_iter_next
    functionSourceFile: /src/git/oidmap.h
    functionUses: 0
    functionsReached:
    - hashmap_iter_next
    linkageType: ''
    returnType: void
    signature: void *oidmap_iter_next(struct oidmap_iter *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidmap_iter_init
      Src: /src/git/oidmap.h:108,1
    - Dst: oidmap_iter_next
      Src: /src/git/oidmap.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - map
    - iter
    argTypes:
    - struct oidmap*
    - struct oidmap_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: oidmap_iter_first
    functionSourceFile: /src/git/oidmap.h
    functionUses: 0
    functionsReached:
    - oidmap_iter_next
    - oidmap_iter_init
    linkageType: ''
    returnType: void
    signature: "void *oidmap_iter_first(struct oidmap *map,\n\t\t\t\t      struct
      oidmap_iter *iter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/abspath.h:30,1
    - Dst: has_dos_drive_prefix
      Src: /src/git/abspath.h:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: is_absolute_path
    functionSourceFile: /src/git/abspath.h
    functionUses: 6
    functionsReached:
    - is_dir_sep
    - has_dos_drive_prefix
    linkageType: ''
    returnType: int
    signature: int is_absolute_path(const char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: precompose_string_if_needed
      Src: /src/git/setup.c:56,1
    - Dst: repo_get_work_tree
      Src: /src/git/setup.c:56,1
    - Dst: strlen
      Src: /src/git/setup.c:61,1
    - Dst: strlen
      Src: /src/git/setup.c:62,1
    - Dst: offset_1st_component
      Src: /src/git/setup.c:63,1
    - Dst: fspathncmp
      Src: /src/git/setup.c:66,1
    - Dst: memmove
      Src: /src/git/setup.c:68,1
    - Dst: memmove
      Src: /src/git/setup.c:72,1
    - Dst: strbuf_realpath
      Src: /src/git/setup.c:86,1
    - Dst: fspathcmp
      Src: /src/git/setup.c:87,1
    - Dst: memmove
      Src: /src/git/setup.c:88,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:89,1
    - Dst: strbuf_realpath
      Src: /src/git/setup.c:97,1
    - Dst: fspathcmp
      Src: /src/git/setup.c:98,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:100,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:104,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 106
    functionName: abspath_part_inside_repo
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_realpath
    - repo_get_work_tree
    - fspathncmp
    - precompose_string_if_needed
    - strlen
    - offset_1st_component
    - fspathcmp
    - memmove
    linkageType: ''
    returnType: int
    signature: int abspath_part_inside_repo(struct repository *repo, char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute_path
      Src: /src/git/setup.c:125,1
    - Dst: xmallocz
      Src: /src/git/setup.c:126,1
    - Dst: strlen
      Src: /src/git/setup.c:126,1
    - Dst: normalize_path_copy_len
      Src: /src/git/setup.c:129,1
    - Dst: free
      Src: /src/git/setup.c:130,1
    - Dst: abspath_part_inside_repo
      Src: /src/git/setup.c:133,1
    - Dst: free
      Src: /src/git/setup.c:134,1
    - Dst: xstrfmt
      Src: /src/git/setup.c:138,1
    - Dst: normalize_path_copy_len
      Src: /src/git/setup.c:141,1
    - Dst: free
      Src: /src/git/setup.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - repo
    - prefix
    - len
    - remaining_prefix
    - path
    argTypes:
    - struct repository*
    - char*
    - int
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 119
    functionDepth: 5
    functionLinenumber: 119
    functionLinenumberEnd: 147
    functionName: prefix_path_gently
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - is_absolute_path
    - xmallocz
    - normalize_path_copy_len
    - xstrfmt
    - strlen
    - free
    - abspath_part_inside_repo
    linkageType: ''
    returnType: char
    signature: "char *prefix_path_gently(struct repository *repo,\n\t\t\t const char
      *prefix, int len,\n\t\t\t int *remaining_prefix, const char *path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prefix_path_gently
      Src: /src/git/setup.c:151,1
    - Dst: repo_get_work_tree
      Src: /src/git/setup.c:153,1
    - Dst: repo_get_git_dir
      Src: /src/git/setup.c:155,1
    - Dst: die
      Src: /src/git/setup.c:156,1
    - Dst: _
      Src: /src/git/setup.c:156,1
    - Dst: absolute_path
      Src: /src/git/setup.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - repo
    - prefix
    - len
    - path
    argTypes:
    - struct repository*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 6
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: prefix_path
    functionSourceFile: /src/git/setup.c
    functionUses: 1
    functionsReached:
    - absolute_path
    - die
    - repo_get_work_tree
    - repo_get_git_dir
    - _
    - prefix_path_gently
    linkageType: ''
    returnType: char
    signature: char *prefix_path(struct repository *repo, const char *prefix, int
      len, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/setup.c:164,1
    - Dst: prefix_path_gently
      Src: /src/git/setup.c:165,1
    - Dst: free
      Src: /src/git/setup.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - repo
    - prefix
    - path
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 6
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: path_inside_repo
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - strlen
    - prefix_path_gently
    - free
    linkageType: ''
    returnType: int
    signature: int path_inside_repo(struct repository *repo, const char *prefix, const
      char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/setup.c:178,1
    - Dst: skip_prefix
      Src: /src/git/setup.c:182,1
    - Dst: skip_prefix
      Src: /src/git/setup.c:183,1
    - Dst: prefix_filename
      Src: /src/git/setup.c:189,1
    - Dst: lstat
      Src: /src/git/setup.c:191,1
    - Dst: free
      Src: /src/git/setup.c:192,1
    - Dst: is_missing_file_error
      Src: /src/git/setup.c:195,1
    - Dst: free
      Src: /src/git/setup.c:196,1
    - Dst: die_errno
      Src: /src/git/setup.c:199,1
    - Dst: _
      Src: /src/git/setup.c:199,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - prefix
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 200
    functionName: check_filename
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - prefix_filename
    - is_missing_file_error
    - die_errno
    - free
    - skip_prefix
    - lstat
    - _
    linkageType: ''
    returnType: int
    signature: int check_filename(const char *prefix, const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/setup.c:208,1
    - Dst: _
      Src: /src/git/setup.c:208,1
    - Dst: isalnum
      Src: /src/git/setup.c:217,1
    - Dst: maybe_die_on_misspelt_object_name
      Src: /src/git/setup.c:218,1
    - Dst: die
      Src: /src/git/setup.c:221,1
    - Dst: _
      Src: /src/git/setup.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - r
    - prefix
    - arg
    - diagnose_misspelt_rev
    argTypes:
    - struct repository*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 202
    functionDepth: 10
    functionLinenumber: 202
    functionLinenumberEnd: 225
    functionName: die_verify_filename
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - maybe_die_on_misspelt_object_name
    - isalnum
    - die
    - _
    linkageType: ''
    returnType: void
    signature: "void die_verify_filename(struct repository *r,\n\t\t\t\t\t const char
      *prefix,\n\t\t\t\t\t const char *arg,\n\t\t\t\t\t int diagnose_misspelt_rev)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_glob_special
      Src: /src/git/setup.c:247,1
    - Dst: starts_with
      Src: /src/git/setup.c:256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 260
    functionName: looks_like_pathspec
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - is_glob_special
    - starts_with
    linkageType: ''
    returnType: int
    signature: int looks_like_pathspec(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/setup.c:288,1
    - Dst: _
      Src: /src/git/setup.c:288,1
    - Dst: looks_like_pathspec
      Src: /src/git/setup.c:289,1
    - Dst: check_filename
      Src: /src/git/setup.c:289,1
    - Dst: die_verify_filename
      Src: /src/git/setup.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - repo
    - prefix
    - arg
    - diagnose_misspelt_rev
    argTypes:
    - struct repository*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 11
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: verify_filename
    functionSourceFile: /src/git/setup.c
    functionUses: 2
    functionsReached:
    - die
    - looks_like_pathspec
    - die_verify_filename
    - _
    - check_filename
    linkageType: ''
    returnType: void
    signature: "void verify_filename(struct repository *repo,\n\t\t     const char
      *prefix,\n\t\t     const char *arg,\n\t\t     int diagnose_misspelt_rev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_inside_work_tree
      Src: /src/git/setup.c:301,1
    - Dst: is_inside_git_dir
      Src: /src/git/setup.c:301,1
    - Dst: check_filename
      Src: /src/git/setup.c:305,1
    - Dst: die
      Src: /src/git/setup.c:307,1
    - Dst: _
      Src: /src/git/setup.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - repo
    - prefix
    - arg
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 310
    functionName: verify_non_filename
    functionSourceFile: /src/git/setup.c
    functionUses: 2
    functionsReached:
    - is_inside_git_dir
    - die
    - is_inside_work_tree
    - _
    - check_filename
    linkageType: ''
    returnType: void
    signature: void verify_non_filename(struct repository *repo, const char *prefix,
      const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/setup.c:314,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:316,1
    - Dst: get_common_dir_noenv
      Src: /src/git/setup.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sb
    - gitdir
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 321
    functionName: get_common_dir
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - getenv
    - get_common_dir_noenv
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int get_common_dir(struct strbuf *sb, const char *gitdir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/setup.c:329,1
    - Dst: file_exists
      Src: /src/git/setup.c:330,1
    - Dst: strbuf_read_file
      Src: /src/git/setup.c:331,1
    - Dst: die_errno
      Src: /src/git/setup.c:332,1
    - Dst: _
      Src: /src/git/setup.c:332,1
    - Dst: strbuf_reset
      Src: /src/git/setup.c:337,1
    - Dst: is_absolute_path
      Src: /src/git/setup.c:338,1
    - Dst: strbuf_addf
      Src: /src/git/setup.c:339,1
    - Dst: strbuf_addbuf
      Src: /src/git/setup.c:340,1
    - Dst: strbuf_add_real_path
      Src: /src/git/setup.c:341,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:344,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:347,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - sb
    - gitdir
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: get_common_dir_noenv
    functionSourceFile: /src/git/setup.c
    functionUses: 3
    functionsReached:
    - strbuf_release
    - is_absolute_path
    - strbuf_reset
    - strbuf_add_real_path
    - strbuf_read_file
    - strbuf_addf
    - die_errno
    - strbuf_addbuf
    - strbuf_addstr
    - _
    - file_exists
    linkageType: ''
    returnType: int
    signature: int get_common_dir_noenv(struct strbuf *sb, const char *gitdir)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/setup.c:361,1
    - Dst: S_ISLNK
      Src: /src/git/setup.c:365,1
    - Dst: readlink
      Src: /src/git/setup.c:366,1
    - Dst: memcmp
      Src: /src/git/setup.c:367,1
    - Dst: open
      Src: /src/git/setup.c:375,1
    - Dst: read_in_full
      Src: /src/git/setup.c:378,1
    - Dst: close
      Src: /src/git/setup.c:379,1
    - Dst: skip_prefix
      Src: /src/git/setup.c:388,1
    - Dst: isspace
      Src: /src/git/setup.c:389,1
    - Dst: starts_with
      Src: /src/git/setup.c:391,1
    - Dst: get_oid_hex_any
      Src: /src/git/setup.c:398,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 402
    functionName: validate_headref
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - isspace
    - open
    - S_ISLNK
    - readlink
    - starts_with
    - read_in_full
    - get_oid_hex_any
    - close
    - skip_prefix
    - lstat
    - memcmp
    linkageType: ''
    returnType: int
    signature: int validate_headref(const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:422,1
    - Dst: strbuf_complete
      Src: /src/git/setup.c:423,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:424,1
    - Dst: validate_headref
      Src: /src/git/setup.c:425,1
    - Dst: strbuf_reset
      Src: /src/git/setup.c:428,1
    - Dst: get_common_dir
      Src: /src/git/setup.c:429,1
    - Dst: getenv
      Src: /src/git/setup.c:433,1
    - Dst: access
      Src: /src/git/setup.c:434,1
    - Dst: getenv
      Src: /src/git/setup.c:434,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:438,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:439,1
    - Dst: access
      Src: /src/git/setup.c:440,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:444,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:445,1
    - Dst: access
      Src: /src/git/setup.c:446,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:451,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - suspect
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 415
    functionDepth: 5
    functionLinenumber: 415
    functionLinenumberEnd: 453
    functionName: is_git_directory
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - validate_headref
    - strbuf_reset
    - access
    - strbuf_setlen
    - strbuf_addstr
    - strbuf_complete
    - get_common_dir
    - getenv
    linkageType: ''
    returnType: int
    signature: int is_git_directory(const char *suspect)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/setup.c:460,1
    - Dst: strbuf_complete
      Src: /src/git/setup.c:461,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:462,1
    - Dst: read_gitfile_gently
      Src: /src/git/setup.c:463,1
    - Dst: is_git_directory
      Src: /src/git/setup.c:463,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct strbuf*
    assertStmts:
    - condition: (orig_path_len != 0)
      pos:
        line_end: 459
        line_start: 459
        source_file: /src/git/setup.c
    constantsTouched: []
    func_position:
      end: 470
      start: 455
    functionDepth: 6
    functionLinenumber: 455
    functionLinenumberEnd: 470
    functionName: is_nonbare_repository_dir
    functionSourceFile: /src/git/setup.c
    functionUses: 2
    functionsReached:
    - read_gitfile_gently
    - assert
    - strbuf_setlen
    - strbuf_addstr
    - strbuf_complete
    - is_git_directory
    linkageType: ''
    returnType: int
    signature: int is_nonbare_repository_dir(struct strbuf *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_inside_dir
      Src: /src/git/setup.c:475,1
    - Dst: strbuf_realpath
      Src: /src/git/setup.c:475,1
    - Dst: repo_get_git_dir
      Src: /src/git/setup.c:475,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 472
    functionDepth: 4
    functionLinenumber: 472
    functionLinenumberEnd: 478
    functionName: is_inside_git_dir
    functionSourceFile: /src/git/setup.c
    functionUses: 1
    functionsReached:
    - is_inside_dir
    - strbuf_release
    - repo_get_git_dir
    - strbuf_realpath
    linkageType: ''
    returnType: int
    signature: int is_inside_git_dir(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_work_tree
      Src: /src/git/setup.c:486,1
    - Dst: is_inside_dir
      Src: /src/git/setup.c:490,1
    - Dst: strbuf_realpath
      Src: /src/git/setup.c:490,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 480
    functionDepth: 4
    functionLinenumber: 480
    functionLinenumberEnd: 494
    functionName: is_inside_work_tree
    functionSourceFile: /src/git/setup.c
    functionUses: 2
    functionsReached:
    - repo_get_work_tree
    - strbuf_release
    - is_inside_dir
    - strbuf_realpath
    linkageType: ''
    returnType: int
    signature: int is_inside_work_tree(struct repository *repo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/setup.c:501,1
    - Dst: _
      Src: /src/git/setup.c:501,1
    - Dst: repo_get_work_tree
      Src: /src/git/setup.c:503,1
    - Dst: chdir_notify
      Src: /src/git/setup.c:504,1
    - Dst: die
      Src: /src/git/setup.c:505,1
    - Dst: _
      Src: /src/git/setup.c:505,1
    - Dst: getenv
      Src: /src/git/setup.c:511,1
    - Dst: setenv
      Src: /src/git/setup.c:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 496
    functionDepth: 5
    functionLinenumber: 496
    functionLinenumberEnd: 513
    functionName: setup_work_tree
    functionSourceFile: /src/git/setup.c
    functionUses: 1
    functionsReached:
    - die
    - repo_get_work_tree
    - chdir_notify
    - setenv
    - _
    - getenv
    linkageType: ''
    returnType: void
    signature: void setup_work_tree(struct repository *repo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/setup.c:540,1
    - Dst: trace2_data_string
      Src: /src/git/setup.c:541,1
    - Dst: trace2_data_string
      Src: /src/git/setup.c:543,1
    - Dst: strerror
      Src: /src/git/setup.c:544,1
    - Dst: free
      Src: /src/git/setup.c:545,1
    - Dst: free
      Src: /src/git/setup.c:550,1
    - Dst: strbuf_detach
      Src: /src/git/setup.c:552,1
    - Dst: repo_get_work_tree
      Src: /src/git/setup.c:558,1
    - Dst: dir_inside_of
      Src: /src/git/setup.c:562,1
    - Dst: precompose_string_if_needed
      Src: /src/git/setup.c:577,1
    - Dst: free
      Src: /src/git/setup.c:583,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 585
    functionName: setup_original_cwd
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - strbuf_realpath
    - repo_get_work_tree
    - strerror
    - precompose_string_if_needed
    - dir_inside_of
    - strbuf_detach
    - free
    - trace2_data_string
    linkageType: ''
    returnType: void
    signature: void setup_original_cwd(struct repository *repo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/setup.c:593,1
    - Dst: git_config_bool
      Src: /src/git/setup.c:594,1
    - Dst: strcmp
      Src: /src/git/setup.c:595,1
    - Dst: config_error_nonbool
      Src: /src/git/setup.c:597,1
    - Dst: free
      Src: /src/git/setup.c:598,1
    - Dst: xstrdup
      Src: /src/git/setup.c:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - vdata
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 602
    functionName: read_worktree_config
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - strcmp
    - free
    - config_error_nonbool
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int read_worktree_config(const char *var, const char *value,\n\t\t\t\tconst
      struct config_context *ctx UNUSED,\n\t\t\t\tvoid *vdata)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/setup.c:619,1
    - Dst: strcmp
      Src: /src/git/setup.c:621,1
    - Dst: git_config_bool
      Src: /src/git/setup.c:622,1
    - Dst: strcmp
      Src: /src/git/setup.c:624,1
    - Dst: config_error_nonbool
      Src: /src/git/setup.c:626,1
    - Dst: xstrdup
      Src: /src/git/setup.c:627,1
    - Dst: strcmp
      Src: /src/git/setup.c:629,1
    - Dst: git_config_bool
      Src: /src/git/setup.c:630,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - var
    - value
    - ext
    - data
    argTypes:
    - char*
    - char*
    - char*
    - struct repository_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 635
    functionName: handle_extension_v0
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - config_error_nonbool
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: enum extension_result
    signature: "enum extension_result handle_extension_v0(const char *var,\n\t\t\t\t\t\t
      const char *value,\n\t\t\t\t\t\t const char *ext,\n\t\t\t\t\t\t struct repository_format
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/setup.c:642,1
    - Dst: xstrdup
      Src: /src/git/setup.c:644,1
    - Dst: xstrndup
      Src: /src/git/setup.c:647,1
    - Dst: xstrdup_or_null
      Src: /src/git/setup.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - value
    - format
    - payload
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 650
    functionName: parse_reference_uri
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - xstrndup
    - strstr
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void parse_reference_uri(const char *value, char **format,\n\t\t\t\tchar
      **payload)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/setup.c:660,1
    - Dst: strcmp
      Src: /src/git/setup.c:662,1
    - Dst: config_error_nonbool
      Src: /src/git/setup.c:666,1
    - Dst: hash_algo_by_name
      Src: /src/git/setup.c:667,1
    - Dst: error
      Src: /src/git/setup.c:669,1
    - Dst: _
      Src: /src/git/setup.c:669,1
    - Dst: strcmp
      Src: /src/git/setup.c:673,1
    - Dst: config_error_nonbool
      Src: /src/git/setup.c:678,1
    - Dst: hash_algo_by_name
      Src: /src/git/setup.c:679,1
    - Dst: error
      Src: /src/git/setup.c:681,1
    - Dst: _
      Src: /src/git/setup.c:681,1
    - Dst: for_each_string_list_item
      Src: /src/git/setup.c:684,1
    - Dst: strcmp
      Src: /src/git/setup.c:685,1
    - Dst: error
      Src: /src/git/setup.c:686,1
    - Dst: _
      Src: /src/git/setup.c:686,1
    - Dst: strcmp
      Src: /src/git/setup.c:692,1
    - Dst: config_error_nonbool
      Src: /src/git/setup.c:697,1
    - Dst: parse_reference_uri
      Src: /src/git/setup.c:699,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/setup.c:702,1
    - Dst: free
      Src: /src/git/setup.c:703,1
    - Dst: error
      Src: /src/git/setup.c:706,1
    - Dst: _
      Src: /src/git/setup.c:706,1
    - Dst: strcmp
      Src: /src/git/setup.c:710,1
    - Dst: git_config_bool
      Src: /src/git/setup.c:711,1
    - Dst: strcmp
      Src: /src/git/setup.c:713,1
    - Dst: git_config_bool
      Src: /src/git/setup.c:714,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - var
    - value
    - ext
    - data
    argTypes:
    - char*
    - char*
    - char*
    - struct repository_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 718
    functionName: handle_extension
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - error
    - for_each_string_list_item
    - git_config_bool
    - parse_reference_uri
    - strcmp
    - ref_storage_format_by_name
    - _
    - free
    - hash_algo_by_name
    - config_error_nonbool
    linkageType: ''
    returnType: enum extension_result
    signature: "enum extension_result handle_extension(const char *var,\n\t\t\t\t\t
      \     const char *value,\n\t\t\t\t\t      const char *ext,\n\t\t\t\t\t      struct
      repository_format *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/setup.c:726,1
    - Dst: git_config_int
      Src: /src/git/setup.c:727,1
    - Dst: skip_prefix
      Src: /src/git/setup.c:728,1
    - Dst: handle_extension_v0
      Src: /src/git/setup.c:729,1
    - Dst: handle_extension
      Src: /src/git/setup.c:738,1
    - Dst: string_list_append
      Src: /src/git/setup.c:742,1
    - Dst: string_list_append
      Src: /src/git/setup.c:745,1
    - Dst: read_worktree_config
      Src: /src/git/setup.c:750,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - vdata
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 720
    functionDepth: 4
    functionLinenumber: 720
    functionLinenumberEnd: 751
    functionName: check_repo_format
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - handle_extension
    - handle_extension_v0
    - read_worktree_config
    - string_list_append
    - strcmp
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int check_repo_format(const char *var, const char *value,\n\t\t\t
      \    const struct config_context *ctx, void *vdata)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_common_dir
      Src: /src/git/setup.c:762,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:763,1
    - Dst: read_repository_format
      Src: /src/git/setup.c:764,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:765,1
    - Dst: verify_repository_format
      Src: /src/git/setup.c:775,1
    - Dst: warning
      Src: /src/git/setup.c:777,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:778,1
    - Dst: die
      Src: /src/git/setup.c:782,1
    - Dst: string_list_clear
      Src: /src/git/setup.c:787,1
    - Dst: string_list_clear
      Src: /src/git/setup.c:788,1
    - Dst: strbuf_addf
      Src: /src/git/setup.c:795,1
    - Dst: git_config_from_file
      Src: /src/git/setup.c:796,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:797,1
    - Dst: free
      Src: /src/git/setup.c:806,1
    - Dst: xstrdup
      Src: /src/git/setup.c:807,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 4
    argNames:
    - repo
    - gitdir
    - candidate
    - nongit_ok
    argTypes:
    - struct repository*
    - char*
    - struct repository_format*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 812
    functionName: check_repository_format_gently
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_release
    - read_repository_format
    - die
    - strbuf_addf
    - free
    - verify_repository_format
    - strbuf_addstr
    - git_config_from_file
    - get_common_dir
    - warning
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int check_repository_format_gently(struct repository *repo,\n\t\t\t\t\t
      \ const char *gitdir,\n\t\t\t\t\t  struct repository_format *candidate,\n\t\t\t\t\t
      \ int *nongit_ok)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_common_path_append
      Src: /src/git/setup.c:822,1
    - Dst: read_repository_format
      Src: /src/git/setup.c:823,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:824,1
    - Dst: verify_repository_format
      Src: /src/git/setup.c:831,1
    - Dst: error
      Src: /src/git/setup.c:832,1
    - Dst: error
      Src: /src/git/setup.c:837,1
    - Dst: strbuf_addf
      Src: /src/git/setup.c:843,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:844,1
    - Dst: clear_repository_format
      Src: /src/git/setup.c:849,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:850,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:851,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - repo
    - target_version
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 853
    functionName: upgrade_repository_format
    functionSourceFile: /src/git/setup.c
    functionUses: 1
    functionsReached:
    - error
    - strbuf_release
    - read_repository_format
    - repo_common_path_append
    - strbuf_addf
    - repo_config_set
    - verify_repository_format
    - clear_repository_format
    linkageType: ''
    returnType: int
    signature: int upgrade_repository_format(struct repository *repo, int target_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/setup.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - struct repository_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 860
    functionName: init_repository_format
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void init_repository_format(struct repository_format *format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_repository_format
      Src: /src/git/setup.c:864,1
    - Dst: git_config_from_file
      Src: /src/git/setup.c:866,1
    - Dst: clear_repository_format
      Src: /src/git/setup.c:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - format
    - path
    argTypes:
    - struct repository_format*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 872
    functionName: read_repository_format
    functionSourceFile: /src/git/setup.c
    functionUses: 3
    functionsReached:
    - clear_repository_format
    - git_config_from_file
    linkageType: ''
    returnType: int
    signature: int read_repository_format(struct repository_format *format, const
      char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/setup.c:876,1
    - Dst: string_list_clear
      Src: /src/git/setup.c:877,1
    - Dst: free
      Src: /src/git/setup.c:878,1
    - Dst: free
      Src: /src/git/setup.c:879,1
    - Dst: free
      Src: /src/git/setup.c:880,1
    - Dst: init_repository_format
      Src: /src/git/setup.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - format
    argTypes:
    - struct repository_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 882
    functionName: clear_repository_format
    functionSourceFile: /src/git/setup.c
    functionUses: 3
    functionsReached:
    - string_list_clear
    - init_repository_format
    - free
    linkageType: ''
    returnType: void
    signature: void clear_repository_format(struct repository_format *format)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/setup.c:888,1
    - Dst: _
      Src: /src/git/setup.c:888,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:896,1
    - Dst: Q_
      Src: /src/git/setup.c:896,1
    - Dst: strbuf_addf
      Src: /src/git/setup.c:901,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:909,1
    - Dst: Q_
      Src: /src/git/setup.c:910,1
    - Dst: strbuf_addf
      Src: /src/git/setup.c:915,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - format
    - err
    argTypes:
    - struct repository_format*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 921
    functionName: verify_repository_format
    functionSourceFile: /src/git/setup.c
    functionUses: 4
    functionsReached:
    - Q_
    - strbuf_addf
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: int
    signature: "int verify_repository_format(const struct repository_format *format,\n\t\t\t
      \    struct strbuf *err)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: die_errno
      Src: /src/git/setup.c:933,1
    - Dst: _
      Src: /src/git/setup.c:933,1
    - Dst: die
      Src: /src/git/setup.c:935,1
    - Dst: _
      Src: /src/git/setup.c:935,1
    - Dst: die
      Src: /src/git/setup.c:937,1
    - Dst: _
      Src: /src/git/setup.c:937,1
    - Dst: die
      Src: /src/git/setup.c:939,1
    - Dst: _
      Src: /src/git/setup.c:939,1
    - Dst: die
      Src: /src/git/setup.c:941,1
    - Dst: _
      Src: /src/git/setup.c:941,1
    - Dst: die
      Src: /src/git/setup.c:943,1
    - Dst: _
      Src: /src/git/setup.c:943,1
    - Dst: BUG
      Src: /src/git/setup.c:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - error_code
    - path
    - dir
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 947
    functionName: read_gitfile_error_die
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - BUG
    - die
    - die_errno
    - _
    linkageType: ''
    returnType: void
    signature: void read_gitfile_error_die(int error_code, const char *path, const
      char *dir)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/setup.c:971,1
    - Dst: S_ISDIR
      Src: /src/git/setup.c:978,1
    - Dst: S_ISREG
      Src: /src/git/setup.c:982,1
    - Dst: open
      Src: /src/git/setup.c:990,1
    - Dst: xmallocz
      Src: /src/git/setup.c:995,1
    - Dst: read_in_full
      Src: /src/git/setup.c:996,1
    - Dst: close
      Src: /src/git/setup.c:997,1
    - Dst: starts_with
      Src: /src/git/setup.c:1002,1
    - Dst: is_absolute_path
      Src: /src/git/setup.c:1015,1
    - Dst: strrchr
      Src: /src/git/setup.c:1015,1
    - Dst: xstrfmt
      Src: /src/git/setup.c:1017,1
    - Dst: free
      Src: /src/git/setup.c:1019,1
    - Dst: is_git_directory
      Src: /src/git/setup.c:1022,1
    - Dst: strbuf_realpath
      Src: /src/git/setup.c:1027,1
    - Dst: read_gitfile_error_die
      Src: /src/git/setup.c:1034,1
    - Dst: free
      Src: /src/git/setup.c:1036,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 2
    argNames:
    - path
    - return_error_code
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 959
    functionDepth: 6
    functionLinenumber: 959
    functionLinenumberEnd: 1038
    functionName: read_gitfile_gently
    functionSourceFile: /src/git/setup.c
    functionUses: 1
    functionsReached:
    - read_gitfile_error_die
    - S_ISDIR
    - is_absolute_path
    - open
    - strbuf_realpath
    - strrchr
    - xmallocz
    - xstrfmt
    - stat
    - is_git_directory
    - starts_with
    - read_in_full
    - free
    - close
    - S_ISREG
    linkageType: ''
    returnType: char
    signature: char *read_gitfile_gently(const char *path, int *return_error_code)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv_safe
      Src: /src/git/setup.c:1050,1
    - Dst: getenv_safe
      Src: /src/git/setup.c:1051,1
    - Dst: getenv_safe
      Src: /src/git/setup.c:1052,1
    - Dst: getenv_safe
      Src: /src/git/setup.c:1053,1
    - Dst: getenv_safe
      Src: /src/git/setup.c:1054,1
    - Dst: getenv
      Src: /src/git/setup.c:1055,1
    - Dst: repo_set_gitdir
      Src: /src/git/setup.c:1059,1
    - Dst: strvec_clear
      Src: /src/git/setup.c:1060,1
    - Dst: getenv
      Src: /src/git/setup.c:1062,1
    - Dst: disable_replace_refs
      Src: /src/git/setup.c:1063,1
    - Dst: getenv
      Src: /src/git/setup.c:1064,1
    - Dst: xstrdup
      Src: /src/git/setup.c:1065,1
    - Dst: update_ref_namespace
      Src: /src/git/setup.c:1067,1
    - Dst: getenv
      Src: /src/git/setup.c:1069,1
    - Dst: set_alternate_shallow_file
      Src: /src/git/setup.c:1071,1
    - Dst: git_env_bool
      Src: /src/git/setup.c:1073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - repo
    - git_dir
    - skip_initializing_odb
    argTypes:
    - struct repository*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1040
    functionDepth: 7
    functionLinenumber: 1040
    functionLinenumberEnd: 1075
    functionName: setup_git_env_internal
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    - update_ref_namespace
    - disable_replace_refs
    - getenv_safe
    - strvec_clear
    - getenv
    - repo_set_gitdir
    - set_alternate_shallow_file
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void setup_git_env_internal(struct repository *repo,\n\t\t\t\t   const
      char *git_dir,\n\t\t\t\t   bool skip_initializing_odb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_env_internal
      Src: /src/git/setup.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - repo
    - git_dir
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1077
    functionDepth: 8
    functionLinenumber: 1077
    functionLinenumberEnd: 1080
    functionName: setup_git_env
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - setup_git_env_internal
    linkageType: ''
    returnType: void
    signature: void setup_git_env(struct repository *repo, const char *git_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsetenv
      Src: /src/git/setup.c:1084,1
    - Dst: setup_git_env_internal
      Src: /src/git/setup.c:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - repo
    - path
    - skip_initializing_odb
    argTypes:
    - struct repository*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1082
    functionDepth: 8
    functionLinenumber: 1082
    functionLinenumberEnd: 1086
    functionName: set_git_dir_1
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - setup_git_env_internal
    - xsetenv
    linkageType: ''
    returnType: void
    signature: void set_git_dir_1(struct repository *repo, const char *path, bool
      skip_initializing_odb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reparent_relative_path
      Src: /src/git/setup.c:1094,1
    - Dst: repo_get_git_dir
      Src: /src/git/setup.c:1095,1
    - Dst: trace_printf_key
      Src: /src/git/setup.c:1096,1
    - Dst: set_git_dir_1
      Src: /src/git/setup.c:1099,1
    - Dst: free
      Src: /src/git/setup.c:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - UNUSED
    - old_cwd
    - new_cwd
    - data
    argTypes:
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1088
    functionDepth: 9
    functionLinenumber: 1088
    functionLinenumberEnd: 1101
    functionName: update_relative_gitdir
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - reparent_relative_path
    - set_git_dir_1
    - repo_get_git_dir
    - free
    linkageType: ''
    returnType: void
    signature: "void update_relative_gitdir(const char *name UNUSED,\n\t\t\t\t   const
      char *old_cwd,\n\t\t\t\t   const char *new_cwd,\n\t\t\t\t   void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/setup.c:1108,1
    - Dst: set_git_dir_1
      Src: /src/git/setup.c:1112,1
    - Dst: is_absolute_path
      Src: /src/git/setup.c:1113,1
    - Dst: chdir_notify_register
      Src: /src/git/setup.c:1114,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:1116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - repo
    - path
    - make_realpath
    argTypes:
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1103
    functionDepth: 9
    functionLinenumber: 1103
    functionLinenumberEnd: 1117
    functionName: set_git_dir
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - is_absolute_path
    - strbuf_realpath
    - chdir_notify_register
    - set_git_dir_1
    linkageType: ''
    returnType: void
    signature: void set_git_dir(struct repository *repo, const char *path, int make_realpath)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/setup.c:1125,1
    - Dst: strlen
      Src: /src/git/setup.c:1130,1
    - Dst: die
      Src: /src/git/setup.c:1131,1
    - Dst: _
      Src: /src/git/setup.c:1131,1
    - Dst: read_gitfile
      Src: /src/git/setup.c:1133,1
    - Dst: xstrdup
      Src: /src/git/setup.c:1135,1
    - Dst: is_git_directory
      Src: /src/git/setup.c:1139,1
    - Dst: free
      Src: /src/git/setup.c:1142,1
    - Dst: die
      Src: /src/git/setup.c:1145,1
    - Dst: _
      Src: /src/git/setup.c:1145,1
    - Dst: check_repository_format_gently
      Src: /src/git/setup.c:1148,1
    - Dst: free
      Src: /src/git/setup.c:1149,1
    - Dst: set_git_work_tree
      Src: /src/git/setup.c:1155,1
    - Dst: warning
      Src: /src/git/setup.c:1159,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:1164,1
    - Dst: free
      Src: /src/git/setup.c:1165,1
    - Dst: is_absolute_path
      Src: /src/git/setup.c:1169,1
    - Dst: set_git_work_tree
      Src: /src/git/setup.c:1170,1
    - Dst: chdir
      Src: /src/git/setup.c:1173,1
    - Dst: die_errno
      Src: /src/git/setup.c:1174,1
    - Dst: _
      Src: /src/git/setup.c:1174,1
    - Dst: chdir
      Src: /src/git/setup.c:1175,1
    - Dst: die_errno
      Src: /src/git/setup.c:1176,1
    - Dst: _
      Src: /src/git/setup.c:1176,1
    - Dst: xgetcwd
      Src: /src/git/setup.c:1177,1
    - Dst: chdir
      Src: /src/git/setup.c:1178,1
    - Dst: die_errno
      Src: /src/git/setup.c:1179,1
    - Dst: _
      Src: /src/git/setup.c:1179,1
    - Dst: set_git_work_tree
      Src: /src/git/setup.c:1180,1
    - Dst: free
      Src: /src/git/setup.c:1181,1
    - Dst: git_env_bool
      Src: /src/git/setup.c:1184,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:1186,1
    - Dst: free
      Src: /src/git/setup.c:1187,1
    - Dst: set_git_work_tree
      Src: /src/git/setup.c:1191,1
    - Dst: repo_get_work_tree
      Src: /src/git/setup.c:1194,1
    - Dst: strcmp
      Src: /src/git/setup.c:1197,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:1198,1
    - Dst: free
      Src: /src/git/setup.c:1199,1
    - Dst: dir_inside_of
      Src: /src/git/setup.c:1203,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:1205,1
    - Dst: chdir
      Src: /src/git/setup.c:1206,1
    - Dst: die_errno
      Src: /src/git/setup.c:1207,1
    - Dst: _
      Src: /src/git/setup.c:1207,1
    - Dst: strbuf_addch
      Src: /src/git/setup.c:1208,1
    - Dst: free
      Src: /src/git/setup.c:1209,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:1214,1
    - Dst: free
      Src: /src/git/setup.c:1215,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 5
    argNames:
    - repo
    - gitdirenv
    - cwd
    - repo_fmt
    - nongit_ok
    argTypes:
    - struct repository*
    - char*
    - struct strbuf*
    - struct repository_format*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1119
    functionDepth: 10
    functionLinenumber: 1119
    functionLinenumberEnd: 1217
    functionName: setup_explicit_git_dir
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - set_git_dir
    - read_gitfile
    - free
    - strcmp
    - xgetcwd
    - die
    - git_env_bool
    - set_git_work_tree
    - is_absolute_path
    - chdir
    - repo_get_work_tree
    - die_errno
    - dir_inside_of
    - _
    - is_git_directory
    - warning
    - xstrdup
    - strbuf_addch
    - strlen
    - getenv
    - check_repository_format_gently
    linkageType: ''
    returnType: char
    signature: "char *setup_explicit_git_dir(struct repository *repo,\n\t\t\t\t\t
      \ const char *gitdirenv,\n\t\t\t\t\t  struct strbuf *cwd,\n\t\t\t\t\t  struct
      repository_format *repo_fmt,\n\t\t\t\t\t  int *nongit_ok)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: check_repository_format_gently
      Src: /src/git/setup.c:1225,1
    - Dst: getenv
      Src: /src/git/setup.c:1229,1
    - Dst: is_absolute_path
      Src: /src/git/setup.c:1233,1
    - Dst: real_pathdup
      Src: /src/git/setup.c:1234,1
    - Dst: chdir
      Src: /src/git/setup.c:1235,1
    - Dst: die_errno
      Src: /src/git/setup.c:1236,1
    - Dst: _
      Src: /src/git/setup.c:1236,1
    - Dst: setup_explicit_git_dir
      Src: /src/git/setup.c:1237,1
    - Dst: free
      Src: /src/git/setup.c:1238,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:1244,1
    - Dst: chdir
      Src: /src/git/setup.c:1245,1
    - Dst: die_errno
      Src: /src/git/setup.c:1246,1
    - Dst: _
      Src: /src/git/setup.c:1246,1
    - Dst: set_git_work_tree
      Src: /src/git/setup.c:1251,1
    - Dst: strcmp
      Src: /src/git/setup.c:1252,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:1253,1
    - Dst: offset_1st_component
      Src: /src/git/setup.c:1258,1
    - Dst: strbuf_addch
      Src: /src/git/setup.c:1261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - repo
    - gitdir
    - cwd
    - offset
    - repo_fmt
    - nongit_ok
    argTypes:
    - struct repository*
    - char*
    - struct strbuf*
    - int
    - struct repository_format*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1219
    functionDepth: 11
    functionLinenumber: 1219
    functionLinenumberEnd: 1263
    functionName: setup_discovered_git_dir
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - is_absolute_path
    - chdir
    - set_git_dir
    - setup_explicit_git_dir
    - die_errno
    - set_git_work_tree
    - strbuf_addch
    - strcmp
    - offset_1st_component
    - _
    - free
    - getenv
    - check_repository_format_gently
    - real_pathdup
    linkageType: ''
    returnType: char
    signature: "char *setup_discovered_git_dir(struct repository *repo,\n\t\t\t\t\t
      \   const char *gitdir,\n\t\t\t\t\t    struct strbuf *cwd, int offset,\n\t\t\t\t\t
      \   struct repository_format *repo_fmt,\n\t\t\t\t\t    int *nongit_ok)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_repository_format_gently
      Src: /src/git/setup.c:1273,1
    - Dst: setenv
      Src: /src/git/setup.c:1276,1
    - Dst: getenv
      Src: /src/git/setup.c:1279,1
    - Dst: xmemdupz
      Src: /src/git/setup.c:1282,1
    - Dst: chdir
      Src: /src/git/setup.c:1283,1
    - Dst: die_errno
      Src: /src/git/setup.c:1284,1
    - Dst: _
      Src: /src/git/setup.c:1284,1
    - Dst: setup_explicit_git_dir
      Src: /src/git/setup.c:1285,1
    - Dst: chdir
      Src: /src/git/setup.c:1289,1
    - Dst: die_errno
      Src: /src/git/setup.c:1290,1
    - Dst: _
      Src: /src/git/setup.c:1290,1
    - Dst: offset_1st_component
      Src: /src/git/setup.c:1291,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:1292,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:1293,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:1296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - repo
    - cwd
    - offset
    - repo_fmt
    - nongit_ok
    argTypes:
    - struct repository*
    - struct strbuf*
    - int
    - struct repository_format*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1266
    functionDepth: 11
    functionLinenumber: 1266
    functionLinenumberEnd: 1298
    functionName: setup_bare_git_dir
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - chdir
    - set_git_dir
    - setup_explicit_git_dir
    - die_errno
    - strbuf_setlen
    - setenv
    - offset_1st_component
    - _
    - getenv
    - check_repository_format_gently
    linkageType: ''
    returnType: char
    signature: "char *setup_bare_git_dir(struct repository *repo,\n\t\t\t\t      struct
      strbuf *cwd, int offset,\n\t\t\t\t      struct repository_format *repo_fmt,\n\t\t\t\t
      \     int *nongit_ok)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/setup.c:1303,1
    - Dst: die_errno
      Src: /src/git/setup.c:1304,1
    - Dst: _
      Src: /src/git/setup.c:1304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - path
    - prefix
    - prefix_len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1310
    functionName: get_device_or_die
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - stat
    - die_errno
    - _
    linkageType: ''
    returnType: dev_t
    signature: dev_t get_device_or_die(const char *path, const char *prefix, int prefix_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute_path
      Src: /src/git/setup.c:1328,1
    - Dst: real_pathdup
      Src: /src/git/setup.c:1334,1
    - Dst: free
      Src: /src/git/setup.c:1338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1342
    functionName: canonicalize_ceiling_entry
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - real_pathdup
    - is_absolute_path
    - free
    linkageType: ''
    returnType: int
    signature: "int canonicalize_ceiling_entry(struct string_list_item *item,\n\t\t\t\t
      \     void *cb_data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/setup.c:1354,1
    - Dst: strcmp
      Src: /src/git/setup.c:1359,1
    - Dst: git_config_pathname
      Src: /src/git/setup.c:1364,1
    - Dst: is_absolute_path
      Src: /src/git/setup.c:1375,1
    - Dst: strcmp
      Src: /src/git/setup.c:1375,1
    - Dst: warning
      Src: /src/git/setup.c:1376,1
    - Dst: _
      Src: /src/git/setup.c:1376,1
    - Dst: real_pathdup
      Src: /src/git/setup.c:1389,1
    - Dst: ends_with
      Src: /src/git/setup.c:1393,1
    - Dst: strlen
      Src: /src/git/setup.c:1394,1
    - Dst: fspathncmp
      Src: /src/git/setup.c:1395,1
    - Dst: fspathcmp
      Src: /src/git/setup.c:1397,1
    - Dst: free
      Src: /src/git/setup.c:1401,1
    - Dst: free
      Src: /src/git/setup.c:1402,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - d
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1407
    functionName: safe_directory_cb
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - git_config_pathname
    - is_absolute_path
    - fspathncmp
    - ends_with
    - strlen
    - strcmp
    - _
    - free
    - real_pathdup
    - warning
    - fspathcmp
    linkageType: ''
    returnType: int
    signature: "int safe_directory_cb(const char *key, const char *value,\n\t\t\t
      \    const struct config_context *ctx UNUSED, void *d)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/setup.c:1423,1
    - Dst: is_path_owned_by_current_user
      Src: /src/git/setup.c:1424,1
    - Dst: is_path_owned_by_current_user
      Src: /src/git/setup.c:1425,1
    - Dst: is_path_owned_by_current_user
      Src: /src/git/setup.c:1426,1
    - Dst: real_pathdup
      Src: /src/git/setup.c:1434,1
    - Dst: git_protected_config
      Src: /src/git/setup.c:1443,1
    - Dst: free
      Src: /src/git/setup.c:1445,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 4
    argNames:
    - gitfile
    - worktree
    - gitdir
    - report
    argTypes:
    - char*
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1417
    functionDepth: 6
    functionLinenumber: 1417
    functionLinenumberEnd: 1447
    functionName: ensure_valid_ownership
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    - is_path_owned_by_current_user
    - free
    - real_pathdup
    - git_protected_config
    linkageType: ''
    returnType: int
    signature: "int ensure_valid_ownership(const char *gitfile,\n\t\t\t\t  const char
      *worktree, const char *gitdir,\n\t\t\t\t  struct strbuf *report)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_valid_ownership
      Src: /src/git/setup.c:1455,1
    - Dst: strbuf_complete
      Src: /src/git/setup.c:1458,1
    - Dst: sq_quote_buf_pretty
      Src: /src/git/setup.c:1460,1
    - Dst: die
      Src: /src/git/setup.c:1462,1
    - Dst: _
      Src: /src/git/setup.c:1462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - gitfile
    - worktree
    - gitdir
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1449
    functionDepth: 7
    functionLinenumber: 1449
    functionLinenumberEnd: 1468
    functionName: die_upon_dubious_ownership
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - die
    - ensure_valid_ownership
    - sq_quote_buf_pretty
    - strbuf_complete
    - _
    linkageType: ''
    returnType: void
    signature: "void die_upon_dubious_ownership(const char *gitfile, const char *worktree,\n\t\t\t\tconst
      char *gitdir)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/setup.c:1476,1
    - Dst: strcmp
      Src: /src/git/setup.c:1479,1
    - Dst: strcmp
      Src: /src/git/setup.c:1483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - d
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1488
    functionName: allowed_bare_repo_cb
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int allowed_bare_repo_cb(const char *key, const char *value,\n\t\t\t\tconst
      struct config_context *ctx UNUSED,\n\t\t\t\tvoid *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_protected_config
      Src: /src/git/setup.c:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1490
    functionDepth: 1
    functionLinenumber: 1490
    functionLinenumberEnd: 1499
    functionName: get_allowed_bare_repo
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - git_protected_config
    linkageType: ''
    returnType: enum allowed_bare_repo
    signature: enum allowed_bare_repo get_allowed_bare_repo(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/setup.c:1510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - allowed_bare_repo
    argTypes:
    - enum allowed_bare_repo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1514
    functionName: allowed_bare_repo_to_string
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: "char *allowed_bare_repo_to_string(\n\tenum allowed_bare_repo allowed_bare_repo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ends_with_path_components
      Src: /src/git/setup.c:1522,1
    - Dst: strstr
      Src: /src/git/setup.c:1529,1
    - Dst: strstr
      Src: /src/git/setup.c:1536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1540
    functionName: is_implicit_bare_repo
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - ends_with_path_components
    - strstr
    linkageType: ''
    returnType: int
    signature: int is_implicit_bare_repo(const char *path)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/setup.c:1560,1
    - Dst: offset_1st_component
      Src: /src/git/setup.c:1563,1
    - Dst: getenv
      Src: /src/git/setup.c:1572,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:1574,1
    - Dst: string_list_split
      Src: /src/git/setup.c:1582,1
    - Dst: filter_string_list
      Src: /src/git/setup.c:1583,1
    - Dst: longest_ancestor_length
      Src: /src/git/setup.c:1585,1
    - Dst: string_list_clear
      Src: /src/git/setup.c:1586,1
    - Dst: is_dir_sep
      Src: /src/git/setup.c:1593,1
    - Dst: strbuf_addch
      Src: /src/git/setup.c:1594,1
    - Dst: git_env_bool
      Src: /src/git/setup.c:1609,1
    - Dst: get_device_or_die
      Src: /src/git/setup.c:1611,1
    - Dst: strbuf_addch
      Src: /src/git/setup.c:1618,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:1619,1
    - Dst: read_gitfile_gently
      Src: /src/git/setup.c:1620,1
    - Dst: is_git_directory
      Src: /src/git/setup.c:1627,1
    - Dst: xstrdup
      Src: /src/git/setup.c:1629,1
    - Dst: die
      Src: /src/git/setup.c:1634,1
    - Dst: _
      Src: /src/git/setup.c:1634,1
    - Dst: die
      Src: /src/git/setup.c:1639,1
    - Dst: _
      Src: /src/git/setup.c:1639,1
    - Dst: read_gitfile_error_die
      Src: /src/git/setup.c:1644,1
    - Dst: xstrdup
      Src: /src/git/setup.c:1649,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:1657,1
    - Dst: ensure_valid_ownership
      Src: /src/git/setup.c:1663,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:1665,1
    - Dst: free
      Src: /src/git/setup.c:1680,1
    - Dst: free
      Src: /src/git/setup.c:1681,1
    - Dst: is_git_directory
      Src: /src/git/setup.c:1686,1
    - Dst: trace2_data_string
      Src: /src/git/setup.c:1687,1
    - Dst: get_allowed_bare_repo
      Src: /src/git/setup.c:1688,1
    - Dst: is_implicit_bare_repo
      Src: /src/git/setup.c:1689,1
    - Dst: ensure_valid_ownership
      Src: /src/git/setup.c:1691,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:1693,1
    - Dst: is_dir_sep
      Src: /src/git/setup.c:1700,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:1705,1
    - Dst: get_device_or_die
      Src: /src/git/setup.c:1707,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 82
    argCount: 4
    argNames:
    - dir
    - gitdir
    - report
    - die_on_error
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1555
    functionDepth: 7
    functionLinenumber: 1555
    functionLinenumberEnd: 1710
    functionName: setup_git_directory_gently_1
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - longest_ancestor_length
    - is_dir_sep
    - ensure_valid_ownership
    - free
    - get_device_or_die
    - git_env_bool
    - die
    - strbuf_setlen
    - strbuf_addstr
    - is_implicit_bare_repo
    - string_list_clear
    - read_gitfile_gently
    - filter_string_list
    - string_list_split
    - _
    - is_git_directory
    - xstrdup
    - read_gitfile_error_die
    - get_allowed_bare_repo
    - strbuf_addch
    - offset_1st_component
    - getenv
    - trace2_data_string
    linkageType: ''
    returnType: enum discovery_result
    signature: "enum discovery_result setup_git_directory_gently_1(struct strbuf *dir,\n\t\t\t\t\t\t\t
      \ struct strbuf *gitdir,\n\t\t\t\t\t\t\t  struct strbuf *report,\n\t\t\t\t\t\t\t
      \ int die_on_error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getcwd
      Src: /src/git/setup.c:1721,1
    - Dst: setup_git_directory_gently_1
      Src: /src/git/setup.c:1725,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:1727,1
    - Dst: is_absolute_path
      Src: /src/git/setup.c:1735,1
    - Dst: strcmp
      Src: /src/git/setup.c:1737,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:1738,1
    - Dst: strbuf_addch
      Src: /src/git/setup.c:1740,1
    - Dst: strbuf_insert
      Src: /src/git/setup.c:1741,1
    - Dst: get_common_dir
      Src: /src/git/setup.c:1744,1
    - Dst: strbuf_reset
      Src: /src/git/setup.c:1746,1
    - Dst: strbuf_addf
      Src: /src/git/setup.c:1747,1
    - Dst: read_repository_format
      Src: /src/git/setup.c:1748,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:1749,1
    - Dst: verify_repository_format
      Src: /src/git/setup.c:1751,1
    - Dst: warning
      Src: /src/git/setup.c:1752,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:1754,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:1755,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:1756,1
    - Dst: clear_repository_format
      Src: /src/git/setup.c:1757,1
    - Dst: clear_repository_format
      Src: /src/git/setup.c:1761,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - commondir
    - gitdir
    argTypes:
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1712
    functionDepth: 8
    functionLinenumber: 1712
    functionLinenumberEnd: 1763
    functionName: discover_git_directory_reason
    functionSourceFile: /src/git/setup.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - is_absolute_path
    - read_repository_format
    - strbuf_reset
    - strbuf_getcwd
    - strbuf_setlen
    - strbuf_insert
    - strbuf_addch
    - get_common_dir
    - strbuf_addf
    - verify_repository_format
    - clear_repository_format
    - strcmp
    - setup_git_directory_gently_1
    - warning
    linkageType: ''
    returnType: enum discovery_result
    signature: "enum discovery_result discover_git_directory_reason(struct strbuf
      *commondir,\n\t\t\t\t\t\t    struct strbuf *gitdir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_repository_format_gently
      Src: /src/git/setup.c:1778,1
    - Dst: repo_get_git_dir
      Src: /src/git/setup.c:1778,1
    - Dst: repo_set_hash_algo
      Src: /src/git/setup.c:1780,1
    - Dst: repo_set_compat_hash_algo
      Src: /src/git/setup.c:1781,1
    - Dst: repo_set_ref_storage_format
      Src: /src/git/setup.c:1782,1
    - Dst: xstrdup_or_null
      Src: /src/git/setup.c:1792,1
    - Dst: clear_repository_format
      Src: /src/git/setup.c:1793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - repo
    - fmt
    argTypes:
    - struct repository*
    - struct repository_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1773
    functionDepth: 6
    functionLinenumber: 1773
    functionLinenumberEnd: 1794
    functionName: check_repository_format
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - repo_set_compat_hash_algo
    - xstrdup_or_null
    - repo_get_git_dir
    - clear_repository_format
    - repo_set_ref_storage_format
    - repo_set_hash_algo
    - check_repository_format_gently
    linkageType: ''
    returnType: void
    signature: void check_repository_format(struct repository *repo, struct repository_format
      *fmt)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/setup.c:1809,1
    - Dst: strbuf_reset
      Src: /src/git/setup.c:1821,1
    - Dst: strbuf_reset
      Src: /src/git/setup.c:1822,1
    - Dst: strbuf_add
      Src: /src/git/setup.c:1823,1
    - Dst: strbuf_add
      Src: /src/git/setup.c:1824,1
    - Dst: interpolate_path
      Src: /src/git/setup.c:1827,1
    - Dst: strbuf_attach
      Src: /src/git/setup.c:1830,1
    - Dst: strlen
      Src: /src/git/setup.c:1830,1
    - Dst: strlen
      Src: /src/git/setup.c:1831,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:1836,1
    - Dst: stat
      Src: /src/git/setup.c:1837,1
    - Dst: S_ISREG
      Src: /src/git/setup.c:1838,1
    - Dst: S_ISDIR
      Src: /src/git/setup.c:1839,1
    - Dst: is_git_directory
      Src: /src/git/setup.c:1839,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:1840,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:1843,1
    - Dst: read_gitfile
      Src: /src/git/setup.c:1847,1
    - Dst: die_upon_dubious_ownership
      Src: /src/git/setup.c:1849,1
    - Dst: strbuf_reset
      Src: /src/git/setup.c:1851,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:1852,1
    - Dst: chdir
      Src: /src/git/setup.c:1854,1
    - Dst: read_gitfile
      Src: /src/git/setup.c:1859,1
    - Dst: die_upon_dubious_ownership
      Src: /src/git/setup.c:1861,1
    - Dst: chdir
      Src: /src/git/setup.c:1864,1
    - Dst: is_git_directory
      Src: /src/git/setup.c:1868,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:1869,1
    - Dst: check_repository_format
      Src: /src/git/setup.c:1870,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 3
    argNames:
    - repo
    - path
    - flags
    argTypes:
    - struct repository*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1796
    functionDepth: 10
    functionLinenumber: 1796
    functionLinenumberEnd: 1875
    functionName: enter_repo
    functionSourceFile: /src/git/setup.c
    functionUses: 1
    functionsReached:
    - interpolate_path
    - S_ISDIR
    - chdir
    - set_git_dir
    - strbuf_reset
    - strbuf_attach
    - stat
    - strbuf_setlen
    - read_gitfile
    - strlen
    - strbuf_addstr
    - check_repository_format
    - is_git_directory
    - die_upon_dubious_ownership
    - strbuf_add
    - S_ISREG
    linkageType: ''
    returnType: char
    signature: char *enter_repo(struct repository *repo, const char *path, unsigned
      flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/setup.c:1887,1
    - Dst: strcmp
      Src: /src/git/setup.c:1889,1
    - Dst: die
      Src: /src/git/setup.c:1890,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:1893,1
    - Dst: repo_set_worktree
      Src: /src/git/setup.c:1897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - repo
    - new_work_tree
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1882
    functionDepth: 3
    functionLinenumber: 1882
    functionLinenumberEnd: 1898
    functionName: set_git_work_tree
    functionSourceFile: /src/git/setup.c
    functionUses: 2
    functionsReached:
    - repo_set_worktree
    - strbuf_release
    - die
    - strbuf_realpath
    - strcmp
    linkageType: ''
    returnType: void
    signature: void set_git_work_tree(struct repository *repo, const char *new_work_tree)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_clear
      Src: /src/git/setup.c:1915,1
    - Dst: strbuf_getcwd
      Src: /src/git/setup.c:1925,1
    - Dst: die_errno
      Src: /src/git/setup.c:1926,1
    - Dst: _
      Src: /src/git/setup.c:1926,1
    - Dst: strbuf_addbuf
      Src: /src/git/setup.c:1927,1
    - Dst: setup_git_directory_gently_1
      Src: /src/git/setup.c:1929,1
    - Dst: setup_explicit_git_dir
      Src: /src/git/setup.c:1931,1
    - Dst: chdir
      Src: /src/git/setup.c:1934,1
    - Dst: die
      Src: /src/git/setup.c:1935,1
    - Dst: _
      Src: /src/git/setup.c:1935,1
    - Dst: setup_discovered_git_dir
      Src: /src/git/setup.c:1936,1
    - Dst: chdir
      Src: /src/git/setup.c:1940,1
    - Dst: die
      Src: /src/git/setup.c:1941,1
    - Dst: _
      Src: /src/git/setup.c:1941,1
    - Dst: setup_bare_git_dir
      Src: /src/git/setup.c:1942,1
    - Dst: die
      Src: /src/git/setup.c:1946,1
    - Dst: _
      Src: /src/git/setup.c:1946,1
    - Dst: die
      Src: /src/git/setup.c:1952,1
    - Dst: _
      Src: /src/git/setup.c:1952,1
    - Dst: strbuf_complete
      Src: /src/git/setup.c:1961,1
    - Dst: sq_quote_buf_pretty
      Src: /src/git/setup.c:1962,1
    - Dst: die
      Src: /src/git/setup.c:1963,1
    - Dst: _
      Src: /src/git/setup.c:1963,1
    - Dst: die
      Src: /src/git/setup.c:1974,1
    - Dst: _
      Src: /src/git/setup.c:1974,1
    - Dst: allowed_bare_repo_to_string
      Src: /src/git/setup.c:1976,1
    - Dst: get_allowed_bare_repo
      Src: /src/git/setup.c:1976,1
    - Dst: BUG
      Src: /src/git/setup.c:1989,1
    - Dst: getenv
      Src: /src/git/setup.c:2021,1
    - Dst: getenv
      Src: /src/git/setup.c:2023,1
    - Dst: setup_git_env
      Src: /src/git/setup.c:2026,1
    - Dst: repo_set_hash_algo
      Src: /src/git/setup.c:2029,1
    - Dst: repo_set_compat_hash_algo
      Src: /src/git/setup.c:2030,1
    - Dst: repo_set_ref_storage_format
      Src: /src/git/setup.c:2032,1
    - Dst: precompose_string_if_needed
      Src: /src/git/setup.c:2057,1
    - Dst: setenv
      Src: /src/git/setup.c:2059,1
    - Dst: setenv
      Src: /src/git/setup.c:2062,1
    - Dst: getenv
      Src: /src/git/setup.c:2069,1
    - Dst: parse_reference_uri
      Src: /src/git/setup.c:2074,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/setup.c:2075,1
    - Dst: die
      Src: /src/git/setup.c:2077,1
    - Dst: _
      Src: /src/git/setup.c:2077,1
    - Dst: repo_set_ref_storage_format
      Src: /src/git/setup.c:2078,1
    - Dst: free
      Src: /src/git/setup.c:2080,1
    - Dst: free
      Src: /src/git/setup.c:2081,1
    - Dst: setup_original_cwd
      Src: /src/git/setup.c:2084,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2086,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2087,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2088,1
    - Dst: clear_repository_format
      Src: /src/git/setup.c:2089,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 95
    argCount: 2
    argNames:
    - repo
    - nongit_ok
    argTypes:
    - struct repository*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 1900
    functionDepth: 12
    functionLinenumber: 1900
    functionLinenumberEnd: 2092
    functionName: setup_git_directory_gently
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - repo_config_clear
    - strbuf_addbuf
    - clear_repository_format
    - strbuf_complete
    - free
    - repo_set_hash_algo
    - repo_set_compat_hash_algo
    - strbuf_release
    - die
    - strbuf_getcwd
    - ref_storage_format_by_name
    - setup_discovered_git_dir
    - chdir
    - setup_original_cwd
    - die_errno
    - allowed_bare_repo_to_string
    - precompose_string_if_needed
    - _
    - repo_set_ref_storage_format
    - get_allowed_bare_repo
    - parse_reference_uri
    - setup_explicit_git_dir
    - setup_git_env
    - sq_quote_buf_pretty
    - setenv
    - setup_bare_git_dir
    - setup_git_directory_gently_1
    - getenv
    - BUG
    linkageType: ''
    returnType: char
    signature: char *setup_git_directory_gently(struct repository *repo, int *nongit_ok)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/setup.c:2102,1
    - Dst: strcmp
      Src: /src/git/setup.c:2104,1
    - Dst: strcmp
      Src: /src/git/setup.c:2106,1
    - Dst: strcmp
      Src: /src/git/setup.c:2107,1
    - Dst: strcmp
      Src: /src/git/setup.c:2108,1
    - Dst: strtol
      Src: /src/git/setup.c:2112,1
    - Dst: git_config_bool
      Src: /src/git/setup.c:2116,1
    - Dst: die
      Src: /src/git/setup.c:2134,1
    - Dst: _
      Src: /src/git/setup.c:2134,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2094
    functionDepth: 1
    functionLinenumber: 2094
    functionLinenumberEnd: 2143
    functionName: git_config_perm
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - die
    - git_config_bool
    - strcmp
    - _
    - strtol
    linkageType: ''
    returnType: int
    signature: int git_config_perm(const char *var, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory_gently
      Src: /src/git/setup.c:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2151
    functionDepth: 13
    functionLinenumber: 2151
    functionLinenumberEnd: 2154
    functionName: setup_git_directory
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - setup_git_directory_gently
    linkageType: ''
    returnType: char
    signature: char *setup_git_directory(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_git_directory
      Src: /src/git/setup.c:2158,1
    - Dst: read_gitfile_gently
      Src: /src/git/setup.c:2160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - suspect
    - return_error_code
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2156
    functionDepth: 7
    functionLinenumber: 2156
    functionLinenumberEnd: 2161
    functionName: resolve_gitdir_gently
    functionSourceFile: /src/git/setup.c
    functionUses: 1
    functionsReached:
    - is_git_directory
    - read_gitfile_gently
    linkageType: ''
    returnType: char
    signature: char *resolve_gitdir_gently(const char *suspect, int *return_error_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xopen
      Src: /src/git/setup.c:2166,1
    - Dst: xdup
      Src: /src/git/setup.c:2168,1
    - Dst: close
      Src: /src/git/setup.c:2170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2164
    functionDepth: 1
    functionLinenumber: 2164
    functionLinenumberEnd: 2171
    functionName: sanitize_stdfds
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - close
    - xopen
    - xdup
    linkageType: ''
    returnType: void
    signature: void sanitize_stdfds(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/git/setup.c:2179,1
    - Dst: fork
      Src: /src/git/setup.c:2180,1
    - Dst: reassign_tempfile_ownership
      Src: /src/git/setup.c:2188,1
    - Dst: getpid
      Src: /src/git/setup.c:2188,1
    - Dst: die_errno
      Src: /src/git/setup.c:2191,1
    - Dst: _
      Src: /src/git/setup.c:2191,1
    - Dst: reassign_tempfile_ownership
      Src: /src/git/setup.c:2198,1
    - Dst: exit
      Src: /src/git/setup.c:2199,1
    - Dst: setsid
      Src: /src/git/setup.c:2201,1
    - Dst: die_errno
      Src: /src/git/setup.c:2202,1
    - Dst: _
      Src: /src/git/setup.c:2202,1
    - Dst: close
      Src: /src/git/setup.c:2203,1
    - Dst: close
      Src: /src/git/setup.c:2204,1
    - Dst: close
      Src: /src/git/setup.c:2205,1
    - Dst: sanitize_stdfds
      Src: /src/git/setup.c:2206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2173
    functionDepth: 2
    functionLinenumber: 2173
    functionLinenumberEnd: 2209
    functionName: daemonize
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - fork
    - die_errno
    - exit
    - sanitize_stdfds
    - close
    - setsid
    - _
    - getpid
    - reassign_tempfile_ownership
    linkageType: ''
    returnType: int
    signature: int daemonize(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/setup.c:2221,1
    - Dst: FREE_AND_NULL
      Src: /src/git/setup.c:2229,1
    - Dst: git_config_pathname
      Src: /src/git/setup.c:2230,1
    - Dst: xstrdup
      Src: /src/git/setup.c:2231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - d
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2216
    functionDepth: 1
    functionLinenumber: 2216
    functionLinenumberEnd: 2235
    functionName: template_dir_cb
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - git_config_pathname
    - FREE_AND_NULL
    - xstrdup
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int template_dir_cb(const char *key, const char *value,\n\t\t\t   const
      struct config_context *ctx UNUSED, void *d)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/setup.c:2242,1
    - Dst: git_protected_config
      Src: /src/git/setup.c:2247,1
    - Dst: system_path
      Src: /src/git/setup.c:2256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - option_template
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2237
    functionDepth: 3
    functionLinenumber: 2237
    functionLinenumberEnd: 2260
    functionName: get_template_dir
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - getenv
    - system_path
    - git_protected_config
    linkageType: ''
    returnType: char
    signature: char *get_template_dir(const char *option_template)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: safe_create_dir
      Src: /src/git/setup.c:2286,1
    - Dst: readdir
      Src: /src/git/setup.c:2287,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:2291,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:2292,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:2296,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:2297,1
    - Dst: lstat
      Src: /src/git/setup.c:2298,1
    - Dst: die_errno
      Src: /src/git/setup.c:2300,1
    - Dst: _
      Src: /src/git/setup.c:2300,1
    - Dst: lstat
      Src: /src/git/setup.c:2305,1
    - Dst: die_errno
      Src: /src/git/setup.c:2306,1
    - Dst: _
      Src: /src/git/setup.c:2306,1
    - Dst: S_ISDIR
      Src: /src/git/setup.c:2308,1
    - Dst: opendir
      Src: /src/git/setup.c:2309,1
    - Dst: die_errno
      Src: /src/git/setup.c:2311,1
    - Dst: _
      Src: /src/git/setup.c:2311,1
    - Dst: strbuf_addch
      Src: /src/git/setup.c:2312,1
    - Dst: strbuf_addch
      Src: /src/git/setup.c:2313,1
    - Dst: copy_templates_1
      Src: /src/git/setup.c:2314,1
    - Dst: closedir
      Src: /src/git/setup.c:2315,1
    - Dst: S_ISLNK
      Src: /src/git/setup.c:2319,1
    - Dst: strbuf_readlink
      Src: /src/git/setup.c:2321,1
    - Dst: die_errno
      Src: /src/git/setup.c:2323,1
    - Dst: _
      Src: /src/git/setup.c:2323,1
    - Dst: symlink
      Src: /src/git/setup.c:2324,1
    - Dst: die_errno
      Src: /src/git/setup.c:2325,1
    - Dst: _
      Src: /src/git/setup.c:2325,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2327,1
    - Dst: S_ISREG
      Src: /src/git/setup.c:2329,1
    - Dst: copy_file
      Src: /src/git/setup.c:2330,1
    - Dst: die_errno
      Src: /src/git/setup.c:2331,1
    - Dst: _
      Src: /src/git/setup.c:2331,1
    - Dst: error
      Src: /src/git/setup.c:2335,1
    - Dst: _
      Src: /src/git/setup.c:2335,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - repo
    - path
    - template_path
    - dir
    argTypes:
    - struct repository*
    - struct strbuf*
    - struct strbuf*
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2270
    functionDepth: 4
    functionLinenumber: 2270
    functionLinenumberEnd: 2337
    functionName: copy_templates_1
    functionSourceFile: /src/git/setup.c
    functionUses: 1
    functionsReached:
    - S_ISLNK
    - error
    - strbuf_release
    - strbuf_setlen
    - copy_templates_1
    - strbuf_addstr
    - readdir
    - S_ISREG
    - die_errno
    - _
    - closedir
    - symlink
    - S_ISDIR
    - strbuf_readlink
    - strbuf_addch
    - safe_create_dir
    - opendir
    - copy_file
    - lstat
    linkageType: ''
    returnType: void
    signature: "void copy_templates_1(struct repository *repo,\n\t\t\t     struct
      strbuf *path,\n\t\t\t     struct strbuf *template_path,\n\t\t\t     DIR *dir)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_template_dir
      Src: /src/git/setup.c:2341,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:2353,1
    - Dst: strbuf_complete
      Src: /src/git/setup.c:2354,1
    - Dst: opendir
      Src: /src/git/setup.c:2357,1
    - Dst: warning
      Src: /src/git/setup.c:2359,1
    - Dst: _
      Src: /src/git/setup.c:2359,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:2364,1
    - Dst: read_repository_format
      Src: /src/git/setup.c:2365,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:2366,1
    - Dst: verify_repository_format
      Src: /src/git/setup.c:2373,1
    - Dst: warning
      Src: /src/git/setup.c:2374,1
    - Dst: _
      Src: /src/git/setup.c:2374,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2376,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:2380,1
    - Dst: repo_get_common_dir
      Src: /src/git/setup.c:2380,1
    - Dst: strbuf_complete
      Src: /src/git/setup.c:2381,1
    - Dst: copy_templates_1
      Src: /src/git/setup.c:2382,1
    - Dst: closedir
      Src: /src/git/setup.c:2384,1
    - Dst: free
      Src: /src/git/setup.c:2386,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2387,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2388,1
    - Dst: clear_repository_format
      Src: /src/git/setup.c:2389,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - repo
    - option_template
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2339
    functionDepth: 5
    functionLinenumber: 2339
    functionLinenumberEnd: 2390
    functionName: copy_templates
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - get_template_dir
    - strbuf_release
    - read_repository_format
    - closedir
    - strbuf_setlen
    - repo_get_common_dir
    - copy_templates_1
    - verify_repository_format
    - opendir
    - clear_repository_format
    - strbuf_addstr
    - strbuf_complete
    - free
    - warning
    - _
    linkageType: ''
    returnType: void
    signature: void copy_templates(struct repository *repo, const char *option_template)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/setup.c:2398,1
    - Dst: strcmp
      Src: /src/git/setup.c:2398,1
    - Dst: skip_prefix
      Src: /src/git/setup.c:2400,1
    - Dst: strcmp
      Src: /src/git/setup.c:2401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - git_dir
    - work_tree
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2396
    functionDepth: 1
    functionLinenumber: 2396
    functionLinenumberEnd: 2404
    functionName: needs_work_tree_config
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - strcmp
    linkageType: ''
    returnType: int
    signature: int needs_work_tree_config(const char *git_dir, const char *work_tree)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set
      Src: /src/git/setup.c:2428,1
    - Dst: repo_config_set_gently
      Src: /src/git/setup.c:2431,1
    - Dst: strbuf_addf
      Src: /src/git/setup.c:2436,1
    - Dst: ref_storage_format_to_name
      Src: /src/git/setup.c:2437,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2439,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2440,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2442,1
    - Dst: ref_storage_format_to_name
      Src: /src/git/setup.c:2443,1
    - Dst: repo_config_set_gently
      Src: /src/git/setup.c:2445,1
    - Dst: repo_common_path_append
      Src: /src/git/setup.c:2452,1
    - Dst: read_repository_format
      Src: /src/git/setup.c:2453,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2458,1
    - Dst: clear_repository_format
      Src: /src/git/setup.c:2459,1
    - Dst: repo_config_get_bool
      Src: /src/git/setup.c:2462,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2468,1
    - Dst: strbuf_addf
      Src: /src/git/setup.c:2471,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2472,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2474,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - repo
    - hash_algo
    - ref_storage_format
    - reinit
    argTypes:
    - struct repository*
    - int
    - enum ref_storage_format
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2406
    functionDepth: 3
    functionLinenumber: 2406
    functionLinenumberEnd: 2475
    functionName: initialize_repository_version
    functionSourceFile: /src/git/setup.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - read_repository_format
    - repo_config_set
    - strbuf_addf
    - repo_common_path_append
    - ref_storage_format_to_name
    - repo_config_get_bool
    - clear_repository_format
    - repo_config_set_gently
    linkageType: ''
    returnType: void
    signature: "void initialize_repository_version(struct repository *repo,\n\t\t\t\t
      \  int hash_algo,\n\t\t\t\t   enum ref_storage_format ref_storage_format,\n\t\t\t\t
      \  int reinit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path_replace
      Src: /src/git/setup.c:2483,1
    - Dst: access
      Src: /src/git/setup.c:2484,1
    - Dst: readlink
      Src: /src/git/setup.c:2484,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2477
    functionDepth: 3
    functionLinenumber: 2477
    functionLinenumberEnd: 2487
    functionName: is_reinit
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - access
    - repo_git_path_replace
    - strbuf_release
    - readlink
    linkageType: ''
    returnType: int
    signature: int is_reinit(struct repository *repo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_reinit
      Src: /src/git/setup.c:2494,1
    - Dst: ref_store_create_on_disk
      Src: /src/git/setup.c:2496,1
    - Dst: get_main_ref_store
      Src: /src/git/setup.c:2496,1
    - Dst: die
      Src: /src/git/setup.c:2497,1
    - Dst: repo_default_branch_name
      Src: /src/git/setup.c:2508,1
    - Dst: xstrfmt
      Src: /src/git/setup.c:2510,1
    - Dst: check_refname_format
      Src: /src/git/setup.c:2511,1
    - Dst: die
      Src: /src/git/setup.c:2512,1
    - Dst: _
      Src: /src/git/setup.c:2512,1
    - Dst: refs_update_symref
      Src: /src/git/setup.c:2515,1
    - Dst: get_main_ref_store
      Src: /src/git/setup.c:2515,1
    - Dst: exit
      Src: /src/git/setup.c:2516,1
    - Dst: free
      Src: /src/git/setup.c:2517,1
    - Dst: warning
      Src: /src/git/setup.c:2521,1
    - Dst: _
      Src: /src/git/setup.c:2521,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2524,1
    - Dst: free
      Src: /src/git/setup.c:2525,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - repo
    - initial_branch
    - quiet
    argTypes:
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2489
    functionDepth: 5
    functionLinenumber: 2489
    functionLinenumberEnd: 2526
    functionName: create_reference_database
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - ref_store_create_on_disk
    - xstrfmt
    - refs_update_symref
    - exit
    - repo_default_branch_name
    - is_reinit
    - check_refname_format
    - _
    - free
    - warning
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void create_reference_database(struct repository *repo,\n\t\t\t       const
      char *initial_branch, int quiet)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_work_tree
      Src: /src/git/setup.c:2538,1
    - Dst: copy_templates
      Src: /src/git/setup.c:2549,1
    - Dst: repo_config_clear
      Src: /src/git/setup.c:2550,1
    - Dst: repo_settings_reset_shared_repository
      Src: /src/git/setup.c:2551,1
    - Dst: repo_config
      Src: /src/git/setup.c:2552,1
    - Dst: is_reinit
      Src: /src/git/setup.c:2554,1
    - Dst: repo_settings_set_shared_repository
      Src: /src/git/setup.c:2561,1
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/setup.c:2570,1
    - Dst: adjust_shared_perm
      Src: /src/git/setup.c:2571,1
    - Dst: repo_get_git_dir
      Src: /src/git/setup.c:2571,1
    - Dst: initialize_repository_version
      Src: /src/git/setup.c:2574,1
    - Dst: repo_git_path_replace
      Src: /src/git/setup.c:2577,1
    - Dst: lstat
      Src: /src/git/setup.c:2579,1
    - Dst: chmod
      Src: /src/git/setup.c:2581,1
    - Dst: lstat
      Src: /src/git/setup.c:2582,1
    - Dst: chmod
      Src: /src/git/setup.c:2584,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2588,1
    - Dst: is_bare_repository
      Src: /src/git/setup.c:2590,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2591,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2593,1
    - Dst: repo_settings_get_log_all_ref_updates
      Src: /src/git/setup.c:2595,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2596,1
    - Dst: needs_work_tree_config
      Src: /src/git/setup.c:2597,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2598,1
    - Dst: repo_git_path_replace
      Src: /src/git/setup.c:2603,1
    - Dst: close
      Src: /src/git/setup.c:2604,1
    - Dst: xmkstemp
      Src: /src/git/setup.c:2604,1
    - Dst: unlink
      Src: /src/git/setup.c:2605,1
    - Dst: symlink
      Src: /src/git/setup.c:2606,1
    - Dst: lstat
      Src: /src/git/setup.c:2607,1
    - Dst: S_ISLNK
      Src: /src/git/setup.c:2608,1
    - Dst: unlink
      Src: /src/git/setup.c:2609,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2611,1
    - Dst: repo_git_path_replace
      Src: /src/git/setup.c:2614,1
    - Dst: access
      Src: /src/git/setup.c:2615,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2616,1
    - Dst: probe_utf8_pathname_composition
      Src: /src/git/setup.c:2617,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2620,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 5
    argNames:
    - repo
    - template_path
    - original_git_dir
    - fmt
    - init_shared_repository
    argTypes:
    - struct repository*
    - char*
    - char*
    - struct repository_format*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2528
    functionDepth: 6
    functionLinenumber: 2528
    functionLinenumberEnd: 2622
    functionName: create_default_files
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - repo_config_clear
    - S_ISLNK
    - repo_config_set
    - copy_templates
    - adjust_shared_perm
    - repo_config
    - strbuf_release
    - access
    - repo_settings_get_shared_repository
    - initialize_repository_version
    - xmkstemp
    - repo_settings_set_shared_repository
    - unlink
    - probe_utf8_pathname_composition
    - repo_get_work_tree
    - is_reinit
    - needs_work_tree_config
    - repo_settings_get_log_all_ref_updates
    - symlink
    - repo_settings_reset_shared_repository
    - is_bare_repository
    - chmod
    - repo_get_git_dir
    - close
    - repo_git_path_replace
    - lstat
    linkageType: ''
    returnType: int
    signature: "int create_default_files(struct repository *repo,\n\t\t\t\tconst char
      *template_path,\n\t\t\t\tconst char *original_git_dir,\n\t\t\t\tconst struct
      repository_format *fmt,\n\t\t\t\tint init_shared_repository)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:2629,1
    - Dst: repo_get_object_directory
      Src: /src/git/setup.c:2629,1
    - Dst: safe_create_dir
      Src: /src/git/setup.c:2632,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:2634,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:2635,1
    - Dst: safe_create_dir
      Src: /src/git/setup.c:2636,1
    - Dst: strbuf_setlen
      Src: /src/git/setup.c:2638,1
    - Dst: strbuf_addstr
      Src: /src/git/setup.c:2639,1
    - Dst: safe_create_dir
      Src: /src/git/setup.c:2640,1
    - Dst: strbuf_release
      Src: /src/git/setup.c:2642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2624
    functionDepth: 3
    functionLinenumber: 2624
    functionLinenumberEnd: 2643
    functionName: create_object_directory
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_setlen
    - safe_create_dir
    - repo_get_object_directory
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void create_object_directory(struct repository *repo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/setup.c:2649,1
    - Dst: S_ISREG
      Src: /src/git/setup.c:2652,1
    - Dst: read_gitfile
      Src: /src/git/setup.c:2653,1
    - Dst: S_ISDIR
      Src: /src/git/setup.c:2654,1
    - Dst: die
      Src: /src/git/setup.c:2657,1
    - Dst: _
      Src: /src/git/setup.c:2657,1
    - Dst: rename
      Src: /src/git/setup.c:2659,1
    - Dst: die_errno
      Src: /src/git/setup.c:2660,1
    - Dst: _
      Src: /src/git/setup.c:2660,1
    - Dst: repair_worktrees_after_gitdir_move
      Src: /src/git/setup.c:2661,1
    - Dst: write_file
      Src: /src/git/setup.c:2664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - git_dir
    - git_link
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2645
    functionDepth: 1
    functionLinenumber: 2645
    functionLinenumberEnd: 2665
    functionName: separate_git_dir
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - die
    - write_file
    - stat
    - die_errno
    - rename
    - read_gitfile
    - _
    - repair_worktrees_after_gitdir_move
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void separate_git_dir(const char *git_dir, const char *git_link)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/setup.c:2680,1
    - Dst: git_config_string
      Src: /src/git/setup.c:2681,1
    - Dst: hash_algo_by_name
      Src: /src/git/setup.c:2684,1
    - Dst: warning
      Src: /src/git/setup.c:2686,1
    - Dst: _
      Src: /src/git/setup.c:2686,1
    - Dst: strcmp
      Src: /src/git/setup.c:2690,1
    - Dst: git_config_string
      Src: /src/git/setup.c:2691,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/setup.c:2694,1
    - Dst: warning
      Src: /src/git/setup.c:2696,1
    - Dst: _
      Src: /src/git/setup.c:2696,1
    - Dst: strcmp
      Src: /src/git/setup.c:2704,1
    - Dst: git_config_bool
      Src: /src/git/setup.c:2706,1
    - Dst: free
      Src: /src/git/setup.c:2714,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - payload
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2672
    functionDepth: 1
    functionLinenumber: 2672
    functionLinenumberEnd: 2716
    functionName: read_default_format_config
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - git_config_string
    - strcmp
    - ref_storage_format_by_name
    - _
    - free
    - hash_algo_by_name
    - warning
    linkageType: ''
    returnType: int
    signature: "int read_default_format_config(const char *key, const char *value,\n\t\t\t\t
      \     const struct config_context *ctx UNUSED,\n\t\t\t\t      void *payload)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: config_with_options
      Src: /src/git/setup.c:2734,1
    - Dst: getenv
      Src: /src/git/setup.c:2741,1
    - Dst: die
      Src: /src/git/setup.c:2743,1
    - Dst: _
      Src: /src/git/setup.c:2743,1
    - Dst: hash_algo_by_name
      Src: /src/git/setup.c:2747,1
    - Dst: die
      Src: /src/git/setup.c:2749,1
    - Dst: _
      Src: /src/git/setup.c:2749,1
    - Dst: repo_set_hash_algo
      Src: /src/git/setup.c:2756,1
    - Dst: getenv
      Src: /src/git/setup.c:2758,1
    - Dst: die
      Src: /src/git/setup.c:2762,1
    - Dst: _
      Src: /src/git/setup.c:2762,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/setup.c:2766,1
    - Dst: die
      Src: /src/git/setup.c:2768,1
    - Dst: _
      Src: /src/git/setup.c:2768,1
    - Dst: getenv
      Src: /src/git/setup.c:2779,1
    - Dst: parse_reference_uri
      Src: /src/git/setup.c:2784,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/setup.c:2785,1
    - Dst: die
      Src: /src/git/setup.c:2787,1
    - Dst: _
      Src: /src/git/setup.c:2787,1
    - Dst: free
      Src: /src/git/setup.c:2792,1
    - Dst: repo_set_ref_storage_format
      Src: /src/git/setup.c:2795,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 4
    argNames:
    - repo
    - repo_fmt
    - hash
    - ref_format
    argTypes:
    - struct repository*
    - struct repository_format*
    - int
    - enum ref_storage_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2718
    functionDepth: 3
    functionLinenumber: 2718
    functionLinenumberEnd: 2797
    functionName: repository_format_configure
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - die
    - parse_reference_uri
    - free
    - hash_algo_by_name
    - ref_storage_format_by_name
    - config_with_options
    - _
    - repo_set_hash_algo
    - getenv
    - repo_set_ref_storage_format
    linkageType: ''
    returnType: void
    signature: "void repository_format_configure(struct repository *repo,\n\t\t\t\t\tstruct
      repository_format *repo_fmt,\n\t\t\t\t\tint hash, enum ref_storage_format ref_format)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: real_pathdup
      Src: /src/git/setup.c:2808,1
    - Dst: stat
      Src: /src/git/setup.c:2814,1
    - Dst: die
      Src: /src/git/setup.c:2815,1
    - Dst: _
      Src: /src/git/setup.c:2815,1
    - Dst: stat
      Src: /src/git/setup.c:2817,1
    - Dst: die
      Src: /src/git/setup.c:2818,1
    - Dst: _
      Src: /src/git/setup.c:2818,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:2820,1
    - Dst: repo_get_git_dir
      Src: /src/git/setup.c:2821,1
    - Dst: separate_git_dir
      Src: /src/git/setup.c:2822,1
    - Dst: set_git_dir
      Src: /src/git/setup.c:2825,1
    - Dst: repo_get_git_dir
      Src: /src/git/setup.c:2826,1
    - Dst: check_repository_format
      Src: /src/git/setup.c:2836,1
    - Dst: repository_format_configure
      Src: /src/git/setup.c:2838,1
    - Dst: repo_config
      Src: /src/git/setup.c:2845,1
    - Dst: safe_create_dir
      Src: /src/git/setup.c:2847,1
    - Dst: create_default_files
      Src: /src/git/setup.c:2849,1
    - Dst: create_reference_database
      Src: /src/git/setup.c:2853,1
    - Dst: create_object_directory
      Src: /src/git/setup.c:2854,1
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/setup.c:2856,1
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/setup.c:2864,1
    - Dst: xsnprintf
      Src: /src/git/setup.c:2866,1
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/setup.c:2866,1
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/setup.c:2867,1
    - Dst: xsnprintf
      Src: /src/git/setup.c:2868,1
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/setup.c:2869,1
    - Dst: xsnprintf
      Src: /src/git/setup.c:2870,1
    - Dst: BUG
      Src: /src/git/setup.c:2872,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2873,1
    - Dst: repo_config_set
      Src: /src/git/setup.c:2874,1
    - Dst: strlen
      Src: /src/git/setup.c:2878,1
    - Dst: printf
      Src: /src/git/setup.c:2881,1
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/setup.c:2881,1
    - Dst: _
      Src: /src/git/setup.c:2882,1
    - Dst: _
      Src: /src/git/setup.c:2883,1
    - Dst: printf
      Src: /src/git/setup.c:2886,1
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/setup.c:2886,1
    - Dst: _
      Src: /src/git/setup.c:2887,1
    - Dst: _
      Src: /src/git/setup.c:2888,1
    - Dst: clear_repository_format
      Src: /src/git/setup.c:2892,1
    - Dst: free
      Src: /src/git/setup.c:2893,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 9
    argNames:
    - repo
    - git_dir
    - real_git_dir
    - template_dir
    - hash
    - ref_storage_format
    - initial_branch
    - init_shared_repository
    - flags
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - int
    - enum ref_storage_format
    - char*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2799
    functionDepth: 10
    functionLinenumber: 2799
    functionLinenumberEnd: 2895
    functionName: init_db
    functionSourceFile: /src/git/setup.c
    functionUses: 0
    functionsReached:
    - set_git_dir
    - separate_git_dir
    - repo_config_set
    - clear_repository_format
    - xsnprintf
    - free
    - repo_config
    - printf
    - create_default_files
    - die
    - repo_settings_get_shared_repository
    - create_object_directory
    - stat
    - check_repository_format
    - _
    - real_pathdup
    - safe_create_dir
    - create_reference_database
    - strlen
    - repo_get_git_dir
    - BUG
    - repository_format_configure
    linkageType: ''
    returnType: int
    signature: "int init_db(struct repository *repo,\n\t    const char *git_dir, const
      char *real_git_dir,\n\t    const char *template_dir, int hash,\n\t    enum ref_storage_format
      ref_storage_format,\n\t    const char *initial_branch,\n\t    int init_shared_repository,
      unsigned int flags)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/git/line-range.c:36,1
    - Dst: die
      Src: /src/git/line-range.c:41,1
    - Dst: strtol
      Src: /src/git/line-range.c:54,1
    - Dst: die
      Src: /src/git/line-range.c:58,1
    - Dst: nth_line
      Src: /src/git/line-range.c:91,1
    - Dst: regcomp
      Src: /src/git/line-range.c:93,1
    - Dst: regexec
      Src: /src/git/line-range.c:94,1
    - Dst: nth_line
      Src: /src/git/line-range.c:99,1
    - Dst: regfree
      Src: /src/git/line-range.c:105,1
    - Dst: regerror
      Src: /src/git/line-range.c:111,1
    - Dst: die
      Src: /src/git/line-range.c:112,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 6
    argNames:
    - spec
    - nth_line
    - data
    - lines
    - begin
    - ret
    argTypes:
    - char*
    - nth_line_fn_t
    - void*
    - long
    - long
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 115
    functionName: parse_loc
    functionSourceFile: /src/git/line-range.c
    functionUses: 0
    functionsReached:
    - die
    - nth_line
    - regfree
    - regexec
    - regerror
    - regcomp
    - strtol
    linkageType: ''
    returnType: char
    signature: "char *parse_loc(const char *spec, nth_line_fn_t nth_line,\n\t\t\t
      \    void *data, long lines, long begin, long *ret)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xdemitconf_t*::find_func
      Src: /src/git/line-range.c:121,1
    - Dst: isalpha
      Src: /src/git/line-range.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - xecfg
    - bol
    - eol
    argTypes:
    - xdemitconf_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: match_funcname
    functionSourceFile: /src/git/line-range.c
    functionUses: 0
    functionsReached:
    - isalpha
    - xdemitconf_t*::find_func
    linkageType: ''
    returnType: int
    signature: int match_funcname(xdemitconf_t *xecfg, const char *bol, const char
      *eol)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: regexec
      Src: /src/git/line-range.c:139,1
    - Dst: regerror
      Src: /src/git/line-range.c:144,1
    - Dst: die
      Src: /src/git/line-range.c:145,1
    - Dst: match_funcname
      Src: /src/git/line-range.c:159,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - xecfg
    - start
    - regexp
    argTypes:
    - xdemitconf_t*
    - char*
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 164
    functionName: find_funcname_matching_regexp
    functionSourceFile: /src/git/line-range.c
    functionUses: 0
    functionsReached:
    - die
    - match_funcname
    - regexec
    - regerror
    linkageType: ''
    returnType: char
    signature: "char *find_funcname_matching_regexp(xdemitconf_t *xecfg, const char
      *start,\n\t\t\t\t\t\t regex_t *regexp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-range.c:185,1
    - Dst: xstrndup
      Src: /src/git/line-range.c:197,1
    - Dst: nth_line_cb
      Src: /src/git/line-range.c:200,1
    - Dst: userdiff_find_by_path
      Src: /src/git/line-range.c:202,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/line-range.c:205,1
    - Dst: xdiff_set_find_func
      Src: /src/git/line-range.c:206,1
    - Dst: regcomp
      Src: /src/git/line-range.c:209,1
    - Dst: regerror
      Src: /src/git/line-range.c:212,1
    - Dst: die
      Src: /src/git/line-range.c:213,1
    - Dst: find_funcname_matching_regexp
      Src: /src/git/line-range.c:216,1
    - Dst: die
      Src: /src/git/line-range.c:218,1
    - Dst: nth_line_cb
      Src: /src/git/line-range.c:221,1
    - Dst: die
      Src: /src/git/line-range.c:225,1
    - Dst: nth_line_cb
      Src: /src/git/line-range.c:229,1
    - Dst: nth_line_cb
      Src: /src/git/line-range.c:230,1
    - Dst: match_funcname
      Src: /src/git/line-range.c:231,1
    - Dst: regfree
      Src: /src/git/line-range.c:236,1
    - Dst: xdiff_clear_find_func
      Src: /src/git/line-range.c:238,1
    - Dst: free
      Src: /src/git/line-range.c:239,1
    - Dst: free
      Src: /src/git/line-range.c:240,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 9
    argNames:
    - arg
    - nth_line_cb
    - cb_data
    - lines
    - anchor
    - begin
    - end
    - path
    - istate
    argTypes:
    - char*
    - nth_line_fn_t
    - void*
    - long
    - long
    - long*
    - long*
    - char*
    - struct index_state*
    assertStmts:
    - condition: (*arg == ':')
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/git/line-range.c
    constantsTouched: []
    func_position:
      end: 246
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 246
    functionName: parse_range_funcname
    functionSourceFile: /src/git/line-range.c
    functionUses: 0
    functionsReached:
    - die
    - assert
    - nth_line_cb
    - xdiff_set_find_func
    - find_funcname_matching_regexp
    - match_funcname
    - regfree
    - xdiff_clear_find_func
    - free
    - xstrndup
    - userdiff_find_by_path
    - regerror
    - CALLOC_ARRAY
    - regcomp
    linkageType: ''
    returnType: char
    signature: "char *parse_range_funcname(\n\tconst char *arg, nth_line_fn_t nth_line_cb,\n\tvoid
      *cb_data, long lines, long anchor, long *begin, long *end,\n\tconst char *path,
      struct index_state *istate)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_range_funcname
      Src: /src/git/line-range.c:261,1
    - Dst: parse_loc
      Src: /src/git/line-range.c:269,1
    - Dst: parse_loc
      Src: /src/git/line-range.c:272,1
    - Dst: SWAP
      Src: /src/git/line-range.c:278,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 9
    argNames:
    - arg
    - nth_line_cb
    - cb_data
    - lines
    - anchor
    - begin
    - end
    - path
    - istate
    argTypes:
    - char*
    - nth_line_fn_t
    - void*
    - long
    - long
    - long*
    - long*
    - char*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 282
    functionName: parse_range_arg
    functionSourceFile: /src/git/line-range.c
    functionUses: 0
    functionsReached:
    - parse_range_funcname
    - SWAP
    - parse_loc
    linkageType: ''
    returnType: int
    signature: "int parse_range_arg(const char *arg, nth_line_fn_t nth_line_cb,\n\t\t
      \   void *cb_data, long lines, long anchor,\n\t\t    long *begin, long *end,\n\t\t
      \   const char *path, struct index_state *istate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_range_funcname
      Src: /src/git/line-range.c:287,1
    - Dst: parse_loc
      Src: /src/git/line-range.c:291,1
    - Dst: parse_loc
      Src: /src/git/line-range.c:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - arg
    - istate
    argTypes:
    - char*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 284
    functionDepth: 5
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: skip_range_arg
    functionSourceFile: /src/git/line-range.c
    functionUses: 0
    functionsReached:
    - parse_range_funcname
    - parse_loc
    linkageType: ''
    returnType: char
    signature: char *skip_range_arg(const char *arg, struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_git
      Src: /src/git/common-main.c:8,1
    - Dst: cmd_main
      Src: /src/git/common-main.c:9,1
    - Dst: exit
      Src: /src/git/common-main.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 13
    functionName: main
    functionSourceFile: /src/git/common-main.c
    functionUses: 2
    functionsReached:
    - init_git
    - exit
    - cmd_main
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/fmt-merge-msg.c:31,1
    - Dst: strcmp
      Src: /src/git/fmt-merge-msg.c:31,1
    - Dst: git_config_bool_or_int
      Src: /src/git/fmt-merge-msg.c:33,1
    - Dst: error
      Src: /src/git/fmt-merge-msg.c:35,1
    - Dst: strcmp
      Src: /src/git/fmt-merge-msg.c:38,1
    - Dst: git_config_bool
      Src: /src/git/fmt-merge-msg.c:39,1
    - Dst: strcmp
      Src: /src/git/fmt-merge-msg.c:40,1
    - Dst: config_error_nonbool
      Src: /src/git/fmt-merge-msg.c:42,1
    - Dst: string_list_clear
      Src: /src/git/fmt-merge-msg.c:44,1
    - Dst: string_list_append
      Src: /src/git/fmt-merge-msg.c:46,1
    - Dst: git_default_config
      Src: /src/git/fmt-merge-msg.c:49,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - key
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: fmt_merge_msg_config
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - error
    - string_list_clear
    - strcmp
    - git_config_bool_or_int
    - string_list_append
    - git_config_bool
    - git_default_config
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int fmt_merge_msg_config(const char *key, const char *value,\n\t\t\t
      const struct config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct src_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: init_src_data
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_src_data(struct src_data *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/fmt-merge-msg.c:95,1
    - Dst: oideq
      Src: /src/git/fmt-merge-msg.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - table
    - given
    - commit
    argTypes:
    - struct merge_parents*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 102
    functionName: find_merge_parent
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - oideq
    linkageType: ''
    returnType: struct merge_parent
    signature: "struct merge_parent *find_merge_parent(struct merge_parents *table,\n\t\t\t\t\t
      \     struct object_id *given,\n\t\t\t\t\t      struct object_id *commit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_merge_parent
      Src: /src/git/fmt-merge-msg.c:108,1
    - Dst: ALLOC_GROW
      Src: /src/git/fmt-merge-msg.c:110,1
    - Dst: oidcpy
      Src: /src/git/fmt-merge-msg.c:111,1
    - Dst: oidcpy
      Src: /src/git/fmt-merge-msg.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - table
    - given
    - commit
    argTypes:
    - struct merge_parents*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: add_merge_parent
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - find_merge_parent
    - ALLOC_GROW
    - oidcpy
    linkageType: ''
    returnType: void
    signature: "void add_merge_parent(struct merge_parents *table,\n\t\t\t     struct
      object_id *given,\n\t\t\t     struct object_id *commit)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/fmt-merge-msg.c:119,1
    - Dst: starts_with
      Src: /src/git/fmt-merge-msg.c:133,1
    - Dst: get_oid_hex
      Src: /src/git/fmt-merge-msg.c:139,1
    - Dst: find_merge_parent
      Src: /src/git/fmt-merge-msg.c:143,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/fmt-merge-msg.c:146,1
    - Dst: oidcpy
      Src: /src/git/fmt-merge-msg.c:147,1
    - Dst: strstr
      Src: /src/git/fmt-merge-msg.c:158,1
    - Dst: unsorted_string_list_lookup
      Src: /src/git/fmt-merge-msg.c:168,1
    - Dst: string_list_append
      Src: /src/git/fmt-merge-msg.c:170,1
    - Dst: xcalloc
      Src: /src/git/fmt-merge-msg.c:171,1
    - Dst: init_src_data
      Src: /src/git/fmt-merge-msg.c:172,1
    - Dst: skip_prefix
      Src: /src/git/fmt-merge-msg.c:179,1
    - Dst: string_list_append
      Src: /src/git/fmt-merge-msg.c:181,1
    - Dst: skip_prefix
      Src: /src/git/fmt-merge-msg.c:183,1
    - Dst: string_list_append
      Src: /src/git/fmt-merge-msg.c:185,1
    - Dst: skip_prefix
      Src: /src/git/fmt-merge-msg.c:187,1
    - Dst: string_list_append
      Src: /src/git/fmt-merge-msg.c:188,1
    - Dst: string_list_append
      Src: /src/git/fmt-merge-msg.c:192,1
    - Dst: strcmp
      Src: /src/git/fmt-merge-msg.c:196,1
    - Dst: strcmp
      Src: /src/git/fmt-merge-msg.c:196,1
    - Dst: strlen
      Src: /src/git/fmt-merge-msg.c:197,1
    - Dst: xmemdupz
      Src: /src/git/fmt-merge-msg.c:199,1
    - Dst: xstrfmt
      Src: /src/git/fmt-merge-msg.c:201,1
    - Dst: strcmp
      Src: /src/git/fmt-merge-msg.c:202,1
    - Dst: string_list_append
      Src: /src/git/fmt-merge-msg.c:204,1
    - Dst: free
      Src: /src/git/fmt-merge-msg.c:205,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 2
    argNames:
    - line
    - merge_parents
    argTypes:
    - char*
    - struct merge_parents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 207
    functionName: handle_line
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - init_src_data
    - strstr
    - oidcpy
    - get_oid_hex
    - xstrfmt
    - find_merge_parent
    - starts_with
    - free
    - strlen
    - strcmp
    - unsorted_string_list_lookup
    - string_list_append
    - CALLOC_ARRAY
    - xcalloc
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int handle_line(char *line, struct merge_parents *merge_parents)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:215,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:218,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:220,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - singular
    - plural
    - list
    - out
    argTypes:
    - char*
    - char*
    - struct string_list*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 224
    functionName: print_joined
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void print_joined(const char *singular, const char *plural,\n\t\tstruct
      string_list *list, struct strbuf *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_branch_desc
      Src: /src/git/fmt-merge-msg.c:230,1
    - Dst: strchrnul
      Src: /src/git/fmt-merge-msg.c:233,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:236,1
    - Dst: strbuf_complete_line
      Src: /src/git/fmt-merge-msg.c:239,1
    - Dst: strbuf_release
      Src: /src/git/fmt-merge-msg.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - out
    - name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: add_branch_desc
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_complete_line
    - strbuf_addf
    - strchrnul
    - read_branch_desc
    linkageType: ''
    returnType: void
    signature: void add_branch_desc(struct strbuf *out, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - elem
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: util_as_integral
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: util_as_integral(elem)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/fmt-merge-msg.c:255,1
    - Dst: strlen
      Src: /src/git/fmt-merge-msg.c:258,1
    - Dst: strchrnul
      Src: /src/git/fmt-merge-msg.c:259,1
    - Dst: isspace
      Src: /src/git/fmt-merge-msg.c:262,1
    - Dst: xmemdupz
      Src: /src/git/fmt-merge-msg.c:266,1
    - Dst: string_list_lookup
      Src: /src/git/fmt-merge-msg.c:268,1
    - Dst: string_list_insert
      Src: /src/git/fmt-merge-msg.c:270,1
    - Dst: util_as_integral
      Src: /src/git/fmt-merge-msg.c:273,1
    - Dst: free
      Src: /src/git/fmt-merge-msg.c:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - which
    - people
    - buffer
    argTypes:
    - int
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 275
    functionName: record_person_from_buf
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - isspace
    - xmemdupz
    - string_list_lookup
    - string_list_insert
    - strstr
    - strlen
    - util_as_integral
    - free
    - strchrnul
    linkageType: ''
    returnType: void
    signature: "void record_person_from_buf(int which, struct string_list *people,\n\t\t\t\t
      \  const char *buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_buffer
      Src: /src/git/fmt-merge-msg.c:281,1
    - Dst: record_person_from_buf
      Src: /src/git/fmt-merge-msg.c:283,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/fmt-merge-msg.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - which
    - people
    - commit
    argTypes:
    - int
    - struct string_list*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 285
    functionName: record_person
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - record_person_from_buf
    - repo_unuse_commit_buffer
    - repo_get_commit_buffer
    linkageType: ''
    returnType: void
    signature: "void record_person(int which, struct string_list *people,\n\t\t\t
      \ struct commit *commit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_as_integral
      Src: /src/git/fmt-merge-msg.c:290,1
    - Dst: util_as_integral
      Src: /src/git/fmt-merge-msg.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: cmp_string_list_util_as_integral
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - util_as_integral
    linkageType: ''
    returnType: int
    signature: int cmp_string_list_util_as_integral(const void *a_, const void *b_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:296,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:298,1
    - Dst: util_as_integral
      Src: /src/git/fmt-merge-msg.c:300,1
    - Dst: util_as_integral
      Src: /src/git/fmt-merge-msg.c:302,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:304,1
    - Dst: util_as_integral
      Src: /src/git/fmt-merge-msg.c:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - people
    argTypes:
    - struct strbuf*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 307
    functionName: add_people_count
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - util_as_integral
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void add_people_count(struct strbuf *out, struct string_list *people)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_author_info
      Src: /src/git/fmt-merge-msg.c:318,1
    - Dst: git_committer_info
      Src: /src/git/fmt-merge-msg.c:321,1
    - Dst: skip_prefix
      Src: /src/git/fmt-merge-msg.c:327,1
    - Dst: starts_with
      Src: /src/git/fmt-merge-msg.c:328,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:330,1
    - Dst: add_people_count
      Src: /src/git/fmt-merge-msg.c:331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - out
    - them
    - kind
    argTypes:
    - struct strbuf*
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 309
    functionDepth: 8
    functionLinenumber: 309
    functionLinenumberEnd: 332
    functionName: credit_people
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - git_author_info
    - strbuf_addf
    - starts_with
    - skip_prefix
    - git_committer_info
    - add_people_count
    linkageType: ''
    returnType: void
    signature: "void credit_people(struct strbuf *out,\n\t\t\t  struct string_list
      *them,\n\t\t\t  int kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/fmt-merge-msg.c:338,1
    - Dst: QSORT
      Src: /src/git/fmt-merge-msg.c:340,1
    - Dst: credit_people
      Src: /src/git/fmt-merge-msg.c:343,1
    - Dst: credit_people
      Src: /src/git/fmt-merge-msg.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out
    - authors
    - committers
    argTypes:
    - struct strbuf*
    - struct string_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 334
    functionDepth: 9
    functionLinenumber: 334
    functionLinenumberEnd: 345
    functionName: add_people_info
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - QSORT
    - credit_people
    linkageType: ''
    returnType: void
    signature: "void add_people_info(struct strbuf *out,\n\t\t\t    struct string_list
      *authors,\n\t\t\t    struct string_list *committers)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: deref_tag
      Src: /src/git/fmt-merge-msg.c:365,1
    - Dst: parse_object
      Src: /src/git/fmt-merge-msg.c:365,1
    - Dst: oid_to_hex
      Src: /src/git/fmt-merge-msg.c:366,1
    - Dst: setup_revisions
      Src: /src/git/fmt-merge-msg.c:371,1
    - Dst: add_pending_object
      Src: /src/git/fmt-merge-msg.c:372,1
    - Dst: add_pending_object
      Src: /src/git/fmt-merge-msg.c:373,1
    - Dst: prepare_revision_walk
      Src: /src/git/fmt-merge-msg.c:375,1
    - Dst: die
      Src: /src/git/fmt-merge-msg.c:376,1
    - Dst: get_revision
      Src: /src/git/fmt-merge-msg.c:377,1
    - Dst: record_person
      Src: /src/git/fmt-merge-msg.c:383,1
    - Dst: record_person
      Src: /src/git/fmt-merge-msg.c:388,1
    - Dst: record_person
      Src: /src/git/fmt-merge-msg.c:390,1
    - Dst: repo_format_commit_message
      Src: /src/git/fmt-merge-msg.c:395,1
    - Dst: strbuf_ltrim
      Src: /src/git/fmt-merge-msg.c:397,1
    - Dst: string_list_append
      Src: /src/git/fmt-merge-msg.c:400,1
    - Dst: oid_to_hex
      Src: /src/git/fmt-merge-msg.c:401,1
    - Dst: string_list_append_nodup
      Src: /src/git/fmt-merge-msg.c:403,1
    - Dst: strbuf_detach
      Src: /src/git/fmt-merge-msg.c:404,1
    - Dst: add_people_info
      Src: /src/git/fmt-merge-msg.c:408,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:410,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:412,1
    - Dst: add_branch_desc
      Src: /src/git/fmt-merge-msg.c:415,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:419,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:421,1
    - Dst: clear_commit_marks
      Src: /src/git/fmt-merge-msg.c:423,1
    - Dst: clear_commit_marks
      Src: /src/git/fmt-merge-msg.c:424,1
    - Dst: commit_list_free
      Src: /src/git/fmt-merge-msg.c:425,1
    - Dst: string_list_clear
      Src: /src/git/fmt-merge-msg.c:429,1
    - Dst: string_list_clear
      Src: /src/git/fmt-merge-msg.c:430,1
    - Dst: string_list_clear
      Src: /src/git/fmt-merge-msg.c:431,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 6
    argNames:
    - name
    - origin_data
    - head
    - rev
    - opts
    - out
    argTypes:
    - char*
    - struct origin_data*
    - struct commit*
    - struct rev_info*
    - struct fmt_merge_msg_opts*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 347
    functionDepth: 13
    functionLinenumber: 347
    functionLinenumberEnd: 432
    functionName: shortlog
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - deref_tag
    - strbuf_addf
    - clear_commit_marks
    - die
    - add_branch_desc
    - record_person
    - prepare_revision_walk
    - strbuf_addstr
    - string_list_clear
    - oid_to_hex
    - add_people_info
    - parse_object
    - strbuf_detach
    - string_list_append
    - setup_revisions
    - repo_format_commit_message
    - string_list_append_nodup
    - add_pending_object
    - strbuf_ltrim
    - commit_list_free
    - get_revision
    linkageType: ''
    returnType: void
    signature: "void shortlog(const char *name,\n\t\t     struct origin_data *origin_data,\n\t\t
      \    struct commit *head,\n\t\t     struct rev_info *rev,\n\t\t     struct fmt_merge_msg_opts
      *opts,\n\t\t     struct strbuf *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/fmt-merge-msg.c:445,1
    - Dst: wildmatch
      Src: /src/git/fmt-merge-msg.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dest_branch
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: dest_suppressed
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - wildmatch
    linkageType: ''
    returnType: int
    signature: int dest_suppressed(const char *dest_branch)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:458,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:463,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:467,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:472,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:475,1
    - Dst: print_joined
      Src: /src/git/fmt-merge-msg.c:477,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:481,1
    - Dst: print_joined
      Src: /src/git/fmt-merge-msg.c:483,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:487,1
    - Dst: print_joined
      Src: /src/git/fmt-merge-msg.c:489,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:492,1
    - Dst: print_joined
      Src: /src/git/fmt-merge-msg.c:493,1
    - Dst: strcmp
      Src: /src/git/fmt-merge-msg.c:496,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:497,1
    - Dst: dest_suppressed
      Src: /src/git/fmt-merge-msg.c:500,1
    - Dst: strbuf_addf
      Src: /src/git/fmt-merge-msg.c:501,1
    - Dst: strbuf_addch
      Src: /src/git/fmt-merge-msg.c:502,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - out
    - current_branch
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 503
    functionName: fmt_merge_msg_title
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - print_joined
    - dest_suppressed
    - strbuf_addch
    - strbuf_addstr
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void fmt_merge_msg_title(struct strbuf *out,\n\t\t\t\tconst char *current_branch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/fmt-merge-msg.c:510,1
    - Dst: strbuf_add
      Src: /src/git/fmt-merge-msg.c:513,1
    - Dst: strbuf_complete_line
      Src: /src/git/fmt-merge-msg.c:515,1
    - Dst: strbuf_addch
      Src: /src/git/fmt-merge-msg.c:517,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/fmt-merge-msg.c:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - tagbuf
    - sig
    - buf
    - len
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 505
    functionDepth: 5
    functionLinenumber: 505
    functionLinenumberEnd: 521
    functionName: fmt_tag_signature
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - strbuf_add_commented_lines
    - strstr
    - strbuf_complete_line
    - strbuf_addch
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void fmt_tag_signature(struct strbuf *tagbuf,\n\t\t\t      struct
      strbuf *sig,\n\t\t\t      const char *buf,\n\t\t\t      unsigned long len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/fmt-merge-msg.c:532,1
    - Dst: parse_signature
      Src: /src/git/fmt-merge-msg.c:542,1
    - Dst: strbuf_detach
      Src: /src/git/fmt-merge-msg.c:548,1
    - Dst: check_signature
      Src: /src/git/fmt-merge-msg.c:549,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:551,1
    - Dst: strbuf_addstr
      Src: /src/git/fmt-merge-msg.c:553,1
    - Dst: fmt_tag_signature
      Src: /src/git/fmt-merge-msg.c:557,1
    - Dst: strbuf_addch
      Src: /src/git/fmt-merge-msg.c:562,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/fmt-merge-msg.c:563,1
    - Dst: strlen
      Src: /src/git/fmt-merge-msg.c:565,1
    - Dst: strbuf_insert
      Src: /src/git/fmt-merge-msg.c:567,1
    - Dst: strbuf_release
      Src: /src/git/fmt-merge-msg.c:569,1
    - Dst: strbuf_addch
      Src: /src/git/fmt-merge-msg.c:571,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/fmt-merge-msg.c:572,1
    - Dst: strlen
      Src: /src/git/fmt-merge-msg.c:574,1
    - Dst: fmt_tag_signature
      Src: /src/git/fmt-merge-msg.c:576,1
    - Dst: strbuf_release
      Src: /src/git/fmt-merge-msg.c:578,1
    - Dst: strbuf_release
      Src: /src/git/fmt-merge-msg.c:579,1
    - Dst: signature_check_clear
      Src: /src/git/fmt-merge-msg.c:580,1
    - Dst: free
      Src: /src/git/fmt-merge-msg.c:582,1
    - Dst: strbuf_addch
      Src: /src/git/fmt-merge-msg.c:585,1
    - Dst: strbuf_addbuf
      Src: /src/git/fmt-merge-msg.c:586,1
    - Dst: strbuf_release
      Src: /src/git/fmt-merge-msg.c:588,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 523
    functionDepth: 6
    functionLinenumber: 523
    functionLinenumberEnd: 589
    functionName: fmt_merge_msg_sigs
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - parse_signature
    - strbuf_add_commented_lines
    - strbuf_release
    - check_signature
    - fmt_tag_signature
    - strbuf_insert
    - strbuf_addch
    - strlen
    - strbuf_addbuf
    - strbuf_detach
    - strbuf_addstr
    - signature_check_clear
    - free
    - odb_read_object
    linkageType: ''
    returnType: void
    signature: void fmt_merge_msg_sigs(struct strbuf *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/fmt-merge-msg.c:602,1
    - Dst: strlen
      Src: /src/git/fmt-merge-msg.c:608,1
    - Dst: parse_oid_hex
      Src: /src/git/fmt-merge-msg.c:611,1
    - Dst: parse_object
      Src: /src/git/fmt-merge-msg.c:620,1
    - Dst: repo_peel_to_type
      Src: /src/git/fmt-merge-msg.c:621,1
    - Dst: commit_list_insert
      Src: /src/git/fmt-merge-msg.c:626,1
    - Dst: add_merge_parent
      Src: /src/git/fmt-merge-msg.c:627,1
    - Dst: lookup_commit
      Src: /src/git/fmt-merge-msg.c:629,1
    - Dst: commit_list_insert
      Src: /src/git/fmt-merge-msg.c:631,1
    - Dst: reduce_heads_replace
      Src: /src/git/fmt-merge-msg.c:632,1
    - Dst: pop_commit
      Src: /src/git/fmt-merge-msg.c:635,1
    - Dst: oideq
      Src: /src/git/fmt-merge-msg.c:637,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 3
    argNames:
    - result
    - in
    - head
    argTypes:
    - struct merge_parents*
    - struct strbuf*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 591
    functionDepth: 5
    functionLinenumber: 591
    functionLinenumberEnd: 649
    functionName: find_merge_parents
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - add_merge_parent
    - repo_peel_to_type
    - reduce_heads_replace
    - parse_object
    - strchr
    - pop_commit
    - strlen
    - parse_oid_hex
    - lookup_commit
    - commit_list_insert
    - oideq
    linkageType: ''
    returnType: void
    signature: "void find_merge_parents(struct merge_parents *result,\n\t\t\t       struct
      strbuf *in, struct object_id *head)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/fmt-merge-msg.c:662,1
    - Dst: string_list_append
      Src: /src/git/fmt-merge-msg.c:663,1
    - Dst: memset
      Src: /src/git/fmt-merge-msg.c:666,1
    - Dst: refs_resolve_refdup
      Src: /src/git/fmt-merge-msg.c:670,1
    - Dst: get_main_ref_store
      Src: /src/git/fmt-merge-msg.c:670,1
    - Dst: die
      Src: /src/git/fmt-merge-msg.c:674,1
    - Dst: starts_with
      Src: /src/git/fmt-merge-msg.c:678,1
    - Dst: find_merge_parents
      Src: /src/git/fmt-merge-msg.c:681,1
    - Dst: strchr
      Src: /src/git/fmt-merge-msg.c:688,1
    - Dst: strlen
      Src: /src/git/fmt-merge-msg.c:689,1
    - Dst: handle_line
      Src: /src/git/fmt-merge-msg.c:693,1
    - Dst: die
      Src: /src/git/fmt-merge-msg.c:694,1
    - Dst: fmt_merge_msg_title
      Src: /src/git/fmt-merge-msg.c:698,1
    - Dst: fmt_merge_msg_sigs
      Src: /src/git/fmt-merge-msg.c:701,1
    - Dst: lookup_commit_or_die
      Src: /src/git/fmt-merge-msg.c:707,1
    - Dst: repo_init_revisions
      Src: /src/git/fmt-merge-msg.c:708,1
    - Dst: diff_merges_suppress
      Src: /src/git/fmt-merge-msg.c:710,1
    - Dst: strbuf_complete_line
      Src: /src/git/fmt-merge-msg.c:713,1
    - Dst: shortlog
      Src: /src/git/fmt-merge-msg.c:716,1
    - Dst: release_revisions
      Src: /src/git/fmt-merge-msg.c:719,1
    - Dst: strbuf_complete_line
      Src: /src/git/fmt-merge-msg.c:722,1
    - Dst: free
      Src: /src/git/fmt-merge-msg.c:723,1
    - Dst: free
      Src: /src/git/fmt-merge-msg.c:724,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - in
    - out
    - opts
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - struct fmt_merge_msg_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 652
    functionDepth: 14
    functionLinenumber: 652
    functionLinenumberEnd: 726
    functionName: fmt_merge_msg
    functionSourceFile: /src/git/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - fmt_merge_msg_title
    - strchr
    - repo_init_revisions
    - free
    - shortlog
    - get_main_ref_store
    - die
    - release_revisions
    - find_merge_parents
    - refs_resolve_refdup
    - memset
    - fmt_merge_msg_sigs
    - string_list_append
    - lookup_commit_or_die
    - handle_line
    - strbuf_complete_line
    - starts_with
    - strlen
    - diff_merges_suppress
    linkageType: ''
    returnType: int
    signature: "int fmt_merge_msg(struct strbuf *in, struct strbuf *out,\n\t\t  struct
      fmt_merge_msg_opts *opts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor__is_fs_remote
      Src: /src/git/fsmonitor-settings.c:48,1
    - Dst: repo_config_get_bool
      Src: /src/git/fsmonitor-settings.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 62
    functionName: check_remote
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 0
    functionsReached:
    - repo_config_get_bool
    - fsmonitor__is_fs_remote
    linkageType: ''
    returnType: enum fsmonitor_reason
    signature: enum fsmonitor_reason check_remote(struct repository *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_remote
      Src: /src/git/fsmonitor-settings.c:80,1
    - Dst: fsm_os__incompatible
      Src: /src/git/fsmonitor-settings.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - r
    - MAYBE_UNUSED
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 90
    functionName: check_for_incompatible
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 0
    functionsReached:
    - check_remote
    - fsm_os__incompatible
    linkageType: ''
    returnType: enum fsmonitor_reason
    signature: "enum fsmonitor_reason check_for_incompatible(struct repository *r,\n\t\t\t\t\t\t
      \   int ipc MAYBE_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/fsmonitor-settings.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: alloc_settings
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 0
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct fsmonitor_settings
    signature: struct fsmonitor_settings *alloc_settings(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_maybe_bool
      Src: /src/git/fsmonitor-settings.c:119,1
    - Dst: fsm_settings__set_ipc
      Src: /src/git/fsmonitor-settings.c:123,1
    - Dst: fsm_settings__set_disabled
      Src: /src/git/fsmonitor-settings.c:125,1
    - Dst: getenv
      Src: /src/git/fsmonitor-settings.c:129,1
    - Dst: repo_config_get_pathname
      Src: /src/git/fsmonitor-settings.c:133,1
    - Dst: fsm_settings__set_hook
      Src: /src/git/fsmonitor-settings.c:143,1
    - Dst: fsm_settings__set_disabled
      Src: /src/git/fsmonitor-settings.c:145,1
    - Dst: free
      Src: /src/git/fsmonitor-settings.c:146,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 147
    functionName: lookup_fsmonitor_settings
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 0
    functionsReached:
    - fsm_settings__set_hook
    - repo_config_get_pathname
    - repo_config_get_maybe_bool
    - fsm_settings__set_ipc
    - fsm_settings__set_disabled
    - free
    - getenv
    linkageType: ''
    returnType: void
    signature: void lookup_fsmonitor_settings(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_fsmonitor_settings
      Src: /src/git/fsmonitor-settings.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: fsm_settings__get_mode
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 4
    functionsReached:
    - lookup_fsmonitor_settings
    linkageType: ''
    returnType: enum fsmonitor_mode
    signature: enum fsmonitor_mode fsm_settings__get_mode(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_fsmonitor_settings
      Src: /src/git/fsmonitor-settings.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: fsm_settings__get_hook_path
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 0
    functionsReached:
    - lookup_fsmonitor_settings
    linkageType: ''
    returnType: char
    signature: char *fsm_settings__get_hook_path(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_for_incompatible
      Src: /src/git/fsmonitor-settings.c:167,1
    - Dst: fsm_settings__set_incompatible
      Src: /src/git/fsmonitor-settings.c:170,1
    - Dst: alloc_settings
      Src: /src/git/fsmonitor-settings.c:179,1
    - Dst: FREE_AND_NULL
      Src: /src/git/fsmonitor-settings.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: fsm_settings__set_ipc
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 1
    functionsReached:
    - fsm_settings__set_incompatible
    - FREE_AND_NULL
    - alloc_settings
    - check_for_incompatible
    linkageType: ''
    returnType: void
    signature: void fsm_settings__set_ipc(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_for_incompatible
      Src: /src/git/fsmonitor-settings.c:188,1
    - Dst: fsm_settings__set_incompatible
      Src: /src/git/fsmonitor-settings.c:191,1
    - Dst: alloc_settings
      Src: /src/git/fsmonitor-settings.c:200,1
    - Dst: FREE_AND_NULL
      Src: /src/git/fsmonitor-settings.c:204,1
    - Dst: strdup
      Src: /src/git/fsmonitor-settings.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - r
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 206
    functionName: fsm_settings__set_hook
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 1
    functionsReached:
    - alloc_settings
    - check_for_incompatible
    - strdup
    - fsm_settings__set_incompatible
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void fsm_settings__set_hook(struct repository *r, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_settings
      Src: /src/git/fsmonitor-settings.c:211,1
    - Dst: FREE_AND_NULL
      Src: /src/git/fsmonitor-settings.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: fsm_settings__set_disabled
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 1
    functionsReached:
    - FREE_AND_NULL
    - alloc_settings
    linkageType: ''
    returnType: void
    signature: void fsm_settings__set_disabled(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_settings
      Src: /src/git/fsmonitor-settings.c:222,1
    - Dst: FREE_AND_NULL
      Src: /src/git/fsmonitor-settings.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - reason
    argTypes:
    - struct repository*
    - enum fsmonitor_reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: fsm_settings__set_incompatible
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 2
    functionsReached:
    - FREE_AND_NULL
    - alloc_settings
    linkageType: ''
    returnType: void
    signature: "void fsm_settings__set_incompatible(struct repository *r,\n\t\t\t\t
      \   enum fsmonitor_reason reason)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_fsmonitor_settings
      Src: /src/git/fsmonitor-settings.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: fsm_settings__get_reason
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 0
    functionsReached:
    - lookup_fsmonitor_settings
    linkageType: ''
    returnType: enum fsmonitor_reason
    signature: enum fsmonitor_reason fsm_settings__get_reason(struct repository *r)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xgetcwd
      Src: /src/git/fsmonitor-settings.c:249,1
    - Dst: strbuf_addf
      Src: /src/git/fsmonitor-settings.c:251,1
    - Dst: _
      Src: /src/git/fsmonitor-settings.c:252,1
    - Dst: free
      Src: /src/git/fsmonitor-settings.c:254,1
    - Dst: strbuf_addf
      Src: /src/git/fsmonitor-settings.c:259,1
    - Dst: _
      Src: /src/git/fsmonitor-settings.c:260,1
    - Dst: strbuf_addf
      Src: /src/git/fsmonitor-settings.c:265,1
    - Dst: _
      Src: /src/git/fsmonitor-settings.c:266,1
    - Dst: strbuf_addf
      Src: /src/git/fsmonitor-settings.c:271,1
    - Dst: _
      Src: /src/git/fsmonitor-settings.c:272,1
    - Dst: dirname
      Src: /src/git/fsmonitor-settings.c:277,1
    - Dst: fsmonitor_ipc__get_path
      Src: /src/git/fsmonitor-settings.c:277,1
    - Dst: strbuf_addf
      Src: /src/git/fsmonitor-settings.c:278,1
    - Dst: _
      Src: /src/git/fsmonitor-settings.c:279,1
    - Dst: BUG
      Src: /src/git/fsmonitor-settings.c:285,1
    - Dst: strbuf_detach
      Src: /src/git/fsmonitor-settings.c:289,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - r
    - reason
    argTypes:
    - struct repository*
    - enum fsmonitor_reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 290
    functionName: fsm_settings__get_incompatible_msg
    functionSourceFile: /src/git/fsmonitor-settings.c
    functionUses: 0
    functionsReached:
    - xgetcwd
    - fsmonitor_ipc__get_path
    - strbuf_addf
    - _
    - strbuf_detach
    - free
    - BUG
    - dirname
    linkageType: ''
    returnType: char
    signature: "char *fsm_settings__get_incompatible_msg(struct repository *r,\n\t\t\t\t\t
      enum fsmonitor_reason reason)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/diagnose.c:40,1
    - Dst: strcmp
      Src: /src/git/diagnose.c:41,1
    - Dst: error
      Src: /src/git/diagnose.c:47,1
    - Dst: _
      Src: /src/git/diagnose.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: option_parse_diagnose
    functionSourceFile: /src/git/diagnose.c
    functionUses: 0
    functionsReached:
    - error
    - ARRAY_SIZE
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: int option_parse_diagnose(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/diagnose.c:57,1
    - Dst: strbuf_addf
      Src: /src/git/diagnose.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - full_path
    - full_path_len
    - file_name
    - data
    argTypes:
    - char*
    - size_t
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: dir_file_stats_objects
    functionSourceFile: /src/git/diagnose.c
    functionUses: 0
    functionsReached:
    - stat
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void dir_file_stats_objects(const char *full_path,\n\t\t\t\t   size_t
      full_path_len UNUSED,\n\t\t\t\t   const char *file_name, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/diagnose.c:66,1
    - Dst: for_each_file_in_pack_dir
      Src: /src/git/diagnose.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - source
    - data
    argTypes:
    - struct odb_source*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: dir_file_stats
    functionSourceFile: /src/git/diagnose.c
    functionUses: 0
    functionsReached:
    - for_each_file_in_pack_dir
    - strbuf_addf
    linkageType: ''
    returnType: int
    signature: int dir_file_stats(struct odb_source *source, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/diagnose.c:76,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/diagnose.c:83,1
    - Dst: get_dtype
      Src: /src/git/diagnose.c:84,1
    - Dst: closedir
      Src: /src/git/diagnose.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 89
    functionName: count_files
    functionSourceFile: /src/git/diagnose.c
    functionUses: 0
    functionsReached:
    - opendir
    - get_dtype
    - readdir_skip_dot_and_dotdot
    - closedir
    linkageType: ''
    returnType: int
    signature: int count_files(struct strbuf *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/diagnose.c:93,1
    - Dst: strbuf_addstr
      Src: /src/git/diagnose.c:104,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/diagnose.c:105,1
    - Dst: strbuf_addstr
      Src: /src/git/diagnose.c:106,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/diagnose.c:108,1
    - Dst: strbuf_addch
      Src: /src/git/diagnose.c:109,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/diagnose.c:112,1
    - Dst: get_dtype
      Src: /src/git/diagnose.c:113,1
    - Dst: strlen
      Src: /src/git/diagnose.c:114,1
    - Dst: hex_to_bytes
      Src: /src/git/diagnose.c:115,1
    - Dst: strbuf_setlen
      Src: /src/git/diagnose.c:116,1
    - Dst: strbuf_addf
      Src: /src/git/diagnose.c:117,1
    - Dst: count_files
      Src: /src/git/diagnose.c:118,1
    - Dst: strbuf_addf
      Src: /src/git/diagnose.c:119,1
    - Dst: strbuf_addf
      Src: /src/git/diagnose.c:122,1
    - Dst: strbuf_release
      Src: /src/git/diagnose.c:124,1
    - Dst: closedir
      Src: /src/git/diagnose.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - path
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 126
    functionName: loose_objs_stats
    functionSourceFile: /src/git/diagnose.c
    functionUses: 0
    functionsReached:
    - get_dtype
    - strbuf_release
    - strbuf_setlen
    - strbuf_addf
    - strbuf_addch
    - opendir
    - readdir_skip_dot_and_dotdot
    - strlen
    - strbuf_addstr
    - count_files
    - strbuf_add_absolute_path
    - closedir
    - hex_to_bytes
    linkageType: ''
    returnType: void
    signature: void loose_objs_stats(struct strbuf *buf, const char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/diagnose.c:138,1
    - Dst: warning
      Src: /src/git/diagnose.c:141,1
    - Dst: _
      Src: /src/git/diagnose.c:141,1
    - Dst: error_errno
      Src: /src/git/diagnose.c:144,1
    - Dst: _
      Src: /src/git/diagnose.c:144,1
    - Dst: strbuf_addf
      Src: /src/git/diagnose.c:148,1
    - Dst: strvec_pushf
      Src: /src/git/diagnose.c:150,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/diagnose.c:152,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/diagnose.c:156,1
    - Dst: strbuf_addch
      Src: /src/git/diagnose.c:157,1
    - Dst: get_dtype
      Src: /src/git/diagnose.c:158,1
    - Dst: strbuf_setlen
      Src: /src/git/diagnose.c:160,1
    - Dst: strbuf_addstr
      Src: /src/git/diagnose.c:161,1
    - Dst: strvec_pushf
      Src: /src/git/diagnose.c:164,1
    - Dst: warning
      Src: /src/git/diagnose.c:166,1
    - Dst: _
      Src: /src/git/diagnose.c:166,1
    - Dst: add_directory_to_archiver
      Src: /src/git/diagnose.c:169,1
    - Dst: strbuf_release
      Src: /src/git/diagnose.c:173,1
    - Dst: closedir
      Src: /src/git/diagnose.c:176,1
    - Dst: strbuf_release
      Src: /src/git/diagnose.c:177,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - archiver_args
    - path
    - recurse
    argTypes:
    - struct strvec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 179
    functionName: add_directory_to_archiver
    functionSourceFile: /src/git/diagnose.c
    functionUses: 1
    functionsReached:
    - error_errno
    - get_dtype
    - strbuf_release
    - closedir
    - strbuf_addf
    - strbuf_setlen
    - strbuf_addch
    - opendir
    - readdir_skip_dot_and_dotdot
    - add_directory_to_archiver
    - strbuf_addstr
    - _
    - strbuf_add_absolute_path
    - warning
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int add_directory_to_archiver(struct strvec *archiver_args,\n\t\t\t\t
      \    const char *path, int recurse)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/git/diagnose.c:203,1
    - Dst: error_errno
      Src: /src/git/diagnose.c:205,1
    - Dst: _
      Src: /src/git/diagnose.c:205,1
    - Dst: xopen
      Src: /src/git/diagnose.c:209,1
    - Dst: dup2
      Src: /src/git/diagnose.c:210,1
    - Dst: error_errno
      Src: /src/git/diagnose.c:211,1
    - Dst: _
      Src: /src/git/diagnose.c:211,1
    - Dst: init_zip_archiver
      Src: /src/git/diagnose.c:215,1
    - Dst: strvec_pushl
      Src: /src/git/diagnose.c:216,1
    - Dst: strbuf_reset
      Src: /src/git/diagnose.c:218,1
    - Dst: strbuf_addstr
      Src: /src/git/diagnose.c:219,1
    - Dst: get_version_info
      Src: /src/git/diagnose.c:220,1
    - Dst: strbuf_addf
      Src: /src/git/diagnose.c:222,1
    - Dst: get_disk_info
      Src: /src/git/diagnose.c:223,1
    - Dst: write_or_die
      Src: /src/git/diagnose.c:224,1
    - Dst: strvec_pushf
      Src: /src/git/diagnose.c:225,1
    - Dst: strbuf_reset
      Src: /src/git/diagnose.c:229,1
    - Dst: strbuf_addstr
      Src: /src/git/diagnose.c:230,1
    - Dst: dir_file_stats
      Src: /src/git/diagnose.c:231,1
    - Dst: odb_for_each_alternate
      Src: /src/git/diagnose.c:232,1
    - Dst: strvec_push
      Src: /src/git/diagnose.c:233,1
    - Dst: strbuf_reset
      Src: /src/git/diagnose.c:235,1
    - Dst: strbuf_addstr
      Src: /src/git/diagnose.c:236,1
    - Dst: loose_objs_stats
      Src: /src/git/diagnose.c:237,1
    - Dst: strvec_push
      Src: /src/git/diagnose.c:238,1
    - Dst: ARRAY_SIZE
      Src: /src/git/diagnose.c:242,1
    - Dst: add_directory_to_archiver
      Src: /src/git/diagnose.c:243,1
    - Dst: error_errno
      Src: /src/git/diagnose.c:246,1
    - Dst: _
      Src: /src/git/diagnose.c:246,1
    - Dst: strvec_pushl
      Src: /src/git/diagnose.c:253,1
    - Dst: oid_to_hex
      Src: /src/git/diagnose.c:254,1
    - Dst: xmemdupz
      Src: /src/git/diagnose.c:257,1
    - Dst: write_archive
      Src: /src/git/diagnose.c:259,1
    - Dst: error
      Src: /src/git/diagnose.c:262,1
    - Dst: _
      Src: /src/git/diagnose.c:262,1
    - Dst: fprintf
      Src: /src/git/diagnose.c:266,1
    - Dst: dup2
      Src: /src/git/diagnose.c:273,1
    - Dst: close
      Src: /src/git/diagnose.c:274,1
    - Dst: close
      Src: /src/git/diagnose.c:275,1
    - Dst: free
      Src: /src/git/diagnose.c:277,1
    - Dst: strvec_clear
      Src: /src/git/diagnose.c:278,1
    - Dst: strbuf_release
      Src: /src/git/diagnose.c:279,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 65
    argCount: 3
    argNames:
    - r
    - zip_path
    - mode
    argTypes:
    - struct repository*
    - struct strbuf*
    - enum diagnose_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 282
    functionName: create_diagnostics_archive
    functionSourceFile: /src/git/diagnose.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strvec_push
    - get_disk_info
    - xmemdupz
    - strbuf_addf
    - get_version_info
    - free
    - error
    - xopen
    - write_or_die
    - strbuf_release
    - write_archive
    - add_directory_to_archiver
    - strbuf_addstr
    - loose_objs_stats
    - ARRAY_SIZE
    - dup
    - oid_to_hex
    - strvec_pushl
    - _
    - odb_for_each_alternate
    - strvec_pushf
    - strbuf_reset
    - init_zip_archiver
    - dir_file_stats
    - strvec_clear
    - fprintf
    - close
    - dup2
    linkageType: ''
    returnType: int
    signature: "int create_diagnostics_archive(struct repository *r,\n\t\t\t       struct
      strbuf *zip_path,\n\t\t\t       enum diagnose_mode mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/prune-packed.c:16,1
    - Dst: rmdir
      Src: /src/git/prune-packed.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - nr
    - path
    - data
    argTypes:
    - unsigned int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: prune_subdir
    functionSourceFile: /src/git/prune-packed.c
    functionUses: 0
    functionsReached:
    - rmdir
    - display_progress
    linkageType: ''
    returnType: int
    signature: int prune_subdir(unsigned int nr, const char *path, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_object_pack
      Src: /src/git/prune-packed.c:27,1
    - Dst: printf
      Src: /src/git/prune-packed.c:31,1
    - Dst: unlink_or_warn
      Src: /src/git/prune-packed.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - oid
    - path
    - data
    argTypes:
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: prune_object
    functionSourceFile: /src/git/prune-packed.c
    functionUses: 0
    functionsReached:
    - has_object_pack
    - unlink_or_warn
    - printf
    linkageType: ''
    returnType: int
    signature: "int prune_object(const struct object_id *oid, const char *path,\n\t\t\t
      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/prune-packed.c:40,1
    - Dst: _
      Src: /src/git/prune-packed.c:41,1
    - Dst: for_each_loose_file_in_source
      Src: /src/git/prune-packed.c:43,1
    - Dst: display_progress
      Src: /src/git/prune-packed.c:47,1
    - Dst: stop_progress
      Src: /src/git/prune-packed.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - opts
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: prune_packed_objects
    functionSourceFile: /src/git/prune-packed.c
    functionUses: 0
    functionsReached:
    - for_each_loose_file_in_source
    - stop_progress
    - display_progress
    - start_delayed_progress
    - _
    linkageType: ''
    returnType: void
    signature: void prune_packed_objects(int opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/fsmonitor.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - istate
    - pos
    argTypes:
    - struct index_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: assert_index_minimum
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void assert_index_minimum(struct index_state *istate, size_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_index_minimum
      Src: /src/git/fsmonitor.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pos
    - is
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: fsmonitor_ewah_callback
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - assert_index_minimum
    linkageType: ''
    returnType: void
    signature: void fsmonitor_ewah_callback(size_t pos, void *is)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/fsmonitor.c:46,1
    - Dst: warning
      Src: /src/git/fsmonitor.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: fsmonitor_hook_version
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - warning
    linkageType: ''
    returnType: int
    signature: int fsmonitor_hook_version(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/fsmonitor.c:70,1
    - Dst: get_be32
      Src: /src/git/fsmonitor.c:72,1
    - Dst: get_be64
      Src: /src/git/fsmonitor.c:75,1
    - Dst: strbuf_addf
      Src: /src/git/fsmonitor.c:76,1
    - Dst: strbuf_addstr
      Src: /src/git/fsmonitor.c:79,1
    - Dst: error
      Src: /src/git/fsmonitor.c:82,1
    - Dst: strbuf_detach
      Src: /src/git/fsmonitor.c:85,1
    - Dst: get_be32
      Src: /src/git/fsmonitor.c:87,1
    - Dst: ewah_new
      Src: /src/git/fsmonitor.c:90,1
    - Dst: ewah_read_mmap
      Src: /src/git/fsmonitor.c:91,1
    - Dst: ewah_free
      Src: /src/git/fsmonitor.c:93,1
    - Dst: error
      Src: /src/git/fsmonitor.c:94,1
    - Dst: assert_index_minimum
      Src: /src/git/fsmonitor.c:99,1
    - Dst: trace2_data_string
      Src: /src/git/fsmonitor.c:101,1
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - istate
    - data
    - sz
    argTypes:
    - struct index_state*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 107
    functionName: read_fsmonitor_extension
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 1
    functionsReached:
    - error
    - ewah_new
    - ewah_read_mmap
    - strbuf_addf
    - trace_printf_key
    - get_be32
    - get_be64
    - assert_index_minimum
    - strbuf_detach
    - strbuf_addstr
    - ewah_free
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: "int read_fsmonitor_extension(struct index_state *istate, const void
      *data,\n\tunsigned long sz)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ewah_new
      Src: /src/git/fsmonitor.c:112,1
    - Dst: ewah_set
      Src: /src/git/fsmonitor.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: fill_fsmonitor_bitmap
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 1
    functionsReached:
    - ewah_new
    - ewah_set
    linkageType: ''
    returnType: void
    signature: void fill_fsmonitor_bitmap(struct index_state *istate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_index_minimum
      Src: /src/git/fsmonitor.c:129,1
    - Dst: put_be32
      Src: /src/git/fsmonitor.c:131,1
    - Dst: strbuf_add
      Src: /src/git/fsmonitor.c:132,1
    - Dst: strbuf_addstr
      Src: /src/git/fsmonitor.c:134,1
    - Dst: strbuf_addch
      Src: /src/git/fsmonitor.c:135,1
    - Dst: strbuf_add
      Src: /src/git/fsmonitor.c:138,1
    - Dst: ewah_serialize_strbuf
      Src: /src/git/fsmonitor.c:141,1
    - Dst: ewah_free
      Src: /src/git/fsmonitor.c:142,1
    - Dst: put_be32
      Src: /src/git/fsmonitor.c:146,1
    - Dst: memcpy
      Src: /src/git/fsmonitor.c:147,1
    - Dst: trace2_data_string
      Src: /src/git/fsmonitor.c:149,1
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - sb
    - istate
    argTypes:
    - struct strbuf*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 154
    functionName: write_fsmonitor_extension
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 1
    functionsReached:
    - trace_printf_key
    - strbuf_addch
    - assert_index_minimum
    - put_be32
    - ewah_serialize_strbuf
    - memcpy
    - strbuf_addstr
    - ewah_free
    - strbuf_add
    - trace2_data_string
    linkageType: ''
    returnType: void
    signature: void write_fsmonitor_extension(struct strbuf *sb, struct index_state
      *istate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fsm_settings__get_mode
      Src: /src/git/fsmonitor.c:167,1
    - Dst: strvec_push
      Src: /src/git/fsmonitor.c:170,1
    - Dst: fsm_settings__get_hook_path
      Src: /src/git/fsmonitor.c:170,1
    - Dst: strvec_pushf
      Src: /src/git/fsmonitor.c:171,1
    - Dst: strvec_pushf
      Src: /src/git/fsmonitor.c:172,1
    - Dst: repo_get_work_tree
      Src: /src/git/fsmonitor.c:174,1
    - Dst: trace2_region_enter
      Src: /src/git/fsmonitor.c:176,1
    - Dst: capture_command
      Src: /src/git/fsmonitor.c:178,1
    - Dst: trace2_data_intmax
      Src: /src/git/fsmonitor.c:181,1
    - Dst: trace2_data_intmax
      Src: /src/git/fsmonitor.c:183,1
    - Dst: trace2_region_leave
      Src: /src/git/fsmonitor.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - r
    - version
    - last_update
    - query_result
    argTypes:
    - struct repository*
    - int
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 189
    functionName: query_fsmonitor_hook
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - trace2_data_intmax
    - repo_get_work_tree
    - trace2_region_leave
    - trace2_region_enter
    - fsm_settings__get_hook_path
    - capture_command
    - fsm_settings__get_mode
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int query_fsmonitor_hook(struct repository *r,\n\t\t\t\tint version,\n\t\t\t\tconst
      char *last_update,\n\t\t\t\tstruct strbuf *query_result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ce
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: invalidate_ce_fsm
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    linkageType: ''
    returnType: void
    signature: void invalidate_ce_fsm(struct cache_entry *ce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: index_file_exists
      Src: /src/git/fsmonitor.c:221,1
    - Dst: strlen
      Src: /src/git/fsmonitor.c:221,1
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:241,1
    - Dst: untracked_cache_invalidate_trimmed_path
      Src: /src/git/fsmonitor.c:255,1
    - Dst: invalidate_ce_fsm
      Src: /src/git/fsmonitor.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - istate
    - name
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 216
    functionDepth: 8
    functionLinenumber: 216
    functionLinenumberEnd: 259
    functionName: handle_using_name_hash_icase
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - untracked_cache_invalidate_trimmed_path
    - invalidate_ce_fsm
    - trace_printf_key
    - strlen
    - index_file_exists
    linkageType: ''
    returnType: size_t
    signature: "size_t handle_using_name_hash_icase(\n\tstruct index_state *istate,
      const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/fsmonitor.c:273,1
    - Dst: index_dir_find
      Src: /src/git/fsmonitor.c:279,1
    - Dst: memcmp
      Src: /src/git/fsmonitor.c:282,1
    - Dst: strbuf_release
      Src: /src/git/fsmonitor.c:283,1
    - Dst: BUG
      Src: /src/git/fsmonitor.c:294,1
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:298,1
    - Dst: strbuf_addch
      Src: /src/git/fsmonitor.c:308,1
    - Dst: index_name_pos
      Src: /src/git/fsmonitor.c:309,1
    - Dst: handle_path_with_trailing_slash
      Src: /src/git/fsmonitor.c:311,1
    - Dst: strbuf_release
      Src: /src/git/fsmonitor.c:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - istate
    - name
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 268
    functionDepth: 8
    functionLinenumber: 268
    functionLinenumberEnd: 315
    functionName: handle_using_dir_name_hash_icase
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - index_name_pos
    - index_dir_find
    - trace_printf_key
    - handle_path_with_trailing_slash
    - strbuf_addch
    - strlen
    - BUG
    - memcmp
    linkageType: ''
    returnType: size_t
    signature: "size_t handle_using_dir_name_hash_icase(\n\tstruct index_state *istate,
      const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: untracked_cache_invalidate_trimmed_path
      Src: /src/git/fsmonitor.c:341,1
    - Dst: invalidate_ce_fsm
      Src: /src/git/fsmonitor.c:350,1
    - Dst: strbuf_add
      Src: /src/git/fsmonitor.c:364,1
    - Dst: strlen
      Src: /src/git/fsmonitor.c:364,1
    - Dst: strbuf_addch
      Src: /src/git/fsmonitor.c:365,1
    - Dst: index_name_pos
      Src: /src/git/fsmonitor.c:366,1
    - Dst: handle_path_with_trailing_slash
      Src: /src/git/fsmonitor.c:367,1
    - Dst: strbuf_release
      Src: /src/git/fsmonitor.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - istate
    - name
    - pos
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 372
    functionName: handle_path_without_trailing_slash
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - untracked_cache_invalidate_trimmed_path
    - index_name_pos
    - strbuf_release
    - invalidate_ce_fsm
    - handle_path_with_trailing_slash
    - strbuf_addch
    - strlen
    - strbuf_add
    linkageType: ''
    returnType: size_t
    signature: "size_t handle_path_without_trailing_slash(\n\tstruct index_state *istate,
      const char *name, int pos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: untracked_cache_invalidate_trimmed_path
      Src: /src/git/fsmonitor.c:419,1
    - Dst: starts_with
      Src: /src/git/fsmonitor.c:426,1
    - Dst: invalidate_ce_fsm
      Src: /src/git/fsmonitor.c:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - istate
    - name
    - pos
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 406
    functionDepth: 5
    functionLinenumber: 406
    functionLinenumberEnd: 433
    functionName: handle_path_with_trailing_slash
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 2
    functionsReached:
    - untracked_cache_invalidate_trimmed_path
    - invalidate_ce_fsm
    - starts_with
    linkageType: ''
    returnType: size_t
    signature: "size_t handle_path_with_trailing_slash(\n\tstruct index_state *istate,
      const char *name, int pos)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/fsmonitor.c:437,1
    - Dst: index_name_pos
      Src: /src/git/fsmonitor.c:438,1
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:441,1
    - Dst: handle_path_with_trailing_slash
      Src: /src/git/fsmonitor.c:446,1
    - Dst: handle_path_without_trailing_slash
      Src: /src/git/fsmonitor.c:448,1
    - Dst: handle_using_name_hash_icase
      Src: /src/git/fsmonitor.c:457,1
    - Dst: handle_using_dir_name_hash_icase
      Src: /src/git/fsmonitor.c:459,1
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - istate
    - name
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 435
    functionDepth: 9
    functionLinenumber: 435
    functionLinenumberEnd: 467
    functionName: fsmonitor_refresh_callback
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - trace_printf_key
    - handle_path_with_trailing_slash
    - handle_using_name_hash_icase
    - strlen
    - handle_path_without_trailing_slash
    - handle_using_dir_name_hash_icase
    linkageType: ''
    returnType: void
    signature: void fsmonitor_refresh_callback(struct index_state *istate, char *name)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fsm_settings__get_mode
      Src: /src/git/fsmonitor.c:518,1
    - Dst: fsm_settings__get_reason
      Src: /src/git/fsmonitor.c:519,1
    - Dst: fsm_settings__get_incompatible_msg
      Src: /src/git/fsmonitor.c:522,1
    - Dst: warning
      Src: /src/git/fsmonitor.c:524,1
    - Dst: free
      Src: /src/git/fsmonitor.c:525,1
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:534,1
    - Dst: fsmonitor_ipc__send_query
      Src: /src/git/fsmonitor.c:537,1
    - Dst: strbuf_addstr
      Src: /src/git/fsmonitor.c:552,1
    - Dst: trace2_data_intmax
      Src: /src/git/fsmonitor.c:556,1
    - Dst: strbuf_addstr
      Src: /src/git/fsmonitor.c:568,1
    - Dst: assert
      Src: /src/git/fsmonitor.c:574,1
    - Dst: fsmonitor_hook_version
      Src: /src/git/fsmonitor.c:576,1
    - Dst: getnanotime
      Src: /src/git/fsmonitor.c:582,1
    - Dst: strbuf_addf
      Src: /src/git/fsmonitor.c:584,1
    - Dst: query_fsmonitor_hook
      Src: /src/git/fsmonitor.c:593,1
    - Dst: strbuf_addstr
      Src: /src/git/fsmonitor.c:609,1
    - Dst: warning
      Src: /src/git/fsmonitor.c:611,1
    - Dst: strbuf_addf
      Src: /src/git/fsmonitor.c:620,1
    - Dst: query_fsmonitor_hook
      Src: /src/git/fsmonitor.c:625,1
    - Dst: trace2_data_intmax
      Src: /src/git/fsmonitor.c:633,1
    - Dst: trace_performance_since
      Src: /src/git/fsmonitor.c:636,1
    - Dst: fsm_settings__get_hook_path
      Src: /src/git/fsmonitor.c:637,1
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:638,1
    - Dst: fsm_settings__get_hook_path
      Src: /src/git/fsmonitor.c:640,1
    - Dst: trace2_region_enter
      Src: /src/git/fsmonitor.c:658,1
    - Dst: fsmonitor_refresh_callback
      Src: /src/git/fsmonitor.c:672,1
    - Dst: fsmonitor_refresh_callback
      Src: /src/git/fsmonitor.c:677,1
    - Dst: trace2_data_intmax
      Src: /src/git/fsmonitor.c:688,1
    - Dst: trace2_region_leave
      Src: /src/git/fsmonitor.c:719,1
    - Dst: strbuf_release
      Src: /src/git/fsmonitor.c:721,1
    - Dst: FREE_AND_NULL
      Src: /src/git/fsmonitor.c:724,1
    - Dst: strbuf_detach
      Src: /src/git/fsmonitor.c:725,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 99
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts:
    - condition: (fsm_mode == FSMONITOR_MODE_HOOK)
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/git/fsmonitor.c
    constantsTouched: []
    func_position:
      end: 726
      start: 506
    functionDepth: 10
    functionLinenumber: 506
    functionLinenumberEnd: 726
    functionName: refresh_fsmonitor
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 5
    functionsReached:
    - trace2_data_intmax
    - fsm_settings__get_reason
    - fsmonitor_ipc__send_query
    - strbuf_addf
    - query_fsmonitor_hook
    - trace2_region_enter
    - fsm_settings__get_hook_path
    - fsmonitor_hook_version
    - fsmonitor_refresh_callback
    - free
    - trace_performance_since
    - strbuf_release
    - trace_printf_key
    - strbuf_addstr
    - getnanotime
    - fsm_settings__get_incompatible_msg
    - strbuf_detach
    - fsm_settings__get_mode
    - warning
    - FREE_AND_NULL
    - assert
    - trace2_region_leave
    linkageType: ''
    returnType: void
    signature: void refresh_fsmonitor(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/fsmonitor.c:755,1
    - Dst: getnanotime
      Src: /src/git/fsmonitor.c:755,1
    - Dst: strbuf_detach
      Src: /src/git/fsmonitor.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 751
    functionDepth: 3
    functionLinenumber: 751
    functionLinenumberEnd: 757
    functionName: initialize_fsmonitor_last_update
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - getnanotime
    - strbuf_addf
    - strbuf_detach
    linkageType: ''
    returnType: void
    signature: void initialize_fsmonitor_last_update(struct index_state *istate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:764,1
    - Dst: initialize_fsmonitor_last_update
      Src: /src/git/fsmonitor.c:766,1
    - Dst: add_untracked_cache
      Src: /src/git/fsmonitor.c:774,1
    - Dst: refresh_fsmonitor
      Src: /src/git/fsmonitor.c:779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 759
    functionDepth: 11
    functionLinenumber: 759
    functionLinenumberEnd: 781
    functionName: add_fsmonitor
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - refresh_fsmonitor
    - initialize_fsmonitor_last_update
    - trace_printf_key
    - add_untracked_cache
    linkageType: ''
    returnType: void
    signature: void add_fsmonitor(struct index_state *istate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf_key
      Src: /src/git/fsmonitor.c:786,1
    - Dst: FREE_AND_NULL
      Src: /src/git/fsmonitor.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 790
    functionName: remove_fsmonitor
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - trace_printf_key
    linkageType: ''
    returnType: void
    signature: void remove_fsmonitor(struct index_state *istate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fsm_settings__get_mode
      Src: /src/git/fsmonitor.c:795,1
    - Dst: S_ISGITLINK
      Src: /src/git/fsmonitor.c:802,1
    - Dst: assert_index_minimum
      Src: /src/git/fsmonitor.c:808,1
    - Dst: ewah_each_bit
      Src: /src/git/fsmonitor.c:809,1
    - Dst: refresh_fsmonitor
      Src: /src/git/fsmonitor.c:811,1
    - Dst: ewah_free
      Src: /src/git/fsmonitor.c:814,1
    - Dst: add_fsmonitor
      Src: /src/git/fsmonitor.c:819,1
    - Dst: remove_fsmonitor
      Src: /src/git/fsmonitor.c:821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 792
    functionDepth: 12
    functionLinenumber: 792
    functionLinenumberEnd: 822
    functionName: tweak_fsmonitor
    functionSourceFile: /src/git/fsmonitor.c
    functionUses: 1
    functionsReached:
    - add_fsmonitor
    - ewah_each_bit
    - S_ISGITLINK
    - remove_fsmonitor
    - assert_index_minimum
    - refresh_fsmonitor
    - fsm_settings__get_mode
    - ewah_free
    linkageType: ''
    returnType: void
    signature: void tweak_fsmonitor(struct index_state *istate)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/scalar.c:34,1
    - Dst: usage_with_options
      Src: /src/git/scalar.c:37,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/scalar.c:41,1
    - Dst: is_directory
      Src: /src/git/scalar.c:42,1
    - Dst: die
      Src: /src/git/scalar.c:43,1
    - Dst: _
      Src: /src/git/scalar.c:43,1
    - Dst: chdir
      Src: /src/git/scalar.c:44,1
    - Dst: die_errno
      Src: /src/git/scalar.c:45,1
    - Dst: _
      Src: /src/git/scalar.c:45,1
    - Dst: strbuf_getcwd
      Src: /src/git/scalar.c:46,1
    - Dst: die
      Src: /src/git/scalar.c:47,1
    - Dst: _
      Src: /src/git/scalar.c:47,1
    - Dst: strbuf_trim_trailing_dir_sep
      Src: /src/git/scalar.c:49,1
    - Dst: strbuf_addstr
      Src: /src/git/scalar.c:53,1
    - Dst: is_nonbare_repository_dir
      Src: /src/git/scalar.c:54,1
    - Dst: chdir
      Src: /src/git/scalar.c:56,1
    - Dst: die_errno
      Src: /src/git/scalar.c:57,1
    - Dst: _
      Src: /src/git/scalar.c:57,1
    - Dst: strbuf_setlen
      Src: /src/git/scalar.c:59,1
    - Dst: setup_git_directory
      Src: /src/git/scalar.c:61,1
    - Dst: die
      Src: /src/git/scalar.c:64,1
    - Dst: _
      Src: /src/git/scalar.c:64,1
    - Dst: strbuf_addbuf
      Src: /src/git/scalar.c:68,1
    - Dst: strbuf_addstr
      Src: /src/git/scalar.c:70,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 5
    argNames:
    - argc
    - argv
    - usagestr
    - options
    - enlistment_root
    argTypes:
    - int
    - char**
    - char**
    - struct option*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 24
    functionDepth: 14
    functionLinenumber: 24
    functionLinenumberEnd: 74
    functionName: setup_enlistment_directory
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - is_nonbare_repository_dir
    - strbuf_release
    - chdir
    - die
    - setup_git_directory
    - die_errno
    - strbuf_getcwd
    - strbuf_setlen
    - strbuf_addbuf
    - strbuf_trim_trailing_dir_sep
    - _
    - is_directory
    - strbuf_add_absolute_path
    - strbuf_addstr
    - BUG
    - usage_with_options
    linkageType: ''
    returnType: void
    signature: "void setup_enlistment_directory(int argc, const char **argv,\n\t\t\t\t
      \      const char * const *usagestr,\n\t\t\t\t       const struct option *options,\n\t\t\t\t
      \      struct strbuf *enlistment_root)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/scalar.c:83,1
    - Dst: strvec_push
      Src: /src/git/scalar.c:84,1
    - Dst: va_arg
      Src: /src/git/scalar.c:85,1
    - Dst: strvec_push
      Src: /src/git/scalar.c:86,1
    - Dst: va_end
      Src: /src/git/scalar.c:87,1
    - Dst: run_command
      Src: /src/git/scalar.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 8
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: run_git
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_command
    - va_end
    - va_arg
    - va_start
    linkageType: ''
    returnType: LAST_ARG_MUST_BE_NULL
    signature: LAST_ARG_MUST_BE_NULL run_git(const char *arg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/scalar.c:101,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/scalar.c:102,1
    - Dst: free
      Src: /src/git/scalar.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: set_scalar_config
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    - repo_config_set_multivar_in_file_gently
    - free
    linkageType: ''
    returnType: int
    signature: int set_scalar_config(const char *key, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string
      Src: /src/git/scalar.c:115,1
    - Dst: trace2_data_string
      Src: /src/git/scalar.c:116,1
    - Dst: set_scalar_config
      Src: /src/git/scalar.c:117,1
    - Dst: trace2_data_string
      Src: /src/git/scalar.c:119,1
    - Dst: free
      Src: /src/git/scalar.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - config
    - reconfigure
    argTypes:
    - struct scalar_config*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: set_config_if_missing
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - free
    - set_scalar_config
    - repo_config_get_string
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: int set_config_if_missing(const struct scalar_config *config, int reconfigure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor_ipc__is_supported
      Src: /src/git/scalar.c:129,1
    - Dst: fsm_settings__get_reason
      Src: /src/git/scalar.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: have_fsmonitor_support
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - fsm_settings__get_reason
    - fsmonitor_ipc__is_supported
    linkageType: ''
    returnType: int
    signature: int have_fsmonitor_support(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: set_config_if_missing
      Src: /src/git/scalar.c:191,1
    - Dst: error
      Src: /src/git/scalar.c:192,1
    - Dst: _
      Src: /src/git/scalar.c:192,1
    - Dst: have_fsmonitor_support
      Src: /src/git/scalar.c:196,1
    - Dst: set_config_if_missing
      Src: /src/git/scalar.c:198,1
    - Dst: error
      Src: /src/git/scalar.c:199,1
    - Dst: _
      Src: /src/git/scalar.c:199,1
    - Dst: repo_config_get_string
      Src: /src/git/scalar.c:207,1
    - Dst: trace2_data_string
      Src: /src/git/scalar.c:208,1
    - Dst: set_scalar_config
      Src: /src/git/scalar.c:210,1
    - Dst: error
      Src: /src/git/scalar.c:212,1
    - Dst: _
      Src: /src/git/scalar.c:212,1
    - Dst: trace2_data_string
      Src: /src/git/scalar.c:215,1
    - Dst: free
      Src: /src/git/scalar.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - reconfigure
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 221
    functionName: set_recommended_config
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - error
    - have_fsmonitor_support
    - set_scalar_config
    - repo_config_get_string
    - _
    - free
    - set_config_if_missing
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: int set_recommended_config(int reconfigure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_git
      Src: /src/git/scalar.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 9
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: toggle_maintenance
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - run_git
    linkageType: ''
    returnType: int
    signature: int toggle_maintenance(int enable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/scalar.c:242,1
    - Dst: _
      Src: /src/git/scalar.c:242,1
    - Dst: run_git
      Src: /src/git/scalar.c:244,1
    - Dst: run_git
      Src: /src/git/scalar.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - add
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 237
    functionDepth: 9
    functionLinenumber: 237
    functionLinenumberEnd: 257
    functionName: add_or_remove_enlistment
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - die
    - run_git
    - _
    linkageType: ''
    returnType: int
    signature: int add_or_remove_enlistment(int add)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/git/scalar.c:261,1
    - Dst: have_fsmonitor_support
      Src: /src/git/scalar.c:261,1
    - Dst: fsmonitor_ipc__get_state
      Src: /src/git/scalar.c:263,1
    - Dst: run_git
      Src: /src/git/scalar.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 9
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: start_fsmonitor_daemon
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - have_fsmonitor_support
    - run_git
    - fsmonitor_ipc__get_state
    linkageType: ''
    returnType: int
    signature: int start_fsmonitor_daemon(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/git/scalar.c:271,1
    - Dst: have_fsmonitor_support
      Src: /src/git/scalar.c:271,1
    - Dst: fsmonitor_ipc__get_state
      Src: /src/git/scalar.c:273,1
    - Dst: run_git
      Src: /src/git/scalar.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 9
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: stop_fsmonitor_daemon
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - have_fsmonitor_support
    - run_git
    - fsmonitor_ipc__get_state
    linkageType: ''
    returnType: int
    signature: int stop_fsmonitor_daemon(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: add_or_remove_enlistment
      Src: /src/git/scalar.c:289,1
    - Dst: error
      Src: /src/git/scalar.c:290,1
    - Dst: _
      Src: /src/git/scalar.c:290,1
    - Dst: set_recommended_config
      Src: /src/git/scalar.c:292,1
    - Dst: error
      Src: /src/git/scalar.c:293,1
    - Dst: _
      Src: /src/git/scalar.c:293,1
    - Dst: toggle_maintenance
      Src: /src/git/scalar.c:296,1
    - Dst: warning
      Src: /src/git/scalar.c:297,1
    - Dst: _
      Src: /src/git/scalar.c:297,1
    - Dst: have_fsmonitor_support
      Src: /src/git/scalar.c:299,1
    - Dst: start_fsmonitor_daemon
      Src: /src/git/scalar.c:299,1
    - Dst: error
      Src: /src/git/scalar.c:300,1
    - Dst: _
      Src: /src/git/scalar.c:300,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - maintenance
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 287
    functionDepth: 10
    functionLinenumber: 287
    functionLinenumberEnd: 304
    functionName: register_dir
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - error
    - have_fsmonitor_support
    - add_or_remove_enlistment
    - start_fsmonitor_daemon
    - set_recommended_config
    - toggle_maintenance
    - _
    - warning
    linkageType: ''
    returnType: int
    signature: int register_dir(int maintenance)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toggle_maintenance
      Src: /src/git/scalar.c:310,1
    - Dst: error
      Src: /src/git/scalar.c:311,1
    - Dst: _
      Src: /src/git/scalar.c:311,1
    - Dst: add_or_remove_enlistment
      Src: /src/git/scalar.c:313,1
    - Dst: error
      Src: /src/git/scalar.c:314,1
    - Dst: _
      Src: /src/git/scalar.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 306
    functionDepth: 10
    functionLinenumber: 306
    functionLinenumberEnd: 317
    functionName: unregister_dir
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - error
    - add_or_remove_enlistment
    - _
    - toggle_maintenance
    linkageType: ''
    returnType: int
    signature: int unregister_dir(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/scalar.c:320,1
    - Dst: va_start
      Src: /src/git/scalar.c:328,1
    - Dst: strbuf_vaddf
      Src: /src/git/scalar.c:329,1
    - Dst: va_end
      Src: /src/git/scalar.c:330,1
    - Dst: strchr
      Src: /src/git/scalar.c:332,1
    - Dst: repo_config_set_gently
      Src: /src/git/scalar.c:335,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 339
    functionName: set_config
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_vaddf
    - strchr
    - va_end
    - va_start
    - repo_config_set_gently
    - format
    linkageType: ''
    returnType: int
    signature: int set_config(const char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/scalar.c:347,1
    - Dst: pipe_command
      Src: /src/git/scalar.c:348,1
    - Dst: strchrnul
      Src: /src/git/scalar.c:352,1
    - Dst: skip_prefix
      Src: /src/git/scalar.c:356,1
    - Dst: strip_suffix_mem
      Src: /src/git/scalar.c:357,1
    - Dst: skip_prefix
      Src: /src/git/scalar.c:363,1
    - Dst: xstrndup
      Src: /src/git/scalar.c:364,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:365,1
    - Dst: error
      Src: /src/git/scalar.c:369,1
    - Dst: _
      Src: /src/git/scalar.c:369,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:371,1
    - Dst: warning
      Src: /src/git/scalar.c:375,1
    - Dst: _
      Src: /src/git/scalar.c:375,1
    - Dst: strbuf_reset
      Src: /src/git/scalar.c:377,1
    - Dst: child_process_init
      Src: /src/git/scalar.c:379,1
    - Dst: strvec_pushl
      Src: /src/git/scalar.c:381,1
    - Dst: pipe_command
      Src: /src/git/scalar.c:382,1
    - Dst: strbuf_trim
      Src: /src/git/scalar.c:383,1
    - Dst: strbuf_detach
      Src: /src/git/scalar.c:384,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:387,1
    - Dst: error
      Src: /src/git/scalar.c:388,1
    - Dst: _
      Src: /src/git/scalar.c:388,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 341
    functionDepth: 8
    functionLinenumber: 341
    functionLinenumberEnd: 390
    functionName: remote_default_branch
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - child_process_init
    - strbuf_reset
    - strvec_pushl
    - xstrndup
    - pipe_command
    - strip_suffix_mem
    - strchrnul
    - strbuf_trim
    - strbuf_detach
    - warning
    - _
    - skip_prefix
    linkageType: ''
    returnType: char
    signature: char *remote_default_branch(const char *url)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unregister_dir
      Src: /src/git/scalar.c:398,1
    - Dst: error
      Src: /src/git/scalar.c:399,1
    - Dst: _
      Src: /src/git/scalar.c:399,1
    - Dst: offset_1st_component
      Src: /src/git/scalar.c:405,1
    - Dst: find_last_dir_sep
      Src: /src/git/scalar.c:406,1
    - Dst: strbuf_add
      Src: /src/git/scalar.c:407,1
    - Dst: chdir
      Src: /src/git/scalar.c:409,1
    - Dst: error_errno
      Src: /src/git/scalar.c:410,1
    - Dst: _
      Src: /src/git/scalar.c:410,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:411,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:414,1
    - Dst: have_fsmonitor_support
      Src: /src/git/scalar.c:416,1
    - Dst: stop_fsmonitor_daemon
      Src: /src/git/scalar.c:416,1
    - Dst: error
      Src: /src/git/scalar.c:417,1
    - Dst: _
      Src: /src/git/scalar.c:417,1
    - Dst: remove_dir_recursively
      Src: /src/git/scalar.c:419,1
    - Dst: error
      Src: /src/git/scalar.c:420,1
    - Dst: _
      Src: /src/git/scalar.c:420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - enlistment
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 392
    functionDepth: 11
    functionLinenumber: 392
    functionLinenumberEnd: 423
    functionName: delete_enlistment
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - strbuf_release
    - chdir
    - have_fsmonitor_support
    - remove_dir_recursively
    - unregister_dir
    - find_last_dir_sep
    - offset_1st_component
    - _
    - stop_fsmonitor_daemon
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int delete_enlistment(struct strbuf *enlistment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/scalar.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prefix
    - UNUSED
    argTypes:
    - char*
    - struct cmdnames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: load_builtin_commands
    functionSourceFile: /src/git/scalar.c
    functionUses: 1
    functionsReached:
    - die
    linkageType: ''
    returnType: void
    signature: "void load_builtin_commands(const char *prefix UNUSED,\n\t\t\t   struct
      cmdnames *cmds UNUSED)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/scalar.c:439,1
    - Dst: OPT_STRING
      Src: /src/git/scalar.c:442,1
    - Dst: N_
      Src: /src/git/scalar.c:442,1
    - Dst: N_
      Src: /src/git/scalar.c:443,1
    - Dst: OPT_BOOL
      Src: /src/git/scalar.c:444,1
    - Dst: N_
      Src: /src/git/scalar.c:445,1
    - Dst: OPT_BOOL
      Src: /src/git/scalar.c:446,1
    - Dst: N_
      Src: /src/git/scalar.c:447,1
    - Dst: OPT_BOOL
      Src: /src/git/scalar.c:449,1
    - Dst: N_
      Src: /src/git/scalar.c:450,1
    - Dst: OPT_BOOL
      Src: /src/git/scalar.c:451,1
    - Dst: N_
      Src: /src/git/scalar.c:452,1
    - Dst: OPT_BOOL
      Src: /src/git/scalar.c:453,1
    - Dst: N_
      Src: /src/git/scalar.c:454,1
    - Dst: OPT_END
      Src: /src/git/scalar.c:455,1
    - Dst: N_
      Src: /src/git/scalar.c:458,1
    - Dst: parse_options
      Src: /src/git/scalar.c:467,1
    - Dst: xstrdup
      Src: /src/git/scalar.c:471,1
    - Dst: strbuf_addstr
      Src: /src/git/scalar.c:475,1
    - Dst: is_dir_sep
      Src: /src/git/scalar.c:477,1
    - Dst: strbuf_setlen
      Src: /src/git/scalar.c:478,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/scalar.c:480,1
    - Dst: find_last_dir_sep
      Src: /src/git/scalar.c:482,1
    - Dst: die
      Src: /src/git/scalar.c:484,1
    - Dst: _
      Src: /src/git/scalar.c:484,1
    - Dst: xstrdup
      Src: /src/git/scalar.c:486,1
    - Dst: usage_msg_opt
      Src: /src/git/scalar.c:488,1
    - Dst: _
      Src: /src/git/scalar.c:488,1
    - Dst: is_directory
      Src: /src/git/scalar.c:492,1
    - Dst: die
      Src: /src/git/scalar.c:493,1
    - Dst: _
      Src: /src/git/scalar.c:493,1
    - Dst: xstrfmt
      Src: /src/git/scalar.c:496,1
    - Dst: xstrdup
      Src: /src/git/scalar.c:498,1
    - Dst: strbuf_reset
      Src: /src/git/scalar.c:500,1
    - Dst: strbuf_addf
      Src: /src/git/scalar.c:502,1
    - Dst: repo_default_branch_name
      Src: /src/git/scalar.c:504,1
    - Dst: strbuf_addf
      Src: /src/git/scalar.c:505,1
    - Dst: free
      Src: /src/git/scalar.c:506,1
    - Dst: run_git
      Src: /src/git/scalar.c:509,1
    - Dst: chdir
      Src: /src/git/scalar.c:512,1
    - Dst: error_errno
      Src: /src/git/scalar.c:513,1
    - Dst: _
      Src: /src/git/scalar.c:513,1
    - Dst: setup_git_directory
      Src: /src/git/scalar.c:517,1
    - Dst: trace2_def_repo
      Src: /src/git/scalar.c:520,1
    - Dst: remote_default_branch
      Src: /src/git/scalar.c:522,1
    - Dst: error
      Src: /src/git/scalar.c:523,1
    - Dst: _
      Src: /src/git/scalar.c:523,1
    - Dst: set_config
      Src: /src/git/scalar.c:527,1
    - Dst: set_config
      Src: /src/git/scalar.c:528,1
    - Dst: set_config
      Src: /src/git/scalar.c:532,1
    - Dst: set_config
      Src: /src/git/scalar.c:533,1
    - Dst: error
      Src: /src/git/scalar.c:534,1
    - Dst: _
      Src: /src/git/scalar.c:534,1
    - Dst: set_config
      Src: /src/git/scalar.c:538,1
    - Dst: error
      Src: /src/git/scalar.c:539,1
    - Dst: _
      Src: /src/git/scalar.c:539,1
    - Dst: run_git
      Src: /src/git/scalar.c:544,1
    - Dst: set_recommended_config
      Src: /src/git/scalar.c:547,1
    - Dst: error
      Src: /src/git/scalar.c:548,1
    - Dst: _
      Src: /src/git/scalar.c:548,1
    - Dst: run_git
      Src: /src/git/scalar.c:550,1
    - Dst: warning
      Src: /src/git/scalar.c:555,1
    - Dst: _
      Src: /src/git/scalar.c:555,1
    - Dst: set_config
      Src: /src/git/scalar.c:557,1
    - Dst: set_config
      Src: /src/git/scalar.c:558,1
    - Dst: error
      Src: /src/git/scalar.c:559,1
    - Dst: _
      Src: /src/git/scalar.c:559,1
    - Dst: run_git
      Src: /src/git/scalar.c:563,1
    - Dst: set_config
      Src: /src/git/scalar.c:569,1
    - Dst: set_config
      Src: /src/git/scalar.c:571,1
    - Dst: strbuf_reset
      Src: /src/git/scalar.c:575,1
    - Dst: strbuf_addf
      Src: /src/git/scalar.c:576,1
    - Dst: run_git
      Src: /src/git/scalar.c:577,1
    - Dst: register_dir
      Src: /src/git/scalar.c:582,1
    - Dst: free
      Src: /src/git/scalar.c:585,1
    - Dst: free
      Src: /src/git/scalar.c:586,1
    - Dst: free
      Src: /src/git/scalar.c:587,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:588,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 92
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 435
    functionDepth: 14
    functionLinenumber: 435
    functionLinenumberEnd: 590
    functionName: cmd_clone
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - error_errno
    - parse_options
    - setup_git_directory
    - is_dir_sep
    - set_recommended_config
    - OPT_BOOL
    - strbuf_addf
    - remote_default_branch
    - register_dir
    - free
    - error
    - strbuf_release
    - OPT_END
    - die
    - strbuf_setlen
    - repo_default_branch_name
    - strbuf_addstr
    - set_config
    - isatty
    - chdir
    - strbuf_strip_suffix
    - trace2_def_repo
    - run_git
    - _
    - N_
    - warning
    - xstrdup
    - usage_msg_opt
    - strbuf_reset
    - xstrfmt
    - OPT_STRING
    - find_last_dir_sep
    - is_directory
    linkageType: ''
    returnType: int
    signature: int cmd_clone(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/scalar.c:595,1
    - Dst: N_
      Src: /src/git/scalar.c:598,1
    - Dst: parse_options
      Src: /src/git/scalar.c:604,1
    - Dst: setup_enlistment_directory
      Src: /src/git/scalar.c:607,1
    - Dst: strbuf_addstr
      Src: /src/git/scalar.c:608,1
    - Dst: run_git
      Src: /src/git/scalar.c:610,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 592
    functionDepth: 15
    functionLinenumber: 592
    functionLinenumberEnd: 615
    functionName: cmd_diagnose
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - strbuf_release
    - run_git
    - strbuf_addstr
    - setup_enlistment_directory
    - N_
    linkageType: ''
    returnType: int
    signature: int cmd_diagnose(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/scalar.c:620,1
    - Dst: _
      Src: /src/git/scalar.c:620,1
    - Dst: run_git
      Src: /src/git/scalar.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 9
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: cmd_list
    functionSourceFile: /src/git/scalar.c
    functionUses: 1
    functionsReached:
    - die
    - run_git
    - _
    linkageType: ''
    returnType: int
    signature: int cmd_list(int argc, const char **argv UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/scalar.c:631,1
    - Dst: N_
      Src: /src/git/scalar.c:632,1
    - Dst: OPT_END
      Src: /src/git/scalar.c:633,1
    - Dst: N_
      Src: /src/git/scalar.c:636,1
    - Dst: parse_options
      Src: /src/git/scalar.c:640,1
    - Dst: setup_enlistment_directory
      Src: /src/git/scalar.c:643,1
    - Dst: register_dir
      Src: /src/git/scalar.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 627
    functionDepth: 15
    functionLinenumber: 627
    functionLinenumberEnd: 647
    functionName: cmd_register
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - OPT_BOOL
    - register_dir
    - setup_enlistment_directory
    - N_
    linkageType: ''
    returnType: int
    signature: int cmd_register(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/scalar.c:655,1
    - Dst: string_list_append
      Src: /src/git/scalar.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 659
    functionName: get_scalar_repos
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - string_list_append
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int get_scalar_repos(const char *key, const char *value,\n\t\t\t    const
      struct config_context *ctx UNUSED,\n\t\t\t    void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/scalar.c:664,1
    - Dst: run_git
      Src: /src/git/scalar.c:666,1
    - Dst: run_git
      Src: /src/git/scalar.c:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 661
    functionDepth: 9
    functionLinenumber: 661
    functionLinenumberEnd: 677
    functionName: remove_deleted_enlistment
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - run_git
    - strbuf_realpath_forgiving
    linkageType: ''
    returnType: int
    signature: int remove_deleted_enlistment(struct strbuf *path)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/scalar.c:686,1
    - Dst: N_
      Src: /src/git/scalar.c:687,1
    - Dst: OPT_STRING
      Src: /src/git/scalar.c:688,1
    - Dst: N_
      Src: /src/git/scalar.c:689,1
    - Dst: N_
      Src: /src/git/scalar.c:690,1
    - Dst: OPT_END
      Src: /src/git/scalar.c:691,1
    - Dst: N_
      Src: /src/git/scalar.c:694,1
    - Dst: parse_options
      Src: /src/git/scalar.c:701,1
    - Dst: setup_enlistment_directory
      Src: /src/git/scalar.c:705,1
    - Dst: set_recommended_config
      Src: /src/git/scalar.c:707,1
    - Dst: usage_msg_opt
      Src: /src/git/scalar.c:711,1
    - Dst: _
      Src: /src/git/scalar.c:711,1
    - Dst: strcmp
      Src: /src/git/scalar.c:715,1
    - Dst: strcmp
      Src: /src/git/scalar.c:717,1
    - Dst: strcmp
      Src: /src/git/scalar.c:719,1
    - Dst: die
      Src: /src/git/scalar.c:722,1
    - Dst: _
      Src: /src/git/scalar.c:722,1
    - Dst: repo_config
      Src: /src/git/scalar.c:726,1
    - Dst: strbuf_reset
      Src: /src/git/scalar.c:733,1
    - Dst: strbuf_reset
      Src: /src/git/scalar.c:734,1
    - Dst: chdir
      Src: /src/git/scalar.c:736,1
    - Dst: warning_errno
      Src: /src/git/scalar.c:740,1
    - Dst: _
      Src: /src/git/scalar.c:740,1
    - Dst: strbuf_addstr
      Src: /src/git/scalar.c:744,1
    - Dst: remove_deleted_enlistment
      Src: /src/git/scalar.c:745,1
    - Dst: error
      Src: /src/git/scalar.c:746,1
    - Dst: _
      Src: /src/git/scalar.c:746,1
    - Dst: warning
      Src: /src/git/scalar.c:749,1
    - Dst: _
      Src: /src/git/scalar.c:749,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:753,1
    - Dst: discover_git_directory_reason
      Src: /src/git/scalar.c:757,1
    - Dst: warning
      Src: /src/git/scalar.c:759,1
    - Dst: _
      Src: /src/git/scalar.c:759,1
    - Dst: warning
      Src: /src/git/scalar.c:764,1
    - Dst: _
      Src: /src/git/scalar.c:764,1
    - Dst: warning
      Src: /src/git/scalar.c:772,1
    - Dst: _
      Src: /src/git/scalar.c:772,1
    - Dst: repo_config_clear
      Src: /src/git/scalar.c:776,1
    - Dst: repo_init
      Src: /src/git/scalar.c:778,1
    - Dst: set_recommended_config
      Src: /src/git/scalar.c:784,1
    - Dst: repo_clear
      Src: /src/git/scalar.c:788,1
    - Dst: toggle_maintenance
      Src: /src/git/scalar.c:791,1
    - Dst: warning
      Src: /src/git/scalar.c:797,1
    - Dst: _
      Src: /src/git/scalar.c:797,1
    - Dst: string_list_clear
      Src: /src/git/scalar.c:803,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:804,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:805,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 679
    functionDepth: 15
    functionLinenumber: 679
    functionLinenumberEnd: 808
    functionName: cmd_reconfigure
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - parse_options
    - remove_deleted_enlistment
    - set_recommended_config
    - repo_config_clear
    - OPT_BOOL
    - toggle_maintenance
    - repo_init
    - strcmp
    - repo_config
    - error
    - strbuf_release
    - OPT_END
    - die
    - setup_enlistment_directory
    - strbuf_addstr
    - discover_git_directory_reason
    - string_list_clear
    - chdir
    - _
    - N_
    - warning
    - usage_msg_opt
    - strbuf_reset
    - warning_errno
    - OPT_STRING
    - repo_clear
    linkageType: ''
    returnType: int
    signature: int cmd_reconfigure(int argc, const char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/scalar.c:813,1
    - Dst: strbuf_addstr
      Src: /src/git/scalar.c:829,1
    - Dst: N_
      Src: /src/git/scalar.c:829,1
    - Dst: strbuf_addf
      Src: /src/git/scalar.c:831,1
    - Dst: parse_options
      Src: /src/git/scalar.c:834,1
    - Dst: usage_with_options
      Src: /src/git/scalar.c:838,1
    - Dst: strcmp
      Src: /src/git/scalar.c:840,1
    - Dst: strcmp
      Src: /src/git/scalar.c:843,1
    - Dst: error
      Src: /src/git/scalar.c:847,1
    - Dst: _
      Src: /src/git/scalar.c:847,1
    - Dst: usage_with_options
      Src: /src/git/scalar.c:848,1
    - Dst: setup_enlistment_directory
      Src: /src/git/scalar.c:854,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:855,1
    - Dst: register_dir
      Src: /src/git/scalar.c:858,1
    - Dst: run_git
      Src: /src/git/scalar.c:861,1
    - Dst: register_dir
      Src: /src/git/scalar.c:864,1
    - Dst: run_git
      Src: /src/git/scalar.c:867,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 810
    functionDepth: 15
    functionLinenumber: 810
    functionLinenumberEnd: 871
    functionName: cmd_run
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - strbuf_release
    - strbuf_addf
    - register_dir
    - run_git
    - strbuf_addstr
    - strcmp
    - N_
    - setup_enlistment_directory
    - _
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd_run(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/scalar.c:876,1
    - Dst: N_
      Src: /src/git/scalar.c:879,1
    - Dst: parse_options
      Src: /src/git/scalar.c:883,1
    - Dst: strbuf_addf
      Src: /src/git/scalar.c:894,1
    - Dst: strbuf_addf
      Src: /src/git/scalar.c:895,1
    - Dst: is_directory
      Src: /src/git/scalar.c:896,1
    - Dst: is_directory
      Src: /src/git/scalar.c:896,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/scalar.c:900,1
    - Dst: remove_deleted_enlistment
      Src: /src/git/scalar.c:901,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/scalar.c:903,1
    - Dst: remove_deleted_enlistment
      Src: /src/git/scalar.c:904,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:906,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:907,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:910,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:911,1
    - Dst: setup_enlistment_directory
      Src: /src/git/scalar.c:914,1
    - Dst: unregister_dir
      Src: /src/git/scalar.c:916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 873
    functionDepth: 15
    functionLinenumber: 873
    functionLinenumberEnd: 917
    functionName: cmd_unregister
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - is_directory
    - remove_deleted_enlistment
    - strbuf_release
    - strbuf_strip_suffix
    - strbuf_addf
    - unregister_dir
    - setup_enlistment_directory
    - N_
    linkageType: ''
    returnType: int
    signature: int cmd_unregister(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xgetcwd
      Src: /src/git/scalar.c:921,1
    - Dst: OPT_END
      Src: /src/git/scalar.c:923,1
    - Dst: N_
      Src: /src/git/scalar.c:926,1
    - Dst: parse_options
      Src: /src/git/scalar.c:932,1
    - Dst: usage_with_options
      Src: /src/git/scalar.c:936,1
    - Dst: setup_enlistment_directory
      Src: /src/git/scalar.c:938,1
    - Dst: dir_inside_of
      Src: /src/git/scalar.c:940,1
    - Dst: error
      Src: /src/git/scalar.c:941,1
    - Dst: _
      Src: /src/git/scalar.c:941,1
    - Dst: odb_close
      Src: /src/git/scalar.c:943,1
    - Dst: delete_enlistment
      Src: /src/git/scalar.c:944,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:946,1
    - Dst: free
      Src: /src/git/scalar.c:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 919
    functionDepth: 15
    functionLinenumber: 919
    functionLinenumberEnd: 950
    functionName: cmd_delete
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - error
    - xgetcwd
    - OPT_END
    - parse_options
    - odb_close
    - strbuf_release
    - free
    - delete_enlistment
    - dir_inside_of
    - setup_enlistment_directory
    - _
    - N_
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd_delete(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/scalar.c:955,1
    - Dst: parse_options
      Src: /src/git/scalar.c:962,1
    - Dst: usage_with_options
      Src: /src/git/scalar.c:966,1
    - Dst: run_git
      Src: /src/git/scalar.c:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 952
    functionDepth: 9
    functionLinenumber: 952
    functionLinenumberEnd: 969
    functionName: cmd_help
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - run_git
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd_help(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSE
      Src: /src/git/scalar.c:975,1
    - Dst: N_
      Src: /src/git/scalar.c:975,1
    - Dst: OPT_BOOL
      Src: /src/git/scalar.c:976,1
    - Dst: N_
      Src: /src/git/scalar.c:977,1
    - Dst: OPT_END
      Src: /src/git/scalar.c:978,1
    - Dst: N_
      Src: /src/git/scalar.c:981,1
    - Dst: parse_options
      Src: /src/git/scalar.c:986,1
    - Dst: usage_with_options
      Src: /src/git/scalar.c:990,1
    - Dst: get_version_info
      Src: /src/git/scalar.c:992,1
    - Dst: fprintf
      Src: /src/git/scalar.c:993,1
    - Dst: strbuf_release
      Src: /src/git/scalar.c:994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 971
    functionDepth: 3
    functionLinenumber: 971
    functionLinenumberEnd: 997
    functionName: cmd_version
    functionSourceFile: /src/git/scalar.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - strbuf_release
    - OPT_BOOL
    - get_version_info
    - N_
    - OPT__VERBOSE
    - fprintf
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd_version(int argc, const char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/scalar.c:1022,1
    - Dst: die
      Src: /src/git/scalar.c:1024,1
    - Dst: _
      Src: /src/git/scalar.c:1024,1
    - Dst: chdir
      Src: /src/git/scalar.c:1025,1
    - Dst: die_errno
      Src: /src/git/scalar.c:1026,1
    - Dst: _
      Src: /src/git/scalar.c:1026,1
    - Dst: strcmp
      Src: /src/git/scalar.c:1030,1
    - Dst: die
      Src: /src/git/scalar.c:1032,1
    - Dst: _
      Src: /src/git/scalar.c:1032,1
    - Dst: git_config_push_parameter
      Src: /src/git/scalar.c:1033,1
    - Dst: strcmp
      Src: /src/git/scalar.c:1045,1
    - Dst: fn
      Src: /src/git/scalar.c:1046,1
    - Dst: strbuf_addstr
      Src: /src/git/scalar.c:1049,1
    - Dst: N_
      Src: /src/git/scalar.c:1050,1
    - Dst: strbuf_addf
      Src: /src/git/scalar.c:1053,1
    - Dst: usage
      Src: /src/git/scalar.c:1055,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1056
    functionName: cmd_main
    functionSourceFile: /src/git/scalar.c
    functionUses: 1
    functionsReached:
    - chdir
    - die
    - fn
    - die_errno
    - strbuf_addf
    - usage
    - strcmp
    - strbuf_addstr
    - _
    - N_
    - git_config_push_parameter
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/path.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: get_st_mode_bits
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - lstat
    linkageType: ''
    returnType: int
    signature: int get_st_mode_bits(const char *path, int *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/path.c:37,1
    - Dst: strbuf_reset
      Src: /src/git/path.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: get_pathname
    functionSourceFile: /src/git/path.c
    functionUses: 2
    functionsReached:
    - strbuf_reset
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct strbuf
    signature: struct strbuf *get_pathname(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/path.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: cleanup_path
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: char
    signature: char *cleanup_path(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_path
      Src: /src/git/path.c:54,1
    - Dst: strbuf_remove
      Src: /src/git/path.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: strbuf_cleanup_path
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strbuf_remove
    - cleanup_path
    linkageType: ''
    returnType: void
    signature: void strbuf_cleanup_path(struct strbuf *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/path.c:61,1
    - Dst: strncmp
      Src: /src/git/path.c:62,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - dir
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: dir_prefix
    functionSourceFile: /src/git/path.c
    functionUses: 2
    functionsReached:
    - is_dir_sep
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int dir_prefix(const char *buf, const char *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/path.c:69,1
    - Dst: strncmp
      Src: /src/git/path.c:70,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:70,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:72,1
    - Dst: strcmp
      Src: /src/git/path.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - dir
    - file
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: is_dir_file
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strncmp
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_dir_file(const char *buf, const char *dir, const char *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/path.c:79,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:80,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:81,1
    - Dst: strbuf_splice
      Src: /src/git/path.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - len
    - newdir
    argTypes:
    - struct strbuf*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: replace_dir
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strlen
    - strbuf_splice
    linkageType: ''
    returnType: void
    signature: void replace_dir(struct strbuf *buf, int len, const char *newdir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/path.c:155,1
    - Dst: strlen
      Src: /src/git/path.c:156,1
    - Dst: xmalloc
      Src: /src/git/path.c:158,1
    - Dst: memcpy
      Src: /src/git/path.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: make_trie_node
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - xcalloc
    - xmalloc
    linkageType: ''
    returnType: struct trie
    signature: struct trie *make_trie_node(const char *key, void *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/path.c:190,1
    - Dst: memcpy
      Src: /src/git/path.c:191,1
    - Dst: xstrndup
      Src: /src/git/path.c:195,1
    - Dst: memset
      Src: /src/git/path.c:202,1
    - Dst: make_trie_node
      Src: /src/git/path.c:207,1
    - Dst: add_to_trie
      Src: /src/git/path.c:215,1
    - Dst: make_trie_node
      Src: /src/git/path.c:217,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - root
    - key
    - value
    argTypes:
    - struct trie*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 226
    functionName: add_to_trie
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - memset
    - make_trie_node
    - xstrndup
    - memcpy
    - xmalloc
    - add_to_trie
    linkageType: ''
    returnType: void
    signature: void *add_to_trie(struct trie *root, const char *key, void *value)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/path.c:274,1
    - Dst: fn
      Src: /src/git/path.c:294,1
    - Dst: trie_find
      Src: /src/git/path.c:305,1
    - Dst: fn
      Src: /src/git/path.c:312,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 4
    argNames:
    - root
    - key
    - fn
    - baton
    argTypes:
    - struct trie*
    - char*
    - match_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 315
    functionName: trie_find
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - fn
    - trie_find
    linkageType: ''
    returnType: int
    signature: "int trie_find(struct trie *root, const char *key, match_fn fn,\n\t\t
      \    void *baton)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_to_trie
      Src: /src/git/path.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 331
    functionName: init_common_trie
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - add_to_trie
    linkageType: ''
    returnType: void
    signature: void init_common_trie(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - unmatched
    - value
    - UNUSED
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 349
    functionName: check_common
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int check_common(const char *unmatched, void *value,\n\t\t\tvoid *baton
      UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_strip_suffix
      Src: /src/git/path.c:355,1
    - Dst: init_common_trie
      Src: /src/git/path.c:357,1
    - Dst: trie_find
      Src: /src/git/path.c:358,1
    - Dst: replace_dir
      Src: /src/git/path.c:359,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - git_dir_len
    - common_dir
    argTypes:
    - struct strbuf*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: update_common_dir
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strbuf_strip_suffix
    - replace_dir
    - strbuf_addstr
    - trie_find
    - init_common_trie
    linkageType: ''
    returnType: void
    signature: "void update_common_dir(struct strbuf *buf, int git_dir_len,\n\t\t\t
      \     const char *common_dir)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/path.c:373,1
    - Dst: strbuf_setlen
      Src: /src/git/path.c:379,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:380,1
    - Dst: file_exists
      Src: /src/git/path.c:381,1
    - Dst: report_garbage
      Src: /src/git/path.c:382,1
    - Dst: strbuf_release
      Src: /src/git/path.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 385
    functionName: report_linked_checkout_garbage
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - strbuf_setlen
    - report_garbage
    - strbuf_addstr
    - file_exists
    linkageType: ''
    returnType: void
    signature: void report_linked_checkout_garbage(struct repository *r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_file
      Src: /src/git/path.c:392,1
    - Dst: strbuf_splice
      Src: /src/git/path.c:393,1
    - Dst: strlen
      Src: /src/git/path.c:394,1
    - Dst: strcmp
      Src: /src/git/path.c:395,1
    - Dst: strbuf_splice
      Src: /src/git/path.c:396,1
    - Dst: strlen
      Src: /src/git/path.c:397,1
    - Dst: dir_prefix
      Src: /src/git/path.c:398,1
    - Dst: replace_dir
      Src: /src/git/path.c:399,1
    - Dst: repo_settings_get_hooks_path
      Src: /src/git/path.c:400,1
    - Dst: dir_prefix
      Src: /src/git/path.c:400,1
    - Dst: replace_dir
      Src: /src/git/path.c:401,1
    - Dst: repo_settings_get_hooks_path
      Src: /src/git/path.c:401,1
    - Dst: update_common_dir
      Src: /src/git/path.c:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - repo
    - buf
    - git_dir_len
    argTypes:
    - struct repository*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 404
    functionName: adjust_git_path
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - repo_settings_get_hooks_path
    - dir_prefix
    - is_dir_file
    - update_common_dir
    - strlen
    - strbuf_splice
    - replace_dir
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void adjust_git_path(struct repository *repo,\n\t\t\t    struct strbuf
      *buf, int git_dir_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/path.c:411,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:413,1
    - Dst: repo_common_path_append
      Src: /src/git/path.c:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - repo
    - wt
    argTypes:
    - struct strbuf*
    - struct repository*
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 416
    functionName: strbuf_worktree_gitdir
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - repo_common_path_append
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void strbuf_worktree_gitdir(struct strbuf *buf,\n\t\t\t\t   const
      struct repository *repo,\n\t\t\t\t   const struct worktree *wt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_worktree_gitdir
      Src: /src/git/path.c:423,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:424,1
    - Dst: strbuf_addch
      Src: /src/git/path.c:425,1
    - Dst: strbuf_vaddf
      Src: /src/git/path.c:427,1
    - Dst: adjust_git_path
      Src: /src/git/path.c:429,1
    - Dst: strbuf_cleanup_path
      Src: /src/git/path.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - repo
    - wt
    - buf
    - fmt
    - args
    argTypes:
    - struct repository*
    - struct worktree*
    - struct strbuf*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 6
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: repo_git_pathv
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strbuf_vaddf
    - is_dir_sep
    - strbuf_cleanup_path
    - strbuf_addch
    - strbuf_worktree_gitdir
    - adjust_git_path
    linkageType: ''
    returnType: void
    signature: "void repo_git_pathv(struct repository *repo,\n\t\t\t   const struct
      worktree *wt, struct strbuf *buf,\n\t\t\t   const char *fmt, va_list args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/path.c:438,1
    - Dst: repo_git_pathv
      Src: /src/git/path.c:439,1
    - Dst: va_end
      Src: /src/git/path.c:440,1
    - Dst: strbuf_detach
      Src: /src/git/path.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - repo
    - fmt
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 433
    functionDepth: 7
    functionLinenumber: 433
    functionLinenumberEnd: 442
    functionName: repo_git_path
    functionSourceFile: /src/git/path.c
    functionUses: 8
    functionsReached:
    - va_end
    - va_start
    - strbuf_detach
    - repo_git_pathv
    linkageType: ''
    returnType: char
    signature: "char *repo_git_path(struct repository *repo,\n\t\t    const char *fmt,
      ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/path.c:449,1
    - Dst: repo_git_pathv
      Src: /src/git/path.c:450,1
    - Dst: va_end
      Src: /src/git/path.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - repo
    - sb
    - fmt
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 444
    functionDepth: 7
    functionLinenumber: 444
    functionLinenumberEnd: 453
    functionName: repo_git_path_append
    functionSourceFile: /src/git/path.c
    functionUses: 2
    functionsReached:
    - va_end
    - va_start
    - repo_git_pathv
    linkageType: ''
    returnType: char
    signature: "char *repo_git_path_append(struct repository *repo,\n\t\t\t\t struct
      strbuf *sb,\n\t\t\t\t const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/path.c:460,1
    - Dst: va_start
      Src: /src/git/path.c:461,1
    - Dst: repo_git_pathv
      Src: /src/git/path.c:462,1
    - Dst: va_end
      Src: /src/git/path.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - repo
    - sb
    - fmt
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 455
    functionDepth: 7
    functionLinenumber: 455
    functionLinenumberEnd: 465
    functionName: repo_git_path_replace
    functionSourceFile: /src/git/path.c
    functionUses: 6
    functionsReached:
    - strbuf_reset
    - va_start
    - va_end
    - repo_git_pathv
    linkageType: ''
    returnType: char
    signature: "char *repo_git_path_replace(struct repository *repo,\n\t\t\t\t  struct
      strbuf *sb,\n\t\t\t\t  const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/path.c:471,1
    - Dst: strbuf_vaddf
      Src: /src/git/path.c:472,1
    - Dst: va_end
      Src: /src/git/path.c:473,1
    - Dst: strbuf_cleanup_path
      Src: /src/git/path.c:474,1
    - Dst: strbuf_detach
      Src: /src/git/path.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: mkpathdup
    functionSourceFile: /src/git/path.c
    functionUses: 4
    functionsReached:
    - strbuf_vaddf
    - strbuf_cleanup_path
    - va_end
    - strbuf_detach
    - va_start
    linkageType: ''
    returnType: char
    signature: char *mkpathdup(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_pathname
      Src: /src/git/path.c:481,1
    - Dst: va_start
      Src: /src/git/path.c:482,1
    - Dst: strbuf_vaddf
      Src: /src/git/path.c:483,1
    - Dst: va_end
      Src: /src/git/path.c:484,1
    - Dst: cleanup_path
      Src: /src/git/path.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 486
    functionName: mkpath
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - strbuf_vaddf
    - cleanup_path
    - get_pathname
    - va_end
    - va_start
    linkageType: ''
    returnType: char
    signature: char *mkpath(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_pathname
      Src: /src/git/path.c:490,1
    - Dst: BUG
      Src: /src/git/path.c:494,1
    - Dst: va_start
      Src: /src/git/path.c:496,1
    - Dst: repo_git_pathv
      Src: /src/git/path.c:497,1
    - Dst: va_end
      Src: /src/git/path.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - wt
    - fmt
    argTypes:
    - struct worktree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 488
    functionDepth: 7
    functionLinenumber: 488
    functionLinenumberEnd: 500
    functionName: worktree_git_path
    functionSourceFile: /src/git/path.c
    functionUses: 4
    functionsReached:
    - get_pathname
    - va_end
    - va_start
    - BUG
    - repo_git_pathv
    linkageType: ''
    returnType: char
    signature: char *worktree_git_path(const struct worktree *wt, const char *fmt,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/path.c:506,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:507,1
    - Dst: strbuf_addch
      Src: /src/git/path.c:508,1
    - Dst: strbuf_vaddf
      Src: /src/git/path.c:510,1
    - Dst: strbuf_cleanup_path
      Src: /src/git/path.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - repo
    - buf
    - fmt
    - args
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 502
    functionDepth: 5
    functionLinenumber: 502
    functionLinenumberEnd: 512
    functionName: do_worktree_path
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strbuf_vaddf
    - is_dir_sep
    - strbuf_cleanup_path
    - strbuf_addch
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void do_worktree_path(const struct repository *repo,\n\t\t\t     struct
      strbuf *buf,\n\t\t\t     const char *fmt, va_list args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/path.c:519,1
    - Dst: do_worktree_path
      Src: /src/git/path.c:520,1
    - Dst: va_end
      Src: /src/git/path.c:521,1
    - Dst: strbuf_detach
      Src: /src/git/path.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - repo
    - fmt
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 514
    functionDepth: 6
    functionLinenumber: 514
    functionLinenumberEnd: 524
    functionName: repo_worktree_path
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - do_worktree_path
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *repo_worktree_path(const struct repository *repo, const char
      *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/path.c:535,1
    - Dst: do_worktree_path
      Src: /src/git/path.c:536,1
    - Dst: va_end
      Src: /src/git/path.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - repo
    - sb
    - fmt
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 526
    functionDepth: 6
    functionLinenumber: 526
    functionLinenumberEnd: 540
    functionName: repo_worktree_path_append
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - do_worktree_path
    linkageType: ''
    returnType: char
    signature: "char *repo_worktree_path_append(const struct repository *repo,\n\t\t\t\t
      \     struct strbuf *sb,\n\t\t\t\t      const char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/path.c:548,1
    - Dst: va_start
      Src: /src/git/path.c:552,1
    - Dst: do_worktree_path
      Src: /src/git/path.c:553,1
    - Dst: va_end
      Src: /src/git/path.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - repo
    - sb
    - fmt
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 542
    functionDepth: 6
    functionLinenumber: 542
    functionLinenumberEnd: 557
    functionName: repo_worktree_path_replace
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - va_start
    - do_worktree_path
    - va_end
    linkageType: ''
    returnType: char
    signature: "char *repo_worktree_path_replace(const struct repository *repo,\n\t\t\t\t
      \      struct strbuf *sb,\n\t\t\t\t       const char *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: submodule_to_gitdir
      Src: /src/git/path.c:568,1
    - Dst: strbuf_complete
      Src: /src/git/path.c:572,1
    - Dst: strbuf_addbuf
      Src: /src/git/path.c:573,1
    - Dst: strbuf_vaddf
      Src: /src/git/path.c:574,1
    - Dst: get_common_dir_noenv
      Src: /src/git/path.c:576,1
    - Dst: update_common_dir
      Src: /src/git/path.c:577,1
    - Dst: strbuf_cleanup_path
      Src: /src/git/path.c:579,1
    - Dst: strbuf_release
      Src: /src/git/path.c:582,1
    - Dst: strbuf_release
      Src: /src/git/path.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - repo
    - buf
    - path
    - fmt
    - args
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 560
    functionDepth: 6
    functionLinenumber: 560
    functionLinenumberEnd: 585
    functionName: do_submodule_path
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_vaddf
    - strbuf_cleanup_path
    - update_common_dir
    - get_common_dir_noenv
    - submodule_to_gitdir
    - strbuf_addbuf
    - strbuf_complete
    linkageType: ''
    returnType: int
    signature: "int do_submodule_path(struct repository *repo,\n\t\t\t     struct
      strbuf *buf, const char *path,\n\t\t\t     const char *fmt, va_list args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/path.c:593,1
    - Dst: do_submodule_path
      Src: /src/git/path.c:594,1
    - Dst: va_end
      Src: /src/git/path.c:595,1
    - Dst: strbuf_release
      Src: /src/git/path.c:597,1
    - Dst: strbuf_detach
      Src: /src/git/path.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - repo
    - path
    - fmt
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 587
    functionDepth: 7
    functionLinenumber: 587
    functionLinenumberEnd: 601
    functionName: repo_submodule_path
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - do_submodule_path
    - va_end
    - strbuf_detach
    - va_start
    linkageType: ''
    returnType: char
    signature: "char *repo_submodule_path(struct repository *repo,\n\t\t\t  const
      char *path, const char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/path.c:610,1
    - Dst: do_submodule_path
      Src: /src/git/path.c:611,1
    - Dst: va_end
      Src: /src/git/path.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - repo
    - buf
    - path
    - fmt
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 603
    functionDepth: 7
    functionLinenumber: 603
    functionLinenumberEnd: 616
    functionName: repo_submodule_path_append
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - do_submodule_path
    linkageType: ''
    returnType: char
    signature: "char *repo_submodule_path_append(struct repository *repo,\n\t\t\t\t
      \      struct strbuf *buf,\n\t\t\t\t       const char *path,\n\t\t\t\t       const
      char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/path.c:625,1
    - Dst: va_start
      Src: /src/git/path.c:626,1
    - Dst: do_submodule_path
      Src: /src/git/path.c:627,1
    - Dst: va_end
      Src: /src/git/path.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - repo
    - buf
    - path
    - fmt
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 618
    functionDepth: 7
    functionLinenumber: 618
    functionLinenumberEnd: 632
    functionName: repo_submodule_path_replace
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - va_start
    - va_end
    - do_submodule_path
    linkageType: ''
    returnType: char
    signature: "char *repo_submodule_path_replace(struct repository *repo,\n\t\t\t\t\tstruct
      strbuf *buf,\n\t\t\t\t\tconst char *path,\n\t\t\t\t\tconst char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/path.c:639,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:640,1
    - Dst: strbuf_addch
      Src: /src/git/path.c:641,1
    - Dst: strbuf_vaddf
      Src: /src/git/path.c:642,1
    - Dst: strbuf_cleanup_path
      Src: /src/git/path.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - repo
    - sb
    - fmt
    - args
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 634
    functionDepth: 5
    functionLinenumber: 634
    functionLinenumberEnd: 644
    functionName: repo_common_pathv
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strbuf_vaddf
    - is_dir_sep
    - strbuf_cleanup_path
    - strbuf_addch
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void repo_common_pathv(const struct repository *repo,\n\t\t\t      struct
      strbuf *sb,\n\t\t\t      const char *fmt,\n\t\t\t      va_list args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/path.c:651,1
    - Dst: repo_common_pathv
      Src: /src/git/path.c:652,1
    - Dst: va_end
      Src: /src/git/path.c:653,1
    - Dst: strbuf_detach
      Src: /src/git/path.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - repo
    - fmt
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 646
    functionDepth: 6
    functionLinenumber: 646
    functionLinenumberEnd: 655
    functionName: repo_common_path
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - strbuf_detach
    - repo_common_pathv
    linkageType: ''
    returnType: char
    signature: "char *repo_common_path(const struct repository *repo,\n\t\t       const
      char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/path.c:662,1
    - Dst: repo_common_pathv
      Src: /src/git/path.c:663,1
    - Dst: va_end
      Src: /src/git/path.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - repo
    - sb
    - fmt
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 657
    functionDepth: 6
    functionLinenumber: 657
    functionLinenumberEnd: 666
    functionName: repo_common_path_append
    functionSourceFile: /src/git/path.c
    functionUses: 4
    functionsReached:
    - va_end
    - va_start
    - repo_common_pathv
    linkageType: ''
    returnType: char
    signature: "char *repo_common_path_append(const struct repository *repo,\n\t\t\t\t
      \   struct strbuf *sb,\n\t\t\t\t    const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/path.c:673,1
    - Dst: va_start
      Src: /src/git/path.c:674,1
    - Dst: repo_common_pathv
      Src: /src/git/path.c:675,1
    - Dst: va_end
      Src: /src/git/path.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - repo
    - sb
    - fmt
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 668
    functionDepth: 6
    functionLinenumber: 668
    functionLinenumberEnd: 678
    functionName: repo_common_path_replace
    functionSourceFile: /src/git/path.c
    functionUses: 2
    functionsReached:
    - strbuf_reset
    - va_start
    - va_end
    - repo_common_pathv
    linkageType: ''
    returnType: char
    signature: "char *repo_common_path_replace(const struct repository *repo,\n\t\t\t\t
      \    struct strbuf *sb,\n\t\t\t\t     const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmemdupz
      Src: /src/git/path.c:683,1
    - Dst: getpwnam
      Src: /src/git/path.c:684,1
    - Dst: free
      Src: /src/git/path.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - username
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 687
    functionName: getpw_str
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - getpwnam
    - free
    linkageType: ''
    returnType: struct passwd
    signature: struct passwd *getpw_str(const char *username, size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/path.c:706,1
    - Dst: system_path
      Src: /src/git/path.c:707,1
    - Dst: strchrnul
      Src: /src/git/path.c:710,1
    - Dst: getenv
      Src: /src/git/path.c:714,1
    - Dst: strbuf_add_real_path
      Src: /src/git/path.c:718,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:720,1
    - Dst: convert_slashes
      Src: /src/git/path.c:722,1
    - Dst: getpw_str
      Src: /src/git/path.c:725,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:728,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:732,1
    - Dst: strbuf_detach
      Src: /src/git/path.c:733,1
    - Dst: strbuf_release
      Src: /src/git/path.c:735,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - path
    - real_home
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 737
    functionName: interpolate_path
    functionSourceFile: /src/git/path.c
    functionUses: 3
    functionsReached:
    - strbuf_release
    - strbuf_add_real_path
    - skip_prefix
    - strchrnul
    - getpw_str
    - strbuf_detach
    - strbuf_addstr
    - convert_slashes
    - getenv
    - system_path
    linkageType: ''
    returnType: char
    signature: char *interpolate_path(const char *path, int real_home)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/path.c:743,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - repo
    - mode
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 760
    functionName: calc_shared_perm
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - repo_settings_get_shared_repository
    linkageType: ''
    returnType: int
    signature: "int calc_shared_perm(struct repository *repo,\n\t\t     int mode)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/path.c:767,1
    - Dst: get_st_mode_bits
      Src: /src/git/path.c:769,1
    - Dst: calc_shared_perm
      Src: /src/git/path.c:772,1
    - Dst: S_ISDIR
      Src: /src/git/path.c:773,1
    - Dst: chmod
      Src: /src/git/path.c:786,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 762
    functionDepth: 2
    functionLinenumber: 762
    functionLinenumberEnd: 789
    functionName: adjust_shared_perm
    functionSourceFile: /src/git/path.c
    functionUses: 10
    functionsReached:
    - S_ISDIR
    - get_st_mode_bits
    - chmod
    - calc_shared_perm
    - repo_settings_get_shared_repository
    linkageType: ''
    returnType: int
    signature: "int adjust_shared_perm(struct repository *repo,\n\t\t       const
      char *path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/git/path.c:793,1
    - Dst: perror
      Src: /src/git/path.c:795,1
    - Dst: exit
      Src: /src/git/path.c:796,1
    - Dst: adjust_shared_perm
      Src: /src/git/path.c:799,1
    - Dst: die
      Src: /src/git/path.c:800,1
    - Dst: _
      Src: /src/git/path.c:800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - repo
    - dir
    - share
    argTypes:
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 791
    functionDepth: 3
    functionLinenumber: 791
    functionLinenumberEnd: 801
    functionName: safe_create_dir
    functionSourceFile: /src/git/path.c
    functionUses: 4
    functionsReached:
    - die
    - perror
    - exit
    - mkdir
    - _
    - adjust_shared_perm
    linkageType: ''
    returnType: void
    signature: void safe_create_dir(struct repository *repo, const char *dir, int
      share)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/git/path.c:805,1
    - Dst: lstat
      Src: /src/git/path.c:819,1
    - Dst: S_ISLNK
      Src: /src/git/path.c:819,1
    - Dst: strbuf_readlink
      Src: /src/git/path.c:820,1
    - Dst: is_absolute_path
      Src: /src/git/path.c:821,1
    - Dst: mkdir
      Src: /src/git/path.c:822,1
    - Dst: strbuf_release
      Src: /src/git/path.c:823,1
    - Dst: strbuf_release
      Src: /src/git/path.c:827,1
    - Dst: adjust_shared_perm
      Src: /src/git/path.c:829,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 803
    functionDepth: 4
    functionLinenumber: 803
    functionLinenumberEnd: 830
    functionName: safe_create_dir_in_gitdir
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - is_absolute_path
    - S_ISLNK
    - strbuf_readlink
    - mkdir
    - adjust_shared_perm
    - lstat
    linkageType: ''
    returnType: int
    signature: int safe_create_dir_in_gitdir(struct repository *repo, const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: offset_1st_component
      Src: /src/git/path.c:835,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:842,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:849,1
    - Dst: stat
      Src: /src/git/path.c:856,1
    - Dst: S_ISDIR
      Src: /src/git/path.c:858,1
    - Dst: mkdir
      Src: /src/git/path.c:862,1
    - Dst: stat
      Src: /src/git/path.c:864,1
    - Dst: S_ISDIR
      Src: /src/git/path.c:864,1
    - Dst: adjust_shared_perm
      Src: /src/git/path.c:879,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 832
    functionDepth: 3
    functionLinenumber: 832
    functionLinenumberEnd: 885
    functionName: safe_create_leading_directories_1
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - is_dir_sep
    - stat
    - mkdir
    - offset_1st_component
    - adjust_shared_perm
    linkageType: ''
    returnType: enum scld_error
    signature: "enum scld_error safe_create_leading_directories_1(struct repository
      *repo,\n\t\t\t\t\t\t\t char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: safe_create_leading_directories_1
      Src: /src/git/path.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 887
    functionDepth: 4
    functionLinenumber: 887
    functionLinenumberEnd: 891
    functionName: safe_create_leading_directories
    functionSourceFile: /src/git/path.c
    functionUses: 2
    functionsReached:
    - safe_create_leading_directories_1
    linkageType: ''
    returnType: enum scld_error
    signature: "enum scld_error safe_create_leading_directories(struct repository
      *repo,\n\t\t\t\t\t\tchar *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: safe_create_leading_directories_1
      Src: /src/git/path.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 896
    functionName: safe_create_leading_directories_no_share
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - safe_create_leading_directories_1
    linkageType: ''
    returnType: enum scld_error
    signature: enum scld_error safe_create_leading_directories_no_share(char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/path.c:903,1
    - Dst: safe_create_leading_directories
      Src: /src/git/path.c:904,1
    - Dst: free
      Src: /src/git/path.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 898
    functionDepth: 5
    functionLinenumber: 898
    functionLinenumberEnd: 910
    functionName: safe_create_leading_directories_const
    functionSourceFile: /src/git/path.c
    functionUses: 4
    functionsReached:
    - free
    - safe_create_leading_directories
    - xstrdup
    linkageType: ''
    returnType: enum scld_error
    signature: "enum scld_error safe_create_leading_directories_const(struct repository
      *repo,\n\t\t\t\t\t\t      const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/path.c:917,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/path.c:922,1
    - Dst: open
      Src: /src/git/path.c:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 912
    functionDepth: 6
    functionLinenumber: 912
    functionLinenumberEnd: 924
    functionName: safe_create_file_with_leading_directories
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - open
    - safe_create_leading_directories_const
    linkageType: ''
    returnType: int
    signature: "int safe_create_file_with_leading_directories(struct repository *repo,\n\t\t\t\t\t
      \     const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute_path
      Src: /src/git/path.c:930,1
    - Dst: is_absolute_path
      Src: /src/git/path.c:931,1
    - Dst: tolower
      Src: /src/git/path.c:932,1
    - Dst: tolower
      Src: /src/git/path.c:932,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - path1
    - path2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 934
    functionName: have_same_root
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - is_absolute_path
    - tolower
    linkageType: ''
    returnType: int
    signature: int have_same_root(const char *path1, const char *path2)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/path.c:945,1
    - Dst: strlen
      Src: /src/git/path.c:946,1
    - Dst: have_same_root
      Src: /src/git/path.c:956,1
    - Dst: has_dos_drive_prefix
      Src: /src/git/path.c:958,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:964,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:965,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:967,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:988,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:990,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1002,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1004,1
    - Dst: strbuf_reset
      Src: /src/git/path.c:1019,1
    - Dst: strbuf_grow
      Src: /src/git/path.c:1020,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1023,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:1024,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1025,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1031,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:1032,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:1034,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 3
    argNames:
    - in
    - prefix
    - sb
    argTypes:
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 1037
    functionName: relative_path
    functionSourceFile: /src/git/path.c
    functionUses: 5
    functionsReached:
    - have_same_root
    - is_dir_sep
    - strbuf_reset
    - has_dos_drive_prefix
    - strlen
    - strbuf_grow
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: "char *relative_path(const char *in, const char *prefix,\n\t\t\t  struct
      strbuf *sb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/path.c:1054,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1055,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1057,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1059,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1072,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1072,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1075,1
    - Dst: strbuf_reset
      Src: /src/git/path.c:1078,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:1080,1
    - Dst: strbuf_addstr
      Src: /src/git/path.c:1082,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 2
    argNames:
    - in
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1084
    functionName: remove_leading_path
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - is_dir_sep
    - strbuf_reset
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *remove_leading_path(const char *in, const char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/path.c:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1119
    functionName: skip_slashes
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    linkageType: ''
    returnType: char
    signature: char *skip_slashes(const char *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: offset_1st_component
      Src: /src/git/path.c:1129,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1132,1
    - Dst: skip_slashes
      Src: /src/git/path.c:1138,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1155,1
    - Dst: skip_slashes
      Src: /src/git/path.c:1158,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1165,1
    - Dst: skip_slashes
      Src: /src/git/path.c:1168,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1175,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1177,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1179,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 3
    argNames:
    - dst
    - src
    - prefix_len
    argTypes:
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1204
    functionName: normalize_path_copy_len
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - is_dir_sep
    - skip_slashes
    - offset_1st_component
    linkageType: ''
    returnType: int
    signature: int normalize_path_copy_len(char *dst, const char *src, int *prefix_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: normalize_path_copy_len
      Src: /src/git/path.c:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1206
    functionDepth: 2
    functionLinenumber: 1206
    functionLinenumberEnd: 1209
    functionName: normalize_path_copy
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - normalize_path_copy_len
    linkageType: ''
    returnType: int
    signature: int normalize_path_copy(char *dst, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/path.c:1215,1
    - Dst: normalize_path_copy
      Src: /src/git/path.c:1216,1
    - Dst: strbuf_release
      Src: /src/git/path.c:1217,1
    - Dst: strbuf_setlen
      Src: /src/git/path.c:1225,1
    - Dst: strlen
      Src: /src/git/path.c:1225,1
    - Dst: strbuf_swap
      Src: /src/git/path.c:1226,1
    - Dst: strbuf_release
      Src: /src/git/path.c:1227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1211
    functionDepth: 3
    functionLinenumber: 1211
    functionLinenumberEnd: 1229
    functionName: strbuf_normalize_path
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normalize_path_copy
    - strbuf_setlen
    - strlen
    - strbuf_grow
    - strbuf_swap
    linkageType: ''
    returnType: int
    signature: int strbuf_normalize_path(struct strbuf *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/path.c:1249,1
    - Dst: strlen
      Src: /src/git/path.c:1254,1
    - Dst: strncmp
      Src: /src/git/path.c:1263,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - path
    - prefixes
    argTypes:
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1272
    functionName: longest_ancestor_length
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: int longest_ancestor_length(const char *path, struct string_list *prefixes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/path.c:1277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - path
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1280
    functionName: chomp_trailing_dir_sep
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    linkageType: ''
    returnType: int
    signature: int chomp_trailing_dir_sep(const char *path, int len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/path.c:1289,1
    - Dst: strlen
      Src: /src/git/path.c:1289,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1295,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1296,1
    - Dst: chomp_trailing_dir_sep
      Src: /src/git/path.c:1298,1
    - Dst: chomp_trailing_dir_sep
      Src: /src/git/path.c:1299,1
    - Dst: is_dir_sep
      Src: /src/git/path.c:1305,1
    - Dst: chomp_trailing_dir_sep
      Src: /src/git/path.c:1307,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - path
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1308
    functionName: stripped_path_suffix_offset
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strlen
    - chomp_trailing_dir_sep
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t stripped_path_suffix_offset(const char *path, const char *suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stripped_path_suffix_offset
      Src: /src/git/path.c:1316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - components
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1317
    functionName: ends_with_path_components
    functionSourceFile: /src/git/path.c
    functionUses: 2
    functionsReached:
    - stripped_path_suffix_offset
    linkageType: ''
    returnType: int
    signature: int ends_with_path_components(const char *path, const char *components)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stripped_path_suffix_offset
      Src: /src/git/path.c:1326,1
    - Dst: xstrndup
      Src: /src/git/path.c:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1324
    functionDepth: 2
    functionLinenumber: 1324
    functionLinenumberEnd: 1329
    functionName: strip_path_suffix
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - stripped_path_suffix_offset
    - xstrndup
    linkageType: ''
    returnType: char
    signature: char *strip_path_suffix(const char *path, const char *suffix)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1376
    functionName: daemon_avoid_alias
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int daemon_avoid_alias(const char *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_xplatform_dir_sep
      Src: /src/git/path.c:1444,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1449
    functionName: is_ntfs_dotgit
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - is_xplatform_dir_sep
    linkageType: ''
    returnType: int
    signature: int is_ntfs_dotgit(const char *name)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/git/path.c:1459,1
    - Dst: strncasecmp
      Src: /src/git/path.c:1475,1
    - Dst: tolower
      Src: /src/git/path.c:1503,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 38
    argCount: 4
    argNames:
    - name
    - dotgit_name
    - len
    - dotgit_ntfs_shortname_prefix
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1507
    functionName: is_ntfs_dot_generic
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - tolower
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: "int is_ntfs_dot_generic(const char *name,\n\t\t\t       const char
      *dotgit_name,\n\t\t\t       size_t len,\n\t\t\t       const char *dotgit_ntfs_shortname_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_ntfs_dot_generic
      Src: /src/git/path.c:1516,1
    - Dst: strlen
      Src: /src/git/path.c:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - dotgit_name
    - dotgit_ntfs_shortname_prefix
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1513
    functionDepth: 2
    functionLinenumber: 1513
    functionLinenumberEnd: 1518
    functionName: is_ntfs_dot_str
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - strlen
    - is_ntfs_dot_generic
    linkageType: ''
    returnType: int
    signature: "int is_ntfs_dot_str(const char *name, const char *dotgit_name,\n\t\t\t\t
      \ const char *dotgit_ntfs_shortname_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_ntfs_dot_str
      Src: /src/git/path.c:1522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1520
    functionDepth: 3
    functionLinenumber: 1520
    functionLinenumberEnd: 1523
    functionName: is_ntfs_dotgitmodules
    functionSourceFile: /src/git/path.c
    functionUses: 1
    functionsReached:
    - is_ntfs_dot_str
    linkageType: ''
    returnType: int
    signature: int is_ntfs_dotgitmodules(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_ntfs_dot_str
      Src: /src/git/path.c:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1525
    functionDepth: 3
    functionLinenumber: 1525
    functionLinenumberEnd: 1528
    functionName: is_ntfs_dotgitignore
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - is_ntfs_dot_str
    linkageType: ''
    returnType: int
    signature: int is_ntfs_dotgitignore(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_ntfs_dot_str
      Src: /src/git/path.c:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1530
    functionDepth: 3
    functionLinenumber: 1530
    functionLinenumberEnd: 1533
    functionName: is_ntfs_dotgitattributes
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - is_ntfs_dot_str
    linkageType: ''
    returnType: int
    signature: int is_ntfs_dotgitattributes(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_ntfs_dot_str
      Src: /src/git/path.c:1537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1535
    functionDepth: 3
    functionLinenumber: 1535
    functionLinenumberEnd: 1538
    functionName: is_ntfs_dotmailmap
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - is_ntfs_dot_str
    linkageType: ''
    returnType: int
    signature: int is_ntfs_dotmailmap(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1543
    functionName: looks_like_command_line_option
    functionSourceFile: /src/git/path.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int looks_like_command_line_option(const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/path.c:1549,1
    - Dst: assert
      Src: /src/git/path.c:1550,1
    - Dst: getenv
      Src: /src/git/path.c:1551,1
    - Dst: mkpathdup
      Src: /src/git/path.c:1553,1
    - Dst: getenv
      Src: /src/git/path.c:1555,1
    - Dst: mkpathdup
      Src: /src/git/path.c:1557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - subdir
    - filename
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (subdir)
      pos:
        line_end: 1548
        line_start: 1548
        source_file: /src/git/path.c
    - condition: (filename)
      pos:
        line_end: 1549
        line_start: 1549
        source_file: /src/git/path.c
    constantsTouched: []
    func_position:
      end: 1560
      start: 1545
    functionDepth: 6
    functionLinenumber: 1545
    functionLinenumberEnd: 1560
    functionName: xdg_config_home_for
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - getenv
    - mkpathdup
    - assert
    linkageType: ''
    returnType: char
    signature: char *xdg_config_home_for(const char *subdir, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdg_config_home_for
      Src: /src/git/path.c:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1562
    functionDepth: 7
    functionLinenumber: 1562
    functionLinenumberEnd: 1565
    functionName: xdg_config_home
    functionSourceFile: /src/git/path.c
    functionUses: 2
    functionsReached:
    - xdg_config_home_for
    linkageType: ''
    returnType: char
    signature: char *xdg_config_home(const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/path.c:1571,1
    - Dst: getenv
      Src: /src/git/path.c:1572,1
    - Dst: mkpathdup
      Src: /src/git/path.c:1574,1
    - Dst: getenv
      Src: /src/git/path.c:1576,1
    - Dst: mkpathdup
      Src: /src/git/path.c:1578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts:
    - condition: (filename)
      pos:
        line_end: 1570
        line_start: 1570
        source_file: /src/git/path.c
    constantsTouched: []
    func_position:
      end: 1580
      start: 1567
    functionDepth: 6
    functionLinenumber: 1567
    functionLinenumberEnd: 1580
    functionName: xdg_cache_home
    functionSourceFile: /src/git/path.c
    functionUses: 0
    functionsReached:
    - getenv
    - mkpathdup
    - assert
    linkageType: ''
    returnType: char
    signature: char *xdg_cache_home(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/mailinfo.c:16,1
    - Dst: isspace
      Src: /src/git/mailinfo.c:18,1
    - Dst: strbuf_remove
      Src: /src/git/mailinfo.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 4
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: cleanup_space
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_remove
    linkageType: ''
    returnType: void
    signature: void cleanup_space(struct strbuf *sb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/git/mailinfo.c:27,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:31,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - out
    - name
    - email
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: get_sane_name
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - strbuf_reset
    - strbuf_addbuf
    linkageType: ''
    returnType: void
    signature: void get_sane_name(struct strbuf *out, struct strbuf *name, struct
      strbuf *email)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/mailinfo.c:46,1
    - Dst: strchr
      Src: /src/git/mailinfo.c:49,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:53,1
    - Dst: strbuf_add
      Src: /src/git/mailinfo.c:54,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:56,1
    - Dst: strbuf_add
      Src: /src/git/mailinfo.c:57,1
    - Dst: strbuf_trim
      Src: /src/git/mailinfo.c:58,1
    - Dst: get_sane_name
      Src: /src/git/mailinfo.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 60
    functionName: parse_bogus_from
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strchr
    - strbuf_trim
    - get_sane_name
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void parse_bogus_from(struct mailinfo *mi, const struct strbuf *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:67,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:79,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:83,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:90,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - outbuf
    - in
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 94
    functionName: unquote_comment
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *unquote_comment(struct strbuf *outbuf, const char *in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - outbuf
    - in
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: unquote_quoted_string
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *unquote_quoted_string(struct strbuf *outbuf, const char *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/mailinfo.c:126,1
    - Dst: unquote_quoted_string
      Src: /src/git/mailinfo.c:131,1
    - Dst: unquote_comment
      Src: /src/git/mailinfo.c:134,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:138,1
    - Dst: strbuf_swap
      Src: /src/git/mailinfo.c:141,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - line
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 144
    functionName: unquote_quoted_pair
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - unquote_comment
    - strbuf_release
    - strbuf_init
    - unquote_quoted_string
    - strbuf_addch
    - strbuf_swap
    linkageType: ''
    returnType: void
    signature: void unquote_quoted_pair(struct strbuf *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/mailinfo.c:152,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:153,1
    - Dst: unquote_quoted_pair
      Src: /src/git/mailinfo.c:155,1
    - Dst: strchr
      Src: /src/git/mailinfo.c:157,1
    - Dst: parse_bogus_from
      Src: /src/git/mailinfo.c:159,1
    - Dst: strchr
      Src: /src/git/mailinfo.c:166,1
    - Dst: isspace
      Src: /src/git/mailinfo.c:174,1
    - Dst: strcspn
      Src: /src/git/mailinfo.c:182,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:183,1
    - Dst: strbuf_add
      Src: /src/git/mailinfo.c:184,1
    - Dst: strbuf_remove
      Src: /src/git/mailinfo.c:185,1
    - Dst: cleanup_space
      Src: /src/git/mailinfo.c:199,1
    - Dst: strbuf_trim
      Src: /src/git/mailinfo.c:200,1
    - Dst: strbuf_remove
      Src: /src/git/mailinfo.c:202,1
    - Dst: strbuf_setlen
      Src: /src/git/mailinfo.c:203,1
    - Dst: get_sane_name
      Src: /src/git/mailinfo.c:206,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:208,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - mi
    - from
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 209
    functionName: handle_from
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - isspace
    - unquote_quoted_pair
    - strbuf_release
    - cleanup_space
    - strbuf_remove
    - strbuf_reset
    - strbuf_setlen
    - strchr
    - strbuf_trim
    - strbuf_addbuf
    - strcspn
    - get_sane_name
    - strbuf_init
    - strbuf_add
    - parse_bogus_from
    linkageType: ''
    returnType: void
    signature: void handle_from(struct mailinfo *mi, const struct strbuf *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/mailinfo.c:214,1
    - Dst: strbuf_init
      Src: /src/git/mailinfo.c:215,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:217,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - out
    - line
    argTypes:
    - struct strbuf**
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: handle_header
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - xmalloc
    - strbuf_addbuf
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: void handle_header(struct strbuf **out, const struct strbuf *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasestr
      Src: /src/git/mailinfo.c:230,1
    - Dst: strbuf_setlen
      Src: /src/git/mailinfo.c:233,1
    - Dst: strlen
      Src: /src/git/mailinfo.c:236,1
    - Dst: strcspn
      Src: /src/git/mailinfo.c:243,1
    - Dst: strbuf_add
      Src: /src/git/mailinfo.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - line
    - name
    - attr
    argTypes:
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 246
    functionName: slurp_attr
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_setlen
    - strlen
    - strcspn
    - strcasestr
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int slurp_attr(const char *line, const char *name, struct strbuf *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: slurp_attr
      Src: /src/git/mailinfo.c:251,1
    - Dst: strcasecmp
      Src: /src/git/mailinfo.c:251,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - line
    - name
    - value
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: has_attr_value
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - slurp_attr
    - strcasecmp
    - strbuf_release
    linkageType: ''
    returnType: int
    signature: int has_attr_value(const char *line, const char *name, const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/mailinfo.c:258,1
    - Dst: strbuf_init
      Src: /src/git/mailinfo.c:259,1
    - Dst: has_attr_value
      Src: /src/git/mailinfo.c:261,1
    - Dst: has_attr_value
      Src: /src/git/mailinfo.c:262,1
    - Dst: slurp_attr
      Src: /src/git/mailinfo.c:264,1
    - Dst: strbuf_insertstr
      Src: /src/git/mailinfo.c:265,1
    - Dst: error
      Src: /src/git/mailinfo.c:267,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:270,1
    - Dst: free
      Src: /src/git/mailinfo.c:271,1
    - Dst: slurp_attr
      Src: /src/git/mailinfo.c:277,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:280,1
    - Dst: free
      Src: /src/git/mailinfo.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 283
    functionName: handle_content_type
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_insertstr
    - strbuf_release
    - has_attr_value
    - xmalloc
    - free
    - slurp_attr
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: void handle_content_type(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasestr
      Src: /src/git/mailinfo.c:288,1
    - Dst: strcasestr
      Src: /src/git/mailinfo.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: handle_content_transfer_encoding
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strcasestr
    linkageType: ''
    returnType: void
    signature: "void handle_content_transfer_encoding(struct mailinfo *mi,\n\t\t\t\t\t
      \    const struct strbuf *line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/mailinfo.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: is_multipart_boundary
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_multipart_boundary(struct mailinfo *mi, const struct strbuf
      *line)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_remove
      Src: /src/git/mailinfo.c:319,1
    - Dst: strbuf_remove
      Src: /src/git/mailinfo.c:325,1
    - Dst: strchr
      Src: /src/git/mailinfo.c:328,1
    - Dst: memmem
      Src: /src/git/mailinfo.c:334,1
    - Dst: strbuf_remove
      Src: /src/git/mailinfo.c:335,1
    - Dst: isspace
      Src: /src/git/mailinfo.c:344,1
    - Dst: strbuf_trim
      Src: /src/git/mailinfo.c:351,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 2
    argNames:
    - mi
    - subject
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 352
    functionName: cleanup_subject
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_remove
    - strchr
    - strbuf_trim
    - memmem
    linkageType: ''
    returnType: void
    signature: void cleanup_subject(struct mailinfo *mi, struct strbuf *subject)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_iprefix
      Src: /src/git/mailinfo.c:362,1
    - Dst: isspace
      Src: /src/git/mailinfo.c:365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - line
    - hdr
    - outval
    argTypes:
    - struct strbuf*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 369
    functionName: skip_header
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - isspace
    - skip_iprefix
    linkageType: ''
    returnType: int
    signature: "int skip_header(const struct strbuf *line, const char *hdr,\n\t\t\t
      \     const char **outval)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/mailinfo.c:377,1
    - Dst: skip_prefix
      Src: /src/git/mailinfo.c:379,1
    - Dst: strspn
      Src: /src/git/mailinfo.c:381,1
    - Dst: memcmp
      Src: /src/git/mailinfo.c:384,1
    - Dst: strlen
      Src: /src/git/mailinfo.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 385
    functionName: is_format_patch_separator
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strspn
    - strlen
    - skip_prefix
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_format_patch_separator(const char *line, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/mailinfo.c:392,1
    - Dst: hex2chr
      Src: /src/git/mailinfo.c:399,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:401,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:409,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - out
    - q_seg
    - rfc2047
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 412
    functionName: decode_q_segment
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - hex2chr
    - strbuf_grow
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: "int decode_q_segment(struct strbuf *out, const struct strbuf *q_seg,\n\t\t\t
      \   int rfc2047)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/mailinfo.c:419,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:439,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:443,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:447,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 2
    argNames:
    - out
    - b_seg
    argTypes:
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 453
    functionName: decode_b_segment
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_grow
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: int decode_b_segment(struct strbuf *out, const struct strbuf *b_seg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: same_encoding
      Src: /src/git/mailinfo.c:464,1
    - Dst: reencode_string_len
      Src: /src/git/mailinfo.c:466,1
    - Dst: error
      Src: /src/git/mailinfo.c:470,1
    - Dst: strbuf_attach
      Src: /src/git/mailinfo.c:473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - mi
    - line
    - charset
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 475
    functionName: convert_to_utf8
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - reencode_string_len
    - same_encoding
    - strbuf_attach
    - error
    linkageType: ''
    returnType: int
    signature: "int convert_to_utf8(struct mailinfo *mi,\n\t\t\t   struct strbuf *line,
      const char *charset)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/mailinfo.c:485,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:487,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:488,1
    - Dst: isspace
      Src: /src/git/mailinfo.c:498,1
    - Dst: strbuf_add
      Src: /src/git/mailinfo.c:508,1
    - Dst: strchr
      Src: /src/git/mailinfo.c:517,1
    - Dst: strbuf_add
      Src: /src/git/mailinfo.c:522,1
    - Dst: strstr
      Src: /src/git/mailinfo.c:527,1
    - Dst: strbuf_add
      Src: /src/git/mailinfo.c:530,1
    - Dst: tolower
      Src: /src/git/mailinfo.c:531,1
    - Dst: decode_b_segment
      Src: /src/git/mailinfo.c:535,1
    - Dst: decode_q_segment
      Src: /src/git/mailinfo.c:539,1
    - Dst: convert_to_utf8
      Src: /src/git/mailinfo.c:543,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:546,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:547,1
    - Dst: strbuf_addstr
      Src: /src/git/mailinfo.c:550,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:551,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:552,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:555,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:556,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:557,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:558,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 64
    argCount: 2
    argNames:
    - mi
    - it
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 562
    functionName: decode_header
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - isspace
    - decode_q_segment
    - strbuf_release
    - strstr
    - strbuf_reset
    - convert_to_utf8
    - strchr
    - decode_b_segment
    - strbuf_addbuf
    - strbuf_addstr
    - tolower
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void decode_header(struct mailinfo *mi, struct strbuf *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_header
      Src: /src/git/mailinfo.c:576,1
    - Dst: strbuf_addstr
      Src: /src/git/mailinfo.c:578,1
    - Dst: decode_header
      Src: /src/git/mailinfo.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - line
    - hdr
    - mi
    - val
    argTypes:
    - struct strbuf*
    - char*
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 581
    functionName: parse_header
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - decode_header
    - skip_header
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int parse_header(const struct strbuf *line,\n\t\t\tconst char *hdr,\n\t\t\tstruct
      mailinfo *mi,\n\t\t\tstruct strbuf *val)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/mailinfo.c:591,1
    - Dst: parse_header
      Src: /src/git/mailinfo.c:593,1
    - Dst: handle_header
      Src: /src/git/mailinfo.c:594,1
    - Dst: parse_header
      Src: /src/git/mailinfo.c:601,1
    - Dst: handle_content_type
      Src: /src/git/mailinfo.c:602,1
    - Dst: parse_header
      Src: /src/git/mailinfo.c:606,1
    - Dst: handle_content_transfer_encoding
      Src: /src/git/mailinfo.c:607,1
    - Dst: parse_header
      Src: /src/git/mailinfo.c:611,1
    - Dst: strbuf_detach
      Src: /src/git/mailinfo.c:613,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:619,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - mi
    - line
    - hdr_data
    - overwrite
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    - struct strbuf*[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 621
    functionName: check_header
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - parse_header
    - ARRAY_SIZE
    - handle_header
    - strbuf_release
    - handle_content_type
    - handle_content_transfer_encoding
    - strbuf_detach
    linkageType: ''
    returnType: int
    signature: "int check_header(struct mailinfo *mi,\n\t\t\tconst struct strbuf *line,\n\t\t\tstruct
      strbuf *hdr_data[], int overwrite)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/mailinfo.c:633,1
    - Dst: skip_header
      Src: /src/git/mailinfo.c:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 637
    functionName: is_inbody_header
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - skip_header
    linkageType: ''
    returnType: int
    signature: "int is_inbody_header(const struct mailinfo *mi,\n\t\t\t    const struct
      strbuf *line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: decode_q_segment
      Src: /src/git/mailinfo.c:645,1
    - Dst: decode_b_segment
      Src: /src/git/mailinfo.c:648,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:654,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:655,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 639
    functionDepth: 3
    functionLinenumber: 639
    functionLinenumberEnd: 657
    functionName: decode_transfer_encoding
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - decode_q_segment
    - strbuf_release
    - strbuf_reset
    - decode_b_segment
    - strbuf_addbuf
    linkageType: ''
    returnType: void
    signature: void decode_transfer_encoding(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/mailinfo.c:664,1
    - Dst: starts_with
      Src: /src/git/mailinfo.c:668,1
    - Dst: starts_with
      Src: /src/git/mailinfo.c:678,1
    - Dst: isspace
      Src: /src/git/mailinfo.c:680,1
    - Dst: isspace
      Src: /src/git/mailinfo.c:687,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - line
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 693
    functionName: patchbreak
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - isspace
    - starts_with
    linkageType: ''
    returnType: int
    signature: int patchbreak(const struct strbuf *line)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/mailinfo.c:703,1
    - Dst: starts_with
      Src: /src/git/mailinfo.c:718,1
    - Dst: starts_with
      Src: /src/git/mailinfo.c:718,1
    - Dst: starts_with
      Src: /src/git/mailinfo.c:719,1
    - Dst: starts_with
      Src: /src/git/mailinfo.c:719,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 745
    functionName: is_scissors_line
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - isspace
    - starts_with
    linkageType: ''
    returnType: int
    signature: int is_scissors_line(const char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_header
      Src: /src/git/mailinfo.c:751,1
    - Dst: BUG
      Src: /src/git/mailinfo.c:752,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mi
    argTypes:
    - struct mailinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 754
    functionName: flush_inbody_header_accum
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - BUG
    - check_header
    linkageType: ''
    returnType: void
    signature: void flush_inbody_header_accum(struct mailinfo *mi)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_scissors_line
      Src: /src/git/mailinfo.c:760,1
    - Dst: flush_inbody_header_accum
      Src: /src/git/mailinfo.c:765,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/mailinfo.c:768,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:769,1
    - Dst: flush_inbody_header_accum
      Src: /src/git/mailinfo.c:773,1
    - Dst: starts_with
      Src: /src/git/mailinfo.c:775,1
    - Dst: isspace
      Src: /src/git/mailinfo.c:775,1
    - Dst: is_format_patch_separator
      Src: /src/git/mailinfo.c:776,1
    - Dst: starts_with
      Src: /src/git/mailinfo.c:777,1
    - Dst: isspace
      Src: /src/git/mailinfo.c:777,1
    - Dst: ARRAY_SIZE
      Src: /src/git/mailinfo.c:779,1
    - Dst: strcmp
      Src: /src/git/mailinfo.c:780,1
    - Dst: handle_header
      Src: /src/git/mailinfo.c:781,1
    - Dst: is_inbody_header
      Src: /src/git/mailinfo.c:786,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:787,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 791
    functionName: check_inbody_header
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - isspace
    - ARRAY_SIZE
    - handle_header
    - is_inbody_header
    - strbuf_strip_suffix
    - starts_with
    - flush_inbody_header_accum
    - strbuf_addbuf
    - is_scissors_line
    - strcmp
    - is_format_patch_separator
    linkageType: ''
    returnType: int
    signature: int check_inbody_header(struct mailinfo *mi, const struct strbuf *line)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/mailinfo.c:795,1
    - Dst: flush_inbody_header_accum
      Src: /src/git/mailinfo.c:800,1
    - Dst: check_inbody_header
      Src: /src/git/mailinfo.c:808,1
    - Dst: convert_to_utf8
      Src: /src/git/mailinfo.c:818,1
    - Dst: is_scissors_line
      Src: /src/git/mailinfo.c:821,1
    - Dst: strbuf_setlen
      Src: /src/git/mailinfo.c:824,1
    - Dst: ARRAY_SIZE
      Src: /src/git/mailinfo.c:831,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:833,1
    - Dst: FREE_AND_NULL
      Src: /src/git/mailinfo.c:834,1
    - Dst: patchbreak
      Src: /src/git/mailinfo.c:839,1
    - Dst: strbuf_addf
      Src: /src/git/mailinfo.c:841,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:846,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts:
    - condition: (!mi->filter_stage)
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/git/mailinfo.c
    constantsTouched: []
    func_position:
      end: 848
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 848
    functionName: handle_commit_msg
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strbuf_release
    - assert
    - patchbreak
    - convert_to_utf8
    - strbuf_setlen
    - strbuf_addf
    - flush_inbody_header_accum
    - strbuf_addbuf
    - is_scissors_line
    - check_inbody_header
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: int handle_commit_msg(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/mailinfo.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: handle_patch
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: void
    signature: void handle_patch(struct mailinfo *mi, const struct strbuf *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: handle_commit_msg
      Src: /src/git/mailinfo.c:860,1
    - Dst: handle_patch
      Src: /src/git/mailinfo.c:865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 868
    functionName: handle_filter
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - handle_commit_msg
    - handle_patch
    linkageType: ''
    returnType: void
    signature: void handle_filter(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/mailinfo.c:884,1
    - Dst: starts_with
      Src: /src/git/mailinfo.c:884,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 1
    argNames:
    - line
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 896
    functionName: is_rfc2822_header
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: int
    signature: int is_rfc2822_header(const struct strbuf *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline_lf
      Src: /src/git/mailinfo.c:903,1
    - Dst: strbuf_rtrim
      Src: /src/git/mailinfo.c:910,1
    - Dst: is_rfc2822_header
      Src: /src/git/mailinfo.c:911,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:913,1
    - Dst: fgetc
      Src: /src/git/mailinfo.c:924,1
    - Dst: ungetc
      Src: /src/git/mailinfo.c:927,1
    - Dst: strbuf_getline_lf
      Src: /src/git/mailinfo.c:930,1
    - Dst: strbuf_rtrim
      Src: /src/git/mailinfo.c:933,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:934,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:936,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - line
    - in
    argTypes:
    - struct strbuf*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 898
    functionDepth: 5
    functionLinenumber: 898
    functionLinenumberEnd: 939
    functionName: read_one_header_line
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_getline_lf
    - strbuf_addch
    - strbuf_addbuf
    - is_rfc2822_header
    - ungetc
    - fgetc
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: int read_one_header_line(struct strbuf *line, FILE *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline_lf
      Src: /src/git/mailinfo.c:943,1
    - Dst: is_multipart_boundary
      Src: /src/git/mailinfo.c:944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 941
    functionDepth: 5
    functionLinenumber: 941
    functionLinenumberEnd: 948
    functionName: find_boundary
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_getline_lf
    - is_multipart_boundary
    linkageType: ''
    returnType: int
    signature: int find_boundary(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:954,1
    - Dst: memcmp
      Src: /src/git/mailinfo.c:957,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:960,1
    - Dst: FREE_AND_NULL
      Src: /src/git/mailinfo.c:961,1
    - Dst: error
      Src: /src/git/mailinfo.c:967,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:970,1
    - Dst: handle_filter
      Src: /src/git/mailinfo.c:973,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:974,1
    - Dst: find_boundary
      Src: /src/git/mailinfo.c:979,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:986,1
    - Dst: read_one_header_line
      Src: /src/git/mailinfo.c:989,1
    - Dst: check_header
      Src: /src/git/mailinfo.c:990,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:992,1
    - Dst: strbuf_getline_lf
      Src: /src/git/mailinfo.c:994,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:996,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 950
    functionDepth: 5
    functionLinenumber: 950
    functionLinenumberEnd: 998
    functionName: handle_boundary
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - strbuf_getline_lf
    - check_header
    - strbuf_reset
    - find_boundary
    - strbuf_addch
    - handle_filter
    - read_one_header_line
    - FREE_AND_NULL
    - memcmp
    linkageType: ''
    returnType: int
    signature: int handle_boundary(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/mailinfo.c:1012,1
    - Dst: strbuf_addch
      Src: /src/git/mailinfo.c:1013,1
    - Dst: handle_filter
      Src: /src/git/mailinfo.c:1017,1
    - Dst: skip_prefix
      Src: /src/git/mailinfo.c:1028,1
    - Dst: handle_filter
      Src: /src/git/mailinfo.c:1030,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:1031,1
    - Dst: handle_filter
      Src: /src/git/mailinfo.c:1033,1
    - Dst: strbuf_remove
      Src: /src/git/mailinfo.c:1039,1
    - Dst: strbuf_add
      Src: /src/git/mailinfo.c:1045,1
    - Dst: strbuf_insert
      Src: /src/git/mailinfo.c:1050,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:1051,1
    - Dst: handle_filter
      Src: /src/git/mailinfo.c:1053,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - mi
    - line
    - prev
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1054
    functionName: handle_filter_flowed
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_remove
    - strbuf_reset
    - strbuf_setlen
    - strbuf_insert
    - strbuf_addch
    - handle_filter
    - skip_prefix
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void handle_filter_flowed(struct mailinfo *mi, struct strbuf *line,\n\t\t\t\t
      struct strbuf *prev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/mailinfo.c:1060,1
    - Dst: _
      Src: /src/git/mailinfo.c:1060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - mi
    argTypes:
    - struct mailinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1061
    functionName: summarize_quoted_cr
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - warning
    - _
    linkageType: ''
    returnType: void
    signature: void summarize_quoted_cr(struct mailinfo *mi)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: find_boundary
      Src: /src/git/mailinfo.c:1069,1
    - Dst: is_multipart_boundary
      Src: /src/git/mailinfo.c:1075,1
    - Dst: handle_filter
      Src: /src/git/mailinfo.c:1078,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:1079,1
    - Dst: summarize_quoted_cr
      Src: /src/git/mailinfo.c:1081,1
    - Dst: handle_boundary
      Src: /src/git/mailinfo.c:1083,1
    - Dst: decode_transfer_encoding
      Src: /src/git/mailinfo.c:1088,1
    - Dst: strbuf_insert
      Src: /src/git/mailinfo.c:1097,1
    - Dst: strbuf_reset
      Src: /src/git/mailinfo.c:1098,1
    - Dst: strbuf_split
      Src: /src/git/mailinfo.c:1105,1
    - Dst: strbuf_addbuf
      Src: /src/git/mailinfo.c:1110,1
    - Dst: handle_filter_flowed
      Src: /src/git/mailinfo.c:1113,1
    - Dst: strbuf_list_free
      Src: /src/git/mailinfo.c:1119,1
    - Dst: handle_filter_flowed
      Src: /src/git/mailinfo.c:1123,1
    - Dst: strbuf_getwholeline
      Src: /src/git/mailinfo.c:1128,1
    - Dst: handle_filter
      Src: /src/git/mailinfo.c:1131,1
    - Dst: summarize_quoted_cr
      Src: /src/git/mailinfo.c:1132,1
    - Dst: flush_inbody_header_accum
      Src: /src/git/mailinfo.c:1134,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:1137,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1063
    functionDepth: 4
    functionLinenumber: 1063
    functionLinenumberEnd: 1138
    functionName: handle_body
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - strbuf_release
    - strbuf_reset
    - find_boundary
    - handle_boundary
    - strbuf_split
    - strbuf_insert
    - handle_filter
    - strbuf_addbuf
    - summarize_quoted_cr
    - strbuf_list_free
    - flush_inbody_header_accum
    - is_multipart_boundary
    - handle_filter_flowed
    - decode_transfer_encoding
    linkageType: ''
    returnType: void
    signature: void handle_body(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/mailinfo.c:1144,1
    - Dst: strlen
      Src: /src/git/mailinfo.c:1147,1
    - Dst: fprintf
      Src: /src/git/mailinfo.c:1150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - fout
    - hdr
    - data
    argTypes:
    - FILE*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1155
    functionName: output_header_lines
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strlen
    - fprintf
    - strchr
    linkageType: ''
    returnType: void
    signature: void output_header_lines(FILE *fout, const char *hdr, const struct
      strbuf *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/mailinfo.c:1162,1
    - Dst: memchr
      Src: /src/git/mailinfo.c:1171,1
    - Dst: error
      Src: /src/git/mailinfo.c:1172,1
    - Dst: strcmp
      Src: /src/git/mailinfo.c:1176,1
    - Dst: cleanup_subject
      Src: /src/git/mailinfo.c:1178,1
    - Dst: cleanup_space
      Src: /src/git/mailinfo.c:1179,1
    - Dst: output_header_lines
      Src: /src/git/mailinfo.c:1181,1
    - Dst: strcmp
      Src: /src/git/mailinfo.c:1182,1
    - Dst: cleanup_space
      Src: /src/git/mailinfo.c:1183,1
    - Dst: handle_from
      Src: /src/git/mailinfo.c:1184,1
    - Dst: fprintf
      Src: /src/git/mailinfo.c:1185,1
    - Dst: fprintf
      Src: /src/git/mailinfo.c:1186,1
    - Dst: cleanup_space
      Src: /src/git/mailinfo.c:1188,1
    - Dst: fprintf
      Src: /src/git/mailinfo.c:1189,1
    - Dst: fprintf
      Src: /src/git/mailinfo.c:1192,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - mi
    argTypes:
    - struct mailinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1193
    functionName: handle_info
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - error
    - ARRAY_SIZE
    - memchr
    - cleanup_space
    - output_header_lines
    - cleanup_subject
    - handle_from
    - strcmp
    - fprintf
    linkageType: ''
    returnType: void
    signature: void handle_info(struct mailinfo *mi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/mailinfo.c:1201,1
    - Dst: perror
      Src: /src/git/mailinfo.c:1203,1
    - Dst: fopen
      Src: /src/git/mailinfo.c:1206,1
    - Dst: perror
      Src: /src/git/mailinfo.c:1208,1
    - Dst: fclose
      Src: /src/git/mailinfo.c:1209,1
    - Dst: xcalloc
      Src: /src/git/mailinfo.c:1213,1
    - Dst: ARRAY_SIZE
      Src: /src/git/mailinfo.c:1213,1
    - Dst: xcalloc
      Src: /src/git/mailinfo.c:1214,1
    - Dst: ARRAY_SIZE
      Src: /src/git/mailinfo.c:1214,1
    - Dst: fgetc
      Src: /src/git/mailinfo.c:1217,1
    - Dst: fclose
      Src: /src/git/mailinfo.c:1219,1
    - Dst: error
      Src: /src/git/mailinfo.c:1220,1
    - Dst: isspace
      Src: /src/git/mailinfo.c:1222,1
    - Dst: ungetc
      Src: /src/git/mailinfo.c:1223,1
    - Dst: read_one_header_line
      Src: /src/git/mailinfo.c:1226,1
    - Dst: check_header
      Src: /src/git/mailinfo.c:1227,1
    - Dst: handle_body
      Src: /src/git/mailinfo.c:1229,1
    - Dst: fwrite
      Src: /src/git/mailinfo.c:1230,1
    - Dst: fclose
      Src: /src/git/mailinfo.c:1231,1
    - Dst: fclose
      Src: /src/git/mailinfo.c:1232,1
    - Dst: handle_info
      Src: /src/git/mailinfo.c:1234,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:1235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - mi
    - msg
    - patch
    argTypes:
    - struct mailinfo*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1195
    functionDepth: 3
    functionLinenumber: 1195
    functionLinenumberEnd: 1237
    functionName: mailinfo
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - fclose
    - ARRAY_SIZE
    - error
    - isspace
    - perror
    - handle_body
    - handle_info
    - strbuf_release
    - fwrite
    - fopen
    - read_one_header_line
    - xcalloc
    - ungetc
    - fgetc
    - check_header
    linkageType: ''
    returnType: int
    signature: int mailinfo(struct mailinfo *mi, const char *msg, const char *patch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/mailinfo.c:1241,1
    - Dst: strcmp
      Src: /src/git/mailinfo.c:1243,1
    - Dst: strcmp
      Src: /src/git/mailinfo.c:1245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - actionstr
    - action
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1250
    functionName: mailinfo_parse_quoted_cr_action
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int mailinfo_parse_quoted_cr_action(const char *actionstr, int *action)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/mailinfo.c:1257,1
    - Dst: git_default_config
      Src: /src/git/mailinfo.c:1258,1
    - Dst: strcmp
      Src: /src/git/mailinfo.c:1259,1
    - Dst: git_config_bool
      Src: /src/git/mailinfo.c:1260,1
    - Dst: strcmp
      Src: /src/git/mailinfo.c:1263,1
    - Dst: config_error_nonbool
      Src: /src/git/mailinfo.c:1265,1
    - Dst: mailinfo_parse_quoted_cr_action
      Src: /src/git/mailinfo.c:1266,1
    - Dst: error
      Src: /src/git/mailinfo.c:1267,1
    - Dst: _
      Src: /src/git/mailinfo.c:1267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - mi_
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1252
    functionDepth: 4
    functionLinenumber: 1252
    functionLinenumberEnd: 1272
    functionName: git_mailinfo_config
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - starts_with
    - mailinfo_parse_quoted_cr_action
    - git_default_config
    - strcmp
    - git_config_bool
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_mailinfo_config(const char *var, const char *value,\n\t\t\t
      \      const struct config_context *ctx, void *mi_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/mailinfo.c:1276,1
    - Dst: strbuf_init
      Src: /src/git/mailinfo.c:1277,1
    - Dst: strbuf_init
      Src: /src/git/mailinfo.c:1278,1
    - Dst: strbuf_init
      Src: /src/git/mailinfo.c:1279,1
    - Dst: strbuf_init
      Src: /src/git/mailinfo.c:1280,1
    - Dst: strbuf_init
      Src: /src/git/mailinfo.c:1281,1
    - Dst: repo_config
      Src: /src/git/mailinfo.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - r
    - mi
    argTypes:
    - struct repository*
    - struct mailinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1287
    functionName: setup_mailinfo
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - memset
    - repo_config
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: void setup_mailinfo(struct repository *r, struct mailinfo *mi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:1291,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:1292,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:1293,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:1294,1
    - Dst: free
      Src: /src/git/mailinfo.c:1295,1
    - Dst: ARRAY_SIZE
      Src: /src/git/mailinfo.c:1297,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:1300,1
    - Dst: free
      Src: /src/git/mailinfo.c:1301,1
    - Dst: free
      Src: /src/git/mailinfo.c:1303,1
    - Dst: ARRAY_SIZE
      Src: /src/git/mailinfo.c:1305,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:1308,1
    - Dst: free
      Src: /src/git/mailinfo.c:1309,1
    - Dst: free
      Src: /src/git/mailinfo.c:1311,1
    - Dst: free
      Src: /src/git/mailinfo.c:1314,1
    - Dst: strbuf_release
      Src: /src/git/mailinfo.c:1318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - mi
    argTypes:
    - struct mailinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1289
    functionDepth: 3
    functionLinenumber: 1289
    functionLinenumberEnd: 1319
    functionName: clear_mailinfo
    functionSourceFile: /src/git/mailinfo.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void clear_mailinfo(struct mailinfo *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: interactive_config_init
      Src: /src/git/add-interactive.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - r
    - opts
    argTypes:
    - struct add_i_state*
    - struct repository*
    - struct interactive_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: init_add_i_state
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - interactive_config_init
    linkageType: ''
    returnType: void
    signature: "void init_add_i_state(struct add_i_state *s, struct repository *r,\n\t\t
      \     struct interactive_options *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: interactive_config_clear
      Src: /src/git/add-interactive.c:31,1
    - Dst: memset
      Src: /src/git/add-interactive.c:32,1
    - Dst: interactive_config_clear
      Src: /src/git/add-interactive.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct add_i_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: clear_add_i_state
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - memset
    - interactive_config_clear
    linkageType: ''
    returnType: void
    signature: void clear_add_i_state(struct add_i_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/add-interactive.c:67,1
    - Dst: string_list_clear
      Src: /src/git/add-interactive.c:68,1
    - Dst: FREE_AND_NULL
      Src: /src/git/add-interactive.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct prefix_item_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: prefix_item_list_clear
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void prefix_item_list_clear(struct prefix_item_list *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/add-interactive.c:77,1
    - Dst: isascii
      Src: /src/git/add-interactive.c:89,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - p
    - other_string
    - max_length
    argTypes:
    - struct string_list_item*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: extend_prefix_length
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - isascii
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void extend_prefix_length(struct string_list_item *p,\n\t\t\t\t const
      char *other_string, size_t max_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/add-interactive.c:106,1
    - Dst: xmalloc
      Src: /src/git/add-interactive.c:108,1
    - Dst: st_mult
      Src: /src/git/add-interactive.c:108,1
    - Dst: string_list_sort
      Src: /src/git/add-interactive.c:117,1
    - Dst: isascii
      Src: /src/git/add-interactive.c:128,1
    - Dst: extend_prefix_length
      Src: /src/git/add-interactive.c:135,1
    - Dst: extend_prefix_length
      Src: /src/git/add-interactive.c:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct prefix_item_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 141
    functionName: find_unique_prefixes
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - extend_prefix_length
    - string_list_sort
    - xmalloc
    - isascii
    - st_mult
    linkageType: ''
    returnType: void
    signature: void find_unique_prefixes(struct prefix_item_list *list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string_list_find_insert_index
      Src: /src/git/add-interactive.c:146,1
    - Dst: BUG
      Src: /src/git/add-interactive.c:150,1
    - Dst: starts_with
      Src: /src/git/add-interactive.c:157,1
    - Dst: starts_with
      Src: /src/git/add-interactive.c:160,1
    - Dst: starts_with
      Src: /src/git/add-interactive.c:163,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - string
    - list
    argTypes:
    - char*
    - struct prefix_item_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: find_unique
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - string_list_find_insert_index
    - BUG
    - starts_with
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t find_unique(const char *string, struct prefix_item_list *list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:187,1
    - Dst: struct list_options*::print_item
      Src: /src/git/add-interactive.c:191,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:195,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:199,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - s
    - list
    - selected
    - opts
    argTypes:
    - struct add_i_state*
    - struct string_list*
    - int*
    - struct list_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 206
    functionName: list
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 62
    functionsReached:
    - color_fprintf_ln
    - putchar
    - struct list_options*::print_item
    linkageType: ''
    returnType: void
    signature: "void list(struct add_i_state *s, struct string_list *list, int *selected,\n\t\t
      struct list_options *opts)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/add-interactive.c:239,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/add-interactive.c:240,1
    - Dst: BUG
      Src: /src/git/add-interactive.c:244,1
    - Dst: find_unique_prefixes
      Src: /src/git/add-interactive.c:246,1
    - Dst: strbuf_reset
      Src: /src/git/add-interactive.c:251,1
    - Dst: list
      Src: /src/git/add-interactive.c:253,1
    - Dst: color_fprintf
      Src: /src/git/add-interactive.c:255,1
    - Dst: fputs
      Src: /src/git/add-interactive.c:256,1
    - Dst: fflush
      Src: /src/git/add-interactive.c:257,1
    - Dst: git_read_line_interactively
      Src: /src/git/add-interactive.c:259,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:260,1
    - Dst: strcmp
      Src: /src/git/add-interactive.c:269,1
    - Dst: struct list_and_choose_options*::print_help
      Src: /src/git/add-interactive.c:270,1
    - Dst: strcspn
      Src: /src/git/add-interactive.c:276,1
    - Dst: isdigit
      Src: /src/git/add-interactive.c:298,1
    - Dst: strtoul
      Src: /src/git/add-interactive.c:309,1
    - Dst: isdigit
      Src: /src/git/add-interactive.c:313,1
    - Dst: strtoul
      Src: /src/git/add-interactive.c:314,1
    - Dst: find_unique
      Src: /src/git/add-interactive.c:326,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:333,1
    - Dst: _
      Src: /src/git/add-interactive.c:334,1
    - Dst: strcmp
      Src: /src/git/add-interactive.c:354,1
    - Dst: strbuf_release
      Src: /src/git/add-interactive.c:358,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 84
    argCount: 3
    argNames:
    - s
    - items
    - opts
    argTypes:
    - struct add_i_state*
    - struct prefix_item_list*
    - struct list_and_choose_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 360
    functionName: list_and_choose
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - putchar
    - fputs
    - strcmp
    - CALLOC_ARRAY
    - free
    - color_fprintf_ln
    - strbuf_release
    - find_unique_prefixes
    - git_read_line_interactively
    - struct list_and_choose_options*::print_help
    - strtoul
    - color_fprintf
    - fflush
    - _
    - find_unique
    - strbuf_reset
    - isdigit
    - strcspn
    - list
    - BUG
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t list_and_choose(struct add_i_state *s,\n\t\t\t       struct
      prefix_item_list *items,\n\t\t\t       struct list_and_choose_options *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/add-interactive.c:374,1
    - Dst: string_list_append
      Src: /src/git/add-interactive.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - files
    - name
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: add_file_item
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - string_list_append
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void add_file_item(struct string_list *files, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/add-interactive.c:391,1
    - Dst: container_of
      Src: /src/git/add-interactive.c:393,1
    - Dst: strcmp
      Src: /src/git/add-interactive.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cmp_data
    - he1
    - he2
    - name
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: pathname_entry_cmp
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int pathname_entry_cmp(const void *cmp_data UNUSED,\n\t\t\t      const
      struct hashmap_entry *he1,\n\t\t\t      const struct hashmap_entry *he2,\n\t\t\t
      \     const void *name)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: compute_diffstat
      Src: /src/git/add-interactive.c:420,1
    - Dst: strhash
      Src: /src/git/add-interactive.c:424,1
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/add-interactive.c:429,1
    - Dst: add_file_item
      Src: /src/git/add-interactive.c:435,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/add-interactive.c:437,1
    - Dst: hashmap_entry_init
      Src: /src/git/add-interactive.c:438,1
    - Dst: hashmap_add
      Src: /src/git/add-interactive.c:441,1
    - Dst: free_diffstat_info
      Src: /src/git/add-interactive.c:463,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - q
    - options
    - data
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 464
    functionName: collect_changes_cb
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_add
    - free_diffstat_info
    - compute_diffstat
    - hashmap_get_entry_from_hash
    - hashmap_entry_init
    - CALLOC_ARRAY
    - add_file_item
    linkageType: ''
    returnType: void
    signature: "void collect_changes_cb(struct diff_queue_struct *q,\n\t\t\t       struct
      diff_options *options,\n\t\t\t       void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/add-interactive.c:480,1
    - Dst: get_main_ref_store
      Src: /src/git/add-interactive.c:480,1
    - Dst: discard_index
      Src: /src/git/add-interactive.c:486,1
    - Dst: repo_read_index_preload
      Src: /src/git/add-interactive.c:487,1
    - Dst: error
      Src: /src/git/add-interactive.c:488,1
    - Dst: _
      Src: /src/git/add-interactive.c:488,1
    - Dst: prefix_item_list_clear
      Src: /src/git/add-interactive.c:490,1
    - Dst: hashmap_init
      Src: /src/git/add-interactive.c:492,1
    - Dst: empty_tree_oid_hex
      Src: /src/git/add-interactive.c:505,1
    - Dst: oid_to_hex
      Src: /src/git/add-interactive.c:505,1
    - Dst: repo_init_revisions
      Src: /src/git/add-interactive.c:507,1
    - Dst: setup_revisions
      Src: /src/git/add-interactive.c:508,1
    - Dst: copy_pathspec
      Src: /src/git/add-interactive.c:515,1
    - Dst: run_diff_index
      Src: /src/git/add-interactive.c:518,1
    - Dst: run_diff_files
      Src: /src/git/add-interactive.c:521,1
    - Dst: release_revisions
      Src: /src/git/add-interactive.c:524,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/add-interactive.c:526,1
    - Dst: string_list_sort
      Src: /src/git/add-interactive.c:533,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 6
    argNames:
    - r
    - filter
    - files
    - ps
    - unmerged_count
    - binary_count
    argTypes:
    - struct repository*
    - enum modified_files_filter
    - struct prefix_item_list*
    - struct pathspec*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 472
    functionDepth: 12
    functionLinenumber: 472
    functionLinenumberEnd: 536
    functionName: get_modified_files
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - error
    - repo_read_index_preload
    - empty_tree_oid_hex
    - oid_to_hex
    - prefix_item_list_clear
    - release_revisions
    - copy_pathspec
    - refs_resolve_ref_unsafe
    - hashmap_init
    - string_list_sort
    - repo_init_revisions
    - hashmap_clear_and_free
    - run_diff_index
    - _
    - setup_revisions
    - run_diff_files
    - get_main_ref_store
    - discard_index
    linkageType: ''
    returnType: int
    signature: "int get_modified_files(struct repository *r,\n\t\t\t      enum modified_files_filter
      filter,\n\t\t\t      struct prefix_item_list *files,\n\t\t\t      const struct
      pathspec *ps,\n\t\t\t      size_t *unmerged_count,\n\t\t\t      size_t *binary_count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/add-interactive.c:542,1
    - Dst: _
      Src: /src/git/add-interactive.c:542,1
    - Dst: strbuf_addf
      Src: /src/git/add-interactive.c:544,1
    - Dst: strbuf_addstr
      Src: /src/git/add-interactive.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - ad
    - no_changes
    argTypes:
    - struct strbuf*
    - struct adddel*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 548
    functionName: render_adddel
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: void
    signature: "void render_adddel(struct strbuf *buf,\n\t\t\t\tstruct adddel *ad,
      const char *no_changes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/git/add-interactive.c:559,1
    - Dst: isdigit
      Src: /src/git/add-interactive.c:561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 2
    argNames:
    - prefix
    - prefix_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 565
    functionName: is_valid_prefix
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strcspn
    linkageType: ''
    returnType: int
    signature: int is_valid_prefix(const char *prefix, size_t prefix_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/add-interactive.c:580,1
    - Dst: strbuf_reset
      Src: /src/git/add-interactive.c:581,1
    - Dst: strbuf_reset
      Src: /src/git/add-interactive.c:582,1
    - Dst: is_valid_prefix
      Src: /src/git/add-interactive.c:586,1
    - Dst: strbuf_reset
      Src: /src/git/add-interactive.c:587,1
    - Dst: strbuf_addf
      Src: /src/git/add-interactive.c:588,1
    - Dst: printf
      Src: /src/git/add-interactive.c:595,1
    - Dst: render_adddel
      Src: /src/git/add-interactive.c:600,1
    - Dst: _
      Src: /src/git/add-interactive.c:600,1
    - Dst: render_adddel
      Src: /src/git/add-interactive.c:601,1
    - Dst: _
      Src: /src/git/add-interactive.c:601,1
    - Dst: strbuf_addf
      Src: /src/git/add-interactive.c:603,1
    - Dst: printf
      Src: /src/git/add-interactive.c:606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - i
    - selected
    - item
    - print_file_item_data
    argTypes:
    - int
    - int
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 607
    functionName: print_file_item
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - is_valid_prefix
    - strbuf_reset
    - strbuf_addf
    - _
    - render_adddel
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_file_item(int i, int selected, struct string_list_item
      *item,\n\t\t\t    void *print_file_item_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_modified_files
      Src: /src/git/add-interactive.c:613,1
    - Dst: list
      Src: /src/git/add-interactive.c:616,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - s
    - ps
    - files
    - opts
    argTypes:
    - struct add_i_state*
    - struct pathspec*
    - struct prefix_item_list*
    - struct list_and_choose_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 609
    functionDepth: 13
    functionLinenumber: 609
    functionLinenumberEnd: 620
    functionName: run_status
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - list
    - putchar
    - get_modified_files
    linkageType: ''
    returnType: int
    signature: "int run_status(struct add_i_state *s, const struct pathspec *ps,\n\t\t
      \     struct prefix_item_list *files,\n\t\t      struct list_and_choose_options
      *opts)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_modified_files
      Src: /src/git/add-interactive.c:630,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:634,1
    - Dst: N_
      Src: /src/git/add-interactive.c:638,1
    - Dst: list_and_choose
      Src: /src/git/add-interactive.c:639,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:641,1
    - Dst: repo_hold_locked_index
      Src: /src/git/add-interactive.c:645,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:647,1
    - Dst: lstat
      Src: /src/git/add-interactive.c:657,1
    - Dst: is_missing_file_error
      Src: /src/git/add-interactive.c:657,1
    - Dst: remove_file_from_index
      Src: /src/git/add-interactive.c:658,1
    - Dst: error
      Src: /src/git/add-interactive.c:659,1
    - Dst: _
      Src: /src/git/add-interactive.c:659,1
    - Dst: add_file_to_index
      Src: /src/git/add-interactive.c:662,1
    - Dst: error
      Src: /src/git/add-interactive.c:663,1
    - Dst: _
      Src: /src/git/add-interactive.c:663,1
    - Dst: write_locked_index
      Src: /src/git/add-interactive.c:668,1
    - Dst: error
      Src: /src/git/add-interactive.c:669,1
    - Dst: _
      Src: /src/git/add-interactive.c:669,1
    - Dst: printf
      Src: /src/git/add-interactive.c:672,1
    - Dst: Q_
      Src: /src/git/add-interactive.c:672,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:675,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 4
    argNames:
    - s
    - ps
    - files
    - opts
    argTypes:
    - struct add_i_state*
    - struct pathspec*
    - struct prefix_item_list*
    - struct list_and_choose_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 622
    functionDepth: 13
    functionLinenumber: 622
    functionLinenumberEnd: 677
    functionName: run_update
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - error
    - putchar
    - list_and_choose
    - remove_file_from_index
    - add_file_to_index
    - Q_
    - is_missing_file_error
    - get_modified_files
    - write_locked_index
    - repo_hold_locked_index
    - _
    - N_
    - lstat
    - printf
    linkageType: ''
    returnType: int
    signature: "int run_update(struct add_i_state *s, const struct pathspec *ps,\n\t\t
      \     struct prefix_item_list *files,\n\t\t      struct list_and_choose_options
      *opts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/add-interactive.c:688,1
    - Dst: remove_file_from_index
      Src: /src/git/add-interactive.c:689,1
    - Dst: printf
      Src: /src/git/add-interactive.c:690,1
    - Dst: _
      Src: /src/git/add-interactive.c:690,1
    - Dst: make_cache_entry
      Src: /src/git/add-interactive.c:692,1
    - Dst: die
      Src: /src/git/add-interactive.c:695,1
    - Dst: _
      Src: /src/git/add-interactive.c:695,1
    - Dst: add_index_entry
      Src: /src/git/add-interactive.c:697,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - q
    - opt
    - UNUSED
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 679
    functionDepth: 8
    functionLinenumber: 679
    functionLinenumberEnd: 700
    functionName: revert_from_diff
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - die
    - remove_file_from_index
    - is_null_oid
    - add_index_entry
    - _
    - make_cache_entry
    - printf
    linkageType: ''
    returnType: void
    signature: "void revert_from_diff(struct diff_queue_struct *q,\n\t\t\t     struct
      diff_options *opt, void *data UNUSED)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/add-interactive.c:710,1
    - Dst: get_main_ref_store
      Src: /src/git/add-interactive.c:710,1
    - Dst: get_modified_files
      Src: /src/git/add-interactive.c:719,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:723,1
    - Dst: N_
      Src: /src/git/add-interactive.c:727,1
    - Dst: list_and_choose
      Src: /src/git/add-interactive.c:728,1
    - Dst: repo_hold_locked_index
      Src: /src/git/add-interactive.c:732,1
    - Dst: oidcpy
      Src: /src/git/add-interactive.c:739,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/add-interactive.c:741,1
    - Dst: error
      Src: /src/git/add-interactive.c:743,1
    - Dst: _
      Src: /src/git/add-interactive.c:743,1
    - Dst: oidcpy
      Src: /src/git/add-interactive.c:746,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/add-interactive.c:749,1
    - Dst: parse_pathspec
      Src: /src/git/add-interactive.c:755,1
    - Dst: do_diff_cache
      Src: /src/git/add-interactive.c:764,1
    - Dst: diff_free
      Src: /src/git/add-interactive.c:765,1
    - Dst: diffcore_std
      Src: /src/git/add-interactive.c:768,1
    - Dst: diff_flush
      Src: /src/git/add-interactive.c:769,1
    - Dst: free
      Src: /src/git/add-interactive.c:771,1
    - Dst: write_locked_index
      Src: /src/git/add-interactive.c:773,1
    - Dst: repo_refresh_and_write_index
      Src: /src/git/add-interactive.c:777,1
    - Dst: printf
      Src: /src/git/add-interactive.c:781,1
    - Dst: Q_
      Src: /src/git/add-interactive.c:781,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:785,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 4
    argNames:
    - s
    - ps
    - files
    - opts
    argTypes:
    - struct add_i_state*
    - struct pathspec*
    - struct prefix_item_list*
    - struct list_and_choose_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 702
    functionDepth: 13
    functionLinenumber: 702
    functionLinenumberEnd: 787
    functionName: run_revert
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - putchar
    - oidcpy
    - refs_resolve_ref_unsafe
    - repo_hold_locked_index
    - free
    - printf
    - get_main_ref_store
    - error
    - ALLOC_ARRAY
    - Q_
    - parse_pathspec
    - repo_parse_tree_indirect
    - list_and_choose
    - get_modified_files
    - diff_flush
    - _
    - N_
    - do_diff_cache
    - diff_free
    - write_locked_index
    - diffcore_std
    - repo_refresh_and_write_index
    linkageType: ''
    returnType: int
    signature: "int run_revert(struct add_i_state *s, const struct pathspec *ps,\n\t\t
      \     struct prefix_item_list *files,\n\t\t      struct list_and_choose_options
      *opts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/add-interactive.c:797,1
    - Dst: error
      Src: /src/git/add-interactive.c:798,1
    - Dst: _
      Src: /src/git/add-interactive.c:798,1
    - Dst: prefix_item_list_clear
      Src: /src/git/add-interactive.c:800,1
    - Dst: setup_standard_excludes
      Src: /src/git/add-interactive.c:801,1
    - Dst: add_pattern_list
      Src: /src/git/add-interactive.c:802,1
    - Dst: fill_directory
      Src: /src/git/add-interactive.c:803,1
    - Dst: index_name_is_other
      Src: /src/git/add-interactive.c:808,1
    - Dst: strbuf_reset
      Src: /src/git/add-interactive.c:809,1
    - Dst: strbuf_add
      Src: /src/git/add-interactive.c:810,1
    - Dst: add_file_item
      Src: /src/git/add-interactive.c:811,1
    - Dst: strbuf_release
      Src: /src/git/add-interactive.c:815,1
    - Dst: dir_clear
      Src: /src/git/add-interactive.c:816,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - r
    - files
    - ps
    argTypes:
    - struct repository*
    - struct prefix_item_list*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 789
    functionDepth: 10
    functionLinenumber: 789
    functionLinenumberEnd: 818
    functionName: get_untracked_files
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - error
    - index_name_is_other
    - add_pattern_list
    - fill_directory
    - strbuf_release
    - repo_read_index
    - strbuf_reset
    - setup_standard_excludes
    - dir_clear
    - prefix_item_list_clear
    - add_file_item
    - strbuf_add
    - _
    linkageType: ''
    returnType: int
    signature: "int get_untracked_files(struct repository *r,\n\t\t\t       struct
      prefix_item_list *files,\n\t\t\t       const struct pathspec *ps)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_untracked_files
      Src: /src/git/add-interactive.c:829,1
    - Dst: printf
      Src: /src/git/add-interactive.c:833,1
    - Dst: _
      Src: /src/git/add-interactive.c:833,1
    - Dst: N_
      Src: /src/git/add-interactive.c:837,1
    - Dst: list_and_choose
      Src: /src/git/add-interactive.c:839,1
    - Dst: repo_hold_locked_index
      Src: /src/git/add-interactive.c:844,1
    - Dst: add_file_to_index
      Src: /src/git/add-interactive.c:853,1
    - Dst: error
      Src: /src/git/add-interactive.c:854,1
    - Dst: _
      Src: /src/git/add-interactive.c:854,1
    - Dst: write_locked_index
      Src: /src/git/add-interactive.c:860,1
    - Dst: error
      Src: /src/git/add-interactive.c:861,1
    - Dst: _
      Src: /src/git/add-interactive.c:861,1
    - Dst: printf
      Src: /src/git/add-interactive.c:864,1
    - Dst: Q_
      Src: /src/git/add-interactive.c:864,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:868,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - s
    - ps
    - files
    - opts
    argTypes:
    - struct add_i_state*
    - struct pathspec*
    - struct prefix_item_list*
    - struct list_and_choose_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 820
    functionDepth: 13
    functionLinenumber: 820
    functionLinenumberEnd: 870
    functionName: run_add_untracked
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - error
    - putchar
    - list_and_choose
    - add_file_to_index
    - Q_
    - write_locked_index
    - repo_hold_locked_index
    - _
    - N_
    - get_untracked_files
    - printf
    linkageType: ''
    returnType: int
    signature: "int run_add_untracked(struct add_i_state *s, const struct pathspec
      *ps,\n\t\t      struct prefix_item_list *files,\n\t\t      struct list_and_choose_options
      *opts)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_modified_files
      Src: /src/git/add-interactive.c:880,1
    - Dst: free
      Src: /src/git/add-interactive.c:889,1
    - Dst: free
      Src: /src/git/add-interactive.c:890,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:893,1
    - Dst: _
      Src: /src/git/add-interactive.c:894,1
    - Dst: free
      Src: /src/git/add-interactive.c:896,1
    - Dst: free
      Src: /src/git/add-interactive.c:897,1
    - Dst: fprintf
      Src: /src/git/add-interactive.c:906,1
    - Dst: _
      Src: /src/git/add-interactive.c:906,1
    - Dst: fprintf
      Src: /src/git/add-interactive.c:908,1
    - Dst: _
      Src: /src/git/add-interactive.c:908,1
    - Dst: N_
      Src: /src/git/add-interactive.c:912,1
    - Dst: list_and_choose
      Src: /src/git/add-interactive.c:913,1
    - Dst: strvec_push
      Src: /src/git/add-interactive.c:925,1
    - Dst: parse_pathspec
      Src: /src/git/add-interactive.c:927,1
    - Dst: run_add_p
      Src: /src/git/add-interactive.c:930,1
    - Dst: strvec_clear
      Src: /src/git/add-interactive.c:931,1
    - Dst: clear_pathspec
      Src: /src/git/add-interactive.c:932,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 4
    argNames:
    - s
    - ps
    - files
    - opts
    argTypes:
    - struct add_i_state*
    - struct pathspec*
    - struct prefix_item_list*
    - struct list_and_choose_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 872
    functionDepth: 13
    functionLinenumber: 872
    functionLinenumberEnd: 936
    functionName: run_patch
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - clear_pathspec
    - list_and_choose
    - run_add_p
    - get_modified_files
    - N_
    - strvec_clear
    - _
    - free
    - color_fprintf_ln
    - parse_pathspec
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int run_patch(struct add_i_state *s, const struct pathspec *ps,\n\t\t
      \    struct prefix_item_list *files,\n\t\t     struct list_and_choose_options
      *opts)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/add-interactive.c:946,1
    - Dst: get_main_ref_store
      Src: /src/git/add-interactive.c:946,1
    - Dst: get_modified_files
      Src: /src/git/add-interactive.c:950,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:954,1
    - Dst: N_
      Src: /src/git/add-interactive.c:958,1
    - Dst: list_and_choose
      Src: /src/git/add-interactive.c:960,1
    - Dst: strvec_pushl
      Src: /src/git/add-interactive.c:965,1
    - Dst: strvec_pushf
      Src: /src/git/add-interactive.c:967,1
    - Dst: strvec_pushf
      Src: /src/git/add-interactive.c:969,1
    - Dst: strvec_pushl
      Src: /src/git/add-interactive.c:970,1
    - Dst: oid_to_hex
      Src: /src/git/add-interactive.c:970,1
    - Dst: strvec_push
      Src: /src/git/add-interactive.c:974,1
    - Dst: run_command
      Src: /src/git/add-interactive.c:976,1
    - Dst: putchar
      Src: /src/git/add-interactive.c:979,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - s
    - ps
    - files
    - opts
    argTypes:
    - struct add_i_state*
    - struct pathspec*
    - struct prefix_item_list*
    - struct list_and_choose_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 938
    functionDepth: 13
    functionLinenumber: 938
    functionLinenumberEnd: 981
    functionName: run_diff
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - putchar
    - oid_to_hex
    - list_and_choose
    - run_command
    - refs_resolve_ref_unsafe
    - strvec_pushl
    - get_modified_files
    - N_
    - strvec_pushf
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int run_diff(struct add_i_state *s, const struct pathspec *ps,\n\t\t
      \   struct prefix_item_list *files,\n\t\t    struct list_and_choose_options
      *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:987,1
    - Dst: _
      Src: /src/git/add-interactive.c:988,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:989,1
    - Dst: _
      Src: /src/git/add-interactive.c:990,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:991,1
    - Dst: _
      Src: /src/git/add-interactive.c:992,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:993,1
    - Dst: _
      Src: /src/git/add-interactive.c:994,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:995,1
    - Dst: _
      Src: /src/git/add-interactive.c:996,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:997,1
    - Dst: _
      Src: /src/git/add-interactive.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - s
    - UNUSED
    - UNUSED
    - UNUSED
    argTypes:
    - struct add_i_state*
    - struct pathspec*
    - struct prefix_item_list*
    - struct list_and_choose_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1001
    functionName: run_help
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - color_fprintf_ln
    - _
    linkageType: ''
    returnType: int
    signature: "int run_help(struct add_i_state *s, const struct pathspec *ps UNUSED,\n\t\t
      \   struct prefix_item_list *files UNUSED,\n\t\t    struct list_and_choose_options
      *opts UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1005,1
    - Dst: _
      Src: /src/git/add-interactive.c:1006,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1007,1
    - Dst: _
      Src: /src/git/add-interactive.c:1008,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1009,1
    - Dst: _
      Src: /src/git/add-interactive.c:1010,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1011,1
    - Dst: _
      Src: /src/git/add-interactive.c:1012,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1013,1
    - Dst: _
      Src: /src/git/add-interactive.c:1014,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1015,1
    - Dst: _
      Src: /src/git/add-interactive.c:1016,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1017,1
    - Dst: _
      Src: /src/git/add-interactive.c:1018,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1019,1
    - Dst: _
      Src: /src/git/add-interactive.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct add_i_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1003
    functionDepth: 2
    functionLinenumber: 1003
    functionLinenumberEnd: 1021
    functionName: choose_prompt_help
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - color_fprintf_ln
    - _
    linkageType: ''
    returnType: void
    signature: void choose_prompt_help(struct add_i_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_prefix
      Src: /src/git/add-interactive.c:1044,1
    - Dst: printf
      Src: /src/git/add-interactive.c:1045,1
    - Dst: printf
      Src: /src/git/add-interactive.c:1047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - i
    - selected
    - item
    - print_command_item_data
    argTypes:
    - int
    - int
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1050
    functionName: print_command_item
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - is_valid_prefix
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_command_item(int i, int selected UNUSED,\n\t\t\t       struct
      string_list_item *item,\n\t\t\t       void *print_command_item_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1055,1
    - Dst: _
      Src: /src/git/add-interactive.c:1055,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1056,1
    - Dst: _
      Src: /src/git/add-interactive.c:1057,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1058,1
    - Dst: _
      Src: /src/git/add-interactive.c:1059,1
    - Dst: color_fprintf_ln
      Src: /src/git/add-interactive.c:1060,1
    - Dst: _
      Src: /src/git/add-interactive.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct add_i_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1062
    functionName: command_prompt_help
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - color_fprintf_ln
    - _
    linkageType: ''
    returnType: void
    signature: void command_prompt_help(struct add_i_state *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/add-interactive.c:1070,1
    - Dst: N_
      Src: /src/git/add-interactive.c:1071,1
    - Dst: ARRAY_SIZE
      Src: /src/git/add-interactive.c:1101,1
    - Dst: xcalloc
      Src: /src/git/add-interactive.c:1102,1
    - Dst: string_list_append
      Src: /src/git/add-interactive.c:1104,1
    - Dst: init_add_i_state
      Src: /src/git/add-interactive.c:1108,1
    - Dst: want_color
      Src: /src/git/add-interactive.c:1114,1
    - Dst: strbuf_addstr
      Src: /src/git/add-interactive.c:1121,1
    - Dst: strbuf_addf
      Src: /src/git/add-interactive.c:1122,1
    - Dst: _
      Src: /src/git/add-interactive.c:1123,1
    - Dst: _
      Src: /src/git/add-interactive.c:1123,1
    - Dst: _
      Src: /src/git/add-interactive.c:1123,1
    - Dst: discard_index
      Src: /src/git/add-interactive.c:1126,1
    - Dst: repo_read_index
      Src: /src/git/add-interactive.c:1127,1
    - Dst: repo_refresh_and_write_index
      Src: /src/git/add-interactive.c:1128,1
    - Dst: warning
      Src: /src/git/add-interactive.c:1130,1
    - Dst: _
      Src: /src/git/add-interactive.c:1130,1
    - Dst: run_status
      Src: /src/git/add-interactive.c:1132,1
    - Dst: list_and_choose
      Src: /src/git/add-interactive.c:1137,1
    - Dst: printf
      Src: /src/git/add-interactive.c:1144,1
    - Dst: _
      Src: /src/git/add-interactive.c:1144,1
    - Dst: struct command_item*::command
      Src: /src/git/add-interactive.c:1150,1
    - Dst: prefix_item_list_clear
      Src: /src/git/add-interactive.c:1153,1
    - Dst: strbuf_release
      Src: /src/git/add-interactive.c:1154,1
    - Dst: strbuf_release
      Src: /src/git/add-interactive.c:1155,1
    - Dst: strbuf_release
      Src: /src/git/add-interactive.c:1156,1
    - Dst: strbuf_release
      Src: /src/git/add-interactive.c:1157,1
    - Dst: strbuf_release
      Src: /src/git/add-interactive.c:1158,1
    - Dst: prefix_item_list_clear
      Src: /src/git/add-interactive.c:1159,1
    - Dst: clear_add_i_state
      Src: /src/git/add-interactive.c:1160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - r
    - ps
    - interactive_opts
    argTypes:
    - struct repository*
    - struct pathspec*
    - struct interactive_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1064
    functionDepth: 10
    functionLinenumber: 1064
    functionLinenumberEnd: 1163
    functionName: run_add_i
    functionSourceFile: /src/git/add-interactive.c
    functionUses: 0
    functionsReached:
    - init_add_i_state
    - clear_add_i_state
    - strbuf_addf
    - run_status
    - prefix_item_list_clear
    - printf
    - discard_index
    - strbuf_release
    - repo_read_index
    - xcalloc
    - strbuf_addstr
    - ARRAY_SIZE
    - list_and_choose
    - string_list_append
    - _
    - N_
    - warning
    - want_color
    - struct command_item*::command
    - repo_refresh_and_write_index
    linkageType: ''
    returnType: int
    signature: "int run_add_i(struct repository *r, const struct pathspec *ps,\n\t
      \     struct interactive_options *interactive_opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/git/strbuf.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: strbuf_swap
    functionSourceFile: /src/git/strbuf.h
    functionUses: 11
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: void
    signature: void strbuf_swap(struct strbuf *a, struct strbuf *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: strbuf_avail
    functionSourceFile: /src/git/strbuf.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strbuf_avail(const struct strbuf *sb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/strbuf.h:167,1
    - Dst: assert
      Src: /src/git/strbuf.h:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sb
    - len
    argTypes:
    - struct strbuf*
    - size_t
    assertStmts:
    - condition: (!strbuf_slopbuf[0])
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/git/strbuf.h
    constantsTouched: []
    func_position:
      end: 173
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 173
    functionName: strbuf_setlen
    functionSourceFile: /src/git/strbuf.h
    functionUses: 88
    functionsReached:
    - BUG
    - assert
    linkageType: ''
    returnType: void
    signature: void strbuf_setlen(struct strbuf *sb, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: strbuf_reset
    functionSourceFile: /src/git/strbuf.h
    functionUses: 138
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strbuf_reset(sb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_avail
      Src: /src/git/strbuf.h:234,1
    - Dst: strbuf_grow
      Src: /src/git/strbuf.h:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sb
    - c
    argTypes:
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: strbuf_addch
    functionSourceFile: /src/git/strbuf.h
    functionUses: 132
    functionsReached:
    - strbuf_avail
    - strbuf_grow
    linkageType: ''
    returnType: void
    signature: void strbuf_addch(struct strbuf *sb, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_insert
      Src: /src/git/strbuf.h:260,1
    - Dst: strlen
      Src: /src/git/strbuf.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sb
    - pos
    - s
    argTypes:
    - struct strbuf*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 4
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: strbuf_insertstr
    functionSourceFile: /src/git/strbuf.h
    functionUses: 4
    functionsReached:
    - strlen
    - strbuf_insert
    linkageType: ''
    returnType: void
    signature: "void strbuf_insertstr(struct strbuf *sb, size_t pos,\n\t\t\t\t    const
      char *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/strbuf.h:310,1
    - Dst: strlen
      Src: /src/git/strbuf.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sb
    - s
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: strbuf_addstr
    functionSourceFile: /src/git/strbuf.h
    functionUses: 213
    functionsReached:
    - strlen
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void strbuf_addstr(struct strbuf *sb, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix_mem
      Src: /src/git/strbuf.h:560,1
    - Dst: strbuf_setlen
      Src: /src/git/strbuf.h:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sb
    - suffix
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 565
    functionName: strbuf_strip_suffix
    functionSourceFile: /src/git/strbuf.h
    functionUses: 15
    functionsReached:
    - strip_suffix_mem
    - strbuf_setlen
    linkageType: ''
    returnType: int
    signature: int strbuf_strip_suffix(struct strbuf *sb, const char *suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_split_buf
      Src: /src/git/strbuf.h:591,1
    - Dst: strlen
      Src: /src/git/strbuf.h:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: strbuf_split_str
    functionSourceFile: /src/git/strbuf.h
    functionUses: 0
    functionsReached:
    - strlen
    - strbuf_split_buf
    linkageType: ''
    returnType: struct strbuf
    signature: "struct strbuf **strbuf_split_str(const char *str,\n\t\t\t\t\t       int
      terminator, int max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_split_buf
      Src: /src/git/strbuf.h:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 598
    functionName: strbuf_split_max
    functionSourceFile: /src/git/strbuf.h
    functionUses: 1
    functionsReached:
    - strbuf_split_buf
    linkageType: ''
    returnType: struct strbuf
    signature: "struct strbuf **strbuf_split_max(const struct strbuf *sb,\n\t\t\t\t\t
      \      int terminator, int max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_split_max
      Src: /src/git/strbuf.h:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 4
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: strbuf_split
    functionSourceFile: /src/git/strbuf.h
    functionUses: 1
    functionsReached:
    - strbuf_split_max
    linkageType: ''
    returnType: struct strbuf
    signature: "struct strbuf **strbuf_split(const struct strbuf *sb,\n\t\t\t\t\t
      \  int terminator)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/strbuf.h:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - sb
    - term
    argTypes:
    - struct strbuf*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 659
    functionName: strbuf_complete
    functionSourceFile: /src/git/strbuf.h
    functionUses: 17
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void strbuf_complete(struct strbuf *sb, char term)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_complete
      Src: /src/git/strbuf.h:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 661
    functionDepth: 4
    functionLinenumber: 661
    functionLinenumberEnd: 664
    functionName: strbuf_complete_line
    functionSourceFile: /src/git/strbuf.h
    functionUses: 8
    functionsReached:
    - strbuf_complete
    linkageType: ''
    returnType: void
    signature: void strbuf_complete_line(struct strbuf *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_to_optional_arg_default
      Src: /src/git/strbuf.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - prefix
    - arg
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: skip_to_optional_arg
    functionSourceFile: /src/git/strbuf.h
    functionUses: 0
    functionsReached:
    - skip_to_optional_arg_default
    linkageType: ''
    returnType: bool
    signature: "bool skip_to_optional_arg(const char *str, const char *prefix,\n\t\t\t\t
      \      const char **arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix
      Src: /src/git/strbuf.h:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: ends_with
    functionSourceFile: /src/git/strbuf.h
    functionUses: 6
    functionsReached:
    - strip_suffix
    linkageType: ''
    returnType: bool
    signature: bool ends_with(const char *str, const char *suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - n
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: copy_le16
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_le16(unsigned char *dest, unsigned int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - n
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: copy_le32
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_le32(unsigned char *dest, unsigned int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - dest
    - n
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: copy_le64
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_le64(unsigned char *dest, uint64_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - n
    - max
    - clamped
    argTypes:
    - uint64_t
    - uint64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: clamp_max
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t clamp_max(uint64_t n, uint64_t max, int *clamped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:181,1
    - Dst: clamp_max
      Src: /src/git/archive-zip.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - n
    - clamped
    argTypes:
    - unsigned char*
    - uint64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: copy_le16_clamp
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - clamp_max
    - copy_le16
    linkageType: ''
    returnType: void
    signature: void copy_le16_clamp(unsigned char *dest, uint64_t n, int *clamped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:186,1
    - Dst: clamp_max
      Src: /src/git/archive-zip.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - n
    - clamped
    argTypes:
    - unsigned char*
    - uint64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: copy_le32_clamp
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - clamp_max
    - copy_le32
    linkageType: ''
    returnType: void
    signature: void copy_le32_clamp(unsigned char *dest, uint64_t n, int *clamped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/archive-zip.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sb
    - size
    - n
    argTypes:
    - struct strbuf*
    - size_t
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: strbuf_add_le
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: int strbuf_add_le(struct strbuf *sb, size_t size, uintmax_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: clamp32
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t clamp32(uintmax_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate_init_raw
      Src: /src/git/archive-zip.c:213,1
    - Dst: git_deflate_bound
      Src: /src/git/archive-zip.c:214,1
    - Dst: xmalloc
      Src: /src/git/archive-zip.c:215,1
    - Dst: git_deflate
      Src: /src/git/archive-zip.c:223,1
    - Dst: free
      Src: /src/git/archive-zip.c:227,1
    - Dst: git_deflate_end
      Src: /src/git/archive-zip.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - data
    - size
    - compression_level
    - compressed_size
    argTypes:
    - void*
    - unsigned long
    - int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 235
    functionName: zlib_deflate_raw
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - git_deflate
    - git_deflate_end
    - git_deflate_bound
    - xmalloc
    - free
    - git_deflate_init_raw
    linkageType: ''
    returnType: void
    signature: "void *zlib_deflate_raw(void *data, unsigned long size,\n\t\t\t      int
      compression_level,\n\t\t\t      unsigned long *compressed_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:243,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:244,1
    - Dst: copy_le64
      Src: /src/git/archive-zip.c:245,1
    - Dst: copy_le64
      Src: /src/git/archive-zip.c:246,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:247,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:251,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:252,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:253,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:254,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - size
    - compressed_size
    - crc
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 258
    functionName: write_zip_data_desc
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - copy_le64
    - copy_le32
    linkageType: ''
    returnType: void
    signature: "void write_zip_data_desc(unsigned long size,\n\t\t\t\tunsigned long
      compressed_size,\n\t\t\t\tunsigned long crc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:265,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:266,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - header
    - size
    - compressed_size
    - crc
    argTypes:
    - struct zip_local_header*
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: set_zip_header_data_desc
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - copy_le32
    linkageType: ''
    returnType: void
    signature: "void set_zip_header_data_desc(struct zip_local_header *header,\n\t\t\t\t
      \    unsigned long size,\n\t\t\t\t     unsigned long compressed_size,\n\t\t\t\t
      \    unsigned long crc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isascii
      Src: /src/git/archive-zip.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: has_only_ascii
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - isascii
    linkageType: ''
    returnType: int
    signature: int has_only_ascii(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: userdiff_find_by_path
      Src: /src/git/archive-zip.c:284,1
    - Dst: userdiff_find_by_name
      Src: /src/git/archive-zip.c:286,1
    - Dst: buffer_is_binary
      Src: /src/git/archive-zip.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - istate
    - path
    - buffer
    - size
    argTypes:
    - struct index_state*
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: entry_is_binary
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - userdiff_find_by_path
    - userdiff_find_by_name
    - buffer_is_binary
    linkageType: ''
    returnType: int
    signature: "int entry_is_binary(struct index_state *istate, const char *path,\n\t\t\t
      \  const void *buffer, size_t size)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/git/archive-zip.c:321,1
    - Dst: has_only_ascii
      Src: /src/git/archive-zip.c:323,1
    - Dst: is_utf8
      Src: /src/git/archive-zip.c:324,1
    - Dst: warning
      Src: /src/git/archive-zip.c:327,1
    - Dst: _
      Src: /src/git/archive-zip.c:327,1
    - Dst: error
      Src: /src/git/archive-zip.c:331,1
    - Dst: _
      Src: /src/git/archive-zip.c:331,1
    - Dst: oid_to_hex
      Src: /src/git/archive-zip.c:332,1
    - Dst: S_ISDIR
      Src: /src/git/archive-zip.c:335,1
    - Dst: S_ISGITLINK
      Src: /src/git/archive-zip.c:335,1
    - Dst: S_ISREG
      Src: /src/git/archive-zip.c:340,1
    - Dst: S_ISLNK
      Src: /src/git/archive-zip.c:340,1
    - Dst: S_ISLNK
      Src: /src/git/archive-zip.c:342,1
    - Dst: S_ISLNK
      Src: /src/git/archive-zip.c:344,1
    - Dst: S_ISREG
      Src: /src/git/archive-zip.c:346,1
    - Dst: odb_read_stream_open
      Src: /src/git/archive-zip.c:350,1
    - Dst: error
      Src: /src/git/archive-zip.c:352,1
    - Dst: _
      Src: /src/git/archive-zip.c:352,1
    - Dst: oid_to_hex
      Src: /src/git/archive-zip.c:353,1
    - Dst: crc32
      Src: /src/git/archive-zip.c:358,1
    - Dst: entry_is_binary
      Src: /src/git/archive-zip.c:359,1
    - Dst: error
      Src: /src/git/archive-zip.c:366,1
    - Dst: _
      Src: /src/git/archive-zip.c:366,1
    - Dst: oid_to_hex
      Src: /src/git/archive-zip.c:367,1
    - Dst: zlib_deflate_raw
      Src: /src/git/archive-zip.c:374,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:384,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:385,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:387,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:397,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:398,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:399,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:400,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:401,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:402,1
    - Dst: set_zip_header_data_desc
      Src: /src/git/archive-zip.c:404,1
    - Dst: set_zip_header_data_desc
      Src: /src/git/archive-zip.c:407,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:409,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:410,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:411,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:413,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:415,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:418,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:419,1
    - Dst: copy_le64
      Src: /src/git/archive-zip.c:420,1
    - Dst: copy_le64
      Src: /src/git/archive-zip.c:421,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:422,1
    - Dst: odb_read_stream_read
      Src: /src/git/archive-zip.c:431,1
    - Dst: crc32
      Src: /src/git/archive-zip.c:434,1
    - Dst: entry_is_binary
      Src: /src/git/archive-zip.c:436,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:439,1
    - Dst: odb_read_stream_close
      Src: /src/git/archive-zip.c:441,1
    - Dst: write_zip_data_desc
      Src: /src/git/archive-zip.c:448,1
    - Dst: git_deflate_init_raw
      Src: /src/git/archive-zip.c:457,1
    - Dst: odb_read_stream_read
      Src: /src/git/archive-zip.c:464,1
    - Dst: crc32
      Src: /src/git/archive-zip.c:467,1
    - Dst: entry_is_binary
      Src: /src/git/archive-zip.c:469,1
    - Dst: git_deflate
      Src: /src/git/archive-zip.c:475,1
    - Dst: die
      Src: /src/git/archive-zip.c:477,1
    - Dst: _
      Src: /src/git/archive-zip.c:477,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:481,1
    - Dst: odb_read_stream_close
      Src: /src/git/archive-zip.c:488,1
    - Dst: git_deflate
      Src: /src/git/archive-zip.c:496,1
    - Dst: die
      Src: /src/git/archive-zip.c:498,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:502,1
    - Dst: git_deflate_end
      Src: /src/git/archive-zip.c:509,1
    - Dst: write_zip_data_desc
      Src: /src/git/archive-zip.c:512,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:514,1
    - Dst: free
      Src: /src/git/archive-zip.c:518,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:531,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:532,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:533,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:534,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:535,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:536,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:537,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:538,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:539,1
    - Dst: clamp32
      Src: /src/git/archive-zip.c:539,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:540,1
    - Dst: clamp32
      Src: /src/git/archive-zip.c:540,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:541,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:542,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:543,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:544,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:545,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:546,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:547,1
    - Dst: clamp32
      Src: /src/git/archive-zip.c:547,1
    - Dst: strbuf_add
      Src: /src/git/archive-zip.c:548,1
    - Dst: strbuf_add
      Src: /src/git/archive-zip.c:549,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:551,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:552,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:554,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:556,1
    - Dst: strbuf_add_le
      Src: /src/git/archive-zip.c:558,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 195
    argCount: 7
    argNames:
    - args
    - oid
    - path
    - pathlen
    - mode
    - buffer
    - size
    argTypes:
    - struct archiver_args*
    - struct object_id*
    - char*
    - size_t
    - unsigned int
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 294
    functionDepth: 5
    functionLinenumber: 294
    functionLinenumberEnd: 563
    functionName: write_zip_entry
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - entry_is_binary
    - S_ISLNK
    - set_zip_header_data_desc
    - crc32
    - copy_le32
    - copy_le16
    - free
    - error
    - write_or_die
    - git_deflate
    - die
    - git_deflate_end
    - is_utf8
    - S_ISREG
    - odb_read_stream_close
    - oid_to_hex
    - odb_read_stream_open
    - clamp32
    - S_ISGITLINK
    - write_zip_data_desc
    - strbuf_add_le
    - _
    - zlib_deflate_raw
    - warning
    - git_deflate_init_raw
    - strbuf_add
    - S_ISDIR
    - copy_le64
    - has_only_ascii
    - odb_read_stream_read
    linkageType: ''
    returnType: int
    signature: "int write_zip_entry(struct archiver_args *args,\n\t\t\t   const struct
      object_id *oid,\n\t\t\t   const char *path, size_t pathlen,\n\t\t\t   unsigned
      int mode,\n\t\t\t   void *buffer, unsigned long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:570,1
    - Dst: copy_le64
      Src: /src/git/archive-zip.c:571,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:572,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:573,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:574,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:575,1
    - Dst: copy_le64
      Src: /src/git/archive-zip.c:576,1
    - Dst: copy_le64
      Src: /src/git/archive-zip.c:577,1
    - Dst: copy_le64
      Src: /src/git/archive-zip.c:578,1
    - Dst: copy_le64
      Src: /src/git/archive-zip.c:579,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:581,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:582,1
    - Dst: copy_le64
      Src: /src/git/archive-zip.c:583,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:584,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:586,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 588
    functionName: write_zip64_trailer
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - copy_le64
    - copy_le32
    - copy_le16
    linkageType: ''
    returnType: void
    signature: void write_zip64_trailer(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:595,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:596,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:597,1
    - Dst: copy_le16_clamp
      Src: /src/git/archive-zip.c:598,1
    - Dst: copy_le16_clamp
      Src: /src/git/archive-zip.c:600,1
    - Dst: copy_le32
      Src: /src/git/archive-zip.c:601,1
    - Dst: copy_le32_clamp
      Src: /src/git/archive-zip.c:602,1
    - Dst: copy_le16
      Src: /src/git/archive-zip.c:603,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:605,1
    - Dst: write_zip64_trailer
      Src: /src/git/archive-zip.c:607,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:608,1
    - Dst: write_or_die
      Src: /src/git/archive-zip.c:610,1
    - Dst: oid_to_hex
      Src: /src/git/archive-zip.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 590
    functionDepth: 5
    functionLinenumber: 590
    functionLinenumberEnd: 611
    functionName: write_zip_trailer
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - oid_to_hex
    - copy_le16_clamp
    - copy_le16
    - copy_le32
    - copy_le32_clamp
    - write_zip64_trailer
    linkageType: ''
    returnType: void
    signature: void write_zip_trailer(const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: date_overflows
      Src: /src/git/archive-zip.c:618,1
    - Dst: die
      Src: /src/git/archive-zip.c:619,1
    - Dst: _
      Src: /src/git/archive-zip.c:619,1
    - Dst: localtime_r
      Src: /src/git/archive-zip.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - timestamp
    - dos_date
    - dos_time
    argTypes:
    - timestamp_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 628
    functionName: dos_time
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - localtime_r
    - date_overflows
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void dos_time(timestamp_t *timestamp, int *dos_date, int *dos_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: userdiff_config
      Src: /src/git/archive-zip.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 630
    functionDepth: 3
    functionLinenumber: 630
    functionLinenumberEnd: 635
    functionName: archive_zip_config
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - userdiff_config
    linkageType: ''
    returnType: int
    signature: "int archive_zip_config(const char *var, const char *value,\n\t\t\t
      \     const struct config_context *ctx UNUSED,\n\t\t\t      void *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/archive-zip.c:642,1
    - Dst: dos_time
      Src: /src/git/archive-zip.c:644,1
    - Dst: strbuf_init
      Src: /src/git/archive-zip.c:646,1
    - Dst: write_archive_entries
      Src: /src/git/archive-zip.c:648,1
    - Dst: write_zip_trailer
      Src: /src/git/archive-zip.c:650,1
    - Dst: strbuf_release
      Src: /src/git/archive-zip.c:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - UNUSED
    - args
    argTypes:
    - struct archiver*
    - struct archiver_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 637
    functionDepth: 6
    functionLinenumber: 637
    functionLinenumberEnd: 655
    functionName: write_zip_archive
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - dos_time
    - write_archive_entries
    - write_zip_trailer
    - repo_config
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: "int write_zip_archive(const struct archiver *ar UNUSED,\n\t\t\t     struct
      archiver_args *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_archiver
      Src: /src/git/archive-zip.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 666
    functionName: init_zip_archiver
    functionSourceFile: /src/git/archive-zip.c
    functionUses: 1
    functionsReached:
    - register_archiver
    linkageType: ''
    returnType: void
    signature: void init_zip_archiver(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmemdupz
      Src: /src/git/unix-socket.c:11,1
    - Dst: chdir
      Src: /src/git/unix-socket.c:12,1
    - Dst: free
      Src: /src/git/unix-socket.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - orig
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: chdir_len
    functionSourceFile: /src/git/unix-socket.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - chdir
    - free
    linkageType: ''
    returnType: int
    signature: int chdir_len(const char *orig, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chdir
      Src: /src/git/unix-socket.c:30,1
    - Dst: die
      Src: /src/git/unix-socket.c:31,1
    - Dst: free
      Src: /src/git/unix-socket.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct unix_sockaddr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: unix_sockaddr_cleanup
    functionSourceFile: /src/git/unix-socket.c
    functionUses: 0
    functionsReached:
    - chdir
    - die
    - free
    linkageType: ''
    returnType: void
    signature: void unix_sockaddr_cleanup(struct unix_sockaddr_context *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/unix-socket.c:39,1
    - Dst: find_last_dir_sep
      Src: /src/git/unix-socket.c:52,1
    - Dst: strlen
      Src: /src/git/unix-socket.c:60,1
    - Dst: strbuf_getcwd
      Src: /src/git/unix-socket.c:65,1
    - Dst: strbuf_detach
      Src: /src/git/unix-socket.c:67,1
    - Dst: chdir_len
      Src: /src/git/unix-socket.c:68,1
    - Dst: FREE_AND_NULL
      Src: /src/git/unix-socket.c:69,1
    - Dst: memset
      Src: /src/git/unix-socket.c:74,1
    - Dst: memcpy
      Src: /src/git/unix-socket.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - sa
    - path
    - ctx
    - disallow_chdir
    argTypes:
    - struct sockaddr_un*
    - char*
    - struct unix_sockaddr_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 78
    functionName: unix_sockaddr_init
    functionSourceFile: /src/git/unix-socket.c
    functionUses: 0
    functionsReached:
    - memset
    - strbuf_getcwd
    - memcpy
    - find_last_dir_sep
    - strlen
    - strbuf_detach
    - chdir_len
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: "int unix_sockaddr_init(struct sockaddr_un *sa, const char *path,\n\t\t\t
      \     struct unix_sockaddr_context *ctx,\n\t\t\t      int disallow_chdir)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unix_sockaddr_init
      Src: /src/git/unix-socket.c:86,1
    - Dst: socket
      Src: /src/git/unix-socket.c:88,1
    - Dst: connect
      Src: /src/git/unix-socket.c:92,1
    - Dst: unix_sockaddr_cleanup
      Src: /src/git/unix-socket.c:94,1
    - Dst: close
      Src: /src/git/unix-socket.c:100,1
    - Dst: unix_sockaddr_cleanup
      Src: /src/git/unix-socket.c:101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - path
    - disallow_chdir
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 104
    functionName: unix_stream_connect
    functionSourceFile: /src/git/unix-socket.c
    functionUses: 0
    functionsReached:
    - socket
    - close
    - connect
    - unix_sockaddr_init
    - unix_sockaddr_cleanup
    linkageType: ''
    returnType: int
    signature: int unix_stream_connect(const char *path, int disallow_chdir)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/git/unix-socket.c:114,1
    - Dst: unix_sockaddr_init
      Src: /src/git/unix-socket.c:116,1
    - Dst: socket
      Src: /src/git/unix-socket.c:118,1
    - Dst: bind
      Src: /src/git/unix-socket.c:122,1
    - Dst: listen
      Src: /src/git/unix-socket.c:128,1
    - Dst: unix_sockaddr_cleanup
      Src: /src/git/unix-socket.c:131,1
    - Dst: close
      Src: /src/git/unix-socket.c:137,1
    - Dst: unix_sockaddr_cleanup
      Src: /src/git/unix-socket.c:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - path
    - opts
    argTypes:
    - char*
    - struct unix_stream_listen_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 141
    functionName: unix_stream_listen
    functionSourceFile: /src/git/unix-socket.c
    functionUses: 0
    functionsReached:
    - listen
    - socket
    - close
    - unix_sockaddr_init
    - unix_sockaddr_cleanup
    - bind
    - unlink
    linkageType: ''
    returnType: int
    signature: "int unix_stream_listen(const char *path,\n\t\t       const struct
      unix_stream_listen_opts *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/odb.h:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 407
    functionName: obj_read_lock
    functionSourceFile: /src/git/odb.h
    functionUses: 2
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void obj_read_lock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/odb.h:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: obj_read_unlock
    functionSourceFile: /src/git/odb.h
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void obj_read_unlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_write_object_ext
      Src: /src/git/odb.h:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - odb
    - buf
    - len
    - type
    - oid
    argTypes:
    - struct object_database*
    - void*
    - unsigned long
    - enum object_type
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 563
    functionName: odb_write_object
    functionSourceFile: /src/git/odb.h
    functionUses: 12
    functionsReached:
    - odb_write_object_ext
    linkageType: ''
    returnType: int
    signature: "int odb_write_object(struct object_database *odb,\n\t\t\t\t   const
      void *buf, unsigned long len,\n\t\t\t\t   enum object_type type,\n\t\t\t\t   struct
      object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidhash
      Src: /src/git/pack-objects.c:15,1
    - Dst: oideq
      Src: /src/git/pack-objects.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pdata
    - oid
    - found
    argTypes:
    - struct packing_data*
    - struct object_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 30
    functionName: locate_object_entry_hash
    functionSourceFile: /src/git/pack-objects.c
    functionUses: 0
    functionsReached:
    - oidhash
    - oideq
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t locate_object_entry_hash(struct packing_data *pdata,\n\t\t\t\t\t
      const struct object_id *oid,\n\t\t\t\t\t int *found)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: closest_pow2
    functionSourceFile: /src/git/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t closest_pow2(uint32_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: closest_pow2
      Src: /src/git/pack-objects.c:48,1
    - Dst: free
      Src: /src/git/pack-objects.c:52,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pack-objects.c:53,1
    - Dst: locate_object_entry_hash
      Src: /src/git/pack-objects.c:59,1
    - Dst: BUG
      Src: /src/git/pack-objects.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pdata
    argTypes:
    - struct packing_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 69
    functionName: rehash_objects
    functionSourceFile: /src/git/pack-objects.c
    functionUses: 0
    functionsReached:
    - locate_object_entry_hash
    - CALLOC_ARRAY
    - free
    - BUG
    - closest_pow2
    linkageType: ''
    returnType: void
    signature: void rehash_objects(struct packing_data *pdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: locate_object_entry_hash
      Src: /src/git/pack-objects.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pdata
    - oid
    argTypes:
    - struct packing_data*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: packlist_find
    functionSourceFile: /src/git/pack-objects.c
    functionUses: 1
    functionsReached:
    - locate_object_entry_hash
    linkageType: ''
    returnType: struct object_entry
    signature: "struct object_entry *packlist_find(struct packing_data *pdata,\n\t\t\t\t
      \  const struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-objects.c:93,1
    - Dst: repo_for_each_pack
      Src: /src/git/pack-objects.c:99,1
    - Dst: free
      Src: /src/git/pack-objects.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - pdata
    argTypes:
    - struct packing_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 108
    functionName: prepare_in_pack_by_idx
    functionSourceFile: /src/git/pack-objects.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - repo_for_each_pack
    - free
    linkageType: ''
    returnType: void
    signature: void prepare_in_pack_by_idx(struct packing_data *pdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-objects.c:124,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-objects.c:126,1
    - Dst: oe_in_pack
      Src: /src/git/pack-objects.c:129,1
    - Dst: FREE_AND_NULL
      Src: /src/git/pack-objects.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pack
    argTypes:
    - struct packing_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 132
    functionName: oe_map_new_pack
    functionSourceFile: /src/git/pack-objects.c
    functionUses: 0
    functionsReached:
    - oe_in_pack
    - ALLOC_ARRAY
    - BUG
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void oe_map_new_pack(struct packing_data *pack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/pack-objects.c:139,1
    - Dst: prepare_in_pack_by_idx
      Src: /src/git/pack-objects.c:145,1
    - Dst: git_env_ulong
      Src: /src/git/pack-objects.c:148,1
    - Dst: git_env_ulong
      Src: /src/git/pack-objects.c:150,1
    - Dst: init_recursive_mutex
      Src: /src/git/pack-objects.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - r
    - pdata
    argTypes:
    - struct repository*
    - struct packing_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 153
    functionName: prepare_packing_data
    functionSourceFile: /src/git/pack-objects.c
    functionUses: 0
    functionsReached:
    - prepare_in_pack_by_idx
    - init_recursive_mutex
    - git_env_bool
    - git_env_ulong
    linkageType: ''
    returnType: void
    signature: void prepare_packing_data(struct repository *r, struct packing_data
      *pdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/pack-objects.c:160,1
    - Dst: free
      Src: /src/git/pack-objects.c:161,1
    - Dst: free
      Src: /src/git/pack-objects.c:162,1
    - Dst: free
      Src: /src/git/pack-objects.c:163,1
    - Dst: free
      Src: /src/git/pack-objects.c:164,1
    - Dst: free
      Src: /src/git/pack-objects.c:165,1
    - Dst: free
      Src: /src/git/pack-objects.c:166,1
    - Dst: free
      Src: /src/git/pack-objects.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pdata
    argTypes:
    - struct packing_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: clear_packing_data
    functionSourceFile: /src/git/pack-objects.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void clear_packing_data(struct packing_data *pdata)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC_ARRAY
      Src: /src/git/pack-objects.c:177,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/pack-objects.c:180,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/pack-objects.c:182,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/pack-objects.c:185,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/pack-objects.c:188,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/pack-objects.c:191,1
    - Dst: memset
      Src: /src/git/pack-objects.c:196,1
    - Dst: oidcpy
      Src: /src/git/pack-objects.c:197,1
    - Dst: rehash_objects
      Src: /src/git/pack-objects.c:200,1
    - Dst: locate_object_entry_hash
      Src: /src/git/pack-objects.c:203,1
    - Dst: BUG
      Src: /src/git/pack-objects.c:207,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - pdata
    - oid
    argTypes:
    - struct packing_data*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 224
    functionName: packlist_alloc
    functionSourceFile: /src/git/pack-objects.c
    functionUses: 0
    functionsReached:
    - memset
    - rehash_objects
    - oidcpy
    - locate_object_entry_hash
    - REALLOC_ARRAY
    - BUG
    linkageType: ''
    returnType: struct object_entry
    signature: "struct object_entry *packlist_alloc(struct packing_data *pdata,\n\t\t\t\t
      \   const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/pack-objects.c:232,1
    - Dst: memset
      Src: /src/git/pack-objects.c:234,1
    - Dst: oidcpy
      Src: /src/git/pack-objects.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - pdata
    - delta
    - oid
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 243
    functionName: oe_set_delta_ext
    functionSourceFile: /src/git/pack-objects.c
    functionUses: 0
    functionsReached:
    - memset
    - ALLOC_GROW
    - oidcpy
    linkageType: ''
    returnType: void
    signature: "void oe_set_delta_ext(struct packing_data *pdata,\n\t\t      struct
      object_entry *delta,\n\t\t      const struct object_id *oid)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/git/diff-delta.c:167,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/diff-delta.c:174,1
    - Dst: calloc
      Src: /src/git/diff-delta.c:177,1
    - Dst: free
      Src: /src/git/diff-delta.c:179,1
    - Dst: free
      Src: /src/git/diff-delta.c:255,1
    - Dst: malloc
      Src: /src/git/diff-delta.c:264,1
    - Dst: free
      Src: /src/git/diff-delta.c:266,1
    - Dst: assert
      Src: /src/git/diff-delta.c:294,1
    - Dst: free
      Src: /src/git/diff-delta.c:295,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 85
    argCount: 2
    argNames:
    - buf
    - bufsize
    argTypes:
    - void*
    - unsigned long
    assertStmts:
    - condition: (packed_entry - (struct index_entry *)mem == entries)
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/git/diff-delta.c
    constantsTouched: []
    func_position:
      end: 298
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 298
    functionName: create_delta_index
    functionSourceFile: /src/git/diff-delta.c
    functionUses: 1
    functionsReached:
    - assert
    - MEMZERO_ARRAY
    - free
    - malloc
    - calloc
    linkageType: ''
    returnType: struct delta_index
    signature: struct delta_index * create_delta_index(const void *buf, unsigned long
      bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/diff-delta.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct delta_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: free_delta_index
    functionSourceFile: /src/git/diff-delta.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_delta_index(struct delta_index *index)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct delta_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: sizeof_delta_index
    functionSourceFile: /src/git/diff-delta.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long sizeof_delta_index(struct delta_index *index)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/git/diff-delta.c:340,1
    - Dst: realloc
      Src: /src/git/diff-delta.c:492,1
    - Dst: free
      Src: /src/git/diff-delta.c:494,1
    - Dst: free
      Src: /src/git/diff-delta.c:504,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 145
    argCount: 5
    argNames:
    - index
    - trg_buf
    - trg_size
    - delta_size
    - max_size
    argTypes:
    - struct delta_index*
    - void*
    - unsigned long
    - unsigned long*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 510
    functionName: create_delta
    functionSourceFile: /src/git/diff-delta.c
    functionUses: 1
    functionsReached:
    - malloc
    - realloc
    - free
    linkageType: ''
    returnType: void
    signature: "void *\ncreate_delta(const struct delta_index *index,\n\t     const
      void *trg_buf, unsigned long trg_size,\n\t     unsigned long *delta_size, unsigned
      long max_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_in_full
      Src: /src/git/wrapper.h:52,1
    - Dst: strlen
      Src: /src/git/wrapper.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - str
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: write_str_in_full
    functionSourceFile: /src/git/wrapper.h
    functionUses: 0
    functionsReached:
    - write_in_full
    - strlen
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t write_str_in_full(int fd, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sz
    argTypes:
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: log2u
    functionSourceFile: /src/git/wrapper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned log2u(uintmax_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/replace-object.c:16,1
    - Dst: xmalloc
      Src: /src/git/replace-object.c:18,1
    - Dst: get_oid_hex_algop
      Src: /src/git/replace-object.c:20,1
    - Dst: free
      Src: /src/git/replace-object.c:21,1
    - Dst: warning
      Src: /src/git/replace-object.c:22,1
    - Dst: _
      Src: /src/git/replace-object.c:22,1
    - Dst: oidcpy
      Src: /src/git/replace-object.c:27,1
    - Dst: oidmap_put
      Src: /src/git/replace-object.c:30,1
    - Dst: die
      Src: /src/git/replace-object.c:31,1
    - Dst: _
      Src: /src/git/replace-object.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 11
    functionDepth: 6
    functionLinenumber: 11
    functionLinenumberEnd: 34
    functionName: register_replace_ref
    functionSourceFile: /src/git/replace-object.c
    functionUses: 0
    functionsReached:
    - oidmap_put
    - die
    - strrchr
    - oidcpy
    - get_oid_hex_algop
    - xmalloc
    - free
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: int register_replace_ref(const struct reference *ref, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/replace-object.c:41,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/replace-object.c:43,1
    - Dst: oidmap_init
      Src: /src/git/replace-object.c:47,1
    - Dst: refs_for_each_replace_ref
      Src: /src/git/replace-object.c:49,1
    - Dst: get_main_ref_store
      Src: /src/git/replace-object.c:49,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/replace-object.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 54
    functionName: prepare_replace_object
    functionSourceFile: /src/git/replace-object.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - oidmap_init
    - pthread_mutex_unlock
    - refs_for_each_replace_ref
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void prepare_replace_object(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_replace_object
      Src: /src/git/replace-object.c:72,1
    - Dst: oidmap_get
      Src: /src/git/replace-object.c:77,1
    - Dst: die
      Src: /src/git/replace-object.c:82,1
    - Dst: _
      Src: /src/git/replace-object.c:82,1
    - Dst: oid_to_hex
      Src: /src/git/replace-object.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 83
    functionName: do_lookup_replace_object
    functionSourceFile: /src/git/replace-object.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - oidmap_get
    - _
    - prepare_replace_object
    linkageType: ''
    returnType: struct object_id
    signature: "struct object_id *do_lookup_replace_object(struct repository *r,\n\t\t\t\t\t\t
      const struct object_id *oid)"
  - 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: disable_replace_refs
    functionSourceFile: /src/git/replace-object.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_replace_refs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/replace-object.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: replace_refs_enabled
    functionSourceFile: /src/git/replace-object.c
    functionUses: 0
    functionsReached:
    - prepare_repo_settings
    linkageType: ''
    returnType: int
    signature: int replace_refs_enabled(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - enum cmit_fmt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: commit_format_is_empty
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int commit_format_is_empty(enum cmit_fmt fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/pretty.c:55,1
    - Dst: xstrdup
      Src: /src/git/pretty.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rev
    - cp
    - is_tformat
    argTypes:
    - struct rev_info*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: save_user_format
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void save_user_format(struct rev_info *rev, const char *cp, int is_tformat)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/pretty.c:71,1
    - Dst: strcmp
      Src: /src/git/pretty.c:75,1
    - Dst: strcmp
      Src: /src/git/pretty.c:80,1
    - Dst: ALLOC_GROW
      Src: /src/git/pretty.c:87,1
    - Dst: memset
      Src: /src/git/pretty.c:90,1
    - Dst: free
      Src: /src/git/pretty.c:94,1
    - Dst: xstrdup
      Src: /src/git/pretty.c:95,1
    - Dst: git_config_string
      Src: /src/git/pretty.c:97,1
    - Dst: free
      Src: /src/git/pretty.c:100,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:101,1
    - Dst: xstrdup
      Src: /src/git/pretty.c:103,1
    - Dst: free
      Src: /src/git/pretty.c:104,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:105,1
    - Dst: xstrdup
      Src: /src/git/pretty.c:107,1
    - Dst: free
      Src: /src/git/pretty.c:108,1
    - Dst: strchr
      Src: /src/git/pretty.c:109,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 118
    functionName: git_pretty_formats_config
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - memset
    - git_config_string
    - strchr
    - strcmp
    - ALLOC_GROW
    - free
    - skip_prefix
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int git_pretty_formats_config(const char *var, const char *value,\n\t\t\t\t
      \    const struct config_context *ctx UNUSED,\n\t\t\t\t     void *cb UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/pretty.c:138,1
    - Dst: ALLOC_GROW
      Src: /src/git/pretty.c:140,1
    - Dst: COPY_ARRAY
      Src: /src/git/pretty.c:141,1
    - Dst: ARRAY_SIZE
      Src: /src/git/pretty.c:142,1
    - Dst: repo_config
      Src: /src/git/pretty.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: setup_commit_formats
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - repo_config
    - COPY_ARRAY
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void setup_commit_formats(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/pretty.c:156,1
    - Dst: istarts_with
      Src: /src/git/pretty.c:163,1
    - Dst: strlen
      Src: /src/git/pretty.c:166,1
    - Dst: find_commit_format_recursive
      Src: /src/git/pretty.c:174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - sought
    - original
    - num_redirections
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: find_commit_format_recursive
    functionSourceFile: /src/git/pretty.c
    functionUses: 1
    functionsReached:
    - find_commit_format_recursive
    - strlen
    - die
    - istarts_with
    linkageType: ''
    returnType: struct cmt_fmt_map
    signature: "struct cmt_fmt_map *find_commit_format_recursive(const char *sought,\n\t\t\t\t\t\t\tconst
      char *original,\n\t\t\t\t\t\t\tint num_redirections)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_commit_formats
      Src: /src/git/pretty.c:185,1
    - Dst: find_commit_format_recursive
      Src: /src/git/pretty.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sought
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: find_commit_format
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - find_commit_format_recursive
    - setup_commit_formats
    linkageType: ''
    returnType: struct cmt_fmt_map
    signature: struct cmt_fmt_map *find_commit_format(const char *sought)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/pretty.c:199,1
    - Dst: save_user_format
      Src: /src/git/pretty.c:200,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:204,1
    - Dst: strchr
      Src: /src/git/pretty.c:204,1
    - Dst: save_user_format
      Src: /src/git/pretty.c:205,1
    - Dst: find_commit_format
      Src: /src/git/pretty.c:209,1
    - Dst: die
      Src: /src/git/pretty.c:211,1
    - Dst: save_user_format
      Src: /src/git/pretty.c:219,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - arg
    - rev
    argTypes:
    - char*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 222
    functionName: get_commit_format
    functionSourceFile: /src/git/pretty.c
    functionUses: 3
    functionsReached:
    - die
    - find_commit_format
    - strchr
    - skip_prefix
    - save_user_format
    linkageType: ''
    returnType: void
    signature: void get_commit_format(const char *arg, struct rev_info *rev)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: get_one_line
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_one_line(const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isascii
      Src: /src/git/pretty.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: non_ascii
    functionSourceFile: /src/git/pretty.c
    functionUses: 1
    functionsReached:
    - isascii
    linkageType: ''
    returnType: int
    signature: int non_ascii(int ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: non_ascii
      Src: /src/git/pretty.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 258
    functionName: has_non_ascii
    functionSourceFile: /src/git/pretty.c
    functionUses: 1
    functionsReached:
    - non_ascii
    linkageType: ''
    returnType: int
    signature: int has_non_ascii(const char *s)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 280
    functionName: is_rfc822_special
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_rfc822_special(char ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_rfc822_special
      Src: /src/git/pretty.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 289
    functionName: needs_rfc822_quoting
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - is_rfc822_special
    linkageType: ''
    returnType: int
    signature: int needs_rfc822_quoting(const char *s, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: last_line_length
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int last_line_length(struct strbuf *sb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/pretty.c:307,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:309,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:314,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:317,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - out
    - s
    - len
    argTypes:
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 321
    functionName: add_rfc822_quoted
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strbuf_grow
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void add_rfc822_quoted(struct strbuf *out, const char *s, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: non_ascii
      Src: /src/git/pretty.c:345,1
    - Dst: isprint
      Src: /src/git/pretty.c:345,1
    - Dst: isspace
      Src: /src/git/pretty.c:353,1
    - Dst: isalnum
      Src: /src/git/pretty.c:377,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 8
    argCount: 2
    argNames:
    - ch
    - type
    argTypes:
    - char
    - enum rfc2047_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 378
    functionName: is_rfc2047_special
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - isspace
    - isprint
    - isalnum
    - non_ascii
    linkageType: ''
    returnType: int
    signature: int is_rfc2047_special(char ch, enum rfc2047_type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: non_ascii
      Src: /src/git/pretty.c:386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 393
    functionName: needs_rfc2047_encoding
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - non_ascii
    linkageType: ''
    returnType: int
    signature: int needs_rfc2047_encoding(const char *line, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: last_line_length
      Src: /src/git/pretty.c:400,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:402,1
    - Dst: strlen
      Src: /src/git/pretty.c:403,1
    - Dst: mbs_chrlen
      Src: /src/git/pretty.c:414,1
    - Dst: is_rfc2047_special
      Src: /src/git/pretty.c:415,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:431,1
    - Dst: strlen
      Src: /src/git/pretty.c:432,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:436,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - sb
    - line
    - len
    - encoding
    - type
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    - char*
    - enum rfc2047_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 440
    functionName: add_rfc2047
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - last_line_length
    - strbuf_addf
    - is_rfc2047_special
    - strlen
    - strbuf_addstr
    - mbs_chrlen
    linkageType: ''
    returnType: void
    signature: "void add_rfc2047(struct strbuf *sb, const char *line, size_t len,\n\t\t
      \      const char *encoding, enum rfc2047_type type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_timestamp
      Src: /src/git/pretty.c:449,1
    - Dst: date_overflows
      Src: /src/git/pretty.c:450,1
    - Dst: strtol
      Src: /src/git/pretty.c:454,1
    - Dst: show_date
      Src: /src/git/pretty.c:458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - ident
    - mode
    argTypes:
    - struct ident_split*
    - struct date_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 459
    functionName: show_ident_date
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strtol
    - date_overflows
    - show_date
    - parse_timestamp
    linkageType: ''
    returnType: char
    signature: "char *show_ident_date(const struct ident_split *ident,\n\t\t\t    struct
      date_mode mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:464,1
    - Dst: strbuf_add
      Src: /src/git/pretty.c:465,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - sb
    - color
    - buf
    - buflen
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 461
    functionDepth: 4
    functionLinenumber: 461
    functionLinenumberEnd: 468
    functionName: strbuf_add_with_color
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strbuf_add
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void strbuf_add_with_color(struct strbuf *sb, const char *color,\n\t\t\t\t\t
      const char *buf, size_t buflen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: want_color
      Src: /src/git/pretty.c:482,1
    - Dst: grep_next_match
      Src: /src/git/pretty.c:488,1
    - Dst: strbuf_add_with_color
      Src: /src/git/pretty.c:492,1
    - Dst: strbuf_add_with_color
      Src: /src/git/pretty.c:493,1
    - Dst: strbuf_add_with_color
      Src: /src/git/pretty.c:500,1
    - Dst: strbuf_add
      Src: /src/git/pretty.c:503,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 7
    argNames:
    - sb
    - opt
    - line
    - linelen
    - color
    - ctx
    - field
    argTypes:
    - struct strbuf*
    - struct grep_opt*
    - char*
    - size_t
    - enum git_colorbool
    - enum grep_context
    - enum grep_header_field
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 470
    functionDepth: 5
    functionLinenumber: 470
    functionLinenumberEnd: 505
    functionName: append_line_with_color
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strbuf_add_with_color
    - grep_next_match
    - want_color
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void append_line_with_color(struct strbuf *sb, struct grep_opt *opt,\n\t\t\t\t
      \  const char *line, size_t linelen,\n\t\t\t\t   enum git_colorbool color, enum
      grep_context ctx,\n\t\t\t\t   enum grep_header_field field)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ident_cmp
      Src: /src/git/pretty.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pp
    - ident
    argTypes:
    - struct pretty_print_context*
    - struct ident_split*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 515
    functionName: use_in_body_from
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - ident_cmp
    linkageType: ''
    returnType: int
    signature: "int use_in_body_from(const struct pretty_print_context *pp,\n\t\t\t
      \   const struct ident_split *ident)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/pretty.c:530,1
    - Dst: split_ident_line
      Src: /src/git/pretty.c:531,1
    - Dst: map_user
      Src: /src/git/pretty.c:540,1
    - Dst: cmit_fmt_is_mail
      Src: /src/git/pretty.c:542,1
    - Dst: use_in_body_from
      Src: /src/git/pretty.c:543,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:546,1
    - Dst: strbuf_add
      Src: /src/git/pretty.c:547,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:548,1
    - Dst: strbuf_add
      Src: /src/git/pretty.c:549,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:550,1
    - Dst: string_list_append
      Src: /src/git/pretty.c:551,1
    - Dst: strbuf_detach
      Src: /src/git/pretty.c:552,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:560,1
    - Dst: needs_rfc2047_encoding
      Src: /src/git/pretty.c:562,1
    - Dst: add_rfc2047
      Src: /src/git/pretty.c:563,1
    - Dst: needs_rfc822_quoting
      Src: /src/git/pretty.c:566,1
    - Dst: add_rfc822_quoted
      Src: /src/git/pretty.c:568,1
    - Dst: strbuf_add_wrapped_bytes
      Src: /src/git/pretty.c:569,1
    - Dst: strbuf_release
      Src: /src/git/pretty.c:571,1
    - Dst: strbuf_add_wrapped_bytes
      Src: /src/git/pretty.c:573,1
    - Dst: last_line_length
      Src: /src/git/pretty.c:578,1
    - Dst: strlen
      Src: /src/git/pretty.c:578,1
    - Dst: strlen
      Src: /src/git/pretty.c:578,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:579,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:580,1
    - Dst: strcmp
      Src: /src/git/pretty.c:586,1
    - Dst: strcmp
      Src: /src/git/pretty.c:588,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:591,1
    - Dst: strbuf_addchars
      Src: /src/git/pretty.c:593,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:595,1
    - Dst: append_line_with_color
      Src: /src/git/pretty.c:598,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:600,1
    - Dst: strbuf_release
      Src: /src/git/pretty.c:601,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:606,1
    - Dst: show_ident_date
      Src: /src/git/pretty.c:607,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:611,1
    - Dst: show_ident_date
      Src: /src/git/pretty.c:612,1
    - Dst: DATE_MODE
      Src: /src/git/pretty.c:612,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:615,1
    - Dst: show_ident_date
      Src: /src/git/pretty.c:616,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 5
    argNames:
    - pp
    - what
    - sb
    - line
    - encoding
    argTypes:
    - struct pretty_print_context*
    - char*
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 517
    functionDepth: 6
    functionLinenumber: 517
    functionLinenumberEnd: 622
    functionName: pp_user_info
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - DATE_MODE
    - strcmp
    - map_user
    - strbuf_release
    - use_in_body_from
    - strbuf_add_wrapped_bytes
    - needs_rfc2047_encoding
    - strbuf_addstr
    - append_line_with_color
    - strchrnul
    - split_ident_line
    - strbuf_addchars
    - cmit_fmt_is_mail
    - strbuf_detach
    - string_list_append
    - needs_rfc822_quoting
    - strbuf_add
    - last_line_length
    - strbuf_addch
    - strlen
    - add_rfc2047
    - add_rfc822_quoted
    - show_ident_date
    linkageType: ''
    returnType: void
    signature: "void pp_user_info(struct pretty_print_context *pp,\n\t\t  const char
      *what, struct strbuf *sb,\n\t\t  const char *line, const char *encoding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/pretty.c:627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - line
    - len_p
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 631
    functionName: is_blank_line
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int is_blank_line(const char *line, int *len_p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_one_line
      Src: /src/git/pretty.c:636,1
    - Dst: is_blank_line
      Src: /src/git/pretty.c:640,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 645
    functionName: skip_blank_lines
    functionSourceFile: /src/git/pretty.c
    functionUses: 1
    functionsReached:
    - get_one_line
    - is_blank_line
    linkageType: ''
    returnType: char
    signature: char *skip_blank_lines(const char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmit_fmt_is_mail
      Src: /src/git/pretty.c:652,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:656,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:660,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/pretty.c:662,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:664,1
    - Dst: oid_to_hex
      Src: /src/git/pretty.c:664,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:667,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - pp
    - sb
    - commit
    argTypes:
    - struct pretty_print_context*
    - struct strbuf*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 647
    functionDepth: 4
    functionLinenumber: 647
    functionLinenumberEnd: 668
    functionName: add_merge_info
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - cmit_fmt_is_mail
    - oid_to_hex
    - strbuf_addch
    - strbuf_addstr
    - strbuf_add_unique_abbrev
    linkageType: ''
    returnType: void
    signature: "void add_merge_info(const struct pretty_print_context *pp,\n\t\t\t
      \  struct strbuf *sb, const struct commit *commit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_commit_header
      Src: /src/git/pretty.c:673,1
    - Dst: xmemdupz
      Src: /src/git/pretty.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 675
    functionName: get_header
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - find_commit_header
    - xmemdupz
    linkageType: ''
    returnType: char
    signature: char *get_header(const char *msg, const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/pretty.c:684,1
    - Dst: strchr
      Src: /src/git/pretty.c:685,1
    - Dst: strchr
      Src: /src/git/pretty.c:690,1
    - Dst: strbuf_attach
      Src: /src/git/pretty.c:695,1
    - Dst: strlen
      Src: /src/git/pretty.c:695,1
    - Dst: strlen
      Src: /src/git/pretty.c:695,1
    - Dst: is_encoding_utf8
      Src: /src/git/pretty.c:696,1
    - Dst: strbuf_remove
      Src: /src/git/pretty.c:698,1
    - Dst: strbuf_splice
      Src: /src/git/pretty.c:701,1
    - Dst: strlen
      Src: /src/git/pretty.c:701,1
    - Dst: strlen
      Src: /src/git/pretty.c:702,1
    - Dst: strlen
      Src: /src/git/pretty.c:703,1
    - Dst: strbuf_detach
      Src: /src/git/pretty.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - encoding
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 677
    functionDepth: 4
    functionLinenumber: 677
    functionLinenumberEnd: 706
    functionName: replace_encoding_header
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strbuf_remove
    - is_encoding_utf8
    - strbuf_attach
    - strchr
    - starts_with
    - strlen
    - strbuf_splice
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *replace_encoding_header(char *buf, const char *encoding)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_buffer
      Src: /src/git/pretty.c:716,1
    - Dst: get_header
      Src: /src/git/pretty.c:721,1
    - Dst: get_header
      Src: /src/git/pretty.c:724,1
    - Dst: same_encoding
      Src: /src/git/pretty.c:728,1
    - Dst: get_cached_commit_buffer
      Src: /src/git/pretty.c:744,1
    - Dst: xstrdup
      Src: /src/git/pretty.c:745,1
    - Dst: reencode_string
      Src: /src/git/pretty.c:756,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/pretty.c:758,1
    - Dst: replace_encoding_header
      Src: /src/git/pretty.c:766,1
    - Dst: free
      Src: /src/git/pretty.c:769,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - r
    - commit
    - commit_encoding
    - output_encoding
    argTypes:
    - struct repository*
    - struct commit*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 708
    functionDepth: 5
    functionLinenumber: 708
    functionLinenumberEnd: 775
    functionName: repo_logmsg_reencode
    functionSourceFile: /src/git/pretty.c
    functionUses: 11
    functionsReached:
    - replace_encoding_header
    - get_header
    - repo_unuse_commit_buffer
    - repo_get_commit_buffer
    - same_encoding
    - reencode_string
    - free
    - xstrdup
    - get_cached_commit_buffer
    linkageType: ''
    returnType: char
    signature: "char *repo_logmsg_reencode(struct repository *r,\n\t\t\t\t const struct
      commit *commit,\n\t\t\t\t char **commit_encoding,\n\t\t\t\t const char *output_encoding)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/pretty.c:782,1
    - Dst: read_mailmap
      Src: /src/git/pretty.c:783,1
    - Dst: map_user
      Src: /src/git/pretty.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - email
    - email_len
    - name
    - name_len
    argTypes:
    - char**
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 777
    functionDepth: 7
    functionLinenumber: 777
    functionLinenumberEnd: 786
    functionName: mailmap_name
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - read_mailmap
    - map_user
    - CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int mailmap_name(const char **email, size_t *email_len,\n\t\t\tconst
      char **name, size_t *name_len)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: split_ident_line
      Src: /src/git/pretty.c:798,1
    - Dst: mailmap_name
      Src: /src/git/pretty.c:807,1
    - Dst: strbuf_add
      Src: /src/git/pretty.c:809,1
    - Dst: strbuf_add
      Src: /src/git/pretty.c:813,1
    - Dst: memchr
      Src: /src/git/pretty.c:817,1
    - Dst: strbuf_add
      Src: /src/git/pretty.c:820,1
    - Dst: strbuf_add
      Src: /src/git/pretty.c:828,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:834,1
    - Dst: show_ident_date
      Src: /src/git/pretty.c:834,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:837,1
    - Dst: show_ident_date
      Src: /src/git/pretty.c:837,1
    - Dst: DATE_MODE
      Src: /src/git/pretty.c:837,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:840,1
    - Dst: show_ident_date
      Src: /src/git/pretty.c:840,1
    - Dst: DATE_MODE
      Src: /src/git/pretty.c:840,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:843,1
    - Dst: show_ident_date
      Src: /src/git/pretty.c:843,1
    - Dst: DATE_MODE
      Src: /src/git/pretty.c:843,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:846,1
    - Dst: show_ident_date
      Src: /src/git/pretty.c:846,1
    - Dst: DATE_MODE
      Src: /src/git/pretty.c:846,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:849,1
    - Dst: show_ident_date
      Src: /src/git/pretty.c:849,1
    - Dst: DATE_MODE
      Src: /src/git/pretty.c:849,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:852,1
    - Dst: show_ident_date
      Src: /src/git/pretty.c:852,1
    - Dst: DATE_MODE
      Src: /src/git/pretty.c:852,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 5
    argNames:
    - sb
    - part
    - msg
    - len
    - dmode
    argTypes:
    - struct strbuf*
    - char
    - char*
    - int
    - struct date_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 788
    functionDepth: 8
    functionLinenumber: 788
    functionLinenumberEnd: 867
    functionName: format_person_part
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - memchr
    - mailmap_name
    - DATE_MODE
    - strbuf_addstr
    - show_ident_date
    - split_ident_line
    - strbuf_add
    linkageType: ''
    returnType: size_t
    signature: "size_t format_person_part(struct strbuf *sb, char part,\n\t\t\t\t
      const char *msg, int len,\n\t\t\t\t struct date_mode dmode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/pretty.c:928,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:931,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct format_commit_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 939
    functionName: parse_commit_header
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: void
    signature: void parse_commit_header(struct format_commit_context *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 945
    functionName: istitlechar
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int istitlechar(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istitlechar
      Src: /src/git/pretty.c:955,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:957,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:959,1
    - Dst: strbuf_remove
      Src: /src/git/pretty.c:973,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - sb
    - msg
    - len
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 947
    functionDepth: 4
    functionLinenumber: 947
    functionLinenumberEnd: 974
    functionName: format_sanitized_subject
    functionSourceFile: /src/git/pretty.c
    functionUses: 1
    functionsReached:
    - strbuf_remove
    - istitlechar
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void format_sanitized_subject(struct strbuf *sb, const char *msg, size_t
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_one_line
      Src: /src/git/pretty.c:983,1
    - Dst: is_blank_line
      Src: /src/git/pretty.c:986,1
    - Dst: strbuf_grow
      Src: /src/git/pretty.c:991,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:993,1
    - Dst: strbuf_add
      Src: /src/git/pretty.c:994,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - sb
    - msg
    - line_separator
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 976
    functionDepth: 4
    functionLinenumber: 976
    functionLinenumberEnd: 998
    functionName: format_subject
    functionSourceFile: /src/git/pretty.c
    functionUses: 1
    functionsReached:
    - is_blank_line
    - strbuf_addstr
    - strbuf_grow
    - get_one_line
    - strbuf_add
    linkageType: ''
    returnType: char
    signature: "char *format_subject(struct strbuf *sb, const char *msg,\n\t\t\t   const
      char *line_separator)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_blank_lines
      Src: /src/git/pretty.c:1005,1
    - Dst: format_subject
      Src: /src/git/pretty.c:1008,1
    - Dst: skip_blank_lines
      Src: /src/git/pretty.c:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct format_commit_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1000
    functionDepth: 5
    functionLinenumber: 1000
    functionLinenumberEnd: 1013
    functionName: parse_commit_message
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - format_subject
    - skip_blank_lines
    linkageType: ''
    returnType: void
    signature: void parse_commit_message(struct format_commit_context *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/pretty.c:1021,1
    - Dst: strbuf_add_wrapped_text
      Src: /src/git/pretty.c:1022,1
    - Dst: cast_size_t_to_int
      Src: /src/git/pretty.c:1023,1
    - Dst: cast_size_t_to_int
      Src: /src/git/pretty.c:1024,1
    - Dst: cast_size_t_to_int
      Src: /src/git/pretty.c:1025,1
    - Dst: strbuf_swap
      Src: /src/git/pretty.c:1026,1
    - Dst: strbuf_release
      Src: /src/git/pretty.c:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - sb
    - pos
    - width
    - indent1
    - indent2
    argTypes:
    - struct strbuf*
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1028
    functionName: strbuf_wrap
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - cast_size_t_to_int
    - strbuf_add_wrapped_text
    - strbuf_swap
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void strbuf_wrap(struct strbuf *sb, size_t pos,\n\t\t\tsize_t width,
      size_t indent1, size_t indent2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_wrap
      Src: /src/git/pretty.c:1039,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - sb
    - c
    - new_width
    - new_indent1
    - new_indent2
    argTypes:
    - struct strbuf*
    - struct format_commit_context*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1030
    functionDepth: 4
    functionLinenumber: 1030
    functionLinenumberEnd: 1044
    functionName: rewrap_message_tail
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strbuf_wrap
    linkageType: ''
    returnType: void
    signature: "void rewrap_message_tail(struct strbuf *sb,\n\t\t\t\tstruct format_commit_context
      *c,\n\t\t\t\tsize_t new_width, size_t new_indent1,\n\t\t\t\tsize_t new_indent2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_reflog_ident
      Src: /src/git/pretty.c:1056,1
    - Dst: format_person_part
      Src: /src/git/pretty.c:1060,1
    - Dst: strlen
      Src: /src/git/pretty.c:1060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - sb
    - part
    - log
    - dmode
    argTypes:
    - struct strbuf*
    - char
    - struct reflog_walk_info*
    - struct date_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1046
    functionDepth: 9
    functionLinenumber: 1046
    functionLinenumberEnd: 1061
    functionName: format_reflog_person
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - get_reflog_ident
    - format_person_part
    - strlen
    linkageType: ''
    returnType: int
    signature: "int format_reflog_person(struct strbuf *sb,\n\t\t\t\tchar part,\n\t\t\t\tstruct
      reflog_walk_info *log,\n\t\t\t\tstruct date_mode dmode)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/pretty.c:1072,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1078,1
    - Dst: want_color
      Src: /src/git/pretty.c:1079,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1081,1
    - Dst: want_color
      Src: /src/git/pretty.c:1085,1
    - Dst: color_parse_mem
      Src: /src/git/pretty.c:1089,1
    - Dst: die
      Src: /src/git/pretty.c:1090,1
    - Dst: _
      Src: /src/git/pretty.c:1090,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1091,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1100,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1102,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1104,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1106,1
    - Dst: want_color
      Src: /src/git/pretty.c:1109,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1110,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - sb
    - placeholder
    - c
    argTypes:
    - struct strbuf*
    - char*
    - struct format_commit_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1063
    functionDepth: 4
    functionLinenumber: 1063
    functionLinenumberEnd: 1113
    functionName: parse_color
    functionSourceFile: /src/git/pretty.c
    functionUses: 1
    functionsReached:
    - die
    - strchr
    - strbuf_addstr
    - _
    - skip_prefix
    - color_parse_mem
    - want_color
    linkageType: ''
    returnType: size_t
    signature: "size_t parse_color(struct strbuf *sb, /* in UTF-8 */\n\t\t\t  const
      char *placeholder,\n\t\t\t  struct format_commit_context *c)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/git/pretty.c:1148,1
    - Dst: strtol
      Src: /src/git/pretty.c:1153,1
    - Dst: term_columns
      Src: /src/git/pretty.c:1167,1
    - Dst: strchr
      Src: /src/git/pretty.c:1176,1
    - Dst: starts_with
      Src: /src/git/pretty.c:1179,1
    - Dst: starts_with
      Src: /src/git/pretty.c:1181,1
    - Dst: starts_with
      Src: /src/git/pretty.c:1183,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 2
    argNames:
    - placeholder
    - c
    argTypes:
    - char*
    - struct format_commit_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1193
    functionName: parse_padding_placeholder
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - term_columns
    - starts_with
    - strchr
    - strcspn
    - strtol
    linkageType: ''
    returnType: size_t
    signature: "size_t parse_padding_placeholder(const char *placeholder,\n\t\t\t\t\tstruct
      format_commit_context *c)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1201,1
    - Dst: strcspn
      Src: /src/git/pretty.c:1206,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - to_parse
    - candidate
    - end
    - valuestart
    - valuelen
    argTypes:
    - char*
    - char*
    - char**
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1224
    functionName: match_placeholder_arg_value
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - strcspn
    linkageType: ''
    returnType: int
    signature: "int match_placeholder_arg_value(const char *to_parse, const char *candidate,\n\t\t\t\t
      \      const char **end, const char **valuestart,\n\t\t\t\t       size_t *valuelen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: match_placeholder_arg_value
      Src: /src/git/pretty.c:1234,1
    - Dst: xstrndup
      Src: /src/git/pretty.c:1242,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/pretty.c:1243,1
    - Dst: free
      Src: /src/git/pretty.c:1244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - to_parse
    - candidate
    - end
    - val
    argTypes:
    - char*
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1226
    functionDepth: 5
    functionLinenumber: 1226
    functionLinenumberEnd: 1252
    functionName: match_placeholder_bool_arg
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - free
    - match_placeholder_arg_value
    - git_parse_maybe_bool
    - xstrndup
    linkageType: ''
    returnType: int
    signature: "int match_placeholder_bool_arg(const char *to_parse, const char *candidate,\n\t\t\t\t
      \     const char **end, int *val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/git/pretty.c:1261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - key
    - ud
    argTypes:
    - struct strbuf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1265
    functionName: format_trailer_match_cb
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int format_trailer_match_cb(const struct strbuf *key, void *ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/git/pretty.c:1261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1263
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/pretty.c
    functionUses: 28
    functionsReached:
    - strncasecmp
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item (item, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrndup
      Src: /src/git/pretty.c:1270,1
    - Dst: strbuf_reset
      Src: /src/git/pretty.c:1273,1
    - Dst: strbuf_expand_step
      Src: /src/git/pretty.c:1274,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1277,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:1278,1
    - Dst: strbuf_expand_literal
      Src: /src/git/pretty.c:1279,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:1282,1
    - Dst: free
      Src: /src/git/pretty.c:1284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - sb
    - argval
    - arglen
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1267
    functionDepth: 4
    functionLinenumber: 1267
    functionLinenumberEnd: 1286
    functionName: expand_string_arg
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addch
    - strbuf_expand_step
    - xstrndup
    - strbuf_expand_literal
    - free
    - skip_prefix
    linkageType: ''
    returnType: struct strbuf
    signature: "struct strbuf *expand_string_arg(struct strbuf *sb,\n\t\t\t\t\tconst
      char *argval, size_t arglen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: match_placeholder_arg_value
      Src: /src/git/pretty.c:1302,1
    - Dst: string_list_append
      Src: /src/git/pretty.c:1310,1
    - Dst: match_placeholder_arg_value
      Src: /src/git/pretty.c:1315,1
    - Dst: expand_string_arg
      Src: /src/git/pretty.c:1316,1
    - Dst: match_placeholder_arg_value
      Src: /src/git/pretty.c:1317,1
    - Dst: expand_string_arg
      Src: /src/git/pretty.c:1318,1
    - Dst: match_placeholder_bool_arg
      Src: /src/git/pretty.c:1319,1
    - Dst: match_placeholder_bool_arg
      Src: /src/git/pretty.c:1320,1
    - Dst: match_placeholder_bool_arg
      Src: /src/git/pretty.c:1321,1
    - Dst: match_placeholder_bool_arg
      Src: /src/git/pretty.c:1322,1
    - Dst: strcspn
      Src: /src/git/pretty.c:1324,1
    - Dst: xstrndup
      Src: /src/git/pretty.c:1325,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 6
    argNames:
    - opts
    - filter_list
    - sepbuf
    - kvsepbuf
    - arg
    - invalid_arg
    argTypes:
    - struct process_trailer_options*
    - struct string_list*
    - struct strbuf*
    - struct strbuf*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1288
    functionDepth: 6
    functionLinenumber: 1288
    functionLinenumberEnd: 1331
    functionName: format_set_trailers_options
    functionSourceFile: /src/git/pretty.c
    functionUses: 1
    functionsReached:
    - expand_string_arg
    - match_placeholder_bool_arg
    - xstrndup
    - match_placeholder_arg_value
    - string_list_append
    - strcspn
    linkageType: ''
    returnType: int
    signature: "int format_set_trailers_options(struct process_trailer_options *opts,\n\t\t\t\tstruct
      string_list *filter_list,\n\t\t\t\tstruct strbuf *sepbuf,\n\t\t\t\tstruct strbuf
      *kvsepbuf,\n\t\t\t\tconst char **arg,\n\t\t\t\tchar **invalid_arg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/pretty.c:1357,1
    - Dst: match_placeholder_bool_arg
      Src: /src/git/pretty.c:1360,1
    - Dst: strvec_pushf
      Src: /src/git/pretty.c:1362,1
    - Dst: strvec_pushf
      Src: /src/git/pretty.c:1364,1
    - Dst: match_placeholder_arg_value
      Src: /src/git/pretty.c:1369,1
    - Dst: strtol
      Src: /src/git/pretty.c:1374,1
    - Dst: strvec_pushf
      Src: /src/git/pretty.c:1377,1
    - Dst: match_placeholder_arg_value
      Src: /src/git/pretty.c:1382,1
    - Dst: strvec_pushf
      Src: /src/git/pretty.c:1386,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - start
    - args
    argTypes:
    - char*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1333
    functionDepth: 6
    functionLinenumber: 1333
    functionLinenumberEnd: 1397
    functionName: parse_describe_args
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - match_placeholder_bool_arg
    - match_placeholder_arg_value
    - strtol
    - strvec_pushf
    linkageType: ''
    returnType: size_t
    signature: size_t parse_describe_args(const char *start, struct strvec *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_placeholder_arg_value
      Src: /src/git/pretty.c:1407,1
    - Dst: expand_string_arg
      Src: /src/git/pretty.c:1410,1
    - Dst: strbuf_detach
      Src: /src/git/pretty.c:1411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg
    - name
    - opt
    argTypes:
    - char**
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1400
    functionDepth: 5
    functionLinenumber: 1400
    functionLinenumberEnd: 1415
    functionName: parse_decoration_option
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - match_placeholder_arg_value
    - expand_string_arg
    - strbuf_detach
    linkageType: ''
    returnType: int
    signature: "int parse_decoration_option(const char **arg,\n\t\t\t\t   const char
      *name,\n\t\t\t\t   char **opt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_decoration_option
      Src: /src/git/pretty.c:1420,1
    - Dst: parse_decoration_option
      Src: /src/git/pretty.c:1421,1
    - Dst: parse_decoration_option
      Src: /src/git/pretty.c:1422,1
    - Dst: parse_decoration_option
      Src: /src/git/pretty.c:1423,1
    - Dst: parse_decoration_option
      Src: /src/git/pretty.c:1424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - arg
    - opts
    argTypes:
    - char**
    - struct decoration_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1417
    functionDepth: 6
    functionLinenumber: 1417
    functionLinenumberEnd: 1426
    functionName: parse_decoration_options
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - parse_decoration_option
    linkageType: ''
    returnType: void
    signature: "void parse_decoration_options(const char **arg,\n\t\t\t\t     struct
      decoration_options *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/pretty.c:1430,1
    - Dst: free
      Src: /src/git/pretty.c:1431,1
    - Dst: free
      Src: /src/git/pretty.c:1432,1
    - Dst: free
      Src: /src/git/pretty.c:1433,1
    - Dst: free
      Src: /src/git/pretty.c:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct decoration_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1435
    functionName: free_decoration_options
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_decoration_options(const struct decoration_options *opts)
  - BBCount: 94
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_expand_literal
      Src: /src/git/pretty.c:1450,1
    - Dst: starts_with
      Src: /src/git/pretty.c:1456,1
    - Dst: want_color
      Src: /src/git/pretty.c:1458,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1459,1
    - Dst: parse_color
      Src: /src/git/pretty.c:1462,1
    - Dst: strchr
      Src: /src/git/pretty.c:1477,1
    - Dst: strtoul
      Src: /src/git/pretty.c:1481,1
    - Dst: strtoul
      Src: /src/git/pretty.c:1483,1
    - Dst: strtoul
      Src: /src/git/pretty.c:1485,1
    - Dst: rewrap_message_tail
      Src: /src/git/pretty.c:1502,1
    - Dst: parse_padding_placeholder
      Src: /src/git/pretty.c:1509,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1512,1
    - Dst: strvec_push
      Src: /src/git/pretty.c:1526,1
    - Dst: parse_describe_args
      Src: /src/git/pretty.c:1530,1
    - Dst: child_process_clear
      Src: /src/git/pretty.c:1534,1
    - Dst: strvec_push
      Src: /src/git/pretty.c:1538,1
    - Dst: oid_to_hex
      Src: /src/git/pretty.c:1538,1
    - Dst: pipe_command
      Src: /src/git/pretty.c:1539,1
    - Dst: strbuf_rtrim
      Src: /src/git/pretty.c:1540,1
    - Dst: strbuf_addbuf
      Src: /src/git/pretty.c:1541,1
    - Dst: strbuf_release
      Src: /src/git/pretty.c:1542,1
    - Dst: strbuf_release
      Src: /src/git/pretty.c:1543,1
    - Dst: parse_object
      Src: /src/git/pretty.c:1549,1
    - Dst: starts_with
      Src: /src/git/pretty.c:1551,1
    - Dst: die
      Src: /src/git/pretty.c:1553,1
    - Dst: _
      Src: /src/git/pretty.c:1553,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:1554,1
    - Dst: decimal_width
      Src: /src/git/pretty.c:1554,1
    - Dst: starts_with
      Src: /src/git/pretty.c:1559,1
    - Dst: die
      Src: /src/git/pretty.c:1561,1
    - Dst: _
      Src: /src/git/pretty.c:1561,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:1562,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1568,1
    - Dst: diff_get_color
      Src: /src/git/pretty.c:1568,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1569,1
    - Dst: oid_to_hex
      Src: /src/git/pretty.c:1569,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1570,1
    - Dst: diff_get_color
      Src: /src/git/pretty.c:1570,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1573,1
    - Dst: diff_get_color
      Src: /src/git/pretty.c:1573,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/pretty.c:1574,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1576,1
    - Dst: diff_get_color
      Src: /src/git/pretty.c:1576,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1579,1
    - Dst: oid_to_hex
      Src: /src/git/pretty.c:1579,1
    - Dst: get_commit_tree_oid
      Src: /src/git/pretty.c:1579,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/pretty.c:1582,1
    - Dst: get_commit_tree_oid
      Src: /src/git/pretty.c:1583,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:1589,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1590,1
    - Dst: oid_to_hex
      Src: /src/git/pretty.c:1590,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:1596,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/pretty.c:1597,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1602,1
    - Dst: get_revision_mark
      Src: /src/git/pretty.c:1602,1
    - Dst: format_decorations
      Src: /src/git/pretty.c:1605,1
    - Dst: format_decorations
      Src: /src/git/pretty.c:1614,1
    - Dst: revision_sources_at
      Src: /src/git/pretty.c:1620,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1623,1
    - Dst: get_reflog_selector
      Src: /src/git/pretty.c:1630,1
    - Dst: get_reflog_message
      Src: /src/git/pretty.c:1638,1
    - Dst: format_reflog_person
      Src: /src/git/pretty.c:1644,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1652,1
    - Dst: check_commit_signature
      Src: /src/git/pretty.c:1660,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1664,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:1672,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:1675,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:1685,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1690,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1694,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1698,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1702,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1705,1
    - Dst: gpg_trust_level_to_str
      Src: /src/git/pretty.c:1705,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1713,1
    - Dst: parse_decoration_options
      Src: /src/git/pretty.c:1719,1
    - Dst: format_decorations
      Src: /src/git/pretty.c:1722,1
    - Dst: free_decoration_options
      Src: /src/git/pretty.c:1726,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/pretty.c:1733,1
    - Dst: parse_commit_header
      Src: /src/git/pretty.c:1735,1
    - Dst: format_person_part
      Src: /src/git/pretty.c:1740,1
    - Dst: format_person_part
      Src: /src/git/pretty.c:1744,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1749,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1753,1
    - Dst: parse_commit_message
      Src: /src/git/pretty.c:1759,1
    - Dst: format_subject
      Src: /src/git/pretty.c:1763,1
    - Dst: strchrnul
      Src: /src/git/pretty.c:1766,1
    - Dst: format_sanitized_subject
      Src: /src/git/pretty.c:1767,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:1770,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1774,1
    - Dst: format_set_trailers_options
      Src: /src/git/pretty.c:1785,1
    - Dst: format_trailers_from_commit
      Src: /src/git/pretty.c:1789,1
    - Dst: string_list_clear
      Src: /src/git/pretty.c:1793,1
    - Dst: strbuf_release
      Src: /src/git/pretty.c:1794,1
    - Dst: strbuf_release
      Src: /src/git/pretty.c:1795,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 271
    argCount: 3
    argNames:
    - sb
    - placeholder
    - context
    argTypes:
    - struct strbuf*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1437
    functionDepth: 10
    functionLinenumber: 1437
    functionLinenumberEnd: 1800
    functionName: format_commit_one
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - format_set_trailers_options
    - format_person_part
    - strbuf_addf
    - strchr
    - format_reflog_person
    - strbuf_addbuf
    - parse_describe_args
    - strbuf_release
    - die
    - parse_decoration_options
    - child_process_clear
    - gpg_trust_level_to_str
    - parse_color
    - strbuf_expand_literal
    - format_sanitized_subject
    - strbuf_addstr
    - diff_get_color
    - strchrnul
    - get_revision_mark
    - free_decoration_options
    - strbuf_rtrim
    - strtoul
    - string_list_clear
    - oid_to_hex
    - parse_object
    - decimal_width
    - pipe_command
    - format_subject
    - repo_logmsg_reencode
    - format_trailers_from_commit
    - rewrap_message_tail
    - _
    - format_decorations
    - parse_padding_placeholder
    - revision_sources_at
    - skip_prefix
    - check_commit_signature
    - want_color
    - get_reflog_selector
    - starts_with
    - strbuf_addch
    - parse_commit_header
    - get_commit_tree_oid
    - parse_commit_message
    - get_reflog_message
    - strbuf_add_unique_abbrev
    linkageType: ''
    returnType: size_t
    signature: "size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */\n\t\t\t\tconst
      char *placeholder,\n\t\t\t\tvoid *context)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/pretty.c:1811,1
    - Dst: utf8_strnwidth
      Src: /src/git/pretty.c:1815,1
    - Dst: strlen
      Src: /src/git/pretty.c:1815,1
    - Dst: format_commit_one
      Src: /src/git/pretty.c:1821,1
    - Dst: utf8_strnwidth
      Src: /src/git/pretty.c:1833,1
    - Dst: display_mode_esc_sequence_len
      Src: /src/git/pretty.c:1851,1
    - Dst: strbuf_insert
      Src: /src/git/pretty.c:1857,1
    - Dst: strbuf_setlen
      Src: /src/git/pretty.c:1860,1
    - Dst: strbuf_utf8_replace
      Src: /src/git/pretty.c:1867,1
    - Dst: strbuf_utf8_replace
      Src: /src/git/pretty.c:1872,1
    - Dst: strbuf_utf8_replace
      Src: /src/git/pretty.c:1878,1
    - Dst: strbuf_addbuf
      Src: /src/git/pretty.c:1885,1
    - Dst: strbuf_addchars
      Src: /src/git/pretty.c:1897,1
    - Dst: memcpy
      Src: /src/git/pretty.c:1898,1
    - Dst: strbuf_release
      Src: /src/git/pretty.c:1901,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 66
    argCount: 3
    argNames:
    - sb
    - placeholder
    - c
    argTypes:
    - struct strbuf*
    - char*
    - struct format_commit_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1802
    functionDepth: 11
    functionLinenumber: 1802
    functionLinenumberEnd: 1904
    functionName: format_and_pad_commit
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    - strbuf_release
    - display_mode_esc_sequence_len
    - strrchr
    - strbuf_setlen
    - strbuf_insert
    - memcpy
    - format_commit_one
    - strlen
    - strbuf_addbuf
    - utf8_strnwidth
    - strbuf_utf8_replace
    linkageType: ''
    returnType: size_t
    signature: "size_t format_and_pad_commit(struct strbuf *sb, /* in UTF-8 */\n\t\t\t\t
      \   const char *placeholder,\n\t\t\t\t    struct format_commit_context *c)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: format_commit_one
      Src: /src/git/pretty.c:1948,1
    - Dst: format_and_pad_commit
      Src: /src/git/pretty.c:1950,1
    - Dst: strbuf_setlen
      Src: /src/git/pretty.c:1956,1
    - Dst: strbuf_insertstr
      Src: /src/git/pretty.c:1959,1
    - Dst: strbuf_insertstr
      Src: /src/git/pretty.c:1961,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 3
    argNames:
    - sb
    - placeholder
    - context
    argTypes:
    - struct strbuf*
    - char*
    - struct format_commit_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1906
    functionDepth: 12
    functionLinenumber: 1906
    functionLinenumberEnd: 1964
    functionName: format_commit_item
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - format_and_pad_commit
    - strbuf_insertstr
    - format_commit_one
    - strbuf_setlen
    linkageType: ''
    returnType: size_t
    signature: "size_t format_commit_item(struct strbuf *sb, /* in UTF-8 */\n\t\t\t\t
      const char *placeholder,\n\t\t\t\t struct format_commit_context *context)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/pretty.c:1973,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:1975,1
    - Dst: starts_with
      Src: /src/git/pretty.c:1993,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - fmt
    - w
    argTypes:
    - char*
    - struct userformat_want*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1966
    functionDepth: 1
    functionLinenumber: 1966
    functionLinenumberEnd: 1998
    functionName: userformat_find_requirements
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - strchr
    - starts_with
    linkageType: ''
    returnType: void
    signature: void userformat_find_requirements(const char *fmt, struct userformat_want
      *w)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_expand_step
      Src: /src/git/pretty.c:2014,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:2017,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2018,1
    - Dst: format_commit_item
      Src: /src/git/pretty.c:2019,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2022,1
    - Dst: rewrap_message_tail
      Src: /src/git/pretty.c:2024,1
    - Dst: same_encoding
      Src: /src/git/pretty.c:2032,1
    - Dst: same_encoding
      Src: /src/git/pretty.c:2036,1
    - Dst: reencode_string_len
      Src: /src/git/pretty.c:2042,1
    - Dst: strbuf_attach
      Src: /src/git/pretty.c:2045,1
    - Dst: free
      Src: /src/git/pretty.c:2048,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/pretty.c:2049,1
    - Dst: signature_check_clear
      Src: /src/git/pretty.c:2050,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - r
    - commit
    - format
    - sb
    - pretty_ctx
    argTypes:
    - struct repository*
    - struct commit*
    - char*
    - struct strbuf*
    - struct pretty_print_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2000
    functionDepth: 13
    functionLinenumber: 2000
    functionLinenumberEnd: 2051
    functionName: repo_format_commit_message
    functionSourceFile: /src/git/pretty.c
    functionUses: 5
    functionsReached:
    - reencode_string_len
    - strbuf_attach
    - repo_unuse_commit_buffer
    - strbuf_addch
    - strbuf_expand_step
    - same_encoding
    - rewrap_message_tail
    - free
    - signature_check_clear
    - skip_prefix
    - format_commit_item
    linkageType: ''
    returnType: void
    signature: "void repo_format_commit_message(struct repository *r,\n\t\t\t\tconst
      struct commit *commit,\n\t\t\t\tconst char *format, struct strbuf *sb,\n\t\t\t\tconst
      struct pretty_print_context *pretty_ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_one_line
      Src: /src/git/pretty.c:2063,1
    - Dst: strbuf_add
      Src: /src/git/pretty.c:2074,1
    - Dst: starts_with
      Src: /src/git/pretty.c:2078,1
    - Dst: die
      Src: /src/git/pretty.c:2080,1
    - Dst: commit_list_count
      Src: /src/git/pretty.c:2085,1
    - Dst: strbuf_grow
      Src: /src/git/pretty.c:2087,1
    - Dst: add_merge_info
      Src: /src/git/pretty.c:2088,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:2097,1
    - Dst: strbuf_grow
      Src: /src/git/pretty.c:2098,1
    - Dst: pp_user_info
      Src: /src/git/pretty.c:2099,1
    - Dst: skip_prefix
      Src: /src/git/pretty.c:2101,1
    - Dst: strbuf_grow
      Src: /src/git/pretty.c:2103,1
    - Dst: pp_user_info
      Src: /src/git/pretty.c:2104,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 5
    argNames:
    - pp
    - encoding
    - commit
    - msg_p
    - sb
    argTypes:
    - struct pretty_print_context*
    - char*
    - struct commit*
    - char**
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2053
    functionDepth: 7
    functionLinenumber: 2053
    functionLinenumberEnd: 2107
    functionName: pp_header
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - die
    - starts_with
    - pp_user_info
    - strbuf_grow
    - add_merge_info
    - get_one_line
    - skip_prefix
    - strbuf_add
    - commit_list_count
    linkageType: ''
    returnType: void
    signature: "void pp_header(struct pretty_print_context *pp,\n\t\t      const char
      *encoding,\n\t\t      const struct commit *commit,\n\t\t      const char **msg_p,\n\t\t
      \     struct strbuf *sb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/pretty.c:2118,1
    - Dst: format_subject
      Src: /src/git/pretty.c:2119,1
    - Dst: strbuf_grow
      Src: /src/git/pretty.c:2122,1
    - Dst: fmt_output_email_subject
      Src: /src/git/pretty.c:2123,1
    - Dst: needs_rfc2047_encoding
      Src: /src/git/pretty.c:2125,1
    - Dst: add_rfc2047
      Src: /src/git/pretty.c:2126,1
    - Dst: strbuf_add_wrapped_bytes
      Src: /src/git/pretty.c:2129,1
    - Dst: last_line_length
      Src: /src/git/pretty.c:2130,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2131,1
    - Dst: has_non_ascii
      Src: /src/git/pretty.c:2136,1
    - Dst: strbuf_addf
      Src: /src/git/pretty.c:2148,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:2151,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2154,1
    - Dst: strbuf_addstr
      Src: /src/git/pretty.c:2159,1
    - Dst: free
      Src: /src/git/pretty.c:2160,1
    - Dst: string_list_clear
      Src: /src/git/pretty.c:2162,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2163,1
    - Dst: strbuf_release
      Src: /src/git/pretty.c:2166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 5
    argNames:
    - pp
    - msg_p
    - sb
    - encoding
    - need_8bit_cte
    argTypes:
    - struct pretty_print_context*
    - char**
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2109
    functionDepth: 5
    functionLinenumber: 2109
    functionLinenumberEnd: 2167
    functionName: pp_email_subject
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - fmt_output_email_subject
    - has_non_ascii
    - string_list_clear
    - last_line_length
    - strbuf_release
    - strbuf_add_wrapped_bytes
    - needs_rfc2047_encoding
    - strbuf_addf
    - strbuf_addch
    - format_subject
    - add_rfc2047
    - strbuf_grow
    - strbuf_addstr
    - free
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: "void pp_email_subject(struct pretty_print_context *pp,\n\t\t      const
      char **msg_p,\n\t\t      struct strbuf *sb,\n\t\t      const char *encoding,\n\t\t
      \     int need_8bit_cte)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_width
      Src: /src/git/pretty.c:2175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2181
    functionName: pp_utf8_width
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - utf8_width
    linkageType: ''
    returnType: int
    signature: int pp_utf8_width(const char *start, const char *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/pretty.c:2189,1
    - Dst: pp_utf8_width
      Src: /src/git/pretty.c:2190,1
    - Dst: append_line_with_color
      Src: /src/git/pretty.c:2202,1
    - Dst: strbuf_addchars
      Src: /src/git/pretty.c:2207,1
    - Dst: append_line_with_color
      Src: /src/git/pretty.c:2219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - sb
    - opt
    - color
    - tabwidth
    - line
    - linelen
    argTypes:
    - struct strbuf*
    - struct grep_opt*
    - enum git_colorbool
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2183
    functionDepth: 6
    functionLinenumber: 2183
    functionLinenumberEnd: 2221
    functionName: strbuf_add_tabexpand
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - append_line_with_color
    - strbuf_addchars
    - memchr
    - pp_utf8_width
    linkageType: ''
    returnType: void
    signature: "void strbuf_add_tabexpand(struct strbuf *sb, struct grep_opt *opt,\n\t\t\t\t
      enum git_colorbool color, int tabwidth, const char *line,\n\t\t\t\t int linelen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addchars
      Src: /src/git/pretty.c:2234,1
    - Dst: strbuf_add_tabexpand
      Src: /src/git/pretty.c:2236,1
    - Dst: append_line_with_color
      Src: /src/git/pretty.c:2239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - pp
    - sb
    - indent
    - line
    - linelen
    argTypes:
    - struct pretty_print_context*
    - struct strbuf*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2228
    functionDepth: 7
    functionLinenumber: 2228
    functionLinenumberEnd: 2242
    functionName: pp_handle_indent
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - append_line_with_color
    - strbuf_addchars
    - strbuf_add_tabexpand
    linkageType: ''
    returnType: void
    signature: "void pp_handle_indent(struct pretty_print_context *pp,\n\t\t\t     struct
      strbuf *sb, int indent,\n\t\t\t     const char *line, int linelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/pretty.c:2251,1
    - Dst: strspn
      Src: /src/git/pretty.c:2251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2252
    functionName: is_mboxrd_from
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - strspn
    - starts_with
    linkageType: ''
    returnType: int
    signature: int is_mboxrd_from(const char *line, int len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_one_line
      Src: /src/git/pretty.c:2264,1
    - Dst: is_blank_line
      Src: /src/git/pretty.c:2270,1
    - Dst: strbuf_grow
      Src: /src/git/pretty.c:2278,1
    - Dst: pp_handle_indent
      Src: /src/git/pretty.c:2280,1
    - Dst: strbuf_add_tabexpand
      Src: /src/git/pretty.c:2282,1
    - Dst: is_mboxrd_from
      Src: /src/git/pretty.c:2287,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2288,1
    - Dst: append_line_with_color
      Src: /src/git/pretty.c:2290,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2294,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 4
    argNames:
    - pp
    - msg_p
    - sb
    - indent
    argTypes:
    - struct pretty_print_context*
    - char**
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2254
    functionDepth: 8
    functionLinenumber: 2254
    functionLinenumberEnd: 2296
    functionName: pp_remainder
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - is_mboxrd_from
    - is_blank_line
    - strbuf_addch
    - strbuf_add_tabexpand
    - strbuf_grow
    - append_line_with_color
    - pp_handle_indent
    - get_one_line
    linkageType: ''
    returnType: void
    signature: "void pp_remainder(struct pretty_print_context *pp,\n\t\t  const char
      **msg_p,\n\t\t  struct strbuf *sb,\n\t\t  int indent)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: repo_format_commit_message
      Src: /src/git/pretty.c:2310,1
    - Dst: get_log_output_encoding
      Src: /src/git/pretty.c:2315,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/pretty.c:2316,1
    - Dst: cmit_fmt_is_mail
      Src: /src/git/pretty.c:2319,1
    - Dst: cmit_fmt_is_mail
      Src: /src/git/pretty.c:2326,1
    - Dst: non_ascii
      Src: /src/git/pretty.c:2338,1
    - Dst: pp_header
      Src: /src/git/pretty.c:2345,1
    - Dst: cmit_fmt_is_mail
      Src: /src/git/pretty.c:2346,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2347,1
    - Dst: skip_blank_lines
      Src: /src/git/pretty.c:2351,1
    - Dst: format_subject
      Src: /src/git/pretty.c:2355,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2356,1
    - Dst: cmit_fmt_is_mail
      Src: /src/git/pretty.c:2357,1
    - Dst: pp_email_subject
      Src: /src/git/pretty.c:2358,1
    - Dst: pp_remainder
      Src: /src/git/pretty.c:2362,1
    - Dst: strbuf_rtrim
      Src: /src/git/pretty.c:2363,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2367,1
    - Dst: cmit_fmt_is_mail
      Src: /src/git/pretty.c:2374,1
    - Dst: strbuf_addch
      Src: /src/git/pretty.c:2375,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/pretty.c:2377,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 3
    argNames:
    - pp
    - commit
    - sb
    argTypes:
    - struct pretty_print_context*
    - struct commit*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2298
    functionDepth: 14
    functionLinenumber: 2298
    functionLinenumberEnd: 2378
    functionName: pretty_print_commit
    functionSourceFile: /src/git/pretty.c
    functionUses: 3
    functionsReached:
    - repo_format_commit_message
    - cmit_fmt_is_mail
    - pp_header
    - skip_blank_lines
    - pp_remainder
    - pp_email_subject
    - repo_unuse_commit_buffer
    - strbuf_addch
    - format_subject
    - get_log_output_encoding
    - repo_logmsg_reencode
    - non_ascii
    - strbuf_rtrim
    linkageType: ''
    returnType: void
    signature: "void pretty_print_commit(struct pretty_print_context *pp,\n\t\t\t
      const struct commit *commit,\n\t\t\t struct strbuf *sb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pretty_print_commit
      Src: /src/git/pretty.c:2385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fmt
    - commit
    - sb
    argTypes:
    - enum cmit_fmt
    - struct commit*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2380
    functionDepth: 15
    functionLinenumber: 2380
    functionLinenumberEnd: 2386
    functionName: pp_commit_easy
    functionSourceFile: /src/git/pretty.c
    functionUses: 0
    functionsReached:
    - pretty_print_commit
    linkageType: ''
    returnType: void
    signature: "void pp_commit_easy(enum cmit_fmt fmt, const struct commit *commit,\n\t\t
      \   struct strbuf *sb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/xdiff-interface.c:30,1
    - Dst: struct xdiff_emit_state*::hunk_fn
      Src: /src/git/xdiff-interface.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - priv_
    - old_begin
    - old_nr
    - new_begin
    - new_nr
    - func
    - funclen
    argTypes:
    - void*
    - long
    - long
    - long
    - long
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: xdiff_out_hunk
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - struct xdiff_emit_state*::hunk_fn
    - BUG
    linkageType: ''
    returnType: int
    signature: "int xdiff_out_hunk(void *priv_,\n\t\t\t  long old_begin, long old_nr,\n\t\t\t
      \ long new_begin, long new_nr,\n\t\t\t  const char *func, long funclen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/xdiff-interface.c:45,1
    - Dst: struct xdiff_emit_state*::line_fn
      Src: /src/git/xdiff-interface.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - priv_
    - s
    - size
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: consume_one
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - memchr
    - struct xdiff_emit_state*::line_fn
    linkageType: ''
    returnType: int
    signature: int consume_one(void *priv_, char *s, unsigned long size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/xdiff-interface.c:70,1
    - Dst: consume_one
      Src: /src/git/xdiff-interface.c:76,1
    - Dst: strbuf_add
      Src: /src/git/xdiff-interface.c:79,1
    - Dst: consume_one
      Src: /src/git/xdiff-interface.c:80,1
    - Dst: strbuf_reset
      Src: /src/git/xdiff-interface.c:81,1
    - Dst: consume_one
      Src: /src/git/xdiff-interface.c:86,1
    - Dst: strbuf_reset
      Src: /src/git/xdiff-interface.c:87,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - priv_
    - mb
    - nbuf
    argTypes:
    - void*
    - mmbuffer_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 92
    functionName: xdiff_outf
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_add
    - consume_one
    linkageType: ''
    returnType: int
    signature: int xdiff_outf(void *priv_, mmbuffer_t *mb, int nbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/xdiff-interface.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mmfile_t*
    - mmfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: trim_common_tail
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: void
    signature: void trim_common_tail(mmfile_t *a, mmfile_t *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trim_common_tail
      Src: /src/git/xdiff-interface.c:128,1
    - Dst: xdl_diff
      Src: /src/git/xdiff-interface.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - mf1
    - mf2
    - xpp
    - xecfg
    - xecb
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - xpparam_t*
    - xdemitconf_t*
    - xdemitcb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: xdi_diff
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - xdl_diff
    - trim_common_tail
    linkageType: ''
    returnType: int
    signature: int xdi_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, xdemitconf_t
      const *xecfg, xdemitcb_t *xecb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/xdiff-interface.c:143,1
    - Dst: memset
      Src: /src/git/xdiff-interface.c:147,1
    - Dst: strbuf_init
      Src: /src/git/xdiff-interface.c:152,1
    - Dst: xdi_diff
      Src: /src/git/xdiff-interface.c:153,1
    - Dst: strbuf_release
      Src: /src/git/xdiff-interface.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 7
    argNames:
    - mf1
    - mf2
    - hunk_fn
    - line_fn
    - consume_callback_data
    - xpp
    - xecfg
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - xdiff_emit_hunk_fn
    - xdiff_emit_line_fn
    - void*
    - xpparam_t*
    - xdemitconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 156
    functionName: xdi_diff_outf
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 1
    functionsReached:
    - xdi_diff
    - memset
    - strbuf_release
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: "int xdi_diff_outf(mmfile_t *mf1, mmfile_t *mf2,\n\t\t  xdiff_emit_hunk_fn
      hunk_fn,\n\t\t  xdiff_emit_line_fn line_fn,\n\t\t  void *consume_callback_data,\n\t\t
      \ xpparam_t const *xpp, xdemitconf_t const *xecfg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/xdiff-interface.c:164,1
    - Dst: error_errno
      Src: /src/git/xdiff-interface.c:165,1
    - Dst: fopen
      Src: /src/git/xdiff-interface.c:166,1
    - Dst: error_errno
      Src: /src/git/xdiff-interface.c:167,1
    - Dst: xsize_t
      Src: /src/git/xdiff-interface.c:168,1
    - Dst: xmalloc
      Src: /src/git/xdiff-interface.c:169,1
    - Dst: fread
      Src: /src/git/xdiff-interface.c:170,1
    - Dst: fclose
      Src: /src/git/xdiff-interface.c:171,1
    - Dst: error
      Src: /src/git/xdiff-interface.c:172,1
    - Dst: fclose
      Src: /src/git/xdiff-interface.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ptr
    - filename
    argTypes:
    - mmfile_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 177
    functionName: read_mmfile
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - error
    - stat
    - fopen
    - xsize_t
    - xmalloc
    - fread
    linkageType: ''
    returnType: int
    signature: int read_mmfile(mmfile_t *ptr, const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/xdiff-interface.c:185,1
    - Dst: xstrdup
      Src: /src/git/xdiff-interface.c:186,1
    - Dst: odb_read_object
      Src: /src/git/xdiff-interface.c:191,1
    - Dst: die
      Src: /src/git/xdiff-interface.c:193,1
    - Dst: oid_to_hex
      Src: /src/git/xdiff-interface.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ptr
    - odb
    - oid
    argTypes:
    - mmfile_t*
    - struct object_database*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: read_mmblob
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 3
    functionsReached:
    - oid_to_hex
    - die
    - is_null_oid
    - odb_read_object
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void read_mmblob(mmfile_t *ptr, struct object_database *odb,\n\t\t
      const struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/xdiff-interface.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: buffer_is_binary
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 1
    functionsReached:
    - memchr
    linkageType: ''
    returnType: int
    signature: int buffer_is_binary(const char *ptr, unsigned long size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: regexec_buf
      Src: /src/git/xdiff-interface.c:231,1
    - Dst: isspace
      Src: /src/git/xdiff-interface.c:244,1
    - Dst: memcpy
      Src: /src/git/xdiff-interface.c:246,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 5
    argNames:
    - line
    - len
    - buffer
    - buffer_size
    - priv
    argTypes:
    - char*
    - long
    - char*
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 248
    functionName: ff_regexp
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - isspace
    - regexec_buf
    - memcpy
    linkageType: ''
    returnType: long
    signature: "long ff_regexp(const char *line, long len,\n\t\tchar *buffer, long
      buffer_size, void *priv)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/xdiff-interface.c:256,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/xdiff-interface.c:260,1
    - Dst: BUG
      Src: /src/git/xdiff-interface.c:267,1
    - Dst: strchr
      Src: /src/git/xdiff-interface.c:268,1
    - Dst: die
      Src: /src/git/xdiff-interface.c:272,1
    - Dst: xstrndup
      Src: /src/git/xdiff-interface.c:276,1
    - Dst: regcomp
      Src: /src/git/xdiff-interface.c:279,1
    - Dst: die
      Src: /src/git/xdiff-interface.c:280,1
    - Dst: free
      Src: /src/git/xdiff-interface.c:281,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - xecfg
    - value
    - cflags
    argTypes:
    - xdemitconf_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 284
    functionName: xdiff_set_find_func
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 1
    functionsReached:
    - die
    - ALLOC_ARRAY
    - strchr
    - xstrndup
    - xmalloc
    - free
    - regcomp
    - BUG
    linkageType: ''
    returnType: void
    signature: void xdiff_set_find_func(xdemitconf_t *xecfg, const char *value, int
      cflags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regfree
      Src: /src/git/xdiff-interface.c:293,1
    - Dst: free
      Src: /src/git/xdiff-interface.c:294,1
    - Dst: free
      Src: /src/git/xdiff-interface.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - xecfg
    argTypes:
    - xdemitconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 299
    functionName: xdiff_clear_find_func
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 1
    functionsReached:
    - regfree
    - free
    linkageType: ''
    returnType: void
    signature: void xdiff_clear_find_func(xdemitconf_t *xecfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_hash_record
      Src: /src/git/xdiff-interface.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - len
    - flags
    argTypes:
    - char*
    - size_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: xdiff_hash_string
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - xdl_hash_record
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long xdiff_hash_string(const char *s, size_t len, long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_recmatch
      Src: /src/git/xdiff-interface.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - l1
    - s1
    - l2
    - s2
    - flags
    argTypes:
    - char*
    - long
    - char*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: xdiff_compare_lines
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - xdl_recmatch
    linkageType: ''
    returnType: int
    signature: "int xdiff_compare_lines(const char *l1, long s1,\n\t\t\tconst char
      *l2, long s2, long flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/xdiff-interface.c:314,1
    - Dst: strcmp
      Src: /src/git/xdiff-interface.c:316,1
    - Dst: strcmp
      Src: /src/git/xdiff-interface.c:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 326
    functionName: parse_conflict_style_name
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_conflict_style_name(const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - style
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: conflict_style_name
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *conflict_style_name(int style)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/xdiff-interface.c:345,1
    - Dst: config_error_nonbool
      Src: /src/git/xdiff-interface.c:347,1
    - Dst: parse_conflict_style_name
      Src: /src/git/xdiff-interface.c:348,1
    - Dst: error
      Src: /src/git/xdiff-interface.c:350,1
    - Dst: _
      Src: /src/git/xdiff-interface.c:350,1
    - Dst: git_default_config
      Src: /src/git/xdiff-interface.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 342
    functionDepth: 4
    functionLinenumber: 342
    functionLinenumberEnd: 355
    functionName: git_xmerge_config
    functionSourceFile: /src/git/xdiff-interface.c
    functionUses: 0
    functionsReached:
    - error
    - strcmp
    - git_default_config
    - _
    - parse_conflict_style_name
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_xmerge_config(const char *var, const char *value,\n\t\t      const
      struct config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/git/server-info.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uic
    argTypes:
    - struct update_info_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: uic_mark_stale
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void uic_mark_stale(struct update_info_ctx *uic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uic
    argTypes:
    - struct update_info_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: uic_is_stale
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int uic_is_stale(const struct update_info_ctx *uic)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/server-info.c:38,1
    - Dst: va_start
      Src: /src/git/server-info.c:44,1
    - Dst: uic_is_stale
      Src: /src/git/server-info.c:46,1
    - Dst: vfprintf
      Src: /src/git/server-info.c:47,1
    - Dst: strbuf_reset
      Src: /src/git/server-info.c:53,1
    - Dst: strbuf_vinsertf
      Src: /src/git/server-info.c:54,1
    - Dst: strbuf_reset
      Src: /src/git/server-info.c:56,1
    - Dst: strbuf_grow
      Src: /src/git/server-info.c:57,1
    - Dst: fread
      Src: /src/git/server-info.c:58,1
    - Dst: memcmp
      Src: /src/git/server-info.c:59,1
    - Dst: uic_mark_stale
      Src: /src/git/server-info.c:60,1
    - Dst: fwrite
      Src: /src/git/server-info.c:62,1
    - Dst: va_end
      Src: /src/git/server-info.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - uic
    - fmt
    argTypes:
    - struct update_info_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 69
    functionName: uic_printf
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - strbuf_reset
    - fwrite
    - va_end
    - strbuf_vinsertf
    - strbuf_grow
    - uic_is_stale
    - uic_mark_stale
    - fread
    - va_start
    - format
    - memcmp
    linkageType: ''
    returnType: int
    signature: int uic_printf(struct update_info_ctx *uic, const char *fmt, ...)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mkpathdup
      Src: /src/git/server-info.c:80,1
    - Dst: safe_create_leading_directories
      Src: /src/git/server-info.c:91,1
    - Dst: mks_tempfile_m
      Src: /src/git/server-info.c:92,1
    - Dst: fdopen_tempfile
      Src: /src/git/server-info.c:95,1
    - Dst: fopen_or_warn
      Src: /src/git/server-info.c:101,1
    - Dst: generate
      Src: /src/git/server-info.c:107,1
    - Dst: uic_is_stale
      Src: /src/git/server-info.c:112,1
    - Dst: ftell
      Src: /src/git/server-info.c:114,1
    - Dst: fileno
      Src: /src/git/server-info.c:115,1
    - Dst: fstat
      Src: /src/git/server-info.c:121,1
    - Dst: uic_mark_stale
      Src: /src/git/server-info.c:122,1
    - Dst: uic_is_stale
      Src: /src/git/server-info.c:127,1
    - Dst: adjust_shared_perm
      Src: /src/git/server-info.c:128,1
    - Dst: get_tempfile_path
      Src: /src/git/server-info.c:128,1
    - Dst: rename_tempfile
      Src: /src/git/server-info.c:130,1
    - Dst: delete_tempfile
      Src: /src/git/server-info.c:133,1
    - Dst: error_errno
      Src: /src/git/server-info.c:139,1
    - Dst: delete_tempfile
      Src: /src/git/server-info.c:141,1
    - Dst: free
      Src: /src/git/server-info.c:143,1
    - Dst: fclose
      Src: /src/git/server-info.c:145,1
    - Dst: strbuf_release
      Src: /src/git/server-info.c:146,1
    - Dst: strbuf_release
      Src: /src/git/server-info.c:147,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 3
    argNames:
    - r
    - path
    - force
    argTypes:
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 149
    functionName: update_info_file
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - ftell
    - free
    - adjust_shared_perm
    - uic_mark_stale
    - fdopen_tempfile
    - get_tempfile_path
    - delete_tempfile
    - strbuf_release
    - mkpathdup
    - rename_tempfile
    - generate
    - mks_tempfile_m
    - fileno
    - fopen_or_warn
    - fstat
    - uic_is_stale
    - safe_create_leading_directories
    linkageType: ''
    returnType: int
    signature: "int update_info_file(struct repository *r, char *path,\n\t\t\tint
      (*generate)(struct update_info_ctx *),\n\t\t\tint force)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/server-info.c:154,1
    - Dst: uic_printf
      Src: /src/git/server-info.c:158,1
    - Dst: oid_to_hex
      Src: /src/git/server-info.c:158,1
    - Dst: deref_tag
      Src: /src/git/server-info.c:162,1
    - Dst: uic_printf
      Src: /src/git/server-info.c:164,1
    - Dst: oid_to_hex
      Src: /src/git/server-info.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 151
    functionDepth: 5
    functionLinenumber: 151
    functionLinenumberEnd: 169
    functionName: add_info_ref
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - uic_printf
    - deref_tag
    - oid_to_hex
    - parse_object
    linkageType: ''
    returnType: int
    signature: int add_info_ref(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_ref
      Src: /src/git/server-info.c:173,1
    - Dst: get_main_ref_store
      Src: /src/git/server-info.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uic
    argTypes:
    - struct update_info_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: generate_info_refs
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int generate_info_refs(struct update_info_ctx *uic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/server-info.c:179,1
    - Dst: update_info_file
      Src: /src/git/server-info.c:180,1
    - Dst: free
      Src: /src/git/server-info.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - force
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 8
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: update_info_refs
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    - update_info_file
    - free
    linkageType: ''
    returnType: int
    signature: int update_info_refs(struct repository *r, int force)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/server-info.c:198,1
    - Dst: pack_basename
      Src: /src/git/server-info.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: find_pack_by_name
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - pack_basename
    - strcmp
    linkageType: ''
    returnType: struct pack_info
    signature: struct pack_info *find_pack_by_name(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_pack_by_name
      Src: /src/git/server-info.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - packname
    - old_cnt
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: parse_pack_def
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - find_pack_by_name
    linkageType: ''
    returnType: int
    signature: int parse_pack_def(const char *packname, int old_cnt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen_or_warn
      Src: /src/git/server-info.c:230,1
    - Dst: strbuf_getline
      Src: /src/git/server-info.c:234,1
    - Dst: skip_prefix
      Src: /src/git/server-info.c:240,1
    - Dst: parse_pack_def
      Src: /src/git/server-info.c:242,1
    - Dst: error
      Src: /src/git/server-info.c:251,1
    - Dst: strbuf_release
      Src: /src/git/server-info.c:257,1
    - Dst: fclose
      Src: /src/git/server-info.c:258,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - infofile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 223
    functionDepth: 5
    functionLinenumber: 223
    functionLinenumberEnd: 260
    functionName: read_pack_info_file
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - strbuf_release
    - parse_pack_def
    - fopen_or_warn
    - strbuf_getline
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int read_pack_info_file(const char *infofile)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: compare_info
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_info(const void *a_, const void *b_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/server-info.c:297,1
    - Dst: ALLOC_GROW
      Src: /src/git/server-info.c:301,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/server-info.c:302,1
    - Dst: read_pack_info_file
      Src: /src/git/server-info.c:308,1
    - Dst: QSORT
      Src: /src/git/server-info.c:317,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - r
    - infofile
    - force
    argTypes:
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 286
    functionDepth: 6
    functionLinenumber: 286
    functionLinenumberEnd: 320
    functionName: init_pack_info
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - read_pack_info_file
    - QSORT
    - ALLOC_GROW
    - CALLOC_ARRAY
    - file_exists
    linkageType: ''
    returnType: void
    signature: void init_pack_info(struct repository *r, const char *infofile, int
      force)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/server-info.c:297,1
    - Dst: ALLOC_GROW
      Src: /src/git/server-info.c:301,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/server-info.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/server-info.c
    functionUses: 2
    functionsReached:
    - file_exists
    - ALLOC_GROW
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(r, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/server-info.c:326,1
    - Dst: free
      Src: /src/git/server-info.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: free_pack_info
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_pack_info(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uic_printf
      Src: /src/git/server-info.c:334,1
    - Dst: pack_basename
      Src: /src/git/server-info.c:334,1
    - Dst: uic_printf
      Src: /src/git/server-info.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - uic
    argTypes:
    - struct update_info_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 330
    functionDepth: 4
    functionLinenumber: 330
    functionLinenumberEnd: 340
    functionName: write_pack_info_file
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - uic_printf
    - pack_basename
    linkageType: ''
    returnType: int
    signature: int write_pack_info_file(struct update_info_ctx *uic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mkpathdup
      Src: /src/git/server-info.c:344,1
    - Dst: repo_get_object_directory
      Src: /src/git/server-info.c:345,1
    - Dst: init_pack_info
      Src: /src/git/server-info.c:348,1
    - Dst: update_info_file
      Src: /src/git/server-info.c:349,1
    - Dst: free_pack_info
      Src: /src/git/server-info.c:350,1
    - Dst: free
      Src: /src/git/server-info.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - r
    - force
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 342
    functionDepth: 7
    functionLinenumber: 342
    functionLinenumberEnd: 353
    functionName: update_info_packs
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - update_info_file
    - init_pack_info
    - free_pack_info
    - repo_get_object_directory
    - free
    - mkpathdup
    linkageType: ''
    returnType: int
    signature: int update_info_packs(struct repository *r, int force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_info_refs
      Src: /src/git/server-info.c:365,1
    - Dst: update_info_packs
      Src: /src/git/server-info.c:366,1
    - Dst: repo_git_path
      Src: /src/git/server-info.c:369,1
    - Dst: unlink_or_warn
      Src: /src/git/server-info.c:370,1
    - Dst: free
      Src: /src/git/server-info.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - r
    - force
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 356
    functionDepth: 9
    functionLinenumber: 356
    functionLinenumberEnd: 374
    functionName: update_server_info
    functionSourceFile: /src/git/server-info.c
    functionUses: 0
    functionsReached:
    - update_info_packs
    - repo_git_path
    - unlink_or_warn
    - update_info_refs
    - free
    linkageType: ''
    returnType: int
    signature: int update_server_info(struct repository *r, int force)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diffcore-rotate.c:21,1
    - Dst: die
      Src: /src/git/diffcore-rotate.c:31,1
    - Dst: _
      Src: /src/git/diffcore-rotate.c:31,1
    - Dst: diff_q
      Src: /src/git/diffcore-rotate.c:38,1
    - Dst: diff_free_filepair
      Src: /src/git/diffcore-rotate.c:41,1
    - Dst: diff_q
      Src: /src/git/diffcore-rotate.c:43,1
    - Dst: free
      Src: /src/git/diffcore-rotate.c:45,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 47
    functionName: diffcore_rotate
    functionSourceFile: /src/git/diffcore-rotate.c
    functionUses: 0
    functionsReached:
    - die
    - diff_free_filepair
    - diff_q
    - strcmp
    - _
    - free
    linkageType: ''
    returnType: void
    signature: void diffcore_rotate(struct diff_options *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/oidset.c:8,1
    - Dst: kh_resize_oid_set
      Src: /src/git/oidset.c:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - set
    - initial_size
    argTypes:
    - struct oidset*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 11
    functionName: oidset_init
    functionSourceFile: /src/git/oidset.c
    functionUses: 4
    functionsReached:
    - memset
    - kh_resize_oid_set
    linkageType: ''
    returnType: void
    signature: void oidset_init(struct oidset *set, size_t initial_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_set
      Src: /src/git/oidset.c:15,1
    - Dst: kh_end
      Src: /src/git/oidset.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - oid
    argTypes:
    - struct oidset*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: oidset_contains
    functionSourceFile: /src/git/oidset.c
    functionUses: 6
    functionsReached:
    - kh_get_oid_set
    - kh_end
    linkageType: ''
    returnType: int
    signature: int oidset_contains(const struct oidset *set, const struct object_id
      *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidset_size
      Src: /src/git/oidset.c:24,1
    - Dst: oidset_size
      Src: /src/git/oidset.c:24,1
    - Dst: oidset_iter_init
      Src: /src/git/oidset.c:27,1
    - Dst: oidset_iter_next
      Src: /src/git/oidset.c:28,1
    - Dst: oidset_contains
      Src: /src/git/oidset.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct oidset*
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: oidset_equal
    functionSourceFile: /src/git/oidset.c
    functionUses: 0
    functionsReached:
    - oidset_size
    - oidset_contains
    - oidset_iter_next
    - oidset_iter_init
    linkageType: ''
    returnType: bool
    signature: bool oidset_equal(const struct oidset *a, const struct oidset *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_put_oid_set
      Src: /src/git/oidset.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - set
    - oid
    argTypes:
    - struct oidset*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: oidset_insert
    functionSourceFile: /src/git/oidset.c
    functionUses: 13
    functionsReached:
    - kh_put_oid_set
    linkageType: ''
    returnType: int
    signature: int oidset_insert(struct oidset *set, const struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_iter_init
      Src: /src/git/oidset.c:47,1
    - Dst: oidset_iter_next
      Src: /src/git/oidset.c:48,1
    - Dst: oidset_insert
      Src: /src/git/oidset.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - struct oidset*
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: oidset_insert_from_set
    functionSourceFile: /src/git/oidset.c
    functionUses: 1
    functionsReached:
    - oidset_iter_next
    - oidset_iter_init
    - oidset_insert
    linkageType: ''
    returnType: void
    signature: void oidset_insert_from_set(struct oidset *dest, struct oidset *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_set
      Src: /src/git/oidset.c:54,1
    - Dst: kh_end
      Src: /src/git/oidset.c:55,1
    - Dst: kh_del_oid_set
      Src: /src/git/oidset.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - set
    - oid
    argTypes:
    - struct oidset*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: oidset_remove
    functionSourceFile: /src/git/oidset.c
    functionUses: 3
    functionsReached:
    - kh_get_oid_set
    - kh_del_oid_set
    - kh_end
    linkageType: ''
    returnType: int
    signature: int oidset_remove(struct oidset *set, const struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_release_oid_set
      Src: /src/git/oidset.c:63,1
    - Dst: oidset_init
      Src: /src/git/oidset.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: oidset_clear
    functionSourceFile: /src/git/oidset.c
    functionUses: 8
    functionsReached:
    - oidset_init
    - kh_release_oid_set
    linkageType: ''
    returnType: void
    signature: void oidset_clear(struct oidset *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_parse_file_carefully
      Src: /src/git/oidset.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - set
    - path
    - algop
    argTypes:
    - struct oidset*
    - char*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: oidset_parse_file
    functionSourceFile: /src/git/oidset.c
    functionUses: 0
    functionsReached:
    - oidset_parse_file_carefully
    linkageType: ''
    returnType: void
    signature: "void oidset_parse_file(struct oidset *set, const char *path,\n\t\t
      \      const struct git_hash_algo *algop)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/oidset.c:81,1
    - Dst: die
      Src: /src/git/oidset.c:83,1
    - Dst: strbuf_getline
      Src: /src/git/oidset.c:84,1
    - Dst: strchr
      Src: /src/git/oidset.c:93,1
    - Dst: strbuf_setlen
      Src: /src/git/oidset.c:95,1
    - Dst: strbuf_trim
      Src: /src/git/oidset.c:96,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/oidset.c:100,1
    - Dst: die
      Src: /src/git/oidset.c:101,1
    - Dst: fn
      Src: /src/git/oidset.c:102,1
    - Dst: oidset_insert
      Src: /src/git/oidset.c:104,1
    - Dst: ferror
      Src: /src/git/oidset.c:106,1
    - Dst: die_errno
      Src: /src/git/oidset.c:107,1
    - Dst: fclose
      Src: /src/git/oidset.c:108,1
    - Dst: strbuf_release
      Src: /src/git/oidset.c:109,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 5
    argNames:
    - set
    - path
    - algop
    - fn
    - cbdata
    argTypes:
    - struct oidset*
    - char*
    - struct git_hash_algo*
    - oidset_parse_tweak_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 110
    functionName: oidset_parse_file_carefully
    functionSourceFile: /src/git/oidset.c
    functionUses: 1
    functionsReached:
    - fclose
    - ferror
    - strbuf_release
    - die
    - fn
    - parse_oid_hex_algop
    - strbuf_setlen
    - fopen
    - strchr
    - die_errno
    - strbuf_trim
    - oidset_insert
    - strbuf_getline
    linkageType: ''
    returnType: void
    signature: "void oidset_parse_file_carefully(struct oidset *set, const char *path,\n\t\t\t\t
      const struct git_hash_algo *algop,\n\t\t\t\t oidset_parse_tweak_fn fn, void
      *cbdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/merge-blobs.c:15,1
    - Dst: free
      Src: /src/git/merge-blobs.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - f
    - obj
    argTypes:
    - mmfile_t*
    - struct blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 26
    functionName: fill_mmfile_blob
    functionSourceFile: /src/git/merge-blobs.c
    functionUses: 0
    functionsReached:
    - odb_read_object
    - free
    linkageType: ''
    returnType: int
    signature: int fill_mmfile_blob(mmfile_t *f, struct blob *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/merge-blobs.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - mmfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: free_mmfile
    functionSourceFile: /src/git/merge-blobs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_mmfile(mmfile_t *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ll_merge
      Src: /src/git/merge-blobs.c:49,1
    - Dst: warning
      Src: /src/git/merge-blobs.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - istate
    - path
    - base
    - our
    - their
    - size
    argTypes:
    - struct index_state*
    - char*
    - mmfile_t*
    - mmfile_t*
    - mmfile_t*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: three_way_filemerge
    functionSourceFile: /src/git/merge-blobs.c
    functionUses: 0
    functionsReached:
    - warning
    - ll_merge
    linkageType: ''
    returnType: void
    signature: "void *three_way_filemerge(struct index_state *istate,\n\t\t\t\t const
      char *path,\n\t\t\t\t mmfile_t *base,\n\t\t\t\t mmfile_t *our,\n\t\t\t\t mmfile_t
      *their,\n\t\t\t\t unsigned long *size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/merge-blobs.c:82,1
    - Dst: fill_mmfile_blob
      Src: /src/git/merge-blobs.c:86,1
    - Dst: fill_mmfile_blob
      Src: /src/git/merge-blobs.c:88,1
    - Dst: fill_mmfile_blob
      Src: /src/git/merge-blobs.c:92,1
    - Dst: xstrdup
      Src: /src/git/merge-blobs.c:95,1
    - Dst: three_way_filemerge
      Src: /src/git/merge-blobs.c:98,1
    - Dst: free_mmfile
      Src: /src/git/merge-blobs.c:99,1
    - Dst: free_mmfile
      Src: /src/git/merge-blobs.c:101,1
    - Dst: free_mmfile
      Src: /src/git/merge-blobs.c:103,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 6
    argNames:
    - istate
    - path
    - base
    - our
    - their
    - size
    argTypes:
    - struct index_state*
    - char*
    - struct blob*
    - struct blob*
    - struct blob*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 106
    functionName: merge_blobs
    functionSourceFile: /src/git/merge-blobs.c
    functionUses: 0
    functionsReached:
    - fill_mmfile_blob
    - free_mmfile
    - odb_read_object
    - three_way_filemerge
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void *merge_blobs(struct index_state *istate, const char *path,\n\t\t
      \ struct blob *base, struct blob *our,\n\t\t  struct blob *their, unsigned long
      *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - count
    argTypes:
    - uint32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: rotate_left
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotate_left(uint32_t value, int32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: get_bitmask
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char get_bitmask(uint32_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/bloom.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - g
    - pos
    - offset
    argTypes:
    - struct commit_graph*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 55
    functionName: check_bloom_offset
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - warning
    linkageType: ''
    returnType: int
    signature: "int check_bloom_offset(struct commit_graph *g, uint32_t pos,\n\t\t\t
      \     uint32_t offset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_be32
      Src: /src/git/bloom.c:72,1
    - Dst: get_be32
      Src: /src/git/bloom.c:75,1
    - Dst: check_bloom_offset
      Src: /src/git/bloom.c:79,1
    - Dst: check_bloom_offset
      Src: /src/git/bloom.c:80,1
    - Dst: warning
      Src: /src/git/bloom.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - g
    - filter
    - graph_pos
    argTypes:
    - struct commit_graph*
    - struct bloom_filter*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 101
    functionName: load_bloom_filter_from_graph
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - check_bloom_offset
    - warning
    - get_be32
    linkageType: ''
    returnType: int
    signature: "int load_bloom_filter_from_graph(struct commit_graph *g,\n\t\t\t\t
      struct bloom_filter *filter,\n\t\t\t\t uint32_t graph_pos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rotate_left
      Src: /src/git/bloom.c:132,1
    - Dst: rotate_left
      Src: /src/git/bloom.c:136,1
    - Dst: rotate_left
      Src: /src/git/bloom.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 3
    argNames:
    - seed
    - data
    - len
    argTypes:
    - uint32_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 165
    functionName: murmur3_seeded_v2
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - rotate_left
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t murmur3_seeded_v2(uint32_t seed, const char *data, size_t
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rotate_left
      Src: /src/git/bloom.c:189,1
    - Dst: rotate_left
      Src: /src/git/bloom.c:193,1
    - Dst: rotate_left
      Src: /src/git/bloom.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 3
    argNames:
    - seed
    - data
    - len
    argTypes:
    - uint32_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 222
    functionName: murmur3_seeded_v1
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - rotate_left
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t murmur3_seeded_v1(uint32_t seed, const char *data, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: murmur3_seeded_v2
      Src: /src/git/bloom.c:232,1
    - Dst: murmur3_seeded_v2
      Src: /src/git/bloom.c:233,1
    - Dst: murmur3_seeded_v1
      Src: /src/git/bloom.c:235,1
    - Dst: murmur3_seeded_v1
      Src: /src/git/bloom.c:236,1
    - Dst: xcalloc
      Src: /src/git/bloom.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - key
    - data
    - len
    - settings
    argTypes:
    - struct bloom_key*
    - char*
    - size_t
    - struct bloom_filter_settings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 242
    functionName: bloom_key_fill
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - murmur3_seeded_v2
    - murmur3_seeded_v1
    - xcalloc
    linkageType: ''
    returnType: void
    signature: "void bloom_key_fill(struct bloom_key *key, const char *data, size_t
      len,\n\t\t    const struct bloom_filter_settings *settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/bloom.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - struct bloom_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: bloom_key_clear
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void bloom_key_clear(struct bloom_key *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bitmask
      Src: /src/git/bloom.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - key
    - filter
    - settings
    argTypes:
    - struct bloom_key*
    - struct bloom_filter*
    - struct bloom_filter_settings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 262
    functionName: add_key_to_filter
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - get_bitmask
    linkageType: ''
    returnType: void
    signature: "void add_key_to_filter(const struct bloom_key *key,\n\t\t       struct
      bloom_filter *filter,\n\t\t       const struct bloom_filter_settings *settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_bloom_filter_slab
      Src: /src/git/bloom.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: init_bloom_filters
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - init_bloom_filter_slab
    linkageType: ''
    returnType: void
    signature: void init_bloom_filters(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/bloom.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct bloom_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: free_one_bloom_filter
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_one_bloom_filter(struct bloom_filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deep_clear_bloom_filter_slab
      Src: /src/git/bloom.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: deinit_bloom_filters
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - deep_clear_bloom_filter_slab
    linkageType: ''
    returnType: void
    signature: void deinit_bloom_filters(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/bloom.c:303,1
    - Dst: bloom_key_fill
      Src: /src/git/bloom.c:308,1
    - Dst: bloom_key_fill
      Src: /src/git/bloom.c:313,1
    - Dst: assert
      Src: /src/git/bloom.c:317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - path
    - len
    - settings
    argTypes:
    - char*
    - size_t
    - struct bloom_filter_settings*
    assertStmts:
    - condition: (nr == vec->count)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/git/bloom.c
    constantsTouched: []
    func_position:
      end: 319
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 319
    functionName: bloom_keyvec_new
    functionSourceFile: /src/git/bloom.c
    functionUses: 1
    functionsReached:
    - assert
    - xcalloc
    - bloom_key_fill
    linkageType: ''
    returnType: struct bloom_keyvec
    signature: "struct bloom_keyvec *bloom_keyvec_new(const char *path, size_t len,\n\t\t\t\t
      \     const struct bloom_filter_settings *settings)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bloom_key_clear
      Src: /src/git/bloom.c:326,1
    - Dst: free
      Src: /src/git/bloom.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - struct bloom_keyvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: bloom_keyvec_free
    functionSourceFile: /src/git/bloom.c
    functionUses: 1
    functionsReached:
    - bloom_key_clear
    - free
    linkageType: ''
    returnType: void
    signature: void bloom_keyvec_free(struct bloom_keyvec *vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/bloom.c:337,1
    - Dst: container_of
      Src: /src/git/bloom.c:338,1
    - Dst: strcmp
      Src: /src/git/bloom.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hashmap_cmp_fn_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 341
    functionName: pathmap_cmp
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int pathmap_cmp(const void *hashmap_cmp_fn_data UNUSED,\n\t\t       const
      struct hashmap_entry *eptr,\n\t\t       const struct hashmap_entry *entry_or_key,\n\t\t
      \      const void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/bloom.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - filter
    - version
    argTypes:
    - struct bloom_filter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: init_truncated_large_filter
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: void
    signature: "void init_truncated_large_filter(struct bloom_filter *filter,\n\t\t\t\t\tint
      version)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree
      Src: /src/git/bloom.c:357,1
    - Dst: init_tree_desc
      Src: /src/git/bloom.c:364,1
    - Dst: tree_entry
      Src: /src/git/bloom.c:365,1
    - Dst: S_ISDIR
      Src: /src/git/bloom.c:374,1
    - Dst: lookup_tree
      Src: /src/git/bloom.c:375,1
    - Dst: has_entries_with_high_bit
      Src: /src/git/bloom.c:376,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - r
    - t
    argTypes:
    - struct repository*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 355
    functionDepth: 6
    functionLinenumber: 355
    functionLinenumberEnd: 389
    functionName: has_entries_with_high_bit
    functionSourceFile: /src/git/bloom.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - tree_entry
    - has_entries_with_high_bit
    - repo_parse_tree
    - lookup_tree
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: int has_entries_with_high_bit(struct repository *r, struct tree *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/bloom.c:395,1
    - Dst: repo_get_commit_tree
      Src: /src/git/bloom.c:397,1
    - Dst: has_entries_with_high_bit
      Src: /src/git/bloom.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 391
    functionDepth: 7
    functionLinenumber: 391
    functionLinenumberEnd: 401
    functionName: commit_tree_has_high_bit_paths
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - repo_get_commit_tree
    - repo_parse_commit
    - has_entries_with_high_bit
    linkageType: ''
    returnType: int
    signature: "int commit_tree_has_high_bit_paths(struct repository *r,\n\t\t\t\t\t
      \ struct commit *c)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: commit_tree_has_high_bit_paths
      Src: /src/git/bloom.c:408,1
    - Dst: commit_tree_has_high_bit_paths
      Src: /src/git/bloom.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - r
    - c
    - filter
    - hash_version
    argTypes:
    - struct repository*
    - struct commit*
    - struct bloom_filter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 403
    functionDepth: 8
    functionLinenumber: 403
    functionLinenumberEnd: 417
    functionName: upgrade_filter
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - commit_tree_has_high_bit_paths
    linkageType: ''
    returnType: struct bloom_filter
    signature: "struct bloom_filter *upgrade_filter(struct repository *r, struct commit
      *c,\n\t\t\t\t\t   struct bloom_filter *filter,\n\t\t\t\t\t   int hash_version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_or_compute_bloom_filter
      Src: /src/git/bloom.c:424,1
    - Dst: prepare_repo_settings
      Src: /src/git/bloom.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 434
    functionName: get_bloom_filter
    functionSourceFile: /src/git/bloom.c
    functionUses: 1
    functionsReached:
    - get_or_compute_bloom_filter
    - prepare_repo_settings
    linkageType: ''
    returnType: struct bloom_filter
    signature: struct bloom_filter *get_bloom_filter(struct repository *r, struct
      commit *c)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: bloom_filter_slab_at
      Src: /src/git/bloom.c:452,1
    - Dst: repo_find_commit_pos_in_graph
      Src: /src/git/bloom.c:458,1
    - Dst: load_bloom_filter_from_graph
      Src: /src/git/bloom.c:460,1
    - Dst: git_env_bool
      Src: /src/git/bloom.c:470,1
    - Dst: upgrade_filter
      Src: /src/git/bloom.c:471,1
    - Dst: repo_diff_setup
      Src: /src/git/bloom.c:483,1
    - Dst: diff_setup_done
      Src: /src/git/bloom.c:487,1
    - Dst: repo_parse_commit
      Src: /src/git/bloom.c:490,1
    - Dst: diff_tree_oid
      Src: /src/git/bloom.c:493,1
    - Dst: diff_tree_oid
      Src: /src/git/bloom.c:495,1
    - Dst: diffcore_std
      Src: /src/git/bloom.c:496,1
    - Dst: HASHMAP_INIT
      Src: /src/git/bloom.c:499,1
    - Dst: strrchr
      Src: /src/git/bloom.c:515,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/bloom.c:517,1
    - Dst: hashmap_entry_init
      Src: /src/git/bloom.c:518,1
    - Dst: strhash
      Src: /src/git/bloom.c:518,1
    - Dst: hashmap_get
      Src: /src/git/bloom.c:520,1
    - Dst: hashmap_add
      Src: /src/git/bloom.c:521,1
    - Dst: free
      Src: /src/git/bloom.c:523,1
    - Dst: hashmap_get_size
      Src: /src/git/bloom.c:532,1
    - Dst: init_truncated_large_filter
      Src: /src/git/bloom.c:533,1
    - Dst: hashmap_get_size
      Src: /src/git/bloom.c:540,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/bloom.c:547,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/bloom.c:550,1
    - Dst: bloom_key_fill
      Src: /src/git/bloom.c:552,1
    - Dst: strlen
      Src: /src/git/bloom.c:552,1
    - Dst: add_key_to_filter
      Src: /src/git/bloom.c:553,1
    - Dst: bloom_key_clear
      Src: /src/git/bloom.c:554,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/bloom.c:558,1
    - Dst: init_truncated_large_filter
      Src: /src/git/bloom.c:560,1
    - Dst: diff_queue_clear
      Src: /src/git/bloom.c:569,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 5
    argNames:
    - r
    - c
    - compute_if_not_present
    - settings
    - computed
    argTypes:
    - struct repository*
    - struct commit*
    - int
    - struct bloom_filter_settings*
    - enum bloom_filter_computed*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 436
    functionDepth: 9
    functionLinenumber: 436
    functionLinenumberEnd: 571
    functionName: get_or_compute_bloom_filter
    functionSourceFile: /src/git/bloom.c
    functionUses: 1
    functionsReached:
    - hashmap_get_size
    - free
    - CALLOC_ARRAY
    - hashmap_get
    - upgrade_filter
    - hashmap_add
    - git_env_bool
    - init_truncated_large_filter
    - repo_parse_commit
    - hashmap_entry_init
    - HASHMAP_INIT
    - load_bloom_filter_from_graph
    - diff_queue_clear
    - diff_setup_done
    - repo_diff_setup
    - hashmap_for_each_entry
    - strhash
    - repo_find_commit_pos_in_graph
    - bloom_key_clear
    - strrchr
    - bloom_filter_slab_at
    - diff_tree_oid
    - hashmap_clear_and_free
    - strlen
    - diffcore_std
    - bloom_key_fill
    - add_key_to_filter
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: struct bloom_filter
    signature: "struct bloom_filter *get_or_compute_bloom_filter(struct repository
      *r,\n\t\t\t\t\t\t struct commit *c,\n\t\t\t\t\t\t int compute_if_not_present,\n\t\t\t\t\t\t
      const struct bloom_filter_settings *settings,\n\t\t\t\t\t\t enum bloom_filter_computed
      *computed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_bitmask
      Src: /src/git/bloom.c:586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - filter
    - key
    - settings
    argTypes:
    - struct bloom_filter*
    - struct bloom_key*
    - struct bloom_filter_settings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 591
    functionName: bloom_filter_contains
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - get_bitmask
    linkageType: ''
    returnType: int
    signature: "int bloom_filter_contains(const struct bloom_filter *filter,\n\t\t\t
      \ const struct bloom_key *key,\n\t\t\t  const struct bloom_filter_settings *settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bloom_filter_contains
      Src: /src/git/bloom.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - filter
    - vec
    - settings
    argTypes:
    - struct bloom_filter*
    - struct bloom_keyvec*
    - struct bloom_filter_settings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 603
    functionName: bloom_filter_contains_vec
    functionSourceFile: /src/git/bloom.c
    functionUses: 1
    functionsReached:
    - bloom_filter_contains
    linkageType: ''
    returnType: int
    signature: "int bloom_filter_contains_vec(const struct bloom_filter *filter,\n\t\t\t
      \     const struct bloom_keyvec *vec,\n\t\t\t      const struct bloom_filter_settings
      *settings)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/bloom.c:608,1
    - Dst: murmur3_seeded_v2
      Src: /src/git/bloom.c:611,1
    - Dst: murmur3_seeded_v1
      Src: /src/git/bloom.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - seed
    - data
    - len
    - version
    argTypes:
    - uint32_t
    - char*
    - size_t
    - int
    assertStmts:
    - condition: (version == 1 || version == 2)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/git/bloom.c
    constantsTouched: []
    func_position:
      end: 614
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 614
    functionName: test_bloom_murmur3_seeded
    functionSourceFile: /src/git/bloom.c
    functionUses: 0
    functionsReached:
    - murmur3_seeded_v2
    - murmur3_seeded_v1
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t test_bloom_murmur3_seeded(uint32_t seed, const char *data,
      size_t len,\n\t\t\t\t   int version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/sigchain.c:16,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: check_signum
    functionSourceFile: /src/git/sigchain.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void check_signum(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_signum
      Src: /src/git/sigchain.c:22,1
    - Dst: ALLOC_GROW
      Src: /src/git/sigchain.c:24,1
    - Dst: signal
      Src: /src/git/sigchain.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sig
    - f
    argTypes:
    - int
    - sigchain_fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: sigchain_push
    functionSourceFile: /src/git/sigchain.c
    functionUses: 15
    functionsReached:
    - check_signum
    - signal
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: int sigchain_push(int sig, sigchain_fun f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_signum
      Src: /src/git/sigchain.c:35,1
    - Dst: signal
      Src: /src/git/sigchain.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: sigchain_pop
    functionSourceFile: /src/git/sigchain.c
    functionUses: 19
    functionsReached:
    - check_signum
    - signal
    linkageType: ''
    returnType: int
    signature: int sigchain_pop(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigchain_push
      Src: /src/git/sigchain.c:47,1
    - Dst: sigchain_push
      Src: /src/git/sigchain.c:48,1
    - Dst: sigchain_push
      Src: /src/git/sigchain.c:49,1
    - Dst: sigchain_push
      Src: /src/git/sigchain.c:50,1
    - Dst: sigchain_push
      Src: /src/git/sigchain.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - sigchain_fun
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: sigchain_push_common
    functionSourceFile: /src/git/sigchain.c
    functionUses: 4
    functionsReached:
    - sigchain_push
    linkageType: ''
    returnType: void
    signature: void sigchain_push_common(sigchain_fun f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigchain_pop
      Src: /src/git/sigchain.c:56,1
    - Dst: sigchain_pop
      Src: /src/git/sigchain.c:57,1
    - Dst: sigchain_pop
      Src: /src/git/sigchain.c:58,1
    - Dst: sigchain_pop
      Src: /src/git/sigchain.c:59,1
    - Dst: sigchain_pop
      Src: /src/git/sigchain.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: sigchain_pop_common
    functionSourceFile: /src/git/sigchain.c
    functionUses: 2
    functionsReached:
    - sigchain_pop
    linkageType: ''
    returnType: void
    signature: void sigchain_pop_common(void)
  - 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: fsmonitor_ipc__is_supported
    functionSourceFile: /src/git/fsmonitor-ipc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fsmonitor_ipc__is_supported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: fsmonitor_ipc__get_path
    functionSourceFile: /src/git/fsmonitor-ipc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fsmonitor_ipc__get_path(struct repository *r UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: fsmonitor_ipc__get_state
    functionSourceFile: /src/git/fsmonitor-ipc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum ipc_active_state
    signature: enum ipc_active_state fsmonitor_ipc__get_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - since_token
    - answer
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: fsmonitor_ipc__send_query
    functionSourceFile: /src/git/fsmonitor-ipc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fsmonitor_ipc__send_query(const char *since_token UNUSED,\n\t\t\t
      \     struct strbuf *answer UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - command
    - answer
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: fsmonitor_ipc__send_command
    functionSourceFile: /src/git/fsmonitor-ipc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fsmonitor_ipc__send_command(const char *command UNUSED,\n\t\t\t\tstruct
      strbuf *answer UNUSED)"
  - 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: fsmonitor_ipc__is_supported
    functionSourceFile: /src/git/fsmonitor-ipc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fsmonitor_ipc__is_supported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipc_get_active_state
      Src: /src/git/fsmonitor-ipc.c:55,1
    - Dst: fsmonitor_ipc__get_path
      Src: /src/git/fsmonitor-ipc.c:55,1
    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: fsmonitor_ipc__get_state
    functionSourceFile: /src/git/fsmonitor-ipc.c
    functionUses: 2
    functionsReached:
    - ipc_get_active_state
    - fsmonitor_ipc__get_path
    linkageType: ''
    returnType: enum ipc_active_state
    signature: enum ipc_active_state fsmonitor_ipc__get_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/fsmonitor-ipc.c:65,1
    - Dst: run_command
      Src: /src/git/fsmonitor-ipc.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 8
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: spawn_daemon
    functionSourceFile: /src/git/fsmonitor-ipc.c
    functionUses: 0
    functionsReached:
    - strvec_pushl
    - run_command
    linkageType: ''
    returnType: int
    signature: int spawn_daemon(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/fsmonitor-ipc.c:80,1
    - Dst: trace2_region_enter
      Src: /src/git/fsmonitor-ipc.c:85,1
    - Dst: trace2_data_string
      Src: /src/git/fsmonitor-ipc.c:86,1
    - Dst: ipc_client_try_connect
      Src: /src/git/fsmonitor-ipc.c:89,1
    - Dst: fsmonitor_ipc__get_path
      Src: /src/git/fsmonitor-ipc.c:89,1
    - Dst: ipc_client_send_command_to_connection
      Src: /src/git/fsmonitor-ipc.c:94,1
    - Dst: ipc_client_close_connection
      Src: /src/git/fsmonitor-ipc.c:96,1
    - Dst: trace2_data_intmax
      Src: /src/git/fsmonitor-ipc.c:98,1
    - Dst: spawn_daemon
      Src: /src/git/fsmonitor-ipc.c:108,1
    - Dst: error
      Src: /src/git/fsmonitor-ipc.c:124,1
    - Dst: _
      Src: /src/git/fsmonitor-ipc.c:124,1
    - Dst: fsmonitor_ipc__get_path
      Src: /src/git/fsmonitor-ipc.c:125,1
    - Dst: error
      Src: /src/git/fsmonitor-ipc.c:130,1
    - Dst: _
      Src: /src/git/fsmonitor-ipc.c:130,1
    - Dst: fsmonitor_ipc__get_path
      Src: /src/git/fsmonitor-ipc.c:131,1
    - Dst: trace2_region_leave
      Src: /src/git/fsmonitor-ipc.c:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - since_token
    - answer
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 139
    functionName: fsmonitor_ipc__send_query
    functionSourceFile: /src/git/fsmonitor-ipc.c
    functionUses: 1
    functionsReached:
    - error
    - fsmonitor_ipc__get_path
    - trace2_data_intmax
    - spawn_daemon
    - trace2_region_leave
    - trace2_region_enter
    - ipc_client_send_command_to_connection
    - strlen
    - ipc_client_try_connect
    - _
    - ipc_client_close_connection
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: "int fsmonitor_ipc__send_query(const char *since_token,\n\t\t\t      struct
      strbuf *answer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/fsmonitor-ipc.c:150,1
    - Dst: strbuf_reset
      Src: /src/git/fsmonitor-ipc.c:152,1
    - Dst: ipc_client_try_connect
      Src: /src/git/fsmonitor-ipc.c:157,1
    - Dst: fsmonitor_ipc__get_path
      Src: /src/git/fsmonitor-ipc.c:157,1
    - Dst: die
      Src: /src/git/fsmonitor-ipc.c:160,1
    - Dst: _
      Src: /src/git/fsmonitor-ipc.c:160,1
    - Dst: ipc_client_send_command_to_connection
      Src: /src/git/fsmonitor-ipc.c:164,1
    - Dst: ipc_client_close_connection
      Src: /src/git/fsmonitor-ipc.c:166,1
    - Dst: die
      Src: /src/git/fsmonitor-ipc.c:169,1
    - Dst: _
      Src: /src/git/fsmonitor-ipc.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - command
    - answer
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 174
    functionName: fsmonitor_ipc__send_command
    functionSourceFile: /src/git/fsmonitor-ipc.c
    functionUses: 0
    functionsReached:
    - die
    - fsmonitor_ipc__get_path
    - strbuf_reset
    - ipc_client_send_command_to_connection
    - strlen
    - ipc_client_try_connect
    - _
    - ipc_client_close_connection
    linkageType: ''
    returnType: int
    signature: "int fsmonitor_ipc__send_command(const char *command,\n\t\t\t\tstruct
      strbuf *answer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/combine-diff.c:26,1
    - Dst: S_ISDIR
      Src: /src/git/combine-diff.c:26,1
    - Dst: strcmp
      Src: /src/git/combine-diff.c:27,1
    - Dst: base_name_compare
      Src: /src/git/combine-diff.c:29,1
    - Dst: strlen
      Src: /src/git/combine-diff.c:29,1
    - Dst: strlen
      Src: /src/git/combine-diff.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - struct combine_diff_path*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: compare_paths
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - base_name_compare
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int compare_paths(const struct combine_diff_path *one,\n\t\t\t  const
      struct diff_filespec *two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: filename_changed
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int filename_changed(char status)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: diff_unmodified_pair
      Src: /src/git/combine-diff.c:50,1
    - Dst: combine_diff_path_new
      Src: /src/git/combine-diff.c:52,1
    - Dst: strlen
      Src: /src/git/combine-diff.c:53,1
    - Dst: oidcpy
      Src: /src/git/combine-diff.c:57,1
    - Dst: filename_changed
      Src: /src/git/combine-diff.c:62,1
    - Dst: xstrdup
      Src: /src/git/combine-diff.c:63,1
    - Dst: compare_paths
      Src: /src/git/combine-diff.c:78,1
    - Dst: free
      Src: /src/git/combine-diff.c:84,1
    - Dst: free
      Src: /src/git/combine-diff.c:85,1
    - Dst: oidcpy
      Src: /src/git/combine-diff.c:95,1
    - Dst: filename_changed
      Src: /src/git/combine-diff.c:99,1
    - Dst: xstrdup
      Src: /src/git/combine-diff.c:100,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - curr
    - n
    - num_parent
    - combined_all_paths
    argTypes:
    - struct combine_diff_path*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 106
    functionName: intersect_paths
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - filename_changed
    - compare_paths
    - oidcpy
    - diff_unmodified_pair
    - combine_diff_path_new
    - strlen
    - free
    - xstrdup
    linkageType: ''
    returnType: struct combine_diff_path
    signature: "struct combine_diff_path *intersect_paths(\n\tstruct combine_diff_path
      *curr,\n\tint n,\n\tint num_parent,\n\tint combined_all_paths)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XDL_ISSPACE
      Src: /src/git/combine-diff.c:144,1
    - Dst: XDL_ISSPACE
      Src: /src/git/combine-diff.c:145,1
    - Dst: memcmp
      Src: /src/git/combine-diff.c:149,1
    - Dst: XDL_ISSPACE
      Src: /src/git/combine-diff.c:154,1
    - Dst: XDL_ISSPACE
      Src: /src/git/combine-diff.c:154,1
    - Dst: XDL_ISSPACE
      Src: /src/git/combine-diff.c:156,1
    - Dst: XDL_ISSPACE
      Src: /src/git/combine-diff.c:156,1
    - Dst: XDL_ISSPACE
      Src: /src/git/combine-diff.c:159,1
    - Dst: XDL_ISSPACE
      Src: /src/git/combine-diff.c:160,1
    - Dst: XDL_ISSPACE
      Src: /src/git/combine-diff.c:168,1
    - Dst: XDL_ISSPACE
      Src: /src/git/combine-diff.c:169,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 32
    argCount: 5
    argNames:
    - line1
    - len1
    - line2
    - len2
    - flags
    argTypes:
    - char*
    - int
    - char*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 177
    functionName: match_string_spaces
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - XDL_ISSPACE
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int match_string_spaces(const char *line1, int len1,\n\t\t\t       const
      char *line2, int len2,\n\t\t\t       long flags)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/combine-diff.c:210,1
    - Dst: st_add
      Src: /src/git/combine-diff.c:210,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/combine-diff.c:211,1
    - Dst: st_add
      Src: /src/git/combine-diff.c:211,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/combine-diff.c:213,1
    - Dst: st_add
      Src: /src/git/combine-diff.c:213,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/combine-diff.c:214,1
    - Dst: st_add
      Src: /src/git/combine-diff.c:214,1
    - Dst: match_string_spaces
      Src: /src/git/combine-diff.c:222,1
    - Dst: free
      Src: /src/git/combine-diff.c:241,1
    - Dst: free
      Src: /src/git/combine-diff.c:242,1
    - Dst: free
      Src: /src/git/combine-diff.c:295,1
    - Dst: free
      Src: /src/git/combine-diff.c:299,1
    - Dst: free
      Src: /src/git/combine-diff.c:300,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 6
    argNames:
    - base
    - lenbase
    - newline
    - lennew
    - parent
    - flags
    argTypes:
    - struct lline*
    - int*
    - struct lline*
    - int
    - unsigned long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 303
    functionName: coalesce_lines
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - free
    - st_add
    - match_string_spaces
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct lline
    signature: "struct lline *coalesce_lines(struct lline *base, int *lenbase,\n\t\t\t\t
      \   struct lline *newline, int lennew,\n\t\t\t\t    unsigned long parent, long
      flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/combine-diff.c:313,1
    - Dst: strbuf_addf
      Src: /src/git/combine-diff.c:315,1
    - Dst: oid_to_hex
      Src: /src/git/combine-diff.c:315,1
    - Dst: strbuf_detach
      Src: /src/git/combine-diff.c:317,1
    - Dst: is_null_oid
      Src: /src/git/combine-diff.c:318,1
    - Dst: xcalloc
      Src: /src/git/combine-diff.c:321,1
    - Dst: alloc_filespec
      Src: /src/git/combine-diff.c:323,1
    - Dst: fill_filespec
      Src: /src/git/combine-diff.c:324,1
    - Dst: fill_textconv
      Src: /src/git/combine-diff.c:325,1
    - Dst: free_filespec
      Src: /src/git/combine-diff.c:326,1
    - Dst: odb_read_object
      Src: /src/git/combine-diff.c:328,1
    - Dst: die
      Src: /src/git/combine-diff.c:330,1
    - Dst: _
      Src: /src/git/combine-diff.c:330,1
    - Dst: oid_to_hex
      Src: /src/git/combine-diff.c:330,1
    - Dst: die
      Src: /src/git/combine-diff.c:332,1
    - Dst: oid_to_hex
      Src: /src/git/combine-diff.c:332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - r
    - oid
    - mode
    - size
    - textconv
    - path
    argTypes:
    - struct repository*
    - struct object_id*
    - unsigned int
    - unsigned long*
    - struct userdiff_driver*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 335
    functionName: grab_blob
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - fill_textconv
    - strbuf_addf
    - S_ISGITLINK
    - alloc_filespec
    - is_null_oid
    - strbuf_detach
    - xcalloc
    - fill_filespec
    - odb_read_object
    - free_filespec
    - _
    linkageType: ''
    returnType: char
    signature: "char *grab_blob(struct repository *r,\n\t\t       const struct object_id
      *oid, unsigned int mode,\n\t\t       unsigned long *size, struct userdiff_driver
      *textconv,\n\t\t       const char *path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/combine-diff.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - sline
    - n
    - line
    - len
    argTypes:
    - struct sline*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 355
    functionName: append_lost
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - FLEX_ALLOC_MEM
    linkageType: ''
    returnType: void
    signature: void append_lost(struct sline *sline, int n, const char *line, int
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/combine-diff.c:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - state_
    - ob
    - 'on'
    - nb
    - nn
    - UNUSED
    - UNUSED
    argTypes:
    - void*
    - long
    - long
    - long
    - long
    - char*
    - long funclen
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 399
    functionName: consume_hunk
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void consume_hunk(void *state_,\n\t\t\t long ob, long on,\n\t\t\t
      long nb, long nn,\n\t\t\t const char *func UNUSED, long funclen UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: append_lost
      Src: /src/git/combine-diff.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - state_
    - line
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 416
    functionName: consume_line
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - append_lost
    linkageType: ''
    returnType: int
    signature: int consume_line(void *state_, char *line, unsigned long len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: grab_blob
      Src: /src/git/combine-diff.c:437,1
    - Dst: memset
      Src: /src/git/combine-diff.c:439,1
    - Dst: memset
      Src: /src/git/combine-diff.c:441,1
    - Dst: memset
      Src: /src/git/combine-diff.c:442,1
    - Dst: xdi_diff_outf
      Src: /src/git/combine-diff.c:449,1
    - Dst: die
      Src: /src/git/combine-diff.c:451,1
    - Dst: oid_to_hex
      Src: /src/git/combine-diff.c:452,1
    - Dst: free
      Src: /src/git/combine-diff.c:453,1
    - Dst: coalesce_lines
      Src: /src/git/combine-diff.c:469,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 12
    argNames:
    - r
    - parent
    - mode
    - result_file
    - sline
    - cnt
    - n
    - num_parent
    - result_deleted
    - textconv
    - path
    - flags
    argTypes:
    - struct repository*
    - struct object_id*
    - unsigned int
    - mmfile_t*
    - struct sline*
    - unsigned int
    - int
    - int
    - int
    - struct userdiff_driver*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 487
    functionName: combine_diff
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - memset
    - oid_to_hex
    - die
    - grab_blob
    - coalesce_lines
    - free
    - xdi_diff_outf
    linkageType: ''
    returnType: void
    signature: "void combine_diff(struct repository *r,\n\t\t\t const struct object_id
      *parent, unsigned int mode,\n\t\t\t mmfile_t *result_file,\n\t\t\t struct sline
      *sline, unsigned int cnt, int n,\n\t\t\t int num_parent, int result_deleted,\n\t\t\t
      struct userdiff_driver *textconv,\n\t\t\t const char *path, long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - sline
    - all_mask
    argTypes:
    - struct sline*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: interesting
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int interesting(struct sline *sline, unsigned long all_mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - sline
    - all_mask
    - hunk_begin
    - i
    argTypes:
    - struct sline*
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 515
    functionName: adjust_hunk_tail
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long adjust_hunk_tail(struct sline *sline,\n\t\t\t\t      unsigned
      long all_mask,\n\t\t\t\t      unsigned long hunk_begin,\n\t\t\t\t      unsigned
      long i)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - sline
    - mark
    - i
    - cnt
    - look_for_uninteresting
    argTypes:
    - struct sline*
    - unsigned long
    - unsigned long
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 538
    functionName: find_next
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long find_next(struct sline *sline,\n\t\t\t       unsigned
      long mark,\n\t\t\t       unsigned long i,\n\t\t\t       unsigned long cnt,\n\t\t\t
      \      int look_for_uninteresting)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_next
      Src: /src/git/combine-diff.c:556,1
    - Dst: find_next
      Src: /src/git/combine-diff.c:575,1
    - Dst: find_next
      Src: /src/git/combine-diff.c:580,1
    - Dst: adjust_hunk_tail
      Src: /src/git/combine-diff.c:581,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - sline
    - cnt
    - num_parent
    argTypes:
    - struct sline*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 603
    functionName: give_context
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - adjust_hunk_tail
    - find_next
    linkageType: ''
    returnType: int
    signature: int give_context(struct sline *sline, unsigned long cnt, int num_parent)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: interesting
      Src: /src/git/combine-diff.c:614,1
    - Dst: give_context
      Src: /src/git/combine-diff.c:620,1
    - Dst: adjust_hunk_tail
      Src: /src/git/combine-diff.c:643,1
    - Dst: give_context
      Src: /src/git/combine-diff.c:717,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 60
    argCount: 4
    argNames:
    - sline
    - cnt
    - num_parent
    - dense
    argTypes:
    - struct sline*
    - unsigned long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 719
    functionName: make_hunks
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - adjust_hunk_tail
    - give_context
    - interesting
    linkageType: ''
    returnType: int
    signature: "int make_hunks(struct sline *sline, unsigned long cnt,\n\t\t       int
      num_parent, int dense)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/combine-diff.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - sline
    - l0
    - l1
    - n
    - null_context
    argTypes:
    - struct sline*
    - unsigned long
    - unsigned long
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 726
    functionName: show_parent_lno
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void show_parent_lno(struct sline *sline, unsigned long l0, unsigned
      long l1, int n, unsigned long null_context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/git/combine-diff.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - bol
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 736
    functionName: hunk_comment_line
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - isalpha
    linkageType: ''
    returnType: int
    signature: int hunk_comment_line(const char *bol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/combine-diff.c:742,1
    - Dst: printf
      Src: /src/git/combine-diff.c:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - line
    - len
    - reset
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 748
    functionName: show_line_to_eol
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - strlen
    - printf
    linkageType: ''
    returnType: void
    signature: void show_line_to_eol(const char *line, int len, const char *reset)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: diff_get_color
      Src: /src/git/combine-diff.c:758,1
    - Dst: diff_get_color
      Src: /src/git/combine-diff.c:759,1
    - Dst: diff_get_color
      Src: /src/git/combine-diff.c:760,1
    - Dst: diff_get_color
      Src: /src/git/combine-diff.c:761,1
    - Dst: diff_get_color
      Src: /src/git/combine-diff.c:762,1
    - Dst: diff_get_color
      Src: /src/git/combine-diff.c:763,1
    - Dst: hunk_comment_line
      Src: /src/git/combine-diff.c:775,1
    - Dst: printf
      Src: /src/git/combine-diff.c:807,1
    - Dst: putchar
      Src: /src/git/combine-diff.c:808,1
    - Dst: show_parent_lno
      Src: /src/git/combine-diff.c:810,1
    - Dst: printf
      Src: /src/git/combine-diff.c:811,1
    - Dst: putchar
      Src: /src/git/combine-diff.c:812,1
    - Dst: isspace
      Src: /src/git/combine-diff.c:820,1
    - Dst: printf
      Src: /src/git/combine-diff.c:824,1
    - Dst: putchar
      Src: /src/git/combine-diff.c:828,1
    - Dst: printf
      Src: /src/git/combine-diff.c:831,1
    - Dst: printf
      Src: /src/git/combine-diff.c:839,1
    - Dst: putchar
      Src: /src/git/combine-diff.c:842,1
    - Dst: putchar
      Src: /src/git/combine-diff.c:844,1
    - Dst: show_line_to_eol
      Src: /src/git/combine-diff.c:846,1
    - Dst: fputs
      Src: /src/git/combine-diff.c:852,1
    - Dst: fputs
      Src: /src/git/combine-diff.c:860,1
    - Dst: fputs
      Src: /src/git/combine-diff.c:863,1
    - Dst: putchar
      Src: /src/git/combine-diff.c:866,1
    - Dst: putchar
      Src: /src/git/combine-diff.c:868,1
    - Dst: show_line_to_eol
      Src: /src/git/combine-diff.c:871,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 76
    argCount: 6
    argNames:
    - sline
    - line_prefix
    - cnt
    - num_parent
    - use_color
    - result_deleted
    argTypes:
    - struct sline*
    - char*
    - unsigned long
    - int
    - enum git_colorbool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 874
    functionName: dump_sline
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - isspace
    - show_line_to_eol
    - putchar
    - fputs
    - show_parent_lno
    - diff_get_color
    - hunk_comment_line
    - printf
    linkageType: ''
    returnType: void
    signature: "void dump_sline(struct sline *sline, const char *line_prefix,\n\t\t
      \      unsigned long cnt, int num_parent,\n\t\t       enum git_colorbool use_color,
      int result_deleted)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - sline
    - cnt
    - i
    - j
    argTypes:
    - struct sline*
    - unsigned long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 901
    functionName: reuse_combine_diff
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void reuse_combine_diff(struct sline *sline, unsigned long cnt,\n\t\t\t
      \      int i, int j)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/combine-diff.c:911,1
    - Dst: strbuf_addstr
      Src: /src/git/combine-diff.c:912,1
    - Dst: strbuf_addstr
      Src: /src/git/combine-diff.c:913,1
    - Dst: strbuf_addstr
      Src: /src/git/combine-diff.c:914,1
    - Dst: quote_two_c_style
      Src: /src/git/combine-diff.c:915,1
    - Dst: strbuf_addstr
      Src: /src/git/combine-diff.c:916,1
    - Dst: puts
      Src: /src/git/combine-diff.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - head
    - prefix
    - path
    - line_prefix
    - c_meta
    - c_reset
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 903
    functionDepth: 4
    functionLinenumber: 903
    functionLinenumberEnd: 918
    functionName: dump_quoted_path
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - quote_two_c_style
    - puts
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void dump_quoted_path(const char *head,\n\t\t\t     const char *prefix,\n\t\t\t
      \    const char *path,\n\t\t\t     const char *line_prefix,\n\t\t\t     const
      char *c_meta, const char *c_reset)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: diff_get_color_opt
      Src: /src/git/combine-diff.c:931,1
    - Dst: diff_get_color_opt
      Src: /src/git/combine-diff.c:932,1
    - Dst: show_log
      Src: /src/git/combine-diff.c:940,1
    - Dst: dump_quoted_path
      Src: /src/git/combine-diff.c:942,1
    - Dst: printf
      Src: /src/git/combine-diff.c:944,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/combine-diff.c:946,1
    - Dst: printf
      Src: /src/git/combine-diff.c:948,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/combine-diff.c:950,1
    - Dst: printf
      Src: /src/git/combine-diff.c:951,1
    - Dst: printf
      Src: /src/git/combine-diff.c:963,1
    - Dst: printf
      Src: /src/git/combine-diff.c:967,1
    - Dst: printf
      Src: /src/git/combine-diff.c:969,1
    - Dst: printf
      Src: /src/git/combine-diff.c:971,1
    - Dst: printf
      Src: /src/git/combine-diff.c:975,1
    - Dst: printf
      Src: /src/git/combine-diff.c:977,1
    - Dst: dump_quoted_path
      Src: /src/git/combine-diff.c:989,1
    - Dst: dump_quoted_path
      Src: /src/git/combine-diff.c:992,1
    - Dst: dump_quoted_path
      Src: /src/git/combine-diff.c:997,1
    - Dst: dump_quoted_path
      Src: /src/git/combine-diff.c:1000,1
    - Dst: dump_quoted_path
      Src: /src/git/combine-diff.c:1004,1
    - Dst: dump_quoted_path
      Src: /src/git/combine-diff.c:1007,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 6
    argNames:
    - elem
    - num_parent
    - rev
    - line_prefix
    - mode_differs
    - show_file_header
    argTypes:
    - struct combine_diff_path*
    - int
    - struct rev_info*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 920
    functionDepth: 5
    functionLinenumber: 920
    functionLinenumberEnd: 1009
    functionName: show_combined_header
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - show_log
    - dump_quoted_path
    - repo_find_unique_abbrev
    - diff_get_color_opt
    - printf
    linkageType: ''
    returnType: void
    signature: "void show_combined_header(struct combine_diff_path *elem,\n\t\t\t\t
      int num_parent,\n\t\t\t\t struct rev_info *rev,\n\t\t\t\t const char *line_prefix,\n\t\t\t\t
      int mode_differs,\n\t\t\t\t int show_file_header)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: diff_line_prefix
      Src: /src/git/combine-diff.c:1026,1
    - Dst: userdiff_find_by_path
      Src: /src/git/combine-diff.c:1029,1
    - Dst: userdiff_find_by_name
      Src: /src/git/combine-diff.c:1031,1
    - Dst: userdiff_get_textconv
      Src: /src/git/combine-diff.c:1033,1
    - Dst: grab_blob
      Src: /src/git/combine-diff.c:1037,1
    - Dst: lstat
      Src: /src/git/combine-diff.c:1044,1
    - Dst: S_ISLNK
      Src: /src/git/combine-diff.c:1047,1
    - Dst: strbuf_readlink
      Src: /src/git/combine-diff.c:1050,1
    - Dst: error_errno
      Src: /src/git/combine-diff.c:1051,1
    - Dst: strbuf_detach
      Src: /src/git/combine-diff.c:1055,1
    - Dst: canon_mode
      Src: /src/git/combine-diff.c:1056,1
    - Dst: S_ISDIR
      Src: /src/git/combine-diff.c:1057,1
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/combine-diff.c:1059,1
    - Dst: grab_blob
      Src: /src/git/combine-diff.c:1061,1
    - Dst: grab_blob
      Src: /src/git/combine-diff.c:1065,1
    - Dst: alloc_filespec
      Src: /src/git/combine-diff.c:1068,1
    - Dst: fill_filespec
      Src: /src/git/combine-diff.c:1069,1
    - Dst: null_oid
      Src: /src/git/combine-diff.c:1069,1
    - Dst: fill_textconv
      Src: /src/git/combine-diff.c:1070,1
    - Dst: free_filespec
      Src: /src/git/combine-diff.c:1071,1
    - Dst: open
      Src: /src/git/combine-diff.c:1072,1
    - Dst: xsize_t
      Src: /src/git/combine-diff.c:1073,1
    - Dst: canon_mode
      Src: /src/git/combine-diff.c:1077,1
    - Dst: S_ISLNK
      Src: /src/git/combine-diff.c:1083,1
    - Dst: canon_mode
      Src: /src/git/combine-diff.c:1085,1
    - Dst: xmallocz
      Src: /src/git/combine-diff.c:1088,1
    - Dst: read_in_full
      Src: /src/git/combine-diff.c:1090,1
    - Dst: die_errno
      Src: /src/git/combine-diff.c:1092,1
    - Dst: die
      Src: /src/git/combine-diff.c:1094,1
    - Dst: convert_to_git
      Src: /src/git/combine-diff.c:1100,1
    - Dst: free
      Src: /src/git/combine-diff.c:1102,1
    - Dst: strbuf_detach
      Src: /src/git/combine-diff.c:1103,1
    - Dst: xcalloc
      Src: /src/git/combine-diff.c:1113,1
    - Dst: close
      Src: /src/git/combine-diff.c:1117,1
    - Dst: buffer_is_binary
      Src: /src/git/combine-diff.c:1132,1
    - Dst: grab_blob
      Src: /src/git/combine-diff.c:1136,1
    - Dst: buffer_is_binary
      Src: /src/git/combine-diff.c:1140,1
    - Dst: free
      Src: /src/git/combine-diff.c:1142,1
    - Dst: show_combined_header
      Src: /src/git/combine-diff.c:1146,1
    - Dst: printf
      Src: /src/git/combine-diff.c:1148,1
    - Dst: free
      Src: /src/git/combine-diff.c:1149,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/combine-diff.c:1160,1
    - Dst: st_add
      Src: /src/git/combine-diff.c:1160,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/combine-diff.c:1180,1
    - Dst: st_mult
      Src: /src/git/combine-diff.c:1180,1
    - Dst: st_add
      Src: /src/git/combine-diff.c:1180,1
    - Dst: oideq
      Src: /src/git/combine-diff.c:1187,1
    - Dst: reuse_combine_diff
      Src: /src/git/combine-diff.c:1189,1
    - Dst: combine_diff
      Src: /src/git/combine-diff.c:1194,1
    - Dst: make_hunks
      Src: /src/git/combine-diff.c:1202,1
    - Dst: show_combined_header
      Src: /src/git/combine-diff.c:1205,1
    - Dst: dump_sline
      Src: /src/git/combine-diff.c:1207,1
    - Dst: free
      Src: /src/git/combine-diff.c:1210,1
    - Dst: free
      Src: /src/git/combine-diff.c:1218,1
    - Dst: free
      Src: /src/git/combine-diff.c:1222,1
    - Dst: free
      Src: /src/git/combine-diff.c:1223,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 136
    argCount: 4
    argNames:
    - elem
    - num_parent
    - working_tree_file
    - rev
    argTypes:
    - struct combine_diff_path*
    - int
    - int
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1011
    functionDepth: 6
    functionLinenumber: 1011
    functionLinenumberEnd: 1224
    functionName: show_patch_diff
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - error_errno
    - S_ISLNK
    - grab_blob
    - fill_textconv
    - userdiff_find_by_path
    - xsize_t
    - fill_filespec
    - free
    - CALLOC_ARRAY
    - convert_to_git
    - dump_sline
    - st_add
    - printf
    - make_hunks
    - die
    - combine_diff
    - repo_resolve_gitlink_ref
    - xcalloc
    - free_filespec
    - reuse_combine_diff
    - userdiff_find_by_name
    - xmallocz
    - die_errno
    - alloc_filespec
    - userdiff_get_textconv
    - read_in_full
    - show_combined_header
    - strbuf_detach
    - diff_line_prefix
    - lstat
    - st_mult
    - S_ISDIR
    - open
    - buffer_is_binary
    - strbuf_readlink
    - canon_mode
    - close
    - null_oid
    - oideq
    linkageType: ''
    returnType: void
    signature: "void show_patch_diff(struct combine_diff_path *elem, int num_parent,\n\t\t\t
      \   int working_tree_file,\n\t\t\t    struct rev_info *rev)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: diff_line_prefix
      Src: /src/git/combine-diff.c:1230,1
    - Dst: show_log
      Src: /src/git/combine-diff.c:1238,1
    - Dst: printf
      Src: /src/git/combine-diff.c:1242,1
    - Dst: putchar
      Src: /src/git/combine-diff.c:1246,1
    - Dst: printf
      Src: /src/git/combine-diff.c:1250,1
    - Dst: printf
      Src: /src/git/combine-diff.c:1251,1
    - Dst: printf
      Src: /src/git/combine-diff.c:1255,1
    - Dst: diff_aligned_abbrev
      Src: /src/git/combine-diff.c:1255,1
    - Dst: printf
      Src: /src/git/combine-diff.c:1257,1
    - Dst: diff_aligned_abbrev
      Src: /src/git/combine-diff.c:1257,1
    - Dst: putchar
      Src: /src/git/combine-diff.c:1262,1
    - Dst: putchar
      Src: /src/git/combine-diff.c:1263,1
    - Dst: write_name_quoted
      Src: /src/git/combine-diff.c:1271,1
    - Dst: write_name_quoted
      Src: /src/git/combine-diff.c:1273,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - p
    - num_parent
    - rev
    argTypes:
    - struct combine_diff_path*
    - int
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1274
    functionName: show_raw_diff
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - show_log
    - putchar
    - printf
    - write_name_quoted
    - diff_line_prefix
    - diff_aligned_abbrev
    linkageType: ''
    returnType: void
    signature: void show_raw_diff(struct combine_diff_path *p, int num_parent, struct
      rev_info *rev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: show_raw_diff
      Src: /src/git/combine-diff.c:1291,1
    - Dst: show_patch_diff
      Src: /src/git/combine-diff.c:1293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - p
    - num_parent
    - rev
    argTypes:
    - struct combine_diff_path*
    - int
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1282
    functionDepth: 7
    functionLinenumber: 1282
    functionLinenumberEnd: 1294
    functionName: show_combined_diff
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 2
    functionsReached:
    - show_patch_diff
    - show_raw_diff
    linkageType: ''
    returnType: void
    signature: "void show_combined_diff(struct combine_diff_path *p,\n\t\t       int
      num_parent,\n\t\t       struct rev_info *rev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/combine-diff.c:1298,1
    - Dst: free
      Src: /src/git/combine-diff.c:1299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pair
    argTypes:
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1300
    functionName: free_combined_pair
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_combined_pair(struct diff_filepair *pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/combine-diff.c:1318,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/combine-diff.c:1319,1
    - Dst: st_add
      Src: /src/git/combine-diff.c:1319,1
    - Dst: oidcpy
      Src: /src/git/combine-diff.c:1326,1
    - Dst: is_null_oid
      Src: /src/git/combine-diff.c:1327,1
    - Dst: oidcpy
      Src: /src/git/combine-diff.c:1334,1
    - Dst: is_null_oid
      Src: /src/git/combine-diff.c:1335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - p
    - num_parent
    argTypes:
    - struct combine_diff_path*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1337
    functionName: combined_pair
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - st_add
    - is_null_oid
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct diff_filepair
    signature: "struct diff_filepair *combined_pair(struct combine_diff_path *p,\n\t\t\t\t\t
      \  int num_parent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/combine-diff.c:1348,1
    - Dst: combined_pair
      Src: /src/git/combine-diff.c:1352,1
    - Dst: struct diff_options*::format_callback
      Src: /src/git/combine-diff.c:1353,1
    - Dst: free_combined_pair
      Src: /src/git/combine-diff.c:1355,1
    - Dst: free
      Src: /src/git/combine-diff.c:1356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - opt
    - paths
    - num_parent
    - num_paths
    argTypes:
    - struct diff_options*
    - struct combine_diff_path*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1339
    functionDepth: 4
    functionLinenumber: 1339
    functionLinenumberEnd: 1357
    functionName: handle_combined_callback
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - combined_pair
    - struct diff_options*::format_callback
    - CALLOC_ARRAY
    - free
    - free_combined_pair
    linkageType: ''
    returnType: void
    signature: "void handle_combined_callback(struct diff_options *opt,\n\t\t\t\t
      \    struct combine_diff_path *paths,\n\t\t\t\t     int num_parent,\n\t\t\t\t
      \    int num_paths)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1364
    functionName: path_path
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *path_path(void *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_tree_oid
      Src: /src/git/combine-diff.c:1401,1
    - Dst: diffcore_std
      Src: /src/git/combine-diff.c:1402,1
    - Dst: intersect_paths
      Src: /src/git/combine-diff.c:1403,1
    - Dst: diffcore_order
      Src: /src/git/combine-diff.c:1409,1
    - Dst: diff_flush
      Src: /src/git/combine-diff.c:1412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - oid
    - parents
    - opt
    - combined_all_paths
    argTypes:
    - struct object_id*
    - struct oid_array*
    - struct diff_options*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1376
    functionDepth: 4
    functionLinenumber: 1376
    functionLinenumberEnd: 1418
    functionName: find_paths_generic
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - diffcore_order
    - intersect_paths
    - diff_tree_oid
    - diff_flush
    - diffcore_std
    linkageType: ''
    returnType: struct combine_diff_path
    signature: "struct combine_diff_path *find_paths_generic(const struct object_id
      *oid,\n\tconst struct oid_array *parents,\n\tstruct diff_options *opt,\n\tint
      combined_all_paths)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/combine-diff.c:1434,1
    - Dst: strbuf_init
      Src: /src/git/combine-diff.c:1438,1
    - Dst: diff_tree_paths
      Src: /src/git/combine-diff.c:1439,1
    - Dst: strbuf_release
      Src: /src/git/combine-diff.c:1441,1
    - Dst: free
      Src: /src/git/combine-diff.c:1442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - oid
    - parents
    - opt
    argTypes:
    - struct object_id*
    - struct oid_array*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1425
    functionDepth: 3
    functionLinenumber: 1425
    functionLinenumberEnd: 1444
    functionName: find_paths_multitree
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - ALLOC_ARRAY
    - diff_tree_paths
    - free
    - strbuf_init
    linkageType: ''
    returnType: struct combine_diff_path
    signature: "struct combine_diff_path *find_paths_multitree(\n\tconst struct object_id
      *oid, const struct oid_array *parents,\n\tstruct diff_options *opt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidset_contains
      Src: /src/git/combine-diff.c:1451,1
    - Dst: oidset_contains
      Src: /src/git/combine-diff.c:1454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - path
    - num_parent
    - set
    argTypes:
    - struct combine_diff_path*
    - int
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1446
    functionDepth: 2
    functionLinenumber: 1446
    functionLinenumberEnd: 1458
    functionName: match_objfind
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - oidset_contains
    linkageType: ''
    returnType: int
    signature: "int match_objfind(struct combine_diff_path *path,\n\t\t\t int num_parent,\n\t\t\t
      const struct oidset *set)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_objfind
      Src: /src/git/combine-diff.c:1470,1
    - Dst: free
      Src: /src/git/combine-diff.c:1475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - opt
    - paths
    - num_parent
    argTypes:
    - struct diff_options*
    - struct combine_diff_path*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1460
    functionDepth: 3
    functionLinenumber: 1460
    functionLinenumberEnd: 1481
    functionName: combined_objfind
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - match_objfind
    - free
    linkageType: ''
    returnType: struct combine_diff_path
    signature: "struct combine_diff_path *combined_objfind(struct diff_options *opt,\n\t\t\t\t\t\t
      \ struct combine_diff_path *paths,\n\t\t\t\t\t\t  int num_parent)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/combine-diff.c:1494,1
    - Dst: die
      Src: /src/git/combine-diff.c:1497,1
    - Dst: show_log
      Src: /src/git/combine-diff.c:1507,1
    - Dst: commit_format_is_empty
      Src: /src/git/combine-diff.c:1511,1
    - Dst: printf
      Src: /src/git/combine-diff.c:1512,1
    - Dst: diff_line_prefix
      Src: /src/git/combine-diff.c:1512,1
    - Dst: copy_pathspec
      Src: /src/git/combine-diff.c:1517,1
    - Dst: find_paths_generic
      Src: /src/git/combine-diff.c:1554,1
    - Dst: find_paths_multitree
      Src: /src/git/combine-diff.c:1559,1
    - Dst: combined_objfind
      Src: /src/git/combine-diff.c:1562,1
    - Dst: diff_tree_oid
      Src: /src/git/combine-diff.c:1572,1
    - Dst: diffcore_std
      Src: /src/git/combine-diff.c:1573,1
    - Dst: diffcore_order
      Src: /src/git/combine-diff.c:1575,1
    - Dst: diff_flush
      Src: /src/git/combine-diff.c:1576,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/combine-diff.c:1588,1
    - Dst: order_objects
      Src: /src/git/combine-diff.c:1591,1
    - Dst: free
      Src: /src/git/combine-diff.c:1600,1
    - Dst: show_raw_diff
      Src: /src/git/combine-diff.c:1609,1
    - Dst: handle_combined_callback
      Src: /src/git/combine-diff.c:1615,1
    - Dst: printf
      Src: /src/git/combine-diff.c:1619,1
    - Dst: diff_line_prefix
      Src: /src/git/combine-diff.c:1619,1
    - Dst: show_patch_diff
      Src: /src/git/combine-diff.c:1622,1
    - Dst: free
      Src: /src/git/combine-diff.c:1631,1
    - Dst: free
      Src: /src/git/combine-diff.c:1632,1
    - Dst: clear_pathspec
      Src: /src/git/combine-diff.c:1635,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 76
    argCount: 3
    argNames:
    - oid
    - parents
    - rev
    argTypes:
    - struct object_id*
    - struct oid_array*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1483
    functionDepth: 7
    functionLinenumber: 1483
    functionLinenumberEnd: 1636
    functionName: diff_tree_combined
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - show_log
    - find_paths_generic
    - find_paths_multitree
    - handle_combined_callback
    - combined_objfind
    - free
    - printf
    - die
    - ALLOC_ARRAY
    - diffcore_order
    - copy_pathspec
    - diff_flush
    - diff_line_prefix
    - commit_format_is_empty
    - show_raw_diff
    - order_objects
    - clear_pathspec
    - diff_tree_oid
    - diffcore_std
    - show_patch_diff
    linkageType: ''
    returnType: void
    signature: "void diff_tree_combined(const struct object_id *oid,\n\t\t\tconst
      struct oid_array *parents,\n\t\t\tstruct rev_info *rev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_saved_parents
      Src: /src/git/combine-diff.c:1641,1
    - Dst: oid_array_append
      Src: /src/git/combine-diff.c:1645,1
    - Dst: diff_tree_combined
      Src: /src/git/combine-diff.c:1648,1
    - Dst: oid_array_clear
      Src: /src/git/combine-diff.c:1649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - commit
    - rev
    argTypes:
    - struct commit*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1638
    functionDepth: 8
    functionLinenumber: 1638
    functionLinenumberEnd: 1650
    functionName: diff_tree_combined_merge
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 0
    functionsReached:
    - diff_tree_combined
    - oid_array_clear
    - oid_array_append
    - get_saved_parents
    linkageType: ''
    returnType: void
    signature: "void diff_tree_combined_merge(const struct commit *commit,\n\t\t\t
      \     struct rev_info *rev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: st_mult
      Src: /src/git/combine-diff.c:1659,1
    - Dst: xmalloc
      Src: /src/git/combine-diff.c:1661,1
    - Dst: st_add4
      Src: /src/git/combine-diff.c:1661,1
    - Dst: memcpy
      Src: /src/git/combine-diff.c:1663,1
    - Dst: oidcpy
      Src: /src/git/combine-diff.c:1667,1
    - Dst: memset
      Src: /src/git/combine-diff.c:1669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - path
    - path_len
    - mode
    - oid
    - num_parents
    argTypes:
    - char*
    - size_t
    - unsigned int
    - struct object_id*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1652
    functionDepth: 2
    functionLinenumber: 1652
    functionLinenumberEnd: 1672
    functionName: combine_diff_path_new
    functionSourceFile: /src/git/combine-diff.c
    functionUses: 3
    functionsReached:
    - memset
    - oidcpy
    - memcpy
    - xmalloc
    - st_add4
    - st_mult
    linkageType: ''
    returnType: struct combine_diff_path
    signature: "struct combine_diff_path *combine_diff_path_new(const char *path,\n\t\t\t\t\t\tsize_t
      path_len,\n\t\t\t\t\t\tunsigned int mode,\n\t\t\t\t\t\tconst struct object_id
      *oid,\n\t\t\t\t\t\tsize_t num_parents)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: is_dot_or_dotdot
    functionSourceFile: /src/git/dir.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_dot_or_dotdot(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_pathspec
      Src: /src/git/dir.h:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - istate
    - ent
    - pathspec
    - prefix
    - seen
    argTypes:
    - struct index_state*
    - struct dir_entry*
    - struct pathspec*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 585
    functionDepth: 6
    functionLinenumber: 585
    functionLinenumberEnd: 594
    functionName: dir_path_match
    functionSourceFile: /src/git/dir.h
    functionUses: 0
    functionsReached:
    - match_pathspec
    linkageType: ''
    returnType: int
    signature: "int dir_path_match(struct index_state *istate,\n\t\t\t\t const struct
      dir_entry *ent,\n\t\t\t\t const struct pathspec *pathspec,\n\t\t\t\t int prefix,
      char *seen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_match_flags
      Src: /src/git/dir.h:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: starts_with_dot_slash_native
    functionSourceFile: /src/git/dir.h
    functionUses: 0
    functionsReached:
    - path_match_flags
    linkageType: ''
    returnType: int
    signature: int starts_with_dot_slash_native(const char *const path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_match_flags
      Src: /src/git/dir.h:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 691
    functionName: starts_with_dot_dot_slash_native
    functionSourceFile: /src/git/dir.h
    functionUses: 0
    functionsReached:
    - path_match_flags
    linkageType: ''
    returnType: int
    signature: int starts_with_dot_dot_slash_native(const char *const path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_match_flags
      Src: /src/git/dir.h:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 703
    functionName: starts_with_dot_slash
    functionSourceFile: /src/git/dir.h
    functionUses: 2
    functionsReached:
    - path_match_flags
    linkageType: ''
    returnType: int
    signature: int starts_with_dot_slash(const char *const path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_match_flags
      Src: /src/git/dir.h:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 715
    functionName: starts_with_dot_dot_slash
    functionSourceFile: /src/git/dir.h
    functionUses: 2
    functionsReached:
    - path_match_flags
    linkageType: ''
    returnType: int
    signature: int starts_with_dot_dot_slash(const char *const path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - class
    - ','
    - len
    - ','
    - litmatch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: CC_EQ
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CC_EQ(class, len, litmatch)
  - 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: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: ISASCII
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: ISASCII
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: ISBLANK
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: ISBLANK
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: ISGRAPH
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: ISGRAPH
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: ISPRINT
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ISDIGIT
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: ISALNUM
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: ISALPHA
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: ISCNTRL
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: ISLOWER
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: ISPUNCT
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: ISSPACE
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: ISUPPER
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: ISXDIGIT
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISXDIGIT(c)
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: ISUPPER
      Src: /src/git/wildmatch.c:69,1
    - Dst: tolower
      Src: /src/git/wildmatch.c:70,1
    - Dst: ISUPPER
      Src: /src/git/wildmatch.c:71,1
    - Dst: tolower
      Src: /src/git/wildmatch.c:72,1
    - Dst: dowild
      Src: /src/git/wildmatch.c:108,1
    - Dst: strchr
      Src: /src/git/wildmatch.c:120,1
    - Dst: strchr
      Src: /src/git/wildmatch.c:130,1
    - Dst: is_glob_special
      Src: /src/git/wildmatch.c:148,1
    - Dst: ISUPPER
      Src: /src/git/wildmatch.c:150,1
    - Dst: tolower
      Src: /src/git/wildmatch.c:151,1
    - Dst: ISUPPER
      Src: /src/git/wildmatch.c:154,1
    - Dst: tolower
      Src: /src/git/wildmatch.c:155,1
    - Dst: dowild
      Src: /src/git/wildmatch.c:167,1
    - Dst: ISLOWER
      Src: /src/git/wildmatch.c:207,1
    - Dst: toupper
      Src: /src/git/wildmatch.c:208,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:228,1
    - Dst: ISALNUM
      Src: /src/git/wildmatch.c:229,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:231,1
    - Dst: ISALPHA
      Src: /src/git/wildmatch.c:232,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:234,1
    - Dst: ISBLANK
      Src: /src/git/wildmatch.c:235,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:237,1
    - Dst: ISCNTRL
      Src: /src/git/wildmatch.c:238,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:240,1
    - Dst: ISDIGIT
      Src: /src/git/wildmatch.c:241,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:243,1
    - Dst: ISGRAPH
      Src: /src/git/wildmatch.c:244,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:246,1
    - Dst: ISLOWER
      Src: /src/git/wildmatch.c:247,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:249,1
    - Dst: ISPRINT
      Src: /src/git/wildmatch.c:250,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:252,1
    - Dst: ISPUNCT
      Src: /src/git/wildmatch.c:253,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:255,1
    - Dst: ISSPACE
      Src: /src/git/wildmatch.c:256,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:258,1
    - Dst: ISUPPER
      Src: /src/git/wildmatch.c:259,1
    - Dst: ISLOWER
      Src: /src/git/wildmatch.c:261,1
    - Dst: CC_EQ
      Src: /src/git/wildmatch.c:263,1
    - Dst: ISXDIGIT
      Src: /src/git/wildmatch.c:264,1
    CyclomaticComplexity: 110
    EdgeCount: 110
    ICount: 190
    argCount: 3
    argNames:
    - p
    - text
    - flags
    argTypes:
    - uchar*
    - uchar*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 283
    functionName: dowild
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 1
    functionsReached:
    - dowild
    - CC_EQ
    - ISPUNCT
    - ISLOWER
    - is_glob_special
    - toupper
    - ISSPACE
    - ISXDIGIT
    - ISDIGIT
    - ISGRAPH
    - strchr
    - ISPRINT
    - ISALNUM
    - ISBLANK
    - ISCNTRL
    - ISUPPER
    - tolower
    - ISALPHA
    linkageType: ''
    returnType: int
    signature: int dowild(const uchar *p, const uchar *text, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dowild
      Src: /src/git/wildmatch.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pattern
    - text
    - flags
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: wildmatch
    functionSourceFile: /src/git/wildmatch.c
    functionUses: 10
    functionsReached:
    - dowild
    linkageType: ''
    returnType: int
    signature: int wildmatch(const char *pattern, const char *text, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: str_end_url_with_slash
      Src: /src/git/http-fetch.c:27,1
    - Dst: http_init
      Src: /src/git/http-fetch.c:29,1
    - Dst: get_http_walker
      Src: /src/git/http-fetch.c:31,1
    - Dst: walker_fetch
      Src: /src/git/http-fetch.c:36,1
    - Dst: walker_targets_free
      Src: /src/git/http-fetch.c:39,1
    - Dst: fprintf
      Src: /src/git/http-fetch.c:42,1
    - Dst: walker_free
      Src: /src/git/http-fetch.c:48,1
    - Dst: http_cleanup
      Src: /src/git/http-fetch.c:49,1
    - Dst: free
      Src: /src/git/http-fetch.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 7
    argNames:
    - raw_url
    - get_verbosely
    - get_recover
    - commits
    - commit_id
    - write_ref
    - commits_on_stdin
    argTypes:
    - char*
    - int
    - int
    - int
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 53
    functionName: fetch_using_walker
    functionSourceFile: /src/git/http-fetch.c
    functionUses: 0
    functionsReached:
    - walker_fetch
    - get_http_walker
    - http_cleanup
    - http_init
    - str_end_url_with_slash
    - free
    - walker_free
    - fprintf
    - walker_targets_free
    linkageType: ''
    returnType: int
    signature: "int fetch_using_walker(const char *raw_url, int get_verbosely,\n\t\t\t
      \     int get_recover, int commits, char **commit_id,\n\t\t\t      const char
      **write_ref, int commits_on_stdin)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: http_init
      Src: /src/git/http-fetch.c:62,1
    - Dst: new_direct_http_pack_request
      Src: /src/git/http-fetch.c:64,1
    - Dst: xstrdup
      Src: /src/git/http-fetch.c:64,1
    - Dst: die
      Src: /src/git/http-fetch.c:66,1
    - Dst: start_active_slot
      Src: /src/git/http-fetch.c:71,1
    - Dst: run_active_slot
      Src: /src/git/http-fetch.c:72,1
    - Dst: url_normalize
      Src: /src/git/http-fetch.c:75,1
    - Dst: git_env_bool
      Src: /src/git/http-fetch.c:76,1
    - Dst: die
      Src: /src/git/http-fetch.c:77,1
    - Dst: die
      Src: /src/git/http-fetch.c:80,1
    - Dst: die
      Src: /src/git/http-fetch.c:87,1
    - Dst: finish_http_pack_request
      Src: /src/git/http-fetch.c:90,1
    - Dst: die
      Src: /src/git/http-fetch.c:91,1
    - Dst: release_http_pack_request
      Src: /src/git/http-fetch.c:93,1
    - Dst: http_cleanup
      Src: /src/git/http-fetch.c:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - packfile_hash
    - url
    - index_pack_args
    argTypes:
    - struct object_id*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 95
    functionName: fetch_single_packfile
    functionSourceFile: /src/git/http-fetch.c
    functionUses: 0
    functionsReached:
    - run_active_slot
    - die
    - git_env_bool
    - release_http_pack_request
    - http_cleanup
    - url_normalize
    - http_init
    - new_direct_http_pack_request
    - finish_http_pack_request
    - start_active_slot
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void fetch_single_packfile(struct object_id *packfile_hash,\n\t\t\t\t
      \ const char *url,\n\t\t\t\t  const char **index_pack_args)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory_gently
      Src: /src/git/http-fetch.c:112,1
    - Dst: usage
      Src: /src/git/http-fetch.c:126,1
    - Dst: strcmp
      Src: /src/git/http-fetch.c:127,1
    - Dst: strcmp
      Src: /src/git/http-fetch.c:129,1
    - Dst: skip_prefix
      Src: /src/git/http-fetch.c:131,1
    - Dst: die
      Src: /src/git/http-fetch.c:135,1
    - Dst: _
      Src: /src/git/http-fetch.c:135,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/http-fetch.c:138,1
    - Dst: die
      Src: /src/git/http-fetch.c:140,1
    - Dst: _
      Src: /src/git/http-fetch.c:140,1
    - Dst: skip_prefix
      Src: /src/git/http-fetch.c:141,1
    - Dst: strvec_push
      Src: /src/git/http-fetch.c:142,1
    - Dst: usage
      Src: /src/git/http-fetch.c:147,1
    - Dst: die
      Src: /src/git/http-fetch.c:150,1
    - Dst: _
      Src: /src/git/http-fetch.c:150,1
    - Dst: trace2_cmd_name
      Src: /src/git/http-fetch.c:152,1
    - Dst: repo_config
      Src: /src/git/http-fetch.c:154,1
    - Dst: die
      Src: /src/git/http-fetch.c:158,1
    - Dst: _
      Src: /src/git/http-fetch.c:158,1
    - Dst: fetch_single_packfile
      Src: /src/git/http-fetch.c:160,1
    - Dst: die
      Src: /src/git/http-fetch.c:167,1
    - Dst: _
      Src: /src/git/http-fetch.c:167,1
    - Dst: walker_targets_stdin
      Src: /src/git/http-fetch.c:170,1
    - Dst: fetch_using_walker
      Src: /src/git/http-fetch.c:176,1
    - Dst: strvec_clear
      Src: /src/git/http-fetch.c:181,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 97
    functionDepth: 13
    functionLinenumber: 97
    functionLinenumberEnd: 183
    functionName: cmd_main
    functionSourceFile: /src/git/http-fetch.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - die
    - parse_oid_hex_algop
    - usage
    - setup_git_directory_gently
    - walker_targets_stdin
    - strvec_clear
    - fetch_single_packfile
    - strcmp
    - trace2_cmd_name
    - fetch_using_walker
    - skip_prefix
    - repo_config
    - _
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_env_ulong
      Src: /src/git/wrapper.c:25,1
    - Dst: error
      Src: /src/git/wrapper.c:31,1
    - Dst: die
      Src: /src/git/wrapper.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - size
    - gentle
    argTypes:
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 5
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: memory_limit_check
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - error
    - die
    - git_env_ulong
    linkageType: ''
    returnType: int
    signature: int memory_limit_check(size_t size, int gentle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/git/wrapper.c:43,1
    - Dst: die
      Src: /src/git/wrapper.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: xstrdup
    functionSourceFile: /src/git/wrapper.c
    functionUses: 136
    functionsReached:
    - strdup
    - die
    linkageType: ''
    returnType: char
    signature: char *xstrdup(const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memory_limit_check
      Src: /src/git/wrapper.c:53,1
    - Dst: malloc
      Src: /src/git/wrapper.c:55,1
    - Dst: malloc
      Src: /src/git/wrapper.c:57,1
    - Dst: die
      Src: /src/git/wrapper.c:60,1
    - Dst: error
      Src: /src/git/wrapper.c:63,1
    - Dst: memset
      Src: /src/git/wrapper.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - size
    - gentle
    argTypes:
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 72
    functionName: do_xmalloc
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - error
    - memset
    - die
    - malloc
    - memory_limit_check
    linkageType: ''
    returnType: void
    signature: void *do_xmalloc(size_t size, int gentle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_xmalloc
      Src: /src/git/wrapper.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 7
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: xmalloc
    functionSourceFile: /src/git/wrapper.c
    functionUses: 72
    functionsReached:
    - do_xmalloc
    linkageType: ''
    returnType: void
    signature: void *xmalloc(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_add_overflows
      Src: /src/git/wrapper.c:82,1
    - Dst: error
      Src: /src/git/wrapper.c:84,1
    - Dst: die
      Src: /src/git/wrapper.c:87,1
    - Dst: do_xmalloc
      Src: /src/git/wrapper.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - size
    - gentle
    argTypes:
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 7
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: do_xmallocz
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - error
    - do_xmalloc
    - die
    - unsigned_add_overflows
    linkageType: ''
    returnType: void
    signature: void *do_xmallocz(size_t size, int gentle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_xmallocz
      Src: /src/git/wrapper.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 8
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: xmallocz
    functionSourceFile: /src/git/wrapper.c
    functionUses: 12
    functionsReached:
    - do_xmallocz
    linkageType: ''
    returnType: void
    signature: void *xmallocz(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_xmallocz
      Src: /src/git/wrapper.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 8
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: xmallocz_gently
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - do_xmallocz
    linkageType: ''
    returnType: void
    signature: void *xmallocz_gently(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/wrapper.c:113,1
    - Dst: xmallocz
      Src: /src/git/wrapper.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 9
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: xmemdupz
    functionSourceFile: /src/git/wrapper.c
    functionUses: 45
    functionsReached:
    - xmallocz
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *xmemdupz(const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/wrapper.c:118,1
    - Dst: xmemdupz
      Src: /src/git/wrapper.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 10
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: xstrndup
    functionSourceFile: /src/git/wrapper.c
    functionUses: 19
    functionsReached:
    - xmemdupz
    - memchr
    linkageType: ''
    returnType: char
    signature: char *xstrndup(const char *str, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/wrapper.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - t
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: xstrncmpz
    functionSourceFile: /src/git/wrapper.c
    functionUses: 5
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int xstrncmpz(const char *s, const char *t, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/wrapper.c:135,1
    - Dst: xmalloc
      Src: /src/git/wrapper.c:136,1
    - Dst: memory_limit_check
      Src: /src/git/wrapper.c:139,1
    - Dst: realloc
      Src: /src/git/wrapper.c:140,1
    - Dst: die
      Src: /src/git/wrapper.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 6
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: xrealloc
    functionSourceFile: /src/git/wrapper.c
    functionUses: 2
    functionsReached:
    - die
    - realloc
    - xmalloc
    - free
    - memory_limit_check
    linkageType: ''
    returnType: void
    signature: void *xrealloc(void *ptr, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_mult_overflows
      Src: /src/git/wrapper.c:150,1
    - Dst: die
      Src: /src/git/wrapper.c:151,1
    - Dst: memory_limit_check
      Src: /src/git/wrapper.c:153,1
    - Dst: calloc
      Src: /src/git/wrapper.c:154,1
    - Dst: calloc
      Src: /src/git/wrapper.c:156,1
    - Dst: die
      Src: /src/git/wrapper.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 146
    functionDepth: 6
    functionLinenumber: 146
    functionLinenumberEnd: 160
    functionName: xcalloc
    functionSourceFile: /src/git/wrapper.c
    functionUses: 42
    functionsReached:
    - calloc
    - memory_limit_check
    - die
    - unsigned_mult_overflows
    linkageType: ''
    returnType: void
    signature: void *xcalloc(size_t nmemb, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/git/wrapper.c:164,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:165,1
    - Dst: _
      Src: /src/git/wrapper.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - name
    - value
    - overwrite
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: xsetenv
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached:
    - setenv
    - die_errno
    - _
    linkageType: ''
    returnType: void
    signature: void xsetenv(const char *name, const char *value, int overwrite)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/wrapper.c:182,1
    - Dst: va_arg
      Src: /src/git/wrapper.c:184,1
    - Dst: va_end
      Src: /src/git/wrapper.c:185,1
    - Dst: open
      Src: /src/git/wrapper.c:188,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:195,1
    - Dst: _
      Src: /src/git/wrapper.c:195,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:197,1
    - Dst: _
      Src: /src/git/wrapper.c:197,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:199,1
    - Dst: _
      Src: /src/git/wrapper.c:199,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:201,1
    - Dst: _
      Src: /src/git/wrapper.c:201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - path
    - oflag
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 203
    functionName: xopen
    functionSourceFile: /src/git/wrapper.c
    functionUses: 5
    functionsReached:
    - open
    - die_errno
    - va_end
    - va_arg
    - _
    - va_start
    linkageType: ''
    returnType: int
    signature: int xopen(const char *path, int oflag, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/git/wrapper.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - poll_events
    - err
    argTypes:
    - int
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 221
    functionName: handle_nonblock
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - poll
    linkageType: ''
    returnType: int
    signature: int handle_nonblock(int fd, short poll_events, int err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/git/wrapper.c:234,1
    - Dst: handle_nonblock
      Src: /src/git/wrapper.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: xread
    functionSourceFile: /src/git/wrapper.c
    functionUses: 12
    functionsReached:
    - read
    - handle_nonblock
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t xread(int fd, void *buf, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/git/wrapper.c:256,1
    - Dst: handle_nonblock
      Src: /src/git/wrapper.c:260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 266
    functionName: xwrite
    functionSourceFile: /src/git/wrapper.c
    functionUses: 8
    functionsReached:
    - write
    - handle_nonblock
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t xwrite(int fd, const void *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pread
      Src: /src/git/wrapper.c:279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - fd
    - buf
    - len
    - offset
    argTypes:
    - int
    - void*
    - size_t
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 284
    functionName: xpread
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - pread
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t xpread(int fd, void *buf, size_t len, off_t offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xread
      Src: /src/git/wrapper.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 303
    functionName: read_in_full
    functionSourceFile: /src/git/wrapper.c
    functionUses: 13
    functionsReached:
    - xread
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_in_full(int fd, void *buf, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xwrite
      Src: /src/git/wrapper.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 324
    functionName: write_in_full
    functionSourceFile: /src/git/wrapper.c
    functionUses: 26
    functionsReached:
    - xwrite
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t write_in_full(int fd, const void *buf, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xpread
      Src: /src/git/wrapper.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - fd
    - buf
    - count
    - offset
    argTypes:
    - int
    - void*
    - size_t
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 344
    functionName: pread_in_full
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached:
    - xpread
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t pread_in_full(int fd, void *buf, size_t count, off_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/git/wrapper.c:348,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 352
    functionName: xdup
    functionSourceFile: /src/git/wrapper.c
    functionUses: 2
    functionsReached:
    - dup
    - die_errno
    linkageType: ''
    returnType: int
    signature: int xdup(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/wrapper.c:360,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:367,1
    - Dst: _
      Src: /src/git/wrapper.c:367,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:369,1
    - Dst: _
      Src: /src/git/wrapper.c:369,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:371,1
    - Dst: _
      Src: /src/git/wrapper.c:371,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 373
    functionName: xfopen
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - die_errno
    - fopen
    - _
    linkageType: ''
    returnType: FILE
    signature: FILE *xfopen(const char *path, const char *mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdopen
      Src: /src/git/wrapper.c:377,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: xfdopen
    functionSourceFile: /src/git/wrapper.c
    functionUses: 11
    functionsReached:
    - die_errno
    - fdopen
    linkageType: ''
    returnType: FILE
    signature: FILE *xfdopen(int fd, const char *mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/wrapper.c:385,1
    - Dst: unlink
      Src: /src/git/wrapper.c:388,1
    - Dst: fopen
      Src: /src/git/wrapper.c:389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 394
    functionName: fopen_for_writing
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - fopen
    - unlink
    linkageType: ''
    returnType: FILE
    signature: FILE *fopen_for_writing(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warning_errno
      Src: /src/git/wrapper.c:398,1
    - Dst: _
      Src: /src/git/wrapper.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: warn_on_inaccessible
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - warning_errno
    - _
    linkageType: ''
    returnType: void
    signature: void warn_on_inaccessible(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warn_on_inaccessible
      Src: /src/git/wrapper.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: warn_on_fopen_errors
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached:
    - warn_on_inaccessible
    linkageType: ''
    returnType: int
    signature: int warn_on_fopen_errors(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/wrapper.c:413,1
    - Dst: warn_on_fopen_errors
      Src: /src/git/wrapper.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: fopen_or_warn
    functionSourceFile: /src/git/wrapper.c
    functionUses: 7
    functionsReached:
    - warn_on_fopen_errors
    - fopen
    linkageType: ''
    returnType: FILE
    signature: FILE *fopen_or_warn(const char *path, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmkstemp_mode
      Src: /src/git/wrapper.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename_template
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: xmkstemp
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached:
    - xmkstemp_mode
    linkageType: ''
    returnType: int
    signature: int xmkstemp(char *filename_template)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/wrapper.c:442,1
    - Dst: ARRAY_SIZE
      Src: /src/git/wrapper.c:444,1
    - Dst: strlen
      Src: /src/git/wrapper.c:449,1
    - Dst: strncmp
      Src: /src/git/wrapper.c:456,1
    - Dst: csprng_bytes
      Src: /src/git/wrapper.c:469,1
    - Dst: error_errno
      Src: /src/git/wrapper.c:470,1
    - Dst: mkdir
      Src: /src/git/wrapper.c:479,1
    - Dst: open
      Src: /src/git/wrapper.c:481,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - pattern
    - suffix_len
    - mode
    - dir
    argTypes:
    - char*
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 494
    functionName: git_mkdstemps_mode
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - error_errno
    - open
    - mkdir
    - strlen
    - strncmp
    - csprng_bytes
    linkageType: ''
    returnType: int
    signature: int git_mkdstemps_mode(char *pattern, int suffix_len, int mode, bool
      dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_mkdstemps_mode
      Src: /src/git/wrapper.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 499
    functionName: git_mkdtemp
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - git_mkdstemps_mode
    linkageType: ''
    returnType: char
    signature: char *git_mkdtemp(char *pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_mkdstemps_mode
      Src: /src/git/wrapper.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pattern
    - suffix_len
    - mode
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: git_mkstemps_mode
    functionSourceFile: /src/git/wrapper.c
    functionUses: 2
    functionsReached:
    - git_mkdstemps_mode
    linkageType: ''
    returnType: int
    signature: int git_mkstemps_mode(char *pattern, int suffix_len, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_mkstemps_mode
      Src: /src/git/wrapper.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pattern
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 510
    functionName: git_mkstemp_mode
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached:
    - git_mkstemps_mode
    linkageType: ''
    returnType: int
    signature: int git_mkstemp_mode(char *pattern, int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/git/wrapper.c:516,1
    - Dst: git_mkstemp_mode
      Src: /src/git/wrapper.c:518,1
    - Dst: absolute_path
      Src: /src/git/wrapper.c:526,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - filename_template
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 532
    functionName: xmkstemp_mode
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached:
    - absolute_path
    - die_errno
    - git_mkstemp_mode
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int xmkstemp_mode(char *filename_template, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsync
      Src: /src/git/wrapper.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 546
    functionName: fsync_loop
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - fsync
    linkageType: ''
    returnType: int
    signature: int fsync_loop(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace2_counter_add
      Src: /src/git/wrapper.c:552,1
    - Dst: fsync_loop
      Src: /src/git/wrapper.c:559,1
    - Dst: sync_file_range
      Src: /src/git/wrapper.c:571,1
    - Dst: fsync_no_flush
      Src: /src/git/wrapper.c:577,1
    - Dst: trace2_counter_add
      Src: /src/git/wrapper.c:584,1
    - Dst: fcntl
      Src: /src/git/wrapper.c:592,1
    - Dst: fsync_loop
      Src: /src/git/wrapper.c:594,1
    - Dst: BUG
      Src: /src/git/wrapper.c:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - fd
    - action
    argTypes:
    - int
    - enum fsync_action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 599
    functionName: git_fsync
    functionSourceFile: /src/git/wrapper.c
    functionUses: 2
    functionsReached:
    - fsync_no_flush
    - fcntl
    - BUG
    - trace2_counter_add
    - fsync_loop
    - sync_file_range
    linkageType: ''
    returnType: int
    signature: int git_fsync(int fd, enum fsync_action action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warning_errno
      Src: /src/git/wrapper.c:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - op
    - file
    - rc
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 610
    functionName: warn_if_unremovable
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - warning_errno
    linkageType: ''
    returnType: int
    signature: int warn_if_unremovable(const char *op, const char *file, int rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/git/wrapper.c:614,1
    - Dst: assert
      Src: /src/git/wrapper.c:616,1
    - Dst: strbuf_addf
      Src: /src/git/wrapper.c:621,1
    - Dst: strerror
      Src: /src/git/wrapper.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - file
    - err
    argTypes:
    - char*
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 615
        line_start: 615
        source_file: /src/git/wrapper.c
    constantsTouched: []
    func_position:
      end: 624
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 624
    functionName: unlink_or_msg
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - strerror
    - strbuf_addf
    - assert
    - unlink
    linkageType: ''
    returnType: int
    signature: int unlink_or_msg(const char *file, struct strbuf *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warn_if_unremovable
      Src: /src/git/wrapper.c:628,1
    - Dst: unlink
      Src: /src/git/wrapper.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 629
    functionName: unlink_or_warn
    functionSourceFile: /src/git/wrapper.c
    functionUses: 15
    functionsReached:
    - warn_if_unremovable
    - unlink
    linkageType: ''
    returnType: int
    signature: int unlink_or_warn(const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warn_if_unremovable
      Src: /src/git/wrapper.c:633,1
    - Dst: rmdir
      Src: /src/git/wrapper.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 634
    functionName: rmdir_or_warn
    functionSourceFile: /src/git/wrapper.c
    functionUses: 2
    functionsReached:
    - rmdir
    - warn_if_unremovable
    linkageType: ''
    returnType: int
    signature: int rmdir_or_warn(const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_missing_file_error
      Src: /src/git/wrapper.c:638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - err
    - flag
    argTypes:
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: access_error_is_ok
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - is_missing_file_error
    linkageType: ''
    returnType: int
    signature: int access_error_is_ok(int err, unsigned flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/git/wrapper.c:644,1
    - Dst: access_error_is_ok
      Src: /src/git/wrapper.c:645,1
    - Dst: warn_on_inaccessible
      Src: /src/git/wrapper.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - path
    - mode
    - flag
    argTypes:
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 648
    functionName: access_or_warn
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached:
    - warn_on_inaccessible
    - access
    - access_error_is_ok
    linkageType: ''
    returnType: int
    signature: int access_or_warn(const char *path, int mode, unsigned flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/git/wrapper.c:652,1
    - Dst: access_error_is_ok
      Src: /src/git/wrapper.c:653,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:654,1
    - Dst: _
      Src: /src/git/wrapper.c:654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - path
    - mode
    - flag
    argTypes:
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 656
    functionName: access_or_die
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - access
    - access_error_is_ok
    - die_errno
    - _
    linkageType: ''
    returnType: int
    signature: int access_or_die(const char *path, int mode, unsigned flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getcwd
      Src: /src/git/wrapper.c:661,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:662,1
    - Dst: _
      Src: /src/git/wrapper.c:662,1
    - Dst: strbuf_detach
      Src: /src/git/wrapper.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 658
    functionDepth: 4
    functionLinenumber: 658
    functionLinenumberEnd: 664
    functionName: xgetcwd
    functionSourceFile: /src/git/wrapper.c
    functionUses: 4
    functionsReached:
    - die_errno
    - strbuf_getcwd
    - strbuf_detach
    - _
    linkageType: ''
    returnType: char
    signature: char *xgetcwd(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/wrapper.c:671,1
    - Dst: vsnprintf
      Src: /src/git/wrapper.c:672,1
    - Dst: va_end
      Src: /src/git/wrapper.c:673,1
    - Dst: die
      Src: /src/git/wrapper.c:676,1
    - Dst: _
      Src: /src/git/wrapper.c:676,1
    - Dst: BUG
      Src: /src/git/wrapper.c:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - dst
    - max
    - fmt
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 680
    functionName: xsnprintf
    functionSourceFile: /src/git/wrapper.c
    functionUses: 21
    functionsReached:
    - die
    - va_end
    - _
    - va_start
    - vsnprintf
    - BUG
    linkageType: ''
    returnType: int
    signature: int xsnprintf(char *dst, size_t max, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xopen
      Src: /src/git/wrapper.c:684,1
    - Dst: write_in_full
      Src: /src/git/wrapper.c:685,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:686,1
    - Dst: _
      Src: /src/git/wrapper.c:686,1
    - Dst: close
      Src: /src/git/wrapper.c:687,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:688,1
    - Dst: _
      Src: /src/git/wrapper.c:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - path
    - buf
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 689
    functionName: write_file_buf
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - xopen
    - die_errno
    - close
    - _
    - write_in_full
    linkageType: ''
    returnType: void
    signature: void write_file_buf(const char *path, const char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/wrapper.c:696,1
    - Dst: strbuf_vaddf
      Src: /src/git/wrapper.c:697,1
    - Dst: va_end
      Src: /src/git/wrapper.c:698,1
    - Dst: strbuf_complete_line
      Src: /src/git/wrapper.c:700,1
    - Dst: write_file_buf
      Src: /src/git/wrapper.c:702,1
    - Dst: strbuf_release
      Src: /src/git/wrapper.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - path
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 691
    functionDepth: 5
    functionLinenumber: 691
    functionLinenumberEnd: 704
    functionName: write_file
    functionSourceFile: /src/git/wrapper.c
    functionUses: 8
    functionsReached:
    - strbuf_release
    - strbuf_vaddf
    - strbuf_complete_line
    - va_end
    - write_file_buf
    - va_start
    linkageType: ''
    returnType: void
    signature: void write_file(const char *path, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/git/wrapper.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - millisec
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 709
    functionName: sleep_millisec
    functionSourceFile: /src/git/wrapper.c
    functionUses: 2
    functionsReached:
    - poll
    linkageType: ''
    returnType: void
    signature: void sleep_millisec(int millisec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gethostname
      Src: /src/git/wrapper.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 722
    functionName: xgethostname
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached:
    - gethostname
    linkageType: ''
    returnType: int
    signature: int xgethostname(char *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/wrapper.c:728,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:731,1
    - Dst: _
      Src: /src/git/wrapper.c:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 735
    functionName: is_missing_file
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - stat
    - die_errno
    - _
    linkageType: ''
    returnType: int
    signature: int is_missing_file(const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/wrapper.c:741,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:744,1
    - Dst: _
      Src: /src/git/wrapper.c:744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 748
    functionName: is_empty_or_missing_file
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - stat
    - die_errno
    - _
    linkageType: ''
    returnType: int
    signature: int is_empty_or_missing_file(const char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/wrapper.c:753,1
    - Dst: lstat
      Src: /src/git/wrapper.c:775,1
    - Dst: S_ISLNK
      Src: /src/git/wrapper.c:777,1
    - Dst: open
      Src: /src/git/wrapper.c:781,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - path
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 783
    functionName: open_nofollow
    functionSourceFile: /src/git/wrapper.c
    functionUses: 2
    functionsReached:
    - lstat
    - open
    - S_ISLNK
    linkageType: ''
    returnType: int
    signature: int open_nofollow(const char *path, int flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: arc4random_buf
      Src: /src/git/wrapper.c:789,1
    - Dst: getrandom
      Src: /src/git/wrapper.c:795,1
    - Dst: getentropy
      Src: /src/git/wrapper.c:808,1
    - Dst: RtlGenRandom
      Src: /src/git/wrapper.c:816,1
    - Dst: RAND_pseudo_bytes
      Src: /src/git/wrapper.c:820,1
    - Dst: open
      Src: /src/git/wrapper.c:836,1
    - Dst: xread
      Src: /src/git/wrapper.c:840,1
    - Dst: close
      Src: /src/git/wrapper.c:843,1
    - Dst: close
      Src: /src/git/wrapper.c:850,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 3
    argNames:
    - buf
    - len
    - flags
    argTypes:
    - void*
    - size_t
    - MAYBE_UNUSED unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 853
    functionName: csprng_bytes
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached:
    - open
    - RAND_pseudo_bytes
    - RtlGenRandom
    - xread
    - close
    - getentropy
    - arc4random_buf
    - getrandom
    linkageType: ''
    returnType: int
    signature: int csprng_bytes(void *buf, size_t len, MAYBE_UNUSED unsigned flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: csprng_bytes
      Src: /src/git/wrapper.c:859,1
    - Dst: die
      Src: /src/git/wrapper.c:860,1
    - Dst: _
      Src: /src/git/wrapper.c:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 855
    functionDepth: 4
    functionLinenumber: 855
    functionLinenumberEnd: 863
    functionName: git_rand
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - die
    - csprng_bytes
    - _
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t git_rand(unsigned flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_env_ulong
      Src: /src/git/wrapper.c:869,1
    - Dst: die
      Src: /src/git/wrapper.c:874,1
    - Dst: _
      Src: /src/git/wrapper.c:874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 865
    functionDepth: 5
    functionLinenumber: 865
    functionLinenumberEnd: 876
    functionName: mmap_limit_check
    functionSourceFile: /src/git/wrapper.c
    functionUses: 0
    functionsReached:
    - die
    - git_env_ulong
    - _
    linkageType: ''
    returnType: void
    signature: void mmap_limit_check(size_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmap_limit_check
      Src: /src/git/wrapper.c:883,1
    - Dst: mmap
      Src: /src/git/wrapper.c:884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - start
    - length
    - prot
    - flags
    - fd
    - offset
    argTypes:
    - void*
    - size_t
    - int
    - int
    - int
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 878
    functionDepth: 6
    functionLinenumber: 878
    functionLinenumberEnd: 888
    functionName: xmmap_gently
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached:
    - mmap
    - mmap_limit_check
    linkageType: ''
    returnType: void
    signature: "void *xmmap_gently(void *start, size_t length,\n\t\t  int prot, int
      flags, int fd, off_t offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 902
    functionName: mmap_os_err
    functionSourceFile: /src/git/wrapper.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *mmap_os_err(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmmap_gently
      Src: /src/git/wrapper.c:907,1
    - Dst: die_errno
      Src: /src/git/wrapper.c:909,1
    - Dst: _
      Src: /src/git/wrapper.c:909,1
    - Dst: mmap_os_err
      Src: /src/git/wrapper.c:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - start
    - length
    - prot
    - flags
    - fd
    - offset
    argTypes:
    - void*
    - size_t
    - int
    - int
    - int
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 904
    functionDepth: 7
    functionLinenumber: 904
    functionLinenumberEnd: 911
    functionName: xmmap
    functionSourceFile: /src/git/wrapper.c
    functionUses: 6
    functionsReached:
    - die_errno
    - mmap_os_err
    - xmmap_gently
    - _
    linkageType: ''
    returnType: void
    signature: "void *xmmap(void *start, size_t length,\n\tint prot, int flags, int
      fd, off_t offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/common-exit.c:8,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 9
    functionName: check_bug_if_BUG
    functionSourceFile: /src/git/common-exit.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void check_bug_if_BUG(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_bug_if_BUG
      Src: /src/git/common-exit.c:22,1
    - Dst: trace2_cmd_exit_fl
      Src: /src/git/common-exit.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - line
    - code
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 26
    functionName: common_exit
    functionSourceFile: /src/git/common-exit.c
    functionUses: 0
    functionsReached:
    - trace2_cmd_exit_fl
    - check_bug_if_BUG
    linkageType: ''
    returnType: int
    signature: int common_exit(const char *file, int line, int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/editor.c:23,1
    - Dst: strcmp
      Src: /src/git/editor.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: is_terminal_dumb
    functionSourceFile: /src/git/editor.c
    functionUses: 3
    functionsReached:
    - getenv
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_terminal_dumb(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/editor.c:29,1
    - Dst: is_terminal_dumb
      Src: /src/git/editor.c:30,1
    - Dst: getenv
      Src: /src/git/editor.c:35,1
    - Dst: getenv
      Src: /src/git/editor.c:37,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: git_editor
    functionSourceFile: /src/git/editor.c
    functionUses: 0
    functionsReached:
    - getenv
    - is_terminal_dumb
    linkageType: ''
    returnType: char
    signature: char *git_editor(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/editor.c:50,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/editor.c:53,1
    - Dst: git_editor
      Src: /src/git/editor.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: git_sequence_editor
    functionSourceFile: /src/git/editor.c
    functionUses: 0
    functionsReached:
    - getenv
    - git_editor
    - repo_config_get_string_tmp
    linkageType: ''
    returnType: char
    signature: char *git_sequence_editor(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/editor.c:64,1
    - Dst: strcmp
      Src: /src/git/editor.c:66,1
    - Dst: advice_enabled
      Src: /src/git/editor.c:70,1
    - Dst: isatty
      Src: /src/git/editor.c:70,1
    - Dst: is_terminal_dumb
      Src: /src/git/editor.c:80,1
    - Dst: fprintf
      Src: /src/git/editor.c:82,1
    - Dst: _
      Src: /src/git/editor.c:83,1
    - Dst: fflush
      Src: /src/git/editor.c:85,1
    - Dst: strbuf_realpath
      Src: /src/git/editor.c:88,1
    - Dst: strvec_pushl
      Src: /src/git/editor.c:90,1
    - Dst: strvec_pushv
      Src: /src/git/editor.c:92,1
    - Dst: start_command
      Src: /src/git/editor.c:95,1
    - Dst: strbuf_release
      Src: /src/git/editor.c:96,1
    - Dst: error
      Src: /src/git/editor.c:97,1
    - Dst: sigchain_push
      Src: /src/git/editor.c:100,1
    - Dst: sigchain_push
      Src: /src/git/editor.c:101,1
    - Dst: finish_command
      Src: /src/git/editor.c:102,1
    - Dst: strbuf_release
      Src: /src/git/editor.c:103,1
    - Dst: sigchain_pop
      Src: /src/git/editor.c:105,1
    - Dst: sigchain_pop
      Src: /src/git/editor.c:106,1
    - Dst: raise
      Src: /src/git/editor.c:108,1
    - Dst: is_terminal_dumb
      Src: /src/git/editor.c:109,1
    - Dst: term_clear_line
      Src: /src/git/editor.c:114,1
    - Dst: error
      Src: /src/git/editor.c:116,1
    - Dst: strbuf_read_file
      Src: /src/git/editor.c:122,1
    - Dst: error_errno
      Src: /src/git/editor.c:123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 4
    argNames:
    - editor
    - path
    - buffer
    - env
    argTypes:
    - char*
    - char*
    - struct strbuf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 125
    functionName: launch_specified_editor
    functionSourceFile: /src/git/editor.c
    functionUses: 0
    functionsReached:
    - error_errno
    - is_terminal_dumb
    - strcmp
    - error
    - strbuf_release
    - finish_command
    - strbuf_realpath
    - sigchain_push
    - term_clear_line
    - isatty
    - strvec_pushv
    - sigchain_pop
    - strvec_pushl
    - strbuf_read_file
    - fflush
    - advice_enabled
    - _
    - raise
    - fprintf
    - start_command
    linkageType: ''
    returnType: int
    signature: "int launch_specified_editor(const char *editor, const char *path,\n\t\t\t\t
      \  struct strbuf *buffer, const char *const *env)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: launch_specified_editor
      Src: /src/git/editor.c:129,1
    - Dst: git_editor
      Src: /src/git/editor.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - buffer
    - env
    argTypes:
    - char*
    - struct strbuf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 8
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: launch_editor
    functionSourceFile: /src/git/editor.c
    functionUses: 0
    functionsReached:
    - launch_specified_editor
    - git_editor
    linkageType: ''
    returnType: int
    signature: int launch_editor(const char *path, struct strbuf *buffer, const char
      *const *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: launch_specified_editor
      Src: /src/git/editor.c:135,1
    - Dst: git_sequence_editor
      Src: /src/git/editor.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - buffer
    - env
    argTypes:
    - char*
    - struct strbuf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 8
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: launch_sequence_editor
    functionSourceFile: /src/git/editor.c
    functionUses: 1
    functionsReached:
    - launch_specified_editor
    - git_sequence_editor
    linkageType: ''
    returnType: int
    signature: "int launch_sequence_editor(const char *path, struct strbuf *buffer,\n\t\t\t
      \  const char *const *env)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute_path
      Src: /src/git/editor.c:145,1
    - Dst: repo_git_path_append
      Src: /src/git/editor.c:146,1
    - Dst: open
      Src: /src/git/editor.c:148,1
    - Dst: error_errno
      Src: /src/git/editor.c:150,1
    - Dst: _
      Src: /src/git/editor.c:150,1
    - Dst: write_in_full
      Src: /src/git/editor.c:151,1
    - Dst: error_errno
      Src: /src/git/editor.c:152,1
    - Dst: _
      Src: /src/git/editor.c:152,1
    - Dst: close
      Src: /src/git/editor.c:153,1
    - Dst: close
      Src: /src/git/editor.c:154,1
    - Dst: error_errno
      Src: /src/git/editor.c:155,1
    - Dst: _
      Src: /src/git/editor.c:155,1
    - Dst: strbuf_reset
      Src: /src/git/editor.c:157,1
    - Dst: launch_editor
      Src: /src/git/editor.c:158,1
    - Dst: error_errno
      Src: /src/git/editor.c:159,1
    - Dst: _
      Src: /src/git/editor.c:159,1
    - Dst: unlink
      Src: /src/git/editor.c:160,1
    - Dst: strbuf_release
      Src: /src/git/editor.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - r
    - buffer
    - path
    - env
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 138
    functionDepth: 9
    functionLinenumber: 138
    functionLinenumberEnd: 165
    functionName: strbuf_edit_interactively
    functionSourceFile: /src/git/editor.c
    functionUses: 1
    functionsReached:
    - repo_git_path_append
    - error_errno
    - is_absolute_path
    - open
    - strbuf_release
    - strbuf_reset
    - launch_editor
    - close
    - _
    - write_in_full
    - unlink
    linkageType: ''
    returnType: int
    signature: "int strbuf_edit_interactively(struct repository *r,\n\t\t\t      struct
      strbuf *buffer, const char *path,\n\t\t\t      const char *const *env)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ce_skip_worktree
      Src: /src/git/pathspec.c:53,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/pathspec.c:53,1
    - Dst: ce_path_match
      Src: /src/git/pathspec.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 4
    argNames:
    - pathspec
    - istate
    - seen
    - sw_action
    argTypes:
    - struct pathspec*
    - struct index_state*
    - char*
    - enum ps_skip_worktree_action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 7
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: add_pathspec_matches_against_index
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - ce_skip_worktree
    - ce_path_match
    - path_in_sparse_checkout
    linkageType: ''
    returnType: void
    signature: "void add_pathspec_matches_against_index(const struct pathspec *pathspec,\n\t\t\t\t\tstruct
      index_state *istate,\n\t\t\t\t\tchar *seen,\n\t\t\t\t\tenum ps_skip_worktree_action
      sw_action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/pathspec.c:71,1
    - Dst: add_pathspec_matches_against_index
      Src: /src/git/pathspec.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pathspec
    - istate
    - sw_action
    argTypes:
    - struct pathspec*
    - struct index_state*
    - enum ps_skip_worktree_action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 8
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: find_pathspecs_matching_against_index
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - add_pathspec_matches_against_index
    - xcalloc
    linkageType: ''
    returnType: char
    signature: "char *find_pathspecs_matching_against_index(const struct pathspec
      *pathspec,\n\t\t\t\t\t    struct index_state *istate,\n\t\t\t\t\t    enum ps_skip_worktree_action
      sw_action)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/pathspec.c:79,1
    - Dst: ce_skip_worktree
      Src: /src/git/pathspec.c:84,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/pathspec.c:84,1
    - Dst: ce_path_match
      Src: /src/git/pathspec.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pathspec
    argTypes:
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 7
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: find_pathspecs_matching_skip_worktree
    functionSourceFile: /src/git/pathspec.c
    functionUses: 1
    functionsReached:
    - path_in_sparse_checkout
    - ce_skip_worktree
    - ce_path_match
    - xcalloc
    linkageType: ''
    returnType: char
    signature: char *find_pathspecs_matching_skip_worktree(const struct pathspec *pathspec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/pathspec.c:119,1
    - Dst: strbuf_addstr
      Src: /src/git/pathspec.c:131,1
    - Dst: ARRAY_SIZE
      Src: /src/git/pathspec.c:132,1
    - Dst: strbuf_addch
      Src: /src/git/pathspec.c:136,1
    - Dst: strbuf_addstr
      Src: /src/git/pathspec.c:137,1
    - Dst: strchr
      Src: /src/git/pathspec.c:142,1
    - Dst: strbuf_add
      Src: /src/git/pathspec.c:143,1
    - Dst: strbuf_addf
      Src: /src/git/pathspec.c:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - sb
    - prefixlen
    - magic
    - element
    argTypes:
    - struct strbuf*
    - int
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 146
    functionName: prefix_magic
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strbuf_addf
    - strchr
    - strbuf_addch
    - strbuf_addstr
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void prefix_magic(struct strbuf *sb, int prefixlen,\n\t\t\t unsigned
      magic, const char *element)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/pathspec.c:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - s
    - stop
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 163
    functionName: strcspn_escaped
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: size_t
    signature: size_t strcspn_escaped(const char *s, const char *stop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/git/pathspec.c:167,1
    - Dst: strchr
      Src: /src/git/pathspec.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: invalid_value_char
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - isalnum
    - strchr
    linkageType: ''
    returnType: int
    signature: int invalid_value_char(const char ch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmallocz
      Src: /src/git/pathspec.c:177,1
    - Dst: strlen
      Src: /src/git/pathspec.c:177,1
    - Dst: die
      Src: /src/git/pathspec.c:181,1
    - Dst: _
      Src: /src/git/pathspec.c:181,1
    - Dst: invalid_value_char
      Src: /src/git/pathspec.c:185,1
    - Dst: die
      Src: /src/git/pathspec.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 172
    functionDepth: 9
    functionLinenumber: 172
    functionLinenumberEnd: 191
    functionName: attr_value_unescape
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - die
    - xmallocz
    - strlen
    - invalid_value_char
    - _
    linkageType: ''
    returnType: char
    signature: char *attr_value_unescape(const char *value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/pathspec.c:199,1
    - Dst: _
      Src: /src/git/pathspec.c:199,1
    - Dst: die
      Src: /src/git/pathspec.c:202,1
    - Dst: _
      Src: /src/git/pathspec.c:202,1
    - Dst: string_list_split_f
      Src: /src/git/pathspec.c:204,1
    - Dst: attr_check_alloc
      Src: /src/git/pathspec.c:206,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pathspec.c:207,1
    - Dst: for_each_string_list_item
      Src: /src/git/pathspec.c:209,1
    - Dst: strlen
      Src: /src/git/pathspec.c:222,1
    - Dst: strlen
      Src: /src/git/pathspec.c:227,1
    - Dst: strcspn
      Src: /src/git/pathspec.c:230,1
    - Dst: attr_value_unescape
      Src: /src/git/pathspec.c:236,1
    - Dst: xmemdupz
      Src: /src/git/pathspec.c:241,1
    - Dst: git_attr
      Src: /src/git/pathspec.c:242,1
    - Dst: die
      Src: /src/git/pathspec.c:244,1
    - Dst: _
      Src: /src/git/pathspec.c:244,1
    - Dst: attr_check_append
      Src: /src/git/pathspec.c:246,1
    - Dst: free
      Src: /src/git/pathspec.c:248,1
    - Dst: BUG
      Src: /src/git/pathspec.c:252,1
    - Dst: string_list_clear
      Src: /src/git/pathspec.c:254,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - item
    - value
    argTypes:
    - struct pathspec_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 193
    functionDepth: 10
    functionLinenumber: 193
    functionLinenumberEnd: 255
    functionName: parse_pathspec_attr_match
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - xmemdupz
    - git_attr
    - die
    - string_list_clear
    - attr_check_alloc
    - attr_value_unescape
    - strcspn
    - strlen
    - attr_check_append
    - CALLOC_ARRAY
    - free
    - BUG
    - _
    - string_list_split_f
    linkageType: ''
    returnType: void
    signature: void parse_pathspec_attr_match(struct pathspec_item *item, const char
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/pathspec.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 6
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: get_literal_global
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    linkageType: ''
    returnType: int
    signature: int get_literal_global(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/pathspec.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 6
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: get_glob_global
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    linkageType: ''
    returnType: int
    signature: int get_glob_global(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/pathspec.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 6
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: get_noglob_global
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    linkageType: ''
    returnType: int
    signature: int get_noglob_global(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/pathspec.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 6
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: get_icase_global
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    linkageType: ''
    returnType: int
    signature: int get_icase_global(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_literal_global
      Src: /src/git/pathspec.c:301,1
    - Dst: get_glob_global
      Src: /src/git/pathspec.c:305,1
    - Dst: get_glob_global
      Src: /src/git/pathspec.c:308,1
    - Dst: get_noglob_global
      Src: /src/git/pathspec.c:308,1
    - Dst: die
      Src: /src/git/pathspec.c:309,1
    - Dst: _
      Src: /src/git/pathspec.c:309,1
    - Dst: get_icase_global
      Src: /src/git/pathspec.c:311,1
    - Dst: die
      Src: /src/git/pathspec.c:316,1
    - Dst: _
      Src: /src/git/pathspec.c:316,1
    - Dst: get_noglob_global
      Src: /src/git/pathspec.c:320,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 1
    argNames:
    - element_magic
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 297
    functionDepth: 7
    functionLinenumber: 297
    functionLinenumberEnd: 324
    functionName: get_global_magic
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - die
    - get_noglob_global
    - _
    - get_icase_global
    - get_literal_global
    - get_glob_global
    linkageType: ''
    returnType: int
    signature: int get_global_magic(int element_magic)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcspn_escaped
      Src: /src/git/pathspec.c:341,1
    - Dst: starts_with
      Src: /src/git/pathspec.c:352,1
    - Dst: strtol
      Src: /src/git/pathspec.c:354,1
    - Dst: die
      Src: /src/git/pathspec.c:356,1
    - Dst: _
      Src: /src/git/pathspec.c:356,1
    - Dst: starts_with
      Src: /src/git/pathspec.c:360,1
    - Dst: xmemdupz
      Src: /src/git/pathspec.c:361,1
    - Dst: parse_pathspec_attr_match
      Src: /src/git/pathspec.c:362,1
    - Dst: free
      Src: /src/git/pathspec.c:364,1
    - Dst: ARRAY_SIZE
      Src: /src/git/pathspec.c:368,1
    - Dst: strlen
      Src: /src/git/pathspec.c:369,1
    - Dst: strncmp
      Src: /src/git/pathspec.c:370,1
    - Dst: ARRAY_SIZE
      Src: /src/git/pathspec.c:376,1
    - Dst: die
      Src: /src/git/pathspec.c:377,1
    - Dst: _
      Src: /src/git/pathspec.c:377,1
    - Dst: die
      Src: /src/git/pathspec.c:382,1
    - Dst: _
      Src: /src/git/pathspec.c:382,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 4
    argNames:
    - magic
    - prefix_len
    - item
    - elem
    argTypes:
    - unsigned*
    - int*
    - struct pathspec_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 333
    functionDepth: 11
    functionLinenumber: 333
    functionLinenumberEnd: 387
    functionName: parse_long_magic
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - parse_pathspec_attr_match
    - ARRAY_SIZE
    - die
    - strcspn_escaped
    - starts_with
    - strncmp
    - strlen
    - _
    - free
    - strtol
    linkageType: ''
    returnType: char
    signature: "char *parse_long_magic(unsigned *magic, int *prefix_len,\n\t\t\t\t
      \   struct pathspec_item *item,\n\t\t\t\t    const char *elem)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_pathspec_magic
      Src: /src/git/pathspec.c:409,1
    - Dst: ARRAY_SIZE
      Src: /src/git/pathspec.c:412,1
    - Dst: ARRAY_SIZE
      Src: /src/git/pathspec.c:419,1
    - Dst: die
      Src: /src/git/pathspec.c:420,1
    - Dst: _
      Src: /src/git/pathspec.c:420,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - magic
    - elem
    argTypes:
    - unsigned*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 428
    functionName: parse_short_magic
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - is_pathspec_magic
    - die
    - _
    linkageType: ''
    returnType: char
    signature: char *parse_short_magic(unsigned *magic, const char *elem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_literal_global
      Src: /src/git/pathspec.c:434,1
    - Dst: parse_long_magic
      Src: /src/git/pathspec.c:438,1
    - Dst: parse_short_magic
      Src: /src/git/pathspec.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - magic
    - prefix_len
    - item
    - elem
    argTypes:
    - unsigned*
    - int*
    - struct pathspec_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 430
    functionDepth: 12
    functionLinenumber: 430
    functionLinenumberEnd: 442
    functionName: parse_element_magic
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - parse_long_magic
    - get_literal_global
    - parse_short_magic
    linkageType: ''
    returnType: char
    signature: "char *parse_element_magic(unsigned *magic, int *prefix_len,\n\t\t\t\t
      \      struct pathspec_item *item,\n\t\t\t\t       const char *elem)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: parse_element_magic
      Src: /src/git/pathspec.c:464,1
    - Dst: get_global_magic
      Src: /src/git/pathspec.c:469,1
    - Dst: BUG
      Src: /src/git/pathspec.c:476,1
    - Dst: die
      Src: /src/git/pathspec.c:479,1
    - Dst: _
      Src: /src/git/pathspec.c:479,1
    - Dst: xstrdup
      Src: /src/git/pathspec.c:483,1
    - Dst: xstrdup
      Src: /src/git/pathspec.c:486,1
    - Dst: prefix_path_gently
      Src: /src/git/pathspec.c:489,1
    - Dst: have_git_dir
      Src: /src/git/pathspec.c:494,1
    - Dst: die
      Src: /src/git/pathspec.c:495,1
    - Dst: _
      Src: /src/git/pathspec.c:495,1
    - Dst: repo_get_work_tree
      Src: /src/git/pathspec.c:497,1
    - Dst: repo_get_git_dir
      Src: /src/git/pathspec.c:499,1
    - Dst: die
      Src: /src/git/pathspec.c:500,1
    - Dst: _
      Src: /src/git/pathspec.c:500,1
    - Dst: absolute_path
      Src: /src/git/pathspec.c:501,1
    - Dst: strlen
      Src: /src/git/pathspec.c:506,1
    - Dst: get_literal_global
      Src: /src/git/pathspec.c:514,1
    - Dst: prefix_magic
      Src: /src/git/pathspec.c:518,1
    - Dst: strbuf_addstr
      Src: /src/git/pathspec.c:520,1
    - Dst: strbuf_detach
      Src: /src/git/pathspec.c:521,1
    - Dst: xstrdup
      Src: /src/git/pathspec.c:523,1
    - Dst: simple_length
      Src: /src/git/pathspec.c:529,1
    - Dst: no_wildcard
      Src: /src/git/pathspec.c:543,1
    - Dst: BUG
      Src: /src/git/pathspec.c:550,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 5
    argNames:
    - item
    - flags
    - prefix
    - prefixlen
    - elt
    argTypes:
    - struct pathspec_item*
    - unsigned
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 447
    functionDepth: 13
    functionLinenumber: 447
    functionLinenumberEnd: 552
    functionName: init_pathspec_item
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - prefix_path_gently
    - absolute_path
    - die
    - parse_element_magic
    - prefix_magic
    - no_wildcard
    - repo_get_work_tree
    - simple_length
    - get_global_magic
    - strlen
    - have_git_dir
    - repo_get_git_dir
    - _
    - strbuf_addstr
    - strbuf_detach
    - get_literal_global
    - BUG
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void init_pathspec_item(struct pathspec_item *item, unsigned flags,\n\t\t\t
      \      const char *prefix, int prefixlen,\n\t\t\t       const char *elt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/pathspec.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: pathspec_item_cmp
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int pathspec_item_cmp(const void *a_, const void *b_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/pathspec.c:566,1
    - Dst: strbuf_addstr
      Src: /src/git/pathspec.c:571,1
    - Dst: strbuf_addf
      Src: /src/git/pathspec.c:574,1
    - Dst: _
      Src: /src/git/pathspec.c:574,1
    - Dst: strbuf_addf
      Src: /src/git/pathspec.c:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - magic
    - out
    argTypes:
    - unsigned
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 563
    functionDepth: 4
    functionLinenumber: 563
    functionLinenumberEnd: 579
    functionName: pathspec_magic_names
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strbuf_addf
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: void
    signature: void pathspec_magic_names(unsigned magic, struct strbuf *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pathspec_magic_names
      Src: /src/git/pathspec.c:585,1
    - Dst: die
      Src: /src/git/pathspec.c:591,1
    - Dst: _
      Src: /src/git/pathspec.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pattern
    - magic
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 581
    functionDepth: 5
    functionLinenumber: 581
    functionLinenumberEnd: 593
    functionName: unsupported_magic
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - die
    - pathspec_magic_names
    - _
    linkageType: ''
    returnType: void
    signature: "void unsupported_magic(const char *pattern,\n\t\t\t\t       unsigned
      magic)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/pathspec.c:603,1
    - Dst: BUG
      Src: /src/git/pathspec.c:614,1
    - Dst: BUG
      Src: /src/git/pathspec.c:618,1
    - Dst: BUG
      Src: /src/git/pathspec.c:626,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pathspec.c:628,1
    - Dst: xstrdup
      Src: /src/git/pathspec.c:629,1
    - Dst: xstrdup
      Src: /src/git/pathspec.c:630,1
    - Dst: strlen
      Src: /src/git/pathspec.c:631,1
    - Dst: die
      Src: /src/git/pathspec.c:640,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/pathspec.c:646,1
    - Dst: strlen
      Src: /src/git/pathspec.c:648,1
    - Dst: init_pathspec_item
      Src: /src/git/pathspec.c:653,1
    - Dst: unsupported_magic
      Src: /src/git/pathspec.c:658,1
    - Dst: has_symlink_leading_path
      Src: /src/git/pathspec.c:661,1
    - Dst: die
      Src: /src/git/pathspec.c:662,1
    - Dst: _
      Src: /src/git/pathspec.c:662,1
    - Dst: init_pathspec_item
      Src: /src/git/pathspec.c:676,1
    - Dst: BUG
      Src: /src/git/pathspec.c:682,1
    - Dst: QSORT
      Src: /src/git/pathspec.c:683,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 5
    argNames:
    - pathspec
    - magic_mask
    - flags
    - prefix
    - argv
    argTypes:
    - struct pathspec*
    - unsigned
    - unsigned
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 595
    functionDepth: 14
    functionLinenumber: 595
    functionLinenumberEnd: 685
    functionName: parse_pathspec
    functionSourceFile: /src/git/pathspec.c
    functionUses: 5
    functionsReached:
    - init_pathspec_item
    - memset
    - die
    - unsupported_magic
    - ALLOC_ARRAY
    - has_symlink_leading_path
    - strlen
    - QSORT
    - CALLOC_ARRAY
    - BUG
    - _
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void parse_pathspec(struct pathspec *pathspec,\n\t\t    unsigned magic_mask,
      unsigned flags,\n\t\t    const char *prefix, const char **argv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/pathspec.c:698,1
    - Dst: xfopen
      Src: /src/git/pathspec.c:701,1
    - Dst: getline_fn
      Src: /src/git/pathspec.c:703,1
    - Dst: strbuf_reset
      Src: /src/git/pathspec.c:705,1
    - Dst: unquote_c_style
      Src: /src/git/pathspec.c:706,1
    - Dst: die
      Src: /src/git/pathspec.c:707,1
    - Dst: _
      Src: /src/git/pathspec.c:707,1
    - Dst: strbuf_swap
      Src: /src/git/pathspec.c:708,1
    - Dst: strvec_push
      Src: /src/git/pathspec.c:710,1
    - Dst: strbuf_reset
      Src: /src/git/pathspec.c:711,1
    - Dst: strbuf_release
      Src: /src/git/pathspec.c:714,1
    - Dst: strbuf_release
      Src: /src/git/pathspec.c:715,1
    - Dst: fclose
      Src: /src/git/pathspec.c:717,1
    - Dst: parse_pathspec
      Src: /src/git/pathspec.c:719,1
    - Dst: strvec_clear
      Src: /src/git/pathspec.c:720,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - pathspec
    - magic_mask
    - flags
    - prefix
    - file
    - nul_term_line
    argTypes:
    - struct pathspec*
    - unsigned
    - unsigned
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 687
    functionDepth: 15
    functionLinenumber: 687
    functionLinenumberEnd: 721
    functionName: parse_pathspec_file
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - fclose
    - strvec_push
    - strbuf_release
    - die
    - strbuf_reset
    - getline_fn
    - unquote_c_style
    - strvec_clear
    - strcmp
    - parse_pathspec
    - xfopen
    - strbuf_swap
    - _
    linkageType: ''
    returnType: void
    signature: "void parse_pathspec_file(struct pathspec *pathspec, unsigned magic_mask,\n\t\t\t
      unsigned flags, const char *prefix,\n\t\t\t const char *file, int nul_term_line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DUP_ARRAY
      Src: /src/git/pathspec.c:728,1
    - Dst: xstrdup
      Src: /src/git/pathspec.c:734,1
    - Dst: xstrdup
      Src: /src/git/pathspec.c:735,1
    - Dst: DUP_ARRAY
      Src: /src/git/pathspec.c:737,1
    - Dst: xstrdup_or_null
      Src: /src/git/pathspec.c:740,1
    - Dst: attr_check_dup
      Src: /src/git/pathspec.c:743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct pathspec*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 745
    functionName: copy_pathspec
    functionSourceFile: /src/git/pathspec.c
    functionUses: 7
    functionsReached:
    - attr_check_dup
    - DUP_ARRAY
    - xstrdup_or_null
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void copy_pathspec(struct pathspec *dst, const struct pathspec *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/pathspec.c:752,1
    - Dst: free
      Src: /src/git/pathspec.c:753,1
    - Dst: free
      Src: /src/git/pathspec.c:756,1
    - Dst: free
      Src: /src/git/pathspec.c:757,1
    - Dst: attr_check_free
      Src: /src/git/pathspec.c:760,1
    - Dst: FREE_AND_NULL
      Src: /src/git/pathspec.c:763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - pathspec
    argTypes:
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 765
    functionName: clear_pathspec
    functionSourceFile: /src/git/pathspec.c
    functionUses: 5
    functionsReached:
    - FREE_AND_NULL
    - attr_check_free
    - free
    linkageType: ''
    returnType: void
    signature: void clear_pathspec(struct pathspec *pathspec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmemdupz
      Src: /src/git/pathspec.c:775,1
    - Dst: git_check_attr
      Src: /src/git/pathspec.c:777,1
    - Dst: free
      Src: /src/git/pathspec.c:779,1
    - Dst: ATTR_TRUE
      Src: /src/git/pathspec.c:789,1
    - Dst: ATTR_FALSE
      Src: /src/git/pathspec.c:791,1
    - Dst: ATTR_UNSET
      Src: /src/git/pathspec.c:793,1
    - Dst: strcmp
      Src: /src/git/pathspec.c:797,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - istate
    - name
    - namelen
    - item
    argTypes:
    - struct index_state*
    - char*
    - int
    - struct pathspec_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 767
    functionDepth: 10
    functionLinenumber: 767
    functionLinenumberEnd: 803
    functionName: match_pathspec_attrs
    functionSourceFile: /src/git/pathspec.c
    functionUses: 2
    functionsReached:
    - xmemdupz
    - ATTR_FALSE
    - ATTR_UNSET
    - strcmp
    - free
    - git_check_attr
    - ATTR_TRUE
    linkageType: ''
    returnType: int
    signature: "int match_pathspec_attrs(struct index_state *istate,\n\t\t\t const
      char *name, int namelen,\n\t\t\t const struct pathspec_item *item)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/git/pathspec.c:850,1
    - Dst: path_in_cone_mode_sparse_checkout
      Src: /src/git/pathspec.c:852,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/pathspec.c:858,1
    - Dst: ce_namelen
      Src: /src/git/pathspec.c:867,1
    - Dst: strncmp
      Src: /src/git/pathspec.c:868,1
    - Dst: ce_namelen
      Src: /src/git/pathspec.c:869,1
    - Dst: strncmp
      Src: /src/git/pathspec.c:879,1
    - Dst: wildmatch
      Src: /src/git/pathspec.c:880,1
    - Dst: path_in_cone_mode_sparse_checkout
      Src: /src/git/pathspec.c:885,1
    - Dst: matches_skip_worktree
      Src: /src/git/pathspec.c:886,1
    - Dst: free
      Src: /src/git/pathspec.c:893,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 2
    argNames:
    - istate
    - pathspec
    argTypes:
    - struct index_state*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 805
    functionDepth: 7
    functionLinenumber: 805
    functionLinenumberEnd: 895
    functionName: pathspec_needs_expanded_index
    functionSourceFile: /src/git/pathspec.c
    functionUses: 0
    functionsReached:
    - ce_namelen
    - path_in_cone_mode_sparse_checkout
    - S_ISSPARSEDIR
    - strspn
    - matches_skip_worktree
    - free
    - strncmp
    - wildmatch
    linkageType: ''
    returnType: int
    signature: "int pathspec_needs_expanded_index(struct index_state *istate,\n\t\t\t\t
      \ const struct pathspec *pathspec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: patch_id_defined
    functionSourceFile: /src/git/patch-ids.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int patch_id_defined(struct commit *commit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: patch_id_defined
      Src: /src/git/patch-ids.c:17,1
    - Dst: diff_tree_oid
      Src: /src/git/patch-ids.c:21,1
    - Dst: diff_root_tree_oid
      Src: /src/git/patch-ids.c:24,1
    - Dst: diffcore_std
      Src: /src/git/patch-ids.c:25,1
    - Dst: diff_flush_patch_id
      Src: /src/git/patch-ids.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - commit
    - options
    - oid
    - diff_header_only
    argTypes:
    - struct commit*
    - struct diff_options*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 27
    functionName: commit_patch_id
    functionSourceFile: /src/git/patch-ids.c
    functionUses: 1
    functionsReached:
    - diff_root_tree_oid
    - diff_tree_oid
    - patch_id_defined
    - diffcore_std
    - diff_flush_patch_id
    linkageType: ''
    returnType: int
    signature: "int commit_patch_id(struct commit *commit, struct diff_options *options,\n\t\t
      \   struct object_id *oid, int diff_header_only)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/patch-ids.c:55,1
    - Dst: container_of
      Src: /src/git/patch-ids.c:56,1
    - Dst: is_null_oid
      Src: /src/git/patch-ids.c:58,1
    - Dst: commit_patch_id
      Src: /src/git/patch-ids.c:59,1
    - Dst: error
      Src: /src/git/patch-ids.c:60,1
    - Dst: oid_to_hex
      Src: /src/git/patch-ids.c:61,1
    - Dst: is_null_oid
      Src: /src/git/patch-ids.c:62,1
    - Dst: commit_patch_id
      Src: /src/git/patch-ids.c:63,1
    - Dst: error
      Src: /src/git/patch-ids.c:64,1
    - Dst: oid_to_hex
      Src: /src/git/patch-ids.c:65,1
    - Dst: oideq
      Src: /src/git/patch-ids.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - cmpfn_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 67
    functionName: patch_id_neq
    functionSourceFile: /src/git/patch-ids.c
    functionUses: 0
    functionsReached:
    - error
    - container_of
    - oid_to_hex
    - is_null_oid
    - commit_patch_id
    - oideq
    linkageType: ''
    returnType: int
    signature: "int patch_id_neq(const void *cmpfn_data,\n\t\t\tconst struct hashmap_entry
      *eptr,\n\t\t\tconst struct hashmap_entry *entry_or_key,\n\t\t\tconst void *keydata
      UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/patch-ids.c:71,1
    - Dst: repo_diff_setup
      Src: /src/git/patch-ids.c:72,1
    - Dst: diff_setup_done
      Src: /src/git/patch-ids.c:75,1
    - Dst: hashmap_init
      Src: /src/git/patch-ids.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - r
    - ids
    argTypes:
    - struct repository*
    - struct patch_ids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: init_patch_ids
    functionSourceFile: /src/git/patch-ids.c
    functionUses: 1
    functionsReached:
    - repo_diff_setup
    - memset
    - hashmap_init
    - diff_setup_done
    linkageType: ''
    returnType: int
    signature: int init_patch_ids(struct repository *r, struct patch_ids *ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_clear_and_free
      Src: /src/git/patch-ids.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ids
    argTypes:
    - struct patch_ids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: free_patch_ids
    functionSourceFile: /src/git/patch-ids.c
    functionUses: 1
    functionsReached:
    - hashmap_clear_and_free
    linkageType: ''
    returnType: int
    signature: int free_patch_ids(struct patch_ids *ids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_patch_id
      Src: /src/git/patch-ids.c:93,1
    - Dst: hashmap_entry_init
      Src: /src/git/patch-ids.c:96,1
    - Dst: oidhash
      Src: /src/git/patch-ids.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - patch
    - commit
    - ids
    argTypes:
    - struct patch_id*
    - struct commit*
    - struct patch_ids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: init_patch_id_entry
    functionSourceFile: /src/git/patch-ids.c
    functionUses: 0
    functionsReached:
    - oidhash
    - commit_patch_id
    - hashmap_entry_init
    linkageType: ''
    returnType: int
    signature: "int init_patch_id_entry(struct patch_id *patch,\n\t\t\t       struct
      commit *commit,\n\t\t\t       struct patch_ids *ids)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: patch_id_defined
      Src: /src/git/patch-ids.c:105,1
    - Dst: memset
      Src: /src/git/patch-ids.c:108,1
    - Dst: init_patch_id_entry
      Src: /src/git/patch-ids.c:109,1
    - Dst: hashmap_get_entry
      Src: /src/git/patch-ids.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - commit
    - ids
    argTypes:
    - struct commit*
    - struct patch_ids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: patch_id_iter_first
    functionSourceFile: /src/git/patch-ids.c
    functionUses: 1
    functionsReached:
    - memset
    - patch_id_defined
    - hashmap_get_entry
    - init_patch_id_entry
    linkageType: ''
    returnType: struct patch_id
    signature: "struct patch_id *patch_id_iter_first(struct commit *commit,\n\t\t\t\t
      \    struct patch_ids *ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_get_next_entry
      Src: /src/git/patch-ids.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cur
    - ids
    argTypes:
    - struct patch_id*
    - struct patch_ids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: patch_id_iter_next
    functionSourceFile: /src/git/patch-ids.c
    functionUses: 1
    functionsReached:
    - hashmap_get_next_entry
    linkageType: ''
    returnType: struct patch_id
    signature: "struct patch_id *patch_id_iter_next(struct patch_id *cur,\n\t\t\t\t
      \   struct patch_ids *ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: patch_id_iter_first
      Src: /src/git/patch-ids.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - commit
    - ids
    argTypes:
    - struct commit*
    - struct patch_ids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: has_commit_patch_id
    functionSourceFile: /src/git/patch-ids.c
    functionUses: 0
    functionsReached:
    - patch_id_iter_first
    linkageType: ''
    returnType: int
    signature: "int has_commit_patch_id(struct commit *commit,\n\t\t\tstruct patch_ids
      *ids)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: patch_id_defined
      Src: /src/git/patch-ids.c:132,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/patch-ids.c:135,1
    - Dst: init_patch_id_entry
      Src: /src/git/patch-ids.c:136,1
    - Dst: free
      Src: /src/git/patch-ids.c:137,1
    - Dst: hashmap_add
      Src: /src/git/patch-ids.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - commit
    - ids
    argTypes:
    - struct commit*
    - struct patch_ids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: add_commit_patch_id
    functionSourceFile: /src/git/patch-ids.c
    functionUses: 1
    functionsReached:
    - hashmap_add
    - init_patch_id_entry
    - patch_id_defined
    - free
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct patch_id
    signature: "struct patch_id *add_commit_patch_id(struct commit *commit,\n\t\t\t\t
      \    struct patch_ids *ids)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unix_stream_connect
      Src: /src/git/unix-stream-server.c:24,1
    - Dst: close
      Src: /src/git/unix-stream-server.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - path
    - opts
    argTypes:
    - char*
    - struct unix_stream_listen_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 6
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: is_another_server_alive
    functionSourceFile: /src/git/unix-stream-server.c
    functionUses: 0
    functionsReached:
    - close
    - unix_stream_connect
    linkageType: ''
    returnType: int
    signature: "int is_another_server_alive(const char *path,\n\t\t\t\t   const struct
      unix_stream_listen_opts *opts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hold_lock_file_for_update_timeout
      Src: /src/git/unix-stream-server.c:50,1
    - Dst: is_another_server_alive
      Src: /src/git/unix-stream-server.c:57,1
    - Dst: rollback_lock_file
      Src: /src/git/unix-stream-server.c:58,1
    - Dst: unix_stream_listen
      Src: /src/git/unix-stream-server.c:66,1
    - Dst: rollback_lock_file
      Src: /src/git/unix-stream-server.c:69,1
    - Dst: xcalloc
      Src: /src/git/unix-stream-server.c:74,1
    - Dst: strdup
      Src: /src/git/unix-stream-server.c:75,1
    - Dst: lstat
      Src: /src/git/unix-stream-server.c:77,1
    - Dst: rollback_lock_file
      Src: /src/git/unix-stream-server.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - path
    - opts
    - timeout_ms
    - new_server_socket
    argTypes:
    - char*
    - struct unix_stream_listen_opts*
    - long
    - struct unix_ss_socket**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 33
    functionDepth: 7
    functionLinenumber: 33
    functionLinenumberEnd: 89
    functionName: unix_ss_create
    functionSourceFile: /src/git/unix-stream-server.c
    functionUses: 0
    functionsReached:
    - is_another_server_alive
    - hold_lock_file_for_update_timeout
    - strdup
    - rollback_lock_file
    - xcalloc
    - unix_stream_listen
    - lstat
    linkageType: ''
    returnType: int
    signature: "int unix_ss_create(const char *path,\n\t\t   const struct unix_stream_listen_opts
      *opts,\n\t\t   long timeout_ms,\n\t\t   struct unix_ss_socket **new_server_socket)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unix_ss_was_stolen
      Src: /src/git/unix-stream-server.c:97,1
    - Dst: unlink
      Src: /src/git/unix-stream-server.c:98,1
    - Dst: close
      Src: /src/git/unix-stream-server.c:99,1
    - Dst: free
      Src: /src/git/unix-stream-server.c:102,1
    - Dst: free
      Src: /src/git/unix-stream-server.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - server_socket
    argTypes:
    - struct unix_ss_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: unix_ss_free
    functionSourceFile: /src/git/unix-stream-server.c
    functionUses: 0
    functionsReached:
    - close
    - unix_ss_was_stolen
    - free
    - unlink
    linkageType: ''
    returnType: void
    signature: void unix_ss_free(struct unix_ss_socket *server_socket)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/unix-stream-server.c:113,1
    - Dst: S_ISSOCK
      Src: /src/git/unix-stream-server.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - server_socket
    argTypes:
    - struct unix_ss_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: unix_ss_was_stolen
    functionSourceFile: /src/git/unix-stream-server.c
    functionUses: 1
    functionsReached:
    - S_ISSOCK
    - lstat
    linkageType: ''
    returnType: int
    signature: int unix_ss_was_stolen(struct unix_ss_socket *server_socket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/oid-array.h:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - array
    - cur
    argTypes:
    - struct oid_array*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: oid_array_next_unique
    functionSourceFile: /src/git/oid-array.h
    functionUses: 0
    functionsReached:
    - oideq
    linkageType: ''
    returnType: size_t
    signature: size_t oid_array_next_unique(struct oid_array *array, size_t cur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/levenshtein.c:44,1
    - Dst: strlen
      Src: /src/git/levenshtein.c:44,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/levenshtein.c:48,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/levenshtein.c:49,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/levenshtein.c:50,1
    - Dst: free
      Src: /src/git/levenshtein.c:81,1
    - Dst: free
      Src: /src/git/levenshtein.c:82,1
    - Dst: free
      Src: /src/git/levenshtein.c:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 6
    argNames:
    - string1
    - string2
    - w
    - s
    - a
    - d
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 86
    functionName: levenshtein
    functionSourceFile: /src/git/levenshtein.c
    functionUses: 1
    functionsReached:
    - strlen
    - ALLOC_ARRAY
    - free
    linkageType: ''
    returnType: int
    signature: "int levenshtein(const char *string1, const char *string2,\n\t\tint
      w, int s, int a, int d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/git/refs.h:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: has_glob_specials
    functionSourceFile: /src/git/refs.h
    functionUses: 3
    functionsReached:
    - strpbrk
    linkageType: ''
    returnType: char
    signature: char *has_glob_specials(const char *pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - remote
    argTypes:
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: valid_remote
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int valid_remote(const struct remote *remote)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/remote.c:61,1
    - Dst: xstrfmt
      Src: /src/git/remote.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - url
    - r
    argTypes:
    - char*
    - struct rewrites*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 73
    functionName: alias_url
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - starts_with
    linkageType: ''
    returnType: char
    signature: char *alias_url(const char *url, struct rewrites *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/remote.c:78,1
    - Dst: strvec_clear
      Src: /src/git/remote.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - remote
    - url
    argTypes:
    - struct remote*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: add_url
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void add_url(struct remote *remote, const char *url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/remote.c:86,1
    - Dst: strvec_clear
      Src: /src/git/remote.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - remote
    - pushurl
    argTypes:
    - struct remote*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: add_pushurl
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void add_pushurl(struct remote *remote, const char *pushurl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alias_url
      Src: /src/git/remote.c:94,1
    - Dst: add_pushurl
      Src: /src/git/remote.c:96,1
    - Dst: free
      Src: /src/git/remote.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - remote_state
    - remote
    - url
    argTypes:
    - struct remote_state*
    - struct remote*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: add_pushurl_alias
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - add_pushurl
    - alias_url
    - free
    linkageType: ''
    returnType: void
    signature: "void add_pushurl_alias(struct remote_state *remote_state,\n\t\t\t
      \     struct remote *remote, const char *url)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alias_url
      Src: /src/git/remote.c:103,1
    - Dst: add_url
      Src: /src/git/remote.c:104,1
    - Dst: add_pushurl_alias
      Src: /src/git/remote.c:105,1
    - Dst: free
      Src: /src/git/remote.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - remote_state
    - remote
    - url
    argTypes:
    - struct remote_state*
    - struct remote*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 7
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: add_url_alias
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - add_url
    - add_pushurl_alias
    - alias_url
    - free
    linkageType: ''
    returnType: void
    signature: "void add_url_alias(struct remote_state *remote_state,\n\t\t\t  struct
      remote *remote, const char *url)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/remote.c:122,1
    - Dst: container_of
      Src: /src/git/remote.c:123,1
    - Dst: xstrncmpz
      Src: /src/git/remote.c:126,1
    - Dst: strcmp
      Src: /src/git/remote.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: remotes_hash_cmp
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int remotes_hash_cmp(const void *cmp_data UNUSED,\n\t\t\t    const
      struct hashmap_entry *eptr,\n\t\t\t    const struct hashmap_entry *entry_or_key,\n\t\t\t
      \   const void *keydata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/remote.c:139,1
    - Dst: hashmap_entry_init
      Src: /src/git/remote.c:143,1
    - Dst: memhash
      Src: /src/git/remote.c:143,1
    - Dst: hashmap_get
      Src: /src/git/remote.c:145,1
    - Dst: container_of
      Src: /src/git/remote.c:147,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/remote.c:149,1
    - Dst: xstrndup
      Src: /src/git/remote.c:152,1
    - Dst: refspec_init_push
      Src: /src/git/remote.c:153,1
    - Dst: refspec_init_fetch
      Src: /src/git/remote.c:154,1
    - Dst: string_list_init_dup
      Src: /src/git/remote.c:155,1
    - Dst: string_list_init_dup
      Src: /src/git/remote.c:156,1
    - Dst: string_list_init_dup
      Src: /src/git/remote.c:157,1
    - Dst: ALLOC_GROW
      Src: /src/git/remote.c:159,1
    - Dst: hashmap_entry_init
      Src: /src/git/remote.c:163,1
    - Dst: hashmap_put_entry
      Src: /src/git/remote.c:164,1
    - Dst: BUG
      Src: /src/git/remote.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - remote_state
    - name
    - len
    argTypes:
    - struct remote_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 131
    functionDepth: 11
    functionLinenumber: 131
    functionLinenumberEnd: 167
    functionName: make_remote
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - container_of
    - memhash
    - string_list_init_dup
    - hashmap_entry_init
    - refspec_init_fetch
    - xstrndup
    - hashmap_put_entry
    - strlen
    - ALLOC_GROW
    - CALLOC_ARRAY
    - refspec_init_push
    - BUG
    - hashmap_get
    linkageType: ''
    returnType: struct remote
    signature: "struct remote *make_remote(struct remote_state *remote_state,\n\t\t\t\t
      \ const char *name, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/remote.c:171,1
    - Dst: free
      Src: /src/git/remote.c:172,1
    - Dst: strvec_clear
      Src: /src/git/remote.c:174,1
    - Dst: strvec_clear
      Src: /src/git/remote.c:175,1
    - Dst: refspec_clear
      Src: /src/git/remote.c:177,1
    - Dst: refspec_clear
      Src: /src/git/remote.c:178,1
    - Dst: free
      Src: /src/git/remote.c:180,1
    - Dst: free
      Src: /src/git/remote.c:181,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:182,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:183,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:184,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:185,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - remote
    argTypes:
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: remote_clear
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    - strvec_clear
    - free
    - FREE_AND_NULL
    - refspec_clear
    linkageType: ''
    returnType: void
    signature: void remote_clear(struct remote *remote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/remote.c:193,1
    - Dst: xcalloc
      Src: /src/git/remote.c:196,1
    - Dst: xstrdup
      Src: /src/git/remote.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - branch
    - name
    argTypes:
    - struct branch*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 7
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: add_merge
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - ALLOC_GROW
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void add_merge(struct branch *branch, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/remote.c:215,1
    - Dst: container_of
      Src: /src/git/remote.c:216,1
    - Dst: xstrncmpz
      Src: /src/git/remote.c:219,1
    - Dst: strcmp
      Src: /src/git/remote.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 222
    functionName: branches_hash_cmp
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int branches_hash_cmp(const void *cmp_data UNUSED,\n\t\t\t     const
      struct hashmap_entry *eptr,\n\t\t\t     const struct hashmap_entry *entry_or_key,\n\t\t\t
      \    const void *keydata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/remote.c:232,1
    - Dst: memhash
      Src: /src/git/remote.c:232,1
    - Dst: hashmap_get
      Src: /src/git/remote.c:234,1
    - Dst: container_of
      Src: /src/git/remote.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - remote_state
    - name
    - len
    argTypes:
    - struct remote_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: find_branch
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - container_of
    - memhash
    - hashmap_entry_init
    - hashmap_get
    linkageType: ''
    returnType: struct branch
    signature: "struct branch *find_branch(struct remote_state *remote_state,\n\t\t\t\t
      \ const char *name, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_branch
      Src: /src/git/remote.c:246,1
    - Dst: strlen
      Src: /src/git/remote.c:247,1
    - Dst: die
      Src: /src/git/remote.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - repo
    - branch
    argTypes:
    - struct repository*
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 4
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: die_on_missing_branch
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - find_branch
    - die
    - strlen
    linkageType: ''
    returnType: void
    signature: "void die_on_missing_branch(struct repository *repo,\n\t\t\t\t  struct
      branch *branch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_branch
      Src: /src/git/remote.c:256,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/remote.c:260,1
    - Dst: xstrndup
      Src: /src/git/remote.c:261,1
    - Dst: xstrfmt
      Src: /src/git/remote.c:262,1
    - Dst: hashmap_entry_init
      Src: /src/git/remote.c:264,1
    - Dst: memhash
      Src: /src/git/remote.c:264,1
    - Dst: hashmap_put_entry
      Src: /src/git/remote.c:265,1
    - Dst: BUG
      Src: /src/git/remote.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - remote_state
    - name
    - len
    argTypes:
    - struct remote_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 251
    functionDepth: 11
    functionLinenumber: 251
    functionLinenumberEnd: 268
    functionName: make_branch
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - memhash
    - xstrfmt
    - hashmap_entry_init
    - xstrndup
    - CALLOC_ARRAY
    - find_branch
    - hashmap_put_entry
    - BUG
    linkageType: ''
    returnType: struct branch
    signature: "struct branch *make_branch(struct remote_state *remote_state,\n\t\t\t\t
      \ const char *name, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refspec_item_clear
      Src: /src/git/remote.c:273,1
    - Dst: free
      Src: /src/git/remote.c:274,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - branch
    argTypes:
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: merge_clear
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - refspec_item_clear
    - FREE_AND_NULL
    - free
    linkageType: ''
    returnType: void
    signature: void merge_clear(struct branch *branch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/remote.c:282,1
    - Dst: free
      Src: /src/git/remote.c:283,1
    - Dst: free
      Src: /src/git/remote.c:284,1
    - Dst: free
      Src: /src/git/remote.c:285,1
    - Dst: free
      Src: /src/git/remote.c:286,1
    - Dst: merge_clear
      Src: /src/git/remote.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - branch
    argTypes:
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 288
    functionName: branch_release
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - merge_clear
    - free
    linkageType: ''
    returnType: void
    signature: void branch_release(struct branch *branch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/remote.c:298,1
    - Dst: ALLOC_GROW
      Src: /src/git/remote.c:302,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/remote.c:303,1
    - Dst: xstrndup
      Src: /src/git/remote.c:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - r
    - base
    - len
    argTypes:
    - struct rewrites*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 290
    functionDepth: 11
    functionLinenumber: 290
    functionLinenumberEnd: 308
    functionName: make_rewrite
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strncmp
    - xstrndup
    - ALLOC_GROW
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct rewrite
    signature: "struct rewrite *make_rewrite(struct rewrites *r,\n\t\t\t\t    const
      char *base, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/remote.c:313,1
    - Dst: free
      Src: /src/git/remote.c:314,1
    - Dst: memset
      Src: /src/git/remote.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rewrites*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: rewrites_release
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void rewrites_release(struct rewrites *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/remote.c:320,1
    - Dst: strlen
      Src: /src/git/remote.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - rewrite
    - instead_of
    argTypes:
    - struct rewrite*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 324
    functionName: add_instead_of
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strlen
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void add_instead_of(struct rewrite *rewrite, const char *instead_of)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/remote.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: skip_spaces
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: char
    signature: char *skip_spaces(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/remote.c:337,1
    - Dst: _
      Src: /src/git/remote.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - remote
    argTypes:
    - char*
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 347
    functionName: warn_about_deprecated_remote_type
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - warning
    - _
    linkageType: ''
    returnType: void
    signature: "void warn_about_deprecated_remote_type(const char *type,\n\t\t\t\t\t
      \     const struct remote *remote)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen_or_warn
      Src: /src/git/remote.c:352,1
    - Dst: repo_git_path_append
      Src: /src/git/remote.c:352,1
    - Dst: warn_about_deprecated_remote_type
      Src: /src/git/remote.c:358,1
    - Dst: strbuf_getline
      Src: /src/git/remote.c:362,1
    - Dst: strbuf_rtrim
      Src: /src/git/remote.c:365,1
    - Dst: skip_prefix
      Src: /src/git/remote.c:367,1
    - Dst: add_url_alias
      Src: /src/git/remote.c:368,1
    - Dst: skip_spaces
      Src: /src/git/remote.c:369,1
    - Dst: skip_prefix
      Src: /src/git/remote.c:370,1
    - Dst: refspec_append
      Src: /src/git/remote.c:371,1
    - Dst: skip_spaces
      Src: /src/git/remote.c:371,1
    - Dst: skip_prefix
      Src: /src/git/remote.c:372,1
    - Dst: refspec_append
      Src: /src/git/remote.c:373,1
    - Dst: skip_spaces
      Src: /src/git/remote.c:373,1
    - Dst: fclose
      Src: /src/git/remote.c:375,1
    - Dst: strbuf_release
      Src: /src/git/remote.c:378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - repo
    - remote
    argTypes:
    - struct repository*
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 349
    functionDepth: 8
    functionLinenumber: 349
    functionLinenumberEnd: 379
    functionName: read_remotes_file
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - fclose
    - repo_git_path_append
    - strbuf_release
    - refspec_append
    - warn_about_deprecated_remote_type
    - add_url_alias
    - fopen_or_warn
    - skip_spaces
    - strbuf_getline
    - skip_prefix
    - strbuf_rtrim
    linkageType: ''
    returnType: void
    signature: void read_remotes_file(struct repository *repo, struct remote *remote)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen_or_warn
      Src: /src/git/remote.c:385,1
    - Dst: repo_git_path_append
      Src: /src/git/remote.c:385,1
    - Dst: warn_about_deprecated_remote_type
      Src: /src/git/remote.c:391,1
    - Dst: strbuf_getline_lf
      Src: /src/git/remote.c:393,1
    - Dst: fclose
      Src: /src/git/remote.c:394,1
    - Dst: strbuf_trim
      Src: /src/git/remote.c:395,1
    - Dst: strchr
      Src: /src/git/remote.c:408,1
    - Dst: repo_default_branch_name
      Src: /src/git/remote.c:412,1
    - Dst: add_url_alias
      Src: /src/git/remote.c:414,1
    - Dst: refspec_appendf
      Src: /src/git/remote.c:415,1
    - Dst: refspec_appendf
      Src: /src/git/remote.c:422,1
    - Dst: strbuf_release
      Src: /src/git/remote.c:426,1
    - Dst: free
      Src: /src/git/remote.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - repo
    - remote
    argTypes:
    - struct repository*
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 381
    functionDepth: 9
    functionLinenumber: 381
    functionLinenumberEnd: 428
    functionName: read_branches_file
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - fclose
    - repo_git_path_append
    - strbuf_release
    - strbuf_getline_lf
    - warn_about_deprecated_remote_type
    - repo_default_branch_name
    - strchr
    - strbuf_trim
    - add_url_alias
    - fopen_or_warn
    - free
    - refspec_appendf
    linkageType: ''
    returnType: void
    signature: void read_branches_file(struct repository *repo, struct remote *remote)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/remote.c:442,1
    - Dst: make_branch
      Src: /src/git/remote.c:449,1
    - Dst: strcmp
      Src: /src/git/remote.c:450,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:451,1
    - Dst: git_config_string
      Src: /src/git/remote.c:452,1
    - Dst: strcmp
      Src: /src/git/remote.c:453,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:454,1
    - Dst: git_config_string
      Src: /src/git/remote.c:455,1
    - Dst: strcmp
      Src: /src/git/remote.c:456,1
    - Dst: config_error_nonbool
      Src: /src/git/remote.c:458,1
    - Dst: add_merge
      Src: /src/git/remote.c:459,1
    - Dst: parse_config_key
      Src: /src/git/remote.c:463,1
    - Dst: strcmp
      Src: /src/git/remote.c:467,1
    - Dst: config_error_nonbool
      Src: /src/git/remote.c:469,1
    - Dst: make_rewrite
      Src: /src/git/remote.c:470,1
    - Dst: add_instead_of
      Src: /src/git/remote.c:472,1
    - Dst: xstrdup
      Src: /src/git/remote.c:472,1
    - Dst: strcmp
      Src: /src/git/remote.c:473,1
    - Dst: config_error_nonbool
      Src: /src/git/remote.c:475,1
    - Dst: make_rewrite
      Src: /src/git/remote.c:476,1
    - Dst: add_instead_of
      Src: /src/git/remote.c:478,1
    - Dst: xstrdup
      Src: /src/git/remote.c:478,1
    - Dst: parse_config_key
      Src: /src/git/remote.c:482,1
    - Dst: strcmp
      Src: /src/git/remote.c:486,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:487,1
    - Dst: git_config_string
      Src: /src/git/remote.c:488,1
    - Dst: warning
      Src: /src/git/remote.c:496,1
    - Dst: _
      Src: /src/git/remote.c:496,1
    - Dst: make_remote
      Src: /src/git/remote.c:500,1
    - Dst: strcmp
      Src: /src/git/remote.c:505,1
    - Dst: git_config_bool
      Src: /src/git/remote.c:506,1
    - Dst: strcmp
      Src: /src/git/remote.c:507,1
    - Dst: git_config_bool
      Src: /src/git/remote.c:508,1
    - Dst: strcmp
      Src: /src/git/remote.c:509,1
    - Dst: git_config_bool
      Src: /src/git/remote.c:510,1
    - Dst: strcmp
      Src: /src/git/remote.c:511,1
    - Dst: git_config_bool
      Src: /src/git/remote.c:512,1
    - Dst: strcmp
      Src: /src/git/remote.c:513,1
    - Dst: git_config_bool
      Src: /src/git/remote.c:514,1
    - Dst: strcmp
      Src: /src/git/remote.c:515,1
    - Dst: config_error_nonbool
      Src: /src/git/remote.c:517,1
    - Dst: add_url
      Src: /src/git/remote.c:518,1
    - Dst: strcmp
      Src: /src/git/remote.c:519,1
    - Dst: config_error_nonbool
      Src: /src/git/remote.c:521,1
    - Dst: add_pushurl
      Src: /src/git/remote.c:522,1
    - Dst: strcmp
      Src: /src/git/remote.c:523,1
    - Dst: git_config_string
      Src: /src/git/remote.c:525,1
    - Dst: refspec_append
      Src: /src/git/remote.c:527,1
    - Dst: free
      Src: /src/git/remote.c:528,1
    - Dst: strcmp
      Src: /src/git/remote.c:529,1
    - Dst: git_config_string
      Src: /src/git/remote.c:531,1
    - Dst: refspec_append
      Src: /src/git/remote.c:533,1
    - Dst: free
      Src: /src/git/remote.c:534,1
    - Dst: strcmp
      Src: /src/git/remote.c:535,1
    - Dst: git_config_string
      Src: /src/git/remote.c:537,1
    - Dst: error
      Src: /src/git/remote.c:542,1
    - Dst: _
      Src: /src/git/remote.c:542,1
    - Dst: strcmp
      Src: /src/git/remote.c:543,1
    - Dst: git_config_string
      Src: /src/git/remote.c:545,1
    - Dst: error
      Src: /src/git/remote.c:550,1
    - Dst: _
      Src: /src/git/remote.c:550,1
    - Dst: strcmp
      Src: /src/git/remote.c:551,1
    - Dst: strcmp
      Src: /src/git/remote.c:552,1
    - Dst: strcmp
      Src: /src/git/remote.c:554,1
    - Dst: strcmp
      Src: /src/git/remote.c:556,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:557,1
    - Dst: git_config_string
      Src: /src/git/remote.c:558,1
    - Dst: strcmp
      Src: /src/git/remote.c:560,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:561,1
    - Dst: git_config_string
      Src: /src/git/remote.c:562,1
    - Dst: strcmp
      Src: /src/git/remote.c:564,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:565,1
    - Dst: git_config_string
      Src: /src/git/remote.c:566,1
    - Dst: strcmp
      Src: /src/git/remote.c:567,1
    - Dst: parse_transport_option
      Src: /src/git/remote.c:568,1
    - Dst: strcmp
      Src: /src/git/remote.c:570,1
    - Dst: parse_transport_option
      Src: /src/git/remote.c:571,1
    - Dst: strcmp
      Src: /src/git/remote.c:573,1
    - Dst: parse_transport_option
      Src: /src/git/remote.c:574,1
    - Dst: strcmp
      Src: /src/git/remote.c:576,1
    - Dst: strcmp
      Src: /src/git/remote.c:578,1
    - Dst: strcmp
      Src: /src/git/remote.c:580,1
    - Dst: strcmp
      Src: /src/git/remote.c:582,1
    - Dst: skip_prefix
      Src: /src/git/remote.c:585,1
    - Dst: strcmp
      Src: /src/git/remote.c:588,1
    - Dst: warning
      Src: /src/git/remote.c:591,1
    - Dst: _
      Src: /src/git/remote.c:591,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 147
    argCount: 4
    argNames:
    - key
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 431
    functionDepth: 12
    functionLinenumber: 431
    functionLinenumberEnd: 596
    functionName: handle_config
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - add_url
    - add_pushurl
    - parse_config_key
    - make_branch
    - free
    - strcmp
    - error
    - add_instead_of
    - parse_transport_option
    - git_config_string
    - git_config_bool
    - _
    - make_rewrite
    - warning
    - FREE_AND_NULL
    - skip_prefix
    - xstrdup
    - refspec_append
    - add_merge
    - make_remote
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int handle_config(const char *key, const char *value,\n\t\t\t const
      struct config_context *ctx, void *cb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alias_url
      Src: /src/git/remote.c:606,1
    - Dst: strvec_replace
      Src: /src/git/remote.c:609,1
    - Dst: free
      Src: /src/git/remote.c:611,1
    - Dst: add_pushurl_alias
      Src: /src/git/remote.c:617,1
    - Dst: alias_url
      Src: /src/git/remote.c:620,1
    - Dst: strvec_replace
      Src: /src/git/remote.c:623,1
    - Dst: free
      Src: /src/git/remote.c:625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - remote_state
    argTypes:
    - struct remote_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 598
    functionDepth: 7
    functionLinenumber: 598
    functionLinenumberEnd: 628
    functionName: alias_all_urls
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strvec_replace
    - add_pushurl_alias
    - alias_url
    - free
    linkageType: ''
    returnType: void
    signature: void alias_all_urls(struct remote_state *remote_state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/remote.c:640,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:641,1
    - Dst: skip_prefix
      Src: /src/git/remote.c:643,1
    - Dst: make_branch
      Src: /src/git/remote.c:644,1
    - Dst: strlen
      Src: /src/git/remote.c:645,1
    - Dst: repo_config
      Src: /src/git/remote.c:648,1
    - Dst: alias_all_urls
      Src: /src/git/remote.c:649,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - repo
    - early
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 630
    functionDepth: 12
    functionLinenumber: 630
    functionLinenumberEnd: 650
    functionName: read_config
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - strlen
    - make_branch
    - alias_all_urls
    - skip_prefix
    - repo_config
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void read_config(struct repository *repo, int early)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_dot_or_dotdot
      Src: /src/git/remote.c:655,1
    - Dst: is_dir_sep
      Src: /src/git/remote.c:660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 663
    functionName: valid_remote_nick
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - is_dot_or_dotdot
    linkageType: ''
    returnType: int
    signature: int valid_remote_nick(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - remote_state
    - branch
    - explicit
    argTypes:
    - struct remote_state*
    - struct branch*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 680
    functionName: remotes_remote_for_branch
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *remotes_remote_for_branch(struct remote_state *remote_state,\n\t\t\t\t\t
      \    struct branch *branch,\n\t\t\t\t\t     int *explicit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:684,1
    - Dst: die_on_missing_branch
      Src: /src/git/remote.c:685,1
    - Dst: remotes_remote_for_branch
      Src: /src/git/remote.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - branch
    - explicit
    argTypes:
    - struct branch*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 682
    functionDepth: 13
    functionLinenumber: 682
    functionLinenumberEnd: 689
    functionName: remote_for_branch
    functionSourceFile: /src/git/remote.c
    functionUses: 2
    functionsReached:
    - remotes_remote_for_branch
    - read_config
    - die_on_missing_branch
    linkageType: ''
    returnType: char
    signature: char *remote_for_branch(struct branch *branch, int *explicit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remotes_remote_for_branch
      Src: /src/git/remote.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - remote_state
    - branch
    - explicit
    argTypes:
    - struct remote_state*
    - struct branch*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 706
    functionName: remotes_pushremote_for_branch
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - remotes_remote_for_branch
    linkageType: ''
    returnType: char
    signature: "char *\nremotes_pushremote_for_branch(struct remote_state *remote_state,\n\t\t\t
      \     struct branch *branch, int *explicit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:710,1
    - Dst: die_on_missing_branch
      Src: /src/git/remote.c:711,1
    - Dst: remotes_pushremote_for_branch
      Src: /src/git/remote.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - branch
    - explicit
    argTypes:
    - struct branch*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 708
    functionDepth: 13
    functionLinenumber: 708
    functionLinenumberEnd: 715
    functionName: pushremote_for_branch
    functionSourceFile: /src/git/remote.c
    functionUses: 2
    functionsReached:
    - remotes_pushremote_for_branch
    - read_config
    - die_on_missing_branch
    linkageType: ''
    returnType: char
    signature: char *pushremote_for_branch(struct branch *branch, int *explicit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:722,1
    - Dst: die_on_missing_branch
      Src: /src/git/remote.c:723,1
    - Dst: xstrdup
      Src: /src/git/remote.c:728,1
    - Dst: remotes_pushremote_for_branch
      Src: /src/git/remote.c:732,1
    - Dst: remotes_remote_get
      Src: /src/git/remote.c:735,1
    - Dst: apply_refspecs
      Src: /src/git/remote.c:739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - branch
    - for_push
    argTypes:
    - struct branch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 720
    functionDepth: 13
    functionLinenumber: 720
    functionLinenumberEnd: 746
    functionName: remote_ref_for_branch
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - remotes_pushremote_for_branch
    - remotes_remote_get
    - read_config
    - die_on_missing_branch
    - apply_refspecs
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *remote_ref_for_branch(struct branch *branch, int for_push)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_tmp
      Src: /src/git/remote.c:755,1
    - Dst: strcmp
      Src: /src/git/remote.c:758,1
    - Dst: strcmp
      Src: /src/git/remote.c:760,1
    - Dst: strcmp
      Src: /src/git/remote.c:762,1
    - Dst: die
      Src: /src/git/remote.c:765,1
    - Dst: _
      Src: /src/git/remote.c:765,1
    - Dst: url_normalize
      Src: /src/git/remote.c:770,1
    - Dst: strbuf_reset
      Src: /src/git/remote.c:774,1
    - Dst: strbuf_add
      Src: /src/git/remote.c:775,1
    - Dst: strbuf_addstr
      Src: /src/git/remote.c:776,1
    - Dst: strbuf_addstr
      Src: /src/git/remote.c:777,1
    - Dst: warning
      Src: /src/git/remote.c:781,1
    - Dst: _
      Src: /src/git/remote.c:781,1
    - Dst: die
      Src: /src/git/remote.c:783,1
    - Dst: _
      Src: /src/git/remote.c:783,1
    - Dst: free
      Src: /src/git/remote.c:786,1
    - Dst: strbuf_release
      Src: /src/git/remote.c:789,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - remote
    argTypes:
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 748
    functionDepth: 4
    functionLinenumber: 748
    functionLinenumberEnd: 790
    functionName: validate_remote_url
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - repo_config_get_string_tmp
    - die
    - strbuf_reset
    - url_normalize
    - strcmp
    - strbuf_addstr
    - _
    - free
    - warning
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void validate_remote_url(struct remote *remote)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_default
      Src: /src/git/remote.c:804,1
    - Dst: make_remote
      Src: /src/git/remote.c:807,1
    - Dst: valid_remote_nick
      Src: /src/git/remote.c:809,1
    - Dst: have_git_dir
      Src: /src/git/remote.c:809,1
    - Dst: valid_remote
      Src: /src/git/remote.c:810,1
    - Dst: read_remotes_file
      Src: /src/git/remote.c:811,1
    - Dst: valid_remote
      Src: /src/git/remote.c:812,1
    - Dst: read_branches_file
      Src: /src/git/remote.c:813,1
    - Dst: valid_remote
      Src: /src/git/remote.c:816,1
    - Dst: add_url_alias
      Src: /src/git/remote.c:817,1
    - Dst: valid_remote
      Src: /src/git/remote.c:818,1
    - Dst: validate_remote_url
      Src: /src/git/remote.c:821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - repo
    - name
    - "(*get_default)(struct remote_state *,\n\t\t\t\t\t\tstruct branch *, int *)"
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 792
    functionDepth: 12
    functionLinenumber: 792
    functionLinenumberEnd: 824
    functionName: remotes_remote_get_1
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - valid_remote_nick
    - get_default
    - make_remote
    - add_url_alias
    - have_git_dir
    - validate_remote_url
    - valid_remote
    - read_branches_file
    - read_remotes_file
    linkageType: ''
    returnType: struct remote
    signature: "struct remote *\nremotes_remote_get_1(struct repository *repo, const
      char *name,\n\t\t     const char *(*get_default)(struct remote_state *,\n\t\t\t\t\t\tstruct
      branch *, int *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remotes_remote_get_1
      Src: /src/git/remote.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - repo
    - name
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 826
    functionDepth: 13
    functionLinenumber: 826
    functionLinenumberEnd: 830
    functionName: remotes_remote_get
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - remotes_remote_get_1
    linkageType: ''
    returnType: struct remote
    signature: 'struct remote *

      remotes_remote_get(struct repository *repo, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:834,1
    - Dst: remotes_remote_get
      Src: /src/git/remote.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 14
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: remote_get
    functionSourceFile: /src/git/remote.c
    functionUses: 2
    functionsReached:
    - remotes_remote_get
    - read_config
    linkageType: ''
    returnType: struct remote
    signature: struct remote *remote_get(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:840,1
    - Dst: remotes_remote_get
      Src: /src/git/remote.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 838
    functionDepth: 14
    functionLinenumber: 838
    functionLinenumberEnd: 842
    functionName: remote_get_early
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - remotes_remote_get
    - read_config
    linkageType: ''
    returnType: struct remote
    signature: struct remote *remote_get_early(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remotes_remote_get_1
      Src: /src/git/remote.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - repo
    - name
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 844
    functionDepth: 13
    functionLinenumber: 844
    functionLinenumberEnd: 848
    functionName: remotes_pushremote_get
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - remotes_remote_get_1
    linkageType: ''
    returnType: struct remote
    signature: 'struct remote *

      remotes_pushremote_get(struct repository *repo, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:852,1
    - Dst: remotes_pushremote_get
      Src: /src/git/remote.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 14
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: pushremote_get
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - remotes_pushremote_get
    - read_config
    linkageType: ''
    returnType: struct remote
    signature: struct remote *pushremote_get(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - remote
    - in_repo
    argTypes:
    - struct remote*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 863
    functionName: remote_is_configured
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int remote_is_configured(struct remote *remote, int in_repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:868,1
    - Dst: fn
      Src: /src/git/remote.c:875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - fn
    - priv
    argTypes:
    - each_remote_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 865
    functionDepth: 13
    functionLinenumber: 865
    functionLinenumberEnd: 878
    functionName: for_each_remote
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - fn
    - read_config
    linkageType: ''
    returnType: int
    signature: int for_each_remote(each_remote_fn fn, void *priv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/remote.c:882,1
    - Dst: die
      Src: /src/git/remote.c:885,1
    - Dst: _
      Src: /src/git/remote.c:885,1
    - Dst: warning
      Src: /src/git/remote.c:889,1
    - Dst: _
      Src: /src/git/remote.c:889,1
    - Dst: die
      Src: /src/git/remote.c:893,1
    - Dst: _
      Src: /src/git/remote.c:893,1
    - Dst: BUG
      Src: /src/git/remote.c:901,1
    - Dst: free
      Src: /src/git/remote.c:904,1
    - Dst: free
      Src: /src/git/remote.c:905,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ref1
    - ref2
    argTypes:
    - struct ref*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 906
    functionName: handle_duplicate
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - die
    - strcmp
    - _
    - free
    - warning
    - BUG
    linkageType: ''
    returnType: void
    signature: void handle_duplicate(struct ref *ref1, struct ref *ref2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/remote.c:925,1
    - Dst: handle_duplicate
      Src: /src/git/remote.c:929,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:938,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ref_map
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 940
    functionName: ref_remove_duplicates
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - handle_duplicate
    - string_list_insert
    linkageType: ''
    returnType: struct ref
    signature: struct ref *ref_remove_duplicates(struct ref *ref_map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/remote.c:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - remote
    - url
    argTypes:
    - struct remote*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 950
    functionName: remote_has_url
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int remote_has_url(struct remote *remote, const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - remote
    argTypes:
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 955
    functionName: push_url_of_remote
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct strvec
    signature: struct strvec *push_url_of_remote(struct remote *remote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/remote.c:962,1
    - Dst: free
      Src: /src/git/remote.c:963,1
    - Dst: free
      Src: /src/git/remote.c:964,1
    - Dst: free
      Src: /src/git/remote.c:965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - report
    argTypes:
    - struct ref_push_report*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 969
    functionName: ref_push_report_free
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ref_push_report_free(struct ref_push_report *report)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refspec_find_match
      Src: /src/git/remote.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - remote
    - refspec
    argTypes:
    - struct remote*
    - struct refspec_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 971
    functionDepth: 8
    functionLinenumber: 971
    functionLinenumberEnd: 974
    functionName: remote_find_tracking
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - refspec_find_match
    linkageType: ''
    returnType: int
    signature: int remote_find_tracking(struct remote *remote, struct refspec_item
      *refspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/remote.c:979,1
    - Dst: xcalloc
      Src: /src/git/remote.c:980,1
    - Dst: st_add4
      Src: /src/git/remote.c:980,1
    - Dst: memcpy
      Src: /src/git/remote.c:981,1
    - Dst: memcpy
      Src: /src/git/remote.c:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - prefix
    - prefixlen
    - name
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 976
    functionDepth: 7
    functionLinenumber: 976
    functionLinenumberEnd: 984
    functionName: alloc_ref_with_prefix
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strlen
    - st_add4
    - xcalloc
    - memcpy
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *alloc_ref_with_prefix(const char *prefix, size_t prefixlen,\n\t\tconst
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_ref_with_prefix
      Src: /src/git/remote.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 986
    functionDepth: 8
    functionLinenumber: 986
    functionLinenumberEnd: 989
    functionName: alloc_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 2
    functionsReached:
    - alloc_ref_with_prefix
    linkageType: ''
    returnType: struct ref
    signature: struct ref *alloc_ref(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: st_add3
      Src: /src/git/remote.c:997,1
    - Dst: strlen
      Src: /src/git/remote.c:997,1
    - Dst: xmalloc
      Src: /src/git/remote.c:998,1
    - Dst: memcpy
      Src: /src/git/remote.c:999,1
    - Dst: xstrdup_or_null
      Src: /src/git/remote.c:1001,1
    - Dst: xstrdup_or_null
      Src: /src/git/remote.c:1002,1
    - Dst: copy_ref
      Src: /src/git/remote.c:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 991
    functionDepth: 2
    functionLinenumber: 991
    functionLinenumberEnd: 1005
    functionName: copy_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 2
    functionsReached:
    - xstrdup_or_null
    - copy_ref
    - memcpy
    - strlen
    - xmalloc
    - st_add3
    linkageType: ''
    returnType: struct ref
    signature: struct ref *copy_ref(const struct ref *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_ref
      Src: /src/git/remote.c:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1007
    functionDepth: 3
    functionLinenumber: 1007
    functionLinenumberEnd: 1017
    functionName: copy_ref_list
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - copy_ref
    linkageType: ''
    returnType: struct ref
    signature: struct ref *copy_ref_list(const struct ref *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_one_ref
      Src: /src/git/remote.c:1023,1
    - Dst: ref_push_report_free
      Src: /src/git/remote.c:1024,1
    - Dst: free
      Src: /src/git/remote.c:1025,1
    - Dst: free
      Src: /src/git/remote.c:1026,1
    - Dst: free
      Src: /src/git/remote.c:1027,1
    - Dst: free
      Src: /src/git/remote.c:1028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1029
    functionName: free_one_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - ref_push_report_free
    - free_one_ref
    - free
    linkageType: ''
    returnType: void
    signature: void free_one_ref(struct ref *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_one_ref
      Src: /src/git/remote.c:1036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1031
    functionDepth: 3
    functionLinenumber: 1031
    functionLinenumberEnd: 1039
    functionName: free_refs
    functionSourceFile: /src/git/remote.c
    functionUses: 5
    functionsReached:
    - free_one_ref
    linkageType: ''
    returnType: void
    signature: void free_refs(struct ref *ref)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/remote.c:1045,1
    - Dst: strlen
      Src: /src/git/remote.c:1053,1
    - Dst: refname_match
      Src: /src/git/remote.c:1055,1
    - Dst: starts_with
      Src: /src/git/remote.c:1068,1
    - Dst: starts_with
      Src: /src/git/remote.c:1069,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - pattern
    - refs
    - matched_ref
    argTypes:
    - char*
    - struct ref*
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1041
    functionDepth: 2
    functionLinenumber: 1041
    functionLinenumberEnd: 1095
    functionName: count_refspec_match
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - refname_match
    - strlen
    - starts_with
    linkageType: ''
    returnType: int
    signature: "int count_refspec_match(const char *pattern,\n\t\t\tstruct ref *refs,\n\t\t\tstruct
      ref **matched_ref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ref
    - tail
    argTypes:
    - struct ref*
    - struct ref***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1103
    functionName: tail_link_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tail_link_ref(struct ref *ref, struct ref ***tail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_ref
      Src: /src/git/remote.c:1107,1
    - Dst: oidclr
      Src: /src/git/remote.c:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1105
    functionDepth: 9
    functionLinenumber: 1105
    functionLinenumberEnd: 1110
    functionName: alloc_delete_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - oidclr
    - alloc_ref
    linkageType: ''
    returnType: struct ref
    signature: struct ref *alloc_delete_ref(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloc_delete_ref
      Src: /src/git/remote.c:1119,1
    - Dst: repo_get_oid
      Src: /src/git/remote.c:1123,1
    - Dst: alloc_ref
      Src: /src/git/remote.c:1127,1
    - Dst: oidcpy
      Src: /src/git/remote.c:1128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - name
    - match
    argTypes:
    - char*
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1112
    functionDepth: 10
    functionLinenumber: 1112
    functionLinenumberEnd: 1131
    functionName: try_explicit_object_name
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - repo_get_oid
    - alloc_ref
    - alloc_delete_ref
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int try_explicit_object_name(const char *name,\n\t\t\t\t    struct
      ref **match)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_ref
      Src: /src/git/remote.c:1135,1
    - Dst: tail_link_ref
      Src: /src/git/remote.c:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - tail
    argTypes:
    - char*
    - struct ref***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1133
    functionDepth: 9
    functionLinenumber: 1133
    functionLinenumberEnd: 1138
    functionName: make_linked_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - tail_link_ref
    - alloc_ref
    linkageType: ''
    returnType: struct ref
    signature: struct ref *make_linked_ref(const char *name, struct ref ***tail)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/remote.c:1144,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:1144,1
    - Dst: starts_with
      Src: /src/git/remote.c:1151,1
    - Dst: strbuf_addstr
      Src: /src/git/remote.c:1152,1
    - Dst: starts_with
      Src: /src/git/remote.c:1153,1
    - Dst: strbuf_addstr
      Src: /src/git/remote.c:1154,1
    - Dst: strbuf_addstr
      Src: /src/git/remote.c:1159,1
    - Dst: strbuf_detach
      Src: /src/git/remote.c:1160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - name
    - peer
    argTypes:
    - char*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1140
    functionDepth: 5
    functionLinenumber: 1140
    functionLinenumberEnd: 1161
    functionName: guess_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - starts_with
    - strbuf_detach
    - strbuf_addstr
    - get_main_ref_store
    linkageType: ''
    returnType: char
    signature: char *guess_ref(const char *name, struct ref *peer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: count_refspec_match
      Src: /src/git/remote.c:1168,1
    - Dst: try_explicit_object_name
      Src: /src/git/remote.c:1178,1
    - Dst: error
      Src: /src/git/remote.c:1179,1
    - Dst: _
      Src: /src/git/remote.c:1179,1
    - Dst: error
      Src: /src/git/remote.c:1184,1
    - Dst: _
      Src: /src/git/remote.c:1184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - src
    - rs
    - match
    - allocated_match
    argTypes:
    - struct ref*
    - struct refspec_item*
    - struct ref**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1163
    functionDepth: 11
    functionLinenumber: 1163
    functionLinenumberEnd: 1186
    functionName: match_explicit_lhs
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - try_explicit_object_name
    - count_refspec_match
    linkageType: ''
    returnType: int
    signature: "int match_explicit_lhs(struct ref *src,\n\t\t\t      struct refspec_item
      *rs,\n\t\t\t      struct ref **match,\n\t\t\t      int *allocated_match)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/remote.c:1198,1
    - Dst: _
      Src: /src/git/remote.c:1198,1
    - Dst: advice_enabled
      Src: /src/git/remote.c:1209,1
    - Dst: repo_get_oid
      Src: /src/git/remote.c:1212,1
    - Dst: BUG
      Src: /src/git/remote.c:1213,1
    - Dst: odb_read_object_info
      Src: /src/git/remote.c:1217,1
    - Dst: advise
      Src: /src/git/remote.c:1219,1
    - Dst: _
      Src: /src/git/remote.c:1219,1
    - Dst: advise
      Src: /src/git/remote.c:1225,1
    - Dst: _
      Src: /src/git/remote.c:1225,1
    - Dst: advise
      Src: /src/git/remote.c:1231,1
    - Dst: _
      Src: /src/git/remote.c:1231,1
    - Dst: advise
      Src: /src/git/remote.c:1237,1
    - Dst: _
      Src: /src/git/remote.c:1237,1
    - Dst: advise
      Src: /src/git/remote.c:1243,1
    - Dst: _
      Src: /src/git/remote.c:1243,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - dst_value
    - matched_src_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1188
    functionDepth: 4
    functionLinenumber: 1188
    functionLinenumberEnd: 1248
    functionName: show_push_unqualified_ref_name_error
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - error
    - repo_get_oid
    - odb_read_object_info
    - _
    - advise
    - BUG
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: "void show_push_unqualified_ref_name_error(const char *dst_value,\n\t\t\t\t\t\t
      const char *matched_src_name)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: match_explicit_lhs
      Src: /src/git/remote.c:1265,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/remote.c:1273,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:1273,1
    - Dst: starts_with
      Src: /src/git/remote.c:1279,1
    - Dst: die
      Src: /src/git/remote.c:1280,1
    - Dst: _
      Src: /src/git/remote.c:1280,1
    - Dst: count_refspec_match
      Src: /src/git/remote.c:1284,1
    - Dst: starts_with
      Src: /src/git/remote.c:1288,1
    - Dst: make_linked_ref
      Src: /src/git/remote.c:1289,1
    - Dst: is_null_oid
      Src: /src/git/remote.c:1290,1
    - Dst: error
      Src: /src/git/remote.c:1291,1
    - Dst: _
      Src: /src/git/remote.c:1291,1
    - Dst: guess_ref
      Src: /src/git/remote.c:1293,1
    - Dst: make_linked_ref
      Src: /src/git/remote.c:1294,1
    - Dst: free
      Src: /src/git/remote.c:1295,1
    - Dst: show_push_unqualified_ref_name_error
      Src: /src/git/remote.c:1297,1
    - Dst: error
      Src: /src/git/remote.c:1303,1
    - Dst: _
      Src: /src/git/remote.c:1303,1
    - Dst: error
      Src: /src/git/remote.c:1314,1
    - Dst: _
      Src: /src/git/remote.c:1314,1
    - Dst: copy_ref
      Src: /src/git/remote.c:1320,1
    - Dst: free_one_ref
      Src: /src/git/remote.c:1329,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 4
    argNames:
    - src
    - dst
    - dst_tail
    - rs
    argTypes:
    - struct ref*
    - struct ref*
    - struct ref***
    - struct refspec_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1250
    functionDepth: 12
    functionLinenumber: 1250
    functionLinenumberEnd: 1331
    functionName: match_explicit
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - error
    - make_linked_ref
    - die
    - match_explicit_lhs
    - free_one_ref
    - refs_resolve_ref_unsafe
    - guess_ref
    - show_push_unqualified_ref_name_error
    - starts_with
    - count_refspec_match
    - is_null_oid
    - copy_ref
    - _
    - free
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int match_explicit(struct ref *src, struct ref *dst,\n\t\t\t  struct
      ref ***dst_tail,\n\t\t\t  struct refspec_item *rs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_explicit
      Src: /src/git/remote.c:1338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - src
    - dst
    - dst_tail
    - rs
    argTypes:
    - struct ref*
    - struct ref*
    - struct ref***
    - struct refspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1333
    functionDepth: 13
    functionLinenumber: 1333
    functionLinenumberEnd: 1340
    functionName: match_explicit_refs
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - match_explicit
    linkageType: ''
    returnType: int
    signature: "int match_explicit_refs(struct ref *src, struct ref *dst,\n\t\t\t
      \      struct ref ***dst_tail, struct refspec *rs)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: match_refname_with_pattern
      Src: /src/git/remote.c:1366,1
    - Dst: match_refname_with_pattern
      Src: /src/git/remote.c:1368,1
    - Dst: starts_with
      Src: /src/git/remote.c:1385,1
    - Dst: xstrdup
      Src: /src/git/remote.c:1387,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 5
    argNames:
    - rs
    - ref
    - send_mirror
    - direction
    - ret_pat
    argTypes:
    - struct refspec*
    - struct ref*
    - int
    - int
    - struct refspec_item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1342
    functionDepth: 4
    functionLinenumber: 1342
    functionLinenumberEnd: 1392
    functionName: get_ref_match
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - match_refname_with_pattern
    - starts_with
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *get_ref_match(const struct refspec *rs, const struct ref *ref,\n\t\t\t
      \  int send_mirror, int direction,\n\t\t\t   const struct refspec_item **ret_pat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1400
    functionName: tail_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ref
    signature: struct ref **tail_ref(struct ref **head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/remote.c:1406,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/remote.c:1408,1
    - Dst: commit_stack_push
      Src: /src/git/remote.c:1412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - tips
    - oid
    argTypes:
    - struct commit_stack*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1413
    functionName: add_to_tips
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - commit_stack_push
    - lookup_commit_reference_gently
    - is_null_oid
    linkageType: ''
    returnType: void
    signature: void add_to_tips(struct commit_stack *tips, const struct object_id
      *oid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/remote.c:1429,1
    - Dst: add_to_tips
      Src: /src/git/remote.c:1430,1
    - Dst: add_to_tips
      Src: /src/git/remote.c:1432,1
    - Dst: starts_with
      Src: /src/git/remote.c:1433,1
    - Dst: string_list_append
      Src: /src/git/remote.c:1434,1
    - Dst: clear_commit_marks_many
      Src: /src/git/remote.c:1436,1
    - Dst: string_list_sort
      Src: /src/git/remote.c:1438,1
    - Dst: starts_with
      Src: /src/git/remote.c:1442,1
    - Dst: string_list_has_string
      Src: /src/git/remote.c:1444,1
    - Dst: odb_read_object_info
      Src: /src/git/remote.c:1446,1
    - Dst: string_list_append
      Src: /src/git/remote.c:1449,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:1452,1
    - Dst: for_each_string_list_item
      Src: /src/git/remote.c:1466,1
    - Dst: is_null_oid
      Src: /src/git/remote.c:1470,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/remote.c:1472,1
    - Dst: commit_stack_push
      Src: /src/git/remote.c:1479,1
    - Dst: get_reachable_subset
      Src: /src/git/remote.c:1482,1
    - Dst: for_each_string_list_item
      Src: /src/git/remote.c:1488,1
    - Dst: is_null_oid
      Src: /src/git/remote.c:1493,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/remote.c:1495,1
    - Dst: make_linked_ref
      Src: /src/git/remote.c:1510,1
    - Dst: oidcpy
      Src: /src/git/remote.c:1511,1
    - Dst: copy_ref
      Src: /src/git/remote.c:1512,1
    - Dst: clear_commit_marks_many
      Src: /src/git/remote.c:1515,1
    - Dst: commit_stack_clear
      Src: /src/git/remote.c:1517,1
    - Dst: commit_list_free
      Src: /src/git/remote.c:1518,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:1521,1
    - Dst: commit_stack_clear
      Src: /src/git/remote.c:1522,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 3
    argNames:
    - src
    - dst
    - dst_tail
    argTypes:
    - struct ref*
    - struct ref**
    - struct ref***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1415
    functionDepth: 10
    functionLinenumber: 1415
    functionLinenumberEnd: 1523
    functionName: add_missing_tags
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - for_each_string_list_item
    - make_linked_ref
    - clear_commit_marks_many
    - lookup_commit_reference_gently
    - oidcpy
    - string_list_sort
    - starts_with
    - is_null_oid
    - commit_stack_push
    - odb_read_object_info
    - copy_ref
    - get_reachable_subset
    - string_list_has_string
    - commit_stack_clear
    - string_list_append
    - commit_list_free
    - add_to_tips
    linkageType: ''
    returnType: void
    signature: void add_missing_tags(struct ref *src, struct ref **dst, struct ref
      ***dst_tail)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/remote.c:1528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - list
    - name
    argTypes:
    - struct ref*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1525
    functionDepth: 0
    functionLinenumber: 1525
    functionLinenumberEnd: 1531
    functionName: find_ref_by_name
    functionSourceFile: /src/git/remote.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct ref
    signature: struct ref *find_ref_by_name(const struct ref *list, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append_nodup
      Src: /src/git/remote.c:1536,1
    - Dst: string_list_sort
      Src: /src/git/remote.c:1538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ref_index
    - ref
    argTypes:
    - struct string_list*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1533
    functionDepth: 2
    functionLinenumber: 1533
    functionLinenumberEnd: 1539
    functionName: prepare_ref_index
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - string_list_sort
    - string_list_append_nodup
    linkageType: ''
    returnType: void
    signature: void prepare_ref_index(struct string_list *ref_index, struct ref *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_explicit_lhs
      Src: /src/git/remote.c:1558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - src
    - rs
    argTypes:
    - struct ref*
    - struct refspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1547
    functionDepth: 12
    functionLinenumber: 1547
    functionLinenumberEnd: 1562
    functionName: check_push_refs
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - match_explicit_lhs
    linkageType: ''
    returnType: int
    signature: int check_push_refs(struct ref *src, struct refspec *rs)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tail_ref
      Src: /src/git/remote.c:1579,1
    - Dst: refspec_append
      Src: /src/git/remote.c:1584,1
    - Dst: match_explicit_refs
      Src: /src/git/remote.c:1586,1
    - Dst: get_ref_match
      Src: /src/git/remote.c:1595,1
    - Dst: prepare_ref_index
      Src: /src/git/remote.c:1600,1
    - Dst: string_list_lookup
      Src: /src/git/remote.c:1602,1
    - Dst: make_linked_ref
      Src: /src/git/remote.c:1618,1
    - Dst: oidcpy
      Src: /src/git/remote.c:1619,1
    - Dst: string_list_insert
      Src: /src/git/remote.c:1620,1
    - Dst: copy_ref
      Src: /src/git/remote.c:1623,1
    - Dst: free
      Src: /src/git/remote.c:1626,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:1629,1
    - Dst: add_missing_tags
      Src: /src/git/remote.c:1632,1
    - Dst: get_ref_match
      Src: /src/git/remote.c:1644,1
    - Dst: prepare_ref_index
      Src: /src/git/remote.c:1647,1
    - Dst: string_list_has_string
      Src: /src/git/remote.c:1648,1
    - Dst: alloc_delete_ref
      Src: /src/git/remote.c:1650,1
    - Dst: free
      Src: /src/git/remote.c:1651,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:1654,1
    - Dst: apply_negative_refspecs
      Src: /src/git/remote.c:1657,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 4
    argNames:
    - src
    - dst
    - rs
    - flags
    argTypes:
    - struct ref*
    - struct ref**
    - struct refspec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1572
    functionDepth: 14
    functionLinenumber: 1572
    functionLinenumberEnd: 1662
    functionName: match_push_refs
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - match_explicit_refs
    - string_list_clear
    - string_list_lookup
    - make_linked_ref
    - refspec_append
    - string_list_insert
    - add_missing_tags
    - prepare_ref_index
    - oidcpy
    - tail_ref
    - copy_ref
    - alloc_delete_ref
    - apply_negative_refspecs
    - string_list_has_string
    - free
    - get_ref_match
    linkageType: ''
    returnType: int
    signature: "int match_push_refs(struct ref *src, struct ref **dst,\n\t\t    struct
      refspec *rs, int flags)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/remote.c:1674,1
    - Dst: is_null_oid
      Src: /src/git/remote.c:1678,1
    - Dst: oideq
      Src: /src/git/remote.c:1680,1
    - Dst: oideq
      Src: /src/git/remote.c:1699,1
    - Dst: is_null_oid
      Src: /src/git/remote.c:1734,1
    - Dst: starts_with
      Src: /src/git/remote.c:1735,1
    - Dst: odb_has_object
      Src: /src/git/remote.c:1737,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/remote.c:1739,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/remote.c:1740,1
    - Dst: ref_newer
      Src: /src/git/remote.c:1742,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 33
    argCount: 3
    argNames:
    - remote_refs
    - send_mirror
    - force_update
    argTypes:
    - struct ref*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1755
    functionName: set_ref_status_for_push
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - lookup_commit_reference_gently
    - oidcpy
    - starts_with
    - is_null_oid
    - odb_has_object
    - ref_newer
    - oideq
    linkageType: ''
    returnType: void
    signature: "void set_ref_status_for_push(struct ref *remote_refs, int send_mirror,\n\t\t\t
      \    int force_update)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: merge_clear
      Src: /src/git/remote.c:1773,1
    - Dst: remotes_remote_get
      Src: /src/git/remote.c:1778,1
    - Dst: remote_find_tracking
      Src: /src/git/remote.c:1781,1
    - Dst: strcmp
      Src: /src/git/remote.c:1782,1
    - Dst: repo_dwim_ref
      Src: /src/git/remote.c:1784,1
    - Dst: strlen
      Src: /src/git/remote.c:1785,1
    - Dst: xstrdup
      Src: /src/git/remote.c:1789,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - repo
    - ret
    argTypes:
    - struct repository*
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1757
    functionDepth: 14
    functionLinenumber: 1757
    functionLinenumberEnd: 1791
    functionName: set_merge
    functionSourceFile: /src/git/remote.c
    functionUses: 3
    functionsReached:
    - repo_dwim_ref
    - remote_find_tracking
    - remotes_remote_get
    - strlen
    - strcmp
    - merge_clear
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void set_merge(struct repository *repo, struct branch *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:1797,1
    - Dst: strcmp
      Src: /src/git/remote.c:1798,1
    - Dst: make_branch
      Src: /src/git/remote.c:1801,1
    - Dst: strlen
      Src: /src/git/remote.c:1802,1
    - Dst: set_merge
      Src: /src/git/remote.c:1803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - repo
    - name
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1793
    functionDepth: 15
    functionLinenumber: 1793
    functionLinenumberEnd: 1805
    functionName: repo_branch_get
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - set_merge
    - strlen
    - read_config
    - make_branch
    - strcmp
    linkageType: ''
    returnType: struct branch
    signature: struct branch *repo_branch_get(struct repository *repo, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_branch_get
      Src: /src/git/remote.c:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1807
    functionDepth: 16
    functionLinenumber: 1807
    functionLinenumberEnd: 1810
    functionName: branch_get
    functionSourceFile: /src/git/remote.c
    functionUses: 6
    functionsReached:
    - repo_branch_get
    linkageType: ''
    returnType: struct branch
    signature: struct branch *branch_get(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:1816,1
    - Dst: repo_branch_get
      Src: /src/git/remote.c:1817,1
    - Dst: remotes_remote_for_branch
      Src: /src/git/remote.c:1819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1812
    functionDepth: 16
    functionLinenumber: 1812
    functionLinenumberEnd: 1820
    functionName: repo_default_remote
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - repo_branch_get
    - remotes_remote_for_branch
    - read_config
    linkageType: ''
    returnType: char
    signature: char *repo_default_remote(struct repository *repo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:1824,1
    - Dst: remote_has_url
      Src: /src/git/remote.c:1831,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - repo
    - url
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1822
    functionDepth: 13
    functionLinenumber: 1822
    functionLinenumberEnd: 1835
    functionName: repo_remote_from_url
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - read_config
    - remote_has_url
    linkageType: ''
    returnType: char
    signature: char *repo_remote_from_url(struct repository *repo, const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - branch
    argTypes:
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1837
    functionDepth: 0
    functionLinenumber: 1837
    functionLinenumberEnd: 1840
    functionName: branch_has_merge_config
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int branch_has_merge_config(struct branch *branch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refname_match
      Src: /src/git/remote.c:1848,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - branch
    - i
    - refname
    argTypes:
    - struct branch*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1842
    functionDepth: 2
    functionLinenumber: 1842
    functionLinenumberEnd: 1849
    functionName: branch_merge_matches
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - refname_match
    linkageType: ''
    returnType: int
    signature: "int branch_merge_matches(struct branch *branch,\n\t\t                 int
      i,\n\t\t                 const char *refname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/remote.c:1851,1
    - Dst: va_start
      Src: /src/git/remote.c:1856,1
    - Dst: strbuf_vaddf
      Src: /src/git/remote.c:1857,1
    - Dst: va_end
      Src: /src/git/remote.c:1858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - err
    - fmt
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1851
    functionDepth: 3
    functionLinenumber: 1851
    functionLinenumberEnd: 1861
    functionName: error_buf
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - strbuf_vaddf
    - format
    linkageType: ''
    returnType: char
    signature: char *error_buf(struct strbuf *err, const char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: error_buf
      Src: /src/git/remote.c:1866,1
    - Dst: _
      Src: /src/git/remote.c:1866,1
    - Dst: refs_ref_exists
      Src: /src/git/remote.c:1874,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:1874,1
    - Dst: error_buf
      Src: /src/git/remote.c:1875,1
    - Dst: _
      Src: /src/git/remote.c:1875,1
    - Dst: error_buf
      Src: /src/git/remote.c:1877,1
    - Dst: _
      Src: /src/git/remote.c:1878,1
    - Dst: error_buf
      Src: /src/git/remote.c:1883,1
    - Dst: _
      Src: /src/git/remote.c:1884,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - branch
    - err
    argTypes:
    - struct branch*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1863
    functionDepth: 4
    functionLinenumber: 1863
    functionLinenumberEnd: 1888
    functionName: branch_get_upstream
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - refs_ref_exists
    - get_main_ref_store
    - _
    - error_buf
    linkageType: ''
    returnType: char
    signature: char *branch_get_upstream(struct branch *branch, struct strbuf *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apply_refspecs
      Src: /src/git/remote.c:1896,1
    - Dst: error_buf
      Src: /src/git/remote.c:1898,1
    - Dst: _
      Src: /src/git/remote.c:1899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - remote
    - refname
    - err
    argTypes:
    - struct remote*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1890
    functionDepth: 9
    functionLinenumber: 1890
    functionLinenumberEnd: 1902
    functionName: tracking_for_push_dest
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - apply_refspecs
    - _
    - error_buf
    linkageType: ''
    returnType: char
    signature: "char *tracking_for_push_dest(struct remote *remote,\n\t\t\t\t    const
      char *refname,\n\t\t\t\t    struct strbuf *err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: remotes_remote_get
      Src: /src/git/remote.c:1910,1
    - Dst: remotes_pushremote_for_branch
      Src: /src/git/remote.c:1912,1
    - Dst: error_buf
      Src: /src/git/remote.c:1914,1
    - Dst: _
      Src: /src/git/remote.c:1915,1
    - Dst: apply_refspecs
      Src: /src/git/remote.c:1922,1
    - Dst: error_buf
      Src: /src/git/remote.c:1924,1
    - Dst: _
      Src: /src/git/remote.c:1925,1
    - Dst: tracking_for_push_dest
      Src: /src/git/remote.c:1928,1
    - Dst: free
      Src: /src/git/remote.c:1929,1
    - Dst: tracking_for_push_dest
      Src: /src/git/remote.c:1934,1
    - Dst: error_buf
      Src: /src/git/remote.c:1938,1
    - Dst: _
      Src: /src/git/remote.c:1938,1
    - Dst: tracking_for_push_dest
      Src: /src/git/remote.c:1942,1
    - Dst: xstrdup_or_null
      Src: /src/git/remote.c:1945,1
    - Dst: branch_get_upstream
      Src: /src/git/remote.c:1945,1
    - Dst: branch_get_upstream
      Src: /src/git/remote.c:1953,1
    - Dst: tracking_for_push_dest
      Src: /src/git/remote.c:1956,1
    - Dst: strcmp
      Src: /src/git/remote.c:1959,1
    - Dst: free
      Src: /src/git/remote.c:1960,1
    - Dst: error_buf
      Src: /src/git/remote.c:1961,1
    - Dst: _
      Src: /src/git/remote.c:1962,1
    - Dst: BUG
      Src: /src/git/remote.c:1968,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - repo
    - branch
    - err
    argTypes:
    - struct repository*
    - struct branch*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1904
    functionDepth: 14
    functionLinenumber: 1904
    functionLinenumberEnd: 1969
    functionName: branch_get_push_1
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - error_buf
    - BUG
    - remotes_remote_get
    - remotes_pushremote_for_branch
    - tracking_for_push_dest
    - strcmp
    - _
    - free
    - branch_get_upstream
    - apply_refspecs
    linkageType: ''
    returnType: char
    signature: "char *branch_get_push_1(struct repository *repo,\n\t\t\t       struct
      branch *branch, struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_config
      Src: /src/git/remote.c:1973,1
    - Dst: die_on_missing_branch
      Src: /src/git/remote.c:1974,1
    - Dst: error_buf
      Src: /src/git/remote.c:1977,1
    - Dst: _
      Src: /src/git/remote.c:1977,1
    - Dst: branch_get_push_1
      Src: /src/git/remote.c:1980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - branch
    - err
    argTypes:
    - struct branch*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1971
    functionDepth: 15
    functionLinenumber: 1971
    functionLinenumberEnd: 1983
    functionName: branch_get_push
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - error_buf
    - die_on_missing_branch
    - branch_get_push_1
    - read_config
    - _
    linkageType: ''
    returnType: char
    signature: char *branch_get_push(struct branch *branch, struct strbuf *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_read_symbolic_ref
      Src: /src/git/remote.c:1987,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:1987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refname
    - scratch
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1985
    functionDepth: 3
    functionLinenumber: 1985
    functionLinenumberEnd: 1988
    functionName: ignore_symref_update
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - get_main_ref_store
    - refs_read_symbolic_ref
    linkageType: ''
    returnType: int
    signature: int ignore_symref_update(const char *refname, struct strbuf *scratch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/remote.c:2008,1
    - Dst: strchr
      Src: /src/git/remote.c:2010,1
    - Dst: match_refname_with_pattern
      Src: /src/git/remote.c:2012,1
    - Dst: ignore_symref_update
      Src: /src/git/remote.c:2014,1
    - Dst: copy_ref
      Src: /src/git/remote.c:2015,1
    - Dst: free_one_ref
      Src: /src/git/remote.c:2018,1
    - Dst: alloc_ref
      Src: /src/git/remote.c:2019,1
    - Dst: free
      Src: /src/git/remote.c:2025,1
    - Dst: strbuf_release
      Src: /src/git/remote.c:2028,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - remote_refs
    - refspec
    argTypes:
    - struct ref*
    - struct refspec_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 1997
    functionDepth: 9
    functionLinenumber: 1997
    functionLinenumberEnd: 2030
    functionName: get_expanded_map
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - match_refname_with_pattern
    - free_one_ref
    - strbuf_reset
    - copy_ref
    - strchr
    - free
    - ignore_symref_update
    - alloc_ref
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *get_expanded_map(const struct ref *remote_refs,\n\t\t\t\t
      \   const struct refspec_item *refspec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refname_match
      Src: /src/git/remote.c:2039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - refs
    - name
    argTypes:
    - struct ref*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2032
    functionDepth: 2
    functionLinenumber: 2032
    functionLinenumberEnd: 2047
    functionName: find_ref_by_name_abbrev
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - refname_match
    linkageType: ''
    returnType: struct ref
    signature: struct ref *find_ref_by_name_abbrev(const struct ref *refs, const char
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_ref_by_name_abbrev
      Src: /src/git/remote.c:2051,1
    - Dst: copy_ref
      Src: /src/git/remote.c:2056,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - remote_refs
    - name
    argTypes:
    - struct ref*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2049
    functionDepth: 3
    functionLinenumber: 2049
    functionLinenumberEnd: 2057
    functionName: get_remote_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - find_ref_by_name_abbrev
    - copy_ref
    linkageType: ''
    returnType: struct ref
    signature: struct ref *get_remote_ref(const struct ref *remote_refs, const char
      *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/remote.c:2064,1
    - Dst: alloc_ref
      Src: /src/git/remote.c:2065,1
    - Dst: starts_with
      Src: /src/git/remote.c:2067,1
    - Dst: starts_with
      Src: /src/git/remote.c:2068,1
    - Dst: starts_with
      Src: /src/git/remote.c:2069,1
    - Dst: alloc_ref_with_prefix
      Src: /src/git/remote.c:2070,1
    - Dst: alloc_ref_with_prefix
      Src: /src/git/remote.c:2072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2059
    functionDepth: 9
    functionLinenumber: 2059
    functionLinenumberEnd: 2073
    functionName: get_local_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - alloc_ref_with_prefix
    - alloc_ref
    - starts_with
    linkageType: ''
    returnType: struct ref
    signature: struct ref *get_local_ref(const char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_expanded_map
      Src: /src/git/remote.c:2086,1
    - Dst: alloc_ref
      Src: /src/git/remote.c:2091,1
    - Dst: get_oid_hex
      Src: /src/git/remote.c:2092,1
    - Dst: get_remote_ref
      Src: /src/git/remote.c:2095,1
    - Dst: die
      Src: /src/git/remote.c:2098,1
    - Dst: _
      Src: /src/git/remote.c:2098,1
    - Dst: get_local_ref
      Src: /src/git/remote.c:2100,1
    - Dst: starts_with
      Src: /src/git/remote.c:2108,1
    - Dst: check_refname_format
      Src: /src/git/remote.c:2109,1
    - Dst: error
      Src: /src/git/remote.c:2111,1
    - Dst: _
      Src: /src/git/remote.c:2111,1
    - Dst: free
      Src: /src/git/remote.c:2114,1
    - Dst: free
      Src: /src/git/remote.c:2115,1
    - Dst: tail_link_ref
      Src: /src/git/remote.c:2123,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - remote_refs
    - refspec
    - tail
    - missing_ok
    argTypes:
    - struct ref*
    - struct refspec_item*
    - struct ref***
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2075
    functionDepth: 10
    functionLinenumber: 2075
    functionLinenumberEnd: 2126
    functionName: get_fetch_map
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - error
    - tail_link_ref
    - die
    - get_oid_hex
    - starts_with
    - get_local_ref
    - check_refname_format
    - get_remote_ref
    - free
    - get_expanded_map
    - alloc_ref
    - _
    linkageType: ''
    returnType: int
    signature: "int get_fetch_map(const struct ref *remote_refs,\n\t\t  const struct
      refspec_item *refspec,\n\t\t  struct ref ***tail,\n\t\t  int missing_ok)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/remote.c:2133,1
    - Dst: oidcpy
      Src: /src/git/remote.c:2134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ref
    - list
    argTypes:
    - struct ref*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2138
    functionName: resolve_remote_symref
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - oidcpy
    - strcmp
    linkageType: ''
    returnType: int
    signature: int resolve_remote_symref(struct ref *ref, struct ref *list)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: refs_read_ref
      Src: /src/git/remote.c:2163,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:2163,1
    - Dst: lookup_commit_reference
      Src: /src/git/remote.c:2165,1
    - Dst: refs_read_ref
      Src: /src/git/remote.c:2169,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:2169,1
    - Dst: lookup_commit_reference
      Src: /src/git/remote.c:2171,1
    - Dst: BUG
      Src: /src/git/remote.c:2183,1
    - Dst: strvec_push
      Src: /src/git/remote.c:2186,1
    - Dst: strvec_push
      Src: /src/git/remote.c:2187,1
    - Dst: strvec_pushf
      Src: /src/git/remote.c:2188,1
    - Dst: oid_to_hex
      Src: /src/git/remote.c:2189,1
    - Dst: oid_to_hex
      Src: /src/git/remote.c:2190,1
    - Dst: strvec_push
      Src: /src/git/remote.c:2191,1
    - Dst: repo_init_revisions
      Src: /src/git/remote.c:2193,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/remote.c:2194,1
    - Dst: prepare_revision_walk
      Src: /src/git/remote.c:2195,1
    - Dst: die
      Src: /src/git/remote.c:2196,1
    - Dst: _
      Src: /src/git/remote.c:2196,1
    - Dst: get_revision
      Src: /src/git/remote.c:2200,1
    - Dst: clear_commit_marks
      Src: /src/git/remote.c:2210,1
    - Dst: clear_commit_marks
      Src: /src/git/remote.c:2211,1
    - Dst: strvec_clear
      Src: /src/git/remote.c:2213,1
    - Dst: release_revisions
      Src: /src/git/remote.c:2214,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - branch_name
    - base
    - num_ours
    - num_theirs
    - abf
    argTypes:
    - char*
    - char*
    - int*
    - int*
    - enum ahead_behind_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2153
    functionDepth: 13
    functionLinenumber: 2153
    functionLinenumberEnd: 2216
    functionName: stat_branch_pair
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - oid_to_hex
    - die
    - release_revisions
    - get_revision
    - lookup_commit_reference
    - refs_read_ref
    - repo_init_revisions
    - clear_commit_marks
    - setup_revisions_from_strvec
    - strvec_clear
    - prepare_revision_walk
    - _
    - BUG
    - strvec_pushf
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int stat_branch_pair(const char *branch_name, const char *base,\n\t\t\t
      \    int *num_ours, int *num_theirs,\n\t\t\t     enum ahead_behind_flags abf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: branch_get_push
      Src: /src/git/remote.c:2244,1
    - Dst: branch_get_upstream
      Src: /src/git/remote.c:2245,1
    - Dst: stat_branch_pair
      Src: /src/git/remote.c:2251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - branch
    - num_ours
    - num_theirs
    - tracking_name
    - for_push
    - abf
    argTypes:
    - struct branch*
    - int*
    - int*
    - char**
    - int
    - enum ahead_behind_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2237
    functionDepth: 16
    functionLinenumber: 2237
    functionLinenumberEnd: 2252
    functionName: stat_tracking_info
    functionSourceFile: /src/git/remote.c
    functionUses: 3
    functionsReached:
    - stat_branch_pair
    - branch_get_push
    - branch_get_upstream
    linkageType: ''
    returnType: int
    signature: "int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs,\n\t\t
      \      const char **tracking_name, int for_push,\n\t\t       enum ahead_behind_flags
      abf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/remote.c:2261,1
    - Dst: branch_get_upstream
      Src: /src/git/remote.c:2262,1
    - Dst: strcasecmp
      Src: /src/git/remote.c:2263,1
    - Dst: branch_get_push
      Src: /src/git/remote.c:2264,1
    - Dst: warning
      Src: /src/git/remote.c:2266,1
    - Dst: _
      Src: /src/git/remote.c:2266,1
    - Dst: xstrdup
      Src: /src/git/remote.c:2273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - branch
    - name
    argTypes:
    - struct branch*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2254
    functionDepth: 16
    functionLinenumber: 2254
    functionLinenumberEnd: 2275
    functionName: resolve_compare_branch
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - branch_get_push
    - strcasecmp
    - _
    - warning
    - branch_get_upstream
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *resolve_compare_branch(struct branch *branch, const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2289,1
    - Dst: _
      Src: /src/git/remote.c:2290,1
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2293,1
    - Dst: _
      Src: /src/git/remote.c:2294,1
    - Dst: advice_enabled
      Src: /src/git/remote.c:2296,1
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2297,1
    - Dst: _
      Src: /src/git/remote.c:2297,1
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2300,1
    - Dst: Q_
      Src: /src/git/remote.c:2301,1
    - Dst: advice_enabled
      Src: /src/git/remote.c:2305,1
    - Dst: strbuf_addstr
      Src: /src/git/remote.c:2306,1
    - Dst: _
      Src: /src/git/remote.c:2307,1
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2309,1
    - Dst: Q_
      Src: /src/git/remote.c:2310,1
    - Dst: advice_enabled
      Src: /src/git/remote.c:2316,1
    - Dst: strbuf_addstr
      Src: /src/git/remote.c:2317,1
    - Dst: _
      Src: /src/git/remote.c:2318,1
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2320,1
    - Dst: Q_
      Src: /src/git/remote.c:2321,1
    - Dst: advice_enabled
      Src: /src/git/remote.c:2329,1
    - Dst: strbuf_addstr
      Src: /src/git/remote.c:2330,1
    - Dst: _
      Src: /src/git/remote.c:2331,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 7
    argNames:
    - sb
    - up_to_date
    - ours
    - theirs
    - branch_name
    - abf
    - flags
    argTypes:
    - struct strbuf*
    - bool
    - int
    - int
    - char*
    - enum ahead_behind_flags
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2277
    functionDepth: 4
    functionLinenumber: 2277
    functionLinenumberEnd: 2333
    functionName: format_branch_comparison
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    - _
    - Q_
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: "void format_branch_comparison(struct strbuf *sb,\n\t\t\t\t     bool
      up_to_date,\n\t\t\t\t     int ours, int theirs,\n\t\t\t\t     const char *branch_name,\n\t\t\t\t
      \    enum ahead_behind_flags abf,\n\t\t\t\t     unsigned flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string
      Src: /src/git/remote.c:2350,1
    - Dst: string_list_split
      Src: /src/git/remote.c:2354,1
    - Dst: string_list_remove_empty_items
      Src: /src/git/remote.c:2355,1
    - Dst: string_list_append
      Src: /src/git/remote.c:2357,1
    - Dst: branch_get_upstream
      Src: /src/git/remote.c:2360,1
    - Dst: branch_get_push
      Src: /src/git/remote.c:2361,1
    - Dst: resolve_compare_branch
      Src: /src/git/remote.c:2370,1
    - Dst: strset_add
      Src: /src/git/remote.c:2375,1
    - Dst: free
      Src: /src/git/remote.c:2376,1
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/remote.c:2380,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:2381,1
    - Dst: strcmp
      Src: /src/git/remote.c:2383,1
    - Dst: strcmp
      Src: /src/git/remote.c:2384,1
    - Dst: strcmp
      Src: /src/git/remote.c:2386,1
    - Dst: stat_branch_pair
      Src: /src/git/remote.c:2389,1
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2394,1
    - Dst: _
      Src: /src/git/remote.c:2395,1
    - Dst: advice_enabled
      Src: /src/git/remote.c:2397,1
    - Dst: strbuf_addstr
      Src: /src/git/remote.c:2398,1
    - Dst: _
      Src: /src/git/remote.c:2399,1
    - Dst: free
      Src: /src/git/remote.c:2402,1
    - Dst: free
      Src: /src/git/remote.c:2403,1
    - Dst: strbuf_addstr
      Src: /src/git/remote.c:2408,1
    - Dst: format_branch_comparison
      Src: /src/git/remote.c:2416,1
    - Dst: free
      Src: /src/git/remote.c:2420,1
    - Dst: free
      Src: /src/git/remote.c:2421,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:2424,1
    - Dst: strset_clear
      Src: /src/git/remote.c:2425,1
    - Dst: free
      Src: /src/git/remote.c:2426,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 4
    argNames:
    - branch
    - sb
    - abf
    - show_divergence_advice
    argTypes:
    - struct branch*
    - struct strbuf*
    - enum ahead_behind_flags
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2338
    functionDepth: 17
    functionLinenumber: 2338
    functionLinenumberEnd: 2428
    functionName: format_tracking_info
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - strbuf_addf
    - strcmp
    - free
    - resolve_compare_branch
    - get_main_ref_store
    - stat_branch_pair
    - strbuf_addstr
    - branch_get_upstream
    - string_list_clear
    - format_branch_comparison
    - strset_clear
    - refs_shorten_unambiguous_ref
    - string_list_split
    - string_list_append
    - _
    - strset_add
    - branch_get_push
    - repo_config_get_string
    - string_list_remove_empty_items
    - advice_enabled
    linkageType: ''
    returnType: int
    signature: "int format_tracking_info(struct branch *branch, struct strbuf *sb,\n\t\t\t
      enum ahead_behind_flags abf,\n\t\t\t int show_divergence_advice)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_refname_format
      Src: /src/git/remote.c:2436,1
    - Dst: alloc_ref
      Src: /src/git/remote.c:2439,1
    - Dst: oidcpy
      Src: /src/git/remote.c:2440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2430
    functionDepth: 9
    functionLinenumber: 2430
    functionLinenumberEnd: 2444
    functionName: one_local_ref
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - alloc_ref
    - check_refname_format
    - oidcpy
    linkageType: ''
    returnType: int
    signature: int one_local_ref(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_ref
      Src: /src/git/remote.c:2450,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:2450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2446
    functionDepth: 4
    functionLinenumber: 2446
    functionLinenumberEnd: 2453
    functionName: get_local_heads
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - refs_for_each_ref
    - get_main_ref_store
    linkageType: ''
    returnType: struct ref
    signature: struct ref *get_local_heads(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: copy_ref
      Src: /src/git/remote.c:2472,1
    - Dst: find_ref_by_name
      Src: /src/git/remote.c:2472,1
    - Dst: repo_default_branch_name
      Src: /src/git/remote.c:2477,1
    - Dst: xstrfmt
      Src: /src/git/remote.c:2479,1
    - Dst: find_ref_by_name
      Src: /src/git/remote.c:2481,1
    - Dst: free
      Src: /src/git/remote.c:2482,1
    - Dst: free
      Src: /src/git/remote.c:2483,1
    - Dst: oideq
      Src: /src/git/remote.c:2485,1
    - Dst: copy_ref
      Src: /src/git/remote.c:2486,1
    - Dst: find_ref_by_name
      Src: /src/git/remote.c:2489,1
    - Dst: oideq
      Src: /src/git/remote.c:2490,1
    - Dst: copy_ref
      Src: /src/git/remote.c:2491,1
    - Dst: starts_with
      Src: /src/git/remote.c:2497,1
    - Dst: oideq
      Src: /src/git/remote.c:2498,1
    - Dst: copy_ref
      Src: /src/git/remote.c:2499,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 3
    argNames:
    - head
    - refs
    - flags
    argTypes:
    - struct ref*
    - struct ref*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2455
    functionDepth: 5
    functionLinenumber: 2455
    functionLinenumberEnd: 2507
    functionName: guess_remote_head
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - repo_default_branch_name
    - copy_ref
    - starts_with
    - free
    - find_ref_by_name
    - oideq
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *guess_remote_head(const struct ref *head,\n\t\t\t      const
      struct ref *refs,\n\t\t\t      unsigned flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/remote.c:2521,1
    - Dst: refspec_find_all_matches
      Src: /src/git/remote.c:2524,1
    - Dst: string_list_has_string
      Src: /src/git/remote.c:2539,1
    - Dst: make_linked_ref
      Src: /src/git/remote.c:2543,1
    - Dst: oidcpy
      Src: /src/git/remote.c:2544,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:2548,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2550
      start: 2515
    functionDepth: 10
    functionLinenumber: 2515
    functionLinenumberEnd: 2550
    functionName: get_stale_heads_cb
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - memset
    - make_linked_ref
    - oidcpy
    - refspec_find_all_matches
    - string_list_has_string
    linkageType: ''
    returnType: int
    signature: int get_stale_heads_cb(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/remote.c:2562,1
    - Dst: string_list_sort
      Src: /src/git/remote.c:2563,1
    - Dst: refs_for_each_ref
      Src: /src/git/remote.c:2564,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:2564,1
    - Dst: string_list_clear
      Src: /src/git/remote.c:2566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - rs
    - fetch_map
    argTypes:
    - struct refspec*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2568
      start: 2552
    functionDepth: 4
    functionLinenumber: 2552
    functionLinenumberEnd: 2568
    functionName: get_stale_heads
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_sort
    - refs_for_each_ref
    - string_list_append
    - get_main_ref_store
    linkageType: ''
    returnType: struct ref
    signature: struct ref *get_stale_heads(struct refspec *rs, struct ref *fetch_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/remote.c:2578,1
    - Dst: free
      Src: /src/git/remote.c:2579,1
    - Dst: memset
      Src: /src/git/remote.c:2580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cas
    argTypes:
    - struct push_cas_option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2573
    functionDepth: 1
    functionLinenumber: 2573
    functionLinenumberEnd: 2581
    functionName: clear_cas_option
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void clear_cas_option(struct push_cas_option *cas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/remote.c:2588,1
    - Dst: memset
      Src: /src/git/remote.c:2590,1
    - Dst: xmemdupz
      Src: /src/git/remote.c:2591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - cas
    - refname
    - refnamelen
    argTypes:
    - struct push_cas_option*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2593
      start: 2583
    functionDepth: 10
    functionLinenumber: 2583
    functionLinenumberEnd: 2593
    functionName: add_cas_entry
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - memset
    - ALLOC_GROW
    linkageType: ''
    returnType: struct push_cas
    signature: "struct push_cas *add_cas_entry(struct push_cas_option *cas,\n\t\t\t\t
      \     const char *refname,\n\t\t\t\t      size_t refnamelen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_cas_option
      Src: /src/git/remote.c:2602,1
    - Dst: strchrnul
      Src: /src/git/remote.c:2613,1
    - Dst: add_cas_entry
      Src: /src/git/remote.c:2614,1
    - Dst: oidclr
      Src: /src/git/remote.c:2618,1
    - Dst: repo_get_oid
      Src: /src/git/remote.c:2619,1
    - Dst: error
      Src: /src/git/remote.c:2620,1
    - Dst: _
      Src: /src/git/remote.c:2620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - cas
    - arg
    - unset
    argTypes:
    - struct push_cas_option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2595
    functionDepth: 11
    functionLinenumber: 2595
    functionLinenumberEnd: 2623
    functionName: parse_push_cas_option
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - error
    - repo_get_oid
    - oidclr
    - clear_cas_option
    - add_cas_entry
    - strchrnul
    - _
    linkageType: ''
    returnType: int
    signature: int parse_push_cas_option(struct push_cas_option *cas, const char *arg,
      int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_push_cas_option
      Src: /src/git/remote.c:2627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2625
    functionDepth: 12
    functionLinenumber: 2625
    functionLinenumberEnd: 2628
    functionName: parseopt_push_cas_option
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - parse_push_cas_option
    linkageType: ''
    returnType: int
    signature: int parseopt_push_cas_option(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cas
    argTypes:
    - struct push_cas_option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2630
    functionDepth: 0
    functionLinenumber: 2630
    functionLinenumberEnd: 2633
    functionName: is_empty_cas
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_empty_cas(const struct push_cas_option *cas)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apply_refspecs
      Src: /src/git/remote.c:2647,1
    - Dst: refs_read_ref
      Src: /src/git/remote.c:2650,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:2650,1
    - Dst: free
      Src: /src/git/remote.c:2651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - remote
    - refname
    - oid
    - dst_refname
    argTypes:
    - struct remote*
    - char*
    - struct object_id*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2642
    functionDepth: 9
    functionLinenumber: 2642
    functionLinenumberEnd: 2657
    functionName: remote_tracking
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - free
    - refs_read_ref
    - apply_refspecs
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int remote_tracking(struct remote *remote, const char *refname,\n\t\t\t
      \  struct object_id *oid, char **dst_refname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - refname
    - UNUSED
    - UNUSED
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2666
    functionDepth: 0
    functionLinenumber: 2666
    functionLinenumberEnd: 2676
    functionName: peek_reflog
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int peek_reflog(const char *refname UNUSED,\n\t\t       struct object_id
      *o_oid UNUSED,\n\t\t       struct object_id *n_oid UNUSED,\n\t\t       const
      char *ident UNUSED,\n\t\t       timestamp_t timestamp, int tz UNUSED,\n\t\t
      \      const char *message UNUSED, void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/remote.c:2689,1
    - Dst: lookup_commit_reference
      Src: /src/git/remote.c:2692,1
    - Dst: commit_stack_push
      Src: /src/git/remote.c:2693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 8
    argNames:
    - refname
    - UNUSED
    - n_oid
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2678
    functionDepth: 1
    functionLinenumber: 2678
    functionLinenumberEnd: 2704
    functionName: check_and_collect_until
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - commit_stack_push
    - oideq
    linkageType: ''
    returnType: int
    signature: "int check_and_collect_until(const char *refname UNUSED,\n\t\t\t\t
      \  struct object_id *o_oid UNUSED,\n\t\t\t\t   struct object_id *n_oid,\n\t\t\t\t
      \  const char *ident UNUSED,\n\t\t\t\t   timestamp_t timestamp, int tz UNUSED,\n\t\t\t\t
      \  const char *message UNUSED, void *cb_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference
      Src: /src/git/remote.c:2725,1
    - Dst: refs_for_each_reflog_ent_reverse
      Src: /src/git/remote.c:2733,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:2733,1
    - Dst: refs_for_each_reflog_ent_reverse
      Src: /src/git/remote.c:2740,1
    - Dst: get_main_ref_store
      Src: /src/git/remote.c:2740,1
    - Dst: repo_in_merge_bases_many
      Src: /src/git/remote.c:2757,1
    - Dst: commit_stack_clear
      Src: /src/git/remote.c:2762,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - local
    - remote
    argTypes:
    - char*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2715
    functionDepth: 3
    functionLinenumber: 2715
    functionLinenumberEnd: 2764
    functionName: is_reachable_in_reflog
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - commit_stack_clear
    - refs_for_each_reflog_ent_reverse
    - repo_in_merge_bases_many
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int is_reachable_in_reflog(const char *local, const struct ref *remote)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_local_ref
      Src: /src/git/remote.c:2772,1
    - Dst: is_reachable_in_reflog
      Src: /src/git/remote.c:2776,1
    - Dst: free_one_ref
      Src: /src/git/remote.c:2778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - remote
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2770
    functionDepth: 10
    functionLinenumber: 2770
    functionLinenumberEnd: 2779
    functionName: check_if_includes_upstream
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - get_local_ref
    - is_reachable_in_reflog
    - free_one_ref
    linkageType: ''
    returnType: void
    signature: void check_if_includes_upstream(struct ref *remote)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: refname_match
      Src: /src/git/remote.c:2790,1
    - Dst: oidcpy
      Src: /src/git/remote.c:2794,1
    - Dst: remote_tracking
      Src: /src/git/remote.c:2795,1
    - Dst: oidclr
      Src: /src/git/remote.c:2798,1
    - Dst: remote_tracking
      Src: /src/git/remote.c:2809,1
    - Dst: oidclr
      Src: /src/git/remote.c:2812,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - cas
    - remote
    - ref
    argTypes:
    - struct push_cas_option*
    - struct remote*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2781
    functionDepth: 10
    functionLinenumber: 2781
    functionLinenumberEnd: 2815
    functionName: apply_cas
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - refname_match
    - oidclr
    - remote_tracking
    - oidcpy
    linkageType: ''
    returnType: void
    signature: "void apply_cas(struct push_cas_option *cas,\n\t\t      struct remote
      *remote,\n\t\t      struct ref *ref)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apply_cas
      Src: /src/git/remote.c:2823,1
    - Dst: check_if_includes_upstream
      Src: /src/git/remote.c:2831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cas
    - remote
    - remote_refs
    argTypes:
    - struct push_cas_option*
    - struct remote*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2817
    functionDepth: 11
    functionLinenumber: 2817
    functionLinenumberEnd: 2833
    functionName: apply_push_cas
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - apply_cas
    - check_if_includes_upstream
    linkageType: ''
    returnType: void
    signature: "void apply_push_cas(struct push_cas_option *cas,\n\t\t    struct remote
      *remote,\n\t\t    struct ref *remote_refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/remote.c:2839,1
    - Dst: hashmap_init
      Src: /src/git/remote.c:2841,1
    - Dst: hashmap_init
      Src: /src/git/remote.c:2842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2835
    functionDepth: 3
    functionLinenumber: 2835
    functionLinenumberEnd: 2844
    functionName: remote_state_new
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - hashmap_init
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct remote_state
    signature: struct remote_state *remote_state_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remote_clear
      Src: /src/git/remote.c:2853,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:2854,1
    - Dst: FREE_AND_NULL
      Src: /src/git/remote.c:2855,1
    - Dst: rewrites_release
      Src: /src/git/remote.c:2859,1
    - Dst: rewrites_release
      Src: /src/git/remote.c:2860,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/remote.c:2862,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/remote.c:2863,1
    - Dst: branch_release
      Src: /src/git/remote.c:2864,1
    - Dst: free
      Src: /src/git/remote.c:2865,1
    - Dst: hashmap_clear
      Src: /src/git/remote.c:2867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - remote_state
    argTypes:
    - struct remote_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2846
    functionDepth: 4
    functionLinenumber: 2846
    functionLinenumberEnd: 2868
    functionName: remote_state_clear
    functionSourceFile: /src/git/remote.c
    functionUses: 1
    functionsReached:
    - branch_release
    - hashmap_clear_and_free
    - remote_clear
    - hashmap_clear
    - hashmap_for_each_entry
    - free
    - FREE_AND_NULL
    - rewrites_release
    linkageType: ''
    returnType: void
    signature: void remote_state_clear(struct remote_state *remote_state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_last_dir_sep
      Src: /src/git/remote.c:2875,1
    - Dst: strrchr
      Src: /src/git/remote.c:2881,1
    - Dst: strcmp
      Src: /src/git/remote.c:2887,1
    - Dst: die
      Src: /src/git/remote.c:2888,1
    - Dst: _
      Src: /src/git/remote.c:2888,1
    - Dst: free
      Src: /src/git/remote.c:2891,1
    - Dst: xstrdup
      Src: /src/git/remote.c:2892,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - remoteurl
    - is_relative
    argTypes:
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2894
      start: 2873
    functionDepth: 1
    functionLinenumber: 2873
    functionLinenumberEnd: 2894
    functionName: chop_last_dir
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - die
    - strrchr
    - find_last_dir_sep
    - strcmp
    - free
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int chop_last_dir(char **remoteurl, int is_relative)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: url_is_local_not_ssh
      Src: /src/git/remote.c:2906,1
    - Dst: is_absolute_path
      Src: /src/git/remote.c:2906,1
    - Dst: xstrdup
      Src: /src/git/remote.c:2907,1
    - Dst: strlen
      Src: /src/git/remote.c:2909,1
    - Dst: BUG
      Src: /src/git/remote.c:2911,1
    - Dst: xstrdup
      Src: /src/git/remote.c:2913,1
    - Dst: is_dir_sep
      Src: /src/git/remote.c:2914,1
    - Dst: url_is_local_not_ssh
      Src: /src/git/remote.c:2917,1
    - Dst: is_absolute_path
      Src: /src/git/remote.c:2917,1
    - Dst: starts_with_dot_slash_native
      Src: /src/git/remote.c:2925,1
    - Dst: starts_with_dot_dot_slash_native
      Src: /src/git/remote.c:2926,1
    - Dst: strbuf_reset
      Src: /src/git/remote.c:2927,1
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2928,1
    - Dst: free
      Src: /src/git/remote.c:2929,1
    - Dst: strbuf_detach
      Src: /src/git/remote.c:2930,1
    - Dst: starts_with_dot_dot_slash_native
      Src: /src/git/remote.c:2938,1
    - Dst: chop_last_dir
      Src: /src/git/remote.c:2940,1
    - Dst: starts_with_dot_slash_native
      Src: /src/git/remote.c:2941,1
    - Dst: strbuf_reset
      Src: /src/git/remote.c:2946,1
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2947,1
    - Dst: ends_with
      Src: /src/git/remote.c:2948,1
    - Dst: strbuf_setlen
      Src: /src/git/remote.c:2949,1
    - Dst: free
      Src: /src/git/remote.c:2950,1
    - Dst: starts_with_dot_slash_native
      Src: /src/git/remote.c:2952,1
    - Dst: xstrdup
      Src: /src/git/remote.c:2953,1
    - Dst: xstrdup
      Src: /src/git/remote.c:2955,1
    - Dst: strbuf_release
      Src: /src/git/remote.c:2958,1
    - Dst: strbuf_reset
      Src: /src/git/remote.c:2962,1
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2963,1
    - Dst: free
      Src: /src/git/remote.c:2964,1
    - Dst: strbuf_detach
      Src: /src/git/remote.c:2965,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - remote_url
    - url
    - up_path
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2896
    functionDepth: 4
    functionLinenumber: 2896
    functionLinenumberEnd: 2966
    functionName: relative_url
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - starts_with_dot_slash_native
    - strbuf_release
    - is_absolute_path
    - url_is_local_not_ssh
    - is_dir_sep
    - strbuf_reset
    - ends_with
    - strbuf_addf
    - strbuf_setlen
    - chop_last_dir
    - starts_with_dot_dot_slash_native
    - strlen
    - strbuf_detach
    - free
    - BUG
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *relative_url(const char *remote_url, const char *url,\n\t\t
      \  const char *up_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/remote.c:2972,1
    - Dst: valid_fetch_refspec
      Src: /src/git/remote.c:2973,1
    - Dst: strbuf_release
      Src: /src/git/remote.c:2974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2968
    functionDepth: 8
    functionLinenumber: 2968
    functionLinenumberEnd: 2976
    functionName: valid_remote_name
    functionSourceFile: /src/git/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - valid_fetch_refspec
    linkageType: ''
    returnType: int
    signature: int valid_remote_name(const char *name)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/range-diff.c:54,1
    - Dst: strvec_push
      Src: /src/git/range-diff.c:70,1
    - Dst: strvec_push
      Src: /src/git/range-diff.c:71,1
    - Dst: strvec_pushv
      Src: /src/git/range-diff.c:73,1
    - Dst: start_command
      Src: /src/git/range-diff.c:78,1
    - Dst: error_errno
      Src: /src/git/range-diff.c:79,1
    - Dst: _
      Src: /src/git/range-diff.c:79,1
    - Dst: strbuf_read
      Src: /src/git/range-diff.c:80,1
    - Dst: error_errno
      Src: /src/git/range-diff.c:81,1
    - Dst: _
      Src: /src/git/range-diff.c:81,1
    - Dst: finish_command
      Src: /src/git/range-diff.c:82,1
    - Dst: finish_command
      Src: /src/git/range-diff.c:85,1
    - Dst: memchr
      Src: /src/git/range-diff.c:94,1
    - Dst: skip_prefix
      Src: /src/git/range-diff.c:102,1
    - Dst: string_list_append
      Src: /src/git/range-diff.c:105,1
    - Dst: strbuf_reset
      Src: /src/git/range-diff.c:106,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/range-diff.c:108,1
    - Dst: strstr
      Src: /src/git/range-diff.c:109,1
    - Dst: repo_get_oid
      Src: /src/git/range-diff.c:111,1
    - Dst: error
      Src: /src/git/range-diff.c:112,1
    - Dst: _
      Src: /src/git/range-diff.c:112,1
    - Dst: FREE_AND_NULL
      Src: /src/git/range-diff.c:113,1
    - Dst: string_list_clear
      Src: /src/git/range-diff.c:114,1
    - Dst: error
      Src: /src/git/range-diff.c:123,1
    - Dst: _
      Src: /src/git/range-diff.c:123,1
    - Dst: string_list_clear
      Src: /src/git/range-diff.c:126,1
    - Dst: starts_with
      Src: /src/git/range-diff.c:130,1
    - Dst: strbuf_addch
      Src: /src/git/range-diff.c:137,1
    - Dst: parse_git_diff_header
      Src: /src/git/range-diff.c:143,1
    - Dst: error
      Src: /src/git/range-diff.c:146,1
    - Dst: _
      Src: /src/git/range-diff.c:146,1
    - Dst: FREE_AND_NULL
      Src: /src/git/range-diff.c:148,1
    - Dst: string_list_clear
      Src: /src/git/range-diff.c:149,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:152,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:154,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:156,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:158,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:160,1
    - Dst: free
      Src: /src/git/range-diff.c:162,1
    - Dst: xstrdup
      Src: /src/git/range-diff.c:164,1
    - Dst: xstrdup
      Src: /src/git/range-diff.c:166,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:170,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:173,1
    - Dst: release_patch
      Src: /src/git/range-diff.c:174,1
    - Dst: starts_with
      Src: /src/git/range-diff.c:176,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:177,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:178,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:179,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:180,1
    - Dst: starts_with
      Src: /src/git/range-diff.c:181,1
    - Dst: strlen
      Src: /src/git/range-diff.c:182,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:183,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:185,1
    - Dst: strlen
      Src: /src/git/range-diff.c:186,1
    - Dst: starts_with
      Src: /src/git/range-diff.c:187,1
    - Dst: isspace
      Src: /src/git/range-diff.c:189,1
    - Dst: strbuf_add
      Src: /src/git/range-diff.c:191,1
    - Dst: strbuf_addch
      Src: /src/git/range-diff.c:192,1
    - Dst: skip_prefix
      Src: /src/git/range-diff.c:195,1
    - Dst: strstr
      Src: /src/git/range-diff.c:196,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:197,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:199,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:201,1
    - Dst: strbuf_addch
      Src: /src/git/range-diff.c:212,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:213,1
    - Dst: strbuf_addch
      Src: /src/git/range-diff.c:215,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:216,1
    - Dst: strbuf_addch
      Src: /src/git/range-diff.c:218,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:219,1
    - Dst: strbuf_addch
      Src: /src/git/range-diff.c:221,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:222,1
    - Dst: strbuf_addch
      Src: /src/git/range-diff.c:225,1
    - Dst: strbuf_release
      Src: /src/git/range-diff.c:231,1
    - Dst: string_list_append
      Src: /src/git/range-diff.c:234,1
    - Dst: strbuf_release
      Src: /src/git/range-diff.c:235,1
    - Dst: free
      Src: /src/git/range-diff.c:236,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 146
    argCount: 4
    argNames:
    - range
    - list
    - log_arg
    - include_merges
    argTypes:
    - char*
    - struct string_list*
    - struct strvec*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 239
    functionName: read_patches
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - error_errno
    - repo_get_oid
    - strbuf_addf
    - CALLOC_ARRAY
    - free
    - error
    - isspace
    - strbuf_release
    - finish_command
    - strstr
    - strbuf_addstr
    - release_patch
    - string_list_clear
    - strvec_pushv
    - strvec_pushl
    - parse_git_diff_header
    - string_list_append
    - _
    - skip_prefix
    - FREE_AND_NULL
    - strbuf_add
    - xstrdup
    - memchr
    - strbuf_read
    - strbuf_reset
    - starts_with
    - strbuf_addch
    - strlen
    - start_command
    linkageType: ''
    returnType: int
    signature: "int read_patches(const char *range, struct string_list *list,\n\t\t\tconst
      struct strvec *log_arg,\n\t\t\tunsigned int include_merges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/range-diff.c:247,1
    - Dst: container_of
      Src: /src/git/range-diff.c:248,1
    - Dst: strcmp
      Src: /src/git/range-diff.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cmp_data
    - ha
    - hb
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: patch_util_cmp
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int patch_util_cmp(const void *cmp_data UNUSED,\n\t\t\t  const struct
      hashmap_entry *ha,\n\t\t\t  const struct hashmap_entry *hb,\n\t\t\t  const void
      *keydata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HASHMAP_INIT
      Src: /src/git/range-diff.c:254,1
    - Dst: hashmap_entry_init
      Src: /src/git/range-diff.c:264,1
    - Dst: strhash
      Src: /src/git/range-diff.c:264,1
    - Dst: hashmap_add
      Src: /src/git/range-diff.c:265,1
    - Dst: hashmap_entry_init
      Src: /src/git/range-diff.c:275,1
    - Dst: strhash
      Src: /src/git/range-diff.c:275,1
    - Dst: hashmap_remove_entry
      Src: /src/git/range-diff.c:276,1
    - Dst: BUG
      Src: /src/git/range-diff.c:279,1
    - Dst: hashmap_clear
      Src: /src/git/range-diff.c:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct string_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 287
    functionName: find_exact_matches
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_add
    - hashmap_remove_entry
    - hashmap_entry_init
    - HASHMAP_INIT
    - hashmap_clear
    - BUG
    linkageType: ''
    returnType: void
    signature: void find_exact_matches(struct string_list *a, struct string_list *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - UNUSED
    - UNUSED
    argTypes:
    - void*
    - char*
    - unsigned long len
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: diffsize_consume
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int diffsize_consume(void *data,\n\t\t\t     char *line UNUSED,\n\t\t\t
      \    unsigned long len UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diffsize_consume
      Src: /src/git/range-diff.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - data
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    argTypes:
    - void*
    - long ob
    - long on
    - long nb
    - long nn
    - char*
    - long funclen
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: diffsize_hunk
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached:
    - diffsize_consume
    linkageType: ''
    returnType: void
    signature: "void diffsize_hunk(void *data,\n\t\t\t  long ob UNUSED, long on UNUSED,\n\t\t\t
      \ long nb UNUSED, long nn UNUSED,\n\t\t\t  const char *func UNUSED, long funclen
      UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/range-diff.c:313,1
    - Dst: strlen
      Src: /src/git/range-diff.c:315,1
    - Dst: xdi_diff_outf
      Src: /src/git/range-diff.c:318,1
    - Dst: error
      Src: /src/git/range-diff.c:323,1
    - Dst: _
      Src: /src/git/range-diff.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 325
    functionName: diffsize
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached:
    - error
    - strlen
    - _
    - xdi_diff_outf
    linkageType: ''
    returnType: int
    signature: int diffsize(const char *a, const char *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: st_mult
      Src: /src/git/range-diff.c:333,1
    - Dst: st_mult
      Src: /src/git/range-diff.c:334,1
    - Dst: strbuf_humanise_bytes
      Src: /src/git/range-diff.c:338,1
    - Dst: strbuf_humanise_bytes
      Src: /src/git/range-diff.c:339,1
    - Dst: die
      Src: /src/git/range-diff.c:340,1
    - Dst: _
      Src: /src/git/range-diff.c:340,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/range-diff.c:345,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/range-diff.c:346,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/range-diff.c:347,1
    - Dst: diffsize
      Src: /src/git/range-diff.c:358,1
    - Dst: compute_assignment
      Src: /src/git/range-diff.c:383,1
    - Dst: free
      Src: /src/git/range-diff.c:394,1
    - Dst: free
      Src: /src/git/range-diff.c:395,1
    - Dst: free
      Src: /src/git/range-diff.c:396,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - a
    - b
    - creation_factor
    - max_memory
    argTypes:
    - struct string_list*
    - struct string_list*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 327
    functionDepth: 5
    functionLinenumber: 327
    functionLinenumberEnd: 397
    functionName: get_correspondences
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached:
    - die
    - strbuf_humanise_bytes
    - ALLOC_ARRAY
    - compute_assignment
    - diffsize
    - _
    - free
    - st_mult
    linkageType: ''
    returnType: void
    signature: "void get_correspondences(struct string_list *a, struct string_list
      *b,\n\t\t\t\tint creation_factor, size_t max_memory)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: diff_get_color_opt
      Src: /src/git/range-diff.c:409,1
    - Dst: diff_get_color_opt
      Src: /src/git/range-diff.c:410,1
    - Dst: diff_get_color_opt
      Src: /src/git/range-diff.c:411,1
    - Dst: diff_get_color_opt
      Src: /src/git/range-diff.c:412,1
    - Dst: strbuf_addchars
      Src: /src/git/range-diff.c:420,1
    - Dst: strlen
      Src: /src/git/range-diff.c:421,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/range-diff.c:421,1
    - Dst: strcmp
      Src: /src/git/range-diff.c:429,1
    - Dst: strbuf_reset
      Src: /src/git/range-diff.c:437,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:438,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:440,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:442,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/range-diff.c:443,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:446,1
    - Dst: strbuf_addch
      Src: /src/git/range-diff.c:447,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:449,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:452,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:454,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/range-diff.c:455,1
    - Dst: lookup_commit_reference
      Src: /src/git/range-diff.c:457,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:460,1
    - Dst: strbuf_addch
      Src: /src/git/range-diff.c:462,1
    - Dst: pp_commit_easy
      Src: /src/git/range-diff.c:463,1
    - Dst: strbuf_addf
      Src: /src/git/range-diff.c:465,1
    - Dst: fwrite
      Src: /src/git/range-diff.c:467,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 6
    argNames:
    - diffopt
    - patch_no_width
    - buf
    - dashes
    - a_util
    - b_util
    argTypes:
    - struct diff_options*
    - int
    - struct strbuf*
    - struct strbuf*
    - struct patch_util*
    - struct patch_util*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 399
    functionDepth: 16
    functionLinenumber: 399
    functionLinenumberEnd: 468
    functionName: output_pair_header
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    - pp_commit_easy
    - strbuf_reset
    - lookup_commit_reference
    - fwrite
    - strbuf_addf
    - strbuf_addch
    - strlen
    - repo_find_unique_abbrev
    - strbuf_addstr
    - strcmp
    - diff_get_color_opt
    linkageType: ''
    returnType: void
    signature: "void output_pair_header(struct diff_options *diffopt,\n\t\t\t       int
      patch_no_width,\n\t\t\t       struct strbuf *buf,\n\t\t\t       struct strbuf
      *dashes,\n\t\t\t       struct patch_util *a_util,\n\t\t\t       struct patch_util
      *b_util)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_filespec
      Src: /src/git/range-diff.c:479,1
    - Dst: fill_filespec
      Src: /src/git/range-diff.c:481,1
    - Dst: null_oid
      Src: /src/git/range-diff.c:481,1
    - Dst: strlen
      Src: /src/git/range-diff.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - name
    - p
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 489
    functionName: get_filespec
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached:
    - strlen
    - null_oid
    - alloc_filespec
    - fill_filespec
    linkageType: ''
    returnType: struct diff_filespec
    signature: struct diff_filespec *get_filespec(const char *name, const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_queue
      Src: /src/git/range-diff.c:494,1
    - Dst: get_filespec
      Src: /src/git/range-diff.c:495,1
    - Dst: get_filespec
      Src: /src/git/range-diff.c:495,1
    - Dst: diffcore_std
      Src: /src/git/range-diff.c:497,1
    - Dst: diff_flush
      Src: /src/git/range-diff.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - diffopt
    argTypes:
    - char*
    - char*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 499
    functionName: patch_diff
    functionSourceFile: /src/git/range-diff.c
    functionUses: 2
    functionsReached:
    - diffcore_std
    - diff_queue
    - diff_flush
    - get_filespec
    linkageType: ''
    returnType: void
    signature: "void patch_diff(const char *a, const char *b,\n\t\t       struct diff_options
      *diffopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - data
    argTypes:
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: output_prefix_cb
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *output_prefix_cb(struct diff_options *opt UNUSED, void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: decimal_width
      Src: /src/git/range-diff.c:510,1
    - Dst: memcpy
      Src: /src/git/range-diff.c:516,1
    - Dst: repo_diff_setup
      Src: /src/git/range-diff.c:518,1
    - Dst: strbuf_addstr
      Src: /src/git/range-diff.c:528,1
    - Dst: diff_setup_done
      Src: /src/git/range-diff.c:530,1
    - Dst: output_pair_header
      Src: /src/git/range-diff.c:552,1
    - Dst: output_pair_header
      Src: /src/git/range-diff.c:561,1
    - Dst: output_pair_header
      Src: /src/git/range-diff.c:569,1
    - Dst: patch_diff
      Src: /src/git/range-diff.c:572,1
    - Dst: strbuf_release
      Src: /src/git/range-diff.c:578,1
    - Dst: strbuf_release
      Src: /src/git/range-diff.c:579,1
    - Dst: strbuf_release
      Src: /src/git/range-diff.c:580,1
    - Dst: diff_free
      Src: /src/git/range-diff.c:582,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - a
    - b
    - range_diff_opts
    argTypes:
    - struct string_list*
    - struct string_list*
    - struct range_diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 506
    functionDepth: 17
    functionLinenumber: 506
    functionLinenumberEnd: 583
    functionName: output
    functionSourceFile: /src/git/range-diff.c
    functionUses: 7
    functionsReached:
    - strbuf_release
    - diff_free
    - memcpy
    - decimal_width
    - diff_setup_done
    - strbuf_addstr
    - repo_diff_setup
    - output_pair_header
    - patch_diff
    linkageType: ''
    returnType: void
    signature: "void output(struct string_list *a, struct string_list *b,\n\t\t   struct
      range_diff_options *range_diff_opts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/range-diff.c:595,1
    - Dst: _
      Src: /src/git/range-diff.c:595,1
    - Dst: read_patches
      Src: /src/git/range-diff.c:597,1
    - Dst: error
      Src: /src/git/range-diff.c:598,1
    - Dst: _
      Src: /src/git/range-diff.c:598,1
    - Dst: read_patches
      Src: /src/git/range-diff.c:599,1
    - Dst: error
      Src: /src/git/range-diff.c:600,1
    - Dst: _
      Src: /src/git/range-diff.c:600,1
    - Dst: find_exact_matches
      Src: /src/git/range-diff.c:603,1
    - Dst: get_correspondences
      Src: /src/git/range-diff.c:604,1
    - Dst: output
      Src: /src/git/range-diff.c:607,1
    - Dst: string_list_clear
      Src: /src/git/range-diff.c:610,1
    - Dst: string_list_clear
      Src: /src/git/range-diff.c:611,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - range1
    - range2
    - range_diff_opts
    argTypes:
    - char*
    - char*
    - struct range_diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 585
    functionDepth: 8
    functionLinenumber: 585
    functionLinenumberEnd: 614
    functionName: show_range_diff
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached:
    - error
    - string_list_clear
    - get_correspondences
    - output
    - find_exact_matches
    - _
    - read_patches
    linkageType: ''
    returnType: int
    signature: "int show_range_diff(const char *range1, const char *range2,\n\t\t
      \   struct range_diff_options *range_diff_opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/range-diff.c:618,1
    - Dst: repo_init_revisions
      Src: /src/git/range-diff.c:623,1
    - Dst: setup_revisions
      Src: /src/git/range-diff.c:624,1
    - Dst: clear_commit_marks
      Src: /src/git/range-diff.c:634,1
    - Dst: free
      Src: /src/git/range-diff.c:639,1
    - Dst: release_revisions
      Src: /src/git/range-diff.c:640,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 616
    functionDepth: 12
    functionLinenumber: 616
    functionLinenumberEnd: 642
    functionName: is_range_diff_range
    functionSourceFile: /src/git/range-diff.c
    functionUses: 0
    functionsReached:
    - release_revisions
    - repo_init_revisions
    - clear_commit_marks
    - free
    - setup_revisions
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int is_range_diff_range(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ce_stage
      Src: /src/git/resolve-undo.c:17,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/resolve-undo.c:23,1
    - Dst: string_list_insert
      Src: /src/git/resolve-undo.c:28,1
    - Dst: xcalloc
      Src: /src/git/resolve-undo.c:30,1
    - Dst: oidcpy
      Src: /src/git/resolve-undo.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 12
    functionDepth: 7
    functionLinenumber: 12
    functionLinenumberEnd: 34
    functionName: record_resolve_undo
    functionSourceFile: /src/git/resolve-undo.c
    functionUses: 1
    functionsReached:
    - string_list_insert
    - oidcpy
    - xcalloc
    - CALLOC_ARRAY
    - ce_stage
    linkageType: ''
    returnType: void
    signature: void record_resolve_undo(struct index_state *istate, struct cache_entry
      *ce)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/resolve-undo.c:46,1
    - Dst: strbuf_addch
      Src: /src/git/resolve-undo.c:47,1
    - Dst: strbuf_addf
      Src: /src/git/resolve-undo.c:49,1
    - Dst: strbuf_add
      Src: /src/git/resolve-undo.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - sb
    - resolve_undo
    - algop
    argTypes:
    - struct strbuf*
    - struct string_list*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: resolve_undo_write
    functionSourceFile: /src/git/resolve-undo.c
    functionUses: 1
    functionsReached:
    - strbuf_addf
    - strbuf_add
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void resolve_undo_write(struct strbuf *sb, struct string_list *resolve_undo,\n\t\t\tconst
      struct git_hash_algo *algop)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/resolve-undo.c:46,1
    - Dst: strbuf_addch
      Src: /src/git/resolve-undo.c:47,1
    - Dst: strbuf_addf
      Src: /src/git/resolve-undo.c:49,1
    - Dst: strbuf_add
      Src: /src/git/resolve-undo.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/resolve-undo.c
    functionUses: 30
    functionsReached:
    - strbuf_addf
    - strbuf_add
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, resolve_undo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/resolve-undo.c:67,1
    - Dst: strlen
      Src: /src/git/resolve-undo.c:74,1
    - Dst: string_list_insert
      Src: /src/git/resolve-undo.c:77,1
    - Dst: xcalloc
      Src: /src/git/resolve-undo.c:79,1
    - Dst: strtoul
      Src: /src/git/resolve-undo.c:85,1
    - Dst: oidread
      Src: /src/git/resolve-undo.c:100,1
    - Dst: string_list_clear
      Src: /src/git/resolve-undo.c:108,1
    - Dst: error
      Src: /src/git/resolve-undo.c:109,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - data
    - size
    - algop
    argTypes:
    - char*
    - unsigned long
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 58
    functionDepth: 7
    functionLinenumber: 58
    functionLinenumberEnd: 111
    functionName: resolve_undo_read
    functionSourceFile: /src/git/resolve-undo.c
    functionUses: 1
    functionsReached:
    - error
    - string_list_clear
    - string_list_insert
    - oidread
    - strlen
    - xcalloc
    - CALLOC_ARRAY
    - strtoul
    linkageType: ''
    returnType: struct string_list
    signature: "struct string_list *resolve_undo_read(const char *data, unsigned long
      size,\n\t\t\t\t      const struct git_hash_algo *algop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/resolve-undo.c:118,1
    - Dst: free
      Src: /src/git/resolve-undo.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: resolve_undo_clear_index
    functionSourceFile: /src/git/resolve-undo.c
    functionUses: 2
    functionsReached:
    - string_list_clear
    - free
    linkageType: ''
    returnType: void
    signature: void resolve_undo_clear_index(struct index_state *istate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/resolve-undo.c:127,1
    - Dst: strlen
      Src: /src/git/resolve-undo.c:127,1
    - Dst: strcmp
      Src: /src/git/resolve-undo.c:133,1
    - Dst: remove_index_entry_at
      Src: /src/git/resolve-undo.c:139,1
    - Dst: make_cache_entry
      Src: /src/git/resolve-undo.c:146,1
    - Dst: add_index_entry
      Src: /src/git/resolve-undo.c:149,1
    - Dst: error
      Src: /src/git/resolve-undo.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - istate
    - path
    - ru
    - ce_flags
    argTypes:
    - struct index_state*
    - char*
    - struct resolve_undo_info*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 124
    functionDepth: 8
    functionLinenumber: 124
    functionLinenumberEnd: 153
    functionName: unmerge_index_entry
    functionSourceFile: /src/git/resolve-undo.c
    functionUses: 0
    functionsReached:
    - error
    - index_name_pos
    - remove_index_entry_at
    - strlen
    - add_index_entry
    - strcmp
    - make_cache_entry
    linkageType: ''
    returnType: int
    signature: "int unmerge_index_entry(struct index_state *istate, const char *path,\n\t\t\tstruct
      resolve_undo_info *ru, unsigned ce_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ensure_full_index
      Src: /src/git/resolve-undo.c:164,1
    - Dst: for_each_string_list_item
      Src: /src/git/resolve-undo.c:166,1
    - Dst: match_pathspec
      Src: /src/git/resolve-undo.c:171,1
    - Dst: strlen
      Src: /src/git/resolve-undo.c:172,1
    - Dst: unmerge_index_entry
      Src: /src/git/resolve-undo.c:175,1
    - Dst: free
      Src: /src/git/resolve-undo.c:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - istate
    - pathspec
    - ce_flags
    argTypes:
    - struct index_state*
    - struct pathspec*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 155
    functionDepth: 9
    functionLinenumber: 155
    functionLinenumberEnd: 179
    functionName: unmerge_index
    functionSourceFile: /src/git/resolve-undo.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - for_each_string_list_item
    - unmerge_index_entry
    - strlen
    - match_pathspec
    - free
    linkageType: ''
    returnType: void
    signature: "void unmerge_index(struct index_state *istate, const struct pathspec
      *pathspec,\n\t\t   unsigned ce_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/git/graph.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - diffopt
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: graph_show_line_prefix
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: void graph_show_line_prefix(const struct diff_options *diffopt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/graph.c:90,1
    - Dst: strchrnul
      Src: /src/git/graph.c:92,1
    - Dst: color_parse_mem
      Src: /src/git/graph.c:95,1
    - Dst: strvec_push
      Src: /src/git/graph.c:96,1
    - Dst: warning
      Src: /src/git/graph.c:98,1
    - Dst: _
      Src: /src/git/graph.c:98,1
    - Dst: strvec_push
      Src: /src/git/graph.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - colors
    - string
    argTypes:
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: parse_graph_colors_config
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strlen
    - warning
    - _
    - strchrnul
    - color_parse_mem
    linkageType: ''
    returnType: void
    signature: void parse_graph_colors_config(struct strvec *colors, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - colors
    - colors_max
    argTypes:
    - char**
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: graph_set_column_colors
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void graph_set_column_colors(const char **colors, unsigned short colors_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - color
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: column_get_color_code
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *column_get_color_code(unsigned short color)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/graph.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - line
    - c
    argTypes:
    - struct graph_line*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: graph_line_addch
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void graph_line_addch(struct graph_line *line, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addchars
      Src: /src/git/graph.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - line
    - c
    - n
    argTypes:
    - struct graph_line*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: graph_line_addchars
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    linkageType: ''
    returnType: void
    signature: void graph_line_addchars(struct graph_line *line, int c, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/graph.c:135,1
    - Dst: strlen
      Src: /src/git/graph.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - line
    - s
    argTypes:
    - struct graph_line*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: graph_line_addstr
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - strlen
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void graph_line_addstr(struct graph_line *line, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/graph.c:141,1
    - Dst: column_get_color_code
      Src: /src/git/graph.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - line
    - color
    argTypes:
    - struct graph_line*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: graph_line_addcolor
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    - column_get_color_code
    linkageType: ''
    returnType: void
    signature: void graph_line_addcolor(struct graph_line *line, unsigned short color)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: graph_line_addcolor
      Src: /src/git/graph.c:148,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:149,1
    - Dst: graph_line_addcolor
      Src: /src/git/graph.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - line
    - c
    - col_char
    argTypes:
    - struct graph_line*
    - struct column*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: graph_line_write_column
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_line_addch
    - graph_line_addcolor
    linkageType: ''
    returnType: void
    signature: "void graph_line_write_column(struct graph_line *line, const struct
      column *c,\n\t\t\t\t    char col_char)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/graph.c:324,1
    - Dst: strbuf_reset
      Src: /src/git/graph.c:329,1
    - Dst: strbuf_addstr
      Src: /src/git/graph.c:331,1
    - Dst: graph_padding_line
      Src: /src/git/graph.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - opt
    - data
    argTypes:
    - struct diff_options*
    - void*
    assertStmts:
    - condition: (opt)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/git/graph.c
    constantsTouched: []
    func_position:
      end: 334
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 334
    functionName: diff_output_prefix_callback
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - graph_padding_line
    - assert
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *diff_output_prefix_callback(struct diff_options *opt, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - diffopt
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: graph_setup_line_prefix
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void graph_setup_line_prefix(struct diff_options *diffopt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/graph.c:349,1
    - Dst: repo_config_get_string
      Src: /src/git/graph.c:353,1
    - Dst: graph_set_column_colors
      Src: /src/git/graph.c:355,1
    - Dst: strvec_clear
      Src: /src/git/graph.c:359,1
    - Dst: parse_graph_colors_config
      Src: /src/git/graph.c:360,1
    - Dst: free
      Src: /src/git/graph.c:361,1
    - Dst: graph_set_column_colors
      Src: /src/git/graph.c:363,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/graph.c:394,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/graph.c:395,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/graph.c:396,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/graph.c:397,1
    - Dst: strbuf_init
      Src: /src/git/graph.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 347
    functionDepth: 5
    functionLinenumber: 347
    functionLinenumberEnd: 408
    functionName: graph_init
    functionSourceFile: /src/git/graph.c
    functionUses: 1
    functionsReached:
    - ALLOC_ARRAY
    - repo_config_get_string
    - graph_set_column_colors
    - xmalloc
    - parse_graph_colors_config
    - strvec_clear
    - free
    - strbuf_init
    linkageType: ''
    returnType: struct git_graph
    signature: struct git_graph *graph_init(struct rev_info *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/graph.c:415,1
    - Dst: free
      Src: /src/git/graph.c:416,1
    - Dst: free
      Src: /src/git/graph.c:417,1
    - Dst: free
      Src: /src/git/graph.c:418,1
    - Dst: strbuf_release
      Src: /src/git/graph.c:419,1
    - Dst: free
      Src: /src/git/graph.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 421
    functionName: graph_clear
    functionSourceFile: /src/git/graph.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void graph_clear(struct git_graph *graph)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - graph
    - s
    argTypes:
    - struct git_graph*
    - enum graph_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: graph_update_state
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void graph_update_state(struct git_graph *graph, enum graph_state s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC_ARRAY
      Src: /src/git/graph.c:438,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/graph.c:439,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/graph.c:440,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/graph.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - graph
    - num_columns
    argTypes:
    - struct git_graph*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 442
    functionName: graph_ensure_capacity
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - REALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void graph_ensure_capacity(struct git_graph *graph, int num_columns)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_action
      Src: /src/git/graph.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - graph
    - commit
    argTypes:
    - struct git_graph*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 465
    functionName: graph_is_interesting
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - get_commit_action
    linkageType: ''
    returnType: int
    signature: int graph_is_interesting(struct git_graph *graph, struct commit *commit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: graph_is_interesting
      Src: /src/git/graph.c:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - graph
    - orig
    argTypes:
    - struct git_graph*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 488
    functionName: next_interesting_parent
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_is_interesting
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *next_interesting_parent(struct git_graph *graph,\n\t\t\t\t\t\t
      \  struct commit_list *orig)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: graph_is_interesting
      Src: /src/git/graph.c:503,1
    - Dst: next_interesting_parent
      Src: /src/git/graph.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 490
    functionDepth: 5
    functionLinenumber: 490
    functionLinenumberEnd: 511
    functionName: first_interesting_parent
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - next_interesting_parent
    - graph_is_interesting
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *first_interesting_parent(struct git_graph *graph)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color
      Src: /src/git/graph.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 518
    functionName: graph_get_current_column_color
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - want_color
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short graph_get_current_column_color(const struct git_graph
      *graph)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 527
    functionName: graph_increment_column_color
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void graph_increment_column_color(struct git_graph *graph)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: graph_get_current_column_color
      Src: /src/git/graph.c:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - graph
    - commit
    argTypes:
    - struct git_graph*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 538
    functionName: graph_find_commit_color
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_get_current_column_color
    linkageType: ''
    returnType: unsigned short
    signature: "unsigned short graph_find_commit_color(const struct git_graph *graph,\n\t\t\t\t\t
      \     const struct commit *commit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - graph
    - commit
    argTypes:
    - struct git_graph*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 549
    functionName: graph_find_new_column_by_commit
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int graph_find_new_column_by_commit(struct git_graph *graph,\n\t\t\t\t\t
      \  struct commit *commit)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: graph_find_new_column_by_commit
      Src: /src/git/graph.c:555,1
    - Dst: graph_find_commit_color
      Src: /src/git/graph.c:565,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - graph
    - commit
    - idx
    argTypes:
    - struct git_graph*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 551
    functionDepth: 3
    functionLinenumber: 551
    functionLinenumberEnd: 604
    functionName: graph_insert_into_new_columns
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_find_new_column_by_commit
    - graph_find_commit_color
    linkageType: ''
    returnType: void
    signature: "void graph_insert_into_new_columns(struct git_graph *graph,\n\t\t\t\t\t
      \ struct commit *commit,\n\t\t\t\t\t  int idx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/git/graph.c:620,1
    - Dst: graph_ensure_capacity
      Src: /src/git/graph.c:633,1
    - Dst: first_interesting_parent
      Src: /src/git/graph.c:672,1
    - Dst: next_interesting_parent
      Src: /src/git/graph.c:674,1
    - Dst: graph_increment_column_color
      Src: /src/git/graph.c:682,1
    - Dst: graph_insert_into_new_columns
      Src: /src/git/graph.c:684,1
    - Dst: graph_insert_into_new_columns
      Src: /src/git/graph.c:695,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 606
    functionDepth: 6
    functionLinenumber: 606
    functionLinenumberEnd: 705
    functionName: graph_update_columns
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - next_interesting_parent
    - first_interesting_parent
    - graph_insert_into_new_columns
    - SWAP
    - graph_increment_column_color
    - graph_ensure_capacity
    linkageType: ''
    returnType: void
    signature: void graph_update_columns(struct git_graph *graph)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 710
    functionName: graph_num_dashed_parents
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int graph_num_dashed_parents(struct git_graph *graph)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: graph_num_dashed_parents
      Src: /src/git/graph.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 735
    functionName: graph_num_expansion_rows
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_num_dashed_parents
    linkageType: ''
    returnType: int
    signature: int graph_num_expansion_rows(struct git_graph *graph)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: graph_num_expansion_rows
      Src: /src/git/graph.c:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 742
    functionName: graph_needs_pre_commit_line
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_num_expansion_rows
    linkageType: ''
    returnType: int
    signature: int graph_needs_pre_commit_line(struct git_graph *graph)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: first_interesting_parent
      Src: /src/git/graph.c:757,1
    - Dst: next_interesting_parent
      Src: /src/git/graph.c:759,1
    - Dst: graph_update_columns
      Src: /src/git/graph.c:775,1
    - Dst: graph_needs_pre_commit_line
      Src: /src/git/graph.c:799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - graph
    - commit
    argTypes:
    - struct git_graph*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 744
    functionDepth: 7
    functionLinenumber: 744
    functionLinenumberEnd: 803
    functionName: graph_update
    functionSourceFile: /src/git/graph.c
    functionUses: 1
    functionsReached:
    - graph_update_columns
    - next_interesting_parent
    - first_interesting_parent
    - graph_needs_pre_commit_line
    linkageType: ''
    returnType: void
    signature: void graph_update(struct git_graph *graph, struct commit *commit)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 825
    functionName: graph_is_mapping_correct
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int graph_is_mapping_correct(struct git_graph *graph)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: graph_line_addchars
      Src: /src/git/graph.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - graph
    - line
    argTypes:
    - struct git_graph*
    - struct graph_line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 827
    functionDepth: 4
    functionLinenumber: 827
    functionLinenumberEnd: 838
    functionName: graph_pad_horizontally
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_line_addchars
    linkageType: ''
    returnType: void
    signature: void graph_pad_horizontally(struct git_graph *graph, struct graph_line
      *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:849,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - graph
    - line
    argTypes:
    - struct git_graph*
    - struct graph_line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 840
    functionDepth: 6
    functionLinenumber: 840
    functionLinenumberEnd: 852
    functionName: graph_output_padding_line
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_line_write_column
    - graph_line_addch
    linkageType: ''
    returnType: void
    signature: "void graph_output_padding_line(struct git_graph *graph,\n\t\t\t\t
      \     struct graph_line *line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 858
    functionName: graph_width
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int graph_width(struct git_graph *graph)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: graph_line_addstr
      Src: /src/git/graph.c:867,1
    - Dst: graph_needs_pre_commit_line
      Src: /src/git/graph.c:869,1
    - Dst: graph_update_state
      Src: /src/git/graph.c:870,1
    - Dst: graph_update_state
      Src: /src/git/graph.c:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - graph
    - line
    argTypes:
    - struct git_graph*
    - struct graph_line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 861
    functionDepth: 5
    functionLinenumber: 861
    functionLinenumberEnd: 873
    functionName: graph_output_skip_line
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_update_state
    - graph_line_addstr
    - graph_needs_pre_commit_line
    linkageType: ''
    returnType: void
    signature: void graph_output_skip_line(struct git_graph *graph, struct graph_line
      *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/graph.c:887,1
    - Dst: assert
      Src: /src/git/graph.c:893,1
    - Dst: graph_num_expansion_rows
      Src: /src/git/graph.c:894,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:904,1
    - Dst: graph_line_addchars
      Src: /src/git/graph.c:905,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:918,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:920,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:922,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:924,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:926,1
    - Dst: graph_needs_pre_commit_line
      Src: /src/git/graph.c:934,1
    - Dst: graph_update_state
      Src: /src/git/graph.c:935,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - graph
    - line
    argTypes:
    - struct git_graph*
    - struct graph_line*
    assertStmts:
    - condition: (graph->num_parents >= 3)
      pos:
        line_end: 886
        line_start: 886
        source_file: /src/git/graph.c
    - condition: "(0 <= graph->expansion_row &&\n\t       graph->expansion_row < graph_num_expansion_rows(graph))"
      pos:
        line_end: 893
        line_start: 892
        source_file: /src/git/graph.c
    constantsTouched: []
    func_position:
      end: 936
      start: 875
    functionDepth: 6
    functionLinenumber: 875
    functionLinenumberEnd: 936
    functionName: graph_output_pre_commit_line
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_line_addch
    - assert
    - graph_num_expansion_rows
    - graph_update_state
    - graph_line_addchars
    - graph_needs_pre_commit_line
    - graph_line_write_column
    linkageType: ''
    returnType: void
    signature: "void graph_output_pre_commit_line(struct git_graph *graph,\n\t\t\t\t\t
      struct graph_line *line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/graph.c:945,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:946,1
    - Dst: graph_line_addstr
      Src: /src/git/graph.c:953,1
    - Dst: get_revision_mark
      Src: /src/git/graph.c:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - graph
    - line
    argTypes:
    - struct git_graph*
    - struct graph_line*
    assertStmts:
    - condition: (graph->revs->boundary)
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/git/graph.c
    constantsTouched: []
    func_position:
      end: 954
      start: 938
    functionDepth: 5
    functionLinenumber: 938
    functionLinenumberEnd: 954
    functionName: graph_output_commit_char
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_line_addch
    - graph_line_addstr
    - get_revision_mark
    - assert
    linkageType: ''
    returnType: void
    signature: void graph_output_commit_char(struct git_graph *graph, struct graph_line
      *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: graph_num_dashed_parents
      Src: /src/git/graph.c:990,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:996,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - graph
    - line
    argTypes:
    - struct git_graph*
    - struct graph_line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 959
    functionDepth: 6
    functionLinenumber: 959
    functionLinenumberEnd: 1001
    functionName: graph_draw_octopus_merge
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_line_write_column
    - graph_num_dashed_parents
    linkageType: ''
    returnType: void
    signature: void graph_draw_octopus_merge(struct git_graph *graph, struct graph_line
      *line)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: graph_output_commit_char
      Src: /src/git/graph.c:1029,1
    - Dst: graph_draw_octopus_merge
      Src: /src/git/graph.c:1032,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1034,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1053,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1055,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1059,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1061,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:1063,1
    - Dst: graph_update_state
      Src: /src/git/graph.c:1070,1
    - Dst: graph_is_mapping_correct
      Src: /src/git/graph.c:1071,1
    - Dst: graph_update_state
      Src: /src/git/graph.c:1072,1
    - Dst: graph_update_state
      Src: /src/git/graph.c:1074,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 2
    argNames:
    - graph
    - line
    argTypes:
    - struct git_graph*
    - struct graph_line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1003
    functionDepth: 7
    functionLinenumber: 1003
    functionLinenumberEnd: 1075
    functionName: graph_output_commit_line
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_line_addch
    - graph_update_state
    - graph_is_mapping_correct
    - graph_line_write_column
    - graph_draw_octopus_merge
    - graph_output_commit_char
    linkageType: ''
    returnType: void
    signature: void graph_output_commit_line(struct git_graph *graph, struct graph_line
      *line)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: first_interesting_parent
      Src: /src/git/graph.c:1084,1
    - Dst: graph_find_new_column_by_commit
      Src: /src/git/graph.c:1115,1
    - Dst: assert
      Src: /src/git/graph.c:1116,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1119,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:1122,1
    - Dst: next_interesting_parent
      Src: /src/git/graph.c:1126,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:1129,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1133,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1135,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:1136,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1138,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1141,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:1144,1
    - Dst: graph_is_mapping_correct
      Src: /src/git/graph.c:1155,1
    - Dst: graph_update_state
      Src: /src/git/graph.c:1156,1
    - Dst: graph_update_state
      Src: /src/git/graph.c:1158,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - graph
    - line
    argTypes:
    - struct git_graph*
    - struct graph_line*
    assertStmts:
    - condition: (par_column >= 0)
      pos:
        line_end: 1115
        line_start: 1115
        source_file: /src/git/graph.c
    constantsTouched: []
    func_position:
      end: 1159
      start: 1079
    functionDepth: 6
    functionLinenumber: 1079
    functionLinenumberEnd: 1159
    functionName: graph_output_post_merge_line
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_find_new_column_by_commit
    - graph_line_addch
    - assert
    - graph_update_state
    - next_interesting_parent
    - first_interesting_parent
    - graph_is_mapping_correct
    - graph_line_write_column
    linkageType: ''
    returnType: void
    signature: void graph_output_post_merge_line(struct git_graph *graph, struct graph_line
      *line)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/git/graph.c:1171,1
    - Dst: assert
      Src: /src/git/graph.c:1194,1
    - Dst: assert
      Src: /src/git/graph.c:1201,1
    - Dst: assert
      Src: /src/git/graph.c:1247,1
    - Dst: assert
      Src: /src/git/graph.c:1248,1
    - Dst: COPY_ARRAY
      Src: /src/git/graph.c:1269,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:1283,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1285,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1296,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1300,1
    - Dst: graph_is_mapping_correct
      Src: /src/git/graph.c:1310,1
    - Dst: graph_update_state
      Src: /src/git/graph.c:1311,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 2
    argNames:
    - graph
    - line
    argTypes:
    - struct git_graph*
    - struct graph_line*
    assertStmts:
    - condition: (target * 2 <= i)
      pos:
        line_end: 1193
        line_start: 1193
        source_file: /src/git/graph.c
    - condition: (graph->mapping[i - 2] < 0)
      pos:
        line_end: 1247
        line_start: 1247
        source_file: /src/git/graph.c
    - condition: (graph->mapping[i] == -1)
      pos:
        line_end: 1200
        line_start: 1200
        source_file: /src/git/graph.c
    - condition: (graph->mapping[i - 1] > target)
      pos:
        line_end: 1246
        line_start: 1246
        source_file: /src/git/graph.c
    constantsTouched: []
    func_position:
      end: 1312
      start: 1161
    functionDepth: 6
    functionLinenumber: 1161
    functionLinenumberEnd: 1312
    functionName: graph_output_collapsing_line
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_line_addch
    - assert
    - graph_line_write_column
    - graph_update_state
    - SWAP
    - graph_is_mapping_correct
    - COPY_ARRAY
    linkageType: ''
    returnType: void
    signature: void graph_output_collapsing_line(struct git_graph *graph, struct graph_line
      *line)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: graph_output_padding_line
      Src: /src/git/graph.c:1331,1
    - Dst: graph_output_skip_line
      Src: /src/git/graph.c:1334,1
    - Dst: graph_output_pre_commit_line
      Src: /src/git/graph.c:1337,1
    - Dst: graph_output_commit_line
      Src: /src/git/graph.c:1340,1
    - Dst: graph_output_post_merge_line
      Src: /src/git/graph.c:1344,1
    - Dst: graph_output_collapsing_line
      Src: /src/git/graph.c:1347,1
    - Dst: graph_pad_horizontally
      Src: /src/git/graph.c:1351,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - graph
    - sb
    argTypes:
    - struct git_graph*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1314
    functionDepth: 8
    functionLinenumber: 1314
    functionLinenumberEnd: 1353
    functionName: graph_next_line
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_output_skip_line
    - graph_pad_horizontally
    - graph_output_padding_line
    - graph_output_post_merge_line
    - graph_output_pre_commit_line
    - graph_output_collapsing_line
    - graph_output_commit_line
    linkageType: ''
    returnType: int
    signature: int graph_next_line(struct git_graph *graph, struct strbuf *sb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: graph_next_line
      Src: /src/git/graph.c:1361,1
    - Dst: graph_line_write_column
      Src: /src/git/graph.c:1375,1
    - Dst: graph_line_addchars
      Src: /src/git/graph.c:1379,1
    - Dst: graph_line_addch
      Src: /src/git/graph.c:1381,1
    - Dst: graph_pad_horizontally
      Src: /src/git/graph.c:1385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - graph
    - sb
    argTypes:
    - struct git_graph*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1355
    functionDepth: 9
    functionLinenumber: 1355
    functionLinenumberEnd: 1391
    functionName: graph_padding_line
    functionSourceFile: /src/git/graph.c
    functionUses: 1
    functionsReached:
    - graph_line_addch
    - graph_pad_horizontally
    - graph_line_addchars
    - graph_next_line
    - graph_line_write_column
    linkageType: ''
    returnType: void
    signature: void graph_padding_line(struct git_graph *graph, struct strbuf *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1396
    functionName: graph_is_commit_finished
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int graph_is_commit_finished(struct git_graph const *graph)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: graph_show_line_prefix
      Src: /src/git/graph.c:1403,1
    - Dst: graph_is_commit_finished
      Src: /src/git/graph.c:1413,1
    - Dst: graph_show_padding
      Src: /src/git/graph.c:1414,1
    - Dst: graph_is_commit_finished
      Src: /src/git/graph.c:1418,1
    - Dst: graph_next_line
      Src: /src/git/graph.c:1419,1
    - Dst: fwrite
      Src: /src/git/graph.c:1420,1
    - Dst: putc
      Src: /src/git/graph.c:1423,1
    - Dst: graph_show_line_prefix
      Src: /src/git/graph.c:1424,1
    - Dst: strbuf_setlen
      Src: /src/git/graph.c:1426,1
    - Dst: strbuf_release
      Src: /src/git/graph.c:1429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1398
    functionDepth: 9
    functionLinenumber: 1398
    functionLinenumberEnd: 1430
    functionName: graph_show_commit
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_show_padding
    - putc
    - strbuf_release
    - fwrite
    - strbuf_setlen
    - graph_is_commit_finished
    - graph_next_line
    - graph_show_line_prefix
    linkageType: ''
    returnType: void
    signature: void graph_show_commit(struct git_graph *graph)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: graph_show_line_prefix
      Src: /src/git/graph.c:1436,1
    - Dst: graph_next_line
      Src: /src/git/graph.c:1441,1
    - Dst: fwrite
      Src: /src/git/graph.c:1442,1
    - Dst: strbuf_release
      Src: /src/git/graph.c:1443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1432
    functionDepth: 9
    functionLinenumber: 1432
    functionLinenumberEnd: 1444
    functionName: graph_show_oneline
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - fwrite
    - graph_next_line
    - graph_show_line_prefix
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void graph_show_oneline(struct git_graph *graph)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: graph_show_line_prefix
      Src: /src/git/graph.c:1450,1
    - Dst: graph_padding_line
      Src: /src/git/graph.c:1455,1
    - Dst: fwrite
      Src: /src/git/graph.c:1456,1
    - Dst: strbuf_release
      Src: /src/git/graph.c:1457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1446
    functionDepth: 10
    functionLinenumber: 1446
    functionLinenumberEnd: 1458
    functionName: graph_show_padding
    functionSourceFile: /src/git/graph.c
    functionUses: 1
    functionsReached:
    - graph_padding_line
    - strbuf_release
    - graph_show_line_prefix
    - fwrite
    linkageType: ''
    returnType: void
    signature: void graph_show_padding(struct git_graph *graph)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: graph_show_line_prefix
      Src: /src/git/graph.c:1465,1
    - Dst: graph_is_commit_finished
      Src: /src/git/graph.c:1470,1
    - Dst: graph_next_line
      Src: /src/git/graph.c:1474,1
    - Dst: fwrite
      Src: /src/git/graph.c:1475,1
    - Dst: strbuf_setlen
      Src: /src/git/graph.c:1477,1
    - Dst: graph_is_commit_finished
      Src: /src/git/graph.c:1480,1
    - Dst: putc
      Src: /src/git/graph.c:1481,1
    - Dst: graph_show_line_prefix
      Src: /src/git/graph.c:1482,1
    - Dst: strbuf_release
      Src: /src/git/graph.c:1487,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct git_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1460
    functionDepth: 9
    functionLinenumber: 1460
    functionLinenumberEnd: 1490
    functionName: graph_show_remainder
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - putc
    - strbuf_release
    - fwrite
    - strbuf_setlen
    - graph_is_commit_finished
    - graph_next_line
    - graph_show_line_prefix
    linkageType: ''
    returnType: int
    signature: int graph_show_remainder(struct git_graph *graph)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/graph.c:1505,1
    - Dst: fwrite
      Src: /src/git/graph.c:1512,1
    - Dst: graph_show_oneline
      Src: /src/git/graph.c:1514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - graph
    - file
    - sb
    argTypes:
    - struct git_graph*
    - FILE*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1492
    functionDepth: 10
    functionLinenumber: 1492
    functionLinenumberEnd: 1517
    functionName: graph_show_strbuf
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - fwrite
    - graph_show_oneline
    - strchr
    linkageType: ''
    returnType: void
    signature: "void graph_show_strbuf(struct git_graph *graph,\n\t\t\t      FILE
      *file,\n\t\t\t      struct strbuf const *sb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: graph_show_strbuf
      Src: /src/git/graph.c:1528,1
    - Dst: graph_is_commit_finished
      Src: /src/git/graph.c:1538,1
    - Dst: putc
      Src: /src/git/graph.c:1545,1
    - Dst: graph_show_remainder
      Src: /src/git/graph.c:1547,1
    - Dst: putc
      Src: /src/git/graph.c:1553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - graph
    - file
    - sb
    argTypes:
    - struct git_graph*
    - FILE*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1519
    functionDepth: 11
    functionLinenumber: 1519
    functionLinenumberEnd: 1555
    functionName: graph_show_commit_msg
    functionSourceFile: /src/git/graph.c
    functionUses: 0
    functionsReached:
    - graph_is_commit_finished
    - putc
    - graph_show_remainder
    - graph_show_strbuf
    linkageType: ''
    returnType: void
    signature: "void graph_show_commit_msg(struct git_graph *graph,\n\t\t\t   FILE
      *file,\n\t\t\t   struct strbuf const *sb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct subprocess_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: subprocess_get_child_process
    functionSourceFile: /src/git/sub-process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct child_process
    signature: "struct child_process *subprocess_get_child_process(\n\t\tstruct subprocess_entry
      *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_cache_entry
      Src: /src/git/sparse-index.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - istate
    - sparse_dir
    - tree
    argTypes:
    - struct index_state*
    - char*
    - struct cache_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: construct_sparse_dir_entry
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 0
    functionsReached:
    - make_cache_entry
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *construct_sparse_dir_entry(\n\t\t\t\tstruct index_state
      *istate,\n\t\t\t\tconst char *sparse_dir,\n\t\t\t\tstruct cache_tree *tree)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: path_in_sparse_checkout
      Src: /src/git/sparse-index.c:75,1
    - Dst: ce_stage
      Src: /src/git/sparse-index.c:81,1
    - Dst: S_ISGITLINK
      Src: /src/git/sparse-index.c:82,1
    - Dst: construct_sparse_dir_entry
      Src: /src/git/sparse-index.c:89,1
    - Dst: strchr
      Src: /src/git/sparse-index.c:105,1
    - Dst: cache_tree_subtree_pos
      Src: /src/git/sparse-index.c:108,1
    - Dst: strbuf_setlen
      Src: /src/git/sparse-index.c:116,1
    - Dst: strbuf_add
      Src: /src/git/sparse-index.c:117,1
    - Dst: convert_to_sparse_rec
      Src: /src/git/sparse-index.c:120,1
    - Dst: strbuf_release
      Src: /src/git/sparse-index.c:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 7
    argNames:
    - istate
    - num_converted
    - start
    - end
    - ct_path
    - ct_pathlen
    - ct
    argTypes:
    - struct index_state*
    - int
    - int
    - int
    - char*
    - size_t
    - struct cache_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 60
    functionDepth: 8
    functionLinenumber: 60
    functionLinenumberEnd: 130
    functionName: convert_to_sparse_rec
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - S_ISGITLINK
    - strbuf_setlen
    - strchr
    - convert_to_sparse_rec
    - construct_sparse_dir_entry
    - path_in_sparse_checkout
    - cache_tree_subtree_pos
    - ce_stage
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int convert_to_sparse_rec(struct index_state *istate,\n\t\t\t\t int
      num_converted,\n\t\t\t\t int start, int end,\n\t\t\t\t const char *ct_path,
      size_t ct_pathlen,\n\t\t\t\t struct cache_tree *ct)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set_worktree_gently
      Src: /src/git/sparse-index.c:134,1
    - Dst: prepare_repo_settings
      Src: /src/git/sparse-index.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - repo
    - enable
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: set_sparse_index_config
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 0
    functionsReached:
    - repo_config_set_worktree_gently
    - prepare_repo_settings
    linkageType: ''
    returnType: int
    signature: int set_sparse_index_config(struct repository *repo, int enable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ce_stage
      Src: /src/git/sparse-index.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 151
    functionName: index_has_unmerged_entries
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 0
    functionsReached:
    - ce_stage
    linkageType: ''
    returnType: int
    signature: int index_has_unmerged_entries(struct index_state *istate)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/sparse-index.c:155,1
    - Dst: git_env_bool
      Src: /src/git/sparse-index.c:166,1
    - Dst: git_env_bool
      Src: /src/git/sparse-index.c:172,1
    - Dst: set_sparse_index_config
      Src: /src/git/sparse-index.c:174,1
    - Dst: prepare_repo_settings
      Src: /src/git/sparse-index.c:179,1
    - Dst: init_sparse_checkout_patterns
      Src: /src/git/sparse-index.c:184,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - istate
    - flags
    argTypes:
    - struct index_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 153
    functionDepth: 6
    functionLinenumber: 153
    functionLinenumberEnd: 199
    functionName: is_sparse_index_allowed
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 1
    functionsReached:
    - git_env_bool
    - prepare_repo_settings
    - set_sparse_index_config
    - repo_config_values
    - init_sparse_checkout_patterns
    linkageType: ''
    returnType: int
    signature: int is_sparse_index_allowed(struct index_state *istate, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_sparse_index_allowed
      Src: /src/git/sparse-index.c:208,1
    - Dst: index_has_unmerged_entries
      Src: /src/git/sparse-index.c:221,1
    - Dst: cache_tree_fully_valid
      Src: /src/git/sparse-index.c:224,1
    - Dst: cache_tree_free
      Src: /src/git/sparse-index.c:226,1
    - Dst: cache_tree_update
      Src: /src/git/sparse-index.c:235,1
    - Dst: remove_fsmonitor
      Src: /src/git/sparse-index.c:239,1
    - Dst: trace2_region_enter
      Src: /src/git/sparse-index.c:241,1
    - Dst: convert_to_sparse_rec
      Src: /src/git/sparse-index.c:242,1
    - Dst: cache_tree_free
      Src: /src/git/sparse-index.c:247,1
    - Dst: cache_tree_update
      Src: /src/git/sparse-index.c:248,1
    - Dst: ewah_free
      Src: /src/git/sparse-index.c:251,1
    - Dst: FREE_AND_NULL
      Src: /src/git/sparse-index.c:253,1
    - Dst: trace2_region_leave
      Src: /src/git/sparse-index.c:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - istate
    - flags
    argTypes:
    - struct index_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 201
    functionDepth: 9
    functionLinenumber: 201
    functionLinenumberEnd: 258
    functionName: convert_to_sparse
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 2
    functionsReached:
    - cache_tree_fully_valid
    - trace2_region_leave
    - is_sparse_index_allowed
    - trace2_region_enter
    - remove_fsmonitor
    - index_has_unmerged_entries
    - convert_to_sparse_rec
    - cache_tree_update
    - cache_tree_free
    - ewah_free
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: int convert_to_sparse(struct index_state *istate, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/sparse-index.c:262,1
    - Dst: add_name_hash
      Src: /src/git/sparse-index.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - istate
    - nr
    - ce
    argTypes:
    - struct index_state*
    - int
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 7
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: set_index_entry
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 3
    functionsReached:
    - add_name_hash
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void set_index_entry(struct index_state *istate, int nr, struct cache_entry
      *ce)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/sparse-index.c:276,1
    - Dst: strbuf_addstr
      Src: /src/git/sparse-index.c:296,1
    - Dst: strbuf_add
      Src: /src/git/sparse-index.c:297,1
    - Dst: path_matches_pattern_list
      Src: /src/git/sparse-index.c:299,1
    - Dst: strbuf_setlen
      Src: /src/git/sparse-index.c:302,1
    - Dst: strbuf_setlen
      Src: /src/git/sparse-index.c:310,1
    - Dst: strbuf_addstr
      Src: /src/git/sparse-index.c:312,1
    - Dst: make_cache_entry
      Src: /src/git/sparse-index.c:315,1
    - Dst: set_index_entry
      Src: /src/git/sparse-index.c:317,1
    - Dst: strbuf_setlen
      Src: /src/git/sparse-index.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - oid
    - base
    - path
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 268
    functionDepth: 7
    functionLinenumber: 268
    functionLinenumberEnd: 321
    functionName: add_path_to_index
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 0
    functionsReached:
    - path_matches_pattern_list
    - S_ISDIR
    - strbuf_setlen
    - strbuf_addstr
    - make_cache_entry
    - set_index_entry
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int add_path_to_index(const struct object_id *oid,\n\t\t\t     struct
      strbuf *base, const char *path,\n\t\t\t     unsigned int mode, void *context)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree_free
      Src: /src/git/sparse-index.c:352,1
    - Dst: cache_tree_update
      Src: /src/git/sparse-index.c:359,1
    - Dst: advise_if_enabled
      Src: /src/git/sparse-index.c:365,1
    - Dst: _
      Src: /src/git/sparse-index.c:366,1
    - Dst: trace2_region_enter
      Src: /src/git/sparse-index.c:376,1
    - Dst: xcalloc
      Src: /src/git/sparse-index.c:379,1
    - Dst: memcpy
      Src: /src/git/sparse-index.c:380,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/sparse-index.c:392,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/sparse-index.c:403,1
    - Dst: set_index_entry
      Src: /src/git/sparse-index.c:404,1
    - Dst: path_matches_pattern_list
      Src: /src/git/sparse-index.c:410,1
    - Dst: set_index_entry
      Src: /src/git/sparse-index.c:413,1
    - Dst: warning
      Src: /src/git/sparse-index.c:418,1
    - Dst: _
      Src: /src/git/sparse-index.c:418,1
    - Dst: lookup_tree
      Src: /src/git/sparse-index.c:422,1
    - Dst: memset
      Src: /src/git/sparse-index.c:424,1
    - Dst: strbuf_setlen
      Src: /src/git/sparse-index.c:429,1
    - Dst: strbuf_add
      Src: /src/git/sparse-index.c:430,1
    - Dst: strlen
      Src: /src/git/sparse-index.c:430,1
    - Dst: read_tree_at
      Src: /src/git/sparse-index.c:432,1
    - Dst: discard_cache_entry
      Src: /src/git/sparse-index.c:436,1
    - Dst: memcpy
      Src: /src/git/sparse-index.c:440,1
    - Dst: memcpy
      Src: /src/git/sparse-index.c:441,1
    - Dst: free
      Src: /src/git/sparse-index.c:443,1
    - Dst: ewah_free
      Src: /src/git/sparse-index.c:448,1
    - Dst: FREE_AND_NULL
      Src: /src/git/sparse-index.c:450,1
    - Dst: strbuf_release
      Src: /src/git/sparse-index.c:452,1
    - Dst: free
      Src: /src/git/sparse-index.c:453,1
    - Dst: cache_tree_free
      Src: /src/git/sparse-index.c:456,1
    - Dst: cache_tree_update
      Src: /src/git/sparse-index.c:457,1
    - Dst: trace2_region_leave
      Src: /src/git/sparse-index.c:459,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 2
    argNames:
    - istate
    - pl
    argTypes:
    - struct index_state*
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 323
    functionDepth: 7
    functionLinenumber: 323
    functionLinenumberEnd: 460
    functionName: expand_index
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 0
    functionsReached:
    - trace2_region_enter
    - advise_if_enabled
    - cache_tree_free
    - free
    - lookup_tree
    - set_index_entry
    - strbuf_release
    - ALLOC_ARRAY
    - S_ISSPARSEDIR
    - strbuf_setlen
    - memcpy
    - discard_cache_entry
    - cache_tree_update
    - xcalloc
    - memset
    - _
    - ewah_free
    - warning
    - FREE_AND_NULL
    - strbuf_add
    - path_matches_pattern_list
    - trace2_region_leave
    - strlen
    - read_tree_at
    linkageType: ''
    returnType: void
    signature: void expand_index(struct index_state *istate, struct pattern_list *pl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/sparse-index.c:465,1
    - Dst: expand_index
      Src: /src/git/sparse-index.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 8
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: ensure_full_index
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 13
    functionsReached:
    - BUG
    - expand_index
    linkageType: ''
    returnType: void
    signature: void ensure_full_index(struct index_state *istate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_sparse_index_allowed
      Src: /src/git/sparse-index.c:475,1
    - Dst: convert_to_sparse
      Src: /src/git/sparse-index.c:476,1
    - Dst: ensure_full_index
      Src: /src/git/sparse-index.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 469
    functionDepth: 10
    functionLinenumber: 469
    functionLinenumberEnd: 479
    functionName: ensure_correct_sparsity
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 1
    functionsReached:
    - ensure_full_index
    - is_sparse_index_allowed
    - convert_to_sparse
    linkageType: ''
    returnType: void
    signature: void ensure_correct_sparsity(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/sparse-index.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct path_found_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: clear_path_found_data
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void clear_path_found_data(struct path_found_data *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - path1
    - path2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 525
    functionName: max_common_dir_prefix
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t max_common_dir_prefix(const char *path1, const char *path2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/sparse-index.c:537,1
    - Dst: lstat
      Src: /src/git/sparse-index.c:546,1
    - Dst: max_common_dir_prefix
      Src: /src/git/sparse-index.c:556,1
    - Dst: strbuf_setlen
      Src: /src/git/sparse-index.c:565,1
    - Dst: strchr
      Src: /src/git/sparse-index.c:569,1
    - Dst: strbuf_addstr
      Src: /src/git/sparse-index.c:584,1
    - Dst: strbuf_addch
      Src: /src/git/sparse-index.c:585,1
    - Dst: strbuf_add
      Src: /src/git/sparse-index.c:593,1
    - Dst: lstat
      Src: /src/git/sparse-index.c:597,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - path
    - data
    argTypes:
    - char*
    - struct path_found_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 527
    functionDepth: 4
    functionLinenumber: 527
    functionLinenumberEnd: 607
    functionName: path_found
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 0
    functionsReached:
    - max_common_dir_prefix
    - strbuf_setlen
    - strchr
    - strbuf_addch
    - strbuf_addstr
    - lstat
    - strbuf_add
    - memcmp
    linkageType: ''
    returnType: int
    signature: int path_found(const char *path, struct path_found_data *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/sparse-index.c:616,1
    - Dst: ce_skip_worktree
      Src: /src/git/sparse-index.c:621,1
    - Dst: path_found
      Src: /src/git/sparse-index.c:623,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/sparse-index.c:624,1
    - Dst: trace2_data_intmax
      Src: /src/git/sparse-index.c:633,1
    - Dst: trace2_data_intmax
      Src: /src/git/sparse-index.c:635,1
    - Dst: trace2_region_leave
      Src: /src/git/sparse-index.c:637,1
    - Dst: clear_path_found_data
      Src: /src/git/sparse-index.c:639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 609
    functionDepth: 5
    functionLinenumber: 609
    functionLinenumberEnd: 641
    functionName: clear_skip_worktree_from_present_files_sparse
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 0
    functionsReached:
    - trace2_data_intmax
    - trace2_region_leave
    - S_ISSPARSEDIR
    - trace2_region_enter
    - ce_skip_worktree
    - path_found
    - clear_path_found_data
    linkageType: ''
    returnType: int
    signature: int clear_skip_worktree_from_present_files_sparse(struct index_state
      *istate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/sparse-index.c:649,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/sparse-index.c:654,1
    - Dst: BUG
      Src: /src/git/sparse-index.c:655,1
    - Dst: ce_skip_worktree
      Src: /src/git/sparse-index.c:657,1
    - Dst: path_found
      Src: /src/git/sparse-index.c:659,1
    - Dst: trace2_data_intmax
      Src: /src/git/sparse-index.c:664,1
    - Dst: trace2_data_intmax
      Src: /src/git/sparse-index.c:666,1
    - Dst: trace2_region_leave
      Src: /src/git/sparse-index.c:668,1
    - Dst: clear_path_found_data
      Src: /src/git/sparse-index.c:670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 643
    functionDepth: 5
    functionLinenumber: 643
    functionLinenumberEnd: 671
    functionName: clear_skip_worktree_from_present_files_full
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 0
    functionsReached:
    - trace2_data_intmax
    - trace2_region_leave
    - S_ISSPARSEDIR
    - trace2_region_enter
    - ce_skip_worktree
    - path_found
    - BUG
    - clear_path_found_data
    linkageType: ''
    returnType: void
    signature: void clear_skip_worktree_from_present_files_full(struct index_state
      *istate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/sparse-index.c:675,1
    - Dst: clear_skip_worktree_from_present_files_sparse
      Src: /src/git/sparse-index.c:681,1
    - Dst: ensure_full_index
      Src: /src/git/sparse-index.c:682,1
    - Dst: clear_skip_worktree_from_present_files_full
      Src: /src/git/sparse-index.c:683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 673
    functionDepth: 9
    functionLinenumber: 673
    functionLinenumberEnd: 685
    functionName: clear_skip_worktree_from_present_files
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 1
    functionsReached:
    - ensure_full_index
    - clear_skip_worktree_from_present_files_sparse
    - repo_config_values
    - clear_skip_worktree_from_present_files_full
    linkageType: ''
    returnType: void
    signature: void clear_skip_worktree_from_present_files(struct index_state *istate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: index_file_exists
      Src: /src/git/sparse-index.c:716,1
    - Dst: strbuf_add
      Src: /src/git/sparse-index.c:719,1
    - Dst: strbuf_addch
      Src: /src/git/sparse-index.c:720,1
    - Dst: strchr
      Src: /src/git/sparse-index.c:726,1
    - Dst: index_file_exists
      Src: /src/git/sparse-index.c:736,1
    - Dst: ensure_full_index
      Src: /src/git/sparse-index.c:745,1
    - Dst: strbuf_release
      Src: /src/git/sparse-index.c:753,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - istate
    - path
    - pathlen
    - icase
    argTypes:
    - struct index_state*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 693
    functionDepth: 9
    functionLinenumber: 693
    functionLinenumberEnd: 755
    functionName: expand_to_path
    functionSourceFile: /src/git/sparse-index.c
    functionUses: 3
    functionsReached:
    - ensure_full_index
    - strbuf_release
    - strchr
    - strbuf_addch
    - index_file_exists
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void expand_to_path(struct index_state *istate,\n\t\t    const char
      *path, size_t pathlen, int icase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hexval
      Src: /src/git/hex-ll.c:42,1
    - Dst: hexval
      Src: /src/git/hex-ll.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - binary
    - hex
    - len
    argTypes:
    - unsigned char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: hex_to_bytes
    functionSourceFile: /src/git/hex-ll.c
    functionUses: 3
    functionsReached:
    - hexval
    linkageType: ''
    returnType: int
    signature: int hex_to_bytes(unsigned char *binary, const char *hex, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_read_ref
      Src: /src/git/notes-cache.c:23,1
    - Dst: get_main_ref_store
      Src: /src/git/notes-cache.c:23,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/notes-cache.c:26,1
    - Dst: memset
      Src: /src/git/notes-cache.c:30,1
    - Dst: repo_format_commit_message
      Src: /src/git/notes-cache.c:31,1
    - Dst: strbuf_trim
      Src: /src/git/notes-cache.c:33,1
    - Dst: strcmp
      Src: /src/git/notes-cache.c:35,1
    - Dst: strbuf_release
      Src: /src/git/notes-cache.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - r
    - ref
    - validity
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 13
    functionDepth: 14
    functionLinenumber: 13
    functionLinenumberEnd: 39
    functionName: notes_cache_match_validity
    functionSourceFile: /src/git/notes-cache.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - memset
    - strbuf_release
    - lookup_commit_reference_gently
    - refs_read_ref
    - strbuf_trim
    - strcmp
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int notes_cache_match_validity(struct repository *r,\n\t\t\t\t      const
      char *ref,\n\t\t\t\t      const char *validity)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/notes-cache.c:47,1
    - Dst: xstrdup
      Src: /src/git/notes-cache.c:48,1
    - Dst: strbuf_addf
      Src: /src/git/notes-cache.c:50,1
    - Dst: notes_cache_match_validity
      Src: /src/git/notes-cache.c:51,1
    - Dst: init_notes
      Src: /src/git/notes-cache.c:53,1
    - Dst: strbuf_release
      Src: /src/git/notes-cache.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - r
    - c
    - name
    - validity
    argTypes:
    - struct repository*
    - struct notes_cache*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 15
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: notes_cache_init
    functionSourceFile: /src/git/notes-cache.c
    functionUses: 1
    functionsReached:
    - memset
    - strbuf_release
    - strbuf_addf
    - init_notes
    - notes_cache_match_validity
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void notes_cache_init(struct repository *r, struct notes_cache *c,\n\t\t
      \     const char *name, const char *validity)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: write_notes_tree
      Src: /src/git/notes-cache.c:67,1
    - Dst: commit_tree
      Src: /src/git/notes-cache.c:69,1
    - Dst: strlen
      Src: /src/git/notes-cache.c:69,1
    - Dst: refs_update_ref
      Src: /src/git/notes-cache.c:72,1
    - Dst: get_main_ref_store
      Src: /src/git/notes-cache.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct notes_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 8
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: notes_cache_write
    functionSourceFile: /src/git/notes-cache.c
    functionUses: 0
    functionsReached:
    - commit_tree
    - strlen
    - write_notes_tree
    - refs_update_ref
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int notes_cache_write(struct notes_cache *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_note
      Src: /src/git/notes-cache.c:87,1
    - Dst: odb_read_object
      Src: /src/git/notes-cache.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - c
    - key_oid
    - outsize
    argTypes:
    - struct notes_cache*
    - struct object_id*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: notes_cache_get
    functionSourceFile: /src/git/notes-cache.c
    functionUses: 0
    functionsReached:
    - get_note
    - odb_read_object
    linkageType: ''
    returnType: char
    signature: "char *notes_cache_get(struct notes_cache *c, struct object_id *key_oid,\n\t\t
      \     size_t *outsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_write_object
      Src: /src/git/notes-cache.c:101,1
    - Dst: add_note
      Src: /src/git/notes-cache.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - c
    - key_oid
    - data
    - size
    argTypes:
    - struct notes_cache*
    - struct object_id*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: notes_cache_put
    functionSourceFile: /src/git/notes-cache.c
    functionUses: 0
    functionsReached:
    - odb_write_object
    - add_note
    linkageType: ''
    returnType: int
    signature: "int notes_cache_put(struct notes_cache *c, struct object_id *key_oid,\n\t\t
      \   const char *data, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: ATTR_TRUE
    functionSourceFile: /src/git/attr.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTR_TRUE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: ATTR_FALSE
    functionSourceFile: /src/git/attr.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTR_FALSE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: ATTR_UNSET
    functionSourceFile: /src/git/attr.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTR_UNSET(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/delta-islands.c:47,1
    - Dst: memcpy
      Src: /src/git/delta-islands.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - old
    argTypes:
    - struct island_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: island_bitmap_new
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - memcpy
    linkageType: ''
    returnType: struct island_bitmap
    signature: struct island_bitmap *island_bitmap_new(const struct island_bitmap
      *old)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct island_bitmap*
    - struct island_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: island_bitmap_or
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void island_bitmap_or(struct island_bitmap *a, const struct island_bitmap
      *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - super
    argTypes:
    - struct island_bitmap*
    - struct island_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: island_bitmap_is_subset
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int island_bitmap_is_subset(struct island_bitmap *self,\n\t\tstruct
      island_bitmap *super)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: ISLAND_BITMAP_BLOCK
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISLAND_BITMAP_BLOCK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: ISLAND_BITMAP_MASK
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISLAND_BITMAP_MASK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISLAND_BITMAP_BLOCK
      Src: /src/git/delta-islands.c:85,1
    - Dst: ISLAND_BITMAP_MASK
      Src: /src/git/delta-islands.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - struct island_bitmap*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: island_bitmap_set
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - ISLAND_BITMAP_BLOCK
    - ISLAND_BITMAP_MASK
    linkageType: ''
    returnType: void
    signature: void island_bitmap_set(struct island_bitmap *self, uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ISLAND_BITMAP_BLOCK
      Src: /src/git/delta-islands.c:90,1
    - Dst: ISLAND_BITMAP_MASK
      Src: /src/git/delta-islands.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - struct island_bitmap*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: island_bitmap_get
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - ISLAND_BITMAP_BLOCK
    - ISLAND_BITMAP_MASK
    linkageType: ''
    returnType: int
    signature: int island_bitmap_get(struct island_bitmap *self, uint32_t i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_map
      Src: /src/git/delta-islands.c:105,1
    - Dst: kh_end
      Src: /src/git/delta-islands.c:106,1
    - Dst: kh_get_oid_map
      Src: /src/git/delta-islands.c:113,1
    - Dst: kh_end
      Src: /src/git/delta-islands.c:114,1
    - Dst: island_bitmap_is_subset
      Src: /src/git/delta-islands.c:117,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:117,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - trg_oid
    - src_oid
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 119
    functionName: in_same_island
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - kh_value
    - island_bitmap_is_subset
    - kh_end
    - kh_get_oid_map
    linkageType: ''
    returnType: int
    signature: int in_same_island(const struct object_id *trg_oid, const struct object_id
      *src_oid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_map
      Src: /src/git/delta-islands.c:129,1
    - Dst: kh_end
      Src: /src/git/delta-islands.c:130,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:131,1
    - Dst: kh_get_oid_map
      Src: /src/git/delta-islands.c:133,1
    - Dst: kh_end
      Src: /src/git/delta-islands.c:134,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:135,1
    - Dst: island_bitmap_is_subset
      Src: /src/git/delta-islands.c:138,1
    - Dst: island_bitmap_is_subset
      Src: /src/git/delta-islands.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 147
    functionName: island_delta_cmp
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - kh_value
    - island_bitmap_is_subset
    - kh_end
    - kh_get_oid_map
    linkageType: ''
    returnType: int
    signature: int island_delta_cmp(const struct object_id *a, const struct object_id
      *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_put_oid_map
      Src: /src/git/delta-islands.c:154,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:156,1
    - Dst: island_bitmap_new
      Src: /src/git/delta-islands.c:156,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 8
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: create_or_get_island_marks
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - island_bitmap_new
    - kh_value
    - kh_put_oid_map
    linkageType: ''
    returnType: struct island_bitmap
    signature: struct island_bitmap *create_or_get_island_marks(struct object *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_put_oid_map
      Src: /src/git/delta-islands.c:167,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:174,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:182,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:185,1
    - Dst: island_bitmap_new
      Src: /src/git/delta-islands.c:185,1
    - Dst: island_bitmap_or
      Src: /src/git/delta-islands.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - obj
    - marks
    argTypes:
    - struct object*
    - struct island_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 161
    functionDepth: 8
    functionLinenumber: 161
    functionLinenumberEnd: 188
    functionName: set_island_marks
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - island_bitmap_new
    - kh_value
    - kh_put_oid_map
    - island_bitmap_or
    linkageType: ''
    returnType: void
    signature: void set_island_marks(struct object *obj, struct island_bitmap *marks)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/delta-islands.c:198,1
    - Dst: create_or_get_island_marks
      Src: /src/git/delta-islands.c:203,1
    - Dst: island_bitmap_set
      Src: /src/git/delta-islands.c:204,1
    - Dst: parse_object
      Src: /src/git/delta-islands.c:213,1
    - Dst: create_or_get_island_marks
      Src: /src/git/delta-islands.c:214,1
    - Dst: island_bitmap_set
      Src: /src/git/delta-islands.c:215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - r
    - rl
    - is_core_island
    argTypes:
    - struct repository*
    - struct remote_island*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 190
    functionDepth: 9
    functionLinenumber: 190
    functionLinenumberEnd: 224
    functionName: mark_remote_island_1
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - island_bitmap_set
    - parse_object
    - create_or_get_island_marks
    linkageType: ''
    returnType: void
    signature: "void mark_remote_island_1(struct repository *r,\n\t\t\t\t struct remote_island
      *rl,\n\t\t\t\t int is_core_island)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: tree_depth_compare
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tree_depth_compare(const void *a, const void *b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/delta-islands.c:258,1
    - Dst: oe_type
      Src: /src/git/delta-islands.c:260,1
    - Dst: oe_tree_depth
      Src: /src/git/delta-islands.c:262,1
    - Dst: QSORT
      Src: /src/git/delta-islands.c:266,1
    - Dst: start_progress
      Src: /src/git/delta-islands.c:269,1
    - Dst: _
      Src: /src/git/delta-islands.c:269,1
    - Dst: kh_get_oid_map
      Src: /src/git/delta-islands.c:279,1
    - Dst: kh_end
      Src: /src/git/delta-islands.c:280,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:283,1
    - Dst: lookup_tree
      Src: /src/git/delta-islands.c:285,1
    - Dst: repo_parse_tree
      Src: /src/git/delta-islands.c:286,1
    - Dst: die
      Src: /src/git/delta-islands.c:287,1
    - Dst: _
      Src: /src/git/delta-islands.c:287,1
    - Dst: oid_to_hex
      Src: /src/git/delta-islands.c:287,1
    - Dst: init_tree_desc
      Src: /src/git/delta-islands.c:289,1
    - Dst: tree_entry
      Src: /src/git/delta-islands.c:290,1
    - Dst: S_ISGITLINK
      Src: /src/git/delta-islands.c:293,1
    - Dst: lookup_object
      Src: /src/git/delta-islands.c:296,1
    - Dst: set_island_marks
      Src: /src/git/delta-islands.c:300,1
    - Dst: free_tree_buffer
      Src: /src/git/delta-islands.c:303,1
    - Dst: display_progress
      Src: /src/git/delta-islands.c:305,1
    - Dst: stop_progress
      Src: /src/git/delta-islands.c:308,1
    - Dst: free
      Src: /src/git/delta-islands.c:309,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - r
    - progress
    - to_pack
    argTypes:
    - struct repository*
    - int
    - struct packing_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 239
    functionDepth: 9
    functionLinenumber: 239
    functionLinenumberEnd: 310
    functionName: resolve_tree_islands
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - start_progress
    - free_tree_buffer
    - kh_get_oid_map
    - free
    - lookup_tree
    - die
    - ALLOC_ARRAY
    - repo_parse_tree
    - kh_value
    - lookup_object
    - QSORT
    - oid_to_hex
    - oe_type
    - S_ISGITLINK
    - set_island_marks
    - _
    - kh_end
    - init_tree_desc
    - tree_entry
    - display_progress
    - oe_tree_depth
    linkageType: ''
    returnType: void
    signature: "void resolve_tree_islands(struct repository *r,\n\t\t\t  int progress,\n\t\t\t
      \ struct packing_data *to_pack)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regfree
      Src: /src/git/delta-islands.c:323,1
    - Dst: free
      Src: /src/git/delta-islands.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ild
    argTypes:
    - struct island_load_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: free_config_regexes
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - regfree
    - free
    linkageType: ''
    returnType: void
    signature: void free_config_regexes(struct island_load_data *ild)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_foreach
      Src: /src/git/delta-islands.c:332,1
    - Dst: free
      Src: /src/git/delta-islands.c:333,1
    - Dst: oid_array_clear
      Src: /src/git/delta-islands.c:334,1
    - Dst: free
      Src: /src/git/delta-islands.c:335,1
    - Dst: kh_destroy_str
      Src: /src/git/delta-islands.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - remote_islands
    argTypes:
    - kh_str_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 338
    functionName: free_remote_islands
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - kh_destroy_str
    - oid_array_clear
    - kh_foreach
    - free
    linkageType: ''
    returnType: void
    signature: void free_remote_islands(kh_str_t *remote_islands)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/delta-islands.c:346,1
    - Dst: config_error_nonbool
      Src: /src/git/delta-islands.c:350,1
    - Dst: ALLOC_GROW
      Src: /src/git/delta-islands.c:352,1
    - Dst: strbuf_addch
      Src: /src/git/delta-islands.c:355,1
    - Dst: strbuf_addstr
      Src: /src/git/delta-islands.c:356,1
    - Dst: regcomp
      Src: /src/git/delta-islands.c:358,1
    - Dst: die
      Src: /src/git/delta-islands.c:359,1
    - Dst: _
      Src: /src/git/delta-islands.c:359,1
    - Dst: strbuf_release
      Src: /src/git/delta-islands.c:361,1
    - Dst: strcmp
      Src: /src/git/delta-islands.c:366,1
    - Dst: git_config_string
      Src: /src/git/delta-islands.c:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - k
    - v
    - UNUSED
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 370
    functionName: island_config_callback
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - _
    - git_config_string
    - strbuf_addch
    - strcmp
    - ALLOC_GROW
    - strbuf_addstr
    - regcomp
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int island_config_callback(const char *k, const char *v,\n\t\t\t\t
      \ const struct config_context *ctx UNUSED,\n\t\t\t\t  void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_put_str
      Src: /src/git/delta-islands.c:379,1
    - Dst: kh_key
      Src: /src/git/delta-islands.c:382,1
    - Dst: xstrdup
      Src: /src/git/delta-islands.c:382,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:383,1
    - Dst: xcalloc
      Src: /src/git/delta-islands.c:383,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:386,1
    - Dst: oid_array_append
      Src: /src/git/delta-islands.c:387,1
    - Dst: memcpy
      Src: /src/git/delta-islands.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - remote_islands
    - island_name
    - oid
    argTypes:
    - kh_str_t*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 372
    functionDepth: 7
    functionLinenumber: 372
    functionLinenumberEnd: 391
    functionName: add_ref_to_island
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - kh_key
    - oid_array_append
    - memcpy
    - kh_value
    - xcalloc
    - kh_put_str
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void add_ref_to_island(kh_str_t *remote_islands, const char *island_name,\n\t\t\t\tconst
      struct object_id *oid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: regexec
      Src: /src/git/delta-islands.c:408,1
    - Dst: ARRAY_SIZE
      Src: /src/git/delta-islands.c:409,1
    - Dst: ARRAY_SIZE
      Src: /src/git/delta-islands.c:416,1
    - Dst: warning
      Src: /src/git/delta-islands.c:417,1
    - Dst: _
      Src: /src/git/delta-islands.c:417,1
    - Dst: ARRAY_SIZE
      Src: /src/git/delta-islands.c:419,1
    - Dst: ARRAY_SIZE
      Src: /src/git/delta-islands.c:421,1
    - Dst: strbuf_addch
      Src: /src/git/delta-islands.c:428,1
    - Dst: strbuf_add
      Src: /src/git/delta-islands.c:430,1
    - Dst: add_ref_to_island
      Src: /src/git/delta-islands.c:433,1
    - Dst: strbuf_release
      Src: /src/git/delta-islands.c:434,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - ref
    - cb
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 393
    functionDepth: 8
    functionLinenumber: 393
    functionLinenumberEnd: 436
    functionName: find_island_for_ref
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strbuf_release
    - regexec
    - strbuf_addch
    - _
    - add_ref_to_island
    - warning
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int find_island_for_ref(const struct reference *ref, void *cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_str
      Src: /src/git/delta-islands.c:441,1
    - Dst: kh_end
      Src: /src/git/delta-islands.c:442,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - remote_islands
    argTypes:
    - kh_str_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: get_core_island
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - kh_value
    - kh_get_str
    - kh_end
    linkageType: ''
    returnType: struct remote_island
    signature: struct remote_island *get_core_island(kh_str_t *remote_islands)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_size
      Src: /src/git/delta-islands.c:454,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/delta-islands.c:455,1
    - Dst: kh_foreach_value
      Src: /src/git/delta-islands.c:457,1
    - Dst: get_core_island
      Src: /src/git/delta-islands.c:475,1
    - Dst: mark_remote_island_1
      Src: /src/git/delta-islands.c:478,1
    - Dst: free
      Src: /src/git/delta-islands.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - remote_islands
    - r
    argTypes:
    - kh_str_t*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 449
    functionDepth: 10
    functionLinenumber: 449
    functionLinenumberEnd: 482
    functionName: deduplicate_islands
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - kh_size
    - mark_remote_island_1
    - get_core_island
    - free
    - kh_foreach_value
    linkageType: ''
    returnType: void
    signature: void deduplicate_islands(kh_str_t *remote_islands, struct repository
      *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_init_oid_map
      Src: /src/git/delta-islands.c:488,1
    - Dst: repo_config
      Src: /src/git/delta-islands.c:490,1
    - Dst: kh_init_str
      Src: /src/git/delta-islands.c:491,1
    - Dst: refs_for_each_ref
      Src: /src/git/delta-islands.c:492,1
    - Dst: get_main_ref_store
      Src: /src/git/delta-islands.c:492,1
    - Dst: free_config_regexes
      Src: /src/git/delta-islands.c:494,1
    - Dst: deduplicate_islands
      Src: /src/git/delta-islands.c:495,1
    - Dst: free_remote_islands
      Src: /src/git/delta-islands.c:496,1
    - Dst: fprintf
      Src: /src/git/delta-islands.c:499,1
    - Dst: _
      Src: /src/git/delta-islands.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - r
    - progress
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 484
    functionDepth: 11
    functionLinenumber: 484
    functionLinenumberEnd: 500
    functionName: load_delta_islands
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref
    - kh_init_oid_map
    - free_remote_islands
    - deduplicate_islands
    - free_config_regexes
    - _
    - kh_init_str
    - repo_config
    - fprintf
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void load_delta_islands(struct repository *r, int progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_map
      Src: /src/git/delta-islands.c:504,1
    - Dst: kh_end
      Src: /src/git/delta-islands.c:506,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:508,1
    - Dst: repo_parse_commit
      Src: /src/git/delta-islands.c:510,1
    - Dst: set_island_marks
      Src: /src/git/delta-islands.c:511,1
    - Dst: repo_get_commit_tree
      Src: /src/git/delta-islands.c:511,1
    - Dst: set_island_marks
      Src: /src/git/delta-islands.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - r
    - commit
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 9
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: propagate_island_marks
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - repo_parse_commit
    - set_island_marks
    - kh_value
    - repo_get_commit_tree
    - kh_get_oid_map
    - kh_end
    linkageType: ''
    returnType: void
    signature: void propagate_island_marks(struct repository *r, struct commit *commit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_foreach_value
      Src: /src/git/delta-islands.c:523,1
    - Dst: free
      Src: /src/git/delta-islands.c:525,1
    - Dst: kh_destroy_oid_map
      Src: /src/git/delta-islands.c:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 532
    functionName: free_island_marks
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - kh_destroy_oid_map
    - kh_foreach_value
    - free
    linkageType: ''
    returnType: void
    signature: void free_island_marks(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_map
      Src: /src/git/delta-islands.c:543,1
    - Dst: oe_set_layer
      Src: /src/git/delta-islands.c:545,1
    - Dst: kh_end
      Src: /src/git/delta-islands.c:547,1
    - Dst: kh_value
      Src: /src/git/delta-islands.c:548,1
    - Dst: island_bitmap_get
      Src: /src/git/delta-islands.c:550,1
    - Dst: oe_set_layer
      Src: /src/git/delta-islands.c:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - to_pack
    argTypes:
    - struct packing_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 556
    functionName: compute_pack_layers
    functionSourceFile: /src/git/delta-islands.c
    functionUses: 0
    functionsReached:
    - island_bitmap_get
    - kh_value
    - kh_get_oid_map
    - oe_set_layer
    - kh_end
    linkageType: ''
    returnType: int
    signature: int compute_pack_layers(struct packing_data *to_pack)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/object-file-convert.c:28,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/object-file-convert.c:29,1
    - Dst: oidcpy
      Src: /src/git/object-file-convert.c:35,1
    - Dst: repo_loose_object_map_oid
      Src: /src/git/object-file-convert.c:38,1
    - Dst: repo_read_loose_object_map
      Src: /src/git/object-file-convert.c:45,1
    - Dst: repo_loose_object_map_oid
      Src: /src/git/object-file-convert.c:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - repo
    - srcoid
    - to
    - dest
    argTypes:
    - struct repository*
    - struct object_id*
    - struct git_hash_algo*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 50
    functionName: repo_oid_to_algop
    functionSourceFile: /src/git/object-file-convert.c
    functionUses: 1
    functionsReached:
    - repo_read_loose_object_map
    - repo_loose_object_map_oid
    - hash_algo_by_ptr
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int repo_oid_to_algop(struct repository *repo, const struct object_id
      *srcoid,\n\t\t      const struct git_hash_algo *to, struct object_id *dest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_mode
      Src: /src/git/object-file-convert.c:63,1
    - Dst: strlen
      Src: /src/git/object-file-convert.c:66,1
    - Dst: oidread
      Src: /src/git/object-file-convert.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - oid
    - path
    - len
    - algo
    - buf
    - size
    argTypes:
    - struct object_id*
    - char**
    - size_t*
    - struct git_hash_algo*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 70
    functionName: decode_tree_entry_raw
    functionSourceFile: /src/git/object-file-convert.c
    functionUses: 0
    functionsReached:
    - strlen
    - parse_mode
    - oidread
    linkageType: ''
    returnType: int
    signature: "int decode_tree_entry_raw(struct object_id *oid, const char **path,\n\t\t\t\t
      size_t *len, const struct git_hash_algo *algo,\n\t\t\t\t const char *buf, unsigned
      long size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_tree_entry_raw
      Src: /src/git/object-file-convert.c:85,1
    - Dst: error
      Src: /src/git/object-file-convert.c:87,1
    - Dst: _
      Src: /src/git/object-file-convert.c:87,1
    - Dst: repo_oid_to_algop
      Src: /src/git/object-file-convert.c:88,1
    - Dst: error
      Src: /src/git/object-file-convert.c:89,1
    - Dst: _
      Src: /src/git/object-file-convert.c:89,1
    - Dst: oid_to_hex
      Src: /src/git/object-file-convert.c:89,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:90,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:91,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - repo
    - out
    - from
    - to
    - buffer
    - size
    argTypes:
    - struct repository*
    - struct strbuf*
    - struct git_hash_algo*
    - struct git_hash_algo*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 96
    functionName: convert_tree_object
    functionSourceFile: /src/git/object-file-convert.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - _
    - repo_oid_to_algop
    - strbuf_add
    - decode_tree_entry_raw
    linkageType: ''
    returnType: int
    signature: "int convert_tree_object(struct repository *repo,\n\t\t\t       struct
      strbuf *out,\n\t\t\t       const struct git_hash_algo *from,\n\t\t\t       const
      struct git_hash_algo *to,\n\t\t\t       const char *buffer, size_t size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/object-file-convert.c:112,1
    - Dst: error
      Src: /src/git/object-file-convert.c:113,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/object-file-convert.c:114,1
    - Dst: error
      Src: /src/git/object-file-convert.c:115,1
    - Dst: repo_oid_to_algop
      Src: /src/git/object-file-convert.c:116,1
    - Dst: error
      Src: /src/git/object-file-convert.c:117,1
    - Dst: oid_to_hex
      Src: /src/git/object-file-convert.c:118,1
    - Dst: parse_signed_buffer
      Src: /src/git/object-file-convert.c:123,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:126,1
    - Dst: parse_buffer_signed_by_header
      Src: /src/git/object-file-convert.c:130,1
    - Dst: strbuf_grow
      Src: /src/git/object-file-convert.c:137,1
    - Dst: strbuf_addf
      Src: /src/git/object-file-convert.c:138,1
    - Dst: oid_to_hex
      Src: /src/git/object-file-convert.c:138,1
    - Dst: strbuf_addbuf
      Src: /src/git/object-file-convert.c:139,1
    - Dst: add_header_signature
      Src: /src/git/object-file-convert.c:141,1
    - Dst: strbuf_addbuf
      Src: /src/git/object-file-convert.c:142,1
    - Dst: strbuf_release
      Src: /src/git/object-file-convert.c:144,1
    - Dst: strbuf_release
      Src: /src/git/object-file-convert.c:145,1
    - Dst: strbuf_release
      Src: /src/git/object-file-convert.c:146,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - repo
    - out
    - from
    - to
    - buffer
    - size
    argTypes:
    - struct repository*
    - struct strbuf*
    - struct git_hash_algo*
    - struct git_hash_algo*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 98
    functionDepth: 6
    functionLinenumber: 98
    functionLinenumberEnd: 148
    functionName: convert_tag_object
    functionSourceFile: /src/git/object-file-convert.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - oid_to_hex
    - parse_oid_hex_algop
    - strbuf_addf
    - add_header_signature
    - strbuf_addbuf
    - strbuf_grow
    - parse_buffer_signed_by_header
    - repo_oid_to_algop
    - strbuf_add
    - parse_signed_buffer
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int convert_tag_object(struct repository *repo,\n\t\t\t      struct
      strbuf *out,\n\t\t\t      const struct git_hash_algo *from,\n\t\t\t      const
      struct git_hash_algo *to,\n\t\t\t      const char *buffer, size_t size)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/object-file-convert.c:166,1
    - Dst: error
      Src: /src/git/object-file-convert.c:168,1
    - Dst: _
      Src: /src/git/object-file-convert.c:168,1
    - Dst: memcmp
      Src: /src/git/object-file-convert.c:170,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/object-file-convert.c:173,1
    - Dst: error
      Src: /src/git/object-file-convert.c:175,1
    - Dst: _
      Src: /src/git/object-file-convert.c:175,1
    - Dst: repo_oid_to_algop
      Src: /src/git/object-file-convert.c:177,1
    - Dst: error
      Src: /src/git/object-file-convert.c:178,1
    - Dst: _
      Src: /src/git/object-file-convert.c:178,1
    - Dst: oid_to_hex
      Src: /src/git/object-file-convert.c:179,1
    - Dst: strbuf_addf
      Src: /src/git/object-file-convert.c:180,1
    - Dst: oid_to_hex
      Src: /src/git/object-file-convert.c:180,1
    - Dst: memcmp
      Src: /src/git/object-file-convert.c:182,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/object-file-convert.c:185,1
    - Dst: error
      Src: /src/git/object-file-convert.c:187,1
    - Dst: _
      Src: /src/git/object-file-convert.c:187,1
    - Dst: repo_oid_to_algop
      Src: /src/git/object-file-convert.c:189,1
    - Dst: error
      Src: /src/git/object-file-convert.c:190,1
    - Dst: _
      Src: /src/git/object-file-convert.c:190,1
    - Dst: oid_to_hex
      Src: /src/git/object-file-convert.c:191,1
    - Dst: strbuf_addf
      Src: /src/git/object-file-convert.c:193,1
    - Dst: oid_to_hex
      Src: /src/git/object-file-convert.c:193,1
    - Dst: memcmp
      Src: /src/git/object-file-convert.c:195,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:200,1
    - Dst: memchr
      Src: /src/git/object-file-convert.c:204,1
    - Dst: strbuf_release
      Src: /src/git/object-file-convert.c:206,1
    - Dst: error
      Src: /src/git/object-file-convert.c:207,1
    - Dst: _
      Src: /src/git/object-file-convert.c:207,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:209,1
    - Dst: convert_tag_object
      Src: /src/git/object-file-convert.c:214,1
    - Dst: strbuf_release
      Src: /src/git/object-file-convert.c:215,1
    - Dst: strbuf_release
      Src: /src/git/object-file-convert.c:216,1
    - Dst: strbuf_addstr
      Src: /src/git/object-file-convert.c:221,1
    - Dst: strbuf_add_lines
      Src: /src/git/object-file-convert.c:222,1
    - Dst: strbuf_release
      Src: /src/git/object-file-convert.c:223,1
    - Dst: strbuf_release
      Src: /src/git/object-file-convert.c:224,1
    - Dst: memcmp
      Src: /src/git/object-file-convert.c:226,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:227,1
    - Dst: memcmp
      Src: /src/git/object-file-convert.c:228,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:229,1
    - Dst: memcmp
      Src: /src/git/object-file-convert.c:230,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:231,1
    - Dst: memcmp
      Src: /src/git/object-file-convert.c:232,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:233,1
    - Dst: memchr
      Src: /src/git/object-file-convert.c:241,1
    - Dst: error
      Src: /src/git/object-file-convert.c:243,1
    - Dst: _
      Src: /src/git/object-file-convert.c:243,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:244,1
    - Dst: strbuf_add
      Src: /src/git/object-file-convert.c:249,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 64
    argCount: 6
    argNames:
    - repo
    - out
    - from
    - to
    - buffer
    - size
    argTypes:
    - struct repository*
    - struct strbuf*
    - struct git_hash_algo*
    - struct git_hash_algo*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 150
    functionDepth: 7
    functionLinenumber: 150
    functionLinenumberEnd: 251
    functionName: convert_commit_object
    functionSourceFile: /src/git/object-file-convert.c
    functionUses: 0
    functionsReached:
    - error
    - memchr
    - oid_to_hex
    - strbuf_release
    - convert_tag_object
    - parse_oid_hex_algop
    - strbuf_addf
    - strbuf_add_lines
    - strbuf_addstr
    - _
    - repo_oid_to_algop
    - strbuf_add
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int convert_commit_object(struct repository *repo,\n\t\t\t\t struct
      strbuf *out,\n\t\t\t\t const struct git_hash_algo *from,\n\t\t\t\t const struct
      git_hash_algo *to,\n\t\t\t\t const char *buffer, size_t size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/object-file-convert.c:265,1
    - Dst: convert_commit_object
      Src: /src/git/object-file-convert.c:269,1
    - Dst: convert_tree_object
      Src: /src/git/object-file-convert.c:272,1
    - Dst: convert_tag_object
      Src: /src/git/object-file-convert.c:275,1
    - Dst: strbuf_release
      Src: /src/git/object-file-convert.c:285,1
    - Dst: die
      Src: /src/git/object-file-convert.c:288,1
    - Dst: _
      Src: /src/git/object-file-convert.c:288,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 8
    argNames:
    - repo
    - outbuf
    - from
    - to
    - buf
    - len
    - type
    - gentle
    argTypes:
    - struct repository*
    - struct strbuf*
    - struct git_hash_algo*
    - struct git_hash_algo*
    - void*
    - size_t
    - enum object_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 253
    functionDepth: 8
    functionLinenumber: 253
    functionLinenumberEnd: 290
    functionName: convert_object_file
    functionSourceFile: /src/git/object-file-convert.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - convert_tree_object
    - convert_commit_object
    - die
    - _
    - convert_tag_object
    - BUG
    linkageType: ''
    returnType: int
    signature: "int convert_object_file(struct repository *repo,\n\t\t\tstruct strbuf
      *outbuf,\n\t\t\tconst struct git_hash_algo *from,\n\t\t\tconst struct git_hash_algo
      *to,\n\t\t\tconst void *buf, size_t len,\n\t\t\tenum object_type type,\n\t\t\tint
      gentle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: hashfile_total
    functionSourceFile: /src/git/csum-file.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: off_t
    signature: off_t hashfile_total(struct hashfile *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite
      Src: /src/git/csum-file.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: hashwrite_u8
    functionSourceFile: /src/git/csum-file.h
    functionUses: 1
    functionsReached:
    - hashwrite
    linkageType: ''
    returnType: void
    signature: void hashwrite_u8(struct hashfile *f, uint8_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/git/csum-file.h:103,1
    - Dst: hashwrite
      Src: /src/git/csum-file.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: hashwrite_be32
    functionSourceFile: /src/git/csum-file.h
    functionUses: 6
    functionsReached:
    - hashwrite
    - htonl
    linkageType: ''
    returnType: void
    signature: void hashwrite_be32(struct hashfile *f, uint32_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonll
      Src: /src/git/csum-file.h:109,1
    - Dst: hashwrite
      Src: /src/git/csum-file.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: hashwrite_be64
    functionSourceFile: /src/git/csum-file.h
    functionUses: 3
    functionsReached:
    - hashwrite
    - htonll
    linkageType: ''
    returnType: size_t
    signature: size_t hashwrite_be64(struct hashfile *f, uint64_t data)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/remote-curl.c:66,1
    - Dst: strtol
      Src: /src/git/remote-curl.c:68,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:74,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:75,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:77,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:83,1
    - Dst: strtoul
      Src: /src/git/remote-curl.c:85,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:91,1
    - Dst: xstrdup
      Src: /src/git/remote-curl.c:92,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:95,1
    - Dst: string_list_append
      Src: /src/git/remote-curl.c:96,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:99,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:100,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:102,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:108,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:109,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:111,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:117,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:118,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:120,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:126,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:127,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:129,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:135,1
    - Dst: strbuf_addstr
      Src: /src/git/remote-curl.c:137,1
    - Dst: strbuf_addstr
      Src: /src/git/remote-curl.c:139,1
    - Dst: unquote_c_style
      Src: /src/git/remote-curl.c:140,1
    - Dst: string_list_append
      Src: /src/git/remote-curl.c:142,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:143,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:145,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:146,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:148,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:153,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:154,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:156,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:161,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:162,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:164,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:169,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:170,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:172,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:174,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:179,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:180,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:182,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:187,1
    - Dst: string_list_append
      Src: /src/git/remote-curl.c:189,1
    - Dst: unquote_c_style
      Src: /src/git/remote-curl.c:192,1
    - Dst: die
      Src: /src/git/remote-curl.c:193,1
    - Dst: _
      Src: /src/git/remote-curl.c:193,1
    - Dst: string_list_append_nodup
      Src: /src/git/remote-curl.c:194,1
    - Dst: strbuf_detach
      Src: /src/git/remote-curl.c:195,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:198,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:199,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:201,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:203,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:208,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:211,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:214,1
    - Dst: xstrdup
      Src: /src/git/remote-curl.c:215,1
    - Dst: strncmp
      Src: /src/git/remote-curl.c:217,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:219,1
    - Dst: die
      Src: /src/git/remote-curl.c:220,1
    - Dst: _
      Src: /src/git/remote-curl.c:220,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 152
    argCount: 3
    argNames:
    - name
    - namelen
    - value
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 225
    functionName: set_option
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - die
    - string_list_append_nodup
    - _
    - strtol
    - unquote_c_style
    - strbuf_detach
    - string_list_append
    - strcmp
    - strbuf_addstr
    - strncmp
    - xstrdup
    - strtoul
    linkageType: ''
    returnType: int
    signature: int set_option(const char *name, size_t namelen, const char *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_init
      Src: /src/git/remote-curl.c:244,1
    - Dst: discover_version
      Src: /src/git/remote-curl.c:249,1
    - Dst: get_remote_heads
      Src: /src/git/remote-curl.c:261,1
    - Dst: BUG
      Src: /src/git/remote-curl.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - heads
    - for_push
    argTypes:
    - struct discovery*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 270
    functionName: parse_git_refs
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - BUG
    - get_remote_heads
    - discover_version
    - packet_reader_init
    linkageType: ''
    returnType: struct ref
    signature: struct ref *parse_git_refs(struct discovery *heads, int for_push)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/remote-curl.c:279,1
    - Dst: hash_algo_by_length
      Src: /src/git/remote-curl.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - heads
    argTypes:
    - struct discovery*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 294
    functionName: detect_hash_algo
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - memchr
    - hash_algo_by_length
    linkageType: ''
    returnType: struct git_hash_algo
    signature: struct git_hash_algo *detect_hash_algo(struct discovery *heads)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: detect_hash_algo
      Src: /src/git/remote-curl.c:306,1
    - Dst: die
      Src: /src/git/remote-curl.c:308,1
    - Dst: transport_anonymize_url
      Src: /src/git/remote-curl.c:310,1
    - Dst: repo_set_hash_algo
      Src: /src/git/remote-curl.c:316,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/remote-curl.c:316,1
    - Dst: die
      Src: /src/git/remote-curl.c:329,1
    - Dst: _
      Src: /src/git/remote-curl.c:329,1
    - Dst: transport_anonymize_url
      Src: /src/git/remote-curl.c:330,1
    - Dst: alloc_ref
      Src: /src/git/remote-curl.c:333,1
    - Dst: get_oid_hex_algop
      Src: /src/git/remote-curl.c:334,1
    - Dst: alloc_ref
      Src: /src/git/remote-curl.c:345,1
    - Dst: http_fetch_ref
      Src: /src/git/remote-curl.c:346,1
    - Dst: resolve_remote_symref
      Src: /src/git/remote-curl.c:347,1
    - Dst: free_one_ref
      Src: /src/git/remote-curl.c:351,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - heads
    argTypes:
    - struct discovery*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 296
    functionDepth: 10
    functionLinenumber: 296
    functionLinenumberEnd: 355
    functionName: parse_info_refs
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - transport_anonymize_url
    - die
    - free_one_ref
    - get_oid_hex_algop
    - resolve_remote_symref
    - detect_hash_algo
    - http_fetch_ref
    - _
    - repo_set_hash_algo
    - alloc_ref
    - hash_algo_by_ptr
    linkageType: ''
    returnType: struct ref
    signature: struct ref *parse_info_refs(struct discovery *heads)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/remote-curl.c:362,1
    - Dst: free
      Src: /src/git/remote-curl.c:363,1
    - Dst: free_refs
      Src: /src/git/remote-curl.c:364,1
    - Dst: free
      Src: /src/git/remote-curl.c:365,1
    - Dst: free
      Src: /src/git/remote-curl.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct discovery*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 368
    functionName: free_discovery
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - free_refs
    - free
    linkageType: ''
    returnType: void
    signature: void free_discovery(struct discovery *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/remote-curl.c:379,1
    - Dst: strbuf_reencode
      Src: /src/git/remote-curl.c:382,1
    - Dst: get_log_output_encoding
      Src: /src/git/remote-curl.c:382,1
    - Dst: strbuf_trim
      Src: /src/git/remote-curl.c:384,1
    - Dst: strchrnul
      Src: /src/git/remote-curl.c:390,1
    - Dst: fprintf
      Src: /src/git/remote-curl.c:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - type
    - charset
    - msg
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 370
    functionDepth: 5
    functionLinenumber: 370
    functionLinenumberEnd: 395
    functionName: show_http_message
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - strbuf_reencode
    - strbuf_trim
    - get_log_output_encoding
    - strcmp
    - strchrnul
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int show_http_message(struct strbuf *type, struct strbuf *charset,\n\t\t\t
      \    struct strbuf *msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/remote-curl.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - version
    - header
    argTypes:
    - enum protocol_version
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 408
    functionName: get_protocol_http_header
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    linkageType: ''
    returnType: int
    signature: "int get_protocol_http_header(enum protocol_version version,\n\t\t\t\t
      \   struct strbuf *header)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/remote-curl.c:421,1
    - Dst: skip_prefix
      Src: /src/git/remote-curl.c:422,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:423,1
    - Dst: packet_reader_init
      Src: /src/git/remote-curl.c:426,1
    - Dst: packet_reader_read
      Src: /src/git/remote-curl.c:429,1
    - Dst: die
      Src: /src/git/remote-curl.c:430,1
    - Dst: _
      Src: /src/git/remote-curl.c:430,1
    - Dst: skip_prefix
      Src: /src/git/remote-curl.c:432,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:432,1
    - Dst: packet_reader_read
      Src: /src/git/remote-curl.c:439,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:453,1
    - Dst: die
      Src: /src/git/remote-curl.c:461,1
    - Dst: _
      Src: /src/git/remote-curl.c:461,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - d
    - service
    - type
    argTypes:
    - struct discovery*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 463
    functionName: check_smart_http
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - die
    - packet_reader_init
    - strcmp
    - skip_prefix
    - packet_reader_read
    - _
    linkageType: ''
    returnType: void
    signature: "void check_smart_http(struct discovery *d, const char *service,\n\t\t\t
      \    struct strbuf *type)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: get_protocol_version_config
      Src: /src/git/remote-curl.c:477,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:479,1
    - Dst: free_discovery
      Src: /src/git/remote-curl.c:481,1
    - Dst: strbuf_addf
      Src: /src/git/remote-curl.c:483,1
    - Dst: starts_with
      Src: /src/git/remote-curl.c:484,1
    - Dst: starts_with
      Src: /src/git/remote-curl.c:484,1
    - Dst: git_env_bool
      Src: /src/git/remote-curl.c:485,1
    - Dst: strchr
      Src: /src/git/remote-curl.c:487,1
    - Dst: strbuf_addch
      Src: /src/git/remote-curl.c:488,1
    - Dst: strbuf_addch
      Src: /src/git/remote-curl.c:490,1
    - Dst: strbuf_addf
      Src: /src/git/remote-curl.c:491,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:500,1
    - Dst: get_protocol_http_header
      Src: /src/git/remote-curl.c:504,1
    - Dst: string_list_append
      Src: /src/git/remote-curl.c:505,1
    - Dst: memset
      Src: /src/git/remote-curl.c:507,1
    - Dst: http_get_strbuf
      Src: /src/git/remote-curl.c:516,1
    - Dst: show_http_message
      Src: /src/git/remote-curl.c:521,1
    - Dst: die
      Src: /src/git/remote-curl.c:522,1
    - Dst: _
      Src: /src/git/remote-curl.c:522,1
    - Dst: transport_anonymize_url
      Src: /src/git/remote-curl.c:523,1
    - Dst: show_http_message
      Src: /src/git/remote-curl.c:525,1
    - Dst: die
      Src: /src/git/remote-curl.c:526,1
    - Dst: _
      Src: /src/git/remote-curl.c:526,1
    - Dst: transport_anonymize_url
      Src: /src/git/remote-curl.c:527,1
    - Dst: show_http_message
      Src: /src/git/remote-curl.c:529,1
    - Dst: die
      Src: /src/git/remote-curl.c:530,1
    - Dst: _
      Src: /src/git/remote-curl.c:530,1
    - Dst: transport_anonymize_url
      Src: /src/git/remote-curl.c:531,1
    - Dst: show_http_message
      Src: /src/git/remote-curl.c:534,1
    - Dst: die
      Src: /src/git/remote-curl.c:535,1
    - Dst: _
      Src: /src/git/remote-curl.c:535,1
    - Dst: transport_anonymize_url
      Src: /src/git/remote-curl.c:536,1
    - Dst: show_http_message
      Src: /src/git/remote-curl.c:539,1
    - Dst: die
      Src: /src/git/remote-curl.c:540,1
    - Dst: _
      Src: /src/git/remote-curl.c:540,1
    - Dst: transport_anonymize_url
      Src: /src/git/remote-curl.c:541,1
    - Dst: show_http_message
      Src: /src/git/remote-curl.c:544,1
    - Dst: die
      Src: /src/git/remote-curl.c:545,1
    - Dst: _
      Src: /src/git/remote-curl.c:545,1
    - Dst: transport_anonymize_url
      Src: /src/git/remote-curl.c:546,1
    - Dst: starts_with
      Src: /src/git/remote-curl.c:549,1
    - Dst: transport_anonymize_url
      Src: /src/git/remote-curl.c:550,1
    - Dst: warning
      Src: /src/git/remote-curl.c:551,1
    - Dst: _
      Src: /src/git/remote-curl.c:551,1
    - Dst: free
      Src: /src/git/remote-curl.c:552,1
    - Dst: xcalloc
      Src: /src/git/remote-curl.c:555,1
    - Dst: xstrdup
      Src: /src/git/remote-curl.c:556,1
    - Dst: strbuf_detach
      Src: /src/git/remote-curl.c:557,1
    - Dst: check_smart_http
      Src: /src/git/remote-curl.c:561,1
    - Dst: parse_git_refs
      Src: /src/git/remote-curl.c:564,1
    - Dst: parse_info_refs
      Src: /src/git/remote-curl.c:566,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:568,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:569,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:570,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:571,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:572,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:573,1
    - Dst: string_list_clear
      Src: /src/git/remote-curl.c:574,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 2
    argNames:
    - service
    - for_push
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 465
    functionDepth: 11
    functionLinenumber: 465
    functionLinenumberEnd: 577
    functionName: discover_refs
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - show_http_message
    - strbuf_addf
    - strchr
    - strcmp
    - free
    - transport_anonymize_url
    - strbuf_release
    - git_env_bool
    - free_discovery
    - die
    - xcalloc
    - check_smart_http
    - string_list_clear
    - memset
    - get_protocol_version_config
    - get_protocol_http_header
    - strbuf_detach
    - string_list_append
    - _
    - warning
    - xstrdup
    - parse_git_refs
    - starts_with
    - strbuf_addch
    - parse_info_refs
    - http_get_strbuf
    linkageType: ''
    returnType: struct discovery
    signature: struct discovery *discover_refs(const char *service, int for_push)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: discover_refs
      Src: /src/git/remote-curl.c:584,1
    - Dst: discover_refs
      Src: /src/git/remote-curl.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - for_push
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 579
    functionDepth: 12
    functionLinenumber: 579
    functionLinenumberEnd: 589
    functionName: get_refs
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - discover_refs
    linkageType: ''
    returnType: struct ref
    signature: struct ref *get_refs(int for_push)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/remote-curl.c:595,1
    - Dst: repo_set_hash_algo
      Src: /src/git/remote-curl.c:596,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/remote-curl.c:597,1
    - Dst: printf
      Src: /src/git/remote-curl.c:601,1
    - Dst: printf
      Src: /src/git/remote-curl.c:603,1
    - Dst: hash_to_hex_algop
      Src: /src/git/remote-curl.c:603,1
    - Dst: printf
      Src: /src/git/remote-curl.c:607,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - refs
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 609
    functionName: output_refs
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - fflush
    - repo_set_hash_algo
    - hash_to_hex_algop
    - printf
    - hash_algo_by_ptr
    linkageType: ''
    returnType: void
    signature: void output_refs(struct ref *refs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: packet_read_with_status
      Src: /src/git/remote-curl.c:674,1
    - Dst: die
      Src: /src/git/remote-curl.c:685,1
    - Dst: _
      Src: /src/git/remote-curl.c:685,1
    - Dst: set_packet_header
      Src: /src/git/remote-curl.c:688,1
    - Dst: memcpy
      Src: /src/git/remote-curl.c:691,1
    - Dst: memcpy
      Src: /src/git/remote-curl.c:694,1
    - Dst: die
      Src: /src/git/remote-curl.c:697,1
    - Dst: _
      Src: /src/git/remote-curl.c:697,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - rpc
    - options
    - appended
    - status
    argTypes:
    - struct rpc_state*
    - int
    - size_t*
    - enum packet_read_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 702
    functionName: rpc_read_from_out
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - set_packet_header
    - die
    - memcpy
    - packet_read_with_status
    - _
    linkageType: ''
    returnType: int
    signature: "int rpc_read_from_out(struct rpc_state *rpc, int options,\n\t\t\t
      \    size_t *appended,\n\t\t\t     enum packet_read_status *status)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rpc_read_from_out
      Src: /src/git/remote-curl.c:717,1
    - Dst: BUG
      Src: /src/git/remote-curl.c:718,1
    - Dst: memcpy
      Src: /src/git/remote-curl.c:748,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - ptr
    - eltsize
    - nmemb
    - buffer_
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 751
    functionName: rpc_out
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - BUG
    - memcpy
    - rpc_read_from_out
    linkageType: ''
    returnType: size_t
    signature: "size_t rpc_out(void *ptr, size_t eltsize,\n\t\tsize_t nmemb, void
      *buffer_)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/remote-curl.c:758,1
    - Dst: error
      Src: /src/git/remote-curl.c:762,1
    - Dst: error
      Src: /src/git/remote-curl.c:768,1
    - Dst: _
      Src: /src/git/remote-curl.c:768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - clientp
    - offset
    - origin
    argTypes:
    - void*
    - curl_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 770
    functionName: rpc_seek
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - error
    - BUG
    - _
    linkageType: ''
    returnType: int
    signature: int rpc_seek(void *clientp, curl_off_t offset, int origin)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/remote-curl.c:785,1
    - Dst: packet_length
      Src: /src/git/remote-curl.c:791,1
    - Dst: die
      Src: /src/git/remote-curl.c:794,1
    - Dst: _
      Src: /src/git/remote-curl.c:794,1
    - Dst: die
      Src: /src/git/remote-curl.c:796,1
    - Dst: _
      Src: /src/git/remote-curl.c:796,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - state
    - ptr
    - size
    argTypes:
    - struct check_pktline_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 815
    functionName: check_pktline
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - packet_length
    - memcpy
    linkageType: ''
    returnType: void
    signature: void check_pktline(struct check_pktline_state *state, const char *ptr,
      size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/git/remote-curl.c:835,1
    - Dst: check_pktline
      Src: /src/git/remote-curl.c:843,1
    - Dst: write_or_die
      Src: /src/git/remote-curl.c:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ptr
    - eltsize
    - nmemb
    - buffer_
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 828
    functionDepth: 4
    functionLinenumber: 828
    functionLinenumberEnd: 846
    functionName: rpc_in
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - curl_easy_getinfo
    - write_or_die
    - check_pktline
    linkageType: ''
    returnType: size_t
    signature: "size_t rpc_in(char *ptr, size_t eltsize,\n\t\tsize_t nmemb, void *buffer_)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: run_one_slot
      Src: /src/git/remote-curl.c:857,1
    - Dst: strbuf_addf
      Src: /src/git/remote-curl.c:862,1
    - Dst: strbuf_addch
      Src: /src/git/remote-curl.c:865,1
    - Dst: strbuf_addf
      Src: /src/git/remote-curl.c:866,1
    - Dst: strbuf_addch
      Src: /src/git/remote-curl.c:868,1
    - Dst: strbuf_addstr
      Src: /src/git/remote-curl.c:869,1
    - Dst: error
      Src: /src/git/remote-curl.c:872,1
    - Dst: _
      Src: /src/git/remote-curl.c:872,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:873,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - slot
    - results
    argTypes:
    - struct active_request_slot*
    - struct slot_results*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 848
    functionDepth: 6
    functionLinenumber: 848
    functionLinenumberEnd: 877
    functionName: run_slot
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - strbuf_addf
    - strbuf_addch
    - strbuf_addstr
    - _
    - run_one_slot
    linkageType: ''
    returnType: int
    signature: "int run_slot(struct active_request_slot *slot,\n\t\t    struct slot_results
      *results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_copy_default_headers
      Src: /src/git/remote-curl.c:882,1
    - Dst: get_active_slot
      Src: /src/git/remote-curl.c:886,1
    - Dst: curl_slist_append
      Src: /src/git/remote-curl.c:888,1
    - Dst: curl_slist_append
      Src: /src/git/remote-curl.c:889,1
    - Dst: http_append_auth_header
      Src: /src/git/remote-curl.c:890,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:892,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:893,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:894,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:895,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:896,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:897,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:898,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:899,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:900,1
    - Dst: run_slot
      Src: /src/git/remote-curl.c:902,1
    - Dst: curl_slist_free_all
      Src: /src/git/remote-curl.c:904,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - rpc
    - results
    argTypes:
    - struct rpc_state*
    - struct slot_results*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 879
    functionDepth: 7
    functionLinenumber: 879
    functionLinenumberEnd: 907
    functionName: probe_rpc
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - run_slot
    - http_copy_default_headers
    - curl_slist_free_all
    - curl_slist_append
    - http_append_auth_header
    - get_active_slot
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int probe_rpc(struct rpc_state *rpc, struct slot_results *results)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: rpc_read_from_out
      Src: /src/git/remote-curl.c:933,1
    - Dst: probe_rpc
      Src: /src/git/remote-curl.c:947,1
    - Dst: http_reauth_prepare
      Src: /src/git/remote-curl.c:949,1
    - Dst: http_copy_default_headers
      Src: /src/git/remote-curl.c:959,1
    - Dst: curl_slist_append
      Src: /src/git/remote-curl.c:960,1
    - Dst: curl_slist_append
      Src: /src/git/remote-curl.c:961,1
    - Dst: curl_slist_append
      Src: /src/git/remote-curl.c:962,1
    - Dst: http_append_auth_header
      Src: /src/git/remote-curl.c:965,1
    - Dst: curl_slist_append
      Src: /src/git/remote-curl.c:969,1
    - Dst: curl_slist_append
      Src: /src/git/remote-curl.c:973,1
    - Dst: get_active_slot
      Src: /src/git/remote-curl.c:975,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:977,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:978,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:979,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:980,1
    - Dst: curl_slist_append
      Src: /src/git/remote-curl.c:987,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:990,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:991,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:992,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:993,1
    - Dst: fprintf
      Src: /src/git/remote-curl.c:995,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:996,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:1005,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:1006,1
    - Dst: cast_size_t_to_curl_off_t
      Src: /src/git/remote-curl.c:1006,1
    - Dst: git_deflate_init_gzip
      Src: /src/git/remote-curl.c:1016,1
    - Dst: git_deflate_bound
      Src: /src/git/remote-curl.c:1017,1
    - Dst: xmalloc
      Src: /src/git/remote-curl.c:1018,1
    - Dst: git_deflate
      Src: /src/git/remote-curl.c:1025,1
    - Dst: die
      Src: /src/git/remote-curl.c:1027,1
    - Dst: _
      Src: /src/git/remote-curl.c:1027,1
    - Dst: git_deflate_end_gently
      Src: /src/git/remote-curl.c:1029,1
    - Dst: die
      Src: /src/git/remote-curl.c:1031,1
    - Dst: _
      Src: /src/git/remote-curl.c:1031,1
    - Dst: curl_slist_append
      Src: /src/git/remote-curl.c:1035,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:1036,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:1037,1
    - Dst: cast_size_t_to_curl_off_t
      Src: /src/git/remote-curl.c:1037,1
    - Dst: fprintf
      Src: /src/git/remote-curl.c:1040,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:1043,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:1049,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:1050,1
    - Dst: cast_size_t_to_curl_off_t
      Src: /src/git/remote-curl.c:1050,1
    - Dst: fprintf
      Src: /src/git/remote-curl.c:1052,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:1054,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:1058,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:1059,1
    - Dst: memset
      Src: /src/git/remote-curl.c:1063,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:1064,1
    - Dst: curl_easy_setopt
      Src: /src/git/remote-curl.c:1065,1
    - Dst: run_slot
      Src: /src/git/remote-curl.c:1069,1
    - Dst: http_reauth_prepare
      Src: /src/git/remote-curl.c:1071,1
    - Dst: curl_slist_free_all
      Src: /src/git/remote-curl.c:1072,1
    - Dst: error
      Src: /src/git/remote-curl.c:1082,1
    - Dst: _
      Src: /src/git/remote-curl.c:1082,1
    - Dst: error
      Src: /src/git/remote-curl.c:1084,1
    - Dst: _
      Src: /src/git/remote-curl.c:1084,1
    - Dst: packet_response_end
      Src: /src/git/remote-curl.c:1087,1
    - Dst: curl_slist_free_all
      Src: /src/git/remote-curl.c:1089,1
    - Dst: free
      Src: /src/git/remote-curl.c:1090,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 114
    argCount: 3
    argNames:
    - rpc
    - stateless_connect
    - flush_received
    argTypes:
    - struct rpc_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 913
    functionDepth: 8
    functionLinenumber: 913
    functionLinenumberEnd: 1092
    functionName: post_rpc
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - git_deflate_bound
    - xmalloc
    - git_deflate_init_gzip
    - curl_slist_free_all
    - free
    - run_slot
    - error
    - git_deflate
    - http_copy_default_headers
    - die
    - http_reauth_prepare
    - packet_response_end
    - http_append_auth_header
    - curl_easy_setopt
    - git_deflate_end_gently
    - rpc_read_from_out
    - memset
    - fflush
    - cast_size_t_to_curl_off_t
    - _
    - probe_rpc
    - curl_slist_append
    - fprintf
    - get_active_slot
    linkageType: ''
    returnType: int
    signature: int post_rpc(struct rpc_state *rpc, int stateless_connect, int flush_received)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushv
      Src: /src/git/remote-curl.c:1106,1
    - Dst: start_command
      Src: /src/git/remote-curl.c:1107,1
    - Dst: exit
      Src: /src/git/remote-curl.c:1108,1
    - Dst: write_or_die
      Src: /src/git/remote-curl.c:1109,1
    - Dst: write_or_die
      Src: /src/git/remote-curl.c:1111,1
    - Dst: xmalloc
      Src: /src/git/remote-curl.c:1114,1
    - Dst: strbuf_addf
      Src: /src/git/remote-curl.c:1118,1
    - Dst: strbuf_detach
      Src: /src/git/remote-curl.c:1119,1
    - Dst: xstrdup_or_null
      Src: /src/git/remote-curl.c:1121,1
    - Dst: http_get_accept_language_header
      Src: /src/git/remote-curl.c:1121,1
    - Dst: strbuf_addf
      Src: /src/git/remote-curl.c:1123,1
    - Dst: strbuf_detach
      Src: /src/git/remote-curl.c:1124,1
    - Dst: strbuf_addf
      Src: /src/git/remote-curl.c:1126,1
    - Dst: strbuf_detach
      Src: /src/git/remote-curl.c:1127,1
    - Dst: get_protocol_http_header
      Src: /src/git/remote-curl.c:1129,1
    - Dst: strbuf_detach
      Src: /src/git/remote-curl.c:1130,1
    - Dst: packet_read
      Src: /src/git/remote-curl.c:1135,1
    - Dst: post_rpc
      Src: /src/git/remote-curl.c:1140,1
    - Dst: close
      Src: /src/git/remote-curl.c:1143,1
    - Dst: strbuf_read
      Src: /src/git/remote-curl.c:1146,1
    - Dst: xread
      Src: /src/git/remote-curl.c:1150,1
    - Dst: close
      Src: /src/git/remote-curl.c:1154,1
    - Dst: finish_command
      Src: /src/git/remote-curl.c:1157,1
    - Dst: free
      Src: /src/git/remote-curl.c:1158,1
    - Dst: free
      Src: /src/git/remote-curl.c:1159,1
    - Dst: free
      Src: /src/git/remote-curl.c:1160,1
    - Dst: free
      Src: /src/git/remote-curl.c:1161,1
    - Dst: free
      Src: /src/git/remote-curl.c:1162,1
    - Dst: free
      Src: /src/git/remote-curl.c:1163,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:1164,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 5
    argNames:
    - rpc
    - heads
    - client_argv
    - preamble
    - rpc_result
    argTypes:
    - struct rpc_state*
    - struct discovery*
    - char**
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1094
    functionDepth: 9
    functionLinenumber: 1094
    functionLinenumberEnd: 1166
    functionName: rpc_service
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - strbuf_release
    - strbuf_read
    - xstrdup_or_null
    - finish_command
    - strvec_pushv
    - exit
    - strbuf_addf
    - get_protocol_http_header
    - packet_read
    - xmalloc
    - xread
    - strbuf_detach
    - http_get_accept_language_header
    - free
    - close
    - post_rpc
    - start_command
    linkageType: ''
    returnType: int
    signature: "int rpc_service(struct rpc_state *rpc, struct discovery *heads,\n\t\t
      \      const char **client_argv, const struct strbuf *preamble,\n\t\t       struct
      strbuf *rpc_result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/remote-curl.c:1174,1
    - Dst: die
      Src: /src/git/remote-curl.c:1176,1
    - Dst: _
      Src: /src/git/remote-curl.c:1176,1
    - Dst: xstrdup
      Src: /src/git/remote-curl.c:1178,1
    - Dst: oid_to_hex
      Src: /src/git/remote-curl.c:1178,1
    - Dst: get_http_walker
      Src: /src/git/remote-curl.c:1180,1
    - Dst: walker_fetch
      Src: /src/git/remote-curl.c:1184,1
    - Dst: walker_free
      Src: /src/git/remote-curl.c:1185,1
    - Dst: free
      Src: /src/git/remote-curl.c:1188,1
    - Dst: free
      Src: /src/git/remote-curl.c:1189,1
    - Dst: error
      Src: /src/git/remote-curl.c:1191,1
    - Dst: _
      Src: /src/git/remote-curl.c:1191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - nr_heads
    - to_fetch
    argTypes:
    - int
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1168
    functionDepth: 3
    functionLinenumber: 1168
    functionLinenumberEnd: 1192
    functionName: fetch_dumb
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - die
    - walker_fetch
    - get_http_walker
    - ALLOC_ARRAY
    - free
    - _
    - walker_free
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int fetch_dumb(int nr_heads, struct ref **to_fetch)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/remote-curl.c:1203,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1206,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1208,1
    - Dst: strvec_pushl
      Src: /src/git/remote-curl.c:1210,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1212,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1214,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1216,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1218,1
    - Dst: strvec_pushf
      Src: /src/git/remote-curl.c:1220,1
    - Dst: strvec_pushf
      Src: /src/git/remote-curl.c:1222,1
    - Dst: strvec_pushf
      Src: /src/git/remote-curl.c:1224,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1227,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1229,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1231,1
    - Dst: strvec_pushf
      Src: /src/git/remote-curl.c:1233,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1234,1
    - Dst: die
      Src: /src/git/remote-curl.c:1239,1
    - Dst: _
      Src: /src/git/remote-curl.c:1239,1
    - Dst: packet_buf_write
      Src: /src/git/remote-curl.c:1240,1
    - Dst: oid_to_hex
      Src: /src/git/remote-curl.c:1241,1
    - Dst: packet_buf_flush
      Src: /src/git/remote-curl.c:1243,1
    - Dst: memset
      Src: /src/git/remote-curl.c:1245,1
    - Dst: rpc_service
      Src: /src/git/remote-curl.c:1249,1
    - Dst: write_or_die
      Src: /src/git/remote-curl.c:1251,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:1252,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:1253,1
    - Dst: strvec_clear
      Src: /src/git/remote-curl.c:1254,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - heads
    - nr_heads
    - to_fetch
    argTypes:
    - struct discovery*
    - int
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1194
    functionDepth: 10
    functionLinenumber: 1194
    functionLinenumberEnd: 1256
    functionName: fetch_git
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - memset
    - oid_to_hex
    - die
    - rpc_service
    - write_or_die
    - packet_buf_write
    - packet_buf_flush
    - strbuf_release
    - strvec_pushl
    - strvec_clear
    - _
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int fetch_git(struct discovery *heads,\n\tint nr_heads, struct ref
      **to_fetch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: discover_refs
      Src: /src/git/remote-curl.c:1260,1
    - Dst: fetch_git
      Src: /src/git/remote-curl.c:1262,1
    - Dst: fetch_dumb
      Src: /src/git/remote-curl.c:1264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nr_heads
    - to_fetch
    argTypes:
    - int
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1258
    functionDepth: 12
    functionLinenumber: 1258
    functionLinenumberEnd: 1265
    functionName: fetch
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 12
    functionsReached:
    - fetch_dumb
    - discover_refs
    - fetch_git
    linkageType: ''
    returnType: int
    signature: int fetch(int nr_heads, struct ref **to_fetch)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/remote-curl.c:1276,1
    - Dst: parse_oid_hex
      Src: /src/git/remote-curl.c:1282,1
    - Dst: die
      Src: /src/git/remote-curl.c:1283,1
    - Dst: _
      Src: /src/git/remote-curl.c:1283,1
    - Dst: die
      Src: /src/git/remote-curl.c:1289,1
    - Dst: _
      Src: /src/git/remote-curl.c:1289,1
    - Dst: alloc_ref
      Src: /src/git/remote-curl.c:1291,1
    - Dst: oidcpy
      Src: /src/git/remote-curl.c:1292,1
    - Dst: ALLOC_GROW
      Src: /src/git/remote-curl.c:1297,1
    - Dst: die
      Src: /src/git/remote-curl.c:1301,1
    - Dst: _
      Src: /src/git/remote-curl.c:1301,1
    - Dst: strbuf_reset
      Src: /src/git/remote-curl.c:1303,1
    - Dst: strbuf_getline_lf
      Src: /src/git/remote-curl.c:1304,1
    - Dst: fetch
      Src: /src/git/remote-curl.c:1310,1
    - Dst: exit
      Src: /src/git/remote-curl.c:1311,1
    - Dst: free_refs
      Src: /src/git/remote-curl.c:1312,1
    - Dst: free
      Src: /src/git/remote-curl.c:1313,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1315,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:1316,1
    - Dst: strbuf_reset
      Src: /src/git/remote-curl.c:1317,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1267
    functionDepth: 9
    functionLinenumber: 1267
    functionLinenumberEnd: 1318
    functionName: parse_fetch
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - strbuf_getline_lf
    - die
    - printf
    - oidcpy
    - strbuf_reset
    - exit
    - free_refs
    - parse_oid_hex
    - fflush
    - ALLOC_GROW
    - _
    - free
    - fetch
    - skip_prefix
    - alloc_ref
    linkageType: ''
    returnType: void
    signature: void parse_fetch(struct strbuf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/remote-curl.c:1326,1
    - Dst: die
      Src: /src/git/remote-curl.c:1329,1
    - Dst: _
      Src: /src/git/remote-curl.c:1329,1
    - Dst: strbuf_add
      Src: /src/git/remote-curl.c:1331,1
    - Dst: strbuf_addstr
      Src: /src/git/remote-curl.c:1332,1
    - Dst: http_get_file
      Src: /src/git/remote-curl.c:1334,1
    - Dst: die
      Src: /src/git/remote-curl.c:1335,1
    - Dst: _
      Src: /src/git/remote-curl.c:1335,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:1337,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:1338,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1339,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:1340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1320
    functionDepth: 9
    functionLinenumber: 1320
    functionLinenumberEnd: 1341
    functionName: parse_get
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - strchr
    - http_get_file
    - fflush
    - strbuf_addstr
    - _
    - printf
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void parse_get(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1349,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1350,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1352,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1354,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1355,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1357,1
    - Dst: run_command
      Src: /src/git/remote-curl.c:1359,1
    - Dst: die
      Src: /src/git/remote-curl.c:1360,1
    - Dst: _
      Src: /src/git/remote-curl.c:1360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - nr_spec
    - specs
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1343
    functionDepth: 8
    functionLinenumber: 1343
    functionLinenumberEnd: 1362
    functionName: push_dav
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - die
    - run_command
    - _
    linkageType: ''
    returnType: int
    signature: int push_dav(int nr_spec, const char **specs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strvec_init
      Src: /src/git/remote-curl.c:1373,1
    - Dst: strvec_pushl
      Src: /src/git/remote-curl.c:1374,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1378,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1380,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1382,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1384,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1386,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1388,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1390,1
    - Dst: strvec_pushf
      Src: /src/git/remote-curl.c:1392,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1394,1
    - Dst: for_each_string_list_item
      Src: /src/git/remote-curl.c:1395,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1396,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1397,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1400,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1402,1
    - Dst: packet_buf_write
      Src: /src/git/remote-curl.c:1404,1
    - Dst: packet_buf_flush
      Src: /src/git/remote-curl.c:1405,1
    - Dst: memset
      Src: /src/git/remote-curl.c:1407,1
    - Dst: rpc_service
      Src: /src/git/remote-curl.c:1410,1
    - Dst: write_or_die
      Src: /src/git/remote-curl.c:1412,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:1413,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:1414,1
    - Dst: strvec_clear
      Src: /src/git/remote-curl.c:1415,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - heads
    - nr_spec
    - specs
    argTypes:
    - struct discovery*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1364
    functionDepth: 10
    functionLinenumber: 1364
    functionLinenumberEnd: 1417
    functionName: push_git
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - for_each_string_list_item
    - memset
    - rpc_service
    - write_or_die
    - strbuf_release
    - packet_buf_write
    - packet_buf_flush
    - strvec_pushl
    - strvec_init
    - strvec_clear
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int push_git(struct discovery *heads, int nr_spec, const char **specs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: discover_refs
      Src: /src/git/remote-curl.c:1421,1
    - Dst: push_git
      Src: /src/git/remote-curl.c:1425,1
    - Dst: push_dav
      Src: /src/git/remote-curl.c:1427,1
    - Dst: free_discovery
      Src: /src/git/remote-curl.c:1428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nr_spec
    - specs
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1419
    functionDepth: 12
    functionLinenumber: 1419
    functionLinenumberEnd: 1430
    functionName: push
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 100
    functionsReached:
    - free_discovery
    - push_git
    - discover_refs
    - push_dav
    linkageType: ''
    returnType: int
    signature: int push(int nr_spec, const char **specs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/remote-curl.c:1439,1
    - Dst: strvec_push
      Src: /src/git/remote-curl.c:1440,1
    - Dst: die
      Src: /src/git/remote-curl.c:1442,1
    - Dst: _
      Src: /src/git/remote-curl.c:1442,1
    - Dst: strbuf_reset
      Src: /src/git/remote-curl.c:1444,1
    - Dst: strbuf_getline_lf
      Src: /src/git/remote-curl.c:1445,1
    - Dst: push
      Src: /src/git/remote-curl.c:1451,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1452,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:1453,1
    - Dst: exit
      Src: /src/git/remote-curl.c:1456,1
    - Dst: strvec_clear
      Src: /src/git/remote-curl.c:1459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1432
    functionDepth: 5
    functionLinenumber: 1432
    functionLinenumberEnd: 1460
    functionName: parse_push
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_getline_lf
    - die
    - strbuf_reset
    - exit
    - strvec_clear
    - fflush
    - push
    - _
    - skip_prefix
    - printf
    linkageType: ''
    returnType: void
    signature: void parse_push(struct strbuf *buf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/remote-curl.c:1479,1
    - Dst: discover_refs
      Src: /src/git/remote-curl.c:1480,1
    - Dst: discover_refs
      Src: /src/git/remote-curl.c:1482,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1484,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:1485,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1489,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:1490,1
    - Dst: http_get_accept_language_header
      Src: /src/git/remote-curl.c:1492,1
    - Dst: xstrfmt
      Src: /src/git/remote-curl.c:1494,1
    - Dst: xstrfmt
      Src: /src/git/remote-curl.c:1497,1
    - Dst: xstrfmt
      Src: /src/git/remote-curl.c:1498,1
    - Dst: xstrfmt
      Src: /src/git/remote-curl.c:1499,1
    - Dst: get_protocol_http_header
      Src: /src/git/remote-curl.c:1500,1
    - Dst: strbuf_detach
      Src: /src/git/remote-curl.c:1501,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:1504,1
    - Dst: xmalloc
      Src: /src/git/remote-curl.c:1506,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:1523,1
    - Dst: write_or_die
      Src: /src/git/remote-curl.c:1524,1
    - Dst: rpc_read_from_out
      Src: /src/git/remote-curl.c:1531,1
    - Dst: BUG
      Src: /src/git/remote-curl.c:1533,1
    - Dst: post_rpc
      Src: /src/git/remote-curl.c:1536,1
    - Dst: free
      Src: /src/git/remote-curl.c:1543,1
    - Dst: free
      Src: /src/git/remote-curl.c:1544,1
    - Dst: free
      Src: /src/git/remote-curl.c:1545,1
    - Dst: free
      Src: /src/git/remote-curl.c:1546,1
    - Dst: free
      Src: /src/git/remote-curl.c:1547,1
    - Dst: free
      Src: /src/git/remote-curl.c:1548,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:1549,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - service_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1462
    functionDepth: 12
    functionLinenumber: 1462
    functionLinenumberEnd: 1552
    functionName: stateless_connect
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - strbuf_release
    - post_rpc
    - xstrfmt
    - get_protocol_http_header
    - free
    - xmalloc
    - strcmp
    - fflush
    - http_get_accept_language_header
    - discover_refs
    - strbuf_detach
    - BUG
    - printf
    - rpc_read_from_out
    linkageType: ''
    returnType: int
    signature: int stateless_connect(const char *service_name)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory_gently
      Src: /src/git/remote-curl.c:1560,1
    - Dst: error
      Src: /src/git/remote-curl.c:1562,1
    - Dst: _
      Src: /src/git/remote-curl.c:1562,1
    - Dst: repo_set_hash_algo
      Src: /src/git/remote-curl.c:1571,1
    - Dst: isatty
      Src: /src/git/remote-curl.c:1574,1
    - Dst: string_list_init_dup
      Src: /src/git/remote-curl.c:1576,1
    - Dst: string_list_init_dup
      Src: /src/git/remote-curl.c:1577,1
    - Dst: trace2_cmd_name
      Src: /src/git/remote-curl.c:1584,1
    - Dst: remote_get
      Src: /src/git/remote-curl.c:1586,1
    - Dst: end_url_with_slash
      Src: /src/git/remote-curl.c:1589,1
    - Dst: end_url_with_slash
      Src: /src/git/remote-curl.c:1591,1
    - Dst: http_init
      Src: /src/git/remote-curl.c:1594,1
    - Dst: strbuf_getline_lf
      Src: /src/git/remote-curl.c:1599,1
    - Dst: ferror
      Src: /src/git/remote-curl.c:1600,1
    - Dst: error
      Src: /src/git/remote-curl.c:1601,1
    - Dst: _
      Src: /src/git/remote-curl.c:1601,1
    - Dst: starts_with
      Src: /src/git/remote-curl.c:1606,1
    - Dst: setup_git_directory_gently
      Src: /src/git/remote-curl.c:1608,1
    - Dst: die
      Src: /src/git/remote-curl.c:1610,1
    - Dst: _
      Src: /src/git/remote-curl.c:1610,1
    - Dst: parse_fetch
      Src: /src/git/remote-curl.c:1612,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:1614,1
    - Dst: starts_with
      Src: /src/git/remote-curl.c:1614,1
    - Dst: strstr
      Src: /src/git/remote-curl.c:1615,1
    - Dst: output_refs
      Src: /src/git/remote-curl.c:1616,1
    - Dst: get_refs
      Src: /src/git/remote-curl.c:1616,1
    - Dst: starts_with
      Src: /src/git/remote-curl.c:1618,1
    - Dst: parse_push
      Src: /src/git/remote-curl.c:1619,1
    - Dst: skip_prefix
      Src: /src/git/remote-curl.c:1621,1
    - Dst: strchrnul
      Src: /src/git/remote-curl.c:1622,1
    - Dst: set_option
      Src: /src/git/remote-curl.c:1631,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1633,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1635,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1637,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:1638,1
    - Dst: skip_prefix
      Src: /src/git/remote-curl.c:1640,1
    - Dst: parse_get
      Src: /src/git/remote-curl.c:1641,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:1642,1
    - Dst: strcmp
      Src: /src/git/remote-curl.c:1644,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1645,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1646,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1647,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1648,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1649,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1650,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1651,1
    - Dst: printf
      Src: /src/git/remote-curl.c:1652,1
    - Dst: fflush
      Src: /src/git/remote-curl.c:1653,1
    - Dst: skip_prefix
      Src: /src/git/remote-curl.c:1654,1
    - Dst: stateless_connect
      Src: /src/git/remote-curl.c:1655,1
    - Dst: error
      Src: /src/git/remote-curl.c:1658,1
    - Dst: _
      Src: /src/git/remote-curl.c:1658,1
    - Dst: strbuf_reset
      Src: /src/git/remote-curl.c:1661,1
    - Dst: http_cleanup
      Src: /src/git/remote-curl.c:1664,1
    - Dst: strbuf_release
      Src: /src/git/remote-curl.c:1667,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 88
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1554
    functionDepth: 15
    functionLinenumber: 1554
    functionLinenumberEnd: 1670
    functionName: cmd_main
    functionSourceFile: /src/git/remote-curl.c
    functionUses: 1
    functionsReached:
    - http_cleanup
    - remote_get
    - setup_git_directory_gently
    - strcmp
    - repo_set_hash_algo
    - string_list_init_dup
    - printf
    - error
    - strbuf_release
    - strbuf_getline_lf
    - die
    - strstr
    - get_refs
    - stateless_connect
    - trace2_cmd_name
    - parse_push
    - isatty
    - strchrnul
    - output_refs
    - http_init
    - fflush
    - _
    - parse_fetch
    - skip_prefix
    - ferror
    - strbuf_reset
    - starts_with
    - set_option
    - end_url_with_slash
    - parse_get
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: index_dir_exists
    functionSourceFile: /src/git/name-hash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: index_dir_exists(i, n, l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_tmp
      Src: /src/git/ls-refs.c:24,1
    - Dst: strcmp
      Src: /src/git/ls-refs.c:31,1
    - Dst: strcmp
      Src: /src/git/ls-refs.c:33,1
    - Dst: strcmp
      Src: /src/git/ls-refs.c:35,1
    - Dst: die
      Src: /src/git/ls-refs.c:38,1
    - Dst: _
      Src: /src/git/ls-refs.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 42
    functionName: unborn_config
    functionSourceFile: /src/git/ls-refs.c
    functionUses: 0
    functionsReached:
    - repo_config_get_string_tmp
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: "enum {\n\tUNBORN_IGNORE = 0,\n\tUNBORN_ALLOW,\n\tUNBORN_ADVERTISE
      /* implies ALLOW */\n}"
    signature: "enum {\n\tUNBORN_IGNORE = 0,\n\tUNBORN_ALLOW,\n\tUNBORN_ADVERTISE
      /* implies ALLOW */\n} unborn_config(struct repository *r)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/ls-refs.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - prefixes
    - refname
    argTypes:
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: ref_match
    functionSourceFile: /src/git/ls-refs.c
    functionUses: 1
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: int
    signature: int ref_match(const struct strvec *prefixes, const char *refname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strip_namespace
      Src: /src/git/ls-refs.c:81,1
    - Dst: strbuf_reset
      Src: /src/git/ls-refs.c:83,1
    - Dst: ref_is_hidden
      Src: /src/git/ls-refs.c:85,1
    - Dst: ref_match
      Src: /src/git/ls-refs.c:88,1
    - Dst: strbuf_addf
      Src: /src/git/ls-refs.c:92,1
    - Dst: oid_to_hex
      Src: /src/git/ls-refs.c:92,1
    - Dst: strbuf_addf
      Src: /src/git/ls-refs.c:94,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/ls-refs.c:98,1
    - Dst: get_main_ref_store
      Src: /src/git/ls-refs.c:98,1
    - Dst: die
      Src: /src/git/ls-refs.c:105,1
    - Dst: strbuf_addf
      Src: /src/git/ls-refs.c:107,1
    - Dst: strip_namespace
      Src: /src/git/ls-refs.c:108,1
    - Dst: reference_get_peeled_oid
      Src: /src/git/ls-refs.c:113,1
    - Dst: strbuf_addf
      Src: /src/git/ls-refs.c:114,1
    - Dst: oid_to_hex
      Src: /src/git/ls-refs.c:114,1
    - Dst: strbuf_addch
      Src: /src/git/ls-refs.c:117,1
    - Dst: packet_fwrite
      Src: /src/git/ls-refs.c:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: send_ref
    functionSourceFile: /src/git/ls-refs.c
    functionUses: 0
    functionsReached:
    - strip_namespace
    - oid_to_hex
    - die
    - reference_get_peeled_oid
    - strbuf_reset
    - refs_resolve_ref_unsafe
    - ref_match
    - strbuf_addf
    - strbuf_addch
    - packet_fwrite
    - get_main_ref_store
    - ref_is_hidden
    linkageType: ''
    returnType: int
    signature: int send_ref(const struct reference *ref, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/ls-refs.c:130,1
    - Dst: get_git_namespace
      Src: /src/git/ls-refs.c:130,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/ls-refs.c:131,1
    - Dst: get_main_ref_store
      Src: /src/git/ls-refs.c:131,1
    - Dst: is_null_oid
      Src: /src/git/ls-refs.c:133,1
    - Dst: send_ref
      Src: /src/git/ls-refs.c:143,1
    - Dst: strbuf_release
      Src: /src/git/ls-refs.c:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct ls_refs_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 146
    functionName: send_possibly_unborn_head
    functionSourceFile: /src/git/ls-refs.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - refs_resolve_ref_unsafe
    - send_ref
    - strbuf_addf
    - is_null_oid
    - get_git_namespace
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void send_possibly_unborn_head(struct ls_refs_data *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_hide_refs_config
      Src: /src/git/ls-refs.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - cb_data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: ls_refs_config
    functionSourceFile: /src/git/ls-refs.c
    functionUses: 0
    functionsReached:
    - parse_hide_refs_config
    linkageType: ''
    returnType: int
    signature: "int ls_refs_config(const char *var, const char *value,\n\t\t\t  const
      struct config_context *ctx UNUSED,\n\t\t\t  void *cb_data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/ls-refs.c:166,1
    - Dst: strvec_init
      Src: /src/git/ls-refs.c:167,1
    - Dst: strbuf_init
      Src: /src/git/ls-refs.c:168,1
    - Dst: strvec_init
      Src: /src/git/ls-refs.c:169,1
    - Dst: repo_config
      Src: /src/git/ls-refs.c:171,1
    - Dst: packet_reader_read
      Src: /src/git/ls-refs.c:173,1
    - Dst: strcmp
      Src: /src/git/ls-refs.c:177,1
    - Dst: strcmp
      Src: /src/git/ls-refs.c:179,1
    - Dst: skip_prefix
      Src: /src/git/ls-refs.c:181,1
    - Dst: strvec_push
      Src: /src/git/ls-refs.c:183,1
    - Dst: strcmp
      Src: /src/git/ls-refs.c:185,1
    - Dst: unborn_config
      Src: /src/git/ls-refs.c:186,1
    - Dst: die
      Src: /src/git/ls-refs.c:188,1
    - Dst: _
      Src: /src/git/ls-refs.c:188,1
    - Dst: die
      Src: /src/git/ls-refs.c:192,1
    - Dst: _
      Src: /src/git/ls-refs.c:192,1
    - Dst: strvec_clear
      Src: /src/git/ls-refs.c:200,1
    - Dst: send_possibly_unborn_head
      Src: /src/git/ls-refs.c:202,1
    - Dst: strvec_push
      Src: /src/git/ls-refs.c:204,1
    - Dst: hidden_refs_to_excludes
      Src: /src/git/ls-refs.c:206,1
    - Dst: get_git_namespace
      Src: /src/git/ls-refs.c:207,1
    - Dst: refs_for_each_ref_in_prefixes
      Src: /src/git/ls-refs.c:209,1
    - Dst: get_main_ref_store
      Src: /src/git/ls-refs.c:209,1
    - Dst: packet_fflush
      Src: /src/git/ls-refs.c:211,1
    - Dst: strvec_clear
      Src: /src/git/ls-refs.c:212,1
    - Dst: strbuf_release
      Src: /src/git/ls-refs.c:213,1
    - Dst: strvec_clear
      Src: /src/git/ls-refs.c:214,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - r
    - request
    argTypes:
    - struct repository*
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 216
    functionName: ls_refs
    functionSourceFile: /src/git/ls-refs.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - send_possibly_unborn_head
    - refs_for_each_ref_in_prefixes
    - packet_fflush
    - strcmp
    - repo_config
    - get_main_ref_store
    - strbuf_release
    - die
    - hidden_refs_to_excludes
    - strbuf_init
    - memset
    - strvec_init
    - _
    - skip_prefix
    - unborn_config
    - strvec_clear
    - get_git_namespace
    - packet_reader_read
    linkageType: ''
    returnType: int
    signature: int ls_refs(struct repository *r, struct packet_reader *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unborn_config
      Src: /src/git/ls-refs.c:220,1
    - Dst: strbuf_addstr
      Src: /src/git/ls-refs.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: ls_refs_advertise
    functionSourceFile: /src/git/ls-refs.c
    functionUses: 0
    functionsReached:
    - unborn_config
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int ls_refs_advertise(struct repository *r, struct strbuf *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: ws_tab_width
    functionSourceFile: /src/git/ws.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ws_tab_width(rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/rerere.c:51,1
    - Dst: free
      Src: /src/git/rerere.c:53,1
    - Dst: free
      Src: /src/git/rerere.c:54,1
    - Dst: strmap_clear
      Src: /src/git/rerere.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: free_rerere_dirs
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strmap_for_each_entry
    - strmap_clear
    - free
    linkageType: ''
    returnType: void
    signature: void free_rerere_dirs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/rerere.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct string_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: free_rerere_id
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_rerere_id(struct string_list_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - struct rerere_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: rerere_id_hex
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *rerere_id_hex(const struct rerere_id *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/rerere.c:72,1
    - Dst: memset
      Src: /src/git/rerere.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - rr_dir
    - variant
    argTypes:
    - struct rerere_dir*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: fit_variant
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - memset
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void fit_variant(struct rerere_dir *rr_dir, int variant)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fit_variant
      Src: /src/git/rerere.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - struct rerere_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: assign_variant
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - fit_variant
    linkageType: ''
    returnType: void
    signature: void assign_variant(struct rerere_id *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path_replace
      Src: /src/git/rerere.c:98,1
    - Dst: rerere_id_hex
      Src: /src/git/rerere.c:99,1
    - Dst: repo_git_path_replace
      Src: /src/git/rerere.c:102,1
    - Dst: rerere_id_hex
      Src: /src/git/rerere.c:103,1
    - Dst: repo_git_path_replace
      Src: /src/git/rerere.c:105,1
    - Dst: rerere_id_hex
      Src: /src/git/rerere.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - id
    - file
    argTypes:
    - struct strbuf*
    - struct rerere_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 8
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: rerere_path
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - rerere_id_hex
    - repo_git_path_replace
    linkageType: ''
    returnType: char
    signature: char *rerere_path(struct strbuf *buf, const struct rerere_id *id, const
      char *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/rerere.c:114,1
    - Dst: skip_prefix
      Src: /src/git/rerere.c:118,1
    - Dst: strtol
      Src: /src/git/rerere.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - name
    - filename
    - variant
    argTypes:
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: is_rr_file
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strtol
    - skip_prefix
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_rr_file(const char *name, const char *filename, int *variant)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/rerere.c:134,1
    - Dst: opendir
      Src: /src/git/rerere.c:135,1
    - Dst: free
      Src: /src/git/rerere.c:136,1
    - Dst: readdir
      Src: /src/git/rerere.c:139,1
    - Dst: is_rr_file
      Src: /src/git/rerere.c:142,1
    - Dst: fit_variant
      Src: /src/git/rerere.c:143,1
    - Dst: is_rr_file
      Src: /src/git/rerere.c:145,1
    - Dst: fit_variant
      Src: /src/git/rerere.c:146,1
    - Dst: closedir
      Src: /src/git/rerere.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - rr_dir
    argTypes:
    - struct rerere_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 128
    functionDepth: 8
    functionLinenumber: 128
    functionLinenumberEnd: 151
    functionName: scan_rerere_dir
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    - opendir
    - free
    - is_rr_file
    - closedir
    - readdir
    - fit_variant
    linkageType: ''
    returnType: void
    signature: void scan_rerere_dir(struct rerere_dir *rr_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/rerere.c:157,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/rerere.c:159,1
    - Dst: strmap_put
      Src: /src/git/rerere.c:163,1
    - Dst: scan_rerere_dir
      Src: /src/git/rerere.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - hex
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 9
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: find_rerere_dir
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - scan_rerere_dir
    - strmap_put
    - strmap_get
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: struct rerere_dir
    signature: struct rerere_dir *find_rerere_dir(const char *hex)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - struct rerere_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: has_rerere_resolution
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_rerere_resolution(const struct rerere_id *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/rerere.c:182,1
    - Dst: find_rerere_dir
      Src: /src/git/rerere.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hex
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 10
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: new_rerere_id_hex
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - find_rerere_dir
    - xmalloc
    linkageType: ''
    returnType: struct rerere_id
    signature: struct rerere_id *new_rerere_id_hex(char *hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_rerere_id_hex
      Src: /src/git/rerere.c:190,1
    - Dst: hash_to_hex
      Src: /src/git/rerere.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 11
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: new_rerere_id
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - new_rerere_id_hex
    - hash_to_hex
    linkageType: ''
    returnType: struct rerere_id
    signature: struct rerere_id *new_rerere_id(unsigned char *hash)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen_or_warn
      Src: /src/git/rerere.c:203,1
    - Dst: git_path_merge_rr
      Src: /src/git/rerere.c:203,1
    - Dst: strbuf_getwholeline
      Src: /src/git/rerere.c:207,1
    - Dst: get_hash_hex
      Src: /src/git/rerere.c:215,1
    - Dst: die
      Src: /src/git/rerere.c:216,1
    - Dst: _
      Src: /src/git/rerere.c:216,1
    - Dst: strtol
      Src: /src/git/rerere.c:223,1
    - Dst: die
      Src: /src/git/rerere.c:225,1
    - Dst: _
      Src: /src/git/rerere.c:225,1
    - Dst: die
      Src: /src/git/rerere.c:228,1
    - Dst: _
      Src: /src/git/rerere.c:228,1
    - Dst: new_rerere_id_hex
      Src: /src/git/rerere.c:230,1
    - Dst: fit_variant
      Src: /src/git/rerere.c:236,1
    - Dst: string_list_insert
      Src: /src/git/rerere.c:237,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:239,1
    - Dst: fclose
      Src: /src/git/rerere.c:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - r
    - rr
    argTypes:
    - struct repository*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 200
    functionDepth: 11
    functionLinenumber: 200
    functionLinenumberEnd: 241
    functionName: read_rr
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - fclose
    - git_path_merge_rr
    - strbuf_release
    - die
    - string_list_insert
    - new_rerere_id_hex
    - get_hash_hex
    - fopen_or_warn
    - _
    - strtol
    - fit_variant
    linkageType: ''
    returnType: void
    signature: void read_rr(struct repository *r, struct string_list *rr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/rerere.c:252,1
    - Dst: assert
      Src: /src/git/rerere.c:257,1
    - Dst: strbuf_addf
      Src: /src/git/rerere.c:259,1
    - Dst: rerere_id_hex
      Src: /src/git/rerere.c:260,1
    - Dst: strbuf_addf
      Src: /src/git/rerere.c:263,1
    - Dst: rerere_id_hex
      Src: /src/git/rerere.c:264,1
    - Dst: write_in_full
      Src: /src/git/rerere.c:267,1
    - Dst: die
      Src: /src/git/rerere.c:268,1
    - Dst: _
      Src: /src/git/rerere.c:268,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:270,1
    - Dst: commit_lock_file
      Src: /src/git/rerere.c:272,1
    - Dst: die
      Src: /src/git/rerere.c:273,1
    - Dst: _
      Src: /src/git/rerere.c:273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - rr
    - out_fd
    argTypes:
    - struct string_list*
    - int
    assertStmts:
    - condition: (rr->items[i].util != RERERE_RESOLVED)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/git/rerere.c
    - condition: (id->variant >= 0)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/git/rerere.c
    constantsTouched: []
    func_position:
      end: 275
      start: 245
    functionDepth: 6
    functionLinenumber: 245
    functionLinenumberEnd: 275
    functionName: write_rr
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - assert
    - commit_lock_file
    - strbuf_addf
    - _
    - rerere_id_hex
    - write_in_full
    linkageType: ''
    returnType: int
    signature: int write_rr(struct string_list *rr, int out_fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/rerere.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - p
    - count
    - fp
    - err
    argTypes:
    - void*
    - size_t
    - FILE*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: ferr_write
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: void
    signature: void ferr_write(const void *p, size_t count, FILE *fp, int *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ferr_write
      Src: /src/git/rerere.c:302,1
    - Dst: strlen
      Src: /src/git/rerere.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - fp
    - err
    argTypes:
    - char*
    - FILE*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: ferr_puts
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strlen
    - ferr_write
    linkageType: ''
    returnType: void
    signature: void ferr_puts(const char *s, FILE *fp, int *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ferr_puts
      Src: /src/git/rerere.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - str
    - io
    argTypes:
    - char*
    - struct rerere_io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: rerere_io_putstr
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - ferr_puts
    linkageType: ''
    returnType: void
    signature: void rerere_io_putstr(const char *str, struct rerere_io *io)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ferr_write
      Src: /src/git/rerere.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - mem
    - sz
    - io
    argTypes:
    - char*
    - size_t
    - struct rerere_io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: rerere_io_putmem
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - ferr_write
    linkageType: ''
    returnType: void
    signature: void rerere_io_putmem(const char *mem, size_t sz, struct rerere_io
      *io)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getwholeline
      Src: /src/git/rerere.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sb
    - io_
    argTypes:
    - struct strbuf*
    - struct rerere_io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: rerere_file_getline
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    linkageType: ''
    returnType: int
    signature: int rerere_file_getline(struct strbuf *sb, struct rerere_io *io_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/rerere.c:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - marker_char
    - marker_size
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 359
    functionName: is_cmarker
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int is_cmarker(char *buf, int marker_char, int marker_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addchars
      Src: /src/git/rerere.c:363,1
    - Dst: strbuf_addch
      Src: /src/git/rerere.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buf
    - ch
    - size
    argTypes:
    - struct strbuf*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: rerere_strbuf_putconflict
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void rerere_strbuf_putconflict(struct strbuf *buf, int ch, size_t size)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: struct rerere_io*::getline
      Src: /src/git/rerere.c:377,1
    - Dst: is_cmarker
      Src: /src/git/rerere.c:378,1
    - Dst: handle_conflict
      Src: /src/git/rerere.c:379,1
    - Dst: strbuf_addbuf
      Src: /src/git/rerere.c:382,1
    - Dst: strbuf_addbuf
      Src: /src/git/rerere.c:384,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:385,1
    - Dst: is_cmarker
      Src: /src/git/rerere.c:386,1
    - Dst: is_cmarker
      Src: /src/git/rerere.c:390,1
    - Dst: is_cmarker
      Src: /src/git/rerere.c:394,1
    - Dst: strbuf_cmp
      Src: /src/git/rerere.c:397,1
    - Dst: strbuf_swap
      Src: /src/git/rerere.c:398,1
    - Dst: rerere_strbuf_putconflict
      Src: /src/git/rerere.c:400,1
    - Dst: strbuf_addbuf
      Src: /src/git/rerere.c:401,1
    - Dst: rerere_strbuf_putconflict
      Src: /src/git/rerere.c:402,1
    - Dst: strbuf_addbuf
      Src: /src/git/rerere.c:403,1
    - Dst: rerere_strbuf_putconflict
      Src: /src/git/rerere.c:404,1
    - Dst: git_hash_update
      Src: /src/git/rerere.c:406,1
    - Dst: git_hash_update
      Src: /src/git/rerere.c:407,1
    - Dst: strbuf_addbuf
      Src: /src/git/rerere.c:411,1
    - Dst: strbuf_addbuf
      Src: /src/git/rerere.c:415,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:417,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:418,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:419,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 4
    argNames:
    - out
    - io
    - marker_size
    - ctx
    argTypes:
    - struct strbuf*
    - struct rerere_io*
    - int
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 422
    functionName: handle_conflict
    functionSourceFile: /src/git/rerere.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_cmp
    - strbuf_addbuf
    - handle_conflict
    - is_cmarker
    - git_hash_update
    - strbuf_swap
    - struct rerere_io*::getline
    - rerere_strbuf_putconflict
    linkageType: ''
    returnType: int
    signature: "int handle_conflict(struct strbuf *out, struct rerere_io *io,\n\t\t\t
      \  int marker_size, struct git_hash_ctx *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_fn
      Src: /src/git/rerere.c:442,1
    - Dst: struct rerere_io*::getline
      Src: /src/git/rerere.c:444,1
    - Dst: is_cmarker
      Src: /src/git/rerere.c:445,1
    - Dst: handle_conflict
      Src: /src/git/rerere.c:446,1
    - Dst: rerere_io_putmem
      Src: /src/git/rerere.c:450,1
    - Dst: strbuf_reset
      Src: /src/git/rerere.c:451,1
    - Dst: rerere_io_putstr
      Src: /src/git/rerere.c:453,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:455,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:456,1
    - Dst: git_hash_final
      Src: /src/git/rerere.c:459,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - hash
    - io
    - marker_size
    argTypes:
    - unsigned char*
    - struct rerere_io*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 436
    functionDepth: 5
    functionLinenumber: 436
    functionLinenumberEnd: 462
    functionName: handle_path
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - git_hash_final
    - rerere_io_putstr
    - handle_conflict
    - is_cmarker
    - rerere_io_putmem
    - init_fn
    - struct rerere_io*::getline
    linkageType: ''
    returnType: int
    signature: int handle_path(unsigned char *hash, struct rerere_io *io, int marker_size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ll_merge_marker_size
      Src: /src/git/rerere.c:473,1
    - Dst: memset
      Src: /src/git/rerere.c:475,1
    - Dst: fopen
      Src: /src/git/rerere.c:477,1
    - Dst: error_errno
      Src: /src/git/rerere.c:480,1
    - Dst: _
      Src: /src/git/rerere.c:480,1
    - Dst: fopen
      Src: /src/git/rerere.c:483,1
    - Dst: error_errno
      Src: /src/git/rerere.c:485,1
    - Dst: _
      Src: /src/git/rerere.c:485,1
    - Dst: fclose
      Src: /src/git/rerere.c:486,1
    - Dst: handle_path
      Src: /src/git/rerere.c:491,1
    - Dst: fclose
      Src: /src/git/rerere.c:493,1
    - Dst: error
      Src: /src/git/rerere.c:495,1
    - Dst: _
      Src: /src/git/rerere.c:495,1
    - Dst: strerror
      Src: /src/git/rerere.c:496,1
    - Dst: fclose
      Src: /src/git/rerere.c:497,1
    - Dst: error_errno
      Src: /src/git/rerere.c:498,1
    - Dst: _
      Src: /src/git/rerere.c:498,1
    - Dst: unlink_or_warn
      Src: /src/git/rerere.c:502,1
    - Dst: error
      Src: /src/git/rerere.c:503,1
    - Dst: _
      Src: /src/git/rerere.c:503,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - istate
    - path
    - hash
    - output
    argTypes:
    - struct index_state*
    - char*
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 468
    functionDepth: 6
    functionLinenumber: 468
    functionLinenumberEnd: 508
    functionName: handle_file
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - memset
    - error
    - unlink_or_warn
    - strerror
    - fopen
    - ll_merge_marker_size
    - handle_path
    - _
    linkageType: ''
    returnType: int
    signature: "int handle_file(struct index_state *istate,\n\t\t       const char
      *path, unsigned char *hash, const char *output)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ce_stage
      Src: /src/git/rerere.c:522,1
    - Dst: ce_stage
      Src: /src/git/rerere.c:528,1
    - Dst: ce_stage
      Src: /src/git/rerere.c:535,1
    - Dst: ce_stage
      Src: /src/git/rerere.c:536,1
    - Dst: ce_same_name
      Src: /src/git/rerere.c:537,1
    - Dst: S_ISREG
      Src: /src/git/rerere.c:538,1
    - Dst: S_ISREG
      Src: /src/git/rerere.c:539,1
    - Dst: ce_same_name
      Src: /src/git/rerere.c:544,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 3
    argNames:
    - istate
    - i
    - type
    argTypes:
    - struct index_state*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 547
    functionName: check_one_conflict
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - ce_same_name
    - ce_stage
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int check_one_conflict(struct index_state *istate, int i, int *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/rerere.c:564,1
    - Dst: error
      Src: /src/git/rerere.c:565,1
    - Dst: _
      Src: /src/git/rerere.c:565,1
    - Dst: check_one_conflict
      Src: /src/git/rerere.c:570,1
    - Dst: string_list_insert
      Src: /src/git/rerere.c:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - r
    - conflict
    argTypes:
    - struct repository*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 560
    functionDepth: 10
    functionLinenumber: 560
    functionLinenumberEnd: 575
    functionName: find_conflict
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - error
    - string_list_insert
    - repo_read_index
    - check_one_conflict
    - _
    linkageType: ''
    returnType: int
    signature: int find_conflict(struct repository *r, struct string_list *conflict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setup_rerere
      Src: /src/git/rerere.c:596,1
    - Dst: repo_read_index
      Src: /src/git/rerere.c:598,1
    - Dst: error
      Src: /src/git/rerere.c:599,1
    - Dst: _
      Src: /src/git/rerere.c:599,1
    - Dst: check_one_conflict
      Src: /src/git/rerere.c:604,1
    - Dst: string_list_insert
      Src: /src/git/rerere.c:606,1
    - Dst: string_list_lookup
      Src: /src/git/rerere.c:609,1
    - Dst: free_rerere_id
      Src: /src/git/rerere.c:611,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - r
    - merge_rr
    argTypes:
    - struct repository*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 592
    functionDepth: 10
    functionLinenumber: 592
    functionLinenumberEnd: 617
    functionName: rerere_remaining
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - error
    - string_list_lookup
    - setup_rerere
    - string_list_insert
    - repo_read_index
    - free_rerere_id
    - check_one_conflict
    - _
    linkageType: ''
    returnType: int
    signature: int rerere_remaining(struct repository *r, struct string_list *merge_rr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_mmfile
      Src: /src/git/rerere.c:632,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:632,1
    - Dst: read_mmfile
      Src: /src/git/rerere.c:633,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:633,1
    - Dst: ll_merge
      Src: /src/git/rerere.c:640,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:644,1
    - Dst: free
      Src: /src/git/rerere.c:645,1
    - Dst: free
      Src: /src/git/rerere.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - istate
    - id
    - path
    - cur
    - result
    argTypes:
    - struct index_state*
    - struct rerere_id*
    - char*
    - mmfile_t*
    - mmbuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 624
    functionDepth: 9
    functionLinenumber: 624
    functionLinenumberEnd: 649
    functionName: try_merge
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - rerere_path
    - read_mmfile
    - free
    - ll_merge
    linkageType: ''
    returnType: int
    signature: "int try_merge(struct index_state *istate,\n\t\t     const struct rerere_id
      *id, const char *path,\n\t\t     mmfile_t *cur, mmbuffer_t *result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: handle_file
      Src: /src/git/rerere.c:673,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:673,1
    - Dst: read_mmfile
      Src: /src/git/rerere.c:674,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:674,1
    - Dst: try_merge
      Src: /src/git/rerere.c:679,1
    - Dst: utime
      Src: /src/git/rerere.c:687,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:687,1
    - Dst: warning_errno
      Src: /src/git/rerere.c:688,1
    - Dst: _
      Src: /src/git/rerere.c:688,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:689,1
    - Dst: fopen
      Src: /src/git/rerere.c:692,1
    - Dst: error_errno
      Src: /src/git/rerere.c:694,1
    - Dst: _
      Src: /src/git/rerere.c:694,1
    - Dst: fwrite
      Src: /src/git/rerere.c:695,1
    - Dst: error_errno
      Src: /src/git/rerere.c:696,1
    - Dst: _
      Src: /src/git/rerere.c:696,1
    - Dst: fclose
      Src: /src/git/rerere.c:697,1
    - Dst: error_errno
      Src: /src/git/rerere.c:698,1
    - Dst: _
      Src: /src/git/rerere.c:698,1
    - Dst: free
      Src: /src/git/rerere.c:701,1
    - Dst: free
      Src: /src/git/rerere.c:702,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:703,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - istate
    - id
    - path
    argTypes:
    - struct index_state*
    - struct rerere_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 661
    functionDepth: 10
    functionLinenumber: 661
    functionLinenumberEnd: 706
    functionName: merge
    functionSourceFile: /src/git/rerere.c
    functionUses: 22
    functionsReached:
    - fclose
    - handle_file
    - error_errno
    - strbuf_release
    - try_merge
    - fwrite
    - warning_errno
    - fopen
    - rerere_path
    - read_mmfile
    - utime
    - _
    - free
    linkageType: ''
    returnType: int
    signature: int merge(struct index_state *istate, const struct rerere_id *id, const
      char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_hold_locked_index
      Src: /src/git/rerere.c:713,1
    - Dst: add_file_to_index
      Src: /src/git/rerere.c:717,1
    - Dst: exit
      Src: /src/git/rerere.c:718,1
    - Dst: fprintf_ln
      Src: /src/git/rerere.c:719,1
    - Dst: _
      Src: /src/git/rerere.c:719,1
    - Dst: write_locked_index
      Src: /src/git/rerere.c:723,1
    - Dst: die
      Src: /src/git/rerere.c:725,1
    - Dst: _
      Src: /src/git/rerere.c:725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - r
    - update
    argTypes:
    - struct repository*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 708
    functionDepth: 13
    functionLinenumber: 708
    functionLinenumberEnd: 726
    functionName: update_paths
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - fprintf_ln
    - die
    - add_file_to_index
    - exit
    - write_locked_index
    - repo_hold_locked_index
    - _
    linkageType: ''
    returnType: void
    signature: void update_paths(struct repository *r, struct string_list *update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink_or_warn
      Src: /src/git/rerere.c:731,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:731,1
    - Dst: unlink_or_warn
      Src: /src/git/rerere.c:732,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:732,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - struct rerere_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 728
    functionDepth: 9
    functionLinenumber: 728
    functionLinenumberEnd: 735
    functionName: remove_variant
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - unlink_or_warn
    - rerere_path
    linkageType: ''
    returnType: void
    signature: void remove_variant(struct rerere_id *id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: handle_file
      Src: /src/git/rerere.c:758,1
    - Dst: copy_file
      Src: /src/git/rerere.c:759,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:759,1
    - Dst: fprintf_ln
      Src: /src/git/rerere.c:761,1
    - Dst: _
      Src: /src/git/rerere.c:761,1
    - Dst: free_rerere_id
      Src: /src/git/rerere.c:762,1
    - Dst: merge
      Src: /src/git/rerere.c:782,1
    - Dst: remove_variant
      Src: /src/git/rerere.c:790,1
    - Dst: string_list_insert
      Src: /src/git/rerere.c:793,1
    - Dst: fprintf_ln
      Src: /src/git/rerere.c:795,1
    - Dst: _
      Src: /src/git/rerere.c:796,1
    - Dst: free_rerere_id
      Src: /src/git/rerere.c:798,1
    - Dst: assign_variant
      Src: /src/git/rerere.c:804,1
    - Dst: handle_file
      Src: /src/git/rerere.c:807,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:807,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:809,1
    - Dst: unlink
      Src: /src/git/rerere.c:810,1
    - Dst: die_errno
      Src: /src/git/rerere.c:811,1
    - Dst: _
      Src: /src/git/rerere.c:811,1
    - Dst: fprintf_ln
      Src: /src/git/rerere.c:815,1
    - Dst: _
      Src: /src/git/rerere.c:815,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:818,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - istate
    - rr_item
    - update
    argTypes:
    - struct index_state*
    - struct string_list_item*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 744
    functionDepth: 10
    functionLinenumber: 744
    functionLinenumberEnd: 819
    functionName: do_rerere_one_path
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - handle_file
    - strbuf_release
    - fprintf_ln
    - string_list_insert
    - merge
    - free_rerere_id
    - rerere_path
    - die_errno
    - remove_variant
    - copy_file
    - assign_variant
    - _
    - unlink
    linkageType: ''
    returnType: void
    signature: "void do_rerere_one_path(struct index_state *istate,\n\t\t\t       struct
      string_list_item *rr_item,\n\t\t\t       struct string_list *update)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_conflict
      Src: /src/git/rerere.c:829,1
    - Dst: handle_file
      Src: /src/git/rerere.c:848,1
    - Dst: string_list_has_string
      Src: /src/git/rerere.c:849,1
    - Dst: remove_variant
      Src: /src/git/rerere.c:850,1
    - Dst: string_list_lookup
      Src: /src/git/rerere.c:850,1
    - Dst: string_list_remove
      Src: /src/git/rerere.c:851,1
    - Dst: new_rerere_id
      Src: /src/git/rerere.c:856,1
    - Dst: string_list_insert
      Src: /src/git/rerere.c:857,1
    - Dst: safe_create_dir_in_gitdir
      Src: /src/git/rerere.c:860,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:860,1
    - Dst: do_rerere_one_path
      Src: /src/git/rerere.c:864,1
    - Dst: update_paths
      Src: /src/git/rerere.c:867,1
    - Dst: string_list_clear
      Src: /src/git/rerere.c:869,1
    - Dst: string_list_clear
      Src: /src/git/rerere.c:870,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:871,1
    - Dst: write_rr
      Src: /src/git/rerere.c:872,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - r
    - rr
    - fd
    argTypes:
    - struct repository*
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 821
    functionDepth: 14
    functionLinenumber: 821
    functionLinenumberEnd: 873
    functionName: do_plain_rerere
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - handle_file
    - string_list_lookup
    - string_list_clear
    - strbuf_release
    - string_list_insert
    - safe_create_dir_in_gitdir
    - new_rerere_id
    - rerere_path
    - find_conflict
    - remove_variant
    - string_list_has_string
    - string_list_remove
    - do_rerere_one_path
    - update_paths
    - write_rr
    linkageType: ''
    returnType: int
    signature: "int do_plain_rerere(struct repository *r,\n\t\t\t   struct string_list
      *rr, int fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/rerere.c:877,1
    - Dst: repo_config_get_bool
      Src: /src/git/rerere.c:878,1
    - Dst: repo_config
      Src: /src/git/rerere.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 880
    functionName: git_rerere_config
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - repo_config_get_bool
    - repo_config
    linkageType: ''
    returnType: void
    signature: void git_rerere_config(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_directory
      Src: /src/git/rerere.c:891,1
    - Dst: git_path_rr_cache
      Src: /src/git/rerere.c:891,1
    - Dst: safe_create_dir_in_gitdir
      Src: /src/git/rerere.c:896,1
    - Dst: git_path_rr_cache
      Src: /src/git/rerere.c:896,1
    - Dst: die
      Src: /src/git/rerere.c:897,1
    - Dst: _
      Src: /src/git/rerere.c:897,1
    - Dst: git_path_rr_cache
      Src: /src/git/rerere.c:897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - is_rerere_enabled
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 882
    functionDepth: 5
    functionLinenumber: 882
    functionLinenumberEnd: 899
    functionName: GIT_PATH_FUNC
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - die
    - safe_create_dir_in_gitdir
    - git_path_rr_cache
    - _
    - is_directory
    linkageType: ''
    returnType: void
    signature: 'void GIT_PATH_FUNC(git_path_rr_cache, "rr-cache")


      static int is_rerere_enabled(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_rerere_config
      Src: /src/git/rerere.c:905,1
    - Dst: is_rerere_enabled
      Src: /src/git/rerere.c:906,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/rerere.c:914,1
    - Dst: git_path_merge_rr
      Src: /src/git/rerere.c:915,1
    - Dst: read_rr
      Src: /src/git/rerere.c:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - r
    - merge_rr
    - flags
    argTypes:
    - struct repository*
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 901
    functionDepth: 12
    functionLinenumber: 901
    functionLinenumberEnd: 919
    functionName: setup_rerere
    functionSourceFile: /src/git/rerere.c
    functionUses: 1
    functionsReached:
    - git_rerere_config
    - hold_lock_file_for_update
    - git_path_merge_rr
    - read_rr
    - is_rerere_enabled
    linkageType: ''
    returnType: int
    signature: int setup_rerere(struct repository *r, struct string_list *merge_rr,
      int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_rerere
      Src: /src/git/rerere.c:931,1
    - Dst: do_plain_rerere
      Src: /src/git/rerere.c:934,1
    - Dst: free_rerere_dirs
      Src: /src/git/rerere.c:935,1
    - Dst: string_list_clear
      Src: /src/git/rerere.c:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 926
    functionDepth: 15
    functionLinenumber: 926
    functionLinenumberEnd: 938
    functionName: repo_rerere
    functionSourceFile: /src/git/rerere.c
    functionUses: 3
    functionsReached:
    - free_rerere_dirs
    - string_list_clear
    - setup_rerere
    - do_plain_rerere
    linkageType: ''
    returnType: int
    signature: int repo_rerere(struct repository *r, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/rerere.c:958,1
    - Dst: memchr
      Src: /src/git/rerere.c:961,1
    - Dst: strbuf_add
      Src: /src/git/rerere.c:967,1
    - Dst: strbuf_remove
      Src: /src/git/rerere.c:968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - sb
    - io_
    argTypes:
    - struct strbuf*
    - struct rerere_io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 952
    functionDepth: 4
    functionLinenumber: 952
    functionLinenumberEnd: 970
    functionName: rerere_mem_getline
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - memchr
    - strbuf_add
    - strbuf_remove
    linkageType: ''
    returnType: int
    signature: int rerere_mem_getline(struct strbuf *sb, struct rerere_io *io_)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ll_merge_marker_size
      Src: /src/git/rerere.c:980,1
    - Dst: strlen
      Src: /src/git/rerere.c:985,1
    - Dst: index_name_pos
      Src: /src/git/rerere.c:986,1
    - Dst: ce_namelen
      Src: /src/git/rerere.c:996,1
    - Dst: memcmp
      Src: /src/git/rerere.c:996,1
    - Dst: ce_stage
      Src: /src/git/rerere.c:998,1
    - Dst: odb_read_object
      Src: /src/git/rerere.c:1000,1
    - Dst: die
      Src: /src/git/rerere.c:1003,1
    - Dst: _
      Src: /src/git/rerere.c:1003,1
    - Dst: oid_to_hex
      Src: /src/git/rerere.c:1004,1
    - Dst: xstrdup
      Src: /src/git/rerere.c:1010,1
    - Dst: ll_merge
      Src: /src/git/rerere.c:1016,1
    - Dst: free
      Src: /src/git/rerere.c:1021,1
    - Dst: memset
      Src: /src/git/rerere.c:1023,1
    - Dst: fopen
      Src: /src/git/rerere.c:1026,1
    - Dst: strbuf_init
      Src: /src/git/rerere.c:1029,1
    - Dst: strbuf_attach
      Src: /src/git/rerere.c:1030,1
    - Dst: handle_path
      Src: /src/git/rerere.c:1036,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:1037,1
    - Dst: fclose
      Src: /src/git/rerere.c:1039,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 4
    argNames:
    - istate
    - path
    - hash
    - output
    argTypes:
    - struct index_state*
    - char*
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 972
    functionDepth: 6
    functionLinenumber: 972
    functionLinenumberEnd: 1041
    functionName: handle_cache
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_attach
    - free
    - index_name_pos
    - strbuf_release
    - die
    - fopen
    - handle_path
    - odb_read_object
    - strbuf_init
    - ll_merge
    - memset
    - oid_to_hex
    - ll_merge_marker_size
    - _
    - ce_stage
    - xstrdup
    - ce_namelen
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int handle_cache(struct index_state *istate,\n\t\t\tconst char *path,
      unsigned char *hash, const char *output)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: handle_cache
      Src: /src/git/rerere.c:1058,1
    - Dst: error
      Src: /src/git/rerere.c:1060,1
    - Dst: _
      Src: /src/git/rerere.c:1060,1
    - Dst: new_rerere_id
      Src: /src/git/rerere.c:1063,1
    - Dst: has_rerere_resolution
      Src: /src/git/rerere.c:1072,1
    - Dst: handle_cache
      Src: /src/git/rerere.c:1075,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:1075,1
    - Dst: read_mmfile
      Src: /src/git/rerere.c:1076,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:1076,1
    - Dst: free
      Src: /src/git/rerere.c:1077,1
    - Dst: error
      Src: /src/git/rerere.c:1078,1
    - Dst: _
      Src: /src/git/rerere.c:1078,1
    - Dst: try_merge
      Src: /src/git/rerere.c:1081,1
    - Dst: free
      Src: /src/git/rerere.c:1082,1
    - Dst: free
      Src: /src/git/rerere.c:1083,1
    - Dst: error
      Src: /src/git/rerere.c:1089,1
    - Dst: _
      Src: /src/git/rerere.c:1089,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:1093,1
    - Dst: unlink
      Src: /src/git/rerere.c:1094,1
    - Dst: error
      Src: /src/git/rerere.c:1096,1
    - Dst: _
      Src: /src/git/rerere.c:1096,1
    - Dst: error_errno
      Src: /src/git/rerere.c:1098,1
    - Dst: _
      Src: /src/git/rerere.c:1098,1
    - Dst: handle_cache
      Src: /src/git/rerere.c:1107,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:1107,1
    - Dst: fprintf_ln
      Src: /src/git/rerere.c:1108,1
    - Dst: _
      Src: /src/git/rerere.c:1108,1
    - Dst: string_list_insert
      Src: /src/git/rerere.c:1114,1
    - Dst: free_rerere_id
      Src: /src/git/rerere.c:1115,1
    - Dst: fprintf
      Src: /src/git/rerere.c:1117,1
    - Dst: _
      Src: /src/git/rerere.c:1117,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:1118,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:1122,1
    - Dst: free
      Src: /src/git/rerere.c:1123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - istate
    - path
    - rr
    argTypes:
    - struct index_state*
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1043
    functionDepth: 12
    functionLinenumber: 1043
    functionLinenumberEnd: 1125
    functionName: rerere_forget_one_path
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - strbuf_release
    - try_merge
    - fprintf_ln
    - string_list_insert
    - has_rerere_resolution
    - free_rerere_id
    - new_rerere_id
    - rerere_path
    - read_mmfile
    - handle_cache
    - _
    - free
    - fprintf
    - unlink
    linkageType: ''
    returnType: int
    signature: "int rerere_forget_one_path(struct index_state *istate,\n\t\t\t\t  const
      char *path,\n\t\t\t\t  struct string_list *rr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/rerere.c:1133,1
    - Dst: error
      Src: /src/git/rerere.c:1134,1
    - Dst: _
      Src: /src/git/rerere.c:1134,1
    - Dst: setup_rerere
      Src: /src/git/rerere.c:1136,1
    - Dst: unmerge_index
      Src: /src/git/rerere.c:1145,1
    - Dst: find_conflict
      Src: /src/git/rerere.c:1146,1
    - Dst: match_pathspec
      Src: /src/git/rerere.c:1149,1
    - Dst: strlen
      Src: /src/git/rerere.c:1150,1
    - Dst: rerere_forget_one_path
      Src: /src/git/rerere.c:1152,1
    - Dst: write_rr
      Src: /src/git/rerere.c:1155,1
    - Dst: string_list_clear
      Src: /src/git/rerere.c:1157,1
    - Dst: string_list_clear
      Src: /src/git/rerere.c:1158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - r
    - pathspec
    argTypes:
    - struct repository*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1127
    functionDepth: 13
    functionLinenumber: 1127
    functionLinenumberEnd: 1160
    functionName: rerere_forget
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - error
    - string_list_clear
    - setup_rerere
    - unmerge_index
    - repo_read_index
    - find_conflict
    - strlen
    - match_pathspec
    - rerere_forget_one_path
    - _
    - write_rr
    linkageType: ''
    returnType: int
    signature: int rerere_forget(struct repository *r, struct pathspec *pathspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/rerere.c:1172,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:1172,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - struct rerere_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1166
    functionDepth: 9
    functionLinenumber: 1166
    functionLinenumberEnd: 1176
    functionName: rerere_created_at
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - stat
    - rerere_path
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t rerere_created_at(struct rerere_id *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/rerere.c:1184,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:1184,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - struct rerere_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1178
    functionDepth: 9
    functionLinenumber: 1178
    functionLinenumberEnd: 1188
    functionName: rerere_last_used_at
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - stat
    - rerere_path
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t rerere_last_used_at(struct rerere_id *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink_or_warn
      Src: /src/git/rerere.c:1196,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:1196,1
    - Dst: remove_variant
      Src: /src/git/rerere.c:1197,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - struct rerere_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1193
    functionDepth: 10
    functionLinenumber: 1193
    functionLinenumberEnd: 1200
    functionName: unlink_rr_item
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - remove_variant
    - strbuf_release
    - unlink_or_warn
    - rerere_path
    linkageType: ''
    returnType: void
    signature: void unlink_rr_item(struct rerere_id *id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rerere_last_used_at
      Src: /src/git/rerere.c:1208,1
    - Dst: rerere_created_at
      Src: /src/git/rerere.c:1212,1
    - Dst: unlink_rr_item
      Src: /src/git/rerere.c:1218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - id
    - cutoff_resolve
    - cutoff_noresolve
    argTypes:
    - struct rerere_id*
    - timestamp_t
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1202
    functionDepth: 11
    functionLinenumber: 1202
    functionLinenumberEnd: 1219
    functionName: prune_one
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - rerere_created_at
    - rerere_last_used_at
    - unlink_rr_item
    linkageType: ''
    returnType: void
    signature: "void prune_one(struct rerere_id *id,\n\t\t      timestamp_t cutoff_resolve,
      timestamp_t cutoff_noresolve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex
      Src: /src/git/rerere.c:1226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1222
    functionDepth: 2
    functionLinenumber: 1222
    functionLinenumberEnd: 1227
    functionName: is_rr_cache_dirname
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - parse_oid_hex
    linkageType: ''
    returnType: int
    signature: int is_rr_cache_dirname(const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/rerere.c:1235,1
    - Dst: setup_rerere
      Src: /src/git/rerere.c:1240,1
    - Dst: repo_config_get_expiry_in_days
      Src: /src/git/rerere.c:1243,1
    - Dst: repo_config_get_expiry_in_days
      Src: /src/git/rerere.c:1245,1
    - Dst: repo_config
      Src: /src/git/rerere.c:1247,1
    - Dst: opendir
      Src: /src/git/rerere.c:1248,1
    - Dst: repo_git_path_replace
      Src: /src/git/rerere.c:1248,1
    - Dst: die_errno
      Src: /src/git/rerere.c:1250,1
    - Dst: _
      Src: /src/git/rerere.c:1250,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/rerere.c:1252,1
    - Dst: is_rr_cache_dirname
      Src: /src/git/rerere.c:1257,1
    - Dst: find_rerere_dir
      Src: /src/git/rerere.c:1260,1
    - Dst: prune_one
      Src: /src/git/rerere.c:1266,1
    - Dst: string_list_append
      Src: /src/git/rerere.c:1271,1
    - Dst: closedir
      Src: /src/git/rerere.c:1273,1
    - Dst: rmdir
      Src: /src/git/rerere.c:1277,1
    - Dst: repo_git_path_replace
      Src: /src/git/rerere.c:1277,1
    - Dst: string_list_clear
      Src: /src/git/rerere.c:1280,1
    - Dst: rollback_lock_file
      Src: /src/git/rerere.c:1281,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:1282,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - r
    - rr
    argTypes:
    - struct repository*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1229
    functionDepth: 13
    functionLinenumber: 1229
    functionLinenumberEnd: 1283
    functionName: rerere_gc
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - is_rr_cache_dirname
    - string_list_clear
    - strbuf_release
    - setup_rerere
    - closedir
    - die_errno
    - opendir
    - readdir_skip_dot_and_dotdot
    - rollback_lock_file
    - string_list_append
    - repo_config_get_expiry_in_days
    - rmdir
    - find_rerere_dir
    - repo_git_path_replace
    - repo_config
    - prune_one
    - _
    - time
    linkageType: ''
    returnType: void
    signature: void rerere_gc(struct repository *r, struct string_list *rr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_rerere
      Src: /src/git/rerere.c:1296,1
    - Dst: has_rerere_resolution
      Src: /src/git/rerere.c:1303,1
    - Dst: unlink_rr_item
      Src: /src/git/rerere.c:1304,1
    - Dst: rmdir
      Src: /src/git/rerere.c:1305,1
    - Dst: rerere_path
      Src: /src/git/rerere.c:1305,1
    - Dst: strbuf_release
      Src: /src/git/rerere.c:1308,1
    - Dst: unlink_or_warn
      Src: /src/git/rerere.c:1310,1
    - Dst: git_path_merge_rr
      Src: /src/git/rerere.c:1310,1
    - Dst: rollback_lock_file
      Src: /src/git/rerere.c:1311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - r
    - merge_rr
    argTypes:
    - struct repository*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1292
    functionDepth: 13
    functionLinenumber: 1292
    functionLinenumberEnd: 1312
    functionName: rerere_clear
    functionSourceFile: /src/git/rerere.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - unlink_rr_item
    - setup_rerere
    - unlink_or_warn
    - git_path_merge_rr
    - has_rerere_resolution
    - rerere_path
    - rollback_lock_file
    - rmdir
    linkageType: ''
    returnType: void
    signature: void rerere_clear(struct repository *r, struct string_list *merge_rr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr_xml_quoted
      Src: /src/git/http-push.c:191,1
    - Dst: strbuf_detach
      Src: /src/git/http-push.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: xml_entities
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - strbuf_detach
    - strbuf_addstr_xml_quoted
    linkageType: ''
    returnType: char
    signature: char *xml_entities(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:198,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:199,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:200,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - curl
    - url
    - custom_req
    argTypes:
    - CURL*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: curl_setup_http_get
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: "void curl_setup_http_get(CURL *curl, const char *url,\n\t\tconst char
      *custom_req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:208,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:209,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:210,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:211,1
    - Dst: cast_size_t_to_curl_off_t
      Src: /src/git/http-push.c:212,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:213,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:214,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:215,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:216,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:217,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:218,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - curl
    - url
    - custom_req
    - buffer
    - write_fn
    argTypes:
    - CURL*
    - char*
    - char*
    - struct buffer*
    - curl_write_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: curl_setup_http
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - cast_size_t_to_curl_off_t
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: "void curl_setup_http(CURL *curl, const char *url,\n\t\tconst char
      *custom_req, struct buffer *buffer,\n\t\tcurl_write_callback write_fn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_copy_default_headers
      Src: /src/git/http-push.c:225,1
    - Dst: strbuf_addf
      Src: /src/git/http-push.c:228,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:229,1
    - Dst: strbuf_reset
      Src: /src/git/http-push.c:230,1
    - Dst: strbuf_addf
      Src: /src/git/http-push.c:233,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:234,1
    - Dst: strbuf_reset
      Src: /src/git/http-push.c:235,1
    - Dst: strbuf_addf
      Src: /src/git/http-push.c:238,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:239,1
    - Dst: strbuf_reset
      Src: /src/git/http-push.c:240,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - lock
    - options
    argTypes:
    - struct remote_lock*
    - enum dav_header_flag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 245
    functionName: get_dav_token_headers
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - http_copy_default_headers
    - strbuf_reset
    - strbuf_addf
    - curl_slist_append
    linkageType: ''
    returnType: struct curl_slist
    signature: struct curl_slist *get_dav_token_headers(struct remote_lock *lock,
      enum dav_header_flag options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish_request
      Src: /src/git/http-push.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: process_response
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - finish_request
    linkageType: ''
    returnType: void
    signature: void process_response(void *callback_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_http_object_request
      Src: /src/git/http-push.c:263,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:277,1
    - Dst: fprintf
      Src: /src/git/http-push.c:278,1
    - Dst: release_http_object_request
      Src: /src/git/http-push.c:280,1
    - Dst: release_request
      Src: /src/git/http-push.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct transfer_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 258
    functionDepth: 5
    functionLinenumber: 258
    functionLinenumberEnd: 283
    functionName: start_fetch_loose
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - release_http_object_request
    - new_http_object_request
    - release_request
    - fprintf
    - start_active_slot
    linkageType: ''
    returnType: void
    signature: void start_fetch_loose(struct transfer_request *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:287,1
    - Dst: get_remote_object_url
      Src: /src/git/http-push.c:290,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:292,1
    - Dst: curl_setup_http_get
      Src: /src/git/http-push.c:295,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:296,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:298,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http-push.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct transfer_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 285
    functionDepth: 4
    functionLinenumber: 285
    functionLinenumberEnd: 305
    functionName: start_mkcol
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - start_active_slot
    - curl_setup_http_get
    - FREE_AND_NULL
    - get_remote_object_url
    - get_active_slot
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void start_mkcol(struct transfer_request *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: packfile_list_find_oid
      Src: /src/git/http-push.c:314,1
    - Dst: fprintf
      Src: /src/git/http-push.c:316,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:316,1
    - Dst: release_request
      Src: /src/git/http-push.c:318,1
    - Dst: close_pack_index
      Src: /src/git/http-push.c:321,1
    - Dst: fprintf
      Src: /src/git/http-push.c:324,1
    - Dst: hash_to_hex
      Src: /src/git/http-push.c:325,1
    - Dst: fprintf
      Src: /src/git/http-push.c:326,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:326,1
    - Dst: new_http_pack_request
      Src: /src/git/http-push.c:328,1
    - Dst: strcmp
      Src: /src/git/http-push.c:337,1
    - Dst: release_http_pack_request
      Src: /src/git/http-push.c:338,1
    - Dst: release_request
      Src: /src/git/http-push.c:339,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:352,1
    - Dst: fprintf
      Src: /src/git/http-push.c:353,1
    - Dst: release_http_pack_request
      Src: /src/git/http-push.c:354,1
    - Dst: release_request
      Src: /src/git/http-push.c:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct transfer_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 358
    functionName: start_fetch_packed
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - close_pack_index
    - oid_to_hex
    - start_active_slot
    - hash_to_hex
    - release_request
    - new_http_pack_request
    - packfile_list_find_oid
    - strcmp
    - fprintf
    - release_http_pack_request
    linkageType: ''
    returnType: void
    signature: void start_fetch_packed(struct transfer_request *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:362,1
    - Dst: odb_read_object
      Src: /src/git/http-push.c:373,1
    - Dst: format_object_header
      Src: /src/git/http-push.c:375,1
    - Dst: git_deflate_init
      Src: /src/git/http-push.c:378,1
    - Dst: git_deflate_bound
      Src: /src/git/http-push.c:379,1
    - Dst: strbuf_grow
      Src: /src/git/http-push.c:380,1
    - Dst: git_deflate
      Src: /src/git/http-push.c:390,1
    - Dst: git_deflate
      Src: /src/git/http-push.c:396,1
    - Dst: git_deflate_end
      Src: /src/git/http-push.c:398,1
    - Dst: free
      Src: /src/git/http-push.c:399,1
    - Dst: strbuf_addstr
      Src: /src/git/http-push.c:403,1
    - Dst: append_remote_object_url
      Src: /src/git/http-push.c:404,1
    - Dst: strbuf_detach
      Src: /src/git/http-push.c:405,1
    - Dst: append_remote_object_url
      Src: /src/git/http-push.c:407,1
    - Dst: strbuf_add
      Src: /src/git/http-push.c:408,1
    - Dst: strbuf_detach
      Src: /src/git/http-push.c:409,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:411,1
    - Dst: curl_setup_http
      Src: /src/git/http-push.c:414,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:417,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http-push.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct transfer_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 424
    functionName: start_put
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - git_deflate_init
    - oid_to_hex
    - git_deflate
    - format_object_header
    - curl_setup_http
    - start_active_slot
    - append_remote_object_url
    - git_deflate_end
    - git_deflate_bound
    - get_active_slot
    - strbuf_detach
    - strbuf_grow
    - free
    - strbuf_addstr
    - odb_read_object
    - FREE_AND_NULL
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void start_put(struct transfer_request *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_copy_default_headers
      Src: /src/git/http-push.c:429,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:431,1
    - Dst: curl_setup_http_get
      Src: /src/git/http-push.c:434,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:435,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:436,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:437,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:439,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http-push.c:445,1
    - Dst: curl_slist_free_all
      Src: /src/git/http-push.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct transfer_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 448
    functionName: start_move
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - http_copy_default_headers
    - start_active_slot
    - curl_slist_free_all
    - curl_slist_append
    - curl_setup_http_get
    - FREE_AND_NULL
    - get_active_slot
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void start_move(struct transfer_request *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_dav_token_headers
      Src: /src/git/http-push.c:459,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:461,1
    - Dst: curl_setup_http_get
      Src: /src/git/http-push.c:463,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:464,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:466,1
    - Dst: run_active_slot
      Src: /src/git/http-push.c:467,1
    - Dst: fprintf
      Src: /src/git/http-push.c:469,1
    - Dst: time
      Src: /src/git/http-push.c:472,1
    - Dst: curl_slist_free_all
      Src: /src/git/http-push.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - lock
    argTypes:
    - struct remote_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 450
    functionDepth: 5
    functionLinenumber: 450
    functionLinenumberEnd: 481
    functionName: refresh_lock
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - run_active_slot
    - get_active_slot
    - time
    - curl_slist_free_all
    - fprintf
    - curl_setup_http_get
    - get_dav_token_headers
    - start_active_slot
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int refresh_lock(struct remote_lock *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/http-push.c:486,1
    - Dst: refresh_lock
      Src: /src/git/http-push.c:493,1
    - Dst: fprintf
      Src: /src/git/http-push.c:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 483
    functionDepth: 6
    functionLinenumber: 483
    functionLinenumberEnd: 503
    functionName: check_locks
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - fprintf
    - refresh_lock
    - time
    linkageType: ''
    returnType: void
    signature: void check_locks(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/http-push.c:518,1
    - Dst: free
      Src: /src/git/http-push.c:519,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:520,1
    - Dst: free
      Src: /src/git/http-push.c:521,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct transfer_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 522
    functionName: release_request
    functionSourceFile: /src/git/http-push.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void release_request(struct transfer_request *request)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: check_locks
      Src: /src/git/http-push.c:534,1
    - Dst: curl_slist_free_all
      Src: /src/git/http-push.c:537,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http-push.c:541,1
    - Dst: start_put
      Src: /src/git/http-push.c:548,1
    - Dst: fprintf
      Src: /src/git/http-push.c:550,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:551,1
    - Dst: start_move
      Src: /src/git/http-push.c:558,1
    - Dst: fprintf
      Src: /src/git/http-push.c:560,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:561,1
    - Dst: fprintf
      Src: /src/git/http-push.c:569,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:570,1
    - Dst: release_request
      Src: /src/git/http-push.c:572,1
    - Dst: fprintf
      Src: /src/git/http-push.c:574,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:575,1
    - Dst: finish_http_object_request
      Src: /src/git/http-push.c:583,1
    - Dst: release_http_object_request
      Src: /src/git/http-push.c:587,1
    - Dst: release_request
      Src: /src/git/http-push.c:591,1
    - Dst: start_fetch_packed
      Src: /src/git/http-push.c:593,1
    - Dst: fprintf
      Src: /src/git/http-push.c:598,1
    - Dst: finish_http_pack_request
      Src: /src/git/http-push.c:604,1
    - Dst: release_http_pack_request
      Src: /src/git/http-push.c:606,1
    - Dst: http_install_packfile
      Src: /src/git/http-push.c:612,1
    - Dst: release_request
      Src: /src/git/http-push.c:613,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct transfer_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 524
    functionDepth: 7
    functionLinenumber: 524
    functionLinenumberEnd: 615
    functionName: finish_request
    functionSourceFile: /src/git/http-push.c
    functionUses: 1
    functionsReached:
    - release_http_object_request
    - oid_to_hex
    - start_fetch_packed
    - start_move
    - start_put
    - release_request
    - finish_http_object_request
    - check_locks
    - curl_slist_free_all
    - finish_http_pack_request
    - http_install_packfile
    - FREE_AND_NULL
    - fprintf
    - release_http_pack_request
    linkageType: ''
    returnType: void
    signature: void finish_request(struct transfer_request *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: start_fetch_loose
      Src: /src/git/http-push.c:627,1
    - Dst: start_put
      Src: /src/git/http-push.c:631,1
    - Dst: start_mkcol
      Src: /src/git/http-push.c:633,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 618
    functionDepth: 6
    functionLinenumber: 618
    functionLinenumberEnd: 639
    functionName: fill_active_slot
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - start_mkcol
    - start_put
    - start_fetch_loose
    linkageType: ''
    returnType: int
    signature: int fill_active_slot(void *data UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_locks
      Src: /src/git/http-push.c:647,1
    - Dst: get_remote_object_list
      Src: /src/git/http-push.c:654,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/http-push.c:659,1
    - Dst: strbuf_init
      Src: /src/git/http-push.c:662,1
    - Dst: fill_active_slots
      Src: /src/git/http-push.c:666,1
    - Dst: step_active_slots
      Src: /src/git/http-push.c:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 643
    functionDepth: 7
    functionLinenumber: 643
    functionLinenumberEnd: 668
    functionName: add_fetch_request
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - get_remote_object_list
    - step_active_slots
    - fill_active_slots
    - check_locks
    - CALLOC_ARRAY
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: void add_fetch_request(struct object *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_locks
      Src: /src/git/http-push.c:676,1
    - Dst: get_remote_object_list
      Src: /src/git/http-push.c:683,1
    - Dst: packfile_list_find_oid
      Src: /src/git/http-push.c:686,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/http-push.c:693,1
    - Dst: strbuf_init
      Src: /src/git/http-push.c:697,1
    - Dst: fill_active_slots
      Src: /src/git/http-push.c:701,1
    - Dst: step_active_slots
      Src: /src/git/http-push.c:702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - obj
    - lock
    argTypes:
    - struct object*
    - struct remote_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 670
    functionDepth: 7
    functionLinenumber: 670
    functionLinenumberEnd: 705
    functionName: add_send_request
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - get_remote_object_list
    - step_active_slots
    - fill_active_slots
    - check_locks
    - packfile_list_find_oid
    - CALLOC_ARRAY
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: int add_send_request(struct object *obj, struct remote_lock *lock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/http-push.c:712,1
    - Dst: http_get_info_packs
      Src: /src/git/http-push.c:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 707
    functionDepth: 12
    functionLinenumber: 707
    functionLinenumberEnd: 724
    functionName: fetch_indices
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - fprintf
    - http_get_info_packs
    linkageType: ''
    returnType: int
    signature: int fetch_indices(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/http-push.c:730,1
    - Dst: parse_object
      Src: /src/git/http-push.c:732,1
    - Dst: object_list_contains
      Src: /src/git/http-push.c:739,1
    - Dst: object_list_insert
      Src: /src/git/http-push.c:740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 726
    functionDepth: 4
    functionLinenumber: 726
    functionLinenumberEnd: 741
    functionName: one_remote_object
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - object_list_contains
    - lookup_object
    - parse_object
    - object_list_insert
    linkageType: ''
    returnType: void
    signature: void one_remote_object(const struct object_id *oid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/http-push.c:748,1
    - Dst: strcmp
      Src: /src/git/http-push.c:754,1
    - Dst: strcmp
      Src: /src/git/http-push.c:756,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - tag_closed
    argTypes:
    - struct xml_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 760
    functionName: handle_lockprop_ctx
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void handle_lockprop_ctx(struct xml_ctx *ctx, int tag_closed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/http-push.c:769,1
    - Dst: xstrdup
      Src: /src/git/http-push.c:770,1
    - Dst: strcmp
      Src: /src/git/http-push.c:771,1
    - Dst: skip_prefix
      Src: /src/git/http-push.c:773,1
    - Dst: strtol
      Src: /src/git/http-push.c:774,1
    - Dst: strcmp
      Src: /src/git/http-push.c:775,1
    - Dst: xstrdup
      Src: /src/git/http-push.c:776,1
    - Dst: init_fn
      Src: /src/git/http-push.c:778,1
    - Dst: git_hash_update
      Src: /src/git/http-push.c:779,1
    - Dst: strlen
      Src: /src/git/http-push.c:779,1
    - Dst: git_hash_final
      Src: /src/git/http-push.c:780,1
    - Dst: memcpy
      Src: /src/git/http-push.c:783,1
    - Dst: hash_to_hex
      Src: /src/git/http-push.c:783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - tag_closed
    argTypes:
    - struct xml_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 786
    functionName: handle_new_lock_ctx
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - hash_to_hex
    - git_hash_final
    - memcpy
    - strlen
    - strcmp
    - strtol
    - git_hash_update
    - skip_prefix
    - init_fn
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void handle_new_lock_ctx(struct xml_ctx *ctx, int tag_closed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/http-push.c:794,1
    - Dst: strlen
      Src: /src/git/http-push.c:802,1
    - Dst: strlen
      Src: /src/git/http-push.c:803,1
    - Dst: xrealloc
      Src: /src/git/http-push.c:806,1
    - Dst: xsnprintf
      Src: /src/git/http-push.c:809,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http-push.c:811,1
    - Dst: struct xml_ctx*::userFunc
      Src: /src/git/http-push.c:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - userData
    - name
    - UNUSED
    argTypes:
    - void*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 790
    functionDepth: 7
    functionLinenumber: 790
    functionLinenumberEnd: 814
    functionName: xml_start_tag
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - struct xml_ctx*::userFunc
    - strchr
    - xrealloc
    - strlen
    - xsnprintf
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void xml_start_tag(void *userData, const char *name, const char **atts
      UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/http-push.c:820,1
    - Dst: struct xml_ctx*::userFunc
      Src: /src/git/http-push.c:823,1
    - Dst: strlen
      Src: /src/git/http-push.c:830,1
    - Dst: strlen
      Src: /src/git/http-push.c:830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - userData
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 832
    functionName: xml_end_tag
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - strlen
    - struct xml_ctx*::userFunc
    - strchr
    linkageType: ''
    returnType: void
    signature: void xml_end_tag(void *userData, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/http-push.c:838,1
    - Dst: xmemdupz
      Src: /src/git/http-push.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - userData
    - s
    - len
    argTypes:
    - void*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 834
    functionDepth: 10
    functionLinenumber: 834
    functionLinenumberEnd: 840
    functionName: xml_cdata
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - free
    linkageType: ''
    returnType: void
    signature: void xml_cdata(void *userData, const XML_Char *s, int len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: http_copy_default_headers
      Src: /src/git/http-push.c:852,1
    - Dst: xstrfmt
      Src: /src/git/http-push.c:856,1
    - Dst: strchr
      Src: /src/git/http-push.c:859,1
    - Dst: strlen
      Src: /src/git/http-push.c:859,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:863,1
    - Dst: curl_setup_http_get
      Src: /src/git/http-push.c:865,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:866,1
    - Dst: run_active_slot
      Src: /src/git/http-push.c:867,1
    - Dst: fprintf
      Src: /src/git/http-push.c:870,1
    - Dst: free
      Src: /src/git/http-push.c:873,1
    - Dst: fprintf
      Src: /src/git/http-push.c:877,1
    - Dst: free
      Src: /src/git/http-push.c:878,1
    - Dst: strchr
      Src: /src/git/http-push.c:882,1
    - Dst: xml_entities
      Src: /src/git/http-push.c:885,1
    - Dst: ident_default_email
      Src: /src/git/http-push.c:885,1
    - Dst: strbuf_addf
      Src: /src/git/http-push.c:886,1
    - Dst: free
      Src: /src/git/http-push.c:887,1
    - Dst: xsnprintf
      Src: /src/git/http-push.c:889,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:890,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:891,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:893,1
    - Dst: curl_setup_http
      Src: /src/git/http-push.c:895,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:896,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:897,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/http-push.c:899,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:902,1
    - Dst: run_active_slot
      Src: /src/git/http-push.c:903,1
    - Dst: XML_ParserCreate
      Src: /src/git/http-push.c:905,1
    - Dst: xcalloc
      Src: /src/git/http-push.c:907,1
    - Dst: XML_SetUserData
      Src: /src/git/http-push.c:912,1
    - Dst: XML_SetElementHandler
      Src: /src/git/http-push.c:913,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/git/http-push.c:915,1
    - Dst: XML_Parse
      Src: /src/git/http-push.c:916,1
    - Dst: free
      Src: /src/git/http-push.c:918,1
    - Dst: free
      Src: /src/git/http-push.c:919,1
    - Dst: fprintf
      Src: /src/git/http-push.c:921,1
    - Dst: XML_ErrorString
      Src: /src/git/http-push.c:922,1
    - Dst: XML_GetErrorCode
      Src: /src/git/http-push.c:923,1
    - Dst: XML_ParserFree
      Src: /src/git/http-push.c:926,1
    - Dst: fprintf
      Src: /src/git/http-push.c:928,1
    - Dst: fprintf
      Src: /src/git/http-push.c:933,1
    - Dst: curl_slist_free_all
      Src: /src/git/http-push.c:936,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:937,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:938,1
    - Dst: free
      Src: /src/git/http-push.c:941,1
    - Dst: free
      Src: /src/git/http-push.c:942,1
    - Dst: free
      Src: /src/git/http-push.c:943,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http-push.c:944,1
    - Dst: time
      Src: /src/git/http-push.c:947,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 76
    argCount: 2
    argNames:
    - path
    - timeout
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 842
    functionDepth: 7
    functionLinenumber: 842
    functionLinenumberEnd: 953
    functionName: lock_remote
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - run_active_slot
    - XML_SetUserData
    - strbuf_addf
    - strchr
    - XML_SetElementHandler
    - curl_slist_free_all
    - xsnprintf
    - CALLOC_ARRAY
    - free
    - curl_setup_http_get
    - strbuf_release
    - http_copy_default_headers
    - curl_setup_http
    - XML_ErrorString
    - XML_SetCharacterDataHandler
    - xcalloc
    - curl_easy_setopt
    - ident_default_email
    - XML_GetErrorCode
    - FREE_AND_NULL
    - start_active_slot
    - XML_ParserFree
    - xstrfmt
    - XML_Parse
    - strlen
    - XML_ParserCreate
    - curl_slist_append
    - xml_entities
    - fprintf
    - get_active_slot
    - time
    linkageType: ''
    returnType: struct remote_lock
    signature: struct remote_lock *lock_remote(const char *path, long timeout)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_dav_token_headers
      Src: /src/git/http-push.c:963,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:965,1
    - Dst: curl_setup_http_get
      Src: /src/git/http-push.c:967,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:968,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:970,1
    - Dst: run_active_slot
      Src: /src/git/http-push.c:971,1
    - Dst: fprintf
      Src: /src/git/http-push.c:975,1
    - Dst: fprintf
      Src: /src/git/http-push.c:978,1
    - Dst: curl_slist_free_all
      Src: /src/git/http-push.c:981,1
    - Dst: free
      Src: /src/git/http-push.c:992,1
    - Dst: free
      Src: /src/git/http-push.c:993,1
    - Dst: free
      Src: /src/git/http-push.c:994,1
    - Dst: free
      Src: /src/git/http-push.c:995,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - lock
    argTypes:
    - struct remote_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 955
    functionDepth: 5
    functionLinenumber: 955
    functionLinenumberEnd: 998
    functionName: unlock_remote
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - run_active_slot
    - get_active_slot
    - curl_slist_free_all
    - fprintf
    - free
    - curl_setup_http_get
    - get_dav_token_headers
    - start_active_slot
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int unlock_remote(struct remote_lock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/http-push.c:1004,1
    - Dst: unlock_remote
      Src: /src/git/http-push.c:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1000
    functionDepth: 6
    functionLinenumber: 1000
    functionLinenumberEnd: 1010
    functionName: remove_locks
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - unlock_remote
    - fprintf
    linkageType: ''
    returnType: void
    signature: void remove_locks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_locks
      Src: /src/git/http-push.c:1014,1
    - Dst: sigchain_pop
      Src: /src/git/http-push.c:1015,1
    - Dst: raise
      Src: /src/git/http-push.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1012
    functionDepth: 7
    functionLinenumber: 1012
    functionLinenumberEnd: 1017
    functionName: remove_locks_on_signal
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - sigchain_pop
    - remove_locks
    - raise
    linkageType: ''
    returnType: void
    signature: void remove_locks_on_signal(int signo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/http-push.c:1026,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/http-push.c:1027,1
    - Dst: strlen
      Src: /src/git/http-push.c:1029,1
    - Dst: hex_to_bytes
      Src: /src/git/http-push.c:1032,1
    - Dst: hex_to_bytes
      Src: /src/git/http-push.c:1037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - path
    - oid
    argTypes:
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1024
    functionDepth: 2
    functionLinenumber: 1024
    functionLinenumberEnd: 1038
    functionName: get_oid_hex_from_objpath
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - memset
    - hex_to_bytes
    - strlen
    - hash_algo_by_ptr
    linkageType: ''
    returnType: int
    signature: int get_oid_hex_from_objpath(const char *path, struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/http-push.c:1046,1
    - Dst: skip_prefix
      Src: /src/git/http-push.c:1051,1
    - Dst: get_oid_hex_from_objpath
      Src: /src/git/http-push.c:1052,1
    - Dst: one_remote_object
      Src: /src/git/http-push.c:1055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ls
    argTypes:
    - struct remote_ls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1040
    functionDepth: 5
    functionLinenumber: 1040
    functionLinenumberEnd: 1056
    functionName: process_ls_object
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - get_oid_hex_from_objpath
    - one_remote_object
    - skip_prefix
    - strcmp
    linkageType: ''
    returnType: void
    signature: void process_ls_object(struct remote_ls_ctx *ls)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/http-push.c:1060,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1061,1
    - Dst: one_remote_ref
      Src: /src/git/http-push.c:1066,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ls
    argTypes:
    - struct remote_ls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1067
    functionName: process_ls_ref
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - one_remote_ref
    - fprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: void process_ls_ref(struct remote_ls_ctx *ls)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/http-push.c:1074,1
    - Dst: str_end_url_with_slash
      Src: /src/git/http-push.c:1078,1
    - Dst: struct remote_ls_ctx*::userFunc
      Src: /src/git/http-push.c:1081,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1083,1
    - Dst: remote_ls
      Src: /src/git/http-push.c:1085,1
    - Dst: struct remote_ls_ctx*::userFunc
      Src: /src/git/http-push.c:1091,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1093,1
    - Dst: strstr
      Src: /src/git/http-push.c:1096,1
    - Dst: strchr
      Src: /src/git/http-push.c:1098,1
    - Dst: strncmp
      Src: /src/git/http-push.c:1105,1
    - Dst: error
      Src: /src/git/http-push.c:1106,1
    - Dst: xstrdup
      Src: /src/git/http-push.c:1110,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1113,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1116,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http-push.c:1117,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - ctx
    - tag_closed
    argTypes:
    - struct xml_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1069
    functionDepth: 3
    functionLinenumber: 1069
    functionLinenumberEnd: 1120
    functionName: handle_remote_ls_ctx
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - error
    - remote_ls
    - strstr
    - strchr
    - str_end_url_with_slash
    - strcmp
    - strncmp
    - FREE_AND_NULL
    - struct remote_ls_ctx*::userFunc
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void handle_remote_ls_ctx(struct xml_ctx *ctx, int tag_closed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/http-push.c:1132,1
    - Dst: http_copy_default_headers
      Src: /src/git/http-push.c:1137,1
    - Dst: xstrdup
      Src: /src/git/http-push.c:1142,1
    - Dst: strbuf_addstr
      Src: /src/git/http-push.c:1148,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:1150,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:1151,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:1153,1
    - Dst: curl_setup_http
      Src: /src/git/http-push.c:1155,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:1157,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:1158,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:1160,1
    - Dst: run_active_slot
      Src: /src/git/http-push.c:1161,1
    - Dst: XML_ParserCreate
      Src: /src/git/http-push.c:1163,1
    - Dst: xcalloc
      Src: /src/git/http-push.c:1165,1
    - Dst: XML_SetUserData
      Src: /src/git/http-push.c:1170,1
    - Dst: XML_SetElementHandler
      Src: /src/git/http-push.c:1171,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/git/http-push.c:1173,1
    - Dst: XML_Parse
      Src: /src/git/http-push.c:1174,1
    - Dst: free
      Src: /src/git/http-push.c:1176,1
    - Dst: free
      Src: /src/git/http-push.c:1177,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1180,1
    - Dst: XML_ErrorString
      Src: /src/git/http-push.c:1181,1
    - Dst: XML_GetErrorCode
      Src: /src/git/http-push.c:1182,1
    - Dst: XML_ParserFree
      Src: /src/git/http-push.c:1184,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1187,1
    - Dst: free
      Src: /src/git/http-push.c:1190,1
    - Dst: free
      Src: /src/git/http-push.c:1191,1
    - Dst: free
      Src: /src/git/http-push.c:1192,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:1193,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:1194,1
    - Dst: curl_slist_free_all
      Src: /src/git/http-push.c:1195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 3
    argNames:
    - path
    - flags
    - userData
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1128
    functionDepth: 7
    functionLinenumber: 1128
    functionLinenumberEnd: 1196
    functionName: remote_ls
    functionSourceFile: /src/git/http-push.c
    functionUses: 1
    functionsReached:
    - run_active_slot
    - XML_SetUserData
    - XML_SetElementHandler
    - curl_slist_free_all
    - free
    - strbuf_release
    - http_copy_default_headers
    - curl_setup_http
    - XML_ErrorString
    - XML_SetCharacterDataHandler
    - strbuf_addstr
    - xcalloc
    - curl_easy_setopt
    - XML_GetErrorCode
    - start_active_slot
    - xstrdup
    - XML_ParserFree
    - xstrfmt
    - XML_Parse
    - XML_ParserCreate
    - curl_slist_append
    - fprintf
    - get_active_slot
    linkageType: ''
    returnType: void
    signature: "void remote_ls(const char *path, int flags,\n\t\t      void (*userFunc)(struct
      remote_ls_ctx *ls),\n\t\t      void *userData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remote_ls
      Src: /src/git/http-push.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - parent
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1198
    functionDepth: 8
    functionLinenumber: 1198
    functionLinenumberEnd: 1209
    functionName: get_remote_object_list
    functionSourceFile: /src/git/http-push.c
    functionUses: 2
    functionsReached:
    - remote_ls
    linkageType: ''
    returnType: void
    signature: void get_remote_object_list(unsigned char parent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_copy_default_headers
      Src: /src/git/http-push.c:1217,1
    - Dst: xml_entities
      Src: /src/git/http-push.c:1222,1
    - Dst: strbuf_addf
      Src: /src/git/http-push.c:1223,1
    - Dst: free
      Src: /src/git/http-push.c:1224,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:1226,1
    - Dst: curl_slist_append
      Src: /src/git/http-push.c:1227,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:1229,1
    - Dst: curl_setup_http
      Src: /src/git/http-push.c:1231,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:1233,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:1234,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:1236,1
    - Dst: run_active_slot
      Src: /src/git/http-push.c:1237,1
    - Dst: XML_ParserCreate
      Src: /src/git/http-push.c:1239,1
    - Dst: xcalloc
      Src: /src/git/http-push.c:1241,1
    - Dst: XML_SetUserData
      Src: /src/git/http-push.c:1246,1
    - Dst: XML_SetElementHandler
      Src: /src/git/http-push.c:1247,1
    - Dst: XML_Parse
      Src: /src/git/http-push.c:1249,1
    - Dst: free
      Src: /src/git/http-push.c:1251,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1254,1
    - Dst: XML_ErrorString
      Src: /src/git/http-push.c:1255,1
    - Dst: XML_GetErrorCode
      Src: /src/git/http-push.c:1256,1
    - Dst: XML_ParserFree
      Src: /src/git/http-push.c:1259,1
    - Dst: error
      Src: /src/git/http-push.c:1261,1
    - Dst: error
      Src: /src/git/http-push.c:1265,1
    - Dst: error
      Src: /src/git/http-push.c:1270,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:1273,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:1274,1
    - Dst: curl_slist_free_all
      Src: /src/git/http-push.c:1275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1211
    functionDepth: 7
    functionLinenumber: 1211
    functionLinenumberEnd: 1278
    functionName: locking_available
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - run_active_slot
    - XML_SetUserData
    - strbuf_addf
    - XML_SetElementHandler
    - curl_slist_free_all
    - free
    - error
    - strbuf_release
    - http_copy_default_headers
    - curl_setup_http
    - XML_ErrorString
    - xcalloc
    - curl_easy_setopt
    - XML_GetErrorCode
    - start_active_slot
    - XML_ParserFree
    - XML_Parse
    - XML_ParserCreate
    - curl_slist_append
    - xml_entities
    - fprintf
    - get_active_slot
    linkageType: ''
    returnType: int
    signature: int locking_available(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/http-push.c:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1287
    functionName: add_one_object
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: struct object_list
    signature: struct object_list **add_one_object(struct object *obj, struct object_list
      **p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_one_object
      Src: /src/git/http-push.c:1300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1301
    functionName: process_blob
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - add_one_object
    linkageType: ''
    returnType: struct object_list
    signature: "struct object_list **process_blob(struct blob *blob,\n\t\t\t\t\t struct
      object_list **p)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree
      Src: /src/git/http-push.c:1314,1
    - Dst: die
      Src: /src/git/http-push.c:1315,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1315,1
    - Dst: add_one_object
      Src: /src/git/http-push.c:1318,1
    - Dst: init_tree_desc
      Src: /src/git/http-push.c:1320,1
    - Dst: tree_entry
      Src: /src/git/http-push.c:1322,1
    - Dst: object_type
      Src: /src/git/http-push.c:1323,1
    - Dst: process_tree
      Src: /src/git/http-push.c:1325,1
    - Dst: lookup_tree
      Src: /src/git/http-push.c:1325,1
    - Dst: process_blob
      Src: /src/git/http-push.c:1329,1
    - Dst: lookup_blob
      Src: /src/git/http-push.c:1329,1
    - Dst: free_tree_buffer
      Src: /src/git/http-push.c:1337,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1303
    functionDepth: 6
    functionLinenumber: 1303
    functionLinenumberEnd: 1339
    functionName: process_tree
    functionSourceFile: /src/git/http-push.c
    functionUses: 1
    functionsReached:
    - object_type
    - oid_to_hex
    - die
    - tree_entry
    - process_tree
    - process_blob
    - repo_parse_tree
    - free_tree_buffer
    - lookup_blob
    - add_one_object
    - lookup_tree
    - init_tree_desc
    linkageType: ''
    returnType: struct object_list
    signature: "struct object_list **process_tree(struct tree *tree,\n\t\t\t\t\t struct
      object_list **p)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_revision
      Src: /src/git/http-push.c:1347,1
    - Dst: process_tree
      Src: /src/git/http-push.c:1348,1
    - Dst: repo_get_commit_tree
      Src: /src/git/http-push.c:1348,1
    - Dst: add_send_request
      Src: /src/git/http-push.c:1352,1
    - Dst: add_one_object
      Src: /src/git/http-push.c:1364,1
    - Dst: process_tree
      Src: /src/git/http-push.c:1368,1
    - Dst: process_blob
      Src: /src/git/http-push.c:1372,1
    - Dst: die
      Src: /src/git/http-push.c:1375,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1375,1
    - Dst: add_send_request
      Src: /src/git/http-push.c:1382,1
    - Dst: free
      Src: /src/git/http-push.c:1384,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - revs
    - lock
    argTypes:
    - struct rev_info*
    - struct remote_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1341
    functionDepth: 13
    functionLinenumber: 1341
    functionLinenumberEnd: 1389
    functionName: get_delta
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - process_tree
    - die
    - repo_get_commit_tree
    - get_revision
    - free
    - add_one_object
    - add_send_request
    - process_blob
    linkageType: ''
    returnType: int
    signature: int get_delta(struct rev_info *revs, struct remote_lock *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_dav_token_headers
      Src: /src/git/http-push.c:1398,1
    - Dst: strbuf_addf
      Src: /src/git/http-push.c:1400,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1400,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:1402,1
    - Dst: curl_setup_http
      Src: /src/git/http-push.c:1404,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:1406,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:1408,1
    - Dst: run_active_slot
      Src: /src/git/http-push.c:1409,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:1410,1
    - Dst: curl_slist_free_all
      Src: /src/git/http-push.c:1411,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1413,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:1420,1
    - Dst: curl_slist_free_all
      Src: /src/git/http-push.c:1421,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - oid
    - lock
    argTypes:
    - struct object_id*
    - struct remote_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1391
    functionDepth: 5
    functionLinenumber: 1391
    functionLinenumberEnd: 1427
    functionName: update_remote
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - run_active_slot
    - strbuf_release
    - oid_to_hex
    - start_active_slot
    - curl_setup_http
    - strbuf_addf
    - curl_slist_free_all
    - fprintf
    - get_dav_token_headers
    - get_active_slot
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int update_remote(const struct object_id *oid, struct remote_lock *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_ref
      Src: /src/git/http-push.c:1436,1
    - Dst: http_fetch_ref
      Src: /src/git/http-push.c:1438,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1439,1
    - Dst: free
      Src: /src/git/http-push.c:1442,1
    - Dst: odb_has_object
      Src: /src/git/http-push.c:1451,1
    - Dst: lookup_unknown_object
      Src: /src/git/http-push.c:1453,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1454,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1455,1
    - Dst: add_fetch_request
      Src: /src/git/http-push.c:1456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1431
    functionDepth: 10
    functionLinenumber: 1431
    functionLinenumberEnd: 1461
    functionName: one_remote_ref
    functionSourceFile: /src/git/http-push.c
    functionUses: 1
    functionsReached:
    - add_fetch_request
    - oid_to_hex
    - lookup_unknown_object
    - odb_has_object
    - http_fetch_ref
    - free
    - alloc_ref
    - fprintf
    linkageType: ''
    returnType: void
    signature: void one_remote_ref(const char *refname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remote_ls
      Src: /src/git/http-push.c:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1463
    functionDepth: 8
    functionLinenumber: 1463
    functionLinenumberEnd: 1466
    functionName: get_dav_remote_heads
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - remote_ls
    linkageType: ''
    returnType: void
    signature: void get_dav_remote_heads(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloc_ref
      Src: /src/git/http-push.c:1474,1
    - Dst: http_fetch_ref
      Src: /src/git/http-push.c:1476,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1477,1
    - Dst: free
      Src: /src/git/http-push.c:1481,1
    - Dst: parse_object
      Src: /src/git/http-push.c:1485,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1487,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1489,1
    - Dst: free
      Src: /src/git/http-push.c:1491,1
    - Dst: strbuf_addf
      Src: /src/git/http-push.c:1495,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1496,1
    - Dst: deref_tag
      Src: /src/git/http-push.c:1499,1
    - Dst: strbuf_addf
      Src: /src/git/http-push.c:1501,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1502,1
    - Dst: free
      Src: /src/git/http-push.c:1504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ls
    argTypes:
    - struct remote_ls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1468
    functionDepth: 10
    functionLinenumber: 1468
    functionLinenumberEnd: 1505
    functionName: add_remote_info_ref
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - deref_tag
    - strbuf_addf
    - parse_object
    - http_fetch_ref
    - free
    - alloc_ref
    - fprintf
    linkageType: ''
    returnType: void
    signature: void add_remote_info_ref(struct remote_ls_ctx *ls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: remote_ls
      Src: /src/git/http-push.c:1514,1
    - Dst: get_dav_token_headers
      Src: /src/git/http-push.c:1517,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:1519,1
    - Dst: curl_setup_http
      Src: /src/git/http-push.c:1521,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-push.c:1523,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:1525,1
    - Dst: run_active_slot
      Src: /src/git/http-push.c:1526,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1528,1
    - Dst: curl_slist_free_all
      Src: /src/git/http-push.c:1533,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:1535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - lock
    argTypes:
    - struct remote_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1507
    functionDepth: 8
    functionLinenumber: 1507
    functionLinenumberEnd: 1536
    functionName: update_remote_info_refs
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - run_active_slot
    - strbuf_release
    - remote_ls
    - start_active_slot
    - curl_setup_http
    - curl_slist_free_all
    - fprintf
    - get_dav_token_headers
    - get_active_slot
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void update_remote_info_refs(struct remote_lock *lock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/http-push.c:1540,1
    - Dst: http_get_strbuf
      Src: /src/git/http-push.c:1544,1
    - Dst: error
      Src: /src/git/http-push.c:1552,1
    - Dst: free
      Src: /src/git/http-push.c:1557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1538
    functionDepth: 9
    functionLinenumber: 1538
    functionLinenumberEnd: 1559
    functionName: remote_exists
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - error
    - http_get_strbuf
    - xstrfmt
    - free
    linkageType: ''
    returnType: int
    signature: int remote_exists(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/http-push.c:1563,1
    - Dst: http_get_strbuf
      Src: /src/git/http-push.c:1567,1
    - Dst: die
      Src: /src/git/http-push.c:1568,1
    - Dst: free
      Src: /src/git/http-push.c:1570,1
    - Dst: FREE_AND_NULL
      Src: /src/git/http-push.c:1572,1
    - Dst: oidclr
      Src: /src/git/http-push.c:1573,1
    - Dst: strbuf_rtrim
      Src: /src/git/http-push.c:1579,1
    - Dst: skip_prefix
      Src: /src/git/http-push.c:1582,1
    - Dst: xmemdupz
      Src: /src/git/http-push.c:1583,1
    - Dst: get_oid_hex
      Src: /src/git/http-push.c:1585,1
    - Dst: strbuf_release
      Src: /src/git/http-push.c:1588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - path
    - symref
    - oid
    argTypes:
    - char*
    - char**
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1561
    functionDepth: 10
    functionLinenumber: 1561
    functionLinenumberEnd: 1589
    functionName: fetch_symref
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strbuf_release
    - die
    - get_oid_hex
    - xstrfmt
    - oidclr
    - free
    - http_get_strbuf
    - skip_prefix
    - FREE_AND_NULL
    - strbuf_rtrim
    linkageType: ''
    returnType: void
    signature: void fetch_symref(const char *path, char **symref, struct object_id
      *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_or_die
      Src: /src/git/http-push.c:1593,1
    - Dst: lookup_commit_or_die
      Src: /src/git/http-push.c:1594,1
    - Dst: repo_in_merge_bases
      Src: /src/git/http-push.c:1596,1
    - Dst: exit
      Src: /src/git/http-push.c:1599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - head_oid
    - remote
    argTypes:
    - struct object_id*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1601
    functionName: verify_merge_base
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - exit
    - repo_in_merge_bases
    - lookup_commit_or_die
    linkageType: ''
    returnType: int
    signature: int verify_merge_base(struct object_id *head_oid, struct ref *remote)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/http-push.c:1610,1
    - Dst: strlen
      Src: /src/git/http-push.c:1619,1
    - Dst: memcmp
      Src: /src/git/http-push.c:1621,1
    - Dst: error
      Src: /src/git/http-push.c:1629,1
    - Dst: error
      Src: /src/git/http-push.c:1631,1
    - Dst: fetch_symref
      Src: /src/git/http-push.c:1638,1
    - Dst: error
      Src: /src/git/http-push.c:1640,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1644,1
    - Dst: error
      Src: /src/git/http-push.c:1645,1
    - Dst: fetch_symref
      Src: /src/git/http-push.c:1647,1
    - Dst: error
      Src: /src/git/http-push.c:1654,1
    - Dst: is_null_oid
      Src: /src/git/http-push.c:1655,1
    - Dst: error
      Src: /src/git/http-push.c:1656,1
    - Dst: odb_has_object
      Src: /src/git/http-push.c:1657,1
    - Dst: error
      Src: /src/git/http-push.c:1659,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1659,1
    - Dst: is_null_oid
      Src: /src/git/http-push.c:1662,1
    - Dst: error
      Src: /src/git/http-push.c:1663,1
    - Dst: odb_has_object
      Src: /src/git/http-push.c:1665,1
    - Dst: error
      Src: /src/git/http-push.c:1667,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1667,1
    - Dst: verify_merge_base
      Src: /src/git/http-push.c:1670,1
    - Dst: error
      Src: /src/git/http-push.c:1671,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1680,1
    - Dst: xstrfmt
      Src: /src/git/http-push.c:1683,1
    - Dst: get_active_slot
      Src: /src/git/http-push.c:1684,1
    - Dst: curl_setup_http_get
      Src: /src/git/http-push.c:1686,1
    - Dst: start_active_slot
      Src: /src/git/http-push.c:1687,1
    - Dst: run_active_slot
      Src: /src/git/http-push.c:1688,1
    - Dst: free
      Src: /src/git/http-push.c:1689,1
    - Dst: error
      Src: /src/git/http-push.c:1691,1
    - Dst: free
      Src: /src/git/http-push.c:1694,1
    - Dst: error
      Src: /src/git/http-push.c:1695,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 2
    argNames:
    - pattern
    - force
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1603
    functionDepth: 11
    functionLinenumber: 1603
    functionLinenumberEnd: 1699
    functionName: delete_remote_branch
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - error
    - run_active_slot
    - oid_to_hex
    - start_active_slot
    - verify_merge_base
    - xstrfmt
    - free
    - is_null_oid
    - odb_has_object
    - strlen
    - strcmp
    - curl_setup_http_get
    - fetch_symref
    - fprintf
    - get_active_slot
    - memcmp
    linkageType: ''
    returnType: int
    signature: int delete_remote_branch(const char *pattern, int force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill_active_slots
      Src: /src/git/http-push.c:1704,1
    - Dst: add_fill_function
      Src: /src/git/http-push.c:1705,1
    - Dst: finish_all_active_slots
      Src: /src/git/http-push.c:1707,1
    - Dst: fill_active_slots
      Src: /src/git/http-push.c:1708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1701
    functionDepth: 6
    functionLinenumber: 1701
    functionLinenumberEnd: 1712
    functionName: run_request_queue
    functionSourceFile: /src/git/http-push.c
    functionUses: 0
    functionsReached:
    - add_fill_function
    - fill_active_slots
    - finish_all_active_slots
    linkageType: ''
    returnType: void
    signature: void run_request_queue(void)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/http-push.c:1730,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1737,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1741,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1745,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1749,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1753,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1758,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1762,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1767,1
    - Dst: usage
      Src: /src/git/http-push.c:1768,1
    - Dst: strstr
      Src: /src/git/http-push.c:1771,1
    - Dst: str_end_url_with_slash
      Src: /src/git/http-push.c:1772,1
    - Dst: strlen
      Src: /src/git/http-push.c:1773,1
    - Dst: strchr
      Src: /src/git/http-push.c:1775,1
    - Dst: strlen
      Src: /src/git/http-push.c:1777,1
    - Dst: refspec_appendn
      Src: /src/git/http-push.c:1781,1
    - Dst: usage
      Src: /src/git/http-push.c:1786,1
    - Dst: die
      Src: /src/git/http-push.c:1789,1
    - Dst: setup_git_directory
      Src: /src/git/http-push.c:1791,1
    - Dst: memset
      Src: /src/git/http-push.c:1793,1
    - Dst: http_init
      Src: /src/git/http-push.c:1795,1
    - Dst: locking_available
      Src: /src/git/http-push.c:1800,1
    - Dst: sigchain_push_common
      Src: /src/git/http-push.c:1805,1
    - Dst: remote_exists
      Src: /src/git/http-push.c:1809,1
    - Dst: remote_exists
      Src: /src/git/http-push.c:1810,1
    - Dst: lock_remote
      Src: /src/git/http-push.c:1812,1
    - Dst: error
      Src: /src/git/http-push.c:1816,1
    - Dst: fetch_indices
      Src: /src/git/http-push.c:1822,1
    - Dst: get_local_heads
      Src: /src/git/http-push.c:1825,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1826,1
    - Dst: get_dav_remote_heads
      Src: /src/git/http-push.c:1827,1
    - Dst: run_request_queue
      Src: /src/git/http-push.c:1828,1
    - Dst: delete_remote_branch
      Src: /src/git/http-push.c:1833,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1834,1
    - Dst: printf
      Src: /src/git/http-push.c:1837,1
    - Dst: match_push_refs
      Src: /src/git/http-push.c:1843,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1848,1
    - Dst: printf
      Src: /src/git/http-push.c:1850,1
    - Dst: is_null_oid
      Src: /src/git/http-push.c:1863,1
    - Dst: delete_remote_branch
      Src: /src/git/http-push.c:1864,1
    - Dst: error
      Src: /src/git/http-push.c:1865,1
    - Dst: printf
      Src: /src/git/http-push.c:1867,1
    - Dst: printf
      Src: /src/git/http-push.c:1871,1
    - Dst: oideq
      Src: /src/git/http-push.c:1876,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1879,1
    - Dst: printf
      Src: /src/git/http-push.c:1881,1
    - Dst: is_null_oid
      Src: /src/git/http-push.c:1886,1
    - Dst: odb_has_object
      Src: /src/git/http-push.c:1888,1
    - Dst: ref_newer
      Src: /src/git/http-push.c:1890,1
    - Dst: error
      Src: /src/git/http-push.c:1901,1
    - Dst: printf
      Src: /src/git/http-push.c:1908,1
    - Dst: oidcpy
      Src: /src/git/http-push.c:1913,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1916,1
    - Dst: strcmp
      Src: /src/git/http-push.c:1917,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1918,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1919,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1920,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1920,1
    - Dst: printf
      Src: /src/git/http-push.c:1923,1
    - Dst: lock_remote
      Src: /src/git/http-push.c:1928,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1930,1
    - Dst: printf
      Src: /src/git/http-push.c:1933,1
    - Dst: strvec_push
      Src: /src/git/http-push.c:1939,1
    - Dst: strvec_push
      Src: /src/git/http-push.c:1940,1
    - Dst: strvec_push
      Src: /src/git/http-push.c:1941,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1941,1
    - Dst: is_null_oid
      Src: /src/git/http-push.c:1942,1
    - Dst: strvec_pushf
      Src: /src/git/http-push.c:1943,1
    - Dst: oid_to_hex
      Src: /src/git/http-push.c:1944,1
    - Dst: repo_init_revisions
      Src: /src/git/http-push.c:1945,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/http-push.c:1946,1
    - Dst: prepare_revision_walk
      Src: /src/git/http-push.c:1951,1
    - Dst: die
      Src: /src/git/http-push.c:1952,1
    - Dst: mark_edges_uninteresting
      Src: /src/git/http-push.c:1953,1
    - Dst: get_delta
      Src: /src/git/http-push.c:1954,1
    - Dst: finish_all_active_slots
      Src: /src/git/http-push.c:1955,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1961,1
    - Dst: run_request_queue
      Src: /src/git/http-push.c:1964,1
    - Dst: update_remote
      Src: /src/git/http-push.c:1967,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1971,1
    - Dst: printf
      Src: /src/git/http-push.c:1973,1
    - Dst: unlock_remote
      Src: /src/git/http-push.c:1974,1
    - Dst: check_locks
      Src: /src/git/http-push.c:1975,1
    - Dst: strvec_clear
      Src: /src/git/http-push.c:1976,1
    - Dst: release_revisions
      Src: /src/git/http-push.c:1977,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1983,1
    - Dst: update_remote_info_refs
      Src: /src/git/http-push.c:1985,1
    - Dst: fprintf
      Src: /src/git/http-push.c:1987,1
    - Dst: unlock_remote
      Src: /src/git/http-push.c:1993,1
    - Dst: free
      Src: /src/git/http-push.c:1994,1
    - Dst: free
      Src: /src/git/http-push.c:1995,1
    - Dst: http_cleanup
      Src: /src/git/http-push.c:1997,1
    - Dst: release_request
      Src: /src/git/http-push.c:2002,1
    - Dst: refspec_clear
      Src: /src/git/http-push.c:2006,1
    - Dst: free_refs
      Src: /src/git/http-push.c:2007,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 211
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1714
    functionDepth: 15
    functionLinenumber: 1714
    functionLinenumberEnd: 2010
    functionName: cmd_main
    functionSourceFile: /src/git/http-push.c
    functionUses: 1
    functionsReached:
    - sigchain_push_common
    - strvec_push
    - refspec_appendn
    - setup_git_directory
    - oidcpy
    - update_remote
    - unlock_remote
    - http_cleanup
    - repo_init_revisions
    - strchr
    - is_null_oid
    - str_end_url_with_slash
    - strcmp
    - CALLOC_ARRAY
    - free
    - fetch_indices
    - printf
    - mark_edges_uninteresting
    - error
    - die
    - release_revisions
    - strstr
    - finish_all_active_slots
    - release_request
    - odb_has_object
    - prepare_revision_walk
    - get_local_heads
    - refspec_clear
    - memset
    - oid_to_hex
    - lock_remote
    - get_dav_remote_heads
    - http_init
    - check_locks
    - update_remote_info_refs
    - ref_newer
    - strvec_pushf
    - delete_remote_branch
    - usage
    - free_refs
    - match_push_refs
    - strlen
    - remote_exists
    - setup_revisions_from_strvec
    - locking_available
    - strvec_clear
    - get_delta
    - run_request_queue
    - fprintf
    - oideq
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_get_size
      Src: /src/git/strmap.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: strmap_get_size
    functionSourceFile: /src/git/strmap.h
    functionUses: 4
    functionsReached:
    - hashmap_get_size
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int strmap_get_size(struct strmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get_size
      Src: /src/git/strmap.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: strmap_empty
    functionSourceFile: /src/git/strmap.h
    functionUses: 8
    functionsReached:
    - strmap_get_size
    linkageType: ''
    returnType: int
    signature: int strmap_empty(struct strmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mystrmap
    - ','
    - iter
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: strmap_for_each_entry
    functionSourceFile: /src/git/strmap.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strmap_for_each_entry(mystrmap, iter, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mystrmap
    - ','
    - iter
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: strintmap_for_each_entry
    functionSourceFile: /src/git/strmap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strintmap_for_each_entry(mystrmap, iter, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_init
      Src: /src/git/strmap.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - map
    - default_value
    argTypes:
    - struct strintmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: strintmap_init
    functionSourceFile: /src/git/strmap.h
    functionUses: 0
    functionsReached:
    - strmap_init
    linkageType: ''
    returnType: void
    signature: void strintmap_init(struct strintmap *map, int default_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_init_with_options
      Src: /src/git/strmap.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - map
    - default_value
    - pool
    - strdup_strings
    argTypes:
    - struct strintmap*
    - int
    - struct mem_pool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: strintmap_init_with_options
    functionSourceFile: /src/git/strmap.h
    functionUses: 2
    functionsReached:
    - strmap_init_with_options
    linkageType: ''
    returnType: void
    signature: "void strintmap_init_with_options(struct strintmap *map,\n\t\t\t\t\t
      \      int default_value,\n\t\t\t\t\t       struct mem_pool *pool,\n\t\t\t\t\t
      \      int strdup_strings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_clear
      Src: /src/git/strmap.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct strintmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: strintmap_clear
    functionSourceFile: /src/git/strmap.h
    functionUses: 1
    functionsReached:
    - strmap_clear
    linkageType: ''
    returnType: void
    signature: void strintmap_clear(struct strintmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_partial_clear
      Src: /src/git/strmap.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct strintmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: strintmap_partial_clear
    functionSourceFile: /src/git/strmap.h
    functionUses: 0
    functionsReached:
    - strmap_partial_clear
    linkageType: ''
    returnType: void
    signature: void strintmap_partial_clear(struct strintmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_contains
      Src: /src/git/strmap.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - str
    argTypes:
    - struct strintmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: strintmap_contains
    functionSourceFile: /src/git/strmap.h
    functionUses: 0
    functionsReached:
    - strmap_contains
    linkageType: ''
    returnType: int
    signature: int strintmap_contains(struct strintmap *map, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_remove
      Src: /src/git/strmap.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - str
    argTypes:
    - struct strintmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: strintmap_remove
    functionSourceFile: /src/git/strmap.h
    functionUses: 1
    functionsReached:
    - strmap_remove
    linkageType: ''
    returnType: void
    signature: void strintmap_remove(struct strintmap *map, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_empty
      Src: /src/git/strmap.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct strintmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: strintmap_empty
    functionSourceFile: /src/git/strmap.h
    functionUses: 1
    functionsReached:
    - strmap_empty
    linkageType: ''
    returnType: int
    signature: int strintmap_empty(struct strintmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get_size
      Src: /src/git/strmap.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct strintmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: strintmap_get_size
    functionSourceFile: /src/git/strmap.h
    functionUses: 0
    functionsReached:
    - strmap_get_size
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int strintmap_get_size(struct strintmap *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get_entry
      Src: /src/git/strmap.h:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - map
    - str
    argTypes:
    - struct strintmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: strintmap_get
    functionSourceFile: /src/git/strmap.h
    functionUses: 1
    functionsReached:
    - strmap_get_entry
    linkageType: ''
    returnType: int
    signature: int strintmap_get(struct strintmap *map, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_put
      Src: /src/git/strmap.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - str
    - v
    argTypes:
    - struct strintmap*
    - char*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: strintmap_set
    functionSourceFile: /src/git/strmap.h
    functionUses: 4
    functionsReached:
    - strmap_put
    linkageType: ''
    returnType: void
    signature: "void strintmap_set(struct strintmap *map, const char *str,\n\t\t\t\t
      intptr_t v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mystrset
    - ','
    - iter
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: strset_for_each_entry
    functionSourceFile: /src/git/strmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strset_for_each_entry(mystrset, iter, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_init
      Src: /src/git/strmap.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct strset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: strset_init
    functionSourceFile: /src/git/strmap.h
    functionUses: 3
    functionsReached:
    - strmap_init
    linkageType: ''
    returnType: void
    signature: void strset_init(struct strset *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_init_with_options
      Src: /src/git/strmap.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - set
    - pool
    - strdup_strings
    argTypes:
    - struct strset*
    - struct mem_pool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: strset_init_with_options
    functionSourceFile: /src/git/strmap.h
    functionUses: 1
    functionsReached:
    - strmap_init_with_options
    linkageType: ''
    returnType: void
    signature: "void strset_init_with_options(struct strset *set,\n\t\t\t\t\t    struct
      mem_pool *pool,\n\t\t\t\t\t    int strdup_strings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_clear
      Src: /src/git/strmap.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct strset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: strset_clear
    functionSourceFile: /src/git/strmap.h
    functionUses: 9
    functionsReached:
    - strmap_clear
    linkageType: ''
    returnType: void
    signature: void strset_clear(struct strset *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_partial_clear
      Src: /src/git/strmap.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct strset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: strset_partial_clear
    functionSourceFile: /src/git/strmap.h
    functionUses: 0
    functionsReached:
    - strmap_partial_clear
    linkageType: ''
    returnType: void
    signature: void strset_partial_clear(struct strset *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_contains
      Src: /src/git/strmap.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - str
    argTypes:
    - struct strset*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: strset_contains
    functionSourceFile: /src/git/strmap.h
    functionUses: 10
    functionsReached:
    - strmap_contains
    linkageType: ''
    returnType: int
    signature: int strset_contains(struct strset *set, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_remove
      Src: /src/git/strmap.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - str
    argTypes:
    - struct strset*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: strset_remove
    functionSourceFile: /src/git/strmap.h
    functionUses: 3
    functionsReached:
    - strmap_remove
    linkageType: ''
    returnType: void
    signature: void strset_remove(struct strset *set, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_empty
      Src: /src/git/strmap.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct strset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: strset_empty
    functionSourceFile: /src/git/strmap.h
    functionUses: 0
    functionsReached:
    - strmap_empty
    linkageType: ''
    returnType: int
    signature: int strset_empty(struct strset *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get_size
      Src: /src/git/strmap.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct strset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: strset_get_size
    functionSourceFile: /src/git/strmap.h
    functionUses: 2
    functionsReached:
    - strmap_get_size
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int strset_get_size(struct strset *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path_replace
      Src: /src/git/odb.c:44,1
    - Dst: git_mkstemp_mode
      Src: /src/git/odb.c:45,1
    - Dst: repo_git_path_replace
      Src: /src/git/odb.c:51,1
    - Dst: safe_create_leading_directories
      Src: /src/git/odb.c:52,1
    - Dst: xmkstemp_mode
      Src: /src/git/odb.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - odb
    - temp_filename
    - pattern
    argTypes:
    - struct object_database*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 8
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: odb_mkstemp
    functionSourceFile: /src/git/odb.c
    functionUses: 1
    functionsReached:
    - safe_create_leading_directories
    - repo_git_path_replace
    - git_mkstemp_mode
    - xmkstemp_mode
    linkageType: ''
    returnType: int
    signature: "int odb_mkstemp(struct object_database *odb,\n\t\tstruct strbuf *temp_filename,
      const char *pattern)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/odb.c:65,1
    - Dst: is_directory
      Src: /src/git/odb.c:68,1
    - Dst: error
      Src: /src/git/odb.c:69,1
    - Dst: _
      Src: /src/git/odb.c:69,1
    - Dst: kh_init_odb_path_map
      Src: /src/git/odb.c:82,1
    - Dst: assert
      Src: /src/git/odb.c:83,1
    - Dst: kh_put_odb_path_map
      Src: /src/git/odb.c:84,1
    - Dst: assert
      Src: /src/git/odb.c:85,1
    - Dst: kh_value
      Src: /src/git/odb.c:86,1
    - Dst: fspatheq
      Src: /src/git/odb.c:89,1
    - Dst: kh_get_odb_path_map
      Src: /src/git/odb.c:92,1
    - Dst: kh_end
      Src: /src/git/odb.c:92,1
    - Dst: strbuf_release
      Src: /src/git/odb.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - o
    - path
    argTypes:
    - struct object_database*
    - char*
    assertStmts:
    - condition: (!o->sources->next)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/git/odb.c
    - condition: (r == 1)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/git/odb.c
    constantsTouched: []
    func_position:
      end: 100
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 100
    functionName: odb_is_source_usable
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - fspatheq
    - assert
    - strbuf_realpath
    - kh_put_odb_path_map
    - kh_value
    - kh_init_odb_path_map
    - _
    - is_directory
    - kh_get_odb_path_map
    - kh_end
    linkageType: ''
    returnType: bool
    signature: bool odb_is_source_usable(struct object_database *o, const char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/odb.c:116,1
    - Dst: strbuf_reset
      Src: /src/git/odb.c:117,1
    - Dst: strchrnul
      Src: /src/git/odb.c:121,1
    - Dst: unquote_c_style
      Src: /src/git/odb.c:122,1
    - Dst: strchrnul
      Src: /src/git/odb.c:131,1
    - Dst: strbuf_add
      Src: /src/git/odb.c:132,1
    - Dst: is_absolute_path
      Src: /src/git/odb.c:142,1
    - Dst: strbuf_realpath
      Src: /src/git/odb.c:143,1
    - Dst: strbuf_addch
      Src: /src/git/odb.c:144,1
    - Dst: strbuf_addbuf
      Src: /src/git/odb.c:146,1
    - Dst: strbuf_reset
      Src: /src/git/odb.c:148,1
    - Dst: strbuf_realpath
      Src: /src/git/odb.c:149,1
    - Dst: error
      Src: /src/git/odb.c:150,1
    - Dst: _
      Src: /src/git/odb.c:150,1
    - Dst: strbuf_setlen
      Src: /src/git/odb.c:160,1
    - Dst: strvec_push
      Src: /src/git/odb.c:162,1
    - Dst: strbuf_release
      Src: /src/git/odb.c:165,1
    - Dst: strbuf_release
      Src: /src/git/odb.c:166,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 4
    argNames:
    - string
    - sep
    - relative_base
    - out
    argTypes:
    - char*
    - int
    - char*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 167
    functionName: parse_alternates
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - strbuf_release
    - is_absolute_path
    - strbuf_realpath
    - strbuf_reset
    - strbuf_setlen
    - strbuf_addch
    - strbuf_addbuf
    - unquote_c_style
    - _
    - strchrnul
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void parse_alternates(const char *string,\n\t\t      int sep,\n\t\t
      \     const char *relative_base,\n\t\t      struct strvec *out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_is_source_usable
      Src: /src/git/odb.c:178,1
    - Dst: odb_source_new
      Src: /src/git/odb.c:181,1
    - Dst: kh_put_odb_path_map
      Src: /src/git/odb.c:187,1
    - Dst: BUG
      Src: /src/git/odb.c:189,1
    - Dst: kh_value
      Src: /src/git/odb.c:190,1
    - Dst: odb_source_read_alternates
      Src: /src/git/odb.c:193,1
    - Dst: error
      Src: /src/git/odb.c:195,1
    - Dst: _
      Src: /src/git/odb.c:195,1
    - Dst: odb_add_alternate_recursively
      Src: /src/git/odb.c:199,1
    - Dst: strvec_clear
      Src: /src/git/odb.c:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - odb
    - source
    - depth
    argTypes:
    - struct object_database*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 205
    functionName: odb_add_alternate_recursively
    functionSourceFile: /src/git/odb.c
    functionUses: 1
    functionsReached:
    - error
    - odb_source_new
    - kh_put_odb_path_map
    - kh_value
    - odb_is_source_usable
    - odb_source_read_alternates
    - strvec_clear
    - _
    - BUG
    - odb_add_alternate_recursively
    linkageType: ''
    returnType: struct odb_source
    signature: "struct odb_source *odb_add_alternate_recursively(struct object_database
      *odb,\n\t\t\t\t\t\t\tconst char *source,\n\t\t\t\t\t\t\tint depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_write_alternate
      Src: /src/git/odb.c:210,1
    - Dst: die
      Src: /src/git/odb.c:212,1
    - Dst: odb_add_alternate_recursively
      Src: /src/git/odb.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - odb
    - dir
    argTypes:
    - struct object_database*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 5
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: odb_add_to_alternates_file
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - die
    - odb_source_write_alternate
    - odb_add_alternate_recursively
    linkageType: ''
    returnType: void
    signature: "void odb_add_to_alternates_file(struct object_database *odb,\n\t\t\t\tconst
      char *dir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:224,1
    - Dst: odb_add_alternate_recursively
      Src: /src/git/odb.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - odb
    - dir
    argTypes:
    - struct object_database*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: odb_add_to_alternates_memory
    functionSourceFile: /src/git/odb.c
    functionUses: 1
    functionsReached:
    - odb_prepare_alternates
    - odb_add_alternate_recursively
    linkageType: ''
    returnType: struct odb_source
    signature: "struct odb_source *odb_add_to_alternates_memory(struct object_database
      *odb,\n\t\t\t\t\t\tconst char *dir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:237,1
    - Dst: odb_source_new
      Src: /src/git/odb.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - odb
    - dir
    - will_destroy
    argTypes:
    - struct object_database*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 254
    functionName: odb_set_temporary_primary_source
    functionSourceFile: /src/git/odb.c
    functionUses: 1
    functionsReached:
    - odb_prepare_alternates
    - odb_source_new
    linkageType: ''
    returnType: struct odb_source
    signature: "struct odb_source *odb_set_temporary_primary_source(struct object_database
      *odb,\n\t\t\t\t\t\t    const char *dir, int will_destroy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/odb.c:262,1
    - Dst: BUG
      Src: /src/git/odb.c:263,1
    - Dst: BUG
      Src: /src/git/odb.c:267,1
    - Dst: odb_source_free
      Src: /src/git/odb.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - odb
    - restore_source
    - old_path
    argTypes:
    - struct object_database*
    - struct odb_source*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 272
    functionName: odb_restore_primary_source
    functionSourceFile: /src/git/odb.c
    functionUses: 2
    functionsReached:
    - odb_source_free
    - BUG
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void odb_restore_primary_source(struct object_database *odb,\n\t\t\t\tstruct
      odb_source *restore_source,\n\t\t\t\tconst char *old_path)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: real_pathdup
      Src: /src/git/odb.c:280,1
    - Dst: strbuf_addf
      Src: /src/git/odb.c:283,1
    - Dst: _
      Src: /src/git/odb.c:283,1
    - Dst: read_gitfile
      Src: /src/git/odb.c:287,1
    - Dst: read_gitfile
      Src: /src/git/odb.c:289,1
    - Dst: mkpath
      Src: /src/git/odb.c:289,1
    - Dst: free
      Src: /src/git/odb.c:291,1
    - Dst: xstrdup
      Src: /src/git/odb.c:292,1
    - Dst: is_directory
      Src: /src/git/odb.c:295,1
    - Dst: mkpath
      Src: /src/git/odb.c:295,1
    - Dst: mkpathdup
      Src: /src/git/odb.c:296,1
    - Dst: free
      Src: /src/git/odb.c:297,1
    - Dst: is_directory
      Src: /src/git/odb.c:299,1
    - Dst: mkpath
      Src: /src/git/odb.c:299,1
    - Dst: get_common_dir
      Src: /src/git/odb.c:302,1
    - Dst: strbuf_addf
      Src: /src/git/odb.c:303,1
    - Dst: _
      Src: /src/git/odb.c:304,1
    - Dst: strbuf_addf
      Src: /src/git/odb.c:310,1
    - Dst: _
      Src: /src/git/odb.c:310,1
    - Dst: access
      Src: /src/git/odb.c:315,1
    - Dst: mkpath
      Src: /src/git/odb.c:315,1
    - Dst: strbuf_addf
      Src: /src/git/odb.c:316,1
    - Dst: _
      Src: /src/git/odb.c:316,1
    - Dst: access
      Src: /src/git/odb.c:322,1
    - Dst: mkpath
      Src: /src/git/odb.c:322,1
    - Dst: strbuf_addf
      Src: /src/git/odb.c:323,1
    - Dst: _
      Src: /src/git/odb.c:324,1
    - Dst: FREE_AND_NULL
      Src: /src/git/odb.c:332,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - path
    - err
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 274
    functionDepth: 6
    functionLinenumber: 274
    functionLinenumberEnd: 336
    functionName: compute_alternate_path
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - is_directory
    - access
    - strbuf_addf
    - get_common_dir
    - free
    - read_gitfile
    - _
    - mkpath
    - real_pathdup
    - mkpathdup
    - FREE_AND_NULL
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *compute_alternate_path(const char *path, struct strbuf *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: real_pathdup
      Src: /src/git/odb.c:341,1
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:344,1
    - Dst: strbuf_realpath
      Src: /src/git/odb.c:346,1
    - Dst: strcmp
      Src: /src/git/odb.c:347,1
    - Dst: free
      Src: /src/git/odb.c:351,1
    - Dst: strbuf_release
      Src: /src/git/odb.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - odb
    - obj_dir
    argTypes:
    - struct object_database*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 355
    functionName: odb_find_source
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_realpath
    - odb_prepare_alternates
    - strcmp
    - free
    - real_pathdup
    linkageType: ''
    returnType: struct odb_source
    signature: struct odb_source *odb_find_source(struct object_database *odb, const
      char *obj_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_find_source
      Src: /src/git/odb.c:359,1
    - Dst: die
      Src: /src/git/odb.c:361,1
    - Dst: _
      Src: /src/git/odb.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - odb
    - obj_dir
    argTypes:
    - struct object_database*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: odb_find_source_or_die
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - odb_find_source
    - die
    - _
    linkageType: ''
    returnType: struct odb_source
    signature: struct odb_source *odb_find_source_or_die(struct object_database *odb,
      const char *obj_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/odb.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - odb
    - path
    argTypes:
    - struct object_database*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: odb_add_submodule_source_by_path
    functionSourceFile: /src/git/odb.c
    functionUses: 1
    functionsReached:
    - string_list_insert
    linkageType: ''
    returnType: void
    signature: "void odb_add_submodule_source_by_path(struct object_database *odb,\n\t\t\t\t
      \     const char *path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_value
      Src: /src/git/odb.c:377,1
    - Dst: strvec_push
      Src: /src/git/odb.c:380,1
    - Dst: strvec_push
      Src: /src/git/odb.c:381,1
    - Dst: strvec_pushf
      Src: /src/git/odb.c:385,1
    - Dst: strvec_push
      Src: /src/git/odb.c:386,1
    - Dst: strvec_push
      Src: /src/git/odb.c:387,1
    - Dst: repo_config_get_value
      Src: /src/git/odb.c:389,1
    - Dst: strvec_push
      Src: /src/git/odb.c:390,1
    - Dst: strvec_split
      Src: /src/git/odb.c:391,1
    - Dst: strvec_pushv
      Src: /src/git/odb.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - repo
    - cmd
    - repo_path
    argTypes:
    - struct repository*
    - struct child_process*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 397
    functionName: fill_alternate_refs_command
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - repo_config_get_value
    - strvec_pushv
    - strvec_split
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: "void fill_alternate_refs_command(struct repository *repo,\n\t\t\t\t\tstruct
      child_process *cmd,\n\t\t\t\t\tconst char *repo_path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fill_alternate_refs_command
      Src: /src/git/odb.c:408,1
    - Dst: start_command
      Src: /src/git/odb.c:410,1
    - Dst: xfdopen
      Src: /src/git/odb.c:413,1
    - Dst: strbuf_getline_lf
      Src: /src/git/odb.c:414,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/odb.c:418,1
    - Dst: warning
      Src: /src/git/odb.c:419,1
    - Dst: _
      Src: /src/git/odb.c:419,1
    - Dst: cb
      Src: /src/git/odb.c:424,1
    - Dst: fclose
      Src: /src/git/odb.c:427,1
    - Dst: finish_command
      Src: /src/git/odb.c:428,1
    - Dst: strbuf_release
      Src: /src/git/odb.c:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - repo
    - path
    - cb
    - payload
    argTypes:
    - struct repository*
    - char*
    - odb_for_each_alternate_ref_fn*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 399
    functionDepth: 7
    functionLinenumber: 399
    functionLinenumberEnd: 430
    functionName: read_alternate_refs
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - finish_command
    - parse_oid_hex_algop
    - fill_alternate_refs_command
    - warning
    - _
    - cb
    - xfdopen
    - start_command
    linkageType: ''
    returnType: void
    signature: "void read_alternate_refs(struct repository *repo,\n\t\t\t\tconst char
      *path,\n\t\t\t\todb_for_each_alternate_ref_fn *cb,\n\t\t\t\tvoid *payload)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/odb.c:444,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/odb.c:446,1
    - Dst: strbuf_addstr
      Src: /src/git/odb.c:451,1
    - Dst: is_directory
      Src: /src/git/odb.c:452,1
    - Dst: strbuf_setlen
      Src: /src/git/odb.c:454,1
    - Dst: read_alternate_refs
      Src: /src/git/odb.c:456,1
    - Dst: strbuf_release
      Src: /src/git/odb.c:459,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - alternate
    - payload
    argTypes:
    - struct odb_source*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 437
    functionDepth: 8
    functionLinenumber: 437
    functionLinenumberEnd: 461
    functionName: refs_from_alternate_cb
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_realpath
    - strbuf_strip_suffix
    - strbuf_setlen
    - strbuf_addstr
    - is_directory
    - read_alternate_refs
    linkageType: ''
    returnType: int
    signature: "int refs_from_alternate_cb(struct odb_source *alternate,\n\t\t\t\t
      \ void *payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_for_each_alternate
      Src: /src/git/odb.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - odb
    - cb
    - payload
    argTypes:
    - struct object_database*
    - odb_for_each_alternate_ref_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 470
    functionName: odb_for_each_alternate_ref
    functionSourceFile: /src/git/odb.c
    functionUses: 1
    functionsReached:
    - odb_for_each_alternate
    linkageType: ''
    returnType: void
    signature: "void odb_for_each_alternate_ref(struct object_database *odb,\n\t\t\t\todb_for_each_alternate_ref_fn
      cb, void *payload)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:478,1
    - Dst: cb
      Src: /src/git/odb.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - odb
    - cb
    - payload
    argTypes:
    - struct object_database*
    - odb_for_each_alternate_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 485
    functionName: odb_for_each_alternate
    functionSourceFile: /src/git/odb.c
    functionUses: 2
    functionsReached:
    - cb
    - odb_prepare_alternates
    linkageType: ''
    returnType: int
    signature: "int odb_for_each_alternate(struct object_database *odb,\n\t\t\t odb_for_each_alternate_fn
      cb, void *payload)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_alternates
      Src: /src/git/odb.c:494,1
    - Dst: odb_source_read_alternates
      Src: /src/git/odb.c:495,1
    - Dst: odb_add_alternate_recursively
      Src: /src/git/odb.c:497,1
    - Dst: strvec_clear
      Src: /src/git/odb.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - odb
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 487
    functionDepth: 5
    functionLinenumber: 487
    functionLinenumberEnd: 502
    functionName: odb_prepare_alternates
    functionSourceFile: /src/git/odb.c
    functionUses: 7
    functionsReached:
    - odb_source_read_alternates
    - parse_alternates
    - strvec_clear
    - odb_add_alternate_recursively
    linkageType: ''
    returnType: void
    signature: void odb_prepare_alternates(struct object_database *odb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - odb
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 6
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: odb_has_alternates
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - odb_prepare_alternates
    linkageType: ''
    returnType: int
    signature: int odb_has_alternates(struct object_database *odb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_recursive_mutex
      Src: /src/git/odb.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 520
    functionName: enable_obj_read_lock
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - init_recursive_mutex
    linkageType: ''
    returnType: void
    signature: void enable_obj_read_lock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/git/odb.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 529
    functionName: disable_obj_read_lock
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void disable_obj_read_lock(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_add_to_alternates_memory
      Src: /src/git/odb.c:538,1
    - Dst: string_list_clear
      Src: /src/git/odb.c:541,1
    - Dst: trace2_data_intmax
      Src: /src/git/odb.c:542,1
    - Dst: git_env_bool
      Src: /src/git/odb.c:544,1
    - Dst: BUG
      Src: /src/git/odb.c:545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - odb
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 533
    functionDepth: 6
    functionLinenumber: 533
    functionLinenumberEnd: 548
    functionName: register_all_submodule_sources
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - git_env_bool
    - trace2_data_intmax
    - BUG
    - odb_add_to_alternates_memory
    linkageType: ''
    returnType: int
    signature: int register_all_submodule_sources(struct object_database *odb)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lookup_replace_object
      Src: /src/git/odb.c:558,1
    - Dst: is_null_oid
      Src: /src/git/odb.c:560,1
    - Dst: odb_source_read_object_info
      Src: /src/git/odb.c:563,1
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:566,1
    - Dst: odb_source_read_object_info
      Src: /src/git/odb.c:572,1
    - Dst: odb_source_read_object_info
      Src: /src/git/odb.c:582,1
    - Dst: register_all_submodule_sources
      Src: /src/git/odb.c:593,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/odb.c:598,1
    - Dst: promisor_remote_get_direct
      Src: /src/git/odb.c:601,1
    - Dst: oideq
      Src: /src/git/odb.c:608,1
    - Dst: die
      Src: /src/git/odb.c:609,1
    - Dst: _
      Src: /src/git/odb.c:609,1
    - Dst: oid_to_hex
      Src: /src/git/odb.c:610,1
    - Dst: oid_to_hex
      Src: /src/git/odb.c:610,1
    - Dst: has_packed_and_bad
      Src: /src/git/odb.c:611,1
    - Dst: die
      Src: /src/git/odb.c:612,1
    - Dst: _
      Src: /src/git/odb.c:612,1
    - Dst: oid_to_hex
      Src: /src/git/odb.c:613,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 32
    argCount: 4
    argNames:
    - odb
    - oid
    - oi
    - flags
    argTypes:
    - struct object_database*
    - struct object_id*
    - struct object_info*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 550
    functionDepth: 7
    functionLinenumber: 550
    functionLinenumberEnd: 617
    functionName: do_oid_object_info_extended
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - lookup_replace_object
    - register_all_submodule_sources
    - repo_has_promisor_remote
    - die
    - oid_to_hex
    - has_packed_and_bad
    - _
    - is_null_oid
    - odb_prepare_alternates
    - odb_source_read_object_info
    - promisor_remote_get_direct
    - oideq
    linkageType: ''
    returnType: int
    signature: "int do_oid_object_info_extended(struct object_database *odb,\n\t\t\t\t
      \      const struct object_id *oid,\n\t\t\t\t       struct object_info *oi,
      unsigned flags)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: repo_oid_to_algop
      Src: /src/git/odb.c:632,1
    - Dst: die
      Src: /src/git/odb.c:634,1
    - Dst: _
      Src: /src/git/odb.c:634,1
    - Dst: oid_to_hex
      Src: /src/git/odb.c:635,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/odb.c:656,1
    - Dst: convert_object_file
      Src: /src/git/odb.c:666,1
    - Dst: free
      Src: /src/git/odb.c:669,1
    - Dst: strbuf_detach
      Src: /src/git/odb.c:673,1
    - Dst: free
      Src: /src/git/odb.c:680,1
    - Dst: repo_oid_to_algop
      Src: /src/git/odb.c:685,1
    - Dst: die
      Src: /src/git/odb.c:688,1
    - Dst: _
      Src: /src/git/odb.c:688,1
    - Dst: oid_to_hex
      Src: /src/git/odb.c:689,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 4
    argNames:
    - r
    - input_oid
    - input_oi
    - flags
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_info*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 619
    functionDepth: 9
    functionLinenumber: 619
    functionLinenumberEnd: 697
    functionName: oid_object_info_convert
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - odb_read_object_info_extended
    - strbuf_detach
    - _
    - free
    - repo_oid_to_algop
    - convert_object_file
    linkageType: ''
    returnType: int
    signature: "int oid_object_info_convert(struct repository *r,\n\t\t\t\t   const
      struct object_id *input_oid,\n\t\t\t\t   struct object_info *input_oi, unsigned
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_algo_by_ptr
      Src: /src/git/odb.c:706,1
    - Dst: oid_object_info_convert
      Src: /src/git/odb.c:707,1
    - Dst: obj_read_lock
      Src: /src/git/odb.c:709,1
    - Dst: do_oid_object_info_extended
      Src: /src/git/odb.c:710,1
    - Dst: obj_read_unlock
      Src: /src/git/odb.c:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - odb
    - oid
    - oi
    - flags
    argTypes:
    - struct object_database*
    - struct object_id*
    - struct object_info*
    - enum object_info_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 699
    functionDepth: 10
    functionLinenumber: 699
    functionLinenumberEnd: 713
    functionName: odb_read_object_info_extended
    functionSourceFile: /src/git/odb.c
    functionUses: 5
    functionsReached:
    - obj_read_lock
    - obj_read_unlock
    - oid_object_info_convert
    - do_oid_object_info_extended
    - hash_algo_by_ptr
    linkageType: ''
    returnType: int
    signature: "int odb_read_object_info_extended(struct object_database *odb,\n\t\t\t\t
      \ const struct object_id *oid,\n\t\t\t\t  struct object_info *oi,\n\t\t\t\t
      \ enum object_info_flags flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/odb.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - odb
    - oid
    - sizep
    argTypes:
    - struct object_database*
    - struct object_id*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 717
    functionDepth: 11
    functionLinenumber: 717
    functionLinenumberEnd: 730
    functionName: odb_read_object_info
    functionSourceFile: /src/git/odb.c
    functionUses: 18
    functionsReached:
    - odb_read_object_info_extended
    linkageType: ''
    returnType: int
    signature: "int odb_read_object_info(struct object_database *odb,\n\t\t\t const
      struct object_id *oid,\n\t\t\t unsigned long *sizep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_object_file
      Src: /src/git/odb.c:736,1
    - Dst: odb_has_object
      Src: /src/git/odb.c:737,1
    - Dst: odb_source_write_object
      Src: /src/git/odb.c:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - odb
    - buf
    - len
    - type
    - oid
    argTypes:
    - struct object_database*
    - void*
    - unsigned long
    - enum object_type
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 732
    functionDepth: 4
    functionLinenumber: 732
    functionLinenumberEnd: 742
    functionName: odb_pretend_object
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - odb_has_object
    - odb_source_write_object
    - hash_object_file
    linkageType: ''
    returnType: int
    signature: "int odb_pretend_object(struct object_database *odb,\n\t\t       void
      *buf, unsigned long len, enum object_type type,\n\t\t       struct object_id
      *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/odb.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - odb
    - oid
    - type
    - size
    argTypes:
    - struct object_database*
    - struct object_id*
    - enum object_type*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 744
    functionDepth: 11
    functionLinenumber: 744
    functionLinenumberEnd: 760
    functionName: odb_read_object
    functionSourceFile: /src/git/odb.c
    functionUses: 28
    functionsReached:
    - odb_read_object_info_extended
    linkageType: ''
    returnType: void
    signature: "void *odb_read_object(struct object_database *odb,\n\t\t      const
      struct object_id *oid,\n\t\t      enum object_type *type,\n\t\t      unsigned
      long *size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/odb.c:773,1
    - Dst: odb_read_object
      Src: /src/git/odb.c:778,1
    - Dst: oidcpy
      Src: /src/git/odb.c:784,1
    - Dst: free
      Src: /src/git/odb.c:793,1
    - Dst: strlen
      Src: /src/git/odb.c:796,1
    - Dst: memcmp
      Src: /src/git/odb.c:799,1
    - Dst: get_oid_hex_algop
      Src: /src/git/odb.c:800,1
    - Dst: free
      Src: /src/git/odb.c:802,1
    - Dst: free
      Src: /src/git/odb.c:805,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - odb
    - oid
    - required_type
    - size
    - actual_oid_return
    argTypes:
    - struct object_database*
    - struct object_id*
    - enum object_type
    - unsigned long*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 762
    functionDepth: 12
    functionLinenumber: 762
    functionLinenumberEnd: 809
    functionName: odb_read_object_peeled
    functionSourceFile: /src/git/odb.c
    functionUses: 3
    functionsReached:
    - oidcpy
    - get_oid_hex_algop
    - strlen
    - free
    - odb_read_object
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void *odb_read_object_peeled(struct object_database *odb,\n\t\t\t
      \    const struct object_id *oid,\n\t\t\t     enum object_type required_type,\n\t\t\t
      \    unsigned long *size,\n\t\t\t     struct object_id *actual_oid_return)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/odb.c:823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - odb
    - oid
    - flags
    argTypes:
    - struct object_database*
    - struct object_id*
    - enum odb_has_object_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 811
    functionDepth: 11
    functionLinenumber: 811
    functionLinenumberEnd: 824
    functionName: odb_has_object
    functionSourceFile: /src/git/odb.c
    functionUses: 14
    functionsReached:
    - odb_read_object_info_extended
    linkageType: ''
    returnType: int
    signature: "int odb_has_object(struct object_database *odb, const struct object_id
      *oid,\n\t\t   enum odb_has_object_flags flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:830,1
    - Dst: odb_source_freshen_object
      Src: /src/git/odb.c:832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - odb
    - oid
    argTypes:
    - struct object_database*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 826
    functionDepth: 6
    functionLinenumber: 826
    functionLinenumberEnd: 835
    functionName: odb_freshen_object
    functionSourceFile: /src/git/odb.c
    functionUses: 2
    functionsReached:
    - odb_source_freshen_object
    - odb_prepare_alternates
    linkageType: ''
    returnType: int
    signature: "int odb_freshen_object(struct object_database *odb,\n\t\t       const
      struct object_id *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:845,1
    - Dst: odb_source_for_each_object
      Src: /src/git/odb.c:850,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - odb
    - request
    - cb
    - cb_data
    - opts
    argTypes:
    - struct object_database*
    - struct object_info*
    - odb_for_each_object_cb
    - void*
    - struct odb_for_each_object_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 837
    functionDepth: 6
    functionLinenumber: 837
    functionLinenumberEnd: 856
    functionName: odb_for_each_object_ext
    functionSourceFile: /src/git/odb.c
    functionUses: 2
    functionsReached:
    - odb_prepare_alternates
    - odb_source_for_each_object
    linkageType: ''
    returnType: int
    signature: "int odb_for_each_object_ext(struct object_database *odb,\n\t\t\t    const
      struct object_info *request,\n\t\t\t    odb_for_each_object_cb cb,\n\t\t\t    void
      *cb_data,\n\t\t\t    const struct odb_for_each_object_options *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_for_each_object_ext
      Src: /src/git/odb.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - odb
    - request
    - cb
    - cb_data
    - flags
    argTypes:
    - struct object_database*
    - struct object_info*
    - odb_for_each_object_cb
    - void*
    - enum odb_for_each_object_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 858
    functionDepth: 7
    functionLinenumber: 858
    functionLinenumberEnd: 868
    functionName: odb_for_each_object
    functionSourceFile: /src/git/odb.c
    functionUses: 3
    functionsReached:
    - odb_for_each_object_ext
    linkageType: ''
    returnType: int
    signature: "int odb_for_each_object(struct object_database *odb,\n\t\t\tconst
      struct object_info *request,\n\t\t\todb_for_each_object_cb cb,\n\t\t\tvoid *cb_data,\n\t\t\tenum
      odb_for_each_object_flags flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:883,1
    - Dst: odb_source_count_objects
      Src: /src/git/odb.c:887,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - odb
    - flags
    - out
    argTypes:
    - struct object_database*
    - enum odb_count_objects_flags
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 870
    functionDepth: 6
    functionLinenumber: 870
    functionLinenumberEnd: 903
    functionName: odb_count_objects
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - odb_prepare_alternates
    - odb_source_count_objects
    linkageType: ''
    returnType: int
    signature: "int odb_count_objects(struct object_database *odb,\n\t\t      enum
      odb_count_objects_flags flags,\n\t\t      unsigned long *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 916
    functionName: msb
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned msb(unsigned long val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: odb_count_objects
      Src: /src/git/odb.c:932,1
    - Dst: msb
      Src: /src/git/odb.c:940,1
    - Dst: DIV_ROUND_UP
      Src: /src/git/odb.c:947,1
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:963,1
    - Dst: odb_source_find_abbrev_len
      Src: /src/git/odb.c:965,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - odb
    - oid
    - min_length
    - out
    argTypes:
    - struct object_database*
    - struct object_id*
    - int
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 918
    functionDepth: 7
    functionLinenumber: 918
    functionLinenumberEnd: 975
    functionName: odb_find_abbrev_len
    functionSourceFile: /src/git/odb.c
    functionUses: 1
    functionsReached:
    - odb_source_find_abbrev_len
    - DIV_ROUND_UP
    - odb_count_objects
    - msb
    - odb_prepare_alternates
    linkageType: ''
    returnType: int
    signature: "int odb_find_abbrev_len(struct object_database *odb,\n\t\t\tconst
      struct object_id *oid,\n\t\t\tint min_length,\n\t\t\tunsigned *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/odb.c:980,1
    - Dst: die
      Src: /src/git/odb.c:982,1
    - Dst: _
      Src: /src/git/odb.c:982,1
    - Dst: oid_to_hex
      Src: /src/git/odb.c:982,1
    - Dst: die
      Src: /src/git/odb.c:984,1
    - Dst: _
      Src: /src/git/odb.c:984,1
    - Dst: oid_to_hex
      Src: /src/git/odb.c:984,1
    - Dst: type_name
      Src: /src/git/odb.c:985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - odb
    - oid
    - expect
    argTypes:
    - struct object_database*
    - struct object_id*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 977
    functionDepth: 12
    functionLinenumber: 977
    functionLinenumberEnd: 986
    functionName: odb_assert_oid_type
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - odb_read_object_info
    - _
    - type_name
    linkageType: ''
    returnType: void
    signature: "void odb_assert_oid_type(struct object_database *odb,\n\t\t\t const
      struct object_id *oid, enum object_type expect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_write_object
      Src: /src/git/odb.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - odb
    - buf
    - len
    - type
    - oid
    - compat_oid
    - flags
    argTypes:
    - struct object_database*
    - void*
    - unsigned long
    - enum object_type
    - struct object_id*
    - struct object_id*
    - enum odb_write_object_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 997
    functionName: odb_write_object_ext
    functionSourceFile: /src/git/odb.c
    functionUses: 2
    functionsReached:
    - odb_source_write_object
    linkageType: ''
    returnType: int
    signature: "int odb_write_object_ext(struct object_database *odb,\n\t\t\t const
      void *buf, unsigned long len,\n\t\t\t enum object_type type,\n\t\t\t struct
      object_id *oid,\n\t\t\t struct object_id *compat_oid,\n\t\t\t enum odb_write_object_flags
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_write_object_stream
      Src: /src/git/odb.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - odb
    - stream
    - len
    - oid
    argTypes:
    - struct object_database*
    - struct odb_write_stream*
    - size_t
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1004
    functionName: odb_write_object_stream
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - odb_source_write_object_stream
    linkageType: ''
    returnType: int
    signature: "int odb_write_object_stream(struct object_database *odb,\n\t\t\t    struct
      odb_write_stream *stream, size_t len,\n\t\t\t    struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/odb.c:1010,1
    - Dst: memset
      Src: /src/git/odb.c:1013,1
    - Dst: pthread_mutex_init
      Src: /src/git/odb.c:1015,1
    - Dst: string_list_init_dup
      Src: /src/git/odb.c:1016,1
    - Dst: xstrfmt
      Src: /src/git/odb.c:1019,1
    - Dst: odb_source_new
      Src: /src/git/odb.c:1020,1
    - Dst: xstrdup_or_null
      Src: /src/git/odb.c:1022,1
    - Dst: odb_source_inmemory_new
      Src: /src/git/odb.c:1023,1
    - Dst: free
      Src: /src/git/odb.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - repo
    - primary_source
    - secondary_sources
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1006
    functionDepth: 5
    functionLinenumber: 1006
    functionLinenumberEnd: 1028
    functionName: odb_new
    functionSourceFile: /src/git/odb.c
    functionUses: 1
    functionsReached:
    - memset
    - pthread_mutex_init
    - odb_source_new
    - xstrdup_or_null
    - xstrfmt
    - xmalloc
    - free
    - string_list_init_dup
    - odb_source_inmemory_new
    linkageType: ''
    returnType: struct object_database
    signature: "struct object_database *odb_new(struct repository *repo,\n\t\t\t\tconst
      char *primary_source,\n\t\t\t\tconst char *secondary_sources)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_close
      Src: /src/git/odb.c:1034,1
    - Dst: close_commit_graph
      Src: /src/git/odb.c:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1036
    functionName: odb_close
    functionSourceFile: /src/git/odb.c
    functionUses: 2
    functionsReached:
    - close_commit_graph
    - odb_source_close
    linkageType: ''
    returnType: void
    signature: void odb_close(struct object_database *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_free
      Src: /src/git/odb.c:1044,1
    - Dst: odb_source_free
      Src: /src/git/odb.c:1048,1
    - Dst: kh_destroy_odb_path_map
      Src: /src/git/odb.c:1051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1053
    functionName: odb_free_sources
    functionSourceFile: /src/git/odb.c
    functionUses: 0
    functionsReached:
    - odb_source_free
    - kh_destroy_odb_path_map
    linkageType: ''
    returnType: void
    signature: void odb_free_sources(struct object_database *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/odb.c:1060,1
    - Dst: oidmap_clear
      Src: /src/git/odb.c:1062,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/odb.c:1063,1
    - Dst: odb_close
      Src: /src/git/odb.c:1065,1
    - Dst: odb_free_sources
      Src: /src/git/odb.c:1066,1
    - Dst: string_list_clear
      Src: /src/git/odb.c:1068,1
    - Dst: free
      Src: /src/git/odb.c:1070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1071
    functionName: odb_free
    functionSourceFile: /src/git/odb.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    - odb_close
    - odb_free_sources
    - pthread_mutex_destroy
    - free
    - oidmap_clear
    linkageType: ''
    returnType: void
    signature: void odb_free(struct object_database *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: obj_read_lock
      Src: /src/git/odb.c:1077,1
    - Dst: odb_prepare_alternates
      Src: /src/git/odb.c:1086,1
    - Dst: odb_source_reprepare
      Src: /src/git/odb.c:1089,1
    - Dst: obj_read_unlock
      Src: /src/git/odb.c:1093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1073
    functionDepth: 6
    functionLinenumber: 1073
    functionLinenumberEnd: 1094
    functionName: odb_reprepare
    functionSourceFile: /src/git/odb.c
    functionUses: 5
    functionsReached:
    - odb_prepare_alternates
    - odb_source_reprepare
    - obj_read_lock
    - obj_read_unlock
    linkageType: ''
    returnType: void
    signature: void odb_reprepare(struct object_database *o)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: trace2_cmd_name
      Src: /src/git/sh-i18n--envsubst.c:71,1
    - Dst: error
      Src: /src/git/sh-i18n--envsubst.c:76,1
    - Dst: note_variables
      Src: /src/git/sh-i18n--envsubst.c:85,1
    - Dst: subst_from_stdin
      Src: /src/git/sh-i18n--envsubst.c:86,1
    - Dst: strcmp
      Src: /src/git/sh-i18n--envsubst.c:90,1
    - Dst: error
      Src: /src/git/sh-i18n--envsubst.c:91,1
    - Dst: print_variables
      Src: /src/git/sh-i18n--envsubst.c:93,1
    - Dst: error
      Src: /src/git/sh-i18n--envsubst.c:96,1
    - Dst: ferror
      Src: /src/git/sh-i18n--envsubst.c:104,1
    - Dst: fflush
      Src: /src/git/sh-i18n--envsubst.c:104,1
    - Dst: fclose
      Src: /src/git/sh-i18n--envsubst.c:106,1
    - Dst: fclose
      Src: /src/git/sh-i18n--envsubst.c:109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 113
    functionName: cmd_main
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 1
    functionsReached:
    - error
    - note_variables
    - ferror
    - fclose
    - print_variables
    - fflush
    - strcmp
    - trace2_cmd_name
    - subst_from_stdin
    linkageType: ''
    returnType: int
    signature: int cmd_main (int argc, const char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/git/sh-i18n--envsubst.c:163,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 23
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 166
    functionName: find_variables
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 0
    functionsReached:
    - callback
    linkageType: ''
    returnType: void
    signature: "void find_variables (const char *string,\n\t\tvoid (*callback) (const
      char *var_ptr, size_t var_len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/sh-i18n--envsubst.c:173,1
    - Dst: putchar
      Src: /src/git/sh-i18n--envsubst.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - var_ptr
    - var_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: print_variable
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 0
    functionsReached:
    - fwrite
    - putchar
    linkageType: ''
    returnType: void
    signature: void print_variable (const char *var_ptr, size_t var_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_variables
      Src: /src/git/sh-i18n--envsubst.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: print_variables
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 1
    functionsReached:
    - find_variables
    linkageType: ''
    returnType: void
    signature: void print_variables (const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - slp
    argTypes:
    - string_list_ty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: string_list_init
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void string_list_init (string_list_ty *slp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC_ARRAY
      Src: /src/git/sh-i18n--envsubst.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - slp
    - s
    argTypes:
    - string_list_ty*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: string_list_append
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 55
    functionsReached:
    - REALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void string_list_append (string_list_ty *slp, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/sh-i18n--envsubst.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pstr1
    - pstr2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: cmp_string
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmp_string (const void *pstr1, const void *pstr2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/sh-i18n--envsubst.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slp
    argTypes:
    - string_list_ty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: string_list_sort
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 16
    functionsReached:
    - QSORT
    linkageType: ''
    returnType: void
    signature: void string_list_sort (string_list_ty *slp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/sh-i18n--envsubst.c:253,1
    - Dst: strcmp
      Src: /src/git/sh-i18n--envsubst.c:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - slp
    - s
    argTypes:
    - string_list_ty*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 267
    functionName: sorted_string_list_member
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sorted_string_list_member (const string_list_ty *slp, const char
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmemdupz
      Src: /src/git/sh-i18n--envsubst.c:278,1
    - Dst: string_list_append
      Src: /src/git/sh-i18n--envsubst.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - var_ptr
    - var_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 10
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: note_variable
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - string_list_append
    linkageType: ''
    returnType: void
    signature: void note_variable (const char *var_ptr, size_t var_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_init
      Src: /src/git/sh-i18n--envsubst.c:287,1
    - Dst: find_variables
      Src: /src/git/sh-i18n--envsubst.c:288,1
    - Dst: string_list_sort
      Src: /src/git/sh-i18n--envsubst.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: note_variables
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 1
    functionsReached:
    - string_list_sort
    - find_variables
    - string_list_init
    linkageType: ''
    returnType: void
    signature: void note_variables (const char *string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getc
      Src: /src/git/sh-i18n--envsubst.c:296,1
    - Dst: ferror
      Src: /src/git/sh-i18n--envsubst.c:300,1
    - Dst: error
      Src: /src/git/sh-i18n--envsubst.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: do_getc
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 0
    functionsReached:
    - error
    - ferror
    - getc
    linkageType: ''
    returnType: int
    signature: int do_getc (void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ungetc
      Src: /src/git/sh-i18n--envsubst.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: do_ungetc
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 0
    functionsReached:
    - ungetc
    linkageType: ''
    returnType: void
    signature: void do_ungetc (int c)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: do_getc
      Src: /src/git/sh-i18n--envsubst.c:325,1
    - Dst: do_getc
      Src: /src/git/sh-i18n--envsubst.c:334,1
    - Dst: do_getc
      Src: /src/git/sh-i18n--envsubst.c:338,1
    - Dst: xrealloc
      Src: /src/git/sh-i18n--envsubst.c:351,1
    - Dst: do_getc
      Src: /src/git/sh-i18n--envsubst.c:355,1
    - Dst: do_ungetc
      Src: /src/git/sh-i18n--envsubst.c:370,1
    - Dst: do_ungetc
      Src: /src/git/sh-i18n--envsubst.c:376,1
    - Dst: xrealloc
      Src: /src/git/sh-i18n--envsubst.c:385,1
    - Dst: sorted_string_list_member
      Src: /src/git/sh-i18n--envsubst.c:391,1
    - Dst: getenv
      Src: /src/git/sh-i18n--envsubst.c:398,1
    - Dst: fputs
      Src: /src/git/sh-i18n--envsubst.c:401,1
    - Dst: putchar
      Src: /src/git/sh-i18n--envsubst.c:408,1
    - Dst: putchar
      Src: /src/git/sh-i18n--envsubst.c:410,1
    - Dst: fwrite
      Src: /src/git/sh-i18n--envsubst.c:411,1
    - Dst: putchar
      Src: /src/git/sh-i18n--envsubst.c:413,1
    - Dst: do_ungetc
      Src: /src/git/sh-i18n--envsubst.c:418,1
    - Dst: putchar
      Src: /src/git/sh-i18n--envsubst.c:419,1
    - Dst: putchar
      Src: /src/git/sh-i18n--envsubst.c:421,1
    - Dst: putchar
      Src: /src/git/sh-i18n--envsubst.c:425,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 315
    functionDepth: 7
    functionLinenumber: 315
    functionLinenumberEnd: 427
    functionName: subst_from_stdin
    functionSourceFile: /src/git/sh-i18n--envsubst.c
    functionUses: 1
    functionsReached:
    - do_getc
    - putchar
    - fputs
    - fwrite
    - xrealloc
    - sorted_string_list_member
    - getenv
    - do_ungetc
    linkageType: ''
    returnType: void
    signature: void subst_from_stdin (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: ERRORMSG
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERRORMSG(o,type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/unpack-trees.c:94,1
    - Dst: ARRAY_SIZE
      Src: /src/git/unpack-trees.c:101,1
    - Dst: strbuf_addstr
      Src: /src/git/unpack-trees.c:102,1
    - Dst: ARRAY_SIZE
      Src: /src/git/unpack-trees.c:110,1
    - Dst: strbuf_setlen
      Src: /src/git/unpack-trees.c:113,1
    - Dst: strbuf_addstr
      Src: /src/git/unpack-trees.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - path
    - super_prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 117
    functionName: super_prefixed
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strbuf_setlen
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *super_prefixed(const char *path, const char *super_prefix)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strvec_init
      Src: /src/git/unpack-trees.c:126,1
    - Dst: strcmp
      Src: /src/git/unpack-trees.c:128,1
    - Dst: advice_enabled
      Src: /src/git/unpack-trees.c:129,1
    - Dst: _
      Src: /src/git/unpack-trees.c:130,1
    - Dst: _
      Src: /src/git/unpack-trees.c:132,1
    - Dst: strcmp
      Src: /src/git/unpack-trees.c:133,1
    - Dst: advice_enabled
      Src: /src/git/unpack-trees.c:134,1
    - Dst: _
      Src: /src/git/unpack-trees.c:135,1
    - Dst: _
      Src: /src/git/unpack-trees.c:137,1
    - Dst: advice_enabled
      Src: /src/git/unpack-trees.c:139,1
    - Dst: _
      Src: /src/git/unpack-trees.c:140,1
    - Dst: _
      Src: /src/git/unpack-trees.c:142,1
    - Dst: strvec_pushf
      Src: /src/git/unpack-trees.c:144,1
    - Dst: _
      Src: /src/git/unpack-trees.c:147,1
    - Dst: _
      Src: /src/git/unpack-trees.c:150,1
    - Dst: strcmp
      Src: /src/git/unpack-trees.c:152,1
    - Dst: advice_enabled
      Src: /src/git/unpack-trees.c:153,1
    - Dst: _
      Src: /src/git/unpack-trees.c:154,1
    - Dst: _
      Src: /src/git/unpack-trees.c:156,1
    - Dst: strcmp
      Src: /src/git/unpack-trees.c:157,1
    - Dst: advice_enabled
      Src: /src/git/unpack-trees.c:158,1
    - Dst: _
      Src: /src/git/unpack-trees.c:159,1
    - Dst: _
      Src: /src/git/unpack-trees.c:161,1
    - Dst: advice_enabled
      Src: /src/git/unpack-trees.c:163,1
    - Dst: _
      Src: /src/git/unpack-trees.c:164,1
    - Dst: _
      Src: /src/git/unpack-trees.c:166,1
    - Dst: strvec_pushf
      Src: /src/git/unpack-trees.c:168,1
    - Dst: strcmp
      Src: /src/git/unpack-trees.c:170,1
    - Dst: advice_enabled
      Src: /src/git/unpack-trees.c:171,1
    - Dst: _
      Src: /src/git/unpack-trees.c:172,1
    - Dst: _
      Src: /src/git/unpack-trees.c:174,1
    - Dst: strcmp
      Src: /src/git/unpack-trees.c:175,1
    - Dst: advice_enabled
      Src: /src/git/unpack-trees.c:176,1
    - Dst: _
      Src: /src/git/unpack-trees.c:177,1
    - Dst: _
      Src: /src/git/unpack-trees.c:179,1
    - Dst: advice_enabled
      Src: /src/git/unpack-trees.c:181,1
    - Dst: _
      Src: /src/git/unpack-trees.c:182,1
    - Dst: _
      Src: /src/git/unpack-trees.c:184,1
    - Dst: strvec_pushf
      Src: /src/git/unpack-trees.c:186,1
    - Dst: _
      Src: /src/git/unpack-trees.c:192,1
    - Dst: _
      Src: /src/git/unpack-trees.c:195,1
    - Dst: _
      Src: /src/git/unpack-trees.c:198,1
    - Dst: _
      Src: /src/git/unpack-trees.c:200,1
    - Dst: _
      Src: /src/git/unpack-trees.c:202,1
    - Dst: ARRAY_SIZE
      Src: /src/git/unpack-trees.c:206,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - opts
    - cmd
    argTypes:
    - struct unpack_trees_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 208
    functionName: setup_unpack_trees_porcelain
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 3
    functionsReached:
    - ARRAY_SIZE
    - strvec_init
    - strcmp
    - _
    - strvec_pushf
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: "void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,\n\t\t\t\t
      \ const char *cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_clear
      Src: /src/git/unpack-trees.c:212,1
    - Dst: memset
      Src: /src/git/unpack-trees.c:213,1
    - Dst: discard_index
      Src: /src/git/unpack-trees.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: clear_unpack_trees_porcelain
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 3
    functionsReached:
    - strvec_clear
    - memset
    - discard_index
    linkageType: ''
    returnType: void
    signature: void clear_unpack_trees_porcelain(struct unpack_trees_options *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_index_entry
      Src: /src/git/unpack-trees.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - o
    - ce
    - set
    - clear
    argTypes:
    - struct unpack_trees_options*
    - struct cache_entry*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 8
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: do_add_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - add_index_entry
    linkageType: ''
    returnType: int
    signature: "int do_add_entry(struct unpack_trees_options *o, struct cache_entry
      *ce,\n\t\t\t unsigned int set, unsigned int clear)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_add_entry
      Src: /src/git/unpack-trees.c:234,1
    - Dst: dup_cache_entry
      Src: /src/git/unpack-trees.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - o
    - ce
    - set
    - clear
    argTypes:
    - struct unpack_trees_options*
    - struct cache_entry*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: add_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 4
    functionsReached:
    - dup_cache_entry
    - do_add_entry
    linkageType: ''
    returnType: void
    signature: "void add_entry(struct unpack_trees_options *o,\n\t\t      const struct
      cache_entry *ce,\n\t\t      unsigned int set, unsigned int clear)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/unpack-trees.c:250,1
    - Dst: ERRORMSG
      Src: /src/git/unpack-trees.c:250,1
    - Dst: super_prefixed
      Src: /src/git/unpack-trees.c:250,1
    - Dst: string_list_append
      Src: /src/git/unpack-trees.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - o
    - e
    - path
    argTypes:
    - struct unpack_trees_options*
    - enum unpack_trees_error_types
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: add_rejected_path
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - error
    - super_prefixed
    - ERRORMSG
    - string_list_append
    linkageType: ''
    returnType: int
    signature: "int add_rejected_path(struct unpack_trees_options *o,\n\t\t\t     enum
      unpack_trees_error_types e,\n\t\t\t     const char *path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/unpack-trees.c:277,1
    - Dst: error
      Src: /src/git/unpack-trees.c:278,1
    - Dst: ERRORMSG
      Src: /src/git/unpack-trees.c:278,1
    - Dst: super_prefixed
      Src: /src/git/unpack-trees.c:278,1
    - Dst: strbuf_release
      Src: /src/git/unpack-trees.c:280,1
    - Dst: string_list_clear
      Src: /src/git/unpack-trees.c:282,1
    - Dst: fprintf
      Src: /src/git/unpack-trees.c:285,1
    - Dst: _
      Src: /src/git/unpack-trees.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 286
    functionName: display_error_msgs
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - error
    - string_list_clear
    - super_prefixed
    - strbuf_release
    - strbuf_addf
    - ERRORMSG
    - _
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_error_msgs(struct unpack_trees_options *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/unpack-trees.c:305,1
    - Dst: warning
      Src: /src/git/unpack-trees.c:306,1
    - Dst: ERRORMSG
      Src: /src/git/unpack-trees.c:306,1
    - Dst: super_prefixed
      Src: /src/git/unpack-trees.c:306,1
    - Dst: strbuf_release
      Src: /src/git/unpack-trees.c:308,1
    - Dst: string_list_clear
      Src: /src/git/unpack-trees.c:310,1
    - Dst: fprintf
      Src: /src/git/unpack-trees.c:313,1
    - Dst: _
      Src: /src/git/unpack-trees.c:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 291
    functionDepth: 5
    functionLinenumber: 291
    functionLinenumberEnd: 314
    functionName: display_warning_msgs
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - super_prefixed
    - strbuf_release
    - strbuf_addf
    - ERRORMSG
    - _
    - warning
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_warning_msgs(struct unpack_trees_options *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_ce
      Src: /src/git/unpack-trees.c:321,1
    - Dst: submodule_move_head
      Src: /src/git/unpack-trees.c:329,1
    - Dst: add_rejected_path
      Src: /src/git/unpack-trees.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ce
    - old_id
    - new_id
    - o
    argTypes:
    - struct cache_entry*
    - char*
    - char*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 315
    functionDepth: 6
    functionLinenumber: 315
    functionLinenumberEnd: 333
    functionName: check_submodule_move_head
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - add_rejected_path
    - submodule_from_ce
    - submodule_move_head
    linkageType: ''
    returnType: int
    signature: "int check_submodule_move_head(const struct cache_entry *ce,\n\t\t\t\t
      \    const char *old_id,\n\t\t\t\t     const char *new_id,\n\t\t\t\t     struct
      unpack_trees_options *o)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/unpack-trees.c:347,1
    - Dst: strlen
      Src: /src/git/unpack-trees.c:347,1
    - Dst: repo_read_gitmodules
      Src: /src/git/unpack-trees.c:352,1
    - Dst: submodule_free
      Src: /src/git/unpack-trees.c:354,1
    - Dst: checkout_entry
      Src: /src/git/unpack-trees.c:355,1
    - Dst: repo_read_gitmodules
      Src: /src/git/unpack-trees.c:356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - index
    - state
    argTypes:
    - struct index_state*
    - struct checkout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 344
    functionDepth: 11
    functionLinenumber: 344
    functionLinenumberEnd: 359
    functionName: load_gitmodules_file
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - checkout_entry
    - strlen
    - repo_read_gitmodules
    - submodule_free
    linkageType: ''
    returnType: void
    signature: "void load_gitmodules_file(struct index_state *index,\n\t\t\t\t struct
      checkout *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/unpack-trees.c:375,1
    - Dst: _
      Src: /src/git/unpack-trees.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - o
    - index
    argTypes:
    - struct unpack_trees_options*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 377
    functionName: get_progress
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - start_delayed_progress
    - _
    linkageType: ''
    returnType: struct progress
    signature: "struct progress *get_progress(struct unpack_trees_options *o,\n\t\t\t\t
      \    struct index_state *index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - index
    argTypes:
    - struct checkout*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: setup_collided_checkout_detection
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void setup_collided_checkout_detection(struct checkout *state,\n\t\t\t\t\t
      \     struct index_state *index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/unpack-trees.c:400,1
    - Dst: string_list_sort
      Src: /src/git/unpack-trees.c:405,1
    - Dst: warning
      Src: /src/git/unpack-trees.c:408,1
    - Dst: _
      Src: /src/git/unpack-trees.c:408,1
    - Dst: fprintf
      Src: /src/git/unpack-trees.c:413,1
    - Dst: string_list_clear
      Src: /src/git/unpack-trees.c:416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 417
    functionName: report_collided_checkout
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_sort
    - string_list_append
    - _
    - warning
    - fprintf
    linkageType: ''
    returnType: void
    signature: void report_collided_checkout(struct index_state *index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ce
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: must_checkout
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int must_checkout(const struct cache_entry *ce)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: trace_performance_enter
      Src: /src/git/unpack-trees.c:433,1
    - Dst: clone_checkout_metadata
      Src: /src/git/unpack-trees.c:439,1
    - Dst: remove_marked_cache_entries
      Src: /src/git/unpack-trees.c:442,1
    - Dst: trace_performance_leave
      Src: /src/git/unpack-trees.c:443,1
    - Dst: setup_collided_checkout_detection
      Src: /src/git/unpack-trees.c:448,1
    - Dst: get_progress
      Src: /src/git/unpack-trees.c:450,1
    - Dst: invalidate_lstat_cache
      Src: /src/git/unpack-trees.c:453,1
    - Dst: git_attr_set_direction
      Src: /src/git/unpack-trees.c:455,1
    - Dst: should_update_submodules
      Src: /src/git/unpack-trees.c:457,1
    - Dst: load_gitmodules_file
      Src: /src/git/unpack-trees.c:458,1
    - Dst: display_progress
      Src: /src/git/unpack-trees.c:464,1
    - Dst: unlink_entry
      Src: /src/git/unpack-trees.c:465,1
    - Dst: remove_marked_cache_entries
      Src: /src/git/unpack-trees.c:469,1
    - Dst: remove_scheduled_dirs
      Src: /src/git/unpack-trees.c:470,1
    - Dst: should_update_submodules
      Src: /src/git/unpack-trees.c:472,1
    - Dst: load_gitmodules_file
      Src: /src/git/unpack-trees.c:473,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/unpack-trees.c:475,1
    - Dst: prefetch_cache_entries
      Src: /src/git/unpack-trees.c:480,1
    - Dst: get_parallel_checkout_configs
      Src: /src/git/unpack-trees.c:482,1
    - Dst: enable_delayed_checkout
      Src: /src/git/unpack-trees.c:484,1
    - Dst: init_parallel_checkout
      Src: /src/git/unpack-trees.c:486,1
    - Dst: must_checkout
      Src: /src/git/unpack-trees.c:490,1
    - Dst: pc_queue_size
      Src: /src/git/unpack-trees.c:491,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:494,1
    - Dst: checkout_entry
      Src: /src/git/unpack-trees.c:497,1
    - Dst: pc_queue_size
      Src: /src/git/unpack-trees.c:499,1
    - Dst: display_progress
      Src: /src/git/unpack-trees.c:500,1
    - Dst: run_parallel_checkout
      Src: /src/git/unpack-trees.c:504,1
    - Dst: stop_progress
      Src: /src/git/unpack-trees.c:506,1
    - Dst: finish_delayed_checkout
      Src: /src/git/unpack-trees.c:507,1
    - Dst: git_attr_set_direction
      Src: /src/git/unpack-trees.c:508,1
    - Dst: report_collided_checkout
      Src: /src/git/unpack-trees.c:511,1
    - Dst: trace_performance_leave
      Src: /src/git/unpack-trees.c:513,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - o
    - index
    argTypes:
    - struct unpack_trees_options*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 424
    functionDepth: 12
    functionLinenumber: 424
    functionLinenumberEnd: 515
    functionName: check_updates
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - unlink_entry
    - finish_delayed_checkout
    - trace_performance_leave
    - repo_has_promisor_remote
    - pc_queue_size
    - run_parallel_checkout
    - git_attr_set_direction
    - prefetch_cache_entries
    - get_progress
    - enable_delayed_checkout
    - remove_scheduled_dirs
    - checkout_entry
    - setup_collided_checkout_detection
    - init_parallel_checkout
    - clone_checkout_metadata
    - load_gitmodules_file
    - must_checkout
    - invalidate_lstat_cache
    - should_update_submodules
    - get_parallel_checkout_configs
    - trace_performance_enter
    - remove_marked_cache_entries
    - display_progress
    - report_collided_checkout
    - BUG
    linkageType: ''
    returnType: int
    signature: "int check_updates(struct unpack_trees_options *o,\n\t\t\t struct index_state
      *index)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ce_skip_worktree
      Src: /src/git/unpack-trees.c:527,1
    - Dst: ce_skip_worktree
      Src: /src/git/unpack-trees.c:533,1
    - Dst: mark_fsmonitor_invalid
      Src: /src/git/unpack-trees.c:535,1
    - Dst: ce_skip_worktree
      Src: /src/git/unpack-trees.c:552,1
    - Dst: ce_skip_worktree
      Src: /src/git/unpack-trees.c:565,1
    - Dst: verify_uptodate_sparse
      Src: /src/git/unpack-trees.c:572,1
    - Dst: ce_skip_worktree
      Src: /src/git/unpack-trees.c:579,1
    - Dst: verify_absent_sparse
      Src: /src/git/unpack-trees.c:580,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - istate
    - ce
    - o
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 585
    functionName: apply_sparse_checkout
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - verify_absent_sparse
    - ce_skip_worktree
    - mark_fsmonitor_invalid
    - verify_uptodate_sparse
    linkageType: ''
    returnType: int
    signature: "int apply_sparse_checkout(struct index_state *istate,\n\t\t\t\t struct
      cache_entry *ce,\n\t\t\t\t struct unpack_trees_options *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_rejected_path
      Src: /src/git/unpack-trees.c:594,1
    - Dst: strcmp
      Src: /src/git/unpack-trees.c:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - istate
    - i
    - o
    argTypes:
    - struct index_state*
    - int
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 587
    functionDepth: 6
    functionLinenumber: 587
    functionLinenumberEnd: 602
    functionName: warn_conflicted_path
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - add_rejected_path
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int warn_conflicted_path(struct index_state *istate,\n\t\t\t\tint
      i,\n\t\t\t\tstruct unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct unpack_trees_options*::fn
      Src: /src/git/unpack-trees.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - src
    - o
    argTypes:
    - struct cache_entry**
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 611
    functionName: call_unpack_fn
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - struct unpack_trees_options*::fn
    linkageType: ''
    returnType: int
    signature: "int call_unpack_fn(const struct cache_entry * const *src,\n\t\t\t\t
      struct unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 626
    functionName: mark_ce_used
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mark_ce_used(struct cache_entry *ce, struct unpack_trees_options
      *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 633
    functionName: mark_all_ce_unused
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mark_all_ce_unused(struct index_state *index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:639,1
    - Dst: index_name_pos
      Src: /src/git/unpack-trees.c:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 635
    functionDepth: 4
    functionLinenumber: 635
    functionLinenumberEnd: 644
    functionName: locate_in_src_index
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - ce_namelen
    linkageType: ''
    returnType: int
    signature: "int locate_in_src_index(const struct cache_entry *ce,\n\t\t\t       struct
      unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:655,1
    - Dst: locate_in_src_index
      Src: /src/git/unpack-trees.c:658,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:660,1
    - Dst: memcmp
      Src: /src/git/unpack-trees.c:661,1
    - Dst: mark_ce_used
      Src: /src/git/unpack-trees.c:663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 651
    functionDepth: 5
    functionLinenumber: 651
    functionLinenumberEnd: 665
    functionName: mark_ce_used_same_name
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - locate_in_src_index
    - mark_ce_used
    - ce_namelen
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void mark_ce_used_same_name(struct cache_entry *ce,\n\t\t\t\t   struct
      unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 679
    functionName: next_cache_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct cache_entry
    signature: struct cache_entry *next_cache_entry(struct unpack_trees_options *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:685,1
    - Dst: index_name_pos
      Src: /src/git/unpack-trees.c:686,1
    - Dst: die
      Src: /src/git/unpack-trees.c:689,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:692,1
    - Dst: memcmp
      Src: /src/git/unpack-trees.c:693,1
    - Dst: add_entry
      Src: /src/git/unpack-trees.c:695,1
    - Dst: mark_ce_used
      Src: /src/git/unpack-trees.c:696,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 681
    functionDepth: 4
    functionLinenumber: 681
    functionLinenumberEnd: 698
    functionName: add_same_unmerged
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - die
    - ce_namelen
    - mark_ce_used
    - add_entry
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void add_same_unmerged(const struct cache_entry *ce,\n\t\t\t      struct
      unpack_trees_options *o)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mark_ce_used
      Src: /src/git/unpack-trees.c:708,1
    - Dst: ce_stage
      Src: /src/git/unpack-trees.c:709,1
    - Dst: add_entry
      Src: /src/git/unpack-trees.c:711,1
    - Dst: call_unpack_fn
      Src: /src/git/unpack-trees.c:715,1
    - Dst: ce_stage
      Src: /src/git/unpack-trees.c:716,1
    - Dst: mark_ce_used_same_name
      Src: /src/git/unpack-trees.c:717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 700
    functionDepth: 6
    functionLinenumber: 700
    functionLinenumberEnd: 719
    functionName: unpack_index_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - call_unpack_fn
    - mark_ce_used
    - mark_ce_used_same_name
    - add_entry
    - ce_stage
    linkageType: ''
    returnType: int
    signature: "int unpack_index_entry(struct cache_entry *ce,\n\t\t\t      struct
      unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - info
    - bottom
    argTypes:
    - struct traverse_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 730
    functionName: restore_cache_bottom
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void restore_cache_bottom(struct traverse_info *info, int bottom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_cache_pos
      Src: /src/git/unpack-trees.c:740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 747
    functionName: switch_cache_bottom
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - find_cache_pos
    linkageType: ''
    returnType: int
    signature: int switch_cache_bottom(struct traverse_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/unpack-trees.c:751,1
    - Dst: is_null_oid
      Src: /src/git/unpack-trees.c:751,1
    - Dst: oideq
      Src: /src/git/unpack-trees.c:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - name_j
    - name_k
    argTypes:
    - struct name_entry*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 752
    functionName: are_same_oid
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - oideq
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int are_same_oid(struct name_entry *name_j, struct name_entry *name_k)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: are_same_oid
      Src: /src/git/unpack-trees.c:765,1
    - Dst: cache_tree_matches_traversal
      Src: /src/git/unpack-trees.c:768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - n
    - dirmask
    - names
    - info
    argTypes:
    - int
    - unsigned long
    - struct name_entry*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 754
    functionDepth: 6
    functionLinenumber: 754
    functionLinenumberEnd: 769
    functionName: all_trees_same_as_cache_tree
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - cache_tree_matches_traversal
    - are_same_oid
    linkageType: ''
    returnType: int
    signature: "int all_trees_same_as_cache_tree(int n, unsigned long dirmask,\n\t\t\t\t\tstruct
      name_entry *names,\n\t\t\t\t\tstruct traverse_info *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_make_traverse_path
      Src: /src/git/unpack-trees.c:778,1
    - Dst: strbuf_addch
      Src: /src/git/unpack-trees.c:779,1
    - Dst: index_name_pos
      Src: /src/git/unpack-trees.c:780,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:784,1
    - Dst: starts_with
      Src: /src/git/unpack-trees.c:789,1
    - Dst: starts_with
      Src: /src/git/unpack-trees.c:790,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:791,1
    - Dst: strbuf_release
      Src: /src/git/unpack-trees.c:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - names
    - info
    argTypes:
    - struct name_entry*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 771
    functionDepth: 5
    functionLinenumber: 771
    functionLinenumberEnd: 795
    functionName: index_pos_by_traverse_info
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - strbuf_release
    - strbuf_make_traverse_path
    - starts_with
    - strbuf_addch
    - BUG
    linkageType: ''
    returnType: int
    signature: "int index_pos_by_traverse_info(struct name_entry *names,\n\t\t\t\t
      \     struct traverse_info *info)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/unpack-trees.c:812,1
    - Dst: error
      Src: /src/git/unpack-trees.c:814,1
    - Dst: _
      Src: /src/git/unpack-trees.c:814,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:829,1
    - Dst: cache_entry_size
      Src: /src/git/unpack-trees.c:830,1
    - Dst: xrealloc
      Src: /src/git/unpack-trees.c:834,1
    - Dst: memset
      Src: /src/git/unpack-trees.c:835,1
    - Dst: create_ce_flags
      Src: /src/git/unpack-trees.c:838,1
    - Dst: oidcpy
      Src: /src/git/unpack-trees.c:846,1
    - Dst: memcpy
      Src: /src/git/unpack-trees.c:847,1
    - Dst: call_unpack_fn
      Src: /src/git/unpack-trees.c:849,1
    - Dst: free
      Src: /src/git/unpack-trees.c:851,1
    - Dst: mark_ce_used
      Src: /src/git/unpack-trees.c:855,1
    - Dst: free
      Src: /src/git/unpack-trees.c:857,1
    - Dst: printf
      Src: /src/git/unpack-trees.c:859,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - pos
    - nr_entries
    - nr_names
    - info
    argTypes:
    - int
    - int
    - int
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 802
    functionDepth: 7
    functionLinenumber: 802
    functionLinenumberEnd: 864
    functionName: traverse_by_cache_tree
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - error
    - call_unpack_fn
    - memset
    - ce_namelen
    - oidcpy
    - create_ce_flags
    - xrealloc
    - memcpy
    - cache_entry_size
    - mark_ce_used
    - _
    - free
    - BUG
    - printf
    linkageType: ''
    returnType: int
    signature: "int traverse_by_cache_tree(int pos, int nr_entries, int nr_names,\n\t\t\t\t
      \ struct traverse_info *info)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: all_trees_same_as_cache_tree
      Src: /src/git/unpack-trees.c:880,1
    - Dst: index_pos_by_traverse_info
      Src: /src/git/unpack-trees.c:882,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:885,1
    - Dst: traverse_by_cache_tree
      Src: /src/git/unpack-trees.c:894,1
    - Dst: st_add3
      Src: /src/git/unpack-trees.c:909,1
    - Dst: tree_entry_len
      Src: /src/git/unpack-trees.c:909,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/unpack-trees.c:912,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/unpack-trees.c:913,1
    - Dst: are_same_oid
      Src: /src/git/unpack-trees.c:932,1
    - Dst: are_same_oid
      Src: /src/git/unpack-trees.c:934,1
    - Dst: fill_tree_descriptor
      Src: /src/git/unpack-trees.c:940,1
    - Dst: switch_cache_bottom
      Src: /src/git/unpack-trees.c:944,1
    - Dst: traverse_trees
      Src: /src/git/unpack-trees.c:945,1
    - Dst: restore_cache_bottom
      Src: /src/git/unpack-trees.c:946,1
    - Dst: free
      Src: /src/git/unpack-trees.c:949,1
    - Dst: free
      Src: /src/git/unpack-trees.c:950,1
    - Dst: free
      Src: /src/git/unpack-trees.c:951,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 5
    argNames:
    - n
    - dirmask
    - df_conflicts
    - names
    - info
    argTypes:
    - int
    - unsigned long
    - unsigned long
    - struct name_entry*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 866
    functionDepth: 8
    functionLinenumber: 866
    functionLinenumberEnd: 954
    functionName: traverse_trees_recursive
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - traverse_trees
    - fill_tree_descriptor
    - traverse_by_cache_tree
    - all_trees_same_as_cache_tree
    - ALLOC_ARRAY
    - are_same_oid
    - switch_cache_bottom
    - index_pos_by_traverse_info
    - restore_cache_bottom
    - st_add3
    - free
    - tree_entry_len
    - BUG
    linkageType: ''
    returnType: int
    signature: "int traverse_trees_recursive(int n, unsigned long dirmask,\n\t\t\t\t
      \   unsigned long df_conflicts,\n\t\t\t\t    struct name_entry *names,\n\t\t\t\t
      \   struct traverse_info *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: do_compare_entry_piecewise
      Src: /src/git/unpack-trees.c:974,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:981,1
    - Dst: df_name_compare
      Src: /src/git/unpack-trees.c:990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ce
    - info
    - name
    - namelen
    - mode
    argTypes:
    - struct cache_entry*
    - struct traverse_info*
    - char*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 991
    functionName: do_compare_entry_piecewise
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 1
    functionsReached:
    - do_compare_entry_piecewise
    - df_name_compare
    - ce_namelen
    linkageType: ''
    returnType: int
    signature: "int do_compare_entry_piecewise(const struct cache_entry *ce,\n\t\t\t\t
      \     const struct traverse_info *info,\n\t\t\t\t      const char *name, size_t
      namelen,\n\t\t\t\t      unsigned mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: do_compare_entry_piecewise
      Src: /src/git/unpack-trees.c:1009,1
    - Dst: strncmp
      Src: /src/git/unpack-trees.c:1011,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:1016,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:1024,1
    - Dst: df_name_compare
      Src: /src/git/unpack-trees.c:1025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ce
    - info
    - name
    - namelen
    - mode
    argTypes:
    - struct cache_entry*
    - struct traverse_info*
    - char*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 993
    functionDepth: 2
    functionLinenumber: 993
    functionLinenumberEnd: 1026
    functionName: do_compare_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - do_compare_entry_piecewise
    - ce_namelen
    - df_name_compare
    - S_ISSPARSEDIR
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int do_compare_entry(const struct cache_entry *ce,\n\t\t\t    const
      struct traverse_info *info,\n\t\t\t    const char *name, size_t namelen,\n\t\t\t
      \   unsigned mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_compare_entry
      Src: /src/git/unpack-trees.c:1030,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:1040,1
    - Dst: traverse_path_len
      Src: /src/git/unpack-trees.c:1041,1
    - Dst: tree_entry_len
      Src: /src/git/unpack-trees.c:1041,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:1048,1
    - Dst: traverse_path_len
      Src: /src/git/unpack-trees.c:1048,1
    - Dst: tree_entry_len
      Src: /src/git/unpack-trees.c:1048,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ce
    - info
    - n
    argTypes:
    - struct cache_entry*
    - struct traverse_info*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1028
    functionDepth: 4
    functionLinenumber: 1028
    functionLinenumberEnd: 1049
    functionName: compare_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 1
    functionsReached:
    - ce_namelen
    - S_ISSPARSEDIR
    - traverse_path_len
    - do_compare_entry
    - tree_entry_len
    linkageType: ''
    returnType: int
    signature: int compare_entry(const struct cache_entry *ce, const struct traverse_info
      *info, const struct name_entry *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_compare_entry
      Src: /src/git/unpack-trees.c:1056,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ce
    - info
    argTypes:
    - struct cache_entry*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1051
    functionDepth: 3
    functionLinenumber: 1051
    functionLinenumberEnd: 1064
    functionName: ce_in_traverse_path
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - do_compare_entry
    - ce_namelen
    linkageType: ''
    returnType: int
    signature: "int ce_in_traverse_path(const struct cache_entry *ce,\n\t\t\t       const
      struct traverse_info *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: traverse_path_len
      Src: /src/git/unpack-trees.c:1073,1
    - Dst: tree_entry_len
      Src: /src/git/unpack-trees.c:1073,1
    - Dst: make_empty_transient_cache_entry
      Src: /src/git/unpack-trees.c:1077,1
    - Dst: make_empty_cache_entry
      Src: /src/git/unpack-trees.c:1078,1
    - Dst: create_ce_mode
      Src: /src/git/unpack-trees.c:1080,1
    - Dst: create_ce_flags
      Src: /src/git/unpack-trees.c:1081,1
    - Dst: oidcpy
      Src: /src/git/unpack-trees.c:1083,1
    - Dst: make_traverse_path
      Src: /src/git/unpack-trees.c:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - info
    - n
    - stage
    - istate
    - is_transient
    - is_sparse_directory
    argTypes:
    - struct traverse_info*
    - struct name_entry*
    - int
    - struct index_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1066
    functionDepth: 6
    functionLinenumber: 1066
    functionLinenumberEnd: 1095
    functionName: create_ce_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - make_empty_transient_cache_entry
    - make_empty_cache_entry
    - traverse_path_len
    - create_ce_mode
    - tree_entry_len
    - create_ce_flags
    - make_traverse_path
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *create_ce_entry(const struct traverse_info *info,\n\tconst
      struct name_entry *n,\n\tint stage,\n\tstruct index_state *istate,\n\tint is_transient,\n\tint
      is_sparse_directory)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/unpack-trees.c:1114,1
    - Dst: strbuf_add
      Src: /src/git/unpack-trees.c:1120,1
    - Dst: strbuf_add
      Src: /src/git/unpack-trees.c:1121,1
    - Dst: strbuf_addch
      Src: /src/git/unpack-trees.c:1122,1
    - Dst: path_in_cone_mode_sparse_checkout
      Src: /src/git/unpack-trees.c:1123,1
    - Dst: index_name_pos_sparse
      Src: /src/git/unpack-trees.c:1128,1
    - Dst: strncmp
      Src: /src/git/unpack-trees.c:1151,1
    - Dst: strbuf_release
      Src: /src/git/unpack-trees.c:1154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - info
    - p
    argTypes:
    - struct traverse_info*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1107
    functionDepth: 7
    functionLinenumber: 1107
    functionLinenumberEnd: 1156
    functionName: entry_is_new_sparse_dir
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - strbuf_release
    - index_name_pos_sparse
    - path_in_cone_mode_sparse_checkout
    - strbuf_addch
    - strncmp
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int entry_is_new_sparse_dir(const struct traverse_info *info,\n\t\t\t\t
      \  const struct name_entry *p)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: entry_is_new_sparse_dir
      Src: /src/git/unpack-trees.c:1194,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:1204,1
    - Dst: create_ce_entry
      Src: /src/git/unpack-trees.c:1236,1
    - Dst: call_unpack_fn
      Src: /src/git/unpack-trees.c:1242,1
    - Dst: discard_cache_entry
      Src: /src/git/unpack-trees.c:1247,1
    - Dst: do_add_entry
      Src: /src/git/unpack-trees.c:1254,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 41
    argCount: 7
    argNames:
    - n
    - mask
    - dirmask
    - src
    - names
    - info
    - is_new_sparse_dir
    argTypes:
    - int
    - unsigned long
    - unsigned long
    - struct cache_entry**
    - struct name_entry*
    - struct traverse_info*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1163
    functionDepth: 9
    functionLinenumber: 1163
    functionLinenumberEnd: 1258
    functionName: unpack_single_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - call_unpack_fn
    - entry_is_new_sparse_dir
    - S_ISSPARSEDIR
    - create_ce_entry
    - discard_cache_entry
    - do_add_entry
    linkageType: ''
    returnType: int
    signature: "int unpack_single_entry(int n, unsigned long mask,\n\t\t\t       unsigned
      long dirmask,\n\t\t\t       struct cache_entry **src,\n\t\t\t       const struct
      name_entry *names,\n\t\t\t       const struct traverse_info *info,\n\t\t\t       int
      *is_new_sparse_dir)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: discard_index
      Src: /src/git/unpack-trees.c:1262,1
    - Dst: error
      Src: /src/git/unpack-trees.c:1265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - o
    - message
    argTypes:
    - struct unpack_trees_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1260
    functionDepth: 5
    functionLinenumber: 1260
    functionLinenumberEnd: 1269
    functionName: unpack_failed
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - error
    - discard_index
    linkageType: ''
    returnType: int
    signature: int unpack_failed(struct unpack_trees_options *o, const char *message)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ce_in_traverse_path
      Src: /src/git/unpack-trees.c:1300,1
    - Dst: strncmp
      Src: /src/git/unpack-trees.c:1307,1
    - Dst: strchr
      Src: /src/git/unpack-trees.c:1314,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:1318,1
    - Dst: name_compare
      Src: /src/git/unpack-trees.c:1319,1
    - Dst: memcmp
      Src: /src/git/unpack-trees.c:1334,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 29
    argCount: 3
    argNames:
    - info
    - p
    - p_len
    argTypes:
    - struct traverse_info*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1277
    functionDepth: 4
    functionLinenumber: 1277
    functionLinenumberEnd: 1340
    functionName: find_cache_pos
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 1
    functionsReached:
    - ce_namelen
    - name_compare
    - strchr
    - ce_in_traverse_path
    - strncmp
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int find_cache_pos(struct traverse_info *info,\n\t\t\t  const char
      *p, size_t p_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/unpack-trees.c:1355,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:1355,1
    - Dst: assert
      Src: /src/git/unpack-trees.c:1356,1
    - Dst: strncmp
      Src: /src/git/unpack-trees.c:1361,1
    - Dst: strncmp
      Src: /src/git/unpack-trees.c:1362,1
    - Dst: strncmp
      Src: /src/git/unpack-trees.c:1364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ce
    - info
    - p
    argTypes:
    - struct cache_entry*
    - struct traverse_info*
    - struct name_entry*
    assertStmts:
    - condition: (S_ISSPARSEDIR(ce->ce_mode))
      pos:
        line_end: 1354
        line_start: 1354
        source_file: /src/git/unpack-trees.c
    - condition: (ce->name[ce->ce_namelen - 1] == '/')
      pos:
        line_end: 1355
        line_start: 1355
        source_file: /src/git/unpack-trees.c
    constantsTouched: []
    func_position:
      end: 1365
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1365
    functionName: sparse_dir_matches_path
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - strncmp
    - S_ISSPARSEDIR
    - assert
    linkageType: ''
    returnType: int
    signature: "int sparse_dir_matches_path(const struct cache_entry *ce,\n\t\t\t\t
      \  struct traverse_info *info,\n\t\t\t\t   const struct name_entry *p)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_cache_pos
      Src: /src/git/unpack-trees.c:1371,1
    - Dst: skip_prefix
      Src: /src/git/unpack-trees.c:1398,1
    - Dst: strncmp
      Src: /src/git/unpack-trees.c:1399,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:1403,1
    - Dst: sparse_dir_matches_path
      Src: /src/git/unpack-trees.c:1404,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - info
    - p
    argTypes:
    - struct traverse_info*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1367
    functionDepth: 5
    functionLinenumber: 1367
    functionLinenumberEnd: 1411
    functionName: find_cache_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - find_cache_pos
    - S_ISSPARSEDIR
    - strncmp
    - skip_prefix
    - sparse_dir_matches_path
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *find_cache_entry(struct traverse_info *info,\n\t\t\t\t\t
      \   const struct name_entry *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: debug_path
      Src: /src/git/unpack-trees.c:1416,1
    - Dst: putchar
      Src: /src/git/unpack-trees.c:1418,1
    - Dst: printf
      Src: /src/git/unpack-trees.c:1420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1421
    functionName: debug_path
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 1
    functionsReached:
    - debug_path
    - putchar
    - printf
    linkageType: ''
    returnType: void
    signature: void debug_path(struct traverse_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/unpack-trees.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - n
    argTypes:
    - int
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1428
    functionName: debug_name_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void debug_name_entry(int i, struct name_entry *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/unpack-trees.c:1437,1
    - Dst: debug_path
      Src: /src/git/unpack-trees.c:1439,1
    - Dst: putchar
      Src: /src/git/unpack-trees.c:1440,1
    - Dst: debug_name_entry
      Src: /src/git/unpack-trees.c:1442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - n
    - mask
    - dirmask
    - names
    - info
    argTypes:
    - int
    - unsigned long
    - unsigned long
    - struct name_entry*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1430
    functionDepth: 2
    functionLinenumber: 1430
    functionLinenumberEnd: 1443
    functionName: debug_unpack_callback
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - debug_path
    - putchar
    - debug_name_entry
    - printf
    linkageType: ''
    returnType: void
    signature: "void debug_unpack_callback(int n,\n\t\t\t\t  unsigned long mask,\n\t\t\t\t
      \ unsigned long dirmask,\n\t\t\t\t  struct name_entry *names,\n\t\t\t\t  struct
      traverse_info *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:1454,1
    - Dst: sparse_dir_matches_path
      Src: /src/git/unpack-trees.c:1457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - ce
    - name
    - info
    argTypes:
    - struct cache_entry*
    - struct name_entry*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1450
    functionDepth: 2
    functionLinenumber: 1450
    functionLinenumberEnd: 1458
    functionName: is_sparse_directory_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - S_ISSPARSEDIR
    - sparse_dir_matches_path
    linkageType: ''
    returnType: int
    signature: "int is_sparse_directory_entry(struct cache_entry *ce,\n\t\t\t\t     const
      struct name_entry *name,\n\t\t\t\t     struct traverse_info *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/unpack-trees.c:1466,1
    - Dst: is_null_oid
      Src: /src/git/unpack-trees.c:1473,1
    - Dst: create_ce_entry
      Src: /src/git/unpack-trees.c:1474,1
    - Dst: unpack_single_entry
      Src: /src/git/unpack-trees.c:1488,1
    - Dst: discard_cache_entry
      Src: /src/git/unpack-trees.c:1491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - n
    - mask
    - dirmask
    - names
    - info
    argTypes:
    - int
    - unsigned long
    - unsigned long
    - struct name_entry*
    - struct traverse_info*
    assertStmts:
    - condition: (o->merge)
      pos:
        line_end: 1465
        line_start: 1465
        source_file: /src/git/unpack-trees.c
    constantsTouched: []
    func_position:
      end: 1494
      start: 1460
    functionDepth: 10
    functionLinenumber: 1460
    functionLinenumberEnd: 1494
    functionName: unpack_sparse_callback
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - assert
    - create_ce_entry
    - discard_cache_entry
    - is_null_oid
    - unpack_single_entry
    linkageType: ''
    returnType: int
    signature: int unpack_sparse_callback(int n, unsigned long mask, unsigned long
      dirmask, struct name_entry *names, struct traverse_info *info)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: debug_unpack_callback
      Src: /src/git/unpack-trees.c:1513,1
    - Dst: next_cache_entry
      Src: /src/git/unpack-trees.c:1522,1
    - Dst: find_cache_entry
      Src: /src/git/unpack-trees.c:1524,1
    - Dst: compare_entry
      Src: /src/git/unpack-trees.c:1528,1
    - Dst: unpack_index_entry
      Src: /src/git/unpack-trees.c:1530,1
    - Dst: unpack_failed
      Src: /src/git/unpack-trees.c:1531,1
    - Dst: ce_stage
      Src: /src/git/unpack-trees.c:1535,1
    - Dst: add_same_unmerged
      Src: /src/git/unpack-trees.c:1543,1
    - Dst: unpack_single_entry
      Src: /src/git/unpack-trees.c:1553,1
    - Dst: ce_stage
      Src: /src/git/unpack-trees.c:1557,1
    - Dst: mark_ce_used_same_name
      Src: /src/git/unpack-trees.c:1558,1
    - Dst: mark_ce_used
      Src: /src/git/unpack-trees.c:1560,1
    - Dst: S_ISDIR
      Src: /src/git/unpack-trees.c:1567,1
    - Dst: cache_tree_matches_traversal
      Src: /src/git/unpack-trees.c:1569,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:1584,1
    - Dst: is_sparse_directory_entry
      Src: /src/git/unpack-trees.c:1590,1
    - Dst: traverse_trees_recursive
      Src: /src/git/unpack-trees.c:1592,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 52
    argCount: 5
    argNames:
    - n
    - mask
    - dirmask
    - names
    - info
    argTypes:
    - int
    - unsigned long
    - unsigned long
    - struct name_entry*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1501
    functionDepth: 10
    functionLinenumber: 1501
    functionLinenumberEnd: 1601
    functionName: unpack_callback
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - traverse_trees_recursive
    - find_cache_entry
    - S_ISSPARSEDIR
    - add_same_unmerged
    - compare_entry
    - next_cache_entry
    - debug_unpack_callback
    - is_sparse_directory_entry
    - mark_ce_used_same_name
    - mark_ce_used
    - unpack_failed
    - unpack_index_entry
    - cache_tree_matches_traversal
    - unpack_single_entry
    - ce_stage
    linkageType: ''
    returnType: int
    signature: int unpack_callback(int n, unsigned long mask, unsigned long dirmask,
      struct name_entry *names, struct traverse_info *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: path_matches_pattern_list
      Src: /src/git/unpack-trees.c:1625,1
    - Dst: strbuf_addch
      Src: /src/git/unpack-trees.c:1628,1
    - Dst: strncmp
      Src: /src/git/unpack-trees.c:1638,1
    - Dst: clear_ce_flags_1
      Src: /src/git/unpack-trees.c:1653,1
    - Dst: strbuf_setlen
      Src: /src/git/unpack-trees.c:1660,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 10
    argNames:
    - istate
    - cache
    - nr
    - prefix
    - basename
    - select_mask
    - clear_mask
    - pl
    - default_match
    - progress_nr
    argTypes:
    - struct index_state*
    - struct cache_entry**
    - int
    - struct strbuf*
    - char*
    - int
    - int
    - struct pattern_list*
    - enum pattern_match_result
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1612
    functionDepth: 5
    functionLinenumber: 1612
    functionLinenumberEnd: 1662
    functionName: clear_ce_flags_dir
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - path_matches_pattern_list
    - strbuf_setlen
    - strbuf_addch
    - strncmp
    - clear_ce_flags_1
    linkageType: ''
    returnType: int
    signature: "int clear_ce_flags_dir(struct index_state *istate,\n\t\t\t      struct
      cache_entry **cache, int nr,\n\t\t\t      struct strbuf *prefix,\n\t\t\t      char
      *basename,\n\t\t\t      int select_mask, int clear_mask,\n\t\t\t      struct
      pattern_list *pl,\n\t\t\t      enum pattern_match_result default_match,\n\t\t\t
      \     int progress_nr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/unpack-trees.c:1699,1
    - Dst: strncmp
      Src: /src/git/unpack-trees.c:1707,1
    - Dst: strchr
      Src: /src/git/unpack-trees.c:1711,1
    - Dst: strbuf_add
      Src: /src/git/unpack-trees.c:1718,1
    - Dst: clear_ce_flags_dir
      Src: /src/git/unpack-trees.c:1720,1
    - Dst: strbuf_setlen
      Src: /src/git/unpack-trees.c:1731,1
    - Dst: strbuf_addch
      Src: /src/git/unpack-trees.c:1735,1
    - Dst: clear_ce_flags_1
      Src: /src/git/unpack-trees.c:1736,1
    - Dst: strbuf_setlen
      Src: /src/git/unpack-trees.c:1744,1
    - Dst: ce_to_dtype
      Src: /src/git/unpack-trees.c:1749,1
    - Dst: path_matches_pattern_list
      Src: /src/git/unpack-trees.c:1750,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:1751,1
    - Dst: display_progress
      Src: /src/git/unpack-trees.c:1761,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 9
    argNames:
    - istate
    - cache
    - nr
    - prefix
    - select_mask
    - clear_mask
    - pl
    - default_match
    - progress_nr
    argTypes:
    - struct index_state*
    - struct cache_entry**
    - int
    - struct strbuf*
    - int
    - int
    - struct pattern_list*
    - enum pattern_match_result
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1679
    functionDepth: 6
    functionLinenumber: 1679
    functionLinenumberEnd: 1763
    functionName: clear_ce_flags_1
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 2
    functionsReached:
    - path_matches_pattern_list
    - clear_ce_flags_dir
    - ce_namelen
    - strbuf_setlen
    - ce_to_dtype
    - strchr
    - strbuf_addch
    - display_progress
    - strncmp
    - clear_ce_flags_1
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int clear_ce_flags_1(struct index_state *istate,\n\t\t\t    struct
      cache_entry **cache, int nr,\n\t\t\t    struct strbuf *prefix,\n\t\t\t    int
      select_mask, int clear_mask,\n\t\t\t    struct pattern_list *pl,\n\t\t\t    enum
      pattern_match_result default_match,\n\t\t\t    int progress_nr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/unpack-trees.c:1774,1
    - Dst: start_delayed_progress
      Src: /src/git/unpack-trees.c:1776,1
    - Dst: _
      Src: /src/git/unpack-trees.c:1778,1
    - Dst: xsnprintf
      Src: /src/git/unpack-trees.c:1781,1
    - Dst: trace2_region_enter
      Src: /src/git/unpack-trees.c:1783,1
    - Dst: clear_ce_flags_1
      Src: /src/git/unpack-trees.c:1784,1
    - Dst: trace2_region_leave
      Src: /src/git/unpack-trees.c:1790,1
    - Dst: stop_progress
      Src: /src/git/unpack-trees.c:1792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - istate
    - select_mask
    - clear_mask
    - pl
    - show_progress
    argTypes:
    - struct index_state*
    - int
    - int
    - struct pattern_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1765
    functionDepth: 7
    functionLinenumber: 1765
    functionLinenumberEnd: 1794
    functionName: clear_ce_flags
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - strbuf_reset
    - trace2_region_leave
    - trace2_region_enter
    - start_delayed_progress
    - xsnprintf
    - _
    - clear_ce_flags_1
    linkageType: ''
    returnType: int
    signature: "int clear_ce_flags(struct index_state *istate,\n\t\t\t  int select_mask,
      int clear_mask,\n\t\t\t  struct pattern_list *pl,\n\t\t\t  int show_progress)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ce_stage
      Src: /src/git/unpack-trees.c:1816,1
    - Dst: clear_ce_flags
      Src: /src/git/unpack-trees.c:1826,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - pl
    - istate
    - select_flag
    - skip_wt_flag
    - show_progress
    argTypes:
    - struct pattern_list*
    - struct index_state*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1799
    functionDepth: 8
    functionLinenumber: 1799
    functionLinenumberEnd: 1827
    functionName: mark_new_skip_worktree
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - clear_ce_flags
    - ce_stage
    linkageType: ''
    returnType: void
    signature: "void mark_new_skip_worktree(struct pattern_list *pl,\n\t\t\t\t   struct
      index_state *istate,\n\t\t\t\t   int select_flag, int skip_wt_flag,\n\t\t\t\t
      \  int show_progress)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sparse_checkout_patterns
      Src: /src/git/unpack-trees.c:1832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - o
    - pl
    argTypes:
    - struct unpack_trees_options*
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1829
    functionDepth: 6
    functionLinenumber: 1829
    functionLinenumberEnd: 1836
    functionName: populate_from_existing_patterns
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - get_sparse_checkout_patterns
    linkageType: ''
    returnType: void
    signature: "void populate_from_existing_patterns(struct unpack_trees_options *o,\n\t\t\t\t\t
      \   struct pattern_list *pl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/unpack-trees.c:1841,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:1851,1
    - Dst: strbuf_grow
      Src: /src/git/unpack-trees.c:1853,1
    - Dst: strbuf_add
      Src: /src/git/unpack-trees.c:1854,1
    - Dst: strbuf_addch
      Src: /src/git/unpack-trees.c:1855,1
    - Dst: path_in_cone_mode_sparse_checkout
      Src: /src/git/unpack-trees.c:1867,1
    - Dst: index_name_pos
      Src: /src/git/unpack-trees.c:1868,1
    - Dst: ensure_full_index
      Src: /src/git/unpack-trees.c:1869,1
    - Dst: strbuf_release
      Src: /src/git/unpack-trees.c:1871,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - prefix
    - istate
    argTypes:
    - char*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1838
    functionDepth: 9
    functionLinenumber: 1838
    functionLinenumberEnd: 1872
    functionName: update_sparsity_for_prefix
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - index_name_pos
    - strbuf_release
    - path_in_cone_mode_sparse_checkout
    - strbuf_addch
    - strlen
    - strbuf_grow
    - BUG
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void update_sparsity_for_prefix(const char *prefix,\n\t\t\t\t       struct
      index_state *istate)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/unpack-trees.c:1891,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:1894,1
    - Dst: die
      Src: /src/git/unpack-trees.c:1897,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:1899,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:1901,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:1903,1
    - Dst: trace_performance_enter
      Src: /src/git/unpack-trees.c:1905,1
    - Dst: trace2_region_enter
      Src: /src/git/unpack-trees.c:1906,1
    - Dst: prepare_repo_settings
      Src: /src/git/unpack-trees.c:1908,1
    - Dst: ensure_full_index
      Src: /src/git/unpack-trees.c:1910,1
    - Dst: ensure_full_index
      Src: /src/git/unpack-trees.c:1912,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:1917,1
    - Dst: setup_standard_excludes
      Src: /src/git/unpack-trees.c:1922,1
    - Dst: update_sparsity_for_prefix
      Src: /src/git/unpack-trees.c:1926,1
    - Dst: memset
      Src: /src/git/unpack-trees.c:1931,1
    - Dst: populate_from_existing_patterns
      Src: /src/git/unpack-trees.c:1933,1
    - Dst: index_state_init
      Src: /src/git/unpack-trees.c:1936,1
    - Dst: init_split_index
      Src: /src/git/unpack-trees.c:1956,1
    - Dst: oidcpy
      Src: /src/git/unpack-trees.c:1958,1
    - Dst: mark_all_ce_unused
      Src: /src/git/unpack-trees.c:1960,1
    - Dst: xstrdup_or_null
      Src: /src/git/unpack-trees.c:1963,1
    - Dst: is_sparse_index_allowed
      Src: /src/git/unpack-trees.c:1968,1
    - Dst: mark_new_skip_worktree
      Src: /src/git/unpack-trees.c:1975,1
    - Dst: xcalloc
      Src: /src/git/unpack-trees.c:1979,1
    - Dst: cache_entry_size
      Src: /src/git/unpack-trees.c:1979,1
    - Dst: setup_traverse_info
      Src: /src/git/unpack-trees.c:1986,1
    - Dst: next_cache_entry
      Src: /src/git/unpack-trees.c:1999,1
    - Dst: ce_in_traverse_path
      Src: /src/git/unpack-trees.c:2002,1
    - Dst: unpack_index_entry
      Src: /src/git/unpack-trees.c:2004,1
    - Dst: trace_performance_enter
      Src: /src/git/unpack-trees.c:2009,1
    - Dst: trace2_region_enter
      Src: /src/git/unpack-trees.c:2010,1
    - Dst: traverse_trees
      Src: /src/git/unpack-trees.c:2011,1
    - Dst: trace2_region_leave
      Src: /src/git/unpack-trees.c:2012,1
    - Dst: trace_performance_leave
      Src: /src/git/unpack-trees.c:2013,1
    - Dst: next_cache_entry
      Src: /src/git/unpack-trees.c:2021,1
    - Dst: unpack_index_entry
      Src: /src/git/unpack-trees.c:2024,1
    - Dst: mark_all_ce_unused
      Src: /src/git/unpack-trees.c:2028,1
    - Dst: unpack_failed
      Src: /src/git/unpack-trees.c:2031,1
    - Dst: mark_new_skip_worktree
      Src: /src/git/unpack-trees.c:2041,1
    - Dst: verify_absent
      Src: /src/git/unpack-trees.c:2058,1
    - Dst: apply_sparse_checkout
      Src: /src/git/unpack-trees.c:2061,1
    - Dst: display_warning_msgs
      Src: /src/git/unpack-trees.c:2070,1
    - Dst: check_updates
      Src: /src/git/unpack-trees.c:2075,1
    - Dst: move_index_extensions
      Src: /src/git/unpack-trees.c:2077,1
    - Dst: git_env_bool
      Src: /src/git/unpack-trees.c:2079,1
    - Dst: cache_tree_verify
      Src: /src/git/unpack-trees.c:2080,1
    - Dst: cache_tree_fully_valid
      Src: /src/git/unpack-trees.c:2087,1
    - Dst: cache_tree_update
      Src: /src/git/unpack-trees.c:2088,1
    - Dst: discard_index
      Src: /src/git/unpack-trees.c:2094,1
    - Dst: memset
      Src: /src/git/unpack-trees.c:2096,1
    - Dst: discard_index
      Src: /src/git/unpack-trees.c:2098,1
    - Dst: clear_pattern_list
      Src: /src/git/unpack-trees.c:2104,1
    - Dst: dir_clear
      Src: /src/git/unpack-trees.c:2106,1
    - Dst: trace2_region_leave
      Src: /src/git/unpack-trees.c:2109,1
    - Dst: trace_performance_leave
      Src: /src/git/unpack-trees.c:2110,1
    - Dst: display_error_msgs
      Src: /src/git/unpack-trees.c:2115,1
    - Dst: mark_all_ce_unused
      Src: /src/git/unpack-trees.c:2116,1
    - Dst: unpack_failed
      Src: /src/git/unpack-trees.c:2117,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 160
    argCount: 3
    argNames:
    - len
    - t
    - o
    argTypes:
    - unsigned
    - struct tree_desc*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 1883
    functionDepth: 13
    functionLinenumber: 1883
    functionLinenumberEnd: 2121
    functionName: unpack_trees
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 4
    functionsReached:
    - ensure_full_index
    - traverse_trees
    - apply_sparse_checkout
    - oidcpy
    - trace2_region_enter
    - move_index_extensions
    - next_cache_entry
    - mark_new_skip_worktree
    - cache_tree_verify
    - discard_index
    - trace_performance_leave
    - die
    - xstrdup_or_null
    - git_env_bool
    - setup_traverse_info
    - cache_entry_size
    - setup_standard_excludes
    - ce_in_traverse_path
    - cache_tree_update
    - mark_all_ce_unused
    - update_sparsity_for_prefix
    - xcalloc
    - display_error_msgs
    - repo_config_values
    - memset
    - cache_tree_fully_valid
    - is_sparse_index_allowed
    - verify_absent
    - init_split_index
    - dir_clear
    - clear_pattern_list
    - populate_from_existing_patterns
    - unpack_failed
    - index_state_init
    - display_warning_msgs
    - check_updates
    - trace_performance_enter
    - trace2_region_leave
    - prepare_repo_settings
    - unpack_index_entry
    - BUG
    linkageType: ''
    returnType: int
    signature: int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
      *o)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: index_state_init
      Src: /src/git/unpack-trees.c:2139,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:2143,1
    - Dst: BUG
      Src: /src/git/unpack-trees.c:2145,1
    - Dst: trace_performance_enter
      Src: /src/git/unpack-trees.c:2147,1
    - Dst: xcalloc
      Src: /src/git/unpack-trees.c:2152,1
    - Dst: populate_from_existing_patterns
      Src: /src/git/unpack-trees.c:2153,1
    - Dst: expand_index
      Src: /src/git/unpack-trees.c:2158,1
    - Dst: mark_all_ce_unused
      Src: /src/git/unpack-trees.c:2161,1
    - Dst: mark_new_skip_worktree
      Src: /src/git/unpack-trees.c:2162,1
    - Dst: ce_stage
      Src: /src/git/unpack-trees.c:2171,1
    - Dst: warn_conflicted_path
      Src: /src/git/unpack-trees.c:2173,1
    - Dst: apply_sparse_checkout
      Src: /src/git/unpack-trees.c:2178,1
    - Dst: check_updates
      Src: /src/git/unpack-trees.c:2182,1
    - Dst: display_warning_msgs
      Src: /src/git/unpack-trees.c:2185,1
    - Dst: clear_pattern_list
      Src: /src/git/unpack-trees.c:2188,1
    - Dst: free
      Src: /src/git/unpack-trees.c:2189,1
    - Dst: trace_performance_leave
      Src: /src/git/unpack-trees.c:2192,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - o
    - pl
    argTypes:
    - struct unpack_trees_options*
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2129
    functionDepth: 13
    functionLinenumber: 2129
    functionLinenumberEnd: 2194
    functionName: update_sparsity
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - display_warning_msgs
    - apply_sparse_checkout
    - trace_performance_leave
    - check_updates
    - expand_index
    - mark_new_skip_worktree
    - mark_all_ce_unused
    - xcalloc
    - free
    - clear_pattern_list
    - populate_from_existing_patterns
    - index_state_init
    - BUG
    - ce_stage
    - trace_performance_enter
    - warn_conflicted_path
    linkageType: ''
    returnType: enum update_sparsity_result
    signature: "enum update_sparsity_result update_sparsity(struct unpack_trees_options
      *o,\n\t\t\t\t\t    struct pattern_list *pl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_rejected_path
      Src: /src/git/unpack-trees.c:2201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2198
    functionDepth: 6
    functionLinenumber: 2198
    functionLinenumberEnd: 2202
    functionName: reject_merge
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - add_rejected_path
    linkageType: ''
    returnType: int
    signature: "int reject_merge(const struct cache_entry *ce,\n\t\t\tstruct unpack_trees_options
      *o)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/unpack-trees.c:2213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct cache_entry*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2214
    functionName: same
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 7
    functionsReached:
    - oideq
    linkageType: ''
    returnType: int
    signature: int same(const struct cache_entry *a, const struct cache_entry *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ce_skip_worktree
      Src: /src/git/unpack-trees.c:2235,1
    - Dst: ce_uptodate
      Src: /src/git/unpack-trees.c:2237,1
    - Dst: lstat
      Src: /src/git/unpack-trees.c:2240,1
    - Dst: ie_match_stat
      Src: /src/git/unpack-trees.c:2242,1
    - Dst: submodule_from_ce
      Src: /src/git/unpack-trees.c:2244,1
    - Dst: check_submodule_move_head
      Src: /src/git/unpack-trees.c:2245,1
    - Dst: oid_to_hex
      Src: /src/git/unpack-trees.c:2246,1
    - Dst: add_rejected_path
      Src: /src/git/unpack-trees.c:2248,1
    - Dst: S_ISGITLINK
      Src: /src/git/unpack-trees.c:2259,1
    - Dst: add_rejected_path
      Src: /src/git/unpack-trees.c:2266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - ce
    - o
    - error_type
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    - enum unpack_trees_error_types
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2221
    functionDepth: 9
    functionLinenumber: 2221
    functionLinenumberEnd: 2267
    functionName: verify_uptodate_1
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - ce_uptodate
    - ie_match_stat
    - S_ISGITLINK
    - ce_skip_worktree
    - add_rejected_path
    - submodule_from_ce
    - check_submodule_move_head
    - lstat
    linkageType: ''
    returnType: int
    signature: "int verify_uptodate_1(const struct cache_entry *ce,\n\t\t\t     struct
      unpack_trees_options *o,\n\t\t\t     enum unpack_trees_error_types error_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_uptodate_1
      Src: /src/git/unpack-trees.c:2276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2269
    functionDepth: 10
    functionLinenumber: 2269
    functionLinenumberEnd: 2277
    functionName: verify_uptodate
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - verify_uptodate_1
    linkageType: ''
    returnType: int
    signature: "int verify_uptodate(const struct cache_entry *ce,\n\t\t    struct
      unpack_trees_options *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_uptodate_1
      Src: /src/git/unpack-trees.c:2282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2279
    functionDepth: 10
    functionLinenumber: 2279
    functionLinenumberEnd: 2283
    functionName: verify_uptodate_sparse
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 1
    functionsReached:
    - verify_uptodate_1
    linkageType: ''
    returnType: int
    signature: "int verify_uptodate_sparse(const struct cache_entry *ce,\n\t\t\t\t
      \ struct unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree_invalidate_path
      Src: /src/git/unpack-trees.c:2301,1
    - Dst: untracked_cache_invalidate_path
      Src: /src/git/unpack-trees.c:2302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2296
    functionDepth: 5
    functionLinenumber: 2296
    functionLinenumberEnd: 2303
    functionName: invalidate_ce_path
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - untracked_cache_invalidate_path
    - cache_tree_invalidate_path
    linkageType: ''
    returnType: void
    signature: "void invalidate_ce_path(const struct cache_entry *ce,\n\t\t\t       struct
      unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_ce
      Src: /src/git/unpack-trees.c:2313,1
    - Dst: check_submodule_move_head
      Src: /src/git/unpack-trees.c:2316,1
    - Dst: oid_to_hex
      Src: /src/git/unpack-trees.c:2317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - old_sha1
    - ce
    - o
    argTypes:
    - char*
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2309
    functionDepth: 7
    functionLinenumber: 2309
    functionLinenumberEnd: 2318
    functionName: verify_clean_submodule
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - submodule_from_ce
    - check_submodule_move_head
    linkageType: ''
    returnType: int
    signature: "int verify_clean_submodule(const char *old_sha1,\n\t\t\t\t  const
      struct cache_entry *ce,\n\t\t\t\t  struct unpack_trees_options *o)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/unpack-trees.c:2333,1
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/unpack-trees.c:2335,1
    - Dst: oideq
      Src: /src/git/unpack-trees.c:2341,1
    - Dst: verify_clean_submodule
      Src: /src/git/unpack-trees.c:2343,1
    - Dst: oid_to_hex
      Src: /src/git/unpack-trees.c:2343,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:2351,1
    - Dst: locate_in_src_index
      Src: /src/git/unpack-trees.c:2352,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:2356,1
    - Dst: strncmp
      Src: /src/git/unpack-trees.c:2358,1
    - Dst: ce_stage
      Src: /src/git/unpack-trees.c:2365,1
    - Dst: verify_uptodate
      Src: /src/git/unpack-trees.c:2366,1
    - Dst: add_entry
      Src: /src/git/unpack-trees.c:2368,1
    - Dst: invalidate_ce_path
      Src: /src/git/unpack-trees.c:2369,1
    - Dst: mark_ce_used
      Src: /src/git/unpack-trees.c:2370,1
    - Dst: xstrfmt
      Src: /src/git/unpack-trees.c:2376,1
    - Dst: memset
      Src: /src/git/unpack-trees.c:2378,1
    - Dst: setup_standard_excludes
      Src: /src/git/unpack-trees.c:2380,1
    - Dst: read_directory
      Src: /src/git/unpack-trees.c:2381,1
    - Dst: dir_clear
      Src: /src/git/unpack-trees.c:2382,1
    - Dst: free
      Src: /src/git/unpack-trees.c:2383,1
    - Dst: add_rejected_path
      Src: /src/git/unpack-trees.c:2385,1
    - Dst: strcmp
      Src: /src/git/unpack-trees.c:2389,1
    - Dst: add_rejected_path
      Src: /src/git/unpack-trees.c:2390,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2320
    functionDepth: 11
    functionLinenumber: 2320
    functionLinenumberEnd: 2393
    functionName: verify_clean_subdirectory
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - add_rejected_path
    - free
    - strcmp
    - add_entry
    - invalidate_ce_path
    - read_directory
    - setup_standard_excludes
    - repo_resolve_gitlink_ref
    - mark_ce_used
    - strncmp
    - memset
    - oid_to_hex
    - S_ISGITLINK
    - locate_in_src_index
    - verify_uptodate
    - dir_clear
    - ce_stage
    - ce_namelen
    - xstrfmt
    - verify_clean_submodule
    - oideq
    linkageType: ''
    returnType: int
    signature: "int verify_clean_subdirectory(const struct cache_entry *ce,\n\t\t\t\t
      \    struct unpack_trees_options *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_file_exists
      Src: /src/git/unpack-trees.c:2407,1
    - Dst: ie_match_stat
      Src: /src/git/unpack-trees.c:2408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - o
    - name
    - len
    - st
    argTypes:
    - struct unpack_trees_options*
    - char*
    - int
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2403
    functionDepth: 9
    functionLinenumber: 2403
    functionLinenumberEnd: 2409
    functionName: icase_exists
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - index_file_exists
    - ie_match_stat
    linkageType: ''
    returnType: int
    signature: int icase_exists(struct unpack_trees_options *o, const char *name,
      int len, struct stat *st)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: icase_exists
      Src: /src/git/unpack-trees.c:2431,1
    - Dst: is_excluded
      Src: /src/git/unpack-trees.c:2435,1
    - Dst: S_ISDIR
      Src: /src/git/unpack-trees.c:2441,1
    - Dst: verify_clean_subdirectory
      Src: /src/git/unpack-trees.c:2449,1
    - Dst: index_file_exists
      Src: /src/git/unpack-trees.c:2463,1
    - Dst: add_rejected_path
      Src: /src/git/unpack-trees.c:2469,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 8
    argNames:
    - name
    - len
    - dtype
    - ce
    - st
    - error_type
    - absent_type
    - o
    argTypes:
    - char*
    - int
    - int
    - struct cache_entry*
    - struct stat*
    - enum unpack_trees_error_types
    - enum absent_checking_type
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2416
    functionDepth: 12
    functionLinenumber: 2416
    functionLinenumberEnd: 2470
    functionName: check_ok_to_remove
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - is_excluded
    - add_rejected_path
    - verify_clean_subdirectory
    - index_file_exists
    - icase_exists
    linkageType: ''
    returnType: int
    signature: "int check_ok_to_remove(const char *name, int len, int dtype,\n\t\t\t
      \     const struct cache_entry *ce, struct stat *st,\n\t\t\t      enum unpack_trees_error_types
      error_type,\n\t\t\t      enum absent_checking_type absent_type,\n\t\t\t      struct
      unpack_trees_options *o)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/unpack-trees.c:2490,1
    - Dst: add_rejected_path
      Src: /src/git/unpack-trees.c:2491,1
    - Dst: check_leading_path
      Src: /src/git/unpack-trees.c:2497,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:2497,1
    - Dst: xmemdupz
      Src: /src/git/unpack-trees.c:2504,1
    - Dst: lstat
      Src: /src/git/unpack-trees.c:2505,1
    - Dst: error_errno
      Src: /src/git/unpack-trees.c:2506,1
    - Dst: submodule_from_ce
      Src: /src/git/unpack-trees.c:2508,1
    - Dst: check_submodule_move_head
      Src: /src/git/unpack-trees.c:2509,1
    - Dst: oid_to_hex
      Src: /src/git/unpack-trees.c:2510,1
    - Dst: check_ok_to_remove
      Src: /src/git/unpack-trees.c:2513,1
    - Dst: free
      Src: /src/git/unpack-trees.c:2517,1
    - Dst: lstat
      Src: /src/git/unpack-trees.c:2519,1
    - Dst: error_errno
      Src: /src/git/unpack-trees.c:2521,1
    - Dst: submodule_from_ce
      Src: /src/git/unpack-trees.c:2524,1
    - Dst: check_submodule_move_head
      Src: /src/git/unpack-trees.c:2525,1
    - Dst: oid_to_hex
      Src: /src/git/unpack-trees.c:2525,1
    - Dst: check_ok_to_remove
      Src: /src/git/unpack-trees.c:2528,1
    - Dst: ce_namelen
      Src: /src/git/unpack-trees.c:2528,1
    - Dst: ce_to_dtype
      Src: /src/git/unpack-trees.c:2529,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - ce
    - error_type
    - absent_type
    - o
    argTypes:
    - struct cache_entry*
    - enum unpack_trees_error_types
    - enum absent_checking_type
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2476
    functionDepth: 13
    functionLinenumber: 2476
    functionLinenumberEnd: 2532
    functionName: verify_absent_1
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - error_errno
    - oid_to_hex
    - ce_namelen
    - ce_to_dtype
    - free
    - check_submodule_move_head
    - add_rejected_path
    - check_leading_path
    - strcmp
    - submodule_from_ce
    - check_ok_to_remove
    - lstat
    linkageType: ''
    returnType: int
    signature: "int verify_absent_1(const struct cache_entry *ce,\n\t\t\t   enum unpack_trees_error_types
      error_type,\n\t\t\t   enum absent_checking_type absent_type,\n\t\t\t   struct
      unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_absent_1
      Src: /src/git/unpack-trees.c:2540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ce
    - error_type
    - o
    argTypes:
    - struct cache_entry*
    - enum unpack_trees_error_types
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2534
    functionDepth: 14
    functionLinenumber: 2534
    functionLinenumberEnd: 2541
    functionName: verify_absent
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 1
    functionsReached:
    - verify_absent_1
    linkageType: ''
    returnType: int
    signature: "int verify_absent(const struct cache_entry *ce,\n\t\t\t enum unpack_trees_error_types
      error_type,\n\t\t\t struct unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_absent_1
      Src: /src/git/unpack-trees.c:2549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ce
    - error_type
    - o
    argTypes:
    - struct cache_entry*
    - enum unpack_trees_error_types
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2550
      start: 2543
    functionDepth: 14
    functionLinenumber: 2543
    functionLinenumberEnd: 2550
    functionName: verify_absent_if_directory
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - verify_absent_1
    linkageType: ''
    returnType: int
    signature: "int verify_absent_if_directory(const struct cache_entry *ce,\n\t\t\t\t
      \     enum unpack_trees_error_types error_type,\n\t\t\t\t      struct unpack_trees_options
      *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_absent_1
      Src: /src/git/unpack-trees.c:2556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ce
    - error_type
    - o
    argTypes:
    - struct cache_entry*
    - enum unpack_trees_error_types
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2557
      start: 2552
    functionDepth: 14
    functionLinenumber: 2552
    functionLinenumberEnd: 2557
    functionName: verify_absent_sparse
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 1
    functionsReached:
    - verify_absent_1
    linkageType: ''
    returnType: int
    signature: "int verify_absent_sparse(const struct cache_entry *ce,\n\t\t\t\tenum
      unpack_trees_error_types error_type,\n\t\t\t\tstruct unpack_trees_options *o)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dup_cache_entry
      Src: /src/git/unpack-trees.c:2564,1
    - Dst: verify_absent
      Src: /src/git/unpack-trees.c:2582,1
    - Dst: discard_cache_entry
      Src: /src/git/unpack-trees.c:2584,1
    - Dst: invalidate_ce_path
      Src: /src/git/unpack-trees.c:2587,1
    - Dst: submodule_from_ce
      Src: /src/git/unpack-trees.c:2589,1
    - Dst: file_exists
      Src: /src/git/unpack-trees.c:2589,1
    - Dst: check_submodule_move_head
      Src: /src/git/unpack-trees.c:2590,1
    - Dst: oid_to_hex
      Src: /src/git/unpack-trees.c:2591,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2605,1
    - Dst: copy_cache_entry
      Src: /src/git/unpack-trees.c:2606,1
    - Dst: verify_uptodate
      Src: /src/git/unpack-trees.c:2609,1
    - Dst: discard_cache_entry
      Src: /src/git/unpack-trees.c:2610,1
    - Dst: invalidate_ce_path
      Src: /src/git/unpack-trees.c:2615,1
    - Dst: submodule_from_ce
      Src: /src/git/unpack-trees.c:2618,1
    - Dst: file_exists
      Src: /src/git/unpack-trees.c:2618,1
    - Dst: check_submodule_move_head
      Src: /src/git/unpack-trees.c:2619,1
    - Dst: oid_to_hex
      Src: /src/git/unpack-trees.c:2619,1
    - Dst: oid_to_hex
      Src: /src/git/unpack-trees.c:2620,1
    - Dst: verify_absent_if_directory
      Src: /src/git/unpack-trees.c:2630,1
    - Dst: discard_cache_entry
      Src: /src/git/unpack-trees.c:2632,1
    - Dst: invalidate_ce_path
      Src: /src/git/unpack-trees.c:2636,1
    - Dst: do_add_entry
      Src: /src/git/unpack-trees.c:2639,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - ce
    - old
    - o
    argTypes:
    - struct cache_entry*
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2559
    functionDepth: 15
    functionLinenumber: 2559
    functionLinenumberEnd: 2642
    functionName: merged_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 1
    functionsReached:
    - invalidate_ce_path
    - oid_to_hex
    - same
    - copy_cache_entry
    - verify_absent
    - discard_cache_entry
    - verify_absent_if_directory
    - dup_cache_entry
    - verify_uptodate
    - submodule_from_ce
    - check_submodule_move_head
    - file_exists
    - do_add_entry
    linkageType: ''
    returnType: int
    signature: "int merged_entry(const struct cache_entry *ce,\n\t\t\tconst struct
      cache_entry *old,\n\t\t\tstruct unpack_trees_options *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_traverse_info
      Src: /src/git/unpack-trees.c:2656,1
    - Dst: fill_tree_descriptor
      Src: /src/git/unpack-trees.c:2664,1
    - Dst: is_null_oid
      Src: /src/git/unpack-trees.c:2665,1
    - Dst: traverse_trees
      Src: /src/git/unpack-trees.c:2667,1
    - Dst: free
      Src: /src/git/unpack-trees.c:2670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - src
    - n
    - o
    argTypes:
    - struct cache_entry**
    - int
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2644
    functionDepth: 7
    functionLinenumber: 2644
    functionLinenumberEnd: 2673
    functionName: merged_sparse_dir
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - traverse_trees
    - setup_traverse_info
    - is_null_oid
    - free
    - fill_tree_descriptor
    linkageType: ''
    returnType: int
    signature: "int merged_sparse_dir(const struct cache_entry * const *src, int n,\n\t\t\t
      \    struct unpack_trees_options *o)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: verify_absent
      Src: /src/git/unpack-trees.c:2681,1
    - Dst: verify_absent_if_directory
      Src: /src/git/unpack-trees.c:2684,1
    - Dst: verify_uptodate
      Src: /src/git/unpack-trees.c:2688,1
    - Dst: add_entry
      Src: /src/git/unpack-trees.c:2690,1
    - Dst: invalidate_ce_path
      Src: /src/git/unpack-trees.c:2691,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ce
    - old
    - o
    argTypes:
    - struct cache_entry*
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2675
    functionDepth: 15
    functionLinenumber: 2675
    functionLinenumberEnd: 2693
    functionName: deleted_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - invalidate_ce_path
    - verify_absent
    - verify_absent_if_directory
    - verify_uptodate
    - add_entry
    linkageType: ''
    returnType: int
    signature: "int deleted_entry(const struct cache_entry *ce,\n\t\t\t const struct
      cache_entry *old,\n\t\t\t struct unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_entry
      Src: /src/git/unpack-trees.c:2698,1
    - Dst: ce_stage
      Src: /src/git/unpack-trees.c:2699,1
    - Dst: invalidate_ce_path
      Src: /src/git/unpack-trees.c:2700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ce
    - o
    argTypes:
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2695
    functionDepth: 6
    functionLinenumber: 2695
    functionLinenumberEnd: 2702
    functionName: keep_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 1
    functionsReached:
    - invalidate_ce_path
    - add_entry
    - ce_stage
    linkageType: ''
    returnType: int
    signature: "int keep_entry(const struct cache_entry *ce,\n\t\t      struct unpack_trees_options
      *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/unpack-trees.c:2709,1
    - Dst: fprintf
      Src: /src/git/unpack-trees.c:2711,1
    - Dst: oid_to_hex
      Src: /src/git/unpack-trees.c:2714,1
    - Dst: ce_stage
      Src: /src/git/unpack-trees.c:2715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - o
    - label
    - ce
    argTypes:
    - FILE*
    - char*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2705
    functionDepth: 3
    functionLinenumber: 2705
    functionLinenumberEnd: 2717
    functionName: show_stage_entry
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - ce_stage
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void show_stage_entry(FILE *o,\n\t\t\t     const char *label, const
      struct cache_entry *ce)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: same
      Src: /src/git/unpack-trees.c:2761,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2763,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2766,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2779,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2779,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:2780,1
    - Dst: merged_sparse_dir
      Src: /src/git/unpack-trees.c:2781,1
    - Dst: reject_merge
      Src: /src/git/unpack-trees.c:2783,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:2785,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2791,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:2792,1
    - Dst: merged_sparse_dir
      Src: /src/git/unpack-trees.c:2793,1
    - Dst: reject_merge
      Src: /src/git/unpack-trees.c:2795,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2800,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:2801,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:2804,1
    - Dst: deleted_entry
      Src: /src/git/unpack-trees.c:2843,1
    - Dst: verify_absent
      Src: /src/git/unpack-trees.c:2845,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2853,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:2854,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:2865,1
    - Dst: merged_sparse_dir
      Src: /src/git/unpack-trees.c:2866,1
    - Dst: verify_uptodate
      Src: /src/git/unpack-trees.c:2873,1
    - Dst: keep_entry
      Src: /src/git/unpack-trees.c:2884,1
    - Dst: fprintf
      Src: /src/git/unpack-trees.c:2892,1
    - Dst: show_stage_entry
      Src: /src/git/unpack-trees.c:2893,1
    - Dst: show_stage_entry
      Src: /src/git/unpack-trees.c:2894,1
    - Dst: keep_entry
      Src: /src/git/unpack-trees.c:2897,1
    - Dst: keep_entry
      Src: /src/git/unpack-trees.c:2898,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 100
    argCount: 2
    argNames:
    - stages
    - o
    argTypes:
    - struct cache_entry**
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2720
    functionDepth: 16
    functionLinenumber: 2720
    functionLinenumberEnd: 2900
    functionName: threeway_merge
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - same
    - S_ISSPARSEDIR
    - deleted_entry
    - verify_absent
    - show_stage_entry
    - merged_sparse_dir
    - merged_entry
    - verify_uptodate
    - keep_entry
    - fprintf
    - reject_merge
    linkageType: ''
    returnType: int
    signature: "int threeway_merge(const struct cache_entry * const *stages,\n\t\t
      \  struct unpack_trees_options *o)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/unpack-trees.c:2919,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2929,1
    - Dst: deleted_entry
      Src: /src/git/unpack-trees.c:2931,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:2933,1
    - Dst: reject_merge
      Src: /src/git/unpack-trees.c:2935,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2938,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2940,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2942,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2943,1
    - Dst: keep_entry
      Src: /src/git/unpack-trees.c:2944,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2945,1
    - Dst: deleted_entry
      Src: /src/git/unpack-trees.c:2947,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2949,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2949,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:2951,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:2953,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:2953,1
    - Dst: ce_stage
      Src: /src/git/unpack-trees.c:2954,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:2962,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/unpack-trees.c:2963,1
    - Dst: merged_sparse_dir
      Src: /src/git/unpack-trees.c:2970,1
    - Dst: reject_merge
      Src: /src/git/unpack-trees.c:2972,1
    - Dst: same
      Src: /src/git/unpack-trees.c:2979,1
    - Dst: reject_merge
      Src: /src/git/unpack-trees.c:2981,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:2983,1
    - Dst: deleted_entry
      Src: /src/git/unpack-trees.c:2985,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 42
    argCount: 2
    argNames:
    - src
    - o
    argTypes:
    - struct cache_entry**
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2911
    functionDepth: 16
    functionLinenumber: 2911
    functionLinenumberEnd: 2986
    functionName: twoway_merge
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - error
    - same
    - S_ISSPARSEDIR
    - deleted_entry
    - merged_sparse_dir
    - merged_entry
    - keep_entry
    - ce_stage
    - reject_merge
    linkageType: ''
    returnType: int
    signature: "int twoway_merge(const struct cache_entry * const *src,\n\t\t struct
      unpack_trees_options *o)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/unpack-trees.c:3001,1
    - Dst: error
      Src: /src/git/unpack-trees.c:3005,1
    - Dst: ERRORMSG
      Src: /src/git/unpack-trees.c:3005,1
    - Dst: super_prefixed
      Src: /src/git/unpack-trees.c:3006,1
    - Dst: super_prefixed
      Src: /src/git/unpack-trees.c:3007,1
    - Dst: keep_entry
      Src: /src/git/unpack-trees.c:3009,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:3011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - src
    - o
    argTypes:
    - struct cache_entry**
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3012
      start: 2994
    functionDepth: 16
    functionLinenumber: 2994
    functionLinenumberEnd: 3012
    functionName: bind_merge
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - error
    - super_prefixed
    - ERRORMSG
    - merged_entry
    - keep_entry
    linkageType: ''
    returnType: int
    signature: "int bind_merge(const struct cache_entry * const *src,\n\t       struct
      unpack_trees_options *o)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/unpack-trees.c:3027,1
    - Dst: deleted_entry
      Src: /src/git/unpack-trees.c:3031,1
    - Dst: same
      Src: /src/git/unpack-trees.c:3033,1
    - Dst: ce_uptodate
      Src: /src/git/unpack-trees.c:3035,1
    - Dst: ce_skip_worktree
      Src: /src/git/unpack-trees.c:3035,1
    - Dst: lstat
      Src: /src/git/unpack-trees.c:3038,1
    - Dst: ie_match_stat
      Src: /src/git/unpack-trees.c:3039,1
    - Dst: S_ISGITLINK
      Src: /src/git/unpack-trees.c:3042,1
    - Dst: should_update_submodules
      Src: /src/git/unpack-trees.c:3043,1
    - Dst: verify_uptodate
      Src: /src/git/unpack-trees.c:3043,1
    - Dst: add_entry
      Src: /src/git/unpack-trees.c:3045,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:3048,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 16
    argCount: 2
    argNames:
    - src
    - o
    argTypes:
    - struct cache_entry**
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3020
    functionDepth: 16
    functionLinenumber: 3020
    functionLinenumberEnd: 3049
    functionName: oneway_merge
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - error
    - ce_uptodate
    - ie_match_stat
    - same
    - S_ISGITLINK
    - deleted_entry
    - ce_skip_worktree
    - verify_uptodate
    - merged_entry
    - should_update_submodules
    - add_entry
    - lstat
    linkageType: ''
    returnType: int
    signature: "int oneway_merge(const struct cache_entry * const *src,\n\t\t struct
      unpack_trees_options *o)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/unpack-trees.c:3064,1
    - Dst: error
      Src: /src/git/unpack-trees.c:3067,1
    - Dst: _
      Src: /src/git/unpack-trees.c:3067,1
    - Dst: super_prefixed
      Src: /src/git/unpack-trees.c:3068,1
    - Dst: merged_entry
      Src: /src/git/unpack-trees.c:3070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - src
    - o
    argTypes:
    - struct cache_entry**
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 3057
    functionDepth: 16
    functionLinenumber: 3057
    functionLinenumberEnd: 3071
    functionName: stash_worktree_untracked_merge
    functionSourceFile: /src/git/unpack-trees.c
    functionUses: 0
    functionsReached:
    - error
    - super_prefixed
    - merged_entry
    - _
    - BUG
    linkageType: ''
    returnType: int
    signature: "int stash_worktree_untracked_merge(const struct cache_entry * const
      *src,\n\t\t\t\t   struct unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color
      Src: /src/git/log-tree.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - decorate_use_color
    - ix
    argTypes:
    - enum git_colorbool
    - enum decoration_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: decorate_get_color
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - want_color
    linkageType: ''
    returnType: char
    signature: char *decorate_get_color(enum git_colorbool decorate_use_color, enum
      decoration_type ix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOOKUP_CONFIG
      Src: /src/git/log-tree.c:71,1
    - Dst: config_error_nonbool
      Src: /src/git/log-tree.c:75,1
    - Dst: color_parse
      Src: /src/git/log-tree.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - var
    - slot_name
    - value
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 5
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: parse_decorate_color_config
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - color_parse
    - config_error_nonbool
    - LOOKUP_CONFIG
    linkageType: ''
    returnType: int
    signature: int parse_decorate_color_config(const char *var, const char *slot_name,
      const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - ix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: decorate_get_color_opt
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decorate_get_color_opt(o, ix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/log-tree.c:89,1
    - Dst: add_decoration
      Src: /src/git/log-tree.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - type
    - name
    - obj
    argTypes:
    - enum decoration_type
    - char*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: add_name_decoration
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - add_decoration
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: void
    signature: void add_name_decoration(enum decoration_type type, const char *name,
      struct object *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_ref_decorations
      Src: /src/git/log-tree.c:96,1
    - Dst: lookup_decoration
      Src: /src/git/log-tree.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: get_name_decoration
    functionSourceFile: /src/git/log-tree.c
    functionUses: 4
    functionsReached:
    - load_ref_decorations
    - lookup_decoration
    linkageType: ''
    returnType: struct name_decoration
    signature: struct name_decoration *get_name_decoration(const struct object *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wildmatch
      Src: /src/git/log-tree.c:105,1
    - Dst: skip_prefix
      Src: /src/git/log-tree.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - refname
    - item
    argTypes:
    - char*
    - struct string_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: match_ref_pattern
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - wildmatch
    linkageType: ''
    returnType: int
    signature: "int match_ref_pattern(const char *refname,\n\t\t\t     const struct
      string_list_item *item)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: match_ref_pattern
      Src: /src/git/log-tree.c:127,1
    - Dst: match_ref_pattern
      Src: /src/git/log-tree.c:134,1
    - Dst: match_ref_pattern
      Src: /src/git/log-tree.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - refname
    - filter
    argTypes:
    - char*
    - struct decoration_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 148
    functionName: ref_filter_match
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - match_ref_pattern
    linkageType: ''
    returnType: int
    signature: "int ref_filter_match(const char *refname,\n\t\t\t    const struct
      decoration_filter *filter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_ref_pattern
      Src: /src/git/log-tree.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/log-tree.c
    functionUses: 32
    functionsReached:
    - match_ref_pattern
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, exclude_patterns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_ref_pattern
      Src: /src/git/log-tree.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/log-tree.c
    functionUses: 32
    functionsReached:
    - match_ref_pattern
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, include_patterns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_ref_pattern
      Src: /src/git/log-tree.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/log-tree.c
    functionUses: 32
    functionsReached:
    - match_ref_pattern
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, exclude_patterns_config)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ref_filter_match
      Src: /src/git/log-tree.c:159,1
    - Dst: starts_with
      Src: /src/git/log-tree.c:162,1
    - Dst: replace_refs_enabled
      Src: /src/git/log-tree.c:164,1
    - Dst: get_oid_hex
      Src: /src/git/log-tree.c:166,1
    - Dst: strlen
      Src: /src/git/log-tree.c:166,1
    - Dst: warning
      Src: /src/git/log-tree.c:168,1
    - Dst: parse_object
      Src: /src/git/log-tree.c:171,1
    - Dst: add_name_decoration
      Src: /src/git/log-tree.c:173,1
    - Dst: odb_read_object_info
      Src: /src/git/log-tree.c:177,1
    - Dst: lookup_object_by_type
      Src: /src/git/log-tree.c:180,1
    - Dst: ARRAY_SIZE
      Src: /src/git/log-tree.c:182,1
    - Dst: strcmp
      Src: /src/git/log-tree.c:188,1
    - Dst: starts_with
      Src: /src/git/log-tree.c:192,1
    - Dst: add_name_decoration
      Src: /src/git/log-tree.c:198,1
    - Dst: parse_object
      Src: /src/git/log-tree.c:201,1
    - Dst: add_name_decoration
      Src: /src/git/log-tree.c:205,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 150
    functionDepth: 12
    functionLinenumber: 150
    functionLinenumberEnd: 208
    functionName: add_ref_decoration
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - replace_refs_enabled
    - get_oid_hex
    - parse_object
    - starts_with
    - odb_read_object_info
    - ref_filter_match
    - strlen
    - add_name_decoration
    - strcmp
    - warning
    - lookup_object_by_type
    linkageType: ''
    returnType: int
    signature: int add_ref_decoration(const struct reference *ref, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit
      Src: /src/git/log-tree.c:213,1
    - Dst: add_name_decoration
      Src: /src/git/log-tree.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - graft
    - cb_data
    argTypes:
    - struct commit_graft*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: add_graft_decoration
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - add_name_decoration
    - lookup_commit
    linkageType: ''
    returnType: int
    signature: "int add_graft_decoration(const struct commit_graft *graft,\n\t\t\t\tvoid
      *cb_data UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/log-tree.c:225,1
    - Dst: normalize_glob_ref
      Src: /src/git/log-tree.c:226,1
    - Dst: for_each_string_list_item
      Src: /src/git/log-tree.c:228,1
    - Dst: normalize_glob_ref
      Src: /src/git/log-tree.c:229,1
    - Dst: for_each_string_list_item
      Src: /src/git/log-tree.c:231,1
    - Dst: normalize_glob_ref
      Src: /src/git/log-tree.c:232,1
    - Dst: refs_for_each_ref
      Src: /src/git/log-tree.c:242,1
    - Dst: get_main_ref_store
      Src: /src/git/log-tree.c:242,1
    - Dst: refs_head_ref
      Src: /src/git/log-tree.c:244,1
    - Dst: get_main_ref_store
      Src: /src/git/log-tree.c:244,1
    - Dst: for_each_commit_graft
      Src: /src/git/log-tree.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - filter
    - flags
    argTypes:
    - struct decoration_filter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 248
    functionName: load_ref_decorations
    functionSourceFile: /src/git/log-tree.c
    functionUses: 1
    functionsReached:
    - for_each_string_list_item
    - refs_head_ref
    - normalize_glob_ref
    - refs_for_each_ref
    - for_each_commit_graft
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void load_ref_decorations(struct decoration_filter *filter, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/log-tree.c:262,1
    - Dst: load_ref_decorations
      Src: /src/git/log-tree.c:263,1
    - Dst: string_list_clear
      Src: /src/git/log-tree.c:265,1
    - Dst: string_list_clear
      Src: /src/git/log-tree.c:266,1
    - Dst: string_list_clear
      Src: /src/git/log-tree.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 5
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: load_branch_decorations
    functionSourceFile: /src/git/log-tree.c
    functionUses: 2
    functionsReached:
    - load_ref_decorations
    - string_list_clear
    - string_list_append
    linkageType: ''
    returnType: void
    signature: void load_branch_decorations(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/log-tree.c:276,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/log-tree.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - commit
    - abbrev
    - file
    argTypes:
    - struct commit*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 279
    functionName: show_parents
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - repo_find_unique_abbrev
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_parents(struct commit *commit, int abbrev, FILE *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_decoration
      Src: /src/git/log-tree.c:283,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:285,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/log-tree.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - commit
    - abbrev
    argTypes:
    - struct rev_info*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: show_children
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - repo_find_unique_abbrev
    - fprintf
    - lookup_decoration
    linkageType: ''
    returnType: void
    signature: void show_children(struct rev_info *opt, struct commit *commit, int
      abbrev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/log-tree.c:310,1
    - Dst: get_main_ref_store
      Src: /src/git/log-tree.c:310,1
    - Dst: starts_with
      Src: /src/git/log-tree.c:315,1
    - Dst: strcmp
      Src: /src/git/log-tree.c:321,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - decoration
    argTypes:
    - struct name_decoration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 294
    functionDepth: 5
    functionLinenumber: 294
    functionLinenumberEnd: 326
    functionName: current_pointed_by_HEAD
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - strcmp
    - starts_with
    - get_main_ref_store
    linkageType: ''
    returnType: struct name_decoration
    signature: struct name_decoration *current_pointed_by_HEAD(const struct name_decoration
      *decoration)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:331,1
    - Dst: prettify_refname
      Src: /src/git/log-tree.c:331,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sb
    - decoration
    argTypes:
    - struct strbuf*
    - struct name_decoration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: show_name
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - prettify_refname
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void show_name(struct strbuf *sb, const struct name_decoration *decoration)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_name_decoration
      Src: /src/git/log-tree.c:355,1
    - Dst: diff_get_color
      Src: /src/git/log-tree.c:372,1
    - Dst: decorate_get_color
      Src: /src/git/log-tree.c:373,1
    - Dst: current_pointed_by_HEAD
      Src: /src/git/log-tree.c:375,1
    - Dst: decorate_get_color
      Src: /src/git/log-tree.c:384,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:387,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:388,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:389,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:393,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:394,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:395,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:398,1
    - Dst: show_name
      Src: /src/git/log-tree.c:399,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:400,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:404,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:405,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:406,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:407,1
    - Dst: decorate_get_color
      Src: /src/git/log-tree.c:407,1
    - Dst: show_name
      Src: /src/git/log-tree.c:408,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:409,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:417,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:418,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:419,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 4
    argNames:
    - sb
    - commit
    - use_color
    - opts
    argTypes:
    - struct strbuf*
    - struct commit*
    - enum git_colorbool
    - struct decoration_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 421
    functionName: format_decorations
    functionSourceFile: /src/git/log-tree.c
    functionUses: 1
    functionsReached:
    - decorate_get_color
    - get_name_decoration
    - strbuf_addstr
    - diff_get_color
    - current_pointed_by_HEAD
    - show_name
    linkageType: ''
    returnType: void
    signature: "void format_decorations(struct strbuf *sb,\n\t\t\tconst struct commit
      *commit,\n\t\t\tenum git_colorbool use_color,\n\t\t\tconst struct decoration_options
      *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: revision_sources_peek
      Src: /src/git/log-tree.c:428,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:431,1
    - Dst: format_decorations
      Src: /src/git/log-tree.c:435,1
    - Dst: fputs
      Src: /src/git/log-tree.c:436,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - opt
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 423
    functionDepth: 7
    functionLinenumber: 423
    functionLinenumberEnd: 438
    functionName: show_decorations
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fputs
    - revision_sources_peek
    - format_decorations
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_decorations(struct rev_info *opt, struct commit *commit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/log-tree.c:447,1
    - Dst: strbuf_addf
      Src: /src/git/log-tree.c:452,1
    - Dst: format_sanitized_subject
      Src: /src/git/log-tree.c:453,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:454,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:455,1
    - Dst: strbuf_addf
      Src: /src/git/log-tree.c:457,1
    - Dst: strbuf_setlen
      Src: /src/git/log-tree.c:460,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - filename
    - subject
    - info
    argTypes:
    - struct strbuf*
    - char*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 440
    functionDepth: 5
    functionLinenumber: 440
    functionLinenumberEnd: 462
    functionName: fmt_output_subject
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - strbuf_setlen
    - strlen
    - format_sanitized_subject
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void fmt_output_subject(struct strbuf *filename,\n\t\t\tconst char
      *subject,\n\t\t\tstruct rev_info *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_format_commit_message
      Src: /src/git/log-tree.c:471,1
    - Dst: fmt_output_subject
      Src: /src/git/log-tree.c:473,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - filename
    - commit
    - info
    argTypes:
    - struct strbuf*
    - struct commit*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 464
    functionDepth: 14
    functionLinenumber: 464
    functionLinenumberEnd: 475
    functionName: fmt_output_commit
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - strbuf_release
    - fmt_output_subject
    linkageType: ''
    returnType: void
    signature: "void fmt_output_commit(struct strbuf *filename,\n\t\t       struct
      commit *commit,\n\t\t       struct rev_info *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/log-tree.c:480,1
    - Dst: decimal_width
      Src: /src/git/log-tree.c:483,1
    - Dst: strbuf_addf
      Src: /src/git/log-tree.c:486,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - sb
    - opt
    argTypes:
    - struct strbuf*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 491
    functionName: fmt_output_email_subject
    functionSourceFile: /src/git/log-tree.c
    functionUses: 1
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    - decimal_width
    linkageType: ''
    returnType: void
    signature: void fmt_output_email_subject(struct strbuf *sb, struct rev_info *opt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/log-tree.c:499,1
    - Dst: null_oid
      Src: /src/git/log-tree.c:500,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:505,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:507,1
    - Dst: graph_show_oneline
      Src: /src/git/log-tree.c:508,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:510,1
    - Dst: graph_show_oneline
      Src: /src/git/log-tree.c:511,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:516,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:518,1
    - Dst: graph_show_oneline
      Src: /src/git/log-tree.c:520,1
    - Dst: strbuf_reset
      Src: /src/git/log-tree.c:527,1
    - Dst: strbuf_addf
      Src: /src/git/log-tree.c:529,1
    - Dst: strbuf_addf
      Src: /src/git/log-tree.c:544,1
    - Dst: fmt_output_commit
      Src: /src/git/log-tree.c:546,1
    - Dst: strbuf_addf
      Src: /src/git/log-tree.c:547,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:559,1
    - Dst: strbuf_detach
      Src: /src/git/log-tree.c:561,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - opt
    - commit
    - extra_headers_p
    - need_8bit_cte_p
    - maybe_multipart
    argTypes:
    - struct rev_info*
    - struct commit*
    - char**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 493
    functionDepth: 15
    functionLinenumber: 493
    functionLinenumberEnd: 562
    functionName: log_write_email_headers
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - strbuf_reset
    - fmt_output_commit
    - strbuf_addf
    - fprintf
    - strbuf_addstr
    - strbuf_detach
    - null_oid
    - graph_show_oneline
    linkageType: ''
    returnType: void
    signature: "void log_write_email_headers(struct rev_info *opt, struct commit *commit,\n\t\t\t
      \    char **extra_headers_p,\n\t\t\t     int *need_8bit_cte_p,\n\t\t\t     int
      maybe_multipart)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_get_color_opt
      Src: /src/git/log-tree.c:568,1
    - Dst: diff_get_color_opt
      Src: /src/git/log-tree.c:570,1
    - Dst: strchrnul
      Src: /src/git/log-tree.c:572,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:573,1
    - Dst: graph_show_oneline
      Src: /src/git/log-tree.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - status
    - bol
    argTypes:
    - struct rev_info*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 564
    functionDepth: 10
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: show_sig_lines
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - graph_show_oneline
    - strchrnul
    - diff_get_color_opt
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_sig_lines(struct rev_info *opt, int status, const char *bol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_signed_commit
      Src: /src/git/log-tree.c:587,1
    - Dst: strbuf_detach
      Src: /src/git/log-tree.c:591,1
    - Dst: check_signature
      Src: /src/git/log-tree.c:592,1
    - Dst: show_sig_lines
      Src: /src/git/log-tree.c:594,1
    - Dst: show_sig_lines
      Src: /src/git/log-tree.c:596,1
    - Dst: signature_check_clear
      Src: /src/git/log-tree.c:597,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:600,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - opt
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 580
    functionDepth: 11
    functionLinenumber: 580
    functionLinenumberEnd: 602
    functionName: show_signature
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - check_signature
    - show_sig_lines
    - parse_signed_commit
    - strbuf_detach
    - signature_check_clear
    linkageType: ''
    returnType: void
    signature: void show_signature(struct rev_info *opt, struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/log-tree.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - oid
    - commit
    argTypes:
    - struct object_id*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 615
    functionName: which_parent
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - oideq
    linkageType: ''
    returnType: int
    signature: int which_parent(const struct object_id *oid, const struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 622
    functionName: is_common_merge
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_common_merge(const struct commit *commit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hash_object_file
      Src: /src/git/log-tree.c:637,1
    - Dst: lookup_tag
      Src: /src/git/log-tree.c:639,1
    - Dst: strbuf_init
      Src: /src/git/log-tree.c:643,1
    - Dst: parse_tag_buffer
      Src: /src/git/log-tree.c:644,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:645,1
    - Dst: is_common_merge
      Src: /src/git/log-tree.c:646,1
    - Dst: oideq
      Src: /src/git/log-tree.c:647,1
    - Dst: strbuf_addf
      Src: /src/git/log-tree.c:649,1
    - Dst: which_parent
      Src: /src/git/log-tree.c:651,1
    - Dst: strbuf_addf
      Src: /src/git/log-tree.c:652,1
    - Dst: oid_to_hex
      Src: /src/git/log-tree.c:653,1
    - Dst: strbuf_addf
      Src: /src/git/log-tree.c:655,1
    - Dst: parse_signature
      Src: /src/git/log-tree.c:659,1
    - Dst: strbuf_detach
      Src: /src/git/log-tree.c:662,1
    - Dst: check_signature
      Src: /src/git/log-tree.c:663,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:665,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:667,1
    - Dst: signature_check_clear
      Src: /src/git/log-tree.c:668,1
    - Dst: show_sig_lines
      Src: /src/git/log-tree.c:672,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:673,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:674,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:675,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - commit
    - extra
    - data
    argTypes:
    - struct commit*
    - struct commit_extra_header*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 624
    functionDepth: 11
    functionLinenumber: 624
    functionLinenumberEnd: 677
    functionName: show_one_mergetag
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - parse_signature
    - is_common_merge
    - oid_to_hex
    - lookup_tag
    - hash_object_file
    - strbuf_release
    - which_parent
    - check_signature
    - show_sig_lines
    - strbuf_addf
    - parse_tag_buffer
    - strbuf_detach
    - strbuf_addstr
    - signature_check_clear
    - strbuf_init
    - oideq
    linkageType: ''
    returnType: int
    signature: "int show_one_mergetag(struct commit *commit,\n\t\t\t     struct commit_extra_header
      *extra,\n\t\t\t     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_mergetag
      Src: /src/git/log-tree.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opt
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: show_mergetag
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - for_each_mergetag
    linkageType: ''
    returnType: int
    signature: int show_mergetag(struct rev_info *opt, struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:688,1
    - Dst: fputs
      Src: /src/git/log-tree.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - opt
    - sb
    argTypes:
    - struct rev_info*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 684
    functionDepth: 4
    functionLinenumber: 684
    functionLinenumberEnd: 692
    functionName: next_commentary_block
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - fputs
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void next_commentary_block(struct rev_info *opt, struct strbuf *sb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmit_fmt_is_mail
      Src: /src/git/log-tree.c:696,1
    - Dst: memcpy
      Src: /src/git/log-tree.c:702,1
    - Dst: diff_queue_init
      Src: /src/git/log-tree.c:703,1
    - Dst: fprintf_ln
      Src: /src/git/log-tree.c:705,1
    - Dst: show_interdiff
      Src: /src/git/log-tree.c:706,1
    - Dst: memcpy
      Src: /src/git/log-tree.c:709,1
    - Dst: memcpy
      Src: /src/git/log-tree.c:723,1
    - Dst: diff_queue_init
      Src: /src/git/log-tree.c:724,1
    - Dst: fprintf_ln
      Src: /src/git/log-tree.c:726,1
    - Dst: repo_diff_setup
      Src: /src/git/log-tree.c:731,1
    - Dst: diff_setup_done
      Src: /src/git/log-tree.c:734,1
    - Dst: show_range_diff
      Src: /src/git/log-tree.c:735,1
    - Dst: memcpy
      Src: /src/git/log-tree.c:737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 694
    functionDepth: 9
    functionLinenumber: 694
    functionLinenumberEnd: 739
    functionName: show_diff_of_diff
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - cmit_fmt_is_mail
    - fprintf_ln
    - show_range_diff
    - memcpy
    - show_interdiff
    - diff_queue_init
    - diff_setup_done
    - repo_diff_setup
    linkageType: ''
    returnType: void
    signature: void show_diff_of_diff(struct rev_info *opt)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: graph_show_commit
      Src: /src/git/log-tree.c:751,1
    - Dst: put_revision_mark
      Src: /src/git/log-tree.c:754,1
    - Dst: fputs
      Src: /src/git/log-tree.c:755,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/log-tree.c:755,1
    - Dst: show_parents
      Src: /src/git/log-tree.c:758,1
    - Dst: show_children
      Src: /src/git/log-tree.c:760,1
    - Dst: show_decorations
      Src: /src/git/log-tree.c:761,1
    - Dst: graph_is_commit_finished
      Src: /src/git/log-tree.c:762,1
    - Dst: putc
      Src: /src/git/log-tree.c:763,1
    - Dst: graph_show_remainder
      Src: /src/git/log-tree.c:764,1
    - Dst: putc
      Src: /src/git/log-tree.c:766,1
    - Dst: graph_show_padding
      Src: /src/git/log-tree.c:791,1
    - Dst: putc
      Src: /src/git/log-tree.c:792,1
    - Dst: graph_show_commit
      Src: /src/git/log-tree.c:800,1
    - Dst: cmit_fmt_is_mail
      Src: /src/git/log-tree.c:806,1
    - Dst: log_write_email_headers
      Src: /src/git/log-tree.c:807,1
    - Dst: fputs
      Src: /src/git/log-tree.c:811,1
    - Dst: diff_get_color_opt
      Src: /src/git/log-tree.c:811,1
    - Dst: fputs
      Src: /src/git/log-tree.c:813,1
    - Dst: put_revision_mark
      Src: /src/git/log-tree.c:816,1
    - Dst: fputs
      Src: /src/git/log-tree.c:817,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/log-tree.c:817,1
    - Dst: show_parents
      Src: /src/git/log-tree.c:821,1
    - Dst: show_children
      Src: /src/git/log-tree.c:823,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:825,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/log-tree.c:826,1
    - Dst: fputs
      Src: /src/git/log-tree.c:827,1
    - Dst: diff_get_color_opt
      Src: /src/git/log-tree.c:827,1
    - Dst: show_decorations
      Src: /src/git/log-tree.c:828,1
    - Dst: putc
      Src: /src/git/log-tree.c:830,1
    - Dst: putc
      Src: /src/git/log-tree.c:832,1
    - Dst: graph_show_oneline
      Src: /src/git/log-tree.c:833,1
    - Dst: show_reflog_message
      Src: /src/git/log-tree.c:842,1
    - Dst: show_signature
      Src: /src/git/log-tree.c:852,1
    - Dst: show_mergetag
      Src: /src/git/log-tree.c:853,1
    - Dst: format_display_notes
      Src: /src/git/log-tree.c:861,1
    - Dst: get_log_output_encoding
      Src: /src/git/log-tree.c:862,1
    - Dst: strbuf_detach
      Src: /src/git/log-tree.c:863,1
    - Dst: has_non_ascii
      Src: /src/git/log-tree.c:871,1
    - Dst: fmt_name
      Src: /src/git/log-tree.c:871,1
    - Dst: get_log_output_encoding
      Src: /src/git/log-tree.c:882,1
    - Dst: graph_width
      Src: /src/git/log-tree.c:887,1
    - Dst: pretty_print_commit
      Src: /src/git/log-tree.c:888,1
    - Dst: append_signoff
      Src: /src/git/log-tree.c:891,1
    - Dst: cmit_fmt_is_mail
      Src: /src/git/log-tree.c:895,1
    - Dst: next_commentary_block
      Src: /src/git/log-tree.c:896,1
    - Dst: strbuf_addstr
      Src: /src/git/log-tree.c:897,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:901,1
    - Dst: graph_show_oneline
      Src: /src/git/log-tree.c:902,1
    - Dst: graph_show_commit_msg
      Src: /src/git/log-tree.c:914,1
    - Dst: commit_format_is_empty
      Src: /src/git/log-tree.c:915,1
    - Dst: graph_show_padding
      Src: /src/git/log-tree.c:917,1
    - Dst: putc
      Src: /src/git/log-tree.c:918,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:921,1
    - Dst: free
      Src: /src/git/log-tree.c:922,1
    - Dst: free
      Src: /src/git/log-tree.c:923,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 108
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 741
    functionDepth: 16
    functionLinenumber: 741
    functionLinenumberEnd: 924
    functionName: show_log
    functionSourceFile: /src/git/log-tree.c
    functionUses: 3
    functionsReached:
    - fputs
    - free
    - show_parents
    - has_non_ascii
    - putc
    - next_commentary_block
    - pretty_print_commit
    - append_signoff
    - strbuf_release
    - put_revision_mark
    - graph_show_commit_msg
    - graph_is_commit_finished
    - graph_show_commit
    - strbuf_addstr
    - graph_width
    - fmt_name
    - diff_get_color_opt
    - cmit_fmt_is_mail
    - graph_show_remainder
    - show_decorations
    - show_mergetag
    - strbuf_detach
    - show_reflog_message
    - commit_format_is_empty
    - show_children
    - graph_show_oneline
    - format_display_notes
    - graph_show_padding
    - log_write_email_headers
    - get_log_output_encoding
    - repo_find_unique_abbrev
    - show_signature
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_log(struct rev_info *opt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: diffcore_std
      Src: /src/git/log-tree.c:929,1
    - Dst: diff_queue_is_empty
      Src: /src/git/log-tree.c:931,1
    - Dst: diff_flush
      Src: /src/git/log-tree.c:934,1
    - Dst: show_log
      Src: /src/git/log-tree.c:940,1
    - Dst: commit_format_is_empty
      Src: /src/git/log-tree.c:944,1
    - Dst: fputs
      Src: /src/git/log-tree.c:952,1
    - Dst: diff_line_prefix
      Src: /src/git/log-tree.c:952,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:967,1
    - Dst: putc
      Src: /src/git/log-tree.c:968,1
    - Dst: diff_flush
      Src: /src/git/log-tree.c:971,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 926
    functionDepth: 17
    functionLinenumber: 926
    functionLinenumberEnd: 973
    functionName: log_tree_diff_flush
    functionSourceFile: /src/git/log-tree.c
    functionUses: 1
    functionsReached:
    - show_log
    - putc
    - fputs
    - diff_flush
    - diff_queue_is_empty
    - diffcore_std
    - diff_line_prefix
    - commit_format_is_empty
    - fprintf
    linkageType: ''
    returnType: int
    signature: int log_tree_diff_flush(struct rev_info *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_tree_combined_merge
      Src: /src/git/log-tree.c:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opt
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 975
    functionDepth: 9
    functionLinenumber: 975
    functionLinenumberEnd: 979
    functionName: do_diff_combined
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - diff_tree_combined_merge
    linkageType: ''
    returnType: int
    signature: int do_diff_combined(struct rev_info *opt, struct commit *commit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/log-tree.c:998,1
    - Dst: strmap_init_with_options
      Src: /src/git/log-tree.c:999,1
    - Dst: strmap_for_each_entry
      Src: /src/git/log-tree.c:1000,1
    - Dst: match_pathspec
      Src: /src/git/log-tree.c:1001,1
    - Dst: strlen
      Src: /src/git/log-tree.c:1002,1
    - Dst: strmap_put
      Src: /src/git/log-tree.c:1005,1
    - Dst: strmap_get_size
      Src: /src/git/log-tree.c:1008,1
    - Dst: strmap_clear
      Src: /src/git/log-tree.c:1009,1
    - Dst: FREE_AND_NULL
      Src: /src/git/log-tree.c:1010,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - o
    - all_headers
    argTypes:
    - struct diff_options*
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 981
    functionDepth: 6
    functionLinenumber: 981
    functionLinenumberEnd: 1012
    functionName: setup_additional_headers
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - strmap_clear
    - strmap_init_with_options
    - strmap_for_each_entry
    - xmalloc
    - strlen
    - match_pathspec
    - strmap_put
    - FREE_AND_NULL
    - strmap_get_size
    linkageType: ''
    returnType: void
    signature: "void setup_additional_headers(struct diff_options *o,\n\t\t\t\t     struct
      strmap *all_headers)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strmap_clear
      Src: /src/git/log-tree.c:1023,1
    - Dst: FREE_AND_NULL
      Src: /src/git/log-tree.c:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1014
    functionDepth: 3
    functionLinenumber: 1014
    functionLinenumberEnd: 1025
    functionName: cleanup_additional_headers
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - strmap_clear
    linkageType: ''
    returnType: void
    signature: void cleanup_additional_headers(struct diff_options *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tmp_objdir_create
      Src: /src/git/log-tree.c:1045,1
    - Dst: error
      Src: /src/git/log-tree.c:1047,1
    - Dst: _
      Src: /src/git/log-tree.c:1047,1
    - Dst: tmp_objdir_replace_primary_odb
      Src: /src/git/log-tree.c:1048,1
    - Dst: init_ui_merge_options
      Src: /src/git/log-tree.c:1052,1
    - Dst: repo_format_commit_message
      Src: /src/git/log-tree.c:1058,1
    - Dst: repo_format_commit_message
      Src: /src/git/log-tree.c:1060,1
    - Dst: parse_commit_or_die
      Src: /src/git/log-tree.c:1066,1
    - Dst: parse_commit_or_die
      Src: /src/git/log-tree.c:1067,1
    - Dst: repo_get_merge_bases
      Src: /src/git/log-tree.c:1068,1
    - Dst: exit
      Src: /src/git/log-tree.c:1069,1
    - Dst: merge_incore_recursive
      Src: /src/git/log-tree.c:1072,1
    - Dst: setup_additional_headers
      Src: /src/git/log-tree.c:1075,1
    - Dst: diff_tree_oid
      Src: /src/git/log-tree.c:1076,1
    - Dst: log_tree_diff_flush
      Src: /src/git/log-tree.c:1077,1
    - Dst: commit_list_free
      Src: /src/git/log-tree.c:1080,1
    - Dst: cleanup_additional_headers
      Src: /src/git/log-tree.c:1081,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:1082,1
    - Dst: strbuf_release
      Src: /src/git/log-tree.c:1083,1
    - Dst: merge_finalize
      Src: /src/git/log-tree.c:1084,1
    - Dst: tmp_objdir_discard_objects
      Src: /src/git/log-tree.c:1087,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 3
    argNames:
    - opt
    - parents
    - oid
    argTypes:
    - struct rev_info*
    - struct commit_list*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1027
    functionDepth: 21
    functionLinenumber: 1027
    functionLinenumberEnd: 1090
    functionName: do_remerge_diff
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - error
    - repo_format_commit_message
    - parse_commit_or_die
    - setup_additional_headers
    - strbuf_release
    - tmp_objdir_create
    - merge_finalize
    - cleanup_additional_headers
    - exit
    - diff_tree_oid
    - repo_get_merge_bases
    - tmp_objdir_replace_primary_odb
    - tmp_objdir_discard_objects
    - log_tree_diff_flush
    - commit_list_free
    - merge_incore_recursive
    - init_ui_merge_options
    - _
    linkageType: ''
    returnType: int
    signature: "int do_remerge_diff(struct rev_info *opt,\n\t\t\t   struct commit_list
      *parents,\n\t\t\t   struct object_id *oid)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: parse_commit_or_die
      Src: /src/git/log-tree.c:1108,1
    - Dst: get_commit_tree_oid
      Src: /src/git/log-tree.c:1109,1
    - Dst: get_saved_parents
      Src: /src/git/log-tree.c:1111,1
    - Dst: diff_root_tree_oid
      Src: /src/git/log-tree.c:1119,1
    - Dst: log_tree_diff_flush
      Src: /src/git/log-tree.c:1120,1
    - Dst: show_log
      Src: /src/git/log-tree.c:1130,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:1131,1
    - Dst: do_remerge_diff
      Src: /src/git/log-tree.c:1136,1
    - Dst: do_diff_combined
      Src: /src/git/log-tree.c:1139,1
    - Dst: parse_commit_or_die
      Src: /src/git/log-tree.c:1153,1
    - Dst: diff_tree_oid
      Src: /src/git/log-tree.c:1154,1
    - Dst: get_commit_tree_oid
      Src: /src/git/log-tree.c:1154,1
    - Dst: log_tree_diff_flush
      Src: /src/git/log-tree.c:1156,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - opt
    - commit
    - log
    argTypes:
    - struct rev_info*
    - struct commit*
    - struct log_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1097
    functionDepth: 22
    functionLinenumber: 1097
    functionLinenumberEnd: 1168
    functionName: log_tree_diff
    functionSourceFile: /src/git/log-tree.c
    functionUses: 0
    functionsReached:
    - show_log
    - parse_commit_or_die
    - diff_root_tree_oid
    - do_remerge_diff
    - diff_tree_oid
    - get_saved_parents
    - do_diff_combined
    - get_commit_tree_oid
    - log_tree_diff_flush
    - fprintf
    linkageType: ''
    returnType: int
    signature: int log_tree_diff(struct rev_info *opt, struct commit *commit, struct
      log_info *log)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: line_log_print
      Src: /src/git/log-tree.c:1184,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:1187,1
    - Dst: log_tree_diff
      Src: /src/git/log-tree.c:1188,1
    - Dst: show_log
      Src: /src/git/log-tree.c:1191,1
    - Dst: fprintf
      Src: /src/git/log-tree.c:1195,1
    - Dst: show_diff_of_diff
      Src: /src/git/log-tree.c:1197,1
    - Dst: maybe_flush_or_die
      Src: /src/git/log-tree.c:1199,1
    - Dst: diff_free
      Src: /src/git/log-tree.c:1202,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - opt
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1170
    functionDepth: 23
    functionLinenumber: 1170
    functionLinenumberEnd: 1204
    functionName: log_tree_commit
    functionSourceFile: /src/git/log-tree.c
    functionUses: 2
    functionsReached:
    - show_log
    - diff_free
    - show_diff_of_diff
    - log_tree_diff
    - line_log_print
    - fprintf
    - maybe_flush_or_die
    linkageType: ''
    returnType: int
    signature: int log_tree_commit(struct rev_info *opt, struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - component
    argTypes:
    - enum fsync_component
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: batch_fsync_enabled
    functionSourceFile: /src/git/write-or-die.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int batch_fsync_enabled(enum fsync_component component)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/promisor-remote.c:32,1
    - Dst: warning
      Src: /src/git/promisor-remote.c:36,1
    - Dst: _
      Src: /src/git/promisor-remote.c:36,1
    - Dst: prepare_other_repo_env
      Src: /src/git/promisor-remote.c:44,1
    - Dst: strvec_pushl
      Src: /src/git/promisor-remote.c:45,1
    - Dst: repo_config_get_bool
      Src: /src/git/promisor-remote.c:49,1
    - Dst: strvec_push
      Src: /src/git/promisor-remote.c:50,1
    - Dst: start_command
      Src: /src/git/promisor-remote.c:51,1
    - Dst: die
      Src: /src/git/promisor-remote.c:52,1
    - Dst: _
      Src: /src/git/promisor-remote.c:52,1
    - Dst: xfdopen
      Src: /src/git/promisor-remote.c:53,1
    - Dst: trace2_data_intmax
      Src: /src/git/promisor-remote.c:55,1
    - Dst: fputs
      Src: /src/git/promisor-remote.c:58,1
    - Dst: oid_to_hex
      Src: /src/git/promisor-remote.c:58,1
    - Dst: die_errno
      Src: /src/git/promisor-remote.c:59,1
    - Dst: _
      Src: /src/git/promisor-remote.c:59,1
    - Dst: fputc
      Src: /src/git/promisor-remote.c:60,1
    - Dst: die_errno
      Src: /src/git/promisor-remote.c:61,1
    - Dst: _
      Src: /src/git/promisor-remote.c:61,1
    - Dst: fclose
      Src: /src/git/promisor-remote.c:64,1
    - Dst: die_errno
      Src: /src/git/promisor-remote.c:65,1
    - Dst: _
      Src: /src/git/promisor-remote.c:65,1
    - Dst: finish_command
      Src: /src/git/promisor-remote.c:66,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - repo
    - remote_name
    - oids
    - oid_nr
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 22
    functionDepth: 7
    functionLinenumber: 22
    functionLinenumberEnd: 67
    functionName: fetch_objects
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - fclose
    - strvec_push
    - fputs
    - git_env_bool
    - die
    - xfdopen
    - trace2_data_intmax
    - oid_to_hex
    - finish_command
    - prepare_other_repo_env
    - strvec_pushl
    - die_errno
    - repo_config_get_bool
    - _
    - fputc
    - warning
    - start_command
    linkageType: ''
    returnType: int
    signature: "int fetch_objects(struct repository *repo,\n\t\t\t const char *remote_name,\n\t\t\t
      const struct object_id *oids,\n\t\t\t int oid_nr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/promisor-remote.c:75,1
    - Dst: _
      Src: /src/git/promisor-remote.c:75,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/promisor-remote.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - config
    - remote_name
    argTypes:
    - struct promisor_remote_config*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: promisor_remote_new
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - warning
    - FLEX_ALLOC_STR
    - _
    linkageType: ''
    returnType: struct promisor_remote
    signature: "struct promisor_remote *promisor_remote_new(struct promisor_remote_config
      *config,\n\t\t\t\t\t\t   const char *remote_name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/promisor-remote.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - config
    - remote_name
    - previous
    argTypes:
    - struct promisor_remote_config*
    - char*
    - struct promisor_remote**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: promisor_remote_lookup
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct promisor_remote
    signature: "struct promisor_remote *promisor_remote_lookup(struct promisor_remote_config
      *config,\n\t\t\t\t\t\t      const char *remote_name,\n\t\t\t\t\t\t      struct
      promisor_remote **previous)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - config
    - r
    - previous
    argTypes:
    - struct promisor_remote_config*
    - struct promisor_remote*
    - struct promisor_remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: promisor_remote_move_to_tail
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void promisor_remote_move_to_tail(struct promisor_remote_config *config,\n\t\t\t\t\t
      struct promisor_remote *r,\n\t\t\t\t\t struct promisor_remote *previous)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/promisor-remote.c:129,1
    - Dst: strcmp
      Src: /src/git/promisor-remote.c:132,1
    - Dst: git_config_bool
      Src: /src/git/promisor-remote.c:135,1
    - Dst: xmemdupz
      Src: /src/git/promisor-remote.c:138,1
    - Dst: promisor_remote_lookup
      Src: /src/git/promisor-remote.c:140,1
    - Dst: promisor_remote_new
      Src: /src/git/promisor-remote.c:141,1
    - Dst: free
      Src: /src/git/promisor-remote.c:143,1
    - Dst: strcmp
      Src: /src/git/promisor-remote.c:146,1
    - Dst: xmemdupz
      Src: /src/git/promisor-remote.c:148,1
    - Dst: promisor_remote_lookup
      Src: /src/git/promisor-remote.c:150,1
    - Dst: promisor_remote_new
      Src: /src/git/promisor-remote.c:152,1
    - Dst: free
      Src: /src/git/promisor-remote.c:154,1
    - Dst: FREE_AND_NULL
      Src: /src/git/promisor-remote.c:159,1
    - Dst: git_config_string
      Src: /src/git/promisor-remote.c:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 120
    functionDepth: 10
    functionLinenumber: 120
    functionLinenumberEnd: 164
    functionName: promisor_remote_config
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - free
    - git_config_string
    - parse_config_key
    - strcmp
    - git_config_bool
    - promisor_remote_lookup
    - promisor_remote_new
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: "int promisor_remote_config(const char *var, const char *value,\n\t\t\t\t
      \ const struct config_context *ctx UNUSED,\n\t\t\t\t  void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/promisor-remote.c:173,1
    - Dst: repo_config
      Src: /src/git/promisor-remote.c:176,1
    - Dst: promisor_remote_lookup
      Src: /src/git/promisor-remote.c:181,1
    - Dst: promisor_remote_move_to_tail
      Src: /src/git/promisor-remote.c:185,1
    - Dst: promisor_remote_new
      Src: /src/git/promisor-remote.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 7
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: promisor_remote_init
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - promisor_remote_move_to_tail
    - xcalloc
    - promisor_remote_lookup
    - promisor_remote_new
    - repo_config
    linkageType: ''
    returnType: void
    signature: void promisor_remote_init(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/promisor-remote.c:195,1
    - Dst: free
      Src: /src/git/promisor-remote.c:196,1
    - Dst: free
      Src: /src/git/promisor-remote.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct promisor_remote_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: promisor_remote_clear
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void promisor_remote_clear(struct promisor_remote_config *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: promisor_remote_clear
      Src: /src/git/promisor-remote.c:206,1
    - Dst: FREE_AND_NULL
      Src: /src/git/promisor-remote.c:207,1
    - Dst: promisor_remote_init
      Src: /src/git/promisor-remote.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 8
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: repo_promisor_remote_reinit
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 1
    functionsReached:
    - promisor_remote_clear
    - FREE_AND_NULL
    - promisor_remote_init
    linkageType: ''
    returnType: void
    signature: void repo_promisor_remote_reinit(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: promisor_remote_init
      Src: /src/git/promisor-remote.c:214,1
    - Dst: promisor_remote_lookup
      Src: /src/git/promisor-remote.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - r
    - remote_name
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 8
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: repo_promisor_remote_find
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 2
    functionsReached:
    - promisor_remote_lookup
    - promisor_remote_init
    linkageType: ''
    returnType: struct promisor_remote
    signature: "struct promisor_remote *repo_promisor_remote_find(struct repository
      *r,\n\t\t\t\t\t\t  const char *remote_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_promisor_remote_find
      Src: /src/git/promisor-remote.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 9
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: repo_has_promisor_remote
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 6
    functionsReached:
    - repo_promisor_remote_find
    linkageType: ''
    returnType: int
    signature: int repo_has_promisor_remote(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: promisor_remote_init
      Src: /src/git/promisor-remote.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 227
    functionDepth: 8
    functionLinenumber: 227
    functionLinenumberEnd: 237
    functionName: repo_has_accepted_promisor_remote
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 1
    functionsReached:
    - promisor_remote_init
    linkageType: ''
    returnType: int
    signature: int repo_has_accepted_promisor_remote(struct repository *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/promisor-remote.c:244,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/promisor-remote.c:249,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/promisor-remote.c:257,1
    - Dst: oidcpy
      Src: /src/git/promisor-remote.c:260,1
    - Dst: free
      Src: /src/git/promisor-remote.c:263,1
    - Dst: free
      Src: /src/git/promisor-remote.c:266,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - repo
    - oids
    - oid_nr
    - to_free
    argTypes:
    - struct repository*
    - struct object_id**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 239
    functionDepth: 11
    functionLinenumber: 239
    functionLinenumberEnd: 269
    functionName: remove_fetched_oids
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - xcalloc
    - free
    - CALLOC_ARRAY
    - odb_read_object_info_extended
    linkageType: ''
    returnType: int
    signature: "int remove_fetched_oids(struct repository *repo,\n\t\t\t       struct
      object_id **oids,\n\t\t\t       int oid_nr, int to_free)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fetch_objects
      Src: /src/git/promisor-remote.c:281,1
    - Dst: remove_fetched_oids
      Src: /src/git/promisor-remote.c:284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 5
    argNames:
    - repo
    - remaining_oids
    - remaining_nr
    - to_free
    - accepted_only
    argTypes:
    - struct repository*
    - struct object_id**
    - int*
    - int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 271
    functionDepth: 12
    functionLinenumber: 271
    functionLinenumberEnd: 294
    functionName: try_promisor_remotes
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - remove_fetched_oids
    - fetch_objects
    linkageType: ''
    returnType: int
    signature: "int try_promisor_remotes(struct repository *repo,\n\t\t\t\tstruct
      object_id **remaining_oids,\n\t\t\t\tint *remaining_nr, int *to_free,\n\t\t\t\tbool
      accepted_only)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: promisor_remote_init
      Src: /src/git/promisor-remote.c:308,1
    - Dst: try_promisor_remotes
      Src: /src/git/promisor-remote.c:311,1
    - Dst: try_promisor_remotes
      Src: /src/git/promisor-remote.c:314,1
    - Dst: is_promisor_object
      Src: /src/git/promisor-remote.c:319,1
    - Dst: die
      Src: /src/git/promisor-remote.c:320,1
    - Dst: _
      Src: /src/git/promisor-remote.c:320,1
    - Dst: oid_to_hex
      Src: /src/git/promisor-remote.c:321,1
    - Dst: free
      Src: /src/git/promisor-remote.c:326,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - repo
    - oids
    - oid_nr
    argTypes:
    - struct repository*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 296
    functionDepth: 13
    functionLinenumber: 296
    functionLinenumberEnd: 327
    functionName: promisor_remote_get_direct
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 3
    functionsReached:
    - oid_to_hex
    - die
    - is_promisor_object
    - try_promisor_remotes
    - _
    - free
    - promisor_remote_init
    linkageType: ''
    returnType: void
    signature: "void promisor_remote_get_direct(struct repository *repo,\n\t\t\t\tconst
      struct object_id *oids,\n\t\t\t\tint oid_nr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: allow_unsanitized
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int allow_unsanitized(char ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - field
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 369
    functionName: is_known_field
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int is_known_field(const char *field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_known_field
      Src: /src/git/promisor-remote.c:376,1
    - Dst: warning
      Src: /src/git/promisor-remote.c:377,1
    - Dst: _
      Src: /src/git/promisor-remote.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 381
    functionName: is_valid_field
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - is_known_field
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: int is_valid_field(struct string_list_item *item, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string
      Src: /src/git/promisor-remote.c:387,1
    - Dst: string_list_split_in_place_f
      Src: /src/git/promisor-remote.c:388,1
    - Dst: filter_string_list
      Src: /src/git/promisor-remote.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fields_list
    - config_key
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 383
    functionDepth: 5
    functionLinenumber: 383
    functionLinenumberEnd: 395
    functionName: fields_from_config
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - filter_string_list
    - string_list_split_in_place_f
    - repo_config_get_string
    linkageType: ''
    returnType: char
    signature: char *fields_from_config(struct string_list *fields_list, const char
      *config_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fields_from_config
      Src: /src/git/promisor-remote.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fields_list
    - initialized
    - config_key
    argTypes:
    - struct string_list*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 6
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: initialize_fields_list
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - fields_from_config
    linkageType: ''
    returnType: struct string_list
    signature: "struct string_list *initialize_fields_list(struct string_list *fields_list,
      int *initialized,\n\t\t\t\t\t\t  const char *config_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialize_fields_list
      Src: /src/git/promisor-remote.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 7
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: fields_sent
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - initialize_fields_list
    linkageType: ''
    returnType: struct string_list
    signature: struct string_list *fields_sent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialize_fields_list
      Src: /src/git/promisor-remote.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 7
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: fields_checked
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - initialize_fields_list
    linkageType: ''
    returnType: struct string_list
    signature: struct string_list *fields_checked(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialize_fields_list
      Src: /src/git/promisor-remote.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 425
    functionDepth: 7
    functionLinenumber: 425
    functionLinenumberEnd: 431
    functionName: fields_stored
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - initialize_fields_list
    linkageType: ''
    returnType: struct string_list
    signature: struct string_list *fields_stored(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/promisor-remote.c:451,1
    - Dst: free
      Src: /src/git/promisor-remote.c:452,1
    - Dst: free
      Src: /src/git/promisor-remote.c:453,1
    - Dst: free
      Src: /src/git/promisor-remote.c:454,1
    - Dst: free
      Src: /src/git/promisor-remote.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct promisor_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 456
    functionName: promisor_info_free
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void promisor_info_free(struct promisor_info *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: promisor_info_free
      Src: /src/git/promisor-remote.c:461,1
    - Dst: string_list_clear
      Src: /src/git/promisor-remote.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 463
    functionName: promisor_info_list_clear
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - promisor_info_free
    linkageType: ''
    returnType: void
    signature: void promisor_info_list_clear(struct string_list *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:468,1
    - Dst: xstrdup
      Src: /src/git/promisor-remote.c:469,1
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:470,1
    - Dst: xstrdup
      Src: /src/git/promisor-remote.c:471,1
    - Dst: BUG
      Src: /src/git/promisor-remote.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - field
    - value
    argTypes:
    - struct promisor_info*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 474
    functionName: set_one_field
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - BUG
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void set_one_field(struct promisor_info *p,\n\t\t\t  const char *field,
      const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/promisor-remote.c:482,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/promisor-remote.c:484,1
    - Dst: set_one_field
      Src: /src/git/promisor-remote.c:485,1
    - Dst: free
      Src: /src/git/promisor-remote.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - field_names
    argTypes:
    - struct promisor_info*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 476
    functionDepth: 5
    functionLinenumber: 476
    functionLinenumberEnd: 488
    functionName: set_fields
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - free
    - xstrfmt
    - repo_config_get_string_tmp
    - set_one_field
    linkageType: ''
    returnType: void
    signature: "void set_fields(struct promisor_info *p,\n\t\t       struct string_list
      *field_names)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/promisor-remote.c:482,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/promisor-remote.c:484,1
    - Dst: set_one_field
      Src: /src/git/promisor-remote.c:485,1
    - Dst: free
      Src: /src/git/promisor-remote.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 5
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 33
    functionsReached:
    - free
    - xstrfmt
    - repo_config_get_string_tmp
    - set_one_field
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, field_names)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: promisor_remote_init
      Src: /src/git/promisor-remote.c:503,1
    - Dst: xstrfmt
      Src: /src/git/promisor-remote.c:507,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/promisor-remote.c:510,1
    - Dst: xcalloc
      Src: /src/git/promisor-remote.c:511,1
    - Dst: xstrdup
      Src: /src/git/promisor-remote.c:514,1
    - Dst: xstrdup
      Src: /src/git/promisor-remote.c:515,1
    - Dst: set_fields
      Src: /src/git/promisor-remote.c:518,1
    - Dst: string_list_append
      Src: /src/git/promisor-remote.c:520,1
    - Dst: free
      Src: /src/git/promisor-remote.c:524,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - repo
    - list
    - field_names
    argTypes:
    - struct repository*
    - struct string_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 497
    functionDepth: 8
    functionLinenumber: 497
    functionLinenumberEnd: 526
    functionName: promisor_config_info_list
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - repo_config_get_string_tmp
    - xstrfmt
    - free
    - set_fields
    - xcalloc
    - promisor_remote_init
    - string_list_append
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void promisor_config_info_list(struct repository *repo,\n\t\t\t\t
      \     struct string_list *list,\n\t\t\t\t      struct string_list *field_names)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/promisor-remote.c:535,1
    - Dst: promisor_config_info_list
      Src: /src/git/promisor-remote.c:540,1
    - Dst: fields_sent
      Src: /src/git/promisor-remote.c:540,1
    - Dst: for_each_string_list_item
      Src: /src/git/promisor-remote.c:545,1
    - Dst: strbuf_addch
      Src: /src/git/promisor-remote.c:549,1
    - Dst: strbuf_addf
      Src: /src/git/promisor-remote.c:551,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/promisor-remote.c:552,1
    - Dst: strbuf_addf
      Src: /src/git/promisor-remote.c:553,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/promisor-remote.c:554,1
    - Dst: strbuf_addf
      Src: /src/git/promisor-remote.c:557,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/promisor-remote.c:558,1
    - Dst: strbuf_addf
      Src: /src/git/promisor-remote.c:561,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/promisor-remote.c:562,1
    - Dst: promisor_info_list_clear
      Src: /src/git/promisor-remote.c:566,1
    - Dst: strbuf_detach
      Src: /src/git/promisor-remote.c:568,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 528
    functionDepth: 9
    functionLinenumber: 528
    functionLinenumberEnd: 569
    functionName: promisor_remote_info
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 1
    functionsReached:
    - for_each_string_list_item
    - fields_sent
    - promisor_config_info_list
    - strbuf_addf
    - strbuf_addch
    - repo_config_get_bool
    - strbuf_detach
    - strbuf_addstr_urlencode
    - promisor_info_list_clear
    linkageType: ''
    returnType: char
    signature: char *promisor_remote_info(struct repository *repo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:587,1
    - Dst: strcmp
      Src: /src/git/promisor-remote.c:588,1
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:589,1
    - Dst: strcmp
      Src: /src/git/promisor-remote.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - field
    - value
    - config_info
    argTypes:
    - char*
    - char*
    - struct promisor_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 593
    functionName: match_field_against_config
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int match_field_against_config(const char *field, const char *value,\n\t\t\t\t
      \     struct promisor_info *config_info)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fields_checked
      Src: /src/git/promisor-remote.c:608,1
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:616,1
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:618,1
    - Dst: match_field_against_config
      Src: /src/git/promisor-remote.c:625,1
    - Dst: match_field_against_config
      Src: /src/git/promisor-remote.c:631,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - advertised
    - config_info
    - config_entry
    argTypes:
    - struct promisor_info*
    - struct string_list*
    - struct promisor_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 604
    functionDepth: 8
    functionLinenumber: 604
    functionLinenumberEnd: 643
    functionName: all_fields_match
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - match_field_against_config
    - strcasecmp
    - fields_checked
    linkageType: ''
    returnType: int
    signature: "int all_fields_match(struct promisor_info *advertised,\n\t\t\t    struct
      string_list *config_info,\n\t\t\t    struct promisor_info *config_entry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:616,1
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:618,1
    - Dst: match_field_against_config
      Src: /src/git/promisor-remote.c:625,1
    - Dst: match_field_against_config
      Src: /src/git/promisor-remote.c:631,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 640
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 34
    functionsReached:
    - match_field_against_config
    - strcasecmp
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item_checked, fields)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_field_against_config
      Src: /src/git/promisor-remote.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 34
    functionsReached:
    - match_field_against_config
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, config_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iscntrl
      Src: /src/git/promisor-remote.c:648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 651
    functionName: has_control_char
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - iscntrl
    linkageType: ''
    returnType: bool
    signature: bool has_control_char(const char *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/promisor-remote.c:663,1
    - Dst: all_fields_match
      Src: /src/git/promisor-remote.c:668,1
    - Dst: string_list_lookup
      Src: /src/git/promisor-remote.c:671,1
    - Dst: all_fields_match
      Src: /src/git/promisor-remote.c:680,1
    - Dst: BUG
      Src: /src/git/promisor-remote.c:683,1
    - Dst: strcmp
      Src: /src/git/promisor-remote.c:685,1
    - Dst: warning
      Src: /src/git/promisor-remote.c:686,1
    - Dst: _
      Src: /src/git/promisor-remote.c:686,1
    - Dst: all_fields_match
      Src: /src/git/promisor-remote.c:692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - accept
    - advertised
    - config_info
    argTypes:
    - enum accept_promisor
    - struct promisor_info*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 653
    functionDepth: 9
    functionLinenumber: 653
    functionLinenumberEnd: 693
    functionName: should_accept_remote
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    - all_fields_match
    - strcmp
    - warning
    - BUG
    - _
    linkageType: ''
    returnType: int
    signature: "int should_accept_remote(enum accept_promisor accept,\n\t\t\t\tstruct
      promisor_info *advertised,\n\t\t\t\tstruct string_list *config_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/promisor-remote.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - elem
    - field_name
    - value
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 702
    functionName: skip_field_name_prefix
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int skip_field_name_prefix(const char *elem, const char *field_name,
      const char **value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/promisor-remote.c:706,1
    - Dst: string_list_split
      Src: /src/git/promisor-remote.c:710,1
    - Dst: for_each_string_list_item
      Src: /src/git/promisor-remote.c:712,1
    - Dst: strchr
      Src: /src/git/promisor-remote.c:714,1
    - Dst: warning
      Src: /src/git/promisor-remote.c:717,1
    - Dst: _
      Src: /src/git/promisor-remote.c:717,1
    - Dst: skip_field_name_prefix
      Src: /src/git/promisor-remote.c:721,1
    - Dst: url_percent_decode
      Src: /src/git/promisor-remote.c:722,1
    - Dst: skip_field_name_prefix
      Src: /src/git/promisor-remote.c:723,1
    - Dst: url_percent_decode
      Src: /src/git/promisor-remote.c:724,1
    - Dst: skip_field_name_prefix
      Src: /src/git/promisor-remote.c:725,1
    - Dst: url_percent_decode
      Src: /src/git/promisor-remote.c:726,1
    - Dst: skip_field_name_prefix
      Src: /src/git/promisor-remote.c:727,1
    - Dst: url_percent_decode
      Src: /src/git/promisor-remote.c:728,1
    - Dst: string_list_clear
      Src: /src/git/promisor-remote.c:731,1
    - Dst: warning
      Src: /src/git/promisor-remote.c:734,1
    - Dst: _
      Src: /src/git/promisor-remote.c:734,1
    - Dst: promisor_info_free
      Src: /src/git/promisor-remote.c:736,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - remote_info
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 704
    functionDepth: 7
    functionLinenumber: 704
    functionLinenumberEnd: 741
    functionName: parse_one_advertised_remote
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - skip_field_name_prefix
    - promisor_info_free
    - strchr
    - string_list_split
    - url_percent_decode
    - xcalloc
    - _
    - warning
    linkageType: ''
    returnType: struct promisor_info
    signature: struct promisor_info *parse_one_advertised_remote(const char *remote_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/promisor-remote.c:747,1
    - Dst: xstrfmt
      Src: /src/git/promisor-remote.c:748,1
    - Dst: fprintf
      Src: /src/git/promisor-remote.c:750,1
    - Dst: _
      Src: /src/git/promisor-remote.c:750,1
    - Dst: repo_config_set_gently
      Src: /src/git/promisor-remote.c:756,1
    - Dst: free
      Src: /src/git/promisor-remote.c:757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - repo
    - remote_name
    - field_name
    - field_key
    - advertised
    - current
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 743
    functionDepth: 5
    functionLinenumber: 743
    functionLinenumberEnd: 763
    functionName: store_one_field
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - strcmp
    - _
    - free
    - repo_config_set_gently
    - fprintf
    linkageType: ''
    returnType: bool
    signature: "bool store_one_field(struct repository *repo, const char *remote_name,\n\t\t\t
      \   const char *field_name, const char *field_key,\n\t\t\t    const char *advertised,
      const char *current)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gently_parse_list_objects_filter
      Src: /src/git/promisor-remote.c:770,1
    - Dst: warning
      Src: /src/git/promisor-remote.c:773,1
    - Dst: _
      Src: /src/git/promisor-remote.c:773,1
    - Dst: list_objects_filter_release
      Src: /src/git/promisor-remote.c:777,1
    - Dst: strbuf_release
      Src: /src/git/promisor-remote.c:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - filter
    - remote_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 781
    functionName: valid_filter
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - _
    - warning
    - list_objects_filter_release
    - gently_parse_list_objects_filter
    linkageType: ''
    returnType: bool
    signature: bool valid_filter(const char *filter, const char *remote_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_control_char
      Src: /src/git/promisor-remote.c:785,1
    - Dst: warning
      Src: /src/git/promisor-remote.c:786,1
    - Dst: _
      Src: /src/git/promisor-remote.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - token
    - remote_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 793
    functionName: valid_token
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - has_control_char
    - warning
    - _
    linkageType: ''
    returnType: bool
    signature: bool valid_token(const char *token, const char *remote_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fields_stored
      Src: /src/git/promisor-remote.c:804,1
    - Dst: xmalloc
      Src: /src/git/promisor-remote.c:805,1
    - Dst: string_list_init_nodup
      Src: /src/git/promisor-remote.c:809,1
    - Dst: promisor_config_info_list
      Src: /src/git/promisor-remote.c:810,1
    - Dst: string_list_sort
      Src: /src/git/promisor-remote.c:811,1
    - Dst: string_list_lookup
      Src: /src/git/promisor-remote.c:813,1
    - Dst: string_list_lookup
      Src: /src/git/promisor-remote.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 802
    functionDepth: 9
    functionLinenumber: 802
    functionLinenumberEnd: 817
    functionName: store_info_new
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    - string_list_init_nodup
    - fields_stored
    - promisor_config_info_list
    - string_list_sort
    - xmalloc
    linkageType: ''
    returnType: struct store_info
    signature: struct store_info *store_info_new(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: promisor_info_list_clear
      Src: /src/git/promisor-remote.c:822,1
    - Dst: free
      Src: /src/git/promisor-remote.c:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct store_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 825
    functionName: store_info_free
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - promisor_info_list_clear
    - free
    linkageType: ''
    returnType: void
    signature: void store_info_free(struct store_info *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_list_lookup
      Src: /src/git/promisor-remote.c:843,1
    - Dst: valid_filter
      Src: /src/git/promisor-remote.c:851,1
    - Dst: store_one_field
      Src: /src/git/promisor-remote.c:852,1
    - Dst: valid_token
      Src: /src/git/promisor-remote.c:857,1
    - Dst: store_one_field
      Src: /src/git/promisor-remote.c:858,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - advertised
    - store_info
    argTypes:
    - struct promisor_info*
    - struct store_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 827
    functionDepth: 6
    functionLinenumber: 827
    functionLinenumberEnd: 863
    functionName: promisor_store_advertised_fields
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - valid_filter
    - string_list_lookup
    - valid_token
    - store_one_field
    linkageType: ''
    returnType: bool
    signature: "bool promisor_store_advertised_fields(struct promisor_info *advertised,\n\t\t\t\t\t
      \    struct store_info *store_info)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_tmp
      Src: /src/git/promisor-remote.c:870,1
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:871,1
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:873,1
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:875,1
    - Dst: strcasecmp
      Src: /src/git/promisor-remote.c:877,1
    - Dst: warning
      Src: /src/git/promisor-remote.c:880,1
    - Dst: _
      Src: /src/git/promisor-remote.c:880,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 885
    functionName: accept_from_server
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - repo_config_get_string_tmp
    - warning
    - _
    linkageType: ''
    returnType: enum accept_promisor
    signature: enum accept_promisor accept_from_server(struct repository *repo)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: accept_from_server
      Src: /src/git/promisor-remote.c:896,1
    - Dst: string_list_split
      Src: /src/git/promisor-remote.c:903,1
    - Dst: for_each_string_list_item
      Src: /src/git/promisor-remote.c:905,1
    - Dst: parse_one_advertised_remote
      Src: /src/git/promisor-remote.c:908,1
    - Dst: promisor_config_info_list
      Src: /src/git/promisor-remote.c:914,1
    - Dst: fields_checked
      Src: /src/git/promisor-remote.c:914,1
    - Dst: string_list_sort
      Src: /src/git/promisor-remote.c:915,1
    - Dst: should_accept_remote
      Src: /src/git/promisor-remote.c:918,1
    - Dst: store_info_new
      Src: /src/git/promisor-remote.c:920,1
    - Dst: promisor_store_advertised_fields
      Src: /src/git/promisor-remote.c:921,1
    - Dst: string_list_append
      Src: /src/git/promisor-remote.c:924,1
    - Dst: promisor_info_free
      Src: /src/git/promisor-remote.c:926,1
    - Dst: promisor_info_list_clear
      Src: /src/git/promisor-remote.c:930,1
    - Dst: string_list_clear
      Src: /src/git/promisor-remote.c:931,1
    - Dst: store_info_free
      Src: /src/git/promisor-remote.c:932,1
    - Dst: repo_promisor_remote_reinit
      Src: /src/git/promisor-remote.c:935,1
    - Dst: repo_promisor_remote_find
      Src: /src/git/promisor-remote.c:940,1
    - Dst: free
      Src: /src/git/promisor-remote.c:945,1
    - Dst: xstrdup
      Src: /src/git/promisor-remote.c:946,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - repo
    - accepted_remotes
    - info
    argTypes:
    - struct repository*
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 887
    functionDepth: 10
    functionLinenumber: 887
    functionLinenumberEnd: 950
    functionName: filter_promisor_remote
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - promisor_config_info_list
    - fields_checked
    - repo_promisor_remote_find
    - free
    - should_accept_remote
    - promisor_info_list_clear
    - parse_one_advertised_remote
    - store_info_free
    - string_list_clear
    - string_list_split
    - accept_from_server
    - string_list_append
    - xstrdup
    - string_list_sort
    - promisor_info_free
    - promisor_store_advertised_fields
    - store_info_new
    - repo_promisor_remote_reinit
    linkageType: ''
    returnType: void
    signature: "void filter_promisor_remote(struct repository *repo,\n\t\t\t\t   struct
      string_list *accepted_remotes,\n\t\t\t\t   const char *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_promisor_remote_find
      Src: /src/git/promisor-remote.c:940,1
    - Dst: free
      Src: /src/git/promisor-remote.c:945,1
    - Dst: xstrdup
      Src: /src/git/promisor-remote.c:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 938
    functionDepth: 9
    functionLinenumber: 938
    functionLinenumberEnd: 949
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 36
    functionsReached:
    - repo_promisor_remote_find
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, accepted_remotes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: filter_promisor_remote
      Src: /src/git/promisor-remote.c:956,1
    - Dst: for_each_string_list_item
      Src: /src/git/promisor-remote.c:963,1
    - Dst: strbuf_addch
      Src: /src/git/promisor-remote.c:965,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/promisor-remote.c:966,1
    - Dst: strbuf_detach
      Src: /src/git/promisor-remote.c:968,1
    - Dst: promisor_info_list_clear
      Src: /src/git/promisor-remote.c:974,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - info
    - accepted_out
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 952
    functionDepth: 11
    functionLinenumber: 952
    functionLinenumberEnd: 975
    functionName: promisor_remote_reply
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - filter_promisor_remote
    - strbuf_addch
    - strbuf_detach
    - strbuf_addstr_urlencode
    - promisor_info_list_clear
    linkageType: ''
    returnType: void
    signature: void promisor_remote_reply(const char *info, char **accepted_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_split
      Src: /src/git/promisor-remote.c:982,1
    - Dst: for_each_string_list_item
      Src: /src/git/promisor-remote.c:984,1
    - Dst: url_percent_decode
      Src: /src/git/promisor-remote.c:985,1
    - Dst: repo_promisor_remote_find
      Src: /src/git/promisor-remote.c:986,1
    - Dst: warning
      Src: /src/git/promisor-remote.c:991,1
    - Dst: _
      Src: /src/git/promisor-remote.c:991,1
    - Dst: free
      Src: /src/git/promisor-remote.c:994,1
    - Dst: string_list_clear
      Src: /src/git/promisor-remote.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - r
    - remotes
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 977
    functionDepth: 9
    functionLinenumber: 977
    functionLinenumberEnd: 998
    functionName: mark_promisor_remotes_as_accepted
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 1
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - repo_promisor_remote_find
    - string_list_split
    - url_percent_decode
    - _
    - free
    - warning
    linkageType: ''
    returnType: void
    signature: void mark_promisor_remotes_as_accepted(struct repository *r, const
      char *remotes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: promisor_remote_init
      Src: /src/git/promisor-remote.c:1007,1
    - Dst: gently_parse_list_objects_filter
      Src: /src/git/promisor-remote.c:1011,1
    - Dst: warning
      Src: /src/git/promisor-remote.c:1014,1
    - Dst: _
      Src: /src/git/promisor-remote.c:1014,1
    - Dst: strbuf_reset
      Src: /src/git/promisor-remote.c:1016,1
    - Dst: xstrdup
      Src: /src/git/promisor-remote.c:1022,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/promisor-remote.c:1022,1
    - Dst: list_objects_filter_release
      Src: /src/git/promisor-remote.c:1024,1
    - Dst: strbuf_release
      Src: /src/git/promisor-remote.c:1025,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1000
    functionDepth: 8
    functionLinenumber: 1000
    functionLinenumberEnd: 1028
    functionName: promisor_remote_construct_filter
    functionSourceFile: /src/git/promisor-remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - promisor_remote_init
    - strbuf_reset
    - expand_list_objects_filter_spec
    - _
    - warning
    - list_objects_filter_release
    - xstrdup
    - gently_parse_list_objects_filter
    linkageType: ''
    returnType: char
    signature: char *promisor_remote_construct_filter(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/git.c:64,1
    - Dst: unsorted_string_list_delete_item
      Src: /src/git/git.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: exclude_helpers_from_list
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - unsorted_string_list_delete_item
    - strstr
    linkageType: ''
    returnType: void
    signature: void exclude_helpers_from_list(struct string_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/git.c:73,1
    - Dst: strncmp
      Src: /src/git/git.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - spec
    - len
    - token
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: match_token
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int match_token(const char *spec, int len, const char *token)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory_gently
      Src: /src/git/git.c:87,1
    - Dst: strchrnul
      Src: /src/git/git.c:90,1
    - Dst: match_token
      Src: /src/git/git.c:93,1
    - Dst: list_builtins
      Src: /src/git/git.c:94,1
    - Dst: match_token
      Src: /src/git/git.c:95,1
    - Dst: list_all_main_cmds
      Src: /src/git/git.c:96,1
    - Dst: match_token
      Src: /src/git/git.c:97,1
    - Dst: list_all_other_cmds
      Src: /src/git/git.c:98,1
    - Dst: match_token
      Src: /src/git/git.c:99,1
    - Dst: exclude_helpers_from_list
      Src: /src/git/git.c:100,1
    - Dst: match_token
      Src: /src/git/git.c:101,1
    - Dst: list_aliases
      Src: /src/git/git.c:102,1
    - Dst: match_token
      Src: /src/git/git.c:103,1
    - Dst: list_cmds_by_config
      Src: /src/git/git.c:104,1
    - Dst: match_token
      Src: /src/git/git.c:105,1
    - Dst: list_builtins
      Src: /src/git/git.c:106,1
    - Dst: strncmp
      Src: /src/git/git.c:107,1
    - Dst: strbuf_add
      Src: /src/git/git.c:110,1
    - Dst: list_cmds_by_category
      Src: /src/git/git.c:111,1
    - Dst: strbuf_release
      Src: /src/git/git.c:112,1
    - Dst: die
      Src: /src/git/git.c:115,1
    - Dst: _
      Src: /src/git/git.c:115,1
    - Dst: puts
      Src: /src/git/git.c:121,1
    - Dst: string_list_clear
      Src: /src/git/git.c:122,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - spec
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 78
    functionDepth: 13
    functionLinenumber: 78
    functionLinenumberEnd: 124
    functionName: list_cmds
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - match_token
    - strbuf_release
    - list_builtins
    - list_cmds_by_category
    - die
    - string_list_clear
    - puts
    - _
    - setup_git_directory_gently
    - list_cmds_by_config
    - strncmp
    - list_aliases
    - strchrnul
    - exclude_helpers_from_list
    - strbuf_add
    - list_all_main_cmds
    - list_all_other_cmds
    linkageType: ''
    returnType: int
    signature: int list_cmds(const char *spec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/git/git.c:130,1
    - Dst: setup_pager
      Src: /src/git/git.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: commit_pager_choice
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - setenv
    - setup_pager
    linkageType: ''
    returnType: void
    signature: void commit_pager_choice(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pager_in_use
      Src: /src/git/git.c:142,1
    - Dst: check_pager_config
      Src: /src/git/git.c:144,1
    - Dst: commit_pager_choice
      Src: /src/git/git.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - cmd
    - def
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 9
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: setup_auto_pager
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - commit_pager_choice
    - check_pager_config
    - pager_in_use
    linkageType: ''
    returnType: void
    signature: void setup_auto_pager(const char *cmd, int def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: system_path
      Src: /src/git/git.c:152,1
    - Dst: puts
      Src: /src/git/git.c:153,1
    - Dst: free
      Src: /src/git/git.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: print_system_path
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - puts
    - system_path
    - free
    linkageType: ''
    returnType: void
    signature: void print_system_path(const char *path)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/git.c:171,1
    - Dst: strcmp
      Src: /src/git/git.c:171,1
    - Dst: strcmp
      Src: /src/git/git.c:172,1
    - Dst: strcmp
      Src: /src/git/git.c:172,1
    - Dst: skip_prefix
      Src: /src/git/git.c:178,1
    - Dst: git_set_exec_path
      Src: /src/git/git.c:180,1
    - Dst: puts
      Src: /src/git/git.c:182,1
    - Dst: git_exec_path
      Src: /src/git/git.c:182,1
    - Dst: trace2_cmd_name
      Src: /src/git/git.c:183,1
    - Dst: exit
      Src: /src/git/git.c:184,1
    - Dst: strcmp
      Src: /src/git/git.c:186,1
    - Dst: print_system_path
      Src: /src/git/git.c:187,1
    - Dst: trace2_cmd_name
      Src: /src/git/git.c:188,1
    - Dst: exit
      Src: /src/git/git.c:189,1
    - Dst: strcmp
      Src: /src/git/git.c:190,1
    - Dst: print_system_path
      Src: /src/git/git.c:191,1
    - Dst: trace2_cmd_name
      Src: /src/git/git.c:192,1
    - Dst: exit
      Src: /src/git/git.c:193,1
    - Dst: strcmp
      Src: /src/git/git.c:194,1
    - Dst: print_system_path
      Src: /src/git/git.c:195,1
    - Dst: trace2_cmd_name
      Src: /src/git/git.c:196,1
    - Dst: exit
      Src: /src/git/git.c:197,1
    - Dst: strcmp
      Src: /src/git/git.c:198,1
    - Dst: strcmp
      Src: /src/git/git.c:198,1
    - Dst: strcmp
      Src: /src/git/git.c:200,1
    - Dst: strcmp
      Src: /src/git/git.c:200,1
    - Dst: strcmp
      Src: /src/git/git.c:204,1
    - Dst: setenv
      Src: /src/git/git.c:206,1
    - Dst: strcmp
      Src: /src/git/git.c:209,1
    - Dst: disable_replace_refs
      Src: /src/git/git.c:210,1
    - Dst: setenv
      Src: /src/git/git.c:211,1
    - Dst: strcmp
      Src: /src/git/git.c:214,1
    - Dst: fprintf
      Src: /src/git/git.c:216,1
    - Dst: _
      Src: /src/git/git.c:216,1
    - Dst: usage
      Src: /src/git/git.c:217,1
    - Dst: setenv
      Src: /src/git/git.c:219,1
    - Dst: skip_prefix
      Src: /src/git/git.c:224,1
    - Dst: setenv
      Src: /src/git/git.c:225,1
    - Dst: strcmp
      Src: /src/git/git.c:228,1
    - Dst: fprintf
      Src: /src/git/git.c:230,1
    - Dst: _
      Src: /src/git/git.c:230,1
    - Dst: usage
      Src: /src/git/git.c:231,1
    - Dst: setenv
      Src: /src/git/git.c:233,1
    - Dst: skip_prefix
      Src: /src/git/git.c:238,1
    - Dst: setenv
      Src: /src/git/git.c:239,1
    - Dst: strcmp
      Src: /src/git/git.c:242,1
    - Dst: fprintf
      Src: /src/git/git.c:244,1
    - Dst: _
      Src: /src/git/git.c:244,1
    - Dst: usage
      Src: /src/git/git.c:245,1
    - Dst: setenv
      Src: /src/git/git.c:247,1
    - Dst: skip_prefix
      Src: /src/git/git.c:252,1
    - Dst: setenv
      Src: /src/git/git.c:253,1
    - Dst: strcmp
      Src: /src/git/git.c:256,1
    - Dst: xgetcwd
      Src: /src/git/git.c:257,1
    - Dst: setenv
      Src: /src/git/git.c:259,1
    - Dst: free
      Src: /src/git/git.c:260,1
    - Dst: setenv
      Src: /src/git/git.c:261,1
    - Dst: strcmp
      Src: /src/git/git.c:264,1
    - Dst: fprintf
      Src: /src/git/git.c:266,1
    - Dst: _
      Src: /src/git/git.c:266,1
    - Dst: usage
      Src: /src/git/git.c:267,1
    - Dst: git_config_push_parameter
      Src: /src/git/git.c:269,1
    - Dst: strcmp
      Src: /src/git/git.c:272,1
    - Dst: fprintf
      Src: /src/git/git.c:274,1
    - Dst: _
      Src: /src/git/git.c:274,1
    - Dst: usage
      Src: /src/git/git.c:275,1
    - Dst: git_config_push_env
      Src: /src/git/git.c:277,1
    - Dst: skip_prefix
      Src: /src/git/git.c:280,1
    - Dst: git_config_push_env
      Src: /src/git/git.c:281,1
    - Dst: strcmp
      Src: /src/git/git.c:282,1
    - Dst: setenv
      Src: /src/git/git.c:283,1
    - Dst: strcmp
      Src: /src/git/git.c:286,1
    - Dst: setenv
      Src: /src/git/git.c:287,1
    - Dst: strcmp
      Src: /src/git/git.c:290,1
    - Dst: setenv
      Src: /src/git/git.c:291,1
    - Dst: strcmp
      Src: /src/git/git.c:294,1
    - Dst: setenv
      Src: /src/git/git.c:295,1
    - Dst: strcmp
      Src: /src/git/git.c:298,1
    - Dst: setenv
      Src: /src/git/git.c:299,1
    - Dst: strcmp
      Src: /src/git/git.c:302,1
    - Dst: setenv
      Src: /src/git/git.c:303,1
    - Dst: strcmp
      Src: /src/git/git.c:306,1
    - Dst: set_alternate_shallow_file
      Src: /src/git/git.c:309,1
    - Dst: strcmp
      Src: /src/git/git.c:312,1
    - Dst: fprintf
      Src: /src/git/git.c:314,1
    - Dst: _
      Src: /src/git/git.c:314,1
    - Dst: usage
      Src: /src/git/git.c:315,1
    - Dst: chdir
      Src: /src/git/git.c:318,1
    - Dst: die_errno
      Src: /src/git/git.c:319,1
    - Dst: skip_prefix
      Src: /src/git/git.c:325,1
    - Dst: trace2_cmd_name
      Src: /src/git/git.c:326,1
    - Dst: strcmp
      Src: /src/git/git.c:327,1
    - Dst: list_builtins
      Src: /src/git/git.c:330,1
    - Dst: printf
      Src: /src/git/git.c:332,1
    - Dst: string_list_clear
      Src: /src/git/git.c:333,1
    - Dst: exit
      Src: /src/git/git.c:334,1
    - Dst: exit
      Src: /src/git/git.c:336,1
    - Dst: list_cmds
      Src: /src/git/git.c:336,1
    - Dst: strcmp
      Src: /src/git/git.c:338,1
    - Dst: fprintf
      Src: /src/git/git.c:340,1
    - Dst: _
      Src: /src/git/git.c:340,1
    - Dst: usage
      Src: /src/git/git.c:341,1
    - Dst: setenv
      Src: /src/git/git.c:343,1
    - Dst: skip_prefix
      Src: /src/git/git.c:348,1
    - Dst: set_git_attr_source
      Src: /src/git/git.c:349,1
    - Dst: setenv
      Src: /src/git/git.c:350,1
    - Dst: strcmp
      Src: /src/git/git.c:353,1
    - Dst: setenv
      Src: /src/git/git.c:354,1
    - Dst: fprintf
      Src: /src/git/git.c:358,1
    - Dst: _
      Src: /src/git/git.c:358,1
    - Dst: usage
      Src: /src/git/git.c:359,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 218
    argCount: 3
    argNames:
    - argv
    - argc
    - envchanged
    argTypes:
    - char***
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 157
    functionDepth: 14
    functionLinenumber: 157
    functionLinenumberEnd: 366
    functionName: handle_options
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - git_config_push_env
    - strcmp
    - free
    - printf
    - xgetcwd
    - puts
    - git_set_exec_path
    - disable_replace_refs
    - trace2_cmd_name
    - set_alternate_shallow_file
    - string_list_clear
    - chdir
    - die_errno
    - list_cmds
    - set_git_attr_source
    - _
    - skip_prefix
    - list_builtins
    - exit
    - usage
    - setenv
    - git_exec_path
    - print_system_path
    - fprintf
    - git_config_push_parameter
    linkageType: ''
    returnType: int
    signature: int handle_options(const char ***argv, int *argc, int *envchanged)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: alias_lookup
      Src: /src/git/git.c:377,1
    - Dst: strcmp
      Src: /src/git/git.c:381,1
    - Dst: fprintf_ln
      Src: /src/git/git.c:382,1
    - Dst: _
      Src: /src/git/git.c:382,1
    - Dst: setup_git_directory_gently
      Src: /src/git/git.c:389,1
    - Dst: commit_pager_choice
      Src: /src/git/git.c:391,1
    - Dst: strvec_push
      Src: /src/git/git.c:397,1
    - Dst: strvec_pushv
      Src: /src/git/git.c:398,1
    - Dst: trace2_cmd_alias
      Src: /src/git/git.c:400,1
    - Dst: trace2_cmd_name
      Src: /src/git/git.c:401,1
    - Dst: run_command
      Src: /src/git/git.c:403,1
    - Dst: exit
      Src: /src/git/git.c:405,1
    - Dst: die_errno
      Src: /src/git/git.c:407,1
    - Dst: _
      Src: /src/git/git.c:407,1
    - Dst: split_cmdline
      Src: /src/git/git.c:410,1
    - Dst: die
      Src: /src/git/git.c:412,1
    - Dst: _
      Src: /src/git/git.c:412,1
    - Dst: _
      Src: /src/git/git.c:413,1
    - Dst: split_cmdline_strerror
      Src: /src/git/git.c:413,1
    - Dst: handle_options
      Src: /src/git/git.c:414,1
    - Dst: die
      Src: /src/git/git.c:416,1
    - Dst: _
      Src: /src/git/git.c:416,1
    - Dst: MOVE_ARRAY
      Src: /src/git/git.c:419,1
    - Dst: die
      Src: /src/git/git.c:423,1
    - Dst: _
      Src: /src/git/git.c:423,1
    - Dst: strcmp
      Src: /src/git/git.c:425,1
    - Dst: die
      Src: /src/git/git.c:426,1
    - Dst: _
      Src: /src/git/git.c:426,1
    - Dst: string_list_append
      Src: /src/git/git.c:428,1
    - Dst: unsorted_string_list_lookup
      Src: /src/git/git.c:429,1
    - Dst: strbuf_addf
      Src: /src/git/git.c:437,1
    - Dst: strbuf_addstr
      Src: /src/git/git.c:439,1
    - Dst: strbuf_addstr
      Src: /src/git/git.c:441,1
    - Dst: die
      Src: /src/git/git.c:443,1
    - Dst: _
      Src: /src/git/git.c:443,1
    - Dst: trace_argv_printf
      Src: /src/git/git.c:447,1
    - Dst: trace2_cmd_alias
      Src: /src/git/git.c:450,1
    - Dst: strvec_splice
      Src: /src/git/git.c:453,1
    - Dst: free
      Src: /src/git/git.c:455,1
    - Dst: free
      Src: /src/git/git.c:456,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 2
    argNames:
    - args
    - expanded_aliases
    argTypes:
    - struct strvec*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 368
    functionDepth: 15
    functionLinenumber: 368
    functionLinenumberEnd: 464
    functionName: handle_alias
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_addf
    - setup_git_directory_gently
    - unsorted_string_list_lookup
    - strcmp
    - free
    - trace2_cmd_alias
    - handle_options
    - die
    - commit_pager_choice
    - strbuf_addstr
    - trace2_cmd_name
    - fprintf_ln
    - MOVE_ARRAY
    - strvec_pushv
    - die_errno
    - split_cmdline_strerror
    - strvec_splice
    - split_cmdline
    - string_list_append
    - _
    - trace_argv_printf
    - run_command
    - exit
    - alias_lookup
    linkageType: ''
    returnType: int
    signature: int handle_alias(struct strvec *args, struct string_list *expanded_aliases)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/git.c:474,1
    - Dst: strcmp
      Src: /src/git/git.c:474,1
    - Dst: setup_git_directory
      Src: /src/git/git.c:480,1
    - Dst: setup_git_directory_gently
      Src: /src/git/git.c:483,1
    - Dst: assert
      Src: /src/git/git.c:487,1
    - Dst: precompose_argv_prefix
      Src: /src/git/git.c:488,1
    - Dst: check_pager_config
      Src: /src/git/git.c:491,1
    - Dst: trace_repo_setup
      Src: /src/git/git.c:496,1
    - Dst: commit_pager_choice
      Src: /src/git/git.c:497,1
    - Dst: setup_work_tree
      Src: /src/git/git.c:500,1
    - Dst: trace_argv_printf
      Src: /src/git/git.c:502,1
    - Dst: trace2_cmd_name
      Src: /src/git/git.c:503,1
    - Dst: validate_cache_entries
      Src: /src/git/git.c:505,1
    - Dst: struct cmd_struct*::fn
      Src: /src/git/git.c:506,1
    - Dst: validate_cache_entries
      Src: /src/git/git.c:507,1
    - Dst: fstat
      Src: /src/git/git.c:513,1
    - Dst: fileno
      Src: /src/git/git.c:513,1
    - Dst: S_ISFIFO
      Src: /src/git/git.c:516,1
    - Dst: S_ISSOCK
      Src: /src/git/git.c:516,1
    - Dst: fflush
      Src: /src/git/git.c:520,1
    - Dst: die_errno
      Src: /src/git/git.c:521,1
    - Dst: _
      Src: /src/git/git.c:521,1
    - Dst: ferror
      Src: /src/git/git.c:522,1
    - Dst: die
      Src: /src/git/git.c:523,1
    - Dst: _
      Src: /src/git/git.c:523,1
    - Dst: fclose
      Src: /src/git/git.c:524,1
    - Dst: die_errno
      Src: /src/git/git.c:525,1
    - Dst: _
      Src: /src/git/git.c:525,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 42
    argCount: 4
    argNames:
    - p
    - argc
    - argv
    - repo
    argTypes:
    - struct cmd_struct*
    - int
    - char**
    - struct repository*
    assertStmts:
    - condition: (!prefix || *prefix)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/git/git.c
    constantsTouched: []
    func_position:
      end: 527
      start: 466
    functionDepth: 14
    functionLinenumber: 466
    functionLinenumberEnd: 527
    functionName: run_builtin
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - S_ISFIFO
    - fclose
    - check_pager_config
    - setup_git_directory
    - validate_cache_entries
    - setup_git_directory_gently
    - trace_repo_setup
    - strcmp
    - struct cmd_struct*::fn
    - die
    - commit_pager_choice
    - trace2_cmd_name
    - S_ISSOCK
    - precompose_argv_prefix
    - setup_work_tree
    - fileno
    - die_errno
    - fflush
    - _
    - trace_argv_printf
    - ferror
    - assert
    - fstat
    linkageType: ''
    returnType: int
    signature: int run_builtin(struct cmd_struct *p, int argc, const char **argv,
      struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/git.c:689,1
    - Dst: strcmp
      Src: /src/git/git.c:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 695
    functionName: get_builtin
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strcmp
    linkageType: ''
    returnType: struct cmd_struct
    signature: struct cmd_struct *get_builtin(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_builtin
      Src: /src/git/git.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 700
    functionName: is_builtin
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - get_builtin
    linkageType: ''
    returnType: int
    signature: int is_builtin(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/git.c:707,1
    - Dst: ARRAY_SIZE
      Src: /src/git/git.c:708,1
    - Dst: string_list_append
      Src: /src/git/git.c:713,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 3
    argNames:
    - out
    - include_option
    - exclude_option
    argTypes:
    - struct string_list*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 715
    functionName: list_builtins
    functionSourceFile: /src/git/git.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - BUG
    - string_list_append
    linkageType: ''
    returnType: void
    signature: "void list_builtins(struct string_list *out,\n\t\t\t  unsigned int
      include_option,\n\t\t\t  unsigned int exclude_option)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/git.c:727,1
    - Dst: BUG
      Src: /src/git/git.c:728,1
    - Dst: ARRAY_SIZE
      Src: /src/git/git.c:730,1
    - Dst: skip_prefix
      Src: /src/git/git.c:731,1
    - Dst: add_cmdname
      Src: /src/git/git.c:732,1
    - Dst: strlen
      Src: /src/git/git.c:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - prefix
    - cmds
    argTypes:
    - char*
    - struct cmdnames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 733
    functionName: load_builtin_commands
    functionSourceFile: /src/git/git.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - strlen
    - add_cmdname
    - skip_prefix
    - BUG
    linkageType: ''
    returnType: void
    signature: void load_builtin_commands(const char *prefix, struct cmdnames *cmds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix
      Src: /src/git/git.c:740,1
    - Dst: xmemdupz
      Src: /src/git/git.c:741,1
    - Dst: strvec_replace
      Src: /src/git/git.c:742,1
    - Dst: free
      Src: /src/git/git.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 736
    functionDepth: 10
    functionLinenumber: 736
    functionLinenumberEnd: 745
    functionName: strip_extension
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - strip_suffix
    - xmemdupz
    - strvec_replace
    - free
    linkageType: ''
    returnType: void
    signature: void strip_extension(struct strvec *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strip_extension
      Src: /src/git/git.c:755,1
    - Dst: strcmp
      Src: /src/git/git.c:759,1
    - Dst: strvec_replace
      Src: /src/git/git.c:762,1
    - Dst: strvec_replace
      Src: /src/git/git.c:763,1
    - Dst: strvec_splice
      Src: /src/git/git.c:765,1
    - Dst: ARRAY_SIZE
      Src: /src/git/git.c:766,1
    - Dst: get_builtin
      Src: /src/git/git.c:769,1
    - Dst: DUP_ARRAY
      Src: /src/git/git.c:780,1
    - Dst: run_builtin
      Src: /src/git/git.c:782,1
    - Dst: strvec_clear
      Src: /src/git/git.c:783,1
    - Dst: free
      Src: /src/git/git.c:784,1
    - Dst: exit
      Src: /src/git/git.c:785,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 750
    functionDepth: 15
    functionLinenumber: 750
    functionLinenumberEnd: 787
    functionName: handle_builtin
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - exit
    - strvec_splice
    - strvec_clear
    - strip_extension
    - get_builtin
    - DUP_ARRAY
    - strcmp
    - free
    - strvec_replace
    - run_builtin
    linkageType: ''
    returnType: void
    signature: void handle_builtin(struct strvec *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_builtin
      Src: /src/git/git.c:794,1
    - Dst: check_pager_config
      Src: /src/git/git.c:795,1
    - Dst: commit_pager_choice
      Src: /src/git/git.c:796,1
    - Dst: strvec_pushf
      Src: /src/git/git.c:798,1
    - Dst: strvec_pushv
      Src: /src/git/git.c:799,1
    - Dst: trace2_cmd_name
      Src: /src/git/git.c:805,1
    - Dst: trace_argv_printf
      Src: /src/git/git.c:811,1
    - Dst: run_command
      Src: /src/git/git.c:819,1
    - Dst: exit
      Src: /src/git/git.c:827,1
    - Dst: exit
      Src: /src/git/git.c:829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 789
    functionDepth: 9
    functionLinenumber: 789
    functionLinenumberEnd: 830
    functionName: execv_dashed_external
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - check_pager_config
    - run_command
    - commit_pager_choice
    - strvec_pushv
    - exit
    - trace2_cmd_name
    - is_builtin
    - strvec_pushf
    - trace_argv_printf
    linkageType: ''
    returnType: void
    signature: void execv_dashed_external(const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_builtin
      Src: /src/git/git.c:834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: is_deprecated_command
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - get_builtin
    linkageType: ''
    returnType: int
    signature: int is_deprecated_command(const char *cmd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_deprecated_command
      Src: /src/git/git.c:850,1
    - Dst: handle_alias
      Src: /src/git/git.c:851,1
    - Dst: handle_builtin
      Src: /src/git/git.c:865,1
    - Dst: get_builtin
      Src: /src/git/git.c:866,1
    - Dst: trace2_cmd_name
      Src: /src/git/git.c:877,1
    - Dst: commit_pager_choice
      Src: /src/git/git.c:879,1
    - Dst: strvec_push
      Src: /src/git/git.c:881,1
    - Dst: strvec_pushv
      Src: /src/git/git.c:882,1
    - Dst: trace_argv_printf
      Src: /src/git/git.c:884,1
    - Dst: run_command
      Src: /src/git/git.c:894,1
    - Dst: exit
      Src: /src/git/git.c:896,1
    - Dst: die
      Src: /src/git/git.c:897,1
    - Dst: execv_dashed_external
      Src: /src/git/git.c:901,1
    - Dst: handle_alias
      Src: /src/git/git.c:908,1
    - Dst: string_list_clear
      Src: /src/git/git.c:913,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 838
    functionDepth: 16
    functionLinenumber: 838
    functionLinenumberEnd: 916
    functionName: run_argv
    functionSourceFile: /src/git/git.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - string_list_clear
    - handle_builtin
    - die
    - execv_dashed_external
    - run_command
    - commit_pager_choice
    - is_deprecated_command
    - strvec_pushv
    - exit
    - handle_alias
    - get_builtin
    - trace2_cmd_name
    - trace_argv_printf
    linkageType: ''
    returnType: int
    signature: int run_argv(struct strvec *args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find_last_dir_sep
      Src: /src/git/git.c:928,1
    - Dst: trace_command_performance
      Src: /src/git/git.c:933,1
    - Dst: skip_prefix
      Src: /src/git/git.c:945,1
    - Dst: strvec_push
      Src: /src/git/git.c:946,1
    - Dst: strvec_pushv
      Src: /src/git/git.c:947,1
    - Dst: handle_builtin
      Src: /src/git/git.c:948,1
    - Dst: strvec_clear
      Src: /src/git/git.c:949,1
    - Dst: die
      Src: /src/git/git.c:950,1
    - Dst: _
      Src: /src/git/git.c:950,1
    - Dst: handle_options
      Src: /src/git/git.c:956,1
    - Dst: commit_pager_choice
      Src: /src/git/git.c:960,1
    - Dst: printf
      Src: /src/git/git.c:961,1
    - Dst: _
      Src: /src/git/git.c:961,1
    - Dst: list_common_cmds_help
      Src: /src/git/git.c:962,1
    - Dst: printf
      Src: /src/git/git.c:963,1
    - Dst: _
      Src: /src/git/git.c:963,1
    - Dst: exit
      Src: /src/git/git.c:964,1
    - Dst: strcmp
      Src: /src/git/git.c:967,1
    - Dst: strcmp
      Src: /src/git/git.c:967,1
    - Dst: strcmp
      Src: /src/git/git.c:969,1
    - Dst: strcmp
      Src: /src/git/git.c:969,1
    - Dst: setup_path
      Src: /src/git/git.c:980,1
    - Dst: strvec_push
      Src: /src/git/git.c:983,1
    - Dst: run_argv
      Src: /src/git/git.c:986,1
    - Dst: fprintf
      Src: /src/git/git.c:990,1
    - Dst: _
      Src: /src/git/git.c:990,1
    - Dst: strvec_clear
      Src: /src/git/git.c:993,1
    - Dst: exit
      Src: /src/git/git.c:994,1
    - Dst: help_unknown_cmd
      Src: /src/git/git.c:997,1
    - Dst: strvec_replace
      Src: /src/git/git.c:998,1
    - Dst: free
      Src: /src/git/git.c:999,1
    - Dst: fprintf
      Src: /src/git/git.c:1007,1
    - Dst: _
      Src: /src/git/git.c:1007,1
    - Dst: strerror
      Src: /src/git/git.c:1008,1
    - Dst: strvec_clear
      Src: /src/git/git.c:1009,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 918
    functionDepth: 17
    functionLinenumber: 918
    functionLinenumberEnd: 1012
    functionName: cmd_main
    functionSourceFile: /src/git/git.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - setup_path
    - strcmp
    - free
    - strvec_replace
    - printf
    - trace_command_performance
    - die
    - handle_options
    - commit_pager_choice
    - strerror
    - list_common_cmds_help
    - handle_builtin
    - strvec_pushv
    - _
    - skip_prefix
    - run_argv
    - exit
    - find_last_dir_sep
    - strvec_clear
    - help_unknown_cmd
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/git/common-init.c:28,1
    - Dst: sigaddset
      Src: /src/git/common-init.c:29,1
    - Dst: sigprocmask
      Src: /src/git/common-init.c:30,1
    - Dst: signal
      Src: /src/git/common-init.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: restore_sigpipe_to_default
    functionSourceFile: /src/git/common-init.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - sigprocmask
    - signal
    - sigaddset
    linkageType: ''
    returnType: void
    signature: void restore_sigpipe_to_default(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace2_initialize_clock
      Src: /src/git/common-init.c:38,1
    - Dst: sanitize_stdfds
      Src: /src/git/common-init.c:45,1
    - Dst: restore_sigpipe_to_default
      Src: /src/git/common-init.c:46,1
    - Dst: git_resolve_executable_dir
      Src: /src/git/common-init.c:48,1
    - Dst: setlocale
      Src: /src/git/common-init.c:50,1
    - Dst: git_setup_gettext
      Src: /src/git/common-init.c:51,1
    - Dst: initialize_repository
      Src: /src/git/common-init.c:53,1
    - Dst: attr_start
      Src: /src/git/common-init.c:55,1
    - Dst: trace2_initialize
      Src: /src/git/common-init.c:57,1
    - Dst: trace2_cmd_start
      Src: /src/git/common-init.c:58,1
    - Dst: trace2_collect_process_info
      Src: /src/git/common-init.c:59,1
    - Dst: strbuf_getcwd
      Src: /src/git/common-init.c:61,1
    - Dst: strbuf_detach
      Src: /src/git/common-init.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 63
    functionName: init_git
    functionSourceFile: /src/git/common-init.c
    functionUses: 1
    functionsReached:
    - trace2_initialize_clock
    - git_resolve_executable_dir
    - trace2_initialize
    - strbuf_getcwd
    - sanitize_stdfds
    - git_setup_gettext
    - attr_start
    - trace2_collect_process_info
    - strbuf_detach
    - restore_sigpipe_to_default
    - trace2_cmd_start
    - initialize_repository
    - setlocale
    linkageType: ''
    returnType: void
    signature: void init_git(const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_find_tracking
      Src: /src/git/branch.c:40,1
    - Dst: string_list_append_nodup
      Src: /src/git/branch.c:43,1
    - Dst: string_list_append
      Src: /src/git/branch.c:48,1
    - Dst: string_list_append
      Src: /src/git/branch.c:51,1
    - Dst: free
      Src: /src/git/branch.c:52,1
    - Dst: string_list_clear
      Src: /src/git/branch.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - remote
    - priv
    argTypes:
    - struct remote*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 35
    functionDepth: 9
    functionLinenumber: 35
    functionLinenumberEnd: 60
    functionName: find_tracked_branch
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_append_nodup
    - remote_find_tracking
    - string_list_append
    - free
    linkageType: ''
    returnType: int
    signature: int find_tracked_branch(struct remote *remote, void *priv)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - origin
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: should_setup_rebase
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int should_setup_rebase(const char *origin)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: should_setup_rebase
      Src: /src/git/branch.c:97,1
    - Dst: BUG
      Src: /src/git/branch.c:100,1
    - Dst: die
      Src: /src/git/branch.c:102,1
    - Dst: _
      Src: /src/git/branch.c:102,1
    - Dst: for_each_string_list_item
      Src: /src/git/branch.c:110,1
    - Dst: skip_prefix
      Src: /src/git/branch.c:111,1
    - Dst: strcmp
      Src: /src/git/branch.c:112,1
    - Dst: warning
      Src: /src/git/branch.c:113,1
    - Dst: _
      Src: /src/git/branch.c:113,1
    - Dst: strbuf_addf
      Src: /src/git/branch.c:118,1
    - Dst: repo_config_set_gently
      Src: /src/git/branch.c:119,1
    - Dst: strbuf_reset
      Src: /src/git/branch.c:122,1
    - Dst: strbuf_addf
      Src: /src/git/branch.c:123,1
    - Dst: repo_config_set_gently
      Src: /src/git/branch.c:130,1
    - Dst: for_each_string_list_item
      Src: /src/git/branch.c:132,1
    - Dst: repo_config_set_multivar_gently
      Src: /src/git/branch.c:133,1
    - Dst: strbuf_reset
      Src: /src/git/branch.c:137,1
    - Dst: strbuf_addf
      Src: /src/git/branch.c:138,1
    - Dst: repo_config_set_gently
      Src: /src/git/branch.c:139,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:142,1
    - Dst: skip_prefix
      Src: /src/git/branch.c:150,1
    - Dst: strbuf_addf
      Src: /src/git/branch.c:152,1
    - Dst: string_list_append_nodup
      Src: /src/git/branch.c:154,1
    - Dst: strbuf_detach
      Src: /src/git/branch.c:156,1
    - Dst: string_list_append
      Src: /src/git/branch.c:158,1
    - Dst: printf_ln
      Src: /src/git/branch.c:168,1
    - Dst: _
      Src: /src/git/branch.c:169,1
    - Dst: _
      Src: /src/git/branch.c:170,1
    - Dst: printf_ln
      Src: /src/git/branch.c:173,1
    - Dst: _
      Src: /src/git/branch.c:173,1
    - Dst: for_each_string_list_item
      Src: /src/git/branch.c:174,1
    - Dst: printf_ln
      Src: /src/git/branch.c:175,1
    - Dst: string_list_clear
      Src: /src/git/branch.c:178,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:184,1
    - Dst: error
      Src: /src/git/branch.c:185,1
    - Dst: _
      Src: /src/git/branch.c:185,1
    - Dst: advise
      Src: /src/git/branch.c:187,1
    - Dst: _
      Src: /src/git/branch.c:187,1
    - Dst: advise
      Src: /src/git/branch.c:190,1
    - Dst: advise
      Src: /src/git/branch.c:195,1
    - Dst: for_each_string_list_item
      Src: /src/git/branch.c:197,1
    - Dst: advise
      Src: /src/git/branch.c:198,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 4
    argNames:
    - flag
    - local
    - origin
    - remotes
    argTypes:
    - int
    - char*
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 203
    functionName: install_branch_config_multiple_remotes
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - BUG
    - strbuf_addf
    - strcmp
    - should_setup_rebase
    - error
    - strbuf_release
    - die
    - repo_config_set_multivar_gently
    - advise
    - string_list_clear
    - strbuf_detach
    - string_list_append
    - _
    - warning
    - skip_prefix
    - string_list_append_nodup
    - strbuf_reset
    - printf_ln
    - repo_config_set_gently
    linkageType: ''
    returnType: int
    signature: "int install_branch_config_multiple_remotes(int flag, const char *local,\n\t\tconst
      char *origin, struct string_list *remotes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/branch.c:150,1
    - Dst: strbuf_addf
      Src: /src/git/branch.c:152,1
    - Dst: string_list_append_nodup
      Src: /src/git/branch.c:154,1
    - Dst: strbuf_detach
      Src: /src/git/branch.c:156,1
    - Dst: string_list_append
      Src: /src/git/branch.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/branch.c
    functionUses: 39
    functionsReached:
    - string_list_append_nodup
    - strbuf_addf
    - strbuf_detach
    - string_list_append
    - skip_prefix
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, remotes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/branch.c:211,1
    - Dst: install_branch_config_multiple_remotes
      Src: /src/git/branch.c:212,1
    - Dst: string_list_clear
      Src: /src/git/branch.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - flag
    - local
    - origin
    - remote
    argTypes:
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: install_branch_config
    functionSourceFile: /src/git/branch.c
    functionUses: 1
    functionsReached:
    - install_branch_config_multiple_remotes
    - string_list_clear
    - string_list_append
    linkageType: ''
    returnType: int
    signature: "int install_branch_config(int flag, const char *local, const char
      *origin,\n\t\tconst char *remote)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/branch.c:224,1
    - Dst: branch_get
      Src: /src/git/branch.c:226,1
    - Dst: warning
      Src: /src/git/branch.c:228,1
    - Dst: _
      Src: /src/git/branch.c:228,1
    - Dst: warning
      Src: /src/git/branch.c:234,1
    - Dst: _
      Src: /src/git/branch.c:234,1
    - Dst: string_list_append
      Src: /src/git/branch.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - tracking
    - orig_ref
    argTypes:
    - struct tracking*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 217
    functionDepth: 17
    functionLinenumber: 217
    functionLinenumberEnd: 243
    functionName: inherit_tracking
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - branch_get
    - string_list_append
    - warning
    - skip_prefix
    - _
    linkageType: ''
    returnType: int
    signature: int inherit_tracking(struct tracking *tracking, const char *orig_ref)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/branch.c:264,1
    - Dst: memset
      Src: /src/git/branch.c:266,1
    - Dst: for_each_remote
      Src: /src/git/branch.c:270,1
    - Dst: inherit_tracking
      Src: /src/git/branch.c:271,1
    - Dst: die_message
      Src: /src/git/branch.c:294,1
    - Dst: _
      Src: /src/git/branch.c:294,1
    - Dst: advice_enabled
      Src: /src/git/branch.c:296,1
    - Dst: for_each_string_list_item
      Src: /src/git/branch.c:300,1
    - Dst: strbuf_addf
      Src: /src/git/branch.c:306,1
    - Dst: _
      Src: /src/git/branch.c:306,1
    - Dst: advise
      Src: /src/git/branch.c:312,1
    - Dst: _
      Src: /src/git/branch.c:312,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:322,1
    - Dst: exit
      Src: /src/git/branch.c:324,1
    - Dst: skip_prefix
      Src: /src/git/branch.c:336,1
    - Dst: strcmp
      Src: /src/git/branch.c:338,1
    - Dst: string_list_append
      Src: /src/git/branch.c:343,1
    - Dst: install_branch_config_multiple_remotes
      Src: /src/git/branch.c:344,1
    - Dst: exit
      Src: /src/git/branch.c:346,1
    - Dst: string_list_clear
      Src: /src/git/branch.c:349,1
    - Dst: string_list_clear
      Src: /src/git/branch.c:350,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 4
    argNames:
    - new_ref
    - orig_ref
    - track
    - quiet
    argTypes:
    - char*
    - char*
    - enum branch_track
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 252
    functionDepth: 18
    functionLinenumber: 252
    functionLinenumberEnd: 351
    functionName: setup_tracking
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - advise
    - for_each_string_list_item
    - memset
    - strbuf_release
    - string_list_clear
    - for_each_remote
    - install_branch_config_multiple_remotes
    - exit
    - strbuf_addf
    - strcmp
    - string_list_append
    - inherit_tracking
    - die_message
    - skip_prefix
    - BUG
    - advice_enabled
    - _
    linkageType: ''
    returnType: void
    signature: "void setup_tracking(const char *new_ref, const char *orig_ref,\n\t\t\t
      \  enum branch_track track, int quiet)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/branch.c:357,1
    - Dst: repo_config_get_string
      Src: /src/git/branch.c:358,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:359,1
    - Dst: strbuf_addstr
      Src: /src/git/branch.c:362,1
    - Dst: free
      Src: /src/git/branch.c:363,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - branch_name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 366
    functionName: read_branch_desc
    functionSourceFile: /src/git/branch.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - repo_config_get_string
    - strbuf_addstr
    - free
    linkageType: ''
    returnType: int
    signature: int read_branch_desc(struct strbuf *buf, const char *branch_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_branch_ref
      Src: /src/git/branch.c:375,1
    - Dst: die_message
      Src: /src/git/branch.c:376,1
    - Dst: _
      Src: /src/git/branch.c:376,1
    - Dst: advise_if_enabled
      Src: /src/git/branch.c:377,1
    - Dst: _
      Src: /src/git/branch.c:378,1
    - Dst: exit
      Src: /src/git/branch.c:379,1
    - Dst: refs_ref_exists
      Src: /src/git/branch.c:382,1
    - Dst: get_main_ref_store
      Src: /src/git/branch.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - ref
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 373
    functionDepth: 5
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: validate_branchname
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - exit
    - advise_if_enabled
    - _
    - refs_ref_exists
    - die_message
    - check_branch_ref
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int validate_branchname(const char *name, struct strbuf *ref)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees
      Src: /src/git/branch.c:397,1
    - Dst: strmap_put
      Src: /src/git/branch.c:409,1
    - Dst: xstrdup
      Src: /src/git/branch.c:411,1
    - Dst: free
      Src: /src/git/branch.c:412,1
    - Dst: wt_status_check_rebase
      Src: /src/git/branch.c:415,1
    - Dst: strbuf_addf
      Src: /src/git/branch.c:419,1
    - Dst: strmap_put
      Src: /src/git/branch.c:420,1
    - Dst: xstrdup
      Src: /src/git/branch.c:422,1
    - Dst: free
      Src: /src/git/branch.c:423,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:424,1
    - Dst: wt_status_state_free_buffers
      Src: /src/git/branch.c:426,1
    - Dst: wt_status_check_bisect
      Src: /src/git/branch.c:428,1
    - Dst: strbuf_addf
      Src: /src/git/branch.c:431,1
    - Dst: strmap_put
      Src: /src/git/branch.c:432,1
    - Dst: xstrdup
      Src: /src/git/branch.c:434,1
    - Dst: free
      Src: /src/git/branch.c:435,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:436,1
    - Dst: wt_status_state_free_buffers
      Src: /src/git/branch.c:438,1
    - Dst: get_worktree_git_dir
      Src: /src/git/branch.c:440,1
    - Dst: sequencer_get_update_refs_state
      Src: /src/git/branch.c:441,1
    - Dst: for_each_string_list_item
      Src: /src/git/branch.c:444,1
    - Dst: strmap_put
      Src: /src/git/branch.c:445,1
    - Dst: xstrdup
      Src: /src/git/branch.c:447,1
    - Dst: free
      Src: /src/git/branch.c:448,1
    - Dst: string_list_clear
      Src: /src/git/branch.c:450,1
    - Dst: free
      Src: /src/git/branch.c:453,1
    - Dst: free_worktrees
      Src: /src/git/branch.c:456,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 388
    functionDepth: 7
    functionLinenumber: 388
    functionLinenumberEnd: 457
    functionName: prepare_checked_out_branches
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - get_worktrees
    - strbuf_release
    - sequencer_get_update_refs_state
    - string_list_clear
    - free_worktrees
    - wt_status_check_rebase
    - strbuf_addf
    - get_worktree_git_dir
    - strmap_put
    - free
    - wt_status_state_free_buffers
    - wt_status_check_bisect
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void prepare_checked_out_branches(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_checked_out_branches
      Src: /src/git/branch.c:461,1
    - Dst: strmap_get
      Src: /src/git/branch.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 8
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: branch_checked_out
    functionSourceFile: /src/git/branch.c
    functionUses: 1
    functionsReached:
    - strmap_get
    - prepare_checked_out_branches
    linkageType: ''
    returnType: char
    signature: char *branch_checked_out(const char *refname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_branchname
      Src: /src/git/branch.c:474,1
    - Dst: die
      Src: /src/git/branch.c:478,1
    - Dst: _
      Src: /src/git/branch.c:478,1
    - Dst: strlen
      Src: /src/git/branch.c:479,1
    - Dst: branch_checked_out
      Src: /src/git/branch.c:481,1
    - Dst: die
      Src: /src/git/branch.c:482,1
    - Dst: _
      Src: /src/git/branch.c:482,1
    - Dst: strlen
      Src: /src/git/branch.c:484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - name
    - ref
    - force
    argTypes:
    - char*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 471
    functionDepth: 9
    functionLinenumber: 471
    functionLinenumberEnd: 487
    functionName: validate_new_branchname
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - die
    - strlen
    - validate_branchname
    - _
    - branch_checked_out
    linkageType: ''
    returnType: int
    signature: int validate_new_branchname(const char *name, struct strbuf *ref, int
      force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/branch.c:494,1
    - Dst: remote_find_tracking
      Src: /src/git/branch.c:496,1
    - Dst: free
      Src: /src/git/branch.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - remote
    - cb_data
    argTypes:
    - struct remote*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 489
    functionDepth: 9
    functionLinenumber: 489
    functionLinenumberEnd: 499
    functionName: check_tracking_branch
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - remote_find_tracking
    - memset
    - free
    linkageType: ''
    returnType: int
    signature: int check_tracking_branch(struct remote *remote, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_remote
      Src: /src/git/branch.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 14
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: validate_remote_tracking_branch
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - for_each_remote
    linkageType: ''
    returnType: int
    signature: int validate_remote_tracking_branch(char *ref)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_mb
      Src: /src/git/branch.c:552,1
    - Dst: die_message
      Src: /src/git/branch.c:554,1
    - Dst: _
      Src: /src/git/branch.c:554,1
    - Dst: advise_if_enabled
      Src: /src/git/branch.c:555,1
    - Dst: _
      Src: /src/git/branch.c:556,1
    - Dst: exit
      Src: /src/git/branch.c:557,1
    - Dst: die
      Src: /src/git/branch.c:559,1
    - Dst: _
      Src: /src/git/branch.c:559,1
    - Dst: repo_dwim_ref
      Src: /src/git/branch.c:562,1
    - Dst: strlen
      Src: /src/git/branch.c:562,1
    - Dst: die
      Src: /src/git/branch.c:567,1
    - Dst: _
      Src: /src/git/branch.c:567,1
    - Dst: starts_with
      Src: /src/git/branch.c:571,1
    - Dst: validate_remote_tracking_branch
      Src: /src/git/branch.c:572,1
    - Dst: die
      Src: /src/git/branch.c:574,1
    - Dst: _
      Src: /src/git/branch.c:574,1
    - Dst: FREE_AND_NULL
      Src: /src/git/branch.c:576,1
    - Dst: die
      Src: /src/git/branch.c:580,1
    - Dst: _
      Src: /src/git/branch.c:580,1
    - Dst: lookup_commit_reference
      Src: /src/git/branch.c:584,1
    - Dst: die
      Src: /src/git/branch.c:585,1
    - Dst: _
      Src: /src/git/branch.c:585,1
    - Dst: oidcpy
      Src: /src/git/branch.c:591,1
    - Dst: FREE_AND_NULL
      Src: /src/git/branch.c:593,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 5
    argNames:
    - r
    - start_name
    - track
    - out_real_ref
    - out_oid
    argTypes:
    - struct repository*
    - char*
    - enum branch_track
    - char**
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 539
    functionDepth: 15
    functionLinenumber: 539
    functionLinenumberEnd: 594
    functionName: dwim_branch_start
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - validate_remote_tracking_branch
    - die
    - repo_dwim_ref
    - oidcpy
    - lookup_commit_reference
    - exit
    - starts_with
    - advise_if_enabled
    - strlen
    - _
    - die_message
    - FREE_AND_NULL
    - repo_get_oid_mb
    linkageType: ''
    returnType: void
    signature: "void dwim_branch_start(struct repository *r, const char *start_name,\n\t\t\t
      \  enum branch_track track, char **out_real_ref,\n\t\t\t   struct object_id
      *out_oid)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/branch.c:611,1
    - Dst: BUG
      Src: /src/git/branch.c:613,1
    - Dst: validate_branchname
      Src: /src/git/branch.c:616,1
    - Dst: validate_new_branchname
      Src: /src/git/branch.c:617,1
    - Dst: dwim_branch_start
      Src: /src/git/branch.c:621,1
    - Dst: xstrfmt
      Src: /src/git/branch.c:629,1
    - Dst: xstrfmt
      Src: /src/git/branch.c:631,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/branch.c:632,1
    - Dst: get_main_ref_store
      Src: /src/git/branch.c:632,1
    - Dst: ref_transaction_update
      Src: /src/git/branch.c:635,1
    - Dst: null_oid
      Src: /src/git/branch.c:636,1
    - Dst: ref_transaction_commit
      Src: /src/git/branch.c:638,1
    - Dst: die
      Src: /src/git/branch.c:639,1
    - Dst: ref_transaction_free
      Src: /src/git/branch.c:640,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:641,1
    - Dst: free
      Src: /src/git/branch.c:642,1
    - Dst: setup_tracking
      Src: /src/git/branch.c:645,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:648,1
    - Dst: free
      Src: /src/git/branch.c:649,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 9
    argNames:
    - r
    - name
    - start_name
    - force
    - clobber_head_ok
    - reflog
    - quiet
    - track
    - dry_run
    argTypes:
    - struct repository*
    - char*
    - char*
    - int
    - int
    - int
    - int
    - enum branch_track
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 596
    functionDepth: 19
    functionLinenumber: 596
    functionLinenumberEnd: 650
    functionName: create_branch
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - dwim_branch_start
    - ref_transaction_commit
    - strbuf_release
    - setup_tracking
    - die
    - xstrfmt
    - ref_transaction_update
    - null_oid
    - validate_branchname
    - ref_transaction_free
    - validate_new_branchname
    - free
    - ref_store_transaction_begin
    - BUG
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void create_branch(struct repository *r,\n\t\t   const char *name,
      const char *start_name,\n\t\t   int force, int clobber_head_ok, int reflog,\n\t\t
      \  int quiet, enum branch_track track, int dry_run)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dwim_branch_start
      Src: /src/git/branch.c:657,1
    - Dst: setup_tracking
      Src: /src/git/branch.c:658,1
    - Dst: free
      Src: /src/git/branch.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - r
    - new_ref
    - orig_ref
    - track
    - quiet
    argTypes:
    - struct repository*
    - char*
    - char*
    - enum branch_track
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 652
    functionDepth: 19
    functionLinenumber: 652
    functionLinenumberEnd: 660
    functionName: dwim_and_setup_tracking
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - dwim_branch_start
    - setup_tracking
    - free
    linkageType: ''
    returnType: void
    signature: "void dwim_and_setup_tracking(struct repository *r, const char *new_ref,\n\t\t\t
      \    const char *orig_ref, enum branch_track track,\n\t\t\t     int quiet)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/branch.c:680,1
    - Dst: prepare_other_repo_env
      Src: /src/git/branch.c:685,1
    - Dst: strvec_pushl
      Src: /src/git/branch.c:696,1
    - Dst: strvec_push
      Src: /src/git/branch.c:698,1
    - Dst: strvec_push
      Src: /src/git/branch.c:700,1
    - Dst: strvec_push
      Src: /src/git/branch.c:702,1
    - Dst: strvec_push
      Src: /src/git/branch.c:704,1
    - Dst: strvec_push
      Src: /src/git/branch.c:708,1
    - Dst: strvec_push
      Src: /src/git/branch.c:712,1
    - Dst: BUG
      Src: /src/git/branch.c:715,1
    - Dst: strvec_push
      Src: /src/git/branch.c:718,1
    - Dst: strvec_pushl
      Src: /src/git/branch.c:729,1
    - Dst: start_command
      Src: /src/git/branch.c:731,1
    - Dst: finish_command
      Src: /src/git/branch.c:733,1
    - Dst: strbuf_read
      Src: /src/git/branch.c:734,1
    - Dst: strbuf_add_lines
      Src: /src/git/branch.c:735,1
    - Dst: fprintf
      Src: /src/git/branch.c:738,1
    - Dst: printf
      Src: /src/git/branch.c:740,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:742,1
    - Dst: strbuf_release
      Src: /src/git/branch.c:743,1
    - Dst: free
      Src: /src/git/branch.c:744,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 10
    argNames:
    - r
    - submodule
    - name
    - start_oid
    - tracking_name
    - force
    - reflog
    - quiet
    - track
    - dry_run
    argTypes:
    - struct repository*
    - struct submodule*
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - enum branch_track
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 669
    functionDepth: 7
    functionLinenumber: 669
    functionLinenumberEnd: 746
    functionName: submodule_create_branch
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - strbuf_read
    - finish_command
    - printf
    - xstrfmt
    - strvec_pushl
    - prepare_other_repo_env
    - strbuf_add_lines
    - free
    - BUG
    - fprintf
    - start_command
    linkageType: ''
    returnType: int
    signature: "int submodule_create_branch(struct repository *r,\n\t\t\t\t   const
      struct submodule *submodule,\n\t\t\t\t   const char *name, const char *start_oid,\n\t\t\t\t
      \  const char *tracking_name, int force,\n\t\t\t\t   int reflog, int quiet,\n\t\t\t\t
      \  enum branch_track track, int dry_run)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dwim_branch_start
      Src: /src/git/branch.c:760,1
    - Dst: submodules_of_tree
      Src: /src/git/branch.c:771,1
    - Dst: die_message
      Src: /src/git/branch.c:778,1
    - Dst: _
      Src: /src/git/branch.c:779,1
    - Dst: advice_enabled
      Src: /src/git/branch.c:781,1
    - Dst: advise
      Src: /src/git/branch.c:782,1
    - Dst: _
      Src: /src/git/branch.c:782,1
    - Dst: exit
      Src: /src/git/branch.c:784,1
    - Dst: submodule_create_branch
      Src: /src/git/branch.c:787,1
    - Dst: oid_to_hex
      Src: /src/git/branch.c:790,1
    - Dst: die
      Src: /src/git/branch.c:793,1
    - Dst: _
      Src: /src/git/branch.c:793,1
    - Dst: create_branch
      Src: /src/git/branch.c:798,1
    - Dst: setup_tracking
      Src: /src/git/branch.c:810,1
    - Dst: submodule_create_branch
      Src: /src/git/branch.c:813,1
    - Dst: oid_to_hex
      Src: /src/git/branch.c:816,1
    - Dst: die
      Src: /src/git/branch.c:819,1
    - Dst: _
      Src: /src/git/branch.c:819,1
    - Dst: submodule_entry_list_release
      Src: /src/git/branch.c:825,1
    - Dst: free
      Src: /src/git/branch.c:826,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 9
    argNames:
    - r
    - name
    - start_committish
    - tracking_name
    - force
    - reflog
    - quiet
    - track
    - dry_run
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - enum branch_track
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 748
    functionDepth: 20
    functionLinenumber: 748
    functionLinenumberEnd: 827
    functionName: create_branches_recursively
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - dwim_branch_start
    - advise
    - setup_tracking
    - oid_to_hex
    - die
    - exit
    - free
    - submodule_create_branch
    - submodules_of_tree
    - create_branch
    - _
    - submodule_entry_list_release
    - die_message
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: "void create_branches_recursively(struct repository *r, const char
      *name,\n\t\t\t\t const char *start_committish,\n\t\t\t\t const char *tracking_name,
      int force,\n\t\t\t\t int reflog, int quiet, enum branch_track track,\n\t\t\t\t
      int dry_run)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/git/branch.c:831,1
    - Dst: git_path_merge_head
      Src: /src/git/branch.c:831,1
    - Dst: unlink
      Src: /src/git/branch.c:832,1
    - Dst: git_path_merge_rr
      Src: /src/git/branch.c:832,1
    - Dst: unlink
      Src: /src/git/branch.c:833,1
    - Dst: git_path_merge_msg
      Src: /src/git/branch.c:833,1
    - Dst: unlink
      Src: /src/git/branch.c:834,1
    - Dst: git_path_merge_mode
      Src: /src/git/branch.c:834,1
    - Dst: refs_delete_ref
      Src: /src/git/branch.c:835,1
    - Dst: get_main_ref_store
      Src: /src/git/branch.c:835,1
    - Dst: save_autostash_ref
      Src: /src/git/branch.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 829
    functionDepth: 11
    functionLinenumber: 829
    functionLinenumberEnd: 838
    functionName: remove_merge_branch_state
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - git_path_merge_mode
    - git_path_merge_rr
    - refs_delete_ref
    - git_path_merge_head
    - save_autostash_ref
    - git_path_merge_msg
    - get_main_ref_store
    - unlink
    linkageType: ''
    returnType: void
    signature: void remove_merge_branch_state(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sequencer_post_commit_cleanup
      Src: /src/git/branch.c:842,1
    - Dst: unlink
      Src: /src/git/branch.c:843,1
    - Dst: git_path_squash_msg
      Src: /src/git/branch.c:843,1
    - Dst: remove_merge_branch_state
      Src: /src/git/branch.c:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - verbose
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 840
    functionDepth: 12
    functionLinenumber: 840
    functionLinenumberEnd: 845
    functionName: remove_branch_state
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - git_path_squash_msg
    - sequencer_post_commit_cleanup
    - remove_merge_branch_state
    - unlink
    linkageType: ''
    returnType: void
    signature: void remove_branch_state(struct repository *r, int verbose)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees
      Src: /src/git/branch.c:849,1
    - Dst: is_shared_symref
      Src: /src/git/branch.c:855,1
    - Dst: skip_prefix
      Src: /src/git/branch.c:856,1
    - Dst: die
      Src: /src/git/branch.c:857,1
    - Dst: _
      Src: /src/git/branch.c:857,1
    - Dst: free_worktrees
      Src: /src/git/branch.c:862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - branch
    - ignore_current_worktree
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 863
    functionName: die_if_checked_out
    functionSourceFile: /src/git/branch.c
    functionUses: 0
    functionsReached:
    - get_worktrees
    - free_worktrees
    - die
    - is_shared_symref
    - _
    - skip_prefix
    linkageType: ''
    returnType: void
    signature: void die_if_checked_out(const char *branch, int ignore_current_worktree)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: CAP
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAP(cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/imap-send.c:180,1
    - Dst: ERR_error_string
      Src: /src/git/imap-send.c:180,1
    - Dst: ERR_get_error
      Src: /src/git/imap-send.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: ssl_socket_perror
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - ERR_error_string
    - ERR_get_error
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ssl_socket_perror(const char *func)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_error
      Src: /src/git/imap-send.c:188,1
    - Dst: perror
      Src: /src/git/imap-send.c:193,1
    - Dst: ssl_socket_perror
      Src: /src/git/imap-send.c:196,1
    - Dst: perror
      Src: /src/git/imap-send.c:203,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - func
    - sock
    - ret
    argTypes:
    - char*
    - struct imap_socket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 209
    functionName: socket_perror
    functionSourceFile: /src/git/imap-send.c
    functionUses: 1
    functionsReached:
    - ssl_socket_perror
    - SSL_get_error
    - perror
    - fprintf
    linkageType: ''
    returnType: void
    signature: void socket_perror(const char *func, struct imap_socket *sock, int
      ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/imap-send.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - use_tls_only
    argTypes:
    - struct imap_socket*
    - struct imap_server_conf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: ssl_socket_connect
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int ssl_socket_connect(struct imap_socket *sock UNUSED,\n\t\t\t      const
      struct imap_server_conf *cfg UNUSED,\n\t\t\t      int use_tls_only UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_get0_data
      Src: /src/git/imap-send.c:224,1
    - Dst: memchr
      Src: /src/git/imap-send.c:227,1
    - Dst: ASN1_STRING_length
      Src: /src/git/imap-send.c:227,1
    - Dst: strchr
      Src: /src/git/imap-send.c:232,1
    - Dst: strcasecmp
      Src: /src/git/imap-send.c:237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - host
    - asn1_str
    argTypes:
    - char*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 238
    functionName: host_matches
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - memchr
    - ASN1_STRING_get0_data
    - strcasecmp
    - strchr
    - ASN1_STRING_length
    linkageType: ''
    returnType: int
    signature: int host_matches(const char *host, const ASN1_STRING *asn1_str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/git/imap-send.c:250,1
    - Dst: X509_get_ext_d2i
      Src: /src/git/imap-send.c:254,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/git/imap-send.c:255,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/git/imap-send.c:258,1
    - Dst: GENERAL_NAME_get0_value
      Src: /src/git/imap-send.c:259,1
    - Dst: host_matches
      Src: /src/git/imap-send.c:261,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/git/imap-send.c:264,1
    - Dst: X509_get_subject_name
      Src: /src/git/imap-send.c:270,1
    - Dst: error
      Src: /src/git/imap-send.c:271,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/git/imap-send.c:272,1
    - Dst: X509_NAME_get_entry
      Src: /src/git/imap-send.c:273,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/git/imap-send.c:274,1
    - Dst: error
      Src: /src/git/imap-send.c:275,1
    - Dst: host_matches
      Src: /src/git/imap-send.c:276,1
    - Dst: error
      Src: /src/git/imap-send.c:278,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/git/imap-send.c:279,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - cert
    - hostname
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 280
    functionName: verify_hostname
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - error
    - STACK_OF
    - ASN1_STRING_get0_data
    - GENERAL_NAME_get0_value
    - sk_GENERAL_NAME_num
    - X509_get_subject_name
    - X509_NAME_get_entry
    - host_matches
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_pop_free
    - X509_get_ext_d2i
    - X509_NAME_get_index_by_NID
    - X509_NAME_ENTRY_get_data
    linkageType: ''
    returnType: int
    signature: int verify_hostname(X509 *cert, const char *hostname)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SSL_library_init
      Src: /src/git/imap-send.c:295,1
    - Dst: SSL_load_error_strings
      Src: /src/git/imap-send.c:296,1
    - Dst: SSLv23_method
      Src: /src/git/imap-send.c:298,1
    - Dst: ssl_socket_perror
      Src: /src/git/imap-send.c:300,1
    - Dst: SSL_CTX_new
      Src: /src/git/imap-send.c:304,1
    - Dst: ssl_socket_perror
      Src: /src/git/imap-send.c:306,1
    - Dst: SSL_CTX_set_options
      Src: /src/git/imap-send.c:311,1
    - Dst: SSL_CTX_set_verify
      Src: /src/git/imap-send.c:314,1
    - Dst: SSL_CTX_set_default_verify_paths
      Src: /src/git/imap-send.c:316,1
    - Dst: ssl_socket_perror
      Src: /src/git/imap-send.c:317,1
    - Dst: SSL_new
      Src: /src/git/imap-send.c:320,1
    - Dst: ssl_socket_perror
      Src: /src/git/imap-send.c:322,1
    - Dst: SSL_set_rfd
      Src: /src/git/imap-send.c:325,1
    - Dst: ssl_socket_perror
      Src: /src/git/imap-send.c:326,1
    - Dst: SSL_set_wfd
      Src: /src/git/imap-send.c:329,1
    - Dst: ssl_socket_perror
      Src: /src/git/imap-send.c:330,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/git/imap-send.c:340,1
    - Dst: warning
      Src: /src/git/imap-send.c:342,1
    - Dst: SSL_connect
      Src: /src/git/imap-send.c:345,1
    - Dst: socket_perror
      Src: /src/git/imap-send.c:347,1
    - Dst: SSL_get_peer_certificate
      Src: /src/git/imap-send.c:353,1
    - Dst: error
      Src: /src/git/imap-send.c:355,1
    - Dst: SSL_get_verify_result
      Src: /src/git/imap-send.c:356,1
    - Dst: error
      Src: /src/git/imap-send.c:357,1
    - Dst: verify_hostname
      Src: /src/git/imap-send.c:358,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 3
    argNames:
    - sock
    - cfg
    - use_tls_only
    argTypes:
    - struct imap_socket*
    - struct imap_server_conf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 363
    functionName: ssl_socket_connect
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - SSL_set_rfd
    - SSL_CTX_set_default_verify_paths
    - verify_hostname
    - SSL_set_wfd
    - SSL_CTX_set_options
    - SSL_set_tlsext_host_name
    - SSL_connect
    - error
    - SSL_get_verify_result
    - SSLv23_method
    - SSL_load_error_strings
    - ssl_socket_perror
    - SSL_CTX_new
    - socket_perror
    - SSL_new
    - warning
    - SSL_get_peer_certificate
    - SSL_library_init
    - SSL_CTX_set_verify
    linkageType: ''
    returnType: int
    signature: "int ssl_socket_connect(struct imap_socket *sock,\n\t\t\t      const
      struct imap_server_conf *cfg,\n\t\t\t      int use_tls_only)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_read
      Src: /src/git/imap-send.c:371,1
    - Dst: xread
      Src: /src/git/imap-send.c:374,1
    - Dst: socket_perror
      Src: /src/git/imap-send.c:376,1
    - Dst: close
      Src: /src/git/imap-send.c:377,1
    - Dst: close
      Src: /src/git/imap-send.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - sock
    - buf
    - len
    argTypes:
    - struct imap_socket*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 382
    functionName: socket_read
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - socket_perror
    - xread
    - SSL_read
    - close
    linkageType: ''
    returnType: int
    signature: int socket_read(struct imap_socket *sock, char *buf, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_write
      Src: /src/git/imap-send.c:389,1
    - Dst: write_in_full
      Src: /src/git/imap-send.c:392,1
    - Dst: socket_perror
      Src: /src/git/imap-send.c:394,1
    - Dst: close
      Src: /src/git/imap-send.c:395,1
    - Dst: close
      Src: /src/git/imap-send.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - sock
    - buf
    - len
    argTypes:
    - struct imap_socket*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 384
    functionDepth: 4
    functionLinenumber: 384
    functionLinenumberEnd: 400
    functionName: socket_write
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - write_in_full
    - socket_perror
    - SSL_write
    - close
    linkageType: ''
    returnType: int
    signature: int socket_write(struct imap_socket *sock, const char *buf, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_shutdown
      Src: /src/git/imap-send.c:406,1
    - Dst: SSL_free
      Src: /src/git/imap-send.c:407,1
    - Dst: close
      Src: /src/git/imap-send.c:410,1
    - Dst: close
      Src: /src/git/imap-send.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct imap_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 412
    functionName: socket_shutdown
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - close
    - SSL_shutdown
    - SSL_free
    linkageType: ''
    returnType: void
    signature: void socket_shutdown(struct imap_socket *sock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/imap-send.c:429,1
    - Dst: memmove
      Src: /src/git/imap-send.c:433,1
    - Dst: socket_read
      Src: /src/git/imap-send.c:439,1
    - Dst: assert
      Src: /src/git/imap-send.c:449,1
    - Dst: strstr
      Src: /src/git/imap-send.c:453,1
    - Dst: puts
      Src: /src/git/imap-send.c:454,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - b
    - s
    argTypes:
    - struct imap_buffer*
    - char**
    assertStmts:
    - condition: (start <= b->bytes)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/git/imap-send.c
    - condition: (b->offset + 1 < b->bytes)
      pos:
        line_end: 448
        line_start: 448
        source_file: /src/git/imap-send.c
    constantsTouched: []
    func_position:
      end: 462
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 462
    functionName: buffer_gets
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - socket_read
    - assert
    - strstr
    - puts
    - memmove
    linkageType: ''
    returnType: int
    signature: int buffer_gets(struct imap_buffer *b, char **s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/imap-send.c:464,1
    - Dst: va_start
      Src: /src/git/imap-send.c:470,1
    - Dst: vprintf
      Src: /src/git/imap-send.c:471,1
    - Dst: va_end
      Src: /src/git/imap-send.c:472,1
    - Dst: fflush
      Src: /src/git/imap-send.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 475
    functionName: imap_info
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - va_end
    - fflush
    - vprintf
    - va_start
    - format
    linkageType: ''
    returnType: void
    signature: void imap_info(const char *msg, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/imap-send.c:477,1
    - Dst: va_start
      Src: /src/git/imap-send.c:483,1
    - Dst: vfprintf
      Src: /src/git/imap-send.c:484,1
    - Dst: va_end
      Src: /src/git/imap-send.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 487
    functionName: imap_warn
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - vfprintf
    - format
    linkageType: ''
    returnType: void
    signature: void imap_warn(const char *msg, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/imap-send.c:495,1
    - Dst: strchr
      Src: /src/git/imap-send.c:504,1
    - Dst: isspace
      Src: /src/git/imap-send.c:507,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 517
    functionName: next_arg
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - isspace
    - strchr
    linkageType: ''
    returnType: char
    signature: char *next_arg(char **s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/imap-send.c:528,1
    - Dst: xstrvfmt
      Src: /src/git/imap-send.c:529,1
    - Dst: memset
      Src: /src/git/imap-send.c:535,1
    - Dst: get_cmd_result
      Src: /src/git/imap-send.c:538,1
    - Dst: strbuf_addf
      Src: /src/git/imap-send.c:541,1
    - Dst: strbuf_addf
      Src: /src/git/imap-send.c:543,1
    - Dst: CAP
      Src: /src/git/imap-send.c:544,1
    - Dst: die
      Src: /src/git/imap-send.c:546,1
    - Dst: printf
      Src: /src/git/imap-send.c:550,1
    - Dst: starts_with
      Src: /src/git/imap-send.c:551,1
    - Dst: printf
      Src: /src/git/imap-send.c:552,1
    - Dst: printf
      Src: /src/git/imap-send.c:554,1
    - Dst: socket_write
      Src: /src/git/imap-send.c:556,1
    - Dst: free
      Src: /src/git/imap-send.c:557,1
    - Dst: free
      Src: /src/git/imap-send.c:558,1
    - Dst: free
      Src: /src/git/imap-send.c:560,1
    - Dst: strbuf_release
      Src: /src/git/imap-send.c:561,1
    - Dst: strbuf_release
      Src: /src/git/imap-send.c:564,1
    - Dst: CAP
      Src: /src/git/imap-send.c:566,1
    - Dst: socket_write
      Src: /src/git/imap-send.c:567,1
    - Dst: free
      Src: /src/git/imap-send.c:568,1
    - Dst: socket_write
      Src: /src/git/imap-send.c:570,1
    - Dst: free
      Src: /src/git/imap-send.c:571,1
    - Dst: free
      Src: /src/git/imap-send.c:572,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 4
    argNames:
    - ctx
    - cb
    - fmt
    - ap
    argTypes:
    - struct imap_store*
    - struct imap_cmd_cb*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 519
    functionDepth: 5
    functionLinenumber: 519
    functionLinenumberEnd: 585
    functionName: issue_imap_cmd
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - memset
    - strbuf_release
    - die
    - CAP
    - strbuf_addf
    - starts_with
    - get_cmd_result
    - xmalloc
    - free
    - socket_write
    - xstrvfmt
    - printf
    linkageType: ''
    returnType: struct imap_cmd
    signature: "struct imap_cmd *issue_imap_cmd(struct imap_store *ctx,\n\t\t\t\t
      \      struct imap_cmd_cb *cb,\n\t\t\t\t       const char *fmt, va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/imap-send.c:587,1
    - Dst: va_start
      Src: /src/git/imap-send.c:594,1
    - Dst: issue_imap_cmd
      Src: /src/git/imap-send.c:595,1
    - Dst: va_end
      Src: /src/git/imap-send.c:596,1
    - Dst: get_cmd_result
      Src: /src/git/imap-send.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - cb
    - fmt
    argTypes:
    - struct imap_store*
    - struct imap_cmd_cb*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 587
    functionDepth: 6
    functionLinenumber: 587
    functionLinenumberEnd: 601
    functionName: imap_exec
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - issue_imap_cmd
    - va_end
    - get_cmd_result
    - va_start
    - format
    linkageType: ''
    returnType: int
    signature: "int imap_exec(struct imap_store *ctx, struct imap_cmd_cb *cb,\n\t\t
      \    const char *fmt, ...)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/imap-send.c:603,1
    - Dst: va_start
      Src: /src/git/imap-send.c:610,1
    - Dst: issue_imap_cmd
      Src: /src/git/imap-send.c:611,1
    - Dst: va_end
      Src: /src/git/imap-send.c:612,1
    - Dst: get_cmd_result
      Src: /src/git/imap-send.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - cb
    - fmt
    argTypes:
    - struct imap_store*
    - struct imap_cmd_cb*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 603
    functionDepth: 6
    functionLinenumber: 603
    functionLinenumberEnd: 621
    functionName: imap_exec_m
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - issue_imap_cmd
    - va_end
    - get_cmd_result
    - va_start
    - format
    linkageType: ''
    returnType: int
    signature: "int imap_exec_m(struct imap_store *ctx, struct imap_cmd_cb *cb,\n\t\t
      \      const char *fmt, ...)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/imap-send.c:628,1
    - Dst: skip_imap_list_l
      Src: /src/git/imap-send.c:637,1
    - Dst: isspace
      Src: /src/git/imap-send.c:648,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 2
    argNames:
    - sp
    - level
    argTypes:
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 663
    functionName: skip_imap_list_l
    functionSourceFile: /src/git/imap-send.c
    functionUses: 1
    functionsReached:
    - isspace
    - skip_imap_list_l
    linkageType: ''
    returnType: int
    signature: int skip_imap_list_l(char **sp, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_imap_list_l
      Src: /src/git/imap-send.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: skip_list
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - skip_imap_list_l
    linkageType: ''
    returnType: void
    signature: void skip_list(char **sp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: next_arg
      Src: /src/git/imap-send.c:676,1
    - Dst: ARRAY_SIZE
      Src: /src/git/imap-send.c:677,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - imap
    - cmd
    argTypes:
    - struct imap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 681
    functionName: parse_capability
    functionSourceFile: /src/git/imap-send.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - next_arg
    - strcmp
    linkageType: ''
    returnType: void
    signature: void parse_capability(struct imap *imap, char *cmd)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/imap-send.c:692,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:693,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:697,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:699,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:702,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:703,1
    - Dst: strtol_i
      Src: /src/git/imap-send.c:703,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:704,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:707,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:708,1
    - Dst: strtol_i
      Src: /src/git/imap-send.c:708,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:709,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:712,1
    - Dst: parse_capability
      Src: /src/git/imap-send.c:713,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:714,1
    - Dst: isspace
      Src: /src/git/imap-send.c:718,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:719,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:720,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:721,1
    - Dst: strtol_i
      Src: /src/git/imap-send.c:721,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:722,1
    - Dst: strtol_i
      Src: /src/git/imap-send.c:722,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:723,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - cb
    - s
    argTypes:
    - struct imap_store*
    - struct imap_cmd_cb*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 728
    functionName: parse_response_code
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - isspace
    - parse_capability
    - strtol_i
    - strchr
    - strcmp
    - next_arg
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int parse_response_code(struct imap_store *ctx, struct imap_cmd_cb
      *cb,\n\t\t\t       char *s)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: buffer_gets
      Src: /src/git/imap-send.c:739,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:742,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:744,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:748,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:750,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:754,1
    - Dst: skip_list
      Src: /src/git/imap-send.c:756,1
    - Dst: skip_list
      Src: /src/git/imap-send.c:757,1
    - Dst: skip_list
      Src: /src/git/imap-send.c:758,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:759,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:759,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:760,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:760,1
    - Dst: parse_response_code
      Src: /src/git/imap-send.c:761,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:763,1
    - Dst: parse_capability
      Src: /src/git/imap-send.c:764,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:765,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:778,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:782,1
    - Dst: socket_write
      Src: /src/git/imap-send.c:790,1
    - Dst: FREE_AND_NULL
      Src: /src/git/imap-send.c:791,1
    - Dst: struct imap_cmd*::cb::cont
      Src: /src/git/imap-send.c:795,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:798,1
    - Dst: socket_write
      Src: /src/git/imap-send.c:801,1
    - Dst: strtol_i
      Src: /src/git/imap-send.c:808,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:809,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:815,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:823,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:826,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:829,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:833,1
    - Dst: starts_with
      Src: /src/git/imap-send.c:834,1
    - Dst: parse_response_code
      Src: /src/git/imap-send.c:838,1
    - Dst: free
      Src: /src/git/imap-send.c:840,1
    - Dst: free
      Src: /src/git/imap-send.c:841,1
    - Dst: free
      Src: /src/git/imap-send.c:842,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 96
    argCount: 2
    argNames:
    - ctx
    - tcmd
    argTypes:
    - struct imap_store*
    - struct imap_cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 730
    functionDepth: 5
    functionLinenumber: 730
    functionLinenumberEnd: 848
    functionName: get_cmd_result
    functionSourceFile: /src/git/imap-send.c
    functionUses: 3
    functionsReached:
    - buffer_gets
    - skip_list
    - parse_capability
    - strtol_i
    - starts_with
    - struct imap_cmd*::cb::cont
    - strcmp
    - free
    - next_arg
    - socket_write
    - parse_response_code
    - FREE_AND_NULL
    - fprintf
    linkageType: ''
    returnType: int
    signature: int get_cmd_result(struct imap_store *ctx, struct imap_cmd *tcmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imap_exec
      Src: /src/git/imap-send.c:855,1
    - Dst: socket_shutdown
      Src: /src/git/imap-send.c:856,1
    - Dst: free
      Src: /src/git/imap-send.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct imap_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 850
    functionDepth: 7
    functionLinenumber: 850
    functionLinenumberEnd: 859
    functionName: imap_close_server
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - free
    - imap_exec
    - socket_shutdown
    linkageType: ''
    returnType: void
    signature: void imap_close_server(struct imap_store *ictx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imap_close_server
      Src: /src/git/imap-send.c:863,1
    - Dst: free
      Src: /src/git/imap-send.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct imap_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 861
    functionDepth: 8
    functionLinenumber: 861
    functionLinenumberEnd: 865
    functionName: imap_close_store
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - imap_close_server
    - free
    linkageType: ''
    returnType: void
    signature: void imap_close_store(struct imap_store *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 876
    functionName: hexchar
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char hexchar(unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 879
    functionName: ENCODED_SIZE
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODED_SIZE(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/imap-send.c:895,1
    - Dst: strbuf_addstr
      Src: /src/git/imap-send.c:896,1
    - Dst: strbuf_addch
      Src: /src/git/imap-send.c:897,1
    - Dst: strbuf_addstr
      Src: /src/git/imap-send.c:898,1
    - Dst: xmallocz
      Src: /src/git/imap-send.c:900,1
    - Dst: ENCODED_SIZE
      Src: /src/git/imap-send.c:900,1
    - Dst: EVP_EncodeBlock
      Src: /src/git/imap-send.c:901,1
    - Dst: strbuf_release
      Src: /src/git/imap-send.c:902,1
    - Dst: free
      Src: /src/git/imap-send.c:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - user
    - pass
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 879
    functionDepth: 9
    functionLinenumber: 879
    functionLinenumberEnd: 909
    functionName: plain_base64
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - xmallocz
    - ENCODED_SIZE
    - strbuf_addch
    - strbuf_addstr
    - free
    - EVP_EncodeBlock
    linkageType: ''
    returnType: char
    signature: char *plain_base64(const char *user, const char *pass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/imap-send.c:922,1
    - Dst: xmalloc
      Src: /src/git/imap-send.c:923,1
    - Dst: EVP_DecodeBlock
      Src: /src/git/imap-send.c:924,1
    - Dst: die
      Src: /src/git/imap-send.c:927,1
    - Dst: HMAC
      Src: /src/git/imap-send.c:928,1
    - Dst: EVP_md5
      Src: /src/git/imap-send.c:928,1
    - Dst: strlen
      Src: /src/git/imap-send.c:928,1
    - Dst: die
      Src: /src/git/imap-send.c:929,1
    - Dst: hexchar
      Src: /src/git/imap-send.c:933,1
    - Dst: hexchar
      Src: /src/git/imap-send.c:934,1
    - Dst: xstrfmt
      Src: /src/git/imap-send.c:938,1
    - Dst: strlen
      Src: /src/git/imap-send.c:939,1
    - Dst: xmallocz
      Src: /src/git/imap-send.c:941,1
    - Dst: ENCODED_SIZE
      Src: /src/git/imap-send.c:941,1
    - Dst: EVP_EncodeBlock
      Src: /src/git/imap-send.c:942,1
    - Dst: die
      Src: /src/git/imap-send.c:945,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - challenge_64
    - user
    - pass
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 911
    functionDepth: 9
    functionLinenumber: 911
    functionLinenumberEnd: 947
    functionName: cram
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - die
    - xmallocz
    - HMAC
    - EVP_DecodeBlock
    - xstrfmt
    - EVP_md5
    - hexchar
    - ENCODED_SIZE
    - strlen
    - xmalloc
    - EVP_EncodeBlock
    linkageType: ''
    returnType: char
    signature: char *cram(const char *challenge_64, const char *user, const char *pass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/imap-send.c:969,1
    - Dst: xmallocz
      Src: /src/git/imap-send.c:972,1
    - Dst: ENCODED_SIZE
      Src: /src/git/imap-send.c:972,1
    - Dst: strlen
      Src: /src/git/imap-send.c:972,1
    - Dst: EVP_EncodeBlock
      Src: /src/git/imap-send.c:973,1
    - Dst: strlen
      Src: /src/git/imap-send.c:973,1
    - Dst: free
      Src: /src/git/imap-send.c:974,1
    - Dst: free
      Src: /src/git/imap-send.c:977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - user
    - access_token
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 949
    functionDepth: 9
    functionLinenumber: 949
    functionLinenumberEnd: 981
    functionName: oauthbearer_base64
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - xmallocz
    - xstrfmt
    - ENCODED_SIZE
    - strlen
    - free
    - EVP_EncodeBlock
    linkageType: ''
    returnType: char
    signature: char *oauthbearer_base64(const char *user, const char *access_token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/imap-send.c:993,1
    - Dst: xmallocz
      Src: /src/git/imap-send.c:996,1
    - Dst: ENCODED_SIZE
      Src: /src/git/imap-send.c:996,1
    - Dst: strlen
      Src: /src/git/imap-send.c:996,1
    - Dst: EVP_EncodeBlock
      Src: /src/git/imap-send.c:997,1
    - Dst: strlen
      Src: /src/git/imap-send.c:997,1
    - Dst: free
      Src: /src/git/imap-send.c:998,1
    - Dst: free
      Src: /src/git/imap-send.c:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - user
    - access_token
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 983
    functionDepth: 9
    functionLinenumber: 983
    functionLinenumberEnd: 1005
    functionName: xoauth2_base64
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - xmallocz
    - xstrfmt
    - ENCODED_SIZE
    - strlen
    - free
    - EVP_EncodeBlock
    linkageType: ''
    returnType: char
    signature: char *xoauth2_base64(const char *user, const char *access_token)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: plain_base64
      Src: /src/git/imap-send.c:1012,1
    - Dst: error
      Src: /src/git/imap-send.c:1014,1
    - Dst: socket_write
      Src: /src/git/imap-send.c:1017,1
    - Dst: strlen
      Src: /src/git/imap-send.c:1017,1
    - Dst: strlen
      Src: /src/git/imap-send.c:1018,1
    - Dst: free
      Src: /src/git/imap-send.c:1019,1
    - Dst: error
      Src: /src/git/imap-send.c:1020,1
    - Dst: free
      Src: /src/git/imap-send.c:1023,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - prompt
    argTypes:
    - struct imap_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1007
    functionDepth: 10
    functionLinenumber: 1007
    functionLinenumberEnd: 1025
    functionName: auth_plain
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - error
    - plain_base64
    - strlen
    - free
    - socket_write
    linkageType: ''
    returnType: int
    signature: int auth_plain(struct imap_store *ctx, const char *prompt UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cram
      Src: /src/git/imap-send.c:1032,1
    - Dst: socket_write
      Src: /src/git/imap-send.c:1034,1
    - Dst: strlen
      Src: /src/git/imap-send.c:1034,1
    - Dst: strlen
      Src: /src/git/imap-send.c:1035,1
    - Dst: free
      Src: /src/git/imap-send.c:1036,1
    - Dst: error
      Src: /src/git/imap-send.c:1037,1
    - Dst: free
      Src: /src/git/imap-send.c:1040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - prompt
    argTypes:
    - struct imap_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1027
    functionDepth: 10
    functionLinenumber: 1027
    functionLinenumberEnd: 1043
    functionName: auth_cram_md5
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - error
    - cram
    - strlen
    - free
    - socket_write
    linkageType: ''
    returnType: int
    signature: int auth_cram_md5(struct imap_store *ctx, const char *prompt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oauthbearer_base64
      Src: /src/git/imap-send.c:1050,1
    - Dst: error
      Src: /src/git/imap-send.c:1052,1
    - Dst: socket_write
      Src: /src/git/imap-send.c:1055,1
    - Dst: strlen
      Src: /src/git/imap-send.c:1055,1
    - Dst: strlen
      Src: /src/git/imap-send.c:1056,1
    - Dst: free
      Src: /src/git/imap-send.c:1057,1
    - Dst: error
      Src: /src/git/imap-send.c:1058,1
    - Dst: free
      Src: /src/git/imap-send.c:1061,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - prompt
    argTypes:
    - struct imap_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1045
    functionDepth: 10
    functionLinenumber: 1045
    functionLinenumberEnd: 1063
    functionName: auth_oauthbearer
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - error
    - oauthbearer_base64
    - strlen
    - free
    - socket_write
    linkageType: ''
    returnType: int
    signature: int auth_oauthbearer(struct imap_store *ctx, const char *prompt UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xoauth2_base64
      Src: /src/git/imap-send.c:1070,1
    - Dst: error
      Src: /src/git/imap-send.c:1072,1
    - Dst: socket_write
      Src: /src/git/imap-send.c:1075,1
    - Dst: strlen
      Src: /src/git/imap-send.c:1075,1
    - Dst: strlen
      Src: /src/git/imap-send.c:1076,1
    - Dst: free
      Src: /src/git/imap-send.c:1077,1
    - Dst: error
      Src: /src/git/imap-send.c:1078,1
    - Dst: free
      Src: /src/git/imap-send.c:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - prompt
    argTypes:
    - struct imap_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1065
    functionDepth: 10
    functionLinenumber: 1065
    functionLinenumberEnd: 1083
    functionName: auth_xoauth2
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - error
    - strlen
    - xoauth2_base64
    - free
    - socket_write
    linkageType: ''
    returnType: int
    signature: int auth_xoauth2(struct imap_store *ctx, const char *prompt UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/imap-send.c:1099,1
    - Dst: xstrfmt
      Src: /src/git/imap-send.c:1100,1
    - Dst: xstrdup_or_null
      Src: /src/git/imap-send.c:1102,1
    - Dst: xstrdup_or_null
      Src: /src/git/imap-send.c:1103,1
    - Dst: credential_fill
      Src: /src/git/imap-send.c:1105,1
    - Dst: xstrdup
      Src: /src/git/imap-send.c:1108,1
    - Dst: xstrdup
      Src: /src/git/imap-send.c:1110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - srvc
    - cred
    argTypes:
    - struct imap_server_conf*
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1094
    functionDepth: 5
    functionLinenumber: 1094
    functionLinenumberEnd: 1111
    functionName: server_fill_credential
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - xstrdup_or_null
    - credential_fill
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void server_fill_credential(struct imap_server_conf *srvc, struct credential
      *cred)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAP
      Src: /src/git/imap-send.c:1122,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1123,1
    - Dst: NOT_CONSTANT
      Src: /src/git/imap-send.c:1131,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1132,1
    - Dst: imap_exec
      Src: /src/git/imap-send.c:1137,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - srvc
    - ctx
    - imap
    - auth_method
    - cap
    argTypes:
    - struct imap_server_conf*
    - struct imap_store*
    - struct imap*
    - char*
    - enum CAPABILITY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1113
    functionDepth: 7
    functionLinenumber: 1113
    functionLinenumberEnd: 1143
    functionName: try_auth_method
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - imap_exec
    - fprintf
    - CAP
    - NOT_CONSTANT
    linkageType: ''
    returnType: int
    signature: "int try_auth_method(struct imap_server_conf *srvc,\n\t\t\t   struct
      imap_store *ctx,\n\t\t\t   struct imap *imap,\n\t\t\t   const char *auth_method,\n\t\t\t
      \  enum CAPABILITY cap,\n\t\t\t   int (*fn)(struct imap_store *, const char
      *))"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/imap-send.c:1153,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/imap-send.c:1156,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1165,1
    - Dst: strvec_push
      Src: /src/git/imap-send.c:1167,1
    - Dst: start_command
      Src: /src/git/imap-send.c:1171,1
    - Dst: die
      Src: /src/git/imap-send.c:1172,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1177,1
    - Dst: xsnprintf
      Src: /src/git/imap-send.c:1184,1
    - Dst: memset
      Src: /src/git/imap-send.c:1186,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1190,1
    - Dst: getaddrinfo
      Src: /src/git/imap-send.c:1191,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1193,1
    - Dst: gai_strerror
      Src: /src/git/imap-send.c:1193,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1196,1
    - Dst: socket
      Src: /src/git/imap-send.c:1201,1
    - Dst: getnameinfo
      Src: /src/git/imap-send.c:1206,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1208,1
    - Dst: connect
      Src: /src/git/imap-send.c:1210,1
    - Dst: close
      Src: /src/git/imap-send.c:1211,1
    - Dst: perror
      Src: /src/git/imap-send.c:1213,1
    - Dst: freeaddrinfo
      Src: /src/git/imap-send.c:1219,1
    - Dst: memset
      Src: /src/git/imap-send.c:1224,1
    - Dst: htons
      Src: /src/git/imap-send.c:1225,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1228,1
    - Dst: gethostbyname
      Src: /src/git/imap-send.c:1229,1
    - Dst: perror
      Src: /src/git/imap-send.c:1231,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1234,1
    - Dst: socket
      Src: /src/git/imap-send.c:1238,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1240,1
    - Dst: inet_ntoa
      Src: /src/git/imap-send.c:1240,1
    - Dst: ntohs
      Src: /src/git/imap-send.c:1240,1
    - Dst: connect
      Src: /src/git/imap-send.c:1241,1
    - Dst: close
      Src: /src/git/imap-send.c:1242,1
    - Dst: perror
      Src: /src/git/imap-send.c:1244,1
    - Dst: fputs
      Src: /src/git/imap-send.c:1248,1
    - Dst: dup
      Src: /src/git/imap-send.c:1253,1
    - Dst: ssl_socket_connect
      Src: /src/git/imap-send.c:1256,1
    - Dst: close
      Src: /src/git/imap-send.c:1257,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1260,1
    - Dst: buffer_gets
      Src: /src/git/imap-send.c:1264,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1265,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:1268,1
    - Dst: next_arg
      Src: /src/git/imap-send.c:1269,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1270,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1274,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1276,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1277,1
    - Dst: parse_response_code
      Src: /src/git/imap-send.c:1280,1
    - Dst: imap_exec
      Src: /src/git/imap-send.c:1281,1
    - Dst: CAP
      Src: /src/git/imap-send.c:1286,1
    - Dst: imap_exec
      Src: /src/git/imap-send.c:1287,1
    - Dst: ssl_socket_connect
      Src: /src/git/imap-send.c:1289,1
    - Dst: imap_exec
      Src: /src/git/imap-send.c:1292,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1296,1
    - Dst: server_fill_credential
      Src: /src/git/imap-send.c:1297,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1300,1
    - Dst: try_auth_method
      Src: /src/git/imap-send.c:1301,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1303,1
    - Dst: try_auth_method
      Src: /src/git/imap-send.c:1304,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1306,1
    - Dst: try_auth_method
      Src: /src/git/imap-send.c:1307,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1309,1
    - Dst: try_auth_method
      Src: /src/git/imap-send.c:1310,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1313,1
    - Dst: CAP
      Src: /src/git/imap-send.c:1317,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1318,1
    - Dst: imap_warn
      Src: /src/git/imap-send.c:1323,1
    - Dst: imap_exec
      Src: /src/git/imap-send.c:1325,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1326,1
    - Dst: credential_approve
      Src: /src/git/imap-send.c:1333,1
    - Dst: credential_clear
      Src: /src/git/imap-send.c:1334,1
    - Dst: imap_exec
      Src: /src/git/imap-send.c:1338,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1343,1
    - Dst: imap_exec
      Src: /src/git/imap-send.c:1346,1
    - Dst: imap_info
      Src: /src/git/imap-send.c:1347,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1349,1
    - Dst: credential_reject
      Src: /src/git/imap-send.c:1360,1
    - Dst: credential_clear
      Src: /src/git/imap-send.c:1361,1
    - Dst: imap_close_store
      Src: /src/git/imap-send.c:1364,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 187
    argCount: 2
    argNames:
    - srvc
    - folder
    argTypes:
    - struct imap_server_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1145
    functionDepth: 9
    functionLinenumber: 1145
    functionLinenumberEnd: 1366
    functionName: imap_open_store
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - fputs
    - getaddrinfo
    - CAP
    - getnameinfo
    - ntohs
    - inet_ntoa
    - credential_clear
    - freeaddrinfo
    - xsnprintf
    - CALLOC_ARRAY
    - strcmp
    - die
    - imap_info
    - imap_close_store
    - server_fill_credential
    - next_arg
    - imap_warn
    - memset
    - start_command
    - dup
    - credential_approve
    - socket
    - credential_reject
    - connect
    - gethostbyname
    - buffer_gets
    - perror
    - imap_exec
    - try_auth_method
    - ssl_socket_connect
    - close
    - parse_response_code
    - gai_strerror
    - fprintf
    - htons
    linkageType: ''
    returnType: struct imap_store
    signature: struct imap_store *imap_open_store(struct imap_server_conf *srvc, const
      char *folder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmallocz
      Src: /src/git/imap-send.c:1386,1
    - Dst: strbuf_attach
      Src: /src/git/imap-send.c:1397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1372
    functionDepth: 9
    functionLinenumber: 1372
    functionLinenumberEnd: 1398
    functionName: lf_to_crlf
    functionSourceFile: /src/git/imap-send.c
    functionUses: 2
    functionsReached:
    - xmallocz
    - strbuf_attach
    linkageType: ''
    returnType: void
    signature: void lf_to_crlf(struct strbuf *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lf_to_crlf
      Src: /src/git/imap-send.c:1411,1
    - Dst: memset
      Src: /src/git/imap-send.c:1412,1
    - Dst: strbuf_detach
      Src: /src/git/imap-send.c:1415,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1418,1
    - Dst: imap_exec_m
      Src: /src/git/imap-send.c:1419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - msg
    argTypes:
    - struct imap_store*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1404
    functionDepth: 10
    functionLinenumber: 1404
    functionLinenumberEnd: 1425
    functionName: imap_store_msg
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - memset
    - lf_to_crlf
    - strcmp
    - strbuf_detach
    - imap_exec_m
    linkageType: ''
    returnType: int
    signature: int imap_store_msg(struct imap_store *ctx, struct strbuf *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/imap-send.c:1433,1
    - Dst: strbuf_add
      Src: /src/git/imap-send.c:1440,1
    - Dst: strbuf_addstr
      Src: /src/git/imap-send.c:1441,1
    - Dst: strbuf_addch
      Src: /src/git/imap-send.c:1442,1
    - Dst: strbuf_addstr
      Src: /src/git/imap-send.c:1443,1
    - Dst: strbuf_addstr_xml_quoted
      Src: /src/git/imap-send.c:1444,1
    - Dst: strbuf_addstr
      Src: /src/git/imap-send.c:1445,1
    - Dst: strbuf_release
      Src: /src/git/imap-send.c:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1427
    functionDepth: 4
    functionLinenumber: 1427
    functionLinenumberEnd: 1449
    functionName: wrap_in_html
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addstr_xml_quoted
    - strstr
    - strbuf_addch
    - strbuf_addstr
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void wrap_in_html(struct strbuf *msg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/imap-send.c:1457,1
    - Dst: starts_with
      Src: /src/git/imap-send.c:1458,1
    - Dst: strstr
      Src: /src/git/imap-send.c:1459,1
    - Dst: strstr
      Src: /src/git/imap-send.c:1462,1
    - Dst: strstr
      Src: /src/git/imap-send.c:1467,1
    - Dst: strstr
      Src: /src/git/imap-send.c:1469,1
    - Dst: strstr
      Src: /src/git/imap-send.c:1471,1
    - Dst: strstr
      Src: /src/git/imap-send.c:1477,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - all_msgs
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1483
    functionName: count_messages
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - strstr
    - starts_with
    linkageType: ''
    returnType: int
    signature: int count_messages(struct strbuf *all_msgs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/imap-send.c:1501,1
    - Dst: strchr
      Src: /src/git/imap-send.c:1504,1
    - Dst: strstr
      Src: /src/git/imap-send.c:1512,1
    - Dst: strbuf_add
      Src: /src/git/imap-send.c:1516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - all_msgs
    - msg
    - ofs
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1490
    functionDepth: 3
    functionLinenumber: 1490
    functionLinenumberEnd: 1519
    functionName: split_msg
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - strchr
    - strstr
    - strbuf_add
    - starts_with
    linkageType: ''
    returnType: int
    signature: int split_msg(struct strbuf *all_msgs, struct strbuf *msg, int *ofs)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/imap-send.c:1526,1
    - Dst: git_config_bool
      Src: /src/git/imap-send.c:1527,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1528,1
    - Dst: git_config_bool
      Src: /src/git/imap-send.c:1529,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1530,1
    - Dst: FREE_AND_NULL
      Src: /src/git/imap-send.c:1531,1
    - Dst: git_config_string
      Src: /src/git/imap-send.c:1532,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1533,1
    - Dst: FREE_AND_NULL
      Src: /src/git/imap-send.c:1534,1
    - Dst: git_config_string
      Src: /src/git/imap-send.c:1535,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1536,1
    - Dst: FREE_AND_NULL
      Src: /src/git/imap-send.c:1537,1
    - Dst: git_config_string
      Src: /src/git/imap-send.c:1538,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1539,1
    - Dst: FREE_AND_NULL
      Src: /src/git/imap-send.c:1540,1
    - Dst: git_config_string
      Src: /src/git/imap-send.c:1541,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1542,1
    - Dst: FREE_AND_NULL
      Src: /src/git/imap-send.c:1543,1
    - Dst: git_config_string
      Src: /src/git/imap-send.c:1544,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1545,1
    - Dst: git_config_int
      Src: /src/git/imap-send.c:1546,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1547,1
    - Dst: config_error_nonbool
      Src: /src/git/imap-send.c:1549,1
    - Dst: starts_with
      Src: /src/git/imap-send.c:1551,1
    - Dst: starts_with
      Src: /src/git/imap-send.c:1553,1
    - Dst: starts_with
      Src: /src/git/imap-send.c:1557,1
    - Dst: xstrdup
      Src: /src/git/imap-send.c:1559,1
    - Dst: git_default_config
      Src: /src/git/imap-send.c:1562,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 4
    argNames:
    - var
    - val
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1521
    functionDepth: 4
    functionLinenumber: 1521
    functionLinenumberEnd: 1566
    functionName: git_imap_config
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - git_config_string
    - starts_with
    - strcmp
    - git_default_config
    - git_config_bool
    - FREE_AND_NULL
    - config_error_nonbool
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int git_imap_config(const char *var, const char *val,\n\t\t\t   const
      struct config_context *ctx, void *cb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: imap_open_store
      Src: /src/git/imap-send.c:1577,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1579,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1584,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1589,1
    - Dst: split_msg
      Src: /src/git/imap-send.c:1591,1
    - Dst: wrap_in_html
      Src: /src/git/imap-send.c:1594,1
    - Dst: imap_store_msg
      Src: /src/git/imap-send.c:1595,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1600,1
    - Dst: imap_close_store
      Src: /src/git/imap-send.c:1602,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - server
    - all_msgs
    - total
    argTypes:
    - struct imap_server_conf*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1568
    functionDepth: 11
    functionLinenumber: 1568
    functionLinenumberEnd: 1605
    functionName: append_msgs_to_imap
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - imap_open_store
    - imap_close_store
    - imap_store_msg
    - split_msg
    - fprintf
    - wrap_in_html
    linkageType: ''
    returnType: int
    signature: "int append_msgs_to_imap(struct imap_server_conf *server,\n\t\t\t       struct
      strbuf* all_msgs, int total)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imap_open_store
      Src: /src/git/imap-send.c:1609,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1611,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1615,1
    - Dst: imap_exec
      Src: /src/git/imap-send.c:1617,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1618,1
    - Dst: imap_close_store
      Src: /src/git/imap-send.c:1619,1
    - Dst: imap_close_store
      Src: /src/git/imap-send.c:1623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - server
    argTypes:
    - struct imap_server_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1607
    functionDepth: 10
    functionLinenumber: 1607
    functionLinenumberEnd: 1625
    functionName: list_imap_folders
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - imap_exec
    - imap_open_store
    - fprintf
    - imap_close_store
    linkageType: ''
    returnType: int
    signature: int list_imap_folders(struct imap_server_conf *server)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/git/imap-send.c:1634,1
    - Dst: die
      Src: /src/git/imap-send.c:1635,1
    - Dst: curl_easy_init
      Src: /src/git/imap-send.c:1637,1
    - Dst: die
      Src: /src/git/imap-send.c:1640,1
    - Dst: server_fill_credential
      Src: /src/git/imap-send.c:1642,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1643,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1651,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1652,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1653,1
    - Dst: strbuf_addstr
      Src: /src/git/imap-send.c:1655,1
    - Dst: strbuf_addstr
      Src: /src/git/imap-send.c:1656,1
    - Dst: strbuf_addch
      Src: /src/git/imap-send.c:1658,1
    - Dst: curl_easy_escape
      Src: /src/git/imap-send.c:1661,1
    - Dst: die
      Src: /src/git/imap-send.c:1663,1
    - Dst: strbuf_addstr
      Src: /src/git/imap-send.c:1664,1
    - Dst: curl_free
      Src: /src/git/imap-send.c:1665,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1668,1
    - Dst: strbuf_release
      Src: /src/git/imap-send.c:1669,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1670,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1673,1
    - Dst: strcmp
      Src: /src/git/imap-send.c:1674,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1681,1
    - Dst: strbuf_addstr
      Src: /src/git/imap-send.c:1684,1
    - Dst: strbuf_addstr
      Src: /src/git/imap-send.c:1685,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1686,1
    - Dst: strbuf_release
      Src: /src/git/imap-send.c:1687,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1692,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1694,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1695,1
    - Dst: getenv
      Src: /src/git/imap-send.c:1697,1
    - Dst: http_trace_curl_no_data
      Src: /src/git/imap-send.c:1698,1
    - Dst: setup_curl_trace
      Src: /src/git/imap-send.c:1699,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - srvc
    - cred
    argTypes:
    - struct imap_server_conf*
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1628
    functionDepth: 6
    functionLinenumber: 1628
    functionLinenumberEnd: 1702
    functionName: setup_curl
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - curl_easy_escape
    - http_trace_curl_no_data
    - curl_global_init
    - server_fill_credential
    - strbuf_addch
    - curl_free
    - setup_curl_trace
    - strbuf_addstr
    - strcmp
    - getenv
    - curl_easy_init
    - curl_easy_setopt
    linkageType: ''
    returnType: CURL
    signature: CURL *setup_curl(struct imap_server_conf *srvc, struct credential *cred)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: setup_curl
      Src: /src/git/imap-send.c:1714,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1716,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1717,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1719,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1721,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1727,1
    - Dst: split_msg
      Src: /src/git/imap-send.c:1730,1
    - Dst: wrap_in_html
      Src: /src/git/imap-send.c:1733,1
    - Dst: lf_to_crlf
      Src: /src/git/imap-send.c:1734,1
    - Dst: curl_easy_setopt
      Src: /src/git/imap-send.c:1736,1
    - Dst: cast_size_t_to_curl_off_t
      Src: /src/git/imap-send.c:1737,1
    - Dst: curl_easy_perform
      Src: /src/git/imap-send.c:1739,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1742,1
    - Dst: curl_easy_strerror
      Src: /src/git/imap-send.c:1743,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1749,1
    - Dst: curl_easy_cleanup
      Src: /src/git/imap-send.c:1751,1
    - Dst: curl_global_cleanup
      Src: /src/git/imap-send.c:1752,1
    - Dst: credential_approve
      Src: /src/git/imap-send.c:1756,1
    - Dst: credential_reject
      Src: /src/git/imap-send.c:1758,1
    - Dst: credential_clear
      Src: /src/git/imap-send.c:1761,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - server
    - all_msgs
    - total
    argTypes:
    - struct imap_server_conf*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1704
    functionDepth: 10
    functionLinenumber: 1704
    functionLinenumberEnd: 1764
    functionName: curl_append_msgs_to_imap
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - credential_approve
    - lf_to_crlf
    - curl_easy_cleanup
    - curl_easy_strerror
    - curl_global_cleanup
    - credential_clear
    - setup_curl
    - cast_size_t_to_curl_off_t
    - split_msg
    - curl_easy_perform
    - credential_reject
    - fprintf
    - wrap_in_html
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: "int curl_append_msgs_to_imap(struct imap_server_conf *server,\n\t\t\t\t
      \   struct strbuf* all_msgs, int total)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/imap-send.c:1772,1
    - Dst: setup_curl
      Src: /src/git/imap-send.c:1773,1
    - Dst: curl_easy_perform
      Src: /src/git/imap-send.c:1774,1
    - Dst: curl_easy_cleanup
      Src: /src/git/imap-send.c:1776,1
    - Dst: curl_global_cleanup
      Src: /src/git/imap-send.c:1777,1
    - Dst: credential_approve
      Src: /src/git/imap-send.c:1781,1
    - Dst: credential_reject
      Src: /src/git/imap-send.c:1783,1
    - Dst: credential_clear
      Src: /src/git/imap-send.c:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - server
    argTypes:
    - struct imap_server_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1766
    functionDepth: 7
    functionLinenumber: 1766
    functionLinenumberEnd: 1789
    functionName: curl_list_imap_folders
    functionSourceFile: /src/git/imap-send.c
    functionUses: 0
    functionsReached:
    - credential_approve
    - curl_easy_cleanup
    - curl_global_cleanup
    - credential_clear
    - curl_easy_perform
    - credential_reject
    - fprintf
    - setup_curl
    linkageType: ''
    returnType: int
    signature: int curl_list_imap_folders(struct imap_server_conf *server)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory_gently
      Src: /src/git/imap-send.c:1802,1
    - Dst: repo_config
      Src: /src/git/imap-send.c:1803,1
    - Dst: parse_options
      Src: /src/git/imap-send.c:1805,1
    - Dst: free
      Src: /src/git/imap-send.c:1808,1
    - Dst: xstrdup
      Src: /src/git/imap-send.c:1809,1
    - Dst: usage_with_options
      Src: /src/git/imap-send.c:1813,1
    - Dst: warning
      Src: /src/git/imap-send.c:1817,1
    - Dst: warning
      Src: /src/git/imap-send.c:1822,1
    - Dst: error
      Src: /src/git/imap-send.c:1832,1
    - Dst: _
      Src: /src/git/imap-send.c:1832,1
    - Dst: advise
      Src: /src/git/imap-send.c:1833,1
    - Dst: _
      Src: /src/git/imap-send.c:1833,1
    - Dst: xstrdup
      Src: /src/git/imap-send.c:1838,1
    - Dst: list_imap_folders
      Src: /src/git/imap-send.c:1843,1
    - Dst: curl_list_imap_folders
      Src: /src/git/imap-send.c:1846,1
    - Dst: list_imap_folders
      Src: /src/git/imap-send.c:1849,1
    - Dst: error
      Src: /src/git/imap-send.c:1854,1
    - Dst: _
      Src: /src/git/imap-send.c:1854,1
    - Dst: advise
      Src: /src/git/imap-send.c:1855,1
    - Dst: _
      Src: /src/git/imap-send.c:1855,1
    - Dst: strbuf_read
      Src: /src/git/imap-send.c:1862,1
    - Dst: error_errno
      Src: /src/git/imap-send.c:1863,1
    - Dst: _
      Src: /src/git/imap-send.c:1863,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1869,1
    - Dst: count_messages
      Src: /src/git/imap-send.c:1874,1
    - Dst: fprintf
      Src: /src/git/imap-send.c:1876,1
    - Dst: append_msgs_to_imap
      Src: /src/git/imap-send.c:1884,1
    - Dst: curl_append_msgs_to_imap
      Src: /src/git/imap-send.c:1887,1
    - Dst: append_msgs_to_imap
      Src: /src/git/imap-send.c:1890,1
    - Dst: free
      Src: /src/git/imap-send.c:1893,1
    - Dst: free
      Src: /src/git/imap-send.c:1894,1
    - Dst: free
      Src: /src/git/imap-send.c:1895,1
    - Dst: free
      Src: /src/git/imap-send.c:1896,1
    - Dst: free
      Src: /src/git/imap-send.c:1897,1
    - Dst: free
      Src: /src/git/imap-send.c:1898,1
    - Dst: strbuf_release
      Src: /src/git/imap-send.c:1899,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1792
    functionDepth: 13
    functionLinenumber: 1792
    functionLinenumberEnd: 1901
    functionName: cmd_main
    functionSourceFile: /src/git/imap-send.c
    functionUses: 1
    functionsReached:
    - error_errno
    - parse_options
    - setup_git_directory_gently
    - append_msgs_to_imap
    - free
    - curl_append_msgs_to_imap
    - repo_config
    - usage_with_options
    - error
    - strbuf_release
    - advise
    - list_imap_folders
    - _
    - warning
    - xstrdup
    - strbuf_read
    - curl_list_imap_folders
    - count_messages
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: pack_version_ok
    functionSourceFile: /src/git/pack.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_version_ok(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: pack_version_ok_native
    functionSourceFile: /src/git/pack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_version_ok_native(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - is_reverse
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: list_for_each_dir
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_dir(pos, head, is_reverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - where
    argTypes:
    - enum trailer_where
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: after_or_end
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int after_or_end(enum trailer_where where)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/git/trailer.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - token
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: token_len_without_separator
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: size_t
    signature: size_t token_len_without_separator(const char *token, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: token_len_without_separator
      Src: /src/git/trailer.c:115,1
    - Dst: strlen
      Src: /src/git/trailer.c:115,1
    - Dst: token_len_without_separator
      Src: /src/git/trailer.c:116,1
    - Dst: strlen
      Src: /src/git/trailer.c:116,1
    - Dst: strncasecmp
      Src: /src/git/trailer.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct trailer_item*
    - struct arg_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: same_token
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - strlen
    - token_len_without_separator
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int same_token(struct trailer_item *a, struct arg_item *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/trailer.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct trailer_item*
    - struct arg_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: same_value
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int same_value(struct trailer_item *a, struct arg_item *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: same_token
      Src: /src/git/trailer.c:129,1
    - Dst: same_value
      Src: /src/git/trailer.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct trailer_item*
    - struct arg_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: same_trailer
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - same_token
    - same_value
    linkageType: ''
    returnType: int
    signature: int same_trailer(struct trailer_item *a, struct arg_item *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/trailer.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: is_blank_line
    functionSourceFile: /src/git/trailer.c
    functionUses: 3
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int is_blank_line(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/trailer.c:142,1
    - Dst: strbuf_splice
      Src: /src/git/trailer.c:144,1
    - Dst: strlen
      Src: /src/git/trailer.c:144,1
    - Dst: strlen
      Src: /src/git/trailer.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - sb
    - a
    - b
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: strbuf_replace
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - strlen
    - strbuf_splice
    - strstr
    linkageType: ''
    returnType: void
    signature: void strbuf_replace(struct strbuf *sb, const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/trailer.c:149,1
    - Dst: free
      Src: /src/git/trailer.c:150,1
    - Dst: free
      Src: /src/git/trailer.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct trailer_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: free_trailer_item
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_trailer_item(struct trailer_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/trailer.c:156,1
    - Dst: free
      Src: /src/git/trailer.c:157,1
    - Dst: free
      Src: /src/git/trailer.c:158,1
    - Dst: free
      Src: /src/git/trailer.c:159,1
    - Dst: free
      Src: /src/git/trailer.c:160,1
    - Dst: free
      Src: /src/git/trailer.c:161,1
    - Dst: free
      Src: /src/git/trailer.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct arg_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: free_arg_item
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_arg_item(struct arg_item *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/trailer.c:168,1
    - Dst: isspace
      Src: /src/git/trailer.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: last_non_space_char
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - isspace
    - strlen
    linkageType: ''
    returnType: char
    signature: char last_non_space_char(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/trailer.c:176,1
    - Dst: free_arg_item
      Src: /src/git/trailer.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - arg_tok
    argTypes:
    - struct arg_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 7
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: trailer_from_arg
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - free_arg_item
    - xcalloc
    linkageType: ''
    returnType: struct trailer_item
    signature: struct trailer_item *trailer_from_arg(struct arg_item *arg_tok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: after_or_end
      Src: /src/git/trailer.c:187,1
    - Dst: trailer_from_arg
      Src: /src/git/trailer.c:188,1
    - Dst: list_add
      Src: /src/git/trailer.c:190,1
    - Dst: list_add_tail
      Src: /src/git/trailer.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - on_tok
    - arg_tok
    argTypes:
    - struct trailer_item*
    - struct arg_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 8
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: add_arg_to_input_list
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - list_add_tail
    - trailer_from_arg
    - list_add
    - after_or_end
    linkageType: ''
    returnType: void
    signature: "void add_arg_to_input_list(struct trailer_item *on_tok,\n\t\t\t\t
      \ struct arg_item *arg_tok)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: same_trailer
      Src: /src/git/trailer.c:203,1
    - Dst: after_or_end
      Src: /src/git/trailer.c:209,1
    - Dst: list_entry
      Src: /src/git/trailer.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - in_tok
    - arg_tok
    - check_all
    - head
    argTypes:
    - struct trailer_item*
    - struct arg_item*
    - int
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 216
    functionName: check_if_different
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - after_or_end
    - same_trailer
    - list_entry
    linkageType: ''
    returnType: int
    signature: "int check_if_different(struct trailer_item *in_tok,\n\t\t\t      struct
      arg_item *arg_tok,\n\t\t\t      int check_all,\n\t\t\t      struct list_head
      *head)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:226,1
    - Dst: strvec_push
      Src: /src/git/trailer.c:227,1
    - Dst: strvec_push
      Src: /src/git/trailer.c:229,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:231,1
    - Dst: strbuf_replace
      Src: /src/git/trailer.c:233,1
    - Dst: strvec_push
      Src: /src/git/trailer.c:234,1
    - Dst: strvec_pushv
      Src: /src/git/trailer.c:236,1
    - Dst: capture_command
      Src: /src/git/trailer.c:240,1
    - Dst: error
      Src: /src/git/trailer.c:241,1
    - Dst: _
      Src: /src/git/trailer.c:241,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:242,1
    - Dst: xstrdup
      Src: /src/git/trailer.c:243,1
    - Dst: strbuf_trim
      Src: /src/git/trailer.c:245,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:246,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - conf
    - arg
    argTypes:
    - struct conf_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 251
    functionName: apply_command
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - strbuf_replace
    - strvec_push
    - error
    - strbuf_release
    - strvec_pushv
    - strbuf_trim
    - capture_command
    - strbuf_detach
    - strbuf_addstr
    - _
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *apply_command(struct conf_info *conf, const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/trailer.c:263,1
    - Dst: xstrdup
      Src: /src/git/trailer.c:265,1
    - Dst: apply_command
      Src: /src/git/trailer.c:269,1
    - Dst: free
      Src: /src/git/trailer.c:271,1
    - Dst: free
      Src: /src/git/trailer.c:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - in_tok
    - arg_tok
    argTypes:
    - struct trailer_item*
    - struct arg_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 253
    functionDepth: 5
    functionLinenumber: 253
    functionLinenumberEnd: 274
    functionName: apply_item_command
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - free
    - apply_command
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void apply_item_command(struct trailer_item *in_tok, struct arg_item
      *arg_tok)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: free_arg_item
      Src: /src/git/trailer.c:283,1
    - Dst: apply_item_command
      Src: /src/git/trailer.c:286,1
    - Dst: add_arg_to_input_list
      Src: /src/git/trailer.c:287,1
    - Dst: list_del
      Src: /src/git/trailer.c:288,1
    - Dst: free_trailer_item
      Src: /src/git/trailer.c:289,1
    - Dst: apply_item_command
      Src: /src/git/trailer.c:292,1
    - Dst: add_arg_to_input_list
      Src: /src/git/trailer.c:293,1
    - Dst: apply_item_command
      Src: /src/git/trailer.c:296,1
    - Dst: check_if_different
      Src: /src/git/trailer.c:297,1
    - Dst: add_arg_to_input_list
      Src: /src/git/trailer.c:298,1
    - Dst: free_arg_item
      Src: /src/git/trailer.c:300,1
    - Dst: apply_item_command
      Src: /src/git/trailer.c:303,1
    - Dst: check_if_different
      Src: /src/git/trailer.c:304,1
    - Dst: add_arg_to_input_list
      Src: /src/git/trailer.c:305,1
    - Dst: free_arg_item
      Src: /src/git/trailer.c:307,1
    - Dst: BUG
      Src: /src/git/trailer.c:310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - in_tok
    - arg_tok
    - on_tok
    - head
    argTypes:
    - struct trailer_item*
    - struct arg_item*
    - struct trailer_item*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 276
    functionDepth: 9
    functionLinenumber: 276
    functionLinenumberEnd: 313
    functionName: apply_arg_if_exists
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - check_if_different
    - free_trailer_item
    - free_arg_item
    - list_del
    - add_arg_to_input_list
    - apply_item_command
    - BUG
    linkageType: ''
    returnType: void
    signature: "void apply_arg_if_exists(struct trailer_item *in_tok,\n\t\t\t\tstruct
      arg_item *arg_tok,\n\t\t\t\tstruct trailer_item *on_tok,\n\t\t\t\tstruct list_head
      *head)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free_arg_item
      Src: /src/git/trailer.c:323,1
    - Dst: apply_item_command
      Src: /src/git/trailer.c:327,1
    - Dst: trailer_from_arg
      Src: /src/git/trailer.c:328,1
    - Dst: after_or_end
      Src: /src/git/trailer.c:329,1
    - Dst: list_add_tail
      Src: /src/git/trailer.c:330,1
    - Dst: list_add
      Src: /src/git/trailer.c:332,1
    - Dst: BUG
      Src: /src/git/trailer.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - head
    - arg_tok
    argTypes:
    - struct list_head*
    - struct arg_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 315
    functionDepth: 8
    functionLinenumber: 315
    functionLinenumberEnd: 338
    functionName: apply_arg_if_missing
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - trailer_from_arg
    - list_add_tail
    - free_arg_item
    - list_add
    - after_or_end
    - apply_item_command
    - BUG
    linkageType: ''
    returnType: void
    signature: "void apply_arg_if_missing(struct list_head *head,\n\t\t\t\t struct
      arg_item *arg_tok)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: after_or_end
      Src: /src/git/trailer.c:349,1
    - Dst: list_empty
      Src: /src/git/trailer.c:352,1
    - Dst: list_entry
      Src: /src/git/trailer.c:355,1
    - Dst: list_entry
      Src: /src/git/trailer.c:360,1
    - Dst: same_token
      Src: /src/git/trailer.c:361,1
    - Dst: apply_arg_if_exists
      Src: /src/git/trailer.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - head
    - arg_tok
    argTypes:
    - struct list_head*
    - struct arg_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 340
    functionDepth: 10
    functionLinenumber: 340
    functionLinenumberEnd: 368
    functionName: find_same_and_apply_arg
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - same_token
    - list_entry
    - list_empty
    - apply_arg_if_exists
    - after_or_end
    linkageType: ''
    returnType: int
    signature: "int find_same_and_apply_arg(struct list_head *head,\n\t\t\t\t   struct
      arg_item *arg_tok)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/trailer.c:360,1
    - Dst: same_token
      Src: /src/git/trailer.c:361,1
    - Dst: apply_arg_if_exists
      Src: /src/git/trailer.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 359
    functionDepth: 10
    functionLinenumber: 359
    functionLinenumberEnd: 366
    functionName: list_for_each_dir
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - apply_arg_if_exists
    - same_token
    - list_entry
    linkageType: ''
    returnType: void
    signature: void list_for_each_dir(pos, head, backwards)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/trailer.c:378,1
    - Dst: list_del
      Src: /src/git/trailer.c:380,1
    - Dst: find_same_and_apply_arg
      Src: /src/git/trailer.c:382,1
    - Dst: apply_arg_if_missing
      Src: /src/git/trailer.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - head
    - arg_head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 370
    functionDepth: 11
    functionLinenumber: 370
    functionLinenumberEnd: 387
    functionName: process_trailers_lists
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - list_del
    - apply_arg_if_missing
    - find_same_and_apply_arg
    - list_entry
    linkageType: ''
    returnType: void
    signature: "void process_trailers_lists(struct list_head *head,\n\t\t\t    struct
      list_head *arg_head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/trailer.c:378,1
    - Dst: list_del
      Src: /src/git/trailer.c:380,1
    - Dst: find_same_and_apply_arg
      Src: /src/git/trailer.c:382,1
    - Dst: apply_arg_if_missing
      Src: /src/git/trailer.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 376
    functionDepth: 11
    functionLinenumber: 376
    functionLinenumberEnd: 386
    functionName: list_for_each_safe
    functionSourceFile: /src/git/trailer.c
    functionUses: 1
    functionsReached:
    - list_del
    - apply_arg_if_missing
    - find_same_and_apply_arg
    - list_entry
    linkageType: ''
    returnType: void
    signature: void list_for_each_safe(pos, p, arg_head)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/trailer.c:393,1
    - Dst: strcasecmp
      Src: /src/git/trailer.c:395,1
    - Dst: strcasecmp
      Src: /src/git/trailer.c:397,1
    - Dst: strcasecmp
      Src: /src/git/trailer.c:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - item
    - value
    argTypes:
    - enum trailer_where*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 404
    functionName: trailer_set_where
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int trailer_set_where(enum trailer_where *item, const char *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/trailer.c:410,1
    - Dst: strcasecmp
      Src: /src/git/trailer.c:412,1
    - Dst: strcasecmp
      Src: /src/git/trailer.c:414,1
    - Dst: strcasecmp
      Src: /src/git/trailer.c:416,1
    - Dst: strcasecmp
      Src: /src/git/trailer.c:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - item
    - value
    argTypes:
    - enum trailer_if_exists*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 423
    functionName: trailer_set_if_exists
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int trailer_set_if_exists(enum trailer_if_exists *item, const char
      *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/trailer.c:429,1
    - Dst: strcasecmp
      Src: /src/git/trailer.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - item
    - value
    argTypes:
    - enum trailer_if_missing*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 436
    functionName: trailer_set_if_missing
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int trailer_set_if_missing(enum trailer_if_missing *item, const char
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/trailer.c:441,1
    - Dst: xstrdup_or_null
      Src: /src/git/trailer.c:442,1
    - Dst: xstrdup_or_null
      Src: /src/git/trailer.c:443,1
    - Dst: xstrdup_or_null
      Src: /src/git/trailer.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct conf_info*
    - struct conf_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 445
    functionName: duplicate_conf
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    linkageType: ''
    returnType: void
    signature: void duplicate_conf(struct conf_info *dst, const struct conf_info *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each
      Src: /src/git/trailer.c:453,1
    - Dst: list_entry
      Src: /src/git/trailer.c:454,1
    - Dst: strcasecmp
      Src: /src/git/trailer.c:455,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/trailer.c:460,1
    - Dst: duplicate_conf
      Src: /src/git/trailer.c:461,1
    - Dst: xstrdup
      Src: /src/git/trailer.c:462,1
    - Dst: list_add_tail
      Src: /src/git/trailer.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 467
    functionName: get_conf_item
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - list_for_each
    - list_add_tail
    - strcasecmp
    - list_entry
    - CALLOC_ARRAY
    - duplicate_conf
    - xstrdup
    linkageType: ''
    returnType: struct arg_item
    signature: struct arg_item *get_conf_item(const char *name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/trailer.c:490,1
    - Dst: strrchr
      Src: /src/git/trailer.c:493,1
    - Dst: strcmp
      Src: /src/git/trailer.c:495,1
    - Dst: trailer_set_where
      Src: /src/git/trailer.c:496,1
    - Dst: warning
      Src: /src/git/trailer.c:498,1
    - Dst: _
      Src: /src/git/trailer.c:498,1
    - Dst: strcmp
      Src: /src/git/trailer.c:500,1
    - Dst: trailer_set_if_exists
      Src: /src/git/trailer.c:501,1
    - Dst: warning
      Src: /src/git/trailer.c:503,1
    - Dst: _
      Src: /src/git/trailer.c:503,1
    - Dst: strcmp
      Src: /src/git/trailer.c:505,1
    - Dst: trailer_set_if_missing
      Src: /src/git/trailer.c:506,1
    - Dst: warning
      Src: /src/git/trailer.c:508,1
    - Dst: _
      Src: /src/git/trailer.c:508,1
    - Dst: strcmp
      Src: /src/git/trailer.c:510,1
    - Dst: config_error_nonbool
      Src: /src/git/trailer.c:512,1
    - Dst: xstrdup
      Src: /src/git/trailer.c:513,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - conf_key
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 517
    functionName: git_trailer_default_config
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - trailer_set_if_exists
    - strrchr
    - trailer_set_where
    - trailer_set_if_missing
    - warning
    - strcmp
    - config_error_nonbool
    - skip_prefix
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int git_trailer_default_config(const char *conf_key, const char *value,\n\t\t\t\t
      \     const struct config_context *ctx UNUSED,\n\t\t\t\t      void *cb UNUSED)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/trailer.c:529,1
    - Dst: strrchr
      Src: /src/git/trailer.c:532,1
    - Dst: ARRAY_SIZE
      Src: /src/git/trailer.c:537,1
    - Dst: strcmp
      Src: /src/git/trailer.c:538,1
    - Dst: xstrndup
      Src: /src/git/trailer.c:540,1
    - Dst: get_conf_item
      Src: /src/git/trailer.c:548,1
    - Dst: free
      Src: /src/git/trailer.c:550,1
    - Dst: warning
      Src: /src/git/trailer.c:555,1
    - Dst: _
      Src: /src/git/trailer.c:555,1
    - Dst: config_error_nonbool
      Src: /src/git/trailer.c:557,1
    - Dst: xstrdup
      Src: /src/git/trailer.c:558,1
    - Dst: warning
      Src: /src/git/trailer.c:562,1
    - Dst: _
      Src: /src/git/trailer.c:562,1
    - Dst: config_error_nonbool
      Src: /src/git/trailer.c:564,1
    - Dst: xstrdup
      Src: /src/git/trailer.c:565,1
    - Dst: warning
      Src: /src/git/trailer.c:569,1
    - Dst: _
      Src: /src/git/trailer.c:569,1
    - Dst: config_error_nonbool
      Src: /src/git/trailer.c:571,1
    - Dst: xstrdup
      Src: /src/git/trailer.c:572,1
    - Dst: trailer_set_where
      Src: /src/git/trailer.c:575,1
    - Dst: warning
      Src: /src/git/trailer.c:576,1
    - Dst: _
      Src: /src/git/trailer.c:576,1
    - Dst: trailer_set_if_exists
      Src: /src/git/trailer.c:579,1
    - Dst: warning
      Src: /src/git/trailer.c:580,1
    - Dst: _
      Src: /src/git/trailer.c:580,1
    - Dst: trailer_set_if_missing
      Src: /src/git/trailer.c:583,1
    - Dst: warning
      Src: /src/git/trailer.c:584,1
    - Dst: _
      Src: /src/git/trailer.c:584,1
    - Dst: BUG
      Src: /src/git/trailer.c:587,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 4
    argNames:
    - conf_key
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 519
    functionDepth: 11
    functionLinenumber: 519
    functionLinenumberEnd: 590
    functionName: git_trailer_config
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - trailer_set_if_exists
    - get_conf_item
    - strrchr
    - trailer_set_where
    - xstrndup
    - trailer_set_if_missing
    - warning
    - strcmp
    - free
    - config_error_nonbool
    - skip_prefix
    - BUG
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int git_trailer_config(const char *conf_key, const char *value,\n\t\t\t
      \     const struct config_context *ctx UNUSED,\n\t\t\t      void *cb UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/trailer.c:601,1
    - Dst: repo_config
      Src: /src/git/trailer.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 604
    functionName: trailer_config_init
    functionSourceFile: /src/git/trailer.c
    functionUses: 1
    functionsReached:
    - repo_config
    linkageType: ''
    returnType: void
    signature: void trailer_config_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - item
    - tok
    argTypes:
    - struct arg_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 613
    functionName: token_from_item
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *token_from_item(struct arg_item *item, char *tok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/git/trailer.c:617,1
    - Dst: strncasecmp
      Src: /src/git/trailer.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tok
    - item
    - tok_len
    argTypes:
    - char*
    - struct arg_item*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 620
    functionName: token_matches_item
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int token_matches_item(const char *tok, struct arg_item *item, size_t
      tok_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/trailer.c:638,1
    - Dst: isalnum
      Src: /src/git/trailer.c:640,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - line
    - separators
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 649
    functionName: find_separator
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - isalnum
    - strchr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t find_separator(const char *line, const char *separators)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/trailer.c:667,1
    - Dst: strbuf_trim
      Src: /src/git/trailer.c:668,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:669,1
    - Dst: strbuf_trim
      Src: /src/git/trailer.c:670,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:672,1
    - Dst: strbuf_trim
      Src: /src/git/trailer.c:673,1
    - Dst: token_len_without_separator
      Src: /src/git/trailer.c:677,1
    - Dst: list_for_each
      Src: /src/git/trailer.c:680,1
    - Dst: list_entry
      Src: /src/git/trailer.c:681,1
    - Dst: token_matches_item
      Src: /src/git/trailer.c:682,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:683,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:686,1
    - Dst: token_from_item
      Src: /src/git/trailer.c:686,1
    - Dst: free
      Src: /src/git/trailer.c:687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - tok
    - val
    - conf
    - trailer
    - separator_pos
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - struct conf_info**
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 658
    functionDepth: 4
    functionLinenumber: 658
    functionLinenumberEnd: 691
    functionName: parse_trailer
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - token_len_without_separator
    - list_for_each
    - token_from_item
    - list_entry
    - strbuf_trim
    - token_matches_item
    - strbuf_detach
    - strbuf_addstr
    - free
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void parse_trailer(struct strbuf *tok, struct strbuf *val,\n\t\t\t
      const struct conf_info **conf, const char *trailer,\n\t\t\t ssize_t separator_pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/trailer.c:696,1
    - Dst: list_add_tail
      Src: /src/git/trailer.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - head
    - tok
    - val
    argTypes:
    - struct list_head*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 693
    functionDepth: 7
    functionLinenumber: 693
    functionLinenumberEnd: 701
    functionName: add_trailer_item
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - list_add_tail
    - xcalloc
    linkageType: ''
    returnType: struct trailer_item
    signature: "struct trailer_item *add_trailer_item(struct list_head *head, char
      *tok,\n\t\t\t\t\t     char *val)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/trailer.c:707,1
    - Dst: duplicate_conf
      Src: /src/git/trailer.c:710,1
    - Dst: list_add_tail
      Src: /src/git/trailer.c:719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - arg_head
    - tok
    - val
    - conf
    - new_trailer_item
    argTypes:
    - struct list_head*
    - char*
    - char*
    - struct conf_info*
    - struct new_trailer_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 703
    functionDepth: 7
    functionLinenumber: 703
    functionLinenumberEnd: 720
    functionName: add_arg_item
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - list_add_tail
    - duplicate_conf
    - xcalloc
    linkageType: ''
    returnType: void
    signature: "void add_arg_item(struct list_head *arg_head, char *tok, char *val,\n\t\t\t
      const struct conf_info *conf,\n\t\t\t const struct new_trailer_item *new_trailer_item)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each
      Src: /src/git/trailer.c:728,1
    - Dst: list_entry
      Src: /src/git/trailer.c:729,1
    - Dst: add_arg_item
      Src: /src/git/trailer.c:731,1
    - Dst: xstrdup
      Src: /src/git/trailer.c:732,1
    - Dst: token_from_item
      Src: /src/git/trailer.c:732,1
    - Dst: xstrdup
      Src: /src/git/trailer.c:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - config_head
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 722
    functionDepth: 8
    functionLinenumber: 722
    functionLinenumberEnd: 736
    functionName: parse_trailers_from_config
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - list_for_each
    - add_arg_item
    - token_from_item
    - list_entry
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void parse_trailers_from_config(struct list_head *config_head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/trailer.c:750,1
    - Dst: list_entry
      Src: /src/git/trailer.c:755,1
    - Dst: find_separator
      Src: /src/git/trailer.c:756,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:760,1
    - Dst: strbuf_trim
      Src: /src/git/trailer.c:761,1
    - Dst: error
      Src: /src/git/trailer.c:762,1
    - Dst: _
      Src: /src/git/trailer.c:762,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:764,1
    - Dst: parse_trailer
      Src: /src/git/trailer.c:766,1
    - Dst: add_arg_item
      Src: /src/git/trailer.c:768,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:769,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:770,1
    - Dst: free
      Src: /src/git/trailer.c:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - arg_head
    - new_trailer_head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 738
    functionDepth: 8
    functionLinenumber: 738
    functionLinenumberEnd: 776
    functionName: parse_trailers_from_command_line_args
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - add_arg_item
    - xstrfmt
    - list_entry
    - find_separator
    - strbuf_trim
    - strbuf_detach
    - strbuf_addstr
    - _
    - free
    - parse_trailer
    linkageType: ''
    returnType: void
    signature: "void parse_trailers_from_command_line_args(struct list_head *arg_head,\n\t\t\t\t\t
      \  struct list_head *new_trailer_head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/trailer.c:755,1
    - Dst: find_separator
      Src: /src/git/trailer.c:756,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:760,1
    - Dst: strbuf_trim
      Src: /src/git/trailer.c:761,1
    - Dst: error
      Src: /src/git/trailer.c:762,1
    - Dst: _
      Src: /src/git/trailer.c:762,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:764,1
    - Dst: parse_trailer
      Src: /src/git/trailer.c:766,1
    - Dst: add_arg_item
      Src: /src/git/trailer.c:768,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:769,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 753
    functionDepth: 8
    functionLinenumber: 753
    functionLinenumberEnd: 773
    functionName: list_for_each
    functionSourceFile: /src/git/trailer.c
    functionUses: 6
    functionsReached:
    - error
    - strbuf_release
    - add_arg_item
    - list_entry
    - find_separator
    - strbuf_trim
    - strbuf_detach
    - strbuf_addstr
    - _
    - parse_trailer
    linkageType: ''
    returnType: void
    signature: void list_for_each(pos, new_trailer_head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trailer_config_init
      Src: /src/git/trailer.c:783,1
    - Dst: xstrfmt
      Src: /src/git/trailer.c:785,1
    - Dst: error
      Src: /src/git/trailer.c:792,1
    - Dst: _
      Src: /src/git/trailer.c:792,1
    - Dst: find_separator
      Src: /src/git/trailer.c:795,1
    - Dst: error
      Src: /src/git/trailer.c:797,1
    - Dst: _
      Src: /src/git/trailer.c:797,1
    - Dst: free
      Src: /src/git/trailer.c:803,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - cli_args
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 778
    functionDepth: 5
    functionLinenumber: 778
    functionLinenumberEnd: 805
    functionName: validate_trailer_args
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - error
    - xstrfmt
    - trailer_config_init
    - find_separator
    - _
    - free
    linkageType: ''
    returnType: int
    signature: int validate_trailer_args(const struct strvec *cli_args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/trailer.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 811
    functionName: next_line
    functionSourceFile: /src/git/trailer.c
    functionUses: 10
    functionsReached:
    - strchrnul
    linkageType: ''
    returnType: char
    signature: char *next_line(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 835
    functionName: last_line
    functionSourceFile: /src/git/trailer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t last_line(const char *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/trailer.c:864,1
    - Dst: next_line
      Src: /src/git/trailer.c:868,1
    - Dst: skip_prefix
      Src: /src/git/trailer.c:871,1
    - Dst: isspace
      Src: /src/git/trailer.c:871,1
    - Dst: ignored_log_message_bytes
      Src: /src/git/trailer.c:879,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - input
    - no_divider
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 880
    functionName: find_end_of_log_message
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - isspace
    - ignored_log_message_bytes
    - strlen
    - next_line
    - skip_prefix
    linkageType: ''
    returnType: size_t
    signature: size_t find_end_of_log_message(const char *input, int no_divider)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: next_line
      Src: /src/git/trailer.c:902,1
    - Dst: starts_with_mem
      Src: /src/git/trailer.c:903,1
    - Dst: is_blank_line
      Src: /src/git/trailer.c:905,1
    - Dst: last_line
      Src: /src/git/trailer.c:916,1
    - Dst: last_line
      Src: /src/git/trailer.c:918,1
    - Dst: starts_with_mem
      Src: /src/git/trailer.c:923,1
    - Dst: is_blank_line
      Src: /src/git/trailer.c:928,1
    - Dst: next_line
      Src: /src/git/trailer.c:934,1
    - Dst: next_line
      Src: /src/git/trailer.c:936,1
    - Dst: starts_with
      Src: /src/git/trailer.c:942,1
    - Dst: find_separator
      Src: /src/git/trailer.c:950,1
    - Dst: isspace
      Src: /src/git/trailer.c:951,1
    - Dst: list_for_each
      Src: /src/git/trailer.c:958,1
    - Dst: list_entry
      Src: /src/git/trailer.c:960,1
    - Dst: token_matches_item
      Src: /src/git/trailer.c:961,1
    - Dst: isspace
      Src: /src/git/trailer.c:967,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 979
    functionName: find_trailer_block_start
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - isspace
    - list_for_each
    - is_blank_line
    - last_line
    - starts_with
    - list_entry
    - find_separator
    - token_matches_item
    - starts_with_mem
    - next_line
    linkageType: ''
    returnType: size_t
    signature: size_t find_trailer_block_start(const char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: last_line
      Src: /src/git/trailer.c:983,1
    - Dst: is_blank_line
      Src: /src/git/trailer.c:986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 987
    functionName: ends_with_blank_line
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - is_blank_line
    - last_line
    linkageType: ''
    returnType: int
    signature: int ends_with_blank_line(const char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/trailer.c:999,1
    - Dst: strbuf_setlen
      Src: /src/git/trailer.c:1005,1
    - Dst: strbuf_trim
      Src: /src/git/trailer.c:1008,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - val
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 1009
    functionName: unfold_value
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_trim
    - strbuf_setlen
    linkageType: ''
    returnType: void
    signature: void unfold_value(struct strbuf *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/trailer.c:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1011
    functionDepth: 7
    functionLinenumber: 1011
    functionLinenumberEnd: 1015
    functionName: trailer_block_new
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct trailer_block
    signature: struct trailer_block *trailer_block_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trailer_block_new
      Src: /src/git/trailer.c:1020,1
    - Dst: trailer_config_init
      Src: /src/git/trailer.c:1027,1
    - Dst: find_end_of_log_message
      Src: /src/git/trailer.c:1029,1
    - Dst: find_trailer_block_start
      Src: /src/git/trailer.c:1030,1
    - Dst: strbuf_split_buf
      Src: /src/git/trailer.c:1032,1
    - Dst: isspace
      Src: /src/git/trailer.c:1037,1
    - Dst: strbuf_attach
      Src: /src/git/trailer.c:1039,1
    - Dst: strlen
      Src: /src/git/trailer.c:1039,1
    - Dst: strlen
      Src: /src/git/trailer.c:1039,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1040,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:1041,1
    - Dst: ALLOC_GROW
      Src: /src/git/trailer.c:1044,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:1045,1
    - Dst: find_separator
      Src: /src/git/trailer.c:1046,1
    - Dst: strbuf_list_free
      Src: /src/git/trailer.c:1051,1
    - Dst: ends_with_blank_line
      Src: /src/git/trailer.c:1053,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - opts
    - str
    argTypes:
    - struct process_trailer_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1017
    functionDepth: 8
    functionLinenumber: 1017
    functionLinenumberEnd: 1061
    functionName: trailer_block_get
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - isspace
    - ends_with_blank_line
    - strbuf_attach
    - trailer_config_init
    - find_separator
    - strlen
    - strbuf_addbuf
    - strbuf_list_free
    - find_end_of_log_message
    - trailer_block_new
    - strbuf_detach
    - find_trailer_block_start
    - ALLOC_GROW
    - strbuf_split_buf
    linkageType: ''
    returnType: struct trailer_block
    signature: "struct trailer_block *trailer_block_get(const struct process_trailer_options
      *opts,\n\t\t\t\t\t       const char *str)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: trailer_block_get
      Src: /src/git/trailer.c:1076,1
    - Dst: starts_with
      Src: /src/git/trailer.c:1081,1
    - Dst: find_separator
      Src: /src/git/trailer.c:1083,1
    - Dst: parse_trailer
      Src: /src/git/trailer.c:1085,1
    - Dst: unfold_value
      Src: /src/git/trailer.c:1088,1
    - Dst: add_trailer_item
      Src: /src/git/trailer.c:1089,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:1090,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:1091,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:1093,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/trailer.c:1094,1
    - Dst: add_trailer_item
      Src: /src/git/trailer.c:1095,1
    - Dst: strbuf_detach
      Src: /src/git/trailer.c:1097,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - opts
    - str
    - trailer_objects
    argTypes:
    - struct process_trailer_options*
    - char*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1067
    functionDepth: 9
    functionLinenumber: 1067
    functionLinenumberEnd: 1102
    functionName: parse_trailers
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - add_trailer_item
    - trailer_block_get
    - strbuf_strip_suffix
    - starts_with
    - find_separator
    - strbuf_detach
    - strbuf_addstr
    - parse_trailer
    - unfold_value
    linkageType: ''
    returnType: struct trailer_block
    signature: "struct trailer_block *parse_trailers(const struct process_trailer_options
      *opts,\n\t\t\t\t     const char *str,\n\t\t\t\t     struct list_head *trailer_objects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/git/trailer.c:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - trailers
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1104
    functionDepth: 2
    functionLinenumber: 1104
    functionLinenumberEnd: 1111
    functionName: free_trailers
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - list_del
    linkageType: ''
    returnType: void
    signature: void free_trailers(struct list_head *trailers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/git/trailer.c:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1110
    functionName: list_for_each_safe
    functionSourceFile: /src/git/trailer.c
    functionUses: 1
    functionsReached:
    - list_del
    linkageType: ''
    returnType: void
    signature: void list_for_each_safe(pos, p, trailers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trailer_block
    argTypes:
    - struct trailer_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1116
    functionName: trailer_block_start
    functionSourceFile: /src/git/trailer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t trailer_block_start(struct trailer_block *trailer_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trailer_block
    argTypes:
    - struct trailer_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1121
    functionName: trailer_block_end
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t trailer_block_end(struct trailer_block *trailer_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trailer_block
    argTypes:
    - struct trailer_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1126
    functionName: blank_line_before_trailer_block
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blank_line_before_trailer_block(struct trailer_block *trailer_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/trailer.c:1132,1
    - Dst: free
      Src: /src/git/trailer.c:1133,1
    - Dst: free
      Src: /src/git/trailer.c:1134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - trailer_block
    argTypes:
    - struct trailer_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1135
    functionName: trailer_block_release
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void trailer_block_release(struct trailer_block *trailer_block)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/trailer.c:1148,1
    - Dst: strbuf_reset
      Src: /src/git/trailer.c:1150,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:1151,1
    - Dst: strbuf_reset
      Src: /src/git/trailer.c:1152,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:1153,1
    - Dst: strlen
      Src: /src/git/trailer.c:1161,1
    - Dst: struct process_trailer_options*::filter
      Src: /src/git/trailer.c:1164,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1166,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1168,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1171,1
    - Dst: last_non_space_char
      Src: /src/git/trailer.c:1173,1
    - Dst: strchr
      Src: /src/git/trailer.c:1174,1
    - Dst: strbuf_addf
      Src: /src/git/trailer.c:1175,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1179,1
    - Dst: strbuf_addch
      Src: /src/git/trailer.c:1181,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1185,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:1187,1
    - Dst: strbuf_rtrim
      Src: /src/git/trailer.c:1189,1
    - Dst: strbuf_addch
      Src: /src/git/trailer.c:1191,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:1195,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:1196,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 3
    argNames:
    - opts
    - trailers
    - out
    argTypes:
    - struct process_trailer_options*
    - struct list_head*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1137
    functionDepth: 4
    functionLinenumber: 1137
    functionLinenumberEnd: 1197
    functionName: format_trailers
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - last_non_space_char
    - strbuf_reset
    - strbuf_addf
    - list_entry
    - strchr
    - strbuf_addch
    - strlen
    - strbuf_addbuf
    - strbuf_addstr
    - struct process_trailer_options*::filter
    - strbuf_rtrim
    linkageType: ''
    returnType: void
    signature: "void format_trailers(const struct process_trailer_options *opts,\n\t\t
      \    struct list_head *trailers,\n\t\t     struct strbuf *out)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/trailer.c:1148,1
    - Dst: strbuf_reset
      Src: /src/git/trailer.c:1150,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:1151,1
    - Dst: strbuf_reset
      Src: /src/git/trailer.c:1152,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:1153,1
    - Dst: strlen
      Src: /src/git/trailer.c:1161,1
    - Dst: filter
      Src: /src/git/trailer.c:1164,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1166,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1168,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1171,1
    - Dst: last_non_space_char
      Src: /src/git/trailer.c:1173,1
    - Dst: strchr
      Src: /src/git/trailer.c:1174,1
    - Dst: strbuf_addf
      Src: /src/git/trailer.c:1175,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1179,1
    - Dst: strbuf_addch
      Src: /src/git/trailer.c:1181,1
    - Dst: strbuf_addbuf
      Src: /src/git/trailer.c:1185,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:1187,1
    - Dst: strbuf_rtrim
      Src: /src/git/trailer.c:1189,1
    - Dst: strbuf_addch
      Src: /src/git/trailer.c:1191,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1147
    functionDepth: 4
    functionLinenumber: 1147
    functionLinenumberEnd: 1193
    functionName: list_for_each
    functionSourceFile: /src/git/trailer.c
    functionUses: 7
    functionsReached:
    - filter
    - last_non_space_char
    - strbuf_reset
    - strbuf_addf
    - list_entry
    - strchr
    - strbuf_addch
    - strlen
    - strbuf_addbuf
    - strbuf_addstr
    - strbuf_rtrim
    linkageType: ''
    returnType: void
    signature: void list_for_each(pos, trailers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/git/trailer.c:1203,1
    - Dst: parse_trailers
      Src: /src/git/trailer.c:1204,1
    - Dst: strbuf_add
      Src: /src/git/trailer.c:1210,1
    - Dst: format_trailers
      Src: /src/git/trailer.c:1213,1
    - Dst: free_trailers
      Src: /src/git/trailer.c:1215,1
    - Dst: trailer_block_release
      Src: /src/git/trailer.c:1216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - opts
    - msg
    - out
    argTypes:
    - struct process_trailer_options*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1199
    functionDepth: 10
    functionLinenumber: 1199
    functionLinenumberEnd: 1217
    functionName: format_trailers_from_commit
    functionSourceFile: /src/git/trailer.c
    functionUses: 2
    functionsReached:
    - parse_trailers
    - LIST_HEAD
    - trailer_block_release
    - strbuf_add
    - free_trailers
    - format_trailers
    linkageType: ''
    returnType: void
    signature: "void format_trailers_from_commit(const struct process_trailer_options
      *opts,\n\t\t\t\t const char *msg,\n\t\t\t\t struct strbuf *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/trailer.c:1222,1
    - Dst: strbuf_init
      Src: /src/git/trailer.c:1223,1
    - Dst: trailer_block_get
      Src: /src/git/trailer.c:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - iter
    - msg
    argTypes:
    - struct trailer_iterator*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1219
    functionDepth: 9
    functionLinenumber: 1219
    functionLinenumberEnd: 1227
    functionName: trailer_iterator_init
    functionSourceFile: /src/git/trailer.c
    functionUses: 1
    functionsReached:
    - strbuf_init
    - trailer_block_get
    linkageType: ''
    returnType: void
    signature: void trailer_iterator_init(struct trailer_iterator *iter, const char
      *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_separator
      Src: /src/git/trailer.c:1233,1
    - Dst: strbuf_reset
      Src: /src/git/trailer.c:1236,1
    - Dst: strbuf_reset
      Src: /src/git/trailer.c:1237,1
    - Dst: parse_trailer
      Src: /src/git/trailer.c:1238,1
    - Dst: unfold_value
      Src: /src/git/trailer.c:1241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct trailer_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1229
    functionDepth: 5
    functionLinenumber: 1229
    functionLinenumberEnd: 1245
    functionName: trailer_iterator_advance
    functionSourceFile: /src/git/trailer.c
    functionUses: 1
    functionsReached:
    - find_separator
    - parse_trailer
    - strbuf_reset
    - unfold_value
    linkageType: ''
    returnType: int
    signature: int trailer_iterator_advance(struct trailer_iterator *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trailer_block_release
      Src: /src/git/trailer.c:1249,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:1250,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct trailer_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1247
    functionDepth: 3
    functionLinenumber: 1247
    functionLinenumberEnd: 1252
    functionName: trailer_iterator_release
    functionSourceFile: /src/git/trailer.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - trailer_block_release
    linkageType: ''
    returnType: void
    signature: void trailer_iterator_release(struct trailer_iterator *iter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/trailer.c:1261,1
    - Dst: error_errno
      Src: /src/git/trailer.c:1262,1
    - Dst: _
      Src: /src/git/trailer.c:1262,1
    - Dst: S_ISREG
      Src: /src/git/trailer.c:1265,1
    - Dst: error
      Src: /src/git/trailer.c:1266,1
    - Dst: _
      Src: /src/git/trailer.c:1266,1
    - Dst: error
      Src: /src/git/trailer.c:1270,1
    - Dst: _
      Src: /src/git/trailer.c:1270,1
    - Dst: find_last_dir_sep
      Src: /src/git/trailer.c:1274,1
    - Dst: strbuf_add
      Src: /src/git/trailer.c:1276,1
    - Dst: strbuf_addstr
      Src: /src/git/trailer.c:1277,1
    - Dst: mks_tempfile_m
      Src: /src/git/trailer.c:1279,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:1281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1254
    functionDepth: 4
    functionLinenumber: 1254
    functionLinenumberEnd: 1284
    functionName: trailer_create_in_place_tempfile
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - strbuf_release
    - mks_tempfile_m
    - stat
    - find_last_dir_sep
    - strbuf_addstr
    - _
    - strbuf_add
    - S_ISREG
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *trailer_create_in_place_tempfile(const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/git/trailer.c:1290,1
    - Dst: error
      Src: /src/git/trailer.c:1302,1
    - Dst: _
      Src: /src/git/trailer.c:1302,1
    - Dst: xcalloc
      Src: /src/git/trailer.c:1305,1
    - Dst: xstrdup
      Src: /src/git/trailer.c:1306,1
    - Dst: list_add_tail
      Src: /src/git/trailer.c:1307,1
    - Dst: process_trailers
      Src: /src/git/trailer.c:1310,1
    - Dst: strbuf_swap
      Src: /src/git/trailer.c:1312,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:1314,1
    - Dst: free_trailers
      Src: /src/git/trailer.c:1315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - buf
    - trailer_args
    argTypes:
    - struct strbuf*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1286
    functionDepth: 7
    functionLinenumber: 1286
    functionLinenumberEnd: 1318
    functionName: amend_strbuf_with_trailers
    functionSourceFile: /src/git/trailer.c
    functionUses: 2
    functionsReached:
    - error
    - free_trailers
    - strbuf_release
    - process_trailers
    - list_add_tail
    - xcalloc
    - LIST_HEAD
    - strbuf_swap
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int amend_strbuf_with_trailers(struct strbuf *buf,\n\t\t\t\tconst
      struct strvec *trailer_args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trailer_create_in_place_tempfile
      Src: /src/git/trailer.c:1322,1
    - Dst: write_in_full
      Src: /src/git/trailer.c:1326,1
    - Dst: error_errno
      Src: /src/git/trailer.c:1327,1
    - Dst: _
      Src: /src/git/trailer.c:1327,1
    - Dst: rename_tempfile
      Src: /src/git/trailer.c:1329,1
    - Dst: error_errno
      Src: /src/git/trailer.c:1330,1
    - Dst: _
      Src: /src/git/trailer.c:1330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - path
    - buf
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1320
    functionDepth: 5
    functionLinenumber: 1320
    functionLinenumberEnd: 1333
    functionName: write_file_in_place
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - error_errno
    - rename_tempfile
    - trailer_create_in_place_tempfile
    - _
    - write_in_full
    linkageType: ''
    returnType: int
    signature: int write_file_in_place(const char *path, const struct strbuf *buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/trailer.c:1342,1
    - Dst: validate_trailer_args
      Src: /src/git/trailer.c:1346,1
    - Dst: strbuf_read_file
      Src: /src/git/trailer.c:1350,1
    - Dst: error_errno
      Src: /src/git/trailer.c:1351,1
    - Dst: _
      Src: /src/git/trailer.c:1351,1
    - Dst: amend_strbuf_with_trailers
      Src: /src/git/trailer.c:1353,1
    - Dst: write_file_in_place
      Src: /src/git/trailer.c:1356,1
    - Dst: strbuf_release
      Src: /src/git/trailer.c:1358,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - path
    - trailer_args
    argTypes:
    - char*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1335
    functionDepth: 8
    functionLinenumber: 1335
    functionLinenumberEnd: 1360
    functionName: amend_file_with_trailers
    functionSourceFile: /src/git/trailer.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - write_file_in_place
    - validate_trailer_args
    - strbuf_read_file
    - amend_strbuf_with_trailers
    - _
    - BUG
    linkageType: ''
    returnType: int
    signature: "int amend_file_with_trailers(const char *path,\n\t\t\t     const struct
      strvec *trailer_args)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/git/trailer.c:1366,1
    - Dst: parse_trailers
      Src: /src/git/trailer.c:1369,1
    - Dst: strbuf_add
      Src: /src/git/trailer.c:1373,1
    - Dst: trailer_block_start
      Src: /src/git/trailer.c:1373,1
    - Dst: blank_line_before_trailer_block
      Src: /src/git/trailer.c:1375,1
    - Dst: strbuf_addch
      Src: /src/git/trailer.c:1376,1
    - Dst: LIST_HEAD
      Src: /src/git/trailer.c:1379,1
    - Dst: LIST_HEAD
      Src: /src/git/trailer.c:1380,1
    - Dst: parse_trailers_from_config
      Src: /src/git/trailer.c:1381,1
    - Dst: parse_trailers_from_command_line_args
      Src: /src/git/trailer.c:1382,1
    - Dst: list_splice
      Src: /src/git/trailer.c:1383,1
    - Dst: process_trailers_lists
      Src: /src/git/trailer.c:1384,1
    - Dst: format_trailers
      Src: /src/git/trailer.c:1388,1
    - Dst: free_trailers
      Src: /src/git/trailer.c:1389,1
    - Dst: strbuf_add
      Src: /src/git/trailer.c:1393,1
    - Dst: trailer_block_end
      Src: /src/git/trailer.c:1393,1
    - Dst: trailer_block_end
      Src: /src/git/trailer.c:1394,1
    - Dst: trailer_block_release
      Src: /src/git/trailer.c:1395,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - opts
    - new_trailer_head
    - input
    - out
    argTypes:
    - struct process_trailer_options*
    - struct list_head*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1362
    functionDepth: 12
    functionLinenumber: 1362
    functionLinenumberEnd: 1396
    functionName: process_trailers
    functionSourceFile: /src/git/trailer.c
    functionUses: 1
    functionsReached:
    - free_trailers
    - parse_trailers
    - list_splice
    - parse_trailers_from_command_line_args
    - blank_line_before_trailer_block
    - process_trailers_lists
    - strbuf_addch
    - LIST_HEAD
    - trailer_block_start
    - parse_trailers_from_config
    - trailer_block_end
    - trailer_block_release
    - strbuf_add
    - format_trailers
    linkageType: ''
    returnType: void
    signature: "void process_trailers(const struct process_trailer_options *opts,\n\t\t
      \     struct list_head *new_trailer_head,\n\t\t      struct strbuf *input, struct
      strbuf *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - de
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: DTYPE
    functionSourceFile: /src/git/statinfo.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTYPE(de)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - de
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: DTYPE
    functionSourceFile: /src/git/statinfo.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DTYPE(de)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/credential.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: credential_init
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void credential_init(struct credential *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: credential_clear_secrets
      Src: /src/git/credential.c:27,1
    - Dst: free
      Src: /src/git/credential.c:28,1
    - Dst: free
      Src: /src/git/credential.c:29,1
    - Dst: free
      Src: /src/git/credential.c:30,1
    - Dst: free
      Src: /src/git/credential.c:31,1
    - Dst: free
      Src: /src/git/credential.c:32,1
    - Dst: free
      Src: /src/git/credential.c:33,1
    - Dst: string_list_clear
      Src: /src/git/credential.c:34,1
    - Dst: strvec_clear
      Src: /src/git/credential.c:35,1
    - Dst: strvec_clear
      Src: /src/git/credential.c:36,1
    - Dst: strvec_clear
      Src: /src/git/credential.c:37,1
    - Dst: credential_init
      Src: /src/git/credential.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 40
    functionName: credential_clear
    functionSourceFile: /src/git/credential.c
    functionUses: 3
    functionsReached:
    - string_list_clear
    - strvec_clear
    - credential_clear_secrets
    - free
    - credential_init
    linkageType: ''
    returnType: void
    signature: void credential_clear(struct credential *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_clear
      Src: /src/git/credential.c:44,1
    - Dst: SWAP
      Src: /src/git/credential.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: credential_next_state
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - strvec_clear
    - SWAP
    linkageType: ''
    returnType: void
    signature: void credential_next_state(struct credential *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/credential.c:50,1
    - Dst: FREE_AND_NULL
      Src: /src/git/credential.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: credential_clear_secrets
    functionSourceFile: /src/git/credential.c
    functionUses: 2
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void credential_clear_secrets(struct credential *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - capa
    - op_type
    argTypes:
    - struct credential_capability*
    - enum credential_op_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: credential_set_capability
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void credential_set_capability(struct credential_capability *capa,\n\t\t\t\t
      \     enum credential_op_type op_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: credential_set_capability
      Src: /src/git/credential.c:74,1
    - Dst: credential_set_capability
      Src: /src/git/credential.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - op_type
    argTypes:
    - struct credential*
    - enum credential_op_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: credential_set_all_capabilities
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - credential_set_capability
    linkageType: ''
    returnType: void
    signature: "void credential_set_all_capabilities(struct credential *c,\n\t\t\t\t
      \    enum credential_op_type op_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/credential.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - name
    - fp
    argTypes:
    - struct credential_capability*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: announce_one
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void announce_one(struct credential_capability *cc, const char *name,
      FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/credential.c:84,1
    - Dst: announce_one
      Src: /src/git/credential.c:85,1
    - Dst: announce_one
      Src: /src/git/credential.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - fp
    argTypes:
    - struct credential*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: credential_announce_capabilities
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - fprintf
    - announce_one
    linkageType: ''
    returnType: void
    signature: void credential_announce_capabilities(struct credential *c, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/git/credential.c:93,1
    - Dst: CHECK
      Src: /src/git/credential.c:94,1
    - Dst: CHECK
      Src: /src/git/credential.c:95,1
    - Dst: CHECK
      Src: /src/git/credential.c:96,1
    - Dst: CHECK
      Src: /src/git/credential.c:97,1
    - Dst: CHECK
      Src: /src/git/credential.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 3
    argNames:
    - want
    - have
    - match_password
    argTypes:
    - struct credential*
    - struct credential*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: credential_match
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: int
    signature: "int credential_match(const struct credential *want,\n\t\t     const
      struct credential *have, int match_password)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: CHECK
    functionSourceFile: /src/git/credential.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/credential.c:113,1
    - Dst: config_error_nonbool
      Src: /src/git/credential.c:117,1
    - Dst: strcmp
      Src: /src/git/credential.c:119,1
    - Dst: string_list_append
      Src: /src/git/credential.c:121,1
    - Dst: string_list_clear
      Src: /src/git/credential.c:123,1
    - Dst: strcmp
      Src: /src/git/credential.c:124,1
    - Dst: free
      Src: /src/git/credential.c:126,1
    - Dst: xstrdup
      Src: /src/git/credential.c:127,1
    - Dst: strcmp
      Src: /src/git/credential.c:130,1
    - Dst: git_config_bool
      Src: /src/git/credential.c:131,1
    - Dst: strcmp
      Src: /src/git/credential.c:132,1
    - Dst: git_config_bool
      Src: /src/git/credential.c:133,1
    - Dst: strcmp
      Src: /src/git/credential.c:134,1
    - Dst: git_config_bool
      Src: /src/git/credential.c:135,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 138
    functionName: credential_config_callback
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - git_config_bool
    - string_list_append
    - strcmp
    - free
    - skip_prefix
    - config_error_nonbool
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int credential_config_callback(const char *var, const char *value,\n\t\t\t\t
      \     const struct config_context *ctx UNUSED,\n\t\t\t\t      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/credential.c:144,1
    - Dst: strcmp
      Src: /src/git/credential.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: proto_is_http
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int proto_is_http(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct urlmatch_item*
    - struct urlmatch_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: select_all
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int select_all(const struct urlmatch_item *a UNUSED,\n\t\t      const
      struct urlmatch_item *b UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: credential_from_potentially_partial_url
      Src: /src/git/credential.c:162,1
    - Dst: warning
      Src: /src/git/credential.c:163,1
    - Dst: _
      Src: /src/git/credential.c:163,1
    - Dst: credential_match
      Src: /src/git/credential.c:166,1
    - Dst: credential_clear
      Src: /src/git/credential.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - url
    - cb
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 170
    functionName: match_partial_url
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - credential_from_potentially_partial_url
    - credential_clear
    - _
    - warning
    - credential_match
    linkageType: ''
    returnType: int
    signature: int match_partial_url(const char *url, void *cb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/credential.c:179,1
    - Dst: _
      Src: /src/git/credential.c:179,1
    - Dst: die
      Src: /src/git/credential.c:181,1
    - Dst: _
      Src: /src/git/credential.c:181,1
    - Dst: credential_format
      Src: /src/git/credential.c:194,1
    - Dst: url_normalize
      Src: /src/git/credential.c:195,1
    - Dst: repo_config
      Src: /src/git/credential.c:197,1
    - Dst: string_list_clear
      Src: /src/git/credential.c:198,1
    - Dst: free
      Src: /src/git/credential.c:199,1
    - Dst: urlmatch_config_release
      Src: /src/git/credential.c:200,1
    - Dst: strbuf_release
      Src: /src/git/credential.c:201,1
    - Dst: proto_is_http
      Src: /src/git/credential.c:205,1
    - Dst: FREE_AND_NULL
      Src: /src/git/credential.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - struct repository*
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 208
    functionName: credential_apply_config
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_release
    - die
    - urlmatch_config_release
    - proto_is_http
    - url_normalize
    - FREE_AND_NULL
    - _
    - free
    - repo_config
    - credential_format
    linkageType: ''
    returnType: void
    signature: void credential_apply_config(struct repository *r, struct credential
      *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/credential.c:214,1
    - Dst: strbuf_addf
      Src: /src/git/credential.c:216,1
    - Dst: strbuf_addstr
      Src: /src/git/credential.c:218,1
    - Dst: strbuf_addf
      Src: /src/git/credential.c:220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - c
    - out
    argTypes:
    - struct credential*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 221
    functionName: credential_describe
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void credential_describe(struct credential *c, struct strbuf *out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/credential.c:227,1
    - Dst: strbuf_add_percentencode
      Src: /src/git/credential.c:229,1
    - Dst: strbuf_addch
      Src: /src/git/credential.c:230,1
    - Dst: strbuf_add_percentencode
      Src: /src/git/credential.c:233,1
    - Dst: strbuf_addch
      Src: /src/git/credential.c:236,1
    - Dst: strbuf_add_percentencode
      Src: /src/git/credential.c:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - c
    - out
    argTypes:
    - struct credential*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 239
    functionName: credential_format
    functionSourceFile: /src/git/credential.c
    functionUses: 1
    functionsReached:
    - strbuf_add_percentencode
    - strbuf_addf
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void credential_format(struct credential *c, struct strbuf *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: credential_format
      Src: /src/git/credential.c:249,1
    - Dst: credential_describe
      Src: /src/git/credential.c:251,1
    - Dst: strbuf_addf
      Src: /src/git/credential.c:253,1
    - Dst: strbuf_addf
      Src: /src/git/credential.c:255,1
    - Dst: git_prompt
      Src: /src/git/credential.c:257,1
    - Dst: strbuf_release
      Src: /src/git/credential.c:259,1
    - Dst: strbuf_release
      Src: /src/git/credential.c:260,1
    - Dst: xstrdup
      Src: /src/git/credential.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - what
    - c
    - flags
    argTypes:
    - char*
    - struct credential*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 241
    functionDepth: 9
    functionLinenumber: 241
    functionLinenumberEnd: 262
    functionName: credential_ask_one
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - credential_describe
    - strbuf_addf
    - git_prompt
    - credential_format
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *credential_ask_one(const char *what, struct credential *c,\n\t\t\t\tint
      flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_maybe_bool
      Src: /src/git/credential.c:268,1
    - Dst: trace2_data_intmax
      Src: /src/git/credential.c:270,1
    - Dst: repo_config_get_string
      Src: /src/git/credential.c:274,1
    - Dst: strcmp
      Src: /src/git/credential.c:275,1
    - Dst: free
      Src: /src/git/credential.c:276,1
    - Dst: trace2_data_intmax
      Src: /src/git/credential.c:278,1
    - Dst: trace2_region_enter
      Src: /src/git/credential.c:284,1
    - Dst: credential_ask_one
      Src: /src/git/credential.c:286,1
    - Dst: credential_ask_one
      Src: /src/git/credential.c:289,1
    - Dst: trace2_region_leave
      Src: /src/git/credential.c:291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - struct repository*
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 264
    functionDepth: 10
    functionLinenumber: 264
    functionLinenumberEnd: 294
    functionName: credential_getpass
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - trace2_data_intmax
    - repo_config_get_maybe_bool
    - trace2_region_leave
    - trace2_region_enter
    - repo_config_get_string
    - strcmp
    - free
    - credential_ask_one
    linkageType: ''
    returnType: int
    signature: int credential_getpass(struct repository *r, struct credential *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - capa
    - op_type
    argTypes:
    - struct credential_capability*
    - enum credential_op_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 312
    functionName: credential_has_capability
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int credential_has_capability(const struct credential_capability *capa,\n\t\t\t
      \     enum credential_op_type op_type)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline
      Src: /src/git/credential.c:319,1
    - Dst: strchr
      Src: /src/git/credential.c:321,1
    - Dst: warning
      Src: /src/git/credential.c:327,1
    - Dst: strbuf_release
      Src: /src/git/credential.c:328,1
    - Dst: strcmp
      Src: /src/git/credential.c:333,1
    - Dst: free
      Src: /src/git/credential.c:334,1
    - Dst: xstrdup
      Src: /src/git/credential.c:335,1
    - Dst: strcmp
      Src: /src/git/credential.c:337,1
    - Dst: free
      Src: /src/git/credential.c:338,1
    - Dst: xstrdup
      Src: /src/git/credential.c:339,1
    - Dst: strcmp
      Src: /src/git/credential.c:340,1
    - Dst: free
      Src: /src/git/credential.c:341,1
    - Dst: xstrdup
      Src: /src/git/credential.c:342,1
    - Dst: strcmp
      Src: /src/git/credential.c:343,1
    - Dst: free
      Src: /src/git/credential.c:344,1
    - Dst: xstrdup
      Src: /src/git/credential.c:345,1
    - Dst: strcmp
      Src: /src/git/credential.c:346,1
    - Dst: free
      Src: /src/git/credential.c:347,1
    - Dst: xstrdup
      Src: /src/git/credential.c:348,1
    - Dst: strcmp
      Src: /src/git/credential.c:349,1
    - Dst: free
      Src: /src/git/credential.c:350,1
    - Dst: xstrdup
      Src: /src/git/credential.c:351,1
    - Dst: strcmp
      Src: /src/git/credential.c:352,1
    - Dst: git_config_bool
      Src: /src/git/credential.c:353,1
    - Dst: strcmp
      Src: /src/git/credential.c:354,1
    - Dst: strvec_push
      Src: /src/git/credential.c:355,1
    - Dst: strcmp
      Src: /src/git/credential.c:356,1
    - Dst: strvec_push
      Src: /src/git/credential.c:357,1
    - Dst: strcmp
      Src: /src/git/credential.c:358,1
    - Dst: strcmp
      Src: /src/git/credential.c:359,1
    - Dst: credential_set_capability
      Src: /src/git/credential.c:360,1
    - Dst: strcmp
      Src: /src/git/credential.c:361,1
    - Dst: credential_set_capability
      Src: /src/git/credential.c:362,1
    - Dst: strcmp
      Src: /src/git/credential.c:363,1
    - Dst: git_config_bool
      Src: /src/git/credential.c:364,1
    - Dst: strcmp
      Src: /src/git/credential.c:365,1
    - Dst: parse_timestamp
      Src: /src/git/credential.c:367,1
    - Dst: strcmp
      Src: /src/git/credential.c:370,1
    - Dst: free
      Src: /src/git/credential.c:371,1
    - Dst: xstrdup
      Src: /src/git/credential.c:372,1
    - Dst: strcmp
      Src: /src/git/credential.c:373,1
    - Dst: free
      Src: /src/git/credential.c:374,1
    - Dst: xstrdup
      Src: /src/git/credential.c:375,1
    - Dst: strcmp
      Src: /src/git/credential.c:376,1
    - Dst: credential_from_url
      Src: /src/git/credential.c:377,1
    - Dst: strcmp
      Src: /src/git/credential.c:378,1
    - Dst: git_config_bool
      Src: /src/git/credential.c:379,1
    - Dst: strbuf_release
      Src: /src/git/credential.c:388,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 3
    argNames:
    - c
    - fp
    - op_type
    argTypes:
    - struct credential*
    - FILE*
    - enum credential_op_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 390
    functionName: credential_read
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - git_config_bool
    - credential_set_capability
    - strchr
    - parse_timestamp
    - strcmp
    - free
    - strbuf_getline
    - warning
    - credential_from_url
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int credential_read(struct credential *c, FILE *fp,\n\t\t    enum
      credential_op_type op_type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/credential.c:397,1
    - Dst: strchr
      Src: /src/git/credential.c:400,1
    - Dst: die
      Src: /src/git/credential.c:401,1
    - Dst: strchr
      Src: /src/git/credential.c:402,1
    - Dst: die
      Src: /src/git/credential.c:403,1
    - Dst: fprintf
      Src: /src/git/credential.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 5
    argNames:
    - c
    - fp
    - key
    - value
    - required
    argTypes:
    - struct credential*
    - FILE*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 407
    functionName: credential_write_item
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - die
    - BUG
    - fprintf
    - strchr
    linkageType: ''
    returnType: void
    signature: "void credential_write_item(const struct credential *c,\n\t\t\t\t  FILE
      *fp, const char *key, const char *value,\n\t\t\t\t  int required)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: credential_has_capability
      Src: /src/git/credential.c:412,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:413,1
    - Dst: credential_has_capability
      Src: /src/git/credential.c:414,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:415,1
    - Dst: credential_has_capability
      Src: /src/git/credential.c:417,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:418,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:419,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:421,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:423,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:424,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:425,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:426,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:427,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:428,1
    - Dst: xstrfmt
      Src: /src/git/credential.c:430,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:431,1
    - Dst: free
      Src: /src/git/credential.c:432,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:435,1
    - Dst: credential_has_capability
      Src: /src/git/credential.c:436,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:438,1
    - Dst: credential_write_item
      Src: /src/git/credential.c:440,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - c
    - fp
    - op_type
    argTypes:
    - struct credential*
    - FILE*
    - enum credential_op_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 442
    functionName: credential_write
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - credential_write_item
    - credential_has_capability
    - xstrfmt
    - free
    linkageType: ''
    returnType: void
    signature: "void credential_write(const struct credential *c, FILE *fp,\n\t\t
      \     enum credential_op_type op_type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/credential.c:451,1
    - Dst: start_command
      Src: /src/git/credential.c:459,1
    - Dst: xfdopen
      Src: /src/git/credential.c:462,1
    - Dst: sigchain_push
      Src: /src/git/credential.c:463,1
    - Dst: credential_write
      Src: /src/git/credential.c:464,1
    - Dst: fclose
      Src: /src/git/credential.c:465,1
    - Dst: sigchain_pop
      Src: /src/git/credential.c:466,1
    - Dst: xfdopen
      Src: /src/git/credential.c:470,1
    - Dst: credential_read
      Src: /src/git/credential.c:471,1
    - Dst: fclose
      Src: /src/git/credential.c:472,1
    - Dst: finish_command
      Src: /src/git/credential.c:474,1
    - Dst: finish_command
      Src: /src/git/credential.c:479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - c
    - cmd
    - want_output
    argTypes:
    - struct credential*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 444
    functionDepth: 7
    functionLinenumber: 444
    functionLinenumberEnd: 482
    functionName: run_credential_helper
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - fclose
    - strvec_push
    - finish_command
    - credential_write
    - sigchain_push
    - sigchain_pop
    - credential_read
    - xfdopen
    - start_command
    linkageType: ''
    returnType: int
    signature: "int run_credential_helper(struct credential *c,\n\t\t\t\t const char
      *cmd,\n\t\t\t\t int want_output)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/credential.c:491,1
    - Dst: is_absolute_path
      Src: /src/git/credential.c:492,1
    - Dst: strbuf_addstr
      Src: /src/git/credential.c:493,1
    - Dst: strbuf_addf
      Src: /src/git/credential.c:495,1
    - Dst: strbuf_addf
      Src: /src/git/credential.c:497,1
    - Dst: run_credential_helper
      Src: /src/git/credential.c:498,1
    - Dst: strcmp
      Src: /src/git/credential.c:498,1
    - Dst: strbuf_release
      Src: /src/git/credential.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - c
    - helper
    - operation
    argTypes:
    - struct credential*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 484
    functionDepth: 8
    functionLinenumber: 484
    functionLinenumberEnd: 502
    functionName: credential_do
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - is_absolute_path
    - strbuf_addf
    - strbuf_addstr
    - strcmp
    - run_credential_helper
    linkageType: ''
    returnType: int
    signature: "int credential_do(struct credential *c, const char *helper,\n\t\t\t
      const char *operation)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: credential_next_state
      Src: /src/git/credential.c:512,1
    - Dst: credential_apply_config
      Src: /src/git/credential.c:515,1
    - Dst: credential_set_all_capabilities
      Src: /src/git/credential.c:517,1
    - Dst: credential_do
      Src: /src/git/credential.c:520,1
    - Dst: time
      Src: /src/git/credential.c:522,1
    - Dst: credential_clear_secrets
      Src: /src/git/credential.c:529,1
    - Dst: strvec_clear
      Src: /src/git/credential.c:534,1
    - Dst: die
      Src: /src/git/credential.c:538,1
    - Dst: credential_getpass
      Src: /src/git/credential.c:542,1
    - Dst: die
      Src: /src/git/credential.c:544,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 3
    argNames:
    - r
    - c
    - all_capabilities
    argTypes:
    - struct repository*
    - struct credential*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 504
    functionDepth: 11
    functionLinenumber: 504
    functionLinenumberEnd: 545
    functionName: credential_fill
    functionSourceFile: /src/git/credential.c
    functionUses: 7
    functionsReached:
    - die
    - credential_getpass
    - credential_next_state
    - strvec_clear
    - credential_set_all_capabilities
    - credential_clear_secrets
    - credential_apply_config
    - credential_do
    - time
    linkageType: ''
    returnType: void
    signature: "void credential_fill(struct repository *r,\n\t\t     struct credential
      *c, int all_capabilities)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/credential.c:553,1
    - Dst: credential_next_state
      Src: /src/git/credential.c:556,1
    - Dst: credential_apply_config
      Src: /src/git/credential.c:558,1
    - Dst: credential_do
      Src: /src/git/credential.c:561,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - struct repository*
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 547
    functionDepth: 9
    functionLinenumber: 547
    functionLinenumberEnd: 563
    functionName: credential_approve
    functionSourceFile: /src/git/credential.c
    functionUses: 4
    functionsReached:
    - credential_apply_config
    - credential_do
    - credential_next_state
    - time
    linkageType: ''
    returnType: void
    signature: void credential_approve(struct repository *r, struct credential *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: credential_next_state
      Src: /src/git/credential.c:569,1
    - Dst: credential_apply_config
      Src: /src/git/credential.c:571,1
    - Dst: credential_do
      Src: /src/git/credential.c:574,1
    - Dst: credential_clear_secrets
      Src: /src/git/credential.c:576,1
    - Dst: FREE_AND_NULL
      Src: /src/git/credential.c:577,1
    - Dst: FREE_AND_NULL
      Src: /src/git/credential.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - struct repository*
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 565
    functionDepth: 9
    functionLinenumber: 565
    functionLinenumberEnd: 581
    functionName: credential_reject
    functionSourceFile: /src/git/credential.c
    functionUses: 4
    functionsReached:
    - credential_next_state
    - credential_clear_secrets
    - credential_apply_config
    - FREE_AND_NULL
    - credential_do
    linkageType: ''
    returnType: void
    signature: void credential_reject(struct repository *r, struct credential *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/credential.c:588,1
    - Dst: warning
      Src: /src/git/credential.c:592,1
    - Dst: _
      Src: /src/git/credential.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - url
    - quiet
    - name
    - value
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 595
    functionName: check_url_component
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - warning
    - strchr
    - _
    linkageType: ''
    returnType: int
    signature: "int check_url_component(const char *url, int quiet,\n\t\t\t       const
      char *name, const char *value)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: credential_clear
      Src: /src/git/credential.c:625,1
    - Dst: strstr
      Src: /src/git/credential.c:633,1
    - Dst: warning
      Src: /src/git/credential.c:636,1
    - Dst: _
      Src: /src/git/credential.c:636,1
    - Dst: strchr
      Src: /src/git/credential.c:640,1
    - Dst: strchr
      Src: /src/git/credential.c:641,1
    - Dst: strcspn
      Src: /src/git/credential.c:649,1
    - Dst: url_decode_mem
      Src: /src/git/credential.c:657,1
    - Dst: url_decode_mem
      Src: /src/git/credential.c:663,1
    - Dst: url_decode_mem
      Src: /src/git/credential.c:666,1
    - Dst: xmemdupz
      Src: /src/git/credential.c:671,1
    - Dst: url_decode_mem
      Src: /src/git/credential.c:673,1
    - Dst: url_decode
      Src: /src/git/credential.c:679,1
    - Dst: strlen
      Src: /src/git/credential.c:680,1
    - Dst: check_url_component
      Src: /src/git/credential.c:685,1
    - Dst: check_url_component
      Src: /src/git/credential.c:686,1
    - Dst: check_url_component
      Src: /src/git/credential.c:687,1
    - Dst: check_url_component
      Src: /src/git/credential.c:688,1
    - Dst: check_url_component
      Src: /src/git/credential.c:689,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 42
    argCount: 4
    argNames:
    - c
    - url
    - allow_partial_url
    - quiet
    argTypes:
    - struct credential*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 620
    functionDepth: 10
    functionLinenumber: 620
    functionLinenumberEnd: 693
    functionName: credential_from_url_1
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strstr
    - strchr
    - credential_clear
    - url_decode_mem
    - strlen
    - _
    - url_decode
    - check_url_component
    - warning
    - strcspn
    linkageType: ''
    returnType: int
    signature: "int credential_from_url_1(struct credential *c, const char *url,\n\t\t\t\t
      int allow_partial_url, int quiet)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: credential_from_url_1
      Src: /src/git/credential.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - url
    argTypes:
    - struct credential*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 695
    functionDepth: 11
    functionLinenumber: 695
    functionLinenumberEnd: 699
    functionName: credential_from_potentially_partial_url
    functionSourceFile: /src/git/credential.c
    functionUses: 1
    functionsReached:
    - credential_from_url_1
    linkageType: ''
    returnType: int
    signature: "int credential_from_potentially_partial_url(struct credential *c,\n\t\t\t\t\t\t
      \  const char *url)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: credential_from_url_1
      Src: /src/git/credential.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - url
    - quiet
    argTypes:
    - struct credential*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 11
    functionLinenumber: 701
    functionLinenumberEnd: 704
    functionName: credential_from_url_gently
    functionSourceFile: /src/git/credential.c
    functionUses: 0
    functionsReached:
    - credential_from_url_1
    linkageType: ''
    returnType: int
    signature: int credential_from_url_gently(struct credential *c, const char *url,
      int quiet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: credential_from_url_gently
      Src: /src/git/credential.c:708,1
    - Dst: die
      Src: /src/git/credential.c:709,1
    - Dst: _
      Src: /src/git/credential.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - c
    - url
    argTypes:
    - struct credential*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 706
    functionDepth: 12
    functionLinenumber: 706
    functionLinenumberEnd: 710
    functionName: credential_from_url
    functionSourceFile: /src/git/credential.c
    functionUses: 4
    functionsReached:
    - credential_from_url_gently
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void credential_from_url(struct credential *c, const char *url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/fetch-pack.c:77,1
    - Dst: va_start
      Src: /src/git/fetch-pack.c:86,1
    - Dst: vfprintf
      Src: /src/git/fetch-pack.c:87,1
    - Dst: va_end
      Src: /src/git/fetch-pack.c:88,1
    - Dst: fputc
      Src: /src/git/fetch-pack.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - args
    - fmt
    argTypes:
    - struct fetch_pack_args*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: print_verbose
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 1
    functionsReached:
    - fputc
    - vfprintf
    - va_end
    - va_start
    - format
    linkageType: ''
    returnType: void
    signature: "void print_verbose(const struct fetch_pack_args *args,\n\t\t\t\t const
      char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/fetch-pack.c:101,1
    - Dst: ALLOC_GROW
      Src: /src/git/fetch-pack.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - oid
    - vcache
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: cache_one_alternate
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - parse_object
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: "void cache_one_alternate(const struct object_id *oid,\n\t\t\t\tvoid
      *vcache)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_for_each_alternate_ref
      Src: /src/git/fetch-pack.c:120,1
    - Dst: cb
      Src: /src/git/fetch-pack.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - negotiator
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: for_each_cached_alternate
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - cb
    - odb_for_each_alternate_ref
    linkageType: ''
    returnType: void
    signature: "void for_each_cached_alternate(struct fetch_negotiator *negotiator,\n\t\t\t\t
      \     void (*cb)(struct fetch_negotiator *,\n\t\t\t\t\t\t struct object *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/fetch-pack.c:131,1
    - Dst: _
      Src: /src/git/fetch-pack.c:131,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: die_in_commit_graph_only
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void die_in_commit_graph_only(const struct object_id *oid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_in_graph
      Src: /src/git/fetch-pack.c:144,1
    - Dst: odb_has_object
      Src: /src/git/fetch-pack.c:147,1
    - Dst: die_in_commit_graph_only
      Src: /src/git/fetch-pack.c:149,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/fetch-pack.c:155,1
    - Dst: parse_object
      Src: /src/git/fetch-pack.c:160,1
    - Dst: lookup_commit
      Src: /src/git/fetch-pack.c:173,1
    - Dst: repo_parse_commit
      Src: /src/git/fetch-pack.c:174,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - oid
    - mark_tags_complete_and_check_obj_db
    argTypes:
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 137
    functionDepth: 12
    functionLinenumber: 137
    functionLinenumberEnd: 180
    functionName: deref_without_lazy_fetch
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - repo_parse_commit
    - parse_object
    - odb_has_object
    - lookup_commit
    - die_in_commit_graph_only
    - lookup_commit_in_graph
    - odb_read_object_info_extended
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *deref_without_lazy_fetch(const struct object_id *oid,\n\t\t\t\t\t
      \      int mark_tags_complete_and_check_obj_db)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deref_without_lazy_fetch
      Src: /src/git/fetch-pack.c:185,1
    - Dst: struct fetch_negotiator*::add_tip
      Src: /src/git/fetch-pack.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - negotiator
    - oid
    argTypes:
    - struct fetch_negotiator*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 13
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: rev_list_insert_ref
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - struct fetch_negotiator*::add_tip
    - deref_without_lazy_fetch
    linkageType: ''
    returnType: int
    signature: "int rev_list_insert_ref(struct fetch_negotiator *negotiator,\n\t\t\t
      \      const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rev_list_insert_ref
      Src: /src/git/fetch-pack.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 14
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: rev_list_insert_ref_oid
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - rev_list_insert_ref
    linkageType: ''
    returnType: int
    signature: int rev_list_insert_ref_oid(const struct reference *ref, void *cb_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/fetch-pack.c:213,1
    - Dst: starts_with
      Src: /src/git/fetch-pack.c:214,1
    - Dst: starts_with
      Src: /src/git/fetch-pack.c:216,1
    - Dst: die
      Src: /src/git/fetch-pack.c:218,1
    - Dst: _
      Src: /src/git/fetch-pack.c:218,1
    - Dst: die
      Src: /src/git/fetch-pack.c:221,1
    - Dst: _
      Src: /src/git/fetch-pack.c:221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - args
    - reader
    argTypes:
    - struct fetch_pack_args*
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: consume_shallow_list
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - die
    - packet_reader_read
    - starts_with
    - _
    linkageType: ''
    returnType: void
    signature: "void consume_shallow_list(struct fetch_pack_args *args,\n\t\t\t\t
      struct packet_reader *reader)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/fetch-pack.c:231,1
    - Dst: die
      Src: /src/git/fetch-pack.c:232,1
    - Dst: _
      Src: /src/git/fetch-pack.c:232,1
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:235,1
    - Dst: skip_prefix
      Src: /src/git/fetch-pack.c:237,1
    - Dst: parse_oid_hex
      Src: /src/git/fetch-pack.c:239,1
    - Dst: strstr
      Src: /src/git/fetch-pack.c:243,1
    - Dst: strstr
      Src: /src/git/fetch-pack.c:245,1
    - Dst: strstr
      Src: /src/git/fetch-pack.c:247,1
    - Dst: die
      Src: /src/git/fetch-pack.c:252,1
    - Dst: _
      Src: /src/git/fetch-pack.c:252,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - reader
    - result_oid
    argTypes:
    - struct packet_reader*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 253
    functionName: get_ack
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - die
    - strstr
    - parse_oid_hex
    - strcmp
    - skip_prefix
    - packet_reader_read
    - _
    linkageType: ''
    returnType: enum ack_type
    signature: "enum ack_type get_ack(struct packet_reader *reader,\n\t\t\t     struct
      object_id *result_oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_sideband
      Src: /src/git/fetch-pack.c:259,1
    - Dst: packet_flush
      Src: /src/git/fetch-pack.c:260,1
    - Dst: write_in_full
      Src: /src/git/fetch-pack.c:262,1
    - Dst: die_errno
      Src: /src/git/fetch-pack.c:263,1
    - Dst: _
      Src: /src/git/fetch-pack.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - args
    - fd
    - buf
    argTypes:
    - struct fetch_pack_args*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 265
    functionName: send_request
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 1
    functionsReached:
    - send_sideband
    - die_errno
    - packet_flush
    - _
    - write_in_full
    linkageType: ''
    returnType: void
    signature: "void send_request(struct fetch_pack_args *args,\n\t\t\t int fd, struct
      strbuf *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rev_list_insert_ref
      Src: /src/git/fetch-pack.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - negotiator
    - obj
    argTypes:
    - struct fetch_negotiator*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 14
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: insert_one_alternate_object
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - rev_list_insert_ref
    linkageType: ''
    returnType: void
    signature: "void insert_one_alternate_object(struct fetch_negotiator *negotiator,\n\t\t\t\t\tstruct
      object *obj)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - stateless_rpc
    - count
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: next_flush
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int next_flush(int stateless_rpc, int count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_ref_ext
      Src: /src/git/fetch-pack.c:302,1
    - Dst: get_main_ref_store
      Src: /src/git/fetch-pack.c:302,1
    - Dst: rev_list_insert_ref
      Src: /src/git/fetch-pack.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - negotiator
    - negotiation_restrict_tips
    argTypes:
    - struct fetch_negotiator*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 293
    functionDepth: 14
    functionLinenumber: 293
    functionLinenumberEnd: 310
    functionName: mark_tips
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - rev_list_insert_ref
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void mark_tips(struct fetch_negotiator *negotiator,\n\t\t      const
      struct oid_array *negotiation_restrict_tips)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/fetch-pack.c:318,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:320,1
    - Dst: _
      Src: /src/git/fetch-pack.c:320,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:321,1
    - Dst: trace2_data_string
      Src: /src/git/fetch-pack.c:322,1
    - Dst: warning
      Src: /src/git/fetch-pack.c:325,1
    - Dst: trace2_data_string
      Src: /src/git/fetch-pack.c:326,1
    - Dst: trace2_data_string
      Src: /src/git/fetch-pack.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - args
    - req_buf
    - server_supports_filter
    argTypes:
    - struct fetch_pack_args*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 333
    functionName: send_filter
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - packet_buf_write
    - print_verbose
    - _
    - warning
    - expand_list_objects_filter_spec
    - trace2_data_string
    linkageType: ''
    returnType: void
    signature: "void send_filter(struct fetch_pack_args *args,\n\t\t\tstruct strbuf
      *req_buf,\n\t\t\tint server_supports_filter)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/fetch-pack.c:343,1
    - Dst: die
      Src: /src/git/fetch-pack.c:344,1
    - Dst: _
      Src: /src/git/fetch-pack.c:344,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:344,1
    - Dst: oidset_insert
      Src: /src/git/fetch-pack.c:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - array
    - set
    argTypes:
    - struct oid_array*
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 335
    functionDepth: 12
    functionLinenumber: 335
    functionLinenumberEnd: 348
    functionName: add_oids_to_set
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - odb_has_object
    - oidset_insert
    - _
    linkageType: ''
    returnType: void
    signature: "void add_oids_to_set(const struct oid_array *array,\n\t\t\t    struct
      oidset *set)"
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/fetch-pack.c:368,1
    - Dst: _
      Src: /src/git/fetch-pack.c:368,1
    - Dst: packet_reader_init
      Src: /src/git/fetch-pack.c:370,1
    - Dst: mark_tips
      Src: /src/git/fetch-pack.c:374,1
    - Dst: for_each_cached_alternate
      Src: /src/git/fetch-pack.c:375,1
    - Dst: lookup_object
      Src: /src/git/fetch-pack.c:394,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:400,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:403,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:404,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:405,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:406,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:407,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:408,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:409,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:410,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:411,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:412,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:413,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:414,1
    - Dst: strbuf_addf
      Src: /src/git/fetch-pack.c:415,1
    - Dst: git_user_agent_sanitized
      Src: /src/git/fetch-pack.c:416,1
    - Dst: strbuf_addf
      Src: /src/git/fetch-pack.c:418,1
    - Dst: trace2_session_id
      Src: /src/git/fetch-pack.c:418,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:420,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:421,1
    - Dst: strbuf_release
      Src: /src/git/fetch-pack.c:422,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:424,1
    - Dst: strbuf_release
      Src: /src/git/fetch-pack.c:429,1
    - Dst: packet_flush
      Src: /src/git/fetch-pack.c:430,1
    - Dst: is_repository_shallow
      Src: /src/git/fetch-pack.c:434,1
    - Dst: write_shallow_commits
      Src: /src/git/fetch-pack.c:435,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:437,1
    - Dst: approxidate
      Src: /src/git/fetch-pack.c:439,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:440,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:446,1
    - Dst: send_filter
      Src: /src/git/fetch-pack.c:449,1
    - Dst: packet_buf_flush
      Src: /src/git/fetch-pack.c:450,1
    - Dst: send_request
      Src: /src/git/fetch-pack.c:457,1
    - Dst: packet_reader_read
      Src: /src/git/fetch-pack.c:458,1
    - Dst: skip_prefix
      Src: /src/git/fetch-pack.c:459,1
    - Dst: get_oid_hex
      Src: /src/git/fetch-pack.c:460,1
    - Dst: die
      Src: /src/git/fetch-pack.c:461,1
    - Dst: _
      Src: /src/git/fetch-pack.c:461,1
    - Dst: register_shallow
      Src: /src/git/fetch-pack.c:462,1
    - Dst: skip_prefix
      Src: /src/git/fetch-pack.c:465,1
    - Dst: get_oid_hex
      Src: /src/git/fetch-pack.c:466,1
    - Dst: die
      Src: /src/git/fetch-pack.c:467,1
    - Dst: _
      Src: /src/git/fetch-pack.c:467,1
    - Dst: lookup_object
      Src: /src/git/fetch-pack.c:468,1
    - Dst: die
      Src: /src/git/fetch-pack.c:469,1
    - Dst: _
      Src: /src/git/fetch-pack.c:469,1
    - Dst: parse_object
      Src: /src/git/fetch-pack.c:471,1
    - Dst: die
      Src: /src/git/fetch-pack.c:472,1
    - Dst: _
      Src: /src/git/fetch-pack.c:472,1
    - Dst: unregister_shallow
      Src: /src/git/fetch-pack.c:473,1
    - Dst: die
      Src: /src/git/fetch-pack.c:474,1
    - Dst: _
      Src: /src/git/fetch-pack.c:474,1
    - Dst: die
      Src: /src/git/fetch-pack.c:477,1
    - Dst: _
      Src: /src/git/fetch-pack.c:477,1
    - Dst: send_request
      Src: /src/git/fetch-pack.c:480,1
    - Dst: strbuf_setlen
      Src: /src/git/fetch-pack.c:486,1
    - Dst: trace2_region_enter
      Src: /src/git/fetch-pack.c:490,1
    - Dst: add_oids_to_set
      Src: /src/git/fetch-pack.c:495,1
    - Dst: oidset_size
      Src: /src/git/fetch-pack.c:497,1
    - Dst: oidset_iter_init
      Src: /src/git/fetch-pack.c:499,1
    - Dst: oidset_iter_next
      Src: /src/git/fetch-pack.c:501,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:503,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:504,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:505,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:505,1
    - Dst: lookup_commit
      Src: /src/git/fetch-pack.c:508,1
    - Dst: struct fetch_negotiator*::have_sent
      Src: /src/git/fetch-pack.c:510,1
    - Dst: struct fetch_negotiator*::next
      Src: /src/git/fetch-pack.c:514,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:515,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:515,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:516,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:516,1
    - Dst: trace2_region_enter_printf
      Src: /src/git/fetch-pack.c:523,1
    - Dst: trace2_data_intmax
      Src: /src/git/fetch-pack.c:526,1
    - Dst: trace2_data_intmax
      Src: /src/git/fetch-pack.c:528,1
    - Dst: packet_buf_flush
      Src: /src/git/fetch-pack.c:531,1
    - Dst: send_request
      Src: /src/git/fetch-pack.c:532,1
    - Dst: strbuf_setlen
      Src: /src/git/fetch-pack.c:533,1
    - Dst: next_flush
      Src: /src/git/fetch-pack.c:535,1
    - Dst: consume_shallow_list
      Src: /src/git/fetch-pack.c:544,1
    - Dst: get_ack
      Src: /src/git/fetch-pack.c:546,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:548,1
    - Dst: _
      Src: /src/git/fetch-pack.c:548,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:549,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/fetch-pack.c:552,1
    - Dst: lookup_commit
      Src: /src/git/fetch-pack.c:563,1
    - Dst: die
      Src: /src/git/fetch-pack.c:568,1
    - Dst: _
      Src: /src/git/fetch-pack.c:568,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:568,1
    - Dst: struct fetch_negotiator*::ack
      Src: /src/git/fetch-pack.c:569,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:577,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:578,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/fetch-pack.c:599,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:603,1
    - Dst: _
      Src: /src/git/fetch-pack.c:603,1
    - Dst: trace2_region_leave
      Src: /src/git/fetch-pack.c:611,1
    - Dst: trace2_data_intmax
      Src: /src/git/fetch-pack.c:612,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:615,1
    - Dst: send_request
      Src: /src/git/fetch-pack.c:616,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:618,1
    - Dst: _
      Src: /src/git/fetch-pack.c:618,1
    - Dst: strbuf_release
      Src: /src/git/fetch-pack.c:623,1
    - Dst: oidset_clear
      Src: /src/git/fetch-pack.c:624,1
    - Dst: consume_shallow_list
      Src: /src/git/fetch-pack.c:627,1
    - Dst: get_ack
      Src: /src/git/fetch-pack.c:629,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:631,1
    - Dst: _
      Src: /src/git/fetch-pack.c:631,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:632,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 206
    argCount: 5
    argNames:
    - negotiator
    - args
    - fd
    - result_oid
    - refs
    argTypes:
    - struct fetch_negotiator*
    - struct fetch_pack_args*
    - int[]
    - struct object_id*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 350
    functionDepth: 15
    functionLinenumber: 350
    functionLinenumberEnd: 642
    functionName: find_common
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - trace2_data_intmax
    - strbuf_addf
    - packet_flush
    - trace2_session_id
    - trace2_region_enter
    - oidset_clear
    - struct fetch_negotiator*::have_sent
    - send_request
    - oidset_iter_init
    - strbuf_release
    - die
    - write_shallow_commits
    - packet_buf_flush
    - consume_shallow_list
    - send_filter
    - strbuf_setlen
    - register_shallow
    - lookup_object
    - for_each_cached_alternate
    - strbuf_addstr
    - next_flush
    - oid_to_hex
    - approxidate
    - get_oid_hex
    - struct fetch_negotiator*::ack
    - parse_object
    - add_oids_to_set
    - is_repository_shallow
    - trace2_region_enter_printf
    - git_user_agent_sanitized
    - _
    - skip_prefix
    - oidset_size
    - struct fetch_negotiator*::next
    - get_ack
    - packet_buf_write
    - trace2_region_leave_printf
    - print_verbose
    - trace2_region_leave
    - packet_reader_init
    - mark_tips
    - unregister_shallow
    - lookup_commit
    - oidset_iter_next
    - packet_reader_read
    linkageType: ''
    returnType: int
    signature: "int find_common(struct fetch_negotiator *negotiator,\n\t\t       struct
      fetch_pack_args *args,\n\t\t       int fd[2], struct object_id *result_oid,\n\t\t
      \      struct ref *refs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deref_without_lazy_fetch
      Src: /src/git/fetch-pack.c:648,1
    - Dst: prio_queue_put
      Src: /src/git/fetch-pack.c:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 646
    functionDepth: 13
    functionLinenumber: 646
    functionLinenumberEnd: 655
    functionName: mark_complete
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - prio_queue_put
    - deref_without_lazy_fetch
    linkageType: ''
    returnType: int
    signature: int mark_complete(const struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_complete
      Src: /src/git/fetch-pack.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 660
    functionName: mark_complete_oid
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - mark_complete
    linkageType: ''
    returnType: int
    signature: int mark_complete_oid(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_peek
      Src: /src/git/fetch-pack.c:666,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:669,1
    - Dst: _
      Src: /src/git/fetch-pack.c:669,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:670,1
    - Dst: pop_most_recent_commit
      Src: /src/git/fetch-pack.c:671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - args
    - cutoff
    argTypes:
    - struct fetch_pack_args*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 673
    functionName: mark_recent_complete_commits
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - prio_queue_peek
    - oid_to_hex
    - pop_most_recent_commit
    - print_verbose
    - _
    linkageType: ''
    returnType: void
    signature: "void mark_recent_complete_commits(struct fetch_pack_args *args,\n\t\t\t\t\t
      timestamp_t cutoff)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_insert
      Src: /src/git/fetch-pack.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - oids
    - refs
    argTypes:
    - struct oidset*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 679
    functionName: add_refs_to_oidset
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - oidset_insert
    linkageType: ''
    returnType: void
    signature: void add_refs_to_oidset(struct oidset *oids, struct ref *refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex
      Src: /src/git/fetch-pack.c:686,1
    - Dst: oideq
      Src: /src/git/fetch-pack.c:688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 689
    functionName: is_unmatched_ref
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - parse_oid_hex
    - oideq
    linkageType: ''
    returnType: int
    signature: int is_unmatched_ref(const struct ref *ref)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/fetch-pack.c:709,1
    - Dst: check_refname_format
      Src: /src/git/fetch-pack.c:710,1
    - Dst: free_one_ref
      Src: /src/git/fetch-pack.c:715,1
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:719,1
    - Dst: starts_with
      Src: /src/git/fetch-pack.c:730,1
    - Dst: is_unmatched_ref
      Src: /src/git/fetch-pack.c:747,1
    - Dst: add_refs_to_oidset
      Src: /src/git/fetch-pack.c:750,1
    - Dst: add_refs_to_oidset
      Src: /src/git/fetch-pack.c:751,1
    - Dst: is_unmatched_ref
      Src: /src/git/fetch-pack.c:759,1
    - Dst: oidset_contains
      Src: /src/git/fetch-pack.c:762,1
    - Dst: copy_ref
      Src: /src/git/fetch-pack.c:764,1
    - Dst: oidset_clear
      Src: /src/git/fetch-pack.c:771,1
    - Dst: free_refs
      Src: /src/git/fetch-pack.c:772,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 4
    argNames:
    - args
    - refs
    - sought
    - nr_sought
    argTypes:
    - struct fetch_pack_args*
    - struct ref**
    - struct ref**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 691
    functionDepth: 4
    functionLinenumber: 691
    functionLinenumberEnd: 775
    functionName: filter_refs
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 2
    functionsReached:
    - free_one_ref
    - oidset_contains
    - oidset_clear
    - starts_with
    - is_unmatched_ref
    - copy_ref
    - free_refs
    - check_refname_format
    - strcmp
    - add_refs_to_oidset
    linkageType: ''
    returnType: void
    signature: "void filter_refs(struct fetch_pack_args *args,\n\t\t\tstruct ref **refs,\n\t\t\tstruct
      ref **sought, int nr_sought)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_complete
      Src: /src/git/fetch-pack.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - negotiator
    - obj
    argTypes:
    - struct fetch_negotiator*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 781
    functionName: mark_alternate_complete
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - mark_complete
    linkageType: ''
    returnType: void
    signature: "void mark_alternate_complete(struct fetch_negotiator *negotiator UNUSED,\n\t\t\t\t
      \   struct object *obj)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/fetch-pack.c:804,1
    - Dst: lookup_commit_in_graph
      Src: /src/git/fetch-pack.c:808,1
    - Dst: odb_has_object
      Src: /src/git/fetch-pack.c:812,1
    - Dst: parse_object
      Src: /src/git/fetch-pack.c:814,1
    - Dst: trace2_region_leave
      Src: /src/git/fetch-pack.c:829,1
    - Dst: trace2_region_enter
      Src: /src/git/fetch-pack.c:835,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/fetch-pack.c:841,1
    - Dst: get_main_ref_store
      Src: /src/git/fetch-pack.c:841,1
    - Dst: for_each_cached_alternate
      Src: /src/git/fetch-pack.c:843,1
    - Dst: mark_recent_complete_commits
      Src: /src/git/fetch-pack.c:845,1
    - Dst: trace2_region_leave
      Src: /src/git/fetch-pack.c:847,1
    - Dst: trace2_region_enter
      Src: /src/git/fetch-pack.c:853,1
    - Dst: deref_without_lazy_fetch
      Src: /src/git/fetch-pack.c:855,1
    - Dst: struct fetch_negotiator*::known_common
      Src: /src/git/fetch-pack.c:860,1
    - Dst: trace2_region_leave
      Src: /src/git/fetch-pack.c:862,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 3
    argNames:
    - negotiator
    - args
    - refs
    argTypes:
    - struct fetch_negotiator*
    - struct fetch_pack_args*
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 791
    functionDepth: 13
    functionLinenumber: 791
    functionLinenumberEnd: 865
    functionName: mark_complete_and_common_ref
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - mark_recent_complete_commits
    - trace2_region_leave
    - trace2_region_enter
    - parse_object
    - odb_has_object
    - refs_for_each_ref_ext
    - for_each_cached_alternate
    - lookup_commit_in_graph
    - struct fetch_negotiator*::known_common
    - deref_without_lazy_fetch
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void mark_complete_and_common_ref(struct fetch_negotiator *negotiator,\n\t\t\t\t\t
      struct fetch_pack_args *args,\n\t\t\t\t\t struct ref **refs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/fetch-pack.c:881,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:884,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:884,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:888,1
    - Dst: _
      Src: /src/git/fetch-pack.c:888,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:888,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - args
    - refs
    argTypes:
    - struct fetch_pack_args*
    - struct ref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 871
    functionDepth: 3
    functionLinenumber: 871
    functionLinenumberEnd: 893
    functionName: everything_local
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - lookup_object
    - oid_to_hex
    - print_verbose
    - _
    linkageType: ''
    returnType: int
    signature: "int everything_local(struct fetch_pack_args *args,\n\t\t\t    struct
      ref **refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recv_sideband
      Src: /src/git/fetch-pack.c:900,1
    - Dst: close
      Src: /src/git/fetch-pack.c:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - UNUSED
    - out
    - data
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 903
    functionName: sideband_demux
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - close
    - recv_sideband
    linkageType: ''
    returnType: int
    signature: int sideband_demux(int in UNUSED, int out, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:911,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/fetch-pack.c:912,1
    - Dst: BUG
      Src: /src/git/fetch-pack.c:914,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:916,1
    - Dst: write_promisor_file
      Src: /src/git/fetch-pack.c:918,1
    - Dst: strbuf_release
      Src: /src/git/fetch-pack.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - keep_name
    - sought
    - nr_sought
    argTypes:
    - char*
    - struct ref**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 905
    functionDepth: 4
    functionLinenumber: 905
    functionLinenumberEnd: 921
    functionName: create_promisor_file
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_strip_suffix
    - write_promisor_file
    - strbuf_addstr
    - BUG
    linkageType: ''
    returnType: void
    signature: "void create_promisor_file(const char *keep_name,\n\t\t\t\t struct
      ref **sought, int nr_sought)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_in_full
      Src: /src/git/fetch-pack.c:929,1
    - Dst: die
      Src: /src/git/fetch-pack.c:936,1
    - Dst: parse_oid_hex
      Src: /src/git/fetch-pack.c:937,1
    - Dst: die
      Src: /src/git/fetch-pack.c:938,1
    - Dst: oidset_insert
      Src: /src/git/fetch-pack.c:939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - gitmodules_oids
    argTypes:
    - int
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 923
    functionDepth: 4
    functionLinenumber: 923
    functionLinenumberEnd: 941
    functionName: parse_gitmodules_oids
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - read_in_full
    - parse_oid_hex
    - die
    - oidset_insert
    linkageType: ''
    returnType: void
    signature: void parse_gitmodules_oids(int fd, struct oidset *gitmodules_oids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xgethostname
      Src: /src/git/fetch-pack.c:947,1
    - Dst: xsnprintf
      Src: /src/git/fetch-pack.c:948,1
    - Dst: strvec_pushf
      Src: /src/git/fetch-pack.c:949,1
    - Dst: getpid
      Src: /src/git/fetch-pack.c:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 943
    functionDepth: 2
    functionLinenumber: 943
    functionLinenumberEnd: 951
    functionName: add_index_pack_keep_option
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - xgethostname
    - getpid
    - strvec_pushf
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void add_index_pack_keep_option(struct strvec *args)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/fetch-pack.c:973,1
    - Dst: start_async
      Src: /src/git/fetch-pack.c:983,1
    - Dst: die
      Src: /src/git/fetch-pack.c:984,1
    - Dst: _
      Src: /src/git/fetch-pack.c:984,1
    - Dst: read_pack_header
      Src: /src/git/fetch-pack.c:991,1
    - Dst: die
      Src: /src/git/fetch-pack.c:992,1
    - Dst: _
      Src: /src/git/fetch-pack.c:992,1
    - Dst: ntohl
      Src: /src/git/fetch-pack.c:994,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1001,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1002,1
    - Dst: fetch_pack_fsck_objects
      Src: /src/git/fetch-pack.c:1005,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1011,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1012,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1014,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1016,1
    - Dst: add_index_pack_keep_option
      Src: /src/git/fetch-pack.c:1018,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1020,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1038,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1042,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1044,1
    - Dst: strvec_pushf
      Src: /src/git/fetch-pack.c:1049,1
    - Dst: ntohl
      Src: /src/git/fetch-pack.c:1050,1
    - Dst: ntohl
      Src: /src/git/fetch-pack.c:1051,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1059,1
    - Dst: strvec_pushf
      Src: /src/git/fetch-pack.c:1061,1
    - Dst: strvec_pushv
      Src: /src/git/fetch-pack.c:1066,1
    - Dst: sigchain_push
      Src: /src/git/fetch-pack.c:1068,1
    - Dst: start_command
      Src: /src/git/fetch-pack.c:1072,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1073,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1073,1
    - Dst: index_pack_lockfile
      Src: /src/git/fetch-pack.c:1076,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1081,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1081,1
    - Dst: string_list_append_nodup
      Src: /src/git/fetch-pack.c:1083,1
    - Dst: free
      Src: /src/git/fetch-pack.c:1085,1
    - Dst: parse_gitmodules_oids
      Src: /src/git/fetch-pack.c:1086,1
    - Dst: close
      Src: /src/git/fetch-pack.c:1087,1
    - Dst: finish_command
      Src: /src/git/fetch-pack.c:1094,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1100,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1100,1
    - Dst: finish_async
      Src: /src/git/fetch-pack.c:1101,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1102,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1102,1
    - Dst: sigchain_pop
      Src: /src/git/fetch-pack.c:1104,1
    - Dst: create_promisor_file
      Src: /src/git/fetch-pack.c:1111,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 83
    argCount: 7
    argNames:
    - args
    - xd
    - pack_lockfiles
    - index_pack_args
    - sought
    - nr_sought
    - gitmodules_oids
    argTypes:
    - struct fetch_pack_args*
    - int[]
    - struct string_list*
    - struct strvec*
    - struct ref**
    - int
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 958
    functionDepth: 7
    functionLinenumber: 958
    functionLinenumberEnd: 1114
    functionName: get_pack
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_gitmodules_oids
    - free
    - die
    - finish_command
    - fetch_pack_fsck_objects
    - sigchain_push
    - finish_async
    - index_pack_lockfile
    - memset
    - add_index_pack_keep_option
    - strvec_pushv
    - sigchain_pop
    - create_promisor_file
    - _
    - strvec_pushf
    - string_list_append_nodup
    - ntohl
    - close
    - start_async
    - start_command
    - read_pack_header
    linkageType: ''
    returnType: int
    signature: "int get_pack(struct fetch_pack_args *args,\n\t\t    int xd[2], struct
      string_list *pack_lockfiles,\n\t\t    struct strvec *index_pack_args,\n\t\t
      \   struct ref **sought, int nr_sought,\n\t\t    struct oidset *gitmodules_oids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:1118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct ref*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1119
    functionName: ref_compare_name
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ref_compare_name(const struct ref *a, const struct ref *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1128
    functionName: cmp_ref_by_name
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmp_ref_by_name(const void *a_, const void *b_)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: copy_ref_list
      Src: /src/git/fetch-pack.c:1139,1
    - Dst: fetch_negotiator_init_noop
      Src: /src/git/fetch-pack.c:1148,1
    - Dst: fetch_negotiator_init
      Src: /src/git/fetch-pack.c:1150,1
    - Dst: sort_ref_list
      Src: /src/git/fetch-pack.c:1153,1
    - Dst: QSORT
      Src: /src/git/fetch-pack.c:1154,1
    - Dst: server_feature_value
      Src: /src/git/fetch-pack.c:1156,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1159,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1159,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1163,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1166,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1167,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1167,1
    - Dst: is_repository_shallow
      Src: /src/git/fetch-pack.c:1168,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1169,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1169,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1172,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1173,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1173,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1175,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1176,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1176,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1181,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1182,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1182,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1185,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1186,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1186,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1189,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1190,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1190,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1193,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1194,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1194,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1197,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1198,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1198,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1201,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1202,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1202,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1205,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1206,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1206,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1209,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1210,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1210,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1213,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1214,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1214,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1218,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1220,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1220,1
    - Dst: warning
      Src: /src/git/fetch-pack.c:1222,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1225,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1226,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1226,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1229,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1229,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1230,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1231,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1231,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1234,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1234,1
    - Dst: server_supports
      Src: /src/git/fetch-pack.c:1235,1
    - Dst: print_verbose
      Src: /src/git/fetch-pack.c:1236,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1236,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1238,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1238,1
    - Dst: server_supports_hash
      Src: /src/git/fetch-pack.c:1239,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1240,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1240,1
    - Dst: mark_complete_and_common_ref
      Src: /src/git/fetch-pack.c:1242,1
    - Dst: filter_refs
      Src: /src/git/fetch-pack.c:1243,1
    - Dst: everything_local
      Src: /src/git/fetch-pack.c:1244,1
    - Dst: packet_flush
      Src: /src/git/fetch-pack.c:1245,1
    - Dst: find_common
      Src: /src/git/fetch-pack.c:1248,1
    - Dst: warning
      Src: /src/git/fetch-pack.c:1253,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1253,1
    - Dst: packet_flush
      Src: /src/git/fetch-pack.c:1256,1
    - Dst: setup_alternate_shallow
      Src: /src/git/fetch-pack.c:1258,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1262,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1262,1
    - Dst: setup_temporary_shallow
      Src: /src/git/fetch-pack.c:1263,1
    - Dst: fsck_options_init
      Src: /src/git/fetch-pack.c:1267,1
    - Dst: get_pack
      Src: /src/git/fetch-pack.c:1268,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1270,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1270,1
    - Dst: fsck_finish
      Src: /src/git/fetch-pack.c:1271,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1272,1
    - Dst: fsck_options_clear
      Src: /src/git/fetch-pack.c:1275,1
    - Dst: struct fetch_negotiator*::release
      Src: /src/git/fetch-pack.c:1277,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 119
    argCount: 7
    argNames:
    - args
    - fd
    - orig_ref
    - sought
    - nr_sought
    - si
    - pack_lockfiles
    argTypes:
    - struct fetch_pack_args*
    - int[]
    - struct ref*
    - struct ref**
    - int
    - struct shallow_info*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1130
    functionDepth: 16
    functionLinenumber: 1130
    functionLinenumberEnd: 1279
    functionName: do_fetch_pack
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - sort_ref_list
    - filter_refs
    - copy_ref_list
    - packet_flush
    - fetch_negotiator_init
    - fsck_options_init
    - struct fetch_negotiator*::release
    - fsck_options_clear
    - die
    - everything_local
    - server_feature_value
    - setup_temporary_shallow
    - QSORT
    - server_supports_hash
    - fsck_finish
    - is_repository_shallow
    - _
    - warning
    - setup_alternate_shallow
    - get_pack
    - server_supports
    - mark_complete_and_common_ref
    - print_verbose
    - find_common
    - fetch_negotiator_init_noop
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *do_fetch_pack(struct fetch_pack_args *args,\n\t\t\t\t
      int fd[2],\n\t\t\t\t const struct ref *orig_ref,\n\t\t\t\t struct ref **sought,
      int nr_sought,\n\t\t\t\t struct shallow_info *si,\n\t\t\t\t struct string_list
      *pack_lockfiles)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_repository_shallow
      Src: /src/git/fetch-pack.c:1284,1
    - Dst: write_shallow_commits
      Src: /src/git/fetch-pack.c:1285,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1287,1
    - Dst: approxidate
      Src: /src/git/fetch-pack.c:1289,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1290,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1296,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1300,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - req_buf
    - args
    argTypes:
    - struct strbuf*
    - struct fetch_pack_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1301
    functionName: add_shallow_requests
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - is_repository_shallow
    - packet_buf_write
    - approxidate
    - write_shallow_commits
    linkageType: ''
    returnType: void
    signature: "void add_shallow_requests(struct strbuf *req_buf,\n\t\t\t\t const
      struct fetch_pack_args *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_supports_feature
      Src: /src/git/fetch-pack.c:1305,1
    - Dst: lookup_object
      Src: /src/git/fetch-pack.c:1321,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1327,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:1327,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - wants
    - req_buf
    argTypes:
    - struct ref*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1303
    functionDepth: 3
    functionLinenumber: 1303
    functionLinenumberEnd: 1331
    functionName: add_wants
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - lookup_object
    - oid_to_hex
    - server_supports_feature
    - packet_buf_write
    linkageType: ''
    returnType: void
    signature: void add_wants(const struct ref *wants, struct strbuf *req_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_iter_init
      Src: /src/git/fetch-pack.c:1337,1
    - Dst: oidset_iter_next
      Src: /src/git/fetch-pack.c:1339,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1340,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:1340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - req_buf
    - common
    argTypes:
    - struct strbuf*
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1333
    functionDepth: 3
    functionLinenumber: 1333
    functionLinenumberEnd: 1342
    functionName: add_common
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - oidset_iter_next
    - oidset_iter_init
    - packet_buf_write
    linkageType: ''
    returnType: void
    signature: void add_common(struct strbuf *req_buf, struct oidset *common)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidset_iter_init
      Src: /src/git/fetch-pack.c:1355,1
    - Dst: oidset_iter_next
      Src: /src/git/fetch-pack.c:1357,1
    - Dst: lookup_commit
      Src: /src/git/fetch-pack.c:1358,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1360,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:1361,1
    - Dst: struct fetch_negotiator*::have_sent
      Src: /src/git/fetch-pack.c:1362,1
    - Dst: struct fetch_negotiator*::next
      Src: /src/git/fetch-pack.c:1367,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1368,1
    - Dst: oid_to_hex
      Src: /src/git/fetch-pack.c:1368,1
    - Dst: next_flush
      Src: /src/git/fetch-pack.c:1374,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - negotiator
    - req_buf
    - haves_to_send
    - negotiation_include_oids
    argTypes:
    - struct fetch_negotiator*
    - struct strbuf*
    - int*
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1344
    functionDepth: 3
    functionLinenumber: 1344
    functionLinenumberEnd: 1377
    functionName: add_haves
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - struct fetch_negotiator*::next
    - oid_to_hex
    - packet_buf_write
    - lookup_commit
    - oidset_iter_next
    - struct fetch_negotiator*::have_sent
    - next_flush
    - oidset_iter_init
    linkageType: ''
    returnType: int
    signature: "int add_haves(struct fetch_negotiator *negotiator,\n\t\t     struct
      strbuf *req_buf,\n\t\t     int *haves_to_send,\n\t\t     struct oidset *negotiation_include_oids)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ensure_server_supports_v2
      Src: /src/git/fetch-pack.c:1384,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1385,1
    - Dst: server_supports_v2
      Src: /src/git/fetch-pack.c:1386,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1387,1
    - Dst: git_user_agent_sanitized
      Src: /src/git/fetch-pack.c:1387,1
    - Dst: server_supports_v2
      Src: /src/git/fetch-pack.c:1388,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1389,1
    - Dst: trace2_session_id
      Src: /src/git/fetch-pack.c:1389,1
    - Dst: ensure_server_supports_v2
      Src: /src/git/fetch-pack.c:1392,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1394,1
    - Dst: server_feature_v2
      Src: /src/git/fetch-pack.c:1398,1
    - Dst: hash_algo_by_name
      Src: /src/git/fetch-pack.c:1399,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/fetch-pack.c:1400,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1401,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1401,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1403,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/fetch-pack.c:1404,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1405,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1405,1
    - Dst: packet_buf_delim
      Src: /src/git/fetch-pack.c:1408,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - req_buf
    - server_options
    argTypes:
    - struct strbuf*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1379
    functionDepth: 2
    functionLinenumber: 1379
    functionLinenumberEnd: 1409
    functionName: write_fetch_command_and_capabilities
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - die
    - packet_buf_write
    - packet_buf_delim
    - ensure_server_supports_v2
    - trace2_session_id
    - git_user_agent_sanitized
    - _
    - server_supports_v2
    - hash_algo_by_name
    - server_feature_v2
    - hash_algo_by_ptr
    linkageType: ''
    returnType: void
    signature: "void write_fetch_command_and_capabilities(struct strbuf *req_buf,\n\t\t\t\t\t\t
      const struct string_list *server_options)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: write_fetch_command_and_capabilities
      Src: /src/git/fetch-pack.c:1422,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1425,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1427,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1429,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1431,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1433,1
    - Dst: server_supports_feature
      Src: /src/git/fetch-pack.c:1436,1
    - Dst: add_shallow_requests
      Src: /src/git/fetch-pack.c:1437,1
    - Dst: is_repository_shallow
      Src: /src/git/fetch-pack.c:1438,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1439,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1439,1
    - Dst: send_filter
      Src: /src/git/fetch-pack.c:1442,1
    - Dst: server_supports_feature
      Src: /src/git/fetch-pack.c:1443,1
    - Dst: server_supports_feature
      Src: /src/git/fetch-pack.c:1445,1
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:1452,1
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:1452,1
    - Dst: strbuf_addch
      Src: /src/git/fetch-pack.c:1454,1
    - Dst: strbuf_addstr
      Src: /src/git/fetch-pack.c:1455,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1459,1
    - Dst: strbuf_release
      Src: /src/git/fetch-pack.c:1461,1
    - Dst: add_wants
      Src: /src/git/fetch-pack.c:1466,1
    - Dst: add_common
      Src: /src/git/fetch-pack.c:1469,1
    - Dst: add_haves
      Src: /src/git/fetch-pack.c:1471,1
    - Dst: trace2_data_intmax
      Src: /src/git/fetch-pack.c:1474,1
    - Dst: trace2_data_intmax
      Src: /src/git/fetch-pack.c:1475,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:1478,1
    - Dst: packet_buf_flush
      Src: /src/git/fetch-pack.c:1483,1
    - Dst: write_in_full
      Src: /src/git/fetch-pack.c:1484,1
    - Dst: die_errno
      Src: /src/git/fetch-pack.c:1485,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1485,1
    - Dst: strbuf_release
      Src: /src/git/fetch-pack.c:1487,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 10
    argNames:
    - negotiator
    - fd_out
    - args
    - wants
    - common
    - haves_to_send
    - in_vain
    - sideband_all
    - seen_ack
    - negotiation_include_oids
    argTypes:
    - struct fetch_negotiator*
    - int
    - struct fetch_pack_args*
    - struct ref*
    - struct oidset*
    - int*
    - int*
    - int
    - int
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1411
    functionDepth: 4
    functionLinenumber: 1411
    functionLinenumberEnd: 1489
    functionName: send_fetch_request
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - add_wants
    - trace2_data_intmax
    - write_fetch_command_and_capabilities
    - add_common
    - strcmp
    - add_shallow_requests
    - strbuf_release
    - server_supports_feature
    - die
    - packet_buf_flush
    - send_filter
    - strbuf_addstr
    - write_in_full
    - die_errno
    - is_repository_shallow
    - _
    - add_haves
    - packet_buf_write
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: "int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out,\n\t\t\t
      \     struct fetch_pack_args *args,\n\t\t\t      const struct ref *wants, struct
      oidset *common,\n\t\t\t      int *haves_to_send, int *in_vain,\n\t\t\t      int
      sideband_all, int seen_ack,\n\t\t\t      struct oidset *negotiation_include_oids)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_peek
      Src: /src/git/fetch-pack.c:1502,1
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:1503,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1509,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1509,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1512,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1512,1
    - Dst: packet_reader_read
      Src: /src/git/fetch-pack.c:1514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - reader
    - section
    - peek
    argTypes:
    - struct packet_reader*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1518
    functionName: process_section_header
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - die
    - strcmp
    - _
    - packet_reader_peek
    - packet_reader_read
    linkageType: ''
    returnType: int
    signature: "int process_section_header(struct packet_reader *reader,\n\t\t\t\t
      \ const char *section, int peek)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/fetch-pack.c:1525,1
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:1528,1
    - Dst: skip_prefix
      Src: /src/git/fetch-pack.c:1531,1
    - Dst: get_oid_hex
      Src: /src/git/fetch-pack.c:1532,1
    - Dst: lookup_commit
      Src: /src/git/fetch-pack.c:1534,1
    - Dst: struct fetch_negotiator*::ack
      Src: /src/git/fetch-pack.c:1536,1
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:1541,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1546,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1546,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1551,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1551,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1565,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1565,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1571,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1571,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 4
    argNames:
    - negotiator
    - reader
    - common_oid
    - received_ready
    argTypes:
    - struct fetch_negotiator*
    - struct packet_reader*
    - struct object_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1520
    functionDepth: 4
    functionLinenumber: 1520
    functionLinenumberEnd: 1574
    functionName: process_ack
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - die
    - get_oid_hex
    - struct fetch_negotiator*::ack
    - lookup_commit
    - strcmp
    - skip_prefix
    - packet_reader_read
    - _
    linkageType: ''
    returnType: int
    signature: "int process_ack(struct fetch_negotiator *negotiator,\n\t\t       struct
      packet_reader *reader,\n\t\t       struct object_id *common_oid,\n\t\t       int
      *received_ready)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: process_section_header
      Src: /src/git/fetch-pack.c:1583,1
    - Dst: packet_reader_read
      Src: /src/git/fetch-pack.c:1584,1
    - Dst: skip_prefix
      Src: /src/git/fetch-pack.c:1588,1
    - Dst: get_oid_hex
      Src: /src/git/fetch-pack.c:1589,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1590,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1590,1
    - Dst: oid_array_append
      Src: /src/git/fetch-pack.c:1591,1
    - Dst: skip_prefix
      Src: /src/git/fetch-pack.c:1594,1
    - Dst: get_oid_hex
      Src: /src/git/fetch-pack.c:1595,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1596,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1596,1
    - Dst: lookup_object
      Src: /src/git/fetch-pack.c:1597,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1598,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1598,1
    - Dst: parse_object
      Src: /src/git/fetch-pack.c:1600,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1601,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1601,1
    - Dst: unregister_shallow
      Src: /src/git/fetch-pack.c:1602,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1603,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1603,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1607,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1607,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1612,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1612,1
    - Dst: register_shallow
      Src: /src/git/fetch-pack.c:1623,1
    - Dst: setup_alternate_shallow
      Src: /src/git/fetch-pack.c:1624,1
    - Dst: prepare_shallow_info
      Src: /src/git/fetch-pack.c:1633,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1636,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1636,1
    - Dst: setup_temporary_shallow
      Src: /src/git/fetch-pack.c:1638,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 4
    argNames:
    - args
    - reader
    - shallows
    - si
    argTypes:
    - struct fetch_pack_args*
    - struct packet_reader*
    - struct oid_array*
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1576
    functionDepth: 4
    functionLinenumber: 1576
    functionLinenumberEnd: 1644
    functionName: receive_shallow_info
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - die
    - get_oid_hex
    - setup_temporary_shallow
    - setup_alternate_shallow
    - parse_object
    - process_section_header
    - register_shallow
    - lookup_object
    - unregister_shallow
    - prepare_shallow_info
    - _
    - skip_prefix
    - oid_array_append
    - packet_reader_read
    linkageType: ''
    returnType: void
    signature: "void receive_shallow_info(struct fetch_pack_args *args,\n\t\t\t\t
      struct packet_reader *reader,\n\t\t\t\t struct oid_array *shallows,\n\t\t\t\t
      struct shallow_info *si)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - ref
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1646
    functionDepth: 0
    functionLinenumber: 1646
    functionLinenumberEnd: 1649
    functionName: cmp_name_ref
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmp_name_ref(const void *name, const void *ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: process_section_header
      Src: /src/git/fetch-pack.c:1654,1
    - Dst: packet_reader_read
      Src: /src/git/fetch-pack.c:1655,1
    - Dst: parse_oid_hex
      Src: /src/git/fetch-pack.c:1660,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1661,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1661,1
    - Dst: bsearch
      Src: /src/git/fetch-pack.c:1663,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1666,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1666,1
    - Dst: oidcpy
      Src: /src/git/fetch-pack.c:1667,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1671,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - reader
    - sought
    - nr_sought
    argTypes:
    - struct packet_reader*
    - struct ref**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1651
    functionDepth: 2
    functionLinenumber: 1651
    functionLinenumberEnd: 1672
    functionName: receive_wanted_refs
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - die
    - oidcpy
    - process_section_header
    - parse_oid_hex
    - _
    - bsearch
    - packet_reader_read
    linkageType: ''
    returnType: void
    signature: "void receive_wanted_refs(struct packet_reader *reader,\n\t\t\t\tstruct
      ref **sought, int nr_sought)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: process_section_header
      Src: /src/git/fetch-pack.c:1677,1
    - Dst: packet_reader_read
      Src: /src/git/fetch-pack.c:1678,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1681,1
    - Dst: string_list_append
      Src: /src/git/fetch-pack.c:1683,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - reader
    - uris
    argTypes:
    - struct packet_reader*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1674
    functionDepth: 2
    functionLinenumber: 1674
    functionLinenumberEnd: 1687
    functionName: receive_packfile_uris
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - process_section_header
    - die
    - packet_reader_read
    - string_list_append
    linkageType: ''
    returnType: void
    signature: "void receive_packfile_uris(struct packet_reader *reader,\n\t\t\t\t
      \ struct string_list *uris)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_stateless_delimiter
      Src: /src/git/fetch-pack.c:1700,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stateless_rpc
    - reader
    argTypes:
    - int
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1697
    functionDepth: 1
    functionLinenumber: 1697
    functionLinenumberEnd: 1702
    functionName: do_check_stateless_delimiter
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - check_stateless_delimiter
    - _
    linkageType: ''
    returnType: void
    signature: "void do_check_stateless_delimiter(int stateless_rpc,\n\t\t\t\t\t struct
      packet_reader *reader)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: copy_ref_list
      Src: /src/git/fetch-pack.c:1714,1
    - Dst: fsck_options_init
      Src: /src/git/fetch-pack.c:1732,1
    - Dst: server_feature_v2
      Src: /src/git/fetch-pack.c:1734,1
    - Dst: promisor_remote_reply
      Src: /src/git/fetch-pack.c:1735,1
    - Dst: promisor_remote_construct_filter
      Src: /src/git/fetch-pack.c:1739,1
    - Dst: list_objects_filter_release
      Src: /src/git/fetch-pack.c:1741,1
    - Dst: gently_parse_list_objects_filter
      Src: /src/git/fetch-pack.c:1746,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1749,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1749,1
    - Dst: free
      Src: /src/git/fetch-pack.c:1752,1
    - Dst: strbuf_release
      Src: /src/git/fetch-pack.c:1753,1
    - Dst: fetch_negotiator_init_noop
      Src: /src/git/fetch-pack.c:1758,1
    - Dst: fetch_negotiator_init
      Src: /src/git/fetch-pack.c:1760,1
    - Dst: packet_reader_init
      Src: /src/git/fetch-pack.c:1762,1
    - Dst: git_env_bool
      Src: /src/git/fetch-pack.c:1765,1
    - Dst: server_supports_feature
      Src: /src/git/fetch-pack.c:1766,1
    - Dst: sort_ref_list
      Src: /src/git/fetch-pack.c:1774,1
    - Dst: QSORT
      Src: /src/git/fetch-pack.c:1775,1
    - Dst: mark_complete_and_common_ref
      Src: /src/git/fetch-pack.c:1784,1
    - Dst: filter_refs
      Src: /src/git/fetch-pack.c:1785,1
    - Dst: everything_local
      Src: /src/git/fetch-pack.c:1786,1
    - Dst: mark_tips
      Src: /src/git/fetch-pack.c:1791,1
    - Dst: add_oids_to_set
      Src: /src/git/fetch-pack.c:1792,1
    - Dst: for_each_cached_alternate
      Src: /src/git/fetch-pack.c:1794,1
    - Dst: trace2_region_enter
      Src: /src/git/fetch-pack.c:1800,1
    - Dst: trace2_region_enter_printf
      Src: /src/git/fetch-pack.c:1805,1
    - Dst: send_fetch_request
      Src: /src/git/fetch-pack.c:1808,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/fetch-pack.c:1814,1
    - Dst: process_section_header
      Src: /src/git/fetch-pack.c:1824,1
    - Dst: process_ack
      Src: /src/git/fetch-pack.c:1825,1
    - Dst: oidset_insert
      Src: /src/git/fetch-pack.c:1829,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/fetch-pack.c:1831,1
    - Dst: do_check_stateless_delimiter
      Src: /src/git/fetch-pack.c:1841,1
    - Dst: trace2_region_leave
      Src: /src/git/fetch-pack.c:1846,1
    - Dst: trace2_data_intmax
      Src: /src/git/fetch-pack.c:1849,1
    - Dst: process_section_header
      Src: /src/git/fetch-pack.c:1852,1
    - Dst: receive_shallow_info
      Src: /src/git/fetch-pack.c:1853,1
    - Dst: process_section_header
      Src: /src/git/fetch-pack.c:1855,1
    - Dst: receive_wanted_refs
      Src: /src/git/fetch-pack.c:1856,1
    - Dst: git_env_bool
      Src: /src/git/fetch-pack.c:1859,1
    - Dst: process_section_header
      Src: /src/git/fetch-pack.c:1861,1
    - Dst: receive_packfile_uris
      Src: /src/git/fetch-pack.c:1862,1
    - Dst: process_section_header
      Src: /src/git/fetch-pack.c:1866,1
    - Dst: close
      Src: /src/git/fetch-pack.c:1873,1
    - Dst: get_pack
      Src: /src/git/fetch-pack.c:1876,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1879,1
    - Dst: _
      Src: /src/git/fetch-pack.c:1879,1
    - Dst: do_check_stateless_delimiter
      Src: /src/git/fetch-pack.c:1880,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1896,1
    - Dst: strvec_pushf
      Src: /src/git/fetch-pack.c:1897,1
    - Dst: strvec_pushf
      Src: /src/git/fetch-pack.c:1901,1
    - Dst: strvec_push
      Src: /src/git/fetch-pack.c:1903,1
    - Dst: start_command
      Src: /src/git/fetch-pack.c:1907,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1908,1
    - Dst: read_in_full
      Src: /src/git/fetch-pack.c:1910,1
    - Dst: memcmp
      Src: /src/git/fetch-pack.c:1911,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1912,1
    - Dst: read_in_full
      Src: /src/git/fetch-pack.c:1914,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1917,1
    - Dst: parse_gitmodules_oids
      Src: /src/git/fetch-pack.c:1921,1
    - Dst: close
      Src: /src/git/fetch-pack.c:1923,1
    - Dst: finish_command
      Src: /src/git/fetch-pack.c:1925,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1926,1
    - Dst: memcmp
      Src: /src/git/fetch-pack.c:1928,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1930,1
    - Dst: string_list_append_nodup
      Src: /src/git/fetch-pack.c:1934,1
    - Dst: xstrfmt
      Src: /src/git/fetch-pack.c:1935,1
    - Dst: repo_get_object_directory
      Src: /src/git/fetch-pack.c:1936,1
    - Dst: string_list_clear
      Src: /src/git/fetch-pack.c:1939,1
    - Dst: strvec_clear
      Src: /src/git/fetch-pack.c:1940,1
    - Dst: fsck_finish
      Src: /src/git/fetch-pack.c:1942,1
    - Dst: die
      Src: /src/git/fetch-pack.c:1943,1
    - Dst: struct fetch_negotiator*::release
      Src: /src/git/fetch-pack.c:1946,1
    - Dst: fsck_options_clear
      Src: /src/git/fetch-pack.c:1948,1
    - Dst: oidset_clear
      Src: /src/git/fetch-pack.c:1949,1
    - Dst: oidset_clear
      Src: /src/git/fetch-pack.c:1950,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 125
    argCount: 8
    argNames:
    - args
    - fd
    - orig_ref
    - sought
    - nr_sought
    - shallows
    - si
    - pack_lockfiles
    argTypes:
    - struct fetch_pack_args*
    - int[]
    - struct ref*
    - struct ref**
    - int
    - struct oid_array*
    - struct shallow_info*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1704
    functionDepth: 15
    functionLinenumber: 1704
    functionLinenumberEnd: 1952
    functionName: do_fetch_pack_v2
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - sort_ref_list
    - strvec_push
    - promisor_remote_construct_filter
    - filter_refs
    - trace2_data_intmax
    - copy_ref_list
    - parse_gitmodules_oids
    - trace2_region_enter
    - oidset_clear
    - do_check_stateless_delimiter
    - fetch_negotiator_init
    - free
    - oidset_insert
    - fsck_options_init
    - send_fetch_request
    - struct fetch_negotiator*::release
    - list_objects_filter_release
    - fsck_options_clear
    - strbuf_release
    - die
    - git_env_bool
    - server_supports_feature
    - everything_local
    - finish_command
    - process_section_header
    - QSORT
    - for_each_cached_alternate
    - string_list_clear
    - promisor_remote_reply
    - fsck_finish
    - receive_packfile_uris
    - receive_shallow_info
    - process_ack
    - read_in_full
    - add_oids_to_set
    - trace2_region_enter_printf
    - repo_get_object_directory
    - _
    - server_feature_v2
    - get_pack
    - strvec_pushf
    - gently_parse_list_objects_filter
    - mark_complete_and_common_ref
    - string_list_append_nodup
    - trace2_region_leave_printf
    - trace2_region_leave
    - xstrfmt
    - packet_reader_init
    - mark_tips
    - strvec_clear
    - receive_wanted_refs
    - close
    - fetch_negotiator_init_noop
    - start_command
    - memcmp
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *do_fetch_pack_v2(struct fetch_pack_args *args,\n\t\t\t\t
      \   int fd[2],\n\t\t\t\t    const struct ref *orig_ref,\n\t\t\t\t    struct
      ref **sought, int nr_sought,\n\t\t\t\t    struct oid_array *shallows,\n\t\t\t\t
      \   struct shallow_info *si,\n\t\t\t\t    struct string_list *pack_lockfiles)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/fetch-pack.c:1959,1
    - Dst: git_config_pathname
      Src: /src/git/fetch-pack.c:1962,1
    - Dst: strbuf_addf
      Src: /src/git/fetch-pack.c:1965,1
    - Dst: free
      Src: /src/git/fetch-pack.c:1967,1
    - Dst: skip_prefix
      Src: /src/git/fetch-pack.c:1971,1
    - Dst: config_error_nonbool
      Src: /src/git/fetch-pack.c:1973,1
    - Dst: is_valid_msg_type
      Src: /src/git/fetch-pack.c:1974,1
    - Dst: strbuf_addf
      Src: /src/git/fetch-pack.c:1975,1
    - Dst: warning
      Src: /src/git/fetch-pack.c:1978,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - var
    - value
    - msg_types
    argTypes:
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1954
    functionDepth: 2
    functionLinenumber: 1954
    functionLinenumberEnd: 1983
    functionName: fetch_pack_fsck_config
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 1
    functionsReached:
    - git_config_pathname
    - strbuf_addf
    - is_valid_msg_type
    - strcmp
    - warning
    - free
    - skip_prefix
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int fetch_pack_fsck_config(const char *var, const char *value,\n\t\t\t
      \  struct strbuf *msg_types)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fetch_pack_fsck_config
      Src: /src/git/fetch-pack.c:1988,1
    - Dst: git_default_config
      Src: /src/git/fetch-pack.c:1990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1985
    functionDepth: 4
    functionLinenumber: 1985
    functionLinenumberEnd: 1993
    functionName: fetch_pack_config_cb
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - git_default_config
    - fetch_pack_fsck_config
    linkageType: ''
    returnType: int
    signature: "int fetch_pack_config_cb(const char *var, const char *value,\n\t\t\t\tconst
      struct config_context *ctx, void *cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/fetch-pack.c:1997,1
    - Dst: repo_config_get_int
      Src: /src/git/fetch-pack.c:1998,1
    - Dst: repo_config_get_bool
      Src: /src/git/fetch-pack.c:1999,1
    - Dst: repo_config_get_bool
      Src: /src/git/fetch-pack.c:2000,1
    - Dst: repo_config_get_bool
      Src: /src/git/fetch-pack.c:2001,1
    - Dst: repo_config_get_bool
      Src: /src/git/fetch-pack.c:2002,1
    - Dst: repo_config_get_string
      Src: /src/git/fetch-pack.c:2006,1
    - Dst: string_list_split
      Src: /src/git/fetch-pack.c:2007,1
    - Dst: free
      Src: /src/git/fetch-pack.c:2008,1
    - Dst: repo_config
      Src: /src/git/fetch-pack.c:2012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2013
      start: 1995
    functionDepth: 5
    functionLinenumber: 1995
    functionLinenumberEnd: 2013
    functionName: fetch_pack_config
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - repo_config_get_string
    - string_list_split
    - repo_config_get_bool
    - free
    - repo_config
    linkageType: ''
    returnType: void
    signature: void fetch_pack_config(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fetch_pack_config
      Src: /src/git/fetch-pack.c:2020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2015
    functionDepth: 6
    functionLinenumber: 2015
    functionLinenumberEnd: 2026
    functionName: fetch_pack_setup
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - fetch_pack_config
    linkageType: ''
    returnType: void
    signature: void fetch_pack_setup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/fetch-pack.c:2035,1
    - Dst: string_list_clear
      Src: /src/git/fetch-pack.c:2045,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ref
    - nr
    argTypes:
    - struct ref**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2028
    functionDepth: 2
    functionLinenumber: 2028
    functionLinenumberEnd: 2047
    functionName: remove_duplicates_in_refs
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_insert
    linkageType: ''
    returnType: int
    signature: int remove_duplicates_in_refs(struct ref **ref, int nr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: unlink_or_warn
      Src: /src/git/fetch-pack.c:2059,1
    - Dst: git_path_shallow
      Src: /src/git/fetch-pack.c:2059,1
    - Dst: rollback_shallow_file
      Src: /src/git/fetch-pack.c:2060,1
    - Dst: commit_shallow_file
      Src: /src/git/fetch-pack.c:2062,1
    - Dst: odb_has_object
      Src: /src/git/fetch-pack.c:2080,1
    - Dst: oid_array_append
      Src: /src/git/fetch-pack.c:2082,1
    - Dst: setup_alternate_shallow
      Src: /src/git/fetch-pack.c:2084,1
    - Dst: commit_shallow_file
      Src: /src/git/fetch-pack.c:2087,1
    - Dst: oid_array_clear
      Src: /src/git/fetch-pack.c:2090,1
    - Dst: remove_nonexistent_theirs_shallow
      Src: /src/git/fetch-pack.c:2097,1
    - Dst: oid_array_append
      Src: /src/git/fetch-pack.c:2101,1
    - Dst: assign_shallow_commits_to_refs
      Src: /src/git/fetch-pack.c:2113,1
    - Dst: oid_array_clear
      Src: /src/git/fetch-pack.c:2115,1
    - Dst: oid_array_append
      Src: /src/git/fetch-pack.c:2119,1
    - Dst: oid_array_append
      Src: /src/git/fetch-pack.c:2121,1
    - Dst: setup_alternate_shallow
      Src: /src/git/fetch-pack.c:2122,1
    - Dst: commit_shallow_file
      Src: /src/git/fetch-pack.c:2125,1
    - Dst: oid_array_clear
      Src: /src/git/fetch-pack.c:2126,1
    - Dst: oid_array_clear
      Src: /src/git/fetch-pack.c:2127,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/fetch-pack.c:2136,1
    - Dst: assign_shallow_commits_to_refs
      Src: /src/git/fetch-pack.c:2137,1
    - Dst: free
      Src: /src/git/fetch-pack.c:2143,1
    - Dst: oid_array_clear
      Src: /src/git/fetch-pack.c:2144,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 4
    argNames:
    - args
    - sought
    - nr_sought
    - si
    argTypes:
    - struct fetch_pack_args*
    - struct ref**
    - int
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2049
    functionDepth: 12
    functionLinenumber: 2049
    functionLinenumberEnd: 2145
    functionName: update_shallow
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - commit_shallow_file
    - unlink_or_warn
    - oid_array_clear
    - git_path_shallow
    - rollback_shallow_file
    - odb_has_object
    - remove_nonexistent_theirs_shallow
    - CALLOC_ARRAY
    - free
    - oid_array_append
    - setup_alternate_shallow
    - assign_shallow_commits_to_refs
    linkageType: ''
    returnType: void
    signature: "void update_shallow(struct fetch_pack_args *args,\n\t\t\t   struct
      ref **sought, int nr_sought,\n\t\t\t   struct shallow_info *si)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cb_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 2147
    functionDepth: 0
    functionLinenumber: 2147
    functionLinenumberEnd: 2156
    functionName: iterate_ref_map
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *iterate_ref_map(void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fetch_pack_setup
      Src: /src/git/fetch-pack.c:2160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2158
    functionDepth: 7
    functionLinenumber: 2158
    functionLinenumberEnd: 2166
    functionName: fetch_pack_fsck_objects
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 2
    functionsReached:
    - fetch_pack_setup
    linkageType: ''
    returnType: int
    signature: int fetch_pack_fsck_objects(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fetch_pack_setup
      Src: /src/git/fetch-pack.c:2180,1
    - Dst: remove_duplicates_in_refs
      Src: /src/git/fetch-pack.c:2182,1
    - Dst: packet_flush
      Src: /src/git/fetch-pack.c:2185,1
    - Dst: die
      Src: /src/git/fetch-pack.c:2186,1
    - Dst: _
      Src: /src/git/fetch-pack.c:2186,1
    - Dst: BUG
      Src: /src/git/fetch-pack.c:2190,1
    - Dst: memset
      Src: /src/git/fetch-pack.c:2191,1
    - Dst: do_fetch_pack_v2
      Src: /src/git/fetch-pack.c:2192,1
    - Dst: prepare_shallow_info
      Src: /src/git/fetch-pack.c:2196,1
    - Dst: do_fetch_pack
      Src: /src/git/fetch-pack.c:2197,1
    - Dst: odb_reprepare
      Src: /src/git/fetch-pack.c:2200,1
    - Dst: check_connected
      Src: /src/git/fetch-pack.c:2208,1
    - Dst: error
      Src: /src/git/fetch-pack.c:2209,1
    - Dst: _
      Src: /src/git/fetch-pack.c:2209,1
    - Dst: free_refs
      Src: /src/git/fetch-pack.c:2210,1
    - Dst: rollback_shallow_file
      Src: /src/git/fetch-pack.c:2212,1
    - Dst: update_shallow
      Src: /src/git/fetch-pack.c:2218,1
    - Dst: clear_shallow_info
      Src: /src/git/fetch-pack.c:2220,1
    - Dst: oid_array_clear
      Src: /src/git/fetch-pack.c:2221,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 8
    argNames:
    - args
    - fd
    - ref
    - sought
    - nr_sought
    - shallow
    - pack_lockfiles
    - version
    argTypes:
    - struct fetch_pack_args*
    - int[]
    - struct ref*
    - struct ref**
    - int
    - struct oid_array*
    - struct string_list*
    - enum protocol_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2168
    functionDepth: 17
    functionLinenumber: 2168
    functionLinenumberEnd: 2223
    functionName: fetch_pack
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 2
    functionsReached:
    - error
    - memset
    - odb_reprepare
    - die
    - check_connected
    - do_fetch_pack_v2
    - remove_duplicates_in_refs
    - do_fetch_pack
    - oid_array_clear
    - packet_flush
    - free_refs
    - rollback_shallow_file
    - clear_shallow_info
    - fetch_pack_setup
    - prepare_shallow_info
    - _
    - BUG
    - update_shallow
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *fetch_pack(struct fetch_pack_args *args,\n\t\t       int
      fd[],\n\t\t       const struct ref *ref,\n\t\t       struct ref **sought, int
      nr_sought,\n\t\t       struct oid_array *shallow,\n\t\t       struct string_list
      *pack_lockfiles,\n\t\t       enum protocol_version version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_object_array
      Src: /src/git/fetch-pack.c:2229,1
    - Dst: lookup_object
      Src: /src/git/fetch-pack.c:2229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - oid
    - data
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2225
    functionDepth: 3
    functionLinenumber: 2225
    functionLinenumberEnd: 2231
    functionName: add_to_object_array
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - lookup_object
    - add_object_array
    linkageType: ''
    returnType: int
    signature: int add_to_object_array(const struct object_id *oid, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_iter_init
      Src: /src/git/fetch-pack.c:2237,1
    - Dst: oidset_iter_next
      Src: /src/git/fetch-pack.c:2239,1
    - Dst: lookup_object
      Src: /src/git/fetch-pack.c:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2233
    functionDepth: 2
    functionLinenumber: 2233
    functionLinenumberEnd: 2243
    functionName: clear_common_flag
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 0
    functionsReached:
    - lookup_object
    - oidset_iter_next
    - oidset_iter_init
    linkageType: ''
    returnType: void
    signature: void clear_common_flag(struct oidset *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fetch_negotiator_init
      Src: /src/git/fetch-pack.c:2264,1
    - Dst: mark_tips
      Src: /src/git/fetch-pack.c:2265,1
    - Dst: add_oids_to_set
      Src: /src/git/fetch-pack.c:2267,1
    - Dst: packet_reader_init
      Src: /src/git/fetch-pack.c:2270,1
    - Dst: oid_array_for_each
      Src: /src/git/fetch-pack.c:2274,1
    - Dst: trace2_region_enter
      Src: /src/git/fetch-pack.c:2278,1
    - Dst: trace2_region_enter_printf
      Src: /src/git/fetch-pack.c:2286,1
    - Dst: strbuf_reset
      Src: /src/git/fetch-pack.c:2289,1
    - Dst: write_fetch_command_and_capabilities
      Src: /src/git/fetch-pack.c:2290,1
    - Dst: packet_buf_write
      Src: /src/git/fetch-pack.c:2292,1
    - Dst: add_haves
      Src: /src/git/fetch-pack.c:2294,1
    - Dst: trace2_data_intmax
      Src: /src/git/fetch-pack.c:2300,1
    - Dst: trace2_data_intmax
      Src: /src/git/fetch-pack.c:2302,1
    - Dst: packet_buf_flush
      Src: /src/git/fetch-pack.c:2306,1
    - Dst: write_in_full
      Src: /src/git/fetch-pack.c:2307,1
    - Dst: die_errno
      Src: /src/git/fetch-pack.c:2308,1
    - Dst: _
      Src: /src/git/fetch-pack.c:2308,1
    - Dst: process_section_header
      Src: /src/git/fetch-pack.c:2311,1
    - Dst: process_ack
      Src: /src/git/fetch-pack.c:2312,1
    - Dst: lookup_commit
      Src: /src/git/fetch-pack.c:2314,1
    - Dst: parse_commit_or_die
      Src: /src/git/fetch-pack.c:2319,1
    - Dst: commit_graph_generation
      Src: /src/git/fetch-pack.c:2321,1
    - Dst: oidset_insert
      Src: /src/git/fetch-pack.c:2327,1
    - Dst: die
      Src: /src/git/fetch-pack.c:2330,1
    - Dst: _
      Src: /src/git/fetch-pack.c:2330,1
    - Dst: do_check_stateless_delimiter
      Src: /src/git/fetch-pack.c:2332,1
    - Dst: can_all_from_reach_with_flag
      Src: /src/git/fetch-pack.c:2333,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/fetch-pack.c:2337,1
    - Dst: trace2_region_leave
      Src: /src/git/fetch-pack.c:2341,1
    - Dst: trace2_data_intmax
      Src: /src/git/fetch-pack.c:2342,1
    - Dst: clear_common_flag
      Src: /src/git/fetch-pack.c:2345,1
    - Dst: object_array_clear
      Src: /src/git/fetch-pack.c:2346,1
    - Dst: oidset_clear
      Src: /src/git/fetch-pack.c:2347,1
    - Dst: struct fetch_negotiator::release
      Src: /src/git/fetch-pack.c:2348,1
    - Dst: strbuf_release
      Src: /src/git/fetch-pack.c:2349,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 6
    argNames:
    - negotiation_restrict_tips
    - server_options
    - stateless_rpc
    - fd
    - acked_commits
    - negotiation_include_tips
    argTypes:
    - struct oid_array*
    - struct string_list*
    - int
    - int[]
    - struct oidset*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2245
    functionDepth: 15
    functionLinenumber: 2245
    functionLinenumberEnd: 2350
    functionName: negotiate_using_fetch
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 1
    functionsReached:
    - trace2_data_intmax
    - object_array_clear
    - write_fetch_command_and_capabilities
    - trace2_region_enter
    - oidset_clear
    - do_check_stateless_delimiter
    - fetch_negotiator_init
    - oidset_insert
    - parse_commit_or_die
    - strbuf_release
    - die
    - commit_graph_generation
    - packet_buf_flush
    - process_section_header
    - write_in_full
    - struct fetch_negotiator::release
    - oid_array_for_each
    - die_errno
    - process_ack
    - add_oids_to_set
    - trace2_region_enter_printf
    - clear_common_flag
    - _
    - add_haves
    - can_all_from_reach_with_flag
    - packet_buf_write
    - strbuf_reset
    - trace2_region_leave_printf
    - trace2_region_leave
    - packet_reader_init
    - mark_tips
    - lookup_commit
    linkageType: ''
    returnType: void
    signature: "void negotiate_using_fetch(const struct oid_array *negotiation_restrict_tips,\n\t\t\t
      \  const struct string_list *server_options,\n\t\t\t   int stateless_rpc,\n\t\t\t
      \  int fd[],\n\t\t\t   struct oidset *acked_commits,\n\t\t\t   const struct
      oid_array *negotiation_include_tips)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/fetch-pack.c:2363,1
    - Dst: _
      Src: /src/git/fetch-pack.c:2363,1
    - Dst: error
      Src: /src/git/fetch-pack.c:2366,1
    - Dst: _
      Src: /src/git/fetch-pack.c:2366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - sought
    - nr_sought
    argTypes:
    - struct ref**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2352
    functionDepth: 0
    functionLinenumber: 2352
    functionLinenumberEnd: 2373
    functionName: report_unmatched_refs
    functionSourceFile: /src/git/fetch-pack.c
    functionUses: 1
    functionsReached:
    - error
    - _
    linkageType: ''
    returnType: int
    signature: int report_unmatched_refs(struct ref **sought, int nr_sought)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_size
      Src: /src/git/oidset.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: oidset_size
    functionSourceFile: /src/git/oidset.h
    functionUses: 5
    functionsReached:
    - kh_size
    linkageType: ''
    returnType: int
    signature: int oidset_size(const struct oidset *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kh_begin
      Src: /src/git/oidset.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - set
    - iter
    argTypes:
    - struct oidset*
    - struct oidset_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: oidset_iter_init
    functionSourceFile: /src/git/oidset.h
    functionUses: 8
    functionsReached:
    - kh_begin
    linkageType: ''
    returnType: void
    signature: "void oidset_iter_init(const struct oidset *set,\n\t\t\t\t    struct
      oidset_iter *iter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_end
      Src: /src/git/oidset.h:115,1
    - Dst: kh_exist
      Src: /src/git/oidset.h:116,1
    - Dst: kh_key
      Src: /src/git/oidset.h:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct oidset_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: oidset_iter_next
    functionSourceFile: /src/git/oidset.h
    functionUses: 8
    functionsReached:
    - kh_key
    - kh_exist
    - kh_end
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *oidset_iter_next(struct oidset_iter *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_iter_init
      Src: /src/git/oidset.h:125,1
    - Dst: oidset_iter_next
      Src: /src/git/oidset.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - set
    - iter
    argTypes:
    - struct oidset*
    - struct oidset_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: oidset_iter_first
    functionSourceFile: /src/git/oidset.h
    functionUses: 0
    functionsReached:
    - oidset_iter_next
    - oidset_iter_init
    linkageType: ''
    returnType: struct object_id
    signature: "struct object_id *oidset_iter_first(struct oidset *set,\n\t\t\t\t\t\t
      \ struct oidset_iter *iter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/hook.c:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: is_known_hook
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool is_known_hook(const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path_replace
      Src: /src/git/hook.c:35,1
    - Dst: access
      Src: /src/git/hook.c:36,1
    - Dst: strbuf_addstr
      Src: /src/git/hook.c:41,1
    - Dst: access
      Src: /src/git/hook.c:42,1
    - Dst: advice_enabled
      Src: /src/git/hook.c:49,1
    - Dst: string_list_lookup
      Src: /src/git/hook.c:52,1
    - Dst: string_list_insert
      Src: /src/git/hook.c:53,1
    - Dst: advise
      Src: /src/git/hook.c:54,1
    - Dst: _
      Src: /src/git/hook.c:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - r
    - name
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 26
    functionDepth: 8
    functionLinenumber: 26
    functionLinenumberEnd: 64
    functionName: find_hook
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    - string_list_insert
    - access
    - strbuf_addstr
    - _
    - advise
    - repo_git_path_replace
    - advice_enabled
    linkageType: ''
    returnType: char
    signature: char *find_hook(struct repository *r, const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/hook.c:74,1
    - Dst: free
      Src: /src/git/hook.c:76,1
    - Dst: free
      Src: /src/git/hook.c:77,1
    - Dst: struct hook*::data_free
      Src: /src/git/hook.c:81,1
    - Dst: free
      Src: /src/git/hook.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - p
    - UNUSED
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: hook_free
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - struct hook*::data_free
    - free
    linkageType: ''
    returnType: void
    signature: void hook_free(void *p, const char *str UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_hook
      Src: /src/git/hook.c:91,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/hook.c:97,1
    - Dst: absolute_path
      Src: /src/git/hook.c:104,1
    - Dst: struct run_hooks_opt*::feed_pipe_cb_data_alloc
      Src: /src/git/hook.c:112,1
    - Dst: xstrdup
      Src: /src/git/hook.c:117,1
    - Dst: string_list_append
      Src: /src/git/hook.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - r
    - hookname
    - hook_list
    - options
    argTypes:
    - struct repository*
    - char*
    - struct string_list*
    - struct run_hooks_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 87
    functionDepth: 9
    functionLinenumber: 87
    functionLinenumberEnd: 120
    functionName: list_hooks_add_default
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - absolute_path
    - find_hook
    - struct run_hooks_opt*::feed_pipe_cb_data_alloc
    - string_list_append
    - CALLOC_ARRAY
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void list_hooks_add_default(struct repository *r, const char *hookname,\n\t\t\t\t
      \  struct string_list *hook_list,\n\t\t\t\t   struct run_hooks_opt *options)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/hook.c:163,1
    - Dst: strcmp
      Src: /src/git/hook.c:168,1
    - Dst: git_parse_int
      Src: /src/git/hook.c:170,1
    - Dst: warning
      Src: /src/git/hook.c:171,1
    - Dst: _
      Src: /src/git/hook.c:171,1
    - Dst: online_cpus
      Src: /src/git/hook.c:173,1
    - Dst: warning
      Src: /src/git/hook.c:177,1
    - Dst: _
      Src: /src/git/hook.c:177,1
    - Dst: config_error_nonbool
      Src: /src/git/hook.c:185,1
    - Dst: xmemdupz
      Src: /src/git/hook.c:188,1
    - Dst: strcmp
      Src: /src/git/hook.c:190,1
    - Dst: strmap_for_each_entry
      Src: /src/git/hook.c:196,1
    - Dst: unsorted_string_list_remove
      Src: /src/git/hook.c:197,1
    - Dst: is_known_hook
      Src: /src/git/hook.c:201,1
    - Dst: die
      Src: /src/git/hook.c:202,1
    - Dst: _
      Src: /src/git/hook.c:202,1
    - Dst: strcmp
      Src: /src/git/hook.c:207,1
    - Dst: warning
      Src: /src/git/hook.c:208,1
    - Dst: _
      Src: /src/git/hook.c:208,1
    - Dst: strmap_get
      Src: /src/git/hook.c:213,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/hook.c:216,1
    - Dst: string_list_init_dup
      Src: /src/git/hook.c:217,1
    - Dst: strmap_put
      Src: /src/git/hook.c:218,1
    - Dst: unsorted_string_list_remove
      Src: /src/git/hook.c:222,1
    - Dst: BUG
      Src: /src/git/hook.c:225,1
    - Dst: string_list_append
      Src: /src/git/hook.c:234,1
    - Dst: strcmp
      Src: /src/git/hook.c:237,1
    - Dst: strmap_put
      Src: /src/git/hook.c:239,1
    - Dst: xstrdup
      Src: /src/git/hook.c:240,1
    - Dst: free
      Src: /src/git/hook.c:241,1
    - Dst: strcmp
      Src: /src/git/hook.c:242,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/hook.c:243,1
    - Dst: unsorted_string_list_lookup
      Src: /src/git/hook.c:245,1
    - Dst: string_list_append
      Src: /src/git/hook.c:247,1
    - Dst: unsorted_string_list_remove
      Src: /src/git/hook.c:251,1
    - Dst: strcmp
      Src: /src/git/hook.c:257,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/hook.c:258,1
    - Dst: strmap_put
      Src: /src/git/hook.c:260,1
    - Dst: warning
      Src: /src/git/hook.c:263,1
    - Dst: _
      Src: /src/git/hook.c:263,1
    - Dst: strcmp
      Src: /src/git/hook.c:266,1
    - Dst: git_parse_int
      Src: /src/git/hook.c:268,1
    - Dst: warning
      Src: /src/git/hook.c:269,1
    - Dst: _
      Src: /src/git/hook.c:269,1
    - Dst: strmap_put
      Src: /src/git/hook.c:273,1
    - Dst: online_cpus
      Src: /src/git/hook.c:274,1
    - Dst: strmap_put
      Src: /src/git/hook.c:276,1
    - Dst: warning
      Src: /src/git/hook.c:279,1
    - Dst: _
      Src: /src/git/hook.c:279,1
    - Dst: free
      Src: /src/git/hook.c:284,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 4
    argNames:
    - key
    - value
    - ctx
    - cb_data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 154
    functionDepth: 10
    functionLinenumber: 154
    functionLinenumberEnd: 286
    functionName: hook_config_lookup_all
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - git_parse_int
    - xmemdupz
    - strmap_get
    - parse_config_key
    - unsorted_string_list_lookup
    - strmap_put
    - strcmp
    - CALLOC_ARRAY
    - free
    - string_list_init_dup
    - die
    - online_cpus
    - string_list_append
    - _
    - warning
    - xstrdup
    - is_known_hook
    - strmap_for_each_entry
    - unsorted_string_list_remove
    - git_parse_maybe_bool
    - BUG
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int hook_config_lookup_all(const char *key, const char *value,\n\t\t\t\t
      \ const struct config_context *ctx,\n\t\t\t\t  void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/hook.c:303,1
    - Dst: free
      Src: /src/git/hook.c:307,1
    - Dst: free
      Src: /src/git/hook.c:308,1
    - Dst: string_list_clear
      Src: /src/git/hook.c:310,1
    - Dst: free
      Src: /src/git/hook.c:311,1
    - Dst: strmap_clear
      Src: /src/git/hook.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 314
    functionName: hook_cache_clear
    functionSourceFile: /src/git/hook.c
    functionUses: 1
    functionsReached:
    - strmap_for_each_entry
    - string_list_clear
    - strmap_clear
    - free
    linkageType: ''
    returnType: void
    signature: void hook_cache_clear(struct strmap *cache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/hook.c:327,1
    - Dst: strmap_get
      Src: /src/git/hook.c:327,1
    - Dst: strmap_for_each_entry
      Src: /src/git/hook.c:330,1
    - Dst: unsorted_string_list_lookup
      Src: /src/git/hook.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - cb
    - name
    argTypes:
    - struct hook_all_config_cb*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 336
    functionName: is_friendly_name
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - strmap_for_each_entry
    - unsorted_string_list_lookup
    - strmap_get
    linkageType: ''
    returnType: int
    signature: int is_friendly_name(struct hook_all_config_cb *cb, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/hook.c:344,1
    - Dst: is_friendly_name
      Src: /src/git/hook.c:345,1
    - Dst: warning
      Src: /src/git/hook.c:346,1
    - Dst: _
      Src: /src/git/hook.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cb_data
    argTypes:
    - struct hook_all_config_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 352
    functionName: warn_jobs_on_friendly_names
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - strmap_for_each_entry
    - warning
    - is_friendly_name
    - _
    linkageType: ''
    returnType: void
    signature: void warn_jobs_on_friendly_names(struct hook_all_config_cb *cb_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strmap_init
      Src: /src/git/hook.c:361,1
    - Dst: strmap_init
      Src: /src/git/hook.c:362,1
    - Dst: string_list_init_dup
      Src: /src/git/hook.c:363,1
    - Dst: strmap_init
      Src: /src/git/hook.c:364,1
    - Dst: strmap_init
      Src: /src/git/hook.c:365,1
    - Dst: repo_config
      Src: /src/git/hook.c:368,1
    - Dst: warn_jobs_on_friendly_names
      Src: /src/git/hook.c:370,1
    - Dst: string_list_clear
      Src: /src/git/hook.c:379,1
    - Dst: string_list_init_dup
      Src: /src/git/hook.c:380,1
    - Dst: is_friendly_name
      Src: /src/git/hook.c:383,1
    - Dst: string_list_append
      Src: /src/git/hook.c:384,1
    - Dst: strmap_for_each_entry
      Src: /src/git/hook.c:389,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/hook.c:393,1
    - Dst: string_list_init_dup
      Src: /src/git/hook.c:394,1
    - Dst: strmap_get
      Src: /src/git/hook.c:403,1
    - Dst: unsorted_string_list_lookup
      Src: /src/git/hook.c:405,1
    - Dst: strmap_get
      Src: /src/git/hook.c:408,1
    - Dst: warning
      Src: /src/git/hook.c:411,1
    - Dst: _
      Src: /src/git/hook.c:411,1
    - Dst: die
      Src: /src/git/hook.c:414,1
    - Dst: _
      Src: /src/git/hook.c:414,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/hook.c:420,1
    - Dst: xstrdup_or_null
      Src: /src/git/hook.c:421,1
    - Dst: string_list_append
      Src: /src/git/hook.c:425,1
    - Dst: strmap_put
      Src: /src/git/hook.c:428,1
    - Dst: strmap_clear
      Src: /src/git/hook.c:436,1
    - Dst: strmap_clear
      Src: /src/git/hook.c:437,1
    - Dst: string_list_clear
      Src: /src/git/hook.c:438,1
    - Dst: strmap_for_each_entry
      Src: /src/git/hook.c:439,1
    - Dst: string_list_clear
      Src: /src/git/hook.c:440,1
    - Dst: free
      Src: /src/git/hook.c:441,1
    - Dst: strmap_clear
      Src: /src/git/hook.c:443,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 2
    argNames:
    - r
    - cache
    argTypes:
    - struct repository*
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 355
    functionDepth: 5
    functionLinenumber: 355
    functionLinenumberEnd: 444
    functionName: build_hook_config_map
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - die
    - xstrdup_or_null
    - strmap_clear
    - strmap_get
    - _
    - free
    - strmap_for_each_entry
    - warn_jobs_on_friendly_names
    - is_friendly_name
    - string_list_append
    - CALLOC_ARRAY
    - unsorted_string_list_lookup
    - warning
    - strmap_put
    - string_list_init_dup
    - repo_config
    - strmap_init
    linkageType: ''
    returnType: void
    signature: void build_hook_config_map(struct repository *r, struct strmap *cache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/hook.c:464,1
    - Dst: strmap_init
      Src: /src/git/hook.c:465,1
    - Dst: build_hook_config_map
      Src: /src/git/hook.c:466,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/hook.c:474,1
    - Dst: strmap_init
      Src: /src/git/hook.c:475,1
    - Dst: build_hook_config_map
      Src: /src/git/hook.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 453
    functionDepth: 6
    functionLinenumber: 453
    functionLinenumberEnd: 480
    functionName: get_hook_config_cache
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - build_hook_config_map
    - strmap_init
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct strmap
    signature: struct strmap *get_hook_config_cache(struct repository *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_hook_config_cache
      Src: /src/git/hook.c:487,1
    - Dst: strmap_get
      Src: /src/git/hook.c:488,1
    - Dst: unsorted_string_list_lookup
      Src: /src/git/hook.c:489,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/hook.c:498,1
    - Dst: struct run_hooks_opt*::feed_pipe_cb_data_alloc
      Src: /src/git/hook.c:506,1
    - Dst: xstrdup
      Src: /src/git/hook.c:512,1
    - Dst: xstrdup
      Src: /src/git/hook.c:514,1
    - Dst: string_list_append
      Src: /src/git/hook.c:520,1
    - Dst: hook_cache_clear
      Src: /src/git/hook.c:528,1
    - Dst: free
      Src: /src/git/hook.c:529,1
    - Dst: string_list_clear
      Src: /src/git/hook.c:531,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - r
    - hookname
    - list
    - options
    argTypes:
    - struct repository*
    - char*
    - struct string_list*
    - struct run_hooks_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 482
    functionDepth: 7
    functionLinenumber: 482
    functionLinenumberEnd: 533
    functionName: list_hooks_add_configured
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - hook_cache_clear
    - get_hook_config_cache
    - strmap_get
    - struct run_hooks_opt*::feed_pipe_cb_data_alloc
    - unsorted_string_list_lookup
    - string_list_append
    - CALLOC_ARRAY
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void list_hooks_add_configured(struct repository *r,\n\t\t\t\t      const
      char *hookname,\n\t\t\t\t      struct string_list *list,\n\t\t\t\t      struct
      run_hooks_opt *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/hook.c:541,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/hook.c:543,1
    - Dst: string_list_init_dup
      Src: /src/git/hook.c:544,1
    - Dst: list_hooks_add_configured
      Src: /src/git/hook.c:547,1
    - Dst: list_hooks_add_default
      Src: /src/git/hook.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - r
    - hookname
    - options
    argTypes:
    - struct repository*
    - char*
    - struct run_hooks_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 535
    functionDepth: 10
    functionLinenumber: 535
    functionLinenumberEnd: 553
    functionName: list_hooks
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - list_hooks_add_default
    - CALLOC_ARRAY
    - string_list_init_dup
    - BUG
    - list_hooks_add_configured
    linkageType: ''
    returnType: struct string_list
    signature: "struct string_list *list_hooks(struct repository *r, const char *hookname,\n\t\t\t
      \      struct run_hooks_opt *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_hooks
      Src: /src/git/hook.c:557,1
    - Dst: string_list_clear_func
      Src: /src/git/hook.c:568,1
    - Dst: free
      Src: /src/git/hook.c:569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - r
    - name
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 555
    functionDepth: 11
    functionLinenumber: 555
    functionLinenumberEnd: 571
    functionName: hook_exists
    functionSourceFile: /src/git/hook.c
    functionUses: 1
    functionsReached:
    - free
    - list_hooks
    - string_list_clear_func
    linkageType: ''
    returnType: int
    signature: int hook_exists(struct repository *r, const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushv
      Src: /src/git/hook.c:590,1
    - Dst: BUG
      Src: /src/git/hook.c:593,1
    - Dst: xopen
      Src: /src/git/hook.c:598,1
    - Dst: strvec_push
      Src: /src/git/hook.c:613,1
    - Dst: BUG
      Src: /src/git/hook.c:618,1
    - Dst: strvec_push
      Src: /src/git/hook.c:619,1
    - Dst: BUG
      Src: /src/git/hook.c:621,1
    - Dst: BUG
      Src: /src/git/hook.c:625,1
    - Dst: strvec_pushv
      Src: /src/git/hook.c:627,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - cp
    - UNUSED
    - pp_cb
    - pp_task_cb
    argTypes:
    - struct child_process*
    - struct strbuf*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 636
    functionName: pick_next_hook
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - strvec_pushv
    - strvec_push
    - xopen
    - BUG
    linkageType: ''
    returnType: int
    signature: "int pick_next_hook(struct child_process *cp,\n\t\t\t  struct strbuf
      *out UNUSED,\n\t\t\t  void *pp_cb,\n\t\t\t  void **pp_task_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - UNUSED
    - pp_cb
    - pp_task_cp
    argTypes:
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 647
    functionName: notify_start_failure
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int notify_start_failure(struct strbuf *out UNUSED,\n\t\t\t\tvoid
      *pp_cb,\n\t\t\t\tvoid *pp_task_cp UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - result
    - UNUSED
    - pp_cb
    - pp_task_cb
    argTypes:
    - int
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 663
    functionName: notify_hook_finished
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int notify_hook_finished(int result,\n\t\t\t\tstruct strbuf *out UNUSED,\n\t\t\t\tvoid
      *pp_cb,\n\t\t\t\tvoid *pp_task_cb UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_clear
      Src: /src/git/hook.c:667,1
    - Dst: strvec_clear
      Src: /src/git/hook.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct run_hooks_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: run_hooks_opt_clear
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void run_hooks_opt_clear(struct run_hooks_opt *options)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct run_hooks_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 682
    functionName: merge_output_if_parallel
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void merge_output_if_parallel(struct run_hooks_opt *options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/hook.c:694,1
    - Dst: _
      Src: /src/git/hook.c:694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - jobs
    - hook_list
    argTypes:
    - unsigned int
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 698
    functionName: warn_non_parallel_hooks_override
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - warning
    - _
    linkageType: ''
    returnType: void
    signature: "void warn_non_parallel_hooks_override(unsigned int jobs,\n\t\t\t\t\t
      \    struct string_list *hook_list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/hook.c:707,1
    - Dst: online_cpus
      Src: /src/git/hook.c:711,1
    - Dst: warning
      Src: /src/git/hook.c:715,1
    - Dst: _
      Src: /src/git/hook.c:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - r
    - key
    - jobs
    argTypes:
    - struct repository*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 717
    functionName: resolve_hook_config_jobs
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - warning
    - online_cpus
    - _
    linkageType: ''
    returnType: void
    signature: "void resolve_hook_config_jobs(struct repository *r,\n\t\t\t\t     const
      char *key,\n\t\t\t\t     unsigned int *jobs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/hook.c:748,1
    - Dst: resolve_hook_config_jobs
      Src: /src/git/hook.c:754,1
    - Dst: xstrfmt
      Src: /src/git/hook.c:756,1
    - Dst: resolve_hook_config_jobs
      Src: /src/git/hook.c:757,1
    - Dst: free
      Src: /src/git/hook.c:758,1
    - Dst: merge_output_if_parallel
      Src: /src/git/hook.c:778,1
    - Dst: warn_non_parallel_hooks_override
      Src: /src/git/hook.c:779,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - r
    - options
    - hook_name
    - hook_list
    argTypes:
    - struct repository*
    - struct run_hooks_opt*
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 720
    functionDepth: 5
    functionLinenumber: 720
    functionLinenumberEnd: 781
    functionName: get_hook_jobs
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - merge_output_if_parallel
    - resolve_hook_config_jobs
    - xstrfmt
    - strmap_get
    - free
    - warn_non_parallel_hooks_override
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int get_hook_jobs(struct repository *r,\n\t\t\t\t  struct
      run_hooks_opt *options,\n\t\t\t\t  const char *hook_name,\n\t\t\t\t  struct
      string_list *hook_list)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: list_hooks
      Src: /src/git/hook.c:786,1
    - Dst: get_hook_jobs
      Src: /src/git/hook.c:794,1
    - Dst: BUG
      Src: /src/git/hook.c:811,1
    - Dst: BUG
      Src: /src/git/hook.c:814,1
    - Dst: BUG
      Src: /src/git/hook.c:821,1
    - Dst: error
      Src: /src/git/hook.c:828,1
    - Dst: run_processes_parallel
      Src: /src/git/hook.c:832,1
    - Dst: string_list_clear_func
      Src: /src/git/hook.c:835,1
    - Dst: free
      Src: /src/git/hook.c:836,1
    - Dst: run_hooks_opt_clear
      Src: /src/git/hook.c:837,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - r
    - hook_name
    - options
    argTypes:
    - struct repository*
    - char*
    - struct run_hooks_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 783
    functionDepth: 11
    functionLinenumber: 783
    functionLinenumberEnd: 839
    functionName: run_hooks_opt
    functionSourceFile: /src/git/hook.c
    functionUses: 4
    functionsReached:
    - error
    - string_list_clear_func
    - run_processes_parallel
    - run_hooks_opt_clear
    - list_hooks
    - get_hook_jobs
    - free
    - BUG
    linkageType: ''
    returnType: int
    signature: "int run_hooks_opt(struct repository *r, const char *hook_name,\n\t\t
      \ struct run_hooks_opt *options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_hooks_opt
      Src: /src/git/hook.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - hook_name
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 841
    functionDepth: 12
    functionLinenumber: 841
    functionLinenumberEnd: 846
    functionName: run_hooks
    functionSourceFile: /src/git/hook.c
    functionUses: 0
    functionsReached:
    - run_hooks_opt
    linkageType: ''
    returnType: int
    signature: int run_hooks(struct repository *r, const char *hook_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/hook.c:854,1
    - Dst: va_arg
      Src: /src/git/hook.c:855,1
    - Dst: strvec_push
      Src: /src/git/hook.c:856,1
    - Dst: va_end
      Src: /src/git/hook.c:857,1
    - Dst: run_hooks_opt
      Src: /src/git/hook.c:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - hook_name
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 848
    functionDepth: 12
    functionLinenumber: 848
    functionLinenumberEnd: 860
    functionName: run_hooks_l
    functionSourceFile: /src/git/hook.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - va_end
    - va_arg
    - run_hooks_opt
    - va_start
    linkageType: ''
    returnType: int
    signature: int run_hooks_l(struct repository *r, const char *hook_name, ...)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/connected.c:41,1
    - Dst: close
      Src: /src/git/connected.c:44,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/connected.c:48,1
    - Dst: odb_reprepare
      Src: /src/git/connected.c:61,1
    - Dst: find_pack_entry_one
      Src: /src/git/connected.c:68,1
    - Dst: fn
      Src: /src/git/connected.c:78,1
    - Dst: strvec_push
      Src: /src/git/connected.c:84,1
    - Dst: strvec_push
      Src: /src/git/connected.c:85,1
    - Dst: strvec_push
      Src: /src/git/connected.c:87,1
    - Dst: strvec_push
      Src: /src/git/connected.c:88,1
    - Dst: strvec_push
      Src: /src/git/connected.c:89,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/connected.c:90,1
    - Dst: strvec_push
      Src: /src/git/connected.c:91,1
    - Dst: strvec_push
      Src: /src/git/connected.c:93,1
    - Dst: strvec_pushf
      Src: /src/git/connected.c:95,1
    - Dst: strvec_push
      Src: /src/git/connected.c:97,1
    - Dst: strvec_push
      Src: /src/git/connected.c:99,1
    - Dst: strvec_push
      Src: /src/git/connected.c:100,1
    - Dst: strvec_pushf
      Src: /src/git/connected.c:102,1
    - Dst: _
      Src: /src/git/connected.c:103,1
    - Dst: strvec_pushv
      Src: /src/git/connected.c:107,1
    - Dst: start_command
      Src: /src/git/connected.c:115,1
    - Dst: error
      Src: /src/git/connected.c:116,1
    - Dst: _
      Src: /src/git/connected.c:116,1
    - Dst: sigchain_push
      Src: /src/git/connected.c:118,1
    - Dst: xfdopen
      Src: /src/git/connected.c:120,1
    - Dst: strip_suffix
      Src: /src/git/connected.c:125,1
    - Dst: strbuf_add
      Src: /src/git/connected.c:128,1
    - Dst: strbuf_addstr
      Src: /src/git/connected.c:130,1
    - Dst: add_packed_git
      Src: /src/git/connected.c:131,1
    - Dst: strbuf_release
      Src: /src/git/connected.c:133,1
    - Dst: find_pack_entry_one
      Src: /src/git/connected.c:145,1
    - Dst: fprintf
      Src: /src/git/connected.c:148,1
    - Dst: oid_to_hex
      Src: /src/git/connected.c:148,1
    - Dst: fn
      Src: /src/git/connected.c:150,1
    - Dst: ferror
      Src: /src/git/connected.c:152,1
    - Dst: fflush
      Src: /src/git/connected.c:152,1
    - Dst: error_errno
      Src: /src/git/connected.c:154,1
    - Dst: _
      Src: /src/git/connected.c:154,1
    - Dst: fclose
      Src: /src/git/connected.c:158,1
    - Dst: error_errno
      Src: /src/git/connected.c:159,1
    - Dst: _
      Src: /src/git/connected.c:159,1
    - Dst: sigchain_pop
      Src: /src/git/connected.c:161,1
    - Dst: close_pack
      Src: /src/git/connected.c:163,1
    - Dst: free
      Src: /src/git/connected.c:164,1
    - Dst: finish_command
      Src: /src/git/connected.c:166,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 85
    argCount: 3
    argNames:
    - fn
    - cb_data
    - opt
    argTypes:
    - oid_iterate_fn
    - void*
    - struct check_connected_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 25
    functionDepth: 10
    functionLinenumber: 25
    functionLinenumberEnd: 167
    functionName: check_connected
    functionSourceFile: /src/git/connected.c
    functionUses: 2
    functionsReached:
    - fclose
    - strvec_push
    - error_errno
    - strip_suffix
    - free
    - error
    - strbuf_release
    - repo_has_promisor_remote
    - fn
    - finish_command
    - sigchain_push
    - strbuf_addstr
    - find_pack_entry_one
    - oid_to_hex
    - strvec_pushv
    - sigchain_pop
    - fflush
    - _
    - xfdopen
    - strvec_pushf
    - strbuf_add
    - close_pack
    - ferror
    - add_packed_git
    - odb_reprepare
    - close
    - fprintf
    - start_command
    linkageType: ''
    returnType: int
    signature: "int check_connected(oid_iterate_fn fn, void *cb_data,\n\t\t    struct
      check_connected_options *opt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_pack_entry_one
      Src: /src/git/connected.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/connected.c
    functionUses: 2
    functionsReached:
    - find_pack_entry_one
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getc_unlocked
      Src: /src/git/config.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct config_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: config_file_fgetc
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - getc_unlocked
    linkageType: ''
    returnType: int
    signature: int config_file_fgetc(struct config_source *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ungetc
      Src: /src/git/config.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - conf
    argTypes:
    - int
    - struct config_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: config_file_ungetc
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - ungetc
    linkageType: ''
    returnType: int
    signature: int config_file_ungetc(int c, struct config_source *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ftell
      Src: /src/git/config.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct config_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: config_file_ftell
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - ftell
    linkageType: ''
    returnType: long
    signature: long config_file_ftell(struct config_source *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct config_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: config_buf_fgetc
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int config_buf_fgetc(struct config_source *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/config.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - conf
    argTypes:
    - int
    - struct config_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: config_buf_ungetc
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: int config_buf_ungetc(int c, struct config_source *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct config_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: config_buf_ftell
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long config_buf_ftell(struct config_source *conf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: config_error_nonbool
      Src: /src/git/config.c:151,1
    - Dst: interpolate_path
      Src: /src/git/config.c:153,1
    - Dst: error
      Src: /src/git/config.c:155,1
    - Dst: _
      Src: /src/git/config.c:155,1
    - Dst: is_absolute_path
      Src: /src/git/config.c:162,1
    - Dst: error
      Src: /src/git/config.c:166,1
    - Dst: _
      Src: /src/git/config.c:166,1
    - Dst: find_last_dir_sep
      Src: /src/git/config.c:170,1
    - Dst: strbuf_add
      Src: /src/git/config.c:172,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:173,1
    - Dst: access_or_die
      Src: /src/git/config.c:177,1
    - Dst: die
      Src: /src/git/config.c:179,1
    - Dst: _
      Src: /src/git/config.c:179,1
    - Dst: git_config_from_file_with_options
      Src: /src/git/config.c:183,1
    - Dst: strbuf_release
      Src: /src/git/config.c:188,1
    - Dst: free
      Src: /src/git/config.c:189,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - kvi
    - path
    - inc
    argTypes:
    - struct key_value_info*
    - char*
    - struct config_include_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 191
    functionName: handle_path_include
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - error
    - git_config_from_file_with_options
    - interpolate_path
    - is_absolute_path
    - die
    - strbuf_release
    - find_last_dir_sep
    - access_or_die
    - strbuf_addstr
    - _
    - free
    - strbuf_add
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int handle_path_include(const struct key_value_info *kvi,\n\t\t\t
      \      const char *path,\n\t\t\t       struct config_include_data *inc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/config.c:195,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - pat
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: add_trailing_starstar_for_dir
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void add_trailing_starstar_for_dir(struct strbuf *pat)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: interpolate_path
      Src: /src/git/config.c:207,1
    - Dst: strbuf_reset
      Src: /src/git/config.c:209,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:210,1
    - Dst: free
      Src: /src/git/config.c:211,1
    - Dst: is_dir_sep
      Src: /src/git/config.c:214,1
    - Dst: error
      Src: /src/git/config.c:218,1
    - Dst: _
      Src: /src/git/config.c:218,1
    - Dst: strbuf_realpath
      Src: /src/git/config.c:221,1
    - Dst: find_last_dir_sep
      Src: /src/git/config.c:222,1
    - Dst: BUG
      Src: /src/git/config.c:224,1
    - Dst: strbuf_splice
      Src: /src/git/config.c:225,1
    - Dst: is_absolute_path
      Src: /src/git/config.c:227,1
    - Dst: strbuf_insertstr
      Src: /src/git/config.c:228,1
    - Dst: add_trailing_starstar_for_dir
      Src: /src/git/config.c:230,1
    - Dst: strbuf_release
      Src: /src/git/config.c:234,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - kvi
    - pat
    - out
    argTypes:
    - struct key_value_info*
    - struct strbuf*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 236
    functionName: prepare_include_condition_pattern
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_insertstr
    - interpolate_path
    - is_absolute_path
    - add_trailing_starstar_for_dir
    - strbuf_release
    - strbuf_realpath
    - strbuf_reset
    - is_dir_sep
    - find_last_dir_sep
    - strbuf_splice
    - strbuf_addstr
    - free
    - BUG
    - _
    linkageType: ''
    returnType: int
    signature: "int prepare_include_condition_pattern(const struct key_value_info
      *kvi,\n\t\t\t\t\t     struct strbuf *pat,\n\t\t\t\t\t     size_t *out)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/config.c:254,1
    - Dst: strbuf_add
      Src: /src/git/config.c:255,1
    - Dst: prepare_include_condition_pattern
      Src: /src/git/config.c:256,1
    - Dst: strncmp
      Src: /src/git/config.c:268,1
    - Dst: strncasecmp
      Src: /src/git/config.c:270,1
    - Dst: wildmatch
      Src: /src/git/config.c:274,1
    - Dst: strbuf_reset
      Src: /src/git/config.c:286,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/config.c:287,1
    - Dst: strbuf_release
      Src: /src/git/config.c:292,1
    - Dst: strbuf_release
      Src: /src/git/config.c:293,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 5
    argNames:
    - kvi
    - opts
    - cond
    - cond_len
    - icase
    argTypes:
    - struct key_value_info*
    - struct config_options*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 238
    functionDepth: 6
    functionLinenumber: 238
    functionLinenumberEnd: 295
    functionName: include_by_gitdir
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_realpath
    - strncasecmp
    - strbuf_reset
    - prepare_include_condition_pattern
    - strbuf_add_absolute_path
    - strncmp
    - strbuf_add
    - wildmatch
    linkageType: ''
    returnType: int
    signature: "int include_by_gitdir(const struct key_value_info *kvi,\n\t\t\t     const
      struct config_options *opts,\n\t\t\t     const char *cond, size_t cond_len,
      int icase)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/config.c:308,1
    - Dst: get_main_ref_store
      Src: /src/git/config.c:308,1
    - Dst: skip_prefix
      Src: /src/git/config.c:312,1
    - Dst: strbuf_add
      Src: /src/git/config.c:315,1
    - Dst: add_trailing_starstar_for_dir
      Src: /src/git/config.c:316,1
    - Dst: wildmatch
      Src: /src/git/config.c:317,1
    - Dst: strbuf_release
      Src: /src/git/config.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - data
    - cond
    - cond_len
    argTypes:
    - struct config_include_data*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 297
    functionDepth: 5
    functionLinenumber: 297
    functionLinenumberEnd: 320
    functionName: include_by_branch
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - add_trailing_starstar_for_dir
    - wildmatch
    - refs_resolve_ref_unsafe
    - skip_prefix
    - strbuf_add
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int include_by_branch(struct config_include_data *data,\n\t\t\t     const
      char *cond, size_t cond_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/config.c:330,1
    - Dst: strcmp
      Src: /src/git/config.c:333,1
    - Dst: string_list_append
      Src: /src/git/config.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 336
    functionName: add_remote_url
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - parse_config_key
    - string_list_append
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int add_remote_url(const char *var, const char *value,\n\t\t\t  const
      struct config_context *ctx UNUSED, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/config.c:345,1
    - Dst: string_list_init_dup
      Src: /src/git/config.c:346,1
    - Dst: config_with_options
      Src: /src/git/config.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - inc
    argTypes:
    - struct config_include_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 349
    functionName: populate_remote_urls
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - string_list_init_dup
    - config_with_options
    linkageType: ''
    returnType: void
    signature: void populate_remote_urls(struct config_include_data *inc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/config.c:359,1
    - Dst: strcmp
      Src: /src/git/config.c:362,1
    - Dst: die
      Src: /src/git/config.c:363,1
    - Dst: _
      Src: /src/git/config.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - var
    - UNUSED
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: forbid_remote_url
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - parse_config_key
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int forbid_remote_url(const char *var, const char *value UNUSED,\n\t\t\t
      \    const struct config_context *ctx UNUSED,\n\t\t\t     void *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/config.c:374,1
    - Dst: wildmatch
      Src: /src/git/config.c:376,1
    - Dst: strbuf_release
      Src: /src/git/config.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - glob
    - glob_len
    - remote_urls
    argTypes:
    - char*
    - int
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 383
    functionName: at_least_one_url_matches_glob
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_add
    - wildmatch
    linkageType: ''
    returnType: int
    signature: "int at_least_one_url_matches_glob(const char *glob, int glob_len,\n\t\t\t\t\t
      struct string_list *remote_urls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wildmatch
      Src: /src/git/config.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/config.c
    functionUses: 41
    functionsReached:
    - wildmatch
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(url_item, remote_urls)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: populate_remote_urls
      Src: /src/git/config.c:391,1
    - Dst: at_least_one_url_matches_glob
      Src: /src/git/config.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - inc
    - cond
    - cond_len
    argTypes:
    - struct config_include_data*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: include_by_remote_url
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - populate_remote_urls
    - at_least_one_url_matches_glob
    linkageType: ''
    returnType: int
    signature: "int include_by_remote_url(struct config_include_data *inc,\n\t\tconst
      char *cond, size_t cond_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix_mem
      Src: /src/git/config.c:402,1
    - Dst: include_by_gitdir
      Src: /src/git/config.c:403,1
    - Dst: skip_prefix_mem
      Src: /src/git/config.c:404,1
    - Dst: include_by_gitdir
      Src: /src/git/config.c:405,1
    - Dst: skip_prefix_mem
      Src: /src/git/config.c:406,1
    - Dst: include_by_branch
      Src: /src/git/config.c:407,1
    - Dst: skip_prefix_mem
      Src: /src/git/config.c:408,1
    - Dst: include_by_remote_url
      Src: /src/git/config.c:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - kvi
    - inc
    - cond
    - cond_len
    argTypes:
    - struct key_value_info*
    - struct config_include_data*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 396
    functionDepth: 7
    functionLinenumber: 396
    functionLinenumberEnd: 414
    functionName: include_condition_is_true
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - include_by_branch
    - include_by_gitdir
    - skip_prefix_mem
    - include_by_remote_url
    linkageType: ''
    returnType: int
    signature: "int include_condition_is_true(const struct key_value_info *kvi,\n\t\t\t\t
      \    struct config_include_data *inc,\n\t\t\t\t     const char *cond, size_t
      cond_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct config_include_data*::fn
      Src: /src/git/config.c:429,1
    - Dst: strcmp
      Src: /src/git/config.c:433,1
    - Dst: handle_path_include
      Src: /src/git/config.c:434,1
    - Dst: parse_config_key
      Src: /src/git/config.c:436,1
    - Dst: include_condition_is_true
      Src: /src/git/config.c:437,1
    - Dst: strcmp
      Src: /src/git/config.c:438,1
    - Dst: handle_path_include
      Src: /src/git/config.c:443,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 416
    functionDepth: 8
    functionLinenumber: 416
    functionLinenumberEnd: 448
    functionName: git_config_include
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - struct config_include_data*::fn
    - include_condition_is_true
    - parse_config_key
    - strcmp
    - handle_path_include
    linkageType: ''
    returnType: int
    signature: "int git_config_include(const char *var, const char *value,\n\t\t\t
      \     const struct config_context *ctx,\n\t\t\t      void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/config.c:453,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:455,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:456,1
    - Dst: sq_quote_buf
      Src: /src/git/config.c:458,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:459,1
    - Dst: sq_quote_buf
      Src: /src/git/config.c:461,1
    - Dst: setenv
      Src: /src/git/config.c:462,1
    - Dst: strbuf_release
      Src: /src/git/config.c:463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 450
    functionDepth: 4
    functionLinenumber: 450
    functionLinenumberEnd: 464
    functionName: git_config_push_split_parameter
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - sq_quote_buf
    - strbuf_release
    - strbuf_addch
    - setenv
    - strbuf_addstr
    - getenv
    linkageType: ''
    returnType: void
    signature: void git_config_push_split_parameter(const char *key, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/config.c:492,1
    - Dst: xmemdupz
      Src: /src/git/config.c:494,1
    - Dst: git_config_push_split_parameter
      Src: /src/git/config.c:495,1
    - Dst: free
      Src: /src/git/config.c:496,1
    - Dst: git_config_push_split_parameter
      Src: /src/git/config.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 466
    functionDepth: 10
    functionLinenumber: 466
    functionLinenumberEnd: 500
    functionName: git_config_push_parameter
    functionSourceFile: /src/git/config.c
    functionUses: 2
    functionsReached:
    - xmemdupz
    - git_config_push_split_parameter
    - strchr
    - free
    linkageType: ''
    returnType: void
    signature: void git_config_push_parameter(const char *text)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/config.c:508,1
    - Dst: die
      Src: /src/git/config.c:510,1
    - Dst: _
      Src: /src/git/config.c:510,1
    - Dst: xmemdupz
      Src: /src/git/config.c:511,1
    - Dst: die
      Src: /src/git/config.c:514,1
    - Dst: _
      Src: /src/git/config.c:514,1
    - Dst: getenv
      Src: /src/git/config.c:517,1
    - Dst: die
      Src: /src/git/config.c:519,1
    - Dst: _
      Src: /src/git/config.c:519,1
    - Dst: git_config_push_split_parameter
      Src: /src/git/config.c:522,1
    - Dst: free
      Src: /src/git/config.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - spec
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 502
    functionDepth: 10
    functionLinenumber: 502
    functionLinenumberEnd: 524
    functionName: git_config_push_env
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - xmemdupz
    - die
    - strrchr
    - git_config_push_split_parameter
    - _
    - free
    - getenv
    linkageType: ''
    returnType: void
    signature: void git_config_push_env(const char *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/git/config.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: iskeychar
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: int
    signature: int iskeychar(int c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/config.c:547,1
    - Dst: error
      Src: /src/git/config.c:555,1
    - Dst: _
      Src: /src/git/config.c:555,1
    - Dst: error
      Src: /src/git/config.c:560,1
    - Dst: _
      Src: /src/git/config.c:560,1
    - Dst: xmallocz
      Src: /src/git/config.c:571,1
    - Dst: strlen
      Src: /src/git/config.c:571,1
    - Dst: iskeychar
      Src: /src/git/config.c:580,1
    - Dst: isalpha
      Src: /src/git/config.c:581,1
    - Dst: error
      Src: /src/git/config.c:582,1
    - Dst: _
      Src: /src/git/config.c:582,1
    - Dst: tolower
      Src: /src/git/config.c:585,1
    - Dst: error
      Src: /src/git/config.c:587,1
    - Dst: _
      Src: /src/git/config.c:587,1
    - Dst: FREE_AND_NULL
      Src: /src/git/config.c:596,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - key
    - store_key
    - baselen_
    argTypes:
    - char*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 543
    functionDepth: 9
    functionLinenumber: 543
    functionLinenumberEnd: 598
    functionName: git_config_parse_key
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - error
    - isalpha
    - strrchr
    - xmallocz
    - strlen
    - FREE_AND_NULL
    - _
    - tolower
    - iskeychar
    linkageType: ''
    returnType: int
    signature: int git_config_parse_key(const char *key, char **store_key, size_t
      *baselen_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/config.c:610,1
    - Dst: error
      Src: /src/git/config.c:611,1
    - Dst: _
      Src: /src/git/config.c:611,1
    - Dst: git_config_parse_key
      Src: /src/git/config.c:612,1
    - Dst: fn
      Src: /src/git/config.c:615,1
    - Dst: free
      Src: /src/git/config.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - key
    - value
    - kvi
    - fn
    - data
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    - config_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 600
    functionDepth: 10
    functionLinenumber: 600
    functionLinenumberEnd: 618
    functionName: config_parse_pair
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - error
    - fn
    - strlen
    - git_config_parse_key
    - _
    - free
    linkageType: ''
    returnType: int
    signature: "int config_parse_pair(const char *key, const char *value,\n\t\t\t
      \    struct key_value_info *kvi,\n\t\t\t     config_fn_t fn, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 628
    functionName: kvi_from_param
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kvi_from_param(struct key_value_info *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: kvi_from_param
      Src: /src/git/config.c:638,1
    - Dst: string_list_split
      Src: /src/git/config.c:640,1
    - Dst: error
      Src: /src/git/config.c:642,1
    - Dst: _
      Src: /src/git/config.c:642,1
    - Dst: string_list_clear
      Src: /src/git/config.c:650,1
    - Dst: error
      Src: /src/git/config.c:651,1
    - Dst: _
      Src: /src/git/config.c:651,1
    - Dst: config_parse_pair
      Src: /src/git/config.c:654,1
    - Dst: string_list_clear
      Src: /src/git/config.c:655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - text
    - fn
    - data
    argTypes:
    - char*
    - config_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 630
    functionDepth: 11
    functionLinenumber: 630
    functionLinenumberEnd: 657
    functionName: git_config_parse_parameter
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - error
    - string_list_clear
    - config_parse_pair
    - kvi_from_param
    - string_list_split
    - _
    linkageType: ''
    returnType: int
    signature: "int git_config_parse_parameter(const char *text,\n\t\t\t       config_fn_t
      fn, void *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sq_dequote_step
      Src: /src/git/config.c:664,1
    - Dst: error
      Src: /src/git/config.c:666,1
    - Dst: _
      Src: /src/git/config.c:666,1
    - Dst: isspace
      Src: /src/git/config.c:669,1
    - Dst: git_config_parse_parameter
      Src: /src/git/config.c:671,1
    - Dst: sq_dequote_step
      Src: /src/git/config.c:681,1
    - Dst: isspace
      Src: /src/git/config.c:682,1
    - Dst: error
      Src: /src/git/config.c:683,1
    - Dst: _
      Src: /src/git/config.c:683,1
    - Dst: isspace
      Src: /src/git/config.c:686,1
    - Dst: error
      Src: /src/git/config.c:690,1
    - Dst: _
      Src: /src/git/config.c:690,1
    - Dst: config_parse_pair
      Src: /src/git/config.c:694,1
    - Dst: error
      Src: /src/git/config.c:699,1
    - Dst: _
      Src: /src/git/config.c:699,1
    - Dst: isspace
      Src: /src/git/config.c:704,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 4
    argNames:
    - env
    - kvi
    - fn
    - data
    argTypes:
    - char*
    - struct key_value_info*
    - config_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 659
    functionDepth: 12
    functionLinenumber: 659
    functionLinenumberEnd: 709
    functionName: parse_config_env_list
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - error
    - isspace
    - config_parse_pair
    - sq_dequote_step
    - git_config_parse_parameter
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_config_env_list(char *env, struct key_value_info *kvi,\n\t\t\t\t
      config_fn_t fn, void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: kvi_from_param
      Src: /src/git/config.c:720,1
    - Dst: getenv
      Src: /src/git/config.c:721,1
    - Dst: strtoul
      Src: /src/git/config.c:726,1
    - Dst: error
      Src: /src/git/config.c:728,1
    - Dst: _
      Src: /src/git/config.c:728,1
    - Dst: error
      Src: /src/git/config.c:732,1
    - Dst: _
      Src: /src/git/config.c:732,1
    - Dst: strbuf_addf
      Src: /src/git/config.c:739,1
    - Dst: getenv_safe
      Src: /src/git/config.c:740,1
    - Dst: error
      Src: /src/git/config.c:742,1
    - Dst: _
      Src: /src/git/config.c:742,1
    - Dst: strbuf_reset
      Src: /src/git/config.c:745,1
    - Dst: strbuf_addf
      Src: /src/git/config.c:747,1
    - Dst: getenv_safe
      Src: /src/git/config.c:748,1
    - Dst: error
      Src: /src/git/config.c:750,1
    - Dst: _
      Src: /src/git/config.c:750,1
    - Dst: strbuf_reset
      Src: /src/git/config.c:753,1
    - Dst: config_parse_pair
      Src: /src/git/config.c:755,1
    - Dst: getenv
      Src: /src/git/config.c:762,1
    - Dst: xstrdup
      Src: /src/git/config.c:765,1
    - Dst: parse_config_env_list
      Src: /src/git/config.c:766,1
    - Dst: strbuf_release
      Src: /src/git/config.c:773,1
    - Dst: strvec_clear
      Src: /src/git/config.c:774,1
    - Dst: free
      Src: /src/git/config.c:775,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 2
    argNames:
    - fn
    - data
    argTypes:
    - config_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 711
    functionDepth: 13
    functionLinenumber: 711
    functionLinenumberEnd: 777
    functionName: git_config_from_parameters
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - error
    - config_parse_pair
    - strbuf_release
    - kvi_from_param
    - strbuf_reset
    - strbuf_addf
    - getenv_safe
    - parse_config_env_list
    - strvec_clear
    - _
    - free
    - getenv
    - xstrdup
    - strtoul
    linkageType: ''
    returnType: int
    signature: int git_config_from_parameters(config_fn_t fn, void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct config_source*::do_fgetc
      Src: /src/git/config.c:781,1
    - Dst: struct config_source*::do_fgetc
      Src: /src/git/config.c:785,1
    - Dst: struct config_source*::do_ungetc
      Src: /src/git/config.c:788,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct config_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 813
    functionName: get_next_char
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - struct config_source*::do_ungetc
    - struct config_source*::do_fgetc
    linkageType: ''
    returnType: int
    signature: int get_next_char(struct config_source *cs)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/config.c:820,1
    - Dst: get_next_char
      Src: /src/git/config.c:822,1
    - Dst: strbuf_setlen
      Src: /src/git/config.c:829,1
    - Dst: isspace
      Src: /src/git/config.c:834,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:838,1
    - Dst: get_next_char
      Src: /src/git/config.c:850,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:870,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:877,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct config_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 879
    functionName: parse_value
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_reset
    - strbuf_setlen
    - strbuf_addch
    - get_next_char
    linkageType: ''
    returnType: char
    signature: char *parse_value(struct config_source *cs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_next_char
      Src: /src/git/config.c:893,1
    - Dst: iskeychar
      Src: /src/git/config.c:896,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:898,1
    - Dst: tolower
      Src: /src/git/config.c:898,1
    - Dst: get_next_char
      Src: /src/git/config.c:902,1
    - Dst: parse_value
      Src: /src/git/config.c:908,1
    - Dst: fn
      Src: /src/git/config.c:919,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 5
    argNames:
    - cs
    - kvi
    - fn
    - data
    - name
    argTypes:
    - struct config_source*
    - struct key_value_info*
    - config_fn_t
    - void*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 881
    functionDepth: 4
    functionLinenumber: 881
    functionLinenumberEnd: 923
    functionName: get_value
    functionSourceFile: /src/git/config.c
    functionUses: 5
    functionsReached:
    - parse_value
    - fn
    - strbuf_addch
    - tolower
    - get_next_char
    - iskeychar
    linkageType: ''
    returnType: int
    signature: "int get_value(struct config_source *cs, struct key_value_info *kvi,\n\t\t
      \    config_fn_t fn, void *data, struct strbuf *name)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_next_char
      Src: /src/git/config.c:932,1
    - Dst: isspace
      Src: /src/git/config.c:933,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:938,1
    - Dst: get_next_char
      Src: /src/git/config.c:941,1
    - Dst: get_next_char
      Src: /src/git/config.c:947,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:951,1
    - Dst: get_next_char
      Src: /src/git/config.c:955,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - cs
    - name
    - c
    argTypes:
    - struct config_source*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 925
    functionDepth: 3
    functionLinenumber: 925
    functionLinenumberEnd: 961
    functionName: get_extended_base_var
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - isspace
    - get_next_char
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: "int get_extended_base_var(struct config_source *cs, struct strbuf
      *name,\n\t\t\t\t int c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_next_char
      Src: /src/git/config.c:967,1
    - Dst: isspace
      Src: /src/git/config.c:972,1
    - Dst: get_extended_base_var
      Src: /src/git/config.c:973,1
    - Dst: iskeychar
      Src: /src/git/config.c:974,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:976,1
    - Dst: tolower
      Src: /src/git/config.c:976,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - cs
    - name
    argTypes:
    - struct config_source*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 963
    functionDepth: 4
    functionLinenumber: 963
    functionLinenumberEnd: 978
    functionName: get_base_var
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_addch
    - get_extended_base_var
    - tolower
    - get_next_char
    - iskeychar
    linkageType: ''
    returnType: int
    signature: int get_base_var(struct config_source *cs, struct strbuf *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct config_source*::do_ftell
      Src: /src/git/config.c:998,1
    - Dst: struct parse_event_data*::opts::event_fn
      Src: /src/git/config.c:1008,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - cs
    - type
    - data
    argTypes:
    - struct config_source*
    - enum config_event_t
    - struct parse_event_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 1016
    functionName: do_event
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - struct parse_event_data*::opts::event_fn
    - struct config_source*::do_ftell
    linkageType: ''
    returnType: int
    signature: "int do_event(struct config_source *cs, enum config_event_t type,\n\t\t
      \   struct parse_event_data *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strintern
      Src: /src/git/config.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cs
    - scope
    - out
    argTypes:
    - struct config_source*
    - enum config_scope
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1026
    functionName: kvi_from_source
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strintern
    linkageType: ''
    returnType: void
    signature: "void kvi_from_source(struct config_source *cs,\n\t\t\t    enum config_scope
      scope,\n\t\t\t    struct key_value_info *out)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: get_next_char
      Src: /src/git/config.c:1049,1
    - Dst: do_event
      Src: /src/git/config.c:1067,1
    - Dst: do_event
      Src: /src/git/config.c:1071,1
    - Dst: isspace
      Src: /src/git/config.c:1078,1
    - Dst: do_event
      Src: /src/git/config.c:1079,1
    - Dst: do_event
      Src: /src/git/config.c:1084,1
    - Dst: do_event
      Src: /src/git/config.c:1090,1
    - Dst: strbuf_reset
      Src: /src/git/config.c:1094,1
    - Dst: get_base_var
      Src: /src/git/config.c:1095,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:1097,1
    - Dst: isalpha
      Src: /src/git/config.c:1101,1
    - Dst: do_event
      Src: /src/git/config.c:1104,1
    - Dst: strbuf_setlen
      Src: /src/git/config.c:1112,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:1113,1
    - Dst: tolower
      Src: /src/git/config.c:1113,1
    - Dst: get_value
      Src: /src/git/config.c:1114,1
    - Dst: do_event
      Src: /src/git/config.c:1118,1
    - Dst: xstrfmt
      Src: /src/git/config.c:1123,1
    - Dst: _
      Src: /src/git/config.c:1123,1
    - Dst: xstrfmt
      Src: /src/git/config.c:1127,1
    - Dst: _
      Src: /src/git/config.c:1127,1
    - Dst: xstrfmt
      Src: /src/git/config.c:1131,1
    - Dst: _
      Src: /src/git/config.c:1131,1
    - Dst: xstrfmt
      Src: /src/git/config.c:1135,1
    - Dst: _
      Src: /src/git/config.c:1135,1
    - Dst: xstrfmt
      Src: /src/git/config.c:1139,1
    - Dst: _
      Src: /src/git/config.c:1139,1
    - Dst: xstrfmt
      Src: /src/git/config.c:1143,1
    - Dst: _
      Src: /src/git/config.c:1143,1
    - Dst: die
      Src: /src/git/config.c:1151,1
    - Dst: error
      Src: /src/git/config.c:1154,1
    - Dst: BUG
      Src: /src/git/config.c:1160,1
    - Dst: free
      Src: /src/git/config.c:1163,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 92
    argCount: 5
    argNames:
    - cs
    - fn
    - kvi
    - data
    - opts
    argTypes:
    - struct config_source*
    - config_fn_t
    - struct key_value_info*
    - void*
    - struct config_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1028
    functionDepth: 5
    functionLinenumber: 1028
    functionLinenumberEnd: 1165
    functionName: git_parse_source
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - isspace
    - error
    - get_value
    - isalpha
    - die
    - strbuf_reset
    - BUG
    - xstrfmt
    - strbuf_setlen
    - get_base_var
    - strbuf_addch
    - do_event
    - _
    - free
    - tolower
    - get_next_char
    linkageType: ''
    returnType: int
    signature: "int git_parse_source(struct config_source *cs, config_fn_t fn,\n\t\t\t
      \   struct key_value_info *kvi, void *data,\n\t\t\t    const struct config_options
      *opts)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/config.c:1172,1
    - Dst: N_
      Src: /src/git/config.c:1172,1
    - Dst: N_
      Src: /src/git/config.c:1173,1
    - Dst: BUG
      Src: /src/git/config.c:1176,1
    - Dst: die
      Src: /src/git/config.c:1182,1
    - Dst: _
      Src: /src/git/config.c:1182,1
    - Dst: _
      Src: /src/git/config.c:1182,1
    - Dst: die
      Src: /src/git/config.c:1186,1
    - Dst: _
      Src: /src/git/config.c:1186,1
    - Dst: _
      Src: /src/git/config.c:1187,1
    - Dst: die
      Src: /src/git/config.c:1189,1
    - Dst: _
      Src: /src/git/config.c:1189,1
    - Dst: _
      Src: /src/git/config.c:1190,1
    - Dst: die
      Src: /src/git/config.c:1192,1
    - Dst: _
      Src: /src/git/config.c:1192,1
    - Dst: _
      Src: /src/git/config.c:1193,1
    - Dst: die
      Src: /src/git/config.c:1195,1
    - Dst: _
      Src: /src/git/config.c:1195,1
    - Dst: _
      Src: /src/git/config.c:1196,1
    - Dst: die
      Src: /src/git/config.c:1198,1
    - Dst: _
      Src: /src/git/config.c:1198,1
    - Dst: _
      Src: /src/git/config.c:1199,1
    - Dst: die
      Src: /src/git/config.c:1201,1
    - Dst: _
      Src: /src/git/config.c:1201,1
    - Dst: _
      Src: /src/git/config.c:1202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - name
    - value
    - kvi
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1204
    functionName: die_bad_number
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - N_
    - die
    - BUG
    - _
    linkageType: ''
    returnType: NORETURN
    signature: "NORETURN die_bad_number(const char *name, const char *value,\n\t\t\t
      \  const struct key_value_info *kvi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_int
      Src: /src/git/config.c:1210,1
    - Dst: die_bad_number
      Src: /src/git/config.c:1211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - value
    - kvi
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1206
    functionDepth: 4
    functionLinenumber: 1206
    functionLinenumberEnd: 1213
    functionName: git_config_int
    functionSourceFile: /src/git/config.c
    functionUses: 10
    functionsReached:
    - git_parse_int
    - die_bad_number
    linkageType: ''
    returnType: int
    signature: "int git_config_int(const char *name, const char *value,\n\t\t   const
      struct key_value_info *kvi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_uint
      Src: /src/git/config.c:1219,1
    - Dst: die_bad_number
      Src: /src/git/config.c:1220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - value
    - kvi
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1215
    functionDepth: 4
    functionLinenumber: 1215
    functionLinenumberEnd: 1222
    functionName: git_config_uint
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_parse_uint
    - die_bad_number
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int git_config_uint(const char *name, const char *value,\n\t\t\t
      \    const struct key_value_info *kvi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_int64
      Src: /src/git/config.c:1228,1
    - Dst: die_bad_number
      Src: /src/git/config.c:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - value
    - kvi
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1224
    functionDepth: 4
    functionLinenumber: 1224
    functionLinenumberEnd: 1231
    functionName: git_config_int64
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - die_bad_number
    - git_parse_int64
    linkageType: ''
    returnType: int64_t
    signature: "int64_t git_config_int64(const char *name, const char *value,\n\t\t\t
      const struct key_value_info *kvi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_ulong
      Src: /src/git/config.c:1237,1
    - Dst: die_bad_number
      Src: /src/git/config.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - value
    - kvi
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1233
    functionDepth: 4
    functionLinenumber: 1233
    functionLinenumberEnd: 1240
    functionName: git_config_ulong
    functionSourceFile: /src/git/config.c
    functionUses: 2
    functionsReached:
    - die_bad_number
    - git_parse_ulong
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long git_config_ulong(const char *name, const char *value,\n\t\t\t
      \      const struct key_value_info *kvi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_ssize_t
      Src: /src/git/config.c:1246,1
    - Dst: die_bad_number
      Src: /src/git/config.c:1247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - value
    - kvi
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1242
    functionDepth: 4
    functionLinenumber: 1242
    functionLinenumberEnd: 1249
    functionName: git_config_ssize_t
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - git_parse_ssize_t
    - die_bad_number
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t git_config_ssize_t(const char *name, const char *value,\n\t\t\t
      \  const struct key_value_info *kvi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_double
      Src: /src/git/config.c:1255,1
    - Dst: die_bad_number
      Src: /src/git/config.c:1256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - value
    - kvi
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1251
    functionDepth: 3
    functionLinenumber: 1251
    functionLinenumberEnd: 1258
    functionName: git_config_double
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - die_bad_number
    - git_parse_double
    linkageType: ''
    returnType: double
    signature: "double git_config_double(const char *name, const char *value,\n\t\t\t
      const struct key_value_info *kvi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool_text
      Src: /src/git/config.c:1263,1
    - Dst: git_config_int
      Src: /src/git/config.c:1269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - name
    - value
    - kvi
    - is_bool
    argTypes:
    - char*
    - char*
    - struct key_value_info*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1260
    functionDepth: 5
    functionLinenumber: 1260
    functionLinenumberEnd: 1270
    functionName: git_config_bool_or_int
    functionSourceFile: /src/git/config.c
    functionUses: 2
    functionsReached:
    - git_config_int
    - git_parse_maybe_bool_text
    linkageType: ''
    returnType: int
    signature: "int git_config_bool_or_int(const char *name, const char *value,\n\t\t\t
      \  const struct key_value_info *kvi, int *is_bool)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/config.c:1274,1
    - Dst: die
      Src: /src/git/config.c:1276,1
    - Dst: _
      Src: /src/git/config.c:1276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1272
    functionDepth: 5
    functionLinenumber: 1272
    functionLinenumberEnd: 1278
    functionName: git_config_bool
    functionSourceFile: /src/git/config.c
    functionUses: 28
    functionsReached:
    - git_parse_maybe_bool
    - die
    - _
    linkageType: ''
    returnType: int
    signature: int git_config_bool(const char *name, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: config_error_nonbool
      Src: /src/git/config.c:1283,1
    - Dst: xstrdup
      Src: /src/git/config.c:1284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - var
    - value
    argTypes:
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1286
    functionName: git_config_string
    functionSourceFile: /src/git/config.c
    functionUses: 17
    functionsReached:
    - config_error_nonbool
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int git_config_string(char **dest, const char *var, const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: config_error_nonbool
      Src: /src/git/config.c:1294,1
    - Dst: skip_prefix
      Src: /src/git/config.c:1296,1
    - Dst: interpolate_path
      Src: /src/git/config.c:1297,1
    - Dst: die
      Src: /src/git/config.c:1299,1
    - Dst: _
      Src: /src/git/config.c:1299,1
    - Dst: is_missing_file
      Src: /src/git/config.c:1301,1
    - Dst: free
      Src: /src/git/config.c:1302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - dest
    - var
    - value
    argTypes:
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1288
    functionDepth: 4
    functionLinenumber: 1288
    functionLinenumberEnd: 1309
    functionName: git_config_pathname
    functionSourceFile: /src/git/config.c
    functionUses: 6
    functionsReached:
    - interpolate_path
    - die
    - is_missing_file
    - _
    - free
    - skip_prefix
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: int git_config_pathname(char **dest, const char *var, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: config_error_nonbool
      Src: /src/git/config.c:1314,1
    - Dst: parse_expiry_date
      Src: /src/git/config.c:1315,1
    - Dst: error
      Src: /src/git/config.c:1316,1
    - Dst: _
      Src: /src/git/config.c:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - timestamp
    - var
    - value
    argTypes:
    - timestamp_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1311
    functionDepth: 2
    functionLinenumber: 1311
    functionLinenumberEnd: 1319
    functionName: git_config_expiry_date
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - error
    - _
    - config_error_nonbool
    - parse_expiry_date
    linkageType: ''
    returnType: int
    signature: int git_config_expiry_date(timestamp_t *timestamp, const char *var,
      const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: config_error_nonbool
      Src: /src/git/config.c:1324,1
    - Dst: color_parse
      Src: /src/git/config.c:1325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - var
    - value
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1321
    functionDepth: 5
    functionLinenumber: 1321
    functionLinenumberEnd: 1328
    functionName: git_config_color
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - color_parse
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: int git_config_color(char *dest, const char *var, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/config.c:1346,1
    - Dst: strbuf_init
      Src: /src/git/config.c:1347,1
    - Dst: kvi_from_source
      Src: /src/git/config.c:1348,1
    - Dst: git_parse_source
      Src: /src/git/config.c:1350,1
    - Dst: strbuf_release
      Src: /src/git/config.c:1352,1
    - Dst: strbuf_release
      Src: /src/git/config.c:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - top
    - fn
    - data
    - scope
    - opts
    argTypes:
    - struct config_source*
    - config_fn_t
    - void*
    - enum config_scope
    - struct config_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1335
    functionDepth: 6
    functionLinenumber: 1335
    functionLinenumberEnd: 1356
    functionName: do_config_from
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - kvi_from_source
    - git_parse_source
    - strbuf_release
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: "int do_config_from(struct config_source *top, config_fn_t fn,\n\t\t\t
      \ void *data, enum config_scope scope,\n\t\t\t  const struct config_options
      *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/config.c:1368,1
    - Dst: flockfile
      Src: /src/git/config.c:1378,1
    - Dst: do_config_from
      Src: /src/git/config.c:1379,1
    - Dst: funlockfile
      Src: /src/git/config.c:1380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - fn
    - origin_type
    - name
    - f
    - data
    - scope
    - opts
    argTypes:
    - config_fn_t
    - enum config_origin_type
    - char*
    - FILE*
    - void*
    - enum config_scope
    - struct config_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1358
    functionDepth: 7
    functionLinenumber: 1358
    functionLinenumberEnd: 1382
    functionName: do_config_from_file
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - do_config_from
    - BUG
    - funlockfile
    - flockfile
    linkageType: ''
    returnType: int
    signature: "int do_config_from_file(config_fn_t fn,\n\t\t\t       const enum config_origin_type
      origin_type,\n\t\t\t       const char *name, FILE *f, void *data,\n\t\t\t       enum
      config_scope scope,\n\t\t\t       const struct config_options *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_config_from_file
      Src: /src/git/config.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - data
    - scope
    argTypes:
    - config_fn_t
    - void*
    - enum config_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1384
    functionDepth: 8
    functionLinenumber: 1384
    functionLinenumberEnd: 1389
    functionName: git_config_from_stdin
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - do_config_from_file
    linkageType: ''
    returnType: int
    signature: "int git_config_from_stdin(config_fn_t fn, void *data,\n\t\t\t\t enum
      config_scope scope)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/config.c:1399,1
    - Dst: fopen_or_warn
      Src: /src/git/config.c:1400,1
    - Dst: do_config_from_file
      Src: /src/git/config.c:1402,1
    - Dst: fclose
      Src: /src/git/config.c:1404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - fn
    - filename
    - data
    - scope
    - opts
    argTypes:
    - config_fn_t
    - char*
    - void*
    - enum config_scope
    - struct config_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1391
    functionDepth: 8
    functionLinenumber: 1391
    functionLinenumberEnd: 1407
    functionName: git_config_from_file_with_options
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - fclose
    - fopen_or_warn
    - BUG
    - do_config_from_file
    linkageType: ''
    returnType: int
    signature: "int git_config_from_file_with_options(config_fn_t fn, const char *filename,\n\t\t\t\t
      \     void *data, enum config_scope scope,\n\t\t\t\t      const struct config_options
      *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_from_file_with_options
      Src: /src/git/config.c:1411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - filename
    - data
    argTypes:
    - config_fn_t
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1409
    functionDepth: 9
    functionLinenumber: 1409
    functionLinenumberEnd: 1413
    functionName: git_config_from_file
    functionSourceFile: /src/git/config.c
    functionUses: 3
    functionsReached:
    - git_config_from_file_with_options
    linkageType: ''
    returnType: int
    signature: int git_config_from_file(config_fn_t fn, const char *filename, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_config_from
      Src: /src/git/config.c:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - fn
    - origin_type
    - name
    - buf
    - len
    - data
    - scope
    - opts
    argTypes:
    - config_fn_t
    - enum config_origin_type
    - char*
    - char*
    - size_t
    - void*
    - enum config_scope
    - struct config_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1415
    functionDepth: 7
    functionLinenumber: 1415
    functionLinenumberEnd: 1434
    functionName: git_config_from_mem
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - do_config_from
    linkageType: ''
    returnType: int
    signature: "int git_config_from_mem(config_fn_t fn,\n\t\t\tconst enum config_origin_type
      origin_type,\n\t\t\tconst char *name, const char *buf, size_t len,\n\t\t\tvoid
      *data, enum config_scope scope,\n\t\t\tconst struct config_options *opts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/config.c:1448,1
    - Dst: error
      Src: /src/git/config.c:1450,1
    - Dst: _
      Src: /src/git/config.c:1450,1
    - Dst: free
      Src: /src/git/config.c:1452,1
    - Dst: error
      Src: /src/git/config.c:1453,1
    - Dst: _
      Src: /src/git/config.c:1453,1
    - Dst: git_config_from_mem
      Src: /src/git/config.c:1456,1
    - Dst: free
      Src: /src/git/config.c:1458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - fn
    - name
    - repo
    - oid
    - data
    - scope
    argTypes:
    - config_fn_t
    - char*
    - struct repository*
    - struct object_id*
    - void*
    - enum config_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1436
    functionDepth: 12
    functionLinenumber: 1436
    functionLinenumberEnd: 1461
    functionName: git_config_from_blob_oid
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - error
    - git_config_from_mem
    - free
    - odb_read_object
    - _
    linkageType: ''
    returnType: int
    signature: "int git_config_from_blob_oid(config_fn_t fn,\n\t\t\t      const char
      *name,\n\t\t\t      struct repository *repo,\n\t\t\t      const struct object_id
      *oid,\n\t\t\t      void *data,\n\t\t\t      enum config_scope scope)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/config.c:1471,1
    - Dst: error
      Src: /src/git/config.c:1472,1
    - Dst: _
      Src: /src/git/config.c:1472,1
    - Dst: git_config_from_blob_oid
      Src: /src/git/config.c:1473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - fn
    - repo
    - name
    - data
    - scope
    argTypes:
    - config_fn_t
    - struct repository*
    - char*
    - void*
    - enum config_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1463
    functionDepth: 13
    functionLinenumber: 1463
    functionLinenumberEnd: 1474
    functionName: git_config_from_blob_ref
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - error
    - repo_get_oid
    - git_config_from_blob_oid
    - _
    linkageType: ''
    returnType: int
    signature: "int git_config_from_blob_ref(config_fn_t fn,\n\t\t\t\t    struct repository
      *repo,\n\t\t\t\t    const char *name,\n\t\t\t\t    void *data,\n\t\t\t\t    enum
      config_scope scope)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/config.c:1478,1
    - Dst: getenv
      Src: /src/git/config.c:1478,1
    - Dst: system_path
      Src: /src/git/config.c:1480,1
    - Dst: normalize_path_copy
      Src: /src/git/config.c:1481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1476
    functionDepth: 3
    functionLinenumber: 1476
    functionLinenumberEnd: 1483
    functionName: git_system_config
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - getenv
    - system_path
    - xstrdup_or_null
    - normalize_path_copy
    linkageType: ''
    returnType: char
    signature: char *git_system_config(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_global_config_paths
      Src: /src/git/config.c:1489,1
    - Dst: free
      Src: /src/git/config.c:1491,1
    - Dst: access_or_warn
      Src: /src/git/config.c:1495,1
    - Dst: access_or_warn
      Src: /src/git/config.c:1496,1
    - Dst: free
      Src: /src/git/config.c:1497,1
    - Dst: free
      Src: /src/git/config.c:1500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1485
    functionDepth: 3
    functionLinenumber: 1485
    functionLinenumberEnd: 1503
    functionName: git_global_config
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - free
    - access_or_warn
    - git_global_config_paths
    linkageType: ''
    returnType: char
    signature: char *git_global_config(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/config.c:1507,1
    - Dst: getenv
      Src: /src/git/config.c:1507,1
    - Dst: interpolate_path
      Src: /src/git/config.c:1511,1
    - Dst: xdg_config_home
      Src: /src/git/config.c:1512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - user_out
    - xdg_out
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1505
    functionDepth: 8
    functionLinenumber: 1505
    functionLinenumberEnd: 1517
    functionName: git_global_config_paths
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - getenv
    - interpolate_path
    - xstrdup_or_null
    - xdg_config_home
    linkageType: ''
    returnType: void
    signature: void git_global_config_paths(char **user_out, char **xdg_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/config.c:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1519
    functionDepth: 6
    functionLinenumber: 1519
    functionLinenumberEnd: 1522
    functionName: git_config_system
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    linkageType: ''
    returnType: int
    signature: int git_config_system(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: git_system_config
      Src: /src/git/config.c:1529,1
    - Dst: BUG
      Src: /src/git/config.c:1541,1
    - Dst: mkpathdup
      Src: /src/git/config.c:1544,1
    - Dst: mkpathdup
      Src: /src/git/config.c:1545,1
    - Dst: git_config_system
      Src: /src/git/config.c:1551,1
    - Dst: access_or_die
      Src: /src/git/config.c:1552,1
    - Dst: git_config_from_file_with_options
      Src: /src/git/config.c:1554,1
    - Dst: git_global_config_paths
      Src: /src/git/config.c:1558,1
    - Dst: access_or_die
      Src: /src/git/config.c:1560,1
    - Dst: git_config_from_file_with_options
      Src: /src/git/config.c:1561,1
    - Dst: access_or_die
      Src: /src/git/config.c:1564,1
    - Dst: git_config_from_file_with_options
      Src: /src/git/config.c:1565,1
    - Dst: access_or_die
      Src: /src/git/config.c:1569,1
    - Dst: git_config_from_file_with_options
      Src: /src/git/config.c:1570,1
    - Dst: access_or_die
      Src: /src/git/config.c:1575,1
    - Dst: git_config_from_file_with_options
      Src: /src/git/config.c:1576,1
    - Dst: git_config_from_parameters
      Src: /src/git/config.c:1581,1
    - Dst: die
      Src: /src/git/config.c:1582,1
    - Dst: _
      Src: /src/git/config.c:1582,1
    - Dst: free
      Src: /src/git/config.c:1584,1
    - Dst: free
      Src: /src/git/config.c:1585,1
    - Dst: free
      Src: /src/git/config.c:1586,1
    - Dst: free
      Src: /src/git/config.c:1587,1
    - Dst: free
      Src: /src/git/config.c:1588,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 30
    argCount: 4
    argNames:
    - opts
    - repo
    - fn
    - data
    argTypes:
    - struct config_options*
    - struct repository*
    - config_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1524
    functionDepth: 14
    functionLinenumber: 1524
    functionLinenumberEnd: 1590
    functionName: do_git_config_sequence
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_config_system
    - git_config_from_file_with_options
    - die
    - git_global_config_paths
    - git_system_config
    - git_config_from_parameters
    - access_or_die
    - _
    - free
    - mkpathdup
    - BUG
    linkageType: ''
    returnType: int
    signature: "int do_git_config_sequence(const struct config_options *opts,\n\t\t\t\t
      \ const struct repository *repo,\n\t\t\t\t  config_fn_t fn, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: git_config_from_stdin
      Src: /src/git/config.c:1615,1
    - Dst: git_config_from_file_with_options
      Src: /src/git/config.c:1617,1
    - Dst: git_config_from_blob_ref
      Src: /src/git/config.c:1621,1
    - Dst: do_git_config_sequence
      Src: /src/git/config.c:1624,1
    - Dst: string_list_clear
      Src: /src/git/config.c:1628,1
    - Dst: FREE_AND_NULL
      Src: /src/git/config.c:1629,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - fn
    - data
    - config_source
    - repo
    - opts
    argTypes:
    - config_fn_t
    - void*
    - struct git_config_source*
    - struct repository*
    - struct config_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1592
    functionDepth: 15
    functionLinenumber: 1592
    functionLinenumberEnd: 1632
    functionName: config_with_options
    functionSourceFile: /src/git/config.c
    functionUses: 3
    functionsReached:
    - git_config_from_file_with_options
    - string_list_clear
    - git_config_from_stdin
    - do_git_config_sequence
    - git_config_from_blob_ref
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: "int config_with_options(config_fn_t fn, void *data,\n\t\t\tconst struct
      git_config_source *config_source,\n\t\t\tstruct repository *repo,\n\t\t\tconst
      struct config_options *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/config.c:1648,1
    - Dst: git_die_config_linenr
      Src: /src/git/config.c:1649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - set
    - fn
    - data
    argTypes:
    - struct config_set*
    - config_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1634
    functionDepth: 1
    functionLinenumber: 1634
    functionLinenumberEnd: 1653
    functionName: configset_iter
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_die_config_linenr
    - fn
    linkageType: ''
    returnType: void
    signature: void configset_iter(struct config_set *set, config_fn_t fn, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_common_dir
      Src: /src/git/config.c:1664,1
    - Dst: repo_get_git_dir
      Src: /src/git/config.c:1665,1
    - Dst: discover_git_directory
      Src: /src/git/config.c:1674,1
    - Dst: config_with_options
      Src: /src/git/config.c:1679,1
    - Dst: strbuf_release
      Src: /src/git/config.c:1681,1
    - Dst: strbuf_release
      Src: /src/git/config.c:1682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - repo
    - cb
    - data
    argTypes:
    - struct repository*
    - config_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1655
    functionDepth: 16
    functionLinenumber: 1655
    functionLinenumberEnd: 1683
    functionName: read_early_config
    functionSourceFile: /src/git/config.c
    functionUses: 3
    functionsReached:
    - strbuf_release
    - repo_get_common_dir
    - repo_get_git_dir
    - config_with_options
    - discover_git_directory
    linkageType: ''
    returnType: void
    signature: void read_early_config(struct repository *repo, config_fn_t cb, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_with_options
      Src: /src/git/config.c:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - cb
    - data
    argTypes:
    - config_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1685
    functionDepth: 16
    functionLinenumber: 1685
    functionLinenumberEnd: 1696
    functionName: read_very_early_config
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - config_with_options
    linkageType: ''
    returnType: void
    signature: void read_very_early_config(config_fn_t cb, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_config_parse_key
      Src: /src/git/config.c:1711,1
    - Dst: hashmap_entry_init
      Src: /src/git/config.c:1715,1
    - Dst: strhash
      Src: /src/git/config.c:1715,1
    - Dst: hashmap_get_entry
      Src: /src/git/config.c:1717,1
    - Dst: free
      Src: /src/git/config.c:1718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - set
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - struct config_set_element**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1698
    functionDepth: 10
    functionLinenumber: 1698
    functionLinenumberEnd: 1721
    functionName: configset_find_element
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_entry_init
    - git_config_parse_key
    - hashmap_get_entry
    - free
    linkageType: ''
    returnType: RESULT_MUST_BE_USED
    signature: "RESULT_MUST_BE_USED configset_find_element(struct config_set *set,
      const char *key,\n\t\t\t\t  struct config_set_element **dest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/config.c:1730,1
    - Dst: configset_find_element
      Src: /src/git/config.c:1733,1
    - Dst: xmalloc
      Src: /src/git/config.c:1741,1
    - Dst: hashmap_entry_init
      Src: /src/git/config.c:1742,1
    - Dst: strhash
      Src: /src/git/config.c:1742,1
    - Dst: xstrdup
      Src: /src/git/config.c:1743,1
    - Dst: string_list_init_dup
      Src: /src/git/config.c:1744,1
    - Dst: hashmap_add
      Src: /src/git/config.c:1745,1
    - Dst: string_list_append_nodup
      Src: /src/git/config.c:1747,1
    - Dst: xstrdup_or_null
      Src: /src/git/config.c:1747,1
    - Dst: ALLOC_GROW
      Src: /src/git/config.c:1749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - kvi_p
    - set
    - key
    - value
    argTypes:
    - struct key_value_info*
    - struct config_set*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1723
    functionDepth: 11
    functionLinenumber: 1723
    functionLinenumberEnd: 1758
    functionName: configset_add_value
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_add
    - xstrdup_or_null
    - string_list_append_nodup
    - hashmap_entry_init
    - configset_find_element
    - xmalloc
    - ALLOC_GROW
    - string_list_init_dup
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int configset_add_value(const struct key_value_info *kvi_p,\n\t\t\t
      \      struct config_set *set, const char *key,\n\t\t\t       const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/config.c:1767,1
    - Dst: container_of
      Src: /src/git/config.c:1768,1
    - Dst: strcmp
      Src: /src/git/config.c:1770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1760
    functionDepth: 1
    functionLinenumber: 1760
    functionLinenumberEnd: 1771
    functionName: config_set_element_cmp
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int config_set_element_cmp(const void *cmp_data UNUSED,\n\t\t\t\t
      \ const struct hashmap_entry *eptr,\n\t\t\t\t  const struct hashmap_entry *entry_or_key,\n\t\t\t\t
      \ const void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/config.c:1775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct config_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1773
    functionDepth: 3
    functionLinenumber: 1773
    functionLinenumberEnd: 1780
    functionName: git_configset_init
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - hashmap_init
    linkageType: ''
    returnType: void
    signature: void git_configset_init(struct config_set *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/config.c:1789,1
    - Dst: free
      Src: /src/git/config.c:1791,1
    - Dst: string_list_clear
      Src: /src/git/config.c:1792,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/config.c:1794,1
    - Dst: free
      Src: /src/git/config.c:1796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct config_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1782
    functionDepth: 2
    functionLinenumber: 1782
    functionLinenumberEnd: 1800
    functionName: git_configset_clear
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    - hashmap_for_each_entry
    - hashmap_clear_and_free
    - free
    linkageType: ''
    returnType: void
    signature: void git_configset_clear(struct config_set *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: configset_add_value
      Src: /src/git/config.c:1807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - key
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1802
    functionDepth: 12
    functionLinenumber: 1802
    functionLinenumberEnd: 1809
    functionName: config_set_callback
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - configset_add_value
    linkageType: ''
    returnType: int
    signature: "int config_set_callback(const char *key, const char *value,\n\t\t\t
      \      const struct config_context *ctx,\n\t\t\t       void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_from_file
      Src: /src/git/config.c:1813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - filename
    argTypes:
    - struct config_set*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1811
    functionDepth: 10
    functionLinenumber: 1811
    functionLinenumberEnd: 1814
    functionName: git_configset_add_file
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_config_from_file
    linkageType: ''
    returnType: int
    signature: int git_configset_add_file(struct config_set *set, const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value_multi
      Src: /src/git/config.c:1827,1
    - Dst: assert
      Src: /src/git/config.c:1830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - set
    - key
    - value
    - kvi
    argTypes:
    - struct config_set*
    - char*
    - char**
    - struct key_value_info*
    assertStmts:
    - condition: (values->nr > 0)
      pos:
        line_end: 1829
        line_start: 1829
        source_file: /src/git/config.c
    constantsTouched: []
    func_position:
      end: 1836
      start: 1816
    functionDepth: 1
    functionLinenumber: 1816
    functionLinenumberEnd: 1836
    functionName: git_configset_get_value
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - assert
    - git_configset_get_value_multi
    linkageType: ''
    returnType: int
    signature: "int git_configset_get_value(struct config_set *set, const char *key,\n\t\t\t
      \   const char **value, struct key_value_info *kvi)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: configset_find_element
      Src: /src/git/config.c:1844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - set
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - struct string_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1838
    functionDepth: 11
    functionLinenumber: 1838
    functionLinenumberEnd: 1851
    functionName: git_configset_get_value_multi
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - configset_find_element
    linkageType: ''
    returnType: int
    signature: "int git_configset_get_value_multi(struct config_set *set, const char
      *key,\n\t\t\t\t  const struct string_list **dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_error_nonbool
      Src: /src/git/config.c:1855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - util
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1853
    functionDepth: 0
    functionLinenumber: 1853
    functionLinenumberEnd: 1856
    functionName: check_multi_string
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: int check_multi_string(struct string_list_item *item, void *util)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value_multi
      Src: /src/git/config.c:1863,1
    - Dst: for_each_string_list
      Src: /src/git/config.c:1865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cs
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - struct string_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1858
    functionDepth: 12
    functionLinenumber: 1858
    functionLinenumberEnd: 1870
    functionName: git_configset_get_string_multi
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_configset_get_value_multi
    - for_each_string_list
    linkageType: ''
    returnType: int
    signature: "int git_configset_get_string_multi(struct config_set *cs, const char
      *key,\n\t\t\t\t   const struct string_list **dest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: configset_find_element
      Src: /src/git/config.c:1877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - set
    - key
    argTypes:
    - struct config_set*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1872
    functionDepth: 11
    functionLinenumber: 1872
    functionLinenumberEnd: 1882
    functionName: git_configset_get
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - configset_find_element
    linkageType: ''
    returnType: int
    signature: int git_configset_get(struct config_set *set, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value
      Src: /src/git/config.c:1887,1
    - Dst: git_config_string
      Src: /src/git/config.c:1888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - set
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1884
    functionDepth: 2
    functionLinenumber: 1884
    functionLinenumberEnd: 1891
    functionName: git_configset_get_string
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_configset_get_value
    - git_config_string
    linkageType: ''
    returnType: int
    signature: int git_configset_get_string(struct config_set *set, const char *key,
      char **dest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value
      Src: /src/git/config.c:1897,1
    - Dst: config_error_nonbool
      Src: /src/git/config.c:1899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - set
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1893
    functionDepth: 2
    functionLinenumber: 1893
    functionLinenumberEnd: 1905
    functionName: git_configset_get_string_tmp
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_configset_get_value
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_configset_get_string_tmp(struct config_set *set, const char
      *key,\n\t\t\t\t\tconst char **dest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value
      Src: /src/git/config.c:1912,1
    - Dst: git_config_int
      Src: /src/git/config.c:1913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - set
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1907
    functionDepth: 5
    functionLinenumber: 1907
    functionLinenumberEnd: 1917
    functionName: git_configset_get_int
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - git_configset_get_value
    linkageType: ''
    returnType: int
    signature: int git_configset_get_int(struct config_set *set, const char *key,
      int *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value
      Src: /src/git/config.c:1924,1
    - Dst: git_config_uint
      Src: /src/git/config.c:1925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - set
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1919
    functionDepth: 5
    functionLinenumber: 1919
    functionLinenumberEnd: 1929
    functionName: git_configset_get_uint
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_config_uint
    - git_configset_get_value
    linkageType: ''
    returnType: int
    signature: int git_configset_get_uint(struct config_set *set, const char *key,
      unsigned int *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value
      Src: /src/git/config.c:1936,1
    - Dst: git_config_ulong
      Src: /src/git/config.c:1937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - set
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1931
    functionDepth: 5
    functionLinenumber: 1931
    functionLinenumberEnd: 1941
    functionName: git_configset_get_ulong
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_configset_get_value
    - git_config_ulong
    linkageType: ''
    returnType: int
    signature: int git_configset_get_ulong(struct config_set *set, const char *key,
      unsigned long *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value
      Src: /src/git/config.c:1946,1
    - Dst: git_config_bool
      Src: /src/git/config.c:1947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - set
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1943
    functionDepth: 6
    functionLinenumber: 1943
    functionLinenumberEnd: 1951
    functionName: git_configset_get_bool
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_configset_get_value
    - git_config_bool
    linkageType: ''
    returnType: int
    signature: int git_configset_get_bool(struct config_set *set, const char *key,
      int *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value
      Src: /src/git/config.c:1959,1
    - Dst: git_config_bool_or_int
      Src: /src/git/config.c:1960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - set
    - key
    - is_bool
    - dest
    argTypes:
    - struct config_set*
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1953
    functionDepth: 6
    functionLinenumber: 1953
    functionLinenumberEnd: 1964
    functionName: git_configset_get_bool_or_int
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_configset_get_value
    - git_config_bool_or_int
    linkageType: ''
    returnType: int
    signature: "int git_configset_get_bool_or_int(struct config_set *set, const char
      *key,\n\t\t\t\tint *is_bool, int *dest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value
      Src: /src/git/config.c:1969,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/config.c:1970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - set
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1966
    functionDepth: 5
    functionLinenumber: 1966
    functionLinenumberEnd: 1976
    functionName: git_configset_get_maybe_bool
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_configset_get_value
    - git_parse_maybe_bool
    linkageType: ''
    returnType: int
    signature: int git_configset_get_maybe_bool(struct config_set *set, const char
      *key, int *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_value
      Src: /src/git/config.c:1981,1
    - Dst: git_config_pathname
      Src: /src/git/config.c:1982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - set
    - key
    - dest
    argTypes:
    - struct config_set*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1978
    functionDepth: 5
    functionLinenumber: 1978
    functionLinenumberEnd: 1985
    functionName: git_configset_get_pathname
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_config_pathname
    - git_configset_get_value
    linkageType: ''
    returnType: int
    signature: int git_configset_get_pathname(struct config_set *set, const char *key,
      char **dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_clear
      Src: /src/git/config.c:2006,1
    - Dst: free
      Src: /src/git/config.c:2008,1
    - Dst: free
      Src: /src/git/config.c:2009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct comment_char_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 2004
    functionDepth: 4
    functionLinenumber: 2004
    functionLinenumberEnd: 2010
    functionName: comment_char_config_release
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strintmap_clear
    - free
    linkageType: ''
    returnType: void
    signature: void comment_char_config_release(struct comment_char_config *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2015
    functionDepth: 0
    functionLinenumber: 2015
    functionLinenumberEnd: 2016
    functionName: COMMENT_KEY_SHIFT
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMMENT_KEY_SHIFT(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 2016
    functionDepth: 0
    functionLinenumber: 2016
    functionLinenumberEnd: 2017
    functionName: COMMENT_KEY_MASK
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMMENT_KEY_MASK(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_get
      Src: /src/git/config.c:2021,1
    - Dst: COMMENT_KEY_MASK
      Src: /src/git/config.c:2022,1
    - Dst: COMMENT_KEY_SHIFT
      Src: /src/git/config.c:2023,1
    - Dst: strintmap_set
      Src: /src/git/config.c:2025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - config
    - path
    - id
    - value
    argTypes:
    - struct comment_char_config*
    - char*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2018
    functionDepth: 4
    functionLinenumber: 2018
    functionLinenumberEnd: 2026
    functionName: set_comment_key_flags
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strintmap_get
    - COMMENT_KEY_MASK
    - strintmap_set
    - COMMENT_KEY_SHIFT
    linkageType: ''
    returnType: void
    signature: "void set_comment_key_flags(struct comment_char_config *config,\n\t\t\t\t
      \ const char *path, unsigned id, unsigned value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_get
      Src: /src/git/config.c:2031,1
    - Dst: COMMENT_KEY_MASK
      Src: /src/git/config.c:2033,1
    - Dst: COMMENT_KEY_SHIFT
      Src: /src/git/config.c:2033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - config
    - path
    - id
    argTypes:
    - struct comment_char_config*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2028
    functionDepth: 4
    functionLinenumber: 2028
    functionLinenumberEnd: 2034
    functionName: get_comment_key_flags
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strintmap_get
    - COMMENT_KEY_MASK
    - COMMENT_KEY_SHIFT
    linkageType: ''
    returnType: unsigned
    signature: "unsigned get_comment_key_flags(struct comment_char_config *config,\n\t\t\t\t
      \     const char *path, unsigned id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/config.c:2043,1
    - Dst: BUG
      Src: /src/git/config.c:2044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2036
    functionDepth: 1
    functionLinenumber: 2036
    functionLinenumberEnd: 2047
    functionName: comment_key_name
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - BUG
    linkageType: ''
    returnType: char
    signature: char *comment_key_name(unsigned id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/config.c:2056,1
    - Dst: strcmp
      Src: /src/git/config.c:2058,1
    - Dst: strcmp
      Src: /src/git/config.c:2064,1
    - Dst: get_comment_key_flags
      Src: /src/git/config.c:2067,1
    - Dst: set_comment_key_flags
      Src: /src/git/config.c:2068,1
    - Dst: ALLOC_GROW_BY
      Src: /src/git/config.c:2073,1
    - Dst: xstrdup
      Src: /src/git/config.c:2077,1
    - Dst: set_comment_key_flags
      Src: /src/git/config.c:2078,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - key
    - value
    - ctx
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2049
    functionDepth: 5
    functionLinenumber: 2049
    functionLinenumberEnd: 2082
    functionName: comment_char_callback
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - get_comment_key_flags
    - set_comment_key_flags
    - ALLOC_GROW_BY
    - strcmp
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void comment_char_callback(const char *key, const char *value,\n\t\t\t\t
      \ const struct config_context *ctx, void *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: git_global_config
      Src: /src/git/config.c:2087,1
    - Dst: git_system_config
      Src: /src/git/config.c:2088,1
    - Dst: access
      Src: /src/git/config.c:2090,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2095,1
    - Dst: fspatheq
      Src: /src/git/config.c:2096,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2097,1
    - Dst: fspatheq
      Src: /src/git/config.c:2098,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2099,1
    - Dst: fspatheq
      Src: /src/git/config.c:2100,1
    - Dst: mkpath
      Src: /src/git/config.c:2101,1
    - Dst: repo_get_git_dir
      Src: /src/git/config.c:2102,1
    - Dst: fspatheq
      Src: /src/git/config.c:2104,1
    - Dst: mkpath
      Src: /src/git/config.c:2105,1
    - Dst: repo_get_common_dir
      Src: /src/git/config.c:2106,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2107,1
    - Dst: getenv
      Src: /src/git/config.c:2110,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2112,1
    - Dst: fspathncmp
      Src: /src/git/config.c:2113,1
    - Dst: strlen
      Src: /src/git/config.c:2113,1
    - Dst: strlen
      Src: /src/git/config.c:2114,1
    - Dst: fspathncmp
      Src: /src/git/config.c:2115,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2117,1
    - Dst: sq_quote_buf_pretty
      Src: /src/git/config.c:2119,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:2120,1
    - Dst: free
      Src: /src/git/config.c:2123,1
    - Dst: free
      Src: /src/git/config.c:2124,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - repo
    - buf
    - item
    argTypes:
    - struct repository*
    - struct strbuf*
    - struct comment_char_config_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2084
    functionDepth: 4
    functionLinenumber: 2084
    functionLinenumberEnd: 2125
    functionName: add_config_scope_arg
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - fspatheq
    - access
    - fspathncmp
    - repo_get_common_dir
    - git_system_config
    - strbuf_addch
    - sq_quote_buf_pretty
    - strlen
    - repo_get_git_dir
    - strbuf_addstr
    - free
    - mkpath
    - getenv
    - git_global_config
    linkageType: ''
    returnType: void
    signature: "void add_config_scope_arg(struct repository *repo, struct strbuf *buf,\n\t\t\t\t
      struct comment_char_config_item *item)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/git/config.c:2133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct comment_char_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2127
    functionDepth: 0
    functionLinenumber: 2127
    functionLinenumberEnd: 2138
    functionName: can_unset_comment_char_config
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - access
    linkageType: ''
    returnType: bool
    signature: bool can_unset_comment_char_config(struct comment_char_config *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: can_unset_comment_char_config
      Src: /src/git/config.c:2145,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2151,1
    - Dst: add_config_scope_arg
      Src: /src/git/config.c:2152,1
    - Dst: get_comment_key_flags
      Src: /src/git/config.c:2153,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2154,1
    - Dst: strbuf_addf
      Src: /src/git/config.c:2155,1
    - Dst: comment_key_name
      Src: /src/git/config.c:2155,1
    - Dst: advise
      Src: /src/git/config.c:2157,1
    - Dst: _
      Src: /src/git/config.c:2157,1
    - Dst: strbuf_release
      Src: /src/git/config.c:2159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - repo
    - config
    argTypes:
    - struct repository*
    - struct comment_char_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2140
    functionDepth: 5
    functionLinenumber: 2140
    functionLinenumberEnd: 2160
    functionName: add_unset_auto_comment_char_advice
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - get_comment_key_flags
    - strbuf_release
    - strbuf_addf
    - add_config_scope_arg
    - strbuf_addstr
    - _
    - comment_key_name
    - advise
    - can_unset_comment_char_config
    linkageType: ''
    returnType: void
    signature: "void add_unset_auto_comment_char_advice(struct repository *repo,\n\t\t\t\t\t
      \      struct comment_char_config *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/config.c:2168,1
    - Dst: add_unset_auto_comment_char_advice
      Src: /src/git/config.c:2177,1
    - Dst: strbuf_reset
      Src: /src/git/config.c:2179,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2180,1
    - Dst: add_config_scope_arg
      Src: /src/git/config.c:2181,1
    - Dst: strbuf_addf
      Src: /src/git/config.c:2182,1
    - Dst: comment_key_name
      Src: /src/git/config.c:2182,1
    - Dst: advise
      Src: /src/git/config.c:2184,1
    - Dst: _
      Src: /src/git/config.c:2184,1
    - Dst: strbuf_release
      Src: /src/git/config.c:2187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - repo
    - config
    argTypes:
    - struct repository*
    - struct comment_char_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2162
    functionDepth: 6
    functionLinenumber: 2162
    functionLinenumberEnd: 2188
    functionName: add_comment_char_advice
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - add_unset_auto_comment_char_advice
    - strbuf_release
    - strbuf_reset
    - strbuf_addf
    - add_config_scope_arg
    - strbuf_addstr
    - _
    - comment_key_name
    - advise
    linkageType: ''
    returnType: void
    signature: "void add_comment_char_advice(struct repository *repo,\n\t\t\t\t    struct
      comment_char_config *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - repo_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2200
    functionDepth: 0
    functionLinenumber: 2200
    functionLinenumberEnd: 2204
    functionName: REPO_CONFIG_INIT
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPO_CONFIG_INIT(repo_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comment_char_config_release
      Src: /src/git/config.c:2207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct repo_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2205
    functionDepth: 5
    functionLinenumber: 2205
    functionLinenumberEnd: 2208
    functionName: repo_config_release
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - comment_char_config_release
    linkageType: ''
    returnType: void
    signature: void repo_config_release(struct repo_config *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die_message
      Src: /src/git/config.c:2217,1
    - Dst: _
      Src: /src/git/config.c:2217,1
    - Dst: comment_key_name
      Src: /src/git/config.c:2218,1
    - Dst: add_comment_char_advice
      Src: /src/git/config.c:2219,1
    - Dst: die
      Src: /src/git/config.c:2220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - repo
    - config
    argTypes:
    - struct repository*
    - struct comment_char_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2211
    functionDepth: 7
    functionLinenumber: 2211
    functionLinenumberEnd: 2221
    functionName: check_auto_comment_char_config
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - die
    - add_comment_char_advice
    - _
    - comment_key_name
    - die_message
    linkageType: ''
    returnType: void
    signature: "void check_auto_comment_char_config(struct repository *repo,\n\t\t\t\t\t
      \  struct comment_char_config *config)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/config.c:2237,1
    - Dst: setenv
      Src: /src/git/config.c:2240,1
    - Dst: warning
      Src: /src/git/config.c:2242,1
    - Dst: _
      Src: /src/git/config.c:2242,1
    - Dst: comment_key_name
      Src: /src/git/config.c:2243,1
    - Dst: add_comment_char_advice
      Src: /src/git/config.c:2244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - repo
    - config
    argTypes:
    - struct repository*
    - struct comment_char_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2223
    functionDepth: 7
    functionLinenumber: 2223
    functionLinenumberEnd: 2245
    functionName: check_auto_comment_char_config
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    - setenv
    - add_comment_char_advice
    - _
    - comment_key_name
    - warning
    linkageType: ''
    returnType: void
    signature: "void check_auto_comment_char_config(struct repository *repo,\n\t\t\t\t\t
      \  struct comment_char_config *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_auto_comment_char_config
      Src: /src/git/config.c:2253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct repo_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2248
    functionDepth: 8
    functionLinenumber: 2248
    functionLinenumberEnd: 2255
    functionName: check_deprecated_config
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - check_auto_comment_char_config
    linkageType: ''
    returnType: void
    signature: void check_deprecated_config(struct repo_config *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comment_char_callback
      Src: /src/git/config.c:2262,1
    - Dst: config_set_callback
      Src: /src/git/config.c:2263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - key
    - value
    - ctx
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2257
    functionDepth: 13
    functionLinenumber: 2257
    functionLinenumberEnd: 2264
    functionName: repo_config_callback
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - config_set_callback
    - comment_char_callback
    linkageType: ''
    returnType: int
    signature: "int repo_config_callback(const char *key, const char *value,\n\t\t\t\tconst
      struct config_context *ctx, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REPO_CONFIG_INIT
      Src: /src/git/config.c:2270,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/config.c:2277,1
    - Dst: git_configset_clear
      Src: /src/git/config.c:2279,1
    - Dst: git_configset_init
      Src: /src/git/config.c:2281,1
    - Dst: config_with_options
      Src: /src/git/config.c:2282,1
    - Dst: die
      Src: /src/git/config.c:2295,1
    - Dst: _
      Src: /src/git/config.c:2295,1
    - Dst: check_deprecated_config
      Src: /src/git/config.c:2296,1
    - Dst: repo_config_release
      Src: /src/git/config.c:2297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2267
    functionDepth: 16
    functionLinenumber: 2267
    functionLinenumberEnd: 2298
    functionName: repo_read_config
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - check_deprecated_config
    - die
    - REPO_CONFIG_INIT
    - git_configset_init
    - repo_config_release
    - git_configset_clear
    - config_with_options
    - CALLOC_ARRAY
    - _
    linkageType: ''
    returnType: void
    signature: void repo_read_config(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_config
      Src: /src/git/config.c:2304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2300
    functionDepth: 17
    functionLinenumber: 2300
    functionLinenumberEnd: 2305
    functionName: git_config_check_init
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - repo_read_config
    linkageType: ''
    returnType: void
    signature: void git_config_check_init(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_clear
      Src: /src/git/config.c:2311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2307
    functionDepth: 3
    functionLinenumber: 2307
    functionLinenumberEnd: 2312
    functionName: repo_config_clear
    functionSourceFile: /src/git/config.c
    functionUses: 3
    functionsReached:
    - git_configset_clear
    linkageType: ''
    returnType: void
    signature: void repo_config_clear(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_very_early_config
      Src: /src/git/config.c:2317,1
    - Dst: git_config_check_init
      Src: /src/git/config.c:2320,1
    - Dst: configset_iter
      Src: /src/git/config.c:2321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - repo
    - fn
    - data
    argTypes:
    - struct repository*
    - config_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2314
    functionDepth: 18
    functionLinenumber: 2314
    functionLinenumberEnd: 2322
    functionName: repo_config
    functionSourceFile: /src/git/config.c
    functionUses: 32
    functionsReached:
    - read_very_early_config
    - git_config_check_init
    - configset_iter
    linkageType: ''
    returnType: void
    signature: void repo_config(struct repository *repo, config_fn_t fn, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2326,1
    - Dst: git_configset_get
      Src: /src/git/config.c:2327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - repo
    - key
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2324
    functionDepth: 18
    functionLinenumber: 2324
    functionLinenumberEnd: 2328
    functionName: repo_config_get
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_config_check_init
    - git_configset_get
    linkageType: ''
    returnType: int
    signature: int repo_config_get(struct repository *repo, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2333,1
    - Dst: git_configset_get_value
      Src: /src/git/config.c:2334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - repo
    - key
    - value
    argTypes:
    - struct repository*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2330
    functionDepth: 18
    functionLinenumber: 2330
    functionLinenumberEnd: 2335
    functionName: repo_config_get_value
    functionSourceFile: /src/git/config.c
    functionUses: 5
    functionsReached:
    - git_configset_get_value
    - git_config_check_init
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_value(struct repository *repo,\n\t\t\t  const
      char *key, const char **value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2340,1
    - Dst: git_configset_get_value_multi
      Src: /src/git/config.c:2341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - repo
    - key
    - dest
    argTypes:
    - struct repository*
    - char*
    - struct string_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2337
    functionDepth: 18
    functionLinenumber: 2337
    functionLinenumberEnd: 2342
    functionName: repo_config_get_value_multi
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_config_check_init
    - git_configset_get_value_multi
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_value_multi(struct repository *repo, const char
      *key,\n\t\t\t\tconst struct string_list **dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2347,1
    - Dst: git_configset_get_string_multi
      Src: /src/git/config.c:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - repo
    - key
    - dest
    argTypes:
    - struct repository*
    - char*
    - struct string_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2344
    functionDepth: 18
    functionLinenumber: 2344
    functionLinenumberEnd: 2349
    functionName: repo_config_get_string_multi
    functionSourceFile: /src/git/config.c
    functionUses: 2
    functionsReached:
    - git_configset_get_string_multi
    - git_config_check_init
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_string_multi(struct repository *repo, const char
      *key,\n\t\t\t\t const struct string_list **dest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2355,1
    - Dst: git_configset_get_string
      Src: /src/git/config.c:2356,1
    - Dst: git_die_config
      Src: /src/git/config.c:2358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - repo
    - key
    - dest
    argTypes:
    - struct repository*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2351
    functionDepth: 18
    functionLinenumber: 2351
    functionLinenumberEnd: 2360
    functionName: repo_config_get_string
    functionSourceFile: /src/git/config.c
    functionUses: 16
    functionsReached:
    - git_config_check_init
    - git_configset_get_string
    - git_die_config
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_string(struct repository *repo,\n\t\t\t   const
      char *key, char **dest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2366,1
    - Dst: git_configset_get_string_tmp
      Src: /src/git/config.c:2367,1
    - Dst: git_die_config
      Src: /src/git/config.c:2369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - repo
    - key
    - dest
    argTypes:
    - struct repository*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2362
    functionDepth: 18
    functionLinenumber: 2362
    functionLinenumberEnd: 2371
    functionName: repo_config_get_string_tmp
    functionSourceFile: /src/git/config.c
    functionUses: 12
    functionsReached:
    - git_configset_get_string_tmp
    - git_config_check_init
    - git_die_config
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_string_tmp(struct repository *repo,\n\t\t\t       const
      char *key, const char **dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2376,1
    - Dst: git_configset_get_int
      Src: /src/git/config.c:2377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - repo
    - key
    - dest
    argTypes:
    - struct repository*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2373
    functionDepth: 18
    functionLinenumber: 2373
    functionLinenumberEnd: 2378
    functionName: repo_config_get_int
    functionSourceFile: /src/git/config.c
    functionUses: 8
    functionsReached:
    - git_configset_get_int
    - git_config_check_init
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_int(struct repository *repo,\n\t\t\tconst char
      *key, int *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2383,1
    - Dst: git_configset_get_uint
      Src: /src/git/config.c:2384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - repo
    - key
    - dest
    argTypes:
    - struct repository*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2380
    functionDepth: 18
    functionLinenumber: 2380
    functionLinenumberEnd: 2385
    functionName: repo_config_get_uint
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_configset_get_uint
    - git_config_check_init
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_uint(struct repository *repo,\n\t\t\t const char
      *key, unsigned int *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2390,1
    - Dst: git_configset_get_ulong
      Src: /src/git/config.c:2391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - repo
    - key
    - dest
    argTypes:
    - struct repository*
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2387
    functionDepth: 18
    functionLinenumber: 2387
    functionLinenumberEnd: 2392
    functionName: repo_config_get_ulong
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - git_configset_get_ulong
    - git_config_check_init
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_ulong(struct repository *repo,\n\t\t\t  const
      char *key, unsigned long *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2397,1
    - Dst: git_configset_get_bool
      Src: /src/git/config.c:2398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - repo
    - key
    - dest
    argTypes:
    - struct repository*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2394
    functionDepth: 18
    functionLinenumber: 2394
    functionLinenumberEnd: 2399
    functionName: repo_config_get_bool
    functionSourceFile: /src/git/config.c
    functionUses: 16
    functionsReached:
    - git_configset_get_bool
    - git_config_check_init
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_bool(struct repository *repo,\n\t\t\t const char
      *key, int *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2404,1
    - Dst: git_configset_get_bool_or_int
      Src: /src/git/config.c:2405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - repo
    - key
    - is_bool
    - dest
    argTypes:
    - struct repository*
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2401
    functionDepth: 18
    functionLinenumber: 2401
    functionLinenumberEnd: 2406
    functionName: repo_config_get_bool_or_int
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_config_check_init
    - git_configset_get_bool_or_int
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_bool_or_int(struct repository *repo,\n\t\t\t\tconst
      char *key, int *is_bool, int *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2411,1
    - Dst: git_configset_get_maybe_bool
      Src: /src/git/config.c:2412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - repo
    - key
    - dest
    argTypes:
    - struct repository*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2408
    functionDepth: 18
    functionLinenumber: 2408
    functionLinenumberEnd: 2413
    functionName: repo_config_get_maybe_bool
    functionSourceFile: /src/git/config.c
    functionUses: 2
    functionsReached:
    - git_configset_get_maybe_bool
    - git_config_check_init
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_maybe_bool(struct repository *repo,\n\t\t\t       const
      char *key, int *dest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_config_check_init
      Src: /src/git/config.c:2419,1
    - Dst: git_configset_get_pathname
      Src: /src/git/config.c:2420,1
    - Dst: git_die_config
      Src: /src/git/config.c:2422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - repo
    - key
    - dest
    argTypes:
    - struct repository*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2415
    functionDepth: 18
    functionLinenumber: 2415
    functionLinenumberEnd: 2424
    functionName: repo_config_get_pathname
    functionSourceFile: /src/git/config.c
    functionUses: 2
    functionsReached:
    - git_config_check_init
    - git_die_config
    - git_configset_get_pathname
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_pathname(struct repository *repo,\n\t\t\t     const
      char *key, char **dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_init
      Src: /src/git/config.c:2436,1
    - Dst: config_with_options
      Src: /src/git/config.c:2437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2427
    functionDepth: 16
    functionLinenumber: 2427
    functionLinenumberEnd: 2439
    functionName: read_protected_config
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - git_configset_init
    - config_with_options
    linkageType: ''
    returnType: void
    signature: void read_protected_config(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_protected_config
      Src: /src/git/config.c:2444,1
    - Dst: configset_iter
      Src: /src/git/config.c:2445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fn
    - data
    argTypes:
    - config_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2441
    functionDepth: 17
    functionLinenumber: 2441
    functionLinenumberEnd: 2446
    functionName: git_protected_config
    functionSourceFile: /src/git/config.c
    functionUses: 4
    functionsReached:
    - read_protected_config
    - configset_iter
    linkageType: ''
    returnType: void
    signature: void git_protected_config(config_fn_t fn, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string
      Src: /src/git/config.c:2450,1
    - Dst: strcmp
      Src: /src/git/config.c:2454,1
    - Dst: approxidate
      Src: /src/git/config.c:2455,1
    - Dst: approxidate
      Src: /src/git/config.c:2456,1
    - Dst: git_die_config
      Src: /src/git/config.c:2457,1
    - Dst: _
      Src: /src/git/config.c:2457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - r
    - key
    - output
    argTypes:
    - struct repository*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2448
    functionDepth: 19
    functionLinenumber: 2448
    functionLinenumberEnd: 2460
    functionName: repo_config_get_expiry
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - approxidate
    - git_die_config
    - repo_config_get_string
    - strcmp
    - _
    linkageType: ''
    returnType: int
    signature: int repo_config_get_expiry(struct repository *r, const char *key, char
      **output)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_tmp
      Src: /src/git/config.c:2469,1
    - Dst: git_parse_int
      Src: /src/git/config.c:2472,1
    - Dst: parse_expiry_date
      Src: /src/git/config.c:2478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - r
    - key
    - expiry
    - now
    argTypes:
    - struct repository*
    - char*
    - timestamp_t*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2462
    functionDepth: 19
    functionLinenumber: 2462
    functionLinenumberEnd: 2483
    functionName: repo_config_get_expiry_in_days
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - git_parse_int
    - repo_config_get_string_tmp
    - parse_expiry_date
    linkageType: ''
    returnType: int
    signature: "int repo_config_get_expiry_in_days(struct repository *r, const char
      *key,\n\t\t\t\t   timestamp_t *expiry, timestamp_t now)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_maybe_bool
      Src: /src/git/config.c:2489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2485
    functionDepth: 19
    functionLinenumber: 2485
    functionLinenumberEnd: 2493
    functionName: repo_config_get_split_index
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - repo_config_get_maybe_bool
    linkageType: ''
    returnType: int
    signature: int repo_config_get_split_index(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/config.c:2499,1
    - Dst: error
      Src: /src/git/config.c:2503,1
    - Dst: _
      Src: /src/git/config.c:2503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2495
    functionDepth: 19
    functionLinenumber: 2495
    functionLinenumberEnd: 2508
    functionName: repo_config_get_max_percent_split_change
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - repo_config_get_int
    - error
    - _
    linkageType: ''
    returnType: int
    signature: int repo_config_get_max_percent_split_change(struct repository *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_env_ulong
      Src: /src/git/config.c:2514,1
    - Dst: repo_config_get_bool_or_int
      Src: /src/git/config.c:2520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - r
    - dest
    argTypes:
    - struct repository*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2510
    functionDepth: 19
    functionLinenumber: 2510
    functionLinenumberEnd: 2529
    functionName: repo_config_get_index_threads
    functionSourceFile: /src/git/config.c
    functionUses: 4
    functionsReached:
    - repo_config_get_bool_or_int
    - git_env_ulong
    linkageType: ''
    returnType: int
    signature: int repo_config_get_index_threads(struct repository *r, int *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/config.c:2535,1
    - Dst: _
      Src: /src/git/config.c:2535,1
    - Dst: die
      Src: /src/git/config.c:2537,1
    - Dst: _
      Src: /src/git/config.c:2537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - key
    - filename
    - linenr
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2539
      start: 2531
    functionDepth: 0
    functionLinenumber: 2531
    functionLinenumberEnd: 2539
    functionName: git_die_config_linenr
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN git_die_config_linenr(const char *key, const char *filename,
      int linenr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_error_routine
      Src: /src/git/config.c:2545,1
    - Dst: va_start
      Src: /src/git/config.c:2549,1
    - Dst: error_fn
      Src: /src/git/config.c:2550,1
    - Dst: va_end
      Src: /src/git/config.c:2551,1
    - Dst: repo_config_get_value_multi
      Src: /src/git/config.c:2553,1
    - Dst: BUG
      Src: /src/git/config.c:2554,1
    - Dst: git_die_config_linenr
      Src: /src/git/config.c:2556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - r
    - key
    - err
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2557
      start: 2541
    functionDepth: 19
    functionLinenumber: 2541
    functionLinenumberEnd: 2557
    functionName: git_die_config
    functionSourceFile: /src/git/config.c
    functionUses: 4
    functionsReached:
    - git_die_config_linenr
    - repo_config_get_value_multi
    - error_fn
    - get_error_routine
    - va_end
    - va_start
    - BUG
    linkageType: ''
    returnType: void
    signature: void git_die_config(struct repository *r, const char *key, const char
      *err, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/config.c:2582,1
    - Dst: regfree
      Src: /src/git/config.c:2585,1
    - Dst: free
      Src: /src/git/config.c:2586,1
    - Dst: free
      Src: /src/git/config.c:2588,1
    - Dst: free
      Src: /src/git/config.c:2589,1
    - Dst: memset
      Src: /src/git/config.c:2590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct config_store_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2591
      start: 2580
    functionDepth: 1
    functionLinenumber: 2580
    functionLinenumberEnd: 2591
    functionName: config_store_data_clear
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - regfree
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void config_store_data_clear(struct config_store_data *store)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/config.c:2596,1
    - Dst: strcmp
      Src: /src/git/config.c:2599,1
    - Dst: regexec
      Src: /src/git/config.c:2606,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - key
    - value
    - store
    argTypes:
    - char*
    - char*
    - struct config_store_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2593
    functionDepth: 0
    functionLinenumber: 2593
    functionLinenumberEnd: 2607
    functionName: matches
    functionSourceFile: /src/git/config.c
    functionUses: 3
    functionsReached:
    - regexec
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int matches(const char *key, const char *value,\n\t\t   const struct
      config_store_data *store)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/config.c:2614,1
    - Dst: error
      Src: /src/git/config.c:2623,1
    - Dst: _
      Src: /src/git/config.c:2623,1
    - Dst: cmpfn
      Src: /src/git/config.c:2634,1
    - Dst: ALLOC_GROW
      Src: /src/git/config.c:2637,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - type
    - begin
    - end
    - cs
    - data
    argTypes:
    - enum config_event_t
    - size_t
    - size_t
    - struct config_source*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2609
    functionDepth: 1
    functionLinenumber: 2609
    functionLinenumberEnd: 2646
    functionName: store_aux_event
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - error
    - cmpfn
    - ALLOC_GROW
    - _
    linkageType: ''
    returnType: int
    signature: "int store_aux_event(enum config_event_t type, size_t begin, size_t
      end,\n\t\t\t   struct config_source *cs, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/git/config.c:2654,1
    - Dst: warning
      Src: /src/git/config.c:2656,1
    - Dst: _
      Src: /src/git/config.c:2656,1
    - Dst: ALLOC_GROW
      Src: /src/git/config.c:2659,1
    - Dst: ALLOC_GROW
      Src: /src/git/config.c:2670,1
    - Dst: matches
      Src: /src/git/config.c:2674,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2648
    functionDepth: 1
    functionLinenumber: 2648
    functionLinenumberEnd: 2681
    functionName: store_aux
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - warning
    - matches
    - ALLOC_GROW
    - _
    linkageType: ''
    returnType: int
    signature: "int store_aux(const char *key, const char *value,\n\t\t     const
      struct config_context *ctx UNUSED, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/config.c:2685,1
    - Dst: _
      Src: /src/git/config.c:2685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2683
    functionDepth: 0
    functionLinenumber: 2683
    functionLinenumberEnd: 2689
    functionName: write_error
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - error
    - _
    linkageType: ''
    returnType: int
    signature: int write_error(const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/config.c:2698,1
    - Dst: strbuf_addf
      Src: /src/git/config.c:2700,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:2703,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:2704,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2706,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:2708,1
    - Dst: strbuf_add
      Src: /src/git/config.c:2709,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - key
    - store
    argTypes:
    - char*
    - struct config_store_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2691
    functionDepth: 4
    functionLinenumber: 2691
    functionLinenumberEnd: 2714
    functionName: store_create_section
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - memchr
    - strbuf_addf
    - strbuf_addch
    - strbuf_addstr
    - strbuf_add
    linkageType: ''
    returnType: struct strbuf
    signature: "struct strbuf store_create_section(const char *key,\n\t\t\t\t\t  const
      struct config_store_data *store)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_create_section
      Src: /src/git/config.c:2719,1
    - Dst: write_in_full
      Src: /src/git/config.c:2722,1
    - Dst: strbuf_release
      Src: /src/git/config.c:2723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - key
    - store
    argTypes:
    - int
    - char*
    - struct config_store_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2716
    functionDepth: 5
    functionLinenumber: 2716
    functionLinenumberEnd: 2726
    functionName: write_section
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - write_in_full
    - store_create_section
    - strbuf_release
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t write_section(int fd, const char *key,\n\t\t\t     const struct
      config_store_data *store)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/config.c:2752,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2757,1
    - Dst: strbuf_addstr
      Src: /src/git/config.c:2760,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:2764,1
    - Dst: strbuf_addch
      Src: /src/git/config.c:2767,1
    - Dst: strbuf_addf
      Src: /src/git/config.c:2772,1
    - Dst: strbuf_addf
      Src: /src/git/config.c:2774,1
    - Dst: write_in_full
      Src: /src/git/config.c:2776,1
    - Dst: strbuf_release
      Src: /src/git/config.c:2777,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 5
    argNames:
    - fd
    - key
    - value
    - comment
    - store
    argTypes:
    - int
    - char*
    - char*
    - char*
    - struct config_store_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2728
    functionDepth: 4
    functionLinenumber: 2728
    functionLinenumberEnd: 2780
    functionName: write_pair
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - strbuf_addch
    - strbuf_addstr
    - write_in_full
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t write_pair(int fd, const char *key, const char *value,\n\t\t\t
      \ const char *comment,\n\t\t\t  const struct config_store_data *store)"
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 4
    argNames:
    - store
    - begin_offset
    - end_offset
    - seen_ptr
    argTypes:
    - struct config_store_data*
    - size_t*
    - size_t*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2791
    functionDepth: 0
    functionLinenumber: 2791
    functionLinenumberEnd: 2861
    functionName: maybe_remove_section
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void maybe_remove_section(struct config_store_data *store,\n\t\t\t\t
      size_t *begin_offset, size_t *end_offset,\n\t\t\t\t unsigned *seen_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/config.c:2866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - r
    - config_filename
    - key
    - comment
    - value
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2863
    functionDepth: 1
    functionLinenumber: 2863
    functionLinenumberEnd: 2867
    functionName: repo_config_set_in_file_gently
    functionSourceFile: /src/git/config.c
    functionUses: 2
    functionsReached:
    - repo_config_set_multivar_in_file_gently
    linkageType: ''
    returnType: int
    signature: "int repo_config_set_in_file_gently(struct repository *r, const char
      *config_filename,\n\t\t\t\t   const char *key, const char *comment, const char
      *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set_multivar_in_file
      Src: /src/git/config.c:2872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - config_filename
    - key
    - value
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2873
      start: 2869
    functionDepth: 1
    functionLinenumber: 2869
    functionLinenumberEnd: 2873
    functionName: repo_config_set_in_file
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - repo_config_set_multivar_in_file
    linkageType: ''
    returnType: void
    signature: "void repo_config_set_in_file(struct repository *r, const char *config_filename,\n\t\t\t
      \    const char *key, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set_multivar_gently
      Src: /src/git/config.c:2877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - key
    - value
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2875
    functionDepth: 1
    functionLinenumber: 2875
    functionLinenumberEnd: 2878
    functionName: repo_config_set_gently
    functionSourceFile: /src/git/config.c
    functionUses: 4
    functionsReached:
    - repo_config_set_multivar_gently
    linkageType: ''
    returnType: int
    signature: int repo_config_set_gently(struct repository *r, const char *key, const
      char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/config.c:2885,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/config.c:2886,1
    - Dst: free
      Src: /src/git/config.c:2888,1
    - Dst: repo_config_set_multivar_gently
      Src: /src/git/config.c:2891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - r
    - key
    - value
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2892
      start: 2880
    functionDepth: 8
    functionLinenumber: 2880
    functionLinenumberEnd: 2892
    functionName: repo_config_set_worktree_gently
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - repo_config_set_multivar_gently
    - repo_git_path
    - repo_config_set_multivar_in_file_gently
    - free
    linkageType: ''
    returnType: int
    signature: "int repo_config_set_worktree_gently(struct repository *r,\n\t\t\t\t
      \   const char *key, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set_multivar
      Src: /src/git/config.c:2896,1
    - Dst: trace2_cmd_set_config
      Src: /src/git/config.c:2898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - key
    - value
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2894
    functionDepth: 1
    functionLinenumber: 2894
    functionLinenumberEnd: 2899
    functionName: repo_config_set
    functionSourceFile: /src/git/config.c
    functionUses: 5
    functionsReached:
    - trace2_cmd_set_config
    - repo_config_set_multivar
    linkageType: ''
    returnType: void
    signature: void repo_config_set(struct repository *r, const char *key, const char
      *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/config.c:2909,1
    - Dst: die
      Src: /src/git/config.c:2910,1
    - Dst: _
      Src: /src/git/config.c:2910,1
    - Dst: strspn
      Src: /src/git/config.c:2923,1
    - Dst: xstrdup
      Src: /src/git/config.c:2925,1
    - Dst: xstrfmt
      Src: /src/git/config.c:2927,1
    - Dst: xstrfmt
      Src: /src/git/config.c:2929,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - comment
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2932
      start: 2901
    functionDepth: 5
    functionLinenumber: 2901
    functionLinenumberEnd: 2932
    functionName: git_config_prepare_comment_string
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - die
    - xstrfmt
    - strchr
    - strspn
    - _
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *git_config_prepare_comment_string(const char *comment)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/config.c:2944,1
    - Dst: BUG
      Src: /src/git/config.c:2945,1
    - Dst: strspn
      Src: /src/git/config.c:2947,1
    - Dst: BUG
      Src: /src/git/config.c:2949,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - comment
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2934
    functionDepth: 1
    functionLinenumber: 2934
    functionLinenumberEnd: 2951
    functionName: validate_comment_string
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strspn
    - BUG
    - strchr
    linkageType: ''
    returnType: void
    signature: void validate_comment_string(const char *comment)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: validate_comment_string
      Src: /src/git/config.c:3001,1
    - Dst: git_config_parse_key
      Src: /src/git/config.c:3004,1
    - Dst: repo_git_path
      Src: /src/git/config.c:3011,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/config.c:3017,1
    - Dst: error_errno
      Src: /src/git/config.c:3019,1
    - Dst: _
      Src: /src/git/config.c:3019,1
    - Dst: open
      Src: /src/git/config.c:3027,1
    - Dst: error_errno
      Src: /src/git/config.c:3030,1
    - Dst: _
      Src: /src/git/config.c:3030,1
    - Dst: free
      Src: /src/git/config.c:3040,1
    - Dst: xstrdup
      Src: /src/git/config.c:3041,1
    - Dst: write_section
      Src: /src/git/config.c:3042,1
    - Dst: write_pair
      Src: /src/git/config.c:3043,1
    - Dst: xmalloc
      Src: /src/git/config.c:3065,1
    - Dst: regcomp
      Src: /src/git/config.c:3066,1
    - Dst: error
      Src: /src/git/config.c:3068,1
    - Dst: _
      Src: /src/git/config.c:3068,1
    - Dst: FREE_AND_NULL
      Src: /src/git/config.c:3069,1
    - Dst: ALLOC_GROW
      Src: /src/git/config.c:3075,1
    - Dst: memset
      Src: /src/git/config.c:3078,1
    - Dst: git_config_from_file_with_options
      Src: /src/git/config.c:3090,1
    - Dst: error
      Src: /src/git/config.c:3094,1
    - Dst: _
      Src: /src/git/config.c:3094,1
    - Dst: fstat
      Src: /src/git/config.c:3106,1
    - Dst: error_errno
      Src: /src/git/config.c:3107,1
    - Dst: _
      Src: /src/git/config.c:3107,1
    - Dst: xsize_t
      Src: /src/git/config.c:3112,1
    - Dst: xmmap_gently
      Src: /src/git/config.c:3113,1
    - Dst: S_ISDIR
      Src: /src/git/config.c:3116,1
    - Dst: error_errno
      Src: /src/git/config.c:3118,1
    - Dst: _
      Src: /src/git/config.c:3118,1
    - Dst: mmap_os_err
      Src: /src/git/config.c:3119,1
    - Dst: close
      Src: /src/git/config.c:3124,1
    - Dst: chmod
      Src: /src/git/config.c:3127,1
    - Dst: get_lock_file_path
      Src: /src/git/config.c:3127,1
    - Dst: error_errno
      Src: /src/git/config.c:3128,1
    - Dst: _
      Src: /src/git/config.c:3128,1
    - Dst: get_lock_file_path
      Src: /src/git/config.c:3128,1
    - Dst: ALLOC_GROW
      Src: /src/git/config.c:3136,1
    - Dst: maybe_remove_section
      Src: /src/git/config.c:3160,1
    - Dst: isspace
      Src: /src/git/config.c:3170,1
    - Dst: write_in_full
      Src: /src/git/config.c:3182,1
    - Dst: write_str_in_full
      Src: /src/git/config.c:3186,1
    - Dst: write_section
      Src: /src/git/config.c:3195,1
    - Dst: write_pair
      Src: /src/git/config.c:3198,1
    - Dst: write_in_full
      Src: /src/git/config.c:3204,1
    - Dst: munmap
      Src: /src/git/config.c:3208,1
    - Dst: commit_lock_file
      Src: /src/git/config.c:3212,1
    - Dst: error_errno
      Src: /src/git/config.c:3213,1
    - Dst: _
      Src: /src/git/config.c:3213,1
    - Dst: repo_config_clear
      Src: /src/git/config.c:3221,1
    - Dst: rollback_lock_file
      Src: /src/git/config.c:3224,1
    - Dst: free
      Src: /src/git/config.c:3225,1
    - Dst: munmap
      Src: /src/git/config.c:3227,1
    - Dst: close
      Src: /src/git/config.c:3229,1
    - Dst: config_store_data_clear
      Src: /src/git/config.c:3230,1
    - Dst: write_error
      Src: /src/git/config.c:3235,1
    - Dst: get_lock_file_path
      Src: /src/git/config.c:3235,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 175
    argCount: 7
    argNames:
    - r
    - config_filename
    - key
    - value
    - value_pattern
    - comment
    - flags
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3237
      start: 2978
    functionDepth: 10
    functionLinenumber: 2978
    functionLinenumberEnd: 3237
    functionName: repo_config_set_multivar_in_file_gently
    functionSourceFile: /src/git/config.c
    functionUses: 4
    functionsReached:
    - error_errno
    - repo_git_path
    - hold_lock_file_for_update
    - git_config_from_file_with_options
    - repo_config_clear
    - validate_comment_string
    - maybe_remove_section
    - xsize_t
    - xmalloc
    - free
    - write_error
    - error
    - isspace
    - commit_lock_file
    - write_str_in_full
    - write_section
    - rollback_lock_file
    - regcomp
    - write_in_full
    - munmap
    - mmap_os_err
    - memset
    - xmmap_gently
    - git_config_parse_key
    - _
    - FREE_AND_NULL
    - get_lock_file_path
    - config_store_data_clear
    - xstrdup
    - S_ISDIR
    - open
    - chmod
    - fstat
    - write_pair
    - ALLOC_GROW
    - close
    linkageType: ''
    returnType: int
    signature: "int repo_config_set_multivar_in_file_gently(struct repository *r,\n\t\t\t\t\t
      \   const char *config_filename,\n\t\t\t\t\t    const char *key, const char
      *value,\n\t\t\t\t\t    const char *value_pattern,\n\t\t\t\t\t    const char
      *comment,\n\t\t\t\t\t    unsigned flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/config.c:3244,1
    - Dst: die
      Src: /src/git/config.c:3248,1
    - Dst: _
      Src: /src/git/config.c:3248,1
    - Dst: die
      Src: /src/git/config.c:3250,1
    - Dst: _
      Src: /src/git/config.c:3250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - r
    - config_filename
    - key
    - value
    - value_pattern
    - flags
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3251
      start: 3239
    functionDepth: 11
    functionLinenumber: 3239
    functionLinenumberEnd: 3251
    functionName: repo_config_set_multivar_in_file
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - die
    - repo_config_set_multivar_in_file_gently
    - _
    linkageType: ''
    returnType: void
    signature: "void repo_config_set_multivar_in_file(struct repository *r,\n\t\t\t\t
      \     const char *config_filename,\n\t\t\t\t      const char *key, const char
      *value,\n\t\t\t\t      const char *value_pattern, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/config.c:3257,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/config.c:3258,1
    - Dst: free
      Src: /src/git/config.c:3262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - r
    - key
    - value
    - value_pattern
    - flags
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3264
      start: 3253
    functionDepth: 11
    functionLinenumber: 3253
    functionLinenumberEnd: 3264
    functionName: repo_config_set_multivar_gently
    functionSourceFile: /src/git/config.c
    functionUses: 3
    functionsReached:
    - repo_git_path
    - repo_config_set_multivar_in_file_gently
    - free
    linkageType: ''
    returnType: int
    signature: "int repo_config_set_multivar_gently(struct repository *r, const char
      *key,\n\t\t\t\t    const char *value,\n\t\t\t\t    const char *value_pattern,
      unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/config.c:3270,1
    - Dst: repo_config_set_multivar_in_file
      Src: /src/git/config.c:3271,1
    - Dst: free
      Src: /src/git/config.c:3273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - r
    - key
    - value
    - value_pattern
    - flags
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3274
      start: 3266
    functionDepth: 12
    functionLinenumber: 3266
    functionLinenumberEnd: 3274
    functionName: repo_config_set_multivar
    functionSourceFile: /src/git/config.c
    functionUses: 1
    functionsReached:
    - repo_config_set_multivar_in_file
    - repo_git_path
    - free
    linkageType: ''
    returnType: void
    signature: "void repo_config_set_multivar(struct repository *r,\n\t\t\t      const
      char *key, const char *value,\n\t\t\t      const char *value_pattern, unsigned
      flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/config.c:3283,1
    - Dst: isspace
      Src: /src/git/config.c:3287,1
    - Dst: isspace
      Src: /src/git/config.c:3296,1
    - Dst: isspace
      Src: /src/git/config.c:3309,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 31
    argCount: 2
    argNames:
    - buf
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3314
      start: 3276
    functionDepth: 1
    functionLinenumber: 3276
    functionLinenumberEnd: 3314
    functionName: section_name_match
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: size_t
    signature: size_t section_name_match (const char *buf, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/git/config.c:3327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3330
      start: 3316
    functionDepth: 1
    functionLinenumber: 3316
    functionLinenumberEnd: 3330
    functionName: section_name_is_ok
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: int
    signature: int section_name_is_ok(const char *name)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/config.c:3352,1
    - Dst: section_name_is_ok
      Src: /src/git/config.c:3354,1
    - Dst: error
      Src: /src/git/config.c:3355,1
    - Dst: _
      Src: /src/git/config.c:3355,1
    - Dst: repo_git_path
      Src: /src/git/config.c:3360,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/config.c:3362,1
    - Dst: error
      Src: /src/git/config.c:3364,1
    - Dst: _
      Src: /src/git/config.c:3364,1
    - Dst: fopen
      Src: /src/git/config.c:3368,1
    - Dst: warn_on_fopen_errors
      Src: /src/git/config.c:3369,1
    - Dst: fstat
      Src: /src/git/config.c:3376,1
    - Dst: fileno
      Src: /src/git/config.c:3376,1
    - Dst: error_errno
      Src: /src/git/config.c:3377,1
    - Dst: _
      Src: /src/git/config.c:3377,1
    - Dst: chmod
      Src: /src/git/config.c:3381,1
    - Dst: get_lock_file_path
      Src: /src/git/config.c:3381,1
    - Dst: error_errno
      Src: /src/git/config.c:3382,1
    - Dst: _
      Src: /src/git/config.c:3382,1
    - Dst: get_lock_file_path
      Src: /src/git/config.c:3383,1
    - Dst: strbuf_getwholeline
      Src: /src/git/config.c:3387,1
    - Dst: error
      Src: /src/git/config.c:3395,1
    - Dst: _
      Src: /src/git/config.c:3395,1
    - Dst: isspace
      Src: /src/git/config.c:3401,1
    - Dst: write_in_full
      Src: /src/git/config.c:3415,1
    - Dst: write_error
      Src: /src/git/config.c:3416,1
    - Dst: get_lock_file_path
      Src: /src/git/config.c:3416,1
    - Dst: strbuf_reset
      Src: /src/git/config.c:3419,1
    - Dst: section_name_match
      Src: /src/git/config.c:3422,1
    - Dst: strlen
      Src: /src/git/config.c:3429,1
    - Dst: write_section
      Src: /src/git/config.c:3431,1
    - Dst: write_error
      Src: /src/git/config.c:3432,1
    - Dst: get_lock_file_path
      Src: /src/git/config.c:3432,1
    - Dst: strlen
      Src: /src/git/config.c:3441,1
    - Dst: strbuf_release
      Src: /src/git/config.c:3452,1
    - Dst: store_create_section
      Src: /src/git/config.c:3453,1
    - Dst: strlen
      Src: /src/git/config.c:3460,1
    - Dst: strbuf_add
      Src: /src/git/config.c:3463,1
    - Dst: write_in_full
      Src: /src/git/config.c:3466,1
    - Dst: write_error
      Src: /src/git/config.c:3467,1
    - Dst: get_lock_file_path
      Src: /src/git/config.c:3467,1
    - Dst: write_in_full
      Src: /src/git/config.c:3478,1
    - Dst: write_error
      Src: /src/git/config.c:3479,1
    - Dst: get_lock_file_path
      Src: /src/git/config.c:3479,1
    - Dst: strbuf_reset
      Src: /src/git/config.c:3482,1
    - Dst: fclose
      Src: /src/git/config.c:3485,1
    - Dst: commit_lock_file
      Src: /src/git/config.c:3488,1
    - Dst: error_errno
      Src: /src/git/config.c:3489,1
    - Dst: _
      Src: /src/git/config.c:3489,1
    - Dst: fclose
      Src: /src/git/config.c:3493,1
    - Dst: rollback_lock_file
      Src: /src/git/config.c:3494,1
    - Dst: free
      Src: /src/git/config.c:3496,1
    - Dst: config_store_data_clear
      Src: /src/git/config.c:3497,1
    - Dst: strbuf_release
      Src: /src/git/config.c:3498,1
    - Dst: strbuf_release
      Src: /src/git/config.c:3499,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 116
    argCount: 5
    argNames:
    - r
    - config_filename
    - old_name
    - new_name
    - copy
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3335
    functionDepth: 8
    functionLinenumber: 3335
    functionLinenumberEnd: 3501
    functionName: repo_config_copy_or_rename_section_in_file
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - repo_git_path
    - hold_lock_file_for_update
    - store_create_section
    - section_name_is_ok
    - free
    - write_error
    - error
    - isspace
    - strbuf_release
    - commit_lock_file
    - fopen
    - write_section
    - rollback_lock_file
    - write_in_full
    - memset
    - fileno
    - _
    - get_lock_file_path
    - strbuf_add
    - section_name_match
    - strbuf_getwholeline
    - config_store_data_clear
    - chmod
    - strbuf_reset
    - fstat
    - strlen
    - warn_on_fopen_errors
    linkageType: ''
    returnType: int
    signature: "int repo_config_copy_or_rename_section_in_file(\n\tstruct repository
      *r,\n\tconst char *config_filename,\n\tconst char *old_name,\n\tconst char *new_name,
      int copy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_copy_or_rename_section_in_file
      Src: /src/git/config.c:3506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - config_filename
    - old_name
    - new_name
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3508
      start: 3503
    functionDepth: 9
    functionLinenumber: 3503
    functionLinenumberEnd: 3508
    functionName: repo_config_rename_section_in_file
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - repo_config_copy_or_rename_section_in_file
    linkageType: ''
    returnType: int
    signature: "int repo_config_rename_section_in_file(struct repository *r, const
      char *config_filename,\n\t\t\t\t       const char *old_name, const char *new_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_rename_section_in_file
      Src: /src/git/config.c:3512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - old_name
    - new_name
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3510
    functionDepth: 10
    functionLinenumber: 3510
    functionLinenumberEnd: 3513
    functionName: repo_config_rename_section
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - repo_config_rename_section_in_file
    linkageType: ''
    returnType: int
    signature: int repo_config_rename_section(struct repository *r, const char *old_name,
      const char *new_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_copy_or_rename_section_in_file
      Src: /src/git/config.c:3518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - config_filename
    - old_name
    - new_name
    argTypes:
    - struct repository*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3520
      start: 3515
    functionDepth: 9
    functionLinenumber: 3515
    functionLinenumberEnd: 3520
    functionName: repo_config_copy_section_in_file
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - repo_config_copy_or_rename_section_in_file
    linkageType: ''
    returnType: int
    signature: "int repo_config_copy_section_in_file(struct repository *r, const char
      *config_filename,\n\t\t\t\t     const char *old_name, const char *new_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_copy_section_in_file
      Src: /src/git/config.c:3524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - old_name
    - new_name
    argTypes:
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3525
      start: 3522
    functionDepth: 10
    functionLinenumber: 3522
    functionLinenumberEnd: 3525
    functionName: repo_config_copy_section
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - repo_config_copy_section_in_file
    linkageType: ''
    returnType: int
    signature: int repo_config_copy_section(struct repository *r, const char *old_name,
      const char *new_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/config.c:3534,1
    - Dst: _
      Src: /src/git/config.c:3534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - var
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3535
      start: 3532
    functionDepth: 0
    functionLinenumber: 3532
    functionLinenumberEnd: 3535
    functionName: config_error_nonbool
    functionSourceFile: /src/git/config.c
    functionUses: 38
    functionsReached:
    - error
    - _
    linkageType: ''
    returnType: int
    signature: int config_error_nonbool(const char *var)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/config.c:3545,1
    - Dst: strrchr
      Src: /src/git/config.c:3553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - var
    - section
    - subsection
    - subsection_len
    - key
    argTypes:
    - char*
    - char*
    - char**
    - size_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3571
      start: 3537
    functionDepth: 1
    functionLinenumber: 3537
    functionLinenumberEnd: 3571
    functionName: parse_config_key
    functionSourceFile: /src/git/config.c
    functionUses: 14
    functionsReached:
    - skip_prefix
    - strrchr
    linkageType: ''
    returnType: int
    signature: "int parse_config_key(const char *var,\n\t\t     const char *section,\n\t\t
      \    const char **subsection, size_t *subsection_len,\n\t\t     const char **key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/config.c:3587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum config_origin_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3589
      start: 3573
    functionDepth: 1
    functionLinenumber: 3573
    functionLinenumberEnd: 3589
    functionName: config_origin_type_name
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *config_origin_type_name(enum config_origin_type type)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - scope
    argTypes:
    - enum config_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3609
      start: 3591
    functionDepth: 0
    functionLinenumber: 3591
    functionLinenumberEnd: 3609
    functionName: config_scope_name
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *config_scope_name(enum config_scope scope)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/config.c:3618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - mapping
    - nr_mapping
    - var
    argTypes:
    - char**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3622
      start: 3611
    functionDepth: 1
    functionLinenumber: 3611
    functionLinenumberEnd: 3622
    functionName: lookup_config
    functionSourceFile: /src/git/config.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int lookup_config(const char **mapping, int nr_mapping, const char
      *var)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/commit-graph.c:34,1
    - Dst: git_env_bool
      Src: /src/git/commit-graph.c:37,1
    - Dst: write_commit_graph_reachable
      Src: /src/git/commit-graph.c:40,1
    - Dst: die
      Src: /src/git/commit-graph.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: git_test_write_commit_graph_or_die
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - write_commit_graph_reachable
    - die
    - git_env_bool
    linkageType: ''
    returnType: void
    signature: void git_test_write_commit_graph_or_die(struct odb_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algop
    argTypes:
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: graph_data_width
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t graph_data_width(const struct git_hash_algo *algop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algop
    argTypes:
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: graph_min_size
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t graph_min_size(const struct git_hash_algo *algop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit
      Src: /src/git/commit-graph.c:91,1
    - Dst: commit_pos_at
      Src: /src/git/commit-graph.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: set_commit_pos
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - lookup_commit
    - commit_pos_at
    linkageType: ''
    returnType: void
    signature: void set_commit_pos(struct repository *r, const struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_pos_at
      Src: /src/git/commit-graph.c:103,1
    - Dst: commit_pos_at
      Src: /src/git/commit-graph.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: commit_pos_cmp
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - commit_pos_at
    linkageType: ''
    returnType: int
    signature: int commit_pos_cmp(const void *va, const void *vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/commit-graph.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 19
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: get_configured_generation_version
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    linkageType: ''
    returnType: int
    signature: int get_configured_generation_version(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_data_slab_peek
      Src: /src/git/commit-graph.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: commit_graph_position
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - commit_graph_data_slab_peek
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t commit_graph_position(const struct commit *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_data_slab_peek
      Src: /src/git/commit-graph.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: commit_graph_generation
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 7
    functionsReached:
    - commit_graph_data_slab_peek
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t commit_graph_generation(const struct commit *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_data_slab_peek
      Src: /src/git/commit-graph.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: commit_graph_generation_from_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - commit_graph_data_slab_peek
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t commit_graph_generation_from_graph(const struct commit
      *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_data_slab_peek
      Src: /src/git/commit-graph.c:151,1
    - Dst: commit_graph_data_slab_at
      Src: /src/git/commit-graph.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 172
    functionName: commit_graph_data_at
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - commit_graph_data_slab_peek
    - commit_graph_data_slab_at
    linkageType: ''
    returnType: struct commit_graph_data
    signature: struct commit_graph_data *commit_graph_data_at(const struct commit
      *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_data_at
      Src: /src/git/commit-graph.c:183,1
    - Dst: commit_graph_data_at
      Src: /src/git/commit-graph.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: commit_gen_cmp
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - commit_graph_data_at
    linkageType: ''
    returnType: int
    signature: int commit_gen_cmp(const void *va, const void *vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/commit-graph.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: get_commit_graph_filename
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    linkageType: ''
    returnType: char
    signature: char *get_commit_graph_filename(struct odb_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/commit-graph.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - oid_hex
    argTypes:
    - struct odb_source*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: get_split_graph_filename
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    linkageType: ''
    returnType: char
    signature: "char *get_split_graph_filename(struct odb_source *source,\n\t\t\t\t
      \     const char *oid_hex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/commit-graph.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: get_commit_graph_chain_filename
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    linkageType: ''
    returnType: char
    signature: char *get_commit_graph_chain_filename(struct odb_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/commit-graph.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 7
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: alloc_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct commit_graph
    signature: struct commit_graph *alloc_commit_graph(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: replace_refs_enabled
      Src: /src/git/commit-graph.c:228,1
    - Dst: prepare_replace_object
      Src: /src/git/commit-graph.c:229,1
    - Dst: oidmap_get_size
      Src: /src/git/commit-graph.c:230,1
    - Dst: prepare_commit_graft
      Src: /src/git/commit-graph.c:234,1
    - Dst: is_repository_shallow
      Src: /src/git/commit-graph.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 223
    functionDepth: 5
    functionLinenumber: 223
    functionLinenumberEnd: 242
    functionName: commit_graph_compatible
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oidmap_get_size
    - replace_refs_enabled
    - is_repository_shallow
    - prepare_commit_graft
    - prepare_replace_object
    linkageType: ''
    returnType: int
    signature: int commit_graph_compatible(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_open
      Src: /src/git/commit-graph.c:246,1
    - Dst: fstat
      Src: /src/git/commit-graph.c:249,1
    - Dst: close
      Src: /src/git/commit-graph.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - graph_file
    - fd
    - st
    argTypes:
    - char*
    - int*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: open_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - close
    - fstat
    - git_open
    linkageType: ''
    returnType: int
    signature: int open_commit_graph(const char *graph_file, int *fd, struct stat
      *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsize_t
      Src: /src/git/commit-graph.c:263,1
    - Dst: graph_min_size
      Src: /src/git/commit-graph.c:265,1
    - Dst: close
      Src: /src/git/commit-graph.c:266,1
    - Dst: error
      Src: /src/git/commit-graph.c:267,1
    - Dst: _
      Src: /src/git/commit-graph.c:267,1
    - Dst: xmmap
      Src: /src/git/commit-graph.c:270,1
    - Dst: close
      Src: /src/git/commit-graph.c:271,1
    - Dst: parse_commit_graph
      Src: /src/git/commit-graph.c:273,1
    - Dst: munmap
      Src: /src/git/commit-graph.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - source
    - fd
    - st
    argTypes:
    - struct odb_source*
    - int
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 256
    functionDepth: 8
    functionLinenumber: 256
    functionLinenumberEnd: 280
    functionName: load_commit_graph_one_fd_st
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - error
    - xmmap
    - xsize_t
    - parse_commit_graph
    - _
    - close
    - graph_min_size
    - munmap
    linkageType: ''
    returnType: struct commit_graph
    signature: "struct commit_graph *load_commit_graph_one_fd_st(struct odb_source
      *source,\n\t\t\t\t\t\t int fd, struct stat *st)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/commit-graph.c:289,1
    - Dst: _
      Src: /src/git/commit-graph.c:289,1
    - Dst: ntohl
      Src: /src/git/commit-graph.c:291,1
    - Dst: ntohl
      Src: /src/git/commit-graph.c:294,1
    - Dst: ntohl
      Src: /src/git/commit-graph.c:295,1
    - Dst: error
      Src: /src/git/commit-graph.c:298,1
    - Dst: _
      Src: /src/git/commit-graph.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - chunk_start
    - chunk_size
    - data
    argTypes:
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 304
    functionName: graph_read_oid_fanout
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - error
    - ntohl
    - _
    linkageType: ''
    returnType: int
    signature: "int graph_read_oid_fanout(const unsigned char *chunk_start,\n\t\t\t\t
      size_t chunk_size, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/commit-graph.c:312,1
    - Dst: _
      Src: /src/git/commit-graph.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - chunk_start
    - chunk_size
    - data
    argTypes:
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: graph_read_oid_lookup
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - error
    - _
    linkageType: ''
    returnType: int
    signature: "int graph_read_oid_lookup(const unsigned char *chunk_start,\n\t\t\t\t
      size_t chunk_size, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: graph_data_width
      Src: /src/git/commit-graph.c:320,1
    - Dst: error
      Src: /src/git/commit-graph.c:321,1
    - Dst: _
      Src: /src/git/commit-graph.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - chunk_start
    - chunk_size
    - data
    argTypes:
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 324
    functionName: graph_read_commit_data
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - error
    - graph_data_width
    - _
    linkageType: ''
    returnType: int
    signature: "int graph_read_commit_data(const unsigned char *chunk_start,\n\t\t\t\t
      \ size_t chunk_size, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/commit-graph.c:331,1
    - Dst: _
      Src: /src/git/commit-graph.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - chunk_start
    - chunk_size
    - data
    argTypes:
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: graph_read_generation_data
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - error
    - _
    linkageType: ''
    returnType: int
    signature: "int graph_read_generation_data(const unsigned char *chunk_start,\n\t\t\t\t
      \     size_t chunk_size, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/commit-graph.c:341,1
    - Dst: _
      Src: /src/git/commit-graph.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - chunk_start
    - chunk_size
    - data
    argTypes:
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: graph_read_bloom_index
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: "int graph_read_bloom_index(const unsigned char *chunk_start,\n\t\t\t\t
      \ size_t chunk_size, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/commit-graph.c:354,1
    - Dst: _
      Src: /src/git/commit-graph.c:354,1
    - Dst: xmalloc
      Src: /src/git/commit-graph.c:364,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:365,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:366,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - chunk_start
    - chunk_size
    - data
    argTypes:
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 371
    functionName: graph_read_bloom_data
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - warning
    - get_be32
    - _
    linkageType: ''
    returnType: int
    signature: "int graph_read_bloom_data(const unsigned char *chunk_start,\n\t\t\t\t
      \ size_t chunk_size, void *data)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: graph_min_size
      Src: /src/git/commit-graph.c:385,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:390,1
    - Dst: error
      Src: /src/git/commit-graph.c:392,1
    - Dst: _
      Src: /src/git/commit-graph.c:392,1
    - Dst: error
      Src: /src/git/commit-graph.c:399,1
    - Dst: _
      Src: /src/git/commit-graph.c:399,1
    - Dst: oid_version
      Src: /src/git/commit-graph.c:405,1
    - Dst: error
      Src: /src/git/commit-graph.c:406,1
    - Dst: _
      Src: /src/git/commit-graph.c:406,1
    - Dst: oid_version
      Src: /src/git/commit-graph.c:407,1
    - Dst: alloc_commit_graph
      Src: /src/git/commit-graph.c:411,1
    - Dst: error
      Src: /src/git/commit-graph.c:421,1
    - Dst: _
      Src: /src/git/commit-graph.c:421,1
    - Dst: free
      Src: /src/git/commit-graph.c:423,1
    - Dst: init_chunkfile
      Src: /src/git/commit-graph.c:427,1
    - Dst: read_table_of_contents
      Src: /src/git/commit-graph.c:429,1
    - Dst: read_chunk
      Src: /src/git/commit-graph.c:433,1
    - Dst: error
      Src: /src/git/commit-graph.c:434,1
    - Dst: _
      Src: /src/git/commit-graph.c:434,1
    - Dst: read_chunk
      Src: /src/git/commit-graph.c:437,1
    - Dst: error
      Src: /src/git/commit-graph.c:438,1
    - Dst: _
      Src: /src/git/commit-graph.c:438,1
    - Dst: read_chunk
      Src: /src/git/commit-graph.c:441,1
    - Dst: error
      Src: /src/git/commit-graph.c:442,1
    - Dst: _
      Src: /src/git/commit-graph.c:442,1
    - Dst: pair_chunk
      Src: /src/git/commit-graph.c:446,1
    - Dst: pair_chunk
      Src: /src/git/commit-graph.c:448,1
    - Dst: prepare_repo_settings
      Src: /src/git/commit-graph.c:451,1
    - Dst: read_chunk
      Src: /src/git/commit-graph.c:454,1
    - Dst: pair_chunk
      Src: /src/git/commit-graph.c:456,1
    - Dst: read_chunk
      Src: /src/git/commit-graph.c:465,1
    - Dst: read_chunk
      Src: /src/git/commit-graph.c:467,1
    - Dst: init_bloom_filters
      Src: /src/git/commit-graph.c:472,1
    - Dst: FREE_AND_NULL
      Src: /src/git/commit-graph.c:477,1
    - Dst: oidread
      Src: /src/git/commit-graph.c:480,1
    - Dst: free_chunkfile
      Src: /src/git/commit-graph.c:483,1
    - Dst: free_chunkfile
      Src: /src/git/commit-graph.c:487,1
    - Dst: free
      Src: /src/git/commit-graph.c:488,1
    - Dst: free
      Src: /src/git/commit-graph.c:489,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 79
    argCount: 3
    argNames:
    - r
    - graph_map
    - graph_size
    argTypes:
    - struct repository*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 373
    functionDepth: 8
    functionLinenumber: 373
    functionLinenumberEnd: 491
    functionName: parse_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 1
    functionsReached:
    - error
    - free_chunkfile
    - init_chunkfile
    - get_be32
    - prepare_repo_settings
    - oidread
    - oid_version
    - read_chunk
    - pair_chunk
    - alloc_commit_graph
    - _
    - free
    - graph_min_size
    - FREE_AND_NULL
    - init_bloom_filters
    - read_table_of_contents
    linkageType: ''
    returnType: struct commit_graph
    signature: "struct commit_graph *parse_commit_graph(struct repository *r,\n\t\t\t\t\tvoid
      *graph_map, size_t graph_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_commit_graph
      Src: /src/git/commit-graph.c:499,1
    - Dst: load_commit_graph_one_fd_st
      Src: /src/git/commit-graph.c:504,1
    - Dst: xstrdup
      Src: /src/git/commit-graph.c:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - source
    - graph_file
    argTypes:
    - struct odb_source*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 493
    functionDepth: 9
    functionLinenumber: 493
    functionLinenumberEnd: 509
    functionName: load_commit_graph_one
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - open_commit_graph
    - load_commit_graph_one_fd_st
    - xstrdup
    linkageType: ''
    returnType: struct commit_graph
    signature: "struct commit_graph *load_commit_graph_one(struct odb_source *source,\n\t\t\t\t\t\t
      \ const char *graph_file)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_graph_filename
      Src: /src/git/commit-graph.c:513,1
    - Dst: load_commit_graph_one
      Src: /src/git/commit-graph.c:514,1
    - Dst: free
      Src: /src/git/commit-graph.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 511
    functionDepth: 10
    functionLinenumber: 511
    functionLinenumberEnd: 518
    functionName: load_commit_graph_v1
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - free
    - get_commit_graph_filename
    - load_commit_graph_one
    linkageType: ''
    returnType: struct commit_graph
    signature: struct commit_graph *load_commit_graph_v1(struct odb_source *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct commit_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 543
    functionName: validate_mixed_generation_chain
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int validate_mixed_generation_chain(struct commit_graph *g)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/commit-graph.c:561,1
    - Dst: warning
      Src: /src/git/commit-graph.c:563,1
    - Dst: _
      Src: /src/git/commit-graph.c:563,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:565,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct commit_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 568
    functionName: validate_mixed_bloom_settings
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - warning
    - FREE_AND_NULL
    - _
    linkageType: ''
    returnType: void
    signature: void validate_mixed_bloom_settings(struct commit_graph *g)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/commit-graph.c:578,1
    - Dst: _
      Src: /src/git/commit-graph.c:578,1
    - Dst: warning
      Src: /src/git/commit-graph.c:583,1
    - Dst: _
      Src: /src/git/commit-graph.c:583,1
    - Dst: oideq
      Src: /src/git/commit-graph.c:591,1
    - Dst: hasheq
      Src: /src/git/commit-graph.c:592,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:592,1
    - Dst: warning
      Src: /src/git/commit-graph.c:594,1
    - Dst: _
      Src: /src/git/commit-graph.c:594,1
    - Dst: unsigned_add_overflows
      Src: /src/git/commit-graph.c:602,1
    - Dst: warning
      Src: /src/git/commit-graph.c:604,1
    - Dst: _
      Src: /src/git/commit-graph.c:604,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - g
    - chain
    - oids
    - n
    argTypes:
    - struct commit_graph*
    - struct commit_graph*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 614
    functionName: add_graph_to_chain
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - hasheq
    - unsigned_add_overflows
    - _
    - warning
    - oideq
    - st_mult
    linkageType: ''
    returnType: int
    signature: "int add_graph_to_chain(struct commit_graph *g,\n\t\t\t      struct
      commit_graph *chain,\n\t\t\t      struct object_id *oids,\n\t\t\t      int n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_open
      Src: /src/git/commit-graph.c:620,1
    - Dst: fstat
      Src: /src/git/commit-graph.c:623,1
    - Dst: close
      Src: /src/git/commit-graph.c:624,1
    - Dst: close
      Src: /src/git/commit-graph.c:628,1
    - Dst: warning
      Src: /src/git/commit-graph.c:633,1
    - Dst: _
      Src: /src/git/commit-graph.c:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - chain_file
    - fd
    - st
    - hash_algo
    argTypes:
    - char*
    - int*
    - struct stat*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 639
    functionName: open_commit_graph_chain
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - fstat
    - git_open
    - _
    - close
    - warning
    linkageType: ''
    returnType: int
    signature: "int open_commit_graph_chain(const char *chain_file,\n\t\t\t    int
      *fd, struct stat *st,\n\t\t\t    const struct git_hash_algo *hash_algo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xfdopen
      Src: /src/git/commit-graph.c:649,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit-graph.c:652,1
    - Dst: odb_prepare_alternates
      Src: /src/git/commit-graph.c:654,1
    - Dst: strbuf_getline_lf
      Src: /src/git/commit-graph.c:659,1
    - Dst: get_oid_hex_algop
      Src: /src/git/commit-graph.c:662,1
    - Dst: warning
      Src: /src/git/commit-graph.c:663,1
    - Dst: _
      Src: /src/git/commit-graph.c:663,1
    - Dst: get_split_graph_filename
      Src: /src/git/commit-graph.c:671,1
    - Dst: load_commit_graph_one
      Src: /src/git/commit-graph.c:672,1
    - Dst: free
      Src: /src/git/commit-graph.c:674,1
    - Dst: add_graph_to_chain
      Src: /src/git/commit-graph.c:677,1
    - Dst: free_commit_graph
      Src: /src/git/commit-graph.c:681,1
    - Dst: warning
      Src: /src/git/commit-graph.c:689,1
    - Dst: _
      Src: /src/git/commit-graph.c:689,1
    - Dst: validate_mixed_generation_chain
      Src: /src/git/commit-graph.c:694,1
    - Dst: validate_mixed_bloom_settings
      Src: /src/git/commit-graph.c:695,1
    - Dst: free
      Src: /src/git/commit-graph.c:697,1
    - Dst: fclose
      Src: /src/git/commit-graph.c:698,1
    - Dst: strbuf_release
      Src: /src/git/commit-graph.c:699,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - odb
    - fd
    - st
    - incomplete_chain
    argTypes:
    - struct object_database*
    - int
    - struct stat*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 641
    functionDepth: 10
    functionLinenumber: 641
    functionLinenumberEnd: 703
    functionName: load_commit_graph_chain_fd_st
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - get_oid_hex_algop
    - add_graph_to_chain
    - free_commit_graph
    - validate_mixed_bloom_settings
    - odb_prepare_alternates
    - load_commit_graph_one
    - validate_mixed_generation_chain
    - warning
    - CALLOC_ARRAY
    - free
    - get_split_graph_filename
    - xfdopen
    - _
    linkageType: ''
    returnType: struct commit_graph
    signature: "struct commit_graph *load_commit_graph_chain_fd_st(struct object_database
      *odb,\n\t\t\t\t\t\t   int fd, struct stat *st,\n\t\t\t\t\t\t   int *incomplete_chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_graph_chain_filename
      Src: /src/git/commit-graph.c:707,1
    - Dst: open_commit_graph_chain
      Src: /src/git/commit-graph.c:712,1
    - Dst: load_commit_graph_chain_fd_st
      Src: /src/git/commit-graph.c:715,1
    - Dst: free
      Src: /src/git/commit-graph.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 705
    functionDepth: 11
    functionLinenumber: 705
    functionLinenumberEnd: 720
    functionName: load_commit_graph_chain
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - load_commit_graph_chain_fd_st
    - open_commit_graph_chain
    - get_commit_graph_chain_filename
    - free
    linkageType: ''
    returnType: struct commit_graph
    signature: struct commit_graph *load_commit_graph_chain(struct odb_source *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_commit_graph_v1
      Src: /src/git/commit-graph.c:724,1
    - Dst: load_commit_graph_chain
      Src: /src/git/commit-graph.c:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 722
    functionDepth: 12
    functionLinenumber: 722
    functionLinenumberEnd: 730
    functionName: read_commit_graph_one
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - load_commit_graph_v1
    - load_commit_graph_chain
    linkageType: ''
    returnType: struct commit_graph
    signature: struct commit_graph *read_commit_graph_one(struct odb_source *source)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/commit-graph.c:756,1
    - Dst: git_env_bool
      Src: /src/git/commit-graph.c:758,1
    - Dst: commit_graph_compatible
      Src: /src/git/commit-graph.c:768,1
    - Dst: odb_prepare_alternates
      Src: /src/git/commit-graph.c:771,1
    - Dst: read_commit_graph_one
      Src: /src/git/commit-graph.c:773,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 738
    functionDepth: 13
    functionLinenumber: 738
    functionLinenumberEnd: 779
    functionName: prepare_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - read_commit_graph_one
    - git_env_bool
    - prepare_repo_settings
    - odb_prepare_alternates
    - commit_graph_compatible
    linkageType: ''
    returnType: struct commit_graph
    signature: struct commit_graph *prepare_commit_graph(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_commit_graph
      Src: /src/git/commit-graph.c:786,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 781
    functionDepth: 14
    functionLinenumber: 781
    functionLinenumberEnd: 794
    functionName: generation_numbers_enabled
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 2
    functionsReached:
    - prepare_commit_graph
    - get_be32
    linkageType: ''
    returnType: int
    signature: int generation_numbers_enabled(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_commit_graph
      Src: /src/git/commit-graph.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 796
    functionDepth: 14
    functionLinenumber: 796
    functionLinenumberEnd: 805
    functionName: corrected_commit_dates_enabled
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - prepare_commit_graph
    linkageType: ''
    returnType: int
    signature: int corrected_commit_dates_enabled(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_commit_graph
      Src: /src/git/commit-graph.c:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 807
    functionDepth: 14
    functionLinenumber: 807
    functionLinenumberEnd: 821
    functionName: get_bloom_filter_settings
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 1
    functionsReached:
    - prepare_commit_graph
    linkageType: ''
    returnType: struct bloom_filter_settings
    signature: struct bloom_filter_settings *get_bloom_filter_settings(struct repository
      *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_commit_graph_data_slab
      Src: /src/git/commit-graph.c:828,1
    - Dst: deinit_bloom_filters
      Src: /src/git/commit-graph.c:829,1
    - Dst: free_commit_graph
      Src: /src/git/commit-graph.c:830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 832
    functionName: close_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 1
    functionsReached:
    - clear_commit_graph_data_slab
    - deinit_bloom_filters
    - free_commit_graph
    linkageType: ''
    returnType: void
    signature: void close_commit_graph(struct object_database *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_hash
      Src: /src/git/commit-graph.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - g
    - oid
    - pos
    argTypes:
    - struct commit_graph*
    - struct object_id*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 838
    functionName: bsearch_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - bsearch_hash
    linkageType: ''
    returnType: int
    signature: int bsearch_graph(struct commit_graph *g, const struct object_id *oid,
      uint32_t *pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/commit-graph.c:850,1
    - Dst: die
      Src: /src/git/commit-graph.c:853,1
    - Dst: _
      Src: /src/git/commit-graph.c:853,1
    - Dst: oidread
      Src: /src/git/commit-graph.c:857,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:857,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - g
    - pos
    - oid
    argTypes:
    - struct commit_graph*
    - uint32_t
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 859
    functionName: load_oid_from_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - BUG
    - st_mult
    - oidread
    linkageType: ''
    returnType: void
    signature: "void load_oid_from_graph(struct commit_graph *g,\n\t\t\t\tuint32_t
      pos,\n\t\t\t\tstruct object_id *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/commit-graph.c:869,1
    - Dst: load_oid_from_graph
      Src: /src/git/commit-graph.c:871,1
    - Dst: lookup_commit
      Src: /src/git/commit-graph.c:872,1
    - Dst: die
      Src: /src/git/commit-graph.c:874,1
    - Dst: _
      Src: /src/git/commit-graph.c:874,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:874,1
    - Dst: commit_graph_data_at
      Src: /src/git/commit-graph.c:875,1
    - Dst: commit_list_insert
      Src: /src/git/commit-graph.c:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 861
    functionDepth: 3
    functionLinenumber: 861
    functionLinenumberEnd: 877
    functionName: insert_parent_or_die
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - load_oid_from_graph
    - commit_list_insert
    - lookup_commit
    - _
    - commit_graph_data_at
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list **insert_parent_or_die(struct commit_graph *g,\n\t\t\t\t\t\t
      uint32_t pos,\n\t\t\t\t\t\t struct commit_list **pptr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/commit-graph.c:890,1
    - Dst: _
      Src: /src/git/commit-graph.c:890,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:893,1
    - Dst: graph_data_width
      Src: /src/git/commit-graph.c:893,1
    - Dst: commit_graph_data_at
      Src: /src/git/commit-graph.c:895,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:898,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:899,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:903,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:903,1
    - Dst: die
      Src: /src/git/commit-graph.c:907,1
    - Dst: _
      Src: /src/git/commit-graph.c:907,1
    - Dst: die
      Src: /src/git/commit-graph.c:911,1
    - Dst: _
      Src: /src/git/commit-graph.c:911,1
    - Dst: get_be64
      Src: /src/git/commit-graph.c:913,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:917,1
    - Dst: topo_level_slab_at
      Src: /src/git/commit-graph.c:920,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:920,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - item
    - g
    - pos
    argTypes:
    - struct commit*
    - struct commit_graph*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 921
    functionName: fill_commit_graph_info
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - die
    - graph_data_width
    - get_be32
    - get_be64
    - _
    - topo_level_slab_at
    - commit_graph_data_at
    - st_mult
    linkageType: ''
    returnType: void
    signature: void fill_commit_graph_info(struct commit *item, struct commit_graph
      *g, uint32_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - t
    argTypes:
    - struct commit*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 926
    functionName: set_commit_tree
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_commit_tree(struct commit *c, struct tree *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fill_commit_graph_info
      Src: /src/git/commit-graph.c:940,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:943,1
    - Dst: set_commit_tree
      Src: /src/git/commit-graph.c:947,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:951,1
    - Dst: insert_parent_or_die
      Src: /src/git/commit-graph.c:954,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:956,1
    - Dst: insert_parent_or_die
      Src: /src/git/commit-graph.c:960,1
    - Dst: error
      Src: /src/git/commit-graph.c:967,1
    - Dst: _
      Src: /src/git/commit-graph.c:967,1
    - Dst: commit_list_free
      Src: /src/git/commit-graph.c:968,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:973,1
    - Dst: insert_parent_or_die
      Src: /src/git/commit-graph.c:975,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - item
    - g
    - pos
    argTypes:
    - struct commit*
    - struct commit_graph*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 928
    functionDepth: 4
    functionLinenumber: 928
    functionLinenumberEnd: 982
    functionName: fill_commit_in_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - error
    - insert_parent_or_die
    - set_commit_tree
    - fill_commit_graph_info
    - get_be32
    - commit_list_free
    - _
    - st_mult
    linkageType: ''
    returnType: int
    signature: "int fill_commit_in_graph(struct commit *item,\n\t\t\t\tstruct commit_graph
      *g, uint32_t pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_graph
      Src: /src/git/commit-graph.c:989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - id
    - g
    - pos
    argTypes:
    - struct object_id*
    - struct commit_graph*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 998
    functionName: search_commit_pos_in_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - bsearch_graph
    linkageType: ''
    returnType: int
    signature: int search_commit_pos_in_graph(const struct object_id *id, struct commit_graph
      *g, uint32_t *pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_position
      Src: /src/git/commit-graph.c:1002,1
    - Dst: search_commit_pos_in_graph
      Src: /src/git/commit-graph.c:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - item
    - g
    - pos
    argTypes:
    - struct commit*
    - struct commit_graph*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1000
    functionDepth: 3
    functionLinenumber: 1000
    functionLinenumberEnd: 1009
    functionName: find_commit_pos_in_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 1
    functionsReached:
    - commit_graph_position
    - search_commit_pos_in_graph
    linkageType: ''
    returnType: int
    signature: int find_commit_pos_in_graph(struct commit *item, struct commit_graph
      *g, uint32_t *pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_commit_graph
      Src: /src/git/commit-graph.c:1015,1
    - Dst: find_commit_pos_in_graph
      Src: /src/git/commit-graph.c:1018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - r
    - c
    - pos
    argTypes:
    - struct repository*
    - struct commit*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1011
    functionDepth: 14
    functionLinenumber: 1011
    functionLinenumberEnd: 1021
    functionName: repo_find_commit_pos_in_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 1
    functionsReached:
    - prepare_commit_graph
    - find_commit_pos_in_graph
    linkageType: ''
    returnType: struct commit_graph
    signature: "struct commit_graph *repo_find_commit_pos_in_graph(struct repository
      *r,\n\t\t\t\t\t\t   struct commit *c,\n\t\t\t\t\t\t   uint32_t *pos)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/commit-graph.c:1031,1
    - Dst: prepare_commit_graph
      Src: /src/git/commit-graph.c:1033,1
    - Dst: search_commit_pos_in_graph
      Src: /src/git/commit-graph.c:1036,1
    - Dst: odb_has_object
      Src: /src/git/commit-graph.c:1038,1
    - Dst: lookup_commit
      Src: /src/git/commit-graph.c:1041,1
    - Dst: fill_commit_in_graph
      Src: /src/git/commit-graph.c:1047,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - repo
    - id
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1023
    functionDepth: 14
    functionLinenumber: 1023
    functionLinenumberEnd: 1051
    functionName: lookup_commit_in_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 4
    functionsReached:
    - git_env_bool
    - search_commit_pos_in_graph
    - odb_has_object
    - lookup_commit
    - prepare_commit_graph
    - fill_commit_in_graph
    linkageType: ''
    returnType: struct commit
    signature: struct commit *lookup_commit_in_graph(struct repository *repo, const
      struct object_id *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_commit_pos_in_graph
      Src: /src/git/commit-graph.c:1061,1
    - Dst: fill_commit_in_graph
      Src: /src/git/commit-graph.c:1062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - g
    - item
    argTypes:
    - struct commit_graph*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1053
    functionDepth: 5
    functionLinenumber: 1053
    functionLinenumberEnd: 1065
    functionName: parse_commit_in_graph_one
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - find_commit_pos_in_graph
    - fill_commit_in_graph
    linkageType: ''
    returnType: int
    signature: "int parse_commit_in_graph_one(struct commit_graph *g,\n\t\t\t\t     struct
      commit *item)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/commit-graph.c:1073,1
    - Dst: die
      Src: /src/git/commit-graph.c:1074,1
    - Dst: prepare_commit_graph
      Src: /src/git/commit-graph.c:1078,1
    - Dst: parse_commit_in_graph_one
      Src: /src/git/commit-graph.c:1081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - r
    - item
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1067
    functionDepth: 14
    functionLinenumber: 1067
    functionLinenumberEnd: 1082
    functionName: parse_commit_in_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - prepare_commit_graph
    - die
    - git_env_bool
    - parse_commit_in_graph_one
    linkageType: ''
    returnType: int
    signature: int parse_commit_in_graph(struct repository *r, struct commit *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_find_commit_pos_in_graph
      Src: /src/git/commit-graph.c:1089,1
    - Dst: fill_commit_graph_info
      Src: /src/git/commit-graph.c:1091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - item
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1084
    functionDepth: 15
    functionLinenumber: 1084
    functionLinenumberEnd: 1092
    functionName: load_commit_graph_info
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - fill_commit_graph_info
    - repo_find_commit_pos_in_graph
    linkageType: ''
    returnType: void
    signature: void load_commit_graph_info(struct repository *r, struct commit *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_position
      Src: /src/git/commit-graph.c:1099,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:1105,1
    - Dst: graph_data_width
      Src: /src/git/commit-graph.c:1105,1
    - Dst: oidread
      Src: /src/git/commit-graph.c:1108,1
    - Dst: set_commit_tree
      Src: /src/git/commit-graph.c:1109,1
    - Dst: lookup_tree
      Src: /src/git/commit-graph.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - g
    - c
    argTypes:
    - struct commit_graph*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1094
    functionDepth: 2
    functionLinenumber: 1094
    functionLinenumberEnd: 1112
    functionName: load_tree_for_commit
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - lookup_tree
    - set_commit_tree
    - commit_graph_position
    - graph_data_width
    - st_mult
    - oidread
    linkageType: ''
    returnType: struct tree
    signature: "struct tree *load_tree_for_commit(struct commit_graph *g,\n\t\t\t\t\t
      struct commit *c)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_position
      Src: /src/git/commit-graph.c:1119,1
    - Dst: BUG
      Src: /src/git/commit-graph.c:1120,1
    - Dst: load_tree_for_commit
      Src: /src/git/commit-graph.c:1122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - g
    - c
    argTypes:
    - struct commit_graph*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1123
    functionName: get_commit_tree_in_graph_one
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - load_tree_for_commit
    - BUG
    - commit_graph_position
    linkageType: ''
    returnType: struct tree
    signature: "struct tree *get_commit_tree_in_graph_one(struct commit_graph *g,\n\t\t\t\t\t\t
      const struct commit *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_tree_in_graph_one
      Src: /src/git/commit-graph.c:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1125
    functionDepth: 4
    functionLinenumber: 1125
    functionLinenumberEnd: 1128
    functionName: get_commit_tree_in_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - get_commit_tree_in_graph_one
    linkageType: ''
    returnType: struct tree
    signature: struct tree *get_commit_tree_in_graph(struct repository *r, const struct
      commit *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1188,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1172
    functionDepth: 4
    functionLinenumber: 1172
    functionLinenumberEnd: 1197
    functionName: write_graph_chunk_fanout
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    - display_progress
    linkageType: ''
    returnType: int
    signature: "int write_graph_chunk_fanout(struct hashfile *f,\n\t\t\t\t    void
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1206,1
    - Dst: hashwrite
      Src: /src/git/commit-graph.c:1207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1199
    functionDepth: 4
    functionLinenumber: 1199
    functionLinenumberEnd: 1211
    functionName: write_graph_chunk_oids
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - display_progress
    - hashwrite
    linkageType: ''
    returnType: int
    signature: "int write_graph_chunk_oids(struct hashfile *f,\n\t\t\t\t  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - table
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1213
    functionDepth: 0
    functionLinenumber: 1213
    functionLinenumberEnd: 1217
    functionName: commit_to_oid
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *commit_to_oid(size_t index, const void *table)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1232,1
    - Dst: repo_parse_commit_no_graph
      Src: /src/git/commit-graph.c:1234,1
    - Dst: die
      Src: /src/git/commit-graph.c:1235,1
    - Dst: _
      Src: /src/git/commit-graph.c:1235,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:1236,1
    - Dst: get_commit_tree_oid
      Src: /src/git/commit-graph.c:1237,1
    - Dst: hashwrite
      Src: /src/git/commit-graph.c:1238,1
    - Dst: oid_pos
      Src: /src/git/commit-graph.c:1245,1
    - Dst: find_commit_pos_in_graph
      Src: /src/git/commit-graph.c:1254,1
    - Dst: BUG
      Src: /src/git/commit-graph.c:1261,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:1262,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:1263,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1266,1
    - Dst: oid_pos
      Src: /src/git/commit-graph.c:1276,1
    - Dst: find_commit_pos_in_graph
      Src: /src/git/commit-graph.c:1285,1
    - Dst: BUG
      Src: /src/git/commit-graph.c:1292,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:1293,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:1294,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1297,1
    - Dst: htonl
      Src: /src/git/commit-graph.c:1307,1
    - Dst: htonl
      Src: /src/git/commit-graph.c:1311,1
    - Dst: topo_level_slab_at
      Src: /src/git/commit-graph.c:1311,1
    - Dst: htonl
      Src: /src/git/commit-graph.c:1313,1
    - Dst: hashwrite
      Src: /src/git/commit-graph.c:1314,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1219
    functionDepth: 4
    functionLinenumber: 1219
    functionLinenumberEnd: 1320
    functionName: write_graph_chunk_data
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - repo_parse_commit_no_graph
    - topo_level_slab_at
    - oid_to_hex
    - die
    - hashwrite_be32
    - hashwrite
    - htonl
    - get_commit_tree_oid
    - display_progress
    - _
    - oid_pos
    - find_commit_pos_in_graph
    - BUG
    linkageType: ''
    returnType: int
    signature: "int write_graph_chunk_data(struct hashfile *f,\n\t\t\t\t  void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_data_at
      Src: /src/git/commit-graph.c:1350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1351
    functionName: compute_generation_offset
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - commit_graph_data_at
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t compute_generation_offset(struct commit *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/commit-graph.c:1362,1
    - Dst: compute_generation_offset
      Src: /src/git/commit-graph.c:1363,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1364,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1353
    functionDepth: 4
    functionLinenumber: 1353
    functionLinenumberEnd: 1375
    functionName: write_graph_chunk_generation_data
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    - repo_parse_commit
    - display_progress
    - compute_generation_offset
    linkageType: ''
    returnType: int
    signature: "int write_graph_chunk_generation_data(struct hashfile *f,\n\t\t\t\t\t
      \    void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compute_generation_offset
      Src: /src/git/commit-graph.c:1384,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1385,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1388,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1377
    functionDepth: 4
    functionLinenumber: 1377
    functionLinenumberEnd: 1394
    functionName: write_graph_chunk_generation_data_overflow
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    - display_progress
    - compute_generation_offset
    linkageType: ''
    returnType: int
    signature: "int write_graph_chunk_generation_data_overflow(struct hashfile *f,\n\t\t\t\t\t\t
      \     void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1407,1
    - Dst: oid_pos
      Src: /src/git/commit-graph.c:1420,1
    - Dst: find_commit_pos_in_graph
      Src: /src/git/commit-graph.c:1429,1
    - Dst: BUG
      Src: /src/git/commit-graph.c:1436,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:1437,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:1438,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1442,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1396
    functionDepth: 4
    functionLinenumber: 1396
    functionLinenumberEnd: 1449
    functionName: write_graph_chunk_extra_edges
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - hashwrite_be32
    - display_progress
    - oid_pos
    - find_commit_pos_in_graph
    - BUG
    linkageType: ''
    returnType: int
    signature: "int write_graph_chunk_extra_edges(struct hashfile *f,\n\t\t\t\t\t
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bloom_filter
      Src: /src/git/commit-graph.c:1460,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1463,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1451
    functionDepth: 4
    functionLinenumber: 1451
    functionLinenumberEnd: 1469
    functionName: write_graph_chunk_bloom_indexes
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    - get_bloom_filter
    - display_progress
    linkageType: ''
    returnType: int
    signature: "int write_graph_chunk_bloom_indexes(struct hashfile *f,\n\t\t\t\t\t
      \  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/commit-graph.c:1475,1
    - Dst: jw_object_intmax
      Src: /src/git/commit-graph.c:1476,1
    - Dst: jw_object_intmax
      Src: /src/git/commit-graph.c:1477,1
    - Dst: jw_object_intmax
      Src: /src/git/commit-graph.c:1478,1
    - Dst: jw_object_intmax
      Src: /src/git/commit-graph.c:1479,1
    - Dst: jw_end
      Src: /src/git/commit-graph.c:1480,1
    - Dst: trace2_data_json
      Src: /src/git/commit-graph.c:1482,1
    - Dst: jw_release
      Src: /src/git/commit-graph.c:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1471
    functionDepth: 4
    functionLinenumber: 1471
    functionLinenumberEnd: 1485
    functionName: trace2_bloom_filter_settings
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - jw_object_begin
    - jw_end
    - trace2_data_json
    - jw_object_intmax
    - jw_release
    linkageType: ''
    returnType: void
    signature: void trace2_bloom_filter_settings(struct write_commit_graph_context
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace2_bloom_filter_settings
      Src: /src/git/commit-graph.c:1494,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1496,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1497,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:1498,1
    - Dst: get_bloom_filter
      Src: /src/git/commit-graph.c:1501,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1504,1
    - Dst: hashwrite
      Src: /src/git/commit-graph.c:1506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1487
    functionDepth: 5
    functionLinenumber: 1487
    functionLinenumberEnd: 1511
    functionName: write_graph_chunk_bloom_data
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - trace2_bloom_filter_settings
    - hashwrite_be32
    - hashwrite
    - get_bloom_filter
    - display_progress
    linkageType: ''
    returnType: int
    signature: "int write_graph_chunk_bloom_data(struct hashfile *f,\n\t\t\t\t\tvoid
      *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1520,1
    - Dst: oid_array_append
      Src: /src/git/commit-graph.c:1525,1
    - Dst: set_commit_pos
      Src: /src/git/commit-graph.c:1526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - oid
    - oi
    - data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1513
    functionDepth: 4
    functionLinenumber: 1513
    functionLinenumberEnd: 1529
    functionName: add_packed_commits_oi
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - set_commit_pos
    - display_progress
    - oid_array_append
    linkageType: ''
    returnType: int
    signature: "int add_packed_commits_oi(const struct object_id *oid,\n\t\t\t\t struct
      object_info *oi,\n\t\t\t\t void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nth_packed_object_offset
      Src: /src/git/commit-graph.c:1537,1
    - Dst: packed_object_info
      Src: /src/git/commit-graph.c:1541,1
    - Dst: die
      Src: /src/git/commit-graph.c:1542,1
    - Dst: _
      Src: /src/git/commit-graph.c:1542,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:1542,1
    - Dst: add_packed_commits_oi
      Src: /src/git/commit-graph.c:1544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - oid
    - pack
    - pos
    - data
    argTypes:
    - struct object_id*
    - struct packed_git*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1531
    functionDepth: 5
    functionLinenumber: 1531
    functionLinenumberEnd: 1545
    functionName: add_packed_commits
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - nth_packed_object_offset
    - _
    - add_packed_commits_oi
    - packed_object_info
    linkageType: ''
    returnType: int
    signature: "int add_packed_commits(const struct object_id *oid,\n\t\t\t      struct
      packed_git *pack,\n\t\t\t      uint32_t pos,\n\t\t\t      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_append
      Src: /src/git/commit-graph.c:1552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - commit
    argTypes:
    - struct write_commit_graph_context*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1547
    functionDepth: 1
    functionLinenumber: 1547
    functionLinenumberEnd: 1556
    functionName: add_missing_parents
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oid_array_append
    linkageType: ''
    returnType: void
    signature: void add_missing_parents(struct write_commit_graph_context *ctx, struct
      commit *commit)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:1566,1
    - Dst: _
      Src: /src/git/commit-graph.c:1568,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1571,1
    - Dst: lookup_commit
      Src: /src/git/commit-graph.c:1572,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:1576,1
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:1584,1
    - Dst: _
      Src: /src/git/commit-graph.c:1586,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1589,1
    - Dst: lookup_commit
      Src: /src/git/commit-graph.c:1590,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-graph.c:1595,1
    - Dst: commit_graph_position
      Src: /src/git/commit-graph.c:1596,1
    - Dst: add_missing_parents
      Src: /src/git/commit-graph.c:1598,1
    - Dst: repo_parse_commit_no_graph
      Src: /src/git/commit-graph.c:1599,1
    - Dst: add_missing_parents
      Src: /src/git/commit-graph.c:1600,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:1602,1
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:1605,1
    - Dst: _
      Src: /src/git/commit-graph.c:1607,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1610,1
    - Dst: lookup_commit
      Src: /src/git/commit-graph.c:1611,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:1616,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1558
    functionDepth: 4
    functionLinenumber: 1558
    functionLinenumberEnd: 1617
    functionName: close_reachable
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - repo_parse_commit_no_graph
    - stop_progress
    - repo_parse_commit
    - commit_graph_position
    - display_progress
    - lookup_commit
    - start_delayed_progress
    - _
    - add_missing_parents
    linkageType: ''
    returnType: void
    signature: void close_reachable(struct write_commit_graph_context *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/commit-graph.c:1646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - c
    - max_gen
    - generation_version
    argTypes:
    - struct commit*
    - timestamp_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1648
    functionName: compute_generation_from_max
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: timestamp_t
    signature: "timestamp_t compute_generation_from_max(struct commit *c,\n\t\t\t\t\t
      \      timestamp_t max_gen,\n\t\t\t\t\t       int generation_version)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/commit-graph.c:1660,1
    - Dst: struct compute_generation_info*::get_generation
      Src: /src/git/commit-graph.c:1661,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1662,1
    - Dst: commit_list_insert
      Src: /src/git/commit-graph.c:1667,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-graph.c:1675,1
    - Dst: struct compute_generation_info*::get_generation
      Src: /src/git/commit-graph.c:1676,1
    - Dst: commit_list_insert
      Src: /src/git/commit-graph.c:1680,1
    - Dst: pop_commit
      Src: /src/git/commit-graph.c:1689,1
    - Dst: compute_generation_from_max
      Src: /src/git/commit-graph.c:1690,1
    - Dst: struct compute_generation_info*::set_generation
      Src: /src/git/commit-graph.c:1693,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - info
    - generation_version
    argTypes:
    - struct compute_generation_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1650
    functionDepth: 4
    functionLinenumber: 1650
    functionLinenumberEnd: 1697
    functionName: compute_reachable_generation_numbers
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - repo_parse_commit
    - compute_generation_from_max
    - pop_commit
    - display_progress
    - struct compute_generation_info*::get_generation
    - commit_list_insert
    - struct compute_generation_info*::set_generation
    linkageType: ''
    returnType: void
    signature: "void compute_reachable_generation_numbers(\n\t\t\tstruct compute_generation_info
      *info,\n\t\t\tint generation_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: topo_level_slab_at
      Src: /src/git/commit-graph.c:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1703
    functionName: get_topo_level
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - topo_level_slab_at
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t get_topo_level(struct commit *c, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: topo_level_slab_at
      Src: /src/git/commit-graph.c:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - t
    - data
    argTypes:
    - struct commit*
    - timestamp_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1709
    functionName: set_topo_level
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - topo_level_slab_at
    linkageType: ''
    returnType: void
    signature: void set_topo_level(struct commit *c, timestamp_t t, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:1723,1
    - Dst: _
      Src: /src/git/commit-graph.c:1725,1
    - Dst: compute_reachable_generation_numbers
      Src: /src/git/commit-graph.c:1728,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:1730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1711
    functionDepth: 5
    functionLinenumber: 1711
    functionLinenumberEnd: 1731
    functionName: compute_topological_levels
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - start_delayed_progress
    - compute_reachable_generation_numbers
    - _
    linkageType: ''
    returnType: void
    signature: void compute_topological_levels(struct write_commit_graph_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_data_at
      Src: /src/git/commit-graph.c:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - UNUSED
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1737
    functionName: get_generation_from_graph_data
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - commit_graph_data_at
    linkageType: ''
    returnType: timestamp_t
    signature: "timestamp_t get_generation_from_graph_data(struct commit *c,\n\t\t\t\t\t\t
      \ void *data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_data_at
      Src: /src/git/commit-graph.c:1742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - t
    - UNUSED
    argTypes:
    - struct commit*
    - timestamp_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1739
    functionDepth: 1
    functionLinenumber: 1739
    functionLinenumberEnd: 1744
    functionName: set_generation_v2
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - commit_graph_data_at
    linkageType: ''
    returnType: void
    signature: "void set_generation_v2(struct commit *c, timestamp_t t,\n\t\t\t      void
      *data UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:1758,1
    - Dst: _
      Src: /src/git/commit-graph.c:1760,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-graph.c:1766,1
    - Dst: commit_graph_data_at
      Src: /src/git/commit-graph.c:1767,1
    - Dst: compute_reachable_generation_numbers
      Src: /src/git/commit-graph.c:1771,1
    - Dst: compute_generation_offset
      Src: /src/git/commit-graph.c:1775,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:1779,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1746
    functionDepth: 5
    functionLinenumber: 1746
    functionLinenumberEnd: 1780
    functionName: compute_generation_numbers
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - repo_parse_commit
    - compute_generation_offset
    - compute_reachable_generation_numbers
    - start_delayed_progress
    - _
    - commit_graph_data_at
    linkageType: ''
    returnType: void
    signature: void compute_generation_numbers(struct write_commit_graph_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_data_at
      Src: /src/git/commit-graph.c:1785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - t
    - UNUSED
    argTypes:
    - struct commit*
    - timestamp_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1782
    functionDepth: 1
    functionLinenumber: 1782
    functionLinenumberEnd: 1786
    functionName: set_generation_in_graph_data
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - commit_graph_data_at
    linkageType: ''
    returnType: void
    signature: "void set_generation_in_graph_data(struct commit *c, timestamp_t t,\n\t\t\t\t\t
      void *data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_configured_generation_version
      Src: /src/git/commit-graph.c:1795,1
    - Dst: compute_reachable_generation_numbers
      Src: /src/git/commit-graph.c:1808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - commits
    - nr
    argTypes:
    - struct repository*
    - struct commit**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1792
    functionDepth: 20
    functionLinenumber: 1792
    functionLinenumberEnd: 1809
    functionName: ensure_generations_valid
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - get_configured_generation_version
    - compute_reachable_generation_numbers
    linkageType: ''
    returnType: void
    signature: "void ensure_generations_valid(struct repository *r,\n\t\t\t      struct
      commit **commits, size_t nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_data_intmax
      Src: /src/git/commit-graph.c:1813,1
    - Dst: trace2_data_intmax
      Src: /src/git/commit-graph.c:1815,1
    - Dst: trace2_data_intmax
      Src: /src/git/commit-graph.c:1817,1
    - Dst: trace2_data_intmax
      Src: /src/git/commit-graph.c:1819,1
    - Dst: trace2_data_intmax
      Src: /src/git/commit-graph.c:1821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1811
    functionDepth: 1
    functionLinenumber: 1811
    functionLinenumberEnd: 1823
    functionName: trace2_bloom_filter_write_statistics
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - trace2_data_intmax
    linkageType: ''
    returnType: void
    signature: void trace2_bloom_filter_write_statistics(struct write_commit_graph_context
      *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: init_bloom_filters
      Src: /src/git/commit-graph.c:1832,1
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:1835,1
    - Dst: _
      Src: /src/git/commit-graph.c:1837,1
    - Dst: DUP_ARRAY
      Src: /src/git/commit-graph.c:1840,1
    - Dst: QSORT
      Src: /src/git/commit-graph.c:1843,1
    - Dst: QSORT
      Src: /src/git/commit-graph.c:1845,1
    - Dst: get_or_compute_bloom_filter
      Src: /src/git/commit-graph.c:1853,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1871,1
    - Dst: trace2_is_enabled
      Src: /src/git/commit-graph.c:1874,1
    - Dst: trace2_bloom_filter_write_statistics
      Src: /src/git/commit-graph.c:1875,1
    - Dst: free
      Src: /src/git/commit-graph.c:1877,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:1878,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1825
    functionDepth: 10
    functionLinenumber: 1825
    functionLinenumberEnd: 1879
    functionName: compute_bloom_filters
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - trace2_is_enabled
    - QSORT
    - get_or_compute_bloom_filter
    - start_delayed_progress
    - display_progress
    - _
    - free
    - init_bloom_filters
    - DUP_ARRAY
    - trace2_bloom_filter_write_statistics
    linkageType: ''
    returnType: void
    signature: void compute_bloom_filters(struct write_commit_graph_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reference_get_peeled_oid
      Src: /src/git/commit-graph.c:1893,1
    - Dst: odb_read_object_info
      Src: /src/git/commit-graph.c:1895,1
    - Dst: oidset_insert
      Src: /src/git/commit-graph.c:1896,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:1898,1
    - Dst: oidset_size
      Src: /src/git/commit-graph.c:1898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1887
    functionDepth: 12
    functionLinenumber: 1887
    functionLinenumberEnd: 1901
    functionName: add_ref_to_set
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oidset_size
    - reference_get_peeled_oid
    - odb_read_object_info
    - display_progress
    - oidset_insert
    linkageType: ''
    returnType: int
    signature: int add_ref_to_set(const struct reference *ref, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/commit-graph.c:1911,1
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:1916,1
    - Dst: _
      Src: /src/git/commit-graph.c:1918,1
    - Dst: refs_for_each_ref
      Src: /src/git/commit-graph.c:1920,1
    - Dst: get_main_ref_store
      Src: /src/git/commit-graph.c:1920,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:1923,1
    - Dst: write_commit_graph
      Src: /src/git/commit-graph.c:1925,1
    - Dst: oidset_clear
      Src: /src/git/commit-graph.c:1928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - source
    - flags
    - opts
    argTypes:
    - struct odb_source*
    - enum commit_graph_write_flags
    - struct commit_graph_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1903
    functionDepth: 4
    functionLinenumber: 1903
    functionLinenumberEnd: 1930
    functionName: write_commit_graph_reachable
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 1
    functionsReached:
    - memset
    - stop_progress
    - refs_for_each_ref
    - oidset_clear
    - write_commit_graph
    - start_delayed_progress
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int write_commit_graph_reachable(struct odb_source *source,\n\t\t\t\t
      enum commit_graph_write_flags flags,\n\t\t\t\t const struct commit_graph_opts
      *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/commit-graph.c:1941,1
    - Dst: strbuf_addf
      Src: /src/git/commit-graph.c:1944,1
    - Dst: Q_
      Src: /src/git/commit-graph.c:1945,1
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:1949,1
    - Dst: strbuf_setlen
      Src: /src/git/commit-graph.c:1955,1
    - Dst: strbuf_addstr
      Src: /src/git/commit-graph.c:1956,1
    - Dst: add_packed_git
      Src: /src/git/commit-graph.c:1957,1
    - Dst: error
      Src: /src/git/commit-graph.c:1959,1
    - Dst: _
      Src: /src/git/commit-graph.c:1959,1
    - Dst: open_pack_index
      Src: /src/git/commit-graph.c:1962,1
    - Dst: error
      Src: /src/git/commit-graph.c:1963,1
    - Dst: _
      Src: /src/git/commit-graph.c:1963,1
    - Dst: close_pack
      Src: /src/git/commit-graph.c:1964,1
    - Dst: free
      Src: /src/git/commit-graph.c:1965,1
    - Dst: for_each_object_in_pack
      Src: /src/git/commit-graph.c:1968,1
    - Dst: close_pack
      Src: /src/git/commit-graph.c:1970,1
    - Dst: free
      Src: /src/git/commit-graph.c:1971,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:1975,1
    - Dst: strbuf_release
      Src: /src/git/commit-graph.c:1976,1
    - Dst: strbuf_release
      Src: /src/git/commit-graph.c:1977,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - ctx
    - pack_indexes
    argTypes:
    - struct write_commit_graph_context*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1932
    functionDepth: 4
    functionLinenumber: 1932
    functionLinenumberEnd: 1980
    functionName: fill_oids_from_packs
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - stop_progress
    - strbuf_addf
    - strbuf_setlen
    - free
    - for_each_object_in_pack
    - add_packed_git
    - start_delayed_progress
    - strbuf_addstr
    - _
    - Q_
    - open_pack_index
    - close_pack
    linkageType: ''
    returnType: int
    signature: "int fill_oids_from_packs(struct write_commit_graph_context *ctx,\n\t\t\t\tconst
      struct string_list *pack_indexes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidset_size
      Src: /src/git/commit-graph.c:1988,1
    - Dst: oidset_iter_init
      Src: /src/git/commit-graph.c:1991,1
    - Dst: oidset_iter_next
      Src: /src/git/commit-graph.c:1992,1
    - Dst: oid_array_append
      Src: /src/git/commit-graph.c:1993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - commits
    argTypes:
    - struct write_commit_graph_context*
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1982
    functionDepth: 2
    functionLinenumber: 1982
    functionLinenumberEnd: 1997
    functionName: fill_oids_from_commits
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oidset_size
    - oid_array_append
    - oidset_iter_next
    - oidset_iter_init
    linkageType: ''
    returnType: int
    signature: "int fill_oids_from_commits(struct write_commit_graph_context *ctx,\n\t\t\t\t
      \ struct oidset *commits)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:2011,1
    - Dst: _
      Src: /src/git/commit-graph.c:2013,1
    - Dst: odb_prepare_alternates
      Src: /src/git/commit-graph.c:2016,1
    - Dst: odb_source_files_downcast
      Src: /src/git/commit-graph.c:2018,1
    - Dst: packfile_store_for_each_object
      Src: /src/git/commit-graph.c:2019,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:2024,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:2025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 1999
    functionDepth: 6
    functionLinenumber: 1999
    functionLinenumberEnd: 2026
    functionName: fill_oids_from_all_packs
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - odb_source_files_downcast
    - odb_prepare_alternates
    - display_progress
    - start_delayed_progress
    - _
    - packfile_store_for_each_object
    linkageType: ''
    returnType: void
    signature: void fill_oids_from_all_packs(struct write_commit_graph_context *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:2036,1
    - Dst: _
      Src: /src/git/commit-graph.c:2038,1
    - Dst: oid_array_sort
      Src: /src/git/commit-graph.c:2040,1
    - Dst: oid_array_next_unique
      Src: /src/git/commit-graph.c:2041,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:2045,1
    - Dst: lookup_commit
      Src: /src/git/commit-graph.c:2047,1
    - Dst: commit_graph_position
      Src: /src/git/commit-graph.c:2050,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-graph.c:2054,1
    - Dst: repo_parse_commit_no_graph
      Src: /src/git/commit-graph.c:2056,1
    - Dst: commit_list_count
      Src: /src/git/commit-graph.c:2058,1
    - Dst: commit_stack_push
      Src: /src/git/commit-graph.c:2062,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:2064,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2028
    functionDepth: 4
    functionLinenumber: 2028
    functionLinenumberEnd: 2065
    functionName: copy_oids_to_commits
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - repo_parse_commit_no_graph
    - stop_progress
    - repo_parse_commit
    - commit_graph_position
    - commit_stack_push
    - display_progress
    - lookup_commit
    - start_delayed_progress
    - _
    - oid_array_next_unique
    - commit_list_count
    - oid_array_sort
    linkageType: ''
    returnType: void
    signature: void copy_oids_to_commits(struct write_commit_graph_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_graph_chunk_base_1
      Src: /src/git/commit-graph.c:2075,1
    - Dst: hashwrite
      Src: /src/git/commit-graph.c:2076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - f
    - g
    argTypes:
    - struct hashfile*
    - struct commit_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2067
    functionDepth: 1
    functionLinenumber: 2067
    functionLinenumberEnd: 2078
    functionName: write_graph_chunk_base_1
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 1
    functionsReached:
    - write_graph_chunk_base_1
    - hashwrite
    linkageType: ''
    returnType: int
    signature: "int write_graph_chunk_base_1(struct hashfile *f,\n\t\t\t\t    struct
      commit_graph *g)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_graph_chunk_base_1
      Src: /src/git/commit-graph.c:2084,1
    - Dst: error
      Src: /src/git/commit-graph.c:2087,1
    - Dst: _
      Src: /src/git/commit-graph.c:2087,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2080
    functionDepth: 2
    functionLinenumber: 2080
    functionLinenumberEnd: 2092
    functionName: write_graph_chunk_base
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - error
    - write_graph_chunk_base_1
    - _
    linkageType: ''
    returnType: int
    signature: "int write_graph_chunk_base(struct hashfile *f,\n\t\t\t\t    void *data)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/commit-graph.c:2108,1
    - Dst: strbuf_detach
      Src: /src/git/commit-graph.c:2111,1
    - Dst: get_commit_graph_filename
      Src: /src/git/commit-graph.c:2113,1
    - Dst: safe_create_leading_directories
      Src: /src/git/commit-graph.c:2116,1
    - Dst: error
      Src: /src/git/commit-graph.c:2117,1
    - Dst: _
      Src: /src/git/commit-graph.c:2117,1
    - Dst: get_commit_graph_chain_filename
      Src: /src/git/commit-graph.c:2123,1
    - Dst: hold_lock_file_for_update_mode
      Src: /src/git/commit-graph.c:2125,1
    - Dst: free
      Src: /src/git/commit-graph.c:2127,1
    - Dst: mks_tempfile_m
      Src: /src/git/commit-graph.c:2129,1
    - Dst: error
      Src: /src/git/commit-graph.c:2131,1
    - Dst: _
      Src: /src/git/commit-graph.c:2131,1
    - Dst: adjust_shared_perm
      Src: /src/git/commit-graph.c:2135,1
    - Dst: get_tempfile_path
      Src: /src/git/commit-graph.c:2135,1
    - Dst: error
      Src: /src/git/commit-graph.c:2136,1
    - Dst: _
      Src: /src/git/commit-graph.c:2136,1
    - Dst: get_tempfile_path
      Src: /src/git/commit-graph.c:2137,1
    - Dst: hashfd
      Src: /src/git/commit-graph.c:2141,1
    - Dst: get_tempfile_fd
      Src: /src/git/commit-graph.c:2142,1
    - Dst: get_tempfile_path
      Src: /src/git/commit-graph.c:2142,1
    - Dst: hold_lock_file_for_update_mode
      Src: /src/git/commit-graph.c:2144,1
    - Dst: hashfd
      Src: /src/git/commit-graph.c:2146,1
    - Dst: get_lock_file_fd
      Src: /src/git/commit-graph.c:2147,1
    - Dst: get_lock_file_path
      Src: /src/git/commit-graph.c:2147,1
    - Dst: init_chunkfile
      Src: /src/git/commit-graph.c:2150,1
    - Dst: add_chunk
      Src: /src/git/commit-graph.c:2152,1
    - Dst: add_chunk
      Src: /src/git/commit-graph.c:2154,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2154,1
    - Dst: add_chunk
      Src: /src/git/commit-graph.c:2156,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2156,1
    - Dst: add_chunk
      Src: /src/git/commit-graph.c:2160,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2161,1
    - Dst: add_chunk
      Src: /src/git/commit-graph.c:2164,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2165,1
    - Dst: add_chunk
      Src: /src/git/commit-graph.c:2168,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2169,1
    - Dst: add_chunk
      Src: /src/git/commit-graph.c:2172,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2173,1
    - Dst: add_chunk
      Src: /src/git/commit-graph.c:2175,1
    - Dst: st_add
      Src: /src/git/commit-graph.c:2176,1
    - Dst: add_chunk
      Src: /src/git/commit-graph.c:2181,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2182,1
    - Dst: hashwrite_be32
      Src: /src/git/commit-graph.c:2185,1
    - Dst: hashwrite_u8
      Src: /src/git/commit-graph.c:2187,1
    - Dst: hashwrite_u8
      Src: /src/git/commit-graph.c:2188,1
    - Dst: oid_version
      Src: /src/git/commit-graph.c:2188,1
    - Dst: hashwrite_u8
      Src: /src/git/commit-graph.c:2189,1
    - Dst: get_num_chunks
      Src: /src/git/commit-graph.c:2189,1
    - Dst: hashwrite_u8
      Src: /src/git/commit-graph.c:2190,1
    - Dst: strbuf_addf
      Src: /src/git/commit-graph.c:2193,1
    - Dst: Q_
      Src: /src/git/commit-graph.c:2194,1
    - Dst: get_num_chunks
      Src: /src/git/commit-graph.c:2196,1
    - Dst: get_num_chunks
      Src: /src/git/commit-graph.c:2197,1
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:2198,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2201,1
    - Dst: get_num_chunks
      Src: /src/git/commit-graph.c:2201,1
    - Dst: write_chunkfile
      Src: /src/git/commit-graph.c:2204,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:2206,1
    - Dst: strbuf_release
      Src: /src/git/commit-graph.c:2207,1
    - Dst: xstrdup
      Src: /src/git/commit-graph.c:2210,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2210,1
    - Dst: get_split_graph_filename
      Src: /src/git/commit-graph.c:2211,1
    - Dst: free
      Src: /src/git/commit-graph.c:2213,1
    - Dst: free
      Src: /src/git/commit-graph.c:2214,1
    - Dst: close_commit_graph
      Src: /src/git/commit-graph.c:2219,1
    - Dst: finalize_hashfile
      Src: /src/git/commit-graph.c:2220,1
    - Dst: free_chunkfile
      Src: /src/git/commit-graph.c:2222,1
    - Dst: fdopen_lock_file
      Src: /src/git/commit-graph.c:2225,1
    - Dst: error
      Src: /src/git/commit-graph.c:2230,1
    - Dst: _
      Src: /src/git/commit-graph.c:2230,1
    - Dst: strcmp
      Src: /src/git/commit-graph.c:2242,1
    - Dst: rename
      Src: /src/git/commit-graph.c:2243,1
    - Dst: error
      Src: /src/git/commit-graph.c:2246,1
    - Dst: _
      Src: /src/git/commit-graph.c:2246,1
    - Dst: get_commit_graph_filename
      Src: /src/git/commit-graph.c:2251,1
    - Dst: unlink
      Src: /src/git/commit-graph.c:2252,1
    - Dst: free
      Src: /src/git/commit-graph.c:2253,1
    - Dst: free
      Src: /src/git/commit-graph.c:2256,1
    - Dst: xstrdup
      Src: /src/git/commit-graph.c:2258,1
    - Dst: hash_to_hex_algop
      Src: /src/git/commit-graph.c:2258,1
    - Dst: get_split_graph_filename
      Src: /src/git/commit-graph.c:2259,1
    - Dst: free
      Src: /src/git/commit-graph.c:2261,1
    - Dst: rename_tempfile
      Src: /src/git/commit-graph.c:2264,1
    - Dst: fprintf
      Src: /src/git/commit-graph.c:2267,1
    - Dst: get_lock_file_fp
      Src: /src/git/commit-graph.c:2267,1
    - Dst: error
      Src: /src/git/commit-graph.c:2270,1
    - Dst: _
      Src: /src/git/commit-graph.c:2270,1
    - Dst: commit_lock_file
      Src: /src/git/commit-graph.c:2275,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 100
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2094
    functionDepth: 6
    functionLinenumber: 2094
    functionLinenumberEnd: 2278
    functionName: write_commit_graph_file
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - init_chunkfile
    - get_commit_graph_chain_filename
    - strbuf_addf
    - hashfd
    - start_delayed_progress
    - free
    - strcmp
    - adjust_shared_perm
    - st_add
    - get_tempfile_path
    - error
    - get_commit_graph_filename
    - get_num_chunks
    - write_chunkfile
    - strbuf_release
    - commit_lock_file
    - fdopen_lock_file
    - Q_
    - get_split_graph_filename
    - close_commit_graph
    - free_chunkfile
    - unlink
    - oid_to_hex
    - rename_tempfile
    - get_lock_file_fp
    - mks_tempfile_m
    - hashwrite_be32
    - hold_lock_file_for_update_mode
    - add_chunk
    - oid_version
    - strbuf_detach
    - _
    - get_lock_file_fd
    - hash_to_hex_algop
    - get_lock_file_path
    - st_mult
    - xstrdup
    - hashwrite_u8
    - rename
    - get_tempfile_fd
    - finalize_hashfile
    - safe_create_leading_directories
    - fprintf
    linkageType: ''
    returnType: int
    signature: int write_commit_graph_file(struct write_commit_graph_context *ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2309,1
    - Dst: unsigned_add_overflows
      Src: /src/git/commit-graph.c:2314,1
    - Dst: die
      Src: /src/git/commit-graph.c:2315,1
    - Dst: _
      Src: /src/git/commit-graph.c:2315,1
    - Dst: BUG
      Src: /src/git/commit-graph.c:2329,1
    - Dst: get_commit_graph_filename
      Src: /src/git/commit-graph.c:2333,1
    - Dst: strcmp
      Src: /src/git/commit-graph.c:2335,1
    - Dst: free
      Src: /src/git/commit-graph.c:2341,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit-graph.c:2344,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit-graph.c:2345,1
    - Dst: xstrdup
      Src: /src/git/commit-graph.c:2349,1
    - Dst: xstrdup
      Src: /src/git/commit-graph.c:2356,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2356,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 48
    argCount: 2
    argNames:
    - ctx
    - graph_to_merge
    argTypes:
    - struct write_commit_graph_context*
    - struct commit_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2280
    functionDepth: 6
    functionLinenumber: 2280
    functionLinenumberEnd: 2368
    functionName: split_graph_merge_strategy
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - get_commit_graph_filename
    - oid_to_hex
    - die
    - CALLOC_ARRAY
    - strcmp
    - unsigned_add_overflows
    - _
    - free
    - BUG
    - xstrdup
    - st_mult
    linkageType: ''
    returnType: void
    signature: "void split_graph_merge_strategy(struct write_commit_graph_context
      *ctx,\n\t\t\t\t       struct commit_graph *graph_to_merge)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_add_overflows
      Src: /src/git/commit-graph.c:2376,1
    - Dst: die
      Src: /src/git/commit-graph.c:2377,1
    - Dst: _
      Src: /src/git/commit-graph.c:2377,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2378,1
    - Dst: st_add
      Src: /src/git/commit-graph.c:2379,1
    - Dst: commit_stack_grow
      Src: /src/git/commit-graph.c:2381,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:2387,1
    - Dst: load_oid_from_graph
      Src: /src/git/commit-graph.c:2389,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/commit-graph.c:2392,1
    - Dst: commit_stack_push
      Src: /src/git/commit-graph.c:2395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - g
    argTypes:
    - struct write_commit_graph_context*
    - struct commit_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2370
    functionDepth: 4
    functionLinenumber: 2370
    functionLinenumberEnd: 2397
    functionName: merge_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - lookup_commit_reference_gently
    - load_oid_from_graph
    - commit_stack_grow
    - commit_stack_push
    - display_progress
    - unsigned_add_overflows
    - _
    - st_add
    linkageType: ''
    returnType: void
    signature: "void merge_commit_graph(struct write_commit_graph_context *ctx,\n\t\t\t
      \      struct commit_graph *g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/commit-graph.c:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2399
    functionDepth: 1
    functionLinenumber: 2399
    functionLinenumberEnd: 2404
    functionName: commit_compare
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oidcmp
    linkageType: ''
    returnType: int
    signature: int commit_compare(const void *_a, const void *_b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:2411,1
    - Dst: _
      Src: /src/git/commit-graph.c:2413,1
    - Dst: QSORT
      Src: /src/git/commit-graph.c:2416,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:2420,1
    - Dst: oideq
      Src: /src/git/commit-graph.c:2422,1
    - Dst: commit_list_count
      Src: /src/git/commit-graph.c:2437,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:2445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2406
    functionDepth: 4
    functionLinenumber: 2406
    functionLinenumberEnd: 2446
    functionName: sort_and_scan_merged_commits
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - display_progress
    - QSORT
    - start_delayed_progress
    - commit_list_count
    - _
    - oideq
    linkageType: ''
    returnType: void
    signature: void sort_and_scan_merged_commits(struct write_commit_graph_context
      *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/commit-graph.c:2457,1
    - Dst: _
      Src: /src/git/commit-graph.c:2458,1
    - Dst: merge_commit_graph
      Src: /src/git/commit-graph.c:2460,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:2461,1
    - Dst: xstrdup
      Src: /src/git/commit-graph.c:2472,1
    - Dst: sort_and_scan_merged_commits
      Src: /src/git/commit-graph.c:2474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - g
    argTypes:
    - struct write_commit_graph_context*
    - struct commit_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2448
    functionDepth: 5
    functionLinenumber: 2448
    functionLinenumberEnd: 2475
    functionName: merge_commit_graphs
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - sort_and_scan_merged_commits
    - merge_commit_graph
    - start_delayed_progress
    - _
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void merge_commit_graphs(struct write_commit_graph_context *ctx,\n\t\t\t\tstruct
      commit_graph *g)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/commit-graph.c:2480,1
    - Dst: stat
      Src: /src/git/commit-graph.c:2486,1
    - Dst: utime
      Src: /src/git/commit-graph.c:2491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2477
    functionDepth: 0
    functionLinenumber: 2477
    functionLinenumberEnd: 2493
    functionName: mark_commit_graphs
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - utime
    - stat
    - time
    linkageType: ''
    returnType: void
    signature: void mark_commit_graphs(struct write_commit_graph_context *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/commit-graph.c:2501,1
    - Dst: get_commit_graph_chain_filename
      Src: /src/git/commit-graph.c:2506,1
    - Dst: unlink
      Src: /src/git/commit-graph.c:2507,1
    - Dst: free
      Src: /src/git/commit-graph.c:2508,1
    - Dst: strbuf_addstr
      Src: /src/git/commit-graph.c:2512,1
    - Dst: strbuf_addstr
      Src: /src/git/commit-graph.c:2513,1
    - Dst: opendir
      Src: /src/git/commit-graph.c:2514,1
    - Dst: strbuf_addch
      Src: /src/git/commit-graph.c:2519,1
    - Dst: readdir
      Src: /src/git/commit-graph.c:2521,1
    - Dst: strbuf_setlen
      Src: /src/git/commit-graph.c:2525,1
    - Dst: strbuf_addstr
      Src: /src/git/commit-graph.c:2526,1
    - Dst: stat
      Src: /src/git/commit-graph.c:2528,1
    - Dst: strcmp
      Src: /src/git/commit-graph.c:2533,1
    - Dst: strcmp
      Src: /src/git/commit-graph.c:2537,1
    - Dst: unlink
      Src: /src/git/commit-graph.c:2545,1
    - Dst: closedir
      Src: /src/git/commit-graph.c:2550,1
    - Dst: strbuf_release
      Src: /src/git/commit-graph.c:2551,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_commit_graph_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2495
    functionDepth: 6
    functionLinenumber: 2495
    functionLinenumberEnd: 2552
    functionName: expire_commit_graphs
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_commit_graph_chain_filename
    - stat
    - strbuf_setlen
    - strbuf_addch
    - opendir
    - time
    - strcmp
    - strbuf_addstr
    - free
    - closedir
    - readdir
    - unlink
    linkageType: ''
    returnType: void
    signature: void expire_commit_graphs(struct write_commit_graph_context *ctx)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: get_configured_generation_version
      Src: /src/git/commit-graph.c:2569,1
    - Dst: prepare_repo_settings
      Src: /src/git/commit-graph.c:2579,1
    - Dst: warning
      Src: /src/git/commit-graph.c:2581,1
    - Dst: _
      Src: /src/git/commit-graph.c:2581,1
    - Dst: commit_graph_compatible
      Src: /src/git/commit-graph.c:2584,1
    - Dst: warning
      Src: /src/git/commit-graph.c:2588,1
    - Dst: _
      Src: /src/git/commit-graph.c:2588,1
    - Dst: git_env_ulong
      Src: /src/git/commit-graph.c:2595,1
    - Dst: git_env_ulong
      Src: /src/git/commit-graph.c:2597,1
    - Dst: git_env_ulong
      Src: /src/git/commit-graph.c:2599,1
    - Dst: init_topo_level_slab
      Src: /src/git/commit-graph.c:2603,1
    - Dst: prepare_commit_graph
      Src: /src/git/commit-graph.c:2606,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/commit-graph.c:2633,1
    - Dst: xstrdup
      Src: /src/git/commit-graph.c:2637,1
    - Dst: odb_count_objects
      Src: /src/git/commit-graph.c:2644,1
    - Dst: oidread
      Src: /src/git/commit-graph.c:2650,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2650,1
    - Dst: oid_array_append
      Src: /src/git/commit-graph.c:2652,1
    - Dst: fill_oids_from_packs
      Src: /src/git/commit-graph.c:2658,1
    - Dst: fill_oids_from_commits
      Src: /src/git/commit-graph.c:2663,1
    - Dst: fill_oids_from_all_packs
      Src: /src/git/commit-graph.c:2669,1
    - Dst: close_reachable
      Src: /src/git/commit-graph.c:2672,1
    - Dst: copy_oids_to_commits
      Src: /src/git/commit-graph.c:2674,1
    - Dst: error
      Src: /src/git/commit-graph.c:2677,1
    - Dst: _
      Src: /src/git/commit-graph.c:2677,1
    - Dst: split_graph_merge_strategy
      Src: /src/git/commit-graph.c:2686,1
    - Dst: merge_commit_graphs
      Src: /src/git/commit-graph.c:2689,1
    - Dst: validate_mixed_generation_chain
      Src: /src/git/commit-graph.c:2694,1
    - Dst: compute_topological_levels
      Src: /src/git/commit-graph.c:2696,1
    - Dst: compute_generation_numbers
      Src: /src/git/commit-graph.c:2698,1
    - Dst: compute_bloom_filters
      Src: /src/git/commit-graph.c:2701,1
    - Dst: write_commit_graph_file
      Src: /src/git/commit-graph.c:2703,1
    - Dst: deinit_bloom_filters
      Src: /src/git/commit-graph.c:2706,1
    - Dst: mark_commit_graphs
      Src: /src/git/commit-graph.c:2709,1
    - Dst: expire_commit_graphs
      Src: /src/git/commit-graph.c:2711,1
    - Dst: free
      Src: /src/git/commit-graph.c:2714,1
    - Dst: free
      Src: /src/git/commit-graph.c:2715,1
    - Dst: commit_stack_clear
      Src: /src/git/commit-graph.c:2716,1
    - Dst: oid_array_clear
      Src: /src/git/commit-graph.c:2717,1
    - Dst: clear_topo_level_slab
      Src: /src/git/commit-graph.c:2718,1
    - Dst: free
      Src: /src/git/commit-graph.c:2730,1
    - Dst: free
      Src: /src/git/commit-graph.c:2731,1
    - Dst: free
      Src: /src/git/commit-graph.c:2734,1
    - Dst: free
      Src: /src/git/commit-graph.c:2735,1
    - Dst: free
      Src: /src/git/commit-graph.c:2737,1
    - Dst: free
      Src: /src/git/commit-graph.c:2738,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 123
    argCount: 5
    argNames:
    - source
    - pack_indexes
    - commits
    - flags
    - opts
    argTypes:
    - struct odb_source*
    - struct string_list*
    - struct oidset*
    - enum commit_graph_write_flags
    - struct commit_graph_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2554
    functionDepth: 20
    functionLinenumber: 2554
    functionLinenumberEnd: 2741
    functionName: write_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 1
    functionsReached:
    - odb_count_objects
    - close_reachable
    - commit_stack_clear
    - free
    - validate_mixed_generation_chain
    - compute_generation_numbers
    - commit_graph_compatible
    - fill_oids_from_all_packs
    - clear_topo_level_slab
    - error
    - ALLOC_ARRAY
    - oid_array_clear
    - merge_commit_graphs
    - oid_array_append
    - copy_oids_to_commits
    - compute_bloom_filters
    - fill_oids_from_commits
    - init_topo_level_slab
    - split_graph_merge_strategy
    - write_commit_graph_file
    - deinit_bloom_filters
    - mark_commit_graphs
    - _
    - warning
    - st_mult
    - xstrdup
    - fill_oids_from_packs
    - expire_commit_graphs
    - compute_topological_levels
    - get_configured_generation_version
    - git_env_ulong
    - prepare_repo_settings
    - prepare_commit_graph
    - oidread
    linkageType: ''
    returnType: int
    signature: "int write_commit_graph(struct odb_source *source,\n\t\t       const
      struct string_list *const pack_indexes,\n\t\t       struct oidset *commits,\n\t\t
      \      enum commit_graph_write_flags flags,\n\t\t       const struct commit_graph_opts
      *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/commit-graph.c:2746,1
    - Dst: va_start
      Src: /src/git/commit-graph.c:2752,1
    - Dst: vfprintf
      Src: /src/git/commit-graph.c:2753,1
    - Dst: fprintf
      Src: /src/git/commit-graph.c:2754,1
    - Dst: va_end
      Src: /src/git/commit-graph.c:2755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2746
    functionDepth: 0
    functionLinenumber: 2746
    functionLinenumberEnd: 2756
    functionName: graph_report
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - va_end
    - va_start
    - fprintf
    - format
    linkageType: ''
    returnType: void
    signature: void graph_report(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashfile_checksum_valid
      Src: /src/git/commit-graph.c:2760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct commit_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2758
    functionDepth: 1
    functionLinenumber: 2758
    functionLinenumberEnd: 2762
    functionName: commit_graph_checksum_valid
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - hashfile_checksum_valid
    linkageType: ''
    returnType: int
    signature: int commit_graph_checksum_valid(struct commit_graph *g)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_checksum_valid
      Src: /src/git/commit-graph.c:2774,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2775,1
    - Dst: _
      Src: /src/git/commit-graph.c:2775,1
    - Dst: oidread
      Src: /src/git/commit-graph.c:2782,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2782,1
    - Dst: oidcmp
      Src: /src/git/commit-graph.c:2785,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2786,1
    - Dst: _
      Src: /src/git/commit-graph.c:2786,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2787,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2788,1
    - Dst: oidcpy
      Src: /src/git/commit-graph.c:2790,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:2793,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2796,1
    - Dst: _
      Src: /src/git/commit-graph.c:2796,1
    - Dst: lookup_commit
      Src: /src/git/commit-graph.c:2801,1
    - Dst: parse_commit_in_graph_one
      Src: /src/git/commit-graph.c:2802,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2803,1
    - Dst: _
      Src: /src/git/commit-graph.c:2803,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2804,1
    - Dst: get_be32
      Src: /src/git/commit-graph.c:2808,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2811,1
    - Dst: _
      Src: /src/git/commit-graph.c:2811,1
    - Dst: display_progress
      Src: /src/git/commit-graph.c:2826,1
    - Dst: oidread
      Src: /src/git/commit-graph.c:2827,1
    - Dst: st_mult
      Src: /src/git/commit-graph.c:2827,1
    - Dst: lookup_commit
      Src: /src/git/commit-graph.c:2830,1
    - Dst: create_object
      Src: /src/git/commit-graph.c:2831,1
    - Dst: alloc_commit_node
      Src: /src/git/commit-graph.c:2831,1
    - Dst: repo_parse_commit_internal
      Src: /src/git/commit-graph.c:2832,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2833,1
    - Dst: _
      Src: /src/git/commit-graph.c:2833,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2834,1
    - Dst: oideq
      Src: /src/git/commit-graph.c:2838,1
    - Dst: get_commit_tree_in_graph_one
      Src: /src/git/commit-graph.c:2838,1
    - Dst: get_commit_tree_oid
      Src: /src/git/commit-graph.c:2839,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2840,1
    - Dst: _
      Src: /src/git/commit-graph.c:2840,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2841,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2842,1
    - Dst: get_commit_tree_oid
      Src: /src/git/commit-graph.c:2842,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2843,1
    - Dst: get_commit_tree_oid
      Src: /src/git/commit-graph.c:2843,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2850,1
    - Dst: _
      Src: /src/git/commit-graph.c:2850,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2851,1
    - Dst: parse_commit_in_graph_one
      Src: /src/git/commit-graph.c:2856,1
    - Dst: oideq
      Src: /src/git/commit-graph.c:2858,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2859,1
    - Dst: _
      Src: /src/git/commit-graph.c:2859,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2860,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2861,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2862,1
    - Dst: commit_graph_generation_from_graph
      Src: /src/git/commit-graph.c:2864,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2873,1
    - Dst: _
      Src: /src/git/commit-graph.c:2873,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2874,1
    - Dst: commit_graph_generation_from_graph
      Src: /src/git/commit-graph.c:2876,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-graph.c:2893,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2895,1
    - Dst: _
      Src: /src/git/commit-graph.c:2895,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2896,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2901,1
    - Dst: _
      Src: /src/git/commit-graph.c:2901,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2902,1
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2908,1
    - Dst: _
      Src: /src/git/commit-graph.c:2908,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2910,1
    - Dst: oid_to_hex
      Src: /src/git/commit-graph.c:2911,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 3
    argNames:
    - g
    - progress
    - seen
    argTypes:
    - struct commit_graph*
    - struct progress*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2764
    functionDepth: 6
    functionLinenumber: 2764
    functionLinenumberEnd: 2914
    functionName: verify_one_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - repo_parse_commit_internal
    - create_object
    - graph_report
    - commit_graph_generation
    - get_be32
    - oid_to_hex
    - oidcmp
    - commit_graph_generation_from_graph
    - _
    - get_commit_tree_in_graph_one
    - st_mult
    - alloc_commit_node
    - commit_graph_checksum_valid
    - get_commit_tree_oid
    - lookup_commit
    - display_progress
    - parse_commit_in_graph_one
    - oideq
    - oidread
    linkageType: ''
    returnType: int
    signature: "int verify_one_commit_graph(struct commit_graph *g,\n\t\t\t\t   struct
      progress *progress,\n\t\t\t\t   uint64_t *seen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: graph_report
      Src: /src/git/commit-graph.c:2923,1
    - Dst: start_progress
      Src: /src/git/commit-graph.c:2932,1
    - Dst: _
      Src: /src/git/commit-graph.c:2933,1
    - Dst: verify_one_commit_graph
      Src: /src/git/commit-graph.c:2938,1
    - Dst: stop_progress
      Src: /src/git/commit-graph.c:2943,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - g
    - flags
    argTypes:
    - struct commit_graph*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2916
    functionDepth: 7
    functionLinenumber: 2916
    functionLinenumberEnd: 2946
    functionName: verify_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - graph_report
    - verify_one_commit_graph
    - _
    - start_progress
    linkageType: ''
    returnType: int
    signature: int verify_commit_graph(struct commit_graph *g, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/git/commit-graph.c:2954,1
    - Dst: free
      Src: /src/git/commit-graph.c:2955,1
    - Dst: free
      Src: /src/git/commit-graph.c:2956,1
    - Dst: free
      Src: /src/git/commit-graph.c:2957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct commit_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2948
    functionDepth: 1
    functionLinenumber: 2948
    functionLinenumberEnd: 2961
    functionName: free_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 2
    functionsReached:
    - munmap
    - free
    linkageType: ''
    returnType: void
    signature: void free_commit_graph(struct commit_graph *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2963
    functionDepth: 0
    functionLinenumber: 2963
    functionLinenumberEnd: 2966
    functionName: disable_commit_graph
    functionSourceFile: /src/git/commit-graph.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_commit_graph(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/read-cache-ll.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct cache_entry*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 111
    functionName: copy_cache_entry
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void copy_cache_entry(struct cache_entry *dst,\n\t\t\t\t    const
      struct cache_entry *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stage
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: create_ce_flags
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned create_ce_flags(unsigned stage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ce
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: ce_namelen
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ce_namelen(ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ce
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: ce_size
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ce_size(ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ce
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: ce_stage
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ce_stage(ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ce
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: ce_uptodate
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ce_uptodate(ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ce
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: ce_skip_worktree
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ce_skip_worktree(ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ce
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: ce_mark_uptodate
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ce_mark_uptodate(ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ce
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: ce_intent_to_add
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ce_intent_to_add(ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: cache_entry_size
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cache_entry_size(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: INDEX_STATE_INIT
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INDEX_STATE_INIT(r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/read-cache-ll.h:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pos
    argTypes:
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: index_pos_to_insert_pos
    functionSourceFile: /src/git/read-cache-ll.h
    functionUses: 1
    functionsReached:
    - die
    linkageType: ''
    returnType: int
    signature: int index_pos_to_insert_pos(uintmax_t pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: count_distance
      Src: /src/git/bisect.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 70
    functionName: count_distance
    functionSourceFile: /src/git/bisect.c
    functionUses: 1
    functionsReached:
    - count_distance
    linkageType: ''
    returnType: int
    signature: int count_distance(struct commit_list *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: clear_distance
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_distance(struct commit_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_weight_at
      Src: /src/git/bisect.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: weight
    functionSourceFile: /src/git/bisect.c
    functionUses: 2
    functionsReached:
    - commit_weight_at
    linkageType: ''
    returnType: int
    signature: int weight(struct commit_list *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_weight_at
      Src: /src/git/bisect.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elem
    - weight
    argTypes:
    - struct commit_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: weight_set
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - commit_weight_at
    linkageType: ''
    returnType: void
    signature: void weight_set(struct commit_list *elem, int weight)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - commit
    - bisect_flags
    argTypes:
    - struct commit*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: count_interesting_parents
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count_interesting_parents(struct commit *commit, unsigned bisect_flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: weight
      Src: /src/git/bisect.c:125,1
    - Dst: abs
      Src: /src/git/bisect.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - p
    - nr
    argTypes:
    - struct commit_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 140
    functionName: approx_halfway
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - weight
    - abs
    linkageType: ''
    returnType: int
    signature: int approx_halfway(struct commit_list *p, int nr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/bisect.c:150,1
    - Dst: odb_read_object
      Src: /src/git/bisect.c:158,1
    - Dst: die
      Src: /src/git/bisect.c:165,1
    - Dst: _
      Src: /src/git/bisect.c:165,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:165,1
    - Dst: fprintf
      Src: /src/git/bisect.c:167,1
    - Dst: commit_weight_at
      Src: /src/git/bisect.c:171,1
    - Dst: fprintf
      Src: /src/git/bisect.c:172,1
    - Dst: weight
      Src: /src/git/bisect.c:172,1
    - Dst: fprintf
      Src: /src/git/bisect.c:174,1
    - Dst: fprintf
      Src: /src/git/bisect.c:175,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:175,1
    - Dst: fprintf
      Src: /src/git/bisect.c:177,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:178,1
    - Dst: find_commit_subject
      Src: /src/git/bisect.c:180,1
    - Dst: fprintf
      Src: /src/git/bisect.c:182,1
    - Dst: fprintf
      Src: /src/git/bisect.c:183,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - debug
    - counted
    - nr
    - list
    argTypes:
    - char*
    - int
    - int
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 142
    functionDepth: 12
    functionLinenumber: 142
    functionLinenumberEnd: 185
    functionName: show_list
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - commit_weight_at
    - weight
    - find_commit_subject
    - _
    - odb_read_object
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void show_list(const char *debug, int counted, int nr,\n\t\t      struct
      commit_list *list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: weight
      Src: /src/git/bisect.c:199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - struct commit_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 209
    functionName: best_bisection
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - weight
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *best_bisection(struct commit_list *list, int nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/bisect.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: compare_commit_dist
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - oidcmp
    linkageType: ''
    returnType: int
    signature: int compare_commit_dist(const void *a_, const void *b_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/bisect.c:230,1
    - Dst: weight
      Src: /src/git/bisect.c:240,1
    - Dst: QSORT
      Src: /src/git/bisect.c:247,1
    - Dst: strbuf_reset
      Src: /src/git/bisect.c:251,1
    - Dst: strbuf_addf
      Src: /src/git/bisect.c:252,1
    - Dst: add_name_decoration
      Src: /src/git/bisect.c:253,1
    - Dst: commit_list_free
      Src: /src/git/bisect.c:260,1
    - Dst: strbuf_release
      Src: /src/git/bisect.c:263,1
    - Dst: free
      Src: /src/git/bisect.c:264,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - struct commit_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 227
    functionDepth: 7
    functionLinenumber: 227
    functionLinenumberEnd: 266
    functionName: best_bisection_sorted
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - weight
    - strbuf_reset
    - strbuf_addf
    - add_name_decoration
    - QSORT
    - commit_list_free
    - xcalloc
    - free
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *best_bisection_sorted(struct commit_list *list,
      int nr)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: commit_weight_at
      Src: /src/git/bisect.c:294,1
    - Dst: count_interesting_parents
      Src: /src/git/bisect.c:295,1
    - Dst: weight_set
      Src: /src/git/bisect.c:298,1
    - Dst: show_list
      Src: /src/git/bisect.c:300,1
    - Dst: weight_set
      Src: /src/git/bisect.c:309,1
    - Dst: weight_set
      Src: /src/git/bisect.c:312,1
    - Dst: show_list
      Src: /src/git/bisect.c:317,1
    - Dst: weight
      Src: /src/git/bisect.c:336,1
    - Dst: BUG
      Src: /src/git/bisect.c:339,1
    - Dst: weight_set
      Src: /src/git/bisect.c:340,1
    - Dst: count_distance
      Src: /src/git/bisect.c:340,1
    - Dst: clear_distance
      Src: /src/git/bisect.c:341,1
    - Dst: approx_halfway
      Src: /src/git/bisect.c:345,1
    - Dst: show_list
      Src: /src/git/bisect.c:350,1
    - Dst: weight
      Src: /src/git/bisect.c:357,1
    - Dst: weight
      Src: /src/git/bisect.c:365,1
    - Dst: weight_set
      Src: /src/git/bisect.c:377,1
    - Dst: weight
      Src: /src/git/bisect.c:377,1
    - Dst: show_list
      Src: /src/git/bisect.c:379,1
    - Dst: weight_set
      Src: /src/git/bisect.c:383,1
    - Dst: weight
      Src: /src/git/bisect.c:383,1
    - Dst: approx_halfway
      Src: /src/git/bisect.c:387,1
    - Dst: show_list
      Src: /src/git/bisect.c:392,1
    - Dst: best_bisection
      Src: /src/git/bisect.c:395,1
    - Dst: best_bisection_sorted
      Src: /src/git/bisect.c:397,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 61
    argCount: 4
    argNames:
    - list
    - nr
    - weights
    - bisect_flags
    argTypes:
    - struct commit_list*
    - int
    - int*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 281
    functionDepth: 13
    functionLinenumber: 281
    functionLinenumberEnd: 398
    functionName: do_find_bisection
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - show_list
    - commit_weight_at
    - weight
    - count_distance
    - count_interesting_parents
    - clear_distance
    - best_bisection_sorted
    - best_bisection
    - weight_set
    - BUG
    - approx_halfway
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *do_find_bisection(struct commit_list *list,\n\t\t\t\t\t
      \    int nr, int *weights,\n\t\t\t\t\t     unsigned bisect_flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: show_list
      Src: /src/git/bisect.c:407,1
    - Dst: init_commit_weight
      Src: /src/git/bisect.c:408,1
    - Dst: free
      Src: /src/git/bisect.c:421,1
    - Dst: show_list
      Src: /src/git/bisect.c:431,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/bisect.c:434,1
    - Dst: do_find_bisection
      Src: /src/git/bisect.c:437,1
    - Dst: commit_list_free
      Src: /src/git/bisect.c:441,1
    - Dst: weight
      Src: /src/git/bisect.c:445,1
    - Dst: free
      Src: /src/git/bisect.c:449,1
    - Dst: clear_commit_weight
      Src: /src/git/bisect.c:450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - commit_list
    - reaches
    - all
    - bisect_flags
    argTypes:
    - struct commit_list**
    - int*
    - int*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 400
    functionDepth: 14
    functionLinenumber: 400
    functionLinenumberEnd: 451
    functionName: find_bisection
    functionSourceFile: /src/git/bisect.c
    functionUses: 1
    functionsReached:
    - show_list
    - weight
    - clear_commit_weight
    - commit_list_free
    - do_find_bisection
    - CALLOC_ARRAY
    - free
    - init_commit_weight
    linkageType: ''
    returnType: void
    signature: "void find_bisection(struct commit_list **commit_list, int *reaches,\n\t\t
      \   int *all, unsigned bisect_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/bisect.c:456,1
    - Dst: strbuf_addstr
      Src: /src/git/bisect.c:457,1
    - Dst: strcmp
      Src: /src/git/bisect.c:459,1
    - Dst: free
      Src: /src/git/bisect.c:460,1
    - Dst: xmalloc
      Src: /src/git/bisect.c:461,1
    - Dst: oidcpy
      Src: /src/git/bisect.c:462,1
    - Dst: starts_with
      Src: /src/git/bisect.c:463,1
    - Dst: oid_array_append
      Src: /src/git/bisect.c:464,1
    - Dst: starts_with
      Src: /src/git/bisect.c:465,1
    - Dst: oid_array_append
      Src: /src/git/bisect.c:466,1
    - Dst: strbuf_release
      Src: /src/git/bisect.c:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 472
    functionName: register_ref
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oidcpy
    - starts_with
    - xmalloc
    - strcmp
    - strbuf_addstr
    - free
    - oid_array_append
    linkageType: ''
    returnType: int
    signature: int register_ref(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/bisect.c:478,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/bisect.c:480,1
    - Dst: get_main_ref_store
      Src: /src/git/bisect.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 482
    functionName: read_bisect_refs
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - strlen
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int read_bisect_refs(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_path_bisect_names
      Src: /src/git/bisect.c:495,1
    - Dst: xfopen
      Src: /src/git/bisect.c:496,1
    - Dst: strbuf_getline_lf
      Src: /src/git/bisect.c:498,1
    - Dst: strbuf_trim
      Src: /src/git/bisect.c:499,1
    - Dst: sq_dequote_to_strvec
      Src: /src/git/bisect.c:500,1
    - Dst: die
      Src: /src/git/bisect.c:501,1
    - Dst: _
      Src: /src/git/bisect.c:501,1
    - Dst: strbuf_release
      Src: /src/git/bisect.c:505,1
    - Dst: fclose
      Src: /src/git/bisect.c:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 484
    functionDepth: 5
    functionLinenumber: 484
    functionLinenumberEnd: 507
    functionName: read_bisect_paths
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - sq_dequote_to_strvec
    - die
    - git_path_bisect_names
    - strbuf_trim
    - _
    - xfopen
    linkageType: ''
    returnType: void
    signature: void read_bisect_paths(struct strvec *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/bisect.c:515,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:515,1
    - Dst: strbuf_addch
      Src: /src/git/bisect.c:517,1
    - Dst: strbuf_detach
      Src: /src/git/bisect.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - array
    - delim
    argTypes:
    - struct oid_array*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 509
    functionDepth: 4
    functionLinenumber: 509
    functionLinenumberEnd: 521
    functionName: join_oid_array_hex
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - strbuf_detach
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *join_oid_array_hex(struct oid_array *array, char delim)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_lookup
      Src: /src/git/bisect.c:557,1
    - Dst: commit_list_free
      Src: /src/git/bisect.c:566,1
    - Dst: commit_list_free
      Src: /src/git/bisect.c:567,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 5
    argNames:
    - list
    - tried
    - show_all
    - count
    - skipped_first
    argTypes:
    - struct commit_list*
    - struct commit_list**
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 587
    functionName: filter_skipped
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - commit_list_free
    - oid_array_lookup
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *filter_skipped(struct commit_list *list,\n\t\t\t\t
      \  struct commit_list **tried,\n\t\t\t\t   int show_all,\n\t\t\t\t   int *count,\n\t\t\t\t
      \  int *skipped_first)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: get_prn
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned get_prn(unsigned count)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 621
    functionName: sqrti
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqrti(int val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_prn
      Src: /src/git/bisect.c:628,1
    - Dst: sqrti
      Src: /src/git/bisect.c:629,1
    - Dst: sqrti
      Src: /src/git/bisect.c:629,1
    - Dst: oideq
      Src: /src/git/bisect.c:636,1
    - Dst: free
      Src: /src/git/bisect.c:649,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - list
    - count
    argTypes:
    - struct commit_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 654
    functionName: skip_away
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - oideq
    - sqrti
    - get_prn
    - free
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *skip_away(struct commit_list *list, int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: filter_skipped
      Src: /src/git/bisect.c:666,1
    - Dst: skip_away
      Src: /src/git/bisect.c:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - list
    - tried
    argTypes:
    - struct commit_list*
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 672
    functionName: managed_skipped
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - filter_skipped
    - skip_away
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *managed_skipped(struct commit_list *list,\n\t\t\t\t\t
      \  struct commit_list **tried)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/bisect.c:682,1
    - Dst: strvec_push
      Src: /src/git/bisect.c:687,1
    - Dst: strvec_pushf
      Src: /src/git/bisect.c:688,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:688,1
    - Dst: strvec_pushf
      Src: /src/git/bisect.c:690,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:691,1
    - Dst: strvec_push
      Src: /src/git/bisect.c:692,1
    - Dst: read_bisect_paths
      Src: /src/git/bisect.c:694,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/bisect.c:696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - r
    - revs
    - rev_argv
    - prefix
    - bad_format
    - good_format
    - read_paths
    argTypes:
    - struct repository*
    - struct rev_info*
    - struct strvec*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 674
    functionDepth: 13
    functionLinenumber: 674
    functionLinenumberEnd: 697
    functionName: bisect_rev_setup
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - oid_to_hex
    - repo_init_revisions
    - read_bisect_paths
    - setup_revisions_from_strvec
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: "void bisect_rev_setup(struct repository *r, struct rev_info *revs,\n\t\t\t
      \    struct strvec *rev_argv,\n\t\t\t     const char *prefix,\n\t\t\t     const
      char *bad_format, const char *good_format,\n\t\t\t     int read_paths)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_revision_walk
      Src: /src/git/bisect.c:701,1
    - Dst: die
      Src: /src/git/bisect.c:702,1
    - Dst: mark_edges_uninteresting
      Src: /src/git/bisect.c:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 699
    functionDepth: 11
    functionLinenumber: 699
    functionLinenumberEnd: 705
    functionName: bisect_common
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - die
    - prepare_revision_walk
    - mark_edges_uninteresting
    linkageType: ''
    returnType: void
    signature: void bisect_common(struct rev_info *revs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/bisect.c:713,1
    - Dst: printf
      Src: /src/git/bisect.c:717,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:717,1
    - Dst: printf
      Src: /src/git/bisect.c:720,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:720,1
    - Dst: printf
      Src: /src/git/bisect.c:721,1
    - Dst: _
      Src: /src/git/bisect.c:721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tried
    - bad
    argTypes:
    - struct commit_list*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 724
    functionName: error_if_skipped_commits
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - printf
    - _
    linkageType: ''
    returnType: enum bisect_error
    signature: "enum bisect_error error_if_skipped_commits(struct commit_list *tried,\n\t\t\t\t
      \   const struct object_id *bad)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refs_read_ref
      Src: /src/git/bisect.c:729,1
    - Dst: get_main_ref_store
      Src: /src/git/bisect.c:729,1
    - Dst: oideq
      Src: /src/git/bisect.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 732
    functionName: is_expected_rev
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - refs_read_ref
    - oideq
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int is_expected_rev(const struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_update_ref
      Src: /src/git/bisect.c:741,1
    - Dst: get_main_ref_store
      Src: /src/git/bisect.c:741,1
    - Dst: refs_update_ref
      Src: /src/git/bisect.c:746,1
    - Dst: get_main_ref_store
      Src: /src/git/bisect.c:746,1
    - Dst: strvec_pushl
      Src: /src/git/bisect.c:753,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:754,1
    - Dst: run_command
      Src: /src/git/bisect.c:755,1
    - Dst: lookup_commit_reference
      Src: /src/git/bisect.c:764,1
    - Dst: repo_format_commit_message
      Src: /src/git/bisect.c:765,1
    - Dst: fputs
      Src: /src/git/bisect.c:767,1
    - Dst: strbuf_release
      Src: /src/git/bisect.c:768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - bisect_rev
    - no_checkout
    argTypes:
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 734
    functionDepth: 14
    functionLinenumber: 734
    functionLinenumberEnd: 771
    functionName: bisect_checkout
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - strbuf_release
    - oid_to_hex
    - fputs
    - run_command
    - lookup_commit_reference
    - strvec_pushl
    - refs_update_ref
    - get_main_ref_store
    linkageType: ''
    returnType: enum bisect_error
    signature: "enum bisect_error bisect_checkout(const struct object_id *bisect_rev,\n\t\t\t\t
      \ int no_checkout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference
      Src: /src/git/bisect.c:776,1
    - Dst: die
      Src: /src/git/bisect.c:778,1
    - Dst: _
      Src: /src/git/bisect.c:778,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: get_commit_reference
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - oid_to_hex
    - die
    - _
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *get_commit_reference(struct repository *r,\n\t\t\t\t\t
      \  const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/bisect.c:788,1
    - Dst: get_commit_reference
      Src: /src/git/bisect.c:789,1
    - Dst: get_commit_reference
      Src: /src/git/bisect.c:791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 795
    functionName: get_bad_and_good_commits
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - get_commit_reference
    linkageType: ''
    returnType: struct commit
    signature: "struct commit **get_bad_and_good_commits(struct repository *r,\n\t\t\t\t\t\tsize_t
      *rev_nr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_expected_rev
      Src: /src/git/bisect.c:799,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:800,1
    - Dst: join_oid_array_hex
      Src: /src/git/bisect.c:801,1
    - Dst: strcmp
      Src: /src/git/bisect.c:802,1
    - Dst: strcmp
      Src: /src/git/bisect.c:802,1
    - Dst: fprintf
      Src: /src/git/bisect.c:803,1
    - Dst: _
      Src: /src/git/bisect.c:803,1
    - Dst: strcmp
      Src: /src/git/bisect.c:807,1
    - Dst: strcmp
      Src: /src/git/bisect.c:807,1
    - Dst: fprintf
      Src: /src/git/bisect.c:808,1
    - Dst: _
      Src: /src/git/bisect.c:808,1
    - Dst: fprintf
      Src: /src/git/bisect.c:813,1
    - Dst: _
      Src: /src/git/bisect.c:813,1
    - Dst: free
      Src: /src/git/bisect.c:819,1
    - Dst: fprintf
      Src: /src/git/bisect.c:823,1
    - Dst: _
      Src: /src/git/bisect.c:823,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 797
    functionDepth: 5
    functionLinenumber: 797
    functionLinenumberEnd: 828
    functionName: handle_bad_merge_base
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - is_expected_rev
    - strcmp
    - free
    - join_oid_array_hex
    - fprintf
    - _
    linkageType: ''
    returnType: enum bisect_error
    signature: enum bisect_error handle_bad_merge_base(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:832,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:833,1
    - Dst: join_oid_array_hex
      Src: /src/git/bisect.c:834,1
    - Dst: warning
      Src: /src/git/bisect.c:836,1
    - Dst: _
      Src: /src/git/bisect.c:836,1
    - Dst: free
      Src: /src/git/bisect.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mb
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 830
    functionDepth: 5
    functionLinenumber: 830
    functionLinenumberEnd: 843
    functionName: handle_skipped_merge_base
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - free
    - join_oid_array_hex
    - warning
    - _
    linkageType: ''
    returnType: void
    signature: void handle_skipped_merge_base(const struct object_id *mb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_merge_bases_many
      Src: /src/git/bisect.c:863,1
    - Dst: exit
      Src: /src/git/bisect.c:865,1
    - Dst: oideq
      Src: /src/git/bisect.c:869,1
    - Dst: handle_bad_merge_base
      Src: /src/git/bisect.c:870,1
    - Dst: oid_array_lookup
      Src: /src/git/bisect.c:872,1
    - Dst: oid_array_lookup
      Src: /src/git/bisect.c:874,1
    - Dst: handle_skipped_merge_base
      Src: /src/git/bisect.c:875,1
    - Dst: printf
      Src: /src/git/bisect.c:877,1
    - Dst: _
      Src: /src/git/bisect.c:877,1
    - Dst: bisect_checkout
      Src: /src/git/bisect.c:878,1
    - Dst: commit_list_free
      Src: /src/git/bisect.c:886,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - rev_nr
    - rev
    - no_checkout
    argTypes:
    - size_t
    - struct commit**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 858
    functionDepth: 15
    functionLinenumber: 858
    functionLinenumberEnd: 888
    functionName: check_merge_bases
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - oid_array_lookup
    - exit
    - _
    - handle_skipped_merge_base
    - commit_list_free
    - handle_bad_merge_base
    - repo_get_merge_bases_many
    - printf
    - oideq
    - bisect_checkout
    linkageType: ''
    returnType: enum bisect_error
    signature: enum bisect_error check_merge_bases(size_t rev_nr, struct commit **rev,
      int no_checkout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bisect_rev_setup
      Src: /src/git/bisect.c:897,1
    - Dst: bisect_common
      Src: /src/git/bisect.c:899,1
    - Dst: clear_commit_marks_many
      Src: /src/git/bisect.c:903,1
    - Dst: release_revisions
      Src: /src/git/bisect.c:905,1
    - Dst: strvec_clear
      Src: /src/git/bisect.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - r
    - rev_nr
    - rev
    - prefix
    argTypes:
    - struct repository*
    - size_t
    - struct commit**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 890
    functionDepth: 14
    functionLinenumber: 890
    functionLinenumberEnd: 908
    functionName: check_ancestors
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - bisect_common
    - release_revisions
    - clear_commit_marks_many
    - strvec_clear
    - bisect_rev_setup
    linkageType: ''
    returnType: int
    signature: "int check_ancestors(struct repository *r, size_t rev_nr,\n\t\t\t   struct
      commit **rev, const char *prefix)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/bisect.c:931,1
    - Dst: _
      Src: /src/git/bisect.c:931,1
    - Dst: repo_git_path
      Src: /src/git/bisect.c:933,1
    - Dst: stat
      Src: /src/git/bisect.c:936,1
    - Dst: S_ISREG
      Src: /src/git/bisect.c:936,1
    - Dst: get_bad_and_good_commits
      Src: /src/git/bisect.c:945,1
    - Dst: check_ancestors
      Src: /src/git/bisect.c:946,1
    - Dst: check_merge_bases
      Src: /src/git/bisect.c:947,1
    - Dst: free
      Src: /src/git/bisect.c:948,1
    - Dst: open
      Src: /src/git/bisect.c:952,1
    - Dst: warning_errno
      Src: /src/git/bisect.c:961,1
    - Dst: _
      Src: /src/git/bisect.c:961,1
    - Dst: close
      Src: /src/git/bisect.c:964,1
    - Dst: free
      Src: /src/git/bisect.c:967,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - r
    - prefix
    - no_checkout
    argTypes:
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 919
    functionDepth: 16
    functionLinenumber: 919
    functionLinenumberEnd: 969
    functionName: check_good_are_ancestors_of_bad
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - repo_git_path
    - check_ancestors
    - open
    - check_merge_bases
    - stat
    - warning_errno
    - get_bad_and_good_commits
    - close
    - _
    - free
    - S_ISREG
    linkageType: ''
    returnType: enum bisect_error
    signature: "enum bisect_error check_good_are_ancestors_of_bad(struct repository
      *r,\n\t\t\t\t\t    const char *prefix,\n\t\t\t\t\t    int no_checkout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/bisect.c:986,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:993,1
    - Dst: run_command
      Src: /src/git/bisect.c:995,1
    - Dst: die
      Src: /src/git/bisect.c:996,1
    - Dst: _
      Src: /src/git/bisect.c:996,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 974
    functionDepth: 8
    functionLinenumber: 974
    functionLinenumberEnd: 998
    functionName: show_commit
    functionSourceFile: /src/git/bisect.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - die
    - run_command
    - strvec_pushl
    - _
    linkageType: ''
    returnType: void
    signature: void show_commit(struct commit *commit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_path_bisect_terms
      Src: /src/git/bisect.c:1008,1
    - Dst: fopen
      Src: /src/git/bisect.c:1009,1
    - Dst: free
      Src: /src/git/bisect.c:1013,1
    - Dst: xstrdup
      Src: /src/git/bisect.c:1014,1
    - Dst: free
      Src: /src/git/bisect.c:1015,1
    - Dst: xstrdup
      Src: /src/git/bisect.c:1016,1
    - Dst: die_errno
      Src: /src/git/bisect.c:1019,1
    - Dst: _
      Src: /src/git/bisect.c:1019,1
    - Dst: strbuf_getline_lf
      Src: /src/git/bisect.c:1022,1
    - Dst: free
      Src: /src/git/bisect.c:1023,1
    - Dst: strbuf_detach
      Src: /src/git/bisect.c:1024,1
    - Dst: strbuf_getline_lf
      Src: /src/git/bisect.c:1025,1
    - Dst: free
      Src: /src/git/bisect.c:1026,1
    - Dst: strbuf_detach
      Src: /src/git/bisect.c:1027,1
    - Dst: strbuf_release
      Src: /src/git/bisect.c:1029,1
    - Dst: fclose
      Src: /src/git/bisect.c:1030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - read_bad
    - read_good
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1005
    functionDepth: 5
    functionLinenumber: 1005
    functionLinenumberEnd: 1031
    functionName: read_bisect_terms
    functionSourceFile: /src/git/bisect.c
    functionUses: 1
    functionsReached:
    - git_path_bisect_terms
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - die_errno
    - fopen
    - strbuf_detach
    - free
    - _
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void read_bisect_terms(char **read_bad, char **read_good)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: refs_ref_exists
      Src: /src/git/bisect.c:1057,1
    - Dst: get_main_ref_store
      Src: /src/git/bisect.c:1057,1
    - Dst: read_bisect_terms
      Src: /src/git/bisect.c:1061,1
    - Dst: read_bisect_refs
      Src: /src/git/bisect.c:1062,1
    - Dst: die
      Src: /src/git/bisect.c:1063,1
    - Dst: _
      Src: /src/git/bisect.c:1063,1
    - Dst: file_exists
      Src: /src/git/bisect.c:1065,1
    - Dst: git_path_bisect_first_parent
      Src: /src/git/bisect.c:1065,1
    - Dst: check_good_are_ancestors_of_bad
      Src: /src/git/bisect.c:1071,1
    - Dst: bisect_rev_setup
      Src: /src/git/bisect.c:1075,1
    - Dst: bisect_common
      Src: /src/git/bisect.c:1080,1
    - Dst: find_bisection
      Src: /src/git/bisect.c:1082,1
    - Dst: managed_skipped
      Src: /src/git/bisect.c:1083,1
    - Dst: error_if_skipped_commits
      Src: /src/git/bisect.c:1090,1
    - Dst: printf
      Src: /src/git/bisect.c:1093,1
    - Dst: _
      Src: /src/git/bisect.c:1093,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:1094,1
    - Dst: fprintf
      Src: /src/git/bisect.c:1103,1
    - Dst: _
      Src: /src/git/bisect.c:1103,1
    - Dst: oideq
      Src: /src/git/bisect.c:1112,1
    - Dst: error_if_skipped_commits
      Src: /src/git/bisect.c:1113,1
    - Dst: printf
      Src: /src/git/bisect.c:1116,1
    - Dst: oid_to_hex
      Src: /src/git/bisect.c:1116,1
    - Dst: show_commit
      Src: /src/git/bisect.c:1119,1
    - Dst: estimate_bisect_steps
      Src: /src/git/bisect.c:1132,1
    - Dst: xstrfmt
      Src: /src/git/bisect.c:1134,1
    - Dst: Q_
      Src: /src/git/bisect.c:1134,1
    - Dst: printf
      Src: /src/git/bisect.c:1140,1
    - Dst: Q_
      Src: /src/git/bisect.c:1140,1
    - Dst: free
      Src: /src/git/bisect.c:1143,1
    - Dst: repo_clear_commit_marks
      Src: /src/git/bisect.c:1145,1
    - Dst: bisect_checkout
      Src: /src/git/bisect.c:1147,1
    - Dst: commit_list_free
      Src: /src/git/bisect.c:1149,1
    - Dst: release_revisions
      Src: /src/git/bisect.c:1150,1
    - Dst: strvec_clear
      Src: /src/git/bisect.c:1151,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 2
    argNames:
    - r
    - prefix
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1044
    functionDepth: 17
    functionLinenumber: 1044
    functionLinenumberEnd: 1153
    functionName: bisect_next_all
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - bisect_common
    - error_if_skipped_commits
    - free
    - file_exists
    - printf
    - get_main_ref_store
    - die
    - release_revisions
    - repo_clear_commit_marks
    - find_bisection
    - git_path_bisect_first_parent
    - Q_
    - refs_ref_exists
    - oid_to_hex
    - read_bisect_terms
    - show_commit
    - _
    - estimate_bisect_steps
    - managed_skipped
    - bisect_rev_setup
    - read_bisect_refs
    - xstrfmt
    - check_good_are_ancestors_of_bad
    - commit_list_free
    - strvec_clear
    - bisect_checkout
    - fprintf
    - oideq
    linkageType: ''
    returnType: enum bisect_error
    signature: enum bisect_error bisect_next_all(struct repository *r, const char
      *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1158
    functionName: exp2i
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int exp2i(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log2u
      Src: /src/git/bisect.c:1177,1
    - Dst: exp2i
      Src: /src/git/bisect.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - all
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1182
    functionName: estimate_bisect_steps
    functionSourceFile: /src/git/bisect.c
    functionUses: 1
    functionsReached:
    - exp2i
    - log2u
    linkageType: ''
    returnType: int
    signature: int estimate_bisect_steps(int all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/bisect.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1189
    functionName: mark_for_removal
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int mark_for_removal(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_ref_ext
      Src: /src/git/bisect.c:1200,1
    - Dst: get_main_ref_store
      Src: /src/git/bisect.c:1200,1
    - Dst: string_list_append
      Src: /src/git/bisect.c:1202,1
    - Dst: string_list_append
      Src: /src/git/bisect.c:1203,1
    - Dst: refs_delete_refs
      Src: /src/git/bisect.c:1204,1
    - Dst: get_main_ref_store
      Src: /src/git/bisect.c:1204,1
    - Dst: string_list_clear
      Src: /src/git/bisect.c:1207,1
    - Dst: unlink_or_warn
      Src: /src/git/bisect.c:1208,1
    - Dst: git_path_bisect_ancestors_ok
      Src: /src/git/bisect.c:1208,1
    - Dst: unlink_or_warn
      Src: /src/git/bisect.c:1209,1
    - Dst: git_path_bisect_log
      Src: /src/git/bisect.c:1209,1
    - Dst: unlink_or_warn
      Src: /src/git/bisect.c:1210,1
    - Dst: git_path_bisect_names
      Src: /src/git/bisect.c:1210,1
    - Dst: unlink_or_warn
      Src: /src/git/bisect.c:1211,1
    - Dst: git_path_bisect_run
      Src: /src/git/bisect.c:1211,1
    - Dst: unlink_or_warn
      Src: /src/git/bisect.c:1212,1
    - Dst: git_path_bisect_terms
      Src: /src/git/bisect.c:1212,1
    - Dst: unlink_or_warn
      Src: /src/git/bisect.c:1213,1
    - Dst: git_path_bisect_first_parent
      Src: /src/git/bisect.c:1213,1
    - Dst: unlink_or_warn
      Src: /src/git/bisect.c:1218,1
    - Dst: git_path_bisect_start
      Src: /src/git/bisect.c:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1191
    functionDepth: 8
    functionLinenumber: 1191
    functionLinenumberEnd: 1221
    functionName: bisect_clean_state
    functionSourceFile: /src/git/bisect.c
    functionUses: 0
    functionsReached:
    - git_path_bisect_terms
    - string_list_clear
    - unlink_or_warn
    - refs_for_each_ref_ext
    - git_path_bisect_ancestors_ok
    - git_path_bisect_names
    - string_list_append
    - git_path_bisect_first_parent
    - refs_delete_refs
    - git_path_bisect_log
    - git_path_bisect_start
    - git_path_bisect_run
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int bisect_clean_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - st_size
    argTypes:
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 21
    functionName: munge_st_size
    functionSourceFile: /src/git/statinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int munge_st_size(off_t st_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ST_CTIME_NSEC
      Src: /src/git/statinfo.c:27,1
    - Dst: ST_MTIME_NSEC
      Src: /src/git/statinfo.c:28,1
    - Dst: munge_st_size
      Src: /src/git/statinfo.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - sd
    - st
    argTypes:
    - struct stat_data*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: fill_stat_data
    functionSourceFile: /src/git/statinfo.c
    functionUses: 3
    functionsReached:
    - ST_CTIME_NSEC
    - ST_MTIME_NSEC
    - munge_st_size
    linkageType: ''
    returnType: void
    signature: void fill_stat_data(struct stat_data *sd, struct stat *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - st
    - sd
    argTypes:
    - struct stat*
    - struct stat_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: set_times
    functionSourceFile: /src/git/statinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_times(struct stat *st, const struct stat_data *sd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_times
      Src: /src/git/statinfo.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - sd
    - st
    argTypes:
    - struct stat_data*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: fake_lstat_data
    functionSourceFile: /src/git/statinfo.c
    functionUses: 1
    functionsReached:
    - set_times
    linkageType: ''
    returnType: void
    signature: void fake_lstat_data(const struct stat_data *sd, struct stat *st)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ST_MTIME_NSEC
      Src: /src/git/statinfo.c:74,1
    - Dst: ST_CTIME_NSEC
      Src: /src/git/statinfo.c:77,1
    - Dst: munge_st_size
      Src: /src/git/statinfo.c:99,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 20
    argCount: 2
    argNames:
    - sd
    - st
    argTypes:
    - struct stat_data*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 103
    functionName: match_stat_data
    functionSourceFile: /src/git/statinfo.c
    functionUses: 3
    functionsReached:
    - ST_CTIME_NSEC
    - ST_MTIME_NSEC
    - munge_st_size
    linkageType: ''
    returnType: int
    signature: int match_stat_data(const struct stat_data *sd, struct stat *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/statinfo.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sv
    argTypes:
    - struct stat_validity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: stat_validity_clear
    functionSourceFile: /src/git/statinfo.c
    functionUses: 1
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void stat_validity_clear(struct stat_validity *sv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/statinfo.c:114,1
    - Dst: S_ISREG
      Src: /src/git/statinfo.c:118,1
    - Dst: match_stat_data
      Src: /src/git/statinfo.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - sv
    - path
    argTypes:
    - struct stat_validity*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: stat_validity_check
    functionSourceFile: /src/git/statinfo.c
    functionUses: 0
    functionsReached:
    - match_stat_data
    - stat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int stat_validity_check(struct stat_validity *sv, const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/git/statinfo.c:125,1
    - Dst: S_ISREG
      Src: /src/git/statinfo.c:125,1
    - Dst: stat_validity_clear
      Src: /src/git/statinfo.c:126,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/statinfo.c:129,1
    - Dst: fill_stat_data
      Src: /src/git/statinfo.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - sv
    - fd
    argTypes:
    - struct stat_validity*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: stat_validity_update
    functionSourceFile: /src/git/statinfo.c
    functionUses: 0
    functionsReached:
    - fstat
    - stat_validity_clear
    - fill_stat_data
    - CALLOC_ARRAY
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void stat_validity_update(struct stat_validity *sv, int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/read-cache.h:12,1
    - Dst: S_ISLNK
      Src: /src/git/read-cache.h:13,1
    - Dst: S_ISREG
      Src: /src/git/read-cache.h:15,1
    - Dst: S_ISREG
      Src: /src/git/read-cache.h:16,1
    - Dst: create_ce_mode
      Src: /src/git/read-cache.h:18,1
    - Dst: create_ce_mode
      Src: /src/git/read-cache.h:20,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - ce
    - mode
    argTypes:
    - struct cache_entry*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 8
    functionDepth: 2
    functionLinenumber: 8
    functionLinenumberEnd: 21
    functionName: ce_mode_from_stat
    functionSourceFile: /src/git/read-cache.h
    functionUses: 4
    functionsReached:
    - S_ISLNK
    - create_ce_mode
    - S_ISREG
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int ce_mode_from_stat(const struct cache_entry *ce,\n\t\t\t\t\t
      \    unsigned int mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/git/read-cache.h:25,1
    - Dst: S_ISREG
      Src: /src/git/read-cache.h:26,1
    - Dst: S_ISDIR
      Src: /src/git/read-cache.h:28,1
    - Dst: S_ISGITLINK
      Src: /src/git/read-cache.h:28,1
    - Dst: S_ISLNK
      Src: /src/git/read-cache.h:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ce
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: ce_to_dtype
    functionSourceFile: /src/git/read-cache.h
    functionUses: 2
    functionsReached:
    - S_ISDIR
    - S_ISLNK
    - ntohl
    - S_ISGITLINK
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int ce_to_dtype(const struct cache_entry *ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_pathspec
      Src: /src/git/read-cache.h:41,1
    - Dst: ce_namelen
      Src: /src/git/read-cache.h:41,1
    - Dst: S_ISDIR
      Src: /src/git/read-cache.h:42,1
    - Dst: S_ISGITLINK
      Src: /src/git/read-cache.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - istate
    - ce
    - pathspec
    - seen
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - struct pathspec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: ce_path_match
    functionSourceFile: /src/git/read-cache.h
    functionUses: 7
    functionsReached:
    - ce_namelen
    - S_ISDIR
    - S_ISGITLINK
    - match_pathspec
    linkageType: ''
    returnType: int
    signature: "int ce_path_match(struct index_state *istate,\n\t\t\t\tconst struct
      cache_entry *ce,\n\t\t\t\tconst struct pathspec *pathspec,\n\t\t\t\tchar *seen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/oid-array.c:9,1
    - Dst: oidcpy
      Src: /src/git/oid-array.c:10,1
    - Dst: oid_set_algo
      Src: /src/git/oid-array.c:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - array
    - oid
    argTypes:
    - struct oid_array*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 7
    functionDepth: 2
    functionLinenumber: 7
    functionLinenumberEnd: 14
    functionName: oid_array_append
    functionSourceFile: /src/git/oid-array.c
    functionUses: 19
    functionsReached:
    - oid_set_algo
    - ALLOC_GROW
    - oidcpy
    linkageType: ''
    returnType: void
    signature: void oid_array_append(struct oid_array *array, const struct object_id
      *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/oid-array.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: void_hashcmp
    functionSourceFile: /src/git/oid-array.c
    functionUses: 0
    functionsReached:
    - oidcmp
    linkageType: ''
    returnType: int
    signature: int void_hashcmp(const void *va, const void *vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/oid-array.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: oid_array_sort
    functionSourceFile: /src/git/oid-array.c
    functionUses: 1
    functionsReached:
    - QSORT
    linkageType: ''
    returnType: void
    signature: void oid_array_sort(struct oid_array *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - table
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: oid_access
    functionSourceFile: /src/git/oid-array.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *oid_access(size_t index, const void *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_sort
      Src: /src/git/oid-array.c:43,1
    - Dst: oid_pos
      Src: /src/git/oid-array.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array
    - oid
    argTypes:
    - struct oid_array*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: oid_array_lookup
    functionSourceFile: /src/git/oid-array.c
    functionUses: 3
    functionsReached:
    - oid_pos
    - oid_array_sort
    linkageType: ''
    returnType: int
    signature: int oid_array_lookup(struct oid_array *array, const struct object_id
      *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/oid-array.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: oid_array_clear
    functionSourceFile: /src/git/oid-array.c
    functionUses: 18
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void oid_array_clear(struct oid_array *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/oid-array.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - array
    - fn
    - data
    argTypes:
    - struct oid_array*
    - for_each_oid_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: oid_array_for_each
    functionSourceFile: /src/git/oid-array.c
    functionUses: 2
    functionsReached:
    - fn
    linkageType: ''
    returnType: int
    signature: "int oid_array_for_each(struct oid_array *array,\n\t\t       for_each_oid_fn
      fn,\n\t\t       void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_sort
      Src: /src/git/oid-array.c:78,1
    - Dst: oid_array_next_unique
      Src: /src/git/oid-array.c:80,1
    - Dst: fn
      Src: /src/git/oid-array.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - array
    - fn
    - data
    argTypes:
    - struct oid_array*
    - for_each_oid_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: oid_array_for_each_unique
    functionSourceFile: /src/git/oid-array.c
    functionUses: 1
    functionsReached:
    - oid_array_next_unique
    - fn
    - oid_array_sort
    linkageType: ''
    returnType: int
    signature: "int oid_array_for_each_unique(struct oid_array *array,\n\t\t\t      for_each_oid_fn
      fn,\n\t\t\t      void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: want
      Src: /src/git/oid-array.c:96,1
    - Dst: oidcpy
      Src: /src/git/oid-array.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - array
    - want
    - cb_data
    argTypes:
    - struct oid_array*
    - for_each_oid_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 103
    functionName: oid_array_filter
    functionSourceFile: /src/git/oid-array.c
    functionUses: 0
    functionsReached:
    - want
    - oidcpy
    linkageType: ''
    returnType: void
    signature: "void oid_array_filter(struct oid_array *array,\n\t\t      for_each_oid_fn
      want,\n\t\t      void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 5
    argNames:
    - name_a
    - len_a
    - name_b
    - len_b
    - previous_slash
    argTypes:
    - char*
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 42
    functionName: longest_path_match
    functionSourceFile: /src/git/symlinks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int longest_path_match(const char *name_a, int len_a,\n\t\t\t      const
      char *name_b, int len_b,\n\t\t\t      int *previous_slash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/symlinks.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct cache_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: reset_lstat_cache
    functionSourceFile: /src/git/symlinks.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    linkageType: ''
    returnType: void
    signature: void reset_lstat_cache(struct cache_def *cache)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: reset_lstat_cache
      Src: /src/git/symlinks.c:92,1
    - Dst: longest_path_match
      Src: /src/git/symlinks.c:102,1
    - Dst: strbuf_grow
      Src: /src/git/symlinks.c:131,1
    - Dst: stat
      Src: /src/git/symlinks.c:143,1
    - Dst: lstat
      Src: /src/git/symlinks.c:145,1
    - Dst: S_ISDIR
      Src: /src/git/symlinks.c:152,1
    - Dst: S_ISLNK
      Src: /src/git/symlinks.c:155,1
    - Dst: reset_lstat_cache
      Src: /src/git/symlinks.c:189,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 6
    argNames:
    - cache
    - name
    - len
    - ret_flags
    - track_flags
    - prefix_len_stat_func
    argTypes:
    - struct cache_def*
    - char*
    - int
    - unsigned int*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 194
    functionName: lstat_cache_matchlen
    functionSourceFile: /src/git/symlinks.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - S_ISLNK
    - stat
    - reset_lstat_cache
    - longest_path_match
    - strbuf_grow
    - lstat
    linkageType: ''
    returnType: int
    signature: "int lstat_cache_matchlen(struct cache_def *cache,\n\t\t\t\tconst char
      *name, int len,\n\t\t\t\tunsigned int *ret_flags, unsigned int track_flags,\n\t\t\t\tint
      prefix_len_stat_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lstat_cache_matchlen
      Src: /src/git/symlinks.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - cache
    - name
    - len
    - track_flags
    - prefix_len_stat_func
    argTypes:
    - struct cache_def*
    - char*
    - int
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 203
    functionName: lstat_cache
    functionSourceFile: /src/git/symlinks.c
    functionUses: 5
    functionsReached:
    - lstat_cache_matchlen
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int lstat_cache(struct cache_def *cache, const char *name,
      int len,\n\t\t       unsigned int track_flags, int prefix_len_stat_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lstat_cache
      Src: /src/git/symlinks.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cache
    - name
    - len
    argTypes:
    - struct cache_def*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: threaded_has_symlink_leading_path
    functionSourceFile: /src/git/symlinks.c
    functionUses: 0
    functionsReached:
    - lstat_cache
    linkageType: ''
    returnType: int
    signature: int threaded_has_symlink_leading_path(struct cache_def *cache, const
      char *name, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: threaded_has_symlink_leading_path
      Src: /src/git/symlinks.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: has_symlink_leading_path
    functionSourceFile: /src/git/symlinks.c
    functionUses: 7
    functionsReached:
    - threaded_has_symlink_leading_path
    linkageType: ''
    returnType: int
    signature: int has_symlink_leading_path(const char *name, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: threaded_check_leading_path
      Src: /src/git/symlinks.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - len
    - warn_on_lstat_err
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: check_leading_path
    functionSourceFile: /src/git/symlinks.c
    functionUses: 3
    functionsReached:
    - threaded_check_leading_path
    linkageType: ''
    returnType: int
    signature: int check_leading_path(const char *name, int len, int warn_on_lstat_err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lstat_cache_matchlen
      Src: /src/git/symlinks.c:239,1
    - Dst: xmemdupz
      Src: /src/git/symlinks.c:248,1
    - Dst: warning_errno
      Src: /src/git/symlinks.c:250,1
    - Dst: _
      Src: /src/git/symlinks.c:250,1
    - Dst: free
      Src: /src/git/symlinks.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - cache
    - name
    - len
    - warn_on_lstat_err
    argTypes:
    - struct cache_def*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 235
    functionDepth: 10
    functionLinenumber: 235
    functionLinenumberEnd: 254
    functionName: threaded_check_leading_path
    functionSourceFile: /src/git/symlinks.c
    functionUses: 1
    functionsReached:
    - xmemdupz
    - warning_errno
    - free
    - lstat_cache_matchlen
    - _
    linkageType: ''
    returnType: int
    signature: "int threaded_check_leading_path(struct cache_def *cache, const char
      *name,\n\t\t\t\t       int len, int warn_on_lstat_err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: threaded_has_dirs_only_path
      Src: /src/git/symlinks.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - len
    - prefix_len
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: has_dirs_only_path
    functionSourceFile: /src/git/symlinks.c
    functionUses: 3
    functionsReached:
    - threaded_has_dirs_only_path
    linkageType: ''
    returnType: int
    signature: int has_dirs_only_path(const char *name, int len, int prefix_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lstat_cache
      Src: /src/git/symlinks.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cache
    - name
    - len
    - prefix_len
    argTypes:
    - struct cache_def*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 4
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: threaded_has_dirs_only_path
    functionSourceFile: /src/git/symlinks.c
    functionUses: 1
    functionsReached:
    - lstat_cache
    linkageType: ''
    returnType: int
    signature: int threaded_has_dirs_only_path(struct cache_def *cache, const char
      *name, int len, int prefix_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/symlinks.c:289,1
    - Dst: rmdir
      Src: /src/git/symlinks.c:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - new_len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 298
    functionName: do_remove_scheduled_dirs
    functionSourceFile: /src/git/symlinks.c
    functionUses: 0
    functionsReached:
    - rmdir
    - strcmp
    linkageType: ''
    returnType: void
    signature: void do_remove_scheduled_dirs(int new_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/symlinks.c:305,1
    - Dst: longest_path_match
      Src: /src/git/symlinks.c:309,1
    - Dst: do_remove_scheduled_dirs
      Src: /src/git/symlinks.c:324,1
    - Dst: strbuf_add
      Src: /src/git/symlinks.c:330,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 331
    functionName: schedule_dir_for_removal
    functionSourceFile: /src/git/symlinks.c
    functionUses: 1
    functionsReached:
    - longest_path_match
    - do_remove_scheduled_dirs
    - strbuf_add
    - strcmp
    linkageType: ''
    returnType: void
    signature: void schedule_dir_for_removal(const char *name, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_remove_scheduled_dirs
      Src: /src/git/symlinks.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: remove_scheduled_dirs
    functionSourceFile: /src/git/symlinks.c
    functionUses: 3
    functionsReached:
    - do_remove_scheduled_dirs
    linkageType: ''
    returnType: void
    signature: void remove_scheduled_dirs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_lstat_cache
      Src: /src/git/symlinks.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: invalidate_lstat_cache
    functionSourceFile: /src/git/symlinks.c
    functionUses: 4
    functionsReached:
    - reset_lstat_cache
    linkageType: ''
    returnType: void
    signature: void invalidate_lstat_cache(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rmdir
      Src: /src/git/symlinks.c:347,1
    - Dst: invalidate_lstat_cache
      Src: /src/git/symlinks.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 353
    functionName: lstat_cache_aware_rmdir
    functionSourceFile: /src/git/symlinks.c
    functionUses: 0
    functionsReached:
    - rmdir
    - invalidate_lstat_cache
    linkageType: ''
    returnType: int
    signature: int lstat_cache_aware_rmdir(const char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: peel_object_ext
      Src: /src/git/commit.c:50,1
    - Dst: error
      Src: /src/git/commit.c:63,1
    - Dst: _
      Src: /src/git/commit.c:63,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:64,1
    - Dst: type_name
      Src: /src/git/commit.c:64,1
    - Dst: type_name
      Src: /src/git/commit.c:65,1
    - Dst: lookup_commit
      Src: /src/git/commit.c:69,1
    - Dst: repo_parse_commit_gently
      Src: /src/git/commit.c:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - r
    - oid
    - quiet
    argTypes:
    - struct repository*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 74
    functionName: lookup_commit_reference_gently
    functionSourceFile: /src/git/commit.c
    functionUses: 15
    functionsReached:
    - error
    - oid_to_hex
    - peel_object_ext
    - lookup_commit
    - _
    - type_name
    - repo_parse_commit_gently
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *lookup_commit_reference_gently(struct repository *r,\n\t\tconst
      struct object_id *oid, int quiet)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference_gently
      Src: /src/git/commit.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: lookup_commit_reference
    functionSourceFile: /src/git/commit.c
    functionUses: 17
    functionsReached:
    - lookup_commit_reference_gently
    linkageType: ''
    returnType: struct commit
    signature: struct commit *lookup_commit_reference(struct repository *r, const
      struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference
      Src: /src/git/commit.c:83,1
    - Dst: die
      Src: /src/git/commit.c:85,1
    - Dst: _
      Src: /src/git/commit.c:85,1
    - Dst: oideq
      Src: /src/git/commit.c:86,1
    - Dst: warning
      Src: /src/git/commit.c:87,1
    - Dst: _
      Src: /src/git/commit.c:87,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - oid
    - ref_name
    argTypes:
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 7
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: lookup_commit_or_die
    functionSourceFile: /src/git/commit.c
    functionUses: 3
    functionsReached:
    - oid_to_hex
    - die
    - lookup_commit_reference
    - _
    - warning
    - oideq
    linkageType: ''
    returnType: struct commit
    signature: struct commit *lookup_commit_or_die(const struct object_id *oid, const
      char *ref_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/commit.c:96,1
    - Dst: object_as_type
      Src: /src/git/commit.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: lookup_commit_object
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - object_as_type
    - parse_object
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *lookup_commit_object(struct repository *r,\n\t\t\t\t
      \   const struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/commit.c:103,1
    - Dst: create_object
      Src: /src/git/commit.c:105,1
    - Dst: alloc_commit_node
      Src: /src/git/commit.c:105,1
    - Dst: object_as_type
      Src: /src/git/commit.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: lookup_commit
    functionSourceFile: /src/git/commit.c
    functionUses: 21
    functionsReached:
    - alloc_commit_node
    - lookup_object
    - object_as_type
    - create_object
    linkageType: ''
    returnType: struct commit
    signature: struct commit *lookup_commit(struct repository *r, const struct object_id
      *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference_by_name_gently
      Src: /src/git/commit.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: lookup_commit_reference_by_name
    functionSourceFile: /src/git/commit.c
    functionUses: 7
    functionsReached:
    - lookup_commit_reference_by_name_gently
    linkageType: ''
    returnType: struct commit
    signature: struct commit *lookup_commit_reference_by_name(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_committish
      Src: /src/git/commit.c:120,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/commit.c:122,1
    - Dst: repo_parse_commit
      Src: /src/git/commit.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - name
    - quiet
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 6
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: lookup_commit_reference_by_name_gently
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - repo_parse_commit
    - lookup_commit_reference_gently
    - repo_get_oid_committish
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *lookup_commit_reference_by_name_gently(const char *name,\n\t\t\t\t\t\t
      \     int quiet)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/commit.c:135,1
    - Dst: memcmp
      Src: /src/git/commit.c:141,1
    - Dst: memchr
      Src: /src/git/commit.c:150,1
    - Dst: isspace
      Src: /src/git/commit.c:175,1
    - Dst: isdigit
      Src: /src/git/commit.c:177,1
    - Dst: parse_timestamp
      Src: /src/git/commit.c:193,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 2
    argNames:
    - buf
    - tail
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 194
    functionName: parse_commit_date
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - isspace
    - memchr
    - isdigit
    - parse_timestamp
    - memcmp
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t parse_commit_date(const char *buf, const char *tail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - table
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: commit_graft_oid_access
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *commit_graft_oid_access(size_t index, const void
      *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_pos
      Src: /src/git/commit.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: commit_graft_pos
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - oid_pos
    linkageType: ''
    returnType: int
    signature: int commit_graft_pos(struct repository *r, const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit
      Src: /src/git/commit.c:211,1
    - Dst: commit_list_free
      Src: /src/git/commit.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: unparse_commit
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - commit_list_free
    - lookup_commit
    linkageType: ''
    returnType: void
    signature: void unparse_commit(struct repository *r, const struct object_id *oid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_graft_pos
      Src: /src/git/commit.c:223,1
    - Dst: free
      Src: /src/git/commit.c:227,1
    - Dst: free
      Src: /src/git/commit.c:229,1
    - Dst: ALLOC_GROW
      Src: /src/git/commit.c:235,1
    - Dst: memmove
      Src: /src/git/commit.c:240,1
    - Dst: unparse_commit
      Src: /src/git/commit.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - r
    - graft
    - ignore_dups
    argTypes:
    - struct repository*
    - struct commit_graft*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 220
    functionDepth: 5
    functionLinenumber: 220
    functionLinenumberEnd: 247
    functionName: register_commit_graft
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - unparse_commit
    - commit_graft_pos
    - ALLOC_GROW
    - free
    - memmove
    linkageType: ''
    returnType: int
    signature: "int register_commit_graft(struct repository *r, struct commit_graft
      *graft,\n\t\t\t  int ignore_dups)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_rtrim
      Src: /src/git/commit.c:257,1
    - Dst: parse_oid_hex
      Src: /src/git/commit.c:266,1
    - Dst: isspace
      Src: /src/git/commit.c:270,1
    - Dst: parse_oid_hex
      Src: /src/git/commit.c:270,1
    - Dst: xmalloc
      Src: /src/git/commit.c:274,1
    - Dst: st_add
      Src: /src/git/commit.c:274,1
    - Dst: st_mult
      Src: /src/git/commit.c:275,1
    - Dst: error
      Src: /src/git/commit.c:282,1
    - Dst: assert
      Src: /src/git/commit.c:283,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - line
    argTypes:
    - struct strbuf*
    assertStmts:
    - condition: (!graft)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/git/commit.c
    constantsTouched: []
    func_position:
      end: 285
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 285
    functionName: read_graft_line
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - isspace
    - error
    - assert
    - xmalloc
    - parse_oid_hex
    - st_add
    - st_mult
    - strbuf_rtrim
    linkageType: ''
    returnType: struct commit_graft
    signature: struct commit_graft *read_graft_line(struct strbuf *line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen_or_warn
      Src: /src/git/commit.c:289,1
    - Dst: advice_enabled
      Src: /src/git/commit.c:294,1
    - Dst: advise
      Src: /src/git/commit.c:295,1
    - Dst: _
      Src: /src/git/commit.c:295,1
    - Dst: strbuf_getwholeline
      Src: /src/git/commit.c:303,1
    - Dst: read_graft_line
      Src: /src/git/commit.c:305,1
    - Dst: register_commit_graft
      Src: /src/git/commit.c:308,1
    - Dst: error
      Src: /src/git/commit.c:309,1
    - Dst: fclose
      Src: /src/git/commit.c:311,1
    - Dst: strbuf_release
      Src: /src/git/commit.c:312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - r
    - graft_file
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 287
    functionDepth: 6
    functionLinenumber: 287
    functionLinenumberEnd: 314
    functionName: read_graft_file
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - error
    - fclose
    - read_graft_line
    - strbuf_release
    - fopen_or_warn
    - register_commit_graft
    - _
    - advise
    - advice_enabled
    linkageType: ''
    returnType: int
    signature: int read_graft_file(struct repository *r, const char *graft_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_graft_file
      Src: /src/git/commit.c:325,1
    - Dst: read_graft_file
      Src: /src/git/commit.c:326,1
    - Dst: is_repository_shallow
      Src: /src/git/commit.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 316
    functionDepth: 7
    functionLinenumber: 316
    functionLinenumberEnd: 330
    functionName: prepare_commit_graft
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - read_graft_file
    - is_repository_shallow
    - repo_get_graft_file
    linkageType: ''
    returnType: void
    signature: void prepare_commit_graft(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_commit_graft
      Src: /src/git/commit.c:335,1
    - Dst: commit_graft_pos
      Src: /src/git/commit.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 332
    functionDepth: 8
    functionLinenumber: 332
    functionLinenumberEnd: 340
    functionName: lookup_commit_graft
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - commit_graft_pos
    - prepare_commit_graft
    linkageType: ''
    returnType: struct commit_graft
    signature: struct commit_graft *lookup_commit_graft(struct repository *r, const
      struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/commit.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - fn
    - cb_data
    argTypes:
    - each_commit_graft_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: for_each_commit_graft
    functionSourceFile: /src/git/commit.c
    functionUses: 3
    functionsReached:
    - fn
    linkageType: ''
    returnType: int
    signature: int for_each_commit_graft(each_commit_graft_fn fn, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/commit.c:358,1
    - Dst: init_buffer_slab
      Src: /src/git/commit.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: allocate_commit_buffer_slab
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - init_buffer_slab
    linkageType: ''
    returnType: struct buffer_slab
    signature: struct buffer_slab *allocate_commit_buffer_slab(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_buffer_slab
      Src: /src/git/commit.c:365,1
    - Dst: free
      Src: /src/git/commit.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bs
    argTypes:
    - struct buffer_slab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: free_commit_buffer_slab
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - clear_buffer_slab
    - free
    linkageType: ''
    returnType: void
    signature: void free_commit_buffer_slab(struct buffer_slab *bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_slab_at
      Src: /src/git/commit.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - commit
    - buffer
    - size
    argTypes:
    - struct repository*
    - struct commit*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: set_commit_buffer
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - buffer_slab_at
    linkageType: ''
    returnType: void
    signature: void set_commit_buffer(struct repository *r, struct commit *commit,
      void *buffer, unsigned long size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: buffer_slab_peek
      Src: /src/git/commit.c:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - r
    - commit
    - sizep
    argTypes:
    - struct repository*
    - struct commit*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: get_cached_commit_buffer
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - buffer_slab_peek
    linkageType: ''
    returnType: void
    signature: void *get_cached_commit_buffer(struct repository *r, const struct commit
      *commit, unsigned long *sizep)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_cached_commit_buffer
      Src: /src/git/commit.c:395,1
    - Dst: odb_read_object
      Src: /src/git/commit.c:399,1
    - Dst: die
      Src: /src/git/commit.c:401,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:402,1
    - Dst: die
      Src: /src/git/commit.c:404,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:405,1
    - Dst: type_name
      Src: /src/git/commit.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - r
    - commit
    - sizep
    argTypes:
    - struct repository*
    - struct commit*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 391
    functionDepth: 12
    functionLinenumber: 391
    functionLinenumberEnd: 410
    functionName: repo_get_commit_buffer
    functionSourceFile: /src/git/commit.c
    functionUses: 4
    functionsReached:
    - oid_to_hex
    - die
    - type_name
    - odb_read_object
    - get_cached_commit_buffer
    linkageType: ''
    returnType: void
    signature: "void *repo_get_commit_buffer(struct repository *r,\n\t\t\t\t   const
      struct commit *commit,\n\t\t\t\t   unsigned long *sizep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buffer_slab_peek
      Src: /src/git/commit.c:416,1
    - Dst: free
      Src: /src/git/commit.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - r
    - commit
    - buffer
    argTypes:
    - struct repository*
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 420
    functionName: repo_unuse_commit_buffer
    functionSourceFile: /src/git/commit.c
    functionUses: 17
    functionsReached:
    - buffer_slab_peek
    - free
    linkageType: ''
    returnType: void
    signature: "void repo_unuse_commit_buffer(struct repository *r,\n\t\t\t      const
      struct commit *commit,\n\t\t\t      const void *buffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buffer_slab_peek
      Src: /src/git/commit.c:424,1
    - Dst: FREE_AND_NULL
      Src: /src/git/commit.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - commit
    argTypes:
    - struct parsed_object_pool*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: free_commit_buffer
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - buffer_slab_peek
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void free_commit_buffer(struct parsed_object_pool *pool, struct commit
      *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - t
    argTypes:
    - struct commit*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: set_commit_tree
    functionSourceFile: /src/git/commit.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_commit_tree(struct commit *c, struct tree *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_position
      Src: /src/git/commit.c:443,1
    - Dst: get_commit_tree_in_graph
      Src: /src/git/commit.c:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - r
    - commit
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 437
    functionDepth: 5
    functionLinenumber: 437
    functionLinenumberEnd: 447
    functionName: repo_get_commit_tree
    functionSourceFile: /src/git/commit.c
    functionUses: 13
    functionsReached:
    - commit_graph_position
    - get_commit_tree_in_graph
    linkageType: ''
    returnType: struct tree
    signature: "struct tree *repo_get_commit_tree(struct repository *r,\n\t\t\t\t
      \ const struct commit *commit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_tree
      Src: /src/git/commit.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 6
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: get_commit_tree_oid
    functionSourceFile: /src/git/commit.c
    functionUses: 12
    functionsReached:
    - repo_get_commit_tree
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *get_commit_tree_oid(const struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_commit_tree
      Src: /src/git/commit.c:457,1
    - Dst: free_commit_buffer
      Src: /src/git/commit.c:458,1
    - Dst: commit_list_free
      Src: /src/git/commit.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - c
    argTypes:
    - struct parsed_object_pool*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: release_commit_memory
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - free_commit_buffer
    - set_commit_tree
    - commit_list_free
    linkageType: ''
    returnType: void
    signature: void release_commit_memory(struct parsed_object_pool *pool, struct
      commit *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: buffer_slab_peek
      Src: /src/git/commit.c:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - commit
    - sizep
    argTypes:
    - struct commit*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 483
    functionName: detach_commit_buffer
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - buffer_slab_peek
    linkageType: ''
    returnType: void
    signature: void *detach_commit_buffer(struct commit *commit, unsigned long *sizep)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_free
      Src: /src/git/commit.c:504,1
    - Dst: memcmp
      Src: /src/git/commit.c:508,1
    - Dst: error
      Src: /src/git/commit.c:510,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:510,1
    - Dst: get_oid_hex
      Src: /src/git/commit.c:511,1
    - Dst: error
      Src: /src/git/commit.c:512,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:513,1
    - Dst: lookup_tree
      Src: /src/git/commit.c:514,1
    - Dst: error
      Src: /src/git/commit.c:516,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:517,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:518,1
    - Dst: set_commit_tree
      Src: /src/git/commit.c:519,1
    - Dst: lookup_commit_graft
      Src: /src/git/commit.c:523,1
    - Dst: memcmp
      Src: /src/git/commit.c:526,1
    - Dst: get_oid_hex
      Src: /src/git/commit.c:530,1
    - Dst: error
      Src: /src/git/commit.c:532,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:532,1
    - Dst: lookup_commit
      Src: /src/git/commit.c:540,1
    - Dst: error
      Src: /src/git/commit.c:542,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:543,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:544,1
    - Dst: commit_list_insert
      Src: /src/git/commit.c:545,1
    - Dst: lookup_commit
      Src: /src/git/commit.c:551,1
    - Dst: error
      Src: /src/git/commit.c:554,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:555,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:556,1
    - Dst: commit_list_insert
      Src: /src/git/commit.c:557,1
    - Dst: parse_commit_date
      Src: /src/git/commit.c:560,1
    - Dst: load_commit_graph_info
      Src: /src/git/commit.c:563,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 5
    argNames:
    - r
    - item
    - buffer
    - size
    - check_graph
    argTypes:
    - struct repository*
    - struct commit*
    - void*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 485
    functionDepth: 16
    functionLinenumber: 485
    functionLinenumberEnd: 567
    functionName: parse_commit_buffer
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - error
    - oid_to_hex
    - set_commit_tree
    - commit_list_insert
    - get_oid_hex
    - lookup_commit_graft
    - load_commit_graph_info
    - commit_list_free
    - lookup_commit
    - parse_commit_date
    - lookup_tree
    - memcmp
    linkageType: ''
    returnType: int
    signature: int parse_commit_buffer(struct repository *r, struct commit *item,
      const void *buffer, unsigned long size, int check_graph)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: parse_commit_in_graph
      Src: /src/git/commit.c:594,1
    - Dst: git_env_bool
      Src: /src/git/commit.c:598,1
    - Dst: odb_has_object
      Src: /src/git/commit.c:600,1
    - Dst: unparse_commit
      Src: /src/git/commit.c:601,1
    - Dst: error
      Src: /src/git/commit.c:603,1
    - Dst: _
      Src: /src/git/commit.c:603,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:604,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/commit.c:610,1
    - Dst: error
      Src: /src/git/commit.c:613,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:614,1
    - Dst: free
      Src: /src/git/commit.c:616,1
    - Dst: error
      Src: /src/git/commit.c:617,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:618,1
    - Dst: parse_commit_buffer
      Src: /src/git/commit.c:621,1
    - Dst: get_cached_commit_buffer
      Src: /src/git/commit.c:623,1
    - Dst: set_commit_buffer
      Src: /src/git/commit.c:624,1
    - Dst: free
      Src: /src/git/commit.c:627,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 4
    argNames:
    - r
    - item
    - quiet_on_missing
    - use_commit_graph
    argTypes:
    - struct repository*
    - struct commit*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 569
    functionDepth: 17
    functionLinenumber: 569
    functionLinenumberEnd: 629
    functionName: repo_parse_commit_internal
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - error
    - unparse_commit
    - oid_to_hex
    - git_env_bool
    - odb_has_object
    - set_commit_buffer
    - parse_commit_buffer
    - _
    - free
    - odb_read_object_info_extended
    - parse_commit_in_graph
    - get_cached_commit_buffer
    linkageType: ''
    returnType: int
    signature: "int repo_parse_commit_internal(struct repository *r,\n\t\t\t       struct
      commit *item,\n\t\t\t       int quiet_on_missing,\n\t\t\t       int use_commit_graph)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit_internal
      Src: /src/git/commit.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - item
    - quiet_on_missing
    argTypes:
    - struct repository*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 18
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: repo_parse_commit_gently
    functionSourceFile: /src/git/commit.c
    functionUses: 6
    functionsReached:
    - repo_parse_commit_internal
    linkageType: ''
    returnType: int
    signature: "int repo_parse_commit_gently(struct repository *r,\n\t\t\t     struct
      commit *item, int quiet_on_missing)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/commit.c:639,1
    - Dst: die
      Src: /src/git/commit.c:640,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 642
    functionName: parse_commit_or_die
    functionSourceFile: /src/git/commit.c
    functionUses: 5
    functionsReached:
    - repo_parse_commit
    - oid_to_hex
    - die
    linkageType: ''
    returnType: void
    signature: void parse_commit_or_die(struct commit *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_blank_lines
      Src: /src/git/commit.c:652,1
    - Dst: strchrnul
      Src: /src/git/commit.c:653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - commit_buffer
    - subject
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 660
    functionName: find_commit_subject
    functionSourceFile: /src/git/commit.c
    functionUses: 12
    functionsReached:
    - strchrnul
    - skip_blank_lines
    linkageType: ''
    returnType: int
    signature: int find_commit_subject(const char *commit_buffer, const char **subject)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_blank_lines
      Src: /src/git/commit.c:666,1
    - Dst: strchrnul
      Src: /src/git/commit.c:669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - body
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 674
    functionName: commit_subject_length
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - strchrnul
    - skip_blank_lines
    linkageType: ''
    returnType: size_t
    signature: size_t commit_subject_length(const char *body)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/commit.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - item
    - list_p
    argTypes:
    - struct commit*
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 683
    functionName: commit_list_insert
    functionSourceFile: /src/git/commit.c
    functionUses: 28
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *commit_list_insert(struct commit *item, struct
      commit_list **list_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - item
    - list
    argTypes:
    - struct commit*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 694
    functionName: commit_list_contains
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int commit_list_contains(struct commit *item, struct commit_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 702
    functionName: commit_list_count
    functionSourceFile: /src/git/commit.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned commit_list_count(const struct commit_list *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_append
      Src: /src/git/commit.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 713
    functionName: commit_list_copy
    functionSourceFile: /src/git/commit.c
    functionUses: 4
    functionsReached:
    - commit_list_append
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *commit_list_copy(const struct commit_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 724
    functionName: commit_list_reverse
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *commit_list_reverse(struct commit_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_commit
      Src: /src/git/commit.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 730
    functionName: commit_list_free
    functionSourceFile: /src/git/commit.c
    functionUses: 38
    functionsReached:
    - pop_commit
    linkageType: ''
    returnType: void
    signature: void commit_list_free(struct commit_list *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/commit.c:742,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - item
    - list
    argTypes:
    - struct commit*
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 743
    functionName: commit_list_insert_by_date
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - commit_list_insert
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list * commit_list_insert_by_date(struct commit *item,
      struct commit_list **list)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct commit_list*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 755
    functionName: commit_list_compare_by_date
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int commit_list_compare_by_date(const struct commit_list *a,\n\t\t\t\t
      \      const struct commit_list *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_sort
      Src: /src/git/commit.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 762
    functionName: commit_list_sort_by_date
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - commit_list_sort
    linkageType: ''
    returnType: void
    signature: void commit_list_sort_by_date(struct commit_list **list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_peek
      Src: /src/git/commit.c:767,1
    - Dst: repo_parse_commit
      Src: /src/git/commit.c:773,1
    - Dst: prio_queue_replace
      Src: /src/git/commit.c:776,1
    - Dst: prio_queue_put
      Src: /src/git/commit.c:778,1
    - Dst: prio_queue_get
      Src: /src/git/commit.c:784,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - queue
    - mark
    argTypes:
    - struct prio_queue*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 764
    functionDepth: 4
    functionLinenumber: 764
    functionLinenumberEnd: 786
    functionName: pop_most_recent_commit
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - prio_queue_put
    - prio_queue_get
    - repo_parse_commit
    - prio_queue_replace
    - prio_queue_peek
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *pop_most_recent_commit(struct prio_queue *queue,\n\t\t\t\t
      \     unsigned int mark)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/commit.c:805,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - plist
    - commit
    - mark
    argTypes:
    - struct commit_list**
    - struct commit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 810
    functionName: clear_commit_marks_1
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - commit_list_insert
    linkageType: ''
    returnType: void
    signature: "void clear_commit_marks_1(struct commit_list **plist,\n\t\t\t\t struct
      commit *commit, unsigned int mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_commit_marks
      Src: /src/git/commit.c:815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - nr
    - commit
    - mark
    argTypes:
    - size_t
    - struct commit**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 816
    functionName: clear_commit_marks_many
    functionSourceFile: /src/git/commit.c
    functionUses: 3
    functionsReached:
    - clear_commit_marks
    linkageType: ''
    returnType: void
    signature: void clear_commit_marks_many(size_t nr, struct commit **commit, unsigned
      int mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_commit_marks_1
      Src: /src/git/commit.c:822,1
    - Dst: clear_commit_marks_1
      Src: /src/git/commit.c:824,1
    - Dst: pop_commit
      Src: /src/git/commit.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - commit
    - mark
    argTypes:
    - struct commit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 825
    functionName: clear_commit_marks
    functionSourceFile: /src/git/commit.c
    functionUses: 8
    functionsReached:
    - pop_commit
    - clear_commit_marks_1
    linkageType: ''
    returnType: void
    signature: void clear_commit_marks(struct commit *commit, unsigned int mark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/commit.c:834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 837
    functionName: pop_commit
    functionSourceFile: /src/git/commit.c
    functionUses: 14
    functionsReached:
    - free
    linkageType: ''
    returnType: struct commit
    signature: struct commit *pop_commit(struct commit_list **stack)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_buffer
      Src: /src/git/commit.c:851,1
    - Dst: find_commit_header
      Src: /src/git/commit.c:859,1
    - Dst: split_ident_line
      Src: /src/git/commit.c:862,1
    - Dst: parse_timestamp
      Src: /src/git/commit.c:866,1
    - Dst: author_date_slab_at
      Src: /src/git/commit.c:869,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/commit.c:872,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - author_date
    - commit
    argTypes:
    - struct author_date_slab*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 848
    functionDepth: 13
    functionLinenumber: 848
    functionLinenumberEnd: 873
    functionName: record_author_date
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - find_commit_header
    - repo_unuse_commit_buffer
    - repo_get_commit_buffer
    - author_date_slab_at
    - parse_timestamp
    - split_ident_line
    linkageType: ''
    returnType: void
    signature: "void record_author_date(struct author_date_slab *author_date,\n\t\t\tstruct
      commit *commit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: author_date_slab_at
      Src: /src/git/commit.c:880,1
    - Dst: author_date_slab_at
      Src: /src/git/commit.c:881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - a_
    - b_
    - cb_data
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 889
    functionName: compare_commits_by_author_date
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - author_date_slab_at
    linkageType: ''
    returnType: int
    signature: "int compare_commits_by_author_date(const void *a_, const void *b_,\n\t\t\t\t
      \  void *cb_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_generation
      Src: /src/git/commit.c:895,1
    - Dst: commit_graph_generation
      Src: /src/git/commit.c:896,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - a_
    - b_
    - unused
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 910
    functionName: compare_commits_by_gen_then_commit_date
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - commit_graph_generation
    linkageType: ''
    returnType: int
    signature: "int compare_commits_by_gen_then_commit_date(const void *a_, const
      void *b_,\n\t\t\t\t\t    void *unused UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - a_
    - b_
    - unused
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 922
    functionName: compare_commits_by_commit_date
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int compare_commits_by_commit_date(const void *a_, const void *b_,\n\t\t\t\t
      \  void *unused UNUSED)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: init_indegree_slab
      Src: /src/git/commit.c:940,1
    - Dst: memset
      Src: /src/git/commit.c:941,1
    - Dst: init_author_date_slab
      Src: /src/git/commit.c:951,1
    - Dst: indegree_slab_at
      Src: /src/git/commit.c:960,1
    - Dst: record_author_date
      Src: /src/git/commit.c:963,1
    - Dst: indegree_slab_at
      Src: /src/git/commit.c:971,1
    - Dst: indegree_slab_at
      Src: /src/git/commit.c:989,1
    - Dst: prio_queue_put
      Src: /src/git/commit.c:990,1
    - Dst: prio_queue_reverse
      Src: /src/git/commit.c:998,1
    - Dst: commit_list_free
      Src: /src/git/commit.c:1001,1
    - Dst: prio_queue_get
      Src: /src/git/commit.c:1005,1
    - Dst: indegree_slab_at
      Src: /src/git/commit.c:1010,1
    - Dst: prio_queue_put
      Src: /src/git/commit.c:1021,1
    - Dst: indegree_slab_at
      Src: /src/git/commit.c:1027,1
    - Dst: commit_list_insert
      Src: /src/git/commit.c:1029,1
    - Dst: clear_indegree_slab
      Src: /src/git/commit.c:1032,1
    - Dst: clear_prio_queue
      Src: /src/git/commit.c:1033,1
    - Dst: clear_author_date_slab
      Src: /src/git/commit.c:1035,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - list
    - sort_order
    argTypes:
    - struct commit_list**
    - enum rev_sort_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 927
    functionDepth: 14
    functionLinenumber: 927
    functionLinenumberEnd: 1036
    functionName: sort_in_topological_order
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - memset
    - clear_author_date_slab
    - prio_queue_put
    - commit_list_insert
    - prio_queue_get
    - clear_indegree_slab
    - init_indegree_slab
    - prio_queue_reverse
    - init_author_date_slab
    - commit_list_free
    - record_author_date
    - indegree_slab_at
    - clear_prio_queue
    linkageType: ''
    returnType: void
    signature: void sort_in_topological_order(struct commit_list **list, enum rev_sort_order
      sort_order)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/commit.c:1047,1
    - Dst: lookup_commit
      Src: /src/git/commit.c:1050,1
    - Dst: repo_parse_commit
      Src: /src/git/commit.c:1053,1
    - Dst: commit_stack_push
      Src: /src/git/commit.c:1056,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - oid
    - revs
    argTypes:
    - struct object_id*
    - struct rev_collect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1043
    functionDepth: 4
    functionLinenumber: 1043
    functionLinenumberEnd: 1058
    functionName: add_one_commit
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - repo_parse_commit
    - lookup_commit
    - commit_stack_push
    - is_null_oid
    linkageType: ''
    returnType: void
    signature: void add_one_commit(struct object_id *oid, struct rev_collect *revs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_one_commit
      Src: /src/git/commit.c:1070,1
    - Dst: add_one_commit
      Src: /src/git/commit.c:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 8
    argNames:
    - refname
    - ooid
    - noid
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cbdata
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1060
    functionDepth: 5
    functionLinenumber: 1060
    functionLinenumberEnd: 1074
    functionName: collect_one_reflog_ent
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - add_one_commit
    linkageType: ''
    returnType: int
    signature: "int collect_one_reflog_ent(const char *refname UNUSED,\n\t\t\t\t  struct
      object_id *ooid, struct object_id *noid,\n\t\t\t\t  const char *ident UNUSED,\n\t\t\t\t
      \ timestamp_t timestamp UNUSED, int tz UNUSED,\n\t\t\t\t  const char *message
      UNUSED, void *cbdata)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: repo_dwim_ref
      Src: /src/git/commit.c:1085,1
    - Dst: strlen
      Src: /src/git/commit.c:1085,1
    - Dst: die
      Src: /src/git/commit.c:1088,1
    - Dst: die
      Src: /src/git/commit.c:1092,1
    - Dst: commit_stack_init
      Src: /src/git/commit.c:1095,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/commit.c:1097,1
    - Dst: get_main_ref_store
      Src: /src/git/commit.c:1097,1
    - Dst: add_one_commit
      Src: /src/git/commit.c:1101,1
    - Dst: repo_get_merge_bases_many
      Src: /src/git/commit.c:1106,1
    - Dst: exit
      Src: /src/git/commit.c:1108,1
    - Dst: commit_stack_clear
      Src: /src/git/commit.c:1127,1
    - Dst: commit_list_free
      Src: /src/git/commit.c:1128,1
    - Dst: free
      Src: /src/git/commit.c:1129,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - refname
    - commit
    argTypes:
    - char*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1076
    functionDepth: 5
    functionLinenumber: 1076
    functionLinenumberEnd: 1131
    functionName: get_fork_point
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - refs_for_each_reflog_ent
    - die
    - repo_dwim_ref
    - commit_stack_init
    - exit
    - strlen
    - commit_stack_clear
    - commit_list_free
    - add_one_commit
    - free
    - repo_get_merge_bases_many
    - get_main_ref_store
    linkageType: ''
    returnType: struct commit
    signature: struct commit *get_fork_point(const char *refname, struct commit *commit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hash_algo_by_ptr
      Src: /src/git/commit.c:1146,1
    - Dst: strlen
      Src: /src/git/commit.c:1147,1
    - Dst: strstr
      Src: /src/git/commit.c:1150,1
    - Dst: strchrnul
      Src: /src/git/commit.c:1158,1
    - Dst: strbuf_insert
      Src: /src/git/commit.c:1162,1
    - Dst: strbuf_insertstr
      Src: /src/git/commit.c:1165,1
    - Dst: strbuf_insert
      Src: /src/git/commit.c:1166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - sig
    - algo
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1142
    functionDepth: 5
    functionLinenumber: 1142
    functionLinenumberEnd: 1171
    functionName: add_header_signature
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - strbuf_insertstr
    - strstr
    - strbuf_insert
    - strlen
    - strchrnul
    - hash_algo_by_ptr
    linkageType: ''
    returnType: int
    signature: int add_header_signature(struct strbuf *buf, struct strbuf *sig, const
      struct git_hash_algo *algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_buffer
      Src: /src/git/commit.c:1178,1
    - Dst: parse_buffer_signed_by_header
      Src: /src/git/commit.c:1180,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/commit.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - commit
    - payload
    - signature
    - algop
    argTypes:
    - struct commit*
    - struct strbuf*
    - struct strbuf*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1173
    functionDepth: 13
    functionLinenumber: 1173
    functionLinenumberEnd: 1184
    functionName: parse_signed_commit
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - parse_buffer_signed_by_header
    - repo_unuse_commit_buffer
    - repo_get_commit_buffer
    linkageType: ''
    returnType: int
    signature: "int parse_signed_commit(const struct commit *commit,\n\t\t\tstruct
      strbuf *payload, struct strbuf *signature,\n\t\t\tconst struct git_hash_algo
      *algop)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hash_algo_by_ptr
      Src: /src/git/commit.c:1194,1
    - Dst: memchr
      Src: /src/git/commit.c:1200,1
    - Dst: skip_prefix
      Src: /src/git/commit.c:1205,1
    - Dst: strlen
      Src: /src/git/commit.c:1207,1
    - Dst: starts_with
      Src: /src/git/commit.c:1210,1
    - Dst: strbuf_add
      Src: /src/git/commit.c:1215,1
    - Dst: strbuf_add
      Src: /src/git/commit.c:1223,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - buffer
    - size
    - payload
    - signature
    - algop
    argTypes:
    - char*
    - unsigned long
    - struct strbuf*
    - struct strbuf*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1186
    functionDepth: 3
    functionLinenumber: 1186
    functionLinenumberEnd: 1229
    functionName: parse_buffer_signed_by_header
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - memchr
    - starts_with
    - strlen
    - skip_prefix
    - strbuf_add
    - hash_algo_by_ptr
    linkageType: ''
    returnType: int
    signature: "int parse_buffer_signed_by_header(const char *buffer,\n\t\t\t\t  unsigned
      long size,\n\t\t\t\t  struct strbuf *payload,\n\t\t\t\t  struct strbuf *signature,\n\t\t\t\t
      \ const struct git_hash_algo *algop)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/commit.c:1243,1
    - Dst: memchr
      Src: /src/git/commit.c:1246,1
    - Dst: starts_with
      Src: /src/git/commit.c:1251,1
    - Dst: skip_prefix
      Src: /src/git/commit.c:1255,1
    - Dst: ARRAY_SIZE
      Src: /src/git/commit.c:1266,1
    - Dst: ARRAY_SIZE
      Src: /src/git/commit.c:1273,1
    - Dst: strbuf_remove
      Src: /src/git/commit.c:1275,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1231
    functionDepth: 4
    functionLinenumber: 1231
    functionLinenumberEnd: 1278
    functionName: remove_signature
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - memset
    - memchr
    - strbuf_remove
    - starts_with
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int remove_signature(struct strbuf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: merge_remote_util
      Src: /src/git/commit.c:1290,1
    - Dst: odb_read_object
      Src: /src/git/commit.c:1293,1
    - Dst: parse_signature
      Src: /src/git/commit.c:1297,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit.c:1309,1
    - Dst: xstrdup
      Src: /src/git/commit.c:1310,1
    - Dst: strbuf_release
      Src: /src/git/commit.c:1316,1
    - Dst: strbuf_release
      Src: /src/git/commit.c:1317,1
    - Dst: free
      Src: /src/git/commit.c:1321,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - parent
    - tail
    argTypes:
    - struct commit*
    - struct commit_extra_header***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1280
    functionDepth: 12
    functionLinenumber: 1280
    functionLinenumberEnd: 1322
    functionName: handle_signed_tag
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - merge_remote_util
    - parse_signature
    - strbuf_release
    - CALLOC_ARRAY
    - free
    - odb_read_object
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void handle_signed_tag(const struct commit *parent, struct commit_extra_header
      ***tail)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_buffer_signed_by_header
      Src: /src/git/commit.c:1333,1
    - Dst: strbuf_detach
      Src: /src/git/commit.c:1338,1
    - Dst: check_signature
      Src: /src/git/commit.c:1339,1
    - Dst: strbuf_release
      Src: /src/git/commit.c:1342,1
    - Dst: strbuf_release
      Src: /src/git/commit.c:1343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - buffer
    - size
    - sigc
    argTypes:
    - char*
    - size_t
    - struct signature_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1324
    functionDepth: 4
    functionLinenumber: 1324
    functionLinenumberEnd: 1346
    functionName: verify_commit_buffer
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - parse_buffer_signed_by_header
    - check_signature
    - strbuf_release
    - strbuf_detach
    linkageType: ''
    returnType: int
    signature: "int verify_commit_buffer(const char *buffer, size_t size,\n\t\t\t
      struct signature_check *sigc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_buffer
      Src: /src/git/commit.c:1351,1
    - Dst: verify_commit_buffer
      Src: /src/git/commit.c:1352,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/commit.c:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - commit
    - sigc
    argTypes:
    - struct commit*
    - struct signature_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1348
    functionDepth: 13
    functionLinenumber: 1348
    functionLinenumberEnd: 1357
    functionName: check_commit_signature
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - repo_unuse_commit_buffer
    - verify_commit_buffer
    - repo_get_commit_buffer
    linkageType: ''
    returnType: int
    signature: int check_commit_signature(const struct commit *commit, struct signature_check
      *sigc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/commit.c:1365,1
    - Dst: check_commit_signature
      Src: /src/git/commit.c:1367,1
    - Dst: repo_find_unique_abbrev_r
      Src: /src/git/commit.c:1369,1
    - Dst: die
      Src: /src/git/commit.c:1374,1
    - Dst: _
      Src: /src/git/commit.c:1374,1
    - Dst: die
      Src: /src/git/commit.c:1378,1
    - Dst: _
      Src: /src/git/commit.c:1378,1
    - Dst: die
      Src: /src/git/commit.c:1381,1
    - Dst: _
      Src: /src/git/commit.c:1381,1
    - Dst: printf
      Src: /src/git/commit.c:1384,1
    - Dst: _
      Src: /src/git/commit.c:1384,1
    - Dst: signature_check_clear
      Src: /src/git/commit.c:1387,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - commit
    - verbosity
    - check_trust
    argTypes:
    - struct commit*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1359
    functionDepth: 14
    functionLinenumber: 1359
    functionLinenumberEnd: 1388
    functionName: verify_merge_signature
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - check_commit_signature
    - repo_find_unique_abbrev_r
    - signature_check_clear
    - _
    - printf
    linkageType: ''
    returnType: void
    signature: "void verify_merge_signature(struct commit *commit, int verbosity,\n\t\t\t
      \   int check_trust)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_signed_tag
      Src: /src/git/commit.c:1395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - parents
    - tail
    argTypes:
    - struct commit_list*
    - struct commit_extra_header***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1390
    functionDepth: 13
    functionLinenumber: 1390
    functionLinenumberEnd: 1398
    functionName: append_merge_tag_headers
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - handle_signed_tag
    linkageType: ''
    returnType: void
    signature: "void append_merge_tag_headers(const struct commit_list *parents,\n\t\t\t
      \     struct commit_extra_header ***tail)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/commit.c:1410,1
    - Dst: convert_object_file
      Src: /src/git/commit.c:1411,1
    - Dst: free_commit_extra_headers
      Src: /src/git/commit.c:1415,1
    - Dst: xstrdup
      Src: /src/git/commit.c:1418,1
    - Dst: strbuf_detach
      Src: /src/git/commit.c:1419,1
    - Dst: len::len
      Src: /src/git/commit.c:1419,1
    - Dst: xstrdup
      Src: /src/git/commit.c:1421,1
    - Dst: xmemdupz
      Src: /src/git/commit.c:1423,1
    - Dst: next::next
      Src: /src/git/commit.c:1426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - orig
    - result
    argTypes:
    - struct commit_extra_header*
    - struct commit_extra_header**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1400
    functionDepth: 10
    functionLinenumber: 1400
    functionLinenumberEnd: 1431
    functionName: convert_commit_extra_headers
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - len::len
    - xmemdupz
    - next::next
    - free_commit_extra_headers
    - strcmp
    - strbuf_detach
    - convert_object_file
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int convert_commit_extra_headers(const struct commit_extra_header
      *orig,\n\t\t\t\t\tstruct commit_extra_header **result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/commit.c:1436,1
    - Dst: strbuf_add_lines
      Src: /src/git/commit.c:1438,1
    - Dst: strbuf_addch
      Src: /src/git/commit.c:1440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - extra
    argTypes:
    - struct strbuf*
    - struct commit_extra_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1433
    functionDepth: 5
    functionLinenumber: 1433
    functionLinenumberEnd: 1441
    functionName: add_extra_header
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - strbuf_add_lines
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void add_extra_header(struct strbuf *buffer,\n\t\t\t     const struct
      commit_extra_header *extra)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_buffer
      Src: /src/git/commit.c:1448,1
    - Dst: read_commit_extra_header_lines
      Src: /src/git/commit.c:1450,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/commit.c:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - commit
    - exclude
    argTypes:
    - struct commit*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1443
    functionDepth: 13
    functionLinenumber: 1443
    functionLinenumberEnd: 1453
    functionName: read_commit_extra_headers
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - repo_unuse_commit_buffer
    - read_commit_extra_header_lines
    - repo_get_commit_buffer
    linkageType: ''
    returnType: struct commit_extra_header
    signature: "struct commit_extra_header *read_commit_extra_headers(struct commit
      *commit,\n\t\t\t\t\t\t      const char **exclude)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_commit_extra_headers
      Src: /src/git/commit.c:1460,1
    - Dst: strcmp
      Src: /src/git/commit.c:1462,1
    - Dst: fn
      Src: /src/git/commit.c:1464,1
    - Dst: free_commit_extra_headers
      Src: /src/git/commit.c:1466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - fn
    - commit
    - data
    argTypes:
    - each_mergetag_fn
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1455
    functionDepth: 14
    functionLinenumber: 1455
    functionLinenumberEnd: 1468
    functionName: for_each_mergetag
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - free_commit_extra_headers
    - fn
    - read_commit_extra_headers
    - strcmp
    linkageType: ''
    returnType: int
    signature: int for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/commit.c:1472,1
    - Dst: memcmp
      Src: /src/git/commit.c:1473,1
    - Dst: memcmp
      Src: /src/git/commit.c:1474,1
    - Dst: memcmp
      Src: /src/git/commit.c:1475,1
    - Dst: memcmp
      Src: /src/git/commit.c:1476,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 2
    argNames:
    - field
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1477
    functionName: standard_header_field
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int standard_header_field(const char *field, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/commit.c:1485,1
    - Dst: memcmp
      Src: /src/git/commit.c:1486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - field
    - len
    - exclude
    argTypes:
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1491
    functionName: excluded_header_field
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int excluded_header_field(const char *field, size_t len, const char
      **exclude)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/commit.c:1504,1
    - Dst: strbuf_add
      Src: /src/git/commit.c:1509,1
    - Dst: strbuf_detach
      Src: /src/git/commit.c:1513,1
    - Dst: strbuf_reset
      Src: /src/git/commit.c:1514,1
    - Dst: memchr
      Src: /src/git/commit.c:1517,1
    - Dst: standard_header_field
      Src: /src/git/commit.c:1520,1
    - Dst: excluded_header_field
      Src: /src/git/commit.c:1521,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit.c:1524,1
    - Dst: xmemdupz
      Src: /src/git/commit.c:1525,1
    - Dst: strbuf_add
      Src: /src/git/commit.c:1529,1
    - Dst: strbuf_detach
      Src: /src/git/commit.c:1532,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - buffer
    - size
    - exclude
    argTypes:
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1493
    functionDepth: 10
    functionLinenumber: 1493
    functionLinenumberEnd: 1534
    functionName: read_commit_extra_header_lines
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - xmemdupz
    - memchr
    - strbuf_reset
    - standard_header_field
    - excluded_header_field
    - strbuf_detach
    - CALLOC_ARRAY
    - strbuf_add
    linkageType: ''
    returnType: struct commit_extra_header
    signature: "struct commit_extra_header *read_commit_extra_header_lines(\n\tconst
      char *buffer, size_t size,\n\tconst char **exclude)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/commit.c:1540,1
    - Dst: free
      Src: /src/git/commit.c:1541,1
    - Dst: free
      Src: /src/git/commit.c:1542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - extra
    argTypes:
    - struct commit_extra_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1545
    functionName: free_commit_extra_headers
    functionSourceFile: /src/git/commit.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_commit_extra_headers(struct commit_extra_header *extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_merge_tag_headers
      Src: /src/git/commit.c:1554,1
    - Dst: commit_tree_extended
      Src: /src/git/commit.c:1555,1
    - Dst: free_commit_extra_headers
      Src: /src/git/commit.c:1557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - msg
    - msg_len
    - tree
    - parents
    - ret
    - author
    - sign_commit
    argTypes:
    - char*
    - size_t
    - struct object_id*
    - struct commit_list*
    - struct object_id*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1547
    functionDepth: 14
    functionLinenumber: 1547
    functionLinenumberEnd: 1559
    functionName: commit_tree
    functionSourceFile: /src/git/commit.c
    functionUses: 21
    functionsReached:
    - free_commit_extra_headers
    - append_merge_tag_headers
    - commit_tree_extended
    linkageType: ''
    returnType: int
    signature: "int commit_tree(const char *msg, size_t msg_len, const struct object_id
      *tree,\n\t\tconst struct commit_list *parents, struct object_id *ret,\n\t\tconst
      char *author, const char *sign_commit)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - buf
    - len
    - bad_offset
    argTypes:
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1561
    functionDepth: 0
    functionLinenumber: 1561
    functionLinenumberEnd: 1637
    functionName: has_invalid_utf8
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_invalid_utf8(const char *buf, size_t len, size_t *bad_offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_invalid_utf8
      Src: /src/git/commit.c:1655,1
    - Dst: strbuf_remove
      Src: /src/git/commit.c:1660,1
    - Dst: strbuf_insert
      Src: /src/git/commit.c:1665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1645
    functionDepth: 4
    functionLinenumber: 1645
    functionLinenumberEnd: 1668
    functionName: ensure_utf8
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - strbuf_remove
    - strbuf_insert
    - has_invalid_utf8
    linkageType: ''
    returnType: int
    signature: int ensure_utf8(struct strbuf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_encoding_utf8
      Src: /src/git/commit.c:1685,1
    - Dst: strbuf_grow
      Src: /src/git/commit.c:1687,1
    - Dst: strbuf_addf
      Src: /src/git/commit.c:1688,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:1688,1
    - Dst: strbuf_addf
      Src: /src/git/commit.c:1696,1
    - Dst: oid_to_hex
      Src: /src/git/commit.c:1696,1
    - Dst: git_author_info
      Src: /src/git/commit.c:1700,1
    - Dst: strbuf_addf
      Src: /src/git/commit.c:1701,1
    - Dst: git_committer_info
      Src: /src/git/commit.c:1703,1
    - Dst: strbuf_addf
      Src: /src/git/commit.c:1704,1
    - Dst: strbuf_addf
      Src: /src/git/commit.c:1706,1
    - Dst: add_extra_header
      Src: /src/git/commit.c:1709,1
    - Dst: strbuf_addch
      Src: /src/git/commit.c:1712,1
    - Dst: strbuf_add
      Src: /src/git/commit.c:1715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 9
    argNames:
    - buffer
    - msg
    - msg_len
    - tree
    - parents
    - parents_len
    - author
    - committer
    - extra
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    - struct object_id*
    - struct object_id*
    - size_t
    - char*
    - char*
    - struct commit_extra_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1675
    functionDepth: 8
    functionLinenumber: 1675
    functionLinenumberEnd: 1716
    functionName: write_commit_tree
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - git_author_info
    - oid_to_hex
    - is_encoding_utf8
    - strbuf_addf
    - strbuf_addch
    - add_extra_header
    - strbuf_grow
    - git_committer_info
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void write_commit_tree(struct strbuf *buffer, const char *msg, size_t
      msg_len,\n\t\t\t      const struct object_id *tree,\n\t\t\t      const struct
      object_id *parents, size_t parents_len,\n\t\t\t      const char *author, const
      char *committer,\n\t\t\t      const struct commit_extra_header *extra)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: is_encoding_utf8
      Src: /src/git/commit.c:1736,1
    - Dst: odb_assert_oid_type
      Src: /src/git/commit.c:1738,1
    - Dst: memchr
      Src: /src/git/commit.c:1740,1
    - Dst: error
      Src: /src/git/commit.c:1741,1
    - Dst: commit_list_count
      Src: /src/git/commit.c:1743,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit.c:1744,1
    - Dst: oidcpy
      Src: /src/git/commit.c:1747,1
    - Dst: write_commit_tree
      Src: /src/git/commit.c:1749,1
    - Dst: ensure_utf8
      Src: /src/git/commit.c:1752,1
    - Dst: fprintf
      Src: /src/git/commit.c:1753,1
    - Dst: _
      Src: /src/git/commit.c:1753,1
    - Dst: sign_buffer
      Src: /src/git/commit.c:1757,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit.c:1767,1
    - Dst: repo_oid_to_algop
      Src: /src/git/commit.c:1769,1
    - Dst: free
      Src: /src/git/commit.c:1771,1
    - Dst: repo_oid_to_algop
      Src: /src/git/commit.c:1775,1
    - Dst: free
      Src: /src/git/commit.c:1777,1
    - Dst: convert_commit_extra_headers
      Src: /src/git/commit.c:1780,1
    - Dst: free
      Src: /src/git/commit.c:1782,1
    - Dst: write_commit_tree
      Src: /src/git/commit.c:1785,1
    - Dst: free_commit_extra_headers
      Src: /src/git/commit.c:1787,1
    - Dst: free
      Src: /src/git/commit.c:1788,1
    - Dst: ensure_utf8
      Src: /src/git/commit.c:1790,1
    - Dst: fprintf
      Src: /src/git/commit.c:1791,1
    - Dst: _
      Src: /src/git/commit.c:1791,1
    - Dst: sign_buffer
      Src: /src/git/commit.c:1793,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/commit.c:1815,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/commit.c:1815,1
    - Dst: SWAP
      Src: /src/git/commit.c:1816,1
    - Dst: ARRAY_SIZE
      Src: /src/git/commit.c:1822,1
    - Dst: add_header_signature
      Src: /src/git/commit.c:1825,1
    - Dst: add_header_signature
      Src: /src/git/commit.c:1827,1
    - Dst: hash_object_file
      Src: /src/git/commit.c:1832,1
    - Dst: odb_write_object_ext
      Src: /src/git/commit.c:1837,1
    - Dst: free
      Src: /src/git/commit.c:1840,1
    - Dst: strbuf_release
      Src: /src/git/commit.c:1841,1
    - Dst: strbuf_release
      Src: /src/git/commit.c:1842,1
    - Dst: strbuf_release
      Src: /src/git/commit.c:1843,1
    - Dst: strbuf_release
      Src: /src/git/commit.c:1844,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 76
    argCount: 9
    argNames:
    - msg
    - msg_len
    - tree
    - parents
    - ret
    - author
    - committer
    - sign_commit
    - extra
    argTypes:
    - char*
    - size_t
    - struct object_id*
    - struct commit_list*
    - struct object_id*
    - char*
    - char*
    - char*
    - struct commit_extra_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1718
    functionDepth: 13
    functionLinenumber: 1718
    functionLinenumberEnd: 1846
    functionName: commit_tree_extended
    functionSourceFile: /src/git/commit.c
    functionUses: 3
    functionsReached:
    - convert_commit_extra_headers
    - hash_object_file
    - oidcpy
    - CALLOC_ARRAY
    - free
    - error
    - strbuf_release
    - is_encoding_utf8
    - odb_assert_oid_type
    - SWAP
    - write_commit_tree
    - repo_oid_to_algop
    - hash_algo_by_ptr
    - sign_buffer
    - ARRAY_SIZE
    - add_header_signature
    - free_commit_extra_headers
    - ensure_utf8
    - _
    - memchr
    - odb_write_object_ext
    - fprintf
    - commit_list_count
    linkageType: ''
    returnType: int
    signature: "int commit_tree_extended(const char *msg, size_t msg_len,\n\t\t\t
      const struct object_id *tree,\n\t\t\t const struct commit_list *parents, struct
      object_id *ret,\n\t\t\t const char *author, const char *committer,\n\t\t\t const
      char *sign_commit,\n\t\t\t const struct commit_extra_header *extra)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merge_desc_slab_at
      Src: /src/git/commit.c:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1851
    functionDepth: 0
    functionLinenumber: 1851
    functionLinenumberEnd: 1854
    functionName: merge_remote_util
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - merge_desc_slab_at
    linkageType: ''
    returnType: struct merge_remote_desc
    signature: struct merge_remote_desc *merge_remote_util(const struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/commit.c:1860,1
    - Dst: merge_desc_slab_at
      Src: /src/git/commit.c:1862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - commit
    - name
    - obj
    argTypes:
    - struct commit*
    - char*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1856
    functionDepth: 1
    functionLinenumber: 1856
    functionLinenumberEnd: 1863
    functionName: set_merge_remote_desc
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - merge_desc_slab_at
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: void
    signature: "void set_merge_remote_desc(struct commit *commit,\n\t\t\t   const
      char *name, struct object *obj)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/commit.c:1870,1
    - Dst: parse_object
      Src: /src/git/commit.c:1872,1
    - Dst: repo_peel_to_type
      Src: /src/git/commit.c:1873,1
    - Dst: merge_remote_util
      Src: /src/git/commit.c:1875,1
    - Dst: set_merge_remote_desc
      Src: /src/git/commit.c:1876,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1865
    functionDepth: 5
    functionLinenumber: 1865
    functionLinenumberEnd: 1878
    functionName: get_merge_parent
    functionSourceFile: /src/git/commit.c
    functionUses: 0
    functionsReached:
    - merge_remote_util
    - repo_peel_to_type
    - repo_get_oid
    - parse_object
    - set_merge_remote_desc
    linkageType: ''
    returnType: struct commit
    signature: struct commit *get_merge_parent(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/commit.c:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1897
    functionDepth: 0
    functionLinenumber: 1897
    functionLinenumberEnd: 1905
    functionName: commit_list_append
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list **commit_list_append(struct commit *commit,\n\t\t\t\t\tstruct
      commit_list **next)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/commit.c:1909,1
    - Dst: strchrnul
      Src: /src/git/commit.c:1913,1
    - Dst: strncmp
      Src: /src/git/commit.c:1919,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - msg
    - key
    - out_len
    argTypes:
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1907
    functionDepth: 1
    functionLinenumber: 1907
    functionLinenumberEnd: 1927
    functionName: find_commit_header
    functionSourceFile: /src/git/commit.c
    functionUses: 5
    functionsReached:
    - strncmp
    - strlen
    - strchrnul
    linkageType: ''
    returnType: char
    signature: char *find_commit_header(const char *msg, const char *key, size_t *out_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: wt_status_locate_end
      Src: /src/git/commit.c:1944,1
    - Dst: memchr
      Src: /src/git/commit.c:1947,1
    - Dst: starts_with_mem
      Src: /src/git/commit.c:1954,1
    - Dst: starts_with
      Src: /src/git/commit.c:1960,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1939
    functionDepth: 4
    functionLinenumber: 1939
    functionLinenumberEnd: 1974
    functionName: ignored_log_message_bytes
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - memchr
    - starts_with_mem
    - wt_status_locate_end
    - starts_with
    linkageType: ''
    returnType: size_t
    signature: size_t ignored_log_message_bytes(const char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/commit.c:1983,1
    - Dst: strvec_push
      Src: /src/git/commit.c:1989,1
    - Dst: va_start
      Src: /src/git/commit.c:1991,1
    - Dst: va_arg
      Src: /src/git/commit.c:1992,1
    - Dst: strvec_push
      Src: /src/git/commit.c:1993,1
    - Dst: va_end
      Src: /src/git/commit.c:1994,1
    - Dst: run_hooks_opt
      Src: /src/git/commit.c:1997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - editor_is_used
    - index_file
    - invoked_hook
    - name
    argTypes:
    - int
    - char*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1976
    functionDepth: 12
    functionLinenumber: 1976
    functionLinenumberEnd: 1998
    functionName: run_commit_hook
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached:
    - strvec_push
    - va_end
    - va_arg
    - run_hooks_opt
    - va_start
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int run_commit_hook(int editor_is_used, const char *index_file,\n\t\t
      \   int *invoked_hook, const char *name, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct commit_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 2000
    functionDepth: 0
    functionLinenumber: 2000
    functionLinenumberEnd: 2004
    functionName: commit_stack_init
    functionSourceFile: /src/git/commit.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void commit_stack_init(struct commit_stack *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/commit.c:2008,1
    - Dst: st_add
      Src: /src/git/commit.c:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stack
    - extra
    argTypes:
    - struct commit_stack*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 2006
    functionDepth: 3
    functionLinenumber: 2006
    functionLinenumberEnd: 2009
    functionName: commit_stack_grow
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached:
    - st_add
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void commit_stack_grow(struct commit_stack *stack, size_t extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_stack_grow
      Src: /src/git/commit.c:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stack
    - commit
    argTypes:
    - struct commit_stack*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 2011
    functionDepth: 4
    functionLinenumber: 2011
    functionLinenumberEnd: 2015
    functionName: commit_stack_push
    functionSourceFile: /src/git/commit.c
    functionUses: 8
    functionsReached:
    - commit_stack_grow
    linkageType: ''
    returnType: void
    signature: void commit_stack_push(struct commit_stack *stack, struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct commit_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2017
    functionDepth: 0
    functionLinenumber: 2017
    functionLinenumberEnd: 2020
    functionName: commit_stack_pop
    functionSourceFile: /src/git/commit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct commit
    signature: struct commit *commit_stack_pop(struct commit_stack *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/commit.c:2024,1
    - Dst: commit_stack_init
      Src: /src/git/commit.c:2025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct commit_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2022
    functionDepth: 1
    functionLinenumber: 2022
    functionLinenumberEnd: 2026
    functionName: commit_stack_clear
    functionSourceFile: /src/git/commit.c
    functionUses: 6
    functionsReached:
    - commit_stack_init
    - free
    linkageType: ''
    returnType: void
    signature: void commit_stack_clear(struct commit_stack *stack)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/tree.c:27,1
    - Dst: repo_parse_tree
      Src: /src/git/tree.c:29,1
    - Dst: init_tree_desc
      Src: /src/git/tree.c:32,1
    - Dst: tree_entry
      Src: /src/git/tree.c:34,1
    - Dst: tree_entry_interesting
      Src: /src/git/tree.c:36,1
    - Dst: fn
      Src: /src/git/tree.c:44,1
    - Dst: S_ISDIR
      Src: /src/git/tree.c:54,1
    - Dst: oidcpy
      Src: /src/git/tree.c:55,1
    - Dst: S_ISGITLINK
      Src: /src/git/tree.c:56,1
    - Dst: lookup_commit
      Src: /src/git/tree.c:59,1
    - Dst: die
      Src: /src/git/tree.c:61,1
    - Dst: oid_to_hex
      Src: /src/git/tree.c:62,1
    - Dst: repo_parse_commit
      Src: /src/git/tree.c:65,1
    - Dst: die
      Src: /src/git/tree.c:66,1
    - Dst: oid_to_hex
      Src: /src/git/tree.c:67,1
    - Dst: oidcpy
      Src: /src/git/tree.c:70,1
    - Dst: get_commit_tree_oid
      Src: /src/git/tree.c:70,1
    - Dst: tree_entry_len
      Src: /src/git/tree.c:75,1
    - Dst: strbuf_add
      Src: /src/git/tree.c:76,1
    - Dst: strbuf_addch
      Src: /src/git/tree.c:77,1
    - Dst: read_tree_at
      Src: /src/git/tree.c:78,1
    - Dst: lookup_tree
      Src: /src/git/tree.c:78,1
    - Dst: strbuf_setlen
      Src: /src/git/tree.c:81,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 7
    argNames:
    - r
    - tree
    - base
    - depth
    - pathspec
    - fn
    - context
    argTypes:
    - struct repository*
    - struct tree*
    - struct strbuf*
    - int
    - struct pathspec*
    - read_tree_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 14
    functionDepth: 7
    functionLinenumber: 14
    functionLinenumberEnd: 86
    functionName: read_tree_at
    functionSourceFile: /src/git/tree.c
    functionUses: 3
    functionsReached:
    - oidcpy
    - lookup_tree
    - error
    - fn
    - die
    - repo_parse_commit
    - repo_parse_tree
    - strbuf_setlen
    - oid_to_hex
    - tree_entry_interesting
    - S_ISGITLINK
    - strbuf_add
    - init_tree_desc
    - S_ISDIR
    - tree_entry
    - strbuf_addch
    - get_commit_tree_oid
    - lookup_commit
    - tree_entry_len
    - read_tree_at
    linkageType: ''
    returnType: int
    signature: "int read_tree_at(struct repository *r,\n\t\t struct tree *tree, struct
      strbuf *base,\n\t\t int depth,\n\t\t const struct pathspec *pathspec,\n\t\t
      read_tree_fn_t fn, void *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_tree_at
      Src: /src/git/tree.c:94,1
    - Dst: strbuf_release
      Src: /src/git/tree.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - r
    - tree
    - pathspec
    - fn
    - context
    argTypes:
    - struct repository*
    - struct tree*
    - struct pathspec*
    - read_tree_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 8
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: read_tree
    functionSourceFile: /src/git/tree.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - read_tree_at
    linkageType: ''
    returnType: int
    signature: "int read_tree(struct repository *r,\n\t      struct tree *tree,\n\t
      \     const struct pathspec *pathspec,\n\t      read_tree_fn_t fn, void *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/tree.c:106,1
    - Dst: S_ISDIR
      Src: /src/git/tree.c:111,1
    - Dst: S_ISDIR
      Src: /src/git/tree.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 6
    argNames:
    - name1
    - len1
    - mode1
    - name2
    - len2
    - mode2
    argTypes:
    - char*
    - size_t
    - int
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: base_name_compare
    functionSourceFile: /src/git/tree.c
    functionUses: 2
    functionsReached:
    - S_ISDIR
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int base_name_compare(const char *name1, size_t len1, int mode1,\n\t\t
      \     const char *name2, size_t len2, int mode2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/tree.c:135,1
    - Dst: S_ISDIR
      Src: /src/git/tree.c:142,1
    - Dst: S_ISDIR
      Src: /src/git/tree.c:145,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 6
    argNames:
    - name1
    - len1
    - mode1
    - name2
    - len2
    - mode2
    argTypes:
    - char*
    - size_t
    - int
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 152
    functionName: df_name_compare
    functionSourceFile: /src/git/tree.c
    functionUses: 2
    functionsReached:
    - S_ISDIR
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int df_name_compare(const char *name1, size_t len1, int mode1,\n\t\t
      \   const char *name2, size_t len2, int mode2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/tree.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - name1
    - len1
    - name2
    - len2
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: name_compare
    functionSourceFile: /src/git/tree.c
    functionUses: 9
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int name_compare(const char *name1, size_t len1, const char *name2,
      size_t len2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/tree.c:169,1
    - Dst: create_object
      Src: /src/git/tree.c:171,1
    - Dst: alloc_tree_node
      Src: /src/git/tree.c:171,1
    - Dst: object_as_type
      Src: /src/git/tree.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: lookup_tree
    functionSourceFile: /src/git/tree.c
    functionUses: 29
    functionsReached:
    - lookup_object
    - object_as_type
    - alloc_tree_node
    - create_object
    linkageType: ''
    returnType: struct tree
    signature: struct tree *lookup_tree(struct repository *r, const struct object_id
      *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - item
    - buffer
    - size
    argTypes:
    - struct tree*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: parse_tree_buffer
    functionSourceFile: /src/git/tree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parse_tree_buffer(struct tree *item, void *buffer, unsigned long
      size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/tree.c:195,1
    - Dst: error
      Src: /src/git/tree.c:198,1
    - Dst: oid_to_hex
      Src: /src/git/tree.c:199,1
    - Dst: free
      Src: /src/git/tree.c:201,1
    - Dst: error
      Src: /src/git/tree.c:202,1
    - Dst: oid_to_hex
      Src: /src/git/tree.c:203,1
    - Dst: parse_tree_buffer
      Src: /src/git/tree.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - r
    - item
    - quiet_on_missing
    argTypes:
    - struct repository*
    - struct tree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 186
    functionDepth: 12
    functionLinenumber: 186
    functionLinenumberEnd: 206
    functionName: repo_parse_tree_gently
    functionSourceFile: /src/git/tree.c
    functionUses: 3
    functionsReached:
    - error
    - oid_to_hex
    - free
    - odb_read_object
    - parse_tree_buffer
    linkageType: ''
    returnType: int
    signature: "int repo_parse_tree_gently(struct repository *r, struct tree *item,\n\t\t\t
      \  int quiet_on_missing)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/tree.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tree
    argTypes:
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: free_tree_buffer
    functionSourceFile: /src/git/tree.c
    functionUses: 9
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void free_tree_buffer(struct tree *tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/tree.c:218,1
    - Dst: repo_peel_to_type
      Src: /src/git/tree.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: repo_parse_tree_indirect
    functionSourceFile: /src/git/tree.c
    functionUses: 7
    functionsReached:
    - parse_object
    - repo_peel_to_type
    linkageType: ''
    returnType: struct tree
    signature: "struct tree *repo_parse_tree_indirect(struct repository *r,\n\t\t\t\t
      \     const struct object_id *oid)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/repack.c:16,1
    - Dst: strvec_pushf
      Src: /src/git/repack.c:18,1
    - Dst: strvec_pushf
      Src: /src/git/repack.c:20,1
    - Dst: strvec_pushf
      Src: /src/git/repack.c:22,1
    - Dst: strvec_pushf
      Src: /src/git/repack.c:24,1
    - Dst: strvec_pushf
      Src: /src/git/repack.c:26,1
    - Dst: strvec_pushf
      Src: /src/git/repack.c:28,1
    - Dst: strvec_pushf
      Src: /src/git/repack.c:30,1
    - Dst: strvec_pushf
      Src: /src/git/repack.c:32,1
    - Dst: strvec_pushf
      Src: /src/git/repack.c:34,1
    - Dst: strvec_push
      Src: /src/git/repack.c:36,1
    - Dst: strvec_push
      Src: /src/git/repack.c:38,1
    - Dst: strvec_push
      Src: /src/git/repack.c:40,1
    - Dst: strvec_push
      Src: /src/git/repack.c:42,1
    - Dst: strvec_push
      Src: /src/git/repack.c:43,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - cmd
    - args
    - out
    argTypes:
    - struct child_process*
    - struct pack_objects_args*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 46
    functionName: prepare_pack_objects
    functionSourceFile: /src/git/repack.c
    functionUses: 2
    functionsReached:
    - strvec_push
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: "void prepare_pack_objects(struct child_process *cmd,\n\t\t\t  const
      struct pack_objects_args *args,\n\t\t\t  const char *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/repack.c:50,1
    - Dst: free
      Src: /src/git/repack.c:51,1
    - Dst: free
      Src: /src/git/repack.c:52,1
    - Dst: free
      Src: /src/git/repack.c:53,1
    - Dst: list_objects_filter_release
      Src: /src/git/repack.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct pack_objects_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: pack_objects_args_release
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - list_objects_filter_release
    - free
    linkageType: ''
    returnType: void
    signature: void pack_objects_args_release(struct pack_objects_args *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_multi_pack_index
      Src: /src/git/repack.c:63,1
    - Dst: strbuf_addf
      Src: /src/git/repack.c:64,1
    - Dst: midx_contains_pack
      Src: /src/git/repack.c:65,1
    - Dst: clear_midx_file
      Src: /src/git/repack.c:66,1
    - Dst: clear_incremental_midx_files
      Src: /src/git/repack.c:68,1
    - Dst: strbuf_insertf
      Src: /src/git/repack.c:70,1
    - Dst: unlink_pack_path
      Src: /src/git/repack.c:71,1
    - Dst: strbuf_release
      Src: /src/git/repack.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - repo
    - dir_name
    - base_name
    - wrote_incremental_midx
    argTypes:
    - struct repository*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: repack_remove_redundant_pack
    functionSourceFile: /src/git/repack.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - clear_midx_file
    - unlink_pack_path
    - clear_incremental_midx_files
    - get_multi_pack_index
    - midx_contains_pack
    - strbuf_insertf
    linkageType: ''
    returnType: void
    signature: "void repack_remove_redundant_pack(struct repository *repo, const char
      *dir_name,\n\t\t\t\t  const char *base_name,\n\t\t\t\t  bool wrote_incremental_midx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/repack.c:78,1
    - Dst: die
      Src: /src/git/repack.c:79,1
    - Dst: _
      Src: /src/git/repack.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct write_pack_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: write_pack_opts_pack_prefix
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - die
    - _
    linkageType: ''
    returnType: char
    signature: char *write_pack_opts_pack_prefix(const struct write_pack_opts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/repack.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct write_pack_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: write_pack_opts_is_local
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: bool
    signature: bool write_pack_opts_is_local(const struct write_pack_opts *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_pack_opts_is_local
      Src: /src/git/repack.c:97,1
    - Dst: xfdopen
      Src: /src/git/repack.c:100,1
    - Dst: strbuf_getline_lf
      Src: /src/git/repack.c:101,1
    - Dst: die
      Src: /src/git/repack.c:105,1
    - Dst: _
      Src: /src/git/repack.c:105,1
    - Dst: string_list_append
      Src: /src/git/repack.c:112,1
    - Dst: generated_pack_populate
      Src: /src/git/repack.c:113,1
    - Dst: fclose
      Src: /src/git/repack.c:117,1
    - Dst: strbuf_release
      Src: /src/git/repack.c:119,1
    - Dst: finish_command
      Src: /src/git/repack.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - algop
    - opts
    - cmd
    - names
    argTypes:
    - struct git_hash_algo*
    - struct write_pack_opts*
    - struct child_process*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 122
    functionName: finish_pack_objects_cmd
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - write_pack_opts_is_local
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - die
    - finish_command
    - string_list_append
    - _
    - xfdopen
    - generated_pack_populate
    linkageType: ''
    returnType: int
    signature: "int finish_pack_objects_cmd(const struct git_hash_algo *algop,\n\t\t\t
      \   const struct write_pack_opts *opts,\n\t\t\t    struct child_process *cmd,\n\t\t\t
      \   struct string_list *names)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_for_each_pack
      Src: /src/git/repack.c:133,1
    - Dst: string_list_append
      Src: /src/git/repack.c:138,1
    - Dst: pack_basename
      Src: /src/git/repack.c:139,1
    - Dst: pack_basename
      Src: /src/git/repack.c:143,1
    - Dst: fspathcmp
      Src: /src/git/repack.c:146,1
    - Dst: strbuf_reset
      Src: /src/git/repack.c:149,1
    - Dst: strbuf_addstr
      Src: /src/git/repack.c:150,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack.c:151,1
    - Dst: string_list_append
      Src: /src/git/repack.c:154,1
    - Dst: string_list_append
      Src: /src/git/repack.c:156,1
    - Dst: string_list_append
      Src: /src/git/repack.c:158,1
    - Dst: string_list_sort
      Src: /src/git/repack.c:163,1
    - Dst: string_list_sort
      Src: /src/git/repack.c:164,1
    - Dst: string_list_sort
      Src: /src/git/repack.c:165,1
    - Dst: string_list_sort
      Src: /src/git/repack.c:166,1
    - Dst: strbuf_release
      Src: /src/git/repack.c:167,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - existing
    - extra_keep
    argTypes:
    - struct existing_packs*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 168
    functionName: existing_packs_collect
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - pack_basename
    - strbuf_reset
    - strbuf_strip_suffix
    - string_list_sort
    - repo_for_each_pack
    - string_list_append
    - fspathcmp
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void existing_packs_collect(struct existing_packs *existing,\n\t\t\t
      \   const struct string_list *extra_keep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - existing
    argTypes:
    - struct existing_packs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: existing_packs_has_non_kept
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int existing_packs_has_non_kept(const struct existing_packs *existing)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct string_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: existing_pack_mark_for_deletion
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void existing_pack_mark_for_deletion(struct string_list_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct string_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: existing_pack_unmark_for_deletion
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void existing_pack_unmark_for_deletion(struct string_list_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct string_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: existing_pack_is_marked_for_deletion
    functionSourceFile: /src/git/repack.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int existing_pack_is_marked_for_deletion(struct string_list_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct string_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: existing_packs_mark_retained
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void existing_packs_mark_retained(struct string_list_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct string_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: existing_pack_is_retained
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int existing_pack_is_retained(struct string_list_item *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/repack.c:209,1
    - Dst: existing_pack_is_retained
      Src: /src/git/repack.c:214,1
    - Dst: existing_pack_unmark_for_deletion
      Src: /src/git/repack.c:215,1
    - Dst: string_list_has_string
      Src: /src/git/repack.c:216,1
    - Dst: existing_pack_mark_for_deletion
      Src: /src/git/repack.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - algop
    - names
    - list
    argTypes:
    - struct git_hash_algo*
    - struct string_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 227
    functionName: existing_packs_mark_for_deletion_1
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - existing_pack_mark_for_deletion
    - existing_pack_is_retained
    - strlen
    - existing_pack_unmark_for_deletion
    - string_list_has_string
    linkageType: ''
    returnType: void
    signature: "void existing_packs_mark_for_deletion_1(const struct git_hash_algo
      *algop,\n\t\t\t\t\t       struct string_list *names,\n\t\t\t\t\t       struct
      string_list *list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/repack.c:209,1
    - Dst: existing_pack_is_retained
      Src: /src/git/repack.c:214,1
    - Dst: existing_pack_unmark_for_deletion
      Src: /src/git/repack.c:215,1
    - Dst: string_list_has_string
      Src: /src/git/repack.c:216,1
    - Dst: existing_pack_mark_for_deletion
      Src: /src/git/repack.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/repack.c
    functionUses: 41
    functionsReached:
    - existing_pack_mark_for_deletion
    - existing_pack_is_retained
    - strlen
    - existing_pack_unmark_for_deletion
    - string_list_has_string
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/repack.c:235,1
    - Dst: pack_basename
      Src: /src/git/repack.c:235,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack.c:236,1
    - Dst: string_list_lookup
      Src: /src/git/repack.c:238,1
    - Dst: BUG
      Src: /src/git/repack.c:240,1
    - Dst: pack_basename
      Src: /src/git/repack.c:240,1
    - Dst: existing_packs_mark_retained
      Src: /src/git/repack.c:242,1
    - Dst: strbuf_release
      Src: /src/git/repack.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - existing
    - cruft
    argTypes:
    - struct existing_packs*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 244
    functionName: existing_packs_retain_cruft
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    - strbuf_release
    - pack_basename
    - strbuf_strip_suffix
    - strbuf_addstr
    - existing_packs_mark_retained
    - BUG
    linkageType: ''
    returnType: void
    signature: "void existing_packs_retain_cruft(struct existing_packs *existing,\n\t\t\t\t
      struct packed_git *cruft)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: existing_packs_mark_for_deletion_1
      Src: /src/git/repack.c:251,1
    - Dst: existing_packs_mark_for_deletion_1
      Src: /src/git/repack.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - existing
    - names
    argTypes:
    - struct existing_packs*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 255
    functionName: existing_packs_mark_for_deletion
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - existing_packs_mark_for_deletion_1
    linkageType: ''
    returnType: void
    signature: "void existing_packs_mark_for_deletion(struct existing_packs *existing,\n\t\t\t\t
      \     struct string_list *names)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/repack.c:272,1
    - Dst: strbuf_reset
      Src: /src/git/repack.c:275,1
    - Dst: strbuf_addstr
      Src: /src/git/repack.c:276,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack.c:277,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack.c:278,1
    - Dst: string_list_lookup
      Src: /src/git/repack.c:280,1
    - Dst: existing_packs_mark_retained
      Src: /src/git/repack.c:282,1
    - Dst: string_list_lookup
      Src: /src/git/repack.c:284,1
    - Dst: existing_packs_mark_retained
      Src: /src/git/repack.c:286,1
    - Dst: strbuf_release
      Src: /src/git/repack.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - existing
    argTypes:
    - struct existing_packs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 290
    functionName: existing_packs_retain_midx_packs
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_lookup
    - strbuf_release
    - strbuf_reset
    - strbuf_strip_suffix
    - strbuf_addstr
    - existing_packs_mark_retained
    linkageType: ''
    returnType: void
    signature: void existing_packs_retain_midx_packs(struct existing_packs *existing)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: existing_pack_is_marked_for_deletion
      Src: /src/git/repack.c:299,1
    - Dst: repack_remove_redundant_pack
      Src: /src/git/repack.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - repo
    - packs
    - packdir
    - wrote_incremental_midx
    argTypes:
    - struct repository*
    - struct string_list*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 292
    functionDepth: 5
    functionLinenumber: 292
    functionLinenumberEnd: 304
    functionName: remove_redundant_packs_1
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - existing_pack_is_marked_for_deletion
    - repack_remove_redundant_pack
    linkageType: ''
    returnType: void
    signature: "void remove_redundant_packs_1(struct repository *repo,\n\t\t\t\t     struct
      string_list *packs,\n\t\t\t\t     const char *packdir,\n\t\t\t\t     bool wrote_incremental_midx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: existing_pack_is_marked_for_deletion
      Src: /src/git/repack.c:299,1
    - Dst: repack_remove_redundant_pack
      Src: /src/git/repack.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 298
    functionDepth: 5
    functionLinenumber: 298
    functionLinenumberEnd: 303
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/repack.c
    functionUses: 42
    functionsReached:
    - existing_pack_is_marked_for_deletion
    - repack_remove_redundant_pack
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, packs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_redundant_packs_1
      Src: /src/git/repack.c:310,1
    - Dst: remove_redundant_packs_1
      Src: /src/git/repack.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - existing
    - packdir
    - wrote_incremental_midx
    argTypes:
    - struct existing_packs*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 6
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: existing_packs_remove_redundant
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - remove_redundant_packs_1
    linkageType: ''
    returnType: void
    signature: "void existing_packs_remove_redundant(struct existing_packs *existing,\n\t\t\t\t
      \    const char *packdir,\n\t\t\t\t     bool wrote_incremental_midx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/repack.c:318,1
    - Dst: string_list_clear
      Src: /src/git/repack.c:319,1
    - Dst: string_list_clear
      Src: /src/git/repack.c:320,1
    - Dst: string_list_clear
      Src: /src/git/repack.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - existing
    argTypes:
    - struct existing_packs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: existing_packs_release
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    linkageType: ''
    returnType: void
    signature: void existing_packs_release(struct existing_packs *existing)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/repack.c:345,1
    - Dst: ARRAY_SIZE
      Src: /src/git/repack.c:348,1
    - Dst: strbuf_reset
      Src: /src/git/repack.c:349,1
    - Dst: strbuf_addf
      Src: /src/git/repack.c:350,1
    - Dst: stat
      Src: /src/git/repack.c:352,1
    - Dst: register_tempfile
      Src: /src/git/repack.c:355,1
    - Dst: strbuf_release
      Src: /src/git/repack.c:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - name
    - packtmp
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 340
    functionDepth: 7
    functionLinenumber: 340
    functionLinenumberEnd: 360
    functionName: generated_pack_populate
    functionSourceFile: /src/git/repack.c
    functionUses: 2
    functionsReached:
    - register_tempfile
    - ARRAY_SIZE
    - strbuf_release
    - strbuf_reset
    - stat
    - strbuf_addf
    - xcalloc
    linkageType: ''
    returnType: struct generated_pack
    signature: "struct generated_pack *generated_pack_populate(const char *name,\n\t\t\t\t\t
      \      const char *packtmp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/repack.c:365,1
    - Dst: strcmp
      Src: /src/git/repack.c:366,1
    - Dst: BUG
      Src: /src/git/repack.c:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - pack
    - ext
    argTypes:
    - struct generated_pack*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 371
    functionName: generated_pack_has_ext
    functionSourceFile: /src/git/repack.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - BUG
    - strcmp
    linkageType: ''
    returnType: int
    signature: int generated_pack_has_ext(const struct generated_pack *pack, const
      char *ext)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/repack.c:377,1
    - Dst: mkpathdup
      Src: /src/git/repack.c:380,1
    - Dst: get_tempfile_path
      Src: /src/git/repack.c:384,1
    - Dst: stat
      Src: /src/git/repack.c:387,1
    - Dst: chmod
      Src: /src/git/repack.c:389,1
    - Dst: rename_tempfile
      Src: /src/git/repack.c:392,1
    - Dst: die_errno
      Src: /src/git/repack.c:393,1
    - Dst: _
      Src: /src/git/repack.c:393,1
    - Dst: die
      Src: /src/git/repack.c:396,1
    - Dst: _
      Src: /src/git/repack.c:396,1
    - Dst: unlink
      Src: /src/git/repack.c:398,1
    - Dst: die_errno
      Src: /src/git/repack.c:399,1
    - Dst: _
      Src: /src/git/repack.c:399,1
    - Dst: free
      Src: /src/git/repack.c:401,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - pack
    - name
    - packdir
    - packtmp
    argTypes:
    - struct generated_pack*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 373
    functionDepth: 6
    functionLinenumber: 373
    functionLinenumberEnd: 403
    functionName: generated_pack_install
    functionSourceFile: /src/git/repack.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - rename_tempfile
    - die
    - chmod
    - stat
    - die_errno
    - _
    - free
    - unlink
    - mkpathdup
    - get_tempfile_path
    linkageType: ''
    returnType: void
    signature: "void generated_pack_install(struct generated_pack *pack, const char
      *name,\n\t\t\t    const char *packdir, const char *packtmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - slabname
    - ','
    - elemtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: define_commit_slab
    functionSourceFile: /src/git/commit-slab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: define_commit_slab(slabname, elemtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/pkt-line.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: packet_trace_identity
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void packet_trace_identity(const char *prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: in_async
      Src: /src/git/pkt-line.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: get_trace_prefix
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 0
    functionsReached:
    - in_async
    linkageType: ''
    returnType: char
    signature: char *get_trace_prefix(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace_verbatim
      Src: /src/git/pkt-line.c:29,1
    - Dst: trace_verbatim
      Src: /src/git/pkt-line.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - len
    - sideband
    argTypes:
    - char*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: packet_trace_pack
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 0
    functionsReached:
    - trace_verbatim
    linkageType: ''
    returnType: int
    signature: int packet_trace_pack(const char *buf, unsigned int len, int sideband)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: trace_want
      Src: /src/git/pkt-line.c:45,1
    - Dst: trace_want
      Src: /src/git/pkt-line.c:45,1
    - Dst: packet_trace_pack
      Src: /src/git/pkt-line.c:49,1
    - Dst: starts_with
      Src: /src/git/pkt-line.c:51,1
    - Dst: starts_with
      Src: /src/git/pkt-line.c:51,1
    - Dst: packet_trace_pack
      Src: /src/git/pkt-line.c:54,1
    - Dst: strlen
      Src: /src/git/pkt-line.c:61,1
    - Dst: trace_want
      Src: /src/git/pkt-line.c:64,1
    - Dst: strbuf_init
      Src: /src/git/pkt-line.c:68,1
    - Dst: strbuf_addf
      Src: /src/git/pkt-line.c:70,1
    - Dst: get_trace_prefix
      Src: /src/git/pkt-line.c:71,1
    - Dst: strbuf_addch
      Src: /src/git/pkt-line.c:79,1
    - Dst: strbuf_addf
      Src: /src/git/pkt-line.c:81,1
    - Dst: strbuf_addch
      Src: /src/git/pkt-line.c:84,1
    - Dst: trace_strbuf
      Src: /src/git/pkt-line.c:85,1
    - Dst: strbuf_release
      Src: /src/git/pkt-line.c:86,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - buf
    - len
    - write
    argTypes:
    - char*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 87
    functionName: packet_trace
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - trace_want
    - get_trace_prefix
    - strbuf_addf
    - starts_with
    - strbuf_addch
    - strlen
    - trace_strbuf
    - packet_trace_pack
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: void packet_trace(const char *buf, unsigned int len, int write)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:95,1
    - Dst: write_in_full
      Src: /src/git/pkt-line.c:96,1
    - Dst: die_errno
      Src: /src/git/pkt-line.c:97,1
    - Dst: _
      Src: /src/git/pkt-line.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: packet_flush
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 12
    functionsReached:
    - write_in_full
    - die_errno
    - _
    - packet_trace
    linkageType: ''
    returnType: void
    signature: void packet_flush(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:102,1
    - Dst: write_in_full
      Src: /src/git/pkt-line.c:103,1
    - Dst: die_errno
      Src: /src/git/pkt-line.c:104,1
    - Dst: _
      Src: /src/git/pkt-line.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: packet_delim
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 2
    functionsReached:
    - write_in_full
    - die_errno
    - _
    - packet_trace
    linkageType: ''
    returnType: void
    signature: void packet_delim(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:109,1
    - Dst: write_in_full
      Src: /src/git/pkt-line.c:110,1
    - Dst: die_errno
      Src: /src/git/pkt-line.c:111,1
    - Dst: _
      Src: /src/git/pkt-line.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: packet_response_end
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - write_in_full
    - die_errno
    - _
    - packet_trace
    linkageType: ''
    returnType: void
    signature: void packet_response_end(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:116,1
    - Dst: write_in_full
      Src: /src/git/pkt-line.c:117,1
    - Dst: error
      Src: /src/git/pkt-line.c:118,1
    - Dst: _
      Src: /src/git/pkt-line.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: packet_flush_gently
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 4
    functionsReached:
    - write_in_full
    - _
    - error
    - packet_trace
    linkageType: ''
    returnType: int
    signature: int packet_flush_gently(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:124,1
    - Dst: strbuf_add
      Src: /src/git/pkt-line.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: packet_buf_flush
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 6
    functionsReached:
    - strbuf_add
    - packet_trace
    linkageType: ''
    returnType: void
    signature: void packet_buf_flush(struct strbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:130,1
    - Dst: strbuf_add
      Src: /src/git/pkt-line.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: packet_buf_delim
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - strbuf_add
    - packet_trace
    linkageType: ''
    returnType: void
    signature: void packet_buf_delim(struct strbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hex
      Src: /src/git/pkt-line.c:139,1
    - Dst: hex
      Src: /src/git/pkt-line.c:140,1
    - Dst: hex
      Src: /src/git/pkt-line.c:141,1
    - Dst: hex
      Src: /src/git/pkt-line.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 144
    functionName: set_packet_header
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - hex
    linkageType: ''
    returnType: void
    signature: void set_packet_header(char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: hex
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 292
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hex(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/pkt-line.c:152,1
    - Dst: strbuf_addstr
      Src: /src/git/pkt-line.c:153,1
    - Dst: strbuf_vaddf
      Src: /src/git/pkt-line.c:154,1
    - Dst: die
      Src: /src/git/pkt-line.c:158,1
    - Dst: _
      Src: /src/git/pkt-line.c:158,1
    - Dst: set_packet_header
      Src: /src/git/pkt-line.c:160,1
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - out
    - prefix
    - fmt
    - args
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 162
    functionName: format_packet
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 0
    functionsReached:
    - set_packet_header
    - die
    - strbuf_vaddf
    - strbuf_addstr
    - _
    - packet_trace
    linkageType: ''
    returnType: void
    signature: "void format_packet(struct strbuf *out, const char *prefix,\n\t\t\t
      \ const char *fmt, va_list args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/pkt-line.c:169,1
    - Dst: format_packet
      Src: /src/git/pkt-line.c:170,1
    - Dst: write_in_full
      Src: /src/git/pkt-line.c:171,1
    - Dst: check_pipe
      Src: /src/git/pkt-line.c:173,1
    - Dst: die_errno
      Src: /src/git/pkt-line.c:174,1
    - Dst: _
      Src: /src/git/pkt-line.c:174,1
    - Dst: error
      Src: /src/git/pkt-line.c:176,1
    - Dst: _
      Src: /src/git/pkt-line.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - fd
    - gently
    - prefix
    - fmt
    - args
    argTypes:
    - int
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: packet_write_fmt_1
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_reset
    - die_errno
    - format_packet
    - _
    - write_in_full
    - check_pipe
    linkageType: ''
    returnType: int
    signature: "int packet_write_fmt_1(int fd, int gently, const char *prefix,\n\t\t\t
      \     const char *fmt, va_list args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/pkt-line.c:186,1
    - Dst: packet_write_fmt_1
      Src: /src/git/pkt-line.c:187,1
    - Dst: va_end
      Src: /src/git/pkt-line.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: packet_write_fmt
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 4
    functionsReached:
    - va_end
    - va_start
    - packet_write_fmt_1
    linkageType: ''
    returnType: void
    signature: void packet_write_fmt(int fd, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/pkt-line.c:196,1
    - Dst: packet_write_fmt_1
      Src: /src/git/pkt-line.c:197,1
    - Dst: va_end
      Src: /src/git/pkt-line.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 6
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: packet_write_fmt_gently
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 4
    functionsReached:
    - va_end
    - va_start
    - packet_write_fmt_1
    linkageType: ''
    returnType: int
    signature: int packet_write_fmt_gently(int fd, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/pkt-line.c:209,1
    - Dst: _
      Src: /src/git/pkt-line.c:209,1
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:213,1
    - Dst: set_packet_header
      Src: /src/git/pkt-line.c:216,1
    - Dst: write_in_full
      Src: /src/git/pkt-line.c:225,1
    - Dst: write_in_full
      Src: /src/git/pkt-line.c:226,1
    - Dst: strbuf_addf
      Src: /src/git/pkt-line.c:227,1
    - Dst: _
      Src: /src/git/pkt-line.c:227,1
    - Dst: strerror
      Src: /src/git/pkt-line.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - fd_out
    - buf
    - size
    - err
    argTypes:
    - int
    - char*
    - size_t
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 231
    functionName: do_packet_write
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 0
    functionsReached:
    - set_packet_header
    - strbuf_addf
    - strerror
    - strbuf_addstr
    - _
    - write_in_full
    - packet_trace
    linkageType: ''
    returnType: int
    signature: "int do_packet_write(const int fd_out, const char *buf, size_t size,\n\t\t\t
      \  struct strbuf *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_packet_write
      Src: /src/git/pkt-line.c:236,1
    - Dst: error
      Src: /src/git/pkt-line.c:237,1
    - Dst: strbuf_release
      Src: /src/git/pkt-line.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fd_out
    - buf
    - size
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: packet_write_gently
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 0
    functionsReached:
    - error
    - do_packet_write
    - strbuf_release
    linkageType: ''
    returnType: int
    signature: int packet_write_gently(const int fd_out, const char *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_packet_write
      Src: /src/git/pkt-line.c:247,1
    - Dst: die
      Src: /src/git/pkt-line.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - fd_out
    - buf
    - size
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: packet_write
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 3
    functionsReached:
    - do_packet_write
    - die
    linkageType: ''
    returnType: void
    signature: void packet_write(int fd_out, const char *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/pkt-line.c:257,1
    - Dst: _
      Src: /src/git/pkt-line.c:257,1
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:259,1
    - Dst: set_packet_header
      Src: /src/git/pkt-line.c:262,1
    - Dst: fwrite_or_die
      Src: /src/git/pkt-line.c:263,1
    - Dst: fwrite_or_die
      Src: /src/git/pkt-line.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - f
    - buf
    - size
    argTypes:
    - FILE*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: packet_fwrite
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - set_packet_header
    - die
    - _
    - fwrite_or_die
    - packet_trace
    linkageType: ''
    returnType: void
    signature: void packet_fwrite(FILE *f, const char *buf, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/pkt-line.c:272,1
    - Dst: va_start
      Src: /src/git/pkt-line.c:274,1
    - Dst: format_packet
      Src: /src/git/pkt-line.c:275,1
    - Dst: va_end
      Src: /src/git/pkt-line.c:276,1
    - Dst: fwrite_or_die
      Src: /src/git/pkt-line.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - fh
    - fmt
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: packet_fwrite_fmt
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - va_end
    - format_packet
    - fwrite_or_die
    - va_start
    linkageType: ''
    returnType: void
    signature: void packet_fwrite_fmt(FILE *fh, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:283,1
    - Dst: fwrite_or_die
      Src: /src/git/pkt-line.c:284,1
    - Dst: fflush_or_die
      Src: /src/git/pkt-line.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: packet_fflush
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - fwrite_or_die
    - fflush_or_die
    - packet_trace
    linkageType: ''
    returnType: void
    signature: void packet_fflush(FILE *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/pkt-line.c:292,1
    - Dst: format_packet
      Src: /src/git/pkt-line.c:293,1
    - Dst: va_end
      Src: /src/git/pkt-line.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - fmt
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 5
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: packet_buf_write
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 14
    functionsReached:
    - va_end
    - va_start
    - format_packet
    linkageType: ''
    returnType: void
    signature: void packet_buf_write(struct strbuf *buf, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/pkt-line.c:299,1
    - Dst: xread
      Src: /src/git/pkt-line.c:304,1
    - Dst: free
      Src: /src/git/pkt-line.c:306,1
    - Dst: packet_write_gently
      Src: /src/git/pkt-line.c:311,1
    - Dst: free
      Src: /src/git/pkt-line.c:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - fd_in
    - fd_out
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 297
    functionDepth: 6
    functionLinenumber: 297
    functionLinenumberEnd: 315
    functionName: write_packetized_from_fd_no_flush
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - xread
    - xmalloc
    - packet_write_gently
    - free
    linkageType: ''
    returnType: int
    signature: int write_packetized_from_fd_no_flush(int fd_in, int fd_out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: packet_write_gently
      Src: /src/git/pkt-line.c:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - src_in
    - len
    - fd_out
    - packet_counter
    argTypes:
    - char*
    - size_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 317
    functionDepth: 6
    functionLinenumber: 317
    functionLinenumberEnd: 337
    functionName: write_packetized_from_buf_no_flush_count
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - packet_write_gently
    linkageType: ''
    returnType: int
    signature: "int write_packetized_from_buf_no_flush_count(const char *src_in, size_t
      len,\n\t\t\t\t\t     int fd_out, int *packet_counter)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pkt-line.c:345,1
    - Dst: memcpy
      Src: /src/git/pkt-line.c:350,1
    - Dst: read_in_full
      Src: /src/git/pkt-line.c:354,1
    - Dst: error_errno
      Src: /src/git/pkt-line.c:357,1
    - Dst: _
      Src: /src/git/pkt-line.c:357,1
    - Dst: die_errno
      Src: /src/git/pkt-line.c:358,1
    - Dst: _
      Src: /src/git/pkt-line.c:358,1
    - Dst: error
      Src: /src/git/pkt-line.c:370,1
    - Dst: _
      Src: /src/git/pkt-line.c:370,1
    - Dst: die
      Src: /src/git/pkt-line.c:371,1
    - Dst: _
      Src: /src/git/pkt-line.c:371,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 6
    argNames:
    - fd
    - src_buf
    - src_size
    - dst
    - size
    - options
    argTypes:
    - int
    - char**
    - size_t*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 375
    functionName: get_packet_data
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - die
    - die_errno
    - memcpy
    - read_in_full
    - _
    - BUG
    linkageType: ''
    returnType: int
    signature: "int get_packet_data(int fd, char **src_buf, size_t *src_size,\n\t\t\t
      \  void *dst, size_t size, int options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pkt-line.c:380,1
    - Dst: hexval
      Src: /src/git/pkt-line.c:381,1
    - Dst: hexval
      Src: /src/git/pkt-line.c:382,1
    - Dst: hexval
      Src: /src/git/pkt-line.c:383,1
    - Dst: hexval
      Src: /src/git/pkt-line.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lenbuf_hex
    - size
    argTypes:
    - char[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 385
    functionName: packet_length
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - BUG
    - hexval
    linkageType: ''
    returnType: int
    signature: int packet_length(const char lenbuf_hex[4], size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/git/pkt-line.c:396,1
    - Dst: strstr
      Src: /src/git/pkt-line.c:401,1
    - Dst: strchr
      Src: /src/git/pkt-line.c:405,1
    - Dst: strlen
      Src: /src/git/pkt-line.c:405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 411
    functionName: find_packfile_uri_path
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 0
    functionsReached:
    - strspn
    - strchr
    - strlen
    - strstr
    linkageType: ''
    returnType: char
    signature: char *find_packfile_uri_path(const char *buffer)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: get_packet_data
      Src: /src/git/pkt-line.c:422,1
    - Dst: packet_length
      Src: /src/git/pkt-line.c:427,1
    - Dst: error
      Src: /src/git/pkt-line.c:431,1
    - Dst: _
      Src: /src/git/pkt-line.c:431,1
    - Dst: die
      Src: /src/git/pkt-line.c:433,1
    - Dst: _
      Src: /src/git/pkt-line.c:433,1
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:435,1
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:439,1
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:443,1
    - Dst: error
      Src: /src/git/pkt-line.c:448,1
    - Dst: _
      Src: /src/git/pkt-line.c:448,1
    - Dst: die
      Src: /src/git/pkt-line.c:450,1
    - Dst: _
      Src: /src/git/pkt-line.c:450,1
    - Dst: error
      Src: /src/git/pkt-line.c:456,1
    - Dst: _
      Src: /src/git/pkt-line.c:456,1
    - Dst: die
      Src: /src/git/pkt-line.c:458,1
    - Dst: _
      Src: /src/git/pkt-line.c:458,1
    - Dst: get_packet_data
      Src: /src/git/pkt-line.c:461,1
    - Dst: find_packfile_uri_path
      Src: /src/git/pkt-line.c:496,1
    - Dst: strbuf_insert
      Src: /src/git/pkt-line.c:499,1
    - Dst: strbuf_splice
      Src: /src/git/pkt-line.c:500,1
    - Dst: strlen
      Src: /src/git/pkt-line.c:501,1
    - Dst: strlen
      Src: /src/git/pkt-line.c:501,1
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:502,1
    - Dst: strbuf_release
      Src: /src/git/pkt-line.c:503,1
    - Dst: packet_trace
      Src: /src/git/pkt-line.c:505,1
    - Dst: starts_with
      Src: /src/git/pkt-line.c:509,1
    - Dst: die
      Src: /src/git/pkt-line.c:510,1
    - Dst: _
      Src: /src/git/pkt-line.c:510,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 7
    argNames:
    - fd
    - src_buffer
    - src_len
    - buffer
    - size
    - pktlen
    - options
    argTypes:
    - int
    - char**
    - size_t*
    - char*
    - unsigned
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 413
    functionDepth: 5
    functionLinenumber: 413
    functionLinenumberEnd: 514
    functionName: packet_read_with_status
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - error
    - packet_trace
    - strbuf_release
    - die
    - find_packfile_uri_path
    - get_packet_data
    - strbuf_insert
    - starts_with
    - strlen
    - strbuf_splice
    - _
    - packet_length
    linkageType: ''
    returnType: enum packet_read_status
    signature: "enum packet_read_status packet_read_with_status(int fd, char **src_buffer,\n\t\t\t\t\t\tsize_t
      *src_len, char *buffer,\n\t\t\t\t\t\tunsigned size, int *pktlen,\n\t\t\t\t\t\tint
      options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packet_read_with_status
      Src: /src/git/pkt-line.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fd
    - buffer
    - size
    - options
    argTypes:
    - int
    - char*
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 516
    functionDepth: 6
    functionLinenumber: 516
    functionLinenumberEnd: 524
    functionName: packet_read
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - packet_read_with_status
    linkageType: ''
    returnType: int
    signature: int packet_read(int fd, char *buffer, unsigned size, int options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_read
      Src: /src/git/pkt-line.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - dst_len
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 526
    functionDepth: 7
    functionLinenumber: 526
    functionLinenumberEnd: 533
    functionName: packet_read_line
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 3
    functionsReached:
    - packet_read
    linkageType: ''
    returnType: char
    signature: char *packet_read_line(int fd, int *dst_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packet_read
      Src: /src/git/pkt-line.c:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - dst_len
    - dst_line
    argTypes:
    - int
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 535
    functionDepth: 7
    functionLinenumber: 535
    functionLinenumberEnd: 544
    functionName: packet_read_line_gently
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - packet_read
    linkageType: ''
    returnType: int
    signature: int packet_read_line_gently(int fd, int *dst_len, char **dst_line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/pkt-line.c:554,1
    - Dst: packet_read
      Src: /src/git/pkt-line.c:555,1
    - Dst: strbuf_release
      Src: /src/git/pkt-line.c:570,1
    - Dst: strbuf_setlen
      Src: /src/git/pkt-line.c:572,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - fd_in
    - sb_out
    - options
    argTypes:
    - int
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 546
    functionDepth: 7
    functionLinenumber: 546
    functionLinenumberEnd: 576
    functionName: read_packetized_to_strbuf
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_setlen
    - packet_read
    - strbuf_grow
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_packetized_to_strbuf(int fd_in, struct strbuf *sb_out,
      int options)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: packet_read_with_status
      Src: /src/git/pkt-line.c:586,1
    - Dst: demultiplex_sideband
      Src: /src/git/pkt-line.c:590,1
    - Dst: write_or_die
      Src: /src/git/pkt-line.c:595,1
    - Dst: BUG
      Src: /src/git/pkt-line.c:599,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - me
    - in_stream
    - out
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 578
    functionDepth: 6
    functionLinenumber: 578
    functionLinenumberEnd: 604
    functionName: recv_sideband
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 2
    functionsReached:
    - packet_read_with_status
    - write_or_die
    - BUG
    - demultiplex_sideband
    linkageType: ''
    returnType: int
    signature: int recv_sideband(const char *me, int in_stream, int out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/pkt-line.c:611,1
    - Dst: strbuf_init
      Src: /src/git/pkt-line.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - reader
    - fd
    - src_buffer
    - src_len
    - options
    argTypes:
    - struct packet_reader*
    - int
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 622
    functionName: packet_reader_init
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 10
    functionsReached:
    - memset
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: "void packet_reader_init(struct packet_reader *reader, int fd,\n\t\t\tchar
      *src_buffer, size_t src_len,\n\t\t\tint options)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: packet_read_with_status
      Src: /src/git/pkt-line.c:640,1
    - Dst: demultiplex_sideband
      Src: /src/git/pkt-line.c:649,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - reader
    argTypes:
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 624
    functionDepth: 6
    functionLinenumber: 624
    functionLinenumberEnd: 663
    functionName: packet_reader_read
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 17
    functionsReached:
    - packet_read_with_status
    - demultiplex_sideband
    linkageType: ''
    returnType: enum packet_read_status
    signature: enum packet_read_status packet_reader_read(struct packet_reader *reader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/pkt-line.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 665
    functionDepth: 7
    functionLinenumber: 665
    functionLinenumberEnd: 675
    functionName: packet_reader_peek
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 3
    functionsReached:
    - packet_reader_read
    linkageType: ''
    returnType: enum packet_read_status
    signature: enum packet_read_status packet_reader_peek(struct packet_reader *reader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - writer
    - dest_fd
    argTypes:
    - struct packet_writer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 681
    functionName: packet_writer_init
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void packet_writer_init(struct packet_writer *writer, int dest_fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/pkt-line.c:687,1
    - Dst: packet_write_fmt_1
      Src: /src/git/pkt-line.c:688,1
    - Dst: va_end
      Src: /src/git/pkt-line.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - fmt
    argTypes:
    - struct packet_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 683
    functionDepth: 6
    functionLinenumber: 683
    functionLinenumberEnd: 691
    functionName: packet_writer_write
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 8
    functionsReached:
    - va_end
    - va_start
    - packet_write_fmt_1
    linkageType: ''
    returnType: void
    signature: void packet_writer_write(struct packet_writer *writer, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/pkt-line.c:697,1
    - Dst: packet_write_fmt_1
      Src: /src/git/pkt-line.c:698,1
    - Dst: va_end
      Src: /src/git/pkt-line.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - fmt
    argTypes:
    - struct packet_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 693
    functionDepth: 6
    functionLinenumber: 693
    functionLinenumberEnd: 701
    functionName: packet_writer_error
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 8
    functionsReached:
    - va_end
    - va_start
    - packet_write_fmt_1
    linkageType: ''
    returnType: void
    signature: void packet_writer_error(struct packet_writer *writer, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packet_delim
      Src: /src/git/pkt-line.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - struct packet_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 5
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: packet_writer_delim
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 2
    functionsReached:
    - packet_delim
    linkageType: ''
    returnType: void
    signature: void packet_writer_delim(struct packet_writer *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packet_flush
      Src: /src/git/pkt-line.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - struct packet_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 708
    functionDepth: 5
    functionLinenumber: 708
    functionLinenumberEnd: 711
    functionName: packet_writer_flush
    functionSourceFile: /src/git/pkt-line.c
    functionUses: 1
    functionsReached:
    - packet_flush
    linkageType: ''
    returnType: void
    signature: void packet_writer_flush(struct packet_writer *writer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ewah_pool_new
      Src: /src/git/pack-bitmap.c:161,1
    - Dst: lookup_stored_bitmap
      Src: /src/git/pack-bitmap.c:162,1
    - Dst: ewah_xor
      Src: /src/git/pack-bitmap.c:163,1
    - Dst: ewah_pool_free
      Src: /src/git/pack-bitmap.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct stored_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: lookup_stored_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - ewah_pool_new
    - ewah_pool_free
    - ewah_xor
    - lookup_stored_bitmap
    linkageType: ''
    returnType: struct ewah_bitmap
    signature: struct ewah_bitmap *lookup_stored_bitmap(struct stored_bitmap *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ewah_pool_new
      Src: /src/git/pack-bitmap.c:175,1
    - Dst: ewah_read_mmap
      Src: /src/git/pack-bitmap.c:177,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:181,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:181,1
    - Dst: ewah_pool_free
      Src: /src/git/pack-bitmap.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - map
    - map_size
    - map_pos
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: read_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - error
    - ewah_pool_free
    - ewah_read_mmap
    - _
    - ewah_pool_new
    linkageType: ''
    returnType: struct ewah_bitmap
    signature: "struct ewah_bitmap *read_bitmap(const unsigned char *map,\n\t\t\t\tsize_t
      map_size, size_t *map_pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_bitmap
      Src: /src/git/pack-bitmap.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: read_bitmap_1
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - read_bitmap
    linkageType: ''
    returnType: struct ewah_bitmap
    signature: struct ewah_bitmap *read_bitmap_1(struct bitmap_index *index)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: bitmap_num_objects_total
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bitmap_num_objects_total(struct bitmap_index *index)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: bitmap_num_objects
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bitmap_num_objects(struct bitmap_index *index)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:218,1
    - Dst: ASSERT
      Src: /src/git/pack-bitmap.c:220,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:220,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:225,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:229,1
    - Dst: get_be32
      Src: /src/git/pack-bitmap.c:235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - index
    - pos
    argTypes:
    - struct bitmap_index*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 236
    functionName: bitmap_name_hash
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - bitmap_is_midx
    - BUG
    - get_be32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bitmap_name_hash(struct bitmap_index *index, uint32_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bitmap_git
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: bitmap_repo
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_is_midx
    linkageType: ''
    returnType: struct repository
    signature: struct repository *bitmap_repo(struct bitmap_index *bitmap_git)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:248,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:253,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:253,1
    - Dst: memcmp
      Src: /src/git/pack-bitmap.c:255,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:256,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:256,1
    - Dst: ntohs
      Src: /src/git/pack-bitmap.c:258,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:260,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:260,1
    - Dst: ntohs
      Src: /src/git/pack-bitmap.c:264,1
    - Dst: st_mult
      Src: /src/git/pack-bitmap.c:265,1
    - Dst: bitmap_num_objects
      Src: /src/git/pack-bitmap.c:265,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:269,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:274,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:274,1
    - Dst: st_mult
      Src: /src/git/pack-bitmap.c:280,1
    - Dst: ntohl
      Src: /src/git/pack-bitmap.c:280,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:283,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:283,1
    - Dst: git_env_bool
      Src: /src/git/pack-bitmap.c:284,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:295,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:295,1
    - Dst: get_be64
      Src: /src/git/pack-bitmap.c:297,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:299,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:299,1
    - Dst: git_env_bool
      Src: /src/git/pack-bitmap.c:301,1
    - Dst: get_be64
      Src: /src/git/pack-bitmap.c:306,1
    - Dst: get_be32
      Src: /src/git/pack-bitmap.c:307,1
    - Dst: get_be32
      Src: /src/git/pack-bitmap.c:308,1
    - Dst: st_add
      Src: /src/git/pack-bitmap.c:310,1
    - Dst: st_mult
      Src: /src/git/pack-bitmap.c:310,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:313,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:313,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pack-bitmap.c:315,1
    - Dst: get_be64
      Src: /src/git/pack-bitmap.c:321,1
    - Dst: ntohl
      Src: /src/git/pack-bitmap.c:330,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 245
    functionDepth: 6
    functionLinenumber: 245
    functionLinenumberEnd: 334
    functionName: load_bitmap_header
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - error
    - git_env_bool
    - ntohs
    - ntohl
    - get_be64
    - get_be32
    - bitmap_num_objects
    - _
    - CALLOC_ARRAY
    - bitmap_repo
    - st_add
    - BUG
    - st_mult
    - memcmp
    linkageType: ''
    returnType: int
    signature: int load_bitmap_header(struct bitmap_index *index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/pack-bitmap.c:346,1
    - Dst: oidcpy
      Src: /src/git/pack-bitmap.c:351,1
    - Dst: kh_put_oid_map
      Src: /src/git/pack-bitmap.c:353,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:361,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:361,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:361,1
    - Dst: kh_value
      Src: /src/git/pack-bitmap.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - index
    - root
    - oid
    - xor_with
    - flags
    - map_pos
    argTypes:
    - struct bitmap_index*
    - struct ewah_bitmap*
    - struct object_id*
    - struct stored_bitmap*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 367
    functionName: store_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - oidcpy
    - kh_put_oid_map
    - kh_value
    - xmalloc
    - _
    linkageType: ''
    returnType: struct stored_bitmap
    signature: "struct stored_bitmap *store_bitmap(struct bitmap_index *index,\n\t\t\t\t\t
      \ struct ewah_bitmap *root,\n\t\t\t\t\t  const struct object_id *oid,\n\t\t\t\t\t
      \ struct stored_bitmap *xor_with,\n\t\t\t\t\t  int flags, size_t map_pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_be32
      Src: /src/git/pack-bitmap.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - pos
    argTypes:
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: read_be32
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - get_be32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t read_be32(const unsigned char *buffer, size_t *pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - pos
    argTypes:
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: read_u8
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t read_u8(const unsigned char *buffer, size_t *pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nth_midxed_object_oid
      Src: /src/git/pack-bitmap.c:388,1
    - Dst: nth_packed_object_id
      Src: /src/git/pack-bitmap.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - index
    - oid
    - n
    argTypes:
    - struct bitmap_index*
    - struct object_id*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 390
    functionName: nth_bitmap_object_oid
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - nth_midxed_object_oid
    - nth_packed_object_id
    linkageType: ''
    returnType: int
    signature: "int nth_bitmap_object_oid(struct bitmap_index *index,\n\t\t\t\t struct
      object_id *oid,\n\t\t\t\t uint32_t n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/pack-bitmap.c:406,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:406,1
    - Dst: read_be32
      Src: /src/git/pack-bitmap.c:409,1
    - Dst: read_u8
      Src: /src/git/pack-bitmap.c:410,1
    - Dst: read_u8
      Src: /src/git/pack-bitmap.c:411,1
    - Dst: nth_bitmap_object_oid
      Src: /src/git/pack-bitmap.c:413,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:414,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:414,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:418,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:418,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:424,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:424,1
    - Dst: read_bitmap_1
      Src: /src/git/pack-bitmap.c:427,1
    - Dst: store_bitmap
      Src: /src/git/pack-bitmap.c:432,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 437
    functionName: load_bitmap_entries_v1
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - error
    - nth_bitmap_object_oid
    - read_u8
    - read_be32
    - store_bitmap
    - _
    - read_bitmap_1
    linkageType: ''
    returnType: int
    signature: int load_bitmap_entries_v1(struct bitmap_index *index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_split_midx_filename_ext
      Src: /src/git/pack-bitmap.c:443,1
    - Dst: midx_get_checksum_hash
      Src: /src/git/pack-bitmap.c:444,1
    - Dst: get_midx_filename_ext
      Src: /src/git/pack-bitmap.c:447,1
    - Dst: midx_get_checksum_hash
      Src: /src/git/pack-bitmap.c:448,1
    - Dst: strbuf_detach
      Src: /src/git/pack-bitmap.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - midx
    argTypes:
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 452
    functionName: midx_bitmap_filename
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - midx_get_checksum_hash
    - get_midx_filename_ext
    - strbuf_detach
    - get_split_midx_filename_ext
    linkageType: ''
    returnType: char
    signature: char *midx_bitmap_filename(struct multi_pack_index *midx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix
      Src: /src/git/pack-bitmap.c:458,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:459,1
    - Dst: xstrfmt
      Src: /src/git/pack-bitmap.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 5
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: pack_bitmap_filename
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - strip_suffix
    - xstrfmt
    - BUG
    linkageType: ''
    returnType: char
    signature: char *pack_bitmap_filename(struct packed_git *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: midx_bitmap_filename
      Src: /src/git/pack-bitmap.c:467,1
    - Dst: git_open
      Src: /src/git/pack-bitmap.c:468,1
    - Dst: warning_errno
      Src: /src/git/pack-bitmap.c:473,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:474,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:477,1
    - Dst: fstat
      Src: /src/git/pack-bitmap.c:479,1
    - Dst: error_errno
      Src: /src/git/pack-bitmap.c:480,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:480,1
    - Dst: close
      Src: /src/git/pack-bitmap.c:481,1
    - Dst: get_midx_filename
      Src: /src/git/pack-bitmap.c:487,1
    - Dst: trace2_data_string
      Src: /src/git/pack-bitmap.c:488,1
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:488,1
    - Dst: close
      Src: /src/git/pack-bitmap.c:490,1
    - Dst: strbuf_release
      Src: /src/git/pack-bitmap.c:491,1
    - Dst: xsize_t
      Src: /src/git/pack-bitmap.c:496,1
    - Dst: xmmap
      Src: /src/git/pack-bitmap.c:498,1
    - Dst: close
      Src: /src/git/pack-bitmap.c:500,1
    - Dst: load_bitmap_header
      Src: /src/git/pack-bitmap.c:502,1
    - Dst: hasheq
      Src: /src/git/pack-bitmap.c:505,1
    - Dst: midx_get_checksum_hash
      Src: /src/git/pack-bitmap.c:505,1
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:506,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:507,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:507,1
    - Dst: load_midx_revindex
      Src: /src/git/pack-bitmap.c:511,1
    - Dst: warning
      Src: /src/git/pack-bitmap.c:512,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:512,1
    - Dst: prepare_midx_pack
      Src: /src/git/pack-bitmap.c:517,1
    - Dst: warning
      Src: /src/git/pack-bitmap.c:518,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:518,1
    - Dst: prepare_midx_bitmap_git
      Src: /src/git/pack-bitmap.c:525,1
    - Dst: munmap
      Src: /src/git/pack-bitmap.c:534,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - bitmap_git
    - midx
    argTypes:
    - struct bitmap_index*
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 463
    functionDepth: 8
    functionLinenumber: 463
    functionLinenumberEnd: 540
    functionName: open_midx_bitmap_1
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - error_errno
    - load_bitmap_header
    - git_open
    - midx_get_checksum_hash
    - xsize_t
    - free
    - error
    - strbuf_release
    - prepare_midx_pack
    - munmap
    - prepare_midx_bitmap_git
    - get_midx_filename
    - hasheq
    - load_midx_revindex
    - _
    - bitmap_repo
    - warning
    - midx_bitmap_filename
    - fstat
    - warning_errno
    - xmmap
    - close
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: "int open_midx_bitmap_1(struct bitmap_index *bitmap_git,\n\t\t\t      struct
      multi_pack_index *midx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pack_bitmap_filename
      Src: /src/git/pack-bitmap.c:548,1
    - Dst: git_open
      Src: /src/git/pack-bitmap.c:549,1
    - Dst: warning_errno
      Src: /src/git/pack-bitmap.c:553,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:554,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:557,1
    - Dst: fstat
      Src: /src/git/pack-bitmap.c:559,1
    - Dst: error_errno
      Src: /src/git/pack-bitmap.c:560,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:560,1
    - Dst: close
      Src: /src/git/pack-bitmap.c:561,1
    - Dst: trace2_data_string
      Src: /src/git/pack-bitmap.c:566,1
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:566,1
    - Dst: close
      Src: /src/git/pack-bitmap.c:569,1
    - Dst: is_pack_valid
      Src: /src/git/pack-bitmap.c:573,1
    - Dst: close
      Src: /src/git/pack-bitmap.c:574,1
    - Dst: xsize_t
      Src: /src/git/pack-bitmap.c:579,1
    - Dst: xmmap
      Src: /src/git/pack-bitmap.c:580,1
    - Dst: close
      Src: /src/git/pack-bitmap.c:583,1
    - Dst: load_bitmap_header
      Src: /src/git/pack-bitmap.c:585,1
    - Dst: munmap
      Src: /src/git/pack-bitmap.c:586,1
    - Dst: trace2_data_string
      Src: /src/git/pack-bitmap.c:594,1
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:594,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 2
    argNames:
    - bitmap_git
    - packfile
    argTypes:
    - struct bitmap_index*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 542
    functionDepth: 8
    functionLinenumber: 542
    functionLinenumberEnd: 597
    functionName: open_pack_bitmap_1
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - error_errno
    - fstat
    - pack_bitmap_filename
    - warning_errno
    - load_bitmap_header
    - git_open
    - is_pack_valid
    - xmmap
    - xsize_t
    - free
    - close
    - bitmap_repo
    - munmap
    - _
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: int open_pack_bitmap_1(struct bitmap_index *bitmap_git, struct packed_git
      *packfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:601,1
    - Dst: load_pack_revindex
      Src: /src/git/pack-bitmap.c:616,1
    - Dst: load_pack_revindex
      Src: /src/git/pack-bitmap.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - r
    - bitmap_git
    argTypes:
    - struct repository*
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 599
    functionDepth: 5
    functionLinenumber: 599
    functionLinenumberEnd: 624
    functionName: load_reverse_index
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_is_midx
    - load_pack_revindex
    linkageType: ''
    returnType: int
    signature: int load_reverse_index(struct repository *r, struct bitmap_index *bitmap_git)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-bitmap.c:631,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-bitmap.c:632,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-bitmap.c:633,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-bitmap.c:634,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - bitmap_git
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 648
    functionName: load_all_type_bitmaps
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - BUG
    linkageType: ''
    returnType: void
    signature: void load_all_type_bitmaps(struct bitmap_index *bitmap_git)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/pack-bitmap.c:653,1
    - Dst: kh_init_oid_map
      Src: /src/git/pack-bitmap.c:655,1
    - Dst: kh_init_oid_pos
      Src: /src/git/pack-bitmap.c:656,1
    - Dst: load_reverse_index
      Src: /src/git/pack-bitmap.c:658,1
    - Dst: read_bitmap_1
      Src: /src/git/pack-bitmap.c:661,1
    - Dst: read_bitmap_1
      Src: /src/git/pack-bitmap.c:662,1
    - Dst: read_bitmap_1
      Src: /src/git/pack-bitmap.c:663,1
    - Dst: read_bitmap_1
      Src: /src/git/pack-bitmap.c:664,1
    - Dst: load_bitmap_entries_v1
      Src: /src/git/pack-bitmap.c:667,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:671,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:672,1
    - Dst: load_bitmap
      Src: /src/git/pack-bitmap.c:673,1
    - Dst: load_all_type_bitmaps
      Src: /src/git/pack-bitmap.c:678,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 3
    argNames:
    - r
    - bitmap_git
    - recursing
    argTypes:
    - struct repository*
    - struct bitmap_index*
    - int
    assertStmts:
    - condition: (bitmap_git->map)
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/git/pack-bitmap.c
    constantsTouched: []
    func_position:
      end: 681
      start: 650
    functionDepth: 6
    functionLinenumber: 650
    functionLinenumberEnd: 681
    functionName: load_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - load_bitmap_entries_v1
    - assert
    - bitmap_is_midx
    - BUG
    - kh_init_oid_pos
    - kh_init_oid_map
    - load_all_type_bitmaps
    - load_bitmap
    - read_bitmap_1
    - load_reverse_index
    linkageType: ''
    returnType: int
    signature: "int load_bitmap(struct repository *r, struct bitmap_index *bitmap_git,\n\t\t
      \      int recursing)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_bitmap_1
      Src: /src/git/pack-bitmap.c:690,1
    - Dst: trace2_is_enabled
      Src: /src/git/pack-bitmap.c:696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - r
    - bitmap_git
    argTypes:
    - struct repository*
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 683
    functionDepth: 9
    functionLinenumber: 683
    functionLinenumberEnd: 702
    functionName: open_pack_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - trace2_is_enabled
    - open_pack_bitmap_1
    linkageType: ''
    returnType: int
    signature: "int open_pack_bitmap(struct repository *r,\n\t\t\t    struct bitmap_index
      *bitmap_git)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_bitmap_1
      Src: /src/git/pack-bitmap.c:690,1
    - Dst: trace2_is_enabled
      Src: /src/git/pack-bitmap.c:696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 689
    functionDepth: 9
    functionLinenumber: 689
    functionLinenumberEnd: 699
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 3
    functionsReached:
    - trace2_is_enabled
    - open_pack_bitmap_1
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(r, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/pack-bitmap.c:710,1
    - Dst: odb_prepare_alternates
      Src: /src/git/pack-bitmap.c:712,1
    - Dst: get_multi_pack_index
      Src: /src/git/pack-bitmap.c:714,1
    - Dst: open_midx_bitmap_1
      Src: /src/git/pack-bitmap.c:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - r
    - bitmap_git
    argTypes:
    - struct repository*
    - struct bitmap_index*
    assertStmts:
    - condition: (!bitmap_git->map)
      pos:
        line_end: 709
        line_start: 709
        source_file: /src/git/pack-bitmap.c
    constantsTouched: []
    func_position:
      end: 719
      start: 704
    functionDepth: 9
    functionLinenumber: 704
    functionLinenumberEnd: 719
    functionName: open_midx_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - open_midx_bitmap_1
    - odb_prepare_alternates
    - get_multi_pack_index
    - assert
    linkageType: ''
    returnType: int
    signature: "int open_midx_bitmap(struct repository *r,\n\t\t\t    struct bitmap_index
      *bitmap_git)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/pack-bitmap.c:726,1
    - Dst: open_midx_bitmap
      Src: /src/git/pack-bitmap.c:728,1
    - Dst: trace2_is_enabled
      Src: /src/git/pack-bitmap.c:734,1
    - Dst: open_pack_bitmap
      Src: /src/git/pack-bitmap.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - r
    - bitmap_git
    argTypes:
    - struct repository*
    - struct bitmap_index*
    assertStmts:
    - condition: (!bitmap_git->map)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/git/pack-bitmap.c
    constantsTouched: []
    func_position:
      end: 738
      start: 721
    functionDepth: 10
    functionLinenumber: 721
    functionLinenumberEnd: 738
    functionName: open_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - open_pack_bitmap
    - open_midx_bitmap
    - trace2_is_enabled
    - assert
    linkageType: ''
    returnType: int
    signature: "int open_bitmap(struct repository *r,\n\t\t       struct bitmap_index
      *bitmap_git)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/pack-bitmap.c:742,1
    - Dst: open_bitmap
      Src: /src/git/pack-bitmap.c:744,1
    - Dst: load_bitmap
      Src: /src/git/pack-bitmap.c:744,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 740
    functionDepth: 11
    functionLinenumber: 740
    functionLinenumberEnd: 749
    functionName: prepare_bitmap_git
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - open_bitmap
    - free_bitmap_index
    - load_bitmap
    - xcalloc
    linkageType: ''
    returnType: struct bitmap_index
    signature: struct bitmap_index *prepare_bitmap_git(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/pack-bitmap.c:753,1
    - Dst: open_midx_bitmap_1
      Src: /src/git/pack-bitmap.c:755,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - midx
    argTypes:
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 751
    functionDepth: 9
    functionLinenumber: 751
    functionLinenumberEnd: 760
    functionName: prepare_midx_bitmap_git
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - open_midx_bitmap_1
    - free_bitmap_index
    - xcalloc
    linkageType: ''
    returnType: struct bitmap_index
    signature: struct bitmap_index *prepare_midx_bitmap_git(struct multi_pack_index
      *midx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:765,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - bitmap
    - pack
    argTypes:
    - struct bitmap_index*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 775
    functionName: bitmap_index_contains_pack
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_is_midx
    linkageType: ''
    returnType: int
    signature: int bitmap_index_contains_pack(struct bitmap_index *bitmap, struct
      packed_git *pack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_be32
      Src: /src/git/pack-bitmap.c:806,1
    - Dst: get_be64
      Src: /src/git/pack-bitmap.c:808,1
    - Dst: get_be32
      Src: /src/git/pack-bitmap.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - triplet
    - p
    argTypes:
    - struct bitmap_lookup_table_triplet*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 812
    functionName: bitmap_lookup_table_get_triplet_by_pointer
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - get_be32
    - get_be64
    linkageType: ''
    returnType: int
    signature: "int bitmap_lookup_table_get_triplet_by_pointer(struct bitmap_lookup_table_triplet
      *triplet,\n\t\t\t\t\t\t      const unsigned char *p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/pack-bitmap.c:824,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:824,1
    - Dst: st_mult
      Src: /src/git/pack-bitmap.c:826,1
    - Dst: bitmap_lookup_table_get_triplet_by_pointer
      Src: /src/git/pack-bitmap.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bitmap_git
    - pos
    - triplet
    argTypes:
    - struct bitmap_index*
    - uint32_t
    - struct bitmap_lookup_table_triplet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 829
    functionName: bitmap_lookup_table_get_triplet
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - error
    - bitmap_lookup_table_get_triplet_by_pointer
    - st_mult
    - _
    linkageType: ''
    returnType: int
    signature: "int bitmap_lookup_table_get_triplet(struct bitmap_index *bitmap_git,\n\t\t\t\t\t
      \  uint32_t pos,\n\t\t\t\t\t   struct bitmap_lookup_table_triplet *triplet)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_be32
      Src: /src/git/pack-bitmap.c:841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - commit_pos
    - table_entry
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 848
    functionName: triplet_cmp
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - get_be32
    linkageType: ''
    returnType: int
    signature: int triplet_cmp(const void *commit_pos, const void *table_entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:856,1
    - Dst: bsearch_midx
      Src: /src/git/pack-bitmap.c:857,1
    - Dst: bsearch_pack
      Src: /src/git/pack-bitmap.c:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bitmap_git
    - oid
    - result
    argTypes:
    - struct bitmap_index*
    - struct object_id*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 862
    functionName: bitmap_bsearch_pos
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bsearch_midx
    - bitmap_is_midx
    - bsearch_pack
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t bitmap_bsearch_pos(struct bitmap_index *bitmap_git,\n\t\t\t
      \   struct object_id *oid,\n\t\t\t    uint32_t *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/git/pack-bitmap.c:874,1
    - Dst: bitmap_lookup_table_get_triplet_by_pointer
      Src: /src/git/pack-bitmap.c:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - commit_pos
    - bitmap_git
    - triplet
    argTypes:
    - uint32_t
    - struct bitmap_index*
    - struct bitmap_lookup_table_triplet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 881
    functionName: bitmap_bsearch_triplet_by_pos
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bsearch
    - bitmap_lookup_table_get_triplet_by_pointer
    linkageType: ''
    returnType: int
    signature: "int bitmap_bsearch_triplet_by_pos(uint32_t commit_pos,\n\t\t\t\t  struct
      bitmap_index *bitmap_git,\n\t\t\t\t  struct bitmap_lookup_table_triplet *triplet)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_bsearch_pos
      Src: /src/git/pack-bitmap.c:905,1
    - Dst: bitmap_bsearch_triplet_by_pos
      Src: /src/git/pack-bitmap.c:908,1
    - Dst: ALLOC_GROW
      Src: /src/git/pack-bitmap.c:916,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:919,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:919,1
    - Dst: bitmap_lookup_table_get_triplet
      Src: /src/git/pack-bitmap.c:923,1
    - Dst: nth_bitmap_object_oid
      Src: /src/git/pack-bitmap.c:929,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:930,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:930,1
    - Dst: kh_get_oid_map
      Src: /src/git/pack-bitmap.c:935,1
    - Dst: kh_end
      Src: /src/git/pack-bitmap.c:944,1
    - Dst: kh_value
      Src: /src/git/pack-bitmap.c:945,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:955,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:955,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:956,1
    - Dst: read_u8
      Src: /src/git/pack-bitmap.c:962,1
    - Dst: read_bitmap_1
      Src: /src/git/pack-bitmap.c:963,1
    - Dst: store_bitmap
      Src: /src/git/pack-bitmap.c:968,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:975,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:975,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:976,1
    - Dst: read_u8
      Src: /src/git/pack-bitmap.c:1005,1
    - Dst: read_bitmap_1
      Src: /src/git/pack-bitmap.c:1006,1
    - Dst: store_bitmap
      Src: /src/git/pack-bitmap.c:1011,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:1015,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 2
    argNames:
    - bitmap_git
    - commit
    argTypes:
    - struct bitmap_index*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 883
    functionDepth: 4
    functionLinenumber: 883
    functionLinenumberEnd: 1018
    functionName: lazy_bitmap_for_commit
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_bsearch_pos
    - error
    - oid_to_hex
    - kh_get_oid_map
    - bitmap_lookup_table_get_triplet
    - nth_bitmap_object_oid
    - read_u8
    - kh_value
    - store_bitmap
    - bitmap_bsearch_triplet_by_pos
    - ALLOC_GROW
    - _
    - free
    - read_bitmap_1
    - kh_end
    linkageType: ''
    returnType: struct stored_bitmap
    signature: "struct stored_bitmap *lazy_bitmap_for_commit(struct bitmap_index *bitmap_git,\n\t\t\t\t\t\t
      \   struct commit *commit)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_map
      Src: /src/git/pack-bitmap.c:1028,1
    - Dst: kh_end
      Src: /src/git/pack-bitmap.c:1029,1
    - Dst: find_bitmap_for_commit
      Src: /src/git/pack-bitmap.c:1032,1
    - Dst: lazy_bitmap_for_commit
      Src: /src/git/pack-bitmap.c:1037,1
    - Dst: find_bitmap_for_commit
      Src: /src/git/pack-bitmap.c:1039,1
    - Dst: lookup_stored_bitmap
      Src: /src/git/pack-bitmap.c:1043,1
    - Dst: lookup_stored_bitmap
      Src: /src/git/pack-bitmap.c:1047,1
    - Dst: kh_value
      Src: /src/git/pack-bitmap.c:1047,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - bitmap_git
    - commit
    - found
    argTypes:
    - struct bitmap_index*
    - struct commit*
    - struct bitmap_index**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1020
    functionDepth: 5
    functionLinenumber: 1020
    functionLinenumberEnd: 1048
    functionName: find_bitmap_for_commit
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - lookup_stored_bitmap
    - kh_end
    - kh_value
    - lazy_bitmap_for_commit
    - kh_get_oid_map
    - find_bitmap_for_commit
    linkageType: ''
    returnType: struct ewah_bitmap
    signature: "struct ewah_bitmap *find_bitmap_for_commit(struct bitmap_index *bitmap_git,\n\t\t\t\t\t\t
      \ struct commit *commit,\n\t\t\t\t\t\t  struct bitmap_index **found)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_bitmap_for_commit
      Src: /src/git/pack-bitmap.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitmap_git
    - commit
    argTypes:
    - struct bitmap_index*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1050
    functionDepth: 6
    functionLinenumber: 1050
    functionLinenumberEnd: 1054
    functionName: bitmap_for_commit
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 4
    functionsReached:
    - find_bitmap_for_commit
    linkageType: ''
    returnType: struct ewah_bitmap
    signature: "struct ewah_bitmap *bitmap_for_commit(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \     struct commit *commit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_pos
      Src: /src/git/pack-bitmap.c:1060,1
    - Dst: kh_end
      Src: /src/git/pack-bitmap.c:1062,1
    - Dst: kh_value
      Src: /src/git/pack-bitmap.c:1063,1
    - Dst: bitmap_num_objects_total
      Src: /src/git/pack-bitmap.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bitmap_git
    - oid
    argTypes:
    - struct bitmap_index*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1068
    functionName: bitmap_position_extended
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - kh_get_oid_pos
    - kh_value
    - kh_end
    - bitmap_num_objects_total
    linkageType: ''
    returnType: int
    signature: "int bitmap_position_extended(struct bitmap_index *bitmap_git,\n\t\t\t\t\t
      \  const struct object_id *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_pack_entry_one
      Src: /src/git/pack-bitmap.c:1074,1
    - Dst: offset_to_pack_pos
      Src: /src/git/pack-bitmap.c:1078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bitmap_git
    - oid
    argTypes:
    - struct bitmap_index*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1070
    functionDepth: 6
    functionLinenumber: 1070
    functionLinenumberEnd: 1081
    functionName: bitmap_position_packfile
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - find_pack_entry_one
    - offset_to_pack_pos
    linkageType: ''
    returnType: int
    signature: "int bitmap_position_packfile(struct bitmap_index *bitmap_git,\n\t\t\t\t\t
      \  const struct object_id *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_midx
      Src: /src/git/pack-bitmap.c:1087,1
    - Dst: midx_to_pack_pos
      Src: /src/git/pack-bitmap.c:1090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bitmap_git
    - oid
    argTypes:
    - struct bitmap_index*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1083
    functionDepth: 3
    functionLinenumber: 1083
    functionLinenumberEnd: 1093
    functionName: bitmap_position_midx
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bsearch_midx
    - midx_to_pack_pos
    linkageType: ''
    returnType: int
    signature: "int bitmap_position_midx(struct bitmap_index *bitmap_git,\n\t\t\t\tconst
      struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:1099,1
    - Dst: bitmap_position_midx
      Src: /src/git/pack-bitmap.c:1100,1
    - Dst: bitmap_position_packfile
      Src: /src/git/pack-bitmap.c:1102,1
    - Dst: bitmap_position_extended
      Src: /src/git/pack-bitmap.c:1103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bitmap_git
    - oid
    argTypes:
    - struct bitmap_index*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1095
    functionDepth: 7
    functionLinenumber: 1095
    functionLinenumberEnd: 1104
    functionName: bitmap_position
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_position_midx
    - bitmap_position_extended
    - bitmap_position_packfile
    - bitmap_is_midx
    linkageType: ''
    returnType: int
    signature: "int bitmap_position(struct bitmap_index *bitmap_git,\n\t\t\t   const
      struct object_id *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_put_oid_pos
      Src: /src/git/pack-bitmap.c:1115,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/pack-bitmap.c:1119,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/pack-bitmap.c:1120,1
    - Dst: pack_name_hash
      Src: /src/git/pack-bitmap.c:1125,1
    - Dst: kh_value
      Src: /src/git/pack-bitmap.c:1126,1
    - Dst: kh_value
      Src: /src/git/pack-bitmap.c:1129,1
    - Dst: bitmap_num_objects_total
      Src: /src/git/pack-bitmap.c:1132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - bitmap_git
    - object
    - name
    argTypes:
    - struct bitmap_index*
    - struct object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1133
    functionName: ext_index_add_object
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - kh_put_oid_pos
    - pack_name_hash
    - kh_value
    - REALLOC_ARRAY
    - bitmap_num_objects_total
    linkageType: ''
    returnType: int
    signature: "int ext_index_add_object(struct bitmap_index *bitmap_git,\n\t\t\t\tstruct
      object *object, const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:1145,1
    - Dst: ext_index_add_object
      Src: /src/git/pack-bitmap.c:1148,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:1151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - object
    - name
    - data_
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1140
    functionDepth: 8
    functionLinenumber: 1140
    functionLinenumberEnd: 1152
    functionName: show_object
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_position
    - ext_index_add_object
    - bitmap_set
    linkageType: ''
    returnType: void
    signature: void show_object(struct object *object, const char *name, void *data_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - commit
    - UNUSED
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1157
    functionName: show_commit
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void show_commit(struct commit *commit UNUSED,\n\t\t\tvoid *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apply_pseudo_merges_for_commit
      Src: /src/git/pack-bitmap.c:1168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - bitmap_git
    - result
    - commit
    - commit_pos
    argTypes:
    - struct bitmap_index*
    - struct bitmap*
    - struct commit*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1178
    functionName: apply_pseudo_merges_for_commit_1
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - apply_pseudo_merges_for_commit
    linkageType: ''
    returnType: unsigned
    signature: "unsigned apply_pseudo_merges_for_commit_1(struct bitmap_index *bitmap_git,\n\t\t\t\t\t\t
      struct bitmap *result,\n\t\t\t\t\t\t struct commit *commit,\n\t\t\t\t\t\t uint32_t
      commit_pos)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1187,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1190,1
    - Dst: bitmap_for_commit
      Src: /src/git/pack-bitmap.c:1193,1
    - Dst: bitmap_or_ewah
      Src: /src/git/pack-bitmap.c:1197,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:1203,1
    - Dst: apply_pseudo_merges_for_commit_1
      Src: /src/git/pack-bitmap.c:1204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - bitmap_git
    - data
    - commit
    - bitmap_pos
    argTypes:
    - struct bitmap_index*
    - struct include_data*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1180
    functionDepth: 7
    functionLinenumber: 1180
    functionLinenumberEnd: 1209
    functionName: add_to_include_set
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_for_commit
    - apply_pseudo_merges_for_commit_1
    - bitmap_set
    - bitmap_or_ewah
    - bitmap_get
    linkageType: ''
    returnType: int
    signature: "int add_to_include_set(struct bitmap_index *bitmap_git,\n\t\t\t      struct
      include_data *data,\n\t\t\t      struct commit *commit,\n\t\t\t      int bitmap_pos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:1216,1
    - Dst: ext_index_add_object
      Src: /src/git/pack-bitmap.c:1218,1
    - Dst: add_to_include_set
      Src: /src/git/pack-bitmap.c:1222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - commit
    - _data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1211
    functionDepth: 8
    functionLinenumber: 1211
    functionLinenumberEnd: 1234
    functionName: should_include
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_position
    - add_to_include_set
    - ext_index_add_object
    linkageType: ''
    returnType: int
    signature: int should_include(struct commit *commit, void *_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:1241,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1244,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - obj
    - _data
    argTypes:
    - struct object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1236
    functionDepth: 8
    functionLinenumber: 1236
    functionLinenumberEnd: 1250
    functionName: should_include_obj
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_position
    - bitmap_get
    linkageType: ''
    returnType: int
    signature: int should_include_obj(struct object *obj, void *_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_for_commit
      Src: /src/git/pack-bitmap.c:1256,1
    - Dst: ewah_to_bitmap
      Src: /src/git/pack-bitmap.c:1266,1
    - Dst: bitmap_or_ewah
      Src: /src/git/pack-bitmap.c:1268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - bitmap_git
    - base
    - commit
    argTypes:
    - struct bitmap_index*
    - struct bitmap**
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1252
    functionDepth: 7
    functionLinenumber: 1252
    functionLinenumberEnd: 1271
    functionName: add_commit_to_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_for_commit
    - bitmap_or_ewah
    - ewah_to_bitmap
    linkageType: ''
    returnType: int
    signature: "int add_commit_to_bitmap(struct bitmap_index *bitmap_git,\n\t\t\t\tstruct
      bitmap **base,\n\t\t\t\tstruct commit *commit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap.c:1282,1
    - Dst: prepare_revision_walk
      Src: /src/git/pack-bitmap.c:1292,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:1293,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:1293,1
    - Dst: traverse_commit_list
      Src: /src/git/pack-bitmap.c:1298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - bitmap_git
    - revs
    - base
    - seen
    argTypes:
    - struct bitmap_index*
    - struct rev_info*
    - struct bitmap*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1273
    functionDepth: 11
    functionLinenumber: 1273
    functionLinenumberEnd: 1305
    functionName: fill_in_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - traverse_commit_list
    - die
    - prepare_revision_walk
    - _
    - bitmap_new
    linkageType: ''
    returnType: struct bitmap
    signature: "struct bitmap *fill_in_bitmap(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \    struct rev_info *revs,\n\t\t\t\t     struct bitmap *base,\n\t\t\t\t     struct
      bitmap *seen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_object_array
      Src: /src/git/pack-bitmap.c:1319,1
    - Dst: bitmap_walk_contains
      Src: /src/git/pack-bitmap.c:1322,1
    - Dst: add_commit_to_bitmap
      Src: /src/git/pack-bitmap.c:1326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - commit
    - _data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1314
    functionDepth: 8
    functionLinenumber: 1314
    functionLinenumberEnd: 1328
    functionName: show_boundary_commit
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_walk_contains
    - add_object_array
    - add_commit_to_bitmap
    linkageType: ''
    returnType: void
    signature: void show_boundary_commit(struct commit *commit, void *_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - UNUSED
    - UNUSED
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1330
    functionDepth: 1
    functionLinenumber: 1330
    functionLinenumberEnd: 1335
    functionName: show_boundary_object
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: "void show_boundary_object(struct object *object UNUSED,\n\t\t\t\t
      const char *name UNUSED,\n\t\t\t\t void *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cascade_pseudo_merges
      Src: /src/git/pack-bitmap.c:1341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bitmap_git
    - result
    - roots
    argTypes:
    - struct bitmap_index*
    - struct bitmap*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1349
    functionName: cascade_pseudo_merges_1
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - cascade_pseudo_merges
    linkageType: ''
    returnType: unsigned
    signature: "unsigned cascade_pseudo_merges_1(struct bitmap_index *bitmap_git,\n\t\t\t\t\tstruct
      bitmap *result,\n\t\t\t\t\tstruct bitmap *roots)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap.c:1364,1
    - Dst: object_array_init
      Src: /src/git/pack-bitmap.c:1365,1
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:1367,1
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap.c:1372,1
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:1379,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:1383,1
    - Dst: cascade_pseudo_merges_1
      Src: /src/git/pack-bitmap.c:1386,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:1387,1
    - Dst: bitmap_walk_contains
      Src: /src/git/pack-bitmap.c:1397,1
    - Dst: add_commit_to_bitmap
      Src: /src/git/pack-bitmap.c:1400,1
    - Dst: cascade_pseudo_merges_1
      Src: /src/git/pack-bitmap.c:1413,1
    - Dst: trace2_region_enter
      Src: /src/git/pack-bitmap.c:1427,1
    - Dst: prepare_revision_walk
      Src: /src/git/pack-bitmap.c:1428,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:1429,1
    - Dst: trace2_region_leave
      Src: /src/git/pack-bitmap.c:1430,1
    - Dst: trace2_region_enter
      Src: /src/git/pack-bitmap.c:1432,1
    - Dst: traverse_commit_list_filtered
      Src: /src/git/pack-bitmap.c:1434,1
    - Dst: trace2_region_leave
      Src: /src/git/pack-bitmap.c:1439,1
    - Dst: reset_revision_walk
      Src: /src/git/pack-bitmap.c:1445,1
    - Dst: clear_object_flags
      Src: /src/git/pack-bitmap.c:1446,1
    - Dst: trace2_region_enter
      Src: /src/git/pack-bitmap.c:1451,1
    - Dst: bitmap_walk_contains
      Src: /src/git/pack-bitmap.c:1454,1
    - Dst: add_pending_object
      Src: /src/git/pack-bitmap.c:1457,1
    - Dst: fill_in_bitmap
      Src: /src/git/pack-bitmap.c:1460,1
    - Dst: trace2_region_leave
      Src: /src/git/pack-bitmap.c:1461,1
    - Dst: object_array_clear
      Src: /src/git/pack-bitmap.c:1464,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 3
    argNames:
    - bitmap_git
    - revs
    - roots
    argTypes:
    - struct bitmap_index*
    - struct rev_info*
    - struct object_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1351
    functionDepth: 12
    functionLinenumber: 1351
    functionLinenumberEnd: 1468
    functionName: find_boundary_objects
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - object_array_clear
    - trace2_region_enter
    - object_array_init
    - add_commit_to_bitmap
    - die
    - bitmap_set
    - prepare_revision_walk
    - traverse_commit_list_filtered
    - bitmap_walk_contains
    - fill_in_bitmap
    - bitmap_repo
    - bitmap_new
    - bitmap_position
    - trace2_region_leave
    - reset_revision_walk
    - add_pending_object
    - bitmap_free
    - clear_object_flags
    - cascade_pseudo_merges_1
    linkageType: ''
    returnType: struct bitmap
    signature: "struct bitmap *find_boundary_objects(struct bitmap_index *bitmap_git,\n\t\t\t\t\t
      \   struct rev_info *revs,\n\t\t\t\t\t    struct object_list *roots)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap.c:1480,1
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:1483,1
    - Dst: bitmap_num_objects
      Src: /src/git/pack-bitmap.c:1484,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:1494,1
    - Dst: pseudo_merge_for_parents
      Src: /src/git/pack-bitmap.c:1497,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:1500,1
    - Dst: pseudo_merge_bitmap
      Src: /src/git/pack-bitmap.c:1502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - bitmap_git
    - commit
    argTypes:
    - struct bitmap_index*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1470
    functionDepth: 8
    functionLinenumber: 1470
    functionLinenumberEnd: 1505
    functionName: pseudo_merge_bitmap_for_commit
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - pseudo_merge_for_parents
    - bitmap_position
    - pseudo_merge_bitmap
    - bitmap_set
    - bitmap_num_objects
    - bitmap_free
    - bitmap_new
    linkageType: ''
    returnType: struct ewah_bitmap
    signature: "struct ewah_bitmap *pseudo_merge_bitmap_for_commit(struct bitmap_index
      *bitmap_git,\n\t\t\t\t\t\t   struct commit *commit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - bitmap_git
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1512
    functionName: unsatisfy_all_pseudo_merges
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unsatisfy_all_pseudo_merges(struct bitmap_index *bitmap_git)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unsatisfy_all_pseudo_merges
      Src: /src/git/pack-bitmap.c:1525,1
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap.c:1528,1
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:1535,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:1539,1
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap.c:1542,1
    - Dst: cascade_pseudo_merges_1
      Src: /src/git/pack-bitmap.c:1543,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:1544,1
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:1561,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1562,1
    - Dst: add_commit_to_bitmap
      Src: /src/git/pack-bitmap.c:1569,1
    - Dst: object_list_insert
      Src: /src/git/pack-bitmap.c:1575,1
    - Dst: cascade_pseudo_merges_1
      Src: /src/git/pack-bitmap.c:1588,1
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:1604,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1606,1
    - Dst: add_pending_object
      Src: /src/git/pack-bitmap.c:1608,1
    - Dst: fill_in_bitmap
      Src: /src/git/pack-bitmap.c:1632,1
    - Dst: object_list_free
      Src: /src/git/pack-bitmap.c:1635,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 4
    argNames:
    - bitmap_git
    - revs
    - roots
    - seen
    argTypes:
    - struct bitmap_index*
    - struct rev_info*
    - struct object_list*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1514
    functionDepth: 12
    functionLinenumber: 1514
    functionLinenumberEnd: 1638
    functionName: find_objects
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - fill_in_bitmap
    - object_list_insert
    - object_list_free
    - bitmap_position
    - bitmap_set
    - unsatisfy_all_pseudo_merges
    - add_pending_object
    - bitmap_get
    - bitmap_free
    - cascade_pseudo_merges_1
    - add_commit_to_bitmap
    - bitmap_new
    linkageType: ''
    returnType: struct bitmap
    signature: "struct bitmap *find_objects(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \  struct rev_info *revs,\n\t\t\t\t   struct object_list *roots,\n\t\t\t\t   struct
      bitmap *seen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1651,1
    - Dst: st_add
      Src: /src/git/pack-bitmap.c:1652,1
    - Dst: bitmap_num_objects_total
      Src: /src/git/pack-bitmap.c:1652,1
    - Dst: show_reach
      Src: /src/git/pack-bitmap.c:1662,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 3
    argNames:
    - bitmap_git
    - revs
    - show_reach
    argTypes:
    - struct bitmap_index*
    - struct rev_info*
    - show_reachable_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1640
    functionDepth: 3
    functionLinenumber: 1640
    functionLinenumberEnd: 1664
    functionName: show_extended_objects
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - st_add
    - show_reach
    - bitmap_get
    - bitmap_num_objects_total
    linkageType: ''
    returnType: void
    signature: "void show_extended_objects(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \ struct rev_info *revs,\n\t\t\t\t  show_reachable_fn show_reach)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ewah_or_iterator_init
      Src: /src/git/pack-bitmap.c:1672,1
    - Dst: ewah_or_iterator_init
      Src: /src/git/pack-bitmap.c:1677,1
    - Dst: ewah_or_iterator_init
      Src: /src/git/pack-bitmap.c:1682,1
    - Dst: ewah_or_iterator_init
      Src: /src/git/pack-bitmap.c:1687,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:1692,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - it
    - bitmap_git
    - type
    argTypes:
    - struct ewah_or_iterator*
    - struct bitmap_index*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1695
    functionName: init_type_iterator
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - BUG
    - ewah_or_iterator_init
    linkageType: ''
    returnType: void
    signature: "void init_type_iterator(struct ewah_or_iterator *it,\n\t\t\t       struct
      bitmap_index *bitmap_git,\n\t\t\t       enum object_type type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_type_iterator
      Src: /src/git/pack-bitmap.c:1710,1
    - Dst: ewah_or_iterator_next
      Src: /src/git/pack-bitmap.c:1713,1
    - Dst: ewah_bit_ctz64
      Src: /src/git/pack-bitmap.c:1729,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:1731,1
    - Dst: pack_pos_to_midx
      Src: /src/git/pack-bitmap.c:1735,1
    - Dst: nth_midxed_offset
      Src: /src/git/pack-bitmap.c:1736,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/pack-bitmap.c:1737,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/pack-bitmap.c:1739,1
    - Dst: nth_midxed_pack
      Src: /src/git/pack-bitmap.c:1740,1
    - Dst: pack_pos_to_index
      Src: /src/git/pack-bitmap.c:1742,1
    - Dst: pack_pos_to_offset
      Src: /src/git/pack-bitmap.c:1743,1
    - Dst: nth_bitmap_object_oid
      Src: /src/git/pack-bitmap.c:1744,1
    - Dst: bitmap_name_hash
      Src: /src/git/pack-bitmap.c:1749,1
    - Dst: show_reach
      Src: /src/git/pack-bitmap.c:1751,1
    - Dst: ewah_or_iterator_release
      Src: /src/git/pack-bitmap.c:1755,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - bitmap_git
    - objects
    - object_type
    - show_reach
    - payload
    argTypes:
    - struct bitmap_index*
    - struct bitmap*
    - enum object_type
    - show_reachable_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1697
    functionDepth: 4
    functionLinenumber: 1697
    functionLinenumberEnd: 1756
    functionName: show_objects_for_type
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - nth_midxed_object_oid
    - ewah_bit_ctz64
    - nth_midxed_pack
    - ewah_or_iterator_release
    - nth_bitmap_object_oid
    - ewah_or_iterator_next
    - init_type_iterator
    - pack_pos_to_index
    - bitmap_name_hash
    - nth_midxed_pack_int_id
    - pack_pos_to_midx
    - pack_pos_to_offset
    - bitmap_is_midx
    - show_reach
    - nth_midxed_offset
    linkageType: ''
    returnType: void
    signature: "void show_objects_for_type(\n\tstruct bitmap_index *bitmap_git,\n\tstruct
      bitmap *objects,\n\tenum object_type object_type,\n\tshow_reachable_fn show_reach,\n\tvoid
      *payload)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:1765,1
    - Dst: bsearch_midx
      Src: /src/git/pack-bitmap.c:1766,1
    - Dst: find_pack_entry_one
      Src: /src/git/pack-bitmap.c:1769,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bitmap_git
    - roots
    argTypes:
    - struct bitmap_index*
    - struct object_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1758
    functionDepth: 3
    functionLinenumber: 1758
    functionLinenumberEnd: 1775
    functionName: in_bitmapped_pack
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bsearch_midx
    - bitmap_is_midx
    - find_pack_entry_one
    linkageType: ''
    returnType: int
    signature: "int in_bitmapped_pack(struct bitmap_index *bitmap_git,\n\t\t\t     struct
      object_list *roots)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap.c:1781,1
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:1790,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:1794,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - bitmap_git
    - tip_objects
    - type
    argTypes:
    - struct bitmap_index*
    - struct object_list*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1777
    functionDepth: 8
    functionLinenumber: 1777
    functionLinenumberEnd: 1798
    functionName: find_tip_objects
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_position
    - bitmap_set
    - bitmap_new
    linkageType: ''
    returnType: struct bitmap
    signature: "struct bitmap *find_tip_objects(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \      struct object_list *tip_objects,\n\t\t\t\t       enum object_type type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_tip_objects
      Src: /src/git/pack-bitmap.c:1816,1
    - Dst: init_type_iterator
      Src: /src/git/pack-bitmap.c:1823,1
    - Dst: ewah_or_iterator_next
      Src: /src/git/pack-bitmap.c:1824,1
    - Dst: st_add
      Src: /src/git/pack-bitmap.c:1837,1
    - Dst: bitmap_num_objects_total
      Src: /src/git/pack-bitmap.c:1837,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1839,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1840,1
    - Dst: bitmap_unset
      Src: /src/git/pack-bitmap.c:1841,1
    - Dst: ewah_or_iterator_release
      Src: /src/git/pack-bitmap.c:1844,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:1845,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - bitmap_git
    - tip_objects
    - to_filter
    - type
    argTypes:
    - struct bitmap_index*
    - struct object_list*
    - struct bitmap*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1800
    functionDepth: 9
    functionLinenumber: 1800
    functionLinenumberEnd: 1846
    functionName: filter_bitmap_exclude_type
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - st_add
    - find_tip_objects
    - ewah_or_iterator_release
    - ewah_or_iterator_next
    - init_type_iterator
    - bitmap_unset
    - bitmap_get
    - bitmap_free
    - bitmap_num_objects_total
    linkageType: ''
    returnType: void
    signature: "void filter_bitmap_exclude_type(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \      struct object_list *tip_objects,\n\t\t\t\t       struct bitmap *to_filter,\n\t\t\t\t
      \      enum object_type type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filter_bitmap_exclude_type
      Src: /src/git/pack-bitmap.c:1852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bitmap_git
    - tip_objects
    - to_filter
    argTypes:
    - struct bitmap_index*
    - struct object_list*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1848
    functionDepth: 10
    functionLinenumber: 1848
    functionLinenumberEnd: 1854
    functionName: filter_bitmap_blob_none
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - filter_bitmap_exclude_type
    linkageType: ''
    returnType: void
    signature: "void filter_bitmap_blob_none(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \   struct object_list *tip_objects,\n\t\t\t\t    struct bitmap *to_filter)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_num_objects_total
      Src: /src/git/pack-bitmap.c:1864,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:1868,1
    - Dst: pack_pos_to_midx
      Src: /src/git/pack-bitmap.c:1869,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/pack-bitmap.c:1870,1
    - Dst: nth_midxed_pack
      Src: /src/git/pack-bitmap.c:1872,1
    - Dst: nth_midxed_offset
      Src: /src/git/pack-bitmap.c:1873,1
    - Dst: pack_pos_to_offset
      Src: /src/git/pack-bitmap.c:1876,1
    - Dst: packed_object_info
      Src: /src/git/pack-bitmap.c:1879,1
    - Dst: nth_bitmap_object_oid
      Src: /src/git/pack-bitmap.c:1881,1
    - Dst: pack_pos_to_index
      Src: /src/git/pack-bitmap.c:1882,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:1883,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:1883,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:1883,1
    - Dst: bitmap_num_objects_total
      Src: /src/git/pack-bitmap.c:1886,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/pack-bitmap.c:1889,1
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:1889,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:1891,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:1891,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:1891,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - bitmap_git
    - pos
    argTypes:
    - struct bitmap_index*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1856
    functionDepth: 11
    functionLinenumber: 1856
    functionLinenumberEnd: 1895
    functionName: get_size_by_pos
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - nth_midxed_pack
    - pack_pos_to_offset
    - die
    - nth_bitmap_object_oid
    - _
    - pack_pos_to_index
    - bitmap_repo
    - packed_object_info
    - nth_midxed_pack_int_id
    - pack_pos_to_midx
    - odb_read_object_info_extended
    - bitmap_num_objects_total
    - bitmap_is_midx
    - nth_midxed_offset
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long get_size_by_pos(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \    uint32_t pos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_tip_objects
      Src: /src/git/pack-bitmap.c:1908,1
    - Dst: init_type_iterator
      Src: /src/git/pack-bitmap.c:1910,1
    - Dst: ewah_or_iterator_next
      Src: /src/git/pack-bitmap.c:1911,1
    - Dst: ewah_bit_ctz64
      Src: /src/git/pack-bitmap.c:1921,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1924,1
    - Dst: get_size_by_pos
      Src: /src/git/pack-bitmap.c:1925,1
    - Dst: bitmap_unset
      Src: /src/git/pack-bitmap.c:1926,1
    - Dst: st_add
      Src: /src/git/pack-bitmap.c:1931,1
    - Dst: bitmap_num_objects
      Src: /src/git/pack-bitmap.c:1931,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1933,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:1934,1
    - Dst: get_size_by_pos
      Src: /src/git/pack-bitmap.c:1935,1
    - Dst: bitmap_unset
      Src: /src/git/pack-bitmap.c:1936,1
    - Dst: ewah_or_iterator_release
      Src: /src/git/pack-bitmap.c:1939,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:1940,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 4
    argNames:
    - bitmap_git
    - tip_objects
    - to_filter
    - limit
    argTypes:
    - struct bitmap_index*
    - struct object_list*
    - struct bitmap*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1897
    functionDepth: 12
    functionLinenumber: 1897
    functionLinenumberEnd: 1941
    functionName: filter_bitmap_blob_limit
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - ewah_bit_ctz64
    - find_tip_objects
    - ewah_or_iterator_release
    - ewah_or_iterator_next
    - init_type_iterator
    - bitmap_unset
    - bitmap_num_objects
    - bitmap_get
    - bitmap_free
    - st_add
    - get_size_by_pos
    linkageType: ''
    returnType: void
    signature: "void filter_bitmap_blob_limit(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \    struct object_list *tip_objects,\n\t\t\t\t     struct bitmap *to_filter,\n\t\t\t\t
      \    unsigned long limit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:1949,1
    - Dst: filter_bitmap_exclude_type
      Src: /src/git/pack-bitmap.c:1951,1
    - Dst: filter_bitmap_exclude_type
      Src: /src/git/pack-bitmap.c:1953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - bitmap_git
    - tip_objects
    - to_filter
    - limit
    argTypes:
    - struct bitmap_index*
    - struct object_list*
    - struct bitmap*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1943
    functionDepth: 10
    functionLinenumber: 1943
    functionLinenumberEnd: 1955
    functionName: filter_bitmap_tree_depth
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - filter_bitmap_exclude_type
    - BUG
    linkageType: ''
    returnType: void
    signature: "void filter_bitmap_tree_depth(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \    struct object_list *tip_objects,\n\t\t\t\t     struct bitmap *to_filter,\n\t\t\t\t
      \    unsigned long limit)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:1963,1
    - Dst: filter_bitmap_exclude_type
      Src: /src/git/pack-bitmap.c:1966,1
    - Dst: filter_bitmap_exclude_type
      Src: /src/git/pack-bitmap.c:1968,1
    - Dst: filter_bitmap_exclude_type
      Src: /src/git/pack-bitmap.c:1970,1
    - Dst: filter_bitmap_exclude_type
      Src: /src/git/pack-bitmap.c:1972,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - bitmap_git
    - tip_objects
    - to_filter
    - object_type
    argTypes:
    - struct bitmap_index*
    - struct object_list*
    - struct bitmap*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1957
    functionDepth: 10
    functionLinenumber: 1957
    functionLinenumberEnd: 1973
    functionName: filter_bitmap_object_type
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - filter_bitmap_exclude_type
    - BUG
    linkageType: ''
    returnType: void
    signature: "void filter_bitmap_object_type(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \     struct object_list *tip_objects,\n\t\t\t\t      struct bitmap *to_filter,\n\t\t\t\t
      \     enum object_type object_type)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: filter_bitmap_blob_none
      Src: /src/git/pack-bitmap.c:1985,1
    - Dst: filter_bitmap_blob_limit
      Src: /src/git/pack-bitmap.c:1992,1
    - Dst: filter_bitmap_tree_depth
      Src: /src/git/pack-bitmap.c:2001,1
    - Dst: filter_bitmap_object_type
      Src: /src/git/pack-bitmap.c:2009,1
    - Dst: filter_bitmap
      Src: /src/git/pack-bitmap.c:2018,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 4
    argNames:
    - bitmap_git
    - tip_objects
    - to_filter
    - filter
    argTypes:
    - struct bitmap_index*
    - struct object_list*
    - struct bitmap*
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 1975
    functionDepth: 13
    functionLinenumber: 1975
    functionLinenumberEnd: 2027
    functionName: filter_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - filter_bitmap_blob_limit
    - filter_bitmap_tree_depth
    - filter_bitmap
    - filter_bitmap_blob_none
    - filter_bitmap_object_type
    linkageType: ''
    returnType: int
    signature: "int filter_bitmap(struct bitmap_index *bitmap_git,\n\t\t\t struct
      object_list *tip_objects,\n\t\t\t struct bitmap *to_filter,\n\t\t\t struct list_objects_filter_options
      *filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filter_bitmap
      Src: /src/git/pack-bitmap.c:2031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2029
    functionDepth: 14
    functionLinenumber: 2029
    functionLinenumberEnd: 2032
    functionName: can_filter_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - filter_bitmap
    linkageType: ''
    returnType: int
    signature: int can_filter_bitmap(struct list_objects_filter_options *filter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_num_objects_total
      Src: /src/git/pack-bitmap.c:2042,1
    - Dst: memset
      Src: /src/git/pack-bitmap.c:2048,1
    - Dst: bitmap_unset
      Src: /src/git/pack-bitmap.c:2050,1
    - Dst: has_object_pack
      Src: /src/git/pack-bitmap.c:2053,1
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:2053,1
    - Dst: bitmap_unset
      Src: /src/git/pack-bitmap.c:2055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bitmap_git
    - result
    argTypes:
    - struct bitmap_index*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2035
    functionDepth: 2
    functionLinenumber: 2035
    functionLinenumberEnd: 2057
    functionName: filter_packed_objects_from_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - memset
    - bitmap_unset
    - has_object_pack
    - bitmap_repo
    - bitmap_num_objects_total
    linkageType: ''
    returnType: void
    signature: "void filter_packed_objects_from_bitmap(struct bitmap_index *bitmap_git,\n\t\t\t\t\t
      \     struct bitmap *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: can_filter_bitmap
      Src: /src/git/pack-bitmap.c:2069,1
    - Dst: bitmap_num_objects
      Src: /src/git/pack-bitmap.c:2074,1
    - Dst: bitmap_word_alloc
      Src: /src/git/pack-bitmap.c:2078,1
    - Dst: memset
      Src: /src/git/pack-bitmap.c:2079,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:2081,1
    - Dst: filter_bitmap
      Src: /src/git/pack-bitmap.c:2083,1
    - Dst: show_objects_for_type
      Src: /src/git/pack-bitmap.c:2088,1
    - Dst: show_objects_for_type
      Src: /src/git/pack-bitmap.c:2090,1
    - Dst: show_objects_for_type
      Src: /src/git/pack-bitmap.c:2092,1
    - Dst: show_objects_for_type
      Src: /src/git/pack-bitmap.c:2094,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:2099,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - bitmap_git
    - filter
    - show_reach
    - payload
    argTypes:
    - struct bitmap_index*
    - struct list_objects_filter_options*
    - show_reachable_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2059
    functionDepth: 15
    functionLinenumber: 2059
    functionLinenumberEnd: 2101
    functionName: for_each_bitmapped_object
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - memset
    - show_objects_for_type
    - bitmap_set
    - filter_bitmap
    - bitmap_num_objects
    - bitmap_free
    - can_filter_bitmap
    - bitmap_word_alloc
    linkageType: ''
    returnType: int
    signature: "int for_each_bitmapped_object(struct bitmap_index *bitmap_git,\n\t\t\t
      \     struct list_objects_filter_options *filter,\n\t\t\t      show_reachable_fn
      show_reach,\n\t\t\t      void *payload)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: can_filter_bitmap
      Src: /src/git/pack-bitmap.c:2126,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pack-bitmap.c:2131,1
    - Dst: open_bitmap
      Src: /src/git/pack-bitmap.c:2132,1
    - Dst: parse_object_or_die
      Src: /src/git/pack-bitmap.c:2139,1
    - Dst: object_list_insert
      Src: /src/git/pack-bitmap.c:2145,1
    - Dst: object_list_insert
      Src: /src/git/pack-bitmap.c:2147,1
    - Dst: parse_object_or_die
      Src: /src/git/pack-bitmap.c:2149,1
    - Dst: get_tagged_oid
      Src: /src/git/pack-bitmap.c:2149,1
    - Dst: object_list_insert
      Src: /src/git/pack-bitmap.c:2154,1
    - Dst: object_list_insert
      Src: /src/git/pack-bitmap.c:2156,1
    - Dst: git_env_bool
      Src: /src/git/pack-bitmap.c:2159,1
    - Dst: prepare_repo_settings
      Src: /src/git/pack-bitmap.c:2161,1
    - Dst: in_bitmapped_pack
      Src: /src/git/pack-bitmap.c:2171,1
    - Dst: load_bitmap
      Src: /src/git/pack-bitmap.c:2184,1
    - Dst: object_array_clear
      Src: /src/git/pack-bitmap.c:2188,1
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:2190,1
    - Dst: trace2_region_enter
      Src: /src/git/pack-bitmap.c:2194,1
    - Dst: find_boundary_objects
      Src: /src/git/pack-bitmap.c:2195,1
    - Dst: trace2_region_leave
      Src: /src/git/pack-bitmap.c:2196,1
    - Dst: trace2_region_enter
      Src: /src/git/pack-bitmap.c:2198,1
    - Dst: find_objects
      Src: /src/git/pack-bitmap.c:2200,1
    - Dst: reset_revision_walk
      Src: /src/git/pack-bitmap.c:2201,1
    - Dst: trace2_region_leave
      Src: /src/git/pack-bitmap.c:2203,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:2207,1
    - Dst: object_array_clear
      Src: /src/git/pack-bitmap.c:2211,1
    - Dst: reset_revision_walk
      Src: /src/git/pack-bitmap.c:2212,1
    - Dst: find_objects
      Src: /src/git/pack-bitmap.c:2215,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:2218,1
    - Dst: bitmap_and_not
      Src: /src/git/pack-bitmap.c:2221,1
    - Dst: filter_bitmap
      Src: /src/git/pack-bitmap.c:2223,1
    - Dst: filter_packed_objects_from_bitmap
      Src: /src/git/pack-bitmap.c:2229,1
    - Dst: object_list_free
      Src: /src/git/pack-bitmap.c:2234,1
    - Dst: object_list_free
      Src: /src/git/pack-bitmap.c:2235,1
    - Dst: trace2_data_intmax
      Src: /src/git/pack-bitmap.c:2237,1
    - Dst: trace2_data_intmax
      Src: /src/git/pack-bitmap.c:2239,1
    - Dst: trace2_data_intmax
      Src: /src/git/pack-bitmap.c:2241,1
    - Dst: trace2_data_intmax
      Src: /src/git/pack-bitmap.c:2243,1
    - Dst: trace2_data_intmax
      Src: /src/git/pack-bitmap.c:2245,1
    - Dst: trace2_data_intmax
      Src: /src/git/pack-bitmap.c:2247,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:2253,1
    - Dst: object_list_free
      Src: /src/git/pack-bitmap.c:2254,1
    - Dst: object_list_free
      Src: /src/git/pack-bitmap.c:2255,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 87
    argCount: 2
    argNames:
    - revs
    - filter_provided_objects
    argTypes:
    - struct rev_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2103
    functionDepth: 15
    functionLinenumber: 2103
    functionLinenumberEnd: 2257
    functionName: prepare_bitmap_walk
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - trace2_data_intmax
    - object_array_clear
    - in_bitmapped_pack
    - find_boundary_objects
    - trace2_region_enter
    - filter_bitmap
    - load_bitmap
    - CALLOC_ARRAY
    - can_filter_bitmap
    - git_env_bool
    - object_list_free
    - filter_packed_objects_from_bitmap
    - parse_object_or_die
    - open_bitmap
    - bitmap_repo
    - bitmap_and_not
    - object_list_insert
    - trace2_region_leave
    - reset_revision_walk
    - prepare_repo_settings
    - get_tagged_oid
    - free_bitmap_index
    - BUG
    - find_objects
    linkageType: ''
    returnType: struct bitmap_index
    signature: "struct bitmap_index *prepare_bitmap_walk(struct rev_info *revs,\n\t\t\t\t\t
      int filter_provided_objects)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unpack_object_header
      Src: /src/git/pack-bitmap.c:2279,1
    - Dst: get_delta_base
      Src: /src/git/pack-bitmap.c:2296,1
    - Dst: offset_to_pack_pos
      Src: /src/git/pack-bitmap.c:2301,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:2303,1
    - Dst: midx_pair_to_pack_pos
      Src: /src/git/pack-bitmap.c:2314,1
    - Dst: offset_to_pack_pos
      Src: /src/git/pack-bitmap.c:2321,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:2347,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:2354,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 7
    argNames:
    - bitmap_git
    - pack
    - bitmap_pos
    - pack_pos
    - offset
    - reuse
    - w_curs
    argTypes:
    - struct bitmap_index*
    - struct bitmapped_pack*
    - size_t
    - uint32_t
    - off_t
    - struct bitmap*
    - struct pack_window**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2263
    functionDepth: 6
    functionLinenumber: 2263
    functionLinenumberEnd: 2356
    functionName: try_partial_reuse
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - get_delta_base
    - unpack_object_header
    - bitmap_set
    - midx_pair_to_pack_pos
    - offset_to_pack_pos
    - bitmap_get
    - bitmap_is_midx
    linkageType: ''
    returnType: int
    signature: "int try_partial_reuse(struct bitmap_index *bitmap_git,\n\t\t\t     struct
      bitmapped_pack *pack,\n\t\t\t     size_t bitmap_pos,\n\t\t\t     uint32_t pack_pos,\n\t\t\t
      \    off_t offset,\n\t\t\t     struct bitmap *reuse,\n\t\t\t     struct pack_window
      **w_curs)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/pack-bitmap.c:2387,1
    - Dst: ewah_bit_ctz64
      Src: /src/git/pack-bitmap.c:2402,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:2410,1
    - Dst: pack_pos_to_midx
      Src: /src/git/pack-bitmap.c:2413,1
    - Dst: nth_midxed_offset
      Src: /src/git/pack-bitmap.c:2414,1
    - Dst: offset_to_pack_pos
      Src: /src/git/pack-bitmap.c:2416,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:2417,1
    - Dst: pack_basename
      Src: /src/git/pack-bitmap.c:2419,1
    - Dst: cast_size_t_to_uint32_t
      Src: /src/git/pack-bitmap.c:2421,1
    - Dst: st_sub
      Src: /src/git/pack-bitmap.c:2421,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:2423,1
    - Dst: pack_basename
      Src: /src/git/pack-bitmap.c:2424,1
    - Dst: pack_pos_to_offset
      Src: /src/git/pack-bitmap.c:2427,1
    - Dst: try_partial_reuse
      Src: /src/git/pack-bitmap.c:2430,1
    - Dst: unuse_pack
      Src: /src/git/pack-bitmap.c:2447,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 3
    argNames:
    - bitmap_git
    - pack
    - reuse
    argTypes:
    - struct bitmap_index*
    - struct bitmapped_pack*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2358
    functionDepth: 7
    functionLinenumber: 2358
    functionLinenumberEnd: 2448
    functionName: reuse_partial_packfile_from_bitmap_1
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - st_sub
    - memset
    - ewah_bit_ctz64
    - pack_basename
    - BUG
    - cast_size_t_to_uint32_t
    - offset_to_pack_pos
    - unuse_pack
    - try_partial_reuse
    - pack_pos_to_midx
    - pack_pos_to_offset
    - bitmap_is_midx
    - nth_midxed_offset
    linkageType: ''
    returnType: void
    signature: "void reuse_partial_packfile_from_bitmap_1(struct bitmap_index *bitmap_git,\n\t\t\t\t\t\t
      struct bitmapped_pack *pack,\n\t\t\t\t\t\t struct bitmap *reuse)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2450
    functionDepth: 0
    functionLinenumber: 2450
    functionLinenumberEnd: 2460
    functionName: bitmapped_pack_cmp
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bitmapped_pack_cmp(const void *va, const void *vb)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:2468,1
    - Dst: assert
      Src: /src/git/pack-bitmap.c:2477,1
    - Dst: load_reverse_index
      Src: /src/git/pack-bitmap.c:2479,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:2481,1
    - Dst: nth_bitmapped_pack
      Src: /src/git/pack-bitmap.c:2488,1
    - Dst: warning
      Src: /src/git/pack-bitmap.c:2489,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2489,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:2491,1
    - Dst: is_pack_valid
      Src: /src/git/pack-bitmap.c:2498,1
    - Dst: ALLOC_GROW
      Src: /src/git/pack-bitmap.c:2499,1
    - Dst: memcpy
      Src: /src/git/pack-bitmap.c:2500,1
    - Dst: QSORT
      Src: /src/git/pack-bitmap.c:2506,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:2511,1
    - Dst: midx_preferred_pack
      Src: /src/git/pack-bitmap.c:2518,1
    - Dst: warning
      Src: /src/git/pack-bitmap.c:2519,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2519,1
    - Dst: nth_midxed_pack
      Src: /src/git/pack-bitmap.c:2523,1
    - Dst: is_pack_valid
      Src: /src/git/pack-bitmap.c:2539,1
    - Dst: ALLOC_GROW
      Src: /src/git/pack-bitmap.c:2540,1
    - Dst: bitmap_word_alloc
      Src: /src/git/pack-bitmap.c:2558,1
    - Dst: reuse_partial_packfile_from_bitmap_1
      Src: /src/git/pack-bitmap.c:2561,1
    - Dst: bitmap_is_empty
      Src: /src/git/pack-bitmap.c:2563,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:2564,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:2565,1
    - Dst: bitmap_and_not
      Src: /src/git/pack-bitmap.c:2573,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 5
    argNames:
    - bitmap_git
    - packs_out
    - packs_nr_out
    - reuse_out
    - multi_pack_reuse
    argTypes:
    - struct bitmap_index*
    - struct bitmapped_pack**
    - size_t*
    - struct bitmap**
    - int
    assertStmts:
    - condition: (result)
      pos:
        line_end: 2476
        line_start: 2476
        source_file: /src/git/pack-bitmap.c
    constantsTouched: []
    func_position:
      end: 2577
      start: 2462
    functionDepth: 8
    functionLinenumber: 2462
    functionLinenumberEnd: 2577
    functionName: reuse_partial_packfile_from_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - nth_midxed_pack
    - reuse_partial_packfile_from_bitmap_1
    - bitmap_is_empty
    - free
    - bitmap_is_midx
    - nth_bitmapped_pack
    - memcpy
    - QSORT
    - _
    - bitmap_repo
    - warning
    - midx_preferred_pack
    - bitmap_and_not
    - assert
    - is_pack_valid
    - ALLOC_GROW
    - bitmap_free
    - load_reverse_index
    - bitmap_word_alloc
    linkageType: ''
    returnType: void
    signature: "void reuse_partial_packfile_from_bitmap(struct bitmap_index *bitmap_git,\n\t\t\t\t\tstruct
      bitmapped_pack **packs_out,\n\t\t\t\t\tsize_t *packs_nr_out,\n\t\t\t\t\tstruct
      bitmap **reuse_out,\n\t\t\t\t\tint multi_pack_reuse)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:2587,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:2588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - bitmap_git
    - bitmap
    - oid
    argTypes:
    - struct bitmap_index*
    - struct bitmap*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2579
    functionDepth: 8
    functionLinenumber: 2579
    functionLinenumberEnd: 2589
    functionName: bitmap_walk_contains
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 2
    functionsReached:
    - bitmap_position
    - bitmap_get
    linkageType: ''
    returnType: int
    signature: "int bitmap_walk_contains(struct bitmap_index *bitmap_git,\n\t\t\t
      struct bitmap *bitmap, const struct object_id *oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/pack-bitmap.c:2595,1
    - Dst: show_objects_for_type
      Src: /src/git/pack-bitmap.c:2597,1
    - Dst: show_objects_for_type
      Src: /src/git/pack-bitmap.c:2600,1
    - Dst: show_objects_for_type
      Src: /src/git/pack-bitmap.c:2603,1
    - Dst: show_objects_for_type
      Src: /src/git/pack-bitmap.c:2606,1
    - Dst: show_extended_objects
      Src: /src/git/pack-bitmap.c:2609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - bitmap_git
    - revs
    - show_reachable
    argTypes:
    - struct bitmap_index*
    - struct rev_info*
    - show_reachable_fn
    assertStmts:
    - condition: (bitmap_git->result)
      pos:
        line_end: 2594
        line_start: 2594
        source_file: /src/git/pack-bitmap.c
    constantsTouched: []
    func_position:
      end: 2610
      start: 2591
    functionDepth: 5
    functionLinenumber: 2591
    functionLinenumberEnd: 2610
    functionName: traverse_bitmap_commit_list
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - show_extended_objects
    - show_objects_for_type
    - assert
    linkageType: ''
    returnType: void
    signature: "void traverse_bitmap_commit_list(struct bitmap_index *bitmap_git,\n\t\t\t\t
      struct rev_info *revs,\n\t\t\t\t show_reachable_fn show_reachable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_type_iterator
      Src: /src/git/pack-bitmap.c:2622,1
    - Dst: ewah_or_iterator_next
      Src: /src/git/pack-bitmap.c:2624,1
    - Dst: ewah_bit_popcount64
      Src: /src/git/pack-bitmap.c:2626,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:2631,1
    - Dst: st_add
      Src: /src/git/pack-bitmap.c:2632,1
    - Dst: bitmap_num_objects_total
      Src: /src/git/pack-bitmap.c:2632,1
    - Dst: ewah_or_iterator_release
      Src: /src/git/pack-bitmap.c:2636,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - bitmap_git
    - type
    argTypes:
    - struct bitmap_index*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2612
    functionDepth: 3
    functionLinenumber: 2612
    functionLinenumberEnd: 2639
    functionName: count_object_type
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_num_objects_total
    - ewah_or_iterator_release
    - ewah_or_iterator_next
    - init_type_iterator
    - ewah_bit_popcount64
    - bitmap_get
    - st_add
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t count_object_type(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \ enum object_type type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/pack-bitmap.c:2645,1
    - Dst: count_object_type
      Src: /src/git/pack-bitmap.c:2648,1
    - Dst: count_object_type
      Src: /src/git/pack-bitmap.c:2651,1
    - Dst: count_object_type
      Src: /src/git/pack-bitmap.c:2654,1
    - Dst: count_object_type
      Src: /src/git/pack-bitmap.c:2657,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - bitmap_git
    - commits
    - trees
    - blobs
    - tags
    argTypes:
    - struct bitmap_index*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts:
    - condition: (bitmap_git->result)
      pos:
        line_end: 2644
        line_start: 2644
        source_file: /src/git/pack-bitmap.c
    constantsTouched: []
    func_position:
      end: 2658
      start: 2641
    functionDepth: 4
    functionLinenumber: 2641
    functionLinenumberEnd: 2658
    functionName: count_bitmap_commit_list
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - assert
    - count_object_type
    linkageType: ''
    returnType: void
    signature: "void count_bitmap_commit_list(struct bitmap_index *bitmap_git,\n\t\t\t
      \     uint32_t *commits, uint32_t *trees,\n\t\t\t      uint32_t *blobs, uint32_t
      *tags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:2679,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:2684,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:2688,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:2692,1
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:2696,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2702,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2702,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:2703,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2706,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2706,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:2707,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2710,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2710,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:2711,1
    - Dst: type_name
      Src: /src/git/pack-bitmap.c:2712,1
    - Dst: type_name
      Src: /src/git/pack-bitmap.c:2713,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - tdata
    - obj
    - pos
    argTypes:
    - struct bitmap_test_data*
    - struct object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2673
    functionDepth: 3
    functionLinenumber: 2673
    functionLinenumberEnd: 2714
    functionName: test_bitmap_type
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - bitmap_get
    - _
    - type_name
    - bitmap_is_midx
    linkageType: ''
    returnType: void
    signature: "void test_bitmap_type(struct bitmap_test_data *tdata,\n\t\t\t     struct
      object *obj, int pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:2723,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2725,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2725,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:2725,1
    - Dst: test_bitmap_type
      Src: /src/git/pack-bitmap.c:2726,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:2728,1
    - Dst: display_progress
      Src: /src/git/pack-bitmap.c:2729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - object
    - UNUSED
    - data
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2716
    functionDepth: 8
    functionLinenumber: 2716
    functionLinenumberEnd: 2730
    functionName: test_show_object
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - bitmap_position
    - bitmap_set
    - test_bitmap_type
    - display_progress
    - _
    linkageType: ''
    returnType: void
    signature: "void test_show_object(struct object *object,\n\t\t\t     const char
      *name UNUSED,\n\t\t\t     void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_position
      Src: /src/git/pack-bitmap.c:2737,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2740,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2740,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:2740,1
    - Dst: test_bitmap_type
      Src: /src/git/pack-bitmap.c:2741,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:2743,1
    - Dst: display_progress
      Src: /src/git/pack-bitmap.c:2744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - commit
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2732
    functionDepth: 8
    functionLinenumber: 2732
    functionLinenumberEnd: 2745
    functionName: test_show_commit
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - bitmap_position
    - bitmap_set
    - test_bitmap_type
    - display_progress
    - _
    linkageType: ''
    returnType: void
    signature: void test_show_commit(struct commit *commit, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: st_add
      Src: /src/git/pack-bitmap.c:2751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bitmap_git
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2747
    functionDepth: 3
    functionLinenumber: 2747
    functionLinenumberEnd: 2756
    functionName: bitmap_total_entry_count
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - st_add
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bitmap_total_entry_count(struct bitmap_index *bitmap_git)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/pack-bitmap.c:2761,1
    - Dst: bitmap_new
      Src: /src/git/pack-bitmap.c:2764,1
    - Dst: ewah_to_bitmap
      Src: /src/git/pack-bitmap.c:2765,1
    - Dst: ewah_to_bitmap
      Src: /src/git/pack-bitmap.c:2766,1
    - Dst: ewah_to_bitmap
      Src: /src/git/pack-bitmap.c:2767,1
    - Dst: ewah_to_bitmap
      Src: /src/git/pack-bitmap.c:2768,1
    - Dst: xmalloc
      Src: /src/git/pack-bitmap.c:2771,1
    - Dst: bitmap_test_data_prepare
      Src: /src/git/pack-bitmap.c:2772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - tdata
    - bitmap_git
    argTypes:
    - struct bitmap_test_data*
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2758
    functionDepth: 1
    functionLinenumber: 2758
    functionLinenumberEnd: 2774
    functionName: bitmap_test_data_prepare
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - memset
    - bitmap_test_data_prepare
    - ewah_to_bitmap
    - xmalloc
    - bitmap_new
    linkageType: ''
    returnType: void
    signature: "void bitmap_test_data_prepare(struct bitmap_test_data *tdata,\n\t\t\t\t
      \    struct bitmap_index *bitmap_git)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_test_data_release
      Src: /src/git/pack-bitmap.c:2781,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:2782,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:2784,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:2785,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:2786,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:2787,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:2788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - tdata
    argTypes:
    - struct bitmap_test_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2789
      start: 2776
    functionDepth: 1
    functionLinenumber: 2776
    functionLinenumberEnd: 2789
    functionName: bitmap_test_data_release
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - bitmap_free
    - bitmap_test_data_release
    - free
    linkageType: ''
    returnType: void
    signature: void bitmap_test_data_release(struct bitmap_test_data *tdata)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_git
      Src: /src/git/pack-bitmap.c:2800,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2801,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2801,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2804,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2804,1
    - Dst: fprintf_ln
      Src: /src/git/pack-bitmap.c:2806,1
    - Dst: bitmap_total_entry_count
      Src: /src/git/pack-bitmap.c:2810,1
    - Dst: find_bitmap_for_commit
      Src: /src/git/pack-bitmap.c:2813,1
    - Dst: fprintf_ln
      Src: /src/git/pack-bitmap.c:2816,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:2817,1
    - Dst: ewah_checksum
      Src: /src/git/pack-bitmap.c:2818,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:2820,1
    - Dst: fprintf_ln
      Src: /src/git/pack-bitmap.c:2821,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/pack-bitmap.c:2822,1
    - Dst: fprintf_ln
      Src: /src/git/pack-bitmap.c:2824,1
    - Dst: hash_to_hex_algop
      Src: /src/git/pack-bitmap.c:2825,1
    - Dst: ewah_to_bitmap
      Src: /src/git/pack-bitmap.c:2828,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2832,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2832,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:2832,1
    - Dst: bitmap_popcount
      Src: /src/git/pack-bitmap.c:2838,1
    - Dst: prepare_revision_walk
      Src: /src/git/pack-bitmap.c:2840,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2841,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2841,1
    - Dst: bitmap_test_data_prepare
      Src: /src/git/pack-bitmap.c:2843,1
    - Dst: start_progress
      Src: /src/git/pack-bitmap.c:2844,1
    - Dst: traverse_commit_list
      Src: /src/git/pack-bitmap.c:2848,1
    - Dst: stop_progress
      Src: /src/git/pack-bitmap.c:2850,1
    - Dst: bitmap_equals
      Src: /src/git/pack-bitmap.c:2852,1
    - Dst: fprintf_ln
      Src: /src/git/pack-bitmap.c:2853,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2855,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2855,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:2857,1
    - Dst: bitmap_test_data_release
      Src: /src/git/pack-bitmap.c:2858,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:2859,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2791
    functionDepth: 12
    functionLinenumber: 2791
    functionLinenumberEnd: 2860
    functionName: test_bitmap_walk
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - bitmap_is_midx
    - find_bitmap_for_commit
    - die
    - traverse_commit_list
    - ewah_to_bitmap
    - bitmap_equals
    - bitmap_popcount
    - prepare_revision_walk
    - midx_get_checksum_hex
    - ewah_checksum
    - bitmap_test_data_prepare
    - oid_to_hex
    - fprintf_ln
    - bitmap_test_data_release
    - prepare_bitmap_git
    - _
    - hash_to_hex_algop
    - bitmap_total_entry_count
    - free_bitmap_index
    - bitmap_free
    - start_progress
    linkageType: ''
    returnType: void
    signature: void test_bitmap_walk(struct rev_info *revs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_git
      Src: /src/git/pack-bitmap.c:2866,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2869,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2869,1
    - Dst: load_bitmap_entries_v1
      Src: /src/git/pack-bitmap.c:2877,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2878,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2878,1
    - Dst: kh_foreach
      Src: /src/git/pack-bitmap.c:2881,1
    - Dst: printf_ln
      Src: /src/git/pack-bitmap.c:2882,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:2882,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:2885,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2888
      start: 2862
    functionDepth: 12
    functionLinenumber: 2862
    functionLinenumberEnd: 2888
    functionName: test_bitmap_commits
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - load_bitmap_entries_v1
    - oid_to_hex
    - die
    - prepare_bitmap_git
    - free_bitmap_index
    - _
    - printf_ln
    - kh_foreach
    linkageType: ''
    returnType: int
    signature: int test_bitmap_commits(struct repository *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_git
      Src: /src/git/pack-bitmap.c:2898,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2900,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2900,1
    - Dst: load_bitmap_entries_v1
      Src: /src/git/pack-bitmap.c:2908,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:2909,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:2909,1
    - Dst: kh_foreach
      Src: /src/git/pack-bitmap.c:2912,1
    - Dst: printf_ln
      Src: /src/git/pack-bitmap.c:2918,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:2919,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:2927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2890
    functionDepth: 12
    functionLinenumber: 2890
    functionLinenumberEnd: 2930
    functionName: test_bitmap_commits_with_offset
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - load_bitmap_entries_v1
    - oid_to_hex
    - die
    - prepare_bitmap_git
    - free_bitmap_index
    - _
    - printf_ln
    - kh_foreach
    linkageType: ''
    returnType: int
    signature: int test_bitmap_commits_with_offset(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_git
      Src: /src/git/pack-bitmap.c:2934,1
    - Dst: bitmap_num_objects
      Src: /src/git/pack-bitmap.c:2941,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:2942,1
    - Dst: pack_pos_to_midx
      Src: /src/git/pack-bitmap.c:2943,1
    - Dst: pack_pos_to_index
      Src: /src/git/pack-bitmap.c:2945,1
    - Dst: nth_bitmap_object_oid
      Src: /src/git/pack-bitmap.c:2947,1
    - Dst: printf_ln
      Src: /src/git/pack-bitmap.c:2949,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:2950,1
    - Dst: get_be32
      Src: /src/git/pack-bitmap.c:2950,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:2954,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2932
    functionDepth: 12
    functionLinenumber: 2932
    functionLinenumberEnd: 2957
    functionName: test_bitmap_hashes
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - nth_bitmap_object_oid
    - get_be32
    - pack_pos_to_index
    - prepare_bitmap_git
    - bitmap_num_objects
    - free_bitmap_index
    - pack_pos_to_midx
    - printf_ln
    - bitmap_is_midx
    linkageType: ''
    returnType: int
    signature: int test_bitmap_hashes(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:2965,1
    - Dst: pack_pos_to_midx
      Src: /src/git/pack-bitmap.c:2966,1
    - Dst: pack_pos_to_index
      Src: /src/git/pack-bitmap.c:2968,1
    - Dst: nth_bitmap_object_oid
      Src: /src/git/pack-bitmap.c:2970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bitmap_git
    - bit_pos
    - oid
    argTypes:
    - struct bitmap_index*
    - uint32_t
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2959
    functionDepth: 4
    functionLinenumber: 2959
    functionLinenumberEnd: 2971
    functionName: bit_pos_to_object_id
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - pack_pos_to_index
    - pack_pos_to_midx
    - nth_bitmap_object_oid
    - bitmap_is_midx
    linkageType: ''
    returnType: void
    signature: "void bit_pos_to_object_id(struct bitmap_index *bitmap_git,\n\t\t\t\t
      uint32_t bit_pos,\n\t\t\t\t struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_git
      Src: /src/git/pack-bitmap.c:2978,1
    - Dst: use_pseudo_merge
      Src: /src/git/pack-bitmap.c:2986,1
    - Dst: pseudo_merge_bitmap
      Src: /src/git/pack-bitmap.c:2989,1
    - Dst: printf
      Src: /src/git/pack-bitmap.c:2992,1
    - Dst: ewah_bitmap_popcount
      Src: /src/git/pack-bitmap.c:2994,1
    - Dst: ewah_bitmap_popcount
      Src: /src/git/pack-bitmap.c:2995,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:2999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2973
    functionDepth: 12
    functionLinenumber: 2973
    functionLinenumberEnd: 3001
    functionName: test_bitmap_pseudo_merges
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - ewah_bitmap_popcount
    - pseudo_merge_bitmap
    - use_pseudo_merge
    - prepare_bitmap_git
    - free_bitmap_index
    - printf
    linkageType: ''
    returnType: int
    signature: int test_bitmap_pseudo_merges(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ewah_iterator_init
      Src: /src/git/pack-bitmap.c:3011,1
    - Dst: ewah_iterator_next
      Src: /src/git/pack-bitmap.c:3013,1
    - Dst: ewah_bit_ctz64
      Src: /src/git/pack-bitmap.c:3021,1
    - Dst: bit_pos_to_object_id
      Src: /src/git/pack-bitmap.c:3023,1
    - Dst: printf
      Src: /src/git/pack-bitmap.c:3024,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:3024,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bitmap_git
    - bitmap
    argTypes:
    - struct bitmap_index*
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 3003
    functionDepth: 5
    functionLinenumber: 3003
    functionLinenumberEnd: 3028
    functionName: dump_ewah_object_ids
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - ewah_bit_ctz64
    - oid_to_hex
    - bit_pos_to_object_id
    - ewah_iterator_init
    - printf
    - ewah_iterator_next
    linkageType: ''
    returnType: void
    signature: "void dump_ewah_object_ids(struct bitmap_index *bitmap_git,\n\t\t\t\t
      struct ewah_bitmap *bitmap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_git
      Src: /src/git/pack-bitmap.c:3036,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:3041,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:3041,1
    - Dst: use_pseudo_merge
      Src: /src/git/pack-bitmap.c:3047,1
    - Dst: dump_ewah_object_ids
      Src: /src/git/pack-bitmap.c:3049,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:3052,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - r
    - n
    argTypes:
    - struct repository*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3030
    functionDepth: 12
    functionLinenumber: 3030
    functionLinenumberEnd: 3054
    functionName: test_bitmap_pseudo_merge_commits
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - error
    - use_pseudo_merge
    - prepare_bitmap_git
    - dump_ewah_object_ids
    - free_bitmap_index
    - _
    linkageType: ''
    returnType: int
    signature: int test_bitmap_pseudo_merge_commits(struct repository *r, uint32_t
      n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_git
      Src: /src/git/pack-bitmap.c:3062,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:3067,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:3067,1
    - Dst: use_pseudo_merge
      Src: /src/git/pack-bitmap.c:3073,1
    - Dst: dump_ewah_object_ids
      Src: /src/git/pack-bitmap.c:3076,1
    - Dst: pseudo_merge_bitmap
      Src: /src/git/pack-bitmap.c:3077,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:3081,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - r
    - n
    argTypes:
    - struct repository*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3056
    functionDepth: 12
    functionLinenumber: 3056
    functionLinenumberEnd: 3083
    functionName: test_bitmap_pseudo_merge_objects
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - error
    - pseudo_merge_bitmap
    - use_pseudo_merge
    - prepare_bitmap_git
    - dump_ewah_object_ids
    - free_bitmap_index
    - _
    linkageType: ''
    returnType: int
    signature: int test_bitmap_pseudo_merge_objects(struct repository *r, uint32_t
      n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ewah_iterator_init
      Src: /src/git/pack-bitmap.c:3093,1
    - Dst: ewah_iterator_next
      Src: /src/git/pack-bitmap.c:3095,1
    - Dst: ewah_bit_ctz64
      Src: /src/git/pack-bitmap.c:3102,1
    - Dst: bitmap_set
      Src: /src/git/pack-bitmap.c:3106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - reposition
    - source
    - dest
    argTypes:
    - uint32_t*
    - struct ewah_bitmap*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3085
    functionDepth: 1
    functionLinenumber: 3085
    functionLinenumberEnd: 3114
    functionName: rebuild_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - ewah_iterator_init
    - ewah_bit_ctz64
    - bitmap_set
    - ewah_iterator_next
    linkageType: ''
    returnType: int
    signature: "int rebuild_bitmap(const uint32_t *reposition,\n\t\t   struct ewah_bitmap
      *source,\n\t\t   struct bitmap *dest)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:3119,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:3123,1
    - Dst: load_reverse_index
      Src: /src/git/pack-bitmap.c:3124,1
    - Dst: load_midx_revindex
      Src: /src/git/pack-bitmap.c:3125,1
    - Dst: BUG
      Src: /src/git/pack-bitmap.c:3126,1
    - Dst: bitmap_num_objects_total
      Src: /src/git/pack-bitmap.c:3129,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pack-bitmap.c:3130,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:3137,1
    - Dst: pack_pos_to_midx
      Src: /src/git/pack-bitmap.c:3138,1
    - Dst: pack_pos_to_index
      Src: /src/git/pack-bitmap.c:3140,1
    - Dst: nth_bitmap_object_oid
      Src: /src/git/pack-bitmap.c:3141,1
    - Dst: packlist_find
      Src: /src/git/pack-bitmap.c:3142,1
    - Dst: oe_in_pack_pos
      Src: /src/git/pack-bitmap.c:3145,1
    - Dst: bitmap_name_hash
      Src: /src/git/pack-bitmap.c:3147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - bitmap_git
    - mapping
    argTypes:
    - struct bitmap_index*
    - struct packing_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3116
    functionDepth: 6
    functionLinenumber: 3116
    functionLinenumberEnd: 3152
    functionName: create_bitmap_mapping
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - pack_pos_to_midx
    - bitmap_is_midx
    - BUG
    - nth_bitmap_object_oid
    - pack_pos_to_index
    - bitmap_name_hash
    - load_midx_revindex
    - oe_in_pack_pos
    - CALLOC_ARRAY
    - bitmap_repo
    - packlist_find
    - bitmap_num_objects_total
    - load_reverse_index
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t *create_bitmap_mapping(struct bitmap_index *bitmap_git,\n\t\t\t\tstruct
      packing_data *mapping)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/git/pack-bitmap.c:3160,1
    - Dst: ewah_pool_free
      Src: /src/git/pack-bitmap.c:3161,1
    - Dst: ewah_pool_free
      Src: /src/git/pack-bitmap.c:3162,1
    - Dst: ewah_pool_free
      Src: /src/git/pack-bitmap.c:3163,1
    - Dst: ewah_pool_free
      Src: /src/git/pack-bitmap.c:3164,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3165,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3166,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3167,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3168,1
    - Dst: kh_foreach_value
      Src: /src/git/pack-bitmap.c:3171,1
    - Dst: ewah_pool_free
      Src: /src/git/pack-bitmap.c:3172,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3173,1
    - Dst: kh_destroy_oid_map
      Src: /src/git/pack-bitmap.c:3176,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3177,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3178,1
    - Dst: kh_destroy_oid_pos
      Src: /src/git/pack-bitmap.c:3179,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:3180,1
    - Dst: bitmap_free
      Src: /src/git/pack-bitmap.c:3181,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:3182,1
    - Dst: close_midx_revindex
      Src: /src/git/pack-bitmap.c:3193,1
    - Dst: free_pseudo_merge_map
      Src: /src/git/pack-bitmap.c:3195,1
    - Dst: free_bitmap_index
      Src: /src/git/pack-bitmap.c:3196,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3198
      start: 3154
    functionDepth: 1
    functionLinenumber: 3154
    functionLinenumberEnd: 3198
    functionName: free_bitmap_index
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 13
    functionsReached:
    - bitmap_free
    - ewah_pool_free
    - kh_destroy_oid_map
    - close_midx_revindex
    - free_bitmap_index
    - free
    - munmap
    - bitmap_is_midx
    - kh_foreach_value
    - kh_destroy_oid_pos
    - free_pseudo_merge_map
    linkageType: ''
    returnType: void
    signature: void free_bitmap_index(struct bitmap_index *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_walk_contains
      Src: /src/git/pack-bitmap.c:3204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - bitmap_git
    - oid
    argTypes:
    - struct bitmap_index*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3200
    functionDepth: 9
    functionLinenumber: 3200
    functionLinenumberEnd: 3205
    functionName: bitmap_has_oid_in_uninteresting
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_walk_contains
    linkageType: ''
    returnType: int
    signature: "int bitmap_has_oid_in_uninteresting(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \   const struct object_id *oid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_type_iterator
      Src: /src/git/pack-bitmap.c:3216,1
    - Dst: ewah_or_iterator_next
      Src: /src/git/pack-bitmap.c:3218,1
    - Dst: ewah_bit_ctz64
      Src: /src/git/pack-bitmap.c:3230,1
    - Dst: bitmap_is_midx
      Src: /src/git/pack-bitmap.c:3232,1
    - Dst: pack_pos_to_midx
      Src: /src/git/pack-bitmap.c:3234,1
    - Dst: nth_midxed_offset
      Src: /src/git/pack-bitmap.c:3235,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/pack-bitmap.c:3237,1
    - Dst: nth_midxed_pack
      Src: /src/git/pack-bitmap.c:3238,1
    - Dst: offset_to_pack_pos
      Src: /src/git/pack-bitmap.c:3240,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/pack-bitmap.c:3242,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:3244,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:3244,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:3245,1
    - Dst: pack_pos_to_offset
      Src: /src/git/pack-bitmap.c:3250,1
    - Dst: pack_pos_to_offset
      Src: /src/git/pack-bitmap.c:3253,1
    - Dst: pack_pos_to_offset
      Src: /src/git/pack-bitmap.c:3254,1
    - Dst: ewah_or_iterator_release
      Src: /src/git/pack-bitmap.c:3259,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - bitmap_git
    - object_type
    argTypes:
    - struct bitmap_index*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3262
      start: 3207
    functionDepth: 6
    functionLinenumber: 3207
    functionLinenumberEnd: 3262
    functionName: get_disk_usage_for_type
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - nth_midxed_object_oid
    - ewah_bit_ctz64
    - nth_midxed_pack
    - die
    - oid_to_hex
    - ewah_or_iterator_release
    - ewah_or_iterator_next
    - init_type_iterator
    - offset_to_pack_pos
    - _
    - nth_midxed_pack_int_id
    - pack_pos_to_midx
    - pack_pos_to_offset
    - bitmap_is_midx
    - nth_midxed_offset
    linkageType: ''
    returnType: off_t
    signature: "off_t get_disk_usage_for_type(struct bitmap_index *bitmap_git,\n\t\t\t\t
      \    enum object_type object_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_get
      Src: /src/git/pack-bitmap.c:3278,1
    - Dst: st_add
      Src: /src/git/pack-bitmap.c:3279,1
    - Dst: bitmap_num_objects_total
      Src: /src/git/pack-bitmap.c:3279,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/pack-bitmap.c:3283,1
    - Dst: bitmap_repo
      Src: /src/git/pack-bitmap.c:3283,1
    - Dst: die
      Src: /src/git/pack-bitmap.c:3285,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:3285,1
    - Dst: oid_to_hex
      Src: /src/git/pack-bitmap.c:3286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - bitmap_git
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3291
      start: 3264
    functionDepth: 11
    functionLinenumber: 3264
    functionLinenumberEnd: 3291
    functionName: get_disk_usage_for_extended
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - bitmap_num_objects_total
    - bitmap_get
    - _
    - bitmap_repo
    - odb_read_object_info_extended
    - st_add
    linkageType: ''
    returnType: off_t
    signature: off_t get_disk_usage_for_extended(struct bitmap_index *bitmap_git)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_disk_usage_for_type
      Src: /src/git/pack-bitmap.c:3298,1
    - Dst: get_disk_usage_for_type
      Src: /src/git/pack-bitmap.c:3300,1
    - Dst: get_disk_usage_for_type
      Src: /src/git/pack-bitmap.c:3302,1
    - Dst: get_disk_usage_for_type
      Src: /src/git/pack-bitmap.c:3304,1
    - Dst: get_disk_usage_for_extended
      Src: /src/git/pack-bitmap.c:3306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - bitmap_git
    - revs
    argTypes:
    - struct bitmap_index*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3309
      start: 3293
    functionDepth: 12
    functionLinenumber: 3293
    functionLinenumberEnd: 3309
    functionName: get_disk_usage_from_bitmap
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - get_disk_usage_for_type
    - get_disk_usage_for_extended
    linkageType: ''
    returnType: off_t
    signature: "off_t get_disk_usage_from_bitmap(struct bitmap_index *bitmap_git,\n\t\t\t\t
      struct rev_info *revs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitmap_git
    argTypes:
    - struct bitmap_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3314
      start: 3311
    functionDepth: 0
    functionLinenumber: 3311
    functionLinenumberEnd: 3314
    functionName: bitmap_is_midx
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bitmap_is_midx(struct bitmap_index *bitmap_git)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_multi
      Src: /src/git/pack-bitmap.c:3320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3316
    functionDepth: 19
    functionLinenumber: 3316
    functionLinenumberEnd: 3323
    functionName: bitmap_preferred_tips
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - repo_config_get_string_multi
    linkageType: ''
    returnType: struct string_list
    signature: struct string_list *bitmap_preferred_tips(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_preferred_tips
      Src: /src/git/pack-bitmap.c:3333,1
    - Dst: ends_with
      Src: /src/git/pack-bitmap.c:3340,1
    - Dst: strbuf_reset
      Src: /src/git/pack-bitmap.c:3341,1
    - Dst: strbuf_addf
      Src: /src/git/pack-bitmap.c:3342,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/pack-bitmap.c:3346,1
    - Dst: get_main_ref_store
      Src: /src/git/pack-bitmap.c:3346,1
    - Dst: strbuf_release
      Src: /src/git/pack-bitmap.c:3350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - repo
    - cb
    - cb_data
    argTypes:
    - struct repository*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3325
    functionDepth: 20
    functionLinenumber: 3325
    functionLinenumberEnd: 3351
    functionName: for_each_preferred_bitmap_tip
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - strbuf_addf
    - refs_for_each_ref_ext
    - ends_with
    - bitmap_preferred_tips
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void for_each_preferred_bitmap_tip(struct repository *repo,\n\t\t\t\t
      \  refs_for_each_cb cb, void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ends_with
      Src: /src/git/pack-bitmap.c:3340,1
    - Dst: strbuf_reset
      Src: /src/git/pack-bitmap.c:3341,1
    - Dst: strbuf_addf
      Src: /src/git/pack-bitmap.c:3342,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/pack-bitmap.c:3346,1
    - Dst: get_main_ref_store
      Src: /src/git/pack-bitmap.c:3346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3337
    functionDepth: 4
    functionLinenumber: 3337
    functionLinenumberEnd: 3348
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 42
    functionsReached:
    - strbuf_reset
    - strbuf_addf
    - refs_for_each_ref_ext
    - ends_with
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, preferred_tips)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_preferred_tips
      Src: /src/git/pack-bitmap.c:3355,1
    - Dst: starts_with
      Src: /src/git/pack-bitmap.c:3362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - r
    - refname
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3367
      start: 3353
    functionDepth: 20
    functionLinenumber: 3353
    functionLinenumberEnd: 3367
    functionName: bitmap_is_preferred_refname
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_preferred_tips
    - starts_with
    linkageType: ''
    returnType: int
    signature: int bitmap_is_preferred_refname(struct repository *r, const char *refname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/pack-bitmap.c:3362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3364
      start: 3361
    functionDepth: 1
    functionLinenumber: 3361
    functionLinenumberEnd: 3364
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 42
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, preferred_tips)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_open
      Src: /src/git/pack-bitmap.c:3374,1
    - Dst: fstat
      Src: /src/git/pack-bitmap.c:3378,1
    - Dst: close
      Src: /src/git/pack-bitmap.c:3380,1
    - Dst: xmmap
      Src: /src/git/pack-bitmap.c:3384,1
    - Dst: close
      Src: /src/git/pack-bitmap.c:3385,1
    - Dst: hashfile_checksum_valid
      Src: /src/git/pack-bitmap.c:3386,1
    - Dst: error
      Src: /src/git/pack-bitmap.c:3387,1
    - Dst: _
      Src: /src/git/pack-bitmap.c:3387,1
    - Dst: munmap
      Src: /src/git/pack-bitmap.c:3390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - algop
    - name
    argTypes:
    - struct git_hash_algo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3369
    functionDepth: 8
    functionLinenumber: 3369
    functionLinenumberEnd: 3392
    functionName: verify_bitmap_file
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - error
    - fstat
    - hashfile_checksum_valid
    - git_open
    - xmmap
    - _
    - close
    - munmap
    linkageType: ''
    returnType: int
    signature: "int verify_bitmap_file(const struct git_hash_algo *algop,\n\t\t\t
      \     const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/pack-bitmap.c:3400,1
    - Dst: get_multi_pack_index
      Src: /src/git/pack-bitmap.c:3402,1
    - Dst: midx_bitmap_filename
      Src: /src/git/pack-bitmap.c:3408,1
    - Dst: verify_bitmap_file
      Src: /src/git/pack-bitmap.c:3409,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3410,1
    - Dst: pack_bitmap_filename
      Src: /src/git/pack-bitmap.c:3414,1
    - Dst: verify_bitmap_file
      Src: /src/git/pack-bitmap.c:3415,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3420
      start: 3394
    functionDepth: 9
    functionLinenumber: 3394
    functionLinenumberEnd: 3420
    functionName: verify_bitmap_files
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 0
    functionsReached:
    - midx_bitmap_filename
    - pack_bitmap_filename
    - verify_bitmap_file
    - odb_prepare_alternates
    - get_multi_pack_index
    - free
    linkageType: ''
    returnType: int
    signature: int verify_bitmap_files(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_bitmap_filename
      Src: /src/git/pack-bitmap.c:3414,1
    - Dst: verify_bitmap_file
      Src: /src/git/pack-bitmap.c:3415,1
    - Dst: free
      Src: /src/git/pack-bitmap.c:3416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3417
      start: 3413
    functionDepth: 9
    functionLinenumber: 3413
    functionLinenumberEnd: 3417
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/pack-bitmap.c
    functionUses: 3
    functionsReached:
    - pack_bitmap_filename
    - verify_bitmap_file
    - free
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(r, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct traversal_context*::show_commit
      Src: /src/git/list-objects.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - commit
    argTypes:
    - struct traversal_context*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: show_commit
    functionSourceFile: /src/git/list-objects.c
    functionUses: 3
    functionsReached:
    - struct traversal_context*::show_commit
    linkageType: ''
    returnType: void
    signature: "void show_commit(struct traversal_context *ctx,\n\t\t\tstruct commit
      *commit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_object_pack
      Src: /src/git/list-objects.c:44,1
    - Dst: struct traversal_context*::show_object
      Src: /src/git/list-objects.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - object
    - name
    argTypes:
    - struct traversal_context*
    - struct object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: show_object
    functionSourceFile: /src/git/list-objects.c
    functionUses: 1
    functionsReached:
    - has_object_pack
    - struct traversal_context*::show_object
    linkageType: ''
    returnType: void
    signature: "void show_object(struct traversal_context *ctx,\n\t\t\tstruct object
      *object,\n\t\t\tconst char *name)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/list-objects.c:63,1
    - Dst: odb_has_object
      Src: /src/git/list-objects.c:77,1
    - Dst: is_promisor_object
      Src: /src/git/list-objects.c:79,1
    - Dst: strbuf_addstr
      Src: /src/git/list-objects.c:83,1
    - Dst: list_objects_filter__filter_object
      Src: /src/git/list-objects.c:84,1
    - Dst: show_object
      Src: /src/git/list-objects.c:91,1
    - Dst: strbuf_setlen
      Src: /src/git/list-objects.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - blob
    - path
    - name
    argTypes:
    - struct traversal_context*
    - struct blob*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 51
    functionDepth: 12
    functionLinenumber: 51
    functionLinenumberEnd: 93
    functionName: process_blob
    functionSourceFile: /src/git/list-objects.c
    functionUses: 2
    functionsReached:
    - die
    - strbuf_setlen
    - odb_has_object
    - is_promisor_object
    - strbuf_addstr
    - show_object
    - list_objects_filter__filter_object
    linkageType: ''
    returnType: void
    signature: "void process_blob(struct traversal_context *ctx,\n\t\t\t struct blob
      *blob,\n\t\t\t struct strbuf *path,\n\t\t\t const char *name)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: init_tree_desc
      Src: /src/git/list-objects.c:109,1
    - Dst: tree_entry
      Src: /src/git/list-objects.c:111,1
    - Dst: tree_entry_interesting
      Src: /src/git/list-objects.c:113,1
    - Dst: S_ISDIR
      Src: /src/git/list-objects.c:122,1
    - Dst: lookup_tree
      Src: /src/git/list-objects.c:123,1
    - Dst: die
      Src: /src/git/list-objects.c:125,1
    - Dst: _
      Src: /src/git/list-objects.c:125,1
    - Dst: oid_to_hex
      Src: /src/git/list-objects.c:127,1
    - Dst: process_tree
      Src: /src/git/list-objects.c:131,1
    - Dst: S_ISGITLINK
      Src: /src/git/list-objects.c:134,1
    - Dst: lookup_blob
      Src: /src/git/list-objects.c:137,1
    - Dst: die
      Src: /src/git/list-objects.c:139,1
    - Dst: _
      Src: /src/git/list-objects.c:139,1
    - Dst: oid_to_hex
      Src: /src/git/list-objects.c:141,1
    - Dst: process_blob
      Src: /src/git/list-objects.c:144,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - tree
    - base
    argTypes:
    - struct traversal_context*
    - struct tree*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 147
    functionName: process_tree_contents
    functionSourceFile: /src/git/list-objects.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - oid_to_hex
    - tree_entry
    - die
    - process_tree
    - tree_entry_interesting
    - process_blob
    - S_ISGITLINK
    - lookup_blob
    - _
    - lookup_tree
    - init_tree_desc
    linkageType: ''
    returnType: void
    signature: "void process_tree_contents(struct traversal_context *ctx,\n\t\t\t\t
      \ struct tree *tree,\n\t\t\t\t  struct strbuf *base)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/list-objects.c:163,1
    - Dst: struct rev_info*::include_check_obj
      Src: /src/git/list-objects.c:167,1
    - Dst: die
      Src: /src/git/list-objects.c:171,1
    - Dst: repo_parse_tree_gently
      Src: /src/git/list-objects.c:173,1
    - Dst: is_promisor_object
      Src: /src/git/list-objects.c:184,1
    - Dst: die
      Src: /src/git/list-objects.c:188,1
    - Dst: oid_to_hex
      Src: /src/git/list-objects.c:188,1
    - Dst: strbuf_addstr
      Src: /src/git/list-objects.c:191,1
    - Dst: list_objects_filter__filter_object
      Src: /src/git/list-objects.c:192,1
    - Dst: show_object
      Src: /src/git/list-objects.c:199,1
    - Dst: strbuf_addch
      Src: /src/git/list-objects.c:201,1
    - Dst: trace_printf
      Src: /src/git/list-objects.c:204,1
    - Dst: process_tree_contents
      Src: /src/git/list-objects.c:206,1
    - Dst: list_objects_filter__filter_object
      Src: /src/git/list-objects.c:208,1
    - Dst: show_object
      Src: /src/git/list-objects.c:215,1
    - Dst: strbuf_setlen
      Src: /src/git/list-objects.c:217,1
    - Dst: free_tree_buffer
      Src: /src/git/list-objects.c:218,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - tree
    - base
    - name
    argTypes:
    - struct traversal_context*
    - struct tree*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 149
    functionDepth: 13
    functionLinenumber: 149
    functionLinenumberEnd: 219
    functionName: process_tree
    functionSourceFile: /src/git/list-objects.c
    functionUses: 3
    functionsReached:
    - oid_to_hex
    - struct rev_info*::include_check_obj
    - die
    - trace_printf
    - strbuf_setlen
    - process_tree_contents
    - strbuf_addch
    - free_tree_buffer
    - repo_parse_tree_gently
    - is_promisor_object
    - strbuf_addstr
    - show_object
    - list_objects_filter__filter_object
    linkageType: ''
    returnType: void
    signature: "void process_tree(struct traversal_context *ctx,\n\t\t\t struct tree
      *tree,\n\t\t\t struct strbuf *base,\n\t\t\t const char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_objects_filter__filter_object
      Src: /src/git/list-objects.c:227,1
    - Dst: show_object
      Src: /src/git/list-objects.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - tag
    - name
    argTypes:
    - struct traversal_context*
    - struct tag*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 234
    functionName: process_tag
    functionSourceFile: /src/git/list-objects.c
    functionUses: 0
    functionsReached:
    - show_object
    - list_objects_filter__filter_object
    linkageType: ''
    returnType: void
    signature: "void process_tag(struct traversal_context *ctx,\n\t\t\tstruct tag
      *tag,\n\t\t\tconst char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mark_tree_uninteresting
      Src: /src/git/list-objects.c:246,1
    - Dst: repo_get_commit_tree
      Src: /src/git/list-objects.c:247,1
    - Dst: show_edge
      Src: /src/git/list-objects.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - commit
    - revs
    - show_edge
    argTypes:
    - struct commit*
    - struct rev_info*
    - show_edge_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 236
    functionDepth: 6
    functionLinenumber: 236
    functionLinenumberEnd: 253
    functionName: mark_edge_parents_uninteresting
    functionSourceFile: /src/git/list-objects.c
    functionUses: 0
    functionsReached:
    - mark_tree_uninteresting
    - repo_get_commit_tree
    - show_edge
    linkageType: ''
    returnType: void
    signature: "void mark_edge_parents_uninteresting(struct commit *commit,\n\t\t\t\t\t
      \   struct rev_info *revs,\n\t\t\t\t\t    show_edge_fn show_edge)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_tree
      Src: /src/git/list-objects.c:264,1
    - Dst: oidset_insert
      Src: /src/git/list-objects.c:270,1
    - Dst: show_edge
      Src: /src/git/list-objects.c:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - commit
    - revs
    - show_edge
    - set
    argTypes:
    - struct commit*
    - struct rev_info*
    - show_edge_fn
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 255
    functionDepth: 6
    functionLinenumber: 255
    functionLinenumberEnd: 281
    functionName: add_edge_parents
    functionSourceFile: /src/git/list-objects.c
    functionUses: 0
    functionsReached:
    - repo_get_commit_tree
    - show_edge
    - oidset_insert
    linkageType: ''
    returnType: void
    signature: "void add_edge_parents(struct commit *commit,\n\t\t\t     struct rev_info
      *revs,\n\t\t\t     show_edge_fn show_edge,\n\t\t\t     struct oidset *set)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidset_init
      Src: /src/git/list-objects.c:291,1
    - Dst: repo_get_commit_tree
      Src: /src/git/list-objects.c:295,1
    - Dst: oidset_insert
      Src: /src/git/list-objects.c:301,1
    - Dst: add_edge_parents
      Src: /src/git/list-objects.c:302,1
    - Dst: mark_trees_uninteresting_sparse
      Src: /src/git/list-objects.c:305,1
    - Dst: oidset_clear
      Src: /src/git/list-objects.c:306,1
    - Dst: mark_tree_uninteresting
      Src: /src/git/list-objects.c:311,1
    - Dst: repo_get_commit_tree
      Src: /src/git/list-objects.c:312,1
    - Dst: show_edge
      Src: /src/git/list-objects.c:315,1
    - Dst: mark_edge_parents_uninteresting
      Src: /src/git/list-objects.c:319,1
    - Dst: mark_tree_uninteresting
      Src: /src/git/list-objects.c:329,1
    - Dst: repo_get_commit_tree
      Src: /src/git/list-objects.c:330,1
    - Dst: show_edge
      Src: /src/git/list-objects.c:333,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - revs
    - show_edge
    - sparse
    argTypes:
    - struct rev_info*
    - show_edge_fn
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 283
    functionDepth: 7
    functionLinenumber: 283
    functionLinenumberEnd: 337
    functionName: mark_edges_uninteresting
    functionSourceFile: /src/git/list-objects.c
    functionUses: 3
    functionsReached:
    - show_edge
    - mark_trees_uninteresting_sparse
    - add_edge_parents
    - oidset_init
    - oidset_clear
    - repo_get_commit_tree
    - mark_tree_uninteresting
    - oidset_insert
    - mark_edge_parents_uninteresting
    linkageType: ''
    returnType: void
    signature: "void mark_edges_uninteresting(struct rev_info *revs,\n\t\t\t      show_edge_fn
      show_edge,\n\t\t\t      int sparse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pending_object
      Src: /src/git/list-objects.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - revs
    - tree
    argTypes:
    - struct rev_info*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 5
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: add_pending_tree
    functionSourceFile: /src/git/list-objects.c
    functionUses: 0
    functionsReached:
    - add_pending_object
    linkageType: ''
    returnType: void
    signature: void add_pending_tree(struct rev_info *revs, struct tree *tree)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/list-objects.c:347,1
    - Dst: process_tag
      Src: /src/git/list-objects.c:357,1
    - Dst: process_tree
      Src: /src/git/list-objects.c:364,1
    - Dst: process_blob
      Src: /src/git/list-objects.c:368,1
    - Dst: die
      Src: /src/git/list-objects.c:371,1
    - Dst: oid_to_hex
      Src: /src/git/list-objects.c:372,1
    - Dst: object_array_clear
      Src: /src/git/list-objects.c:374,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - ctx
    - base
    argTypes:
    - struct traversal_context*
    - struct strbuf*
    assertStmts:
    - condition: (base->len == 0)
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/git/list-objects.c
    constantsTouched: []
    func_position:
      end: 375
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 375
    functionName: traverse_non_commits
    functionSourceFile: /src/git/list-objects.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - process_tag
    - process_tree
    - assert
    - object_array_clear
    - process_blob
    linkageType: ''
    returnType: void
    signature: "void traverse_non_commits(struct traversal_context *ctx,\n\t\t\t\t
      struct strbuf *base)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/list-objects.c:381,1
    - Dst: get_revision
      Src: /src/git/list-objects.c:383,1
    - Dst: list_objects_filter__filter_object
      Src: /src/git/list-objects.c:386,1
    - Dst: oidset_contains
      Src: /src/git/list-objects.c:397,1
    - Dst: repo_get_commit_tree
      Src: /src/git/list-objects.c:399,1
    - Dst: repo_get_commit_tree
      Src: /src/git/list-objects.c:400,1
    - Dst: add_pending_tree
      Src: /src/git/list-objects.c:403,1
    - Dst: die
      Src: /src/git/list-objects.c:405,1
    - Dst: _
      Src: /src/git/list-objects.c:405,1
    - Dst: oid_to_hex
      Src: /src/git/list-objects.c:406,1
    - Dst: show_commit
      Src: /src/git/list-objects.c:412,1
    - Dst: traverse_non_commits
      Src: /src/git/list-objects.c:420,1
    - Dst: traverse_non_commits
      Src: /src/git/list-objects.c:422,1
    - Dst: strbuf_release
      Src: /src/git/list-objects.c:423,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct traversal_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 377
    functionDepth: 13
    functionLinenumber: 377
    functionLinenumberEnd: 424
    functionName: do_traverse
    functionSourceFile: /src/git/list-objects.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - die
    - add_pending_tree
    - oidset_contains
    - _
    - repo_get_commit_tree
    - traverse_non_commits
    - show_commit
    - get_revision
    - strbuf_init
    - list_objects_filter__filter_object
    linkageType: ''
    returnType: void
    signature: void do_traverse(struct traversal_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_objects_filter__init
      Src: /src/git/list-objects.c:441,1
    - Dst: do_traverse
      Src: /src/git/list-objects.c:443,1
    - Dst: list_objects_filter__free
      Src: /src/git/list-objects.c:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - revs
    - show_commit
    - show_object
    - show_data
    - omitted
    argTypes:
    - struct rev_info*
    - show_commit_fn
    - show_object_fn
    - void*
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 426
    functionDepth: 14
    functionLinenumber: 426
    functionLinenumberEnd: 447
    functionName: traverse_commit_list_filtered
    functionSourceFile: /src/git/list-objects.c
    functionUses: 2
    functionsReached:
    - list_objects_filter__init
    - list_objects_filter__free
    - do_traverse
    linkageType: ''
    returnType: void
    signature: "void traverse_commit_list_filtered(\n\tstruct rev_info *revs,\n\tshow_commit_fn
      show_commit,\n\tshow_object_fn show_object,\n\tvoid *show_data,\n\tstruct oidset
      *omitted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/repo-settings.c:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - r
    - key
    - dest
    - def
    argTypes:
    - struct repository*
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 19
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: repo_cfg_bool
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 0
    functionsReached:
    - repo_config_get_bool
    linkageType: ''
    returnType: void
    signature: "void repo_cfg_bool(struct repository *r, const char *key, int *dest,\n\t\t\t
      \ int def)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/repo-settings.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - r
    - key
    - dest
    - def
    argTypes:
    - struct repository*
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 19
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: repo_cfg_int
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    linkageType: ''
    returnType: void
    signature: "void repo_cfg_int(struct repository *r, const char *key, int *dest,\n\t\t\t
      int def)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_ulong
      Src: /src/git/repo-settings.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - r
    - key
    - dest
    - def
    argTypes:
    - struct repository*
    - char*
    - unsigned long*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 19
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: repo_cfg_ulong
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 0
    functionsReached:
    - repo_config_get_ulong
    linkageType: ''
    returnType: void
    signature: "void repo_cfg_ulong(struct repository *r, const char *key, unsigned
      long *dest,\n\t\t\t   unsigned long def)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/repo-settings.c:40,1
    - Dst: repo_settings_clear
      Src: /src/git/repo-settings.c:45,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:49,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:50,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:67,1
    - Dst: repo_cfg_int
      Src: /src/git/repo-settings.c:68,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:69,1
    - Dst: repo_cfg_int
      Src: /src/git/repo-settings.c:70,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:73,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:74,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:77,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:78,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:79,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:80,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:81,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:82,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:83,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:86,1
    - Dst: git_env_bool
      Src: /src/git/repo-settings.c:95,1
    - Dst: repo_config_get_int
      Src: /src/git/repo-settings.c:101,1
    - Dst: repo_cfg_int
      Src: /src/git/repo-settings.c:103,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/repo-settings.c:107,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/repo-settings.c:108,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/repo-settings.c:120,1
    - Dst: strcasecmp
      Src: /src/git/repo-settings.c:122,1
    - Dst: strcasecmp
      Src: /src/git/repo-settings.c:124,1
    - Dst: strcasecmp
      Src: /src/git/repo-settings.c:126,1
    - Dst: strcasecmp
      Src: /src/git/repo-settings.c:128,1
    - Dst: die
      Src: /src/git/repo-settings.c:131,1
    - Dst: repo_config_get_ulong
      Src: /src/git/repo-settings.c:142,1
    - Dst: repo_config_get_ulong
      Src: /src/git/repo-settings.c:145,1
    - Dst: getpagesize
      Src: /src/git/repo-settings.c:146,1
    - Dst: repo_config_get_ulong
      Src: /src/git/repo-settings.c:155,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 30
    functionDepth: 20
    functionLinenumber: 30
    functionLinenumberEnd: 157
    functionName: prepare_repo_settings
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 18
    functionsReached:
    - repo_cfg_bool
    - repo_settings_clear
    - repo_config_get_int
    - repo_config_get_string_tmp
    - git_env_bool
    - die
    - repo_config_get_ulong
    - strcasecmp
    - repo_cfg_int
    - git_parse_maybe_bool
    - BUG
    - getpagesize
    linkageType: ''
    returnType: void
    signature: void prepare_repo_settings(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/repo-settings.c:162,1
    - Dst: FREE_AND_NULL
      Src: /src/git/repo-settings.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: repo_settings_clear
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 2
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void repo_settings_clear(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_cfg_ulong
      Src: /src/git/repo-settings.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 20
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: repo_settings_get_big_file_threshold
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 3
    functionsReached:
    - repo_cfg_ulong
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long repo_settings_get_big_file_threshold(struct repository
      *repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - repo
    - value
    argTypes:
    - struct repository*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: repo_settings_set_big_file_threshold
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_settings_set_big_file_threshold(struct repository *repo,
      unsigned long value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_tmp
      Src: /src/git/repo-settings.c:184,1
    - Dst: strcasecmp
      Src: /src/git/repo-settings.c:185,1
    - Dst: git_config_bool
      Src: /src/git/repo-settings.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 19
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: repo_settings_get_log_all_ref_updates
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 2
    functionsReached:
    - strcasecmp
    - repo_config_get_string_tmp
    - git_config_bool
    linkageType: ''
    returnType: enum log_refs_config
    signature: enum log_refs_config repo_settings_get_log_all_ref_updates(struct repository
      *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/repo-settings.c:198,1
    - Dst: repo_cfg_bool
      Src: /src/git/repo-settings.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 196
    functionDepth: 21
    functionLinenumber: 196
    functionLinenumberEnd: 203
    functionName: repo_settings_get_warn_ambiguous_refs
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 4
    functionsReached:
    - repo_cfg_bool
    - prepare_repo_settings
    linkageType: ''
    returnType: int
    signature: int repo_settings_get_warn_ambiguous_refs(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_pathname
      Src: /src/git/repo-settings.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 19
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: repo_settings_get_hooks_path
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 1
    functionsReached:
    - repo_config_get_pathname
    linkageType: ''
    returnType: char
    signature: char *repo_settings_get_hooks_path(struct repository *repo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_value
      Src: /src/git/repo-settings.c:217,1
    - Dst: git_config_perm
      Src: /src/git/repo-settings.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 19
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: repo_settings_get_shared_repository
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 4
    functionsReached:
    - git_config_perm
    - repo_config_get_value
    linkageType: ''
    returnType: int
    signature: int repo_settings_get_shared_repository(struct repository *repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - repo
    - value
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: repo_settings_set_shared_repository
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_settings_set_shared_repository(struct repository *repo, int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: repo_settings_reset_shared_repository
    functionSourceFile: /src/git/repo-settings.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_settings_reset_shared_repository(struct repository *repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: locate_rename_dst
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strintmap_get
    linkageType: ''
    returnType: struct diff_rename_dst
    signature: struct diff_rename_dst *locate_rename_dst(struct diff_filepair *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/diffcore-rename.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: add_rename_dst
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: int add_rename_dst(struct diff_filepair *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/diffcore-rename.c:63,1
    - Dst: strintmap_init_with_options
      Src: /src/git/diffcore-rename.c:64,1
    - Dst: strintmap_set
      Src: /src/git/diffcore-rename.c:66,1
    - Dst: ALLOC_GROW
      Src: /src/git/diffcore-rename.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: register_rename_src
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strintmap_init_with_options
    - xmalloc
    - strintmap_set
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void register_rename_src(struct diff_filepair *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/diffcore-rename.c:77,1
    - Dst: strlen
      Src: /src/git/diffcore-rename.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct diff_filespec*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: basename_same
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int basename_same(struct diff_filespec *src, struct diff_filespec *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_add_if_missing
      Src: /src/git/diffcore-rename.c:114,1
    - Dst: diff_unmodified_pair
      Src: /src/git/diffcore-rename.c:119,1
    - Dst: diff_add_if_missing
      Src: /src/git/diffcore-rename.c:125,1
    - Dst: promisor_remote_get_direct
      Src: /src/git/diffcore-rename.c:128,1
    - Dst: oid_array_clear
      Src: /src/git/diffcore-rename.c:129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - prefetch_options
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 14
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: inexact_prefetch
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - diff_unmodified_pair
    - diff_add_if_missing
    - promisor_remote_get_direct
    - oid_array_clear
    linkageType: ''
    returnType: void
    signature: void inexact_prefetch(void *prefetch_options)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/diffcore-rename.c:158,1
    - Dst: S_ISREG
      Src: /src/git/diffcore-rename.c:158,1
    - Dst: diff_populate_filespec
      Src: /src/git/diffcore-rename.c:173,1
    - Dst: diff_populate_filespec
      Src: /src/git/diffcore-rename.c:176,1
    - Dst: diff_populate_filespec
      Src: /src/git/diffcore-rename.c:196,1
    - Dst: diff_populate_filespec
      Src: /src/git/diffcore-rename.c:198,1
    - Dst: diffcore_count_changes
      Src: /src/git/diffcore-rename.c:201,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 5
    argNames:
    - r
    - src
    - dst
    - minimum_score
    - dpf_opt
    argTypes:
    - struct repository*
    - struct diff_filespec*
    - struct diff_filespec*
    - int
    - struct diff_populate_filespec_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 132
    functionDepth: 7
    functionLinenumber: 132
    functionLinenumberEnd: 214
    functionName: estimate_similarity
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - diffcore_count_changes
    - diff_populate_filespec
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int estimate_similarity(struct repository *r,\n\t\t\t       struct
      diff_filespec *src,\n\t\t\t       struct diff_filespec *dst,\n\t\t\t       int
      minimum_score,\n\t\t\t       struct diff_populate_filespec_options *dpf_opt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/diffcore-rename.c:222,1
    - Dst: strcmp
      Src: /src/git/diffcore-rename.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - dst_index
    - src_index
    - score
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 236
    functionName: record_rename_pair
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - die
    - strcmp
    linkageType: ''
    returnType: void
    signature: void record_rename_pair(int dst_index, int src_index, int score)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 256
    functionName: score_compare
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int score_compare(const void *a_, const void *b_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_populate_filespec
      Src: /src/git/diffcore-rename.c:268,1
    - Dst: hash_object_file
      Src: /src/git/diffcore-rename.c:270,1
    - Dst: oidhash
      Src: /src/git/diffcore-rename.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - r
    - filespec
    argTypes:
    - struct repository*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: hash_filespec
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - oidhash
    - diff_populate_filespec
    - hash_object_file
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int hash_filespec(struct repository *r,\n\t\t\t\t  struct
      diff_filespec *filespec)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hash_filespec
      Src: /src/git/diffcore-rename.c:284,1
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/diffcore-rename.c:289,1
    - Dst: oideq
      Src: /src/git/diffcore-rename.c:296,1
    - Dst: S_ISREG
      Src: /src/git/diffcore-rename.c:299,1
    - Dst: S_ISREG
      Src: /src/git/diffcore-rename.c:299,1
    - Dst: basename_same
      Src: /src/git/diffcore-rename.c:307,1
    - Dst: record_rename_pair
      Src: /src/git/diffcore-rename.c:320,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 3
    argNames:
    - srcs
    - dst_index
    - options
    argTypes:
    - struct hashmap*
    - int
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 276
    functionDepth: 5
    functionLinenumber: 276
    functionLinenumberEnd: 324
    functionName: find_identical_files
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - hashmap_get_entry_from_hash
    - hash_filespec
    - record_rename_pair
    - basename_same
    - oideq
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int find_identical_files(struct hashmap *srcs,\n\t\t\t\tint dst_index,\n\t\t\t\tstruct
      diff_options *options)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/diffcore-rename.c:296,1
    - Dst: S_ISREG
      Src: /src/git/diffcore-rename.c:299,1
    - Dst: S_ISREG
      Src: /src/git/diffcore-rename.c:299,1
    - Dst: basename_same
      Src: /src/git/diffcore-rename.c:307,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 318
    functionName: hashmap_for_each_entry_from
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 1
    functionsReached:
    - basename_same
    - oideq
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void hashmap_for_each_entry_from(srcs, p, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_alloc
      Src: /src/git/diffcore-rename.c:331,1
    - Dst: hashmap_entry_init
      Src: /src/git/diffcore-rename.c:336,1
    - Dst: hash_filespec
      Src: /src/git/diffcore-rename.c:336,1
    - Dst: hashmap_add
      Src: /src/git/diffcore-rename.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - r
    - pool
    - table
    - index
    - filespec
    argTypes:
    - struct repository*
    - struct mem_pool*
    - struct hashmap*
    - int
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 338
    functionName: insert_file_table
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - mem_pool_alloc
    - hash_filespec
    - hashmap_entry_init
    - hashmap_add
    linkageType: ''
    returnType: void
    signature: "void insert_file_table(struct repository *r,\n\t\t\t      struct mem_pool
      *pool,\n\t\t\t      struct hashmap *table, int index,\n\t\t\t      struct diff_filespec
      *filespec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/diffcore-rename.c:356,1
    - Dst: insert_file_table
      Src: /src/git/diffcore-rename.c:358,1
    - Dst: find_identical_files
      Src: /src/git/diffcore-rename.c:364,1
    - Dst: hashmap_clear
      Src: /src/git/diffcore-rename.c:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - options
    - pool
    argTypes:
    - struct diff_options*
    - struct mem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 347
    functionDepth: 6
    functionLinenumber: 347
    functionLinenumberEnd: 370
    functionName: find_exact_renames
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - hashmap_init
    - insert_file_table
    - hashmap_clear
    - find_identical_files
    linkageType: ''
    returnType: int
    signature: "int find_exact_renames(struct diff_options *options,\n\t\t\t      struct
      mem_pool *pool)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/diffcore-rename.c:382,1
    - Dst: xstrndup
      Src: /src/git/diffcore-rename.c:383,1
    - Dst: xstrdup
      Src: /src/git/diffcore-rename.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 11
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: get_dirname
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - xstrndup
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *get_dirname(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/diffcore-rename.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: dirname_munge
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: void
    signature: void dirname_munge(char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_for_each_entry
      Src: /src/git/diffcore-rename.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - counts
    argTypes:
    - struct strintmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 410
    functionName: get_highest_rename_path
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strintmap_for_each_entry
    linkageType: ''
    returnType: char
    signature: char *get_highest_rename_path(struct strintmap *counts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_for_each_entry
      Src: /src/git/diffcore-rename.c:419,1
    - Dst: strcmp
      Src: /src/git/diffcore-rename.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - counts
    argTypes:
    - struct strintmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 432
    functionName: dir_rename_already_determinable
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strintmap_for_each_entry
    - strcmp
    linkageType: ''
    returnType: int
    signature: int dir_rename_already_determinable(struct strintmap *counts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get_entry
      Src: /src/git/diffcore-rename.c:442,1
    - Dst: xmalloc
      Src: /src/git/diffcore-rename.c:446,1
    - Dst: strintmap_init_with_options
      Src: /src/git/diffcore-rename.c:447,1
    - Dst: strmap_put
      Src: /src/git/diffcore-rename.c:448,1
    - Dst: strintmap_incr
      Src: /src/git/diffcore-rename.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - info
    - old_dir
    - new_dir
    argTypes:
    - struct dir_rename_info*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 453
    functionName: increment_count
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strintmap_incr
    - xmalloc
    - strmap_get_entry
    - strmap_put
    - strintmap_init_with_options
    linkageType: ''
    returnType: void
    signature: "void increment_count(struct dir_rename_info *info,\n\t\t\t    const
      char *old_dir,\n\t\t\t    const char *new_dir)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/diffcore-rename.c:488,1
    - Dst: xstrdup
      Src: /src/git/diffcore-rename.c:489,1
    - Dst: dirname_munge
      Src: /src/git/diffcore-rename.c:495,1
    - Dst: strintmap_contains
      Src: /src/git/diffcore-rename.c:497,1
    - Dst: dirname_munge
      Src: /src/git/diffcore-rename.c:501,1
    - Dst: strchr
      Src: /src/git/diffcore-rename.c:519,1
    - Dst: strchr
      Src: /src/git/diffcore-rename.c:520,1
    - Dst: strcmp
      Src: /src/git/diffcore-rename.c:534,1
    - Dst: strcmp
      Src: /src/git/diffcore-rename.c:537,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:557,1
    - Dst: increment_count
      Src: /src/git/diffcore-rename.c:559,1
    - Dst: free
      Src: /src/git/diffcore-rename.c:570,1
    - Dst: free
      Src: /src/git/diffcore-rename.c:571,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 31
    argCount: 4
    argNames:
    - info
    - dirs_removed
    - oldname
    - newname
    argTypes:
    - struct dir_rename_info*
    - struct strintmap*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 572
    functionName: update_dir_rename_counts
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - increment_count
    - strintmap_contains
    - strintmap_get
    - strchr
    - strcmp
    - free
    - dirname_munge
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void update_dir_rename_counts(struct dir_rename_info *info,\n\t\t\t\t
      \    struct strintmap *dirs_removed,\n\t\t\t\t     const char *oldname,\n\t\t\t\t
      \    const char *newname)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/diffcore-rename.c:592,1
    - Dst: strmap_init
      Src: /src/git/diffcore-rename.c:593,1
    - Dst: strintmap_init_with_options
      Src: /src/git/diffcore-rename.c:595,1
    - Dst: strmap_init_with_options
      Src: /src/git/diffcore-rename.c:596,1
    - Dst: xmalloc
      Src: /src/git/diffcore-rename.c:603,1
    - Dst: strintmap_init
      Src: /src/git/diffcore-rename.c:604,1
    - Dst: strintmap_for_each_entry
      Src: /src/git/diffcore-rename.c:605,1
    - Dst: get_dirname
      Src: /src/git/diffcore-rename.c:606,1
    - Dst: strintmap_contains
      Src: /src/git/diffcore-rename.c:608,1
    - Dst: strintmap_set
      Src: /src/git/diffcore-rename.c:609,1
    - Dst: free
      Src: /src/git/diffcore-rename.c:611,1
    - Dst: strintmap_set
      Src: /src/git/diffcore-rename.c:626,1
    - Dst: update_dir_rename_counts
      Src: /src/git/diffcore-rename.c:638,1
    - Dst: strmap_for_each_entry
      Src: /src/git/diffcore-rename.c:644,1
    - Dst: update_dir_rename_counts
      Src: /src/git/diffcore-rename.c:651,1
    - Dst: strmap_for_each_entry
      Src: /src/git/diffcore-rename.c:661,1
    - Dst: xstrdup
      Src: /src/git/diffcore-rename.c:666,1
    - Dst: get_highest_rename_path
      Src: /src/git/diffcore-rename.c:666,1
    - Dst: strmap_put
      Src: /src/git/diffcore-rename.c:667,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 5
    argNames:
    - info
    - relevant_sources
    - dirs_removed
    - dir_rename_count
    - cached_pairs
    argTypes:
    - struct dir_rename_info*
    - struct strintmap*
    - struct strintmap*
    - struct strmap*
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 574
    functionDepth: 12
    functionLinenumber: 574
    functionLinenumberEnd: 670
    functionName: initialize_dir_rename_info
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strintmap_contains
    - update_dir_rename_counts
    - strmap_init_with_options
    - get_dirname
    - strmap_for_each_entry
    - strintmap_init
    - xmalloc
    - strintmap_set
    - strmap_put
    - free
    - strintmap_init_with_options
    - strintmap_for_each_entry
    - get_highest_rename_path
    - strmap_init
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void initialize_dir_rename_info(struct dir_rename_info *info,\n\t\t\t\t
      \      struct strintmap *relevant_sources,\n\t\t\t\t       struct strintmap
      *dirs_removed,\n\t\t\t\t       struct strmap *dir_rename_count,\n\t\t\t\t       struct
      strmap *cached_pairs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/diffcore-rename.c:677,1
    - Dst: strintmap_clear
      Src: /src/git/diffcore-rename.c:679,1
    - Dst: strmap_partial_clear
      Src: /src/git/diffcore-rename.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dir_rename_count
    argTypes:
    - struct strmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 672
    functionDepth: 4
    functionLinenumber: 672
    functionLinenumberEnd: 682
    functionName: partial_clear_dir_rename_count
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 2
    functionsReached:
    - strmap_for_each_entry
    - strmap_partial_clear
    - strintmap_clear
    linkageType: ''
    returnType: void
    signature: void partial_clear_dir_rename_count(struct strmap *dir_rename_count)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_clear
      Src: /src/git/diffcore-rename.c:696,1
    - Dst: strmap_clear
      Src: /src/git/diffcore-rename.c:699,1
    - Dst: strintmap_clear
      Src: /src/git/diffcore-rename.c:704,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diffcore-rename.c:705,1
    - Dst: partial_clear_dir_rename_count
      Src: /src/git/diffcore-rename.c:710,1
    - Dst: strmap_clear
      Src: /src/git/diffcore-rename.c:711,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diffcore-rename.c:712,1
    - Dst: strmap_for_each_entry
      Src: /src/git/diffcore-rename.c:723,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:727,1
    - Dst: string_list_append
      Src: /src/git/diffcore-rename.c:728,1
    - Dst: strintmap_clear
      Src: /src/git/diffcore-rename.c:729,1
    - Dst: strintmap_contains
      Src: /src/git/diffcore-rename.c:733,1
    - Dst: strintmap_remove
      Src: /src/git/diffcore-rename.c:734,1
    - Dst: strmap_remove
      Src: /src/git/diffcore-rename.c:737,1
    - Dst: string_list_clear
      Src: /src/git/diffcore-rename.c:739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - info
    - dirs_removed
    - keep_dir_rename_count
    argTypes:
    - struct dir_rename_info*
    - struct strintmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 684
    functionDepth: 5
    functionLinenumber: 684
    functionLinenumberEnd: 740
    functionName: cleanup_dir_rename_info
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strintmap_remove
    - strintmap_get
    - strintmap_contains
    - string_list_clear
    - strmap_clear
    - strmap_remove
    - strmap_for_each_entry
    - partial_clear_dir_rename_count
    - string_list_append
    - FREE_AND_NULL
    - strintmap_clear
    linkageType: ''
    returnType: void
    signature: "void cleanup_dir_rename_info(struct dir_rename_info *info,\n\t\t\t\t
      \   struct strintmap *dirs_removed,\n\t\t\t\t    int keep_dir_rename_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/diffcore-rename.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 752
    functionName: get_basename
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *get_basename(const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_dirname
      Src: /src/git/diffcore-rename.c:816,1
    - Dst: strmap_get
      Src: /src/git/diffcore-rename.c:817,1
    - Dst: free
      Src: /src/git/diffcore-rename.c:818,1
    - Dst: strbuf_addstr
      Src: /src/git/diffcore-rename.c:822,1
    - Dst: strbuf_addch
      Src: /src/git/diffcore-rename.c:823,1
    - Dst: strbuf_addstr
      Src: /src/git/diffcore-rename.c:824,1
    - Dst: get_basename
      Src: /src/git/diffcore-rename.c:824,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:826,1
    - Dst: strbuf_release
      Src: /src/git/diffcore-rename.c:827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - filename
    - info
    argTypes:
    - char*
    - struct dir_rename_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 754
    functionDepth: 12
    functionLinenumber: 754
    functionLinenumberEnd: 829
    functionName: idx_possible_rename
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - get_basename
    - strintmap_get
    - strbuf_release
    - get_dirname
    - strmap_get
    - strbuf_addch
    - strbuf_addstr
    - free
    linkageType: ''
    returnType: int
    signature: int idx_possible_rename(char *filename, struct dir_rename_info *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_contains
      Src: /src/git/diffcore-rename.c:861,1
    - Dst: get_basename
      Src: /src/git/diffcore-rename.c:870,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:871,1
    - Dst: assert
      Src: /src/git/diffcore-rename.c:872,1
    - Dst: strintmap_contains
      Src: /src/git/diffcore-rename.c:874,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:878,1
    - Dst: idx_possible_rename
      Src: /src/git/diffcore-rename.c:881,1
    - Dst: diff_add_if_missing
      Src: /src/git/diffcore-rename.c:894,1
    - Dst: diff_add_if_missing
      Src: /src/git/diffcore-rename.c:895,1
    - Dst: promisor_remote_get_direct
      Src: /src/git/diffcore-rename.c:899,1
    - Dst: oid_array_clear
      Src: /src/git/diffcore-rename.c:900,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - prefetch_options
    argTypes:
    - void*
    assertStmts:
    - condition: (src_index == -1 || src_index == i)
      pos:
        line_end: 871
        line_start: 871
        source_file: /src/git/diffcore-rename.c
    constantsTouched: []
    func_position:
      end: 901
      start: 838
    functionDepth: 14
    functionLinenumber: 838
    functionLinenumberEnd: 901
    functionName: basename_prefetch
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strintmap_contains
    - strintmap_get
    - get_basename
    - assert
    - idx_possible_rename
    - diff_add_if_missing
    - oid_array_clear
    - promisor_remote_get_direct
    linkageType: ''
    returnType: void
    signature: void basename_prefetch(void *prefetch_options)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_init_with_options
      Src: /src/git/diffcore-rename.c:959,1
    - Dst: strintmap_init_with_options
      Src: /src/git/diffcore-rename.c:960,1
    - Dst: assert
      Src: /src/git/diffcore-rename.c:966,1
    - Dst: get_basename
      Src: /src/git/diffcore-rename.c:969,1
    - Dst: strintmap_contains
      Src: /src/git/diffcore-rename.c:970,1
    - Dst: strintmap_set
      Src: /src/git/diffcore-rename.c:971,1
    - Dst: strintmap_set
      Src: /src/git/diffcore-rename.c:973,1
    - Dst: get_basename
      Src: /src/git/diffcore-rename.c:983,1
    - Dst: strintmap_contains
      Src: /src/git/diffcore-rename.c:984,1
    - Dst: strintmap_set
      Src: /src/git/diffcore-rename.c:985,1
    - Dst: strintmap_set
      Src: /src/git/diffcore-rename.c:987,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/diffcore-rename.c:990,1
    - Dst: strintmap_contains
      Src: /src/git/diffcore-rename.c:1004,1
    - Dst: get_basename
      Src: /src/git/diffcore-rename.c:1013,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:1014,1
    - Dst: assert
      Src: /src/git/diffcore-rename.c:1015,1
    - Dst: strintmap_contains
      Src: /src/git/diffcore-rename.c:1017,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:1022,1
    - Dst: idx_possible_rename
      Src: /src/git/diffcore-rename.c:1025,1
    - Dst: estimate_similarity
      Src: /src/git/diffcore-rename.c:1037,1
    - Dst: record_rename_pair
      Src: /src/git/diffcore-rename.c:1043,1
    - Dst: update_dir_rename_counts
      Src: /src/git/diffcore-rename.c:1045,1
    - Dst: diff_free_filespec_blob
      Src: /src/git/diffcore-rename.c:1053,1
    - Dst: diff_free_filespec_blob
      Src: /src/git/diffcore-rename.c:1054,1
    - Dst: strintmap_clear
      Src: /src/git/diffcore-rename.c:1058,1
    - Dst: strintmap_clear
      Src: /src/git/diffcore-rename.c:1059,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 5
    argNames:
    - options
    - minimum_score
    - info
    - relevant_sources
    - dirs_removed
    argTypes:
    - struct diff_options*
    - int
    - struct dir_rename_info*
    - struct strintmap*
    - struct strintmap*
    assertStmts:
    - condition: (src_index == -1 || src_index == i)
      pos:
        line_end: 1014
        line_start: 1014
        source_file: /src/git/diffcore-rename.c
    - condition: (!rename_src[i].p->one->rename_used)
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/git/diffcore-rename.c
    constantsTouched: []
    func_position:
      end: 1062
      start: 903
    functionDepth: 13
    functionLinenumber: 903
    functionLinenumberEnd: 1062
    functionName: find_basename_matches
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - get_basename
    - strintmap_contains
    - repo_has_promisor_remote
    - strintmap_get
    - assert
    - update_dir_rename_counts
    - idx_possible_rename
    - strintmap_set
    - estimate_similarity
    - record_rename_pair
    - diff_free_filespec_blob
    - strintmap_init_with_options
    - strintmap_clear
    linkageType: ''
    returnType: int
    signature: "int find_basename_matches(struct diff_options *options,\n\t\t\t\t
      int minimum_score,\n\t\t\t\t struct dir_rename_info *info,\n\t\t\t\t struct
      strintmap *relevant_sources,\n\t\t\t\t struct strintmap *dirs_removed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: score_compare
      Src: /src/git/diffcore-rename.c:1072,1
    - Dst: score_compare
      Src: /src/git/diffcore-rename.c:1076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - m
    - o
    argTypes:
    - struct diff_score[]
    - struct diff_score*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1078
    functionName: record_if_better
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - score_compare
    linkageType: ''
    returnType: void
    signature: void record_if_better(struct diff_score m[], struct diff_score *o)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: st_mult
      Src: /src/git/diffcore-rename.c:1107,1
    - Dst: st_mult
      Src: /src/git/diffcore-rename.c:1108,1
    - Dst: diff_unmodified_pair
      Src: /src/git/diffcore-rename.c:1120,1
    - Dst: st_mult
      Src: /src/git/diffcore-rename.c:1124,1
    - Dst: st_mult
      Src: /src/git/diffcore-rename.c:1125,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - num_destinations
    - num_sources
    - options
    argTypes:
    - int
    - int
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 1128
    functionName: too_many_rename_candidates
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - diff_unmodified_pair
    - st_mult
    linkageType: ''
    returnType: int
    signature: "int too_many_rename_candidates(int num_destinations, int num_sources,\n\t\t\t\t
      \     struct diff_options *options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: record_rename_pair
      Src: /src/git/diffcore-rename.c:1150,1
    - Dst: update_dir_rename_counts
      Src: /src/git/diffcore-rename.c:1152,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 6
    argNames:
    - mx
    - dst_cnt
    - minimum_score
    - copies
    - info
    - dirs_removed
    argTypes:
    - struct diff_score*
    - int
    - int
    - int
    - struct dir_rename_info*
    - struct strintmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1130
    functionDepth: 5
    functionLinenumber: 1130
    functionLinenumberEnd: 1157
    functionName: find_renames
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - update_dir_rename_counts
    - record_rename_pair
    linkageType: ''
    returnType: int
    signature: "int find_renames(struct diff_score *mx,\n\t\t\tint dst_cnt,\n\t\t\tint
      minimum_score,\n\t\t\tint copies,\n\t\t\tstruct dir_rename_info *info,\n\t\t\tstruct
      strintmap *dirs_removed)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strintmap_contains
      Src: /src/git/diffcore-rename.c:1202,1
    - Dst: memcpy
      Src: /src/git/diffcore-rename.c:1206,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - detecting_copies
    - interesting
    argTypes:
    - int
    - struct strintmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1159
    functionDepth: 4
    functionLinenumber: 1159
    functionLinenumberEnd: 1212
    functionName: remove_unneeded_paths_from_src
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - strintmap_contains
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void remove_unneeded_paths_from_src(int detecting_copies,\n\t\t\t\t\t
      \  struct strintmap *interesting)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/diffcore-rename.c:1247,1
    - Dst: get_dirname
      Src: /src/git/diffcore-rename.c:1249,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:1251,1
    - Dst: increment_count
      Src: /src/git/diffcore-rename.c:1254,1
    - Dst: get_dirname
      Src: /src/git/diffcore-rename.c:1255,1
    - Dst: free
      Src: /src/git/diffcore-rename.c:1258,1
    - Dst: free
      Src: /src/git/diffcore-rename.c:1266,1
    - Dst: strmap_for_each_entry
      Src: /src/git/diffcore-rename.c:1279,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:1283,1
    - Dst: dir_rename_already_determinable
      Src: /src/git/diffcore-rename.c:1285,1
    - Dst: strintmap_set
      Src: /src/git/diffcore-rename.c:1286,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:1295,1
    - Dst: assert
      Src: /src/git/diffcore-rename.c:1302,1
    - Dst: get_dirname
      Src: /src/git/diffcore-rename.c:1306,1
    - Dst: strintmap_get
      Src: /src/git/diffcore-rename.c:1309,1
    - Dst: assert
      Src: /src/git/diffcore-rename.c:1320,1
    - Dst: get_dirname
      Src: /src/git/diffcore-rename.c:1321,1
    - Dst: free
      Src: /src/git/diffcore-rename.c:1322,1
    - Dst: free
      Src: /src/git/diffcore-rename.c:1324,1
    - Dst: strintmap_set
      Src: /src/git/diffcore-rename.c:1326,1
    - Dst: memcpy
      Src: /src/git/diffcore-rename.c:1333,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - info
    - relevant_sources
    - dirs_removed
    argTypes:
    - struct dir_rename_info*
    - struct strintmap*
    - struct strintmap*
    assertStmts:
    - condition: (!one->rename_used)
      pos:
        line_end: 1246
        line_start: 1246
        source_file: /src/git/diffcore-rename.c
    - condition: (val != -1)
      pos:
        line_end: 1301
        line_start: 1301
        source_file: /src/git/diffcore-rename.c
    - condition: (res == RELEVANT_FOR_ANCESTOR)
      pos:
        line_end: 1319
        line_start: 1319
        source_file: /src/git/diffcore-rename.c
    constantsTouched: []
    func_position:
      end: 1339
      start: 1214
    functionDepth: 12
    functionLinenumber: 1214
    functionLinenumberEnd: 1339
    functionName: handle_early_known_dir_renames
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - increment_count
    - strintmap_get
    - assert
    - dir_rename_already_determinable
    - get_dirname
    - memcpy
    - strmap_for_each_entry
    - strintmap_set
    - free
    linkageType: ''
    returnType: void
    signature: "void handle_early_known_dir_renames(struct dir_rename_info *info,\n\t\t\t\t\t
      \  struct strintmap *relevant_sources,\n\t\t\t\t\t   struct strintmap *dirs_removed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: diff_free_filespec_data
      Src: /src/git/diffcore-rename.c:1344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - spec
    argTypes:
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1345
    functionName: free_filespec_data
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 3
    functionsReached:
    - diff_free_filespec_data
    linkageType: ''
    returnType: void
    signature: void free_filespec_data(struct diff_filespec *spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_filespec
      Src: /src/git/diffcore-rename.c:1351,1
    - Dst: free_filespec_data
      Src: /src/git/diffcore-rename.c:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - spec
    argTypes:
    - struct mem_pool*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1347
    functionDepth: 2
    functionLinenumber: 1347
    functionLinenumberEnd: 1361
    functionName: pool_free_filespec
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - free_filespec_data
    - free_filespec
    linkageType: ''
    returnType: void
    signature: "void pool_free_filespec(struct mem_pool *pool,\n\t\t\t       struct
      diff_filespec *spec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: diff_free_filepair
      Src: /src/git/diffcore-rename.c:1367,1
    - Dst: free_filespec_data
      Src: /src/git/diffcore-rename.c:1376,1
    - Dst: free_filespec_data
      Src: /src/git/diffcore-rename.c:1377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - p
    argTypes:
    - struct mem_pool*
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1363
    functionDepth: 2
    functionLinenumber: 1363
    functionLinenumberEnd: 1378
    functionName: pool_diff_free_filepair
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 2
    functionsReached:
    - diff_free_filepair
    - free_filespec_data
    linkageType: ''
    returnType: void
    signature: "void pool_diff_free_filepair(struct mem_pool *pool,\n\t\t\t     struct
      diff_filepair *p)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/diffcore-rename.c:1407,1
    - Dst: ASSERT
      Src: /src/git/diffcore-rename.c:1409,1
    - Dst: strmap_empty
      Src: /src/git/diffcore-rename.c:1409,1
    - Dst: BUG
      Src: /src/git/diffcore-rename.c:1412,1
    - Dst: BUG
      Src: /src/git/diffcore-rename.c:1414,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-rename.c:1420,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-rename.c:1421,1
    - Dst: strcmp
      Src: /src/git/diffcore-rename.c:1424,1
    - Dst: is_empty_blob_oid
      Src: /src/git/diffcore-rename.c:1427,1
    - Dst: add_rename_dst
      Src: /src/git/diffcore-rename.c:1429,1
    - Dst: warning
      Src: /src/git/diffcore-rename.c:1430,1
    - Dst: is_empty_blob_oid
      Src: /src/git/diffcore-rename.c:1437,1
    - Dst: DIFF_PAIR_UNMERGED
      Src: /src/git/diffcore-rename.c:1439,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-rename.c:1439,1
    - Dst: register_rename_src
      Src: /src/git/diffcore-rename.c:1449,1
    - Dst: register_rename_src
      Src: /src/git/diffcore-rename.c:1457,1
    - Dst: trace2_region_leave
      Src: /src/git/diffcore-rename.c:1460,1
    - Dst: trace2_region_enter
      Src: /src/git/diffcore-rename.c:1464,1
    - Dst: mem_pool_init
      Src: /src/git/diffcore-rename.c:1465,1
    - Dst: find_exact_renames
      Src: /src/git/diffcore-rename.c:1470,1
    - Dst: mem_pool_discard
      Src: /src/git/diffcore-rename.c:1476,1
    - Dst: trace2_region_leave
      Src: /src/git/diffcore-rename.c:1477,1
    - Dst: trace2_region_enter
      Src: /src/git/diffcore-rename.c:1491,1
    - Dst: remove_unneeded_paths_from_src
      Src: /src/git/diffcore-rename.c:1492,1
    - Dst: trace2_region_leave
      Src: /src/git/diffcore-rename.c:1493,1
    - Dst: getenv
      Src: /src/git/diffcore-rename.c:1497,1
    - Dst: strtol
      Src: /src/git/diffcore-rename.c:1501,1
    - Dst: assert
      Src: /src/git/diffcore-rename.c:1502,1
    - Dst: trace2_region_enter
      Src: /src/git/diffcore-rename.c:1510,1
    - Dst: remove_unneeded_paths_from_src
      Src: /src/git/diffcore-rename.c:1511,1
    - Dst: trace2_region_leave
      Src: /src/git/diffcore-rename.c:1512,1
    - Dst: trace2_region_enter
      Src: /src/git/diffcore-rename.c:1515,1
    - Dst: initialize_dir_rename_info
      Src: /src/git/diffcore-rename.c:1516,1
    - Dst: trace2_region_leave
      Src: /src/git/diffcore-rename.c:1519,1
    - Dst: trace2_region_enter
      Src: /src/git/diffcore-rename.c:1522,1
    - Dst: find_basename_matches
      Src: /src/git/diffcore-rename.c:1523,1
    - Dst: trace2_region_leave
      Src: /src/git/diffcore-rename.c:1528,1
    - Dst: trace2_region_enter
      Src: /src/git/diffcore-rename.c:1540,1
    - Dst: remove_unneeded_paths_from_src
      Src: /src/git/diffcore-rename.c:1541,1
    - Dst: handle_early_known_dir_renames
      Src: /src/git/diffcore-rename.c:1542,1
    - Dst: trace2_region_leave
      Src: /src/git/diffcore-rename.c:1544,1
    - Dst: too_many_rename_candidates
      Src: /src/git/diffcore-rename.c:1555,1
    - Dst: trace2_region_enter
      Src: /src/git/diffcore-rename.c:1567,1
    - Dst: start_delayed_progress
      Src: /src/git/diffcore-rename.c:1569,1
    - Dst: _
      Src: /src/git/diffcore-rename.c:1571,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/diffcore-rename.c:1577,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/diffcore-rename.c:1582,1
    - Dst: st_mult
      Src: /src/git/diffcore-rename.c:1582,1
    - Dst: assert
      Src: /src/git/diffcore-rename.c:1598,1
    - Dst: diff_unmodified_pair
      Src: /src/git/diffcore-rename.c:1601,1
    - Dst: estimate_similarity
      Src: /src/git/diffcore-rename.c:1604,1
    - Dst: basename_same
      Src: /src/git/diffcore-rename.c:1608,1
    - Dst: record_if_better
      Src: /src/git/diffcore-rename.c:1611,1
    - Dst: diff_free_filespec_blob
      Src: /src/git/diffcore-rename.c:1616,1
    - Dst: diff_free_filespec_blob
      Src: /src/git/diffcore-rename.c:1617,1
    - Dst: display_progress
      Src: /src/git/diffcore-rename.c:1620,1
    - Dst: stop_progress
      Src: /src/git/diffcore-rename.c:1623,1
    - Dst: STABLE_QSORT
      Src: /src/git/diffcore-rename.c:1626,1
    - Dst: find_renames
      Src: /src/git/diffcore-rename.c:1628,1
    - Dst: find_renames
      Src: /src/git/diffcore-rename.c:1631,1
    - Dst: free
      Src: /src/git/diffcore-rename.c:1633,1
    - Dst: trace2_region_leave
      Src: /src/git/diffcore-rename.c:1634,1
    - Dst: trace2_region_enter
      Src: /src/git/diffcore-rename.c:1640,1
    - Dst: DIFF_PAIR_UNMERGED
      Src: /src/git/diffcore-rename.c:1645,1
    - Dst: diff_q
      Src: /src/git/diffcore-rename.c:1646,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-rename.c:1648,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-rename.c:1648,1
    - Dst: diff_q
      Src: /src/git/diffcore-rename.c:1650,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-rename.c:1652,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diffcore-rename.c:1652,1
    - Dst: DIFF_PAIR_BROKEN
      Src: /src/git/diffcore-rename.c:1669,1
    - Dst: locate_rename_dst
      Src: /src/git/diffcore-rename.c:1671,1
    - Dst: strcmp
      Src: /src/git/diffcore-rename.c:1673,1
    - Dst: diff_q
      Src: /src/git/diffcore-rename.c:1686,1
    - Dst: diff_unmodified_pair
      Src: /src/git/diffcore-rename.c:1688,1
    - Dst: diff_q
      Src: /src/git/diffcore-rename.c:1690,1
    - Dst: pool_diff_free_filepair
      Src: /src/git/diffcore-rename.c:1696,1
    - Dst: diff_debug_queue
      Src: /src/git/diffcore-rename.c:1698,1
    - Dst: free
      Src: /src/git/diffcore-rename.c:1700,1
    - Dst: diff_debug_queue
      Src: /src/git/diffcore-rename.c:1702,1
    - Dst: pool_free_filespec
      Src: /src/git/diffcore-rename.c:1706,1
    - Dst: cleanup_dir_rename_info
      Src: /src/git/diffcore-rename.c:1708,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diffcore-rename.c:1709,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diffcore-rename.c:1711,1
    - Dst: strintmap_clear
      Src: /src/git/diffcore-rename.c:1714,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diffcore-rename.c:1715,1
    - Dst: trace2_region_leave
      Src: /src/git/diffcore-rename.c:1717,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 174
    argCount: 6
    argNames:
    - options
    - pool
    - relevant_sources
    - dirs_removed
    - dir_rename_count
    - cached_pairs
    argTypes:
    - struct diff_options*
    - struct mem_pool*
    - struct strintmap*
    - struct strintmap*
    - struct strmap*
    - struct strmap*
    assertStmts:
    - condition: (factor >= 0.0 && factor <= 1.0)
      pos:
        line_end: 1501
        line_start: 1501
        source_file: /src/git/diffcore-rename.c
    - condition: (!one->rename_used || want_copies || break_idx)
      pos:
        line_end: 1597
        line_start: 1597
        source_file: /src/git/diffcore-rename.c
    constantsTouched: []
    func_position:
      end: 1719
      start: 1380
    functionDepth: 14
    functionLinenumber: 1380
    functionLinenumberEnd: 1719
    functionName: diffcore_rename_extended
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 1
    functionsReached:
    - DIFF_FILE_VALID
    - cleanup_dir_rename_info
    - stop_progress
    - trace2_region_enter
    - diff_q
    - pool_free_filespec
    - is_empty_blob_oid
    - remove_unneeded_paths_from_src
    - start_delayed_progress
    - strcmp
    - CALLOC_ARRAY
    - strmap_empty
    - estimate_similarity
    - diff_free_filespec_blob
    - free
    - basename_same
    - repo_has_promisor_remote
    - mem_pool_discard
    - diff_unmodified_pair
    - find_basename_matches
    - add_rename_dst
    - record_if_better
    - strtol
    - strintmap_clear
    - diff_debug_queue
    - pool_diff_free_filepair
    - locate_rename_dst
    - mem_pool_init
    - find_renames
    - STABLE_QSORT
    - ASSERT
    - find_exact_renames
    - _
    - register_rename_src
    - warning
    - too_many_rename_candidates
    - FREE_AND_NULL
    - st_mult
    - assert
    - trace2_region_leave
    - initialize_dir_rename_info
    - DIFF_PAIR_BROKEN
    - DIFF_PAIR_UNMERGED
    - display_progress
    - getenv
    - BUG
    - handle_early_known_dir_renames
    linkageType: ''
    returnType: void
    signature: "void diffcore_rename_extended(struct diff_options *options,\n\t\t\t
      \     struct mem_pool *pool,\n\t\t\t      struct strintmap *relevant_sources,\n\t\t\t
      \     struct strintmap *dirs_removed,\n\t\t\t      struct strmap *dir_rename_count,\n\t\t\t
      \     struct strmap *cached_pairs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diffcore_rename_extended
      Src: /src/git/diffcore-rename.c:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1721
    functionDepth: 15
    functionLinenumber: 1721
    functionLinenumberEnd: 1724
    functionName: diffcore_rename
    functionSourceFile: /src/git/diffcore-rename.c
    functionUses: 0
    functionsReached:
    - diffcore_rename_extended
    linkageType: ''
    returnType: void
    signature: void diffcore_rename(struct diff_options *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: COL_LAYOUT
    functionSourceFile: /src/git/column.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COL_LAYOUT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: explicitly_enable_column
    functionSourceFile: /src/git/column.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: explicitly_enable_column(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - colopts
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: column_active
    functionSourceFile: /src/git/column.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int column_active(unsigned int colopts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct git_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: git_attr_name
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *git_attr_name(const struct git_attr *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/attr.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct attr_hashmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: hashmap_lock
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void hashmap_lock(struct attr_hashmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/attr.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct attr_hashmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: hashmap_unlock
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void hashmap_unlock(struct attr_hashmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/attr.c:82,1
    - Dst: container_of
      Src: /src/git/attr.c:83,1
    - Dst: strncmp
      Src: /src/git/attr.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: attr_hash_entry_cmp
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - container_of
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int attr_hash_entry_cmp(const void *cmp_data UNUSED,\n\t\t\t       const
      struct hashmap_entry *eptr,\n\t\t\t       const struct hashmap_entry *entry_or_key,\n\t\t\t
      \      const void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/attr.c:106,1
    - Dst: memhash
      Src: /src/git/attr.c:106,1
    - Dst: hashmap_get_entry
      Src: /src/git/attr.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - map
    - key
    - keylen
    argTypes:
    - struct attr_hashmap*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: attr_hashmap_get
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - memhash
    - hashmap_entry_init
    - hashmap_get_entry
    linkageType: ''
    returnType: void
    signature: "void *attr_hashmap_get(struct attr_hashmap *map,\n\t\t\t      const
      char *key, size_t keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/attr.c:121,1
    - Dst: hashmap_entry_init
      Src: /src/git/attr.c:122,1
    - Dst: memhash
      Src: /src/git/attr.c:122,1
    - Dst: hashmap_add
      Src: /src/git/attr.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - map
    - key
    - keylen
    - value
    argTypes:
    - struct attr_hashmap*
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 128
    functionName: attr_hashmap_add
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - memhash
    - hashmap_add
    - xmalloc
    - hashmap_entry_init
    linkageType: ''
    returnType: void
    signature: "void attr_hashmap_add(struct attr_hashmap *map,\n\t\t\t     const
      char *key, size_t keylen,\n\t\t\t     void *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_lock
      Src: /src/git/attr.c:151,1
    - Dst: hashmap_get_size
      Src: /src/git/attr.c:153,1
    - Dst: BUG
      Src: /src/git/attr.c:155,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/attr.c:167,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/attr.c:170,1
    - Dst: hashmap_unlock
      Src: /src/git/attr.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - map
    - check
    argTypes:
    - struct attr_hashmap*
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 188
    functionName: all_attrs_init
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - hashmap_unlock
    - REALLOC_ARRAY
    - hashmap_get_size
    - hashmap_lock
    - BUG
    - hashmap_for_each_entry
    linkageType: ''
    returnType: void
    signature: void all_attrs_init(struct attr_hashmap *map, struct attr_check *check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/attr.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: attr_name_reserved
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: int
    signature: int attr_name_reserved(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 8
    argCount: 2
    argNames:
    - name
    - namelen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: attr_name_valid
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int attr_name_valid(const char *name, size_t namelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/attr.c:222,1
    - Dst: _
      Src: /src/git/attr.c:222,1
    - Dst: fprintf
      Src: /src/git/attr.c:224,1
    - Dst: strbuf_release
      Src: /src/git/attr.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - name
    - len
    - src
    - lineno
    argTypes:
    - char*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 226
    functionName: report_invalid_attr
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - fprintf
    - _
    linkageType: ''
    returnType: void
    signature: "void report_invalid_attr(const char *name, size_t len,\n\t\t\t\tconst
      char *src, int lineno)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: attr_name_valid
      Src: /src/git/attr.c:237,1
    - Dst: hashmap_lock
      Src: /src/git/attr.c:240,1
    - Dst: attr_hashmap_get
      Src: /src/git/attr.c:242,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/attr.c:245,1
    - Dst: hashmap_get_size
      Src: /src/git/attr.c:246,1
    - Dst: attr_hashmap_add
      Src: /src/git/attr.c:248,1
    - Dst: hashmap_get_size
      Src: /src/git/attr.c:249,1
    - Dst: die
      Src: /src/git/attr.c:250,1
    - Dst: _
      Src: /src/git/attr.c:250,1
    - Dst: hashmap_unlock
      Src: /src/git/attr.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - name
    - namelen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 256
    functionName: git_attr_internal
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - attr_hashmap_get
    - die
    - hashmap_unlock
    - attr_hashmap_add
    - FLEX_ALLOC_MEM
    - hashmap_get_size
    - attr_name_valid
    - _
    - hashmap_lock
    linkageType: ''
    returnType: struct git_attr
    signature: struct git_attr *git_attr_internal(const char *name, size_t namelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_attr_internal
      Src: /src/git/attr.c:260,1
    - Dst: strlen
      Src: /src/git/attr.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 6
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: git_attr
    functionSourceFile: /src/git/attr.c
    functionUses: 1
    functionsReached:
    - git_attr_internal
    - strlen
    linkageType: ''
    returnType: struct git_attr
    signature: struct git_attr *git_attr(const char *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/git/attr.c:282,1
    - Dst: strchr
      Src: /src/git/attr.c:283,1
    - Dst: attr_name_valid
      Src: /src/git/attr.c:295,1
    - Dst: attr_name_reserved
      Src: /src/git/attr.c:295,1
    - Dst: report_invalid_attr
      Src: /src/git/attr.c:296,1
    - Dst: xmemdupz
      Src: /src/git/attr.c:314,1
    - Dst: git_attr_internal
      Src: /src/git/attr.c:316,1
    - Dst: strspn
      Src: /src/git/attr.c:318,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - src
    - lineno
    - cp
    - e
    argTypes:
    - char*
    - int
    - char*
    - struct attr_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 276
    functionDepth: 10
    functionLinenumber: 276
    functionLinenumberEnd: 319
    functionName: parse_attr
    functionSourceFile: /src/git/attr.c
    functionUses: 1
    functionsReached:
    - git_attr_internal
    - report_invalid_attr
    - attr_name_reserved
    - xmemdupz
    - strchr
    - strspn
    - attr_name_valid
    - strcspn
    linkageType: ''
    returnType: char
    signature: "char *parse_attr(const char *src, int lineno, const char *cp,\n\t\t\t
      \     struct attr_state *e)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/git/attr.c:330,1
    - Dst: strlen
      Src: /src/git/attr.c:335,1
    - Dst: warning
      Src: /src/git/attr.c:336,1
    - Dst: _
      Src: /src/git/attr.c:336,1
    - Dst: unquote_c_style
      Src: /src/git/attr.c:340,1
    - Dst: strcspn
      Src: /src/git/attr.c:344,1
    - Dst: strlen
      Src: /src/git/attr.c:348,1
    - Dst: starts_with
      Src: /src/git/attr.c:349,1
    - Dst: fprintf_ln
      Src: /src/git/attr.c:351,1
    - Dst: _
      Src: /src/git/attr.c:351,1
    - Dst: strlen
      Src: /src/git/attr.c:356,1
    - Dst: strspn
      Src: /src/git/attr.c:357,1
    - Dst: strcspn
      Src: /src/git/attr.c:358,1
    - Dst: attr_name_valid
      Src: /src/git/attr.c:359,1
    - Dst: attr_name_reserved
      Src: /src/git/attr.c:359,1
    - Dst: report_invalid_attr
      Src: /src/git/attr.c:360,1
    - Dst: strspn
      Src: /src/git/attr.c:367,1
    - Dst: parse_attr
      Src: /src/git/attr.c:371,1
    - Dst: xcalloc
      Src: /src/git/attr.c:376,1
    - Dst: st_add3
      Src: /src/git/attr.c:376,1
    - Dst: st_mult
      Src: /src/git/attr.c:377,1
    - Dst: git_attr_internal
      Src: /src/git/attr.c:380,1
    - Dst: memcpy
      Src: /src/git/attr.c:383,1
    - Dst: parse_path_pattern
      Src: /src/git/attr.c:385,1
    - Dst: warning
      Src: /src/git/attr.c:390,1
    - Dst: _
      Src: /src/git/attr.c:390,1
    - Dst: parse_attr
      Src: /src/git/attr.c:400,1
    - Dst: strbuf_release
      Src: /src/git/attr.c:403,1
    - Dst: strbuf_release
      Src: /src/git/attr.c:407,1
    - Dst: free
      Src: /src/git/attr.c:408,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 4
    argNames:
    - line
    - src
    - lineno
    - flags
    argTypes:
    - char*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 321
    functionDepth: 7
    functionLinenumber: 321
    functionLinenumberEnd: 410
    functionName: parse_attr_line
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - attr_name_valid
    - free
    - strbuf_release
    - memcpy
    - xcalloc
    - st_add3
    - fprintf_ln
    - parse_attr
    - strspn
    - _
    - warning
    - st_mult
    - git_attr_internal
    - attr_name_reserved
    - report_invalid_attr
    - parse_path_pattern
    - starts_with
    - strlen
    - unquote_c_style
    - strcspn
    linkageType: ''
    returnType: struct match_attr
    signature: "struct match_attr *parse_attr_line(const char *line, const char *src,\n\t\t\t\t
      \  int lineno, unsigned flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/attr.c:442,1
    - Dst: free
      Src: /src/git/attr.c:455,1
    - Dst: free
      Src: /src/git/attr.c:457,1
    - Dst: free
      Src: /src/git/attr.c:459,1
    - Dst: free
      Src: /src/git/attr.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct attr_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 461
    functionName: attr_stack_free
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void attr_stack_free(struct attr_stack *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attr_stack_free
      Src: /src/git/attr.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct attr_stack**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 470
    functionName: drop_attr_stack
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - attr_stack_free
    linkageType: ''
    returnType: void
    signature: void drop_attr_stack(struct attr_stack **stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/attr.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: vector_lock
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void vector_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/attr.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: vector_unlock
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void vector_unlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector_lock
      Src: /src/git/attr.c:492,1
    - Dst: ALLOC_GROW
      Src: /src/git/attr.c:494,1
    - Dst: vector_unlock
      Src: /src/git/attr.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 500
    functionName: check_vector_add
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - vector_lock
    - vector_unlock
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void check_vector_add(struct attr_check *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vector_lock
      Src: /src/git/attr.c:506,1
    - Dst: BUG
      Src: /src/git/attr.c:514,1
    - Dst: vector_unlock
      Src: /src/git/attr.c:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 523
    functionName: check_vector_remove
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - vector_lock
    - vector_unlock
    - BUG
    linkageType: ''
    returnType: void
    signature: void check_vector_remove(struct attr_check *check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vector_lock
      Src: /src/git/attr.c:530,1
    - Dst: drop_attr_stack
      Src: /src/git/attr.c:533,1
    - Dst: vector_unlock
      Src: /src/git/attr.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: drop_all_attr_stacks
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - vector_lock
    - vector_unlock
    - drop_attr_stack
    linkageType: ''
    returnType: void
    signature: void drop_all_attr_stacks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/attr.c:541,1
    - Dst: check_vector_add
      Src: /src/git/attr.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 539
    functionDepth: 7
    functionLinenumber: 539
    functionLinenumberEnd: 547
    functionName: attr_check_alloc
    functionSourceFile: /src/git/attr.c
    functionUses: 1
    functionsReached:
    - check_vector_add
    - xcalloc
    linkageType: ''
    returnType: struct attr_check
    signature: struct attr_check *attr_check_alloc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/attr.c:556,1
    - Dst: va_arg
      Src: /src/git/attr.c:557,1
    - Dst: va_end
      Src: /src/git/attr.c:559,1
    - Dst: attr_check_alloc
      Src: /src/git/attr.c:561,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/attr.c:564,1
    - Dst: git_attr
      Src: /src/git/attr.c:566,1
    - Dst: va_start
      Src: /src/git/attr.c:567,1
    - Dst: va_arg
      Src: /src/git/attr.c:570,1
    - Dst: BUG
      Src: /src/git/attr.c:572,1
    - Dst: git_attr
      Src: /src/git/attr.c:574,1
    - Dst: BUG
      Src: /src/git/attr.c:576,1
    - Dst: va_end
      Src: /src/git/attr.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - one
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 549
    functionDepth: 8
    functionLinenumber: 549
    functionLinenumberEnd: 581
    functionName: attr_check_initl
    functionSourceFile: /src/git/attr.c
    functionUses: 3
    functionsReached:
    - git_attr
    - attr_check_alloc
    - va_end
    - va_arg
    - CALLOC_ARRAY
    - va_start
    - BUG
    linkageType: ''
    returnType: struct attr_check
    signature: struct attr_check *attr_check_initl(const char *one, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attr_check_alloc
      Src: /src/git/attr.c:590,1
    - Dst: DUP_ARRAY
      Src: /src/git/attr.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 583
    functionDepth: 8
    functionLinenumber: 583
    functionLinenumberEnd: 597
    functionName: attr_check_dup
    functionSourceFile: /src/git/attr.c
    functionUses: 1
    functionsReached:
    - DUP_ARRAY
    - attr_check_alloc
    linkageType: ''
    returnType: struct attr_check
    signature: struct attr_check *attr_check_dup(const struct attr_check *check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/attr.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - check
    - attr
    argTypes:
    - struct attr_check*
    - struct git_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 608
    functionName: attr_check_append
    functionSourceFile: /src/git/attr.c
    functionUses: 1
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: struct attr_check_item
    signature: "struct attr_check_item *attr_check_append(struct attr_check *check,\n\t\t\t\t\t
      \ const struct git_attr *attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: attr_check_reset
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void attr_check_reset(struct attr_check *check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/attr.c:617,1
    - Dst: FREE_AND_NULL
      Src: /src/git/attr.c:621,1
    - Dst: drop_attr_stack
      Src: /src/git/attr.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 625
    functionName: attr_check_clear
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - drop_attr_stack
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void attr_check_clear(struct attr_check *check)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_vector_remove
      Src: /src/git/attr.c:631,1
    - Dst: attr_check_clear
      Src: /src/git/attr.c:633,1
    - Dst: free
      Src: /src/git/attr.c:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 636
    functionName: attr_check_free
    functionSourceFile: /src/git/attr.c
    functionUses: 2
    functionsReached:
    - check_vector_remove
    - attr_check_clear
    - free
    linkageType: ''
    returnType: void
    signature: void attr_check_free(struct attr_check *check)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_attr_line
      Src: /src/git/attr.c:651,1
    - Dst: ALLOC_GROW_BY
      Src: /src/git/attr.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - res
    - line
    - src
    - lineno
    - flags
    argTypes:
    - struct attr_stack*
    - char*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 643
    functionDepth: 8
    functionLinenumber: 643
    functionLinenumberEnd: 656
    functionName: handle_attr_line
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW_BY
    - parse_attr_line
    linkageType: ''
    returnType: void
    signature: "void handle_attr_line(struct attr_stack *res,\n\t\t\t     const char
      *line,\n\t\t\t     const char *src,\n\t\t\t     int lineno,\n\t\t\t     unsigned
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/attr.c:664,1
    - Dst: handle_attr_line
      Src: /src/git/attr.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 658
    functionDepth: 9
    functionLinenumber: 658
    functionLinenumberEnd: 669
    functionName: read_attr_from_array
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - handle_attr_line
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct attr_stack
    signature: struct attr_stack *read_attr_from_array(const char **list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_bare_repository
      Src: /src/git/attr.c:684,1
    - Dst: BUG
      Src: /src/git/attr.c:685,1
    - Dst: drop_all_attr_stacks
      Src: /src/git/attr.c:688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - new_direction
    argTypes:
    - enum git_attr_direction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 691
    functionName: git_attr_set_direction
    functionSourceFile: /src/git/attr.c
    functionUses: 3
    functionsReached:
    - drop_all_attr_stacks
    - is_bare_repository
    - BUG
    linkageType: ''
    returnType: void
    signature: void git_attr_set_direction(enum git_attr_direction new_direction)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open_nofollow
      Src: /src/git/attr.c:703,1
    - Dst: open
      Src: /src/git/attr.c:705,1
    - Dst: warn_on_fopen_errors
      Src: /src/git/attr.c:708,1
    - Dst: xfdopen
      Src: /src/git/attr.c:711,1
    - Dst: fstat
      Src: /src/git/attr.c:712,1
    - Dst: warning_errno
      Src: /src/git/attr.c:713,1
    - Dst: _
      Src: /src/git/attr.c:713,1
    - Dst: fclose
      Src: /src/git/attr.c:714,1
    - Dst: warning
      Src: /src/git/attr.c:718,1
    - Dst: _
      Src: /src/git/attr.c:718,1
    - Dst: fclose
      Src: /src/git/attr.c:719,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/attr.c:723,1
    - Dst: strbuf_getline
      Src: /src/git/attr.c:724,1
    - Dst: starts_with
      Src: /src/git/attr.c:725,1
    - Dst: strbuf_remove
      Src: /src/git/attr.c:726,1
    - Dst: strlen
      Src: /src/git/attr.c:726,1
    - Dst: handle_attr_line
      Src: /src/git/attr.c:727,1
    - Dst: fclose
      Src: /src/git/attr.c:730,1
    - Dst: strbuf_release
      Src: /src/git/attr.c:731,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - path
    - flags
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 693
    functionDepth: 9
    functionLinenumber: 693
    functionLinenumberEnd: 733
    functionName: read_attr_from_file
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - fclose
    - handle_attr_line
    - strbuf_release
    - open
    - strbuf_remove
    - fstat
    - warning_errno
    - warn_on_fopen_errors
    - starts_with
    - strlen
    - warning
    - _
    - CALLOC_ARRAY
    - open_nofollow
    - strbuf_getline
    - xfdopen
    linkageType: ''
    returnType: struct attr_stack
    signature: struct attr_stack *read_attr_from_file(const char *path, unsigned flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/attr.c:745,1
    - Dst: _
      Src: /src/git/attr.c:745,1
    - Dst: free
      Src: /src/git/attr.c:746,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/attr.c:750,1
    - Dst: strchrnul
      Src: /src/git/attr.c:755,1
    - Dst: handle_attr_line
      Src: /src/git/attr.c:758,1
    - Dst: free
      Src: /src/git/attr.c:761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - buf
    - length
    - path
    - flags
    argTypes:
    - char*
    - size_t
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 735
    functionDepth: 9
    functionLinenumber: 735
    functionLinenumberEnd: 764
    functionName: read_attr_from_buf
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - handle_attr_line
    - strchrnul
    - free
    - CALLOC_ARRAY
    - warning
    - _
    linkageType: ''
    returnType: struct attr_stack
    signature: "struct attr_stack *read_attr_from_buf(char *buf, size_t length,\n\t\t\t\t\t
      \    const char *path, unsigned flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_tree_entry
      Src: /src/git/attr.c:779,1
    - Dst: odb_read_object
      Src: /src/git/attr.c:782,1
    - Dst: free
      Src: /src/git/attr.c:784,1
    - Dst: read_attr_from_buf
      Src: /src/git/attr.c:788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - istate
    - tree_oid
    - path
    - flags
    argTypes:
    - struct index_state*
    - struct object_id*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 766
    functionDepth: 12
    functionLinenumber: 766
    functionLinenumberEnd: 789
    functionName: read_attr_from_blob
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - read_attr_from_buf
    - odb_read_object
    - get_tree_entry
    - free
    linkageType: ''
    returnType: struct attr_stack
    signature: "struct attr_stack *read_attr_from_blob(struct index_state *istate,\n\t\t\t\t\t
      \     const struct object_id *tree_oid,\n\t\t\t\t\t      const char *path, unsigned
      flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: path_in_cone_mode_sparse_checkout
      Src: /src/git/attr.c:821,1
    - Dst: index_name_pos_sparse
      Src: /src/git/attr.c:822,1
    - Dst: strlen
      Src: /src/git/attr.c:822,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/attr.c:829,1
    - Dst: strncmp
      Src: /src/git/attr.c:830,1
    - Dst: ce_namelen
      Src: /src/git/attr.c:830,1
    - Dst: ce_namelen
      Src: /src/git/attr.c:831,1
    - Dst: read_attr_from_blob
      Src: /src/git/attr.c:832,1
    - Dst: read_blob_data_from_index
      Src: /src/git/attr.c:834,1
    - Dst: read_attr_from_buf
      Src: /src/git/attr.c:836,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - istate
    - path
    - flags
    argTypes:
    - struct index_state*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 791
    functionDepth: 13
    functionLinenumber: 791
    functionLinenumberEnd: 839
    functionName: read_attr_from_index
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - ce_namelen
    - index_name_pos_sparse
    - path_in_cone_mode_sparse_checkout
    - read_blob_data_from_index
    - read_attr_from_blob
    - S_ISSPARSEDIR
    - strlen
    - read_attr_from_buf
    - strncmp
    linkageType: ''
    returnType: struct attr_stack
    signature: "struct attr_stack *read_attr_from_index(struct index_state *istate,\n\t\t\t\t\t
      \      const char *path, unsigned flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: read_attr_from_index
      Src: /src/git/attr.c:848,1
    - Dst: read_attr_from_blob
      Src: /src/git/attr.c:850,1
    - Dst: is_bare_repository
      Src: /src/git/attr.c:851,1
    - Dst: read_attr_from_index
      Src: /src/git/attr.c:853,1
    - Dst: read_attr_from_file
      Src: /src/git/attr.c:855,1
    - Dst: read_attr_from_file
      Src: /src/git/attr.c:857,1
    - Dst: read_attr_from_index
      Src: /src/git/attr.c:865,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/attr.c:870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - istate
    - tree_oid
    - path
    - flags
    argTypes:
    - struct index_state*
    - struct object_id*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 841
    functionDepth: 14
    functionLinenumber: 841
    functionLinenumberEnd: 872
    functionName: read_attr
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - is_bare_repository
    - read_attr_from_blob
    - CALLOC_ARRAY
    - read_attr_from_file
    - read_attr_from_index
    linkageType: ''
    returnType: struct attr_stack
    signature: "struct attr_stack *read_attr(struct index_state *istate,\n\t\t\t\t
      \   const struct object_id *tree_oid,\n\t\t\t\t    const char *path, unsigned
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: system_path
      Src: /src/git/attr.c:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 880
    functionName: git_attr_system_file
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - system_path
    linkageType: ''
    returnType: char
    signature: char *git_attr_system_file(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/attr.c:884,1
    - Dst: xdg_config_home
      Src: /src/git/attr.c:886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 882
    functionDepth: 8
    functionLinenumber: 882
    functionLinenumberEnd: 889
    functionName: git_attr_global_file
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - repo_config_values
    - xdg_config_home
    linkageType: ''
    returnType: char
    signature: char *git_attr_global_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/attr.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 891
    functionDepth: 6
    functionLinenumber: 891
    functionLinenumberEnd: 894
    functionName: git_attr_system_is_enabled
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    linkageType: ''
    returnType: int
    signature: int git_attr_system_is_enabled(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - attr_stack_p
    - elem
    - origin
    - originlen
    argTypes:
    - struct attr_stack**
    - struct attr_stack*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 908
    functionName: push_stack
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void push_stack(struct attr_stack **attr_stack_p,\n\t\t       struct
      attr_stack *elem, char *origin, size_t originlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_attr_from_array
      Src: /src/git/attr.c:921,1
    - Dst: push_stack
      Src: /src/git/attr.c:922,1
    - Dst: git_attr_system_is_enabled
      Src: /src/git/attr.c:925,1
    - Dst: read_attr_from_file
      Src: /src/git/attr.c:926,1
    - Dst: git_attr_system_file
      Src: /src/git/attr.c:926,1
    - Dst: push_stack
      Src: /src/git/attr.c:927,1
    - Dst: git_attr_global_file
      Src: /src/git/attr.c:931,1
    - Dst: read_attr_from_file
      Src: /src/git/attr.c:932,1
    - Dst: git_attr_global_file
      Src: /src/git/attr.c:932,1
    - Dst: push_stack
      Src: /src/git/attr.c:933,1
    - Dst: read_attr
      Src: /src/git/attr.c:937,1
    - Dst: push_stack
      Src: /src/git/attr.c:938,1
    - Dst: xstrdup
      Src: /src/git/attr.c:938,1
    - Dst: read_attr_from_file
      Src: /src/git/attr.c:942,1
    - Dst: git_path_info_attributes
      Src: /src/git/attr.c:942,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/attr.c:946,1
    - Dst: push_stack
      Src: /src/git/attr.c:947,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - istate
    - tree_oid
    - stack
    argTypes:
    - struct index_state*
    - struct object_id*
    - struct attr_stack**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 910
    functionDepth: 15
    functionLinenumber: 910
    functionLinenumberEnd: 948
    functionName: bootstrap_attr_stack
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - git_attr_global_file
    - push_stack
    - git_path_info_attributes
    - git_attr_system_file
    - CALLOC_ARRAY
    - read_attr
    - read_attr_from_file
    - read_attr_from_array
    - xstrdup
    - git_attr_system_is_enabled
    linkageType: ''
    returnType: void
    signature: "void bootstrap_attr_stack(struct index_state *istate,\n\t\t\t\t const
      struct object_id *tree_oid,\n\t\t\t\t struct attr_stack **stack)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bootstrap_attr_stack
      Src: /src/git/attr.c:973,1
    - Dst: strncmp
      Src: /src/git/attr.c:993,1
    - Dst: attr_stack_free
      Src: /src/git/attr.c:998,1
    - Dst: assert
      Src: /src/git/attr.c:1007,1
    - Dst: strbuf_addstr
      Src: /src/git/attr.c:1009,1
    - Dst: is_dir_sep
      Src: /src/git/attr.c:1017,1
    - Dst: is_dir_sep
      Src: /src/git/attr.c:1020,1
    - Dst: strbuf_addch
      Src: /src/git/attr.c:1024,1
    - Dst: strbuf_add
      Src: /src/git/attr.c:1025,1
    - Dst: strbuf_addf
      Src: /src/git/attr.c:1026,1
    - Dst: read_attr
      Src: /src/git/attr.c:1028,1
    - Dst: strbuf_setlen
      Src: /src/git/attr.c:1031,1
    - Dst: xstrdup
      Src: /src/git/attr.c:1033,1
    - Dst: push_stack
      Src: /src/git/attr.c:1034,1
    - Dst: push_stack
      Src: /src/git/attr.c:1040,1
    - Dst: strbuf_release
      Src: /src/git/attr.c:1042,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 5
    argNames:
    - istate
    - tree_oid
    - path
    - dirlen
    - stack
    argTypes:
    - struct index_state*
    - struct object_id*
    - char*
    - int
    - struct attr_stack**
    assertStmts:
    - condition: ((*stack)->origin)
      pos:
        line_end: 1006
        line_start: 1006
        source_file: /src/git/attr.c
    constantsTouched: []
    func_position:
      end: 1043
      start: 950
    functionDepth: 16
    functionLinenumber: 950
    functionLinenumberEnd: 1043
    functionName: prepare_attr_stack
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - assert
    - is_dir_sep
    - read_attr
    - attr_stack_free
    - strbuf_addf
    - strbuf_setlen
    - strbuf_addch
    - push_stack
    - strbuf_addstr
    - strncmp
    - strbuf_add
    - bootstrap_attr_stack
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void prepare_attr_stack(struct index_state *istate,\n\t\t\t       const
      struct object_id *tree_oid,\n\t\t\t       const char *path, int dirlen,\n\t\t\t
      \      struct attr_stack **stack)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: match_basename
      Src: /src/git/attr.c:1058,1
    - Dst: match_pathname
      Src: /src/git/attr.c:1063,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - pathname
    - pathlen
    - basename_offset
    - pat
    - base
    - baselen
    argTypes:
    - char*
    - int
    - int
    - struct pattern*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1045
    functionDepth: 3
    functionLinenumber: 1045
    functionLinenumberEnd: 1066
    functionName: path_matches
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - match_basename
    - match_pathname
    linkageType: ''
    returnType: int
    signature: "int path_matches(const char *pathname, int pathlen,\n\t\t\tint basename_offset,\n\t\t\tconst
      struct pattern *pat,\n\t\t\tconst char *base, int baselen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/attr.c:1077,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - a
    argTypes:
    - struct attr_state_queue*
    - struct match_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1080
    functionName: attr_state_queue_push
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: "void attr_state_queue_push(struct attr_state_queue *t,\n\t\t\t\t const
      struct match_attr *a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct attr_state_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1085
    functionName: attr_state_queue_pop
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct attr_state
    signature: struct attr_state *attr_state_queue_pop(struct attr_state_queue *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/attr.c:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct attr_state_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1090
    functionName: attr_state_queue_release
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void attr_state_queue_release(struct attr_state_queue *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: attr_state_queue_push
      Src: /src/git/attr.c:1098,1
    - Dst: attr_state_queue_pop
      Src: /src/git/attr.c:1099,1
    - Dst: attr_state_queue_push
      Src: /src/git/attr.c:1110,1
    - Dst: attr_state_queue_release
      Src: /src/git/attr.c:1113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - all_attrs
    - a
    - rem
    argTypes:
    - struct all_attrs_item*
    - struct match_attr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1092
    functionDepth: 2
    functionLinenumber: 1092
    functionLinenumberEnd: 1115
    functionName: fill_one
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - attr_state_queue_release
    - attr_state_queue_push
    - attr_state_queue_pop
    linkageType: ''
    returnType: int
    signature: "int fill_one(struct all_attrs_item *all_attrs,\n\t\t    const struct
      match_attr *a, int rem)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: path_matches
      Src: /src/git/attr.c:1129,1
    - Dst: fill_one
      Src: /src/git/attr.c:1131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 6
    argNames:
    - path
    - pathlen
    - basename_offset
    - stack
    - all_attrs
    - rem
    argTypes:
    - char*
    - int
    - int
    - struct attr_stack*
    - struct all_attrs_item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1117
    functionDepth: 4
    functionLinenumber: 1117
    functionLinenumberEnd: 1136
    functionName: fill
    functionSourceFile: /src/git/attr.c
    functionUses: 12
    functionsReached:
    - fill_one
    - path_matches
    linkageType: ''
    returnType: int
    signature: "int fill(const char *path, int pathlen, int basename_offset,\n\t\tconst
      struct attr_stack *stack,\n\t\tstruct all_attrs_item *all_attrs, int rem)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - all_attrs
    - stack
    argTypes:
    - struct all_attrs_item*
    - struct attr_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1158
    functionName: determine_macros
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void determine_macros(struct all_attrs_item *all_attrs,\n\t\t\t     const
      struct attr_stack *stack)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_attr_stack
      Src: /src/git/attr.c:1186,1
    - Dst: all_attrs_init
      Src: /src/git/attr.c:1187,1
    - Dst: determine_macros
      Src: /src/git/attr.c:1188,1
    - Dst: fill
      Src: /src/git/attr.c:1191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - istate
    - tree_oid
    - path
    - check
    argTypes:
    - struct index_state*
    - struct object_id*
    - char*
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1165
    functionDepth: 17
    functionLinenumber: 1165
    functionLinenumberEnd: 1192
    functionName: collect_some_attrs
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - prepare_attr_stack
    - all_attrs_init
    - determine_macros
    - fill
    linkageType: ''
    returnType: void
    signature: "void collect_some_attrs(struct index_state *istate,\n\t\t\t       const
      struct object_id *tree_oid,\n\t\t\t       const char *path, struct attr_check
      *check)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/attr.c:1198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_object_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1199
    functionName: set_git_attr_source
    functionSourceFile: /src/git/attr.c
    functionUses: 1
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void set_git_attr_source(const char *tree_object_name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/attr.c:1206,1
    - Dst: die
      Src: /src/git/attr.c:1218,1
    - Dst: _
      Src: /src/git/attr.c:1218,1
    - Dst: repo_get_oid_treeish
      Src: /src/git/attr.c:1222,1
    - Dst: die
      Src: /src/git/attr.c:1226,1
    - Dst: _
      Src: /src/git/attr.c:1226,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - attr_source
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1201
    functionDepth: 4
    functionLinenumber: 1201
    functionLinenumberEnd: 1231
    functionName: compute_default_attr_source
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - getenv
    - die
    - repo_get_oid_treeish
    - _
    linkageType: ''
    returnType: int
    signature: int compute_default_attr_source(struct object_id *attr_source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compute_default_attr_source
      Src: /src/git/attr.c:1239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1233
    functionDepth: 5
    functionLinenumber: 1233
    functionLinenumberEnd: 1243
    functionName: default_attr_source
    functionSourceFile: /src/git/attr.c
    functionUses: 1
    functionsReached:
    - compute_default_attr_source
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *default_attr_source(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/attr.c:1259,1
    - Dst: snprintf
      Src: /src/git/attr.c:1263,1
    - Dst: BUG
      Src: /src/git/attr.c:1267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - mode
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1268
    functionName: interned_mode_string
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - snprintf
    - BUG
    linkageType: ''
    returnType: char
    signature: char *interned_mode_string(unsigned int mode)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/attr.c:1277,1
    - Dst: die_errno
      Src: /src/git/attr.c:1278,1
    - Dst: _
      Src: /src/git/attr.c:1278,1
    - Dst: canon_mode
      Src: /src/git/attr.c:1279,1
    - Dst: S_ISDIR
      Src: /src/git/attr.c:1280,1
    - Dst: index_name_pos
      Src: /src/git/attr.c:1287,1
    - Dst: strlen
      Src: /src/git/attr.c:1287,1
    - Dst: S_ISGITLINK
      Src: /src/git/attr.c:1289,1
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/attr.c:1291,1
    - Dst: index_name_pos
      Src: /src/git/attr.c:1301,1
    - Dst: strlen
      Src: /src/git/attr.c:1301,1
    - Dst: interned_mode_string
      Src: /src/git/attr.c:1308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1270
    functionDepth: 6
    functionLinenumber: 1270
    functionLinenumberEnd: 1309
    functionName: builtin_object_mode_attr
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - index_name_pos
    - die_errno
    - S_ISGITLINK
    - strlen
    - canon_mode
    - repo_resolve_gitlink_ref
    - _
    - interned_mode_string
    - lstat
    linkageType: ''
    returnType: char
    signature: char *builtin_object_mode_attr(struct index_state *istate, const char
      *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_attr
      Src: /src/git/attr.c:1318,1
    - Dst: builtin_object_mode_attr
      Src: /src/git/attr.c:1321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - istate
    - path
    - attr
    argTypes:
    - struct index_state*
    - char*
    - struct git_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1312
    functionDepth: 7
    functionLinenumber: 1312
    functionLinenumberEnd: 1323
    functionName: compute_builtin_attr
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - git_attr
    - builtin_object_mode_attr
    linkageType: ''
    returnType: char
    signature: "char *compute_builtin_attr(struct index_state *istate,\n\t\t\t\t\t
      \ const char *path,\n\t\t\t\t\t  const struct git_attr *attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: default_attr_source
      Src: /src/git/attr.c:1330,1
    - Dst: collect_some_attrs
      Src: /src/git/attr.c:1332,1
    - Dst: compute_builtin_attr
      Src: /src/git/attr.c:1338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - istate
    - path
    - check
    argTypes:
    - struct index_state*
    - char*
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1325
    functionDepth: 18
    functionLinenumber: 1325
    functionLinenumberEnd: 1341
    functionName: git_check_attr
    functionSourceFile: /src/git/attr.c
    functionUses: 4
    functionsReached:
    - compute_builtin_attr
    - default_attr_source
    - collect_some_attrs
    linkageType: ''
    returnType: void
    signature: "void git_check_attr(struct index_state *istate,\n\t\t    const char
      *path,\n\t\t    struct attr_check *check)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: default_attr_source
      Src: /src/git/attr.c:1347,1
    - Dst: attr_check_reset
      Src: /src/git/attr.c:1349,1
    - Dst: collect_some_attrs
      Src: /src/git/attr.c:1350,1
    - Dst: attr_check_append
      Src: /src/git/attr.c:1358,1
    - Dst: git_attr
      Src: /src/git/attr.c:1358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - istate
    - path
    - check
    argTypes:
    - struct index_state*
    - char*
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1343
    functionDepth: 18
    functionLinenumber: 1343
    functionLinenumberEnd: 1361
    functionName: git_all_attrs
    functionSourceFile: /src/git/attr.c
    functionUses: 0
    functionsReached:
    - git_attr
    - default_attr_source
    - attr_check_append
    - attr_check_reset
    - collect_some_attrs
    linkageType: ''
    returnType: void
    signature: "void git_all_attrs(struct index_state *istate,\n\t\t   const char
      *path, struct attr_check *check)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/git/attr.c:1365,1
    - Dst: pthread_mutex_init
      Src: /src/git/attr.c:1366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1367
    functionName: attr_start
    functionSourceFile: /src/git/attr.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void attr_start(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/match-trees.c:17,1
    - Dst: S_ISLNK
      Src: /src/git/match-trees.c:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - mode
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: score_missing
    functionSourceFile: /src/git/match-trees.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - S_ISLNK
    linkageType: ''
    returnType: int
    signature: int score_missing(unsigned mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/match-trees.c:30,1
    - Dst: S_ISDIR
      Src: /src/git/match-trees.c:30,1
    - Dst: S_ISLNK
      Src: /src/git/match-trees.c:32,1
    - Dst: S_ISLNK
      Src: /src/git/match-trees.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mode1
    - mode2
    argTypes:
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: score_differs
    functionSourceFile: /src/git/match-trees.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - S_ISLNK
    linkageType: ''
    returnType: int
    signature: int score_differs(unsigned mode1, unsigned mode2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/match-trees.c:44,1
    - Dst: S_ISDIR
      Src: /src/git/match-trees.c:44,1
    - Dst: S_ISLNK
      Src: /src/git/match-trees.c:46,1
    - Dst: S_ISLNK
      Src: /src/git/match-trees.c:46,1
    - Dst: S_ISDIR
      Src: /src/git/match-trees.c:49,1
    - Dst: S_ISLNK
      Src: /src/git/match-trees.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mode1
    - mode2
    argTypes:
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: score_matches
    functionSourceFile: /src/git/match-trees.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - S_ISLNK
    linkageType: ''
    returnType: int
    signature: int score_matches(unsigned mode1, unsigned mode2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/match-trees.c:66,1
    - Dst: die
      Src: /src/git/match-trees.c:68,1
    - Dst: oid_to_hex
      Src: /src/git/match-trees.c:68,1
    - Dst: die
      Src: /src/git/match-trees.c:70,1
    - Dst: oid_to_hex
      Src: /src/git/match-trees.c:70,1
    - Dst: init_tree_desc
      Src: /src/git/match-trees.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - r
    - desc
    - hash
    argTypes:
    - struct repository*
    - struct tree_desc*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 12
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: fill_tree_desc_strict
    functionSourceFile: /src/git/match-trees.c
    functionUses: 0
    functionsReached:
    - odb_read_object
    - oid_to_hex
    - die
    - init_tree_desc
    linkageType: ''
    returnType: void
    signature: "void *fill_tree_desc_strict(struct repository *r,\n\t\t\t\t   struct
      tree_desc *desc,\n\t\t\t\t   const struct object_id *hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_name_compare
      Src: /src/git/match-trees.c:78,1
    - Dst: tree_entry_len
      Src: /src/git/match-trees.c:78,1
    - Dst: tree_entry_len
      Src: /src/git/match-trees.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct name_entry*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: base_name_entries_compare
    functionSourceFile: /src/git/match-trees.c
    functionUses: 0
    functionsReached:
    - tree_entry_len
    - base_name_compare
    linkageType: ''
    returnType: int
    signature: "int base_name_entries_compare(const struct name_entry *a,\n\t\t\t\t
      \    const struct name_entry *b)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fill_tree_desc_strict
      Src: /src/git/match-trees.c:90,1
    - Dst: fill_tree_desc_strict
      Src: /src/git/match-trees.c:91,1
    - Dst: base_name_entries_compare
      Src: /src/git/match-trees.c:98,1
    - Dst: score_missing
      Src: /src/git/match-trees.c:110,1
    - Dst: update_tree_entry
      Src: /src/git/match-trees.c:111,1
    - Dst: score_missing
      Src: /src/git/match-trees.c:114,1
    - Dst: update_tree_entry
      Src: /src/git/match-trees.c:115,1
    - Dst: oideq
      Src: /src/git/match-trees.c:118,1
    - Dst: score_differs
      Src: /src/git/match-trees.c:120,1
    - Dst: score_matches
      Src: /src/git/match-trees.c:124,1
    - Dst: update_tree_entry
      Src: /src/git/match-trees.c:127,1
    - Dst: update_tree_entry
      Src: /src/git/match-trees.c:128,1
    - Dst: free
      Src: /src/git/match-trees.c:131,1
    - Dst: free
      Src: /src/git/match-trees.c:132,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - r
    - hash1
    - hash2
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 85
    functionDepth: 13
    functionLinenumber: 85
    functionLinenumberEnd: 134
    functionName: score_trees
    functionSourceFile: /src/git/match-trees.c
    functionUses: 0
    functionsReached:
    - update_tree_entry
    - base_name_entries_compare
    - score_matches
    - score_differs
    - free
    - fill_tree_desc_strict
    - oideq
    - score_missing
    linkageType: ''
    returnType: int
    signature: "int score_trees(struct repository *r,\n\t\t       const struct object_id
      *hash1, const struct object_id *hash2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fill_tree_desc_strict
      Src: /src/git/match-trees.c:148,1
    - Dst: tree_entry_extract
      Src: /src/git/match-trees.c:156,1
    - Dst: S_ISDIR
      Src: /src/git/match-trees.c:157,1
    - Dst: score_trees
      Src: /src/git/match-trees.c:159,1
    - Dst: free
      Src: /src/git/match-trees.c:161,1
    - Dst: xstrfmt
      Src: /src/git/match-trees.c:162,1
    - Dst: xstrfmt
      Src: /src/git/match-trees.c:166,1
    - Dst: match_trees
      Src: /src/git/match-trees.c:167,1
    - Dst: free
      Src: /src/git/match-trees.c:169,1
    - Dst: update_tree_entry
      Src: /src/git/match-trees.c:173,1
    - Dst: free
      Src: /src/git/match-trees.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 7
    argNames:
    - r
    - hash1
    - hash2
    - best_score
    - best_match
    - base
    - recurse_limit
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    - int*
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 139
    functionDepth: 14
    functionLinenumber: 139
    functionLinenumberEnd: 176
    functionName: match_trees
    functionSourceFile: /src/git/match-trees.c
    functionUses: 1
    functionsReached:
    - update_tree_entry
    - S_ISDIR
    - tree_entry_extract
    - score_trees
    - xstrfmt
    - match_trees
    - free
    - fill_tree_desc_strict
    linkageType: ''
    returnType: void
    signature: "void match_trees(struct repository *r,\n\t\t\tconst struct object_id
      *hash1,\n\t\t\tconst struct object_id *hash2,\n\t\t\tint *best_score,\n\t\t\tchar
      **best_match,\n\t\t\tconst char *base,\n\t\t\tint recurse_limit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/match-trees.c:197,1
    - Dst: odb_read_object
      Src: /src/git/match-trees.c:202,1
    - Dst: die
      Src: /src/git/match-trees.c:204,1
    - Dst: oid_to_hex
      Src: /src/git/match-trees.c:204,1
    - Dst: init_tree_desc
      Src: /src/git/match-trees.c:205,1
    - Dst: tree_entry_extract
      Src: /src/git/match-trees.c:212,1
    - Dst: strlen
      Src: /src/git/match-trees.c:213,1
    - Dst: memcmp
      Src: /src/git/match-trees.c:214,1
    - Dst: S_ISDIR
      Src: /src/git/match-trees.c:215,1
    - Dst: die
      Src: /src/git/match-trees.c:216,1
    - Dst: oid_to_hex
      Src: /src/git/match-trees.c:217,1
    - Dst: strlen
      Src: /src/git/match-trees.c:229,1
    - Dst: update_tree_entry
      Src: /src/git/match-trees.c:233,1
    - Dst: die
      Src: /src/git/match-trees.c:236,1
    - Dst: oid_to_hex
      Src: /src/git/match-trees.c:237,1
    - Dst: oidread
      Src: /src/git/match-trees.c:240,1
    - Dst: splice_tree
      Src: /src/git/match-trees.c:241,1
    - Dst: hashcpy
      Src: /src/git/match-trees.c:248,1
    - Dst: odb_write_object
      Src: /src/git/match-trees.c:249,1
    - Dst: free
      Src: /src/git/match-trees.c:250,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 5
    argNames:
    - r
    - oid1
    - prefix
    - oid2
    - result
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 182
    functionDepth: 12
    functionLinenumber: 182
    functionLinenumberEnd: 252
    functionName: splice_tree
    functionSourceFile: /src/git/match-trees.c
    functionUses: 1
    functionsReached:
    - update_tree_entry
    - S_ISDIR
    - oid_to_hex
    - die
    - odb_write_object
    - memcmp
    - tree_entry_extract
    - hashcpy
    - oidread
    - strlen
    - splice_tree
    - free
    - odb_read_object
    - strchrnul
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int splice_tree(struct repository *r,\n\t\t       const struct object_id
      *oid1, const char *prefix,\n\t\t       const struct object_id *oid2, struct
      object_id *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: score_trees
      Src: /src/git/match-trees.c:279,1
    - Dst: xcalloc
      Src: /src/git/match-trees.c:280,1
    - Dst: xcalloc
      Src: /src/git/match-trees.c:281,1
    - Dst: match_trees
      Src: /src/git/match-trees.c:287,1
    - Dst: match_trees
      Src: /src/git/match-trees.c:293,1
    - Dst: oidcpy
      Src: /src/git/match-trees.c:296,1
    - Dst: get_tree_entry
      Src: /src/git/match-trees.c:305,1
    - Dst: die
      Src: /src/git/match-trees.c:306,1
    - Dst: oid_to_hex
      Src: /src/git/match-trees.c:307,1
    - Dst: splice_tree
      Src: /src/git/match-trees.c:314,1
    - Dst: free
      Src: /src/git/match-trees.c:317,1
    - Dst: free
      Src: /src/git/match-trees.c:318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - r
    - hash1
    - hash2
    - shifted
    - depth_limit
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 262
    functionDepth: 15
    functionLinenumber: 262
    functionLinenumberEnd: 319
    functionName: shift_tree
    functionSourceFile: /src/git/match-trees.c
    functionUses: 1
    functionsReached:
    - get_tree_entry
    - die
    - oid_to_hex
    - oidcpy
    - score_trees
    - match_trees
    - splice_tree
    - xcalloc
    - free
    linkageType: ''
    returnType: void
    signature: "void shift_tree(struct repository *r,\n\t\tconst struct object_id
      *hash1,\n\t\tconst struct object_id *hash2,\n\t\tstruct object_id *shifted,\n\t\tint
      depth_limit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_tree_entry
      Src: /src/git/match-trees.c:337,1
    - Dst: S_ISDIR
      Src: /src/git/match-trees.c:338,1
    - Dst: get_tree_entry
      Src: /src/git/match-trees.c:342,1
    - Dst: S_ISDIR
      Src: /src/git/match-trees.c:343,1
    - Dst: score_trees
      Src: /src/git/match-trees.c:348,1
    - Dst: score_trees
      Src: /src/git/match-trees.c:352,1
    - Dst: score_trees
      Src: /src/git/match-trees.c:357,1
    - Dst: oidcpy
      Src: /src/git/match-trees.c:364,1
    - Dst: splice_tree
      Src: /src/git/match-trees.c:373,1
    - Dst: oidcpy
      Src: /src/git/match-trees.c:379,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - r
    - hash1
    - hash2
    - shifted
    - shift_prefix
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 326
    functionDepth: 14
    functionLinenumber: 326
    functionLinenumberEnd: 380
    functionName: shift_tree_by
    functionSourceFile: /src/git/match-trees.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - get_tree_entry
    - oidcpy
    - score_trees
    - splice_tree
    linkageType: ''
    returnType: void
    signature: "void shift_tree_by(struct repository *r,\n\t\t   const struct object_id
      *hash1,\n\t\t   const struct object_id *hash2,\n\t\t   struct object_id *shifted,\n\t\t
      \  const char *shift_prefix)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ce_stage
      Src: /src/git/preload-index.c:64,1
    - Dst: S_ISGITLINK
      Src: /src/git/preload-index.c:66,1
    - Dst: ce_uptodate
      Src: /src/git/preload-index.c:68,1
    - Dst: ce_skip_worktree
      Src: /src/git/preload-index.c:70,1
    - Dst: pthread_mutex_lock
      Src: /src/git/preload-index.c:77,1
    - Dst: display_progress
      Src: /src/git/preload-index.c:79,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/preload-index.c:80,1
    - Dst: ce_path_match
      Src: /src/git/preload-index.c:83,1
    - Dst: threaded_has_symlink_leading_path
      Src: /src/git/preload-index.c:85,1
    - Dst: ce_namelen
      Src: /src/git/preload-index.c:85,1
    - Dst: lstat
      Src: /src/git/preload-index.c:88,1
    - Dst: ie_match_stat
      Src: /src/git/preload-index.c:90,1
    - Dst: ce_mark_uptodate
      Src: /src/git/preload-index.c:92,1
    - Dst: mark_fsmonitor_valid
      Src: /src/git/preload-index.c:93,1
    - Dst: pthread_mutex_lock
      Src: /src/git/preload-index.c:98,1
    - Dst: display_progress
      Src: /src/git/preload-index.c:99,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/preload-index.c:100,1
    - Dst: cache_def_clear
      Src: /src/git/preload-index.c:102,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 42
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 47
    functionDepth: 9
    functionLinenumber: 47
    functionLinenumberEnd: 104
    functionName: preload_thread
    functionSourceFile: /src/git/preload-index.c
    functionUses: 0
    functionsReached:
    - ce_uptodate
    - pthread_mutex_lock
    - ce_namelen
    - ie_match_stat
    - threaded_has_symlink_leading_path
    - S_ISGITLINK
    - ce_path_match
    - mark_fsmonitor_valid
    - ce_skip_worktree
    - display_progress
    - pthread_mutex_unlock
    - cache_def_clear
    - lstat
    - ce_stage
    - ce_mark_uptodate
    linkageType: ''
    returnType: void
    signature: void *preload_thread(void *_data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/preload-index.c:116,1
    - Dst: git_env_bool
      Src: /src/git/preload-index.c:122,1
    - Dst: trace2_region_enter
      Src: /src/git/preload-index.c:127,1
    - Dst: trace_performance_enter
      Src: /src/git/preload-index.c:129,1
    - Dst: DIV_ROUND_UP
      Src: /src/git/preload-index.c:133,1
    - Dst: memset
      Src: /src/git/preload-index.c:134,1
    - Dst: memset
      Src: /src/git/preload-index.c:136,1
    - Dst: isatty
      Src: /src/git/preload-index.c:137,1
    - Dst: start_delayed_progress
      Src: /src/git/preload-index.c:138,1
    - Dst: _
      Src: /src/git/preload-index.c:139,1
    - Dst: pthread_mutex_init
      Src: /src/git/preload-index.c:141,1
    - Dst: copy_pathspec
      Src: /src/git/preload-index.c:150,1
    - Dst: pthread_create
      Src: /src/git/preload-index.c:156,1
    - Dst: die
      Src: /src/git/preload-index.c:159,1
    - Dst: _
      Src: /src/git/preload-index.c:159,1
    - Dst: strerror
      Src: /src/git/preload-index.c:159,1
    - Dst: pthread_join
      Src: /src/git/preload-index.c:163,1
    - Dst: die
      Src: /src/git/preload-index.c:164,1
    - Dst: stop_progress
      Src: /src/git/preload-index.c:167,1
    - Dst: clear_pathspec
      Src: /src/git/preload-index.c:172,1
    - Dst: trace_performance_leave
      Src: /src/git/preload-index.c:175,1
    - Dst: trace2_data_intmax
      Src: /src/git/preload-index.c:177,1
    - Dst: trace2_region_leave
      Src: /src/git/preload-index.c:178,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 3
    argNames:
    - index
    - pathspec
    - refresh_flags
    argTypes:
    - struct index_state*
    - struct pathspec*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 106
    functionDepth: 19
    functionLinenumber: 106
    functionLinenumberEnd: 179
    functionName: preload_index
    functionSourceFile: /src/git/preload-index.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_init
    - stop_progress
    - trace2_data_intmax
    - trace2_region_enter
    - start_delayed_progress
    - trace_performance_leave
    - git_env_bool
    - DIV_ROUND_UP
    - die
    - strerror
    - isatty
    - memset
    - copy_pathspec
    - pthread_create
    - _
    - trace_performance_enter
    - clear_pathspec
    - trace2_region_leave
    - repo_config_get_bool
    - pthread_join
    linkageType: ''
    returnType: void
    signature: "void preload_index(struct index_state *index,\n\t\t   const struct
      pathspec *pathspec,\n\t\t   unsigned int refresh_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/preload-index.c:185,1
    - Dst: preload_index
      Src: /src/git/preload-index.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - repo
    - pathspec
    - refresh_flags
    argTypes:
    - struct repository*
    - struct pathspec*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 20
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: repo_read_index_preload
    functionSourceFile: /src/git/preload-index.c
    functionUses: 1
    functionsReached:
    - repo_read_index
    - preload_index
    linkageType: ''
    returnType: int
    signature: "int repo_read_index_preload(struct repository *repo,\n\t\t\t    const
      struct pathspec *pathspec,\n\t\t\t    unsigned int refresh_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/strvec.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 11
    functionName: strvec_init
    functionSourceFile: /src/git/strvec.c
    functionUses: 6
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void strvec_init(struct strvec *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/strvec.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - array
    - value
    argTypes:
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: strvec_push_nodup
    functionSourceFile: /src/git/strvec.c
    functionUses: 1
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void strvec_push_nodup(struct strvec *array, char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push_nodup
      Src: /src/git/strvec.c:25,1
    - Dst: xstrdup
      Src: /src/git/strvec.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - array
    - value
    argTypes:
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: strvec_push
    functionSourceFile: /src/git/strvec.c
    functionUses: 95
    functionsReached:
    - strvec_push_nodup
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *strvec_push(struct strvec *array, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/strvec.c:34,1
    - Dst: strbuf_vaddf
      Src: /src/git/strvec.c:35,1
    - Dst: va_end
      Src: /src/git/strvec.c:36,1
    - Dst: strvec_push_nodup
      Src: /src/git/strvec.c:38,1
    - Dst: strbuf_detach
      Src: /src/git/strvec.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - array
    - fmt
    argTypes:
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: strvec_pushf
    functionSourceFile: /src/git/strvec.c
    functionUses: 48
    functionsReached:
    - strbuf_vaddf
    - va_end
    - strbuf_detach
    - va_start
    - strvec_push_nodup
    linkageType: ''
    returnType: char
    signature: char *strvec_pushf(struct strvec *array, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/strvec.c:47,1
    - Dst: va_arg
      Src: /src/git/strvec.c:48,1
    - Dst: strvec_push
      Src: /src/git/strvec.c:49,1
    - Dst: va_end
      Src: /src/git/strvec.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: strvec_pushl
    functionSourceFile: /src/git/strvec.c
    functionUses: 30
    functionsReached:
    - va_end
    - va_start
    - va_arg
    - strvec_push
    linkageType: ''
    returnType: void
    signature: void strvec_pushl(struct strvec *array, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/strvec.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - array
    - items
    argTypes:
    - struct strvec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: strvec_pushv
    functionSourceFile: /src/git/strvec.c
    functionUses: 28
    functionsReached:
    - strvec_push
    linkageType: ''
    returnType: void
    signature: void strvec_pushv(struct strvec *array, const char **items)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/strvec.c:63,1
    - Dst: ALLOC_GROW
      Src: /src/git/strvec.c:67,1
    - Dst: free
      Src: /src/git/strvec.c:72,1
    - Dst: memmove
      Src: /src/git/strvec.c:74,1
    - Dst: xstrdup
      Src: /src/git/strvec.c:78,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - array
    - idx
    - len
    - replacement
    - replacement_len
    argTypes:
    - struct strvec*
    - size_t
    - size_t
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: strvec_splice
    functionSourceFile: /src/git/strvec.c
    functionUses: 2
    functionsReached:
    - ALLOC_GROW
    - free
    - memmove
    - BUG
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void strvec_splice(struct strvec *array, size_t idx, size_t len,\n\t\t
      \  const char **replacement, size_t replacement_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/strvec.c:85,1
    - Dst: xstrdup
      Src: /src/git/strvec.c:87,1
    - Dst: free
      Src: /src/git/strvec.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - array
    - idx
    - replacement
    argTypes:
    - struct strvec*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: strvec_replace
    functionSourceFile: /src/git/strvec.c
    functionUses: 4
    functionsReached:
    - free
    - BUG
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *strvec_replace(struct strvec *array, size_t idx, const char *replacement)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/strvec.c:95,1
    - Dst: free
      Src: /src/git/strvec.c:96,1
    - Dst: memmove
      Src: /src/git/strvec.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - array
    - idx
    argTypes:
    - struct strvec*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: strvec_remove
    functionSourceFile: /src/git/strvec.c
    functionUses: 0
    functionsReached:
    - memmove
    - BUG
    - free
    linkageType: ''
    returnType: void
    signature: void strvec_remove(struct strvec *array, size_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/strvec.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: strvec_pop
    functionSourceFile: /src/git/strvec.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void strvec_pop(struct strvec *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/strvec.c:112,1
    - Dst: isspace
      Src: /src/git/strvec.c:120,1
    - Dst: strvec_push_nodup
      Src: /src/git/strvec.c:122,1
    - Dst: xstrndup
      Src: /src/git/strvec.c:122,1
    - Dst: isspace
      Src: /src/git/strvec.c:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - array
    - to_split
    argTypes:
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 11
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: strvec_split
    functionSourceFile: /src/git/strvec.c
    functionUses: 1
    functionsReached:
    - isspace
    - strvec_push_nodup
    - xstrndup
    linkageType: ''
    returnType: void
    signature: void strvec_split(struct strvec *array, const char *to_split)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/strvec.c:134,1
    - Dst: free
      Src: /src/git/strvec.c:135,1
    - Dst: strvec_init
      Src: /src/git/strvec.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: strvec_clear
    functionSourceFile: /src/git/strvec.c
    functionUses: 50
    functionsReached:
    - strvec_init
    - free
    linkageType: ''
    returnType: void
    signature: void strvec_clear(struct strvec *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/strvec.c:143,1
    - Dst: strvec_init
      Src: /src/git/strvec.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 7
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: strvec_detach
    functionSourceFile: /src/git/strvec.c
    functionUses: 0
    functionsReached:
    - strvec_init
    - xcalloc
    linkageType: ''
    returnType: char
    signature: char **strvec_detach(struct strvec *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: need_bs_quote
    functionSourceFile: /src/git/quote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int need_bs_quote(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_detach
      Src: /src/git/quote.c:33,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:35,1
    - Dst: strcspn
      Src: /src/git/quote.c:37,1
    - Dst: strbuf_add
      Src: /src/git/quote.c:38,1
    - Dst: need_bs_quote
      Src: /src/git/quote.c:40,1
    - Dst: strbuf_addstr
      Src: /src/git/quote.c:41,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:42,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:43,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:46,1
    - Dst: free
      Src: /src/git/quote.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 48
    functionName: sq_quote_buf
    functionSourceFile: /src/git/quote.c
    functionUses: 3
    functionsReached:
    - need_bs_quote
    - strbuf_addch
    - strbuf_detach
    - strbuf_addstr
    - strcspn
    - free
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void sq_quote_buf(struct strbuf *dst, const char *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/quote.c:57,1
    - Dst: isalnum
      Src: /src/git/quote.c:62,1
    - Dst: strchr
      Src: /src/git/quote.c:62,1
    - Dst: sq_quote_buf
      Src: /src/git/quote.c:63,1
    - Dst: strbuf_addstr
      Src: /src/git/quote.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 70
    functionName: sq_quote_buf_pretty
    functionSourceFile: /src/git/quote.c
    functionUses: 5
    functionsReached:
    - sq_quote_buf
    - strchr
    - isalnum
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void sq_quote_buf_pretty(struct strbuf *dst, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/quote.c:77,1
    - Dst: strbuf_vaddf
      Src: /src/git/quote.c:78,1
    - Dst: va_end
      Src: /src/git/quote.c:79,1
    - Dst: sq_quote_buf
      Src: /src/git/quote.c:81,1
    - Dst: strbuf_release
      Src: /src/git/quote.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - fmt
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: sq_quotef
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - sq_quote_buf
    - strbuf_release
    - strbuf_vaddf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void sq_quotef(struct strbuf *dst, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_grow
      Src: /src/git/quote.c:90,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:92,1
    - Dst: sq_quote_buf
      Src: /src/git/quote.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - argv
    argTypes:
    - struct strbuf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: sq_quote_argv
    functionSourceFile: /src/git/quote.c
    functionUses: 0
    functionsReached:
    - sq_quote_buf
    - strbuf_grow
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void sq_quote_argv(struct strbuf *dst, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/quote.c:105,1
    - Dst: sq_append_quote_argv_pretty
      Src: /src/git/quote.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - argv
    argTypes:
    - struct strbuf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: sq_quote_argv_pretty
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - sq_append_quote_argv_pretty
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void sq_quote_argv_pretty(struct strbuf *dst, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/quote.c:118,1
    - Dst: sq_quote_buf_pretty
      Src: /src/git/quote.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - argv
    argTypes:
    - struct strbuf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 6
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: sq_append_quote_argv_pretty
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - sq_quote_buf_pretty
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void sq_append_quote_argv_pretty(struct strbuf *dst, const char **argv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: need_bs_quote
      Src: /src/git/quote.c:153,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - arg
    - next
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 167
    functionName: sq_dequote_step
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - need_bs_quote
    linkageType: ''
    returnType: char
    signature: char *sq_dequote_step(char *arg, char **next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sq_dequote_step
      Src: /src/git/quote.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: sq_dequote
    functionSourceFile: /src/git/quote.c
    functionUses: 2
    functionsReached:
    - sq_dequote_step
    linkageType: ''
    returnType: char
    signature: char *sq_dequote(char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sq_dequote_step
      Src: /src/git/quote.c:181,1
    - Dst: isspace
      Src: /src/git/quote.c:186,1
    - Dst: isspace
      Src: /src/git/quote.c:190,1
    - Dst: strvec_push
      Src: /src/git/quote.c:192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - arg
    - array
    argTypes:
    - char*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 196
    functionName: sq_dequote_to_strvec
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - isspace
    - strvec_push
    - sq_dequote_step
    linkageType: ''
    returnType: int
    signature: int sq_dequote_to_strvec(char *arg, struct strvec *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: X8
    functionSourceFile: /src/git/quote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: X16
    functionSourceFile: /src/git/quote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: cq_must_quote
    functionSourceFile: /src/git/quote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cq_must_quote(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cq_must_quote
      Src: /src/git/quote.c:230,1
    - Dst: cq_must_quote
      Src: /src/git/quote.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - s
    - maxlen
    argTypes:
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: next_quote_pos
    functionSourceFile: /src/git/quote.c
    functionUses: 0
    functionsReached:
    - cq_must_quote
    linkageType: ''
    returnType: size_t
    signature: size_t next_quote_pos(const char *s, ssize_t maxlen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: next_quote_pos
      Src: /src/git/quote.c:274,1
    - Dst: EMIT
      Src: /src/git/quote.c:279,1
    - Dst: EMITBUF
      Src: /src/git/quote.c:281,1
    - Dst: EMIT
      Src: /src/git/quote.c:282,1
    - Dst: EMIT
      Src: /src/git/quote.c:288,1
    - Dst: EMIT
      Src: /src/git/quote.c:290,1
    - Dst: EMIT
      Src: /src/git/quote.c:291,1
    - Dst: EMIT
      Src: /src/git/quote.c:292,1
    - Dst: EMITBUF
      Src: /src/git/quote.c:296,1
    - Dst: EMIT
      Src: /src/git/quote.c:301,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 5
    argNames:
    - name
    - maxlen
    - sb
    - fp
    - flags
    argTypes:
    - char*
    - ssize_t
    - struct strbuf*
    - FILE*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 303
    functionName: quote_c_style_counted
    functionSourceFile: /src/git/quote.c
    functionUses: 0
    functionsReached:
    - EMITBUF
    - EMIT
    - next_quote_pos
    linkageType: ''
    returnType: size_t
    signature: "size_t quote_c_style_counted(const char *name, ssize_t maxlen,\n\t\t\t\t
      \   struct strbuf *sb, FILE *fp, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: EMIT
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: EMITBUF
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMITBUF(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quote_c_style_counted
      Src: /src/git/quote.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - name
    - sb
    - fp
    - flags
    argTypes:
    - char*
    - struct strbuf*
    - FILE*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: quote_c_style
    functionSourceFile: /src/git/quote.c
    functionUses: 13
    functionsReached:
    - quote_c_style_counted
    linkageType: ''
    returnType: size_t
    signature: size_t quote_c_style(const char *name, struct strbuf *sb, FILE *fp,
      unsigned flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quote_c_style
      Src: /src/git/quote.c:314,1
    - Dst: quote_c_style
      Src: /src/git/quote.c:315,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:317,1
    - Dst: quote_c_style
      Src: /src/git/quote.c:318,1
    - Dst: quote_c_style
      Src: /src/git/quote.c:319,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:321,1
    - Dst: strbuf_addstr
      Src: /src/git/quote.c:323,1
    - Dst: strbuf_addstr
      Src: /src/git/quote.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - sb
    - prefix
    - path
    - flags
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 326
    functionName: quote_two_c_style
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - quote_c_style
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void quote_two_c_style(struct strbuf *sb, const char *prefix, const
      char *path,\n\t\t       unsigned flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quote_c_style
      Src: /src/git/quote.c:331,1
    - Dst: fputs
      Src: /src/git/quote.c:333,1
    - Dst: fputc
      Src: /src/git/quote.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - name
    - fp
    - terminator
    argTypes:
    - char*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 336
    functionName: write_name_quoted
    functionSourceFile: /src/git/quote.c
    functionUses: 2
    functionsReached:
    - fputc
    - quote_c_style
    - fputs
    linkageType: ''
    returnType: void
    signature: void write_name_quoted(const char *name, FILE *fp, int terminator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: relative_path
      Src: /src/git/quote.c:343,1
    - Dst: write_name_quoted
      Src: /src/git/quote.c:344,1
    - Dst: strbuf_release
      Src: /src/git/quote.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - name
    - prefix
    - fp
    - terminator
    argTypes:
    - char*
    - char*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 338
    functionDepth: 5
    functionLinenumber: 338
    functionLinenumberEnd: 347
    functionName: write_name_quoted_relative
    functionSourceFile: /src/git/quote.c
    functionUses: 0
    functionsReached:
    - relative_path
    - strbuf_release
    - write_name_quoted
    linkageType: ''
    returnType: void
    signature: "void write_name_quoted_relative(const char *name, const char *prefix,\n\t\t\t\tFILE
      *fp, int terminator)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: relative_path
      Src: /src/git/quote.c:353,1
    - Dst: strchr
      Src: /src/git/quote.c:354,1
    - Dst: strbuf_reset
      Src: /src/git/quote.c:356,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:364,1
    - Dst: quote_c_style_counted
      Src: /src/git/quote.c:365,1
    - Dst: strlen
      Src: /src/git/quote.c:365,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:368,1
    - Dst: strbuf_release
      Src: /src/git/quote.c:369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - in
    - prefix
    - out
    - flags
    argTypes:
    - char*
    - char*
    - struct strbuf*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 372
    functionName: quote_path
    functionSourceFile: /src/git/quote.c
    functionUses: 9
    functionsReached:
    - strbuf_release
    - relative_path
    - strbuf_reset
    - strchr
    - strbuf_addch
    - strlen
    - quote_c_style_counted
    linkageType: ''
    returnType: char
    signature: char *quote_path(const char *in, const char *prefix, struct strbuf
      *out, unsigned flags)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/git/quote.c:395,1
    - Dst: strbuf_add
      Src: /src/git/quote.c:396,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:436,1
    - Dst: strbuf_setlen
      Src: /src/git/quote.c:440,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 3
    argNames:
    - sb
    - quoted
    - endp
    argTypes:
    - struct strbuf*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 442
    functionName: unquote_c_style
    functionSourceFile: /src/git/quote.c
    functionUses: 7
    functionsReached:
    - strbuf_addch
    - strbuf_setlen
    - strbuf_add
    - strcspn
    linkageType: ''
    returnType: int
    signature: int unquote_c_style(struct strbuf *sb, const char *quoted, const char
      **endp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/quote.c:452,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:455,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:456,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sb
    - src
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 459
    functionName: perl_quote_buf
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void perl_quote_buf(struct strbuf *sb, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/quote.c:468,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:471,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:472,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - sb
    - src
    - len
    argTypes:
    - struct strbuf*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 476
    functionName: perl_quote_buf_with_len
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void perl_quote_buf_with_len(struct strbuf *sb, const char *src, size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/quote.c:485,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:488,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:489,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:493,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:494,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:496,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - sb
    - src
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 497
    functionName: python_quote_buf
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void python_quote_buf(struct strbuf *sb, const char *src)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/quote.c:503,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:509,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:512,1
    - Dst: strbuf_addstr
      Src: /src/git/quote.c:515,1
    - Dst: strbuf_addstr
      Src: /src/git/quote.c:518,1
    - Dst: strbuf_addstr
      Src: /src/git/quote.c:521,1
    - Dst: strbuf_addstr
      Src: /src/git/quote.c:524,1
    - Dst: strbuf_addstr
      Src: /src/git/quote.c:527,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:531,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - sb
    - src
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 499
    functionDepth: 4
    functionLinenumber: 499
    functionLinenumberEnd: 532
    functionName: tcl_quote_buf
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void tcl_quote_buf(struct strbuf *sb, const char *src)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/quote.c:540,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:541,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:545,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:553,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:554,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:560,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:561,1
    - Dst: strbuf_addch
      Src: /src/git/quote.c:565,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - sb
    - src
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 569
    functionName: basic_regex_quote_buf
    functionSourceFile: /src/git/quote.c
    functionUses: 1
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void basic_regex_quote_buf(struct strbuf *sb, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/blob.c:9,1
    - Dst: create_object
      Src: /src/git/blob.c:11,1
    - Dst: alloc_blob_node
      Src: /src/git/blob.c:11,1
    - Dst: object_as_type
      Src: /src/git/blob.c:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 7
    functionDepth: 3
    functionLinenumber: 7
    functionLinenumberEnd: 13
    functionName: lookup_blob
    functionSourceFile: /src/git/blob.c
    functionUses: 14
    functionsReached:
    - lookup_object
    - object_as_type
    - alloc_blob_node
    - create_object
    linkageType: ''
    returnType: struct blob
    signature: struct blob *lookup_blob(struct repository *r, const struct object_id
      *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: parse_blob_buffer
    functionSourceFile: /src/git/blob.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void parse_blob_buffer(struct blob *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/git/utf8.c:26,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: display_mode_esc_sequence_len
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: size_t
    signature: size_t display_mode_esc_sequence_len(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ucs
    - table
    - max
    argTypes:
    - ucs_char_t
    - struct interval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 52
    functionName: bisearch
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bisearch(ucs_char_t ucs, const struct interval *table, int max)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bisearch
      Src: /src/git/utf8.c:100,1
    - Dst: ARRAY_SIZE
      Src: /src/git/utf8.c:100,1
    - Dst: bisearch
      Src: /src/git/utf8.c:104,1
    - Dst: ARRAY_SIZE
      Src: /src/git/utf8.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ch
    argTypes:
    - ucs_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 108
    functionName: git_wcwidth
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - bisearch
    linkageType: ''
    returnType: int
    signature: int git_wcwidth(ucs_char_t ch)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 40
    argCount: 2
    argNames:
    - start
    - remainder_p
    argTypes:
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 189
    functionName: pick_one_utf8_char
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ucs_char_t
    signature: ucs_char_t pick_one_utf8_char(const char **start, size_t *remainder_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pick_one_utf8_char
      Src: /src/git/utf8.c:200,1
    - Dst: git_wcwidth
      Src: /src/git/utf8.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - start
    - remainder_p
    argTypes:
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: utf8_width
    functionSourceFile: /src/git/utf8.c
    functionUses: 3
    functionsReached:
    - pick_one_utf8_char
    - git_wcwidth
    linkageType: ''
    returnType: int
    signature: int utf8_width(const char **start, size_t *remainder_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_mode_esc_sequence_len
      Src: /src/git/utf8.c:221,1
    - Dst: utf8_width
      Src: /src/git/utf8.c:224,1
    - Dst: cast_size_t_to_int
      Src: /src/git/utf8.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - string
    - len
    - skip_ansi
    argTypes:
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 234
    functionName: utf8_strnwidth
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - cast_size_t_to_int
    - utf8_width
    - display_mode_esc_sequence_len
    linkageType: ''
    returnType: int
    signature: int utf8_strnwidth(const char *string, size_t len, int skip_ansi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utf8_strnwidth
      Src: /src/git/utf8.c:238,1
    - Dst: strlen
      Src: /src/git/utf8.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: utf8_strwidth
    functionSourceFile: /src/git/utf8.c
    functionUses: 7
    functionsReached:
    - strlen
    - utf8_strnwidth
    linkageType: ''
    returnType: int
    signature: int utf8_strwidth(const char *string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utf8_width
      Src: /src/git/utf8.c:248,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: is_utf8
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - utf8_width
    linkageType: ''
    returnType: int
    signature: int is_utf8(const char *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/utf8.c:261,1
    - Dst: strbuf_addchars
      Src: /src/git/utf8.c:264,1
    - Dst: strbuf_add
      Src: /src/git/utf8.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - text
    - indent
    - indent2
    argTypes:
    - struct strbuf*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 269
    functionName: strbuf_add_indented_text
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    - strchrnul
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void strbuf_add_indented_text(struct strbuf *buf, const char *text,\n\t\t\t\t
      \    int indent, int indent2)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_indented_text
      Src: /src/git/utf8.c:285,1
    - Dst: display_mode_esc_sequence_len
      Src: /src/git/utf8.c:302,1
    - Dst: isspace
      Src: /src/git/utf8.c:306,1
    - Dst: strbuf_addchars
      Src: /src/git/utf8.c:314,1
    - Dst: strbuf_add
      Src: /src/git/utf8.c:315,1
    - Dst: strbuf_addch
      Src: /src/git/utf8.c:324,1
    - Dst: isalnum
      Src: /src/git/utf8.c:327,1
    - Dst: strbuf_addch
      Src: /src/git/utf8.c:330,1
    - Dst: strbuf_addch
      Src: /src/git/utf8.c:337,1
    - Dst: isspace
      Src: /src/git/utf8.c:338,1
    - Dst: utf8_width
      Src: /src/git/utf8.c:345,1
    - Dst: strbuf_setlen
      Src: /src/git/utf8.c:349,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 5
    argNames:
    - buf
    - text
    - indent1
    - indent2
    - width
    argTypes:
    - struct strbuf*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 277
    functionDepth: 4
    functionLinenumber: 277
    functionLinenumberEnd: 357
    functionName: strbuf_add_wrapped_text
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - isspace
    - strbuf_addchars
    - utf8_width
    - display_mode_esc_sequence_len
    - strbuf_setlen
    - strbuf_addch
    - isalnum
    - strbuf_add
    - strbuf_add_indented_text
    linkageType: ''
    returnType: void
    signature: "void strbuf_add_wrapped_text(struct strbuf *buf,\n\t\tconst char *text,
      int indent1, int indent2, int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrndup
      Src: /src/git/utf8.c:362,1
    - Dst: strbuf_add_wrapped_text
      Src: /src/git/utf8.c:363,1
    - Dst: free
      Src: /src/git/utf8.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - buf
    - data
    - len
    - indent
    - indent2
    - width
    argTypes:
    - struct strbuf*
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 11
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: strbuf_add_wrapped_bytes
    functionSourceFile: /src/git/utf8.c
    functionUses: 2
    functionsReached:
    - free
    - strbuf_add_wrapped_text
    - xstrndup
    linkageType: ''
    returnType: void
    signature: "void strbuf_add_wrapped_bytes(struct strbuf *buf, const char *data,
      int len,\n\t\t\t     int indent, int indent2, int width)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/utf8.c:374,1
    - Dst: display_mode_esc_sequence_len
      Src: /src/git/utf8.c:381,1
    - Dst: strbuf_add
      Src: /src/git/utf8.c:382,1
    - Dst: utf8_width
      Src: /src/git/utf8.c:390,1
    - Dst: strbuf_addstr
      Src: /src/git/utf8.c:403,1
    - Dst: strbuf_add
      Src: /src/git/utf8.c:407,1
    - Dst: strbuf_swap
      Src: /src/git/utf8.c:413,1
    - Dst: strbuf_release
      Src: /src/git/utf8.c:415,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - sb_src
    - pos
    - width
    - subst
    argTypes:
    - struct strbuf*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 416
    functionName: strbuf_utf8_replace
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - utf8_width
    - strbuf_release
    - display_mode_esc_sequence_len
    - strbuf_swap
    - strbuf_addstr
    - strbuf_init
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void strbuf_utf8_replace(struct strbuf *sb_src, int pos, int width,\n\t\t\t
      const char *subst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_iprefix
      Src: /src/git/utf8.c:425,1
    - Dst: skip_iprefix
      Src: /src/git/utf8.c:425,1
    - Dst: skip_prefix
      Src: /src/git/utf8.c:426,1
    - Dst: skip_prefix
      Src: /src/git/utf8.c:427,1
    - Dst: strcasecmp
      Src: /src/git/utf8.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 431
    functionName: same_utf_encoding
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - skip_iprefix
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int same_utf_encoding(const char *src, const char *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: is_encoding_utf8
    functionSourceFile: /src/git/utf8.c
    functionUses: 6
    functionsReached:
    - same_utf_encoding
    linkageType: ''
    returnType: int
    signature: int is_encoding_utf8(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:450,1
    - Dst: strcasecmp
      Src: /src/git/utf8.c:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 453
    functionName: same_encoding
    functionSourceFile: /src/git/utf8.c
    functionUses: 5
    functionsReached:
    - same_utf_encoding
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int same_encoding(const char *src, const char *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/utf8.c:465,1
    - Dst: strbuf_vaddf
      Src: /src/git/utf8.c:466,1
    - Dst: va_end
      Src: /src/git/utf8.c:467,1
    - Dst: fputs
      Src: /src/git/utf8.c:469,1
    - Dst: utf8_strwidth
      Src: /src/git/utf8.c:471,1
    - Dst: strbuf_release
      Src: /src/git/utf8.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - stream
    - format
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 459
    functionDepth: 5
    functionLinenumber: 459
    functionLinenumberEnd: 474
    functionName: utf8_fprintf
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fputs
    - strbuf_vaddf
    - va_end
    - utf8_strwidth
    - va_start
    linkageType: ''
    returnType: int
    signature: int utf8_fprintf(FILE *stream, const char *format, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: st_add
      Src: /src/git/utf8.c:494,1
    - Dst: xmalloc
      Src: /src/git/utf8.c:495,1
    - Dst: iconv
      Src: /src/git/utf8.c:500,1
    - Dst: free
      Src: /src/git/utf8.c:505,1
    - Dst: st_add3
      Src: /src/git/utf8.c:514,1
    - Dst: st_mult
      Src: /src/git/utf8.c:514,1
    - Dst: xrealloc
      Src: /src/git/utf8.c:515,1
    - Dst: iconv
      Src: /src/git/utf8.c:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - in
    - insz
    - conv
    - bom_len
    - outsz_p
    argTypes:
    - char*
    - size_t
    - iconv_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 486
    functionDepth: 7
    functionLinenumber: 486
    functionLinenumberEnd: 540
    functionName: reencode_string_iconv
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - iconv
    - xrealloc
    - xmalloc
    - st_add3
    - free
    - st_add
    - st_mult
    linkageType: ''
    returnType: char
    signature: "char *reencode_string_iconv(const char *in, size_t insz, iconv_t conv,\n\t\t\t
      \   size_t bom_len, size_t *outsz_p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_encoding_utf8
      Src: /src/git/utf8.c:551,1
    - Dst: strcasecmp
      Src: /src/git/utf8.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 562
    functionName: fallback_encoding
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - is_encoding_utf8
    linkageType: ''
    returnType: char
    signature: char *fallback_encoding(const char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:577,1
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:588,1
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:592,1
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:597,1
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:601,1
    - Dst: iconv_open
      Src: /src/git/utf8.c:608,1
    - Dst: fallback_encoding
      Src: /src/git/utf8.c:610,1
    - Dst: fallback_encoding
      Src: /src/git/utf8.c:611,1
    - Dst: iconv_open
      Src: /src/git/utf8.c:613,1
    - Dst: reencode_string_iconv
      Src: /src/git/utf8.c:617,1
    - Dst: iconv_close
      Src: /src/git/utf8.c:618,1
    - Dst: memcpy
      Src: /src/git/utf8.c:620,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 5
    argNames:
    - in
    - insz
    - out_encoding
    - in_encoding
    - outsz
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 564
    functionDepth: 8
    functionLinenumber: 564
    functionLinenumberEnd: 622
    functionName: reencode_string_len
    functionSourceFile: /src/git/utf8.c
    functionUses: 6
    functionsReached:
    - memcpy
    - same_utf_encoding
    - fallback_encoding
    - iconv_close
    - reencode_string_iconv
    - iconv_open
    linkageType: ''
    returnType: char
    signature: "char *reencode_string_len(const char *in, size_t insz,\n\t\t\t  const
      char *out_encoding, const char *in_encoding,\n\t\t\t  size_t *outsz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/utf8.c:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 4
    argNames:
    - data
    - len
    - bom
    - bom_len
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 629
    functionName: has_bom_prefix
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int has_bom_prefix(const char *data, size_t len,\n\t\t\t  const char
      *bom, size_t bom_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:634,1
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:635,1
    - Dst: has_bom_prefix
      Src: /src/git/utf8.c:636,1
    - Dst: has_bom_prefix
      Src: /src/git/utf8.c:637,1
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:639,1
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:640,1
    - Dst: has_bom_prefix
      Src: /src/git/utf8.c:641,1
    - Dst: has_bom_prefix
      Src: /src/git/utf8.c:642,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 3
    argNames:
    - enc
    - data
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 644
    functionName: has_prohibited_utf_bom
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - same_utf_encoding
    - has_bom_prefix
    linkageType: ''
    returnType: int
    signature: int has_prohibited_utf_bom(const char *enc, const char *data, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:649,1
    - Dst: has_bom_prefix
      Src: /src/git/utf8.c:650,1
    - Dst: has_bom_prefix
      Src: /src/git/utf8.c:651,1
    - Dst: same_utf_encoding
      Src: /src/git/utf8.c:653,1
    - Dst: has_bom_prefix
      Src: /src/git/utf8.c:654,1
    - Dst: has_bom_prefix
      Src: /src/git/utf8.c:655,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - enc
    - data
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 657
    functionName: is_missing_required_utf_bom
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - same_utf_encoding
    - has_bom_prefix
    linkageType: ''
    returnType: int
    signature: int is_missing_required_utf_bom(const char *enc, const char *data,
      size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_encoding_utf8
      Src: /src/git/utf8.c:677,1
    - Dst: pick_one_utf8_char
      Src: /src/git/utf8.c:678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - text
    - remainder_p
    - encoding
    argTypes:
    - char**
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 696
    functionName: mbs_chrlen
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - pick_one_utf8_char
    - is_encoding_utf8
    linkageType: ''
    returnType: int
    signature: int mbs_chrlen(const char **text, size_t *remainder_p, const char *encoding)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: pick_one_utf8_char
      Src: /src/git/utf8.c:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - in
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 739
    functionName: next_hfs_char
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - pick_one_utf8_char
    linkageType: ''
    returnType: ucs_char_t
    signature: ucs_char_t next_hfs_char(const char **in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: next_hfs_char
      Src: /src/git/utf8.c:746,1
    - Dst: next_hfs_char
      Src: /src/git/utf8.c:756,1
    - Dst: tolower
      Src: /src/git/utf8.c:764,1
    - Dst: next_hfs_char
      Src: /src/git/utf8.c:768,1
    - Dst: is_dir_sep
      Src: /src/git/utf8.c:769,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - path
    - needle
    - needle_len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 773
    functionName: is_hfs_dot_generic
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - next_hfs_char
    - tolower
    linkageType: ''
    returnType: int
    signature: "int is_hfs_dot_generic(const char *path,\n\t\t\t      const char *needle,
      size_t needle_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hfs_dot_generic
      Src: /src/git/utf8.c:781,1
    - Dst: strlen
      Src: /src/git/utf8.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - needle
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 782
    functionName: is_hfs_dot_str
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - strlen
    - is_hfs_dot_generic
    linkageType: ''
    returnType: int
    signature: int is_hfs_dot_str(const char *path, const char *needle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hfs_dot_str
      Src: /src/git/utf8.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 784
    functionDepth: 4
    functionLinenumber: 784
    functionLinenumberEnd: 787
    functionName: is_hfs_dotgit
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - is_hfs_dot_str
    linkageType: ''
    returnType: int
    signature: int is_hfs_dotgit(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hfs_dot_str
      Src: /src/git/utf8.c:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 789
    functionDepth: 4
    functionLinenumber: 789
    functionLinenumberEnd: 792
    functionName: is_hfs_dotgitmodules
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - is_hfs_dot_str
    linkageType: ''
    returnType: int
    signature: int is_hfs_dotgitmodules(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hfs_dot_str
      Src: /src/git/utf8.c:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 794
    functionDepth: 4
    functionLinenumber: 794
    functionLinenumberEnd: 797
    functionName: is_hfs_dotgitignore
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - is_hfs_dot_str
    linkageType: ''
    returnType: int
    signature: int is_hfs_dotgitignore(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hfs_dot_str
      Src: /src/git/utf8.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 802
    functionName: is_hfs_dotgitattributes
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - is_hfs_dot_str
    linkageType: ''
    returnType: int
    signature: int is_hfs_dotgitattributes(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hfs_dot_str
      Src: /src/git/utf8.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 804
    functionDepth: 4
    functionLinenumber: 804
    functionLinenumberEnd: 807
    functionName: is_hfs_dotmailmap
    functionSourceFile: /src/git/utf8.c
    functionUses: 0
    functionsReached:
    - is_hfs_dot_str
    linkageType: ''
    returnType: int
    signature: int is_hfs_dotmailmap(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/utf8.c:813,1
    - Dst: memcmp
      Src: /src/git/utf8.c:814,1
    - Dst: strlen
      Src: /src/git/utf8.c:814,1
    - Dst: strlen
      Src: /src/git/utf8.c:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - text
    - len
    argTypes:
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 818
    functionName: skip_utf8_bom
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int skip_utf8_bom(char **text, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/utf8.c:823,1
    - Dst: utf8_strnwidth
      Src: /src/git/utf8.c:824,1
    - Dst: strbuf_addstr
      Src: /src/git/utf8.c:828,1
    - Dst: strbuf_addf
      Src: /src/git/utf8.c:833,1
    - Dst: strbuf_addf
      Src: /src/git/utf8.c:836,1
    - Dst: strbuf_addf
      Src: /src/git/utf8.c:838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - buf
    - position
    - width
    - s
    argTypes:
    - struct strbuf*
    - align_type
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 820
    functionDepth: 4
    functionLinenumber: 820
    functionLinenumberEnd: 839
    functionName: strbuf_utf8_align
    functionSourceFile: /src/git/utf8.c
    functionUses: 1
    functionsReached:
    - strbuf_addf
    - strlen
    - strbuf_addstr
    - utf8_strnwidth
    linkageType: ''
    returnType: void
    signature: "void strbuf_utf8_align(struct strbuf *buf, align_type position, unsigned
      int width,\n\t\t       const char *s)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/connect.c:36,1
    - Dst: check_refname_format
      Src: /src/git/connect.c:40,1
    - Dst: starts_with
      Src: /src/git/connect.c:45,1
    - Dst: starts_with
      Src: /src/git/connect.c:49,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 54
    functionName: check_ref
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - check_refname_format
    - starts_with
    linkageType: ''
    returnType: int
    signature: int check_ref(const char *name, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_ref
      Src: /src/git/connect.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - flags
    argTypes:
    - struct ref*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: check_ref_type
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - check_ref
    linkageType: ''
    returnType: int
    signature: int check_ref_type(const struct ref *ref, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/connect.c:70,1
    - Dst: _
      Src: /src/git/connect.c:70,1
    - Dst: die
      Src: /src/git/connect.c:72,1
    - Dst: _
      Src: /src/git/connect.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - unexpected
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: die_initial_contact
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN die_initial_contact(int unexpected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/connect.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: server_supports_v2
    functionSourceFile: /src/git/connect.c
    functionUses: 2
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int server_supports_v2(const char *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_supports_v2
      Src: /src/git/connect.c:93,1
    - Dst: die
      Src: /src/git/connect.c:94,1
    - Dst: _
      Src: /src/git/connect.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: ensure_server_supports_v2
    functionSourceFile: /src/git/connect.c
    functionUses: 1
    functionsReached:
    - server_supports_v2
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void ensure_server_supports_v2(const char *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/connect.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - c
    - v
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: server_feature_v2
    functionSourceFile: /src/git/connect.c
    functionUses: 3
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int server_feature_v2(const char *c, const char **v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/connect.c:119,1
    - Dst: parse_feature_request
      Src: /src/git/connect.c:121,1
    - Dst: die
      Src: /src/git/connect.c:129,1
    - Dst: _
      Src: /src/git/connect.c:129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - c
    - feature
    - die_on_error
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 132
    functionName: server_supports_feature
    functionSourceFile: /src/git/connect.c
    functionUses: 4
    functionsReached:
    - parse_feature_request
    - skip_prefix
    - die
    - _
    linkageType: ''
    returnType: int
    signature: "int server_supports_feature(const char *c, const char *feature,\n\t\t\t
      \   int die_on_error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/connect.c:136,1
    - Dst: strvec_push
      Src: /src/git/connect.c:137,1
    - Dst: die
      Src: /src/git/connect.c:140,1
    - Dst: _
      Src: /src/git/connect.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - reader
    argTypes:
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 7
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: process_capabilities_v2
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - die
    - packet_reader_read
    - _
    linkageType: ''
    returnType: void
    signature: void process_capabilities_v2(struct packet_reader *reader)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_peek
      Src: /src/git/connect.c:151,1
    - Dst: die_initial_contact
      Src: /src/git/connect.c:153,1
    - Dst: determine_protocol_version_client
      Src: /src/git/connect.c:160,1
    - Dst: process_capabilities_v2
      Src: /src/git/connect.c:166,1
    - Dst: packet_reader_read
      Src: /src/git/connect.c:170,1
    - Dst: BUG
      Src: /src/git/connect.c:175,1
    - Dst: trace2_data_intmax
      Src: /src/git/connect.c:178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - reader
    argTypes:
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 143
    functionDepth: 8
    functionLinenumber: 143
    functionLinenumberEnd: 181
    functionName: discover_version
    functionSourceFile: /src/git/connect.c
    functionUses: 2
    functionsReached:
    - die_initial_contact
    - trace2_data_intmax
    - determine_protocol_version_client
    - process_capabilities_v2
    - packet_reader_peek
    - BUG
    - packet_reader_read
    linkageType: ''
    returnType: enum protocol_version
    signature: enum protocol_version discover_version(struct packet_reader *reader)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmemdupz
      Src: /src/git/connect.c:191,1
    - Dst: strchr
      Src: /src/git/connect.c:192,1
    - Dst: check_refname_format
      Src: /src/git/connect.c:197,1
    - Dst: check_refname_format
      Src: /src/git/connect.c:198,1
    - Dst: string_list_append_nodup
      Src: /src/git/connect.c:201,1
    - Dst: free
      Src: /src/git/connect.c:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - symref
    - val
    - len
    argTypes:
    - struct string_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 10
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: parse_one_symref_info
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - string_list_append_nodup
    - strchr
    - check_refname_format
    - free
    linkageType: ''
    returnType: void
    signature: void parse_one_symref_info(struct string_list *symref, const char *val,
      int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: next_server_feature_value
      Src: /src/git/connect.c:218,1
    - Dst: parse_one_symref_info
      Src: /src/git/connect.c:221,1
    - Dst: string_list_sort
      Src: /src/git/connect.c:223,1
    - Dst: string_list_lookup
      Src: /src/git/connect.c:227,1
    - Dst: xstrdup
      Src: /src/git/connect.c:230,1
    - Dst: string_list_clear
      Src: /src/git/connect.c:232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 209
    functionDepth: 11
    functionLinenumber: 209
    functionLinenumberEnd: 233
    functionName: annotate_refs_with_symref_info
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_lookup
    - next_server_feature_value
    - string_list_sort
    - parse_one_symref_info
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void annotate_refs_with_symref_info(struct ref *ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/connect.c:240,1
    - Dst: free
      Src: /src/git/connect.c:244,1
    - Dst: xstrdup
      Src: /src/git/connect.c:245,1
    - Dst: server_feature_value
      Src: /src/git/connect.c:248,1
    - Dst: xstrndup
      Src: /src/git/connect.c:250,1
    - Dst: hash_algo_by_name
      Src: /src/git/connect.c:251,1
    - Dst: free
      Src: /src/git/connect.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - reader
    - linelen
    argTypes:
    - struct packet_reader*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 235
    functionDepth: 11
    functionLinenumber: 235
    functionLinenumberEnd: 258
    functionName: process_capabilities
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - server_feature_value
    - xstrndup
    - strlen
    - free
    - hash_algo_by_name
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void process_capabilities(struct packet_reader *reader, size_t *linelen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex_algop
      Src: /src/git/connect.c:266,1
    - Dst: oideq
      Src: /src/git/connect.c:272,1
    - Dst: strcmp
      Src: /src/git/connect.c:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - reader
    argTypes:
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 274
    functionName: process_dummy_ref
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - parse_oid_hex_algop
    - oideq
    - strcmp
    linkageType: ''
    returnType: int
    signature: int process_dummy_ref(const struct packet_reader *reader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/connect.c:278,1
    - Dst: warning
      Src: /src/git/connect.c:279,1
    - Dst: _
      Src: /src/git/connect.c:279,1
    - Dst: strlen
      Src: /src/git/connect.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: check_no_capabilities
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - strlen
    - warning
    - _
    linkageType: ''
    returnType: void
    signature: void check_no_capabilities(const char *line, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex_algop
      Src: /src/git/connect.c:291,1
    - Dst: strcmp
      Src: /src/git/connect.c:297,1
    - Dst: oid_array_append
      Src: /src/git/connect.c:298,1
    - Dst: strcmp
      Src: /src/git/connect.c:299,1
    - Dst: die
      Src: /src/git/connect.c:300,1
    - Dst: _
      Src: /src/git/connect.c:300,1
    - Dst: check_ref
      Src: /src/git/connect.c:301,1
    - Dst: alloc_ref
      Src: /src/git/connect.c:302,1
    - Dst: oidcpy
      Src: /src/git/connect.c:303,1
    - Dst: check_no_capabilities
      Src: /src/git/connect.c:307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - reader
    - len
    - list
    - flags
    - extra_have
    argTypes:
    - struct packet_reader*
    - size_t
    - struct ref***
    - unsigned int
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 283
    functionDepth: 9
    functionLinenumber: 283
    functionLinenumberEnd: 309
    functionName: process_ref
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - die
    - oidcpy
    - parse_oid_hex_algop
    - check_ref
    - strcmp
    - check_no_capabilities
    - _
    - oid_array_append
    - alloc_ref
    linkageType: ''
    returnType: int
    signature: "int process_ref(const struct packet_reader *reader, size_t len,\n\t\t
      \      struct ref ***list, unsigned int flags,\n\t\t       struct oid_array
      *extra_have)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/connect.c:318,1
    - Dst: get_oid_hex_algop
      Src: /src/git/connect.c:321,1
    - Dst: die
      Src: /src/git/connect.c:322,1
    - Dst: _
      Src: /src/git/connect.c:322,1
    - Dst: die
      Src: /src/git/connect.c:324,1
    - Dst: _
      Src: /src/git/connect.c:324,1
    - Dst: oid_array_append
      Src: /src/git/connect.c:325,1
    - Dst: check_no_capabilities
      Src: /src/git/connect.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - reader
    - len
    - shallow_points
    argTypes:
    - struct packet_reader*
    - size_t
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 328
    functionName: process_shallow
    functionSourceFile: /src/git/connect.c
    functionUses: 2
    functionsReached:
    - die
    - get_oid_hex_algop
    - check_no_capabilities
    - _
    - skip_prefix
    - oid_array_append
    linkageType: ''
    returnType: int
    signature: "int process_shallow(const struct packet_reader *reader, size_t len,\n\t\t\t
      \  struct oid_array *shallow_points)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/connect.c:352,1
    - Dst: die_initial_contact
      Src: /src/git/connect.c:354,1
    - Dst: die
      Src: /src/git/connect.c:363,1
    - Dst: _
      Src: /src/git/connect.c:363,1
    - Dst: process_capabilities
      Src: /src/git/connect.c:368,1
    - Dst: process_dummy_ref
      Src: /src/git/connect.c:369,1
    - Dst: process_ref
      Src: /src/git/connect.c:376,1
    - Dst: process_shallow
      Src: /src/git/connect.c:381,1
    - Dst: die
      Src: /src/git/connect.c:383,1
    - Dst: _
      Src: /src/git/connect.c:383,1
    - Dst: annotate_refs_with_symref_info
      Src: /src/git/connect.c:389,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 340
    functionDepth: 12
    functionLinenumber: 340
    functionLinenumberEnd: 392
    functionName: get_remote_heads
    functionSourceFile: /src/git/connect.c
    functionUses: 2
    functionsReached:
    - annotate_refs_with_symref_info
    - process_capabilities
    - die
    - die_initial_contact
    - process_dummy_ref
    - process_shallow
    - _
    - process_ref
    - packet_reader_read
    linkageType: ''
    returnType: struct ref
    signature: "struct ref **get_remote_heads(struct packet_reader *reader,\n\t\t\t
      \     struct ref **list, unsigned int flags,\n\t\t\t      struct oid_array *extra_have,\n\t\t\t
      \     struct oid_array *shallow_points)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: string_list_split
      Src: /src/git/connect.c:412,1
    - Dst: strcmp
      Src: /src/git/connect.c:417,1
    - Dst: strcmp
      Src: /src/git/connect.c:420,1
    - Dst: skip_prefix
      Src: /src/git/connect.c:428,1
    - Dst: xstrdup
      Src: /src/git/connect.c:429,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/connect.c:436,1
    - Dst: alloc_ref
      Src: /src/git/connect.c:442,1
    - Dst: memcpy
      Src: /src/git/connect.c:444,1
    - Dst: skip_prefix
      Src: /src/git/connect.c:450,1
    - Dst: xstrdup
      Src: /src/git/connect.c:451,1
    - Dst: skip_prefix
      Src: /src/git/connect.c:453,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/connect.c:457,1
    - Dst: xstrfmt
      Src: /src/git/connect.c:463,1
    - Dst: alloc_ref
      Src: /src/git/connect.c:464,1
    - Dst: memcpy
      Src: /src/git/connect.c:466,1
    - Dst: free
      Src: /src/git/connect.c:471,1
    - Dst: string_list_clear
      Src: /src/git/connect.c:476,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - reader
    - list
    - unborn_head_target
    argTypes:
    - struct packet_reader*
    - struct ref***
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 395
    functionDepth: 9
    functionLinenumber: 395
    functionLinenumberEnd: 478
    functionName: process_ref_v2
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - parse_oid_hex_algop
    - xstrfmt
    - memcpy
    - string_list_split
    - strcmp
    - free
    - skip_prefix
    - alloc_ref
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int process_ref_v2(struct packet_reader *reader, struct ref ***list,\n\t\t\t
      \ const char **unborn_head_target)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/connect.c:486,1
    - Dst: die
      Src: /src/git/connect.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - stateless_rpc
    - reader
    - error
    argTypes:
    - int
    - struct packet_reader*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 480
    functionDepth: 7
    functionLinenumber: 480
    functionLinenumberEnd: 488
    functionName: check_stateless_delimiter
    functionSourceFile: /src/git/connect.c
    functionUses: 3
    functionsReached:
    - die
    - packet_reader_read
    linkageType: ''
    returnType: void
    signature: "void check_stateless_delimiter(int stateless_rpc,\n\t\t\t      struct
      packet_reader *reader,\n\t\t\t      const char *error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: server_supports_v2
      Src: /src/git/connect.c:495,1
    - Dst: packet_write_fmt
      Src: /src/git/connect.c:496,1
    - Dst: git_user_agent_sanitized
      Src: /src/git/connect.c:496,1
    - Dst: server_feature_v2
      Src: /src/git/connect.c:498,1
    - Dst: hash_algo_by_name
      Src: /src/git/connect.c:499,1
    - Dst: die
      Src: /src/git/connect.c:501,1
    - Dst: _
      Src: /src/git/connect.c:501,1
    - Dst: packet_write_fmt
      Src: /src/git/connect.c:503,1
    - Dst: server_feature_v2
      Src: /src/git/connect.c:507,1
    - Dst: promisor_remote_reply
      Src: /src/git/connect.c:509,1
    - Dst: packet_write_fmt
      Src: /src/git/connect.c:511,1
    - Dst: free
      Src: /src/git/connect.c:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - fd_out
    - reader
    argTypes:
    - int
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 490
    functionDepth: 12
    functionLinenumber: 490
    functionLinenumberEnd: 515
    functionName: send_capabilities
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - promisor_remote_reply
    - die
    - free
    - git_user_agent_sanitized
    - _
    - server_supports_v2
    - hash_algo_by_name
    - server_feature_v2
    linkageType: ''
    returnType: void
    signature: void send_capabilities(int fd_out, struct packet_reader *reader)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ensure_server_supports_v2
      Src: /src/git/connect.c:523,1
    - Dst: send_capabilities
      Src: /src/git/connect.c:526,1
    - Dst: packet_write_fmt
      Src: /src/git/connect.c:529,1
    - Dst: packet_delim
      Src: /src/git/connect.c:530,1
    - Dst: packet_flush
      Src: /src/git/connect.c:532,1
    - Dst: packet_reader_read
      Src: /src/git/connect.c:535,1
    - Dst: bundle_uri_parse_line
      Src: /src/git/connect.c:539,1
    - Dst: error
      Src: /src/git/connect.c:542,1
    - Dst: _
      Src: /src/git/connect.c:542,1
    - Dst: error
      Src: /src/git/connect.c:547,1
    - Dst: _
      Src: /src/git/connect.c:547,1
    - Dst: check_stateless_delimiter
      Src: /src/git/connect.c:554,1
    - Dst: _
      Src: /src/git/connect.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - fd_out
    - reader
    - bundles
    - stateless_rpc
    argTypes:
    - int
    - struct packet_reader*
    - struct bundle_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 517
    functionDepth: 13
    functionLinenumber: 517
    functionLinenumberEnd: 558
    functionName: get_remote_bundle_uri
    functionSourceFile: /src/git/connect.c
    functionUses: 1
    functionsReached:
    - error
    - send_capabilities
    - packet_write_fmt
    - packet_delim
    - ensure_server_supports_v2
    - packet_flush
    - bundle_uri_parse_line
    - check_stateless_delimiter
    - _
    - packet_reader_read
    linkageType: ''
    returnType: int
    signature: "int get_remote_bundle_uri(int fd_out, struct packet_reader *reader,\n\t\t\t
      \ struct bundle_list *bundles, int stateless_rpc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ensure_server_supports_v2
      Src: /src/git/connect.c:573,1
    - Dst: packet_write_fmt
      Src: /src/git/connect.c:574,1
    - Dst: send_capabilities
      Src: /src/git/connect.c:577,1
    - Dst: ensure_server_supports_v2
      Src: /src/git/connect.c:580,1
    - Dst: packet_write_fmt
      Src: /src/git/connect.c:582,1
    - Dst: packet_delim
      Src: /src/git/connect.c:586,1
    - Dst: packet_write_fmt
      Src: /src/git/connect.c:589,1
    - Dst: packet_write_fmt
      Src: /src/git/connect.c:590,1
    - Dst: server_supports_feature
      Src: /src/git/connect.c:591,1
    - Dst: packet_write_fmt
      Src: /src/git/connect.c:592,1
    - Dst: packet_write_fmt
      Src: /src/git/connect.c:594,1
    - Dst: packet_flush
      Src: /src/git/connect.c:597,1
    - Dst: packet_reader_read
      Src: /src/git/connect.c:600,1
    - Dst: process_ref_v2
      Src: /src/git/connect.c:601,1
    - Dst: die
      Src: /src/git/connect.c:602,1
    - Dst: _
      Src: /src/git/connect.c:602,1
    - Dst: die
      Src: /src/git/connect.c:606,1
    - Dst: _
      Src: /src/git/connect.c:606,1
    - Dst: check_stateless_delimiter
      Src: /src/git/connect.c:608,1
    - Dst: _
      Src: /src/git/connect.c:609,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 560
    functionDepth: 13
    functionLinenumber: 560
    functionLinenumberEnd: 612
    functionName: get_remote_refs
    functionSourceFile: /src/git/connect.c
    functionUses: 1
    functionsReached:
    - packet_write_fmt
    - send_capabilities
    - server_supports_feature
    - die
    - packet_delim
    - ensure_server_supports_v2
    - packet_flush
    - process_ref_v2
    - check_stateless_delimiter
    - _
    - packet_reader_read
    linkageType: ''
    returnType: struct ref
    signature: "struct ref **get_remote_refs(int fd_out, struct packet_reader *reader,\n\t\t\t
      \    struct ref **list, int for_push,\n\t\t\t     struct transport_ls_refs_options
      *transport_options,\n\t\t\t     const struct string_list *server_options,\n\t\t\t
      \    int stateless_rpc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/connect.c:622,1
    - Dst: strstr
      Src: /src/git/connect.c:626,1
    - Dst: isspace
      Src: /src/git/connect.c:629,1
    - Dst: isspace
      Src: /src/git/connect.c:632,1
    - Dst: strcspn
      Src: /src/git/connect.c:644,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 4
    argNames:
    - feature_list
    - feature
    - lenp
    - offset
    argTypes:
    - char*
    - char*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 659
    functionName: parse_feature_value
    functionSourceFile: /src/git/connect.c
    functionUses: 1
    functionsReached:
    - isspace
    - strlen
    - strstr
    - strcspn
    linkageType: ''
    returnType: char
    signature: char *parse_feature_value(const char *feature_list, const char *feature,
      size_t *lenp, size_t *offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: next_server_feature_value
      Src: /src/git/connect.c:667,1
    - Dst: strlen
      Src: /src/git/connect.c:672,1
    - Dst: xstrncmpz
      Src: /src/git/connect.c:675,1
    - Dst: next_server_feature_value
      Src: /src/git/connect.c:678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - desired
    - feature_supported
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 681
    functionName: server_supports_hash
    functionSourceFile: /src/git/connect.c
    functionUses: 2
    functionsReached:
    - xstrncmpz
    - strlen
    - next_server_feature_value
    linkageType: ''
    returnType: int
    signature: int server_supports_hash(const char *desired, int *feature_supported)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_feature_value
      Src: /src/git/connect.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - feature_list
    - feature
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 686
    functionName: parse_feature_request
    functionSourceFile: /src/git/connect.c
    functionUses: 2
    functionsReached:
    - parse_feature_value
    linkageType: ''
    returnType: int
    signature: int parse_feature_request(const char *feature_list, const char *feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_feature_value
      Src: /src/git/connect.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - feature
    - len
    - offset
    argTypes:
    - char*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 691
    functionName: next_server_feature_value
    functionSourceFile: /src/git/connect.c
    functionUses: 2
    functionsReached:
    - parse_feature_value
    linkageType: ''
    returnType: char
    signature: char *next_server_feature_value(const char *feature, size_t *len, size_t
      *offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_feature_value
      Src: /src/git/connect.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - feature
    - len
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: server_feature_value
    functionSourceFile: /src/git/connect.c
    functionUses: 6
    functionsReached:
    - parse_feature_value
    linkageType: ''
    returnType: char
    signature: char *server_feature_value(const char *feature, size_t *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_feature_value
      Src: /src/git/connect.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - feature
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: server_supports
    functionSourceFile: /src/git/connect.c
    functionUses: 2
    functionsReached:
    - server_feature_value
    linkageType: ''
    returnType: int
    signature: int server_supports(const char *feature)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - enum url_scheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 716
    functionName: url_scheme_name
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *url_scheme_name(enum url_scheme scheme)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/connect.c:722,1
    - Dst: strchr
      Src: /src/git/connect.c:728,1
    - Dst: memmove
      Src: /src/git/connect.c:732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - hoststart
    - removebrackets
    argTypes:
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 740
    functionName: host_end
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - memmove
    - strchr
    - strstr
    linkageType: ''
    returnType: char
    signature: char *host_end(char **hoststart, int removebrackets)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 743
    functionName: STR_
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR_(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 744
    functionName: STR
    functionSourceFile: /src/git/connect.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: host_end
      Src: /src/git/connect.c:748,1
    - Dst: strchr
      Src: /src/git/connect.c:749,1
    - Dst: strtol
      Src: /src/git/connect.c:751,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 759
    functionName: get_host_and_port
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - strtol
    - host_end
    - strchr
    linkageType: ''
    returnType: void
    signature: void get_host_and_port(char **host, const char **port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/git/connect.c:765,1
    - Dst: error_errno
      Src: /src/git/connect.c:766,1
    - Dst: _
      Src: /src/git/connect.c:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sockfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 767
    functionName: enable_keepalive
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - error_errno
    - setsockopt
    - _
    linkageType: ''
    returnType: void
    signature: void enable_keepalive(int sockfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getnameinfo
      Src: /src/git/connect.c:774,1
    - Dst: xsnprintf
      Src: /src/git/connect.c:776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 779
    functionName: ai_name
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    - getnameinfo
    linkageType: ''
    returnType: char
    signature: char *ai_name(const struct addrinfo *ai)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STR
      Src: /src/git/connect.c:788,1
    - Dst: get_host_and_port
      Src: /src/git/connect.c:793,1
    - Dst: memset
      Src: /src/git/connect.c:797,1
    - Dst: fprintf
      Src: /src/git/connect.c:806,1
    - Dst: _
      Src: /src/git/connect.c:806,1
    - Dst: getaddrinfo
      Src: /src/git/connect.c:808,1
    - Dst: die
      Src: /src/git/connect.c:810,1
    - Dst: _
      Src: /src/git/connect.c:810,1
    - Dst: gai_strerror
      Src: /src/git/connect.c:810,1
    - Dst: fprintf
      Src: /src/git/connect.c:814,1
    - Dst: _
      Src: /src/git/connect.c:814,1
    - Dst: socket
      Src: /src/git/connect.c:817,1
    - Dst: connect
      Src: /src/git/connect.c:820,1
    - Dst: strbuf_addf
      Src: /src/git/connect.c:821,1
    - Dst: ai_name
      Src: /src/git/connect.c:822,1
    - Dst: strerror
      Src: /src/git/connect.c:822,1
    - Dst: close
      Src: /src/git/connect.c:824,1
    - Dst: fprintf
      Src: /src/git/connect.c:829,1
    - Dst: ai_name
      Src: /src/git/connect.c:829,1
    - Dst: freeaddrinfo
      Src: /src/git/connect.c:833,1
    - Dst: die
      Src: /src/git/connect.c:836,1
    - Dst: _
      Src: /src/git/connect.c:836,1
    - Dst: enable_keepalive
      Src: /src/git/connect.c:838,1
    - Dst: fprintf_ln
      Src: /src/git/connect.c:842,1
    - Dst: _
      Src: /src/git/connect.c:842,1
    - Dst: strbuf_release
      Src: /src/git/connect.c:844,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - host
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 847
    functionName: git_tcp_connect_sock
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - STR
    - get_host_and_port
    - memset
    - die
    - getaddrinfo
    - fprintf_ln
    - strbuf_release
    - enable_keepalive
    - strbuf_addf
    - strerror
    - ai_name
    - socket
    - freeaddrinfo
    - connect
    - _
    - close
    - gai_strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: int git_tcp_connect_sock(char *host, int flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STR
      Src: /src/git/connect.c:858,1
    - Dst: get_host_and_port
      Src: /src/git/connect.c:866,1
    - Dst: fprintf
      Src: /src/git/connect.c:869,1
    - Dst: _
      Src: /src/git/connect.c:869,1
    - Dst: gethostbyname
      Src: /src/git/connect.c:871,1
    - Dst: die
      Src: /src/git/connect.c:873,1
    - Dst: _
      Src: /src/git/connect.c:873,1
    - Dst: hstrerror
      Src: /src/git/connect.c:873,1
    - Dst: strtoul
      Src: /src/git/connect.c:874,1
    - Dst: getservbyname
      Src: /src/git/connect.c:877,1
    - Dst: die
      Src: /src/git/connect.c:879,1
    - Dst: _
      Src: /src/git/connect.c:879,1
    - Dst: fprintf
      Src: /src/git/connect.c:885,1
    - Dst: _
      Src: /src/git/connect.c:885,1
    - Dst: memset
      Src: /src/git/connect.c:888,1
    - Dst: htons
      Src: /src/git/connect.c:890,1
    - Dst: memcpy
      Src: /src/git/connect.c:891,1
    - Dst: socket
      Src: /src/git/connect.c:893,1
    - Dst: connect
      Src: /src/git/connect.c:895,1
    - Dst: strbuf_addf
      Src: /src/git/connect.c:896,1
    - Dst: inet_ntoa
      Src: /src/git/connect.c:899,1
    - Dst: strerror
      Src: /src/git/connect.c:900,1
    - Dst: close
      Src: /src/git/connect.c:902,1
    - Dst: fprintf
      Src: /src/git/connect.c:907,1
    - Dst: inet_ntoa
      Src: /src/git/connect.c:908,1
    - Dst: die
      Src: /src/git/connect.c:913,1
    - Dst: _
      Src: /src/git/connect.c:913,1
    - Dst: enable_keepalive
      Src: /src/git/connect.c:915,1
    - Dst: fprintf_ln
      Src: /src/git/connect.c:919,1
    - Dst: _
      Src: /src/git/connect.c:919,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - host
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 922
    functionName: git_tcp_connect_sock
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - STR
    - get_host_and_port
    - getservbyname
    - inet_ntoa
    - strbuf_addf
    - die
    - hstrerror
    - strerror
    - memcpy
    - strtoul
    - memset
    - fprintf_ln
    - enable_keepalive
    - socket
    - connect
    - _
    - gethostbyname
    - close
    - fprintf
    - htons
    linkageType: ''
    returnType: int
    signature: int git_tcp_connect_sock(char *host, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 936
    functionName: git_connection_is_socket
    functionSourceFile: /src/git/connect.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int git_connection_is_socket(struct child_process *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_tcp_connect_sock
      Src: /src/git/connect.c:940,1
    - Dst: dup
      Src: /src/git/connect.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - host
    - flags
    argTypes:
    - int[]
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 938
    functionDepth: 4
    functionLinenumber: 938
    functionLinenumberEnd: 946
    functionName: git_tcp_connect
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - dup
    - git_tcp_connect_sock
    linkageType: ''
    returnType: struct child_process
    signature: struct child_process *git_tcp_connect(int fd[2], char *host, int flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/connect.c:954,1
    - Dst: strlen
      Src: /src/git/connect.c:959,1
    - Dst: config_error_nonbool
      Src: /src/git/connect.c:964,1
    - Dst: strstr
      Src: /src/git/connect.c:971,1
    - Dst: strlen
      Src: /src/git/connect.c:974,1
    - Dst: strlen
      Src: /src/git/connect.c:976,1
    - Dst: strncmp
      Src: /src/git/connect.c:979,1
    - Dst: memcmp
      Src: /src/git/connect.c:991,1
    - Dst: xmemdupz
      Src: /src/git/connect.c:993,1
    - Dst: git_default_config
      Src: /src/git/connect.c:998,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 951
    functionDepth: 10
    functionLinenumber: 951
    functionLinenumberEnd: 999
    functionName: git_proxy_command_options
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strstr
    - strlen
    - git_default_config
    - strcmp
    - strncmp
    - config_error_nonbool
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int git_proxy_command_options(const char *var, const char *value,\n\t\tconst
      struct config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/connect.c:1003,1
    - Dst: repo_config
      Src: /src/git/connect.c:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - host
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1001
    functionDepth: 19
    functionLinenumber: 1001
    functionLinenumberEnd: 1006
    functionName: git_use_proxy
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - getenv
    - repo_config
    linkageType: ''
    returnType: int
    signature: int git_use_proxy(const char *host)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STR
      Src: /src/git/connect.c:1010,1
    - Dst: get_host_and_port
      Src: /src/git/connect.c:1013,1
    - Dst: looks_like_command_line_option
      Src: /src/git/connect.c:1015,1
    - Dst: die
      Src: /src/git/connect.c:1016,1
    - Dst: _
      Src: /src/git/connect.c:1016,1
    - Dst: looks_like_command_line_option
      Src: /src/git/connect.c:1017,1
    - Dst: die
      Src: /src/git/connect.c:1018,1
    - Dst: _
      Src: /src/git/connect.c:1018,1
    - Dst: xmalloc
      Src: /src/git/connect.c:1020,1
    - Dst: child_process_init
      Src: /src/git/connect.c:1021,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1022,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1023,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1024,1
    - Dst: start_command
      Src: /src/git/connect.c:1027,1
    - Dst: die
      Src: /src/git/connect.c:1028,1
    - Dst: _
      Src: /src/git/connect.c:1028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - fd
    - host
    argTypes:
    - int[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1008
    functionDepth: 7
    functionLinenumber: 1008
    functionLinenumberEnd: 1032
    functionName: git_proxy_connect
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - STR
    - get_host_and_port
    - strvec_push
    - die
    - child_process_init
    - looks_like_command_line_option
    - xmalloc
    - _
    - start_command
    linkageType: ''
    returnType: struct child_process
    signature: struct child_process *git_proxy_connect(int fd[2], char *host)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/connect.c:1037,1
    - Dst: strtol
      Src: /src/git/connect.c:1040,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - host
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1048
    functionName: get_port
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - strtol
    - strchr
    linkageType: ''
    returnType: char
    signature: char *get_port(char *host)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_url
      Src: /src/git/connect.c:1063,1
    - Dst: url_decode
      Src: /src/git/connect.c:1064,1
    - Dst: xstrdup
      Src: /src/git/connect.c:1066,1
    - Dst: strstr
      Src: /src/git/connect.c:1068,1
    - Dst: url_get_scheme
      Src: /src/git/connect.c:1071,1
    - Dst: die
      Src: /src/git/connect.c:1073,1
    - Dst: _
      Src: /src/git/connect.c:1073,1
    - Dst: url_is_local_not_ssh
      Src: /src/git/connect.c:1077,1
    - Dst: host_end
      Src: /src/git/connect.c:1087,1
    - Dst: has_dos_drive_prefix
      Src: /src/git/connect.c:1092,1
    - Dst: offset_1st_component
      Src: /src/git/connect.c:1093,1
    - Dst: has_dos_drive_prefix
      Src: /src/git/connect.c:1095,1
    - Dst: strchr
      Src: /src/git/connect.c:1098,1
    - Dst: die
      Src: /src/git/connect.c:1101,1
    - Dst: _
      Src: /src/git/connect.c:1101,1
    - Dst: xstrdup
      Src: /src/git/connect.c:1116,1
    - Dst: xstrdup
      Src: /src/git/connect.c:1119,1
    - Dst: free
      Src: /src/git/connect.c:1121,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - url_orig
    - ret_host
    - ret_path
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1054
    functionDepth: 3
    functionLinenumber: 1054
    functionLinenumberEnd: 1123
    functionName: parse_connect_url
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - url_get_scheme
    - die
    - strstr
    - url_is_local_not_ssh
    - strchr
    - has_dos_drive_prefix
    - free
    - host_end
    - offset_1st_component
    - _
    - is_url
    - url_decode
    - xstrdup
    linkageType: ''
    returnType: enum url_scheme
    signature: "enum url_scheme parse_connect_url(const char *url_orig, char **ret_host,\n\t\t\t\t\t
      char **ret_path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/connect.c:1129,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/connect.c:1132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1125
    functionDepth: 19
    functionLinenumber: 1125
    functionLinenumberEnd: 1136
    functionName: get_ssh_command
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - getenv
    - repo_config_get_string_tmp
    linkageType: ''
    returnType: char
    signature: char *get_ssh_command(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/connect.c:1149,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/connect.c:1151,1
    - Dst: strcmp
      Src: /src/git/connect.c:1154,1
    - Dst: strcmp
      Src: /src/git/connect.c:1156,1
    - Dst: strcmp
      Src: /src/git/connect.c:1158,1
    - Dst: strcmp
      Src: /src/git/connect.c:1160,1
    - Dst: strcmp
      Src: /src/git/connect.c:1162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ssh_variant
    argTypes:
    - enum ssh_variant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1147
    functionDepth: 19
    functionLinenumber: 1147
    functionLinenumberEnd: 1166
    functionName: override_ssh_variant
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - getenv
    - repo_config_get_string_tmp
    - strcmp
    linkageType: ''
    returnType: void
    signature: void override_ssh_variant(enum ssh_variant *ssh_variant)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: override_ssh_variant
      Src: /src/git/connect.c:1175,1
    - Dst: xstrdup
      Src: /src/git/connect.c:1181,1
    - Dst: basename
      Src: /src/git/connect.c:1182,1
    - Dst: xstrdup
      Src: /src/git/connect.c:1186,1
    - Dst: split_cmdline
      Src: /src/git/connect.c:1187,1
    - Dst: basename
      Src: /src/git/connect.c:1188,1
    - Dst: free
      Src: /src/git/connect.c:1194,1
    - Dst: free
      Src: /src/git/connect.c:1196,1
    - Dst: strcasecmp
      Src: /src/git/connect.c:1201,1
    - Dst: strcasecmp
      Src: /src/git/connect.c:1202,1
    - Dst: strcasecmp
      Src: /src/git/connect.c:1204,1
    - Dst: strcasecmp
      Src: /src/git/connect.c:1205,1
    - Dst: strcasecmp
      Src: /src/git/connect.c:1207,1
    - Dst: strcasecmp
      Src: /src/git/connect.c:1208,1
    - Dst: free
      Src: /src/git/connect.c:1211,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - ssh_command
    - is_cmdline
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1168
    functionDepth: 20
    functionLinenumber: 1168
    functionLinenumberEnd: 1213
    functionName: determine_ssh_variant
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - basename
    - split_cmdline
    - override_ssh_variant
    - free
    - xstrdup
    linkageType: ''
    returnType: enum ssh_variant
    signature: "enum ssh_variant determine_ssh_variant(const char *ssh_command,\n\t\t\t\t\t
      \     int is_cmdline)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/connect.c:1233,1
    - Dst: xstrdup
      Src: /src/git/connect.c:1235,1
    - Dst: xstrdup
      Src: /src/git/connect.c:1237,1
    - Dst: transport_check_allowed
      Src: /src/git/connect.c:1239,1
    - Dst: strchr
      Src: /src/git/connect.c:1240,1
    - Dst: strchr
      Src: /src/git/connect.c:1240,1
    - Dst: die
      Src: /src/git/connect.c:1241,1
    - Dst: _
      Src: /src/git/connect.c:1241,1
    - Dst: git_use_proxy
      Src: /src/git/connect.c:1247,1
    - Dst: git_proxy_connect
      Src: /src/git/connect.c:1248,1
    - Dst: git_tcp_connect
      Src: /src/git/connect.c:1250,1
    - Dst: strbuf_addf
      Src: /src/git/connect.c:1258,1
    - Dst: strbuf_addch
      Src: /src/git/connect.c:1265,1
    - Dst: strbuf_addf
      Src: /src/git/connect.c:1266,1
    - Dst: packet_write
      Src: /src/git/connect.c:1270,1
    - Dst: free
      Src: /src/git/connect.c:1272,1
    - Dst: strbuf_release
      Src: /src/git/connect.c:1273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - fd
    - hostandport
    - path
    - prog
    - version
    - flags
    argTypes:
    - int[]
    - char*
    - char*
    - char*
    - enum protocol_version
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1221
    functionDepth: 20
    functionLinenumber: 1221
    functionLinenumberEnd: 1275
    functionName: git_connect_git
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - git_proxy_connect
    - git_tcp_connect
    - die
    - strbuf_release
    - git_use_proxy
    - strbuf_addf
    - strchr
    - strbuf_addch
    - transport_check_allowed
    - packet_write
    - _
    - free
    - getenv
    - xstrdup
    linkageType: ''
    returnType: struct child_process
    signature: "struct child_process *git_connect_git(int fd[2], char *hostandport,\n\t\t\t\t\t
      \    const char *path, const char *prog,\n\t\t\t\t\t     enum protocol_version
      version,\n\t\t\t\t\t     int flags)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/connect.c:1287,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1288,1
    - Dst: strvec_pushf
      Src: /src/git/connect.c:1289,1
    - Dst: BUG
      Src: /src/git/connect.c:1296,1
    - Dst: die
      Src: /src/git/connect.c:1298,1
    - Dst: _
      Src: /src/git/connect.c:1298,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1303,1
    - Dst: BUG
      Src: /src/git/connect.c:1308,1
    - Dst: die
      Src: /src/git/connect.c:1310,1
    - Dst: _
      Src: /src/git/connect.c:1310,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1315,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1320,1
    - Dst: BUG
      Src: /src/git/connect.c:1325,1
    - Dst: die
      Src: /src/git/connect.c:1327,1
    - Dst: _
      Src: /src/git/connect.c:1327,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1329,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1334,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1337,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 6
    argNames:
    - args
    - env
    - variant
    - port
    - version
    - flags
    argTypes:
    - struct strvec*
    - struct strvec*
    - enum ssh_variant
    - char*
    - enum protocol_version
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1281
    functionDepth: 4
    functionLinenumber: 1281
    functionLinenumberEnd: 1339
    functionName: push_ssh_options
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - die
    - _
    - BUG
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: "void push_ssh_options(struct strvec *args, struct strvec *env,\n\t\t\t
      \    enum ssh_variant variant, const char *port,\n\t\t\t     enum protocol_version
      version, int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: looks_like_command_line_option
      Src: /src/git/connect.c:1349,1
    - Dst: die
      Src: /src/git/connect.c:1350,1
    - Dst: _
      Src: /src/git/connect.c:1350,1
    - Dst: get_ssh_command
      Src: /src/git/connect.c:1352,1
    - Dst: determine_ssh_variant
      Src: /src/git/connect.c:1354,1
    - Dst: getenv
      Src: /src/git/connect.c:1363,1
    - Dst: determine_ssh_variant
      Src: /src/git/connect.c:1366,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1375,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1376,1
    - Dst: push_ssh_options
      Src: /src/git/connect.c:1377,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1379,1
    - Dst: run_command
      Src: /src/git/connect.c:1381,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1384,1
    - Dst: push_ssh_options
      Src: /src/git/connect.c:1385,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - conn
    - ssh_host
    - port
    - version
    - flags
    argTypes:
    - struct child_process*
    - char*
    - char*
    - enum protocol_version
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1342
    functionDepth: 21
    functionLinenumber: 1342
    functionLinenumberEnd: 1388
    functionName: fill_ssh_args
    functionSourceFile: /src/git/connect.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - push_ssh_options
    - die
    - get_ssh_command
    - run_command
    - determine_ssh_variant
    - looks_like_command_line_option
    - _
    - getenv
    linkageType: ''
    returnType: void
    signature: "void fill_ssh_args(struct child_process *conn, const char *ssh_host,\n\t\t\t
      \ const char *port, enum protocol_version version,\n\t\t\t  int flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_protocol_version_config
      Src: /src/git/connect.c:1408,1
    - Dst: strcmp
      Src: /src/git/connect.c:1416,1
    - Dst: signal
      Src: /src/git/connect.c:1422,1
    - Dst: parse_connect_url
      Src: /src/git/connect.c:1424,1
    - Dst: printf
      Src: /src/git/connect.c:1426,1
    - Dst: printf
      Src: /src/git/connect.c:1427,1
    - Dst: url_scheme_name
      Src: /src/git/connect.c:1427,1
    - Dst: printf
      Src: /src/git/connect.c:1428,1
    - Dst: printf
      Src: /src/git/connect.c:1429,1
    - Dst: git_connect_git
      Src: /src/git/connect.c:1432,1
    - Dst: xmalloc
      Src: /src/git/connect.c:1438,1
    - Dst: child_process_init
      Src: /src/git/connect.c:1439,1
    - Dst: looks_like_command_line_option
      Src: /src/git/connect.c:1441,1
    - Dst: die
      Src: /src/git/connect.c:1442,1
    - Dst: _
      Src: /src/git/connect.c:1442,1
    - Dst: strbuf_addstr
      Src: /src/git/connect.c:1444,1
    - Dst: strbuf_addch
      Src: /src/git/connect.c:1445,1
    - Dst: sq_quote_buf
      Src: /src/git/connect.c:1446,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1450,1
    - Dst: transport_check_allowed
      Src: /src/git/connect.c:1457,1
    - Dst: get_host_and_port
      Src: /src/git/connect.c:1458,1
    - Dst: get_port
      Src: /src/git/connect.c:1461,1
    - Dst: printf
      Src: /src/git/connect.c:1464,1
    - Dst: printf
      Src: /src/git/connect.c:1465,1
    - Dst: url_scheme_name
      Src: /src/git/connect.c:1465,1
    - Dst: printf
      Src: /src/git/connect.c:1466,1
    - Dst: printf
      Src: /src/git/connect.c:1467,1
    - Dst: printf
      Src: /src/git/connect.c:1468,1
    - Dst: free
      Src: /src/git/connect.c:1470,1
    - Dst: free
      Src: /src/git/connect.c:1471,1
    - Dst: child_process_clear
      Src: /src/git/connect.c:1472,1
    - Dst: free
      Src: /src/git/connect.c:1473,1
    - Dst: strbuf_release
      Src: /src/git/connect.c:1474,1
    - Dst: fill_ssh_args
      Src: /src/git/connect.c:1478,1
    - Dst: transport_check_allowed
      Src: /src/git/connect.c:1480,1
    - Dst: strvec_pushf
      Src: /src/git/connect.c:1483,1
    - Dst: strvec_push
      Src: /src/git/connect.c:1488,1
    - Dst: start_command
      Src: /src/git/connect.c:1490,1
    - Dst: die
      Src: /src/git/connect.c:1491,1
    - Dst: _
      Src: /src/git/connect.c:1491,1
    - Dst: strbuf_release
      Src: /src/git/connect.c:1495,1
    - Dst: free
      Src: /src/git/connect.c:1497,1
    - Dst: free
      Src: /src/git/connect.c:1498,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 64
    argCount: 5
    argNames:
    - fd
    - url
    - name
    - prog
    - flags
    argTypes:
    - int[]
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1401
    functionDepth: 22
    functionLinenumber: 1401
    functionLinenumberEnd: 1500
    functionName: git_connect
    functionSourceFile: /src/git/connect.c
    functionUses: 2
    functionsReached:
    - strvec_push
    - get_host_and_port
    - parse_connect_url
    - xmalloc
    - strcmp
    - free
    - printf
    - strbuf_release
    - die
    - child_process_init
    - child_process_clear
    - git_connect_git
    - looks_like_command_line_option
    - transport_check_allowed
    - strbuf_addstr
    - sq_quote_buf
    - get_protocol_version_config
    - _
    - strvec_pushf
    - signal
    - url_scheme_name
    - strbuf_addch
    - fill_ssh_args
    - get_port
    - start_command
    linkageType: ''
    returnType: struct child_process
    signature: "struct child_process *git_connect(int fd[2], const char *url,\n\t\t\t\t
      \ const char *name,\n\t\t\t\t  const char *prog, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_connection_is_socket
      Src: /src/git/connect.c:1505,1
    - Dst: finish_command
      Src: /src/git/connect.c:1508,1
    - Dst: free
      Src: /src/git/connect.c:1509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1502
    functionDepth: 4
    functionLinenumber: 1502
    functionLinenumberEnd: 1511
    functionName: finish_connect
    functionSourceFile: /src/git/connect.c
    functionUses: 3
    functionsReached:
    - git_connection_is_socket
    - finish_command
    - free
    linkageType: ''
    returnType: int
    signature: int finish_connect(struct child_process *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - item
    - ','
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/string-list.h
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_string_list_item(item,list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/pack-objects.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdata
    argTypes:
    - struct packing_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: packing_data_lock
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void packing_data_lock(struct packing_data *pdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/pack-objects.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdata
    argTypes:
    - struct packing_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: packing_data_unlock
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void packing_data_unlock(struct packing_data *pdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/pack-objects.h:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: pack_name_hash
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 1
    functionsReached:
    - isspace
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pack_name_hash(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/pack-objects.h:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - name
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 250
    functionName: pack_name_hash_v2
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pack_name_hash_v2(const unsigned char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: oe_type
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum object_type
    signature: enum object_type oe_type(const struct object_entry *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-objects.h:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - e
    - type
    argTypes:
    - struct object_entry*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: oe_set_type
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: "void oe_set_type(struct object_entry *e,\n\t\t\t       enum object_type
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: oe_in_pack_pos
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int oe_in_pack_pos(const struct packing_data *pack,\n\t\t\t\t\t
      \ const struct object_entry *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pack
    - e
    - pos
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: oe_set_in_pack_pos
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void oe_set_in_pack_pos(const struct packing_data *pack,\n\t\t\t\t
      \     const struct object_entry *e,\n\t\t\t\t      unsigned int pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: oe_in_pack
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct packed_git
    signature: "struct packed_git *oe_in_pack(const struct packing_data *pack,\n\t\t\t\t\t
      \   const struct object_entry *e)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oe_map_new_pack
      Src: /src/git/pack-objects.h:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pack
    - e
    - p
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 310
    functionName: oe_set_in_pack
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 0
    functionsReached:
    - oe_map_new_pack
    linkageType: ''
    returnType: void
    signature: "void oe_set_in_pack(struct packing_data *pack,\n\t\t\t\t  struct object_entry
      *e,\n\t\t\t\t  struct packed_git *p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: oe_tree_depth
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int oe_tree_depth(struct packing_data *pack,\n\t\t\t\t\t
      struct object_entry *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/pack-objects.h:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pack
    - e
    - layer
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: oe_set_layer
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 1
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void oe_set_layer(struct packing_data *pack,\n\t\t\t\tstruct object_entry
      *e,\n\t\t\t\tunsigned char layer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: oe_cruft_mtime
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t oe_cruft_mtime(struct packing_data *pack,\n\t\t\t\t      struct
      object_entry *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/pack-objects.h:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pack
    - e
    - mtime
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: oe_set_cruft_mtime
    functionSourceFile: /src/git/pack-objects.h
    functionUses: 0
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void oe_set_cruft_mtime(struct packing_data *pack,\n\t\t\t\t      struct
      object_entry *e,\n\t\t\t\t      uint32_t mtime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/bundle-uri.c:33,1
    - Dst: container_of
      Src: /src/git/bundle-uri.c:35,1
    - Dst: strcmp
      Src: /src/git/bundle-uri.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hashmap_cmp_fn_data
    - he1
    - he2
    - id
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: compare_bundles
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int compare_bundles(const void *hashmap_cmp_fn_data UNUSED,\n\t\t\t
      \  const struct hashmap_entry *he1,\n\t\t\t   const struct hashmap_entry *he2,\n\t\t\t
      \  const void *id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/bundle-uri.c:42,1
    - Dst: hashmap_init
      Src: /src/git/bundle-uri.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct bundle_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: init_bundle_list
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 2
    functionsReached:
    - hashmap_init
    - memset
    linkageType: ''
    returnType: void
    signature: void init_bundle_list(struct bundle_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/bundle-uri.c:54,1
    - Dst: FREE_AND_NULL
      Src: /src/git/bundle-uri.c:55,1
    - Dst: FREE_AND_NULL
      Src: /src/git/bundle-uri.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - bundle
    - UNUSED
    argTypes:
    - struct remote_bundle_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: clear_remote_bundle_info
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: "int clear_remote_bundle_info(struct remote_bundle_info *bundle,\n\t\t\t\t
      \   void *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_all_bundles_in_list
      Src: /src/git/bundle-uri.c:66,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/bundle-uri.c:67,1
    - Dst: free
      Src: /src/git/bundle-uri.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct bundle_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: clear_bundle_list
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 1
    functionsReached:
    - free
    - hashmap_clear_and_free
    - for_all_bundles_in_list
    linkageType: ''
    returnType: void
    signature: void clear_bundle_list(struct bundle_list *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/bundle-uri.c:78,1
    - Dst: iter
      Src: /src/git/bundle-uri.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - list
    - iter
    - data
    argTypes:
    - struct bundle_list*
    - bundle_iterator
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: for_all_bundles_in_list
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 1
    functionsReached:
    - iter
    - hashmap_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int for_all_bundles_in_list(struct bundle_list *list,\n\t\t\t    bundle_iterator
      iter,\n\t\t\t    void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/bundle-uri.c:91,1
    - Dst: fprintf
      Src: /src/git/bundle-uri.c:93,1
    - Dst: fprintf
      Src: /src/git/bundle-uri.c:95,1
    - Dst: fprintf
      Src: /src/git/bundle-uri.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - info
    - data
    argTypes:
    - struct remote_bundle_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: summarize_bundle
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int summarize_bundle(struct remote_bundle_info *info, void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/bundle-uri.c:120,1
    - Dst: fprintf
      Src: /src/git/bundle-uri.c:121,1
    - Dst: fprintf
      Src: /src/git/bundle-uri.c:122,1
    - Dst: fprintf
      Src: /src/git/bundle-uri.c:128,1
    - Dst: for_all_bundles_in_list
      Src: /src/git/bundle-uri.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - fp
    - list
    argTypes:
    - FILE*
    - struct bundle_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 136
    functionName: print_bundle_list
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - fprintf
    - for_all_bundles_in_list
    linkageType: ''
    returnType: void
    signature: void print_bundle_list(FILE *fp, struct bundle_list *list)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/bundle-uri.c:152,1
    - Dst: strcmp
      Src: /src/git/bundle-uri.c:156,1
    - Dst: git_parse_int
      Src: /src/git/bundle-uri.c:158,1
    - Dst: strcmp
      Src: /src/git/bundle-uri.c:167,1
    - Dst: strcmp
      Src: /src/git/bundle-uri.c:168,1
    - Dst: strcmp
      Src: /src/git/bundle-uri.c:170,1
    - Dst: strcmp
      Src: /src/git/bundle-uri.c:177,1
    - Dst: strcmp
      Src: /src/git/bundle-uri.c:182,1
    - Dst: strbuf_add
      Src: /src/git/bundle-uri.c:196,1
    - Dst: hashmap_entry_init
      Src: /src/git/bundle-uri.c:203,1
    - Dst: strhash
      Src: /src/git/bundle-uri.c:203,1
    - Dst: hashmap_get_entry
      Src: /src/git/bundle-uri.c:204,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/bundle-uri.c:205,1
    - Dst: strbuf_detach
      Src: /src/git/bundle-uri.c:206,1
    - Dst: hashmap_entry_init
      Src: /src/git/bundle-uri.c:207,1
    - Dst: strhash
      Src: /src/git/bundle-uri.c:207,1
    - Dst: hashmap_add
      Src: /src/git/bundle-uri.c:208,1
    - Dst: strbuf_release
      Src: /src/git/bundle-uri.c:210,1
    - Dst: strcmp
      Src: /src/git/bundle-uri.c:212,1
    - Dst: relative_url
      Src: /src/git/bundle-uri.c:215,1
    - Dst: strcmp
      Src: /src/git/bundle-uri.c:219,1
    - Dst: sscanf
      Src: /src/git/bundle-uri.c:220,1
    - Dst: warning
      Src: /src/git/bundle-uri.c:221,1
    - Dst: _
      Src: /src/git/bundle-uri.c:221,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - key
    - value
    - list
    argTypes:
    - char*
    - char*
    - struct bundle_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 232
    functionName: bundle_list_update
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - git_parse_int
    - strhash
    - hashmap_add
    - strbuf_release
    - relative_url
    - hashmap_entry_init
    - _
    - parse_config_key
    - hashmap_get_entry
    - strbuf_detach
    - strcmp
    - CALLOC_ARRAY
    - sscanf
    - warning
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int bundle_list_update(const char *key, const char *value,\n\t\t\t
      \     struct bundle_list *list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bundle_list_update
      Src: /src/git/bundle-uri.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 6
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: config_to_bundle_list
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - bundle_list_update
    linkageType: ''
    returnType: int
    signature: "int config_to_bundle_list(const char *key, const char *value,\n\t\t\t\t
      const struct config_context *ctx UNUSED,\n\t\t\t\t void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/bundle-uri.c:253,1
    - Dst: strbuf_strip_file_from_path
      Src: /src/git/bundle-uri.c:260,1
    - Dst: strbuf_detach
      Src: /src/git/bundle-uri.c:261,1
    - Dst: git_config_from_file_with_options
      Src: /src/git/bundle-uri.c:263,1
    - Dst: warning
      Src: /src/git/bundle-uri.c:269,1
    - Dst: _
      Src: /src/git/bundle-uri.c:269,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/bundle-uri.c:277,1
    - Dst: error
      Src: /src/git/bundle-uri.c:279,1
    - Dst: _
      Src: /src/git/bundle-uri.c:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - uri
    - filename
    - list
    argTypes:
    - char*
    - char*
    - struct bundle_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 242
    functionDepth: 9
    functionLinenumber: 242
    functionLinenumberEnd: 287
    functionName: bundle_uri_parse_config_format
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - error
    - git_config_from_file_with_options
    - strbuf_strip_file_from_path
    - strbuf_detach
    - strbuf_addstr
    - _
    - warning
    - hashmap_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int bundle_uri_parse_config_format(const char *uri,\n\t\t\t\t   const
      char *filename,\n\t\t\t\t   struct bundle_list *list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_mkstemp
      Src: /src/git/bundle-uri.c:297,1
    - Dst: warning
      Src: /src/git/bundle-uri.c:300,1
    - Dst: _
      Src: /src/git/bundle-uri.c:300,1
    - Dst: close
      Src: /src/git/bundle-uri.c:304,1
    - Dst: unlink
      Src: /src/git/bundle-uri.c:305,1
    - Dst: strbuf_detach
      Src: /src/git/bundle-uri.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 289
    functionDepth: 9
    functionLinenumber: 289
    functionLinenumberEnd: 307
    functionName: find_temp_filename
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - odb_mkstemp
    - strbuf_detach
    - _
    - close
    - warning
    - unlink
    linkageType: ''
    returnType: char
    signature: char *find_temp_filename(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/git/bundle-uri.c:334,1
    - Dst: error
      Src: /src/git/bundle-uri.c:335,1
    - Dst: strchr
      Src: /src/git/bundle-uri.c:336,1
    - Dst: error
      Src: /src/git/bundle-uri.c:337,1
    - Dst: strvec_pushl
      Src: /src/git/bundle-uri.c:339,1
    - Dst: start_command
      Src: /src/git/bundle-uri.c:344,1
    - Dst: fdopen
      Src: /src/git/bundle-uri.c:347,1
    - Dst: fdopen
      Src: /src/git/bundle-uri.c:353,1
    - Dst: fprintf
      Src: /src/git/bundle-uri.c:359,1
    - Dst: fflush
      Src: /src/git/bundle-uri.c:360,1
    - Dst: strbuf_getline
      Src: /src/git/bundle-uri.c:362,1
    - Dst: strcmp
      Src: /src/git/bundle-uri.c:365,1
    - Dst: strbuf_release
      Src: /src/git/bundle-uri.c:368,1
    - Dst: error
      Src: /src/git/bundle-uri.c:371,1
    - Dst: _
      Src: /src/git/bundle-uri.c:371,1
    - Dst: fprintf
      Src: /src/git/bundle-uri.c:375,1
    - Dst: fclose
      Src: /src/git/bundle-uri.c:379,1
    - Dst: finish_command
      Src: /src/git/bundle-uri.c:380,1
    - Dst: fclose
      Src: /src/git/bundle-uri.c:383,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - file
    - uri
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 309
    functionDepth: 7
    functionLinenumber: 309
    functionLinenumberEnd: 385
    functionName: download_https_uri_to_file
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - strbuf_release
    - finish_command
    - strvec_pushl
    - _
    - strchr
    - fdopen
    - fflush
    - strcmp
    - strpbrk
    - strbuf_getline
    - fprintf
    - start_command
    linkageType: ''
    returnType: int
    signature: int download_https_uri_to_file(const char *file, const char *uri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/bundle-uri.c:391,1
    - Dst: starts_with
      Src: /src/git/bundle-uri.c:392,1
    - Dst: download_https_uri_to_file
      Src: /src/git/bundle-uri.c:393,1
    - Dst: skip_prefix
      Src: /src/git/bundle-uri.c:395,1
    - Dst: copy_file
      Src: /src/git/bundle-uri.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - filename
    - uri
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 387
    functionDepth: 8
    functionLinenumber: 387
    functionLinenumberEnd: 400
    functionName: copy_uri_to_file
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - download_https_uri_to_file
    - skip_prefix
    - copy_file
    - starts_with
    linkageType: ''
    returnType: int
    signature: int copy_uri_to_file(const char *filename, const char *uri)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fetch_pack_fsck_objects
      Src: /src/git/bundle-uri.c:412,1
    - Dst: read_bundle_header
      Src: /src/git/bundle-uri.c:415,1
    - Dst: unbundle
      Src: /src/git/bundle-uri.c:426,1
    - Dst: strbuf_addstr
      Src: /src/git/bundle-uri.c:436,1
    - Dst: for_each_string_list_item
      Src: /src/git/bundle-uri.c:439,1
    - Dst: skip_prefix
      Src: /src/git/bundle-uri.c:445,1
    - Dst: strbuf_setlen
      Src: /src/git/bundle-uri.c:448,1
    - Dst: strbuf_addstr
      Src: /src/git/bundle-uri.c:449,1
    - Dst: refs_read_ref
      Src: /src/git/bundle-uri.c:451,1
    - Dst: get_main_ref_store
      Src: /src/git/bundle-uri.c:451,1
    - Dst: refs_update_ref
      Src: /src/git/bundle-uri.c:453,1
    - Dst: get_main_ref_store
      Src: /src/git/bundle-uri.c:453,1
    - Dst: strbuf_release
      Src: /src/git/bundle-uri.c:460,1
    - Dst: bundle_header_release
      Src: /src/git/bundle-uri.c:461,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - r
    - file
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 402
    functionDepth: 9
    functionLinenumber: 402
    functionLinenumberEnd: 463
    functionName: unbundle_from_file
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - unbundle
    - for_each_string_list_item
    - strbuf_release
    - fetch_pack_fsck_objects
    - strbuf_setlen
    - refs_read_ref
    - bundle_header_release
    - read_bundle_header
    - refs_update_ref
    - strbuf_addstr
    - skip_prefix
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int unbundle_from_file(struct repository *r, const char *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fetch_bundle_uri_internal
      Src: /src/git/bundle-uri.c:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - bundle
    - data
    argTypes:
    - struct remote_bundle_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 509
    functionName: download_bundle_to_file
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - fetch_bundle_uri_internal
    linkageType: ''
    returnType: int
    signature: int download_bundle_to_file(struct remote_bundle_info *bundle, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bundle
    - data
    argTypes:
    - struct remote_bundle_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 522
    functionName: append_bundle
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int append_bundle(struct remote_bundle_info *bundle, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 538
    functionName: compare_creation_token_decreasing
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_creation_token_decreasing(const void *va, const void *vb)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_get_size
      Src: /src/git/bundle-uri.c:553,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/bundle-uri.c:556,1
    - Dst: for_all_bundles_in_list
      Src: /src/git/bundle-uri.c:558,1
    - Dst: free
      Src: /src/git/bundle-uri.c:561,1
    - Dst: QSORT
      Src: /src/git/bundle-uri.c:565,1
    - Dst: repo_config_get_value
      Src: /src/git/bundle-uri.c:572,1
    - Dst: sscanf
      Src: /src/git/bundle-uri.c:575,1
    - Dst: free
      Src: /src/git/bundle-uri.c:578,1
    - Dst: fetch_bundle_uri_internal
      Src: /src/git/bundle-uri.c:620,1
    - Dst: is_bundle
      Src: /src/git/bundle-uri.c:630,1
    - Dst: warning
      Src: /src/git/bundle-uri.c:631,1
    - Dst: _
      Src: /src/git/bundle-uri.c:631,1
    - Dst: unbundle_from_file
      Src: /src/git/bundle-uri.c:642,1
    - Dst: strbuf_addf
      Src: /src/git/bundle-uri.c:677,1
    - Dst: repo_config_set_multivar_gently
      Src: /src/git/bundle-uri.c:678,1
    - Dst: warning
      Src: /src/git/bundle-uri.c:681,1
    - Dst: _
      Src: /src/git/bundle-uri.c:681,1
    - Dst: strbuf_release
      Src: /src/git/bundle-uri.c:683,1
    - Dst: free
      Src: /src/git/bundle-uri.c:686,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - r
    - list
    argTypes:
    - struct repository*
    - struct bundle_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 540
    functionDepth: 19
    functionLinenumber: 540
    functionLinenumberEnd: 688
    functionName: fetch_bundles_by_token
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - is_bundle
    - repo_config_get_value
    - unbundle_from_file
    - for_all_bundles_in_list
    - ALLOC_ARRAY
    - strbuf_addf
    - repo_config_set_multivar_gently
    - hashmap_get_size
    - QSORT
    - fetch_bundle_uri_internal
    - free
    - sscanf
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: "int fetch_bundles_by_token(struct repository *r,\n\t\t\t\t  struct
      bundle_list *list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_all_bundles_in_list
      Src: /src/git/bundle-uri.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - local_list
    - global_list
    - depth
    argTypes:
    - struct repository*
    - struct bundle_list*
    - struct bundle_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 703
    functionName: download_bundle_list
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - for_all_bundles_in_list
    linkageType: ''
    returnType: int
    signature: "int download_bundle_list(struct repository *r,\n\t\t\t\tstruct bundle_list
      *local_list,\n\t\t\t\tstruct bundle_list *global_list,\n\t\t\t\tint depth)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_bundle_list
      Src: /src/git/bundle-uri.c:713,1
    - Dst: bundle_uri_parse_config_format
      Src: /src/git/bundle-uri.c:715,1
    - Dst: warning
      Src: /src/git/bundle-uri.c:721,1
    - Dst: _
      Src: /src/git/bundle-uri.c:721,1
    - Dst: fetch_bundles_by_token
      Src: /src/git/bundle-uri.c:733,1
    - Dst: download_bundle_list
      Src: /src/git/bundle-uri.c:735,1
    - Dst: clear_bundle_list
      Src: /src/git/bundle-uri.c:740,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - r
    - global_list
    - bundle
    - depth
    argTypes:
    - struct repository*
    - struct bundle_list*
    - struct remote_bundle_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 705
    functionDepth: 20
    functionLinenumber: 705
    functionLinenumberEnd: 742
    functionName: fetch_bundle_list_in_config_format
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - download_bundle_list
    - fetch_bundles_by_token
    - init_bundle_list
    - _
    - bundle_uri_parse_config_format
    - warning
    - clear_bundle_list
    linkageType: ''
    returnType: int
    signature: "int fetch_bundle_list_in_config_format(struct repository *r,\n\t\t\t\t\t
      \     struct bundle_list *global_list,\n\t\t\t\t\t      struct remote_bundle_info
      *bundle,\n\t\t\t\t\t      int depth)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/bundle-uri.c:765,1
    - Dst: _
      Src: /src/git/bundle-uri.c:765,1
    - Dst: error
      Src: /src/git/bundle-uri.c:771,1
    - Dst: _
      Src: /src/git/bundle-uri.c:771,1
    - Dst: find_temp_filename
      Src: /src/git/bundle-uri.c:777,1
    - Dst: copy_uri_to_file
      Src: /src/git/bundle-uri.c:782,1
    - Dst: warning
      Src: /src/git/bundle-uri.c:783,1
    - Dst: _
      Src: /src/git/bundle-uri.c:783,1
    - Dst: is_bundle
      Src: /src/git/bundle-uri.c:787,1
    - Dst: fetch_bundle_list_in_config_format
      Src: /src/git/bundle-uri.c:788,1
    - Dst: warning
      Src: /src/git/bundle-uri.c:791,1
    - Dst: _
      Src: /src/git/bundle-uri.c:791,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/bundle-uri.c:797,1
    - Dst: xstrdup
      Src: /src/git/bundle-uri.c:798,1
    - Dst: xstrdup
      Src: /src/git/bundle-uri.c:799,1
    - Dst: hashmap_entry_init
      Src: /src/git/bundle-uri.c:800,1
    - Dst: strhash
      Src: /src/git/bundle-uri.c:800,1
    - Dst: hashmap_add
      Src: /src/git/bundle-uri.c:801,1
    - Dst: unlink
      Src: /src/git/bundle-uri.c:805,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - r
    - bundle
    - depth
    - list
    argTypes:
    - struct repository*
    - struct remote_bundle_info*
    - int
    - struct bundle_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 756
    functionDepth: 21
    functionLinenumber: 756
    functionLinenumberEnd: 807
    functionName: fetch_bundle_uri_internal
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 2
    functionsReached:
    - error
    - find_temp_filename
    - strhash
    - hashmap_add
    - is_bundle
    - unlink
    - hashmap_entry_init
    - _
    - CALLOC_ARRAY
    - copy_uri_to_file
    - warning
    - fetch_bundle_list_in_config_format
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int fetch_bundle_uri_internal(struct repository *r,\n\t\t\t\t     struct
      remote_bundle_info *bundle,\n\t\t\t\t     int depth,\n\t\t\t\t     struct bundle_list
      *list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unbundle_from_file
      Src: /src/git/bundle-uri.c:820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - info
    - data
    argTypes:
    - struct remote_bundle_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 813
    functionDepth: 10
    functionLinenumber: 813
    functionLinenumberEnd: 826
    functionName: attempt_unbundle
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - unbundle_from_file
    linkageType: ''
    returnType: int
    signature: int attempt_unbundle(struct remote_bundle_info *info, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_all_bundles_in_list
      Src: /src/git/bundle-uri.c:840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - list
    argTypes:
    - struct repository*
    - struct bundle_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 843
    functionName: unbundle_all_bundles
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - for_all_bundles_in_list
    linkageType: ''
    returnType: int
    signature: "int unbundle_all_bundles(struct repository *r,\n\t\t\t\tstruct bundle_list
      *list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink_or_warn
      Src: /src/git/bundle-uri.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - info
    - UNUSED
    argTypes:
    - struct remote_bundle_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 3
    functionLinenumber: 845
    functionLinenumberEnd: 850
    functionName: unlink_bundle
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - unlink_or_warn
    linkageType: ''
    returnType: int
    signature: int unlink_bundle(struct remote_bundle_info *info, void *data UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/bundle-uri.c:858,1
    - Dst: xstrdup
      Src: /src/git/bundle-uri.c:859,1
    - Dst: trace2_region_enter
      Src: /src/git/bundle-uri.c:862,1
    - Dst: init_bundle_list
      Src: /src/git/bundle-uri.c:864,1
    - Dst: fetch_bundle_uri_internal
      Src: /src/git/bundle-uri.c:878,1
    - Dst: unbundle_all_bundles
      Src: /src/git/bundle-uri.c:881,1
    - Dst: for_all_bundles_in_list
      Src: /src/git/bundle-uri.c:886,1
    - Dst: clear_bundle_list
      Src: /src/git/bundle-uri.c:887,1
    - Dst: clear_remote_bundle_info
      Src: /src/git/bundle-uri.c:888,1
    - Dst: trace2_region_leave
      Src: /src/git/bundle-uri.c:889,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - r
    - uri
    - has_heuristic
    argTypes:
    - struct repository*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 852
    functionDepth: 22
    functionLinenumber: 852
    functionLinenumberEnd: 891
    functionName: fetch_bundle_uri
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - unbundle_all_bundles
    - clear_remote_bundle_info
    - for_all_bundles_in_list
    - trace2_region_leave
    - trace2_region_enter
    - init_bundle_list
    - fetch_bundle_uri_internal
    - clear_bundle_list
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int fetch_bundle_uri(struct repository *r, const char *uri,\n\t\t
      \    int *has_heuristic)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fetch_bundles_by_token
      Src: /src/git/bundle-uri.c:904,1
    - Dst: init_bundle_list
      Src: /src/git/bundle-uri.c:906,1
    - Dst: download_bundle_list
      Src: /src/git/bundle-uri.c:911,1
    - Dst: fetch_bundles_by_token
      Src: /src/git/bundle-uri.c:915,1
    - Dst: unbundle_all_bundles
      Src: /src/git/bundle-uri.c:917,1
    - Dst: for_all_bundles_in_list
      Src: /src/git/bundle-uri.c:920,1
    - Dst: clear_bundle_list
      Src: /src/git/bundle-uri.c:921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - r
    - list
    argTypes:
    - struct repository*
    - struct bundle_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 893
    functionDepth: 20
    functionLinenumber: 893
    functionLinenumberEnd: 923
    functionName: fetch_bundle_list
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - download_bundle_list
    - unbundle_all_bundles
    - fetch_bundles_by_token
    - for_all_bundles_in_list
    - init_bundle_list
    - clear_bundle_list
    linkageType: ''
    returnType: int
    signature: int fetch_bundle_list(struct repository *r, struct bundle_list *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_maybe_bool
      Src: /src/git/bundle-uri.c:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - r
    - UNUSED
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 929
    functionDepth: 19
    functionLinenumber: 929
    functionLinenumberEnd: 941
    functionName: bundle_uri_advertise
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - repo_config_get_maybe_bool
    linkageType: ''
    returnType: int
    signature: int bundle_uri_advertise(struct repository *r, struct strbuf *value
      UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/bundle-uri.c:949,1
    - Dst: packet_write_fmt
      Src: /src/git/bundle-uri.c:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 943
    functionDepth: 7
    functionLinenumber: 943
    functionLinenumberEnd: 953
    functionName: config_to_packet_line
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - starts_with
    linkageType: ''
    returnType: int
    signature: "int config_to_packet_line(const char *key, const char *value,\n\t\t\t\t
      const struct config_context *ctx UNUSED,\n\t\t\t\t void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_writer_init
      Src: /src/git/bundle-uri.c:959,1
    - Dst: packet_reader_read
      Src: /src/git/bundle-uri.c:961,1
    - Dst: die
      Src: /src/git/bundle-uri.c:962,1
    - Dst: _
      Src: /src/git/bundle-uri.c:962,1
    - Dst: die
      Src: /src/git/bundle-uri.c:964,1
    - Dst: _
      Src: /src/git/bundle-uri.c:964,1
    - Dst: repo_config
      Src: /src/git/bundle-uri.c:970,1
    - Dst: packet_writer_flush
      Src: /src/git/bundle-uri.c:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - r
    - request
    argTypes:
    - struct repository*
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 955
    functionDepth: 19
    functionLinenumber: 955
    functionLinenumberEnd: 975
    functionName: bundle_uri_command
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 0
    functionsReached:
    - packet_writer_init
    - die
    - packet_writer_flush
    - _
    - repo_config
    - packet_reader_read
    linkageType: ''
    returnType: int
    signature: "int bundle_uri_command(struct repository *r,\n\t\t       struct packet_reader
      *request)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/bundle-uri.c:986,1
    - Dst: error
      Src: /src/git/bundle-uri.c:987,1
    - Dst: _
      Src: /src/git/bundle-uri.c:987,1
    - Dst: strchr
      Src: /src/git/bundle-uri.c:989,1
    - Dst: error
      Src: /src/git/bundle-uri.c:992,1
    - Dst: _
      Src: /src/git/bundle-uri.c:992,1
    - Dst: error
      Src: /src/git/bundle-uri.c:994,1
    - Dst: _
      Src: /src/git/bundle-uri.c:994,1
    - Dst: strbuf_add
      Src: /src/git/bundle-uri.c:996,1
    - Dst: bundle_list_update
      Src: /src/git/bundle-uri.c:997,1
    - Dst: strbuf_release
      Src: /src/git/bundle-uri.c:998,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - list
    - line
    argTypes:
    - struct bundle_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 980
    functionDepth: 6
    functionLinenumber: 980
    functionLinenumberEnd: 1001
    functionName: bundle_uri_parse_line
    functionSourceFile: /src/git/bundle-uri.c
    functionUses: 1
    functionsReached:
    - error
    - strbuf_release
    - strchr
    - strlen
    - bundle_list_update
    - _
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int bundle_uri_parse_line(struct bundle_list *list, const char *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/usage.c:16,1
    - Dst: fprintf
      Src: /src/git/usage.c:19,1
    - Dst: abort
      Src: /src/git/usage.c:20,1
    - Dst: memcpy
      Src: /src/git/usage.c:22,1
    - Dst: vsnprintf
      Src: /src/git/usage.c:24,1
    - Dst: fprintf
      Src: /src/git/usage.c:25,1
    - Dst: _
      Src: /src/git/usage.c:25,1
    - Dst: iscntrl
      Src: /src/git/usage.c:31,1
    - Dst: fflush
      Src: /src/git/usage.c:36,1
    - Dst: write_in_full
      Src: /src/git/usage.c:37,1
    - Dst: fileno
      Src: /src/git/usage.c:37,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - f
    - prefix
    - err
    - params
    argTypes:
    - FILE*
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 12
    functionDepth: 4
    functionLinenumber: 12
    functionLinenumberEnd: 38
    functionName: vfreportf
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - abort
    - fileno
    - iscntrl
    - memcpy
    - strlen
    - fflush
    - _
    - write_in_full
    - vsnprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void vfreportf(FILE *f, const char *prefix, const char *err, va_list
      params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vfreportf
      Src: /src/git/usage.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prefix
    - err
    - params
    argTypes:
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: vreportf
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - vfreportf
    linkageType: ''
    returnType: void
    signature: void vreportf(const char *prefix, const char *err, va_list params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreportf
      Src: /src/git/usage.c:47,1
    - Dst: _
      Src: /src/git/usage.c:47,1
    - Dst: trace2_cmd_name
      Src: /src/git/usage.c:54,1
    - Dst: exit
      Src: /src/git/usage.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - err
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 67
    functionName: usage_builtin
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - trace2_cmd_name
    - vreportf
    - exit
    - _
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN usage_builtin(const char *err, va_list params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace2_cmd_error_va
      Src: /src/git/usage.c:73,1
    - Dst: vreportf
      Src: /src/git/usage.c:74,1
    - Dst: _
      Src: /src/git/usage.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - err
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 6
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: die_message_builtin
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - vreportf
    - trace2_cmd_error_va
    - _
    linkageType: ''
    returnType: void
    signature: void die_message_builtin(const char *err, va_list params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_die_message_routine
      Src: /src/git/usage.c:84,1
    - Dst: die_message_fn
      Src: /src/git/usage.c:86,1
    - Dst: exit
      Src: /src/git/usage.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - err
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: die_builtin
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - die_message_fn
    - get_die_message_routine
    - exit
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN die_builtin(const char *err, va_list params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_cmd_error_va
      Src: /src/git/usage.c:92,1
    - Dst: vreportf
      Src: /src/git/usage.c:94,1
    - Dst: _
      Src: /src/git/usage.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - err
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: error_builtin
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - vreportf
    - trace2_cmd_error_va
    - _
    linkageType: ''
    returnType: void
    signature: void error_builtin(const char *err, va_list params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_cmd_error_va
      Src: /src/git/usage.c:99,1
    - Dst: vreportf
      Src: /src/git/usage.c:101,1
    - Dst: _
      Src: /src/git/usage.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - warn
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 6
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: warn_builtin
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - vreportf
    - trace2_cmd_error_va
    - _
    linkageType: ''
    returnType: void
    signature: void warn_builtin(const char *warn, va_list params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/usage.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 124
    functionName: die_is_recursing_builtin
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - warning
    linkageType: ''
    returnType: int
    signature: int die_is_recursing_builtin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - report_fn
    argTypes:
    - NORETURN_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: set_die_routine
    functionSourceFile: /src/git/usage.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_die_routine(NORETURN_PTR report_fn routine)
  - 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: get_die_message_routine
    functionSourceFile: /src/git/usage.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: report_fn
    signature: report_fn get_die_message_routine(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - routine
    argTypes:
    - report_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: set_error_routine
    functionSourceFile: /src/git/usage.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_error_routine(report_fn routine)
  - 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: get_error_routine
    functionSourceFile: /src/git/usage.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: report_fn
    signature: report_fn get_error_routine(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - routine
    argTypes:
    - report_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: set_warn_routine
    functionSourceFile: /src/git/usage.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_warn_routine(report_fn routine)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: get_warn_routine
    functionSourceFile: /src/git/usage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: report_fn
    signature: report_fn get_warn_routine(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: set_die_is_recursing_routine
    functionSourceFile: /src/git/usage.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_die_is_recursing_routine(int (*routine)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/usage.c:174,1
    - Dst: usage_routine
      Src: /src/git/usage.c:175,1
    - Dst: va_end
      Src: /src/git/usage.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: usagef
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - usage_routine
    linkageType: ''
    returnType: void
    signature: void usagef(const char *err, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: usagef
      Src: /src/git/usage.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: usage
    functionSourceFile: /src/git/usage.c
    functionUses: 4
    functionsReached:
    - usagef
    linkageType: ''
    returnType: void
    signature: void usage(const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/usage.c:188,1
    - Dst: vfreportf
      Src: /src/git/usage.c:189,1
    - Dst: _
      Src: /src/git/usage.c:189,1
    - Dst: va_end
      Src: /src/git/usage.c:190,1
    - Dst: exit
      Src: /src/git/usage.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 5
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: show_usage_if_asked_helper
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - vfreportf
    - exit
    - va_end
    - _
    - va_start
    linkageType: ''
    returnType: void
    signature: void show_usage_if_asked_helper(const char *err, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/usage.c:196,1
    - Dst: strcmp
      Src: /src/git/usage.c:197,1
    - Dst: show_usage_if_asked_helper
      Src: /src/git/usage.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - ac
    - av
    - err
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 6
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: show_usage_if_asked
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - show_usage_if_asked_helper
    - strcmp
    linkageType: ''
    returnType: void
    signature: void show_usage_if_asked(int ac, const char **av, const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die_is_recursing
      Src: /src/git/usage.c:205,1
    - Dst: fputs
      Src: /src/git/usage.c:206,1
    - Dst: exit
      Src: /src/git/usage.c:207,1
    - Dst: va_start
      Src: /src/git/usage.c:210,1
    - Dst: die_routine
      Src: /src/git/usage.c:211,1
    - Dst: va_end
      Src: /src/git/usage.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 213
    functionName: die
    functionSourceFile: /src/git/usage.c
    functionUses: 550
    functionsReached:
    - die_is_recursing
    - fputs
    - exit
    - va_end
    - die_routine
    - va_start
    linkageType: ''
    returnType: void
    signature: void die(const char *err, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/git/usage.c:220,1
    - Dst: snprintf
      Src: /src/git/usage.c:235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - n
    - fmt
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 237
    functionName: fmt_with_err
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strerror
    linkageType: ''
    returnType: char
    signature: char *fmt_with_err(char *buf, int n, const char *fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die_is_recursing
      Src: /src/git/usage.c:244,1
    - Dst: fputs
      Src: /src/git/usage.c:245,1
    - Dst: exit
      Src: /src/git/usage.c:247,1
    - Dst: va_start
      Src: /src/git/usage.c:250,1
    - Dst: die_routine
      Src: /src/git/usage.c:251,1
    - Dst: fmt_with_err
      Src: /src/git/usage.c:251,1
    - Dst: va_end
      Src: /src/git/usage.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 253
    functionName: die_errno
    functionSourceFile: /src/git/usage.c
    functionUses: 87
    functionsReached:
    - die_is_recursing
    - fputs
    - exit
    - fmt_with_err
    - va_end
    - die_routine
    - va_start
    linkageType: ''
    returnType: void
    signature: void die_errno(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/usage.c:260,1
    - Dst: die_message_routine
      Src: /src/git/usage.c:261,1
    - Dst: va_end
      Src: /src/git/usage.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: die_message
    functionSourceFile: /src/git/usage.c
    functionUses: 5
    functionsReached:
    - va_end
    - va_start
    - die_message_routine
    linkageType: ''
    returnType: int
    signature: int die_message(const char *err, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/usage.c:272,1
    - Dst: die_message_routine
      Src: /src/git/usage.c:273,1
    - Dst: fmt_with_err
      Src: /src/git/usage.c:273,1
    - Dst: va_end
      Src: /src/git/usage.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: die_message_errno
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - die_message_routine
    - fmt_with_err
    linkageType: ''
    returnType: int
    signature: int die_message_errno(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/usage.c:284,1
    - Dst: error_routine
      Src: /src/git/usage.c:285,1
    - Dst: fmt_with_err
      Src: /src/git/usage.c:285,1
    - Dst: va_end
      Src: /src/git/usage.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 288
    functionName: error_errno
    functionSourceFile: /src/git/usage.c
    functionUses: 89
    functionsReached:
    - va_end
    - va_start
    - fmt_with_err
    - error_routine
    linkageType: ''
    returnType: int
    signature: int error_errno(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/usage.c:295,1
    - Dst: error_routine
      Src: /src/git/usage.c:296,1
    - Dst: va_end
      Src: /src/git/usage.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: error
    functionSourceFile: /src/git/usage.c
    functionUses: 506
    functionsReached:
    - va_end
    - va_start
    - error_routine
    linkageType: ''
    returnType: int
    signature: int error(const char *err, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/usage.c:306,1
    - Dst: warn_routine
      Src: /src/git/usage.c:307,1
    - Dst: fmt_with_err
      Src: /src/git/usage.c:307,1
    - Dst: va_end
      Src: /src/git/usage.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - warn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: warning_errno
    functionSourceFile: /src/git/usage.c
    functionUses: 20
    functionsReached:
    - va_end
    - va_start
    - warn_routine
    - fmt_with_err
    linkageType: ''
    returnType: void
    signature: void warning_errno(const char *warn, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/usage.c:315,1
    - Dst: warn_routine
      Src: /src/git/usage.c:316,1
    - Dst: va_end
      Src: /src/git/usage.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - warn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: warning
    functionSourceFile: /src/git/usage.c
    functionUses: 166
    functionsReached:
    - va_end
    - va_start
    - warn_routine
    linkageType: ''
    returnType: void
    signature: void warning(const char *warn, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/git/usage.c:329,1
    - Dst: vreportf
      Src: /src/git/usage.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - params
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 6
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: BUG_vfl_common
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - snprintf
    - vreportf
    linkageType: ''
    returnType: void
    signature: "void BUG_vfl_common(const char *file, int line, const char *fmt,\n\t\t\t
      \  va_list params)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/git/usage.c:339,1
    - Dst: BUG_vfl_common
      Src: /src/git/usage.c:340,1
    - Dst: abort
      Src: /src/git/usage.c:343,1
    - Dst: trace2_cmd_error_va
      Src: /src/git/usage.c:346,1
    - Dst: exit
      Src: /src/git/usage.c:349,1
    - Dst: abort
      Src: /src/git/usage.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - params
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 334
    functionDepth: 7
    functionLinenumber: 334
    functionLinenumberEnd: 351
    functionName: BUG_vfl
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - va_copy
    - abort
    - exit
    - BUG_vfl_common
    - trace2_cmd_error_va
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN BUG_vfl(const char *file, int line, const char *fmt, va_list
      params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/usage.c:359,1
    - Dst: BUG_vfl
      Src: /src/git/usage.c:360,1
    - Dst: va_end
      Src: /src/git/usage.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - line
    - fmt
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 8
    functionLinenumber: 353
    functionLinenumberEnd: 362
    functionName: BUG_fl
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - BUG_vfl
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN BUG_fl(const char *file, int line, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/usage.c:371,1
    - Dst: BUG_vfl_common
      Src: /src/git/usage.c:372,1
    - Dst: va_end
      Src: /src/git/usage.c:373,1
    - Dst: va_start
      Src: /src/git/usage.c:375,1
    - Dst: trace2_cmd_error_va
      Src: /src/git/usage.c:376,1
    - Dst: va_end
      Src: /src/git/usage.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - file
    - line
    - fmt
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 365
    functionDepth: 7
    functionLinenumber: 365
    functionLinenumberEnd: 378
    functionName: bug_fl
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - trace2_cmd_error_va
    - BUG_vfl_common
    linkageType: ''
    returnType: void
    signature: void bug_fl(const char *file, int line, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_percentencode
      Src: /src/git/usage.c:384,1
    - Dst: fprintf
      Src: /src/git/usage.c:388,1
    - Dst: _
      Src: /src/git/usage.c:389,1
    - Dst: fputs
      Src: /src/git/usage.c:392,1
    - Dst: fprintf
      Src: /src/git/usage.c:394,1
    - Dst: _
      Src: /src/git/usage.c:395,1
    - Dst: strbuf_release
      Src: /src/git/usage.c:406,1
    - Dst: die
      Src: /src/git/usage.c:407,1
    - Dst: _
      Src: /src/git/usage.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - command_name
    - hint
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 408
    functionName: you_still_use_that
    functionSourceFile: /src/git/usage.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fputs
    - die
    - strbuf_add_percentencode
    - _
    - fprintf
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN you_still_use_that(const char *command_name, const char *hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/grep.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - UNUSED
    - buf
    - size
    argTypes:
    - struct grep_opt*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: std_output
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: void
    signature: void std_output(struct grep_opt *opt UNUSED, const void *buf, size_t
      size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/grep.c:40,1
    - Dst: strcmp
      Src: /src/git/grep.c:42,1
    - Dst: strcmp
      Src: /src/git/grep.c:44,1
    - Dst: strcmp
      Src: /src/git/grep.c:46,1
    - Dst: strcmp
      Src: /src/git/grep.c:48,1
    - Dst: die
      Src: /src/git/grep.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - opt
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: parse_pattern_type_arg
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - die
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_pattern_type_arg(const char *opt, const char *arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: userdiff_config
      Src: /src/git/grep.c:65,1
    - Dst: strcmp
      Src: /src/git/grep.c:68,1
    - Dst: git_config_bool
      Src: /src/git/grep.c:69,1
    - Dst: strcmp
      Src: /src/git/grep.c:73,1
    - Dst: parse_pattern_type_arg
      Src: /src/git/grep.c:74,1
    - Dst: strcmp
      Src: /src/git/grep.c:78,1
    - Dst: git_config_bool
      Src: /src/git/grep.c:79,1
    - Dst: strcmp
      Src: /src/git/grep.c:82,1
    - Dst: git_config_bool
      Src: /src/git/grep.c:83,1
    - Dst: strcmp
      Src: /src/git/grep.c:87,1
    - Dst: git_config_bool
      Src: /src/git/grep.c:88,1
    - Dst: strcmp
      Src: /src/git/grep.c:92,1
    - Dst: git_config_colorbool
      Src: /src/git/grep.c:93,1
    - Dst: strcmp
      Src: /src/git/grep.c:94,1
    - Dst: grep_config
      Src: /src/git/grep.c:95,1
    - Dst: grep_config
      Src: /src/git/grep.c:97,1
    - Dst: skip_prefix
      Src: /src/git/grep.c:99,1
    - Dst: LOOKUP_CONFIG
      Src: /src/git/grep.c:100,1
    - Dst: config_error_nonbool
      Src: /src/git/grep.c:107,1
    - Dst: color_parse
      Src: /src/git/grep.c:108,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 111
    functionName: grep_config
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - git_config_colorbool
    - grep_config
    - userdiff_config
    - parse_pattern_type_arg
    - color_parse
    - strcmp
    - git_config_bool
    - LOOKUP_CONFIG
    - skip_prefix
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int grep_config(const char *var, const char *value,\n\t\tconst struct
      config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/grep.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - opt
    - repo
    argTypes:
    - struct grep_opt*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: grep_init
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void grep_init(struct grep_opt *opt, struct repository *repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/grep.c:128,1
    - Dst: xmemdupz
      Src: /src/git/grep.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - pat
    - patlen
    - origin
    - 'no'
    - t
    - field
    argTypes:
    - char*
    - size_t
    - char*
    - int
    - enum grep_pat_token
    - enum grep_header_field
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 10
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: create_grep_pat
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - xcalloc
    linkageType: ''
    returnType: struct grep_pat
    signature: "struct grep_pat *create_grep_pat(const char *pat, size_t patlen,\n\t\t\t\t\tconst
      char *origin, int no,\n\t\t\t\t\tenum grep_pat_token t,\n\t\t\t\t\tenum grep_header_field
      field)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: create_grep_pat
      Src: /src/git/grep.c:160,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - tail
    - p
    argTypes:
    - struct grep_pat***
    - struct grep_pat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 138
    functionDepth: 11
    functionLinenumber: 138
    functionLinenumberEnd: 173
    functionName: do_append_grep_pat
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - create_grep_pat
    linkageType: ''
    returnType: void
    signature: void do_append_grep_pat(struct grep_pat ***tail, struct grep_pat *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_grep_pat
      Src: /src/git/grep.c:178,1
    - Dst: strlen
      Src: /src/git/grep.c:178,1
    - Dst: do_append_grep_pat
      Src: /src/git/grep.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - field
    - pat
    argTypes:
    - struct grep_opt*
    - enum grep_header_field
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 12
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: append_header_grep_pattern
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - strlen
    - create_grep_pat
    - do_append_grep_pat
    linkageType: ''
    returnType: void
    signature: "void append_header_grep_pattern(struct grep_opt *opt,\n\t\t\t\tenum
      grep_header_field field, const char *pat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_grep_pat
      Src: /src/git/grep.c:188,1
    - Dst: strlen
      Src: /src/git/grep.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - opt
    - pat
    - origin
    - 'no'
    - t
    argTypes:
    - struct grep_opt*
    - char*
    - char*
    - int
    - enum grep_pat_token
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: append_grep_pattern
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - strlen
    - append_grep_pat
    linkageType: ''
    returnType: void
    signature: "void append_grep_pattern(struct grep_opt *opt, const char *pat,\n\t\t\t
      const char *origin, int no, enum grep_pat_token t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_grep_pat
      Src: /src/git/grep.c:194,1
    - Dst: do_append_grep_pat
      Src: /src/git/grep.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - opt
    - pat
    - patlen
    - origin
    - 'no'
    - t
    argTypes:
    - struct grep_opt*
    - char*
    - size_t
    - char*
    - int
    - enum grep_pat_token
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 12
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: append_grep_pat
    functionSourceFile: /src/git/grep.c
    functionUses: 3
    functionsReached:
    - create_grep_pat
    - do_append_grep_pat
    linkageType: ''
    returnType: void
    signature: "void append_grep_pat(struct grep_opt *opt, const char *pat, size_t
      patlen,\n\t\t     const char *origin, int no, enum grep_pat_token t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/grep.c:201,1
    - Dst: append_header_grep_pattern
      Src: /src/git/grep.c:210,1
    - Dst: append_grep_pat
      Src: /src/git/grep.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct grep_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 198
    functionDepth: 13
    functionLinenumber: 198
    functionLinenumberEnd: 218
    functionName: grep_opt_dup
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - append_header_grep_pattern
    - xmalloc
    - append_grep_pat
    linkageType: ''
    returnType: struct grep_opt
    signature: struct grep_opt *grep_opt_dup(const struct grep_opt *opt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/grep.c:226,1
    - Dst: xsnprintf
      Src: /src/git/grep.c:228,1
    - Dst: die
      Src: /src/git/grep.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - error
    argTypes:
    - struct grep_pat*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: compile_regexp_failed
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - die
    - xsnprintf
    linkageType: ''
    returnType: NORETURN
    signature: "NORETURN compile_regexp_failed(const struct grep_pat *p,\n\t\tconst
      char *error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_regex_special
      Src: /src/git/grep.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: is_fixed
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - is_regex_special
    linkageType: ''
    returnType: int
    signature: int is_fixed(const char *s, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/git/grep.c:252,1
    - Dst: fprintf
      Src: /src/git/grep.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - memory_data
    argTypes:
    - PCRE2_SIZE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: pcre2_malloc
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - malloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void *pcre2_malloc(PCRE2_SIZE size, void *memory_data UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/grep.c:265,1
    - Dst: free
      Src: /src/git/grep.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pointer
    - memory_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: pcre2_free
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - fprintf
    - free
    linkageType: ''
    returnType: void
    signature: void pcre2_free(void *pointer, void *memory_data UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_compile
      Src: /src/git/grep.c:285,1
    - Dst: pcre2_jit_compile
      Src: /src/git/grep.c:289,1
    - Dst: pcre2_code_free
      Src: /src/git/grep.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 293
    functionName: pcre2_jit_functional
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - pcre2_code_free
    - pcre2_compile
    - pcre2_jit_compile
    linkageType: ''
    returnType: int
    signature: int pcre2_jit_functional(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_general_context_create
      Src: /src/git/grep.c:311,1
    - Dst: die
      Src: /src/git/grep.c:314,1
    - Dst: has_non_ascii
      Src: /src/git/grep.c:317,1
    - Dst: pcre2_maketables
      Src: /src/git/grep.c:318,1
    - Dst: pcre2_compile_context_create
      Src: /src/git/grep.c:319,1
    - Dst: pcre2_set_character_tables
      Src: /src/git/grep.c:320,1
    - Dst: is_utf8_locale
      Src: /src/git/grep.c:325,1
    - Dst: pcre2_compile
      Src: /src/git/grep.c:343,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/git/grep.c:348,1
    - Dst: die
      Src: /src/git/grep.c:350,1
    - Dst: pcre2_get_error_message
      Src: /src/git/grep.c:352,1
    - Dst: compile_regexp_failed
      Src: /src/git/grep.c:353,1
    - Dst: pcre2_config
      Src: /src/git/grep.c:356,1
    - Dst: pcre2_jit_compile
      Src: /src/git/grep.c:358,1
    - Dst: pcre2_jit_functional
      Src: /src/git/grep.c:359,1
    - Dst: die
      Src: /src/git/grep.c:376,1
    - Dst: pcre2_jit_functional
      Src: /src/git/grep.c:378,1
    - Dst: pcre2_pattern_info
      Src: /src/git/grep.c:398,1
    - Dst: BUG
      Src: /src/git/grep.c:400,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 2
    argNames:
    - p
    - opt
    argTypes:
    - struct grep_pat*
    - struct grep_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 406
    functionName: compile_pcre2_pattern
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - has_non_ascii
    - pcre2_compile_context_create
    - pcre2_general_context_create
    - pcre2_config
    - die
    - pcre2_maketables
    - pcre2_set_character_tables
    - BUG
    - is_utf8_locale
    - pcre2_match_data_create_from_pattern
    - pcre2_pattern_info
    - pcre2_compile
    - pcre2_jit_compile
    - pcre2_get_error_message
    - compile_regexp_failed
    - pcre2_jit_functional
    linkageType: ''
    returnType: void
    signature: void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt
      *opt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_jit_match
      Src: /src/git/grep.c:419,1
    - Dst: pcre2_match
      Src: /src/git/grep.c:423,1
    - Dst: pcre2_get_error_message
      Src: /src/git/grep.c:428,1
    - Dst: die
      Src: /src/git/grep.c:429,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/git/grep.c:434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - p
    - line
    - eol
    - match
    - eflags
    argTypes:
    - struct grep_pat*
    - char*
    - char*
    - regmatch_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 441
    functionName: pcre2match
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - die
    - pcre2_match
    - pcre2_get_error_message
    - pcre2_get_ovector_pointer
    - pcre2_jit_match
    linkageType: ''
    returnType: int
    signature: "int pcre2match(struct grep_pat *p, const char *line, const char *eol,\n\t\tregmatch_t
      *match, int eflags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_compile_context_free
      Src: /src/git/grep.c:445,1
    - Dst: pcre2_code_free
      Src: /src/git/grep.c:446,1
    - Dst: pcre2_match_data_free
      Src: /src/git/grep.c:447,1
    - Dst: pcre2_maketables_free
      Src: /src/git/grep.c:449,1
    - Dst: free
      Src: /src/git/grep.c:451,1
    - Dst: pcre2_general_context_free
      Src: /src/git/grep.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct grep_pat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 454
    functionName: free_pcre2_pattern
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - pcre2_compile_context_free
    - pcre2_general_context_free
    - pcre2_match_data_free
    - free
    - pcre2_code_free
    - pcre2_maketables_free
    linkageType: ''
    returnType: void
    signature: void free_pcre2_pattern(struct grep_pat *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/grep.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct grep_pat*
    - struct grep_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: compile_pcre2_pattern
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: void
    signature: "void compile_pcre2_pattern(struct grep_pat *p UNUSED,\n\t\t\t\t  const
      struct grep_opt *opt UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    - eflags
    argTypes:
    - struct grep_pat*
    - char*
    - char*
    - regmatch_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: pcre2match
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pcre2match(struct grep_pat *p UNUSED, const char *line UNUSED,\n\t\t
      \     const char *eol UNUSED, regmatch_t *match UNUSED,\n\t\t      int eflags
      UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct grep_pat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 471
    functionName: free_pcre2_pattern
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void free_pcre2_pattern(struct grep_pat *p UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: basic_regex_quote_buf
      Src: /src/git/grep.c:479,1
    - Dst: regcomp
      Src: /src/git/grep.c:482,1
    - Dst: strbuf_release
      Src: /src/git/grep.c:483,1
    - Dst: regerror
      Src: /src/git/grep.c:486,1
    - Dst: compile_regexp_failed
      Src: /src/git/grep.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - opt
    argTypes:
    - struct grep_pat*
    - struct grep_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 489
    functionName: compile_fixed_regexp
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - regerror
    - regcomp
    - compile_regexp_failed
    - basic_regex_quote_buf
    linkageType: ''
    returnType: void
    signature: void compile_fixed_regexp(struct grep_pat *p, struct grep_opt *opt)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/grep.c:507,1
    - Dst: die
      Src: /src/git/grep.c:508,1
    - Dst: _
      Src: /src/git/grep.c:508,1
    - Dst: is_fixed
      Src: /src/git/grep.c:510,1
    - Dst: strlen
      Src: /src/git/grep.c:514,1
    - Dst: starts_with
      Src: /src/git/grep.c:515,1
    - Dst: is_fixed
      Src: /src/git/grep.c:516,1
    - Dst: compile_pcre2_pattern
      Src: /src/git/grep.c:524,1
    - Dst: strbuf_add
      Src: /src/git/grep.c:541,1
    - Dst: strbuf_add
      Src: /src/git/grep.c:542,1
    - Dst: strbuf_add
      Src: /src/git/grep.c:543,1
    - Dst: compile_pcre2_pattern
      Src: /src/git/grep.c:547,1
    - Dst: strbuf_release
      Src: /src/git/grep.c:550,1
    - Dst: compile_fixed_regexp
      Src: /src/git/grep.c:553,1
    - Dst: compile_pcre2_pattern
      Src: /src/git/grep.c:559,1
    - Dst: regcomp
      Src: /src/git/grep.c:567,1
    - Dst: regerror
      Src: /src/git/grep.c:570,1
    - Dst: compile_regexp_failed
      Src: /src/git/grep.c:571,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - p
    - opt
    argTypes:
    - struct grep_pat*
    - struct grep_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 492
    functionDepth: 5
    functionLinenumber: 492
    functionLinenumberEnd: 573
    functionName: compile_regexp
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - is_fixed
    - memchr
    - strbuf_release
    - die
    - compile_fixed_regexp
    - starts_with
    - regerror
    - compile_pcre2_pattern
    - strlen
    - _
    - regcomp
    - compile_regexp_failed
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/grep.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct grep_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 7
    functionLinenumber: 575
    functionLinenumberEnd: 581
    functionName: grep_not_expr
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *grep_not_expr(struct grep_expr *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/grep.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - kind
    - left
    - right
    argTypes:
    - enum grep_expr_node
    - struct grep_expr*
    - struct grep_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 583
    functionDepth: 7
    functionLinenumber: 583
    functionLinenumberEnd: 592
    functionName: grep_binexp
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct grep_expr
    signature: "struct grep_expr *grep_binexp(enum grep_expr_node kind,\n\t\t\t\t
      \    struct grep_expr *left,\n\t\t\t\t     struct grep_expr *right)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grep_binexp
      Src: /src/git/grep.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - struct grep_expr*
    - struct grep_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 594
    functionDepth: 8
    functionLinenumber: 594
    functionLinenumberEnd: 597
    functionName: grep_or_expr
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - grep_binexp
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *grep_or_expr(struct grep_expr *left, struct grep_expr
      *right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grep_binexp
      Src: /src/git/grep.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - struct grep_expr*
    - struct grep_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 599
    functionDepth: 8
    functionLinenumber: 599
    functionLinenumberEnd: 602
    functionName: grep_and_expr
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - grep_binexp
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *grep_and_expr(struct grep_expr *left, struct grep_expr
      *right)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/grep.c:617,1
    - Dst: compile_pattern_or
      Src: /src/git/grep.c:624,1
    - Dst: die
      Src: /src/git/grep.c:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct grep_pat**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 632
    functionName: compile_pattern_atom
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - die
    - compile_pattern_or
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *compile_pattern_atom(struct grep_pat **list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/grep.c:645,1
    - Dst: compile_pattern_not
      Src: /src/git/grep.c:647,1
    - Dst: die
      Src: /src/git/grep.c:649,1
    - Dst: grep_not_expr
      Src: /src/git/grep.c:650,1
    - Dst: compile_pattern_atom
      Src: /src/git/grep.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct grep_pat**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 8
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: compile_pattern_not
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - compile_pattern_not
    - compile_pattern_atom
    - die
    - grep_not_expr
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *compile_pattern_not(struct grep_pat **list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: compile_pattern_not
      Src: /src/git/grep.c:661,1
    - Dst: die
      Src: /src/git/grep.c:665,1
    - Dst: die
      Src: /src/git/grep.c:667,1
    - Dst: compile_pattern_and
      Src: /src/git/grep.c:669,1
    - Dst: die
      Src: /src/git/grep.c:671,1
    - Dst: grep_and_expr
      Src: /src/git/grep.c:672,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct grep_pat**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 656
    functionDepth: 9
    functionLinenumber: 656
    functionLinenumberEnd: 675
    functionName: compile_pattern_and
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - compile_pattern_and
    - compile_pattern_not
    - die
    - grep_and_expr
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *compile_pattern_and(struct grep_pat **list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compile_pattern_and
      Src: /src/git/grep.c:682,1
    - Dst: compile_pattern_or
      Src: /src/git/grep.c:685,1
    - Dst: die
      Src: /src/git/grep.c:687,1
    - Dst: grep_or_expr
      Src: /src/git/grep.c:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct grep_pat**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 677
    functionDepth: 10
    functionLinenumber: 677
    functionLinenumberEnd: 691
    functionName: compile_pattern_or
    functionSourceFile: /src/git/grep.c
    functionUses: 2
    functionsReached:
    - compile_pattern_and
    - grep_or_expr
    - die
    - compile_pattern_or
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *compile_pattern_or(struct grep_pat **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compile_pattern_or
      Src: /src/git/grep.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct grep_pat**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 11
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: compile_pattern_expr
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - compile_pattern_or
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *compile_pattern_expr(struct grep_pat **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/grep.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 698
    functionDepth: 7
    functionLinenumber: 698
    functionLinenumberEnd: 703
    functionName: grep_true_expr
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *grep_true_expr(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/grep.c:717,1
    - Dst: BUG
      Src: /src/git/grep.c:720,1
    - Dst: compile_regexp
      Src: /src/git/grep.c:721,1
    - Dst: compile_pattern_atom
      Src: /src/git/grep.c:731,1
    - Dst: BUG
      Src: /src/git/grep.c:733,1
    - Dst: grep_or_expr
      Src: /src/git/grep.c:738,1
    - Dst: grep_true_expr
      Src: /src/git/grep.c:747,1
    - Dst: grep_or_expr
      Src: /src/git/grep.c:748,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct grep_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 705
    functionDepth: 9
    functionLinenumber: 705
    functionLinenumberEnd: 751
    functionName: prep_header_patterns
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - grep_or_expr
    - grep_true_expr
    - compile_regexp
    - BUG
    - compile_pattern_atom
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *prep_header_patterns(struct grep_opt *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/grep.c:758,1
    - Dst: free
      Src: /src/git/grep.c:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - struct grep_expr*
    - struct grep_expr*
    assertStmts:
    - condition: (x->node == GREP_NODE_OR)
      pos:
        line_end: 757
        line_start: 757
        source_file: /src/git/grep.c
    constantsTouched: []
    func_position:
      end: 768
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 768
    functionName: grep_splice_or
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - assert
    - free
    linkageType: ''
    returnType: struct grep_expr
    signature: struct grep_expr *grep_splice_or(struct grep_expr *x, struct grep_expr
      *y)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: prep_header_patterns
      Src: /src/git/grep.c:773,1
    - Dst: compile_regexp
      Src: /src/git/grep.c:781,1
    - Dst: compile_pattern_expr
      Src: /src/git/grep.c:796,1
    - Dst: die
      Src: /src/git/grep.c:798,1
    - Dst: grep_not_expr
      Src: /src/git/grep.c:801,1
    - Dst: grep_splice_or
      Src: /src/git/grep.c:809,1
    - Dst: grep_or_expr
      Src: /src/git/grep.c:812,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct grep_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 770
    functionDepth: 12
    functionLinenumber: 770
    functionLinenumberEnd: 815
    functionName: compile_grep_patterns
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - grep_splice_or
    - grep_or_expr
    - die
    - grep_not_expr
    - prep_header_patterns
    - compile_pattern_expr
    - compile_regexp
    linkageType: ''
    returnType: void
    signature: void compile_grep_patterns(struct grep_opt *opt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free_pattern_expr
      Src: /src/git/grep.c:824,1
    - Dst: free_pattern_expr
      Src: /src/git/grep.c:828,1
    - Dst: free_pattern_expr
      Src: /src/git/grep.c:829,1
    - Dst: free
      Src: /src/git/grep.c:832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - x
    argTypes:
    - struct grep_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 833
    functionName: free_pattern_expr
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - free_pattern_expr
    - free
    linkageType: ''
    returnType: void
    signature: void free_pattern_expr(struct grep_expr *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free_pcre2_pattern
      Src: /src/git/grep.c:846,1
    - Dst: regfree
      Src: /src/git/grep.c:848,1
    - Dst: free
      Src: /src/git/grep.c:853,1
    - Dst: free
      Src: /src/git/grep.c:854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - struct grep_pat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 856
    functionName: free_grep_pat
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - free_pcre2_pattern
    - regfree
    - free
    linkageType: ''
    returnType: void
    signature: void free_grep_pat(struct grep_pat *pattern)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_grep_pat
      Src: /src/git/grep.c:860,1
    - Dst: free_grep_pat
      Src: /src/git/grep.c:861,1
    - Dst: free_pattern_expr
      Src: /src/git/grep.c:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct grep_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 865
    functionName: free_grep_patterns
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - free_grep_pat
    - free_pattern_expr
    linkageType: ''
    returnType: void
    signature: void free_grep_patterns(struct grep_opt *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cp
    - left
    argTypes:
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 876
    functionName: end_of_line
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *end_of_line(const char *cp, unsigned long *left)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/git/grep.c:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 881
    functionName: word_char
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: int
    signature: int word_char(char ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color
      Src: /src/git/grep.c:886,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:887,1
    - Dst: strlen
      Src: /src/git/grep.c:887,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:888,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:889,1
    - Dst: strlen
      Src: /src/git/grep.c:889,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - opt
    - data
    - size
    - color
    argTypes:
    - struct grep_opt*
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 892
    functionName: output_color
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - struct grep_opt*::output
    - want_color
    - strlen
    linkageType: ''
    returnType: void
    signature: "void output_color(struct grep_opt *opt, const void *data, size_t size,\n\t\t\t
      const char *color)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:897,1
    - Dst: output_color
      Src: /src/git/grep.c:899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - opt
    - sign
    argTypes:
    - struct grep_opt*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 900
    functionName: output_sep
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - output_color
    - struct grep_opt*::output
    linkageType: ''
    returnType: void
    signature: void output_sep(struct grep_opt *opt, char sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_color
      Src: /src/git/grep.c:904,1
    - Dst: strlen
      Src: /src/git/grep.c:904,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opt
    - name
    argTypes:
    - struct grep_opt*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 906
    functionName: show_name
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - output_color
    - struct grep_opt*::output
    - strlen
    linkageType: ''
    returnType: void
    signature: void show_name(struct grep_opt *opt, const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcre2match
      Src: /src/git/grep.c:913,1
    - Dst: regexec_buf
      Src: /src/git/grep.c:915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - p
    - line
    - eol
    - match
    - eflags
    argTypes:
    - struct grep_pat*
    - char*
    - char*
    - regmatch_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 923
    functionName: patmatch
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - regexec_buf
    - pcre2match
    linkageType: ''
    returnType: int
    signature: "int patmatch(struct grep_pat *p,\n\t\t    const char *line, const
      char *eol,\n\t\t    regmatch_t *match, int eflags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - bol
    - eol_p
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 935
    functionName: strip_timestamp
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strip_timestamp(const char *bol, const char **eol_p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: patmatch
      Src: /src/git/grep.c:959,1
    - Dst: die
      Src: /src/git/grep.c:968,1
    - Dst: word_char
      Src: /src/git/grep.c:977,1
    - Dst: word_char
      Src: /src/git/grep.c:979,1
    - Dst: word_char
      Src: /src/git/grep.c:996,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 31
    argCount: 6
    argNames:
    - p
    - bol
    - eol
    - ctx
    - pmatch
    - eflags
    argTypes:
    - struct grep_pat*
    - char*
    - char*
    - enum grep_context
    - regmatch_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 946
    functionDepth: 3
    functionLinenumber: 946
    functionLinenumberEnd: 1008
    functionName: headerless_match_one_pattern
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - patmatch
    - word_char
    - die
    linkageType: ''
    returnType: int
    signature: "int headerless_match_one_pattern(struct grep_pat *p,\n\t\t\t\t\tconst
      char *bol, const char *eol,\n\t\t\t\t\tenum grep_context ctx,\n\t\t\t\t\tregmatch_t
      *pmatch, int eflags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/grep.c:1019,1
    - Dst: ARRAY_SIZE
      Src: /src/git/grep.c:1019,1
    - Dst: strncmp
      Src: /src/git/grep.c:1022,1
    - Dst: strip_timestamp
      Src: /src/git/grep.c:1029,1
    - Dst: headerless_match_one_pattern
      Src: /src/git/grep.c:1036,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - p
    - bol
    - eol
    - ctx
    - pmatch
    - eflags
    argTypes:
    - struct grep_pat*
    - char*
    - char*
    - enum grep_context
    - regmatch_t*
    - int
    assertStmts:
    - condition: (p->field < ARRAY_SIZE(header_field))
      pos:
        line_end: 1018
        line_start: 1018
        source_file: /src/git/grep.c
    constantsTouched: []
    func_position:
      end: 1037
      start: 1010
    functionDepth: 4
    functionLinenumber: 1010
    functionLinenumberEnd: 1037
    functionName: match_one_pattern
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - assert
    - headerless_match_one_pattern
    - strncmp
    - strip_timestamp
    linkageType: ''
    returnType: int
    signature: "int match_one_pattern(struct grep_pat *p,\n\t\t\t     const char *bol,
      const char *eol,\n\t\t\t     enum grep_context ctx, regmatch_t *pmatch,\n\t\t\t
      \    int eflags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: match_one_pattern
      Src: /src/git/grep.c:1054,1
    - Dst: match_expr_eval
      Src: /src/git/grep.c:1066,1
    - Dst: match_expr_eval
      Src: /src/git/grep.c:1070,1
    - Dst: match_expr_eval
      Src: /src/git/grep.c:1078,1
    - Dst: match_expr_eval
      Src: /src/git/grep.c:1089,1
    - Dst: match_expr_eval
      Src: /src/git/grep.c:1091,1
    - Dst: match_expr_eval
      Src: /src/git/grep.c:1094,1
    - Dst: match_expr_eval
      Src: /src/git/grep.c:1098,1
    - Dst: die
      Src: /src/git/grep.c:1102,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 8
    argNames:
    - opt
    - x
    - bol
    - eol
    - ctx
    - col
    - icol
    - collect_hits
    argTypes:
    - struct grep_opt*
    - struct grep_expr*
    - char*
    - char*
    - enum grep_context
    - ssize_t*
    - ssize_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1040
    functionDepth: 5
    functionLinenumber: 1040
    functionLinenumberEnd: 1107
    functionName: match_expr_eval
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - match_one_pattern
    - die
    - match_expr_eval
    linkageType: ''
    returnType: int
    signature: "int match_expr_eval(struct grep_opt *opt, struct grep_expr *x,\n\t\t\t
      \  const char *bol, const char *eol,\n\t\t\t   enum grep_context ctx, ssize_t
      *col,\n\t\t\t   ssize_t *icol, int collect_hits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_expr_eval
      Src: /src/git/grep.c:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - opt
    - bol
    - eol
    - ctx
    - col
    - icol
    - collect_hits
    argTypes:
    - struct grep_opt*
    - char*
    - char*
    - enum grep_context
    - ssize_t*
    - ssize_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1109
    functionDepth: 6
    functionLinenumber: 1109
    functionLinenumberEnd: 1116
    functionName: match_expr
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - match_expr_eval
    linkageType: ''
    returnType: int
    signature: "int match_expr(struct grep_opt *opt,\n\t\t      const char *bol, const
      char *eol,\n\t\t      enum grep_context ctx, ssize_t *col,\n\t\t      ssize_t
      *icol, int collect_hits)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: match_expr
      Src: /src/git/grep.c:1127,1
    - Dst: match_one_pattern
      Src: /src/git/grep.c:1133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 7
    argNames:
    - opt
    - bol
    - eol
    - col
    - icol
    - ctx
    - collect_hits
    argTypes:
    - struct grep_opt*
    - char*
    - char*
    - ssize_t*
    - ssize_t*
    - enum grep_context
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1118
    functionDepth: 7
    functionLinenumber: 1118
    functionLinenumberEnd: 1149
    functionName: match_line
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - match_one_pattern
    - match_expr
    linkageType: ''
    returnType: int
    signature: "int match_line(struct grep_opt *opt,\n\t\t      const char *bol, const
      char *eol,\n\t\t      ssize_t *col, ssize_t *icol,\n\t\t      enum grep_context
      ctx, int collect_hits)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: headerless_match_one_pattern
      Src: /src/git/grep.c:1158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 6
    argNames:
    - p
    - bol
    - eol
    - ctx
    - pmatch
    - eflags
    argTypes:
    - struct grep_pat*
    - char*
    - char*
    - enum grep_context
    - regmatch_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1151
    functionDepth: 4
    functionLinenumber: 1151
    functionLinenumberEnd: 1171
    functionName: match_next_pattern
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - headerless_match_one_pattern
    linkageType: ''
    returnType: int
    signature: "int match_next_pattern(struct grep_pat *p,\n\t\t\t      const char
      *bol, const char *eol,\n\t\t\t      enum grep_context ctx,\n\t\t\t      regmatch_t
      *pmatch, int eflags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: match_next_pattern
      Src: /src/git/grep.c:1194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 7
    argNames:
    - opt
    - bol
    - eol
    - ctx
    - pmatch
    - field
    - eflags
    argTypes:
    - struct grep_opt*
    - char*
    - char*
    - enum grep_context
    - regmatch_t*
    - enum grep_header_field
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1173
    functionDepth: 5
    functionLinenumber: 1173
    functionLinenumberEnd: 1203
    functionName: grep_next_match
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - match_next_pattern
    linkageType: ''
    returnType: int
    signature: "int grep_next_match(struct grep_opt *opt,\n\t\t    const char *bol,
      const char *eol,\n\t\t    enum grep_context ctx, regmatch_t *pmatch,\n\t\t    enum
      grep_header_field field, int eflags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: output_color
      Src: /src/git/grep.c:1209,1
    - Dst: strlen
      Src: /src/git/grep.c:1209,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:1210,1
    - Dst: output_color
      Src: /src/git/grep.c:1215,1
    - Dst: strlen
      Src: /src/git/grep.c:1215,1
    - Dst: output_sep
      Src: /src/git/grep.c:1216,1
    - Dst: xsnprintf
      Src: /src/git/grep.c:1220,1
    - Dst: output_color
      Src: /src/git/grep.c:1221,1
    - Dst: strlen
      Src: /src/git/grep.c:1221,1
    - Dst: output_sep
      Src: /src/git/grep.c:1222,1
    - Dst: xsnprintf
      Src: /src/git/grep.c:1231,1
    - Dst: output_color
      Src: /src/git/grep.c:1232,1
    - Dst: strlen
      Src: /src/git/grep.c:1232,1
    - Dst: output_sep
      Src: /src/git/grep.c:1233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - opt
    - name
    - lno
    - cno
    - sign
    argTypes:
    - struct grep_opt*
    - char*
    - unsigned
    - ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1205
    functionDepth: 3
    functionLinenumber: 1205
    functionLinenumberEnd: 1235
    functionName: show_line_header
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - struct grep_opt*::output
    - output_sep
    - strlen
    - xsnprintf
    - output_color
    linkageType: ''
    returnType: void
    signature: "void show_line_header(struct grep_opt *opt, const char *name,\n\t\t\t
      \    unsigned lno, ssize_t cno, char sign)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:1247,1
    - Dst: output_color
      Src: /src/git/grep.c:1251,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:1252,1
    - Dst: output_color
      Src: /src/git/grep.c:1255,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:1256,1
    - Dst: show_line_header
      Src: /src/git/grep.c:1264,1
    - Dst: want_color
      Src: /src/git/grep.c:1266,1
    - Dst: want_color
      Src: /src/git/grep.c:1272,1
    - Dst: grep_next_match
      Src: /src/git/grep.c:1284,1
    - Dst: show_line_header
      Src: /src/git/grep.c:1291,1
    - Dst: output_color
      Src: /src/git/grep.c:1293,1
    - Dst: output_color
      Src: /src/git/grep.c:1294,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:1297,1
    - Dst: output_color
      Src: /src/git/grep.c:1304,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:1305,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 7
    argNames:
    - opt
    - bol
    - eol
    - name
    - lno
    - cno
    - sign
    argTypes:
    - struct grep_opt*
    - char*
    - char*
    - char*
    - unsigned
    - ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1237
    functionDepth: 6
    functionLinenumber: 1237
    functionLinenumberEnd: 1307
    functionName: show_line
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - struct grep_opt*::output
    - show_line_header
    - output_color
    - grep_next_match
    - want_color
    linkageType: ''
    returnType: void
    signature: "void show_line(struct grep_opt *opt,\n\t\t      const char *bol, const
      char *eol,\n\t\t      const char *name, unsigned lno, ssize_t cno, char sign)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/grep.c:1320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1321
    functionName: grep_attr_lock
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void grep_attr_lock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/grep.c:1326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1327
    functionName: grep_attr_unlock
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void grep_attr_unlock(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: grep_source_load_driver
      Src: /src/git/grep.c:1334,1
    - Dst: xdiff_set_find_func
      Src: /src/git/grep.c:1337,1
    - Dst: xdemitconf_t*::find_func
      Src: /src/git/grep.c:1345,1
    - Dst: isalpha
      Src: /src/git/grep.c:1351,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - opt
    - gs
    - bol
    - eol
    argTypes:
    - struct grep_opt*
    - struct grep_source*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1354
    functionName: match_funcname
    functionSourceFile: /src/git/grep.c
    functionUses: 2
    functionsReached:
    - xdiff_set_find_func
    - isalpha
    - grep_source_load_driver
    - xdemitconf_t*::find_func
    linkageType: ''
    returnType: int
    signature: "int match_funcname(struct grep_opt *opt, struct grep_source *gs,\n\t\t\t
      \ const char *bol, const char *eol)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: match_funcname
      Src: /src/git/grep.c:1369,1
    - Dst: show_line
      Src: /src/git/grep.c:1370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - opt
    - gs
    - bol
    - lno
    argTypes:
    - struct grep_opt*
    - struct grep_source*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1356
    functionDepth: 7
    functionLinenumber: 1356
    functionLinenumberEnd: 1374
    functionName: show_funcname_line
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - show_line
    - match_funcname
    linkageType: ''
    returnType: void
    signature: "void show_funcname_line(struct grep_opt *opt, struct grep_source *gs,\n\t\t\t
      \      const char *bol, unsigned lno)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: match_funcname
      Src: /src/git/grep.c:1390,1
    - Dst: is_empty_line
      Src: /src/git/grep.c:1405,1
    - Dst: match_funcname
      Src: /src/git/grep.c:1406,1
    - Dst: match_funcname
      Src: /src/git/grep.c:1415,1
    - Dst: show_funcname_line
      Src: /src/git/grep.c:1427,1
    - Dst: show_line
      Src: /src/git/grep.c:1435,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 5
    argNames:
    - opt
    - gs
    - bol
    - end
    - lno
    argTypes:
    - struct grep_opt*
    - struct grep_source*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1378
    functionDepth: 8
    functionLinenumber: 1378
    functionLinenumberEnd: 1439
    functionName: show_pre_context
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - show_line
    - show_funcname_line
    - is_empty_line
    - match_funcname
    linkageType: ''
    returnType: void
    signature: "void show_pre_context(struct grep_opt *opt, struct grep_source *gs,\n\t\t\t
      \    const char *bol, const char *end, unsigned lno)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct grep_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1454
    functionName: should_lookahead
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int should_lookahead(struct grep_opt *opt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: patmatch
      Src: /src/git/grep.c:1471,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 4
    argNames:
    - opt
    - left_p
    - lno_p
    - bol_p
    argTypes:
    - struct grep_opt*
    - unsigned long*
    - unsigned*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1456
    functionDepth: 3
    functionLinenumber: 1456
    functionLinenumberEnd: 1497
    functionName: look_ahead
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - patmatch
    linkageType: ''
    returnType: int
    signature: "int look_ahead(struct grep_opt *opt,\n\t\t      unsigned long *left_p,\n\t\t
      \     unsigned *lno_p,\n\t\t      const char **bol_p)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grep_source_load
      Src: /src/git/grep.c:1508,1
    - Dst: alloc_filespec
      Src: /src/git/grep.c:1515,1
    - Dst: fill_filespec
      Src: /src/git/grep.c:1518,1
    - Dst: fill_filespec
      Src: /src/git/grep.c:1521,1
    - Dst: null_oid
      Src: /src/git/grep.c:1521,1
    - Dst: BUG
      Src: /src/git/grep.c:1524,1
    - Dst: obj_read_lock
      Src: /src/git/grep.c:1539,1
    - Dst: fill_textconv
      Src: /src/git/grep.c:1540,1
    - Dst: obj_read_unlock
      Src: /src/git/grep.c:1541,1
    - Dst: free_filespec
      Src: /src/git/grep.c:1542,1
    - Dst: grep_source_clear_data
      Src: /src/git/grep.c:1552,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - r
    - driver
    - gs
    argTypes:
    - struct repository*
    - struct userdiff_driver*
    - struct grep_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1557
    functionName: fill_textconv_grep
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - grep_source_clear_data
    - grep_source_load
    - fill_textconv
    - obj_read_lock
    - alloc_filespec
    - obj_read_unlock
    - null_oid
    - fill_filespec
    - BUG
    - free_filespec
    linkageType: ''
    returnType: int
    signature: "int fill_textconv_grep(struct repository *r,\n\t\t\t      struct userdiff_driver
      *driver,\n\t\t\t      struct grep_source *gs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/grep.c:1561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - bol
    - eol
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1564
    functionName: is_empty_line
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int is_empty_line(const char *bol, const char *eol)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/grep.c:1582,1
    - Dst: grep_source_load_driver
      Src: /src/git/grep.c:1604,1
    - Dst: grep_attr_lock
      Src: /src/git/grep.c:1612,1
    - Dst: obj_read_lock
      Src: /src/git/grep.c:1613,1
    - Dst: userdiff_get_textconv
      Src: /src/git/grep.c:1614,1
    - Dst: obj_read_unlock
      Src: /src/git/grep.c:1615,1
    - Dst: grep_attr_unlock
      Src: /src/git/grep.c:1616,1
    - Dst: grep_source_is_binary
      Src: /src/git/grep.c:1626,1
    - Dst: grep_source_is_binary
      Src: /src/git/grep.c:1630,1
    - Dst: BUG
      Src: /src/git/grep.c:1636,1
    - Dst: memset
      Src: /src/git/grep.c:1640,1
    - Dst: should_lookahead
      Src: /src/git/grep.c:1643,1
    - Dst: fill_textconv_grep
      Src: /src/git/grep.c:1645,1
    - Dst: look_ahead
      Src: /src/git/grep.c:1669,1
    - Dst: end_of_line
      Src: /src/git/grep.c:1675,1
    - Dst: match_line
      Src: /src/git/grep.c:1680,1
    - Dst: show_name
      Src: /src/git/grep.c:1701,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:1707,1
    - Dst: output_color
      Src: /src/git/grep.c:1708,1
    - Dst: strlen
      Src: /src/git/grep.c:1708,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:1710,1
    - Dst: show_pre_context
      Src: /src/git/grep.c:1717,1
    - Dst: show_funcname_line
      Src: /src/git/grep.c:1719,1
    - Dst: show_line
      Src: /src/git/grep.c:1731,1
    - Dst: is_empty_line
      Src: /src/git/grep.c:1747,1
    - Dst: end_of_line
      Src: /src/git/grep.c:1749,1
    - Dst: match_funcname
      Src: /src/git/grep.c:1753,1
    - Dst: show_line
      Src: /src/git/grep.c:1761,1
    - Dst: show_name
      Src: /src/git/grep.c:1779,1
    - Dst: xdiff_clear_find_func
      Src: /src/git/grep.c:1783,1
    - Dst: output_color
      Src: /src/git/grep.c:1794,1
    - Dst: strlen
      Src: /src/git/grep.c:1794,1
    - Dst: output_sep
      Src: /src/git/grep.c:1796,1
    - Dst: xsnprintf
      Src: /src/git/grep.c:1798,1
    - Dst: struct grep_opt*::output
      Src: /src/git/grep.c:1799,1
    - Dst: strlen
      Src: /src/git/grep.c:1799,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 138
    argCount: 3
    argNames:
    - opt
    - gs
    - collect_hits
    argTypes:
    - struct grep_opt*
    - struct grep_source*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1566
    functionDepth: 9
    functionLinenumber: 1566
    functionLinenumberEnd: 1803
    functionName: grep_source_1
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - should_lookahead
    - struct grep_opt*::output
    - xsnprintf
    - grep_attr_lock
    - grep_attr_unlock
    - show_pre_context
    - show_funcname_line
    - match_funcname
    - match_line
    - obj_read_unlock
    - grep_source_is_binary
    - memset
    - output_sep
    - fill_textconv_grep
    - is_empty_line
    - userdiff_get_textconv
    - show_line
    - output_color
    - look_ahead
    - grep_source_load_driver
    - xdiff_clear_find_func
    - obj_read_lock
    - strlen
    - end_of_line
    - show_name
    - BUG
    linkageType: ''
    returnType: int
    signature: int grep_source_1(struct grep_opt *opt, struct grep_source *gs, int
      collect_hits)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - struct grep_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1805
    functionDepth: 0
    functionLinenumber: 1805
    functionLinenumberEnd: 1817
    functionName: clr_hit_marker
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clr_hit_marker(struct grep_expr *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - struct grep_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1829
    functionName: chk_hit_marker
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int chk_hit_marker(struct grep_expr *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grep_source_1
      Src: /src/git/grep.c:1838,1
    - Dst: clr_hit_marker
      Src: /src/git/grep.c:1843,1
    - Dst: grep_source_1
      Src: /src/git/grep.c:1845,1
    - Dst: chk_hit_marker
      Src: /src/git/grep.c:1847,1
    - Dst: grep_source_1
      Src: /src/git/grep.c:1852,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - opt
    - gs
    argTypes:
    - struct grep_opt*
    - struct grep_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1831
    functionDepth: 10
    functionLinenumber: 1831
    functionLinenumberEnd: 1853
    functionName: grep_source
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - grep_source_1
    - clr_hit_marker
    - chk_hit_marker
    linkageType: ''
    returnType: int
    signature: int grep_source(struct grep_opt *opt, struct grep_source *gs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - gs
    - buf
    - size
    argTypes:
    - struct grep_source*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1866
    functionName: grep_source_init_buf
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void grep_source_init_buf(struct grep_source *gs,\n\t\t\t\t const
      char *buf,\n\t\t\t\t unsigned long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grep_source_init_buf
      Src: /src/git/grep.c:1873,1
    - Dst: grep_source
      Src: /src/git/grep.c:1875,1
    - Dst: grep_source_clear
      Src: /src/git/grep.c:1877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - buf
    - size
    argTypes:
    - struct grep_opt*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1868
    functionDepth: 11
    functionLinenumber: 1868
    functionLinenumberEnd: 1879
    functionName: grep_buffer
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - grep_source_init_buf
    - grep_source
    - grep_source_clear
    linkageType: ''
    returnType: int
    signature: int grep_buffer(struct grep_opt *opt, const char *buf, unsigned long
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/grep.c:1885,1
    - Dst: xstrdup_or_null
      Src: /src/git/grep.c:1886,1
    - Dst: xstrdup
      Src: /src/git/grep.c:1890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - gs
    - name
    - path
    argTypes:
    - struct grep_source*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1881
    functionDepth: 2
    functionLinenumber: 1881
    functionLinenumberEnd: 1891
    functionName: grep_source_init_file
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void grep_source_init_file(struct grep_source *gs, const char *name,\n\t\t\t
      \  const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/grep.c:1898,1
    - Dst: xstrdup_or_null
      Src: /src/git/grep.c:1899,1
    - Dst: oiddup
      Src: /src/git/grep.c:1903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - gs
    - name
    - path
    - oid
    - repo
    argTypes:
    - struct grep_source*
    - char*
    - char*
    - struct object_id*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1893
    functionDepth: 2
    functionLinenumber: 1893
    functionLinenumberEnd: 1905
    functionName: grep_source_init_oid
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - oiddup
    - xstrdup_or_null
    linkageType: ''
    returnType: void
    signature: "void grep_source_init_oid(struct grep_source *gs, const char *name,\n\t\t\t
      \ const char *path, const struct object_id *oid,\n\t\t\t  struct repository
      *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/grep.c:1909,1
    - Dst: FREE_AND_NULL
      Src: /src/git/grep.c:1910,1
    - Dst: FREE_AND_NULL
      Src: /src/git/grep.c:1911,1
    - Dst: grep_source_clear_data
      Src: /src/git/grep.c:1912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - gs
    argTypes:
    - struct grep_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1907
    functionDepth: 1
    functionLinenumber: 1907
    functionLinenumberEnd: 1913
    functionName: grep_source_clear
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - grep_source_clear_data
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void grep_source_clear(struct grep_source *gs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/grep.c:1921,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - gs
    argTypes:
    - struct grep_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1915
    functionDepth: 1
    functionLinenumber: 1915
    functionLinenumberEnd: 1929
    functionName: grep_source_clear_data
    functionSourceFile: /src/git/grep.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void grep_source_clear_data(struct grep_source *gs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/grep.c:1935,1
    - Dst: error
      Src: /src/git/grep.c:1938,1
    - Dst: _
      Src: /src/git/grep.c:1938,1
    - Dst: oid_to_hex
      Src: /src/git/grep.c:1940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gs
    argTypes:
    - struct grep_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1931
    functionDepth: 12
    functionLinenumber: 1931
    functionLinenumberEnd: 1942
    functionName: grep_source_load_oid
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - error
    - odb_read_object
    - oid_to_hex
    - _
    linkageType: ''
    returnType: int
    signature: int grep_source_load_oid(struct grep_source *gs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/grep.c:1952,1
    - Dst: error_errno
      Src: /src/git/grep.c:1955,1
    - Dst: _
      Src: /src/git/grep.c:1955,1
    - Dst: S_ISREG
      Src: /src/git/grep.c:1958,1
    - Dst: xsize_t
      Src: /src/git/grep.c:1960,1
    - Dst: open
      Src: /src/git/grep.c:1961,1
    - Dst: xmallocz
      Src: /src/git/grep.c:1964,1
    - Dst: read_in_full
      Src: /src/git/grep.c:1965,1
    - Dst: error_errno
      Src: /src/git/grep.c:1966,1
    - Dst: _
      Src: /src/git/grep.c:1966,1
    - Dst: close
      Src: /src/git/grep.c:1967,1
    - Dst: free
      Src: /src/git/grep.c:1968,1
    - Dst: close
      Src: /src/git/grep.c:1971,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - gs
    argTypes:
    - struct grep_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1944
    functionDepth: 9
    functionLinenumber: 1944
    functionLinenumberEnd: 1976
    functionName: grep_source_load_file
    functionSourceFile: /src/git/grep.c
    functionUses: 0
    functionsReached:
    - error_errno
    - open
    - xmallocz
    - free
    - read_in_full
    - xsize_t
    - _
    - close
    - lstat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int grep_source_load_file(struct grep_source *gs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grep_source_load_file
      Src: /src/git/grep.c:1985,1
    - Dst: grep_source_load_oid
      Src: /src/git/grep.c:1987,1
    - Dst: BUG
      Src: /src/git/grep.c:1991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - gs
    argTypes:
    - struct grep_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1978
    functionDepth: 13
    functionLinenumber: 1978
    functionLinenumberEnd: 1992
    functionName: grep_source_load
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - grep_source_load_file
    - BUG
    - grep_source_load_oid
    linkageType: ''
    returnType: int
    signature: int grep_source_load(struct grep_source *gs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grep_attr_lock
      Src: /src/git/grep.c:2000,1
    - Dst: userdiff_find_by_path
      Src: /src/git/grep.c:2002,1
    - Dst: userdiff_find_by_name
      Src: /src/git/grep.c:2004,1
    - Dst: grep_attr_unlock
      Src: /src/git/grep.c:2005,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - gs
    - istate
    argTypes:
    - struct grep_source*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1994
    functionDepth: 4
    functionLinenumber: 1994
    functionLinenumberEnd: 2006
    functionName: grep_source_load_driver
    functionSourceFile: /src/git/grep.c
    functionUses: 2
    functionsReached:
    - grep_attr_lock
    - userdiff_find_by_path
    - userdiff_find_by_name
    - grep_attr_unlock
    linkageType: ''
    returnType: void
    signature: "void grep_source_load_driver(struct grep_source *gs,\n\t\t\t     struct
      index_state *istate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grep_source_load_driver
      Src: /src/git/grep.c:2011,1
    - Dst: grep_source_load
      Src: /src/git/grep.c:2015,1
    - Dst: buffer_is_binary
      Src: /src/git/grep.c:2016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - gs
    - istate
    argTypes:
    - struct grep_source*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2008
    functionDepth: 14
    functionLinenumber: 2008
    functionLinenumberEnd: 2019
    functionName: grep_source_is_binary
    functionSourceFile: /src/git/grep.c
    functionUses: 1
    functionsReached:
    - grep_source_load
    - buffer_is_binary
    - grep_source_load_driver
    linkageType: ''
    returnType: int
    signature: "int grep_source_is_binary(struct grep_source *gs,\n\t\t\t\t struct
      index_state *istate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/cbtree.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - key_offset
    argTypes:
    - struct cb_tree*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: cb_init
    functionSourceFile: /src/git/cbtree.h
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void cb_init(struct cb_tree *t,\n\t\t\t   ptrdiff_t key_offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bug
      Src: /src/git/parse-options.c:22,1
    - Dst: bug
      Src: /src/git/parse-options.c:25,1
    - Dst: bug
      Src: /src/git/parse-options.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - opt
    - reason
    argTypes:
    - struct option*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: optbug
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - bug
    linkageType: ''
    returnType: void
    signature: void optbug(const struct option *opt, const char *reason)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/parse-options.c:34,1
    - Dst: strbuf_addf
      Src: /src/git/parse-options.c:36,1
    - Dst: strbuf_addf
      Src: /src/git/parse-options.c:38,1
    - Dst: strbuf_addf
      Src: /src/git/parse-options.c:40,1
    - Dst: BUG
      Src: /src/git/parse-options.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - opt
    - flags
    argTypes:
    - struct option*
    - enum opt_parsed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: optname
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addf
    - BUG
    linkageType: ''
    returnType: char
    signature: char *optname(const struct option *opt, enum opt_parsed flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/parse-options.c:60,1
    - Dst: _
      Src: /src/git/parse-options.c:60,1
    - Dst: optname
      Src: /src/git/parse-options.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - p
    - opt
    - flags
    - arg
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - enum opt_parsed
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: get_arg
    functionSourceFile: /src/git/parse-options.c
    functionUses: 4
    functionsReached:
    - error
    - optname
    - _
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result get_arg(struct parse_opt_ctx_t *p,\n\t\t\t\t
      \    const struct option *opt,\n\t\t\t\t     enum opt_parsed flags, const char
      **arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prefix_filename_except_for_dash
      Src: /src/git/parse-options.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - prefix
    - file
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: fix_filename
    functionSourceFile: /src/git/parse-options.c
    functionUses: 3
    functionsReached:
    - prefix_filename_except_for_dash
    linkageType: ''
    returnType: char
    signature: char *fix_filename(const char *prefix, const char *file)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - value
    - precision
    - ret
    argTypes:
    - void*
    - size_t
    - intmax_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 90
    functionName: do_get_int_value
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int do_get_int_value(const void *value, size_t precision, intmax_t
      *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_get_int_value
      Src: /src/git/parse-options.c:95,1
    - Dst: BUG
      Src: /src/git/parse-options.c:96,1
    - Dst: optname
      Src: /src/git/parse-options.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - opt
    - flags
    argTypes:
    - struct option*
    - enum opt_parsed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: get_int_value
    functionSourceFile: /src/git/parse-options.c
    functionUses: 1
    functionsReached:
    - optname
    - BUG
    - do_get_int_value
    linkageType: ''
    returnType: intmax_t
    signature: intmax_t get_int_value(const struct option *opt, enum opt_parsed flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/parse-options.c:118,1
    - Dst: optname
      Src: /src/git/parse-options.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - opt
    - flags
    - value
    argTypes:
    - struct option*
    - enum opt_parsed
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 120
    functionName: set_int_value
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - optname
    - BUG
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result set_int_value(const struct option *opt,\n\t\t\t\t\t
      \  enum opt_parsed flags,\n\t\t\t\t\t   intmax_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitsizeof
      Src: /src/git/parse-options.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - value
    - precision
    argTypes:
    - intmax_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: signed_int_fits
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - bitsizeof
    linkageType: ''
    returnType: int
    signature: int signed_int_fits(intmax_t value, size_t precision)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/parse-options.c:139,1
    - Dst: _
      Src: /src/git/parse-options.c:139,1
    - Dst: optname
      Src: /src/git/parse-options.c:139,1
    - Dst: error
      Src: /src/git/parse-options.c:141,1
    - Dst: _
      Src: /src/git/parse-options.c:141,1
    - Dst: optname
      Src: /src/git/parse-options.c:141,1
    - Dst: error
      Src: /src/git/parse-options.c:143,1
    - Dst: _
      Src: /src/git/parse-options.c:143,1
    - Dst: optname
      Src: /src/git/parse-options.c:143,1
    - Dst: struct option*::ll_callback
      Src: /src/git/parse-options.c:147,1
    - Dst: get_int_value
      Src: /src/git/parse-options.c:151,1
    - Dst: set_int_value
      Src: /src/git/parse-options.c:156,1
    - Dst: get_int_value
      Src: /src/git/parse-options.c:161,1
    - Dst: set_int_value
      Src: /src/git/parse-options.c:166,1
    - Dst: get_int_value
      Src: /src/git/parse-options.c:171,1
    - Dst: BUG
      Src: /src/git/parse-options.c:173,1
    - Dst: set_int_value
      Src: /src/git/parse-options.c:176,1
    - Dst: bitsizeof
      Src: /src/git/parse-options.c:182,1
    - Dst: get_int_value
      Src: /src/git/parse-options.c:183,1
    - Dst: error
      Src: /src/git/parse-options.c:192,1
    - Dst: _
      Src: /src/git/parse-options.c:192,1
    - Dst: optname
      Src: /src/git/parse-options.c:193,1
    - Dst: set_int_value
      Src: /src/git/parse-options.c:194,1
    - Dst: set_int_value
      Src: /src/git/parse-options.c:198,1
    - Dst: get_arg
      Src: /src/git/parse-options.c:206,1
    - Dst: get_arg
      Src: /src/git/parse-options.c:219,1
    - Dst: skip_prefix
      Src: /src/git/parse-options.c:226,1
    - Dst: fix_filename
      Src: /src/git/parse-options.c:227,1
    - Dst: is_missing_file
      Src: /src/git/parse-options.c:228,1
    - Dst: free
      Src: /src/git/parse-options.c:229,1
    - Dst: FREE_AND_NULL
      Src: /src/git/parse-options.c:231,1
    - Dst: get_arg
      Src: /src/git/parse-options.c:247,1
    - Dst: bitsizeof
      Src: /src/git/parse-options.c:262,1
    - Dst: get_arg
      Src: /src/git/parse-options.c:270,1
    - Dst: error
      Src: /src/git/parse-options.c:273,1
    - Dst: _
      Src: /src/git/parse-options.c:273,1
    - Dst: optname
      Src: /src/git/parse-options.c:274,1
    - Dst: git_parse_signed
      Src: /src/git/parse-options.c:275,1
    - Dst: error
      Src: /src/git/parse-options.c:277,1
    - Dst: _
      Src: /src/git/parse-options.c:277,1
    - Dst: optname
      Src: /src/git/parse-options.c:278,1
    - Dst: error
      Src: /src/git/parse-options.c:280,1
    - Dst: _
      Src: /src/git/parse-options.c:280,1
    - Dst: optname
      Src: /src/git/parse-options.c:281,1
    - Dst: error
      Src: /src/git/parse-options.c:285,1
    - Dst: _
      Src: /src/git/parse-options.c:285,1
    - Dst: optname
      Src: /src/git/parse-options.c:286,1
    - Dst: set_int_value
      Src: /src/git/parse-options.c:288,1
    - Dst: bitsizeof
      Src: /src/git/parse-options.c:292,1
    - Dst: get_arg
      Src: /src/git/parse-options.c:299,1
    - Dst: error
      Src: /src/git/parse-options.c:302,1
    - Dst: _
      Src: /src/git/parse-options.c:302,1
    - Dst: optname
      Src: /src/git/parse-options.c:303,1
    - Dst: git_parse_unsigned
      Src: /src/git/parse-options.c:304,1
    - Dst: error
      Src: /src/git/parse-options.c:306,1
    - Dst: _
      Src: /src/git/parse-options.c:306,1
    - Dst: optname
      Src: /src/git/parse-options.c:307,1
    - Dst: error
      Src: /src/git/parse-options.c:309,1
    - Dst: _
      Src: /src/git/parse-options.c:309,1
    - Dst: optname
      Src: /src/git/parse-options.c:311,1
    - Dst: BUG
      Src: /src/git/parse-options.c:328,1
    - Dst: optname
      Src: /src/git/parse-options.c:329,1
    - Dst: BUG
      Src: /src/git/parse-options.c:334,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 146
    argCount: 4
    argNames:
    - p
    - opt
    - flags
    - argp
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - enum opt_parsed
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 336
    functionName: do_get_value
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - error
    - set_int_value
    - get_arg
    - struct option*::ll_callback
    - fix_filename
    - skip_prefix
    - bitsizeof
    - git_parse_unsigned
    - get_int_value
    - is_missing_file
    - FREE_AND_NULL
    - _
    - free
    - optname
    - BUG
    - git_parse_signed
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result do_get_value(struct parse_opt_ctx_t *p,\n\t\t\t\t\t
      \ const struct option *opt,\n\t\t\t\t\t  enum opt_parsed flags,\n\t\t\t\t\t
      \ const char **argp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/parse-options.c:365,1
    - Dst: do_get_int_value
      Src: /src/git/parse-options.c:368,1
    - Dst: optbug
      Src: /src/git/parse-options.c:369,1
    - Dst: BUG_if_bug
      Src: /src/git/parse-options.c:373,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - opts
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 374
    functionName: build_cmdmode_list
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - BUG_if_bug
    - do_get_int_value
    - optbug
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void build_cmdmode_list(struct parse_opt_ctx_t *ctx,\n\t\t\t       const
      struct option *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/parse-options.c:380,1
    - Dst: xstrfmt
      Src: /src/git/parse-options.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - flags
    argTypes:
    - struct option*
    - char*
    - enum opt_parsed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 5
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: optnamearg
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    linkageType: ''
    returnType: char
    signature: "char *optnamearg(const struct option *opt, const char *arg,\n\t\t\tenum
      opt_parsed flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: do_get_value
      Src: /src/git/parse-options.c:390,1
    - Dst: do_get_int_value
      Src: /src/git/parse-options.c:397,1
    - Dst: BUG
      Src: /src/git/parse-options.c:399,1
    - Dst: optnamearg
      Src: /src/git/parse-options.c:417,1
    - Dst: optnamearg
      Src: /src/git/parse-options.c:418,1
    - Dst: error
      Src: /src/git/parse-options.c:419,1
    - Dst: _
      Src: /src/git/parse-options.c:419,1
    - Dst: free
      Src: /src/git/parse-options.c:421,1
    - Dst: free
      Src: /src/git/parse-options.c:422,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - p
    - opt
    - flags
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - enum opt_parsed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 385
    functionDepth: 6
    functionLinenumber: 385
    functionLinenumberEnd: 424
    functionName: get_value
    functionSourceFile: /src/git/parse-options.c
    functionUses: 19
    functionsReached:
    - error
    - optnamearg
    - do_get_int_value
    - _
    - free
    - do_get_value
    - BUG
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result get_value(struct parse_opt_ctx_t *p,\n\t\t\t\t
      \      const struct option *opt,\n\t\t\t\t       enum opt_parsed flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_value
      Src: /src/git/parse-options.c:434,1
    - Dst: isdigit
      Src: /src/git/parse-options.c:444,1
    - Dst: isdigit
      Src: /src/git/parse-options.c:449,1
    - Dst: xmemdupz
      Src: /src/git/parse-options.c:451,1
    - Dst: free
      Src: /src/git/parse-options.c:457,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - p
    - options
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 426
    functionDepth: 10
    functionLinenumber: 426
    functionLinenumberEnd: 461
    functionName: parse_short_opt
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - isdigit
    - xmemdupz
    - get_value
    - free
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result parse_short_opt(struct parse_opt_ctx_t *p,\n\t\t\t\t\t
      \    const struct option *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/parse-options.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - it
    - array
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 469
    functionName: has_string
    functionSourceFile: /src/git/parse-options.c
    functionUses: 16
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int has_string(const char *it, const char **array)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_string
      Src: /src/git/parse-options.c:485,1
    - Dst: has_string
      Src: /src/git/parse-options.c:486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - one_opt
    - another_opt
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 490
    functionName: is_alias
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - has_string
    linkageType: ''
    returnType: int
    signature: "int is_alias(struct parse_opt_ctx_t *ctx,\n\t\t    const struct option
      *one_opt,\n\t\t    const struct option *another_opt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_alias
      Src: /src/git/parse-options.c:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - p
    - option
    - flags
    - abbrev
    - ambiguous
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - enum opt_parsed
    - struct parsed_option*
    - struct parsed_option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 517
    functionName: register_abbrev
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - is_alias
    linkageType: ''
    returnType: void
    signature: "void register_abbrev(struct parse_opt_ctx_t *p,\n\t\t\t    const struct
      option *option, enum opt_parsed flags,\n\t\t\t    struct parsed_option *abbrev,\n\t\t\t
      \   struct parsed_option *ambiguous)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/parse-options.c:523,1
    - Dst: skip_prefix
      Src: /src/git/parse-options.c:530,1
    - Dst: skip_prefix
      Src: /src/git/parse-options.c:531,1
    - Dst: skip_prefix
      Src: /src/git/parse-options.c:547,1
    - Dst: skip_prefix
      Src: /src/git/parse-options.c:555,1
    - Dst: get_value
      Src: /src/git/parse-options.c:560,1
    - Dst: strncmp
      Src: /src/git/parse-options.c:564,1
    - Dst: register_abbrev
      Src: /src/git/parse-options.c:565,1
    - Dst: starts_with
      Src: /src/git/parse-options.c:569,1
    - Dst: register_abbrev
      Src: /src/git/parse-options.c:570,1
    - Dst: die
      Src: /src/git/parse-options.c:575,1
    - Dst: error
      Src: /src/git/parse-options.c:579,1
    - Dst: _
      Src: /src/git/parse-options.c:579,1
    - Dst: get_value
      Src: /src/git/parse-options.c:591,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 41
    argCount: 3
    argNames:
    - p
    - arg
    - options
    argTypes:
    - struct parse_opt_ctx_t*
    - char*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 594
    functionName: parse_long_opt
    functionSourceFile: /src/git/parse-options.c
    functionUses: 2
    functionsReached:
    - error
    - get_value
    - die
    - skip_prefix
    - starts_with
    - register_abbrev
    - _
    - strncmp
    - strchrnul
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result parse_long_opt(\n\tstruct parse_opt_ctx_t *p,
      const char *arg,\n\tconst struct option *options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_value
      Src: /src/git/parse-options.c:604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - p
    - arg
    - options
    argTypes:
    - struct parse_opt_ctx_t*
    - char*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 607
    functionName: parse_nodash_opt
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - get_value
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result parse_nodash_opt(struct parse_opt_ctx_t *p,\n\t\t\t\t\t
      \     const char *arg,\n\t\t\t\t\t      const struct option *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/parse-options.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - arg
    - options
    argTypes:
    - char*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 620
    functionName: parse_subcommand
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result parse_subcommand(const char *arg,\n\t\t\t\t\t
      \     const struct option *options)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/parse-options.c:624,1
    - Dst: starts_with
      Src: /src/git/parse-options.c:627,1
    - Dst: error
      Src: /src/git/parse-options.c:628,1
    - Dst: _
      Src: /src/git/parse-options.c:628,1
    - Dst: exit
      Src: /src/git/parse-options.c:629,1
    - Dst: starts_with
      Src: /src/git/parse-options.c:635,1
    - Dst: error
      Src: /src/git/parse-options.c:636,1
    - Dst: _
      Src: /src/git/parse-options.c:636,1
    - Dst: exit
      Src: /src/git/parse-options.c:637,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - arg
    - options
    argTypes:
    - char*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 640
    functionName: check_typos
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - error
    - exit
    - starts_with
    - strlen
    - _
    linkageType: ''
    returnType: void
    signature: void check_typos(const char *arg, const struct option *options)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/parse-options.c:648,1
    - Dst: optbug
      Src: /src/git/parse-options.c:652,1
    - Dst: optbug
      Src: /src/git/parse-options.c:656,1
    - Dst: optbug
      Src: /src/git/parse-options.c:658,1
    - Dst: optbug
      Src: /src/git/parse-options.c:662,1
    - Dst: optbug
      Src: /src/git/parse-options.c:670,1
    - Dst: optbug
      Src: /src/git/parse-options.c:674,1
    - Dst: signed_int_fits
      Src: /src/git/parse-options.c:681,1
    - Dst: optbug
      Src: /src/git/parse-options.c:682,1
    - Dst: optbug
      Src: /src/git/parse-options.c:687,1
    - Dst: optbug
      Src: /src/git/parse-options.c:691,1
    - Dst: optbug
      Src: /src/git/parse-options.c:693,1
    - Dst: optbug
      Src: /src/git/parse-options.c:697,1
    - Dst: optbug
      Src: /src/git/parse-options.c:699,1
    - Dst: optbug
      Src: /src/git/parse-options.c:702,1
    - Dst: optbug
      Src: /src/git/parse-options.c:708,1
    - Dst: optbug
      Src: /src/git/parse-options.c:712,1
    - Dst: strcspn
      Src: /src/git/parse-options.c:718,1
    - Dst: strlen
      Src: /src/git/parse-options.c:718,1
    - Dst: optbug
      Src: /src/git/parse-options.c:719,1
    - Dst: BUG_if_bug
      Src: /src/git/parse-options.c:721,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 62
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 722
    functionName: parse_options_check
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - memset
    - optbug
    - BUG_if_bug
    - signed_int_fits
    - strlen
    - strcspn
    linkageType: ''
    returnType: void
    signature: void parse_options_check(const struct option *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strset_add
      Src: /src/git/parse-options.c:730,1
    - Dst: optbug
      Src: /src/git/parse-options.c:731,1
    - Dst: BUG_if_bug
      Src: /src/git/parse-options.c:734,1
    - Dst: strset_clear
      Src: /src/git/parse-options.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 736
    functionName: parse_options_check_harder
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - strset_clear
    - BUG_if_bug
    - strset_add
    - optbug
    linkageType: ''
    returnType: void
    signature: void parse_options_check_harder(const struct option *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 744
    functionName: has_subcommands
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_subcommands(const struct option *options)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: has_subcommands
      Src: /src/git/parse-options.c:762,1
    - Dst: BUG
      Src: /src/git/parse-options.c:764,1
    - Dst: BUG
      Src: /src/git/parse-options.c:767,1
    - Dst: BUG
      Src: /src/git/parse-options.c:770,1
    - Dst: BUG
      Src: /src/git/parse-options.c:772,1
    - Dst: BUG
      Src: /src/git/parse-options.c:778,1
    - Dst: BUG
      Src: /src/git/parse-options.c:781,1
    - Dst: parse_options_check
      Src: /src/git/parse-options.c:782,1
    - Dst: build_cmdmode_list
      Src: /src/git/parse-options.c:783,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 6
    argNames:
    - ctx
    - argc
    - argv
    - prefix
    - options
    - flags
    argTypes:
    - struct parse_opt_ctx_t*
    - int
    - char**
    - char*
    - struct option*
    - enum parse_opt_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 784
    functionName: parse_options_start_1
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - build_cmdmode_list
    - has_subcommands
    - BUG
    - parse_options_check
    linkageType: ''
    returnType: void
    signature: "void parse_options_start_1(struct parse_opt_ctx_t *ctx,\n\t\t\t\t
      \ int argc, const char **argv, const char *prefix,\n\t\t\t\t  const struct option
      *options,\n\t\t\t\t  enum parse_opt_flags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/parse-options.c:791,1
    - Dst: parse_options_start_1
      Src: /src/git/parse-options.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ctx
    - argc
    - argv
    - prefix
    - options
    - flags
    argTypes:
    - struct parse_opt_ctx_t*
    - int
    - char**
    - char*
    - struct option*
    - enum parse_opt_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 786
    functionDepth: 4
    functionLinenumber: 786
    functionLinenumberEnd: 793
    functionName: parse_options_start
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - memset
    - parse_options_start_1
    linkageType: ''
    returnType: void
    signature: "void parse_options_start(struct parse_opt_ctx_t *ctx,\n\t\t\t int
      argc, const char **argv, const char *prefix,\n\t\t\t const struct option *options,\n\t\t\t
      enum parse_opt_flags flags)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/parse-options.c:830,1
    - Dst: printf
      Src: /src/git/parse-options.c:832,1
    - Dst: printf
      Src: /src/git/parse-options.c:835,1
    - Dst: printf
      Src: /src/git/parse-options.c:838,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 3
    argNames:
    - opts
    - show_all
    - nr_noopts
    argTypes:
    - struct option*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 842
    functionName: show_negated_gitcomp
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - printf
    linkageType: ''
    returnType: void
    signature: "void show_negated_gitcomp(const struct option *opts, int show_all,\n\t\t\t\t
      int nr_noopts)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/parse-options.c:883,1
    - Dst: printf
      Src: /src/git/parse-options.c:885,1
    - Dst: show_negated_gitcomp
      Src: /src/git/parse-options.c:888,1
    - Dst: show_negated_gitcomp
      Src: /src/git/parse-options.c:889,1
    - Dst: fputc
      Src: /src/git/parse-options.c:890,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 2
    argNames:
    - opts
    - show_all
    argTypes:
    - struct option*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 892
    functionName: show_gitcomp
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - fputc
    - printf
    - starts_with
    - show_negated_gitcomp
    linkageType: ''
    returnType: int
    signature: int show_gitcomp(const struct option *opts, int show_all)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DUP_ARRAY
      Src: /src/git/parse-options.c:918,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/parse-options.c:921,1
    - Dst: BUG
      Src: /src/git/parse-options.c:938,1
    - Dst: strbuf_addf
      Src: /src/git/parse-options.c:939,1
    - Dst: _
      Src: /src/git/parse-options.c:939,1
    - Dst: strcmp
      Src: /src/git/parse-options.c:944,1
    - Dst: BUG
      Src: /src/git/parse-options.c:948,1
    - Dst: memcpy
      Src: /src/git/parse-options.c:950,1
    - Dst: strbuf_detach
      Src: /src/git/parse-options.c:953,1
    - Dst: BUG
      Src: /src/git/parse-options.c:959,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - ctx
    - options
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 903
    functionDepth: 3
    functionLinenumber: 903
    functionLinenumberEnd: 968
    functionName: preprocess_options
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - memcpy
    - strcmp
    - strbuf_detach
    - _
    - CALLOC_ARRAY
    - DUP_ARRAY
    - BUG
    linkageType: ''
    returnType: struct option
    signature: "struct option *preprocess_options(struct parse_opt_ctx_t *ctx,\n\t\t\t\t\t
      const struct option *options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/parse-options.c:979,1
    - Dst: free
      Src: /src/git/parse-options.c:981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 982
    functionName: free_preprocessed_options
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_preprocessed_options(struct option *options)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: parse_nodash_opt
      Src: /src/git/parse-options.c:1012,1
    - Dst: parse_subcommand
      Src: /src/git/parse-options.c:1020,1
    - Dst: error
      Src: /src/git/parse-options.c:1036,1
    - Dst: _
      Src: /src/git/parse-options.c:1036,1
    - Dst: usage_with_options
      Src: /src/git/parse-options.c:1037,1
    - Dst: BUG
      Src: /src/git/parse-options.c:1044,1
    - Dst: strcmp
      Src: /src/git/parse-options.c:1049,1
    - Dst: strcmp
      Src: /src/git/parse-options.c:1056,1
    - Dst: show_gitcomp
      Src: /src/git/parse-options.c:1057,1
    - Dst: strcmp
      Src: /src/git/parse-options.c:1058,1
    - Dst: show_gitcomp
      Src: /src/git/parse-options.c:1059,1
    - Dst: parse_short_opt
      Src: /src/git/parse-options.c:1063,1
    - Dst: check_typos
      Src: /src/git/parse-options.c:1068,1
    - Dst: BUG
      Src: /src/git/parse-options.c:1076,1
    - Dst: check_typos
      Src: /src/git/parse-options.c:1081,1
    - Dst: parse_short_opt
      Src: /src/git/parse-options.c:1083,1
    - Dst: xstrdup
      Src: /src/git/parse-options.c:1095,1
    - Dst: BUG
      Src: /src/git/parse-options.c:1102,1
    - Dst: strcmp
      Src: /src/git/parse-options.c:1116,1
    - Dst: strcmp
      Src: /src/git/parse-options.c:1124,1
    - Dst: usage_with_options_internal
      Src: /src/git/parse-options.c:1125,1
    - Dst: strcmp
      Src: /src/git/parse-options.c:1127,1
    - Dst: parse_long_opt
      Src: /src/git/parse-options.c:1129,1
    - Dst: BUG
      Src: /src/git/parse-options.c:1139,1
    - Dst: usage_with_options_internal
      Src: /src/git/parse-options.c:1167,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 135
    argCount: 3
    argNames:
    - ctx
    - options
    - usagestr
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 995
    functionDepth: 11
    functionLinenumber: 995
    functionLinenumberEnd: 1169
    functionName: parse_options_step
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - error
    - parse_short_opt
    - parse_nodash_opt
    - usage_with_options_internal
    - parse_long_opt
    - strcmp
    - check_typos
    - parse_subcommand
    - _
    - show_gitcomp
    - BUG
    - xstrdup
    - usage_with_options
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result parse_options_step(struct parse_opt_ctx_t *ctx,\n\t\t\t\t\t
      const struct option *options,\n\t\t\t\t\t const char * const usagestr[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MOVE_ARRAY
      Src: /src/git/parse-options.c:1176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct parse_opt_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1179
    functionName: parse_options_end
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - MOVE_ARRAY
    linkageType: ''
    returnType: int
    signature: int parse_options_end(struct parse_opt_ctx_t *ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/parse-options.c:1191,1
    - Dst: memset
      Src: /src/git/parse-options.c:1193,1
    - Dst: preprocess_options
      Src: /src/git/parse-options.c:1194,1
    - Dst: parse_options_start_1
      Src: /src/git/parse-options.c:1197,1
    - Dst: parse_options_step
      Src: /src/git/parse-options.c:1198,1
    - Dst: exit
      Src: /src/git/parse-options.c:1201,1
    - Dst: exit
      Src: /src/git/parse-options.c:1203,1
    - Dst: error
      Src: /src/git/parse-options.c:1210,1
    - Dst: _
      Src: /src/git/parse-options.c:1210,1
    - Dst: usage_with_options
      Src: /src/git/parse-options.c:1211,1
    - Dst: error
      Src: /src/git/parse-options.c:1216,1
    - Dst: _
      Src: /src/git/parse-options.c:1216,1
    - Dst: isascii
      Src: /src/git/parse-options.c:1217,1
    - Dst: error
      Src: /src/git/parse-options.c:1218,1
    - Dst: _
      Src: /src/git/parse-options.c:1218,1
    - Dst: error
      Src: /src/git/parse-options.c:1220,1
    - Dst: _
      Src: /src/git/parse-options.c:1220,1
    - Dst: usage_with_options
      Src: /src/git/parse-options.c:1223,1
    - Dst: precompose_argv_prefix
      Src: /src/git/parse-options.c:1226,1
    - Dst: free_preprocessed_options
      Src: /src/git/parse-options.c:1227,1
    - Dst: free
      Src: /src/git/parse-options.c:1228,1
    - Dst: free
      Src: /src/git/parse-options.c:1231,1
    - Dst: parse_options_end
      Src: /src/git/parse-options.c:1234,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 6
    argNames:
    - argc
    - argv
    - prefix
    - options
    - usagestr
    - flags
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - char*[]
    - enum parse_opt_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1181
    functionDepth: 12
    functionLinenumber: 1181
    functionLinenumberEnd: 1235
    functionName: parse_options
    functionSourceFile: /src/git/parse-options.c
    functionUses: 13
    functionsReached:
    - error
    - memset
    - precompose_argv_prefix
    - git_env_bool
    - preprocess_options
    - exit
    - parse_options_start_1
    - parse_options_step
    - free_preprocessed_options
    - isascii
    - _
    - free
    - parse_options_end
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int parse_options(int argc, const char **argv,\n\t\t  const char *prefix,\n\t\t
      \ const struct option *options,\n\t\t  const char * const usagestr[],\n\t\t
      \ enum parse_opt_flags flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/git/parse-options.c:1241,1
    - Dst: _
      Src: /src/git/parse-options.c:1257,1
    - Dst: _
      Src: /src/git/parse-options.c:1272,1
    - Dst: _
      Src: /src/git/parse-options.c:1285,1
    - Dst: utf8_fprintf
      Src: /src/git/parse-options.c:1286,1
    - Dst: _
      Src: /src/git/parse-options.c:1286,1
    - Dst: _
      Src: /src/git/parse-options.c:1286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - opts
    - outfile
    argTypes:
    - struct option*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1237
    functionDepth: 6
    functionLinenumber: 1237
    functionLinenumberEnd: 1287
    functionName: usage_argh
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - utf8_fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int usage_argh(const struct option *opts, FILE *outfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/parse-options.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - outfile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1292
    functionName: usage_indent
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int usage_indent(FILE *outfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/parse-options.c:1299,1
    - Dst: fprintf
      Src: /src/git/parse-options.c:1301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - outfile
    - pos
    argTypes:
    - FILE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1302
    functionName: usage_padding
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage_padding(FILE *outfile, size_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/parse-options.c:1308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - opts
    - long_name
    argTypes:
    - struct option*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1312
    functionName: find_option_by_long_name
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct option
    signature: "struct option *find_option_by_long_name(const struct option *opts,\n\t\t\t\t\t\t
      \    const char *long_name)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/parse-options.c:1323,1
    - Dst: strlen
      Src: /src/git/parse-options.c:1333,1
    - Dst: strlen
      Src: /src/git/parse-options.c:1333,1
    - Dst: _
      Src: /src/git/parse-options.c:1338,1
    - Dst: _
      Src: /src/git/parse-options.c:1359,1
    - Dst: parse_options_check_harder
      Src: /src/git/parse-options.c:1363,1
    - Dst: fprintf
      Src: /src/git/parse-options.c:1369,1
    - Dst: _
      Src: /src/git/parse-options.c:1372,1
    - Dst: string_list_split
      Src: /src/git/parse-options.c:1379,1
    - Dst: fprintf_ln
      Src: /src/git/parse-options.c:1384,1
    - Dst: _
      Src: /src/git/parse-options.c:1384,1
    - Dst: fputc
      Src: /src/git/parse-options.c:1386,1
    - Dst: fprintf_ln
      Src: /src/git/parse-options.c:1388,1
    - Dst: fprintf_ln
      Src: /src/git/parse-options.c:1390,1
    - Dst: string_list_clear
      Src: /src/git/parse-options.c:1393,1
    - Dst: fputc
      Src: /src/git/parse-options.c:1408,1
    - Dst: fprintf
      Src: /src/git/parse-options.c:1411,1
    - Dst: _
      Src: /src/git/parse-options.c:1411,1
    - Dst: fputc
      Src: /src/git/parse-options.c:1418,1
    - Dst: usage_indent
      Src: /src/git/parse-options.c:1422,1
    - Dst: fprintf
      Src: /src/git/parse-options.c:1425,1
    - Dst: fprintf
      Src: /src/git/parse-options.c:1427,1
    - Dst: fprintf
      Src: /src/git/parse-options.c:1430,1
    - Dst: skip_prefix
      Src: /src/git/parse-options.c:1434,1
    - Dst: fprintf
      Src: /src/git/parse-options.c:1435,1
    - Dst: fprintf
      Src: /src/git/parse-options.c:1437,1
    - Dst: utf8_fprintf
      Src: /src/git/parse-options.c:1441,1
    - Dst: _
      Src: /src/git/parse-options.c:1441,1
    - Dst: usage_argh
      Src: /src/git/parse-options.c:1445,1
    - Dst: usage_padding
      Src: /src/git/parse-options.c:1448,1
    - Dst: fprintf_ln
      Src: /src/git/parse-options.c:1449,1
    - Dst: _
      Src: /src/git/parse-options.c:1449,1
    - Dst: _
      Src: /src/git/parse-options.c:1454,1
    - Dst: strchrnul
      Src: /src/git/parse-options.c:1455,1
    - Dst: usage_padding
      Src: /src/git/parse-options.c:1458,1
    - Dst: fwrite
      Src: /src/git/parse-options.c:1459,1
    - Dst: fputc
      Src: /src/git/parse-options.c:1462,1
    - Dst: find_option_by_long_name
      Src: /src/git/parse-options.c:1465,1
    - Dst: usage_indent
      Src: /src/git/parse-options.c:1467,1
    - Dst: fprintf
      Src: /src/git/parse-options.c:1468,1
    - Dst: usage_padding
      Src: /src/git/parse-options.c:1469,1
    - Dst: fprintf_ln
      Src: /src/git/parse-options.c:1470,1
    - Dst: _
      Src: /src/git/parse-options.c:1470,1
    - Dst: fputc
      Src: /src/git/parse-options.c:1474,1
    - Dst: fputs
      Src: /src/git/parse-options.c:1477,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 83
    argCount: 5
    argNames:
    - ctx
    - usagestr
    - opts
    - full
    - err
    argTypes:
    - struct parse_opt_ctx_t*
    - char**
    - struct option*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1314
    functionDepth: 7
    functionLinenumber: 1314
    functionLinenumberEnd: 1480
    functionName: usage_with_options_internal
    functionSourceFile: /src/git/parse-options.c
    functionUses: 1
    functionsReached:
    - find_option_by_long_name
    - string_list_clear
    - fputs
    - fprintf_ln
    - usage_padding
    - fwrite
    - utf8_fprintf
    - parse_options_check_harder
    - skip_prefix
    - usage_argh
    - string_list_split
    - strchrnul
    - strlen
    - _
    - fputc
    - usage_indent
    - fprintf
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result usage_with_options_internal(struct parse_opt_ctx_t
      *ctx,\n\t\t\t\t\t\t\t const char * const *usagestr,\n\t\t\t\t\t\t\t const struct
      option *opts,\n\t\t\t\t\t\t\t int full, int err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: usage_with_options_internal
      Src: /src/git/parse-options.c:1485,1
    - Dst: exit
      Src: /src/git/parse-options.c:1487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - usagestr
    - opts
    argTypes:
    - char**
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1482
    functionDepth: 8
    functionLinenumber: 1482
    functionLinenumberEnd: 1488
    functionName: usage_with_options
    functionSourceFile: /src/git/parse-options.c
    functionUses: 10
    functionsReached:
    - exit
    - usage_with_options_internal
    linkageType: ''
    returnType: void
    signature: "void usage_with_options(const char * const *usagestr,\n\t\t\tconst
      struct option *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/parse-options.c:1495,1
    - Dst: usage_with_options_internal
      Src: /src/git/parse-options.c:1496,1
    - Dst: exit
      Src: /src/git/parse-options.c:1498,1
    - Dst: strcmp
      Src: /src/git/parse-options.c:1499,1
    - Dst: usage_with_options_internal
      Src: /src/git/parse-options.c:1500,1
    - Dst: exit
      Src: /src/git/parse-options.c:1502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ac
    - av
    - usagestr
    - opts
    argTypes:
    - int
    - char**
    - char**
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1490
    functionDepth: 8
    functionLinenumber: 1490
    functionLinenumberEnd: 1505
    functionName: show_usage_with_options_if_asked
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - usage_with_options_internal
    - exit
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void show_usage_with_options_if_asked(int ac, const char **av,\n\t\t\t\t
      \     const char * const *usagestr,\n\t\t\t\t      const struct option *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die_message
      Src: /src/git/parse-options.c:1511,1
    - Dst: usage_with_options
      Src: /src/git/parse-options.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - msg
    - usagestr
    - options
    argTypes:
    - char*
    - char**
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1507
    functionDepth: 9
    functionLinenumber: 1507
    functionLinenumberEnd: 1513
    functionName: usage_msg_opt
    functionSourceFile: /src/git/parse-options.c
    functionUses: 2
    functionsReached:
    - die_message
    - usage_with_options
    linkageType: ''
    returnType: void
    signature: "void usage_msg_opt(const char *msg,\n\t\t   const char * const *usagestr,\n\t\t
      \  const struct option *options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/parse-options.c:1521,1
    - Dst: strbuf_vaddf
      Src: /src/git/parse-options.c:1522,1
    - Dst: va_end
      Src: /src/git/parse-options.c:1523,1
    - Dst: usage_msg_opt
      Src: /src/git/parse-options.c:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fmt
    - usagestr
    - options
    argTypes:
    - char*
    - char**
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1515
    functionDepth: 10
    functionLinenumber: 1515
    functionLinenumberEnd: 1526
    functionName: usage_msg_optf
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - strbuf_vaddf
    - usage_msg_opt
    linkageType: ''
    returnType: void
    signature: "void usage_msg_optf(const char * const fmt,\n\t\t\t     const char
      * const *usagestr,\n\t\t\t     const struct option *options, ...)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/parse-options.c:1546,1
    - Dst: _
      Src: /src/git/parse-options.c:1546,1
    - Dst: die
      Src: /src/git/parse-options.c:1550,1
    - Dst: _
      Src: /src/git/parse-options.c:1550,1
    - Dst: die
      Src: /src/git/parse-options.c:1554,1
    - Dst: _
      Src: /src/git/parse-options.c:1554,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 8
    argNames:
    - opt1
    - opt1_name
    - opt2
    - opt2_name
    - opt3
    - opt3_name
    - opt4
    - opt4_name
    argTypes:
    - int
    - char*
    - int
    - char*
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1528
    functionDepth: 0
    functionLinenumber: 1528
    functionLinenumberEnd: 1560
    functionName: die_for_incompatible_opt4
    functionSourceFile: /src/git/parse-options.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: "void die_for_incompatible_opt4(int opt1, const char *opt1_name,\n\t\t\t
      \      int opt2, const char *opt2_name,\n\t\t\t       int opt3, const char *opt3_name,\n\t\t\t
      \      int opt4, const char *opt4_name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/notes-utils.c:21,1
    - Dst: write_notes_tree
      Src: /src/git/notes-utils.c:23,1
    - Dst: die
      Src: /src/git/notes-utils.c:24,1
    - Dst: refs_read_ref
      Src: /src/git/notes-utils.c:29,1
    - Dst: get_main_ref_store
      Src: /src/git/notes-utils.c:29,1
    - Dst: lookup_commit
      Src: /src/git/notes-utils.c:30,1
    - Dst: repo_parse_commit
      Src: /src/git/notes-utils.c:31,1
    - Dst: die
      Src: /src/git/notes-utils.c:32,1
    - Dst: commit_list_insert
      Src: /src/git/notes-utils.c:33,1
    - Dst: commit_tree
      Src: /src/git/notes-utils.c:39,1
    - Dst: die
      Src: /src/git/notes-utils.c:41,1
    - Dst: commit_list_free
      Src: /src/git/notes-utils.c:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - r
    - t
    - parents
    - msg
    - msg_len
    - result_oid
    argTypes:
    - struct repository*
    - struct notes_tree*
    - struct commit_list*
    - char*
    - size_t
    - struct object_id*
    assertStmts:
    - condition: (t->initialized)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/git/notes-utils.c
    constantsTouched: []
    func_position:
      end: 44
      start: 12
    functionDepth: 15
    functionLinenumber: 12
    functionLinenumberEnd: 44
    functionName: create_notes_commit
    functionSourceFile: /src/git/notes-utils.c
    functionUses: 2
    functionsReached:
    - die
    - assert
    - repo_parse_commit
    - commit_tree
    - refs_read_ref
    - commit_list_free
    - lookup_commit
    - write_notes_tree
    - commit_list_insert
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void create_notes_commit(struct repository *r,\n\t\t\t struct notes_tree
      *t,\n\t\t\t const struct commit_list *parents,\n\t\t\t const char *msg, size_t
      msg_len,\n\t\t\t struct object_id *result_oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/notes-utils.c:54,1
    - Dst: _
      Src: /src/git/notes-utils.c:54,1
    - Dst: strbuf_addstr
      Src: /src/git/notes-utils.c:59,1
    - Dst: strbuf_complete_line
      Src: /src/git/notes-utils.c:60,1
    - Dst: create_notes_commit
      Src: /src/git/notes-utils.c:62,1
    - Dst: strbuf_insertstr
      Src: /src/git/notes-utils.c:63,1
    - Dst: refs_update_ref
      Src: /src/git/notes-utils.c:64,1
    - Dst: get_main_ref_store
      Src: /src/git/notes-utils.c:64,1
    - Dst: strbuf_release
      Src: /src/git/notes-utils.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - r
    - t
    - msg
    argTypes:
    - struct repository*
    - struct notes_tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 16
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: commit_notes
    functionSourceFile: /src/git/notes-utils.c
    functionUses: 0
    functionsReached:
    - strbuf_insertstr
    - strbuf_release
    - die
    - strbuf_complete_line
    - create_notes_commit
    - strbuf_addstr
    - _
    - refs_update_ref
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void commit_notes(struct repository *r, struct notes_tree *t, const
      char *msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/notes-utils.c:73,1
    - Dst: strcmp
      Src: /src/git/notes-utils.c:75,1
    - Dst: strcmp
      Src: /src/git/notes-utils.c:77,1
    - Dst: strcmp
      Src: /src/git/notes-utils.c:79,1
    - Dst: strcmp
      Src: /src/git/notes-utils.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - v
    - s
    argTypes:
    - char*
    - enum notes_merge_strategy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: parse_notes_merge_strategy
    functionSourceFile: /src/git/notes-utils.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_notes_merge_strategy(const char *v, enum notes_merge_strategy
      *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/notes-utils.c:91,1
    - Dst: strcasecmp
      Src: /src/git/notes-utils.c:93,1
    - Dst: strcasecmp
      Src: /src/git/notes-utils.c:95,1
    - Dst: strcasecmp
      Src: /src/git/notes-utils.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: parse_combine_notes_fn
    functionSourceFile: /src/git/notes-utils.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: combine_notes_fn
    signature: combine_notes_fn parse_combine_notes_fn(const char *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/notes-utils.c:108,1
    - Dst: strcmp
      Src: /src/git/notes-utils.c:108,1
    - Dst: git_config_bool
      Src: /src/git/notes-utils.c:109,1
    - Dst: strcmp
      Src: /src/git/notes-utils.c:111,1
    - Dst: config_error_nonbool
      Src: /src/git/notes-utils.c:113,1
    - Dst: parse_combine_notes_fn
      Src: /src/git/notes-utils.c:114,1
    - Dst: error
      Src: /src/git/notes-utils.c:116,1
    - Dst: _
      Src: /src/git/notes-utils.c:116,1
    - Dst: strcmp
      Src: /src/git/notes-utils.c:120,1
    - Dst: config_error_nonbool
      Src: /src/git/notes-utils.c:122,1
    - Dst: starts_with
      Src: /src/git/notes-utils.c:125,1
    - Dst: string_list_add_refs_by_glob
      Src: /src/git/notes-utils.c:126,1
    - Dst: warning
      Src: /src/git/notes-utils.c:128,1
    - Dst: _
      Src: /src/git/notes-utils.c:128,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - k
    - v
    - UNUSED
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: notes_rewrite_config
    functionSourceFile: /src/git/notes-utils.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - starts_with
    - parse_combine_notes_fn
    - string_list_add_refs_by_glob
    - strcmp
    - git_config_bool
    - warning
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int notes_rewrite_config(const char *k, const char *v,\n\t\t\t\tconst
      struct config_context *ctx UNUSED,\n\t\t\t\tvoid *cb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/notes-utils.c:139,1
    - Dst: getenv
      Src: /src/git/notes-utils.c:140,1
    - Dst: getenv
      Src: /src/git/notes-utils.c:141,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/notes-utils.c:145,1
    - Dst: parse_combine_notes_fn
      Src: /src/git/notes-utils.c:151,1
    - Dst: error
      Src: /src/git/notes-utils.c:158,1
    - Dst: _
      Src: /src/git/notes-utils.c:158,1
    - Dst: string_list_add_refs_from_colon_sep
      Src: /src/git/notes-utils.c:163,1
    - Dst: repo_config
      Src: /src/git/notes-utils.c:165,1
    - Dst: string_list_clear
      Src: /src/git/notes-utils.c:167,1
    - Dst: free
      Src: /src/git/notes-utils.c:168,1
    - Dst: free
      Src: /src/git/notes-utils.c:169,1
    - Dst: load_notes_trees
      Src: /src/git/notes-utils.c:172,1
    - Dst: string_list_clear
      Src: /src/git/notes-utils.c:173,1
    - Dst: free
      Src: /src/git/notes-utils.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 137
    functionDepth: 19
    functionLinenumber: 137
    functionLinenumberEnd: 176
    functionName: init_copy_notes_for_rewrite
    functionSourceFile: /src/git/notes-utils.c
    functionUses: 1
    functionsReached:
    - error
    - string_list_clear
    - load_notes_trees
    - xmalloc
    - parse_combine_notes_fn
    - string_list_add_refs_from_colon_sep
    - CALLOC_ARRAY
    - free
    - getenv
    - repo_config
    - _
    linkageType: ''
    returnType: struct notes_rewrite_cfg
    signature: struct notes_rewrite_cfg *init_copy_notes_for_rewrite(const char *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_note
      Src: /src/git/notes-utils.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - c
    - from_obj
    - to_obj
    argTypes:
    - struct notes_rewrite_cfg*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 6
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: copy_note_for_rewrite
    functionSourceFile: /src/git/notes-utils.c
    functionUses: 1
    functionsReached:
    - copy_note
    linkageType: ''
    returnType: int
    signature: "int copy_note_for_rewrite(struct notes_rewrite_cfg *c,\n\t\t\t  const
      struct object_id *from_obj, const struct object_id *to_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_notes
      Src: /src/git/notes-utils.c:194,1
    - Dst: free_notes
      Src: /src/git/notes-utils.c:195,1
    - Dst: free
      Src: /src/git/notes-utils.c:196,1
    - Dst: free
      Src: /src/git/notes-utils.c:198,1
    - Dst: free
      Src: /src/git/notes-utils.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - r
    - c
    - msg
    argTypes:
    - struct repository*
    - struct notes_rewrite_cfg*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 17
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: finish_copy_notes_for_rewrite
    functionSourceFile: /src/git/notes-utils.c
    functionUses: 1
    functionsReached:
    - free_notes
    - commit_notes
    - free
    linkageType: ''
    returnType: void
    signature: "void finish_copy_notes_for_rewrite(struct repository *r,\n\t\t\t\t
      \  struct notes_rewrite_cfg *c,\n\t\t\t\t   const char *msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/diff.c:136,1
    - Dst: LOOKUP_CONFIG
      Src: /src/git/diff.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - var
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: parse_diff_color_slot
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - LOOKUP_CONFIG
    linkageType: ''
    returnType: int
    signature: int parse_diff_color_slot(const char *var)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/diff.c:144,1
    - Dst: string_list_split_in_place
      Src: /src/git/diff.c:150,1
    - Dst: strcmp
      Src: /src/git/diff.c:153,1
    - Dst: strcmp
      Src: /src/git/diff.c:156,1
    - Dst: strcmp
      Src: /src/git/diff.c:159,1
    - Dst: strcmp
      Src: /src/git/diff.c:162,1
    - Dst: strcmp
      Src: /src/git/diff.c:164,1
    - Dst: isdigit
      Src: /src/git/diff.c:166,1
    - Dst: strtoul
      Src: /src/git/diff.c:168,1
    - Dst: isdigit
      Src: /src/git/diff.c:169,1
    - Dst: isdigit
      Src: /src/git/diff.c:173,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:179,1
    - Dst: _
      Src: /src/git/diff.c:179,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:184,1
    - Dst: _
      Src: /src/git/diff.c:184,1
    - Dst: string_list_clear
      Src: /src/git/diff.c:189,1
    - Dst: free
      Src: /src/git/diff.c:190,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - options
    - params_string
    - errmsg
    argTypes:
    - struct diff_options*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 141
    functionDepth: 5
    functionLinenumber: 141
    functionLinenumberEnd: 192
    functionName: parse_dirstat_params
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_addf
    - _
    - isdigit
    - strcmp
    - free
    - string_list_split_in_place
    - xstrdup
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int parse_dirstat_params(struct diff_options *options, const char
      *params_string,\n\t\t\t\tstruct strbuf *errmsg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diff.c:196,1
    - Dst: strcmp
      Src: /src/git/diff.c:198,1
    - Dst: strcmp
      Src: /src/git/diff.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - options
    - value
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: parse_submodule_params
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_submodule_params(struct diff_options *options, const char
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/diff.c:215,1
    - Dst: strcasecmp
      Src: /src/git/diff.c:215,1
    - Dst: git_config_bool
      Src: /src/git/diff.c:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: git_config_rename
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - strcasecmp
    - git_config_bool
    linkageType: ''
    returnType: int
    signature: int git_config_rename(const char *var, const char *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/diff.c:224,1
    - Dst: strcasecmp
      Src: /src/git/diff.c:224,1
    - Dst: strcasecmp
      Src: /src/git/diff.c:226,1
    - Dst: strcasecmp
      Src: /src/git/diff.c:228,1
    - Dst: strcasecmp
      Src: /src/git/diff.c:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 237
    functionName: parse_algorithm_value
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: long
    signature: long parse_algorithm_value(const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/diff.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - token
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: parse_one_token
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int parse_one_token(const char **arg, const char *token)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_one_token
      Src: /src/git/diff.c:255,1
    - Dst: parse_one_token
      Src: /src/git/diff.c:257,1
    - Dst: parse_one_token
      Src: /src/git/diff.c:259,1
    - Dst: parse_one_token
      Src: /src/git/diff.c:261,1
    - Dst: parse_one_token
      Src: /src/git/diff.c:263,1
    - Dst: parse_one_token
      Src: /src/git/diff.c:265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 274
    functionName: parse_ws_error_highlight
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - parse_one_token
    linkageType: ''
    returnType: int
    signature: int parse_ws_error_highlight(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: init_diff_ui_defaults
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_diff_ui_defaults(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diff.c:290,1
    - Dst: git_config_bool
      Src: /src/git/diff.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - var
    - value
    - UNUSED
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 6
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: git_diff_heuristic_config
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_diff_heuristic_config(const char *var, const char *value,\n\t\t\t
      \     void *cb UNUSED)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/diff.c:297,1
    - Dst: strcmp
      Src: /src/git/diff.c:306,1
    - Dst: strcmp
      Src: /src/git/diff.c:308,1
    - Dst: strcmp
      Src: /src/git/diff.c:310,1
    - Dst: strcmp
      Src: /src/git/diff.c:312,1
    - Dst: strcmp
      Src: /src/git/diff.c:314,1
    - Dst: strcmp
      Src: /src/git/diff.c:316,1
    - Dst: strcmp
      Src: /src/git/diff.c:318,1
    - Dst: error
      Src: /src/git/diff.c:321,1
    - Dst: _
      Src: /src/git/diff.c:321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 295
    functionDepth: 5
    functionLinenumber: 295
    functionLinenumberEnd: 322
    functionName: parse_color_moved
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - git_parse_maybe_bool
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_color_moved(const char *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: string_list_split_f
      Src: /src/git/diff.c:330,1
    - Dst: for_each_string_list_item
      Src: /src/git/diff.c:332,1
    - Dst: strcmp
      Src: /src/git/diff.c:333,1
    - Dst: strcmp
      Src: /src/git/diff.c:335,1
    - Dst: strcmp
      Src: /src/git/diff.c:337,1
    - Dst: strcmp
      Src: /src/git/diff.c:339,1
    - Dst: strcmp
      Src: /src/git/diff.c:341,1
    - Dst: error
      Src: /src/git/diff.c:345,1
    - Dst: _
      Src: /src/git/diff.c:345,1
    - Dst: error
      Src: /src/git/diff.c:351,1
    - Dst: _
      Src: /src/git/diff.c:351,1
    - Dst: string_list_clear
      Src: /src/git/diff.c:355,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 324
    functionDepth: 5
    functionLinenumber: 324
    functionLinenumberEnd: 358
    functionName: parse_color_moved_ws
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - for_each_string_list_item
    - string_list_clear
    - strcmp
    - _
    - string_list_split_f
    linkageType: ''
    returnType: unsigned
    signature: unsigned parse_color_moved_ws(const char *arg)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diff.c:363,1
    - Dst: strcmp
      Src: /src/git/diff.c:363,1
    - Dst: git_config_colorbool
      Src: /src/git/diff.c:364,1
    - Dst: strcmp
      Src: /src/git/diff.c:367,1
    - Dst: parse_color_moved
      Src: /src/git/diff.c:368,1
    - Dst: strcmp
      Src: /src/git/diff.c:374,1
    - Dst: config_error_nonbool
      Src: /src/git/diff.c:377,1
    - Dst: parse_color_moved_ws
      Src: /src/git/diff.c:378,1
    - Dst: strcmp
      Src: /src/git/diff.c:384,1
    - Dst: git_config_int
      Src: /src/git/diff.c:385,1
    - Dst: strcmp
      Src: /src/git/diff.c:391,1
    - Dst: git_config_int
      Src: /src/git/diff.c:392,1
    - Dst: strcmp
      Src: /src/git/diff.c:398,1
    - Dst: git_config_rename
      Src: /src/git/diff.c:399,1
    - Dst: strcmp
      Src: /src/git/diff.c:402,1
    - Dst: git_config_bool
      Src: /src/git/diff.c:403,1
    - Dst: strcmp
      Src: /src/git/diff.c:406,1
    - Dst: git_config_bool
      Src: /src/git/diff.c:407,1
    - Dst: strcmp
      Src: /src/git/diff.c:410,1
    - Dst: git_config_bool
      Src: /src/git/diff.c:411,1
    - Dst: strcmp
      Src: /src/git/diff.c:414,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:415,1
    - Dst: git_config_string
      Src: /src/git/diff.c:416,1
    - Dst: strcmp
      Src: /src/git/diff.c:418,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:419,1
    - Dst: git_config_string
      Src: /src/git/diff.c:420,1
    - Dst: strcmp
      Src: /src/git/diff.c:422,1
    - Dst: git_config_bool
      Src: /src/git/diff.c:423,1
    - Dst: strcmp
      Src: /src/git/diff.c:426,1
    - Dst: git_config_int
      Src: /src/git/diff.c:427,1
    - Dst: strcmp
      Src: /src/git/diff.c:430,1
    - Dst: git_config_int
      Src: /src/git/diff.c:431,1
    - Dst: strcmp
      Src: /src/git/diff.c:434,1
    - Dst: git_config_string
      Src: /src/git/diff.c:435,1
    - Dst: strcmp
      Src: /src/git/diff.c:436,1
    - Dst: git_config_bool
      Src: /src/git/diff.c:437,1
    - Dst: strcmp
      Src: /src/git/diff.c:440,1
    - Dst: git_config_string
      Src: /src/git/diff.c:441,1
    - Dst: strcmp
      Src: /src/git/diff.c:442,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:443,1
    - Dst: git_config_pathname
      Src: /src/git/diff.c:444,1
    - Dst: strcmp
      Src: /src/git/diff.c:447,1
    - Dst: config_error_nonbool
      Src: /src/git/diff.c:449,1
    - Dst: handle_ignore_submodules_arg
      Src: /src/git/diff.c:450,1
    - Dst: strcmp
      Src: /src/git/diff.c:453,1
    - Dst: config_error_nonbool
      Src: /src/git/diff.c:455,1
    - Dst: parse_submodule_params
      Src: /src/git/diff.c:456,1
    - Dst: warning
      Src: /src/git/diff.c:457,1
    - Dst: _
      Src: /src/git/diff.c:457,1
    - Dst: strcmp
      Src: /src/git/diff.c:462,1
    - Dst: config_error_nonbool
      Src: /src/git/diff.c:464,1
    - Dst: parse_algorithm_value
      Src: /src/git/diff.c:465,1
    - Dst: error
      Src: /src/git/diff.c:467,1
    - Dst: _
      Src: /src/git/diff.c:467,1
    - Dst: git_color_config
      Src: /src/git/diff.c:472,1
    - Dst: git_diff_basic_config
      Src: /src/git/diff.c:475,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 103
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 360
    functionDepth: 7
    functionLinenumber: 360
    functionLinenumberEnd: 476
    functionName: git_diff_ui_config
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - parse_color_moved
    - git_diff_basic_config
    - strcmp
    - error
    - parse_color_moved_ws
    - git_config_colorbool
    - git_config_int
    - git_config_pathname
    - parse_submodule_params
    - parse_algorithm_value
    - git_config_string
    - handle_ignore_submodules_arg
    - git_config_bool
    - _
    - warning
    - FREE_AND_NULL
    - git_color_config
    - git_config_rename
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_diff_ui_config(const char *var, const char *value,\n\t\t       const
      struct config_context *ctx, void *cb)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diff.c:483,1
    - Dst: git_config_int
      Src: /src/git/diff.c:484,1
    - Dst: userdiff_config
      Src: /src/git/diff.c:488,1
    - Dst: skip_prefix
      Src: /src/git/diff.c:491,1
    - Dst: skip_prefix
      Src: /src/git/diff.c:492,1
    - Dst: parse_diff_color_slot
      Src: /src/git/diff.c:493,1
    - Dst: config_error_nonbool
      Src: /src/git/diff.c:497,1
    - Dst: color_parse
      Src: /src/git/diff.c:498,1
    - Dst: strcmp
      Src: /src/git/diff.c:501,1
    - Dst: config_error_nonbool
      Src: /src/git/diff.c:504,1
    - Dst: parse_ws_error_highlight
      Src: /src/git/diff.c:505,1
    - Dst: error
      Src: /src/git/diff.c:507,1
    - Dst: _
      Src: /src/git/diff.c:507,1
    - Dst: strcmp
      Src: /src/git/diff.c:514,1
    - Dst: strcmp
      Src: /src/git/diff.c:516,1
    - Dst: git_config_bool
      Src: /src/git/diff.c:517,1
    - Dst: strcmp
      Src: /src/git/diff.c:521,1
    - Dst: config_error_nonbool
      Src: /src/git/diff.c:524,1
    - Dst: parse_dirstat_params
      Src: /src/git/diff.c:526,1
    - Dst: warning
      Src: /src/git/diff.c:527,1
    - Dst: _
      Src: /src/git/diff.c:527,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:529,1
    - Dst: git_diff_heuristic_config
      Src: /src/git/diff.c:534,1
    - Dst: git_default_config
      Src: /src/git/diff.c:537,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 478
    functionDepth: 7
    functionLinenumber: 478
    functionLinenumberEnd: 538
    functionName: git_diff_basic_config
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - error
    - git_config_int
    - userdiff_config
    - strbuf_release
    - git_config_bool
    - parse_ws_error_highlight
    - parse_dirstat_params
    - git_diff_heuristic_config
    - _
    - color_parse
    - git_default_config
    - warning
    - strcmp
    - skip_prefix
    - config_error_nonbool
    - parse_diff_color_slot
    linkageType: ''
    returnType: int
    signature: "int git_diff_basic_config(const char *var, const char *value,\n\t\t\t
      \ const struct config_context *ctx, void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quote_c_style
      Src: /src/git/diff.c:542,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:543,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:547,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:548,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:549,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:550,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:552,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:553,1
    - Dst: strbuf_detach
      Src: /src/git/diff.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 556
    functionName: quote_two
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - quote_c_style
    - strbuf_detach
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *quote_two(const char *one, const char *two)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/diff.c:565,1
    - Dst: getenv
      Src: /src/git/diff.c:565,1
    - Dst: git_env_bool
      Src: /src/git/diff.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 558
    functionDepth: 6
    functionLinenumber: 558
    functionLinenumberEnd: 574
    functionName: external_diff
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - getenv
    - xstrdup_or_null
    - git_env_bool
    linkageType: ''
    returnType: struct external_diff
    signature: struct external_diff *external_diff(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 679
    functionName: count_lines
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count_lines(const char *data, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:684,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - r
    - mf
    - one
    argTypes:
    - struct repository*
    - mmfile_t*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 695
    functionName: fill_mmfile
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_populate_filespec
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: int
    signature: "int fill_mmfile(struct repository *r, mmfile_t *mf,\n\t\t       struct
      diff_filespec *one)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:705,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - r
    - one
    argTypes:
    - struct repository*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 709
    functionName: diff_filespec_size
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_populate_filespec
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long diff_filespec_size(struct repository *r,\n\t\t\t\t\tstruct
      diff_filespec *one)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ws_blank_line
      Src: /src/git/diff.c:729,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - mf
    argTypes:
    - mmfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 735
    functionName: count_trailing_blank
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - ws_blank_line
    linkageType: ''
    returnType: int
    signature: int count_trailing_blank(mmfile_t *mf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count_trailing_blank
      Src: /src/git/diff.c:741,1
    - Dst: count_trailing_blank
      Src: /src/git/diff.c:742,1
    - Dst: count_lines
      Src: /src/git/diff.c:748,1
    - Dst: count_lines
      Src: /src/git/diff.c:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - mf1
    - mf2
    - ecbdata
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - struct emit_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 753
    functionName: check_blank_at_eof
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - count_trailing_blank
    - count_lines
    linkageType: ''
    returnType: void
    signature: "void check_blank_at_eof(mmfile_t *mf1, mmfile_t *mf2,\n\t\t\t       struct
      emit_callback *ecbdata)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/git/diff.c:763,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:763,1
    - Dst: want_color
      Src: /src/git/diff.c:776,1
    - Dst: fputs
      Src: /src/git/diff.c:777,1
    - Dst: fputs
      Src: /src/git/diff.c:782,1
    - Dst: fputc
      Src: /src/git/diff.c:787,1
    - Dst: fputs
      Src: /src/git/diff.c:794,1
    - Dst: fputs
      Src: /src/git/diff.c:795,1
    - Dst: fwrite
      Src: /src/git/diff.c:798,1
    - Dst: fputs
      Src: /src/git/diff.c:803,1
    - Dst: fputc
      Src: /src/git/diff.c:805,1
    - Dst: fputc
      Src: /src/git/diff.c:807,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 8
    argNames:
    - o
    - set_sign
    - set
    - reverse
    - reset
    - first
    - line
    - len
    argTypes:
    - struct diff_options*
    - char*
    - char*
    - unsigned
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 808
    functionName: emit_line_0
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - fputs
    - fwrite
    - diff_line_prefix
    - fputc
    - want_color
    linkageType: ''
    returnType: void
    signature: "void emit_line_0(struct diff_options *o,\n\t\t\tconst char *set_sign,
      const char *set, unsigned reverse, const char *reset,\n\t\t\tint first, const
      char *line, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_line_0
      Src: /src/git/diff.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - o
    - set
    - reset
    - line
    - len
    argTypes:
    - struct diff_options*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 814
    functionName: emit_line
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - emit_line_0
    linkageType: ''
    returnType: void
    signature: "void emit_line(struct diff_options *o, const char *set, const char
      *reset,\n\t\t      const char *line, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:900,1
    - Dst: memcpy
      Src: /src/git/diff.c:905,1
    - Dst: xmemdupz
      Src: /src/git/diff.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - o
    - e
    argTypes:
    - struct diff_options*
    - struct emitted_diff_symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 895
    functionDepth: 10
    functionLinenumber: 895
    functionLinenumberEnd: 907
    functionName: append_emitted_diff_symbol
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - ALLOC_GROW
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void append_emitted_diff_symbol(struct diff_options *o,\n\t\t\t\t
      \      struct emitted_diff_symbol *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/diff.c:913,1
    - Dst: free
      Src: /src/git/diff.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct emitted_diff_symbols*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 915
    functionName: free_emitted_diff_symbols
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_emitted_diff_symbols(struct emitted_diff_symbols *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/diff.c:958,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - es
    argTypes:
    - struct emitted_diff_symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 968
    functionName: fill_es_indent_data
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: void
    signature: void fill_es_indent_data(struct emitted_diff_symbol *es)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct emitted_diff_symbol*
    - struct emitted_diff_symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 980
    functionName: compute_ws_delta
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int compute_ws_delta(const struct emitted_diff_symbol *a,\n\t\t\t
      \   const struct emitted_diff_symbol *b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - cur
    - l
    - pmb
    argTypes:
    - struct moved_entry*
    - struct emitted_diff_symbol*
    - struct moved_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 1015
    functionName: cmp_in_block_with_wsd
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cmp_in_block_with_wsd(const struct moved_entry *cur,\n\t\t\t\t
      const struct emitted_diff_symbol *l,\n\t\t\t\t struct moved_block *pmb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/diff.c:1032,1
    - Dst: container_of
      Src: /src/git/diff.c:1033,1
    - Dst: xdiff_compare_lines
      Src: /src/git/diff.c:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hashmap_cmp_fn_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1039
    functionName: interned_diff_symbol_cmp
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - container_of
    - xdiff_compare_lines
    linkageType: ''
    returnType: int
    signature: "int interned_diff_symbol_cmp(const void *hashmap_cmp_fn_data,\n\t\t\t\t
      \   const struct hashmap_entry *eptr,\n\t\t\t\t    const struct hashmap_entry
      *entry_or_key,\n\t\t\t\t    const void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdiff_hash_string
      Src: /src/git/diff.c:1045,1
    - Dst: hashmap_entry_init
      Src: /src/git/diff.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - o
    - l
    - s
    argTypes:
    - struct diff_options*
    - struct emitted_diff_symbol*
    - struct interned_diff_symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1041
    functionDepth: 2
    functionLinenumber: 1041
    functionLinenumberEnd: 1050
    functionName: prepare_entry
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - hashmap_entry_init
    - xdiff_hash_string
    linkageType: ''
    returnType: void
    signature: "void prepare_entry(struct diff_options *o, struct emitted_diff_symbol
      *l,\n\t\t\t  struct interned_diff_symbol *s)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/diff.c:1067,1
    - Dst: mem_pool_init
      Src: /src/git/diff.c:1068,1
    - Dst: fill_es_indent_data
      Src: /src/git/diff.c:1083,1
    - Dst: prepare_entry
      Src: /src/git/diff.c:1085,1
    - Dst: hashmap_get_entry
      Src: /src/git/diff.c:1086,1
    - Dst: ALLOC_GROW_BY
      Src: /src/git/diff.c:1091,1
    - Dst: hashmap_add
      Src: /src/git/diff.c:1092,1
    - Dst: memcpy
      Src: /src/git/diff.c:1093,1
    - Dst: mem_pool_alloc
      Src: /src/git/diff.c:1093,1
    - Dst: mem_pool_alloc
      Src: /src/git/diff.c:1097,1
    - Dst: hashmap_clear
      Src: /src/git/diff.c:1112,1
    - Dst: mem_pool_discard
      Src: /src/git/diff.c:1113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - o
    - entry_mem_pool
    argTypes:
    - struct diff_options*
    - struct mem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1056
    functionDepth: 4
    functionLinenumber: 1056
    functionLinenumberEnd: 1116
    functionName: add_lines_to_move_detection
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - hashmap_add
    - mem_pool_init
    - mem_pool_discard
    - hashmap_init
    - ALLOC_GROW_BY
    - memcpy
    - mem_pool_alloc
    - prepare_entry
    - hashmap_clear
    - hashmap_get_entry
    - fill_es_indent_data
    linkageType: ''
    returnType: struct moved_entry_list
    signature: "struct moved_entry_list *add_lines_to_move_detection(struct diff_options
      *o,\n\t\t\t\t\t\t\t    struct mem_pool *entry_mem_pool)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp_in_block_with_wsd
      Src: /src/git/diff.c:1134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - o
    - l
    - pmb
    - pmb_nr
    argTypes:
    - struct diff_options*
    - struct emitted_diff_symbol*
    - struct moved_block*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1144
    functionName: pmb_advance_or_null
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - cmp_in_block_with_wsd
    linkageType: ''
    returnType: void
    signature: "void pmb_advance_or_null(struct diff_options *o,\n\t\t\t\tstruct emitted_diff_symbol
      *l,\n\t\t\t\tstruct moved_block *pmb,\n\t\t\t\tint *pmb_nr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:1161,1
    - Dst: compute_ws_delta
      Src: /src/git/diff.c:1164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - o
    - match
    - l
    - pmb_p
    - pmb_alloc_p
    - pmb_nr_p
    argTypes:
    - struct diff_options*
    - struct moved_entry*
    - struct emitted_diff_symbol*
    - struct moved_block**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1173
    functionName: fill_potential_moved_blocks
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - compute_ws_delta
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: "void fill_potential_moved_blocks(struct diff_options *o,\n\t\t\t\t\tstruct
      moved_entry *match,\n\t\t\t\t\tstruct emitted_diff_symbol *l,\n\t\t\t\t\tstruct
      moved_block **pmb_p,\n\t\t\t\t\tint *pmb_alloc_p, int *pmb_nr_p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/git/diff.c:1201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - o
    - n
    - block_length
    argTypes:
    - struct diff_options*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1211
    functionName: adjust_last_block
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: int
    signature: int adjust_last_block(struct diff_options *o, int n, int block_length)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: adjust_last_block
      Src: /src/git/diff.c:1239,1
    - Dst: pmb_advance_or_null
      Src: /src/git/diff.c:1262,1
    - Dst: adjust_last_block
      Src: /src/git/diff.c:1265,1
    - Dst: fill_potential_moved_blocks
      Src: /src/git/diff.c:1274,1
    - Dst: adjust_last_block
      Src: /src/git/diff.c:1298,1
    - Dst: free
      Src: /src/git/diff.c:1300,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 2
    argNames:
    - o
    - entry_list
    argTypes:
    - struct diff_options*
    - struct moved_entry_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1214
    functionDepth: 2
    functionLinenumber: 1214
    functionLinenumberEnd: 1301
    functionName: mark_color_as_moved
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - free
    - pmb_advance_or_null
    - adjust_last_block
    - fill_potential_moved_blocks
    linkageType: ''
    returnType: void
    signature: "void mark_color_as_moved(struct diff_options *o,\n\t\t\t\tstruct moved_entry_list
      *entry_list)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 20
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1303
    functionDepth: 0
    functionLinenumber: 1303
    functionLinenumberEnd: 1360
    functionName: dim_moved_lines
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dim_moved_lines(struct diff_options *o)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1377,1
    - Dst: emit_line_0
      Src: /src/git/diff.c:1383,1
    - Dst: emit_line_0
      Src: /src/git/diff.c:1385,1
    - Dst: emit_line_0
      Src: /src/git/diff.c:1388,1
    - Dst: emit_line_0
      Src: /src/git/diff.c:1391,1
    - Dst: ws_check_emit
      Src: /src/git/diff.c:1393,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 9
    argNames:
    - o
    - set_sign
    - set
    - reset
    - sign_index
    - line
    - len
    - ws_rule
    - blank_at_eof
    argTypes:
    - struct diff_options*
    - char*
    - char*
    - char*
    - int
    - char*
    - int
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1362
    functionDepth: 3
    functionLinenumber: 1362
    functionLinenumberEnd: 1396
    functionName: emit_line_ws_markup
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - emit_line_0
    - diff_get_color_opt
    - ws_check_emit
    linkageType: ''
    returnType: void
    signature: "void emit_line_ws_markup(struct diff_options *o,\n\t\t\t\tconst char
      *set_sign, const char *set,\n\t\t\t\tconst char *reset,\n\t\t\t\tint sign_index,
      const char *line, int len,\n\t\t\t\tunsigned ws_rule, int blank_at_eof)"
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: emit_line
      Src: /src/git/diff.c:1420,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1425,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1427,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1428,1
    - Dst: emit_line
      Src: /src/git/diff.c:1429,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1432,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1433,1
    - Dst: emit_line
      Src: /src/git/diff.c:1434,1
    - Dst: fprintf
      Src: /src/git/diff.c:1437,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:1438,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1442,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1443,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1449,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1451,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1453,1
    - Dst: emit_line_ws_markup
      Src: /src/git/diff.c:1455,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1466,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1470,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1474,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1477,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1480,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1482,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1490,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1492,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1494,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1496,1
    - Dst: emit_line_ws_markup
      Src: /src/git/diff.c:1499,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1511,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1515,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1519,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1522,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1525,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1527,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1535,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1537,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1539,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1541,1
    - Dst: emit_line_ws_markup
      Src: /src/git/diff.c:1543,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1548,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1549,1
    - Dst: emit_line
      Src: /src/git/diff.c:1550,1
    - Dst: fputs
      Src: /src/git/diff.c:1551,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1554,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1555,1
    - Dst: emit_line
      Src: /src/git/diff.c:1559,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1562,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1563,1
    - Dst: fprintf
      Src: /src/git/diff.c:1564,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:1564,1
    - Dst: strchr
      Src: /src/git/diff.c:1566,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1569,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1570,1
    - Dst: fprintf
      Src: /src/git/diff.c:1571,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:1571,1
    - Dst: strchr
      Src: /src/git/diff.c:1573,1
    - Dst: fprintf
      Src: /src/git/diff.c:1577,1
    - Dst: fprintf
      Src: /src/git/diff.c:1580,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:1580,1
    - Dst: fprintf
      Src: /src/git/diff.c:1583,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:1583,1
    - Dst: fprintf
      Src: /src/git/diff.c:1586,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:1586,1
    - Dst: fputs
      Src: /src/git/diff.c:1589,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:1589,1
    - Dst: fputc
      Src: /src/git/diff.c:1590,1
    - Dst: diff_get_color
      Src: /src/git/diff.c:1593,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1594,1
    - Dst: emit_line
      Src: /src/git/diff.c:1595,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1598,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1599,1
    - Dst: emit_line
      Src: /src/git/diff.c:1600,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1603,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:1604,1
    - Dst: emit_line
      Src: /src/git/diff.c:1605,1
    - Dst: fprintf
      Src: /src/git/diff.c:1608,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:1609,1
    - Dst: fprintf
      Src: /src/git/diff.c:1612,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:1613,1
    - Dst: emit_line
      Src: /src/git/diff.c:1616,1
    - Dst: strlen
      Src: /src/git/diff.c:1617,1
    - Dst: emit_line
      Src: /src/git/diff.c:1620,1
    - Dst: strlen
      Src: /src/git/diff.c:1620,1
    - Dst: fprintf
      Src: /src/git/diff.c:1623,1
    - Dst: fputs
      Src: /src/git/diff.c:1626,1
    - Dst: BUG
      Src: /src/git/diff.c:1629,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 182
    argCount: 2
    argNames:
    - o
    - eds
    argTypes:
    - struct diff_options*
    - struct emitted_diff_symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1398
    functionDepth: 4
    functionLinenumber: 1398
    functionLinenumberEnd: 1631
    functionName: emit_diff_symbol_from_struct
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - fputs
    - BUG
    - emit_line_ws_markup
    - strchr
    - emit_line
    - strlen
    - diff_get_color
    - diff_line_prefix
    - fputc
    - diff_get_color_opt
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void emit_diff_symbol_from_struct(struct diff_options *o,\n\t\t\t\t\t
      struct emitted_diff_symbol *eds)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: append_emitted_diff_symbol
      Src: /src/git/diff.c:1641,1
    - Dst: emit_diff_symbol_from_struct
      Src: /src/git/diff.c:1643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - o
    - s
    - line
    - len
    - flags
    argTypes:
    - struct diff_options*
    - enum diff_symbol
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1633
    functionDepth: 11
    functionLinenumber: 1633
    functionLinenumberEnd: 1644
    functionName: emit_diff_symbol
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - append_emitted_diff_symbol
    - emit_diff_symbol_from_struct
    linkageType: ''
    returnType: void
    signature: "void emit_diff_symbol(struct diff_options *o, enum diff_symbol s,\n\t\t\t
      \    const char *line, int len, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1648,1
    - Dst: strlen
      Src: /src/git/diff.c:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - line
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1646
    functionDepth: 12
    functionLinenumber: 1646
    functionLinenumberEnd: 1649
    functionName: diff_emit_submodule_del
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strlen
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: void diff_emit_submodule_del(struct diff_options *o, const char *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1653,1
    - Dst: strlen
      Src: /src/git/diff.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - line
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1651
    functionDepth: 12
    functionLinenumber: 1651
    functionLinenumberEnd: 1654
    functionName: diff_emit_submodule_add
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strlen
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: void diff_emit_submodule_add(struct diff_options *o, const char *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1658,1
    - Dst: strlen
      Src: /src/git/diff.c:1659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - path
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1656
    functionDepth: 12
    functionLinenumber: 1656
    functionLinenumberEnd: 1660
    functionName: diff_emit_submodule_untracked
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strlen
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: void diff_emit_submodule_untracked(struct diff_options *o, const char
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1664,1
    - Dst: strlen
      Src: /src/git/diff.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - path
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1662
    functionDepth: 12
    functionLinenumber: 1662
    functionLinenumberEnd: 1666
    functionName: diff_emit_submodule_modified
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strlen
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: void diff_emit_submodule_modified(struct diff_options *o, const char
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1670,1
    - Dst: strlen
      Src: /src/git/diff.c:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - header
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1668
    functionDepth: 12
    functionLinenumber: 1668
    functionLinenumberEnd: 1672
    functionName: diff_emit_submodule_header
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strlen
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: void diff_emit_submodule_header(struct diff_options *o, const char
      *header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1676,1
    - Dst: strlen
      Src: /src/git/diff.c:1676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - err
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1674
    functionDepth: 12
    functionLinenumber: 1674
    functionLinenumberEnd: 1677
    functionName: diff_emit_submodule_error
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strlen
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: void diff_emit_submodule_error(struct diff_options *o, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - line
    - len
    argTypes:
    - struct diff_options*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1679
    functionDepth: 12
    functionLinenumber: 1679
    functionLinenumberEnd: 1683
    functionName: diff_emit_submodule_pipethrough
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: "void diff_emit_submodule_pipethrough(struct diff_options *o,\n\t\t\t\t
      \    const char *line, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ws_blank_line
      Src: /src/git/diff.c:1693,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 3
    argNames:
    - ecbdata
    - line
    - len
    argTypes:
    - struct emit_callback*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1685
    functionDepth: 2
    functionLinenumber: 1685
    functionLinenumberEnd: 1694
    functionName: new_blank_line_at_eof
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - ws_blank_line
    linkageType: ''
    returnType: int
    signature: int new_blank_line_at_eof(struct emit_callback *ecbdata, const char
      *line, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_blank_line_at_eof
      Src: /src/git/diff.c:1700,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ecbdata
    - line
    - len
    argTypes:
    - struct emit_callback*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1696
    functionDepth: 12
    functionLinenumber: 1696
    functionLinenumberEnd: 1704
    functionName: emit_add_line
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - new_blank_line_at_eof
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: "void emit_add_line(struct emit_callback *ecbdata,\n\t\t\t  const char
      *line, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ecbdata
    - line
    - len
    argTypes:
    - struct emit_callback*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1706
    functionDepth: 12
    functionLinenumber: 1706
    functionLinenumberEnd: 1711
    functionName: emit_del_line
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: "void emit_del_line(struct emit_callback *ecbdata,\n\t\t\t  const char
      *line, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ecbdata
    - line
    - len
    argTypes:
    - struct emit_callback*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1713
    functionDepth: 12
    functionLinenumber: 1713
    functionLinenumberEnd: 1718
    functionName: emit_context_line
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: "void emit_context_line(struct emit_callback *ecbdata,\n\t\t\t      const
      char *line, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ecbdata
    - line
    - len
    argTypes:
    - struct emit_callback*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1720
    functionDepth: 12
    functionLinenumber: 1720
    functionLinenumberEnd: 1731
    functionName: emit_incomplete_line_marker
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - emit_diff_symbol
    linkageType: ''
    returnType: void
    signature: "void emit_incomplete_line_marker(struct emit_callback *ecbdata,\n\t\t\t\t\tconst
      char *line, int len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: diff_get_color
      Src: /src/git/diff.c:1736,1
    - Dst: diff_get_color
      Src: /src/git/diff.c:1737,1
    - Dst: diff_get_color
      Src: /src/git/diff.c:1738,1
    - Dst: diff_get_color
      Src: /src/git/diff.c:1739,1
    - Dst: want_color
      Src: /src/git/diff.c:1740,1
    - Dst: memcmp
      Src: /src/git/diff.c:1752,1
    - Dst: memmem
      Src: /src/git/diff.c:1753,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1754,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1762,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1763,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:1765,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:1767,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1768,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1782,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:1783,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1784,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1788,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:1789,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1790,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:1793,1
    - Dst: strbuf_complete_line
      Src: /src/git/diff.c:1794,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1795,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:1797,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - ecbdata
    - line
    - len
    argTypes:
    - struct emit_callback*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1733
    functionDepth: 12
    functionLinenumber: 1733
    functionLinenumberEnd: 1798
    functionName: emit_hunk_header
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_complete_line
    - emit_diff_symbol
    - diff_get_color
    - strbuf_addstr
    - strbuf_add
    - want_color
    - memmem
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void emit_hunk_header(struct emit_callback *ecbdata,\n\t\t\t     const
      char *line, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/diff.c:1803,1
    - Dst: BUG
      Src: /src/git/diff.c:1806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1800
    functionDepth: 1
    functionLinenumber: 1800
    functionLinenumberEnd: 1807
    functionName: claim_diff_tempfile
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - BUG
    linkageType: ''
    returnType: struct diff_tempfile
    signature: struct diff_tempfile *claim_diff_tempfile(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/diff.c:1812,1
    - Dst: is_tempfile_active
      Src: /src/git/diff.c:1813,1
    - Dst: delete_tempfile
      Src: /src/git/diff.c:1814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1809
    functionDepth: 5
    functionLinenumber: 1809
    functionLinenumberEnd: 1817
    functionName: remove_tempfile
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - is_tempfile_active
    - delete_tempfile
    linkageType: ''
    returnType: void
    signature: void remove_tempfile(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1823,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1826,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:1829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - out
    - count
    argTypes:
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1819
    functionDepth: 4
    functionLinenumber: 1819
    functionLinenumberEnd: 1832
    functionName: add_line_count
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void add_line_count(struct strbuf *out, int count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/diff.c:1843,1
    - Dst: xmalloc
      Src: /src/git/diff.c:1851,1
    - Dst: memcpy
      Src: /src/git/diff.c:1852,1
    - Dst: emit_del_line
      Src: /src/git/diff.c:1858,1
    - Dst: emit_add_line
      Src: /src/git/diff.c:1861,1
    - Dst: free
      Src: /src/git/diff.c:1863,1
    - Dst: emit_incomplete_line_marker
      Src: /src/git/diff.c:1870,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - ecbdata
    - prefix
    - data
    - size
    argTypes:
    - struct emit_callback*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1834
    functionDepth: 13
    functionLinenumber: 1834
    functionLinenumberEnd: 1872
    functionName: emit_rewrite_lines
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - memchr
    - emit_incomplete_line_marker
    - emit_add_line
    - memcpy
    - emit_del_line
    - xmalloc
    - free
    linkageType: ''
    returnType: void
    signature: "void emit_rewrite_lines(struct emit_callback *ecbdata,\n\t\t\t       int
      prefix, const char *data, int size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/diff.c:1902,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:1903,1
    - Dst: quote_two_c_style
      Src: /src/git/diff.c:1904,1
    - Dst: quote_two_c_style
      Src: /src/git/diff.c:1905,1
    - Dst: fill_textconv
      Src: /src/git/diff.c:1907,1
    - Dst: fill_textconv
      Src: /src/git/diff.c:1908,1
    - Dst: whitespace_rule
      Src: /src/git/diff.c:1910,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:1913,1
    - Dst: S_ISLNK
      Src: /src/git/diff.c:1913,1
    - Dst: memset
      Src: /src/git/diff.c:1916,1
    - Dst: check_blank_at_eof
      Src: /src/git/diff.c:1926,1
    - Dst: count_lines
      Src: /src/git/diff.c:1931,1
    - Dst: count_lines
      Src: /src/git/diff.c:1932,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1934,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1936,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1939,1
    - Dst: add_line_count
      Src: /src/git/diff.c:1941,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1943,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1944,1
    - Dst: add_line_count
      Src: /src/git/diff.c:1945,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:1946,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:1947,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:1948,1
    - Dst: emit_rewrite_lines
      Src: /src/git/diff.c:1951,1
    - Dst: emit_rewrite_lines
      Src: /src/git/diff.c:1953,1
    - Dst: free
      Src: /src/git/diff.c:1955,1
    - Dst: free
      Src: /src/git/diff.c:1957,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 7
    argNames:
    - name_a
    - name_b
    - one
    - two
    - textconv_one
    - textconv_two
    - o
    argTypes:
    - char*
    - char*
    - struct diff_filespec*
    - struct diff_filespec*
    - struct userdiff_driver*
    - struct userdiff_driver*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1874
    functionDepth: 14
    functionLinenumber: 1874
    functionLinenumberEnd: 1958
    functionName: emit_rewrite_diff
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - memset
    - strbuf_release
    - fill_textconv
    - strbuf_reset
    - S_ISLNK
    - count_lines
    - whitespace_rule
    - emit_diff_symbol
    - add_line_count
    - emit_rewrite_lines
    - quote_two_c_style
    - check_blank_at_eof
    - strbuf_addstr
    - free
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: void
    signature: "void emit_rewrite_diff(const char *name_a,\n\t\t\t      const char
      *name_b,\n\t\t\t      struct diff_filespec *one,\n\t\t\t      struct diff_filespec
      *two,\n\t\t\t      struct userdiff_driver *textconv_one,\n\t\t\t      struct
      userdiff_driver *textconv_two,\n\t\t\t      struct diff_options *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:1972,1
    - Dst: memcpy
      Src: /src/git/diff.c:1975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - line
    - len
    - buffer
    argTypes:
    - char*
    - unsigned long
    - struct diff_words_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1969
    functionDepth: 1
    functionLinenumber: 1969
    functionLinenumberEnd: 1978
    functionName: diff_words_append
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void diff_words_append(char *line, unsigned long len,\n\t\tstruct
      diff_words_buffer *buffer)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/diff.c:2018,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:2020,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:2020,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:2026,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:2027,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:2028,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:2029,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:2031,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:2036,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:2041,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:2043,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:2049,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:2051,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 5
    argNames:
    - o
    - st_el
    - newline
    - count
    - buf
    argTypes:
    - struct diff_options*
    - struct diff_words_style_elem*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2009
    functionDepth: 12
    functionLinenumber: 2009
    functionLinenumberEnd: 2053
    functionName: fn_out_diff_words_write_helper
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - memchr
    - strbuf_release
    - strbuf_reset
    - emit_diff_symbol
    - strbuf_addstr
    - diff_line_prefix
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int fn_out_diff_words_write_helper(struct diff_options *o,\n\t\t\t\t\t
      \ struct diff_words_style_elem *st_el,\n\t\t\t\t\t  const char *newline,\n\t\t\t\t\t
      \ size_t count, const char *buf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - diff_words
    argTypes:
    - struct diff_words_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2096
    functionName: color_words_output_graph_prefix
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int color_words_output_graph_prefix(struct diff_words_data *diff_words)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/diff.c:2109,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:2110,1
    - Dst: color_words_output_graph_prefix
      Src: /src/git/diff.c:2127,1
    - Dst: fputs
      Src: /src/git/diff.c:2128,1
    - Dst: fn_out_diff_words_write_helper
      Src: /src/git/diff.c:2131,1
    - Dst: fn_out_diff_words_write_helper
      Src: /src/git/diff.c:2137,1
    - Dst: fn_out_diff_words_write_helper
      Src: /src/git/diff.c:2142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 7
    argNames:
    - priv
    - minus_first
    - minus_len
    - plus_first
    - plus_len
    - UNUSED
    - UNUSED
    argTypes:
    - void*
    - long
    - long
    - long
    - long
    - char*
    - long funclen
    assertStmts:
    - condition: (opt)
      pos:
        line_end: 2108
        line_start: 2108
        source_file: /src/git/diff.c
    constantsTouched: []
    func_position:
      end: 2149
      start: 2098
    functionDepth: 13
    functionLinenumber: 2098
    functionLinenumberEnd: 2149
    functionName: fn_out_diff_words_aux
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - fputs
    - assert
    - fn_out_diff_words_write_helper
    - diff_line_prefix
    - color_words_output_graph_prefix
    linkageType: ''
    returnType: void
    signature: "void fn_out_diff_words_aux(void *priv,\n\t\t\t\t  long minus_first,
      long minus_len,\n\t\t\t\t  long plus_first, long plus_len,\n\t\t\t\t  const
      char *func UNUSED, long funclen UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: regexec_buf
      Src: /src/git/diff.c:2157,1
    - Dst: memchr
      Src: /src/git/diff.c:2159,1
    - Dst: isspace
      Src: /src/git/diff.c:2173,1
    - Dst: isspace
      Src: /src/git/diff.c:2180,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - buffer
    - word_regex
    - begin
    - end
    argTypes:
    - mmfile_t*
    - regex_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2152
    functionDepth: 2
    functionLinenumber: 2152
    functionLinenumberEnd: 2184
    functionName: find_word_boundaries
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - isspace
    - regexec_buf
    - memchr
    linkageType: ''
    returnType: int
    signature: "int find_word_boundaries(mmfile_t *buffer, regex_t *word_regex,\n\t\tint
      *begin, int *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:2201,1
    - Dst: find_word_boundaries
      Src: /src/git/diff.c:2206,1
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:2210,1
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:2217,1
    - Dst: memcpy
      Src: /src/git/diff.c:2218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - buffer
    - out
    - word_regex
    argTypes:
    - struct diff_words_buffer*
    - mmfile_t*
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2191
    functionDepth: 3
    functionLinenumber: 2191
    functionLinenumberEnd: 2224
    functionName: diff_words_fill
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - find_word_boundaries
    - ALLOC_GROW
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void diff_words_fill(struct diff_words_buffer *buffer, mmfile_t *out,\n\t\tregex_t
      *word_regex)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/diff.c:2237,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:2238,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:2242,1
    - Dst: strlen
      Src: /src/git/diff.c:2243,1
    - Dst: fn_out_diff_words_write_helper
      Src: /src/git/diff.c:2244,1
    - Dst: memset
      Src: /src/git/diff.c:2255,1
    - Dst: memset
      Src: /src/git/diff.c:2256,1
    - Dst: diff_words_fill
      Src: /src/git/diff.c:2257,1
    - Dst: diff_words_fill
      Src: /src/git/diff.c:2258,1
    - Dst: xdi_diff_outf
      Src: /src/git/diff.c:2262,1
    - Dst: die
      Src: /src/git/diff.c:2264,1
    - Dst: free
      Src: /src/git/diff.c:2265,1
    - Dst: free
      Src: /src/git/diff.c:2266,1
    - Dst: color_words_output_graph_prefix
      Src: /src/git/diff.c:2269,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:2270,1
    - Dst: strlen
      Src: /src/git/diff.c:2271,1
    - Dst: fn_out_diff_words_write_helper
      Src: /src/git/diff.c:2272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - diff_words
    argTypes:
    - struct diff_words_data*
    assertStmts:
    - condition: (opt)
      pos:
        line_end: 2236
        line_start: 2236
        source_file: /src/git/diff.c
    constantsTouched: []
    func_position:
      end: 2278
      start: 2227
    functionDepth: 13
    functionLinenumber: 2227
    functionLinenumberEnd: 2278
    functionName: diff_words_show
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_words_fill
    - memset
    - die
    - assert
    - emit_diff_symbol
    - fn_out_diff_words_write_helper
    - strlen
    - diff_line_prefix
    - free
    - color_words_output_graph_prefix
    - xdi_diff_outf
    linkageType: ''
    returnType: void
    signature: void diff_words_show(struct diff_words_data *diff_words)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_words_show
      Src: /src/git/diff.c:2287,1
    - Dst: append_emitted_diff_symbol
      Src: /src/git/diff.c:2299,1
    - Dst: free
      Src: /src/git/diff.c:2302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ecbdata
    argTypes:
    - struct emit_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2281
    functionDepth: 14
    functionLinenumber: 2281
    functionLinenumberEnd: 2306
    functionName: diff_words_flush
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - append_emitted_diff_symbol
    - diff_words_show
    - free
    linkageType: ''
    returnType: void
    signature: void diff_words_flush(struct emit_callback *ecbdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/diff.c:2315,1
    - Dst: userdiff_find_by_path
      Src: /src/git/diff.c:2316,1
    - Dst: userdiff_find_by_name
      Src: /src/git/diff.c:2320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - one
    - istate
    argTypes:
    - struct diff_filespec*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2308
    functionDepth: 4
    functionLinenumber: 2308
    functionLinenumberEnd: 2321
    functionName: diff_filespec_load_driver
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - userdiff_find_by_path
    - userdiff_find_by_name
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: "void diff_filespec_load_driver(struct diff_filespec *one,\n\t\t\t\t
      \     struct index_state *istate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_filespec_load_driver
      Src: /src/git/diff.c:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - istate
    argTypes:
    - struct diff_filespec*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2323
    functionDepth: 5
    functionLinenumber: 2323
    functionLinenumberEnd: 2328
    functionName: userdiff_word_regex
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_filespec_load_driver
    linkageType: ''
    returnType: char
    signature: "char *userdiff_word_regex(struct diff_filespec *one,\n\t\t\t\t       struct
      index_state *istate)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/diff.c:2336,1
    - Dst: memcpy
      Src: /src/git/diff.c:2337,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/diff.c:2339,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/diff.c:2344,1
    - Dst: userdiff_word_regex
      Src: /src/git/diff.c:2347,1
    - Dst: userdiff_word_regex
      Src: /src/git/diff.c:2349,1
    - Dst: xmalloc
      Src: /src/git/diff.c:2354,1
    - Dst: regcomp
      Src: /src/git/diff.c:2355,1
    - Dst: die
      Src: /src/git/diff.c:2358,1
    - Dst: ARRAY_SIZE
      Src: /src/git/diff.c:2361,1
    - Dst: want_color
      Src: /src/git/diff.c:2368,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:2370,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:2371,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:2372,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - ecbdata
    - orig_opts
    - one
    - two
    argTypes:
    - struct emit_callback*
    - struct diff_options*
    - struct diff_filespec*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2330
    functionDepth: 6
    functionLinenumber: 2330
    functionLinenumberEnd: 2374
    functionName: init_diff_words_data
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - die
    - userdiff_word_regex
    - memcpy
    - xmalloc
    - CALLOC_ARRAY
    - regcomp
    - diff_get_color_opt
    - want_color
    linkageType: ''
    returnType: void
    signature: "void init_diff_words_data(struct emit_callback *ecbdata,\n\t\t\t\t
      struct diff_options *orig_opts,\n\t\t\t\t struct diff_filespec *one,\n\t\t\t\t
      struct diff_filespec *two)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_words_flush
      Src: /src/git/diff.c:2379,1
    - Dst: free_emitted_diff_symbols
      Src: /src/git/diff.c:2380,1
    - Dst: free
      Src: /src/git/diff.c:2381,1
    - Dst: free
      Src: /src/git/diff.c:2382,1
    - Dst: free
      Src: /src/git/diff.c:2383,1
    - Dst: free
      Src: /src/git/diff.c:2384,1
    - Dst: free
      Src: /src/git/diff.c:2385,1
    - Dst: regfree
      Src: /src/git/diff.c:2387,1
    - Dst: free
      Src: /src/git/diff.c:2388,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:2390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ecbdata
    argTypes:
    - struct emit_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2376
    functionDepth: 15
    functionLinenumber: 2376
    functionLinenumberEnd: 2392
    functionName: free_diff_words_data
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - free_emitted_diff_symbols
    - regfree
    - diff_words_flush
    - free
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void free_diff_words_data(struct emit_callback *ecbdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color
      Src: /src/git/diff.c:2396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - diff_use_color
    - ix
    argTypes:
    - enum git_colorbool
    - enum color_diff
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2394
    functionDepth: 1
    functionLinenumber: 2394
    functionLinenumberEnd: 2399
    functionName: diff_get_color
    functionSourceFile: /src/git/diff.c
    functionUses: 6
    functionsReached:
    - want_color
    linkageType: ''
    returnType: char
    signature: char *diff_get_color(enum git_colorbool diff_use_color, enum color_diff
      ix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct diff_options*::output_prefix
      Src: /src/git/diff.c:2404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2401
    functionDepth: 0
    functionLinenumber: 2401
    functionLinenumberEnd: 2406
    functionName: diff_line_prefix
    functionSourceFile: /src/git/diff.c
    functionUses: 9
    functionsReached:
    - struct diff_options*::output_prefix
    linkageType: ''
    returnType: char
    signature: char *diff_line_prefix(struct diff_options *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_width
      Src: /src/git/diff.c:2417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2408
    functionDepth: 3
    functionLinenumber: 2408
    functionLinenumberEnd: 2422
    functionName: sane_truncate_line
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - utf8_width
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long sane_truncate_line(char *line, unsigned long len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/diff.c:2429,1
    - Dst: strtol
      Src: /src/git/diff.c:2432,1
    - Dst: strchr
      Src: /src/git/diff.c:2433,1
    - Dst: strtol
      Src: /src/git/diff.c:2436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - line
    - ecbdata
    argTypes:
    - char*
    - struct emit_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2424
    functionDepth: 0
    functionLinenumber: 2424
    functionLinenumberEnd: 2437
    functionName: find_lno
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strtol
    - strchr
    linkageType: ''
    returnType: void
    signature: void find_lno(const char *line, struct emit_callback *ecbdata)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:2447,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:2449,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:2454,1
    - Dst: strlen
      Src: /src/git/diff.c:2456,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:2457,1
    - Dst: strlen
      Src: /src/git/diff.c:2459,1
    - Dst: diff_words_flush
      Src: /src/git/diff.c:2465,1
    - Dst: sane_truncate_line
      Src: /src/git/diff.c:2466,1
    - Dst: find_lno
      Src: /src/git/diff.c:2467,1
    - Dst: emit_hunk_header
      Src: /src/git/diff.c:2468,1
    - Dst: diff_words_append
      Src: /src/git/diff.c:2477,1
    - Dst: diff_words_append
      Src: /src/git/diff.c:2481,1
    - Dst: starts_with
      Src: /src/git/diff.c:2484,1
    - Dst: diff_words_flush
      Src: /src/git/diff.c:2494,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:2495,1
    - Dst: emit_add_line
      Src: /src/git/diff.c:2502,1
    - Dst: emit_del_line
      Src: /src/git/diff.c:2506,1
    - Dst: emit_context_line
      Src: /src/git/diff.c:2511,1
    - Dst: BUG
      Src: /src/git/diff.c:2521,1
    - Dst: emit_incomplete_line_marker
      Src: /src/git/diff.c:2525,1
    - Dst: BUG
      Src: /src/git/diff.c:2528,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 3
    argNames:
    - priv
    - line
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2439
    functionDepth: 15
    functionLinenumber: 2439
    functionLinenumberEnd: 2532
    functionName: fn_out_consume
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - sane_truncate_line
    - find_lno
    - strbuf_reset
    - emit_incomplete_line_marker
    - emit_diff_symbol
    - emit_hunk_header
    - diff_words_flush
    - starts_with
    - diff_words_append
    - strlen
    - emit_add_line
    - emit_del_line
    - emit_context_line
    - BUG
    linkageType: ''
    returnType: int
    signature: int fn_out_consume(void *priv, char *line, unsigned long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - priv
    - UNUSED
    - UNUSED
    argTypes:
    - void*
    - char*
    - unsigned long len
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2534
    functionDepth: 0
    functionLinenumber: 2534
    functionLinenumberEnd: 2541
    functionName: quick_consume
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quick_consume(void *priv, char *line UNUSED, unsigned long len
      UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/diff.c:2545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct line_range_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2543
    functionDepth: 1
    functionLinenumber: 2543
    functionLinenumberEnd: 2547
    functionName: discard_pending_rm
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    linkageType: ''
    returnType: void
    signature: void discard_pending_rm(struct line_range_callback *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addbuf
      Src: /src/git/diff.c:2559,1
    - Dst: discard_pending_rm
      Src: /src/git/diff.c:2562,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:2573,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:2577,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:2581,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:2582,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:2584,1
    - Dst: struct line_range_callback*::orig_line_fn
      Src: /src/git/diff.c:2586,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:2587,1
    - Dst: memchr
      Src: /src/git/diff.c:2597,1
    - Dst: struct line_range_callback*::orig_line_fn
      Src: /src/git/diff.c:2600,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:2605,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct line_range_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2549
    functionDepth: 3
    functionLinenumber: 2549
    functionLinenumberEnd: 2606
    functionName: flush_rhunk
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - struct line_range_callback*::orig_line_fn
    - discard_pending_rm
    - strbuf_release
    - memchr
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - strbuf_addbuf
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void flush_rhunk(struct line_range_callback *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/diff.c:2631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - data
    - old_begin
    - UNUSED
    - new_begin
    - UNUSED
    - func
    - funclen
    argTypes:
    - void*
    - long
    - long old_nr
    - long
    - long new_nr
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2608
    functionDepth: 0
    functionLinenumber: 2608
    functionLinenumberEnd: 2634
    functionName: line_range_hunk_fn
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void line_range_hunk_fn(void *data,\n\t\t\t       long old_begin,
      long old_nr UNUSED,\n\t\t\t       long new_begin, long new_nr UNUSED,\n\t\t\t
      \      const char *func, long funclen)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/diff.c:2649,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:2656,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:2658,1
    - Dst: BUG
      Src: /src/git/diff.c:2664,1
    - Dst: flush_rhunk
      Src: /src/git/diff.c:2676,1
    - Dst: discard_pending_rm
      Src: /src/git/diff.c:2677,1
    - Dst: discard_pending_rm
      Src: /src/git/diff.c:2683,1
    - Dst: discard_pending_rm
      Src: /src/git/diff.c:2691,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:2704,1
    - Dst: strbuf_addbuf
      Src: /src/git/diff.c:2709,1
    - Dst: discard_pending_rm
      Src: /src/git/diff.c:2712,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:2715,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 3
    argNames:
    - priv
    - line
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2636
    functionDepth: 4
    functionLinenumber: 2636
    functionLinenumberEnd: 2723
    functionName: line_range_line_fn
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - discard_pending_rm
    - strbuf_reset
    - flush_rhunk
    - strbuf_addbuf
    - BUG
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int line_range_line_fn(void *priv, char *line, unsigned long len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/diff.c:2731,1
    - Dst: strlen
      Src: /src/git/diff.c:2732,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:2734,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:2735,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:2738,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:2739,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:2740,1
    - Dst: strbuf_grow
      Src: /src/git/diff.c:2788,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:2790,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:2791,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:2793,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:2794,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:2795,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:2797,1
    - Dst: strbuf_add
      Src: /src/git/diff.c:2798,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - name
    - a
    - b
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2725
    functionDepth: 4
    functionLinenumber: 2725
    functionLinenumberEnd: 2800
    functionName: pprint_rename
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    - strlen
    - strbuf_grow
    - strbuf_addstr
    - quote_c_style
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void pprint_rename(struct strbuf *name, const char *a, const char *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/diff.c:2807,1
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:2808,1
    - Dst: xstrdup
      Src: /src/git/diff.c:2811,1
    - Dst: xstrdup
      Src: /src/git/diff.c:2812,1
    - Dst: xstrdup
      Src: /src/git/diff.c:2817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - diffstat
    - name_a
    - name_b
    argTypes:
    - struct diffstat_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2820
      start: 2802
    functionDepth: 1
    functionLinenumber: 2802
    functionLinenumberEnd: 2820
    functionName: diffstat_add
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - ALLOC_GROW
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct diffstat_file
    signature: "struct diffstat_file *diffstat_add(struct diffstat_t *diffstat,\n\t\t\t\t\t
      \ const char *name_a,\n\t\t\t\t\t  const char *name_b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/diff.c:2828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - priv
    - line
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2822
    functionDepth: 1
    functionLinenumber: 2822
    functionLinenumberEnd: 2835
    functionName: diffstat_consume
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: int diffstat_consume(void *priv, char *line, unsigned long len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - it
    - width
    - max_change
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2839
    functionDepth: 0
    functionLinenumber: 2839
    functionLinenumberEnd: 2850
    functionName: scale_linear
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int scale_linear(int it, int width, int max_change)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:2857,1
    - Dst: strbuf_addchars
      Src: /src/git/diff.c:2858,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:2859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - out
    - ch
    - cnt
    - set
    - reset
    argTypes:
    - struct strbuf*
    - char
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2852
    functionDepth: 4
    functionLinenumber: 2852
    functionLinenumberEnd: 2860
    functionName: show_graph
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void show_graph(struct strbuf *out, char ch, int cnt,\n\t\t       const
      char *set, const char *reset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pprint_rename
      Src: /src/git/diff.c:2870,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:2872,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:2875,1
    - Dst: strbuf_detach
      Src: /src/git/diff.c:2877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct diffstat_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2862
    functionDepth: 5
    functionLinenumber: 2862
    functionLinenumberEnd: 2878
    functionName: fill_print_name
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - quote_c_style
    - pprint_rename
    - strbuf_detach
    linkageType: ''
    returnType: void
    signature: void fill_print_name(struct diffstat_file *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/diff.c:2886,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:2887,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:2892,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:2905,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:2911,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:2915,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:2916,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:2918,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - options
    - files
    - insertions
    - deletions
    argTypes:
    - struct diff_options*
    - int
    - int
    - int
    assertStmts:
    - condition: (insertions == 0 && deletions == 0)
      pos:
        line_end: 2885
        line_start: 2885
        source_file: /src/git/diff.c
    constantsTouched: []
    func_position:
      end: 2919
      start: 2880
    functionDepth: 12
    functionLinenumber: 2880
    functionLinenumberEnd: 2919
    functionName: print_stat_summary_inserts_deletes
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - assert
    - strbuf_addf
    - emit_diff_symbol
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void print_stat_summary_inserts_deletes(struct diff_options *options,\n\t\tint
      files, int insertions, int deletions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/diff.c:2925,1
    - Dst: print_stat_summary_inserts_deletes
      Src: /src/git/diff.c:2928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - fp
    - files
    - insertions
    - deletions
    argTypes:
    - FILE*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2921
    functionDepth: 13
    functionLinenumber: 2921
    functionLinenumberEnd: 2929
    functionName: print_stat_summary
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - memset
    - print_stat_summary_inserts_deletes
    linkageType: ''
    returnType: void
    signature: "void print_stat_summary(FILE *fp, int files,\n\t\t\tint insertions,
      int deletions)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_width
      Src: /src/git/diff.c:2945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - start
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2942
    functionDepth: 3
    functionLinenumber: 2942
    functionLinenumberEnd: 2951
    functionName: utf8_ish_width
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - utf8_width
    linkageType: ''
    returnType: int
    signature: int utf8_ish_width(const char **start)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:2961,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:2969,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:2970,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:2971,1
    - Dst: fill_print_name
      Src: /src/git/diff.c:2984,1
    - Dst: utf8_strwidth
      Src: /src/git/diff.c:2985,1
    - Dst: decimal_width
      Src: /src/git/diff.c:2996,1
    - Dst: decimal_width
      Src: /src/git/diff.c:2997,1
    - Dst: term_columns
      Src: /src/git/diff.c:3040,1
    - Dst: utf8_strnwidth
      Src: /src/git/diff.c:3040,1
    - Dst: strlen
      Src: /src/git/diff.c:3040,1
    - Dst: decimal_width
      Src: /src/git/diff.c:3043,1
    - Dst: decimal_width
      Src: /src/git/diff.c:3044,1
    - Dst: utf8_strwidth
      Src: /src/git/diff.c:3111,1
    - Dst: utf8_ish_width
      Src: /src/git/diff.c:3120,1
    - Dst: strchr
      Src: /src/git/diff.c:3122,1
    - Dst: utf8_strwidth
      Src: /src/git/diff.c:3126,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3131,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:3135,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3136,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:3138,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3141,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:3143,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3144,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:3146,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3147,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:3149,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3153,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3156,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:3158,1
    - Dst: scale_linear
      Src: /src/git/diff.c:3169,1
    - Dst: scale_linear
      Src: /src/git/diff.c:3174,1
    - Dst: scale_linear
      Src: /src/git/diff.c:3177,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3181,1
    - Dst: show_graph
      Src: /src/git/diff.c:3185,1
    - Dst: show_graph
      Src: /src/git/diff.c:3186,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:3187,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3188,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:3190,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3211,1
    - Dst: print_stat_summary_inserts_deletes
      Src: /src/git/diff.c:3217,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:3218,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 133
    argCount: 2
    argNames:
    - data
    - options
    argTypes:
    - struct diffstat_t*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3219
      start: 2953
    functionDepth: 13
    functionLinenumber: 2953
    functionLinenumberEnd: 3219
    functionName: show_stats
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - strbuf_addf
    - strchr
    - scale_linear
    - show_graph
    - strbuf_release
    - utf8_strnwidth
    - strbuf_addstr
    - diff_get_color_opt
    - decimal_width
    - diff_line_prefix
    - print_stat_summary_inserts_deletes
    - fill_print_name
    - strbuf_reset
    - emit_diff_symbol
    - strbuf_addch
    - utf8_strwidth
    - strlen
    - term_columns
    - utf8_ish_width
    linkageType: ''
    returnType: void
    signature: void show_stats(struct diffstat_t *data, struct diff_options *options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: print_stat_summary_inserts_deletes
      Src: /src/git/diff.c:3240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - data
    - options
    argTypes:
    - struct diffstat_t*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3221
    functionDepth: 13
    functionLinenumber: 3221
    functionLinenumberEnd: 3241
    functionName: show_shortstats
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - print_stat_summary_inserts_deletes
    linkageType: ''
    returnType: void
    signature: void show_shortstats(struct diffstat_t *data, struct diff_options *options)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/diff.c:3253,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:3253,1
    - Dst: fprintf
      Src: /src/git/diff.c:3256,1
    - Dst: fprintf
      Src: /src/git/diff.c:3258,1
    - Dst: fill_print_name
      Src: /src/git/diff.c:3262,1
    - Dst: write_name_quoted
      Src: /src/git/diff.c:3264,1
    - Dst: fputs
      Src: /src/git/diff.c:3267,1
    - Dst: putc
      Src: /src/git/diff.c:3268,1
    - Dst: putc
      Src: /src/git/diff.c:3272,1
    - Dst: write_name_quoted
      Src: /src/git/diff.c:3273,1
    - Dst: write_name_quoted
      Src: /src/git/diff.c:3275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - data
    - options
    argTypes:
    - struct diffstat_t*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3278
      start: 3243
    functionDepth: 6
    functionLinenumber: 3243
    functionLinenumberEnd: 3278
    functionName: show_numstat
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - fill_print_name
    - fputs
    - putc
    - write_name_quoted
    - diff_line_prefix
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_numstat(struct diffstat_t *data, struct diff_options *options)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:3295,1
    - Dst: strlen
      Src: /src/git/diff.c:3299,1
    - Dst: memcmp
      Src: /src/git/diff.c:3305,1
    - Dst: strchr
      Src: /src/git/diff.c:3307,1
    - Dst: gather_dirstat
      Src: /src/git/diff.c:3310,1
    - Dst: fprintf
      Src: /src/git/diff.c:3331,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - opt
    - dir
    - changed
    - base
    - baselen
    argTypes:
    - struct diff_options*
    - struct dirstat_dir*
    - unsigned long
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3339
      start: 3290
    functionDepth: 1
    functionLinenumber: 3290
    functionLinenumberEnd: 3339
    functionName: gather_dirstat
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - gather_dirstat
    - strchr
    - strlen
    - diff_line_prefix
    - fprintf
    - memcmp
    linkageType: ''
    returnType: long
    signature: "long gather_dirstat(struct diff_options *opt, struct dirstat_dir *dir,\n\t\tunsigned
      long changed, const char *base, int baselen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diff.c:3345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3346
      start: 3341
    functionDepth: 0
    functionLinenumber: 3341
    functionLinenumberEnd: 3346
    functionName: dirstat_compare
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int dirstat_compare(const void *_a, const void *_b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/diff.c:3359,1
    - Dst: gather_dirstat
      Src: /src/git/diff.c:3360,1
    - Dst: free
      Src: /src/git/diff.c:3363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - options
    - dir
    - changed
    argTypes:
    - struct diff_options*
    - struct dirstat_dir*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3364
      start: 3348
    functionDepth: 2
    functionLinenumber: 3348
    functionLinenumberEnd: 3364
    functionName: conclude_dirstat
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - QSORT
    - gather_dirstat
    - free
    linkageType: ''
    returnType: void
    signature: "void conclude_dirstat(struct diff_options *options,\n\t\t\t     struct
      dirstat_dir *dir,\n\t\t\t     unsigned long changed)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/diff.c:3391,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3413,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3413,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:3414,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:3415,1
    - Dst: diffcore_count_changes
      Src: /src/git/diff.c:3416,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:3419,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:3420,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3421,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:3422,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:3424,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3425,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:3426,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:3429,1
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:3448,1
    - Dst: conclude_dirstat
      Src: /src/git/diff.c:3455,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3456
      start: 3366
    functionDepth: 7
    functionLinenumber: 3366
    functionLinenumberEnd: 3456
    functionName: show_dirstat
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_free_filespec_data
    - conclude_dirstat
    - diff_populate_filespec
    - ALLOC_GROW
    - diffcore_count_changes
    - DIFF_FILE_VALID
    - oideq
    linkageType: ''
    returnType: void
    signature: void show_dirstat(struct diff_options *options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/git/diff.c:3485,1
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:3486,1
    - Dst: conclude_dirstat
      Src: /src/git/diff.c:3493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - data
    - options
    argTypes:
    - struct diffstat_t*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3494
      start: 3458
    functionDepth: 3
    functionLinenumber: 3458
    functionLinenumberEnd: 3494
    functionName: show_dirstat_by_line
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - conclude_dirstat
    - DIV_ROUND_UP
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void show_dirstat_by_line(struct diffstat_t *data, struct diff_options
      *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/diff.c:3498,1
    - Dst: free
      Src: /src/git/diff.c:3499,1
    - Dst: free
      Src: /src/git/diff.c:3500,1
    - Dst: free
      Src: /src/git/diff.c:3501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct diffstat_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3502
      start: 3496
    functionDepth: 1
    functionLinenumber: 3496
    functionLinenumberEnd: 3502
    functionName: free_diffstat_file
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_diffstat_file(struct diffstat_file *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_diffstat_file
      Src: /src/git/diff.c:3508,1
    - Dst: free
      Src: /src/git/diff.c:3509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - diffstat
    argTypes:
    - struct diffstat_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3504
    functionDepth: 2
    functionLinenumber: 3504
    functionLinenumberEnd: 3510
    functionName: free_diffstat_info
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - free
    - free_diffstat_file
    linkageType: ''
    returnType: void
    signature: void free_diffstat_info(struct diffstat_t *diffstat)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/diff.c:3540,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - line
    - marker_size
    - len
    argTypes:
    - char*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3522
    functionDepth: 1
    functionLinenumber: 3522
    functionLinenumberEnd: 3543
    functionName: is_conflict_marker
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int is_conflict_marker(const char *line, int marker_size, unsigned
      long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - priv
    - UNUSED
    - UNUSED
    - nb
    - UNUSED
    - UNUSED
    - UNUSED
    argTypes:
    - void*
    - long ob
    - long on
    - long
    - long nn
    - char*
    - long funclen
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3553
      start: 3545
    functionDepth: 0
    functionLinenumber: 3545
    functionLinenumberEnd: 3553
    functionName: checkdiff_consume_hunk
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void checkdiff_consume_hunk(void *priv,\n\t\t\t\t   long ob UNUSED,
      long on UNUSED,\n\t\t\t\t   long nb, long nn UNUSED,\n\t\t\t\t   const char
      *func UNUSED, long funclen UNUSED)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: diff_get_color
      Src: /src/git/diff.c:3560,1
    - Dst: diff_get_color
      Src: /src/git/diff.c:3561,1
    - Dst: diff_get_color
      Src: /src/git/diff.c:3562,1
    - Dst: assert
      Src: /src/git/diff.c:3566,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:3567,1
    - Dst: is_conflict_marker
      Src: /src/git/diff.c:3574,1
    - Dst: fprintf
      Src: /src/git/diff.c:3576,1
    - Dst: ws_check
      Src: /src/git/diff.c:3580,1
    - Dst: whitespace_error_string
      Src: /src/git/diff.c:3584,1
    - Dst: fprintf
      Src: /src/git/diff.c:3585,1
    - Dst: free
      Src: /src/git/diff.c:3587,1
    - Dst: emit_line
      Src: /src/git/diff.c:3588,1
    - Dst: ws_check_emit
      Src: /src/git/diff.c:3589,1
    - Dst: whitespace_error_string
      Src: /src/git/diff.c:3599,1
    - Dst: fprintf
      Src: /src/git/diff.c:3600,1
    - Dst: free
      Src: /src/git/diff.c:3602,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - priv
    - line
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts:
    - condition: (data->o)
      pos:
        line_end: 3565
        line_start: 3565
        source_file: /src/git/diff.c
    constantsTouched: []
    func_position:
      end: 3606
      start: 3555
    functionDepth: 3
    functionLinenumber: 3555
    functionLinenumberEnd: 3606
    functionName: checkdiff_consume
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - is_conflict_marker
    - assert
    - ws_check_emit
    - ws_check
    - emit_line
    - diff_get_color
    - diff_line_prefix
    - free
    - whitespace_error_string
    - fprintf
    linkageType: ''
    returnType: int
    signature: int checkdiff_consume(void *priv, char *line, unsigned long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate_init
      Src: /src/git/diff.c:3616,1
    - Dst: git_deflate_bound
      Src: /src/git/diff.c:3617,1
    - Dst: xmalloc
      Src: /src/git/diff.c:3618,1
    - Dst: git_deflate
      Src: /src/git/diff.c:3624,1
    - Dst: git_deflate_end
      Src: /src/git/diff.c:3626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - data
    - size
    - result_size
    argTypes:
    - char*
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3629
      start: 3608
    functionDepth: 4
    functionLinenumber: 3608
    functionLinenumberEnd: 3629
    functionName: deflate_it
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - git_deflate_init
    - git_deflate
    - git_deflate_end
    - git_deflate_bound
    - xmalloc
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *deflate_it(char *data,\n\t\t\t\t unsigned long size,\n\t\t\t\t
      unsigned long *result_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deflate_it
      Src: /src/git/diff.c:3647,1
    - Dst: diff_delta
      Src: /src/git/diff.c:3649,1
    - Dst: deflate_it
      Src: /src/git/diff.c:3655,1
    - Dst: free
      Src: /src/git/diff.c:3656,1
    - Dst: xstrfmt
      Src: /src/git/diff.c:3661,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3662,1
    - Dst: strlen
      Src: /src/git/diff.c:3663,1
    - Dst: free
      Src: /src/git/diff.c:3664,1
    - Dst: free
      Src: /src/git/diff.c:3665,1
    - Dst: xstrfmt
      Src: /src/git/diff.c:3669,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3670,1
    - Dst: strlen
      Src: /src/git/diff.c:3671,1
    - Dst: free
      Src: /src/git/diff.c:3672,1
    - Dst: free
      Src: /src/git/diff.c:3673,1
    - Dst: encode_85
      Src: /src/git/diff.c:3689,1
    - Dst: strlen
      Src: /src/git/diff.c:3692,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3696,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3699,1
    - Dst: free
      Src: /src/git/diff.c:3700,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 3
    argNames:
    - o
    - one
    - two
    argTypes:
    - struct diff_options*
    - mmfile_t*
    - mmfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3701
      start: 3631
    functionDepth: 12
    functionLinenumber: 3631
    functionLinenumberEnd: 3701
    functionName: emit_binary_diff_body
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - deflate_it
    - xstrfmt
    - emit_diff_symbol
    - strlen
    - encode_85
    - free
    - diff_delta
    linkageType: ''
    returnType: void
    signature: "void emit_binary_diff_body(struct diff_options *o,\n\t\t\t\t  mmfile_t
      *one, mmfile_t *two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3706,1
    - Dst: emit_binary_diff_body
      Src: /src/git/diff.c:3707,1
    - Dst: emit_binary_diff_body
      Src: /src/git/diff.c:3708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - o
    - one
    - two
    argTypes:
    - struct diff_options*
    - mmfile_t*
    - mmfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3709
      start: 3703
    functionDepth: 13
    functionLinenumber: 3703
    functionLinenumberEnd: 3709
    functionName: emit_binary_diff
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - emit_diff_symbol
    - emit_binary_diff_body
    linkageType: ''
    returnType: void
    signature: "void emit_binary_diff(struct diff_options *o,\n\t\t\t     mmfile_t
      *one, mmfile_t *two)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: diff_filespec_load_driver
      Src: /src/git/diff.c:3719,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3723,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:3724,1
    - Dst: buffer_is_binary
      Src: /src/git/diff.c:3726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - r
    - one
    argTypes:
    - struct repository*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3711
    functionDepth: 5
    functionLinenumber: 3711
    functionLinenumberEnd: 3733
    functionName: diff_filespec_is_binary
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - DIFF_FILE_VALID
    - diff_populate_filespec
    - diff_filespec_load_driver
    - buffer_is_binary
    linkageType: ''
    returnType: int
    signature: "int diff_filespec_is_binary(struct repository *r,\n\t\t\t    struct
      diff_filespec *one)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_filespec_load_driver
      Src: /src/git/diff.c:3738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - o
    - one
    argTypes:
    - struct diff_options*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3740
      start: 3735
    functionDepth: 5
    functionLinenumber: 3735
    functionLinenumberEnd: 3740
    functionName: diff_funcname_pattern
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_filespec_load_driver
    linkageType: ''
    returnType: struct userdiff_funcname
    signature: 'struct userdiff_funcname *

      diff_funcname_pattern(struct diff_options *o, struct diff_filespec *one)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - options
    - a
    - b
    argTypes:
    - struct diff_options*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3748
      start: 3742
    functionDepth: 0
    functionLinenumber: 3742
    functionLinenumberEnd: 3748
    functionName: diff_set_mnemonic_prefix
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diff_set_mnemonic_prefix(struct diff_options *options, const char
      *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3753
      start: 3750
    functionDepth: 0
    functionLinenumber: 3750
    functionLinenumberEnd: 3753
    functionName: diff_set_noprefix
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diff_set_noprefix(struct diff_options *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3759
      start: 3755
    functionDepth: 0
    functionLinenumber: 3755
    functionLinenumberEnd: 3759
    functionName: diff_set_default_prefix
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diff_set_default_prefix(struct diff_options *options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3764,1
    - Dst: diff_filespec_load_driver
      Src: /src/git/diff.c:3767,1
    - Dst: userdiff_get_textconv
      Src: /src/git/diff.c:3768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - r
    - one
    argTypes:
    - struct repository*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3761
    functionDepth: 5
    functionLinenumber: 3761
    functionLinenumberEnd: 3769
    functionName: get_textconv
    functionSourceFile: /src/git/diff.c
    functionUses: 4
    functionsReached:
    - diff_filespec_load_driver
    - DIFF_FILE_VALID
    - userdiff_get_textconv
    linkageType: ''
    returnType: struct userdiff_driver
    signature: "struct userdiff_driver *get_textconv(struct repository *r,\n\t\t\t\t
      \    struct diff_filespec *one)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/diff.c:3776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - o
    - path
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3777
      start: 3771
    functionDepth: 3
    functionLinenumber: 3771
    functionLinenumberEnd: 3777
    functionName: additional_headers
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - strmap_get
    linkageType: ''
    returnType: struct string_list
    signature: "struct string_list *additional_headers(struct diff_options *o,\n\t\t\t\t\t
      \     const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/diff.c:3788,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - msg
    - header
    - line_prefix
    - meta
    - reset
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3794
      start: 3779
    functionDepth: 2
    functionLinenumber: 3779
    functionLinenumberEnd: 3794
    functionName: add_formatted_header
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strchrnul
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void add_formatted_header(struct strbuf *msg,\n\t\t\t\t  const char
      *header,\n\t\t\t\t  const char *line_prefix,\n\t\t\t\t  const char *meta,\n\t\t\t\t
      \ const char *reset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_formatted_header
      Src: /src/git/diff.c:3805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 5
    argNames:
    - msg
    - more_headers
    - line_prefix
    - meta
    - reset
    argTypes:
    - struct strbuf*
    - struct string_list*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3807
      start: 3796
    functionDepth: 3
    functionLinenumber: 3796
    functionLinenumberEnd: 3807
    functionName: add_formatted_headers
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - add_formatted_header
    linkageType: ''
    returnType: void
    signature: "void add_formatted_headers(struct strbuf *msg,\n\t\t\t\t  struct string_list
      *more_headers,\n\t\t\t\t  const char *line_prefix,\n\t\t\t\t  const char *meta,\n\t\t\t\t
      \ const char *reset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3821,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - struct diff_filespec*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3822
      start: 3809
    functionDepth: 1
    functionLinenumber: 3809
    functionLinenumberEnd: 3822
    functionName: diff_filepair_is_phoney
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: int
    signature: "int diff_filepair_is_phoney(struct diff_filespec *one,\n\t\t\t\t   struct
      diff_filespec *two)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_algorithm_value
      Src: /src/git/diff.c:3827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - opts
    - alg
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3837
      start: 3824
    functionDepth: 2
    functionLinenumber: 3824
    functionLinenumberEnd: 3837
    functionName: set_diff_algorithm
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - parse_algorithm_value
    linkageType: ''
    returnType: int
    signature: "int set_diff_algorithm(struct diff_options *opts,\n\t\t\t      const
      char *alg)"
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:3852,1
    - Dst: diff_get_color_opt
      Src: /src/git/diff.c:3853,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:3858,1
    - Dst: diff_set_mnemonic_prefix
      Src: /src/git/diff.c:3860,1
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:3870,1
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:3871,1
    - Dst: diff_filepair_is_phoney
      Src: /src/git/diff.c:3872,1
    - Dst: show_submodule_diff_summary
      Src: /src/git/diff.c:3873,1
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:3879,1
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:3880,1
    - Dst: diff_filepair_is_phoney
      Src: /src/git/diff.c:3881,1
    - Dst: show_submodule_inline_diff
      Src: /src/git/diff.c:3882,1
    - Dst: get_textconv
      Src: /src/git/diff.c:3890,1
    - Dst: get_textconv
      Src: /src/git/diff.c:3891,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3895,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3896,1
    - Dst: quote_two
      Src: /src/git/diff.c:3898,1
    - Dst: quote_two
      Src: /src/git/diff.c:3899,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3900,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:3901,1
    - Dst: diff_filepair_is_phoney
      Src: /src/git/diff.c:3902,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3913,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3916,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:3918,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3923,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:3925,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3931,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3932,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:3937,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:3946,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:3947,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3948,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:3950,1
    - Dst: emit_rewrite_diff
      Src: /src/git/diff.c:3951,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3959,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:3961,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:3964,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:3965,1
    - Dst: S_ISREG
      Src: /src/git/diff.c:3968,1
    - Dst: S_ISREG
      Src: /src/git/diff.c:3968,1
    - Dst: oideq
      Src: /src/git/diff.c:3970,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3972,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3977,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:3979,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:3980,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3981,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:3983,1
    - Dst: fill_mmfile
      Src: /src/git/diff.c:3987,1
    - Dst: fill_mmfile
      Src: /src/git/diff.c:3988,1
    - Dst: die
      Src: /src/git/diff.c:3989,1
    - Dst: memcmp
      Src: /src/git/diff.c:3992,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3994,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:3998,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:3999,1
    - Dst: emit_binary_diff
      Src: /src/git/diff.c:4001,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4003,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:4004,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:4005,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:4007,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:4021,1
    - Dst: strbuf_reset
      Src: /src/git/diff.c:4023,1
    - Dst: fill_textconv
      Src: /src/git/diff.c:4026,1
    - Dst: fill_textconv
      Src: /src/git/diff.c:4027,1
    - Dst: whitespace_rule
      Src: /src/git/diff.c:4029,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:4032,1
    - Dst: S_ISLNK
      Src: /src/git/diff.c:4032,1
    - Dst: diff_funcname_pattern
      Src: /src/git/diff.c:4035,1
    - Dst: diff_funcname_pattern
      Src: /src/git/diff.c:4037,1
    - Dst: memset
      Src: /src/git/diff.c:4039,1
    - Dst: memset
      Src: /src/git/diff.c:4040,1
    - Dst: memset
      Src: /src/git/diff.c:4041,1
    - Dst: check_blank_at_eof
      Src: /src/git/diff.c:4048,1
    - Dst: xdiff_set_find_func
      Src: /src/git/diff.c:4063,1
    - Dst: getenv
      Src: /src/git/diff.c:4065,1
    - Dst: skip_prefix
      Src: /src/git/diff.c:4068,1
    - Dst: strtoul
      Src: /src/git/diff.c:4069,1
    - Dst: skip_prefix
      Src: /src/git/diff.c:4070,1
    - Dst: strtoul
      Src: /src/git/diff.c:4071,1
    - Dst: init_diff_words_data
      Src: /src/git/diff.c:4074,1
    - Dst: xdi_diff_outf
      Src: /src/git/diff.c:4086,1
    - Dst: memset
      Src: /src/git/diff.c:4093,1
    - Dst: strbuf_init
      Src: /src/git/diff.c:4097,1
    - Dst: strbuf_init
      Src: /src/git/diff.c:4098,1
    - Dst: xdi_diff_outf
      Src: /src/git/diff.c:4121,1
    - Dst: die
      Src: /src/git/diff.c:4125,1
    - Dst: flush_rhunk
      Src: /src/git/diff.c:4128,1
    - Dst: die
      Src: /src/git/diff.c:4130,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:4132,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:4133,1
    - Dst: xdi_diff_outf
      Src: /src/git/diff.c:4134,1
    - Dst: die
      Src: /src/git/diff.c:4136,1
    - Dst: free_diff_words_data
      Src: /src/git/diff.c:4138,1
    - Dst: free
      Src: /src/git/diff.c:4140,1
    - Dst: free
      Src: /src/git/diff.c:4142,1
    - Dst: xdiff_clear_find_func
      Src: /src/git/diff.c:4143,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:4147,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:4148,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:4149,1
    - Dst: free
      Src: /src/git/diff.c:4150,1
    - Dst: free
      Src: /src/git/diff.c:4151,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 196
    argCount: 9
    argNames:
    - name_a
    - name_b
    - one
    - two
    - xfrm_msg
    - must_show_header
    - o
    - complete_rewrite
    - line_ranges
    argTypes:
    - char*
    - char*
    - struct diff_filespec*
    - struct diff_filespec*
    - char*
    - int
    - struct diff_options*
    - int
    - struct range_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4153
      start: 3839
    functionDepth: 16
    functionLinenumber: 3839
    functionLinenumberEnd: 4153
    functionName: builtin_diff
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - emit_rewrite_diff
    - fill_textconv
    - S_ISLNK
    - diff_funcname_pattern
    - quote_two
    - strbuf_addf
    - diff_set_mnemonic_prefix
    - free
    - strbuf_release
    - diff_free_filespec_data
    - die
    - fill_mmfile
    - flush_rhunk
    - get_textconv
    - strbuf_addstr
    - diff_get_color_opt
    - strbuf_init
    - S_ISREG
    - diff_filespec_is_binary
    - strtoul
    - memset
    - show_submodule_diff_summary
    - xdiff_set_find_func
    - S_ISGITLINK
    - free_diff_words_data
    - check_blank_at_eof
    - diff_line_prefix
    - xdi_diff_outf
    - skip_prefix
    - show_submodule_inline_diff
    - strbuf_reset
    - xdiff_clear_find_func
    - whitespace_rule
    - init_diff_words_data
    - emit_diff_symbol
    - diff_filepair_is_phoney
    - emit_binary_diff
    - getenv
    - DIFF_FILE_VALID
    - oideq
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void builtin_diff(const char *name_a,\n\t\t\t const char *name_b,\n\t\t\t
      struct diff_filespec *one,\n\t\t\t struct diff_filespec *two,\n\t\t\t const
      char *xfrm_msg,\n\t\t\t int must_show_header,\n\t\t\t struct diff_options *o,\n\t\t\t
      int complete_rewrite,\n\t\t\t const struct range_set *line_ranges)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: S_ISLNK
      Src: /src/git/diff.c:4159,1
    - Dst: S_ISLNK
      Src: /src/git/diff.c:4168,1
    - Dst: S_ISLNK
      Src: /src/git/diff.c:4168,1
    - Dst: S_ISLNK
      Src: /src/git/diff.c:4170,1
    - Dst: S_ISLNK
      Src: /src/git/diff.c:4170,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 2
    argNames:
    - p
    - is_renamed
    argTypes:
    - struct diff_filepair*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4179
      start: 4155
    functionDepth: 1
    functionLinenumber: 4155
    functionLinenumberEnd: 4179
    functionName: get_compact_summary
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    linkageType: ''
    returnType: char
    signature: char *get_compact_summary(const struct diff_filepair *p, int is_renamed)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_PAIR_UNMERGED
      Src: /src/git/diff.c:4193,1
    - Dst: diffstat_add
      Src: /src/git/diff.c:4198,1
    - Dst: get_compact_summary
      Src: /src/git/diff.c:4201,1
    - Dst: oideq
      Src: /src/git/diff.c:4210,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:4212,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:4213,1
    - Dst: diff_filespec_size
      Src: /src/git/diff.c:4219,1
    - Dst: diff_filespec_size
      Src: /src/git/diff.c:4220,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:4225,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:4226,1
    - Dst: count_lines
      Src: /src/git/diff.c:4227,1
    - Dst: count_lines
      Src: /src/git/diff.c:4228,1
    - Dst: fill_mmfile
      Src: /src/git/diff.c:4236,1
    - Dst: fill_mmfile
      Src: /src/git/diff.c:4237,1
    - Dst: die
      Src: /src/git/diff.c:4238,1
    - Dst: memset
      Src: /src/git/diff.c:4240,1
    - Dst: memset
      Src: /src/git/diff.c:4241,1
    - Dst: xdi_diff_outf
      Src: /src/git/diff.c:4250,1
    - Dst: die
      Src: /src/git/diff.c:4252,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:4254,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:4254,1
    - Dst: free_diffstat_file
      Src: /src/git/diff.c:4270,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:4276,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:4277,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 7
    argNames:
    - name_a
    - name_b
    - one
    - two
    - diffstat
    - o
    - p
    argTypes:
    - char*
    - char*
    - struct diff_filespec*
    - struct diff_filespec*
    - struct diffstat_t*
    - struct diff_options*
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4181
    functionDepth: 6
    functionLinenumber: 4181
    functionLinenumberEnd: 4278
    functionName: builtin_diffstat
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - memset
    - diffstat_add
    - die
    - fill_mmfile
    - diff_free_filespec_data
    - count_lines
    - diff_populate_filespec
    - get_compact_summary
    - free_diffstat_file
    - DIFF_PAIR_UNMERGED
    - xdi_diff_outf
    - diff_filespec_size
    - DIFF_FILE_VALID
    - oideq
    - diff_filespec_is_binary
    linkageType: ''
    returnType: void
    signature: "void builtin_diffstat(const char *name_a, const char *name_b,\n\t\t\t
      \    struct diff_filespec *one,\n\t\t\t     struct diff_filespec *two,\n\t\t\t
      \    struct diffstat_t *diffstat,\n\t\t\t     struct diff_options *o,\n\t\t\t
      \    struct diff_filepair *p)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/diff.c:4292,1
    - Dst: whitespace_rule
      Src: /src/git/diff.c:4296,1
    - Dst: ll_merge_marker_size
      Src: /src/git/diff.c:4297,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:4300,1
    - Dst: S_ISLNK
      Src: /src/git/diff.c:4300,1
    - Dst: fill_mmfile
      Src: /src/git/diff.c:4303,1
    - Dst: fill_mmfile
      Src: /src/git/diff.c:4304,1
    - Dst: die
      Src: /src/git/diff.c:4305,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:4313,1
    - Dst: memset
      Src: /src/git/diff.c:4320,1
    - Dst: memset
      Src: /src/git/diff.c:4321,1
    - Dst: xdi_diff_outf
      Src: /src/git/diff.c:4324,1
    - Dst: die
      Src: /src/git/diff.c:4327,1
    - Dst: check_blank_at_eof
      Src: /src/git/diff.c:4334,1
    - Dst: whitespace_error_string
      Src: /src/git/diff.c:4340,1
    - Dst: fprintf
      Src: /src/git/diff.c:4341,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:4348,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:4349,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 6
    argNames:
    - name_a
    - name_b
    - attr_path
    - one
    - two
    - o
    argTypes:
    - char*
    - char*
    - char*
    - struct diff_filespec*
    - struct diff_filespec*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4352
      start: 4280
    functionDepth: 6
    functionLinenumber: 4280
    functionLinenumberEnd: 4352
    functionName: builtin_checkdiff
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - memset
    - diff_free_filespec_data
    - die
    - fill_mmfile
    - S_ISLNK
    - whitespace_error_string
    - whitespace_rule
    - ll_merge_marker_size
    - check_blank_at_eof
    - xdi_diff_outf
    - DIFF_FILE_VALID
    - fprintf
    - diff_filespec_is_binary
    linkageType: ''
    returnType: void
    signature: "void builtin_checkdiff(const char *name_a, const char *name_b,\n\t\t\t
      \     const char *attr_path,\n\t\t\t      struct diff_filespec *one,\n\t\t\t
      \     struct diff_filespec *two,\n\t\t\t      struct diff_options *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEXPTR_ALLOC_STR
      Src: /src/git/diff.c:4358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4362
      start: 4354
    functionDepth: 1
    functionLinenumber: 4354
    functionLinenumberEnd: 4362
    functionName: alloc_filespec
    functionSourceFile: /src/git/diff.c
    functionUses: 7
    functionsReached:
    - FLEXPTR_ALLOC_STR
    linkageType: ''
    returnType: struct diff_filespec
    signature: struct diff_filespec *alloc_filespec(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:4367,1
    - Dst: free
      Src: /src/git/diff.c:4368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - spec
    argTypes:
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4370
      start: 4364
    functionDepth: 1
    functionLinenumber: 4364
    functionLinenumberEnd: 4370
    functionName: free_filespec
    functionSourceFile: /src/git/diff.c
    functionUses: 6
    functionsReached:
    - diff_free_filespec_data
    - free
    linkageType: ''
    returnType: void
    signature: void free_filespec(struct diff_filespec *spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: canon_mode
      Src: /src/git/diff.c:4376,1
    - Dst: oidcpy
      Src: /src/git/diff.c:4377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - spec
    - oid
    - oid_valid
    - mode
    argTypes:
    - struct diff_filespec*
    - struct object_id*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4380
      start: 4372
    functionDepth: 2
    functionLinenumber: 4372
    functionLinenumberEnd: 4380
    functionName: fill_filespec
    functionSourceFile: /src/git/diff.c
    functionUses: 6
    functionsReached:
    - canon_mode
    - oidcpy
    linkageType: ''
    returnType: void
    signature: "void fill_filespec(struct diff_filespec *spec, const struct object_id
      *oid,\n\t\t   int oid_valid, unsigned short mode)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: has_object_pack
      Src: /src/git/diff.c:4422,1
    - Dst: would_convert_to_git
      Src: /src/git/diff.c:4429,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/diff.c:4436,1
    - Dst: strlen
      Src: /src/git/diff.c:4439,1
    - Dst: index_name_pos
      Src: /src/git/diff.c:4440,1
    - Dst: oideq
      Src: /src/git/diff.c:4449,1
    - Dst: S_ISREG
      Src: /src/git/diff.c:4449,1
    - Dst: ce_skip_worktree
      Src: /src/git/diff.c:4456,1
    - Dst: ce_uptodate
      Src: /src/git/diff.c:4462,1
    - Dst: lstat
      Src: /src/git/diff.c:4463,1
    - Dst: ie_match_stat
      Src: /src/git/diff.c:4463,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 21
    argCount: 4
    argNames:
    - istate
    - name
    - oid
    - want_file
    argTypes:
    - struct index_state*
    - char*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4467
      start: 4387
    functionDepth: 9
    functionLinenumber: 4387
    functionLinenumberEnd: 4467
    functionName: reuse_worktree_file
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - ce_uptodate
    - ie_match_stat
    - would_convert_to_git
    - strlen
    - ce_skip_worktree
    - path_in_sparse_checkout
    - has_object_pack
    - lstat
    - oideq
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int reuse_worktree_file(struct index_state *istate,\n\t\t\t       const
      char *name,\n\t\t\t       const struct object_id *oid,\n\t\t\t       int want_file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4478,1
    - Dst: oid_to_hex
      Src: /src/git/diff.c:4479,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:4483,1
    - Dst: strbuf_detach
      Src: /src/git/diff.c:4485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - s
    - size_only
    argTypes:
    - struct diff_filespec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4489
      start: 4469
    functionDepth: 3
    functionLinenumber: 4469
    functionLinenumberEnd: 4489
    functionName: diff_populate_gitlink
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - strbuf_addf
    - strbuf_detach
    linkageType: ''
    returnType: int
    signature: int diff_populate_gitlink(struct diff_filespec *s, int size_only)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:4511,1
    - Dst: die
      Src: /src/git/diff.c:4512,1
    - Dst: S_ISDIR
      Src: /src/git/diff.c:4513,1
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:4522,1
    - Dst: diff_populate_gitlink
      Src: /src/git/diff.c:4523,1
    - Dst: reuse_worktree_file
      Src: /src/git/diff.c:4526,1
    - Dst: lstat
      Src: /src/git/diff.c:4531,1
    - Dst: xsize_t
      Src: /src/git/diff.c:4539,1
    - Dst: S_ISLNK
      Src: /src/git/diff.c:4542,1
    - Dst: strbuf_readlink
      Src: /src/git/diff.c:4545,1
    - Dst: strbuf_detach
      Src: /src/git/diff.c:4548,1
    - Dst: would_convert_to_git
      Src: /src/git/diff.c:4559,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/diff.c:4572,1
    - Dst: open
      Src: /src/git/diff.c:4577,1
    - Dst: xmmap
      Src: /src/git/diff.c:4580,1
    - Dst: close
      Src: /src/git/diff.c:4581,1
    - Dst: convert_to_git
      Src: /src/git/diff.c:4587,1
    - Dst: munmap
      Src: /src/git/diff.c:4589,1
    - Dst: strbuf_detach
      Src: /src/git/diff.c:4591,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/diff.c:4609,1
    - Dst: struct diff_populate_filespec_options*::missing_object_cb
      Src: /src/git/diff.c:4613,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/diff.c:4615,1
    - Dst: die
      Src: /src/git/diff.c:4617,1
    - Dst: oid_to_hex
      Src: /src/git/diff.c:4617,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/diff.c:4623,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/diff.c:4631,1
    - Dst: die
      Src: /src/git/diff.c:4633,1
    - Dst: oid_to_hex
      Src: /src/git/diff.c:4633,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 86
    argCount: 3
    argNames:
    - r
    - s
    - options
    argTypes:
    - struct repository*
    - struct diff_filespec*
    - struct diff_populate_filespec_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4638
      start: 4496
    functionDepth: 21
    functionLinenumber: 4496
    functionLinenumberEnd: 4638
    functionName: diff_populate_filespec
    functionSourceFile: /src/git/diff.c
    functionUses: 8
    functionsReached:
    - DIFF_FILE_VALID
    - S_ISLNK
    - reuse_worktree_file
    - xsize_t
    - convert_to_git
    - die
    - repo_settings_get_big_file_threshold
    - munmap
    - oid_to_hex
    - struct diff_populate_filespec_options*::missing_object_cb
    - S_ISGITLINK
    - strbuf_detach
    - diff_populate_gitlink
    - S_ISDIR
    - open
    - would_convert_to_git
    - strbuf_readlink
    - xmmap
    - close
    - odb_read_object_info_extended
    - lstat
    linkageType: ''
    returnType: int
    signature: "int diff_populate_filespec(struct repository *r,\n\t\t\t   struct
      diff_filespec *s,\n\t\t\t   const struct diff_populate_filespec_options *options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/diff.c:4643,1
    - Dst: munmap
      Src: /src/git/diff.c:4645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4651
      start: 4640
    functionDepth: 1
    functionLinenumber: 4640
    functionLinenumberEnd: 4651
    functionName: diff_free_filespec_blob
    functionSourceFile: /src/git/diff.c
    functionUses: 3
    functionsReached:
    - munmap
    - free
    linkageType: ''
    returnType: void
    signature: void diff_free_filespec_blob(struct diff_filespec *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: diff_free_filespec_blob
      Src: /src/git/diff.c:4658,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:4659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4660
      start: 4653
    functionDepth: 2
    functionLinenumber: 4653
    functionLinenumberEnd: 4660
    functionName: diff_free_filespec_data
    functionSourceFile: /src/git/diff.c
    functionUses: 8
    functionsReached:
    - FREE_AND_NULL
    - diff_free_filespec_blob
    linkageType: ''
    returnType: void
    signature: void diff_free_filespec_data(struct diff_filespec *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/diff.c:4670,1
    - Dst: basename
      Src: /src/git/diff.c:4671,1
    - Dst: init_checkout_metadata
      Src: /src/git/diff.c:4674,1
    - Dst: mks_tempfile_dt
      Src: /src/git/diff.c:4676,1
    - Dst: die_errno
      Src: /src/git/diff.c:4678,1
    - Dst: convert_to_working_tree
      Src: /src/git/diff.c:4679,1
    - Dst: write_in_full
      Src: /src/git/diff.c:4684,1
    - Dst: close_tempfile_gently
      Src: /src/git/diff.c:4685,1
    - Dst: die_errno
      Src: /src/git/diff.c:4686,1
    - Dst: get_tempfile_path
      Src: /src/git/diff.c:4687,1
    - Dst: oid_to_hex_r
      Src: /src/git/diff.c:4688,1
    - Dst: xsnprintf
      Src: /src/git/diff.c:4689,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:4690,1
    - Dst: free
      Src: /src/git/diff.c:4691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - istate
    - path
    - temp
    - blob
    - size
    - oid
    - mode
    argTypes:
    - struct index_state*
    - char*
    - struct diff_tempfile*
    - void*
    - unsigned long
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4692
      start: 4662
    functionDepth: 7
    functionLinenumber: 4662
    functionLinenumberEnd: 4692
    functionName: prep_temp_blob
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - mks_tempfile_dt
    - oid_to_hex_r
    - strbuf_release
    - init_checkout_metadata
    - convert_to_working_tree
    - die_errno
    - basename
    - get_tempfile_path
    - close_tempfile_gently
    - xsnprintf
    - free
    - write_in_full
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void prep_temp_blob(struct index_state *istate,\n\t\t\t   const char
      *path, struct diff_tempfile *temp,\n\t\t\t   void *blob,\n\t\t\t   unsigned
      long size,\n\t\t\t   const struct object_id *oid,\n\t\t\t   int mode)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: claim_diff_tempfile
      Src: /src/git/diff.c:4697,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:4699,1
    - Dst: xsnprintf
      Src: /src/git/diff.c:4705,1
    - Dst: xsnprintf
      Src: /src/git/diff.c:4706,1
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:4710,1
    - Dst: reuse_worktree_file
      Src: /src/git/diff.c:4712,1
    - Dst: lstat
      Src: /src/git/diff.c:4714,1
    - Dst: die_errno
      Src: /src/git/diff.c:4717,1
    - Dst: S_ISLNK
      Src: /src/git/diff.c:4719,1
    - Dst: strbuf_readlink
      Src: /src/git/diff.c:4721,1
    - Dst: die_errno
      Src: /src/git/diff.c:4722,1
    - Dst: prep_temp_blob
      Src: /src/git/diff.c:4723,1
    - Dst: null_oid
      Src: /src/git/diff.c:4725,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:4728,1
    - Dst: oid_to_hex_r
      Src: /src/git/diff.c:4734,1
    - Dst: null_oid
      Src: /src/git/diff.c:4734,1
    - Dst: oid_to_hex_r
      Src: /src/git/diff.c:4736,1
    - Dst: xsnprintf
      Src: /src/git/diff.c:4743,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:4748,1
    - Dst: die
      Src: /src/git/diff.c:4749,1
    - Dst: prep_temp_blob
      Src: /src/git/diff.c:4750,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - r
    - one
    argTypes:
    - struct repository*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4755
      start: 4694
    functionDepth: 22
    functionLinenumber: 4694
    functionLinenumberEnd: 4755
    functionName: prepare_temp_file
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oid_to_hex_r
    - die
    - S_ISLNK
    - claim_diff_tempfile
    - diff_populate_filespec
    - S_ISGITLINK
    - reuse_worktree_file
    - die_errno
    - strbuf_readlink
    - prep_temp_blob
    - null_oid
    - xsnprintf
    - lstat
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: struct diff_tempfile
    signature: "struct diff_tempfile *prepare_temp_file(struct repository *r,\n\t\t\t\t\t
      \      struct diff_filespec *one)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_temp_file
      Src: /src/git/diff.c:4761,1
    - Dst: strvec_push
      Src: /src/git/diff.c:4762,1
    - Dst: strvec_push
      Src: /src/git/diff.c:4763,1
    - Dst: strvec_push
      Src: /src/git/diff.c:4764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - r
    - argv
    - df
    argTypes:
    - struct repository*
    - struct strvec*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4765
      start: 4757
    functionDepth: 23
    functionLinenumber: 4757
    functionLinenumberEnd: 4765
    functionName: add_external_diff_name
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - prepare_temp_file
    linkageType: ''
    returnType: void
    signature: "void add_external_diff_name(struct repository *r,\n\t\t\t\t   struct
      strvec *argv,\n\t\t\t\t   struct diff_filespec *df)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/diff.c:4796,1
    - Dst: strvec_push
      Src: /src/git/diff.c:4797,1
    - Dst: add_external_diff_name
      Src: /src/git/diff.c:4800,1
    - Dst: add_external_diff_name
      Src: /src/git/diff.c:4801,1
    - Dst: strvec_push
      Src: /src/git/diff.c:4803,1
    - Dst: strvec_push
      Src: /src/git/diff.c:4805,1
    - Dst: strvec_pushf
      Src: /src/git/diff.c:4809,1
    - Dst: strvec_pushf
      Src: /src/git/diff.c:4811,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:4813,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:4814,1
    - Dst: xdup
      Src: /src/git/diff.c:4819,1
    - Dst: fileno
      Src: /src/git/diff.c:4819,1
    - Dst: run_command
      Src: /src/git/diff.c:4820,1
    - Dst: die
      Src: /src/git/diff.c:4828,1
    - Dst: _
      Src: /src/git/diff.c:4828,1
    - Dst: remove_tempfile
      Src: /src/git/diff.c:4830,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 7
    argNames:
    - pgm
    - name
    - other
    - one
    - two
    - xfrm_msg
    - o
    argTypes:
    - struct external_diff*
    - char*
    - char*
    - struct diff_filespec*
    - struct diff_filespec*
    - char*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4831
      start: 4773
    functionDepth: 24
    functionLinenumber: 4773
    functionLinenumberEnd: 4831
    functionName: run_external_diff
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - diff_free_filespec_data
    - die
    - xdup
    - run_command
    - add_external_diff_name
    - fileno
    - remove_tempfile
    - _
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: "void run_external_diff(const struct external_diff *pgm,\n\t\t\t      const
      char *name,\n\t\t\t      const char *other,\n\t\t\t      struct diff_filespec
      *one,\n\t\t\t      struct diff_filespec *two,\n\t\t\t      const char *xfrm_msg,\n\t\t\t
      \     struct diff_options *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4836
      start: 4833
    functionDepth: 0
    functionLinenumber: 4833
    functionLinenumberEnd: 4836
    functionName: similarity_index
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int similarity_index(struct diff_filepair *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_find_unique_abbrev
      Src: /src/git/diff.c:4841,1
    - Dst: oid_to_hex
      Src: /src/git/diff.c:4843,1
    - Dst: BUG
      Src: /src/git/diff.c:4847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - oid
    - abbrev
    argTypes:
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4852
      start: 4838
    functionDepth: 4
    functionLinenumber: 4838
    functionLinenumberEnd: 4852
    functionName: diff_abbrev_oid
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - repo_find_unique_abbrev
    - BUG
    linkageType: ''
    returnType: char
    signature: char *diff_abbrev_oid(const struct object_id *oid, int abbrev)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: diff_get_color
      Src: /src/git/diff.c:4864,1
    - Dst: diff_get_color
      Src: /src/git/diff.c:4865,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:4866,1
    - Dst: strbuf_init
      Src: /src/git/diff.c:4870,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4873,1
    - Dst: similarity_index
      Src: /src/git/diff.c:4874,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4875,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:4877,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4878,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:4879,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4880,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4883,1
    - Dst: similarity_index
      Src: /src/git/diff.c:4884,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4885,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:4887,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4888,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:4890,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4891,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4895,1
    - Dst: similarity_index
      Src: /src/git/diff.c:4897,1
    - Dst: additional_headers
      Src: /src/git/diff.c:4904,1
    - Dst: add_formatted_headers
      Src: /src/git/diff.c:4905,1
    - Dst: oideq
      Src: /src/git/diff.c:4909,1
    - Dst: fill_mmfile
      Src: /src/git/diff.c:4918,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:4919,1
    - Dst: fill_mmfile
      Src: /src/git/diff.c:4920,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:4921,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4924,1
    - Dst: diff_abbrev_oid
      Src: /src/git/diff.c:4925,1
    - Dst: diff_abbrev_oid
      Src: /src/git/diff.c:4926,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4928,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:4929,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 9
    argNames:
    - msg
    - name
    - other
    - one
    - two
    - o
    - p
    - must_show_header
    - use_color
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - struct diff_filespec*
    - struct diff_filespec*
    - struct diff_options*
    - struct diff_filepair*
    - int*
    - enum git_colorbool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4931
      start: 4854
    functionDepth: 6
    functionLinenumber: 4854
    functionLinenumberEnd: 4931
    functionName: fill_metainfo
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - fill_mmfile
    - additional_headers
    - similarity_index
    - strbuf_addf
    - add_formatted_headers
    - diff_get_color
    - diff_line_prefix
    - diff_abbrev_oid
    - quote_c_style
    - strbuf_init
    - oideq
    - diff_filespec_is_binary
    linkageType: ''
    returnType: void
    signature: "void fill_metainfo(struct strbuf *msg,\n\t\t\t  const char *name,\n\t\t\t
      \ const char *other,\n\t\t\t  struct diff_filespec *one,\n\t\t\t  struct diff_filespec
      *two,\n\t\t\t  struct diff_options *o,\n\t\t\t  struct diff_filepair *p,\n\t\t\t
      \ int *must_show_header,\n\t\t\t  enum git_colorbool use_color)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: userdiff_find_by_path
      Src: /src/git/diff.c:4949,1
    - Dst: fill_metainfo
      Src: /src/git/diff.c:4959,1
    - Dst: run_external_diff
      Src: /src/git/diff.c:4966,1
    - Dst: set_diff_algorithm
      Src: /src/git/diff.c:4971,1
    - Dst: builtin_diff
      Src: /src/git/diff.c:4973,1
    - Dst: fprintf
      Src: /src/git/diff.c:4981,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 9
    argNames:
    - pgm
    - name
    - other
    - attr_path
    - one
    - two
    - msg
    - o
    - p
    argTypes:
    - struct external_diff*
    - char*
    - char*
    - char*
    - struct diff_filespec*
    - struct diff_filespec*
    - struct strbuf*
    - struct diff_options*
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4984
      start: 4933
    functionDepth: 25
    functionLinenumber: 4933
    functionLinenumberEnd: 4984
    functionName: run_diff_cmd
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - set_diff_algorithm
    - builtin_diff
    - fill_metainfo
    - userdiff_find_by_path
    - run_external_diff
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void run_diff_cmd(const struct external_diff *pgm,\n\t\t\t const char
      *name,\n\t\t\t const char *other,\n\t\t\t const char *attr_path,\n\t\t\t struct
      diff_filespec *one,\n\t\t\t struct diff_filespec *two,\n\t\t\t struct strbuf
      *msg,\n\t\t\t struct diff_options *o,\n\t\t\t struct diff_filepair *p)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:4988,1
    - Dst: oidclr
      Src: /src/git/diff.c:4992,1
    - Dst: lstat
      Src: /src/git/diff.c:4995,1
    - Dst: die_errno
      Src: /src/git/diff.c:4996,1
    - Dst: index_path
      Src: /src/git/diff.c:4997,1
    - Dst: die
      Src: /src/git/diff.c:4998,1
    - Dst: oidclr
      Src: /src/git/diff.c:5002,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - one
    - istate
    argTypes:
    - struct diff_filespec*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5003
      start: 4986
    functionDepth: 9
    functionLinenumber: 4986
    functionLinenumberEnd: 5003
    functionName: diff_fill_oid_info
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - DIFF_FILE_VALID
    - index_path
    - die
    - die_errno
    - oidclr
    - lstat
    linkageType: ''
    returnType: void
    signature: void diff_fill_oid_info(struct diff_filespec *one, struct index_state
      *istate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute_path
      Src: /src/git/diff.c:5008,1
    - Dst: is_absolute_path
      Src: /src/git/diff.c:5013,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - prefix_length
    - namep
    - otherp
    argTypes:
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5018
      start: 5005
    functionDepth: 1
    functionLinenumber: 5005
    functionLinenumberEnd: 5018
    functionName: strip_prefix
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - is_absolute_path
    linkageType: ''
    returnType: void
    signature: void strip_prefix(int prefix_length, const char **namep, const char
      **otherp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: external_diff
      Src: /src/git/diff.c:5022,1
    - Dst: strcmp
      Src: /src/git/diff.c:5031,1
    - Dst: strip_prefix
      Src: /src/git/diff.c:5034,1
    - Dst: DIFF_PAIR_UNMERGED
      Src: /src/git/diff.c:5039,1
    - Dst: run_diff_cmd
      Src: /src/git/diff.c:5040,1
    - Dst: diff_fill_oid_info
      Src: /src/git/diff.c:5045,1
    - Dst: diff_fill_oid_info
      Src: /src/git/diff.c:5046,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:5049,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:5049,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:5055,1
    - Dst: run_diff_cmd
      Src: /src/git/diff.c:5056,1
    - Dst: free
      Src: /src/git/diff.c:5059,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:5060,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:5062,1
    - Dst: run_diff_cmd
      Src: /src/git/diff.c:5063,1
    - Dst: free
      Src: /src/git/diff.c:5065,1
    - Dst: run_diff_cmd
      Src: /src/git/diff.c:5068,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:5071,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - p
    - o
    argTypes:
    - struct diff_filepair*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5072
      start: 5020
    functionDepth: 26
    functionLinenumber: 5020
    functionLinenumberEnd: 5072
    functionName: run_diff
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strip_prefix
    - external_diff
    - run_diff_cmd
    - alloc_filespec
    - DIFF_PAIR_UNMERGED
    - strcmp
    - free
    - diff_fill_oid_info
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: void
    signature: void run_diff(struct diff_filepair *p, struct diff_options *o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: userdiff_find_by_path
      Src: /src/git/diff.c:5081,1
    - Dst: set_diff_algorithm
      Src: /src/git/diff.c:5085,1
    - Dst: DIFF_PAIR_UNMERGED
      Src: /src/git/diff.c:5088,1
    - Dst: builtin_diffstat
      Src: /src/git/diff.c:5090,1
    - Dst: strcmp
      Src: /src/git/diff.c:5096,1
    - Dst: strip_prefix
      Src: /src/git/diff.c:5099,1
    - Dst: diff_fill_oid_info
      Src: /src/git/diff.c:5101,1
    - Dst: diff_fill_oid_info
      Src: /src/git/diff.c:5102,1
    - Dst: builtin_diffstat
      Src: /src/git/diff.c:5104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - p
    - o
    - diffstat
    argTypes:
    - struct diff_filepair*
    - struct diff_options*
    - struct diffstat_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5106
      start: 5074
    functionDepth: 10
    functionLinenumber: 5074
    functionLinenumberEnd: 5106
    functionName: run_diffstat
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - set_diff_algorithm
    - strip_prefix
    - userdiff_find_by_path
    - DIFF_PAIR_UNMERGED
    - strcmp
    - diff_fill_oid_info
    - builtin_diffstat
    linkageType: ''
    returnType: void
    signature: "void run_diffstat(struct diff_filepair *p, struct diff_options *o,\n\t\t\t
      struct diffstat_t *diffstat)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_PAIR_UNMERGED
      Src: /src/git/diff.c:5114,1
    - Dst: strcmp
      Src: /src/git/diff.c:5120,1
    - Dst: strip_prefix
      Src: /src/git/diff.c:5124,1
    - Dst: diff_fill_oid_info
      Src: /src/git/diff.c:5126,1
    - Dst: diff_fill_oid_info
      Src: /src/git/diff.c:5127,1
    - Dst: builtin_checkdiff
      Src: /src/git/diff.c:5129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p
    - o
    argTypes:
    - struct diff_filepair*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5130
      start: 5108
    functionDepth: 10
    functionLinenumber: 5108
    functionLinenumberEnd: 5130
    functionName: run_checkdiff
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - builtin_checkdiff
    - strip_prefix
    - DIFF_PAIR_UNMERGED
    - strcmp
    - diff_fill_oid_info
    linkageType: ''
    returnType: void
    signature: void run_checkdiff(struct diff_filepair *p, struct diff_options *o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/diff.c:5134,1
    - Dst: DIFF_XDL_SET
      Src: /src/git/diff.c:5161,1
    - Dst: xstrdup_or_null
      Src: /src/git/diff.c:5163,1
    - Dst: diff_set_noprefix
      Src: /src/git/diff.c:5169,1
    - Dst: diff_set_default_prefix
      Src: /src/git/diff.c:5171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 2
    argNames:
    - r
    - options
    argTypes:
    - struct repository*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5176
      start: 5132
    functionDepth: 2
    functionLinenumber: 5132
    functionLinenumberEnd: 5176
    functionName: repo_diff_setup
    functionSourceFile: /src/git/diff.c
    functionUses: 10
    functionsReached:
    - xstrdup_or_null
    - diff_set_default_prefix
    - DIFF_XDL_SET
    - diff_set_noprefix
    - memcpy
    linkageType: ''
    returnType: void
    signature: void repo_diff_setup(struct repository *r, struct diff_options *options)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5202
      start: 5194
    functionDepth: 0
    functionLinenumber: 5194
    functionLinenumberEnd: 5202
    functionName: prepare_filter_bits
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_filter_bits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - status
    - opt
    argTypes:
    - char
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5207
      start: 5204
    functionDepth: 0
    functionLinenumber: 5204
    functionLinenumberEnd: 5207
    functionName: filter_bit_tst
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned filter_bit_tst(char status, const struct diff_options *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_filter_bits
      Src: /src/git/diff.c:5211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5213
      start: 5209
    functionDepth: 1
    functionLinenumber: 5209
    functionLinenumberEnd: 5213
    functionName: diff_filter_bit
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - prepare_filter_bits
    linkageType: ''
    returnType: unsigned
    signature: unsigned diff_filter_bit(char status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/diff.c:5221,1
    - Dst: _
      Src: /src/git/diff.c:5221,1
    - Dst: pathspec_magic_names
      Src: /src/git/diff.c:5230,1
    - Dst: die
      Src: /src/git/diff.c:5231,1
    - Dst: _
      Src: /src/git/diff.c:5231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ps
    - die_on_error
    argTypes:
    - struct pathspec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5215
    functionDepth: 5
    functionLinenumber: 5215
    functionLinenumberEnd: 5238
    functionName: diff_check_follow_pathspec
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - pathspec_magic_names
    - die
    - _
    linkageType: ''
    returnType: int
    signature: int diff_check_follow_pathspec(struct pathspec *ps, int die_on_error)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: struct diff_options*::set_default
      Src: /src/git/diff.c:5253,1
    - Dst: HAS_MULTI_BITS
      Src: /src/git/diff.c:5255,1
    - Dst: die
      Src: /src/git/diff.c:5256,1
    - Dst: _
      Src: /src/git/diff.c:5256,1
    - Dst: HAS_MULTI_BITS
      Src: /src/git/diff.c:5259,1
    - Dst: die
      Src: /src/git/diff.c:5260,1
    - Dst: _
      Src: /src/git/diff.c:5260,1
    - Dst: HAS_MULTI_BITS
      Src: /src/git/diff.c:5263,1
    - Dst: die
      Src: /src/git/diff.c:5264,1
    - Dst: _
      Src: /src/git/diff.c:5264,1
    - Dst: HAS_MULTI_BITS
      Src: /src/git/diff.c:5267,1
    - Dst: die
      Src: /src/git/diff.c:5268,1
    - Dst: _
      Src: /src/git/diff.c:5268,1
    - Dst: strlen
      Src: /src/git/diff.c:5290,1
    - Dst: diff_check_follow_pathspec
      Src: /src/git/diff.c:5361,1
    - Dst: external_diff
      Src: /src/git/diff.c:5363,1
    - Dst: die
      Src: /src/git/diff.c:5373,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 53
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5374
      start: 5240
    functionDepth: 7
    functionLinenumber: 5240
    functionLinenumberEnd: 5374
    functionName: diff_setup_done
    functionSourceFile: /src/git/diff.c
    functionUses: 14
    functionsReached:
    - die
    - HAS_MULTI_BITS
    - external_diff
    - strlen
    - _
    - diff_check_follow_pathspec
    - struct diff_options*::set_default
    linkageType: ''
    returnType: void
    signature: void diff_setup_done(struct diff_options *options)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/diff.c:5380,1
    - Dst: skip_prefix
      Src: /src/git/diff.c:5382,1
    - Dst: die
      Src: /src/git/diff.c:5392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - opt
    - argv
    - optarg
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5395
      start: 5376
    functionDepth: 1
    functionLinenumber: 5376
    functionLinenumberEnd: 5395
    functionName: parse_long_opt
    functionSourceFile: /src/git/diff.c
    functionUses: 3
    functionsReached:
    - skip_prefix
    - die
    linkageType: ''
    returnType: int
    signature: "int parse_long_opt(const char *opt, const char **argv,\n\t\t   const
      char **optarg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5406,1
    - Dst: strcmp
      Src: /src/git/diff.c:5408,1
    - Dst: strtoul
      Src: /src/git/diff.c:5410,1
    - Dst: strtoul
      Src: /src/git/diff.c:5412,1
    - Dst: strtoul
      Src: /src/git/diff.c:5414,1
    - Dst: error
      Src: /src/git/diff.c:5416,1
    - Dst: _
      Src: /src/git/diff.c:5416,1
    - Dst: strcmp
      Src: /src/git/diff.c:5418,1
    - Dst: strtoul
      Src: /src/git/diff.c:5419,1
    - Dst: error
      Src: /src/git/diff.c:5421,1
    - Dst: _
      Src: /src/git/diff.c:5421,1
    - Dst: strcmp
      Src: /src/git/diff.c:5423,1
    - Dst: strtoul
      Src: /src/git/diff.c:5424,1
    - Dst: error
      Src: /src/git/diff.c:5426,1
    - Dst: _
      Src: /src/git/diff.c:5426,1
    - Dst: strcmp
      Src: /src/git/diff.c:5428,1
    - Dst: strtoul
      Src: /src/git/diff.c:5429,1
    - Dst: error
      Src: /src/git/diff.c:5431,1
    - Dst: _
      Src: /src/git/diff.c:5431,1
    - Dst: strcmp
      Src: /src/git/diff.c:5433,1
    - Dst: strtoul
      Src: /src/git/diff.c:5434,1
    - Dst: error
      Src: /src/git/diff.c:5436,1
    - Dst: _
      Src: /src/git/diff.c:5436,1
    - Dst: BUG
      Src: /src/git/diff.c:5439,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - opt
    - value
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5448
      start: 5397
    functionDepth: 1
    functionLinenumber: 5397
    functionLinenumberEnd: 5448
    functionName: diff_opt_stat
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - strcmp
    - _
    - BUG_ON_OPT_NEG
    - BUG
    - strtoul
    linkageType: ''
    returnType: int
    signature: int diff_opt_stat(const struct option *opt, const char *value, int
      unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_dirstat_params
      Src: /src/git/diff.c:5453,1
    - Dst: die
      Src: /src/git/diff.c:5454,1
    - Dst: _
      Src: /src/git/diff.c:5454,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:5456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - options
    - params
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5464
      start: 5450
    functionDepth: 6
    functionLinenumber: 5450
    functionLinenumberEnd: 5464
    functionName: parse_dirstat_opt
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - parse_dirstat_params
    - _
    linkageType: ''
    returnType: int
    signature: int parse_dirstat_opt(struct diff_options *options, const char *params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5472,1
    - Dst: prepare_filter_bits
      Src: /src/git/diff.c:5473,1
    - Dst: toupper
      Src: /src/git/diff.c:5481,1
    - Dst: error
      Src: /src/git/diff.c:5488,1
    - Dst: _
      Src: /src/git/diff.c:5488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - option
    - optarg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5496
      start: 5466
    functionDepth: 1
    functionLinenumber: 5466
    functionLinenumberEnd: 5496
    functionName: diff_opt_diff_filter
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - toupper
    - _
    - prepare_filter_bits
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_diff_filter(const struct option *option,\n\t\t\t\tconst
      char *optarg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5502
      start: 5498
    functionDepth: 0
    functionLinenumber: 5498
    functionLinenumberEnd: 5502
    functionName: enable_patch_output
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void enable_patch_output(int *fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_ws_error_highlight
      Src: /src/git/diff.c:5508,1
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5510,1
    - Dst: error
      Src: /src/git/diff.c:5512,1
    - Dst: _
      Src: /src/git/diff.c:5512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - option
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5516
      start: 5504
    functionDepth: 3
    functionLinenumber: 5504
    functionLinenumberEnd: 5516
    functionName: diff_opt_ws_error_highlight
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - _
    - parse_ws_error_highlight
    linkageType: ''
    returnType: int
    signature: "int diff_opt_ws_error_highlight(const struct option *option,\n\t\t\t\t
      \      const char *arg, int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5524,1
    - Dst: error
      Src: /src/git/diff.c:5526,1
    - Dst: _
      Src: /src/git/diff.c:5526,1
    - Dst: repo_get_oid
      Src: /src/git/diff.c:5527,1
    - Dst: error
      Src: /src/git/diff.c:5528,1
    - Dst: _
      Src: /src/git/diff.c:5528,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/diff.c:5531,1
    - Dst: oidset_insert
      Src: /src/git/diff.c:5536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - option
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5538
      start: 5518
    functionDepth: 4
    functionLinenumber: 5518
    functionLinenumberEnd: 5538
    functionName: diff_opt_find_object
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - repo_get_oid
    - CALLOC_ARRAY
    - BUG_ON_OPT_NEG
    - oidset_insert
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_find_object(const struct option *option,\n\t\t\t\tconst
      char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5545,1
    - Dst: DIFF_WITH_ALG
      Src: /src/git/diff.c:5546,1
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:5547,1
    - Dst: xstrdup
      Src: /src/git/diff.c:5549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5551
      start: 5540
    functionDepth: 1
    functionLinenumber: 5540
    functionLinenumberEnd: 5551
    functionName: diff_opt_anchored
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - DIFF_WITH_ALG
    - ALLOC_GROW
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int diff_opt_anchored(const struct option *opt,\n\t\t\t     const
      char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5558,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/diff.c:5559,1
    - Dst: enable_patch_output
      Src: /src/git/diff.c:5560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5553
    functionDepth: 1
    functionLinenumber: 5553
    functionLinenumberEnd: 5563
    functionName: diff_opt_binary
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - enable_patch_output
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_binary(const struct option *opt,\n\t\t\t   const char
      *arg, int unset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5571,1
    - Dst: parse_rename_score
      Src: /src/git/diff.c:5574,1
    - Dst: error
      Src: /src/git/diff.c:5578,1
    - Dst: _
      Src: /src/git/diff.c:5578,1
    - Dst: parse_rename_score
      Src: /src/git/diff.c:5581,1
    - Dst: error
      Src: /src/git/diff.c:5584,1
    - Dst: _
      Src: /src/git/diff.c:5584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5587
      start: 5565
    functionDepth: 1
    functionLinenumber: 5565
    functionLinenumberEnd: 5587
    functionName: diff_opt_break_rewrites
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - parse_rename_score
    - BUG_ON_OPT_NEG
    - error
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_break_rewrites(const struct option *opt,\n\t\t\t\t   const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5594,1
    - Dst: error
      Src: /src/git/diff.c:5596,1
    - Dst: _
      Src: /src/git/diff.c:5596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5600
      start: 5589
    functionDepth: 1
    functionLinenumber: 5589
    functionLinenumberEnd: 5600
    functionName: diff_opt_char
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_char(const struct option *opt,\n\t\t\t const char *arg,
      int unset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_color_moved
      Src: /src/git/diff.c:5615,1
    - Dst: error
      Src: /src/git/diff.c:5617,1
    - Dst: _
      Src: /src/git/diff.c:5617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5621
      start: 5602
    functionDepth: 6
    functionLinenumber: 5602
    functionLinenumberEnd: 5621
    functionName: diff_opt_color_moved
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - parse_color_moved
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_color_moved(const struct option *opt,\n\t\t\t\tconst
      char *arg, int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_color_moved_ws
      Src: /src/git/diff.c:5634,1
    - Dst: error
      Src: /src/git/diff.c:5636,1
    - Dst: _
      Src: /src/git/diff.c:5636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5639
      start: 5623
    functionDepth: 6
    functionLinenumber: 5623
    functionLinenumberEnd: 5639
    functionName: diff_opt_color_moved_ws
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - parse_color_moved_ws
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_color_moved_ws(const struct option *opt,\n\t\t\t\t   const
      char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5651
      start: 5641
    functionDepth: 1
    functionLinenumber: 5641
    functionLinenumberEnd: 5651
    functionName: diff_opt_color_words
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_color_words(const struct option *opt,\n\t\t\t\tconst
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/diff.c:5658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5667
      start: 5653
    functionDepth: 1
    functionLinenumber: 5653
    functionLinenumberEnd: 5667
    functionName: diff_opt_compact_summary
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_compact_summary(const struct option *opt,\n\t\t\t\t    const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5674,1
    - Dst: set_diff_algorithm
      Src: /src/git/diff.c:5676,1
    - Dst: error
      Src: /src/git/diff.c:5677,1
    - Dst: _
      Src: /src/git/diff.c:5677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5683
      start: 5669
    functionDepth: 1
    functionLinenumber: 5669
    functionLinenumberEnd: 5683
    functionName: diff_opt_diff_algorithm
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - set_diff_algorithm
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_diff_algorithm(const struct option *opt,\n\t\t\t\t   const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5690,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/diff.c:5691,1
    - Dst: set_diff_algorithm
      Src: /src/git/diff.c:5693,1
    - Dst: BUG
      Src: /src/git/diff.c:5694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5700
      start: 5685
    functionDepth: 1
    functionLinenumber: 5685
    functionLinenumberEnd: 5700
    functionName: diff_opt_diff_algorithm_no_arg
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - set_diff_algorithm
    - BUG_ON_OPT_NEG
    - BUG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_diff_algorithm_no_arg(const struct option *opt,\n\t\t\t\t
      \  const char *arg, int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5707,1
    - Dst: strcmp
      Src: /src/git/diff.c:5708,1
    - Dst: BUG
      Src: /src/git/diff.c:5710,1
    - Dst: strcmp
      Src: /src/git/diff.c:5712,1
    - Dst: parse_dirstat_opt
      Src: /src/git/diff.c:5713,1
    - Dst: parse_dirstat_opt
      Src: /src/git/diff.c:5714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5716
      start: 5702
    functionDepth: 7
    functionLinenumber: 5702
    functionLinenumberEnd: 5716
    functionName: diff_opt_dirstat
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - parse_dirstat_opt
    - BUG_ON_OPT_NEG
    - BUG
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int diff_opt_dirstat(const struct option *opt,\n\t\t\t    const char
      *arg, int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5723,1
    - Dst: parse_rename_score
      Src: /src/git/diff.c:5726,1
    - Dst: error
      Src: /src/git/diff.c:5728,1
    - Dst: _
      Src: /src/git/diff.c:5728,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5736
      start: 5718
    functionDepth: 1
    functionLinenumber: 5718
    functionLinenumberEnd: 5736
    functionName: diff_opt_find_copies
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - parse_rename_score
    - BUG_ON_OPT_NEG
    - error
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_find_copies(const struct option *opt,\n\t\t\t\tconst
      char *arg, int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5743,1
    - Dst: parse_rename_score
      Src: /src/git/diff.c:5746,1
    - Dst: error
      Src: /src/git/diff.c:5748,1
    - Dst: _
      Src: /src/git/diff.c:5748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5752
      start: 5738
    functionDepth: 1
    functionLinenumber: 5738
    functionLinenumberEnd: 5752
    functionName: diff_opt_find_renames
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - parse_rename_score
    - BUG_ON_OPT_NEG
    - error
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_find_renames(const struct option *opt,\n\t\t\t\t const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/diff.c:5759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5767
      start: 5754
    functionDepth: 1
    functionLinenumber: 5754
    functionLinenumberEnd: 5767
    functionName: diff_opt_follow
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_follow(const struct option *opt,\n\t\t\t   const char
      *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5774,1
    - Dst: handle_ignore_submodules_arg
      Src: /src/git/diff.c:5778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5780
      start: 5769
    functionDepth: 1
    functionLinenumber: 5769
    functionLinenumberEnd: 5780
    functionName: diff_opt_ignore_submodules
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - handle_ignore_submodules_arg
    linkageType: ''
    returnType: int
    signature: "int diff_opt_ignore_submodules(const struct option *opt,\n\t\t\t\t
      \     const char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5787,1
    - Dst: graph_setup_line_prefix
      Src: /src/git/diff.c:5789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - optarg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5791
      start: 5782
    functionDepth: 1
    functionLinenumber: 5782
    functionLinenumberEnd: 5791
    functionName: diff_opt_line_prefix
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - graph_setup_line_prefix
    linkageType: ''
    returnType: int
    signature: "int diff_opt_line_prefix(const struct option *opt,\n\t\t\t\tconst
      char *optarg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5798,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/diff.c:5799,1
    - Dst: diff_set_noprefix
      Src: /src/git/diff.c:5800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - optarg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5802
      start: 5793
    functionDepth: 1
    functionLinenumber: 5793
    functionLinenumberEnd: 5802
    functionName: diff_opt_no_prefix
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - diff_set_noprefix
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_no_prefix(const struct option *opt,\n\t\t\t      const
      char *optarg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5809,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/diff.c:5810,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:5811,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:5812,1
    - Dst: diff_set_default_prefix
      Src: /src/git/diff.c:5813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - optarg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5815
      start: 5804
    functionDepth: 1
    functionLinenumber: 5804
    functionLinenumberEnd: 5815
    functionName: diff_opt_default_prefix
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - FREE_AND_NULL
    - diff_set_default_prefix
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_default_prefix(const struct option *opt,\n\t\t\t\t   const
      char *optarg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5824,1
    - Dst: prefix_filename
      Src: /src/git/diff.c:5825,1
    - Dst: xfopen
      Src: /src/git/diff.c:5826,1
    - Dst: free
      Src: /src/git/diff.c:5830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - opt
    - arg
    - unset
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5832
      start: 5817
    functionDepth: 2
    functionLinenumber: 5817
    functionLinenumberEnd: 5832
    functionName: diff_opt_output
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - xfopen
    - BUG_ON_OPT_NEG
    - prefix_filename
    - free
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result diff_opt_output(struct parse_opt_ctx_t *ctx,\n\t\t\t\t\t
      \    const struct option *opt,\n\t\t\t\t\t     const char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5840,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/diff.c:5841,1
    - Dst: free
      Src: /src/git/diff.c:5848,1
    - Dst: set_diff_algorithm
      Src: /src/git/diff.c:5852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5853
      start: 5834
    functionDepth: 1
    functionLinenumber: 5834
    functionLinenumberEnd: 5853
    functionName: diff_opt_patience
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - free
    - set_diff_algorithm
    - BUG_ON_OPT_NEG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_patience(const struct option *opt,\n\t\t\t     const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5861,1
    - Dst: xmalloc
      Src: /src/git/diff.c:5863,1
    - Dst: regcomp
      Src: /src/git/diff.c:5864,1
    - Dst: free
      Src: /src/git/diff.c:5865,1
    - Dst: error
      Src: /src/git/diff.c:5866,1
    - Dst: _
      Src: /src/git/diff.c:5866,1
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:5869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5873
      start: 5855
    functionDepth: 1
    functionLinenumber: 5855
    functionLinenumberEnd: 5873
    functionName: diff_opt_ignore_regex
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - xmalloc
    - ALLOC_GROW
    - free
    - regcomp
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_ignore_regex(const struct option *opt,\n\t\t\t\t const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5880,1
    - Dst: error
      Src: /src/git/diff.c:5884,1
    - Dst: _
      Src: /src/git/diff.c:5884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5886
      start: 5875
    functionDepth: 1
    functionLinenumber: 5875
    functionLinenumberEnd: 5886
    functionName: diff_opt_pickaxe_regex
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_pickaxe_regex(const struct option *opt,\n\t\t\t\t  const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5893,1
    - Dst: error
      Src: /src/git/diff.c:5897,1
    - Dst: _
      Src: /src/git/diff.c:5897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5899
      start: 5888
    functionDepth: 1
    functionLinenumber: 5888
    functionLinenumberEnd: 5899
    functionName: diff_opt_pickaxe_string
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_pickaxe_string(const struct option *opt,\n\t\t\t\t   const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5910
      start: 5901
    functionDepth: 0
    functionLinenumber: 5901
    functionLinenumberEnd: 5910
    functionName: diff_opt_relative
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int diff_opt_relative(const struct option *opt,\n\t\t\t     const
      char *arg, int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5917,1
    - Dst: parse_submodule_params
      Src: /src/git/diff.c:5920,1
    - Dst: error
      Src: /src/git/diff.c:5921,1
    - Dst: _
      Src: /src/git/diff.c:5921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5924
      start: 5912
    functionDepth: 1
    functionLinenumber: 5912
    functionLinenumberEnd: 5924
    functionName: diff_opt_submodule
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - parse_submodule_params
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_submodule(const struct option *opt,\n\t\t\t      const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/diff.c:5931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5939
      start: 5926
    functionDepth: 1
    functionLinenumber: 5926
    functionLinenumberEnd: 5939
    functionName: diff_opt_textconv
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_textconv(const struct option *opt,\n\t\t\t     const
      char *arg, int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5947,1
    - Dst: strtol
      Src: /src/git/diff.c:5950,1
    - Dst: error
      Src: /src/git/diff.c:5952,1
    - Dst: _
      Src: /src/git/diff.c:5952,1
    - Dst: error
      Src: /src/git/diff.c:5954,1
    - Dst: _
      Src: /src/git/diff.c:5954,1
    - Dst: enable_patch_output
      Src: /src/git/diff.c:5957,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5960
      start: 5941
    functionDepth: 1
    functionLinenumber: 5941
    functionLinenumberEnd: 5960
    functionName: diff_opt_unified
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - enable_patch_output
    - _
    - strtol
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_unified(const struct option *opt,\n\t\t\t    const char
      *arg, int unset)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5967,1
    - Dst: strcmp
      Src: /src/git/diff.c:5969,1
    - Dst: strcmp
      Src: /src/git/diff.c:5971,1
    - Dst: strcmp
      Src: /src/git/diff.c:5975,1
    - Dst: strcmp
      Src: /src/git/diff.c:5977,1
    - Dst: error
      Src: /src/git/diff.c:5980,1
    - Dst: _
      Src: /src/git/diff.c:5980,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5986
      start: 5962
    functionDepth: 1
    functionLinenumber: 5962
    functionLinenumberEnd: 5986
    functionName: diff_opt_word_diff
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int diff_opt_word_diff(const struct option *opt,\n\t\t\t      const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:5993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5988
    functionDepth: 1
    functionLinenumber: 5988
    functionLinenumberEnd: 5998
    functionName: diff_opt_word_diff_regex
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int diff_opt_word_diff_regex(const struct option *opt,\n\t\t\t\t    const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:6004,1
    - Dst: strcmp
      Src: /src/git/diff.c:6005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6000
    functionDepth: 1
    functionLinenumber: 6000
    functionLinenumberEnd: 6011
    functionName: diff_opt_rotate_to
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - strcmp
    linkageType: ''
    returnType: int
    signature: int diff_opt_rotate_to(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/diff.c:6018,1
    - Dst: git_parse_int
      Src: /src/git/diff.c:6020,1
    - Dst: error
      Src: /src/git/diff.c:6021,1
    - Dst: _
      Src: /src/git/diff.c:6021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6028
      start: 6013
    functionDepth: 4
    functionLinenumber: 6013
    functionLinenumberEnd: 6028
    functionName: diff_opt_max_depth
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - git_parse_int
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_opt_max_depth(const struct option *opt,\n\t\t\t      const
      char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_GROUP
      Src: /src/git/diff.c:6038,1
    - Dst: N_
      Src: /src/git/diff.c:6038,1
    - Dst: OPT_BITOP
      Src: /src/git/diff.c:6039,1
    - Dst: N_
      Src: /src/git/diff.c:6040,1
    - Dst: OPT_SET_INT
      Src: /src/git/diff.c:6042,1
    - Dst: N_
      Src: /src/git/diff.c:6043,1
    - Dst: OPT_BITOP
      Src: /src/git/diff.c:6044,1
    - Dst: N_
      Src: /src/git/diff.c:6045,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6047,1
    - Dst: N_
      Src: /src/git/diff.c:6047,1
    - Dst: N_
      Src: /src/git/diff.c:6048,1
    - Dst: OPT_BOOL
      Src: /src/git/diff.c:6050,1
    - Dst: N_
      Src: /src/git/diff.c:6051,1
    - Dst: OPT_BITOP
      Src: /src/git/diff.c:6052,1
    - Dst: N_
      Src: /src/git/diff.c:6053,1
    - Dst: OPT_BITOP
      Src: /src/git/diff.c:6055,1
    - Dst: N_
      Src: /src/git/diff.c:6056,1
    - Dst: OPT_BITOP
      Src: /src/git/diff.c:6059,1
    - Dst: N_
      Src: /src/git/diff.c:6060,1
    - Dst: OPT_BITOP
      Src: /src/git/diff.c:6063,1
    - Dst: N_
      Src: /src/git/diff.c:6064,1
    - Dst: OPT_BITOP
      Src: /src/git/diff.c:6066,1
    - Dst: N_
      Src: /src/git/diff.c:6067,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6069,1
    - Dst: N_
      Src: /src/git/diff.c:6069,1
    - Dst: N_
      Src: /src/git/diff.c:6070,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6073,1
    - Dst: N_
      Src: /src/git/diff.c:6074,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6077,1
    - Dst: N_
      Src: /src/git/diff.c:6077,1
    - Dst: N_
      Src: /src/git/diff.c:6078,1
    - Dst: OPT_BIT_F
      Src: /src/git/diff.c:6081,1
    - Dst: N_
      Src: /src/git/diff.c:6082,1
    - Dst: OPT_BITOP
      Src: /src/git/diff.c:6084,1
    - Dst: N_
      Src: /src/git/diff.c:6085,1
    - Dst: OPT_BIT_F
      Src: /src/git/diff.c:6087,1
    - Dst: N_
      Src: /src/git/diff.c:6088,1
    - Dst: OPT_BIT_F
      Src: /src/git/diff.c:6090,1
    - Dst: N_
      Src: /src/git/diff.c:6091,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6093,1
    - Dst: N_
      Src: /src/git/diff.c:6093,1
    - Dst: N_
      Src: /src/git/diff.c:6094,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6096,1
    - Dst: N_
      Src: /src/git/diff.c:6096,1
    - Dst: N_
      Src: /src/git/diff.c:6097,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6099,1
    - Dst: N_
      Src: /src/git/diff.c:6099,1
    - Dst: N_
      Src: /src/git/diff.c:6100,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6102,1
    - Dst: N_
      Src: /src/git/diff.c:6102,1
    - Dst: N_
      Src: /src/git/diff.c:6103,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6105,1
    - Dst: N_
      Src: /src/git/diff.c:6105,1
    - Dst: N_
      Src: /src/git/diff.c:6106,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6108,1
    - Dst: N_
      Src: /src/git/diff.c:6109,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6111,1
    - Dst: N_
      Src: /src/git/diff.c:6112,1
    - Dst: OPT_BOOL
      Src: /src/git/diff.c:6114,1
    - Dst: N_
      Src: /src/git/diff.c:6115,1
    - Dst: OPT_COLOR_FLAG
      Src: /src/git/diff.c:6116,1
    - Dst: N_
      Src: /src/git/diff.c:6117,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6118,1
    - Dst: N_
      Src: /src/git/diff.c:6118,1
    - Dst: N_
      Src: /src/git/diff.c:6119,1
    - Dst: OPT_SET_INT
      Src: /src/git/diff.c:6121,1
    - Dst: N_
      Src: /src/git/diff.c:6122,1
    - Dst: OPT__ABBREV
      Src: /src/git/diff.c:6124,1
    - Dst: OPT_STRING_F
      Src: /src/git/diff.c:6125,1
    - Dst: N_
      Src: /src/git/diff.c:6125,1
    - Dst: N_
      Src: /src/git/diff.c:6126,1
    - Dst: OPT_STRING_F
      Src: /src/git/diff.c:6128,1
    - Dst: N_
      Src: /src/git/diff.c:6128,1
    - Dst: N_
      Src: /src/git/diff.c:6129,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6131,1
    - Dst: N_
      Src: /src/git/diff.c:6131,1
    - Dst: N_
      Src: /src/git/diff.c:6132,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6134,1
    - Dst: N_
      Src: /src/git/diff.c:6135,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6137,1
    - Dst: N_
      Src: /src/git/diff.c:6138,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/diff.c:6140,1
    - Dst: N_
      Src: /src/git/diff.c:6141,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6142,1
    - Dst: N_
      Src: /src/git/diff.c:6144,1
    - Dst: N_
      Src: /src/git/diff.c:6145,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6147,1
    - Dst: N_
      Src: /src/git/diff.c:6149,1
    - Dst: N_
      Src: /src/git/diff.c:6150,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6152,1
    - Dst: N_
      Src: /src/git/diff.c:6154,1
    - Dst: N_
      Src: /src/git/diff.c:6155,1
    - Dst: OPT_GROUP
      Src: /src/git/diff.c:6158,1
    - Dst: N_
      Src: /src/git/diff.c:6158,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6159,1
    - Dst: N_
      Src: /src/git/diff.c:6159,1
    - Dst: N_
      Src: /src/git/diff.c:6160,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6163,1
    - Dst: N_
      Src: /src/git/diff.c:6163,1
    - Dst: N_
      Src: /src/git/diff.c:6164,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/diff.c:6167,1
    - Dst: N_
      Src: /src/git/diff.c:6168,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6170,1
    - Dst: N_
      Src: /src/git/diff.c:6170,1
    - Dst: N_
      Src: /src/git/diff.c:6171,1
    - Dst: OPT_BOOL
      Src: /src/git/diff.c:6174,1
    - Dst: N_
      Src: /src/git/diff.c:6175,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/diff.c:6176,1
    - Dst: N_
      Src: /src/git/diff.c:6177,1
    - Dst: OPT_BOOL
      Src: /src/git/diff.c:6179,1
    - Dst: N_
      Src: /src/git/diff.c:6180,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6181,1
    - Dst: N_
      Src: /src/git/diff.c:6182,1
    - Dst: OPT_INTEGER
      Src: /src/git/diff.c:6184,1
    - Dst: N_
      Src: /src/git/diff.c:6185,1
    - Dst: OPT_GROUP
      Src: /src/git/diff.c:6187,1
    - Dst: N_
      Src: /src/git/diff.c:6187,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6188,1
    - Dst: N_
      Src: /src/git/diff.c:6189,1
    - Dst: OPT_BIT_F
      Src: /src/git/diff.c:6192,1
    - Dst: N_
      Src: /src/git/diff.c:6193,1
    - Dst: OPT_BIT_F
      Src: /src/git/diff.c:6195,1
    - Dst: N_
      Src: /src/git/diff.c:6196,1
    - Dst: OPT_BIT_F
      Src: /src/git/diff.c:6198,1
    - Dst: N_
      Src: /src/git/diff.c:6199,1
    - Dst: OPT_BIT_F
      Src: /src/git/diff.c:6201,1
    - Dst: N_
      Src: /src/git/diff.c:6202,1
    - Dst: OPT_BIT_F
      Src: /src/git/diff.c:6204,1
    - Dst: N_
      Src: /src/git/diff.c:6205,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6207,1
    - Dst: N_
      Src: /src/git/diff.c:6207,1
    - Dst: N_
      Src: /src/git/diff.c:6208,1
    - Dst: OPT_BIT
      Src: /src/git/diff.c:6210,1
    - Dst: N_
      Src: /src/git/diff.c:6211,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6213,1
    - Dst: N_
      Src: /src/git/diff.c:6214,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6217,1
    - Dst: N_
      Src: /src/git/diff.c:6218,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6221,1
    - Dst: N_
      Src: /src/git/diff.c:6221,1
    - Dst: N_
      Src: /src/git/diff.c:6222,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6224,1
    - Dst: N_
      Src: /src/git/diff.c:6224,1
    - Dst: N_
      Src: /src/git/diff.c:6225,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6227,1
    - Dst: N_
      Src: /src/git/diff.c:6227,1
    - Dst: N_
      Src: /src/git/diff.c:6228,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6230,1
    - Dst: N_
      Src: /src/git/diff.c:6230,1
    - Dst: N_
      Src: /src/git/diff.c:6231,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6233,1
    - Dst: N_
      Src: /src/git/diff.c:6233,1
    - Dst: N_
      Src: /src/git/diff.c:6234,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6236,1
    - Dst: N_
      Src: /src/git/diff.c:6236,1
    - Dst: N_
      Src: /src/git/diff.c:6237,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6239,1
    - Dst: N_
      Src: /src/git/diff.c:6239,1
    - Dst: N_
      Src: /src/git/diff.c:6240,1
    - Dst: OPT_GROUP
      Src: /src/git/diff.c:6243,1
    - Dst: N_
      Src: /src/git/diff.c:6243,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6244,1
    - Dst: N_
      Src: /src/git/diff.c:6244,1
    - Dst: N_
      Src: /src/git/diff.c:6245,1
    - Dst: OPT_BOOL
      Src: /src/git/diff.c:6248,1
    - Dst: N_
      Src: /src/git/diff.c:6249,1
    - Dst: OPT_BOOL
      Src: /src/git/diff.c:6250,1
    - Dst: N_
      Src: /src/git/diff.c:6251,1
    - Dst: OPT_BOOL
      Src: /src/git/diff.c:6252,1
    - Dst: N_
      Src: /src/git/diff.c:6253,1
    - Dst: OPT_BOOL
      Src: /src/git/diff.c:6254,1
    - Dst: N_
      Src: /src/git/diff.c:6255,1
    - Dst: OPT_BOOL
      Src: /src/git/diff.c:6256,1
    - Dst: N_
      Src: /src/git/diff.c:6257,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6258,1
    - Dst: N_
      Src: /src/git/diff.c:6259,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6261,1
    - Dst: N_
      Src: /src/git/diff.c:6261,1
    - Dst: N_
      Src: /src/git/diff.c:6262,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6265,1
    - Dst: N_
      Src: /src/git/diff.c:6265,1
    - Dst: N_
      Src: /src/git/diff.c:6266,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/diff.c:6269,1
    - Dst: N_
      Src: /src/git/diff.c:6270,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/diff.c:6272,1
    - Dst: N_
      Src: /src/git/diff.c:6273,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6275,1
    - Dst: N_
      Src: /src/git/diff.c:6275,1
    - Dst: N_
      Src: /src/git/diff.c:6276,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6278,1
    - Dst: N_
      Src: /src/git/diff.c:6278,1
    - Dst: N_
      Src: /src/git/diff.c:6279,1
    - Dst: OPT_BIT_F
      Src: /src/git/diff.c:6281,1
    - Dst: N_
      Src: /src/git/diff.c:6282,1
    - Dst: OPT_BIT_F
      Src: /src/git/diff.c:6284,1
    - Dst: N_
      Src: /src/git/diff.c:6285,1
    - Dst: OPT_FILENAME
      Src: /src/git/diff.c:6287,1
    - Dst: N_
      Src: /src/git/diff.c:6288,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6289,1
    - Dst: N_
      Src: /src/git/diff.c:6289,1
    - Dst: N_
      Src: /src/git/diff.c:6290,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6292,1
    - Dst: N_
      Src: /src/git/diff.c:6292,1
    - Dst: N_
      Src: /src/git/diff.c:6293,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6295,1
    - Dst: N_
      Src: /src/git/diff.c:6295,1
    - Dst: N_
      Src: /src/git/diff.c:6296,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6298,1
    - Dst: N_
      Src: /src/git/diff.c:6298,1
    - Dst: N_
      Src: /src/git/diff.c:6299,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/diff.c:6301,1
    - Dst: N_
      Src: /src/git/diff.c:6301,1
    - Dst: N_
      Src: /src/git/diff.c:6302,1
    - Dst: N_
      Src: /src/git/diff.c:6309,1
    - Dst: N_
      Src: /src/git/diff.c:6310,1
    - Dst: OPT_END
      Src: /src/git/diff.c:6314,1
    - Dst: parse_options_concat
      Src: /src/git/diff.c:6317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - options
    argTypes:
    - struct option*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6318
      start: 6034
    functionDepth: 1
    functionLinenumber: 6034
    functionLinenumberEnd: 6318
    functionName: add_diff_options
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - OPT__ABBREV
    - OPT_FILENAME
    - OPT_END
    - OPT_SET_INT
    - OPT_GROUP
    - OPT_SET_INT_F
    - OPT_UNSIGNED
    - OPT_CALLBACK_F
    - OPT_BOOL
    - OPT_BITOP
    - OPT_BIT
    - parse_options_concat
    - OPT_BIT_F
    - N_
    - OPT_STRING_F
    - OPT_COLOR_FLAG
    - OPT_INTEGER
    linkageType: ''
    returnType: struct option
    signature: "struct option *add_diff_options(const struct option *opts,\n\t\t\t\tstruct
      diff_options *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/diff.c:6323,1
    - Dst: add_diff_options
      Src: /src/git/diff.c:6324,1
    - Dst: parse_options
      Src: /src/git/diff.c:6329,1
    - Dst: free
      Src: /src/git/diff.c:6335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - options
    - av
    - ac
    - prefix
    argTypes:
    - struct diff_options*
    - char**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6338
      start: 6320
    functionDepth: 13
    functionLinenumber: 6320
    functionLinenumberEnd: 6338
    functionName: diff_opt_parse
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - add_diff_options
    - parse_options
    - OPT_END
    - free
    linkageType: ''
    returnType: int
    signature: "int diff_opt_parse(struct diff_options *options,\n\t\t   const char
      **av, int ac, const char *prefix)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - cp_p
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6374
      start: 6340
    functionDepth: 0
    functionLinenumber: 6340
    functionLinenumberEnd: 6374
    functionName: parse_rename_score
    functionSourceFile: /src/git/diff.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parse_rename_score(const char **cp_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/diff.c:6380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - queue
    - dp
    argTypes:
    - struct diff_queue_struct*
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6382
      start: 6378
    functionDepth: 1
    functionLinenumber: 6378
    functionLinenumberEnd: 6382
    functionName: diff_q
    functionSourceFile: /src/git/diff.c
    functionUses: 6
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void diff_q(struct diff_queue_struct *queue, struct diff_filepair *dp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/diff.c:6388,1
    - Dst: diff_q
      Src: /src/git/diff.c:6392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - queue
    - one
    - two
    argTypes:
    - struct diff_queue_struct*
    - struct diff_filespec*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6394
      start: 6384
    functionDepth: 7
    functionLinenumber: 6384
    functionLinenumberEnd: 6394
    functionName: diff_queue
    functionSourceFile: /src/git/diff.c
    functionUses: 5
    functionsReached:
    - diff_q
    - xcalloc
    linkageType: ''
    returnType: struct diff_filepair
    signature: "struct diff_filepair *diff_queue(struct diff_queue_struct *queue,\n\t\t\t\t
      struct diff_filespec *one,\n\t\t\t\t struct diff_filespec *two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_filespec
      Src: /src/git/diff.c:6398,1
    - Dst: free_filespec
      Src: /src/git/diff.c:6399,1
    - Dst: free
      Src: /src/git/diff.c:6400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6401
      start: 6396
    functionDepth: 2
    functionLinenumber: 6396
    functionLinenumberEnd: 6401
    functionName: diff_free_filepair
    functionSourceFile: /src/git/diff.c
    functionUses: 6
    functionsReached:
    - free_filespec
    - free
    linkageType: ''
    returnType: void
    signature: void diff_free_filepair(struct diff_filepair *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/diff.c:6406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct diff_queue_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6407
      start: 6403
    functionDepth: 0
    functionLinenumber: 6403
    functionLinenumberEnd: 6407
    functionName: diff_queue_init
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void diff_queue_init(struct diff_queue_struct *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_free_filepair
      Src: /src/git/diff.c:6412,1
    - Dst: free
      Src: /src/git/diff.c:6413,1
    - Dst: diff_queue_init
      Src: /src/git/diff.c:6414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct diff_queue_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6415
      start: 6409
    functionDepth: 3
    functionLinenumber: 6409
    functionLinenumberEnd: 6415
    functionName: diff_queue_clear
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - diff_free_filepair
    - diff_queue_init
    - free
    linkageType: ''
    returnType: void
    signature: void diff_queue_clear(struct diff_queue_struct *q)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/diff.c:6424,1
    - Dst: diff_abbrev_oid
      Src: /src/git/diff.c:6427,1
    - Dst: print_sha1_ellipsis
      Src: /src/git/diff.c:6429,1
    - Dst: strlen
      Src: /src/git/diff.c:6432,1
    - Dst: xsnprintf
      Src: /src/git/diff.c:6456,1
    - Dst: xsnprintf
      Src: /src/git/diff.c:6458,1
    - Dst: oid_to_hex
      Src: /src/git/diff.c:6462,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - oid
    - len
    argTypes:
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6463
      start: 6417
    functionDepth: 5
    functionLinenumber: 6417
    functionLinenumberEnd: 6463
    functionName: diff_aligned_abbrev
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - print_sha1_ellipsis
    - strlen
    - diff_abbrev_oid
    - xsnprintf
    linkageType: ''
    returnType: char
    signature: char *diff_aligned_abbrev(const struct object_id *oid, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/diff.c:6470,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:6470,1
    - Dst: fprintf
      Src: /src/git/diff.c:6472,1
    - Dst: diff_aligned_abbrev
      Src: /src/git/diff.c:6473,1
    - Dst: fprintf
      Src: /src/git/diff.c:6474,1
    - Dst: diff_aligned_abbrev
      Src: /src/git/diff.c:6475,1
    - Dst: fprintf
      Src: /src/git/diff.c:6478,1
    - Dst: similarity_index
      Src: /src/git/diff.c:6478,1
    - Dst: fprintf
      Src: /src/git/diff.c:6481,1
    - Dst: strip_prefix
      Src: /src/git/diff.c:6489,1
    - Dst: write_name_quoted
      Src: /src/git/diff.c:6490,1
    - Dst: write_name_quoted
      Src: /src/git/diff.c:6491,1
    - Dst: strip_prefix
      Src: /src/git/diff.c:6496,1
    - Dst: write_name_quoted
      Src: /src/git/diff.c:6497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - p
    - opt
    argTypes:
    - struct diff_filepair*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6499
      start: 6465
    functionDepth: 6
    functionLinenumber: 6465
    functionLinenumberEnd: 6499
    functionName: diff_flush_raw
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - similarity_index
    - strip_prefix
    - write_name_quoted
    - fprintf
    - diff_line_prefix
    - diff_aligned_abbrev
    linkageType: ''
    returnType: void
    signature: void diff_flush_raw(struct diff_filepair *p, struct diff_options *opt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_PAIR_UNMERGED
      Src: /src/git/diff.c:6510,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6516,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6516,1
    - Dst: DIFF_PAIR_MODE_CHANGED
      Src: /src/git/diff.c:6517,1
    - Dst: strcmp
      Src: /src/git/diff.c:6518,1
    - Dst: oideq
      Src: /src/git/diff.c:6525,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6531
      start: 6501
    functionDepth: 1
    functionLinenumber: 6501
    functionLinenumberEnd: 6531
    functionName: diff_unmodified_pair
    functionSourceFile: /src/git/diff.c
    functionUses: 5
    functionsReached:
    - DIFF_PAIR_MODE_CHANGED
    - DIFF_PAIR_UNMERGED
    - strcmp
    - DIFF_FILE_VALID
    - oideq
    linkageType: ''
    returnType: int
    signature: int diff_unmodified_pair(struct diff_filepair *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: additional_headers
      Src: /src/git/diff.c:6536,1
    - Dst: filter_bit_tst
      Src: /src/git/diff.c:6538,1
    - Dst: diff_unmodified_pair
      Src: /src/git/diff.c:6550,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6554,1
    - Dst: S_ISDIR
      Src: /src/git/diff.c:6554,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6555,1
    - Dst: S_ISDIR
      Src: /src/git/diff.c:6555,1
    - Dst: run_diff
      Src: /src/git/diff.c:6558,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 2
    argNames:
    - p
    - o
    argTypes:
    - struct diff_filepair*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6559
      start: 6533
    functionDepth: 4
    functionLinenumber: 6533
    functionLinenumberEnd: 6559
    functionName: diff_flush_patch
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - diff_unmodified_pair
    - additional_headers
    - filter_bit_tst
    - run_diff
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: void
    signature: void diff_flush_patch(struct diff_filepair *p, struct diff_options
      *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_flush_patch
      Src: /src/git/diff.c:6570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - p
    - o
    argTypes:
    - struct diff_filepair*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6575
      start: 6562
    functionDepth: 5
    functionLinenumber: 6562
    functionLinenumberEnd: 6575
    functionName: diff_flush_patch_quietly
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_flush_patch
    linkageType: ''
    returnType: int
    signature: int diff_flush_patch_quietly(struct diff_filepair *p, struct diff_options
      *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_unmodified_pair
      Src: /src/git/diff.c:6580,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6583,1
    - Dst: S_ISDIR
      Src: /src/git/diff.c:6583,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6584,1
    - Dst: S_ISDIR
      Src: /src/git/diff.c:6584,1
    - Dst: run_diffstat
      Src: /src/git/diff.c:6587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - p
    - o
    - diffstat
    argTypes:
    - struct diff_filepair*
    - struct diff_options*
    - struct diffstat_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6588
      start: 6577
    functionDepth: 11
    functionLinenumber: 6577
    functionLinenumberEnd: 6588
    functionName: diff_flush_stat
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_unmodified_pair
    - S_ISDIR
    - DIFF_FILE_VALID
    - run_diffstat
    linkageType: ''
    returnType: void
    signature: "void diff_flush_stat(struct diff_filepair *p, struct diff_options
      *o,\n\t\t\t    struct diffstat_t *diffstat)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_unmodified_pair
      Src: /src/git/diff.c:6593,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6596,1
    - Dst: S_ISDIR
      Src: /src/git/diff.c:6596,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6597,1
    - Dst: S_ISDIR
      Src: /src/git/diff.c:6597,1
    - Dst: run_checkdiff
      Src: /src/git/diff.c:6600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - p
    - o
    argTypes:
    - struct diff_filepair*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6601
      start: 6590
    functionDepth: 11
    functionLinenumber: 6590
    functionLinenumberEnd: 6601
    functionName: diff_flush_checkdiff
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_unmodified_pair
    - S_ISDIR
    - run_checkdiff
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: void
    signature: "void diff_flush_checkdiff(struct diff_filepair *p,\n\t\tstruct diff_options
      *o)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get_size
      Src: /src/git/diff.c:6609,1
    - Dst: filter_bit_tst
      Src: /src/git/diff.c:6611,1
    - Dst: diff_unmodified_pair
      Src: /src/git/diff.c:6617,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6620
      start: 6603
    functionDepth: 3
    functionLinenumber: 6603
    functionLinenumberEnd: 6620
    functionName: diff_queue_is_empty
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - filter_bit_tst
    - diff_unmodified_pair
    - strmap_get_size
    linkageType: ''
    returnType: int
    signature: int diff_queue_is_empty(struct diff_options *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/diff.c:6625,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6628,1
    - Dst: oid_to_hex
      Src: /src/git/diff.c:6630,1
    - Dst: fprintf
      Src: /src/git/diff.c:6631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - x
    - one
    argTypes:
    - struct diff_filespec*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6634
      start: 6623
    functionDepth: 3
    functionLinenumber: 6623
    functionLinenumberEnd: 6634
    functionName: diff_debug_filespec
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - DIFF_FILE_VALID
    - fprintf
    linkageType: ''
    returnType: void
    signature: void diff_debug_filespec(struct diff_filespec *s, int x, const char
      *one)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_debug_filespec
      Src: /src/git/diff.c:6638,1
    - Dst: diff_debug_filespec
      Src: /src/git/diff.c:6639,1
    - Dst: fprintf
      Src: /src/git/diff.c:6640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - struct diff_filepair*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6643
      start: 6636
    functionDepth: 4
    functionLinenumber: 6636
    functionLinenumberEnd: 6643
    functionName: diff_debug_filepair
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_debug_filespec
    - fprintf
    linkageType: ''
    returnType: void
    signature: void diff_debug_filepair(const struct diff_filepair *p, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/diff.c:6649,1
    - Dst: fprintf
      Src: /src/git/diff.c:6650,1
    - Dst: diff_debug_filepair
      Src: /src/git/diff.c:6653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - q
    argTypes:
    - char*
    - struct diff_queue_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6655
      start: 6645
    functionDepth: 5
    functionLinenumber: 6645
    functionLinenumberEnd: 6655
    functionName: diff_debug_queue
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - diff_debug_filepair
    - fprintf
    linkageType: ''
    returnType: void
    signature: void diff_debug_queue(const char *msg, struct diff_queue_struct *q)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: diff_debug_queue
      Src: /src/git/diff.c:6664,1
    - Dst: DIFF_PAIR_UNMERGED
      Src: /src/git/diff.c:6669,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6671,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6673,1
    - Dst: DIFF_PAIR_TYPE_CHANGED
      Src: /src/git/diff.c:6675,1
    - Dst: DIFF_PAIR_RENAME
      Src: /src/git/diff.c:6682,1
    - Dst: strcmp
      Src: /src/git/diff.c:6693,1
    - Dst: oideq
      Src: /src/git/diff.c:6700,1
    - Dst: is_null_oid
      Src: /src/git/diff.c:6704,1
    - Dst: error
      Src: /src/git/diff.c:6710,1
    - Dst: diff_debug_queue
      Src: /src/git/diff.c:6715,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6716
      start: 6658
    functionDepth: 6
    functionLinenumber: 6658
    functionLinenumberEnd: 6716
    functionName: diff_resolve_rename_copy
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - oideq
    - DIFF_PAIR_TYPE_CHANGED
    - is_null_oid
    - DIFF_PAIR_UNMERGED
    - strcmp
    - DIFF_PAIR_RENAME
    - DIFF_FILE_VALID
    - diff_debug_queue
    linkageType: ''
    returnType: void
    signature: void diff_resolve_rename_copy(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/diff.c:6724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6728
      start: 6718
    functionDepth: 0
    functionLinenumber: 6718
    functionLinenumberEnd: 6728
    functionName: check_pair_status
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: int
    signature: int check_pair_status(struct diff_filepair *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: diff_flush_checkdiff
      Src: /src/git/diff.c:6735,1
    - Dst: diff_flush_raw
      Src: /src/git/diff.c:6737,1
    - Dst: strip_prefix
      Src: /src/git/diff.c:6742,1
    - Dst: fprintf
      Src: /src/git/diff.c:6743,1
    - Dst: diff_line_prefix
      Src: /src/git/diff.c:6743,1
    - Dst: write_name_quoted
      Src: /src/git/diff.c:6744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - opt
    argTypes:
    - struct diff_filepair*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6748
      start: 6730
    functionDepth: 12
    functionLinenumber: 6730
    functionLinenumberEnd: 6748
    functionName: flush_one_pair
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_flush_raw
    - strip_prefix
    - write_name_quoted
    - diff_line_prefix
    - fprintf
    - diff_flush_checkdiff
    linkageType: ''
    returnType: void
    signature: void flush_one_pair(struct diff_filepair *p, struct diff_options *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/diff.c:6754,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:6756,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:6758,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:6759,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:6760,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:6762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - newdelete
    - fs
    argTypes:
    - struct diff_options*
    - char*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6763
      start: 6750
    functionDepth: 12
    functionLinenumber: 6750
    functionLinenumberEnd: 6763
    functionName: show_file_mode_name
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - emit_diff_symbol
    - strbuf_addch
    - quote_c_style
    linkageType: ''
    returnType: void
    signature: void show_file_mode_name(struct diff_options *opt, const char *newdelete,
      struct diff_filespec *fs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/diff.c:6770,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:6773,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:6774,1
    - Dst: strbuf_addch
      Src: /src/git/diff.c:6776,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:6777,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:6779,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - p
    - show_name
    argTypes:
    - struct diff_options*
    - struct diff_filepair*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6781
      start: 6765
    functionDepth: 12
    functionLinenumber: 6765
    functionLinenumberEnd: 6781
    functionName: show_mode_change
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - emit_diff_symbol
    - strbuf_addch
    - quote_c_style
    linkageType: ''
    returnType: void
    signature: "void show_mode_change(struct diff_options *opt, struct diff_filepair
      *p,\n\t\tint show_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pprint_rename
      Src: /src/git/diff.c:6789,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:6790,1
    - Dst: similarity_index
      Src: /src/git/diff.c:6791,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:6792,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:6793,1
    - Dst: show_mode_change
      Src: /src/git/diff.c:6795,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:6796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - renamecopy
    - p
    argTypes:
    - struct diff_options*
    - char*
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6797
      start: 6783
    functionDepth: 12
    functionLinenumber: 6783
    functionLinenumberEnd: 6797
    functionName: show_rename_copy
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - emit_diff_symbol
    - pprint_rename
    - similarity_index
    - show_mode_change
    linkageType: ''
    returnType: void
    signature: "void show_rename_copy(struct diff_options *opt, const char *renamecopy,\n\t\tstruct
      diff_filepair *p)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: show_file_mode_name
      Src: /src/git/diff.c:6803,1
    - Dst: show_file_mode_name
      Src: /src/git/diff.c:6806,1
    - Dst: show_rename_copy
      Src: /src/git/diff.c:6809,1
    - Dst: show_rename_copy
      Src: /src/git/diff.c:6812,1
    - Dst: strbuf_addstr
      Src: /src/git/diff.c:6817,1
    - Dst: quote_c_style
      Src: /src/git/diff.c:6818,1
    - Dst: strbuf_addf
      Src: /src/git/diff.c:6819,1
    - Dst: similarity_index
      Src: /src/git/diff.c:6819,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:6820,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:6822,1
    - Dst: show_mode_change
      Src: /src/git/diff.c:6824,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - opt
    - p
    argTypes:
    - struct diff_options*
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6827
      start: 6799
    functionDepth: 12
    functionLinenumber: 6799
    functionLinenumberEnd: 6827
    functionName: diff_summary
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - similarity_index
    - emit_diff_symbol
    - show_rename_copy
    - show_mode_change
    - strbuf_addstr
    - quote_c_style
    - show_file_mode_name
    linkageType: ''
    returnType: void
    signature: void diff_summary(struct diff_options *opt, struct diff_filepair *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/diff.c:6841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6845
      start: 6834
    functionDepth: 1
    functionLinenumber: 6834
    functionLinenumberEnd: 6845
    functionName: remove_space
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int remove_space(char *line, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_hash_final
      Src: /src/git/diff.c:6853,1
    - Dst: init_fn
      Src: /src/git/diff.c:6854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - result
    - ctx
    argTypes:
    - struct object_id*
    - struct git_hash_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6861
      start: 6847
    functionDepth: 1
    functionLinenumber: 6847
    functionLinenumberEnd: 6861
    functionName: flush_one_hunk
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - git_hash_final
    - init_fn
    linkageType: ''
    returnType: void
    signature: void flush_one_hunk(struct object_id *result, struct git_hash_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/diff.c:6868,1
    - Dst: remove_space
      Src: /src/git/diff.c:6870,1
    - Dst: git_hash_update
      Src: /src/git/diff.c:6872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - priv
    - line
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6875
      start: 6863
    functionDepth: 1
    functionLinenumber: 6863
    functionLinenumberEnd: 6875
    functionName: patch_id_consume
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - git_hash_update
    - remove_space
    - starts_with
    linkageType: ''
    returnType: int
    signature: int patch_id_consume(void *priv, char *line, unsigned long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_hash_update
      Src: /src/git/diff.c:6879,1
    - Dst: strlen
      Src: /src/git/diff.c:6879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - struct git_hash_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6880
      start: 6877
    functionDepth: 1
    functionLinenumber: 6877
    functionLinenumberEnd: 6880
    functionName: patch_id_add_string
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - git_hash_update
    - strlen
    linkageType: ''
    returnType: void
    signature: void patch_id_add_string(struct git_hash_ctx *ctx, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/diff.c:6886,1
    - Dst: git_hash_update
      Src: /src/git/diff.c:6887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - mode
    argTypes:
    - struct git_hash_ctx*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6888
      start: 6882
    functionDepth: 2
    functionLinenumber: 6882
    functionLinenumberEnd: 6888
    functionName: patch_id_add_mode
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - git_hash_update
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void patch_id_add_mode(struct git_hash_ctx *ctx, unsigned mode)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: init_fn
      Src: /src/git/diff.c:6898,1
    - Dst: memset
      Src: /src/git/diff.c:6899,1
    - Dst: oidclr
      Src: /src/git/diff.c:6901,1
    - Dst: memset
      Src: /src/git/diff.c:6910,1
    - Dst: memset
      Src: /src/git/diff.c:6911,1
    - Dst: error
      Src: /src/git/diff.c:6913,1
    - Dst: diff_unmodified_pair
      Src: /src/git/diff.c:6916,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6918,1
    - Dst: S_ISDIR
      Src: /src/git/diff.c:6918,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:6919,1
    - Dst: S_ISDIR
      Src: /src/git/diff.c:6919,1
    - Dst: DIFF_PAIR_UNMERGED
      Src: /src/git/diff.c:6921,1
    - Dst: diff_fill_oid_info
      Src: /src/git/diff.c:6924,1
    - Dst: diff_fill_oid_info
      Src: /src/git/diff.c:6925,1
    - Dst: remove_space
      Src: /src/git/diff.c:6927,1
    - Dst: strlen
      Src: /src/git/diff.c:6927,1
    - Dst: remove_space
      Src: /src/git/diff.c:6928,1
    - Dst: strlen
      Src: /src/git/diff.c:6928,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6929,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6930,1
    - Dst: git_hash_update
      Src: /src/git/diff.c:6931,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6932,1
    - Dst: git_hash_update
      Src: /src/git/diff.c:6933,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6936,1
    - Dst: patch_id_add_mode
      Src: /src/git/diff.c:6937,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6939,1
    - Dst: patch_id_add_mode
      Src: /src/git/diff.c:6940,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6942,1
    - Dst: patch_id_add_mode
      Src: /src/git/diff.c:6943,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6944,1
    - Dst: patch_id_add_mode
      Src: /src/git/diff.c:6945,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:6950,1
    - Dst: diff_filespec_is_binary
      Src: /src/git/diff.c:6951,1
    - Dst: git_hash_update
      Src: /src/git/diff.c:6952,1
    - Dst: oid_to_hex
      Src: /src/git/diff.c:6952,1
    - Dst: git_hash_update
      Src: /src/git/diff.c:6954,1
    - Dst: oid_to_hex
      Src: /src/git/diff.c:6954,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6958,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6959,1
    - Dst: git_hash_update
      Src: /src/git/diff.c:6960,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6962,1
    - Dst: git_hash_update
      Src: /src/git/diff.c:6963,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6964,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6966,1
    - Dst: git_hash_update
      Src: /src/git/diff.c:6967,1
    - Dst: patch_id_add_string
      Src: /src/git/diff.c:6968,1
    - Dst: git_hash_update
      Src: /src/git/diff.c:6969,1
    - Dst: fill_mmfile
      Src: /src/git/diff.c:6972,1
    - Dst: fill_mmfile
      Src: /src/git/diff.c:6973,1
    - Dst: error
      Src: /src/git/diff.c:6974,1
    - Dst: xdi_diff_outf
      Src: /src/git/diff.c:6978,1
    - Dst: error
      Src: /src/git/diff.c:6980,1
    - Dst: flush_one_hunk
      Src: /src/git/diff.c:6983,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 3
    argNames:
    - options
    - oid
    - diff_header_only
    argTypes:
    - struct diff_options*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6987
      start: 6891
    functionDepth: 10
    functionLinenumber: 6891
    functionLinenumberEnd: 6987
    functionName: diff_get_patch_id
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - patch_id_add_mode
    - oidclr
    - error
    - fill_mmfile
    - diff_unmodified_pair
    - diff_fill_oid_info
    - git_hash_update
    - init_fn
    - diff_filespec_is_binary
    - memset
    - oid_to_hex
    - patch_id_add_string
    - S_ISDIR
    - strlen
    - DIFF_PAIR_UNMERGED
    - remove_space
    - flush_one_hunk
    - DIFF_FILE_VALID
    - xdi_diff_outf
    linkageType: ''
    returnType: int
    signature: int diff_get_patch_id(struct diff_options *options, struct object_id
      *oid, int diff_header_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_get_patch_id
      Src: /src/git/diff.c:6992,1
    - Dst: diff_queue_clear
      Src: /src/git/diff.c:6994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - options
    - oid
    - diff_header_only
    argTypes:
    - struct diff_options*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6997
      start: 6989
    functionDepth: 11
    functionLinenumber: 6989
    functionLinenumberEnd: 6997
    functionName: diff_flush_patch_id
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - diff_get_patch_id
    - diff_queue_clear
    linkageType: ''
    returnType: int
    signature: int diff_flush_patch_id(struct diff_options *options, struct object_id
      *oid, int diff_header_only)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct diff_queue_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7022
      start: 6999
    functionDepth: 0
    functionLinenumber: 6999
    functionLinenumberEnd: 7022
    functionName: is_summary_empty
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_summary_empty(const struct diff_queue_struct *q)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/git/diff.c:7036,1
    - Dst: warning
      Src: /src/git/diff.c:7038,1
    - Dst: _
      Src: /src/git/diff.c:7038,1
    - Dst: warning
      Src: /src/git/diff.c:7040,1
    - Dst: _
      Src: /src/git/diff.c:7040,1
    - Dst: warning
      Src: /src/git/diff.c:7044,1
    - Dst: _
      Src: /src/git/diff.c:7044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - varname
    - needed
    - degraded_cc
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7045
      start: 7034
    functionDepth: 1
    functionLinenumber: 7034
    functionLinenumberEnd: 7045
    functionName: diff_warn_rename_limit
    functionSourceFile: /src/git/diff.c
    functionUses: 1
    functionsReached:
    - warning
    - fflush
    - _
    linkageType: ''
    returnType: void
    signature: void diff_warn_rename_limit(const char *varname, int needed, int degraded_cc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strset_init_with_options
      Src: /src/git/diff.c:7055,1
    - Dst: strmap_contains
      Src: /src/git/diff.c:7065,1
    - Dst: strset_add
      Src: /src/git/diff.c:7066,1
    - Dst: strmap_for_each_entry
      Src: /src/git/diff.c:7074,1
    - Dst: strset_contains
      Src: /src/git/diff.c:7075,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:7079,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:7080,1
    - Dst: fill_filespec
      Src: /src/git/diff.c:7081,1
    - Dst: null_oid
      Src: /src/git/diff.c:7081,1
    - Dst: fill_filespec
      Src: /src/git/diff.c:7082,1
    - Dst: null_oid
      Src: /src/git/diff.c:7082,1
    - Dst: diff_queue
      Src: /src/git/diff.c:7083,1
    - Dst: diffcore_fix_diff_index
      Src: /src/git/diff.c:7089,1
    - Dst: strset_clear
      Src: /src/git/diff.c:7092,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7093
      start: 7047
    functionDepth: 8
    functionLinenumber: 7047
    functionLinenumberEnd: 7093
    functionName: create_filepairs_for_header_only_notifications
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strset_contains
    - strset_clear
    - diff_queue
    - alloc_filespec
    - diffcore_fix_diff_index
    - strmap_for_each_entry
    - fill_filespec
    - strset_init_with_options
    - null_oid
    - strset_add
    - strmap_contains
    linkageType: ''
    returnType: void
    signature: void create_filepairs_for_header_only_notifications(struct diff_options
      *o)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/diff.c:7102,1
    - Dst: want_color
      Src: /src/git/diff.c:7104,1
    - Dst: create_filepairs_for_header_only_notifications
      Src: /src/git/diff.c:7108,1
    - Dst: check_pair_status
      Src: /src/git/diff.c:7112,1
    - Dst: diff_flush_patch
      Src: /src/git/diff.c:7113,1
    - Dst: mem_pool_init
      Src: /src/git/diff.c:7120,1
    - Dst: add_lines_to_move_detection
      Src: /src/git/diff.c:7121,1
    - Dst: mark_color_as_moved
      Src: /src/git/diff.c:7122,1
    - Dst: dim_moved_lines
      Src: /src/git/diff.c:7124,1
    - Dst: mem_pool_discard
      Src: /src/git/diff.c:7126,1
    - Dst: free
      Src: /src/git/diff.c:7127,1
    - Dst: emit_diff_symbol_from_struct
      Src: /src/git/diff.c:7130,1
    - Dst: free
      Src: /src/git/diff.c:7133,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7138
      start: 7095
    functionDepth: 9
    functionLinenumber: 7095
    functionLinenumberEnd: 7138
    functionName: diff_flush_patch_all_file_pairs
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_flush_patch
    - mem_pool_init
    - emit_diff_symbol_from_struct
    - create_filepairs_for_header_only_notifications
    - mem_pool_discard
    - check_pair_status
    - add_lines_to_move_detection
    - mark_color_as_moved
    - dim_moved_lines
    - free
    - BUG
    - want_color
    linkageType: ''
    returnType: void
    signature: void diff_flush_patch_all_file_pairs(struct diff_options *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/git/diff.c:7143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7146
      start: 7140
    functionDepth: 0
    functionLinenumber: 7140
    functionLinenumberEnd: 7146
    functionName: diff_free_file
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void diff_free_file(struct diff_options *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regfree
      Src: /src/git/diff.c:7153,1
    - Dst: free
      Src: /src/git/diff.c:7154,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:7157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7159
      start: 7148
    functionDepth: 1
    functionLinenumber: 7148
    functionLinenumberEnd: 7159
    functionName: diff_free_ignore_regex
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - regfree
    - FREE_AND_NULL
    - free
    linkageType: ''
    returnType: void
    signature: void diff_free_ignore_regex(struct diff_options *options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidset_clear
      Src: /src/git/diff.c:7167,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:7168,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:7171,1
    - Dst: free
      Src: /src/git/diff.c:7173,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff.c:7174,1
    - Dst: diff_free_file
      Src: /src/git/diff.c:7177,1
    - Dst: diff_free_ignore_regex
      Src: /src/git/diff.c:7178,1
    - Dst: clear_pathspec
      Src: /src/git/diff.c:7179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7180
      start: 7161
    functionDepth: 2
    functionLinenumber: 7161
    functionLinenumberEnd: 7180
    functionName: diff_free
    functionSourceFile: /src/git/diff.c
    functionUses: 6
    functionsReached:
    - clear_pathspec
    - oidset_clear
    - diff_free_file
    - diff_free_ignore_regex
    - free
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void diff_free(struct diff_options *options)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: check_pair_status
      Src: /src/git/diff.c:7203,1
    - Dst: diff_flush_patch_quietly
      Src: /src/git/diff.c:7207,1
    - Dst: flush_one_pair
      Src: /src/git/diff.c:7210,1
    - Dst: compute_diffstat
      Src: /src/git/diff.c:7222,1
    - Dst: show_numstat
      Src: /src/git/diff.c:7224,1
    - Dst: show_stats
      Src: /src/git/diff.c:7226,1
    - Dst: show_shortstats
      Src: /src/git/diff.c:7228,1
    - Dst: show_dirstat_by_line
      Src: /src/git/diff.c:7230,1
    - Dst: free_diffstat_info
      Src: /src/git/diff.c:7231,1
    - Dst: show_dirstat
      Src: /src/git/diff.c:7235,1
    - Dst: is_summary_empty
      Src: /src/git/diff.c:7237,1
    - Dst: diff_summary
      Src: /src/git/diff.c:7239,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:7246,1
    - Dst: emit_diff_symbol
      Src: /src/git/diff.c:7249,1
    - Dst: diff_flush_patch_all_file_pairs
      Src: /src/git/diff.c:7253,1
    - Dst: struct diff_options*::format_callback
      Src: /src/git/diff.c:7257,1
    - Dst: check_pair_status
      Src: /src/git/diff.c:7264,1
    - Dst: diff_flush_patch_quietly
      Src: /src/git/diff.c:7265,1
    - Dst: diff_queue_clear
      Src: /src/git/diff.c:7272,1
    - Dst: diff_free
      Src: /src/git/diff.c:7273,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 64
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7286
      start: 7182
    functionDepth: 14
    functionLinenumber: 7182
    functionLinenumberEnd: 7286
    functionName: diff_flush
    functionSourceFile: /src/git/diff.c
    functionUses: 16
    functionsReached:
    - diff_flush_patch_all_file_pairs
    - is_summary_empty
    - flush_one_pair
    - show_numstat
    - struct diff_options*::format_callback
    - free_diffstat_info
    - compute_diffstat
    - emit_diff_symbol
    - diff_free
    - check_pair_status
    - show_shortstats
    - show_stats
    - diff_queue_clear
    - diff_summary
    - show_dirstat_by_line
    - show_dirstat
    - diff_flush_patch_quietly
    linkageType: ''
    returnType: void
    signature: void diff_flush(struct diff_options *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filter_bit_tst
      Src: /src/git/diff.c:7292,1
    - Dst: filter_bit_tst
      Src: /src/git/diff.c:7294,1
    - Dst: filter_bit_tst
      Src: /src/git/diff.c:7296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - options
    - p
    argTypes:
    - struct diff_options*
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7297
      start: 7288
    functionDepth: 1
    functionLinenumber: 7288
    functionLinenumberEnd: 7297
    functionName: match_filter
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - filter_bit_tst
    linkageType: ''
    returnType: int
    signature: int match_filter(const struct diff_options *options, const struct diff_filepair
      *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: filter_bit_tst
      Src: /src/git/diff.c:7308,1
    - Dst: match_filter
      Src: /src/git/diff.c:7311,1
    - Dst: diff_free_filepair
      Src: /src/git/diff.c:7323,1
    - Dst: match_filter
      Src: /src/git/diff.c:7329,1
    - Dst: diff_q
      Src: /src/git/diff.c:7330,1
    - Dst: diff_free_filepair
      Src: /src/git/diff.c:7332,1
    - Dst: free
      Src: /src/git/diff.c:7335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7337
      start: 7299
    functionDepth: 3
    functionLinenumber: 7299
    functionLinenumberEnd: 7337
    functionName: diffcore_apply_filter
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_free_filepair
    - diff_q
    - filter_bit_tst
    - match_filter
    - free
    linkageType: ''
    returnType: void
    signature: void diffcore_apply_filter(struct diff_options *options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:7344,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:7346,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:7348,1
    - Dst: memcmp
      Src: /src/git/diff.c:7350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - r
    - one
    - two
    argTypes:
    - struct repository*
    - struct diff_filespec*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7351
      start: 7340
    functionDepth: 22
    functionLinenumber: 7340
    functionLinenumberEnd: 7351
    functionName: diff_filespec_is_identical
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_populate_filespec
    - S_ISGITLINK
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int diff_filespec_is_identical(struct repository *r,\n\t\t\t\t      struct
      diff_filespec *one,\n\t\t\t\t      struct diff_filespec *two)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:7380,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:7381,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:7384,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:7385,1
    - Dst: diff_filespec_is_identical
      Src: /src/git/diff.c:7387,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - struct repository*
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7390
      start: 7353
    functionDepth: 23
    functionLinenumber: 7353
    functionLinenumberEnd: 7390
    functionName: diff_filespec_check_stat_unmatch
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_filespec_is_identical
    - diff_populate_filespec
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: int
    signature: "int diff_filespec_check_stat_unmatch(struct repository *r,\n\t\t\t\t\t
      \   struct diff_filepair *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_filespec_check_stat_unmatch
      Src: /src/git/diff.c:7401,1
    - Dst: diff_q
      Src: /src/git/diff.c:7402,1
    - Dst: diff_free_filepair
      Src: /src/git/diff.c:7411,1
    - Dst: free
      Src: /src/git/diff.c:7415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - diffopt
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7417
      start: 7392
    functionDepth: 24
    functionLinenumber: 7392
    functionLinenumberEnd: 7417
    functionName: diffcore_skip_stat_unmatch
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_free_filepair
    - diff_q
    - free
    - diff_filespec_check_stat_unmatch
    linkageType: ''
    returnType: void
    signature: void diffcore_skip_stat_unmatch(struct diff_options *diffopt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diff.c:7427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7428
      start: 7419
    functionDepth: 0
    functionLinenumber: 7419
    functionLinenumberEnd: 7428
    functionName: diffnamecmp
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int diffnamecmp(const void *a_, const void *b_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/diff.c:7433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7434
      start: 7430
    functionDepth: 1
    functionLinenumber: 7430
    functionLinenumberEnd: 7434
    functionName: diffcore_fix_diff_index
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - QSORT
    linkageType: ''
    returnType: void
    signature: void diffcore_fix_diff_index(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:7441,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/diff.c:7442,1
    - Dst: oid_array_append
      Src: /src/git/diff.c:7444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 3
    argNames:
    - r
    - to_fetch
    - filespec
    argTypes:
    - struct repository*
    - struct oid_array*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7445
      start: 7436
    functionDepth: 11
    functionLinenumber: 7436
    functionLinenumberEnd: 7445
    functionName: diff_add_if_missing
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - oid_array_append
    - odb_read_object_info_extended
    - S_ISGITLINK
    linkageType: ''
    returnType: void
    signature: "void diff_add_if_missing(struct repository *r,\n\t\t\t struct oid_array
      *to_fetch,\n\t\t\t const struct diff_filespec *filespec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: diff_add_if_missing
      Src: /src/git/diff.c:7460,1
    - Dst: diff_add_if_missing
      Src: /src/git/diff.c:7461,1
    - Dst: promisor_remote_get_direct
      Src: /src/git/diff.c:7467,1
    - Dst: oid_array_clear
      Src: /src/git/diff.c:7469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - repository
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7470
      start: 7447
    functionDepth: 14
    functionLinenumber: 7447
    functionLinenumberEnd: 7470
    functionName: diff_queued_diff_prefetch
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_add_if_missing
    - promisor_remote_get_direct
    - oid_array_clear
    linkageType: ''
    returnType: void
    signature: void diff_queued_diff_prefetch(void *repository)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7477
      start: 7472
    functionDepth: 0
    functionLinenumber: 7472
    functionLinenumberEnd: 7477
    functionName: init_diffstat_widths
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_diffstat_widths(struct diff_options *options)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: repo_has_promisor_remote
      Src: /src/git/diff.c:7495,1
    - Dst: diff_queued_diff_prefetch
      Src: /src/git/diff.c:7498,1
    - Dst: diffcore_skip_stat_unmatch
      Src: /src/git/diff.c:7502,1
    - Dst: diffcore_break
      Src: /src/git/diff.c:7506,1
    - Dst: diffcore_rename
      Src: /src/git/diff.c:7509,1
    - Dst: diffcore_merge_broken
      Src: /src/git/diff.c:7511,1
    - Dst: diffcore_pickaxe
      Src: /src/git/diff.c:7514,1
    - Dst: diffcore_order
      Src: /src/git/diff.c:7516,1
    - Dst: diffcore_rotate
      Src: /src/git/diff.c:7518,1
    - Dst: diff_resolve_rename_copy
      Src: /src/git/diff.c:7521,1
    - Dst: diffcore_apply_filter
      Src: /src/git/diff.c:7522,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7530
      start: 7479
    functionDepth: 25
    functionLinenumber: 7479
    functionLinenumberEnd: 7530
    functionName: diffcore_std
    functionSourceFile: /src/git/diff.c
    functionUses: 14
    functionsReached:
    - diffcore_pickaxe
    - diffcore_break
    - repo_has_promisor_remote
    - diffcore_rename
    - diffcore_order
    - diff_resolve_rename_copy
    - diffcore_merge_broken
    - diffcore_apply_filter
    - diffcore_rotate
    - diffcore_skip_stat_unmatch
    - diff_queued_diff_prefetch
    linkageType: ''
    returnType: void
    signature: void diffcore_std(struct diff_options *options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tmp_objdir_destroy
      Src: /src/git/diff.c:7538,1
    - Dst: diff_warn_rename_limit
      Src: /src/git/diff.c:7542,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7553
      start: 7532
    functionDepth: 9
    functionLinenumber: 7532
    functionLinenumberEnd: 7553
    functionName: diff_result_code
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - tmp_objdir_destroy
    - diff_warn_rename_limit
    linkageType: ''
    returnType: int
    signature: int diff_result_code(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7560
      start: 7555
    functionDepth: 0
    functionLinenumber: 7555
    functionLinenumberEnd: 7560
    functionName: diff_can_quit_early
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int diff_can_quit_early(struct diff_options *opt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_diffopt_flags_from_submodule_config
      Src: /src/git/diff.c:7573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - path
    - options
    argTypes:
    - char*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7578
      start: 7568
    functionDepth: 1
    functionLinenumber: 7568
    functionLinenumberEnd: 7578
    functionName: is_submodule_ignored
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - set_diffopt_flags_from_submodule_config
    linkageType: ''
    returnType: int
    signature: int is_submodule_ignored(const char *path, struct diff_options *options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/diff.c:7586,1
    - Dst: check_pair_status
      Src: /src/git/diff.c:7589,1
    - Dst: diff_flush_stat
      Src: /src/git/diff.c:7590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - options
    - diffstat
    - q
    argTypes:
    - struct diff_options*
    - struct diffstat_t*
    - struct diff_queue_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7593
      start: 7580
    functionDepth: 12
    functionLinenumber: 7580
    functionLinenumberEnd: 7593
    functionName: compute_diffstat
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - memset
    - diff_flush_stat
    - check_pair_status
    linkageType: ''
    returnType: void
    signature: "void compute_diffstat(struct diff_options *options,\n\t\t      struct
      diffstat_t *diffstat,\n\t\t      struct diff_queue_struct *q)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:7606,1
    - Dst: is_submodule_ignored
      Src: /src/git/diff.c:7606,1
    - Dst: strncmp
      Src: /src/git/diff.c:7626,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:7629,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:7630,1
    - Dst: fill_filespec
      Src: /src/git/diff.c:7633,1
    - Dst: fill_filespec
      Src: /src/git/diff.c:7635,1
    - Dst: diff_queue
      Src: /src/git/diff.c:7639,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 8
    argNames:
    - queue
    - options
    - addremove
    - mode
    - oid
    - oid_valid
    - concatpath
    - dirty_submodule
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - int
    - unsigned
    - struct object_id*
    - int
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7644
      start: 7595
    functionDepth: 8
    functionLinenumber: 7595
    functionLinenumberEnd: 7644
    functionName: diff_queue_addremove
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - is_submodule_ignored
    - S_ISGITLINK
    - alloc_filespec
    - diff_queue
    - fill_filespec
    - strncmp
    linkageType: ''
    returnType: struct diff_filepair
    signature: "struct diff_filepair *diff_queue_addremove(struct diff_queue_struct
      *queue,\n\t\t\t\t\t   struct diff_options *options,\n\t\t\t\t\t   int addremove,
      unsigned mode,\n\t\t\t\t\t   const struct object_id *oid,\n\t\t\t\t\t   int
      oid_valid,\n\t\t\t\t\t   const char *concatpath,\n\t\t\t\t\t   unsigned dirty_submodule)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:7659,1
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:7659,1
    - Dst: is_submodule_ignored
      Src: /src/git/diff.c:7660,1
    - Dst: SWAP
      Src: /src/git/diff.c:7664,1
    - Dst: SWAP
      Src: /src/git/diff.c:7665,1
    - Dst: SWAP
      Src: /src/git/diff.c:7666,1
    - Dst: SWAP
      Src: /src/git/diff.c:7667,1
    - Dst: strncmp
      Src: /src/git/diff.c:7671,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:7674,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:7675,1
    - Dst: fill_filespec
      Src: /src/git/diff.c:7676,1
    - Dst: fill_filespec
      Src: /src/git/diff.c:7677,1
    - Dst: diff_queue
      Src: /src/git/diff.c:7680,1
    - Dst: diff_filespec_check_stat_unmatch
      Src: /src/git/diff.c:7686,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:7687,1
    - Dst: diff_free_filespec_data
      Src: /src/git/diff.c:7688,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 11
    argNames:
    - queue
    - options
    - old_mode
    - new_mode
    - old_oid
    - new_oid
    - old_oid_valid
    - new_oid_valid
    - concatpath
    - old_dirty_submodule
    - new_dirty_submodule
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - unsigned
    - unsigned
    - struct object_id*
    - struct object_id*
    - int
    - int
    - char*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7695
      start: 7646
    functionDepth: 24
    functionLinenumber: 7646
    functionLinenumberEnd: 7695
    functionName: diff_queue_change
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - diff_free_filespec_data
    - diff_filespec_check_stat_unmatch
    - is_submodule_ignored
    - S_ISGITLINK
    - alloc_filespec
    - diff_queue
    - SWAP
    - fill_filespec
    - strncmp
    linkageType: ''
    returnType: struct diff_filepair
    signature: "struct diff_filepair *diff_queue_change(struct diff_queue_struct *queue,\n\t\t\t\t\tstruct
      diff_options *options,\n\t\t\t\t\tunsigned old_mode, unsigned new_mode,\n\t\t\t\t\tconst
      struct object_id *old_oid,\n\t\t\t\t\tconst struct object_id *new_oid,\n\t\t\t\t\tint
      old_oid_valid, int new_oid_valid,\n\t\t\t\t\tconst char *concatpath,\n\t\t\t\t\tunsigned
      old_dirty_submodule,\n\t\t\t\t\tunsigned new_dirty_submodule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_queue_addremove
      Src: /src/git/diff.c:7701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - options
    - addremove
    - mode
    - oid
    - oid_valid
    - concatpath
    - dirty_submodule
    argTypes:
    - struct diff_options*
    - int
    - unsigned
    - struct object_id*
    - int
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7703
      start: 7697
    functionDepth: 9
    functionLinenumber: 7697
    functionLinenumberEnd: 7703
    functionName: diff_addremove
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - diff_queue_addremove
    linkageType: ''
    returnType: void
    signature: "void diff_addremove(struct diff_options *options, int addremove, unsigned
      mode,\n\t\t    const struct object_id *oid, int oid_valid,\n\t\t    const char
      *concatpath, unsigned dirty_submodule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_queue_change
      Src: /src/git/diff.c:7713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - options
    - old_mode
    - new_mode
    - old_oid
    - new_oid
    - old_oid_valid
    - new_oid_valid
    - concatpath
    - old_dirty_submodule
    - new_dirty_submodule
    argTypes:
    - struct diff_options*
    - unsigned
    - unsigned
    - struct object_id*
    - struct object_id*
    - int
    - int
    - char*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7716
      start: 7705
    functionDepth: 25
    functionLinenumber: 7705
    functionLinenumberEnd: 7716
    functionName: diff_change
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - diff_queue_change
    linkageType: ''
    returnType: void
    signature: "void diff_change(struct diff_options *options,\n\t\t unsigned old_mode,
      unsigned new_mode,\n\t\t const struct object_id *old_oid,\n\t\t const struct
      object_id *new_oid,\n\t\t int old_oid_valid, int new_oid_valid,\n\t\t const
      char *concatpath,\n\t\t unsigned old_dirty_submodule, unsigned new_dirty_submodule)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/diff.c:7725,1
    - Dst: is_submodule_ignored
      Src: /src/git/diff.c:7725,1
    - Dst: strncmp
      Src: /src/git/diff.c:7729,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:7732,1
    - Dst: fill_filespec
      Src: /src/git/diff.c:7733,1
    - Dst: diff_queue
      Src: /src/git/diff.c:7735,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - options
    - mode
    - oid
    - concatpath
    argTypes:
    - struct diff_options*
    - unsigned
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7736
      start: 7718
    functionDepth: 8
    functionLinenumber: 7718
    functionLinenumberEnd: 7736
    functionName: diff_same
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - is_submodule_ignored
    - S_ISGITLINK
    - alloc_filespec
    - diff_queue
    - fill_filespec
    - strncmp
    linkageType: ''
    returnType: void
    signature: "void diff_same(struct diff_options *options,\n\t       unsigned mode,\n\t
      \      const struct object_id *oid,\n\t       const char *concatpath)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/diff.c:7744,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:7747,1
    - Dst: alloc_filespec
      Src: /src/git/diff.c:7748,1
    - Dst: diff_queue
      Src: /src/git/diff.c:7749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - options
    - path
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7752
      start: 7738
    functionDepth: 8
    functionLinenumber: 7738
    functionLinenumberEnd: 7752
    functionName: diff_unmerge
    functionSourceFile: /src/git/diff.c
    functionUses: 2
    functionsReached:
    - strncmp
    - diff_queue
    - alloc_filespec
    linkageType: ''
    returnType: struct diff_filepair
    signature: struct diff_filepair *diff_unmerge(struct diff_options *options, const
      char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prepare_temp_file
      Src: /src/git/diff.c:7764,1
    - Dst: strvec_push
      Src: /src/git/diff.c:7765,1
    - Dst: strvec_push
      Src: /src/git/diff.c:7766,1
    - Dst: start_command
      Src: /src/git/diff.c:7770,1
    - Dst: remove_tempfile
      Src: /src/git/diff.c:7771,1
    - Dst: strbuf_read
      Src: /src/git/diff.c:7775,1
    - Dst: error
      Src: /src/git/diff.c:7776,1
    - Dst: close
      Src: /src/git/diff.c:7777,1
    - Dst: finish_command
      Src: /src/git/diff.c:7779,1
    - Dst: strbuf_release
      Src: /src/git/diff.c:7780,1
    - Dst: remove_tempfile
      Src: /src/git/diff.c:7781,1
    - Dst: remove_tempfile
      Src: /src/git/diff.c:7784,1
    - Dst: strbuf_detach
      Src: /src/git/diff.c:7786,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - r
    - pgm
    - spec
    - outsize
    argTypes:
    - struct repository*
    - char*
    - struct diff_filespec*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7787
      start: 7754
    functionDepth: 23
    functionLinenumber: 7754
    functionLinenumberEnd: 7787
    functionName: run_textconv
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - strbuf_release
    - strbuf_read
    - prepare_temp_file
    - finish_command
    - remove_tempfile
    - strbuf_detach
    - close
    - start_command
    linkageType: ''
    returnType: char
    signature: "char *run_textconv(struct repository *r,\n\t\t\t  const char *pgm,\n\t\t\t
      \ struct diff_filespec *spec,\n\t\t\t  size_t *outsize)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/diff.c:7797,1
    - Dst: diff_populate_filespec
      Src: /src/git/diff.c:7801,1
    - Dst: die
      Src: /src/git/diff.c:7802,1
    - Dst: BUG
      Src: /src/git/diff.c:7808,1
    - Dst: notes_cache_get
      Src: /src/git/diff.c:7811,1
    - Dst: run_textconv
      Src: /src/git/diff.c:7818,1
    - Dst: die
      Src: /src/git/diff.c:7820,1
    - Dst: notes_cache_put
      Src: /src/git/diff.c:7824,1
    - Dst: notes_cache_write
      Src: /src/git/diff.c:7832,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - r
    - driver
    - df
    - outbuf
    argTypes:
    - struct repository*
    - struct userdiff_driver*
    - struct diff_filespec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7836
      start: 7789
    functionDepth: 24
    functionLinenumber: 7789
    functionLinenumberEnd: 7836
    functionName: fill_textconv
    functionSourceFile: /src/git/diff.c
    functionUses: 6
    functionsReached:
    - DIFF_FILE_VALID
    - die
    - diff_populate_filespec
    - run_textconv
    - notes_cache_put
    - notes_cache_write
    - notes_cache_get
    - BUG
    linkageType: ''
    returnType: size_t
    signature: "size_t fill_textconv(struct repository *r,\n\t\t     struct userdiff_driver
      *driver,\n\t\t     struct diff_filespec *df,\n\t\t     char **outbuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_filespec
      Src: /src/git/diff.c:7849,1
    - Dst: fill_filespec
      Src: /src/git/diff.c:7850,1
    - Dst: get_textconv
      Src: /src/git/diff.c:7851,1
    - Dst: free_filespec
      Src: /src/git/diff.c:7853,1
    - Dst: fill_textconv
      Src: /src/git/diff.c:7857,1
    - Dst: free_filespec
      Src: /src/git/diff.c:7858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - r
    - path
    - mode
    - oid
    - oid_valid
    - buf
    - buf_size
    argTypes:
    - struct repository*
    - char*
    - unsigned
    - struct object_id*
    - int
    - char**
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7860
      start: 7838
    functionDepth: 25
    functionLinenumber: 7838
    functionLinenumberEnd: 7860
    functionName: textconv_object
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - fill_textconv
    - alloc_filespec
    - get_textconv
    - fill_filespec
    - free_filespec
    linkageType: ''
    returnType: int
    signature: "int textconv_object(struct repository *r,\n\t\t    const char *path,\n\t\t
      \   unsigned mode,\n\t\t    const struct object_id *oid,\n\t\t    int oid_valid,\n\t\t
      \   char **buf,\n\t\t    unsigned long *buf_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_pager_config
      Src: /src/git/diff.c:7874,1
    - Dst: setup_pager
      Src: /src/git/diff.c:7875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7876
      start: 7862
    functionDepth: 8
    functionLinenumber: 7862
    functionLinenumberEnd: 7876
    functionName: setup_diff_pager
    functionSourceFile: /src/git/diff.c
    functionUses: 0
    functionsReached:
    - setup_pager
    - check_pager_config
    linkageType: ''
    returnType: void
    signature: void setup_diff_pager(struct diff_options *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/symlinks.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct cache_def*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: cache_def_clear
    functionSourceFile: /src/git/symlinks.h
    functionUses: 1
    functionsReached:
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void cache_def_clear(struct cache_def *cache)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_delta_hdr_size
      Src: /src/git/patch-delta.c:30,1
    - Dst: get_delta_hdr_size
      Src: /src/git/patch-delta.c:35,1
    - Dst: xmallocz
      Src: /src/git/patch-delta.c:36,1
    - Dst: PARSE_CP_PARAM
      Src: /src/git/patch-delta.c:49,1
    - Dst: PARSE_CP_PARAM
      Src: /src/git/patch-delta.c:50,1
    - Dst: PARSE_CP_PARAM
      Src: /src/git/patch-delta.c:51,1
    - Dst: PARSE_CP_PARAM
      Src: /src/git/patch-delta.c:52,1
    - Dst: PARSE_CP_PARAM
      Src: /src/git/patch-delta.c:53,1
    - Dst: PARSE_CP_PARAM
      Src: /src/git/patch-delta.c:54,1
    - Dst: PARSE_CP_PARAM
      Src: /src/git/patch-delta.c:55,1
    - Dst: unsigned_add_overflows
      Src: /src/git/patch-delta.c:58,1
    - Dst: memcpy
      Src: /src/git/patch-delta.c:62,1
    - Dst: memcpy
      Src: /src/git/patch-delta.c:68,1
    - Dst: error
      Src: /src/git/patch-delta.c:78,1
    - Dst: error
      Src: /src/git/patch-delta.c:86,1
    - Dst: free
      Src: /src/git/patch-delta.c:88,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 5
    argNames:
    - src_buf
    - src_size
    - delta_buf
    - delta_size
    - dst_size
    argTypes:
    - void*
    - unsigned long
    - void*
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 94
    functionName: patch_delta
    functionSourceFile: /src/git/patch-delta.c
    functionUses: 1
    functionsReached:
    - error
    - get_delta_hdr_size
    - xmallocz
    - memcpy
    - unsigned_add_overflows
    - free
    - PARSE_CP_PARAM
    linkageType: ''
    returnType: void
    signature: "void *patch_delta(const void *src_buf, unsigned long src_size,\n\t\t
      \ const void *delta_buf, unsigned long delta_size,\n\t\t  unsigned long *dst_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - bit
    - ','
    - var
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: PARSE_CP_PARAM
    functionSourceFile: /src/git/patch-delta.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_CP_PARAM(bit, var, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blame_suspects_peek
      Src: /src/git/blame.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: get_blame_suspects
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_suspects_peek
    linkageType: ''
    returnType: struct blame_origin
    signature: struct blame_origin *get_blame_suspects(struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blame_suspects_at
      Src: /src/git/blame.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - commit
    - origin
    argTypes:
    - struct commit*
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: set_blame_suspects
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_suspects_at
    linkageType: ''
    returnType: void
    signature: void set_blame_suspects(struct commit *commit, struct blame_origin
      *origin)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:49,1
    - Dst: free
      Src: /src/git/blame.c:50,1
    - Dst: get_blame_suspects
      Src: /src/git/blame.c:52,1
    - Dst: set_blame_suspects
      Src: /src/git/blame.c:57,1
    - Dst: free
      Src: /src/git/blame.c:58,1
    - Dst: die
      Src: /src/git/blame.c:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 64
    functionName: blame_origin_decref
    functionSourceFile: /src/git/blame.c
    functionUses: 1
    functionsReached:
    - blame_origin_decref
    - die
    - free
    - set_blame_suspects
    - get_blame_suspects
    linkageType: ''
    returnType: void
    signature: void blame_origin_decref(struct blame_origin *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/blame.c:75,1
    - Dst: get_blame_suspects
      Src: /src/git/blame.c:78,1
    - Dst: set_blame_suspects
      Src: /src/git/blame.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - commit
    - path
    argTypes:
    - struct commit*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: make_origin
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - set_blame_suspects
    - get_blame_suspects
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: struct blame_origin
    signature: struct blame_origin *make_origin(struct commit *commit, const char
      *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_blame_suspects
      Src: /src/git/blame.c:91,1
    - Dst: strcmp
      Src: /src/git/blame.c:92,1
    - Dst: get_blame_suspects
      Src: /src/git/blame.c:96,1
    - Dst: set_blame_suspects
      Src: /src/git/blame.c:97,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:99,1
    - Dst: make_origin
      Src: /src/git/blame.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - commit
    - path
    argTypes:
    - struct commit*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: get_origin
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_incref
    - strcmp
    - set_blame_suspects
    - get_blame_suspects
    - make_origin
    linkageType: ''
    returnType: struct blame_origin
    signature: struct blame_origin *get_origin(struct commit *commit, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_tree_entry
      Src: /src/git/blame.c:118,1
    - Dst: odb_read_object_info
      Src: /src/git/blame.c:119,1
    - Dst: index_name_pos
      Src: /src/git/blame.c:123,1
    - Dst: strlen
      Src: /src/git/blame.c:123,1
    - Dst: strcmp
      Src: /src/git/blame.c:127,1
    - Dst: die
      Src: /src/git/blame.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - r
    - work_tree
    - path
    argTypes:
    - struct repository*
    - struct commit*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 107
    functionDepth: 12
    functionLinenumber: 107
    functionLinenumberEnd: 131
    functionName: verify_working_tree_path
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - get_tree_entry
    - die
    - odb_read_object_info
    - strlen
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void verify_working_tree_path(struct repository *r,\n\t\t\t\t     struct
      commit *work_tree, const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference
      Src: /src/git/blame.c:139,1
    - Dst: die
      Src: /src/git/blame.c:141,1
    - Dst: oid_to_hex
      Src: /src/git/blame.c:141,1
    - Dst: commit_list_insert
      Src: /src/git/blame.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 7
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: append_parent
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - oid_to_hex
    - die
    - commit_list_insert
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list **append_parent(struct repository *r,\n\t\t\t\t\t
      \ struct commit_list **tail,\n\t\t\t\t\t  const struct object_id *oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/blame.c:151,1
    - Dst: git_path_merge_head
      Src: /src/git/blame.c:151,1
    - Dst: die
      Src: /src/git/blame.c:155,1
    - Dst: git_path_merge_head
      Src: /src/git/blame.c:156,1
    - Dst: strbuf_getwholeline_fd
      Src: /src/git/blame.c:159,1
    - Dst: get_oid_hex
      Src: /src/git/blame.c:161,1
    - Dst: die
      Src: /src/git/blame.c:162,1
    - Dst: git_path_merge_head
      Src: /src/git/blame.c:163,1
    - Dst: append_parent
      Src: /src/git/blame.c:164,1
    - Dst: close
      Src: /src/git/blame.c:166,1
    - Dst: strbuf_release
      Src: /src/git/blame.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - r
    - tail
    argTypes:
    - struct repository*
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 145
    functionDepth: 8
    functionLinenumber: 145
    functionLinenumberEnd: 168
    functionName: append_merge_parents
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - open
    - get_oid_hex
    - append_parent
    - git_path_merge_head
    - close
    - strbuf_getwholeline_fd
    linkageType: ''
    returnType: void
    signature: "void append_merge_parents(struct repository *r,\n\t\t\t\t struct commit_list
      **tail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_detach
      Src: /src/git/blame.c:180,1
    - Dst: set_commit_buffer
      Src: /src/git/blame.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - c
    - sb
    argTypes:
    - struct repository*
    - struct commit*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: set_commit_buffer_from_strbuf
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - set_commit_buffer
    - strbuf_detach
    linkageType: ''
    returnType: void
    signature: "void set_commit_buffer_from_strbuf(struct repository *r,\n\t\t\t\t\t
      \ struct commit *c,\n\t\t\t\t\t  struct strbuf *sb)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/blame.c:205,1
    - Dst: time
      Src: /src/git/blame.c:206,1
    - Dst: alloc_commit_node
      Src: /src/git/blame.c:207,1
    - Dst: append_parent
      Src: /src/git/blame.c:212,1
    - Dst: append_merge_parents
      Src: /src/git/blame.c:213,1
    - Dst: verify_working_tree_path
      Src: /src/git/blame.c:214,1
    - Dst: make_origin
      Src: /src/git/blame.c:216,1
    - Dst: fmt_ident
      Src: /src/git/blame.c:219,1
    - Dst: fmt_ident
      Src: /src/git/blame.c:222,1
    - Dst: strbuf_addstr
      Src: /src/git/blame.c:224,1
    - Dst: strbuf_addf
      Src: /src/git/blame.c:226,1
    - Dst: oid_to_hex
      Src: /src/git/blame.c:227,1
    - Dst: strbuf_addf
      Src: /src/git/blame.c:228,1
    - Dst: strcmp
      Src: /src/git/blame.c:234,1
    - Dst: set_commit_buffer_from_strbuf
      Src: /src/git/blame.c:235,1
    - Dst: strcmp
      Src: /src/git/blame.c:237,1
    - Dst: stat
      Src: /src/git/blame.c:244,1
    - Dst: die_errno
      Src: /src/git/blame.c:245,1
    - Dst: lstat
      Src: /src/git/blame.c:249,1
    - Dst: die_errno
      Src: /src/git/blame.c:250,1
    - Dst: canon_mode
      Src: /src/git/blame.c:253,1
    - Dst: textconv_object
      Src: /src/git/blame.c:258,1
    - Dst: null_oid
      Src: /src/git/blame.c:258,1
    - Dst: strbuf_attach
      Src: /src/git/blame.c:259,1
    - Dst: strbuf_read_file
      Src: /src/git/blame.c:260,1
    - Dst: die_errno
      Src: /src/git/blame.c:261,1
    - Dst: strbuf_readlink
      Src: /src/git/blame.c:264,1
    - Dst: die_errno
      Src: /src/git/blame.c:265,1
    - Dst: die
      Src: /src/git/blame.c:268,1
    - Dst: strbuf_read
      Src: /src/git/blame.c:274,1
    - Dst: die_errno
      Src: /src/git/blame.c:275,1
    - Dst: convert_to_git
      Src: /src/git/blame.c:277,1
    - Dst: odb_pretend_object
      Src: /src/git/blame.c:280,1
    - Dst: discard_index
      Src: /src/git/blame.c:289,1
    - Dst: repo_read_index
      Src: /src/git/blame.c:290,1
    - Dst: strlen
      Src: /src/git/blame.c:292,1
    - Dst: index_name_pos
      Src: /src/git/blame.c:294,1
    - Dst: make_empty_cache_entry
      Src: /src/git/blame.c:301,1
    - Dst: oidcpy
      Src: /src/git/blame.c:302,1
    - Dst: memcpy
      Src: /src/git/blame.c:303,1
    - Dst: create_ce_flags
      Src: /src/git/blame.c:304,1
    - Dst: create_ce_mode
      Src: /src/git/blame.c:306,1
    - Dst: add_index_entry
      Src: /src/git/blame.c:307,1
    - Dst: cache_tree_invalidate_path
      Src: /src/git/blame.c:310,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 5
    argNames:
    - r
    - opt
    - path
    - contents_from
    - oid
    argTypes:
    - struct repository*
    - struct diff_options*
    - char*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 188
    functionDepth: 26
    functionLinenumber: 188
    functionLinenumberEnd: 313
    functionName: fake_working_tree_commit
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - fmt_ident
    - oidcpy
    - strbuf_attach
    - strbuf_addf
    - textconv_object
    - make_empty_cache_entry
    - strcmp
    - convert_to_git
    - verify_working_tree_path
    - append_merge_parents
    - discard_index
    - index_name_pos
    - die
    - repo_read_index
    - cache_tree_invalidate_path
    - set_commit_buffer_from_strbuf
    - memcpy
    - strbuf_addstr
    - create_ce_mode
    - create_ce_flags
    - oid_to_hex
    - odb_pretend_object
    - append_parent
    - stat
    - die_errno
    - strbuf_read_file
    - add_index_entry
    - lstat
    - alloc_commit_node
    - strbuf_read
    - strbuf_readlink
    - strlen
    - canon_mode
    - null_oid
    - make_origin
    - time
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *fake_working_tree_commit(struct repository *r,\n\t\t\t\t\t
      \      struct diff_options *opt,\n\t\t\t\t\t       const char *path,\n\t\t\t\t\t
      \      const char *contents_from,\n\t\t\t\t\t       struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdi_diff
      Src: /src/git/blame.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - file_a
    - file_b
    - hunk_func
    - cb_data
    - xdl_opts
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - xdl_emit_hunk_consume_func_t
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 328
    functionName: diff_hunks
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - xdi_diff
    linkageType: ''
    returnType: int
    signature: "int diff_hunks(mmfile_t *file_a, mmfile_t *file_b,\n\t\t      xdl_emit_hunk_consume_func_t
      hunk_func, void *cb_data, int xdl_opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/blame.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: get_next_line
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: char
    signature: char *get_next_line(const char *start, const char *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_next_line
      Src: /src/git/blame.c:345,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/blame.c:348,1
    - Dst: get_next_line
      Src: /src/git/blame.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - line_starts
    - buf
    - len
    argTypes:
    - int**
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 357
    functionName: find_line_starts
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - get_next_line
    linkageType: ''
    returnType: int
    signature: "int find_line_starts(int **line_starts, const char *buf,\n\t\t\t    unsigned
      long len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/blame.c:416,1
    - Dst: hashmap_init
      Src: /src/git/blame.c:420,1
    - Dst: isspace
      Src: /src/git/blame.c:428,1
    - Dst: tolower
      Src: /src/git/blame.c:431,1
    - Dst: hashmap_entry_init
      Src: /src/git/blame.c:436,1
    - Dst: hashmap_get_entry
      Src: /src/git/blame.c:438,1
    - Dst: hashmap_add
      Src: /src/git/blame.c:444,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - result
    - line_begin
    - line_end
    argTypes:
    - struct fingerprint*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 409
    functionDepth: 7
    functionLinenumber: 409
    functionLinenumberEnd: 448
    functionName: get_fingerprint
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - isspace
    - hashmap_add
    - hashmap_init
    - hashmap_entry_init
    - hashmap_get_entry
    - xcalloc
    - tolower
    linkageType: ''
    returnType: void
    signature: "void get_fingerprint(struct fingerprint *result,\n\t\t\t    const
      char *line_begin,\n\t\t\t    const char *line_end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_clear
      Src: /src/git/blame.c:452,1
    - Dst: free
      Src: /src/git/blame.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct fingerprint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: free_fingerprint
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - hashmap_clear
    - free
    linkageType: ''
    returnType: void
    signature: void free_fingerprint(struct fingerprint *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/blame.c:469,1
    - Dst: hashmap_get_entry
      Src: /src/git/blame.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct fingerprint*
    - struct fingerprint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 478
    functionName: fingerprint_similarity
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - hashmap_get_entry
    - hashmap_for_each_entry
    linkageType: ''
    returnType: int
    signature: int fingerprint_similarity(struct fingerprint *a, struct fingerprint
      *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_iter_init
      Src: /src/git/blame.c:488,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/blame.c:490,1
    - Dst: hashmap_get_entry
      Src: /src/git/blame.c:492,1
    - Dst: hashmap_remove
      Src: /src/git/blame.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct fingerprint*
    - struct fingerprint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 500
    functionName: fingerprint_subtract
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - hashmap_get_entry
    - hashmap_iter_init
    - hashmap_remove
    - hashmap_for_each_entry
    linkageType: ''
    returnType: void
    signature: void fingerprint_subtract(struct fingerprint *a, struct fingerprint
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_fingerprint
      Src: /src/git/blame.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - fingerprints
    - content
    - line_starts
    - first_line
    - line_count
    argTypes:
    - struct fingerprint*
    - char*
    - int*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 506
    functionDepth: 8
    functionLinenumber: 506
    functionLinenumberEnd: 519
    functionName: get_line_fingerprints
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - get_fingerprint
    linkageType: ''
    returnType: void
    signature: "void get_line_fingerprints(struct fingerprint *fingerprints,\n\t\t\t\t
      \ const char *content, const int *line_starts,\n\t\t\t\t  long first_line, long
      line_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_fingerprint
      Src: /src/git/blame.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - fingerprints
    - nr_fingerprints
    argTypes:
    - struct fingerprint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 528
    functionName: free_line_fingerprints
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - free_fingerprint
    linkageType: ''
    returnType: void
    signature: "void free_line_fingerprints(struct fingerprint *fingerprints,\n\t\t\t\t
      \  int nr_fingerprints)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - line_number
    - mapping
    argTypes:
    - int
    - struct line_number_mapping*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 559
    functionName: map_line_number
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int map_line_number(int line_number,\n\tconst struct line_number_mapping
      *mapping)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/blame.c:602,1
    - Dst: abs
      Src: /src/git/blame.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - similarities
    - line_a
    - local_line_b
    - closest_line_a
    - max_search_distance_a
    argTypes:
    - int*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: "(abs(line_a - closest_line_a) <=\n\t       max_search_distance_a)"
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/git/blame.c
    constantsTouched: []
    func_position:
      end: 607
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 607
    functionName: get_similarity
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - assert
    - abs
    linkageType: ''
    returnType: int
    signature: "int *get_similarity(int *similarities,\n\t\t\t   int line_a, int local_line_b,\n\t\t\t
      \  int closest_line_a, int max_search_distance_a)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: map_line_number
      Src: /src/git/blame.c:659,1
    - Dst: get_similarity
      Src: /src/git/blame.c:671,1
    - Dst: assert
      Src: /src/git/blame.c:679,1
    - Dst: abs
      Src: /src/git/blame.c:679,1
    - Dst: fingerprint_similarity
      Src: /src/git/blame.c:684,1
    - Dst: abs
      Src: /src/git/blame.c:687,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 12
    argNames:
    - start_a
    - length_a
    - start_b
    - local_line_b
    - fingerprints_a
    - fingerprints_b
    - similarities
    - certainties
    - second_best_result
    - result
    - max_search_distance_a
    - map_line_number_in_b_to_a
    argTypes:
    - int
    - int
    - int
    - int
    - struct fingerprint*
    - struct fingerprint*
    - int*
    - int*
    - int*
    - int*
    - int
    - struct line_number_mapping*
    assertStmts:
    - condition: (abs(i - closest_local_line_a) < 1000)
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/git/blame.c
    constantsTouched: []
    func_position:
      end: 731
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 731
    functionName: find_best_line_matches
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - assert
    - get_similarity
    - fingerprint_similarity
    - map_line_number
    - abs
    linkageType: ''
    returnType: void
    signature: "void find_best_line_matches(\n\tint start_a,\n\tint length_a,\n\tint
      start_b,\n\tint local_line_b,\n\tstruct fingerprint *fingerprints_a,\n\tstruct
      fingerprint *fingerprints_b,\n\tint *similarities,\n\tint *certainties,\n\tint
      *second_best_result,\n\tint *result,\n\tconst int max_search_distance_a,\n\tconst
      struct line_number_mapping *map_line_number_in_b_to_a)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find_best_line_matches
      Src: /src/git/blame.c:786,1
    - Dst: fingerprint_subtract
      Src: /src/git/blame.c:816,1
    - Dst: map_line_number
      Src: /src/git/blame.c:833,1
    - Dst: abs
      Src: /src/git/blame.c:839,1
    - Dst: get_similarity
      Src: /src/git/blame.c:844,1
    - Dst: fuzzy_find_matching_lines_recurse
      Src: /src/git/blame.c:881,1
    - Dst: fuzzy_find_matching_lines_recurse
      Src: /src/git/blame.c:901,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 13
    argNames:
    - start_a
    - start_b
    - length_a
    - length_b
    - fingerprints_a
    - fingerprints_b
    - similarities
    - certainties
    - second_best_result
    - result
    - max_search_distance_a
    - max_search_distance_b
    - map_line_number_in_b_to_a
    argTypes:
    - int
    - int
    - int
    - int
    - struct fingerprint*
    - struct fingerprint*
    - int*
    - int*
    - int*
    - int*
    - int
    - int
    - struct line_number_mapping*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 765
    functionDepth: 5
    functionLinenumber: 765
    functionLinenumberEnd: 914
    functionName: fuzzy_find_matching_lines_recurse
    functionSourceFile: /src/git/blame.c
    functionUses: 1
    functionsReached:
    - get_similarity
    - fingerprint_subtract
    - fuzzy_find_matching_lines_recurse
    - find_best_line_matches
    - map_line_number
    - abs
    linkageType: ''
    returnType: void
    signature: "void fuzzy_find_matching_lines_recurse(\n\tint start_a, int start_b,\n\tint
      length_a, int length_b,\n\tstruct fingerprint *fingerprints_a,\n\tstruct fingerprint
      *fingerprints_b,\n\tint *similarities,\n\tint *certainties,\n\tint *second_best_result,\n\tint
      *result,\n\tint max_search_distance_a,\n\tint max_search_distance_b,\n\tconst
      struct line_number_mapping *map_line_number_in_b_to_a)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/blame.c:968,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/blame.c:969,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/blame.c:970,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/blame.c:974,1
    - Dst: fuzzy_find_matching_lines_recurse
      Src: /src/git/blame.c:985,1
    - Dst: free
      Src: /src/git/blame.c:997,1
    - Dst: free
      Src: /src/git/blame.c:998,1
    - Dst: free
      Src: /src/git/blame.c:999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 6
    argNames:
    - parent
    - target
    - tlno
    - parent_slno
    - same
    - parent_len
    argTypes:
    - struct blame_origin*
    - struct blame_origin*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 925
    functionDepth: 6
    functionLinenumber: 925
    functionLinenumberEnd: 1002
    functionName: fuzzy_find_matching_lines
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - free
    - fuzzy_find_matching_lines_recurse
    - CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int *fuzzy_find_matching_lines(struct blame_origin *parent,\n\t\t\t\t
      \     struct blame_origin *target,\n\t\t\t\t      int tlno, int parent_slno,
      int same,\n\t\t\t\t      int parent_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_line_starts
      Src: /src/git/blame.c:1010,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/blame.c:1012,1
    - Dst: get_line_fingerprints
      Src: /src/git/blame.c:1013,1
    - Dst: free
      Src: /src/git/blame.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1004
    functionDepth: 9
    functionLinenumber: 1004
    functionLinenumberEnd: 1016
    functionName: fill_origin_fingerprints
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - free
    - find_line_starts
    - get_line_fingerprints
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void fill_origin_fingerprints(struct blame_origin *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_line_fingerprints
      Src: /src/git/blame.c:1021,1
    - Dst: FREE_AND_NULL
      Src: /src/git/blame.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1018
    functionDepth: 3
    functionLinenumber: 1018
    functionLinenumberEnd: 1025
    functionName: drop_origin_fingerprints
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - free_line_fingerprints
    linkageType: ''
    returnType: void
    signature: void drop_origin_fingerprints(struct blame_origin *o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: textconv_object
      Src: /src/git/blame.c:1041,1
    - Dst: odb_read_object
      Src: /src/git/blame.c:1045,1
    - Dst: die
      Src: /src/git/blame.c:1051,1
    - Dst: oid_to_hex
      Src: /src/git/blame.c:1052,1
    - Dst: fill_origin_fingerprints
      Src: /src/git/blame.c:1059,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - opt
    - o
    - file
    - num_read_blob
    - fill_fingerprints
    argTypes:
    - struct diff_options*
    - struct blame_origin*
    - mmfile_t*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1031
    functionDepth: 26
    functionLinenumber: 1031
    functionLinenumberEnd: 1060
    functionName: fill_origin_blob
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - fill_origin_fingerprints
    - textconv_object
    - odb_read_object
    linkageType: ''
    returnType: void
    signature: "void fill_origin_blob(struct diff_options *opt,\n\t\t\t     struct
      blame_origin *o, mmfile_t *file,\n\t\t\t     int *num_read_blob, int fill_fingerprints)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/blame.c:1064,1
    - Dst: drop_origin_fingerprints
      Src: /src/git/blame.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1062
    functionDepth: 4
    functionLinenumber: 1062
    functionLinenumberEnd: 1066
    functionName: drop_origin_blob
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - drop_origin_fingerprints
    linkageType: ''
    returnType: void
    signature: void drop_origin_blob(struct blame_origin *o)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - list1
    - list2
    argTypes:
    - struct blame_entry*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1114
    functionName: blame_merge
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct blame_entry
    signature: "struct blame_entry *blame_merge(struct blame_entry *list1,\n\t\t\t\t
      \      struct blame_entry *list2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - struct blame_entry*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1127
    functionName: compare_blame_final
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int compare_blame_final(const struct blame_entry *e1,\n\t\t\t       const
      struct blame_entry *e2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - struct blame_entry*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1144
    functionName: compare_blame_suspect
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int compare_blame_suspect(const struct blame_entry *s1,\n\t\t\t\t
      const struct blame_entry *s2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sort_blame_entries
      Src: /src/git/blame.c:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct blame_scoreboard*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1149
    functionName: blame_sort_final
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - sort_blame_entries
    linkageType: ''
    returnType: void
    signature: void blame_sort_final(struct blame_scoreboard *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare_commits_by_commit_date
      Src: /src/git/blame.c:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1156
    functionName: compare_commits_by_reverse_commit_date
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - compare_commits_by_commit_date
    linkageType: ''
    returnType: int
    signature: "int compare_commits_by_reverse_commit_date(const void *a,\n\t\t\t\t\t\t
      \ const void *b,\n\t\t\t\t\t\t  void *c)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/blame.c:1170,1
    - Dst: oid_to_hex
      Src: /src/git/blame.c:1172,1
    - Dst: struct blame_scoreboard*::on_sanity_fail
      Src: /src/git/blame.c:1178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct blame_scoreboard*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1162
    functionDepth: 3
    functionLinenumber: 1162
    functionLinenumberEnd: 1179
    functionName: sanity_check_refcnt
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fprintf
    - struct blame_scoreboard*::on_sanity_fail
    linkageType: ''
    returnType: void
    signature: void sanity_check_refcnt(struct blame_scoreboard *sb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:1198,1
    - Dst: free
      Src: /src/git/blame.c:1199,1
    - Dst: sanity_check_refcnt
      Src: /src/git/blame.c:1206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct blame_scoreboard*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1186
    functionDepth: 4
    functionLinenumber: 1186
    functionLinenumberEnd: 1207
    functionName: blame_coalesce
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - sanity_check_refcnt
    - blame_origin_decref
    - free
    linkageType: ''
    returnType: void
    signature: void blame_coalesce(struct blame_scoreboard *sb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blame_merge
      Src: /src/git/blame.c:1219,1
    - Dst: get_blame_suspects
      Src: /src/git/blame.c:1222,1
    - Dst: prio_queue_put
      Src: /src/git/blame.c:1229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - sb
    - porigin
    - sorted
    argTypes:
    - struct blame_scoreboard*
    - struct blame_origin*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1215
    functionDepth: 3
    functionLinenumber: 1215
    functionLinenumberEnd: 1231
    functionName: queue_blames
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_merge
    - get_blame_suspects
    - prio_queue_put
    linkageType: ''
    returnType: void
    signature: "void queue_blames(struct blame_scoreboard *sb, struct blame_origin
      *porigin,\n\t\t\t struct blame_entry *sorted)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/blame.c:1245,1
    - Dst: get_tree_entry
      Src: /src/git/blame.c:1247,1
    - Dst: odb_read_object_info
      Src: /src/git/blame.c:1249,1
    - Dst: oidclr
      Src: /src/git/blame.c:1253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - r
    - origin
    argTypes:
    - struct repository*
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1242
    functionDepth: 12
    functionLinenumber: 1242
    functionLinenumberEnd: 1256
    functionName: fill_blob_sha1_and_mode
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    - oidclr
    - get_tree_entry
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: "int fill_blob_sha1_and_mode(struct repository *r,\n\t\t\t\t   struct
      blame_origin *origin)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_generation
      Src: /src/git/blame.c:1282,1
    - Dst: get_bloom_filter
      Src: /src/git/blame.c:1285,1
    - Dst: bloom_filter_contains
      Src: /src/git/blame.c:1292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - r
    - origin
    - bd
    argTypes:
    - struct repository*
    - struct blame_origin*
    - struct blame_bloom_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1272
    functionDepth: 2
    functionLinenumber: 1272
    functionLinenumberEnd: 1300
    functionName: maybe_changed_path
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - get_bloom_filter
    - bloom_filter_contains
    - commit_graph_generation
    linkageType: ''
    returnType: int
    signature: "int maybe_changed_path(struct repository *r,\n\t\t\t      struct blame_origin
      *origin,\n\t\t\t      struct blame_bloom_data *bd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC_ARRAY
      Src: /src/git/blame.c:1310,1
    - Dst: xmalloc
      Src: /src/git/blame.c:1313,1
    - Dst: bloom_key_fill
      Src: /src/git/blame.c:1314,1
    - Dst: strlen
      Src: /src/git/blame.c:1314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bd
    - path
    argTypes:
    - struct blame_bloom_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1302
    functionDepth: 2
    functionLinenumber: 1302
    functionLinenumberEnd: 1316
    functionName: add_bloom_key
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - REALLOC_ARRAY
    - strlen
    - bloom_key_fill
    linkageType: ''
    returnType: void
    signature: "void add_bloom_key(struct blame_bloom_data *bd,\n\t\t\t  const char
      *path)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_blame_suspects
      Src: /src/git/blame.c:1332,1
    - Dst: strcmp
      Src: /src/git/blame.c:1333,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:1338,1
    - Dst: repo_diff_setup
      Src: /src/git/blame.c:1345,1
    - Dst: parse_pathspec
      Src: /src/git/blame.c:1352,1
    - Dst: diff_setup_done
      Src: /src/git/blame.c:1355,1
    - Dst: is_null_oid
      Src: /src/git/blame.c:1357,1
    - Dst: do_diff_cache
      Src: /src/git/blame.c:1358,1
    - Dst: get_commit_tree_oid
      Src: /src/git/blame.c:1358,1
    - Dst: oideq
      Src: /src/git/blame.c:1362,1
    - Dst: maybe_changed_path
      Src: /src/git/blame.c:1364,1
    - Dst: diff_tree_oid
      Src: /src/git/blame.c:1367,1
    - Dst: get_commit_tree_oid
      Src: /src/git/blame.c:1367,1
    - Dst: get_commit_tree_oid
      Src: /src/git/blame.c:1368,1
    - Dst: diffcore_std
      Src: /src/git/blame.c:1371,1
    - Dst: get_origin
      Src: /src/git/blame.c:1375,1
    - Dst: oidcpy
      Src: /src/git/blame.c:1376,1
    - Dst: strcmp
      Src: /src/git/blame.c:1391,1
    - Dst: die
      Src: /src/git/blame.c:1395,1
    - Dst: die
      Src: /src/git/blame.c:1398,1
    - Dst: get_origin
      Src: /src/git/blame.c:1401,1
    - Dst: oidcpy
      Src: /src/git/blame.c:1402,1
    - Dst: diff_flush
      Src: /src/git/blame.c:1411,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 4
    argNames:
    - r
    - parent
    - origin
    - bd
    argTypes:
    - struct repository*
    - struct commit*
    - struct blame_origin*
    - struct blame_bloom_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1322
    functionDepth: 26
    functionLinenumber: 1322
    functionLinenumberEnd: 1413
    functionName: find_origin
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_incref
    - die
    - oidcpy
    - diff_tree_oid
    - maybe_changed_path
    - is_null_oid
    - diff_flush
    - get_commit_tree_oid
    - get_origin
    - diffcore_std
    - diff_setup_done
    - strcmp
    - repo_diff_setup
    - do_diff_cache
    - parse_pathspec
    - get_blame_suspects
    - oideq
    linkageType: ''
    returnType: struct blame_origin
    signature: "struct blame_origin *find_origin(struct repository *r,\n\t\t\t\t\tstruct
      commit *parent,\n\t\t\t\t\tstruct blame_origin *origin,\n\t\t\t\t\tstruct blame_bloom_data
      *bd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_diff_setup
      Src: /src/git/blame.c:1428,1
    - Dst: diff_setup_done
      Src: /src/git/blame.c:1433,1
    - Dst: is_null_oid
      Src: /src/git/blame.c:1435,1
    - Dst: do_diff_cache
      Src: /src/git/blame.c:1436,1
    - Dst: get_commit_tree_oid
      Src: /src/git/blame.c:1436,1
    - Dst: diff_tree_oid
      Src: /src/git/blame.c:1438,1
    - Dst: get_commit_tree_oid
      Src: /src/git/blame.c:1438,1
    - Dst: get_commit_tree_oid
      Src: /src/git/blame.c:1439,1
    - Dst: diffcore_std
      Src: /src/git/blame.c:1441,1
    - Dst: strcmp
      Src: /src/git/blame.c:1446,1
    - Dst: add_bloom_key
      Src: /src/git/blame.c:1447,1
    - Dst: get_origin
      Src: /src/git/blame.c:1448,1
    - Dst: oidcpy
      Src: /src/git/blame.c:1449,1
    - Dst: diff_flush
      Src: /src/git/blame.c:1454,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - r
    - parent
    - origin
    - bd
    argTypes:
    - struct repository*
    - struct commit*
    - struct blame_origin*
    - struct blame_bloom_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1419
    functionDepth: 26
    functionLinenumber: 1419
    functionLinenumberEnd: 1456
    functionName: find_rename
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - diff_tree_oid
    - is_null_oid
    - diff_flush
    - get_commit_tree_oid
    - get_origin
    - diffcore_std
    - diff_setup_done
    - strcmp
    - repo_diff_setup
    - do_diff_cache
    - add_bloom_key
    linkageType: ''
    returnType: struct blame_origin
    signature: "struct blame_origin *find_rename(struct repository *r,\n\t\t\t\t\tstruct
      commit *parent,\n\t\t\t\t\tstruct blame_origin *origin,\n\t\t\t\t\tstruct blame_bloom_data
      *bd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/blame.c:1464,1
    - Dst: memcpy
      Src: /src/git/blame.c:1465,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:1466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - queue
    - src
    argTypes:
    - struct blame_entry***
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1471
    functionName: add_blame_entry
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - blame_origin_incref
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void add_blame_entry(struct blame_entry ***queue,\n\t\t\t    const
      struct blame_entry *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:1481,1
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:1482,1
    - Dst: memcpy
      Src: /src/git/blame.c:1483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - queue
    - dst
    - src
    argTypes:
    - struct blame_entry***
    - struct blame_entry*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1487
    functionName: dup_entry
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_decref
    - blame_origin_incref
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void dup_entry(struct blame_entry ***queue,\n\t\t      struct blame_entry
      *dst, struct blame_entry *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sb
    - lno
    argTypes:
    - struct blame_scoreboard*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1492
    functionName: blame_nth_line
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *blame_nth_line(struct blame_scoreboard *sb, long lno)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/blame.c:1515,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:1524,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:1538,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:1554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 6
    argNames:
    - split
    - e
    - tlno
    - plno
    - same
    - parent
    argTypes:
    - struct blame_entry*
    - struct blame_entry*
    - int
    - int
    - int
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1555
    functionName: split_overlap
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - memset
    - blame_origin_incref
    linkageType: ''
    returnType: void
    signature: "void split_overlap(struct blame_entry *split,\n\t\t\t  struct blame_entry
      *e,\n\t\t\t  int tlno, int plno, int same,\n\t\t\t  struct blame_origin *parent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dup_entry
      Src: /src/git/blame.c:1569,1
    - Dst: add_blame_entry
      Src: /src/git/blame.c:1572,1
    - Dst: add_blame_entry
      Src: /src/git/blame.c:1575,1
    - Dst: dup_entry
      Src: /src/git/blame.c:1582,1
    - Dst: dup_entry
      Src: /src/git/blame.c:1585,1
    - Dst: add_blame_entry
      Src: /src/git/blame.c:1586,1
    - Dst: dup_entry
      Src: /src/git/blame.c:1590,1
    - Dst: add_blame_entry
      Src: /src/git/blame.c:1591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - blamed
    - unblamed
    - split
    - e
    argTypes:
    - struct blame_entry***
    - struct blame_entry***
    - struct blame_entry*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1562
    functionDepth: 3
    functionLinenumber: 1562
    functionLinenumberEnd: 1593
    functionName: split_blame
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - add_blame_entry
    - dup_entry
    linkageType: ''
    returnType: void
    signature: "void split_blame(struct blame_entry ***blamed,\n\t\t\tstruct blame_entry
      ***unblamed,\n\t\t\tstruct blame_entry *split,\n\t\t\tstruct blame_entry *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:1604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - split
    argTypes:
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1599
    functionDepth: 2
    functionLinenumber: 1599
    functionLinenumberEnd: 1605
    functionName: decref_split
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_decref
    linkageType: ''
    returnType: void
    signature: void decref_split(struct blame_entry *split)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - head
    - tail
    argTypes:
    - struct blame_entry*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1627
    functionName: reverse_blame
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct blame_entry
    signature: "struct blame_entry *reverse_blame(struct blame_entry *head,\n\t\t\t\t\t
      struct blame_entry *tail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/blame.c:1639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - e
    - len
    - new_suspect
    argTypes:
    - struct blame_entry*
    - int
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1636
    functionDepth: 7
    functionLinenumber: 1636
    functionLinenumberEnd: 1650
    functionName: split_blame_at
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct blame_entry
    signature: "struct blame_entry *split_blame_at(struct blame_entry *e, int len,\n\t\t\t\t\t
      \ struct blame_origin *new_suspect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - struct blame_line_tracker*
    - struct blame_line_tracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1662
    functionName: are_lines_adjacent
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int are_lines_adjacent(struct blame_line_tracker *first,\n\t\t\t      struct
      blame_line_tracker *second)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fingerprint_similarity
      Src: /src/git/blame.c:1674,1
    - Dst: abs
      Src: /src/git/blame.c:1679,1
    - Dst: abs
      Src: /src/git/blame.c:1679,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 5
    argNames:
    - p_fps
    - t_fps
    - t_idx
    - from
    - nr_lines
    argTypes:
    - struct fingerprint*
    - struct fingerprint*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1664
    functionDepth: 2
    functionLinenumber: 1664
    functionLinenumberEnd: 1685
    functionName: scan_parent_range
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - fingerprint_similarity
    - abs
    linkageType: ''
    returnType: int
    signature: "int scan_parent_range(struct fingerprint *p_fps,\n\t\t\t     struct
      fingerprint *t_fps, int t_idx,\n\t\t\t     int from, int nr_lines)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fuzzy_find_matching_lines
      Src: /src/git/blame.c:1702,1
    - Dst: scan_parent_range
      Src: /src/git/blame.c:1710,1
    - Dst: free
      Src: /src/git/blame.c:1723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 7
    argNames:
    - parent
    - target
    - tlno
    - offset
    - same
    - parent_len
    - line_blames
    argTypes:
    - struct blame_origin*
    - struct blame_origin*
    - int
    - int
    - int
    - int
    - struct blame_line_tracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1693
    functionDepth: 7
    functionLinenumber: 1693
    functionLinenumberEnd: 1724
    functionName: guess_line_blames
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - fuzzy_find_matching_lines
    - scan_parent_range
    - free
    linkageType: ''
    returnType: void
    signature: "void guess_line_blames(struct blame_origin *parent,\n\t\t\t      struct
      blame_origin *target,\n\t\t\t      int tlno, int offset, int same, int parent_len,\n\t\t\t
      \     struct blame_line_tracker *line_blames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: are_lines_adjacent
      Src: /src/git/blame.c:1759,1
    - Dst: split_blame_at
      Src: /src/git/blame.c:1764,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:1765,1
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:1769,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:1770,1
    - Dst: assert
      Src: /src/git/blame.c:1780,1
    - Dst: assert
      Src: /src/git/blame.c:1784,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - e
    - parent
    - diffp
    - ignoredp
    - line_blames
    argTypes:
    - struct blame_entry*
    - struct blame_origin*
    - struct blame_entry**
    - struct blame_entry**
    - struct blame_line_tracker*
    assertStmts:
    - condition: (e->num_lines == entry_len)
      pos:
        line_end: 1779
        line_start: 1779
        source_file: /src/git/blame.c
    - condition: (!e)
      pos:
        line_end: 1783
        line_start: 1783
        source_file: /src/git/blame.c
    constantsTouched: []
    func_position:
      end: 1785
      start: 1736
    functionDepth: 8
    functionLinenumber: 1736
    functionLinenumberEnd: 1785
    functionName: ignore_blame_entry
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_decref
    - blame_origin_incref
    - assert
    - are_lines_adjacent
    - split_blame_at
    linkageType: ''
    returnType: void
    signature: "void ignore_blame_entry(struct blame_entry *e,\n\t\t\t       struct
      blame_origin *parent,\n\t\t\t       struct blame_entry **diffp,\n\t\t\t       struct
      blame_entry **ignoredp,\n\t\t\t       struct blame_line_tracker *line_blames)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: split_blame_at
      Src: /src/git/blame.c:1822,1
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:1827,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:1830,1
    - Dst: reverse_blame
      Src: /src/git/blame.c:1843,1
    - Dst: reverse_blame
      Src: /src/git/blame.c:1850,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/blame.c:1860,1
    - Dst: guess_line_blames
      Src: /src/git/blame.c:1861,1
    - Dst: split_blame_at
      Src: /src/git/blame.c:1878,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:1879,1
    - Dst: ignore_blame_entry
      Src: /src/git/blame.c:1885,1
    - Dst: free
      Src: /src/git/blame.c:1893,1
    - Dst: reverse_blame
      Src: /src/git/blame.c:1904,1
    - Dst: reverse_blame
      Src: /src/git/blame.c:1907,1
    - Dst: reverse_blame
      Src: /src/git/blame.c:1907,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 9
    argNames:
    - dstq
    - srcq
    - tlno
    - offset
    - same
    - parent_len
    - parent
    - target
    - ignore_diffs
    argTypes:
    - struct blame_entry***
    - struct blame_entry***
    - int
    - int
    - int
    - int
    - struct blame_origin*
    - struct blame_origin*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1802
    functionDepth: 9
    functionLinenumber: 1802
    functionLinenumberEnd: 1911
    functionName: blame_chunk
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_decref
    - blame_origin_incref
    - guess_line_blames
    - reverse_blame
    - CALLOC_ARRAY
    - free
    - ignore_blame_entry
    - split_blame_at
    linkageType: ''
    returnType: void
    signature: "void blame_chunk(struct blame_entry ***dstq, struct blame_entry ***srcq,\n\t\t\tint
      tlno, int offset, int same, int parent_len,\n\t\t\tstruct blame_origin *parent,\n\t\t\tstruct
      blame_origin *target, int ignore_diffs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/blame.c:1928,1
    - Dst: blame_chunk
      Src: /src/git/blame.c:1929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - start_a
    - count_a
    - start_b
    - count_b
    - data
    argTypes:
    - long
    - long
    - long
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1923
    functionDepth: 10
    functionLinenumber: 1923
    functionLinenumberEnd: 1934
    functionName: blame_chunk_cb
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_chunk
    - die
    linkageType: ''
    returnType: int
    signature: "int blame_chunk_cb(long start_a, long count_a,\n\t\t\t  long start_b,
      long count_b, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fill_origin_blob
      Src: /src/git/blame.c:1958,1
    - Dst: fill_origin_blob
      Src: /src/git/blame.c:1960,1
    - Dst: diff_hunks
      Src: /src/git/blame.c:1964,1
    - Dst: die
      Src: /src/git/blame.c:1965,1
    - Dst: oid_to_hex
      Src: /src/git/blame.c:1966,1
    - Dst: oid_to_hex
      Src: /src/git/blame.c:1967,1
    - Dst: blame_chunk
      Src: /src/git/blame.c:1969,1
    - Dst: sort_blame_entries
      Src: /src/git/blame.c:1973,1
    - Dst: queue_blames
      Src: /src/git/blame.c:1974,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - sb
    - target
    - parent
    - ignore_diffs
    argTypes:
    - struct blame_scoreboard*
    - struct blame_origin*
    - struct blame_origin*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1941
    functionDepth: 27
    functionLinenumber: 1941
    functionLinenumberEnd: 1977
    functionName: pass_blame_to_parent
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - diff_hunks
    - oid_to_hex
    - die
    - blame_chunk
    - sort_blame_entries
    - fill_origin_blob
    - queue_blames
    linkageType: ''
    returnType: void
    signature: "void pass_blame_to_parent(struct blame_scoreboard *sb,\n\t\t\t\t struct
      blame_origin *target,\n\t\t\t\t struct blame_origin *parent, int ignore_diffs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blame_nth_line
      Src: /src/git/blame.c:1997,1
    - Dst: blame_nth_line
      Src: /src/git/blame.c:1998,1
    - Dst: isalnum
      Src: /src/git/blame.c:2001,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - sb
    - e
    argTypes:
    - struct blame_scoreboard*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1988
    functionDepth: 1
    functionLinenumber: 1988
    functionLinenumberEnd: 2007
    functionName: blame_entry_score
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - isalnum
    - blame_nth_line
    linkageType: ''
    returnType: unsigned
    signature: unsigned blame_entry_score(struct blame_scoreboard *sb, struct blame_entry
      *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blame_entry_score
      Src: /src/git/blame.c:2024,1
    - Dst: blame_entry_score
      Src: /src/git/blame.c:2025,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:2030,1
    - Dst: decref_split
      Src: /src/git/blame.c:2031,1
    - Dst: memcpy
      Src: /src/git/blame.c:2032,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - sb
    - best_so_far
    - potential
    argTypes:
    - struct blame_scoreboard*
    - struct blame_entry*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2015
    functionDepth: 3
    functionLinenumber: 2015
    functionLinenumberEnd: 2033
    functionName: copy_split_if_better
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_entry_score
    - decref_split
    - memcpy
    - blame_origin_incref
    linkageType: ''
    returnType: void
    signature: "void copy_split_if_better(struct blame_scoreboard *sb,\n\t\t\t\t struct
      blame_entry *best_so_far,\n\t\t\t\t struct blame_entry *potential)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: split_overlap
      Src: /src/git/blame.c:2062,1
    - Dst: copy_split_if_better
      Src: /src/git/blame.c:2063,1
    - Dst: decref_split
      Src: /src/git/blame.c:2064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - sb
    - ent
    - tlno
    - plno
    - same
    - parent
    - split
    argTypes:
    - struct blame_scoreboard*
    - struct blame_entry*
    - int
    - int
    - int
    - struct blame_origin*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2050
    functionDepth: 4
    functionLinenumber: 2050
    functionLinenumberEnd: 2066
    functionName: handle_split
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - copy_split_if_better
    - split_overlap
    - decref_split
    linkageType: ''
    returnType: void
    signature: "void handle_split(struct blame_scoreboard *sb,\n\t\t\t struct blame_entry
      *ent,\n\t\t\t int tlno, int plno, int same,\n\t\t\t struct blame_origin *parent,\n\t\t\t
      struct blame_entry *split)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_split
      Src: /src/git/blame.c:2081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - start_a
    - count_a
    - start_b
    - count_b
    - data
    argTypes:
    - long
    - long
    - long
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2077
    functionDepth: 5
    functionLinenumber: 2077
    functionLinenumberEnd: 2086
    functionName: handle_split_cb
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - handle_split
    linkageType: ''
    returnType: int
    signature: "int handle_split_cb(long start_a, long count_a,\n\t\t\t   long start_b,
      long count_b, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/blame.c:2103,1
    - Dst: blame_nth_line
      Src: /src/git/blame.c:2108,1
    - Dst: blame_nth_line
      Src: /src/git/blame.c:2110,1
    - Dst: memset
      Src: /src/git/blame.c:2116,1
    - Dst: diff_hunks
      Src: /src/git/blame.c:2117,1
    - Dst: die
      Src: /src/git/blame.c:2118,1
    - Dst: oid_to_hex
      Src: /src/git/blame.c:2119,1
    - Dst: handle_split
      Src: /src/git/blame.c:2121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - sb
    - ent
    - parent
    - split
    - file_p
    argTypes:
    - struct blame_scoreboard*
    - struct blame_entry*
    - struct blame_origin*
    - struct blame_entry*
    - mmfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2093
    functionDepth: 5
    functionLinenumber: 2093
    functionLinenumberEnd: 2122
    functionName: find_copy_in_blob
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - handle_split
    - memset
    - diff_hunks
    - die
    - oid_to_hex
    - blame_nth_line
    linkageType: ''
    returnType: void
    signature: "void find_copy_in_blob(struct blame_scoreboard *sb,\n\t\t\t      struct
      blame_entry *ent,\n\t\t\t      struct blame_origin *parent,\n\t\t\t      struct
      blame_entry *split,\n\t\t\t      mmfile_t *file_p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blame_entry_score
      Src: /src/git/blame.c:2137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2150
      start: 2129
    functionDepth: 2
    functionLinenumber: 2129
    functionLinenumberEnd: 2150
    functionName: filter_small
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_entry_score
    linkageType: ''
    returnType: struct blame_entry
    signature: "struct blame_entry **filter_small(struct blame_scoreboard *sb,\n\t\t\t\t\t
      struct blame_entry **small,\n\t\t\t\t\t struct blame_entry **source,\n\t\t\t\t\t
      unsigned score_min)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fill_origin_blob
      Src: /src/git/blame.c:2170,1
    - Dst: find_copy_in_blob
      Src: /src/git/blame.c:2185,1
    - Dst: blame_entry_score
      Src: /src/git/blame.c:2187,1
    - Dst: split_blame
      Src: /src/git/blame.c:2188,1
    - Dst: decref_split
      Src: /src/git/blame.c:2193,1
    - Dst: filter_small
      Src: /src/git/blame.c:2196,1
    - Dst: reverse_blame
      Src: /src/git/blame.c:2198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - sb
    - blamed
    - toosmall
    - target
    - parent
    argTypes:
    - struct blame_scoreboard*
    - struct blame_entry***
    - struct blame_entry**
    - struct blame_origin*
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2156
    functionDepth: 27
    functionLinenumber: 2156
    functionLinenumberEnd: 2199
    functionName: find_move_in_parent
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_entry_score
    - fill_origin_blob
    - find_copy_in_blob
    - split_blame
    - reverse_blame
    - decref_split
    - filter_small
    linkageType: ''
    returnType: void
    signature: "void find_move_in_parent(struct blame_scoreboard *sb,\n\t\t\t\tstruct
      blame_entry ***blamed,\n\t\t\t\tstruct blame_entry **toosmall,\n\t\t\t\tstruct
      blame_origin *target,\n\t\t\t\tstruct blame_origin *parent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/blame.c:2220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - unblamed
    - num_ents_p
    argTypes:
    - struct blame_entry*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2210
    functionDepth: 1
    functionLinenumber: 2210
    functionLinenumberEnd: 2226
    functionName: setup_blame_list
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct blame_list
    signature: "struct blame_list *setup_blame_list(struct blame_entry *unblamed,\n\t\t\t\t\t
      \  int *num_ents_p)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: repo_diff_setup
      Src: /src/git/blame.c:2251,1
    - Dst: diff_setup_done
      Src: /src/git/blame.c:2255,1
    - Dst: strcmp
      Src: /src/git/blame.c:2266,1
    - Dst: is_null_oid
      Src: /src/git/blame.c:2269,1
    - Dst: do_diff_cache
      Src: /src/git/blame.c:2270,1
    - Dst: get_commit_tree_oid
      Src: /src/git/blame.c:2270,1
    - Dst: diff_tree_oid
      Src: /src/git/blame.c:2272,1
    - Dst: get_commit_tree_oid
      Src: /src/git/blame.c:2272,1
    - Dst: get_commit_tree_oid
      Src: /src/git/blame.c:2273,1
    - Dst: diffcore_std
      Src: /src/git/blame.c:2277,1
    - Dst: setup_blame_list
      Src: /src/git/blame.c:2281,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/blame.c:2289,1
    - Dst: S_ISGITLINK
      Src: /src/git/blame.c:2291,1
    - Dst: strcmp
      Src: /src/git/blame.c:2293,1
    - Dst: get_origin
      Src: /src/git/blame.c:2297,1
    - Dst: oidcpy
      Src: /src/git/blame.c:2298,1
    - Dst: fill_origin_blob
      Src: /src/git/blame.c:2300,1
    - Dst: find_copy_in_blob
      Src: /src/git/blame.c:2306,1
    - Dst: copy_split_if_better
      Src: /src/git/blame.c:2308,1
    - Dst: decref_split
      Src: /src/git/blame.c:2310,1
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:2312,1
    - Dst: blame_entry_score
      Src: /src/git/blame.c:2318,1
    - Dst: split_blame
      Src: /src/git/blame.c:2319,1
    - Dst: decref_split
      Src: /src/git/blame.c:2325,1
    - Dst: free
      Src: /src/git/blame.c:2327,1
    - Dst: filter_small
      Src: /src/git/blame.c:2329,1
    - Dst: reverse_blame
      Src: /src/git/blame.c:2331,1
    - Dst: diff_flush
      Src: /src/git/blame.c:2332,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 7
    argNames:
    - sb
    - blamed
    - toosmall
    - target
    - parent
    - porigin
    - opt
    argTypes:
    - struct blame_scoreboard*
    - struct blame_entry***
    - struct blame_entry**
    - struct blame_origin*
    - struct commit*
    - struct blame_origin*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2233
    functionDepth: 27
    functionLinenumber: 2233
    functionLinenumberEnd: 2333
    functionName: find_copy_in_parent
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_decref
    - oidcpy
    - fill_origin_blob
    - find_copy_in_blob
    - is_null_oid
    - strcmp
    - setup_blame_list
    - free
    - diff_setup_done
    - repo_diff_setup
    - decref_split
    - copy_split_if_better
    - S_ISGITLINK
    - diff_flush
    - get_origin
    - split_blame
    - reverse_blame
    - do_diff_cache
    - filter_small
    - diff_tree_oid
    - blame_entry_score
    - get_commit_tree_oid
    - diffcore_std
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: void
    signature: "void find_copy_in_parent(struct blame_scoreboard *sb,\n\t\t\t\tstruct
      blame_entry ***blamed,\n\t\t\t\tstruct blame_entry **toosmall,\n\t\t\t\tstruct
      blame_origin *target,\n\t\t\t\tstruct commit *parent,\n\t\t\t\tstruct blame_origin
      *porigin,\n\t\t\t\tint opt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:2352,1
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:2353,1
    - Dst: queue_blames
      Src: /src/git/blame.c:2356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - sb
    - origin
    - porigin
    argTypes:
    - struct blame_scoreboard*
    - struct blame_origin*
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2339
    functionDepth: 4
    functionLinenumber: 2339
    functionLinenumberEnd: 2357
    functionName: pass_whole_blame
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_decref
    - blame_origin_incref
    - queue_blames
    linkageType: ''
    returnType: void
    signature: "void pass_whole_blame(struct blame_scoreboard *sb,\n\t\t\t     struct
      blame_origin *origin, struct blame_origin *porigin)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_free
      Src: /src/git/blame.c:2371,1
    - Dst: lookup_decoration
      Src: /src/git/blame.c:2376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - revs
    - commit
    - reverse
    argTypes:
    - struct rev_info*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2364
    functionDepth: 2
    functionLinenumber: 2364
    functionLinenumberEnd: 2377
    functionName: first_scapegoat
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - commit_list_free
    - lookup_decoration
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *first_scapegoat(struct rev_info *revs, struct
      commit *commit,\n\t\t\t\t\tint reverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first_scapegoat
      Src: /src/git/blame.c:2381,1
    - Dst: commit_list_count
      Src: /src/git/blame.c:2382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - revs
    - commit
    - reverse
    argTypes:
    - struct rev_info*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2379
    functionDepth: 3
    functionLinenumber: 2379
    functionLinenumberEnd: 2383
    functionName: num_scapegoats
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - first_scapegoat
    - commit_list_count
    linkageType: ''
    returnType: int
    signature: int num_scapegoats(struct rev_info *revs, struct commit *commit, int
      reverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sort_blame_entries
      Src: /src/git/blame.c:2390,1
    - Dst: reverse_blame
      Src: /src/git/blame.c:2401,1
    - Dst: queue_blames
      Src: /src/git/blame.c:2402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - sb
    - blamed
    argTypes:
    - struct blame_scoreboard*
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2388
    functionDepth: 4
    functionLinenumber: 2388
    functionLinenumberEnd: 2404
    functionName: distribute_blame
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - queue_blames
    - reverse_blame
    - sort_blame_entries
    linkageType: ''
    returnType: void
    signature: void distribute_blame(struct blame_scoreboard *sb, struct blame_entry
      *blamed)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: num_scapegoats
      Src: /src/git/blame.c:2424,1
    - Dst: ARRAY_SIZE
      Src: /src/git/blame.c:2427,1
    - Dst: memset
      Src: /src/git/blame.c:2428,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/blame.c:2430,1
    - Dst: first_scapegoat
      Src: /src/git/blame.c:2439,1
    - Dst: repo_parse_commit
      Src: /src/git/blame.c:2447,1
    - Dst: find
      Src: /src/git/blame.c:2449,1
    - Dst: oideq
      Src: /src/git/blame.c:2452,1
    - Dst: pass_whole_blame
      Src: /src/git/blame.c:2453,1
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:2454,1
    - Dst: oideq
      Src: /src/git/blame.c:2459,1
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:2466,1
    - Dst: first_scapegoat
      Src: /src/git/blame.c:2471,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:2478,1
    - Dst: pass_blame_to_parent
      Src: /src/git/blame.c:2481,1
    - Dst: oidset_contains
      Src: /src/git/blame.c:2489,1
    - Dst: first_scapegoat
      Src: /src/git/blame.c:2490,1
    - Dst: pass_blame_to_parent
      Src: /src/git/blame.c:2497,1
    - Dst: drop_origin_blob
      Src: /src/git/blame.c:2503,1
    - Dst: filter_small
      Src: /src/git/blame.c:2513,1
    - Dst: first_scapegoat
      Src: /src/git/blame.c:2515,1
    - Dst: find_move_in_parent
      Src: /src/git/blame.c:2521,1
    - Dst: filter_small
      Src: /src/git/blame.c:2533,1
    - Dst: blame_merge
      Src: /src/git/blame.c:2535,1
    - Dst: filter_small
      Src: /src/git/blame.c:2537,1
    - Dst: first_scapegoat
      Src: /src/git/blame.c:2542,1
    - Dst: find_copy_in_parent
      Src: /src/git/blame.c:2546,1
    - Dst: distribute_blame
      Src: /src/git/blame.c:2555,1
    - Dst: drop_origin_blob
      Src: /src/git/blame.c:2572,1
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:2573,1
    - Dst: drop_origin_blob
      Src: /src/git/blame.c:2576,1
    - Dst: free
      Src: /src/git/blame.c:2578,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 107
    argCount: 3
    argNames:
    - sb
    - origin
    - opt
    argTypes:
    - struct blame_scoreboard*
    - struct blame_origin*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2413
    functionDepth: 28
    functionLinenumber: 2413
    functionLinenumberEnd: 2579
    functionName: pass_blame
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_decref
    - distribute_blame
    - find
    - pass_whole_blame
    - CALLOC_ARRAY
    - free
    - first_scapegoat
    - find_copy_in_parent
    - repo_parse_commit
    - blame_merge
    - drop_origin_blob
    - ARRAY_SIZE
    - memset
    - find_move_in_parent
    - filter_small
    - blame_origin_incref
    - num_scapegoats
    - oidset_contains
    - pass_blame_to_parent
    - oideq
    linkageType: ''
    returnType: void
    signature: void pass_blame(struct blame_scoreboard *sb, struct blame_origin *origin,
      int opt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_get
      Src: /src/git/blame.c:2588,1
    - Dst: get_blame_suspects
      Src: /src/git/blame.c:2592,1
    - Dst: prio_queue_get
      Src: /src/git/blame.c:2599,1
    - Dst: assert
      Src: /src/git/blame.c:2603,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:2609,1
    - Dst: repo_parse_commit
      Src: /src/git/blame.c:2610,1
    - Dst: pass_blame
      Src: /src/git/blame.c:2614,1
    - Dst: mark_parents_uninteresting
      Src: /src/git/blame.c:2618,1
    - Dst: struct blame_scoreboard*::found_guilty_entry
      Src: /src/git/blame.c:2631,1
    - Dst: blame_origin_decref
      Src: /src/git/blame.c:2642,1
    - Dst: sanity_check_refcnt
      Src: /src/git/blame.c:2645,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - sb
    - opt
    argTypes:
    - struct blame_scoreboard*
    - int
    assertStmts:
    - condition: (commit == suspect->commit)
      pos:
        line_end: 2602
        line_start: 2602
        source_file: /src/git/blame.c
    constantsTouched: []
    func_position:
      end: 2647
      start: 2585
    functionDepth: 29
    functionLinenumber: 2585
    functionLinenumberEnd: 2647
    functionName: assign_blame
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_decref
    - blame_origin_incref
    - assert
    - prio_queue_get
    - repo_parse_commit
    - struct blame_scoreboard*::found_guilty_entry
    - pass_blame
    - sanity_check_refcnt
    - mark_parents_uninteresting
    - get_blame_suspects
    linkageType: ''
    returnType: void
    signature: void assign_blame(struct blame_scoreboard *sb, int opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_line_starts
      Src: /src/git/blame.c:2655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct blame_scoreboard*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2658
      start: 2653
    functionDepth: 2
    functionLinenumber: 2653
    functionLinenumberEnd: 2658
    functionName: prepare_lines
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - find_line_starts
    linkageType: ''
    returnType: int
    signature: int prepare_lines(struct blame_scoreboard *sb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deref_tag
      Src: /src/git/blame.c:2671,1
    - Dst: die
      Src: /src/git/blame.c:2673,1
    - Dst: die
      Src: /src/git/blame.c:2675,1
    - Dst: xstrdup_or_null
      Src: /src/git/blame.c:2681,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - revs
    - name_p
    argTypes:
    - struct rev_info*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2660
    functionDepth: 5
    functionLinenumber: 2660
    functionLinenumberEnd: 2683
    functionName: find_single_final
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - deref_tag
    - die
    - xstrdup_or_null
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *find_single_final(struct rev_info *revs,\n\t\t\t\t\tconst
      char **name_p)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: deref_tag
      Src: /src/git/blame.c:2702,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/blame.c:2707,1
    - Dst: get_main_ref_store
      Src: /src/git/blame.c:2707,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/blame.c:2709,1
    - Dst: add_pending_object
      Src: /src/git/blame.c:2716,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - revs
    - name_p
    argTypes:
    - struct rev_info*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2685
    functionDepth: 6
    functionLinenumber: 2685
    functionLinenumberEnd: 2721
    functionName: dwim_reverse_initial
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference_gently
    - refs_resolve_ref_unsafe
    - deref_tag
    - add_pending_object
    - get_main_ref_store
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *dwim_reverse_initial(struct rev_info *revs,\n\t\t\t\t\t
      \  const char **name_p)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: deref_tag
      Src: /src/git/blame.c:2738,1
    - Dst: die
      Src: /src/git/blame.c:2740,1
    - Dst: die
      Src: /src/git/blame.c:2742,1
    - Dst: dwim_reverse_initial
      Src: /src/git/blame.c:2749,1
    - Dst: die
      Src: /src/git/blame.c:2751,1
    - Dst: xstrdup
      Src: /src/git/blame.c:2754,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - revs
    - name_p
    argTypes:
    - struct rev_info*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2723
    functionDepth: 7
    functionLinenumber: 2723
    functionLinenumberEnd: 2756
    functionName: find_single_initial
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - deref_tag
    - die
    - xstrdup
    - dwim_reverse_initial
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *find_single_initial(struct rev_info *revs,\n\t\t\t\t\t
      \ const char **name_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/blame.c:2760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct blame_scoreboard*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2763
    functionName: init_scoreboard
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void init_scoreboard(struct blame_scoreboard *sb)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: init_blame_suspects
      Src: /src/git/blame.c:2773,1
    - Dst: die
      Src: /src/git/blame.c:2776,1
    - Dst: _
      Src: /src/git/blame.c:2776,1
    - Dst: BUG
      Src: /src/git/blame.c:2779,1
    - Dst: find_single_final
      Src: /src/git/blame.c:2782,1
    - Dst: find_single_initial
      Src: /src/git/blame.c:2785,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/blame.c:2810,1
    - Dst: get_main_ref_store
      Src: /src/git/blame.c:2810,1
    - Dst: die
      Src: /src/git/blame.c:2811,1
    - Dst: setup_work_tree
      Src: /src/git/blame.c:2816,1
    - Dst: fake_working_tree_commit
      Src: /src/git/blame.c:2818,1
    - Dst: add_pending_object
      Src: /src/git/blame.c:2822,1
    - Dst: find_single_final
      Src: /src/git/blame.c:2826,1
    - Dst: die
      Src: /src/git/blame.c:2828,1
    - Dst: _
      Src: /src/git/blame.c:2828,1
    - Dst: prepare_revision_walk
      Src: /src/git/blame.c:2836,1
    - Dst: die
      Src: /src/git/blame.c:2837,1
    - Dst: _
      Src: /src/git/blame.c:2837,1
    - Dst: oideq
      Src: /src/git/blame.c:2844,1
    - Dst: xcalloc
      Src: /src/git/blame.c:2845,1
    - Dst: add_decoration
      Src: /src/git/blame.c:2848,1
    - Dst: BUG
      Src: /src/git/blame.c:2850,1
    - Dst: oideq
      Src: /src/git/blame.c:2854,1
    - Dst: die
      Src: /src/git/blame.c:2855,1
    - Dst: _
      Src: /src/git/blame.c:2855,1
    - Dst: is_null_oid
      Src: /src/git/blame.c:2858,1
    - Dst: get_blame_suspects
      Src: /src/git/blame.c:2859,1
    - Dst: xmemdupz
      Src: /src/git/blame.c:2860,1
    - Dst: get_origin
      Src: /src/git/blame.c:2864,1
    - Dst: fill_blob_sha1_and_mode
      Src: /src/git/blame.c:2865,1
    - Dst: die
      Src: /src/git/blame.c:2866,1
    - Dst: _
      Src: /src/git/blame.c:2866,1
    - Dst: textconv_object
      Src: /src/git/blame.c:2869,1
    - Dst: odb_read_object
      Src: /src/git/blame.c:2873,1
    - Dst: die
      Src: /src/git/blame.c:2878,1
    - Dst: _
      Src: /src/git/blame.c:2878,1
    - Dst: oid_to_hex
      Src: /src/git/blame.c:2879,1
    - Dst: prepare_lines
      Src: /src/git/blame.c:2883,1
    - Dst: free
      Src: /src/git/blame.c:2888,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 65
    argCount: 2
    argNames:
    - sb
    - orig
    argTypes:
    - struct blame_scoreboard*
    - struct blame_origin**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2765
    functionDepth: 27
    functionLinenumber: 2765
    functionLinenumberEnd: 2889
    functionName: setup_scoreboard
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - refs_resolve_ref_unsafe
    - find_single_initial
    - textconv_object
    - is_null_oid
    - fill_blob_sha1_and_mode
    - add_decoration
    - prepare_lines
    - free
    - find_single_final
    - get_main_ref_store
    - die
    - fake_working_tree_commit
    - prepare_revision_walk
    - xcalloc
    - odb_read_object
    - oid_to_hex
    - setup_work_tree
    - init_blame_suspects
    - get_origin
    - _
    - add_pending_object
    - BUG
    - get_blame_suspects
    - oideq
    linkageType: ''
    returnType: void
    signature: "void setup_scoreboard(struct blame_scoreboard *sb,\n\t\t      struct
      blame_origin **orig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/blame.c:2897,1
    - Dst: blame_origin_incref
      Src: /src/git/blame.c:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - head
    - start
    - end
    - o
    argTypes:
    - struct blame_entry*
    - long
    - long
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2893
    functionDepth: 7
    functionLinenumber: 2893
    functionLinenumberEnd: 2905
    functionName: blame_entry_prepend
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - blame_origin_incref
    - xcalloc
    linkageType: ''
    returnType: struct blame_entry
    signature: "struct blame_entry *blame_entry_prepend(struct blame_entry *head,\n\t\t\t\t\tlong
      start, long end,\n\t\t\t\t\tstruct blame_origin *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bloom_filter_settings
      Src: /src/git/blame.c:2912,1
    - Dst: xmalloc
      Src: /src/git/blame.c:2916,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/blame.c:2922,1
    - Dst: add_bloom_key
      Src: /src/git/blame.c:2924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct blame_scoreboard*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2907
    functionDepth: 15
    functionLinenumber: 2907
    functionLinenumberEnd: 2927
    functionName: setup_blame_bloom_data
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - get_bloom_filter_settings
    - xmalloc
    - ALLOC_ARRAY
    - add_bloom_key
    linkageType: ''
    returnType: void
    signature: void setup_blame_bloom_data(struct blame_scoreboard *sb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/blame.c:2931,1
    - Dst: free
      Src: /src/git/blame.c:2932,1
    - Dst: clear_prio_queue
      Src: /src/git/blame.c:2933,1
    - Dst: oidset_clear
      Src: /src/git/blame.c:2934,1
    - Dst: free
      Src: /src/git/blame.c:2939,1
    - Dst: free
      Src: /src/git/blame.c:2940,1
    - Dst: free
      Src: /src/git/blame.c:2942,1
    - Dst: FREE_AND_NULL
      Src: /src/git/blame.c:2943,1
    - Dst: trace2_data_intmax
      Src: /src/git/blame.c:2945,1
    - Dst: trace2_data_intmax
      Src: /src/git/blame.c:2947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct blame_scoreboard*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2950
      start: 2929
    functionDepth: 2
    functionLinenumber: 2929
    functionLinenumberEnd: 2950
    functionName: cleanup_scoreboard
    functionSourceFile: /src/git/blame.c
    functionUses: 0
    functionsReached:
    - trace2_data_intmax
    - oidset_clear
    - free
    - clear_prio_queue
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void cleanup_scoreboard(struct blame_scoreboard *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit_gently
      Src: /src/git/commit.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - item
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 19
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: repo_parse_commit
    functionSourceFile: /src/git/commit.h
    functionUses: 33
    functionsReached:
    - repo_parse_commit_gently
    linkageType: ''
    returnType: int
    signature: int repo_parse_commit(struct repository *r, struct commit *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unparse_commit
      Src: /src/git/commit.h:119,1
    - Dst: repo_parse_commit_internal
      Src: /src/git/commit.h:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - r
    - commit
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 18
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: repo_parse_commit_no_graph
    functionSourceFile: /src/git/commit.h
    functionUses: 3
    functionsReached:
    - unparse_commit
    - repo_parse_commit_internal
    linkageType: ''
    returnType: int
    signature: "int repo_parse_commit_no_graph(struct repository *r,\n\t\t\t\t\t     struct
      commit *commit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_copy
      Src: /src/git/commit.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: copy_commit_list
    functionSourceFile: /src/git/commit.h
    functionUses: 0
    functionsReached:
    - commit_list_copy
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *copy_commit_list(struct commit_list *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_reverse
      Src: /src/git/commit.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: reverse_commit_list
    functionSourceFile: /src/git/commit.h
    functionUses: 0
    functionsReached:
    - commit_list_reverse
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *reverse_commit_list(struct commit_list *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_free
      Src: /src/git/commit.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: free_commit_list
    functionSourceFile: /src/git/commit.h
    functionUses: 3
    functionsReached:
    - commit_list_free
    linkageType: ''
    returnType: void
    signature: void free_commit_list(struct commit_list *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/advice.c:23,1
    - Dst: strcasecmp
      Src: /src/git/advice.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - slot
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: parse_advise_color_slot
    functionSourceFile: /src/git/advice.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int parse_advise_color_slot(const char *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color_stderr
      Src: /src/git/advice.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ix
    argTypes:
    - enum color_advice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: advise_get_color
    functionSourceFile: /src/git/advice.c
    functionUses: 0
    functionsReached:
    - want_color_stderr
    linkageType: ''
    returnType: char
    signature: char *advise_get_color(enum color_advice ix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_vaddf
      Src: /src/git/advice.c:106,1
    - Dst: strbuf_addf
      Src: /src/git/advice.c:109,1
    - Dst: strchrnul
      Src: /src/git/advice.c:112,1
    - Dst: fprintf
      Src: /src/git/advice.c:113,1
    - Dst: _
      Src: /src/git/advice.c:113,1
    - Dst: advise_get_color
      Src: /src/git/advice.c:114,1
    - Dst: advise_get_color
      Src: /src/git/advice.c:117,1
    - Dst: strbuf_release
      Src: /src/git/advice.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - advice
    - display_instructions
    - key
    - params
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: vadvise
    functionSourceFile: /src/git/advice.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_vaddf
    - advise_get_color
    - strbuf_addf
    - _
    - strchrnul
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void vadvise(const char *advice, int display_instructions,\n\t\t    const
      char *key, va_list params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/advice.c:127,1
    - Dst: vadvise
      Src: /src/git/advice.c:128,1
    - Dst: va_end
      Src: /src/git/advice.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - advice
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: advise
    functionSourceFile: /src/git/advice.c
    functionUses: 18
    functionsReached:
    - va_end
    - va_start
    - vadvise
    linkageType: ''
    returnType: void
    signature: void advise(const char *advice, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_env_bool
      Src: /src/git/advice.c:138,1
    - Dst: advice_enabled
      Src: /src/git/advice.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum advice_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 147
    functionName: advice_enabled
    functionSourceFile: /src/git/advice.c
    functionUses: 19
    functionsReached:
    - git_env_bool
    - advice_enabled
    linkageType: ''
    returnType: int
    signature: int advice_enabled(enum advice_type type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advice_enabled
      Src: /src/git/advice.c:153,1
    - Dst: va_start
      Src: /src/git/advice.c:156,1
    - Dst: vadvise
      Src: /src/git/advice.c:157,1
    - Dst: va_end
      Src: /src/git/advice.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - advice
    argTypes:
    - enum advice_type
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 7
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: advise_if_enabled
    functionSourceFile: /src/git/advice.c
    functionUses: 10
    functionsReached:
    - va_end
    - va_start
    - vadvise
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: void advise_if_enabled(enum advice_type type, const char *advice, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/advice.c:166,1
    - Dst: git_config_colorbool
      Src: /src/git/advice.c:167,1
    - Dst: skip_prefix
      Src: /src/git/advice.c:171,1
    - Dst: parse_advise_color_slot
      Src: /src/git/advice.c:172,1
    - Dst: config_error_nonbool
      Src: /src/git/advice.c:176,1
    - Dst: color_parse
      Src: /src/git/advice.c:177,1
    - Dst: skip_prefix
      Src: /src/git/advice.c:180,1
    - Dst: ARRAY_SIZE
      Src: /src/git/advice.c:183,1
    - Dst: strcasecmp
      Src: /src/git/advice.c:184,1
    - Dst: git_config_bool
      Src: /src/git/advice.c:186,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 6
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: git_default_advice_config
    functionSourceFile: /src/git/advice.c
    functionUses: 1
    functionsReached:
    - git_config_colorbool
    - ARRAY_SIZE
    - git_config_bool
    - strcasecmp
    - parse_advise_color_slot
    - color_parse
    - strcmp
    - skip_prefix
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: int git_default_advice_config(const char *var, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/advice.c:197,1
    - Dst: list_config_item
      Src: /src/git/advice.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - list
    - prefix
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: list_config_advices
    functionSourceFile: /src/git/advice.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - list_config_item
    linkageType: ''
    returnType: void
    signature: void list_config_advices(struct string_list *list, const char *prefix)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/advice.c:203,1
    - Dst: error
      Src: /src/git/advice.c:204,1
    - Dst: _
      Src: /src/git/advice.c:204,1
    - Dst: strcmp
      Src: /src/git/advice.c:205,1
    - Dst: error
      Src: /src/git/advice.c:206,1
    - Dst: _
      Src: /src/git/advice.c:206,1
    - Dst: strcmp
      Src: /src/git/advice.c:207,1
    - Dst: error
      Src: /src/git/advice.c:208,1
    - Dst: _
      Src: /src/git/advice.c:208,1
    - Dst: strcmp
      Src: /src/git/advice.c:209,1
    - Dst: error
      Src: /src/git/advice.c:210,1
    - Dst: _
      Src: /src/git/advice.c:210,1
    - Dst: strcmp
      Src: /src/git/advice.c:211,1
    - Dst: error
      Src: /src/git/advice.c:212,1
    - Dst: _
      Src: /src/git/advice.c:212,1
    - Dst: strcmp
      Src: /src/git/advice.c:213,1
    - Dst: error
      Src: /src/git/advice.c:214,1
    - Dst: _
      Src: /src/git/advice.c:214,1
    - Dst: BUG
      Src: /src/git/advice.c:216,1
    - Dst: advice_enabled
      Src: /src/git/advice.c:218,1
    - Dst: advise
      Src: /src/git/advice.c:223,1
    - Dst: _
      Src: /src/git/advice.c:223,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - me
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 201
    functionDepth: 7
    functionLinenumber: 201
    functionLinenumberEnd: 226
    functionName: error_resolve_conflict
    functionSourceFile: /src/git/advice.c
    functionUses: 2
    functionsReached:
    - error
    - strcmp
    - _
    - advise
    - BUG
    - advice_enabled
    linkageType: ''
    returnType: int
    signature: int error_resolve_conflict(const char *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error_resolve_conflict
      Src: /src/git/advice.c:230,1
    - Dst: die
      Src: /src/git/advice.c:231,1
    - Dst: _
      Src: /src/git/advice.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - me
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 8
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: die_resolve_conflict
    functionSourceFile: /src/git/advice.c
    functionUses: 0
    functionsReached:
    - error_resolve_conflict
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void die_resolve_conflict(const char *me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/advice.c:236,1
    - Dst: _
      Src: /src/git/advice.c:236,1
    - Dst: advice_enabled
      Src: /src/git/advice.c:237,1
    - Dst: advise
      Src: /src/git/advice.c:238,1
    - Dst: _
      Src: /src/git/advice.c:238,1
    - Dst: die
      Src: /src/git/advice.c:239,1
    - Dst: _
      Src: /src/git/advice.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 7
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: die_conclude_merge
    functionSourceFile: /src/git/advice.c
    functionUses: 0
    functionsReached:
    - error
    - die
    - _
    - advise
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: void die_conclude_merge(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: advise_if_enabled
      Src: /src/git/advice.c:244,1
    - Dst: _
      Src: /src/git/advice.c:245,1
    - Dst: die
      Src: /src/git/advice.c:252,1
    - Dst: _
      Src: /src/git/advice.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 8
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: die_ff_impossible
    functionSourceFile: /src/git/advice.c
    functionUses: 0
    functionsReached:
    - advise_if_enabled
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void die_ff_impossible(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/advice.c:262,1
    - Dst: _
      Src: /src/git/advice.c:262,1
    - Dst: for_each_string_list_item
      Src: /src/git/advice.c:265,1
    - Dst: fprintf
      Src: /src/git/advice.c:266,1
    - Dst: advise_if_enabled
      Src: /src/git/advice.c:268,1
    - Dst: _
      Src: /src/git/advice.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pathspec_list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 255
    functionDepth: 8
    functionLinenumber: 255
    functionLinenumberEnd: 272
    functionName: advise_on_updating_sparse_paths
    functionSourceFile: /src/git/advice.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - advise_if_enabled
    - fprintf
    - _
    linkageType: ''
    returnType: void
    signature: void advise_on_updating_sparse_paths(struct string_list *pathspec_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/advice.c:277,1
    - Dst: fprintf
      Src: /src/git/advice.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 295
    functionName: detach_advice
    functionSourceFile: /src/git/advice.c
    functionUses: 0
    functionsReached:
    - fprintf
    - _
    linkageType: ''
    returnType: void
    signature: void detach_advice(const char *new_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/advice.c:304,1
    - Dst: _
      Src: /src/git/advice.c:304,1
    - Dst: for_each_string_list_item
      Src: /src/git/advice.c:307,1
    - Dst: fprintf
      Src: /src/git/advice.c:308,1
    - Dst: advise_if_enabled
      Src: /src/git/advice.c:310,1
    - Dst: _
      Src: /src/git/advice.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pathspec_list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 297
    functionDepth: 8
    functionLinenumber: 297
    functionLinenumberEnd: 314
    functionName: advise_on_moving_dirty_path
    functionSourceFile: /src/git/advice.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - advise_if_enabled
    - fprintf
    - _
    linkageType: ''
    returnType: void
    signature: void advise_on_moving_dirty_path(struct string_list *pathspec_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/line-log.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rs
    - extra
    argTypes:
    - struct range_set*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: range_set_grow
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void range_set_grow(struct range_set *rs, size_t extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range_set_grow
      Src: /src/git/line-log.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rs
    - prealloc
    argTypes:
    - struct range_set*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: range_set_init
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_grow
    linkageType: ''
    returnType: void
    signature: void range_set_init(struct range_set *rs, size_t prealloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/line-log.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct range_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: range_set_release
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void range_set_release(struct range_set *rs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range_set_init
      Src: /src/git/line-log.c:48,1
    - Dst: COPY_ARRAY
      Src: /src/git/line-log.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct range_set*
    - struct range_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: range_set_copy
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - COPY_ARRAY
    - range_set_init
    linkageType: ''
    returnType: void
    signature: void range_set_copy(struct range_set *dst, struct range_set *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range_set_release
      Src: /src/git/line-log.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct range_set*
    - struct range_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: range_set_move
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_release
    linkageType: ''
    returnType: void
    signature: void range_set_move(struct range_set *dst, struct range_set *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:66,1
    - Dst: range_set_grow
      Src: /src/git/line-log.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - rs
    - a
    - b
    argTypes:
    - struct range_set*
    - long
    - long
    assertStmts:
    - condition: (a <= b)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: range_set_append_unsafe
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_grow
    - assert
    linkageType: ''
    returnType: void
    signature: void range_set_append_unsafe(struct range_set *rs, long a, long b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:75,1
    - Dst: range_set_append_unsafe
      Src: /src/git/line-log.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - rs
    - a
    - b
    argTypes:
    - struct range_set*
    - long
    - long
    assertStmts:
    - condition: (rs->nr == 0 || rs->ranges[rs->nr-1].end <= a)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: range_set_append
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - assert
    - range_set_append_unsafe
    linkageType: ''
    returnType: void
    signature: void range_set_append(struct range_set *rs, long a, long b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - _r
    - _s
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: range_cmp
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int range_cmp(const void *_r, const void *_s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:103,1
    - Dst: assert
      Src: /src/git/line-log.c:106,1
    - Dst: assert
      Src: /src/git/line-log.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct range_set*
    assertStmts:
    - condition: (rs->ranges[0].start < rs->ranges[0].end)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/git/line-log.c
    - condition: (rs->ranges[i-1].end < rs->ranges[i].start)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/git/line-log.c
    - condition: (rs->ranges[i].start < rs->ranges[i].end)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: range_set_check_invariants
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void range_set_check_invariants(struct range_set *rs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/line-log.c:120,1
    - Dst: assert
      Src: /src/git/line-log.c:134,1
    - Dst: range_set_check_invariants
      Src: /src/git/line-log.c:137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct range_set*
    assertStmts:
    - condition: (o <= rs->nr)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 138
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 138
    functionName: sort_and_merge_range_set
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_check_invariants
    - QSORT
    - assert
    linkageType: ''
    returnType: void
    signature: void sort_and_merge_range_set(struct range_set *rs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:156,1
    - Dst: range_set_grow
      Src: /src/git/line-log.c:175,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - struct range_set*
    - struct range_set*
    - struct range_set*
    assertStmts:
    - condition: (out->nr == 0)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 183
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: range_set_union
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_grow
    - assert
    linkageType: ''
    returnType: void
    signature: "void range_set_union(struct range_set *out,\n\t\t\t     struct range_set
      *a, struct range_set *b)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: range_set_append
      Src: /src/git/line-log.c:210,1
    - Dst: range_set_append
      Src: /src/git/line-log.c:225,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - struct range_set*
    - struct range_set*
    - struct range_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 230
    functionName: range_set_difference
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_append
    linkageType: ''
    returnType: void
    signature: "void range_set_difference(struct range_set *out,\n\t\t\t\t  struct
      range_set *a, struct range_set *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range_set_init
      Src: /src/git/line-log.c:234,1
    - Dst: range_set_init
      Src: /src/git/line-log.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - diff
    argTypes:
    - struct diff_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: diff_ranges_init
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_init
    linkageType: ''
    returnType: void
    signature: void diff_ranges_init(struct diff_ranges *diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range_set_release
      Src: /src/git/line-log.c:240,1
    - Dst: range_set_release
      Src: /src/git/line-log.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - diff
    argTypes:
    - struct diff_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: diff_ranges_release
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_release
    linkageType: ''
    returnType: void
    signature: void diff_ranges_release(struct diff_ranges *diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/line-log.c:246,1
    - Dst: range_set_init
      Src: /src/git/line-log.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: line_log_data_init
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - memset
    - range_set_init
    linkageType: ''
    returnType: void
    signature: void line_log_data_init(struct line_log_data *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range_set_release
      Src: /src/git/line-log.c:252,1
    - Dst: free
      Src: /src/git/line-log.c:253,1
    - Dst: diff_free_filepair
      Src: /src/git/line-log.c:255,1
    - Dst: diff_ranges_release
      Src: /src/git/line-log.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: line_log_data_clear
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - diff_free_filepair
    - diff_ranges_release
    - range_set_release
    - free
    linkageType: ''
    returnType: void
    signature: void line_log_data_clear(struct line_log_data *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: line_log_data_clear
      Src: /src/git/line-log.c:263,1
    - Dst: free
      Src: /src/git/line-log.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: free_line_log_data
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - line_log_data_clear
    - free
    linkageType: ''
    returnType: void
    signature: void free_line_log_data(struct line_log_data *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/line-log.c:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - list
    - path
    - insertion_point
    argTypes:
    - struct line_log_data*
    - char*
    - struct line_log_data**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 285
    functionName: search_line_log_data
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct line_log_data
    signature: "struct line_log_data *\nsearch_line_log_data(struct line_log_data
      *list, const char *path,\n\t\t     struct line_log_data **insertion_point)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: search_line_log_data
      Src: /src/git/line-log.c:296,1
    - Dst: range_set_append_unsafe
      Src: /src/git/line-log.c:299,1
    - Dst: free
      Src: /src/git/line-log.c:300,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/line-log.c:304,1
    - Dst: range_set_append
      Src: /src/git/line-log.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - list
    - path
    - begin
    - end
    argTypes:
    - struct line_log_data**
    - char*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 314
    functionName: line_log_data_insert
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_append_unsafe
    - search_line_log_data
    - free
    - CALLOC_ARRAY
    - range_set_append
    linkageType: ''
    returnType: void
    signature: "void line_log_data_insert(struct line_log_data **list,\n\t\t\t\t char
      *path,\n\t\t\t\t long begin, long end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: range_set_append
      Src: /src/git/line-log.c:327,1
    - Dst: range_set_append
      Src: /src/git/line-log.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - start_a
    - count_a
    - start_b
    - count_b
    - data
    argTypes:
    - long
    - long
    - long
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 332
    functionName: collect_diff_cb
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_append
    linkageType: ''
    returnType: int
    signature: "int collect_diff_cb(long start_a, long count_a,\n\t\t\t   long start_b,
      long count_b,\n\t\t\t   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/line-log.c:341,1
    - Dst: memset
      Src: /src/git/line-log.c:342,1
    - Dst: memset
      Src: /src/git/line-log.c:347,1
    - Dst: xdi_diff
      Src: /src/git/line-log.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - parent
    - target
    - out
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - struct diff_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 350
    functionName: collect_diff
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - xdi_diff
    - memset
    linkageType: ''
    returnType: int
    signature: int collect_diff(mmfile_t *parent, mmfile_t *target, struct diff_ranges
      *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/line-log.c:360,1
    - Dst: printf
      Src: /src/git/line-log.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - rs
    - desc
    argTypes:
    - struct range_set*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: dump_range_set
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_range_set(struct range_set *rs, const char *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/git/line-log.c:369,1
    - Dst: dump_range_set
      Src: /src/git/line-log.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 373
    functionName: dump_line_log_data
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - snprintf
    - dump_range_set
    linkageType: ''
    returnType: void
    signature: void dump_line_log_data(struct line_log_data *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:378,1
    - Dst: printf
      Src: /src/git/line-log.c:379,1
    - Dst: printf
      Src: /src/git/line-log.c:380,1
    - Dst: printf
      Src: /src/git/line-log.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - diff
    - desc
    argTypes:
    - struct diff_ranges*
    - char*
    assertStmts:
    - condition: (diff->parent.nr == diff->target.nr)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: dump_diff_ranges
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - assert
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_diff_ranges(struct diff_ranges *diff, const char *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct range*
    - struct range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: ranges_overlap
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ranges_overlap(struct range *a, struct range *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:408,1
    - Dst: ranges_overlap
      Src: /src/git/line-log.c:416,1
    - Dst: range_set_append
      Src: /src/git/line-log.c:417,1
    - Dst: range_set_append
      Src: /src/git/line-log.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - out
    - diff
    - rs
    argTypes:
    - struct diff_ranges*
    - struct diff_ranges*
    - struct range_set*
    assertStmts:
    - condition: (out->target.nr == 0)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 425
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 425
    functionName: diff_ranges_filter_touched
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_append
    - ranges_overlap
    - assert
    linkageType: ''
    returnType: void
    signature: "void diff_ranges_filter_touched(struct diff_ranges *out,\n\t\t\t\t
      \      struct diff_ranges *diff,\n\t\t\t\t       struct range_set *rs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range_set_append
      Src: /src/git/line-log.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - out
    - rs
    - diff
    argTypes:
    - struct range_set*
    - struct range_set*
    - struct diff_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 431
    functionDepth: 4
    functionLinenumber: 431
    functionLinenumberEnd: 449
    functionName: range_set_shift_diff
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_append
    linkageType: ''
    returnType: void
    signature: "void range_set_shift_diff(struct range_set *out,\n\t\t\t\t struct
      range_set *rs,\n\t\t\t\t struct diff_ranges *diff)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/line-log.c:463,1
    - Dst: diff_ranges_init
      Src: /src/git/line-log.c:467,1
    - Dst: diff_ranges_filter_touched
      Src: /src/git/line-log.c:468,1
    - Dst: range_set_difference
      Src: /src/git/line-log.c:469,1
    - Dst: range_set_shift_diff
      Src: /src/git/line-log.c:470,1
    - Dst: range_set_union
      Src: /src/git/line-log.c:471,1
    - Dst: range_set_release
      Src: /src/git/line-log.c:472,1
    - Dst: range_set_release
      Src: /src/git/line-log.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - out
    - rs
    - diff
    - touched_out
    argTypes:
    - struct range_set*
    - struct range_set*
    - struct diff_ranges*
    - struct diff_ranges**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 458
    functionDepth: 5
    functionLinenumber: 458
    functionLinenumberEnd: 476
    functionName: range_set_map_across_diff
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - diff_ranges_filter_touched
    - range_set_shift_diff
    - range_set_release
    - diff_ranges_init
    - xmalloc
    - range_set_difference
    - range_set_union
    linkageType: ''
    returnType: void
    signature: "void range_set_map_across_diff(struct range_set *out,\n\t\t\t\t      struct
      range_set *rs,\n\t\t\t\t      struct diff_ranges *diff,\n\t\t\t\t      struct
      diff_ranges **touched_out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deref_tag
      Src: /src/git/line-log.c:488,1
    - Dst: die
      Src: /src/git/line-log.c:490,1
    - Dst: die
      Src: /src/git/line-log.c:492,1
    - Dst: die
      Src: /src/git/line-log.c:500,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 503
    functionName: check_single_commit
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - deref_tag
    - die
    linkageType: ''
    returnType: struct commit
    signature: struct commit *check_single_commit(struct rev_info *revs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_tree_entry
      Src: /src/git/line-log.c:511,1
    - Dst: die
      Src: /src/git/line-log.c:512,1
    - Dst: fill_filespec
      Src: /src/git/line-log.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - r
    - commit
    - spec
    argTypes:
    - struct repository*
    - struct commit*
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 505
    functionDepth: 7
    functionLinenumber: 505
    functionLinenumberEnd: 516
    functionName: fill_blob_sha1
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - get_tree_entry
    - die
    - fill_filespec
    linkageType: ''
    returnType: void
    signature: "void fill_blob_sha1(struct repository *r, struct commit *commit,\n\t\t\t
      \  struct diff_filespec *spec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_populate_filespec
      Src: /src/git/line-log.c:528,1
    - Dst: die
      Src: /src/git/line-log.c:529,1
    - Dst: oid_to_hex
      Src: /src/git/line-log.c:529,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/line-log.c:531,1
    - Dst: ALLOC_GROW
      Src: /src/git/line-log.c:536,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/line-log.c:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - r
    - spec
    - lines
    - line_ends
    argTypes:
    - struct repository*
    - struct diff_filespec*
    - long*
    - unsigned long**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 518
    functionDepth: 22
    functionLinenumber: 518
    functionLinenumberEnd: 546
    functionName: fill_line_ends
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - ALLOC_ARRAY
    - diff_populate_filespec
    - REALLOC_ARRAY
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: "void fill_line_ends(struct repository *r,\n\t\t\t   struct diff_filespec
      *spec,\n\t\t\t   long *lines,\n\t\t\t   unsigned long **line_ends)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:557,1
    - Dst: assert
      Src: /src/git/line-log.c:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - line
    argTypes:
    - void*
    - long
    assertStmts:
    - condition: (d && line <= d->lines)
      pos:
        line_end: 556
        line_start: 556
        source_file: /src/git/line-log.c
    - condition: (d->spec && d->spec->data)
      pos:
        line_end: 557
        line_start: 557
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: nth_line
    functionSourceFile: /src/git/line-log.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *nth_line(void *data, long line)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: skip_range_arg
      Src: /src/git/line-log.c:585,1
    - Dst: die
      Src: /src/git/line-log.c:587,1
    - Dst: xstrndup
      Src: /src/git/line-log.c:589,1
    - Dst: prefix_path
      Src: /src/git/line-log.c:592,1
    - Dst: strlen
      Src: /src/git/line-log.c:592,1
    - Dst: alloc_filespec
      Src: /src/git/line-log.c:595,1
    - Dst: fill_blob_sha1
      Src: /src/git/line-log.c:596,1
    - Dst: fill_line_ends
      Src: /src/git/line-log.c:597,1
    - Dst: search_line_log_data
      Src: /src/git/line-log.c:602,1
    - Dst: parse_range_arg
      Src: /src/git/line-log.c:608,1
    - Dst: die
      Src: /src/git/line-log.c:611,1
    - Dst: die
      Src: /src/git/line-log.c:613,1
    - Dst: line_log_data_insert
      Src: /src/git/line-log.c:619,1
    - Dst: free_filespec
      Src: /src/git/line-log.c:621,1
    - Dst: FREE_AND_NULL
      Src: /src/git/line-log.c:622,1
    - Dst: free
      Src: /src/git/line-log.c:623,1
    - Dst: sort_and_merge_range_set
      Src: /src/git/line-log.c:627,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - r
    - commit
    - prefix
    - args
    argTypes:
    - struct repository*
    - struct commit*
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 566
    functionDepth: 23
    functionLinenumber: 566
    functionLinenumberEnd: 630
    functionName: parse_lines
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - sort_and_merge_range_set
    - die
    - skip_range_arg
    - fill_line_ends
    - line_log_data_insert
    - alloc_filespec
    - xstrndup
    - search_line_log_data
    - strlen
    - fill_blob_sha1
    - FREE_AND_NULL
    - free
    - parse_range_arg
    - prefix_path
    - free_filespec
    linkageType: ''
    returnType: struct line_log_data
    signature: "struct line_log_data *\nparse_lines(struct repository *r, struct commit
      *commit,\n\t    const char *prefix, struct string_list *args)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: skip_range_arg
      Src: /src/git/line-log.c:585,1
    - Dst: die
      Src: /src/git/line-log.c:587,1
    - Dst: xstrndup
      Src: /src/git/line-log.c:589,1
    - Dst: prefix_path
      Src: /src/git/line-log.c:592,1
    - Dst: strlen
      Src: /src/git/line-log.c:592,1
    - Dst: alloc_filespec
      Src: /src/git/line-log.c:595,1
    - Dst: fill_blob_sha1
      Src: /src/git/line-log.c:596,1
    - Dst: fill_line_ends
      Src: /src/git/line-log.c:597,1
    - Dst: search_line_log_data
      Src: /src/git/line-log.c:602,1
    - Dst: parse_range_arg
      Src: /src/git/line-log.c:608,1
    - Dst: die
      Src: /src/git/line-log.c:611,1
    - Dst: die
      Src: /src/git/line-log.c:613,1
    - Dst: line_log_data_insert
      Src: /src/git/line-log.c:619,1
    - Dst: free_filespec
      Src: /src/git/line-log.c:621,1
    - Dst: FREE_AND_NULL
      Src: /src/git/line-log.c:622,1
    - Dst: free
      Src: /src/git/line-log.c:623,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 577
    functionDepth: 23
    functionLinenumber: 577
    functionLinenumberEnd: 624
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/line-log.c
    functionUses: 46
    functionsReached:
    - die
    - skip_range_arg
    - fill_line_ends
    - line_log_data_insert
    - alloc_filespec
    - xstrndup
    - search_line_log_data
    - strlen
    - fill_blob_sha1
    - FREE_AND_NULL
    - free
    - parse_range_arg
    - prefix_path
    - free_filespec
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/line-log.c:634,1
    - Dst: assert
      Src: /src/git/line-log.c:636,1
    - Dst: line_log_data_init
      Src: /src/git/line-log.c:637,1
    - Dst: range_set_copy
      Src: /src/git/line-log.c:638,1
    - Dst: xstrdup
      Src: /src/git/line-log.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct line_log_data*
    assertStmts:
    - condition: (r)
      pos:
        line_end: 635
        line_start: 635
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 643
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 643
    functionName: line_log_data_copy_one
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - assert
    - line_log_data_init
    - xmalloc
    - range_set_copy
    - xstrdup
    linkageType: ''
    returnType: struct line_log_data
    signature: struct line_log_data *line_log_data_copy_one(struct line_log_data *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:651,1
    - Dst: line_log_data_copy_one
      Src: /src/git/line-log.c:652,1
    - Dst: line_log_data_copy_one
      Src: /src/git/line-log.c:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct line_log_data*
    assertStmts:
    - condition: (r)
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 662
      start: 645
    functionDepth: 5
    functionLinenumber: 645
    functionLinenumberEnd: 662
    functionName: line_log_data_copy
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - assert
    - line_log_data_copy_one
    linkageType: ''
    returnType: struct line_log_data
    signature: 'struct line_log_data *

      line_log_data_copy(struct line_log_data *r)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/line-log.c:680,1
    - Dst: xmalloc
      Src: /src/git/line-log.c:693,1
    - Dst: line_log_data_init
      Src: /src/git/line-log.c:694,1
    - Dst: xstrdup
      Src: /src/git/line-log.c:695,1
    - Dst: range_set_union
      Src: /src/git/line-log.c:699,1
    - Dst: range_set_copy
      Src: /src/git/line-log.c:701,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct line_log_data*
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 665
    functionDepth: 4
    functionLinenumber: 665
    functionLinenumberEnd: 705
    functionName: line_log_data_merge
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - line_log_data_init
    - xmalloc
    - range_set_copy
    - strcmp
    - range_set_union
    - xstrdup
    linkageType: ''
    returnType: struct line_log_data
    signature: "struct line_log_data *line_log_data_merge(struct line_log_data *a,\n\t\t\t\t\t\t
      struct line_log_data *b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lookup_decoration
      Src: /src/git/line-log.c:713,1
    - Dst: line_log_data_merge
      Src: /src/git/line-log.c:715,1
    - Dst: free_line_log_data
      Src: /src/git/line-log.c:716,1
    - Dst: line_log_data_copy
      Src: /src/git/line-log.c:718,1
    - Dst: add_decoration
      Src: /src/git/line-log.c:721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - revs
    - commit
    - range
    argTypes:
    - struct rev_info*
    - struct commit*
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 707
    functionDepth: 6
    functionLinenumber: 707
    functionLinenumberEnd: 722
    functionName: add_line_range
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - free_line_log_data
    - line_log_data_merge
    - add_decoration
    - lookup_decoration
    - line_log_data_copy
    linkageType: ''
    returnType: void
    signature: "void add_line_range(struct rev_info *revs, struct commit *commit,\n\t\t\t
      \  struct line_log_data *range)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_decoration
      Src: /src/git/line-log.c:727,1
    - Dst: free_line_log_data
      Src: /src/git/line-log.c:730,1
    - Dst: add_decoration
      Src: /src/git/line-log.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 724
    functionDepth: 5
    functionLinenumber: 724
    functionLinenumberEnd: 732
    functionName: clear_commit_line_range
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - free_line_log_data
    - add_decoration
    - lookup_decoration
    linkageType: ''
    returnType: void
    signature: void clear_commit_line_range(struct rev_info *revs, struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_decoration
      Src: /src/git/line-log.c:740,1
    - Dst: range_set_check_invariants
      Src: /src/git/line-log.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - revs
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 746
    functionName: lookup_line_range
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_check_invariants
    - lookup_decoration
    linkageType: ''
    returnType: struct line_log_data
    signature: "struct line_log_data *lookup_line_range(struct rev_info *revs,\n\t\t\t\t\t
      \      struct commit *commit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/line-log.c:755,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - pathspec
    - range
    argTypes:
    - struct pathspec*
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 762
    functionName: same_paths_in_pathspec_and_range
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int same_paths_in_pathspec_and_range(struct pathspec *pathspec,\n\t\t\t\t\t
      \   struct line_log_data *range)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/line-log.c:771,1
    - Dst: parse_pathspec
      Src: /src/git/line-log.c:773,1
    - Dst: strvec_clear
      Src: /src/git/line-log.c:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pathspec
    - range
    argTypes:
    - struct pathspec*
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 764
    functionDepth: 15
    functionLinenumber: 764
    functionLinenumberEnd: 776
    functionName: parse_pathspec_from_ranges
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_pathspec
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: "void parse_pathspec_from_ranges(struct pathspec *pathspec,\n\t\t\t\t
      \      struct line_log_data *range)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_single_commit
      Src: /src/git/line-log.c:783,1
    - Dst: parse_lines
      Src: /src/git/line-log.c:784,1
    - Dst: add_line_range
      Src: /src/git/line-log.c:785,1
    - Dst: parse_pathspec_from_ranges
      Src: /src/git/line-log.c:787,1
    - Dst: free_line_log_data
      Src: /src/git/line-log.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - rev
    - prefix
    - args
    argTypes:
    - struct rev_info*
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 778
    functionDepth: 24
    functionLinenumber: 778
    functionLinenumberEnd: 790
    functionName: line_log_init
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - add_line_range
    - parse_lines
    - free_line_log_data
    - check_single_commit
    - parse_pathspec_from_ranges
    linkageType: ''
    returnType: void
    signature: void line_log_init(struct rev_info *rev, const char *prefix, struct
      string_list *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:795,1
    - Dst: memcpy
      Src: /src/git/line-log.c:796,1
    - Dst: diff_queue_init
      Src: /src/git/line-log.c:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct diff_queue_struct*
    - struct diff_queue_struct*
    assertStmts:
    - condition: (src != dst)
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: move_diff_queue
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - diff_queue_init
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void move_diff_queue(struct diff_queue_struct *dst,\n\t\t\t    struct
      diff_queue_struct *src)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/line-log.c:809,1
    - Dst: diff_q
      Src: /src/git/line-log.c:811,1
    - Dst: diff_free_filepair
      Src: /src/git/line-log.c:813,1
    - Dst: strcmp
      Src: /src/git/line-log.c:817,1
    - Dst: diff_q
      Src: /src/git/line-log.c:821,1
    - Dst: diff_free_filepair
      Src: /src/git/line-log.c:823,1
    - Dst: free
      Src: /src/git/line-log.c:825,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - range
    - keep_deletions
    argTypes:
    - struct line_log_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 800
    functionDepth: 3
    functionLinenumber: 800
    functionLinenumberEnd: 827
    functionName: filter_diffs_for_paths
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - diff_free_filepair
    - diff_q
    - strcmp
    - free
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: void
    signature: void filter_diffs_for_paths(struct line_log_data *range, int keep_deletions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/line-log.c:833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 839
    functionName: diff_might_be_rename
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: int
    signature: int diff_might_be_rename(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:848,1
    - Dst: get_commit_tree_oid
      Src: /src/git/line-log.c:850,1
    - Dst: get_commit_tree_oid
      Src: /src/git/line-log.c:851,1
    - Dst: same_paths_in_pathspec_and_range
      Src: /src/git/line-log.c:854,1
    - Dst: clear_pathspec
      Src: /src/git/line-log.c:855,1
    - Dst: parse_pathspec_from_ranges
      Src: /src/git/line-log.c:856,1
    - Dst: diff_queue_clear
      Src: /src/git/line-log.c:858,1
    - Dst: diff_tree_oid
      Src: /src/git/line-log.c:859,1
    - Dst: diff_might_be_rename
      Src: /src/git/line-log.c:860,1
    - Dst: repo_diff_setup
      Src: /src/git/line-log.c:869,1
    - Dst: diff_setup_done
      Src: /src/git/line-log.c:874,1
    - Dst: diff_queue_clear
      Src: /src/git/line-log.c:877,1
    - Dst: diff_tree_oid
      Src: /src/git/line-log.c:878,1
    - Dst: filter_diffs_for_paths
      Src: /src/git/line-log.c:880,1
    - Dst: diffcore_std
      Src: /src/git/line-log.c:881,1
    - Dst: filter_diffs_for_paths
      Src: /src/git/line-log.c:882,1
    - Dst: diff_free
      Src: /src/git/line-log.c:883,1
    - Dst: move_diff_queue
      Src: /src/git/line-log.c:885,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - range
    - opt
    - queue
    - commit
    - parent
    argTypes:
    - struct line_log_data*
    - struct diff_options*
    - struct diff_queue_struct*
    - struct commit*
    - struct commit*
    assertStmts:
    - condition: (commit)
      pos:
        line_end: 847
        line_start: 847
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 886
      start: 841
    functionDepth: 26
    functionLinenumber: 841
    functionLinenumberEnd: 886
    functionName: queue_diffs
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - clear_pathspec
    - assert
    - diff_free
    - diff_tree_oid
    - get_commit_tree_oid
    - filter_diffs_for_paths
    - diffcore_std
    - diff_queue_clear
    - diff_setup_done
    - repo_diff_setup
    - move_diff_queue
    - parse_pathspec_from_ranges
    - same_paths_in_pathspec_and_range
    - diff_might_be_rename
    linkageType: ''
    returnType: void
    signature: "void queue_diffs(struct line_log_data *range,\n\t\t\tstruct diff_options
      *opt,\n\t\t\tstruct diff_queue_struct *queue,\n\t\t\tstruct commit *commit,
      struct commit *parent)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/line-log.c:903,1
    - Dst: assert
      Src: /src/git/line-log.c:905,1
    - Dst: strcmp
      Src: /src/git/line-log.c:906,1
    - Dst: assert
      Src: /src/git/line-log.c:916,1
    - Dst: diff_populate_filespec
      Src: /src/git/line-log.c:917,1
    - Dst: diff_populate_filespec
      Src: /src/git/line-log.c:922,1
    - Dst: xstrdup
      Src: /src/git/line-log.c:926,1
    - Dst: diff_ranges_init
      Src: /src/git/line-log.c:930,1
    - Dst: collect_diff
      Src: /src/git/line-log.c:931,1
    - Dst: die
      Src: /src/git/line-log.c:932,1
    - Dst: free
      Src: /src/git/line-log.c:935,1
    - Dst: xstrdup
      Src: /src/git/line-log.c:936,1
    - Dst: range_set_init
      Src: /src/git/line-log.c:938,1
    - Dst: range_set_map_across_diff
      Src: /src/git/line-log.c:939,1
    - Dst: range_set_release
      Src: /src/git/line-log.c:940,1
    - Dst: range_set_move
      Src: /src/git/line-log.c:941,1
    - Dst: diff_ranges_release
      Src: /src/git/line-log.c:943,1
    - Dst: free
      Src: /src/git/line-log.c:945,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 4
    argNames:
    - rev
    - pair
    - range
    - diff_out
    argTypes:
    - struct rev_info*
    - struct diff_filepair*
    - struct line_log_data*
    - struct diff_ranges**
    assertStmts:
    - condition: (pair->two->path)
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/git/line-log.c
    - condition: (rg->path)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/git/line-log.c
    - condition: (pair->two->oid_valid)
      pos:
        line_end: 915
        line_start: 915
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 947
      start: 892
    functionDepth: 22
    functionLinenumber: 892
    functionLinenumberEnd: 947
    functionName: process_diff_filepair
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - range_set_init
    - die
    - assert
    - range_set_map_across_diff
    - range_set_release
    - range_set_move
    - diff_populate_filespec
    - diff_ranges_init
    - diff_ranges_release
    - collect_diff
    - strcmp
    - free
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int process_diff_filepair(struct rev_info *rev,\n\t\t\t\t struct diff_filepair
      *pair,\n\t\t\t\t struct line_log_data *range,\n\t\t\t\t struct diff_ranges **diff_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/line-log.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pair
    argTypes:
    - struct diff_filepair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 949
    functionDepth: 7
    functionLinenumber: 949
    functionLinenumberEnd: 957
    functionName: diff_filepair_dup
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct diff_filepair
    signature: struct diff_filepair *diff_filepair_dup(struct diff_filepair *pair)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: line_log_data_copy
      Src: /src/git/line-log.c:966,1
    - Dst: process_diff_filepair
      Src: /src/git/line-log.c:971,1
    - Dst: strcmp
      Src: /src/git/line-log.c:987,1
    - Dst: assert
      Src: /src/git/line-log.c:989,1
    - Dst: diff_free_filepair
      Src: /src/git/line-log.c:991,1
    - Dst: diff_filepair_dup
      Src: /src/git/line-log.c:992,1
    - Dst: diff_ranges_release
      Src: /src/git/line-log.c:993,1
    - Dst: memcpy
      Src: /src/git/line-log.c:994,1
    - Dst: FREE_AND_NULL
      Src: /src/git/line-log.c:995,1
    - Dst: diff_ranges_release
      Src: /src/git/line-log.c:999,1
    - Dst: free
      Src: /src/git/line-log.c:1000,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - range_out
    - rev
    - queue
    - range
    argTypes:
    - struct line_log_data**
    - struct rev_info*
    - struct diff_queue_struct*
    - struct line_log_data*
    assertStmts:
    - condition: (rg)
      pos:
        line_end: 988
        line_start: 988
        source_file: /src/git/line-log.c
    constantsTouched: []
    func_position:
      end: 1005
      start: 959
    functionDepth: 23
    functionLinenumber: 959
    functionLinenumberEnd: 1005
    functionName: process_all_files
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - assert
    - diff_free_filepair
    - diff_ranges_release
    - free
    - memcpy
    - FREE_AND_NULL
    - strcmp
    - process_diff_filepair
    - line_log_data_copy
    - diff_filepair_dup
    linkageType: ''
    returnType: int
    signature: "int process_all_files(struct line_log_data **range_out,\n\t\t\t     struct
      rev_info *rev,\n\t\t\t     struct diff_queue_struct *queue,\n\t\t\t     struct
      line_log_data *range)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: show_log
      Src: /src/git/line-log.c:1009,1
    - Dst: lookup_line_range
      Src: /src/git/line-log.c:1011,1
    - Dst: diff_line_prefix
      Src: /src/git/line-log.c:1013,1
    - Dst: fprintf
      Src: /src/git/line-log.c:1015,1
    - Dst: diff_filepair_dup
      Src: /src/git/line-log.c:1020,1
    - Dst: diff_q
      Src: /src/git/line-log.c:1022,1
    - Dst: diffcore_std
      Src: /src/git/line-log.c:1026,1
    - Dst: diff_flush
      Src: /src/git/line-log.c:1027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - rev
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1007
    functionDepth: 26
    functionLinenumber: 1007
    functionLinenumberEnd: 1030
    functionName: line_log_print
    functionSourceFile: /src/git/line-log.c
    functionUses: 1
    functionsReached:
    - show_log
    - lookup_line_range
    - diff_q
    - diff_flush
    - diffcore_std
    - fprintf
    - diff_line_prefix
    - diff_filepair_dup
    linkageType: ''
    returnType: int
    signature: int line_log_print(struct rev_info *rev, struct commit *commit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_bloom_filter
      Src: /src/git/line-log.c:1044,1
    - Dst: bloom_key_fill
      Src: /src/git/line-log.c:1051,1
    - Dst: strlen
      Src: /src/git/line-log.c:1051,1
    - Dst: bloom_filter_contains
      Src: /src/git/line-log.c:1054,1
    - Dst: bloom_key_clear
      Src: /src/git/line-log.c:1057,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - rev
    - commit
    - range
    argTypes:
    - struct rev_info*
    - struct commit*
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1032
    functionDepth: 2
    functionLinenumber: 1032
    functionLinenumberEnd: 1062
    functionName: bloom_filter_check
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - bloom_key_clear
    - bloom_filter_contains
    - strlen
    - get_bloom_filter
    - bloom_key_fill
    linkageType: ''
    returnType: int
    signature: "int bloom_filter_check(struct rev_info *rev,\n\t\t\t      struct commit
      *commit,\n\t\t\t      struct line_log_data *range)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_diffs
      Src: /src/git/line-log.c:1075,1
    - Dst: process_all_files
      Src: /src/git/line-log.c:1076,1
    - Dst: add_line_range
      Src: /src/git/line-log.c:1079,1
    - Dst: free_line_log_data
      Src: /src/git/line-log.c:1080,1
    - Dst: diff_queue_clear
      Src: /src/git/line-log.c:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - rev
    - commit
    - range
    argTypes:
    - struct rev_info*
    - struct commit*
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1064
    functionDepth: 27
    functionLinenumber: 1064
    functionLinenumberEnd: 1083
    functionName: process_ranges_ordinary_commit
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - add_line_range
    - process_all_files
    - free_line_log_data
    - queue_diffs
    - diff_queue_clear
    linkageType: ''
    returnType: int
    signature: "int process_ranges_ordinary_commit(struct rev_info *rev, struct commit
      *commit,\n\t\t\t\t\t  struct line_log_data *range)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_count
      Src: /src/git/line-log.c:1091,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/line-log.c:1097,1
    - Dst: queue_diffs
      Src: /src/git/line-log.c:1106,1
    - Dst: process_all_files
      Src: /src/git/line-log.c:1108,1
    - Dst: diff_queue_clear
      Src: /src/git/line-log.c:1109,1
    - Dst: add_line_range
      Src: /src/git/line-log.c:1115,1
    - Dst: commit_list_free
      Src: /src/git/line-log.c:1116,1
    - Dst: commit_list_append
      Src: /src/git/line-log.c:1117,1
    - Dst: add_line_range
      Src: /src/git/line-log.c:1131,1
    - Dst: clear_commit_line_range
      Src: /src/git/line-log.c:1136,1
    - Dst: line_log_data_clear
      Src: /src/git/line-log.c:1140,1
    - Dst: free
      Src: /src/git/line-log.c:1141,1
    - Dst: free
      Src: /src/git/line-log.c:1143,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - rev
    - commit
    - range
    argTypes:
    - struct rev_info*
    - struct commit*
    - struct line_log_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1085
    functionDepth: 27
    functionLinenumber: 1085
    functionLinenumberEnd: 1147
    functionName: process_ranges_merge_commit
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - add_line_range
    - commit_list_append
    - process_all_files
    - line_log_data_clear
    - clear_commit_line_range
    - commit_list_free
    - queue_diffs
    - diff_queue_clear
    - CALLOC_ARRAY
    - free
    - commit_list_count
    linkageType: ''
    returnType: int
    signature: "int process_ranges_merge_commit(struct rev_info *rev, struct commit
      *commit,\n\t\t\t\t       struct line_log_data *range)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_line_range
      Src: /src/git/line-log.c:1151,1
    - Dst: bloom_filter_check
      Src: /src/git/line-log.c:1155,1
    - Dst: line_log_data_copy
      Src: /src/git/line-log.c:1156,1
    - Dst: add_line_range
      Src: /src/git/line-log.c:1157,1
    - Dst: clear_commit_line_range
      Src: /src/git/line-log.c:1158,1
    - Dst: process_ranges_merge_commit
      Src: /src/git/line-log.c:1160,1
    - Dst: process_ranges_ordinary_commit
      Src: /src/git/line-log.c:1162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - rev
    - commit
    argTypes:
    - struct rev_info*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1149
    functionDepth: 28
    functionLinenumber: 1149
    functionLinenumberEnd: 1169
    functionName: line_log_process_ranges_arbitrary_commit
    functionSourceFile: /src/git/line-log.c
    functionUses: 1
    functionsReached:
    - lookup_line_range
    - add_line_range
    - line_log_data_copy
    - clear_commit_line_range
    - process_ranges_merge_commit
    - bloom_filter_check
    - process_ranges_ordinary_commit
    linkageType: ''
    returnType: int
    signature: int line_log_process_ranges_arbitrary_commit(struct rev_info *rev,
      struct commit *commit)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - UNUSED
    - pp
    argTypes:
    - struct rev_info*
    - struct commit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1186
    functionName: line_log_rewrite_one
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum rewrite_result
    signature: "enum rewrite_result line_log_rewrite_one(struct rev_info *rev UNUSED,\n\t\t\t\t\t\tstruct
      commit **pp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: line_log_process_ranges_arbitrary_commit
      Src: /src/git/line-log.c:1197,1
    - Dst: free
      Src: /src/git/line-log.c:1203,1
    - Dst: rewrite_parents
      Src: /src/git/line-log.c:1208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - rev
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1188
    functionDepth: 29
    functionLinenumber: 1188
    functionLinenumberEnd: 1213
    functionName: line_log_filter
    functionSourceFile: /src/git/line-log.c
    functionUses: 1
    functionsReached:
    - line_log_process_ranges_arbitrary_commit
    - rewrite_parents
    - free
    linkageType: ''
    returnType: int
    signature: int line_log_filter(struct rev_info *rev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_line_log_data
      Src: /src/git/line-log.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1215
    functionDepth: 5
    functionLinenumber: 1215
    functionLinenumberEnd: 1218
    functionName: free_void_line_log_data
    functionSourceFile: /src/git/line-log.c
    functionUses: 0
    functionsReached:
    - free_line_log_data
    linkageType: ''
    returnType: void
    signature: void free_void_line_log_data(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_decoration
      Src: /src/git/line-log.c:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rev
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1220
    functionDepth: 2
    functionLinenumber: 1220
    functionLinenumberEnd: 1223
    functionName: line_log_free
    functionSourceFile: /src/git/line-log.c
    functionUses: 1
    functionsReached:
    - clear_decoration
    linkageType: ''
    returnType: void
    signature: void line_log_free(struct rev_info *rev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:28,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: compare_commits_by_gen
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - commit_graph_generation
    linkageType: ''
    returnType: int
    signature: int compare_commits_by_gen(const void *_a, const void *_b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct prio_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: queue_has_nonstale
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int queue_has_nonstale(struct prio_queue *queue)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: corrected_commit_dates_enabled
      Src: /src/git/commit-reach.c:65,1
    - Dst: commit_list_append
      Src: /src/git/commit-reach.c:70,1
    - Dst: prio_queue_put
      Src: /src/git/commit-reach.c:73,1
    - Dst: prio_queue_put
      Src: /src/git/commit-reach.c:77,1
    - Dst: queue_has_nonstale
      Src: /src/git/commit-reach.c:80,1
    - Dst: prio_queue_get
      Src: /src/git/commit-reach.c:81,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:84,1
    - Dst: BUG
      Src: /src/git/commit-reach.c:87,1
    - Dst: oid_to_hex
      Src: /src/git/commit-reach.c:89,1
    - Dst: commit_list_append
      Src: /src/git/commit-reach.c:99,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:118,1
    - Dst: clear_prio_queue
      Src: /src/git/commit-reach.c:119,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:120,1
    - Dst: error
      Src: /src/git/commit-reach.c:131,1
    - Dst: _
      Src: /src/git/commit-reach.c:131,1
    - Dst: oid_to_hex
      Src: /src/git/commit-reach.c:132,1
    - Dst: prio_queue_put
      Src: /src/git/commit-reach.c:135,1
    - Dst: clear_prio_queue
      Src: /src/git/commit-reach.c:139,1
    - Dst: commit_list_sort_by_date
      Src: /src/git/commit-reach.c:140,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 7
    argNames:
    - r
    - one
    - n
    - twos
    - min_generation
    - mb_flags
    - result
    argTypes:
    - struct repository*
    - struct commit*
    - int
    - struct commit**
    - timestamp_t
    - enum merge_base_flags
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 53
    functionDepth: 20
    functionLinenumber: 53
    functionLinenumberEnd: 142
    functionName: paint_down_to_common
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - prio_queue_put
    - commit_list_append
    - commit_graph_generation
    - prio_queue_get
    - repo_parse_commit
    - queue_has_nonstale
    - commit_list_free
    - _
    - clear_prio_queue
    - BUG
    - commit_list_sort_by_date
    - corrected_commit_dates_enabled
    linkageType: ''
    returnType: int
    signature: "int paint_down_to_common(struct repository *r,\n\t\t\t\tstruct commit
      *one, int n,\n\t\t\t\tstruct commit **twos,\n\t\t\t\ttimestamp_t min_generation,\n\t\t\t\tenum
      merge_base_flags mb_flags,\n\t\t\t\tstruct commit_list **result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:159,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:166,1
    - Dst: error
      Src: /src/git/commit-reach.c:167,1
    - Dst: _
      Src: /src/git/commit-reach.c:167,1
    - Dst: oid_to_hex
      Src: /src/git/commit-reach.c:168,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:172,1
    - Dst: error
      Src: /src/git/commit-reach.c:173,1
    - Dst: _
      Src: /src/git/commit-reach.c:173,1
    - Dst: oid_to_hex
      Src: /src/git/commit-reach.c:174,1
    - Dst: paint_down_to_common
      Src: /src/git/commit-reach.c:177,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:178,1
    - Dst: pop_commit
      Src: /src/git/commit-reach.c:183,1
    - Dst: commit_list_append
      Src: /src/git/commit-reach.c:185,1
    - Dst: commit_list_sort_by_date
      Src: /src/git/commit-reach.c:187,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 6
    argNames:
    - r
    - one
    - n
    - twos
    - mb_flags
    - result
    argTypes:
    - struct repository*
    - struct commit*
    - int
    - struct commit**
    - enum merge_base_flags
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 144
    functionDepth: 21
    functionLinenumber: 144
    functionLinenumberEnd: 189
    functionName: merge_bases_many
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 3
    functionsReached:
    - error
    - oid_to_hex
    - paint_down_to_common
    - commit_list_append
    - repo_parse_commit
    - pop_commit
    - commit_list_free
    - _
    - commit_list_insert
    - commit_list_sort_by_date
    linkageType: ''
    returnType: int
    signature: "int merge_bases_many(struct repository *r,\n\t\t\t    struct commit
      *one, int n,\n\t\t\t    struct commit **twos,\n\t\t\t    enum merge_base_flags
      mb_flags,\n\t\t\t    struct commit_list **result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:198,1
    - Dst: repo_get_merge_bases
      Src: /src/git/commit-reach.c:205,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:207,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:208,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - in
    - result
    argTypes:
    - struct commit_list*
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 223
    functionName: get_octopus_merge_bases
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - commit_list_free
    - commit_list_insert
    - repo_get_merge_bases
    linkageType: ''
    returnType: int
    signature: int get_octopus_merge_bases(struct commit_list *in, struct commit_list
      **result)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit-reach.c:234,1
    - Dst: xcalloc
      Src: /src/git/commit-reach.c:235,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/commit-reach.c:236,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:239,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:242,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:253,1
    - Dst: paint_down_to_common
      Src: /src/git/commit-reach.c:257,1
    - Dst: clear_commit_marks
      Src: /src/git/commit-reach.c:260,1
    - Dst: clear_commit_marks_many
      Src: /src/git/commit-reach.c:261,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:262,1
    - Dst: free
      Src: /src/git/commit-reach.c:263,1
    - Dst: free
      Src: /src/git/commit-reach.c:264,1
    - Dst: free
      Src: /src/git/commit-reach.c:265,1
    - Dst: clear_commit_marks
      Src: /src/git/commit-reach.c:273,1
    - Dst: clear_commit_marks_many
      Src: /src/git/commit-reach.c:274,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:275,1
    - Dst: COPY_ARRAY
      Src: /src/git/commit-reach.c:279,1
    - Dst: free
      Src: /src/git/commit-reach.c:284,1
    - Dst: free
      Src: /src/git/commit-reach.c:285,1
    - Dst: free
      Src: /src/git/commit-reach.c:286,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - r
    - array
    - cnt
    - dedup_cnt
    argTypes:
    - struct repository*
    - struct commit**
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 225
    functionDepth: 21
    functionLinenumber: 225
    functionLinenumberEnd: 288
    functionName: remove_redundant_no_gen
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - paint_down_to_common
    - clear_commit_marks_many
    - commit_graph_generation
    - repo_parse_commit
    - ALLOC_ARRAY
    - clear_commit_marks
    - commit_list_free
    - xcalloc
    - CALLOC_ARRAY
    - free
    - COPY_ARRAY
    linkageType: ''
    returnType: int
    signature: "int remove_redundant_no_gen(struct repository *r,\n\t\t\t\t   struct
      commit **array,\n\t\t\t\t   size_t cnt, size_t *dedup_cnt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DUP_ARRAY
      Src: /src/git/commit-reach.c:307,1
    - Dst: QSORT
      Src: /src/git/commit-reach.c:308,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:309,1
    - Dst: commit_stack_grow
      Src: /src/git/commit-reach.c:311,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:317,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:322,1
    - Dst: commit_stack_push
      Src: /src/git/commit-reach.c:325,1
    - Dst: QSORT
      Src: /src/git/commit-reach.c:331,1
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:347,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:354,1
    - Dst: oideq
      Src: /src/git/commit-reach.c:360,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:364,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:368,1
    - Dst: pop_commit
      Src: /src/git/commit-reach.c:369,1
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:377,1
    - Dst: pop_commit
      Src: /src/git/commit-reach.c:385,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:387,1
    - Dst: free
      Src: /src/git/commit-reach.c:389,1
    - Dst: clear_commit_marks_many
      Src: /src/git/commit-reach.c:402,1
    - Dst: commit_stack_clear
      Src: /src/git/commit-reach.c:403,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 4
    argNames:
    - r
    - array
    - cnt
    - dedup_cnt
    argTypes:
    - struct repository*
    - struct commit**
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 290
    functionDepth: 20
    functionLinenumber: 290
    functionLinenumberEnd: 407
    functionName: remove_redundant_with_gen
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - clear_commit_marks_many
    - commit_graph_generation
    - repo_parse_commit
    - commit_stack_grow
    - commit_stack_push
    - pop_commit
    - commit_list_free
    - QSORT
    - commit_stack_clear
    - free
    - DUP_ARRAY
    - commit_list_insert
    - oideq
    linkageType: ''
    returnType: int
    signature: "int remove_redundant_with_gen(struct repository *r,\n\t\t\t\t     struct
      commit **array, size_t cnt,\n\t\t\t\t     size_t *dedup_cnt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generation_numbers_enabled
      Src: /src/git/commit-reach.c:419,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:425,1
    - Dst: remove_redundant_with_gen
      Src: /src/git/commit-reach.c:426,1
    - Dst: remove_redundant_no_gen
      Src: /src/git/commit-reach.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - r
    - array
    - cnt
    - dedup_cnt
    argTypes:
    - struct repository*
    - struct commit**
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 409
    functionDepth: 22
    functionLinenumber: 409
    functionLinenumberEnd: 431
    functionName: remove_redundant
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - remove_redundant_no_gen
    - remove_redundant_with_gen
    - generation_numbers_enabled
    - commit_graph_generation
    linkageType: ''
    returnType: int
    signature: "int remove_redundant(struct repository *r, struct commit **array,\n\t\t\t
      \   size_t cnt, size_t *dedup_cnt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: merge_bases_many
      Src: /src/git/commit-reach.c:446,1
    - Dst: clear_commit_marks
      Src: /src/git/commit-reach.c:454,1
    - Dst: clear_commit_marks_many
      Src: /src/git/commit-reach.c:455,1
    - Dst: commit_list_count
      Src: /src/git/commit-reach.c:461,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit-reach.c:462,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:465,1
    - Dst: clear_commit_marks
      Src: /src/git/commit-reach.c:468,1
    - Dst: clear_commit_marks_many
      Src: /src/git/commit-reach.c:469,1
    - Dst: remove_redundant
      Src: /src/git/commit-reach.c:471,1
    - Dst: free
      Src: /src/git/commit-reach.c:473,1
    - Dst: commit_list_append
      Src: /src/git/commit-reach.c:477,1
    - Dst: commit_list_sort_by_date
      Src: /src/git/commit-reach.c:478,1
    - Dst: free
      Src: /src/git/commit-reach.c:479,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 7
    argNames:
    - r
    - one
    - n
    - twos
    - cleanup
    - mb_flags
    - result
    argTypes:
    - struct repository*
    - struct commit*
    - size_t
    - struct commit**
    - int
    - enum merge_base_flags
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 433
    functionDepth: 23
    functionLinenumber: 433
    functionLinenumberEnd: 481
    functionName: get_merge_bases_many_0
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - clear_commit_marks_many
    - commit_list_append
    - clear_commit_marks
    - remove_redundant
    - merge_bases_many
    - commit_list_free
    - CALLOC_ARRAY
    - free
    - commit_list_sort_by_date
    - commit_list_count
    linkageType: ''
    returnType: int
    signature: "int get_merge_bases_many_0(struct repository *r,\n\t\t\t\t  struct
      commit *one,\n\t\t\t\t  size_t n,\n\t\t\t\t  struct commit **twos,\n\t\t\t\t
      \ int cleanup,\n\t\t\t\t  enum merge_base_flags mb_flags,\n\t\t\t\t  struct
      commit_list **result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_merge_bases_many_0
      Src: /src/git/commit-reach.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - r
    - one
    - n
    - twos
    - result
    argTypes:
    - struct repository*
    - struct commit*
    - size_t
    - struct commit**
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 483
    functionDepth: 24
    functionLinenumber: 483
    functionLinenumberEnd: 491
    functionName: repo_get_merge_bases_many
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 2
    functionsReached:
    - get_merge_bases_many_0
    linkageType: ''
    returnType: int
    signature: "int repo_get_merge_bases_many(struct repository *r,\n\t\t\t      struct
      commit *one,\n\t\t\t      size_t n,\n\t\t\t      struct commit **twos,\n\t\t\t
      \     struct commit_list **result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_merge_bases_many_0
      Src: /src/git/commit-reach.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - r
    - one
    - n
    - twos
    - mb_flags
    - result
    argTypes:
    - struct repository*
    - struct commit*
    - size_t
    - struct commit**
    - enum merge_base_flags
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 493
    functionDepth: 24
    functionLinenumber: 493
    functionLinenumberEnd: 501
    functionName: repo_get_merge_bases_many_dirty
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - get_merge_bases_many_0
    linkageType: ''
    returnType: int
    signature: "int repo_get_merge_bases_many_dirty(struct repository *r,\n\t\t\t\t
      \   struct commit *one,\n\t\t\t\t    size_t n,\n\t\t\t\t    struct commit **twos,\n\t\t\t\t
      \   enum merge_base_flags mb_flags,\n\t\t\t\t    struct commit_list **result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_merge_bases_many_0
      Src: /src/git/commit-reach.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - one
    - two
    - result
    argTypes:
    - struct repository*
    - struct commit*
    - struct commit*
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 503
    functionDepth: 24
    functionLinenumber: 503
    functionLinenumberEnd: 510
    functionName: repo_get_merge_bases
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 9
    functionsReached:
    - get_merge_bases_many_0
    linkageType: ''
    returnType: int
    signature: "int repo_get_merge_bases(struct repository *r,\n\t\t\t struct commit
      *one,\n\t\t\t struct commit *two,\n\t\t\t struct commit_list **result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: generation_numbers_enabled
      Src: /src/git/commit-reach.c:522,1
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:525,1
    - Dst: can_all_from_reach
      Src: /src/git/commit-reach.c:526,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:527,1
    - Dst: repo_in_merge_bases_many
      Src: /src/git/commit-reach.c:536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - r
    - commit
    - with_commit
    argTypes:
    - struct repository*
    - struct commit*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 515
    functionDepth: 15
    functionLinenumber: 515
    functionLinenumberEnd: 542
    functionName: repo_is_descendant_of
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - can_all_from_reach
    - generation_numbers_enabled
    - commit_list_free
    - repo_in_merge_bases_many
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: "int repo_is_descendant_of(struct repository *r,\n\t\t\t  struct commit
      *commit,\n\t\t\t  struct commit_list *with_commit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:559,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:562,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:565,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:570,1
    - Dst: paint_down_to_common
      Src: /src/git/commit-reach.c:574,1
    - Dst: clear_commit_marks
      Src: /src/git/commit-reach.c:580,1
    - Dst: clear_commit_marks_many
      Src: /src/git/commit-reach.c:581,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:582,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - r
    - commit
    - nr_reference
    - reference
    - ignore_missing_commits
    argTypes:
    - struct repository*
    - struct commit*
    - int
    - struct commit**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 547
    functionDepth: 21
    functionLinenumber: 547
    functionLinenumberEnd: 584
    functionName: repo_in_merge_bases_many
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 2
    functionsReached:
    - paint_down_to_common
    - clear_commit_marks_many
    - commit_graph_generation
    - repo_parse_commit
    - clear_commit_marks
    - commit_list_free
    linkageType: ''
    returnType: int
    signature: "int repo_in_merge_bases_many(struct repository *r, struct commit *commit,\n\t\t\t
      \    int nr_reference, struct commit **reference,\n\t\t\t     int ignore_missing_commits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_append
      Src: /src/git/commit-reach.c:597,1
    - Dst: repo_is_descendant_of
      Src: /src/git/commit-reach.c:598,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - r
    - commit
    - reference
    argTypes:
    - struct repository*
    - struct commit*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 589
    functionDepth: 16
    functionLinenumber: 589
    functionLinenumberEnd: 602
    functionName: repo_in_merge_bases
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 3
    functionsReached:
    - commit_list_free
    - repo_is_descendant_of
    - commit_list_append
    linkageType: ''
    returnType: int
    signature: "int repo_in_merge_bases(struct repository *r,\n\t\t\tstruct commit
      *commit,\n\t\t\tstruct commit *reference)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit-reach.c:624,1
    - Dst: remove_redundant
      Src: /src/git/commit-reach.c:632,1
    - Dst: free
      Src: /src/git/commit-reach.c:634,1
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:639,1
    - Dst: free
      Src: /src/git/commit-reach.c:640,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - heads
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 604
    functionDepth: 23
    functionLinenumber: 604
    functionLinenumberEnd: 642
    functionName: reduce_heads
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 1
    functionsReached:
    - free
    - remove_redundant
    - commit_list_insert
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct commit_list
    signature: struct commit_list *reduce_heads(struct commit_list *heads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce_heads
      Src: /src/git/commit-reach.c:646,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - heads
    argTypes:
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 644
    functionDepth: 24
    functionLinenumber: 644
    functionLinenumberEnd: 649
    functionName: reduce_heads_replace
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 1
    functionsReached:
    - reduce_heads
    - commit_list_free
    linkageType: ''
    returnType: void
    signature: void reduce_heads_replace(struct commit_list **heads)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deref_tag
      Src: /src/git/commit-reach.c:662,1
    - Dst: parse_object
      Src: /src/git/commit-reach.c:662,1
    - Dst: deref_tag
      Src: /src/git/commit-reach.c:668,1
    - Dst: parse_object
      Src: /src/git/commit-reach.c:668,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:674,1
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:677,1
    - Dst: repo_is_descendant_of
      Src: /src/git/commit-reach.c:678,1
    - Dst: exit
      Src: /src/git/commit-reach.c:681,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:682,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - new_oid
    - old_oid
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 651
    functionDepth: 20
    functionLinenumber: 651
    functionLinenumberEnd: 684
    functionName: ref_newer
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 2
    functionsReached:
    - deref_tag
    - repo_parse_commit
    - exit
    - parse_object
    - commit_list_free
    - repo_is_descendant_of
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: int ref_newer(const struct object_id *new_oid, const struct object_id
      *old_oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/commit-reach.c:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - want
    - c
    argTypes:
    - struct commit_list*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 707
    functionName: in_commit_list
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - oideq
    linkageType: ''
    returnType: int
    signature: int in_commit_list(const struct commit_list *want, struct commit *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: contains_cache_at
      Src: /src/git/commit-reach.c:718,1
    - Dst: in_commit_list
      Src: /src/git/commit-reach.c:725,1
    - Dst: parse_commit_or_die
      Src: /src/git/commit-reach.c:731,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - candidate
    - want
    - cache
    - cutoff
    argTypes:
    - struct commit*
    - struct commit_list*
    - struct contains_cache*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 713
    functionDepth: 4
    functionLinenumber: 713
    functionLinenumberEnd: 737
    functionName: contains_test
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - contains_cache_at
    - parse_commit_or_die
    - commit_graph_generation
    - in_commit_list
    linkageType: ''
    returnType: enum contains_result
    signature: "enum contains_result contains_test(struct commit *candidate,\n\t\t\t\t\t
      \ const struct commit_list *want,\n\t\t\t\t\t  struct contains_cache *cache,\n\t\t\t\t\t
      \ timestamp_t cutoff)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/commit-reach.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - candidate
    - contains_stack
    argTypes:
    - struct commit*
    - struct contains_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 744
    functionName: push_to_contains_stack
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void push_to_contains_stack(struct commit *candidate, struct contains_stack
      *contains_stack)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: load_commit_graph_info
      Src: /src/git/commit-reach.c:758,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:759,1
    - Dst: contains_test
      Src: /src/git/commit-reach.c:764,1
    - Dst: push_to_contains_stack
      Src: /src/git/commit-reach.c:768,1
    - Dst: contains_cache_at
      Src: /src/git/commit-reach.c:775,1
    - Dst: contains_test
      Src: /src/git/commit-reach.c:782,1
    - Dst: contains_cache_at
      Src: /src/git/commit-reach.c:784,1
    - Dst: push_to_contains_stack
      Src: /src/git/commit-reach.c:791,1
    - Dst: free
      Src: /src/git/commit-reach.c:795,1
    - Dst: contains_test
      Src: /src/git/commit-reach.c:796,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - candidate
    - want
    - cache
    argTypes:
    - struct commit*
    - struct commit_list*
    - struct contains_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 746
    functionDepth: 16
    functionLinenumber: 746
    functionLinenumberEnd: 797
    functionName: contains_tag_algo
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - contains_cache_at
    - contains_test
    - commit_graph_generation
    - load_commit_graph_info
    - free
    - push_to_contains_stack
    linkageType: ''
    returnType: enum contains_result
    signature: "enum contains_result contains_tag_algo(struct commit *candidate,\n\t\t\t\t\t
      \     const struct commit_list *want,\n\t\t\t\t\t      struct contains_cache
      *cache)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains_tag_algo
      Src: /src/git/commit-reach.c:803,1
    - Dst: repo_is_descendant_of
      Src: /src/git/commit-reach.c:804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - filter
    - commit
    - list
    - cache
    argTypes:
    - struct ref_filter*
    - struct commit*
    - struct commit_list*
    - struct contains_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 17
    functionLinenumber: 799
    functionLinenumberEnd: 805
    functionName: commit_contains
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 1
    functionsReached:
    - contains_tag_algo
    - repo_is_descendant_of
    linkageType: ''
    returnType: int
    signature: "int commit_contains(struct ref_filter *filter, struct commit *commit,\n\t\t
      \   struct commit_list *list, struct contains_cache *cache)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/commit-reach.c:818,1
    - Dst: deref_tag
      Src: /src/git/commit-reach.c:826,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:840,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:841,1
    - Dst: QSORT
      Src: /src/git/commit-reach.c:849,1
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:856,1
    - Dst: pop_commit
      Src: /src/git/commit-reach.c:862,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:875,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:877,1
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:880,1
    - Dst: pop_commit
      Src: /src/git/commit-reach.c:886,1
    - Dst: clear_commit_marks_many
      Src: /src/git/commit-reach.c:896,1
    - Dst: free
      Src: /src/git/commit-reach.c:897,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 59
    argCount: 5
    argNames:
    - from
    - with_flag
    - assign_flag
    - min_commit_date
    - min_generation
    argTypes:
    - struct object_array*
    - unsigned int
    - unsigned int
    - timestamp_t
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 807
    functionDepth: 20
    functionLinenumber: 807
    functionLinenumberEnd: 907
    functionName: can_all_from_reach_with_flag
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 2
    functionsReached:
    - clear_commit_marks_many
    - commit_graph_generation
    - deref_tag
    - ALLOC_ARRAY
    - repo_parse_commit
    - pop_commit
    - QSORT
    - free
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: "int can_all_from_reach_with_flag(struct object_array *from,\n\t\t\t\t
      unsigned int with_flag,\n\t\t\t\t unsigned int assign_flag,\n\t\t\t\t timestamp_t
      min_commit_date,\n\t\t\t\t timestamp_t min_generation)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: add_object_array
      Src: /src/git/commit-reach.c:919,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:921,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:926,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:935,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:940,1
    - Dst: can_all_from_reach_with_flag
      Src: /src/git/commit-reach.c:950,1
    - Dst: clear_commit_marks
      Src: /src/git/commit-reach.c:954,1
    - Dst: clear_commit_marks
      Src: /src/git/commit-reach.c:959,1
    - Dst: object_array_clear
      Src: /src/git/commit-reach.c:963,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - from
    - to
    - cutoff_by_min_date
    argTypes:
    - struct commit_list*
    - struct commit_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 909
    functionDepth: 21
    functionLinenumber: 909
    functionLinenumberEnd: 965
    functionName: can_all_from_reach
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 1
    functionsReached:
    - can_all_from_reach_with_flag
    - commit_graph_generation
    - object_array_clear
    - repo_parse_commit
    - add_object_array
    - clear_commit_marks
    linkageType: ''
    returnType: int
    signature: "int can_all_from_reach(struct commit_list *from, struct commit_list
      *to,\n\t\t       int cutoff_by_min_date)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:985,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:986,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:1000,1
    - Dst: prio_queue_put
      Src: /src/git/commit-reach.c:1002,1
    - Dst: prio_queue_get
      Src: /src/git/commit-reach.c:1006,1
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:1012,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:1019,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:1021,1
    - Dst: prio_queue_put
      Src: /src/git/commit-reach.c:1028,1
    - Dst: clear_prio_queue
      Src: /src/git/commit-reach.c:1032,1
    - Dst: clear_commit_marks_many
      Src: /src/git/commit-reach.c:1034,1
    - Dst: clear_commit_marks_many
      Src: /src/git/commit-reach.c:1035,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 5
    argNames:
    - from
    - nr_from
    - to
    - nr_to
    - reachable_flag
    argTypes:
    - struct commit**
    - size_t
    - struct commit**
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 967
    functionDepth: 20
    functionLinenumber: 967
    functionLinenumberEnd: 1038
    functionName: get_reachable_subset
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 1
    functionsReached:
    - prio_queue_put
    - commit_graph_generation
    - clear_commit_marks_many
    - prio_queue_get
    - repo_parse_commit
    - commit_list_insert
    - clear_prio_queue
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *get_reachable_subset(struct commit **from, size_t
      nr_from,\n\t\t\t\t\t struct commit **to, size_t nr_to,\n\t\t\t\t\t unsigned
      int reachable_flag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_put
      Src: /src/git/commit-reach.c:1047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - queue
    - c
    argTypes:
    - struct prio_queue*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1049
    functionName: insert_no_dup
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - prio_queue_put
    linkageType: ''
    returnType: void
    signature: void insert_no_dup(struct prio_queue *queue, struct commit *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bit_arrays_at
      Src: /src/git/commit-reach.c:1053,1
    - Dst: bitmap_word_alloc
      Src: /src/git/commit-reach.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - width
    argTypes:
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1057
    functionName: get_bit_array
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - bit_arrays_at
    - bitmap_word_alloc
    linkageType: ''
    returnType: struct bitmap
    signature: struct bitmap *get_bit_array(struct commit *c, int width)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bit_arrays_at
      Src: /src/git/commit-reach.c:1061,1
    - Dst: bitmap_free
      Src: /src/git/commit-reach.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1066
    functionName: free_bit_array
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached:
    - bit_arrays_at
    - bitmap_free
    linkageType: ''
    returnType: void
    signature: void free_bit_array(struct commit *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/git/commit-reach.c:1073,1
    - Dst: ensure_generations_valid
      Src: /src/git/commit-reach.c:1083,1
    - Dst: init_bit_arrays
      Src: /src/git/commit-reach.c:1085,1
    - Dst: get_bit_array
      Src: /src/git/commit-reach.c:1089,1
    - Dst: bitmap_set
      Src: /src/git/commit-reach.c:1091,1
    - Dst: insert_no_dup
      Src: /src/git/commit-reach.c:1092,1
    - Dst: queue_has_nonstale
      Src: /src/git/commit-reach.c:1095,1
    - Dst: prio_queue_get
      Src: /src/git/commit-reach.c:1096,1
    - Dst: get_bit_array
      Src: /src/git/commit-reach.c:1098,1
    - Dst: bitmap_get
      Src: /src/git/commit-reach.c:1101,1
    - Dst: bitmap_get
      Src: /src/git/commit-reach.c:1102,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:1115,1
    - Dst: get_bit_array
      Src: /src/git/commit-reach.c:1117,1
    - Dst: bitmap_or
      Src: /src/git/commit-reach.c:1118,1
    - Dst: bitmap_popcount
      Src: /src/git/commit-reach.c:1127,1
    - Dst: insert_no_dup
      Src: /src/git/commit-reach.c:1130,1
    - Dst: free_bit_array
      Src: /src/git/commit-reach.c:1133,1
    - Dst: repo_clear_commit_marks
      Src: /src/git/commit-reach.c:1137,1
    - Dst: free_bit_array
      Src: /src/git/commit-reach.c:1139,1
    - Dst: clear_bit_arrays
      Src: /src/git/commit-reach.c:1140,1
    - Dst: clear_prio_queue
      Src: /src/git/commit-reach.c:1141,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - r
    - commits
    - commits_nr
    - counts
    - counts_nr
    argTypes:
    - struct repository*
    - struct commit**
    - size_t
    - struct ahead_behind_count*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1068
    functionDepth: 21
    functionLinenumber: 1068
    functionLinenumberEnd: 1142
    functionName: ahead_behind
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 2
    functionsReached:
    - free_bit_array
    - DIV_ROUND_UP
    - get_bit_array
    - prio_queue_get
    - repo_parse_commit
    - queue_has_nonstale
    - bitmap_set
    - init_bit_arrays
    - bitmap_popcount
    - insert_no_dup
    - repo_clear_commit_marks
    - ensure_generations_valid
    - clear_bit_arrays
    - bitmap_get
    - bitmap_or
    - clear_prio_queue
    linkageType: ''
    returnType: void
    signature: "void ahead_behind(struct repository *r,\n\t\t  struct commit **commits,
      size_t commits_nr,\n\t\t  struct ahead_behind_count *counts, size_t counts_nr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1160
    functionName: compare_commit_and_index_by_generation
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_commit_and_index_by_generation(const void *va, const void
      *vb)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit-reach.c:1182,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:1187,1
    - Dst: QSORT
      Src: /src/git/commit-reach.c:1191,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:1195,1
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:1196,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:1204,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:1231,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:1238,1
    - Dst: commit_list_insert
      Src: /src/git/commit-reach.c:1244,1
    - Dst: pop_commit
      Src: /src/git/commit-reach.c:1249,1
    - Dst: free
      Src: /src/git/commit-reach.c:1253,1
    - Dst: repo_clear_commit_marks
      Src: /src/git/commit-reach.c:1254,1
    - Dst: commit_list_free
      Src: /src/git/commit-reach.c:1255,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 5
    argNames:
    - r
    - bases
    - tips
    - tips_nr
    - mark
    argTypes:
    - struct repository*
    - struct commit_list*
    - struct commit**
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1162
    functionDepth: 20
    functionLinenumber: 1162
    functionLinenumberEnd: 1256
    functionName: tips_reachable_from_bases
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 1
    functionsReached:
    - commit_graph_generation
    - repo_parse_commit
    - pop_commit
    - repo_clear_commit_marks
    - QSORT
    - commit_list_free
    - CALLOC_ARRAY
    - free
    - commit_list_insert
    linkageType: ''
    returnType: void
    signature: "void tips_reachable_from_bases(struct repository *r,\n\t\t\t       struct
      commit_list *bases,\n\t\t\t       struct commit **tips, size_t tips_nr,\n\t\t\t
      \      int mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1265
    functionName: get_best
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_best(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1266
    functionName: set_best
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_best(c,v)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:1280,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:1281,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:1287,1
    - Dst: commit_graph_generation
      Src: /src/git/commit-reach.c:1288,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/commit-reach.c:1296,1
    - Dst: COPY_ARRAY
      Src: /src/git/commit-reach.c:1297,1
    - Dst: ensure_generations_valid
      Src: /src/git/commit-reach.c:1299,1
    - Dst: free
      Src: /src/git/commit-reach.c:1300,1
    - Dst: init_best_branch_base
      Src: /src/git/commit-reach.c:1304,1
    - Dst: set_best
      Src: /src/git/commit-reach.c:1305,1
    - Dst: prio_queue_put
      Src: /src/git/commit-reach.c:1306,1
    - Dst: get_best
      Src: /src/git/commit-reach.c:1310,1
    - Dst: set_best
      Src: /src/git/commit-reach.c:1322,1
    - Dst: prio_queue_put
      Src: /src/git/commit-reach.c:1323,1
    - Dst: prio_queue_get
      Src: /src/git/commit-reach.c:1327,1
    - Dst: get_best
      Src: /src/git/commit-reach.c:1328,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:1336,1
    - Dst: repo_parse_commit
      Src: /src/git/commit-reach.c:1341,1
    - Dst: get_best
      Src: /src/git/commit-reach.c:1342,1
    - Dst: set_best
      Src: /src/git/commit-reach.c:1346,1
    - Dst: prio_queue_put
      Src: /src/git/commit-reach.c:1347,1
    - Dst: set_best
      Src: /src/git/commit-reach.c:1354,1
    - Dst: set_best
      Src: /src/git/commit-reach.c:1374,1
    - Dst: clear_best_branch_base
      Src: /src/git/commit-reach.c:1379,1
    - Dst: clear_prio_queue
      Src: /src/git/commit-reach.c:1380,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 4
    argNames:
    - r
    - tip
    - bases
    - bases_nr
    argTypes:
    - struct repository*
    - struct commit*
    - struct commit**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1267
    functionDepth: 21
    functionLinenumber: 1267
    functionLinenumberEnd: 1382
    functionName: get_branch_base_for_tip
    functionSourceFile: /src/git/commit-reach.c
    functionUses: 1
    functionsReached:
    - prio_queue_put
    - commit_graph_generation
    - prio_queue_get
    - repo_parse_commit
    - clear_best_branch_base
    - ensure_generations_valid
    - set_best
    - init_best_branch_base
    - get_best
    - CALLOC_ARRAY
    - free
    - COPY_ARRAY
    - clear_prio_queue
    linkageType: ''
    returnType: int
    signature: "int get_branch_base_for_tip(struct repository *r,\n\t\t\t    struct
      commit *tip,\n\t\t\t    struct commit **bases,\n\t\t\t    size_t bases_nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: DIFF_FILE_VALID
    functionSourceFile: /src/git/diffcore.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF_FILE_VALID(spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: DIFF_PAIR_UNMERGED
    functionSourceFile: /src/git/diffcore.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF_PAIR_UNMERGED(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: DIFF_PAIR_RENAME
    functionSourceFile: /src/git/diffcore.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF_PAIR_RENAME(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: DIFF_PAIR_BROKEN
    functionSourceFile: /src/git/diffcore.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF_PAIR_BROKEN(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: DIFF_PAIR_TYPE_CHANGED
    functionSourceFile: /src/git/diffcore.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF_PAIR_TYPE_CHANGED(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: DIFF_PAIR_MODE_CHANGED
    functionSourceFile: /src/git/diffcore.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF_PAIR_MODE_CHANGED(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: parallel_checkout_status
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum pc_status
    signature: enum pc_status parallel_checkout_status(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/parallel-checkout.c:46,1
    - Dst: strtol_i
      Src: /src/git/parallel-checkout.c:49,1
    - Dst: die
      Src: /src/git/parallel-checkout.c:50,1
    - Dst: _
      Src: /src/git/parallel-checkout.c:50,1
    - Dst: online_cpus
      Src: /src/git/parallel-checkout.c:54,1
    - Dst: repo_config_get_int
      Src: /src/git/parallel-checkout.c:60,1
    - Dst: online_cpus
      Src: /src/git/parallel-checkout.c:63,1
    - Dst: repo_config_get_int
      Src: /src/git/parallel-checkout.c:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - num_workers
    - threshold
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 44
    functionDepth: 19
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: get_parallel_checkout_configs
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 1
    functionsReached:
    - repo_config_get_int
    - die
    - online_cpus
    - strtol_i
    - _
    - getenv
    linkageType: ''
    returnType: void
    signature: void get_parallel_checkout_configs(int *num_workers, int *threshold)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/parallel-checkout.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: init_parallel_checkout
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 1
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void init_parallel_checkout(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/parallel-checkout.c:80,1
    - Dst: free
      Src: /src/git/parallel-checkout.c:82,1
    - Dst: memset
      Src: /src/git/parallel-checkout.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: finish_parallel_checkout
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - memset
    - BUG
    - free
    linkageType: ''
    returnType: void
    signature: void finish_parallel_checkout(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/parallel-checkout.c:98,1
    - Dst: strlen
      Src: /src/git/parallel-checkout.c:102,1
    - Dst: classify_conv_attrs
      Src: /src/git/parallel-checkout.c:113,1
    - Dst: BUG
      Src: /src/git/parallel-checkout.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ce
    - ca
    argTypes:
    - struct cache_entry*
    - struct conv_attrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 152
    functionName: is_eligible_for_parallel_checkout
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - strlen
    - BUG
    - classify_conv_attrs
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int is_eligible_for_parallel_checkout(const struct cache_entry *ce,\n\t\t\t\t\t
      \    const struct conv_attrs *ca)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_eligible_for_parallel_checkout
      Src: /src/git/parallel-checkout.c:160,1
    - Dst: ALLOC_GROW
      Src: /src/git/parallel-checkout.c:163,1
    - Dst: memcpy
      Src: /src/git/parallel-checkout.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ce
    - ca
    - checkout_counter
    argTypes:
    - struct cache_entry*
    - struct conv_attrs*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: enqueue_checkout
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 1
    functionsReached:
    - is_eligible_for_parallel_checkout
    - ALLOC_GROW
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int enqueue_checkout(struct cache_entry *ce, struct conv_attrs *ca,\n\t\t
      \    int *checkout_counter)"
  - 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: pc_queue_size
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pc_queue_size(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/parallel-checkout.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: advance_progress_meter
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - display_progress
    linkageType: ''
    returnType: void
    signature: void advance_progress_meter(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: update_ce_after_write
      Src: /src/git/parallel-checkout.c:205,1
    - Dst: checkout_entry_ca
      Src: /src/git/parallel-checkout.c:238,1
    - Dst: advance_progress_meter
      Src: /src/git/parallel-checkout.c:241,1
    - Dst: BUG
      Src: /src/git/parallel-checkout.c:250,1
    - Dst: error
      Src: /src/git/parallel-checkout.c:255,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct checkout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 191
    functionDepth: 10
    functionLinenumber: 191
    functionLinenumberEnd: 258
    functionName: handle_results
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - error
    - update_ce_after_write
    - advance_progress_meter
    - BUG
    - checkout_entry_ca
    linkageType: ''
    returnType: int
    signature: int handle_results(struct checkout *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/git/parallel-checkout.c:262,1
    - Dst: error_errno
      Src: /src/git/parallel-checkout.c:263,1
    - Dst: ftruncate
      Src: /src/git/parallel-checkout.c:264,1
    - Dst: error_errno
      Src: /src/git/parallel-checkout.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: reset_fd
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - ftruncate
    - error_errno
    - lseek
    linkageType: ''
    returnType: int
    signature: int reset_fd(int fd, const char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/git/parallel-checkout.c:280,1
    - Dst: is_eligible_for_parallel_checkout
      Src: /src/git/parallel-checkout.c:280,1
    - Dst: get_stream_filter_ca
      Src: /src/git/parallel-checkout.c:282,1
    - Dst: odb_stream_blob_to_fd
      Src: /src/git/parallel-checkout.c:284,1
    - Dst: reset_fd
      Src: /src/git/parallel-checkout.c:287,1
    - Dst: read_blob_entry
      Src: /src/git/parallel-checkout.c:294,1
    - Dst: error
      Src: /src/git/parallel-checkout.c:296,1
    - Dst: oid_to_hex
      Src: /src/git/parallel-checkout.c:297,1
    - Dst: convert_to_working_tree_ca
      Src: /src/git/parallel-checkout.c:305,1
    - Dst: free
      Src: /src/git/parallel-checkout.c:310,1
    - Dst: strbuf_detach
      Src: /src/git/parallel-checkout.c:311,1
    - Dst: write_in_full
      Src: /src/git/parallel-checkout.c:315,1
    - Dst: free
      Src: /src/git/parallel-checkout.c:316,1
    - Dst: error
      Src: /src/git/parallel-checkout.c:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - pc_item
    - fd
    - path
    argTypes:
    - struct parallel_checkout_item*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 269
    functionDepth: 6
    functionLinenumber: 269
    functionLinenumberEnd: 321
    functionName: write_pc_item_to_fd
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - free
    - ASSERT
    - get_stream_filter_ca
    - strbuf_detach
    - reset_fd
    - is_eligible_for_parallel_checkout
    - convert_to_working_tree_ca
    - odb_stream_blob_to_fd
    - write_in_full
    - read_blob_entry
    linkageType: ''
    returnType: int
    signature: "int write_pc_item_to_fd(struct parallel_checkout_item *pc_item, int
      fd,\n\t\t\t       const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/parallel-checkout.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: close_and_clear
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int close_and_clear(int *fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/parallel-checkout.c:343,1
    - Dst: strbuf_add
      Src: /src/git/parallel-checkout.c:344,1
    - Dst: find_last_dir_sep
      Src: /src/git/parallel-checkout.c:346,1
    - Dst: has_dirs_only_path
      Src: /src/git/parallel-checkout.c:354,1
    - Dst: trace2_data_string
      Src: /src/git/parallel-checkout.c:357,1
    - Dst: open
      Src: /src/git/parallel-checkout.c:361,1
    - Dst: trace2_data_string
      Src: /src/git/parallel-checkout.c:373,1
    - Dst: error_errno
      Src: /src/git/parallel-checkout.c:376,1
    - Dst: write_pc_item_to_fd
      Src: /src/git/parallel-checkout.c:382,1
    - Dst: close_and_clear
      Src: /src/git/parallel-checkout.c:385,1
    - Dst: unlink
      Src: /src/git/parallel-checkout.c:386,1
    - Dst: fstat_checkout_output
      Src: /src/git/parallel-checkout.c:390,1
    - Dst: close_and_clear
      Src: /src/git/parallel-checkout.c:392,1
    - Dst: error_errno
      Src: /src/git/parallel-checkout.c:393,1
    - Dst: lstat
      Src: /src/git/parallel-checkout.c:398,1
    - Dst: error_errno
      Src: /src/git/parallel-checkout.c:399,1
    - Dst: strbuf_release
      Src: /src/git/parallel-checkout.c:407,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - pc_item
    - state
    argTypes:
    - struct parallel_checkout_item*
    - struct checkout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 335
    functionDepth: 7
    functionLinenumber: 335
    functionLinenumberEnd: 408
    functionName: write_pc_item
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - error_errno
    - fstat_checkout_output
    - strbuf_release
    - open
    - close_and_clear
    - has_dirs_only_path
    - find_last_dir_sep
    - write_pc_item_to_fd
    - unlink
    - lstat
    - strbuf_add
    - trace2_data_string
    linkageType: ''
    returnType: void
    signature: "void write_pc_item(struct parallel_checkout_item *pc_item,\n\t\t   struct
      checkout *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/parallel-checkout.c:418,1
    - Dst: xmalloc
      Src: /src/git/parallel-checkout.c:427,1
    - Dst: oidcpy
      Src: /src/git/parallel-checkout.c:436,1
    - Dst: memcpy
      Src: /src/git/parallel-checkout.c:440,1
    - Dst: memcpy
      Src: /src/git/parallel-checkout.c:443,1
    - Dst: packet_write
      Src: /src/git/parallel-checkout.c:445,1
    - Dst: free
      Src: /src/git/parallel-checkout.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - fd
    - pc_item
    argTypes:
    - int
    - struct parallel_checkout_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 410
    functionDepth: 6
    functionLinenumber: 410
    functionLinenumberEnd: 448
    functionName: send_one_item
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - memcpy
    - strlen
    - xmalloc
    - free
    - packet_write
    linkageType: ''
    returnType: void
    signature: void send_one_item(int fd, struct parallel_checkout_item *pc_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigchain_push
      Src: /src/git/parallel-checkout.c:453,1
    - Dst: send_one_item
      Src: /src/git/parallel-checkout.c:455,1
    - Dst: packet_flush
      Src: /src/git/parallel-checkout.c:456,1
    - Dst: sigchain_pop
      Src: /src/git/parallel-checkout.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - start
    - nr
    argTypes:
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 450
    functionDepth: 7
    functionLinenumber: 450
    functionLinenumberEnd: 458
    functionName: send_batch
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - sigchain_push
    - sigchain_pop
    - send_one_item
    - packet_flush
    linkageType: ''
    returnType: void
    signature: void send_batch(int fd, size_t start, size_t nr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/parallel-checkout.c:466,1
    - Dst: child_process_init
      Src: /src/git/parallel-checkout.c:471,1
    - Dst: strvec_push
      Src: /src/git/parallel-checkout.c:476,1
    - Dst: strvec_pushf
      Src: /src/git/parallel-checkout.c:478,1
    - Dst: start_command
      Src: /src/git/parallel-checkout.c:479,1
    - Dst: die
      Src: /src/git/parallel-checkout.c:480,1
    - Dst: send_batch
      Src: /src/git/parallel-checkout.c:494,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - state
    - num_workers
    argTypes:
    - struct checkout*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 460
    functionDepth: 8
    functionLinenumber: 460
    functionLinenumberEnd: 502
    functionName: setup_workers
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - die
    - child_process_init
    - ALLOC_ARRAY
    - send_batch
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: struct pc_worker
    signature: struct pc_worker *setup_workers(struct checkout *state, int num_workers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/parallel-checkout.c:515,1
    - Dst: close
      Src: /src/git/parallel-checkout.c:517,1
    - Dst: finish_command
      Src: /src/git/parallel-checkout.c:521,1
    - Dst: error
      Src: /src/git/parallel-checkout.c:528,1
    - Dst: free
      Src: /src/git/parallel-checkout.c:532,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - workers
    - num_workers
    argTypes:
    - struct pc_worker*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 533
    functionName: finish_workers
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - close
    - finish_command
    - error
    - free
    linkageType: ''
    returnType: void
    signature: void finish_workers(struct pc_worker *workers, int num_workers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/parallel-checkout.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - got
    - exp
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 540
    functionName: assert_pc_item_result_size
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void assert_pc_item_result_size(int got, int exp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/parallel-checkout.c:550,1
    - Dst: assert_pc_item_result_size
      Src: /src/git/parallel-checkout.c:560,1
    - Dst: assert_pc_item_result_size
      Src: /src/git/parallel-checkout.c:563,1
    - Dst: BUG
      Src: /src/git/parallel-checkout.c:567,1
    - Dst: BUG
      Src: /src/git/parallel-checkout.c:569,1
    - Dst: advance_progress_meter
      Src: /src/git/parallel-checkout.c:581,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - buffer
    - len
    - worker
    argTypes:
    - char*
    - int
    - struct pc_worker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 582
    functionName: parse_and_save_result
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - assert_pc_item_result_size
    - BUG
    - advance_progress_meter
    linkageType: ''
    returnType: void
    signature: "void parse_and_save_result(const char *buffer, int len,\n\t\t\t\t
      \ struct pc_worker *worker)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/parallel-checkout.c:590,1
    - Dst: poll
      Src: /src/git/parallel-checkout.c:597,1
    - Dst: die_errno
      Src: /src/git/parallel-checkout.c:602,1
    - Dst: packet_read
      Src: /src/git/parallel-checkout.c:613,1
    - Dst: BUG
      Src: /src/git/parallel-checkout.c:617,1
    - Dst: parse_and_save_result
      Src: /src/git/parallel-checkout.c:622,1
    - Dst: die
      Src: /src/git/parallel-checkout.c:629,1
    - Dst: free
      Src: /src/git/parallel-checkout.c:636,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - workers
    - num_workers
    argTypes:
    - struct pc_worker*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 584
    functionDepth: 7
    functionLinenumber: 584
    functionLinenumberEnd: 637
    functionName: gather_results_from_workers
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - die
    - die_errno
    - packet_read
    - CALLOC_ARRAY
    - free
    - parse_and_save_result
    - BUG
    - poll
    linkageType: ''
    returnType: void
    signature: "void gather_results_from_workers(struct pc_worker *workers,\n\t\t\t\t\tint
      num_workers)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_pc_item
      Src: /src/git/parallel-checkout.c:645,1
    - Dst: advance_progress_meter
      Src: /src/git/parallel-checkout.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct checkout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 639
    functionDepth: 8
    functionLinenumber: 639
    functionLinenumberEnd: 649
    functionName: write_items_sequentially
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 0
    functionsReached:
    - write_pc_item
    - advance_progress_meter
    linkageType: ''
    returnType: void
    signature: void write_items_sequentially(struct checkout *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/parallel-checkout.c:657,1
    - Dst: write_items_sequentially
      Src: /src/git/parallel-checkout.c:667,1
    - Dst: setup_workers
      Src: /src/git/parallel-checkout.c:669,1
    - Dst: gather_results_from_workers
      Src: /src/git/parallel-checkout.c:670,1
    - Dst: finish_workers
      Src: /src/git/parallel-checkout.c:671,1
    - Dst: handle_results
      Src: /src/git/parallel-checkout.c:674,1
    - Dst: finish_parallel_checkout
      Src: /src/git/parallel-checkout.c:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - state
    - num_workers
    - threshold
    - progress
    - progress_cnt
    argTypes:
    - struct checkout*
    - int
    - int
    - struct progress*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 651
    functionDepth: 11
    functionLinenumber: 651
    functionLinenumberEnd: 678
    functionName: run_parallel_checkout
    functionSourceFile: /src/git/parallel-checkout.c
    functionUses: 1
    functionsReached:
    - finish_parallel_checkout
    - handle_results
    - setup_workers
    - finish_workers
    - gather_results_from_workers
    - write_items_sequentially
    - BUG
    linkageType: ''
    returnType: int
    signature: "int run_parallel_checkout(struct checkout *state, int num_workers,
      int threshold,\n\t\t\t  struct progress *progress, unsigned int *progress_cnt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - q
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: parse_tree_gently
    functionSourceFile: /src/git/tree.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parse_tree_gently(t, q)
  - 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: parse_tree
    functionSourceFile: /src/git/tree.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parse_tree(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree_gently
      Src: /src/git/tree.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - item
    argTypes:
    - struct repository*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 13
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: repo_parse_tree
    functionSourceFile: /src/git/tree.h
    functionUses: 9
    functionsReached:
    - repo_parse_tree_gently
    linkageType: ''
    returnType: int
    signature: int repo_parse_tree(struct repository *r, struct tree *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: parse_tree_indirect
    functionSourceFile: /src/git/tree.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parse_tree_indirect(o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/checkout.c:28,1
    - Dst: remote_find_tracking
      Src: /src/git/checkout.c:30,1
    - Dst: repo_get_oid
      Src: /src/git/checkout.c:31,1
    - Dst: free
      Src: /src/git/checkout.c:32,1
    - Dst: strcmp
      Src: /src/git/checkout.c:36,1
    - Dst: xmalloc
      Src: /src/git/checkout.c:37,1
    - Dst: xstrdup
      Src: /src/git/checkout.c:38,1
    - Dst: oidcpy
      Src: /src/git/checkout.c:39,1
    - Dst: free
      Src: /src/git/checkout.c:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - remote
    - cb_data
    argTypes:
    - struct remote*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 24
    functionDepth: 9
    functionLinenumber: 24
    functionLinenumberEnd: 48
    functionName: check_tracking_name
    functionSourceFile: /src/git/checkout.c
    functionUses: 0
    functionsReached:
    - memset
    - oidcpy
    - remote_find_tracking
    - repo_get_oid
    - xmalloc
    - strcmp
    - free
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int check_tracking_name(struct remote *remote, void *cb_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_tmp
      Src: /src/git/checkout.c:55,1
    - Dst: xstrfmt
      Src: /src/git/checkout.c:57,1
    - Dst: for_each_remote
      Src: /src/git/checkout.c:59,1
    - Dst: free
      Src: /src/git/checkout.c:62,1
    - Dst: free
      Src: /src/git/checkout.c:64,1
    - Dst: free
      Src: /src/git/checkout.c:65,1
    - Dst: free
      Src: /src/git/checkout.c:68,1
    - Dst: oidcpy
      Src: /src/git/checkout.c:70,1
    - Dst: free
      Src: /src/git/checkout.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - name
    - oid
    - dwim_remotes_matched
    argTypes:
    - char*
    - struct object_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 50
    functionDepth: 19
    functionLinenumber: 50
    functionLinenumberEnd: 75
    functionName: unique_tracking_name
    functionSourceFile: /src/git/checkout.c
    functionUses: 0
    functionsReached:
    - repo_config_get_string_tmp
    - oidcpy
    - for_each_remote
    - xstrfmt
    - free
    linkageType: ''
    returnType: char
    signature: "char *unique_tracking_name(const char *name, struct object_id *oid,\n\t\t\t
      \  int *dwim_remotes_matched)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/archive.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ar
    argTypes:
    - struct archiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: register_archiver
    functionSourceFile: /src/git/archive.c
    functionUses: 2
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void register_archiver(struct archiver *ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_tar_archiver
      Src: /src/git/archive.c:48,1
    - Dst: init_zip_archiver
      Src: /src/git/archive.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: init_archivers
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - init_tar_archiver
    - init_zip_archiver
    linkageType: ''
    returnType: void
    signature: void init_archivers(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_detach
      Src: /src/git/archive.c:60,1
    - Dst: memmem
      Src: /src/git/archive.c:64,1
    - Dst: memchr
      Src: /src/git/archive.c:67,1
    - Dst: strbuf_reset
      Src: /src/git/archive.c:71,1
    - Dst: strbuf_add
      Src: /src/git/archive.c:72,1
    - Dst: strbuf_add
      Src: /src/git/archive.c:74,1
    - Dst: repo_format_commit_message
      Src: /src/git/archive.c:75,1
    - Dst: strbuf_add
      Src: /src/git/archive.c:80,1
    - Dst: strbuf_release
      Src: /src/git/archive.c:81,1
    - Dst: free
      Src: /src/git/archive.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - commit
    - src
    - len
    - buf
    - ctx
    argTypes:
    - struct commit*
    - char*
    - size_t
    - struct strbuf*
    - struct pretty_print_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 52
    functionDepth: 14
    functionLinenumber: 52
    functionLinenumberEnd: 83
    functionName: format_subst
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - memchr
    - strbuf_release
    - strbuf_reset
    - memmem
    - strbuf_detach
    - free
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void format_subst(const struct commit *commit,\n\t\t\t const char
      *src, size_t len,\n\t\t\t struct strbuf *buf, struct pretty_print_context *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_checkout_metadata
      Src: /src/git/archive.c:96,1
    - Dst: odb_read_object
      Src: /src/git/archive.c:101,1
    - Dst: S_ISREG
      Src: /src/git/archive.c:102,1
    - Dst: strbuf_attach
      Src: /src/git/archive.c:106,1
    - Dst: convert_to_working_tree
      Src: /src/git/archive.c:107,1
    - Dst: format_subst
      Src: /src/git/archive.c:109,1
    - Dst: strbuf_detach
      Src: /src/git/archive.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - args
    - path
    - oid
    - mode
    - type
    - sizep
    argTypes:
    - struct archiver_args*
    - char*
    - struct object_id*
    - unsigned int
    - enum object_type*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 85
    functionDepth: 15
    functionLinenumber: 85
    functionLinenumberEnd: 115
    functionName: object_file_to_archive
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - init_checkout_metadata
    - convert_to_working_tree
    - strbuf_attach
    - strbuf_detach
    - odb_read_object
    - format_subst
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: "void *object_file_to_archive(const struct archiver_args *args,\n\t\t\t\t
      \   const char *path,\n\t\t\t\t    const struct object_id *oid,\n\t\t\t\t    unsigned
      int mode,\n\t\t\t\t    enum object_type *type,\n\t\t\t\t    unsigned long *sizep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attr_check_initl
      Src: /src/git/archive.c:136,1
    - Dst: git_check_attr
      Src: /src/git/archive.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 19
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: get_archive_attrs
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - attr_check_initl
    - git_check_attr
    linkageType: ''
    returnType: struct attr_check
    signature: "struct attr_check *get_archive_attrs(struct index_state *istate,\n\t\t\t\t\t\t
      \ const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ATTR_TRUE
      Src: /src/git/archive.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: check_attr_export_ignore
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - ATTR_TRUE
    linkageType: ''
    returnType: int
    signature: int check_attr_export_ignore(const struct attr_check *check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ATTR_TRUE
      Src: /src/git/archive.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct attr_check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: check_attr_export_subst
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - ATTR_TRUE
    linkageType: ''
    returnType: int
    signature: int check_attr_export_subst(const struct attr_check *check)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/archive.c:166,1
    - Dst: strbuf_grow
      Src: /src/git/archive.c:167,1
    - Dst: strbuf_add
      Src: /src/git/archive.c:168,1
    - Dst: strbuf_add
      Src: /src/git/archive.c:169,1
    - Dst: strbuf_addstr
      Src: /src/git/archive.c:170,1
    - Dst: S_ISDIR
      Src: /src/git/archive.c:171,1
    - Dst: S_ISGITLINK
      Src: /src/git/archive.c:171,1
    - Dst: strbuf_addch
      Src: /src/git/archive.c:172,1
    - Dst: S_ISDIR
      Src: /src/git/archive.c:175,1
    - Dst: get_archive_attrs
      Src: /src/git/archive.c:177,1
    - Dst: check_attr_export_ignore
      Src: /src/git/archive.c:178,1
    - Dst: check_attr_export_subst
      Src: /src/git/archive.c:180,1
    - Dst: relative_path
      Src: /src/git/archive.c:188,1
    - Dst: strcmp
      Src: /src/git/archive.c:196,1
    - Dst: starts_with
      Src: /src/git/archive.c:196,1
    - Dst: S_ISDIR
      Src: /src/git/archive.c:197,1
    - Dst: strbuf_reset
      Src: /src/git/archive.c:200,1
    - Dst: strbuf_add
      Src: /src/git/archive.c:201,1
    - Dst: strbuf_addstr
      Src: /src/git/archive.c:202,1
    - Dst: strbuf_swap
      Src: /src/git/archive.c:203,1
    - Dst: fprintf
      Src: /src/git/archive.c:207,1
    - Dst: S_ISDIR
      Src: /src/git/archive.c:209,1
    - Dst: S_ISGITLINK
      Src: /src/git/archive.c:209,1
    - Dst: write_entry
      Src: /src/git/archive.c:210,1
    - Dst: S_ISDIR
      Src: /src/git/archive.c:213,1
    - Dst: S_ISREG
      Src: /src/git/archive.c:217,1
    - Dst: odb_read_object_info
      Src: /src/git/archive.c:218,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/archive.c:219,1
    - Dst: write_entry
      Src: /src/git/archive.c:220,1
    - Dst: object_file_to_archive
      Src: /src/git/archive.c:222,1
    - Dst: error
      Src: /src/git/archive.c:224,1
    - Dst: _
      Src: /src/git/archive.c:224,1
    - Dst: oid_to_hex
      Src: /src/git/archive.c:224,1
    - Dst: write_entry
      Src: /src/git/archive.c:225,1
    - Dst: free
      Src: /src/git/archive.c:226,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 6
    argNames:
    - oid
    - base
    - baselen
    - filename
    - mode
    - context
    argTypes:
    - struct object_id*
    - char*
    - int
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 151
    functionDepth: 21
    functionLinenumber: 151
    functionLinenumberEnd: 228
    functionName: write_archive_entry
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - write_entry
    - check_attr_export_ignore
    - odb_read_object_info
    - strcmp
    - free
    - strbuf_swap
    - object_file_to_archive
    - error
    - repo_settings_get_big_file_threshold
    - strbuf_addstr
    - S_ISREG
    - oid_to_hex
    - relative_path
    - S_ISGITLINK
    - strbuf_grow
    - _
    - strbuf_add
    - S_ISDIR
    - check_attr_export_subst
    - strbuf_reset
    - get_archive_attrs
    - starts_with
    - strbuf_addch
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int write_archive_entry(const struct object_id *oid, const char *base,\n\t\tint
      baselen, const char *filename, unsigned mode,\n\t\tvoid *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: st_add4
      Src: /src/git/archive.c:235,1
    - Dst: strlen
      Src: /src/git/archive.c:235,1
    - Dst: xmalloc
      Src: /src/git/archive.c:236,1
    - Dst: st_add
      Src: /src/git/archive.c:236,1
    - Dst: xsnprintf
      Src: /src/git/archive.c:241,1
    - Dst: oidcpy
      Src: /src/git/archive.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - oid
    - base
    - filename
    - mode
    - c
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - struct archiver_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 243
    functionName: queue_directory
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - strlen
    - xmalloc
    - st_add4
    - xsnprintf
    - st_add
    linkageType: ''
    returnType: void
    signature: "void queue_directory(const struct object_id *oid,\n\t\tstruct strbuf
      *base, const char *filename,\n\t\tunsigned mode, struct archiver_context *c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_directory
      Src: /src/git/archive.c:255,1
    - Dst: write_archive_entry
      Src: /src/git/archive.c:256,1
    - Dst: free
      Src: /src/git/archive.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct archiver_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 245
    functionDepth: 22
    functionLinenumber: 245
    functionLinenumberEnd: 261
    functionName: write_directory
    functionSourceFile: /src/git/archive.c
    functionUses: 1
    functionsReached:
    - free
    - write_directory
    - write_archive_entry
    linkageType: ''
    returnType: int
    signature: int write_directory(struct archiver_context *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/archive.c:271,1
    - Dst: free
      Src: /src/git/archive.c:273,1
    - Dst: S_ISDIR
      Src: /src/git/archive.c:277,1
    - Dst: strbuf_addstr
      Src: /src/git/archive.c:282,1
    - Dst: strbuf_addch
      Src: /src/git/archive.c:283,1
    - Dst: get_archive_attrs
      Src: /src/git/archive.c:284,1
    - Dst: strbuf_setlen
      Src: /src/git/archive.c:285,1
    - Dst: check_attr_export_ignore
      Src: /src/git/archive.c:287,1
    - Dst: queue_directory
      Src: /src/git/archive.c:289,1
    - Dst: write_directory
      Src: /src/git/archive.c:293,1
    - Dst: write_archive_entry
      Src: /src/git/archive.c:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - oid
    - base
    - filename
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 263
    functionDepth: 23
    functionLinenumber: 263
    functionLinenumberEnd: 297
    functionName: queue_or_write_archive_entry
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - write_archive_entry
    - get_archive_attrs
    - check_attr_export_ignore
    - queue_directory
    - strbuf_setlen
    - strbuf_addch
    - write_directory
    - strbuf_addstr
    - free
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int queue_or_write_archive_entry(const struct object_id *oid,\n\t\tstruct
      strbuf *base, const char *filename,\n\t\tunsigned mode, void *context)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/archive.c:315,1
    - Dst: null_oid
      Src: /src/git/archive.c:315,1
    - Dst: fprintf
      Src: /src/git/archive.c:323,1
    - Dst: write_entry
      Src: /src/git/archive.c:324,1
    - Dst: memset
      Src: /src/git/archive.c:330,1
    - Dst: read_tree
      Src: /src/git/archive.c:334,1
    - Dst: free
      Src: /src/git/archive.c:342,1
    - Dst: put_be64
      Src: /src/git/archive.c:351,1
    - Dst: strbuf_reset
      Src: /src/git/archive.c:354,1
    - Dst: strbuf_addstr
      Src: /src/git/archive.c:356,1
    - Dst: strbuf_addstr
      Src: /src/git/archive.c:357,1
    - Dst: basename
      Src: /src/git/archive.c:357,1
    - Dst: strbuf_reset
      Src: /src/git/archive.c:359,1
    - Dst: strbuf_read_file
      Src: /src/git/archive.c:360,1
    - Dst: error_errno
      Src: /src/git/archive.c:361,1
    - Dst: _
      Src: /src/git/archive.c:361,1
    - Dst: write_entry
      Src: /src/git/archive.c:363,1
    - Dst: canon_mode
      Src: /src/git/archive.c:365,1
    - Dst: write_entry
      Src: /src/git/archive.c:368,1
    - Dst: strlen
      Src: /src/git/archive.c:369,1
    - Dst: canon_mode
      Src: /src/git/archive.c:370,1
    - Dst: strbuf_release
      Src: /src/git/archive.c:377,1
    - Dst: strbuf_release
      Src: /src/git/archive.c:378,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - args
    - write_entry
    argTypes:
    - struct archiver_args*
    - write_archive_entry_fn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 305
    functionDepth: 9
    functionLinenumber: 305
    functionLinenumberEnd: 381
    functionName: write_archive_entries
    functionSourceFile: /src/git/archive.c
    functionUses: 2
    functionsReached:
    - put_be64
    - error_errno
    - memset
    - strbuf_release
    - write_entry
    - oidcpy
    - strbuf_reset
    - strbuf_read_file
    - basename
    - strlen
    - canon_mode
    - strbuf_addstr
    - free
    - read_tree
    - null_oid
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: "int write_archive_entries(struct archiver_args *args,\n\t\twrite_archive_entry_fn_t
      write_entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/archive.c:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 395
    functionName: lookup_archiver
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct archiver
    signature: struct archiver *lookup_archiver(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/archive.c:410,1
    - Dst: strbuf_addbuf
      Src: /src/git/archive.c:412,1
    - Dst: strbuf_addstr
      Src: /src/git/archive.c:413,1
    - Dst: match_pathspec
      Src: /src/git/archive.c:414,1
    - Dst: strbuf_release
      Src: /src/git/archive.c:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - UNUSED
    - base
    - filename
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 6
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: reject_entry
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - strbuf_release
    - strbuf_addbuf
    - match_pathspec
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int reject_entry(const struct object_id *oid UNUSED,\n\t\t\tstruct
      strbuf *base,\n\t\t\tconst char *filename, unsigned mode,\n\t\t\tvoid *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/archive.c:432,1
    - Dst: strbuf_addbuf
      Src: /src/git/archive.c:435,1
    - Dst: strbuf_addstr
      Src: /src/git/archive.c:436,1
    - Dst: starts_with
      Src: /src/git/archive.c:437,1
    - Dst: relative_path
      Src: /src/git/archive.c:437,1
    - Dst: strbuf_release
      Src: /src/git/archive.c:439,1
    - Dst: strbuf_release
      Src: /src/git/archive.c:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - UNUSED
    - base
    - filename
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 423
    functionDepth: 4
    functionLinenumber: 423
    functionLinenumberEnd: 442
    functionName: reject_outside
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - strbuf_release
    - relative_path
    - starts_with
    - strbuf_addbuf
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int reject_outside(const struct object_id *oid UNUSED,\n\t\t\t  struct
      strbuf *base, const char *filename,\n\t\t\t  unsigned mode, void *context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_pathspec
      Src: /src/git/archive.c:451,1
    - Dst: read_tree
      Src: /src/git/archive.c:454,1
    - Dst: die
      Src: /src/git/archive.c:456,1
    - Dst: _
      Src: /src/git/archive.c:456,1
    - Dst: read_tree
      Src: /src/git/archive.c:458,1
    - Dst: clear_pathspec
      Src: /src/git/archive.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - args
    - path
    argTypes:
    - struct archiver_args*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 444
    functionDepth: 15
    functionLinenumber: 444
    functionLinenumberEnd: 463
    functionName: path_exists
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - clear_pathspec
    - die
    - read_tree
    - _
    - parse_pathspec
    linkageType: ''
    returnType: int
    signature: int path_exists(struct archiver_args *args, const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_pathspec
      Src: /src/git/archive.c:473,1
    - Dst: path_exists
      Src: /src/git/archive.c:478,1
    - Dst: die
      Src: /src/git/archive.c:479,1
    - Dst: _
      Src: /src/git/archive.c:479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pathspec
    - ar_args
    argTypes:
    - char**
    - struct archiver_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 465
    functionDepth: 15
    functionLinenumber: 465
    functionLinenumberEnd: 483
    functionName: parse_pathspec_arg
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - path_exists
    - parse_pathspec
    - die
    - _
    linkageType: ''
    returnType: void
    signature: "void parse_pathspec_arg(const char **pathspec,\n\t\tstruct archiver_args
      *ar_args)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/archive.c:498,1
    - Dst: repo_dwim_ref
      Src: /src/git/archive.c:501,1
    - Dst: die
      Src: /src/git/archive.c:502,1
    - Dst: _
      Src: /src/git/archive.c:502,1
    - Dst: repo_dwim_ref
      Src: /src/git/archive.c:504,1
    - Dst: strlen
      Src: /src/git/archive.c:504,1
    - Dst: repo_get_oid
      Src: /src/git/archive.c:508,1
    - Dst: die
      Src: /src/git/archive.c:509,1
    - Dst: _
      Src: /src/git/archive.c:509,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/archive.c:511,1
    - Dst: time
      Src: /src/git/archive.c:517,1
    - Dst: approxidate
      Src: /src/git/archive.c:520,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/archive.c:522,1
    - Dst: die
      Src: /src/git/archive.c:524,1
    - Dst: _
      Src: /src/git/archive.c:524,1
    - Dst: oid_to_hex
      Src: /src/git/archive.c:524,1
    - Dst: memset
      Src: /src/git/archive.c:533,1
    - Dst: init_tree_desc
      Src: /src/git/archive.c:539,1
    - Dst: unpack_trees
      Src: /src/git/archive.c:540,1
    - Dst: die
      Src: /src/git/archive.c:541,1
    - Dst: _
      Src: /src/git/archive.c:541,1
    - Dst: oid_to_hex
      Src: /src/git/archive.c:542,1
    - Dst: git_attr_set_direction
      Src: /src/git/archive.c:544,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - argv
    - ar_args
    - remote
    argTypes:
    - char**
    - struct archiver_args*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 485
    functionDepth: 14
    functionLinenumber: 485
    functionLinenumberEnd: 552
    functionName: parse_treeish_arg
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - memset
    - oid_to_hex
    - die
    - approxidate
    - repo_dwim_ref
    - lookup_commit_reference_gently
    - repo_parse_tree_indirect
    - repo_get_oid
    - init_tree_desc
    - git_attr_set_direction
    - strlen
    - unpack_trees
    - _
    - strchrnul
    - time
    linkageType: ''
    returnType: void
    signature: "void parse_treeish_arg(const char **argv,\n\t\t\t      struct archiver_args
      *ar_args, int remote)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/archive.c:557,1
    - Dst: free
      Src: /src/git/archive.c:558,1
    - Dst: free
      Src: /src/git/archive.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - util
    - UNUSED
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: extra_file_info_clear
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void extra_file_info_clear(void *util, const char *str UNUSED)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear_func
      Src: /src/git/archive.c:572,1
    - Dst: xmalloc
      Src: /src/git/archive.c:580,1
    - Dst: xstrdup_or_null
      Src: /src/git/archive.c:581,1
    - Dst: strcmp
      Src: /src/git/archive.c:583,1
    - Dst: prefix_filename
      Src: /src/git/archive.c:584,1
    - Dst: stat
      Src: /src/git/archive.c:585,1
    - Dst: die
      Src: /src/git/archive.c:586,1
    - Dst: _
      Src: /src/git/archive.c:586,1
    - Dst: S_ISREG
      Src: /src/git/archive.c:587,1
    - Dst: die
      Src: /src/git/archive.c:588,1
    - Dst: _
      Src: /src/git/archive.c:588,1
    - Dst: strcmp
      Src: /src/git/archive.c:590,1
    - Dst: strchr
      Src: /src/git/archive.c:595,1
    - Dst: unquote_c_style
      Src: /src/git/archive.c:596,1
    - Dst: die
      Src: /src/git/archive.c:597,1
    - Dst: _
      Src: /src/git/archive.c:597,1
    - Dst: die
      Src: /src/git/archive.c:600,1
    - Dst: _
      Src: /src/git/archive.c:600,1
    - Dst: die
      Src: /src/git/archive.c:603,1
    - Dst: _
      Src: /src/git/archive.c:603,1
    - Dst: strbuf_detach
      Src: /src/git/archive.c:606,1
    - Dst: xstrndup
      Src: /src/git/archive.c:606,1
    - Dst: prefix_filename
      Src: /src/git/archive.c:610,1
    - Dst: free
      Src: /src/git/archive.c:611,1
    - Dst: memset
      Src: /src/git/archive.c:613,1
    - Dst: xstrdup
      Src: /src/git/archive.c:615,1
    - Dst: strlen
      Src: /src/git/archive.c:616,1
    - Dst: BUG
      Src: /src/git/archive.c:618,1
    - Dst: string_list_append_nodup
      Src: /src/git/archive.c:620,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 562
    functionDepth: 11
    functionLinenumber: 562
    functionLinenumberEnd: 624
    functionName: add_file_cb
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - strchr
    - xmalloc
    - strcmp
    - free
    - xstrdup_or_null
    - prefix_filename
    - die
    - string_list_clear_func
    - S_ISREG
    - memset
    - stat
    - strbuf_detach
    - _
    - xstrdup
    - string_list_append_nodup
    - xstrndup
    - strlen
    - unquote_c_style
    - BUG
    linkageType: ''
    returnType: int
    signature: int add_file_cb(const struct option *opt, const char *arg, int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/archive.c:628,1
    - Dst: strtol
      Src: /src/git/archive.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: number_callback
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - strtol
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: int number_callback(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: OPT_GROUP
      Src: /src/git/archive.c:649,1
    - Dst: OPT_STRING
      Src: /src/git/archive.c:650,1
    - Dst: N_
      Src: /src/git/archive.c:650,1
    - Dst: N_
      Src: /src/git/archive.c:650,1
    - Dst: OPT_STRING
      Src: /src/git/archive.c:651,1
    - Dst: N_
      Src: /src/git/archive.c:651,1
    - Dst: N_
      Src: /src/git/archive.c:652,1
    - Dst: N_
      Src: /src/git/archive.c:657,1
    - Dst: N_
      Src: /src/git/archive.c:658,1
    - Dst: N_
      Src: /src/git/archive.c:666,1
    - Dst: N_
      Src: /src/git/archive.c:667,1
    - Dst: OPT_STRING
      Src: /src/git/archive.c:671,1
    - Dst: N_
      Src: /src/git/archive.c:671,1
    - Dst: N_
      Src: /src/git/archive.c:672,1
    - Dst: OPT_BOOL
      Src: /src/git/archive.c:673,1
    - Dst: N_
      Src: /src/git/archive.c:674,1
    - Dst: OPT__VERBOSE
      Src: /src/git/archive.c:675,1
    - Dst: N_
      Src: /src/git/archive.c:675,1
    - Dst: N_
      Src: /src/git/archive.c:680,1
    - Dst: N_
      Src: /src/git/archive.c:681,1
    - Dst: OPT_NUMBER_CALLBACK
      Src: /src/git/archive.c:684,1
    - Dst: N_
      Src: /src/git/archive.c:685,1
    - Dst: OPT_GROUP
      Src: /src/git/archive.c:686,1
    - Dst: OPT_BOOL
      Src: /src/git/archive.c:687,1
    - Dst: N_
      Src: /src/git/archive.c:688,1
    - Dst: OPT_GROUP
      Src: /src/git/archive.c:689,1
    - Dst: OPT_STRING
      Src: /src/git/archive.c:690,1
    - Dst: N_
      Src: /src/git/archive.c:690,1
    - Dst: N_
      Src: /src/git/archive.c:691,1
    - Dst: OPT_STRING
      Src: /src/git/archive.c:692,1
    - Dst: N_
      Src: /src/git/archive.c:692,1
    - Dst: N_
      Src: /src/git/archive.c:693,1
    - Dst: OPT_END
      Src: /src/git/archive.c:694,1
    - Dst: parse_options
      Src: /src/git/archive.c:697,1
    - Dst: die
      Src: /src/git/archive.c:700,1
    - Dst: _
      Src: /src/git/archive.c:700,1
    - Dst: die
      Src: /src/git/archive.c:702,1
    - Dst: _
      Src: /src/git/archive.c:702,1
    - Dst: die
      Src: /src/git/archive.c:704,1
    - Dst: _
      Src: /src/git/archive.c:704,1
    - Dst: die
      Src: /src/git/archive.c:706,1
    - Dst: _
      Src: /src/git/archive.c:706,1
    - Dst: die
      Src: /src/git/archive.c:713,1
    - Dst: _
      Src: /src/git/archive.c:713,1
    - Dst: printf
      Src: /src/git/archive.c:716,1
    - Dst: exit
      Src: /src/git/archive.c:717,1
    - Dst: archive_format_from_filename
      Src: /src/git/archive.c:721,1
    - Dst: usage_with_options
      Src: /src/git/archive.c:727,1
    - Dst: lookup_archiver
      Src: /src/git/archive.c:728,1
    - Dst: die
      Src: /src/git/archive.c:730,1
    - Dst: _
      Src: /src/git/archive.c:730,1
    - Dst: die
      Src: /src/git/archive.c:739,1
    - Dst: _
      Src: /src/git/archive.c:739,1
    - Dst: strlen
      Src: /src/git/archive.c:745,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 6
    argNames:
    - argc
    - argv
    - ar
    - args
    - name_hint
    - is_remote
    argTypes:
    - int
    - char**
    - struct archiver**
    - struct archiver_args*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 633
    functionDepth: 13
    functionLinenumber: 633
    functionLinenumberEnd: 750
    functionName: parse_archive_args
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - lookup_archiver
    - parse_options
    - OPT_END
    - die
    - OPT_NUMBER_CALLBACK
    - OPT_GROUP
    - exit
    - OPT_BOOL
    - OPT_STRING
    - strlen
    - archive_format_from_filename
    - _
    - N_
    - OPT__VERBOSE
    - printf
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int parse_archive_args(int argc, const char **argv,\n\t\tconst struct
      archiver **ar, struct archiver_args *args,\n\t\tconst char *name_hint, int is_remote)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/archive.c:763,1
    - Dst: repo_config
      Src: /src/git/archive.c:764,1
    - Dst: string_list_init_dup
      Src: /src/git/archive.c:773,1
    - Dst: DUP_ARRAY
      Src: /src/git/archive.c:779,1
    - Dst: parse_archive_args
      Src: /src/git/archive.c:782,1
    - Dst: setup_git_directory
      Src: /src/git/archive.c:789,1
    - Dst: parse_treeish_arg
      Src: /src/git/archive.c:792,1
    - Dst: parse_pathspec_arg
      Src: /src/git/archive.c:793,1
    - Dst: struct archiver*::write_archive
      Src: /src/git/archive.c:795,1
    - Dst: string_list_clear_func
      Src: /src/git/archive.c:797,1
    - Dst: free
      Src: /src/git/archive.c:798,1
    - Dst: clear_pathspec
      Src: /src/git/archive.c:799,1
    - Dst: free
      Src: /src/git/archive.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 6
    argNames:
    - argc
    - argv
    - prefix
    - repo
    - name_hint
    - remote
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 752
    functionDepth: 19
    functionLinenumber: 752
    functionLinenumberEnd: 803
    functionName: write_archive
    functionSourceFile: /src/git/archive.c
    functionUses: 2
    functionsReached:
    - clear_pathspec
    - setup_git_directory
    - string_list_clear_func
    - repo_config_get_bool
    - parse_treeish_arg
    - free
    - parse_archive_args
    - DUP_ARRAY
    - string_list_init_dup
    - repo_config
    - parse_pathspec_arg
    - struct archiver*::write_archive
    linkageType: ''
    returnType: int
    signature: "int write_archive(int argc, const char **argv, const char *prefix,\n\t\t
      \ struct repository *repo,\n\t\t  const char *name_hint, int remote)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/archive.c:807,1
    - Dst: strlen
      Src: /src/git/archive.c:807,1
    - Dst: strcmp
      Src: /src/git/archive.c:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - filename
    - ext
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 817
    functionName: match_extension
    functionSourceFile: /src/git/archive.c
    functionUses: 0
    functionsReached:
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: int match_extension(const char *filename, const char *ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_extension
      Src: /src/git/archive.c:824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 827
    functionName: archive_format_from_filename
    functionSourceFile: /src/git/archive.c
    functionUses: 1
    functionsReached:
    - match_extension
    linkageType: ''
    returnType: char
    signature: char *archive_format_from_filename(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid
    - ofs
    argTypes:
    - struct object_id*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: take2
    functionSourceFile: /src/git/hash-lookup.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t take2(const struct object_id *oid, size_t ofs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: take2
      Src: /src/git/hash-lookup.c:71,1
    - Dst: fn
      Src: /src/git/hash-lookup.c:71,1
    - Dst: take2
      Src: /src/git/hash-lookup.c:72,1
    - Dst: fn
      Src: /src/git/hash-lookup.c:72,1
    - Dst: take2
      Src: /src/git/hash-lookup.c:73,1
    - Dst: index_pos_to_insert_pos
      Src: /src/git/hash-lookup.c:77,1
    - Dst: BUG
      Src: /src/git/hash-lookup.c:88,1
    - Dst: oidcmp
      Src: /src/git/hash-lookup.c:95,1
    - Dst: fn
      Src: /src/git/hash-lookup.c:95,1
    - Dst: index_pos_to_insert_pos
      Src: /src/git/hash-lookup.c:104,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - oid
    - table
    - nr
    - fn
    argTypes:
    - struct object_id*
    - void*
    - size_t
    - oid_access_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 105
    functionName: oid_pos
    functionSourceFile: /src/git/hash-lookup.c
    functionUses: 9
    functionsReached:
    - fn
    - oidcmp
    - index_pos_to_insert_pos
    - take2
    - BUG
    linkageType: ''
    returnType: int
    signature: "int oid_pos(const struct object_id *oid, const void *table, size_t
      nr,\n\t    oid_access_fn fn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/git/hash-lookup.c:112,1
    - Dst: ntohl
      Src: /src/git/hash-lookup.c:113,1
    - Dst: hashcmp
      Src: /src/git/hash-lookup.c:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - hash
    - fanout_nbo
    - table
    - stride
    - result
    argTypes:
    - unsigned char*
    - uint32_t*
    - unsigned char*
    - size_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: bsearch_hash
    functionSourceFile: /src/git/hash-lookup.c
    functionUses: 2
    functionsReached:
    - hashcmp
    - ntohl
    linkageType: ''
    returnType: int
    signature: "int bsearch_hash(const unsigned char *hash, const uint32_t *fanout_nbo,\n\t\t
      const unsigned char *table, size_t stride, uint32_t *result)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/alias.c:23,1
    - Dst: strcmp
      Src: /src/git/alias.c:37,1
    - Dst: strlen
      Src: /src/git/alias.c:47,1
    - Dst: strlen
      Src: /src/git/alias.c:56,1
    - Dst: strncmp
      Src: /src/git/alias.c:57,1
    - Dst: strcasecmp
      Src: /src/git/alias.c:60,1
    - Dst: FREE_AND_NULL
      Src: /src/git/alias.c:63,1
    - Dst: git_config_string
      Src: /src/git/alias.c:64,1
    - Dst: config_error_nonbool
      Src: /src/git/alias.c:71,1
    - Dst: string_list_append_nodup
      Src: /src/git/alias.c:74,1
    - Dst: xmemdupz
      Src: /src/git/alias.c:75,1
    - Dst: string_list_append
      Src: /src/git/alias.c:77,1
    - Dst: xstrdup
      Src: /src/git/alias.c:78,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - d
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 16
    functionDepth: 10
    functionLinenumber: 16
    functionLinenumberEnd: 82
    functionName: config_alias_cb
    functionSourceFile: /src/git/alias.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - string_list_append_nodup
    - strcasecmp
    - git_config_string
    - parse_config_key
    - strlen
    - string_list_append
    - strcmp
    - strncmp
    - FREE_AND_NULL
    - config_error_nonbool
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int config_alias_cb(const char *var, const char *value,\n\t\t\t   const
      struct config_context *ctx UNUSED, void *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_early_config
      Src: /src/git/alias.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alias
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 17
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: alias_lookup
    functionSourceFile: /src/git/alias.c
    functionUses: 1
    functionsReached:
    - read_early_config
    linkageType: ''
    returnType: char
    signature: char *alias_lookup(const char *alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_early_config
      Src: /src/git/alias.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 17
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: list_aliases
    functionSourceFile: /src/git/alias.c
    functionUses: 2
    functionsReached:
    - read_early_config
    linkageType: ''
    returnType: void
    signature: void list_aliases(struct string_list *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/alias.c:104,1
    - Dst: strbuf_addch
      Src: /src/git/alias.c:105,1
    - Dst: strbuf_addch
      Src: /src/git/alias.c:110,1
    - Dst: strbuf_addch
      Src: /src/git/alias.c:111,1
    - Dst: strbuf_addch
      Src: /src/git/alias.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - argv
    argTypes:
    - struct strbuf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: quote_cmdline
    functionSourceFile: /src/git/alias.c
    functionUses: 1
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void quote_cmdline(struct strbuf *buf, const char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/alias.c:131,1
    - Dst: isspace
      Src: /src/git/alias.c:137,1
    - Dst: isspace
      Src: /src/git/alias.c:140,1
    - Dst: ALLOC_GROW
      Src: /src/git/alias.c:142,1
    - Dst: FREE_AND_NULL
      Src: /src/git/alias.c:155,1
    - Dst: FREE_AND_NULL
      Src: /src/git/alias.c:167,1
    - Dst: FREE_AND_NULL
      Src: /src/git/alias.c:172,1
    - Dst: ALLOC_GROW
      Src: /src/git/alias.c:176,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - cmdline
    - argv
    argTypes:
    - char*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 180
    functionName: split_cmdline
    functionSourceFile: /src/git/alias.c
    functionUses: 7
    functionsReached:
    - isspace
    - ALLOC_ARRAY
    - FREE_AND_NULL
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: int split_cmdline(char *cmdline, const char ***argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - split_cmdline_errno
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: split_cmdline_strerror
    functionSourceFile: /src/git/alias.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *split_cmdline_strerror(int split_cmdline_errno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 8
    functionName: hexval
    functionSourceFile: /src/git/hex-ll.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hexval(unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hexval
      Src: /src/git/hex-ll.h:16,1
    - Dst: hexval
      Src: /src/git/hex-ll.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: hex2chr
    functionSourceFile: /src/git/hex-ll.h
    functionUses: 6
    functionsReached:
    - hexval
    linkageType: ''
    returnType: int
    signature: int hex2chr(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/abspath.c:13,1
    - Dst: S_ISDIR
      Src: /src/git/abspath.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: is_directory
    functionSourceFile: /src/git/abspath.c
    functionUses: 10
    functionsReached:
    - S_ISDIR
    - stat
    linkageType: ''
    returnType: int
    signature: int is_directory(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: offset_1st_component
      Src: /src/git/abspath.c:19,1
    - Dst: is_dir_sep
      Src: /src/git/abspath.c:23,1
    - Dst: is_dir_sep
      Src: /src/git/abspath.c:26,1
    - Dst: strbuf_setlen
      Src: /src/git/abspath.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 30
    functionName: strip_last_component
    functionSourceFile: /src/git/abspath.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strbuf_setlen
    - offset_1st_component
    linkageType: ''
    returnType: void
    signature: void strip_last_component(struct strbuf *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/abspath.c:38,1
    - Dst: is_dir_sep
      Src: /src/git/abspath.c:42,1
    - Dst: is_dir_sep
      Src: /src/git/abspath.c:45,1
    - Dst: strbuf_add
      Src: /src/git/abspath.c:48,1
    - Dst: strbuf_remove
      Src: /src/git/abspath.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - next
    - remaining
    argTypes:
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 51
    functionName: get_next_component
    functionSourceFile: /src/git/abspath.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_remove
    - is_dir_sep
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void get_next_component(struct strbuf *next, struct strbuf *remaining)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: offset_1st_component
      Src: /src/git/abspath.c:56,1
    - Dst: strbuf_reset
      Src: /src/git/abspath.c:58,1
    - Dst: strbuf_add
      Src: /src/git/abspath.c:59,1
    - Dst: convert_slashes
      Src: /src/git/abspath.c:61,1
    - Dst: strbuf_remove
      Src: /src/git/abspath.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - resolved
    - remaining
    argTypes:
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: get_root_part
    functionSourceFile: /src/git/abspath.c
    functionUses: 0
    functionsReached:
    - strbuf_remove
    - strbuf_reset
    - offset_1st_component
    - convert_slashes
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void get_root_part(struct strbuf *resolved, struct strbuf *remaining)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/abspath.c:91,1
    - Dst: strbuf_addstr
      Src: /src/git/abspath.c:96,1
    - Dst: get_root_part
      Src: /src/git/abspath.c:97,1
    - Dst: strbuf_getcwd
      Src: /src/git/abspath.c:101,1
    - Dst: die_errno
      Src: /src/git/abspath.c:103,1
    - Dst: get_next_component
      Src: /src/git/abspath.c:111,1
    - Dst: strcmp
      Src: /src/git/abspath.c:115,1
    - Dst: strcmp
      Src: /src/git/abspath.c:117,1
    - Dst: strip_last_component
      Src: /src/git/abspath.c:119,1
    - Dst: is_dir_sep
      Src: /src/git/abspath.c:124,1
    - Dst: strbuf_addch
      Src: /src/git/abspath.c:125,1
    - Dst: strbuf_addbuf
      Src: /src/git/abspath.c:126,1
    - Dst: lstat
      Src: /src/git/abspath.c:128,1
    - Dst: die_errno
      Src: /src/git/abspath.c:133,1
    - Dst: S_ISLNK
      Src: /src/git/abspath.c:138,1
    - Dst: strbuf_reset
      Src: /src/git/abspath.c:140,1
    - Dst: die
      Src: /src/git/abspath.c:146,1
    - Dst: strbuf_readlink
      Src: /src/git/abspath.c:152,1
    - Dst: die_errno
      Src: /src/git/abspath.c:156,1
    - Dst: is_absolute_path
      Src: /src/git/abspath.c:162,1
    - Dst: get_root_part
      Src: /src/git/abspath.c:164,1
    - Dst: strip_last_component
      Src: /src/git/abspath.c:171,1
    - Dst: strbuf_addch
      Src: /src/git/abspath.c:179,1
    - Dst: strbuf_addbuf
      Src: /src/git/abspath.c:180,1
    - Dst: strbuf_swap
      Src: /src/git/abspath.c:187,1
    - Dst: strbuf_release
      Src: /src/git/abspath.c:194,1
    - Dst: strbuf_release
      Src: /src/git/abspath.c:195,1
    - Dst: strbuf_release
      Src: /src/git/abspath.c:196,1
    - Dst: strbuf_reset
      Src: /src/git/abspath.c:199,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 77
    argCount: 3
    argNames:
    - resolved
    - path
    - flags
    argTypes:
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 202
    functionName: strbuf_realpath_1
    functionSourceFile: /src/git/abspath.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - is_absolute_path
    - die
    - S_ISLNK
    - is_dir_sep
    - strbuf_reset
    - die_errno
    - strbuf_getcwd
    - strbuf_readlink
    - strbuf_addch
    - strbuf_addbuf
    - get_root_part
    - strcmp
    - strbuf_addstr
    - get_next_component
    - strip_last_component
    - lstat
    - strbuf_swap
    linkageType: ''
    returnType: char
    signature: "char *strbuf_realpath_1(struct strbuf *resolved, const char *path,\n\t\t\t
      \      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath_1
      Src: /src/git/abspath.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - resolved
    - path
    - die_on_error
    argTypes:
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: strbuf_realpath
    functionSourceFile: /src/git/abspath.c
    functionUses: 16
    functionsReached:
    - strbuf_realpath_1
    linkageType: ''
    returnType: char
    signature: "char *strbuf_realpath(struct strbuf *resolved, const char *path,\n\t\t
      \     int die_on_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath_1
      Src: /src/git/abspath.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - resolved
    - path
    - die_on_error
    argTypes:
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 6
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: strbuf_realpath_forgiving
    functionSourceFile: /src/git/abspath.c
    functionUses: 1
    functionsReached:
    - strbuf_realpath_1
    linkageType: ''
    returnType: char
    signature: "char *strbuf_realpath_forgiving(struct strbuf *resolved, const char
      *path,\n\t\t\t\tint die_on_error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/abspath.c:240,1
    - Dst: strbuf_detach
      Src: /src/git/abspath.c:241,1
    - Dst: strbuf_release
      Src: /src/git/abspath.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - path
    - die_on_error
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 235
    functionDepth: 7
    functionLinenumber: 235
    functionLinenumberEnd: 246
    functionName: real_pathdup
    functionSourceFile: /src/git/abspath.c
    functionUses: 11
    functionsReached:
    - strbuf_release
    - strbuf_detach
    - strbuf_realpath
    linkageType: ''
    returnType: char
    signature: char *real_pathdup(const char *path, int die_on_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/abspath.c:255,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/abspath.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: absolute_path
    functionSourceFile: /src/git/abspath.c
    functionUses: 41
    functionsReached:
    - strbuf_reset
    - strbuf_add_absolute_path
    linkageType: ''
    returnType: char
    signature: char *absolute_path(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_absolute_path
      Src: /src/git/abspath.c:263,1
    - Dst: strbuf_detach
      Src: /src/git/abspath.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: absolute_pathdup
    functionSourceFile: /src/git/abspath.c
    functionUses: 0
    functionsReached:
    - strbuf_add_absolute_path
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *absolute_pathdup(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/abspath.c:270,1
    - Dst: is_absolute_path
      Src: /src/git/abspath.c:274,1
    - Dst: strbuf_add
      Src: /src/git/abspath.c:277,1
    - Dst: strbuf_addstr
      Src: /src/git/abspath.c:279,1
    - Dst: convert_slashes
      Src: /src/git/abspath.c:281,1
    - Dst: strbuf_detach
      Src: /src/git/abspath.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pfx
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 284
    functionName: prefix_filename
    functionSourceFile: /src/git/abspath.c
    functionUses: 5
    functionsReached:
    - is_absolute_path
    - strlen
    - strbuf_detach
    - strbuf_addstr
    - convert_slashes
    - strbuf_add
    linkageType: ''
    returnType: char
    signature: char *prefix_filename(const char *pfx, const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/abspath.c:288,1
    - Dst: xstrdup
      Src: /src/git/abspath.c:289,1
    - Dst: prefix_filename
      Src: /src/git/abspath.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pfx
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: prefix_filename_except_for_dash
    functionSourceFile: /src/git/abspath.c
    functionUses: 1
    functionsReached:
    - prefix_filename
    - xstrdup
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *prefix_filename_except_for_dash(const char *pfx, const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/abspath.c:296,1
    - Dst: is_absolute_path
      Src: /src/git/abspath.c:297,1
    - Dst: xgetcwd
      Src: /src/git/abspath.c:300,1
    - Dst: getenv
      Src: /src/git/abspath.c:301,1
    - Dst: strcmp
      Src: /src/git/abspath.c:302,1
    - Dst: stat
      Src: /src/git/abspath.c:303,1
    - Dst: stat
      Src: /src/git/abspath.c:305,1
    - Dst: strbuf_addstr
      Src: /src/git/abspath.c:308,1
    - Dst: strbuf_addstr
      Src: /src/git/abspath.c:310,1
    - Dst: is_dir_sep
      Src: /src/git/abspath.c:311,1
    - Dst: strbuf_addch
      Src: /src/git/abspath.c:312,1
    - Dst: free
      Src: /src/git/abspath.c:313,1
    - Dst: strbuf_addstr
      Src: /src/git/abspath.c:315,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 12
    argCount: 2
    argNames:
    - sb
    - path
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 316
    functionName: strbuf_add_absolute_path
    functionSourceFile: /src/git/abspath.c
    functionUses: 12
    functionsReached:
    - xgetcwd
    - is_absolute_path
    - die
    - is_dir_sep
    - stat
    - strbuf_addch
    - strbuf_addstr
    - strcmp
    - free
    - getenv
    linkageType: ''
    returnType: void
    signature: void strbuf_add_absolute_path(struct strbuf *sb, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/abspath.c:322,1
    - Dst: strbuf_addbuf
      Src: /src/git/abspath.c:323,1
    - Dst: strbuf_release
      Src: /src/git/abspath.c:324,1
    - Dst: strbuf_realpath
      Src: /src/git/abspath.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sb
    - path
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 318
    functionDepth: 7
    functionLinenumber: 318
    functionLinenumberEnd: 327
    functionName: strbuf_add_real_path
    functionSourceFile: /src/git/abspath.c
    functionUses: 2
    functionsReached:
    - strbuf_addbuf
    - strbuf_release
    - strbuf_realpath
    linkageType: ''
    returnType: void
    signature: void strbuf_add_real_path(struct strbuf *sb, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: readdir
      Src: /src/git/dir-iterator.c:62,1
    - Dst: warning_errno
      Src: /src/git/dir-iterator.c:65,1
    - Dst: is_dot_or_dotdot
      Src: /src/git/dir-iterator.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - dir
    - path
    - out
    argTypes:
    - DIR*
    - char*
    - struct dirent**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 78
    functionName: next_directory_entry
    functionSourceFile: /src/git/dir-iterator.c
    functionUses: 0
    functionsReached:
    - warning_errno
    - is_dot_or_dotdot
    - readdir
    linkageType: ''
    returnType: int
    signature: "int next_directory_entry(DIR *dir, const char *path,\n\t\t\t\tstruct
      dirent **out)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/dir-iterator.c:90,1
    - Dst: is_dir_sep
      Src: /src/git/dir-iterator.c:93,1
    - Dst: strbuf_addch
      Src: /src/git/dir-iterator.c:94,1
    - Dst: opendir
      Src: /src/git/dir-iterator.c:97,1
    - Dst: warning_errno
      Src: /src/git/dir-iterator.c:101,1
    - Dst: string_list_init_dup
      Src: /src/git/dir-iterator.c:109,1
    - Dst: next_directory_entry
      Src: /src/git/dir-iterator.c:120,1
    - Dst: string_list_append
      Src: /src/git/dir-iterator.c:130,1
    - Dst: string_list_sort
      Src: /src/git/dir-iterator.c:132,1
    - Dst: closedir
      Src: /src/git/dir-iterator.c:134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct dir_iterator_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 139
    functionName: push_level
    functionSourceFile: /src/git/dir-iterator.c
    functionUses: 0
    functionsReached:
    - next_directory_entry
    - is_dir_sep
    - string_list_sort
    - closedir
    - warning_errno
    - strbuf_addch
    - opendir
    - ALLOC_GROW
    - string_list_append
    - string_list_init_dup
    linkageType: ''
    returnType: int
    signature: int push_level(struct dir_iterator_int *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/git/dir-iterator.c:150,1
    - Dst: warning_errno
      Src: /src/git/dir-iterator.c:151,1
    - Dst: string_list_clear
      Src: /src/git/dir-iterator.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct dir_iterator_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: pop_level
    functionSourceFile: /src/git/dir-iterator.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - closedir
    - warning_errno
    linkageType: ''
    returnType: int
    signature: int pop_level(struct dir_iterator_int *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/dir-iterator.c:169,1
    - Dst: lstat
      Src: /src/git/dir-iterator.c:179,1
    - Dst: warning_errno
      Src: /src/git/dir-iterator.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - iter
    - name
    argTypes:
    - struct dir_iterator_int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 187
    functionName: prepare_next_entry_data
    functionSourceFile: /src/git/dir-iterator.c
    functionUses: 0
    functionsReached:
    - warning_errno
    - lstat
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int prepare_next_entry_data(struct dir_iterator_int *iter,\n\t\t\t\t
      \  const char *name)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/dir-iterator.c:194,1
    - Dst: push_level
      Src: /src/git/dir-iterator.c:194,1
    - Dst: strbuf_setlen
      Src: /src/git/dir-iterator.c:208,1
    - Dst: next_directory_entry
      Src: /src/git/dir-iterator.c:211,1
    - Dst: pop_level
      Src: /src/git/dir-iterator.c:217,1
    - Dst: pop_level
      Src: /src/git/dir-iterator.c:225,1
    - Dst: prepare_next_entry_data
      Src: /src/git/dir-iterator.c:233,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 1
    argNames:
    - dir_iterator
    argTypes:
    - struct dir_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 241
    functionName: dir_iterator_advance
    functionSourceFile: /src/git/dir-iterator.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - next_directory_entry
    - pop_level
    - strbuf_setlen
    - push_level
    - prepare_next_entry_data
    linkageType: ''
    returnType: int
    signature: int dir_iterator_advance(struct dir_iterator *dir_iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/git/dir-iterator.c:254,1
    - Dst: strbuf_setlen
      Src: /src/git/dir-iterator.c:256,1
    - Dst: warning_errno
      Src: /src/git/dir-iterator.c:258,1
    - Dst: string_list_clear
      Src: /src/git/dir-iterator.c:262,1
    - Dst: free
      Src: /src/git/dir-iterator.c:265,1
    - Dst: strbuf_release
      Src: /src/git/dir-iterator.c:266,1
    - Dst: free
      Src: /src/git/dir-iterator.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - dir_iterator
    argTypes:
    - struct dir_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 268
    functionName: dir_iterator_free
    functionSourceFile: /src/git/dir-iterator.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_release
    - warning_errno
    - strbuf_setlen
    - free
    - closedir
    linkageType: ''
    returnType: void
    signature: void dir_iterator_free(struct dir_iterator *dir_iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/dir-iterator.c:272,1
    - Dst: strbuf_init
      Src: /src/git/dir-iterator.c:276,1
    - Dst: strbuf_addstr
      Src: /src/git/dir-iterator.c:277,1
    - Dst: ALLOC_GROW
      Src: /src/git/dir-iterator.c:279,1
    - Dst: lstat
      Src: /src/git/dir-iterator.c:287,1
    - Dst: S_ISDIR
      Src: /src/git/dir-iterator.c:294,1
    - Dst: dir_iterator_free
      Src: /src/git/dir-iterator.c:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - path
    - flags
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 270
    functionDepth: 7
    functionLinenumber: 270
    functionLinenumberEnd: 305
    functionName: dir_iterator_begin
    functionSourceFile: /src/git/dir-iterator.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - dir_iterator_free
    - strbuf_addstr
    - xcalloc
    - ALLOC_GROW
    - lstat
    - strbuf_init
    linkageType: ''
    returnType: struct dir_iterator
    signature: struct dir_iterator *dir_iterator_begin(const char *path, unsigned
      int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/shallow.c:27,1
    - Dst: free
      Src: /src/git/shallow.c:30,1
    - Dst: xstrdup_or_null
      Src: /src/git/shallow.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - r
    - path
    - override
    argTypes:
    - struct repository*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: set_alternate_shallow_file
    functionSourceFile: /src/git/shallow.c
    functionUses: 2
    functionsReached:
    - xstrdup_or_null
    - BUG
    - free
    linkageType: ''
    returnType: void
    signature: void set_alternate_shallow_file(struct repository *r, const char *path,
      int override)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/shallow.c:37,1
    - Dst: lookup_commit
      Src: /src/git/shallow.c:38,1
    - Dst: oidcpy
      Src: /src/git/shallow.c:40,1
    - Dst: commit_list_free
      Src: /src/git/shallow.c:43,1
    - Dst: register_commit_graft
      Src: /src/git/shallow.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: register_shallow
    functionSourceFile: /src/git/shallow.c
    functionUses: 5
    functionsReached:
    - oidcpy
    - xmalloc
    - register_commit_graft
    - lookup_commit
    - commit_list_free
    linkageType: ''
    returnType: int
    signature: int register_shallow(struct repository *r, const struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: commit_graft_pos
      Src: /src/git/shallow.c:51,1
    - Dst: free
      Src: /src/git/shallow.c:54,1
    - Dst: MOVE_ARRAY
      Src: /src/git/shallow.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: unregister_shallow
    functionSourceFile: /src/git/shallow.c
    functionUses: 3
    functionsReached:
    - MOVE_ARRAY
    - commit_graft_pos
    - free
    linkageType: ''
    returnType: int
    signature: int unregister_shallow(const struct object_id *oid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_path_shallow
      Src: /src/git/shallow.c:73,1
    - Dst: fopen
      Src: /src/git/shallow.c:79,1
    - Dst: stat_validity_clear
      Src: /src/git/shallow.c:80,1
    - Dst: stat_validity_update
      Src: /src/git/shallow.c:84,1
    - Dst: fileno
      Src: /src/git/shallow.c:84,1
    - Dst: fgets
      Src: /src/git/shallow.c:87,1
    - Dst: get_oid_hex
      Src: /src/git/shallow.c:89,1
    - Dst: die
      Src: /src/git/shallow.c:90,1
    - Dst: register_shallow
      Src: /src/git/shallow.c:91,1
    - Dst: fclose
      Src: /src/git/shallow.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 63
    functionDepth: 7
    functionLinenumber: 63
    functionLinenumberEnd: 95
    functionName: is_repository_shallow
    functionSourceFile: /src/git/shallow.c
    functionUses: 11
    functionsReached:
    - fclose
    - fgets
    - die
    - get_oid_hex
    - fileno
    - stat_validity_update
    - fopen
    - git_path_shallow
    - register_shallow
    - stat_validity_clear
    linkageType: ''
    returnType: int
    signature: int is_repository_shallow(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat_validity_clear
      Src: /src/git/shallow.c:100,1
    - Dst: parsed_object_pool_reset_commit_grafts
      Src: /src/git/shallow.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: reset_repository_shallow
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - parsed_object_pool_reset_commit_grafts
    - stat_validity_clear
    linkageType: ''
    returnType: void
    signature: void reset_repository_shallow(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_lock_file
      Src: /src/git/shallow.c:106,1
    - Dst: reset_repository_shallow
      Src: /src/git/shallow.c:107,1
    - Dst: is_repository_shallow
      Src: /src/git/shallow.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - lk
    argTypes:
    - struct repository*
    - struct shallow_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 104
    functionDepth: 8
    functionLinenumber: 104
    functionLinenumberEnd: 116
    functionName: commit_shallow_file
    functionSourceFile: /src/git/shallow.c
    functionUses: 1
    functionsReached:
    - is_repository_shallow
    - commit_lock_file
    - reset_repository_shallow
    linkageType: ''
    returnType: int
    signature: int commit_shallow_file(struct repository *r, struct shallow_lock *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rollback_lock_file
      Src: /src/git/shallow.c:120,1
    - Dst: reset_repository_shallow
      Src: /src/git/shallow.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - lk
    argTypes:
    - struct repository*
    - struct shallow_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 6
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: rollback_shallow_file
    functionSourceFile: /src/git/shallow.c
    functionUses: 2
    functionsReached:
    - rollback_lock_file
    - reset_repository_shallow
    linkageType: ''
    returnType: void
    signature: void rollback_shallow_file(struct repository *r, struct shallow_lock
      *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/shallow.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: free_depth_in_slab
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void free_depth_in_slab(int **ptr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: init_commit_depth
      Src: /src/git/shallow.c:157,1
    - Dst: deref_tag
      Src: /src/git/shallow.c:164,1
    - Dst: commit_depth_at
      Src: /src/git/shallow.c:171,1
    - Dst: xmalloc
      Src: /src/git/shallow.c:173,1
    - Dst: object_array_pop
      Src: /src/git/shallow.c:178,1
    - Dst: commit_depth_at
      Src: /src/git/shallow.c:179,1
    - Dst: parse_commit_or_die
      Src: /src/git/shallow.c:182,1
    - Dst: oideq
      Src: /src/git/shallow.c:186,1
    - Dst: is_repository_shallow
      Src: /src/git/shallow.c:190,1
    - Dst: lookup_commit_graft
      Src: /src/git/shallow.c:191,1
    - Dst: is_repository_shallow
      Src: /src/git/shallow.c:198,1
    - Dst: lookup_commit_graft
      Src: /src/git/shallow.c:199,1
    - Dst: commit_list_insert
      Src: /src/git/shallow.c:201,1
    - Dst: commit_depth_at
      Src: /src/git/shallow.c:209,1
    - Dst: xmalloc
      Src: /src/git/shallow.c:211,1
    - Dst: add_object_array
      Src: /src/git/shallow.c:219,1
    - Dst: commit_depth_at
      Src: /src/git/shallow.c:223,1
    - Dst: deep_clear_commit_depth
      Src: /src/git/shallow.c:227,1
    - Dst: object_array_clear
      Src: /src/git/shallow.c:228,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 61
    argCount: 6
    argNames:
    - heads
    - shallows
    - max_cur_depth
    - depth
    - shallow_flag
    - not_shallow_flag
    argTypes:
    - struct object_array*
    - struct object_array*
    - int*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 145
    functionDepth: 9
    functionLinenumber: 145
    functionLinenumberEnd: 233
    functionName: get_shallows_or_depth
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - parse_commit_or_die
    - object_array_clear
    - deref_tag
    - object_array_pop
    - lookup_commit_graft
    - add_object_array
    - init_commit_depth
    - xmalloc
    - is_repository_shallow
    - commit_depth_at
    - commit_list_insert
    - deep_clear_commit_depth
    - oideq
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *get_shallows_or_depth(struct object_array *heads,\n\t\t\t\tstruct
      object_array *shallows, int *max_cur_depth,\n\t\t\t\tint depth, int shallow_flag,
      int not_shallow_flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_shallows_or_depth
      Src: /src/git/shallow.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - heads
    - shallows
    argTypes:
    - struct object_array*
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 10
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: get_shallows_depth
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - get_shallows_or_depth
    linkageType: ''
    returnType: int
    signature: int get_shallows_depth(struct object_array *heads, struct object_array
      *shallows)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_shallows_depth
      Src: /src/git/shallow.c:248,1
    - Dst: get_shallows_or_depth
      Src: /src/git/shallow.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 6
    argNames:
    - heads
    - shallows
    - deepen_relative
    - depth
    - shallow_flag
    - not_shallow_flag
    argTypes:
    - struct object_array*
    - struct object_array*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 243
    functionDepth: 11
    functionLinenumber: 243
    functionLinenumberEnd: 256
    functionName: get_shallow_commits
    functionSourceFile: /src/git/shallow.c
    functionUses: 1
    functionsReached:
    - get_shallows_or_depth
    - get_shallows_depth
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *get_shallow_commits(struct object_array *heads,\n\t\t\t\t\tstruct
      object_array *shallows, int deepen_relative,\n\t\t\t\t\tint depth, int shallow_flag,
      int not_shallow_flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/shallow.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - commit
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: show_commit
    functionSourceFile: /src/git/shallow.c
    functionUses: 4
    functionsReached:
    - commit_list_insert
    linkageType: ''
    returnType: void
    signature: void show_commit(struct commit *commit, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_object_flags
      Src: /src/git/shallow.c:282,1
    - Dst: is_repository_shallow
      Src: /src/git/shallow.c:284,1
    - Dst: repo_init_revisions
      Src: /src/git/shallow.c:286,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/shallow.c:288,1
    - Dst: prepare_revision_walk
      Src: /src/git/shallow.c:290,1
    - Dst: die
      Src: /src/git/shallow.c:291,1
    - Dst: traverse_commit_list
      Src: /src/git/shallow.c:292,1
    - Dst: die
      Src: /src/git/shallow.c:295,1
    - Dst: repo_parse_commit
      Src: /src/git/shallow.c:312,1
    - Dst: die
      Src: /src/git/shallow.c:313,1
    - Dst: oid_to_hex
      Src: /src/git/shallow.c:314,1
    - Dst: commit_list_insert
      Src: /src/git/shallow.c:319,1
    - Dst: commit_list_free
      Src: /src/git/shallow.c:323,1
    - Dst: release_revisions
      Src: /src/git/shallow.c:334,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - argv
    - shallow_flag
    - not_shallow_flag
    argTypes:
    - struct strvec*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 269
    functionDepth: 20
    functionLinenumber: 269
    functionLinenumberEnd: 336
    functionName: get_shallow_commits_by_rev_list
    functionSourceFile: /src/git/shallow.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - die
    - traverse_commit_list
    - release_revisions
    - repo_parse_commit
    - repo_init_revisions
    - is_repository_shallow
    - setup_revisions_from_strvec
    - commit_list_free
    - prepare_revision_walk
    - clear_object_flags
    - commit_list_insert
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *get_shallow_commits_by_rev_list(struct strvec
      *argv,\n\t\t\t\t\t\t    int shallow_flag,\n\t\t\t\t\t\t    int not_shallow_flag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/shallow.c:341,1
    - Dst: stat_validity_check
      Src: /src/git/shallow.c:343,1
    - Dst: git_path_shallow
      Src: /src/git/shallow.c:344,1
    - Dst: die
      Src: /src/git/shallow.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 346
    functionName: check_shallow_file_for_update
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - git_path_shallow
    - die
    - BUG
    - stat_validity_check
    linkageType: ''
    returnType: void
    signature: void check_shallow_file_for_update(struct repository *r)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/shallow.c:362,1
    - Dst: odb_has_object
      Src: /src/git/shallow.c:366,1
    - Dst: lookup_commit
      Src: /src/git/shallow.c:370,1
    - Dst: printf
      Src: /src/git/shallow.c:373,1
    - Dst: oid_to_hex
      Src: /src/git/shallow.c:374,1
    - Dst: packet_buf_write
      Src: /src/git/shallow.c:380,1
    - Dst: strbuf_addstr
      Src: /src/git/shallow.c:382,1
    - Dst: strbuf_addch
      Src: /src/git/shallow.c:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - graft
    - cb_data
    argTypes:
    - struct commit_graft*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 359
    functionDepth: 12
    functionLinenumber: 359
    functionLinenumberEnd: 386
    functionName: write_one_shallow
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - packet_buf_write
    - strbuf_addch
    - odb_has_object
    - lookup_commit
    - strbuf_addstr
    - printf
    linkageType: ''
    returnType: int
    signature: int write_one_shallow(const struct commit_graft *graft, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_commit_graft
      Src: /src/git/shallow.c:398,1
    - Dst: strbuf_addstr
      Src: /src/git/shallow.c:402,1
    - Dst: oid_to_hex
      Src: /src/git/shallow.c:402,1
    - Dst: strbuf_addch
      Src: /src/git/shallow.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - out
    - use_pack_protocol
    - extra
    - flags
    argTypes:
    - struct strbuf*
    - int
    - struct oid_array*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 388
    functionDepth: 4
    functionLinenumber: 388
    functionLinenumberEnd: 407
    functionName: write_shallow_commits_1
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    - oid_to_hex
    - strbuf_addstr
    - for_each_commit_graft
    linkageType: ''
    returnType: int
    signature: "int write_shallow_commits_1(struct strbuf *out, int use_pack_protocol,\n\t\t\t\t
      \  const struct oid_array *extra,\n\t\t\t\t   unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_shallow_commits_1
      Src: /src/git/shallow.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - use_pack_protocol
    - extra
    argTypes:
    - struct strbuf*
    - int
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: write_shallow_commits
    functionSourceFile: /src/git/shallow.c
    functionUses: 2
    functionsReached:
    - write_shallow_commits_1
    linkageType: ''
    returnType: int
    signature: "int write_shallow_commits(struct strbuf *out, int use_pack_protocol,\n\t\t\t
      \ const struct oid_array *extra)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_shallow_commits
      Src: /src/git/shallow.c:420,1
    - Dst: repo_git_path
      Src: /src/git/shallow.c:421,1
    - Dst: xmks_tempfile
      Src: /src/git/shallow.c:422,1
    - Dst: free
      Src: /src/git/shallow.c:423,1
    - Dst: write_in_full
      Src: /src/git/shallow.c:425,1
    - Dst: close_tempfile_gently
      Src: /src/git/shallow.c:426,1
    - Dst: die_errno
      Src: /src/git/shallow.c:427,1
    - Dst: get_tempfile_path
      Src: /src/git/shallow.c:428,1
    - Dst: strbuf_release
      Src: /src/git/shallow.c:429,1
    - Dst: get_tempfile_path
      Src: /src/git/shallow.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - extra
    argTypes:
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 415
    functionDepth: 8
    functionLinenumber: 415
    functionLinenumberEnd: 437
    functionName: setup_temporary_shallow
    functionSourceFile: /src/git/shallow.c
    functionUses: 2
    functionsReached:
    - repo_git_path
    - strbuf_release
    - write_shallow_commits
    - die_errno
    - close_tempfile_gently
    - free
    - write_in_full
    - xmks_tempfile
    - get_tempfile_path
    linkageType: ''
    returnType: char
    signature: char *setup_temporary_shallow(const struct oid_array *extra)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hold_lock_file_for_update
      Src: /src/git/shallow.c:446,1
    - Dst: git_path_shallow
      Src: /src/git/shallow.c:447,1
    - Dst: check_shallow_file_for_update
      Src: /src/git/shallow.c:449,1
    - Dst: write_shallow_commits
      Src: /src/git/shallow.c:450,1
    - Dst: write_in_full
      Src: /src/git/shallow.c:451,1
    - Dst: die_errno
      Src: /src/git/shallow.c:452,1
    - Dst: get_lock_file_path
      Src: /src/git/shallow.c:453,1
    - Dst: get_lock_file_path
      Src: /src/git/shallow.c:454,1
    - Dst: strbuf_release
      Src: /src/git/shallow.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - shallow_lock
    - alternate_shallow_file
    - extra
    argTypes:
    - struct shallow_lock*
    - char**
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 462
    functionName: setup_alternate_shallow
    functionSourceFile: /src/git/shallow.c
    functionUses: 3
    functionsReached:
    - hold_lock_file_for_update
    - strbuf_release
    - write_shallow_commits
    - check_shallow_file_for_update
    - die_errno
    - git_path_shallow
    - write_in_full
    - get_lock_file_path
    linkageType: ''
    returnType: void
    signature: "void setup_alternate_shallow(struct shallow_lock *shallow_lock,\n\t\t\t
      \    const char **alternate_shallow_file,\n\t\t\t     const struct oid_array
      *extra)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_write_fmt
      Src: /src/git/shallow.c:468,1
    - Dst: oid_to_hex
      Src: /src/git/shallow.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - graft
    - cb
    argTypes:
    - struct commit_graft*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 7
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: advertise_shallow_grafts_cb
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - oid_to_hex
    linkageType: ''
    returnType: int
    signature: int advertise_shallow_grafts_cb(const struct commit_graft *graft, void
      *cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_repository_shallow
      Src: /src/git/shallow.c:474,1
    - Dst: for_each_commit_graft
      Src: /src/git/shallow.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 8
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: advertise_shallow_grafts
    functionSourceFile: /src/git/shallow.c
    functionUses: 1
    functionsReached:
    - is_repository_shallow
    - for_each_commit_graft
    linkageType: ''
    returnType: void
    signature: void advertise_shallow_grafts(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: write_shallow_commits_1
      Src: /src/git/shallow.c:497,1
    - Dst: strbuf_release
      Src: /src/git/shallow.c:498,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/shallow.c:501,1
    - Dst: git_path_shallow
      Src: /src/git/shallow.c:502,1
    - Dst: check_shallow_file_for_update
      Src: /src/git/shallow.c:504,1
    - Dst: write_shallow_commits_1
      Src: /src/git/shallow.c:505,1
    - Dst: write_in_full
      Src: /src/git/shallow.c:506,1
    - Dst: die_errno
      Src: /src/git/shallow.c:507,1
    - Dst: get_lock_file_path
      Src: /src/git/shallow.c:508,1
    - Dst: commit_shallow_file
      Src: /src/git/shallow.c:509,1
    - Dst: unlink
      Src: /src/git/shallow.c:511,1
    - Dst: git_path_shallow
      Src: /src/git/shallow.c:511,1
    - Dst: rollback_shallow_file
      Src: /src/git/shallow.c:512,1
    - Dst: strbuf_release
      Src: /src/git/shallow.c:514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - options
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 485
    functionDepth: 9
    functionLinenumber: 485
    functionLinenumberEnd: 515
    functionName: prune_shallow
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - hold_lock_file_for_update
    - commit_shallow_file
    - write_shallow_commits_1
    - check_shallow_file_for_update
    - die_errno
    - git_path_shallow
    - rollback_shallow_file
    - write_in_full
    - get_lock_file_path
    - unlink
    linkageType: ''
    returnType: void
    signature: void prune_shallow(unsigned options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf_key
      Src: /src/git/shallow.c:525,1
    - Dst: memset
      Src: /src/git/shallow.c:526,1
    - Dst: commit_stack_init
      Src: /src/git/shallow.c:527,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/shallow.c:531,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/shallow.c:532,1
    - Dst: odb_has_object
      Src: /src/git/shallow.c:534,1
    - Dst: lookup_commit_graft
      Src: /src/git/shallow.c:537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - info
    - sa
    argTypes:
    - struct shallow_info*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 523
    functionDepth: 12
    functionLinenumber: 523
    functionLinenumberEnd: 545
    functionName: prepare_shallow_info
    functionSourceFile: /src/git/shallow.c
    functionUses: 2
    functionsReached:
    - memset
    - commit_stack_init
    - ALLOC_ARRAY
    - trace_printf_key
    - lookup_commit_graft
    - odb_has_object
    linkageType: ''
    returnType: void
    signature: void prepare_shallow_info(struct shallow_info *info, struct oid_array
      *sa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/shallow.c:551,1
    - Dst: free
      Src: /src/git/shallow.c:552,1
    - Dst: free
      Src: /src/git/shallow.c:555,1
    - Dst: free
      Src: /src/git/shallow.c:556,1
    - Dst: free
      Src: /src/git/shallow.c:557,1
    - Dst: free
      Src: /src/git/shallow.c:558,1
    - Dst: free
      Src: /src/git/shallow.c:559,1
    - Dst: commit_stack_clear
      Src: /src/git/shallow.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 561
    functionName: clear_shallow_info
    functionSourceFile: /src/git/shallow.c
    functionUses: 1
    functionsReached:
    - commit_stack_clear
    - free
    linkageType: ''
    returnType: void
    signature: void clear_shallow_info(struct shallow_info *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf_key
      Src: /src/git/shallow.c:569,1
    - Dst: odb_has_object
      Src: /src/git/shallow.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 565
    functionDepth: 12
    functionLinenumber: 565
    functionLinenumberEnd: 578
    functionName: remove_nonexistent_theirs_shallow
    functionSourceFile: /src/git/shallow.c
    functionUses: 1
    functionsReached:
    - odb_has_object
    - trace_printf_key
    linkageType: ''
    returnType: void
    signature: void remove_nonexistent_theirs_shallow(struct shallow_info *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/git/shallow.c:594,1
    - Dst: BUG
      Src: /src/git/shallow.c:599,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/shallow.c:602,1
    - Dst: xmalloc
      Src: /src/git/shallow.c:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct paint_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 610
    functionName: paint_alloc
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - REALLOC_ARRAY
    - BUG
    - DIV_ROUND_UP
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t *paint_alloc(struct paint_info *info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/git/shallow.c:622,1
    - Dst: st_mult
      Src: /src/git/shallow.c:623,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/shallow.c:624,1
    - Dst: xmalloc
      Src: /src/git/shallow.c:632,1
    - Dst: paint_alloc
      Src: /src/git/shallow.c:633,1
    - Dst: memset
      Src: /src/git/shallow.c:634,1
    - Dst: commit_list_insert
      Src: /src/git/shallow.c:636,1
    - Dst: pop_commit
      Src: /src/git/shallow.c:639,1
    - Dst: ref_bitmap_at
      Src: /src/git/shallow.c:640,1
    - Dst: memcpy
      Src: /src/git/shallow.c:651,1
    - Dst: memcmp
      Src: /src/git/shallow.c:654,1
    - Dst: paint_alloc
      Src: /src/git/shallow.c:655,1
    - Dst: memcpy
      Src: /src/git/shallow.c:656,1
    - Dst: repo_parse_commit
      Src: /src/git/shallow.c:663,1
    - Dst: die
      Src: /src/git/shallow.c:664,1
    - Dst: oid_to_hex
      Src: /src/git/shallow.c:665,1
    - Dst: commit_list_insert
      Src: /src/git/shallow.c:670,1
    - Dst: get_max_object_index
      Src: /src/git/shallow.c:674,1
    - Dst: get_indexed_object
      Src: /src/git/shallow.c:676,1
    - Dst: free
      Src: /src/git/shallow.c:681,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - info
    - oid
    - id
    argTypes:
    - struct paint_info*
    - struct object_id*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 617
    functionDepth: 20
    functionLinenumber: 617
    functionLinenumberEnd: 682
    functionName: paint_down
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - paint_alloc
    - memset
    - oid_to_hex
    - die
    - DIV_ROUND_UP
    - lookup_commit_reference_gently
    - memcmp
    - repo_parse_commit
    - get_indexed_object
    - memcpy
    - pop_commit
    - xmalloc
    - get_max_object_index
    - ref_bitmap_at
    - free
    - commit_list_insert
    - st_mult
    linkageType: ''
    returnType: void
    signature: "void paint_down(struct paint_info *info, const struct object_id *oid,\n\t\t
      \      unsigned int id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference_gently
      Src: /src/git/shallow.c:686,1
    - Dst: mark_parents_uninteresting
      Src: /src/git/shallow.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 684
    functionDepth: 6
    functionLinenumber: 684
    functionLinenumberEnd: 693
    functionName: mark_uninteresting
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - mark_parents_uninteresting
    - lookup_commit_reference_gently
    linkageType: ''
    returnType: int
    signature: int mark_uninteresting(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf_key
      Src: /src/git/shallow.c:721,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/shallow.c:722,1
    - Dst: get_max_object_index
      Src: /src/git/shallow.c:732,1
    - Dst: get_indexed_object
      Src: /src/git/shallow.c:734,1
    - Dst: memset
      Src: /src/git/shallow.c:741,1
    - Dst: init_ref_bitmap
      Src: /src/git/shallow.c:742,1
    - Dst: refs_head_ref
      Src: /src/git/shallow.c:750,1
    - Dst: get_main_ref_store
      Src: /src/git/shallow.c:750,1
    - Dst: refs_for_each_ref
      Src: /src/git/shallow.c:752,1
    - Dst: get_main_ref_store
      Src: /src/git/shallow.c:752,1
    - Dst: lookup_commit
      Src: /src/git/shallow.c:757,1
    - Dst: paint_down
      Src: /src/git/shallow.c:763,1
    - Dst: DIV_ROUND_UP
      Src: /src/git/shallow.c:766,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/shallow.c:767,1
    - Dst: lookup_commit
      Src: /src/git/shallow.c:769,1
    - Dst: ref_bitmap_at
      Src: /src/git/shallow.c:771,1
    - Dst: xmemdupz
      Src: /src/git/shallow.c:773,1
    - Dst: post_assign_shallow
      Src: /src/git/shallow.c:782,1
    - Dst: clear_ref_bitmap
      Src: /src/git/shallow.c:784,1
    - Dst: free
      Src: /src/git/shallow.c:786,1
    - Dst: free
      Src: /src/git/shallow.c:787,1
    - Dst: free
      Src: /src/git/shallow.c:788,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - info
    - used
    - ref_status
    argTypes:
    - struct shallow_info*
    - uint32_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 712
    functionDepth: 21
    functionLinenumber: 712
    functionLinenumberEnd: 789
    functionName: assign_shallow_commits_to_refs
    functionSourceFile: /src/git/shallow.c
    functionUses: 1
    functionsReached:
    - xmemdupz
    - memset
    - refs_head_ref
    - DIV_ROUND_UP
    - paint_down
    - ALLOC_ARRAY
    - trace_printf_key
    - refs_for_each_ref
    - init_ref_bitmap
    - lookup_commit
    - get_max_object_index
    - MEMZERO_ARRAY
    - ref_bitmap_at
    - post_assign_shallow
    - free
    - get_main_ref_store
    - clear_ref_bitmap
    - get_indexed_object
    linkageType: ''
    returnType: void
    signature: "void assign_shallow_commits_to_refs(struct shallow_info *info,\n\t\t\t\t
      \   uint32_t **used, int *ref_status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference_gently
      Src: /src/git/shallow.c:794,1
    - Dst: commit_stack_push
      Src: /src/git/shallow.c:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 791
    functionDepth: 6
    functionLinenumber: 791
    functionLinenumberEnd: 799
    functionName: add_ref
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - commit_stack_push
    - lookup_commit_reference_gently
    linkageType: ''
    returnType: int
    signature: int add_ref(const struct reference *ref, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ref_status
    - nr
    - bitmap
    argTypes:
    - int*
    - size_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 808
    functionName: update_refstatus
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_refstatus(int *ref_status, size_t nr, uint32_t *bitmap)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/git/shallow.c:821,1
    - Dst: trace_printf_key
      Src: /src/git/shallow.c:824,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/shallow.c:826,1
    - Dst: lookup_commit
      Src: /src/git/shallow.c:832,1
    - Dst: ref_bitmap_at
      Src: /src/git/shallow.c:833,1
    - Dst: update_refstatus
      Src: /src/git/shallow.c:838,1
    - Dst: refs_head_ref
      Src: /src/git/shallow.c:845,1
    - Dst: get_main_ref_store
      Src: /src/git/shallow.c:845,1
    - Dst: refs_for_each_ref
      Src: /src/git/shallow.c:846,1
    - Dst: get_main_ref_store
      Src: /src/git/shallow.c:846,1
    - Dst: lookup_commit
      Src: /src/git/shallow.c:852,1
    - Dst: ref_bitmap_at
      Src: /src/git/shallow.c:853,1
    - Dst: repo_in_merge_bases_many
      Src: /src/git/shallow.c:859,1
    - Dst: exit
      Src: /src/git/shallow.c:861,1
    - Dst: update_refstatus
      Src: /src/git/shallow.c:863,1
    - Dst: commit_stack_clear
      Src: /src/git/shallow.c:871,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - info
    - ref_bitmap
    - ref_status
    argTypes:
    - struct shallow_info*
    - struct ref_bitmap*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 813
    functionDepth: 22
    functionLinenumber: 813
    functionLinenumberEnd: 872
    functionName: post_assign_shallow
    functionSourceFile: /src/git/shallow.c
    functionUses: 1
    functionsReached:
    - refs_head_ref
    - DIV_ROUND_UP
    - update_refstatus
    - exit
    - trace_printf_key
    - refs_for_each_ref
    - commit_stack_clear
    - MEMZERO_ARRAY
    - lookup_commit
    - ref_bitmap_at
    - repo_in_merge_bases_many
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void post_assign_shallow(struct shallow_info *info,\n\t\t\t\tstruct
      ref_bitmap *ref_bitmap,\n\t\t\t\tint *ref_status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit
      Src: /src/git/shallow.c:878,1
    - Dst: refs_head_ref
      Src: /src/git/shallow.c:882,1
    - Dst: get_main_ref_store
      Src: /src/git/shallow.c:882,1
    - Dst: refs_for_each_ref
      Src: /src/git/shallow.c:884,1
    - Dst: get_main_ref_store
      Src: /src/git/shallow.c:884,1
    - Dst: repo_in_merge_bases_many
      Src: /src/git/shallow.c:888,1
    - Dst: exit
      Src: /src/git/shallow.c:894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - si
    - c
    argTypes:
    - struct shallow_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 875
    functionDepth: 22
    functionLinenumber: 875
    functionLinenumberEnd: 898
    functionName: delayed_reachability_test
    functionSourceFile: /src/git/shallow.c
    functionUses: 0
    functionsReached:
    - refs_head_ref
    - exit
    - refs_for_each_ref
    - lookup_commit
    - repo_in_merge_bases_many
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int delayed_reachability_test(struct shallow_info *si, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mutex
    - ','
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: pthread_mutex_init
    functionSourceFile: /src/git/thread-utils.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_mutex_init(mutex, attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: pthread_cond_init
    functionSourceFile: /src/git/thread-utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_cond_init(cond, attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: pthread_key_create
    functionSourceFile: /src/git/thread-utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_key_create(key, attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - thread
    - ','
    - attr
    - ','
    - fn
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: pthread_create
    functionSourceFile: /src/git/thread-utils.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_create(thread, attr, fn, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - thread
    - ','
    - retval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: pthread_join
    functionSourceFile: /src/git/thread-utils.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_join(thread, retval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: pthread_getspecific
    functionSourceFile: /src/git/thread-utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_getspecific(key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/midx-write.c:41,1
    - Dst: hashwrite_be32
      Src: /src/git/midx-write.c:43,1
    - Dst: hashwrite_u8
      Src: /src/git/midx-write.c:44,1
    - Dst: hashwrite_u8
      Src: /src/git/midx-write.c:45,1
    - Dst: oid_version
      Src: /src/git/midx-write.c:45,1
    - Dst: hashwrite_u8
      Src: /src/git/midx-write.c:46,1
    - Dst: hashwrite_u8
      Src: /src/git/midx-write.c:47,1
    - Dst: hashwrite_be32
      Src: /src/git/midx-write.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - hash_algo
    - f
    - num_chunks
    - num_packs
    - version
    argTypes:
    - struct git_hash_algo*
    - struct hashfile*
    - unsigned char
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: write_midx_header
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    - oid_version
    - BUG
    - hashwrite_u8
    linkageType: ''
    returnType: size_t
    signature: "size_t write_midx_header(const struct git_hash_algo *hash_algo,\n\t\t\t\tstruct
      hashfile *f, unsigned char num_chunks,\n\t\t\t\tuint32_t num_packs, int version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/midx-write.c:68,1
    - Dst: xstrdup
      Src: /src/git/midx-write.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - info
    - p
    - pack_name
    - orig_pack_int_id
    argTypes:
    - struct pack_info*
    - struct packed_git*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: fill_pack_info
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - memset
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void fill_pack_info(struct pack_info *info,\n\t\t\t   struct packed_git
      *p, const char *pack_name,\n\t\t\t   uint32_t orig_pack_int_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/midx-write.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: pack_info_compare
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int pack_info_compare(const void *_a, const void *_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmp_idx_or_pack_name
      Src: /src/git/midx-write.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _va
    - _vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: idx_or_pack_name_cmp
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - cmp_idx_or_pack_name
    linkageType: ''
    returnType: int
    signature: int idx_or_pack_name_cmp(const void *_va, const void *_vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - orig_pack_int_id
    argTypes:
    - struct write_midx_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: midx_pack_perm
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t midx_pack_perm(struct write_midx_context *ctx,\n\t\t\t       uint32_t
      orig_pack_int_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: midx_contains_pack
      Src: /src/git/midx-write.c:151,1
    - Dst: midx_contains_pack
      Src: /src/git/midx-write.c:153,1
    - Dst: string_list_has_string
      Src: /src/git/midx-write.c:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - file_name
    argTypes:
    - struct write_midx_context*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 160
    functionName: should_include_pack
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - string_list_has_string
    - midx_contains_pack
    linkageType: ''
    returnType: int
    signature: "int should_include_pack(const struct write_midx_context *ctx,\n\t\t\t
      \      const char *file_name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ends_with
      Src: /src/git/midx-write.c:168,1
    - Dst: display_progress
      Src: /src/git/midx-write.c:169,1
    - Dst: should_include_pack
      Src: /src/git/midx-write.c:171,1
    - Dst: ALLOC_GROW
      Src: /src/git/midx-write.c:174,1
    - Dst: add_packed_git
      Src: /src/git/midx-write.c:175,1
    - Dst: warning
      Src: /src/git/midx-write.c:177,1
    - Dst: _
      Src: /src/git/midx-write.c:177,1
    - Dst: open_pack_index
      Src: /src/git/midx-write.c:182,1
    - Dst: warning
      Src: /src/git/midx-write.c:183,1
    - Dst: _
      Src: /src/git/midx-write.c:183,1
    - Dst: close_pack
      Src: /src/git/midx-write.c:185,1
    - Dst: free
      Src: /src/git/midx-write.c:186,1
    - Dst: fill_pack_info
      Src: /src/git/midx-write.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - full_path
    - full_path_len
    - file_name
    - data
    argTypes:
    - char*
    - size_t
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: add_pack_to_midx
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - close_pack
    - fill_pack_info
    - should_include_pack
    - display_progress
    - add_packed_git
    - ALLOC_GROW
    - ends_with
    - free
    - warning
    - open_pack_index
    - _
    linkageType: ''
    returnType: void
    signature: "void add_pack_to_midx(const char *full_path, size_t full_path_len,\n\t\t\t
      \    const char *file_name, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/midx-write.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 224
    functionName: midx_oid_compare
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - oidcmp
    linkageType: ''
    returnType: int
    signature: int midx_oid_compare(const void *_a, const void *_b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nth_midxed_object_oid
      Src: /src/git/midx-write.c:233,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/midx-write.c:234,1
    - Dst: nth_midxed_offset
      Src: /src/git/midx-write.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - m
    - e
    - pos
    argTypes:
    - struct multi_pack_index*
    - struct pack_midx_entry*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 240
    functionName: nth_midxed_pack_midx_entry
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - nth_midxed_pack_int_id
    - nth_midxed_object_oid
    - nth_midxed_offset
    linkageType: ''
    returnType: int
    signature: "int nth_midxed_pack_midx_entry(struct multi_pack_index *m,\n\t\t\t\t
      \     struct pack_midx_entry *e,\n\t\t\t\t      uint32_t pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nth_packed_object_id
      Src: /src/git/midx-write.c:248,1
    - Dst: die
      Src: /src/git/midx-write.c:249,1
    - Dst: _
      Src: /src/git/midx-write.c:249,1
    - Dst: nth_packed_object_offset
      Src: /src/git/midx-write.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - pack_int_id
    - p
    - cur_object
    - entry
    - preferred
    argTypes:
    - uint32_t
    - struct packed_git*
    - uint32_t
    - struct pack_midx_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 256
    functionName: fill_pack_entry
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - nth_packed_object_offset
    - nth_packed_object_id
    - die
    - _
    linkageType: ''
    returnType: void
    signature: "void fill_pack_entry(uint32_t pack_int_id,\n\t\t\t    struct packed_git
      *p,\n\t\t\t    uint32_t cur_object,\n\t\t\t    struct pack_midx_entry *entry,\n\t\t\t
      \   int preferred)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/midx-write.c:266,1
    - Dst: ALLOC_GROW
      Src: /src/git/midx-write.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fanout
    - nr
    argTypes:
    - struct midx_fanout*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: midx_fanout_grow
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - BUG
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void midx_fanout_grow(struct midx_fanout *fanout, size_t nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/midx-write.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fanout
    argTypes:
    - struct midx_fanout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: midx_fanout_sort
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - QSORT
    linkageType: ''
    returnType: void
    signature: void midx_fanout_sort(struct midx_fanout *fanout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/git/midx-write.c:285,1
    - Dst: ntohl
      Src: /src/git/midx-write.c:286,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/midx-write.c:290,1
    - Dst: midx_fanout_grow
      Src: /src/git/midx-write.c:298,1
    - Dst: nth_midxed_pack_midx_entry
      Src: /src/git/midx-write.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - fanout
    - m
    - cur_fanout
    - preferred_pack
    argTypes:
    - struct midx_fanout*
    - struct multi_pack_index*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 305
    functionName: midx_fanout_add_midx_fanout_1
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - nth_midxed_pack_int_id
    - ntohl
    - midx_fanout_grow
    - nth_midxed_pack_midx_entry
    linkageType: ''
    returnType: void
    signature: "void midx_fanout_add_midx_fanout_1(struct midx_fanout *fanout,\n\t\t\t\t\t
      \ struct multi_pack_index *m,\n\t\t\t\t\t  uint32_t cur_fanout,\n\t\t\t\t\t
      \ uint32_t preferred_pack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: midx_fanout_add_midx_fanout
      Src: /src/git/midx-write.c:313,1
    - Dst: midx_fanout_add_midx_fanout_1
      Src: /src/git/midx-write.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - fanout
    - m
    - cur_fanout
    - preferred_pack
    argTypes:
    - struct midx_fanout*
    - struct multi_pack_index*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 5
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: midx_fanout_add_midx_fanout
    functionSourceFile: /src/git/midx-write.c
    functionUses: 1
    functionsReached:
    - midx_fanout_add_midx_fanout_1
    - midx_fanout_add_midx_fanout
    linkageType: ''
    returnType: void
    signature: "void midx_fanout_add_midx_fanout(struct midx_fanout *fanout,\n\t\t\t\t\tstruct
      multi_pack_index *m,\n\t\t\t\t\tuint32_t cur_fanout,\n\t\t\t\t\tuint32_t preferred_pack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_pack_fanout
      Src: /src/git/midx-write.c:329,1
    - Dst: get_pack_fanout
      Src: /src/git/midx-write.c:330,1
    - Dst: midx_fanout_grow
      Src: /src/git/midx-write.c:333,1
    - Dst: fill_pack_entry
      Src: /src/git/midx-write.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - fanout
    - info
    - cur_pack
    - preferred
    - cur_fanout
    argTypes:
    - struct midx_fanout*
    - struct pack_info*
    - uint32_t
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 341
    functionName: midx_fanout_add_pack_fanout
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - midx_fanout_grow
    - fill_pack_entry
    - get_pack_fanout
    linkageType: ''
    returnType: void
    signature: "void midx_fanout_add_pack_fanout(struct midx_fanout *fanout,\n\t\t\t\t\tstruct
      pack_info *info,\n\t\t\t\t\tuint32_t cur_pack,\n\t\t\t\t\tint preferred,\n\t\t\t\t\tuint32_t
      cur_fanout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: midx_fanout_add_midx_fanout
      Src: /src/git/midx-write.c:351,1
    - Dst: midx_fanout_add_pack_fanout
      Src: /src/git/midx-write.c:356,1
    - Dst: midx_fanout_add_pack_fanout
      Src: /src/git/midx-write.c:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - fanout
    - ctx
    - start_pack
    - cur_fanout
    argTypes:
    - struct midx_fanout*
    - struct write_midx_context*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 343
    functionDepth: 6
    functionLinenumber: 343
    functionLinenumberEnd: 365
    functionName: midx_fanout_add
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - midx_fanout_add_midx_fanout
    - midx_fanout_add_pack_fanout
    linkageType: ''
    returnType: void
    signature: "void midx_fanout_add(struct midx_fanout *fanout,\n\t\t\t    struct
      write_midx_context *ctx,\n\t\t\t    uint32_t start_pack,\n\t\t\t    uint32_t
      cur_fanout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/git/midx-write.c:373,1
    - Dst: midx_fanout_add_midx_fanout_1
      Src: /src/git/midx-write.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - fanout
    - ctx
    - cur_fanout
    argTypes:
    - struct midx_fanout*
    - struct write_midx_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: midx_fanout_add_compact
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - midx_fanout_add_midx_fanout_1
    linkageType: ''
    returnType: void
    signature: "void midx_fanout_add_compact(struct midx_fanout *fanout,\n\t\t\t\t
      \   struct write_midx_context *ctx,\n\t\t\t\t    uint32_t cur_fanout)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/git/midx-write.c:401,1
    - Dst: st_add
      Src: /src/git/midx-write.c:404,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/midx-write.c:414,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/midx-write.c:415,1
    - Dst: midx_fanout_add_compact
      Src: /src/git/midx-write.c:422,1
    - Dst: midx_fanout_add
      Src: /src/git/midx-write.c:424,1
    - Dst: midx_fanout_sort
      Src: /src/git/midx-write.c:425,1
    - Dst: oideq
      Src: /src/git/midx-write.c:432,1
    - Dst: midx_has_oid
      Src: /src/git/midx-write.c:436,1
    - Dst: ALLOC_GROW
      Src: /src/git/midx-write.c:440,1
    - Dst: st_add
      Src: /src/git/midx-write.c:440,1
    - Dst: memcpy
      Src: /src/git/midx-write.c:442,1
    - Dst: free
      Src: /src/git/midx-write.c:449,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - ctx
    - start_pack
    argTypes:
    - struct write_midx_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 393
    functionDepth: 7
    functionLinenumber: 393
    functionLinenumberEnd: 450
    functionName: compute_sorted_entries
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - midx_has_oid
    - midx_fanout_add_compact
    - ALLOC_ARRAY
    - memcpy
    - ASSERT
    - midx_fanout_add
    - midx_fanout_sort
    - ALLOC_GROW
    - free
    - st_add
    - oideq
    linkageType: ''
    returnType: void
    signature: "void compute_sorted_entries(struct write_midx_context *ctx,\n\t\t\t\t
      \  uint32_t start_pack)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/midx-write.c:466,1
    - Dst: BUG
      Src: /src/git/midx-write.c:468,1
    - Dst: strlen
      Src: /src/git/midx-write.c:472,1
    - Dst: hashwrite
      Src: /src/git/midx-write.c:473,1
    - Dst: memset
      Src: /src/git/midx-write.c:480,1
    - Dst: hashwrite
      Src: /src/git/midx-write.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 485
    functionName: write_midx_pack_names
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - memset
    - hashwrite
    - strlen
    - strcmp
    - BUG
    linkageType: ''
    returnType: int
    signature: int write_midx_pack_names(struct hashfile *f, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/midx-write.c:498,1
    - Dst: hashwrite_be32
      Src: /src/git/midx-write.c:501,1
    - Dst: hashwrite_be32
      Src: /src/git/midx-write.c:502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 505
    functionName: write_midx_bitmapped_packs
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    - BUG
    linkageType: ''
    returnType: int
    signature: int write_midx_bitmapped_packs(struct hashfile *f, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite_be32
      Src: /src/git/midx-write.c:529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 534
    functionName: write_midx_oid_fanout
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    linkageType: ''
    returnType: int
    signature: "int write_midx_oid_fanout(struct hashfile *f,\n\t\t\t\t void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/midx-write.c:549,1
    - Dst: BUG
      Src: /src/git/midx-write.c:550,1
    - Dst: oid_to_hex
      Src: /src/git/midx-write.c:551,1
    - Dst: oid_to_hex
      Src: /src/git/midx-write.c:552,1
    - Dst: hashwrite
      Src: /src/git/midx-write.c:555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 559
    functionName: write_midx_oid_lookup
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - BUG
    - oid_to_hex
    - oidcmp
    - hashwrite
    linkageType: ''
    returnType: int
    signature: "int write_midx_oid_lookup(struct hashfile *f,\n\t\t\t\t void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: midx_pack_perm
      Src: /src/git/midx-write.c:571,1
    - Dst: BUG
      Src: /src/git/midx-write.c:572,1
    - Dst: oid_to_hex
      Src: /src/git/midx-write.c:573,1
    - Dst: hashwrite_be32
      Src: /src/git/midx-write.c:576,1
    - Dst: midx_pack_perm
      Src: /src/git/midx-write.c:576,1
    - Dst: hashwrite_be32
      Src: /src/git/midx-write.c:579,1
    - Dst: BUG
      Src: /src/git/midx-write.c:581,1
    - Dst: oid_to_hex
      Src: /src/git/midx-write.c:582,1
    - Dst: hashwrite_be32
      Src: /src/git/midx-write.c:585,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 589
    functionName: write_midx_object_offsets
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    - midx_pack_perm
    - oid_to_hex
    - BUG
    linkageType: ''
    returnType: int
    signature: "int write_midx_object_offsets(struct hashfile *f,\n\t\t\t\t     void
      *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/midx-write.c:604,1
    - Dst: hashwrite_be64
      Src: /src/git/midx-write.c:612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 618
    functionName: write_midx_large_offsets
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be64
    - BUG
    linkageType: ''
    returnType: int
    signature: "int write_midx_large_offsets(struct hashfile *f,\n\t\t\t\t    void
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite_be32
      Src: /src/git/midx-write.c:633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - f
    - data
    argTypes:
    - struct hashfile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 636
    functionName: write_midx_revindex
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    linkageType: ''
    returnType: int
    signature: "int write_midx_revindex(struct hashfile *f,\n\t\t\t       void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 657
    functionName: midx_pack_order_cmp
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int midx_pack_order_cmp(const void *va, const void *vb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/midx-write.c:665,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/midx-write.c:671,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/midx-write.c:672,1
    - Dst: midx_pack_perm
      Src: /src/git/midx-write.c:677,1
    - Dst: QSORT
      Src: /src/git/midx-write.c:683,1
    - Dst: midx_pack_perm
      Src: /src/git/midx-write.c:687,1
    - Dst: free
      Src: /src/git/midx-write.c:698,1
    - Dst: trace2_region_leave
      Src: /src/git/midx-write.c:700,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_midx_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 703
    functionName: midx_pack_order
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - trace2_region_leave
    - ALLOC_ARRAY
    - trace2_region_enter
    - midx_pack_perm
    - QSORT
    - free
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t *midx_pack_order(struct write_midx_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/midx-write.c:711,1
    - Dst: get_split_midx_filename_ext
      Src: /src/git/midx-write.c:714,1
    - Dst: get_midx_filename_ext
      Src: /src/git/midx-write.c:717,1
    - Dst: write_rev_file_order
      Src: /src/git/midx-write.c:720,1
    - Dst: finalize_object_file
      Src: /src/git/midx-write.c:723,1
    - Dst: die
      Src: /src/git/midx-write.c:724,1
    - Dst: _
      Src: /src/git/midx-write.c:724,1
    - Dst: strbuf_release
      Src: /src/git/midx-write.c:726,1
    - Dst: free
      Src: /src/git/midx-write.c:727,1
    - Dst: trace2_region_leave
      Src: /src/git/midx-write.c:729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - midx_hash
    argTypes:
    - struct write_midx_context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 730
    functionName: write_midx_reverse_index
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - get_split_midx_filename_ext
    - trace2_region_leave
    - trace2_region_enter
    - write_rev_file_order
    - _
    - free
    - get_midx_filename_ext
    - finalize_object_file
    linkageType: ''
    returnType: void
    signature: "void write_midx_reverse_index(struct write_midx_context *ctx,\n\t\t\t\t
      \    unsigned char *midx_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/midx-write.c:737,1
    - Dst: memset
      Src: /src/git/midx-write.c:739,1
    - Dst: prepare_packing_data
      Src: /src/git/midx-write.c:740,1
    - Dst: packlist_alloc
      Src: /src/git/midx-write.c:745,1
    - Dst: oe_set_in_pack
      Src: /src/git/midx-write.c:747,1
    - Dst: midx_pack_perm
      Src: /src/git/midx-write.c:748,1
    - Dst: trace2_region_leave
      Src: /src/git/midx-write.c:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pdata
    - ctx
    argTypes:
    - struct packing_data*
    - struct write_midx_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 732
    functionDepth: 7
    functionLinenumber: 732
    functionLinenumberEnd: 752
    functionName: prepare_midx_packing_data
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - memset
    - packlist_alloc
    - trace2_region_leave
    - trace2_region_enter
    - oe_set_in_pack
    - midx_pack_perm
    - prepare_packing_data
    linkageType: ''
    returnType: void
    signature: "void prepare_midx_packing_data(struct packing_data *pdata,\n\t\t\t\t
      \     struct write_midx_context *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/midx-write.c:762,1
    - Dst: reference_get_peeled_oid
      Src: /src/git/midx-write.c:766,1
    - Dst: parse_object_or_die
      Src: /src/git/midx-write.c:769,1
    - Dst: add_pending_object
      Src: /src/git/midx-write.c:773,1
    - Dst: bitmap_is_preferred_refname
      Src: /src/git/midx-write.c:774,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 754
    functionDepth: 21
    functionLinenumber: 754
    functionLinenumberEnd: 777
    functionName: add_ref_to_pending
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - reference_get_peeled_oid
    - parse_object_or_die
    - add_pending_object
    - bitmap_is_preferred_refname
    - warning
    linkageType: ''
    returnType: int
    signature: int add_ref_to_pending(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - _entries
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 789
    functionName: bitmap_oid_access
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: "struct object_id *bitmap_oid_access(size_t index,\n\t\t\t\t\t\t const
      void *_entries)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oid_pos
      Src: /src/git/midx-write.c:794,1
    - Dst: commit_stack_push
      Src: /src/git/midx-write.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - commit
    - _data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 791
    functionDepth: 5
    functionLinenumber: 791
    functionLinenumberEnd: 801
    functionName: bitmap_show_commit
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - oid_pos
    - commit_stack_push
    linkageType: ''
    returnType: void
    signature: void bitmap_show_commit(struct commit *commit, void *_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xfopen
      Src: /src/git/midx-write.c:808,1
    - Dst: strbuf_getline
      Src: /src/git/midx-write.c:810,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/midx-write.c:821,1
    - Dst: die
      Src: /src/git/midx-write.c:822,1
    - Dst: _
      Src: /src/git/midx-write.c:822,1
    - Dst: die
      Src: /src/git/midx-write.c:824,1
    - Dst: _
      Src: /src/git/midx-write.c:824,1
    - Dst: parse_object_or_die
      Src: /src/git/midx-write.c:826,1
    - Dst: add_pending_object
      Src: /src/git/midx-write.c:830,1
    - Dst: fclose
      Src: /src/git/midx-write.c:833,1
    - Dst: strbuf_release
      Src: /src/git/midx-write.c:834,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - refs_snapshot
    - revs
    argTypes:
    - char*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 803
    functionDepth: 5
    functionLinenumber: 803
    functionLinenumberEnd: 836
    functionName: read_refs_snapshot
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - die
    - parse_oid_hex_algop
    - parse_object_or_die
    - add_pending_object
    - _
    - strbuf_getline
    - xfopen
    linkageType: ''
    returnType: int
    signature: "int read_refs_snapshot(const char *refs_snapshot,\n\t\t\t      struct
      rev_info *revs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/midx-write.c:845,1
    - Dst: repo_init_revisions
      Src: /src/git/midx-write.c:847,1
    - Dst: read_refs_snapshot
      Src: /src/git/midx-write.c:849,1
    - Dst: setup_revisions
      Src: /src/git/midx-write.c:851,1
    - Dst: refs_for_each_ref
      Src: /src/git/midx-write.c:852,1
    - Dst: get_main_ref_store
      Src: /src/git/midx-write.c:852,1
    - Dst: prepare_revision_walk
      Src: /src/git/midx-write.c:871,1
    - Dst: die
      Src: /src/git/midx-write.c:872,1
    - Dst: _
      Src: /src/git/midx-write.c:872,1
    - Dst: traverse_commit_list
      Src: /src/git/midx-write.c:874,1
    - Dst: release_revisions
      Src: /src/git/midx-write.c:876,1
    - Dst: trace2_region_leave
      Src: /src/git/midx-write.c:878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - commits
    - refs_snapshot
    - ctx
    argTypes:
    - struct commit_stack*
    - char*
    - struct write_midx_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 838
    functionDepth: 12
    functionLinenumber: 838
    functionLinenumberEnd: 879
    functionName: find_commits_for_midx_bitmap
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - die
    - traverse_commit_list
    - release_revisions
    - trace2_region_leave
    - refs_for_each_ref
    - read_refs_snapshot
    - trace2_region_enter
    - repo_init_revisions
    - prepare_revision_walk
    - _
    - setup_revisions
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void find_commits_for_midx_bitmap(struct commit_stack *commits,\n\t\t\t\t\t
      const char *refs_snapshot,\n\t\t\t\t\t struct write_midx_context *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/midx-write.c:894,1
    - Dst: get_split_midx_filename_ext
      Src: /src/git/midx-write.c:897,1
    - Dst: get_midx_filename_ext
      Src: /src/git/midx-write.c:900,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/midx-write.c:914,1
    - Dst: bitmap_writer_init
      Src: /src/git/midx-write.c:918,1
    - Dst: bitmap_writer_show_progress
      Src: /src/git/midx-write.c:920,1
    - Dst: bitmap_writer_build_type_index
      Src: /src/git/midx-write.c:921,1
    - Dst: bitmap_writer_select_commits
      Src: /src/git/midx-write.c:939,1
    - Dst: bitmap_writer_build
      Src: /src/git/midx-write.c:940,1
    - Dst: bitmap_writer_set_checksum
      Src: /src/git/midx-write.c:944,1
    - Dst: bitmap_writer_finish
      Src: /src/git/midx-write.c:945,1
    - Dst: free
      Src: /src/git/midx-write.c:948,1
    - Dst: strbuf_release
      Src: /src/git/midx-write.c:949,1
    - Dst: bitmap_writer_free
      Src: /src/git/midx-write.c:950,1
    - Dst: trace2_region_leave
      Src: /src/git/midx-write.c:952,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 6
    argNames:
    - ctx
    - midx_hash
    - pdata
    - commits
    - commits_nr
    - flags
    argTypes:
    - struct write_midx_context*
    - unsigned char*
    - struct packing_data*
    - struct commit**
    - uint32_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 881
    functionDepth: 5
    functionLinenumber: 881
    functionLinenumberEnd: 955
    functionName: write_midx_bitmap
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - bitmap_writer_build
    - get_split_midx_filename_ext
    - bitmap_writer_select_commits
    - trace2_region_leave
    - ALLOC_ARRAY
    - bitmap_writer_finish
    - trace2_region_enter
    - bitmap_writer_free
    - bitmap_writer_build_type_index
    - bitmap_writer_set_checksum
    - free
    - bitmap_writer_init
    - bitmap_writer_show_progress
    - get_midx_filename_ext
    linkageType: ''
    returnType: int
    signature: "int write_midx_bitmap(struct write_midx_context *ctx,\n\t\t\t     const
      unsigned char *midx_hash,\n\t\t\t     struct packing_data *pdata,\n\t\t\t     struct
      commit **commits,\n\t\t\t     uint32_t commits_nr,\n\t\t\t     unsigned flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_midx_pack
      Src: /src/git/midx-write.c:961,1
    - Dst: error
      Src: /src/git/midx-write.c:962,1
    - Dst: _
      Src: /src/git/midx-write.c:962,1
    - Dst: fill_pack_info
      Src: /src/git/midx-write.c:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - info
    - m
    - pack_int_id
    argTypes:
    - struct pack_info*
    - struct multi_pack_index*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 957
    functionDepth: 3
    functionLinenumber: 957
    functionLinenumberEnd: 970
    functionName: fill_pack_from_midx
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - error
    - fill_pack_info
    - _
    - prepare_midx_pack
    linkageType: ''
    returnType: int
    signature: "int fill_pack_from_midx(struct pack_info *info,\n\t\t\t       struct
      multi_pack_index *m,\n\t\t\t       uint32_t pack_int_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/midx-write.c:981,1
    - Dst: fill_pack_from_midx
      Src: /src/git/midx-write.c:983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct write_midx_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 972
    functionDepth: 4
    functionLinenumber: 972
    functionLinenumberEnd: 990
    functionName: fill_packs_from_midx
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - fill_pack_from_midx
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: int fill_packs_from_midx(struct write_midx_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/git/midx-write.c:997,1
    - Dst: unsigned_add_overflows
      Src: /src/git/midx-write.c:999,1
    - Dst: die
      Src: /src/git/midx-write.c:1000,1
    - Dst: _
      Src: /src/git/midx-write.c:1000,1
    - Dst: BUG
      Src: /src/git/midx-write.c:1004,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - struct multi_pack_index*
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1008
    functionName: compactible_packs_between
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - die
    - ASSERT
    - unsigned_add_overflows
    - _
    - BUG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t compactible_packs_between(const struct multi_pack_index *from,\n\t\t\t\t\t
      \ const struct multi_pack_index *to)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/git/midx-write.c:1016,1
    - Dst: ASSERT
      Src: /src/git/midx-write.c:1017,1
    - Dst: ASSERT
      Src: /src/git/midx-write.c:1018,1
    - Dst: compactible_packs_between
      Src: /src/git/midx-write.c:1020,1
    - Dst: ALLOC_GROW
      Src: /src/git/midx-write.c:1023,1
    - Dst: midx_preferred_pack
      Src: /src/git/midx-write.c:1030,1
    - Dst: die
      Src: /src/git/midx-write.c:1031,1
    - Dst: _
      Src: /src/git/midx-write.c:1031,1
    - Dst: fill_pack_from_midx
      Src: /src/git/midx-write.c:1038,1
    - Dst: fill_pack_from_midx
      Src: /src/git/midx-write.c:1047,1
    - Dst: ASSERT
      Src: /src/git/midx-write.c:1056,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - ctx
    - bitmap_order
    argTypes:
    - struct write_midx_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1010
    functionDepth: 4
    functionLinenumber: 1010
    functionLinenumberEnd: 1059
    functionName: fill_packs_from_midx_range
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - die
    - fill_pack_from_midx
    - ASSERT
    - ALLOC_GROW
    - compactible_packs_between
    - midx_preferred_pack
    - _
    linkageType: ''
    returnType: int
    signature: "int fill_packs_from_midx_range(struct write_midx_context *ctx,\n\t\t\t\t
      \     int bitmap_order)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/midx-write.c:1086,1
    - Dst: midx_get_checksum_hash
      Src: /src/git/midx-write.c:1087,1
    - Dst: get_midx_filename_ext
      Src: /src/git/midx-write.c:1089,1
    - Dst: get_split_midx_filename_ext
      Src: /src/git/midx-write.c:1091,1
    - Dst: link
      Src: /src/git/midx-write.c:1094,1
    - Dst: error_errno
      Src: /src/git/midx-write.c:1095,1
    - Dst: _
      Src: /src/git/midx-write.c:1095,1
    - Dst: strbuf_reset
      Src: /src/git/midx-write.c:1100,1
    - Dst: strbuf_reset
      Src: /src/git/midx-write.c:1101,1
    - Dst: strbuf_release
      Src: /src/git/midx-write.c:1105,1
    - Dst: strbuf_release
      Src: /src/git/midx-write.c:1106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct multi_pack_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1070
    functionDepth: 3
    functionLinenumber: 1070
    functionLinenumberEnd: 1108
    functionName: link_midx_to_chain
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - error_errno
    - strbuf_release
    - get_split_midx_filename_ext
    - strbuf_reset
    - midx_get_checksum_hash
    - link
    - _
    - get_midx_filename_ext
    linkageType: ''
    returnType: int
    signature: int link_midx_to_chain(struct multi_pack_index *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/midx-write.c:1127,1
    - Dst: clear_incremental_midx_files_ext
      Src: /src/git/midx-write.c:1128,1
    - Dst: clear_midx_files_ext
      Src: /src/git/midx-write.c:1131,1
    - Dst: get_midx_filename
      Src: /src/git/midx-write.c:1137,1
    - Dst: get_midx_chain_filename
      Src: /src/git/midx-write.c:1139,1
    - Dst: unlink
      Src: /src/git/midx-write.c:1141,1
    - Dst: die_errno
      Src: /src/git/midx-write.c:1142,1
    - Dst: _
      Src: /src/git/midx-write.c:1142,1
    - Dst: strbuf_release
      Src: /src/git/midx-write.c:1144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - source
    - hashes
    - incremental
    argTypes:
    - struct odb_source*
    - struct strvec*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1110
    functionDepth: 3
    functionLinenumber: 1110
    functionLinenumberEnd: 1145
    functionName: clear_midx_files
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - get_midx_filename
    - ARRAY_SIZE
    - clear_incremental_midx_files_ext
    - strbuf_release
    - clear_midx_files_ext
    - die_errno
    - get_midx_chain_filename
    - _
    - unlink
    linkageType: ''
    returnType: void
    signature: "void clear_midx_files(struct odb_source *source,\n\t\t\t     const
      struct strvec *hashes, unsigned incremental)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: midx_checksum_valid
      Src: /src/git/midx-write.c:1164,1
    - Dst: strbuf_reset
      Src: /src/git/midx-write.c:1203,1
    - Dst: strbuf_addstr
      Src: /src/git/midx-write.c:1204,1
    - Dst: pack_basename
      Src: /src/git/midx-write.c:1204,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/midx-write.c:1205,1
    - Dst: strset_add
      Src: /src/git/midx-write.c:1207,1
    - Dst: BUG
      Src: /src/git/midx-write.c:1208,1
    - Dst: strbuf_reset
      Src: /src/git/midx-write.c:1213,1
    - Dst: strbuf_addstr
      Src: /src/git/midx-write.c:1214,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/midx-write.c:1215,1
    - Dst: strset_contains
      Src: /src/git/midx-write.c:1217,1
    - Dst: strset_remove
      Src: /src/git/midx-write.c:1219,1
    - Dst: strbuf_release
      Src: /src/git/midx-write.c:1226,1
    - Dst: strset_clear
      Src: /src/git/midx-write.c:1227,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - midx
    - ctx
    argTypes:
    - struct multi_pack_index*
    - struct write_midx_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1147
    functionDepth: 4
    functionLinenumber: 1147
    functionLinenumberEnd: 1229
    functionName: midx_needs_update
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - strset_remove
    - strbuf_release
    - strset_contains
    - pack_basename
    - strbuf_reset
    - midx_checksum_valid
    - strbuf_strip_suffix
    - strset_clear
    - strbuf_addstr
    - BUG
    - strset_add
    linkageType: ''
    returnType: bool
    signature: bool midx_needs_update(struct multi_pack_index *midx, struct write_midx_context
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashcmp
      Src: /src/git/midx-write.c:1235,1
    - Dst: midx_get_checksum_hash
      Src: /src/git/midx-write.c:1235,1
    - Dst: midx_get_checksum_hash
      Src: /src/git/midx-write.c:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - algop
    argTypes:
    - struct multi_pack_index*
    - struct multi_pack_index*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1237
    functionName: midx_hashcmp
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - hashcmp
    - midx_get_checksum_hash
    linkageType: ''
    returnType: int
    signature: "int midx_hashcmp(const struct multi_pack_index *a,\n\t\t\tconst struct
      multi_pack_index *b,\n\t\t\tconst struct git_hash_algo *algop)"
  - BBCount: 83
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/midx-write.c:1274,1
    - Dst: repo_config_get_int
      Src: /src/git/midx-write.c:1282,1
    - Dst: die
      Src: /src/git/midx-write.c:1284,1
    - Dst: _
      Src: /src/git/midx-write.c:1284,1
    - Dst: die
      Src: /src/git/midx-write.c:1291,1
    - Dst: _
      Src: /src/git/midx-write.c:1291,1
    - Dst: BUG
      Src: /src/git/midx-write.c:1293,1
    - Dst: BUG
      Src: /src/git/midx-write.c:1295,1
    - Dst: strbuf_addf
      Src: /src/git/midx-write.c:1302,1
    - Dst: get_midx_filename
      Src: /src/git/midx-write.c:1306,1
    - Dst: safe_create_leading_directories
      Src: /src/git/midx-write.c:1307,1
    - Dst: die_errno
      Src: /src/git/midx-write.c:1308,1
    - Dst: _
      Src: /src/git/midx-write.c:1308,1
    - Dst: get_multi_pack_index
      Src: /src/git/midx-write.c:1312,1
    - Dst: midx_checksum_valid
      Src: /src/git/midx-write.c:1313,1
    - Dst: warning
      Src: /src/git/midx-write.c:1314,1
    - Dst: _
      Src: /src/git/midx-write.c:1314,1
    - Dst: strcmp
      Src: /src/git/midx-write.c:1341,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/midx-write.c:1345,1
    - Dst: strcmp
      Src: /src/git/midx-write.c:1346,1
    - Dst: error
      Src: /src/git/midx-write.c:1353,1
    - Dst: _
      Src: /src/git/midx-write.c:1353,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/midx-write.c:1363,1
    - Dst: load_midx_revindex
      Src: /src/git/midx-write.c:1368,1
    - Dst: error
      Src: /src/git/midx-write.c:1369,1
    - Dst: _
      Src: /src/git/midx-write.c:1369,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/midx-write.c:1370,1
    - Dst: fill_packs_from_midx
      Src: /src/git/midx-write.c:1376,1
    - Dst: start_delayed_progress
      Src: /src/git/midx-write.c:1384,1
    - Dst: _
      Src: /src/git/midx-write.c:1385,1
    - Dst: fill_packs_from_midx_range
      Src: /src/git/midx-write.c:1396,1
    - Dst: for_each_file_in_pack_dir
      Src: /src/git/midx-write.c:1399,1
    - Dst: stop_progress
      Src: /src/git/midx-write.c:1401,1
    - Dst: load_multi_pack_index
      Src: /src/git/midx-write.c:1411,1
    - Dst: midx_needs_update
      Src: /src/git/midx-write.c:1413,1
    - Dst: prepare_midx_bitmap_git
      Src: /src/git/midx-write.c:1418,1
    - Dst: bitmap_is_midx
      Src: /src/git/midx-write.c:1419,1
    - Dst: free_bitmap_index
      Src: /src/git/midx-write.c:1420,1
    - Dst: clear_midx_files_ext
      Src: /src/git/midx-write.c:1428,1
    - Dst: close_midx
      Src: /src/git/midx-write.c:1434,1
    - Dst: cmp_idx_or_pack_name
      Src: /src/git/midx-write.c:1447,1
    - Dst: warning
      Src: /src/git/midx-write.c:1455,1
    - Dst: _
      Src: /src/git/midx-write.c:1455,1
    - Dst: open_pack_index
      Src: /src/git/midx-write.c:1467,1
    - Dst: BUG
      Src: /src/git/midx-write.c:1470,1
    - Dst: open_pack_index
      Src: /src/git/midx-write.c:1483,1
    - Dst: open_pack_index
      Src: /src/git/midx-write.c:1508,1
    - Dst: die
      Src: /src/git/midx-write.c:1509,1
    - Dst: _
      Src: /src/git/midx-write.c:1509,1
    - Dst: error
      Src: /src/git/midx-write.c:1513,1
    - Dst: _
      Src: /src/git/midx-write.c:1513,1
    - Dst: compute_sorted_entries
      Src: /src/git/midx-write.c:1519,1
    - Dst: BUG
      Src: /src/git/midx-write.c:1531,1
    - Dst: QSORT
      Src: /src/git/midx-write.c:1533,1
    - Dst: ASSERT
      Src: /src/git/midx-write.c:1540,1
    - Dst: strcmp
      Src: /src/git/midx-write.c:1544,1
    - Dst: error
      Src: /src/git/midx-write.c:1551,1
    - Dst: _
      Src: /src/git/midx-write.c:1551,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/midx-write.c:1571,1
    - Dst: strlen
      Src: /src/git/midx-write.c:1592,1
    - Dst: bsearch
      Src: /src/git/midx-write.c:1598,1
    - Dst: midx_pack_perm
      Src: /src/git/midx-write.c:1603,1
    - Dst: warning
      Src: /src/git/midx-write.c:1605,1
    - Dst: _
      Src: /src/git/midx-write.c:1605,1
    - Dst: error
      Src: /src/git/midx-write.c:1615,1
    - Dst: _
      Src: /src/git/midx-write.c:1615,1
    - Dst: warning
      Src: /src/git/midx-write.c:1621,1
    - Dst: _
      Src: /src/git/midx-write.c:1621,1
    - Dst: get_midx_chain_filename
      Src: /src/git/midx-write.c:1629,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/midx-write.c:1630,1
    - Dst: strbuf_release
      Src: /src/git/midx-write.c:1632,1
    - Dst: mks_tempfile_m
      Src: /src/git/midx-write.c:1635,1
    - Dst: error
      Src: /src/git/midx-write.c:1637,1
    - Dst: _
      Src: /src/git/midx-write.c:1637,1
    - Dst: adjust_shared_perm
      Src: /src/git/midx-write.c:1641,1
    - Dst: get_tempfile_path
      Src: /src/git/midx-write.c:1641,1
    - Dst: error
      Src: /src/git/midx-write.c:1642,1
    - Dst: _
      Src: /src/git/midx-write.c:1642,1
    - Dst: get_tempfile_path
      Src: /src/git/midx-write.c:1643,1
    - Dst: hashfd
      Src: /src/git/midx-write.c:1647,1
    - Dst: get_tempfile_fd
      Src: /src/git/midx-write.c:1647,1
    - Dst: get_tempfile_path
      Src: /src/git/midx-write.c:1648,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/midx-write.c:1650,1
    - Dst: hashfd
      Src: /src/git/midx-write.c:1651,1
    - Dst: get_lock_file_fd
      Src: /src/git/midx-write.c:1651,1
    - Dst: get_lock_file_path
      Src: /src/git/midx-write.c:1652,1
    - Dst: init_chunkfile
      Src: /src/git/midx-write.c:1655,1
    - Dst: add_chunk
      Src: /src/git/midx-write.c:1657,1
    - Dst: add_chunk
      Src: /src/git/midx-write.c:1659,1
    - Dst: add_chunk
      Src: /src/git/midx-write.c:1661,1
    - Dst: st_mult
      Src: /src/git/midx-write.c:1662,1
    - Dst: add_chunk
      Src: /src/git/midx-write.c:1664,1
    - Dst: st_mult
      Src: /src/git/midx-write.c:1665,1
    - Dst: add_chunk
      Src: /src/git/midx-write.c:1669,1
    - Dst: st_mult
      Src: /src/git/midx-write.c:1670,1
    - Dst: midx_pack_order
      Src: /src/git/midx-write.c:1675,1
    - Dst: add_chunk
      Src: /src/git/midx-write.c:1676,1
    - Dst: st_mult
      Src: /src/git/midx-write.c:1677,1
    - Dst: add_chunk
      Src: /src/git/midx-write.c:1679,1
    - Dst: write_midx_header
      Src: /src/git/midx-write.c:1684,1
    - Dst: get_num_chunks
      Src: /src/git/midx-write.c:1684,1
    - Dst: write_chunkfile
      Src: /src/git/midx-write.c:1686,1
    - Dst: finalize_hashfile
      Src: /src/git/midx-write.c:1688,1
    - Dst: free_chunkfile
      Src: /src/git/midx-write.c:1690,1
    - Dst: git_env_bool
      Src: /src/git/midx-write.c:1693,1
    - Dst: write_midx_reverse_index
      Src: /src/git/midx-write.c:1694,1
    - Dst: BUG
      Src: /src/git/midx-write.c:1701,1
    - Dst: prepare_midx_packing_data
      Src: /src/git/midx-write.c:1703,1
    - Dst: find_commits_for_midx_bitmap
      Src: /src/git/midx-write.c:1705,1
    - Dst: FREE_AND_NULL
      Src: /src/git/midx-write.c:1713,1
    - Dst: write_midx_bitmap
      Src: /src/git/midx-write.c:1716,1
    - Dst: error
      Src: /src/git/midx-write.c:1718,1
    - Dst: _
      Src: /src/git/midx-write.c:1718,1
    - Dst: clear_packing_data
      Src: /src/git/midx-write.c:1719,1
    - Dst: commit_stack_clear
      Src: /src/git/midx-write.c:1720,1
    - Dst: clear_packing_data
      Src: /src/git/midx-write.c:1724,1
    - Dst: commit_stack_clear
      Src: /src/git/midx-write.c:1725,1
    - Dst: die
      Src: /src/git/midx-write.c:1733,1
    - Dst: _
      Src: /src/git/midx-write.c:1733,1
    - Dst: is_lock_file_locked
      Src: /src/git/midx-write.c:1735,1
    - Dst: printf
      Src: /src/git/midx-write.c:1736,1
    - Dst: hash_to_hex_algop
      Src: /src/git/midx-write.c:1736,1
    - Dst: BUG
      Src: /src/git/midx-write.c:1738,1
    - Dst: is_lock_file_locked
      Src: /src/git/midx-write.c:1746,1
    - Dst: fdopen_lock_file
      Src: /src/git/midx-write.c:1747,1
    - Dst: error_errno
      Src: /src/git/midx-write.c:1749,1
    - Dst: _
      Src: /src/git/midx-write.c:1749,1
    - Dst: link_midx_to_chain
      Src: /src/git/midx-write.c:1754,1
    - Dst: get_split_midx_filename_ext
      Src: /src/git/midx-write.c:1757,1
    - Dst: rename_tempfile
      Src: /src/git/midx-write.c:1760,1
    - Dst: error_errno
      Src: /src/git/midx-write.c:1761,1
    - Dst: _
      Src: /src/git/midx-write.c:1761,1
    - Dst: strbuf_release
      Src: /src/git/midx-write.c:1765,1
    - Dst: ALLOC_GROW
      Src: /src/git/midx-write.c:1771,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:1775,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/midx-write.c:1776,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:1778,1
    - Dst: hash_to_hex_algop
      Src: /src/git/midx-write.c:1779,1
    - Dst: midx_hashcmp
      Src: /src/git/midx-write.c:1783,1
    - Dst: ALLOC_GROW
      Src: /src/git/midx-write.c:1786,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:1790,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/midx-write.c:1791,1
    - Dst: ALLOC_GROW
      Src: /src/git/midx-write.c:1794,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:1798,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/midx-write.c:1799,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:1801,1
    - Dst: hash_to_hex_algop
      Src: /src/git/midx-write.c:1802,1
    - Dst: free
      Src: /src/git/midx-write.c:1806,1
    - Dst: is_lock_file_locked
      Src: /src/git/midx-write.c:1808,1
    - Dst: fprintf
      Src: /src/git/midx-write.c:1810,1
    - Dst: get_lock_file_fp
      Src: /src/git/midx-write.c:1810,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:1813,1
    - Dst: hash_to_hex_algop
      Src: /src/git/midx-write.c:1814,1
    - Dst: odb_close
      Src: /src/git/midx-write.c:1818,1
    - Dst: is_lock_file_locked
      Src: /src/git/midx-write.c:1820,1
    - Dst: commit_lock_file
      Src: /src/git/midx-write.c:1821,1
    - Dst: die_errno
      Src: /src/git/midx-write.c:1822,1
    - Dst: _
      Src: /src/git/midx-write.c:1822,1
    - Dst: clear_midx_files
      Src: /src/git/midx-write.c:1824,1
    - Dst: close_pack
      Src: /src/git/midx-write.c:1831,1
    - Dst: free
      Src: /src/git/midx-write.c:1832,1
    - Dst: free
      Src: /src/git/midx-write.c:1834,1
    - Dst: free
      Src: /src/git/midx-write.c:1837,1
    - Dst: free
      Src: /src/git/midx-write.c:1838,1
    - Dst: free
      Src: /src/git/midx-write.c:1839,1
    - Dst: free
      Src: /src/git/midx-write.c:1840,1
    - Dst: strvec_clear
      Src: /src/git/midx-write.c:1841,1
    - Dst: strbuf_release
      Src: /src/git/midx-write.c:1842,1
    - Dst: close_midx
      Src: /src/git/midx-write.c:1843,1
    - Dst: trace2_region_leave
      Src: /src/git/midx-write.c:1845,1
    CyclomaticComplexity: 133
    EdgeCount: 133
    ICount: 358
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct write_midx_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1254
    functionDepth: 19
    functionLinenumber: 1254
    functionLinenumberEnd: 1848
    functionName: write_midx_internal
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - error_errno
    - init_chunkfile
    - strcmp
    - write_chunkfile
    - git_env_bool
    - ALLOC_ARRAY
    - free_chunkfile
    - odb_close
    - rename_tempfile
    - midx_hashcmp
    - get_split_midx_filename_ext
    - load_midx_revindex
    - get_lock_file_path
    - st_mult
    - clear_midx_files_ext
    - get_multi_pack_index
    - strlen
    - strvec_clear
    - cmp_idx_or_pack_name
    - bsearch
    - fprintf
    - strvec_push
    - stop_progress
    - strbuf_addf
    - commit_stack_clear
    - hashfd
    - free
    - adjust_shared_perm
    - printf
    - get_tempfile_path
    - clear_packing_data
    - die
    - QSORT
    - prepare_midx_bitmap_git
    - get_midx_filename
    - die_errno
    - ASSERT
    - prepare_midx_packing_data
    - FREE_AND_NULL
    - find_commits_for_midx_bitmap
    - get_tempfile_fd
    - finalize_hashfile
    - free_bitmap_index
    - write_midx_reverse_index
    - trace2_region_enter
    - get_midx_chain_filename
    - midx_pack_perm
    - bitmap_is_midx
    - for_each_file_in_pack_dir
    - strbuf_release
    - commit_lock_file
    - write_midx_bitmap
    - midx_get_checksum_hex
    - midx_pack_order
    - get_lock_file_fp
    - mks_tempfile_m
    - midx_checksum_valid
    - add_chunk
    - _
    - is_lock_file_locked
    - hash_to_hex_algop
    - close_pack
    - close_midx
    - BUG
    - open_pack_index
    - safe_create_leading_directories
    - hold_lock_file_for_update
    - start_delayed_progress
    - load_multi_pack_index
    - error
    - get_num_chunks
    - fill_packs_from_midx_range
    - fdopen_lock_file
    - compute_sorted_entries
    - link_midx_to_chain
    - get_lock_file_fd
    - warning
    - fill_packs_from_midx
    - repo_config_get_int
    - clear_midx_files
    - trace2_region_leave
    - write_midx_header
    - ALLOC_GROW
    - midx_needs_update
    linkageType: ''
    returnType: int
    signature: int write_midx_internal(struct write_midx_opts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_midx_internal
      Src: /src/git/midx-write.c:1862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - source
    - preferred_pack_name
    - refs_snapshot
    - flags
    argTypes:
    - struct odb_source*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1850
    functionDepth: 20
    functionLinenumber: 1850
    functionLinenumberEnd: 1863
    functionName: write_midx_file
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - write_midx_internal
    linkageType: ''
    returnType: int
    signature: "int write_midx_file(struct odb_source *source,\n\t\t    const char
      *preferred_pack_name,\n\t\t    const char *refs_snapshot,\n\t\t    unsigned
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_midx_internal
      Src: /src/git/midx-write.c:1881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - source
    - packs_to_include
    - preferred_pack_name
    - refs_snapshot
    - incremental_base
    - flags
    argTypes:
    - struct odb_source*
    - struct string_list*
    - char*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1865
    functionDepth: 20
    functionLinenumber: 1865
    functionLinenumberEnd: 1882
    functionName: write_midx_file_only
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - write_midx_internal
    linkageType: ''
    returnType: int
    signature: "int write_midx_file_only(struct odb_source *source,\n\t\t\t struct
      string_list *packs_to_include,\n\t\t\t const char *preferred_pack_name,\n\t\t\t
      const char *refs_snapshot,\n\t\t\t const char *incremental_base,\n\t\t\t unsigned
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_midx_internal
      Src: /src/git/midx-write.c:1898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - source
    - from
    - to
    - incremental_base
    - flags
    argTypes:
    - struct odb_source*
    - struct multi_pack_index*
    - struct multi_pack_index*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1884
    functionDepth: 20
    functionLinenumber: 1884
    functionLinenumberEnd: 1899
    functionName: write_midx_file_compact
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - write_midx_internal
    linkageType: ''
    returnType: int
    signature: "int write_midx_file_compact(struct odb_source *source,\n\t\t\t    struct
      multi_pack_index *from,\n\t\t\t    struct multi_pack_index *to,\n\t\t\t    const
      char *incremental_base,\n\t\t\t    unsigned flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_multi_pack_index
      Src: /src/git/midx-write.c:1905,1
    - Dst: die
      Src: /src/git/midx-write.c:1912,1
    - Dst: _
      Src: /src/git/midx-write.c:1912,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/midx-write.c:1914,1
    - Dst: start_delayed_progress
      Src: /src/git/midx-write.c:1917,1
    - Dst: _
      Src: /src/git/midx-write.c:1919,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/midx-write.c:1922,1
    - Dst: display_progress
      Src: /src/git/midx-write.c:1924,1
    - Dst: stop_progress
      Src: /src/git/midx-write.c:1926,1
    - Dst: start_delayed_progress
      Src: /src/git/midx-write.c:1929,1
    - Dst: _
      Src: /src/git/midx-write.c:1931,1
    - Dst: display_progress
      Src: /src/git/midx-write.c:1935,1
    - Dst: prepare_midx_pack
      Src: /src/git/midx-write.c:1940,1
    - Dst: xstrdup
      Src: /src/git/midx-write.c:1946,1
    - Dst: close_pack
      Src: /src/git/midx-write.c:1947,1
    - Dst: string_list_insert
      Src: /src/git/midx-write.c:1949,1
    - Dst: unlink_pack_path
      Src: /src/git/midx-write.c:1950,1
    - Dst: free
      Src: /src/git/midx-write.c:1951,1
    - Dst: stop_progress
      Src: /src/git/midx-write.c:1953,1
    - Dst: free
      Src: /src/git/midx-write.c:1955,1
    - Dst: write_midx_internal
      Src: /src/git/midx-write.c:1963,1
    - Dst: string_list_clear
      Src: /src/git/midx-write.c:1966,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - source
    - flags
    argTypes:
    - struct odb_source*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1901
    functionDepth: 20
    functionLinenumber: 1901
    functionLinenumberEnd: 1969
    functionName: expire_midx_packs
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - close_pack
    - string_list_clear
    - stop_progress
    - die
    - string_list_insert
    - prepare_midx_pack
    - free
    - unlink_pack_path
    - get_multi_pack_index
    - display_progress
    - write_midx_internal
    - start_delayed_progress
    - CALLOC_ARRAY
    - nth_midxed_pack_int_id
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int expire_midx_packs(struct odb_source *source, unsigned flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1977
    functionDepth: 0
    functionLinenumber: 1977
    functionLinenumberEnd: 1989
    functionName: compare_by_mtime
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_by_mtime(const void *a_, const void *b_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prepare_midx_pack
      Src: /src/git/midx-write.c:1996,1
    - Dst: open_pack_index
      Src: /src/git/midx-write.c:2003,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - m
    - pack_kept_objects
    - pack_int_id
    argTypes:
    - struct multi_pack_index*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1991
    functionDepth: 3
    functionLinenumber: 1991
    functionLinenumberEnd: 2006
    functionName: want_included_pack
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - open_pack_index
    - prepare_midx_pack
    linkageType: ''
    returnType: int
    signature: "int want_included_pack(struct multi_pack_index *m,\n\t\t\t      int
      pack_kept_objects,\n\t\t\t      uint32_t pack_int_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/midx-write.c:2015,1
    - Dst: want_included_pack
      Src: /src/git/midx-write.c:2018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - r
    - m
    - include_pack
    argTypes:
    - struct repository*
    - struct multi_pack_index*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2008
    functionDepth: 19
    functionLinenumber: 2008
    functionLinenumberEnd: 2023
    functionName: fill_included_packs_all
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - repo_config_get_bool
    - want_included_pack
    linkageType: ''
    returnType: void
    signature: "void fill_included_packs_all(struct repository *r,\n\t\t\t\t    struct
      multi_pack_index *m,\n\t\t\t\t    unsigned char *include_pack)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/midx-write.c:2035,1
    - Dst: repo_config_get_bool
      Src: /src/git/midx-write.c:2037,1
    - Dst: prepare_midx_pack
      Src: /src/git/midx-write.c:2042,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/midx-write.c:2049,1
    - Dst: QSORT
      Src: /src/git/midx-write.c:2053,1
    - Dst: want_included_pack
      Src: /src/git/midx-write.c:2061,1
    - Dst: u64_mult
      Src: /src/git/midx-write.c:2071,1
    - Dst: u64_add
      Src: /src/git/midx-write.c:2072,1
    - Dst: unsigned_add_overflows
      Src: /src/git/midx-write.c:2077,1
    - Dst: free
      Src: /src/git/midx-write.c:2085,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - r
    - m
    - include_pack
    - batch_size
    argTypes:
    - struct repository*
    - struct multi_pack_index*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2025
    functionDepth: 19
    functionLinenumber: 2025
    functionLinenumberEnd: 2086
    functionName: fill_included_packs_batch
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - u64_mult
    - CALLOC_ARRAY
    - free
    - repo_config_get_bool
    - u64_add
    - QSORT
    - unsigned_add_overflows
    - prepare_midx_pack
    - nth_midxed_pack_int_id
    - want_included_pack
    linkageType: ''
    returnType: void
    signature: "void fill_included_packs_batch(struct repository *r,\n\t\t\t\t      struct
      multi_pack_index *m,\n\t\t\t\t      unsigned char *include_pack,\n\t\t\t\t      size_t
      batch_size)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_multi_pack_index
      Src: /src/git/midx-write.c:2096,1
    - Dst: die
      Src: /src/git/midx-write.c:2113,1
    - Dst: _
      Src: /src/git/midx-write.c:2113,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/midx-write.c:2115,1
    - Dst: fill_included_packs_batch
      Src: /src/git/midx-write.c:2118,1
    - Dst: fill_included_packs_all
      Src: /src/git/midx-write.c:2120,1
    - Dst: repo_config_get_bool
      Src: /src/git/midx-write.c:2129,1
    - Dst: repo_config_get_bool
      Src: /src/git/midx-write.c:2130,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:2132,1
    - Dst: strvec_pushf
      Src: /src/git/midx-write.c:2134,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:2137,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:2139,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:2142,1
    - Dst: strvec_push
      Src: /src/git/midx-write.c:2144,1
    - Dst: start_command
      Src: /src/git/midx-write.c:2149,1
    - Dst: error
      Src: /src/git/midx-write.c:2150,1
    - Dst: _
      Src: /src/git/midx-write.c:2150,1
    - Dst: xfdopen
      Src: /src/git/midx-write.c:2155,1
    - Dst: nth_midxed_pack_int_id
      Src: /src/git/midx-write.c:2159,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/midx-write.c:2164,1
    - Dst: fprintf
      Src: /src/git/midx-write.c:2165,1
    - Dst: oid_to_hex
      Src: /src/git/midx-write.c:2165,1
    - Dst: fclose
      Src: /src/git/midx-write.c:2167,1
    - Dst: finish_command
      Src: /src/git/midx-write.c:2169,1
    - Dst: error
      Src: /src/git/midx-write.c:2170,1
    - Dst: _
      Src: /src/git/midx-write.c:2170,1
    - Dst: write_midx_internal
      Src: /src/git/midx-write.c:2175,1
    - Dst: free
      Src: /src/git/midx-write.c:2178,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 3
    argNames:
    - source
    - batch_size
    - flags
    argTypes:
    - struct odb_source*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2088
    functionDepth: 20
    functionLinenumber: 2088
    functionLinenumberEnd: 2180
    functionName: midx_repack
    functionSourceFile: /src/git/midx-write.c
    functionUses: 0
    functionsReached:
    - fclose
    - strvec_push
    - CALLOC_ARRAY
    - free
    - fill_included_packs_all
    - fill_included_packs_batch
    - error
    - die
    - finish_command
    - nth_midxed_pack_int_id
    - oid_to_hex
    - write_midx_internal
    - _
    - xfdopen
    - strvec_pushf
    - nth_midxed_object_oid
    - repo_config_get_bool
    - get_multi_pack_index
    - fprintf
    - start_command
    linkageType: ''
    returnType: int
    signature: int midx_repack(struct odb_source *source, size_t batch_size, unsigned
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: TRACE_KEY_INIT
    functionSourceFile: /src/git/trace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_KEY_INIT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: trace_printf
    functionSourceFile: /src/git/trace.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace_printf(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: trace_printf_key
    functionSourceFile: /src/git/trace.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace_printf_key(key, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - argv
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: trace_argv_printf
    functionSourceFile: /src/git/trace.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace_argv_printf(argv, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: trace_strbuf
    functionSourceFile: /src/git/trace.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace_strbuf(key, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nanos
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: trace_performance
    functionSourceFile: /src/git/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace_performance(nanos, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - start
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 247
    functionName: trace_performance_since
    functionSourceFile: /src/git/trace.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace_performance_since(start, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: trace_performance_leave
    functionSourceFile: /src/git/trace.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace_performance_leave(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - struct trace_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: trace_pass_fl
    functionSourceFile: /src/git/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int trace_pass_fl(struct trace_key *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/alloc.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 7
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: alloc_state_alloc
    functionSourceFile: /src/git/alloc.c
    functionUses: 1
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct alloc_state
    signature: struct alloc_state *alloc_state_alloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/alloc.c:53,1
    - Dst: FREE_AND_NULL
      Src: /src/git/alloc.c:56,1
    - Dst: FREE_AND_NULL
      Src: /src/git/alloc.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s_
    argTypes:
    - struct alloc_state**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: alloc_state_free_and_null
    functionSourceFile: /src/git/alloc.c
    functionUses: 1
    functionsReached:
    - FREE_AND_NULL
    - free
    linkageType: ''
    returnType: void
    signature: void alloc_state_free_and_null(struct alloc_state **s_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/alloc.c:66,1
    - Dst: ALLOC_GROW
      Src: /src/git/alloc.c:68,1
    - Dst: memset
      Src: /src/git/alloc.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - s
    - node_size
    argTypes:
    - struct alloc_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: alloc_node
    functionSourceFile: /src/git/alloc.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - memset
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void *alloc_node(struct alloc_state *s, size_t node_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_node
      Src: /src/git/alloc.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: alloc_blob_node
    functionSourceFile: /src/git/alloc.c
    functionUses: 1
    functionsReached:
    - alloc_node
    linkageType: ''
    returnType: void
    signature: void *alloc_blob_node(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_node
      Src: /src/git/alloc.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: alloc_tree_node
    functionSourceFile: /src/git/alloc.c
    functionUses: 1
    functionsReached:
    - alloc_node
    linkageType: ''
    returnType: void
    signature: void *alloc_tree_node(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_node
      Src: /src/git/alloc.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: alloc_tag_node
    functionSourceFile: /src/git/alloc.c
    functionUses: 1
    functionsReached:
    - alloc_node
    linkageType: ''
    returnType: void
    signature: void *alloc_tag_node(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_node
      Src: /src/git/alloc.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: alloc_object_node
    functionSourceFile: /src/git/alloc.c
    functionUses: 1
    functionsReached:
    - alloc_node
    linkageType: ''
    returnType: void
    signature: void *alloc_object_node(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: alloc_commit_index
    functionSourceFile: /src/git/alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int alloc_commit_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_commit_index
      Src: /src/git/alloc.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: init_commit_node
    functionSourceFile: /src/git/alloc.c
    functionUses: 1
    functionsReached:
    - alloc_commit_index
    linkageType: ''
    returnType: void
    signature: void init_commit_node(struct commit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_node
      Src: /src/git/alloc.c:126,1
    - Dst: init_commit_node
      Src: /src/git/alloc.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: alloc_commit_node
    functionSourceFile: /src/git/alloc.c
    functionUses: 4
    functionsReached:
    - alloc_node
    - init_commit_node
    linkageType: ''
    returnType: void
    signature: void *alloc_commit_node(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: replace_refs_enabled
      Src: /src/git/replace-object.h:48,1
    - Dst: oidmap_get_size
      Src: /src/git/replace-object.h:50,1
    - Dst: do_lookup_replace_object
      Src: /src/git/replace-object.h:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: lookup_replace_object
    functionSourceFile: /src/git/replace-object.h
    functionUses: 4
    functionsReached:
    - oidmap_get_size
    - replace_refs_enabled
    - do_lookup_replace_object
    linkageType: ''
    returnType: struct object_id
    signature: "struct object_id *lookup_replace_object(struct repository *r,\n\t\t\t\t\t\t\t
      \   const struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_trim
      Src: /src/git/version.c:21,1
    - Dst: isprint
      Src: /src/git/version.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: redact_non_printables
    functionSourceFile: /src/git/version.c
    functionUses: 0
    functionsReached:
    - strbuf_trim
    - isprint
    linkageType: ''
    returnType: void
    signature: void redact_non_printables(struct strbuf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/version.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: git_user_agent
    functionSourceFile: /src/git/version.c
    functionUses: 1
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char *git_user_agent(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_uname_info
      Src: /src/git/version.c:53,1
    - Dst: redact_non_printables
      Src: /src/git/version.c:55,1
    - Dst: strbuf_detach
      Src: /src/git/version.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: os_info
    functionSourceFile: /src/git/version.c
    functionUses: 0
    functionsReached:
    - strbuf_detach
    - redact_non_printables
    - get_uname_info
    linkageType: ''
    returnType: char
    signature: char *os_info(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/version.c:69,1
    - Dst: git_user_agent
      Src: /src/git/version.c:69,1
    - Dst: getenv
      Src: /src/git/version.c:71,1
    - Dst: strbuf_addch
      Src: /src/git/version.c:72,1
    - Dst: strbuf_addstr
      Src: /src/git/version.c:73,1
    - Dst: os_info
      Src: /src/git/version.c:73,1
    - Dst: redact_non_printables
      Src: /src/git/version.c:75,1
    - Dst: strbuf_detach
      Src: /src/git/version.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: git_user_agent_sanitized
    functionSourceFile: /src/git/version.c
    functionUses: 6
    functionsReached:
    - git_user_agent
    - redact_non_printables
    - strbuf_addch
    - os_info
    - strbuf_detach
    - strbuf_addstr
    - getenv
    linkageType: ''
    returnType: char
    signature: char *git_user_agent_sanitized(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/git/version.c:86,1
    - Dst: strbuf_addf
      Src: /src/git/version.c:87,1
    - Dst: _
      Src: /src/git/version.c:87,1
    - Dst: strerror
      Src: /src/git/version.c:88,1
    - Dst: strbuf_addf
      Src: /src/git/version.c:93,1
    - Dst: strbuf_addf
      Src: /src/git/version.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - full
    argTypes:
    - struct strbuf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 101
    functionName: get_uname_info
    functionSourceFile: /src/git/version.c
    functionUses: 1
    functionsReached:
    - strerror
    - strbuf_addf
    - _
    - uname
    linkageType: ''
    returnType: int
    signature: int get_uname_info(struct strbuf *buf, unsigned int full)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MSB
      Src: /src/git/varint.c:11,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - bufp
    argTypes:
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 18
    functionName: decode_varint
    functionSourceFile: /src/git/varint.c
    functionUses: 3
    functionsReached:
    - MSB
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t decode_varint(const unsigned char **bufp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/varint.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - value
    - buf
    argTypes:
    - uint64_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: encode_varint
    functionSourceFile: /src/git/varint.c
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t encode_varint(uint64_t value, unsigned char *buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/trace.c:46,1
    - Dst: strcmp
      Src: /src/git/trace.c:48,1
    - Dst: strcmp
      Src: /src/git/trace.c:49,1
    - Dst: strcasecmp
      Src: /src/git/trace.c:49,1
    - Dst: strcmp
      Src: /src/git/trace.c:51,1
    - Dst: strcasecmp
      Src: /src/git/trace.c:51,1
    - Dst: strlen
      Src: /src/git/trace.c:53,1
    - Dst: isdigit
      Src: /src/git/trace.c:53,1
    - Dst: atoi
      Src: /src/git/trace.c:54,1
    - Dst: is_absolute_path
      Src: /src/git/trace.c:55,1
    - Dst: open
      Src: /src/git/trace.c:56,1
    - Dst: warning
      Src: /src/git/trace.c:58,1
    - Dst: strerror
      Src: /src/git/trace.c:59,1
    - Dst: trace_disable
      Src: /src/git/trace.c:60,1
    - Dst: warning
      Src: /src/git/trace.c:66,1
    - Dst: trace_disable
      Src: /src/git/trace.c:70,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - key
    - override_envvar
    argTypes:
    - struct trace_key*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 75
    functionName: get_trace_fd
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - is_absolute_path
    - atoi
    - open
    - trace_disable
    - strcasecmp
    - strerror
    - isdigit
    - strlen
    - strcmp
    - getenv
    - warning
    linkageType: ''
    returnType: int
    signature: int get_trace_fd(struct trace_key *key, const char *override_envvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace_disable
      Src: /src/git/trace.c:79,1
    - Dst: get_trace_fd
      Src: /src/git/trace.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - struct trace_key*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: trace_override_envvar
    functionSourceFile: /src/git/trace.c
    functionUses: 1
    functionsReached:
    - get_trace_fd
    - trace_disable
    linkageType: ''
    returnType: void
    signature: void trace_override_envvar(struct trace_key *key, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/trace.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - struct trace_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: trace_disable
    functionSourceFile: /src/git/trace.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void trace_disable(struct trace_key *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_KEY_INIT
      Src: /src/git/trace.c:101,1
    - Dst: trace_want
      Src: /src/git/trace.c:106,1
    - Dst: trace_want
      Src: /src/git/trace.c:110,1
    - Dst: gettimeofday
      Src: /src/git/trace.c:114,1
    - Dst: localtime_r
      Src: /src/git/trace.c:116,1
    - Dst: strbuf_addf
      Src: /src/git/trace.c:117,1
    - Dst: strbuf_addch
      Src: /src/git/trace.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - file
    - line
    - key
    - buf
    argTypes:
    - char*
    - int
    - struct trace_key*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 124
    functionName: prepare_trace_line
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - trace_want
    - TRACE_KEY_INIT
    - gettimeofday
    - strbuf_addf
    - strbuf_addch
    - localtime_r
    linkageType: ''
    returnType: int
    signature: "int prepare_trace_line(const char *file, int line,\n\t\t\t      struct
      trace_key *key, struct strbuf *buf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_in_full
      Src: /src/git/trace.c:128,1
    - Dst: get_trace_fd
      Src: /src/git/trace.c:128,1
    - Dst: warning
      Src: /src/git/trace.c:129,1
    - Dst: strerror
      Src: /src/git/trace.c:130,1
    - Dst: trace_disable
      Src: /src/git/trace.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - buf
    - len
    argTypes:
    - struct trace_key*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: trace_write
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - strerror
    - get_trace_fd
    - trace_disable
    - write_in_full
    - warning
    linkageType: ''
    returnType: void
    signature: void trace_write(struct trace_key *key, const void *buf, unsigned len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace_want
      Src: /src/git/trace.c:137,1
    - Dst: trace_write
      Src: /src/git/trace.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - key
    - buf
    - len
    argTypes:
    - struct trace_key*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: trace_verbatim
    functionSourceFile: /src/git/trace.c
    functionUses: 1
    functionsReached:
    - trace_want
    - trace_write
    linkageType: ''
    returnType: void
    signature: void trace_verbatim(struct trace_key *key, const void *buf, unsigned
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_complete_line
      Src: /src/git/trace.c:144,1
    - Dst: trace_write
      Src: /src/git/trace.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - struct trace_key*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: print_trace_line
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - strbuf_complete_line
    - trace_write
    linkageType: ''
    returnType: void
    signature: void print_trace_line(struct trace_key *key, struct strbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_trace_line
      Src: /src/git/trace.c:153,1
    - Dst: strbuf_vaddf
      Src: /src/git/trace.c:156,1
    - Dst: print_trace_line
      Src: /src/git/trace.c:157,1
    - Dst: strbuf_release
      Src: /src/git/trace.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - file
    - line
    - key
    - format
    - ap
    argTypes:
    - char*
    - int
    - struct trace_key*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 6
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: trace_vprintf_fl
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - print_trace_line
    - strbuf_vaddf
    - prepare_trace_line
    linkageType: ''
    returnType: void
    signature: "void trace_vprintf_fl(const char *file, int line, struct trace_key
      *key,\n\t\t\t     const char *format, va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_trace_line
      Src: /src/git/trace.c:167,1
    - Dst: strbuf_vaddf
      Src: /src/git/trace.c:170,1
    - Dst: sq_quote_argv_pretty
      Src: /src/git/trace.c:172,1
    - Dst: print_trace_line
      Src: /src/git/trace.c:173,1
    - Dst: strbuf_release
      Src: /src/git/trace.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - file
    - line
    - argv
    - format
    - ap
    argTypes:
    - char*
    - int
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: trace_argv_vprintf_fl
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_vaddf
    - sq_quote_argv_pretty
    - print_trace_line
    - prepare_trace_line
    linkageType: ''
    returnType: void
    signature: "void trace_argv_vprintf_fl(const char *file, int line,\n\t\t\t\t  const
      char **argv, const char *format,\n\t\t\t\t  va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_trace_line
      Src: /src/git/trace.c:182,1
    - Dst: strbuf_addbuf
      Src: /src/git/trace.c:185,1
    - Dst: print_trace_line
      Src: /src/git/trace.c:186,1
    - Dst: strbuf_release
      Src: /src/git/trace.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - file
    - line
    - key
    - data
    argTypes:
    - char*
    - int
    - struct trace_key*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 6
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: trace_strbuf_fl
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - strbuf_addbuf
    - print_trace_line
    - strbuf_release
    - prepare_trace_line
    linkageType: ''
    returnType: void
    signature: "void trace_strbuf_fl(const char *file, int line, struct trace_key
      *key,\n\t\t     const struct strbuf *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace_want
      Src: /src/git/trace.c:197,1
    - Dst: getnanotime
      Src: /src/git/trace.c:200,1
    - Dst: ARRAY_SIZE
      Src: /src/git/trace.c:202,1
    - Dst: BUG
      Src: /src/git/trace.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: trace_performance_enter
    functionSourceFile: /src/git/trace.c
    functionUses: 9
    functionsReached:
    - ARRAY_SIZE
    - getnanotime
    - trace_want
    - BUG
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t trace_performance_enter(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prepare_trace_line
      Src: /src/git/trace.c:216,1
    - Dst: strbuf_addf
      Src: /src/git/trace.c:219,1
    - Dst: strlen
      Src: /src/git/trace.c:222,1
    - Dst: BUG
      Src: /src/git/trace.c:223,1
    - Dst: strbuf_addf
      Src: /src/git/trace.c:225,1
    - Dst: strbuf_vaddf
      Src: /src/git/trace.c:226,1
    - Dst: print_trace_line
      Src: /src/git/trace.c:229,1
    - Dst: strbuf_release
      Src: /src/git/trace.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - file
    - line
    - nanos
    - format
    - ap
    argTypes:
    - char*
    - int
    - uint64_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 6
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: trace_performance_vprintf_fl
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_vaddf
    - strbuf_addf
    - strlen
    - print_trace_line
    - prepare_trace_line
    - BUG
    linkageType: ''
    returnType: void
    signature: "void trace_performance_vprintf_fl(const char *file, int line,\n\t\t\t\t\t
      uint64_t nanos, const char *format,\n\t\t\t\t\t va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/trace.c:237,1
    - Dst: trace_vprintf_fl
      Src: /src/git/trace.c:238,1
    - Dst: va_end
      Src: /src/git/trace.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - file
    - line
    - key
    - format
    argTypes:
    - char*
    - int
    - struct trace_key*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 233
    functionDepth: 7
    functionLinenumber: 233
    functionLinenumberEnd: 240
    functionName: trace_printf_key_fl
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - trace_vprintf_fl
    linkageType: ''
    returnType: void
    signature: "void trace_printf_key_fl(const char *file, int line, struct trace_key
      *key,\n\t\t\t const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/trace.c:246,1
    - Dst: trace_argv_vprintf_fl
      Src: /src/git/trace.c:247,1
    - Dst: va_end
      Src: /src/git/trace.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - file
    - line
    - argv
    - format
    argTypes:
    - char*
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 7
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: trace_argv_printf_fl
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - trace_argv_vprintf_fl
    linkageType: ''
    returnType: void
    signature: "void trace_argv_printf_fl(const char *file, int line, const char **argv,\n\t\t\t
      \ const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/trace.c:255,1
    - Dst: trace_performance_vprintf_fl
      Src: /src/git/trace.c:256,1
    - Dst: va_end
      Src: /src/git/trace.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - file
    - line
    - nanos
    - format
    argTypes:
    - char*
    - int
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 7
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: trace_performance_fl
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - trace_performance_vprintf_fl
    linkageType: ''
    returnType: void
    signature: "void trace_performance_fl(const char *file, int line, uint64_t nanos,\n\t\t\t
      \     const char *format, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/trace.c:273,1
    - Dst: trace_performance_vprintf_fl
      Src: /src/git/trace.c:274,1
    - Dst: va_end
      Src: /src/git/trace.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - file
    - line
    - nanos
    - format
    argTypes:
    - char*
    - int
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 260
    functionDepth: 7
    functionLinenumber: 260
    functionLinenumberEnd: 276
    functionName: trace_performance_leave_fl
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - trace_performance_vprintf_fl
    linkageType: ''
    returnType: void
    signature: "void trace_performance_leave_fl(const char *file, int line,\n\t\t\t\tuint64_t
      nanos, const char *format, ...)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/trace.c:285,1
    - Dst: strbuf_addstr
      Src: /src/git/trace.c:289,1
    - Dst: strbuf_addstr
      Src: /src/git/trace.c:290,1
    - Dst: strbuf_addstr
      Src: /src/git/trace.c:291,1
    - Dst: strbuf_addch
      Src: /src/git/trace.c:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 298
    functionName: quote_crnl
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *quote_crnl(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace_want
      Src: /src/git/trace.c:305,1
    - Dst: xgetcwd
      Src: /src/git/trace.c:308,1
    - Dst: repo_get_work_tree
      Src: /src/git/trace.c:310,1
    - Dst: trace_printf_key
      Src: /src/git/trace.c:316,1
    - Dst: quote_crnl
      Src: /src/git/trace.c:316,1
    - Dst: repo_get_git_dir
      Src: /src/git/trace.c:316,1
    - Dst: trace_printf_key
      Src: /src/git/trace.c:317,1
    - Dst: quote_crnl
      Src: /src/git/trace.c:317,1
    - Dst: repo_get_common_dir
      Src: /src/git/trace.c:317,1
    - Dst: trace_printf_key
      Src: /src/git/trace.c:318,1
    - Dst: quote_crnl
      Src: /src/git/trace.c:318,1
    - Dst: trace_printf_key
      Src: /src/git/trace.c:319,1
    - Dst: quote_crnl
      Src: /src/git/trace.c:319,1
    - Dst: trace_printf_key
      Src: /src/git/trace.c:320,1
    - Dst: quote_crnl
      Src: /src/git/trace.c:320,1
    - Dst: free
      Src: /src/git/trace.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 300
    functionDepth: 5
    functionLinenumber: 300
    functionLinenumberEnd: 323
    functionName: trace_repo_setup
    functionSourceFile: /src/git/trace.c
    functionUses: 1
    functionsReached:
    - xgetcwd
    - trace_want
    - repo_get_work_tree
    - trace_printf_key
    - repo_get_common_dir
    - quote_crnl
    - repo_get_git_dir
    - free
    linkageType: ''
    returnType: void
    signature: void trace_repo_setup(struct repository *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_trace_fd
      Src: /src/git/trace.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - struct trace_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: trace_want
    functionSourceFile: /src/git/trace.c
    functionUses: 8
    functionsReached:
    - get_trace_fd
    linkageType: ''
    returnType: int
    signature: int trace_want(struct trace_key *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/git/trace.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: highres_nanos
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t highres_nanos(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceFrequency
      Src: /src/git/trace.c:349,1
    - Dst: QueryPerformanceCounter
      Src: /src/git/trace.c:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 374
    functionName: highres_nanos
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - QueryPerformanceFrequency
    - QueryPerformanceCounter
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t highres_nanos(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: highres_nanos
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: highres_nanos()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/git/trace.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 385
    functionName: gettimeofday_nanos
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gettimeofday_nanos(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: highres_nanos
      Src: /src/git/trace.c:396,1
    - Dst: gettimeofday_nanos
      Src: /src/git/trace.c:399,1
    - Dst: gettimeofday_nanos
      Src: /src/git/trace.c:402,1
    - Dst: highres_nanos
      Src: /src/git/trace.c:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 410
    functionName: getnanotime
    functionSourceFile: /src/git/trace.c
    functionUses: 28
    functionsReached:
    - highres_nanos
    - gettimeofday_nanos
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getnanotime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace_performance_leave
      Src: /src/git/trace.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: print_command_performance_atexit
    functionSourceFile: /src/git/trace.c
    functionUses: 0
    functionsReached:
    - trace_performance_leave
    linkageType: ''
    returnType: void
    signature: void print_command_performance_atexit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace_want
      Src: /src/git/trace.c:421,1
    - Dst: atexit
      Src: /src/git/trace.c:425,1
    - Dst: strbuf_reset
      Src: /src/git/trace.c:427,1
    - Dst: sq_quote_argv_pretty
      Src: /src/git/trace.c:428,1
    - Dst: trace_performance_enter
      Src: /src/git/trace.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 430
    functionName: trace_command_performance
    functionSourceFile: /src/git/trace.c
    functionUses: 1
    functionsReached:
    - atexit
    - trace_want
    - sq_quote_argv_pretty
    - strbuf_reset
    - trace_performance_enter
    linkageType: ''
    returnType: void
    signature: void trace_command_performance(const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/diff-no-index.c:30,1
    - Dst: error
      Src: /src/git/diff-no-index.c:31,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/diff-no-index.c:33,1
    - Dst: strbuf_setlen
      Src: /src/git/diff-no-index.c:37,1
    - Dst: strbuf_addstr
      Src: /src/git/diff-no-index.c:38,1
    - Dst: NOT_CONSTANT
      Src: /src/git/diff-no-index.c:39,1
    - Dst: DTYPE
      Src: /src/git/diff-no-index.c:39,1
    - Dst: DTYPE
      Src: /src/git/diff-no-index.c:40,1
    - Dst: strbuf_addstr
      Src: /src/git/diff-no-index.c:44,1
    - Dst: strbuf_complete
      Src: /src/git/diff-no-index.c:45,1
    - Dst: get_dtype
      Src: /src/git/diff-no-index.c:46,1
    - Dst: strbuf_release
      Src: /src/git/diff-no-index.c:47,1
    - Dst: match_leading_pathspec
      Src: /src/git/diff-no-index.c:50,1
    - Dst: string_list_insert
      Src: /src/git/diff-no-index.c:56,1
    - Dst: strbuf_setlen
      Src: /src/git/diff-no-index.c:59,1
    - Dst: closedir
      Src: /src/git/diff-no-index.c:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - path
    - list
    - pathspec
    - match
    argTypes:
    - char*
    - struct string_list*
    - struct pathspec*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 62
    functionName: read_directory_contents
    functionSourceFile: /src/git/diff-no-index.c
    functionUses: 0
    functionsReached:
    - error
    - get_dtype
    - strbuf_release
    - string_list_insert
    - NOT_CONSTANT
    - strbuf_setlen
    - opendir
    - readdir_skip_dot_and_dotdot
    - strbuf_complete
    - strbuf_addstr
    - DTYPE
    - match_leading_pathspec
    - closedir
    linkageType: ''
    returnType: int
    signature: "int read_directory_contents(const char *path, struct string_list *list,\n\t\t\t\t
      \  const struct pathspec *pathspec,\n\t\t\t\t   struct strbuf *match)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diff-no-index.c:85,1
    - Dst: strcasecmp
      Src: /src/git/diff-no-index.c:88,1
    - Dst: create_ce_mode
      Src: /src/git/diff-no-index.c:92,1
    - Dst: lstat
      Src: /src/git/diff-no-index.c:94,1
    - Dst: error
      Src: /src/git/diff-no-index.c:95,1
    - Dst: S_ISFIFO
      Src: /src/git/diff-no-index.c:104,1
    - Dst: S_ISLNK
      Src: /src/git/diff-no-index.c:105,1
    - Dst: stat
      Src: /src/git/diff-no-index.c:105,1
    - Dst: S_ISFIFO
      Src: /src/git/diff-no-index.c:105,1
    - Dst: create_ce_mode
      Src: /src/git/diff-no-index.c:106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - path
    - mode
    - special
    argTypes:
    - char*
    - int*
    - enum special*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 111
    functionName: get_mode
    functionSourceFile: /src/git/diff-no-index.c
    functionUses: 7
    functionsReached:
    - error
    - S_ISFIFO
    - S_ISLNK
    - strcasecmp
    - stat
    - strcmp
    - create_ce_mode
    - lstat
    linkageType: ''
    returnType: int
    signature: int get_mode(const char *path, int *mode, enum special *special)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_detach
      Src: /src/git/diff-no-index.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - struct diff_filespec*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: populate_common
    functionSourceFile: /src/git/diff-no-index.c
    functionUses: 0
    functionsReached:
    - strbuf_detach
    linkageType: ''
    returnType: void
    signature: void populate_common(struct diff_filespec *s, struct strbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xopen
      Src: /src/git/diff-no-index.c:127,1
    - Dst: strbuf_read
      Src: /src/git/diff-no-index.c:129,1
    - Dst: die_errno
      Src: /src/git/diff-no-index.c:130,1
    - Dst: close
      Src: /src/git/diff-no-index.c:131,1
    - Dst: populate_common
      Src: /src/git/diff-no-index.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: populate_from_pipe
    functionSourceFile: /src/git/diff-no-index.c
    functionUses: 0
    functionsReached:
    - xopen
    - strbuf_read
    - populate_common
    - die_errno
    - close
    linkageType: ''
    returnType: void
    signature: void populate_from_pipe(struct diff_filespec *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read
      Src: /src/git/diff-no-index.c:139,1
    - Dst: die_errno
      Src: /src/git/diff-no-index.c:140,1
    - Dst: populate_common
      Src: /src/git/diff-no-index.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct diff_filespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: populate_from_stdin
    functionSourceFile: /src/git/diff-no-index.c
    functionUses: 0
    functionsReached:
    - strbuf_read
    - die_errno
    - populate_common
    linkageType: ''
    returnType: void
    signature: void populate_from_stdin(struct diff_filespec *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_filespec
      Src: /src/git/diff-no-index.c:152,1
    - Dst: fill_filespec
      Src: /src/git/diff-no-index.c:153,1
    - Dst: null_oid
      Src: /src/git/diff-no-index.c:153,1
    - Dst: populate_from_stdin
      Src: /src/git/diff-no-index.c:155,1
    - Dst: populate_from_pipe
      Src: /src/git/diff-no-index.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - algop
    - name
    - mode
    - special
    argTypes:
    - struct git_hash_algo*
    - char*
    - int
    - enum special
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: noindex_filespec
    functionSourceFile: /src/git/diff-no-index.c
    functionUses: 0
    functionsReached:
    - populate_from_pipe
    - alloc_filespec
    - populate_from_stdin
    - fill_filespec
    - null_oid
    linkageType: ''
    returnType: struct diff_filespec
    signature: "struct diff_filespec *noindex_filespec(const struct git_hash_algo
      *algop,\n\t\t\t\t\t      const char *name, int mode,\n\t\t\t\t\t      enum special
      special)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_mode
      Src: /src/git/diff-no-index.c:170,1
    - Dst: get_mode
      Src: /src/git/diff-no-index.c:171,1
    - Dst: S_ISDIR
      Src: /src/git/diff-no-index.c:174,1
    - Dst: S_ISDIR
      Src: /src/git/diff-no-index.c:174,1
    - Dst: S_ISDIR
      Src: /src/git/diff-no-index.c:177,1
    - Dst: noindex_filespec
      Src: /src/git/diff-no-index.c:179,1
    - Dst: noindex_filespec
      Src: /src/git/diff-no-index.c:180,1
    - Dst: noindex_filespec
      Src: /src/git/diff-no-index.c:185,1
    - Dst: noindex_filespec
      Src: /src/git/diff-no-index.c:186,1
    - Dst: diff_queue
      Src: /src/git/diff-no-index.c:191,1
    - Dst: S_ISDIR
      Src: /src/git/diff-no-index.c:196,1
    - Dst: S_ISDIR
      Src: /src/git/diff-no-index.c:196,1
    - Dst: read_directory_contents
      Src: /src/git/diff-no-index.c:206,1
    - Dst: read_directory_contents
      Src: /src/git/diff-no-index.c:208,1
    - Dst: string_list_clear
      Src: /src/git/diff-no-index.c:209,1
    - Dst: strbuf_addstr
      Src: /src/git/diff-no-index.c:214,1
    - Dst: strbuf_complete
      Src: /src/git/diff-no-index.c:215,1
    - Dst: strbuf_addstr
      Src: /src/git/diff-no-index.c:220,1
    - Dst: strbuf_complete
      Src: /src/git/diff-no-index.c:221,1
    - Dst: strbuf_setlen
      Src: /src/git/diff-no-index.c:229,1
    - Dst: strbuf_setlen
      Src: /src/git/diff-no-index.c:230,1
    - Dst: strbuf_setlen
      Src: /src/git/diff-no-index.c:233,1
    - Dst: strbuf_setlen
      Src: /src/git/diff-no-index.c:234,1
    - Dst: strcmp
      Src: /src/git/diff-no-index.c:242,1
    - Dst: strbuf_addstr
      Src: /src/git/diff-no-index.c:247,1
    - Dst: strbuf_addstr
      Src: /src/git/diff-no-index.c:249,1
    - Dst: strbuf_complete
      Src: /src/git/diff-no-index.c:250,1
    - Dst: strbuf_addstr
      Src: /src/git/diff-no-index.c:259,1
    - Dst: strbuf_addstr
      Src: /src/git/diff-no-index.c:261,1
    - Dst: strbuf_complete
      Src: /src/git/diff-no-index.c:262,1
    - Dst: queue_diff
      Src: /src/git/diff-no-index.c:268,1
    - Dst: string_list_clear
      Src: /src/git/diff-no-index.c:270,1
    - Dst: string_list_clear
      Src: /src/git/diff-no-index.c:271,1
    - Dst: strbuf_release
      Src: /src/git/diff-no-index.c:272,1
    - Dst: strbuf_release
      Src: /src/git/diff-no-index.c:273,1
    - Dst: SWAP
      Src: /src/git/diff-no-index.c:280,1
    - Dst: SWAP
      Src: /src/git/diff-no-index.c:281,1
    - Dst: SWAP
      Src: /src/git/diff-no-index.c:282,1
    - Dst: noindex_filespec
      Src: /src/git/diff-no-index.c:285,1
    - Dst: noindex_filespec
      Src: /src/git/diff-no-index.c:286,1
    - Dst: diff_queue
      Src: /src/git/diff-no-index.c:287,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 84
    argCount: 8
    argNames:
    - o
    - algop
    - name1
    - name2
    - recursing
    - ps
    - ps_match1
    - ps_match2
    argTypes:
    - struct diff_options*
    - struct git_hash_algo*
    - char*
    - char*
    - int
    - struct pathspec*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 161
    functionDepth: 8
    functionLinenumber: 161
    functionLinenumberEnd: 290
    functionName: queue_diff
    functionSourceFile: /src/git/diff-no-index.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    - S_ISDIR
    - queue_diff
    - noindex_filespec
    - strbuf_release
    - read_directory_contents
    - diff_queue
    - strbuf_setlen
    - get_mode
    - strcmp
    - SWAP
    - strbuf_addstr
    - strbuf_complete
    linkageType: ''
    returnType: int
    signature: "int queue_diff(struct diff_options *o, const struct git_hash_algo
      *algop,\n\t\t      const char *name1, const char *name2, int recursing,\n\t\t
      \     const struct pathspec *ps,\n\t\t      struct strbuf *ps_match1, struct
      strbuf *ps_match2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/diff-no-index.c:295,1
    - Dst: strbuf_addstr
      Src: /src/git/diff-no-index.c:297,1
    - Dst: strbuf_addch
      Src: /src/git/diff-no-index.c:300,1
    - Dst: strbuf_addstr
      Src: /src/git/diff-no-index.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - path
    - dir
    - file
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 4
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: append_basename
    functionSourceFile: /src/git/diff-no-index.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    - strbuf_addstr
    - strrchr
    linkageType: ''
    returnType: void
    signature: void append_basename(struct strbuf *path, const char *dir, const char
      *file)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/diff-no-index.c:317,1
    - Dst: S_ISDIR
      Src: /src/git/diff-no-index.c:318,1
    - Dst: S_ISFIFO
      Src: /src/git/diff-no-index.c:319,1
    - Dst: stat
      Src: /src/git/diff-no-index.c:322,1
    - Dst: S_ISDIR
      Src: /src/git/diff-no-index.c:323,1
    - Dst: S_ISFIFO
      Src: /src/git/diff-no-index.c:324,1
    - Dst: die
      Src: /src/git/diff-no-index.c:329,1
    - Dst: _
      Src: /src/git/diff-no-index.c:329,1
    - Dst: die
      Src: /src/git/diff-no-index.c:332,1
    - Dst: _
      Src: /src/git/diff-no-index.c:332,1
    - Dst: append_basename
      Src: /src/git/diff-no-index.c:339,1
    - Dst: append_basename
      Src: /src/git/diff-no-index.c:342,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 2
    argNames:
    - path
    - replacement
    argTypes:
    - char**
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 311
    functionDepth: 5
    functionLinenumber: 311
    functionLinenumberEnd: 347
    functionName: fixup_paths
    functionSourceFile: /src/git/diff-no-index.c
    functionUses: 0
    functionsReached:
    - S_ISFIFO
    - S_ISDIR
    - die
    - stat
    - _
    - append_basename
    linkageType: ''
    returnType: int
    signature: int fixup_paths(const char **path, struct strbuf *replacement)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/diff-no-index.c:362,1
    - Dst: OPT_BOOL_F
      Src: /src/git/diff-no-index.c:366,1
    - Dst: OPT_END
      Src: /src/git/diff-no-index.c:368,1
    - Dst: add_diff_options
      Src: /src/git/diff-no-index.c:372,1
    - Dst: parse_options
      Src: /src/git/diff-no-index.c:373,1
    - Dst: warning
      Src: /src/git/diff-no-index.c:377,1
    - Dst: _
      Src: /src/git/diff-no-index.c:377,1
    - Dst: usage_with_options
      Src: /src/git/diff-no-index.c:379,1
    - Dst: strcmp
      Src: /src/git/diff-no-index.c:383,1
    - Dst: prefix_filename
      Src: /src/git/diff-no-index.c:390,1
    - Dst: fixup_paths
      Src: /src/git/diff-no-index.c:394,1
    - Dst: parse_pathspec
      Src: /src/git/diff-no-index.c:395,1
    - Dst: warning
      Src: /src/git/diff-no-index.c:401,1
    - Dst: _
      Src: /src/git/diff-no-index.c:401,1
    - Dst: usage_with_options
      Src: /src/git/diff-no-index.c:403,1
    - Dst: FREE_AND_NULL
      Src: /src/git/diff-no-index.c:405,1
    - Dst: diff_setup_done
      Src: /src/git/diff-no-index.c:417,1
    - Dst: setup_diff_pager
      Src: /src/git/diff-no-index.c:419,1
    - Dst: queue_diff
      Src: /src/git/diff-no-index.c:422,1
    - Dst: diff_set_mnemonic_prefix
      Src: /src/git/diff-no-index.c:425,1
    - Dst: diffcore_std
      Src: /src/git/diff-no-index.c:426,1
    - Dst: diff_flush
      Src: /src/git/diff-no-index.c:427,1
    - Dst: diff_result_code
      Src: /src/git/diff-no-index.c:433,1
    - Dst: ARRAY_SIZE
      Src: /src/git/diff-no-index.c:436,1
    - Dst: free
      Src: /src/git/diff-no-index.c:437,1
    - Dst: strbuf_release
      Src: /src/git/diff-no-index.c:438,1
    - Dst: strbuf_release
      Src: /src/git/diff-no-index.c:439,1
    - Dst: strbuf_release
      Src: /src/git/diff-no-index.c:440,1
    - Dst: clear_pathspec
      Src: /src/git/diff-no-index.c:442,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 5
    argNames:
    - revs
    - algop
    - implicit_no_index
    - argc
    - argv
    argTypes:
    - struct rev_info*
    - struct git_hash_algo*
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 354
    functionDepth: 26
    functionLinenumber: 354
    functionLinenumberEnd: 444
    functionName: diff_no_index
    functionSourceFile: /src/git/diff-no-index.c
    functionUses: 0
    functionsReached:
    - parse_options
    - queue_diff
    - diff_set_mnemonic_prefix
    - strcmp
    - free
    - setup_diff_pager
    - usage_with_options
    - strbuf_release
    - OPT_END
    - prefix_filename
    - add_diff_options
    - diff_setup_done
    - parse_pathspec
    - ARRAY_SIZE
    - diff_result_code
    - diff_flush
    - _
    - fixup_paths
    - warning
    - FREE_AND_NULL
    - clear_pathspec
    - OPT_BOOL_F
    - diffcore_std
    linkageType: ''
    returnType: int
    signature: "int diff_no_index(struct rev_info *revs, const struct git_hash_algo
      *algop,\n\t\t  int implicit_no_index, int argc, const char **argv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_for_each_pack
      Src: /src/git/repack-cruft.c:14,1
    - Dst: strbuf_reset
      Src: /src/git/repack-cruft.c:18,1
    - Dst: strbuf_addstr
      Src: /src/git/repack-cruft.c:19,1
    - Dst: pack_basename
      Src: /src/git/repack-cruft.c:19,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/repack-cruft.c:20,1
    - Dst: string_list_has_string
      Src: /src/git/repack-cruft.c:22,1
    - Dst: fprintf
      Src: /src/git/repack-cruft.c:26,1
    - Dst: pack_basename
      Src: /src/git/repack-cruft.c:26,1
    - Dst: existing_packs_retain_cruft
      Src: /src/git/repack-cruft.c:28,1
    - Dst: fprintf
      Src: /src/git/repack-cruft.c:29,1
    - Dst: pack_basename
      Src: /src/git/repack-cruft.c:29,1
    - Dst: fprintf
      Src: /src/git/repack-cruft.c:34,1
    - Dst: strbuf_release
      Src: /src/git/repack-cruft.c:37,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - in
    - combine_cruft_below_size
    - existing
    argTypes:
    - FILE*
    - off_t
    - struct existing_packs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 7
    functionDepth: 5
    functionLinenumber: 7
    functionLinenumberEnd: 38
    functionName: combine_small_cruft_packs
    functionSourceFile: /src/git/repack-cruft.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - existing_packs_retain_cruft
    - pack_basename
    - strbuf_reset
    - strbuf_strip_suffix
    - string_list_has_string
    - repo_for_each_pack
    - strbuf_addstr
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void combine_small_cruft_packs(FILE *in, off_t combine_cruft_below_size,\n\t\t\t\t
      \     struct existing_packs *existing)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_pack_opts_pack_prefix
      Src: /src/git/repack-cruft.c:50,1
    - Dst: prepare_pack_objects
      Src: /src/git/repack-cruft.c:52,1
    - Dst: strvec_push
      Src: /src/git/repack-cruft.c:54,1
    - Dst: strvec_pushf
      Src: /src/git/repack-cruft.c:56,1
    - Dst: strvec_push
      Src: /src/git/repack-cruft.c:59,1
    - Dst: start_command
      Src: /src/git/repack-cruft.c:63,1
    - Dst: xfdopen
      Src: /src/git/repack-cruft.c:80,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-cruft.c:81,1
    - Dst: fprintf
      Src: /src/git/repack-cruft.c:82,1
    - Dst: combine_small_cruft_packs
      Src: /src/git/repack-cruft.c:84,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-cruft.c:87,1
    - Dst: fprintf
      Src: /src/git/repack-cruft.c:88,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-cruft.c:89,1
    - Dst: fprintf
      Src: /src/git/repack-cruft.c:90,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-cruft.c:92,1
    - Dst: fprintf
      Src: /src/git/repack-cruft.c:93,1
    - Dst: fclose
      Src: /src/git/repack-cruft.c:94,1
    - Dst: finish_pack_objects_cmd
      Src: /src/git/repack-cruft.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - opts
    - cruft_expiration
    - combine_cruft_below_size
    - names
    - existing
    argTypes:
    - struct write_pack_opts*
    - char*
    - unsigned long
    - struct string_list*
    - struct existing_packs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 40
    functionDepth: 7
    functionLinenumber: 40
    functionLinenumberEnd: 98
    functionName: write_cruft_pack
    functionSourceFile: /src/git/repack-cruft.c
    functionUses: 0
    functionsReached:
    - prepare_pack_objects
    - strvec_push
    - for_each_string_list_item
    - fclose
    - write_pack_opts_pack_prefix
    - combine_small_cruft_packs
    - fprintf
    - finish_pack_objects_cmd
    - xfdopen
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: int
    signature: "int write_cruft_pack(const struct write_pack_opts *opts,\n\t\t     const
      char *cruft_expiration,\n\t\t     unsigned long combine_cruft_below_size,\n\t\t
      \    struct string_list *names,\n\t\t     struct existing_packs *existing)"
  - 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: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: initgroups
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: initgroups(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_hostname
      Src: /src/git/daemon.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hi
    argTypes:
    - struct hostinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: get_canon_hostname
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - lookup_hostname
    linkageType: ''
    returnType: char
    signature: char *get_canon_hostname(struct hostinfo *hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_hostname
      Src: /src/git/daemon.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hi
    argTypes:
    - struct hostinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: get_ip_address
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - lookup_hostname
    linkageType: ''
    returnType: char
    signature: char *get_ip_address(struct hostinfo *hi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/git/daemon.c:100,1
    - Dst: syslog
      Src: /src/git/daemon.c:101,1
    - Dst: fprintf
      Src: /src/git/daemon.c:110,1
    - Dst: getpid
      Src: /src/git/daemon.c:110,1
    - Dst: vfprintf
      Src: /src/git/daemon.c:111,1
    - Dst: fputc
      Src: /src/git/daemon.c:112,1
    - Dst: fflush
      Src: /src/git/daemon.c:113,1
    - Dst: BUG
      Src: /src/git/daemon.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - priority
    - err
    - params
    argTypes:
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 120
    functionName: logreport
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fflush
    - syslog
    - getpid
    - fputc
    - vsnprintf
    - BUG
    - fprintf
    linkageType: ''
    returnType: void
    signature: void logreport(int priority, const char *err, va_list params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/daemon.c:122,1
    - Dst: va_start
      Src: /src/git/daemon.c:126,1
    - Dst: logreport
      Src: /src/git/daemon.c:127,1
    - Dst: va_end
      Src: /src/git/daemon.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: logerror
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - logreport
    - format
    linkageType: ''
    returnType: void
    signature: void logerror(const char *err, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/daemon.c:131,1
    - Dst: va_start
      Src: /src/git/daemon.c:137,1
    - Dst: logreport
      Src: /src/git/daemon.c:138,1
    - Dst: va_end
      Src: /src/git/daemon.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: loginfo
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - logreport
    - format
    linkageType: ''
    returnType: void
    signature: void loginfo(const char *err, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: logreport
      Src: /src/git/daemon.c:144,1
    - Dst: exit
      Src: /src/git/daemon.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - err
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: daemon_die
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - exit
    - logreport
    linkageType: ''
    returnType: void
    signature: void daemon_die(const char *err, va_list params)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: daemon_avoid_alias
      Src: /src/git/daemon.c:159,1
    - Dst: logerror
      Src: /src/git/daemon.c:160,1
    - Dst: logerror
      Src: /src/git/daemon.c:166,1
    - Dst: strlen
      Src: /src/git/daemon.c:174,1
    - Dst: strchr
      Src: /src/git/daemon.c:175,1
    - Dst: loginfo
      Src: /src/git/daemon.c:180,1
    - Dst: snprintf
      Src: /src/git/daemon.c:181,1
    - Dst: logerror
      Src: /src/git/daemon.c:184,1
    - Dst: logerror
      Src: /src/git/daemon.c:196,1
    - Dst: strbuf_expand_step
      Src: /src/git/daemon.c:200,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:201,1
    - Dst: strbuf_addch
      Src: /src/git/daemon.c:202,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:203,1
    - Dst: strbuf_addbuf
      Src: /src/git/daemon.c:204,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:205,1
    - Dst: strbuf_addstr
      Src: /src/git/daemon.c:206,1
    - Dst: get_canon_hostname
      Src: /src/git/daemon.c:207,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:208,1
    - Dst: strbuf_addstr
      Src: /src/git/daemon.c:209,1
    - Dst: get_ip_address
      Src: /src/git/daemon.c:210,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:211,1
    - Dst: strbuf_addbuf
      Src: /src/git/daemon.c:212,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:213,1
    - Dst: strbuf_addstr
      Src: /src/git/daemon.c:214,1
    - Dst: strbuf_addch
      Src: /src/git/daemon.c:216,1
    - Dst: strlcpy
      Src: /src/git/daemon.c:219,1
    - Dst: strbuf_release
      Src: /src/git/daemon.c:221,1
    - Dst: logerror
      Src: /src/git/daemon.c:223,1
    - Dst: loginfo
      Src: /src/git/daemon.c:228,1
    - Dst: logerror
      Src: /src/git/daemon.c:235,1
    - Dst: snprintf
      Src: /src/git/daemon.c:238,1
    - Dst: logerror
      Src: /src/git/daemon.c:240,1
    - Dst: enter_repo
      Src: /src/git/daemon.c:247,1
    - Dst: enter_repo
      Src: /src/git/daemon.c:254,1
    - Dst: logerror
      Src: /src/git/daemon.c:258,1
    - Dst: strlen
      Src: /src/git/daemon.c:264,1
    - Dst: strlen
      Src: /src/git/daemon.c:274,1
    - Dst: memcmp
      Src: /src/git/daemon.c:276,1
    - Dst: logerror
      Src: /src/git/daemon.c:288,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 87
    argCount: 2
    argNames:
    - directory
    - hi
    argTypes:
    - char*
    - struct hostinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 148
    functionDepth: 11
    functionLinenumber: 148
    functionLinenumberEnd: 290
    functionName: path_ok
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strbuf_release
    - memcmp
    - strchr
    - strbuf_addch
    - daemon_avoid_alias
    - strbuf_expand_step
    - logerror
    - strlen
    - strbuf_addbuf
    - get_canon_hostname
    - strbuf_addstr
    - enter_repo
    - get_ip_address
    - skip_prefix
    - strlcpy
    - loginfo
    linkageType: ''
    returnType: char
    signature: char *path_ok(const char *directory, struct hostinfo *hi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_write_fmt
      Src: /src/git/daemon.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dir
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 7
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: daemon_error
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    linkageType: ''
    returnType: int
    signature: int daemon_error(const char *dir, const char *msg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/daemon.c:319,1
    - Dst: strvec_push
      Src: /src/git/daemon.c:320,1
    - Dst: strvec_push
      Src: /src/git/daemon.c:321,1
    - Dst: strvec_push
      Src: /src/git/daemon.c:322,1
    - Dst: strvec_push
      Src: /src/git/daemon.c:323,1
    - Dst: get_canon_hostname
      Src: /src/git/daemon.c:323,1
    - Dst: strvec_push
      Src: /src/git/daemon.c:324,1
    - Dst: get_ip_address
      Src: /src/git/daemon.c:324,1
    - Dst: strvec_push
      Src: /src/git/daemon.c:325,1
    - Dst: start_command
      Src: /src/git/daemon.c:331,1
    - Dst: logerror
      Src: /src/git/daemon.c:332,1
    - Dst: strbuf_read
      Src: /src/git/daemon.c:336,1
    - Dst: logerror
      Src: /src/git/daemon.c:337,1
    - Dst: strbuf_reset
      Src: /src/git/daemon.c:339,1
    - Dst: close
      Src: /src/git/daemon.c:342,1
    - Dst: logerror
      Src: /src/git/daemon.c:343,1
    - Dst: finish_command
      Src: /src/git/daemon.c:347,1
    - Dst: strbuf_release
      Src: /src/git/daemon.c:351,1
    - Dst: strbuf_ltrim
      Src: /src/git/daemon.c:356,1
    - Dst: strbuf_addstr
      Src: /src/git/daemon.c:358,1
    - Dst: strchr
      Src: /src/git/daemon.c:359,1
    - Dst: daemon_error
      Src: /src/git/daemon.c:363,1
    - Dst: strbuf_release
      Src: /src/git/daemon.c:364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 4
    argNames:
    - service
    - dir
    - path
    - hi
    argTypes:
    - struct daemon_service*
    - char*
    - char*
    - struct hostinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 311
    functionDepth: 8
    functionLinenumber: 311
    functionLinenumberEnd: 366
    functionName: run_access_hook
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - strbuf_read
    - finish_command
    - strbuf_reset
    - strchr
    - daemon_error
    - strbuf_ltrim
    - logerror
    - get_canon_hostname
    - strbuf_addstr
    - close
    - get_ip_address
    - start_command
    linkageType: ''
    returnType: int
    signature: "int run_access_hook(struct daemon_service *service, const char *dir,\n\t\t\t
      \  const char *path, struct hostinfo *hi)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: loginfo
      Src: /src/git/daemon.c:375,1
    - Dst: logerror
      Src: /src/git/daemon.c:378,1
    - Dst: daemon_error
      Src: /src/git/daemon.c:380,1
    - Dst: path_ok
      Src: /src/git/daemon.c:383,1
    - Dst: daemon_error
      Src: /src/git/daemon.c:384,1
    - Dst: access
      Src: /src/git/daemon.c:397,1
    - Dst: logerror
      Src: /src/git/daemon.c:398,1
    - Dst: daemon_error
      Src: /src/git/daemon.c:400,1
    - Dst: strbuf_addf
      Src: /src/git/daemon.c:404,1
    - Dst: repo_config_get_bool
      Src: /src/git/daemon.c:405,1
    - Dst: strbuf_release
      Src: /src/git/daemon.c:406,1
    - Dst: logerror
      Src: /src/git/daemon.c:409,1
    - Dst: daemon_error
      Src: /src/git/daemon.c:412,1
    - Dst: run_access_hook
      Src: /src/git/daemon.c:419,1
    - Dst: signal
      Src: /src/git/daemon.c:426,1
    - Dst: struct daemon_service*::fn
      Src: /src/git/daemon.c:428,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - dir
    - service
    - hi
    - env
    argTypes:
    - char*
    - struct daemon_service*
    - struct hostinfo*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 368
    functionDepth: 19
    functionLinenumber: 368
    functionLinenumberEnd: 429
    functionName: run_service
    functionSourceFile: /src/git/daemon.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - access
    - signal
    - strbuf_addf
    - struct daemon_service*::fn
    - daemon_error
    - repo_config_get_bool
    - logerror
    - run_access_hook
    - path_ok
    - loginfo
    linkageType: ''
    returnType: int
    signature: "int run_service(const char *dir, struct daemon_service *service,\n\t\t
      \      struct hostinfo *hi, const struct strvec *env)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdopen
      Src: /src/git/daemon.c:436,1
    - Dst: logerror
      Src: /src/git/daemon.c:438,1
    - Dst: close
      Src: /src/git/daemon.c:439,1
    - Dst: strbuf_getline_lf
      Src: /src/git/daemon.c:443,1
    - Dst: logerror
      Src: /src/git/daemon.c:444,1
    - Dst: strbuf_setlen
      Src: /src/git/daemon.c:445,1
    - Dst: strbuf_release
      Src: /src/git/daemon.c:448,1
    - Dst: fclose
      Src: /src/git/daemon.c:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 450
    functionName: copy_to_log
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - strbuf_setlen
    - fdopen
    - logerror
    - close
    linkageType: ''
    returnType: void
    signature: void copy_to_log(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/daemon.c:454,1
    - Dst: start_command
      Src: /src/git/daemon.c:457,1
    - Dst: close
      Src: /src/git/daemon.c:460,1
    - Dst: close
      Src: /src/git/daemon.c:461,1
    - Dst: copy_to_log
      Src: /src/git/daemon.c:463,1
    - Dst: finish_command
      Src: /src/git/daemon.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cld
    argTypes:
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 452
    functionDepth: 7
    functionLinenumber: 452
    functionLinenumberEnd: 466
    functionName: run_service_command
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - finish_command
    - copy_to_log
    - close
    - start_command
    linkageType: ''
    returnType: int
    signature: int run_service_command(struct child_process *cld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/daemon.c:471,1
    - Dst: strvec_pushf
      Src: /src/git/daemon.c:472,1
    - Dst: strvec_pushv
      Src: /src/git/daemon.c:474,1
    - Dst: run_service_command
      Src: /src/git/daemon.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 468
    functionDepth: 8
    functionLinenumber: 468
    functionLinenumberEnd: 477
    functionName: upload_pack
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - strvec_pushv
    - run_service_command
    - strvec_pushl
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int upload_pack(const struct strvec *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/daemon.c:482,1
    - Dst: strvec_pushv
      Src: /src/git/daemon.c:484,1
    - Dst: run_service_command
      Src: /src/git/daemon.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 479
    functionDepth: 8
    functionLinenumber: 479
    functionLinenumberEnd: 487
    functionName: upload_archive
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_service_command
    - strvec_pushv
    linkageType: ''
    returnType: int
    signature: int upload_archive(const struct strvec *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/daemon.c:492,1
    - Dst: strvec_pushv
      Src: /src/git/daemon.c:494,1
    - Dst: run_service_command
      Src: /src/git/daemon.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 489
    functionDepth: 8
    functionLinenumber: 489
    functionLinenumberEnd: 497
    functionName: receive_pack
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_service_command
    - strvec_pushv
    linkageType: ''
    returnType: int
    signature: int receive_pack(const struct strvec *env)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/daemon.c:507,1
    - Dst: strcmp
      Src: /src/git/daemon.c:508,1
    - Dst: die
      Src: /src/git/daemon.c:513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - name
    - ena
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: enable_service
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - die
    - strcmp
    linkageType: ''
    returnType: void
    signature: void enable_service(const char *name, int ena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/daemon.c:518,1
    - Dst: strcmp
      Src: /src/git/daemon.c:519,1
    - Dst: die
      Src: /src/git/daemon.c:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - name
    - ena
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 525
    functionName: make_service_overridable
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - die
    - strcmp
    linkageType: ''
    returnType: void
    signature: void make_service_overridable(const char *name, int ena)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/daemon.c:533,1
    - Dst: die
      Src: /src/git/daemon.c:535,1
    - Dst: die
      Src: /src/git/daemon.c:543,1
    - Dst: strrchr
      Src: /src/git/daemon.c:546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - hostport
    - host
    - port
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 552
    functionName: parse_host_and_port
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - die
    - strchr
    - strrchr
    linkageType: ''
    returnType: void
    signature: "void parse_host_and_port(char *hostport, char **host,\n\tchar **port)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/daemon.c:563,1
    - Dst: strbuf_addch
      Src: /src/git/daemon.c:567,1
    - Dst: strbuf_setlen
      Src: /src/git/daemon.c:571,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 572
    functionName: sanitize_client
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strbuf_setlen
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void sanitize_client(struct strbuf *out, const char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_client
      Src: /src/git/daemon.c:580,1
    - Dst: strbuf_tolower
      Src: /src/git/daemon.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: canonicalize_client
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - strbuf_tolower
    - sanitize_client
    linkageType: ''
    returnType: void
    signature: void canonicalize_client(struct strbuf *out, const char *in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/git/daemon.c:598,1
    - Dst: strlen
      Src: /src/git/daemon.c:600,1
    - Dst: loginfo
      Src: /src/git/daemon.c:601,1
    - Dst: parse_host_and_port
      Src: /src/git/daemon.c:606,1
    - Dst: sanitize_client
      Src: /src/git/daemon.c:608,1
    - Dst: canonicalize_client
      Src: /src/git/daemon.c:609,1
    - Dst: die
      Src: /src/git/daemon.c:617,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - hi
    - extra_args
    - buflen
    argTypes:
    - struct hostinfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 590
    functionDepth: 5
    functionLinenumber: 590
    functionLinenumberEnd: 621
    functionName: parse_host_arg
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - sanitize_client
    - die
    - strncasecmp
    - strlen
    - parse_host_and_port
    - canonicalize_client
    - loginfo
    linkageType: ''
    returnType: char
    signature: char *parse_host_arg(struct hostinfo *hi, char *extra_args, int buflen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_host_arg
      Src: /src/git/daemon.c:630,1
    - Dst: strlen
      Src: /src/git/daemon.c:633,1
    - Dst: strbuf_addch
      Src: /src/git/daemon.c:647,1
    - Dst: strbuf_addstr
      Src: /src/git/daemon.c:648,1
    - Dst: loginfo
      Src: /src/git/daemon.c:653,1
    - Dst: strvec_pushf
      Src: /src/git/daemon.c:654,1
    - Dst: strbuf_release
      Src: /src/git/daemon.c:657,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - hi
    - env
    - extra_args
    - buflen
    argTypes:
    - struct hostinfo*
    - struct strvec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 623
    functionDepth: 6
    functionLinenumber: 623
    functionLinenumberEnd: 658
    functionName: parse_extra_args
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addch
    - strlen
    - strbuf_addstr
    - parse_host_arg
    - strvec_pushf
    - loginfo
    linkageType: ''
    returnType: void
    signature: "void parse_extra_args(struct hostinfo *hi, struct strvec *env,\n\t\t\t
      \    char *extra_args, int buflen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/daemon.c:672,1
    - Dst: getaddrinfo
      Src: /src/git/daemon.c:675,1
    - Dst: inet_ntop
      Src: /src/git/daemon.c:679,1
    - Dst: strbuf_addstr
      Src: /src/git/daemon.c:681,1
    - Dst: sanitize_client
      Src: /src/git/daemon.c:684,1
    - Dst: strbuf_addbuf
      Src: /src/git/daemon.c:687,1
    - Dst: freeaddrinfo
      Src: /src/git/daemon.c:690,1
    - Dst: gethostbyname
      Src: /src/git/daemon.c:698,1
    - Dst: memset
      Src: /src/git/daemon.c:701,1
    - Dst: htons
      Src: /src/git/daemon.c:703,1
    - Dst: memcpy
      Src: /src/git/daemon.c:704,1
    - Dst: inet_ntop
      Src: /src/git/daemon.c:706,1
    - Dst: sanitize_client
      Src: /src/git/daemon.c:709,1
    - Dst: strbuf_addstr
      Src: /src/git/daemon.c:710,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - hi
    argTypes:
    - struct hostinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 663
    functionDepth: 4
    functionLinenumber: 663
    functionLinenumberEnd: 715
    functionName: lookup_hostname
    functionSourceFile: /src/git/daemon.c
    functionUses: 2
    functionsReached:
    - memset
    - getaddrinfo
    - inet_ntop
    - memcpy
    - strbuf_addbuf
    - freeaddrinfo
    - strbuf_addstr
    - gethostbyname
    - htons
    - sanitize_client
    linkageType: ''
    returnType: void
    signature: void lookup_hostname(struct hostinfo *hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/daemon.c:719,1
    - Dst: strbuf_release
      Src: /src/git/daemon.c:720,1
    - Dst: strbuf_release
      Src: /src/git/daemon.c:721,1
    - Dst: strbuf_release
      Src: /src/git/daemon.c:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hi
    argTypes:
    - struct hostinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 723
    functionName: hostinfo_clear
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void hostinfo_clear(struct hostinfo *hi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/git/daemon.c:729,1
    - Dst: logerror
      Src: /src/git/daemon.c:731,1
    - Dst: strerror
      Src: /src/git/daemon.c:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sockfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 734
    functionName: set_keep_alive
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - logerror
    - setsockopt
    - strerror
    linkageType: ''
    returnType: void
    signature: void set_keep_alive(int sockfd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/daemon.c:740,1
    - Dst: getenv
      Src: /src/git/daemon.c:740,1
    - Dst: loginfo
      Src: /src/git/daemon.c:745,1
    - Dst: set_keep_alive
      Src: /src/git/daemon.c:747,1
    - Dst: alarm
      Src: /src/git/daemon.c:748,1
    - Dst: packet_read
      Src: /src/git/daemon.c:749,1
    - Dst: alarm
      Src: /src/git/daemon.c:750,1
    - Dst: strlen
      Src: /src/git/daemon.c:752,1
    - Dst: parse_extra_args
      Src: /src/git/daemon.c:758,1
    - Dst: ARRAY_SIZE
      Src: /src/git/daemon.c:760,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:764,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:765,1
    - Dst: run_service
      Src: /src/git/daemon.c:771,1
    - Dst: hostinfo_clear
      Src: /src/git/daemon.c:772,1
    - Dst: strvec_clear
      Src: /src/git/daemon.c:773,1
    - Dst: hostinfo_clear
      Src: /src/git/daemon.c:778,1
    - Dst: strvec_clear
      Src: /src/git/daemon.c:779,1
    - Dst: logerror
      Src: /src/git/daemon.c:780,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 736
    functionDepth: 7
    functionLinenumber: 736
    functionLinenumberEnd: 782
    functionName: execute
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - packet_read
    - run_service
    - alarm
    - strlen
    - hostinfo_clear
    - strvec_clear
    - logerror
    - set_keep_alive
    - getenv
    - skip_prefix
    - parse_extra_args
    - loginfo
    linkageType: ''
    returnType: int
    signature: int execute(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/daemon.c:793,1
    - Dst: memcmp
      Src: /src/git/daemon.c:798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 803
    functionName: addrcmp
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int addrcmp(const struct sockaddr_storage *s1,\n    const struct sockaddr_storage
      *s2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/daemon.c:818,1
    - Dst: memcpy
      Src: /src/git/daemon.c:820,1
    - Dst: memcpy
      Src: /src/git/daemon.c:821,1
    - Dst: addrcmp
      Src: /src/git/daemon.c:823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - cld
    - addr
    - addrlen
    argTypes:
    - struct child_process*
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 827
    functionName: add_child
    functionSourceFile: /src/git/daemon.c
    functionUses: 1
    functionsReached:
    - addrcmp
    - memcpy
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void add_child(struct child_process *cld, struct sockaddr *addr, socklen_t
      addrlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: addrcmp
      Src: /src/git/daemon.c:843,1
    - Dst: kill
      Src: /src/git/daemon.c:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 847
    functionName: kill_some_child
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - kill
    - addrcmp
    linkageType: ''
    returnType: void
    signature: void kill_some_child(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/git/daemon.c:856,1
    - Dst: loginfo
      Src: /src/git/daemon.c:860,1
    - Dst: child_process_clear
      Src: /src/git/daemon.c:865,1
    - Dst: free
      Src: /src/git/daemon.c:866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 869
    functionName: check_dead_children
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - free
    - child_process_clear
    - waitpid
    - loginfo
    linkageType: ''
    returnType: void
    signature: void check_dead_children(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: kill_some_child
      Src: /src/git/daemon.c:877,1
    - Dst: sleep
      Src: /src/git/daemon.c:878,1
    - Dst: check_dead_children
      Src: /src/git/daemon.c:879,1
    - Dst: close
      Src: /src/git/daemon.c:881,1
    - Dst: logerror
      Src: /src/git/daemon.c:882,1
    - Dst: inet_ntop
      Src: /src/git/daemon.c:890,1
    - Dst: strvec_pushf
      Src: /src/git/daemon.c:891,1
    - Dst: strvec_pushf
      Src: /src/git/daemon.c:892,1
    - Dst: ntohs
      Src: /src/git/daemon.c:893,1
    - Dst: inet_ntop
      Src: /src/git/daemon.c:898,1
    - Dst: strvec_pushf
      Src: /src/git/daemon.c:899,1
    - Dst: strvec_pushf
      Src: /src/git/daemon.c:900,1
    - Dst: ntohs
      Src: /src/git/daemon.c:901,1
    - Dst: strvec_pushv
      Src: /src/git/daemon.c:905,1
    - Dst: dup
      Src: /src/git/daemon.c:907,1
    - Dst: start_command
      Src: /src/git/daemon.c:909,1
    - Dst: logerror
      Src: /src/git/daemon.c:910,1
    - Dst: add_child
      Src: /src/git/daemon.c:912,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - incoming
    - addr
    - addrlen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 872
    functionDepth: 7
    functionLinenumber: 872
    functionLinenumberEnd: 913
    functionName: handle
    functionSourceFile: /src/git/daemon.c
    functionUses: 7
    functionsReached:
    - check_dead_children
    - dup
    - add_child
    - ntohs
    - strvec_pushv
    - inet_ntop
    - logerror
    - close
    - sleep
    - strvec_pushf
    - start_command
    - kill_some_child
    linkageType: ''
    returnType: void
    signature: void handle(int incoming, struct sockaddr *addr, socklen_t addrlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 921
    functionName: child_handler
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void child_handler(int signo UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/git/daemon.c:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sockfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 931
    functionName: set_reuse_addr
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int set_reuse_addr(int sockfd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/git/daemon.c:950,1
    - Dst: inet_ntop
      Src: /src/git/daemon.c:954,1
    - Dst: xsnprintf
      Src: /src/git/daemon.c:957,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - family
    - sin
    - len
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 939
    functionDepth: 2
    functionLinenumber: 939
    functionLinenumberEnd: 960
    functionName: ip2str
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - xsnprintf
    linkageType: ''
    returnType: char
    signature: char *ip2str(int family, struct sockaddr *sin, socklen_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/daemon.c:972,1
    - Dst: memset
      Src: /src/git/daemon.c:973,1
    - Dst: getaddrinfo
      Src: /src/git/daemon.c:979,1
    - Dst: logerror
      Src: /src/git/daemon.c:981,1
    - Dst: gai_strerror
      Src: /src/git/daemon.c:981,1
    - Dst: socket
      Src: /src/git/daemon.c:988,1
    - Dst: setsockopt
      Src: /src/git/daemon.c:995,1
    - Dst: set_reuse_addr
      Src: /src/git/daemon.c:1001,1
    - Dst: logerror
      Src: /src/git/daemon.c:1002,1
    - Dst: strerror
      Src: /src/git/daemon.c:1002,1
    - Dst: close
      Src: /src/git/daemon.c:1003,1
    - Dst: set_keep_alive
      Src: /src/git/daemon.c:1007,1
    - Dst: bind
      Src: /src/git/daemon.c:1009,1
    - Dst: logerror
      Src: /src/git/daemon.c:1010,1
    - Dst: ip2str
      Src: /src/git/daemon.c:1011,1
    - Dst: strerror
      Src: /src/git/daemon.c:1012,1
    - Dst: close
      Src: /src/git/daemon.c:1013,1
    - Dst: listen
      Src: /src/git/daemon.c:1016,1
    - Dst: logerror
      Src: /src/git/daemon.c:1017,1
    - Dst: ip2str
      Src: /src/git/daemon.c:1018,1
    - Dst: strerror
      Src: /src/git/daemon.c:1019,1
    - Dst: close
      Src: /src/git/daemon.c:1020,1
    - Dst: fcntl
      Src: /src/git/daemon.c:1024,1
    - Dst: fcntl
      Src: /src/git/daemon.c:1026,1
    - Dst: ALLOC_GROW
      Src: /src/git/daemon.c:1028,1
    - Dst: freeaddrinfo
      Src: /src/git/daemon.c:1033,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - listen_addr
    - listen_port
    - socklist
    argTypes:
    - char*
    - int
    - struct socketlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 964
    functionDepth: 4
    functionLinenumber: 964
    functionLinenumberEnd: 1036
    functionName: setup_named_sock
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - memset
    - setsockopt
    - getaddrinfo
    - fcntl
    - listen
    - strerror
    - ip2str
    - logerror
    - socket
    - freeaddrinfo
    - xsnprintf
    - set_keep_alive
    - close
    - ALLOC_GROW
    - bind
    - gai_strerror
    - set_reuse_addr
    linkageType: ''
    returnType: int
    signature: int setup_named_sock(char *listen_addr, int listen_port, struct socketlist
      *socklist)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/daemon.c:1046,1
    - Dst: htons
      Src: /src/git/daemon.c:1048,1
    - Dst: inet_pton
      Src: /src/git/daemon.c:1052,1
    - Dst: htonl
      Src: /src/git/daemon.c:1055,1
    - Dst: socket
      Src: /src/git/daemon.c:1058,1
    - Dst: set_reuse_addr
      Src: /src/git/daemon.c:1062,1
    - Dst: logerror
      Src: /src/git/daemon.c:1063,1
    - Dst: strerror
      Src: /src/git/daemon.c:1063,1
    - Dst: close
      Src: /src/git/daemon.c:1064,1
    - Dst: set_keep_alive
      Src: /src/git/daemon.c:1068,1
    - Dst: bind
      Src: /src/git/daemon.c:1070,1
    - Dst: logerror
      Src: /src/git/daemon.c:1071,1
    - Dst: ip2str
      Src: /src/git/daemon.c:1072,1
    - Dst: strerror
      Src: /src/git/daemon.c:1073,1
    - Dst: close
      Src: /src/git/daemon.c:1074,1
    - Dst: listen
      Src: /src/git/daemon.c:1078,1
    - Dst: logerror
      Src: /src/git/daemon.c:1079,1
    - Dst: ip2str
      Src: /src/git/daemon.c:1080,1
    - Dst: strerror
      Src: /src/git/daemon.c:1081,1
    - Dst: close
      Src: /src/git/daemon.c:1082,1
    - Dst: fcntl
      Src: /src/git/daemon.c:1086,1
    - Dst: fcntl
      Src: /src/git/daemon.c:1088,1
    - Dst: ALLOC_GROW
      Src: /src/git/daemon.c:1090,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - listen_addr
    - listen_port
    - socklist
    argTypes:
    - char*
    - int
    - struct socketlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1040
    functionDepth: 4
    functionLinenumber: 1040
    functionLinenumberEnd: 1093
    functionName: setup_named_sock
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - memset
    - inet_pton
    - fcntl
    - listen
    - strerror
    - htonl
    - ip2str
    - logerror
    - socket
    - set_keep_alive
    - ALLOC_GROW
    - close
    - bind
    - htons
    - set_reuse_addr
    linkageType: ''
    returnType: int
    signature: int setup_named_sock(char *listen_addr, int listen_port, struct socketlist
      *socklist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_named_sock
      Src: /src/git/daemon.c:1100,1
    - Dst: setup_named_sock
      Src: /src/git/daemon.c:1104,1
    - Dst: logerror
      Src: /src/git/daemon.c:1108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - listen_addr
    - listen_port
    - socklist
    argTypes:
    - struct string_list*
    - int
    - struct socketlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1097
    functionDepth: 5
    functionLinenumber: 1097
    functionLinenumberEnd: 1112
    functionName: socksetup
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - setup_named_sock
    - logerror
    linkageType: ''
    returnType: void
    signature: void socksetup(struct string_list *listen_addr, int listen_port, struct
      socketlist *socklist)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/daemon.c:1119,1
    - Dst: sigemptyset
      Src: /src/git/daemon.c:1126,1
    - Dst: sigaction
      Src: /src/git/daemon.c:1129,1
    - Dst: check_dead_children
      Src: /src/git/daemon.c:1132,1
    - Dst: poll
      Src: /src/git/daemon.c:1134,1
    - Dst: logerror
      Src: /src/git/daemon.c:1136,1
    - Dst: strerror
      Src: /src/git/daemon.c:1137,1
    - Dst: sleep
      Src: /src/git/daemon.c:1138,1
    - Dst: accept
      Src: /src/git/daemon.c:1157,1
    - Dst: die_errno
      Src: /src/git/daemon.c:1169,1
    - Dst: handle
      Src: /src/git/daemon.c:1172,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - socklist
    argTypes:
    - struct socketlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1114
    functionDepth: 8
    functionLinenumber: 1114
    functionLinenumberEnd: 1176
    functionName: service_loop
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - check_dead_children
    - handle
    - accept
    - strerror
    - die_errno
    - sigemptyset
    - logerror
    - sigaction
    - CALLOC_ARRAY
    - sleep
    - poll
    linkageType: ''
    returnType: int
    signature: int service_loop(struct socketlist *socklist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct credentials*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1185
    functionName: drop_privileges
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void drop_privileges(struct credentials *cred UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/daemon.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user_name
    - group_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1191
    functionName: prepare_credentials
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: struct credentials
    signature: "struct credentials *prepare_credentials(const char *user_name UNUSED,\n\t\t\t\t\t
      \      const char *group_name UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: initgroups
      Src: /src/git/daemon.c:1202,1
    - Dst: setgid
      Src: /src/git/daemon.c:1203,1
    - Dst: setuid
      Src: /src/git/daemon.c:1203,1
    - Dst: die
      Src: /src/git/daemon.c:1204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - cred
    argTypes:
    - struct credentials*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1205
    functionName: drop_privileges
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - setgid
    - setuid
    - die
    - initgroups
    linkageType: ''
    returnType: void
    signature: void drop_privileges(struct credentials *cred)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getpwnam
      Src: /src/git/daemon.c:1212,1
    - Dst: die
      Src: /src/git/daemon.c:1214,1
    - Dst: getgrnam
      Src: /src/git/daemon.c:1219,1
    - Dst: die
      Src: /src/git/daemon.c:1221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - user_name
    - group_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1227
    functionName: prepare_credentials
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - getpwnam
    - die
    - getgrnam
    linkageType: ''
    returnType: struct credentials
    signature: "struct credentials *prepare_credentials(const char *user_name,\n    const
      char *group_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socksetup
      Src: /src/git/daemon.c:1235,1
    - Dst: die
      Src: /src/git/daemon.c:1237,1
    - Dst: drop_privileges
      Src: /src/git/daemon.c:1240,1
    - Dst: loginfo
      Src: /src/git/daemon.c:1242,1
    - Dst: service_loop
      Src: /src/git/daemon.c:1244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - listen_addr
    - listen_port
    - cred
    argTypes:
    - struct string_list*
    - int
    - struct credentials*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1230
    functionDepth: 9
    functionLinenumber: 1230
    functionLinenumberEnd: 1245
    functionName: serve
    functionSourceFile: /src/git/daemon.c
    functionUses: 0
    functionsReached:
    - die
    - socksetup
    - drop_privileges
    - service_loop
    - loginfo
    linkageType: ''
    returnType: int
    signature: "int serve(struct string_list *listen_addr, int listen_port,\n    struct
      credentials *cred)"
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1262,1
    - Dst: string_list_append_nodup
      Src: /src/git/daemon.c:1263,1
    - Dst: xstrdup_tolower
      Src: /src/git/daemon.c:1263,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1266,1
    - Dst: strtoul
      Src: /src/git/daemon.c:1269,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1275,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1279,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1283,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1287,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1291,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1292,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1295,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1298,1
    - Dst: die
      Src: /src/git/daemon.c:1302,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1304,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1308,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1312,1
    - Dst: strtoul_ui
      Src: /src/git/daemon.c:1313,1
    - Dst: die
      Src: /src/git/daemon.c:1314,1
    - Dst: _
      Src: /src/git/daemon.c:1314,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1317,1
    - Dst: strtoul_ui
      Src: /src/git/daemon.c:1318,1
    - Dst: die
      Src: /src/git/daemon.c:1319,1
    - Dst: _
      Src: /src/git/daemon.c:1319,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1322,1
    - Dst: strtol_i
      Src: /src/git/daemon.c:1324,1
    - Dst: die
      Src: /src/git/daemon.c:1325,1
    - Dst: _
      Src: /src/git/daemon.c:1325,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1330,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1334,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1338,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1342,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1346,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1350,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1354,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1358,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1362,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1366,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1370,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1374,1
    - Dst: enable_service
      Src: /src/git/daemon.c:1375,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1378,1
    - Dst: enable_service
      Src: /src/git/daemon.c:1379,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1382,1
    - Dst: make_service_overridable
      Src: /src/git/daemon.c:1383,1
    - Dst: skip_prefix
      Src: /src/git/daemon.c:1386,1
    - Dst: make_service_overridable
      Src: /src/git/daemon.c:1387,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1390,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1394,1
    - Dst: strcmp
      Src: /src/git/daemon.c:1398,1
    - Dst: usage
      Src: /src/git/daemon.c:1406,1
    - Dst: openlog
      Src: /src/git/daemon.c:1417,1
    - Dst: set_die_routine
      Src: /src/git/daemon.c:1418,1
    - Dst: setvbuf
      Src: /src/git/daemon.c:1421,1
    - Dst: die
      Src: /src/git/daemon.c:1424,1
    - Dst: die
      Src: /src/git/daemon.c:1427,1
    - Dst: die
      Src: /src/git/daemon.c:1432,1
    - Dst: prepare_credentials
      Src: /src/git/daemon.c:1435,1
    - Dst: die
      Src: /src/git/daemon.c:1438,1
    - Dst: is_directory
      Src: /src/git/daemon.c:1440,1
    - Dst: die
      Src: /src/git/daemon.c:1441,1
    - Dst: freopen
      Src: /src/git/daemon.c:1445,1
    - Dst: die_errno
      Src: /src/git/daemon.c:1446,1
    - Dst: execute
      Src: /src/git/daemon.c:1450,1
    - Dst: daemonize
      Src: /src/git/daemon.c:1453,1
    - Dst: die
      Src: /src/git/daemon.c:1454,1
    - Dst: write_file
      Src: /src/git/daemon.c:1458,1
    - Dst: getpid
      Src: /src/git/daemon.c:1458,1
    - Dst: strvec_push
      Src: /src/git/daemon.c:1461,1
    - Dst: strvec_push
      Src: /src/git/daemon.c:1462,1
    - Dst: strvec_push
      Src: /src/git/daemon.c:1464,1
    - Dst: serve
      Src: /src/git/daemon.c:1466,1
    - Dst: string_list_clear
      Src: /src/git/daemon.c:1469,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 191
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1247
    functionDepth: 10
    functionLinenumber: 1247
    functionLinenumberEnd: 1471
    functionName: cmd_main
    functionSourceFile: /src/git/daemon.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - write_file
    - prepare_credentials
    - enable_service
    - setvbuf
    - serve
    - strcmp
    - die
    - strtol_i
    - getpid
    - daemonize
    - freopen
    - strtoul
    - string_list_clear
    - die_errno
    - strtoul_ui
    - _
    - skip_prefix
    - openlog
    - set_die_routine
    - string_list_append_nodup
    - usage
    - xstrdup_tolower
    - make_service_overridable
    - is_directory
    - execute
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: OPT_BIT_F
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_BIT_F(s, l, v, h, b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: OPT_COUNTUP_F
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_COUNTUP_F(s, l, v, h, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - i
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: OPT_SET_INT_F
    functionSourceFile: /src/git/parse-options.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_SET_INT_F(s, l, v, h, i, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: OPT_BOOL_F
    functionSourceFile: /src/git/parse-options.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_BOOL_F(s, l, v, h, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - a
    - ','
    - h
    - ','
    - f
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: OPT_CALLBACK_F
    functionSourceFile: /src/git/parse-options.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_CALLBACK_F(s, l, v, a, h, f, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - a
    - ','
    - h
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 221
    functionName: OPT_STRING_F
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_STRING_F(s, l, v, a, h, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: OPT_INTEGER_F
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_INTEGER_F(s, l, v, h, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: OPT_END
    functionSourceFile: /src/git/parse-options.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_END()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: OPT_GROUP
    functionSourceFile: /src/git/parse-options.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_GROUP(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: OPT_BIT
    functionSourceFile: /src/git/parse-options.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_BIT(s, l, v, h, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - set
    - ','
    - clear
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 251
    functionName: OPT_BITOP
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_BITOP(s, l, v, h, set, clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: OPT_NEGBIT
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_NEGBIT(s, l, v, h, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: OPT_COUNTUP
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_COUNTUP(s, l, v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: OPT_SET_INT
    functionSourceFile: /src/git/parse-options.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_SET_INT(s, l, v, h, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: OPT_BOOL
    functionSourceFile: /src/git/parse-options.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_BOOL(s, l, v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: OPT_HIDDEN_BOOL
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_HIDDEN_BOOL(s, l, v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - i
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 284
    functionName: OPT_CMDMODE_F
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_CMDMODE_F(s, l, v, h, i, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: OPT_CMDMODE
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_CMDMODE(s, l, v, h, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: OPT_INTEGER
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_INTEGER(s, l, v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: OPT_UNSIGNED
    functionSourceFile: /src/git/parse-options.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_UNSIGNED(s, l, v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - a
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: OPT_STRING
    functionSourceFile: /src/git/parse-options.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_STRING(s, l, v, a, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - a
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 307
    functionName: OPT_STRING_LIST
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_STRING_LIST(s, l, v, a, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - a
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: OPT_STRVEC
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_STRVEC(s, l, v, a, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 325
    functionName: OPT_UYN
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_UYN(s, l, v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 334
    functionName: OPT_EXPIRY_DATE
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_EXPIRY_DATE(s, l, v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - a
    - ','
    - h
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: OPT_CALLBACK
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_CALLBACK(s, l, v, a, h, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - h
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 342
    functionName: OPT_NUMBER_CALLBACK
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_NUMBER_CALLBACK(v, h, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 350
    functionName: OPT_FILENAME
    functionSourceFile: /src/git/parse-options.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_FILENAME(s, l, v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 361
    functionName: OPT_COLOR_FLAG
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_COLOR_FLAG(s, l, v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: OPT_NOOP_NOARG
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_NOOP_NOARG(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: OPT_NOOP_ARG
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_NOOP_ARG(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - source_long_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 389
    functionName: OPT_ALIAS
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_ALIAS(s, l, source_long_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l
    - ','
    - v
    - ','
    - fn
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 397
    functionName: OPT_SUBCOMMAND_F
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_SUBCOMMAND_F(l, v, fn, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - v
    - ','
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    functionName: OPT_SUBCOMMAND
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_SUBCOMMAND(l, v, fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die_for_incompatible_opt4
      Src: /src/git/parse-options.h:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - opt1
    - opt1_name
    - opt2
    - opt2_name
    - opt3
    - opt3_name
    argTypes:
    - int
    - char*
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 452
    functionName: die_for_incompatible_opt3
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached:
    - die_for_incompatible_opt4
    linkageType: ''
    returnType: void
    signature: "void die_for_incompatible_opt3(int opt1, const char *opt1_name,\n\t\t\t\t\t
      \    int opt2, const char *opt2_name,\n\t\t\t\t\t     int opt3, const char *opt3_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die_for_incompatible_opt4
      Src: /src/git/parse-options.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - opt1
    - opt1_name
    - opt2
    - opt2_name
    argTypes:
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: die_for_incompatible_opt2
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached:
    - die_for_incompatible_opt4
    linkageType: ''
    returnType: void
    signature: "void die_for_incompatible_opt2(int opt1, const char *opt1_name,\n\t\t\t\t\t
      \    int opt2, const char *opt2_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - unset
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: BUG_ON_OPT_NEG
    functionSourceFile: /src/git/parse-options.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_OPT_NEG(unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: BUG_ON_OPT_ARG
    functionSourceFile: /src/git/parse-options.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_OPT_ARG(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - unset
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 487
    functionName: BUG_ON_OPT_NEG_NOARG
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_OPT_NEG_NOARG(unset, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 544
    functionName: OPT__VERBOSE
    functionSourceFile: /src/git/parse-options.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT__VERBOSE(var, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 545
    functionName: OPT__QUIET
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT__QUIET(var, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 562
    functionName: OPT__VERBOSITY
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT__VERBOSITY(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 563
    functionName: OPT__DRY_RUN
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT__DRY_RUN(var, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - h
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 564
    functionName: OPT__FORCE
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT__FORCE(var, h, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 573
    functionName: OPT__ABBREV
    functionSourceFile: /src/git/parse-options.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT__ABBREV(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 576
    functionName: OPT__SUPER_PREFIX
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT__SUPER_PREFIX(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: OPT__COLOR
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT__COLOR(var, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 589
    functionName: OPT_COLUMN
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_COLUMN(s, l, v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - a
    - ','
    - h
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 599
    functionName: OPT_PASSTHRU
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_PASSTHRU(s, l, v, a, h, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - a
    - ','
    - h
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 609
    functionName: OPT_PASSTHRU_ARGV
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_PASSTHRU_ARGV(s, l, v, a, h, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 619
    functionName: _OPT_CONTAINS_OR_WITH
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _OPT_CONTAINS_OR_WITH(l, v, h, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 620
    functionName: OPT_CONTAINS
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_CONTAINS(v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: OPT_NO_CONTAINS
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_NO_CONTAINS(v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: OPT_WITH
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_WITH(v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 623
    functionName: OPT_WITHOUT
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_WITHOUT(v, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 624
    functionName: OPT_CLEANUP
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_CLEANUP(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 625
    functionName: OPT_PATHSPEC_FROM_FILE
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_PATHSPEC_FROM_FILE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 626
    functionName: OPT_PATHSPEC_FILE_NUL
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_PATHSPEC_FILE_NUL(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 627
    functionName: OPT_AUTOSTASH
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_AUTOSTASH(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 628
    functionName: OPT_DIFF_UNIFIED
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_DIFF_UNIFIED(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 629
    functionName: OPT_DIFF_INTERHUNK_CONTEXT
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_DIFF_INTERHUNK_CONTEXT(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 635
    functionName: OPT_IPVERSION
    functionSourceFile: /src/git/parse-options.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_IPVERSION(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/packfile.c:33,1
    - Dst: strbuf_addf
      Src: /src/git/packfile.c:34,1
    - Dst: repo_get_object_directory
      Src: /src/git/packfile.c:34,1
    - Dst: hash_to_hex_algop
      Src: /src/git/packfile.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - r
    - buf
    - hash
    - ext
    argTypes:
    - struct repository*
    - struct strbuf*
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: odb_pack_name
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - repo_get_object_directory
    - hash_to_hex_algop
    - strbuf_addf
    linkageType: ''
    returnType: char
    signature: "char *odb_pack_name(struct repository *r, struct strbuf *buf,\n\t\t
      \   const unsigned char *hash, const char *ext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: sz_fmt
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uintmax_t
    signature: uintmax_t sz_fmt(size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/packfile.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct packfile_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: packfile_list_clear
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void packfile_list_clear(struct packfile_list *list)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - list
    - pack
    argTypes:
    - struct packfile_list*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 83
    functionName: packfile_list_remove_internal
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct packfile_list_entry
    signature: "struct packfile_list_entry *packfile_list_remove_internal(struct packfile_list
      *list,\n\t\t\t\t\t\t\t\t struct packed_git *pack)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/packfile.c:87,1
    - Dst: packfile_list_remove_internal
      Src: /src/git/packfile.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - pack
    argTypes:
    - struct packfile_list*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: packfile_list_remove
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - packfile_list_remove_internal
    - free
    linkageType: ''
    returnType: void
    signature: void packfile_list_remove(struct packfile_list *list, struct packed_git
      *pack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packfile_list_remove_internal
      Src: /src/git/packfile.c:94,1
    - Dst: xmalloc
      Src: /src/git/packfile.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - list
    - pack
    argTypes:
    - struct packfile_list*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: packfile_list_prepend
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - packfile_list_remove_internal
    linkageType: ''
    returnType: void
    signature: void packfile_list_prepend(struct packfile_list *list, struct packed_git
      *pack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packfile_list_remove_internal
      Src: /src/git/packfile.c:110,1
    - Dst: xmalloc
      Src: /src/git/packfile.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - list
    - pack
    argTypes:
    - struct packfile_list*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: packfile_list_append
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - packfile_list_remove_internal
    linkageType: ''
    returnType: void
    signature: void packfile_list_append(struct packfile_list *list, struct packed_git
      *pack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_pack_entry_one
      Src: /src/git/packfile.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - packs
    - oid
    argTypes:
    - struct packfile_list_entry*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: packfile_list_find_oid
    functionSourceFile: /src/git/packfile.c
    functionUses: 2
    functionsReached:
    - find_pack_entry_one
    linkageType: ''
    returnType: struct packed_git
    signature: "struct packed_git *packfile_list_find_oid(struct packfile_list_entry
      *packs,\n\t\t\t\t\t  const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/packfile.c:136,1
    - Dst: sz_fmt
      Src: /src/git/packfile.c:140,1
    - Dst: getpagesize
      Src: /src/git/packfile.c:140,1
    - Dst: sz_fmt
      Src: /src/git/packfile.c:141,1
    - Dst: sz_fmt
      Src: /src/git/packfile.c:142,1
    - Dst: fprintf
      Src: /src/git/packfile.c:143,1
    - Dst: sz_fmt
      Src: /src/git/packfile.c:152,1
    - Dst: sz_fmt
      Src: /src/git/packfile.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 153
    functionName: pack_report
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - sz_fmt
    - fprintf
    - getpagesize
    linkageType: ''
    returnType: void
    signature: void pack_report(struct repository *repo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_open
      Src: /src/git/packfile.c:164,1
    - Dst: fstat
      Src: /src/git/packfile.c:170,1
    - Dst: close
      Src: /src/git/packfile.c:171,1
    - Dst: xsize_t
      Src: /src/git/packfile.c:174,1
    - Dst: close
      Src: /src/git/packfile.c:176,1
    - Dst: error
      Src: /src/git/packfile.c:177,1
    - Dst: xmmap
      Src: /src/git/packfile.c:179,1
    - Dst: close
      Src: /src/git/packfile.c:180,1
    - Dst: load_idx
      Src: /src/git/packfile.c:182,1
    - Dst: munmap
      Src: /src/git/packfile.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - path
    - p
    argTypes:
    - char*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 160
    functionDepth: 8
    functionLinenumber: 160
    functionLinenumberEnd: 188
    functionName: check_packed_git_idx
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - error
    - fstat
    - git_open
    - xmmap
    - load_idx
    - xsize_t
    - close
    - munmap
    linkageType: ''
    returnType: int
    signature: int check_packed_git_idx(const char *path, struct packed_git *p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/packfile.c:197,1
    - Dst: error
      Src: /src/git/packfile.c:199,1
    - Dst: htonl
      Src: /src/git/packfile.c:201,1
    - Dst: ntohl
      Src: /src/git/packfile.c:202,1
    - Dst: error
      Src: /src/git/packfile.c:204,1
    - Dst: ntohl
      Src: /src/git/packfile.c:216,1
    - Dst: error
      Src: /src/git/packfile.c:218,1
    - Dst: st_add
      Src: /src/git/packfile.c:230,1
    - Dst: st_mult
      Src: /src/git/packfile.c:230,1
    - Dst: error
      Src: /src/git/packfile.c:231,1
    - Dst: st_add
      Src: /src/git/packfile.c:246,1
    - Dst: st_mult
      Src: /src/git/packfile.c:246,1
    - Dst: st_add
      Src: /src/git/packfile.c:249,1
    - Dst: st_mult
      Src: /src/git/packfile.c:249,1
    - Dst: error
      Src: /src/git/packfile.c:251,1
    - Dst: error
      Src: /src/git/packfile.c:259,1
    - Dst: st_add
      Src: /src/git/packfile.c:260,1
    - Dst: st_mult
      Src: /src/git/packfile.c:260,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 5
    argNames:
    - path
    - hashsz
    - idx_map
    - idx_size
    - p
    argTypes:
    - char*
    - unsigned int
    - void*
    - size_t
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 268
    functionName: load_idx
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - error
    - ntohl
    - htonl
    - st_add
    - st_mult
    linkageType: ''
    returnType: int
    signature: "int load_idx(const char *path, const unsigned int hashsz, void *idx_map,\n\t
      \    size_t idx_size, struct packed_git *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix
      Src: /src/git/packfile.c:279,1
    - Dst: BUG
      Src: /src/git/packfile.c:280,1
    - Dst: xstrfmt
      Src: /src/git/packfile.c:281,1
    - Dst: check_packed_git_idx
      Src: /src/git/packfile.c:282,1
    - Dst: free
      Src: /src/git/packfile.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 270
    functionDepth: 9
    functionLinenumber: 270
    functionLinenumberEnd: 285
    functionName: open_pack_index
    functionSourceFile: /src/git/packfile.c
    functionUses: 10
    functionsReached:
    - strip_suffix
    - xstrfmt
    - check_packed_git_idx
    - free
    - BUG
    linkageType: ''
    returnType: int
    signature: int open_pack_index(struct packed_git *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/packfile.c:292,1
    - Dst: ntohl
      Src: /src/git/packfile.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - p
    - value
    argTypes:
    - struct packed_git*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 10
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: get_pack_fanout
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - ntohl
    - open_pack_index
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_pack_fanout(struct packed_git *p, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/packfile.c:306,1
    - Dst: st_add
      Src: /src/git/packfile.c:306,1
    - Dst: memset
      Src: /src/git/packfile.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - extra
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: alloc_packed_git
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - st_add
    - memset
    linkageType: ''
    returnType: struct packed_git
    signature: struct packed_git *alloc_packed_git(struct repository *r, int extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix
      Src: /src/git/packfile.c:316,1
    - Dst: BUG
      Src: /src/git/packfile.c:317,1
    - Dst: xstrfmt
      Src: /src/git/packfile.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - idx_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 5
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: pack_path_from_idx
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - strip_suffix
    - xstrfmt
    - BUG
    linkageType: ''
    returnType: char
    signature: char *pack_path_from_idx(const char *idx_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pack_path_from_idx
      Src: /src/git/packfile.c:324,1
    - Dst: st_add
      Src: /src/git/packfile.c:325,1
    - Dst: strlen
      Src: /src/git/packfile.c:325,1
    - Dst: alloc_packed_git
      Src: /src/git/packfile.c:326,1
    - Dst: memcpy
      Src: /src/git/packfile.c:328,1
    - Dst: free
      Src: /src/git/packfile.c:329,1
    - Dst: hashcpy
      Src: /src/git/packfile.c:330,1
    - Dst: check_packed_git_idx
      Src: /src/git/packfile.c:331,1
    - Dst: free
      Src: /src/git/packfile.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - r
    - sha1
    - idx_path
    argTypes:
    - struct repository*
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 9
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: parse_pack_index
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - pack_path_from_idx
    - alloc_packed_git
    - hashcpy
    - memcpy
    - strlen
    - check_packed_git_idx
    - free
    - st_add
    linkageType: ''
    returnType: struct packed_git
    signature: "struct packed_git *parse_pack_index(struct repository *r, unsigned
      char *sha1,\n\t\t\t\t    const char *idx_path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - p
    - lru_p
    - lru_w
    - lru_l
    argTypes:
    - struct packed_git*
    - struct packed_git**
    - struct pack_window**
    - struct pack_window**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 356
    functionName: scan_windows
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void scan_windows(struct packed_git *p,\n\tstruct packed_git **lru_p,\n\tstruct
      pack_window **lru_w,\n\tstruct pack_window **lru_l)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/packfile.c:366,1
    - Dst: scan_windows
      Src: /src/git/packfile.c:368,1
    - Dst: munmap
      Src: /src/git/packfile.c:372,1
    - Dst: free
      Src: /src/git/packfile.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - odb
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 383
    functionName: unuse_one_window
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - munmap
    - scan_windows
    - odb_source_files_downcast
    - free
    linkageType: ''
    returnType: int
    signature: int unuse_one_window(struct object_database *odb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/packfile.c:391,1
    - Dst: munmap
      Src: /src/git/packfile.c:393,1
    - Dst: free
      Src: /src/git/packfile.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 399
    functionName: close_pack_windows
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - munmap
    - die
    - free
    linkageType: ''
    returnType: void
    signature: void close_pack_windows(struct packed_git *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/packfile.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 411
    functionName: close_pack_fd
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int close_pack_fd(struct packed_git *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/git/packfile.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: close_pack_index
    functionSourceFile: /src/git/packfile.c
    functionUses: 3
    functionsReached:
    - munmap
    linkageType: ''
    returnType: void
    signature: void close_pack_index(struct packed_git *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/packfile.c:423,1
    - Dst: munmap
      Src: /src/git/packfile.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 431
    functionName: close_pack_revindex
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - munmap
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void close_pack_revindex(struct packed_git *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/git/packfile.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: close_pack_mtimes
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: void
    signature: void close_pack_mtimes(struct packed_git *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_pack_windows
      Src: /src/git/packfile.c:444,1
    - Dst: close_pack_fd
      Src: /src/git/packfile.c:445,1
    - Dst: close_pack_index
      Src: /src/git/packfile.c:446,1
    - Dst: close_pack_revindex
      Src: /src/git/packfile.c:447,1
    - Dst: close_pack_mtimes
      Src: /src/git/packfile.c:448,1
    - Dst: oidset_clear
      Src: /src/git/packfile.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 450
    functionName: close_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 5
    functionsReached:
    - close_pack_index
    - close_pack_fd
    - close_pack_windows
    - oidset_clear
    - close_pack_mtimes
    - close_pack_revindex
    linkageType: ''
    returnType: void
    signature: void close_pack(struct packed_git *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/packfile.c:459,1
    - Dst: strip_suffix_mem
      Src: /src/git/packfile.c:460,1
    - Dst: strbuf_addstr
      Src: /src/git/packfile.c:464,1
    - Dst: access
      Src: /src/git/packfile.c:465,1
    - Dst: strbuf_release
      Src: /src/git/packfile.c:466,1
    - Dst: ARRAY_SIZE
      Src: /src/git/packfile.c:471,1
    - Dst: strbuf_setlen
      Src: /src/git/packfile.c:472,1
    - Dst: strbuf_addstr
      Src: /src/git/packfile.c:473,1
    - Dst: unlink
      Src: /src/git/packfile.c:474,1
    - Dst: strbuf_release
      Src: /src/git/packfile.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - pack_name
    - force_delete
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 478
    functionName: unlink_pack_path
    functionSourceFile: /src/git/packfile.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - strbuf_release
    - access
    - strbuf_setlen
    - strip_suffix_mem
    - strbuf_addstr
    - unlink
    linkageType: ''
    returnType: void
    signature: void unlink_pack_path(const char *pack_name, int force_delete)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 4
    argNames:
    - p
    - lru_p
    - mru_w
    - accept_windows_inuse
    argTypes:
    - struct packed_git*
    - struct packed_git**
    - struct pack_window**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 533
    functionName: find_lru_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void find_lru_pack(struct packed_git *p, struct packed_git **lru_p,
      struct pack_window **mru_w, int *accept_windows_inuse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/packfile.c:544,1
    - Dst: find_lru_pack
      Src: /src/git/packfile.c:548,1
    - Dst: close_pack_fd
      Src: /src/git/packfile.c:553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 556
    functionName: close_one_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - close_pack_fd
    - find_lru_pack
    - odb_source_files_downcast
    linkageType: ''
    returnType: int
    signature: int close_one_pack(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/git/packfile.c:564,1
    - Dst: sysconf
      Src: /src/git/packfile.c:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 597
    functionName: get_max_fd_limit
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - sysconf
    - getrlimit
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_max_fd_limit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/packfile.c:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 607
    functionName: pack_basename
    functionSourceFile: /src/git/packfile.c
    functionUses: 14
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *pack_basename(struct packed_git *p)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/packfile.c:622,1
    - Dst: error
      Src: /src/git/packfile.c:623,1
    - Dst: get_max_fd_limit
      Src: /src/git/packfile.c:626,1
    - Dst: close_one_pack
      Src: /src/git/packfile.c:635,1
    - Dst: git_open
      Src: /src/git/packfile.c:638,1
    - Dst: fstat
      Src: /src/git/packfile.c:639,1
    - Dst: S_ISREG
      Src: /src/git/packfile.c:645,1
    - Dst: error
      Src: /src/git/packfile.c:646,1
    - Dst: error
      Src: /src/git/packfile.c:649,1
    - Dst: read_in_full
      Src: /src/git/packfile.c:652,1
    - Dst: error_errno
      Src: /src/git/packfile.c:654,1
    - Dst: error
      Src: /src/git/packfile.c:656,1
    - Dst: htonl
      Src: /src/git/packfile.c:657,1
    - Dst: error
      Src: /src/git/packfile.c:658,1
    - Dst: pack_version_ok
      Src: /src/git/packfile.c:659,1
    - Dst: error
      Src: /src/git/packfile.c:660,1
    - Dst: ntohl
      Src: /src/git/packfile.c:662,1
    - Dst: ntohl
      Src: /src/git/packfile.c:665,1
    - Dst: error
      Src: /src/git/packfile.c:666,1
    - Dst: ntohl
      Src: /src/git/packfile.c:668,1
    - Dst: pread_in_full
      Src: /src/git/packfile.c:670,1
    - Dst: error_errno
      Src: /src/git/packfile.c:673,1
    - Dst: error
      Src: /src/git/packfile.c:675,1
    - Dst: hasheq
      Src: /src/git/packfile.c:677,1
    - Dst: error
      Src: /src/git/packfile.c:678,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 613
    functionDepth: 10
    functionLinenumber: 613
    functionLinenumberEnd: 680
    functionName: open_packed_git_1
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - pack_version_ok
    - hasheq
    - fstat
    - ntohl
    - htonl
    - git_open
    - get_max_fd_limit
    - read_in_full
    - pread_in_full
    - S_ISREG
    - open_pack_index
    - close_one_pack
    linkageType: ''
    returnType: int
    signature: int open_packed_git_1(struct packed_git *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open_packed_git_1
      Src: /src/git/packfile.c:684,1
    - Dst: close_pack_fd
      Src: /src/git/packfile.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 682
    functionDepth: 11
    functionLinenumber: 682
    functionLinenumberEnd: 688
    functionName: open_packed_git
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - open_packed_git_1
    - close_pack_fd
    linkageType: ''
    returnType: int
    signature: int open_packed_git(struct packed_git *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - r
    - win
    - offset
    argTypes:
    - struct repository*
    - struct pack_window*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 702
    functionName: in_window
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int in_window(struct repository *r, struct pack_window *win,\n\t\t
      \    off_t offset)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: open_packed_git
      Src: /src/git/packfile.c:716,1
    - Dst: die
      Src: /src/git/packfile.c:717,1
    - Dst: die
      Src: /src/git/packfile.c:719,1
    - Dst: die
      Src: /src/git/packfile.c:721,1
    - Dst: _
      Src: /src/git/packfile.c:721,1
    - Dst: in_window
      Src: /src/git/packfile.c:723,1
    - Dst: in_window
      Src: /src/git/packfile.c:727,1
    - Dst: prepare_repo_settings
      Src: /src/git/packfile.c:736,1
    - Dst: open_packed_git
      Src: /src/git/packfile.c:741,1
    - Dst: die
      Src: /src/git/packfile.c:742,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/packfile.c:744,1
    - Dst: unuse_one_window
      Src: /src/git/packfile.c:753,1
    - Dst: xmmap_gently
      Src: /src/git/packfile.c:755,1
    - Dst: die_errno
      Src: /src/git/packfile.c:759,1
    - Dst: _
      Src: /src/git/packfile.c:759,1
    - Dst: mmap_os_err
      Src: /src/git/packfile.c:760,1
    - Dst: close_pack_fd
      Src: /src/git/packfile.c:763,1
    - Dst: xsize_t
      Src: /src/git/packfile.c:781,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 53
    argCount: 4
    argNames:
    - p
    - w_cursor
    - offset
    - left
    argTypes:
    - struct packed_git*
    - struct pack_window**
    - off_t
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 704
    functionDepth: 21
    functionLinenumber: 704
    functionLinenumberEnd: 783
    functionName: use_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 4
    functionsReached:
    - die
    - xmmap_gently
    - close_pack_fd
    - CALLOC_ARRAY
    - die_errno
    - prepare_repo_settings
    - open_packed_git
    - xsize_t
    - _
    - in_window
    - unuse_one_window
    - mmap_os_err
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *use_pack(struct packed_git *p,\n\t\tstruct pack_window
      **w_cursor,\n\t\toff_t offset,\n\t\tunsigned long *left)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - w_cursor
    argTypes:
    - struct pack_window**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 792
    functionName: unuse_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unuse_pack(struct pack_window **w_cursor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix_mem
      Src: /src/git/packfile.c:806,1
    - Dst: st_add3
      Src: /src/git/packfile.c:813,1
    - Dst: strlen
      Src: /src/git/packfile.c:813,1
    - Dst: alloc_packed_git
      Src: /src/git/packfile.c:814,1
    - Dst: memcpy
      Src: /src/git/packfile.c:815,1
    - Dst: xsnprintf
      Src: /src/git/packfile.c:828,1
    - Dst: access
      Src: /src/git/packfile.c:829,1
    - Dst: xsnprintf
      Src: /src/git/packfile.c:832,1
    - Dst: access
      Src: /src/git/packfile.c:833,1
    - Dst: xsnprintf
      Src: /src/git/packfile.c:836,1
    - Dst: access
      Src: /src/git/packfile.c:837,1
    - Dst: xsnprintf
      Src: /src/git/packfile.c:840,1
    - Dst: stat
      Src: /src/git/packfile.c:841,1
    - Dst: S_ISREG
      Src: /src/git/packfile.c:841,1
    - Dst: free
      Src: /src/git/packfile.c:842,1
    - Dst: get_oid_hex_algop
      Src: /src/git/packfile.c:853,1
    - Dst: hashclr
      Src: /src/git/packfile.c:855,1
    - Dst: hashcpy
      Src: /src/git/packfile.c:857,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - r
    - path
    - path_len
    - local
    argTypes:
    - struct repository*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 794
    functionDepth: 4
    functionLinenumber: 794
    functionLinenumberEnd: 860
    functionName: add_packed_git
    functionSourceFile: /src/git/packfile.c
    functionUses: 3
    functionsReached:
    - alloc_packed_git
    - hashcpy
    - access
    - stat
    - get_oid_hex_algop
    - memcpy
    - strip_suffix_mem
    - strlen
    - st_add3
    - xsnprintf
    - free
    - hashclr
    - S_ISREG
    linkageType: ''
    returnType: struct packed_git
    signature: "struct packed_git *add_packed_git(struct repository *r, const char
      *path,\n\t\t\t\t  size_t path_len, int local)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packfile_list_append
      Src: /src/git/packfile.c:868,1
    - Dst: strmap_put
      Src: /src/git/packfile.c:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - store
    - pack
    argTypes:
    - struct packfile_store*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 870
    functionName: packfile_store_add_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - strmap_put
    - packfile_list_append
    linkageType: ''
    returnType: void
    signature: "void packfile_store_add_pack(struct packfile_store *store,\n\t\t\t
      \    struct packed_git *pack)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/packfile.c:882,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/packfile.c:883,1
    - Dst: strbuf_addstr
      Src: /src/git/packfile.c:884,1
    - Dst: strmap_get
      Src: /src/git/packfile.c:886,1
    - Dst: add_packed_git
      Src: /src/git/packfile.c:888,1
    - Dst: strlen
      Src: /src/git/packfile.c:889,1
    - Dst: packfile_store_add_pack
      Src: /src/git/packfile.c:891,1
    - Dst: strbuf_release
      Src: /src/git/packfile.c:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - store
    - idx_path
    - local
    argTypes:
    - struct packfile_store*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 872
    functionDepth: 5
    functionLinenumber: 872
    functionLinenumberEnd: 896
    functionName: packfile_store_load_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_strip_suffix
    - strmap_get
    - strlen
    - add_packed_git
    - packfile_store_add_pack
    - strbuf_addstr
    linkageType: ''
    returnType: struct packed_git
    signature: "struct packed_git *packfile_store_load_pack(struct packfile_store
      *store,\n\t\t\t\t\t    const char *idx_path, int local)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: report_garbage
      Src: /src/git/packfile.c:907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - list
    - seen_bits
    - first
    - last
    argTypes:
    - struct string_list*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 908
    functionName: report_helper
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - report_garbage
    linkageType: ''
    returnType: void
    signature: "void report_helper(const struct string_list *list,\n\t\t\t  int seen_bits,
      int first, int last)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: string_list_sort
      Src: /src/git/packfile.c:917,1
    - Dst: strncmp
      Src: /src/git/packfile.c:922,1
    - Dst: report_helper
      Src: /src/git/packfile.c:923,1
    - Dst: strrchr
      Src: /src/git/packfile.c:928,1
    - Dst: report_garbage
      Src: /src/git/packfile.c:930,1
    - Dst: strcmp
      Src: /src/git/packfile.c:936,1
    - Dst: strcmp
      Src: /src/git/packfile.c:938,1
    - Dst: report_helper
      Src: /src/git/packfile.c:941,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 942
    functionName: report_pack_garbage
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - strrchr
    - string_list_sort
    - report_garbage
    - strcmp
    - strncmp
    - report_helper
    linkageType: ''
    returnType: void
    signature: void report_pack_garbage(struct string_list *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/packfile.c:954,1
    - Dst: strbuf_addstr
      Src: /src/git/packfile.c:955,1
    - Dst: strbuf_addf
      Src: /src/git/packfile.c:957,1
    - Dst: opendir
      Src: /src/git/packfile.c:958,1
    - Dst: error_errno
      Src: /src/git/packfile.c:961,1
    - Dst: strbuf_release
      Src: /src/git/packfile.c:963,1
    - Dst: strbuf_addch
      Src: /src/git/packfile.c:966,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/packfile.c:968,1
    - Dst: strbuf_setlen
      Src: /src/git/packfile.c:969,1
    - Dst: strbuf_addstr
      Src: /src/git/packfile.c:970,1
    - Dst: fn
      Src: /src/git/packfile.c:972,1
    - Dst: closedir
      Src: /src/git/packfile.c:975,1
    - Dst: strbuf_release
      Src: /src/git/packfile.c:976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - objdir
    - subdir
    - fn
    - data
    argTypes:
    - char*
    - char*
    - each_file_in_pack_dir_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 944
    functionDepth: 4
    functionLinenumber: 944
    functionLinenumberEnd: 977
    functionName: for_each_file_in_pack_subdir
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - error_errno
    - strbuf_release
    - fn
    - strbuf_addf
    - strbuf_setlen
    - strbuf_addch
    - opendir
    - readdir_skip_dot_and_dotdot
    - strbuf_addstr
    - closedir
    linkageType: ''
    returnType: void
    signature: "void for_each_file_in_pack_subdir(const char *objdir,\n\t\t\t\t  const
      char *subdir,\n\t\t\t\t  each_file_in_pack_dir_fn fn,\n\t\t\t\t  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_file_in_pack_subdir
      Src: /src/git/packfile.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - objdir
    - fn
    - data
    argTypes:
    - char*
    - each_file_in_pack_dir_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 979
    functionDepth: 5
    functionLinenumber: 979
    functionLinenumberEnd: 984
    functionName: for_each_file_in_pack_dir
    functionSourceFile: /src/git/packfile.c
    functionUses: 3
    functionsReached:
    - for_each_file_in_pack_subdir
    linkageType: ''
    returnType: void
    signature: "void for_each_file_in_pack_dir(const char *objdir,\n\t\t\t       each_file_in_pack_dir_fn
      fn,\n\t\t\t       void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/packfile.c:995,1
    - Dst: strip_suffix_mem
      Src: /src/git/packfile.c:998,1
    - Dst: midx_contains_pack
      Src: /src/git/packfile.c:1000,1
    - Dst: xstrndup
      Src: /src/git/packfile.c:1001,1
    - Dst: packfile_store_load_pack
      Src: /src/git/packfile.c:1002,1
    - Dst: free
      Src: /src/git/packfile.c:1004,1
    - Dst: strcmp
      Src: /src/git/packfile.c:1010,1
    - Dst: strcmp
      Src: /src/git/packfile.c:1011,1
    - Dst: starts_with
      Src: /src/git/packfile.c:1013,1
    - Dst: ends_with
      Src: /src/git/packfile.c:1014,1
    - Dst: ends_with
      Src: /src/git/packfile.c:1014,1
    - Dst: ends_with
      Src: /src/git/packfile.c:1016,1
    - Dst: ends_with
      Src: /src/git/packfile.c:1017,1
    - Dst: ends_with
      Src: /src/git/packfile.c:1018,1
    - Dst: ends_with
      Src: /src/git/packfile.c:1019,1
    - Dst: ends_with
      Src: /src/git/packfile.c:1020,1
    - Dst: ends_with
      Src: /src/git/packfile.c:1021,1
    - Dst: ends_with
      Src: /src/git/packfile.c:1022,1
    - Dst: string_list_append
      Src: /src/git/packfile.c:1023,1
    - Dst: report_garbage
      Src: /src/git/packfile.c:1025,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 14
    argCount: 4
    argNames:
    - full_name
    - full_name_len
    - file_name
    - _data
    argTypes:
    - char*
    - size_t
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 991
    functionDepth: 11
    functionLinenumber: 991
    functionLinenumberEnd: 1026
    functionName: prepare_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - odb_source_files_downcast
    - packfile_store_load_pack
    - ends_with
    - starts_with
    - xstrndup
    - report_garbage
    - strip_suffix_mem
    - midx_contains_pack
    - strcmp
    - string_list_append
    - free
    linkageType: ''
    returnType: void
    signature: "void prepare_pack(const char *full_name, size_t full_name_len,\n\t\t\t
      const char *file_name, void *_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_file_in_pack_dir
      Src: /src/git/packfile.c:1036,1
    - Dst: report_pack_garbage
      Src: /src/git/packfile.c:1038,1
    - Dst: string_list_clear
      Src: /src/git/packfile.c:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1028
    functionDepth: 6
    functionLinenumber: 1028
    functionLinenumberEnd: 1040
    functionName: prepare_packed_git_one
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - for_each_file_in_pack_dir
    - report_pack_garbage
    linkageType: ''
    returnType: void
    signature: void prepare_packed_git_one(struct odb_source *source)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct packfile_list_entry*
    - struct packfile_list_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1069
    functionName: sort_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sort_pack(const struct packfile_list_entry *a,\n\t\t     const
      struct packfile_list_entry *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_multi_pack_index_one
      Src: /src/git/packfile.c:1076,1
    - Dst: prepare_packed_git_one
      Src: /src/git/packfile.c:1077,1
    - Dst: sort_packs
      Src: /src/git/packfile.c:1079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct packfile_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1071
    functionDepth: 7
    functionLinenumber: 1071
    functionLinenumberEnd: 1085
    functionName: packfile_store_prepare
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - sort_packs
    - prepare_multi_pack_index_one
    - prepare_packed_git_one
    linkageType: ''
    returnType: void
    signature: void packfile_store_prepare(struct packfile_store *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packfile_store_prepare
      Src: /src/git/packfile.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct packfile_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1087
    functionDepth: 8
    functionLinenumber: 1087
    functionLinenumberEnd: 1091
    functionName: packfile_store_reprepare
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - packfile_store_prepare
    linkageType: ''
    returnType: void
    signature: void packfile_store_reprepare(struct packfile_store *store)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packfile_store_prepare
      Src: /src/git/packfile.c:1095,1
    - Dst: prepare_midx_pack
      Src: /src/git/packfile.c:1100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct packfile_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1093
    functionDepth: 8
    functionLinenumber: 1093
    functionLinenumberEnd: 1104
    functionName: packfile_store_get_packs
    functionSourceFile: /src/git/packfile.c
    functionUses: 2
    functionsReached:
    - packfile_store_prepare
    - prepare_midx_pack
    linkageType: ''
    returnType: struct packfile_list_entry
    signature: struct packfile_list_entry *packfile_store_get_packs(struct packfile_store
      *store)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_multi_pack_index
      Src: /src/git/packfile.c:1115,1
    - Dst: packfile_store_get_packs
      Src: /src/git/packfile.c:1119,1
    - Dst: open_pack_index
      Src: /src/git/packfile.c:1122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - store
    - UNUSED
    - out
    argTypes:
    - struct packfile_store*
    - enum odb_count_objects_flags
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1106
    functionDepth: 10
    functionLinenumber: 1106
    functionLinenumberEnd: 1135
    functionName: packfile_store_count_objects
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - get_multi_pack_index
    - open_pack_index
    - packfile_store_get_packs
    linkageType: ''
    returnType: int
    signature: "int packfile_store_count_objects(struct packfile_store *store,\n\t\t\t\t
      enum odb_count_objects_flags flags UNUSED,\n\t\t\t\t unsigned long *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/packfile.c:1154,1
    - Dst: st_add
      Src: /src/git/packfile.c:1159,1
    - Dst: st_left_shift
      Src: /src/git/packfile.c:1159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - buf
    - len
    - type
    - sizep
    argTypes:
    - unsigned char*
    - unsigned long
    - enum object_type*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1137
    functionDepth: 3
    functionLinenumber: 1137
    functionLinenumberEnd: 1164
    functionName: unpack_object_header_buffer
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - error
    - st_add
    - st_left_shift
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long unpack_object_header_buffer(const unsigned char *buf,\n\t\tunsigned
      long len, enum object_type *type, size_t *sizep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/packfile.c:1178,1
    - Dst: git_inflate_init
      Src: /src/git/packfile.c:1182,1
    - Dst: use_pack
      Src: /src/git/packfile.c:1184,1
    - Dst: obj_read_unlock
      Src: /src/git/packfile.c:1200,1
    - Dst: git_inflate
      Src: /src/git/packfile.c:1201,1
    - Dst: obj_read_lock
      Src: /src/git/packfile.c:1202,1
    - Dst: git_inflate_end
      Src: /src/git/packfile.c:1206,1
    - Dst: error
      Src: /src/git/packfile.c:1208,1
    - Dst: get_delta_hdr_size_sz
      Src: /src/git/packfile.c:1218,1
    - Dst: get_delta_hdr_size_sz
      Src: /src/git/packfile.c:1221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - p
    - w_curs
    - curpos
    argTypes:
    - struct packed_git*
    - struct pack_window**
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1169
    functionDepth: 22
    functionLinenumber: 1169
    functionLinenumberEnd: 1222
    functionName: get_size_from_delta_sz
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - error
    - memset
    - use_pack
    - obj_read_lock
    - git_inflate
    - obj_read_unlock
    - get_delta_hdr_size_sz
    - git_inflate_init
    - git_inflate_end
    linkageType: ''
    returnType: size_t
    signature: "size_t get_size_from_delta_sz(struct packed_git *p,\n\t\t\t\t     struct
      pack_window **w_curs,\n\t\t\t\t     off_t curpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_size_from_delta_sz
      Src: /src/git/packfile.c:1228,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/packfile.c:1229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - w_curs
    - curpos
    argTypes:
    - struct packed_git*
    - struct pack_window**
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1224
    functionDepth: 23
    functionLinenumber: 1224
    functionLinenumberEnd: 1230
    functionName: get_size_from_delta
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - get_size_from_delta_sz
    - cast_size_t_to_ulong
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long get_size_from_delta(struct packed_git *p,\n\t\t\t\t
      \ struct pack_window **w_curs,\n\t\t\t\t  off_t curpos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: use_pack
      Src: /src/git/packfile.c:1248,1
    - Dst: unpack_object_header_buffer
      Src: /src/git/packfile.c:1249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - p
    - w_curs
    - curpos
    - sizep
    argTypes:
    - struct packed_git*
    - struct pack_window**
    - off_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1232
    functionDepth: 22
    functionLinenumber: 1232
    functionLinenumberEnd: 1256
    functionName: unpack_object_header
    functionSourceFile: /src/git/packfile.c
    functionUses: 2
    functionsReached:
    - use_pack
    - unpack_object_header_buffer
    linkageType: ''
    returnType: int
    signature: "int unpack_object_header(struct packed_git *p,\n\t\t\t struct pack_window
      **w_curs,\n\t\t\t off_t *curpos,\n\t\t\t size_t *sizep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_insert
      Src: /src/git/packfile.c:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - oid
    argTypes:
    - struct packed_git*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1261
    functionName: mark_bad_packed_object
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - oidset_insert
    linkageType: ''
    returnType: void
    signature: void mark_bad_packed_object(struct packed_git *p, const struct object_id
      *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/packfile.c:1269,1
    - Dst: oidset_contains
      Src: /src/git/packfile.c:1273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1278
    functionName: has_packed_and_bad
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - oidset_contains
    - odb_source_files_downcast
    linkageType: ''
    returnType: struct packed_git
    signature: "struct packed_git *has_packed_and_bad(struct repository *r,\n\t\t\t\t\t
      \   const struct object_id *oid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: use_pack
      Src: /src/git/packfile.c:1286,1
    - Dst: MSB
      Src: /src/git/packfile.c:1301,1
    - Dst: oidread
      Src: /src/git/packfile.c:1313,1
    - Dst: find_pack_entry_one
      Src: /src/git/packfile.c:1314,1
    - Dst: die
      Src: /src/git/packfile.c:1317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - p
    - w_curs
    - curpos
    - type
    - delta_obj_offset
    argTypes:
    - struct packed_git*
    - struct pack_window**
    - off_t*
    - enum object_type
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1280
    functionDepth: 22
    functionLinenumber: 1280
    functionLinenumberEnd: 1319
    functionName: get_delta_base
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - use_pack
    - die
    - MSB
    - find_pack_entry_one
    - oidread
    linkageType: ''
    returnType: off_t
    signature: "off_t get_delta_base(struct packed_git *p,\n\t\t     struct pack_window
      **w_curs,\n\t\t     off_t *curpos,\n\t\t     enum object_type type,\n\t\t     off_t
      delta_obj_offset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: use_pack
      Src: /src/git/packfile.c:1335,1
    - Dst: oidread
      Src: /src/git/packfile.c:1336,1
    - Dst: get_delta_base
      Src: /src/git/packfile.c:1340,1
    - Dst: offset_to_pack_pos
      Src: /src/git/packfile.c:1346,1
    - Dst: nth_packed_object_id
      Src: /src/git/packfile.c:1349,1
    - Dst: pack_pos_to_index
      Src: /src/git/packfile.c:1350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - p
    - w_curs
    - curpos
    - oid
    - type
    - delta_obj_offset
    argTypes:
    - struct packed_git*
    - struct pack_window**
    - off_t
    - struct object_id*
    - enum object_type
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1327
    functionDepth: 23
    functionLinenumber: 1327
    functionLinenumberEnd: 1353
    functionName: get_delta_base_oid
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - use_pack
    - get_delta_base
    - pack_pos_to_index
    - nth_packed_object_id
    - offset_to_pack_pos
    - oidread
    linkageType: ''
    returnType: int
    signature: "int get_delta_base_oid(struct packed_git *p,\n\t\t\t      struct pack_window
      **w_curs,\n\t\t\t      off_t curpos,\n\t\t\t      struct object_id *oid,\n\t\t\t
      \     enum object_type type,\n\t\t\t      off_t delta_obj_offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: offset_to_pack_pos
      Src: /src/git/packfile.c:1362,1
    - Dst: nth_packed_object_id
      Src: /src/git/packfile.c:1364,1
    - Dst: pack_pos_to_index
      Src: /src/git/packfile.c:1364,1
    - Dst: mark_bad_packed_object
      Src: /src/git/packfile.c:1365,1
    - Dst: odb_read_object_info
      Src: /src/git/packfile.c:1366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - r
    - p
    - obj_offset
    argTypes:
    - struct repository*
    - struct packed_git*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1355
    functionDepth: 12
    functionLinenumber: 1355
    functionLinenumberEnd: 1370
    functionName: retry_bad_packed_offset
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - pack_pos_to_index
    - odb_read_object_info
    - nth_packed_object_id
    - offset_to_pack_pos
    - mark_bad_packed_object
    linkageType: ''
    returnType: int
    signature: "int retry_bad_packed_offset(struct repository *r,\n\t\t\t\t   struct
      packed_git *p,\n\t\t\t\t   off_t obj_offset)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: alloc_nr
      Src: /src/git/packfile.c:1390,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/packfile.c:1391,1
    - Dst: COPY_ARRAY
      Src: /src/git/packfile.c:1392,1
    - Dst: ALLOC_GROW
      Src: /src/git/packfile.c:1394,1
    - Dst: get_delta_base
      Src: /src/git/packfile.c:1398,1
    - Dst: unpack_object_header
      Src: /src/git/packfile.c:1402,1
    - Dst: retry_bad_packed_offset
      Src: /src/git/packfile.c:1406,1
    - Dst: error
      Src: /src/git/packfile.c:1421,1
    - Dst: free
      Src: /src/git/packfile.c:1428,1
    - Dst: retry_bad_packed_offset
      Src: /src/git/packfile.c:1434,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 6
    argNames:
    - r
    - p
    - obj_offset
    - type
    - w_curs
    - curpos
    argTypes:
    - struct repository*
    - struct packed_git*
    - off_t
    - enum object_type
    - struct pack_window**
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1374
    functionDepth: 23
    functionLinenumber: 1374
    functionLinenumberEnd: 1440
    functionName: packed_to_object_type
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - error
    - get_delta_base
    - ALLOC_ARRAY
    - alloc_nr
    - unpack_object_header
    - retry_bad_packed_offset
    - ALLOC_GROW
    - free
    - COPY_ARRAY
    linkageType: ''
    returnType: enum object_type
    signature: "enum object_type packed_to_object_type(struct repository *r,\n\t\t\t\t\t
      \     struct packed_git *p,\n\t\t\t\t\t      off_t obj_offset,\n\t\t\t\t\t      enum
      object_type type,\n\t\t\t\t\t      struct pack_window **w_curs,\n\t\t\t\t\t
      \     off_t curpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - base_offset
    argTypes:
    - struct packed_git*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1468
    functionName: pack_entry_hash
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pack_entry_hash(struct packed_git *p, off_t base_offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/packfile.c:1479,1
    - Dst: pack_entry_hash
      Src: /src/git/packfile.c:1479,1
    - Dst: hashmap_get
      Src: /src/git/packfile.c:1482,1
    - Dst: container_of
      Src: /src/git/packfile.c:1483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - base_offset
    argTypes:
    - struct packed_git*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1470
    functionDepth: 3
    functionLinenumber: 1470
    functionLinenumberEnd: 1484
    functionName: get_delta_base_cache_entry
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - pack_entry_hash
    - container_of
    - hashmap_entry_init
    - hashmap_get
    linkageType: ''
    returnType: struct delta_base_cache_entry
    signature: 'struct delta_base_cache_entry *

      get_delta_base_cache_entry(struct packed_git *p, off_t base_offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct delta_base_cache_key*
    - struct delta_base_cache_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1490
    functionName: delta_base_cache_key_eq
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int delta_base_cache_key_eq(const struct delta_base_cache_key *a,\n\t\t\t\t
      \  const struct delta_base_cache_key *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/packfile.c:1500,1
    - Dst: container_of
      Src: /src/git/packfile.c:1501,1
    - Dst: delta_base_cache_key_eq
      Src: /src/git/packfile.c:1504,1
    - Dst: delta_base_cache_key_eq
      Src: /src/git/packfile.c:1506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - cmp_data
    - va
    - vb
    - vkey
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1492
    functionDepth: 1
    functionLinenumber: 1492
    functionLinenumberEnd: 1507
    functionName: delta_base_cache_hash_cmp
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - container_of
    - delta_base_cache_key_eq
    linkageType: ''
    returnType: int
    signature: "int delta_base_cache_hash_cmp(const void *cmp_data UNUSED,\n\t\t\t\t
      \    const struct hashmap_entry *va,\n\t\t\t\t     const struct hashmap_entry
      *vb,\n\t\t\t\t     const void *vkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_delta_base_cache_entry
      Src: /src/git/packfile.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - base_offset
    argTypes:
    - struct packed_git*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1509
    functionDepth: 4
    functionLinenumber: 1509
    functionLinenumberEnd: 1512
    functionName: in_delta_base_cache
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - get_delta_base_cache_entry
    linkageType: ''
    returnType: int
    signature: int in_delta_base_cache(struct packed_git *p, off_t base_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_remove
      Src: /src/git/packfile.c:1521,1
    - Dst: list_del
      Src: /src/git/packfile.c:1522,1
    - Dst: free
      Src: /src/git/packfile.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ent
    argTypes:
    - struct delta_base_cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1519
    functionDepth: 4
    functionLinenumber: 1519
    functionLinenumberEnd: 1525
    functionName: detach_delta_base_cache_entry
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - list_del
    - hashmap_remove
    - free
    linkageType: ''
    returnType: void
    signature: void detach_delta_base_cache_entry(struct delta_base_cache_entry *ent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_delta_base_cache_entry
      Src: /src/git/packfile.c:1533,1
    - Dst: unpack_entry
      Src: /src/git/packfile.c:1535,1
    - Dst: xmemdupz
      Src: /src/git/packfile.c:1541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - r
    - p
    - base_offset
    - base_size
    - type
    argTypes:
    - struct repository*
    - struct packed_git*
    - off_t
    - unsigned long*
    - enum object_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1527
    functionDepth: 10
    functionLinenumber: 1527
    functionLinenumberEnd: 1542
    functionName: cache_or_unpack_entry
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - unpack_entry
    - get_delta_base_cache_entry
    linkageType: ''
    returnType: void
    signature: "void *cache_or_unpack_entry(struct repository *r, struct packed_git
      *p,\n\t\t\t\t   off_t base_offset, unsigned long *base_size,\n\t\t\t\t   enum
      object_type *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/packfile.c:1546,1
    - Dst: detach_delta_base_cache_entry
      Src: /src/git/packfile.c:1547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ent
    argTypes:
    - struct delta_base_cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1544
    functionDepth: 5
    functionLinenumber: 1544
    functionLinenumberEnd: 1548
    functionName: release_delta_base_cache
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - detach_delta_base_cache_entry
    - free
    linkageType: ''
    returnType: void
    signature: void release_delta_base_cache(struct delta_base_cache_entry *ent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_safe
      Src: /src/git/packfile.c:1553,1
    - Dst: list_entry
      Src: /src/git/packfile.c:1555,1
    - Dst: release_delta_base_cache
      Src: /src/git/packfile.c:1556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1550
    functionDepth: 6
    functionLinenumber: 1550
    functionLinenumberEnd: 1558
    functionName: clear_delta_base_cache
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - list_for_each_safe
    - release_delta_base_cache
    - list_entry
    linkageType: ''
    returnType: void
    signature: void clear_delta_base_cache(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: in_delta_base_cache
      Src: /src/git/packfile.c:1573,1
    - Dst: free
      Src: /src/git/packfile.c:1574,1
    - Dst: list_for_each_safe
      Src: /src/git/packfile.c:1580,1
    - Dst: list_entry
      Src: /src/git/packfile.c:1582,1
    - Dst: release_delta_base_cache
      Src: /src/git/packfile.c:1585,1
    - Dst: xmalloc
      Src: /src/git/packfile.c:1588,1
    - Dst: list_add_tail
      Src: /src/git/packfile.c:1594,1
    - Dst: hashmap_init
      Src: /src/git/packfile.c:1597,1
    - Dst: hashmap_entry_init
      Src: /src/git/packfile.c:1598,1
    - Dst: pack_entry_hash
      Src: /src/git/packfile.c:1598,1
    - Dst: hashmap_add
      Src: /src/git/packfile.c:1599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - p
    - base_offset
    - base
    - base_size
    - delta_base_cache_limit
    - type
    argTypes:
    - struct packed_git*
    - off_t
    - void*
    - unsigned long
    - unsigned long
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1560
    functionDepth: 6
    functionLinenumber: 1560
    functionLinenumberEnd: 1600
    functionName: add_delta_base_cache
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - hashmap_add
    - hashmap_init
    - list_add_tail
    - list_for_each_safe
    - release_delta_base_cache
    - hashmap_entry_init
    - list_entry
    - in_delta_base_cache
    - xmalloc
    - free
    - pack_entry_hash
    linkageType: ''
    returnType: void
    signature: "void add_delta_base_cache(struct packed_git *p, off_t base_offset,\n\t\t\t\t
      void *base, unsigned long base_size,\n\t\t\t\t unsigned long delta_base_cache_limit,\n\t\t\t\t
      enum object_type type)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: cache_or_unpack_entry
      Src: /src/git/packfile.c:1617,1
    - Dst: unpack_object_header
      Src: /src/git/packfile.c:1622,1
    - Dst: get_delta_base
      Src: /src/git/packfile.c:1628,1
    - Dst: get_size_from_delta_sz
      Src: /src/git/packfile.c:1639,1
    - Dst: offset_to_pack_pos
      Src: /src/git/packfile.c:1649,1
    - Dst: error
      Src: /src/git/packfile.c:1650,1
    - Dst: pack_pos_to_offset
      Src: /src/git/packfile.c:1658,1
    - Dst: load_pack_mtimes
      Src: /src/git/packfile.c:1664,1
    - Dst: die
      Src: /src/git/packfile.c:1665,1
    - Dst: _
      Src: /src/git/packfile.c:1665,1
    - Dst: pack_basename
      Src: /src/git/packfile.c:1666,1
    - Dst: pack_pos_to_index
      Src: /src/git/packfile.c:1671,1
    - Dst: nth_packed_mtime
      Src: /src/git/packfile.c:1673,1
    - Dst: packed_to_object_type
      Src: /src/git/packfile.c:1681,1
    - Dst: get_delta_base_oid
      Src: /src/git/packfile.c:1693,1
    - Dst: oidclr
      Src: /src/git/packfile.c:1700,1
    - Dst: unuse_pack
      Src: /src/git/packfile.c:1725,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 89
    argCount: 4
    argNames:
    - p
    - obj_offset
    - maybe_index_pos
    - oi
    argTypes:
    - struct packed_git*
    - off_t
    - uint32_t*
    - struct object_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1602
    functionDepth: 24
    functionLinenumber: 1602
    functionLinenumberEnd: 1727
    functionName: packed_object_info_with_index_pos
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - error
    - die
    - pack_basename
    - get_delta_base
    - packed_to_object_type
    - get_delta_base_oid
    - cache_or_unpack_entry
    - unpack_object_header
    - get_size_from_delta_sz
    - pack_pos_to_index
    - oidclr
    - offset_to_pack_pos
    - unuse_pack
    - _
    - load_pack_mtimes
    - pack_pos_to_offset
    - nth_packed_mtime
    linkageType: ''
    returnType: int
    signature: "int packed_object_info_with_index_pos(struct packed_git *p, off_t
      obj_offset,\n\t\t\t\t\t     uint32_t *maybe_index_pos, struct object_info *oi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packed_object_info_with_index_pos
      Src: /src/git/packfile.c:1732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - obj_offset
    - oi
    argTypes:
    - struct packed_git*
    - off_t
    - struct object_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1729
    functionDepth: 25
    functionLinenumber: 1729
    functionLinenumberEnd: 1733
    functionName: packed_object_info
    functionSourceFile: /src/git/packfile.c
    functionUses: 2
    functionsReached:
    - packed_object_info_with_index_pos
    linkageType: ''
    returnType: int
    signature: "int packed_object_info(struct packed_git *p, off_t obj_offset,\n\t\t
      \      struct object_info *oi)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmallocz_gently
      Src: /src/git/packfile.c:1744,1
    - Dst: memset
      Src: /src/git/packfile.c:1747,1
    - Dst: git_inflate_init
      Src: /src/git/packfile.c:1751,1
    - Dst: use_pack
      Src: /src/git/packfile.c:1753,1
    - Dst: obj_read_unlock
      Src: /src/git/packfile.c:1761,1
    - Dst: git_inflate
      Src: /src/git/packfile.c:1762,1
    - Dst: obj_read_lock
      Src: /src/git/packfile.c:1763,1
    - Dst: git_inflate_end
      Src: /src/git/packfile.c:1768,1
    - Dst: free
      Src: /src/git/packfile.c:1770,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - p
    - w_curs
    - curpos
    - size
    argTypes:
    - struct packed_git*
    - struct pack_window**
    - off_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1735
    functionDepth: 22
    functionLinenumber: 1735
    functionLinenumberEnd: 1778
    functionName: unpack_compressed_entry
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - memset
    - use_pack
    - obj_read_lock
    - git_inflate
    - xmallocz_gently
    - obj_read_unlock
    - free
    - git_inflate_init
    - git_inflate_end
    linkageType: ''
    returnType: void
    signature: "void *unpack_compressed_entry(struct packed_git *p,\n\t\t\t\t    struct
      pack_window **w_curs,\n\t\t\t\t    off_t curpos,\n\t\t\t\t    unsigned long
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_KEY_INIT
      Src: /src/git/packfile.c:1782,1
    - Dst: trace_printf_key
      Src: /src/git/packfile.c:1783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - obj_offset
    argTypes:
    - struct packed_git*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1780
    functionDepth: 1
    functionLinenumber: 1780
    functionLinenumberEnd: 1785
    functionName: write_pack_access_log
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - TRACE_KEY_INIT
    - trace_printf_key
    linkageType: ''
    returnType: void
    signature: void write_pack_access_log(struct packed_git *p, off_t obj_offset)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/packfile.c:1809,1
    - Dst: write_pack_access_log
      Src: /src/git/packfile.c:1811,1
    - Dst: get_delta_base_cache_entry
      Src: /src/git/packfile.c:1819,1
    - Dst: detach_delta_base_cache_entry
      Src: /src/git/packfile.c:1824,1
    - Dst: offset_to_pack_pos
      Src: /src/git/packfile.c:1833,1
    - Dst: error
      Src: /src/git/packfile.c:1834,1
    - Dst: pack_pos_to_offset
      Src: /src/git/packfile.c:1840,1
    - Dst: pack_pos_to_index
      Src: /src/git/packfile.c:1841,1
    - Dst: check_pack_crc
      Src: /src/git/packfile.c:1842,1
    - Dst: nth_packed_object_id
      Src: /src/git/packfile.c:1844,1
    - Dst: error
      Src: /src/git/packfile.c:1845,1
    - Dst: oid_to_hex
      Src: /src/git/packfile.c:1846,1
    - Dst: mark_bad_packed_object
      Src: /src/git/packfile.c:1847,1
    - Dst: unpack_object_header
      Src: /src/git/packfile.c:1853,1
    - Dst: get_delta_base
      Src: /src/git/packfile.c:1857,1
    - Dst: error
      Src: /src/git/packfile.c:1859,1
    - Dst: alloc_nr
      Src: /src/git/packfile.c:1870,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/packfile.c:1871,1
    - Dst: COPY_ARRAY
      Src: /src/git/packfile.c:1872,1
    - Dst: ALLOC_GROW
      Src: /src/git/packfile.c:1875,1
    - Dst: BUG
      Src: /src/git/packfile.c:1890,1
    - Dst: unpack_compressed_entry
      Src: /src/git/packfile.c:1897,1
    - Dst: error
      Src: /src/git/packfile.c:1901,1
    - Dst: offset_to_pack_pos
      Src: /src/git/packfile.c:1929,1
    - Dst: nth_packed_object_id
      Src: /src/git/packfile.c:1932,1
    - Dst: pack_pos_to_index
      Src: /src/git/packfile.c:1933,1
    - Dst: error
      Src: /src/git/packfile.c:1934,1
    - Dst: oid_to_hex
      Src: /src/git/packfile.c:1936,1
    - Dst: mark_bad_packed_object
      Src: /src/git/packfile.c:1938,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/packfile.c:1943,1
    - Dst: unpack_compressed_entry
      Src: /src/git/packfile.c:1959,1
    - Dst: error
      Src: /src/git/packfile.c:1962,1
    - Dst: patch_delta
      Src: /src/git/packfile.c:1968,1
    - Dst: error
      Src: /src/git/packfile.c:1982,1
    - Dst: add_delta_base_cache
      Src: /src/git/packfile.c:1994,1
    - Dst: free
      Src: /src/git/packfile.c:1998,1
    - Dst: free
      Src: /src/git/packfile.c:1999,1
    - Dst: unuse_pack
      Src: /src/git/packfile.c:2008,1
    - Dst: free
      Src: /src/git/packfile.c:2011,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 116
    argCount: 5
    argNames:
    - r
    - p
    - obj_offset
    - final_type
    - final_size
    argTypes:
    - struct repository*
    - struct packed_git*
    - off_t
    - enum object_type*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1796
    functionDepth: 23
    functionLinenumber: 1796
    functionLinenumberEnd: 2014
    functionName: unpack_entry
    functionSourceFile: /src/git/packfile.c
    functionUses: 3
    functionsReached:
    - patch_delta
    - offset_to_pack_pos
    - free
    - pack_pos_to_offset
    - mark_bad_packed_object
    - error
    - add_delta_base_cache
    - ALLOC_ARRAY
    - unpack_object_header
    - pack_pos_to_index
    - nth_packed_object_id
    - oid_to_hex
    - unpack_compressed_entry
    - get_delta_base_cache_entry
    - write_pack_access_log
    - check_pack_crc
    - get_delta_base
    - detach_delta_base_cache_entry
    - alloc_nr
    - prepare_repo_settings
    - unuse_pack
    - ALLOC_GROW
    - COPY_ARRAY
    - odb_read_object_info_extended
    - BUG
    linkageType: ''
    returnType: void
    signature: "void *unpack_entry(struct repository *r, struct packed_git *p, off_t
      obj_offset,\n\t\t   enum object_type *final_type, unsigned long *final_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/packfile.c:2024,1
    - Dst: bsearch_hash
      Src: /src/git/packfile.c:2036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - oid
    - p
    - result
    argTypes:
    - struct object_id*
    - struct packed_git*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2016
    functionDepth: 2
    functionLinenumber: 2016
    functionLinenumberEnd: 2038
    functionName: bsearch_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - BUG
    - bsearch_hash
    linkageType: ''
    returnType: int
    signature: int bsearch_pack(const struct object_id *oid, const struct packed_git
      *p, uint32_t *result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/packfile.c:2047,1
    - Dst: oidread
      Src: /src/git/packfile.c:2055,1
    - Dst: st_add
      Src: /src/git/packfile.c:2055,1
    - Dst: st_mult
      Src: /src/git/packfile.c:2055,1
    - Dst: oidread
      Src: /src/git/packfile.c:2059,1
    - Dst: st_mult
      Src: /src/git/packfile.c:2059,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - oid
    - p
    - n
    argTypes:
    - struct object_id*
    - struct packed_git*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2040
    functionDepth: 10
    functionLinenumber: 2040
    functionLinenumberEnd: 2062
    functionName: nth_packed_object_id
    functionSourceFile: /src/git/packfile.c
    functionUses: 6
    functionsReached:
    - st_add
    - open_pack_index
    - st_mult
    - oidread
    linkageType: ''
    returnType: int
    signature: "int nth_packed_object_id(struct object_id *oid,\n\t\t\t struct packed_git
      *p,\n\t\t\t uint32_t n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/packfile.c:2070,1
    - Dst: _
      Src: /src/git/packfile.c:2070,1
    - Dst: die
      Src: /src/git/packfile.c:2074,1
    - Dst: _
      Src: /src/git/packfile.c:2074,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - vptr
    argTypes:
    - struct packed_git*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2064
    functionDepth: 0
    functionLinenumber: 2064
    functionLinenumberEnd: 2076
    functionName: check_pack_index_ptr
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void check_pack_index_ptr(const struct packed_git *p, const void *vptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/git/packfile.c:2084,1
    - Dst: st_mult
      Src: /src/git/packfile.c:2084,1
    - Dst: st_add
      Src: /src/git/packfile.c:2087,1
    - Dst: st_mult
      Src: /src/git/packfile.c:2087,1
    - Dst: ntohl
      Src: /src/git/packfile.c:2088,1
    - Dst: st_mult
      Src: /src/git/packfile.c:2088,1
    - Dst: st_add
      Src: /src/git/packfile.c:2091,1
    - Dst: st_mult
      Src: /src/git/packfile.c:2091,1
    - Dst: st_mult
      Src: /src/git/packfile.c:2092,1
    - Dst: check_pack_index_ptr
      Src: /src/git/packfile.c:2093,1
    - Dst: get_be64
      Src: /src/git/packfile.c:2094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - struct packed_git*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2078
    functionDepth: 3
    functionLinenumber: 2078
    functionLinenumberEnd: 2096
    functionName: nth_packed_object_offset
    functionSourceFile: /src/git/packfile.c
    functionUses: 4
    functionsReached:
    - ntohl
    - get_be64
    - check_pack_index_ptr
    - st_add
    - st_mult
    linkageType: ''
    returnType: off_t
    signature: off_t nth_packed_object_offset(const struct packed_git *p, uint32_t
      n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/packfile.c:2105,1
    - Dst: bsearch_pack
      Src: /src/git/packfile.c:2109,1
    - Dst: nth_packed_object_offset
      Src: /src/git/packfile.c:2110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - oid
    - p
    argTypes:
    - struct object_id*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2098
    functionDepth: 10
    functionLinenumber: 2098
    functionLinenumberEnd: 2112
    functionName: find_pack_entry_one
    functionSourceFile: /src/git/packfile.c
    functionUses: 7
    functionsReached:
    - nth_packed_object_offset
    - bsearch_pack
    - open_pack_index
    linkageType: ''
    returnType: off_t
    signature: "off_t find_pack_entry_one(const struct object_id *oid,\n\t\t\t  struct
      packed_git *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_packed_git
      Src: /src/git/packfile.c:2132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2114
    functionDepth: 12
    functionLinenumber: 2114
    functionLinenumberEnd: 2133
    functionName: is_pack_valid
    functionSourceFile: /src/git/packfile.c
    functionUses: 4
    functionsReached:
    - open_packed_git
    linkageType: ''
    returnType: int
    signature: int is_pack_valid(struct packed_git *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidset_size
      Src: /src/git/packfile.c:2141,1
    - Dst: oidset_contains
      Src: /src/git/packfile.c:2142,1
    - Dst: find_pack_entry_one
      Src: /src/git/packfile.c:2145,1
    - Dst: is_pack_valid
      Src: /src/git/packfile.c:2156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - oid
    - e
    - p
    argTypes:
    - struct object_id*
    - struct pack_entry*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2135
    functionDepth: 13
    functionLinenumber: 2135
    functionLinenumberEnd: 2161
    functionName: fill_pack_entry
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - oidset_size
    - find_pack_entry_one
    - oidset_contains
    - is_pack_valid
    linkageType: ''
    returnType: int
    signature: "int fill_pack_entry(const struct object_id *oid,\n\t\t\t   struct
      pack_entry *e,\n\t\t\t   struct packed_git *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: packfile_store_prepare
      Src: /src/git/packfile.c:2169,1
    - Dst: fill_midx_entry
      Src: /src/git/packfile.c:2170,1
    - Dst: fill_pack_entry
      Src: /src/git/packfile.c:2176,1
    - Dst: packfile_list_prepend
      Src: /src/git/packfile.c:2178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - store
    - oid
    - e
    argTypes:
    - struct packfile_store*
    - struct object_id*
    - struct pack_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2163
    functionDepth: 8
    functionLinenumber: 2163
    functionLinenumberEnd: 2184
    functionName: find_pack_entry
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - packfile_store_prepare
    - fill_midx_entry
    - fill_pack_entry
    - packfile_list_prepend
    linkageType: ''
    returnType: int
    signature: "int find_pack_entry(struct packfile_store *store,\n\t\t\t   const
      struct object_id *oid,\n\t\t\t   struct pack_entry *e)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_pack_entry
      Src: /src/git/packfile.c:2190,1
    - Dst: utime
      Src: /src/git/packfile.c:2196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - store
    - oid
    argTypes:
    - struct packfile_store*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2186
    functionDepth: 9
    functionLinenumber: 2186
    functionLinenumberEnd: 2200
    functionName: packfile_store_freshen_object
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - utime
    - find_pack_entry
    linkageType: ''
    returnType: int
    signature: "int packfile_store_freshen_object(struct packfile_store *store,\n\t\t\t\t
      \ const struct object_id *oid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: packfile_store_reprepare
      Src: /src/git/packfile.c:2216,1
    - Dst: find_pack_entry
      Src: /src/git/packfile.c:2218,1
    - Dst: packed_object_info
      Src: /src/git/packfile.c:2228,1
    - Dst: mark_bad_packed_object
      Src: /src/git/packfile.c:2230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - store
    - oid
    - oi
    - flags
    argTypes:
    - struct packfile_store*
    - struct object_id*
    - struct object_info*
    - enum object_info_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2202
    functionDepth: 26
    functionLinenumber: 2202
    functionLinenumberEnd: 2235
    functionName: packfile_store_read_object_info
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - mark_bad_packed_object
    - find_pack_entry
    - packfile_store_reprepare
    - packed_object_info
    linkageType: ''
    returnType: int
    signature: "int packfile_store_read_object_info(struct packfile_store *store,\n\t\t\t\t
      \   const struct object_id *oid,\n\t\t\t\t    struct object_info *oi,\n\t\t\t\t
      \   enum object_info_flags flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/packfile.c:2244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - store
    - flags
    argTypes:
    - struct packfile_store*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2237
    functionDepth: 1
    functionLinenumber: 2237
    functionLinenumberEnd: 2246
    functionName: maybe_invalidate_kept_pack_cache
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: "void maybe_invalidate_kept_pack_cache(struct packfile_store *store,\n\t\t\t\t\t
      \    unsigned flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: maybe_invalidate_kept_pack_cache
      Src: /src/git/packfile.c:2251,1
    - Dst: packfile_store_get_packs
      Src: /src/git/packfile.c:2266,1
    - Dst: ALLOC_GROW
      Src: /src/git/packfile.c:2272,1
    - Dst: ALLOC_GROW
      Src: /src/git/packfile.c:2276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2248
    functionDepth: 9
    functionLinenumber: 2248
    functionLinenumberEnd: 2284
    functionName: packfile_store_get_kept_pack_cache
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - maybe_invalidate_kept_pack_cache
    - ALLOC_GROW
    - packfile_store_get_packs
    linkageType: ''
    returnType: struct packed_git
    signature: "struct packed_git **packfile_store_get_kept_pack_cache(struct packfile_store
      *store,\n\t\t\t\t\t\t       unsigned flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/packfile.c:2291,1
    - Dst: odb_source_files_downcast
      Src: /src/git/packfile.c:2293,1
    - Dst: find_pack_entry
      Src: /src/git/packfile.c:2294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2286
    functionDepth: 9
    functionLinenumber: 2286
    functionLinenumberEnd: 2300
    functionName: has_object_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 5
    functionsReached:
    - odb_prepare_alternates
    - find_pack_entry
    - odb_source_files_downcast
    linkageType: ''
    returnType: int
    signature: int has_object_pack(struct repository *r, const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/packfile.c:2309,1
    - Dst: packfile_store_get_kept_pack_cache
      Src: /src/git/packfile.c:2312,1
    - Dst: fill_pack_entry
      Src: /src/git/packfile.c:2316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - r
    - oid
    - flags
    argTypes:
    - struct repository*
    - struct object_id*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2302
    functionDepth: 10
    functionLinenumber: 2302
    functionLinenumberEnd: 2322
    functionName: has_object_kept_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 2
    functionsReached:
    - packfile_store_get_kept_pack_cache
    - fill_pack_entry
    - odb_source_files_downcast
    linkageType: ''
    returnType: int
    signature: "int has_object_kept_pack(struct repository *r, const struct object_id
      *oid,\n\t\t\t unsigned flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: load_pack_revindex
      Src: /src/git/packfile.c:2332,1
    - Dst: pack_pos_to_index
      Src: /src/git/packfile.c:2353,1
    - Dst: nth_packed_object_id
      Src: /src/git/packfile.c:2357,1
    - Dst: error
      Src: /src/git/packfile.c:2358,1
    - Dst: cb
      Src: /src/git/packfile.c:2361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - p
    - cb
    - data
    - flags
    argTypes:
    - struct packed_git*
    - each_packed_object_fn
    - void*
    - enum odb_for_each_object_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2324
    functionDepth: 11
    functionLinenumber: 2324
    functionLinenumberEnd: 2366
    functionName: for_each_object_in_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - error
    - pack_pos_to_index
    - nth_packed_object_id
    - cb
    - load_pack_revindex
    linkageType: ''
    returnType: int
    signature: "int for_each_object_in_pack(struct packed_git *p,\n\t\t\t    each_packed_object_fn
      cb, void *data,\n\t\t\t    enum odb_for_each_object_flags flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nth_packed_object_offset
      Src: /src/git/packfile.c:2383,1
    - Dst: packed_object_info_with_index_pos
      Src: /src/git/packfile.c:2386,1
    - Dst: mark_bad_packed_object
      Src: /src/git/packfile.c:2388,1
    - Dst: struct packfile_store_for_each_object_wrapper_data*::cb
      Src: /src/git/packfile.c:2392,1
    - Dst: struct packfile_store_for_each_object_wrapper_data*::cb
      Src: /src/git/packfile.c:2394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - oid
    - pack
    - index_pos
    - cb_data
    argTypes:
    - struct object_id*
    - struct packed_git*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2375
    functionDepth: 25
    functionLinenumber: 2375
    functionLinenumberEnd: 2396
    functionName: packfile_store_for_each_object_wrapper
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - nth_packed_object_offset
    - struct packfile_store_for_each_object_wrapper_data*::cb
    - mark_bad_packed_object
    - packed_object_info_with_index_pos
    linkageType: ''
    returnType: int
    signature: "int packfile_store_for_each_object_wrapper(const struct object_id
      *oid,\n\t\t\t\t\t\t  struct packed_git *pack,\n\t\t\t\t\t\t  uint32_t index_pos,\n\t\t\t\t\t\t
      \ void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - len
    - a
    - b
    argTypes:
    - unsigned
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2398
    functionDepth: 0
    functionLinenumber: 2398
    functionLinenumberEnd: 2411
    functionName: match_hash
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int match_hash(unsigned len, const unsigned char *a, const unsigned
      char *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_one_midx
      Src: /src/git/packfile.c:2431,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/packfile.c:2442,1
    - Dst: match_hash
      Src: /src/git/packfile.c:2444,1
    - Dst: packfile_store_read_object_info
      Src: /src/git/packfile.c:2450,1
    - Dst: struct packfile_store_for_each_object_wrapper_data*::cb
      Src: /src/git/packfile.c:2455,1
    - Dst: struct packfile_store_for_each_object_wrapper_data*::cb
      Src: /src/git/packfile.c:2459,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - store
    - m
    - opts
    - data
    argTypes:
    - struct packfile_store*
    - struct multi_pack_index*
    - struct odb_for_each_object_options*
    - struct packfile_store_for_each_object_wrapper_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2413
    functionDepth: 27
    functionLinenumber: 2413
    functionLinenumberEnd: 2470
    functionName: for_each_prefixed_object_in_midx
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - nth_midxed_object_oid
    - packfile_store_read_object_info
    - struct packfile_store_for_each_object_wrapper_data*::cb
    - match_hash
    - bsearch_one_midx
    linkageType: ''
    returnType: int
    signature: "int for_each_prefixed_object_in_midx(\n\tstruct packfile_store *store,\n\tstruct
      multi_pack_index *m,\n\tconst struct odb_for_each_object_options *opts,\n\tstruct
      packfile_store_for_each_object_wrapper_data *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_pack
      Src: /src/git/packfile.c:2484,1
    - Dst: nth_packed_object_id
      Src: /src/git/packfile.c:2494,1
    - Dst: match_hash
      Src: /src/git/packfile.c:2495,1
    - Dst: packfile_store_read_object_info
      Src: /src/git/packfile.c:2501,1
    - Dst: struct packfile_store_for_each_object_wrapper_data*::cb
      Src: /src/git/packfile.c:2505,1
    - Dst: struct packfile_store_for_each_object_wrapper_data*::cb
      Src: /src/git/packfile.c:2509,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - store
    - p
    - opts
    - data
    argTypes:
    - struct packfile_store*
    - struct packed_git*
    - struct odb_for_each_object_options*
    - struct packfile_store_for_each_object_wrapper_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2472
    functionDepth: 27
    functionLinenumber: 2472
    functionLinenumberEnd: 2519
    functionName: for_each_prefixed_object_in_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - bsearch_pack
    - packfile_store_read_object_info
    - nth_packed_object_id
    - struct packfile_store_for_each_object_wrapper_data*::cb
    - match_hash
    linkageType: ''
    returnType: int
    signature: "int for_each_prefixed_object_in_pack(\n\tstruct packfile_store *store,\n\tstruct
      packed_git *p,\n\tconst struct odb_for_each_object_options *opts,\n\tstruct
      packfile_store_for_each_object_wrapper_data *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/packfile.c:2532,1
    - Dst: get_multi_pack_index
      Src: /src/git/packfile.c:2536,1
    - Dst: for_each_prefixed_object_in_midx
      Src: /src/git/packfile.c:2538,1
    - Dst: packfile_store_get_packs
      Src: /src/git/packfile.c:2543,1
    - Dst: open_pack_index
      Src: /src/git/packfile.c:2547,1
    - Dst: for_each_prefixed_object_in_pack
      Src: /src/git/packfile.c:2555,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 3
    argNames:
    - store
    - opts
    - data
    argTypes:
    - struct packfile_store*
    - struct odb_for_each_object_options*
    - struct packfile_store_for_each_object_wrapper_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2521
    functionDepth: 28
    functionLinenumber: 2521
    functionLinenumberEnd: 2567
    functionName: packfile_store_for_each_prefixed_object
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - for_each_prefixed_object_in_midx
    - BUG
    - get_multi_pack_index
    - for_each_prefixed_object_in_pack
    - packfile_store_get_packs
    - open_pack_index
    linkageType: ''
    returnType: int
    signature: "int packfile_store_for_each_prefixed_object(\n\tstruct packfile_store
      *store,\n\tconst struct odb_for_each_object_options *opts,\n\tstruct packfile_store_for_each_object_wrapper_data
      *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: packfile_store_for_each_prefixed_object
      Src: /src/git/packfile.c:2585,1
    - Dst: packfile_store_get_packs
      Src: /src/git/packfile.c:2589,1
    - Dst: open_pack_index
      Src: /src/git/packfile.c:2603,1
    - Dst: for_each_object_in_pack
      Src: /src/git/packfile.c:2608,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 5
    argNames:
    - store
    - request
    - cb
    - cb_data
    - opts
    argTypes:
    - struct packfile_store*
    - struct object_info*
    - odb_for_each_object_cb
    - void*
    - struct odb_for_each_object_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2569
    functionDepth: 29
    functionLinenumber: 2569
    functionLinenumberEnd: 2622
    functionName: packfile_store_for_each_object
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - for_each_object_in_pack
    - packfile_store_get_packs
    - open_pack_index
    - packfile_store_for_each_prefixed_object
    linkageType: ''
    returnType: int
    signature: "int packfile_store_for_each_object(struct packfile_store *store,\n\t\t\t\t
      \  const struct object_info *request,\n\t\t\t\t   odb_for_each_object_cb cb,\n\t\t\t\t
      \  void *cb_data,\n\t\t\t\t   const struct odb_for_each_object_options *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oid_common_prefix_hexlen
      Src: /src/git/packfile.c:2628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - out
    argTypes:
    - struct object_id*
    - struct object_id*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2624
    functionDepth: 1
    functionLinenumber: 2624
    functionLinenumberEnd: 2632
    functionName: extend_abbrev_len
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - oid_common_prefix_hexlen
    linkageType: ''
    returnType: int
    signature: "int extend_abbrev_len(const struct object_id *a,\n\t\t\t     const
      struct object_id *b,\n\t\t\t     unsigned *out)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_one_midx
      Src: /src/git/packfile.c:2650,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/packfile.c:2661,1
    - Dst: extend_abbrev_len
      Src: /src/git/packfile.c:2662,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/packfile.c:2664,1
    - Dst: extend_abbrev_len
      Src: /src/git/packfile.c:2665,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/packfile.c:2668,1
    - Dst: extend_abbrev_len
      Src: /src/git/packfile.c:2669,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - m
    - oid
    - min_len
    - out
    argTypes:
    - struct multi_pack_index*
    - struct object_id*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2634
    functionDepth: 3
    functionLinenumber: 2634
    functionLinenumberEnd: 2674
    functionName: find_abbrev_len_for_midx
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - nth_midxed_object_oid
    - bsearch_one_midx
    - extend_abbrev_len
    linkageType: ''
    returnType: void
    signature: "void find_abbrev_len_for_midx(struct multi_pack_index *m,\n\t\t\t\t
      \    const struct object_id *oid,\n\t\t\t\t     unsigned min_len,\n\t\t\t\t
      \    unsigned *out)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_pack
      Src: /src/git/packfile.c:2687,1
    - Dst: nth_packed_object_id
      Src: /src/git/packfile.c:2696,1
    - Dst: extend_abbrev_len
      Src: /src/git/packfile.c:2697,1
    - Dst: nth_packed_object_id
      Src: /src/git/packfile.c:2699,1
    - Dst: extend_abbrev_len
      Src: /src/git/packfile.c:2700,1
    - Dst: nth_packed_object_id
      Src: /src/git/packfile.c:2703,1
    - Dst: extend_abbrev_len
      Src: /src/git/packfile.c:2704,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - p
    - oid
    - min_len
    - out
    argTypes:
    - struct packed_git*
    - struct object_id*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2676
    functionDepth: 11
    functionLinenumber: 2676
    functionLinenumberEnd: 2708
    functionName: find_abbrev_len_for_pack
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - bsearch_pack
    - nth_packed_object_id
    - extend_abbrev_len
    linkageType: ''
    returnType: void
    signature: "void find_abbrev_len_for_pack(struct packed_git *p,\n\t\t\t\t     const
      struct object_id *oid,\n\t\t\t\t     unsigned min_len,\n\t\t\t\t     unsigned
      *out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_multi_pack_index
      Src: /src/git/packfile.c:2718,1
    - Dst: find_abbrev_len_for_midx
      Src: /src/git/packfile.c:2720,1
    - Dst: packfile_store_get_packs
      Src: /src/git/packfile.c:2722,1
    - Dst: open_pack_index
      Src: /src/git/packfile.c:2725,1
    - Dst: find_abbrev_len_for_pack
      Src: /src/git/packfile.c:2728,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - store
    - oid
    - min_len
    - out
    argTypes:
    - struct packfile_store*
    - struct object_id*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2710
    functionDepth: 12
    functionLinenumber: 2710
    functionLinenumberEnd: 2733
    functionName: packfile_store_find_abbrev_len
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - find_abbrev_len_for_midx
    - find_abbrev_len_for_pack
    - get_multi_pack_index
    - packfile_store_get_packs
    - open_pack_index
    linkageType: ''
    returnType: int
    signature: "int packfile_store_find_abbrev_len(struct packfile_store *store,\n\t\t\t\t
      \  const struct object_id *oid,\n\t\t\t\t   unsigned min_len,\n\t\t\t\t   unsigned
      *out)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/packfile.c:2748,1
    - Dst: parse_object_with_flags
      Src: /src/git/packfile.c:2753,1
    - Dst: oidset_insert
      Src: /src/git/packfile.c:2760,1
    - Dst: init_tree_desc_gently
      Src: /src/git/packfile.c:2770,1
    - Dst: tree_entry_gently
      Src: /src/git/packfile.c:2777,1
    - Dst: oidset_insert
      Src: /src/git/packfile.c:2778,1
    - Dst: free_tree_buffer
      Src: /src/git/packfile.c:2780,1
    - Dst: oidset_insert
      Src: /src/git/packfile.c:2785,1
    - Dst: get_commit_tree_oid
      Src: /src/git/packfile.c:2785,1
    - Dst: oidset_insert
      Src: /src/git/packfile.c:2787,1
    - Dst: oidset_insert
      Src: /src/git/packfile.c:2790,1
    - Dst: get_tagged_oid
      Src: /src/git/packfile.c:2790,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2740
    functionDepth: 7
    functionLinenumber: 2740
    functionLinenumberEnd: 2793
    functionName: add_promisor_object
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - free_tree_buffer
    - get_commit_tree_oid
    - lookup_object
    - tree_entry_gently
    - oidset_insert
    - parse_object_with_flags
    - init_tree_desc_gently
    - get_tagged_oid
    linkageType: ''
    returnType: int
    signature: "int add_promisor_object(const struct object_id *oid,\n\t\t\t       struct
      object_info *oi UNUSED,\n\t\t\t       void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_has_promisor_remote
      Src: /src/git/packfile.c:2801,1
    - Dst: odb_for_each_object
      Src: /src/git/packfile.c:2807,1
    - Dst: oidset_contains
      Src: /src/git/packfile.c:2812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2795
    functionDepth: 10
    functionLinenumber: 2795
    functionLinenumberEnd: 2813
    functionName: is_promisor_object
    functionSourceFile: /src/git/packfile.c
    functionUses: 7
    functionsReached:
    - odb_for_each_object
    - repo_has_promisor_remote
    - oidset_contains
    linkageType: ''
    returnType: int
    signature: int is_promisor_object(struct repository *r, const struct object_id
      *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: put_be32
      Src: /src/git/packfile.c:2821,1
    - Dst: put_be32
      Src: /src/git/packfile.c:2823,1
    - Dst: strtoul
      Src: /src/git/packfile.c:2823,1
    - Dst: put_be32
      Src: /src/git/packfile.c:2827,1
    - Dst: strtoul
      Src: /src/git/packfile.c:2827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - in
    - out
    - len
    argTypes:
    - char*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2815
    functionDepth: 1
    functionLinenumber: 2815
    functionLinenumberEnd: 2833
    functionName: parse_pack_header_option
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - put_be32
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_pack_header_option(const char *in, unsigned char *out, unsigned
      int *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/packfile.c:2838,1
    - Dst: strmap_init
      Src: /src/git/packfile.c:2840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2835
    functionDepth: 1
    functionLinenumber: 2835
    functionLinenumberEnd: 2842
    functionName: packfile_store_new
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - strmap_init
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct packfile_store
    signature: struct packfile_store *packfile_store_new(struct odb_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/packfile.c:2847,1
    - Dst: packfile_list_clear
      Src: /src/git/packfile.c:2848,1
    - Dst: strmap_clear
      Src: /src/git/packfile.c:2850,1
    - Dst: free
      Src: /src/git/packfile.c:2851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct packfile_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2844
    functionDepth: 3
    functionLinenumber: 2844
    functionLinenumberEnd: 2852
    functionName: packfile_store_free
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - packfile_list_clear
    - strmap_clear
    - free
    linkageType: ''
    returnType: void
    signature: void packfile_store_free(struct packfile_store *store)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/packfile.c:2858,1
    - Dst: close_pack
      Src: /src/git/packfile.c:2859,1
    - Dst: close_midx
      Src: /src/git/packfile.c:2862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct packfile_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2864
      start: 2854
    functionDepth: 3
    functionLinenumber: 2854
    functionLinenumberEnd: 2864
    functionName: packfile_store_close
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - close_midx
    - BUG
    - close_pack
    linkageType: ''
    returnType: void
    signature: void packfile_store_close(struct packfile_store *store)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/packfile.c:2887,1
    - Dst: git_inflate_init
      Src: /src/git/packfile.c:2888,1
    - Dst: use_pack
      Src: /src/git/packfile.c:2904,1
    - Dst: git_inflate
      Src: /src/git/packfile.c:2910,1
    - Dst: unuse_pack
      Src: /src/git/packfile.c:2914,1
    - Dst: git_inflate_end
      Src: /src/git/packfile.c:2917,1
    - Dst: git_inflate_end
      Src: /src/git/packfile.c:2931,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - _st
    - buf
    - sz
    argTypes:
    - struct odb_read_stream*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2879
    functionDepth: 22
    functionLinenumber: 2879
    functionLinenumberEnd: 2937
    functionName: read_istream_pack_non_delta
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - memset
    - use_pack
    - git_inflate
    - unuse_pack
    - git_inflate_init
    - git_inflate_end
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t read_istream_pack_non_delta(struct odb_read_stream *_st, char
      *buf,\n\t\t\t\t\t   size_t sz)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_inflate_end
      Src: /src/git/packfile.c:2943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - _st
    argTypes:
    - struct odb_read_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2939
    functionDepth: 3
    functionLinenumber: 2939
    functionLinenumberEnd: 2945
    functionName: close_istream_pack_non_delta
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - git_inflate_end
    linkageType: ''
    returnType: int
    signature: int close_istream_pack_non_delta(struct odb_read_stream *_st)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unpack_object_header
      Src: /src/git/packfile.c:2957,1
    - Dst: unuse_pack
      Src: /src/git/packfile.c:2958,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/packfile.c:2960,1
    - Dst: mark_bad_packed_object
      Src: /src/git/packfile.c:2967,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/packfile.c:2976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - out
    - oid
    - pack
    - offset
    argTypes:
    - struct odb_read_stream**
    - struct object_id*
    - struct packed_git*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2988
      start: 2947
    functionDepth: 23
    functionLinenumber: 2947
    functionLinenumberEnd: 2988
    functionName: packfile_read_object_stream
    functionSourceFile: /src/git/packfile.c
    functionUses: 1
    functionsReached:
    - repo_settings_get_big_file_threshold
    - unpack_object_header
    - unuse_pack
    - CALLOC_ARRAY
    - mark_bad_packed_object
    linkageType: ''
    returnType: int
    signature: "int packfile_read_object_stream(struct odb_read_stream **out,\n\t\t\t\tconst
      struct object_id *oid,\n\t\t\t\tstruct packed_git *pack,\n\t\t\t\toff_t offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_pack_entry
      Src: /src/git/packfile.c:2996,1
    - Dst: packfile_read_object_stream
      Src: /src/git/packfile.c:2999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - store
    - oid
    argTypes:
    - struct odb_read_stream**
    - struct packfile_store*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2990
    functionDepth: 24
    functionLinenumber: 2990
    functionLinenumberEnd: 3000
    functionName: packfile_store_read_object_stream
    functionSourceFile: /src/git/packfile.c
    functionUses: 0
    functionsReached:
    - find_pack_entry
    - packfile_read_object_stream
    linkageType: ''
    returnType: int
    signature: "int packfile_store_read_object_stream(struct odb_read_stream **out,\n\t\t\t\t
      \     struct packfile_store *store,\n\t\t\t\t      const struct object_id *oid)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/reset.c:37,1
    - Dst: getenv
      Src: /src/git/reset.c:38,1
    - Dst: strbuf_addf
      Src: /src/git/reset.c:39,1
    - Dst: repo_get_oid
      Src: /src/git/reset.c:45,1
    - Dst: strbuf_addstr
      Src: /src/git/reset.c:49,1
    - Dst: refs_update_ref
      Src: /src/git/reset.c:52,1
    - Dst: get_main_ref_store
      Src: /src/git/reset.c:52,1
    - Dst: refs_delete_ref
      Src: /src/git/reset.c:57,1
    - Dst: get_main_ref_store
      Src: /src/git/reset.c:57,1
    - Dst: strbuf_setlen
      Src: /src/git/reset.c:62,1
    - Dst: strbuf_addstr
      Src: /src/git/reset.c:63,1
    - Dst: refs_update_ref
      Src: /src/git/reset.c:67,1
    - Dst: get_main_ref_store
      Src: /src/git/reset.c:67,1
    - Dst: refs_update_ref
      Src: /src/git/reset.c:72,1
    - Dst: get_main_ref_store
      Src: /src/git/reset.c:72,1
    - Dst: refs_update_symref
      Src: /src/git/reset.c:77,1
    - Dst: get_main_ref_store
      Src: /src/git/reset.c:77,1
    - Dst: run_hooks_l
      Src: /src/git/reset.c:82,1
    - Dst: oid_to_hex
      Src: /src/git/reset.c:83,1
    - Dst: null_oid
      Src: /src/git/reset.c:83,1
    - Dst: oid_to_hex
      Src: /src/git/reset.c:84,1
    - Dst: strbuf_release
      Src: /src/git/reset.c:85,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - opts
    - oid
    - head
    argTypes:
    - struct reset_head_opts*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 16
    functionDepth: 13
    functionLinenumber: 16
    functionLinenumberEnd: 87
    functionName: update_refs
    functionSourceFile: /src/git/reset.c
    functionUses: 4
    functionsReached:
    - refs_delete_ref
    - oid_to_hex
    - strbuf_release
    - run_hooks_l
    - repo_get_oid
    - refs_update_symref
    - strbuf_addf
    - strbuf_setlen
    - null_oid
    - strbuf_addstr
    - getenv
    - refs_update_ref
    - BUG
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int update_refs(const struct reset_head_opts *opts,\n\t\t       const
      struct object_id *oid,\n\t\t       const struct object_id *head)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/reset.c:104,1
    - Dst: BUG
      Src: /src/git/reset.c:105,1
    - Dst: BUG
      Src: /src/git/reset.c:108,1
    - Dst: BUG
      Src: /src/git/reset.c:111,1
    - Dst: repo_hold_locked_index
      Src: /src/git/reset.c:113,1
    - Dst: repo_get_oid
      Src: /src/git/reset.c:118,1
    - Dst: error
      Src: /src/git/reset.c:121,1
    - Dst: _
      Src: /src/git/reset.c:121,1
    - Dst: update_refs
      Src: /src/git/reset.c:129,1
    - Dst: setup_unpack_trees_porcelain
      Src: /src/git/reset.c:132,1
    - Dst: init_checkout_metadata
      Src: /src/git/reset.c:141,1
    - Dst: repo_read_index_unmerged
      Src: /src/git/reset.c:145,1
    - Dst: error
      Src: /src/git/reset.c:146,1
    - Dst: _
      Src: /src/git/reset.c:146,1
    - Dst: fill_tree_descriptor
      Src: /src/git/reset.c:150,1
    - Dst: error
      Src: /src/git/reset.c:151,1
    - Dst: _
      Src: /src/git/reset.c:151,1
    - Dst: oid_to_hex
      Src: /src/git/reset.c:152,1
    - Dst: fill_tree_descriptor
      Src: /src/git/reset.c:156,1
    - Dst: error
      Src: /src/git/reset.c:157,1
    - Dst: _
      Src: /src/git/reset.c:157,1
    - Dst: oid_to_hex
      Src: /src/git/reset.c:157,1
    - Dst: unpack_trees
      Src: /src/git/reset.c:161,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/reset.c:166,1
    - Dst: error
      Src: /src/git/reset.c:168,1
    - Dst: _
      Src: /src/git/reset.c:168,1
    - Dst: oid_to_hex
      Src: /src/git/reset.c:168,1
    - Dst: prime_cache_tree
      Src: /src/git/reset.c:172,1
    - Dst: write_locked_index
      Src: /src/git/reset.c:174,1
    - Dst: error
      Src: /src/git/reset.c:175,1
    - Dst: _
      Src: /src/git/reset.c:175,1
    - Dst: update_refs
      Src: /src/git/reset.c:180,1
    - Dst: rollback_lock_file
      Src: /src/git/reset.c:183,1
    - Dst: clear_unpack_trees_porcelain
      Src: /src/git/reset.c:184,1
    - Dst: free
      Src: /src/git/reset.c:186,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 78
    argCount: 2
    argNames:
    - r
    - opts
    argTypes:
    - struct repository*
    - struct reset_head_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 89
    functionDepth: 14
    functionLinenumber: 89
    functionLinenumberEnd: 189
    functionName: reset_head
    functionSourceFile: /src/git/reset.c
    functionUses: 2
    functionsReached:
    - repo_get_oid
    - repo_hold_locked_index
    - free
    - fill_tree_descriptor
    - error
    - setup_unpack_trees_porcelain
    - rollback_lock_file
    - update_refs
    - oid_to_hex
    - repo_parse_tree_indirect
    - repo_read_index_unmerged
    - prime_cache_tree
    - unpack_trees
    - _
    - init_checkout_metadata
    - clear_unpack_trees_porcelain
    - starts_with
    - write_locked_index
    - BUG
    linkageType: ''
    returnType: int
    signature: int reset_head(struct repository *r, const struct reset_head_opts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - now
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: REFLOG_EXPIRE_OPTIONS_INIT
    functionSourceFile: /src/git/reflog.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFLOG_EXPIRE_OPTIONS_INIT(now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: FAST_ARRAY_ALLOC
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAST_ARRAY_ALLOC(x, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: FAST_ARRAY_FREE
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAST_ARRAY_FREE(x, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/tree-diff.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - path
    - dir
    - dirlen
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: is_dir_prefix
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int is_dir_prefix(const char *path, const char *dir, int dirlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: within_depth
      Src: /src/git/tree-diff.c:64,1
    - Dst: is_dir_prefix
      Src: /src/git/tree-diff.c:80,1
    - Dst: within_depth
      Src: /src/git/tree-diff.c:82,1
    - Dst: is_dir_prefix
      Src: /src/git/tree-diff.c:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - name
    - ps
    - max_depth
    argTypes:
    - struct strbuf*
    - struct pathspec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 98
    functionName: check_recursion_depth
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached:
    - is_dir_prefix
    - within_depth
    linkageType: ''
    returnType: int
    signature: "int check_recursion_depth(const struct strbuf *name,\n\t\t\t\t const
      struct pathspec *ps,\n\t\t\t\t int max_depth)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/tree-diff.c:112,1
    - Dst: check_recursion_depth
      Src: /src/git/tree-diff.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - name
    - opt
    argTypes:
    - struct strbuf*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: should_recurse
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached:
    - BUG
    - check_recursion_depth
    linkageType: ''
    returnType: int
    signature: int should_recurse(const struct strbuf *name, struct diff_options *opt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: base_name_compare
      Src: /src/git/tree-diff.c:152,1
    - Dst: tree_entry_len
      Src: /src/git/tree-diff.c:152,1
    - Dst: tree_entry_len
      Src: /src/git/tree-diff.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - struct tree_desc*
    - struct tree_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: tree_entry_pathcmp
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached:
    - tree_entry_len
    - base_name_compare
    linkageType: ''
    returnType: int
    signature: int tree_entry_pathcmp(struct tree_desc *t1, struct tree_desc *t2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct diff_options*::change
      Src: /src/git/tree-diff.c:168,1
    - Dst: struct diff_options*::add_remove
      Src: /src/git/tree-diff.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - opt
    - p
    argTypes:
    - struct diff_options*
    - struct combine_diff_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 190
    functionName: emit_diff_first_parent_only
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached:
    - struct diff_options*::add_remove
    - struct diff_options*::change
    linkageType: ''
    returnType: int
    signature: int emit_diff_first_parent_only(struct diff_options *opt, struct combine_diff_path
      *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/tree-diff.c:216,1
    - Dst: tree_entry_extract
      Src: /src/git/tree-diff.c:220,1
    - Dst: tree_entry_len
      Src: /src/git/tree-diff.c:221,1
    - Dst: S_ISDIR
      Src: /src/git/tree-diff.c:222,1
    - Dst: tree_entry_extract
      Src: /src/git/tree-diff.c:231,1
    - Dst: tree_entry_len
      Src: /src/git/tree-diff.c:232,1
    - Dst: S_ISDIR
      Src: /src/git/tree-diff.c:234,1
    - Dst: strbuf_add
      Src: /src/git/tree-diff.c:240,1
    - Dst: should_recurse
      Src: /src/git/tree-diff.c:241,1
    - Dst: strbuf_setlen
      Src: /src/git/tree-diff.c:245,1
    - Dst: strbuf_add
      Src: /src/git/tree-diff.c:252,1
    - Dst: combine_diff_path_new
      Src: /src/git/tree-diff.c:253,1
    - Dst: null_oid
      Src: /src/git/tree-diff.c:254,1
    - Dst: strbuf_setlen
      Src: /src/git/tree-diff.c:256,1
    - Dst: null_oid
      Src: /src/git/tree-diff.c:279,1
    - Dst: oidcpy
      Src: /src/git/tree-diff.c:284,1
    - Dst: struct diff_options*::pathchange
      Src: /src/git/tree-diff.c:289,1
    - Dst: free
      Src: /src/git/tree-diff.c:295,1
    - Dst: FAST_ARRAY_ALLOC
      Src: /src/git/tree-diff.c:302,1
    - Dst: strbuf_add
      Src: /src/git/tree-diff.c:310,1
    - Dst: strbuf_addch
      Src: /src/git/tree-diff.c:311,1
    - Dst: ll_diff_tree_paths
      Src: /src/git/tree-diff.c:312,1
    - Dst: FAST_ARRAY_FREE
      Src: /src/git/tree-diff.c:314,1
    - Dst: strbuf_setlen
      Src: /src/git/tree-diff.c:317,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 8
    argNames:
    - tail
    - base
    - opt
    - nparent
    - t
    - tp
    - imin
    - depth
    argTypes:
    - struct combine_diff_path***
    - struct strbuf*
    - struct diff_options*
    - int
    - struct tree_desc*
    - struct tree_desc*
    - int
    - int
    assertStmts:
    - condition: (t || tp)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/git/tree-diff.c
    constantsTouched: []
    func_position:
      end: 318
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 318
    functionName: emit_path
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - assert
    - oidcpy
    - tree_entry_extract
    - should_recurse
    - FAST_ARRAY_FREE
    - combine_diff_path_new
    - strbuf_setlen
    - FAST_ARRAY_ALLOC
    - strbuf_addch
    - struct diff_options*::pathchange
    - free
    - tree_entry_len
    - null_oid
    - ll_diff_tree_paths
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void emit_path(struct combine_diff_path ***tail,\n\t\t      struct
      strbuf *base, struct diff_options *opt,\n\t\t      int nparent, struct tree_desc
      *t, struct tree_desc *tp,\n\t\t      int imin, int depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tree_entry_interesting
      Src: /src/git/tree-diff.c:326,1
    - Dst: update_tree_entry
      Src: /src/git/tree-diff.c:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - t
    - base
    - opt
    argTypes:
    - struct tree_desc*
    - struct strbuf*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 320
    functionDepth: 5
    functionLinenumber: 320
    functionLinenumberEnd: 335
    functionName: skip_uninteresting
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached:
    - update_tree_entry
    - tree_entry_interesting
    linkageType: ''
    returnType: void
    signature: "void skip_uninteresting(struct tree_desc *t, struct strbuf *base,\n\t\t\t
      \      struct diff_options *opt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_tree_entry
      Src: /src/git/tree-diff.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - tp
    - nparent
    argTypes:
    - struct tree_desc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 5
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: update_tp_entries
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached:
    - update_tree_entry
    linkageType: ''
    returnType: void
    signature: void update_tp_entries(struct tree_desc *tp, int nparent)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/tree-diff.c:441,1
    - Dst: FAST_ARRAY_ALLOC
      Src: /src/git/tree-diff.c:443,1
    - Dst: FAST_ARRAY_ALLOC
      Src: /src/git/tree-diff.c:444,1
    - Dst: fill_tree_descriptor
      Src: /src/git/tree-diff.c:453,1
    - Dst: fill_tree_descriptor
      Src: /src/git/tree-diff.c:454,1
    - Dst: diff_can_quit_early
      Src: /src/git/tree-diff.c:462,1
    - Dst: skip_uninteresting
      Src: /src/git/tree-diff.c:469,1
    - Dst: skip_uninteresting
      Src: /src/git/tree-diff.c:471,1
    - Dst: tree_entry_pathcmp
      Src: /src/git/tree-diff.c:494,1
    - Dst: tree_entry_pathcmp
      Src: /src/git/tree-diff.c:514,1
    - Dst: oideq
      Src: /src/git/tree-diff.c:526,1
    - Dst: emit_path
      Src: /src/git/tree-diff.c:535,1
    - Dst: update_tree_entry
      Src: /src/git/tree-diff.c:540,1
    - Dst: update_tp_entries
      Src: /src/git/tree-diff.c:541,1
    - Dst: emit_path
      Src: /src/git/tree-diff.c:547,1
    - Dst: update_tree_entry
      Src: /src/git/tree-diff.c:551,1
    - Dst: emit_path
      Src: /src/git/tree-diff.c:563,1
    - Dst: update_tp_entries
      Src: /src/git/tree-diff.c:568,1
    - Dst: free
      Src: /src/git/tree-diff.c:572,1
    - Dst: free
      Src: /src/git/tree-diff.c:574,1
    - Dst: FAST_ARRAY_FREE
      Src: /src/git/tree-diff.c:575,1
    - Dst: FAST_ARRAY_FREE
      Src: /src/git/tree-diff.c:576,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 83
    argCount: 7
    argNames:
    - tail
    - oid
    - parents_oid
    - nparent
    - base
    - opt
    - depth
    argTypes:
    - struct combine_diff_path***
    - struct object_id*
    - struct object_id**
    - int
    - struct strbuf*
    - struct diff_options*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 430
    functionDepth: 6
    functionLinenumber: 430
    functionLinenumberEnd: 577
    functionName: ll_diff_tree_paths
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 1
    functionsReached:
    - update_tree_entry
    - diff_can_quit_early
    - die
    - tree_entry_pathcmp
    - update_tp_entries
    - FAST_ARRAY_FREE
    - emit_path
    - FAST_ARRAY_ALLOC
    - skip_uninteresting
    - free
    - fill_tree_descriptor
    - oideq
    linkageType: ''
    returnType: void
    signature: "void ll_diff_tree_paths(\n\tstruct combine_diff_path ***tail, const
      struct object_id *oid,\n\tconst struct object_id **parents_oid, int nparent,\n\tstruct
      strbuf *base, struct diff_options *opt,\n\tint depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ll_diff_tree_paths
      Src: /src/git/tree-diff.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - oid
    - parents_oid
    - nparent
    - base
    - opt
    argTypes:
    - struct object_id*
    - struct object_id**
    - int
    - struct strbuf*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 579
    functionDepth: 7
    functionLinenumber: 579
    functionLinenumberEnd: 587
    functionName: diff_tree_paths
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 3
    functionsReached:
    - ll_diff_tree_paths
    linkageType: ''
    returnType: struct combine_diff_path
    signature: "struct combine_diff_path *diff_tree_paths(\n\tconst struct object_id
      *oid,\n\tconst struct object_id **parents_oid, int nparent,\n\tstruct strbuf
      *base, struct diff_options *opt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIFF_FILE_VALID
      Src: /src/git/tree-diff.c:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 598
    functionName: diff_might_be_rename
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 1
    functionsReached:
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: int
    signature: int diff_might_be_rename(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GUARD_PATHSPEC
      Src: /src/git/tree-diff.c:614,1
    - Dst: BUG
      Src: /src/git/tree-diff.c:624,1
    - Dst: repo_diff_setup
      Src: /src/git/tree-diff.c:631,1
    - Dst: diff_setup_done
      Src: /src/git/tree-diff.c:638,1
    - Dst: ll_diff_tree_oid
      Src: /src/git/tree-diff.c:639,1
    - Dst: diffcore_std
      Src: /src/git/tree-diff.c:640,1
    - Dst: clear_pathspec
      Src: /src/git/tree-diff.c:641,1
    - Dst: strcmp
      Src: /src/git/tree-diff.c:654,1
    - Dst: clear_pathspec
      Src: /src/git/tree-diff.c:664,1
    - Dst: parse_pathspec
      Src: /src/git/tree-diff.c:665,1
    - Dst: diff_free_filepair
      Src: /src/git/tree-diff.c:687,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 4
    argNames:
    - old_oid
    - new_oid
    - base
    - opt
    argTypes:
    - struct object_id*
    - struct object_id*
    - struct strbuf*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 600
    functionDepth: 26
    functionLinenumber: 600
    functionLinenumberEnd: 696
    functionName: try_to_follow_renames
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 0
    functionsReached:
    - ll_diff_tree_oid
    - clear_pathspec
    - diff_free_filepair
    - GUARD_PATHSPEC
    - diffcore_std
    - diff_setup_done
    - strcmp
    - repo_diff_setup
    - parse_pathspec
    - BUG
    linkageType: ''
    returnType: void
    signature: "void try_to_follow_renames(const struct object_id *old_oid,\n\t\t\t\t
      \ const struct object_id *new_oid,\n\t\t\t\t  struct strbuf *base, struct diff_options
      *opt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_tree_paths
      Src: /src/git/tree-diff.c:706,1
    - Dst: free
      Src: /src/git/tree-diff.c:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - old_oid
    - new_oid
    - base
    - opt
    argTypes:
    - struct object_id*
    - struct object_id*
    - struct strbuf*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 698
    functionDepth: 8
    functionLinenumber: 698
    functionLinenumberEnd: 715
    functionName: ll_diff_tree_oid
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 1
    functionsReached:
    - diff_tree_paths
    - free
    linkageType: ''
    returnType: void
    signature: "void ll_diff_tree_oid(const struct object_id *old_oid,\n\t\t\t     const
      struct object_id *new_oid,\n\t\t\t     struct strbuf *base, struct diff_options
      *opt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/tree-diff.c:723,1
    - Dst: strbuf_addstr
      Src: /src/git/tree-diff.c:724,1
    - Dst: ll_diff_tree_oid
      Src: /src/git/tree-diff.c:726,1
    - Dst: diff_might_be_rename
      Src: /src/git/tree-diff.c:727,1
    - Dst: try_to_follow_renames
      Src: /src/git/tree-diff.c:728,1
    - Dst: strbuf_release
      Src: /src/git/tree-diff.c:730,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - old_oid
    - new_oid
    - base_str
    - opt
    argTypes:
    - struct object_id*
    - struct object_id*
    - char*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 27
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: diff_tree_oid
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 22
    functionsReached:
    - ll_diff_tree_oid
    - strbuf_release
    - try_to_follow_renames
    - strbuf_addstr
    - strbuf_init
    - diff_might_be_rename
    linkageType: ''
    returnType: void
    signature: "void diff_tree_oid(const struct object_id *old_oid,\n\t\t   const
      struct object_id *new_oid,\n\t\t   const char *base_str, struct diff_options
      *opt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: diff_tree_oid
      Src: /src/git/tree-diff.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - new_oid
    - base
    - opt
    argTypes:
    - struct object_id*
    - char*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 733
    functionDepth: 28
    functionLinenumber: 733
    functionLinenumberEnd: 738
    functionName: diff_root_tree_oid
    functionSourceFile: /src/git/tree-diff.c
    functionUses: 2
    functionsReached:
    - diff_tree_oid
    linkageType: ''
    returnType: void
    signature: "void diff_root_tree_oid(const struct object_id *new_oid,\n\t\t\tconst
      char *base,\n\t\t\tstruct diff_options *opt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_tempfile_mode
      Src: /src/git/tempfile.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: create_tempfile
    functionSourceFile: /src/git/tempfile.h
    functionUses: 0
    functionsReached:
    - create_tempfile_mode
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *create_tempfile(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mks_tempfile_sm
      Src: /src/git/tempfile.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename_template
    - suffixlen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 5
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: mks_tempfile_s
    functionSourceFile: /src/git/tempfile.h
    functionUses: 0
    functionsReached:
    - mks_tempfile_sm
    linkageType: ''
    returnType: struct tempfile
    signature: "struct tempfile *mks_tempfile_s(const char *filename_template,\n\t\t\t\t\t
      \     int suffixlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mks_tempfile_sm
      Src: /src/git/tempfile.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename_template
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 5
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: mks_tempfile_m
    functionSourceFile: /src/git/tempfile.h
    functionUses: 5
    functionsReached:
    - mks_tempfile_sm
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *mks_tempfile_m(const char *filename_template, int
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mks_tempfile_sm
      Src: /src/git/tempfile.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename_template
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: mks_tempfile
    functionSourceFile: /src/git/tempfile.h
    functionUses: 2
    functionsReached:
    - mks_tempfile_sm
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *mks_tempfile(const char *filename_template)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mks_tempfile_tsm
      Src: /src/git/tempfile.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename_template
    - suffixlen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: mks_tempfile_ts
    functionSourceFile: /src/git/tempfile.h
    functionUses: 0
    functionsReached:
    - mks_tempfile_tsm
    linkageType: ''
    returnType: struct tempfile
    signature: "struct tempfile *mks_tempfile_ts(const char *filename_template,\n\t\t\t\t\t
      \      int suffixlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mks_tempfile_tsm
      Src: /src/git/tempfile.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename_template
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: mks_tempfile_tm
    functionSourceFile: /src/git/tempfile.h
    functionUses: 0
    functionsReached:
    - mks_tempfile_tsm
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *mks_tempfile_tm(const char *filename_template, int
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mks_tempfile_tsm
      Src: /src/git/tempfile.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename_template
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 5
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: mks_tempfile_t
    functionSourceFile: /src/git/tempfile.h
    functionUses: 3
    functionsReached:
    - mks_tempfile_tsm
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *mks_tempfile_t(const char *filename_template)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmks_tempfile_m
      Src: /src/git/tempfile.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename_template
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: xmks_tempfile
    functionSourceFile: /src/git/tempfile.h
    functionUses: 2
    functionsReached:
    - xmks_tempfile_m
    linkageType: ''
    returnType: struct tempfile
    signature: struct tempfile *xmks_tempfile(const char *filename_template)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tempfile
    argTypes:
    - struct tempfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: is_tempfile_active
    functionSourceFile: /src/git/tempfile.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_tempfile_active(struct tempfile *tempfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: suppress
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void suppress(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suppress
      Src: /src/git/diff-merges.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: common_setup
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - suppress
    linkageType: ''
    returnType: void
    signature: void common_setup(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suppress
      Src: /src/git/diff-merges.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: set_none
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - suppress
    linkageType: ''
    returnType: void
    signature: void set_none(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_setup
      Src: /src/git/diff-merges.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: set_separate
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - common_setup
    linkageType: ''
    returnType: void
    signature: void set_separate(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_separate
      Src: /src/git/diff-merges.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: set_first_parent
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - set_separate
    linkageType: ''
    returnType: void
    signature: void set_first_parent(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_setup
      Src: /src/git/diff-merges.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: set_combined
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - common_setup
    linkageType: ''
    returnType: void
    signature: void set_combined(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_setup
      Src: /src/git/diff-merges.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: set_dense_combined
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - common_setup
    linkageType: ''
    returnType: void
    signature: void set_dense_combined(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_setup
      Src: /src/git/diff-merges.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: set_remerge_diff
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - common_setup
    linkageType: ''
    returnType: void
    signature: void set_remerge_diff(struct rev_info *revs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diff-merges.c:72,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:72,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:74,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:74,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:76,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:78,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:78,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:80,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:80,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:82,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:82,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:84,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:84,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 1
    argNames:
    - optarg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: func_by_opt
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: diff_merges_setup_func_t
    signature: diff_merges_setup_func_t func_by_opt(const char *optarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: func_by_opt
      Src: /src/git/diff-merges.c:91,1
    - Dst: die
      Src: /src/git/diff-merges.c:94,1
    - Dst: _
      Src: /src/git/diff-merges.c:94,1
    - Dst: func
      Src: /src/git/diff-merges.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - revs
    - optarg
    argTypes:
    - struct rev_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: set_diff_merges
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - func
    - func_by_opt
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void set_diff_merges(struct rev_info *revs, const char *optarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: func_by_opt
      Src: /src/git/diff-merges.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: diff_merges_config
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - func_by_opt
    linkageType: ''
    returnType: int
    signature: int diff_merges_config(const char *value)
  - 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: diff_merges_suppress_m_parsing
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diff_merges_suppress_m_parsing(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/diff-merges.c:125,1
    - Dst: set_to_default
      Src: /src/git/diff-merges.c:126,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:128,1
    - Dst: set_combined
      Src: /src/git/diff-merges.c:129,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:131,1
    - Dst: set_dense_combined
      Src: /src/git/diff-merges.c:132,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:134,1
    - Dst: set_first_parent
      Src: /src/git/diff-merges.c:135,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:137,1
    - Dst: set_remerge_diff
      Src: /src/git/diff-merges.c:138,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:140,1
    - Dst: set_none
      Src: /src/git/diff-merges.c:141,1
    - Dst: strcmp
      Src: /src/git/diff-merges.c:142,1
    - Dst: parse_long_opt
      Src: /src/git/diff-merges.c:144,1
    - Dst: set_diff_merges
      Src: /src/git/diff-merges.c:145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - revs
    - argv
    argTypes:
    - struct rev_info*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: diff_merges_parse_opts
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 1
    functionsReached:
    - set_to_default
    - set_dense_combined
    - set_diff_merges
    - set_none
    - strcmp
    - set_combined
    - parse_long_opt
    - set_remerge_diff
    - set_first_parent
    linkageType: ''
    returnType: int
    signature: int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_none
      Src: /src/git/diff-merges.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: diff_merges_suppress
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 1
    functionsReached:
    - set_none
    linkageType: ''
    returnType: void
    signature: void diff_merges_suppress(struct rev_info *revs)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: diff_merges_default_to_first_parent
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diff_merges_default_to_first_parent(struct rev_info *revs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_dense_combined
      Src: /src/git/diff-merges.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: diff_merges_default_to_dense_combined
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - set_dense_combined
    linkageType: ''
    returnType: void
    signature: void diff_merges_default_to_dense_combined(struct rev_info *revs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_dense_combined
      Src: /src/git/diff-merges.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: diff_merges_set_dense_combined_if_unset
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 0
    functionsReached:
    - set_dense_combined
    linkageType: ''
    returnType: void
    signature: void diff_merges_set_dense_combined_if_unset(struct rev_info *revs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/diff-merges.c:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: diff_merges_setup_revs
    functionSourceFile: /src/git/diff-merges.c
    functionUses: 1
    functionsReached:
    - die
    linkageType: ''
    returnType: void
    signature: void diff_merges_setup_revs(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - slabname
    - ','
    - elemtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 17
    functionName: declare_commit_slab
    functionSourceFile: /src/git/commit-slab-decl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: declare_commit_slab(slabname, elemtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stride
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: COMMIT_SLAB_INIT
    functionSourceFile: /src/git/commit-slab-decl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMMIT_SLAB_INIT(stride, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - slabname
    - ','
    - elemtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: declare_commit_slab_prototypes
    functionSourceFile: /src/git/commit-slab-decl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: declare_commit_slab_prototypes(slabname, elemtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - slabname
    - ','
    - elemtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: define_shared_commit_slab
    functionSourceFile: /src/git/commit-slab-decl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: define_shared_commit_slab(slabname, elemtype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_http_object_request
      Src: /src/git/http-walker.c:64,1
    - Dst: start_active_slot
      Src: /src/git/http-walker.c:77,1
    - Dst: release_http_object_request
      Src: /src/git/http-walker.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - obj_req
    argTypes:
    - struct object_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 82
    functionName: start_object_request
    functionSourceFile: /src/git/http-walker.c
    functionUses: 0
    functionsReached:
    - release_http_object_request
    - new_http_object_request
    - start_active_slot
    linkageType: ''
    returnType: void
    signature: void start_object_request(struct object_request *obj_req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: finish_http_object_request
      Src: /src/git/http-walker.c:86,1
    - Dst: walker_say
      Src: /src/git/http-walker.c:90,1
    - Dst: oid_to_hex
      Src: /src/git/http-walker.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - obj_req
    argTypes:
    - struct object_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: finish_object_request
    functionSourceFile: /src/git/http-walker.c
    functionUses: 0
    functionsReached:
    - finish_http_object_request
    - oid_to_hex
    - walker_say
    linkageType: ''
    returnType: void
    signature: void finish_object_request(struct object_request *obj_req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: process_http_object_request
      Src: /src/git/http-walker.c:101,1
    - Dst: normalize_curl_result
      Src: /src/git/http-walker.c:104,1
    - Dst: missing_target
      Src: /src/git/http-walker.c:110,1
    - Dst: fetch_alternates
      Src: /src/git/http-walker.c:111,1
    - Dst: release_http_object_request
      Src: /src/git/http-walker.c:115,1
    - Dst: start_object_request
      Src: /src/git/http-walker.c:116,1
    - Dst: finish_object_request
      Src: /src/git/http-walker.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - callback_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 122
    functionName: process_object_response
    functionSourceFile: /src/git/http-walker.c
    functionUses: 0
    functionsReached:
    - start_object_request
    - release_http_object_request
    - finish_object_request
    - process_http_object_request
    - normalize_curl_result
    - fetch_alternates
    - missing_target
    linkageType: ''
    returnType: void
    signature: void process_object_response(void *callback_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/http-walker.c:127,1
    - Dst: list_del
      Src: /src/git/http-walker.c:129,1
    - Dst: free
      Src: /src/git/http-walker.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - obj_req
    argTypes:
    - struct object_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: release_object_request
    functionSourceFile: /src/git/http-walker.c
    functionUses: 0
    functionsReached:
    - error
    - list_del
    - free
    linkageType: ''
    returnType: void
    signature: void release_object_request(struct object_request *obj_req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/http-walker.c:139,1
    - Dst: odb_has_object
      Src: /src/git/http-walker.c:141,1
    - Dst: start_object_request
      Src: /src/git/http-walker.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 133
    functionDepth: 12
    functionLinenumber: 133
    functionLinenumberEnd: 151
    functionName: fill_active_slot
    functionSourceFile: /src/git/http-walker.c
    functionUses: 0
    functionsReached:
    - odb_has_object
    - list_entry
    - start_object_request
    linkageType: ''
    returnType: int
    signature: int fill_active_slot(void *data UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/http-walker.c:139,1
    - Dst: odb_has_object
      Src: /src/git/http-walker.c:141,1
    - Dst: start_object_request
      Src: /src/git/http-walker.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 12
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: list_for_each_safe
    functionSourceFile: /src/git/http-walker.c
    functionUses: 3
    functionsReached:
    - odb_has_object
    - list_entry
    - start_object_request
    linkageType: ''
    returnType: void
    signature: void list_for_each_safe(pos, tmp, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/http-walker.c:158,1
    - Dst: oidcpy
      Src: /src/git/http-walker.c:160,1
    - Dst: list_add_tail
      Src: /src/git/http-walker.c:166,1
    - Dst: fill_active_slots
      Src: /src/git/http-walker.c:168,1
    - Dst: step_active_slots
      Src: /src/git/http-walker.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - walker
    - oid
    argTypes:
    - struct walker*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: prefetch
    functionSourceFile: /src/git/http-walker.c
    functionUses: 2
    functionsReached:
    - oidcpy
    - step_active_slots
    - list_add_tail
    - fill_active_slots
    - xmalloc
    linkageType: ''
    returnType: void
    signature: void prefetch(struct walker *walker, const struct object_id *oid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/http-walker.c:180,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http-walker.c:184,1
    - Dst: skip_prefix
      Src: /src/git/http-walker.c:186,1
    - Dst: starts_with
      Src: /src/git/http-walker.c:187,1
    - Dst: ARRAY_SIZE
      Src: /src/git/http-walker.c:191,1
    - Dst: warning
      Src: /src/git/http-walker.c:192,1
    - Dst: is_transport_allowed
      Src: /src/git/http-walker.c:195,1
    - Dst: warning
      Src: /src/git/http-walker.c:196,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 201
    functionName: is_alternate_allowed
    functionSourceFile: /src/git/http-walker.c
    functionUses: 0
    functionsReached:
    - is_transport_allowed
    - ARRAY_SIZE
    - skip_prefix
    - starts_with
    - warning
    linkageType: ''
    returnType: int
    signature: int is_alternate_allowed(const char *url)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: normalize_curl_result
      Src: /src/git/http-walker.c:216,1
    - Dst: strbuf_reset
      Src: /src/git/http-walker.c:225,1
    - Dst: strbuf_addf
      Src: /src/git/http-walker.c:226,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-walker.c:228,1
    - Dst: start_active_slot
      Src: /src/git/http-walker.c:234,1
    - Dst: missing_target
      Src: /src/git/http-walker.c:243,1
    - Dst: fwrite_buffer
      Src: /src/git/http-walker.c:249,1
    - Dst: strstr
      Src: /src/git/http-walker.c:269,1
    - Dst: strchrnul
      Src: /src/git/http-walker.c:271,1
    - Dst: memcmp
      Src: /src/git/http-walker.c:275,1
    - Dst: strlen
      Src: /src/git/http-walker.c:295,1
    - Dst: memcmp
      Src: /src/git/http-walker.c:297,1
    - Dst: strchr
      Src: /src/git/http-walker.c:305,1
    - Dst: strchr
      Src: /src/git/http-walker.c:308,1
    - Dst: strchr
      Src: /src/git/http-walker.c:309,1
    - Dst: strbuf_add
      Src: /src/git/http-walker.c:317,1
    - Dst: strbuf_add
      Src: /src/git/http-walker.c:318,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/http-walker.c:319,1
    - Dst: warning
      Src: /src/git/http-walker.c:320,1
    - Dst: strbuf_release
      Src: /src/git/http-walker.c:323,1
    - Dst: is_alternate_allowed
      Src: /src/git/http-walker.c:324,1
    - Dst: warning
      Src: /src/git/http-walker.c:325,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/http-walker.c:327,1
    - Dst: strbuf_detach
      Src: /src/git/http-walker.c:328,1
    - Dst: strbuf_release
      Src: /src/git/http-walker.c:334,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 78
    argCount: 1
    argNames:
    - callback_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 342
    functionName: process_alternates_response
    functionSourceFile: /src/git/http-walker.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strchr
    - CALLOC_ARRAY
    - strbuf_release
    - strstr
    - is_alternate_allowed
    - strchrnul
    - curl_easy_setopt
    - strbuf_strip_suffix
    - strbuf_detach
    - warning
    - strbuf_add
    - start_active_slot
    - strbuf_reset
    - fwrite_buffer
    - strlen
    - normalize_curl_result
    - missing_target
    - memcmp
    linkageType: ''
    returnType: void
    signature: void process_alternates_response(void *callback_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: step_active_slots
      Src: /src/git/http-walker.c:358,1
    - Dst: fprintf
      Src: /src/git/http-walker.c:369,1
    - Dst: strbuf_addf
      Src: /src/git/http-walker.c:371,1
    - Dst: get_active_slot
      Src: /src/git/http-walker.c:377,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-walker.c:382,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-walker.c:383,1
    - Dst: curl_easy_setopt
      Src: /src/git/http-walker.c:384,1
    - Dst: start_active_slot
      Src: /src/git/http-walker.c:392,1
    - Dst: run_active_slot
      Src: /src/git/http-walker.c:393,1
    - Dst: strbuf_release
      Src: /src/git/http-walker.c:397,1
    - Dst: strbuf_release
      Src: /src/git/http-walker.c:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - walker
    - base
    argTypes:
    - struct walker*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 399
    functionName: fetch_alternates
    functionSourceFile: /src/git/http-walker.c
    functionUses: 1
    functionsReached:
    - run_active_slot
    - strbuf_release
    - start_active_slot
    - step_active_slots
    - strbuf_addf
    - fprintf
    - get_active_slot
    - curl_easy_setopt
    linkageType: ''
    returnType: void
    signature: void fetch_alternates(struct walker *walker, const char *base)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/http-walker.c:409,1
    - Dst: http_get_info_packs
      Src: /src/git/http-walker.c:411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - walker
    - repo
    argTypes:
    - struct walker*
    - struct alt_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 401
    functionDepth: 12
    functionLinenumber: 401
    functionLinenumberEnd: 423
    functionName: fetch_indices
    functionSourceFile: /src/git/http-walker.c
    functionUses: 1
    functionsReached:
    - fprintf
    - http_get_info_packs
    linkageType: ''
    returnType: int
    signature: int fetch_indices(struct walker *walker, struct alt_base *repo)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fetch_indices
      Src: /src/git/http-walker.c:433,1
    - Dst: packfile_list_find_oid
      Src: /src/git/http-walker.c:435,1
    - Dst: close_pack_index
      Src: /src/git/http-walker.c:438,1
    - Dst: fprintf
      Src: /src/git/http-walker.c:441,1
    - Dst: hash_to_hex
      Src: /src/git/http-walker.c:442,1
    - Dst: fprintf
      Src: /src/git/http-walker.c:443,1
    - Dst: oid_to_hex
      Src: /src/git/http-walker.c:444,1
    - Dst: new_http_pack_request
      Src: /src/git/http-walker.c:447,1
    - Dst: start_active_slot
      Src: /src/git/http-walker.c:452,1
    - Dst: run_active_slot
      Src: /src/git/http-walker.c:453,1
    - Dst: error
      Src: /src/git/http-walker.c:455,1
    - Dst: error
      Src: /src/git/http-walker.c:460,1
    - Dst: finish_http_pack_request
      Src: /src/git/http-walker.c:464,1
    - Dst: release_http_pack_request
      Src: /src/git/http-walker.c:465,1
    - Dst: http_install_packfile
      Src: /src/git/http-walker.c:468,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - walker
    - repo
    - oid
    argTypes:
    - struct walker*
    - struct alt_base*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 425
    functionDepth: 5
    functionLinenumber: 425
    functionLinenumberEnd: 474
    functionName: http_fetch_pack
    functionSourceFile: /src/git/http-walker.c
    functionUses: 0
    functionsReached:
    - run_active_slot
    - error
    - close_pack_index
    - oid_to_hex
    - hash_to_hex
    - release_http_pack_request
    - new_http_pack_request
    - packfile_list_find_oid
    - finish_http_pack_request
    - http_install_packfile
    - fetch_indices
    - fprintf
    - start_active_slot
    linkageType: ''
    returnType: int
    signature: "int http_fetch_pack(struct walker *walker, struct alt_base *repo,\n\t\t\t
      \  const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_object_request
      Src: /src/git/http-walker.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj_req
    argTypes:
    - struct object_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: abort_object_request
    functionSourceFile: /src/git/http-walker.c
    functionUses: 0
    functionsReached:
    - release_object_request
    linkageType: ''
    returnType: void
    signature: void abort_object_request(struct object_request *obj_req)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/http-walker.c:483,1
    - Dst: list_entry
      Src: /src/git/http-walker.c:490,1
    - Dst: oideq
      Src: /src/git/http-walker.c:491,1
    - Dst: error
      Src: /src/git/http-walker.c:495,1
    - Dst: odb_has_object
      Src: /src/git/http-walker.c:497,1
    - Dst: abort_http_object_request
      Src: /src/git/http-walker.c:500,1
    - Dst: abort_object_request
      Src: /src/git/http-walker.c:501,1
    - Dst: step_active_slots
      Src: /src/git/http-walker.c:506,1
    - Dst: run_active_slot
      Src: /src/git/http-walker.c:514,1
    - Dst: close
      Src: /src/git/http-walker.c:519,1
    - Dst: normalize_curl_result
      Src: /src/git/http-walker.c:523,1
    - Dst: error
      Src: /src/git/http-walker.c:527,1
    - Dst: missing_target
      Src: /src/git/http-walker.c:530,1
    - Dst: error
      Src: /src/git/http-walker.c:533,1
    - Dst: error
      Src: /src/git/http-walker.c:538,1
    - Dst: oideq
      Src: /src/git/http-walker.c:539,1
    - Dst: error
      Src: /src/git/http-walker.c:540,1
    - Dst: odb_loose_path
      Src: /src/git/http-walker.c:543,1
    - Dst: error
      Src: /src/git/http-walker.c:544,1
    - Dst: strbuf_release
      Src: /src/git/http-walker.c:545,1
    - Dst: release_http_object_request
      Src: /src/git/http-walker.c:548,1
    - Dst: release_object_request
      Src: /src/git/http-walker.c:549,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - walker
    - oid
    argTypes:
    - struct walker*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 481
    functionDepth: 12
    functionLinenumber: 481
    functionLinenumberEnd: 551
    functionName: fetch_object
    functionSourceFile: /src/git/http-walker.c
    functionUses: 0
    functionsReached:
    - error
    - run_active_slot
    - strbuf_release
    - oid_to_hex
    - release_http_object_request
    - abort_object_request
    - step_active_slots
    - list_entry
    - odb_has_object
    - normalize_curl_result
    - release_object_request
    - odb_loose_path
    - close
    - missing_target
    - oideq
    - abort_http_object_request
    linkageType: ''
    returnType: int
    signature: int fetch_object(struct walker *walker, const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/http-walker.c:490,1
    - Dst: oideq
      Src: /src/git/http-walker.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: list_for_each
    functionSourceFile: /src/git/http-walker.c
    functionUses: 7
    functionsReached:
    - oideq
    - list_entry
    linkageType: ''
    returnType: void
    signature: void list_for_each(pos, head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fetch_object
      Src: /src/git/http-walker.c:558,1
    - Dst: http_fetch_pack
      Src: /src/git/http-walker.c:561,1
    - Dst: fetch_alternates
      Src: /src/git/http-walker.c:563,1
    - Dst: error
      Src: /src/git/http-walker.c:566,1
    - Dst: oid_to_hex
      Src: /src/git/http-walker.c:566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - walker
    - oid
    argTypes:
    - struct walker*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 553
    functionDepth: 13
    functionLinenumber: 553
    functionLinenumberEnd: 568
    functionName: fetch
    functionSourceFile: /src/git/http-walker.c
    functionUses: 18
    functionsReached:
    - error
    - oid_to_hex
    - fetch_object
    - http_fetch_pack
    - fetch_alternates
    linkageType: ''
    returnType: int
    signature: int fetch(struct walker *walker, const struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_fetch_ref
      Src: /src/git/http-walker.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - walker
    - ref
    argTypes:
    - struct walker*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 10
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: fetch_ref
    functionSourceFile: /src/git/http-walker.c
    functionUses: 4
    functionsReached:
    - http_fetch_ref
    linkageType: ''
    returnType: int
    signature: int fetch_ref(struct walker *walker, struct ref *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_pack
      Src: /src/git/http-walker.c:589,1
    - Dst: free
      Src: /src/git/http-walker.c:590,1
    - Dst: packfile_list_clear
      Src: /src/git/http-walker.c:592,1
    - Dst: free
      Src: /src/git/http-walker.c:594,1
    - Dst: free
      Src: /src/git/http-walker.c:595,1
    - Dst: free
      Src: /src/git/http-walker.c:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - walker
    argTypes:
    - struct walker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 602
    functionName: cleanup
    functionSourceFile: /src/git/http-walker.c
    functionUses: 20
    functionsReached:
    - packfile_list_clear
    - close_pack
    - free
    linkageType: ''
    returnType: void
    signature: void cleanup(struct walker *walker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/http-walker.c:607,1
    - Dst: xmalloc
      Src: /src/git/http-walker.c:608,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/http-walker.c:610,1
    - Dst: xstrdup
      Src: /src/git/http-walker.c:611,1
    - Dst: strlen
      Src: /src/git/http-walker.c:612,1
    - Dst: add_fill_function
      Src: /src/git/http-walker.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 627
    functionName: get_http_walker
    functionSourceFile: /src/git/http-walker.c
    functionUses: 2
    functionsReached:
    - xmalloc
    - strlen
    - CALLOC_ARRAY
    - add_fill_function
    - xstrdup
    linkageType: ''
    returnType: struct walker
    signature: struct walker *get_http_walker(const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: XY2LINEAR
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XY2LINEAR(d, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utf8_strnwidth
      Src: /src/git/column.c:29,1
    - Dst: strlen
      Src: /src/git/column.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: item_length
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - strlen
    - utf8_strnwidth
    linkageType: ''
    returnType: int
    signature: int item_length(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/column.c:47,1
    - Dst: DIV_ROUND_UP
      Src: /src/git/column.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - data
    - width
    argTypes:
    - struct column_data*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: layout
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - strlen
    - DIV_ROUND_UP
    linkageType: ''
    returnType: void
    signature: void layout(struct column_data *data, int *width)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XY2LINEAR
      Src: /src/git/column.c:58,1
    - Dst: XY2LINEAR
      Src: /src/git/column.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct column_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: compute_column_width
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - XY2LINEAR
    linkageType: ''
    returnType: void
    signature: void compute_column_width(struct column_data *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC_ARRAY
      Src: /src/git/column.c:77,1
    - Dst: DIV_ROUND_UP
      Src: /src/git/column.c:84,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/column.c:86,1
    - Dst: compute_column_width
      Src: /src/git/column.c:87,1
    - Dst: strlen
      Src: /src/git/column.c:89,1
    - Dst: compute_column_width
      Src: /src/git/column.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct column_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 101
    functionName: shrink_columns
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - compute_column_width
    - REALLOC_ARRAY
    - DIV_ROUND_UP
    - strlen
    linkageType: ''
    returnType: void
    signature: void shrink_columns(struct column_data *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/column.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - list
    - indent
    - nl
    argTypes:
    - struct string_list*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: display_plain
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void display_plain(const struct string_list *list,\n\t\t\t  const
      char *indent, const char *nl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XY2LINEAR
      Src: /src/git/column.c:119,1
    - Dst: COL_LAYOUT
      Src: /src/git/column.c:134,1
    - Dst: printf
      Src: /src/git/column.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - data
    - initial_width
    - empty_cell
    - x
    - y
    argTypes:
    - struct column_data*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 144
    functionName: display_cell
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - XY2LINEAR
    - printf
    - COL_LAYOUT
    linkageType: ''
    returnType: int
    signature: "int display_cell(struct column_data *data, int initial_width,\n\t\t\tconst
      char *empty_cell, int x, int y)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/column.c:155,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/column.c:160,1
    - Dst: item_length
      Src: /src/git/column.c:162,1
    - Dst: layout
      Src: /src/git/column.c:164,1
    - Dst: shrink_columns
      Src: /src/git/column.c:167,1
    - Dst: xmallocz
      Src: /src/git/column.c:169,1
    - Dst: memset
      Src: /src/git/column.c:170,1
    - Dst: display_cell
      Src: /src/git/column.c:173,1
    - Dst: free
      Src: /src/git/column.c:177,1
    - Dst: free
      Src: /src/git/column.c:178,1
    - Dst: free
      Src: /src/git/column.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - list
    - colopts
    - opts
    argTypes:
    - struct string_list*
    - unsigned int
    - struct column_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 9
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: display_table
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - layout
    - memset
    - display_cell
    - xmallocz
    - ALLOC_ARRAY
    - free
    - item_length
    - shrink_columns
    linkageType: ''
    returnType: void
    signature: "void display_table(const struct string_list *list,\n\t\t\t  unsigned
      int colopts,\n\t\t\t  const struct column_options *opts)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/column.c:188,1
    - Dst: assert
      Src: /src/git/column.c:191,1
    - Dst: memset
      Src: /src/git/column.c:193,1
    - Dst: term_columns
      Src: /src/git/column.c:197,1
    - Dst: column_active
      Src: /src/git/column.c:198,1
    - Dst: display_plain
      Src: /src/git/column.c:199,1
    - Dst: COL_LAYOUT
      Src: /src/git/column.c:202,1
    - Dst: display_plain
      Src: /src/git/column.c:204,1
    - Dst: display_table
      Src: /src/git/column.c:208,1
    - Dst: BUG
      Src: /src/git/column.c:211,1
    - Dst: COL_LAYOUT
      Src: /src/git/column.c:211,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - list
    - colopts
    - opts
    argTypes:
    - struct string_list*
    - unsigned int
    - struct column_options*
    assertStmts:
    - condition: ((colopts & COL_ENABLE_MASK) != COL_AUTO)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/git/column.c
    constantsTouched: []
    func_position:
      end: 213
      start: 182
    functionDepth: 10
    functionLinenumber: 182
    functionLinenumberEnd: 213
    functionName: print_columns
    functionSourceFile: /src/git/column.c
    functionUses: 2
    functionsReached:
    - memset
    - assert
    - column_active
    - display_table
    - term_columns
    - BUG
    - COL_LAYOUT
    - display_plain
    linkageType: ''
    returnType: void
    signature: "void print_columns(const struct string_list *list, unsigned int colopts,\n\t\t
      \  const struct column_options *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/column.c:219,1
    - Dst: pager_in_use
      Src: /src/git/column.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - colopts
    - stdout_is_tty
    argTypes:
    - unsigned int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 225
    functionName: finalize_colopts
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - isatty
    - pager_in_use
    linkageType: ''
    returnType: int
    signature: int finalize_colopts(unsigned int *colopts, int stdout_is_tty)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/column.c:250,1
    - Dst: strncmp
      Src: /src/git/column.c:255,1
    - Dst: strlen
      Src: /src/git/column.c:262,1
    - Dst: strncmp
      Src: /src/git/column.c:264,1
    - Dst: error
      Src: /src/git/column.c:287,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - arg
    - len
    - colopts
    - group_set
    argTypes:
    - char*
    - int
    - unsigned int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 288
    functionName: parse_option
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - error
    - ARRAY_SIZE
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int parse_option(const char *arg, int len, unsigned int *colopts,\n\t\t\tint
      *group_set)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/git/column.c:296,1
    - Dst: parse_option
      Src: /src/git/column.c:298,1
    - Dst: strspn
      Src: /src/git/column.c:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - colopts
    - value
    argTypes:
    - unsigned int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 316
    functionName: parse_config
    functionSourceFile: /src/git/column.c
    functionUses: 2
    functionsReached:
    - strspn
    - parse_option
    - strcspn
    linkageType: ''
    returnType: int
    signature: int parse_config(unsigned int *colopts, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: config_error_nonbool
      Src: /src/git/column.c:322,1
    - Dst: parse_config
      Src: /src/git/column.c:323,1
    - Dst: error
      Src: /src/git/column.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - var
    - value
    - key
    - colopts
    argTypes:
    - char*
    - char*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 326
    functionName: column_config
    functionSourceFile: /src/git/column.c
    functionUses: 1
    functionsReached:
    - error
    - parse_config
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int column_config(const char *var, const char *value,\n\t\t\t const
      char *key, unsigned int *colopts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/column.c:333,1
    - Dst: strcmp
      Src: /src/git/column.c:336,1
    - Dst: column_config
      Src: /src/git/column.c:337,1
    - Dst: strcmp
      Src: /src/git/column.c:339,1
    - Dst: column_config
      Src: /src/git/column.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - var
    - value
    - command
    - colopts
    argTypes:
    - char*
    - char*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 343
    functionName: git_column_config
    functionSourceFile: /src/git/column.c
    functionUses: 1
    functionsReached:
    - skip_prefix
    - column_config
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_column_config(const char *var, const char *value,\n\t\t      const
      char *command, unsigned int *colopts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_config
      Src: /src/git/column.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 359
    functionName: parseopt_column_callback
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - parse_config
    linkageType: ''
    returnType: int
    signature: "int parseopt_column_callback(const struct option *opt,\n\t\t\t     const
      char *arg, int unset)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/column.c:369,1
    - Dst: child_process_init
      Src: /src/git/column.c:373,1
    - Dst: strvec_push
      Src: /src/git/column.c:376,1
    - Dst: strvec_pushf
      Src: /src/git/column.c:377,1
    - Dst: strvec_pushf
      Src: /src/git/column.c:379,1
    - Dst: strvec_pushf
      Src: /src/git/column.c:381,1
    - Dst: strvec_pushf
      Src: /src/git/column.c:383,1
    - Dst: fflush
      Src: /src/git/column.c:385,1
    - Dst: dup
      Src: /src/git/column.c:387,1
    - Dst: start_command
      Src: /src/git/column.c:390,1
    - Dst: dup
      Src: /src/git/column.c:393,1
    - Dst: close
      Src: /src/git/column.c:394,1
    - Dst: dup2
      Src: /src/git/column.c:395,1
    - Dst: close
      Src: /src/git/column.c:396,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - colopts
    - opts
    argTypes:
    - int
    - struct column_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 364
    functionDepth: 7
    functionLinenumber: 364
    functionLinenumberEnd: 398
    functionName: run_column_filter
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - dup
    - child_process_init
    - dup2
    - fflush
    - close
    - BUG
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: int
    signature: int run_column_filter(int colopts, const struct column_options *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/git/column.c:405,1
    - Dst: close
      Src: /src/git/column.c:406,1
    - Dst: finish_command
      Src: /src/git/column.c:407,1
    - Dst: dup2
      Src: /src/git/column.c:408,1
    - Dst: close
      Src: /src/git/column.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 400
    functionDepth: 4
    functionLinenumber: 400
    functionLinenumberEnd: 412
    functionName: stop_column_filter
    functionSourceFile: /src/git/column.c
    functionUses: 0
    functionsReached:
    - close
    - dup2
    - fflush
    - finish_command
    linkageType: ''
    returnType: int
    signature: int stop_column_filter(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/parse-options-cb.c:27,1
    - Dst: _
      Src: /src/git/parse-options-cb.c:27,1
    - Dst: strtol
      Src: /src/git/parse-options-cb.c:29,1
    - Dst: error
      Src: /src/git/parse-options-cb.c:31,1
    - Dst: _
      Src: /src/git/parse-options-cb.c:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: parse_opt_abbrev_cb
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - error
    - strtol
    - _
    linkageType: ''
    returnType: int
    signature: int parse_opt_abbrev_cb(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_expiry_date
      Src: /src/git/parse-options-cb.c:45,1
    - Dst: die
      Src: /src/git/parse-options-cb.c:46,1
    - Dst: _
      Src: /src/git/parse-options-cb.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: parse_opt_expiry_date_cb
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - parse_expiry_date
    linkageType: ''
    returnType: int
    signature: "int parse_opt_expiry_date_cb(const struct option *opt, const char
      *arg,\n\t\t\t     int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_config_colorbool
      Src: /src/git/parse-options-cb.c:57,1
    - Dst: error
      Src: /src/git/parse-options-cb.c:59,1
    - Dst: _
      Src: /src/git/parse-options-cb.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: parse_opt_color_flag_cb
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - git_config_colorbool
    - error
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_opt_color_flag_cb(const struct option *opt, const char *arg,\n\t\t\t
      \   int unset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/parse-options-cb.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: parse_opt_verbosity_cb
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int parse_opt_verbosity_cb(const struct option *opt, const char *arg,\n\t\t\t
      \  int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/parse-options-cb.c:94,1
    - Dst: repo_get_oid
      Src: /src/git/parse-options-cb.c:98,1
    - Dst: error
      Src: /src/git/parse-options-cb.c:99,1
    - Dst: lookup_commit_reference
      Src: /src/git/parse-options-cb.c:100,1
    - Dst: error
      Src: /src/git/parse-options-cb.c:102,1
    - Dst: commit_list_insert
      Src: /src/git/parse-options-cb.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: parse_opt_commits
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - error
    - commit_list_insert
    - lookup_commit_reference
    - repo_get_oid
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: int parse_opt_commits(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/parse-options-cb.c:113,1
    - Dst: repo_get_oid
      Src: /src/git/parse-options-cb.c:117,1
    - Dst: error
      Src: /src/git/parse-options-cb.c:118,1
    - Dst: lookup_commit_reference
      Src: /src/git/parse-options-cb.c:119,1
    - Dst: error
      Src: /src/git/parse-options-cb.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 7
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: parse_opt_commit
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - error
    - repo_get_oid
    - BUG_ON_OPT_NEG
    - lookup_commit_reference
    linkageType: ''
    returnType: int
    signature: int parse_opt_commit(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_clear
      Src: /src/git/parse-options-cb.c:131,1
    - Dst: repo_get_oid
      Src: /src/git/parse-options-cb.c:136,1
    - Dst: error
      Src: /src/git/parse-options-cb.c:137,1
    - Dst: _
      Src: /src/git/parse-options-cb.c:137,1
    - Dst: oid_array_append
      Src: /src/git/parse-options-cb.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: parse_opt_object_name
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - error
    - repo_get_oid
    - oid_array_clear
    - _
    - oid_array_append
    linkageType: ''
    returnType: int
    signature: int parse_opt_object_name(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/parse-options-cb.c:148,1
    - Dst: null_oid
      Src: /src/git/parse-options-cb.c:148,1
    - Dst: repo_get_oid
      Src: /src/git/parse-options-cb.c:153,1
    - Dst: error
      Src: /src/git/parse-options-cb.c:154,1
    - Dst: _
      Src: /src/git/parse-options-cb.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 157
    functionName: parse_opt_object_id
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - error
    - oidcpy
    - repo_get_oid
    - _
    - null_oid
    linkageType: ''
    returnType: int
    signature: int parse_opt_object_id(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/parse-options-cb.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: parse_opt_tertiary
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: int parse_opt_tertiary(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: parse_options_count
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parse_options_count(const struct option *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/parse-options-cb.c:180,1
    - Dst: parse_options_concat
      Src: /src/git/parse-options-cb.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: parse_options_dup
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - parse_options_concat
    linkageType: ''
    returnType: struct option
    signature: struct option *parse_options_dup(const struct option *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_options_count
      Src: /src/git/parse-options-cb.c:189,1
    - Dst: parse_options_count
      Src: /src/git/parse-options-cb.c:190,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/parse-options-cb.c:192,1
    - Dst: st_add3
      Src: /src/git/parse-options-cb.c:192,1
    - Dst: COPY_ARRAY
      Src: /src/git/parse-options-cb.c:193,1
    - Dst: COPY_ARRAY
      Src: /src/git/parse-options-cb.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct option*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: parse_options_concat
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 2
    functionsReached:
    - COPY_ARRAY
    - parse_options_count
    - ALLOC_ARRAY
    - st_add3
    linkageType: ''
    returnType: struct option
    signature: "struct option *parse_options_concat(const struct option *a,\n\t\t\t\t
      \   const struct option *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/parse-options-cb.c:204,1
    - Dst: string_list_append
      Src: /src/git/parse-options-cb.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 213
    functionName: parse_opt_string_list
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int parse_opt_string_list(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_clear
      Src: /src/git/parse-options-cb.c:220,1
    - Dst: strvec_push
      Src: /src/git/parse-options-cb.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: parse_opt_strvec
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_clear
    linkageType: ''
    returnType: int
    signature: int parse_opt_strvec(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - UNUSED
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: parse_opt_noop_cb
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int parse_opt_noop_cb(const struct option *opt UNUSED,\n\t\t      const
      char *arg UNUSED,\n\t\t      int unset UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/parse-options-cb.c:244,1
    - Dst: strbuf_addstr
      Src: /src/git/parse-options-cb.c:247,1
    - Dst: strbuf_addstr
      Src: /src/git/parse-options-cb.c:248,1
    - Dst: strbuf_addch
      Src: /src/git/parse-options-cb.c:250,1
    - Dst: strbuf_addstr
      Src: /src/git/parse-options-cb.c:251,1
    - Dst: strbuf_addch
      Src: /src/git/parse-options-cb.c:254,1
    - Dst: strbuf_addch
      Src: /src/git/parse-options-cb.c:255,1
    - Dst: strbuf_addstr
      Src: /src/git/parse-options-cb.c:257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - sb
    - opt
    - arg
    - unset
    argTypes:
    - struct strbuf*
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 241
    functionDepth: 4
    functionLinenumber: 241
    functionLinenumberEnd: 262
    functionName: recreate_opt
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: "int recreate_opt(struct strbuf *sb, const struct option *opt,\n\t\tconst
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recreate_opt
      Src: /src/git/parse-options-cb.c:276,1
    - Dst: free
      Src: /src/git/parse-options-cb.c:279,1
    - Dst: strbuf_detach
      Src: /src/git/parse-options-cb.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: parse_opt_passthru
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - recreate_opt
    - strbuf_detach
    - free
    linkageType: ''
    returnType: int
    signature: int parse_opt_passthru(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recreate_opt
      Src: /src/git/parse-options-cb.c:297,1
    - Dst: strvec_push
      Src: /src/git/parse-options-cb.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 292
    functionDepth: 5
    functionLinenumber: 292
    functionLinenumberEnd: 303
    functionName: parse_opt_passthru_argv
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - recreate_opt
    linkageType: ''
    returnType: int
    signature: int parse_opt_passthru_argv(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/parse-options-cb.c:309,1
    - Dst: strcmp
      Src: /src/git/parse-options-cb.c:311,1
    - Dst: error
      Src: /src/git/parse-options-cb.c:314,1
    - Dst: _
      Src: /src/git/parse-options-cb.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 318
    functionName: parse_opt_tracking_mode
    functionSourceFile: /src/git/parse-options-cb.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_opt_tracking_mode(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - base
    - exp
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: gitexp
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double gitexp(double base, int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gitexp
      Src: /src/git/pseudo-merge.c:81,1
    - Dst: gitexp
      Src: /src/git/pseudo-merge.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - group
    - matches
    - i
    argTypes:
    - struct pseudo_merge_group*
    - struct pseudo_merge_matches*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 85
    functionName: pseudo_merge_group_size
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - gitexp
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t pseudo_merge_group_size(const struct pseudo_merge_group *group,\n\t\t\t\t\tconst
      struct pseudo_merge_matches *matches,\n\t\t\t\t\tuint32_t i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/pseudo-merge.c:89,1
    - Dst: strmap_init_with_options
      Src: /src/git/pseudo-merge.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - group
    argTypes:
    - struct pseudo_merge_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: pseudo_merge_group_init
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - memset
    - strmap_init_with_options
    linkageType: ''
    returnType: void
    signature: void pseudo_merge_group_init(struct pseudo_merge_group *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regfree
      Src: /src/git/pseudo-merge.c:106,1
    - Dst: free
      Src: /src/git/pseudo-merge.c:107,1
    - Dst: strmap_for_each_entry
      Src: /src/git/pseudo-merge.c:109,1
    - Dst: free
      Src: /src/git/pseudo-merge.c:111,1
    - Dst: free
      Src: /src/git/pseudo-merge.c:112,1
    - Dst: free
      Src: /src/git/pseudo-merge.c:113,1
    - Dst: strmap_clear
      Src: /src/git/pseudo-merge.c:115,1
    - Dst: free
      Src: /src/git/pseudo-merge.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - struct pseudo_merge_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 118
    functionName: pseudo_merge_group_release
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 1
    functionsReached:
    - strmap_for_each_entry
    - regfree
    - strmap_clear
    - free
    linkageType: ''
    returnType: void
    signature: void pseudo_merge_group_release(struct pseudo_merge_group *group)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/pseudo-merge.c:132,1
    - Dst: strbuf_add
      Src: /src/git/pseudo-merge.c:138,1
    - Dst: string_list_lookup
      Src: /src/git/pseudo-merge.c:140,1
    - Dst: string_list_insert
      Src: /src/git/pseudo-merge.c:142,1
    - Dst: xmalloc
      Src: /src/git/pseudo-merge.c:144,1
    - Dst: pseudo_merge_group_init
      Src: /src/git/pseudo-merge.c:145,1
    - Dst: strcmp
      Src: /src/git/pseudo-merge.c:150,1
    - Dst: regfree
      Src: /src/git/pseudo-merge.c:154,1
    - Dst: free
      Src: /src/git/pseudo-merge.c:155,1
    - Dst: strbuf_addch
      Src: /src/git/pseudo-merge.c:158,1
    - Dst: strbuf_addstr
      Src: /src/git/pseudo-merge.c:159,1
    - Dst: xcalloc
      Src: /src/git/pseudo-merge.c:161,1
    - Dst: regcomp
      Src: /src/git/pseudo-merge.c:162,1
    - Dst: die
      Src: /src/git/pseudo-merge.c:163,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:163,1
    - Dst: strbuf_release
      Src: /src/git/pseudo-merge.c:166,1
    - Dst: strcmp
      Src: /src/git/pseudo-merge.c:167,1
    - Dst: git_config_double
      Src: /src/git/pseudo-merge.c:168,1
    - Dst: warning
      Src: /src/git/pseudo-merge.c:170,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:170,1
    - Dst: strcmp
      Src: /src/git/pseudo-merge.c:173,1
    - Dst: git_config_double
      Src: /src/git/pseudo-merge.c:174,1
    - Dst: warning
      Src: /src/git/pseudo-merge.c:176,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:176,1
    - Dst: strcmp
      Src: /src/git/pseudo-merge.c:179,1
    - Dst: git_config_expiry_date
      Src: /src/git/pseudo-merge.c:180,1
    - Dst: strcmp
      Src: /src/git/pseudo-merge.c:184,1
    - Dst: git_config_int
      Src: /src/git/pseudo-merge.c:185,1
    - Dst: warning
      Src: /src/git/pseudo-merge.c:187,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:187,1
    - Dst: strcmp
      Src: /src/git/pseudo-merge.c:190,1
    - Dst: git_config_expiry_date
      Src: /src/git/pseudo-merge.c:191,1
    - Dst: strcmp
      Src: /src/git/pseudo-merge.c:195,1
    - Dst: git_config_int
      Src: /src/git/pseudo-merge.c:196,1
    - Dst: warning
      Src: /src/git/pseudo-merge.c:198,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:198,1
    - Dst: strbuf_release
      Src: /src/git/pseudo-merge.c:204,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb_data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 120
    functionDepth: 7
    functionLinenumber: 120
    functionLinenumberEnd: 207
    functionName: pseudo_merge_config
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - pseudo_merge_group_init
    - parse_config_key
    - xmalloc
    - strcmp
    - free
    - string_list_lookup
    - strbuf_release
    - die
    - string_list_insert
    - strbuf_addstr
    - xcalloc
    - regcomp
    - git_config_int
    - _
    - warning
    - strbuf_add
    - git_config_double
    - regfree
    - strbuf_addch
    - git_config_expiry_date
    linkageType: ''
    returnType: int
    signature: "int pseudo_merge_config(const char *var, const char *value,\n\t\t\t
      \      const struct config_context *ctx,\n\t\t\t       void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/pseudo-merge.c:214,1
    - Dst: die
      Src: /src/git/pseudo-merge.c:219,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:219,1
    - Dst: die
      Src: /src/git/pseudo-merge.c:222,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - r
    - list
    argTypes:
    - struct repository*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 19
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: load_pseudo_merges_from_config
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 1
    functionsReached:
    - die
    - repo_config
    - _
    linkageType: ''
    returnType: void
    signature: "void load_pseudo_merges_from_config(struct repository *r,\n\t\t\t\t
      \   struct string_list *list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/pseudo-merge.c:219,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:219,1
    - Dst: die
      Src: /src/git/pseudo-merge.c:222,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 47
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, list)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: reference_get_peeled_oid
      Src: /src/git/pseudo-merge.c:236,1
    - Dst: lookup_commit
      Src: /src/git/pseudo-merge.c:239,1
    - Dst: repo_parse_commit
      Src: /src/git/pseudo-merge.c:242,1
    - Dst: packlist_find
      Src: /src/git/pseudo-merge.c:244,1
    - Dst: bitmap_writer_has_bitmapped_object_id
      Src: /src/git/pseudo-merge.c:247,1
    - Dst: regexec
      Src: /src/git/pseudo-merge.c:257,1
    - Dst: ARRAY_SIZE
      Src: /src/git/pseudo-merge.c:257,1
    - Dst: ARRAY_SIZE
      Src: /src/git/pseudo-merge.c:261,1
    - Dst: warning
      Src: /src/git/pseudo-merge.c:262,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:262,1
    - Dst: ARRAY_SIZE
      Src: /src/git/pseudo-merge.c:264,1
    - Dst: ARRAY_SIZE
      Src: /src/git/pseudo-merge.c:266,1
    - Dst: strbuf_addch
      Src: /src/git/pseudo-merge.c:272,1
    - Dst: strbuf_add
      Src: /src/git/pseudo-merge.c:274,1
    - Dst: strmap_get
      Src: /src/git/pseudo-merge.c:278,1
    - Dst: xcalloc
      Src: /src/git/pseudo-merge.c:280,1
    - Dst: strmap_put
      Src: /src/git/pseudo-merge.c:281,1
    - Dst: ALLOC_GROW
      Src: /src/git/pseudo-merge.c:286,1
    - Dst: ALLOC_GROW
      Src: /src/git/pseudo-merge.c:290,1
    - Dst: strbuf_release
      Src: /src/git/pseudo-merge.c:295,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - ref
    - _data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 227
    functionDepth: 20
    functionLinenumber: 227
    functionLinenumberEnd: 299
    functionName: find_pseudo_merge_group_for_ref
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strbuf_release
    - reference_get_peeled_oid
    - repo_parse_commit
    - strmap_get
    - regexec
    - strbuf_addch
    - lookup_commit
    - xcalloc
    - _
    - strmap_put
    - packlist_find
    - bitmap_writer_has_bitmapped_object_id
    - warning
    - ALLOC_GROW
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int find_pseudo_merge_group_for_ref(const struct reference *ref, void
      *_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/pseudo-merge.c:305,1
    - Dst: alloc_commit_node
      Src: /src/git/pseudo-merge.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - group
    argTypes:
    - struct pseudo_merge_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 314
    functionName: push_pseudo_merge
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - alloc_commit_node
    - ALLOC_GROW
    linkageType: ''
    returnType: struct commit
    signature: struct commit *push_pseudo_merge(struct pseudo_merge_group *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_put_oid_map
      Src: /src/git/pseudo-merge.c:322,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/pseudo-merge.c:326,1
    - Dst: kh_value
      Src: /src/git/pseudo-merge.c:327,1
    - Dst: kh_value
      Src: /src/git/pseudo-merge.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pseudo_merge_commits
    - oid
    argTypes:
    - kh_oid_map_t*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 333
    functionName: pseudo_merge_idx
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - kh_value
    - kh_put_oid_map
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct pseudo_merge_commit_idx
    signature: "struct pseudo_merge_commit_idx *pseudo_merge_idx(kh_oid_map_t *pseudo_merge_commits,\n\t\t\t\t\t\t\tconst
      struct object_id *oid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: push_pseudo_merge
      Src: /src/git/pseudo-merge.c:356,1
    - Dst: pseudo_merge_idx
      Src: /src/git/pseudo-merge.c:377,1
    - Dst: ALLOC_GROW
      Src: /src/git/pseudo-merge.c:380,1
    - Dst: commit_list_append
      Src: /src/git/pseudo-merge.c:383,1
    - Dst: bitmap_writer_push_commit
      Src: /src/git/pseudo-merge.c:387,1
    - Dst: push_pseudo_merge
      Src: /src/git/pseudo-merge.c:398,1
    - Dst: pseudo_merge_group_size
      Src: /src/git/pseudo-merge.c:401,1
    - Dst: pseudo_merge_idx
      Src: /src/git/pseudo-merge.c:420,1
    - Dst: ALLOC_GROW
      Src: /src/git/pseudo-merge.c:423,1
    - Dst: commit_list_append
      Src: /src/git/pseudo-merge.c:426,1
    - Dst: bitmap_writer_push_commit
      Src: /src/git/pseudo-merge.c:430,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - writer
    - group
    - matches
    argTypes:
    - struct bitmap_writer*
    - struct pseudo_merge_group*
    - struct pseudo_merge_matches*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 435
    functionName: select_pseudo_merges_1
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - bitmap_writer_push_commit
    - commit_list_append
    - pseudo_merge_idx
    - pseudo_merge_group_size
    - ALLOC_GROW
    - push_pseudo_merge
    linkageType: ''
    returnType: void
    signature: "void select_pseudo_merges_1(struct bitmap_writer *writer,\n\t\t\t\t
      \  struct pseudo_merge_group *group,\n\t\t\t\t   struct pseudo_merge_matches
      *matches)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 447
    functionName: commit_date_cmp
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int commit_date_cmp(const void *va, const void *vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/pseudo-merge.c:451,1
    - Dst: QSORT
      Src: /src/git/pseudo-merge.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - matches
    argTypes:
    - struct pseudo_merge_matches*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: sort_pseudo_merge_matches
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - QSORT
    linkageType: ''
    returnType: void
    signature: void sort_pseudo_merge_matches(struct pseudo_merge_matches *matches)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_progress
      Src: /src/git/pseudo-merge.c:464,1
    - Dst: refs_for_each_ref
      Src: /src/git/pseudo-merge.c:468,1
    - Dst: get_main_ref_store
      Src: /src/git/pseudo-merge.c:468,1
    - Dst: strmap_for_each_entry
      Src: /src/git/pseudo-merge.c:477,1
    - Dst: sort_pseudo_merge_matches
      Src: /src/git/pseudo-merge.c:480,1
    - Dst: select_pseudo_merges_1
      Src: /src/git/pseudo-merge.c:482,1
    - Dst: display_progress
      Src: /src/git/pseudo-merge.c:485,1
    - Dst: stop_progress
      Src: /src/git/pseudo-merge.c:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - writer
    argTypes:
    - struct bitmap_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 455
    functionDepth: 5
    functionLinenumber: 455
    functionLinenumberEnd: 489
    functionName: select_pseudo_merges
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 1
    functionsReached:
    - stop_progress
    - refs_for_each_ref
    - strmap_for_each_entry
    - display_progress
    - select_pseudo_merges_1
    - get_main_ref_store
    - start_progress
    - sort_pseudo_merge_matches
    linkageType: ''
    returnType: void
    signature: void select_pseudo_merges(struct bitmap_writer *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ewah_pool_free
      Src: /src/git/pseudo-merge.c:495,1
    - Dst: ewah_pool_free
      Src: /src/git/pseudo-merge.c:496,1
    - Dst: free
      Src: /src/git/pseudo-merge.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pm
    argTypes:
    - struct pseudo_merge_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 499
    functionName: free_pseudo_merge_map
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 1
    functionsReached:
    - ewah_pool_free
    - free
    linkageType: ''
    returnType: void
    signature: void free_pseudo_merge_map(struct pseudo_merge_map *pm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/pseudo-merge.c:510,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:510,1
    - Dst: error
      Src: /src/git/pseudo-merge.c:514,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:514,1
    - Dst: get_be32
      Src: /src/git/pseudo-merge.c:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pm
    - ext
    - at
    argTypes:
    - struct pseudo_merge_map*
    - struct pseudo_merge_commit_ext*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 522
    functionName: pseudo_merge_ext_at
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - error
    - get_be32
    - _
    linkageType: ''
    returnType: int
    signature: "int pseudo_merge_ext_at(const struct pseudo_merge_map *pm,\n\t\t\t
      \      struct pseudo_merge_commit_ext *ext, size_t at)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pseudo-merge.c:528,1
    - Dst: read_bitmap
      Src: /src/git/pseudo-merge.c:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pm
    - merge
    argTypes:
    - struct pseudo_merge_map*
    - struct pseudo_merge*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 538
    functionName: pseudo_merge_bitmap
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 3
    functionsReached:
    - read_bitmap
    - BUG
    linkageType: ''
    returnType: struct ewah_bitmap
    signature: "struct ewah_bitmap *pseudo_merge_bitmap(const struct pseudo_merge_map
      *pm,\n\t\t\t\t\tstruct pseudo_merge *merge)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_bitmap
      Src: /src/git/pseudo-merge.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pm
    - merge
    argTypes:
    - struct pseudo_merge_map*
    - struct pseudo_merge*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 551
    functionName: use_pseudo_merge
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 3
    functionsReached:
    - read_bitmap
    linkageType: ''
    returnType: struct pseudo_merge
    signature: "struct pseudo_merge *use_pseudo_merge(const struct pseudo_merge_map
      *pm,\n\t\t\t\t      struct pseudo_merge *merge)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: use_pseudo_merge
      Src: /src/git/pseudo-merge.c:565,1
    - Dst: warning
      Src: /src/git/pseudo-merge.c:572,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:572,1
    - Dst: oid_to_hex
      Src: /src/git/pseudo-merge.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pm
    - oid
    - want
    argTypes:
    - struct pseudo_merge_map*
    - struct object_id*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 553
    functionDepth: 3
    functionLinenumber: 553
    functionLinenumberEnd: 576
    functionName: pseudo_merge_at
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - use_pseudo_merge
    - oid_to_hex
    - warning
    - _
    linkageType: ''
    returnType: struct pseudo_merge
    signature: "struct pseudo_merge *pseudo_merge_at(const struct pseudo_merge_map
      *pm,\n\t\t\t\t\t    struct object_id *oid,\n\t\t\t\t\t    size_t want)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_be32
      Src: /src/git/pseudo-merge.c:588,1
    - Dst: get_be64
      Src: /src/git/pseudo-merge.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - merge
    - at
    argTypes:
    - struct pseudo_merge_commit*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 590
    functionName: read_pseudo_merge_commit_at
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - get_be32
    - get_be64
    linkageType: ''
    returnType: void
    signature: "void read_pseudo_merge_commit_at(struct pseudo_merge_commit *merge,\n\t\t\t\t\tconst
      unsigned char *at)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/pseudo-merge.c:600,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:600,1
    - Dst: get_be64
      Src: /src/git/pseudo-merge.c:603,1
    - Dst: st_mult
      Src: /src/git/pseudo-merge.c:603,1
    - Dst: error
      Src: /src/git/pseudo-merge.c:605,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pm
    - ext
    - merge
    - n
    argTypes:
    - struct pseudo_merge_map*
    - struct pseudo_merge_commit_ext*
    - struct pseudo_merge_commit*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 611
    functionName: nth_pseudo_merge_ext
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - error
    - st_mult
    - get_be64
    - _
    linkageType: ''
    returnType: int
    signature: "int nth_pseudo_merge_ext(const struct pseudo_merge_map *pm,\n\t\t\t\tstruct
      pseudo_merge_commit_ext *ext,\n\t\t\t\tstruct pseudo_merge_commit *merge,\n\t\t\t\tuint32_t
      n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ewah_bitmap_is_subset
      Src: /src/git/pseudo-merge.c:621,1
    - Dst: bitmap_or_ewah
      Src: /src/git/pseudo-merge.c:624,1
    - Dst: pseudo_merge_bitmap
      Src: /src/git/pseudo-merge.c:624,1
    - Dst: bitmap_or_ewah
      Src: /src/git/pseudo-merge.c:626,1
    - Dst: pseudo_merge_bitmap
      Src: /src/git/pseudo-merge.c:626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - pm
    - merge
    - result
    - roots
    argTypes:
    - struct pseudo_merge_map*
    - struct pseudo_merge*
    - struct bitmap*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 630
    functionName: apply_pseudo_merge
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - ewah_bitmap_is_subset
    - pseudo_merge_bitmap
    - bitmap_or_ewah
    linkageType: ''
    returnType: unsigned
    signature: "unsigned apply_pseudo_merge(const struct pseudo_merge_map *pm,\n\t\t\t\t
      \  struct pseudo_merge *merge,\n\t\t\t\t   struct bitmap *result,\n\t\t\t\t
      \  struct bitmap *roots)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_pseudo_merge_commit_at
      Src: /src/git/pseudo-merge.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 644
    functionName: pseudo_merge_commit_cmp
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - read_pseudo_merge_commit_at
    linkageType: ''
    returnType: int
    signature: int pseudo_merge_commit_cmp(const void *va, const void *vb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/git/pseudo-merge.c:654,1
    - Dst: read_pseudo_merge_commit_at
      Src: /src/git/pseudo-merge.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pm
    - pos
    - out
    argTypes:
    - struct pseudo_merge_map*
    - uint32_t
    - struct pseudo_merge_commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 661
    functionName: find_pseudo_merge
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 0
    functionsReached:
    - read_pseudo_merge_commit_at
    - bsearch
    linkageType: ''
    returnType: int
    signature: "int find_pseudo_merge(const struct pseudo_merge_map *pm, uint32_t
      pos,\n\t\t\t     struct pseudo_merge_commit *out)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find_pseudo_merge
      Src: /src/git/pseudo-merge.c:671,1
    - Dst: pseudo_merge_ext_at
      Src: /src/git/pseudo-merge.c:679,1
    - Dst: warning
      Src: /src/git/pseudo-merge.c:680,1
    - Dst: _
      Src: /src/git/pseudo-merge.c:680,1
    - Dst: oid_to_hex
      Src: /src/git/pseudo-merge.c:682,1
    - Dst: nth_pseudo_merge_ext
      Src: /src/git/pseudo-merge.c:687,1
    - Dst: pseudo_merge_at
      Src: /src/git/pseudo-merge.c:690,1
    - Dst: apply_pseudo_merge
      Src: /src/git/pseudo-merge.c:696,1
    - Dst: pseudo_merge_at
      Src: /src/git/pseudo-merge.c:700,1
    - Dst: apply_pseudo_merge
      Src: /src/git/pseudo-merge.c:706,1
    - Dst: cascade_pseudo_merges
      Src: /src/git/pseudo-merge.c:711,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - pm
    - result
    - commit
    - commit_pos
    argTypes:
    - struct pseudo_merge_map*
    - struct bitmap*
    - struct commit*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 663
    functionDepth: 4
    functionLinenumber: 663
    functionLinenumberEnd: 714
    functionName: apply_pseudo_merges_for_commit
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 1
    functionsReached:
    - find_pseudo_merge
    - nth_pseudo_merge_ext
    - pseudo_merge_at
    - oid_to_hex
    - apply_pseudo_merge
    - pseudo_merge_ext_at
    - cascade_pseudo_merges
    - _
    - warning
    linkageType: ''
    returnType: int
    signature: "int apply_pseudo_merges_for_commit(const struct pseudo_merge_map *pm,\n\t\t\t\t
      \  struct bitmap *result,\n\t\t\t\t   struct commit *commit, uint32_t commit_pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: use_pseudo_merge
      Src: /src/git/pseudo-merge.c:730,1
    - Dst: apply_pseudo_merge
      Src: /src/git/pseudo-merge.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - pm
    - result
    - roots
    argTypes:
    - struct pseudo_merge_map*
    - struct bitmap*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 716
    functionDepth: 4
    functionLinenumber: 716
    functionLinenumberEnd: 739
    functionName: cascade_pseudo_merges
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 2
    functionsReached:
    - use_pseudo_merge
    - apply_pseudo_merge
    linkageType: ''
    returnType: int
    signature: "int cascade_pseudo_merges(const struct pseudo_merge_map *pm,\n\t\t\t
      \ struct bitmap *result,\n\t\t\t  struct bitmap *roots)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: use_pseudo_merge
      Src: /src/git/pseudo-merge.c:782,1
    - Dst: bitmap_equals_ewah
      Src: /src/git/pseudo-merge.c:785,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - pm
    - parents
    argTypes:
    - struct pseudo_merge_map*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 794
    functionName: pseudo_merge_for_parents
    functionSourceFile: /src/git/pseudo-merge.c
    functionUses: 1
    functionsReached:
    - use_pseudo_merge
    - bitmap_equals_ewah
    linkageType: ''
    returnType: struct pseudo_merge
    signature: "struct pseudo_merge *pseudo_merge_for_parents(const struct pseudo_merge_map
      *pm,\n\t\t\t\t\t      struct bitmap *parents)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/pack-write.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct pack_idx_option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: reset_pack_idx_option
    functionSourceFile: /src/git/pack-write.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void reset_pack_idx_option(struct pack_idx_option *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/pack-write.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: sha1_compare
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - oidcmp
    linkageType: ''
    returnType: int
    signature: int sha1_compare(const void *_a, const void *_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: cmp_uint32
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_uint32(const void *a_, const void *b_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/git/pack-write.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - offset
    - opts
    argTypes:
    - off_t
    - struct pack_idx_option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: need_large_offset
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: int
    signature: int need_large_offset(off_t offset, const struct pack_idx_option *opts)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/pack-write.c:76,1
    - Dst: assert
      Src: /src/git/pack-write.c:82,1
    - Dst: hashfd_check
      Src: /src/git/pack-write.c:83,1
    - Dst: odb_mkstemp
      Src: /src/git/pack-write.c:87,1
    - Dst: strbuf_detach
      Src: /src/git/pack-write.c:89,1
    - Dst: unlink
      Src: /src/git/pack-write.c:91,1
    - Dst: xopen
      Src: /src/git/pack-write.c:92,1
    - Dst: hashfd
      Src: /src/git/pack-write.c:94,1
    - Dst: need_large_offset
      Src: /src/git/pack-write.c:98,1
    - Dst: htonl
      Src: /src/git/pack-write.c:103,1
    - Dst: htonl
      Src: /src/git/pack-write.c:104,1
    - Dst: hashwrite
      Src: /src/git/pack-write.c:105,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:121,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:132,1
    - Dst: hashwrite
      Src: /src/git/pack-write.c:133,1
    - Dst: oideq
      Src: /src/git/pack-write.c:135,1
    - Dst: die
      Src: /src/git/pack-write.c:136,1
    - Dst: oid_to_hex
      Src: /src/git/pack-write.c:137,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:147,1
    - Dst: need_large_offset
      Src: /src/git/pack-write.c:156,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:159,1
    - Dst: need_large_offset
      Src: /src/git/pack-write.c:168,1
    - Dst: hashwrite_be64
      Src: /src/git/pack-write.c:170,1
    - Dst: hashwrite
      Src: /src/git/pack-write.c:175,1
    - Dst: finalize_hashfile
      Src: /src/git/pack-write.c:176,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 6
    argNames:
    - repo
    - index_name
    - objects
    - nr_objects
    - opts
    - sha1
    argTypes:
    - struct repository*
    - char*
    - struct pack_idx_entry**
    - int
    - struct pack_idx_option*
    - unsigned char*
    assertStmts:
    - condition: (index_name)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/git/pack-write.c
    constantsTouched: []
    func_position:
      end: 180
      start: 57
    functionDepth: 9
    functionLinenumber: 57
    functionLinenumberEnd: 180
    functionName: write_idx_file
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - xopen
    - oid_to_hex
    - die
    - assert
    - hashwrite_be64
    - odb_mkstemp
    - hashwrite_be32
    - hashwrite
    - htonl
    - finalize_hashfile
    - QSORT
    - hashfd
    - strbuf_detach
    - unlink
    - need_large_offset
    - oideq
    - hashfd_check
    linkageType: ''
    returnType: char
    signature: "char *write_idx_file(struct repository *repo,\n\t\t\t   const char
      *index_name, struct pack_idx_entry **objects,\n\t\t\t   int nr_objects, const
      struct pack_idx_option *opts,\n\t\t\t   const unsigned char *sha1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - va
    - vb
    - ctx
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: pack_order_cmp
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pack_order_cmp(const void *va, const void *vb, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:199,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:200,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:201,1
    - Dst: oid_version
      Src: /src/git/pack-write.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hash_algo
    - f
    argTypes:
    - struct git_hash_algo*
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: write_rev_header
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    - oid_version
    linkageType: ''
    returnType: void
    signature: "void write_rev_header(const struct git_hash_algo *hash_algo,\n\t\t\t
      \    struct hashfile *f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - f
    - pack_order
    - nr_objects
    argTypes:
    - struct hashfile*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: write_rev_index_positions
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    linkageType: ''
    returnType: void
    signature: "void write_rev_index_positions(struct hashfile *f,\n\t\t\t\t      uint32_t
      *pack_order,\n\t\t\t\t      uint32_t nr_objects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite
      Src: /src/git/pack-write.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hash_algo
    - f
    - hash
    argTypes:
    - struct git_hash_algo*
    - struct hashfile*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: write_rev_trailer
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - hashwrite
    linkageType: ''
    returnType: void
    signature: "void write_rev_trailer(const struct git_hash_algo *hash_algo,\n\t\t\t
      \     struct hashfile *f, const unsigned char *hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/pack-write.c:233,1
    - Dst: QSORT_S
      Src: /src/git/pack-write.c:236,1
    - Dst: write_rev_file_order
      Src: /src/git/pack-write.c:238,1
    - Dst: free
      Src: /src/git/pack-write.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - repo
    - rev_name
    - objects
    - nr_objects
    - hash
    - flags
    argTypes:
    - struct repository*
    - char*
    - struct pack_idx_entry**
    - uint32_t
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 244
    functionName: write_rev_file
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - write_rev_file_order
    - QSORT_S
    - free
    linkageType: ''
    returnType: char
    signature: "char *write_rev_file(struct repository *repo,\n\t\t     const char
      *rev_name,\n\t\t     struct pack_idx_entry **objects,\n\t\t     uint32_t nr_objects,\n\t\t
      \    const unsigned char *hash,\n\t\t     unsigned flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/pack-write.c:258,1
    - Dst: _
      Src: /src/git/pack-write.c:258,1
    - Dst: odb_mkstemp
      Src: /src/git/pack-write.c:263,1
    - Dst: strbuf_detach
      Src: /src/git/pack-write.c:265,1
    - Dst: unlink
      Src: /src/git/pack-write.c:267,1
    - Dst: xopen
      Src: /src/git/pack-write.c:268,1
    - Dst: xstrdup
      Src: /src/git/pack-write.c:269,1
    - Dst: hashfd
      Src: /src/git/pack-write.c:271,1
    - Dst: stat
      Src: /src/git/pack-write.c:274,1
    - Dst: die_errno
      Src: /src/git/pack-write.c:279,1
    - Dst: _
      Src: /src/git/pack-write.c:279,1
    - Dst: hashfd_check
      Src: /src/git/pack-write.c:281,1
    - Dst: xstrdup
      Src: /src/git/pack-write.c:282,1
    - Dst: write_rev_header
      Src: /src/git/pack-write.c:287,1
    - Dst: write_rev_index_positions
      Src: /src/git/pack-write.c:289,1
    - Dst: write_rev_trailer
      Src: /src/git/pack-write.c:290,1
    - Dst: adjust_shared_perm
      Src: /src/git/pack-write.c:292,1
    - Dst: die
      Src: /src/git/pack-write.c:293,1
    - Dst: _
      Src: /src/git/pack-write.c:293,1
    - Dst: finalize_hashfile
      Src: /src/git/pack-write.c:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 6
    argNames:
    - repo
    - rev_name
    - pack_order
    - nr_objects
    - hash
    - flags
    argTypes:
    - struct repository*
    - char*
    - uint32_t*
    - uint32_t
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 246
    functionDepth: 9
    functionLinenumber: 246
    functionLinenumberEnd: 300
    functionName: write_rev_file_order
    functionSourceFile: /src/git/pack-write.c
    functionUses: 2
    functionsReached:
    - xopen
    - die
    - write_rev_trailer
    - odb_mkstemp
    - stat
    - die_errno
    - write_rev_header
    - finalize_hashfile
    - hashfd
    - strbuf_detach
    - hashfd_check
    - _
    - write_rev_index_positions
    - adjust_shared_perm
    - xstrdup
    - unlink
    linkageType: ''
    returnType: char
    signature: "char *write_rev_file_order(struct repository *repo,\n\t\t\t   const
      char *rev_name,\n\t\t\t   uint32_t *pack_order,\n\t\t\t   uint32_t nr_objects,\n\t\t\t
      \  const unsigned char *hash,\n\t\t\t   unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:305,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:306,1
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:307,1
    - Dst: oid_version
      Src: /src/git/pack-write.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hash_algo
    - f
    argTypes:
    - struct git_hash_algo*
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: write_mtimes_header
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - hashwrite_be32
    - oid_version
    linkageType: ''
    returnType: void
    signature: "void write_mtimes_header(const struct git_hash_algo *hash_algo,\n\t\t\t\tstruct
      hashfile *f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite_be32
      Src: /src/git/pack-write.c:323,1
    - Dst: oe_cruft_mtime
      Src: /src/git/pack-write.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - f
    - to_pack
    - objects
    - nr_objects
    argTypes:
    - struct hashfile*
    - struct packing_data*
    - struct pack_idx_entry**
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: write_mtimes_objects
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - oe_cruft_mtime
    - hashwrite_be32
    linkageType: ''
    returnType: void
    signature: "void write_mtimes_objects(struct hashfile *f,\n\t\t\t\t struct packing_data
      *to_pack,\n\t\t\t\t struct pack_idx_entry **objects,\n\t\t\t\t uint32_t nr_objects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashwrite
      Src: /src/git/pack-write.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hash_algo
    - f
    - hash
    argTypes:
    - struct git_hash_algo*
    - struct hashfile*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: write_mtimes_trailer
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - hashwrite
    linkageType: ''
    returnType: void
    signature: "void write_mtimes_trailer(const struct git_hash_algo *hash_algo,\n\t\t\t\t
      struct hashfile *f, const unsigned char *hash)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/pack-write.c:345,1
    - Dst: odb_mkstemp
      Src: /src/git/pack-write.c:347,1
    - Dst: strbuf_detach
      Src: /src/git/pack-write.c:348,1
    - Dst: hashfd
      Src: /src/git/pack-write.c:349,1
    - Dst: write_mtimes_header
      Src: /src/git/pack-write.c:351,1
    - Dst: write_mtimes_objects
      Src: /src/git/pack-write.c:352,1
    - Dst: write_mtimes_trailer
      Src: /src/git/pack-write.c:353,1
    - Dst: adjust_shared_perm
      Src: /src/git/pack-write.c:355,1
    - Dst: die
      Src: /src/git/pack-write.c:356,1
    - Dst: _
      Src: /src/git/pack-write.c:356,1
    - Dst: finalize_hashfile
      Src: /src/git/pack-write.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - repo
    - to_pack
    - objects
    - nr_objects
    - hash
    argTypes:
    - struct repository*
    - struct packing_data*
    - struct pack_idx_entry**
    - uint32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 333
    functionDepth: 9
    functionLinenumber: 333
    functionLinenumberEnd: 362
    functionName: write_mtimes_file
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - die
    - write_mtimes_objects
    - odb_mkstemp
    - write_mtimes_header
    - finalize_hashfile
    - hashfd
    - strbuf_detach
    - _
    - adjust_shared_perm
    - BUG
    - write_mtimes_trailer
    linkageType: ''
    returnType: char
    signature: "char *write_mtimes_file(struct repository *repo,\n\t\t\t       struct
      packing_data *to_pack,\n\t\t\t       struct pack_idx_entry **objects,\n\t\t\t
      \      uint32_t nr_objects,\n\t\t\t       const unsigned char *hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/git/pack-write.c:368,1
    - Dst: htonl
      Src: /src/git/pack-write.c:369,1
    - Dst: htonl
      Src: /src/git/pack-write.c:370,1
    - Dst: hashwrite
      Src: /src/git/pack-write.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - f
    - nr_entries
    argTypes:
    - struct hashfile*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 373
    functionName: write_pack_header
    functionSourceFile: /src/git/pack-write.c
    functionUses: 1
    functionsReached:
    - hashwrite
    - htonl
    linkageType: ''
    returnType: off_t
    signature: off_t write_pack_header(struct hashfile *f, uint32_t nr_entries)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/pack-write.c:405,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/pack-write.c:406,1
    - Dst: lseek
      Src: /src/git/pack-write.c:408,1
    - Dst: die_errno
      Src: /src/git/pack-write.c:409,1
    - Dst: read_in_full
      Src: /src/git/pack-write.c:410,1
    - Dst: die_errno
      Src: /src/git/pack-write.c:412,1
    - Dst: die_errno
      Src: /src/git/pack-write.c:414,1
    - Dst: lseek
      Src: /src/git/pack-write.c:416,1
    - Dst: die_errno
      Src: /src/git/pack-write.c:417,1
    - Dst: git_hash_update
      Src: /src/git/pack-write.c:418,1
    - Dst: htonl
      Src: /src/git/pack-write.c:419,1
    - Dst: git_hash_update
      Src: /src/git/pack-write.c:420,1
    - Dst: write_or_die
      Src: /src/git/pack-write.c:421,1
    - Dst: xmalloc
      Src: /src/git/pack-write.c:424,1
    - Dst: xread
      Src: /src/git/pack-write.c:430,1
    - Dst: die_errno
      Src: /src/git/pack-write.c:434,1
    - Dst: git_hash_update
      Src: /src/git/pack-write.c:435,1
    - Dst: git_hash_update
      Src: /src/git/pack-write.c:444,1
    - Dst: git_hash_final
      Src: /src/git/pack-write.c:448,1
    - Dst: hasheq
      Src: /src/git/pack-write.c:449,1
    - Dst: die
      Src: /src/git/pack-write.c:451,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/pack-write.c:458,1
    - Dst: MSB
      Src: /src/git/pack-write.c:460,1
    - Dst: free
      Src: /src/git/pack-write.c:463,1
    - Dst: git_hash_final
      Src: /src/git/pack-write.c:466,1
    - Dst: git_hash_final
      Src: /src/git/pack-write.c:467,1
    - Dst: write_or_die
      Src: /src/git/pack-write.c:468,1
    - Dst: fsync_component_or_die
      Src: /src/git/pack-write.c:469,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 7
    argNames:
    - hash_algo
    - pack_fd
    - new_pack_hash
    - pack_name
    - object_count
    - partial_pack_hash
    - partial_pack_offset
    argTypes:
    - struct git_hash_algo*
    - int
    - unsigned char*
    - char*
    - uint32_t
    - unsigned char*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 391
    functionDepth: 4
    functionLinenumber: 391
    functionLinenumberEnd: 470
    functionName: fixup_pack_header_footer
    functionSourceFile: /src/git/pack-write.c
    functionUses: 1
    functionsReached:
    - write_or_die
    - die
    - hasheq
    - git_hash_final
    - lseek
    - MSB
    - die_errno
    - htonl
    - read_in_full
    - xmalloc
    - xread
    - free
    - git_hash_update
    - struct git_hash_algo*::init_fn
    - fsync_component_or_die
    linkageType: ''
    returnType: void
    signature: "void fixup_pack_header_footer(const struct git_hash_algo *hash_algo,\n\t\t\t
      int pack_fd,\n\t\t\t unsigned char *new_pack_hash,\n\t\t\t const char *pack_name,\n\t\t\t
      uint32_t object_count,\n\t\t\t unsigned char *partial_pack_hash,\n\t\t\t off_t
      partial_pack_offset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_in_full
      Src: /src/git/pack-write.c:484,1
    - Dst: skip_prefix
      Src: /src/git/pack-write.c:490,1
    - Dst: xstrfmt
      Src: /src/git/pack-write.c:491,1
    - Dst: repo_get_object_directory
      Src: /src/git/pack-write.c:492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - r
    - ip_out
    - is_well_formed
    argTypes:
    - struct repository*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 472
    functionDepth: 5
    functionLinenumber: 472
    functionLinenumberEnd: 498
    functionName: index_pack_lockfile
    functionSourceFile: /src/git/pack-write.c
    functionUses: 1
    functionsReached:
    - read_in_full
    - repo_get_object_directory
    - xstrfmt
    - skip_prefix
    linkageType: ''
    returnType: char
    signature: char *index_pack_lockfile(struct repository *r, int ip_out, int *is_well_formed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/pack-write.c:514,1
    - Dst: die
      Src: /src/git/pack-write.c:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - hdr
    - hdr_len
    - type
    - size
    argTypes:
    - unsigned char*
    - int
    - enum object_type
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 528
    functionName: encode_in_pack_object_header
    functionSourceFile: /src/git/pack-write.c
    functionUses: 1
    functionsReached:
    - die
    linkageType: ''
    returnType: int
    signature: "int encode_in_pack_object_header(unsigned char *hdr, int hdr_len,\n\t\t\t\t
      enum object_type type, uintmax_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_mkstemp
      Src: /src/git/pack-write.c:536,1
    - Dst: strbuf_detach
      Src: /src/git/pack-write.c:537,1
    - Dst: hashfd
      Src: /src/git/pack-write.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - repo
    - pack_tmp_name
    argTypes:
    - struct repository*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 530
    functionDepth: 9
    functionLinenumber: 530
    functionLinenumberEnd: 539
    functionName: create_tmp_packfile
    functionSourceFile: /src/git/pack-write.c
    functionUses: 1
    functionsReached:
    - odb_mkstemp
    - hashfd
    - strbuf_detach
    linkageType: ''
    returnType: struct hashfile
    signature: "struct hashfile *create_tmp_packfile(struct repository *repo,\n\t\t\t\t
      \    char **pack_tmp_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/pack-write.c:547,1
    - Dst: finalize_object_file
      Src: /src/git/pack-write.c:548,1
    - Dst: die
      Src: /src/git/pack-write.c:549,1
    - Dst: strbuf_setlen
      Src: /src/git/pack-write.c:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - repo
    - name_prefix
    - source
    - ext
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 541
    functionDepth: 4
    functionLinenumber: 541
    functionLinenumberEnd: 552
    functionName: rename_tmp_packfile
    functionSourceFile: /src/git/pack-write.c
    functionUses: 0
    functionsReached:
    - strbuf_setlen
    - die
    - strbuf_addstr
    - finalize_object_file
    linkageType: ''
    returnType: void
    signature: "void rename_tmp_packfile(struct repository *repo,\n\t\t\t\tstruct
      strbuf *name_prefix, const char *source,\n\t\t\t\tconst char *ext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rename_tmp_packfile
      Src: /src/git/pack-write.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - repo
    - name_buffer
    - idx_tmp_name
    argTypes:
    - struct repository*
    - struct strbuf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 559
    functionName: rename_tmp_packfile_idx
    functionSourceFile: /src/git/pack-write.c
    functionUses: 1
    functionsReached:
    - rename_tmp_packfile
    linkageType: ''
    returnType: void
    signature: "void rename_tmp_packfile_idx(struct repository *repo,\n\t\t\t     struct
      strbuf *name_buffer,\n\t\t\t     char **idx_tmp_name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: adjust_shared_perm
      Src: /src/git/pack-write.c:574,1
    - Dst: die_errno
      Src: /src/git/pack-write.c:575,1
    - Dst: write_idx_file
      Src: /src/git/pack-write.c:577,1
    - Dst: adjust_shared_perm
      Src: /src/git/pack-write.c:579,1
    - Dst: die_errno
      Src: /src/git/pack-write.c:580,1
    - Dst: write_rev_file
      Src: /src/git/pack-write.c:582,1
    - Dst: write_mtimes_file
      Src: /src/git/pack-write.c:586,1
    - Dst: rename_tmp_packfile
      Src: /src/git/pack-write.c:591,1
    - Dst: rename_tmp_packfile
      Src: /src/git/pack-write.c:593,1
    - Dst: rename_tmp_packfile
      Src: /src/git/pack-write.c:595,1
    - Dst: free
      Src: /src/git/pack-write.c:597,1
    - Dst: free
      Src: /src/git/pack-write.c:598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 9
    argNames:
    - repo
    - name_buffer
    - pack_tmp_name
    - written_list
    - nr_written
    - to_pack
    - pack_idx_opts
    - hash
    - idx_tmp_name
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    - struct pack_idx_entry**
    - uint32_t
    - struct packing_data*
    - struct pack_idx_option*
    - unsigned char[]
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 561
    functionDepth: 10
    functionLinenumber: 561
    functionLinenumberEnd: 599
    functionName: stage_tmp_packfiles
    functionSourceFile: /src/git/pack-write.c
    functionUses: 1
    functionsReached:
    - write_idx_file
    - die_errno
    - rename_tmp_packfile
    - write_rev_file
    - free
    - adjust_shared_perm
    - write_mtimes_file
    linkageType: ''
    returnType: void
    signature: "void stage_tmp_packfiles(struct repository *repo,\n\t\t\t struct strbuf
      *name_buffer,\n\t\t\t const char *pack_tmp_name,\n\t\t\t struct pack_idx_entry
      **written_list,\n\t\t\t uint32_t nr_written,\n\t\t\t struct packing_data *to_pack,\n\t\t\t
      struct pack_idx_option *pack_idx_opts,\n\t\t\t unsigned char hash[],\n\t\t\t
      char **idx_tmp_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfopen
      Src: /src/git/pack-write.c:604,1
    - Dst: fprintf
      Src: /src/git/pack-write.c:607,1
    - Dst: oid_to_hex
      Src: /src/git/pack-write.c:607,1
    - Dst: ferror
      Src: /src/git/pack-write.c:610,1
    - Dst: fclose
      Src: /src/git/pack-write.c:611,1
    - Dst: die
      Src: /src/git/pack-write.c:613,1
    - Dst: _
      Src: /src/git/pack-write.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - promisor_name
    - sought
    - nr_sought
    argTypes:
    - char*
    - struct ref**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 614
    functionName: write_promisor_file
    functionSourceFile: /src/git/pack-write.c
    functionUses: 2
    functionsReached:
    - fclose
    - ferror
    - oid_to_hex
    - die
    - _
    - xfopen
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_promisor_file(const char *promisor_name, struct ref **sought,
      int nr_sought)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attr_check_initl
      Src: /src/git/merge-ll.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 9
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: load_merge_attributes
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 0
    functionsReached:
    - attr_check_initl
    linkageType: ''
    returnType: struct attr_check
    signature: struct attr_check *load_merge_attributes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attr_check_free
      Src: /src/git/merge-ll.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: reset_merge_attributes
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 1
    functionsReached:
    - attr_check_free
    linkageType: ''
    returnType: void
    signature: void reset_merge_attributes(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ll.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 11
    argNames:
    - UNUSED
    - result
    - UNUSED
    - orig
    - orig_name
    - src1
    - UNUSED
    - src2
    - UNUSED
    - opts
    - marker_size
    argTypes:
    - struct ll_merge_driver*
    - mmbuffer_t*
    - char*
    - mmfile_t*
    - char*
    - mmfile_t*
    - char*
    - mmfile_t*
    - char*
    - struct ll_merge_options*
    - int
    assertStmts:
    - condition: (opts)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/git/merge-ll.c
    constantsTouched: []
    func_position:
      end: 101
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 101
    functionName: ll_binary_merge
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: enum ll_merge_result
    signature: "enum ll_merge_result ll_binary_merge(const struct ll_merge_driver
      *drv UNUSED,\n\t\t\t   mmbuffer_t *result,\n\t\t\t   const char *path UNUSED,\n\t\t\t
      \  mmfile_t *orig, const char *orig_name UNUSED,\n\t\t\t   mmfile_t *src1, const
      char *name1 UNUSED,\n\t\t\t   mmfile_t *src2, const char *name2 UNUSED,\n\t\t\t
      \  const struct ll_merge_options *opts,\n\t\t\t   int marker_size UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ll.c:115,1
    - Dst: buffer_is_binary
      Src: /src/git/merge-ll.c:120,1
    - Dst: buffer_is_binary
      Src: /src/git/merge-ll.c:121,1
    - Dst: buffer_is_binary
      Src: /src/git/merge-ll.c:122,1
    - Dst: ll_binary_merge
      Src: /src/git/merge-ll.c:123,1
    - Dst: memset
      Src: /src/git/merge-ll.c:131,1
    - Dst: xdl_merge
      Src: /src/git/merge-ll.c:144,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 11
    argNames:
    - drv_unused
    - result
    - path
    - orig
    - orig_name
    - src1
    - name1
    - src2
    - name2
    - opts
    - marker_size
    argTypes:
    - struct ll_merge_driver*
    - mmbuffer_t*
    - char*
    - mmfile_t*
    - char*
    - mmfile_t*
    - char*
    - mmfile_t*
    - char*
    - struct ll_merge_options*
    - int
    assertStmts:
    - condition: (opts)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/git/merge-ll.c
    constantsTouched: []
    func_position:
      end: 147
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 147
    functionName: ll_xdl_merge
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 0
    functionsReached:
    - memset
    - buffer_is_binary
    - assert
    - ll_binary_merge
    - xdl_merge
    linkageType: ''
    returnType: enum ll_merge_result
    signature: "enum ll_merge_result ll_xdl_merge(const struct ll_merge_driver *drv_unused,\n\t\t\tmmbuffer_t
      *result,\n\t\t\tconst char *path,\n\t\t\tmmfile_t *orig, const char *orig_name,\n\t\t\tmmfile_t
      *src1, const char *name1,\n\t\t\tmmfile_t *src2, const char *name2,\n\t\t\tconst
      struct ll_merge_options *opts,\n\t\t\tint marker_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ll.c:160,1
    - Dst: ll_xdl_merge
      Src: /src/git/merge-ll.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 11
    argNames:
    - drv_unused
    - result
    - path
    - orig
    - orig_name
    - src1
    - name1
    - src2
    - name2
    - opts
    - marker_size
    argTypes:
    - struct ll_merge_driver*
    - mmbuffer_t*
    - char*
    - mmfile_t*
    - char*
    - mmfile_t*
    - char*
    - mmfile_t*
    - char*
    - struct ll_merge_options*
    - int
    assertStmts:
    - condition: (opts)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/git/merge-ll.c
    constantsTouched: []
    func_position:
      end: 166
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 166
    functionName: ll_union_merge
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 0
    functionsReached:
    - assert
    - ll_xdl_merge
    linkageType: ''
    returnType: enum ll_merge_result
    signature: "enum ll_merge_result ll_union_merge(const struct ll_merge_driver *drv_unused,\n\t\t\t
      \ mmbuffer_t *result,\n\t\t\t  const char *path,\n\t\t\t  mmfile_t *orig, const
      char *orig_name,\n\t\t\t  mmfile_t *src1, const char *name1,\n\t\t\t  mmfile_t
      *src2, const char *name2,\n\t\t\t  const struct ll_merge_options *opts,\n\t\t\t
      \ int marker_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/merge-ll.c:181,1
    - Dst: xmkstemp
      Src: /src/git/merge-ll.c:182,1
    - Dst: write_in_full
      Src: /src/git/merge-ll.c:183,1
    - Dst: die_errno
      Src: /src/git/merge-ll.c:184,1
    - Dst: close
      Src: /src/git/merge-ll.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - src
    - path
    - len
    argTypes:
    - mmfile_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: create_temp
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 0
    functionsReached:
    - die_errno
    - close
    - xsnprintf
    - write_in_full
    - xmkstemp
    linkageType: ''
    returnType: void
    signature: void create_temp(mmfile_t *src, char *path, size_t len)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/merge-ll.c:207,1
    - Dst: die
      Src: /src/git/merge-ll.c:210,1
    - Dst: create_temp
      Src: /src/git/merge-ll.c:214,1
    - Dst: create_temp
      Src: /src/git/merge-ll.c:215,1
    - Dst: create_temp
      Src: /src/git/merge-ll.c:216,1
    - Dst: strbuf_expand_step
      Src: /src/git/merge-ll.c:218,1
    - Dst: skip_prefix
      Src: /src/git/merge-ll.c:219,1
    - Dst: strbuf_addch
      Src: /src/git/merge-ll.c:220,1
    - Dst: skip_prefix
      Src: /src/git/merge-ll.c:221,1
    - Dst: strbuf_addstr
      Src: /src/git/merge-ll.c:222,1
    - Dst: skip_prefix
      Src: /src/git/merge-ll.c:223,1
    - Dst: strbuf_addstr
      Src: /src/git/merge-ll.c:224,1
    - Dst: skip_prefix
      Src: /src/git/merge-ll.c:225,1
    - Dst: strbuf_addstr
      Src: /src/git/merge-ll.c:226,1
    - Dst: skip_prefix
      Src: /src/git/merge-ll.c:227,1
    - Dst: strbuf_addf
      Src: /src/git/merge-ll.c:228,1
    - Dst: skip_prefix
      Src: /src/git/merge-ll.c:229,1
    - Dst: sq_quote_buf
      Src: /src/git/merge-ll.c:230,1
    - Dst: skip_prefix
      Src: /src/git/merge-ll.c:231,1
    - Dst: sq_quote_buf
      Src: /src/git/merge-ll.c:232,1
    - Dst: skip_prefix
      Src: /src/git/merge-ll.c:233,1
    - Dst: sq_quote_buf
      Src: /src/git/merge-ll.c:234,1
    - Dst: skip_prefix
      Src: /src/git/merge-ll.c:235,1
    - Dst: sq_quote_buf
      Src: /src/git/merge-ll.c:236,1
    - Dst: strbuf_addch
      Src: /src/git/merge-ll.c:238,1
    - Dst: strvec_push
      Src: /src/git/merge-ll.c:242,1
    - Dst: run_command
      Src: /src/git/merge-ll.c:243,1
    - Dst: open
      Src: /src/git/merge-ll.c:244,1
    - Dst: fstat
      Src: /src/git/merge-ll.c:247,1
    - Dst: xmallocz
      Src: /src/git/merge-ll.c:250,1
    - Dst: read_in_full
      Src: /src/git/merge-ll.c:251,1
    - Dst: FREE_AND_NULL
      Src: /src/git/merge-ll.c:252,1
    - Dst: close
      Src: /src/git/merge-ll.c:256,1
    - Dst: unlink_or_warn
      Src: /src/git/merge-ll.c:259,1
    - Dst: strbuf_release
      Src: /src/git/merge-ll.c:260,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 11
    argNames:
    - fn
    - result
    - path
    - orig
    - orig_name
    - src1
    - name1
    - src2
    - name2
    - opts
    - marker_size
    argTypes:
    - struct ll_merge_driver*
    - mmbuffer_t*
    - char*
    - mmfile_t*
    - char*
    - mmfile_t*
    - char*
    - mmfile_t*
    - char*
    - struct ll_merge_options*
    - int
    assertStmts:
    - condition: (opts)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/git/merge-ll.c
    constantsTouched: []
    func_position:
      end: 269
      start: 191
    functionDepth: 9
    functionLinenumber: 191
    functionLinenumberEnd: 269
    functionName: ll_ext_merge
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_addf
    - strbuf_release
    - die
    - create_temp
    - strbuf_addstr
    - sq_quote_buf
    - unlink_or_warn
    - xmallocz
    - read_in_full
    - skip_prefix
    - FREE_AND_NULL
    - open
    - assert
    - run_command
    - fstat
    - strbuf_addch
    - strbuf_expand_step
    - close
    linkageType: ''
    returnType: enum ll_merge_result
    signature: "enum ll_merge_result ll_ext_merge(const struct ll_merge_driver *fn,\n\t\t\tmmbuffer_t
      *result,\n\t\t\tconst char *path,\n\t\t\tmmfile_t *orig, const char *orig_name,\n\t\t\tmmfile_t
      *src1, const char *name1,\n\t\t\tmmfile_t *src2, const char *name2,\n\t\t\tconst
      struct ll_merge_options *opts,\n\t\t\tint marker_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/merge-ll.c:285,1
    - Dst: git_config_string
      Src: /src/git/merge-ll.c:286,1
    - Dst: parse_config_key
      Src: /src/git/merge-ll.c:293,1
    - Dst: xstrncmpz
      Src: /src/git/merge-ll.c:301,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/merge-ll.c:304,1
    - Dst: xmemdupz
      Src: /src/git/merge-ll.c:305,1
    - Dst: strcmp
      Src: /src/git/merge-ll.c:311,1
    - Dst: git_config_string
      Src: /src/git/merge-ll.c:316,1
    - Dst: strcmp
      Src: /src/git/merge-ll.c:319,1
    - Dst: config_error_nonbool
      Src: /src/git/merge-ll.c:321,1
    - Dst: xstrdup
      Src: /src/git/merge-ll.c:345,1
    - Dst: strcmp
      Src: /src/git/merge-ll.c:349,1
    - Dst: git_config_string
      Src: /src/git/merge-ll.c:350,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 277
    functionDepth: 10
    functionLinenumber: 277
    functionLinenumberEnd: 353
    functionName: read_merge_config
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    - xmemdupz
    - git_config_string
    - parse_config_key
    - strcmp
    - CALLOC_ARRAY
    - config_error_nonbool
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int read_merge_config(const char *var, const char *value,\n\t\t\t
      \    const struct config_context *ctx UNUSED,\n\t\t\t     void *cb UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/merge-ll.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 19
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: initialize_ll_merge
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 0
    functionsReached:
    - repo_config
    linkageType: ''
    returnType: void
    signature: void initialize_ll_merge(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: initialize_ll_merge
      Src: /src/git/merge-ll.c:369,1
    - Dst: ATTR_TRUE
      Src: /src/git/merge-ll.c:371,1
    - Dst: ATTR_FALSE
      Src: /src/git/merge-ll.c:373,1
    - Dst: ATTR_UNSET
      Src: /src/git/merge-ll.c:375,1
    - Dst: strcmp
      Src: /src/git/merge-ll.c:385,1
    - Dst: ARRAY_SIZE
      Src: /src/git/merge-ll.c:388,1
    - Dst: strcmp
      Src: /src/git/merge-ll.c:389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - merge_attr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 363
    functionDepth: 20
    functionLinenumber: 363
    functionLinenumberEnd: 394
    functionName: find_ll_merge_driver
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - initialize_ll_merge
    - ATTR_FALSE
    - ATTR_UNSET
    - strcmp
    - ATTR_TRUE
    linkageType: ''
    returnType: struct ll_merge_driver
    signature: struct ll_merge_driver *find_ll_merge_driver(const char *merge_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: renormalize_buffer
      Src: /src/git/merge-ll.c:399,1
    - Dst: free
      Src: /src/git/merge-ll.c:400,1
    - Dst: strbuf_detach
      Src: /src/git/merge-ll.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - mm
    - path
    - istate
    argTypes:
    - mmfile_t*
    - char*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: normalize_file
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 0
    functionsReached:
    - renormalize_buffer
    - strbuf_detach
    - free
    linkageType: ''
    returnType: void
    signature: void normalize_file(mmfile_t *mm, const char *path, struct index_state
      *istate)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: load_merge_attributes
      Src: /src/git/merge-ll.c:414,1
    - Dst: normalize_file
      Src: /src/git/merge-ll.c:424,1
    - Dst: normalize_file
      Src: /src/git/merge-ll.c:425,1
    - Dst: normalize_file
      Src: /src/git/merge-ll.c:426,1
    - Dst: git_check_attr
      Src: /src/git/merge-ll.c:429,1
    - Dst: strtol_i
      Src: /src/git/merge-ll.c:432,1
    - Dst: warning
      Src: /src/git/merge-ll.c:434,1
    - Dst: _
      Src: /src/git/merge-ll.c:434,1
    - Dst: find_ll_merge_driver
      Src: /src/git/merge-ll.c:439,1
    - Dst: find_ll_merge_driver
      Src: /src/git/merge-ll.c:443,1
    - Dst: struct ll_merge_driver*::fn
      Src: /src/git/merge-ll.c:448,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 10
    argNames:
    - result_buf
    - path
    - ancestor
    - ancestor_label
    - ours
    - our_label
    - theirs
    - their_label
    - istate
    - opts
    argTypes:
    - mmbuffer_t*
    - char*
    - mmfile_t*
    - char*
    - mmfile_t*
    - char*
    - mmfile_t*
    - char*
    - struct index_state*
    - struct ll_merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 406
    functionDepth: 21
    functionLinenumber: 406
    functionLinenumberEnd: 451
    functionName: ll_merge
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 7
    functionsReached:
    - normalize_file
    - find_ll_merge_driver
    - strtol_i
    - struct ll_merge_driver*::fn
    - _
    - load_merge_attributes
    - warning
    - git_check_attr
    linkageType: ''
    returnType: enum ll_merge_result
    signature: "enum ll_merge_result ll_merge(mmbuffer_t *result_buf,\n\t     const
      char *path,\n\t     mmfile_t *ancestor, const char *ancestor_label,\n\t     mmfile_t
      *ours, const char *our_label,\n\t     mmfile_t *theirs, const char *their_label,\n\t
      \    struct index_state *istate,\n\t     const struct ll_merge_options *opts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: attr_check_initl
      Src: /src/git/merge-ll.c:459,1
    - Dst: git_check_attr
      Src: /src/git/merge-ll.c:460,1
    - Dst: strtol_i
      Src: /src/git/merge-ll.c:462,1
    - Dst: warning
      Src: /src/git/merge-ll.c:464,1
    - Dst: _
      Src: /src/git/merge-ll.c:464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - istate
    - path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 453
    functionDepth: 19
    functionLinenumber: 453
    functionLinenumberEnd: 470
    functionName: ll_merge_marker_size
    functionSourceFile: /src/git/merge-ll.c
    functionUses: 3
    functionsReached:
    - strtol_i
    - _
    - attr_check_initl
    - warning
    - git_check_attr
    linkageType: ''
    returnType: int
    signature: int ll_merge_marker_size(struct index_state *istate, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_in_full
      Src: /src/git/csum-file.c:21,1
    - Dst: die_errno
      Src: /src/git/csum-file.c:24,1
    - Dst: die
      Src: /src/git/csum-file.c:26,1
    - Dst: memcmp
      Src: /src/git/csum-file.c:27,1
    - Dst: die
      Src: /src/git/csum-file.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - f
    - buf
    - count
    argTypes:
    - struct hashfile*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: verify_buffer_or_die
    functionSourceFile: /src/git/csum-file.c
    functionUses: 0
    functionsReached:
    - read_in_full
    - die
    - die_errno
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void verify_buffer_or_die(struct hashfile *f,\n\t\t\t\t const void
      *buf,\n\t\t\t\t unsigned int count)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: verify_buffer_or_die
      Src: /src/git/csum-file.c:34,1
    - Dst: write_in_full
      Src: /src/git/csum-file.c:36,1
    - Dst: die
      Src: /src/git/csum-file.c:38,1
    - Dst: die_errno
      Src: /src/git/csum-file.c:39,1
    - Dst: display_throughput
      Src: /src/git/csum-file.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - f
    - buf
    - count
    argTypes:
    - struct hashfile*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: flush
    functionSourceFile: /src/git/csum-file.c
    functionUses: 89
    functionsReached:
    - die
    - die_errno
    - display_throughput
    - verify_buffer_or_die
    - write_in_full
    linkageType: ''
    returnType: void
    signature: void flush(struct hashfile *f, const void *buf, unsigned int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_hash_update
      Src: /src/git/csum-file.c:52,1
    - Dst: flush
      Src: /src/git/csum-file.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: hashflush
    functionSourceFile: /src/git/csum-file.c
    functionUses: 0
    functionsReached:
    - git_hash_update
    - flush
    linkageType: ''
    returnType: void
    signature: void hashflush(struct hashfile *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/csum-file.c:60,1
    - Dst: free
      Src: /src/git/csum-file.c:61,1
    - Dst: free
      Src: /src/git/csum-file.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: free_hashfile
    functionSourceFile: /src/git/csum-file.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_hashfile(struct hashfile *f)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: hashflush
      Src: /src/git/csum-file.c:70,1
    - Dst: hashclr
      Src: /src/git/csum-file.c:73,1
    - Dst: git_hash_final
      Src: /src/git/csum-file.c:75,1
    - Dst: hashcpy
      Src: /src/git/csum-file.c:78,1
    - Dst: flush
      Src: /src/git/csum-file.c:80,1
    - Dst: fsync_component_or_die
      Src: /src/git/csum-file.c:82,1
    - Dst: close
      Src: /src/git/csum-file.c:84,1
    - Dst: die_errno
      Src: /src/git/csum-file.c:85,1
    - Dst: read_in_full
      Src: /src/git/csum-file.c:91,1
    - Dst: die_errno
      Src: /src/git/csum-file.c:93,1
    - Dst: die
      Src: /src/git/csum-file.c:96,1
    - Dst: close
      Src: /src/git/csum-file.c:97,1
    - Dst: die_errno
      Src: /src/git/csum-file.c:98,1
    - Dst: free_hashfile
      Src: /src/git/csum-file.c:100,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - f
    - result
    - component
    - flags
    argTypes:
    - struct hashfile*
    - unsigned char*
    - enum fsync_component
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 102
    functionName: finalize_hashfile
    functionSourceFile: /src/git/csum-file.c
    functionUses: 8
    functionsReached:
    - die
    - hashcpy
    - git_hash_final
    - die_errno
    - free_hashfile
    - read_in_full
    - flush
    - close
    - hashclr
    - hashflush
    - fsync_component_or_die
    linkageType: ''
    returnType: int
    signature: "int finalize_hashfile(struct hashfile *f, unsigned char *result,\n\t\t
      \     enum fsync_component component, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/csum-file.c:107,1
    - Dst: close
      Src: /src/git/csum-file.c:109,1
    - Dst: free_hashfile
      Src: /src/git/csum-file.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: discard_hashfile
    functionSourceFile: /src/git/csum-file.c
    functionUses: 0
    functionsReached:
    - close
    - free_hashfile
    linkageType: ''
    returnType: void
    signature: void discard_hashfile(struct hashfile *f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/git/csum-file.c:120,1
    - Dst: git_hash_update
      Src: /src/git/csum-file.c:130,1
    - Dst: flush
      Src: /src/git/csum-file.c:131,1
    - Dst: memcpy
      Src: /src/git/csum-file.c:137,1
    - Dst: hashflush
      Src: /src/git/csum-file.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - f
    - buf
    - count
    argTypes:
    - struct hashfile*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 147
    functionName: hashwrite
    functionSourceFile: /src/git/csum-file.c
    functionUses: 18
    functionsReached:
    - memcpy
    - crc32
    - flush
    - git_hash_update
    - hashflush
    linkageType: ''
    returnType: void
    signature: void hashwrite(struct hashfile *f, const void *buf, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xopen
      Src: /src/git/csum-file.c:155,1
    - Dst: xopen
      Src: /src/git/csum-file.c:156,1
    - Dst: hashfd
      Src: /src/git/csum-file.c:157,1
    - Dst: xmalloc
      Src: /src/git/csum-file.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - algop
    - name
    argTypes:
    - struct git_hash_algo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: hashfd_check
    functionSourceFile: /src/git/csum-file.c
    functionUses: 2
    functionsReached:
    - xopen
    - xmalloc
    - hashfd
    linkageType: ''
    returnType: struct hashfile
    signature: "struct hashfile *hashfd_check(const struct git_hash_algo *algop,\n\t\t\t
      \     const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/csum-file.c:168,1
    - Dst: unsafe_hash_algo
      Src: /src/git/csum-file.c:178,1
    - Dst: struct hashfile*::algop::init_fn
      Src: /src/git/csum-file.c:179,1
    - Dst: xmalloc
      Src: /src/git/csum-file.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - algop
    - fd
    - name
    - opts
    argTypes:
    - struct git_hash_algo*
    - int
    - char*
    - struct hashfd_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 186
    functionName: hashfd_ext
    functionSourceFile: /src/git/csum-file.c
    functionUses: 0
    functionsReached:
    - unsafe_hash_algo
    - xmalloc
    - struct hashfile*::algop::init_fn
    linkageType: ''
    returnType: struct hashfile
    signature: "struct hashfile *hashfd_ext(const struct git_hash_algo *algop,\n\t\t\t
      \   int fd, const char *name,\n\t\t\t    const struct hashfd_options *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashfd_ext
      Src: /src/git/csum-file.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - algop
    - fd
    - name
    argTypes:
    - struct git_hash_algo*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: hashfd
    functionSourceFile: /src/git/csum-file.c
    functionUses: 9
    functionsReached:
    - hashfd_ext
    linkageType: ''
    returnType: struct hashfile
    signature: "struct hashfile *hashfd(const struct git_hash_algo *algop,\n\t\t\tint
      fd, const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/csum-file.c:203,1
    - Dst: struct hashfile*::algop::init_fn
      Src: /src/git/csum-file.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - checkpoint
    argTypes:
    - struct hashfile*
    - struct hashfile_checkpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: hashfile_checkpoint_init
    functionSourceFile: /src/git/csum-file.c
    functionUses: 1
    functionsReached:
    - memset
    - struct hashfile*::algop::init_fn
    linkageType: ''
    returnType: void
    signature: "void hashfile_checkpoint_init(struct hashfile *f,\n\t\t\t      struct
      hashfile_checkpoint *checkpoint)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashflush
      Src: /src/git/csum-file.c:209,1
    - Dst: git_hash_clone
      Src: /src/git/csum-file.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - f
    - checkpoint
    argTypes:
    - struct hashfile*
    - struct hashfile_checkpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: hashfile_checkpoint
    functionSourceFile: /src/git/csum-file.c
    functionUses: 1
    functionsReached:
    - git_hash_clone
    - hashflush
    linkageType: ''
    returnType: void
    signature: void hashfile_checkpoint(struct hashfile *f, struct hashfile_checkpoint
      *checkpoint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ftruncate
      Src: /src/git/csum-file.c:218,1
    - Dst: lseek
      Src: /src/git/csum-file.c:219,1
    - Dst: git_hash_clone
      Src: /src/git/csum-file.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - f
    - checkpoint
    argTypes:
    - struct hashfile*
    - struct hashfile_checkpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: hashfile_truncate
    functionSourceFile: /src/git/csum-file.c
    functionUses: 1
    functionsReached:
    - ftruncate
    - lseek
    - git_hash_clone
    linkageType: ''
    returnType: int
    signature: int hashfile_truncate(struct hashfile *f, struct hashfile_checkpoint
      *checkpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/git/csum-file.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: crc32_begin
    functionSourceFile: /src/git/csum-file.c
    functionUses: 1
    functionsReached:
    - crc32
    linkageType: ''
    returnType: void
    signature: void crc32_begin(struct hashfile *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: crc32_end
    functionSourceFile: /src/git/csum-file.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32_end(struct hashfile *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unsafe_hash_algo
      Src: /src/git/csum-file.c:246,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/csum-file.c:251,1
    - Dst: git_hash_update
      Src: /src/git/csum-file.c:252,1
    - Dst: git_hash_final
      Src: /src/git/csum-file.c:253,1
    - Dst: hasheq
      Src: /src/git/csum-file.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - algop
    - data
    - total_len
    argTypes:
    - struct git_hash_algo*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 256
    functionName: hashfile_checksum_valid
    functionSourceFile: /src/git/csum-file.c
    functionUses: 5
    functionsReached:
    - hasheq
    - git_hash_final
    - unsafe_hash_algo
    - git_hash_update
    - struct git_hash_algo*::init_fn
    linkageType: ''
    returnType: int
    signature: "int hashfile_checksum_valid(const struct git_hash_algo *algop,\n\t\t\t
      \   const unsigned char *data, size_t total_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/submodule.c:49,1
    - Dst: strlen
      Src: /src/git/submodule.c:49,1
    - Dst: ce_namelen
      Src: /src/git/submodule.c:54,1
    - Dst: strlen
      Src: /src/git/submodule.c:54,1
    - Dst: strcmp
      Src: /src/git/submodule.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: is_gitmodules_unmerged
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - index_name_pos
    - ce_namelen
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_gitmodules_unmerged(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/submodule.c:77,1
    - Dst: repo_get_oid
      Src: /src/git/submodule.c:78,1
    - Dst: repo_get_oid
      Src: /src/git/submodule.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: is_writing_gitmodules_ok
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - file_exists
    - repo_get_oid
    linkageType: ''
    returnType: int
    signature: int is_writing_gitmodules_ok(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/submodule.c:91,1
    - Dst: strlen
      Src: /src/git/submodule.c:91,1
    - Dst: lstat
      Src: /src/git/submodule.c:95,1
    - Dst: ie_modified
      Src: /src/git/submodule.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 10
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: is_staging_gitmodules_ok
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - ie_modified
    - index_name_pos
    - lstat
    - strlen
    linkageType: ''
    returnType: int
    signature: int is_staging_gitmodules_ok(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_remote_ref
      Src: /src/git/submodule.c:106,1
    - Dst: repo_get_submodule_ref_store
      Src: /src/git/submodule.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - submodule
    - fn
    - cb_data
    argTypes:
    - char*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: for_each_remote_ref_submodule
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - refs_for_each_remote_ref
    - repo_get_submodule_ref_store
    linkageType: ''
    returnType: int
    signature: "int for_each_remote_ref_submodule(const char *submodule,\n\t\t\t\t\t
      refs_for_each_cb fn, void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/submodule.c:122,1
    - Dst: is_gitmodules_unmerged
      Src: /src/git/submodule.c:125,1
    - Dst: die
      Src: /src/git/submodule.c:126,1
    - Dst: _
      Src: /src/git/submodule.c:126,1
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:128,1
    - Dst: null_oid
      Src: /src/git/submodule.c:128,1
    - Dst: warning
      Src: /src/git/submodule.c:130,1
    - Dst: _
      Src: /src/git/submodule.c:130,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:133,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:134,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:135,1
    - Dst: config_set_in_gitmodules_file_gently
      Src: /src/git/submodule.c:136,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - oldpath
    - newpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 116
    functionDepth: 7
    functionLinenumber: 116
    functionLinenumberEnd: 139
    functionName: update_path_in_gitmodules
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - strbuf_release
    - die
    - config_set_in_gitmodules_file_gently
    - strbuf_addstr
    - _
    - file_exists
    - warning
    - null_oid
    - is_gitmodules_unmerged
    linkageType: ''
    returnType: int
    signature: int update_path_in_gitmodules(const char *oldpath, const char *newpath)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/submodule.c:151,1
    - Dst: is_gitmodules_unmerged
      Src: /src/git/submodule.c:154,1
    - Dst: die
      Src: /src/git/submodule.c:155,1
    - Dst: _
      Src: /src/git/submodule.c:155,1
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:157,1
    - Dst: null_oid
      Src: /src/git/submodule.c:157,1
    - Dst: warning
      Src: /src/git/submodule.c:159,1
    - Dst: _
      Src: /src/git/submodule.c:159,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:162,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:163,1
    - Dst: repo_config_rename_section_in_file
      Src: /src/git/submodule.c:164,1
    - Dst: warning
      Src: /src/git/submodule.c:166,1
    - Dst: _
      Src: /src/git/submodule.c:166,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:167,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 146
    functionDepth: 10
    functionLinenumber: 146
    functionLinenumberEnd: 172
    functionName: remove_path_from_gitmodules
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - strbuf_release
    - die
    - repo_config_rename_section_in_file
    - strbuf_addstr
    - _
    - file_exists
    - warning
    - null_oid
    - is_gitmodules_unmerged
    linkageType: ''
    returnType: int
    signature: int remove_path_from_gitmodules(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_file_to_index
      Src: /src/git/submodule.c:176,1
    - Dst: die
      Src: /src/git/submodule.c:177,1
    - Dst: _
      Src: /src/git/submodule.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 11
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: stage_updated_gitmodules
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - add_file_to_index
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void stage_updated_gitmodules(struct index_state *istate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:183,1
    - Dst: null_oid
      Src: /src/git/submodule.c:184,1
    - Dst: xstrfmt
      Src: /src/git/submodule.c:190,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/submodule.c:191,1
    - Dst: free
      Src: /src/git/submodule.c:193,1
    - Dst: handle_ignore_submodules_arg
      Src: /src/git/submodule.c:196,1
    - Dst: is_gitmodules_unmerged
      Src: /src/git/submodule.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - diffopt
    - path
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 180
    functionDepth: 19
    functionLinenumber: 180
    functionLinenumberEnd: 200
    functionName: set_diffopt_flags_from_submodule_config
    functionSourceFile: /src/git/submodule.c
    functionUses: 2
    functionsReached:
    - submodule_from_path
    - handle_ignore_submodules_arg
    - repo_config_get_string_tmp
    - xstrfmt
    - free
    - null_oid
    - is_gitmodules_unmerged
    linkageType: ''
    returnType: void
    signature: "void set_diffopt_flags_from_submodule_config(struct diff_options *diffopt,\n\t\t\t\t\t
      \    const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/submodule.c:206,1
    - Dst: git_config_bool
      Src: /src/git/submodule.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - var
    - value
    - UNUSED
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 6
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: git_default_submodule_config
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_default_submodule_config(const char *var, const char *value,\n\t\t\t\t
      void *cb UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_update_recurse_submodules_arg
      Src: /src/git/submodule.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 229
    functionName: option_parse_recurse_submodules_worktree_updater
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - parse_update_recurse_submodules_arg
    linkageType: ''
    returnType: int
    signature: "int option_parse_recurse_submodules_worktree_updater(const struct
      option *opt,\n\t\t\t\t\t\t     const char *arg, int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:249,1
    - Dst: xstrfmt
      Src: /src/git/submodule.c:256,1
    - Dst: repo_config_get_bool
      Src: /src/git/submodule.c:257,1
    - Dst: free
      Src: /src/git/submodule.c:258,1
    - Dst: free
      Src: /src/git/submodule.c:261,1
    - Dst: repo_config_get_string_multi
      Src: /src/git/submodule.c:264,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:270,1
    - Dst: parse_pathspec
      Src: /src/git/submodule.c:273,1
    - Dst: match_pathspec
      Src: /src/git/submodule.c:274,1
    - Dst: strlen
      Src: /src/git/submodule.c:274,1
    - Dst: strvec_clear
      Src: /src/git/submodule.c:276,1
    - Dst: clear_pathspec
      Src: /src/git/submodule.c:277,1
    - Dst: xstrfmt
      Src: /src/git/submodule.c:282,1
    - Dst: repo_config_get_string
      Src: /src/git/submodule.c:283,1
    - Dst: free
      Src: /src/git/submodule.c:285,1
    - Dst: free
      Src: /src/git/submodule.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - repo
    - treeish_name
    - path
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 239
    functionDepth: 19
    functionLinenumber: 239
    functionLinenumberEnd: 288
    functionName: is_tree_submodule_active
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - submodule_from_path
    - strvec_push
    - clear_pathspec
    - repo_config_get_string_multi
    - xstrfmt
    - repo_config_get_string
    - repo_config_get_bool
    - strlen
    - strvec_clear
    - match_pathspec
    - free
    - parse_pathspec
    linkageType: ''
    returnType: int
    signature: "int is_tree_submodule_active(struct repository *repo,\n\t\t\t     const
      struct object_id *treeish_name,\n\t\t\t     const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/submodule.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/submodule.c
    functionUses: 47
    functionsReached:
    - strvec_push
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_tree_submodule_active
      Src: /src/git/submodule.c:292,1
    - Dst: null_oid
      Src: /src/git/submodule.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 20
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: is_submodule_active
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - null_oid
    - is_tree_submodule_active
    linkageType: ''
    returnType: int
    signature: int is_submodule_active(struct repository *repo, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/submodule.c:298,1
    - Dst: resolve_gitdir_gently
      Src: /src/git/submodule.c:300,1
    - Dst: free
      Src: /src/git/submodule.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - path
    - return_error_code
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 295
    functionDepth: 8
    functionLinenumber: 295
    functionLinenumberEnd: 305
    functionName: is_submodule_populated_gently
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - resolve_gitdir_gently
    - xstrfmt
    - free
    linkageType: ''
    returnType: int
    signature: int is_submodule_populated_gently(const char *path, int *return_error_code)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/submodule.c:318,1
    - Dst: ce_namelen
      Src: /src/git/submodule.c:322,1
    - Dst: S_ISGITLINK
      Src: /src/git/submodule.c:324,1
    - Dst: strncmp
      Src: /src/git/submodule.c:328,1
    - Dst: die
      Src: /src/git/submodule.c:333,1
    - Dst: _
      Src: /src/git/submodule.c:333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 2
    argNames:
    - istate
    - prefix
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 335
    functionName: die_in_unpopulated_submodule
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - die
    - ce_namelen
    - S_ISGITLINK
    - strlen
    - _
    - strncmp
    linkageType: ''
    returnType: void
    signature: "void die_in_unpopulated_submodule(struct index_state *istate,\n\t\t\t\t
      \ const char *prefix)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ce_namelen
      Src: /src/git/submodule.c:347,1
    - Dst: S_ISGITLINK
      Src: /src/git/submodule.c:349,1
    - Dst: strncmp
      Src: /src/git/submodule.c:359,1
    - Dst: die
      Src: /src/git/submodule.c:364,1
    - Dst: _
      Src: /src/git/submodule.c:364,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 2
    argNames:
    - istate
    - ps
    argTypes:
    - struct index_state*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 368
    functionName: die_path_inside_submodule
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - die
    - ce_namelen
    - S_ISGITLINK
    - _
    - strncmp
    linkageType: ''
    returnType: void
    signature: "void die_path_inside_submodule(struct index_state *istate,\n\t\t\t
      \      const struct pathspec *ps)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/submodule.c:372,1
    - Dst: strcmp
      Src: /src/git/submodule.c:374,1
    - Dst: strcmp
      Src: /src/git/submodule.c:376,1
    - Dst: strcmp
      Src: /src/git/submodule.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 384
    functionName: parse_submodule_update_type
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum submodule_update_type
    signature: enum submodule_update_type parse_submodule_update_type(const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/submodule.c:391,1
    - Dst: parse_submodule_update_type
      Src: /src/git/submodule.c:394,1
    - Dst: xstrdup
      Src: /src/git/submodule.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - value
    - dst
    argTypes:
    - char*
    - struct submodule_update_strategy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 403
    functionName: parse_submodule_update_strategy
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - xstrdup
    - parse_submodule_update_type
    - free
    linkageType: ''
    returnType: int
    signature: "int parse_submodule_update_strategy(const char *value,\n\t\tstruct
      submodule_update_strategy *dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/submodule.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - strategy
    argTypes:
    - struct submodule_update_strategy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: submodule_update_strategy_release
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void submodule_update_strategy_release(struct submodule_update_strategy
      *strategy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/submodule.c:423,1
    - Dst: BUG
      Src: /src/git/submodule.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum submodule_update_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: submodule_update_type_to_string
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *submodule_update_type_to_string(enum submodule_update_type type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/submodule.c:437,1
    - Dst: strcmp
      Src: /src/git/submodule.c:439,1
    - Dst: strcmp
      Src: /src/git/submodule.c:441,1
    - Dst: strcmp
      Src: /src/git/submodule.c:443,1
    - Dst: die
      Src: /src/git/submodule.c:444,1
    - Dst: _
      Src: /src/git/submodule.c:444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - diffopt
    - arg
    argTypes:
    - struct diff_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 449
    functionName: handle_ignore_submodules_arg
    functionSourceFile: /src/git/submodule.c
    functionUses: 5
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void handle_ignore_submodules_arg(struct diff_options *diffopt,\n\t\t\t\t
      \ const char *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/submodule.c:458,1
    - Dst: setup_revisions
      Src: /src/git/submodule.c:459,1
    - Dst: add_pending_object
      Src: /src/git/submodule.c:463,1
    - Dst: add_pending_object
      Src: /src/git/submodule.c:464,1
    - Dst: add_pending_object
      Src: /src/git/submodule.c:467,1
    - Dst: oid_to_hex
      Src: /src/git/submodule.c:468,1
    - Dst: prepare_revision_walk
      Src: /src/git/submodule.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - r
    - rev
    - path
    - left
    - right
    - merge_bases
    argTypes:
    - struct repository*
    - struct rev_info*
    - char*
    - struct commit*
    - struct commit*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 451
    functionDepth: 12
    functionLinenumber: 451
    functionLinenumberEnd: 471
    functionName: prepare_submodule_diff_summary
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - repo_init_revisions
    - add_pending_object
    - prepare_revision_walk
    - setup_revisions
    linkageType: ''
    returnType: int
    signature: "int prepare_submodule_diff_summary(struct repository *r, struct rev_info
      *rev,\n\t\t\t\t\t  const char *path,\n\t\t\t\t\t  struct commit *left, struct
      commit *right,\n\t\t\t\t\t  struct commit_list *merge_bases)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_revision
      Src: /src/git/submodule.c:479,1
    - Dst: get_log_output_encoding
      Src: /src/git/submodule.c:482,1
    - Dst: strbuf_setlen
      Src: /src/git/submodule.c:483,1
    - Dst: repo_format_commit_message
      Src: /src/git/submodule.c:484,1
    - Dst: strbuf_addch
      Src: /src/git/submodule.c:486,1
    - Dst: diff_emit_submodule_del
      Src: /src/git/submodule.c:488,1
    - Dst: diff_emit_submodule_add
      Src: /src/git/submodule.c:490,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - r
    - rev
    - o
    argTypes:
    - struct repository*
    - struct rev_info*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 473
    functionDepth: 14
    functionLinenumber: 473
    functionLinenumberEnd: 493
    functionName: print_submodule_diff_summary
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - strbuf_release
    - diff_emit_submodule_del
    - strbuf_setlen
    - strbuf_addch
    - get_log_output_encoding
    - diff_emit_submodule_add
    - get_revision
    linkageType: ''
    returnType: void
    signature: void print_submodule_diff_summary(struct repository *r, struct rev_info
      *rev, struct diff_options *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_other_repo_env
      Src: /src/git/submodule.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: prepare_submodule_repo_env
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - prepare_other_repo_env
    linkageType: ''
    returnType: void
    signature: void prepare_submodule_repo_env(struct strvec *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_other_repo_env
      Src: /src/git/submodule.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: prepare_submodule_repo_env_in_gitdir
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - prepare_other_repo_env
    linkageType: ''
    returnType: void
    signature: void prepare_submodule_repo_env_in_gitdir(struct strvec *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/submodule.c:514,1
    - Dst: submodule_to_gitdir
      Src: /src/git/submodule.c:516,1
    - Dst: repo_init
      Src: /src/git/submodule.c:517,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:518,1
    - Dst: free
      Src: /src/git/submodule.c:519,1
    - Dst: xstrdup
      Src: /src/git/submodule.c:524,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 511
    functionDepth: 9
    functionLinenumber: 511
    functionLinenumberEnd: 528
    functionName: open_submodule
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - submodule_to_gitdir
    - xmalloc
    - repo_init
    - free
    - xstrdup
    linkageType: ''
    returnType: struct repository
    signature: struct repository *open_submodule(const char *path)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: diff_emit_submodule_untracked
      Src: /src/git/submodule.c:551,1
    - Dst: diff_emit_submodule_modified
      Src: /src/git/submodule.c:554,1
    - Dst: is_null_oid
      Src: /src/git/submodule.c:556,1
    - Dst: is_null_oid
      Src: /src/git/submodule.c:558,1
    - Dst: lookup_commit_reference
      Src: /src/git/submodule.c:571,1
    - Dst: lookup_commit_reference
      Src: /src/git/submodule.c:572,1
    - Dst: is_null_oid
      Src: /src/git/submodule.c:578,1
    - Dst: is_null_oid
      Src: /src/git/submodule.c:579,1
    - Dst: repo_get_merge_bases
      Src: /src/git/submodule.c:583,1
    - Dst: oideq
      Src: /src/git/submodule.c:595,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:596,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:601,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/submodule.c:602,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:603,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/submodule.c:604,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:606,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:608,1
    - Dst: diff_emit_submodule_header
      Src: /src/git/submodule.c:609,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:611,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 9
    argNames:
    - o
    - path
    - one
    - two
    - dirty_submodule
    - sub
    - left
    - right
    - merge_bases
    argTypes:
    - struct diff_options*
    - char*
    - struct object_id*
    - struct object_id*
    - unsigned
    - struct repository*
    - struct commit**
    - struct commit**
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 538
    functionDepth: 25
    functionLinenumber: 538
    functionLinenumberEnd: 612
    functionName: show_submodule_header
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - lookup_commit_reference
    - strbuf_addf
    - repo_get_merge_bases
    - is_null_oid
    - diff_emit_submodule_header
    - diff_emit_submodule_untracked
    - diff_emit_submodule_modified
    - strbuf_addstr
    - strbuf_add_unique_abbrev
    - oideq
    linkageType: ''
    returnType: void
    signature: "void show_submodule_header(struct diff_options *o,\n\t\tconst char
      *path,\n\t\tstruct object_id *one, struct object_id *two,\n\t\tunsigned dirty_submodule,\n\t\tstruct
      repository *sub,\n\t\tstruct commit **left, struct commit **right,\n\t\tstruct
      commit_list **merge_bases)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_submodule
      Src: /src/git/submodule.c:623,1
    - Dst: show_submodule_header
      Src: /src/git/submodule.c:624,1
    - Dst: prepare_submodule_diff_summary
      Src: /src/git/submodule.c:636,1
    - Dst: diff_emit_submodule_error
      Src: /src/git/submodule.c:637,1
    - Dst: print_submodule_diff_summary
      Src: /src/git/submodule.c:641,1
    - Dst: commit_list_free
      Src: /src/git/submodule.c:644,1
    - Dst: release_revisions
      Src: /src/git/submodule.c:645,1
    - Dst: clear_commit_marks
      Src: /src/git/submodule.c:646,1
    - Dst: clear_commit_marks
      Src: /src/git/submodule.c:647,1
    - Dst: repo_clear
      Src: /src/git/submodule.c:649,1
    - Dst: free
      Src: /src/git/submodule.c:650,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - o
    - path
    - one
    - two
    - dirty_submodule
    argTypes:
    - struct diff_options*
    - char*
    - struct object_id*
    - struct object_id*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 614
    functionDepth: 26
    functionLinenumber: 614
    functionLinenumberEnd: 652
    functionName: show_submodule_diff_summary
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - open_submodule
    - release_revisions
    - show_submodule_header
    - diff_emit_submodule_error
    - clear_commit_marks
    - repo_clear
    - commit_list_free
    - prepare_submodule_diff_summary
    - free
    - print_submodule_diff_summary
    linkageType: ''
    returnType: void
    signature: "void show_submodule_diff_summary(struct diff_options *o, const char
      *path,\n\t\tstruct object_id *one, struct object_id *two,\n\t\tunsigned dirty_submodule)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: open_submodule
      Src: /src/git/submodule.c:665,1
    - Dst: show_submodule_header
      Src: /src/git/submodule.c:666,1
    - Dst: is_null_oid
      Src: /src/git/submodule.c:670,1
    - Dst: is_null_oid
      Src: /src/git/submodule.c:671,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:685,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:686,1
    - Dst: want_color
      Src: /src/git/submodule.c:686,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:690,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:692,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:695,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:697,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:700,1
    - Dst: oid_to_hex
      Src: /src/git/submodule.c:700,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:708,1
    - Dst: oid_to_hex
      Src: /src/git/submodule.c:708,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:710,1
    - Dst: is_directory
      Src: /src/git/submodule.c:712,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:717,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:718,1
    - Dst: start_command
      Src: /src/git/submodule.c:721,1
    - Dst: diff_emit_submodule_error
      Src: /src/git/submodule.c:722,1
    - Dst: strbuf_getwholeline_fd
      Src: /src/git/submodule.c:726,1
    - Dst: diff_emit_submodule_pipethrough
      Src: /src/git/submodule.c:727,1
    - Dst: finish_command
      Src: /src/git/submodule.c:729,1
    - Dst: diff_emit_submodule_error
      Src: /src/git/submodule.c:730,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:733,1
    - Dst: commit_list_free
      Src: /src/git/submodule.c:734,1
    - Dst: clear_commit_marks
      Src: /src/git/submodule.c:736,1
    - Dst: clear_commit_marks
      Src: /src/git/submodule.c:738,1
    - Dst: repo_clear
      Src: /src/git/submodule.c:740,1
    - Dst: free
      Src: /src/git/submodule.c:741,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 5
    argNames:
    - o
    - path
    - one
    - two
    - dirty_submodule
    argTypes:
    - struct diff_options*
    - char*
    - struct object_id*
    - struct object_id*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 654
    functionDepth: 26
    functionLinenumber: 654
    functionLinenumberEnd: 743
    functionName: show_submodule_inline_diff
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - is_directory
    - is_null_oid
    - clear_commit_marks
    - free
    - strbuf_release
    - finish_command
    - diff_emit_submodule_error
    - open_submodule
    - oid_to_hex
    - prepare_submodule_repo_env
    - show_submodule_header
    - strvec_pushl
    - diff_emit_submodule_pipethrough
    - want_color
    - strvec_pushf
    - repo_clear
    - commit_list_free
    - strbuf_getwholeline_fd
    - start_command
    linkageType: ''
    returnType: void
    signature: "void show_submodule_inline_diff(struct diff_options *o, const char
      *path,\n\t\tstruct object_id *one, struct object_id *two,\n\t\tunsigned dirty_submodule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 748
    functionName: should_update_submodules
    functionSourceFile: /src/git/submodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int should_update_submodules(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/submodule.c:752,1
    - Dst: should_update_submodules
      Src: /src/git/submodule.c:755,1
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:758,1
    - Dst: null_oid
      Src: /src/git/submodule.c:758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ce
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 750
    functionDepth: 7
    functionLinenumber: 750
    functionLinenumberEnd: 759
    functionName: submodule_from_ce
    functionSourceFile: /src/git/submodule.c
    functionUses: 8
    functionsReached:
    - submodule_from_path
    - should_update_submodules
    - S_ISGITLINK
    - null_oid
    linkageType: ''
    returnType: struct submodule
    signature: struct submodule *submodule_from_ce(const struct cache_entry *ce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_submodule_populated_gently
      Src: /src/git/submodule.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path_or_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 775
    functionDepth: 9
    functionLinenumber: 775
    functionLinenumberEnd: 783
    functionName: default_name_or_path
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - is_submodule_populated_gently
    linkageType: ''
    returnType: char
    signature: char *default_name_or_path(const char *path_or_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_clear
      Src: /src/git/submodule.c:827,1
    - Dst: free
      Src: /src/git/submodule.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs_data
    argTypes:
    - struct changed_submodule_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 829
    functionName: changed_submodule_data_clear
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - oid_array_clear
    - free
    linkageType: ''
    returnType: void
    signature: void changed_submodule_data_clear(struct changed_submodule_data *cs_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/submodule.c:847,1
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:850,1
    - Dst: default_name_or_path
      Src: /src/git/submodule.c:855,1
    - Dst: submodule_from_name
      Src: /src/git/submodule.c:858,1
    - Dst: warning
      Src: /src/git/submodule.c:861,1
    - Dst: _
      Src: /src/git/submodule.c:861,1
    - Dst: oid_to_hex
      Src: /src/git/submodule.c:864,1
    - Dst: string_list_insert
      Src: /src/git/submodule.c:872,1
    - Dst: xcalloc
      Src: /src/git/submodule.c:876,1
    - Dst: xstrdup
      Src: /src/git/submodule.c:879,1
    - Dst: oid_array_append
      Src: /src/git/submodule.c:881,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - q
    - options
    - data
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 831
    functionDepth: 10
    functionLinenumber: 831
    functionLinenumberEnd: 883
    functionName: collect_changed_submodules_cb
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - oid_to_hex
    - string_list_insert
    - default_name_or_path
    - S_ISGITLINK
    - xcalloc
    - _
    - submodule_from_name
    - warning
    - oid_array_append
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void collect_changed_submodules_cb(struct diff_queue_struct *q,\n\t\t\t\t\t
      \ struct diff_options *options UNUSED,\n\t\t\t\t\t  void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/submodule.c:904,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/submodule.c:905,1
    - Dst: prepare_revision_walk
      Src: /src/git/submodule.c:907,1
    - Dst: die
      Src: /src/git/submodule.c:908,1
    - Dst: _
      Src: /src/git/submodule.c:908,1
    - Dst: get_revision
      Src: /src/git/submodule.c:910,1
    - Dst: repo_init_revisions
      Src: /src/git/submodule.c:917,1
    - Dst: diff_tree_combined_merge
      Src: /src/git/submodule.c:922,1
    - Dst: release_revisions
      Src: /src/git/submodule.c:923,1
    - Dst: reset_revision_walk
      Src: /src/git/submodule.c:926,1
    - Dst: release_revisions
      Src: /src/git/submodule.c:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - r
    - changed
    - argv
    argTypes:
    - struct repository*
    - struct string_list*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 891
    functionDepth: 13
    functionLinenumber: 891
    functionLinenumberEnd: 928
    functionName: collect_changed_submodules
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - die
    - diff_tree_combined_merge
    - release_revisions
    - get_revision
    - reset_revision_walk
    - repo_init_revisions
    - setup_revisions_from_strvec
    - prepare_revision_walk
    - _
    linkageType: ''
    returnType: void
    signature: "void collect_changed_submodules(struct repository *r,\n\t\t\t\t       struct
      string_list *changed,\n\t\t\t\t       struct strvec *argv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/submodule.c:933,1
    - Dst: changed_submodule_data_clear
      Src: /src/git/submodule.c:934,1
    - Dst: string_list_clear
      Src: /src/git/submodule.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - submodules
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 930
    functionDepth: 3
    functionLinenumber: 930
    functionLinenumberEnd: 937
    functionName: free_submodules_data
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - changed_submodule_data_clear
    - string_list_clear
    linkageType: ''
    returnType: void
    signature: void free_submodules_data(struct string_list *submodules)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 942
    functionName: has_remote
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_remote(const struct reference *ref UNUSED, void *cb_data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/submodule.c:947,1
    - Dst: oid_to_hex
      Src: /src/git/submodule.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - oid
    - data
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 944
    functionDepth: 3
    functionLinenumber: 944
    functionLinenumberEnd: 949
    functionName: append_oid_to_argv
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - oid_to_hex
    linkageType: ''
    returnType: int
    signature: int append_oid_to_argv(const struct object_id *oid, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_submodule_init
      Src: /src/git/submodule.c:964,1
    - Dst: odb_read_object_info
      Src: /src/git/submodule.c:970,1
    - Dst: die
      Src: /src/git/submodule.c:983,1
    - Dst: _
      Src: /src/git/submodule.c:983,1
    - Dst: oid_to_hex
      Src: /src/git/submodule.c:984,1
    - Dst: type_name
      Src: /src/git/submodule.c:984,1
    - Dst: repo_clear
      Src: /src/git/submodule.c:987,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - oid
    - data
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 958
    functionDepth: 12
    functionLinenumber: 958
    functionLinenumberEnd: 989
    functionName: check_has_commit
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - repo_submodule_init
    - repo_clear
    - odb_read_object_info
    - _
    - type_name
    linkageType: ''
    returnType: int
    signature: int check_has_commit(const struct object_id *oid, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:1003,1
    - Dst: exit
      Src: /src/git/submodule.c:1004,1
    - Dst: oid_array_for_each_unique
      Src: /src/git/submodule.c:1006,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:1017,1
    - Dst: oid_array_for_each_unique
      Src: /src/git/submodule.c:1018,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:1019,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:1021,1
    - Dst: capture_command
      Src: /src/git/submodule.c:1026,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:1029,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - r
    - path
    - super_oid
    - commits
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 991
    functionDepth: 4
    functionLinenumber: 991
    functionLinenumberEnd: 1033
    functionName: submodule_has_commits
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - prepare_submodule_repo_env
    - strbuf_release
    - exit
    - strvec_pushl
    - validate_submodule_path
    - capture_command
    - oid_array_for_each_unique
    linkageType: ''
    returnType: int
    signature: "int submodule_has_commits(struct repository *r,\n\t\t\t\t const char
      *path,\n\t\t\t\t const struct object_id *super_oid,\n\t\t\t\t struct oid_array
      *commits)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: submodule_has_commits
      Src: /src/git/submodule.c:1039,1
    - Dst: null_oid
      Src: /src/git/submodule.c:1039,1
    - Dst: for_each_remote_ref_submodule
      Src: /src/git/submodule.c:1053,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1058,1
    - Dst: oid_array_for_each_unique
      Src: /src/git/submodule.c:1059,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:1060,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:1062,1
    - Dst: start_command
      Src: /src/git/submodule.c:1067,1
    - Dst: die
      Src: /src/git/submodule.c:1068,1
    - Dst: _
      Src: /src/git/submodule.c:1068,1
    - Dst: strbuf_read
      Src: /src/git/submodule.c:1070,1
    - Dst: finish_command
      Src: /src/git/submodule.c:1072,1
    - Dst: close
      Src: /src/git/submodule.c:1073,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:1074,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - r
    - path
    - commits
    argTypes:
    - struct repository*
    - char*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1035
    functionDepth: 7
    functionLinenumber: 1035
    functionLinenumberEnd: 1079
    functionName: submodule_needs_pushing
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - for_each_remote_ref_submodule
    - strvec_push
    - prepare_submodule_repo_env
    - die
    - strbuf_read
    - finish_command
    - strbuf_release
    - strvec_pushl
    - submodule_has_commits
    - oid_array_for_each_unique
    - _
    - close
    - null_oid
    - start_command
    linkageType: ''
    returnType: int
    signature: "int submodule_needs_pushing(struct repository *r,\n\t\t\t\t   const
      char *path,\n\t\t\t\t   struct oid_array *commits)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/submodule.c:1091,1
    - Dst: oid_array_for_each_unique
      Src: /src/git/submodule.c:1092,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1093,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:1094,1
    - Dst: collect_changed_submodules
      Src: /src/git/submodule.c:1096,1
    - Dst: for_each_string_list_item
      Src: /src/git/submodule.c:1098,1
    - Dst: submodule_from_name
      Src: /src/git/submodule.c:1103,1
    - Dst: null_oid
      Src: /src/git/submodule.c:1103,1
    - Dst: default_name_or_path
      Src: /src/git/submodule.c:1107,1
    - Dst: submodule_needs_pushing
      Src: /src/git/submodule.c:1112,1
    - Dst: string_list_insert
      Src: /src/git/submodule.c:1113,1
    - Dst: free_submodules_data
      Src: /src/git/submodule.c:1116,1
    - Dst: strvec_clear
      Src: /src/git/submodule.c:1117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - r
    - commits
    - remotes_name
    - needs_pushing
    argTypes:
    - struct repository*
    - struct oid_array*
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1081
    functionDepth: 14
    functionLinenumber: 1081
    functionLinenumberEnd: 1120
    functionName: find_unpushed_submodules
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - for_each_string_list_item
    - submodule_needs_pushing
    - string_list_insert
    - free_submodules_data
    - default_name_or_path
    - strvec_clear
    - oid_array_for_each_unique
    - collect_changed_submodules
    - submodule_from_name
    - null_oid
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int find_unpushed_submodules(struct repository *r,\n\t\t\t     struct
      oid_array *commits,\n\t\t\t     const char *remotes_name,\n\t\t\t     struct
      string_list *needs_pushing)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:1128,1
    - Dst: exit
      Src: /src/git/submodule.c:1129,1
    - Dst: for_each_remote_ref_submodule
      Src: /src/git/submodule.c:1131,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1133,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1139,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1141,1
    - Dst: for_each_string_list_item
      Src: /src/git/submodule.c:1145,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:1146,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1152,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1154,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:1157,1
    - Dst: run_command
      Src: /src/git/submodule.c:1161,1
    - Dst: close
      Src: /src/git/submodule.c:1163,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - path
    - remote
    - rs
    - push_options
    - dry_run
    argTypes:
    - char*
    - struct remote*
    - struct refspec*
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1122
    functionDepth: 8
    functionLinenumber: 1122
    functionLinenumberEnd: 1167
    functionName: push_submodule
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - for_each_remote_ref_submodule
    - strvec_push
    - for_each_string_list_item
    - prepare_submodule_repo_env
    - run_command
    - exit
    - validate_submodule_path
    - close
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int push_submodule(const char *path,\n\t\t\t  const struct remote
      *remote,\n\t\t\t  const struct refspec *rs,\n\t\t\t  const struct string_list
      *push_options,\n\t\t\t  int dry_run)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:1180,1
    - Dst: exit
      Src: /src/git/submodule.c:1181,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1183,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1184,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1185,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1186,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1189,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:1191,1
    - Dst: run_command
      Src: /src/git/submodule.c:1202,1
    - Dst: die
      Src: /src/git/submodule.c:1203,1
    - Dst: _
      Src: /src/git/submodule.c:1203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - path
    - head
    - remote
    - rs
    argTypes:
    - char*
    - char*
    - struct remote*
    - struct refspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1173
    functionDepth: 8
    functionLinenumber: 1173
    functionLinenumberEnd: 1204
    functionName: submodule_push_check
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - prepare_submodule_repo_env
    - die
    - run_command
    - exit
    - validate_submodule_path
    - _
    linkageType: ''
    returnType: void
    signature: "void submodule_push_check(const char *path, const char *head,\n\t\t\t\t
      const struct remote *remote,\n\t\t\t\t const struct refspec *rs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_unpushed_submodules
      Src: /src/git/submodule.c:1216,1
    - Dst: refs_resolve_refdup
      Src: /src/git/submodule.c:1230,1
    - Dst: get_main_ref_store
      Src: /src/git/submodule.c:1230,1
    - Dst: die
      Src: /src/git/submodule.c:1233,1
    - Dst: _
      Src: /src/git/submodule.c:1233,1
    - Dst: submodule_push_check
      Src: /src/git/submodule.c:1236,1
    - Dst: free
      Src: /src/git/submodule.c:1238,1
    - Dst: fprintf
      Src: /src/git/submodule.c:1244,1
    - Dst: _
      Src: /src/git/submodule.c:1244,1
    - Dst: push_submodule
      Src: /src/git/submodule.c:1245,1
    - Dst: fprintf
      Src: /src/git/submodule.c:1247,1
    - Dst: _
      Src: /src/git/submodule.c:1247,1
    - Dst: string_list_clear
      Src: /src/git/submodule.c:1252,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - r
    - commits
    - remote
    - rs
    - push_options
    - dry_run
    argTypes:
    - struct repository*
    - struct oid_array*
    - struct remote*
    - struct refspec*
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1206
    functionDepth: 15
    functionLinenumber: 1206
    functionLinenumberEnd: 1255
    functionName: push_unpushed_submodules
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    - push_submodule
    - submodule_push_check
    - die
    - find_unpushed_submodules
    - refs_resolve_refdup
    - _
    - free
    - fprintf
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int push_unpushed_submodules(struct repository *r,\n\t\t\t     struct
      oid_array *commits,\n\t\t\t     const struct remote *remote,\n\t\t\t     const
      struct refspec *rs,\n\t\t\t     const struct string_list *push_options,\n\t\t\t
      \    int dry_run)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_append
      Src: /src/git/submodule.c:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1257
    functionDepth: 3
    functionLinenumber: 1257
    functionLinenumberEnd: 1262
    functionName: append_oid_to_array
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - oid_array_append
    linkageType: ''
    returnType: int
    signature: int append_oid_to_array(const struct reference *ref, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_ref
      Src: /src/git/submodule.c:1267,1
    - Dst: get_main_ref_store
      Src: /src/git/submodule.c:1267,1
    - Dst: oid_array_append
      Src: /src/git/submodule.c:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1264
    functionDepth: 4
    functionLinenumber: 1264
    functionLinenumberEnd: 1273
    functionName: check_for_new_submodule_commits
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - oid_array_append
    - refs_for_each_ref
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void check_for_new_submodule_commits(struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path_append
      Src: /src/git/submodule.c:1290,1
    - Dst: file_exists
      Src: /src/git/submodule.c:1291,1
    - Dst: is_empty_dir
      Src: /src/git/submodule.c:1291,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:1292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1285
    functionDepth: 8
    functionLinenumber: 1285
    functionLinenumberEnd: 1294
    functionName: repo_has_absorbed_submodules
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - file_exists
    - repo_git_path_append
    - strbuf_release
    - is_empty_dir
    linkageType: ''
    returnType: int
    signature: int repo_has_absorbed_submodules(struct repository *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:1303,1
    - Dst: repo_has_absorbed_submodules
      Src: /src/git/submodule.c:1304,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1307,1
    - Dst: oid_array_for_each_unique
      Src: /src/git/submodule.c:1308,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1310,1
    - Dst: oid_array_for_each_unique
      Src: /src/git/submodule.c:1311,1
    - Dst: collect_changed_submodules
      Src: /src/git/submodule.c:1318,1
    - Dst: submodule_from_name
      Src: /src/git/submodule.c:1325,1
    - Dst: null_oid
      Src: /src/git/submodule.c:1325,1
    - Dst: default_name_or_path
      Src: /src/git/submodule.c:1329,1
    - Dst: submodule_has_commits
      Src: /src/git/submodule.c:1334,1
    - Dst: null_oid
      Src: /src/git/submodule.c:1334,1
    - Dst: changed_submodule_data_clear
      Src: /src/git/submodule.c:1335,1
    - Dst: string_list_remove_empty_items
      Src: /src/git/submodule.c:1340,1
    - Dst: strvec_clear
      Src: /src/git/submodule.c:1342,1
    - Dst: oid_array_clear
      Src: /src/git/submodule.c:1343,1
    - Dst: oid_array_clear
      Src: /src/git/submodule.c:1344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - r
    - changed_submodule_names
    argTypes:
    - struct repository*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1296
    functionDepth: 14
    functionLinenumber: 1296
    functionLinenumberEnd: 1346
    functionName: calculate_changed_submodule_paths
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - strvec_push
    - default_name_or_path
    - oid_array_clear
    - submodule_has_commits
    - string_list_remove_empty_items
    - strvec_clear
    - oid_array_for_each_unique
    - collect_changed_submodules
    - submodule_from_name
    - changed_submodule_data_clear
    - null_oid
    - repo_has_absorbed_submodules
    linkageType: ''
    returnType: void
    signature: "void calculate_changed_submodule_paths(struct repository *r,\n\t\tstruct
      string_list *changed_submodule_names)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_name
      Src: /src/git/submodule.c:1325,1
    - Dst: null_oid
      Src: /src/git/submodule.c:1325,1
    - Dst: default_name_or_path
      Src: /src/git/submodule.c:1329,1
    - Dst: submodule_has_commits
      Src: /src/git/submodule.c:1334,1
    - Dst: null_oid
      Src: /src/git/submodule.c:1334,1
    - Dst: changed_submodule_data_clear
      Src: /src/git/submodule.c:1335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1320
    functionDepth: 10
    functionLinenumber: 1320
    functionLinenumberEnd: 1338
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/submodule.c
    functionUses: 50
    functionsReached:
    - default_name_or_path
    - submodule_has_commits
    - submodule_from_name
    - changed_submodule_data_clear
    - null_oid
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(name, changed_submodule_names)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:1357,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1360,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1361,1
    - Dst: oid_to_hex
      Src: /src/git/submodule.c:1361,1
    - Dst: is_null_oid
      Src: /src/git/submodule.c:1362,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1363,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1364,1
    - Dst: oid_to_hex
      Src: /src/git/submodule.c:1364,1
    - Dst: collect_changed_submodules
      Src: /src/git/submodule.c:1367,1
    - Dst: strvec_clear
      Src: /src/git/submodule.c:1370,1
    - Dst: free_submodules_data
      Src: /src/git/submodule.c:1372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - r
    - excl_oid
    - incl_oid
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1348
    functionDepth: 14
    functionLinenumber: 1348
    functionLinenumberEnd: 1374
    functionName: submodule_touches_in_range
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - strvec_push
    - oid_to_hex
    - free_submodules_data
    - is_null_oid
    - strvec_clear
    - collect_changed_submodules
    linkageType: ''
    returnType: int
    signature: "int submodule_touches_in_range(struct repository *r,\n\t\t\t       struct
      object_id *excl_oid,\n\t\t\t       struct object_id *incl_oid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/submodule.c:1430,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/submodule.c:1431,1
    - Dst: parse_fetch_recurse_submodules_arg
      Src: /src/git/submodule.c:1432,1
    - Dst: free
      Src: /src/git/submodule.c:1434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - submodule
    - spf
    argTypes:
    - struct submodule*
    - struct submodule_parallel_fetch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1419
    functionDepth: 19
    functionLinenumber: 1419
    functionLinenumberEnd: 1442
    functionName: get_fetch_recurse_config
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - parse_fetch_recurse_submodules_arg
    - xstrfmt
    - repo_config_get_string_tmp
    - free
    linkageType: ''
    returnType: int
    signature: "int get_fetch_recurse_config(const struct submodule *submodule,\n\t\t\t\t
      \   struct submodule_parallel_fetch *spf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: default_name_or_path
      Src: /src/git/submodule.c:1466,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/submodule.c:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1463
    functionDepth: 10
    functionLinenumber: 1463
    functionLinenumberEnd: 1476
    functionName: get_non_gitmodules_submodule
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - default_name_or_path
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct submodule
    signature: struct submodule *get_non_gitmodules_submodule(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/submodule.c:1481,1
    - Dst: repo_clear
      Src: /src/git/submodule.c:1486,1
    - Dst: FREE_AND_NULL
      Src: /src/git/submodule.c:1487,1
    - Dst: strvec_clear
      Src: /src/git/submodule.c:1489,1
    - Dst: free
      Src: /src/git/submodule.c:1490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct fetch_task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1478
    functionDepth: 6
    functionLinenumber: 1478
    functionLinenumberEnd: 1491
    functionName: fetch_task_free
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - repo_clear
    - strvec_clear
    - FREE_AND_NULL
    - free
    linkageType: ''
    returnType: void
    signature: void fetch_task_free(struct fetch_task *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/submodule.c:1497,1
    - Dst: repo_submodule_init
      Src: /src/git/submodule.c:1499,1
    - Dst: free
      Src: /src/git/submodule.c:1500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - r
    - path
    - treeish_name
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1493
    functionDepth: 10
    functionLinenumber: 1493
    functionLinenumberEnd: 1505
    functionName: get_submodule_repo_for
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - repo_submodule_init
    - xmalloc
    - free
    linkageType: ''
    returnType: struct repository
    signature: "struct repository *get_submodule_repo_for(struct repository *r,\n\t\t\t\t\t\t
      const char *path,\n\t\t\t\t\t\t const struct object_id *treeish_name)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/submodule.c:1513,1
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:1515,1
    - Dst: exit
      Src: /src/git/submodule.c:1516,1
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:1518,1
    - Dst: get_non_gitmodules_submodule
      Src: /src/git/submodule.c:1526,1
    - Dst: string_list_lookup
      Src: /src/git/submodule.c:1533,1
    - Dst: get_fetch_recurse_config
      Src: /src/git/submodule.c:1536,1
    - Dst: string_list_lookup
      Src: /src/git/submodule.c:1542,1
    - Dst: get_submodule_repo_for
      Src: /src/git/submodule.c:1555,1
    - Dst: fetch_task_free
      Src: /src/git/submodule.c:1560,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - spf
    - path
    - treeish_name
    argTypes:
    - struct submodule_parallel_fetch*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1507
    functionDepth: 20
    functionLinenumber: 1507
    functionLinenumberEnd: 1562
    functionName: fetch_task_create
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - string_list_lookup
    - exit
    - validate_submodule_path
    - get_fetch_recurse_config
    - CALLOC_ARRAY
    - fetch_task_free
    - get_non_gitmodules_submodule
    - get_submodule_repo_for
    linkageType: ''
    returnType: struct fetch_task
    signature: "struct fetch_task *fetch_task_create(struct submodule_parallel_fetch
      *spf,\n\t\t\t\t\t    const char *path,\n\t\t\t\t\t    const struct object_id
      *treeish_name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/submodule.c:1573,1
    - Dst: fetch_task_create
      Src: /src/git/submodule.c:1576,1
    - Dst: null_oid
      Src: /src/git/submodule.c:1576,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:1582,1
    - Dst: _
      Src: /src/git/submodule.c:1582,1
    - Dst: fetch_task_free
      Src: /src/git/submodule.c:1590,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:1596,1
    - Dst: S_ISGITLINK
      Src: /src/git/submodule.c:1599,1
    - Dst: is_empty_dir
      Src: /src/git/submodule.c:1600,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:1602,1
    - Dst: _
      Src: /src/git/submodule.c:1603,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:1606,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - spf
    - err
    argTypes:
    - struct submodule_parallel_fetch*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1564
    functionDepth: 21
    functionLinenumber: 1564
    functionLinenumberEnd: 1610
    functionName: get_fetch_task_from_index
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fetch_task_create
    - is_empty_dir
    - strbuf_addf
    - S_ISGITLINK
    - _
    - fetch_task_free
    - null_oid
    linkageType: ''
    returnType: struct fetch_task
    signature: "struct fetch_task *\nget_fetch_task_from_index(struct submodule_parallel_fetch
      *spf,\n\t\t\t  struct strbuf *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_tree_submodule_active
      Src: /src/git/submodule.c:1623,1
    - Dst: fetch_task_create
      Src: /src/git/submodule.c:1626,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:1632,1
    - Dst: _
      Src: /src/git/submodule.c:1632,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/submodule.c:1634,1
    - Dst: fetch_task_free
      Src: /src/git/submodule.c:1636,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:1641,1
    - Dst: _
      Src: /src/git/submodule.c:1642,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/submodule.c:1644,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1674,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - spf
    - err
    argTypes:
    - struct submodule_parallel_fetch*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1612
    functionDepth: 21
    functionLinenumber: 1612
    functionLinenumberEnd: 1678
    functionName: get_fetch_task_from_changed
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - fetch_task_create
    - is_tree_submodule_active
    - strbuf_addf
    - repo_find_unique_abbrev
    - _
    - fetch_task_free
    linkageType: ''
    returnType: struct fetch_task
    signature: "struct fetch_task *\nget_fetch_task_from_changed(struct submodule_parallel_fetch
      *spf,\n\t\t\t    struct strbuf *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_fetch_task_from_index
      Src: /src/git/submodule.c:1685,1
    - Dst: get_fetch_task_from_changed
      Src: /src/git/submodule.c:1687,1
    - Dst: child_process_init
      Src: /src/git/submodule.c:1690,1
    - Dst: prepare_submodule_repo_env_in_gitdir
      Src: /src/git/submodule.c:1692,1
    - Dst: strvec_init
      Src: /src/git/submodule.c:1694,1
    - Dst: strvec_pushv
      Src: /src/git/submodule.c:1696,1
    - Dst: strvec_pushv
      Src: /src/git/submodule.c:1697,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1698,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:1699,1
    - Dst: string_list_insert
      Src: /src/git/submodule.c:1704,1
    - Dst: child_process_init
      Src: /src/git/submodule.c:1715,1
    - Dst: prepare_submodule_repo_env_in_gitdir
      Src: /src/git/submodule.c:1716,1
    - Dst: strvec_init
      Src: /src/git/submodule.c:1720,1
    - Dst: strvec_pushv
      Src: /src/git/submodule.c:1721,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1722,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:1723,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:1727,1
    - Dst: capture_command
      Src: /src/git/submodule.c:1730,1
    - Dst: strbuf_trim_trailing_newline
      Src: /src/git/submodule.c:1731,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1732,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1735,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:1737,1
    - Dst: oid_array_for_each_unique
      Src: /src/git/submodule.c:1739,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 4
    argNames:
    - cp
    - err
    - data
    - task_cb
    argTypes:
    - struct child_process*
    - struct strbuf*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1680
    functionDepth: 22
    functionLinenumber: 1680
    functionLinenumberEnd: 1747
    functionName: get_next_submodule
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_trim_trailing_newline
    - strbuf_release
    - string_list_insert
    - child_process_init
    - get_fetch_task_from_index
    - strvec_pushv
    - strvec_pushl
    - strvec_init
    - capture_command
    - oid_array_for_each_unique
    - prepare_submodule_repo_env_in_gitdir
    - strvec_pushf
    - get_fetch_task_from_changed
    linkageType: ''
    returnType: int
    signature: "int get_next_submodule(struct child_process *cp, struct strbuf *err,\n\t\t\t
      \     void *data, void **task_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fetch_task_free
      Src: /src/git/submodule.c:1757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - UNUSED
    - cb
    - task_cb
    argTypes:
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1749
    functionDepth: 7
    functionLinenumber: 1749
    functionLinenumberEnd: 1759
    functionName: fetch_start_failure
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - fetch_task_free
    linkageType: ''
    returnType: int
    signature: "int fetch_start_failure(struct strbuf *err UNUSED,\n\t\t\t       void
      *cb, void *task_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/submodule.c:1764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oid
    - data
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1761
    functionDepth: 12
    functionLinenumber: 1761
    functionLinenumberEnd: 1767
    functionName: commit_missing_in_sub
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    linkageType: ''
    returnType: int
    signature: int commit_missing_in_sub(const struct object_id *oid, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/submodule.c:1779,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:1791,1
    - Dst: string_list_lookup
      Src: /src/git/submodule.c:1799,1
    - Dst: oid_array_filter
      Src: /src/git/submodule.c:1805,1
    - Dst: ALLOC_GROW
      Src: /src/git/submodule.c:1812,1
    - Dst: fetch_task_free
      Src: /src/git/submodule.c:1821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - retvalue
    - UNUSED
    - cb
    - task_cb
    argTypes:
    - int
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1769
    functionDepth: 7
    functionLinenumber: 1769
    functionLinenumberEnd: 1823
    functionName: fetch_finish
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    - strbuf_addf
    - oid_array_filter
    - ALLOC_GROW
    - fetch_task_free
    - BUG
    linkageType: ''
    returnType: int
    signature: "int fetch_finish(int retvalue, struct strbuf *err UNUSED,\n\t\t\tvoid
      *cb, void *task_cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/submodule.c:1853,1
    - Dst: die
      Src: /src/git/submodule.c:1854,1
    - Dst: _
      Src: /src/git/submodule.c:1854,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1856,1
    - Dst: strvec_pushv
      Src: /src/git/submodule.c:1857,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1858,1
    - Dst: calculate_changed_submodule_paths
      Src: /src/git/submodule.c:1861,1
    - Dst: string_list_sort
      Src: /src/git/submodule.c:1862,1
    - Dst: run_processes_parallel
      Src: /src/git/submodule.c:1863,1
    - Dst: fprintf
      Src: /src/git/submodule.c:1866,1
    - Dst: _
      Src: /src/git/submodule.c:1866,1
    - Dst: strvec_clear
      Src: /src/git/submodule.c:1870,1
    - Dst: free_submodules_data
      Src: /src/git/submodule.c:1872,1
    - Dst: string_list_clear
      Src: /src/git/submodule.c:1873,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:1874,1
    - Dst: free
      Src: /src/git/submodule.c:1875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 7
    argNames:
    - r
    - options
    - prefix
    - command_line_option
    - default_option
    - quiet
    - max_parallel_jobs
    argTypes:
    - struct repository*
    - struct strvec*
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1825
    functionDepth: 15
    functionLinenumber: 1825
    functionLinenumberEnd: 1877
    functionName: fetch_submodules
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - string_list_clear
    - strbuf_release
    - die
    - free_submodules_data
    - repo_read_index
    - strvec_pushv
    - string_list_sort
    - run_processes_parallel
    - calculate_changed_submodule_paths
    - strvec_clear
    - _
    - free
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int fetch_submodules(struct repository *r,\n\t\t     const struct
      strvec *options,\n\t\t     const char *prefix, int command_line_option,\n\t\t
      \    int default_option,\n\t\t     int quiet, int max_parallel_jobs)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:1888,1
    - Dst: exit
      Src: /src/git/submodule.c:1889,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:1891,1
    - Dst: read_gitfile
      Src: /src/git/submodule.c:1892,1
    - Dst: is_git_directory
      Src: /src/git/submodule.c:1895,1
    - Dst: is_directory
      Src: /src/git/submodule.c:1896,1
    - Dst: die
      Src: /src/git/submodule.c:1897,1
    - Dst: _
      Src: /src/git/submodule.c:1897,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:1898,1
    - Dst: strbuf_reset
      Src: /src/git/submodule.c:1902,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:1904,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:1906,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:1908,1
    - Dst: start_command
      Src: /src/git/submodule.c:1913,1
    - Dst: die
      Src: /src/git/submodule.c:1914,1
    - Dst: _
      Src: /src/git/submodule.c:1914,1
    - Dst: xfdopen
      Src: /src/git/submodule.c:1916,1
    - Dst: strbuf_getwholeline
      Src: /src/git/submodule.c:1917,1
    - Dst: strlen
      Src: /src/git/submodule.c:1926,1
    - Dst: BUG
      Src: /src/git/submodule.c:1927,1
    - Dst: memcmp
      Src: /src/git/submodule.c:1936,1
    - Dst: fclose
      Src: /src/git/submodule.c:1952,1
    - Dst: finish_command
      Src: /src/git/submodule.c:1954,1
    - Dst: die
      Src: /src/git/submodule.c:1955,1
    - Dst: _
      Src: /src/git/submodule.c:1955,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:1957,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 2
    argNames:
    - path
    - ignore_untracked
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1879
    functionDepth: 7
    functionLinenumber: 1879
    functionLinenumberEnd: 1959
    functionName: is_submodule_modified
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - fclose
    - strvec_push
    - strbuf_addf
    - validate_submodule_path
    - read_gitfile
    - strbuf_release
    - die
    - finish_command
    - prepare_submodule_repo_env
    - strvec_pushl
    - _
    - is_git_directory
    - xfdopen
    - strbuf_getwholeline
    - strbuf_reset
    - exit
    - strlen
    - is_directory
    - BUG
    - start_command
    - memcmp
    linkageType: ''
    returnType: unsigned
    signature: unsigned is_submodule_modified(const char *path, int ignore_untracked)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:1967,1
    - Dst: exit
      Src: /src/git/submodule.c:1968,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:1970,1
    - Dst: read_gitfile
      Src: /src/git/submodule.c:1971,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:1973,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:1976,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:1979,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:1983,1
    - Dst: run_command
      Src: /src/git/submodule.c:1989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1961
    functionDepth: 8
    functionLinenumber: 1961
    functionLinenumberEnd: 1993
    functionName: submodule_uses_gitfile
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - prepare_submodule_repo_env
    - run_command
    - exit
    - strbuf_addf
    - validate_submodule_path
    - strvec_pushl
    - read_gitfile
    linkageType: ''
    returnType: int
    signature: int submodule_uses_gitfile(const char *path)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:2009,1
    - Dst: exit
      Src: /src/git/submodule.c:2010,1
    - Dst: file_exists
      Src: /src/git/submodule.c:2012,1
    - Dst: is_empty_dir
      Src: /src/git/submodule.c:2012,1
    - Dst: submodule_uses_gitfile
      Src: /src/git/submodule.c:2015,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:2018,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:2022,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:2024,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:2027,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:2029,1
    - Dst: start_command
      Src: /src/git/submodule.c:2034,1
    - Dst: die
      Src: /src/git/submodule.c:2036,1
    - Dst: _
      Src: /src/git/submodule.c:2036,1
    - Dst: strbuf_read
      Src: /src/git/submodule.c:2042,1
    - Dst: close
      Src: /src/git/submodule.c:2045,1
    - Dst: finish_command
      Src: /src/git/submodule.c:2047,1
    - Dst: die
      Src: /src/git/submodule.c:2049,1
    - Dst: _
      Src: /src/git/submodule.c:2049,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2054,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - path
    - flags
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2002
    functionDepth: 9
    functionLinenumber: 2002
    functionLinenumberEnd: 2056
    functionName: bad_to_remove_submodule
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - prepare_submodule_repo_env
    - strbuf_read
    - die
    - finish_command
    - strbuf_release
    - is_empty_dir
    - exit
    - submodule_uses_gitfile
    - validate_submodule_path
    - strvec_pushl
    - close
    - _
    - file_exists
    - start_command
    linkageType: ''
    returnType: int
    signature: int bad_to_remove_submodule(const char *path, unsigned flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:2062,1
    - Dst: exit
      Src: /src/git/submodule.c:2063,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/submodule.c:2065,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:2066,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/submodule.c:2068,1
    - Dst: warning
      Src: /src/git/submodule.c:2069,1
    - Dst: _
      Src: /src/git/submodule.c:2069,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sub
    argTypes:
    - struct submodule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2058
    functionDepth: 4
    functionLinenumber: 2058
    functionLinenumberEnd: 2073
    functionName: submodule_unset_core_worktree
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - submodule_name_to_gitdir
    - strbuf_release
    - exit
    - repo_config_set_in_file_gently
    - validate_submodule_path
    - strbuf_addstr
    - _
    - warning
    linkageType: ''
    returnType: void
    signature: void submodule_unset_core_worktree(const struct submodule *sub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:2079,1
    - Dst: exit
      Src: /src/git/submodule.c:2080,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:2082,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:2085,1
    - Dst: start_command
      Src: /src/git/submodule.c:2090,1
    - Dst: die
      Src: /src/git/submodule.c:2091,1
    - Dst: _
      Src: /src/git/submodule.c:2091,1
    - Dst: finish_command
      Src: /src/git/submodule.c:2093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sub
    argTypes:
    - struct submodule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2075
    functionDepth: 7
    functionLinenumber: 2075
    functionLinenumberEnd: 2094
    functionName: submodule_has_dirty_index
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - prepare_submodule_repo_env
    - die
    - finish_command
    - exit
    - strvec_pushl
    - validate_submodule_path
    - _
    - start_command
    linkageType: ''
    returnType: int
    signature: int submodule_has_dirty_index(const struct submodule *sub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:2100,1
    - Dst: exit
      Src: /src/git/submodule.c:2101,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:2103,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:2110,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:2111,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:2114,1
    - Dst: empty_tree_oid_hex
      Src: /src/git/submodule.c:2114,1
    - Dst: run_command
      Src: /src/git/submodule.c:2116,1
    - Dst: die
      Src: /src/git/submodule.c:2117,1
    - Dst: _
      Src: /src/git/submodule.c:2117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - path
    - super_prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2096
    functionDepth: 8
    functionLinenumber: 2096
    functionLinenumberEnd: 2118
    functionName: submodule_reset_index
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - prepare_submodule_repo_env
    - die
    - run_command
    - exit
    - strvec_pushl
    - validate_submodule_path
    - empty_tree_oid_hex
    - strvec_pushf
    - _
    linkageType: ''
    returnType: void
    signature: void submodule_reset_index(const char *path, const char *super_prefix)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: is_submodule_active
      Src: /src/git/submodule.c:2134,1
    - Dst: is_submodule_populated_gently
      Src: /src/git/submodule.c:2147,1
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:2150,1
    - Dst: null_oid
      Src: /src/git/submodule.c:2150,1
    - Dst: BUG
      Src: /src/git/submodule.c:2153,1
    - Dst: submodule_has_dirty_index
      Src: /src/git/submodule.c:2157,1
    - Dst: error
      Src: /src/git/submodule.c:2158,1
    - Dst: _
      Src: /src/git/submodule.c:2158,1
    - Dst: submodule_uses_gitfile
      Src: /src/git/submodule.c:2163,1
    - Dst: absorb_git_dir_into_superproject
      Src: /src/git/submodule.c:2164,1
    - Dst: xstrfmt
      Src: /src/git/submodule.c:2167,1
    - Dst: xstrdup
      Src: /src/git/submodule.c:2168,1
    - Dst: read_gitfile
      Src: /src/git/submodule.c:2168,1
    - Dst: free
      Src: /src/git/submodule.c:2170,1
    - Dst: validate_submodule_git_dir
      Src: /src/git/submodule.c:2171,1
    - Dst: die
      Src: /src/git/submodule.c:2173,1
    - Dst: _
      Src: /src/git/submodule.c:2173,1
    - Dst: free
      Src: /src/git/submodule.c:2177,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/submodule.c:2181,1
    - Dst: connect_work_tree_and_git_dir
      Src: /src/git/submodule.c:2183,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2184,1
    - Dst: submodule_reset_index
      Src: /src/git/submodule.c:2187,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/submodule.c:2192,1
    - Dst: connect_work_tree_and_git_dir
      Src: /src/git/submodule.c:2194,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2195,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:2199,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:2205,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:2206,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:2210,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:2212,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:2215,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:2217,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:2220,1
    - Dst: empty_tree_oid_hex
      Src: /src/git/submodule.c:2220,1
    - Dst: strvec_push
      Src: /src/git/submodule.c:2222,1
    - Dst: empty_tree_oid_hex
      Src: /src/git/submodule.c:2222,1
    - Dst: run_command
      Src: /src/git/submodule.c:2224,1
    - Dst: error
      Src: /src/git/submodule.c:2225,1
    - Dst: _
      Src: /src/git/submodule.c:2225,1
    - Dst: child_process_init
      Src: /src/git/submodule.c:2231,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:2237,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:2238,1
    - Dst: run_command
      Src: /src/git/submodule.c:2241,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:2248,1
    - Dst: unlink_or_warn
      Src: /src/git/submodule.c:2249,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2250,1
    - Dst: is_empty_dir
      Src: /src/git/submodule.c:2252,1
    - Dst: rmdir_or_warn
      Src: /src/git/submodule.c:2253,1
    - Dst: submodule_unset_core_worktree
      Src: /src/git/submodule.c:2255,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 5
    argNames:
    - path
    - super_prefix
    - old_head
    - new_head
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2125
    functionDepth: 21
    functionLinenumber: 2125
    functionLinenumberEnd: 2260
    functionName: submodule_move_head
    functionSourceFile: /src/git/submodule.c
    functionUses: 8
    functionsReached:
    - strvec_push
    - BUG
    - is_empty_dir
    - submodule_has_dirty_index
    - strbuf_addf
    - read_gitfile
    - submodule_unset_core_worktree
    - free
    - empty_tree_oid_hex
    - error
    - submodule_from_path
    - submodule_name_to_gitdir
    - strbuf_release
    - die
    - child_process_init
    - rmdir_or_warn
    - submodule_reset_index
    - is_submodule_active
    - prepare_submodule_repo_env
    - unlink_or_warn
    - submodule_uses_gitfile
    - strvec_pushl
    - absorb_git_dir_into_superproject
    - _
    - validate_submodule_git_dir
    - is_submodule_populated_gently
    - strvec_pushf
    - xstrdup
    - run_command
    - connect_work_tree_and_git_dir
    - xstrfmt
    - null_oid
    linkageType: ''
    returnType: int
    signature: "int submodule_move_head(const char *path, const char *super_prefix,\n\t\t\tconst
      char *old_head, const char *new_head,\n\t\t\tunsigned flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/submodule.c:2266,1
    - Dst: find_last_dir_sep
      Src: /src/git/submodule.c:2271,1
    - Dst: is_directory
      Src: /src/git/submodule.c:2275,1
    - Dst: opendir
      Src: /src/git/submodule.c:2278,1
    - Dst: readdir
      Src: /src/git/submodule.c:2285,1
    - Dst: strcmp
      Src: /src/git/submodule.c:2286,1
    - Dst: strcmp
      Src: /src/git/submodule.c:2286,1
    - Dst: is_git_directory
      Src: /src/git/submodule.c:2289,1
    - Dst: strcasecmp
      Src: /src/git/submodule.c:2290,1
    - Dst: strcmp
      Src: /src/git/submodule.c:2291,1
    - Dst: closedir
      Src: /src/git/submodule.c:2299,1
    - Dst: free
      Src: /src/git/submodule.c:2300,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 3
    argNames:
    - git_dir
    - submodule_name
    - suffixes_match
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2262
    functionDepth: 6
    functionLinenumber: 2262
    functionLinenumberEnd: 2302
    functionName: check_casefolding_conflict
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - is_git_directory
    - strcasecmp
    - free
    - opendir
    - find_last_dir_sep
    - strcmp
    - is_directory
    - closedir
    - readdir
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int check_casefolding_conflict(const char *git_dir,\n\t\t\t\t      const
      char *submodule_name,\n\t\t\t\t      const bool suffixes_match)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/submodule.c:2317,1
    - Dst: skip_prefix
      Src: /src/git/submodule.c:2319,1
    - Dst: strlen
      Src: /src/git/submodule.c:2323,1
    - Dst: strcmp
      Src: /src/git/submodule.c:2325,1
    - Dst: strncmp
      Src: /src/git/submodule.c:2335,1
    - Dst: absolute_pathdup
      Src: /src/git/submodule.c:2336,1
    - Dst: absolute_pathdup
      Src: /src/git/submodule.c:2337,1
    - Dst: strcmp
      Src: /src/git/submodule.c:2339,1
    - Dst: free
      Src: /src/git/submodule.c:2341,1
    - Dst: free
      Src: /src/git/submodule.c:2342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2310
    functionDepth: 4
    functionLinenumber: 2310
    functionLinenumberEnd: 2346
    functionName: find_conflict_by_gitdir_cb
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strlen
    - absolute_pathdup
    - strcmp
    - free
    - strncmp
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int find_conflict_by_gitdir_cb(const char *var, const char *value,\n\t\t\t\t
      \     const struct config_context *ctx UNUSED, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/submodule.c:2355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - gitdir
    - submodule_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2348
    functionDepth: 19
    functionLinenumber: 2348
    functionLinenumberEnd: 2358
    functionName: submodule_conflicts_with_existing
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - repo_config
    linkageType: ''
    returnType: bool
    signature: bool submodule_conflicts_with_existing(const char *gitdir, const char
      *submodule_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/submodule.c:2372,1
    - Dst: strstr
      Src: /src/git/submodule.c:2376,1
    - Dst: strlen
      Src: /src/git/submodule.c:2377,1
    - Dst: strchr
      Src: /src/git/submodule.c:2382,1
    - Dst: is_git_directory
      Src: /src/git/submodule.c:2386,1
    - Dst: submodule_conflicts_with_existing
      Src: /src/git/submodule.c:2387,1
    - Dst: repo_config_get_bool
      Src: /src/git/submodule.c:2391,1
    - Dst: strcmp
      Src: /src/git/submodule.c:2393,1
    - Dst: check_casefolding_conflict
      Src: /src/git/submodule.c:2394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - git_dir
    - submodule_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2365
    functionDepth: 20
    functionLinenumber: 2365
    functionLinenumberEnd: 2399
    functionName: validate_submodule_encoded_git_dir
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strstr
    - submodule_conflicts_with_existing
    - check_casefolding_conflict
    - strchr
    - repo_config_get_bool
    - strlen
    - strcmp
    - is_git_directory
    - BUG
    linkageType: ''
    returnType: int
    signature: int validate_submodule_encoded_git_dir(char *git_dir, const char *submodule_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/submodule.c:2403,1
    - Dst: strlen
      Src: /src/git/submodule.c:2403,1
    - Dst: BUG
      Src: /src/git/submodule.c:2408,1
    - Dst: strcmp
      Src: /src/git/submodule.c:2412,1
    - Dst: BUG
      Src: /src/git/submodule.c:2413,1
    - Dst: is_dir_sep
      Src: /src/git/submodule.c:2427,1
    - Dst: is_git_directory
      Src: /src/git/submodule.c:2431,1
    - Dst: error
      Src: /src/git/submodule.c:2436,1
    - Dst: _
      Src: /src/git/submodule.c:2436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - git_dir
    - submodule_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2401
    functionDepth: 6
    functionLinenumber: 2401
    functionLinenumberEnd: 2444
    functionName: validate_submodule_legacy_git_dir
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - error
    - is_dir_sep
    - strlen
    - strcmp
    - is_git_directory
    - BUG
    - _
    linkageType: ''
    returnType: int
    signature: int validate_submodule_legacy_git_dir(char *git_dir, const char *submodule_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_legacy_git_dir
      Src: /src/git/submodule.c:2449,1
    - Dst: validate_submodule_encoded_git_dir
      Src: /src/git/submodule.c:2451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - git_dir
    - submodule_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2446
    functionDepth: 21
    functionLinenumber: 2446
    functionLinenumberEnd: 2452
    functionName: validate_submodule_git_dir
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - validate_submodule_legacy_git_dir
    - validate_submodule_encoded_git_dir
    linkageType: ''
    returnType: int
    signature: int validate_submodule_git_dir(char *git_dir, const char *submodule_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/submodule.c:2456,1
    - Dst: is_dir_sep
      Src: /src/git/submodule.c:2462,1
    - Dst: lstat
      Src: /src/git/submodule.c:2468,1
    - Dst: S_ISLNK
      Src: /src/git/submodule.c:2468,1
    - Dst: error
      Src: /src/git/submodule.c:2471,1
    - Dst: _
      Src: /src/git/submodule.c:2471,1
    - Dst: lstat
      Src: /src/git/submodule.c:2474,1
    - Dst: S_ISLNK
      Src: /src/git/submodule.c:2474,1
    - Dst: error
      Src: /src/git/submodule.c:2475,1
    - Dst: _
      Src: /src/git/submodule.c:2475,1
    - Dst: free
      Src: /src/git/submodule.c:2477,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2454
    functionDepth: 1
    functionLinenumber: 2454
    functionLinenumberEnd: 2479
    functionName: validate_submodule_path
    functionSourceFile: /src/git/submodule.c
    functionUses: 10
    functionsReached:
    - error
    - S_ISLNK
    - is_dir_sep
    - _
    - free
    - lstat
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int validate_submodule_path(const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:2493,1
    - Dst: exit
      Src: /src/git/submodule.c:2494,1
    - Dst: submodule_uses_worktrees
      Src: /src/git/submodule.c:2496,1
    - Dst: die
      Src: /src/git/submodule.c:2497,1
    - Dst: _
      Src: /src/git/submodule.c:2497,1
    - Dst: xstrfmt
      Src: /src/git/submodule.c:2500,1
    - Dst: read_gitfile
      Src: /src/git/submodule.c:2501,1
    - Dst: real_pathdup
      Src: /src/git/submodule.c:2505,1
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:2507,1
    - Dst: null_oid
      Src: /src/git/submodule.c:2507,1
    - Dst: die
      Src: /src/git/submodule.c:2509,1
    - Dst: _
      Src: /src/git/submodule.c:2509,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/submodule.c:2511,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/submodule.c:2512,1
    - Dst: die
      Src: /src/git/submodule.c:2513,1
    - Dst: _
      Src: /src/git/submodule.c:2513,1
    - Dst: real_pathdup
      Src: /src/git/submodule.c:2514,1
    - Dst: fprintf
      Src: /src/git/submodule.c:2516,1
    - Dst: _
      Src: /src/git/submodule.c:2516,1
    - Dst: relocate_gitdir
      Src: /src/git/submodule.c:2520,1
    - Dst: free
      Src: /src/git/submodule.c:2522,1
    - Dst: free
      Src: /src/git/submodule.c:2523,1
    - Dst: free
      Src: /src/git/submodule.c:2524,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - path
    - super_prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2486
    functionDepth: 8
    functionLinenumber: 2486
    functionLinenumberEnd: 2526
    functionName: relocate_single_git_dir_into_superproject
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - submodule_name_to_gitdir
    - submodule_from_path
    - strbuf_release
    - die
    - xstrfmt
    - exit
    - validate_submodule_path
    - safe_create_leading_directories_const
    - read_gitfile
    - relocate_gitdir
    - submodule_uses_worktrees
    - _
    - free
    - real_pathdup
    - null_oid
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void relocate_single_git_dir_into_superproject(const char *path,\n\t\t\t\t\t\t
      \     const char *super_prefix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:2534,1
    - Dst: exit
      Src: /src/git/submodule.c:2535,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:2540,1
    - Dst: strvec_pushf
      Src: /src/git/submodule.c:2542,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:2545,1
    - Dst: run_command
      Src: /src/git/submodule.c:2546,1
    - Dst: die
      Src: /src/git/submodule.c:2547,1
    - Dst: _
      Src: /src/git/submodule.c:2547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - path
    - super_prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2528
    functionDepth: 8
    functionLinenumber: 2528
    functionLinenumberEnd: 2548
    functionName: absorb_git_dir_into_superproject_recurse
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - prepare_submodule_repo_env
    - die
    - run_command
    - exit
    - strvec_pushl
    - validate_submodule_path
    - _
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: "void absorb_git_dir_into_superproject_recurse(const char *path,\n\t\t\t\t\t\t
      \    const char *super_prefix)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:2562,1
    - Dst: exit
      Src: /src/git/submodule.c:2563,1
    - Dst: strbuf_addf
      Src: /src/git/submodule.c:2565,1
    - Dst: resolve_gitdir_gently
      Src: /src/git/submodule.c:2566,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2575,1
    - Dst: read_gitfile_error_die
      Src: /src/git/submodule.c:2581,1
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:2590,1
    - Dst: null_oid
      Src: /src/git/submodule.c:2590,1
    - Dst: die
      Src: /src/git/submodule.c:2592,1
    - Dst: _
      Src: /src/git/submodule.c:2592,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/submodule.c:2593,1
    - Dst: connect_work_tree_and_git_dir
      Src: /src/git/submodule.c:2594,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2595,1
    - Dst: real_pathdup
      Src: /src/git/submodule.c:2598,1
    - Dst: real_pathdup
      Src: /src/git/submodule.c:2599,1
    - Dst: repo_get_common_dir
      Src: /src/git/submodule.c:2599,1
    - Dst: starts_with
      Src: /src/git/submodule.c:2601,1
    - Dst: relocate_single_git_dir_into_superproject
      Src: /src/git/submodule.c:2602,1
    - Dst: free
      Src: /src/git/submodule.c:2604,1
    - Dst: free
      Src: /src/git/submodule.c:2605,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2607,1
    - Dst: absorb_git_dir_into_superproject_recurse
      Src: /src/git/submodule.c:2609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - path
    - super_prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2555
    functionDepth: 9
    functionLinenumber: 2555
    functionLinenumberEnd: 2610
    functionName: absorb_git_dir_into_superproject
    functionSourceFile: /src/git/submodule.c
    functionUses: 1
    functionsReached:
    - submodule_name_to_gitdir
    - read_gitfile_error_die
    - strbuf_release
    - submodule_from_path
    - die
    - connect_work_tree_and_git_dir
    - relocate_single_git_dir_into_superproject
    - exit
    - strbuf_addf
    - validate_submodule_path
    - repo_get_common_dir
    - starts_with
    - absorb_git_dir_into_superproject_recurse
    - _
    - free
    - real_pathdup
    - resolve_gitdir_gently
    - null_oid
    linkageType: ''
    returnType: void
    signature: "void absorb_git_dir_into_superproject(const char *path,\n\t\t\t\t
      \     const char *super_prefix)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xgetcwd
      Src: /src/git/submodule.c:2617,1
    - Dst: is_inside_work_tree
      Src: /src/git/submodule.c:2623,1
    - Dst: strbuf_realpath
      Src: /src/git/submodule.c:2631,1
    - Dst: relative_path
      Src: /src/git/submodule.c:2634,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2635,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/submodule.c:2637,1
    - Dst: strvec_pop
      Src: /src/git/submodule.c:2638,1
    - Dst: strvec_pushl
      Src: /src/git/submodule.c:2640,1
    - Dst: strbuf_reset
      Src: /src/git/submodule.c:2643,1
    - Dst: start_command
      Src: /src/git/submodule.c:2650,1
    - Dst: die
      Src: /src/git/submodule.c:2651,1
    - Dst: _
      Src: /src/git/submodule.c:2651,1
    - Dst: strbuf_read
      Src: /src/git/submodule.c:2653,1
    - Dst: close
      Src: /src/git/submodule.c:2654,1
    - Dst: starts_with
      Src: /src/git/submodule.c:2656,1
    - Dst: strlen
      Src: /src/git/submodule.c:2658,1
    - Dst: strchr
      Src: /src/git/submodule.c:2666,1
    - Dst: strlen
      Src: /src/git/submodule.c:2667,1
    - Dst: strcmp
      Src: /src/git/submodule.c:2670,1
    - Dst: BUG
      Src: /src/git/submodule.c:2671,1
    - Dst: xstrdup
      Src: /src/git/submodule.c:2673,1
    - Dst: strbuf_realpath
      Src: /src/git/submodule.c:2676,1
    - Dst: free
      Src: /src/git/submodule.c:2678,1
    - Dst: free
      Src: /src/git/submodule.c:2680,1
    - Dst: strbuf_release
      Src: /src/git/submodule.c:2681,1
    - Dst: finish_command
      Src: /src/git/submodule.c:2683,1
    - Dst: die
      Src: /src/git/submodule.c:2692,1
    - Dst: _
      Src: /src/git/submodule.c:2692,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2695
      start: 2612
    functionDepth: 7
    functionLinenumber: 2612
    functionLinenumberEnd: 2695
    functionName: get_superproject_working_tree
    functionSourceFile: /src/git/submodule.c
    functionUses: 0
    functionsReached:
    - strvec_pop
    - strchr
    - strcmp
    - free
    - xgetcwd
    - strbuf_release
    - die
    - finish_command
    - strbuf_realpath
    - is_inside_work_tree
    - prepare_submodule_repo_env
    - relative_path
    - strvec_pushl
    - _
    - xstrdup
    - strbuf_read
    - strbuf_reset
    - starts_with
    - strlen
    - close
    - BUG
    - start_command
    linkageType: ''
    returnType: int
    signature: int get_superproject_working_tree(struct strbuf *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/submodule.c:2708,1
    - Dst: exit
      Src: /src/git/submodule.c:2709,1
    - Dst: strbuf_reset
      Src: /src/git/submodule.c:2711,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:2712,1
    - Dst: strbuf_complete
      Src: /src/git/submodule.c:2713,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:2714,1
    - Dst: read_gitfile
      Src: /src/git/submodule.c:2716,1
    - Dst: strbuf_reset
      Src: /src/git/submodule.c:2718,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:2719,1
    - Dst: is_git_directory
      Src: /src/git/submodule.c:2721,1
    - Dst: submodule_from_path
      Src: /src/git/submodule.c:2722,1
    - Dst: null_oid
      Src: /src/git/submodule.c:2722,1
    - Dst: strbuf_reset
      Src: /src/git/submodule.c:2727,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/submodule.c:2728,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - repo
    - buf
    - submodule
    argTypes:
    - struct repository*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2701
    functionDepth: 7
    functionLinenumber: 2701
    functionLinenumberEnd: 2733
    functionName: submodule_to_gitdir
    functionSourceFile: /src/git/submodule.c
    functionUses: 3
    functionsReached:
    - submodule_name_to_gitdir
    - submodule_from_path
    - strbuf_reset
    - exit
    - validate_submodule_path
    - read_gitfile
    - strbuf_addstr
    - strbuf_complete
    - is_git_directory
    - null_oid
    linkageType: ''
    returnType: int
    signature: "int submodule_to_gitdir(struct repository *repo,\n\t\t\tstruct strbuf
      *buf, const char *submodule)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path_append
      Src: /src/git/submodule.c:2743,1
    - Dst: xstrfmt
      Src: /src/git/submodule.c:2750,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/submodule.c:2751,1
    - Dst: FREE_AND_NULL
      Src: /src/git/submodule.c:2752,1
    - Dst: die
      Src: /src/git/submodule.c:2755,1
    - Dst: _
      Src: /src/git/submodule.c:2755,1
    - Dst: strbuf_addstr
      Src: /src/git/submodule.c:2761,1
    - Dst: validate_submodule_git_dir
      Src: /src/git/submodule.c:2765,1
    - Dst: advise
      Src: /src/git/submodule.c:2766,1
    - Dst: _
      Src: /src/git/submodule.c:2766,1
    - Dst: die
      Src: /src/git/submodule.c:2768,1
    - Dst: _
      Src: /src/git/submodule.c:2768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - r
    - submodule_name
    argTypes:
    - struct strbuf*
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2735
    functionDepth: 22
    functionLinenumber: 2735
    functionLinenumberEnd: 2771
    functionName: submodule_name_to_gitdir
    functionSourceFile: /src/git/submodule.c
    functionUses: 7
    functionsReached:
    - repo_git_path_append
    - repo_config_get_string_tmp
    - die
    - xstrfmt
    - strbuf_addstr
    - _
    - validate_submodule_git_dir
    - advise
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: "void submodule_name_to_gitdir(struct strbuf *buf, struct repository
      *r,\n\t\t\t      const char *submodule_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/worktree.c:22,1
    - Dst: free
      Src: /src/git/worktree.c:23,1
    - Dst: free
      Src: /src/git/worktree.c:24,1
    - Dst: free
      Src: /src/git/worktree.c:25,1
    - Dst: free
      Src: /src/git/worktree.c:26,1
    - Dst: free
      Src: /src/git/worktree.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - worktree
    argTypes:
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: free_worktree
    functionSourceFile: /src/git/worktree.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_worktree(struct worktree *worktree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_worktree
      Src: /src/git/worktree.c:34,1
    - Dst: free
      Src: /src/git/worktree.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - worktrees
    argTypes:
    - struct worktree**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: free_worktrees
    functionSourceFile: /src/git/worktree.c
    functionUses: 7
    functionsReached:
    - free_worktree
    - free
    linkageType: ''
    returnType: void
    signature: void free_worktrees(struct worktree **worktrees)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/worktree.c:46,1
    - Dst: get_worktree_ref_store
      Src: /src/git/worktree.c:46,1
    - Dst: xstrdup
      Src: /src/git/worktree.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - wt
    argTypes:
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: add_head_info
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - get_worktree_ref_store
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void add_head_info(struct worktree *wt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absolute_pathdup
      Src: /src/git/worktree.c:61,1
    - Dst: repo_get_git_dir
      Src: /src/git/worktree.c:61,1
    - Dst: get_worktree_git_dir
      Src: /src/git/worktree.c:62,1
    - Dst: fspathcmp
      Src: /src/git/worktree.c:63,1
    - Dst: absolute_path
      Src: /src/git/worktree.c:63,1
    - Dst: free
      Src: /src/git/worktree.c:64,1
    - Dst: free
      Src: /src/git/worktree.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - wt
    argTypes:
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: is_current_worktree
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - absolute_path
    - get_worktree_git_dir
    - repo_get_git_dir
    - fspathcmp
    - free
    - absolute_pathdup
    linkageType: ''
    returnType: int
    signature: int is_current_worktree(struct worktree *wt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/worktree.c:71,1
    - Dst: absolute_pathdup
      Src: /src/git/worktree.c:72,1
    - Dst: absolute_pathdup
      Src: /src/git/worktree.c:73,1
    - Dst: absolute_pathdup
      Src: /src/git/worktree.c:76,1
    - Dst: fspathcmp
      Src: /src/git/worktree.c:79,1
    - Dst: xstrdup
      Src: /src/git/worktree.c:80,1
    - Dst: find_last_dir_sep
      Src: /src/git/worktree.c:80,1
    - Dst: add_head_info
      Src: /src/git/worktree.c:82,1
    - Dst: free
      Src: /src/git/worktree.c:84,1
    - Dst: free
      Src: /src/git/worktree.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 69
    functionDepth: 7
    functionLinenumber: 69
    functionLinenumberEnd: 87
    functionName: get_current_worktree
    functionSourceFile: /src/git/worktree.c
    functionUses: 1
    functionsReached:
    - add_head_info
    - find_last_dir_sep
    - xcalloc
    - fspathcmp
    - free
    - absolute_pathdup
    - xstrdup
    linkageType: ''
    returnType: struct worktree
    signature: struct worktree *get_current_worktree(struct repository *repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/worktree.c:100,1
    - Dst: repo_get_common_dir
      Src: /src/git/worktree.c:100,1
    - Dst: git_configset_init
      Src: /src/git/worktree.c:102,1
    - Dst: git_configset_add_file
      Src: /src/git/worktree.c:103,1
    - Dst: git_configset_get_bool
      Src: /src/git/worktree.c:104,1
    - Dst: git_configset_clear
      Src: /src/git/worktree.c:106,1
    - Dst: free
      Src: /src/git/worktree.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 11
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: is_main_worktree_bare
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - git_configset_get_bool
    - xstrfmt
    - git_configset_add_file
    - git_configset_init
    - repo_get_common_dir
    - git_configset_clear
    - free
    linkageType: ''
    returnType: int
    signature: int is_main_worktree_bare(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_real_path
      Src: /src/git/worktree.c:119,1
    - Dst: repo_get_common_dir
      Src: /src/git/worktree.c:119,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/worktree.c:120,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/worktree.c:122,1
    - Dst: strbuf_detach
      Src: /src/git/worktree.c:124,1
    - Dst: is_current_worktree
      Src: /src/git/worktree.c:125,1
    - Dst: is_bare_repository
      Src: /src/git/worktree.c:127,1
    - Dst: is_main_worktree_bare
      Src: /src/git/worktree.c:134,1
    - Dst: add_head_info
      Src: /src/git/worktree.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - skip_reading_head
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 114
    functionDepth: 12
    functionLinenumber: 114
    functionLinenumberEnd: 139
    functionName: get_main_worktree
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - add_head_info
    - is_bare_repository
    - strbuf_add_real_path
    - strbuf_strip_suffix
    - is_current_worktree
    - repo_get_common_dir
    - is_main_worktree_bare
    - strbuf_detach
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct worktree
    signature: struct worktree *get_main_worktree(int skip_reading_head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/worktree.c:149,1
    - Dst: repo_common_path_append
      Src: /src/git/worktree.c:151,1
    - Dst: strbuf_read_file
      Src: /src/git/worktree.c:152,1
    - Dst: strbuf_rtrim
      Src: /src/git/worktree.c:155,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/worktree.c:156,1
    - Dst: is_absolute_path
      Src: /src/git/worktree.c:158,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/worktree.c:159,1
    - Dst: strbuf_addbuf
      Src: /src/git/worktree.c:160,1
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/worktree.c:161,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/worktree.c:164,1
    - Dst: strbuf_detach
      Src: /src/git/worktree.c:166,1
    - Dst: xstrdup
      Src: /src/git/worktree.c:167,1
    - Dst: is_current_worktree
      Src: /src/git/worktree.c:168,1
    - Dst: add_head_info
      Src: /src/git/worktree.c:170,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:173,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - id
    - skip_reading_head
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 141
    functionDepth: 7
    functionLinenumber: 141
    functionLinenumberEnd: 176
    functionName: get_linked_worktree
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - add_head_info
    - strbuf_release
    - is_absolute_path
    - die
    - strbuf_realpath_forgiving
    - strbuf_strip_suffix
    - is_current_worktree
    - strbuf_read_file
    - repo_common_path_append
    - strbuf_addbuf
    - strbuf_detach
    - CALLOC_ARRAY
    - xstrdup
    - strbuf_rtrim
    linkageType: ''
    returnType: struct worktree
    signature: "struct worktree *get_linked_worktree(const char *id,\n\t\t\t\t     int
      skip_reading_head)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/worktree.c:193,1
    - Dst: get_main_worktree
      Src: /src/git/worktree.c:195,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:197,1
    - Dst: repo_get_common_dir
      Src: /src/git/worktree.c:197,1
    - Dst: opendir
      Src: /src/git/worktree.c:198,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:199,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/worktree.c:201,1
    - Dst: get_linked_worktree
      Src: /src/git/worktree.c:204,1
    - Dst: ALLOC_GROW
      Src: /src/git/worktree.c:205,1
    - Dst: closedir
      Src: /src/git/worktree.c:209,1
    - Dst: ALLOC_GROW
      Src: /src/git/worktree.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 185
    functionDepth: 13
    functionLinenumber: 185
    functionLinenumberEnd: 215
    functionName: get_worktrees_internal
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_linked_worktree
    - ALLOC_ARRAY
    - strbuf_addf
    - repo_get_common_dir
    - opendir
    - readdir_skip_dot_and_dotdot
    - ALLOC_GROW
    - get_main_worktree
    - closedir
    linkageType: ''
    returnType: struct worktree
    signature: struct worktree **get_worktrees_internal(int skip_reading_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees_internal
      Src: /src/git/worktree.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 14
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: get_worktrees
    functionSourceFile: /src/git/worktree.c
    functionUses: 7
    functionsReached:
    - get_worktrees_internal
    linkageType: ''
    returnType: struct worktree
    signature: struct worktree **get_worktrees(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees_internal
      Src: /src/git/worktree.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 14
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: get_worktrees_without_reading_head
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - get_worktrees_internal
    linkageType: ''
    returnType: struct worktree
    signature: struct worktree **get_worktrees_without_reading_head(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/worktree.c:230,1
    - Dst: xstrdup
      Src: /src/git/worktree.c:232,1
    - Dst: repo_get_common_dir
      Src: /src/git/worktree.c:232,1
    - Dst: repo_common_path
      Src: /src/git/worktree.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - wt
    argTypes:
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 7
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: get_worktree_git_dir
    functionSourceFile: /src/git/worktree.c
    functionUses: 4
    functionsReached:
    - BUG
    - repo_get_common_dir
    - repo_common_path
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *get_worktree_git_dir(const struct worktree *wt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/worktree.c:243,1
    - Dst: strlen
      Src: /src/git/worktree.c:249,1
    - Dst: is_dir_sep
      Src: /src/git/worktree.c:253,1
    - Dst: fspathcmp
      Src: /src/git/worktree.c:254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - list
    - suffix
    argTypes:
    - struct worktree**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: find_worktree_by_suffix
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strlen
    - fspathcmp
    linkageType: ''
    returnType: struct worktree
    signature: "struct worktree *find_worktree_by_suffix(struct worktree **list,\n\t\t\t\t\t\tconst
      char *suffix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_worktree_by_suffix
      Src: /src/git/worktree.c:269,1
    - Dst: prefix_filename
      Src: /src/git/worktree.c:273,1
    - Dst: find_worktree_by_path
      Src: /src/git/worktree.c:274,1
    - Dst: free
      Src: /src/git/worktree.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - list
    - prefix
    - arg
    argTypes:
    - struct worktree**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 262
    functionDepth: 5
    functionLinenumber: 262
    functionLinenumberEnd: 277
    functionName: find_worktree
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - free
    - find_worktree_by_path
    - prefix_filename
    - find_worktree_by_suffix
    linkageType: ''
    returnType: struct worktree
    signature: "struct worktree *find_worktree(struct worktree **list,\n\t\t\t       const
      char *prefix,\n\t\t\t       const char *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: real_pathdup
      Src: /src/git/worktree.c:282,1
    - Dst: strbuf_realpath
      Src: /src/git/worktree.c:287,1
    - Dst: fspathcmp
      Src: /src/git/worktree.c:290,1
    - Dst: free
      Src: /src/git/worktree.c:293,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - list
    - p
    argTypes:
    - struct worktree**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 279
    functionDepth: 8
    functionLinenumber: 279
    functionLinenumberEnd: 296
    functionName: find_worktree_by_path
    functionSourceFile: /src/git/worktree.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_realpath
    - free
    - real_pathdup
    - fspathcmp
    linkageType: ''
    returnType: struct worktree
    signature: struct worktree *find_worktree_by_path(struct worktree **list, const
      char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wt
    argTypes:
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: is_main_worktree
    functionSourceFile: /src/git/worktree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_main_worktree(const struct worktree *wt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_main_worktree
      Src: /src/git/worktree.c:305,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:311,1
    - Dst: worktree_git_path
      Src: /src/git/worktree.c:311,1
    - Dst: file_exists
      Src: /src/git/worktree.c:312,1
    - Dst: strbuf_read_file
      Src: /src/git/worktree.c:314,1
    - Dst: die_errno
      Src: /src/git/worktree.c:315,1
    - Dst: _
      Src: /src/git/worktree.c:315,1
    - Dst: strbuf_trim
      Src: /src/git/worktree.c:316,1
    - Dst: strbuf_detach
      Src: /src/git/worktree.c:317,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - wt
    argTypes:
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 8
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: worktree_lock_reason
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - is_main_worktree
    - strbuf_read_file
    - die_errno
    - worktree_git_path
    - strbuf_trim
    - strbuf_detach
    - strbuf_addstr
    - _
    - file_exists
    linkageType: ''
    returnType: char
    signature: char *worktree_lock_reason(struct worktree *wt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_main_worktree
      Src: /src/git/worktree.c:332,1
    - Dst: should_prune_worktree
      Src: /src/git/worktree.c:337,1
    - Dst: strbuf_detach
      Src: /src/git/worktree.c:338,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:341,1
    - Dst: free
      Src: /src/git/worktree.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - wt
    - expire
    argTypes:
    - struct worktree*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 344
    functionName: worktree_prune_reason
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - is_main_worktree
    - strbuf_detach
    - free
    - should_prune_worktree
    linkageType: ''
    returnType: char
    signature: char *worktree_prune_reason(struct worktree *wt, timestamp_t expire)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/worktree.c:347,1
    - Dst: va_start
      Src: /src/git/worktree.c:355,1
    - Dst: strbuf_vaddf
      Src: /src/git/worktree.c:356,1
    - Dst: va_end
      Src: /src/git/worktree.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - fmt
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 358
    functionName: strbuf_addf_gently
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - strbuf_vaddf
    - format
    linkageType: ''
    returnType: void
    signature: void strbuf_addf_gently(struct strbuf *buf, const char *fmt, ...)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:369,1
    - Dst: is_main_worktree
      Src: /src/git/worktree.c:371,1
    - Dst: is_directory
      Src: /src/git/worktree.c:372,1
    - Dst: strbuf_addf_gently
      Src: /src/git/worktree.c:382,1
    - Dst: _
      Src: /src/git/worktree.c:383,1
    - Dst: is_absolute_path
      Src: /src/git/worktree.c:392,1
    - Dst: strbuf_addf_gently
      Src: /src/git/worktree.c:393,1
    - Dst: _
      Src: /src/git/worktree.c:394,1
    - Dst: repo_common_path_replace
      Src: /src/git/worktree.c:395,1
    - Dst: file_exists
      Src: /src/git/worktree.c:400,1
    - Dst: file_exists
      Src: /src/git/worktree.c:405,1
    - Dst: strbuf_addf_gently
      Src: /src/git/worktree.c:406,1
    - Dst: _
      Src: /src/git/worktree.c:406,1
    - Dst: xstrdup_or_null
      Src: /src/git/worktree.c:410,1
    - Dst: read_gitfile_gently
      Src: /src/git/worktree.c:410,1
    - Dst: strbuf_addf_gently
      Src: /src/git/worktree.c:412,1
    - Dst: _
      Src: /src/git/worktree.c:412,1
    - Dst: strbuf_realpath
      Src: /src/git/worktree.c:417,1
    - Dst: repo_common_path_replace
      Src: /src/git/worktree.c:417,1
    - Dst: fspathcmp
      Src: /src/git/worktree.c:418,1
    - Dst: strbuf_addf_gently
      Src: /src/git/worktree.c:421,1
    - Dst: _
      Src: /src/git/worktree.c:421,1
    - Dst: repo_common_path_replace
      Src: /src/git/worktree.c:422,1
    - Dst: free
      Src: /src/git/worktree.c:425,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:426,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:427,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:428,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - wt
    - errmsg
    - flags
    argTypes:
    - struct worktree*
    - struct strbuf*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 360
    functionDepth: 7
    functionLinenumber: 360
    functionLinenumberEnd: 430
    functionName: validate_worktree
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf_gently
    - is_absolute_path
    - file_exists
    - is_main_worktree
    - xstrdup_or_null
    - repo_common_path_replace
    - read_gitfile_gently
    - strbuf_realpath
    - strbuf_addf
    - free
    - _
    - is_directory
    - fspathcmp
    linkageType: ''
    returnType: int
    signature: "int validate_worktree(const struct worktree *wt, struct strbuf *errmsg,\n\t\t
      \     unsigned flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_main_worktree
      Src: /src/git/worktree.c:440,1
    - Dst: BUG
      Src: /src/git/worktree.c:441,1
    - Dst: repo_common_path
      Src: /src/git/worktree.c:443,1
    - Dst: strbuf_realpath
      Src: /src/git/worktree.c:444,1
    - Dst: strbuf_realpath
      Src: /src/git/worktree.c:445,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:446,1
    - Dst: fspathcmp
      Src: /src/git/worktree.c:447,1
    - Dst: write_worktree_linking_files
      Src: /src/git/worktree.c:448,1
    - Dst: free
      Src: /src/git/worktree.c:450,1
    - Dst: strbuf_detach
      Src: /src/git/worktree.c:451,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:453,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:454,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:455,1
    - Dst: free
      Src: /src/git/worktree.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - wt
    - path_
    - use_relative_paths
    argTypes:
    - struct worktree*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 432
    functionDepth: 7
    functionLinenumber: 432
    functionLinenumberEnd: 457
    functionName: update_worktree_location
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_realpath
    - is_main_worktree
    - strbuf_addf
    - strbuf_detach
    - repo_common_path
    - fspathcmp
    - free
    - BUG
    - write_worktree_linking_files
    linkageType: ''
    returnType: void
    signature: "void update_worktree_location(struct worktree *wt, const char *path_,\n\t\t\t
      \     int use_relative_paths)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/worktree.c:465,1
    - Dst: wt_status_check_rebase
      Src: /src/git/worktree.c:466,1
    - Dst: skip_prefix
      Src: /src/git/worktree.c:470,1
    - Dst: strcmp
      Src: /src/git/worktree.c:471,1
    - Dst: wt_status_state_free_buffers
      Src: /src/git/worktree.c:472,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - wt
    - target
    argTypes:
    - struct worktree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 459
    functionDepth: 7
    functionLinenumber: 459
    functionLinenumberEnd: 474
    functionName: is_worktree_being_rebased
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - memset
    - wt_status_check_rebase
    - strcmp
    - wt_status_state_free_buffers
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int is_worktree_being_rebased(const struct worktree *wt,\n\t\t\t      const
      char *target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/worktree.c:482,1
    - Dst: wt_status_check_bisect
      Src: /src/git/worktree.c:483,1
    - Dst: skip_prefix
      Src: /src/git/worktree.c:485,1
    - Dst: strcmp
      Src: /src/git/worktree.c:486,1
    - Dst: wt_status_state_free_buffers
      Src: /src/git/worktree.c:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - wt
    - target
    argTypes:
    - struct worktree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 476
    functionDepth: 7
    functionLinenumber: 476
    functionLinenumberEnd: 489
    functionName: is_worktree_being_bisected
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - memset
    - strcmp
    - wt_status_state_free_buffers
    - skip_prefix
    - wt_status_check_bisect
    linkageType: ''
    returnType: int
    signature: "int is_worktree_being_bisected(const struct worktree *wt,\n\t\t\t
      \      const char *target)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/worktree.c:507,1
    - Dst: is_worktree_being_rebased
      Src: /src/git/worktree.c:508,1
    - Dst: is_worktree_being_bisected
      Src: /src/git/worktree.c:510,1
    - Dst: get_worktree_ref_store
      Src: /src/git/worktree.c:514,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/worktree.c:515,1
    - Dst: strcmp
      Src: /src/git/worktree.c:518,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - wt
    - symref
    - target
    argTypes:
    - struct worktree*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 497
    functionDepth: 8
    functionLinenumber: 497
    functionLinenumberEnd: 522
    functionName: is_shared_symref
    functionSourceFile: /src/git/worktree.c
    functionUses: 1
    functionsReached:
    - get_worktree_ref_store
    - refs_resolve_ref_unsafe
    - is_worktree_being_bisected
    - is_worktree_being_rebased
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int is_shared_symref(const struct worktree *wt, const char *symref,\n\t\t
      \    const char *target)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_shared_symref
      Src: /src/git/worktree.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - worktrees
    - symref
    - target
    argTypes:
    - struct worktree**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 524
    functionDepth: 9
    functionLinenumber: 524
    functionLinenumberEnd: 534
    functionName: find_shared_symref
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - is_shared_symref
    linkageType: ''
    returnType: struct worktree
    signature: "struct worktree *find_shared_symref(struct worktree **worktrees,\n\t\t\t\t\t
      \ const char *symref,\n\t\t\t\t\t  const char *target)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_submodule_path
      Src: /src/git/worktree.c:545,1
    - Dst: get_common_dir_noenv
      Src: /src/git/worktree.c:551,1
    - Dst: free
      Src: /src/git/worktree.c:552,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:554,1
    - Dst: read_repository_format
      Src: /src/git/worktree.c:555,1
    - Dst: verify_repository_format
      Src: /src/git/worktree.c:556,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:557,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:558,1
    - Dst: clear_repository_format
      Src: /src/git/worktree.c:559,1
    - Dst: clear_repository_format
      Src: /src/git/worktree.c:562,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:563,1
    - Dst: strbuf_setlen
      Src: /src/git/worktree.c:566,1
    - Dst: strlen
      Src: /src/git/worktree.c:566,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:567,1
    - Dst: opendir
      Src: /src/git/worktree.c:570,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:571,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/worktree.c:576,1
    - Dst: closedir
      Src: /src/git/worktree.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 536
    functionDepth: 8
    functionLinenumber: 536
    functionLinenumberEnd: 581
    functionName: submodule_uses_worktrees
    functionSourceFile: /src/git/worktree.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - read_repository_format
    - get_common_dir_noenv
    - strbuf_setlen
    - verify_repository_format
    - opendir
    - readdir_skip_dot_and_dotdot
    - strlen
    - clear_repository_format
    - strbuf_addstr
    - free
    - closedir
    - repo_submodule_path
    linkageType: ''
    returnType: int
    signature: int submodule_uses_worktrees(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_worktree_ref
      Src: /src/git/worktree.c:587,1
    - Dst: is_main_worktree
      Src: /src/git/worktree.c:590,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:591,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:593,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - wt
    - sb
    - refname
    argTypes:
    - struct worktree*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 583
    functionDepth: 4
    functionLinenumber: 583
    functionLinenumberEnd: 596
    functionName: strbuf_worktree_ref
    functionSourceFile: /src/git/worktree.c
    functionUses: 1
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    - parse_worktree_ref
    - is_main_worktree
    linkageType: ''
    returnType: void
    signature: "void strbuf_worktree_ref(const struct worktree *wt,\n\t\t\t struct
      strbuf *sb,\n\t\t\t const char *refname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees
      Src: /src/git/worktree.c:604,1
    - Dst: strbuf_reset
      Src: /src/git/worktree.c:613,1
    - Dst: strbuf_worktree_ref
      Src: /src/git/worktree.c:614,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/worktree.c:615,1
    - Dst: get_main_ref_store
      Src: /src/git/worktree.c:615,1
    - Dst: fn
      Src: /src/git/worktree.c:625,1
    - Dst: free_worktrees
      Src: /src/git/worktree.c:630,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:631,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - fn
    - cb_data
    argTypes:
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 598
    functionDepth: 15
    functionLinenumber: 598
    functionLinenumberEnd: 633
    functionName: other_head_refs
    functionSourceFile: /src/git/worktree.c
    functionUses: 2
    functionsReached:
    - get_worktrees
    - free_worktrees
    - fn
    - strbuf_release
    - strbuf_reset
    - refs_resolve_ref_unsafe
    - strbuf_worktree_ref
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int other_head_refs(refs_for_each_cb fn, void *cb_data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/worktree.c:653,1
    - Dst: is_directory
      Src: /src/git/worktree.c:656,1
    - Dst: fn
      Src: /src/git/worktree.c:657,1
    - Dst: _
      Src: /src/git/worktree.c:657,1
    - Dst: repo_common_path
      Src: /src/git/worktree.c:661,1
    - Dst: strbuf_realpath
      Src: /src/git/worktree.c:662,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:663,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:664,1
    - Dst: xstrdup_or_null
      Src: /src/git/worktree.c:665,1
    - Dst: read_gitfile_gently
      Src: /src/git/worktree.c:665,1
    - Dst: is_absolute_path
      Src: /src/git/worktree.c:668,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:669,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:671,1
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/worktree.c:672,1
    - Dst: fn
      Src: /src/git/worktree.c:678,1
    - Dst: _
      Src: /src/git/worktree.c:678,1
    - Dst: _
      Src: /src/git/worktree.c:680,1
    - Dst: fspathcmp
      Src: /src/git/worktree.c:681,1
    - Dst: _
      Src: /src/git/worktree.c:682,1
    - Dst: is_absolute_path
      Src: /src/git/worktree.c:683,1
    - Dst: _
      Src: /src/git/worktree.c:684,1
    - Dst: fn
      Src: /src/git/worktree.c:687,1
    - Dst: write_worktree_linking_files
      Src: /src/git/worktree.c:688,1
    - Dst: free
      Src: /src/git/worktree.c:692,1
    - Dst: free
      Src: /src/git/worktree.c:693,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:694,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:695,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:696,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:697,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 4
    argNames:
    - wt
    - fn
    - cb_data
    - use_relative_paths
    argTypes:
    - struct worktree*
    - worktree_repair_fn
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 639
    functionDepth: 7
    functionLinenumber: 639
    functionLinenumberEnd: 698
    functionName: repair_gitfile
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - is_absolute_path
    - fn
    - is_directory
    - strbuf_realpath
    - xstrdup_or_null
    - read_gitfile_gently
    - strbuf_realpath_forgiving
    - strbuf_addf
    - free
    - repo_common_path
    - _
    - file_exists
    - strbuf_addstr
    - fspathcmp
    - write_worktree_linking_files
    linkageType: ''
    returnType: void
    signature: "void repair_gitfile(struct worktree *wt,\n\t\t\t   worktree_repair_fn
      fn, void *cb_data,\n\t\t\t   int use_relative_paths)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - UNUSED
    - UNUSED
    - UNUSED
    - cb_data
    argTypes:
    - int
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 706
    functionName: repair_noop
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void repair_noop(int iserr UNUSED,\n\t\t\tconst char *path UNUSED,\n\t\t\tconst
      char *msg UNUSED,\n\t\t\tvoid *cb_data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees_internal
      Src: /src/git/worktree.c:710,1
    - Dst: repair_gitfile
      Src: /src/git/worktree.c:716,1
    - Dst: free_worktrees
      Src: /src/git/worktree.c:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - fn
    - cb_data
    - use_relative_paths
    argTypes:
    - worktree_repair_fn
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 708
    functionDepth: 14
    functionLinenumber: 708
    functionLinenumberEnd: 718
    functionName: repair_worktrees
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - get_worktrees_internal
    - free_worktrees
    - repair_gitfile
    linkageType: ''
    returnType: void
    signature: void repair_worktrees(worktree_repair_fn fn, void *cb_data, int use_relative_paths)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_main_worktree
      Src: /src/git/worktree.c:727,1
    - Dst: repo_common_path
      Src: /src/git/worktree.c:730,1
    - Dst: strbuf_realpath
      Src: /src/git/worktree.c:731,1
    - Dst: strbuf_read_file
      Src: /src/git/worktree.c:733,1
    - Dst: strbuf_rtrim
      Src: /src/git/worktree.c:736,1
    - Dst: is_absolute_path
      Src: /src/git/worktree.c:737,1
    - Dst: strbuf_insertf
      Src: /src/git/worktree.c:739,1
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/worktree.c:740,1
    - Dst: file_exists
      Src: /src/git/worktree.c:743,1
    - Dst: write_worktree_linking_files
      Src: /src/git/worktree.c:746,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:748,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:749,1
    - Dst: free
      Src: /src/git/worktree.c:750,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - wt
    - old_path
    argTypes:
    - struct worktree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 720
    functionDepth: 7
    functionLinenumber: 720
    functionLinenumberEnd: 751
    functionName: repair_worktree_after_gitdir_move
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - is_absolute_path
    - strbuf_realpath
    - is_main_worktree
    - strbuf_realpath_forgiving
    - write_worktree_linking_files
    - strbuf_read_file
    - free
    - repo_common_path
    - strbuf_insertf
    - file_exists
    - strbuf_rtrim
    linkageType: ''
    returnType: void
    signature: void repair_worktree_after_gitdir_move(struct worktree *wt, const char
      *old_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees_internal
      Src: /src/git/worktree.c:755,1
    - Dst: repair_worktree_after_gitdir_move
      Src: /src/git/worktree.c:759,1
    - Dst: free_worktrees
      Src: /src/git/worktree.c:760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - old_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 753
    functionDepth: 14
    functionLinenumber: 753
    functionLinenumberEnd: 761
    functionName: repair_worktrees_after_gitdir_move
    functionSourceFile: /src/git/worktree.c
    functionUses: 1
    functionsReached:
    - get_worktrees_internal
    - free_worktrees
    - repair_worktree_after_gitdir_move
    linkageType: ''
    returnType: void
    signature: void repair_worktrees_after_gitdir_move(const char *old_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_real_path
      Src: /src/git/worktree.c:769,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/worktree.c:770,1
    - Dst: strbuf_add_real_path
      Src: /src/git/worktree.c:771,1
    - Dst: repo_get_common_dir
      Src: /src/git/worktree.c:771,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/worktree.c:772,1
    - Dst: fspathcmp
      Src: /src/git/worktree.c:773,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:775,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 763
    functionDepth: 8
    functionLinenumber: 763
    functionLinenumberEnd: 778
    functionName: is_main_worktree_path
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_add_real_path
    - strbuf_strip_suffix
    - repo_get_common_dir
    - fspathcmp
    linkageType: ''
    returnType: int
    signature: int is_main_worktree_path(const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/worktree.c:794,1
    - Dst: starts_with
      Src: /src/git/worktree.c:796,1
    - Dst: find_last_dir_sep
      Src: /src/git/worktree.c:798,1
    - Dst: strbuf_trim
      Src: /src/git/worktree.c:800,1
    - Dst: repo_common_path_replace
      Src: /src/git/worktree.c:804,1
    - Dst: is_directory
      Src: /src/git/worktree.c:805,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:808,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:811,1
    - Dst: strbuf_reset
      Src: /src/git/worktree.c:812,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - gitfile
    - inferred
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 789
    functionDepth: 7
    functionLinenumber: 789
    functionLinenumberEnd: 814
    functionName: infer_backlink
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - repo_common_path_replace
    - strbuf_reset
    - strbuf_read_file
    - starts_with
    - find_last_dir_sep
    - strbuf_trim
    - is_directory
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t infer_backlink(const char *gitfile, struct strbuf *inferred)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: is_main_worktree_path
      Src: /src/git/worktree.c:836,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:839,1
    - Dst: strbuf_realpath
      Src: /src/git/worktree.c:840,1
    - Dst: fn
      Src: /src/git/worktree.c:841,1
    - Dst: _
      Src: /src/git/worktree.c:841,1
    - Dst: infer_backlink
      Src: /src/git/worktree.c:845,1
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/worktree.c:846,1
    - Dst: xstrdup_or_null
      Src: /src/git/worktree.c:847,1
    - Dst: read_gitfile_gently
      Src: /src/git/worktree.c:847,1
    - Dst: is_absolute_path
      Src: /src/git/worktree.c:849,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:850,1
    - Dst: strbuf_addbuf
      Src: /src/git/worktree.c:852,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/worktree.c:853,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:854,1
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/worktree.c:855,1
    - Dst: fn
      Src: /src/git/worktree.c:859,1
    - Dst: _
      Src: /src/git/worktree.c:859,1
    - Dst: strbuf_swap
      Src: /src/git/worktree.c:870,1
    - Dst: fn
      Src: /src/git/worktree.c:872,1
    - Dst: _
      Src: /src/git/worktree.c:872,1
    - Dst: fn
      Src: /src/git/worktree.c:876,1
    - Dst: _
      Src: /src/git/worktree.c:876,1
    - Dst: fspathcmp
      Src: /src/git/worktree.c:898,1
    - Dst: strbuf_swap
      Src: /src/git/worktree.c:899,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:901,1
    - Dst: strbuf_read_file
      Src: /src/git/worktree.c:902,1
    - Dst: _
      Src: /src/git/worktree.c:903,1
    - Dst: is_absolute_path
      Src: /src/git/worktree.c:904,1
    - Dst: _
      Src: /src/git/worktree.c:905,1
    - Dst: strbuf_rtrim
      Src: /src/git/worktree.c:907,1
    - Dst: is_absolute_path
      Src: /src/git/worktree.c:908,1
    - Dst: strbuf_insertf
      Src: /src/git/worktree.c:909,1
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/worktree.c:910,1
    - Dst: fspathcmp
      Src: /src/git/worktree.c:912,1
    - Dst: _
      Src: /src/git/worktree.c:913,1
    - Dst: fn
      Src: /src/git/worktree.c:917,1
    - Dst: write_worktree_linking_files
      Src: /src/git/worktree.c:918,1
    - Dst: free
      Src: /src/git/worktree.c:921,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:922,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:923,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:924,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:925,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:926,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 4
    argNames:
    - path
    - fn
    - cb_data
    - use_relative_paths
    argTypes:
    - char*
    - worktree_repair_fn
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 820
    functionDepth: 9
    functionLinenumber: 820
    functionLinenumberEnd: 927
    functionName: repair_worktree_at_path
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addbuf
    - free
    - infer_backlink
    - strbuf_swap
    - strbuf_release
    - fn
    - xstrdup_or_null
    - strbuf_realpath
    - strbuf_addstr
    - fspathcmp
    - strbuf_insertf
    - write_worktree_linking_files
    - strbuf_rtrim
    - is_absolute_path
    - read_gitfile_gently
    - strbuf_realpath_forgiving
    - strbuf_strip_suffix
    - strbuf_read_file
    - _
    - is_main_worktree_path
    linkageType: ''
    returnType: void
    signature: "void repair_worktree_at_path(const char *path,\n\t\t\t     worktree_repair_fn
      fn, void *cb_data,\n\t\t\t     int use_relative_paths)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: repo_common_path
      Src: /src/git/worktree.c:944,1
    - Dst: strbuf_realpath
      Src: /src/git/worktree.c:945,1
    - Dst: FREE_AND_NULL
      Src: /src/git/worktree.c:946,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:948,1
    - Dst: is_directory
      Src: /src/git/worktree.c:949,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:950,1
    - Dst: _
      Src: /src/git/worktree.c:950,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:954,1
    - Dst: file_exists
      Src: /src/git/worktree.c:955,1
    - Dst: stat
      Src: /src/git/worktree.c:958,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:959,1
    - Dst: _
      Src: /src/git/worktree.c:959,1
    - Dst: open
      Src: /src/git/worktree.c:963,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:965,1
    - Dst: _
      Src: /src/git/worktree.c:965,1
    - Dst: strerror
      Src: /src/git/worktree.c:966,1
    - Dst: xsize_t
      Src: /src/git/worktree.c:970,1
    - Dst: xmallocz
      Src: /src/git/worktree.c:971,1
    - Dst: read_in_full
      Src: /src/git/worktree.c:973,1
    - Dst: close
      Src: /src/git/worktree.c:974,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:976,1
    - Dst: _
      Src: /src/git/worktree.c:976,1
    - Dst: strerror
      Src: /src/git/worktree.c:977,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:981,1
    - Dst: _
      Src: /src/git/worktree.c:982,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:990,1
    - Dst: _
      Src: /src/git/worktree.c:990,1
    - Dst: is_absolute_path
      Src: /src/git/worktree.c:995,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:996,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:998,1
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/worktree.c:999,1
    - Dst: file_exists
      Src: /src/git/worktree.c:1001,1
    - Dst: strbuf_reset
      Src: /src/git/worktree.c:1002,1
    - Dst: strbuf_addf
      Src: /src/git/worktree.c:1003,1
    - Dst: stat
      Src: /src/git/worktree.c:1004,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:1005,1
    - Dst: _
      Src: /src/git/worktree.c:1005,1
    - Dst: strbuf_detach
      Src: /src/git/worktree.c:1010,1
    - Dst: free
      Src: /src/git/worktree.c:1012,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:1013,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:1014,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:1015,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:1016,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 80
    argCount: 4
    argNames:
    - id
    - reason
    - wtpath
    - expire
    argTypes:
    - char*
    - struct strbuf*
    - char**
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 929
    functionDepth: 9
    functionLinenumber: 929
    functionLinenumberEnd: 1018
    functionName: should_prune_worktree
    functionSourceFile: /src/git/worktree.c
    functionUses: 1
    functionsReached:
    - is_directory
    - strbuf_addf
    - xsize_t
    - free
    - file_exists
    - strbuf_release
    - strbuf_realpath
    - strerror
    - strbuf_addstr
    - is_absolute_path
    - strbuf_realpath_forgiving
    - xmallocz
    - stat
    - read_in_full
    - strbuf_detach
    - _
    - FREE_AND_NULL
    - open
    - strbuf_reset
    - repo_common_path
    - close
    linkageType: ''
    returnType: int
    signature: int should_prune_worktree(const char *id, struct strbuf *reason, char
      **wtpath, timestamp_t expire)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/worktree.c:1023,1
    - Dst: error
      Src: /src/git/worktree.c:1024,1
    - Dst: _
      Src: /src/git/worktree.c:1024,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/worktree.c:1025,1
    - Dst: error
      Src: /src/git/worktree.c:1026,1
    - Dst: _
      Src: /src/git/worktree.c:1026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - key
    - value
    - from_file
    - to_file
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1028
    functionName: move_config_setting
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - error
    - repo_config_set_in_file_gently
    - _
    linkageType: ''
    returnType: int
    signature: "int move_config_setting(const char *key, const char *value,\n\t\t\t
      \      const char *from_file, const char *to_file)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set_gently
      Src: /src/git/worktree.c:1045,1
    - Dst: error
      Src: /src/git/worktree.c:1046,1
    - Dst: _
      Src: /src/git/worktree.c:1046,1
    - Dst: xstrfmt
      Src: /src/git/worktree.c:1048,1
    - Dst: xstrfmt
      Src: /src/git/worktree.c:1049,1
    - Dst: git_configset_init
      Src: /src/git/worktree.c:1051,1
    - Dst: git_configset_add_file
      Src: /src/git/worktree.c:1052,1
    - Dst: git_configset_get_bool
      Src: /src/git/worktree.c:1060,1
    - Dst: move_config_setting
      Src: /src/git/worktree.c:1061,1
    - Dst: git_configset_get_value
      Src: /src/git/worktree.c:1072,1
    - Dst: move_config_setting
      Src: /src/git/worktree.c:1073,1
    - Dst: git_configset_clear
      Src: /src/git/worktree.c:1086,1
    - Dst: free
      Src: /src/git/worktree.c:1087,1
    - Dst: free
      Src: /src/git/worktree.c:1088,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1030
    functionDepth: 11
    functionLinenumber: 1030
    functionLinenumberEnd: 1090
    functionName: init_worktree_config
    functionSourceFile: /src/git/worktree.c
    functionUses: 0
    functionsReached:
    - error
    - git_configset_get_bool
    - xstrfmt
    - git_configset_add_file
    - git_configset_get_value
    - git_configset_init
    - git_configset_clear
    - move_config_setting
    - _
    - free
    - repo_config_set_gently
    linkageType: ''
    returnType: int
    signature: int init_worktree_config(struct repository *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:1099,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/worktree.c:1100,1
    - Dst: strbuf_realpath
      Src: /src/git/worktree.c:1101,1
    - Dst: strbuf_addstr
      Src: /src/git/worktree.c:1102,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/worktree.c:1103,1
    - Dst: strbuf_realpath
      Src: /src/git/worktree.c:1104,1
    - Dst: upgrade_repository_format
      Src: /src/git/worktree.c:1107,1
    - Dst: die
      Src: /src/git/worktree.c:1108,1
    - Dst: _
      Src: /src/git/worktree.c:1108,1
    - Dst: repo_config_set_gently
      Src: /src/git/worktree.c:1109,1
    - Dst: die
      Src: /src/git/worktree.c:1110,1
    - Dst: _
      Src: /src/git/worktree.c:1110,1
    - Dst: write_file
      Src: /src/git/worktree.c:1115,1
    - Dst: relative_path
      Src: /src/git/worktree.c:1115,1
    - Dst: write_file
      Src: /src/git/worktree.c:1116,1
    - Dst: relative_path
      Src: /src/git/worktree.c:1116,1
    - Dst: write_file
      Src: /src/git/worktree.c:1118,1
    - Dst: write_file
      Src: /src/git/worktree.c:1119,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:1122,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:1123,1
    - Dst: strbuf_release
      Src: /src/git/worktree.c:1124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - dotgit
    - gitdir
    - use_relative_paths
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1092
    functionDepth: 7
    functionLinenumber: 1092
    functionLinenumberEnd: 1125
    functionName: write_worktree_linking_files
    functionSourceFile: /src/git/worktree.c
    functionUses: 4
    functionsReached:
    - strbuf_release
    - die
    - write_file
    - strbuf_realpath
    - relative_path
    - strbuf_strip_suffix
    - upgrade_repository_format
    - strbuf_addstr
    - _
    - repo_config_set_gently
    linkageType: ''
    returnType: void
    signature: "void write_worktree_linking_files(const char *dotgit, const char *gitdir,\n\t\t\t\t
      \ int use_relative_paths)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/walker.c:25,1
    - Dst: vfprintf
      Src: /src/git/walker.c:26,1
    - Dst: va_end
      Src: /src/git/walker.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - walker
    - fmt
    argTypes:
    - struct walker*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: walker_say
    functionSourceFile: /src/git/walker.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void walker_say(struct walker *walker, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/walker.c:33,1
    - Dst: type_name
      Src: /src/git/walker.c:34,1
    - Dst: oid_to_hex
      Src: /src/git/walker.c:35,1
    - Dst: is_null_oid
      Src: /src/git/walker.c:36,1
    - Dst: fprintf
      Src: /src/git/walker.c:37,1
    - Dst: oid_to_hex
      Src: /src/git/walker.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: report_missing
    functionSourceFile: /src/git/walker.c
    functionUses: 0
    functionsReached:
    - type_name
    - oid_to_hex
    - fprintf
    - is_null_oid
    linkageType: ''
    returnType: void
    signature: void report_missing(const struct object *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree
      Src: /src/git/walker.c:48,1
    - Dst: init_tree_desc
      Src: /src/git/walker.c:51,1
    - Dst: tree_entry
      Src: /src/git/walker.c:52,1
    - Dst: S_ISGITLINK
      Src: /src/git/walker.c:56,1
    - Dst: S_ISDIR
      Src: /src/git/walker.c:58,1
    - Dst: lookup_tree
      Src: /src/git/walker.c:59,1
    - Dst: lookup_blob
      Src: /src/git/walker.c:65,1
    - Dst: process
      Src: /src/git/walker.c:70,1
    - Dst: free_tree_buffer
      Src: /src/git/walker.c:73,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - walker
    - tree
    argTypes:
    - struct walker*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 43
    functionDepth: 14
    functionLinenumber: 43
    functionLinenumberEnd: 75
    functionName: process_tree
    functionSourceFile: /src/git/walker.c
    functionUses: 4
    functionsReached:
    - S_ISDIR
    - process
    - tree_entry
    - S_ISGITLINK
    - repo_parse_tree
    - free_tree_buffer
    - lookup_blob
    - lookup_tree
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: int process_tree(struct walker *walker, struct tree *tree)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/walker.c:88,1
    - Dst: prio_queue_peek
      Src: /src/git/walker.c:92,1
    - Dst: pop_most_recent_commit
      Src: /src/git/walker.c:95,1
    - Dst: oidcpy
      Src: /src/git/walker.c:101,1
    - Dst: walker_say
      Src: /src/git/walker.c:103,1
    - Dst: oid_to_hex
      Src: /src/git/walker.c:103,1
    - Dst: process
      Src: /src/git/walker.c:105,1
    - Dst: repo_get_commit_tree
      Src: /src/git/walker.c:105,1
    - Dst: process
      Src: /src/git/walker.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - walker
    - commit
    argTypes:
    - struct walker*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 84
    functionDepth: 20
    functionLinenumber: 84
    functionLinenumberEnd: 114
    functionName: process_commit
    functionSourceFile: /src/git/walker.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - pop_most_recent_commit
    - walker_say
    - process
    - oidcpy
    - repo_parse_commit
    - repo_get_commit_tree
    - prio_queue_peek
    linkageType: ''
    returnType: int
    signature: int process_commit(struct walker *walker, struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_tag
      Src: /src/git/walker.c:118,1
    - Dst: process
      Src: /src/git/walker.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - walker
    - tag
    argTypes:
    - struct walker*
    - struct tag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 6
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: process_tag
    functionSourceFile: /src/git/walker.c
    functionUses: 1
    functionsReached:
    - parse_tag
    - process
    linkageType: ''
    returnType: int
    signature: int process_tag(struct walker *walker, struct tag *tag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: process_commit
      Src: /src/git/walker.c:129,1
    - Dst: process_tree
      Src: /src/git/walker.c:134,1
    - Dst: process_tag
      Src: /src/git/walker.c:142,1
    - Dst: error
      Src: /src/git/walker.c:146,1
    - Dst: type_name
      Src: /src/git/walker.c:148,1
    - Dst: oid_to_hex
      Src: /src/git/walker.c:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - walker
    - obj
    argTypes:
    - struct walker*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: process_object
    functionSourceFile: /src/git/walker.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - process_tree
    - process_tag
    - process_commit
    - type_name
    linkageType: ''
    returnType: int
    signature: int process_object(struct walker *walker, struct object *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/walker.c:157,1
    - Dst: struct walker*::prefetch
      Src: /src/git/walker.c:165,1
    - Dst: object_list_insert
      Src: /src/git/walker.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - walker
    - obj
    argTypes:
    - struct walker*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 151
    functionDepth: 12
    functionLinenumber: 151
    functionLinenumberEnd: 171
    functionName: process
    functionSourceFile: /src/git/walker.c
    functionUses: 7
    functionsReached:
    - odb_has_object
    - struct walker*::prefetch
    - object_list_insert
    linkageType: ''
    returnType: int
    signature: int process(struct walker *walker, struct object *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/walker.c:180,1
    - Dst: _
      Src: /src/git/walker.c:181,1
    - Dst: free
      Src: /src/git/walker.c:187,1
    - Dst: struct walker*::fetch
      Src: /src/git/walker.c:195,1
    - Dst: stop_progress
      Src: /src/git/walker.c:196,1
    - Dst: report_missing
      Src: /src/git/walker.c:197,1
    - Dst: parse_object
      Src: /src/git/walker.c:202,1
    - Dst: process_object
      Src: /src/git/walker.c:203,1
    - Dst: stop_progress
      Src: /src/git/walker.c:204,1
    - Dst: display_progress
      Src: /src/git/walker.c:207,1
    - Dst: stop_progress
      Src: /src/git/walker.c:209,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - walker
    argTypes:
    - struct walker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 211
    functionName: loop
    functionSourceFile: /src/git/walker.c
    functionUses: 3
    functionsReached:
    - process_object
    - stop_progress
    - parse_object
    - display_progress
    - start_delayed_progress
    - struct walker*::fetch
    - free
    - report_missing
    - _
    linkageType: ''
    returnType: int
    signature: int loop(struct walker *walker)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_hex
      Src: /src/git/walker.c:215,1
    - Dst: check_refname_format
      Src: /src/git/walker.c:217,1
    - Dst: alloc_ref
      Src: /src/git/walker.c:218,1
    - Dst: struct walker*::fetch_ref
      Src: /src/git/walker.c:219,1
    - Dst: oidcpy
      Src: /src/git/walker.c:220,1
    - Dst: free
      Src: /src/git/walker.c:221,1
    - Dst: free
      Src: /src/git/walker.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - walker
    - target
    - oid
    argTypes:
    - struct walker*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 213
    functionDepth: 11
    functionLinenumber: 213
    functionLinenumberEnd: 227
    functionName: interpret_target
    functionSourceFile: /src/git/walker.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - get_oid_hex
    - struct walker*::fetch_ref
    - check_refname_format
    - free
    - alloc_ref
    linkageType: ''
    returnType: int
    signature: int interpret_target(struct walker *walker, char *target, struct object_id
      *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference_gently
      Src: /src/git/walker.c:231,1
    - Dst: prio_queue_put
      Src: /src/git/walker.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 6
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: mark_complete
    functionSourceFile: /src/git/walker.c
    functionUses: 2
    functionsReached:
    - prio_queue_put
    - lookup_commit_reference_gently
    linkageType: ''
    returnType: int
    signature: int mark_complete(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline_lf
      Src: /src/git/walker.c:250,1
    - Dst: strchr
      Src: /src/git/walker.c:253,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/walker.c:259,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/walker.c:260,1
    - Dst: xstrdup
      Src: /src/git/walker.c:262,1
    - Dst: xstrdup_or_null
      Src: /src/git/walker.c:263,1
    - Dst: strbuf_release
      Src: /src/git/walker.c:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - target
    - write_ref
    argTypes:
    - char***
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 241
    functionDepth: 5
    functionLinenumber: 241
    functionLinenumberEnd: 268
    functionName: walker_targets_stdin
    functionSourceFile: /src/git/walker.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_getline_lf
    - xstrdup_or_null
    - strchr
    - REALLOC_ARRAY
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int walker_targets_stdin(char ***target, const char ***write_ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/walker.c:273,1
    - Dst: free
      Src: /src/git/walker.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - targets
    - target
    - write_ref
    argTypes:
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: walker_targets_free
    functionSourceFile: /src/git/walker.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void walker_targets_free(int targets, char **target, const char **write_ref)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/walker.c:291,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/walker.c:294,1
    - Dst: get_main_ref_store
      Src: /src/git/walker.c:294,1
    - Dst: error
      Src: /src/git/walker.c:297,1
    - Dst: refs_for_each_ref
      Src: /src/git/walker.c:303,1
    - Dst: get_main_ref_store
      Src: /src/git/walker.c:303,1
    - Dst: interpret_target
      Src: /src/git/walker.c:308,1
    - Dst: error
      Src: /src/git/walker.c:309,1
    - Dst: process
      Src: /src/git/walker.c:312,1
    - Dst: lookup_unknown_object
      Src: /src/git/walker.c:312,1
    - Dst: loop
      Src: /src/git/walker.c:316,1
    - Dst: xstrfmt
      Src: /src/git/walker.c:323,1
    - Dst: strbuf_reset
      Src: /src/git/walker.c:330,1
    - Dst: strbuf_addf
      Src: /src/git/walker.c:331,1
    - Dst: ref_transaction_update
      Src: /src/git/walker.c:332,1
    - Dst: error
      Src: /src/git/walker.c:336,1
    - Dst: ref_transaction_commit
      Src: /src/git/walker.c:340,1
    - Dst: error
      Src: /src/git/walker.c:341,1
    - Dst: ref_transaction_free
      Src: /src/git/walker.c:348,1
    - Dst: free
      Src: /src/git/walker.c:349,1
    - Dst: free
      Src: /src/git/walker.c:350,1
    - Dst: strbuf_release
      Src: /src/git/walker.c:351,1
    - Dst: strbuf_release
      Src: /src/git/walker.c:352,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 5
    argNames:
    - walker
    - targets
    - target
    - write_ref
    - write_ref_log_details
    argTypes:
    - struct walker*
    - int
    - char**
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 279
    functionDepth: 13
    functionLinenumber: 279
    functionLinenumberEnd: 354
    functionName: walker_fetch
    functionSourceFile: /src/git/walker.c
    functionUses: 2
    functionsReached:
    - error
    - ref_transaction_commit
    - strbuf_release
    - process
    - loop
    - strbuf_reset
    - xstrfmt
    - ALLOC_ARRAY
    - refs_for_each_ref
    - interpret_target
    - strbuf_addf
    - ref_transaction_update
    - ref_transaction_free
    - free
    - lookup_unknown_object
    - ref_store_transaction_begin
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int walker_fetch(struct walker *walker, int targets, char **target,\n\t\t
      const char **write_ref, const char *write_ref_log_details)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct walker*::cleanup
      Src: /src/git/walker.c:358,1
    - Dst: free
      Src: /src/git/walker.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - walker
    argTypes:
    - struct walker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: walker_free
    functionSourceFile: /src/git/walker.c
    functionUses: 2
    functionsReached:
    - struct walker*::cleanup
    - free
    linkageType: ''
    returnType: void
    signature: void walker_free(struct walker *walker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: STR
    functionSourceFile: /src/git/fsck.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - msg_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: MSG_ID
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSG_ID(id, msg_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/fsck.c:52,1
    - Dst: xmalloc
      Src: /src/git/fsck.c:53,1
    - Dst: tolower
      Src: /src/git/fsck.c:60,1
    - Dst: xmalloc
      Src: /src/git/fsck.c:64,1
    - Dst: tolower
      Src: /src/git/fsck.c:72,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 77
    functionName: prepare_msg_ids
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - strlen
    - tolower
    - xmalloc
    linkageType: ''
    returnType: void
    signature: void prepare_msg_ids(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_msg_ids
      Src: /src/git/fsck.c:83,1
    - Dst: strcmp
      Src: /src/git/fsck.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: parse_msg_id
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - prepare_msg_ids
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_msg_id(const char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_msg_ids
      Src: /src/git/fsck.c:96,1
    - Dst: list_config_item
      Src: /src/git/fsck.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - prefix
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: list_config_fsck_msg_ids
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - prepare_msg_ids
    - list_config_item
    linkageType: ''
    returnType: void
    signature: void list_config_fsck_msg_ids(struct string_list *list, const char
      *prefix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/fsck.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - msg_id
    - options
    argTypes:
    - enum fsck_msg_id
    - struct fsck_options*
    assertStmts:
    - condition: (msg_id >= 0 && msg_id < FSCK_MSG_MAX)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/git/fsck.c
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: fsck_msg_type
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: enum fsck_msg_type
    signature: "enum fsck_msg_type fsck_msg_type(enum fsck_msg_id msg_id,\n\tstruct
      fsck_options *options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/fsck.c:120,1
    - Dst: strcmp
      Src: /src/git/fsck.c:122,1
    - Dst: strcmp
      Src: /src/git/fsck.c:124,1
    - Dst: die
      Src: /src/git/fsck.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: parse_msg_type
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - die
    - strcmp
    linkageType: ''
    returnType: enum fsck_msg_type
    signature: enum fsck_msg_type parse_msg_type(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_msg_id
      Src: /src/git/fsck.c:132,1
    - Dst: parse_msg_type
      Src: /src/git/fsck.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - msg_id
    - msg_type
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: is_valid_msg_type
    functionSourceFile: /src/git/fsck.c
    functionUses: 1
    functionsReached:
    - parse_msg_id
    - parse_msg_type
    linkageType: ''
    returnType: int
    signature: int is_valid_msg_type(const char *msg_id, const char *msg_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/fsck.c:145,1
    - Dst: fsck_msg_type
      Src: /src/git/fsck.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - options
    - msg_id
    - msg_type
    argTypes:
    - struct fsck_options*
    - enum fsck_msg_id
    - enum fsck_msg_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: fsck_set_msg_type_from_ids
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - fsck_msg_type
    linkageType: ''
    returnType: void
    signature: "void fsck_set_msg_type_from_ids(struct fsck_options *options,\n\t\t\t\tenum
      fsck_msg_id msg_id,\n\t\t\t\tenum fsck_msg_type msg_type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_msg_id
      Src: /src/git/fsck.c:157,1
    - Dst: die
      Src: /src/git/fsck.c:162,1
    - Dst: strchr
      Src: /src/git/fsck.c:165,1
    - Dst: xmemdupz
      Src: /src/git/fsck.c:168,1
    - Dst: git_parse_ssize_t
      Src: /src/git/fsck.c:170,1
    - Dst: die
      Src: /src/git/fsck.c:171,1
    - Dst: parse_msg_type
      Src: /src/git/fsck.c:174,1
    - Dst: die
      Src: /src/git/fsck.c:177,1
    - Dst: fsck_set_msg_type_from_ids
      Src: /src/git/fsck.c:179,1
    - Dst: free
      Src: /src/git/fsck.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - options
    - msg_id_str
    - msg_type_str
    argTypes:
    - struct fsck_options*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 154
    functionDepth: 10
    functionLinenumber: 154
    functionLinenumberEnd: 181
    functionName: fsck_set_msg_type
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - parse_msg_id
    - xmemdupz
    - die
    - strchr
    - git_parse_ssize_t
    - parse_msg_type
    - fsck_set_msg_type_from_ids
    - free
    linkageType: ''
    returnType: void
    signature: "void fsck_set_msg_type(struct fsck_options *options,\n\t\t       const
      char *msg_id_str, const char *msg_type_str)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/fsck.c:185,1
    - Dst: strcspn
      Src: /src/git/fsck.c:189,1
    - Dst: tolower
      Src: /src/git/fsck.c:201,1
    - Dst: strcmp
      Src: /src/git/fsck.c:204,1
    - Dst: die
      Src: /src/git/fsck.c:206,1
    - Dst: oidset_parse_file
      Src: /src/git/fsck.c:207,1
    - Dst: die
      Src: /src/git/fsck.c:214,1
    - Dst: fsck_set_msg_type
      Src: /src/git/fsck.c:216,1
    - Dst: free
      Src: /src/git/fsck.c:219,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - options
    - values
    argTypes:
    - struct fsck_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 183
    functionDepth: 11
    functionLinenumber: 183
    functionLinenumberEnd: 220
    functionName: fsck_set_msg_types
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - die
    - oidset_parse_file
    - fsck_set_msg_type
    - strcmp
    - strcspn
    - free
    - tolower
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void fsck_set_msg_types(struct fsck_options *options, const char *values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_contains
      Src: /src/git/fsck.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - oid
    argTypes:
    - struct fsck_options*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: object_on_skiplist
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - oidset_contains
    linkageType: ''
    returnType: int
    signature: "int object_on_skiplist(struct fsck_options *opts,\n\t\t\t      const
      struct object_id *oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fsck_msg_type
      Src: /src/git/fsck.c:238,1
    - Dst: prepare_msg_ids
      Src: /src/git/fsck.c:249,1
    - Dst: strbuf_addf
      Src: /src/git/fsck.c:250,1
    - Dst: strbuf_vaddf
      Src: /src/git/fsck.c:252,1
    - Dst: struct fsck_options*::error_func
      Src: /src/git/fsck.c:253,1
    - Dst: strbuf_release
      Src: /src/git/fsck.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - options
    - fsck_report
    - msg_id
    - fmt
    - ap
    argTypes:
    - struct fsck_options*
    - void*
    - enum fsck_msg_id
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 258
    functionName: fsck_vreport
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - struct fsck_options*::error_func
    - strbuf_release
    - fsck_msg_type
    - strbuf_vaddf
    - strbuf_addf
    - prepare_msg_ids
    linkageType: ''
    returnType: int
    signature: "int fsck_vreport(struct fsck_options *options,\n\t\t\tvoid *fsck_report,\n\t\t\tenum
      fsck_msg_id msg_id, const char *fmt, va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/fsck.c:260,1
    - Dst: object_on_skiplist
      Src: /src/git/fsck.c:272,1
    - Dst: va_start
      Src: /src/git/fsck.c:275,1
    - Dst: fsck_vreport
      Src: /src/git/fsck.c:276,1
    - Dst: va_end
      Src: /src/git/fsck.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - options
    - oid
    - object_type
    - msg_id
    - fmt
    argTypes:
    - struct fsck_options*
    - struct object_id*
    - enum object_type
    - enum fsck_msg_id
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 280
    functionName: report
    functionSourceFile: /src/git/fsck.c
    functionUses: 8
    functionsReached:
    - va_end
    - va_start
    - object_on_skiplist
    - fsck_vreport
    - format
    linkageType: ''
    returnType: int
    signature: "int report(struct fsck_options *options,\n\t\t  const struct object_id
      *oid, enum object_type object_type,\n\t\t  enum fsck_msg_id msg_id, const char
      *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/fsck.c:289,1
    - Dst: fsck_vreport
      Src: /src/git/fsck.c:290,1
    - Dst: va_end
      Src: /src/git/fsck.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - options
    - report
    - msg_id
    - fmt
    argTypes:
    - struct fsck_options*
    - struct fsck_ref_report*
    - enum fsck_msg_id
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 293
    functionName: fsck_report_ref
    functionSourceFile: /src/git/fsck.c
    functionUses: 2
    functionsReached:
    - va_end
    - va_start
    - fsck_vreport
    linkageType: ''
    returnType: int
    signature: "int fsck_report_ref(struct fsck_options *options,\n\t\t    struct
      fsck_ref_report *report,\n\t\t    enum fsck_msg_id msg_id,\n\t\t    const char
      *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kh_init_oid_map
      Src: /src/git/fsck.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: fsck_enable_object_names
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - kh_init_oid_map
    linkageType: ''
    returnType: void
    signature: void fsck_enable_object_names(struct fsck_options *options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_get_oid_map
      Src: /src/git/fsck.c:307,1
    - Dst: kh_end
      Src: /src/git/fsck.c:308,1
    - Dst: kh_value
      Src: /src/git/fsck.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - options
    - oid
    argTypes:
    - struct fsck_options*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 311
    functionName: fsck_get_object_name
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - kh_value
    - kh_end
    - kh_get_oid_map
    linkageType: ''
    returnType: char
    signature: "char *fsck_get_object_name(struct fsck_options *options,\n\t\t\t\t
      const struct object_id *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_put_oid_map
      Src: /src/git/fsck.c:325,1
    - Dst: va_start
      Src: /src/git/fsck.c:328,1
    - Dst: strbuf_vaddf
      Src: /src/git/fsck.c:329,1
    - Dst: kh_value
      Src: /src/git/fsck.c:330,1
    - Dst: strbuf_detach
      Src: /src/git/fsck.c:330,1
    - Dst: va_end
      Src: /src/git/fsck.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - options
    - oid
    - fmt
    argTypes:
    - struct fsck_options*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 332
    functionName: fsck_put_object_name
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - strbuf_vaddf
    - kh_put_oid_map
    - va_end
    - kh_value
    - strbuf_detach
    - va_start
    linkageType: ''
    returnType: void
    signature: "void fsck_put_object_name(struct fsck_options *options,\n\t\t\t  const
      struct object_id *oid,\n\t\t\t  const char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsck_get_object_name
      Src: /src/git/fsck.c:342,1
    - Dst: ARRAY_SIZE
      Src: /src/git/fsck.c:345,1
    - Dst: strbuf_reset
      Src: /src/git/fsck.c:346,1
    - Dst: strbuf_addstr
      Src: /src/git/fsck.c:347,1
    - Dst: oid_to_hex
      Src: /src/git/fsck.c:347,1
    - Dst: strbuf_addf
      Src: /src/git/fsck.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - options
    - oid
    argTypes:
    - struct fsck_options*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 334
    functionDepth: 4
    functionLinenumber: 334
    functionLinenumberEnd: 352
    functionName: fsck_describe_object
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - fsck_get_object_name
    - ARRAY_SIZE
    - oid_to_hex
    - strbuf_reset
    - strbuf_addf
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: "char *fsck_describe_object(struct fsck_options *options,\n\t\t\t\t
      const struct object_id *oid)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree
      Src: /src/git/fsck.c:361,1
    - Dst: fsck_get_object_name
      Src: /src/git/fsck.c:364,1
    - Dst: init_tree_desc_gently
      Src: /src/git/fsck.c:365,1
    - Dst: tree_entry_gently
      Src: /src/git/fsck.c:368,1
    - Dst: S_ISGITLINK
      Src: /src/git/fsck.c:372,1
    - Dst: S_ISDIR
      Src: /src/git/fsck.c:375,1
    - Dst: lookup_tree
      Src: /src/git/fsck.c:376,1
    - Dst: fsck_put_object_name
      Src: /src/git/fsck.c:378,1
    - Dst: struct fsck_options*::walk
      Src: /src/git/fsck.c:380,1
    - Dst: S_ISREG
      Src: /src/git/fsck.c:382,1
    - Dst: S_ISLNK
      Src: /src/git/fsck.c:382,1
    - Dst: lookup_blob
      Src: /src/git/fsck.c:383,1
    - Dst: fsck_put_object_name
      Src: /src/git/fsck.c:385,1
    - Dst: struct fsck_options*::walk
      Src: /src/git/fsck.c:387,1
    - Dst: error
      Src: /src/git/fsck.c:390,1
    - Dst: fsck_describe_object
      Src: /src/git/fsck.c:391,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - tree
    - data
    - options
    argTypes:
    - struct tree*
    - void*
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 354
    functionDepth: 14
    functionLinenumber: 354
    functionLinenumberEnd: 400
    functionName: fsck_walk_tree
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - fsck_get_object_name
    - struct fsck_options*::walk
    - S_ISDIR
    - error
    - fsck_describe_object
    - S_ISLNK
    - repo_parse_tree
    - S_ISGITLINK
    - fsck_put_object_name
    - tree_entry_gently
    - lookup_blob
    - init_tree_desc_gently
    - lookup_tree
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int fsck_walk_tree(struct tree *tree, void *data, struct fsck_options
      *options)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/fsck.c:410,1
    - Dst: fsck_get_object_name
      Src: /src/git/fsck.c:413,1
    - Dst: fsck_put_object_name
      Src: /src/git/fsck.c:415,1
    - Dst: get_commit_tree_oid
      Src: /src/git/fsck.c:415,1
    - Dst: struct fsck_options*::walk
      Src: /src/git/fsck.c:418,1
    - Dst: repo_get_commit_tree
      Src: /src/git/fsck.c:418,1
    - Dst: strlen
      Src: /src/git/fsck.c:426,1
    - Dst: isdigit
      Src: /src/git/fsck.c:434,1
    - Dst: fsck_put_object_name
      Src: /src/git/fsck.c:452,1
    - Dst: fsck_put_object_name
      Src: /src/git/fsck.c:455,1
    - Dst: fsck_put_object_name
      Src: /src/git/fsck.c:459,1
    - Dst: struct fsck_options*::walk
      Src: /src/git/fsck.c:461,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 3
    argNames:
    - commit
    - data
    - options
    argTypes:
    - struct commit*
    - void*
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 402
    functionDepth: 20
    functionLinenumber: 402
    functionLinenumberEnd: 469
    functionName: fsck_walk_commit
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - fsck_get_object_name
    - struct fsck_options*::walk
    - repo_parse_commit
    - isdigit
    - get_commit_tree_oid
    - repo_get_commit_tree
    - strlen
    - fsck_put_object_name
    linkageType: ''
    returnType: int
    signature: int fsck_walk_commit(struct commit *commit, void *data, struct fsck_options
      *options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fsck_get_object_name
      Src: /src/git/fsck.c:473,1
    - Dst: parse_tag
      Src: /src/git/fsck.c:475,1
    - Dst: fsck_put_object_name
      Src: /src/git/fsck.c:478,1
    - Dst: struct fsck_options*::walk
      Src: /src/git/fsck.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tag
    - data
    - options
    argTypes:
    - struct tag*
    - void*
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 471
    functionDepth: 6
    functionLinenumber: 471
    functionLinenumberEnd: 480
    functionName: fsck_walk_tag
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - fsck_get_object_name
    - struct fsck_options*::walk
    - parse_tag
    - fsck_put_object_name
    linkageType: ''
    returnType: int
    signature: int fsck_walk_tag(struct tag *tag, void *data, struct fsck_options
      *options)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/fsck.c:488,1
    - Dst: fsck_walk_tree
      Src: /src/git/fsck.c:494,1
    - Dst: fsck_walk_commit
      Src: /src/git/fsck.c:496,1
    - Dst: fsck_walk_tag
      Src: /src/git/fsck.c:498,1
    - Dst: error
      Src: /src/git/fsck.c:500,1
    - Dst: fsck_describe_object
      Src: /src/git/fsck.c:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - obj
    - data
    - options
    argTypes:
    - struct object*
    - void*
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 482
    functionDepth: 21
    functionLinenumber: 482
    functionLinenumberEnd: 504
    functionName: fsck_walk
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - error
    - fsck_describe_object
    - fsck_walk_commit
    - parse_object
    - fsck_walk_tree
    - fsck_walk_tag
    linkageType: ''
    returnType: int
    signature: int fsck_walk(struct object *obj, void *data, struct fsck_options *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/fsck.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stack
    - name
    argTypes:
    - struct name_stack*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 515
    functionName: name_stack_push
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void name_stack_push(struct name_stack *stack, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct name_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: name_stack_pop
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *name_stack_pop(struct name_stack *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/fsck.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct name_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 526
    functionName: name_stack_clear
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void name_stack_clear(struct name_stack *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: is_less_than_slash
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_less_than_slash(unsigned char c)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/fsck.c:548,1
    - Dst: strlen
      Src: /src/git/fsck.c:549,1
    - Dst: memcmp
      Src: /src/git/fsck.c:554,1
    - Dst: S_ISDIR
      Src: /src/git/fsck.c:574,1
    - Dst: S_ISDIR
      Src: /src/git/fsck.c:576,1
    - Dst: is_less_than_slash
      Src: /src/git/fsck.c:593,1
    - Dst: name_stack_push
      Src: /src/git/fsck.c:594,1
    - Dst: is_less_than_slash
      Src: /src/git/fsck.c:595,1
    - Dst: name_stack_pop
      Src: /src/git/fsck.c:598,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:602,1
    - Dst: is_less_than_slash
      Src: /src/git/fsck.c:606,1
    - Dst: name_stack_push
      Src: /src/git/fsck.c:607,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 32
    argCount: 5
    argNames:
    - mode1
    - name1
    - mode2
    - name2
    - candidates
    argTypes:
    - unsigned
    - char*
    - unsigned
    - char*
    - struct name_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 614
    functionName: verify_ordered
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - name_stack_push
    - is_less_than_slash
    - strlen
    - skip_prefix
    - name_stack_pop
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int verify_ordered(unsigned mode1, const char *name1,\n\t\t\t  unsigned
      mode2, const char *name2,\n\t\t\t  struct name_stack *candidates)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: init_tree_desc_gently
      Src: /src/git/fsck.c:637,1
    - Dst: report
      Src: /src/git/fsck.c:639,1
    - Dst: tree_entry_extract
      Src: /src/git/fsck.c:653,1
    - Dst: is_null_oid
      Src: /src/git/fsck.c:655,1
    - Dst: strchr
      Src: /src/git/fsck.c:656,1
    - Dst: strcmp
      Src: /src/git/fsck.c:658,1
    - Dst: strcmp
      Src: /src/git/fsck.c:659,1
    - Dst: is_hfs_dotgit
      Src: /src/git/fsck.c:660,1
    - Dst: is_ntfs_dotgit
      Src: /src/git/fsck.c:660,1
    - Dst: tree_entry_len
      Src: /src/git/fsck.c:662,1
    - Dst: is_hfs_dotgitmodules
      Src: /src/git/fsck.c:664,1
    - Dst: is_ntfs_dotgitmodules
      Src: /src/git/fsck.c:664,1
    - Dst: S_ISLNK
      Src: /src/git/fsck.c:665,1
    - Dst: oidset_insert
      Src: /src/git/fsck.c:666,1
    - Dst: report
      Src: /src/git/fsck.c:669,1
    - Dst: is_hfs_dotgitattributes
      Src: /src/git/fsck.c:675,1
    - Dst: is_ntfs_dotgitattributes
      Src: /src/git/fsck.c:675,1
    - Dst: S_ISLNK
      Src: /src/git/fsck.c:676,1
    - Dst: oidset_insert
      Src: /src/git/fsck.c:677,1
    - Dst: report
      Src: /src/git/fsck.c:680,1
    - Dst: S_ISLNK
      Src: /src/git/fsck.c:685,1
    - Dst: is_hfs_dotgitignore
      Src: /src/git/fsck.c:686,1
    - Dst: is_ntfs_dotgitignore
      Src: /src/git/fsck.c:687,1
    - Dst: report
      Src: /src/git/fsck.c:688,1
    - Dst: is_hfs_dotmailmap
      Src: /src/git/fsck.c:691,1
    - Dst: is_ntfs_dotmailmap
      Src: /src/git/fsck.c:692,1
    - Dst: report
      Src: /src/git/fsck.c:693,1
    - Dst: strchr
      Src: /src/git/fsck.c:698,1
    - Dst: is_ntfs_dotgit
      Src: /src/git/fsck.c:701,1
    - Dst: is_ntfs_dotgitmodules
      Src: /src/git/fsck.c:702,1
    - Dst: S_ISLNK
      Src: /src/git/fsck.c:703,1
    - Dst: oidset_insert
      Src: /src/git/fsck.c:704,1
    - Dst: report
      Src: /src/git/fsck.c:707,1
    - Dst: strchr
      Src: /src/git/fsck.c:711,1
    - Dst: update_tree_entry_gently
      Src: /src/git/fsck.c:715,1
    - Dst: report
      Src: /src/git/fsck.c:716,1
    - Dst: verify_ordered
      Src: /src/git/fsck.c:746,1
    - Dst: name_stack_clear
      Src: /src/git/fsck.c:763,1
    - Dst: report
      Src: /src/git/fsck.c:766,1
    - Dst: report
      Src: /src/git/fsck.c:770,1
    - Dst: report
      Src: /src/git/fsck.c:774,1
    - Dst: report
      Src: /src/git/fsck.c:778,1
    - Dst: report
      Src: /src/git/fsck.c:782,1
    - Dst: report
      Src: /src/git/fsck.c:786,1
    - Dst: report
      Src: /src/git/fsck.c:790,1
    - Dst: report
      Src: /src/git/fsck.c:794,1
    - Dst: report
      Src: /src/git/fsck.c:798,1
    - Dst: report
      Src: /src/git/fsck.c:802,1
    - Dst: report
      Src: /src/git/fsck.c:806,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 101
    argCount: 4
    argNames:
    - tree_oid
    - buffer
    - size
    - options
    argTypes:
    - struct object_id*
    - char*
    - unsigned long
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 616
    functionDepth: 5
    functionLinenumber: 616
    functionLinenumberEnd: 810
    functionName: fsck_tree
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - strchr
    - is_null_oid
    - strcmp
    - oidset_insert
    - name_stack_clear
    - is_ntfs_dotgitmodules
    - is_hfs_dotgitattributes
    - is_ntfs_dotmailmap
    - is_hfs_dotgit
    - update_tree_entry_gently
    - init_tree_desc_gently
    - is_ntfs_dotgitattributes
    - tree_entry_extract
    - is_hfs_dotgitignore
    - is_hfs_dotmailmap
    - verify_ordered
    - report
    - is_ntfs_dotgitignore
    - is_ntfs_dotgit
    - is_hfs_dotgitmodules
    - tree_entry_len
    linkageType: ''
    returnType: int
    signature: "int fsck_tree(const struct object_id *tree_oid,\n\t\t     const char
      *buffer, unsigned long size,\n\t\t     struct fsck_options *options)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: report
      Src: /src/git/fsck.c:839,1
    - Dst: report
      Src: /src/git/fsck.c:857,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - data
    - size
    - oid
    - type
    - options
    argTypes:
    - void*
    - unsigned long
    - struct object_id*
    - enum object_type
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 859
    functionName: verify_headers
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - report
    linkageType: ''
    returnType: int
    signature: "int verify_headers(const void *data, unsigned long size,\n\t\t\t  const
      struct object_id *oid, enum object_type type,\n\t\t\t  struct fsck_options *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/git/fsck.c:867,1
    - Dst: ARRAY_SIZE
      Src: /src/git/fsck.c:868,1
    - Dst: parse_timestamp
      Src: /src/git/fsck.c:874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 875
    functionName: parse_timestamp_from_buf
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - isdigit
    - ARRAY_SIZE
    - parse_timestamp
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t parse_timestamp_from_buf(const char **start, const char
      *end)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/fsck.c:884,1
    - Dst: BUG
      Src: /src/git/fsck.c:886,1
    - Dst: report
      Src: /src/git/fsck.c:890,1
    - Dst: report
      Src: /src/git/fsck.c:893,1
    - Dst: report
      Src: /src/git/fsck.c:895,1
    - Dst: report
      Src: /src/git/fsck.c:903,1
    - Dst: report
      Src: /src/git/fsck.c:907,1
    - Dst: report
      Src: /src/git/fsck.c:916,1
    - Dst: isdigit
      Src: /src/git/fsck.c:929,1
    - Dst: report
      Src: /src/git/fsck.c:930,1
    - Dst: report
      Src: /src/git/fsck.c:933,1
    - Dst: date_overflows
      Src: /src/git/fsck.c:934,1
    - Dst: parse_timestamp_from_buf
      Src: /src/git/fsck.c:934,1
    - Dst: report
      Src: /src/git/fsck.c:935,1
    - Dst: report
      Src: /src/git/fsck.c:937,1
    - Dst: isdigit
      Src: /src/git/fsck.c:940,1
    - Dst: isdigit
      Src: /src/git/fsck.c:941,1
    - Dst: isdigit
      Src: /src/git/fsck.c:942,1
    - Dst: isdigit
      Src: /src/git/fsck.c:943,1
    - Dst: report
      Src: /src/git/fsck.c:945,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 45
    argCount: 5
    argNames:
    - ident
    - ident_end
    - oid
    - type
    - options
    argTypes:
    - char**
    - char*
    - struct object_id*
    - enum object_type
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 948
    functionName: fsck_ident
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - memchr
    - date_overflows
    - parse_timestamp_from_buf
    - report
    - isdigit
    - BUG
    linkageType: ''
    returnType: int
    signature: "int fsck_ident(const char **ident, const char *ident_end,\n\t\t      const
      struct object_id *oid, enum object_type type,\n\t\t      struct fsck_options
      *options)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: verify_headers
      Src: /src/git/fsck.c:966,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:969,1
    - Dst: report
      Src: /src/git/fsck.c:970,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/fsck.c:971,1
    - Dst: report
      Src: /src/git/fsck.c:972,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:977,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/fsck.c:978,1
    - Dst: report
      Src: /src/git/fsck.c:979,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:986,1
    - Dst: fsck_ident
      Src: /src/git/fsck.c:988,1
    - Dst: report
      Src: /src/git/fsck.c:993,1
    - Dst: report
      Src: /src/git/fsck.c:995,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:998,1
    - Dst: report
      Src: /src/git/fsck.c:999,1
    - Dst: fsck_ident
      Src: /src/git/fsck.c:1000,1
    - Dst: memchr
      Src: /src/git/fsck.c:1003,1
    - Dst: report
      Src: /src/git/fsck.c:1004,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 4
    argNames:
    - oid
    - buffer
    - size
    - options
    argTypes:
    - struct object_id*
    - char*
    - unsigned long
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 1010
    functionName: fsck_commit
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - memchr
    - parse_oid_hex_algop
    - verify_headers
    - report
    - skip_prefix
    - fsck_ident
    linkageType: ''
    returnType: int
    signature: "int fsck_commit(const struct object_id *oid,\n\t\t       const char
      *buffer, unsigned long size,\n\t\t       struct fsck_options *options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsck_tag_standalone
      Src: /src/git/fsck.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - oid
    - buffer
    - size
    - options
    argTypes:
    - struct object_id*
    - char*
    - unsigned long
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1019
    functionName: fsck_tag
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - fsck_tag_standalone
    linkageType: ''
    returnType: int
    signature: "int fsck_tag(const struct object_id *oid, const char *buffer,\n\t\t
      \   unsigned long size, struct fsck_options *options)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: verify_headers
      Src: /src/git/fsck.c:1037,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:1041,1
    - Dst: report
      Src: /src/git/fsck.c:1042,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/fsck.c:1045,1
    - Dst: report
      Src: /src/git/fsck.c:1046,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:1052,1
    - Dst: report
      Src: /src/git/fsck.c:1053,1
    - Dst: memchr
      Src: /src/git/fsck.c:1056,1
    - Dst: report
      Src: /src/git/fsck.c:1058,1
    - Dst: type_from_string_gently
      Src: /src/git/fsck.c:1061,1
    - Dst: report
      Src: /src/git/fsck.c:1063,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:1068,1
    - Dst: report
      Src: /src/git/fsck.c:1069,1
    - Dst: memchr
      Src: /src/git/fsck.c:1072,1
    - Dst: report
      Src: /src/git/fsck.c:1074,1
    - Dst: strbuf_addf
      Src: /src/git/fsck.c:1077,1
    - Dst: check_refname_format
      Src: /src/git/fsck.c:1078,1
    - Dst: report
      Src: /src/git/fsck.c:1079,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:1088,1
    - Dst: report
      Src: /src/git/fsck.c:1090,1
    - Dst: fsck_ident
      Src: /src/git/fsck.c:1095,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:1097,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:1097,1
    - Dst: memchr
      Src: /src/git/fsck.c:1098,1
    - Dst: report
      Src: /src/git/fsck.c:1100,1
    - Dst: starts_with
      Src: /src/git/fsck.c:1105,1
    - Dst: memchr
      Src: /src/git/fsck.c:1106,1
    - Dst: report
      Src: /src/git/fsck.c:1108,1
    - Dst: starts_with
      Src: /src/git/fsck.c:1115,1
    - Dst: report
      Src: /src/git/fsck.c:1123,1
    - Dst: strbuf_release
      Src: /src/git/fsck.c:1129,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 89
    argCount: 6
    argNames:
    - oid
    - buffer
    - size
    - options
    - tagged_oid
    - tagged_type
    argTypes:
    - struct object_id*
    - char*
    - unsigned long
    - struct fsck_options*
    - struct object_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1021
    functionDepth: 4
    functionLinenumber: 1021
    functionLinenumberEnd: 1131
    functionName: fsck_tag_standalone
    functionSourceFile: /src/git/fsck.c
    functionUses: 1
    functionsReached:
    - memchr
    - strbuf_release
    - parse_oid_hex_algop
    - verify_headers
    - strbuf_addf
    - report
    - starts_with
    - type_from_string_gently
    - check_refname_format
    - skip_prefix
    - fsck_ident
    linkageType: ''
    returnType: int
    signature: "int fsck_tag_standalone(const struct object_id *oid, const char *buffer,\n\t\t\tunsigned
      long size, struct fsck_options *options,\n\t\t\tstruct object_id *tagged_oid,\n\t\t\tint
      *tagged_type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/fsck.c:1148,1
    - Dst: xmemdupz
      Src: /src/git/fsck.c:1152,1
    - Dst: check_submodule_name
      Src: /src/git/fsck.c:1153,1
    - Dst: report
      Src: /src/git/fsck.c:1154,1
    - Dst: strcmp
      Src: /src/git/fsck.c:1159,1
    - Dst: check_submodule_url
      Src: /src/git/fsck.c:1160,1
    - Dst: report
      Src: /src/git/fsck.c:1161,1
    - Dst: strcmp
      Src: /src/git/fsck.c:1166,1
    - Dst: looks_like_command_line_option
      Src: /src/git/fsck.c:1167,1
    - Dst: report
      Src: /src/git/fsck.c:1168,1
    - Dst: strcmp
      Src: /src/git/fsck.c:1173,1
    - Dst: parse_submodule_update_type
      Src: /src/git/fsck.c:1174,1
    - Dst: report
      Src: /src/git/fsck.c:1175,1
    - Dst: free
      Src: /src/git/fsck.c:1179,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - vdata
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1139
    functionDepth: 10
    functionLinenumber: 1139
    functionLinenumberEnd: 1182
    functionName: fsck_gitmodules_fn
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - parse_submodule_update_type
    - check_submodule_url
    - report
    - parse_config_key
    - looks_like_command_line_option
    - check_submodule_name
    - strcmp
    - free
    linkageType: ''
    returnType: int
    signature: "int fsck_gitmodules_fn(const char *var, const char *value,\n\t\t\t
      \     const struct config_context *ctx UNUSED,\n\t\t\t      void *vdata)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: object_on_skiplist
      Src: /src/git/fsck.c:1189,1
    - Dst: oidset_contains
      Src: /src/git/fsck.c:1192,1
    - Dst: oidset_insert
      Src: /src/git/fsck.c:1196,1
    - Dst: report
      Src: /src/git/fsck.c:1204,1
    - Dst: git_config_from_mem
      Src: /src/git/fsck.c:1213,1
    - Dst: report
      Src: /src/git/fsck.c:1216,1
    - Dst: oidset_contains
      Src: /src/git/fsck.c:1222,1
    - Dst: oidset_insert
      Src: /src/git/fsck.c:1225,1
    - Dst: report
      Src: /src/git/fsck.c:1233,1
    - Dst: strchrnul
      Src: /src/git/fsck.c:1239,1
    - Dst: report
      Src: /src/git/fsck.c:1241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - oid
    - buf
    - size
    - options
    argTypes:
    - struct object_id*
    - char*
    - unsigned long
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1184
    functionDepth: 8
    functionLinenumber: 1184
    functionLinenumberEnd: 1252
    functionName: fsck_blob
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - oidset_contains
    - report
    - git_config_from_mem
    - strchrnul
    - oidset_insert
    - object_on_skiplist
    linkageType: ''
    returnType: int
    signature: "int fsck_blob(const struct object_id *oid, const char *buf,\n\t\t
      \    unsigned long size, struct fsck_options *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: report
      Src: /src/git/fsck.c:1258,1
    - Dst: fsck_buffer
      Src: /src/git/fsck.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - obj
    - data
    - size
    - options
    argTypes:
    - struct object*
    - void*
    - unsigned long
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1261
    functionName: fsck_object
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - fsck_buffer
    - report
    linkageType: ''
    returnType: int
    signature: "int fsck_object(struct object *obj, void *data, unsigned long size,\n\tstruct
      fsck_options *options)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fsck_blob
      Src: /src/git/fsck.c:1268,1
    - Dst: fsck_tree
      Src: /src/git/fsck.c:1270,1
    - Dst: fsck_commit
      Src: /src/git/fsck.c:1272,1
    - Dst: fsck_tag
      Src: /src/git/fsck.c:1274,1
    - Dst: report
      Src: /src/git/fsck.c:1276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - oid
    - type
    - data
    - size
    - options
    argTypes:
    - struct object_id*
    - enum object_type
    - void*
    - unsigned long
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1263
    functionDepth: 9
    functionLinenumber: 1263
    functionLinenumberEnd: 1280
    functionName: fsck_buffer
    functionSourceFile: /src/git/fsck.c
    functionUses: 2
    functionsReached:
    - fsck_tree
    - fsck_tag
    - report
    - fsck_blob
    - fsck_commit
    linkageType: ''
    returnType: int
    signature: "int fsck_buffer(const struct object_id *oid, enum object_type type,\n\t\tconst
      void *data, unsigned long size,\n\t\tstruct fsck_options *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/fsck.c:1292,1
    - Dst: fsck_describe_object
      Src: /src/git/fsck.c:1292,1
    - Dst: error
      Src: /src/git/fsck.c:1295,1
    - Dst: fsck_describe_object
      Src: /src/git/fsck.c:1295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - o
    - fsck_report
    - msg_type
    - msg_id
    - message
    argTypes:
    - struct fsck_options*
    - void*
    - enum fsck_msg_type
    - enum fsck_msg_id
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1282
    functionDepth: 5
    functionLinenumber: 1282
    functionLinenumberEnd: 1297
    functionName: fsck_objects_error_function
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - error
    - warning
    - fsck_describe_object
    linkageType: ''
    returnType: int
    signature: "int fsck_objects_error_function(struct fsck_options *o,\n\t\t\t\tvoid
      *fsck_report,\n\t\t\t\tenum fsck_msg_type msg_type,\n\t\t\t\tenum fsck_msg_id
      msg_id UNUSED,\n\t\t\t\tconst char *message)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/fsck.c:1309,1
    - Dst: warning
      Src: /src/git/fsck.c:1312,1
    - Dst: error
      Src: /src/git/fsck.c:1314,1
    - Dst: strbuf_release
      Src: /src/git/fsck.c:1316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - options
    - fsck_report
    - msg_type
    - msg_id
    - message
    argTypes:
    - struct fsck_options*
    - void*
    - enum fsck_msg_type
    - enum fsck_msg_id
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1299
    functionDepth: 4
    functionLinenumber: 1299
    functionLinenumberEnd: 1318
    functionName: fsck_refs_error_function
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - warning
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int fsck_refs_error_function(struct fsck_options *options UNUSED,\n\t\t\t
      \    void *fsck_report,\n\t\t\t     enum fsck_msg_type msg_type,\n\t\t\t     enum
      fsck_msg_id msg_id UNUSED,\n\t\t\t     const char *message)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidset_iter_init
      Src: /src/git/fsck.c:1328,1
    - Dst: oidset_iter_next
      Src: /src/git/fsck.c:1329,1
    - Dst: oidset_contains
      Src: /src/git/fsck.c:1334,1
    - Dst: odb_read_object
      Src: /src/git/fsck.c:1337,1
    - Dst: is_promisor_object
      Src: /src/git/fsck.c:1339,1
    - Dst: report
      Src: /src/git/fsck.c:1341,1
    - Dst: fsck_blob
      Src: /src/git/fsck.c:1348,1
    - Dst: report
      Src: /src/git/fsck.c:1350,1
    - Dst: free
      Src: /src/git/fsck.c:1352,1
    - Dst: oidset_clear
      Src: /src/git/fsck.c:1355,1
    - Dst: oidset_clear
      Src: /src/git/fsck.c:1356,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 6
    argNames:
    - blobs_found
    - blobs_done
    - msg_missing
    - msg_type
    - options
    - blob_type
    argTypes:
    - struct oidset*
    - struct oidset*
    - enum fsck_msg_id
    - enum fsck_msg_id
    - struct fsck_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1320
    functionDepth: 12
    functionLinenumber: 1320
    functionLinenumberEnd: 1359
    functionName: fsck_blobs
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - oidset_contains
    - report
    - oidset_clear
    - is_promisor_object
    - oidset_iter_next
    - free
    - odb_read_object
    - fsck_blob
    - oidset_iter_init
    linkageType: ''
    returnType: int
    signature: "int fsck_blobs(struct oidset *blobs_found, struct oidset *blobs_done,\n\t\t
      \     enum fsck_msg_id msg_missing, enum fsck_msg_id msg_type,\n\t\t      struct
      fsck_options *options, const char *blob_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsck_blobs
      Src: /src/git/fsck.c:1365,1
    - Dst: fsck_blobs
      Src: /src/git/fsck.c:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1361
    functionDepth: 13
    functionLinenumber: 1361
    functionLinenumberEnd: 1373
    functionName: fsck_finish
    functionSourceFile: /src/git/fsck.c
    functionUses: 3
    functionsReached:
    - fsck_blobs
    linkageType: ''
    returnType: int
    signature: int fsck_finish(struct fsck_options *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_equal
      Src: /src/git/fsck.c:1377,1
    - Dst: oidset_equal
      Src: /src/git/fsck.c:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1375
    functionDepth: 3
    functionLinenumber: 1375
    functionLinenumberEnd: 1379
    functionName: fsck_has_queued_checks
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - oidset_equal
    linkageType: ''
    returnType: bool
    signature: bool fsck_has_queued_checks(struct fsck_options *options)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/fsck.c:1420,1
    - Dst: BUG
      Src: /src/git/fsck.c:1423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - options
    - repo
    - type
    argTypes:
    - struct fsck_options*
    - struct repository*
    - enum fsck_options_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1427
    functionName: fsck_options_init
    functionSourceFile: /src/git/fsck.c
    functionUses: 3
    functionsReached:
    - BUG
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void fsck_options_init(struct fsck_options *options,\n\t\t       struct
      repository *repo,\n\t\t       enum fsck_options_type type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/fsck.c:1431,1
    - Dst: oidset_clear
      Src: /src/git/fsck.c:1432,1
    - Dst: oidset_clear
      Src: /src/git/fsck.c:1433,1
    - Dst: oidset_clear
      Src: /src/git/fsck.c:1434,1
    - Dst: oidset_clear
      Src: /src/git/fsck.c:1435,1
    - Dst: oidset_clear
      Src: /src/git/fsck.c:1436,1
    - Dst: kh_clear_oid_map
      Src: /src/git/fsck.c:1437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1429
    functionDepth: 2
    functionLinenumber: 1429
    functionLinenumberEnd: 1438
    functionName: fsck_options_clear
    functionSourceFile: /src/git/fsck.c
    functionUses: 2
    functionsReached:
    - kh_clear_oid_map
    - oidset_clear
    - free
    linkageType: ''
    returnType: void
    signature: void fsck_options_clear(struct fsck_options *options)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/fsck.c:1446,1
    - Dst: git_config_pathname
      Src: /src/git/fsck.c:1449,1
    - Dst: strbuf_addf
      Src: /src/git/fsck.c:1453,1
    - Dst: free
      Src: /src/git/fsck.c:1454,1
    - Dst: fsck_set_msg_types
      Src: /src/git/fsck.c:1455,1
    - Dst: strbuf_release
      Src: /src/git/fsck.c:1456,1
    - Dst: skip_prefix
      Src: /src/git/fsck.c:1461,1
    - Dst: config_error_nonbool
      Src: /src/git/fsck.c:1463,1
    - Dst: fsck_set_msg_type
      Src: /src/git/fsck.c:1464,1
    - Dst: git_default_config
      Src: /src/git/fsck.c:1468,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1440
    functionDepth: 12
    functionLinenumber: 1440
    functionLinenumberEnd: 1469
    functionName: git_fsck_config
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - git_config_pathname
    - strbuf_release
    - fsck_set_msg_types
    - strbuf_addf
    - fsck_set_msg_type
    - strcmp
    - git_default_config
    - free
    - skip_prefix
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_fsck_config(const char *var, const char *value,\n\t\t    const
      struct config_context *ctx, void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/git/fsck.c:1483,1
    - Dst: oid_to_hex
      Src: /src/git/fsck.c:1483,1
    - Dst: fsck_objects_error_function
      Src: /src/git/fsck.c:1486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - o
    - fsck_report
    - msg_type
    - msg_id
    - message
    argTypes:
    - struct fsck_options*
    - void*
    - enum fsck_msg_type
    - enum fsck_msg_id
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1475
    functionDepth: 6
    functionLinenumber: 1475
    functionLinenumberEnd: 1488
    functionName: fsck_objects_error_cb_print_missing_gitmodules
    functionSourceFile: /src/git/fsck.c
    functionUses: 0
    functionsReached:
    - puts
    - oid_to_hex
    - fsck_objects_error_function
    linkageType: ''
    returnType: int
    signature: "int fsck_objects_error_cb_print_missing_gitmodules(struct fsck_options
      *o,\n\t\t\t\t\t\t   void *fsck_report,\n\t\t\t\t\t\t   enum fsck_msg_type msg_type,\n\t\t\t\t\t\t
      \  enum fsck_msg_id msg_id,\n\t\t\t\t\t\t   const char *message)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_pack_opts_pack_prefix
      Src: /src/git/repack-filtered.c:16,1
    - Dst: prepare_pack_objects
      Src: /src/git/repack-filtered.c:18,1
    - Dst: strvec_push
      Src: /src/git/repack-filtered.c:20,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-filtered.c:22,1
    - Dst: strvec_pushf
      Src: /src/git/repack-filtered.c:23,1
    - Dst: start_command
      Src: /src/git/repack-filtered.c:27,1
    - Dst: xfdopen
      Src: /src/git/repack-filtered.c:37,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-filtered.c:38,1
    - Dst: fprintf
      Src: /src/git/repack-filtered.c:39,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-filtered.c:40,1
    - Dst: fprintf
      Src: /src/git/repack-filtered.c:41,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-filtered.c:42,1
    - Dst: fprintf
      Src: /src/git/repack-filtered.c:43,1
    - Dst: for_each_string_list_item
      Src: /src/git/repack-filtered.c:45,1
    - Dst: fprintf
      Src: /src/git/repack-filtered.c:46,1
    - Dst: fclose
      Src: /src/git/repack-filtered.c:47,1
    - Dst: finish_pack_objects_cmd
      Src: /src/git/repack-filtered.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - opts
    - existing
    - names
    argTypes:
    - struct write_pack_opts*
    - struct existing_packs*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 7
    functionDepth: 7
    functionLinenumber: 7
    functionLinenumberEnd: 51
    functionName: write_filtered_pack
    functionSourceFile: /src/git/repack-filtered.c
    functionUses: 0
    functionsReached:
    - prepare_pack_objects
    - strvec_push
    - for_each_string_list_item
    - fclose
    - write_pack_opts_pack_prefix
    - fprintf
    - finish_pack_objects_cmd
    - xfdopen
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: int
    signature: "int write_filtered_pack(const struct write_pack_opts *opts,\n\t\t\tstruct
      existing_packs *existing,\n\t\t\tstruct string_list *names)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/split-index.c:17,1
    - Dst: _
      Src: /src/git/split-index.c:17,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/split-index.c:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: init_split_index
    functionSourceFile: /src/git/split-index.c
    functionUses: 2
    functionsReached:
    - CALLOC_ARRAY
    - die
    - _
    linkageType: ''
    returnType: struct split_index
    signature: struct split_index *init_split_index(struct index_state *istate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/split-index.c:34,1
    - Dst: init_split_index
      Src: /src/git/split-index.c:35,1
    - Dst: oidread
      Src: /src/git/split-index.c:36,1
    - Dst: ewah_new
      Src: /src/git/split-index.c:41,1
    - Dst: ewah_read_mmap
      Src: /src/git/split-index.c:42,1
    - Dst: error
      Src: /src/git/split-index.c:44,1
    - Dst: ewah_new
      Src: /src/git/split-index.c:47,1
    - Dst: ewah_read_mmap
      Src: /src/git/split-index.c:48,1
    - Dst: error
      Src: /src/git/split-index.c:50,1
    - Dst: error
      Src: /src/git/split-index.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - istate
    - data_
    - sz
    argTypes:
    - struct index_state*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 54
    functionName: read_link_extension
    functionSourceFile: /src/git/split-index.c
    functionUses: 1
    functionsReached:
    - error
    - ewah_new
    - ewah_read_mmap
    - init_split_index
    - oidread
    linkageType: ''
    returnType: int
    signature: "int read_link_extension(struct index_state *istate,\n\t\t\t const
      void *data_, unsigned long sz)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/split-index.c:60,1
    - Dst: ewah_serialize_strbuf
      Src: /src/git/split-index.c:63,1
    - Dst: ewah_serialize_strbuf
      Src: /src/git/split-index.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sb
    - istate
    argTypes:
    - struct strbuf*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: write_link_extension
    functionSourceFile: /src/git/split-index.c
    functionUses: 1
    functionsReached:
    - ewah_serialize_strbuf
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int write_link_extension(struct strbuf *sb,\n\t\t\t struct index_state
      *istate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: mark_base_index_entries
    functionSourceFile: /src/git/split-index.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mark_base_index_entries(struct index_state *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/split-index.c:95,1
    - Dst: mem_pool_init
      Src: /src/git/split-index.c:96,1
    - Dst: mem_pool_combine
      Src: /src/git/split-index.c:99,1
    - Dst: release_index
      Src: /src/git/split-index.c:103,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/split-index.c:105,1
    - Dst: index_state_init
      Src: /src/git/split-index.c:107,1
    - Dst: ALLOC_GROW
      Src: /src/git/split-index.c:111,1
    - Dst: COPY_ARRAY
      Src: /src/git/split-index.c:120,1
    - Dst: mark_base_index_entries
      Src: /src/git/split-index.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 124
    functionName: move_cache_to_base_index
    functionSourceFile: /src/git/split-index.c
    functionUses: 1
    functionsReached:
    - mem_pool_init
    - ALLOC_ARRAY
    - release_index
    - mark_base_index_entries
    - xmalloc
    - ALLOC_GROW
    - COPY_ARRAY
    - index_state_init
    - mem_pool_combine
    linkageType: ''
    returnType: void
    signature: void move_cache_to_base_index(struct index_state *istate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/split-index.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pos
    - data
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: mark_entry_for_delete
    functionSourceFile: /src/git/split-index.c
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: void
    signature: void mark_entry_for_delete(size_t pos, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/split-index.c:143,1
    - Dst: die
      Src: /src/git/split-index.c:146,1
    - Dst: die
      Src: /src/git/split-index.c:150,1
    - Dst: ce_namelen
      Src: /src/git/split-index.c:153,1
    - Dst: die
      Src: /src/git/split-index.c:154,1
    - Dst: copy_cache_entry
      Src: /src/git/split-index.c:159,1
    - Dst: discard_cache_entry
      Src: /src/git/split-index.c:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pos
    - data
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 162
    functionName: replace_entry
    functionSourceFile: /src/git/split-index.c
    functionUses: 0
    functionsReached:
    - copy_cache_entry
    - die
    - ce_namelen
    - discard_cache_entry
    linkageType: ''
    returnType: void
    signature: void replace_entry(size_t pos, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mark_base_index_entries
      Src: /src/git/split-index.c:169,1
    - Dst: ALLOC_GROW
      Src: /src/git/split-index.c:176,1
    - Dst: COPY_ARRAY
      Src: /src/git/split-index.c:177,1
    - Dst: ewah_each_bit
      Src: /src/git/split-index.c:181,1
    - Dst: ewah_each_bit
      Src: /src/git/split-index.c:182,1
    - Dst: remove_marked_cache_entries
      Src: /src/git/split-index.c:184,1
    - Dst: ce_namelen
      Src: /src/git/split-index.c:187,1
    - Dst: die
      Src: /src/git/split-index.c:188,1
    - Dst: add_index_entry
      Src: /src/git/split-index.c:190,1
    - Dst: ewah_free
      Src: /src/git/split-index.c:202,1
    - Dst: ewah_free
      Src: /src/git/split-index.c:203,1
    - Dst: FREE_AND_NULL
      Src: /src/git/split-index.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 164
    functionDepth: 8
    functionLinenumber: 164
    functionLinenumberEnd: 208
    functionName: merge_base_index
    functionSourceFile: /src/git/split-index.c
    functionUses: 1
    functionsReached:
    - ewah_each_bit
    - ce_namelen
    - die
    - remove_marked_cache_entries
    - mark_base_index_entries
    - add_index_entry
    - ALLOC_GROW
    - ewah_free
    - COPY_ARRAY
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void merge_base_index(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/split-index.c:225,1
    - Dst: oideq
      Src: /src/git/split-index.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct cache_entry*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 233
    functionName: compare_ce_content
    functionSourceFile: /src/git/split-index.c
    functionUses: 0
    functionsReached:
    - oideq
    - memcmp
    linkageType: ''
    returnType: int
    signature: int compare_ce_content(struct cache_entry *a, struct cache_entry *b)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: init_split_index
      Src: /src/git/split-index.c:237,1
    - Dst: ewah_new
      Src: /src/git/split-index.c:241,1
    - Dst: ewah_new
      Src: /src/git/split-index.c:242,1
    - Dst: BUG
      Src: /src/git/split-index.c:277,1
    - Dst: ce_uptodate
      Src: /src/git/split-index.c:295,1
    - Dst: is_racy_timestamp
      Src: /src/git/split-index.c:296,1
    - Dst: strcmp
      Src: /src/git/split-index.c:316,1
    - Dst: ce_uptodate
      Src: /src/git/split-index.c:335,1
    - Dst: is_racy_timestamp
      Src: /src/git/split-index.c:336,1
    - Dst: compare_ce_content
      Src: /src/git/split-index.c:354,1
    - Dst: discard_cache_entry
      Src: /src/git/split-index.c:357,1
    - Dst: ewah_set
      Src: /src/git/split-index.c:364,1
    - Dst: ewah_set
      Src: /src/git/split-index.c:366,1
    - Dst: ALLOC_GROW
      Src: /src/git/split-index.c:368,1
    - Dst: is_null_oid
      Src: /src/git/split-index.c:371,1
    - Dst: assert
      Src: /src/git/split-index.c:379,1
    - Dst: ALLOC_GROW
      Src: /src/git/split-index.c:380,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 65
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts:
    - condition: (!(ce->ce_flags & CE_STRIP_NAME))
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/git/split-index.c
    constantsTouched: []
    func_position:
      end: 394
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 394
    functionName: prepare_to_write_split_index
    functionSourceFile: /src/git/split-index.c
    functionUses: 1
    functionsReached:
    - ewah_new
    - compare_ce_content
    - ce_uptodate
    - assert
    - is_racy_timestamp
    - ewah_set
    - discard_cache_entry
    - is_null_oid
    - init_split_index
    - ALLOC_GROW
    - strcmp
    - BUG
    linkageType: ''
    returnType: void
    signature: void prepare_to_write_split_index(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_split_index
      Src: /src/git/split-index.c:398,1
    - Dst: ewah_free
      Src: /src/git/split-index.c:400,1
    - Dst: ewah_free
      Src: /src/git/split-index.c:401,1
    - Dst: free
      Src: /src/git/split-index.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 407
    functionName: finish_writing_split_index
    functionSourceFile: /src/git/split-index.c
    functionUses: 1
    functionsReached:
    - ewah_free
    - init_split_index
    - free
    linkageType: ''
    returnType: void
    signature: void finish_writing_split_index(struct index_state *istate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: discard_index
      Src: /src/git/split-index.c:419,1
    - Dst: free
      Src: /src/git/split-index.c:420,1
    - Dst: free
      Src: /src/git/split-index.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 423
    functionName: discard_split_index
    functionSourceFile: /src/git/split-index.c
    functionUses: 1
    functionsReached:
    - free
    - discard_index
    linkageType: ''
    returnType: void
    signature: void discard_split_index(struct index_state *istate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: discard_cache_entry
      Src: /src/git/split-index.c:434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - istate
    - ce
    argTypes:
    - struct index_state*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 435
    functionName: save_or_free_index_entry
    functionSourceFile: /src/git/split-index.c
    functionUses: 3
    functionsReached:
    - discard_cache_entry
    linkageType: ''
    returnType: void
    signature: void save_or_free_index_entry(struct index_state *istate, struct cache_entry
      *ce)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: discard_cache_entry
      Src: /src/git/split-index.c:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - istate
    - old_entry
    - new_entry
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 450
    functionName: replace_index_entry_in_base
    functionSourceFile: /src/git/split-index.c
    functionUses: 1
    functionsReached:
    - discard_cache_entry
    linkageType: ''
    returnType: void
    signature: "void replace_index_entry_in_base(struct index_state *istate,\n\t\t\t\t
      struct cache_entry *old_entry,\n\t\t\t\t struct cache_entry *new_entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_split_index
      Src: /src/git/split-index.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: add_split_index
    functionSourceFile: /src/git/split-index.c
    functionUses: 1
    functionsReached:
    - init_split_index
    linkageType: ''
    returnType: void
    signature: void add_split_index(struct index_state *istate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_combine
      Src: /src/git/split-index.c:471,1
    - Dst: discard_split_index
      Src: /src/git/split-index.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - istate
    argTypes:
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 460
    functionDepth: 6
    functionLinenumber: 460
    functionLinenumberEnd: 493
    functionName: remove_split_index
    functionSourceFile: /src/git/split-index.c
    functionUses: 1
    functionsReached:
    - mem_pool_combine
    - discard_split_index
    linkageType: ''
    returnType: void
    signature: void remove_split_index(struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/t4051/appended1.c:7,1
    - Dst: printf
      Src: /src/git/t/t4051/appended1.c:12,1
    - Dst: printf
      Src: /src/git/t/t4051/appended1.c:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 2
    functionDepth: 0
    functionLinenumber: 2
    functionLinenumberEnd: 15
    functionName: appended
    functionSourceFile: /src/git/t/t4051/appended1.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int appended(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:10,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:11,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:12,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:13,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:14,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:15,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:17,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:18,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:19,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:20,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:21,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:22,1
    - Dst: putchar
      Src: /src/git/t/t4051/hello.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 24
    functionName: hello
    functionSourceFile: /src/git/t/t4051/hello.c
    functionUses: 0
    functionsReached:
    - putchar
    linkageType: ''
    returnType: void
    signature: void hello(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 2
    functionDepth: 0
    functionLinenumber: 2
    functionLinenumberEnd: 7
    functionName: dummy
    functionSourceFile: /src/git/t/t4051/dummy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dummy(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-getcwd.c:13,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-getcwd.c:17,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-getcwd.c:19,1
    - Dst: xgetcwd
      Src: /src/git/t/helper/test-getcwd.c:21,1
    - Dst: puts
      Src: /src/git/t/helper/test-getcwd.c:22,1
    - Dst: free
      Src: /src/git/t/helper/test-getcwd.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 10
    functionDepth: 13
    functionLinenumber: 10
    functionLinenumberEnd: 26
    functionName: cmd__getcwd
    functionSourceFile: /src/git/t/helper/test-getcwd.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - xgetcwd
    - puts
    - free
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__getcwd(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/helper/test-csprng.c:10,1
    - Dst: strtoul
      Src: /src/git/t/helper/test-csprng.c:14,1
    - Dst: csprng_bytes
      Src: /src/git/t/helper/test-csprng.c:18,1
    - Dst: perror
      Src: /src/git/t/helper/test-csprng.c:19,1
    - Dst: fwrite
      Src: /src/git/t/helper/test-csprng.c:22,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 4
    functionDepth: 4
    functionLinenumber: 4
    functionLinenumberEnd: 28
    functionName: cmd__csprng
    functionSourceFile: /src/git/t/helper/test-csprng.c
    functionUses: 0
    functionsReached:
    - perror
    - fwrite
    - fprintf
    - csprng_bytes
    - strtoul
    linkageType: ''
    returnType: int
    signature: int cmd__csprng(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory_gently
      Src: /src/git/t/helper/test-subprocess.c:12,1
    - Dst: die
      Src: /src/git/t/helper/test-subprocess.c:14,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-subprocess.c:15,1
    - Dst: setup_work_tree
      Src: /src/git/t/helper/test-subprocess.c:16,1
    - Dst: strvec_pushv
      Src: /src/git/t/helper/test-subprocess.c:20,1
    - Dst: run_command
      Src: /src/git/t/helper/test-subprocess.c:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 7
    functionDepth: 13
    functionLinenumber: 7
    functionLinenumberEnd: 22
    functionName: cmd__subprocess
    functionSourceFile: /src/git/t/helper/test-subprocess.c
    functionUses: 0
    functionsReached:
    - die
    - setup_work_tree
    - run_command
    - strvec_pushv
    - setup_git_directory_gently
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmd__subprocess(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-read-midx.c:17,1
    - Dst: odb_find_source
      Src: /src/git/t/helper/test-read-midx.c:18,1
    - Dst: odb_add_to_alternates_memory
      Src: /src/git/t/helper/test-read-midx.c:20,1
    - Dst: load_multi_pack_index
      Src: /src/git/t/helper/test-read-midx.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 14
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: setup_midx
    functionSourceFile: /src/git/t/helper/test-read-midx.c
    functionUses: 0
    functionsReached:
    - load_multi_pack_index
    - odb_find_source
    - odb_add_to_alternates_memory
    - setup_git_directory
    linkageType: ''
    returnType: struct multi_pack_index
    signature: struct multi_pack_index *setup_midx(const char *object_dir)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: setup_midx
      Src: /src/git/t/helper/test-read-midx.c:32,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-read-midx.c:38,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/t/helper/test-read-midx.c:38,1
    - Dst: error
      Src: /src/git/t/helper/test-read-midx.c:41,1
    - Dst: _
      Src: /src/git/t/helper/test-read-midx.c:41,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:47,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:54,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:57,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:59,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:61,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:63,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:65,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:67,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:69,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:71,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:73,1
    - Dst: nth_midxed_object_oid
      Src: /src/git/t/helper/test-read-midx.c:80,1
    - Dst: fill_midx_entry
      Src: /src/git/t/helper/test-read-midx.c:82,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:84,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-read-midx.c:85,1
    - Dst: close_midx
      Src: /src/git/t/helper/test-read-midx.c:90,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - object_dir
    - checksum
    - show_objects
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 25
    functionDepth: 15
    functionLinenumber: 25
    functionLinenumberEnd: 93
    functionName: read_midx_file
    functionSourceFile: /src/git/t/helper/test-read-midx.c
    functionUses: 0
    functionsReached:
    - error
    - nth_midxed_object_oid
    - oid_to_hex
    - close_midx
    - fill_midx_entry
    - strcmp
    - setup_midx
    - _
    - midx_get_checksum_hex
    - printf
    linkageType: ''
    returnType: int
    signature: "int read_midx_file(const char *object_dir, const char *checksum,\n\t\t\t
      \ int show_objects)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_midx
      Src: /src/git/t/helper/test-read-midx.c:99,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:102,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/t/helper/test-read-midx.c:102,1
    - Dst: close_midx
      Src: /src/git/t/helper/test-read-midx.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - object_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 15
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: read_midx_checksum
    functionSourceFile: /src/git/t/helper/test-read-midx.c
    functionUses: 0
    functionsReached:
    - close_midx
    - midx_get_checksum_hex
    - printf
    - setup_midx
    linkageType: ''
    returnType: int
    signature: int read_midx_checksum(const char *object_dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_midx
      Src: /src/git/t/helper/test-read-midx.c:113,1
    - Dst: midx_preferred_pack
      Src: /src/git/t/helper/test-read-midx.c:117,1
    - Dst: warning
      Src: /src/git/t/helper/test-read-midx.c:118,1
    - Dst: _
      Src: /src/git/t/helper/test-read-midx.c:118,1
    - Dst: close_midx
      Src: /src/git/t/helper/test-read-midx.c:119,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:123,1
    - Dst: close_midx
      Src: /src/git/t/helper/test-read-midx.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - object_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 15
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: read_midx_preferred_pack
    functionSourceFile: /src/git/t/helper/test-read-midx.c
    functionUses: 0
    functionsReached:
    - printf
    - close_midx
    - setup_midx
    - _
    - warning
    - midx_preferred_pack
    linkageType: ''
    returnType: int
    signature: int read_midx_preferred_pack(const char *object_dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_midx
      Src: /src/git/t/helper/test-read-midx.c:134,1
    - Dst: nth_bitmapped_pack
      Src: /src/git/t/helper/test-read-midx.c:139,1
    - Dst: close_midx
      Src: /src/git/t/helper/test-read-midx.c:140,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:144,1
    - Dst: pack_basename
      Src: /src/git/t/helper/test-read-midx.c:144,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:145,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-midx.c:146,1
    - Dst: close_midx
      Src: /src/git/t/helper/test-read-midx.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - object_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 128
    functionDepth: 15
    functionLinenumber: 128
    functionLinenumberEnd: 152
    functionName: read_midx_bitmapped_packs
    functionSourceFile: /src/git/t/helper/test-read-midx.c
    functionUses: 0
    functionsReached:
    - pack_basename
    - nth_bitmapped_pack
    - close_midx
    - setup_midx
    - printf
    linkageType: ''
    returnType: int
    signature: int read_midx_bitmapped_packs(const char *object_dir)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/git/t/helper/test-read-midx.c:157,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-read-midx.c:159,1
    - Dst: read_midx_file
      Src: /src/git/t/helper/test-read-midx.c:160,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-read-midx.c:161,1
    - Dst: read_midx_checksum
      Src: /src/git/t/helper/test-read-midx.c:162,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-read-midx.c:163,1
    - Dst: read_midx_preferred_pack
      Src: /src/git/t/helper/test-read-midx.c:164,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-read-midx.c:165,1
    - Dst: read_midx_bitmapped_packs
      Src: /src/git/t/helper/test-read-midx.c:166,1
    - Dst: read_midx_file
      Src: /src/git/t/helper/test-read-midx.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 16
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: cmd__read_midx
    functionSourceFile: /src/git/t/helper/test-read-midx.c
    functionUses: 0
    functionsReached:
    - read_midx_checksum
    - read_midx_file
    - usage
    - read_midx_bitmapped_packs
    - read_midx_preferred_pack
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmd__read_midx(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-fsmonitor-client.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: cmd__fsmonitor_client
    functionSourceFile: /src/git/t/helper/test-fsmonitor-client.c
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: int
    signature: int cmd__fsmonitor_client(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_read_index
      Src: /src/git/t/helper/test-fsmonitor-client.c:32,1
    - Dst: die
      Src: /src/git/t/helper/test-fsmonitor-client.c:33,1
    - Dst: die
      Src: /src/git/t/helper/test-fsmonitor-client.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 8
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: get_token_from_index
    functionSourceFile: /src/git/t/helper/test-fsmonitor-client.c
    functionUses: 0
    functionsReached:
    - die
    - do_read_index
    linkageType: ''
    returnType: char
    signature: char *get_token_from_index(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_token_from_index
      Src: /src/git/t/helper/test-fsmonitor-client.c:54,1
    - Dst: fsmonitor_ipc__send_query
      Src: /src/git/t/helper/test-fsmonitor-client.c:56,1
    - Dst: die
      Src: /src/git/t/helper/test-fsmonitor-client.c:58,1
    - Dst: write_in_full
      Src: /src/git/t/helper/test-fsmonitor-client.c:60,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-fsmonitor-client.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - token
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 9
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: do_send_query
    functionSourceFile: /src/git/t/helper/test-fsmonitor-client.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - fsmonitor_ipc__send_query
    - get_token_from_index
    - write_in_full
    linkageType: ''
    returnType: int
    signature: int do_send_query(const char *token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor_ipc__send_command
      Src: /src/git/t/helper/test-fsmonitor-client.c:78,1
    - Dst: write_in_full
      Src: /src/git/t/helper/test-fsmonitor-client.c:82,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-fsmonitor-client.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: do_send_flush
    functionSourceFile: /src/git/t/helper/test-fsmonitor-client.c
    functionUses: 0
    functionsReached:
    - write_in_full
    - strbuf_release
    - fsmonitor_ipc__send_command
    linkageType: ''
    returnType: int
    signature: int do_send_flush(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace2_thread_start
      Src: /src/git/t/helper/test-fsmonitor-client.c:107,1
    - Dst: strbuf_reset
      Src: /src/git/t/helper/test-fsmonitor-client.c:110,1
    - Dst: fsmonitor_ipc__send_query
      Src: /src/git/t/helper/test-fsmonitor-client.c:112,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-fsmonitor-client.c:119,1
    - Dst: trace2_thread_exit
      Src: /src/git/t/helper/test-fsmonitor-client.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - _hammer_thread_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: hammer_thread_proc
    functionSourceFile: /src/git/t/helper/test-fsmonitor-client.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fsmonitor_ipc__send_query
    - strbuf_reset
    - trace2_thread_exit
    - trace2_thread_start
    linkageType: ''
    returnType: void
    signature: void *hammer_thread_proc(void *_hammer_thread_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_token_from_index
      Src: /src/git/t/helper/test-fsmonitor-client.c:140,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/t/helper/test-fsmonitor-client.c:146,1
    - Dst: pthread_create
      Src: /src/git/t/helper/test-fsmonitor-client.c:154,1
    - Dst: warning
      Src: /src/git/t/helper/test-fsmonitor-client.c:155,1
    - Dst: pthread_join
      Src: /src/git/t/helper/test-fsmonitor-client.c:164,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-fsmonitor-client.c:170,1
    - Dst: free
      Src: /src/git/t/helper/test-fsmonitor-client.c:173,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - token
    - nr_threads
    - nr_requests
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 131
    functionDepth: 9
    functionLinenumber: 131
    functionLinenumberEnd: 180
    functionName: do_hammer
    functionSourceFile: /src/git/t/helper/test-fsmonitor-client.c
    functionUses: 0
    functionsReached:
    - get_token_from_index
    - pthread_create
    - CALLOC_ARRAY
    - free
    - warning
    - pthread_join
    - fprintf
    linkageType: ''
    returnType: int
    signature: int do_hammer(const char *token, int nr_threads, int nr_requests)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-fsmonitor-client.c:197,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-fsmonitor-client.c:200,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-fsmonitor-client.c:201,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-fsmonitor-client.c:203,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-fsmonitor-client.c:206,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-fsmonitor-client.c:209,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-fsmonitor-client.c:213,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-fsmonitor-client.c:215,1
    - Dst: do_send_query
      Src: /src/git/t/helper/test-fsmonitor-client.c:216,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-fsmonitor-client.c:218,1
    - Dst: do_send_flush
      Src: /src/git/t/helper/test-fsmonitor-client.c:219,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-fsmonitor-client.c:221,1
    - Dst: do_hammer
      Src: /src/git/t/helper/test-fsmonitor-client.c:222,1
    - Dst: die
      Src: /src/git/t/helper/test-fsmonitor-client.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 182
    functionDepth: 14
    functionLinenumber: 182
    functionLinenumberEnd: 225
    functionName: cmd__fsmonitor_client
    functionSourceFile: /src/git/t/helper/test-fsmonitor-client.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - do_send_flush
    - die
    - setup_git_directory
    - do_send_query
    - OPT_STRING
    - OPT_INTEGER
    - strcmp
    - do_hammer
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__fsmonitor_client(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_int
      Src: /src/git/t/helper/test-example-tap.c:20,1
    - Dst: check_int
      Src: /src/git/t/helper/test-example-tap.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - expect
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: t_res
    functionSourceFile: /src/git/t/helper/test-example-tap.c
    functionUses: 0
    functionsReached:
    - check_int
    linkageType: ''
    returnType: void
    signature: void t_res(int expect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_TODO
      Src: /src/git/t/helper/test-example-tap.c:26,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: t_todo
    functionSourceFile: /src/git/t/helper/test-example-tap.c
    functionUses: 0
    functionsReached:
    - check
    - TEST_TODO
    linkageType: ''
    returnType: void
    signature: void t_todo(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:31,1
    - Dst: test_skip
      Src: /src/git/t/helper/test-example-tap.c:32,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: t_skip
    functionSourceFile: /src/git/t/helper/test-example-tap.c
    functionUses: 1
    functionsReached:
    - check
    - test_skip
    linkageType: ''
    returnType: void
    signature: void t_skip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_skip
      Src: /src/git/t/helper/test-example-tap.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: do_skip
    functionSourceFile: /src/git/t/helper/test-example-tap.c
    functionUses: 0
    functionsReached:
    - test_skip
    linkageType: ''
    returnType: int
    signature: int do_skip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_TODO
      Src: /src/git/t/helper/test-example-tap.c:44,1
    - Dst: do_skip
      Src: /src/git/t/helper/test-example-tap.c: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: t_skip_todo
    functionSourceFile: /src/git/t/helper/test-example-tap.c
    functionUses: 0
    functionsReached:
    - do_skip
    - TEST_TODO
    linkageType: ''
    returnType: void
    signature: void t_skip_todo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:49,1
    - Dst: TEST_TODO
      Src: /src/git/t/helper/test-example-tap.c:50,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: t_todo_after_fail
    functionSourceFile: /src/git/t/helper/test-example-tap.c
    functionUses: 0
    functionsReached:
    - check
    - TEST_TODO
    linkageType: ''
    returnType: void
    signature: void t_todo_after_fail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:55,1
    - Dst: TEST_TODO
      Src: /src/git/t/helper/test-example-tap.c:56,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:56,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: t_fail_after_todo
    functionSourceFile: /src/git/t/helper/test-example-tap.c
    functionUses: 0
    functionsReached:
    - check
    - TEST_TODO
    linkageType: ''
    returnType: void
    signature: void t_fail_after_todo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_str
      Src: /src/git/t/helper/test-example-tap.c:62,1
    - Dst: check_str
      Src: /src/git/t/helper/test-example-tap.c:63,1
    - Dst: check_char
      Src: /src/git/t/helper/test-example-tap.c:64,1
    - Dst: check_char
      Src: /src/git/t/helper/test-example-tap.c:65,1
    - Dst: check_char
      Src: /src/git/t/helper/test-example-tap.c:66,1
    - Dst: check_char
      Src: /src/git/t/helper/test-example-tap.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: t_messages
    functionSourceFile: /src/git/t/helper/test-example-tap.c
    functionUses: 1
    functionsReached:
    - check_str
    - check_char
    linkageType: ''
    returnType: void
    signature: void t_messages(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: t_empty
    functionSourceFile: /src/git/t/helper/test-example-tap.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void t_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:77,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:79,1
    - Dst: check_int
      Src: /src/git/t/helper/test-example-tap.c:79,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:80,1
    - Dst: t_res
      Src: /src/git/t/helper/test-example-tap.c:80,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:81,1
    - Dst: check_int
      Src: /src/git/t/helper/test-example-tap.c:81,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:82,1
    - Dst: t_res
      Src: /src/git/t/helper/test-example-tap.c:82,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:83,1
    - Dst: t_todo
      Src: /src/git/t/helper/test-example-tap.c:83,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:84,1
    - Dst: t_res
      Src: /src/git/t/helper/test-example-tap.c:84,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:85,1
    - Dst: t_todo
      Src: /src/git/t/helper/test-example-tap.c:85,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:86,1
    - Dst: t_res
      Src: /src/git/t/helper/test-example-tap.c:86,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:87,1
    - Dst: t_skip
      Src: /src/git/t/helper/test-example-tap.c:87,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:88,1
    - Dst: check_int
      Src: /src/git/t/helper/test-example-tap.c:88,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:89,1
    - Dst: t_skip_todo
      Src: /src/git/t/helper/test-example-tap.c:89,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:90,1
    - Dst: t_res
      Src: /src/git/t/helper/test-example-tap.c:90,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:91,1
    - Dst: t_todo_after_fail
      Src: /src/git/t/helper/test-example-tap.c:91,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:92,1
    - Dst: check_int
      Src: /src/git/t/helper/test-example-tap.c:92,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:93,1
    - Dst: t_fail_after_todo
      Src: /src/git/t/helper/test-example-tap.c:93,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:94,1
    - Dst: check_int
      Src: /src/git/t/helper/test-example-tap.c:94,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:95,1
    - Dst: t_messages
      Src: /src/git/t/helper/test-example-tap.c:95,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:96,1
    - Dst: t_empty
      Src: /src/git/t/helper/test-example-tap.c:96,1
    - Dst: TEST
      Src: /src/git/t/helper/test-example-tap.c:97,1
    - Dst: check_int
      Src: /src/git/t/helper/test-example-tap.c:97,1
    - Dst: if_test
      Src: /src/git/t/helper/test-example-tap.c:99,1
    - Dst: check_int
      Src: /src/git/t/helper/test-example-tap.c:100,1
    - Dst: if_test
      Src: /src/git/t/helper/test-example-tap.c:101,1
    - Dst: check_int
      Src: /src/git/t/helper/test-example-tap.c:102,1
    - Dst: if_test
      Src: /src/git/t/helper/test-example-tap.c:103,1
    - Dst: TEST_TODO
      Src: /src/git/t/helper/test-example-tap.c:104,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:104,1
    - Dst: if_test
      Src: /src/git/t/helper/test-example-tap.c:105,1
    - Dst: TEST_TODO
      Src: /src/git/t/helper/test-example-tap.c:106,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:106,1
    - Dst: if_test
      Src: /src/git/t/helper/test-example-tap.c:107,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:108,1
    - Dst: test_skip
      Src: /src/git/t/helper/test-example-tap.c:109,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:110,1
    - Dst: if_test
      Src: /src/git/t/helper/test-example-tap.c:112,1
    - Dst: TEST_TODO
      Src: /src/git/t/helper/test-example-tap.c:113,1
    - Dst: test_skip
      Src: /src/git/t/helper/test-example-tap.c:113,1
    - Dst: if_test
      Src: /src/git/t/helper/test-example-tap.c:114,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:115,1
    - Dst: TEST_TODO
      Src: /src/git/t/helper/test-example-tap.c:116,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:116,1
    - Dst: if_test
      Src: /src/git/t/helper/test-example-tap.c:118,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:119,1
    - Dst: TEST_TODO
      Src: /src/git/t/helper/test-example-tap.c:120,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:120,1
    - Dst: check
      Src: /src/git/t/helper/test-example-tap.c:121,1
    - Dst: if_test
      Src: /src/git/t/helper/test-example-tap.c:123,1
    - Dst: check_str
      Src: /src/git/t/helper/test-example-tap.c:124,1
    - Dst: check_str
      Src: /src/git/t/helper/test-example-tap.c:125,1
    - Dst: check_char
      Src: /src/git/t/helper/test-example-tap.c:126,1
    - Dst: check_char
      Src: /src/git/t/helper/test-example-tap.c:127,1
    - Dst: check_char
      Src: /src/git/t/helper/test-example-tap.c:128,1
    - Dst: check_char
      Src: /src/git/t/helper/test-example-tap.c:129,1
    - Dst: if_test
      Src: /src/git/t/helper/test-example-tap.c:131,1
    - Dst: test_done
      Src: /src/git/t/helper/test-example-tap.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 135
    functionName: cmd__example_tap
    functionSourceFile: /src/git/t/helper/test-example-tap.c
    functionUses: 0
    functionsReached:
    - TEST
    - if_test
    - check_str
    - test_done
    - t_skip
    - test_skip
    - t_todo
    - t_fail_after_todo
    - check_char
    - check_int
    - t_todo_after_fail
    - t_res
    - TEST_TODO
    - check
    - t_empty
    - t_skip_todo
    - t_messages
    linkageType: ''
    returnType: int
    signature: int cmd__example_tap(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:39,1
    - Dst: struct git_hash_algo*::update_fn
      Src: /src/git/t/helper/test-synthesize.c:40,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:54,1
    - Dst: struct git_hash_algo*::update_fn
      Src: /src/git/t/helper/test-synthesize.c:55,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:58,1
    - Dst: struct git_hash_algo*::update_fn
      Src: /src/git/t/helper/test-synthesize.c:59,1
    - Dst: adler32
      Src: /src/git/t/helper/test-synthesize.c:60,1
    - Dst: put_be32
      Src: /src/git/t/helper/test-synthesize.c:69,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:70,1
    - Dst: struct git_hash_algo*::update_fn
      Src: /src/git/t/helper/test-synthesize.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - f
    - pack_ctx
    - data
    - len
    - algo
    argTypes:
    - FILE*
    - struct git_hash_ctx*
    - void*
    - size_t
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 72
    functionName: write_uncompressed_zlib
    functionSourceFile: /src/git/t/helper/test-synthesize.c
    functionUses: 0
    functionsReached:
    - fwrite_or_die
    - put_be32
    - adler32
    - struct git_hash_algo*::update_fn
    linkageType: ''
    returnType: void
    signature: "void write_uncompressed_zlib(FILE *f, struct git_hash_ctx *pack_ctx,\n\t\t\t\t
      \   const void *data, size_t len,\n\t\t\t\t    const struct git_hash_algo *algo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: encode_in_pack_object_header
      Src: /src/git/t/helper/test-synthesize.c:91,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:94,1
    - Dst: struct git_hash_algo*::update_fn
      Src: /src/git/t/helper/test-synthesize.c:95,1
    - Dst: write_uncompressed_zlib
      Src: /src/git/t/helper/test-synthesize.c:98,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/t/helper/test-synthesize.c:100,1
    - Dst: format_object_header
      Src: /src/git/t/helper/test-synthesize.c:101,1
    - Dst: struct git_hash_algo*::update_fn
      Src: /src/git/t/helper/test-synthesize.c:104,1
    - Dst: struct git_hash_algo*::update_fn
      Src: /src/git/t/helper/test-synthesize.c:106,1
    - Dst: struct git_hash_algo*::update_fn
      Src: /src/git/t/helper/test-synthesize.c:109,1
    - Dst: struct git_hash_algo*::update_fn
      Src: /src/git/t/helper/test-synthesize.c:110,1
    - Dst: struct git_hash_algo*::final_oid_fn
      Src: /src/git/t/helper/test-synthesize.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - f
    - pack_ctx
    - type
    - data
    - len
    - oid
    - algo
    argTypes:
    - FILE*
    - struct git_hash_ctx*
    - enum object_type
    - void*
    - size_t
    - struct object_id*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 113
    functionName: write_pack_object
    functionSourceFile: /src/git/t/helper/test-synthesize.c
    functionUses: 0
    functionsReached:
    - format_object_header
    - struct git_hash_algo*::final_oid_fn
    - write_uncompressed_zlib
    - struct git_hash_algo*::update_fn
    - fwrite_or_die
    - struct git_hash_algo*::init_fn
    - encode_in_pack_object_header
    linkageType: ''
    returnType: void
    signature: "void write_pack_object(FILE *f, struct git_hash_ctx *pack_ctx,\n\t\t\t
      \     enum object_type type,\n\t\t\t      const void *data, size_t len,\n\t\t\t
      \     struct object_id *oid,\n\t\t\t      const struct git_hash_algo *algo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-synthesize.c:364,1
    - Dst: xfopen
      Src: /src/git/t/helper/test-synthesize.c:373,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:375,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:378,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:382,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:384,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:388,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:392,1
    - Dst: fclose
      Src: /src/git/t/helper/test-synthesize.c:394,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-synthesize.c:395,1
    - Dst: _
      Src: /src/git/t/helper/test-synthesize.c:395,1
    - Dst: printf
      Src: /src/git/t/helper/test-synthesize.c:397,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - path
    - blob_size
    - algo
    argTypes:
    - char*
    - size_t
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 399
    functionName: generate_fast_pack
    functionSourceFile: /src/git/t/helper/test-synthesize.c
    functionUses: 0
    functionsReached:
    - fclose
    - ARRAY_SIZE
    - die_errno
    - _
    - fwrite_or_die
    - xfopen
    - printf
    linkageType: ''
    returnType: int
    signature: "int generate_fast_pack(const char *path, size_t blob_size,\n\t\t\t
      \     const struct git_hash_algo *algo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/git/t/helper/test-synthesize.c:423,1
    - Dst: htonl
      Src: /src/git/t/helper/test-synthesize.c:424,1
    - Dst: htonl
      Src: /src/git/t/helper/test-synthesize.c:425,1
    - Dst: generate_fast_pack
      Src: /src/git/t/helper/test-synthesize.c:428,1
    - Dst: xfopen
      Src: /src/git/t/helper/test-synthesize.c:431,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/t/helper/test-synthesize.c:433,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:436,1
    - Dst: struct git_hash_algo*::update_fn
      Src: /src/git/t/helper/test-synthesize.c:437,1
    - Dst: write_pack_object
      Src: /src/git/t/helper/test-synthesize.c:440,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-synthesize.c:443,1
    - Dst: strbuf_add
      Src: /src/git/t/helper/test-synthesize.c:444,1
    - Dst: write_pack_object
      Src: /src/git/t/helper/test-synthesize.c:445,1
    - Dst: strbuf_reset
      Src: /src/git/t/helper/test-synthesize.c:448,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-synthesize.c:449,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-synthesize.c:455,1
    - Dst: write_pack_object
      Src: /src/git/t/helper/test-synthesize.c:456,1
    - Dst: write_pack_object
      Src: /src/git/t/helper/test-synthesize.c:459,1
    - Dst: strbuf_reset
      Src: /src/git/t/helper/test-synthesize.c:462,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-synthesize.c:463,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-synthesize.c:470,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-synthesize.c:471,1
    - Dst: write_pack_object
      Src: /src/git/t/helper/test-synthesize.c:472,1
    - Dst: struct git_hash_algo*::final_fn
      Src: /src/git/t/helper/test-synthesize.c:475,1
    - Dst: fwrite_or_die
      Src: /src/git/t/helper/test-synthesize.c:476,1
    - Dst: fclose
      Src: /src/git/t/helper/test-synthesize.c:477,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-synthesize.c:478,1
    - Dst: _
      Src: /src/git/t/helper/test-synthesize.c:478,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-synthesize.c:480,1
    - Dst: printf
      Src: /src/git/t/helper/test-synthesize.c:483,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-synthesize.c:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - path
    - blob_size
    - algo
    argTypes:
    - char*
    - size_t
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 486
    functionName: generate_pack_with_large_object
    functionSourceFile: /src/git/t/helper/test-synthesize.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - oid_to_hex
    - printf
    - strbuf_reset
    - struct git_hash_algo*::init_fn
    - htonl
    - strbuf_addf
    - die_errno
    - write_pack_object
    - struct git_hash_algo*::final_fn
    - struct git_hash_algo*::update_fn
    - _
    - fwrite_or_die
    - xfopen
    - generate_fast_pack
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int generate_pack_with_large_object(const char *path, size_t blob_size,\n\t\t\t\t\t
      \  const struct git_hash_algo *algo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-synthesize.c:504,1
    - Dst: N_
      Src: /src/git/t/helper/test-synthesize.c:505,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-synthesize.c:506,1
    - Dst: setup_git_directory_gently
      Src: /src/git/t/helper/test-synthesize.c:509,1
    - Dst: unsafe_hash_algo
      Src: /src/git/t/helper/test-synthesize.c:511,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-synthesize.c:513,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-synthesize.c:516,1
    - Dst: git_parse_unsigned
      Src: /src/git/t/helper/test-synthesize.c:518,1
    - Dst: maximum_unsigned_value_of_type
      Src: /src/git/t/helper/test-synthesize.c:519,1
    - Dst: die
      Src: /src/git/t/helper/test-synthesize.c:520,1
    - Dst: _
      Src: /src/git/t/helper/test-synthesize.c:520,1
    - Dst: generate_pack_with_large_object
      Src: /src/git/t/helper/test-synthesize.c:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 488
    functionDepth: 13
    functionLinenumber: 488
    functionLinenumberEnd: 525
    functionName: cmd__synthesize__pack
    functionSourceFile: /src/git/t/helper/test-synthesize.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - maximum_unsigned_value_of_type
    - OPT_BOOL
    - setup_git_directory_gently
    - generate_pack_with_large_object
    - git_parse_unsigned
    - N_
    - unsafe_hash_algo
    - _
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd__synthesize__pack(int argc, const char **argv,\n\t\t\t\t const
      char *prefix UNUSED,\n\t\t\t\t struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/t/helper/test-synthesize.c:536,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-synthesize.c:537,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-synthesize.c:539,1
    - Dst: fn
      Src: /src/git/t/helper/test-synthesize.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 527
    functionDepth: 13
    functionLinenumber: 527
    functionLinenumberEnd: 541
    functionName: cmd__synthesize
    functionSourceFile: /src/git/t/helper/test-synthesize.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - parse_options
    - OPT_SUBCOMMAND
    - fn
    linkageType: ''
    returnType: int
    signature: int cmd__synthesize(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/helper/test-submodule-config.c:14,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-submodule-config.c:15,1
    - Dst: exit
      Src: /src/git/t/helper/test-submodule-config.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - UNUSED
    - argv
    - msg
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: die_usage
    functionSourceFile: /src/git/t/helper/test-submodule-config.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void die_usage(int argc UNUSED, const char **argv, const char *msg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/t/helper/test-submodule-config.c:27,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-submodule-config.c:28,1
    - Dst: die_usage
      Src: /src/git/t/helper/test-submodule-config.c:35,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-submodule-config.c:37,1
    - Dst: oidclr
      Src: /src/git/t/helper/test-submodule-config.c:49,1
    - Dst: repo_get_oid
      Src: /src/git/t/helper/test-submodule-config.c:50,1
    - Dst: die_usage
      Src: /src/git/t/helper/test-submodule-config.c:51,1
    - Dst: submodule_from_name
      Src: /src/git/t/helper/test-submodule-config.c:54,1
    - Dst: submodule_from_path
      Src: /src/git/t/helper/test-submodule-config.c:57,1
    - Dst: die_usage
      Src: /src/git/t/helper/test-submodule-config.c:60,1
    - Dst: printf
      Src: /src/git/t/helper/test-submodule-config.c:62,1
    - Dst: submodule_free
      Src: /src/git/t/helper/test-submodule-config.c:68,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 19
    functionDepth: 14
    functionLinenumber: 19
    functionLinenumberEnd: 71
    functionName: cmd__submodule_config
    functionSourceFile: /src/git/t/helper/test-submodule-config.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - setup_git_directory
    - die_usage
    - repo_get_oid
    - starts_with
    - oidclr
    - strcmp
    - submodule_from_name
    - printf
    - submodule_free
    linkageType: ''
    returnType: int
    signature: int cmd__submodule_config(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/git/t/helper/test-write-cache.c:14,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-write-cache.c:15,1
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-write-cache.c:16,1
    - Dst: repo_hold_locked_index
      Src: /src/git/t/helper/test-write-cache.c:18,1
    - Dst: write_locked_index
      Src: /src/git/t/helper/test-write-cache.c:20,1
    - Dst: die
      Src: /src/git/t/helper/test-write-cache.c:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 9
    functionDepth: 14
    functionLinenumber: 9
    functionLinenumberEnd: 25
    functionName: cmd__write_cache
    functionSourceFile: /src/git/t/helper/test-write-cache.c
    functionUses: 0
    functionsReached:
    - die
    - setup_git_directory
    - repo_read_index
    - write_locked_index
    - repo_hold_locked_index
    - strtol
    linkageType: ''
    returnType: int
    signature: int cmd__write_cache(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-string-list.c:7,1
    - Dst: strbuf_read
      Src: /src/git/t/helper/test-string-list.c:12,1
    - Dst: strbuf_setlen
      Src: /src/git/t/helper/test-string-list.c:19,1
    - Dst: string_list_split_in_place
      Src: /src/git/t/helper/test-string-list.c:20,1
    - Dst: string_list_sort
      Src: /src/git/t/helper/test-string-list.c:22,1
    - Dst: for_each_string_list_item
      Src: /src/git/t/helper/test-string-list.c:24,1
    - Dst: puts
      Src: /src/git/t/helper/test-string-list.c:25,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-string-list.c:27,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-string-list.c:28,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-string-list.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 5
    functionDepth: 5
    functionLinenumber: 5
    functionLinenumberEnd: 35
    functionName: cmd__string_list
    functionSourceFile: /src/git/t/helper/test-string-list.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - strbuf_read
    - strbuf_release
    - puts
    - string_list_sort
    - strbuf_setlen
    - strcmp
    - string_list_split_in_place
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd__string_list(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/t/helper/test-hash-speed.c:8,1
    - Dst: git_hash_update
      Src: /src/git/t/helper/test-hash-speed.c:9,1
    - Dst: git_hash_final
      Src: /src/git/t/helper/test-hash-speed.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - algo
    - ctx
    - final
    - p
    - len
    argTypes:
    - struct git_hash_algo*
    - struct git_hash_ctx*
    - uint8_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 11
    functionName: compute_hash
    functionSourceFile: /src/git/t/helper/test-hash-speed.c
    functionUses: 0
    functionsReached:
    - git_hash_final
    - git_hash_update
    - struct git_hash_algo*::init_fn
    linkageType: ''
    returnType: void
    signature: void compute_hash(const struct git_hash_algo *algo, struct git_hash_ctx
      *ctx, uint8_t *final, const void *p, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-hash-speed.c:24,1
    - Dst: die
      Src: /src/git/t/helper/test-hash-speed.c:31,1
    - Dst: clock
      Src: /src/git/t/helper/test-hash-speed.c:34,1
    - Dst: printf
      Src: /src/git/t/helper/test-hash-speed.c:36,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-hash-speed.c:38,1
    - Dst: xcalloc
      Src: /src/git/t/helper/test-hash-speed.c:41,1
    - Dst: clock
      Src: /src/git/t/helper/test-hash-speed.c:42,1
    - Dst: compute_hash
      Src: /src/git/t/helper/test-hash-speed.c:44,1
    - Dst: clock
      Src: /src/git/t/helper/test-hash-speed.c:51,1
    - Dst: printf
      Src: /src/git/t/helper/test-hash-speed.c:55,1
    - Dst: free
      Src: /src/git/t/helper/test-hash-speed.c:56,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 13
    functionDepth: 7
    functionLinenumber: 13
    functionLinenumberEnd: 60
    functionName: cmd__hash_speed
    functionSourceFile: /src/git/t/helper/test-hash-speed.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - die
    - clock
    - xcalloc
    - strcmp
    - free
    - compute_hash
    - printf
    linkageType: ''
    returnType: int
    signature: int cmd__hash_speed(int ac, const char **av)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-dump-fsmonitor.c:12,1
    - Dst: do_read_index
      Src: /src/git/t/helper/test-dump-fsmonitor.c:13,1
    - Dst: die
      Src: /src/git/t/helper/test-dump-fsmonitor.c:14,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-fsmonitor.c:16,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-fsmonitor.c:19,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-fsmonitor.c:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 8
    functionDepth: 14
    functionLinenumber: 8
    functionLinenumberEnd: 25
    functionName: cmd__dump_fsmonitor
    functionSourceFile: /src/git/t/helper/test-dump-fsmonitor.c
    functionUses: 0
    functionsReached:
    - die
    - do_read_index
    - printf
    - setup_git_directory
    linkageType: ''
    returnType: int
    signature: int cmd__dump_fsmonitor(int ac UNUSED, const char **av UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-serve-v2.c:20,1
    - Dst: N_
      Src: /src/git/t/helper/test-serve-v2.c:21,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-serve-v2.c:22,1
    - Dst: N_
      Src: /src/git/t/helper/test-serve-v2.c:23,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-serve-v2.c:24,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-serve-v2.c:26,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-serve-v2.c:29,1
    - Dst: protocol_v2_advertise_capabilities
      Src: /src/git/t/helper/test-serve-v2.c:34,1
    - Dst: protocol_v2_serve_loop
      Src: /src/git/t/helper/test-serve-v2.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 15
    functionDepth: 14
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: cmd__serve_v2
    functionSourceFile: /src/git/t/helper/test-serve-v2.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - setup_git_directory
    - OPT_BOOL
    - protocol_v2_serve_loop
    - N_
    - protocol_v2_advertise_capabilities
    linkageType: ''
    returnType: int
    signature: int cmd__serve_v2(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 11
    functionName: X
    functionSourceFile: /src/git/t/helper/test-sigchain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigchain_push
      Src: /src/git/t/helper/test-sigchain.c:18,1
    - Dst: sigchain_push
      Src: /src/git/t/helper/test-sigchain.c:19,1
    - Dst: sigchain_push
      Src: /src/git/t/helper/test-sigchain.c:20,1
    - Dst: raise
      Src: /src/git/t/helper/test-sigchain.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: cmd__sigchain
    functionSourceFile: /src/git/t/helper/test-sigchain.c
    functionUses: 0
    functionsReached:
    - sigchain_push
    - raise
    linkageType: ''
    returnType: int
    signature: int cmd__sigchain(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: FLAG_DEF
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAG_DEF(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-ref-store.c:29,1
    - Dst: string_list_split
      Src: /src/git/t/helper/test-ref-store.c:32,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-ref-store.c:38,1
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:46,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-ref-store.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - str
    - defs
    argTypes:
    - char*
    - struct flag_definition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: parse_flags
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - string_list_split
    - string_list_clear
    - die
    - strcmp
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int parse_flags(const char *str, struct flag_definition *defs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - arg
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: notnull
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: char
    signature: char *notnull(const char *arg, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_flags
      Src: /src/git/t/helper/test-ref-store.c:65,1
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arg
    - name
    - defs
    argTypes:
    - char*
    - char*
    - struct flag_definition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: arg_flags
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - notnull
    - parse_flags
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int arg_flags(const char *arg, const char *name,\n\t\t\t
      \     struct flag_definition *defs)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:73,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-ref-store.c:74,1
    - Dst: get_main_ref_store
      Src: /src/git/t/helper/test-ref-store.c:75,1
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-ref-store.c:76,1
    - Dst: repo_submodule_path_append
      Src: /src/git/t/helper/test-ref-store.c:79,1
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:81,1
    - Dst: odb_add_to_alternates_memory
      Src: /src/git/t/helper/test-ref-store.c:82,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-ref-store.c:83,1
    - Dst: repo_get_submodule_ref_store
      Src: /src/git/t/helper/test-ref-store.c:85,1
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-ref-store.c:86,1
    - Dst: get_worktrees
      Src: /src/git/t/helper/test-ref-store.c:87,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-ref-store.c:94,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-ref-store.c:96,1
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:100,1
    - Dst: get_worktree_ref_store
      Src: /src/git/t/helper/test-ref-store.c:102,1
    - Dst: free_worktrees
      Src: /src/git/t/helper/test-ref-store.c:103,1
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:105,1
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:108,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 68
    functionDepth: 15
    functionLinenumber: 68
    functionLinenumberEnd: 113
    functionName: get_store
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_worktrees
    - die
    - repo_get_submodule_ref_store
    - get_worktree_ref_store
    - free_worktrees
    - strcmp
    - repo_submodule_path_append
    - skip_prefix
    - odb_add_to_alternates_memory
    - get_main_ref_store
    linkageType: ''
    returnType: char
    signature: char **get_store(const char **argv, struct ref_store **refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:117,1
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:118,1
    - Dst: refs_update_symref
      Src: /src/git/t/helper/test-ref-store.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: cmd_create_symref
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - notnull
    - refs_update_symref
    linkageType: ''
    returnType: int
    signature: int cmd_create_symref(struct ref_store *refs, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arg_flags
      Src: /src/git/t/helper/test-ref-store.c:135,1
    - Dst: string_list_append
      Src: /src/git/t/helper/test-ref-store.c:141,1
    - Dst: refs_delete_refs
      Src: /src/git/t/helper/test-ref-store.c:143,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-ref-store.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 8
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: cmd_delete_refs
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - refs_delete_refs
    - string_list_clear
    - arg_flags
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int cmd_delete_refs(struct ref_store *refs, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:150,1
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:151,1
    - Dst: refs_rename_ref
      Src: /src/git/t/helper/test-ref-store.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: cmd_rename_ref
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - notnull
    - refs_rename_ref
    linkageType: ''
    returnType: int
    signature: int cmd_rename_ref(struct ref_store *refs, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-ref-store.c:159,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-ref-store.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: each_ref
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 18
    functionsReached:
    - oid_to_hex
    - printf
    linkageType: ''
    returnType: int
    signature: int each_ref(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:165,1
    - Dst: strlen
      Src: /src/git/t/helper/test-ref-store.c:168,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/t/helper/test-ref-store.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: cmd_for_each_ref
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - notnull
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmd_for_each_ref(struct ref_store *refs, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:175,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/t/helper/test-ref-store.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: cmd_for_each_ref__exclude
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - notnull
    linkageType: ''
    returnType: int
    signature: int cmd_for_each_ref__exclude(struct ref_store *refs, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: null_oid
      Src: /src/git/t/helper/test-ref-store.c:186,1
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:187,1
    - Dst: arg_flags
      Src: /src/git/t/helper/test-ref-store.c:188,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/t/helper/test-ref-store.c:192,1
    - Dst: printf
      Src: /src/git/t/helper/test-ref-store.c:194,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-ref-store.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 7
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: cmd_resolve_ref
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - notnull
    - oid_to_hex
    - refs_resolve_ref_unsafe
    - arg_flags
    - null_oid
    - printf
    linkageType: ''
    returnType: int
    signature: int cmd_resolve_ref(struct ref_store *refs, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:200,1
    - Dst: refs_verify_refname_available
      Src: /src/git/t/helper/test-ref-store.c:204,1
    - Dst: puts
      Src: /src/git/t/helper/test-ref-store.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: cmd_verify_ref
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - puts
    - notnull
    - refs_verify_refname_available
    linkageType: ''
    returnType: int
    signature: int cmd_verify_ref(struct ref_store *refs, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-ref-store.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - refname
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: each_reflog
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int each_reflog(const char *refname, void *cb_data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_reflog
      Src: /src/git/t/helper/test-ref-store.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - UNUSED
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: cmd_for_each_reflog
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - refs_for_each_reflog
    linkageType: ''
    returnType: int
    signature: "int cmd_for_each_reflog(struct ref_store *refs,\n\t\t\t       const
      char **argv UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-ref-store.c:227,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-ref-store.c:227,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-ref-store.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - refname
    - old_oid
    - new_oid
    - committer
    - timestamp
    - tz
    - msg
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 231
    functionName: each_reflog_ent
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 8
    functionsReached:
    - oid_to_hex
    - printf
    linkageType: ''
    returnType: int
    signature: "int each_reflog_ent(const char *refname UNUSED,\n\t\t\t   struct object_id
      *old_oid, struct object_id *new_oid,\n\t\t\t   const char *committer, timestamp_t
      timestamp,\n\t\t\t   int tz, const char *msg, void *cb_data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:235,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/t/helper/test-ref-store.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: cmd_for_each_reflog_ent
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - notnull
    - refs_for_each_reflog_ent
    linkageType: ''
    returnType: int
    signature: int cmd_for_each_reflog_ent(struct ref_store *refs, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:242,1
    - Dst: refs_for_each_reflog_ent_reverse
      Src: /src/git/t/helper/test-ref-store.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: cmd_for_each_reflog_ent_reverse
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - notnull
    - refs_for_each_reflog_ent_reverse
    linkageType: ''
    returnType: int
    signature: int cmd_for_each_reflog_ent_reverse(struct ref_store *refs, const char
      **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:249,1
    - Dst: refs_reflog_exists
      Src: /src/git/t/helper/test-ref-store.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: cmd_reflog_exists
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - refs_reflog_exists
    - notnull
    linkageType: ''
    returnType: int
    signature: int cmd_reflog_exists(struct ref_store *refs, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:256,1
    - Dst: refs_create_reflog
      Src: /src/git/t/helper/test-ref-store.c:260,1
    - Dst: puts
      Src: /src/git/t/helper/test-ref-store.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 264
    functionName: cmd_create_reflog
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - puts
    - notnull
    - refs_create_reflog
    linkageType: ''
    returnType: int
    signature: int cmd_create_reflog(struct ref_store *refs, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:268,1
    - Dst: refs_delete_reflog
      Src: /src/git/t/helper/test-ref-store.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: cmd_delete_reflog
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - notnull
    - refs_delete_reflog
    linkageType: ''
    returnType: int
    signature: int cmd_delete_reflog(struct ref_store *refs, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:275,1
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:276,1
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:277,1
    - Dst: arg_flags
      Src: /src/git/t/helper/test-ref-store.c:278,1
    - Dst: get_oid_hex
      Src: /src/git/t/helper/test-ref-store.c:281,1
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:282,1
    - Dst: refs_delete_ref
      Src: /src/git/t/helper/test-ref-store.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 7
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: cmd_delete_ref
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - notnull
    - refs_delete_ref
    - die
    - get_oid_hex
    - arg_flags
    linkageType: ''
    returnType: int
    signature: int cmd_delete_ref(struct ref_store *refs, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:289,1
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:290,1
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:291,1
    - Dst: notnull
      Src: /src/git/t/helper/test-ref-store.c:292,1
    - Dst: arg_flags
      Src: /src/git/t/helper/test-ref-store.c:293,1
    - Dst: get_oid_hex
      Src: /src/git/t/helper/test-ref-store.c:298,1
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:299,1
    - Dst: get_oid_hex
      Src: /src/git/t/helper/test-ref-store.c:302,1
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:303,1
    - Dst: refs_update_ref
      Src: /src/git/t/helper/test-ref-store.c:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - refs
    - argv
    argTypes:
    - struct ref_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 287
    functionDepth: 7
    functionLinenumber: 287
    functionLinenumberEnd: 308
    functionName: cmd_update_ref
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - notnull
    - die
    - get_oid_hex
    - arg_flags
    - refs_update_ref
    linkageType: ''
    returnType: int
    signature: int cmd_update_ref(struct ref_store *refs, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-ref-store.c:343,1
    - Dst: get_store
      Src: /src/git/t/helper/test-ref-store.c:345,1
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:349,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-ref-store.c:351,1
    - Dst: struct command*::func
      Src: /src/git/t/helper/test-ref-store.c:352,1
    - Dst: die
      Src: /src/git/t/helper/test-ref-store.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - UNUSED
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 337
    functionDepth: 16
    functionLinenumber: 337
    functionLinenumberEnd: 356
    functionName: cmd__ref_store
    functionSourceFile: /src/git/t/helper/test-ref-store.c
    functionUses: 0
    functionsReached:
    - die
    - setup_git_directory
    - get_store
    - strcmp
    - struct command*::func
    linkageType: ''
    returnType: int
    signature: int cmd__ref_store(int argc UNUSED, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-read-cache.c:15,1
    - Dst: strtol
      Src: /src/git/t/helper/test-read-cache.c:21,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-read-cache.c:22,1
    - Dst: repo_config
      Src: /src/git/t/helper/test-read-cache.c:23,1
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-read-cache.c:26,1
    - Dst: refresh_index
      Src: /src/git/t/helper/test-read-cache.c:30,1
    - Dst: index_name_pos
      Src: /src/git/t/helper/test-read-cache.c:32,1
    - Dst: strlen
      Src: /src/git/t/helper/test-read-cache.c:32,1
    - Dst: die
      Src: /src/git/t/helper/test-read-cache.c:34,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-cache.c:35,1
    - Dst: ce_uptodate
      Src: /src/git/t/helper/test-read-cache.c:36,1
    - Dst: write_file
      Src: /src/git/t/helper/test-read-cache.c:37,1
    - Dst: discard_index
      Src: /src/git/t/helper/test-read-cache.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 10
    functionDepth: 19
    functionLinenumber: 10
    functionLinenumberEnd: 42
    functionName: cmd__read_cache
    functionSourceFile: /src/git/t/helper/test-read-cache.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - die
    - ce_uptodate
    - write_file
    - setup_git_directory
    - repo_read_index
    - strlen
    - refresh_index
    - strtol
    - skip_prefix
    - repo_config
    - printf
    - discard_index
    linkageType: ''
    returnType: int
    signature: int cmd__read_cache(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_format_commit_message
      Src: /src/git/t/helper/test-revision-walking.c:25,1
    - Dst: printf
      Src: /src/git/t/helper/test-revision-walking.c:27,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-revision-walking.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 14
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: print_commit
    functionSourceFile: /src/git/t/helper/test-revision-walking.c
    functionUses: 5
    functionsReached:
    - repo_format_commit_message
    - strbuf_release
    - printf
    linkageType: ''
    returnType: void
    signature: void print_commit(struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-revision-walking.c:36,1
    - Dst: repo_init_revisions
      Src: /src/git/t/helper/test-revision-walking.c:39,1
    - Dst: setup_revisions
      Src: /src/git/t/helper/test-revision-walking.c:40,1
    - Dst: prepare_revision_walk
      Src: /src/git/t/helper/test-revision-walking.c:41,1
    - Dst: die
      Src: /src/git/t/helper/test-revision-walking.c:42,1
    - Dst: get_revision
      Src: /src/git/t/helper/test-revision-walking.c:44,1
    - Dst: print_commit
      Src: /src/git/t/helper/test-revision-walking.c:45,1
    - Dst: reset_revision_walk
      Src: /src/git/t/helper/test-revision-walking.c:49,1
    - Dst: release_revisions
      Src: /src/git/t/helper/test-revision-walking.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 31
    functionDepth: 13
    functionLinenumber: 31
    functionLinenumberEnd: 52
    functionName: run_revision_walk
    functionSourceFile: /src/git/t/helper/test-revision-walking.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - print_commit
    - die
    - release_revisions
    - reset_revision_walk
    - repo_init_revisions
    - prepare_revision_walk
    - get_revision
    - setup_revisions
    linkageType: ''
    returnType: int
    signature: int run_revision_walk(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-revision-walking.c:59,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-revision-walking.c:61,1
    - Dst: printf
      Src: /src/git/t/helper/test-revision-walking.c:62,1
    - Dst: run_revision_walk
      Src: /src/git/t/helper/test-revision-walking.c:63,1
    - Dst: printf
      Src: /src/git/t/helper/test-revision-walking.c:65,1
    - Dst: run_revision_walk
      Src: /src/git/t/helper/test-revision-walking.c:66,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-revision-walking.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 14
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: cmd__revision_walking
    functionSourceFile: /src/git/t/helper/test-revision-walking.c
    functionUses: 0
    functionsReached:
    - printf
    - setup_git_directory
    - run_revision_walk
    - strcmp
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd__revision_walking(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/git/t/helper/test-userdiff.c:13,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - driver
    - type
    - priv
    argTypes:
    - struct userdiff_driver*
    - enum userdiff_driver_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 15
    functionName: driver_cb
    functionSourceFile: /src/git/t/helper/test-userdiff.c
    functionUses: 0
    functionsReached:
    - puts
    linkageType: ''
    returnType: int
    signature: "int driver_cb(struct userdiff_driver *driver,\n\t\t     enum userdiff_driver_type
      type, void *priv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: userdiff_config
      Src: /src/git/t/helper/test-userdiff.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: cmd__userdiff_config
    functionSourceFile: /src/git/t/helper/test-userdiff.c
    functionUses: 0
    functionsReached:
    - userdiff_config
    linkageType: ''
    returnType: int
    signature: "int cmd__userdiff_config(const char *var, const char *value,\n\t\t\t\tconst
      struct config_context *ctx UNUSED,\n\t\t\t\tvoid *cb UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-userdiff.c:32,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-userdiff.c:35,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-userdiff.c:37,1
    - Dst: error
      Src: /src/git/t/helper/test-userdiff.c:40,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-userdiff.c:43,1
    - Dst: repo_config
      Src: /src/git/t/helper/test-userdiff.c:44,1
    - Dst: for_each_userdiff_driver
      Src: /src/git/t/helper/test-userdiff.c:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 26
    functionDepth: 19
    functionLinenumber: 26
    functionLinenumberEnd: 50
    functionName: cmd__userdiff
    functionSourceFile: /src/git/t/helper/test-userdiff.c
    functionUses: 0
    functionsReached:
    - error
    - setup_git_directory
    - for_each_userdiff_driver
    - strcmp
    - repo_config
    linkageType: ''
    returnType: int
    signature: int cmd__userdiff(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_init
      Src: /src/git/t/helper/test-partial-clone.c:24,1
    - Dst: die
      Src: /src/git/t/helper/test-partial-clone.c:25,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/t/helper/test-partial-clone.c:26,1
    - Dst: die
      Src: /src/git/t/helper/test-partial-clone.c:27,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/t/helper/test-partial-clone.c:28,1
    - Dst: die
      Src: /src/git/t/helper/test-partial-clone.c:29,1
    - Dst: printf
      Src: /src/git/t/helper/test-partial-clone.c:30,1
    - Dst: repo_clear
      Src: /src/git/t/helper/test-partial-clone.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - gitdir
    - oid_hex
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 16
    functionDepth: 11
    functionLinenumber: 16
    functionLinenumberEnd: 33
    functionName: object_info
    functionSourceFile: /src/git/t/helper/test-partial-clone.c
    functionUses: 34
    functionsReached:
    - die
    - parse_oid_hex_algop
    - repo_clear
    - repo_init
    - odb_read_object_info_extended
    - printf
    linkageType: ''
    returnType: void
    signature: void object_info(const char *gitdir, const char *oid_hex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-partial-clone.c:37,1
    - Dst: die
      Src: /src/git/t/helper/test-partial-clone.c:40,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-partial-clone.c:42,1
    - Dst: object_info
      Src: /src/git/t/helper/test-partial-clone.c:43,1
    - Dst: die
      Src: /src/git/t/helper/test-partial-clone.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 14
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: cmd__partial_clone
    functionSourceFile: /src/git/t/helper/test-partial-clone.c
    functionUses: 0
    functionsReached:
    - object_info
    - strcmp
    - die
    - setup_git_directory
    linkageType: ''
    returnType: int
    signature: int cmd__partial_clone(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/t/helper/test-fake-ssh.c:7,1
    - Dst: die
      Src: /src/git/t/helper/test-fake-ssh.c:15,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-fake-ssh.c:16,1
    - Dst: fopen
      Src: /src/git/t/helper/test-fake-ssh.c:17,1
    - Dst: die
      Src: /src/git/t/helper/test-fake-ssh.c:19,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-fake-ssh.c:20,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-fake-ssh.c:22,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-fake-ssh.c:23,1
    - Dst: fclose
      Src: /src/git/t/helper/test-fake-ssh.c:24,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-fake-ssh.c:30,1
    - Dst: run_command
      Src: /src/git/t/helper/test-fake-ssh.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 5
    functionDepth: 8
    functionLinenumber: 5
    functionLinenumberEnd: 32
    functionName: cmd_main
    functionSourceFile: /src/git/t/helper/test-fake-ssh.c
    functionUses: 1
    functionsReached:
    - fclose
    - strvec_push
    - strbuf_release
    - die
    - run_command
    - strbuf_addf
    - fopen
    - getenv
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read
      Src: /src/git/t/helper/test-zlib.c:14,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-zlib.c:15,1
    - Dst: zlib_func
      Src: /src/git/t/helper/test-zlib.c:27,1
    - Dst: write_in_full
      Src: /src/git/t/helper/test-zlib.c:28,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-zlib.c:30,1
    - Dst: die
      Src: /src/git/t/helper/test-zlib.c:34,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-zlib.c:36,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - stream
    - fd_in
    - fd_out
    argTypes:
    - struct git_zstream*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 7
    functionDepth: 4
    functionLinenumber: 7
    functionLinenumberEnd: 37
    functionName: do_zlib
    functionSourceFile: /src/git/t/helper/test-zlib.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_read
    - die
    - zlib_func
    - die_errno
    - write_in_full
    linkageType: ''
    returnType: void
    signature: "void do_zlib(struct git_zstream *stream,\n\t\t    int (*zlib_func)(git_zstream
      *, int),\n\t\t    int fd_in, int fd_out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/git/t/helper/test-zlib.c:44,1
    - Dst: memset
      Src: /src/git/t/helper/test-zlib.c:46,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-zlib.c:48,1
    - Dst: git_inflate_init
      Src: /src/git/t/helper/test-zlib.c:49,1
    - Dst: do_zlib
      Src: /src/git/t/helper/test-zlib.c:50,1
    - Dst: git_inflate_end
      Src: /src/git/t/helper/test-zlib.c:51,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-zlib.c:52,1
    - Dst: git_deflate_init
      Src: /src/git/t/helper/test-zlib.c:53,1
    - Dst: do_zlib
      Src: /src/git/t/helper/test-zlib.c:54,1
    - Dst: git_deflate_end
      Src: /src/git/t/helper/test-zlib.c:55,1
    - Dst: error
      Src: /src/git/t/helper/test-zlib.c:57,1
    - Dst: usage
      Src: /src/git/t/helper/test-zlib.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 62
    functionName: cmd__zlib
    functionSourceFile: /src/git/t/helper/test-zlib.c
    functionUses: 0
    functionsReached:
    - error
    - memset
    - git_deflate_init
    - usage
    - git_deflate_end
    - strcmp
    - do_zlib
    - git_inflate_init
    - git_inflate_end
    linkageType: ''
    returnType: int
    signature: int cmd__zlib(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-truncate.c:14,1
    - Dst: strtoumax
      Src: /src/git/t/helper/test-truncate.c:16,1
    - Dst: die
      Src: /src/git/t/helper/test-truncate.c:18,1
    - Dst: xopen
      Src: /src/git/t/helper/test-truncate.c:20,1
    - Dst: ftruncate
      Src: /src/git/t/helper/test-truncate.c:22,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-truncate.c:23,1
    - Dst: close
      Src: /src/git/t/helper/test-truncate.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 7
    functionDepth: 2
    functionLinenumber: 7
    functionLinenumberEnd: 28
    functionName: cmd__truncate
    functionSourceFile: /src/git/t/helper/test-truncate.c
    functionUses: 0
    functionsReached:
    - ftruncate
    - xopen
    - die
    - strtoumax
    - die_errno
    - close
    linkageType: ''
    returnType: int
    signature: int cmd__truncate(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-path-utils.c:26,1
    - Dst: is_absolute_path
      Src: /src/git/t/helper/test-path-utils.c:27,1
    - Dst: die
      Src: /src/git/t/helper/test-path-utils.c:28,1
    - Dst: normalize_path_copy
      Src: /src/git/t/helper/test-path-utils.c:29,1
    - Dst: die
      Src: /src/git/t/helper/test-path-utils.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - item
    - UNUSED
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: normalize_ceiling_entry
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached:
    - is_absolute_path
    - die
    - normalize_path_copy
    linkageType: ''
    returnType: int
    signature: "int normalize_ceiling_entry(struct string_list_item *item,\n\t\t\t\t
      \  void *data UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:36,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:38,1
    - Dst: die
      Src: /src/git/t/helper/test-path-utils.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - var
    - input
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: normalize_argv_string
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached:
    - die
    - strcmp
    linkageType: ''
    returnType: void
    signature: void normalize_argv_string(const char **var, const char *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basename
      Src: /src/git/t/helper/test-path-utils.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: posix_basename
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached:
    - basename
    linkageType: ''
    returnType: char
    signature: char *posix_basename(char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dirname
      Src: /src/git/t/helper/test-path-utils.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: posix_dirname
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached:
    - dirname
    linkageType: ''
    returnType: char
    signature: char *posix_dirname(char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/git/t/helper/test-path-utils.c:76,1
    - Dst: xsnprintf
      Src: /src/git/t/helper/test-path-utils.c:78,1
    - Dst: func
      Src: /src/git/t/helper/test-path-utils.c:79,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:81,1
    - Dst: error
      Src: /src/git/t/helper/test-path-utils.c:84,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:86,1
    - Dst: error
      Src: /src/git/t/helper/test-path-utils.c:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - data
    - (*func)(char *input)
    - funcname
    argTypes:
    - struct test_data*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 95
    functionName: test_function
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached:
    - error
    - strcmp
    - xsnprintf
    - func
    linkageType: ''
    returnType: int
    signature: "int test_function(struct test_data *data, char *(*func)(char *input),\n\tconst
      char *funcname)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:191,1
    - Dst: is_hfs
      Src: /src/git/t/helper/test-path-utils.c:193,1
    - Dst: is_ntfs
      Src: /src/git/t/helper/test-path-utils.c:193,1
    - Dst: error
      Src: /src/git/t/helper/test-path-utils.c:194,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-path-utils.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - x
    - argv
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: check_dotfile
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached:
    - error
    - is_ntfs
    - is_hfs
    - strcmp
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int check_dotfile(const char *x, const char **argv,\n\t\t\t int (*is_hfs)(const
      char *),\n\t\t\t int (*is_ntfs)(const char *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: cmp_by_st_size
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_by_st_size(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: my_random
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t my_random(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 242
    functionName: my_sqrt
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double my_sqrt(double value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:254,1
    - Dst: strtoul
      Src: /src/git/t/helper/test-path-utils.c:260,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/t/helper/test-path-utils.c:261,1
    - Dst: strtoul
      Src: /src/git/t/helper/test-path-utils.c:264,1
    - Dst: strtoul
      Src: /src/git/t/helper/test-path-utils.c:266,1
    - Dst: die
      Src: /src/git/t/helper/test-path-utils.c:268,1
    - Dst: my_random
      Src: /src/git/t/helper/test-path-utils.c:272,1
    - Dst: xmallocz
      Src: /src/git/t/helper/test-path-utils.c:274,1
    - Dst: my_random
      Src: /src/git/t/helper/test-path-utils.c:276,1
    - Dst: getnanotime
      Src: /src/git/t/helper/test-path-utils.c:284,1
    - Dst: verify_path
      Src: /src/git/t/helper/test-path-utils.c:286,1
    - Dst: getnanotime
      Src: /src/git/t/helper/test-path-utils.c:287,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-utils.c:288,1
    - Dst: my_sqrt
      Src: /src/git/t/helper/test-path-utils.c:293,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-utils.c:294,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-utils.c:299,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 244
    functionDepth: 9
    functionLinenumber: 244
    functionLinenumberEnd: 302
    functionName: protect_ntfs_hfs_benchmark
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached:
    - verify_path
    - my_random
    - die
    - xmallocz
    - ALLOC_ARRAY
    - my_sqrt
    - strcmp
    - getnanotime
    - printf
    - strtoul
    linkageType: ''
    returnType: int
    signature: int protect_ntfs_hfs_benchmark(int argc, const char **argv)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:306,1
    - Dst: xmallocz
      Src: /src/git/t/helper/test-path-utils.c:307,1
    - Dst: strlen
      Src: /src/git/t/helper/test-path-utils.c:307,1
    - Dst: normalize_path_copy
      Src: /src/git/t/helper/test-path-utils.c:308,1
    - Dst: puts
      Src: /src/git/t/helper/test-path-utils.c:309,1
    - Dst: free
      Src: /src/git/t/helper/test-path-utils.c:310,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:314,1
    - Dst: strbuf_realpath
      Src: /src/git/t/helper/test-path-utils.c:317,1
    - Dst: puts
      Src: /src/git/t/helper/test-path-utils.c:318,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-path-utils.c:322,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:326,1
    - Dst: strbuf_readlink
      Src: /src/git/t/helper/test-path-utils.c:329,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-path-utils.c:330,1
    - Dst: puts
      Src: /src/git/t/helper/test-path-utils.c:331,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-path-utils.c:335,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:339,1
    - Dst: puts
      Src: /src/git/t/helper/test-path-utils.c:341,1
    - Dst: absolute_path
      Src: /src/git/t/helper/test-path-utils.c:341,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:348,1
    - Dst: xstrdup
      Src: /src/git/t/helper/test-path-utils.c:352,1
    - Dst: normalize_path_copy
      Src: /src/git/t/helper/test-path-utils.c:364,1
    - Dst: die
      Src: /src/git/t/helper/test-path-utils.c:365,1
    - Dst: string_list_split
      Src: /src/git/t/helper/test-path-utils.c:366,1
    - Dst: filter_string_list
      Src: /src/git/t/helper/test-path-utils.c:367,1
    - Dst: longest_ancestor_length
      Src: /src/git/t/helper/test-path-utils.c:369,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-path-utils.c:370,1
    - Dst: free
      Src: /src/git/t/helper/test-path-utils.c:371,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-utils.c:372,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:376,1
    - Dst: strlen
      Src: /src/git/t/helper/test-path-utils.c:378,1
    - Dst: setup_git_directory_gently
      Src: /src/git/t/helper/test-path-utils.c:380,1
    - Dst: prefix_path
      Src: /src/git/t/helper/test-path-utils.c:382,1
    - Dst: puts
      Src: /src/git/t/helper/test-path-utils.c:384,1
    - Dst: free
      Src: /src/git/t/helper/test-path-utils.c:385,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:392,1
    - Dst: strip_path_suffix
      Src: /src/git/t/helper/test-path-utils.c:393,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-utils.c:394,1
    - Dst: free
      Src: /src/git/t/helper/test-path-utils.c:395,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:399,1
    - Dst: puts
      Src: /src/git/t/helper/test-path-utils.c:400,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:404,1
    - Dst: normalize_argv_string
      Src: /src/git/t/helper/test-path-utils.c:407,1
    - Dst: normalize_argv_string
      Src: /src/git/t/helper/test-path-utils.c:408,1
    - Dst: relative_path
      Src: /src/git/t/helper/test-path-utils.c:409,1
    - Dst: puts
      Src: /src/git/t/helper/test-path-utils.c:411,1
    - Dst: puts
      Src: /src/git/t/helper/test-path-utils.c:413,1
    - Dst: strlen
      Src: /src/git/t/helper/test-path-utils.c:413,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-path-utils.c:414,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:418,1
    - Dst: test_function
      Src: /src/git/t/helper/test-path-utils.c:419,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:421,1
    - Dst: test_function
      Src: /src/git/t/helper/test-path-utils.c:422,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:424,1
    - Dst: check_dotfile
      Src: /src/git/t/helper/test-path-utils.c:425,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:429,1
    - Dst: check_dotfile
      Src: /src/git/t/helper/test-path-utils.c:430,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:434,1
    - Dst: check_dotfile
      Src: /src/git/t/helper/test-path-utils.c:435,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:439,1
    - Dst: check_dotfile
      Src: /src/git/t/helper/test-path-utils.c:440,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:445,1
    - Dst: stat
      Src: /src/git/t/helper/test-path-utils.c:450,1
    - Dst: error_errno
      Src: /src/git/t/helper/test-path-utils.c:451,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-utils.c:453,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:457,1
    - Dst: open
      Src: /src/git/t/helper/test-path-utils.c:458,1
    - Dst: atoi
      Src: /src/git/t/helper/test-path-utils.c:458,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-path-utils.c:462,1
    - Dst: lseek
      Src: /src/git/t/helper/test-path-utils.c:463,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-path-utils.c:464,1
    - Dst: read
      Src: /src/git/t/helper/test-path-utils.c:466,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-path-utils.c:468,1
    - Dst: write
      Src: /src/git/t/helper/test-path-utils.c:471,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-path-utils.c:472,1
    - Dst: close
      Src: /src/git/t/helper/test-path-utils.c:474,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:478,1
    - Dst: strtol
      Src: /src/git/t/helper/test-path-utils.c:484,1
    - Dst: die
      Src: /src/git/t/helper/test-path-utils.c:486,1
    - Dst: strtol
      Src: /src/git/t/helper/test-path-utils.c:489,1
    - Dst: die
      Src: /src/git/t/helper/test-path-utils.c:491,1
    - Dst: stat
      Src: /src/git/t/helper/test-path-utils.c:495,1
    - Dst: error_errno
      Src: /src/git/t/helper/test-path-utils.c:496,1
    - Dst: string_list_append
      Src: /src/git/t/helper/test-path-utils.c:498,1
    - Dst: QSORT
      Src: /src/git/t/helper/test-path-utils.c:500,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-utils.c:502,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:507,1
    - Dst: protect_ntfs_hfs_benchmark
      Src: /src/git/t/helper/test-path-utils.c:508,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:510,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:514,1
    - Dst: is_valid_path
      Src: /src/git/t/helper/test-path-utils.c:516,1
    - Dst: error
      Src: /src/git/t/helper/test-path-utils.c:517,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-path-utils.c:520,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-path-utils.c:527,1
    - Dst: is_path_owned_by_current_user
      Src: /src/git/t/helper/test-path-utils.c:533,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-utils.c:534,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-utils.c:536,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-path-utils.c:540,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-path-utils.c:546,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 154
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 304
    functionDepth: 13
    functionLinenumber: 304
    functionLinenumberEnd: 549
    functionName: cmd__path_utils
    functionSourceFile: /src/git/t/helper/test-path-utils.c
    functionUses: 0
    functionsReached:
    - error_errno
    - longest_ancestor_length
    - is_valid_path
    - is_path_owned_by_current_user
    - setup_git_directory_gently
    - strcmp
    - free
    - printf
    - absolute_path
    - read
    - strbuf_release
    - error
    - die
    - normalize_path_copy
    - strbuf_realpath
    - puts
    - normalize_argv_string
    - QSORT
    - close
    - strtol
    - string_list_clear
    - atoi
    - xmallocz
    - filter_string_list
    - relative_path
    - stat
    - die_errno
    - write
    - string_list_split
    - test_function
    - string_list_append
    - xstrdup
    - open
    - lseek
    - strbuf_readlink
    - strlen
    - check_dotfile
    - prefix_path
    - protect_ntfs_hfs_benchmark
    - fprintf
    - strip_path_suffix
    linkageType: ''
    returnType: int
    signature: int cmd__path_utils(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-match-trees.c:16,1
    - Dst: repo_get_oid
      Src: /src/git/t/helper/test-match-trees.c:18,1
    - Dst: die
      Src: /src/git/t/helper/test-match-trees.c:19,1
    - Dst: repo_get_oid
      Src: /src/git/t/helper/test-match-trees.c:20,1
    - Dst: die
      Src: /src/git/t/helper/test-match-trees.c:21,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/t/helper/test-match-trees.c:22,1
    - Dst: die
      Src: /src/git/t/helper/test-match-trees.c:24,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/t/helper/test-match-trees.c:25,1
    - Dst: die
      Src: /src/git/t/helper/test-match-trees.c:27,1
    - Dst: shift_tree
      Src: /src/git/t/helper/test-match-trees.c:29,1
    - Dst: printf
      Src: /src/git/t/helper/test-match-trees.c:30,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-match-trees.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - UNUSED
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 11
    functionDepth: 16
    functionLinenumber: 11
    functionLinenumberEnd: 33
    functionName: cmd__match_trees
    functionSourceFile: /src/git/t/helper/test-match-trees.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - repo_parse_tree_indirect
    - setup_git_directory
    - repo_get_oid
    - shift_tree
    - printf
    linkageType: ''
    returnType: int
    signature: int cmd__match_trees(int ac UNUSED, const char **av)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-find-pack.c:28,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-find-pack.c:31,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-find-pack.c:32,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-find-pack.c:35,1
    - Dst: usage
      Src: /src/git/t/helper/test-find-pack.c:37,1
    - Dst: repo_get_oid
      Src: /src/git/t/helper/test-find-pack.c:39,1
    - Dst: die
      Src: /src/git/t/helper/test-find-pack.c:40,1
    - Dst: find_pack_entry_one
      Src: /src/git/t/helper/test-find-pack.c:43,1
    - Dst: printf
      Src: /src/git/t/helper/test-find-pack.c:44,1
    - Dst: die
      Src: /src/git/t/helper/test-find-pack.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 23
    functionDepth: 14
    functionLinenumber: 23
    functionLinenumberEnd: 53
    functionName: cmd__find_pack
    functionSourceFile: /src/git/t/helper/test-find-pack.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - setup_git_directory
    - repo_get_oid
    - usage
    - find_pack_entry_one
    - printf
    - OPT_INTEGER
    linkageType: ''
    returnType: int
    signature: int cmd__find_pack(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_pack_entry_one
      Src: /src/git/t/helper/test-find-pack.c:43,1
    - Dst: printf
      Src: /src/git/t/helper/test-find-pack.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 11
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/t/helper/test-find-pack.c
    functionUses: 4
    functionsReached:
    - find_pack_entry_one
    - printf
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-scrap-cache-tree.c:15,1
    - Dst: repo_hold_locked_index
      Src: /src/git/t/helper/test-scrap-cache-tree.c:16,1
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-scrap-cache-tree.c:17,1
    - Dst: die
      Src: /src/git/t/helper/test-scrap-cache-tree.c:18,1
    - Dst: cache_tree_free
      Src: /src/git/t/helper/test-scrap-cache-tree.c:19,1
    - Dst: write_locked_index
      Src: /src/git/t/helper/test-scrap-cache-tree.c:21,1
    - Dst: die
      Src: /src/git/t/helper/test-scrap-cache-tree.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 11
    functionDepth: 14
    functionLinenumber: 11
    functionLinenumberEnd: 24
    functionName: cmd__scrap_cache_tree
    functionSourceFile: /src/git/t/helper/test-scrap-cache-tree.c
    functionUses: 0
    functionsReached:
    - die
    - setup_git_directory
    - repo_read_index
    - write_locked_index
    - repo_hold_locked_index
    - cache_tree_free
    linkageType: ''
    returnType: int
    signature: int cmd__scrap_cache_tree(int ac UNUSED, const char **av UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-dump-untracked-cache.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: compare_untracked
    functionSourceFile: /src/git/t/helper/test-dump-untracked-cache.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare_untracked(const void *a_, const void *b_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-dump-untracked-cache.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: compare_dir
    functionSourceFile: /src/git/t/helper/test-dump-untracked-cache.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare_dir(const void *a_, const void *b_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/t/helper/test-dump-untracked-cache.c:27,1
    - Dst: QSORT
      Src: /src/git/t/helper/test-dump-untracked-cache.c:28,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-dump-untracked-cache.c:30,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-untracked-cache.c:31,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-dump-untracked-cache.c:32,1
    - Dst: fputs
      Src: /src/git/t/helper/test-dump-untracked-cache.c:34,1
    - Dst: fputs
      Src: /src/git/t/helper/test-dump-untracked-cache.c:36,1
    - Dst: fputs
      Src: /src/git/t/helper/test-dump-untracked-cache.c:38,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-untracked-cache.c:39,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-untracked-cache.c:41,1
    - Dst: dump
      Src: /src/git/t/helper/test-dump-untracked-cache.c:43,1
    - Dst: strbuf_setlen
      Src: /src/git/t/helper/test-dump-untracked-cache.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ucd
    - base
    argTypes:
    - struct untracked_cache_dir*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 45
    functionName: dump
    functionSourceFile: /src/git/t/helper/test-dump-untracked-cache.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - fputs
    - dump
    - strbuf_addf
    - strbuf_setlen
    - QSORT
    - printf
    linkageType: ''
    returnType: void
    signature: void dump(struct untracked_cache_dir *ucd, struct strbuf *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsetenv
      Src: /src/git/t/helper/test-dump-untracked-cache.c:53,1
    - Dst: xsetenv
      Src: /src/git/t/helper/test-dump-untracked-cache.c:54,1
    - Dst: xsetenv
      Src: /src/git/t/helper/test-dump-untracked-cache.c:55,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-dump-untracked-cache.c:57,1
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-dump-untracked-cache.c:58,1
    - Dst: die
      Src: /src/git/t/helper/test-dump-untracked-cache.c:59,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-untracked-cache.c:62,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-untracked-cache.c:65,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-dump-untracked-cache.c:65,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-untracked-cache.c:66,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-dump-untracked-cache.c:66,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-untracked-cache.c:67,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-untracked-cache.c:68,1
    - Dst: dump
      Src: /src/git/t/helper/test-dump-untracked-cache.c:70,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-dump-untracked-cache.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 14
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: cmd__dump_untracked_cache
    functionSourceFile: /src/git/t/helper/test-dump-untracked-cache.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - die
    - dump
    - setup_git_directory
    - repo_read_index
    - printf
    - xsetenv
    linkageType: ''
    returnType: int
    signature: int cmd__dump_untracked_cache(int ac UNUSED, const char **av UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/t/helper/test-hashmap.c:24,1
    - Dst: container_of
      Src: /src/git/t/helper/test-hashmap.c:25,1
    - Dst: strcasecmp
      Src: /src/git/t/helper/test-hashmap.c:28,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-hashmap.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: test_entry_cmp
    functionSourceFile: /src/git/t/helper/test-hashmap.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcasecmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int test_entry_cmp(const void *cmp_data,\n\t\t\t  const struct hashmap_entry
      *eptr,\n\t\t\t  const struct hashmap_entry *entry_or_key,\n\t\t\t  const void
      *keydata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/helper/test-hashmap.c:37,1
    - Dst: strlen
      Src: /src/git/t/helper/test-hashmap.c:38,1
    - Dst: xmalloc
      Src: /src/git/t/helper/test-hashmap.c:39,1
    - Dst: st_add4
      Src: /src/git/t/helper/test-hashmap.c:39,1
    - Dst: hashmap_entry_init
      Src: /src/git/t/helper/test-hashmap.c:40,1
    - Dst: memcpy
      Src: /src/git/t/helper/test-hashmap.c:41,1
    - Dst: memcpy
      Src: /src/git/t/helper/test-hashmap.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - hash
    - key
    - value
    argTypes:
    - unsigned int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: alloc_test_entry
    functionSourceFile: /src/git/t/helper/test-hashmap.c
    functionUses: 0
    functionsReached:
    - hashmap_entry_init
    - memcpy
    - strlen
    - xmalloc
    - st_add4
    linkageType: ''
    returnType: struct test_entry
    signature: "struct test_entry *alloc_test_entry(unsigned int hash,\n\t\t\t\t\t
      \  const char *key,\n\t\t\t\t\t   const char *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strhash
      Src: /src/git/t/helper/test-hashmap.c:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - method
    - i
    - key
    argTypes:
    - unsigned int
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 77
    functionName: hash
    functionSourceFile: /src/git/t/helper/test-hashmap.c
    functionUses: 85
    functionsReached:
    - strhash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash(unsigned int method, unsigned int i, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/t/helper/test-hashmap.c:91,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/t/helper/test-hashmap.c:92,1
    - Dst: xsnprintf
      Src: /src/git/t/helper/test-hashmap.c:94,1
    - Dst: alloc_test_entry
      Src: /src/git/t/helper/test-hashmap.c:95,1
    - Dst: hash
      Src: /src/git/t/helper/test-hashmap.c:96,1
    - Dst: hashmap_init
      Src: /src/git/t/helper/test-hashmap.c:102,1
    - Dst: hashmap_entry_init
      Src: /src/git/t/helper/test-hashmap.c:106,1
    - Dst: hashmap_add
      Src: /src/git/t/helper/test-hashmap.c:107,1
    - Dst: hashmap_clear
      Src: /src/git/t/helper/test-hashmap.c:110,1
    - Dst: hashmap_init
      Src: /src/git/t/helper/test-hashmap.c:114,1
    - Dst: hashmap_entry_init
      Src: /src/git/t/helper/test-hashmap.c:119,1
    - Dst: hashmap_add
      Src: /src/git/t/helper/test-hashmap.c:120,1
    - Dst: hashmap_get_from_hash
      Src: /src/git/t/helper/test-hashmap.c:125,1
    - Dst: hashmap_clear
      Src: /src/git/t/helper/test-hashmap.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - method
    - rounds
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 132
    functionName: perf_hashmap
    functionSourceFile: /src/git/t/helper/test-hashmap.c
    functionUses: 0
    functionsReached:
    - hashmap_add
    - hashmap_init
    - ALLOC_ARRAY
    - hashmap_entry_init
    - hash
    - hashmap_clear
    - xsnprintf
    - alloc_test_entry
    - hashmap_get_from_hash
    linkageType: ''
    returnType: void
    signature: void perf_hashmap(unsigned int method, unsigned int rounds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline
      Src: /src/git/t/helper/test-hashmap.c:152,1
    - Dst: string_list_setlen
      Src: /src/git/t/helper/test-hashmap.c:156,1
    - Dst: string_list_split_in_place_f
      Src: /src/git/t/helper/test-hashmap.c:157,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-hashmap.c:170,1
    - Dst: perf_hashmap
      Src: /src/git/t/helper/test-hashmap.c:172,1
    - Dst: atoi
      Src: /src/git/t/helper/test-hashmap.c:172,1
    - Dst: atoi
      Src: /src/git/t/helper/test-hashmap.c:172,1
    - Dst: printf
      Src: /src/git/t/helper/test-hashmap.c:176,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-hashmap.c:181,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-hashmap.c:182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 184
    functionName: cmd__hashmap
    functionSourceFile: /src/git/t/helper/test-hashmap.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_release
    - string_list_split_in_place_f
    - atoi
    - string_list_setlen
    - perf_hashmap
    - strcmp
    - strbuf_getline
    - printf
    linkageType: ''
    returnType: int
    signature: int cmd__hashmap(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-advise.c:12,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-advise.c:14,1
    - Dst: repo_config
      Src: /src/git/t/helper/test-advise.c:15,1
    - Dst: advise_if_enabled
      Src: /src/git/t/helper/test-advise.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 9
    functionDepth: 19
    functionLinenumber: 9
    functionLinenumberEnd: 25
    functionName: cmd__advise_if_enabled
    functionSourceFile: /src/git/t/helper/test-advise.c
    functionUses: 0
    functionsReached:
    - repo_config
    - advise_if_enabled
    - die
    - setup_git_directory
    linkageType: ''
    returnType: int
    signature: int cmd__advise_if_enabled(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - error_number
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 14
    functionName: error_name
    functionSourceFile: /src/git/t/helper/test-dir-iterator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *error_name(int error_number)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/t/helper/test-dir-iterator.c:26,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-dir-iterator.c:27,1
    - Dst: die
      Src: /src/git/t/helper/test-dir-iterator.c:30,1
    - Dst: die
      Src: /src/git/t/helper/test-dir-iterator.c:34,1
    - Dst: dir_iterator_begin
      Src: /src/git/t/helper/test-dir-iterator.c:36,1
    - Dst: printf
      Src: /src/git/t/helper/test-dir-iterator.c:39,1
    - Dst: error_name
      Src: /src/git/t/helper/test-dir-iterator.c:39,1
    - Dst: exit
      Src: /src/git/t/helper/test-dir-iterator.c:40,1
    - Dst: dir_iterator_advance
      Src: /src/git/t/helper/test-dir-iterator.c:43,1
    - Dst: S_ISDIR
      Src: /src/git/t/helper/test-dir-iterator.c:44,1
    - Dst: printf
      Src: /src/git/t/helper/test-dir-iterator.c:45,1
    - Dst: S_ISREG
      Src: /src/git/t/helper/test-dir-iterator.c:46,1
    - Dst: printf
      Src: /src/git/t/helper/test-dir-iterator.c:47,1
    - Dst: S_ISLNK
      Src: /src/git/t/helper/test-dir-iterator.c:48,1
    - Dst: printf
      Src: /src/git/t/helper/test-dir-iterator.c:49,1
    - Dst: printf
      Src: /src/git/t/helper/test-dir-iterator.c:51,1
    - Dst: printf
      Src: /src/git/t/helper/test-dir-iterator.c:53,1
    - Dst: dir_iterator_free
      Src: /src/git/t/helper/test-dir-iterator.c:56,1
    - Dst: printf
      Src: /src/git/t/helper/test-dir-iterator.c:59,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 20
    functionDepth: 8
    functionLinenumber: 20
    functionLinenumberEnd: 64
    functionName: cmd__dir_iterator
    functionSourceFile: /src/git/t/helper/test-dir-iterator.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - die
    - dir_iterator_advance
    - S_ISLNK
    - dir_iterator_free
    - exit
    - starts_with
    - error_name
    - strcmp
    - dir_iterator_begin
    - printf
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int cmd__dir_iterator(int argc, const char **argv)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-progress.c:43,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-progress.c:46,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-progress.c:48,1
    - Dst: strbuf_getline
      Src: /src/git/t/helper/test-progress.c:51,1
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-progress.c:54,1
    - Dst: strtoull
      Src: /src/git/t/helper/test-progress.c:55,1
    - Dst: string_list_insert
      Src: /src/git/t/helper/test-progress.c:67,1
    - Dst: die
      Src: /src/git/t/helper/test-progress.c:69,1
    - Dst: start_progress
      Src: /src/git/t/helper/test-progress.c:71,1
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-progress.c:72,1
    - Dst: strtoull
      Src: /src/git/t/helper/test-progress.c:73,1
    - Dst: die
      Src: /src/git/t/helper/test-progress.c:75,1
    - Dst: display_progress
      Src: /src/git/t/helper/test-progress.c:76,1
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-progress.c:77,1
    - Dst: strtoull
      Src: /src/git/t/helper/test-progress.c:81,1
    - Dst: die
      Src: /src/git/t/helper/test-progress.c:83,1
    - Dst: strtoull
      Src: /src/git/t/helper/test-progress.c:84,1
    - Dst: die
      Src: /src/git/t/helper/test-progress.c:86,1
    - Dst: display_throughput
      Src: /src/git/t/helper/test-progress.c:88,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-progress.c:89,1
    - Dst: progress_test_force_update
      Src: /src/git/t/helper/test-progress.c:90,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-progress.c:91,1
    - Dst: stop_progress
      Src: /src/git/t/helper/test-progress.c:92,1
    - Dst: die
      Src: /src/git/t/helper/test-progress.c:94,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-progress.c:97,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-progress.c:98,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 31
    functionDepth: 13
    functionLinenumber: 31
    functionLinenumberEnd: 101
    functionName: cmd__progress
    functionSourceFile: /src/git/t/helper/test-progress.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - parse_options
    - OPT_END
    - die
    - string_list_insert
    - stop_progress
    - strbuf_release
    - progress_test_force_update
    - display_throughput
    - strtoull
    - display_progress
    - strcmp
    - strbuf_getline
    - skip_prefix
    - start_progress
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__progress(int argc, const char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-proc-receive.c:41,1
    - Dst: packet_reader_read
      Src: /src/git/t/helper/test-proc-receive.c:46,1
    - Dst: starts_with
      Src: /src/git/t/helper/test-proc-receive.c:53,1
    - Dst: atoi
      Src: /src/git/t/helper/test-proc-receive.c:54,1
    - Dst: die
      Src: /src/git/t/helper/test-proc-receive.c:56,1
    - Dst: strlen
      Src: /src/git/t/helper/test-proc-receive.c:57,1
    - Dst: parse_feature_request
      Src: /src/git/t/helper/test-proc-receive.c:60,1
    - Dst: parse_feature_request
      Src: /src/git/t/helper/test-proc-receive.c:62,1
    - Dst: die
      Src: /src/git/t/helper/test-proc-receive.c:69,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-proc-receive.c:72,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-proc-receive.c:75,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 1
    argNames:
    - reader
    argTypes:
    - struct packet_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 37
    functionDepth: 7
    functionLinenumber: 37
    functionLinenumberEnd: 76
    functionName: proc_receive_verison
    functionSourceFile: /src/git/t/helper/test-proc-receive.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - die
    - atoi
    - packet_flush
    - starts_with
    - strlen
    - parse_feature_request
    - packet_reader_read
    linkageType: ''
    returnType: void
    signature: void proc_receive_verison(struct packet_reader *reader)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/t/helper/test-proc-receive.c:89,1
    - Dst: die
      Src: /src/git/t/helper/test-proc-receive.c:93,1
    - Dst: parse_oid_hex_any
      Src: /src/git/t/helper/test-proc-receive.c:95,1
    - Dst: parse_oid_hex_any
      Src: /src/git/t/helper/test-proc-receive.c:97,1
    - Dst: die
      Src: /src/git/t/helper/test-proc-receive.c:99,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/t/helper/test-proc-receive.c:102,1
    - Dst: oidcpy
      Src: /src/git/t/helper/test-proc-receive.c:103,1
    - Dst: oidcpy
      Src: /src/git/t/helper/test-proc-receive.c:104,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - reader
    - commands
    argTypes:
    - struct packet_reader*
    - struct command**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 78
    functionDepth: 7
    functionLinenumber: 78
    functionLinenumberEnd: 109
    functionName: proc_receive_read_commands
    functionSourceFile: /src/git/t/helper/test-proc-receive.c
    functionUses: 0
    functionsReached:
    - die
    - oidcpy
    - parse_oid_hex_any
    - packet_reader_read
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: void
    signature: "void proc_receive_read_commands(struct packet_reader *reader,\n\t\t\t\t
      \      struct command **commands)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-proc-receive.c:119,1
    - Dst: packet_reader_read
      Src: /src/git/t/helper/test-proc-receive.c:122,1
    - Dst: string_list_append
      Src: /src/git/t/helper/test-proc-receive.c:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - options
    argTypes:
    - struct packet_reader*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 7
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: proc_receive_read_push_options
    functionSourceFile: /src/git/t/helper/test-proc-receive.c
    functionUses: 0
    functionsReached:
    - die
    - packet_reader_read
    - string_list_append
    linkageType: ''
    returnType: void
    signature: "void proc_receive_read_push_options(struct packet_reader *reader,\n\t\t\t\t\t
      \  struct string_list *options)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-proc-receive.c:136,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-proc-receive.c:138,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-proc-receive.c:140,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-proc-receive.c:142,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-proc-receive.c:144,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-proc-receive.c:146,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/t/helper/test-proc-receive.c:148,1
    - Dst: OPT__VERBOSE
      Src: /src/git/t/helper/test-proc-receive.c:150,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-proc-receive.c:151,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-proc-receive.c:153,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-proc-receive.c:156,1
    - Dst: usage_msg_opt
      Src: /src/git/t/helper/test-proc-receive.c:158,1
    - Dst: packet_reader_init
      Src: /src/git/t/helper/test-proc-receive.c:159,1
    - Dst: sigchain_push
      Src: /src/git/t/helper/test-proc-receive.c:163,1
    - Dst: proc_receive_verison
      Src: /src/git/t/helper/test-proc-receive.c:164,1
    - Dst: proc_receive_read_commands
      Src: /src/git/t/helper/test-proc-receive.c:165,1
    - Dst: proc_receive_read_push_options
      Src: /src/git/t/helper/test-proc-receive.c:166,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-proc-receive.c:172,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-proc-receive.c:177,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-proc-receive.c:178,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-proc-receive.c:179,1
    - Dst: for_each_string_list_item
      Src: /src/git/t/helper/test-proc-receive.c:183,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-proc-receive.c:184,1
    - Dst: for_each_string_list_item
      Src: /src/git/t/helper/test-proc-receive.c:187,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-proc-receive.c:188,1
    - Dst: die
      Src: /src/git/t/helper/test-proc-receive.c:192,1
    - Dst: for_each_string_list_item
      Src: /src/git/t/helper/test-proc-receive.c:194,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-proc-receive.c:195,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-proc-receive.c:196,1
    - Dst: sigchain_pop
      Src: /src/git/t/helper/test-proc-receive.c:197,1
    - Dst: free
      Src: /src/git/t/helper/test-proc-receive.c:201,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-proc-receive.c:204,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 129
    functionDepth: 13
    functionLinenumber: 129
    functionLinenumberEnd: 207
    functionName: cmd__proc_receive
    functionSourceFile: /src/git/t/helper/test-proc-receive.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - parse_options
    - OPT_BOOL
    - packet_flush
    - free
    - OPT_END
    - die
    - sigchain_push
    - proc_receive_read_push_options
    - OPT_STRING_LIST
    - OPT_INTEGER
    - packet_write_fmt
    - string_list_clear
    - oid_to_hex
    - sigchain_pop
    - proc_receive_verison
    - OPT__VERBOSE
    - usage_msg_opt
    - proc_receive_read_commands
    - packet_reader_init
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd__proc_receive(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:42,1
    - Dst: test_lazy_init_name_hash
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:44,1
    - Dst: test_lazy_init_name_hash
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:46,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:48,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:51,1
    - Dst: printf
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:53,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:55,1
    - Dst: printf
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:57,1
    - Dst: discard_index
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 25
    functionDepth: 10
    functionLinenumber: 25
    functionLinenumberEnd: 60
    functionName: dump_run
    functionSourceFile: /src/git/t/helper/test-lazy-init-name-hash.c
    functionUses: 0
    functionsReached:
    - die
    - repo_read_index
    - hashmap_for_each_entry
    - printf
    - test_lazy_init_name_hash
    - discard_index
    linkageType: ''
    returnType: void
    signature: void dump_run(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:75,1
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:76,1
    - Dst: getnanotime
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:77,1
    - Dst: test_lazy_init_name_hash
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:78,1
    - Dst: getnanotime
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:79,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:84,1
    - Dst: printf
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:87,1
    - Dst: printf
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:93,1
    - Dst: fflush
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:97,1
    - Dst: discard_index
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:99,1
    - Dst: printf
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - try_threaded
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 66
    functionDepth: 10
    functionLinenumber: 66
    functionLinenumberEnd: 109
    functionName: time_runs
    functionSourceFile: /src/git/t/helper/test-lazy-init-name-hash.c
    functionUses: 0
    functionsReached:
    - die
    - repo_read_index
    - fflush
    - getnanotime
    - printf
    - test_lazy_init_name_hash
    - discard_index
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t time_runs(int try_threaded)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:123,1
    - Dst: discard_index
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:125,1
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:138,1
    - Dst: getnanotime
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:140,1
    - Dst: test_lazy_init_name_hash
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:141,1
    - Dst: getnanotime
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:142,1
    - Dst: discard_index
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:145,1
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:147,1
    - Dst: getnanotime
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:149,1
    - Dst: test_lazy_init_name_hash
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:150,1
    - Dst: getnanotime
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:151,1
    - Dst: discard_index
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:154,1
    - Dst: printf
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:157,1
    - Dst: printf
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:160,1
    - Dst: fflush
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:166,1
    - Dst: printf
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:172,1
    - Dst: printf
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:176,1
    - Dst: fflush
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 115
    functionDepth: 10
    functionLinenumber: 115
    functionLinenumberEnd: 189
    functionName: analyze_run
    functionSourceFile: /src/git/t/helper/test-lazy-init-name-hash.c
    functionUses: 0
    functionsReached:
    - repo_read_index
    - fflush
    - getnanotime
    - printf
    - test_lazy_init_name_hash
    - discard_index
    linkageType: ''
    returnType: void
    signature: void analyze_run(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:202,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:203,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:204,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:205,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:206,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:207,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:208,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:209,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:214,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:216,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:225,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:227,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:229,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:231,1
    - Dst: dump_run
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:232,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:238,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:240,1
    - Dst: time_runs
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:241,1
    - Dst: time_runs
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:242,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:244,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:250,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:254,1
    - Dst: analyze_run
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:255,1
    - Dst: die
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:260,1
    - Dst: time_runs
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:263,1
    - Dst: time_runs
      Src: /src/git/t/helper/test-lazy-init-name-hash.c:265,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 191
    functionDepth: 14
    functionLinenumber: 191
    functionLinenumberEnd: 268
    functionName: cmd__lazy_init_name_hash
    functionSourceFile: /src/git/t/helper/test-lazy-init-name-hash.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - setup_git_directory
    - analyze_run
    - OPT_BOOL
    - time_runs
    - dump_run
    - OPT_INTEGER
    linkageType: ''
    returnType: int
    signature: int cmd__lazy_init_name_hash(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/t/helper/test-env-helper.c:20,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-env-helper.c:22,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-env-helper.c:24,1
    - Dst: die
      Src: /src/git/t/helper/test-env-helper.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 30
    functionName: option_parse_type
    functionSourceFile: /src/git/t/helper/test-env-helper.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int option_parse_type(const struct option *opt, const char *arg,\n\t\t\t
      \    int unset)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/t/helper/test-env-helper.c:42,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-env-helper.c:45,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-env-helper.c:47,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-env-helper.c:49,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-env-helper.c:52,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-env-helper.c:55,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-env-helper.c:57,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-env-helper.c:59,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/t/helper/test-env-helper.c:65,1
    - Dst: error
      Src: /src/git/t/helper/test-env-helper.c:67,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-env-helper.c:69,1
    - Dst: git_env_bool
      Src: /src/git/t/helper/test-env-helper.c:74,1
    - Dst: puts
      Src: /src/git/t/helper/test-env-helper.c:76,1
    - Dst: git_parse_ulong
      Src: /src/git/t/helper/test-env-helper.c:81,1
    - Dst: error
      Src: /src/git/t/helper/test-env-helper.c:82,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-env-helper.c:84,1
    - Dst: git_env_ulong
      Src: /src/git/t/helper/test-env-helper.c:89,1
    - Dst: printf
      Src: /src/git/t/helper/test-env-helper.c:91,1
    - Dst: BUG
      Src: /src/git/t/helper/test-env-helper.c:95,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 32
    functionDepth: 13
    functionLinenumber: 32
    functionLinenumberEnd: 100
    functionName: cmd__env_helper
    functionSourceFile: /src/git/t/helper/test-env-helper.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - git_env_bool
    - git_env_ulong
    - puts
    - git_parse_ulong
    - OPT_CALLBACK_F
    - OPT_STRING
    - OPT_BOOL
    - git_parse_maybe_bool
    - BUG
    - printf
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__env_helper(int argc, const char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/git/t/helper/test-windows-named-pipe.c:22,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-windows-named-pipe.c:24,1
    - Dst: CreateNamedPipeA
      Src: /src/git/t/helper/test-windows-named-pipe.c:30,1
    - Dst: err_win_to_posix
      Src: /src/git/t/helper/test-windows-named-pipe.c:37,1
    - Dst: GetLastError
      Src: /src/git/t/helper/test-windows-named-pipe.c:37,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-windows-named-pipe.c:38,1
    - Dst: strerror
      Src: /src/git/t/helper/test-windows-named-pipe.c:39,1
    - Dst: ConnectNamedPipe
      Src: /src/git/t/helper/test-windows-named-pipe.c:43,1
    - Dst: GetLastError
      Src: /src/git/t/helper/test-windows-named-pipe.c:45,1
    - Dst: err_win_to_posix
      Src: /src/git/t/helper/test-windows-named-pipe.c:47,1
    - Dst: GetLastError
      Src: /src/git/t/helper/test-windows-named-pipe.c:47,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-windows-named-pipe.c:48,1
    - Dst: strerror
      Src: /src/git/t/helper/test-windows-named-pipe.c:49,1
    - Dst: CloseHandle
      Src: /src/git/t/helper/test-windows-named-pipe.c:50,1
    - Dst: ReadFile
      Src: /src/git/t/helper/test-windows-named-pipe.c:56,1
    - Dst: write
      Src: /src/git/t/helper/test-windows-named-pipe.c:61,1
    - Dst: DisconnectNamedPipe
      Src: /src/git/t/helper/test-windows-named-pipe.c:64,1
    - Dst: CloseHandle
      Src: /src/git/t/helper/test-windows-named-pipe.c:65,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-windows-named-pipe.c:69,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 10
    functionDepth: 2
    functionLinenumber: 10
    functionLinenumberEnd: 71
    functionName: cmd__windows_named_pipe
    functionSourceFile: /src/git/t/helper/test-windows-named-pipe.c
    functionUses: 0
    functionsReached:
    - CreateNamedPipeA
    - ReadFile
    - GetLastError
    - write
    - strbuf_addf
    - strerror
    - err_win_to_posix
    - ConnectNamedPipe
    - CloseHandle
    - strpbrk
    - fprintf
    - DisconnectNamedPipe
    linkageType: ''
    returnType: int
    signature: int cmd__windows_named_pipe(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/helper/test-tool.c:102,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-tool.c:103,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-tool.c:104,1
    - Dst: exit
      Src: /src/git/t/helper/test-tool.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: die_usage
    functionSourceFile: /src/git/t/helper/test-tool.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - exit
    - fprintf
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN die_usage(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-tool.c:112,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-tool.c:114,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-tool.c:118,1
    - Dst: die_usage
      Src: /src/git/t/helper/test-tool.c:123,1
    - Dst: chdir
      Src: /src/git/t/helper/test-tool.c:125,1
    - Dst: die
      Src: /src/git/t/helper/test-tool.c:126,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-tool.c:128,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-tool.c:129,1
    - Dst: trace2_cmd_name
      Src: /src/git/t/helper/test-tool.c:132,1
    - Dst: trace2_cmd_list_config
      Src: /src/git/t/helper/test-tool.c:133,1
    - Dst: trace2_cmd_list_env_vars
      Src: /src/git/t/helper/test-tool.c:134,1
    - Dst: fn
      Src: /src/git/t/helper/test-tool.c:135,1
    - Dst: error
      Src: /src/git/t/helper/test-tool.c:138,1
    - Dst: die_usage
      Src: /src/git/t/helper/test-tool.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 108
    functionDepth: 13
    functionLinenumber: 108
    functionLinenumberEnd: 140
    functionName: cmd_main
    functionSourceFile: /src/git/t/helper/test-tool.c
    functionUses: 1
    functionsReached:
    - error
    - ARRAY_SIZE
    - parse_options
    - OPT_END
    - chdir
    - die
    - trace2_cmd_list_config
    - die_usage
    - fn
    - OPT_STRING
    - trace2_cmd_list_env_vars
    - strcmp
    - trace2_cmd_name
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: print_help
    functionSourceFile: /src/git/t/helper/test-reftable.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_help(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: reftable_block_source_from_file
      Src: /src/git/t/helper/test-reftable.c:32,1
    - Dst: reftable_table_new
      Src: /src/git/t/helper/test-reftable.c:36,1
    - Dst: reftable_table_iterator_init
      Src: /src/git/t/helper/test-reftable.c:40,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:44,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:45,1
    - Dst: reftable_table_iterator_next
      Src: /src/git/t/helper/test-reftable.c:50,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:77,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:80,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:81,1
    - Dst: reftable_table_iterator_release
      Src: /src/git/t/helper/test-reftable.c:85,1
    - Dst: reftable_table_decref
      Src: /src/git/t/helper/test-reftable.c:86,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 1
    argNames:
    - tablename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 88
    functionName: dump_blocks
    functionSourceFile: /src/git/t/helper/test-reftable.c
    functionUses: 0
    functionsReached:
    - reftable_block_source_from_file
    - reftable_table_new
    - reftable_table_iterator_init
    - reftable_table_iterator_next
    - reftable_table_iterator_release
    - printf
    - reftable_table_decref
    linkageType: ''
    returnType: int
    signature: int dump_blocks(const char *tablename)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: reftable_merged_table_init_ref_iterator
      Src: /src/git/t/helper/test-reftable.c:98,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/helper/test-reftable.c:102,1
    - Dst: hash_algo_by_id
      Src: /src/git/t/helper/test-reftable.c:106,1
    - Dst: reftable_merged_table_hash_id
      Src: /src/git/t/helper/test-reftable.c:106,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/helper/test-reftable.c:109,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:115,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:118,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:121,1
    - Dst: hash_to_hex_algop
      Src: /src/git/t/helper/test-reftable.c:121,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:122,1
    - Dst: hash_to_hex_algop
      Src: /src/git/t/helper/test-reftable.c:122,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:125,1
    - Dst: hash_to_hex_algop
      Src: /src/git/t/helper/test-reftable.c:125,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:128,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:131,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/helper/test-reftable.c:133,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/helper/test-reftable.c:134,1
    - Dst: reftable_merged_table_init_log_iterator
      Src: /src/git/t/helper/test-reftable.c:136,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/t/helper/test-reftable.c:140,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/t/helper/test-reftable.c:145,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:153,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:157,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:163,1
    - Dst: hash_to_hex_algop
      Src: /src/git/t/helper/test-reftable.c:163,1
    - Dst: printf
      Src: /src/git/t/helper/test-reftable.c:164,1
    - Dst: hash_to_hex_algop
      Src: /src/git/t/helper/test-reftable.c:164,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/helper/test-reftable.c:169,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/helper/test-reftable.c:170,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 1
    argNames:
    - mt
    argTypes:
    - struct reftable_merged_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 172
    functionName: dump_table
    functionSourceFile: /src/git/t/helper/test-reftable.c
    functionUses: 0
    functionsReached:
    - reftable_merged_table_init_log_iterator
    - printf
    - reftable_iterator_next_log
    - reftable_log_record_release
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_merged_table_hash_id
    - reftable_iterator_seek_log
    - hash_to_hex_algop
    - reftable_iterator_destroy
    - hash_algo_by_id
    - reftable_merged_table_init_ref_iterator
    linkageType: ''
    returnType: int
    signature: int dump_table(struct reftable_merged_table *mt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_new_stack
      Src: /src/git/t/helper/test-reftable.c:180,1
    - Dst: reftable_stack_merged_table
      Src: /src/git/t/helper/test-reftable.c:184,1
    - Dst: dump_table
      Src: /src/git/t/helper/test-reftable.c:185,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/helper/test-reftable.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - stackdir
    - hash_id
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 190
    functionName: dump_stack
    functionSourceFile: /src/git/t/helper/test-reftable.c
    functionUses: 0
    functionsReached:
    - reftable_new_stack
    - reftable_stack_merged_table
    - dump_table
    - reftable_stack_destroy
    linkageType: ''
    returnType: int
    signature: int dump_stack(const char *stackdir, uint32_t hash_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reftable_block_source_from_file
      Src: /src/git/t/helper/test-reftable.c:199,1
    - Dst: reftable_table_new
      Src: /src/git/t/helper/test-reftable.c:203,1
    - Dst: reftable_merged_table_new
      Src: /src/git/t/helper/test-reftable.c:207,1
    - Dst: reftable_table_hash_id
      Src: /src/git/t/helper/test-reftable.c:208,1
    - Dst: dump_table
      Src: /src/git/t/helper/test-reftable.c:212,1
    - Dst: reftable_merged_table_free
      Src: /src/git/t/helper/test-reftable.c:215,1
    - Dst: reftable_table_decref
      Src: /src/git/t/helper/test-reftable.c:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - tablename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 218
    functionName: dump_reftable
    functionSourceFile: /src/git/t/helper/test-reftable.c
    functionUses: 0
    functionsReached:
    - dump_table
    - reftable_block_source_from_file
    - reftable_table_new
    - reftable_merged_table_free
    - reftable_table_hash_id
    - reftable_merged_table_new
    - reftable_table_decref
    linkageType: ''
    returnType: int
    signature: int dump_reftable(const char *tablename)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-reftable.c:232,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reftable.c:234,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reftable.c:236,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reftable.c:238,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reftable.c:240,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reftable.c:240,1
    - Dst: print_help
      Src: /src/git/t/helper/test-reftable.c:241,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-reftable.c:246,1
    - Dst: print_help
      Src: /src/git/t/helper/test-reftable.c:247,1
    - Dst: dump_blocks
      Src: /src/git/t/helper/test-reftable.c:254,1
    - Dst: dump_reftable
      Src: /src/git/t/helper/test-reftable.c:256,1
    - Dst: dump_stack
      Src: /src/git/t/helper/test-reftable.c:258,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-reftable.c:262,1
    - Dst: reftable_error_str
      Src: /src/git/t/helper/test-reftable.c:263,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 267
    functionName: cmd__dump_reftable
    functionSourceFile: /src/git/t/helper/test-reftable.c
    functionUses: 0
    functionsReached:
    - dump_stack
    - dump_reftable
    - dump_blocks
    - strcmp
    - reftable_error_str
    - fprintf
    - print_help
    linkageType: ''
    returnType: int
    signature: int cmd__dump_reftable(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/git/t/helper/test-chmtime.c:58,1
    - Dst: time
      Src: /src/git/t/helper/test-chmtime.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - arg
    - set_time
    - set_eq
    argTypes:
    - char*
    - long int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: timespec_arg
    functionSourceFile: /src/git/t/helper/test-chmtime.c
    functionUses: 0
    functionsReached:
    - strtol
    - time
    linkageType: ''
    returnType: int
    signature: int timespec_arg(const char *arg, long int *set_time, int *set_eq)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-chmtime.c:82,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-chmtime.c:82,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-chmtime.c:85,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-chmtime.c:85,1
    - Dst: timespec_arg
      Src: /src/git/t/helper/test-chmtime.c:94,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-chmtime.c:98,1
    - Dst: stat
      Src: /src/git/t/helper/test-chmtime.c:111,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-chmtime.c:112,1
    - Dst: strerror
      Src: /src/git/t/helper/test-chmtime.c:113,1
    - Dst: chmod
      Src: /src/git/t/helper/test-chmtime.c:119,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-chmtime.c:120,1
    - Dst: strerror
      Src: /src/git/t/helper/test-chmtime.c:121,1
    - Dst: printf
      Src: /src/git/t/helper/test-chmtime.c:131,1
    - Dst: printf
      Src: /src/git/t/helper/test-chmtime.c:133,1
    - Dst: utime
      Src: /src/git/t/helper/test-chmtime.c:136,1
    - Dst: S_ISDIR
      Src: /src/git/t/helper/test-chmtime.c:138,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-chmtime.c:146,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-chmtime.c:152,1
    - Dst: strerror
      Src: /src/git/t/helper/test-chmtime.c:153,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-chmtime.c:161,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 163
    functionName: cmd__chmtime
    functionSourceFile: /src/git/t/helper/test-chmtime.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - printf
    - chmod
    - stat
    - strerror
    - utime
    - strcmp
    - fprintf
    - timespec_arg
    linkageType: ''
    returnType: int
    signature: int cmd__chmtime(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/git/t/helper/test-config.c:56,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:58,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:59,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:60,1
    - Dst: config_origin_type_name
      Src: /src/git/t/helper/test-config.c:60,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:61,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:62,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:63,1
    - Dst: config_scope_name
      Src: /src/git/t/helper/test-config.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: iterate_cb
    functionSourceFile: /src/git/t/helper/test-config.c
    functionUses: 0
    functionsReached:
    - putchar
    - printf
    - config_scope_name
    - config_origin_type_name
    linkageType: ''
    returnType: int
    signature: "int iterate_cb(const char *var, const char *value,\n\t\t      const
      struct config_context *ctx,\n\t\t      void *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:73,1
    - Dst: git_config_int
      Src: /src/git/t/helper/test-config.c:74,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: parse_int_cb
    functionSourceFile: /src/git/t/helper/test-config.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - printf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int parse_int_cb(const char *var, const char *value,\n\t\t\tconst
      struct config_context *ctx, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:86,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - vdata
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: early_config_cb
    functionSourceFile: /src/git/t/helper/test-config.c
    functionUses: 0
    functionsReached:
    - printf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int early_config_cb(const char *var, const char *value,\n\t\t\t   const
      struct config_context *ctx UNUSED,\n\t\t\t   void *vdata)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:99,1
    - Dst: read_early_config
      Src: /src/git/t/helper/test-config.c:100,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-config.c:105,1
    - Dst: git_configset_init
      Src: /src/git/t/helper/test-config.c:107,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-config.c:110,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:112,1
    - Dst: repo_config_get_value
      Src: /src/git/t/helper/test-config.c:113,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:115,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:117,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:120,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:123,1
    - Dst: repo_config_get_value_multi
      Src: /src/git/t/helper/test-config.c:124,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:128,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:130,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:134,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:137,1
    - Dst: repo_config_get
      Src: /src/git/t/helper/test-config.c:140,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:143,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:145,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:147,1
    - Dst: BUG
      Src: /src/git/t/helper/test-config.c:155,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:157,1
    - Dst: repo_config_get_int
      Src: /src/git/t/helper/test-config.c:158,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:159,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:162,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:165,1
    - Dst: repo_config_get_bool
      Src: /src/git/t/helper/test-config.c:166,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:167,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:170,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:173,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/t/helper/test-config.c:174,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:175,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:178,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:181,1
    - Dst: git_configset_add_file
      Src: /src/git/t/helper/test-config.c:184,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-config.c:185,1
    - Dst: git_configset_get_value
      Src: /src/git/t/helper/test-config.c:189,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:191,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:193,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:196,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:199,1
    - Dst: git_configset_add_file
      Src: /src/git/t/helper/test-config.c:202,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-config.c:203,1
    - Dst: git_configset_get_value_multi
      Src: /src/git/t/helper/test-config.c:207,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:211,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:213,1
    - Dst: printf
      Src: /src/git/t/helper/test-config.c:217,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:220,1
    - Dst: repo_config
      Src: /src/git/t/helper/test-config.c:221,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-config.c:223,1
    - Dst: repo_config
      Src: /src/git/t/helper/test-config.c:224,1
    - Dst: die
      Src: /src/git/t/helper/test-config.c:228,1
    - Dst: git_configset_clear
      Src: /src/git/t/helper/test-config.c:231,1
    - Dst: git_configset_clear
      Src: /src/git/t/helper/test-config.c:235,1
    - Dst: git_configset_clear
      Src: /src/git/t/helper/test-config.c:239,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 154
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 92
    functionDepth: 19
    functionLinenumber: 92
    functionLinenumberEnd: 241
    functionName: cmd__config
    functionSourceFile: /src/git/t/helper/test-config.c
    functionUses: 0
    functionsReached:
    - setup_git_directory
    - git_configset_get_value
    - strcmp
    - repo_config
    - printf
    - repo_config_get_string_tmp
    - die
    - repo_config_get_value
    - git_configset_init
    - git_configset_clear
    - repo_config_get
    - repo_config_get_int
    - repo_config_get_value_multi
    - git_configset_add_file
    - repo_config_get_bool
    - read_early_config
    - git_configset_get_value_multi
    - BUG
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd__config(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/helper/test-genzeros.c:14,1
    - Dst: strtoimax
      Src: /src/git/t/helper/test-genzeros.c:18,1
    - Dst: xwrite
      Src: /src/git/t/helper/test-genzeros.c:22,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-genzeros.c:22,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-genzeros.c:23,1
    - Dst: xwrite
      Src: /src/git/t/helper/test-genzeros.c:26,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-genzeros.c:27,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-genzeros.c:28,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-genzeros.c:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 6
    functionDepth: 3
    functionLinenumber: 6
    functionLinenumberEnd: 37
    functionName: cmd__genzeros
    functionSourceFile: /src/git/t/helper/test-genzeros.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - xwrite
    - die_errno
    - strtoimax
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd__genzeros(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-dump-split-index.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pos
    - UNUSED
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: show_bit
    functionSourceFile: /src/git/t/helper/test-dump-split-index.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void show_bit(size_t pos, void *data UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-dump-split-index.c:20,1
    - Dst: do_read_index
      Src: /src/git/t/helper/test-dump-split-index.c:22,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-split-index.c:23,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-dump-split-index.c:23,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-split-index.c:26,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-split-index.c:29,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-dump-split-index.c:29,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-split-index.c:32,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-dump-split-index.c:33,1
    - Dst: ce_stage
      Src: /src/git/t/helper/test-dump-split-index.c:33,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-split-index.c:35,1
    - Dst: ewah_each_bit
      Src: /src/git/t/helper/test-dump-split-index.c:37,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-split-index.c:38,1
    - Dst: ewah_each_bit
      Src: /src/git/t/helper/test-dump-split-index.c:40,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-split-index.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - UNUSED
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 16
    functionDepth: 14
    functionLinenumber: 16
    functionLinenumberEnd: 43
    functionName: cmd__dump_split_index
    functionSourceFile: /src/git/t/helper/test-dump-split-index.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - ewah_each_bit
    - printf
    - do_read_index
    - setup_git_directory
    - ce_stage
    linkageType: ''
    returnType: int
    signature: int cmd__dump_split_index(int ac UNUSED, const char **av)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate_init
      Src: /src/git/t/helper/test-pack-deltas.c:27,1
    - Dst: git_deflate_bound
      Src: /src/git/t/helper/test-pack-deltas.c:28,1
    - Dst: xmalloc
      Src: /src/git/t/helper/test-pack-deltas.c:31,1
    - Dst: git_deflate
      Src: /src/git/t/helper/test-pack-deltas.c:38,1
    - Dst: git_deflate_end
      Src: /src/git/t/helper/test-pack-deltas.c:40,1
    - Dst: free
      Src: /src/git/t/helper/test-pack-deltas.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - pptr
    - size
    argTypes:
    - void**
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 44
    functionName: do_compress
    functionSourceFile: /src/git/t/helper/test-pack-deltas.c
    functionUses: 0
    functionsReached:
    - git_deflate_init
    - git_deflate
    - git_deflate_end
    - git_deflate_bound
    - xmalloc
    - free
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long do_compress(void **pptr, unsigned long size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/t/helper/test-pack-deltas.c:54,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-deltas.c:58,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-pack-deltas.c:58,1
    - Dst: odb_read_object
      Src: /src/git/t/helper/test-pack-deltas.c:60,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-deltas.c:64,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-pack-deltas.c:64,1
    - Dst: diff_delta
      Src: /src/git/t/helper/test-pack-deltas.c:66,1
    - Dst: do_compress
      Src: /src/git/t/helper/test-pack-deltas.c:69,1
    - Dst: encode_in_pack_object_header
      Src: /src/git/t/helper/test-pack-deltas.c:71,1
    - Dst: hashwrite
      Src: /src/git/t/helper/test-pack-deltas.c:73,1
    - Dst: hashwrite
      Src: /src/git/t/helper/test-pack-deltas.c:74,1
    - Dst: hashwrite
      Src: /src/git/t/helper/test-pack-deltas.c:75,1
    - Dst: free
      Src: /src/git/t/helper/test-pack-deltas.c:77,1
    - Dst: free
      Src: /src/git/t/helper/test-pack-deltas.c:78,1
    - Dst: free
      Src: /src/git/t/helper/test-pack-deltas.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - f
    - oid
    - base
    argTypes:
    - struct hashfile*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 46
    functionDepth: 12
    functionLinenumber: 46
    functionLinenumberEnd: 80
    functionName: write_ref_delta
    functionSourceFile: /src/git/t/helper/test-pack-deltas.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - hashwrite
    - do_compress
    - free
    - diff_delta
    - odb_read_object
    - encode_in_pack_object_header
    linkageType: ''
    returnType: void
    signature: "void write_ref_delta(struct hashfile *f,\n\t\t\t    struct object_id
      *oid,\n\t\t\t    struct object_id *base)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-pack-deltas.c:88,1
    - Dst: N_
      Src: /src/git/t/helper/test-pack-deltas.c:88,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-pack-deltas.c:89,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-pack-deltas.c:92,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-pack-deltas.c:96,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-pack-deltas.c:98,1
    - Dst: hashfd
      Src: /src/git/t/helper/test-pack-deltas.c:100,1
    - Dst: write_pack_header
      Src: /src/git/t/helper/test-pack-deltas.c:101,1
    - Dst: strbuf_getline_lf
      Src: /src/git/t/helper/test-pack-deltas.c:104,1
    - Dst: string_list_split_in_place
      Src: /src/git/t/helper/test-pack-deltas.c:114,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-deltas.c:115,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-deltas.c:118,1
    - Dst: get_oid_hex
      Src: /src/git/t/helper/test-pack-deltas.c:123,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-deltas.c:124,1
    - Dst: get_oid_hex
      Src: /src/git/t/helper/test-pack-deltas.c:127,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-deltas.c:128,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-pack-deltas.c:130,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pack-deltas.c:132,1
    - Dst: write_ref_delta
      Src: /src/git/t/helper/test-pack-deltas.c:133,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pack-deltas.c:134,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-deltas.c:135,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pack-deltas.c:136,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-deltas.c:137,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-deltas.c:139,1
    - Dst: finalize_hashfile
      Src: /src/git/t/helper/test-pack-deltas.c:142,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-pack-deltas.c:144,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 82
    functionDepth: 14
    functionLinenumber: 82
    functionLinenumberEnd: 146
    functionName: cmd__pack_deltas
    functionSourceFile: /src/git/t/helper/test-pack-deltas.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - parse_options
    - OPT_END
    - write_pack_header
    - strbuf_getline_lf
    - die
    - setup_git_directory
    - get_oid_hex
    - strbuf_release
    - finalize_hashfile
    - OPT_INTEGER
    - hashfd
    - strcmp
    - N_
    - string_list_split_in_place
    - write_ref_delta
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__pack_deltas(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushv
      Src: /src/git/t/helper/test-run-command.c:32,1
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-run-command.c:36,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:38,1
    - Dst: xmalloc
      Src: /src/git/t/helper/test-run-command.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - cp
    - err
    - cb
    - task_cb
    argTypes:
    - struct child_process*
    - struct strbuf*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 47
    functionName: parallel_next
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - strvec_pushv
    - xmalloc
    - fprintf
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int parallel_next(struct child_process *cp,\n\t\t\t struct strbuf
      *err,\n\t\t\t void *cb,\n\t\t\t void **task_cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-run-command.c:55,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - UNUSED
    - err
    - UNUSED
    - task_cb
    argTypes:
    - struct child_process*
    - struct strbuf*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: no_job
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - fprintf
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int no_job(struct child_process *cp UNUSED,\n\t\t  struct strbuf *err,\n\t\t
      \ void *cb UNUSED,\n\t\t  void **task_cb UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-run-command.c:67,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:69,1
    - Dst: FREE_AND_NULL
      Src: /src/git/t/helper/test-run-command.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - result
    - err
    - UNUSED
    - pp_task_cb
    argTypes:
    - int
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: task_finished
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 1
    functionsReached:
    - FREE_AND_NULL
    - fprintf
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int task_finished(int result UNUSED,\n\t\t\t struct strbuf *err,\n\t\t\t
      void *pp_cb UNUSED,\n\t\t\t void *pp_task_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/t/helper/test-run-command.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - UNUSED
    - UNUSED
    - pp_task_cb
    argTypes:
    - int
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: task_finished_quiet
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: "int task_finished_quiet(int result UNUSED,\n\t\t\t       struct strbuf
      *err UNUSED,\n\t\t\t       void *pp_cb UNUSED,\n\t\t\t       void *pp_task_cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-run-command.c:91,1
    - Dst: write_in_full
      Src: /src/git/t/helper/test-run-command.c:92,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-run-command.c:95,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-run-command.c:98,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-run-command.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - hook_stdin_fd
    - UNUSED
    - task_cb
    argTypes:
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 104
    functionName: test_stdin_pipe_feed
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - write_in_full
    - strbuf_release
    - die_errno
    - strbuf_addf
    linkageType: ''
    returnType: int
    signature: int test_stdin_pipe_feed(int hook_stdin_fd, void *cb UNUSED, void *task_cb)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:127,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:128,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:130,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:132,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:134,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:136,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:138,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:140,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-run-command.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - cp
    - err
    - cb
    - task_cb
    argTypes:
    - struct child_process*
    - struct strbuf*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 146
    functionName: next_test
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_addf
    linkageType: ''
    returnType: int
    signature: "int next_test(struct child_process *cp, struct strbuf *err, void *cb,\n\t\t
      \    void **task_cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/t/helper/test-run-command.c:155,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-run-command.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - result
    - err
    - cb
    - task_cb
    argTypes:
    - int
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: test_finished
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - string_list_append
    linkageType: ''
    returnType: int
    signature: "int test_finished(int result, struct strbuf *err, void *cb,\n\t\t\t
      void *task_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/t/helper/test-run-command.c:167,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-run-command.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - cb
    - task_cb
    argTypes:
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: test_failed
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int test_failed(struct strbuf *out, void *cb, void *task_cb)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-run-command.c:185,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-run-command.c:187,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-run-command.c:188,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-run-command.c:189,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-run-command.c:190,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-run-command.c:192,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-run-command.c:193,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-run-command.c:195,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-run-command.c:207,1
    - Dst: online_cpus
      Src: /src/git/t/helper/test-run-command.c:211,1
    - Dst: getenv
      Src: /src/git/t/helper/test-run-command.c:216,1
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-run-command.c:218,1
    - Dst: opendir
      Src: /src/git/t/helper/test-run-command.c:221,1
    - Dst: die
      Src: /src/git/t/helper/test-run-command.c:223,1
    - Dst: readdir
      Src: /src/git/t/helper/test-run-command.c:224,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:227,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:227,1
    - Dst: strbuf_setlen
      Src: /src/git/t/helper/test-run-command.c:232,1
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-run-command.c:233,1
    - Dst: string_list_append
      Src: /src/git/t/helper/test-run-command.c:234,1
    - Dst: wildmatch
      Src: /src/git/t/helper/test-run-command.c:239,1
    - Dst: strbuf_setlen
      Src: /src/git/t/helper/test-run-command.c:240,1
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-run-command.c:241,1
    - Dst: string_list_append
      Src: /src/git/t/helper/test-run-command.c:242,1
    - Dst: closedir
      Src: /src/git/t/helper/test-run-command.c:246,1
    - Dst: die
      Src: /src/git/t/helper/test-run-command.c:249,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:253,1
    - Dst: run_processes_parallel
      Src: /src/git/t/helper/test-run-command.c:257,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:261,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:264,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-run-command.c:267,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-run-command.c:268,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-run-command.c:269,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 178
    functionDepth: 13
    functionLinenumber: 178
    functionLinenumberEnd: 272
    functionName: testsuite
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_BOOL
    - strcmp
    - strbuf_release
    - OPT_END
    - die
    - online_cpus
    - strbuf_setlen
    - strbuf_addstr
    - readdir
    - wildmatch
    - OPT_INTEGER
    - string_list_clear
    - string_list_append
    - closedir
    - run_processes_parallel
    - opendir
    - getenv
    - fprintf
    linkageType: ''
    returnType: int
    signature: int testsuite(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: my_random
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t my_random(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-run-command.c:296,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-run-command.c:297,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-run-command.c:298,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-run-command.c:299,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-run-command.c:306,1
    - Dst: setenv
      Src: /src/git/t/helper/test-run-command.c:308,1
    - Dst: strvec_clear
      Src: /src/git/t/helper/test-run-command.c:315,1
    - Dst: strvec_pushl
      Src: /src/git/t/helper/test-run-command.c:317,1
    - Dst: strvec_pushl
      Src: /src/git/t/helper/test-run-command.c:320,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:328,1
    - Dst: my_random
      Src: /src/git/t/helper/test-run-command.c:330,1
    - Dst: my_random
      Src: /src/git/t/helper/test-run-command.c:335,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-run-command.c:335,1
    - Dst: my_random
      Src: /src/git/t/helper/test-run-command.c:338,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-run-command.c:339,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:342,1
    - Dst: strvec_pushv
      Src: /src/git/t/helper/test-run-command.c:349,1
    - Dst: strbuf_reset
      Src: /src/git/t/helper/test-run-command.c:350,1
    - Dst: pipe_command
      Src: /src/git/t/helper/test-run-command.c:351,1
    - Dst: error
      Src: /src/git/t/helper/test-run-command.c:352,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:357,1
    - Dst: error
      Src: /src/git/t/helper/test-run-command.c:358,1
    - Dst: strlen
      Src: /src/git/t/helper/test-run-command.c:361,1
    - Dst: error
      Src: /src/git/t/helper/test-run-command.c:365,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:369,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:371,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-run-command.c:374,1
    - Dst: strvec_clear
      Src: /src/git/t/helper/test-run-command.c:375,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:381,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-run-command.c:384,1
    - Dst: strvec_clear
      Src: /src/git/t/helper/test-run-command.c:385,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 283
    functionDepth: 13
    functionLinenumber: 283
    functionLinenumberEnd: 388
    functionName: quote_stress_test
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - parse_options
    - OPT_END
    - my_random
    - ARRAY_SIZE
    - strbuf_release
    - strbuf_reset
    - strvec_pushv
    - strvec_pushl
    - OPT_BOOL
    - setenv
    - pipe_command
    - strvec_clear
    - strlen
    - strcmp
    - fprintf
    - OPT_INTEGER
    linkageType: ''
    returnType: int
    signature: int quote_stress_test(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/t/helper/test-run-command.c:393,1
    - Dst: strlen
      Src: /src/git/t/helper/test-run-command.c:393,1
    - Dst: fputc
      Src: /src/git/t/helper/test-run-command.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 400
    functionName: quote_echo
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - fputc
    - fwrite
    - strlen
    linkageType: ''
    returnType: int
    signature: int quote_echo(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/t/helper/test-run-command.c:409,1
    - Dst: xmkstemp
      Src: /src/git/t/helper/test-run-command.c:410,1
    - Dst: strvec_pushl
      Src: /src/git/t/helper/test-run-command.c:412,1
    - Dst: start_command
      Src: /src/git/t/helper/test-run-command.c:416,1
    - Dst: die
      Src: /src/git/t/helper/test-run-command.c:417,1
    - Dst: close
      Src: /src/git/t/helper/test-run-command.c:420,1
    - Dst: unlink
      Src: /src/git/t/helper/test-run-command.c:421,1
    - Dst: die
      Src: /src/git/t/helper/test-run-command.c:422,1
    - Dst: close
      Src: /src/git/t/helper/test-run-command.c:424,1
    - Dst: finish_command
      Src: /src/git/t/helper/test-run-command.c:424,1
    - Dst: die
      Src: /src/git/t/helper/test-run-command.c:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 402
    functionDepth: 7
    functionLinenumber: 402
    functionLinenumberEnd: 428
    functionName: inherit_handle
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - die
    - finish_command
    - strvec_pushl
    - xsnprintf
    - close
    - unlink
    - start_command
    - xmkstemp
    linkageType: ''
    returnType: int
    signature: int inherit_handle(const char *argv0)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read
      Src: /src/git/t/helper/test-run-command.c:434,1
    - Dst: die
      Src: /src/git/t/helper/test-run-command.c:435,1
    - Dst: printf
      Src: /src/git/t/helper/test-run-command.c:436,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-run-command.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 4
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: inherit_handle_child
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_read
    - die
    - printf
    linkageType: ''
    returnType: int
    signature: int inherit_handle_child(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:451,1
    - Dst: testsuite
      Src: /src/git/t/helper/test-run-command.c:452,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:453,1
    - Dst: inherit_handle
      Src: /src/git/t/helper/test-run-command.c:454,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:455,1
    - Dst: inherit_handle_child
      Src: /src/git/t/helper/test-run-command.c:456,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:458,1
    - Dst: quote_stress_test
      Src: /src/git/t/helper/test-run-command.c:459,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:461,1
    - Dst: quote_echo
      Src: /src/git/t/helper/test-run-command.c:462,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:466,1
    - Dst: die
      Src: /src/git/t/helper/test-run-command.c:468,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-run-command.c:469,1
    - Dst: strvec_pushv
      Src: /src/git/t/helper/test-run-command.c:477,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:479,1
    - Dst: start_command
      Src: /src/git/t/helper/test-run-command.c:480,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:484,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:487,1
    - Dst: run_command
      Src: /src/git/t/helper/test-run-command.c:488,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:492,1
    - Dst: atoi
      Src: /src/git/t/helper/test-run-command.c:498,1
    - Dst: strvec_clear
      Src: /src/git/t/helper/test-run-command.c:499,1
    - Dst: strvec_pushv
      Src: /src/git/t/helper/test-run-command.c:500,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:502,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:505,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:508,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-run-command.c:511,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-run-command.c:519,1
    - Dst: run_processes_parallel
      Src: /src/git/t/helper/test-run-command.c:523,1
    - Dst: child_process_clear
      Src: /src/git/t/helper/test-run-command.c:526,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 79
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 442
    functionDepth: 14
    functionLinenumber: 442
    functionLinenumberEnd: 528
    functionName: cmd__run_command
    functionSourceFile: /src/git/t/helper/test-run-command.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - die
    - quote_echo
    - run_command
    - atoi
    - run_processes_parallel
    - strvec_pushv
    - child_process_clear
    - quote_stress_test
    - testsuite
    - inherit_handle_child
    - inherit_handle
    - strvec_clear
    - strcmp
    - fprintf
    - start_command
    linkageType: ''
    returnType: int
    signature: int cmd__run_command(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_hash_impl
      Src: /src/git/t/helper/test-sha256.c:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 7
    functionName: cmd__sha256
    functionSourceFile: /src/git/t/helper/test-sha256.c
    functionUses: 0
    functionsReached:
    - cmd_hash_impl
    linkageType: ''
    returnType: int
    signature: int cmd__sha256(int ac, const char **av)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline
      Src: /src/git/t/helper/test-name-hash.c:15,1
    - Dst: printf
      Src: /src/git/t/helper/test-name-hash.c:16,1
    - Dst: pack_name_hash
      Src: /src/git/t/helper/test-name-hash.c:16,1
    - Dst: printf
      Src: /src/git/t/helper/test-name-hash.c:17,1
    - Dst: pack_name_hash_v2
      Src: /src/git/t/helper/test-name-hash.c:17,1
    - Dst: printf
      Src: /src/git/t/helper/test-name-hash.c:18,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-name-hash.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 11
    functionDepth: 5
    functionLinenumber: 11
    functionLinenumberEnd: 23
    functionName: cmd__name_hash
    functionSourceFile: /src/git/t/helper/test-name-hash.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - pack_name_hash
    - strbuf_getline
    - pack_name_hash_v2
    - printf
    linkageType: ''
    returnType: int
    signature: int cmd__name_hash(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-simple-ipc.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: cmd__simple_ipc
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: int
    signature: int cmd__simple_ipc(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-simple-ipc.c:35,1
    - Dst: reply_cb
      Src: /src/git/t/helper/test-simple-ipc.c:36,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-simple-ipc.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - command
    - reply_cb
    - reply_data
    argTypes:
    - char*
    - ipc_server_reply_cb*
    - struct ipc_server_reply_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: app__unhandled_command
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - reply_cb
    linkageType: ''
    returnType: int
    signature: "int app__unhandled_command(const char *command,\n\t\t\t\t  ipc_server_reply_cb
      *reply_cb,\n\t\t\t\t  struct ipc_server_reply_data *reply_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-simple-ipc.c:56,1
    - Dst: reply_cb
      Src: /src/git/t/helper/test-simple-ipc.c:58,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-simple-ipc.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - reply_cb
    - reply_data
    argTypes:
    - ipc_server_reply_cb*
    - struct ipc_server_reply_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: app__big_command
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - reply_cb
    linkageType: ''
    returnType: int
    signature: "int app__big_command(ipc_server_reply_cb *reply_cb,\n\t\t\t    struct
      ipc_server_reply_data *reply_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/t/helper/test-simple-ipc.c:77,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-simple-ipc.c:78,1
    - Dst: reply_cb
      Src: /src/git/t/helper/test-simple-ipc.c:79,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-simple-ipc.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - reply_cb
    - reply_data
    argTypes:
    - ipc_server_reply_cb*
    - struct ipc_server_reply_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 85
    functionName: app__chunk_command
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_release
    - strbuf_setlen
    - reply_cb
    linkageType: ''
    returnType: int
    signature: "int app__chunk_command(ipc_server_reply_cb *reply_cb,\n\t\t\t      struct
      ipc_server_reply_data *reply_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/t/helper/test-simple-ipc.c:102,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-simple-ipc.c:103,1
    - Dst: reply_cb
      Src: /src/git/t/helper/test-simple-ipc.c:104,1
    - Dst: sleep_millisec
      Src: /src/git/t/helper/test-simple-ipc.c:105,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-simple-ipc.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - reply_cb
    - reply_data
    argTypes:
    - ipc_server_reply_cb*
    - struct ipc_server_reply_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: app__slow_command
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - reply_cb
    - strbuf_addf
    - strbuf_setlen
    - sleep_millisec
    linkageType: ''
    returnType: int
    signature: "int app__slow_command(ipc_server_reply_cb *reply_cb,\n\t\t\t     struct
      ipc_server_reply_data *reply_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/helper/test-simple-ipc.c:131,1
    - Dst: BUG
      Src: /src/git/t/helper/test-simple-ipc.c:132,1
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-simple-ipc.c:134,1
    - Dst: strlen
      Src: /src/git/t/helper/test-simple-ipc.c:135,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-simple-ipc.c:146,1
    - Dst: strbuf_addf
      Src: /src/git/t/helper/test-simple-ipc.c:148,1
    - Dst: reply_cb
      Src: /src/git/t/helper/test-simple-ipc.c:150,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-simple-ipc.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - received
    - received_len
    - reply_cb
    - reply_data
    argTypes:
    - char*
    - size_t
    - ipc_server_reply_cb*
    - struct ipc_server_reply_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 155
    functionName: app__sendbytes_command
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - reply_cb
    - strbuf_addf
    - strlen
    - skip_prefix
    - BUG
    linkageType: ''
    returnType: int
    signature: "int app__sendbytes_command(const char *received, size_t received_len,\n\t\t\t\t
      \ ipc_server_reply_cb *reply_cb,\n\t\t\t\t  struct ipc_server_reply_data *reply_data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/t/helper/test-simple-ipc.c:182,1
    - Dst: strncmp
      Src: /src/git/t/helper/test-simple-ipc.c:184,1
    - Dst: strncmp
      Src: /src/git/t/helper/test-simple-ipc.c:204,1
    - Dst: reply_cb
      Src: /src/git/t/helper/test-simple-ipc.c:206,1
    - Dst: strlen
      Src: /src/git/t/helper/test-simple-ipc.c:206,1
    - Dst: strncmp
      Src: /src/git/t/helper/test-simple-ipc.c:209,1
    - Dst: app__big_command
      Src: /src/git/t/helper/test-simple-ipc.c:210,1
    - Dst: strncmp
      Src: /src/git/t/helper/test-simple-ipc.c:212,1
    - Dst: app__chunk_command
      Src: /src/git/t/helper/test-simple-ipc.c:213,1
    - Dst: strncmp
      Src: /src/git/t/helper/test-simple-ipc.c:215,1
    - Dst: app__slow_command
      Src: /src/git/t/helper/test-simple-ipc.c:216,1
    - Dst: starts_with
      Src: /src/git/t/helper/test-simple-ipc.c:218,1
    - Dst: app__sendbytes_command
      Src: /src/git/t/helper/test-simple-ipc.c:219,1
    - Dst: app__unhandled_command
      Src: /src/git/t/helper/test-simple-ipc.c:222,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 5
    argNames:
    - application_data
    - command
    - command_len
    - reply_cb
    - reply_data
    argTypes:
    - void*
    - char*
    - size_t
    - ipc_server_reply_cb*
    - struct ipc_server_reply_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 223
    functionName: test_app_cb
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - app__chunk_command
    - app__unhandled_command
    - reply_cb
    - app__sendbytes_command
    - BUG
    - starts_with
    - strlen
    - strncmp
    - app__big_command
    - app__slow_command
    linkageType: ''
    returnType: int
    signature: "int test_app_cb(void *application_data,\n\t\t       const char *command,
      size_t command_len,\n\t\t       ipc_server_reply_cb *reply_cb,\n\t\t       struct
      ipc_server_reply_data *reply_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ipc_server_run
      Src: /src/git/t/helper/test-simple-ipc.c:269,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:271,1
    - Dst: error_errno
      Src: /src/git/t/helper/test-simple-ipc.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 276
    functionName: daemon__run_server
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - ipc_server_run
    linkageType: ''
    returnType: int
    signature: int daemon__run_server(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ipc_get_active_state
      Src: /src/git/t/helper/test-simple-ipc.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - UNUSED
    - cb_data
    argTypes:
    - struct child_process*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 301
    functionName: bg_wait_cb
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - ipc_get_active_state
    linkageType: ''
    returnType: int
    signature: "int bg_wait_cb(const struct child_process *cp UNUSED,\n\t\t      void
      *cb_data UNUSED)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/t/helper/test-simple-ipc.c:308,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-simple-ipc.c:309,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-simple-ipc.c:310,1
    - Dst: strvec_pushf
      Src: /src/git/t/helper/test-simple-ipc.c:311,1
    - Dst: strvec_pushf
      Src: /src/git/t/helper/test-simple-ipc.c:312,1
    - Dst: start_bg_command
      Src: /src/git/t/helper/test-simple-ipc.c:318,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:327,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:330,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 303
    functionDepth: 8
    functionLinenumber: 303
    functionLinenumberEnd: 335
    functionName: daemon__start_server
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - strvec_pushf
    - start_bg_command
    linkageType: ''
    returnType: int
    signature: int daemon__start_server(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ipc_get_active_state
      Src: /src/git/t/helper/test-simple-ipc.c:347,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:353,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:356,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:359,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 365
    functionName: client__probe_server
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - error
    - ipc_get_active_state
    linkageType: ''
    returnType: int
    signature: int client__probe_server(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ipc_client_send_command
      Src: /src/git/t/helper/test-simple-ipc.c:387,1
    - Dst: strlen
      Src: /src/git/t/helper/test-simple-ipc.c:388,1
    - Dst: printf
      Src: /src/git/t/helper/test-simple-ipc.c:391,1
    - Dst: fflush
      Src: /src/git/t/helper/test-simple-ipc.c:392,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-simple-ipc.c:394,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 400
    functionName: client__send_ipc
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - strlen
    - fflush
    - ipc_client_send_command
    - printf
    linkageType: ''
    returnType: int
    signature: int client__send_ipc(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/t/helper/test-simple-ipc.c:414,1
    - Dst: client__send_ipc
      Src: /src/git/t/helper/test-simple-ipc.c:419,1
    - Dst: sleep_millisec
      Src: /src/git/t/helper/test-simple-ipc.c:424,1
    - Dst: ipc_get_active_state
      Src: /src/git/t/helper/test-simple-ipc.c:426,1
    - Dst: time
      Src: /src/git/t/helper/test-simple-ipc.c:437,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 408
    functionDepth: 4
    functionLinenumber: 408
    functionLinenumberEnd: 441
    functionName: client__stop_server
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - error
    - client__send_ipc
    - ipc_get_active_state
    - sleep_millisec
    - time
    linkageType: ''
    returnType: int
    signature: int client__stop_server(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-simple-ipc.c:454,1
    - Dst: strbuf_addchars
      Src: /src/git/t/helper/test-simple-ipc.c:455,1
    - Dst: ipc_client_send_command
      Src: /src/git/t/helper/test-simple-ipc.c:457,1
    - Dst: strbuf_rtrim
      Src: /src/git/t/helper/test-simple-ipc.c:460,1
    - Dst: printf
      Src: /src/git/t/helper/test-simple-ipc.c:461,1
    - Dst: fflush
      Src: /src/git/t/helper/test-simple-ipc.c:462,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-simple-ipc.c:463,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-simple-ipc.c:464,1
    - Dst: error
      Src: /src/git/t/helper/test-simple-ipc.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - bytecount
    - byte
    - path
    - options
    argTypes:
    - int
    - char
    - char*
    - struct ipc_client_connect_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 448
    functionDepth: 4
    functionLinenumber: 448
    functionLinenumberEnd: 471
    functionName: do_sendbytes
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_addchars
    - strbuf_release
    - fflush
    - strbuf_addstr
    - ipc_client_send_command
    - printf
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: "int do_sendbytes(int bytecount, char byte, const char *path,\n\t\t\tconst
      struct ipc_client_connect_options *options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sendbytes
      Src: /src/git/t/helper/test-simple-ipc.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 476
    functionDepth: 5
    functionLinenumber: 476
    functionLinenumberEnd: 487
    functionName: client__sendbytes
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - do_sendbytes
    linkageType: ''
    returnType: int
    signature: int client__sendbytes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace2_thread_start
      Src: /src/git/t/helper/test-simple-ipc.c:516,1
    - Dst: do_sendbytes
      Src: /src/git/t/helper/test-simple-ipc.c:519,1
    - Dst: trace2_thread_exit
      Src: /src/git/t/helper/test-simple-ipc.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - _multiple_thread_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 500
    functionDepth: 5
    functionLinenumber: 500
    functionLinenumberEnd: 527
    functionName: multiple_thread_proc
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - trace2_thread_start
    - do_sendbytes
    - trace2_thread_exit
    linkageType: ''
    returnType: void
    signature: void *multiple_thread_proc(void *_multiple_thread_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/t/helper/test-simple-ipc.c:542,1
    - Dst: pthread_create
      Src: /src/git/t/helper/test-simple-ipc.c:551,1
    - Dst: warning
      Src: /src/git/t/helper/test-simple-ipc.c:552,1
    - Dst: free
      Src: /src/git/t/helper/test-simple-ipc.c:553,1
    - Dst: pthread_join
      Src: /src/git/t/helper/test-simple-ipc.c:563,1
    - Dst: free
      Src: /src/git/t/helper/test-simple-ipc.c:570,1
    - Dst: printf
      Src: /src/git/t/helper/test-simple-ipc.c:573,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 533
    functionDepth: 7
    functionLinenumber: 533
    functionLinenumberEnd: 577
    functionName: client__multiple
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - xcalloc
    - free
    - warning
    - pthread_join
    - printf
    linkageType: ''
    returnType: int
    signature: int client__multiple(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:582,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:583,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:584,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:585,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:586,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:587,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:588,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-simple-ipc.c:596,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:596,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:596,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-simple-ipc.c:598,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:598,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:598,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-simple-ipc.c:600,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:600,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-simple-ipc.c:601,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:601,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-simple-ipc.c:603,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:603,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-simple-ipc.c:604,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:604,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-simple-ipc.c:611,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:611,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-simple-ipc.c:612,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:612,1
    - Dst: N_
      Src: /src/git/t/helper/test-simple-ipc.c:612,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-simple-ipc.c:614,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-simple-ipc.c:618,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/t/helper/test-simple-ipc.c:620,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-simple-ipc.c:623,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-simple-ipc.c:631,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-simple-ipc.c:651,1
    - Dst: client__probe_server
      Src: /src/git/t/helper/test-simple-ipc.c:652,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-simple-ipc.c:654,1
    - Dst: daemon__run_server
      Src: /src/git/t/helper/test-simple-ipc.c:655,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-simple-ipc.c:657,1
    - Dst: daemon__start_server
      Src: /src/git/t/helper/test-simple-ipc.c:658,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-simple-ipc.c:666,1
    - Dst: client__probe_server
      Src: /src/git/t/helper/test-simple-ipc.c:667,1
    - Dst: client__stop_server
      Src: /src/git/t/helper/test-simple-ipc.c:669,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-simple-ipc.c:672,1
    - Dst: client__probe_server
      Src: /src/git/t/helper/test-simple-ipc.c:673,1
    - Dst: client__send_ipc
      Src: /src/git/t/helper/test-simple-ipc.c:675,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-simple-ipc.c:678,1
    - Dst: client__probe_server
      Src: /src/git/t/helper/test-simple-ipc.c:679,1
    - Dst: client__sendbytes
      Src: /src/git/t/helper/test-simple-ipc.c:681,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-simple-ipc.c:684,1
    - Dst: client__probe_server
      Src: /src/git/t/helper/test-simple-ipc.c:685,1
    - Dst: client__multiple
      Src: /src/git/t/helper/test-simple-ipc.c:687,1
    - Dst: die
      Src: /src/git/t/helper/test-simple-ipc.c:690,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 579
    functionDepth: 13
    functionLinenumber: 579
    functionLinenumberEnd: 691
    functionName: cmd__simple_ipc
    functionSourceFile: /src/git/t/helper/test-simple-ipc.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - client__send_ipc
    - die
    - client__probe_server
    - OPT_STRING
    - OPT_INTEGER
    - show_usage_with_options_if_asked
    - daemon__start_server
    - client__sendbytes
    - client__multiple
    - strcmp
    - N_
    - daemon__run_server
    - client__stop_server
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__simple_ipc(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/helper/test-genrandom.c:17,1
    - Dst: git_parse_ulong
      Src: /src/git/t/helper/test-genrandom.c:27,1
    - Dst: error_errno
      Src: /src/git/t/helper/test-genrandom.c:28,1
    - Dst: putchar
      Src: /src/git/t/helper/test-genrandom.c:32,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 37
    functionName: cmd__genrandom
    functionSourceFile: /src/git/t/helper/test-genrandom.c
    functionUses: 0
    functionsReached:
    - error_errno
    - putchar
    - git_parse_ulong
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd__genrandom(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-pkt-line.c:10,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pkt-line.c:10,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-pkt-line.c:11,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pkt-line.c:12,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pkt-line.c:12,1
    - Dst: packet_delim
      Src: /src/git/t/helper/test-pkt-line.c:13,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-pkt-line.c:15,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 8
    functionDepth: 7
    functionLinenumber: 8
    functionLinenumberEnd: 16
    functionName: pack_line
    functionSourceFile: /src/git/t/helper/test-pkt-line.c
    functionUses: 0
    functionsReached:
    - packet_delim
    - packet_write_fmt
    - packet_flush
    - strcmp
    linkageType: ''
    returnType: void
    signature: void pack_line(const char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pack_line
      Src: /src/git/t/helper/test-pkt-line.c:23,1
    - Dst: fgets
      Src: /src/git/t/helper/test-pkt-line.c:26,1
    - Dst: pack_line
      Src: /src/git/t/helper/test-pkt-line.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 8
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: pack
    functionSourceFile: /src/git/t/helper/test-pkt-line.c
    functionUses: 83
    functionsReached:
    - pack_line
    - fgets
    linkageType: ''
    returnType: void
    signature: void pack(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read
      Src: /src/git/t/helper/test-pkt-line.c:36,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-pkt-line.c:37,1
    - Dst: packet_write
      Src: /src/git/t/helper/test-pkt-line.c:38,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-pkt-line.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 6
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: pack_raw_stdin
    functionSourceFile: /src/git/t/helper/test-pkt-line.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_read
    - die_errno
    - packet_write
    linkageType: ''
    returnType: void
    signature: void pack_raw_stdin(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_init
      Src: /src/git/t/helper/test-pkt-line.c:45,1
    - Dst: packet_reader_read
      Src: /src/git/t/helper/test-pkt-line.c:49,1
    - Dst: printf
      Src: /src/git/t/helper/test-pkt-line.c:54,1
    - Dst: printf
      Src: /src/git/t/helper/test-pkt-line.c:57,1
    - Dst: printf
      Src: /src/git/t/helper/test-pkt-line.c:60,1
    - Dst: printf
      Src: /src/git/t/helper/test-pkt-line.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 42
    functionDepth: 7
    functionLinenumber: 42
    functionLinenumberEnd: 67
    functionName: unpack
    functionSourceFile: /src/git/t/helper/test-pkt-line.c
    functionUses: 0
    functionsReached:
    - printf
    - packet_reader_read
    - packet_reader_init
    linkageType: ''
    returnType: void
    signature: void unpack(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-pkt-line.c:79,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-pkt-line.c:81,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-pkt-line.c:83,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-pkt-line.c:86,1
    - Dst: usage_msg_opt
      Src: /src/git/t/helper/test-pkt-line.c:89,1
    - Dst: _
      Src: /src/git/t/helper/test-pkt-line.c:89,1
    - Dst: packet_reader_init
      Src: /src/git/t/helper/test-pkt-line.c:94,1
    - Dst: packet_reader_read
      Src: /src/git/t/helper/test-pkt-line.c:97,1
    - Dst: write_or_die
      Src: /src/git/t/helper/test-pkt-line.c:112,1
    - Dst: write_or_die
      Src: /src/git/t/helper/test-pkt-line.c:121,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 69
    functionDepth: 13
    functionLinenumber: 69
    functionLinenumberEnd: 130
    functionName: unpack_sideband
    functionSourceFile: /src/git/t/helper/test-pkt-line.c
    functionUses: 0
    functionsReached:
    - usage_msg_opt
    - parse_options
    - OPT_END
    - write_or_die
    - OPT_BOOL
    - packet_reader_init
    - _
    - packet_reader_read
    linkageType: ''
    returnType: void
    signature: void unpack_sideband(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_sideband
      Src: /src/git/t/helper/test-pkt-line.c:141,1
    - Dst: strlen
      Src: /src/git/t/helper/test-pkt-line.c:141,1
    - Dst: send_sideband
      Src: /src/git/t/helper/test-pkt-line.c:142,1
    - Dst: strlen
      Src: /src/git/t/helper/test-pkt-line.c:142,1
    - Dst: send_sideband
      Src: /src/git/t/helper/test-pkt-line.c:148,1
    - Dst: strlen
      Src: /src/git/t/helper/test-pkt-line.c:148,1
    - Dst: packet_write
      Src: /src/git/t/helper/test-pkt-line.c:149,1
    - Dst: strlen
      Src: /src/git/t/helper/test-pkt-line.c:149,1
    - Dst: send_sideband
      Src: /src/git/t/helper/test-pkt-line.c:150,1
    - Dst: strlen
      Src: /src/git/t/helper/test-pkt-line.c:150,1
    - Dst: packet_response_end
      Src: /src/git/t/helper/test-pkt-line.c:151,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-pkt-line.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 160
    functionName: send_split_sideband
    functionSourceFile: /src/git/t/helper/test-pkt-line.c
    functionUses: 0
    functionsReached:
    - send_sideband
    - packet_flush
    - packet_response_end
    - strlen
    - packet_write
    linkageType: ''
    returnType: int
    signature: int send_split_sideband(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recv_sideband
      Src: /src/git/t/helper/test-pkt-line.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: receive_sideband
    functionSourceFile: /src/git/t/helper/test-pkt-line.c
    functionUses: 0
    functionsReached:
    - recv_sideband
    linkageType: ''
    returnType: int
    signature: int receive_sideband(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-pkt-line.c:170,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pkt-line.c:172,1
    - Dst: pack
      Src: /src/git/t/helper/test-pkt-line.c:173,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pkt-line.c:174,1
    - Dst: pack_raw_stdin
      Src: /src/git/t/helper/test-pkt-line.c:175,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pkt-line.c:176,1
    - Dst: unpack
      Src: /src/git/t/helper/test-pkt-line.c:177,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pkt-line.c:178,1
    - Dst: unpack_sideband
      Src: /src/git/t/helper/test-pkt-line.c:179,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pkt-line.c:180,1
    - Dst: send_split_sideband
      Src: /src/git/t/helper/test-pkt-line.c:181,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pkt-line.c:182,1
    - Dst: receive_sideband
      Src: /src/git/t/helper/test-pkt-line.c:183,1
    - Dst: die
      Src: /src/git/t/helper/test-pkt-line.c:185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 167
    functionDepth: 14
    functionLinenumber: 167
    functionLinenumberEnd: 188
    functionName: cmd__pkt_line
    functionSourceFile: /src/git/t/helper/test-pkt-line.c
    functionUses: 0
    functionsReached:
    - die
    - send_split_sideband
    - pack_raw_stdin
    - pack
    - unpack
    - receive_sideband
    - strcmp
    - unpack_sideband
    linkageType: ''
    returnType: int
    signature: int cmd__pkt_line(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xread
      Src: /src/git/t/helper/test-hexdump.c:14,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-hexdump.c:16,1
    - Dst: printf
      Src: /src/git/t/helper/test-hexdump.c:23,1
    - Dst: putchar
      Src: /src/git/t/helper/test-hexdump.c:27,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 7
    functionDepth: 3
    functionLinenumber: 7
    functionLinenumberEnd: 30
    functionName: cmd__hexdump
    functionSourceFile: /src/git/t/helper/test-hexdump.c
    functionUses: 0
    functionsReached:
    - xread
    - die_errno
    - printf
    - putchar
    linkageType: ''
    returnType: int
    signature: int cmd__hexdump(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:12,1
    - Dst: ntohl
      Src: /src/git/t/helper/test-read-graph.c:13,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:18,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:19,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:22,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:24,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:26,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:28,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:30,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:32,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:34,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:36,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:37,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:39,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:41,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:46,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:48,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:49,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct commit_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 50
    functionName: dump_graph_info
    functionSourceFile: /src/git/t/helper/test-read-graph.c
    functionUses: 0
    functionsReached:
    - ntohl
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_graph_info(struct commit_graph *graph)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_bloom_filter_from_graph
      Src: /src/git/t/helper/test-read-graph.c:60,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-read-graph.c:61,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:67,1
    - Dst: printf
      Src: /src/git/t/helper/test-read-graph.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct commit_graph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: dump_graph_bloom_filters
    functionSourceFile: /src/git/t/helper/test-read-graph.c
    functionUses: 0
    functionsReached:
    - load_bloom_filter_from_graph
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_graph_bloom_filters(struct commit_graph *graph)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-read-graph.c:79,1
    - Dst: prepare_repo_settings
      Src: /src/git/t/helper/test-read-graph.c:82,1
    - Dst: read_commit_graph_one
      Src: /src/git/t/helper/test-read-graph.c:84,1
    - Dst: dump_graph_info
      Src: /src/git/t/helper/test-read-graph.c:91,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-read-graph.c:92,1
    - Dst: dump_graph_bloom_filters
      Src: /src/git/t/helper/test-read-graph.c:93,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-read-graph.c:95,1
    - Dst: free_commit_graph
      Src: /src/git/t/helper/test-read-graph.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 73
    functionDepth: 21
    functionLinenumber: 73
    functionLinenumberEnd: 102
    functionName: cmd__read_graph
    functionSourceFile: /src/git/t/helper/test-read-graph.c
    functionUses: 0
    functionsReached:
    - read_commit_graph_one
    - setup_git_directory
    - dump_graph_bloom_filters
    - dump_graph_info
    - prepare_repo_settings
    - free_commit_graph
    - strcmp
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd__read_graph(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentDirectory
      Src: /src/git/t/helper/test-drop-caches.c:18,1
    - Dst: error
      Src: /src/git/t/helper/test-drop-caches.c:20,1
    - Dst: has_dos_drive_prefix
      Src: /src/git/t/helper/test-drop-caches.c:22,1
    - Dst: error
      Src: /src/git/t/helper/test-drop-caches.c:24,1
    - Dst: memcpy
      Src: /src/git/t/helper/test-drop-caches.c:26,1
    - Dst: CreateFile
      Src: /src/git/t/helper/test-drop-caches.c:29,1
    - Dst: error
      Src: /src/git/t/helper/test-drop-caches.c:32,1
    - Dst: FlushFileBuffers
      Src: /src/git/t/helper/test-drop-caches.c:34,1
    - Dst: error
      Src: /src/git/t/helper/test-drop-caches.c:36,1
    - Dst: CloseHandle
      Src: /src/git/t/helper/test-drop-caches.c:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 41
    functionName: cmd_sync
    functionSourceFile: /src/git/t/helper/test-drop-caches.c
    functionUses: 0
    functionsReached:
    - error
    - GetCurrentDirectory
    - memcpy
    - has_dos_drive_prefix
    - FlushFileBuffers
    - CloseHandle
    - CreateFile
    linkageType: ''
    returnType: int
    signature: int cmd_sync(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LookupPrivilegeValueA
      Src: /src/git/t/helper/test-drop-caches.c:69,1
    - Dst: AdjustTokenPrivileges
      Src: /src/git/t/helper/test-drop-caches.c:74,1
    - Dst: AdjustTokenPrivileges
      Src: /src/git/t/helper/test-drop-caches.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - TokenHandle
    - lpName
    - flags
    argTypes:
    - HANDLE
    - LPCSTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 86
    functionName: GetPrivilege
    functionSourceFile: /src/git/t/helper/test-drop-caches.c
    functionUses: 0
    functionsReached:
    - LookupPrivilegeValueA
    - AdjustTokenPrivileges
    linkageType: ''
    returnType: BOOL
    signature: BOOL GetPrivilege(HANDLE TokenHandle, LPCSTR lpName, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/git/t/helper/test-drop-caches.c:90,1
    - Dst: DECLARE_PROC_ADDR
      Src: /src/git/t/helper/test-drop-caches.c:92,1
    - Dst: OpenProcessToken
      Src: /src/git/t/helper/test-drop-caches.c:97,1
    - Dst: error
      Src: /src/git/t/helper/test-drop-caches.c:98,1
    - Dst: GetPrivilege
      Src: /src/git/t/helper/test-drop-caches.c:100,1
    - Dst: error
      Src: /src/git/t/helper/test-drop-caches.c:101,1
    - Dst: CloseHandle
      Src: /src/git/t/helper/test-drop-caches.c:103,1
    - Dst: INIT_PROC_ADDR
      Src: /src/git/t/helper/test-drop-caches.c:105,1
    - Dst: error
      Src: /src/git/t/helper/test-drop-caches.c:106,1
    - Dst: NtSetSystemInformation
      Src: /src/git/t/helper/test-drop-caches.c:109,1
    - Dst: error
      Src: /src/git/t/helper/test-drop-caches.c:115,1
    - Dst: error
      Src: /src/git/t/helper/test-drop-caches.c:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 120
    functionName: cmd_dropcaches
    functionSourceFile: /src/git/t/helper/test-drop-caches.c
    functionUses: 0
    functionsReached:
    - error
    - GetCurrentProcess
    - GetPrivilege
    - DECLARE_PROC_ADDR
    - OpenProcessToken
    - INIT_PROC_ADDR
    - NtSetSystemInformation
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int cmd_dropcaches(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: system
      Src: /src/git/t/helper/test-drop-caches.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: cmd_sync
    functionSourceFile: /src/git/t/helper/test-drop-caches.c
    functionUses: 0
    functionsReached:
    - system
    linkageType: ''
    returnType: int
    signature: int cmd_sync(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: system
      Src: /src/git/t/helper/test-drop-caches.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: cmd_dropcaches
    functionSourceFile: /src/git/t/helper/test-drop-caches.c
    functionUses: 0
    functionsReached:
    - system
    linkageType: ''
    returnType: int
    signature: int cmd_dropcaches(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: system
      Src: /src/git/t/helper/test-drop-caches.c:138,1
    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: cmd_sync
    functionSourceFile: /src/git/t/helper/test-drop-caches.c
    functionUses: 0
    functionsReached:
    - system
    linkageType: ''
    returnType: int
    signature: int cmd_sync(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: system
      Src: /src/git/t/helper/test-drop-caches.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: cmd_dropcaches
    functionSourceFile: /src/git/t/helper/test-drop-caches.c
    functionUses: 0
    functionsReached:
    - system
    linkageType: ''
    returnType: int
    signature: int cmd_dropcaches(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: cmd_sync
    functionSourceFile: /src/git/t/helper/test-drop-caches.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmd_sync(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/t/helper/test-drop-caches.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: cmd_dropcaches
    functionSourceFile: /src/git/t/helper/test-drop-caches.c
    functionUses: 0
    functionsReached:
    - error
    linkageType: ''
    returnType: int
    signature: int cmd_dropcaches(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_sync
      Src: /src/git/t/helper/test-drop-caches.c:162,1
    - Dst: cmd_dropcaches
      Src: /src/git/t/helper/test-drop-caches.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: cmd__drop_caches
    functionSourceFile: /src/git/t/helper/test-drop-caches.c
    functionUses: 0
    functionsReached:
    - cmd_dropcaches
    - cmd_sync
    linkageType: ''
    returnType: int
    signature: int cmd__drop_caches(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-online-cpus.c:7,1
    - Dst: online_cpus
      Src: /src/git/t/helper/test-online-cpus.c:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: cmd__online_cpus
    functionSourceFile: /src/git/t/helper/test-online-cpus.c
    functionUses: 0
    functionsReached:
    - printf
    - online_cpus
    linkageType: ''
    returnType: int
    signature: int cmd__online_cpus(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/t/helper/test-path-walk.c:46,1
    - Dst: type_name
      Src: /src/git/t/helper/test-path-walk.c:48,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-walk.c:52,1
    - Dst: lookup_unknown_object
      Src: /src/git/t/helper/test-path-walk.c:56,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-walk.c:58,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-path-walk.c:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - path
    - oids
    - type
    - data
    argTypes:
    - char*
    - struct oid_array*
    - enum object_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 66
    functionName: emit_block
    functionSourceFile: /src/git/t/helper/test-path-walk.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - type_name
    - lookup_unknown_object
    - BUG
    - printf
    linkageType: ''
    returnType: int
    signature: "int emit_block(const char *path, struct oid_array *oids,\n\t\t      enum
      object_type type, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-path-walk.c:75,1
    - Dst: N_
      Src: /src/git/t/helper/test-path-walk.c:76,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-path-walk.c:77,1
    - Dst: N_
      Src: /src/git/t/helper/test-path-walk.c:78,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-path-walk.c:79,1
    - Dst: N_
      Src: /src/git/t/helper/test-path-walk.c:80,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-path-walk.c:81,1
    - Dst: N_
      Src: /src/git/t/helper/test-path-walk.c:82,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-path-walk.c:83,1
    - Dst: N_
      Src: /src/git/t/helper/test-path-walk.c:84,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-path-walk.c:85,1
    - Dst: N_
      Src: /src/git/t/helper/test-path-walk.c:86,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-path-walk.c:87,1
    - Dst: N_
      Src: /src/git/t/helper/test-path-walk.c:88,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-path-walk.c:89,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-path-walk.c:92,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-path-walk.c:95,1
    - Dst: setup_revisions
      Src: /src/git/t/helper/test-path-walk.c:100,1
    - Dst: usage
      Src: /src/git/t/helper/test-path-walk.c:102,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/t/helper/test-path-walk.c:110,1
    - Dst: strbuf_fread
      Src: /src/git/t/helper/test-path-walk.c:114,1
    - Dst: add_patterns_from_buffer
      Src: /src/git/t/helper/test-path-walk.c:115,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-path-walk.c:116,1
    - Dst: walk_objects_by_path
      Src: /src/git/t/helper/test-path-walk.c:119,1
    - Dst: printf
      Src: /src/git/t/helper/test-path-walk.c:121,1
    - Dst: clear_pattern_list
      Src: /src/git/t/helper/test-path-walk.c:128,1
    - Dst: free
      Src: /src/git/t/helper/test-path-walk.c:129,1
    - Dst: release_revisions
      Src: /src/git/t/helper/test-path-walk.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 68
    functionDepth: 14
    functionLinenumber: 68
    functionLinenumberEnd: 134
    functionName: cmd__path_walk
    functionSourceFile: /src/git/t/helper/test-path-walk.c
    functionUses: 0
    functionsReached:
    - walk_objects_by_path
    - parse_options
    - OPT_END
    - strbuf_release
    - clear_pattern_list
    - release_revisions
    - setup_git_directory
    - OPT_BOOL
    - usage
    - strbuf_fread
    - free
    - CALLOC_ARRAY
    - N_
    - setup_revisions
    - add_patterns_from_buffer
    - printf
    linkageType: ''
    returnType: int
    signature: int cmd__path_walk(int argc, const char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-cache-tree.c:28,1
    - Dst: N_
      Src: /src/git/t/helper/test-cache-tree.c:29,1
    - Dst: OPT_INTEGER_F
      Src: /src/git/t/helper/test-cache-tree.c:30,1
    - Dst: N_
      Src: /src/git/t/helper/test-cache-tree.c:31,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-cache-tree.c:33,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-cache-tree.c:36,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-cache-tree.c:38,1
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-cache-tree.c:40,1
    - Dst: die
      Src: /src/git/t/helper/test-cache-tree.c:41,1
    - Dst: _
      Src: /src/git/t/helper/test-cache-tree.c:41,1
    - Dst: oidcpy
      Src: /src/git/t/helper/test-cache-tree.c:43,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/t/helper/test-cache-tree.c:44,1
    - Dst: die
      Src: /src/git/t/helper/test-cache-tree.c:46,1
    - Dst: _
      Src: /src/git/t/helper/test-cache-tree.c:46,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-cache-tree.c:46,1
    - Dst: cache_tree_free
      Src: /src/git/t/helper/test-cache-tree.c:50,1
    - Dst: cache_tree
      Src: /src/git/t/helper/test-cache-tree.c:51,1
    - Dst: cache_tree_invalidate_path
      Src: /src/git/t/helper/test-cache-tree.c:57,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-cache-tree.c:61,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-cache-tree.c:62,1
    - Dst: prime_cache_tree
      Src: /src/git/t/helper/test-cache-tree.c:63,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-cache-tree.c:64,1
    - Dst: cache_tree_update
      Src: /src/git/t/helper/test-cache-tree.c:65,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-cache-tree.c:67,1
    - Dst: die
      Src: /src/git/t/helper/test-cache-tree.c:68,1
    - Dst: _
      Src: /src/git/t/helper/test-cache-tree.c:68,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 19
    functionDepth: 14
    functionLinenumber: 19
    functionLinenumberEnd: 71
    functionName: cmd__cache_tree
    functionSourceFile: /src/git/t/helper/test-cache-tree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - setup_git_directory
    - oidcpy
    - OPT_BOOL
    - OPT_INTEGER_F
    - cache_tree_free
    - strcmp
    - usage_with_options
    - OPT_END
    - die
    - repo_read_index
    - cache_tree
    - cache_tree_update
    - oid_to_hex
    - repo_parse_tree_indirect
    - prime_cache_tree
    - _
    - N_
    - cache_tree_invalidate_path
    linkageType: ''
    returnType: int
    signature: int cmd__cache_tree(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_PATHSPEC_FROM_FILE
      Src: /src/git/t/helper/test-parse-pathspec-file.c:17,1
    - Dst: OPT_PATHSPEC_FILE_NUL
      Src: /src/git/t/helper/test-parse-pathspec-file.c:18,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-parse-pathspec-file.c:19,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-parse-pathspec-file.c:22,1
    - Dst: parse_pathspec_file
      Src: /src/git/t/helper/test-parse-pathspec-file.c:24,1
    - Dst: printf
      Src: /src/git/t/helper/test-parse-pathspec-file.c:28,1
    - Dst: clear_pathspec
      Src: /src/git/t/helper/test-parse-pathspec-file.c:30,1
    - Dst: free
      Src: /src/git/t/helper/test-parse-pathspec-file.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 5
    functionDepth: 16
    functionLinenumber: 5
    functionLinenumberEnd: 33
    functionName: cmd__parse_pathspec_file
    functionSourceFile: /src/git/t/helper/test-parse-pathspec-file.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - clear_pathspec
    - printf
    - parse_pathspec_file
    - OPT_PATHSPEC_FROM_FILE
    - free
    - OPT_PATHSPEC_FILE_NUL
    linkageType: ''
    returnType: int
    signature: int cmd__parse_pathspec_file(int argc, const char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-wildmatch.c:9,1
    - Dst: strncmp
      Src: /src/git/t/helper/test-wildmatch.c:11,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-wildmatch.c:14,1
    - Dst: wildmatch
      Src: /src/git/t/helper/test-wildmatch.c:15,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-wildmatch.c:16,1
    - Dst: wildmatch
      Src: /src/git/t/helper/test-wildmatch.c:17,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-wildmatch.c:18,1
    - Dst: wildmatch
      Src: /src/git/t/helper/test-wildmatch.c:19,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-wildmatch.c:20,1
    - Dst: wildmatch
      Src: /src/git/t/helper/test-wildmatch.c:21,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 4
    functionDepth: 3
    functionLinenumber: 4
    functionLinenumberEnd: 24
    functionName: cmd__wildmatch
    functionSourceFile: /src/git/t/helper/test-wildmatch.c
    functionUses: 0
    functionsReached:
    - strncmp
    - die
    - wildmatch
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmd__wildmatch(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/git/t/helper/test-trace2.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - p_value
    - data
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: get_i
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int get_i(int *p_value, const char *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:56,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - UNUSED
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: ut_001return
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - die
    - get_i
    linkageType: ''
    returnType: int
    signature: int ut_001return(int argc UNUSED, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:76,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:77,1
    - Dst: exit
      Src: /src/git/t/helper/test-trace2.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - UNUSED
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: ut_002exit
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - exit
    - die
    - get_i
    linkageType: ''
    returnType: int
    signature: int ut_002exit(int argc UNUSED, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:97,1
    - Dst: error
      Src: /src/git/t/helper/test-trace2.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: ut_003error
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - error
    - die
    linkageType: ''
    returnType: int
    signature: int ut_003error(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushv
      Src: /src/git/t/helper/test-trace2.c:150,1
    - Dst: run_command
      Src: /src/git/t/helper/test-trace2.c:151,1
    - Dst: exit
      Src: /src/git/t/helper/test-trace2.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 8
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: ut_004child
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - strvec_pushv
    - exit
    - run_command
    linkageType: ''
    returnType: int
    signature: int ut_004child(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execv_git_cmd
      Src: /src/git/t/helper/test-trace2.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: ut_005exec
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - execv_git_cmd
    linkageType: ''
    returnType: int
    signature: int ut_005exec(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:193,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:198,1
    - Dst: trace2_data_string
      Src: /src/git/t/helper/test-trace2.c:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 206
    functionName: ut_006data
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - die
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: int ut_006data(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/t/helper/test-trace2.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: ut_007BUG
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: int ut_007BUG(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bug
      Src: /src/git/t/helper/test-trace2.c:218,1
    - Dst: bug
      Src: /src/git/t/helper/test-trace2.c:219,1
    - Dst: BUG_if_bug
      Src: /src/git/t/helper/test-trace2.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: ut_008bug
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - bug
    - BUG_if_bug
    linkageType: ''
    returnType: int
    signature: int ut_008bug(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bug
      Src: /src/git/t/helper/test-trace2.c:226,1
    - Dst: bug
      Src: /src/git/t/helper/test-trace2.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: ut_009bug_BUG
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - bug
    linkageType: ''
    returnType: int
    signature: int ut_009bug_BUG(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bug
      Src: /src/git/t/helper/test-trace2.c:234,1
    - Dst: BUG
      Src: /src/git/t/helper/test-trace2.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: ut_010bug_BUG
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - BUG
    - bug
    linkageType: ''
    returnType: int
    signature: int ut_010bug_BUG(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:254,1
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:255,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:256,1
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:257,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:258,1
    - Dst: trace2_timer_start
      Src: /src/git/t/helper/test-trace2.c:261,1
    - Dst: sleep_millisec
      Src: /src/git/t/helper/test-trace2.c:262,1
    - Dst: trace2_timer_stop
      Src: /src/git/t/helper/test-trace2.c:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 267
    functionName: ut_100timer
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - die
    - trace2_timer_stop
    - get_i
    - sleep_millisec
    - trace2_timer_start
    linkageType: ''
    returnType: int
    signature: int ut_100timer(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_thread_start
      Src: /src/git/t/helper/test-trace2.c:279,1
    - Dst: trace2_timer_start
      Src: /src/git/t/helper/test-trace2.c:282,1
    - Dst: sleep_millisec
      Src: /src/git/t/helper/test-trace2.c:283,1
    - Dst: trace2_timer_stop
      Src: /src/git/t/helper/test-trace2.c:284,1
    - Dst: trace2_thread_exit
      Src: /src/git/t/helper/test-trace2.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - _ut_101_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 289
    functionName: ut_101timer_thread_proc
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - trace2_thread_exit
    - trace2_timer_stop
    - sleep_millisec
    - trace2_timer_start
    - trace2_thread_start
    linkageType: ''
    returnType: void
    signature: void *ut_101timer_thread_proc(void *_ut_101_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:308,1
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:309,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:310,1
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:311,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:312,1
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:313,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:314,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/t/helper/test-trace2.c:316,1
    - Dst: pthread_create
      Src: /src/git/t/helper/test-trace2.c:319,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:320,1
    - Dst: pthread_join
      Src: /src/git/t/helper/test-trace2.c:324,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:325,1
    - Dst: free
      Src: /src/git/t/helper/test-trace2.c:328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 331
    functionName: ut_101timer
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - die
    - pthread_create
    - get_i
    - CALLOC_ARRAY
    - free
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int ut_101timer(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:346,1
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:349,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:350,1
    - Dst: trace2_counter_add
      Src: /src/git/t/helper/test-trace2.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 356
    functionName: ut_200counter
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - trace2_counter_add
    - die
    - get_i
    linkageType: ''
    returnType: int
    signature: int ut_200counter(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_thread_start
      Src: /src/git/t/helper/test-trace2.c:374,1
    - Dst: trace2_counter_add
      Src: /src/git/t/helper/test-trace2.c:376,1
    - Dst: trace2_counter_add
      Src: /src/git/t/helper/test-trace2.c:377,1
    - Dst: trace2_thread_exit
      Src: /src/git/t/helper/test-trace2.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - _ut_201_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 381
    functionName: ut_201counter_thread_proc
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - trace2_thread_start
    - trace2_counter_add
    - trace2_thread_exit
    linkageType: ''
    returnType: void
    signature: void *ut_201counter_thread_proc(void *_ut_201_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:394,1
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:395,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:396,1
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:397,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:398,1
    - Dst: get_i
      Src: /src/git/t/helper/test-trace2.c:399,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:400,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/t/helper/test-trace2.c:402,1
    - Dst: pthread_create
      Src: /src/git/t/helper/test-trace2.c:405,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:406,1
    - Dst: pthread_join
      Src: /src/git/t/helper/test-trace2.c:410,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:411,1
    - Dst: free
      Src: /src/git/t/helper/test-trace2.c:414,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 417
    functionName: ut_201counter
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - die
    - pthread_create
    - get_i
    - CALLOC_ARRAY
    - free
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int ut_201counter(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:422,1
    - Dst: trace2_cmd_start
      Src: /src/git/t/helper/test-trace2.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 427
    functionName: ut_300redact_start
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - trace2_cmd_start
    - die
    linkageType: ''
    returnType: int
    signature: int ut_300redact_start(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:435,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-trace2.c:438,1
    - Dst: trace2_child_start
      Src: /src/git/t/helper/test-trace2.c:440,1
    - Dst: strvec_clear
      Src: /src/git/t/helper/test-trace2.c:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 445
    functionName: ut_301redact_child_start
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_clear
    - die
    - trace2_child_start
    linkageType: ''
    returnType: int
    signature: int ut_301redact_child_start(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:450,1
    - Dst: trace2_exec
      Src: /src/git/t/helper/test-trace2.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: ut_302redact_exec
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - trace2_exec
    - die
    linkageType: ''
    returnType: int
    signature: int ut_302redact_exec(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:462,1
    - Dst: trace2_def_param
      Src: /src/git/t/helper/test-trace2.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 467
    functionName: ut_303redact_def_param
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - die
    - trace2_def_param
    linkageType: ''
    returnType: int
    signature: int ut_303redact_def_param(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:497,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-trace2.c:505,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-trace2.c:506,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-trace2.c:507,1
    - Dst: strvec_push
      Src: /src/git/t/helper/test-trace2.c:508,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-trace2.c:511,1
    - Dst: strvec_pushf
      Src: /src/git/t/helper/test-trace2.c:512,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-trace2.c:513,1
    - Dst: strvec_pushf
      Src: /src/git/t/helper/test-trace2.c:514,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-trace2.c:515,1
    - Dst: strvec_pushf
      Src: /src/git/t/helper/test-trace2.c:516,1
    - Dst: die
      Src: /src/git/t/helper/test-trace2.c:518,1
    - Dst: strvec_pushv
      Src: /src/git/t/helper/test-trace2.c:521,1
    - Dst: run_command
      Src: /src/git/t/helper/test-trace2.c:522,1
    - Dst: exit
      Src: /src/git/t/helper/test-trace2.c:523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 489
    functionDepth: 8
    functionLinenumber: 489
    functionLinenumberEnd: 524
    functionName: ut_400ancestry
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - die
    - run_command
    - strvec_pushv
    - exit
    - strcmp
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int ut_400ancestry(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - k
    - ','
    - ut_k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: for_each_ut
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_ut(k, ut_k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/helper/test-trace2.c:574,1
    - Dst: for_each_ut
      Src: /src/git/t/helper/test-trace2.c:575,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-trace2.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 580
    functionName: print_usage
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - for_each_ut
    - fprintf
    linkageType: ''
    returnType: int
    signature: int print_usage(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_ut
      Src: /src/git/t/helper/test-trace2.c:611,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-trace2.c:612,1
    - Dst: struct unit_test*::ut_fn
      Src: /src/git/t/helper/test-trace2.c:613,1
    - Dst: print_usage
      Src: /src/git/t/helper/test-trace2.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 616
    functionName: cmd__trace2
    functionSourceFile: /src/git/t/helper/test-trace2.c
    functionUses: 0
    functionsReached:
    - print_usage
    - for_each_ut
    - struct unit_test*::ut_fn
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmd__trace2(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: str_or_null
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *str_or_null(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/git/t/helper/test-rot13-filter.c:58,1
    - Dst: tolower
      Src: /src/git/t/helper/test-rot13-filter.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: rot13
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - isalpha
    - tolower
    linkageType: ''
    returnType: char
    signature: char *rot13(char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-rot13-filter.c:67,1
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-rot13-filter.c:68,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:70,1
    - Dst: str_or_null
      Src: /src/git/t/helper/test-rot13-filter.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: get_value
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 24
    functionsReached:
    - str_or_null
    - skip_prefix
    - die
    linkageType: ''
    returnType: char
    signature: char *get_value(char *buf, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_read_line_gently
      Src: /src/git/t/helper/test-rot13-filter.c:83,1
    - Dst: xstrdup
      Src: /src/git/t/helper/test-rot13-filter.c:85,1
    - Dst: get_value
      Src: /src/git/t/helper/test-rot13-filter.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 8
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: packet_key_val_read
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - get_value
    - packet_read_line_gently
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *packet_key_val_read(const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strset_contains
      Src: /src/git/t/helper/test-rot13-filter.c:90,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - caps
    - cap
    argTypes:
    - struct strset*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: assert_remote_capability
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - die
    - strset_contains
    linkageType: ''
    returnType: void
    signature: void assert_remote_capability(struct strset *caps, const char *cap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_read_line
      Src: /src/git/t/helper/test-rot13-filter.c:97,1
    - Dst: strset_add
      Src: /src/git/t/helper/test-rot13-filter.c:100,1
    - Dst: get_value
      Src: /src/git/t/helper/test-rot13-filter.c:100,1
    - Dst: assert_remote_capability
      Src: /src/git/t/helper/test-rot13-filter.c:103,1
    - Dst: assert_remote_capability
      Src: /src/git/t/helper/test-rot13-filter.c:104,1
    - Dst: assert_remote_capability
      Src: /src/git/t/helper/test-rot13-filter.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - remote_caps
    argTypes:
    - struct strset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 8
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: read_capabilities
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - get_value
    - packet_read_line
    - strset_add
    - assert_remote_capability
    linkageType: ''
    returnType: void
    signature: void read_capabilities(struct strset *remote_caps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strset_contains
      Src: /src/git/t/helper/test-rot13-filter.c:113,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:114,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-rot13-filter.c:116,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-rot13-filter.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - remote_caps
    - caps
    - nr_caps
    argTypes:
    - struct strset*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 7
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: check_and_write_capabilities
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - packet_flush
    - die
    - strset_contains
    linkageType: ''
    returnType: void
    signature: "void check_and_write_capabilities(struct strset *remote_caps,\n\t\t\t\t\t
      const char **caps, int nr_caps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/t/helper/test-rot13-filter.c:131,1
    - Dst: free
      Src: /src/git/t/helper/test-rot13-filter.c:133,1
    - Dst: free
      Src: /src/git/t/helper/test-rot13-filter.c:134,1
    - Dst: strmap_clear
      Src: /src/git/t/helper/test-rot13-filter.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: free_delay_entries
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - strmap_for_each_entry
    - strmap_clear
    - free
    linkageType: ''
    returnType: void
    signature: void free_delay_entries(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/t/helper/test-rot13-filter.c:141,1
    - Dst: strmap_put
      Src: /src/git/t/helper/test-rot13-filter.c:144,1
    - Dst: BUG
      Src: /src/git/t/helper/test-rot13-filter.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pathname
    - count
    - requested
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 7
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: add_delay_entry
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - strmap_put
    - BUG
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void add_delay_entry(const char *pathname, int count, int requested)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: packet_read_line
      Src: /src/git/t/helper/test-rot13-filter.c:156,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:157,1
    - Dst: strmap_for_each_entry
      Src: /src/git/t/helper/test-rot13-filter.c:159,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:164,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-rot13-filter.c:166,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:168,1
    - Dst: string_list_append
      Src: /src/git/t/helper/test-rot13-filter.c:171,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-rot13-filter.c:172,1
    - Dst: string_list_sort
      Src: /src/git/t/helper/test-rot13-filter.c:177,1
    - Dst: for_each_string_list_item
      Src: /src/git/t/helper/test-rot13-filter.c:178,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:179,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-rot13-filter.c:180,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-rot13-filter.c:182,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:184,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-rot13-filter.c:185,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-rot13-filter.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 148
    functionDepth: 8
    functionLinenumber: 148
    functionLinenumberEnd: 187
    functionName: reply_list_available_blobs_cmd
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - for_each_string_list_item
    - packet_read_line
    - die
    - string_list_clear
    - string_list_sort
    - packet_flush
    - strmap_for_each_entry
    - string_list_append
    - strcmp
    - fprintf
    linkageType: ''
    returnType: void
    signature: void reply_list_available_blobs_cmd(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: packet_key_val_read
      Src: /src/git/t/helper/test-rot13-filter.c:197,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:200,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:203,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:205,1
    - Dst: reply_list_available_blobs_cmd
      Src: /src/git/t/helper/test-rot13-filter.c:206,1
    - Dst: free
      Src: /src/git/t/helper/test-rot13-filter.c:207,1
    - Dst: packet_key_val_read
      Src: /src/git/t/helper/test-rot13-filter.c:211,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:213,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:214,1
    - Dst: packet_read_line
      Src: /src/git/t/helper/test-rot13-filter.c:217,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:218,1
    - Dst: strmap_get
      Src: /src/git/t/helper/test-rot13-filter.c:219,1
    - Dst: add_delay_entry
      Src: /src/git/t/helper/test-rot13-filter.c:223,1
    - Dst: starts_with
      Src: /src/git/t/helper/test-rot13-filter.c:224,1
    - Dst: starts_with
      Src: /src/git/t/helper/test-rot13-filter.c:225,1
    - Dst: starts_with
      Src: /src/git/t/helper/test-rot13-filter.c:226,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:227,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:235,1
    - Dst: read_packetized_to_strbuf
      Src: /src/git/t/helper/test-rot13-filter.c:239,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:240,1
    - Dst: strmap_get
      Src: /src/git/t/helper/test-rot13-filter.c:242,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:245,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:245,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:247,1
    - Dst: rot13
      Src: /src/git/t/helper/test-rot13-filter.c:248,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:249,1
    - Dst: rot13
      Src: /src/git/t/helper/test-rot13-filter.c:250,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:252,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:255,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:256,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-rot13-filter.c:257,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-rot13-filter.c:258,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:259,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:260,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-rot13-filter.c:261,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-rot13-filter.c:262,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:263,1
    - Dst: strmap_get
      Src: /src/git/t/helper/test-rot13-filter.c:264,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:266,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-rot13-filter.c:267,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-rot13-filter.c:268,1
    - Dst: free
      Src: /src/git/t/helper/test-rot13-filter.c:271,1
    - Dst: xstrdup
      Src: /src/git/t/helper/test-rot13-filter.c:272,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-rot13-filter.c:278,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-rot13-filter.c:279,1
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-rot13-filter.c:281,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:282,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:283,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:284,1
    - Dst: strlen
      Src: /src/git/t/helper/test-rot13-filter.c:287,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:288,1
    - Dst: write_packetized_from_buf_no_flush_count
      Src: /src/git/t/helper/test-rot13-filter.c:290,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:292,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-rot13-filter.c:293,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:296,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:297,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-rot13-filter.c:299,1
    - Dst: free
      Src: /src/git/t/helper/test-rot13-filter.c:301,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-rot13-filter.c:302,1
    - Dst: free
      Src: /src/git/t/helper/test-rot13-filter.c:303,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 189
    functionDepth: 9
    functionLinenumber: 189
    functionLinenumberEnd: 305
    functionName: command_loop
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - packet_read_line
    - read_packetized_to_strbuf
    - packet_flush
    - strmap_get
    - strcmp
    - free
    - strbuf_release
    - die
    - packet_write_fmt
    - write_packetized_from_buf_no_flush_count
    - rot13
    - packet_key_val_read
    - reply_list_available_blobs_cmd
    - skip_prefix
    - xstrdup
    - starts_with
    - add_delay_entry
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: void command_loop(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: packet_read_line
      Src: /src/git/t/helper/test-rot13-filter.c:309,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:311,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:312,1
    - Dst: str_or_null
      Src: /src/git/t/helper/test-rot13-filter.c:312,1
    - Dst: packet_read_line
      Src: /src/git/t/helper/test-rot13-filter.c:314,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:315,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:316,1
    - Dst: str_or_null
      Src: /src/git/t/helper/test-rot13-filter.c:316,1
    - Dst: packet_read_line
      Src: /src/git/t/helper/test-rot13-filter.c:318,1
    - Dst: die
      Src: /src/git/t/helper/test-rot13-filter.c:320,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-rot13-filter.c:322,1
    - Dst: packet_write_fmt
      Src: /src/git/t/helper/test-rot13-filter.c:323,1
    - Dst: packet_flush
      Src: /src/git/t/helper/test-rot13-filter.c:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 307
    functionDepth: 8
    functionLinenumber: 307
    functionLinenumberEnd: 325
    functionName: packet_initialize
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - packet_read_line
    - die
    - packet_flush
    - str_or_null
    - strcmp
    linkageType: ''
    returnType: void
    signature: void packet_initialize(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-rot13-filter.c:339,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-rot13-filter.c:341,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-rot13-filter.c:343,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-rot13-filter.c:345,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-rot13-filter.c:349,1
    - Dst: fopen
      Src: /src/git/t/helper/test-rot13-filter.c:351,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-rot13-filter.c:353,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:356,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-rot13-filter.c:358,1
    - Dst: add_delay_entry
      Src: /src/git/t/helper/test-rot13-filter.c:362,1
    - Dst: add_delay_entry
      Src: /src/git/t/helper/test-rot13-filter.c:363,1
    - Dst: add_delay_entry
      Src: /src/git/t/helper/test-rot13-filter.c:364,1
    - Dst: add_delay_entry
      Src: /src/git/t/helper/test-rot13-filter.c:365,1
    - Dst: add_delay_entry
      Src: /src/git/t/helper/test-rot13-filter.c:366,1
    - Dst: add_delay_entry
      Src: /src/git/t/helper/test-rot13-filter.c:367,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:369,1
    - Dst: packet_initialize
      Src: /src/git/t/helper/test-rot13-filter.c:370,1
    - Dst: read_capabilities
      Src: /src/git/t/helper/test-rot13-filter.c:372,1
    - Dst: check_and_write_capabilities
      Src: /src/git/t/helper/test-rot13-filter.c:373,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-rot13-filter.c:374,1
    - Dst: strset_clear
      Src: /src/git/t/helper/test-rot13-filter.c:375,1
    - Dst: command_loop
      Src: /src/git/t/helper/test-rot13-filter.c:377,1
    - Dst: fclose
      Src: /src/git/t/helper/test-rot13-filter.c:379,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-rot13-filter.c:380,1
    - Dst: free_delay_entries
      Src: /src/git/t/helper/test-rot13-filter.c:381,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 332
    functionDepth: 13
    functionLinenumber: 332
    functionLinenumberEnd: 383
    functionName: cmd__rot13_filter
    functionSourceFile: /src/git/t/helper/test-rot13-filter.c
    functionUses: 0
    functionsReached:
    - fclose
    - parse_options
    - OPT_END
    - read_capabilities
    - packet_initialize
    - strset_clear
    - command_loop
    - OPT_BOOL
    - OPT_STRING
    - fopen
    - die_errno
    - check_and_write_capabilities
    - add_delay_entry
    - free_delay_entries
    - strcmp
    - fprintf
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__rot13_filter(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_pack_mtimes
      Src: /src/git/t/helper/test-pack-mtimes.c:14,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-mtimes.c:15,1
    - Dst: nth_packed_object_id
      Src: /src/git/t/helper/test-pack-mtimes.c:19,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-mtimes.c:20,1
    - Dst: printf
      Src: /src/git/t/helper/test-pack-mtimes.c:22,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-pack-mtimes.c:23,1
    - Dst: nth_packed_mtime
      Src: /src/git/t/helper/test-pack-mtimes.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 11
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: dump_mtimes
    functionSourceFile: /src/git/t/helper/test-pack-mtimes.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - nth_packed_object_id
    - load_pack_mtimes
    - printf
    - nth_packed_mtime
    linkageType: ''
    returnType: void
    signature: void dump_mtimes(struct packed_git *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-pack-mtimes.c:35,1
    - Dst: usage
      Src: /src/git/t/helper/test-pack-mtimes.c:38,1
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-pack-mtimes.c:41,1
    - Dst: basename
      Src: /src/git/t/helper/test-pack-mtimes.c:41,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/t/helper/test-pack-mtimes.c:42,1
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-pack-mtimes.c:43,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pack-mtimes.c:45,1
    - Dst: strbuf_reset
      Src: /src/git/t/helper/test-pack-mtimes.c:48,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-pack-mtimes.c:51,1
    - Dst: die
      Src: /src/git/t/helper/test-pack-mtimes.c:54,1
    - Dst: dump_mtimes
      Src: /src/git/t/helper/test-pack-mtimes.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 30
    functionDepth: 14
    functionLinenumber: 30
    functionLinenumberEnd: 59
    functionName: cmd__pack_mtimes
    functionSourceFile: /src/git/t/helper/test-pack-mtimes.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - setup_git_directory
    - strbuf_reset
    - strbuf_strip_suffix
    - dump_mtimes
    - usage
    - basename
    - strbuf_addstr
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmd__pack_mtimes(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-pack-mtimes.c:41,1
    - Dst: basename
      Src: /src/git/t/helper/test-pack-mtimes.c:41,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/t/helper/test-pack-mtimes.c:42,1
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-pack-mtimes.c:43,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-pack-mtimes.c:45,1
    - Dst: strbuf_reset
      Src: /src/git/t/helper/test-pack-mtimes.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/t/helper/test-pack-mtimes.c
    functionUses: 4
    functionsReached:
    - strbuf_reset
    - strbuf_strip_suffix
    - basename
    - strbuf_addstr
    - strcmp
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline
      Src: /src/git/t/helper/test-submodule.c:58,1
    - Dst: check_fn
      Src: /src/git/t/helper/test-submodule.c:59,1
    - Dst: printf
      Src: /src/git/t/helper/test-submodule.c:60,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-submodule.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - check_fn
    argTypes:
    - check_fn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: check_submodule
    functionSourceFile: /src/git/t/helper/test-submodule.c
    functionUses: 0
    functionsReached:
    - check_fn
    - strbuf_getline
    - strbuf_release
    - printf
    linkageType: ''
    returnType: int
    signature: int check_submodule(check_fn_t check_fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-submodule.c:69,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-submodule.c:71,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-submodule.c:74,1
    - Dst: check_submodule
      Src: /src/git/t/helper/test-submodule.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 13
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: cmd__submodule_check_name
    functionSourceFile: /src/git/t/helper/test-submodule.c
    functionUses: 0
    functionsReached:
    - check_submodule
    - parse_options
    - OPT_END
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__submodule_check_name(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-submodule.c:82,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-submodule.c:84,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-submodule.c:87,1
    - Dst: check_submodule
      Src: /src/git/t/helper/test-submodule.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 13
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: cmd__submodule_check_url
    functionSourceFile: /src/git/t/helper/test-submodule.c
    functionUses: 0
    functionsReached:
    - check_submodule
    - parse_options
    - OPT_END
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__submodule_check_url(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-submodule.c:95,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-submodule.c:97,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-submodule.c:100,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-submodule.c:102,1
    - Dst: is_submodule_active
      Src: /src/git/t/helper/test-submodule.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 21
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: cmd__submodule_is_active
    functionSourceFile: /src/git/t/helper/test-submodule.c
    functionUses: 0
    functionsReached:
    - is_submodule_active
    - parse_options
    - OPT_END
    - setup_git_directory
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__submodule_is_active(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-submodule.c:112,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-submodule.c:114,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-submodule.c:117,1
    - Dst: xstrdup
      Src: /src/git/t/helper/test-submodule.c:120,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-submodule.c:123,1
    - Dst: relative_url
      Src: /src/git/t/helper/test-submodule.c:126,1
    - Dst: puts
      Src: /src/git/t/helper/test-submodule.c:127,1
    - Dst: free
      Src: /src/git/t/helper/test-submodule.c:128,1
    - Dst: free
      Src: /src/git/t/helper/test-submodule.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 107
    functionDepth: 13
    functionLinenumber: 107
    functionLinenumberEnd: 131
    functionName: cmd__submodule_resolve_relative_url
    functionSourceFile: /src/git/t/helper/test-submodule.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - relative_url
    - usage_with_options
    - puts
    - strcmp
    - free
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int cmd__submodule_resolve_relative_url(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-submodule.c:136,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-submodule.c:142,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-submodule.c:145,1
    - Dst: print_config_from_gitmodules
      Src: /src/git/t/helper/test-submodule.c:148,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-submodule.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 133
    functionDepth: 14
    functionLinenumber: 133
    functionLinenumberEnd: 150
    functionName: cmd__submodule_config_list
    functionSourceFile: /src/git/t/helper/test-submodule.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - setup_git_directory
    - print_config_from_gitmodules
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__submodule_config_list(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-submodule.c:155,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-submodule.c:161,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-submodule.c:164,1
    - Dst: is_writing_gitmodules_ok
      Src: /src/git/t/helper/test-submodule.c:168,1
    - Dst: die
      Src: /src/git/t/helper/test-submodule.c:169,1
    - Dst: config_set_in_gitmodules_file_gently
      Src: /src/git/t/helper/test-submodule.c:171,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-submodule.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 14
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: cmd__submodule_config_set
    functionSourceFile: /src/git/t/helper/test-submodule.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - setup_git_directory
    - config_set_in_gitmodules_file_gently
    - is_writing_gitmodules_ok
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__submodule_config_set(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-submodule.c:179,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-submodule.c:186,1
    - Dst: is_writing_gitmodules_ok
      Src: /src/git/t/helper/test-submodule.c:189,1
    - Dst: die
      Src: /src/git/t/helper/test-submodule.c:190,1
    - Dst: config_set_in_gitmodules_file_gently
      Src: /src/git/t/helper/test-submodule.c:191,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-submodule.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 176
    functionDepth: 14
    functionLinenumber: 176
    functionLinenumberEnd: 194
    functionName: cmd__submodule_config_unset
    functionSourceFile: /src/git/t/helper/test-submodule.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - die
    - setup_git_directory
    - config_set_in_gitmodules_file_gently
    - is_writing_gitmodules_ok
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__submodule_config_unset(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-submodule.c:199,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-submodule.c:205,1
    - Dst: is_writing_gitmodules_ok
      Src: /src/git/t/helper/test-submodule.c:208,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-submodule.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 196
    functionDepth: 14
    functionLinenumber: 196
    functionLinenumberEnd: 211
    functionName: cmd__submodule_config_writeable
    functionSourceFile: /src/git/t/helper/test-submodule.c
    functionUses: 0
    functionsReached:
    - usage_with_options
    - is_writing_gitmodules_ok
    - OPT_END
    - setup_git_directory
    linkageType: ''
    returnType: int
    signature: int cmd__submodule_config_writeable(int argc, const char **argv UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-submodule.c:227,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-submodule.c:231,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-submodule.c:234,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-submodule.c:236,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-submodule.c:237,1
    - Dst: fn
      Src: /src/git/t/helper/test-submodule.c:238,1
    - Dst: usage_msg_optf
      Src: /src/git/t/helper/test-submodule.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 224
    functionDepth: 13
    functionLinenumber: 224
    functionLinenumberEnd: 244
    functionName: cmd__submodule
    functionSourceFile: /src/git/t/helper/test-submodule.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - parse_options
    - OPT_END
    - fn
    - strcmp
    - usage_msg_optf
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__submodule(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/t/helper/test-json-writer.c:42,1
    - Dst: jw_object_string
      Src: /src/git/t/helper/test-json-writer.c:44,1
    - Dst: jw_object_intmax
      Src: /src/git/t/helper/test-json-writer.c:45,1
    - Dst: jw_object_true
      Src: /src/git/t/helper/test-json-writer.c:46,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: make_obj1
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - jw_object_true
    - jw_object_intmax
    linkageType: ''
    returnType: void
    signature: void make_obj1(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/t/helper/test-json-writer.c:53,1
    - Dst: jw_object_intmax
      Src: /src/git/t/helper/test-json-writer.c:55,1
    - Dst: jw_object_intmax
      Src: /src/git/t/helper/test-json-writer.c:56,1
    - Dst: jw_object_intmax
      Src: /src/git/t/helper/test-json-writer.c:57,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: make_obj2
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_end
    - jw_object_intmax
    - jw_object_begin
    linkageType: ''
    returnType: void
    signature: void make_obj2(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/t/helper/test-json-writer.c:64,1
    - Dst: jw_object_intmax
      Src: /src/git/t/helper/test-json-writer.c:66,1
    - Dst: jw_object_intmax
      Src: /src/git/t/helper/test-json-writer.c:67,1
    - Dst: jw_object_intmax
      Src: /src/git/t/helper/test-json-writer.c:68,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: make_obj3
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_end
    - jw_object_intmax
    - jw_object_begin
    linkageType: ''
    returnType: void
    signature: void make_obj3(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/t/helper/test-json-writer.c:75,1
    - Dst: jw_object_true
      Src: /src/git/t/helper/test-json-writer.c:77,1
    - Dst: jw_object_false
      Src: /src/git/t/helper/test-json-writer.c:78,1
    - Dst: jw_object_null
      Src: /src/git/t/helper/test-json-writer.c:79,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: make_obj4
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_object_null
    - jw_object_begin
    - jw_end
    - jw_object_true
    - jw_object_false
    linkageType: ''
    returnType: void
    signature: void make_obj4(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/t/helper/test-json-writer.c:86,1
    - Dst: jw_object_string
      Src: /src/git/t/helper/test-json-writer.c:88,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: make_obj5
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_end
    - jw_object_begin
    - jw_object_string
    linkageType: ''
    returnType: void
    signature: void make_obj5(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/t/helper/test-json-writer.c:95,1
    - Dst: jw_object_double
      Src: /src/git/t/helper/test-json-writer.c:97,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: make_obj6
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_end
    - jw_object_double
    - jw_object_begin
    linkageType: ''
    returnType: void
    signature: void make_obj6(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_array_begin
      Src: /src/git/t/helper/test-json-writer.c:135,1
    - Dst: jw_array_string
      Src: /src/git/t/helper/test-json-writer.c:137,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:138,1
    - Dst: jw_array_true
      Src: /src/git/t/helper/test-json-writer.c:139,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: make_arr1
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_array_intmax
    - jw_end
    - jw_array_string
    - jw_array_true
    - jw_array_begin
    linkageType: ''
    returnType: void
    signature: void make_arr1(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_array_begin
      Src: /src/git/t/helper/test-json-writer.c:146,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:148,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:149,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:150,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: make_arr2
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_end
    - jw_array_intmax
    - jw_array_begin
    linkageType: ''
    returnType: void
    signature: void make_arr2(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_array_begin
      Src: /src/git/t/helper/test-json-writer.c:157,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:159,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:160,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:161,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: make_arr3
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_end
    - jw_array_intmax
    - jw_array_begin
    linkageType: ''
    returnType: void
    signature: void make_arr3(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_array_begin
      Src: /src/git/t/helper/test-json-writer.c:168,1
    - Dst: jw_array_true
      Src: /src/git/t/helper/test-json-writer.c:170,1
    - Dst: jw_array_false
      Src: /src/git/t/helper/test-json-writer.c:171,1
    - Dst: jw_array_null
      Src: /src/git/t/helper/test-json-writer.c:172,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: make_arr4
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_array_false
    - jw_array_null
    - jw_end
    - jw_array_true
    - jw_array_begin
    linkageType: ''
    returnType: void
    signature: void make_arr4(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_obj1
      Src: /src/git/t/helper/test-json-writer.c:184,1
    - Dst: make_arr1
      Src: /src/git/t/helper/test-json-writer.c:185,1
    - Dst: jw_object_begin
      Src: /src/git/t/helper/test-json-writer.c:187,1
    - Dst: jw_object_sub_jw
      Src: /src/git/t/helper/test-json-writer.c:189,1
    - Dst: jw_object_sub_jw
      Src: /src/git/t/helper/test-json-writer.c:190,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:192,1
    - Dst: jw_release
      Src: /src/git/t/helper/test-json-writer.c:194,1
    - Dst: jw_release
      Src: /src/git/t/helper/test-json-writer.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: make_nest1
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - make_arr1
    - jw_object_begin
    - jw_end
    - jw_release
    - make_obj1
    - jw_object_sub_jw
    linkageType: ''
    returnType: void
    signature: void make_nest1(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/t/helper/test-json-writer.c:219,1
    - Dst: jw_object_inline_begin_object
      Src: /src/git/t/helper/test-json-writer.c:221,1
    - Dst: jw_object_string
      Src: /src/git/t/helper/test-json-writer.c:223,1
    - Dst: jw_object_intmax
      Src: /src/git/t/helper/test-json-writer.c:224,1
    - Dst: jw_object_true
      Src: /src/git/t/helper/test-json-writer.c:225,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:227,1
    - Dst: jw_object_inline_begin_array
      Src: /src/git/t/helper/test-json-writer.c:228,1
    - Dst: jw_array_string
      Src: /src/git/t/helper/test-json-writer.c:230,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:231,1
    - Dst: jw_array_true
      Src: /src/git/t/helper/test-json-writer.c:232,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:234,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 237
    functionName: make_inline1
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_array_intmax
    - jw_object_begin
    - jw_object_string
    - jw_end
    - jw_array_string
    - jw_array_true
    - jw_object_true
    - jw_object_intmax
    - jw_object_inline_begin_array
    - jw_object_inline_begin_object
    linkageType: ''
    returnType: void
    signature: void make_inline1(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_array_begin
      Src: /src/git/t/helper/test-json-writer.c:261,1
    - Dst: jw_array_inline_begin_array
      Src: /src/git/t/helper/test-json-writer.c:263,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:265,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:266,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:268,1
    - Dst: jw_array_inline_begin_array
      Src: /src/git/t/helper/test-json-writer.c:269,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:271,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:272,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:274,1
    - Dst: jw_array_inline_begin_object
      Src: /src/git/t/helper/test-json-writer.c:275,1
    - Dst: jw_object_string
      Src: /src/git/t/helper/test-json-writer.c:277,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:279,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 282
    functionName: make_inline2
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_array_intmax
    - jw_object_string
    - jw_end
    - jw_array_inline_begin_array
    - jw_array_begin
    - jw_array_inline_begin_object
    linkageType: ''
    returnType: void
    signature: void make_inline2(int pretty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:310,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:311,1
    - Dst: make_obj1
      Src: /src/git/t/helper/test-json-writer.c:313,1
    - Dst: make_arr1
      Src: /src/git/t/helper/test-json-writer.c:314,1
    - Dst: jw_object_begin
      Src: /src/git/t/helper/test-json-writer.c:316,1
    - Dst: jw_object_sub_jw
      Src: /src/git/t/helper/test-json-writer.c:318,1
    - Dst: jw_object_sub_jw
      Src: /src/git/t/helper/test-json-writer.c:319,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:321,1
    - Dst: jw_release
      Src: /src/git/t/helper/test-json-writer.c:323,1
    - Dst: jw_release
      Src: /src/git/t/helper/test-json-writer.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - pretty
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 308
    functionDepth: 5
    functionLinenumber: 308
    functionLinenumberEnd: 325
    functionName: make_mixed1
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - make_arr1
    - jw_object_begin
    - jw_end
    - jw_release
    - jw_init
    - make_obj1
    - jw_object_sub_jw
    linkageType: ''
    returnType: void
    signature: void make_mixed1(int pretty)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:329,1
    - Dst: printf
      Src: /src/git/t/helper/test-json-writer.c:332,1
    - Dst: exit
      Src: /src/git/t/helper/test-json-writer.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - test
    - jw
    - exp
    argTypes:
    - char*
    - struct json_writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: cmp
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 809
    functionsReached:
    - exit
    - printf
    - strcmp
    linkageType: ''
    returnType: void
    signature: void cmp(const char *test, const struct json_writer *jw, const char
      *exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: t
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 2633
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: t(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: p
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 1561
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:347,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:348,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:349,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:350,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:351,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:352,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:354,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:355,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:356,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:357,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:359,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:361,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:362,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:364,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:365,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:366,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:367,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:369,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:370,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:371,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:372,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:374,1
    - Dst: jw_init
      Src: /src/git/t/helper/test-json-writer.c:375,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:378,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:379,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:380,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:381,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:383,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:384,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:385,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:386,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:388,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:389,1
    - Dst: t
      Src: /src/git/t/helper/test-json-writer.c:392,1
    - Dst: p
      Src: /src/git/t/helper/test-json-writer.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 396
    functionName: unit_tests
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - p
    - t
    - jw_init
    linkageType: ''
    returnType: int
    signature: int unit_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-json-writer.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - line
    - s_in
    argTypes:
    - struct line*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: get_s
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: void
    signature: void get_s(struct line *line, char **s_in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:416,1
    - Dst: strtol
      Src: /src/git/t/helper/test-json-writer.c:419,1
    - Dst: die
      Src: /src/git/t/helper/test-json-writer.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - line
    - s_in
    argTypes:
    - struct line*
    - intmax_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 422
    functionName: get_i
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 6
    functionsReached:
    - strtol
    - die
    - get_s
    linkageType: ''
    returnType: void
    signature: void get_i(struct line *line, intmax_t *s_in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:429,1
    - Dst: strtod
      Src: /src/git/t/helper/test-json-writer.c:432,1
    - Dst: die
      Src: /src/git/t/helper/test-json-writer.c:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - line
    - s_in
    argTypes:
    - struct line*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 435
    functionName: get_d
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - strtod
    - die
    - get_s
    linkageType: ''
    returnType: void
    signature: void get_d(struct line *line, double *s_in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/git/t/helper/test-json-writer.c:445,1
    - Dst: strlen
      Src: /src/git/t/helper/test-json-writer.c:448,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - buf_size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 461
    functionName: get_trimmed_line
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - fgets
    - strlen
    linkageType: ''
    returnType: char
    signature: char *get_trimmed_line(char *buf, int buf_size)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: get_trimmed_line
      Src: /src/git/t/helper/test-json-writer.c:471,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:475,1
    - Dst: jw_object_begin
      Src: /src/git/t/helper/test-json-writer.c:476,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:477,1
    - Dst: jw_array_begin
      Src: /src/git/t/helper/test-json-writer.c:478,1
    - Dst: die
      Src: /src/git/t/helper/test-json-writer.c:480,1
    - Dst: get_trimmed_line
      Src: /src/git/t/helper/test-json-writer.c:482,1
    - Dst: string_list_setlen
      Src: /src/git/t/helper/test-json-writer.c:494,1
    - Dst: string_list_split_in_place_f
      Src: /src/git/t/helper/test-json-writer.c:495,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:504,1
    - Dst: jw_end
      Src: /src/git/t/helper/test-json-writer.c:505,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:507,1
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:508,1
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:509,1
    - Dst: jw_object_string
      Src: /src/git/t/helper/test-json-writer.c:510,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:512,1
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:513,1
    - Dst: get_i
      Src: /src/git/t/helper/test-json-writer.c:514,1
    - Dst: jw_object_intmax
      Src: /src/git/t/helper/test-json-writer.c:515,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:517,1
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:518,1
    - Dst: get_i
      Src: /src/git/t/helper/test-json-writer.c:519,1
    - Dst: get_d
      Src: /src/git/t/helper/test-json-writer.c:520,1
    - Dst: jw_object_double
      Src: /src/git/t/helper/test-json-writer.c:521,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:523,1
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:524,1
    - Dst: jw_object_true
      Src: /src/git/t/helper/test-json-writer.c:525,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:527,1
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:528,1
    - Dst: jw_object_false
      Src: /src/git/t/helper/test-json-writer.c:529,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:531,1
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:532,1
    - Dst: jw_object_null
      Src: /src/git/t/helper/test-json-writer.c:533,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:535,1
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:536,1
    - Dst: jw_object_inline_begin_object
      Src: /src/git/t/helper/test-json-writer.c:537,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:539,1
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:540,1
    - Dst: jw_object_inline_begin_array
      Src: /src/git/t/helper/test-json-writer.c:541,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:543,1
    - Dst: get_s
      Src: /src/git/t/helper/test-json-writer.c:544,1
    - Dst: jw_array_string
      Src: /src/git/t/helper/test-json-writer.c:545,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:547,1
    - Dst: get_i
      Src: /src/git/t/helper/test-json-writer.c:548,1
    - Dst: jw_array_intmax
      Src: /src/git/t/helper/test-json-writer.c:549,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:551,1
    - Dst: get_i
      Src: /src/git/t/helper/test-json-writer.c:552,1
    - Dst: get_d
      Src: /src/git/t/helper/test-json-writer.c:553,1
    - Dst: jw_array_double
      Src: /src/git/t/helper/test-json-writer.c:554,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:556,1
    - Dst: jw_array_true
      Src: /src/git/t/helper/test-json-writer.c:557,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:558,1
    - Dst: jw_array_false
      Src: /src/git/t/helper/test-json-writer.c:559,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:560,1
    - Dst: jw_array_null
      Src: /src/git/t/helper/test-json-writer.c:561,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:562,1
    - Dst: jw_array_inline_begin_object
      Src: /src/git/t/helper/test-json-writer.c:563,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:564,1
    - Dst: jw_array_inline_begin_array
      Src: /src/git/t/helper/test-json-writer.c:565,1
    - Dst: die
      Src: /src/git/t/helper/test-json-writer.c:567,1
    - Dst: jw_is_terminated
      Src: /src/git/t/helper/test-json-writer.c:570,1
    - Dst: die
      Src: /src/git/t/helper/test-json-writer.c:571,1
    - Dst: printf
      Src: /src/git/t/helper/test-json-writer.c:573,1
    - Dst: jw_release
      Src: /src/git/t/helper/test-json-writer.c:575,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-json-writer.c:576,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 463
    functionDepth: 5
    functionLinenumber: 463
    functionLinenumberEnd: 578
    functionName: scripted
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - jw_array_false
    - jw_end
    - get_i
    - jw_object_true
    - jw_array_begin
    - strcmp
    - printf
    - jw_is_terminated
    - die
    - jw_array_double
    - jw_object_string
    - jw_array_inline_begin_array
    - jw_object_intmax
    - jw_object_inline_begin_object
    - get_d
    - string_list_clear
    - jw_array_null
    - jw_object_null
    - string_list_setlen
    - jw_array_string
    - jw_array_true
    - get_trimmed_line
    - jw_object_inline_begin_array
    - jw_array_inline_begin_object
    - jw_object_false
    - jw_array_intmax
    - string_list_split_in_place_f
    - get_s
    - jw_object_begin
    - jw_object_double
    - jw_release
    linkageType: ''
    returnType: int
    signature: int scripted(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:586,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:586,1
    - Dst: unit_tests
      Src: /src/git/t/helper/test-json-writer.c:587,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:589,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-json-writer.c:589,1
    - Dst: scripted
      Src: /src/git/t/helper/test-json-writer.c:593,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 580
    functionDepth: 6
    functionLinenumber: 580
    functionLinenumberEnd: 594
    functionName: cmd__json_writer
    functionSourceFile: /src/git/t/helper/test-json-writer.c
    functionUses: 0
    functionsReached:
    - unit_tests
    - scripted
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmd__json_writer(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:10,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:11,1
    - Dst: exit
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argv
    - msg
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 13
    functionName: die_usage
    functionSourceFile: /src/git/t/helper/test-submodule-nested-repo-config.c
    functionUses: 2
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void die_usage(const char **argv, const char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die_usage
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:20,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:22,1
    - Dst: repo_submodule_init
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:24,1
    - Dst: null_oid
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:24,1
    - Dst: die_usage
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:25,1
    - Dst: print_config_from_gitmodules
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:29,1
    - Dst: submodule_free
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:31,1
    - Dst: repo_clear
      Src: /src/git/t/helper/test-submodule-nested-repo-config.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 15
    functionDepth: 14
    functionLinenumber: 15
    functionLinenumberEnd: 34
    functionName: cmd__submodule_nested_repo_config
    functionSourceFile: /src/git/t/helper/test-submodule-nested-repo-config.c
    functionUses: 0
    functionsReached:
    - setup_git_directory
    - die_usage
    - repo_submodule_init
    - repo_clear
    - print_config_from_gitmodules
    - null_oid
    - submodule_free
    linkageType: ''
    returnType: int
    signature: int cmd__submodule_nested_repo_config(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/git/t/helper/test-crontab.c:15,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-crontab.c:17,1
    - Dst: fopen
      Src: /src/git/t/helper/test-crontab.c:18,1
    - Dst: xfopen
      Src: /src/git/t/helper/test-crontab.c:23,1
    - Dst: xfopen
      Src: /src/git/t/helper/test-crontab.c:24,1
    - Dst: fgetc
      Src: /src/git/t/helper/test-crontab.c:27,1
    - Dst: fputc
      Src: /src/git/t/helper/test-crontab.c:28,1
    - Dst: fclose
      Src: /src/git/t/helper/test-crontab.c:30,1
    - Dst: fclose
      Src: /src/git/t/helper/test-crontab.c:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 9
    functionDepth: 2
    functionLinenumber: 9
    functionLinenumberEnd: 35
    functionName: cmd__crontab
    functionSourceFile: /src/git/t/helper/test-crontab.c
    functionUses: 0
    functionsReached:
    - fclose
    - fopen
    - usage
    - xfopen
    - strcmp
    - fputc
    - fgetc
    linkageType: ''
    returnType: int
    signature: int cmd__crontab(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/git/t/helper/test-date.c:21,1
    - Dst: show_date_relative
      Src: /src/git/t/helper/test-date.c:22,1
    - Dst: printf
      Src: /src/git/t/helper/test-date.c:23,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-date.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: show_relative_dates
    functionSourceFile: /src/git/t/helper/test-date.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - atoi
    - printf
    - show_date_relative
    linkageType: ''
    returnType: void
    signature: void show_relative_dates(const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/git/t/helper/test-date.c:31,1
    - Dst: printf
      Src: /src/git/t/helper/test-date.c:32,1
    - Dst: show_date
      Src: /src/git/t/helper/test-date.c:32,1
    - Dst: DATE_MODE
      Src: /src/git/t/helper/test-date.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: show_human_dates
    functionSourceFile: /src/git/t/helper/test-date.c
    functionUses: 0
    functionsReached:
    - show_date
    - atoi
    - printf
    - DATE_MODE
    linkageType: ''
    returnType: void
    signature: void show_human_dates(const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_date_format
      Src: /src/git/t/helper/test-date.c:40,1
    - Dst: parse_timestamp
      Src: /src/git/t/helper/test-date.c:50,1
    - Dst: atoi
      Src: /src/git/t/helper/test-date.c:53,1
    - Dst: printf
      Src: /src/git/t/helper/test-date.c:55,1
    - Dst: show_date
      Src: /src/git/t/helper/test-date.c:55,1
    - Dst: date_mode_release
      Src: /src/git/t/helper/test-date.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - argv
    - format
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 59
    functionName: show_dates
    functionSourceFile: /src/git/t/helper/test-date.c
    functionUses: 0
    functionsReached:
    - atoi
    - date_mode_release
    - parse_date_format
    - show_date
    - parse_timestamp
    - printf
    linkageType: ''
    returnType: void
    signature: void show_dates(const char **argv, const char *format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/t/helper/test-date.c:69,1
    - Dst: parse_date
      Src: /src/git/t/helper/test-date.c:70,1
    - Dst: sscanf
      Src: /src/git/t/helper/test-date.c:71,1
    - Dst: printf
      Src: /src/git/t/helper/test-date.c:72,1
    - Dst: show_date
      Src: /src/git/t/helper/test-date.c:73,1
    - Dst: DATE_MODE
      Src: /src/git/t/helper/test-date.c:73,1
    - Dst: printf
      Src: /src/git/t/helper/test-date.c:75,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-date.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 78
    functionName: parse_dates
    functionSourceFile: /src/git/t/helper/test-date.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - parse_date
    - DATE_MODE
    - show_date
    - sscanf
    - printf
    linkageType: ''
    returnType: void
    signature: void parse_dates(const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: approxidate
      Src: /src/git/t/helper/test-date.c:84,1
    - Dst: printf
      Src: /src/git/t/helper/test-date.c:85,1
    - Dst: show_date
      Src: /src/git/t/helper/test-date.c:85,1
    - Dst: DATE_MODE
      Src: /src/git/t/helper/test-date.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: parse_approxidate
    functionSourceFile: /src/git/t/helper/test-date.c
    functionUses: 0
    functionsReached:
    - show_date
    - approxidate
    - printf
    - DATE_MODE
    linkageType: ''
    returnType: void
    signature: void parse_approxidate(const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: approxidate
      Src: /src/git/t/helper/test-date.c:93,1
    - Dst: printf
      Src: /src/git/t/helper/test-date.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: parse_approx_timestamp
    functionSourceFile: /src/git/t/helper/test-date.c
    functionUses: 0
    functionsReached:
    - approxidate
    - printf
    linkageType: ''
    returnType: void
    signature: void parse_approx_timestamp(const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/t/helper/test-date.c:100,1
    - Dst: strtod
      Src: /src/git/t/helper/test-date.c:103,1
    - Dst: printf
      Src: /src/git/t/helper/test-date.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: getnanos
    functionSourceFile: /src/git/t/helper/test-date.c
    functionUses: 0
    functionsReached:
    - getnanotime
    - strtod
    - printf
    linkageType: ''
    returnType: void
    signature: void getnanos(const char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/git/t/helper/test-date.c:113,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-date.c:114,1
    - Dst: show_relative_dates
      Src: /src/git/t/helper/test-date.c:115,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-date.c:116,1
    - Dst: show_human_dates
      Src: /src/git/t/helper/test-date.c:117,1
    - Dst: skip_prefix
      Src: /src/git/t/helper/test-date.c:118,1
    - Dst: show_dates
      Src: /src/git/t/helper/test-date.c:119,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-date.c:120,1
    - Dst: parse_dates
      Src: /src/git/t/helper/test-date.c:121,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-date.c:122,1
    - Dst: parse_approxidate
      Src: /src/git/t/helper/test-date.c:123,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-date.c:124,1
    - Dst: parse_approx_timestamp
      Src: /src/git/t/helper/test-date.c:125,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-date.c:126,1
    - Dst: getnanos
      Src: /src/git/t/helper/test-date.c:127,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-date.c:128,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-date.c:130,1
    - Dst: usage
      Src: /src/git/t/helper/test-date.c:133,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - UNUSED
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 107
    functionDepth: 7
    functionLinenumber: 107
    functionLinenumberEnd: 135
    functionName: cmd__date
    functionSourceFile: /src/git/t/helper/test-date.c
    functionUses: 0
    functionsReached:
    - parse_dates
    - getnanos
    - parse_approx_timestamp
    - show_human_dates
    - usage
    - show_relative_dates
    - strcmp
    - show_dates
    - skip_prefix
    - parse_approxidate
    linkageType: ''
    returnType: int
    signature: int cmd__date(int argc UNUSED, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bitmap_commits
      Src: /src/git/t/helper/test-bitmap.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 13
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: bitmap_list_commits
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 0
    functionsReached:
    - test_bitmap_commits
    linkageType: ''
    returnType: int
    signature: int bitmap_list_commits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bitmap_commits_with_offset
      Src: /src/git/t/helper/test-bitmap.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 13
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: bitmap_list_commits_with_offset
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 0
    functionsReached:
    - test_bitmap_commits_with_offset
    linkageType: ''
    returnType: int
    signature: int bitmap_list_commits_with_offset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bitmap_hashes
      Src: /src/git/t/helper/test-bitmap.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 13
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: bitmap_dump_hashes
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 0
    functionsReached:
    - test_bitmap_hashes
    linkageType: ''
    returnType: int
    signature: int bitmap_dump_hashes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bitmap_pseudo_merges
      Src: /src/git/t/helper/test-bitmap.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 13
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: bitmap_dump_pseudo_merges
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 0
    functionsReached:
    - test_bitmap_pseudo_merges
    linkageType: ''
    returnType: int
    signature: int bitmap_dump_pseudo_merges(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bitmap_pseudo_merge_commits
      Src: /src/git/t/helper/test-bitmap.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 13
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: bitmap_dump_pseudo_merge_commits
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 0
    functionsReached:
    - test_bitmap_pseudo_merge_commits
    linkageType: ''
    returnType: int
    signature: int bitmap_dump_pseudo_merge_commits(uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bitmap_pseudo_merge_objects
      Src: /src/git/t/helper/test-bitmap.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 13
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: bitmap_dump_pseudo_merge_objects
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 0
    functionsReached:
    - test_bitmap_pseudo_merge_objects
    linkageType: ''
    returnType: int
    signature: int bitmap_dump_pseudo_merge_objects(uint32_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packlist_alloc
      Src: /src/git/t/helper/test-bitmap.c:53,1
    - Dst: nth_packed_object_offset
      Src: /src/git/t/helper/test-bitmap.c:54,1
    - Dst: packed_object_info
      Src: /src/git/t/helper/test-bitmap.c:55,1
    - Dst: die
      Src: /src/git/t/helper/test-bitmap.c:56,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-bitmap.c:57,1
    - Dst: oe_set_type
      Src: /src/git/t/helper/test-bitmap.c:58,1
    - Dst: oe_set_in_pack
      Src: /src/git/t/helper/test-bitmap.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - oid
    - pack
    - pos
    - _data
    argTypes:
    - struct object_id*
    - struct packed_git*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 26
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: add_packed_object
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - packlist_alloc
    - nth_packed_object_offset
    - oe_set_in_pack
    - oe_set_type
    - packed_object_info
    linkageType: ''
    returnType: int
    signature: "int add_packed_object(const struct object_id *oid,\n\t\t\t     struct
      packed_git *pack,\n\t\t\t     uint32_t pos,\n\t\t\t     void *_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/t/helper/test-bitmap.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: idx_oid_cmp
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 0
    functionsReached:
    - oidcmp
    linkageType: ''
    returnType: int
    signature: int idx_oid_cmp(const void *va, const void *vb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/t/helper/test-bitmap.c:81,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bitmap.c:83,1
    - Dst: pack_basename
      Src: /src/git/t/helper/test-bitmap.c:83,1
    - Dst: die
      Src: /src/git/t/helper/test-bitmap.c:88,1
    - Dst: open_pack_index
      Src: /src/git/t/helper/test-bitmap.c:90,1
    - Dst: die
      Src: /src/git/t/helper/test-bitmap.c:91,1
    - Dst: prepare_packing_data
      Src: /src/git/t/helper/test-bitmap.c:93,1
    - Dst: for_each_object_in_pack
      Src: /src/git/t/helper/test-bitmap.c:95,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/t/helper/test-bitmap.c:103,1
    - Dst: bitmap_writer_init
      Src: /src/git/t/helper/test-bitmap.c:107,1
    - Dst: bitmap_writer_build_type_index
      Src: /src/git/t/helper/test-bitmap.c:108,1
    - Dst: strbuf_getline_lf
      Src: /src/git/t/helper/test-bitmap.c:110,1
    - Dst: get_oid_hex
      Src: /src/git/t/helper/test-bitmap.c:114,1
    - Dst: die
      Src: /src/git/t/helper/test-bitmap.c:115,1
    - Dst: lookup_commit
      Src: /src/git/t/helper/test-bitmap.c:117,1
    - Dst: repo_parse_commit
      Src: /src/git/t/helper/test-bitmap.c:118,1
    - Dst: die
      Src: /src/git/t/helper/test-bitmap.c:119,1
    - Dst: bitmap_writer_push_commit
      Src: /src/git/t/helper/test-bitmap.c:121,1
    - Dst: select_pseudo_merges
      Src: /src/git/t/helper/test-bitmap.c:124,1
    - Dst: bitmap_writer_build
      Src: /src/git/t/helper/test-bitmap.c:125,1
    - Dst: die
      Src: /src/git/t/helper/test-bitmap.c:126,1
    - Dst: bitmap_writer_set_checksum
      Src: /src/git/t/helper/test-bitmap.c:128,1
    - Dst: QSORT
      Src: /src/git/t/helper/test-bitmap.c:130,1
    - Dst: strbuf_reset
      Src: /src/git/t/helper/test-bitmap.c:132,1
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-bitmap.c:133,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/t/helper/test-bitmap.c:134,1
    - Dst: strbuf_addstr
      Src: /src/git/t/helper/test-bitmap.c:135,1
    - Dst: bitmap_writer_finish
      Src: /src/git/t/helper/test-bitmap.c:136,1
    - Dst: bitmap_writer_free
      Src: /src/git/t/helper/test-bitmap.c:138,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-bitmap.c:139,1
    - Dst: free
      Src: /src/git/t/helper/test-bitmap.c:140,1
    - Dst: clear_packing_data
      Src: /src/git/t/helper/test-bitmap.c:141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - basename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 72
    functionDepth: 21
    functionLinenumber: 72
    functionLinenumberEnd: 144
    functionName: bitmap_write
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 0
    functionsReached:
    - select_pseudo_merges
    - for_each_object_in_pack
    - strcmp
    - free
    - clear_packing_data
    - strbuf_release
    - strbuf_getline_lf
    - die
    - bitmap_writer_build
    - repo_parse_commit
    - ALLOC_ARRAY
    - QSORT
    - strbuf_addstr
    - bitmap_writer_init
    - pack_basename
    - get_oid_hex
    - strbuf_strip_suffix
    - bitmap_writer_build_type_index
    - bitmap_writer_set_checksum
    - bitmap_writer_free
    - bitmap_writer_push_commit
    - strbuf_reset
    - bitmap_writer_finish
    - prepare_repo_settings
    - lookup_commit
    - prepare_packing_data
    - open_pack_index
    linkageType: ''
    returnType: int
    signature: int bitmap_write(const char *basename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-bitmap.c:83,1
    - Dst: pack_basename
      Src: /src/git/t/helper/test-bitmap.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 4
    functionsReached:
    - pack_basename
    - strcmp
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-bitmap.c:148,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bitmap.c:150,1
    - Dst: bitmap_list_commits
      Src: /src/git/t/helper/test-bitmap.c:151,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bitmap.c:152,1
    - Dst: bitmap_list_commits_with_offset
      Src: /src/git/t/helper/test-bitmap.c:153,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bitmap.c:154,1
    - Dst: bitmap_dump_hashes
      Src: /src/git/t/helper/test-bitmap.c:155,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bitmap.c:156,1
    - Dst: bitmap_dump_pseudo_merges
      Src: /src/git/t/helper/test-bitmap.c:157,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bitmap.c:158,1
    - Dst: bitmap_dump_pseudo_merge_commits
      Src: /src/git/t/helper/test-bitmap.c:159,1
    - Dst: atoi
      Src: /src/git/t/helper/test-bitmap.c:159,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bitmap.c:160,1
    - Dst: bitmap_dump_pseudo_merge_objects
      Src: /src/git/t/helper/test-bitmap.c:161,1
    - Dst: atoi
      Src: /src/git/t/helper/test-bitmap.c:161,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bitmap.c:162,1
    - Dst: bitmap_write
      Src: /src/git/t/helper/test-bitmap.c:163,1
    - Dst: usage
      Src: /src/git/t/helper/test-bitmap.c:165,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 146
    functionDepth: 22
    functionLinenumber: 146
    functionLinenumberEnd: 174
    functionName: cmd__bitmap
    functionSourceFile: /src/git/t/helper/test-bitmap.c
    functionUses: 0
    functionsReached:
    - bitmap_dump_pseudo_merge_commits
    - atoi
    - bitmap_list_commits
    - bitmap_write
    - setup_git_directory
    - bitmap_dump_pseudo_merges
    - usage
    - strcmp
    - bitmap_list_commits_with_offset
    - bitmap_dump_hashes
    - bitmap_dump_pseudo_merge_objects
    linkageType: ''
    returnType: int
    signature: int cmd__bitmap(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/git/t/helper/test-regex.c:28,1
    - Dst: die
      Src: /src/git/t/helper/test-regex.c:29,1
    - Dst: regexec
      Src: /src/git/t/helper/test-regex.c:30,1
    - Dst: die
      Src: /src/git/t/helper/test-regex.c:31,1
    - Dst: die
      Src: /src/git/t/helper/test-regex.c:35,1
    - Dst: regfree
      Src: /src/git/t/helper/test-regex.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: test_regex_bug
    functionSourceFile: /src/git/t/helper/test-regex.c
    functionUses: 0
    functionsReached:
    - regcomp
    - regfree
    - die
    - regexec
    linkageType: ''
    returnType: int
    signature: int test_regex_bug(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-regex.c:56,1
    - Dst: test_regex_bug
      Src: /src/git/t/helper/test-regex.c:58,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-regex.c:62,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-regex.c:78,1
    - Dst: die
      Src: /src/git/t/helper/test-regex.c:83,1
    - Dst: git_setup_gettext
      Src: /src/git/t/helper/test-regex.c:87,1
    - Dst: regcomp
      Src: /src/git/t/helper/test-regex.c:89,1
    - Dst: regerror
      Src: /src/git/t/helper/test-regex.c:94,1
    - Dst: die
      Src: /src/git/t/helper/test-regex.c:95,1
    - Dst: regexec
      Src: /src/git/t/helper/test-regex.c:100,1
    - Dst: regerror
      Src: /src/git/t/helper/test-regex.c:105,1
    - Dst: die
      Src: /src/git/t/helper/test-regex.c:106,1
    - Dst: regfree
      Src: /src/git/t/helper/test-regex.c:110,1
    - Dst: usage
      Src: /src/git/t/helper/test-regex.c:113,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 117
    functionName: cmd__regex
    functionSourceFile: /src/git/t/helper/test-regex.c
    functionUses: 0
    functionsReached:
    - die
    - regfree
    - git_setup_gettext
    - regerror
    - test_regex_bug
    - regexec
    - usage
    - strcmp
    - regcomp
    linkageType: ''
    returnType: int
    signature: int cmd__regex(int argc, const char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/helper/test-delete-gpgsig.c:20,1
    - Dst: strbuf_read
      Src: /src/git/t/helper/test-delete-gpgsig.c:21,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-delete-gpgsig.c:23,1
    - Dst: parse_signed_buffer
      Src: /src/git/t/helper/test-delete-gpgsig.c:24,1
    - Dst: fwrite
      Src: /src/git/t/helper/test-delete-gpgsig.c:25,1
    - Dst: memchr
      Src: /src/git/t/helper/test-delete-gpgsig.c:34,1
    - Dst: memcmp
      Src: /src/git/t/helper/test-delete-gpgsig.c:47,1
    - Dst: fwrite
      Src: /src/git/t/helper/test-delete-gpgsig.c:55,1
    - Dst: fflush
      Src: /src/git/t/helper/test-delete-gpgsig.c:60,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-delete-gpgsig.c:61,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 6
    functionDepth: 4
    functionLinenumber: 6
    functionLinenumberEnd: 63
    functionName: cmd__delete_gpgsig
    functionSourceFile: /src/git/t/helper/test-delete-gpgsig.c
    functionUses: 0
    functionsReached:
    - memchr
    - strbuf_read
    - strbuf_release
    - fwrite
    - strlen
    - fflush
    - strcmp
    - parse_signed_buffer
    - memcmp
    linkageType: ''
    returnType: int
    signature: int cmd__delete_gpgsig(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_init
      Src: /src/git/t/helper/test-repository.c:20,1
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:21,1
    - Dst: repo_set_hash_algo
      Src: /src/git/t/helper/test-repository.c:23,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/t/helper/test-repository.c:23,1
    - Dst: lookup_commit
      Src: /src/git/t/helper/test-repository.c:25,1
    - Dst: parse_commit_in_graph
      Src: /src/git/t/helper/test-repository.c:27,1
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:28,1
    - Dst: printf
      Src: /src/git/t/helper/test-repository.c:30,1
    - Dst: printf
      Src: /src/git/t/helper/test-repository.c:32,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-repository.c:32,1
    - Dst: printf
      Src: /src/git/t/helper/test-repository.c:33,1
    - Dst: repo_clear
      Src: /src/git/t/helper/test-repository.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - gitdir
    - worktree
    - commit_oid
    argTypes:
    - char*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 13
    functionDepth: 15
    functionLinenumber: 13
    functionLinenumberEnd: 36
    functionName: test_parse_commit_in_graph
    functionSourceFile: /src/git/t/helper/test-repository.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - repo_clear
    - repo_init
    - lookup_commit
    - repo_set_hash_algo
    - parse_commit_in_graph
    - printf
    - hash_algo_by_ptr
    linkageType: ''
    returnType: void
    signature: "void test_parse_commit_in_graph(const char *gitdir, const char *worktree,\n\t\t\t\t
      \      const struct object_id *commit_oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_init
      Src: /src/git/t/helper/test-repository.c:46,1
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:47,1
    - Dst: repo_set_hash_algo
      Src: /src/git/t/helper/test-repository.c:49,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/t/helper/test-repository.c:49,1
    - Dst: lookup_commit
      Src: /src/git/t/helper/test-repository.c:51,1
    - Dst: parse_commit_in_graph
      Src: /src/git/t/helper/test-repository.c:57,1
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:58,1
    - Dst: get_commit_tree_in_graph
      Src: /src/git/t/helper/test-repository.c:59,1
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:61,1
    - Dst: printf
      Src: /src/git/t/helper/test-repository.c:63,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-repository.c:63,1
    - Dst: repo_clear
      Src: /src/git/t/helper/test-repository.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - gitdir
    - worktree
    - commit_oid
    argTypes:
    - char*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 38
    functionDepth: 15
    functionLinenumber: 38
    functionLinenumberEnd: 66
    functionName: test_get_commit_tree_in_graph
    functionSourceFile: /src/git/t/helper/test-repository.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - get_commit_tree_in_graph
    - repo_clear
    - repo_init
    - lookup_commit
    - repo_set_hash_algo
    - parse_commit_in_graph
    - printf
    - hash_algo_by_ptr
    linkageType: ''
    returnType: void
    signature: "void test_get_commit_tree_in_graph(const char *gitdir,\n\t\t\t\t\t
      \ const char *worktree,\n\t\t\t\t\t  const struct object_id *commit_oid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:71,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-repository.c:72,1
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:75,1
    - Dst: parse_oid_hex_any
      Src: /src/git/t/helper/test-repository.c:76,1
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:77,1
    - Dst: test_parse_commit_in_graph
      Src: /src/git/t/helper/test-repository.c:78,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-repository.c:79,1
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:82,1
    - Dst: parse_oid_hex_any
      Src: /src/git/t/helper/test-repository.c:83,1
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:84,1
    - Dst: test_get_commit_tree_in_graph
      Src: /src/git/t/helper/test-repository.c:85,1
    - Dst: die
      Src: /src/git/t/helper/test-repository.c:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 68
    functionDepth: 16
    functionLinenumber: 68
    functionLinenumberEnd: 90
    functionName: cmd__repository
    functionSourceFile: /src/git/t/helper/test-repository.c
    functionUses: 0
    functionsReached:
    - die
    - test_get_commit_tree_in_graph
    - strcmp
    - parse_oid_hex_any
    - test_parse_commit_in_graph
    linkageType: ''
    returnType: int
    signature: int cmd__repository(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_hash_impl
      Src: /src/git/t/helper/test-sha1.c:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 7
    functionName: cmd__sha1
    functionSourceFile: /src/git/t/helper/test-sha1.c
    functionUses: 0
    functionsReached:
    - cmd_hash_impl
    linkageType: ''
    returnType: int
    signature: int cmd__sha1(int ac, const char **av)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: cmd__sha1_is_sha1dc
    functionSourceFile: /src/git/t/helper/test-sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmd__sha1_is_sha1dc(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_hash_impl
      Src: /src/git/t/helper/test-sha1.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: cmd__sha1_unsafe
    functionSourceFile: /src/git/t/helper/test-sha1.c
    functionUses: 0
    functionsReached:
    - cmd_hash_impl
    linkageType: ''
    returnType: int
    signature: int cmd__sha1_unsafe(int ac, const char **av)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: minstd_rand
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t minstd_rand(uint32_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-mergesort.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - struct line*
    - struct line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: compare_strings
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare_strings(const struct line *x, const struct line *y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read
      Src: /src/git/t/helper/test-mergesort.c:34,1
    - Dst: strbuf_setlen
      Src: /src/git/t/helper/test-mergesort.c:41,1
    - Dst: mem_pool_init
      Src: /src/git/t/helper/test-mergesort.c:43,1
    - Dst: strchr
      Src: /src/git/t/helper/test-mergesort.c:46,1
    - Dst: mem_pool_alloc
      Src: /src/git/t/helper/test-mergesort.c:47,1
    - Dst: sort_lines
      Src: /src/git/t/helper/test-mergesort.c:58,1
    - Dst: puts
      Src: /src/git/t/helper/test-mergesort.c:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 65
    functionName: sort_stdin
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - sort_lines
    - strbuf_read
    - mem_pool_init
    - puts
    - strbuf_setlen
    - strchr
    - mem_pool_alloc
    linkageType: ''
    returnType: int
    signature: int sort_stdin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - arr
    - n
    - m
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: dist_sawtooth
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dist_sawtooth(int *arr, int n, int m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minstd_rand
      Src: /src/git/t/helper/test-mergesort.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - arr
    - n
    - m
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: dist_rand
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - minstd_rand
    linkageType: ''
    returnType: void
    signature: void dist_rand(int *arr, int n, int m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - arr
    - n
    - m
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: dist_stagger
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dist_stagger(int *arr, int n, int m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - arr
    - n
    - m
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: dist_plateau
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dist_plateau(int *arr, int n, int m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minstd_rand
      Src: /src/git/t/helper/test-mergesort.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - arr
    - n
    - m
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: dist_shuffle
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - minstd_rand
    linkageType: ''
    returnType: void
    signature: void dist_shuffle(int *arr, int n, int m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: DIST
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIST(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-mergesort.c:120,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-mergesort.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: get_dist_by_name
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strcmp
    linkageType: ''
    returnType: struct dist
    signature: struct dist *get_dist_by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: mode_copy
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mode_copy(int *arr UNUSED, int n UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/git/t/helper/test-mergesort.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - arr
    - n
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: mode_reverse
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: void
    signature: void mode_reverse(int *arr, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_reverse
      Src: /src/git/t/helper/test-mergesort.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arr
    - n
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: mode_reverse_1st_half
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - mode_reverse
    linkageType: ''
    returnType: void
    signature: void mode_reverse_1st_half(int *arr, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_reverse
      Src: /src/git/t/helper/test-mergesort.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arr
    - n
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: mode_reverse_2nd_half
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - mode_reverse
    linkageType: ''
    returnType: void
    signature: void mode_reverse_2nd_half(int *arr, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - av
    - bv
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: compare_ints
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_ints(const void *av, const void *bv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/t/helper/test-mergesort.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arr
    - n
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: mode_sort
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - QSORT
    linkageType: ''
    returnType: void
    signature: void mode_sort(int *arr, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - arr
    - n
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: mode_dither
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mode_dither(int *arr, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_ARRAY
      Src: /src/git/t/helper/test-mergesort.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - arr
    - n
    - tmp
    argTypes:
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: unriffle
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - COPY_ARRAY
    linkageType: ''
    returnType: void
    signature: void unriffle(int *arr, int n, int *tmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unriffle
      Src: /src/git/t/helper/test-mergesort.c:183,1
    - Dst: unriffle_recursively
      Src: /src/git/t/helper/test-mergesort.c:184,1
    - Dst: unriffle_recursively
      Src: /src/git/t/helper/test-mergesort.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arr
    - n
    - tmp
    argTypes:
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: unriffle_recursively
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 1
    functionsReached:
    - unriffle
    - unriffle_recursively
    linkageType: ''
    returnType: void
    signature: void unriffle_recursively(int *arr, int n, int *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/t/helper/test-mergesort.c:192,1
    - Dst: unriffle_recursively
      Src: /src/git/t/helper/test-mergesort.c:193,1
    - Dst: free
      Src: /src/git/t/helper/test-mergesort.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - arr
    - n
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: mode_unriffle
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - unriffle_recursively
    - free
    linkageType: ''
    returnType: void
    signature: void mode_unriffle(int *arr, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: prev_pow2
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int prev_pow2(unsigned int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prev_pow2
      Src: /src/git/t/helper/test-mergesort.c:208,1
    - Dst: unriffle
      Src: /src/git/t/helper/test-mergesort.c:210,1
    - Dst: unriffle_recursively_skewed
      Src: /src/git/t/helper/test-mergesort.c:211,1
    - Dst: unriffle_recursively_skewed
      Src: /src/git/t/helper/test-mergesort.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arr
    - n
    - tmp
    argTypes:
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: unriffle_recursively_skewed
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 1
    functionsReached:
    - unriffle
    - unriffle_recursively_skewed
    - prev_pow2
    linkageType: ''
    returnType: void
    signature: void unriffle_recursively_skewed(int *arr, int n, int *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/t/helper/test-mergesort.c:219,1
    - Dst: unriffle_recursively_skewed
      Src: /src/git/t/helper/test-mergesort.c:220,1
    - Dst: free
      Src: /src/git/t/helper/test-mergesort.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - arr
    - n
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: mode_unriffle_skewed
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - unriffle_recursively_skewed
    - free
    linkageType: ''
    returnType: void
    signature: void mode_unriffle_skewed(int *arr, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: MODE
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODE(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-mergesort.c:243,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-mergesort.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: get_mode_by_name
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strcmp
    linkageType: ''
    returnType: struct mode
    signature: struct mode *get_mode_by_name(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_dist_by_name
      Src: /src/git/t/helper/test-mergesort.c:259,1
    - Dst: get_mode_by_name
      Src: /src/git/t/helper/test-mergesort.c:260,1
    - Dst: strtol
      Src: /src/git/t/helper/test-mergesort.c:261,1
    - Dst: strtol
      Src: /src/git/t/helper/test-mergesort.c:262,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/t/helper/test-mergesort.c:266,1
    - Dst: struct dist*::fn
      Src: /src/git/t/helper/test-mergesort.c:267,1
    - Dst: struct mode*::fn
      Src: /src/git/t/helper/test-mergesort.c:268,1
    - Dst: printf
      Src: /src/git/t/helper/test-mergesort.c:270,1
    - Dst: free
      Src: /src/git/t/helper/test-mergesort.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 273
    functionName: generate
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 1
    functionsReached:
    - get_dist_by_name
    - printf
    - struct mode*::fn
    - ALLOC_ARRAY
    - get_mode_by_name
    - free
    - strtol
    - struct dist*::fn
    linkageType: ''
    returnType: int
    signature: int generate(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - an
    - bn
    argTypes:
    - struct number*
    - struct number*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: compare_numbers
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_numbers(const struct number *an, const struct number *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/t/helper/test-mergesort.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct number*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: clear_numbers
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void clear_numbers(struct number *list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/t/helper/test-mergesort.c:313,1
    - Dst: struct dist*::fn
      Src: /src/git/t/helper/test-mergesort.c:314,1
    - Dst: struct mode*::fn
      Src: /src/git/t/helper/test-mergesort.c:315,1
    - Dst: xmalloc
      Src: /src/git/t/helper/test-mergesort.c:317,1
    - Dst: sort_numbers
      Src: /src/git/t/helper/test-mergesort.c:326,1
    - Dst: QSORT
      Src: /src/git/t/helper/test-mergesort.c:328,1
    - Dst: printf
      Src: /src/git/t/helper/test-mergesort.c:349,1
    - Dst: clear_numbers
      Src: /src/git/t/helper/test-mergesort.c:353,1
    - Dst: free
      Src: /src/git/t/helper/test-mergesort.c:354,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - dist
    - mode
    - n
    - m
    argTypes:
    - struct dist*
    - struct mode*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 357
    functionName: test
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 5
    functionsReached:
    - printf
    - struct mode*::fn
    - clear_numbers
    - ALLOC_ARRAY
    - xmalloc
    - QSORT
    - sort_numbers
    - free
    - struct dist*::fn
    linkageType: ''
    returnType: int
    signature: int test(const struct dist *dist, const struct mode *mode, int n, int
      m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_tests
      Src: /src/git/t/helper/test-mergesort.c:368,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-mergesort.c:368,1
    - Dst: printf
      Src: /src/git/t/helper/test-mergesort.c:369,1
    - Dst: strtol
      Src: /src/git/t/helper/test-mergesort.c:373,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-mergesort.c:374,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-mergesort.c:375,1
    - Dst: test
      Src: /src/git/t/helper/test-mergesort.c:377,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 384
    functionName: run_tests
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - test
    - strtol
    - run_tests
    - printf
    linkageType: ''
    returnType: int
    signature: int run_tests(int argc, const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-mergesort.c:391,1
    - Dst: generate
      Src: /src/git/t/helper/test-mergesort.c:392,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-mergesort.c:393,1
    - Dst: sort_stdin
      Src: /src/git/t/helper/test-mergesort.c:394,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-mergesort.c:395,1
    - Dst: run_tests
      Src: /src/git/t/helper/test-mergesort.c:396,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-mergesort.c:397,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-mergesort.c:398,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-mergesort.c:399,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-mergesort.c:400,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-mergesort.c:401,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-mergesort.c:402,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-mergesort.c:403,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/helper/test-mergesort.c:404,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-mergesort.c:405,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-mergesort.c:406,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 408
    functionName: cmd__mergesort
    functionSourceFile: /src/git/t/helper/test-mergesort.c
    functionUses: 0
    functionsReached:
    - sort_stdin
    - ARRAY_SIZE
    - generate
    - strcmp
    - run_tests
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd__mergesort(int argc, const char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-bundle-uri.c:27,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-bundle-uri.c:37,1
    - Dst: init_bundle_list
      Src: /src/git/t/helper/test-bundle-uri.c:40,1
    - Dst: xstrdup
      Src: /src/git/t/helper/test-bundle-uri.c:42,1
    - Dst: fopen
      Src: /src/git/t/helper/test-bundle-uri.c:48,1
    - Dst: die
      Src: /src/git/t/helper/test-bundle-uri.c:50,1
    - Dst: strbuf_getline
      Src: /src/git/t/helper/test-bundle-uri.c:51,1
    - Dst: bundle_uri_parse_line
      Src: /src/git/t/helper/test-bundle-uri.c:52,1
    - Dst: error
      Src: /src/git/t/helper/test-bundle-uri.c:53,1
    - Dst: fclose
      Src: /src/git/t/helper/test-bundle-uri.c:55,1
    - Dst: bundle_uri_parse_config_format
      Src: /src/git/t/helper/test-bundle-uri.c:61,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-bundle-uri.c:64,1
    - Dst: print_bundle_list
      Src: /src/git/t/helper/test-bundle-uri.c:66,1
    - Dst: clear_bundle_list
      Src: /src/git/t/helper/test-bundle-uri.c:68,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-bundle-uri.c:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - argc
    - argv
    - mode
    argTypes:
    - int
    - char**
    - enum input_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 15
    functionDepth: 13
    functionLinenumber: 15
    functionLinenumberEnd: 74
    functionName: cmd__bundle_uri_parse
    functionSourceFile: /src/git/t/helper/test-bundle-uri.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - parse_options
    - OPT_END
    - die
    - strbuf_release
    - usage_with_options
    - fopen
    - init_bundle_list
    - bundle_uri_parse_config_format
    - bundle_uri_parse_line
    - strbuf_getline
    - print_bundle_list
    - clear_bundle_list
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int cmd__bundle_uri_parse(int argc, const char **argv, enum input_mode
      mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_get
      Src: /src/git/t/helper/test-bundle-uri.c:85,1
    - Dst: die
      Src: /src/git/t/helper/test-bundle-uri.c:88,1
    - Dst: _
      Src: /src/git/t/helper/test-bundle-uri.c:88,1
    - Dst: die
      Src: /src/git/t/helper/test-bundle-uri.c:89,1
    - Dst: _
      Src: /src/git/t/helper/test-bundle-uri.c:89,1
    - Dst: transport_get
      Src: /src/git/t/helper/test-bundle-uri.c:92,1
    - Dst: transport_get_remote_bundle_uri
      Src: /src/git/t/helper/test-bundle-uri.c:93,1
    - Dst: error
      Src: /src/git/t/helper/test-bundle-uri.c:94,1
    - Dst: _
      Src: /src/git/t/helper/test-bundle-uri.c:94,1
    - Dst: print_bundle_list
      Src: /src/git/t/helper/test-bundle-uri.c:99,1
    - Dst: transport_disconnect
      Src: /src/git/t/helper/test-bundle-uri.c:102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 15
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: cmd_ls_remote
    functionSourceFile: /src/git/t/helper/test-bundle-uri.c
    functionUses: 0
    functionsReached:
    - error
    - transport_disconnect
    - transport_get
    - die
    - transport_get_remote_bundle_uri
    - remote_get
    - _
    - print_bundle_list
    linkageType: ''
    returnType: int
    signature: int cmd_ls_remote(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/t/helper/test-bundle-uri.c:114,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-bundle-uri.c:117,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bundle-uri.c:123,1
    - Dst: cmd__bundle_uri_parse
      Src: /src/git/t/helper/test-bundle-uri.c:124,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bundle-uri.c:125,1
    - Dst: cmd__bundle_uri_parse
      Src: /src/git/t/helper/test-bundle-uri.c:126,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bundle-uri.c:127,1
    - Dst: cmd_ls_remote
      Src: /src/git/t/helper/test-bundle-uri.c:128,1
    - Dst: error
      Src: /src/git/t/helper/test-bundle-uri.c:129,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-bundle-uri.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 14
    functionLinenumber: 107
    functionLinenumberEnd: 133
    functionName: cmd__bundle_uri
    functionSourceFile: /src/git/t/helper/test-bundle-uri.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - cmd_ls_remote
    - strcmp
    - cmd__bundle_uri_parse
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__bundle_uri(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-dump-cache-tree.c:15,1
    - Dst: printf
      Src: /src/git/t/helper/test-dump-cache-tree.c:18,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-dump-cache-tree.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - it
    - pfx
    - x
    argTypes:
    - struct cache_tree*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: dump_one
    functionSourceFile: /src/git/t/helper/test-dump-cache-tree.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_one(struct cache_tree *it, const char *pfx, const char *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dump_one
      Src: /src/git/t/helper/test-dump-cache-tree.c:36,1
    - Dst: dump_one
      Src: /src/git/t/helper/test-dump-cache-tree.c:37,1
    - Dst: dump_one
      Src: /src/git/t/helper/test-dump-cache-tree.c:40,1
    - Dst: oideq
      Src: /src/git/t/helper/test-dump-cache-tree.c:41,1
    - Dst: dump_one
      Src: /src/git/t/helper/test-dump-cache-tree.c:45,1
    - Dst: cache_tree_sub
      Src: /src/git/t/helper/test-dump-cache-tree.c:55,1
    - Dst: xsnprintf
      Src: /src/git/t/helper/test-dump-cache-tree.c:56,1
    - Dst: dump_cache_tree
      Src: /src/git/t/helper/test-dump-cache-tree.c:57,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - it
    - ref
    - pfx
    argTypes:
    - struct cache_tree*
    - struct cache_tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 61
    functionName: dump_cache_tree
    functionSourceFile: /src/git/t/helper/test-dump-cache-tree.c
    functionUses: 1
    functionsReached:
    - dump_one
    - dump_cache_tree
    - xsnprintf
    - cache_tree_sub
    - oideq
    linkageType: ''
    returnType: int
    signature: "int dump_cache_tree(struct cache_tree *it,\n\t\t\t   struct cache_tree
      *ref,\n\t\t\t   const char *pfx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_tree
      Src: /src/git/t/helper/test-dump-cache-tree.c:66,1
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-dump-cache-tree.c:69,1
    - Dst: repo_read_index
      Src: /src/git/t/helper/test-dump-cache-tree.c:70,1
    - Dst: die
      Src: /src/git/t/helper/test-dump-cache-tree.c:71,1
    - Dst: cache_tree_update
      Src: /src/git/t/helper/test-dump-cache-tree.c:74,1
    - Dst: dump_cache_tree
      Src: /src/git/t/helper/test-dump-cache-tree.c:75,1
    - Dst: cache_tree_free
      Src: /src/git/t/helper/test-dump-cache-tree.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 14
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: cmd__dump_cache_tree
    functionSourceFile: /src/git/t/helper/test-dump-cache-tree.c
    functionUses: 0
    functionsReached:
    - die
    - setup_git_directory
    - repo_read_index
    - cache_tree
    - cache_tree_update
    - cache_tree_free
    - dump_cache_tree
    linkageType: ''
    returnType: int
    signature: int cmd__dump_cache_tree(int ac UNUSED, const char **av UNUSED)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unsafe_hash_algo
      Src: /src/git/t/helper/test-hash.c:13,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-hash.c:16,1
    - Dst: strtoul
      Src: /src/git/t/helper/test-hash.c:19,1
    - Dst: malloc
      Src: /src/git/t/helper/test-hash.c:25,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-hash.c:26,1
    - Dst: die
      Src: /src/git/t/helper/test-hash.c:29,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/t/helper/test-hash.c:32,1
    - Dst: xread
      Src: /src/git/t/helper/test-hash.c:40,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-hash.c:44,1
    - Dst: git_hash_update
      Src: /src/git/t/helper/test-hash.c:51,1
    - Dst: git_hash_final
      Src: /src/git/t/helper/test-hash.c:53,1
    - Dst: fwrite
      Src: /src/git/t/helper/test-hash.c:56,1
    - Dst: puts
      Src: /src/git/t/helper/test-hash.c:58,1
    - Dst: hash_to_hex_algop
      Src: /src/git/t/helper/test-hash.c:58,1
    - Dst: free
      Src: /src/git/t/helper/test-hash.c:59,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - ac
    - av
    - algo
    - unsafe
    argTypes:
    - int
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 4
    functionDepth: 3
    functionLinenumber: 4
    functionLinenumberEnd: 61
    functionName: cmd_hash_impl
    functionSourceFile: /src/git/t/helper/test-hash.c
    functionUses: 3
    functionsReached:
    - die
    - git_hash_final
    - malloc
    - fwrite
    - puts
    - die_errno
    - hash_to_hex_algop
    - xread
    - strcmp
    - free
    - unsafe_hash_algo
    - git_hash_update
    - struct git_hash_algo*::init_fn
    - fprintf
    - strtoul
    linkageType: ''
    returnType: int
    signature: int cmd_hash_impl(int ac, const char **av, int algo, int unsafe)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-parse-options.c:28,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-parse-options.c:30,1
    - Dst: error
      Src: /src/git/t/helper/test-parse-options.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: mode34_callback
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - error
    - strcmp
    linkageType: ''
    returnType: int
    signature: int mode34_callback(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/helper/test-parse-options.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: length_callback
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int length_callback(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/t/helper/test-parse-options.c:52,1
    - Dst: strtol
      Src: /src/git/t/helper/test-parse-options.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: number_callback
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - strtol
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: int number_callback(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/t/helper/test-parse-options.c:65,1
    - Dst: strchr
      Src: /src/git/t/helper/test-parse-options.c:68,1
    - Dst: die
      Src: /src/git/t/helper/test-parse-options.c:70,1
    - Dst: strbuf_add
      Src: /src/git/t/helper/test-parse-options.c:71,1
    - Dst: string_list_insert
      Src: /src/git/t/helper/test-parse-options.c:72,1
    - Dst: strbuf_detach
      Src: /src/git/t/helper/test-parse-options.c:72,1
    - Dst: die
      Src: /src/git/t/helper/test-parse-options.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: collect_expect
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - die
    - string_list_insert
    - strchr
    - strbuf_detach
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int collect_expect(const struct option *opt, const char *arg, int unset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/t/helper/test-parse-options.c:79,1
    - Dst: va_start
      Src: /src/git/t/helper/test-parse-options.c:86,1
    - Dst: strbuf_vaddf
      Src: /src/git/t/helper/test-parse-options.c:87,1
    - Dst: va_end
      Src: /src/git/t/helper/test-parse-options.c:88,1
    - Dst: printf
      Src: /src/git/t/helper/test-parse-options.c:91,1
    - Dst: strchr
      Src: /src/git/t/helper/test-parse-options.c:93,1
    - Dst: die
      Src: /src/git/t/helper/test-parse-options.c:95,1
    - Dst: string_list_lookup
      Src: /src/git/t/helper/test-parse-options.c:97,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-parse-options.c:102,1
    - Dst: printf
      Src: /src/git/t/helper/test-parse-options.c:103,1
    - Dst: printf
      Src: /src/git/t/helper/test-parse-options.c:104,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-parse-options.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - expect
    - status
    - fmt
    argTypes:
    - struct string_list*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 110
    functionName: show
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 1
    functionsReached:
    - string_list_lookup
    - strbuf_release
    - strbuf_vaddf
    - die
    - strchr
    - va_end
    - strcmp
    - va_start
    - printf
    - format
    linkageType: ''
    returnType: void
    signature: void show(struct string_list *expect, int *status, const char *fmt,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-parse-options.c:127,1
    - Dst: OPT_BOOL
      Src: /src/git/t/helper/test-parse-options.c:128,1
    - Dst: OPT_COUNTUP
      Src: /src/git/t/helper/test-parse-options.c:139,1
    - Dst: OPT_BIT
      Src: /src/git/t/helper/test-parse-options.c:140,1
    - Dst: OPT_NEGBIT
      Src: /src/git/t/helper/test-parse-options.c:142,1
    - Dst: OPT_GROUP
      Src: /src/git/t/helper/test-parse-options.c:143,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-parse-options.c:144,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-parse-options.c:145,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-parse-options.c:146,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/t/helper/test-parse-options.c:147,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/t/helper/test-parse-options.c:148,1
    - Dst: OPT_SET_INT
      Src: /src/git/t/helper/test-parse-options.c:149,1
    - Dst: OPT_CMDMODE
      Src: /src/git/t/helper/test-parse-options.c:150,1
    - Dst: OPT_CMDMODE
      Src: /src/git/t/helper/test-parse-options.c:151,1
    - Dst: OPT_CALLBACK
      Src: /src/git/t/helper/test-parse-options.c:162,1
    - Dst: OPT_FILENAME
      Src: /src/git/t/helper/test-parse-options.c:164,1
    - Dst: OPT_GROUP
      Src: /src/git/t/helper/test-parse-options.c:165,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-parse-options.c:166,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-parse-options.c:167,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-parse-options.c:168,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-parse-options.c:169,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/t/helper/test-parse-options.c:170,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/t/helper/test-parse-options.c:171,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/t/helper/test-parse-options.c:173,1
    - Dst: OPT_GROUP
      Src: /src/git/t/helper/test-parse-options.c:174,1
    - Dst: OPT_NUMBER_CALLBACK
      Src: /src/git/t/helper/test-parse-options.c:175,1
    - Dst: OPT_GROUP
      Src: /src/git/t/helper/test-parse-options.c:201,1
    - Dst: OPT__ABBREV
      Src: /src/git/t/helper/test-parse-options.c:202,1
    - Dst: OPT__VERBOSE
      Src: /src/git/t/helper/test-parse-options.c:203,1
    - Dst: OPT__DRY_RUN
      Src: /src/git/t/helper/test-parse-options.c:204,1
    - Dst: OPT__QUIET
      Src: /src/git/t/helper/test-parse-options.c:205,1
    - Dst: OPT_CALLBACK
      Src: /src/git/t/helper/test-parse-options.c:206,1
    - Dst: OPT_GROUP
      Src: /src/git/t/helper/test-parse-options.c:209,1
    - Dst: OPT_STRING
      Src: /src/git/t/helper/test-parse-options.c:210,1
    - Dst: OPT_ALIAS
      Src: /src/git/t/helper/test-parse-options.c:211,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-parse-options.c:212,1
    - Dst: trace2_cmd_name
      Src: /src/git/t/helper/test-parse-options.c:216,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-parse-options.c:218,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:223,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:226,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:227,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:228,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:229,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:230,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:231,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:232,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:233,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:234,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:235,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:236,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:237,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:240,1
    - Dst: show
      Src: /src/git/t/helper/test-parse-options.c:243,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-parse-options.c:246,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-parse-options.c:247,1
    - Dst: free
      Src: /src/git/t/helper/test-parse-options.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 112
    functionDepth: 13
    functionLinenumber: 112
    functionLinenumberEnd: 251
    functionName: cmd__parse_options
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT__DRY_RUN
    - OPT_UNSIGNED
    - OPT_BOOL
    - free
    - OPT_ALIAS
    - OPT_END
    - OPT_GROUP
    - OPT_BIT
    - OPT_NOOP_NOARG
    - OPT_CMDMODE
    - trace2_cmd_name
    - OPT_STRING_LIST
    - OPT_INTEGER
    - OPT__QUIET
    - string_list_clear
    - OPT_FILENAME
    - OPT__ABBREV
    - OPT_SET_INT
    - OPT_SET_INT_F
    - OPT__VERBOSE
    - OPT_COUNTUP
    - OPT_NEGBIT
    - OPT_NUMBER_CALLBACK
    - show
    - OPT_STRING
    - OPT_CALLBACK
    linkageType: ''
    returnType: int
    signature: int cmd__parse_options(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-parse-options.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: print_args
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_args(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-parse-options.c:269,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-parse-options.c:270,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-parse-options.c:273,1
    - Dst: printf
      Src: /src/git/t/helper/test-parse-options.c:275,1
    - Dst: print_args
      Src: /src/git/t/helper/test-parse-options.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - argc
    - argv
    - test_flags
    argTypes:
    - int
    - char**
    - enum parse_opt_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 260
    functionDepth: 13
    functionLinenumber: 260
    functionLinenumberEnd: 279
    functionName: parse_options_flags__cmd
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - print_args
    - printf
    - OPT_INTEGER
    linkageType: ''
    returnType: int
    signature: "int parse_options_flags__cmd(int argc, const char **argv,\n\t\t\t\t
      \   enum parse_opt_flags test_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_options
      Src: /src/git/t/helper/test-parse-options.c:312,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-parse-options.c:315,1
    - Dst: error
      Src: /src/git/t/helper/test-parse-options.c:316,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-parse-options.c:317,1
    - Dst: parse_options_flags__cmd
      Src: /src/git/t/helper/test-parse-options.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 305
    functionDepth: 14
    functionLinenumber: 305
    functionLinenumberEnd: 321
    functionName: cmd__parse_options_flags
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - parse_options_flags__cmd
    - strcmp
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__parse_options_flags(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-parse-options.c:326,1
    - Dst: print_args
      Src: /src/git/t/helper/test-parse-options.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: subcmd_one
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - print_args
    - printf
    linkageType: ''
    returnType: int
    signature: "int subcmd_one(int argc, const char **argv, const char *prefix UNUSED,\n\t\t
      \     struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-parse-options.c:334,1
    - Dst: print_args
      Src: /src/git/t/helper/test-parse-options.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: subcmd_two
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - print_args
    - printf
    linkageType: ''
    returnType: int
    signature: "int subcmd_two(int argc, const char **argv, const char *prefix UNUSED,\n\t\t
      \     struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/t/helper/test-parse-options.c:350,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/t/helper/test-parse-options.c:351,1
    - Dst: OPT_INTEGER
      Src: /src/git/t/helper/test-parse-options.c:352,1
    - Dst: OPT_END
      Src: /src/git/t/helper/test-parse-options.c:353,1
    - Dst: parse_options
      Src: /src/git/t/helper/test-parse-options.c:358,1
    - Dst: printf
      Src: /src/git/t/helper/test-parse-options.c:360,1
    - Dst: fn
      Src: /src/git/t/helper/test-parse-options.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - argc
    - argv
    - test_flags
    argTypes:
    - int
    - char**
    - enum parse_opt_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 339
    functionDepth: 13
    functionLinenumber: 339
    functionLinenumberEnd: 363
    functionName: parse_subcommand__cmd
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - fn
    - OPT_SUBCOMMAND
    - printf
    - OPT_INTEGER
    linkageType: ''
    returnType: int
    signature: "int parse_subcommand__cmd(int argc, const char **argv,\n\t\t\t\t enum
      parse_opt_flags test_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_options
      Src: /src/git/t/helper/test-parse-options.c:372,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-parse-options.c:375,1
    - Dst: error
      Src: /src/git/t/helper/test-parse-options.c:376,1
    - Dst: usage_with_options
      Src: /src/git/t/helper/test-parse-options.c:377,1
    - Dst: parse_subcommand__cmd
      Src: /src/git/t/helper/test-parse-options.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 365
    functionDepth: 14
    functionLinenumber: 365
    functionLinenumberEnd: 381
    functionName: cmd__parse_subcommand
    functionSourceFile: /src/git/t/helper/test-parse-options.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - strcmp
    - parse_subcommand__cmd
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: int cmd__parse_subcommand(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bloom_key_fill
      Src: /src/git/t/helper/test-bloom.c:15,1
    - Dst: strlen
      Src: /src/git/t/helper/test-bloom.c:15,1
    - Dst: printf
      Src: /src/git/t/helper/test-bloom.c:16,1
    - Dst: printf
      Src: /src/git/t/helper/test-bloom.c:18,1
    - Dst: printf
      Src: /src/git/t/helper/test-bloom.c:19,1
    - Dst: add_key_to_filter
      Src: /src/git/t/helper/test-bloom.c:20,1
    - Dst: bloom_key_clear
      Src: /src/git/t/helper/test-bloom.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - filter
    argTypes:
    - char*
    - struct bloom_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: add_string_to_filter
    functionSourceFile: /src/git/t/helper/test-bloom.c
    functionUses: 0
    functionsReached:
    - bloom_key_clear
    - strlen
    - bloom_key_fill
    - add_key_to_filter
    - printf
    linkageType: ''
    returnType: void
    signature: void add_string_to_filter(const char *data, struct bloom_filter *filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/helper/test-bloom.c:26,1
    - Dst: printf
      Src: /src/git/t/helper/test-bloom.c:29,1
    - Dst: printf
      Src: /src/git/t/helper/test-bloom.c:30,1
    - Dst: printf
      Src: /src/git/t/helper/test-bloom.c:32,1
    - Dst: printf
      Src: /src/git/t/helper/test-bloom.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct bloom_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: print_bloom_filter
    functionSourceFile: /src/git/t/helper/test-bloom.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_bloom_filter(struct bloom_filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit
      Src: /src/git/t/helper/test-bloom.c:40,1
    - Dst: get_or_compute_bloom_filter
      Src: /src/git/t/helper/test-bloom.c:41,1
    - Dst: print_bloom_filter
      Src: /src/git/t/helper/test-bloom.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - commit_oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 10
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: get_bloom_filter_for_commit
    functionSourceFile: /src/git/t/helper/test-bloom.c
    functionUses: 0
    functionsReached:
    - lookup_commit
    - get_or_compute_bloom_filter
    - print_bloom_filter
    linkageType: ''
    returnType: void
    signature: void get_bloom_filter_for_commit(const struct object_id *commit_oid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-bloom.c:55,1
    - Dst: usage
      Src: /src/git/t/helper/test-bloom.c:58,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bloom.c:60,1
    - Dst: usage
      Src: /src/git/t/helper/test-bloom.c:63,1
    - Dst: test_bloom_murmur3_seeded
      Src: /src/git/t/helper/test-bloom.c:64,1
    - Dst: strlen
      Src: /src/git/t/helper/test-bloom.c:64,1
    - Dst: printf
      Src: /src/git/t/helper/test-bloom.c:65,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bloom.c:68,1
    - Dst: test_bloom_murmur3_seeded
      Src: /src/git/t/helper/test-bloom.c:70,1
    - Dst: printf
      Src: /src/git/t/helper/test-bloom.c:71,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bloom.c:74,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/t/helper/test-bloom.c:78,1
    - Dst: usage
      Src: /src/git/t/helper/test-bloom.c:81,1
    - Dst: add_string_to_filter
      Src: /src/git/t/helper/test-bloom.c:84,1
    - Dst: print_bloom_filter
      Src: /src/git/t/helper/test-bloom.c:88,1
    - Dst: free
      Src: /src/git/t/helper/test-bloom.c:89,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-bloom.c:92,1
    - Dst: usage
      Src: /src/git/t/helper/test-bloom.c:96,1
    - Dst: parse_oid_hex
      Src: /src/git/t/helper/test-bloom.c:97,1
    - Dst: die
      Src: /src/git/t/helper/test-bloom.c:98,1
    - Dst: init_bloom_filters
      Src: /src/git/t/helper/test-bloom.c:99,1
    - Dst: get_bloom_filter_for_commit
      Src: /src/git/t/helper/test-bloom.c:100,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 53
    functionDepth: 14
    functionLinenumber: 53
    functionLinenumberEnd: 104
    functionName: cmd__bloom
    functionSourceFile: /src/git/t/helper/test-bloom.c
    functionUses: 0
    functionsReached:
    - die
    - setup_git_directory
    - print_bloom_filter
    - usage
    - free
    - strlen
    - parse_oid_hex
    - strcmp
    - add_string_to_filter
    - get_bloom_filter_for_commit
    - test_bloom_murmur3_seeded
    - CALLOC_ARRAY
    - init_bloom_filters
    - printf
    linkageType: ''
    returnType: int
    signature: int cmd__bloom(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/git/t/helper/test-mktemp.c:13,1
    - Dst: xmkstemp
      Src: /src/git/t/helper/test-mktemp.c:16,1
    - Dst: close
      Src: /src/git/t/helper/test-mktemp.c:18,1
    - Dst: free
      Src: /src/git/t/helper/test-mktemp.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 7
    functionDepth: 2
    functionLinenumber: 7
    functionLinenumberEnd: 21
    functionName: cmd__mktemp
    functionSourceFile: /src/git/t/helper/test-mktemp.c
    functionUses: 0
    functionsReached:
    - close
    - free
    - usage
    - xmkstemp
    linkageType: ''
    returnType: int
    signature: int cmd__mktemp(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-pcre2-config.c:6,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 11
    functionName: cmd__pcre2_config
    functionSourceFile: /src/git/t/helper/test-pcre2-config.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmd__pcre2_config(int argc, const char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/helper/test-delta.c:26,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-delta.c:26,1
    - Dst: usage
      Src: /src/git/t/helper/test-delta.c:27,1
    - Dst: strbuf_read_file
      Src: /src/git/t/helper/test-delta.c:29,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-delta.c:30,1
    - Dst: strbuf_read_file
      Src: /src/git/t/helper/test-delta.c:31,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-delta.c:32,1
    - Dst: diff_delta
      Src: /src/git/t/helper/test-delta.c:35,1
    - Dst: patch_delta
      Src: /src/git/t/helper/test-delta.c:39,1
    - Dst: die
      Src: /src/git/t/helper/test-delta.c:43,1
    - Dst: xopen
      Src: /src/git/t/helper/test-delta.c:45,1
    - Dst: write_in_full
      Src: /src/git/t/helper/test-delta.c:46,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-delta.c:47,1
    - Dst: close
      Src: /src/git/t/helper/test-delta.c:48,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-delta.c:49,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-delta.c:51,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-delta.c:52,1
    - Dst: free
      Src: /src/git/t/helper/test-delta.c:53,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 19
    functionDepth: 10
    functionLinenumber: 19
    functionLinenumberEnd: 56
    functionName: cmd__delta
    functionSourceFile: /src/git/t/helper/test-delta.c
    functionUses: 0
    functionsReached:
    - xopen
    - strbuf_release
    - die
    - strbuf_read_file
    - die_errno
    - patch_delta
    - usage
    - free
    - close
    - strcmp
    - diff_delta
    - write_in_full
    linkageType: ''
    returnType: int
    signature: int cmd__delta(int argc, const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/t/helper/test-reach.c:19,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-reach.c:19,1
    - Dst: string_list_sort
      Src: /src/git/t/helper/test-reach.c:23,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:26,1
    - Dst: string_list_clear
      Src: /src/git/t/helper/test-reach.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 29
    functionName: print_sorted_commit_ids
    functionSourceFile: /src/git/t/helper/test-reach.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - oid_to_hex
    - string_list_sort
    - string_list_append
    - printf
    linkageType: ''
    returnType: void
    signature: void print_sorted_commit_ids(struct commit_list *list)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory
      Src: /src/git/t/helper/test-reach.c:42,1
    - Dst: exit
      Src: /src/git/t/helper/test-reach.c:45,1
    - Dst: strbuf_getline
      Src: /src/git/t/helper/test-reach.c:50,1
    - Dst: repo_get_oid_committish
      Src: /src/git/t/helper/test-reach.c:58,1
    - Dst: die
      Src: /src/git/t/helper/test-reach.c:59,1
    - Dst: parse_object
      Src: /src/git/t/helper/test-reach.c:61,1
    - Dst: deref_tag
      Src: /src/git/t/helper/test-reach.c:62,1
    - Dst: die
      Src: /src/git/t/helper/test-reach.c:65,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-reach.c:66,1
    - Dst: object_as_type
      Src: /src/git/t/helper/test-reach.c:68,1
    - Dst: die
      Src: /src/git/t/helper/test-reach.c:71,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-reach.c:72,1
    - Dst: oidcpy
      Src: /src/git/t/helper/test-reach.c:76,1
    - Dst: oidcpy
      Src: /src/git/t/helper/test-reach.c:81,1
    - Dst: commit_list_insert
      Src: /src/git/t/helper/test-reach.c:86,1
    - Dst: commit_stack_push
      Src: /src/git/t/helper/test-reach.c:87,1
    - Dst: add_object_array
      Src: /src/git/t/helper/test-reach.c:88,1
    - Dst: commit_list_insert
      Src: /src/git/t/helper/test-reach.c:92,1
    - Dst: commit_stack_push
      Src: /src/git/t/helper/test-reach.c:93,1
    - Dst: die
      Src: /src/git/t/helper/test-reach.c:97,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-reach.c:100,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:102,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:103,1
    - Dst: ref_newer
      Src: /src/git/t/helper/test-reach.c:103,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:104,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:105,1
    - Dst: repo_in_merge_bases
      Src: /src/git/t/helper/test-reach.c:106,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:107,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:108,1
    - Dst: repo_in_merge_bases_many
      Src: /src/git/t/helper/test-reach.c:109,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:110,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:111,1
    - Dst: repo_is_descendant_of
      Src: /src/git/t/helper/test-reach.c:111,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:112,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:113,1
    - Dst: get_branch_base_for_tip
      Src: /src/git/t/helper/test-reach.c:113,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:114,1
    - Dst: repo_get_merge_bases_many
      Src: /src/git/t/helper/test-reach.c:116,1
    - Dst: exit
      Src: /src/git/t/helper/test-reach.c:120,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:121,1
    - Dst: print_sorted_commit_ids
      Src: /src/git/t/helper/test-reach.c:122,1
    - Dst: commit_list_free
      Src: /src/git/t/helper/test-reach.c:123,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:124,1
    - Dst: reduce_heads
      Src: /src/git/t/helper/test-reach.c:125,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:126,1
    - Dst: print_sorted_commit_ids
      Src: /src/git/t/helper/test-reach.c:127,1
    - Dst: commit_list_free
      Src: /src/git/t/helper/test-reach.c:128,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:129,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:130,1
    - Dst: can_all_from_reach
      Src: /src/git/t/helper/test-reach.c:130,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:131,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:139,1
    - Dst: can_all_from_reach_with_flag
      Src: /src/git/t/helper/test-reach.c:139,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:140,1
    - Dst: init_contains_cache
      Src: /src/git/t/helper/test-reach.c:143,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:145,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:150,1
    - Dst: commit_contains
      Src: /src/git/t/helper/test-reach.c:150,1
    - Dst: clear_contains_cache
      Src: /src/git/t/helper/test-reach.c:151,1
    - Dst: strcmp
      Src: /src/git/t/helper/test-reach.c:152,1
    - Dst: get_reachable_subset
      Src: /src/git/t/helper/test-reach.c:156,1
    - Dst: printf
      Src: /src/git/t/helper/test-reach.c:159,1
    - Dst: die
      Src: /src/git/t/helper/test-reach.c:162,1
    - Dst: _
      Src: /src/git/t/helper/test-reach.c:162,1
    - Dst: oid_to_hex
      Src: /src/git/t/helper/test-reach.c:163,1
    - Dst: die
      Src: /src/git/t/helper/test-reach.c:172,1
    - Dst: _
      Src: /src/git/t/helper/test-reach.c:172,1
    - Dst: print_sorted_commit_ids
      Src: /src/git/t/helper/test-reach.c:174,1
    - Dst: commit_list_free
      Src: /src/git/t/helper/test-reach.c:175,1
    - Dst: object_array_clear
      Src: /src/git/t/helper/test-reach.c:178,1
    - Dst: strbuf_release
      Src: /src/git/t/helper/test-reach.c:179,1
    - Dst: commit_list_free
      Src: /src/git/t/helper/test-reach.c:180,1
    - Dst: commit_list_free
      Src: /src/git/t/helper/test-reach.c:181,1
    - Dst: commit_stack_clear
      Src: /src/git/t/helper/test-reach.c:182,1
    - Dst: commit_stack_clear
      Src: /src/git/t/helper/test-reach.c:183,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 104
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 31
    functionDepth: 25
    functionLinenumber: 31
    functionLinenumberEnd: 185
    functionName: cmd__reach
    functionSourceFile: /src/git/t/helper/test-reach.c
    functionUses: 0
    functionsReached:
    - can_all_from_reach
    - setup_git_directory
    - oidcpy
    - reduce_heads
    - deref_tag
    - object_array_clear
    - commit_stack_clear
    - strcmp
    - repo_get_merge_bases_many
    - printf
    - strbuf_release
    - die
    - commit_contains
    - repo_is_descendant_of
    - repo_in_merge_bases_many
    - oid_to_hex
    - get_branch_base_for_tip
    - clear_contains_cache
    - parse_object
    - commit_stack_push
    - ref_newer
    - get_reachable_subset
    - _
    - strbuf_getline
    - object_as_type
    - can_all_from_reach_with_flag
    - exit
    - add_object_array
    - repo_in_merge_bases
    - print_sorted_commit_ids
    - init_contains_cache
    - commit_list_free
    - repo_get_oid_committish
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: int cmd__reach(int ac, const char **av)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xread
      Src: /src/git/t/helper/test-xml-encode.c:17,1
    - Dst: die_errno
      Src: /src/git/t/helper/test-xml-encode.c:21,1
    - Dst: fputs
      Src: /src/git/t/helper/test-xml-encode.c:28,1
    - Dst: fwrite
      Src: /src/git/t/helper/test-xml-encode.c:36,1
    - Dst: fputs
      Src: /src/git/t/helper/test-xml-encode.c:45,1
    - Dst: fputs
      Src: /src/git/t/helper/test-xml-encode.c:47,1
    - Dst: fputs
      Src: /src/git/t/helper/test-xml-encode.c:49,1
    - Dst: fputs
      Src: /src/git/t/helper/test-xml-encode.c:51,1
    - Dst: fputs
      Src: /src/git/t/helper/test-xml-encode.c:53,1
    - Dst: fputc
      Src: /src/git/t/helper/test-xml-encode.c:55,1
    - Dst: fprintf
      Src: /src/git/t/helper/test-xml-encode.c:57,1
    - Dst: fputs
      Src: /src/git/t/helper/test-xml-encode.c:59,1
    - Dst: fputs
      Src: /src/git/t/helper/test-xml-encode.c:76,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 80
    functionName: cmd__xml_encode
    functionSourceFile: /src/git/t/helper/test-xml-encode.c
    functionUses: 0
    functionsReached:
    - fputs
    - fwrite
    - die_errno
    - xread
    - fputc
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd__xml_encode(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-string-list.c:9,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:11,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/u-string-list.c:12,1
    - Dst: string_list_append
      Src: /src/git/t/unit-tests/u-string-list.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - list
    - free_util
    - ap
    argTypes:
    - struct string_list*
    - int
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 4
    functionDepth: 2
    functionLinenumber: 4
    functionLinenumberEnd: 14
    functionName: t_vcreate_string_list_dup
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - va_arg
    - string_list_append
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void t_vcreate_string_list_dup(struct string_list *list,\n\t\t\t\t
      \     int free_util, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-string-list.c:20,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:22,1
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-string-list.c:23,1
    - Dst: t_vcreate_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:24,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-string-list.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - list
    - free_util
    argTypes:
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: t_create_string_list_dup
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - t_vcreate_string_list_dup
    - va_end
    - va_start
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void t_create_string_list_dup(struct string_list *list, int free_util,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:30,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-string-list.c:31,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-string-list.c:32,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-string-list.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - list
    - free_util
    argTypes:
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: t_string_list_clear
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - string_list_clear
    - cl_assert_equal_p
    linkageType: ''
    returnType: void
    signature: void t_string_list_clear(struct string_list *list, int free_util)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-string-list.c:39,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-string-list.c:40,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-string-list.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - expected_strings
    argTypes:
    - struct string_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: t_string_list_equal
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - cl_assert_equal_s
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void t_string_list_equal(struct string_list *list,\n\t\t\t\tstruct
      string_list *expected_strings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-string-list.c:53,1
    - Dst: t_vcreate_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:54,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-string-list.c:55,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:57,1
    - Dst: string_list_split
      Src: /src/git/t/unit-tests/u-string-list.c:58,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-string-list.c:59,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:60,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:62,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - data
    - delim
    - maxsplit
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: t_string_list_split
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - t_vcreate_string_list_dup
    - t_string_list_equal
    - string_list_split
    - va_end
    - cl_assert_equal_i
    - va_start
    linkageType: ''
    returnType: void
    signature: void t_string_list_split(const char *data, const char *delim, int maxsplit,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-string-list.c:74,1
    - Dst: t_vcreate_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:75,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-string-list.c:76,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:78,1
    - Dst: string_list_split_f
      Src: /src/git/t/unit-tests/u-string-list.c:79,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-string-list.c:80,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:81,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:83,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - data
    - delim
    - maxsplit
    - flags
    argTypes:
    - char*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: t_string_list_split_f
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - t_vcreate_string_list_dup
    - t_string_list_equal
    - va_end
    - cl_assert_equal_i
    - va_start
    - string_list_split_f
    linkageType: ''
    returnType: void
    signature: "void t_string_list_split_f(const char *data, const char *delim,\n\t\t\t\t
      \ int maxsplit, unsigned flags, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_string_list_split_f
      Src: /src/git/t/unit-tests/u-string-list.c:89,1
    - Dst: t_string_list_split_f
      Src: /src/git/t/unit-tests/u-string-list.c:91,1
    - Dst: t_string_list_split_f
      Src: /src/git/t/unit-tests/u-string-list.c:93,1
    - Dst: t_string_list_split_f
      Src: /src/git/t/unit-tests/u-string-list.c:95,1
    - Dst: t_string_list_split_f
      Src: /src/git/t/unit-tests/u-string-list.c:97,1
    - Dst: t_string_list_split_f
      Src: /src/git/t/unit-tests/u-string-list.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: test_string_list__split_f
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_string_list_split_f
    linkageType: ''
    returnType: void
    signature: void test_string_list__split_f(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-string-list.c:109,1
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-string-list.c:113,1
    - Dst: t_vcreate_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:114,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-string-list.c:115,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:117,1
    - Dst: string_list_split_in_place_f
      Src: /src/git/t/unit-tests/u-string-list.c:118,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-string-list.c:119,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:120,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-string-list.c:122,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:123,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - data_
    - delim
    - maxsplit
    - flags
    argTypes:
    - char*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: t_string_list_split_in_place_f
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_split_in_place_f
    - t_vcreate_string_list_dup
    - t_string_list_equal
    - va_end
    - cl_assert_equal_i
    - free
    - va_start
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void t_string_list_split_in_place_f(const char *data_, const char
      *delim,\n\t\t\t\t\t   int maxsplit, unsigned flags, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_string_list_split_in_place_f
      Src: /src/git/t/unit-tests/u-string-list.c:129,1
    - Dst: t_string_list_split_in_place_f
      Src: /src/git/t/unit-tests/u-string-list.c:131,1
    - Dst: t_string_list_split_in_place_f
      Src: /src/git/t/unit-tests/u-string-list.c:133,1
    - Dst: t_string_list_split_in_place_f
      Src: /src/git/t/unit-tests/u-string-list.c:135,1
    - Dst: t_string_list_split_in_place_f
      Src: /src/git/t/unit-tests/u-string-list.c:138,1
    - Dst: t_string_list_split_in_place_f
      Src: /src/git/t/unit-tests/u-string-list.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 6
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: test_string_list__split_in_place_f
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_string_list_split_in_place_f
    linkageType: ''
    returnType: void
    signature: void test_string_list__split_in_place_f(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_string_list_split
      Src: /src/git/t/unit-tests/u-string-list.c:147,1
    - Dst: t_string_list_split
      Src: /src/git/t/unit-tests/u-string-list.c:148,1
    - Dst: t_string_list_split
      Src: /src/git/t/unit-tests/u-string-list.c:149,1
    - Dst: t_string_list_split
      Src: /src/git/t/unit-tests/u-string-list.c:150,1
    - Dst: t_string_list_split
      Src: /src/git/t/unit-tests/u-string-list.c:151,1
    - Dst: t_string_list_split
      Src: /src/git/t/unit-tests/u-string-list.c:152,1
    - Dst: t_string_list_split
      Src: /src/git/t/unit-tests/u-string-list.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 6
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: test_string_list__split
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_string_list_split
    linkageType: ''
    returnType: void
    signature: void test_string_list__split(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-string-list.c:161,1
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-string-list.c:165,1
    - Dst: t_vcreate_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:166,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-string-list.c:167,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:169,1
    - Dst: string_list_split_in_place
      Src: /src/git/t/unit-tests/u-string-list.c:170,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-string-list.c:171,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:172,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-string-list.c:174,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:175,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - data
    - delim
    - maxsplit
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 156
    functionDepth: 5
    functionLinenumber: 156
    functionLinenumberEnd: 177
    functionName: t_string_list_split_in_place
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - t_vcreate_string_list_dup
    - t_string_list_equal
    - va_end
    - cl_assert_equal_i
    - free
    - va_start
    - string_list_split_in_place
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void t_string_list_split_in_place(const char *data, const char *delim,\n\t\t\t\t\t
      int maxsplit, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_string_list_split_in_place
      Src: /src/git/t/unit-tests/u-string-list.c:181,1
    - Dst: t_string_list_split_in_place
      Src: /src/git/t/unit-tests/u-string-list.c:183,1
    - Dst: t_string_list_split_in_place
      Src: /src/git/t/unit-tests/u-string-list.c:185,1
    - Dst: t_string_list_split_in_place
      Src: /src/git/t/unit-tests/u-string-list.c:187,1
    - Dst: t_string_list_split_in_place
      Src: /src/git/t/unit-tests/u-string-list.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 6
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: test_string_list__split_in_place
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_string_list_split_in_place
    linkageType: ''
    returnType: void
    signature: void test_string_list__split_in_place(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/t/unit-tests/u-string-list.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: prefix_cb
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: int
    signature: int prefix_cb(struct string_list_item *item, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-string-list.c:205,1
    - Dst: t_vcreate_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:206,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-string-list.c:207,1
    - Dst: filter_string_list
      Src: /src/git/t/unit-tests/u-string-list.c:209,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:210,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 213
    functionName: t_string_list_filter
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - t_vcreate_string_list_dup
    - filter_string_list
    - t_string_list_equal
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void t_string_list_filter(struct string_list *list, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:219,1
    - Dst: t_string_list_filter
      Src: /src/git/t/unit-tests/u-string-list.c:220,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:222,1
    - Dst: t_string_list_filter
      Src: /src/git/t/unit-tests/u-string-list.c:223,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:225,1
    - Dst: t_string_list_filter
      Src: /src/git/t/unit-tests/u-string-list.c:226,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:228,1
    - Dst: t_string_list_filter
      Src: /src/git/t/unit-tests/u-string-list.c:229,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:231,1
    - Dst: t_string_list_filter
      Src: /src/git/t/unit-tests/u-string-list.c:232,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:234,1
    - Dst: t_string_list_filter
      Src: /src/git/t/unit-tests/u-string-list.c:235,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:237,1
    - Dst: t_string_list_filter
      Src: /src/git/t/unit-tests/u-string-list.c:238,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:240,1
    - Dst: t_string_list_filter
      Src: /src/git/t/unit-tests/u-string-list.c:241,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 244
    functionName: test_string_list__filter
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_create_string_list_dup
    - t_string_list_filter
    - t_string_list_clear
    linkageType: ''
    returnType: void
    signature: void test_string_list__filter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:251,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-string-list.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - list
    - string
    - expected
    argTypes:
    - struct string_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: t_string_list_has_string
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - string_list_has_string
    linkageType: ''
    returnType: void
    signature: "void t_string_list_has_string(\n\tstruct string_list *list,\n\tconst
      char *string,\n\tint expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:259,1
    - Dst: t_string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:260,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:262,1
    - Dst: t_string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:263,1
    - Dst: t_string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:264,1
    - Dst: t_string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:265,1
    - Dst: t_string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:266,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 269
    functionName: test_string_list__has_string
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_create_string_list_dup
    - t_string_list_clear
    - t_string_list_has_string
    linkageType: ''
    returnType: void
    signature: void test_string_list__has_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-string-list.c:277,1
    - Dst: t_vcreate_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:278,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-string-list.c:279,1
    - Dst: string_list_insert
      Src: /src/git/t/unit-tests/u-string-list.c:282,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:284,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:286,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - expected_strings
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 288
    functionName: t_string_list_insert
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_insert
    - t_vcreate_string_list_dup
    - t_string_list_equal
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void t_string_list_insert(struct string_list *expected_strings, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:294,1
    - Dst: t_string_list_insert
      Src: /src/git/t/unit-tests/u-string-list.c:295,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:297,1
    - Dst: t_string_list_insert
      Src: /src/git/t/unit-tests/u-string-list.c:298,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:300,1
    - Dst: t_string_list_insert
      Src: /src/git/t/unit-tests/u-string-list.c:301,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:303,1
    - Dst: t_string_list_insert
      Src: /src/git/t/unit-tests/u-string-list.c:304,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 307
    functionName: test_string_list__insert
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_create_string_list_dup
    - t_string_list_insert
    - t_string_list_clear
    linkageType: ''
    returnType: void
    signature: void test_string_list__insert(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-string-list.c:314,1
    - Dst: t_vcreate_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:315,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-string-list.c:316,1
    - Dst: string_list_sort
      Src: /src/git/t/unit-tests/u-string-list.c:318,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:319,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 322
    functionName: t_string_list_sort
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - t_vcreate_string_list_dup
    - string_list_sort
    - t_string_list_equal
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void t_string_list_sort(struct string_list *list, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:328,1
    - Dst: t_string_list_sort
      Src: /src/git/t/unit-tests/u-string-list.c:329,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:331,1
    - Dst: t_string_list_sort
      Src: /src/git/t/unit-tests/u-string-list.c:332,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:334,1
    - Dst: t_string_list_sort
      Src: /src/git/t/unit-tests/u-string-list.c:335,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 338
    functionName: test_string_list__sort
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_string_list_sort
    - t_create_string_list_dup
    - t_string_list_clear
    linkageType: ''
    returnType: void
    signature: void test_string_list__sort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_remove
      Src: /src/git/t/unit-tests/u-string-list.c:345,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - expected_strings
    - list
    - str
    argTypes:
    - struct string_list*
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 347
    functionName: t_string_list_remove
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_string_list_equal
    - string_list_remove
    linkageType: ''
    returnType: void
    signature: "void t_string_list_remove(\n\tstruct string_list *expected_strings,\n\tstruct
      string_list *list,\n\tchar const *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:354,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:355,1
    - Dst: t_string_list_remove
      Src: /src/git/t/unit-tests/u-string-list.c:356,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:358,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:359,1
    - Dst: t_string_list_remove
      Src: /src/git/t/unit-tests/u-string-list.c:360,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:362,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:363,1
    - Dst: t_string_list_remove
      Src: /src/git/t/unit-tests/u-string-list.c:364,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:366,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:367,1
    - Dst: t_string_list_remove
      Src: /src/git/t/unit-tests/u-string-list.c:368,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:370,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:371,1
    - Dst: t_string_list_remove
      Src: /src/git/t/unit-tests/u-string-list.c:372,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:374,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 349
    functionDepth: 4
    functionLinenumber: 349
    functionLinenumberEnd: 376
    functionName: test_string_list__remove
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_string_list_remove
    - t_create_string_list_dup
    - t_string_list_clear
    linkageType: ''
    returnType: void
    signature: void test_string_list__remove(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-string-list.c:383,1
    - Dst: t_vcreate_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:384,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-string-list.c:385,1
    - Dst: string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:387,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:388,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 391
    functionName: t_string_list_remove_duplicates
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_remove_duplicates
    - t_vcreate_string_list_dup
    - t_string_list_equal
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void t_string_list_remove_duplicates(struct string_list *list, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:397,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:398,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:400,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:401,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:403,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:404,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:406,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:407,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:409,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:410,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:412,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:413,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:415,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:416,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:418,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:419,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:421,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:422,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:424,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:425,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:427,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:428,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:430,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:431,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:433,1
    - Dst: t_string_list_remove_duplicates
      Src: /src/git/t/unit-tests/u-string-list.c:435,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 393
    functionDepth: 4
    functionLinenumber: 393
    functionLinenumberEnd: 438
    functionName: test_string_list__remove_duplicates
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_string_list_remove_duplicates
    - t_create_string_list_dup
    - t_string_list_clear
    linkageType: ''
    returnType: void
    signature: void test_string_list__remove_duplicates(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-string-list.c:445,1
    - Dst: t_vcreate_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:446,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-string-list.c:447,1
    - Dst: string_list_sort_u
      Src: /src/git/t/unit-tests/u-string-list.c:449,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:450,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 453
    functionName: t_string_list_sort_u
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - t_vcreate_string_list_dup
    - t_string_list_equal
    - va_end
    - va_start
    - string_list_sort_u
    linkageType: ''
    returnType: void
    signature: void t_string_list_sort_u(struct string_list *list, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:459,1
    - Dst: t_string_list_sort_u
      Src: /src/git/t/unit-tests/u-string-list.c:460,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:462,1
    - Dst: t_string_list_sort_u
      Src: /src/git/t/unit-tests/u-string-list.c:463,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:465,1
    - Dst: t_string_list_sort_u
      Src: /src/git/t/unit-tests/u-string-list.c:466,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:468,1
    - Dst: t_string_list_sort_u
      Src: /src/git/t/unit-tests/u-string-list.c:469,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 472
    functionName: test_string_list__sort_u
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_create_string_list_dup
    - t_string_list_clear
    - t_string_list_sort_u
    linkageType: ''
    returnType: void
    signature: void test_string_list__sort_u(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_remove_empty_items
      Src: /src/git/t/unit-tests/u-string-list.c:478,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - expected_strings
    - list
    argTypes:
    - struct string_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 480
    functionName: t_string_list_remove_empty_items
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - string_list_remove_empty_items
    - t_string_list_equal
    linkageType: ''
    returnType: void
    signature: "void t_string_list_remove_empty_items(\n\tstruct string_list *expected_strings,\n\tstruct
      string_list *list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:487,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:488,1
    - Dst: t_string_list_remove_empty_items
      Src: /src/git/t/unit-tests/u-string-list.c:489,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:491,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:492,1
    - Dst: t_string_list_remove_empty_items
      Src: /src/git/t/unit-tests/u-string-list.c:493,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:495,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 497
    functionName: test_string_list__remove_empty_items
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_string_list_remove_empty_items
    - t_create_string_list_dup
    - t_string_list_clear
    linkageType: ''
    returnType: void
    signature: void test_string_list__remove_empty_items(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unsorted_string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:503,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-string-list.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - list
    - str
    - expected
    argTypes:
    - struct string_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 505
    functionName: t_string_list_unsorted_string_list_has_string
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - unsorted_string_list_has_string
    linkageType: ''
    returnType: void
    signature: "void t_string_list_unsorted_string_list_has_string(\n\tstruct string_list
      *list,\n\tconst char *str, int expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:511,1
    - Dst: t_string_list_unsorted_string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:512,1
    - Dst: t_string_list_unsorted_string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:513,1
    - Dst: t_string_list_unsorted_string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:514,1
    - Dst: t_string_list_unsorted_string_list_has_string
      Src: /src/git/t/unit-tests/u-string-list.c:515,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 507
    functionDepth: 4
    functionLinenumber: 507
    functionLinenumberEnd: 518
    functionName: test_string_list__unsorted_string_list_has_string
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_create_string_list_dup
    - t_string_list_unsorted_string_list_has_string
    - t_string_list_clear
    linkageType: ''
    returnType: void
    signature: void test_string_list__unsorted_string_list_has_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unsorted_string_list_delete_item
      Src: /src/git/t/unit-tests/u-string-list.c:525,1
    - Dst: t_string_list_equal
      Src: /src/git/t/unit-tests/u-string-list.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - expected_list
    - list
    - i
    argTypes:
    - struct string_list*
    - struct string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 528
    functionName: t_string_list_unsorted_string_list_delete_item
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_string_list_equal
    - unsorted_string_list_delete_item
    linkageType: ''
    returnType: void
    signature: "void t_string_list_unsorted_string_list_delete_item(\n\tstruct string_list
      *expected_list,\n\tstruct string_list *list,\n\tint i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:535,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:536,1
    - Dst: t_string_list_unsorted_string_list_delete_item
      Src: /src/git/t/unit-tests/u-string-list.c:537,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:539,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:540,1
    - Dst: t_string_list_unsorted_string_list_delete_item
      Src: /src/git/t/unit-tests/u-string-list.c:541,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:543,1
    - Dst: t_create_string_list_dup
      Src: /src/git/t/unit-tests/u-string-list.c:544,1
    - Dst: t_string_list_unsorted_string_list_delete_item
      Src: /src/git/t/unit-tests/u-string-list.c:545,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:547,1
    - Dst: t_string_list_clear
      Src: /src/git/t/unit-tests/u-string-list.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 530
    functionDepth: 4
    functionLinenumber: 530
    functionLinenumberEnd: 549
    functionName: test_string_list__unsorted_string_list_delete_item
    functionSourceFile: /src/git/t/unit-tests/u-string-list.c
    functionUses: 0
    functionsReached:
    - t_create_string_list_dup
    - t_string_list_unsorted_string_list_delete_item
    - t_string_list_clear
    linkageType: ''
    returnType: void
    signature: void test_string_list__unsorted_string_list_delete_item(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trailer_iterator_init
      Src: /src/git/t/unit-tests/u-trailer.c:18,1
    - Dst: trailer_iterator_advance
      Src: /src/git/t/unit-tests/u-trailer.c:19,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-trailer.c:21,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-trailer.c:22,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-trailer.c:23,1
    - Dst: trailer_iterator_release
      Src: /src/git/t/unit-tests/u-trailer.c:27,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-trailer.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - msg
    - num_expected
    - contents
    argTypes:
    - char*
    - size_t
    - struct contents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 12
    functionDepth: 10
    functionLinenumber: 12
    functionLinenumberEnd: 30
    functionName: t_trailer_iterator
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - trailer_iterator_advance
    - trailer_iterator_init
    - cl_assert_equal_i
    - trailer_iterator_release
    linkageType: ''
    returnType: void
    signature: "void t_trailer_iterator(const char *msg, size_t num_expected,\n\t\t\t
      \      struct contents *contents)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_trailer_iterator
      Src: /src/git/t/unit-tests/u-trailer.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 11
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: test_trailer__empty_input
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - t_trailer_iterator
    linkageType: ''
    returnType: void
    signature: void test_trailer__empty_input(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_trailer_iterator
      Src: /src/git/t/unit-tests/u-trailer.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 11
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: test_trailer__no_newline_start
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - t_trailer_iterator
    linkageType: ''
    returnType: void
    signature: void test_trailer__no_newline_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_trailer_iterator
      Src: /src/git/t/unit-tests/u-trailer.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 49
    functionDepth: 11
    functionLinenumber: 49
    functionLinenumberEnd: 78
    functionName: test_trailer__newline_start
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - t_trailer_iterator
    linkageType: ''
    returnType: void
    signature: void test_trailer__newline_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_trailer_iterator
      Src: /src/git/t/unit-tests/u-trailer.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 80
    functionDepth: 11
    functionLinenumber: 80
    functionLinenumberEnd: 111
    functionName: test_trailer__no_body_text
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - t_trailer_iterator
    linkageType: ''
    returnType: void
    signature: void test_trailer__no_body_text(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_trailer_iterator
      Src: /src/git/t/unit-tests/u-trailer.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 113
    functionDepth: 11
    functionLinenumber: 113
    functionLinenumberEnd: 154
    functionName: test_trailer__body_text_no_divider
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - t_trailer_iterator
    linkageType: ''
    returnType: void
    signature: void test_trailer__body_text_no_divider(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_trailer_iterator
      Src: /src/git/t/unit-tests/u-trailer.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 156
    functionDepth: 11
    functionLinenumber: 156
    functionLinenumberEnd: 194
    functionName: test_trailer__body_no_divider_2nd_block
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - t_trailer_iterator
    linkageType: ''
    returnType: void
    signature: void test_trailer__body_no_divider_2nd_block(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_trailer_iterator
      Src: /src/git/t/unit-tests/u-trailer.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 196
    functionDepth: 11
    functionLinenumber: 196
    functionLinenumberEnd: 225
    functionName: test_trailer__body_and_divider
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - t_trailer_iterator
    linkageType: ''
    returnType: void
    signature: void test_trailer__body_and_divider(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_trailer_iterator
      Src: /src/git/t/unit-tests/u-trailer.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 227
    functionDepth: 11
    functionLinenumber: 227
    functionLinenumberEnd: 275
    functionName: test_trailer__non_trailer_in_block
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - t_trailer_iterator
    linkageType: ''
    returnType: void
    signature: void test_trailer__non_trailer_in_block(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_trailer_iterator
      Src: /src/git/t/unit-tests/u-trailer.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 277
    functionDepth: 11
    functionLinenumber: 277
    functionLinenumberEnd: 294
    functionName: test_trailer__too_many_non_trailers
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - t_trailer_iterator
    linkageType: ''
    returnType: void
    signature: void test_trailer__too_many_non_trailers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_trailer_iterator
      Src: /src/git/t/unit-tests/u-trailer.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 296
    functionDepth: 11
    functionLinenumber: 296
    functionLinenumberEnd: 320
    functionName: test_trailer__one_non_trailer_no_git_trailers
    functionSourceFile: /src/git/t/unit-tests/u-trailer.c
    functionUses: 0
    functionsReached:
    - t_trailer_iterator
    linkageType: ''
    returnType: void
    signature: void test_trailer__one_non_trailer_no_git_trailers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:14,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:14,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:16,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:16,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:20,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:20,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:24,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:24,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:28,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:28,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:31,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:31,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:34,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:34,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:39,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:39,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:41,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 9
    functionDepth: 4
    functionLinenumber: 9
    functionLinenumberEnd: 42
    functionName: test_utf8_width__strnwidth_chinese
    functionSourceFile: /src/git/t/unit-tests/u-utf8-width.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - utf8_strnwidth
    linkageType: ''
    returnType: void
    signature: void test_utf8_width__strnwidth_chinese(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:50,1
    - Dst: utf8_strwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:50,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:54,1
    - Dst: utf8_strwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:54,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:58,1
    - Dst: utf8_strwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:58,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:62,1
    - Dst: utf8_strwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:62,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:64,1
    - Dst: utf8_strwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: test_utf8_width__strwidth_chinese
    functionSourceFile: /src/git/t/unit-tests/u-utf8-width.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - utf8_strwidth
    linkageType: ''
    returnType: void
    signature: void test_utf8_width__strwidth_chinese(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:74,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:74,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:78,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: test_utf8_width__strnwidth_japanese_korean
    functionSourceFile: /src/git/t/unit-tests/u-utf8-width.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - utf8_strnwidth
    linkageType: ''
    returnType: void
    signature: void test_utf8_width__strnwidth_japanese_korean(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:88,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-utf8-width.c:88,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:90,1
    - Dst: utf8_strnwidth
      Src: /src/git/t/unit-tests/u-utf8-width.c:94,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-utf8-width.c:94,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-utf8-width.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: test_utf8_width__strnwidth_cjk_with_ansi
    functionSourceFile: /src/git/t/unit-tests/u-utf8-width.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - strlen
    - utf8_strnwidth
    linkageType: ''
    returnType: void
    signature: void test_utf8_width__strnwidth_cjk_with_ansi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_utf8_align
      Src: /src/git/t/unit-tests/u-utf8-width.c:107,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-utf8-width.c:109,1
    - Dst: strbuf_reset
      Src: /src/git/t/unit-tests/u-utf8-width.c:110,1
    - Dst: strbuf_utf8_align
      Src: /src/git/t/unit-tests/u-utf8-width.c:113,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-utf8-width.c:115,1
    - Dst: strbuf_reset
      Src: /src/git/t/unit-tests/u-utf8-width.c:116,1
    - Dst: strbuf_utf8_align
      Src: /src/git/t/unit-tests/u-utf8-width.c:119,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-utf8-width.c:121,1
    - Dst: strbuf_reset
      Src: /src/git/t/unit-tests/u-utf8-width.c:122,1
    - Dst: strbuf_utf8_align
      Src: /src/git/t/unit-tests/u-utf8-width.c:124,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-utf8-width.c:126,1
    - Dst: strbuf_reset
      Src: /src/git/t/unit-tests/u-utf8-width.c:127,1
    - Dst: strbuf_utf8_align
      Src: /src/git/t/unit-tests/u-utf8-width.c:130,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-utf8-width.c:132,1
    - Dst: strbuf_release
      Src: /src/git/t/unit-tests/u-utf8-width.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 134
    functionName: test_utf8_width__strbuf_utf8_align
    functionSourceFile: /src/git/t/unit-tests/u-utf8-width.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_utf8_align
    - strbuf_release
    - cl_assert_equal_s
    linkageType: ''
    returnType: void
    signature: void test_utf8_width__strbuf_utf8_align(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oid-array.c:13,1
    - Dst: oid_array_append
      Src: /src/git/t/unit-tests/u-oid-array.c:14,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-oid-array.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - array
    - hexes
    - n
    argTypes:
    - struct oid_array*
    - char*[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 8
    functionDepth: 3
    functionLinenumber: 8
    functionLinenumberEnd: 17
    functionName: fill_array
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - oid_array_append
    - cl_parse_any_oid
    linkageType: ''
    returnType: void
    signature: void fill_array(struct oid_array *array, const char *hexes[], size_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_append
      Src: /src/git/t/unit-tests/u-oid-array.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - oid
    - data
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: add_to_oid_array
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - oid_array_append
    linkageType: ''
    returnType: int
    signature: int add_to_oid_array(const struct object_id *oid, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill_array
      Src: /src/git/t/unit-tests/u-oid-array.c:34,1
    - Dst: fill_array
      Src: /src/git/t/unit-tests/u-oid-array.c:35,1
    - Dst: oid_array_for_each_unique
      Src: /src/git/t/unit-tests/u-oid-array.c:37,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-oid-array.c:38,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oid-array.c:41,1
    - Dst: oideq
      Src: /src/git/t/unit-tests/u-oid-array.c:41,1
    - Dst: oid_array_clear
      Src: /src/git/t/unit-tests/u-oid-array.c:43,1
    - Dst: oid_array_clear
      Src: /src/git/t/unit-tests/u-oid-array.c:44,1
    - Dst: oid_array_clear
      Src: /src/git/t/unit-tests/u-oid-array.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - input_args
    - input_sz
    - expect_args
    - expect_sz
    argTypes:
    - char**
    - size_t
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: t_enumeration
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - oid_array_clear
    - cl_assert_equal_i
    - oid_array_for_each_unique
    - fill_array
    - oideq
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void t_enumeration(const char **input_args, size_t input_sz,\n\t\t\t
      \ const char **expect_args, size_t expect_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - input
    - ','
    - expect
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: TEST_ENUMERATION
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ENUMERATION(input, expect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oid-array.c:58,1
    - Dst: fill_array
      Src: /src/git/t/unit-tests/u-oid-array.c:59,1
    - Dst: oid_array_lookup
      Src: /src/git/t/unit-tests/u-oid-array.c:60,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oid-array.c:62,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oid-array.c:63,1
    - Dst: oid_array_clear
      Src: /src/git/t/unit-tests/u-oid-array.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - input_hexes
    - n
    - query_hex
    - lower_bound
    - upper_bound
    argTypes:
    - char**
    - size_t
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: t_lookup
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 31
    functionsReached:
    - oid_array_lookup
    - cl_parse_any_oid
    - oid_array_clear
    - fill_array
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void t_lookup(const char **input_hexes, size_t n, const char *query_hex,\n\t\t
      \    int lower_bound, int upper_bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - input_hexes
    - ','
    - query
    - ','
    - lower_bound
    - ','
    - upper_bound
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: TEST_LOOKUP
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_LOOKUP(input_hexes, query, lower_bound, upper_bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_setup_hash_algo
      Src: /src/git/t/unit-tests/u-oid-array.c:75,1
    - Dst: repo_set_hash_algo
      Src: /src/git/t/unit-tests/u-oid-array.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: test_oid_array__initialize
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - repo_set_hash_algo
    - cl_setup_hash_algo
    linkageType: ''
    returnType: void
    signature: void test_oid_array__initialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ENUMERATION
      Src: /src/git/t/unit-tests/u-oid-array.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: test_oid_array__enumerate_unique
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - TEST_ENUMERATION
    linkageType: ''
    returnType: void
    signature: void test_oid_array__enumerate_unique(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ENUMERATION
      Src: /src/git/t/unit-tests/u-oid-array.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: test_oid_array__enumerate_duplicate
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - TEST_ENUMERATION
    linkageType: ''
    returnType: void
    signature: void test_oid_array__enumerate_duplicate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_LOOKUP
      Src: /src/git/t/unit-tests/u-oid-array.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: test_oid_array__lookup
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - TEST_LOOKUP
    linkageType: ''
    returnType: void
    signature: void test_oid_array__lookup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_LOOKUP
      Src: /src/git/t/unit-tests/u-oid-array.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: test_oid_array__lookup_non_existent
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - TEST_LOOKUP
    linkageType: ''
    returnType: void
    signature: void test_oid_array__lookup_non_existent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_LOOKUP
      Src: /src/git/t/unit-tests/u-oid-array.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: test_oid_array__lookup_duplicates
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - TEST_LOOKUP
    linkageType: ''
    returnType: void
    signature: void test_oid_array__lookup_duplicates(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_LOOKUP
      Src: /src/git/t/unit-tests/u-oid-array.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: test_oid_array__lookup_non_existent_dup
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - TEST_LOOKUP
    linkageType: ''
    returnType: void
    signature: void test_oid_array__lookup_non_existent_dup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_setup_hash_algo
      Src: /src/git/t/unit-tests/u-oid-array.c:119,1
    - Dst: TEST_LOOKUP
      Src: /src/git/t/unit-tests/u-oid-array.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: test_oid_array__lookup_almost_dup
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - cl_setup_hash_algo
    - TEST_LOOKUP
    linkageType: ''
    returnType: void
    signature: void test_oid_array__lookup_almost_dup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_LOOKUP
      Src: /src/git/t/unit-tests/u-oid-array.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: test_oid_array__lookup_single_dup
    functionSourceFile: /src/git/t/unit-tests/u-oid-array.c
    functionUses: 0
    functionsReached:
    - TEST_LOOKUP
    linkageType: ''
    returnType: void
    signature: void test_oid_array__lookup_single_dup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp_offset
      Src: /src/git/t/unit-tests/u-strcmp-offset.c:8,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strcmp-offset.c:18,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strcmp-offset.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - string1
    - string2
    - expect_result
    - expect_offset
    argTypes:
    - char*
    - char*
    - int
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 20
    functionName: check_strcmp_offset
    functionSourceFile: /src/git/t/unit-tests/u-strcmp-offset.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - strcmp_offset
    linkageType: ''
    returnType: void
    signature: "void check_strcmp_offset(const char *string1, const char *string2,\n\t\t\t\tint
      expect_result, uintmax_t expect_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_strcmp_offset
      Src: /src/git/t/unit-tests/u-strcmp-offset.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: test_strcmp_offset__empty
    functionSourceFile: /src/git/t/unit-tests/u-strcmp-offset.c
    functionUses: 0
    functionsReached:
    - check_strcmp_offset
    linkageType: ''
    returnType: void
    signature: void test_strcmp_offset__empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_strcmp_offset
      Src: /src/git/t/unit-tests/u-strcmp-offset.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: test_strcmp_offset__equal
    functionSourceFile: /src/git/t/unit-tests/u-strcmp-offset.c
    functionUses: 0
    functionsReached:
    - check_strcmp_offset
    linkageType: ''
    returnType: void
    signature: void test_strcmp_offset__equal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_strcmp_offset
      Src: /src/git/t/unit-tests/u-strcmp-offset.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: test_strcmp_offset__different
    functionSourceFile: /src/git/t/unit-tests/u-strcmp-offset.c
    functionUses: 0
    functionsReached:
    - check_strcmp_offset
    linkageType: ''
    returnType: void
    signature: void test_strcmp_offset__different(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_strcmp_offset
      Src: /src/git/t/unit-tests/u-strcmp-offset.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: test_strcmp_offset__mismatch
    functionSourceFile: /src/git/t/unit-tests/u-strcmp-offset.c
    functionUses: 0
    functionsReached:
    - check_strcmp_offset
    linkageType: ''
    returnType: void
    signature: void test_strcmp_offset__mismatch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_strcmp_offset
      Src: /src/git/t/unit-tests/u-strcmp-offset.c: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: test_strcmp_offset__different_length
    functionSourceFile: /src/git/t/unit-tests/u-strcmp-offset.c
    functionUses: 0
    functionsReached:
    - check_strcmp_offset
    linkageType: ''
    returnType: void
    signature: void test_strcmp_offset__different_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:29,1
    - Dst: reftable_buf_add
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:29,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:30,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:31,1
    - Dst: block_source_size
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:31,1
    - Dst: block_source_read_data
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:32,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:33,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:34,1
    - Dst: memcmp
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:34,1
    - Dst: block_source_release_data
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:35,1
    - Dst: block_source_read_data
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:37,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:38,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:39,1
    - Dst: memcmp
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:39,1
    - Dst: block_source_release_data
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:41,1
    - Dst: block_source_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:42,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 44
    functionName: test_reftable_readwrite__buffer
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - reftable_buf_add
    - block_source_size
    - block_source_from_buf
    - memcmp
    - cl_assert_equal_i
    - block_source_read_data
    - reftable_buf_release
    - block_source_close
    - block_source_release_data
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:57,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:58,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:59,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:60,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:61,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:62,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:65,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:68,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:76,1
    - Dst: cl_reftable_write_to_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:81,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:83,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 5
    argNames:
    - names
    - buf
    - N
    - block_size
    - hash_id
    argTypes:
    - char***
    - struct reftable_buf*
    - int
    - int
    - enum reftable_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 85
    functionName: write_table
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 1
    functionsReached:
    - cl_reftable_write_to_buf
    - reftable_free
    - xstrfmt
    - cl_reftable_set_hash
    - REFTABLE_CALLOC_ARRAY
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void write_table(char ***names, struct reftable_buf *buf, int N,\n\t\t\tint
      block_size, enum reftable_hash hash_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:105,1
    - Dst: git_rand
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:112,1
    - Dst: git_rand
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:113,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:115,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:116,1
    - Dst: reftable_writer_add_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:116,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:117,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:117,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:118,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 120
    functionName: test_reftable_readwrite__log_buffer_size
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - git_rand
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - reftable_writer_add_log
    - reftable_writer_free
    - cl_assert_equal_i
    - reftable_buf_release
    - reftable_writer_close
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__log_buffer_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:127,1
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:145,1
    - Dst: memset
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:148,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:149,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:150,1
    - Dst: reftable_writer_add_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:150,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:151,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 153
    functionName: test_reftable_readwrite__log_overflow
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - memset
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - reftable_writer_add_log
    - reftable_writer_free
    - cl_assert_equal_i
    - reftable_buf_release
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__log_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:159,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:177,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:180,1
    - Dst: reftable_writer_add_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:180,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:184,1
    - Dst: reftable_writer_add_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:184,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:188,1
    - Dst: reftable_writer_add_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:188,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:190,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 192
    functionName: test_reftable_readwrite__log_write_limits
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - reftable_writer_add_log
    - reftable_writer_free
    - cl_assert_equal_i
    - reftable_buf_release
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__log_write_limits(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:205,1
    - Dst: reftable_calloc
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:211,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:212,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:214,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:219,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:220,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:224,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:224,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:233,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:235,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:238,1
    - Dst: reftable_writer_add_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:238,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:241,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:241,1
    - Dst: reftable_writer_stats
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:243,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:244,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:245,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:248,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:250,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:251,1
    - Dst: reftable_table_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:253,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:254,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:256,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:257,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:259,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:260,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:263,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:263,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:265,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:266,1
    - Dst: reftable_table_init_log_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:268,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:269,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:270,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:271,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:274,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:277,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:278,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:279,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:280,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:283,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:284,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:287,1
    - Dst: free_names
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:288,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 290
    functionName: test_reftable_readwrite__log_write_read
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - reftable_writer_add_log
    - reftable_iterator_next_log
    - reftable_table_new
    - reftable_table_init_log_iterator
    - reftable_writer_stats
    - reftable_iterator_next_ref
    - reftable_iterator_seek_log
    - cl_assert
    - reftable_log_record_release
    - reftable_table_init_ref_iterator
    - reftable_iterator_seek_ref
    - reftable_writer_close
    - reftable_writer_add_ref
    - snprintf
    - reftable_calloc
    - reftable_writer_free
    - reftable_buf_release
    - free_names
    - reftable_iterator_destroy
    - cl_reftable_set_hash
    - xstrdup
    - reftable_table_decref
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - block_source_from_buf
    - cl_assert_equal_i
    - reftable_ref_record_release
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__log_write_read(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:301,1
    - Dst: git_rand
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:322,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:324,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:326,1
    - Dst: reftable_writer_add_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:326,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:327,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:327,1
    - Dst: reftable_writer_stats
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:329,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:330,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:331,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:337,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:339,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:340,1
    - Dst: reftable_table_init_log_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:342,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:343,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:344,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:345,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:347,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:350,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 292
    functionDepth: 5
    functionLinenumber: 292
    functionLinenumberEnd: 352
    functionName: test_reftable_readwrite__log_zlib_corruption
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_seek_log
    - git_rand
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - reftable_writer_add_log
    - block_source_from_buf
    - reftable_table_new
    - reftable_writer_free
    - reftable_table_decref
    - cl_assert_equal_i
    - reftable_table_init_log_iterator
    - reftable_writer_stats
    - reftable_buf_release
    - reftable_writer_close
    - reftable_iterator_destroy
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__log_zlib_corruption(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_table
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:365,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:367,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:369,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:370,1
    - Dst: reftable_table_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:372,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:373,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:374,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:375,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:379,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:380,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:383,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:384,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:385,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:387,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:389,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:390,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:391,1
    - Dst: free_names
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 393
    functionName: test_reftable_readwrite__table_read_write_sequential
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - write_table
    - block_source_from_buf
    - reftable_table_new
    - reftable_table_decref
    - cl_assert_equal_i
    - reftable_table_init_ref_iterator
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_buf_release
    - free_names
    - reftable_iterator_destroy
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__table_read_write_sequential(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_table
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:400,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:401,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:402,1
    - Dst: free_names
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 404
    functionName: test_reftable_readwrite__table_write_small_table
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - free_names
    - reftable_buf_release
    - write_table
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__table_write_small_table(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_table
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:417,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:419,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:421,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:422,1
    - Dst: reftable_table_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:424,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:425,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:426,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:427,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:429,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:430,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:432,1
    - Dst: free_names
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:433,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:434,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:435,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 437
    functionName: test_reftable_readwrite__table_read_api
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - write_table
    - block_source_from_buf
    - reftable_iterator_next_log
    - reftable_table_new
    - reftable_table_decref
    - cl_assert_equal_i
    - reftable_table_init_ref_iterator
    - reftable_iterator_seek_ref
    - reftable_buf_release
    - free_names
    - reftable_iterator_destroy
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__table_read_api(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_table
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:453,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:455,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:457,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:458,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:459,1
    - Dst: reftable_table_hash_id
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:459,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:464,1
    - Dst: reftable_table_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:468,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:469,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:470,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:471,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:472,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:473,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:474,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:475,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:476,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:478,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:479,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:482,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:482,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:484,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:484,1
    - Dst: reftable_table_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:486,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:487,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:488,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:491,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:492,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:494,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:497,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:498,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:500,1
    - Dst: free_names
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:501,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - index
    - hash_id
    argTypes:
    - int
    - enum reftable_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 503
    functionName: t_table_read_write_seek
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - reftable_buf_addstr
    - write_table
    - block_source_from_buf
    - reftable_table_new
    - reftable_table_decref
    - cl_assert_equal_i
    - reftable_table_init_ref_iterator
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_table_hash_id
    - reftable_iterator_next_ref
    - reftable_buf_release
    - free_names
    - reftable_iterator_destroy
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void t_table_read_write_seek(int index, enum reftable_hash hash_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_table_read_write_seek
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: test_reftable_readwrite__table_read_write_seek_linear
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - t_table_read_write_seek
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__table_read_write_seek_linear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_table_read_write_seek
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: test_reftable_readwrite__table_read_write_seek_linear_sha256
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - t_table_read_write_seek
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__table_read_write_seek_linear_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_table_read_write_seek
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: test_reftable_readwrite__table_read_write_seek_index
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - t_table_read_write_seek
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__table_read_write_seek_index(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:533,1
    - Dst: reftable_calloc
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:539,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:540,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:542,1
    - Dst: memset
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:550,1
    - Dst: memset
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:551,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:553,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:558,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:560,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:566,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:566,1
    - Dst: memcmp
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:568,1
    - Dst: memcmp
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:569,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:570,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:573,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:573,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:575,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:578,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:580,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:581,1
    - Dst: reftable_table_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:585,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:586,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:587,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:588,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:589,1
    - Dst: reftable_table_refs_for
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:591,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:592,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:595,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:596,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:599,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:600,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:601,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:603,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:605,1
    - Dst: free_names
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:606,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:607,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:608,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 1
    argNames:
    - indexed
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 609
    functionName: t_table_refs_for
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - reftable_table_new
    - reftable_iterator_next_ref
    - cl_assert
    - reftable_table_init_ref_iterator
    - reftable_iterator_seek_ref
    - reftable_writer_close
    - reftable_writer_add_ref
    - memset
    - snprintf
    - reftable_calloc
    - reftable_writer_free
    - reftable_buf_release
    - free_names
    - reftable_iterator_destroy
    - cl_reftable_set_hash
    - xstrdup
    - reftable_table_decref
    - cl_reftable_strbuf_writer
    - block_source_from_buf
    - cl_assert_equal_i
    - reftable_ref_record_release
    - reftable_table_refs_for
    - memcmp
    linkageType: ''
    returnType: void
    signature: void t_table_refs_for(int indexed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_table_refs_for
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 614
    functionName: test_reftable_readwrite__table_refs_for_no_index
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - t_table_refs_for
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__table_refs_for_no_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t_table_refs_for
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: test_reftable_readwrite__table_refs_for_obj_index
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - t_table_refs_for
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__table_refs_for_obj_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:625,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:632,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:634,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:634,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:635,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:637,1
    - Dst: header_size
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:637,1
    - Dst: footer_size
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:637,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:639,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:641,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:642,1
    - Dst: reftable_table_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:644,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:645,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:646,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:647,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:649,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:650,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:652,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:653,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 655
    functionName: test_reftable_readwrite__write_empty_table
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - block_source_from_buf
    - reftable_table_new
    - reftable_writer_free
    - header_size
    - cl_assert_equal_i
    - reftable_table_init_ref_iterator
    - footer_size
    - reftable_iterator_seek_ref
    - reftable_iterator_next_ref
    - reftable_table_decref
    - reftable_buf_release
    - reftable_writer_close
    - reftable_iterator_destroy
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__write_empty_table(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:663,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:671,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:677,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:679,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:679,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:682,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:682,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:683,1
    - Dst: reftable_writer_stats
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:683,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:684,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 686
    functionName: test_reftable_readwrite__write_object_id_min_length
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - snprintf
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - reftable_writer_free
    - cl_assert_equal_i
    - reftable_writer_stats
    - reftable_buf_release
    - reftable_writer_close
    - reftable_writer_add_ref
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__write_object_id_min_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:694,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:702,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:708,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:711,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:711,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:714,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:714,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:715,1
    - Dst: reftable_writer_stats
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:715,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:716,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 718
    functionName: test_reftable_readwrite__write_object_id_length
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - snprintf
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - reftable_writer_free
    - cl_assert_equal_i
    - reftable_writer_stats
    - reftable_buf_release
    - reftable_writer_close
    - reftable_writer_add_ref
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__write_object_id_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:724,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:731,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:732,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:732,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:733,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:733,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:735,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 737
    functionName: test_reftable_readwrite__write_empty_key
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - reftable_writer_free
    - cl_assert_equal_i
    - reftable_buf_release
    - reftable_writer_close
    - reftable_writer_add_ref
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__write_empty_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:743,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:762,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:763,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:763,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:764,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:764,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:768,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:768,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:770,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:771,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 773
    functionName: test_reftable_readwrite__write_key_order
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - reftable_writer_free
    - cl_assert_equal_i
    - reftable_buf_release
    - reftable_writer_close
    - reftable_writer_add_ref
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__write_key_order(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:790,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:791,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:799,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:802,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:802,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:815,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:818,1
    - Dst: reftable_writer_add_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:818,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:821,1
    - Dst: reftable_writer_stats
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:827,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:828,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:829,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:830,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:832,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:833,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:834,1
    - Dst: reftable_table_init_log_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:840,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:841,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:842,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:843,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:845,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:846,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:847,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 849
    functionName: test_reftable_readwrite__write_multiple_indices
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_seek_log
    - snprintf
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - reftable_writer_add_log
    - block_source_from_buf
    - reftable_table_new
    - reftable_writer_free
    - reftable_table_decref
    - cl_assert_equal_i
    - reftable_table_init_log_iterator
    - reftable_writer_stats
    - reftable_buf_release
    - reftable_writer_close
    - reftable_iterator_destroy
    - reftable_writer_add_ref
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__write_multiple_indices(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:864,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:865,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:874,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:877,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:877,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:879,1
    - Dst: reftable_writer_stats
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:885,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:886,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:888,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:889,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:890,1
    - Dst: reftable_table_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:895,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:896,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:897,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:898,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:900,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:901,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:902,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:903,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 905
    functionName: test_reftable_readwrite__write_multi_level_index
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - snprintf
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - block_source_from_buf
    - reftable_table_new
    - reftable_writer_free
    - reftable_table_decref
    - cl_assert_equal_i
    - reftable_table_init_ref_iterator
    - reftable_iterator_seek_ref
    - reftable_writer_stats
    - reftable_buf_release
    - reftable_writer_close
    - reftable_iterator_destroy
    - reftable_writer_add_ref
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__write_multi_level_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:914,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:915,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 917
    functionName: test_reftable_readwrite__corrupt_table_empty
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_table_new
    - block_source_from_buf
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__corrupt_table_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:927,1
    - Dst: reftable_buf_add
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:927,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:929,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:930,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:931,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-readwrite.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 934
    functionName: test_reftable_readwrite__corrupt_table
    functionSourceFile: /src/git/t/unit-tests/u-reftable-readwrite.c
    functionUses: 0
    functionsReached:
    - reftable_buf_add
    - block_source_from_buf
    - reftable_table_new
    - cl_assert_equal_i
    - reftable_buf_release
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_readwrite__corrupt_table(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-block.c:21,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-block.c:37,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:38,1
    - Dst: block_writer_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:41,1
    - Dst: hash_size
      Src: /src/git/t/unit-tests/u-reftable-block.c:43,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:44,1
    - Dst: block_writer_add
      Src: /src/git/t/unit-tests/u-reftable-block.c:48,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:49,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-reftable-block.c:52,1
    - Dst: memset
      Src: /src/git/t/unit-tests/u-reftable-block.c:54,1
    - Dst: block_writer_add
      Src: /src/git/t/unit-tests/u-reftable-block.c:57,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:60,1
    - Dst: block_writer_finish
      Src: /src/git/t/unit-tests/u-reftable-block.c:63,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:64,1
    - Dst: block_writer_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:66,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-block.c:68,1
    - Dst: reftable_block_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:69,1
    - Dst: block_iter_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:72,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:75,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:76,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:78,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:81,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:81,1
    - Dst: reftable_record_key
      Src: /src/git/t/unit-tests/u-reftable-block.c:85,1
    - Dst: block_iter_seek_key
      Src: /src/git/t/unit-tests/u-reftable-block.c:87,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:88,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:90,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:91,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:93,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:93,1
    - Dst: block_iter_seek_key
      Src: /src/git/t/unit-tests/u-reftable-block.c:96,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:97,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:99,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:100,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:101,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:101,1
    - Dst: reftable_block_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:104,1
    - Dst: block_iter_close
      Src: /src/git/t/unit-tests/u-reftable-block.c:105,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:106,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:107,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:108,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 17
    functionDepth: 5
    functionLinenumber: 17
    functionLinenumberEnd: 111
    functionName: test_reftable_block__read_write
    functionSourceFile: /src/git/t/unit-tests/u-reftable-block.c
    functionUses: 0
    functionsReached:
    - block_iter_init
    - block_writer_init
    - reftable_record_release
    - reftable_record_key
    - reftable_block_release
    - reftable_block_init
    - cl_assert
    - block_iter_close
    - ARRAY_SIZE
    - memset
    - block_writer_add
    - reftable_record_equal
    - block_iter_seek_key
    - reftable_buf_release
    - REFTABLE_CALLOC_ARRAY
    - hash_size
    - block_writer_release
    - block_source_from_buf
    - xstrfmt
    - block_writer_finish
    - cl_assert_equal_i
    - block_iter_next
    linkageType: ''
    returnType: void
    signature: void test_reftable_block__read_write(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-block.c:117,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-block.c:133,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:134,1
    - Dst: block_writer_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:137,1
    - Dst: hash_size
      Src: /src/git/t/unit-tests/u-reftable-block.c:138,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:139,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-reftable-block.c:142,1
    - Dst: block_writer_add
      Src: /src/git/t/unit-tests/u-reftable-block.c:147,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:150,1
    - Dst: block_writer_finish
      Src: /src/git/t/unit-tests/u-reftable-block.c:153,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:154,1
    - Dst: block_writer_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:156,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-block.c:158,1
    - Dst: reftable_block_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:159,1
    - Dst: block_iter_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:162,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:165,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:166,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:168,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:171,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:171,1
    - Dst: reftable_buf_reset
      Src: /src/git/t/unit-tests/u-reftable-block.c:175,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:176,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-block.c:176,1
    - Dst: block_iter_seek_key
      Src: /src/git/t/unit-tests/u-reftable-block.c:178,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:179,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:181,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:182,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:184,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:184,1
    - Dst: block_iter_seek_key
      Src: /src/git/t/unit-tests/u-reftable-block.c:187,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:188,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:190,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:191,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:192,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:192,1
    - Dst: reftable_block_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:195,1
    - Dst: block_iter_close
      Src: /src/git/t/unit-tests/u-reftable-block.c:196,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:197,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:198,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:199,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 202
    functionName: test_reftable_block__log_read_write
    functionSourceFile: /src/git/t/unit-tests/u-reftable-block.c
    functionUses: 0
    functionsReached:
    - block_iter_init
    - block_writer_init
    - reftable_record_release
    - reftable_block_release
    - reftable_block_init
    - cl_assert
    - block_iter_close
    - ARRAY_SIZE
    - block_writer_add
    - reftable_record_equal
    - block_iter_seek_key
    - reftable_buf_release
    - REFTABLE_CALLOC_ARRAY
    - hash_size
    - reftable_buf_addstr
    - block_writer_release
    - block_source_from_buf
    - xstrfmt
    - reftable_buf_reset
    - block_writer_finish
    - cl_assert_equal_i
    - block_iter_next
    linkageType: ''
    returnType: void
    signature: void test_reftable_block__log_read_write(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-block.c:208,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-block.c:224,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:225,1
    - Dst: block_writer_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:228,1
    - Dst: hash_size
      Src: /src/git/t/unit-tests/u-reftable-block.c:229,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:230,1
    - Dst: DUP_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-block.c:234,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-block.c:234,1
    - Dst: block_writer_add
      Src: /src/git/t/unit-tests/u-reftable-block.c:240,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:243,1
    - Dst: block_writer_finish
      Src: /src/git/t/unit-tests/u-reftable-block.c:246,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:247,1
    - Dst: block_writer_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:249,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-block.c:251,1
    - Dst: reftable_block_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:252,1
    - Dst: block_iter_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:255,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:258,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:259,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:261,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:264,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:264,1
    - Dst: reftable_record_key
      Src: /src/git/t/unit-tests/u-reftable-block.c:268,1
    - Dst: block_iter_seek_key
      Src: /src/git/t/unit-tests/u-reftable-block.c:270,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:271,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:273,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:274,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:276,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:276,1
    - Dst: reftable_block_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:279,1
    - Dst: block_iter_close
      Src: /src/git/t/unit-tests/u-reftable-block.c:280,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:281,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:282,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:283,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 286
    functionName: test_reftable_block__obj_read_write
    functionSourceFile: /src/git/t/unit-tests/u-reftable-block.c
    functionUses: 0
    functionsReached:
    - block_iter_init
    - block_writer_init
    - reftable_record_release
    - reftable_record_key
    - reftable_block_release
    - reftable_block_init
    - cl_assert
    - block_iter_close
    - ARRAY_SIZE
    - block_writer_add
    - reftable_record_equal
    - block_iter_seek_key
    - reftable_buf_release
    - REFTABLE_CALLOC_ARRAY
    - hash_size
    - block_writer_release
    - block_source_from_buf
    - block_writer_finish
    - cl_assert_equal_i
    - DUP_ARRAY
    - block_iter_next
    linkageType: ''
    returnType: void
    signature: void test_reftable_block__obj_read_write(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-block.c:292,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-block.c:309,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:310,1
    - Dst: block_writer_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:313,1
    - Dst: hash_size
      Src: /src/git/t/unit-tests/u-reftable-block.c:314,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:315,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-block.c:320,1
    - Dst: reftable_buf_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:322,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:324,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-block.c:324,1
    - Dst: block_writer_add
      Src: /src/git/t/unit-tests/u-reftable-block.c:327,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:328,1
    - Dst: block_writer_finish
      Src: /src/git/t/unit-tests/u-reftable-block.c:331,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:332,1
    - Dst: block_writer_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:334,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-block.c:336,1
    - Dst: reftable_block_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:337,1
    - Dst: block_iter_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:340,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:343,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:344,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:346,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:349,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:349,1
    - Dst: reftable_record_key
      Src: /src/git/t/unit-tests/u-reftable-block.c:353,1
    - Dst: block_iter_seek_key
      Src: /src/git/t/unit-tests/u-reftable-block.c:355,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:356,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:358,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:359,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:361,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:361,1
    - Dst: block_iter_seek_key
      Src: /src/git/t/unit-tests/u-reftable-block.c:364,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:365,1
    - Dst: block_iter_next
      Src: /src/git/t/unit-tests/u-reftable-block.c:367,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:368,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:369,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:369,1
    - Dst: reftable_block_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:372,1
    - Dst: block_iter_close
      Src: /src/git/t/unit-tests/u-reftable-block.c:373,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:374,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:375,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:376,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 379
    functionName: test_reftable_block__ref_read_write
    functionSourceFile: /src/git/t/unit-tests/u-reftable-block.c
    functionUses: 0
    functionsReached:
    - block_iter_init
    - block_writer_init
    - reftable_record_release
    - reftable_record_key
    - reftable_buf_init
    - reftable_block_init
    - reftable_block_release
    - cl_assert
    - block_iter_close
    - ARRAY_SIZE
    - snprintf
    - block_writer_add
    - reftable_record_equal
    - block_iter_seek_key
    - reftable_buf_release
    - REFTABLE_CALLOC_ARRAY
    - hash_size
    - reftable_buf_addstr
    - block_writer_release
    - block_source_from_buf
    - block_writer_finish
    - cl_assert_equal_i
    - block_iter_next
    linkageType: ''
    returnType: void
    signature: void test_reftable_block__ref_read_write(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-block.c:395,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:396,1
    - Dst: block_writer_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:398,1
    - Dst: hash_size
      Src: /src/git/t/unit-tests/u-reftable-block.c:400,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:401,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-block.c:403,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-reftable-block.c:408,1
    - Dst: memset
      Src: /src/git/t/unit-tests/u-reftable-block.c:411,1
    - Dst: block_writer_add
      Src: /src/git/t/unit-tests/u-reftable-block.c:413,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:414,1
    - Dst: block_writer_finish
      Src: /src/git/t/unit-tests/u-reftable-block.c:417,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:418,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-block.c:420,1
    - Dst: reftable_block_init
      Src: /src/git/t/unit-tests/u-reftable-block.c:421,1
    - Dst: reftable_block_init_iterator
      Src: /src/git/t/unit-tests/u-reftable-block.c:424,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:425,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-block.c:428,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:430,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-block.c:430,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:433,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:435,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:435,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-block.c:439,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:440,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-block.c:441,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:442,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-block.c:444,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:445,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-block.c:446,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-block.c:447,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-block.c:448,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-block.c:448,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-block.c:451,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-block.c:452,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:453,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-block.c:454,1
    - Dst: reftable_block_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:455,1
    - Dst: block_writer_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:456,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-block.c:457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 381
    functionDepth: 5
    functionLinenumber: 381
    functionLinenumberEnd: 458
    functionName: test_reftable_block__iterator
    functionSourceFile: /src/git/t/unit-tests/u-reftable-block.c
    functionUses: 0
    functionsReached:
    - block_writer_init
    - reftable_iterator_next_ref
    - reftable_block_init
    - reftable_block_release
    - cl_assert
    - reftable_free
    - reftable_iterator_seek_ref
    - reftable_ref_record_equal
    - ARRAY_SIZE
    - memset
    - block_writer_add
    - reftable_block_init_iterator
    - reftable_buf_release
    - reftable_iterator_destroy
    - REFTABLE_CALLOC_ARRAY
    - hash_size
    - block_writer_release
    - block_source_from_buf
    - xstrfmt
    - block_writer_finish
    - cl_assert_equal_i
    - reftable_ref_record_release
    linkageType: ''
    returnType: void
    signature: void test_reftable_block__iterator(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_type
      Src: /src/git/t/unit-tests/u-reftable-record.c:20,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:21,1
    - Dst: reftable_record_init
      Src: /src/git/t/unit-tests/u-reftable-record.c:21,1
    - Dst: reftable_record_copy_from
      Src: /src/git/t/unit-tests/u-reftable-record.c:22,1
    - Dst: reftable_record_copy_from
      Src: /src/git/t/unit-tests/u-reftable-record.c:24,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:25,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:25,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: t_copy
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 7
    functionsReached:
    - reftable_record_init
    - reftable_record_equal
    - reftable_record_release
    - cl_assert_equal_i
    - reftable_record_type
    - reftable_record_copy_from
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void t_copy(struct reftable_record *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-record.c:43,1
    - Dst: put_var_int
      Src: /src/git/t/unit-tests/u-reftable-record.c:51,1
    - Dst: cl_assert_gt_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:54,1
    - Dst: get_var_int
      Src: /src/git/t/unit-tests/u-reftable-record.c:56,1
    - Dst: cl_assert_gt_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:57,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: test_reftable_record__varint_roundtrip
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - put_var_int
    - cl_assert_equal_i
    - get_var_int
    - cl_assert_gt_i
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__varint_roundtrip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:75,1
    - Dst: get_var_int
      Src: /src/git/t/unit-tests/u-reftable-record.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: test_reftable_record__varint_overflow
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - get_var_int
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__varint_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_size
      Src: /src/git/t/unit-tests/u-reftable-record.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - h
    - j
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: set_hash
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 3
    functionsReached:
    - hash_size
    linkageType: ''
    returnType: void
    signature: void set_hash(uint8_t *h, int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:106,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:106,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:107,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:107,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:108,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:110,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:110,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:112,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:112,1
    - Dst: cl_assert_gt_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:113,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:116,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:116,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:118,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:118,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 120
    functionName: test_reftable_record__ref_record_comparison
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - reftable_record_equal
    - reftable_record_cmp
    - cl_assert_equal_i
    - cl_assert_gt_i
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__ref_record_comparison(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:136,1
    - Dst: reftable_ref_record_compare_name
      Src: /src/git/t/unit-tests/u-reftable-record.c:136,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:138,1
    - Dst: reftable_ref_record_compare_name
      Src: /src/git/t/unit-tests/u-reftable-record.c:138,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:140,1
    - Dst: reftable_ref_record_compare_name
      Src: /src/git/t/unit-tests/u-reftable-record.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: test_reftable_record__ref_record_compare_name
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_ref_record_compare_name
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__ref_record_compare_name(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_hash
      Src: /src/git/t/unit-tests/u-reftable-record.c:167,1
    - Dst: set_hash
      Src: /src/git/t/unit-tests/u-reftable-record.c:170,1
    - Dst: set_hash
      Src: /src/git/t/unit-tests/u-reftable-record.c:171,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:174,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:177,1
    - Dst: t_copy
      Src: /src/git/t/unit-tests/u-reftable-record.c:179,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:181,1
    - Dst: reftable_record_val_type
      Src: /src/git/t/unit-tests/u-reftable-record.c:181,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:182,1
    - Dst: reftable_record_is_deletion
      Src: /src/git/t/unit-tests/u-reftable-record.c:182,1
    - Dst: reftable_record_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:185,1
    - Dst: reftable_record_encode
      Src: /src/git/t/unit-tests/u-reftable-record.c:186,1
    - Dst: cl_assert_gt_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:187,1
    - Dst: reftable_record_decode
      Src: /src/git/t/unit-tests/u-reftable-record.c:190,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:191,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:193,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:193,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:196,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:198,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:199,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 203
    functionName: test_reftable_record__ref_record_roundtrip
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - reftable_ref_record_equal
    - set_hash
    - reftable_record_encode
    - reftable_record_release
    - cl_assert_equal_i
    - reftable_record_val_type
    - reftable_record_decode
    - reftable_record_key
    - cl_assert
    - reftable_buf_release
    - reftable_record_is_deletion
    - cl_assert_gt_i
    - t_copy
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__ref_record_roundtrip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:226,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:226,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:228,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:228,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:230,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:230,1
    - Dst: cl_assert_gt_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:231,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:234,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:234,1
    - Dst: cl_assert_lt_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:235,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:238,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:238,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:240,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 241
    functionName: test_reftable_record__log_record_comparison
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - reftable_record_equal
    - reftable_record_cmp
    - cl_assert_equal_i
    - cl_assert_lt_i
    - cl_assert_gt_i
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__log_record_comparison(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:260,1
    - Dst: reftable_log_record_compare_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:260,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:262,1
    - Dst: reftable_log_record_compare_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:262,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:266,1
    - Dst: reftable_log_record_compare_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:266,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:269,1
    - Dst: reftable_log_record_compare_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:269,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:271,1
    - Dst: reftable_log_record_compare_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:271,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:274,1
    - Dst: reftable_log_record_compare_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 275
    functionName: test_reftable_record__log_record_compare_key
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_log_record_compare_key
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__log_record_compare_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:281,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:286,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:287,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:288,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:295,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:300,1
    - Dst: set_hash
      Src: /src/git/t/unit-tests/u-reftable-record.c:306,1
    - Dst: set_hash
      Src: /src/git/t/unit-tests/u-reftable-record.c:307,1
    - Dst: set_hash
      Src: /src/git/t/unit-tests/u-reftable-record.c:308,1
    - Dst: set_hash
      Src: /src/git/t/unit-tests/u-reftable-record.c:309,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:311,1
    - Dst: reftable_log_record_is_deletion
      Src: /src/git/t/unit-tests/u-reftable-record.c:311,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:312,1
    - Dst: reftable_log_record_is_deletion
      Src: /src/git/t/unit-tests/u-reftable-record.c:312,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:313,1
    - Dst: reftable_log_record_is_deletion
      Src: /src/git/t/unit-tests/u-reftable-record.c:313,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-record.c:315,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:327,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:331,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:332,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-record.c:333,1
    - Dst: t_copy
      Src: /src/git/t/unit-tests/u-reftable-record.c:342,1
    - Dst: reftable_record_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:344,1
    - Dst: reftable_record_encode
      Src: /src/git/t/unit-tests/u-reftable-record.c:346,1
    - Dst: cl_assert_ge_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:347,1
    - Dst: reftable_record_val_type
      Src: /src/git/t/unit-tests/u-reftable-record.c:348,1
    - Dst: reftable_record_decode
      Src: /src/git/t/unit-tests/u-reftable-record.c:349,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:351,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:353,1
    - Dst: reftable_log_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:353,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:355,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:356,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:357,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 361
    functionName: test_reftable_record__log_record_roundtrip
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - set_hash
    - reftable_log_record_is_deletion
    - reftable_record_encode
    - reftable_log_record_release
    - reftable_log_record_equal
    - reftable_record_release
    - cl_assert_equal_i
    - reftable_record_val_type
    - reftable_record_decode
    - reftable_record_key
    - cl_assert_ge_i
    - reftable_buf_release
    - t_copy
    - xstrdup
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__log_record_roundtrip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:378,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-record.c:378,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:380,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-record.c:380,1
    - Dst: reftable_encode_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:383,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:384,1
    - Dst: cl_assert_gt_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:385,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:387,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-record.c:387,1
    - Dst: reftable_decode_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:389,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:390,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:391,1
    - Dst: reftable_buf_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:391,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:392,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:394,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:395,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 397
    functionName: test_reftable_record__key_roundtrip
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - reftable_encode_key
    - reftable_decode_key
    - cl_assert_equal_i
    - reftable_buf_release
    - reftable_buf_cmp
    - cl_assert_gt_i
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__key_roundtrip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:427,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:427,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:429,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:429,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:430,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:432,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:432,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:434,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:434,1
    - Dst: cl_assert_gt_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:435,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:438,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:438,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:439,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:439,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 441
    functionName: test_reftable_record__obj_record_comparison
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - reftable_record_equal
    - reftable_record_cmp
    - cl_assert_equal_i
    - cl_assert_gt_i
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__obj_record_comparison(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-record.c:467,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:484,1
    - Dst: reftable_record_is_deletion
      Src: /src/git/t/unit-tests/u-reftable-record.c:484,1
    - Dst: t_copy
      Src: /src/git/t/unit-tests/u-reftable-record.c:485,1
    - Dst: reftable_record_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:486,1
    - Dst: reftable_record_encode
      Src: /src/git/t/unit-tests/u-reftable-record.c:487,1
    - Dst: cl_assert_gt_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:488,1
    - Dst: reftable_record_val_type
      Src: /src/git/t/unit-tests/u-reftable-record.c:489,1
    - Dst: reftable_record_decode
      Src: /src/git/t/unit-tests/u-reftable-record.c:490,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:492,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:494,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:494,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:496,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:497,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 501
    functionName: test_reftable_record__obj_record_roundtrip
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - reftable_record_encode
    - reftable_record_equal
    - reftable_record_release
    - cl_assert_equal_i
    - reftable_record_val_type
    - reftable_record_decode
    - reftable_record_key
    - reftable_buf_release
    - reftable_record_is_deletion
    - cl_assert_gt_i
    - t_copy
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__obj_record_roundtrip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:524,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-record.c:524,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:526,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-record.c:526,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:527,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-record.c:527,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:530,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:530,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:532,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:532,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:533,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:535,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:535,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:537,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:537,1
    - Dst: cl_assert_gt_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:538,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:541,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:541,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:543,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:543,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:544,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-record.c:546,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 548
    functionName: test_reftable_record__index_record_comparison
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - ARRAY_SIZE
    - reftable_record_equal
    - reftable_record_cmp
    - reftable_record_release
    - cl_assert_equal_i
    - cl_assert_gt_i
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__index_record_comparison(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:573,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-record.c:573,1
    - Dst: reftable_record_key
      Src: /src/git/t/unit-tests/u-reftable-record.c:575,1
    - Dst: t_copy
      Src: /src/git/t/unit-tests/u-reftable-record.c:576,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:578,1
    - Dst: reftable_record_is_deletion
      Src: /src/git/t/unit-tests/u-reftable-record.c:578,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:579,1
    - Dst: reftable_buf_cmp
      Src: /src/git/t/unit-tests/u-reftable-record.c:579,1
    - Dst: reftable_record_encode
      Src: /src/git/t/unit-tests/u-reftable-record.c:580,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:581,1
    - Dst: reftable_record_val_type
      Src: /src/git/t/unit-tests/u-reftable-record.c:583,1
    - Dst: reftable_record_decode
      Src: /src/git/t/unit-tests/u-reftable-record.c:584,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-record.c:586,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-record.c:588,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-record.c:588,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:591,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:592,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:593,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-record.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 595
    functionName: test_reftable_record__index_record_roundtrip
    functionSourceFile: /src/git/t/unit-tests/u-reftable-record.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - reftable_record_encode
    - reftable_record_equal
    - reftable_record_release
    - cl_assert_equal_i
    - reftable_record_val_type
    - cl_assert
    - reftable_record_key
    - reftable_record_decode
    - reftable_buf_release
    - reftable_record_is_deletion
    - t_copy
    - reftable_buf_cmp
    linkageType: ''
    returnType: void
    signature: void test_reftable_record__index_record_roundtrip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - va
    - vb
    - UNUSED
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 8
    functionName: intcmp
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int intcmp(const void *va, const void *vb, void *data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: show
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int show(int *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_peek
      Src: /src/git/t/unit-tests/u-prio-queue.c:33,1
    - Dst: prio_queue_get
      Src: /src/git/t/unit-tests/u-prio-queue.c:34,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-prio-queue.c:35,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-prio-queue.c:36,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-prio-queue.c:37,1
    - Dst: show
      Src: /src/git/t/unit-tests/u-prio-queue.c:37,1
    - Dst: prio_queue_peek
      Src: /src/git/t/unit-tests/u-prio-queue.c:41,1
    - Dst: prio_queue_get
      Src: /src/git/t/unit-tests/u-prio-queue.c:42,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-prio-queue.c:43,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-prio-queue.c:44,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-prio-queue.c:45,1
    - Dst: show
      Src: /src/git/t/unit-tests/u-prio-queue.c:45,1
    - Dst: prio_queue_reverse
      Src: /src/git/t/unit-tests/u-prio-queue.c:53,1
    - Dst: prio_queue_peek
      Src: /src/git/t/unit-tests/u-prio-queue.c:56,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-prio-queue.c:57,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-prio-queue.c:58,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-prio-queue.c:59,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-prio-queue.c:60,1
    - Dst: show
      Src: /src/git/t/unit-tests/u-prio-queue.c:60,1
    - Dst: prio_queue_replace
      Src: /src/git/t/unit-tests/u-prio-queue.c:62,1
    - Dst: prio_queue_put
      Src: /src/git/t/unit-tests/u-prio-queue.c:65,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-prio-queue.c:69,1
    - Dst: clear_prio_queue
      Src: /src/git/t/unit-tests/u-prio-queue.c:70,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 4
    argNames:
    - input
    - input_size
    - result
    - result_size
    argTypes:
    - int*
    - size_t
    - int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 71
    functionName: test_prio_queue
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 0
    functionsReached:
    - prio_queue_put
    - prio_queue_get
    - show
    - prio_queue_reverse
    - cl_assert_equal_i
    - prio_queue_replace
    - prio_queue_peek
    - clear_prio_queue
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void test_prio_queue(int *input, size_t input_size,\n\t\t\t    int
      *result, size_t result_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - input
    - ','
    - result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: TEST_INPUT
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_INPUT(input, result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_INPUT
      Src: /src/git/t/unit-tests/u-prio-queue.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: test_prio_queue__basic
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 0
    functionsReached:
    - TEST_INPUT
    linkageType: ''
    returnType: void
    signature: void test_prio_queue__basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_INPUT
      Src: /src/git/t/unit-tests/u-prio-queue.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: test_prio_queue__mixed
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 0
    functionsReached:
    - TEST_INPUT
    linkageType: ''
    returnType: void
    signature: void test_prio_queue__mixed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_INPUT
      Src: /src/git/t/unit-tests/u-prio-queue.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: test_prio_queue__empty
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 0
    functionsReached:
    - TEST_INPUT
    linkageType: ''
    returnType: void
    signature: void test_prio_queue__empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_INPUT
      Src: /src/git/t/unit-tests/u-prio-queue.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: test_prio_queue__replace
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 0
    functionsReached:
    - TEST_INPUT
    linkageType: ''
    returnType: void
    signature: void test_prio_queue__replace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_INPUT
      Src: /src/git/t/unit-tests/u-prio-queue.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: test_prio_queue__stack
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 0
    functionsReached:
    - TEST_INPUT
    linkageType: ''
    returnType: void
    signature: void test_prio_queue__stack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_INPUT
      Src: /src/git/t/unit-tests/u-prio-queue.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: test_prio_queue__reverse_stack
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 0
    functionsReached:
    - TEST_INPUT
    linkageType: ''
    returnType: void
    signature: void test_prio_queue__reverse_stack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_INPUT
      Src: /src/git/t/unit-tests/u-prio-queue.c:115,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_prio_queue__replace_stack
    functionSourceFile: /src/git/t/unit-tests/u-prio-queue.c
    functionUses: 0
    functionsReached:
    - TEST_INPUT
    linkageType: ''
    returnType: void
    signature: void test_prio_queue__replace_stack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - path
    - ','
    - depth
    - ','
    - max_depth
    - ','
    - expect
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 11
    functionName: TEST_WITHIN_DEPTH
    functionSourceFile: /src/git/t/unit-tests/u-dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_WITHIN_DEPTH(path, depth, max_depth, expect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:15,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:16,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:17,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:18,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:19,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:20,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:23,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:24,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:25,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:26,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:27,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:28,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:31,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:32,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:33,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:34,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:35,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:36,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:39,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:40,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:41,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:42,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:43,1
    - Dst: TEST_WITHIN_DEPTH
      Src: /src/git/t/unit-tests/u-dir.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 47
    functionName: test_dir__within_depth
    functionSourceFile: /src/git/t/unit-tests/u-dir.c
    functionUses: 0
    functionsReached:
    - TEST_WITHIN_DEPTH
    linkageType: ''
    returnType: void
    signature: void test_dir__within_depth(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_unknown_object
      Src: /src/git/t/unit-tests/u-example-decorate.c:20,1
    - Dst: lookup_unknown_object
      Src: /src/git/t/unit-tests/u-example-decorate.c:21,1
    - Dst: lookup_unknown_object
      Src: /src/git/t/unit-tests/u-example-decorate.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: test_example_decorate__initialize
    functionSourceFile: /src/git/t/unit-tests/u-example-decorate.c
    functionUses: 0
    functionsReached:
    - lookup_unknown_object
    linkageType: ''
    returnType: void
    signature: void test_example_decorate__initialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: test_example_decorate__cleanup
    functionSourceFile: /src/git/t/unit-tests/u-example-decorate.c
    functionUses: 0
    functionsReached:
    - clear_decoration
    linkageType: ''
    returnType: void
    signature: void test_example_decorate__cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:32,1
    - Dst: add_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:32,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:33,1
    - Dst: add_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: test_example_decorate__add
    functionSourceFile: /src/git/t/unit-tests/u-example-decorate.c
    functionUses: 0
    functionsReached:
    - add_decoration
    - cl_assert_equal_p
    linkageType: ''
    returnType: void
    signature: void test_example_decorate__add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:38,1
    - Dst: add_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:38,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:39,1
    - Dst: add_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:39,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:40,1
    - Dst: add_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:40,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:41,1
    - Dst: add_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: test_example_decorate__readd
    functionSourceFile: /src/git/t/unit-tests/u-example-decorate.c
    functionUses: 0
    functionsReached:
    - add_decoration
    - cl_assert_equal_p
    linkageType: ''
    returnType: void
    signature: void test_example_decorate__readd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:46,1
    - Dst: add_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:46,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:47,1
    - Dst: add_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:47,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:48,1
    - Dst: lookup_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:48,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:49,1
    - Dst: lookup_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: test_example_decorate__lookup
    functionSourceFile: /src/git/t/unit-tests/u-example-decorate.c
    functionUses: 0
    functionsReached:
    - lookup_decoration
    - add_decoration
    - cl_assert_equal_p
    linkageType: ''
    returnType: void
    signature: void test_example_decorate__lookup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:56,1
    - Dst: add_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:56,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-example-decorate.c:57,1
    - Dst: add_decoration
      Src: /src/git/t/unit-tests/u-example-decorate.c:57,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-example-decorate.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: test_example_decorate__loop
    functionSourceFile: /src/git/t/unit-tests/u-example-decorate.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - add_decoration
    - cl_assert_equal_p
    linkageType: ''
    returnType: void
    signature: void test_example_decorate__loop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: TEST
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(t, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: if_test
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: if_test(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: TEST_LOCATION
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_LOCATION()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: check
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check(x)
  - 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: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: check_pointer_eq
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_pointer_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: check_int
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_int(a, op, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: check_uint
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_uint(a, op, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: check_char
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_char(a, op, 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: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: check_str
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_str(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - check
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: TEST_TODO
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_TODO(check)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: TEST__STR
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST__STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: TEST__MAKE_LOCATION
    functionSourceFile: /src/git/t/unit-tests/test-lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST__MAKE_LOCATION(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - _args
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: integer_needle_lesseq
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int integer_needle_lesseq(size_t i, void *_args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: realloc_stub
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *realloc_stub(void *p UNUSED, size_t size UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-basics.c:50,1
    - Dst: binsearch
      Src: /src/git/t/unit-tests/u-reftable-basics.c:57,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-basics.c:57,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: test_reftable_basics__binsearch
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - ARRAY_SIZE
    - binsearch
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__binsearch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:66,1
    - Dst: names_length
      Src: /src/git/t/unit-tests/u-reftable-basics.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: test_reftable_basics__names_length
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - names_length
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__names_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:75,1
    - Dst: names_equal
      Src: /src/git/t/unit-tests/u-reftable-basics.c:75,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:76,1
    - Dst: names_equal
      Src: /src/git/t/unit-tests/u-reftable-basics.c:76,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:77,1
    - Dst: names_equal
      Src: /src/git/t/unit-tests/u-reftable-basics.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: test_reftable_basics__names_equal
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - names_equal
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__names_equal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_names
      Src: /src/git/t/unit-tests/u-reftable-basics.c:85,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-reftable-basics.c:85,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:86,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:87,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-basics.c:88,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:89,1
    - Dst: free_names
      Src: /src/git/t/unit-tests/u-reftable-basics.c:90,1
    - Dst: parse_names
      Src: /src/git/t/unit-tests/u-reftable-basics.c:93,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-reftable-basics.c:93,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:94,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:95,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-basics.c:96,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-basics.c:97,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-basics.c:98,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:99,1
    - Dst: free_names
      Src: /src/git/t/unit-tests/u-reftable-basics.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 101
    functionName: test_reftable_basics__parse_names
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - parse_names
    - strlen
    - free_names
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__parse_names(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_names
      Src: /src/git/t/unit-tests/u-reftable-basics.c:107,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-reftable-basics.c:107,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:108,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: test_reftable_basics__parse_names_missing_newline
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - parse_names
    - strlen
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__parse_names_missing_newline(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_names
      Src: /src/git/t/unit-tests/u-reftable-basics.c:116,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-reftable-basics.c:116,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:117,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:118,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-basics.c:119,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-basics.c:121,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:122,1
    - Dst: free_names
      Src: /src/git/t/unit-tests/u-reftable-basics.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: test_reftable_basics__parse_names_drop_empty_string
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - parse_names
    - strlen
    - free_names
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__parse_names_drop_empty_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-basics.c:141,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:142,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-basics.c:142,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:143,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-basics.c:143,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:144,1
    - Dst: common_prefix_size
      Src: /src/git/t/unit-tests/u-reftable-basics.c:144,1
    - Dst: reftable_buf_reset
      Src: /src/git/t/unit-tests/u-reftable-basics.c:145,1
    - Dst: reftable_buf_reset
      Src: /src/git/t/unit-tests/u-reftable-basics.c:146,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-basics.c:148,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-basics.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 150
    functionName: test_reftable_basics__common_prefix_size
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - reftable_buf_addstr
    - common_prefix_size
    - reftable_buf_reset
    - cl_assert_equal_i
    - reftable_buf_release
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__common_prefix_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_put_be64
      Src: /src/git/t/unit-tests/u-reftable-basics.c:157,1
    - Dst: reftable_get_be64
      Src: /src/git/t/unit-tests/u-reftable-basics.c:158,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: test_reftable_basics__put_get_be64
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - reftable_put_be64
    - cl_assert
    - reftable_get_be64
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__put_get_be64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_put_be32
      Src: /src/git/t/unit-tests/u-reftable-basics.c:167,1
    - Dst: reftable_get_be32
      Src: /src/git/t/unit-tests/u-reftable-basics.c:168,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: test_reftable_basics__put_get_be32
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - reftable_get_be32
    - reftable_put_be32
    - cl_assert_equal_i
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__put_get_be32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_put_be24
      Src: /src/git/t/unit-tests/u-reftable-basics.c:177,1
    - Dst: reftable_get_be24
      Src: /src/git/t/unit-tests/u-reftable-basics.c:178,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: test_reftable_basics__put_get_be24
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_get_be24
    - reftable_put_be24
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__put_get_be24(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_put_be16
      Src: /src/git/t/unit-tests/u-reftable-basics.c:187,1
    - Dst: reftable_get_be16
      Src: /src/git/t/unit-tests/u-reftable-basics.c:188,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:189,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: test_reftable_basics__put_get_be16
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_put_be16
    - reftable_get_be16
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__put_get_be16(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:197,1
    - Dst: REFTABLE_ALLOC_GROW
      Src: /src/git/t/unit-tests/u-reftable-basics.c:197,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:198,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:199,1
    - Dst: reftable_set_alloc
      Src: /src/git/t/unit-tests/u-reftable-basics.c:204,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:205,1
    - Dst: REFTABLE_ALLOC_GROW
      Src: /src/git/t/unit-tests/u-reftable-basics.c:205,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:206,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:207,1
    - Dst: reftable_set_alloc
      Src: /src/git/t/unit-tests/u-reftable-basics.c:210,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:211,1
    - Dst: REFTABLE_ALLOC_GROW
      Src: /src/git/t/unit-tests/u-reftable-basics.c:211,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:212,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:213,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-basics.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 217
    functionName: test_reftable_basics__alloc_grow
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - reftable_free
    - REFTABLE_ALLOC_GROW
    - cl_assert_equal_i
    - reftable_set_alloc
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__alloc_grow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/t/unit-tests/u-reftable-basics.c:224,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:225,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:226,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/t/unit-tests/u-reftable-basics.c:230,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:231,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:232,1
    - Dst: reftable_set_alloc
      Src: /src/git/t/unit-tests/u-reftable-basics.c:236,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/t/unit-tests/u-reftable-basics.c:237,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-basics.c:238,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-basics.c:239,1
    - Dst: reftable_set_alloc
      Src: /src/git/t/unit-tests/u-reftable-basics.c:240,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-basics.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 243
    functionName: test_reftable_basics__alloc_grow_or_null
    functionSourceFile: /src/git/t/unit-tests/u-reftable-basics.c
    functionUses: 0
    functionsReached:
    - reftable_free
    - REFTABLE_ALLOC_GROW_OR_NULL
    - cl_assert_equal_i
    - reftable_set_alloc
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_basics__alloc_grow_or_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: t_compare
    functionSourceFile: /src/git/t/unit-tests/u-reftable-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int t_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - key
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: store
    functionSourceFile: /src/git/t/unit-tests/u-reftable-tree.c
    functionUses: 154
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store(void *arg, void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tree_insert
      Src: /src/git/t/unit-tests/u-reftable-tree.c:40,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-tree.c:41,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-tree.c:45,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-reftable-tree.c:46,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-reftable-tree.c:47,1
    - Dst: tree_search
      Src: /src/git/t/unit-tests/u-reftable-tree.c:47,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-tree.c:50,1
    - Dst: tree_search
      Src: /src/git/t/unit-tests/u-reftable-tree.c:50,1
    - Dst: tree_free
      Src: /src/git/t/unit-tests/u-reftable-tree.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 52
    functionName: test_reftable_tree__tree_search
    functionSourceFile: /src/git/t/unit-tests/u-reftable-tree.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - tree_insert
    - tree_search
    - cl_assert_equal_p
    - tree_free
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_tree__tree_search(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tree_insert
      Src: /src/git/t/unit-tests/u-reftable-tree.c:66,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-tree.c:67,1
    - Dst: infix_walk
      Src: /src/git/t/unit-tests/u-reftable-tree.c:72,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-tree.c:73,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-reftable-tree.c:74,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-tree.c:75,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-tree.c:76,1
    - Dst: tree_free
      Src: /src/git/t/unit-tests/u-reftable-tree.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: test_reftable_tree__infix_walk
    functionSourceFile: /src/git/t/unit-tests/u-reftable-tree.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - tree_insert
    - infix_walk
    - cl_assert_equal_p
    - cl_assert_equal_i
    - tree_free
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_tree__infix_walk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - class
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 15
    functionName: TEST_CHAR_CLASS
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHAR_CLASS(class, string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: test_ctype__isspace
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__isspace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: test_ctype__isdigit
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__isdigit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: test_ctype__isalpha
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_ctype__isalpha(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: test_ctype__isalnum
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_ctype__isalnum(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: test_ctype__is_glob_special
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__is_glob_special(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: test_ctype__is_regex_special
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__is_regex_special(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: test_ctype__is_pathspec_magic
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__is_pathspec_magic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: test_ctype__isascii
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__isascii(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c: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_ctype__islower
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__islower(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: test_ctype__isupper
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__isupper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: test_ctype__iscntrl
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__iscntrl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: test_ctype__ispunct
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__ispunct(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHAR_CLASS
      Src: /src/git/t/unit-tests/u-ctype.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: test_ctype__isxdigit
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached:
    - TEST_CHAR_CLASS
    linkageType: ''
    returnType: void
    signature: void test_ctype__isxdigit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: test_ctype__isprint
    functionSourceFile: /src/git/t/unit-tests/u-ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_ctype__isprint(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/t/unit-tests/u-oidmap.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: test_free_fn
    functionSourceFile: /src/git/t/unit-tests/u-oidmap.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void test_free_fn(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidmap_init
      Src: /src/git/t/unit-tests/u-oidmap.c:32,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-oidmap.c:34,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/t/unit-tests/u-oidmap.c:37,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:38,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:39,1
    - Dst: oidmap_put
      Src: /src/git/t/unit-tests/u-oidmap.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 6
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: test_oidmap__initialize
    functionSourceFile: /src/git/t/unit-tests/u-oidmap.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - oidmap_put
    - cl_parse_any_oid
    - oidmap_init
    - FLEX_ALLOC_STR
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_oidmap__initialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidmap_clear
      Src: /src/git/t/unit-tests/u-oidmap.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: test_oidmap__cleanup
    functionSourceFile: /src/git/t/unit-tests/u-oidmap.c
    functionUses: 0
    functionsReached:
    - oidmap_clear
    linkageType: ''
    returnType: void
    signature: void test_oidmap__cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/t/unit-tests/u-oidmap.c:52,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:53,1
    - Dst: oidmap_put
      Src: /src/git/t/unit-tests/u-oidmap.c:54,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:55,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-oidmap.c:56,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-oidmap.c:57,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/t/unit-tests/u-oidmap.c:59,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:60,1
    - Dst: oidmap_put
      Src: /src/git/t/unit-tests/u-oidmap.c:61,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:62,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-oidmap.c:63,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-oidmap.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: test_oidmap__replace
    functionSourceFile: /src/git/t/unit-tests/u-oidmap.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - oidmap_put
    - cl_parse_any_oid
    - free
    - FLEX_ALLOC_STR
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_oidmap__replace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:72,1
    - Dst: oidmap_get
      Src: /src/git/t/unit-tests/u-oidmap.c:73,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:74,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-oidmap.c:75,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:77,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:78,1
    - Dst: oidmap_get
      Src: /src/git/t/unit-tests/u-oidmap.c:78,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:80,1
    - Dst: oidmap_get
      Src: /src/git/t/unit-tests/u-oidmap.c:81,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:82,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-oidmap.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 84
    functionName: test_oidmap__get
    functionSourceFile: /src/git/t/unit-tests/u-oidmap.c
    functionUses: 0
    functionsReached:
    - oidmap_get
    - cl_assert_equal_s
    - cl_assert
    - cl_parse_any_oid
    linkageType: ''
    returnType: void
    signature: void test_oidmap__get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:91,1
    - Dst: oidmap_remove
      Src: /src/git/t/unit-tests/u-oidmap.c:92,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:93,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-oidmap.c:94,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:95,1
    - Dst: oidmap_get
      Src: /src/git/t/unit-tests/u-oidmap.c:95,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-oidmap.c:96,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:98,1
    - Dst: oidmap_remove
      Src: /src/git/t/unit-tests/u-oidmap.c:99,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:100,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-oidmap.c:101,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:102,1
    - Dst: oidmap_get
      Src: /src/git/t/unit-tests/u-oidmap.c:102,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-oidmap.c:103,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:105,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:106,1
    - Dst: oidmap_remove
      Src: /src/git/t/unit-tests/u-oidmap.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 107
    functionName: test_oidmap__remove
    functionSourceFile: /src/git/t/unit-tests/u-oidmap.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - cl_parse_any_oid
    - oidmap_get
    - oidmap_remove
    - free
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_oidmap__remove(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-oidmap.c:111,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:114,1
    - Dst: oideq
      Src: /src/git/t/unit-tests/u-oidmap.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - entry
    - seen
    argTypes:
    - struct test_entry*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: key_val_contains
    functionSourceFile: /src/git/t/unit-tests/u-oidmap.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - oideq
    - cl_parse_any_oid
    linkageType: ''
    returnType: int
    signature: int key_val_contains(struct test_entry *entry, char seen[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-oidmap.c:130,1
    - Dst: oidmap_iter_init
      Src: /src/git/t/unit-tests/u-oidmap.c:133,1
    - Dst: oidmap_iter_next
      Src: /src/git/t/unit-tests/u-oidmap.c:134,1
    - Dst: key_val_contains
      Src: /src/git/t/unit-tests/u-oidmap.c:135,1
    - Dst: cl_failf
      Src: /src/git/t/unit-tests/u-oidmap.c:136,1
    - Dst: oid_to_hex
      Src: /src/git/t/unit-tests/u-oidmap.c:137,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-oidmap.c:141,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-oidmap.c:141,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-oidmap.c:142,1
    - Dst: hashmap_get_size
      Src: /src/git/t/unit-tests/u-oidmap.c:142,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-oidmap.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 143
    functionName: test_oidmap__iterate
    functionSourceFile: /src/git/t/unit-tests/u-oidmap.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - oid_to_hex
    - oidmap_iter_next
    - oidmap_iter_init
    - cl_failf
    - cl_assert_equal_i
    - key_val_contains
    - hashmap_get_size
    linkageType: ''
    returnType: void
    signature: void test_oidmap__iterate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/t/unit-tests/u-oidmap.c:152,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:153,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:154,1
    - Dst: oidmap_put
      Src: /src/git/t/unit-tests/u-oidmap.c:154,1
    - Dst: oidmap_clear_with_free
      Src: /src/git/t/unit-tests/u-oidmap.c:156,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-oidmap.c:158,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-oidmap.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 145
    functionDepth: 6
    functionLinenumber: 145
    functionLinenumberEnd: 161
    functionName: test_oidmap__clear_without_free_callback
    functionSourceFile: /src/git/t/unit-tests/u-oidmap.c
    functionUses: 0
    functionsReached:
    - oidmap_put
    - oidmap_clear_with_free
    - cl_parse_any_oid
    - cl_assert_equal_i
    - free
    - FLEX_ALLOC_STR
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_oidmap__clear_without_free_callback(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/t/unit-tests/u-oidmap.c:170,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidmap.c:171,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidmap.c:172,1
    - Dst: oidmap_put
      Src: /src/git/t/unit-tests/u-oidmap.c:172,1
    - Dst: oidmap_clear_with_free
      Src: /src/git/t/unit-tests/u-oidmap.c:174,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-oidmap.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 163
    functionDepth: 6
    functionLinenumber: 163
    functionLinenumberEnd: 177
    functionName: test_oidmap__clear_with_free_callback
    functionSourceFile: /src/git/t/unit-tests/u-oidmap.c
    functionUses: 0
    functionsReached:
    - oidmap_put
    - oidmap_clear_with_free
    - cl_parse_any_oid
    - cl_assert_equal_i
    - FLEX_ALLOC_STR
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_oidmap__clear_with_free_callback(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tree
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: FILL_TREE
    functionSourceFile: /src/git/t/unit-tests/u-oidtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILL_TREE(tree, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidtree.c:21,1
    - Dst: oidtree_insert
      Src: /src/git/t/unit-tests/u-oidtree.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ot
    - hexes
    - n
    argTypes:
    - struct oidtree*
    - char*[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: fill_tree_loc
    functionSourceFile: /src/git/t/unit-tests/u-oidtree.c
    functionUses: 0
    functionsReached:
    - oidtree_insert
    - cl_parse_any_oid
    linkageType: ''
    returnType: int
    signature: int fill_tree_loc(struct oidtree *ot, const char *hexes[], size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidtree.c:31,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-oidtree.c:32,1
    - Dst: oidtree_contains
      Src: /src/git/t/unit-tests/u-oidtree.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ot
    - hex
    - expected
    argTypes:
    - struct oidtree*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: check_contains
    functionSourceFile: /src/git/t/unit-tests/u-oidtree.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - oidtree_contains
    - cl_parse_any_oid
    linkageType: ''
    returnType: void
    signature: void check_contains(struct oidtree *ot, const char *hex, bool expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-oidtree.c:46,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidtree.c:48,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-oidtree.c:50,1
    - Dst: oid_to_hex
      Src: /src/git/t/unit-tests/u-oidtree.c:50,1
    - Dst: oid_to_hex
      Src: /src/git/t/unit-tests/u-oidtree.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - oid
    - node_data
    - cb_data
    argTypes:
    - struct object_id*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: check_each_cb
    functionSourceFile: /src/git/t/unit-tests/u-oidtree.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - oid_to_hex
    - cl_parse_any_oid
    - cl_assert
    linkageType: ''
    returnType: int
    signature: int check_each_cb(const struct object_id *oid, void *node_data UNUSED,
      void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/u-oidtree.c:64,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/u-oidtree.c:65,1
    - Dst: strvec_push
      Src: /src/git/t/unit-tests/u-oidtree.c:66,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/u-oidtree.c:67,1
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidtree.c:69,1
    - Dst: oidtree_each
      Src: /src/git/t/unit-tests/u-oidtree.c:70,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-oidtree.c:70,1
    - Dst: cl_failf
      Src: /src/git/t/unit-tests/u-oidtree.c:73,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-oidtree.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ot
    - query
    argTypes:
    - struct oidtree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 76
    functionName: check_each
    functionSourceFile: /src/git/t/unit-tests/u-oidtree.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - oidtree_each
    - cl_parse_any_oid
    - cl_failf
    - va_end
    - va_arg
    - strlen
    - strvec_clear
    - va_start
    linkageType: ''
    returnType: LAST_ARG_MUST_BE_NULL
    signature: LAST_ARG_MUST_BE_NULL check_each(struct oidtree *ot, const char *query,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidtree_init
      Src: /src/git/t/unit-tests/u-oidtree.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: test_oidtree__initialize
    functionSourceFile: /src/git/t/unit-tests/u-oidtree.c
    functionUses: 0
    functionsReached:
    - oidtree_init
    linkageType: ''
    returnType: void
    signature: void test_oidtree__initialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidtree_clear
      Src: /src/git/t/unit-tests/u-oidtree.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: test_oidtree__cleanup
    functionSourceFile: /src/git/t/unit-tests/u-oidtree.c
    functionUses: 0
    functionsReached:
    - oidtree_clear
    linkageType: ''
    returnType: void
    signature: void test_oidtree__cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FILL_TREE
      Src: /src/git/t/unit-tests/u-oidtree.c:90,1
    - Dst: check_contains
      Src: /src/git/t/unit-tests/u-oidtree.c:91,1
    - Dst: check_contains
      Src: /src/git/t/unit-tests/u-oidtree.c:92,1
    - Dst: check_contains
      Src: /src/git/t/unit-tests/u-oidtree.c:93,1
    - Dst: check_contains
      Src: /src/git/t/unit-tests/u-oidtree.c:94,1
    - Dst: check_contains
      Src: /src/git/t/unit-tests/u-oidtree.c:95,1
    - Dst: check_contains
      Src: /src/git/t/unit-tests/u-oidtree.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 6
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: test_oidtree__contains
    functionSourceFile: /src/git/t/unit-tests/u-oidtree.c
    functionUses: 0
    functionsReached:
    - FILL_TREE
    - check_contains
    linkageType: ''
    returnType: void
    signature: void test_oidtree__contains(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FILL_TREE
      Src: /src/git/t/unit-tests/u-oidtree.c:101,1
    - Dst: check_each
      Src: /src/git/t/unit-tests/u-oidtree.c:102,1
    - Dst: check_each
      Src: /src/git/t/unit-tests/u-oidtree.c:103,1
    - Dst: check_each
      Src: /src/git/t/unit-tests/u-oidtree.c:104,1
    - Dst: check_each
      Src: /src/git/t/unit-tests/u-oidtree.c:105,1
    - Dst: check_each
      Src: /src/git/t/unit-tests/u-oidtree.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: test_oidtree__each
    functionSourceFile: /src/git/t/unit-tests/u-oidtree.c
    functionUses: 0
    functionsReached:
    - FILL_TREE
    - check_each
    linkageType: ''
    returnType: void
    signature: void test_oidtree__each(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_parse_any_oid
      Src: /src/git/t/unit-tests/u-oidtree.c:115,1
    - Dst: oidtree_init
      Src: /src/git/t/unit-tests/u-oidtree.c:117,1
    - Dst: oidtree_insert
      Src: /src/git/t/unit-tests/u-oidtree.c:119,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-oidtree.c:120,1
    - Dst: oidtree_get
      Src: /src/git/t/unit-tests/u-oidtree.c:120,1
    - Dst: oidtree_insert
      Src: /src/git/t/unit-tests/u-oidtree.c:121,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-oidtree.c:122,1
    - Dst: oidtree_get
      Src: /src/git/t/unit-tests/u-oidtree.c:122,1
    - Dst: oidtree_insert
      Src: /src/git/t/unit-tests/u-oidtree.c:123,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-oidtree.c:124,1
    - Dst: oidtree_get
      Src: /src/git/t/unit-tests/u-oidtree.c:124,1
    - Dst: oidtree_clear
      Src: /src/git/t/unit-tests/u-oidtree.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 127
    functionName: test_oidtree__insert_overwrites_data
    functionSourceFile: /src/git/t/unit-tests/u-oidtree.c
    functionUses: 0
    functionsReached:
    - oidtree_insert
    - oidtree_init
    - cl_parse_any_oid
    - cl_assert_equal_p
    - oidtree_clear
    - oidtree_get
    linkageType: ''
    returnType: void
    signature: void test_oidtree__insert_overwrites_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:25,1
    - Dst: remove_dir_recursively
      Src: /src/git/t/unit-tests/u-reftable-stack.c:26,1
    - Dst: strbuf_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 8
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: clear_dir
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - remove_dir_recursively
    - strbuf_release
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void clear_dir(const char *dirname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:32,1
    - Dst: readdir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:38,1
    - Dst: starts_with
      Src: /src/git/t/unit-tests/u-reftable-stack.c:49,1
    - Dst: closedir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 55
    functionName: count_dir_entries
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - opendir
    - closedir
    - readdir
    - starts_with
    linkageType: ''
    returnType: int
    signature: int count_dir_entries(const char *dirname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/t/unit-tests/u-reftable-stack.c:63,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - linenumber
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: get_tmp_template
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - getenv
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *get_tmp_template(int linenumber)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_template
      Src: /src/git/t/unit-tests/u-reftable-stack.c:72,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:73,1
    - Dst: mkdtemp
      Src: /src/git/t/unit-tests/u-reftable-stack.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - linenumber
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: get_tmp_dir
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - mkdtemp
    - cl_assert
    - get_tmp_template
    linkageType: ''
    returnType: char
    signature: char *get_tmp_dir(int linenumber)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_template
      Src: /src/git/t/unit-tests/u-reftable-stack.c:79,1
    - Dst: mks_tempfile
      Src: /src/git/t/unit-tests/u-reftable-stack.c:80,1
    - Dst: get_tempfile_fd
      Src: /src/git/t/unit-tests/u-reftable-stack.c:81,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:87,1
    - Dst: write_in_full
      Src: /src/git/t/unit-tests/u-reftable-stack.c:88,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-reftable-stack.c:88,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:89,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-reftable-stack.c:89,1
    - Dst: close
      Src: /src/git/t/unit-tests/u-reftable-stack.c:90,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:91,1
    - Dst: read_lines
      Src: /src/git/t/unit-tests/u-reftable-stack.c:93,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:94,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-stack.c:97,1
    - Dst: free_names
      Src: /src/git/t/unit-tests/u-reftable-stack.c:98,1
    - Dst: remove
      Src: /src/git/t/unit-tests/u-reftable-stack.c:99,1
    - Dst: delete_tempfile
      Src: /src/git/t/unit-tests/u-reftable-stack.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 6
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: test_reftable_stack__read_file
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - delete_tempfile
    - mks_tempfile
    - get_tempfile_fd
    - get_tmp_template
    - cl_assert_equal_i
    - strlen
    - read_lines
    - close
    - write_in_full
    - free_names
    - remove
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__read_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:106,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-stack.c:106,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - wr
    - arg
    argTypes:
    - struct reftable_writer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: write_test_ref
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_writer_set_limits
    - reftable_writer_add_ref
    linkageType: ''
    returnType: int
    signature: int write_test_ref(struct reftable_writer *wr, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_stack_next_update_index
      Src: /src/git/t/unit-tests/u-reftable-stack.c:121,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:126,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-stack.c:128,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:130,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - st
    - n
    argTypes:
    - struct reftable_stack*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 135
    functionName: write_n_ref_tables
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_stack_next_update_index
    - snprintf
    - cl_assert_equal_i
    - cl_reftable_set_hash
    - reftable_stack_add
    linkageType: ''
    returnType: void
    signature: "void write_n_ref_tables(struct reftable_stack *st,\n\t\t\t       size_t
      n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:146,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-stack.c:146,1
    - Dst: reftable_writer_add_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - wr
    - arg
    argTypes:
    - struct reftable_writer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: write_test_log
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_writer_set_limits
    - reftable_writer_add_log
    linkageType: ''
    returnType: int
    signature: int write_test_log(struct reftable_writer *wr, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:154,1
    - Dst: umask
      Src: /src/git/t/unit-tests/u-reftable-stack.c:156,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:171,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:172,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:174,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:175,1
    - Dst: reftable_stack_read_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:177,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:178,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:179,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-stack.c:179,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:181,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:184,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:184,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:185,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:185,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:187,1
    - Dst: stat
      Src: /src/git/t/unit-tests/u-reftable-stack.c:187,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:188,1
    - Dst: reftable_buf_reset
      Src: /src/git/t/unit-tests/u-reftable-stack.c:191,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:192,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:192,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:193,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:193,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:195,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:195,1
    - Dst: stat
      Src: /src/git/t/unit-tests/u-reftable-stack.c:196,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:197,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:198,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:204,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:205,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:206,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:207,1
    - Dst: umask
      Src: /src/git/t/unit-tests/u-reftable-stack.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 152
    functionDepth: 9
    functionLinenumber: 152
    functionLinenumberEnd: 209
    functionName: test_reftable_stack__add_one
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - reftable_ref_record_equal
    - umask
    - stat
    - reftable_buf_reset
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_ref_record_release
    - get_tmp_dir
    - reftable_stack_destroy
    - reftable_buf_release
    - reftable_stack_read_ref
    - clear_dir
    - reftable_stack_add
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__add_one(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:216,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:235,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:235,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:236,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:236,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:237,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:237,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:239,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:239,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:241,1
    - Dst: reftable_stack_reload
      Src: /src/git/t/unit-tests/u-reftable-stack.c:241,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:242,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:242,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:244,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:245,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 211
    functionDepth: 9
    functionLinenumber: 211
    functionLinenumberEnd: 247
    functionName: test_reftable_stack__uptodate
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_new_stack
    - get_tmp_dir
    - reftable_stack_destroy
    - reftable_stack_reload
    - clear_dir
    - reftable_stack_add
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__uptodate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:251,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:264,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:264,1
    - Dst: reftable_addition_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:266,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:268,1
    - Dst: reftable_stack_new_addition
      Src: /src/git/t/unit-tests/u-reftable-stack.c:268,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:269,1
    - Dst: reftable_addition_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:269,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:271,1
    - Dst: reftable_addition_commit
      Src: /src/git/t/unit-tests/u-reftable-stack.c:271,1
    - Dst: reftable_addition_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:273,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:275,1
    - Dst: reftable_stack_read_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:275,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:277,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:278,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-stack.c:278,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:281,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:282,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 249
    functionDepth: 9
    functionLinenumber: 249
    functionLinenumberEnd: 284
    functionName: test_reftable_stack__transaction_api
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_addition_add
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_stack_new_addition
    - reftable_addition_commit
    - get_tmp_dir
    - reftable_ref_record_release
    - reftable_stack_destroy
    - reftable_stack_read_ref
    - clear_dir
    - reftable_ref_record_equal
    - reftable_addition_destroy
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__transaction_api(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:288,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:307,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:307,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:308,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:308,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:309,1
    - Dst: reftable_stack_new_addition
      Src: /src/git/t/unit-tests/u-reftable-stack.c:309,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:310,1
    - Dst: reftable_addition_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:310,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:312,1
    - Dst: reftable_addition_commit
      Src: /src/git/t/unit-tests/u-reftable-stack.c:312,1
    - Dst: reftable_addition_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:313,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:320,1
    - Dst: reftable_stack_new_addition
      Src: /src/git/t/unit-tests/u-reftable-stack.c:320,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:322,1
    - Dst: reftable_stack_new_addition
      Src: /src/git/t/unit-tests/u-reftable-stack.c:322,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:324,1
    - Dst: reftable_addition_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:324,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:326,1
    - Dst: reftable_addition_commit
      Src: /src/git/t/unit-tests/u-reftable-stack.c:326,1
    - Dst: reftable_addition_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:327,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-stack.c:329,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:330,1
    - Dst: reftable_stack_read_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:330,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:332,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-stack.c:332,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:336,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:337,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:338,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 286
    functionDepth: 9
    functionLinenumber: 286
    functionLinenumberEnd: 340
    functionName: test_reftable_stack__transaction_with_reload
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - reftable_addition_add
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_stack_new_addition
    - reftable_addition_commit
    - get_tmp_dir
    - reftable_ref_record_release
    - reftable_stack_destroy
    - reftable_stack_read_ref
    - clear_dir
    - reftable_ref_record_equal
    - reftable_addition_destroy
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__transaction_with_reload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:344,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:350,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:350,1
    - Dst: reftable_stack_next_update_index
      Src: /src/git/t/unit-tests/u-reftable-stack.c:354,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:360,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:370,1
    - Dst: reftable_stack_new_addition
      Src: /src/git/t/unit-tests/u-reftable-stack.c:370,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:372,1
    - Dst: reftable_addition_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:372,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:374,1
    - Dst: reftable_addition_commit
      Src: /src/git/t/unit-tests/u-reftable-stack.c:374,1
    - Dst: reftable_addition_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:376,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:384,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:386,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:389,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 342
    functionDepth: 9
    functionLinenumber: 342
    functionLinenumberEnd: 391
    functionName: test_reftable_stack__transaction_api_performs_auto_compaction
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_stack_next_update_index
    - snprintf
    - reftable_addition_add
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_stack_new_addition
    - reftable_addition_commit
    - get_tmp_dir
    - reftable_stack_destroy
    - clear_dir
    - reftable_addition_destroy
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__transaction_api_performs_auto_compaction(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:404,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:407,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:407,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:408,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:408,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:410,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:411,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:412,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:419,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:419,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:420,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:420,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:421,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:421,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:423,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:423,1
    - Dst: write_file_buf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:424,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:427,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:428,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:429,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:430,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:431,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:433,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:434,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 393
    functionDepth: 9
    functionLinenumber: 393
    functionLinenumberEnd: 436
    functionName: test_reftable_stack__auto_compaction_fails_gracefully
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - cl_assert_equal_i
    - reftable_new_stack
    - get_tmp_dir
    - reftable_stack_destroy
    - reftable_buf_release
    - write_file_buf
    - clear_dir
    - reftable_stack_add
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__auto_compaction_fails_gracefully(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - arg
    argTypes:
    - struct reftable_writer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: write_error
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int write_error(struct reftable_writer *wr UNUSED, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:445,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:461,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:461,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:462,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:462,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:464,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:464,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:466,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 443
    functionDepth: 9
    functionLinenumber: 443
    functionLinenumberEnd: 468
    functionName: test_reftable_stack__update_index_check
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_new_stack
    - get_tmp_dir
    - reftable_stack_destroy
    - clear_dir
    - reftable_stack_add
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__update_index_check(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:472,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:477,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:477,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:479,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:479,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:482,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 470
    functionDepth: 9
    functionLinenumber: 470
    functionLinenumberEnd: 484
    functionName: test_reftable_stack__lock_failure
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_new_stack
    - get_tmp_dir
    - reftable_stack_destroy
    - clear_dir
    - reftable_stack_add
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__lock_failure(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:494,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-stack.c:499,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:502,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:503,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:507,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-stack.c:508,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-stack.c:511,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-stack.c:514,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-stack.c:517,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-stack.c:518,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:523,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:523,1
    - Dst: reftable_stack_next_update_index
      Src: /src/git/t/unit-tests/u-reftable-stack.c:529,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:531,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:531,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:535,1
    - Dst: reftable_stack_compact_all
      Src: /src/git/t/unit-tests/u-reftable-stack.c:535,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:540,1
    - Dst: reftable_stack_read_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:540,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:542,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-stack.c:542,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:544,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:549,1
    - Dst: reftable_stack_read_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:549,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:551,1
    - Dst: reftable_log_record_equal
      Src: /src/git/t/unit-tests/u-reftable-stack.c:551,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:553,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:557,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:557,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:558,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:558,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:559,1
    - Dst: stat
      Src: /src/git/t/unit-tests/u-reftable-stack.c:559,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:560,1
    - Dst: reftable_buf_reset
      Src: /src/git/t/unit-tests/u-reftable-stack.c:562,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:563,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:563,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:564,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:564,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:566,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:566,1
    - Dst: stat
      Src: /src/git/t/unit-tests/u-reftable-stack.c:567,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:568,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:569,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:576,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:578,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:579,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:581,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:582,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 486
    functionDepth: 9
    functionLinenumber: 486
    functionLinenumberEnd: 583
    functionName: test_reftable_stack__add
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_stack_read_log
    - reftable_stack_compact_all
    - clear_dir
    - reftable_stack_read_ref
    - cl_assert
    - reftable_log_record_release
    - get_tmp_dir
    - reftable_stack_destroy
    - reftable_ref_record_equal
    - reftable_stack_add
    - ARRAY_SIZE
    - snprintf
    - stat
    - reftable_buf_release
    - cl_reftable_set_hash
    - xstrdup
    - reftable_buf_addstr
    - reftable_stack_next_update_index
    - reftable_log_record_equal
    - reftable_buf_reset
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_ref_record_release
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__add(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:589,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-stack.c:593,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:596,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:596,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-reftable-stack.c:599,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-stack.c:602,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-reftable-stack.c:605,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-stack.c:608,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-stack.c:609,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-stack.c:610,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:615,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:615,1
    - Dst: reftable_stack_next_update_index
      Src: /src/git/t/unit-tests/u-reftable-stack.c:621,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:624,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:624,1
    - Dst: reftable_stack_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-stack.c:628,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:629,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:633,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:636,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:637,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-stack.c:637,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:639,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:641,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:643,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:645,1
    - Dst: reftable_stack_init_log_iterator
      Src: /src/git/t/unit-tests/u-reftable-stack.c:645,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:647,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:651,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:654,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:655,1
    - Dst: reftable_log_record_equal
      Src: /src/git/t/unit-tests/u-reftable-stack.c:655,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:657,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:659,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:661,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:662,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:664,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:665,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:667,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 585
    functionDepth: 9
    functionLinenumber: 585
    functionLinenumberEnd: 668
    functionName: test_reftable_stack__iterator
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_next_log
    - reftable_iterator_next_ref
    - clear_dir
    - reftable_iterator_seek_log
    - cl_assert
    - reftable_log_record_release
    - reftable_stack_init_log_iterator
    - reftable_iterator_seek_ref
    - get_tmp_dir
    - reftable_stack_destroy
    - reftable_ref_record_equal
    - reftable_stack_add
    - ARRAY_SIZE
    - reftable_iterator_destroy
    - cl_reftable_set_hash
    - xstrdup
    - reftable_stack_next_update_index
    - xstrfmt
    - reftable_log_record_equal
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_ref_record_release
    - reftable_stack_init_ref_iterator
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__iterator(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:676,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:696,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:696,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:699,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:699,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:703,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:703,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:705,1
    - Dst: reftable_stack_read_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:705,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-stack.c:707,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:711,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:711,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:713,1
    - Dst: reftable_stack_read_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:713,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-stack.c:715,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:718,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:719,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 670
    functionDepth: 9
    functionLinenumber: 670
    functionLinenumberEnd: 721
    functionName: test_reftable_stack__log_normalize
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - reftable_log_record_release
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_stack_read_log
    - get_tmp_dir
    - reftable_stack_destroy
    - clear_dir
    - reftable_stack_add
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__log_normalize(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:725,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-stack.c:730,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:734,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:734,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-stack.c:739,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-stack.c:743,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-stack.c:747,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-stack.c:756,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-stack.c:758,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:762,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:762,1
    - Dst: reftable_stack_next_update_index
      Src: /src/git/t/unit-tests/u-reftable-stack.c:768,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:770,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:770,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:774,1
    - Dst: reftable_stack_read_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:774,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:776,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:778,1
    - Dst: reftable_stack_read_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:778,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:780,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:782,1
    - Dst: reftable_stack_compact_all
      Src: /src/git/t/unit-tests/u-reftable-stack.c:782,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:783,1
    - Dst: reftable_stack_read_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:783,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:785,1
    - Dst: reftable_stack_read_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:785,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:787,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:788,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:791,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:793,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:794,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:796,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 723
    functionDepth: 9
    functionLinenumber: 723
    functionLinenumberEnd: 797
    functionName: test_reftable_stack__tombstone
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - reftable_stack_next_update_index
    - reftable_log_record_release
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_stack_read_log
    - reftable_ref_record_release
    - reftable_stack_compact_all
    - get_tmp_dir
    - reftable_stack_destroy
    - clear_dir
    - reftable_stack_read_ref
    - cl_reftable_set_hash
    - reftable_stack_add
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__tombstone(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:801,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:817,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:817,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:818,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:818,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:822,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:822,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:826,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:826,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:828,1
    - Dst: reftable_stack_read_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:828,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:830,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-stack.c:830,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:832,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:833,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:834,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 799
    functionDepth: 9
    functionLinenumber: 799
    functionLinenumberEnd: 836
    functionName: test_reftable_stack__hash_id
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_ref_record_equal
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_ref_record_release
    - get_tmp_dir
    - reftable_stack_destroy
    - clear_dir
    - reftable_stack_read_ref
    - reftable_stack_add
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__hash_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suggest_compaction_segment
      Src: /src/git/t/unit-tests/u-reftable-stack.c:842,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-stack.c:842,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:843,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 845
    functionName: test_reftable_stack__suggest_compaction_segment
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - ARRAY_SIZE
    - suggest_compaction_segment
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__suggest_compaction_segment(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suggest_compaction_segment
      Src: /src/git/t/unit-tests/u-reftable-stack.c:851,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-stack.c:851,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 853
    functionName: test_reftable_stack__suggest_compaction_segment_nothing
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - ARRAY_SIZE
    - suggest_compaction_segment
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__suggest_compaction_segment_nothing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:857,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-stack.c:861,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:867,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:867,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:871,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-stack.c:873,1
    - Dst: xstrdup
      Src: /src/git/t/unit-tests/u-reftable-stack.c:877,1
    - Dst: cl_reftable_set_hash
      Src: /src/git/t/unit-tests/u-reftable-stack.c:878,1
    - Dst: reftable_stack_next_update_index
      Src: /src/git/t/unit-tests/u-reftable-stack.c:885,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:887,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:887,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:891,1
    - Dst: reftable_stack_compact_all
      Src: /src/git/t/unit-tests/u-reftable-stack.c:891,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:892,1
    - Dst: reftable_stack_compact_all
      Src: /src/git/t/unit-tests/u-reftable-stack.c:892,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:893,1
    - Dst: reftable_stack_read_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:893,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:895,1
    - Dst: reftable_stack_read_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:895,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:899,1
    - Dst: reftable_stack_compact_all
      Src: /src/git/t/unit-tests/u-reftable-stack.c:899,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:900,1
    - Dst: reftable_stack_read_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:900,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:902,1
    - Dst: reftable_stack_read_log
      Src: /src/git/t/unit-tests/u-reftable-stack.c:902,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:906,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:908,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:909,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 855
    functionDepth: 9
    functionLinenumber: 855
    functionLinenumberEnd: 911
    functionName: test_reftable_stack__reflog_expire
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - snprintf
    - reftable_stack_next_update_index
    - reftable_log_record_release
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_stack_compact_all
    - reftable_stack_read_log
    - get_tmp_dir
    - reftable_stack_destroy
    - clear_dir
    - cl_reftable_set_hash
    - reftable_stack_add
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__reflog_expire(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:915,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-stack.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - wr
    - UNUSED
    argTypes:
    - struct reftable_writer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 917
    functionName: write_nothing
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_writer_set_limits
    linkageType: ''
    returnType: int
    signature: int write_nothing(struct reftable_writer *wr, void *arg UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:923,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:926,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:926,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:927,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:927,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:929,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:929,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:930,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:931,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 919
    functionDepth: 9
    functionLinenumber: 919
    functionLinenumberEnd: 933
    functionName: test_reftable_stack__empty_add
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_new_stack
    - get_tmp_dir
    - clear_dir
    - reftable_stack_destroy
    - reftable_stack_add
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__empty_add(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sz
    - N
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 943
    functionName: fastlogN
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fastlogN(uint64_t sz, uint64_t N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:951,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:955,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:955,1
    - Dst: reftable_stack_next_update_index
      Src: /src/git/t/unit-tests/u-reftable-stack.c:961,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:965,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:967,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:968,1
    - Dst: reftable_stack_auto_compact
      Src: /src/git/t/unit-tests/u-reftable-stack.c:970,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:971,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:972,1
    - Dst: fastlogN
      Src: /src/git/t/unit-tests/u-reftable-stack.c:972,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:975,1
    - Dst: reftable_stack_compaction_stats
      Src: /src/git/t/unit-tests/u-reftable-stack.c:975,1
    - Dst: fastlogN
      Src: /src/git/t/unit-tests/u-reftable-stack.c:976,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:978,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 945
    functionDepth: 9
    functionLinenumber: 945
    functionLinenumberEnd: 980
    functionName: test_reftable_stack__auto_compaction
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_stack_next_update_index
    - snprintf
    - reftable_stack_auto_compact
    - reftable_stack_compaction_stats
    - cl_assert_equal_i
    - reftable_new_stack
    - get_tmp_dir
    - reftable_stack_destroy
    - fastlogN
    - clear_dir
    - reftable_stack_add
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__auto_compaction(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:988,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:992,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:992,1
    - Dst: reftable_stack_next_update_index
      Src: /src/git/t/unit-tests/u-reftable-stack.c:998,1
    - Dst: xsnprintf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1001,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1003,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1004,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1006,1
    - Dst: fastlogN
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1006,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1009,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 982
    functionDepth: 9
    functionLinenumber: 982
    functionLinenumberEnd: 1011
    functionName: test_reftable_stack__auto_compaction_factor
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_stack_next_update_index
    - cl_assert_equal_i
    - reftable_new_stack
    - get_tmp_dir
    - xsnprintf
    - fastlogN
    - reftable_stack_destroy
    - clear_dir
    - reftable_stack_add
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__auto_compaction_factor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1020,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1023,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1023,1
    - Dst: write_n_ref_tables
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1025,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1026,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1033,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1033,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1034,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1034,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1035,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1035,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1036,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1036,1
    - Dst: write_file_buf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1037,1
    - Dst: reftable_stack_auto_compact
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1045,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1046,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1047,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1048,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1050,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1051,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1013
    functionDepth: 9
    functionLinenumber: 1013
    functionLinenumberEnd: 1053
    functionName: test_reftable_stack__auto_compaction_with_locked_tables
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - reftable_stack_auto_compact
    - write_n_ref_tables
    - cl_assert_equal_i
    - reftable_new_stack
    - get_tmp_dir
    - reftable_stack_destroy
    - reftable_buf_release
    - write_file_buf
    - clear_dir
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__auto_compaction_with_locked_tables(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1059,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1062,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1062,1
    - Dst: reftable_stack_next_update_index
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1066,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1080,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1083,1
    - Dst: reftable_stack_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1083,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1091,1
    - Dst: reftable_stack_compaction_required
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1091,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1093,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1095,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1097,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1099,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1100,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1104,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1055
    functionDepth: 9
    functionLinenumber: 1055
    functionLinenumberEnd: 1106
    functionName: test_reftable_stack__add_performs_auto_compaction
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_stack_next_update_index
    - snprintf
    - cl_assert_equal_i
    - reftable_new_stack
    - cl_assert_equal_b
    - get_tmp_dir
    - reftable_stack_compaction_required
    - reftable_stack_destroy
    - clear_dir
    - reftable_stack_add
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__add_performs_auto_compaction(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1115,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1118,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1118,1
    - Dst: write_n_ref_tables
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1120,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1121,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1124,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1124,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1125,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1125,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1126,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1126,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1127,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1127,1
    - Dst: write_file_buf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1128,1
    - Dst: reftable_stack_compact_all
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1134,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1135,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1136,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1137,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1139,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1140,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1108
    functionDepth: 9
    functionLinenumber: 1108
    functionLinenumberEnd: 1142
    functionName: test_reftable_stack__compaction_with_locked_tables
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - write_n_ref_tables
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_stack_compact_all
    - get_tmp_dir
    - reftable_stack_destroy
    - reftable_buf_release
    - write_file_buf
    - clear_dir
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__compaction_with_locked_tables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1148,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1150,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1150,1
    - Dst: write_n_ref_tables
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1151,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1153,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1153,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1154,1
    - Dst: reftable_stack_compact_all
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1154,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1156,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1157,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1159,1
    - Dst: count_dir_entries
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1159,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1144
    functionDepth: 9
    functionLinenumber: 1144
    functionLinenumberEnd: 1161
    functionName: test_reftable_stack__compaction_concurrent
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - count_dir_entries
    - write_n_ref_tables
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_stack_compact_all
    - get_tmp_dir
    - reftable_stack_destroy
    - clear_dir
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__compaction_concurrent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1167,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1170
    functionName: unclean_stack_close
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - REFTABLE_FREE_AND_NULL
    - reftable_table_decref
    linkageType: ''
    returnType: void
    signature: void unclean_stack_close(struct reftable_stack *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1176,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1178,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1178,1
    - Dst: write_n_ref_tables
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1179,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1181,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1181,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1182,1
    - Dst: reftable_stack_compact_all
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1182,1
    - Dst: unclean_stack_close
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1184,1
    - Dst: unclean_stack_close
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1185,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1187,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1187,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1188,1
    - Dst: reftable_stack_clean
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1188,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1189,1
    - Dst: count_dir_entries
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1189,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1191,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1192,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1193,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1172
    functionDepth: 9
    functionLinenumber: 1172
    functionLinenumberEnd: 1196
    functionName: test_reftable_stack__compaction_concurrent_clean
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - unclean_stack_close
    - count_dir_entries
    - write_n_ref_tables
    - reftable_stack_clean
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_stack_compact_all
    - get_tmp_dir
    - reftable_stack_destroy
    - clear_dir
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__compaction_concurrent_clean(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1204,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1208,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1208,1
    - Dst: write_n_ref_tables
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1209,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1210,1
    - Dst: reftable_stack_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1211,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1212,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1212,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1215,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1216,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1217,1
    - Dst: reftable_stack_compact_all
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1218,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1219,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1220,1
    - Dst: reftable_stack_reload
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1226,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1227,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1228,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1229,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1230,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1231,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1232,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1233,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1234,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1235,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1236,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1238,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1239,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1240,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1241,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1198
    functionDepth: 9
    functionLinenumber: 1198
    functionLinenumberEnd: 1243
    functionName: test_reftable_stack__read_across_reload
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - write_n_ref_tables
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_iterator_seek_ref
    - reftable_stack_compact_all
    - reftable_iterator_next_ref
    - get_tmp_dir
    - reftable_ref_record_release
    - reftable_stack_reload
    - reftable_stack_destroy
    - clear_dir
    - reftable_iterator_destroy
    - reftable_stack_init_ref_iterator
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__read_across_reload(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1252,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1256,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1256,1
    - Dst: write_n_ref_tables
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1257,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1258,1
    - Dst: reftable_stack_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1259,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1260,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1260,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1267,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1267,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1268,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1268,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1269,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1269,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1270,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1270,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1271,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1271,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1272,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1272,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1273,1
    - Dst: reftable_buf_addstr
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1273,1
    - Dst: write_file_buf
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1274,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1275,1
    - Dst: rename
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1275,1
    - Dst: reftable_stack_reload
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1277,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1278,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1279,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1285,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1285,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1286,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1287,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1287,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1288,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1289,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1289,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1291,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1292,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1293,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1294,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1295,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1245
    functionDepth: 9
    functionLinenumber: 1245
    functionLinenumberEnd: 1297
    functionName: test_reftable_stack__reload_with_missing_table
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - cl_assert_equal_s
    - rename
    - write_n_ref_tables
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - get_tmp_dir
    - reftable_stack_destroy
    - reftable_stack_reload
    - write_file_buf
    - reftable_buf_release
    - clear_dir
    - reftable_iterator_destroy
    - reftable_stack_init_ref_iterator
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__reload_with_missing_table(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1302,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1302,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1304,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1304,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - wr
    - arg
    argTypes:
    - struct reftable_writer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1306
    functionName: write_limits_after_ref
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_writer_set_limits
    - reftable_writer_add_ref
    linkageType: ''
    returnType: int
    signature: int write_limits_after_ref(struct reftable_writer *wr, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1320,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1323,1
    - Dst: reftable_new_stack
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1323,1
    - Dst: reftable_addition_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1325,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1327,1
    - Dst: reftable_stack_new_addition
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1327,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1334,1
    - Dst: reftable_addition_add
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1334,1
    - Dst: reftable_addition_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1337,1
    - Dst: reftable_stack_destroy
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1338,1
    - Dst: clear_dir
      Src: /src/git/t/unit-tests/u-reftable-stack.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1308
    functionDepth: 9
    functionLinenumber: 1308
    functionLinenumberEnd: 1340
    functionName: test_reftable_stack__invalid_limit_updates
    functionSourceFile: /src/git/t/unit-tests/u-reftable-stack.c
    functionUses: 0
    functionsReached:
    - reftable_addition_add
    - cl_assert_equal_i
    - reftable_new_stack
    - reftable_stack_new_addition
    - get_tmp_dir
    - reftable_stack_destroy
    - clear_dir
    - reftable_addition_destroy
    linkageType: ''
    returnType: void
    signature: void test_reftable_stack__invalid_limit_updates(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/t/unit-tests/lib-oid.c:11,1
    - Dst: hash_algo_by_name
      Src: /src/git/t/unit-tests/lib-oid.c:12,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/lib-oid.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 17
    functionName: cl_setup_hash_algo
    functionSourceFile: /src/git/t/unit-tests/lib-oid.c
    functionUses: 2
    functionsReached:
    - getenv
    - hash_algo_by_name
    - cl_assert
    linkageType: ''
    returnType: int
    signature: int cl_setup_hash_algo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/unit-tests/lib-oid.c:22,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/lib-oid.c:25,1
    - Dst: strbuf_add
      Src: /src/git/t/unit-tests/lib-oid.c:27,1
    - Dst: strbuf_addchars
      Src: /src/git/t/unit-tests/lib-oid.c:28,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/lib-oid.c:30,1
    - Dst: get_oid_hex_algop
      Src: /src/git/t/unit-tests/lib-oid.c:30,1
    - Dst: strbuf_release
      Src: /src/git/t/unit-tests/lib-oid.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - hex
    - oid
    - algop
    argTypes:
    - char*
    - struct object_id*
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: cl_parse_oid
    functionSourceFile: /src/git/t/unit-tests/lib-oid.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    - strbuf_release
    - get_oid_hex_algop
    - cl_assert_equal_i
    - strlen
    - strbuf_add
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void cl_parse_oid(const char *hex, struct object_id *oid,\n\t\t\t\t
      \      const struct git_hash_algo *algop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_setup_hash_algo
      Src: /src/git/t/unit-tests/lib-oid.c:38,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/lib-oid.c:40,1
    - Dst: cl_parse_oid
      Src: /src/git/t/unit-tests/lib-oid.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hex
    - oid
    argTypes:
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: cl_parse_any_oid
    functionSourceFile: /src/git/t/unit-tests/lib-oid.c
    functionUses: 14
    functionsReached:
    - cl_setup_hash_algo
    - cl_parse_oid
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void cl_parse_any_oid(const char *hex, struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:31,1
    - Dst: odb_source_read_object_info
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:31,1
    - Dst: cl_assert_equal_u
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:32,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:32,1
    - Dst: cl_assert_equal_u
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:33,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:34,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - source
    - oid
    - expected_type
    - expected_content
    argTypes:
    - struct odb_source_inmemory*
    - struct object_id*
    - enum object_type
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 37
    functionName: cl_assert_object_info
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_u
    - cl_assert_equal_s
    - cl_must_pass
    - strlen
    - odb_source_read_object_info
    - free
    linkageType: ''
    returnType: void
    signature: "void cl_assert_object_info(struct odb_source_inmemory *source,\n\t\t\t\t
      \ const struct object_id *oid,\n\t\t\t\t  enum object_type expected_type,\n\t\t\t\t
      \ const char *expected_content)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: test_odb_inmemory__initialize
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - odb_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__initialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: test_odb_inmemory__cleanup
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - odb_free
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:51,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:52,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c: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_odb_inmemory__new
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - odb_source_free
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:58,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:62,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:62,1
    - Dst: cl_must_fail
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:63,1
    - Dst: odb_source_read_object_info
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:63,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: test_odb_inmemory__read_missing_object
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - cl_must_fail
    - odb_source_free
    - cl_must_pass
    - parse_oid_hex_algop
    - odb_source_read_object_info
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__read_missing_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:70,1
    - Dst: cl_assert_object_info
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:71,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: test_odb_inmemory__read_empty_tree
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - odb_source_free
    - cl_assert_object_info
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__read_empty_tree(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:77,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:81,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:81,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:81,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:83,1
    - Dst: oid_to_hex
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:83,1
    - Dst: cl_assert_object_info
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:84,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: test_odb_inmemory__read_written_object
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - oid_to_hex
    - odb_source_write_object
    - odb_source_free
    - cl_must_pass
    - cl_assert_object_info
    - strlen
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__read_written_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:91,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:97,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:97,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:97,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:100,1
    - Dst: odb_source_read_object_stream
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:100,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:102,1
    - Dst: cl_assert_equal_u
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:103,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:105,1
    - Dst: odb_read_stream_read
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:105,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:106,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:107,1
    - Dst: odb_read_stream_read
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:107,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:108,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:109,1
    - Dst: odb_read_stream_read
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:109,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:110,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:111,1
    - Dst: odb_read_stream_read
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:111,1
    - Dst: odb_read_stream_close
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:113,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 115
    functionName: test_odb_inmemory__read_stream_object
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_u
    - cl_assert_equal_s
    - odb_read_stream_close
    - odb_source_write_object
    - odb_source_free
    - cl_must_pass
    - odb_source_read_object_stream
    - cl_assert_equal_i
    - strlen
    - odb_read_stream_read
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__read_stream_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:122,1
    - Dst: oidset_insert
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - payload
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: add_one_object
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 3
    functionsReached:
    - cl_must_pass
    - oidset_insert
    linkageType: ''
    returnType: int
    signature: "int add_one_object(const struct object_id *oid,\n\t\t\t  struct object_info
      *oi UNUSED,\n\t\t\t  void *payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:128,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:134,1
    - Dst: odb_source_for_each_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:134,1
    - Dst: cl_assert_equal_u
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:136,1
    - Dst: oidset_size
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:136,1
    - Dst: strbuf_reset
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:141,1
    - Dst: strbuf_addf
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:142,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:144,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:144,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:146,1
    - Dst: oidset_insert
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:146,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:149,1
    - Dst: odb_source_for_each_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:149,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:151,1
    - Dst: oidset_equal
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:151,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:153,1
    - Dst: oidset_clear
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:154,1
    - Dst: oidset_clear
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:155,1
    - Dst: strbuf_release
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 157
    functionName: test_odb_inmemory__for_each_object
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_u
    - oidset_size
    - strbuf_release
    - oidset_equal
    - strbuf_reset
    - odb_source_write_object
    - cl_must_pass
    - odb_source_free
    - strbuf_addf
    - oidset_clear
    - odb_source_for_each_object
    - cl_assert_equal_b
    - oidset_insert
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__for_each_object(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - payload
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: abort_after_two_objects
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int abort_after_two_objects(const struct object_id *oid UNUSED,\n\t\t\t\t
      \  struct object_info *oi UNUSED,\n\t\t\t\t   void *payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:172,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:177,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:177,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:179,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:179,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:181,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:181,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:184,1
    - Dst: odb_source_for_each_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:184,1
    - Dst: cl_assert_equal_u
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:188,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 191
    functionName: test_odb_inmemory__for_each_object_can_abort_iteration
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_u
    - odb_source_write_object
    - odb_source_free
    - cl_must_pass
    - odb_source_for_each_object
    - cl_assert_equal_i
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__for_each_object_can_abort_iteration(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:195,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:199,1
    - Dst: odb_source_count_objects
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:199,1
    - Dst: cl_assert_equal_u
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:200,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:202,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:202,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:204,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:204,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:206,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:206,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:209,1
    - Dst: odb_source_count_objects
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:209,1
    - Dst: cl_assert_equal_u
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:210,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 213
    functionName: test_odb_inmemory__count_objects
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_u
    - odb_source_count_objects
    - odb_source_write_object
    - odb_source_free
    - cl_must_pass
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__count_objects(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:217,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:231,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:231,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:231,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:233,1
    - Dst: odb_source_find_abbrev_len
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:233,1
    - Dst: cl_assert_equal_u
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:235,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:241,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:241,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:241,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:243,1
    - Dst: odb_source_find_abbrev_len
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:243,1
    - Dst: cl_assert_equal_u
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:245,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 248
    functionName: test_odb_inmemory__find_abbrev_len
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - odb_source_find_abbrev_len
    - cl_assert_equal_u
    - odb_source_write_object
    - odb_source_free
    - cl_must_pass
    - strlen
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__find_abbrev_len(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:252,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:257,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:257,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:258,1
    - Dst: odb_source_freshen_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:258,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:260,1
    - Dst: odb_source_write_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:260,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:261,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:263,1
    - Dst: odb_source_freshen_object
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:263,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 267
    functionName: test_odb_inmemory__freshen_object
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - odb_source_write_object
    - odb_source_freshen_object
    - cl_must_pass
    - parse_oid_hex_algop
    - odb_source_free
    - cl_assert_equal_i
    - strlen
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__freshen_object(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:279,1
    - Dst: memcpy
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - stream
    - buf
    - len
    argTypes:
    - struct odb_write_stream*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: membuf_write_stream_read
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - container_of
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t membuf_write_stream_read(struct odb_write_stream *stream,\n\t\t\t\t\tunsigned
      char *buf, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_new
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:298,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:303,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:307,1
    - Dst: odb_source_write_object_stream
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:307,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:308,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:309,1
    - Dst: oid_to_hex
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:309,1
    - Dst: cl_assert_object_info
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:310,1
    - Dst: odb_source_free
      Src: /src/git/t/unit-tests/u-odb-inmemory.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 313
    functionName: test_odb_inmemory__write_object_stream
    functionSourceFile: /src/git/t/unit-tests/u-odb-inmemory.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - oid_to_hex
    - odb_source_free
    - cl_must_pass
    - odb_source_write_object_stream
    - cl_assert_object_info
    - strlen
    - odb_source_inmemory_new
    linkageType: ''
    returnType: void
    signature: void test_odb_inmemory__write_object_stream(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/unit-tests/test-lib.c:44,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/test-lib.c:46,1
    - Dst: die
      Src: /src/git/t/unit-tests/test-lib.c:49,1
    - Dst: fspathcmp
      Src: /src/git/t/unit-tests/test-lib.c:74,1
    - Dst: die
      Src: /src/git/t/unit-tests/test-lib.c:76,1
    - Dst: fspathncmp
      Src: /src/git/t/unit-tests/test-lib.c:83,1
    - Dst: strlcpy
      Src: /src/git/t/unit-tests/test-lib.c:94,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 1
    argNames:
    - location
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 99
    functionName: make_relative
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - die
    - fspathncmp
    - strlen
    - fspathcmp
    - strlcpy
    linkageType: ''
    returnType: char
    signature: char *make_relative(const char *location)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/git/t/unit-tests/test-lib.c:103,1
    - Dst: fprintf
      Src: /src/git/t/unit-tests/test-lib.c:105,1
    - Dst: vprintf
      Src: /src/git/t/unit-tests/test-lib.c:106,1
    - Dst: putc
      Src: /src/git/t/unit-tests/test-lib.c:107,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/test-lib.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - prefix
    - format
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: msg_with_prefix
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - putc
    - fprintf
    - fflush
    - vprintf
    linkageType: ''
    returnType: void
    signature: void msg_with_prefix(const char *prefix, const char *format, va_list
      ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/test-lib.c:115,1
    - Dst: msg_with_prefix
      Src: /src/git/t/unit-tests/test-lib.c:116,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/test-lib.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: test_msg
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - msg_with_prefix
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void test_msg(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:122,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/test-lib.c:124,1
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:125,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/test-lib.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts:
    - condition: (!ctx.running)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: test_plan
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - fflush
    - assert
    - printf
    linkageType: ''
    returnType: void
    signature: void test_plan(int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test__run_end
      Src: /src/git/t/unit-tests/test-lib.c:133,1
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:134,1
    - Dst: test_plan
      Src: /src/git/t/unit-tests/test-lib.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!ctx.running)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: test_done
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 1
    functionsReached:
    - assert
    - test_plan
    - test__run_end
    linkageType: ''
    returnType: int
    signature: int test_done(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:146,1
    - Dst: va_start
      Src: /src/git/t/unit-tests/test-lib.c:149,1
    - Dst: msg_with_prefix
      Src: /src/git/t/unit-tests/test-lib.c:151,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/test-lib.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts:
    - condition: (ctx.running)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: test_skip
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 3
    functionsReached:
    - msg_with_prefix
    - va_start
    - va_end
    - assert
    linkageType: ''
    returnType: void
    signature: void test_skip(const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/test-lib.c:171,1
    - Dst: msg_with_prefix
      Src: /src/git/t/unit-tests/test-lib.c:172,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/test-lib.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: test_skip_all
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - msg_with_prefix
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void test_skip_all(const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:181,1
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:182,1
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:183,1
    - Dst: xsnprintf
      Src: /src/git/t/unit-tests/test-lib.c:185,1
    - Dst: make_relative
      Src: /src/git/t/unit-tests/test-lib.c:186,1
    - Dst: va_start
      Src: /src/git/t/unit-tests/test-lib.c:188,1
    - Dst: vsnprintf
      Src: /src/git/t/unit-tests/test-lib.c:189,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/test-lib.c:190,1
    - Dst: die
      Src: /src/git/t/unit-tests/test-lib.c:192,1
    - Dst: BUG
      Src: /src/git/t/unit-tests/test-lib.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - location
    - format
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (ctx.running)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/git/t/unit-tests/test-lib.c
    - condition: (!ctx.description[0])
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/git/t/unit-tests/test-lib.c
    - condition: (!ctx.location[0])
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 195
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 195
    functionName: test__run_describe
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - die
    - assert
    - va_end
    - xsnprintf
    - va_start
    - vsnprintf
    - make_relative
    - BUG
    linkageType: ''
    returnType: void
    signature: void test__run_describe(const char *location, const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test__run_end
      Src: /src/git/t/unit-tests/test-lib.c:200,1
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!ctx.running)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 210
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 210
    functionName: test__run_begin
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - assert
    - test__run_end
    linkageType: ''
    returnType: int
    signature: int test__run_begin(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/git/t/unit-tests/test-lib.c:215,1
    - Dst: vprintf
      Src: /src/git/t/unit-tests/test-lib.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - format
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: print_description
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - fputs
    - vprintf
    linkageType: ''
    returnType: void
    signature: void print_description(const char *format, va_list ap)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:224,1
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:225,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/test-lib.c:227,1
    - Dst: va_start
      Src: /src/git/t/unit-tests/test-lib.c:228,1
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:232,1
    - Dst: print_description
      Src: /src/git/t/unit-tests/test-lib.c:233,1
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:237,1
    - Dst: print_description
      Src: /src/git/t/unit-tests/test-lib.c:238,1
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:242,1
    - Dst: print_description
      Src: /src/git/t/unit-tests/test-lib.c:243,1
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:244,1
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:248,1
    - Dst: print_description
      Src: /src/git/t/unit-tests/test-lib.c:249,1
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:250,1
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:254,1
    - Dst: make_relative
      Src: /src/git/t/unit-tests/test-lib.c:255,1
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:256,1
    - Dst: print_description
      Src: /src/git/t/unit-tests/test-lib.c:257,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/test-lib.c:262,1
    - Dst: putc
      Src: /src/git/t/unit-tests/test-lib.c:266,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/test-lib.c:267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - was_run
    - location
    - format
    argTypes:
    - int
    - char*
    - char*
    assertStmts:
    - condition: (ctx.running)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/git/t/unit-tests/test-lib.c
    - condition: (!ctx.todo)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 271
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 271
    functionName: test__run_end
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 2
    functionsReached:
    - putc
    - assert
    - va_end
    - fflush
    - va_start
    - print_description
    - make_relative
    - printf
    - test_msg
    linkageType: ''
    returnType: int
    signature: int test__run_end(int was_run UNUSED, const char *location, const char
      *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ctx.result != RESULT_SKIP)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: test_fail
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void test_fail(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ctx.result != RESULT_SKIP)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: test_pass
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void test_pass(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ctx.result != RESULT_SKIP)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: test_todo
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void test_todo(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:299,1
    - Dst: make_relative
      Src: /src/git/t/unit-tests/test-lib.c:300,1
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:306,1
    - Dst: make_relative
      Src: /src/git/t/unit-tests/test-lib.c:307,1
    - Dst: test_pass
      Src: /src/git/t/unit-tests/test-lib.c:312,1
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:314,1
    - Dst: make_relative
      Src: /src/git/t/unit-tests/test-lib.c:315,1
    - Dst: test_fail
      Src: /src/git/t/unit-tests/test-lib.c:316,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - location
    - check
    - ok
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 321
    functionName: test_assert
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - test_msg
    - make_relative
    - test_fail
    - test_pass
    linkageType: ''
    returnType: int
    signature: int test_assert(const char *location, const char *check, int ok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:325,1
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ctx.running)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/git/t/unit-tests/test-lib.c
    - condition: (!ctx.todo)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: test__todo_begin
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void test__todo_begin(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:333,1
    - Dst: assert
      Src: /src/git/t/unit-tests/test-lib.c:334,1
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:340,1
    - Dst: make_relative
      Src: /src/git/t/unit-tests/test-lib.c:341,1
    - Dst: test_fail
      Src: /src/git/t/unit-tests/test-lib.c:342,1
    - Dst: test_todo
      Src: /src/git/t/unit-tests/test-lib.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - location
    - check
    - res
    argTypes:
    - char*
    - char*
    - int
    assertStmts:
    - condition: (ctx.running)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/git/t/unit-tests/test-lib.c
    - condition: (ctx.todo)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/git/t/unit-tests/test-lib.c
    constantsTouched: []
    func_position:
      end: 348
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 348
    functionName: test__todo_end
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - assert
    - test_todo
    - test_fail
    - test_msg
    - make_relative
    linkageType: ''
    returnType: int
    signature: int test__todo_end(const char *location, const char *check, int res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_assert
      Src: /src/git/t/unit-tests/test-lib.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - loc
    - check
    - ok
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: check_bool_loc
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - test_assert
    linkageType: ''
    returnType: int
    signature: int check_bool_loc(const char *loc, const char *check, int ok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_assert
      Src: /src/git/t/unit-tests/test-lib.c:360,1
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:363,1
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - loc
    - check
    - ok
    - a
    - b
    argTypes:
    - char*
    - char*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 368
    functionName: check_pointer_eq_loc
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - test_msg
    - test_assert
    linkageType: ''
    returnType: int
    signature: "int check_pointer_eq_loc(const char *loc, const char *check, int ok,\n\t\t\t
      const void *a, const void *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_assert
      Src: /src/git/t/unit-tests/test-lib.c:373,1
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:376,1
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - loc
    - check
    - ok
    - a
    - b
    argTypes:
    - char*
    - char*
    - int
    - intmax_t
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 381
    functionName: check_int_loc
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - test_msg
    - test_assert
    linkageType: ''
    returnType: int
    signature: "int check_int_loc(const char *loc, const char *check, int ok,\n\t\t
      \ intmax_t a, intmax_t b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_assert
      Src: /src/git/t/unit-tests/test-lib.c:386,1
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:389,1
    - Dst: test_msg
      Src: /src/git/t/unit-tests/test-lib.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - loc
    - check
    - ok
    - a
    - b
    argTypes:
    - char*
    - char*
    - int
    - uintmax_t
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 394
    functionName: check_uint_loc
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - test_msg
    - test_assert
    linkageType: ''
    returnType: int
    signature: "int check_uint_loc(const char *loc, const char *check, int ok,\n\t\t
      \  uintmax_t a, uintmax_t b)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: putc
      Src: /src/git/t/unit-tests/test-lib.c:411,1
    - Dst: putc
      Src: /src/git/t/unit-tests/test-lib.c:412,1
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:414,1
    - Dst: putc
      Src: /src/git/t/unit-tests/test-lib.c:418,1
    - Dst: putc
      Src: /src/git/t/unit-tests/test-lib.c:419,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - ch
    - quote
    argTypes:
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 421
    functionName: print_one_char
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - putc
    - printf
    linkageType: ''
    returnType: void
    signature: void print_one_char(char ch, char quote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:425,1
    - Dst: print_one_char
      Src: /src/git/t/unit-tests/test-lib.c:426,1
    - Dst: fputs
      Src: /src/git/t/unit-tests/test-lib.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - prefix
    - ch
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: print_char
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - fputs
    - print_one_char
    - printf
    linkageType: ''
    returnType: void
    signature: void print_char(const char *prefix, char ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_assert
      Src: /src/git/t/unit-tests/test-lib.c:432,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/test-lib.c:435,1
    - Dst: print_char
      Src: /src/git/t/unit-tests/test-lib.c:436,1
    - Dst: print_char
      Src: /src/git/t/unit-tests/test-lib.c:437,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/test-lib.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - loc
    - check
    - ok
    - a
    - b
    argTypes:
    - char*
    - char*
    - int
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 442
    functionName: check_char_loc
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - test_assert
    - print_char
    - fflush
    linkageType: ''
    returnType: int
    signature: int check_char_loc(const char *loc, const char *check, int ok, char
      a, char b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/test-lib.c:446,1
    - Dst: fputs
      Src: /src/git/t/unit-tests/test-lib.c:448,1
    - Dst: putc
      Src: /src/git/t/unit-tests/test-lib.c:450,1
    - Dst: print_one_char
      Src: /src/git/t/unit-tests/test-lib.c:452,1
    - Dst: fputs
      Src: /src/git/t/unit-tests/test-lib.c:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - prefix
    - str
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 455
    functionName: print_str
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - putc
    - fputs
    - print_one_char
    - printf
    linkageType: ''
    returnType: void
    signature: void print_str(const char *prefix, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/unit-tests/test-lib.c:460,1
    - Dst: test_assert
      Src: /src/git/t/unit-tests/test-lib.c:461,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/test-lib.c:464,1
    - Dst: print_str
      Src: /src/git/t/unit-tests/test-lib.c:465,1
    - Dst: print_str
      Src: /src/git/t/unit-tests/test-lib.c:466,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/test-lib.c:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - loc
    - check
    - a
    - b
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 471
    functionName: check_str_loc
    functionSourceFile: /src/git/t/unit-tests/test-lib.c
    functionUses: 0
    functionsReached:
    - print_str
    - test_assert
    - fflush
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int check_str_loc(const char *loc, const char *check,\n\t\t  const
      char *a, const char *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/t/unit-tests/u-hashmap.c:21,1
    - Dst: container_of
      Src: /src/git/t/unit-tests/u-hashmap.c:22,1
    - Dst: strcasecmp
      Src: /src/git/t/unit-tests/u-hashmap.c:25,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/u-hashmap.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 28
    functionName: test_entry_cmp
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcasecmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int test_entry_cmp(const void *cmp_data,\n\t\t\t  const struct hashmap_entry
      *eptr,\n\t\t\t  const struct hashmap_entry *entry_or_key,\n\t\t\t  const void
      *keydata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-hashmap.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct test_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: get_value
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 26
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: char *get_value(const struct test_entry *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-hashmap.c:38,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-hashmap.c:39,1
    - Dst: strihash
      Src: /src/git/t/unit-tests/u-hashmap.c:40,1
    - Dst: strhash
      Src: /src/git/t/unit-tests/u-hashmap.c:40,1
    - Dst: xmalloc
      Src: /src/git/t/unit-tests/u-hashmap.c:41,1
    - Dst: st_add4
      Src: /src/git/t/unit-tests/u-hashmap.c:41,1
    - Dst: hashmap_entry_init
      Src: /src/git/t/unit-tests/u-hashmap.c:43,1
    - Dst: memcpy
      Src: /src/git/t/unit-tests/u-hashmap.c:44,1
    - Dst: memcpy
      Src: /src/git/t/unit-tests/u-hashmap.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - value
    - ignore_case
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: alloc_test_entry
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 1
    functionsReached:
    - strhash
    - hashmap_entry_init
    - memcpy
    - strlen
    - xmalloc
    - st_add4
    - strihash
    linkageType: ''
    returnType: struct test_entry
    signature: "struct test_entry *alloc_test_entry(const char *key, const char *value,\n\t\t\t\t\t
      \  unsigned int ignore_case)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/t/unit-tests/u-hashmap.c:52,1
    - Dst: strihash
      Src: /src/git/t/unit-tests/u-hashmap.c:53,1
    - Dst: strhash
      Src: /src/git/t/unit-tests/u-hashmap.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - key
    - ignore_case
    argTypes:
    - struct hashmap*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: get_test_entry
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_get_entry_from_hash
    - strihash
    linkageType: ''
    returnType: struct test_entry
    signature: "struct test_entry *get_test_entry(struct hashmap *map, const char
      *key,\n\t\t\t\t\t unsigned int ignore_case)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/unit-tests/u-hashmap.c:61,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/u-hashmap.c:62,1
    - Dst: get_value
      Src: /src/git/t/unit-tests/u-hashmap.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - key_val
    - seen
    - n
    - entry
    argTypes:
    - char*[][]
    - char[]
    - size_t
    - struct test_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: key_val_contains
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 1
    functionsReached:
    - get_value
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int key_val_contains(const char *key_val[][2], char seen[], size_t
      n,\n\t\t\t    struct test_entry *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHMAP_INIT
      Src: /src/git/t/unit-tests/u-hashmap.c:75,1
    - Dst: f
      Src: /src/git/t/unit-tests/u-hashmap.c:77,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/t/unit-tests/u-hashmap.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ignore_case
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: setup
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 30
    functionsReached:
    - HASHMAP_INIT
    - hashmap_clear_and_free
    - f
    linkageType: ''
    returnType: void
    signature: "void setup(void (*f)(struct hashmap *map, unsigned int ignore_case),\n\t\t
      \ unsigned int ignore_case)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:85,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:86,1
    - Dst: hashmap_put_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:86,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:88,1
    - Dst: hashmap_put_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:90,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-hashmap.c:91,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-hashmap.c:92,1
    - Dst: get_value
      Src: /src/git/t/unit-tests/u-hashmap.c:92,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:93,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:95,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:96,1
    - Dst: hashmap_put_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:96,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:98,1
    - Dst: hashmap_put_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:100,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-hashmap.c:101,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-hashmap.c:102,1
    - Dst: get_value
      Src: /src/git/t/unit-tests/u-hashmap.c:102,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - map
    - ignore_case
    argTypes:
    - struct hashmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 104
    functionName: t_replace
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - get_value
    - cl_assert_equal_p
    - alloc_test_entry
    - free
    - hashmap_put_entry
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void t_replace(struct hashmap *map, unsigned int ignore_case)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:122,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:123,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:125,1
    - Dst: hashmap_put_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:125,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:128,1
    - Dst: get_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:129,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-hashmap.c:130,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-hashmap.c:131,1
    - Dst: get_value
      Src: /src/git/t/unit-tests/u-hashmap.c:131,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:134,1
    - Dst: get_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:134,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:135,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:136,1
    - Dst: hashmap_get_size
      Src: /src/git/t/unit-tests/u-hashmap.c:136,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - map
    - ignore_case
    argTypes:
    - struct hashmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 137
    functionName: t_get
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - cl_assert_equal_s
    - get_value
    - cl_assert_equal_p
    - cl_assert_equal_i
    - hashmap_get_size
    - alloc_test_entry
    - hashmap_put_entry
    - get_test_entry
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void t_get(struct hashmap *map, unsigned int ignore_case)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:150,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:152,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:153,1
    - Dst: hashmap_add
      Src: /src/git/t/unit-tests/u-hashmap.c:154,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:157,1
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/t/unit-tests/u-hashmap.c:159,1
    - Dst: strihash
      Src: /src/git/t/unit-tests/u-hashmap.c:160,1
    - Dst: strhash
      Src: /src/git/t/unit-tests/u-hashmap.c:161,1
    - Dst: key_val_contains
      Src: /src/git/t/unit-tests/u-hashmap.c:166,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:167,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:168,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:171,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:174,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:175,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:177,1
    - Dst: hashmap_get_size
      Src: /src/git/t/unit-tests/u-hashmap.c:177,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:177,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:178,1
    - Dst: get_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - map
    - ignore_case
    argTypes:
    - struct hashmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 179
    functionName: t_add
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 58
    functionsReached:
    - ARRAY_SIZE
    - hashmap_add
    - strhash
    - hashmap_get_entry_from_hash
    - cl_assert_equal_p
    - cl_assert_equal_i
    - key_val_contains
    - hashmap_get_size
    - strihash
    - alloc_test_entry
    - get_test_entry
    linkageType: ''
    returnType: void
    signature: void t_add(struct hashmap *map, unsigned int ignore_case)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key_val_contains
      Src: /src/git/t/unit-tests/u-hashmap.c:166,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:167,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: hashmap_for_each_entry_from
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - key_val_contains
    - cl_assert_equal_i
    linkageType: ''
    returnType: void
    signature: void hashmap_for_each_entry_from(map, entry, ent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:190,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:191,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:192,1
    - Dst: hashmap_put_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:192,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:195,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:196,1
    - Dst: hashmap_remove_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:197,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-hashmap.c:198,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-hashmap.c:199,1
    - Dst: get_value
      Src: /src/git/t/unit-tests/u-hashmap.c:199,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:200,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:201,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:204,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:205,1
    - Dst: hashmap_remove_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:205,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:206,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:208,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:209,1
    - Dst: hashmap_get_size
      Src: /src/git/t/unit-tests/u-hashmap.c:209,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:210,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - map
    - ignore_case
    argTypes:
    - struct hashmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 211
    functionName: t_remove
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 15
    functionsReached:
    - ARRAY_SIZE
    - cl_assert_equal_s
    - get_value
    - hashmap_remove_entry
    - cl_assert_equal_p
    - cl_assert_equal_i
    - hashmap_get_size
    - alloc_test_entry
    - free
    - hashmap_put_entry
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void t_remove(struct hashmap *map, unsigned int ignore_case)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:220,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:222,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:223,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:224,1
    - Dst: hashmap_put_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:224,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:227,1
    - Dst: key_val_contains
      Src: /src/git/t/unit-tests/u-hashmap.c:229,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:230,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-hashmap.c:232,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:235,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:236,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:238,1
    - Dst: hashmap_get_size
      Src: /src/git/t/unit-tests/u-hashmap.c:238,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - map
    - ignore_case
    argTypes:
    - struct hashmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 239
    functionName: t_iterate
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - cl_assert_equal_p
    - cl_assert_equal_i
    - key_val_contains
    - hashmap_get_size
    - alloc_test_entry
    - hashmap_put_entry
    - hashmap_for_each_entry
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void t_iterate(struct hashmap *map, unsigned int ignore_case)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-hashmap.c:246,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-hashmap.c:247,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:248,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:249,1
    - Dst: hashmap_put_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:249,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:250,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:251,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:253,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:254,1
    - Dst: hashmap_get_size
      Src: /src/git/t/unit-tests/u-hashmap.c:254,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:256,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:257,1
    - Dst: hashmap_put_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:257,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:258,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:259,1
    - Dst: hashmap_get_size
      Src: /src/git/t/unit-tests/u-hashmap.c:259,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-hashmap.c:262,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-hashmap.c:263,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:265,1
    - Dst: hashmap_remove_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:266,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-hashmap.c:267,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-hashmap.c:268,1
    - Dst: get_value
      Src: /src/git/t/unit-tests/u-hashmap.c:268,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:269,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:270,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:271,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:272,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:274,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:275,1
    - Dst: hashmap_get_size
      Src: /src/git/t/unit-tests/u-hashmap.c:275,1
    - Dst: alloc_test_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:277,1
    - Dst: hashmap_remove_entry
      Src: /src/git/t/unit-tests/u-hashmap.c:278,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-hashmap.c:279,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-hashmap.c:280,1
    - Dst: get_value
      Src: /src/git/t/unit-tests/u-hashmap.c:280,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:281,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-hashmap.c:282,1
    - Dst: hashmap_get_size
      Src: /src/git/t/unit-tests/u-hashmap.c:282,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:283,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-hashmap.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 2
    argNames:
    - map
    - ignore_case
    argTypes:
    - struct hashmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 241
    functionDepth: 5
    functionLinenumber: 241
    functionLinenumberEnd: 285
    functionName: t_alloc
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 9
    functionsReached:
    - cl_assert_equal_s
    - get_value
    - hashmap_remove_entry
    - xstrfmt
    - cl_assert_equal_p
    - cl_assert_equal_i
    - hashmap_get_size
    - alloc_test_entry
    - free
    - hashmap_put_entry
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void t_alloc(struct hashmap *map, unsigned int ignore_case)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hashmap.c:291,1
    - Dst: strintern
      Src: /src/git/t/unit-tests/u-hashmap.c:292,1
    - Dst: strintern
      Src: /src/git/t/unit-tests/u-hashmap.c:293,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-hashmap.c:295,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-hashmap.c:296,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-hashmap.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 299
    functionName: test_hashmap__intern
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - cl_assert_equal_s
    - cl_assert_equal_p
    - strintern
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_hashmap__intern(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: test_hashmap__replace_case_sensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__replace_case_sensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: test_hashmap__replace_case_insensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__replace_case_insensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: test_hashmap__get_case_sensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__get_case_sensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: test_hashmap__get_case_insensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__get_case_insensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: test_hashmap__add_case_sensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__add_case_sensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: test_hashmap__add_case_insensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__add_case_insensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: test_hashmap__remove_case_sensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__remove_case_sensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: test_hashmap__remove_case_insensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__remove_case_insensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: test_hashmap__iterate_case_sensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__iterate_case_sensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: test_hashmap__iterate_case_insensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__iterate_case_insensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: test_hashmap__alloc_case_sensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__alloc_case_sensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-hashmap.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: test_hashmap__alloc_case_insensitive
    functionSourceFile: /src/git/t/unit-tests/u-hashmap.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_hashmap__alloc_case_insensitive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_calloc
      Src: /src/git/t/unit-tests/u-mem-pool.c:8,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-mem-pool.c:10,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-mem-pool.c:11,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-mem-pool.c:12,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-mem-pool.c:13,1
    - Dst: mem_pool_discard
      Src: /src/git/t/unit-tests/u-mem-pool.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - block_alloc
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 4
    functionDepth: 4
    functionLinenumber: 4
    functionLinenumberEnd: 15
    functionName: test_many_pool_allocations
    functionSourceFile: /src/git/t/unit-tests/u-mem-pool.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - mem_pool_calloc
    - mem_pool_discard
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_many_pool_allocations(size_t block_alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_many_pool_allocations
      Src: /src/git/t/unit-tests/u-mem-pool.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 5
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: test_mem_pool__big_block
    functionSourceFile: /src/git/t/unit-tests/u-mem-pool.c
    functionUses: 0
    functionsReached:
    - test_many_pool_allocations
    linkageType: ''
    returnType: void
    signature: void test_mem_pool__big_block(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_many_pool_allocations
      Src: /src/git/t/unit-tests/u-mem-pool.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: test_mem_pool__tiny_block
    functionSourceFile: /src/git/t/unit-tests/u-mem-pool.c
    functionUses: 0
    functionsReached:
    - test_many_pool_allocations
    linkageType: ''
    returnType: void
    signature: void test_mem_pool__tiny_block(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:19,1
    - Dst: pq_less
      Src: /src/git/t/unit-tests/u-reftable-pq.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pq
    argTypes:
    - struct merged_iter_pqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: merged_iter_pqueue_check
    functionSourceFile: /src/git/t/unit-tests/u-reftable-pq.c
    functionUses: 0
    functionsReached:
    - pq_less
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void merged_iter_pqueue_check(const struct merged_iter_pqueue *pq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-pq.c:26,1
    - Dst: reftable_record_cmp
      Src: /src/git/t/unit-tests/u-reftable-pq.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct pq_entry*
    - struct pq_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: pq_entry_equal
    functionSourceFile: /src/git/t/unit-tests/u-reftable-pq.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - reftable_record_cmp
    linkageType: ''
    returnType: int
    signature: int pq_entry_equal(struct pq_entry *a, struct pq_entry *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-pq.c:34,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:38,1
    - Dst: reftable_record_init
      Src: /src/git/t/unit-tests/u-reftable-pq.c:38,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-reftable-pq.c:40,1
    - Dst: merged_iter_pqueue_add
      Src: /src/git/t/unit-tests/u-reftable-pq.c:49,1
    - Dst: merged_iter_pqueue_check
      Src: /src/git/t/unit-tests/u-reftable-pq.c:50,1
    - Dst: merged_iter_pqueue_is_empty
      Src: /src/git/t/unit-tests/u-reftable-pq.c:54,1
    - Dst: merged_iter_pqueue_top
      Src: /src/git/t/unit-tests/u-reftable-pq.c:55,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-pq.c:58,1
    - Dst: merged_iter_pqueue_remove
      Src: /src/git/t/unit-tests/u-reftable-pq.c:58,1
    - Dst: merged_iter_pqueue_check
      Src: /src/git/t/unit-tests/u-reftable-pq.c:59,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:61,1
    - Dst: pq_entry_equal
      Src: /src/git/t/unit-tests/u-reftable-pq.c:61,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:62,1
    - Dst: reftable_record_type
      Src: /src/git/t/unit-tests/u-reftable-pq.c:62,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:64,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/u-reftable-pq.c:64,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-pq.c:69,1
    - Dst: merged_iter_pqueue_release
      Src: /src/git/t/unit-tests/u-reftable-pq.c:70,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 71
    functionName: test_reftable_pq__record
    functionSourceFile: /src/git/t/unit-tests/u-reftable-pq.c
    functionUses: 0
    functionsReached:
    - reftable_record_init
    - ARRAY_SIZE
    - xstrfmt
    - merged_iter_pqueue_remove
    - merged_iter_pqueue_is_empty
    - reftable_record_release
    - merged_iter_pqueue_add
    - cl_assert_equal_i
    - merged_iter_pqueue_top
    - reftable_record_type
    - merged_iter_pqueue_check
    - pq_entry_equal
    - strcmp
    - merged_iter_pqueue_release
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_pq__record(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-pq.c:78,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:81,1
    - Dst: reftable_record_init
      Src: /src/git/t/unit-tests/u-reftable-pq.c:81,1
    - Dst: merged_iter_pqueue_add
      Src: /src/git/t/unit-tests/u-reftable-pq.c:93,1
    - Dst: merged_iter_pqueue_check
      Src: /src/git/t/unit-tests/u-reftable-pq.c:94,1
    - Dst: merged_iter_pqueue_top
      Src: /src/git/t/unit-tests/u-reftable-pq.c:99,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-pq.c:102,1
    - Dst: merged_iter_pqueue_remove
      Src: /src/git/t/unit-tests/u-reftable-pq.c:102,1
    - Dst: merged_iter_pqueue_check
      Src: /src/git/t/unit-tests/u-reftable-pq.c:103,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:105,1
    - Dst: pq_entry_equal
      Src: /src/git/t/unit-tests/u-reftable-pq.c:105,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:106,1
    - Dst: reftable_record_type
      Src: /src/git/t/unit-tests/u-reftable-pq.c:106,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-pq.c:107,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-reftable-pq.c:109,1
    - Dst: merged_iter_pqueue_release
      Src: /src/git/t/unit-tests/u-reftable-pq.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 114
    functionName: test_reftable_pq__index
    functionSourceFile: /src/git/t/unit-tests/u-reftable-pq.c
    functionUses: 0
    functionsReached:
    - reftable_record_init
    - ARRAY_SIZE
    - cl_assert_equal_s
    - merged_iter_pqueue_remove
    - merged_iter_pqueue_add
    - cl_assert_equal_i
    - merged_iter_pqueue_top
    - reftable_record_type
    - merged_iter_pqueue_check
    - pq_entry_equal
    - merged_iter_pqueue_release
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_pq__index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-pq.c:120,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:123,1
    - Dst: reftable_record_init
      Src: /src/git/t/unit-tests/u-reftable-pq.c:123,1
    - Dst: merged_iter_pqueue_add
      Src: /src/git/t/unit-tests/u-reftable-pq.c:135,1
    - Dst: merged_iter_pqueue_check
      Src: /src/git/t/unit-tests/u-reftable-pq.c:136,1
    - Dst: merged_iter_pqueue_top
      Src: /src/git/t/unit-tests/u-reftable-pq.c:141,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-pq.c:144,1
    - Dst: merged_iter_pqueue_remove
      Src: /src/git/t/unit-tests/u-reftable-pq.c:144,1
    - Dst: merged_iter_pqueue_check
      Src: /src/git/t/unit-tests/u-reftable-pq.c:146,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:147,1
    - Dst: pq_entry_equal
      Src: /src/git/t/unit-tests/u-reftable-pq.c:147,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:148,1
    - Dst: reftable_record_equal
      Src: /src/git/t/unit-tests/u-reftable-pq.c:148,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:150,1
    - Dst: pq_less
      Src: /src/git/t/unit-tests/u-reftable-pq.c:150,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-pq.c:151,1
    - Dst: merged_iter_pqueue_release
      Src: /src/git/t/unit-tests/u-reftable-pq.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 156
    functionName: test_reftable_pq__merged_iter_pqueue_top
    functionSourceFile: /src/git/t/unit-tests/u-reftable-pq.c
    functionUses: 0
    functionsReached:
    - reftable_record_init
    - ARRAY_SIZE
    - merged_iter_pqueue_remove
    - reftable_record_equal
    - pq_less
    - merged_iter_pqueue_add
    - cl_assert_equal_i
    - merged_iter_pqueue_top
    - merged_iter_pqueue_check
    - pq_entry_equal
    - merged_iter_pqueue_release
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_pq__merged_iter_pqueue_top(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_normalize
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:6,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:8,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - url
    - normalizable
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 4
    functionDepth: 4
    functionLinenumber: 4
    functionLinenumberEnd: 10
    functionName: check_url_normalizable
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - url_normalize
    - free
    linkageType: ''
    returnType: void
    signature: void check_url_normalizable(const char *url, unsigned int normalizable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_normalize
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:14,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:16,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - url
    - expect
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 4
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: check_normalized_url
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - url_normalize
    - free
    linkageType: ''
    returnType: void
    signature: void check_normalized_url(const char *url, const char *expect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: url_normalize
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:23,1
    - Dst: url_normalize
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:24,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:27,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:29,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:29,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:31,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - url1
    - url2
    - equal
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: compare_normalized_urls
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - url_normalize
    - strcmp
    - free
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void compare_normalized_urls(const char *url1, const char *url2,\n\t\t\t\t
      \   unsigned int equal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_normalize
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:38,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:40,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - url
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: check_normalized_url_length
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - url_normalize
    - free
    linkageType: ''
    returnType: void
    signature: void check_normalized_url_length(const char *url, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:47,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:48,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:49,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:50,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:51,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:52,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:53,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:54,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:55,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:56,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:57,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:58,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:59,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:60,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:61,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:62,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:63,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:64,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: test_urlmatch_normalization__scheme
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_url_normalizable
    - check_normalized_url
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__scheme(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:70,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:71,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:72,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:73,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:74,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:75,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:76,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:77,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:78,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:79,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:80,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:81,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:82,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:83,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:84,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:85,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:86,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:87,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:88,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:89,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:90,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:91,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:92,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:93,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:94,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:95,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:96,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:97,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:98,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:99,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:100,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 102
    functionName: test_urlmatch_normalization__authority
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_url_normalizable
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__authority(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:106,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:107,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:108,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:109,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:110,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:111,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:112,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:113,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:114,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:115,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:116,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:117,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:118,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:119,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:120,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:121,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:122,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:123,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:124,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:125,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:126,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:127,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:128,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:129,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:130,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 132
    functionName: test_urlmatch_normalization__port
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_url_normalizable
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__port(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:136,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:137,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:138,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:139,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:140,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:141,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:142,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:143,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:144,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:145,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 147
    functionName: test_urlmatch_normalization__port_normalization
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_normalized_url
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__port_normalization(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:151,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:152,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:153,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:154,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:155,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: test_urlmatch_normalization__general_escape
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_url_normalizable
    - check_normalized_url
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__general_escape(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:161,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:164,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:167,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:170,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:173,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:176,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:179,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:182,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:185,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 191
    functionName: test_urlmatch_normalization__high_bit
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_normalized_url
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__high_bit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: test_urlmatch_normalization__utf8_escape
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_normalized_url
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__utf8_escape(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: test_urlmatch_normalization__username_pass
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_normalized_url
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__username_pass(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_normalized_url_length
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:207,1
    - Dst: check_normalized_url_length
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:208,1
    - Dst: check_normalized_url_length
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: test_urlmatch_normalization__length
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_normalized_url_length
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:214,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:215,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:216,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:217,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:218,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:219,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:220,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:221,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:222,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:223,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:224,1
    - Dst: check_url_normalizable
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:225,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:226,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:227,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:228,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:229,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:230,1
    - Dst: check_normalized_url
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 232
    functionName: test_urlmatch_normalization__dots
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_url_normalizable
    - check_normalized_url
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__dots(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare_normalized_urls
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:241,1
    - Dst: compare_normalized_urls
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:242,1
    - Dst: compare_normalized_urls
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:243,1
    - Dst: compare_normalized_urls
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:244,1
    - Dst: compare_normalized_urls
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:245,1
    - Dst: compare_normalized_urls
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 5
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: test_urlmatch_normalization__equivalents
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - compare_normalized_urls
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__equivalents(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: url_parse
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:252,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:255,1
    - Dst: xstrndup
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:256,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:257,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:258,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - url
    - expected_path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 11
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: check_parsed_path
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - url_parse
    - xstrndup
    - free
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void check_parsed_path(const char *url, const char *expected_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:264,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:265,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:266,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:267,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:268,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:269,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:270,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 12
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: test_urlmatch_normalization__parse_scp
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_parsed_path
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__parse_scp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:276,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:277,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:278,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:279,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:280,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 12
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: test_urlmatch_normalization__parse_url_form
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_parsed_path
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__parse_url_form(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:286,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:287,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:288,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:289,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:290,1
    - Dst: check_parsed_path
      Src: /src/git/t/unit-tests/u-urlmatch-normalization.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 12
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: test_urlmatch_normalization__parse_strips_query_and_fragment
    functionSourceFile: /src/git/t/unit-tests/u-urlmatch-normalization.c
    functionUses: 0
    functionsReached:
    - check_parsed_path
    linkageType: ''
    returnType: void
    signature: void test_urlmatch_normalization__parse_strips_query_and_fragment(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_write_to_buf
      Src: /src/git/t/unit-tests/u-reftable-table.c:25,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-table.c:25,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-table.c:26,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-table.c:28,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:29,1
    - Dst: reftable_table_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-table.c:31,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-table.c:32,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:33,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-table.c:34,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:35,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-table.c:37,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-table.c:39,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-table.c:41,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-table.c:42,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-table.c:44,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-table.c:45,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-table.c:46,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-table.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 48
    functionName: test_reftable_table__seek_once
    functionSourceFile: /src/git/t/unit-tests/u-reftable-table.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - cl_reftable_write_to_buf
    - block_source_from_buf
    - reftable_table_new
    - reftable_table_decref
    - cl_assert_equal_i
    - reftable_table_init_ref_iterator
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_buf_release
    - reftable_iterator_destroy
    - reftable_ref_record_equal
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_table__seek_once(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_write_to_buf
      Src: /src/git/t/unit-tests/u-reftable-table.c:66,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-table.c:66,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-table.c:68,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-table.c:70,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:71,1
    - Dst: reftable_table_init_ref_iterator
      Src: /src/git/t/unit-tests/u-reftable-table.c:73,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-table.c:76,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:77,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-table.c:78,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:79,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-table.c:81,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-table.c:82,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-table.c:84,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-table.c:85,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-table.c:88,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-table.c:89,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-table.c:90,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-table.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 92
    functionName: test_reftable_table__reseek
    functionSourceFile: /src/git/t/unit-tests/u-reftable-table.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - cl_reftable_write_to_buf
    - block_source_from_buf
    - reftable_table_new
    - reftable_table_decref
    - cl_assert_equal_i
    - reftable_table_init_ref_iterator
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_buf_release
    - reftable_iterator_destroy
    - reftable_ref_record_equal
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_table__reseek(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-table.c:143,1
    - Dst: xstrfmt
      Src: /src/git/t/unit-tests/u-reftable-table.c:146,1
    - Dst: cl_reftable_write_to_buf
      Src: /src/git/t/unit-tests/u-reftable-table.c:150,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-table.c:151,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-table.c:153,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:154,1
    - Dst: reftable_table_iterator_init
      Src: /src/git/t/unit-tests/u-reftable-table.c:156,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:157,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-table.c:159,1
    - Dst: reftable_table_iterator_next
      Src: /src/git/t/unit-tests/u-reftable-table.c:165,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:166,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-table.c:168,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-table.c:170,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-table.c:172,1
    - Dst: reftable_block_init_iterator
      Src: /src/git/t/unit-tests/u-reftable-table.c:175,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:176,1
    - Dst: iterator_next
      Src: /src/git/t/unit-tests/u-reftable-table.c:179,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-table.c:181,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-table.c:185,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-table.c:188,1
    - Dst: reftable_record_release
      Src: /src/git/t/unit-tests/u-reftable-table.c:189,1
    - Dst: reftable_table_iterator_next
      Src: /src/git/t/unit-tests/u-reftable-table.c:192,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-table.c:193,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-table.c:196,1
    - Dst: reftable_table_iterator_release
      Src: /src/git/t/unit-tests/u-reftable-table.c:197,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-table.c:198,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-table.c:199,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-table.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 94
    functionDepth: 5
    functionLinenumber: 94
    functionLinenumberEnd: 201
    functionName: test_reftable_table__block_iterator
    functionSourceFile: /src/git/t/unit-tests/u-reftable-table.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - cl_reftable_write_to_buf
    - iterator_next
    - reftable_free
    - block_source_from_buf
    - reftable_block_init_iterator
    - xstrfmt
    - reftable_table_new
    - reftable_record_release
    - reftable_table_decref
    - cl_assert_equal_i
    - reftable_table_iterator_init
    - reftable_buf_release
    - reftable_table_iterator_next
    - reftable_iterator_destroy
    - reftable_table_iterator_release
    - REFTABLE_CALLOC_ARRAY
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_table__block_iterator(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/t/unit-tests/unit-test.c:19,1
    - Dst: N_
      Src: /src/git/t/unit-tests/unit-test.c:20,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/t/unit-tests/unit-test.c:21,1
    - Dst: N_
      Src: /src/git/t/unit-tests/unit-test.c:21,1
    - Dst: N_
      Src: /src/git/t/unit-tests/unit-test.c:22,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/t/unit-tests/unit-test.c:23,1
    - Dst: N_
      Src: /src/git/t/unit-tests/unit-test.c:23,1
    - Dst: N_
      Src: /src/git/t/unit-tests/unit-test.c:24,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/t/unit-tests/unit-test.c:29,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/t/unit-tests/unit-test.c:30,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/t/unit-tests/unit-test.c:31,1
    - Dst: OPT_NOOP_ARG
      Src: /src/git/t/unit-tests/unit-test.c:32,1
    - Dst: OPT_NOOP_ARG
      Src: /src/git/t/unit-tests/unit-test.c:33,1
    - Dst: OPT_NOOP_ARG
      Src: /src/git/t/unit-tests/unit-test.c:34,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/t/unit-tests/unit-test.c:35,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/t/unit-tests/unit-test.c:36,1
    - Dst: OPT_NOOP_ARG
      Src: /src/git/t/unit-tests/unit-test.c:37,1
    - Dst: OPT_NOOP_ARG
      Src: /src/git/t/unit-tests/unit-test.c:38,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/t/unit-tests/unit-test.c:39,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/t/unit-tests/unit-test.c:40,1
    - Dst: OPT_NOOP_ARG
      Src: /src/git/t/unit-tests/unit-test.c:41,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/t/unit-tests/unit-test.c:42,1
    - Dst: OPT_END
      Src: /src/git/t/unit-tests/unit-test.c:43,1
    - Dst: parse_options
      Src: /src/git/t/unit-tests/unit-test.c:48,1
    - Dst: usagef
      Src: /src/git/t/unit-tests/unit-test.c:51,1
    - Dst: _
      Src: /src/git/t/unit-tests/unit-test.c:51,1
    - Dst: strvec_push
      Src: /src/git/t/unit-tests/unit-test.c:53,1
    - Dst: strvec_push
      Src: /src/git/t/unit-tests/unit-test.c:54,1
    - Dst: strvec_push
      Src: /src/git/t/unit-tests/unit-test.c:56,1
    - Dst: strvec_pushf
      Src: /src/git/t/unit-tests/unit-test.c:58,1
    - Dst: strvec_pushf
      Src: /src/git/t/unit-tests/unit-test.c:60,1
    - Dst: clar_test
      Src: /src/git/t/unit-tests/unit-test.c:62,1
    - Dst: string_list_clear
      Src: /src/git/t/unit-tests/unit-test.c:64,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/unit-test.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 13
    functionDepth: 13
    functionLinenumber: 13
    functionLinenumberEnd: 67
    functionName: cmd_main
    functionSourceFile: /src/git/t/unit-tests/unit-test.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - parse_options
    - OPT_END
    - string_list_clear
    - clar_test
    - OPT_BOOL
    - strvec_clear
    - OPT_NOOP_NOARG
    - _
    - N_
    - OPT_NOOP_ARG
    - OPT_STRING_LIST
    - strvec_pushf
    - usagef
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gently_parse_list_objects_filter
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:17,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:20,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:21,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:22,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:24,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:25,1
    - Dst: strbuf_release
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:28,1
    - Dst: list_objects_filter_release
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - filter_spec
    - expect_success
    - allow_auto
    - expected_choice
    argTypes:
    - char*
    - int
    - int
    - enum list_objects_filter_choice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 6
    functionDepth: 3
    functionLinenumber: 6
    functionLinenumberEnd: 30
    functionName: check_gentle_parse
    functionSourceFile: /src/git/t/unit-tests/u-list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - gently_parse_list_objects_filter
    - cl_assert_equal_i
    - list_objects_filter_release
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void check_gentle_parse(const char *filter_spec,\n\t\t\t       int
      expect_success,\n\t\t\t       int allow_auto,\n\t\t\t       enum list_objects_filter_choice
      expected_choice)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:34,1
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:35,1
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:36,1
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:37,1
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:38,1
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: test_list_objects_filter_options__regular_filters
    functionSourceFile: /src/git/t/unit-tests/u-list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - check_gentle_parse
    linkageType: ''
    returnType: void
    signature: void test_list_objects_filter_options__regular_filters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:44,1
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: test_list_objects_filter_options__auto_allowed
    functionSourceFile: /src/git/t/unit-tests/u-list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - check_gentle_parse
    linkageType: ''
    returnType: void
    signature: void test_list_objects_filter_options__auto_allowed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:50,1
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:51,1
    - Dst: check_gentle_parse
      Src: /src/git/t/unit-tests/u-list-objects-filter-options.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: test_list_objects_filter_options__combine_auto_fails
    functionSourceFile: /src/git/t/unit-tests/u-list-objects-filter-options.c
    functionUses: 0
    functionsReached:
    - check_gentle_parse
    linkageType: ''
    returnType: void
    signature: void test_list_objects_filter_options__combine_auto_fails(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/git/t/unit-tests/u-strbuf.c:10,1
    - Dst: strbuf_release
      Src: /src/git/t/unit-tests/u-strbuf.c:11,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strbuf.c:12,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strbuf.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 5
    functionDepth: 3
    functionLinenumber: 5
    functionLinenumberEnd: 14
    functionName: setup
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 42
    functionsReached:
    - cl_assert_equal_i
    - strbuf_release
    - f
    linkageType: ''
    returnType: void
    signature: "void setup(void (*f)(struct strbuf*, const void*),\n\t\t  const void
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/t/unit-tests/u-strbuf.c:22,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strbuf.c:23,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-strbuf.c:23,1
    - Dst: f
      Src: /src/git/t/unit-tests/u-strbuf.c:24,1
    - Dst: strbuf_release
      Src: /src/git/t/unit-tests/u-strbuf.c:25,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strbuf.c:26,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strbuf.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - init_str
    - data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 28
    functionName: setup_populated
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - f
    - cl_assert_equal_i
    - strlen
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void setup_populated(void (*f)(struct strbuf*, const void*),\n\t\t\t
      \   const char *init_str, const void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-strbuf.c:33,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-strbuf.c:35,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-strbuf.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: assert_sane_strbuf
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void assert_sane_strbuf(struct strbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strbuf.c:48,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strbuf.c:49,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-strbuf.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: test_strbuf__static_init
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_strbuf__static_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/t/unit-tests/u-strbuf.c:57,1
    - Dst: assert_sane_strbuf
      Src: /src/git/t/unit-tests/u-strbuf.c:58,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strbuf.c:59,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-strbuf.c:60,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-strbuf.c:61,1
    - Dst: strbuf_release
      Src: /src/git/t/unit-tests/u-strbuf.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: test_strbuf__dynamic_init
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - cl_assert_equal_i
    - assert_sane_strbuf
    - strbuf_init
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_strbuf__dynamic_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_sane_strbuf
      Src: /src/git/t/unit-tests/u-strbuf.c:72,1
    - Dst: strbuf_addch
      Src: /src/git/t/unit-tests/u-strbuf.c:73,1
    - Dst: assert_sane_strbuf
      Src: /src/git/t/unit-tests/u-strbuf.c:74,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strbuf.c:75,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-strbuf.c:76,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-strbuf.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - data
    argTypes:
    - struct strbuf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: t_addch
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - cl_assert
    - assert_sane_strbuf
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void t_addch(struct strbuf *buf, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/unit-tests/u-strbuf.c:83,1
    - Dst: assert_sane_strbuf
      Src: /src/git/t/unit-tests/u-strbuf.c:87,1
    - Dst: strbuf_addstr
      Src: /src/git/t/unit-tests/u-strbuf.c:88,1
    - Dst: assert_sane_strbuf
      Src: /src/git/t/unit-tests/u-strbuf.c:89,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strbuf.c:90,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-strbuf.c:91,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-strbuf.c:92,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-strbuf.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - data
    argTypes:
    - struct strbuf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: t_addstr
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - cl_assert_equal_i
    - strlen
    - strbuf_addstr
    - assert_sane_strbuf
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void t_addstr(struct strbuf *buf, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-strbuf.c:98,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_strbuf__add_single_char
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_strbuf__add_single_char(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-strbuf.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: test_strbuf__add_empty_char
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_strbuf__add_empty_char(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_populated
      Src: /src/git/t/unit-tests/u-strbuf.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: test_strbuf__add_append_char
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - setup_populated
    linkageType: ''
    returnType: void
    signature: void test_strbuf__add_append_char(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/git/t/unit-tests/u-strbuf.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: test_strbuf__add_single_str
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - setup
    linkageType: ''
    returnType: void
    signature: void test_strbuf__add_single_str(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_populated
      Src: /src/git/t/unit-tests/u-strbuf.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: test_strbuf__add_append_str
    functionSourceFile: /src/git/t/unit-tests/u-strbuf.c
    functionUses: 0
    functionsReached:
    - setup_populated
    linkageType: ''
    returnType: void
    signature: void test_strbuf__add_append_str(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/t/unit-tests/lib-reftable.c:13,1
    - Dst: hash_size
      Src: /src/git/t/unit-tests/lib-reftable.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - i
    - id
    argTypes:
    - uint8_t*
    - int
    - enum reftable_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: cl_reftable_set_hash
    functionSourceFile: /src/git/t/unit-tests/lib-reftable.c
    functionUses: 8
    functionsReached:
    - memset
    - hash_size
    linkageType: ''
    returnType: void
    signature: void cl_reftable_set_hash(uint8_t *p, int i, enum reftable_hash id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/t/unit-tests/lib-reftable.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - b
    - data
    - sz
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: strbuf_writer_write
    functionSourceFile: /src/git/t/unit-tests/lib-reftable.c
    functionUses: 0
    functionsReached:
    - strbuf_add
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t strbuf_writer_write(void *b, const void *data, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: strbuf_writer_flush
    functionSourceFile: /src/git/t/unit-tests/lib-reftable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strbuf_writer_flush(void *arg UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_writer_new
      Src: /src/git/t/unit-tests/lib-reftable.c:31,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/lib-reftable.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - opts
    argTypes:
    - struct reftable_buf*
    - struct reftable_write_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: cl_reftable_strbuf_writer
    functionSourceFile: /src/git/t/unit-tests/lib-reftable.c
    functionUses: 13
    functionsReached:
    - reftable_writer_new
    - cl_assert
    linkageType: ''
    returnType: struct reftable_writer
    signature: "struct reftable_writer *cl_reftable_strbuf_writer(struct reftable_buf
      *buf,\n\t\t\t\t\t\t struct reftable_write_options *opts)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/lib-reftable.c:69,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/lib-reftable.c:70,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/lib-reftable.c:71,1
    - Dst: reftable_writer_add_refs
      Src: /src/git/t/unit-tests/lib-reftable.c:74,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/lib-reftable.c:75,1
    - Dst: reftable_writer_add_logs
      Src: /src/git/t/unit-tests/lib-reftable.c:79,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/lib-reftable.c:80,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/lib-reftable.c:83,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/lib-reftable.c:84,1
    - Dst: reftable_writer_stats
      Src: /src/git/t/unit-tests/lib-reftable.c:86,1
    - Dst: header_size
      Src: /src/git/t/unit-tests/lib-reftable.c:91,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/lib-reftable.c:92,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/lib-reftable.c:96,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/lib-reftable.c:98,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/lib-reftable.c:100,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 6
    argNames:
    - buf
    - refs
    - nrefs
    - logs
    - nlogs
    - _opts
    argTypes:
    - struct reftable_buf*
    - struct reftable_ref_record*
    - size_t
    - struct reftable_log_record*
    - size_t
    - struct reftable_write_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 101
    functionName: cl_reftable_write_to_buf
    functionSourceFile: /src/git/t/unit-tests/lib-reftable.c
    functionUses: 4
    functionsReached:
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - reftable_writer_add_refs
    - header_size
    - reftable_writer_free
    - cl_assert_equal_i
    - reftable_writer_add_logs
    - reftable_writer_stats
    - reftable_writer_close
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void cl_reftable_write_to_buf(struct reftable_buf *buf,\n\t\t\t     struct
      reftable_ref_record *refs,\n\t\t\t     size_t nrefs,\n\t\t\t     struct reftable_log_record
      *logs,\n\t\t\t     size_t nlogs,\n\t\t\t     struct reftable_write_options *_opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-merged.c:31,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:32,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-merged.c:33,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:34,1
    - Dst: cl_reftable_write_to_buf
      Src: /src/git/t/unit-tests/u-reftable-merged.c:37,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-merged.c:38,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-merged.c:40,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:42,1
    - Dst: reftable_merged_table_new
      Src: /src/git/t/unit-tests/u-reftable-merged.c:45,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - refs
    - source
    - tables
    - sizes
    - buf
    - n
    argTypes:
    - struct reftable_ref_record**
    - struct reftable_block_source**
    - struct reftable_table***
    - size_t*
    - struct reftable_buf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 48
    functionName: merged_table_from_records
    functionSourceFile: /src/git/t/unit-tests/u-reftable-merged.c
    functionUses: 0
    functionsReached:
    - cl_reftable_write_to_buf
    - block_source_from_buf
    - reftable_table_new
    - REFTABLE_CALLOC_ARRAY
    - reftable_merged_table_new
    - cl_assert
    linkageType: ''
    returnType: struct reftable_merged_table
    signature: "struct reftable_merged_table *\nmerged_table_from_records(struct reftable_ref_record
      **refs,\n\t\t\t  struct reftable_block_source **source,\n\t\t\t  struct reftable_table
      ***tables, const size_t *sizes,\n\t\t\t  struct reftable_buf *buf, const size_t
      n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:53,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tables
    - n
    argTypes:
    - struct reftable_table**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: tables_destroy
    functionSourceFile: /src/git/t/unit-tests/u-reftable-merged.c
    functionUses: 0
    functionsReached:
    - reftable_free
    - reftable_table_decref
    linkageType: ''
    returnType: void
    signature: void tables_destroy(struct reftable_table **tables, const size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:77,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:77,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:77,1
    - Dst: merged_table_from_records
      Src: /src/git/t/unit-tests/u-reftable-merged.c:82,1
    - Dst: merged_table_init_iter
      Src: /src/git/t/unit-tests/u-reftable-merged.c:87,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:88,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:89,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:90,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:92,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:93,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:94,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-merged.c:94,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:96,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:97,1
    - Dst: tables_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:98,1
    - Dst: reftable_merged_table_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:99,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:100,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:101,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 103
    functionName: test_reftable_merged__single_record
    functionSourceFile: /src/git/t/unit-tests/u-reftable-merged.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - reftable_free
    - merged_table_init_iter
    - reftable_merged_table_free
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_buf_release
    - tables_destroy
    - merged_table_from_records
    - reftable_iterator_destroy
    - reftable_ref_record_equal
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_merged__single_record(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:155,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:155,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:155,1
    - Dst: merged_table_from_records
      Src: /src/git/t/unit-tests/u-reftable-merged.c:160,1
    - Dst: merged_table_init_iter
      Src: /src/git/t/unit-tests/u-reftable-merged.c:168,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:169,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:170,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:171,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:172,1
    - Dst: reftable_merged_table_hash_id
      Src: /src/git/t/unit-tests/u-reftable-merged.c:172,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:173,1
    - Dst: reftable_merged_table_min_update_index
      Src: /src/git/t/unit-tests/u-reftable-merged.c:173,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:174,1
    - Dst: reftable_merged_table_max_update_index
      Src: /src/git/t/unit-tests/u-reftable-merged.c:174,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:178,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:182,1
    - Dst: REFTABLE_ALLOC_GROW
      Src: /src/git/t/unit-tests/u-reftable-merged.c:182,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:185,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:187,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:187,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:189,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-merged.c:189,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:192,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:193,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:196,1
    - Dst: tables_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:197,1
    - Dst: reftable_merged_table_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:198,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 200
    functionName: test_reftable_merged__refs
    functionSourceFile: /src/git/t/unit-tests/u-reftable-merged.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - reftable_merged_table_max_update_index
    - reftable_free
    - merged_table_init_iter
    - reftable_merged_table_free
    - REFTABLE_ALLOC_GROW
    - cl_assert_equal_i
    - reftable_iterator_seek_ref
    - reftable_merged_table_min_update_index
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_buf_release
    - reftable_merged_table_hash_id
    - tables_destroy
    - merged_table_from_records
    - reftable_iterator_destroy
    - reftable_ref_record_equal
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_merged__refs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:236,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:236,1
    - Dst: merged_table_from_records
      Src: /src/git/t/unit-tests/u-reftable-merged.c:247,1
    - Dst: merged_table_init_iter
      Src: /src/git/t/unit-tests/u-reftable-merged.c:248,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:251,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:252,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:254,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:254,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:255,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-merged.c:255,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:258,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:258,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:259,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-merged.c:259,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:262,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:262,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:265,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:266,1
    - Dst: tables_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:267,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:267,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:268,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:269,1
    - Dst: reftable_merged_table_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:270,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 272
    functionName: test_reftable_merged__seek_multiple_times
    functionSourceFile: /src/git/t/unit-tests/u-reftable-merged.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - reftable_free
    - merged_table_init_iter
    - reftable_merged_table_free
    - cl_assert_equal_i
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_buf_release
    - tables_destroy
    - merged_table_from_records
    - reftable_iterator_destroy
    - reftable_ref_record_equal
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_merged__seek_multiple_times(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:308,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:308,1
    - Dst: merged_table_from_records
      Src: /src/git/t/unit-tests/u-reftable-merged.c:319,1
    - Dst: merged_table_init_iter
      Src: /src/git/t/unit-tests/u-reftable-merged.c:320,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:322,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:322,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:323,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:323,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:324,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-merged.c:324,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:327,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:327,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:328,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:328,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:329,1
    - Dst: reftable_ref_record_equal
      Src: /src/git/t/unit-tests/u-reftable-merged.c:329,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:332,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:333,1
    - Dst: tables_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:334,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:334,1
    - Dst: reftable_ref_record_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:335,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:336,1
    - Dst: reftable_merged_table_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:337,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 339
    functionName: test_reftable_merged__seek_multiple_times_no_drain
    functionSourceFile: /src/git/t/unit-tests/u-reftable-merged.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - reftable_free
    - merged_table_init_iter
    - reftable_merged_table_free
    - cl_assert_equal_i
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_buf_release
    - tables_destroy
    - merged_table_from_records
    - reftable_iterator_destroy
    - reftable_ref_record_equal
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_merged__seek_multiple_times_no_drain(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-merged.c:354,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:355,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/t/unit-tests/u-reftable-merged.c:356,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:357,1
    - Dst: cl_reftable_write_to_buf
      Src: /src/git/t/unit-tests/u-reftable-merged.c:360,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-merged.c:361,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-merged.c:363,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:365,1
    - Dst: reftable_merged_table_new
      Src: /src/git/t/unit-tests/u-reftable-merged.c:368,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - logs
    - source
    - tables
    - sizes
    - buf
    - n
    argTypes:
    - struct reftable_log_record**
    - struct reftable_block_source**
    - struct reftable_table***
    - size_t*
    - struct reftable_buf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 371
    functionName: merged_table_from_log_records
    functionSourceFile: /src/git/t/unit-tests/u-reftable-merged.c
    functionUses: 0
    functionsReached:
    - cl_reftable_write_to_buf
    - block_source_from_buf
    - reftable_table_new
    - REFTABLE_CALLOC_ARRAY
    - reftable_merged_table_new
    - cl_assert
    linkageType: ''
    returnType: struct reftable_merged_table
    signature: "struct reftable_merged_table *\nmerged_table_from_log_records(struct
      reftable_log_record **logs,\n\t\t\t      struct reftable_block_source **source,\n\t\t\t
      \     struct reftable_table ***tables, const size_t *sizes,\n\t\t\t      struct
      reftable_buf *buf, const size_t n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:428,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:428,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:428,1
    - Dst: merged_table_from_log_records
      Src: /src/git/t/unit-tests/u-reftable-merged.c:432,1
    - Dst: merged_table_init_iter
      Src: /src/git/t/unit-tests/u-reftable-merged.c:441,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:442,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/t/unit-tests/u-reftable-merged.c:443,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:444,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:445,1
    - Dst: reftable_merged_table_hash_id
      Src: /src/git/t/unit-tests/u-reftable-merged.c:445,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:446,1
    - Dst: reftable_merged_table_min_update_index
      Src: /src/git/t/unit-tests/u-reftable-merged.c:446,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:447,1
    - Dst: reftable_merged_table_max_update_index
      Src: /src/git/t/unit-tests/u-reftable-merged.c:447,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/t/unit-tests/u-reftable-merged.c:451,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:455,1
    - Dst: REFTABLE_ALLOC_GROW
      Src: /src/git/t/unit-tests/u-reftable-merged.c:455,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:458,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:460,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-reftable-merged.c:460,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:462,1
    - Dst: reftable_log_record_equal
      Src: /src/git/t/unit-tests/u-reftable-merged.c:462,1
    - Dst: merged_table_init_iter
      Src: /src/git/t/unit-tests/u-reftable-merged.c:465,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:466,1
    - Dst: reftable_iterator_seek_log_at
      Src: /src/git/t/unit-tests/u-reftable-merged.c:467,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:468,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:469,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:470,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/t/unit-tests/u-reftable-merged.c:470,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:471,1
    - Dst: reftable_log_record_equal
      Src: /src/git/t/unit-tests/u-reftable-merged.c:471,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:473,1
    - Dst: reftable_log_record_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:476,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:477,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:480,1
    - Dst: tables_destroy
      Src: /src/git/t/unit-tests/u-reftable-merged.c:481,1
    - Dst: reftable_merged_table_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:482,1
    - Dst: reftable_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:483,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 373
    functionDepth: 4
    functionLinenumber: 373
    functionLinenumberEnd: 484
    functionName: test_reftable_merged__logs
    functionSourceFile: /src/git/t/unit-tests/u-reftable-merged.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_next_log
    - reftable_iterator_seek_log_at
    - merged_table_init_iter
    - merged_table_from_log_records
    - reftable_iterator_seek_log
    - cl_assert
    - reftable_free
    - reftable_log_record_release
    - tables_destroy
    - ARRAY_SIZE
    - reftable_merged_table_max_update_index
    - reftable_merged_table_free
    - REFTABLE_ALLOC_GROW
    - reftable_buf_release
    - reftable_iterator_destroy
    - reftable_log_record_equal
    - cl_assert_equal_i
    - reftable_merged_table_min_update_index
    - reftable_merged_table_hash_id
    linkageType: ''
    returnType: void
    signature: void test_reftable_merged__logs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_reftable_strbuf_writer
      Src: /src/git/t/unit-tests/u-reftable-merged.c:490,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/t/unit-tests/u-reftable-merged.c:501,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:503,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:503,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:505,1
    - Dst: reftable_writer_close
      Src: /src/git/t/unit-tests/u-reftable-merged.c:505,1
    - Dst: reftable_writer_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:506,1
    - Dst: block_source_from_buf
      Src: /src/git/t/unit-tests/u-reftable-merged.c:508,1
    - Dst: reftable_table_new
      Src: /src/git/t/unit-tests/u-reftable-merged.c:510,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:511,1
    - Dst: reftable_table_hash_id
      Src: /src/git/t/unit-tests/u-reftable-merged.c:513,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:514,1
    - Dst: reftable_merged_table_new
      Src: /src/git/t/unit-tests/u-reftable-merged.c:516,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-reftable-merged.c:517,1
    - Dst: reftable_merged_table_new
      Src: /src/git/t/unit-tests/u-reftable-merged.c:518,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-reftable-merged.c:519,1
    - Dst: reftable_table_decref
      Src: /src/git/t/unit-tests/u-reftable-merged.c:521,1
    - Dst: reftable_merged_table_free
      Src: /src/git/t/unit-tests/u-reftable-merged.c:522,1
    - Dst: reftable_buf_release
      Src: /src/git/t/unit-tests/u-reftable-merged.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 524
    functionName: test_reftable_merged__default_write_opts
    functionSourceFile: /src/git/t/unit-tests/u-reftable-merged.c
    functionUses: 0
    functionsReached:
    - cl_reftable_strbuf_writer
    - reftable_writer_set_limits
    - block_source_from_buf
    - reftable_table_new
    - reftable_merged_table_free
    - reftable_writer_free
    - reftable_table_decref
    - cl_assert_equal_i
    - reftable_table_hash_id
    - reftable_buf_release
    - reftable_writer_close
    - reftable_writer_add_ref
    - reftable_merged_table_new
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_reftable_merged__default_write_opts(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vec
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 16
    functionName: check_strvec
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_strvec(vec, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-strvec.c:21,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strvec.c:22,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strvec.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: test_strvec__init
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - cl_assert_equal_p
    linkageType: ''
    returnType: void
    signature: void test_strvec__init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_init
      Src: /src/git/t/unit-tests/u-strvec.c:30,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-strvec.c:31,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strvec.c:32,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strvec.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: test_strvec__dynamic_init
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - strvec_init
    - cl_assert_equal_p
    linkageType: ''
    returnType: void
    signature: void test_strvec__dynamic_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/t/unit-tests/u-strvec.c:40,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:41,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-strvec.c:42,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strvec.c:43,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strvec.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: test_strvec__clear
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    - strvec_push
    - strvec_clear
    - cl_assert_equal_p
    linkageType: ''
    returnType: void
    signature: void test_strvec__clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/t/unit-tests/u-strvec.c:51,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:52,1
    - Dst: strvec_push
      Src: /src/git/t/unit-tests/u-strvec.c:54,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:55,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: test_strvec__push
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_push
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__push(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/t/unit-tests/u-strvec.c:64,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:65,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: test_strvec__pushf
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_clear
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: void test_strvec__pushf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:73,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:74,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: test_strvec__pushl
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_clear
    - strvec_pushl
    linkageType: ''
    returnType: void
    signature: void test_strvec__pushl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushv
      Src: /src/git/t/unit-tests/u-strvec.c:85,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:86,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: test_strvec__pushv
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_pushv
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__pushv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_splice
      Src: /src/git/t/unit-tests/u-strvec.c:96,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-strvec.c:96,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:97,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: test_strvec__splice_just_initialized_strvec
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - ARRAY_SIZE
    - strvec_clear
    - strvec_splice
    linkageType: ''
    returnType: void
    signature: void test_strvec__splice_just_initialized_strvec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:106,1
    - Dst: strvec_splice
      Src: /src/git/t/unit-tests/u-strvec.c:107,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-strvec.c:107,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:108,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: test_strvec__splice_with_same_size_replacement
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strvec_pushl
    - strvec_splice
    - check_strvec
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__splice_with_same_size_replacement(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:117,1
    - Dst: strvec_splice
      Src: /src/git/t/unit-tests/u-strvec.c:118,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-strvec.c:118,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:119,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: test_strvec__splice_with_smaller_replacement
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strvec_pushl
    - strvec_splice
    - check_strvec
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__splice_with_smaller_replacement(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:128,1
    - Dst: strvec_splice
      Src: /src/git/t/unit-tests/u-strvec.c:129,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-strvec.c:129,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:130,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 132
    functionName: test_strvec__splice_with_bigger_replacement
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strvec_pushl
    - strvec_splice
    - check_strvec
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__splice_with_bigger_replacement(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:138,1
    - Dst: strvec_splice
      Src: /src/git/t/unit-tests/u-strvec.c:139,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:140,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: test_strvec__splice_with_empty_replacement
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_clear
    - strvec_pushl
    - strvec_splice
    linkageType: ''
    returnType: void
    signature: void test_strvec__splice_with_empty_replacement(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:149,1
    - Dst: strvec_splice
      Src: /src/git/t/unit-tests/u-strvec.c:150,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-strvec.c:150,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:151,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: test_strvec__splice_with_empty_original
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strvec_pushl
    - strvec_splice
    - check_strvec
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__splice_with_empty_original(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:160,1
    - Dst: strvec_splice
      Src: /src/git/t/unit-tests/u-strvec.c:161,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-strvec.c:161,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:162,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: test_strvec__splice_at_tail
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strvec_pushl
    - strvec_splice
    - check_strvec
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__splice_at_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:170,1
    - Dst: strvec_replace
      Src: /src/git/t/unit-tests/u-strvec.c:171,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:172,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: test_strvec__replace_at_head
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_replace
    - strvec_pushl
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__replace_at_head(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:179,1
    - Dst: strvec_replace
      Src: /src/git/t/unit-tests/u-strvec.c:180,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:181,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 183
    functionName: test_strvec__replace_at_tail
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_replace
    - strvec_pushl
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__replace_at_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:189,1
    - Dst: strvec_replace
      Src: /src/git/t/unit-tests/u-strvec.c:190,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:191,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: test_strvec__replace_in_between
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_replace
    - strvec_pushl
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__replace_in_between(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:199,1
    - Dst: strvec_replace
      Src: /src/git/t/unit-tests/u-strvec.c:200,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:201,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: test_strvec__replace_with_substring
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_replace
    - strvec_pushl
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__replace_with_substring(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:209,1
    - Dst: strvec_remove
      Src: /src/git/t/unit-tests/u-strvec.c:210,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:211,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 213
    functionName: test_strvec__remove_at_head
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_clear
    - strvec_pushl
    - strvec_remove
    linkageType: ''
    returnType: void
    signature: void test_strvec__remove_at_head(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:219,1
    - Dst: strvec_remove
      Src: /src/git/t/unit-tests/u-strvec.c:220,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:221,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: test_strvec__remove_at_tail
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_clear
    - strvec_pushl
    - strvec_remove
    linkageType: ''
    returnType: void
    signature: void test_strvec__remove_at_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:229,1
    - Dst: strvec_remove
      Src: /src/git/t/unit-tests/u-strvec.c:230,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:231,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: test_strvec__remove_in_between
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_clear
    - strvec_pushl
    - strvec_remove
    linkageType: ''
    returnType: void
    signature: void test_strvec__remove_in_between(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pop
      Src: /src/git/t/unit-tests/u-strvec.c:239,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:240,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: test_strvec__pop_empty_array
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_clear
    - strvec_pop
    linkageType: ''
    returnType: void
    signature: void test_strvec__pop_empty_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/t/unit-tests/u-strvec.c:248,1
    - Dst: strvec_pop
      Src: /src/git/t/unit-tests/u-strvec.c:249,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:250,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 244
    functionDepth: 4
    functionLinenumber: 244
    functionLinenumberEnd: 252
    functionName: test_strvec__pop_non_empty_array
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - strvec_pop
    - strvec_clear
    - strvec_pushl
    - check_strvec
    linkageType: ''
    returnType: void
    signature: void test_strvec__pop_non_empty_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_split
      Src: /src/git/t/unit-tests/u-strvec.c:258,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:259,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 12
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: test_strvec__split_empty_string
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_split
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__split_empty_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_split
      Src: /src/git/t/unit-tests/u-strvec.c:267,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:268,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 12
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: test_strvec__split_single_item
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_split
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__split_single_item(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_split
      Src: /src/git/t/unit-tests/u-strvec.c:276,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:277,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 12
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: test_strvec__split_multiple_items
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_split
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__split_multiple_items(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_split
      Src: /src/git/t/unit-tests/u-strvec.c:285,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:286,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 12
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: test_strvec__split_whitespace_only
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_split
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__split_whitespace_only(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_split
      Src: /src/git/t/unit-tests/u-strvec.c:294,1
    - Dst: check_strvec
      Src: /src/git/t/unit-tests/u-strvec.c:295,1
    - Dst: strvec_clear
      Src: /src/git/t/unit-tests/u-strvec.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 290
    functionDepth: 12
    functionLinenumber: 290
    functionLinenumberEnd: 297
    functionName: test_strvec__split_multiple_consecutive_whitespaces
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - check_strvec
    - strvec_split
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void test_strvec__split_multiple_consecutive_whitespaces(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/t/unit-tests/u-strvec.c:304,1
    - Dst: strvec_detach
      Src: /src/git/t/unit-tests/u-strvec.c:306,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-strvec.c:307,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-strvec.c:308,1
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/u-strvec.c:310,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strvec.c:311,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/u-strvec.c:312,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-strvec.c:314,1
    - Dst: free
      Src: /src/git/t/unit-tests/u-strvec.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 8
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: test_strvec__detach
    functionSourceFile: /src/git/t/unit-tests/u-strvec.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - cl_assert_equal_s
    - strvec_detach
    - cl_assert_equal_p
    - cl_assert_equal_i
    - free
    linkageType: ''
    returnType: void
    signature: void test_strvec__detach(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/u-hash.c:8,1
    - Dst: ARRAY_SIZE
      Src: /src/git/t/unit-tests/u-hash.c:10,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/t/unit-tests/u-hash.c:15,1
    - Dst: git_hash_update
      Src: /src/git/t/unit-tests/u-hash.c:16,1
    - Dst: git_hash_final
      Src: /src/git/t/unit-tests/u-hash.c:17,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/u-hash.c:19,1
    - Dst: hash_to_hex_algop
      Src: /src/git/t/unit-tests/u-hash.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - data
    - data_length
    - expected_hashes
    argTypes:
    - void*
    - size_t
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 5
    functionDepth: 2
    functionLinenumber: 5
    functionLinenumberEnd: 21
    functionName: check_hash_data
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - cl_assert_equal_s
    - git_hash_final
    - hash_to_hex_algop
    - git_hash_update
    - struct git_hash_algo*::init_fn
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void check_hash_data(const void *data, size_t data_length,\n\t\t\t
      \   const char *expected_hashes[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - expected_sha1
    - ','
    - expected_sha256
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: TEST_HASH_STR
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_HASH_STR(data, expected_sha1, expected_sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - literal
    - ','
    - expected_sha1
    - ','
    - expected_sha256
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: TEST_HASH_LITERAL
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_HASH_LITERAL(literal, expected_sha1, expected_sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_HASH_STR
      Src: /src/git/t/unit-tests/u-hash.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: test_hash__empty_string
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - TEST_HASH_STR
    linkageType: ''
    returnType: void
    signature: void test_hash__empty_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_HASH_STR
      Src: /src/git/t/unit-tests/u-hash.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: test_hash__single_character
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - TEST_HASH_STR
    linkageType: ''
    returnType: void
    signature: void test_hash__single_character(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_HASH_STR
      Src: /src/git/t/unit-tests/u-hash.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: test_hash__multi_character
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - TEST_HASH_STR
    linkageType: ''
    returnType: void
    signature: void test_hash__multi_character(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_HASH_STR
      Src: /src/git/t/unit-tests/u-hash.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: test_hash__message_digest
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - TEST_HASH_STR
    linkageType: ''
    returnType: void
    signature: void test_hash__message_digest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_HASH_STR
      Src: /src/git/t/unit-tests/u-hash.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: test_hash__alphabet
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - TEST_HASH_STR
    linkageType: ''
    returnType: void
    signature: void test_hash__alphabet(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstrings
      Src: /src/git/t/unit-tests/u-hash.c:73,1
    - Dst: TEST_HASH_STR
      Src: /src/git/t/unit-tests/u-hash.c:74,1
    - Dst: strbuf_release
      Src: /src/git/t/unit-tests/u-hash.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: test_hash__aaaaaaaaaa_100000
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - TEST_HASH_STR
    - strbuf_release
    - strbuf_addstrings
    linkageType: ''
    returnType: void
    signature: void test_hash__aaaaaaaaaa_100000(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstrings
      Src: /src/git/t/unit-tests/u-hash.c:83,1
    - Dst: TEST_HASH_STR
      Src: /src/git/t/unit-tests/u-hash.c:84,1
    - Dst: strbuf_release
      Src: /src/git/t/unit-tests/u-hash.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: test_hash__alphabet_100000
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - TEST_HASH_STR
    - strbuf_release
    - strbuf_addstrings
    linkageType: ''
    returnType: void
    signature: void test_hash__alphabet_100000(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_HASH_LITERAL
      Src: /src/git/t/unit-tests/u-hash.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: test_hash__zero_blob_literal
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - TEST_HASH_LITERAL
    linkageType: ''
    returnType: void
    signature: void test_hash__zero_blob_literal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_HASH_LITERAL
      Src: /src/git/t/unit-tests/u-hash.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: test_hash__three_blob_literal
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - TEST_HASH_LITERAL
    linkageType: ''
    returnType: void
    signature: void test_hash__three_blob_literal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_HASH_LITERAL
      Src: /src/git/t/unit-tests/u-hash.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: test_hash__zero_tree_literal
    functionSourceFile: /src/git/t/unit-tests/u-hash.c
    functionUses: 0
    functionsReached:
    - TEST_HASH_LITERAL
    linkageType: ''
    returnType: void
    signature: void test_hash__zero_tree_literal(void)
  - 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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: va_copy
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(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: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: va_copy
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: stat
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 152
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: stat(path, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: mkdir
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mkdir(path, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: chdir
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chdir(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: access
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: access(path, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: strdup
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 265
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strdup(str)
  - 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: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: strcasecmp
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strcasecmp(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - to_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: strncpy
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strncpy(to, from, to_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: S_ISDIR
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - buf
    - ','
    - sz
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: p_snprintf
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p_snprintf(buf,sz,fmt,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - timer
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: localtime_r
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: localtime_r(timer, buf)
  - 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: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: MAX
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: CL_TRACE
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CL_TRACE(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/clar/clar.c:243,1
    - Dst: clar_print_onabortv
      Src: /src/git/t/unit-tests/clar/clar.c:244,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/clar/clar.c:245,1
    - Dst: exit
      Src: /src/git/t/unit-tests/clar/clar.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 247
    functionName: clar_abort
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - exit
    - clar_print_onabortv
    linkageType: ''
    returnType: void
    signature: void clar_abort(const char *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cb
    - payload
    argTypes:
    - cl_trace_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: cl_trace_register
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_trace_register(cl_trace_cb *cb, void *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clar_print_error
      Src: /src/git/t/unit-tests/clar/clar.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - report
    argTypes:
    - struct clar_report*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: clar_report_errors
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar_print_error
    linkageType: ''
    returnType: void
    signature: void clar_report_errors(struct clar_report *report)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clar_print_error
      Src: /src/git/t/unit-tests/clar/clar.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: clar_report_all
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar_print_error
    linkageType: ''
    returnType: void
    signature: void clar_report_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetTickCount
      Src: /src/git/t/unit-tests/clar/clar.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - clar_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: clar_time_now
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - GetTickCount
    linkageType: ''
    returnType: void
    signature: void clar_time_now(clar_time *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - clar_time*
    - clar_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: clar_time_diff
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double clar_time_diff(clar_time *start, clar_time *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/git/t/unit-tests/clar/clar.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - clar_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: clar_time_now
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void clar_time_now(clar_time *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - clar_time*
    - clar_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: clar_time_diff
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double clar_time_diff(clar_time *start, clar_time *end)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CL_TRACE
      Src: /src/git/t/unit-tests/clar/clar.c:323,1
    - Dst: clar_sandbox_create
      Src: /src/git/t/unit-tests/clar/clar.c:325,1
    - Dst: time
      Src: /src/git/t/unit-tests/clar/clar.c:327,1
    - Dst: clar_time_now
      Src: /src/git/t/unit-tests/clar/clar.c:328,1
    - Dst: setjmp
      Src: /src/git/t/unit-tests/clar/clar.c:330,1
    - Dst: struct clar_func*::ptr
      Src: /src/git/t/unit-tests/clar/clar.c:332,1
    - Dst: CL_TRACE
      Src: /src/git/t/unit-tests/clar/clar.c:334,1
    - Dst: struct clar_func*::ptr
      Src: /src/git/t/unit-tests/clar/clar.c:335,1
    - Dst: CL_TRACE
      Src: /src/git/t/unit-tests/clar/clar.c:336,1
    - Dst: clar_time_now
      Src: /src/git/t/unit-tests/clar/clar.c:339,1
    - Dst: clar_time_diff
      Src: /src/git/t/unit-tests/clar/clar.c:346,1
    - Dst: local_cleanup
      Src: /src/git/t/unit-tests/clar/clar.c:349,1
    - Dst: clar__clear_invokepoint
      Src: /src/git/t/unit-tests/clar/clar.c:351,1
    - Dst: struct clar_func*::ptr
      Src: /src/git/t/unit-tests/clar/clar.c:354,1
    - Dst: clar_sandbox_cleanup
      Src: /src/git/t/unit-tests/clar/clar.c:356,1
    - Dst: CL_TRACE
      Src: /src/git/t/unit-tests/clar/clar.c:358,1
    - Dst: clar_print_ontest
      Src: /src/git/t/unit-tests/clar/clar.c:366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - suite
    - test
    - initialize
    - cleanup
    argTypes:
    - struct clar_suite*
    - struct clar_func*
    - struct clar_func*
    - struct clar_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 367
    functionName: clar_run_test
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - CL_TRACE
    - clar_time_diff
    - clar__clear_invokepoint
    - clar_sandbox_cleanup
    - local_cleanup
    - clar_time_now
    - clar_sandbox_create
    - clar_print_ontest
    - setjmp
    - struct clar_func*::ptr
    - time
    linkageType: ''
    returnType: void
    signature: "void clar_run_test(\n\tconst struct clar_suite *suite,\n\tconst struct
      clar_func *test,\n\tconst struct clar_func *initialize,\n\tconst struct clar_func
      *cleanup)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: clar_print_onsuite
      Src: /src/git/t/unit-tests/clar/clar.c:383,1
    - Dst: CL_TRACE
      Src: /src/git/t/unit-tests/clar/clar.c:387,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar.c:390,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar.c:391,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar.c:398,1
    - Dst: strncmp
      Src: /src/git/t/unit-tests/clar/clar.c:408,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar.c:411,1
    - Dst: calloc
      Src: /src/git/t/unit-tests/clar/clar.c:416,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar.c:417,1
    - Dst: clar_run_test
      Src: /src/git/t/unit-tests/clar/clar.c:431,1
    - Dst: CL_TRACE
      Src: /src/git/t/unit-tests/clar/clar.c:438,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 2
    argNames:
    - suite
    - filter
    argTypes:
    - struct clar_suite*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 439
    functionName: clar_run_suite
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - CL_TRACE
    - clar_run_test
    - clar_abort
    - strlen
    - strncmp
    - calloc
    - clar_print_onsuite
    linkageType: ''
    returnType: void
    signature: void clar_run_suite(const struct clar_suite *suite, const char *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:444,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:445,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:446,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:447,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:448,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:449,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:450,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:451,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:452,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:453,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:454,1
    - Dst: exit
      Src: /src/git/t/unit-tests/clar/clar.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 456
    functionName: clar_usage
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void clar_usage(const char *arg)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: clar_usage
      Src: /src/git/t/unit-tests/clar/clar.c:467,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar.c:478,1
    - Dst: clar_usage
      Src: /src/git/t/unit-tests/clar/clar.c:482,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar.c:485,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar.c:489,1
    - Dst: strncmp
      Src: /src/git/t/unit-tests/clar/clar.c:492,1
    - Dst: calloc
      Src: /src/git/t/unit-tests/clar/clar.c:507,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar.c:508,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar.c:533,1
    - Dst: clar_usage
      Src: /src/git/t/unit-tests/clar/clar.c:540,1
    - Dst: clar_usage
      Src: /src/git/t/unit-tests/clar/clar.c:547,1
    - Dst: clar_usage
      Src: /src/git/t/unit-tests/clar/clar.c:554,1
    - Dst: clar_usage
      Src: /src/git/t/unit-tests/clar/clar.c:563,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:565,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar.c:567,1
    - Dst: exit
      Src: /src/git/t/unit-tests/clar/clar.c:569,1
    - Dst: clar_usage
      Src: /src/git/t/unit-tests/clar/clar.c:574,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar.c:581,1
    - Dst: strdup
      Src: /src/git/t/unit-tests/clar/clar.c:584,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar.c:585,1
    - Dst: clar_usage
      Src: /src/git/t/unit-tests/clar/clar.c:593,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 93
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 596
    functionName: clar_parse_args
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar_abort
    - exit
    - strlen
    - strdup
    - clar_usage
    - free
    - strncmp
    - calloc
    - printf
    linkageType: ''
    returnType: void
    signature: void clar_parse_args(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: clar_parse_args
      Src: /src/git/t/unit-tests/clar/clar.c:604,1
    - Dst: clar_print_init
      Src: /src/git/t/unit-tests/clar/clar.c:606,1
    - Dst: getenv
      Src: /src/git/t/unit-tests/clar/clar.c:609,1
    - Dst: strdup
      Src: /src/git/t/unit-tests/clar/clar.c:611,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar.c:612,1
    - Dst: strdup
      Src: /src/git/t/unit-tests/clar/clar.c:616,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar.c:617,1
    - Dst: clar_summary_init
      Src: /src/git/t/unit-tests/clar/clar.c:620,1
    - Dst: clar_tempdir_init
      Src: /src/git/t/unit-tests/clar/clar.c:622,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 623
    functionName: clar_test_init
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar_tempdir_init
    - clar_abort
    - strdup
    - clar_parse_args
    - getenv
    - clar_print_init
    - clar_summary_init
    linkageType: ''
    returnType: void
    signature: void clar_test_init(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clar_run_suite
      Src: /src/git/t/unit-tests/clar/clar.c:633,1
    - Dst: clar_run_suite
      Src: /src/git/t/unit-tests/clar/clar.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 640
    functionName: clar_test_run
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar_run_suite
    linkageType: ''
    returnType: int
    signature: int clar_test_run(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clar_print_shutdown
      Src: /src/git/t/unit-tests/clar/clar.c:648,1
    - Dst: clar_tempdir_shutdown
      Src: /src/git/t/unit-tests/clar/clar.c:654,1
    - Dst: clar_summary_shutdown
      Src: /src/git/t/unit-tests/clar/clar.c:656,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar.c:657,1
    - Dst: strerror
      Src: /src/git/t/unit-tests/clar/clar.c:658,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar.c:662,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar.c:669,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar.c:671,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar.c:675,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar.c:678,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 679
    functionName: clar_test_shutdown
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar_summary_shutdown
    - clar_print_shutdown
    - clar_tempdir_shutdown
    - clar_abort
    - strerror
    - free
    linkageType: ''
    returnType: void
    signature: void clar_test_shutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clar_test_init
      Src: /src/git/t/unit-tests/clar/clar.c:686,1
    - Dst: clar_test_run
      Src: /src/git/t/unit-tests/clar/clar.c:687,1
    - Dst: clar_test_shutdown
      Src: /src/git/t/unit-tests/clar/clar.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 681
    functionDepth: 4
    functionLinenumber: 681
    functionLinenumberEnd: 691
    functionName: clar_test
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 1
    functionsReached:
    - clar_test_shutdown
    - clar_test_run
    - clar_test_init
    linkageType: ''
    returnType: int
    signature: int clar_test(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clar_print_onabort
      Src: /src/git/t/unit-tests/clar/clar.c:696,1
    - Dst: clar_report_errors
      Src: /src/git/t/unit-tests/clar/clar.c:698,1
    - Dst: exit
      Src: /src/git/t/unit-tests/clar/clar.c:699,1
    - Dst: CL_TRACE
      Src: /src/git/t/unit-tests/clar/clar.c:702,1
    - Dst: longjmp
      Src: /src/git/t/unit-tests/clar/clar.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 704
    functionName: abort_test
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar_print_onabort
    - CL_TRACE
    - exit
    - longjmp
    - clar_report_errors
    linkageType: ''
    returnType: void
    signature: void abort_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort_test
      Src: /src/git/t/unit-tests/clar/clar.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 706
    functionDepth: 3
    functionLinenumber: 706
    functionLinenumberEnd: 711
    functionName: clar__skip
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - abort_test
    linkageType: ''
    returnType: void
    signature: void clar__skip(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/git/t/unit-tests/clar/clar.c:724,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar.c:725,1
    - Dst: va_copy
      Src: /src/git/t/unit-tests/clar/clar.c:744,1
    - Dst: p_vsnprintf
      Src: /src/git/t/unit-tests/clar/clar.c:745,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar.c:746,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/clar/clar.c:747,1
    - Dst: calloc
      Src: /src/git/t/unit-tests/clar/clar.c:749,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar.c:750,1
    - Dst: p_vsnprintf
      Src: /src/git/t/unit-tests/clar/clar.c:751,1
    - Dst: abort_test
      Src: /src/git/t/unit-tests/clar/clar.c:758,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 7
    argNames:
    - file
    - function
    - line
    - should_abort
    - error_msg
    - description
    - args
    argTypes:
    - char*
    - char*
    - size_t
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 759
    functionName: clar__failv
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - va_copy
    - clar_abort
    - p_vsnprintf
    - va_end
    - abort_test
    - calloc
    linkageType: ''
    returnType: void
    signature: "void clar__failv(\n\tconst char *file,\n\tconst char *function,\n\tsize_t
      line,\n\tint should_abort,\n\tconst char *error_msg,\n\tconst char *description,\n\tva_list
      args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/clar/clar.c:771,1
    - Dst: clar__failv
      Src: /src/git/t/unit-tests/clar/clar.c:772,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/clar/clar.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - file
    - function
    - line
    - should_abort
    - error_msg
    - description
    argTypes:
    - char*
    - char*
    - size_t
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 761
    functionDepth: 4
    functionLinenumber: 761
    functionLinenumberEnd: 775
    functionName: clar__failf
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar__failv
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: "void clar__failf(\n\tconst char *file,\n\tconst char *function,\n\tsize_t
      line,\n\tint should_abort,\n\tconst char *error_msg,\n\tconst char *description,\n\t...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clar__failf
      Src: /src/git/t/unit-tests/clar/clar.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - file
    - function
    - line
    - error_msg
    - description
    - should_abort
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 777
    functionDepth: 5
    functionLinenumber: 777
    functionLinenumberEnd: 787
    functionName: clar__fail
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar__failf
    linkageType: ''
    returnType: void
    signature: "void clar__fail(\n\tconst char *file,\n\tconst char *function,\n\tsize_t
      line,\n\tconst char *error_msg,\n\tconst char *description,\n\tint should_abort)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clar__fail
      Src: /src/git/t/unit-tests/clar/clar.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - condition
    - file
    - function
    - line
    - error_msg
    - description
    - should_abort
    argTypes:
    - int
    - char*
    - char*
    - size_t
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 789
    functionDepth: 6
    functionLinenumber: 789
    functionLinenumberEnd: 802
    functionName: clar__assert
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar__fail
    linkageType: ''
    returnType: void
    signature: "void clar__assert(\n\tint condition,\n\tconst char *file,\n\tconst
      char *function,\n\tsize_t line,\n\tconst char *error_msg,\n\tconst char *description,\n\tint
      should_abort)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/clar/clar.c:817,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar.c:819,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:820,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:821,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar.c:822,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:829,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:836,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar.c:841,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:842,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:843,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:844,1
    - Dst: strncmp
      Src: /src/git/t/unit-tests/clar/clar.c:845,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:852,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:859,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar.c:865,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:866,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:867,1
    - Dst: wcscmp
      Src: /src/git/t/unit-tests/clar/clar.c:868,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:875,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:882,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar.c:887,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:888,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:889,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:890,1
    - Dst: wcsncmp
      Src: /src/git/t/unit-tests/clar/clar.c:891,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:898,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:905,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar.c:911,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar.c:911,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:912,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:912,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:915,1
    - Dst: strncat
      Src: /src/git/t/unit-tests/clar/clar.c:916,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:917,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar.c:920,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:921,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:921,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:924,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:927,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/clar.c:927,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:930,1
    - Dst: strncat
      Src: /src/git/t/unit-tests/clar/clar.c:931,1
    - Dst: p_snprintf
      Src: /src/git/t/unit-tests/clar/clar.c:932,1
    - Dst: clar__fail
      Src: /src/git/t/unit-tests/clar/clar.c:939,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 72
    argCount: 6
    argNames:
    - file
    - function
    - line
    - err
    - should_abort
    - fmt
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 804
    functionDepth: 6
    functionLinenumber: 804
    functionLinenumberEnd: 940
    functionName: clar__assert_equal
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - wcsncmp
    - strncat
    - wcscmp
    - va_arg
    - strcmp
    - strncmp
    - p_snprintf
    - va_start
    - clar__fail
    linkageType: ''
    returnType: void
    signature: "void clar__assert_equal(\n\tconst char *file,\n\tconst char *function,\n\tsize_t
      line,\n\tconst char *err,\n\tint should_abort,\n\tconst char *fmt,\n\t...)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar.c:972,1
    - Dst: va_start
      Src: /src/git/t/unit-tests/clar/clar.c:978,1
    - Dst: clar__failv
      Src: /src/git/t/unit-tests/clar/clar.c:979,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/clar/clar.c:981,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 9
    argNames:
    - file
    - func
    - line
    - should_abort
    - cmp
    - value1
    - value2
    - error
    - description
    argTypes:
    - char*
    - char*
    - size_t
    - int
    - enum clar_comparison
    - intmax_t
    - intmax_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 942
    functionDepth: 4
    functionLinenumber: 942
    functionLinenumberEnd: 983
    functionName: clar__assert_compare_i
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar__failv
    - va_start
    - va_end
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void clar__assert_compare_i(\n\tconst char *file,\n\tconst char *func,\n\tsize_t
      line,\n\tint should_abort,\n\tenum clar_comparison cmp,\n\tintmax_t value1,\n\tintmax_t
      value2,\n\tconst char *error,\n\tconst char *description,\n\t...)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar.c:1015,1
    - Dst: va_start
      Src: /src/git/t/unit-tests/clar/clar.c:1021,1
    - Dst: clar__failv
      Src: /src/git/t/unit-tests/clar/clar.c:1022,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/clar/clar.c:1024,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 9
    argNames:
    - file
    - func
    - line
    - should_abort
    - cmp
    - value1
    - value2
    - error
    - description
    argTypes:
    - char*
    - char*
    - size_t
    - int
    - enum clar_comparison
    - uintmax_t
    - uintmax_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 985
    functionDepth: 4
    functionLinenumber: 985
    functionLinenumberEnd: 1026
    functionName: clar__assert_compare_u
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached:
    - clar__failv
    - va_start
    - va_end
    - cl_assert
    linkageType: ''
    returnType: void
    signature: "void clar__assert_compare_u(\n\tconst char *file,\n\tconst char *func,\n\tsize_t
      line,\n\tint should_abort,\n\tenum clar_comparison cmp,\n\tuintmax_t value1,\n\tuintmax_t
      value2,\n\tconst char *error,\n\tconst char *description,\n\t...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1032
    functionName: cl_set_cleanup
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_set_cleanup(void (*cleanup)(void *), void *opaque)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - func
    - line
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1042
    functionName: clar__set_invokepoint
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void clar__set_invokepoint(\n\tconst char *file,\n\tconst char *func,\n\tsize_t
      line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1049
    functionName: clar__clear_invokepoint
    functionSourceFile: /src/git/t/unit-tests/clar/clar.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clar__clear_invokepoint(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: cl_invoke
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_invoke(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: cl_must_pass_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_must_pass_(expr, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: cl_must_fail_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_must_fail_(expr, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: cl_assert_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_(expr, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: cl_check_pass_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_check_pass_(expr, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: cl_check_fail_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_check_fail_(expr, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: cl_check_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_check_(expr, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: cl_must_pass
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_must_pass(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: cl_must_fail
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_must_fail(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: cl_assert
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: cl_check_pass
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_check_pass(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: cl_check_fail
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_check_fail(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: cl_check
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_check(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: cl_fail
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_fail(desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - desc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: cl_failf
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_failf(desc,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: cl_warning
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_warning(desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: cl_skip
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_skip()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: cl_assert_equal_s
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_s(s1,s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - note
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: cl_assert_equal_s_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_s_(s1,s2,note)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - wcs1
    - ','
    - wcs2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: cl_assert_equal_wcs
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_wcs(wcs1,wcs2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - wcs1
    - ','
    - wcs2
    - ','
    - note
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: cl_assert_equal_wcs_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_wcs_(wcs1,wcs2,note)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: cl_assert_equal_strn
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_strn(s1,s2,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - len
    - ','
    - note
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: cl_assert_equal_strn_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_strn_(s1,s2,len,note)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - wcs1
    - ','
    - wcs2
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: cl_assert_equal_wcsn
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_wcsn(wcs1,wcs2,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - wcs1
    - ','
    - wcs2
    - ','
    - len
    - ','
    - note
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: cl_assert_equal_wcsn_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_wcsn_(wcs1,wcs2,len,note)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i1
    - ','
    - i2
    - ','
    - cmp
    - ','
    - error
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: cl_assert_compare_i_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_compare_i_(i1, i2, cmp, error, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i1
    - ','
    - i2
    - ','
    - cmp
    - ','
    - error
    - ','
    - fmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: cl_assert_compare_i
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_compare_i(i1, i2, cmp, error, fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i1
    - ','
    - i2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: cl_assert_equal_i_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_i_(i1, i2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: cl_assert_equal_i
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 140
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_i(i1, i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i1
    - ','
    - i2
    - ','
    - fmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: cl_assert_equal_i_fmt
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_i_fmt(i1, i2, fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i1
    - ','
    - i2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: cl_assert_lt_i_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_lt_i_(i1, i2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: cl_assert_lt_i
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_lt_i(i1, i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i1
    - ','
    - i2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: cl_assert_le_i_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_le_i_(i1, i2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: cl_assert_le_i
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_le_i(i1, i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i1
    - ','
    - i2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: cl_assert_gt_i_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_gt_i_(i1, i2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: cl_assert_gt_i
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_gt_i(i1, i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i1
    - ','
    - i2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: cl_assert_ge_i_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_ge_i_(i1, i2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: cl_assert_ge_i
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_ge_i(i1, i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - u1
    - ','
    - u2
    - ','
    - cmp
    - ','
    - error
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: cl_assert_compare_u_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_compare_u_(u1, u2, cmp, error, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - u1
    - ','
    - u2
    - ','
    - cmp
    - ','
    - error
    - ','
    - fmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: cl_assert_compare_u
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_compare_u(u1, u2, cmp, error, fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - u1
    - ','
    - u2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: cl_assert_equal_u_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_u_(u1, u2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - u1
    - ','
    - u2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: cl_assert_equal_u
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_u(u1, u2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - u1
    - ','
    - u2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: cl_assert_lt_u_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_lt_u_(u1, u2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - u1
    - ','
    - u2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: cl_assert_lt_u
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_lt_u(u1, u2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - u1
    - ','
    - u2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: cl_assert_le_u_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_le_u_(u1, u2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - u1
    - ','
    - u2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: cl_assert_le_u
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_le_u(u1, u2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - u1
    - ','
    - u2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: cl_assert_gt_u_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_gt_u_(u1, u2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - u1
    - ','
    - u2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: cl_assert_gt_u
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_gt_u(u1, u2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - u1
    - ','
    - u2
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: cl_assert_ge_u_
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_ge_u_(u1, u2, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - u1
    - ','
    - u2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: cl_assert_ge_u
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_ge_u(u1, u2)
  - 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: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: cl_assert_equal_b
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_b(b1,b2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p1
    - ','
    - p2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: cl_assert_equal_p
    functionSourceFile: /src/git/t/unit-tests/clar/clar.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cl_assert_equal_p(p1,p2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/git/t/unit-tests/clar/test/selftest.c:21,1
    - Dst: cl_fail
      Src: /src/git/t/unit-tests/clar/test/selftest.c:23,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/clar/test/selftest.c:24,1
    - Dst: GetLastError
      Src: /src/git/t/unit-tests/clar/test/selftest.c:24,1
    - Dst: realloc
      Src: /src/git/t/unit-tests/clar/test/selftest.c:30,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:31,1
    - Dst: memcpy
      Src: /src/git/t/unit-tests/clar/test/selftest.c:32,1
    - Dst: realloc
      Src: /src/git/t/unit-tests/clar/test/selftest.c:36,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:37,1
    - Dst: strstr
      Src: /src/git/t/unit-tests/clar/test/selftest.c:40,1
    - Dst: strstr
      Src: /src/git/t/unit-tests/clar/test/selftest.c:41,1
    - Dst: memmove
      Src: /src/git/t/unit-tests/clar/test/selftest.c:42,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/test/selftest.c:42,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - h
    - is_pipe
    argTypes:
    - HANDLE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 46
    functionName: read_full
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - ReadFile
    - strstr
    - cl_fail
    - GetLastError
    - memcpy
    - cl_assert_equal_i
    - realloc
    - strlen
    - memmove
    - cl_assert
    linkageType: ''
    returnType: char
    signature: char *read_full(HANDLE h, int is_pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateFile
      Src: /src/git/t/unit-tests/clar/test/selftest.c:53,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:55,1
    - Dst: read_full
      Src: /src/git/t/unit-tests/clar/test/selftest.c:56,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/clar/test/selftest.c:57,1
    - Dst: CloseHandle
      Src: /src/git/t/unit-tests/clar/test/selftest.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: read_file
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 33
    functionsReached:
    - read_full
    - cl_assert_equal_b
    - CloseHandle
    - CreateFile
    - cl_assert
    linkageType: ''
    returnType: char
    signature: char *read_file(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/git/t/unit-tests/clar/test/selftest.c:75,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/clar/test/selftest.c:82,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/test/selftest.c:84,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:86,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/test/selftest.c:86,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/clar/test/selftest.c:87,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/clar/test/selftest.c:99,1
    - Dst: CreatePipe
      Src: /src/git/t/unit-tests/clar/test/selftest.c:99,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/clar/test/selftest.c:100,1
    - Dst: SetHandleInformation
      Src: /src/git/t/unit-tests/clar/test/selftest.c:100,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/clar/test/selftest.c:109,1
    - Dst: CreateProcess
      Src: /src/git/t/unit-tests/clar/test/selftest.c:109,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/clar/test/selftest.c:111,1
    - Dst: CloseHandle
      Src: /src/git/t/unit-tests/clar/test/selftest.c:111,1
    - Dst: read_full
      Src: /src/git/t/unit-tests/clar/test/selftest.c:113,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/clar/test/selftest.c:114,1
    - Dst: CloseHandle
      Src: /src/git/t/unit-tests/clar/test/selftest.c:114,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/clar/test/selftest.c:115,1
    - Dst: GetExitCodeProcess
      Src: /src/git/t/unit-tests/clar/test/selftest.c:115,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/clar/test/selftest.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 4
    argNames:
    - suite
    - expected_error_code
    - args
    - nargs
    argTypes:
    - char*
    - int
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 119
    functionName: execute
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 1
    functionsReached:
    - snprintf
    - SetHandleInformation
    - read_full
    - CreateProcess
    - cl_assert_equal_i
    - cl_assert_equal_b
    - strlen
    - CloseHandle
    - CreatePipe
    - GetExitCodeProcess
    - cl_assert
    linkageType: ''
    returnType: char
    signature: char *execute(const char *suite, int expected_error_code, const char
      **args, size_t nargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/clar/test/selftest.c:129,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/test/selftest.c:131,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:134,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/clar/test/selftest.c:137,1
    - Dst: execute
      Src: /src/git/t/unit-tests/clar/test/selftest.c:139,1
    - Dst: read_file
      Src: /src/git/t/unit-tests/clar/test/selftest.c:140,1
    - Dst: cl_fixture
      Src: /src/git/t/unit-tests/clar/test/selftest.c:140,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/clar/test/selftest.c:141,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/test/selftest.c:143,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/test/selftest.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - suite
    - expected_output_file
    - expected_error_code
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: assert_output
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - read_file
    - va_end
    - va_arg
    - cl_fixture
    - free
    - va_start
    - execute
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void assert_output(const char *suite, const char *expected_output_file,
      int expected_error_code, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/git/t/unit-tests/clar/test/selftest.c:163,1
    - Dst: cl_fail
      Src: /src/git/t/unit-tests/clar/test/selftest.c:167,1
    - Dst: realloc
      Src: /src/git/t/unit-tests/clar/test/selftest.c:172,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:173,1
    - Dst: memcpy
      Src: /src/git/t/unit-tests/clar/test/selftest.c:175,1
    - Dst: realloc
      Src: /src/git/t/unit-tests/clar/test/selftest.c:179,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 184
    functionName: read_full
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 2
    functionsReached:
    - read
    - cl_fail
    - memcpy
    - realloc
    - cl_assert
    linkageType: ''
    returnType: char
    signature: char *read_full(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/t/unit-tests/clar/test/selftest.c:191,1
    - Dst: cl_fail
      Src: /src/git/t/unit-tests/clar/test/selftest.c:193,1
    - Dst: read_full
      Src: /src/git/t/unit-tests/clar/test/selftest.c:195,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/test/selftest.c:196,1
    - Dst: close
      Src: /src/git/t/unit-tests/clar/test/selftest.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: read_file
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 34
    functionsReached:
    - open
    - cl_fail
    - read_full
    - cl_must_pass
    - close
    linkageType: ''
    returnType: char
    signature: char *read_file(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/test/selftest.c:206,1
    - Dst: pipe
      Src: /src/git/t/unit-tests/clar/test/selftest.c:206,1
    - Dst: fork
      Src: /src/git/t/unit-tests/clar/test/selftest.c:208,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:215,1
    - Dst: dup2
      Src: /src/git/t/unit-tests/clar/test/selftest.c:220,1
    - Dst: dup2
      Src: /src/git/t/unit-tests/clar/test/selftest.c:221,1
    - Dst: close
      Src: /src/git/t/unit-tests/clar/test/selftest.c:222,1
    - Dst: close
      Src: /src/git/t/unit-tests/clar/test/selftest.c:223,1
    - Dst: close
      Src: /src/git/t/unit-tests/clar/test/selftest.c:224,1
    - Dst: exit
      Src: /src/git/t/unit-tests/clar/test/selftest.c:225,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:227,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/test/selftest.c:227,1
    - Dst: strcpy
      Src: /src/git/t/unit-tests/clar/test/selftest.c:228,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/test/selftest.c:229,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:231,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:235,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/test/selftest.c:235,1
    - Dst: strcpy
      Src: /src/git/t/unit-tests/clar/test/selftest.c:236,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/test/selftest.c:237,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:239,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/test/selftest.c:239,1
    - Dst: strcpy
      Src: /src/git/t/unit-tests/clar/test/selftest.c:240,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/test/selftest.c:241,1
    - Dst: execv
      Src: /src/git/t/unit-tests/clar/test/selftest.c:245,1
    - Dst: exit
      Src: /src/git/t/unit-tests/clar/test/selftest.c:246,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/test/selftest.c:252,1
    - Dst: close
      Src: /src/git/t/unit-tests/clar/test/selftest.c:252,1
    - Dst: read_full
      Src: /src/git/t/unit-tests/clar/test/selftest.c:254,1
    - Dst: waitpid
      Src: /src/git/t/unit-tests/clar/test/selftest.c:256,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/clar/test/selftest.c:257,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:258,1
    - Dst: WIFEXITED
      Src: /src/git/t/unit-tests/clar/test/selftest.c:258,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/clar/test/selftest.c:259,1
    - Dst: WEXITSTATUS
      Src: /src/git/t/unit-tests/clar/test/selftest.c:259,1
    - Dst: cl_fail
      Src: /src/git/t/unit-tests/clar/test/selftest.c:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - suite
    - expected_error_code
    - args
    - nargs
    argTypes:
    - char*
    - int
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 267
    functionName: execute
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 2
    functionsReached:
    - strcpy
    - pipe
    - WEXITSTATUS
    - read_full
    - cl_fail
    - cl_must_pass
    - fork
    - exit
    - execv
    - cl_assert_equal_i
    - strlen
    - WIFEXITED
    - close
    - waitpid
    - dup2
    - cl_assert
    linkageType: ''
    returnType: char
    signature: char *execute(const char *suite, int expected_error_code, const char
      **args, size_t nargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/clar/test/selftest.c:276,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:278,1
    - Dst: va_arg
      Src: /src/git/t/unit-tests/clar/test/selftest.c:279,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/clar/test/selftest.c:283,1
    - Dst: execute
      Src: /src/git/t/unit-tests/clar/test/selftest.c:285,1
    - Dst: read_file
      Src: /src/git/t/unit-tests/clar/test/selftest.c:286,1
    - Dst: cl_fixture
      Src: /src/git/t/unit-tests/clar/test/selftest.c:286,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/clar/test/selftest.c:287,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/test/selftest.c:289,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/test/selftest.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - suite
    - expected_output_file
    - expected_error_code
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 291
    functionName: assert_output
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - read_file
    - va_end
    - va_arg
    - cl_fixture
    - free
    - va_start
    - execute
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void assert_output(const char *suite, const char *expected_output_file,
      int expected_error_code, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_invoke
      Src: /src/git/t/unit-tests/clar/test/selftest.c:296,1
    - Dst: assert_output
      Src: /src/git/t/unit-tests/clar/test/selftest.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: test_selftest__help
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_invoke
    - assert_output
    linkageType: ''
    returnType: void
    signature: void test_selftest__help(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_invoke
      Src: /src/git/t/unit-tests/clar/test/selftest.c:301,1
    - Dst: assert_output
      Src: /src/git/t/unit-tests/clar/test/selftest.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 4
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: test_selftest__without_arguments
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_invoke
    - assert_output
    linkageType: ''
    returnType: void
    signature: void test_selftest__without_arguments(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_invoke
      Src: /src/git/t/unit-tests/clar/test/selftest.c:306,1
    - Dst: assert_output
      Src: /src/git/t/unit-tests/clar/test/selftest.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: test_selftest__specific_test
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_invoke
    - assert_output
    linkageType: ''
    returnType: void
    signature: void test_selftest__specific_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_invoke
      Src: /src/git/t/unit-tests/clar/test/selftest.c:311,1
    - Dst: assert_output
      Src: /src/git/t/unit-tests/clar/test/selftest.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: test_selftest__stop_on_failure
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_invoke
    - assert_output
    linkageType: ''
    returnType: void
    signature: void test_selftest__stop_on_failure(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_invoke
      Src: /src/git/t/unit-tests/clar/test/selftest.c:316,1
    - Dst: assert_output
      Src: /src/git/t/unit-tests/clar/test/selftest.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: test_selftest__quiet
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_invoke
    - assert_output
    linkageType: ''
    returnType: void
    signature: void test_selftest__quiet(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_invoke
      Src: /src/git/t/unit-tests/clar/test/selftest.c:321,1
    - Dst: assert_output
      Src: /src/git/t/unit-tests/clar/test/selftest.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: test_selftest__tap
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_invoke
    - assert_output
    linkageType: ''
    returnType: void
    signature: void test_selftest__tap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_invoke
      Src: /src/git/t/unit-tests/clar/test/selftest.c:326,1
    - Dst: assert_output
      Src: /src/git/t/unit-tests/clar/test/selftest.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: test_selftest__suite_names
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_invoke
    - assert_output
    linkageType: ''
    returnType: void
    signature: void test_selftest__suite_names(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_invoke
      Src: /src/git/t/unit-tests/clar/test/selftest.c:332,1
    - Dst: assert_output
      Src: /src/git/t/unit-tests/clar/test/selftest.c:332,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/test/selftest.c:334,1
    - Dst: stat
      Src: /src/git/t/unit-tests/clar/test/selftest.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: test_selftest__summary_without_filename
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_invoke
    - cl_must_pass
    - stat
    - assert_output
    linkageType: ''
    returnType: void
    signature: void test_selftest__summary_without_filename(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_invoke
      Src: /src/git/t/unit-tests/clar/test/selftest.c:340,1
    - Dst: assert_output
      Src: /src/git/t/unit-tests/clar/test/selftest.c:340,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/test/selftest.c:342,1
    - Dst: stat
      Src: /src/git/t/unit-tests/clar/test/selftest.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: test_selftest__summary_with_filename
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_invoke
    - cl_must_pass
    - stat
    - assert_output
    linkageType: ''
    returnType: void
    signature: void test_selftest__summary_with_filename(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute
      Src: /src/git/t/unit-tests/clar/test/selftest.c:351,1
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/clar/test/selftest.c:352,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/test/selftest.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 359
    functionName: test_selftest__pointer_equal
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - execute
    - free
    linkageType: ''
    returnType: void
    signature: void test_selftest__pointer_equal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute
      Src: /src/git/t/unit-tests/clar/test/selftest.c:366,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:367,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/selftest.c:368,1
    - Dst: strstr
      Src: /src/git/t/unit-tests/clar/test/selftest.c:368,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/test/selftest.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 370
    functionName: test_selftest__pointer_unequal
    functionSourceFile: /src/git/t/unit-tests/clar/test/selftest.c
    functionUses: 0
    functionsReached:
    - free
    - execute
    - strstr
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_selftest__pointer_unequal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 12
    functionName: file_size
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - stat
    linkageType: ''
    returnType: int
    signature: int file_size(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_fixture_cleanup
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:16,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:18,1
    - Dst: file_size
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: test_combined__cleanup
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - file_size
    - cl_fixture_cleanup
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_combined__cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:23,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:24,1
    - Dst: cl_must_fail
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:25,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: test_combined__1
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_must_pass
    - cl_must_fail
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_combined__1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_fixture_sandbox
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:31,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:33,1
    - Dst: file_size
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:33,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:34,1
    - Dst: file_size
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:34,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: test_combined__2
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - file_size
    - cl_fixture_sandbox
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void test_combined__2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:41,1
    - Dst: cl_assert_equal_s_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:42,1
    - Dst: cl_assert_equal_s_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: test_combined__strings
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - cl_assert_equal_s_
    linkageType: ''
    returnType: void
    signature: void test_combined__strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_strn
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:49,1
    - Dst: cl_assert_equal_strn
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:50,1
    - Dst: cl_assert_equal_strn_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:51,1
    - Dst: cl_assert_equal_strn_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: test_combined__strings_with_length
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_strn
    - cl_assert_equal_strn_
    linkageType: ''
    returnType: void
    signature: void test_combined__strings_with_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: test_combined__int
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    linkageType: ''
    returnType: void
    signature: void test_combined__int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: test_combined__int_note
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i_
    linkageType: ''
    returnType: void
    signature: void test_combined__int_note(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i_fmt
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: test_combined__int_fmt
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i_fmt
    linkageType: ''
    returnType: void
    signature: void test_combined__int_fmt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:76,1
    - Dst: cl_assert_equal_b
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: test_combined__bool
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_b
    linkageType: ''
    returnType: void
    signature: void test_combined__bool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_must_pass_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: test_combined__multiline_description
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_must_pass_
    linkageType: ''
    returnType: void
    signature: void test_combined__multiline_description(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_s
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:88,1
    - Dst: cl_assert_equal_s_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: test_combined__null_string
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_s
    - cl_assert_equal_s_
    linkageType: ''
    returnType: void
    signature: void test_combined__null_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_failf
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: test_combined__failf
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_failf
    linkageType: ''
    returnType: void
    signature: void test_combined__failf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:101,1
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:102,1
    - Dst: cl_assert_equal_i_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:103,1
    - Dst: cl_assert_lt_i
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:104,1
    - Dst: cl_assert_lt_i_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:105,1
    - Dst: cl_assert_le_i
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:106,1
    - Dst: cl_assert_le_i
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:107,1
    - Dst: cl_assert_le_i_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:108,1
    - Dst: cl_assert_gt_i
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:109,1
    - Dst: cl_assert_gt_i_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:110,1
    - Dst: cl_assert_ge_i
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:111,1
    - Dst: cl_assert_ge_i
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:112,1
    - Dst: cl_assert_ge_i_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:113,1
    - Dst: cl_assert_lt_i
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 116
    functionName: test_combined__compare_i
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_gt_i_
    - cl_assert_ge_i_
    - cl_assert_le_i
    - cl_assert_le_i_
    - cl_assert_equal_i_
    - cl_assert_equal_i
    - cl_assert_ge_i
    - cl_assert_lt_i
    - cl_assert_gt_i
    - cl_assert_lt_i_
    linkageType: ''
    returnType: void
    signature: void test_combined__compare_i(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_lt_i_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: test_combined__compare_i_with_format
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_lt_i_
    linkageType: ''
    returnType: void
    signature: void test_combined__compare_i_with_format(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_u
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:128,1
    - Dst: cl_assert_equal_u_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:129,1
    - Dst: cl_assert_lt_u
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:130,1
    - Dst: cl_assert_lt_u_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:131,1
    - Dst: cl_assert_le_u
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:132,1
    - Dst: cl_assert_le_u
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:133,1
    - Dst: cl_assert_le_u_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:134,1
    - Dst: cl_assert_gt_u
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:135,1
    - Dst: cl_assert_gt_u_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:136,1
    - Dst: cl_assert_ge_u
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:137,1
    - Dst: cl_assert_ge_u
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:138,1
    - Dst: cl_assert_ge_u_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:139,1
    - Dst: cl_assert_lt_u
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 142
    functionName: test_combined__compare_u
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_u
    - cl_assert_equal_u_
    - cl_assert_gt_u
    - cl_assert_le_u
    - cl_assert_ge_u_
    - cl_assert_le_u_
    - cl_assert_gt_u_
    - cl_assert_ge_u
    - cl_assert_lt_u_
    - cl_assert_lt_u
    linkageType: ''
    returnType: void
    signature: void test_combined__compare_u(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_lt_u_
      Src: /src/git/t/unit-tests/clar/test/suites/combined.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: test_combined__compare_u_with_format
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/combined.c
    functionUses: 0
    functionsReached:
    - cl_assert_lt_u_
    linkageType: ''
    returnType: void
    signature: void test_combined__compare_u_with_format(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/clar/test/suites/pointer.c:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 7
    functionName: test_pointer__equal
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/pointer.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_p
    linkageType: ''
    returnType: void
    signature: void test_pointer__equal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_p
      Src: /src/git/t/unit-tests/clar/test/suites/pointer.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: test_pointer__unequal
    functionSourceFile: /src/git/t/unit-tests/clar/test/suites/pointer.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_p
    linkageType: ''
    returnType: void
    signature: void test_pointer__unequal(void)
  - 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: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: wcscpy_s
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wcscpy_s(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: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: wcscat_s
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wcscat_s(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - _tocheck
    argTypes:
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fs__dotordotdot
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fs__dotordotdot(WCHAR *_tocheck)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RemoveDirectoryW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:36,1
    - Dst: GetLastError
      Src: /src/git/t/unit-tests/clar/clar/fs.h:40,1
    - Dst: Sleep
      Src: /src/git/t/unit-tests/clar/clar/fs.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - _wpath
    argTypes:
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: fs_rmdir_rmdir
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached:
    - GetLastError
    - Sleep
    - RemoveDirectoryW
    linkageType: ''
    returnType: int
    signature: int fs_rmdir_rmdir(WCHAR *_wpath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcsncmp
      Src: /src/git/t/unit-tests/clar/clar/fs.h:55,1
    - Dst: wcslen
      Src: /src/git/t/unit-tests/clar/clar/fs.h:58,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - path
    - path_size
    argTypes:
    - WCHAR*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 75
    functionName: translate_path
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached:
    - wcslen
    - cl_assert
    - wcsncmp
    linkageType: ''
    returnType: void
    signature: void translate_path(WCHAR *path, size_t path_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wcscpy_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:86,1
    - Dst: translate_path
      Src: /src/git/t/unit-tests/clar/clar/fs.h:87,1
    - Dst: wcscat_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:88,1
    - Dst: wcslen
      Src: /src/git/t/unit-tests/clar/clar/fs.h:89,1
    - Dst: wcscat_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:92,1
    - Dst: FindFirstFileW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:93,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:94,1
    - Dst: fs__dotordotdot
      Src: /src/git/t/unit-tests/clar/clar/fs.h:99,1
    - Dst: wcscpy_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:102,1
    - Dst: fs_rmdir_helper
      Src: /src/git/t/unit-tests/clar/clar/fs.h:105,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:109,1
    - Dst: SetFileAttributesW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:109,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:111,1
    - Dst: DeleteFileW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:111,1
    - Dst: FindNextFileW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:114,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:117,1
    - Dst: GetLastError
      Src: /src/git/t/unit-tests/clar/clar/fs.h:117,1
    - Dst: FindClose
      Src: /src/git/t/unit-tests/clar/clar/fs.h:120,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:123,1
    - Dst: fs_rmdir_rmdir
      Src: /src/git/t/unit-tests/clar/clar/fs.h:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - _wsource
    argTypes:
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 124
    functionName: fs_rmdir_helper
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 1
    functionsReached:
    - DeleteFileW
    - wcslen
    - fs_rmdir_helper
    - GetLastError
    - SetFileAttributesW
    - FindFirstFileW
    - translate_path
    - FindNextFileW
    - FindClose
    - fs__dotordotdot
    - fs_rmdir_rmdir
    - wcscat_s
    - wcscpy_s
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void fs_rmdir_helper(WCHAR *_wsource)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:133,1
    - Dst: GetLastError
      Src: /src/git/t/unit-tests/clar/clar/fs.h:134,1
    - Dst: Sleep
      Src: /src/git/t/unit-tests/clar/clar/fs.h:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - _wpath
    argTypes:
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 148
    functionName: fs_rm_wait
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached:
    - GetFileAttributesW
    - Sleep
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int fs_rm_wait(WCHAR *_wpath)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:158,1
    - Dst: MultiByteToWideChar
      Src: /src/git/t/unit-tests/clar/clar/fs.h:158,1
    - Dst: translate_path
      Src: /src/git/t/unit-tests/clar/clar/fs.h:165,1
    - Dst: GetFileAttributesW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:168,1
    - Dst: fs_rmdir_helper
      Src: /src/git/t/unit-tests/clar/clar/fs.h:174,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:178,1
    - Dst: SetFileAttributesW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:178,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:180,1
    - Dst: DeleteFileW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:180,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:184,1
    - Dst: fs_rm_wait
      Src: /src/git/t/unit-tests/clar/clar/fs.h:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - _source
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 185
    functionName: fs_rm
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached:
    - DeleteFileW
    - MultiByteToWideChar
    - fs_rmdir_helper
    - GetFileAttributesW
    - SetFileAttributesW
    - translate_path
    - fs_rm_wait
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void fs_rm(const char *_source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcscpy_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:195,1
    - Dst: wcscat_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:196,1
    - Dst: translate_path
      Src: /src/git/t/unit-tests/clar/clar/fs.h:197,1
    - Dst: wcslen
      Src: /src/git/t/unit-tests/clar/clar/fs.h:198,1
    - Dst: wcscpy_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:200,1
    - Dst: wcscat_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:201,1
    - Dst: translate_path
      Src: /src/git/t/unit-tests/clar/clar/fs.h:202,1
    - Dst: wcslen
      Src: /src/git/t/unit-tests/clar/clar/fs.h:203,1
    - Dst: wcscat_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:206,1
    - Dst: FindFirstFileW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:207,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:208,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:211,1
    - Dst: CreateDirectoryW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:211,1
    - Dst: fs__dotordotdot
      Src: /src/git/t/unit-tests/clar/clar/fs.h:216,1
    - Dst: wcscpy_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:219,1
    - Dst: wcscpy_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:220,1
    - Dst: fs_copydir_helper
      Src: /src/git/t/unit-tests/clar/clar/fs.h:223,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:225,1
    - Dst: CopyFileW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:225,1
    - Dst: FindNextFileW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:227,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:230,1
    - Dst: GetLastError
      Src: /src/git/t/unit-tests/clar/clar/fs.h:230,1
    - Dst: FindClose
      Src: /src/git/t/unit-tests/clar/clar/fs.h:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - _wsource
    - _wdest
    argTypes:
    - WCHAR*
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 234
    functionName: fs_copydir_helper
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 1
    functionsReached:
    - wcslen
    - CopyFileW
    - CreateDirectoryW
    - GetLastError
    - FindFirstFileW
    - translate_path
    - FindNextFileW
    - FindClose
    - fs__dotordotdot
    - fs_copydir_helper
    - wcscat_s
    - wcscpy_s
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void fs_copydir_helper(WCHAR *_wsource, WCHAR *_wdest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:246,1
    - Dst: MultiByteToWideChar
      Src: /src/git/t/unit-tests/clar/clar/fs.h:246,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:253,1
    - Dst: MultiByteToWideChar
      Src: /src/git/t/unit-tests/clar/clar/fs.h:253,1
    - Dst: translate_path
      Src: /src/git/t/unit-tests/clar/clar/fs.h:260,1
    - Dst: translate_path
      Src: /src/git/t/unit-tests/clar/clar/fs.h:261,1
    - Dst: GetFileAttributesW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:264,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:265,1
    - Dst: GetFileAttributesW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:268,1
    - Dst: FindFirstFileW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:273,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:274,1
    - Dst: wcscat_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:275,1
    - Dst: wcscat_s
      Src: /src/git/t/unit-tests/clar/clar/fs.h:276,1
    - Dst: FindClose
      Src: /src/git/t/unit-tests/clar/clar/fs.h:277,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:280,1
    - Dst: GetFileAttributesW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:280,1
    - Dst: fs_copydir_helper
      Src: /src/git/t/unit-tests/clar/clar/fs.h:284,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:286,1
    - Dst: CopyFileW
      Src: /src/git/t/unit-tests/clar/clar/fs.h:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - _source
    - _dest
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 287
    functionName: fs_copy
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached:
    - MultiByteToWideChar
    - CopyFileW
    - GetFileAttributesW
    - FindFirstFileW
    - translate_path
    - FindClose
    - fs_copydir_helper
    - wcscat_s
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void fs_copy(const char *_source, const char *_dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fs_rm
      Src: /src/git/t/unit-tests/clar/clar/fs.h:293,1
    - Dst: fixture_path
      Src: /src/git/t/unit-tests/clar/clar/fs.h:293,1
    - Dst: clar_tempdir_path
      Src: /src/git/t/unit-tests/clar/clar/fs.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: cl_fs_cleanup
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached:
    - fixture_path
    - fs_rm
    - clar_tempdir_path
    linkageType: ''
    returnType: void
    signature: void cl_fs_cleanup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/fs.h:320,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/fs.h:322,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - out
    - out_len
    - in
    argTypes:
    - char**
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 341
    functionName: basename_r
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached:
    - strlen
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void basename_r(const char **out, int *out_len, const char *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/fs.h:349,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:351,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/fs.h:355,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:356,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:358,1
    - Dst: malloc
      Src: /src/git/t/unit-tests/clar/clar/fs.h:358,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:359,1
    - Dst: snprintf
      Src: /src/git/t/unit-tests/clar/clar/fs.h:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - dir
    - base
    - base_len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 362
    functionName: joinpath
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached:
    - malloc
    - strlen
    - snprintf
    - cl_assert
    linkageType: ''
    returnType: char
    signature: char *joinpath(const char *dir, const char *base, int base_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/git/t/unit-tests/clar/clar/fs.h:369,1
    - Dst: cl_assert_
      Src: /src/git/t/unit-tests/clar/clar/fs.h:371,1
    - Dst: opendir
      Src: /src/git/t/unit-tests/clar/clar/fs.h:371,1
    - Dst: readdir
      Src: /src/git/t/unit-tests/clar/clar/fs.h:377,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar/fs.h:381,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar/fs.h:381,1
    - Dst: joinpath
      Src: /src/git/t/unit-tests/clar/clar/fs.h:384,1
    - Dst: fs_copy
      Src: /src/git/t/unit-tests/clar/clar/fs.h:385,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar/fs.h:386,1
    - Dst: cl_assert_
      Src: /src/git/t/unit-tests/clar/clar/fs.h:389,1
    - Dst: closedir
      Src: /src/git/t/unit-tests/clar/clar/fs.h:391,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - source
    - dest
    - dest_mode
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 392
    functionName: fs_copydir_helper
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 2
    functionsReached:
    - opendir
    - mkdir
    - cl_assert_
    - joinpath
    - strcmp
    - free
    - fs_copy
    - closedir
    - readdir
    linkageType: ''
    returnType: void
    signature: void fs_copydir_helper(const char *source, const char *dest, int dest_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/clar/fs.h:399,1
    - Dst: open
      Src: /src/git/t/unit-tests/clar/clar/fs.h:399,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/clar/fs.h:400,1
    - Dst: open
      Src: /src/git/t/unit-tests/clar/clar/fs.h:400,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/clar/fs.h:404,1
    - Dst: fcopyfile
      Src: /src/git/t/unit-tests/clar/clar/fs.h:404,1
    - Dst: sendfile
      Src: /src/git/t/unit-tests/clar/clar/fs.h:409,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:412,1
    - Dst: read
      Src: /src/git/t/unit-tests/clar/clar/fs.h:421,1
    - Dst: write
      Src: /src/git/t/unit-tests/clar/clar/fs.h:424,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:425,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:428,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:430,1
    - Dst: close
      Src: /src/git/t/unit-tests/clar/clar/fs.h:434,1
    - Dst: close
      Src: /src/git/t/unit-tests/clar/clar/fs.h:435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - source
    - source_len
    - dest
    - dest_mode
    argTypes:
    - char*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 436
    functionName: fs_copyfile_helper
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached:
    - read
    - open
    - cl_must_pass
    - fcopyfile
    - write
    - close
    - sendfile
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void fs_copyfile_helper(const char *source, size_t source_len, const
      char *dest, int dest_mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cl_must_pass_
      Src: /src/git/t/unit-tests/clar/clar/fs.h:445,1
    - Dst: lstat
      Src: /src/git/t/unit-tests/clar/clar/fs.h:445,1
    - Dst: lstat
      Src: /src/git/t/unit-tests/clar/clar/fs.h:447,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:452,1
    - Dst: S_ISDIR
      Src: /src/git/t/unit-tests/clar/clar/fs.h:452,1
    - Dst: basename_r
      Src: /src/git/t/unit-tests/clar/clar/fs.h:454,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/fs.h:455,1
    - Dst: joinpath
      Src: /src/git/t/unit-tests/clar/clar/fs.h:457,1
    - Dst: cl_fail
      Src: /src/git/t/unit-tests/clar/clar/fs.h:460,1
    - Dst: S_ISDIR
      Src: /src/git/t/unit-tests/clar/clar/fs.h:465,1
    - Dst: fs_copydir_helper
      Src: /src/git/t/unit-tests/clar/clar/fs.h:466,1
    - Dst: fs_copyfile_helper
      Src: /src/git/t/unit-tests/clar/clar/fs.h:468,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar/fs.h:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - source
    - _dest
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 472
    functionName: fs_copy
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - cl_fail
    - fs_copyfile_helper
    - cl_must_pass_
    - basename_r
    - fs_copydir_helper
    - joinpath
    - free
    - lstat
    - cl_assert
    linkageType: ''
    returnType: void
    signature: void fs_copy(const char *source, const char *_dest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_
      Src: /src/git/t/unit-tests/clar/clar/fs.h:479,1
    - Dst: opendir
      Src: /src/git/t/unit-tests/clar/clar/fs.h:479,1
    - Dst: readdir
      Src: /src/git/t/unit-tests/clar/clar/fs.h:486,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar/fs.h:490,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar/fs.h:490,1
    - Dst: joinpath
      Src: /src/git/t/unit-tests/clar/clar/fs.h:493,1
    - Dst: fs_rm
      Src: /src/git/t/unit-tests/clar/clar/fs.h:494,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar/fs.h:495,1
    - Dst: cl_assert_
      Src: /src/git/t/unit-tests/clar/clar/fs.h:498,1
    - Dst: closedir
      Src: /src/git/t/unit-tests/clar/clar/fs.h:499,1
    - Dst: cl_must_pass_
      Src: /src/git/t/unit-tests/clar/clar/fs.h:501,1
    - Dst: rmdir
      Src: /src/git/t/unit-tests/clar/clar/fs.h:501,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 502
    functionName: fs_rmdir_helper
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 2
    functionsReached:
    - cl_must_pass_
    - opendir
    - cl_assert_
    - rmdir
    - joinpath
    - fs_rm
    - strcmp
    - free
    - closedir
    - readdir
    linkageType: ''
    returnType: void
    signature: void fs_rmdir_helper(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/t/unit-tests/clar/clar/fs.h:509,1
    - Dst: cl_fail
      Src: /src/git/t/unit-tests/clar/clar/fs.h:513,1
    - Dst: S_ISDIR
      Src: /src/git/t/unit-tests/clar/clar/fs.h:516,1
    - Dst: fs_rmdir_helper
      Src: /src/git/t/unit-tests/clar/clar/fs.h:517,1
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/clar/fs.h:519,1
    - Dst: unlink
      Src: /src/git/t/unit-tests/clar/clar/fs.h:519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 521
    functionName: fs_rm
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 2
    functionsReached:
    - S_ISDIR
    - fs_rmdir_helper
    - cl_fail
    - cl_must_pass
    - lstat
    - unlink
    linkageType: ''
    returnType: void
    signature: void fs_rm(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clar_tempdir_shutdown
      Src: /src/git/t/unit-tests/clar/clar/fs.h:526,1
    - Dst: clar_tempdir_init
      Src: /src/git/t/unit-tests/clar/clar/fs.h:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 528
    functionName: cl_fs_cleanup
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fs.h
    functionUses: 0
    functionsReached:
    - clar_tempdir_shutdown
    - clar_tempdir_init
    linkageType: ''
    returnType: void
    signature: void cl_fs_cleanup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:8,1
    - Dst: strncpy
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:9,1
    - Dst: strncpy
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - base
    - fixture_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 2
    functionDepth: 1
    functionLinenumber: 2
    functionLinenumberEnd: 22
    functionName: fixture_path
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fixtures.h
    functionUses: 1
    functionsReached:
    - strncpy
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      fixture_path(const char *base, const char *fixture_name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fixture_path
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: cl_fixture
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fixtures.h
    functionUses: 2
    functionsReached:
    - fixture_path
    linkageType: ''
    returnType: char
    signature: char *cl_fixture(const char *fixture_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fs_copy
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:31,1
    - Dst: cl_fixture
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:31,1
    - Dst: clar_sandbox_path
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: cl_fixture_sandbox
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fixtures.h
    functionUses: 1
    functionsReached:
    - fs_copy
    - cl_fixture
    - clar_sandbox_path
    linkageType: ''
    returnType: void
    signature: void cl_fixture_sandbox(const char *fixture_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - fixture_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: cl_fixture_basename
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fixtures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cl_fixture_basename(const char *fixture_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fs_rm
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:48,1
    - Dst: fixture_path
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:48,1
    - Dst: clar_sandbox_path
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:48,1
    - Dst: cl_fixture_basename
      Src: /src/git/t/unit-tests/clar/clar/fixtures.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: cl_fixture_cleanup
    functionSourceFile: /src/git/t/unit-tests/clar/clar/fixtures.h
    functionUses: 1
    functionsReached:
    - cl_fixture_basename
    - fixture_path
    - fs_rm
    - clar_sandbox_path
    linkageType: ''
    returnType: void
    signature: void cl_fixture_cleanup(const char *fixture_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:22,1
    - Dst: S_ISDIR
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:25,1
    - Dst: access
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:28,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: is_valid_tmp_path
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 0
    functionsReached:
    - access
    - S_ISDIR
    - stat
    - strlen
    linkageType: ''
    returnType: int
    signature: int is_valid_tmp_path(const char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:46,1
    - Dst: is_valid_tmp_path
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:51,1
    - Dst: strncpy
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:52,1
    - Dst: is_valid_tmp_path
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:59,1
    - Dst: strncpy
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:60,1
    - Dst: GetEnvironmentVariable
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:66,1
    - Dst: GetTempPath
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:70,1
    - Dst: is_valid_tmp_path
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:76,1
    - Dst: strncpy
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:77,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 83
    functionName: find_tmp_path
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 0
    functionsReached:
    - GetTempPath
    - GetEnvironmentVariable
    - strncpy
    - getenv
    - is_valid_tmp_path
    linkageType: ''
    returnType: int
    signature: int find_tmp_path(char *buffer, size_t length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetFullPathName
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:91,1
    - Dst: GetLongPathName
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:96,1
    - Dst: realpath
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:110,1
    - Dst: strcpy
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 119
    functionName: canonicalize_tmp_path
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 0
    functionsReached:
    - GetLongPathName
    - strcpy
    - GetFullPathName
    - realpath
    linkageType: ''
    returnType: int
    signature: int canonicalize_tmp_path(char *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cl_must_pass
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:126,1
    - Dst: chdir
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:126,1
    - Dst: fs_rm
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: clar_tempdir_shutdown
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 2
    functionsReached:
    - cl_must_pass
    - chdir
    - fs_rm
    linkageType: ''
    returnType: void
    signature: void clar_tempdir_shutdown(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: find_tmp_path
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:141,1
    - Dst: canonicalize_tmp_path
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:142,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:145,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:147,1
    - Dst: strncpy
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:153,1
    - Dst: _mktemp
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:156,1
    - Dst: mkdir
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:159,1
    - Dst: _mktemp_s
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:162,1
    - Dst: mkdir
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:165,1
    - Dst: mktemp
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:168,1
    - Dst: mkdir
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:171,1
    - Dst: mkdtemp
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:174,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:178,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 180
    functionName: build_tempdir_path
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 0
    functionsReached:
    - mkdtemp
    - mktemp
    - canonicalize_tmp_path
    - _mktemp_s
    - strncpy
    - strlen
    - mkdir
    - _mktemp
    - find_tmp_path
    linkageType: ''
    returnType: int
    signature: int build_tempdir_path(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: build_tempdir_path
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:184,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:185,1
    - Dst: chdir
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:187,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:188,1
    - Dst: strerror
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:189,1
    - Dst: srand
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:192,1
    - Dst: clock
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:192,1
    - Dst: time
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:192,1
    - Dst: GetCurrentProcessId
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:192,1
    - Dst: GetCurrentThreadId
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:192,1
    - Dst: srand
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:194,1
    - Dst: clock
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:194,1
    - Dst: time
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:194,1
    - Dst: getpid
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: clar_tempdir_init
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 2
    functionsReached:
    - chdir
    - clar_abort
    - strerror
    - getpid
    - clock
    - GetCurrentThreadId
    - srand
    - GetCurrentProcessId
    - build_tempdir_path
    - time
    linkageType: ''
    returnType: void
    signature: void clar_tempdir_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: append
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 176
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void append(char *dst, const char *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:219,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:222,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:230,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:230,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:230,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:230,1
    - Dst: strcpy
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:232,1
    - Dst: append
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:236,1
    - Dst: append
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:237,1
    - Dst: append
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:238,1
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:244,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:244,1
    - Dst: strcpy
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:246,1
    - Dst: mkdir
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:260,1
    - Dst: chdir
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - suite_name
    - test_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 267
    functionName: clar_sandbox_create
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 1
    functionsReached:
    - chdir
    - rand
    - strcpy
    - append
    - mkdir
    - strlen
    - cl_assert
    linkageType: ''
    returnType: int
    signature: int clar_sandbox_create(const char *suite_name, const char *test_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:271,1
    - Dst: chdir
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:273,1
    - Dst: fs_rm
      Src: /src/git/t/unit-tests/clar/clar/sandbox.h:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 280
    functionName: clar_sandbox_cleanup
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 1
    functionsReached:
    - chdir
    - fs_rm
    - cl_assert
    linkageType: ''
    returnType: int
    signature: int clar_sandbox_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: clar_tempdir_path
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *clar_tempdir_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: clar_sandbox_path
    functionSourceFile: /src/git/t/unit-tests/clar/clar/sandbox.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *clar_sandbox_path(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/unit-tests/clar/clar/summary.h:14,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - summary
    - tag
    - indent
    argTypes:
    - struct clar_summary*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 15
    functionName: clar_summary_close_tag
    functionSourceFile: /src/git/t/unit-tests/clar/clar/summary.h
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int clar_summary_close_tag(\n    struct clar_summary *summary, const
      char *tag, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/unit-tests/clar/clar/summary.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - summary
    argTypes:
    - struct clar_summary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: clar_summary_testsuites
    functionSourceFile: /src/git/t/unit-tests/clar/clar/summary.h
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int clar_summary_testsuites(struct clar_summary *summary)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/git/t/unit-tests/clar/clar/summary.h:29,1
    - Dst: strftime
      Src: /src/git/t/unit-tests/clar/clar/summary.h:30,1
    - Dst: fprintf
      Src: /src/git/t/unit-tests/clar/clar/summary.h:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - summary
    - idn
    - name
    - timestamp
    - test_count
    - fail_count
    - error_count
    argTypes:
    - struct clar_summary*
    - int
    - char*
    - time_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: clar_summary_testsuite
    functionSourceFile: /src/git/t/unit-tests/clar/clar/summary.h
    functionUses: 0
    functionsReached:
    - localtime_r
    - strftime
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int clar_summary_testsuite(struct clar_summary *summary,\n    int
      idn, const char *name, time_t timestamp,\n    int test_count, int fail_count,
      int error_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/unit-tests/clar/clar/summary.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - summary
    - name
    - classname
    - elapsed
    argTypes:
    - struct clar_summary*
    - char*
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: clar_summary_testcase
    functionSourceFile: /src/git/t/unit-tests/clar/clar/summary.h
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int clar_summary_testcase(struct clar_summary *summary,\n    const
      char *name, const char *classname, double elapsed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/unit-tests/clar/clar/summary.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - summary
    - type
    - message
    - desc
    argTypes:
    - struct clar_summary*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: clar_summary_failure
    functionSourceFile: /src/git/t/unit-tests/clar/clar/summary.h
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int clar_summary_failure(struct clar_summary *summary,\n    const
      char *type, const char *message, const char *desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/t/unit-tests/clar/clar/summary.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - summary
    argTypes:
    - struct clar_summary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: clar_summary_skipped
    functionSourceFile: /src/git/t/unit-tests/clar/clar/summary.h
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int clar_summary_skipped(struct clar_summary *summary)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/t/unit-tests/clar/clar/summary.h:70,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar/summary.h:71,1
    - Dst: strerror
      Src: /src/git/t/unit-tests/clar/clar/summary.h:72,1
    - Dst: malloc
      Src: /src/git/t/unit-tests/clar/clar/summary.h:74,1
    - Dst: clar_abort
      Src: /src/git/t/unit-tests/clar/clar/summary.h:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: clar_summary_init
    functionSourceFile: /src/git/t/unit-tests/clar/clar/summary.h
    functionUses: 1
    functionsReached:
    - clar_abort
    - malloc
    - strerror
    - fopen
    linkageType: ''
    returnType: struct clar_summary
    signature: struct clar_summary *clar_summary_init(const char *filename)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: clar_summary_testsuites
      Src: /src/git/t/unit-tests/clar/clar/summary.h:88,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar/summary.h:95,1
    - Dst: clar_summary_testsuite
      Src: /src/git/t/unit-tests/clar/clar/summary.h:96,1
    - Dst: clar_summary_testcase
      Src: /src/git/t/unit-tests/clar/clar/summary.h:103,1
    - Dst: clar_summary_failure
      Src: /src/git/t/unit-tests/clar/clar/summary.h:106,1
    - Dst: clar_summary_skipped
      Src: /src/git/t/unit-tests/clar/clar/summary.h:114,1
    - Dst: clar_summary_close_tag
      Src: /src/git/t/unit-tests/clar/clar/summary.h:116,1
    - Dst: strcmp
      Src: /src/git/t/unit-tests/clar/clar/summary.h:121,1
    - Dst: clar_summary_close_tag
      Src: /src/git/t/unit-tests/clar/clar/summary.h:122,1
    - Dst: clar_summary_close_tag
      Src: /src/git/t/unit-tests/clar/clar/summary.h:127,1
    - Dst: fclose
      Src: /src/git/t/unit-tests/clar/clar/summary.h:128,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/summary.h:131,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar/summary.h:133,1
    - Dst: fclose
      Src: /src/git/t/unit-tests/clar/clar/summary.h:137,1
    - Dst: free
      Src: /src/git/t/unit-tests/clar/clar/summary.h:138,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 1
    argNames:
    - summary
    argTypes:
    - struct clar_summary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 140
    functionName: clar_summary_shutdown
    functionSourceFile: /src/git/t/unit-tests/clar/clar/summary.h
    functionUses: 1
    functionsReached:
    - fclose
    - clar_summary_testsuites
    - clar_summary_testcase
    - clar_summary_testsuite
    - clar_summary_skipped
    - clar_summary_close_tag
    - strcmp
    - free
    - clar_summary_failure
    - printf
    linkageType: ''
    returnType: int
    signature: int clar_summary_shutdown(struct clar_summary *summary)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:10,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_count
    - suite_count
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 12
    functionName: clar_print_clap_init
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void clar_print_clap_init(int test_count, int suite_count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:21,1
    - Dst: clar_report_all
      Src: /src/git/t/unit-tests/clar/clar/print.h:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - test_count
    - suite_count
    - error_count
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: clar_print_clap_shutdown
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - clar_report_all
    - printf
    linkageType: ''
    returnType: void
    signature: void clar_print_clap_shutdown(int test_count, int suite_count, int
      error_count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/t/unit-tests/clar/clar/print.h:31,1
    - Dst: strlen
      Src: /src/git/t/unit-tests/clar/clar/print.h:35,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:36,1
    - Dst: putc
      Src: /src/git/t/unit-tests/clar/clar/print.h:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - indent
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: clar_print_indented
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - putc
    - strlen
    - printf
    - strchr
    linkageType: ''
    returnType: void
    signature: void clar_print_indented(const char *str, int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:43,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:45,1
    - Dst: clar_print_indented
      Src: /src/git/t/unit-tests/clar/clar/print.h:51,1
    - Dst: clar_print_indented
      Src: /src/git/t/unit-tests/clar/clar/print.h:54,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:56,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/clar/clar/print.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - num
    - report
    - error
    argTypes:
    - int
    - struct clar_report*
    - struct clar_error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: clar_print_clap_error
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - clar_print_indented
    - fflush
    - printf
    linkageType: ''
    returnType: void
    signature: void clar_print_clap_error(int num, const struct clar_report *report,
      const struct clar_error *error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:69,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:72,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:73,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:74,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:75,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:79,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:80,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:81,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:82,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/clar/clar/print.h:85,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - suite_name
    - test_name
    - test_number
    - status
    argTypes:
    - char*
    - char*
    - int
    - enum cl_test_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 87
    functionName: clar_print_clap_ontest
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - fflush
    - printf
    linkageType: ''
    returnType: void
    signature: void clar_print_clap_ontest(const char *suite_name, const char *test_name,
      int test_number, enum cl_test_status status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - suite_name
    - suite_index
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: clar_print_clap_onsuite
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void clar_print_clap_onsuite(const char *suite_name, int suite_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vfprintf
      Src: /src/git/t/unit-tests/clar/clar/print.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - arg
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: clar_print_clap_onabort
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void clar_print_clap_onabort(const char *fmt, va_list arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - test_count
    - suite_count
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: clar_print_tap_init
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void clar_print_tap_init(int test_count, int suite_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - test_count
    - suite_count
    - error_count
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: clar_print_tap_shutdown
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void clar_print_tap_shutdown(int test_count, int suite_count, int error_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - num
    - report
    - error
    argTypes:
    - int
    - struct clar_report*
    - struct clar_error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: clar_print_tap_error
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clar_print_tap_error(int num, const struct clar_report *report,
      const struct clar_error *error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/t/unit-tests/clar/clar/print.h:132,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:133,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:134,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: print_escaped
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - printf
    - strchr
    linkageType: ''
    returnType: void
    signature: void print_escaped(const char *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:150,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:153,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:156,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:157,1
    - Dst: clar_print_indented
      Src: /src/git/t/unit-tests/clar/clar/print.h:158,1
    - Dst: clar_print_indented
      Src: /src/git/t/unit-tests/clar/clar/print.h:161,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:163,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:164,1
    - Dst: print_escaped
      Src: /src/git/t/unit-tests/clar/clar/print.h:164,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:164,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:165,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:166,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:167,1
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:173,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/clar/clar/print.h:177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - suite_name
    - test_name
    - test_number
    - status
    argTypes:
    - char*
    - char*
    - int
    - enum cl_test_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 178
    functionName: clar_print_tap_ontest
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - clar_print_indented
    - fflush
    - printf
    - print_escaped
    linkageType: ''
    returnType: void
    signature: void clar_print_tap_ontest(const char *suite_name, const char *test_name,
      int test_number, enum cl_test_status status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - suite_name
    - suite_index
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: clar_print_tap_onsuite
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void clar_print_tap_onsuite(const char *suite_name, int suite_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/t/unit-tests/clar/clar/print.h:189,1
    - Dst: vprintf
      Src: /src/git/t/unit-tests/clar/clar/print.h:190,1
    - Dst: fflush
      Src: /src/git/t/unit-tests/clar/clar/print.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fmt
    - arg
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: clar_print_tap_onabort
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 0
    functionsReached:
    - fflush
    - printf
    - vprintf
    linkageType: ''
    returnType: void
    signature: void clar_print_tap_onabort(const char *fmt, va_list arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FN
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 208
    functionName: PRINT
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT(FN, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT
      Src: /src/git/t/unit-tests/clar/clar/print.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_count
    - suite_count
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: clar_print_init
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 1
    functionsReached:
    - PRINT
    linkageType: ''
    returnType: void
    signature: void clar_print_init(int test_count, int suite_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT
      Src: /src/git/t/unit-tests/clar/clar/print.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - test_count
    - suite_count
    - error_count
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: clar_print_shutdown
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 1
    functionsReached:
    - PRINT
    linkageType: ''
    returnType: void
    signature: void clar_print_shutdown(int test_count, int suite_count, int error_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT
      Src: /src/git/t/unit-tests/clar/clar/print.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num
    - report
    - error
    argTypes:
    - int
    - struct clar_report*
    - struct clar_error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: clar_print_error
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 2
    functionsReached:
    - PRINT
    linkageType: ''
    returnType: void
    signature: void clar_print_error(int num, const struct clar_report *report, const
      struct clar_error *error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT
      Src: /src/git/t/unit-tests/clar/clar/print.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - suite_name
    - test_name
    - test_number
    - status
    argTypes:
    - char*
    - char*
    - int
    - enum cl_test_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: clar_print_ontest
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 1
    functionsReached:
    - PRINT
    linkageType: ''
    returnType: void
    signature: void clar_print_ontest(const char *suite_name, const char *test_name,
      int test_number, enum cl_test_status status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT
      Src: /src/git/t/unit-tests/clar/clar/print.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - suite_name
    - suite_index
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: clar_print_onsuite
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 1
    functionsReached:
    - PRINT
    linkageType: ''
    returnType: void
    signature: void clar_print_onsuite(const char *suite_name, int suite_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT
      Src: /src/git/t/unit-tests/clar/clar/print.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - argp
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: clar_print_onabortv
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 1
    functionsReached:
    - PRINT
    linkageType: ''
    returnType: void
    signature: void clar_print_onabortv(const char *msg, va_list argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/t/unit-tests/clar/clar/print.h:242,1
    - Dst: clar_print_onabortv
      Src: /src/git/t/unit-tests/clar/clar/print.h:243,1
    - Dst: va_end
      Src: /src/git/t/unit-tests/clar/clar/print.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: clar_print_onabort
    functionSourceFile: /src/git/t/unit-tests/clar/clar/print.h
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - clar_print_onabortv
    linkageType: ''
    returnType: void
    signature: void clar_print_onabort(const char *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cl_assert_equal_i
      Src: /src/git/t/unit-tests/clar/example/example.c:5,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: test_example__simple_assert
    functionSourceFile: /src/git/t/unit-tests/clar/example/example.c
    functionUses: 0
    functionsReached:
    - cl_assert_equal_i
    linkageType: ''
    returnType: void
    signature: void test_example__simple_assert(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/git/t/t0200/test.c:10,1
    - Dst: _
      Src: /src/git/t/t0200/test.c:10,1
    - Dst: printf
      Src: /src/git/t/t0200/test.c:13,1
    - Dst: _
      Src: /src/git/t/t0200/test.c:13,1
    - Dst: printf
      Src: /src/git/t/t0200/test.c:16,1
    - Dst: _
      Src: /src/git/t/t0200/test.c:16,1
    - Dst: printf
      Src: /src/git/t/t0200/test.c:19,1
    - Dst: _
      Src: /src/git/t/t0200/test.c:19,1
    - Dst: printf
      Src: /src/git/t/t0200/test.c:22,1
    - Dst: _
      Src: /src/git/t/t0200/test.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 23
    functionName: main
    functionSourceFile: /src/git/t/t0200/test.c
    functionUses: 2
    functionsReached:
    - puts
    - printf
    - _
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 8
    functionName: f
    functionSourceFile: /src/git/t/t7615/theirs.c
    functionUses: 1448
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int f(int x, int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - u
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 17
    functionName: g
    functionSourceFile: /src/git/t/t7615/theirs.c
    functionUses: 777
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int g(size_t u)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 8
    functionName: f
    functionSourceFile: /src/git/t/t7615/base.c
    functionUses: 1448
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int f(int x, int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - u
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 17
    functionName: g
    functionSourceFile: /src/git/t/t7615/base.c
    functionUses: 777
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int g(size_t u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - u
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 8
    functionName: g
    functionSourceFile: /src/git/t/t7615/ours.c
    functionUses: 777
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int g(size_t u)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 17
    functionName: h
    functionSourceFile: /src/git/t/t7615/ours.c
    functionUses: 1463
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h(int x, int y, int z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:11,1
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:13,1
    - Dst: strbuf_remove
      Src: /src/git/t/t4256/1/mailinfo.c:14,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 7
    functionDepth: 4
    functionLinenumber: 7
    functionLinenumberEnd: 17
    functionName: cleanup_space
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - isspace
    - strbuf_remove
    linkageType: ''
    returnType: void
    signature: void cleanup_space(struct strbuf *sb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/t/t4256/1/mailinfo.c:22,1
    - Dst: strchr
      Src: /src/git/t/t4256/1/mailinfo.c:23,1
    - Dst: strchr
      Src: /src/git/t/t4256/1/mailinfo.c:23,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:27,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:28,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - out
    - name
    - email
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: get_sane_name
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - strbuf_reset
    - strbuf_addbuf
    - strchr
    linkageType: ''
    returnType: void
    signature: void get_sane_name(struct strbuf *out, struct strbuf *name, struct
      strbuf *email)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/t/t4256/1/mailinfo.c:42,1
    - Dst: strchr
      Src: /src/git/t/t4256/1/mailinfo.c:45,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:49,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:50,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:52,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:53,1
    - Dst: strbuf_trim
      Src: /src/git/t/t4256/1/mailinfo.c:54,1
    - Dst: get_sane_name
      Src: /src/git/t/t4256/1/mailinfo.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 56
    functionName: parse_bogus_from
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - strchr
    - strbuf_trim
    - get_sane_name
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void parse_bogus_from(struct mailinfo *mi, const struct strbuf *line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:63,1
    - Dst: unquote_comment
      Src: /src/git/t/t4256/1/mailinfo.c:74,1
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:77,1
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - outbuf
    - in
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 86
    functionName: unquote_comment
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - unquote_comment
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *unquote_comment(struct strbuf *outbuf, const char *in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - outbuf
    - in
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 110
    functionName: unquote_quoted_string
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *unquote_quoted_string(struct strbuf *outbuf, const char *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:118,1
    - Dst: unquote_quoted_string
      Src: /src/git/t/t4256/1/mailinfo.c:123,1
    - Dst: unquote_comment
      Src: /src/git/t/t4256/1/mailinfo.c:126,1
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:130,1
    - Dst: strbuf_swap
      Src: /src/git/t/t4256/1/mailinfo.c:133,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - line
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: unquote_quoted_pair
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - unquote_comment
    - strbuf_release
    - strbuf_init
    - unquote_quoted_string
    - strbuf_addch
    - strbuf_swap
    linkageType: ''
    returnType: void
    signature: void unquote_quoted_pair(struct strbuf *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:144,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:145,1
    - Dst: unquote_quoted_pair
      Src: /src/git/t/t4256/1/mailinfo.c:147,1
    - Dst: strchr
      Src: /src/git/t/t4256/1/mailinfo.c:149,1
    - Dst: parse_bogus_from
      Src: /src/git/t/t4256/1/mailinfo.c:151,1
    - Dst: strchr
      Src: /src/git/t/t4256/1/mailinfo.c:158,1
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:166,1
    - Dst: strcspn
      Src: /src/git/t/t4256/1/mailinfo.c:174,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:175,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:176,1
    - Dst: strbuf_remove
      Src: /src/git/t/t4256/1/mailinfo.c:177,1
    - Dst: cleanup_space
      Src: /src/git/t/t4256/1/mailinfo.c:191,1
    - Dst: strbuf_trim
      Src: /src/git/t/t4256/1/mailinfo.c:192,1
    - Dst: strbuf_remove
      Src: /src/git/t/t4256/1/mailinfo.c:194,1
    - Dst: strbuf_setlen
      Src: /src/git/t/t4256/1/mailinfo.c:195,1
    - Dst: get_sane_name
      Src: /src/git/t/t4256/1/mailinfo.c:198,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:200,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - mi
    - from
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 201
    functionName: handle_from
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - isspace
    - unquote_quoted_pair
    - strbuf_release
    - cleanup_space
    - strbuf_remove
    - strbuf_reset
    - strbuf_setlen
    - strchr
    - strbuf_trim
    - strbuf_addbuf
    - strcspn
    - get_sane_name
    - strbuf_init
    - strbuf_add
    - parse_bogus_from
    linkageType: ''
    returnType: void
    signature: void handle_from(struct mailinfo *mi, const struct strbuf *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/t/t4256/1/mailinfo.c:206,1
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:207,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:209,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - out
    - line
    argTypes:
    - struct strbuf**
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: handle_header
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - strbuf_reset
    - xmalloc
    - strbuf_addbuf
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: void handle_header(struct strbuf **out, const struct strbuf *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasestr
      Src: /src/git/t/t4256/1/mailinfo.c:222,1
    - Dst: strbuf_setlen
      Src: /src/git/t/t4256/1/mailinfo.c:225,1
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:228,1
    - Dst: strcspn
      Src: /src/git/t/t4256/1/mailinfo.c:235,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - line
    - name
    - attr
    argTypes:
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 238
    functionName: slurp_attr
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - strbuf_setlen
    - strlen
    - strcspn
    - strcasestr
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int slurp_attr(const char *line, const char *name, struct strbuf *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: slurp_attr
      Src: /src/git/t/t4256/1/mailinfo.c:243,1
    - Dst: strcasecmp
      Src: /src/git/t/t4256/1/mailinfo.c:243,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - line
    - name
    - value
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: has_attr_value
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - slurp_attr
    - strcasecmp
    - strbuf_release
    linkageType: ''
    returnType: int
    signature: int has_attr_value(const char *line, const char *name, const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/t/t4256/1/mailinfo.c:250,1
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:251,1
    - Dst: has_attr_value
      Src: /src/git/t/t4256/1/mailinfo.c:253,1
    - Dst: has_attr_value
      Src: /src/git/t/t4256/1/mailinfo.c:254,1
    - Dst: slurp_attr
      Src: /src/git/t/t4256/1/mailinfo.c:256,1
    - Dst: strbuf_insert
      Src: /src/git/t/t4256/1/mailinfo.c:257,1
    - Dst: error
      Src: /src/git/t/t4256/1/mailinfo.c:259,1
    - Dst: slurp_attr
      Src: /src/git/t/t4256/1/mailinfo.c:267,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:270,1
    - Dst: free
      Src: /src/git/t/t4256/1/mailinfo.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 273
    functionName: handle_content_type
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - error
    - strbuf_release
    - has_attr_value
    - strbuf_insert
    - xmalloc
    - free
    - slurp_attr
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: void handle_content_type(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasestr
      Src: /src/git/t/t4256/1/mailinfo.c:278,1
    - Dst: strcasestr
      Src: /src/git/t/t4256/1/mailinfo.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: handle_content_transfer_encoding
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - strcasestr
    linkageType: ''
    returnType: void
    signature: "void handle_content_transfer_encoding(struct mailinfo *mi,\n\t\t\t\t\t
      \    const struct strbuf *line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/t/t4256/1/mailinfo.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: is_multipart_boundary
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_multipart_boundary(struct mailinfo *mi, const struct strbuf
      *line)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_remove
      Src: /src/git/t/t4256/1/mailinfo.c:309,1
    - Dst: strbuf_remove
      Src: /src/git/t/t4256/1/mailinfo.c:315,1
    - Dst: strchr
      Src: /src/git/t/t4256/1/mailinfo.c:318,1
    - Dst: memmem
      Src: /src/git/t/t4256/1/mailinfo.c:324,1
    - Dst: strbuf_remove
      Src: /src/git/t/t4256/1/mailinfo.c:325,1
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:334,1
    - Dst: strbuf_trim
      Src: /src/git/t/t4256/1/mailinfo.c:341,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 2
    argNames:
    - mi
    - subject
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 342
    functionName: cleanup_subject
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - isspace
    - strbuf_remove
    - strchr
    - strbuf_trim
    - memmem
    linkageType: ''
    returnType: void
    signature: void cleanup_subject(struct mailinfo *mi, struct strbuf *subject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:351,1
    - Dst: strncasecmp
      Src: /src/git/t/t4256/1/mailinfo.c:352,1
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - line
    - hdr
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: cmp_header
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 0
    functionsReached:
    - isspace
    - strlen
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int cmp_header(const struct strbuf *line, const char *hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:362,1
    - Dst: skip_prefix
      Src: /src/git/t/t4256/1/mailinfo.c:364,1
    - Dst: strspn
      Src: /src/git/t/t4256/1/mailinfo.c:366,1
    - Dst: memcmp
      Src: /src/git/t/t4256/1/mailinfo.c:369,1
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 370
    functionName: is_format_patch_separator
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - strspn
    - strlen
    - skip_prefix
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_format_patch_separator(const char *line, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/t/t4256/1/mailinfo.c:376,1
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:377,1
    - Dst: hex2chr
      Src: /src/git/t/t4256/1/mailinfo.c:384,1
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:386,1
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:394,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - q_seg
    - rfc2047
    argTypes:
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 397
    functionName: decode_q_segment
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - xmalloc
    - strbuf_init
    - hex2chr
    - strbuf_addch
    linkageType: ''
    returnType: struct strbuf
    signature: struct strbuf *decode_q_segment(const struct strbuf *q_seg, int rfc2047)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/t/t4256/1/mailinfo.c:404,1
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:405,1
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:425,1
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:429,1
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:433,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - b_seg
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 439
    functionName: decode_b_segment
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - xmalloc
    - strbuf_init
    - strbuf_addch
    linkageType: ''
    returnType: struct strbuf
    signature: struct strbuf *decode_b_segment(const struct strbuf *b_seg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: same_encoding
      Src: /src/git/t/t4256/1/mailinfo.c:449,1
    - Dst: reencode_string
      Src: /src/git/t/t4256/1/mailinfo.c:451,1
    - Dst: error
      Src: /src/git/t/t4256/1/mailinfo.c:454,1
    - Dst: strbuf_attach
      Src: /src/git/t/t4256/1/mailinfo.c:457,1
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:457,1
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - mi
    - line
    - charset
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 459
    functionName: convert_to_utf8
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - error
    - strbuf_attach
    - same_encoding
    - reencode_string
    - strlen
    linkageType: ''
    returnType: int
    signature: "int convert_to_utf8(struct mailinfo *mi,\n\t\t\t   struct strbuf *line,
      const char *charset)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/t/t4256/1/mailinfo.c:469,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:471,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:472,1
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:482,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:492,1
    - Dst: strchr
      Src: /src/git/t/t4256/1/mailinfo.c:501,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:506,1
    - Dst: strstr
      Src: /src/git/t/t4256/1/mailinfo.c:511,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:514,1
    - Dst: tolower
      Src: /src/git/t/t4256/1/mailinfo.c:515,1
    - Dst: decode_b_segment
      Src: /src/git/t/t4256/1/mailinfo.c:519,1
    - Dst: decode_q_segment
      Src: /src/git/t/t4256/1/mailinfo.c:522,1
    - Dst: convert_to_utf8
      Src: /src/git/t/t4256/1/mailinfo.c:525,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:528,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:529,1
    - Dst: free
      Src: /src/git/t/t4256/1/mailinfo.c:530,1
    - Dst: strbuf_addstr
      Src: /src/git/t/t4256/1/mailinfo.c:533,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:534,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:535,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:538,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:539,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:540,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 2
    argNames:
    - mi
    - it
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 461
    functionDepth: 4
    functionLinenumber: 461
    functionLinenumberEnd: 544
    functionName: decode_header
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - isspace
    - decode_q_segment
    - strbuf_release
    - strstr
    - strbuf_reset
    - convert_to_utf8
    - strchr
    - decode_b_segment
    - strbuf_addbuf
    - strbuf_addstr
    - free
    - tolower
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void decode_header(struct mailinfo *mi, struct strbuf *it)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:555,1
    - Dst: cmp_header
      Src: /src/git/t/t4256/1/mailinfo.c:556,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:560,1
    - Dst: decode_header
      Src: /src/git/t/t4256/1/mailinfo.c:561,1
    - Dst: handle_header
      Src: /src/git/t/t4256/1/mailinfo.c:562,1
    - Dst: cmp_header
      Src: /src/git/t/t4256/1/mailinfo.c:569,1
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:570,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:571,1
    - Dst: decode_header
      Src: /src/git/t/t4256/1/mailinfo.c:572,1
    - Dst: strbuf_insert
      Src: /src/git/t/t4256/1/mailinfo.c:573,1
    - Dst: handle_content_type
      Src: /src/git/t/t4256/1/mailinfo.c:574,1
    - Dst: cmp_header
      Src: /src/git/t/t4256/1/mailinfo.c:578,1
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:579,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:580,1
    - Dst: decode_header
      Src: /src/git/t/t4256/1/mailinfo.c:581,1
    - Dst: handle_content_transfer_encoding
      Src: /src/git/t/t4256/1/mailinfo.c:582,1
    - Dst: cmp_header
      Src: /src/git/t/t4256/1/mailinfo.c:586,1
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:587,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:588,1
    - Dst: decode_header
      Src: /src/git/t/t4256/1/mailinfo.c:589,1
    - Dst: strbuf_detach
      Src: /src/git/t/t4256/1/mailinfo.c:591,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:597,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - mi
    - line
    - hdr_data
    - overwrite
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    - struct strbuf*[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 546
    functionDepth: 4
    functionLinenumber: 546
    functionLinenumberEnd: 599
    functionName: check_header
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 3
    functionsReached:
    - handle_header
    - strbuf_release
    - cmp_header
    - handle_content_type
    - handle_content_transfer_encoding
    - strbuf_insert
    - strlen
    - strbuf_detach
    - decode_header
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int check_header(struct mailinfo *mi,\n\t\t\tconst struct strbuf *line,\n\t\t\tstruct
      strbuf *hdr_data[], int overwrite)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp_header
      Src: /src/git/t/t4256/1/mailinfo.c:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 614
    functionName: is_inbody_header
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - cmp_header
    linkageType: ''
    returnType: int
    signature: "int is_inbody_header(const struct mailinfo *mi,\n\t\t\t    const struct
      strbuf *line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: decode_q_segment
      Src: /src/git/t/t4256/1/mailinfo.c:622,1
    - Dst: decode_b_segment
      Src: /src/git/t/t4256/1/mailinfo.c:625,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:631,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:632,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:633,1
    - Dst: free
      Src: /src/git/t/t4256/1/mailinfo.c:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 635
    functionName: decode_transfer_encoding
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - decode_q_segment
    - strbuf_release
    - strbuf_reset
    - decode_b_segment
    - strbuf_addbuf
    - free
    linkageType: ''
    returnType: void
    signature: void decode_transfer_encoding(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/t/t4256/1/mailinfo.c:642,1
    - Dst: starts_with
      Src: /src/git/t/t4256/1/mailinfo.c:646,1
    - Dst: starts_with
      Src: /src/git/t/t4256/1/mailinfo.c:656,1
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:658,1
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:665,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - line
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 671
    functionName: patchbreak
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - isspace
    - starts_with
    linkageType: ''
    returnType: int
    signature: int patchbreak(const struct strbuf *line)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:681,1
    - Dst: memcmp
      Src: /src/git/t/t4256/1/mailinfo.c:696,1
    - Dst: memcmp
      Src: /src/git/t/t4256/1/mailinfo.c:696,1
    - Dst: memcmp
      Src: /src/git/t/t4256/1/mailinfo.c:697,1
    - Dst: memcmp
      Src: /src/git/t/t4256/1/mailinfo.c:697,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 723
    functionName: is_scissors_line
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - isspace
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_scissors_line(const char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_header
      Src: /src/git/t/t4256/1/mailinfo.c:729,1
    - Dst: BUG
      Src: /src/git/t/t4256/1/mailinfo.c:730,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mi
    argTypes:
    - struct mailinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 732
    functionName: flush_inbody_header_accum
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 3
    functionsReached:
    - strbuf_reset
    - BUG
    - check_header
    linkageType: ''
    returnType: void
    signature: void flush_inbody_header_accum(struct mailinfo *mi)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_scissors_line
      Src: /src/git/t/t4256/1/mailinfo.c:738,1
    - Dst: flush_inbody_header_accum
      Src: /src/git/t/t4256/1/mailinfo.c:743,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/t/t4256/1/mailinfo.c:746,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:747,1
    - Dst: flush_inbody_header_accum
      Src: /src/git/t/t4256/1/mailinfo.c:751,1
    - Dst: starts_with
      Src: /src/git/t/t4256/1/mailinfo.c:753,1
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:753,1
    - Dst: is_format_patch_separator
      Src: /src/git/t/t4256/1/mailinfo.c:754,1
    - Dst: starts_with
      Src: /src/git/t/t4256/1/mailinfo.c:755,1
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:755,1
    - Dst: strcmp
      Src: /src/git/t/t4256/1/mailinfo.c:758,1
    - Dst: handle_header
      Src: /src/git/t/t4256/1/mailinfo.c:759,1
    - Dst: is_inbody_header
      Src: /src/git/t/t4256/1/mailinfo.c:764,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:765,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 769
    functionName: check_inbody_header
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - isspace
    - handle_header
    - is_inbody_header
    - strbuf_strip_suffix
    - starts_with
    - flush_inbody_header_accum
    - strbuf_addbuf
    - is_scissors_line
    - strcmp
    - is_format_patch_separator
    linkageType: ''
    returnType: int
    signature: int check_inbody_header(struct mailinfo *mi, const struct strbuf *line)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/t/t4256/1/mailinfo.c:773,1
    - Dst: flush_inbody_header_accum
      Src: /src/git/t/t4256/1/mailinfo.c:778,1
    - Dst: check_inbody_header
      Src: /src/git/t/t4256/1/mailinfo.c:786,1
    - Dst: convert_to_utf8
      Src: /src/git/t/t4256/1/mailinfo.c:796,1
    - Dst: is_scissors_line
      Src: /src/git/t/t4256/1/mailinfo.c:799,1
    - Dst: strbuf_setlen
      Src: /src/git/t/t4256/1/mailinfo.c:802,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:811,1
    - Dst: patchbreak
      Src: /src/git/t/t4256/1/mailinfo.c:817,1
    - Dst: strbuf_addf
      Src: /src/git/t/t4256/1/mailinfo.c:819,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:824,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts:
    - condition: (!mi->filter_stage)
      pos:
        line_end: 772
        line_start: 772
        source_file: /src/git/t/t4256/1/mailinfo.c
    constantsTouched: []
    func_position:
      end: 826
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 826
    functionName: handle_commit_msg
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - assert
    - patchbreak
    - convert_to_utf8
    - strbuf_setlen
    - strbuf_addf
    - flush_inbody_header_accum
    - strbuf_addbuf
    - is_scissors_line
    - check_inbody_header
    linkageType: ''
    returnType: int
    signature: int handle_commit_msg(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/t/t4256/1/mailinfo.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 832
    functionName: handle_patch
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: void
    signature: void handle_patch(struct mailinfo *mi, const struct strbuf *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: handle_commit_msg
      Src: /src/git/t/t4256/1/mailinfo.c:838,1
    - Dst: handle_patch
      Src: /src/git/t/t4256/1/mailinfo.c:843,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 846
    functionName: handle_filter
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 3
    functionsReached:
    - handle_commit_msg
    - handle_patch
    linkageType: ''
    returnType: void
    signature: void handle_filter(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/t/t4256/1/mailinfo.c:862,1
    - Dst: starts_with
      Src: /src/git/t/t4256/1/mailinfo.c:862,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 1
    argNames:
    - line
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 874
    functionName: is_rfc2822_header
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: int
    signature: int is_rfc2822_header(const struct strbuf *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline_lf
      Src: /src/git/t/t4256/1/mailinfo.c:881,1
    - Dst: strbuf_rtrim
      Src: /src/git/t/t4256/1/mailinfo.c:888,1
    - Dst: is_rfc2822_header
      Src: /src/git/t/t4256/1/mailinfo.c:889,1
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:891,1
    - Dst: fgetc
      Src: /src/git/t/t4256/1/mailinfo.c:902,1
    - Dst: ungetc
      Src: /src/git/t/t4256/1/mailinfo.c:905,1
    - Dst: strbuf_getline_lf
      Src: /src/git/t/t4256/1/mailinfo.c:908,1
    - Dst: strbuf_rtrim
      Src: /src/git/t/t4256/1/mailinfo.c:911,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:912,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:914,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - line
    - in
    argTypes:
    - struct strbuf*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 876
    functionDepth: 5
    functionLinenumber: 876
    functionLinenumberEnd: 917
    functionName: read_one_header_line
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - strbuf_getline_lf
    - strbuf_addch
    - strbuf_addbuf
    - is_rfc2822_header
    - ungetc
    - fgetc
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: int read_one_header_line(struct strbuf *line, FILE *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline_lf
      Src: /src/git/t/t4256/1/mailinfo.c:921,1
    - Dst: is_multipart_boundary
      Src: /src/git/t/t4256/1/mailinfo.c:922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 919
    functionDepth: 5
    functionLinenumber: 919
    functionLinenumberEnd: 926
    functionName: find_boundary
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 2
    functionsReached:
    - strbuf_getline_lf
    - is_multipart_boundary
    linkageType: ''
    returnType: int
    signature: int find_boundary(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:932,1
    - Dst: memcmp
      Src: /src/git/t/t4256/1/mailinfo.c:935,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:938,1
    - Dst: FREE_AND_NULL
      Src: /src/git/t/t4256/1/mailinfo.c:939,1
    - Dst: error
      Src: /src/git/t/t4256/1/mailinfo.c:945,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:948,1
    - Dst: handle_filter
      Src: /src/git/t/t4256/1/mailinfo.c:951,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:952,1
    - Dst: find_boundary
      Src: /src/git/t/t4256/1/mailinfo.c:957,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:964,1
    - Dst: read_one_header_line
      Src: /src/git/t/t4256/1/mailinfo.c:967,1
    - Dst: check_header
      Src: /src/git/t/t4256/1/mailinfo.c:968,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:970,1
    - Dst: strbuf_getline_lf
      Src: /src/git/t/t4256/1/mailinfo.c:972,1
    - Dst: strbuf_addch
      Src: /src/git/t/t4256/1/mailinfo.c:974,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 928
    functionDepth: 5
    functionLinenumber: 928
    functionLinenumberEnd: 976
    functionName: handle_boundary
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - error
    - strbuf_release
    - strbuf_getline_lf
    - check_header
    - strbuf_reset
    - find_boundary
    - strbuf_addch
    - handle_filter
    - read_one_header_line
    - FREE_AND_NULL
    - memcmp
    linkageType: ''
    returnType: int
    signature: int handle_boundary(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: handle_filter
      Src: /src/git/t/t4256/1/mailinfo.c:985,1
    - Dst: skip_prefix
      Src: /src/git/t/t4256/1/mailinfo.c:996,1
    - Dst: handle_filter
      Src: /src/git/t/t4256/1/mailinfo.c:998,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:999,1
    - Dst: handle_filter
      Src: /src/git/t/t4256/1/mailinfo.c:1001,1
    - Dst: strbuf_remove
      Src: /src/git/t/t4256/1/mailinfo.c:1007,1
    - Dst: strbuf_add
      Src: /src/git/t/t4256/1/mailinfo.c:1013,1
    - Dst: strbuf_insert
      Src: /src/git/t/t4256/1/mailinfo.c:1018,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:1019,1
    - Dst: handle_filter
      Src: /src/git/t/t4256/1/mailinfo.c:1021,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - mi
    - line
    - prev
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 978
    functionDepth: 4
    functionLinenumber: 978
    functionLinenumberEnd: 1022
    functionName: handle_filter_flowed
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - strbuf_remove
    - strbuf_reset
    - strbuf_insert
    - handle_filter
    - skip_prefix
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void handle_filter_flowed(struct mailinfo *mi, struct strbuf *line,\n\t\t\t\t
      struct strbuf *prev)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: find_boundary
      Src: /src/git/t/t4256/1/mailinfo.c:1030,1
    - Dst: is_multipart_boundary
      Src: /src/git/t/t4256/1/mailinfo.c:1036,1
    - Dst: handle_filter
      Src: /src/git/t/t4256/1/mailinfo.c:1039,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:1040,1
    - Dst: handle_boundary
      Src: /src/git/t/t4256/1/mailinfo.c:1042,1
    - Dst: decode_transfer_encoding
      Src: /src/git/t/t4256/1/mailinfo.c:1047,1
    - Dst: strbuf_insert
      Src: /src/git/t/t4256/1/mailinfo.c:1056,1
    - Dst: strbuf_reset
      Src: /src/git/t/t4256/1/mailinfo.c:1057,1
    - Dst: strbuf_split
      Src: /src/git/t/t4256/1/mailinfo.c:1064,1
    - Dst: strbuf_addbuf
      Src: /src/git/t/t4256/1/mailinfo.c:1069,1
    - Dst: handle_filter_flowed
      Src: /src/git/t/t4256/1/mailinfo.c:1072,1
    - Dst: strbuf_list_free
      Src: /src/git/t/t4256/1/mailinfo.c:1078,1
    - Dst: handle_filter_flowed
      Src: /src/git/t/t4256/1/mailinfo.c:1082,1
    - Dst: strbuf_getwholeline
      Src: /src/git/t/t4256/1/mailinfo.c:1087,1
    - Dst: handle_filter
      Src: /src/git/t/t4256/1/mailinfo.c:1090,1
    - Dst: flush_inbody_header_accum
      Src: /src/git/t/t4256/1/mailinfo.c:1092,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:1095,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 2
    argNames:
    - mi
    - line
    argTypes:
    - struct mailinfo*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1024
    functionDepth: 5
    functionLinenumber: 1024
    functionLinenumberEnd: 1096
    functionName: handle_body
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - strbuf_getwholeline
    - strbuf_release
    - strbuf_reset
    - find_boundary
    - handle_boundary
    - strbuf_split
    - strbuf_insert
    - handle_filter
    - strbuf_addbuf
    - flush_inbody_header_accum
    - strbuf_list_free
    - is_multipart_boundary
    - handle_filter_flowed
    - decode_transfer_encoding
    linkageType: ''
    returnType: void
    signature: void handle_body(struct mailinfo *mi, struct strbuf *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/t/t4256/1/mailinfo.c:1102,1
    - Dst: strlen
      Src: /src/git/t/t4256/1/mailinfo.c:1105,1
    - Dst: fprintf
      Src: /src/git/t/t4256/1/mailinfo.c:1108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - fout
    - hdr
    - data
    argTypes:
    - FILE*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1113
    functionName: output_header_lines
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - strlen
    - fprintf
    - strchr
    linkageType: ''
    returnType: void
    signature: void output_header_lines(FILE *fout, const char *hdr, const struct
      strbuf *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/t/t4256/1/mailinfo.c:1129,1
    - Dst: cleanup_subject
      Src: /src/git/t/t4256/1/mailinfo.c:1131,1
    - Dst: cleanup_space
      Src: /src/git/t/t4256/1/mailinfo.c:1132,1
    - Dst: output_header_lines
      Src: /src/git/t/t4256/1/mailinfo.c:1134,1
    - Dst: strcmp
      Src: /src/git/t/t4256/1/mailinfo.c:1135,1
    - Dst: cleanup_space
      Src: /src/git/t/t4256/1/mailinfo.c:1136,1
    - Dst: handle_from
      Src: /src/git/t/t4256/1/mailinfo.c:1137,1
    - Dst: fprintf
      Src: /src/git/t/t4256/1/mailinfo.c:1138,1
    - Dst: fprintf
      Src: /src/git/t/t4256/1/mailinfo.c:1139,1
    - Dst: cleanup_space
      Src: /src/git/t/t4256/1/mailinfo.c:1141,1
    - Dst: fprintf
      Src: /src/git/t/t4256/1/mailinfo.c:1142,1
    - Dst: fprintf
      Src: /src/git/t/t4256/1/mailinfo.c:1145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - mi
    argTypes:
    - struct mailinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1146
    functionName: handle_info
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 1
    functionsReached:
    - cleanup_space
    - output_header_lines
    - cleanup_subject
    - handle_from
    - strcmp
    - fprintf
    linkageType: ''
    returnType: void
    signature: void handle_info(struct mailinfo *mi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/t/t4256/1/mailinfo.c:1154,1
    - Dst: perror
      Src: /src/git/t/t4256/1/mailinfo.c:1156,1
    - Dst: fopen
      Src: /src/git/t/t4256/1/mailinfo.c:1159,1
    - Dst: perror
      Src: /src/git/t/t4256/1/mailinfo.c:1161,1
    - Dst: fclose
      Src: /src/git/t/t4256/1/mailinfo.c:1162,1
    - Dst: xcalloc
      Src: /src/git/t/t4256/1/mailinfo.c:1166,1
    - Dst: xcalloc
      Src: /src/git/t/t4256/1/mailinfo.c:1167,1
    - Dst: fgetc
      Src: /src/git/t/t4256/1/mailinfo.c:1170,1
    - Dst: fclose
      Src: /src/git/t/t4256/1/mailinfo.c:1172,1
    - Dst: error
      Src: /src/git/t/t4256/1/mailinfo.c:1173,1
    - Dst: isspace
      Src: /src/git/t/t4256/1/mailinfo.c:1175,1
    - Dst: ungetc
      Src: /src/git/t/t4256/1/mailinfo.c:1176,1
    - Dst: read_one_header_line
      Src: /src/git/t/t4256/1/mailinfo.c:1179,1
    - Dst: check_header
      Src: /src/git/t/t4256/1/mailinfo.c:1180,1
    - Dst: handle_body
      Src: /src/git/t/t4256/1/mailinfo.c:1182,1
    - Dst: fwrite
      Src: /src/git/t/t4256/1/mailinfo.c:1183,1
    - Dst: fclose
      Src: /src/git/t/t4256/1/mailinfo.c:1184,1
    - Dst: fclose
      Src: /src/git/t/t4256/1/mailinfo.c:1185,1
    - Dst: handle_info
      Src: /src/git/t/t4256/1/mailinfo.c:1187,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:1188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - mi
    - msg
    - patch
    argTypes:
    - struct mailinfo*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1148
    functionDepth: 7
    functionLinenumber: 1148
    functionLinenumberEnd: 1190
    functionName: mailinfo
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 0
    functionsReached:
    - fclose
    - error
    - isspace
    - handle_body
    - perror
    - handle_info
    - strbuf_release
    - fwrite
    - fopen
    - read_one_header_line
    - xcalloc
    - ungetc
    - fgetc
    - check_header
    linkageType: ''
    returnType: int
    signature: int mailinfo(struct mailinfo *mi, const char *msg, const char *patch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/t/t4256/1/mailinfo.c:1196,1
    - Dst: git_default_config
      Src: /src/git/t/t4256/1/mailinfo.c:1197,1
    - Dst: strcmp
      Src: /src/git/t/t4256/1/mailinfo.c:1198,1
    - Dst: git_config_bool
      Src: /src/git/t/t4256/1/mailinfo.c:1199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - var
    - value
    - mi_
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1192
    functionDepth: 6
    functionLinenumber: 1192
    functionLinenumberEnd: 1204
    functionName: git_mailinfo_config
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - git_default_config
    - starts_with
    - strcmp
    linkageType: ''
    returnType: int
    signature: int git_mailinfo_config(const char *var, const char *value, void *mi_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/t/t4256/1/mailinfo.c:1208,1
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:1209,1
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:1210,1
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:1211,1
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:1212,1
    - Dst: strbuf_init
      Src: /src/git/t/t4256/1/mailinfo.c:1213,1
    - Dst: repo_config
      Src: /src/git/t/t4256/1/mailinfo.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - mi
    argTypes:
    - struct mailinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1206
    functionDepth: 19
    functionLinenumber: 1206
    functionLinenumberEnd: 1218
    functionName: setup_mailinfo
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 0
    functionsReached:
    - memset
    - repo_config
    - strbuf_init
    linkageType: ''
    returnType: void
    signature: void setup_mailinfo(struct mailinfo *mi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:1224,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:1225,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:1226,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:1227,1
    - Dst: free
      Src: /src/git/t/t4256/1/mailinfo.c:1228,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:1232,1
    - Dst: free
      Src: /src/git/t/t4256/1/mailinfo.c:1233,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:1236,1
    - Dst: free
      Src: /src/git/t/t4256/1/mailinfo.c:1237,1
    - Dst: free
      Src: /src/git/t/t4256/1/mailinfo.c:1240,1
    - Dst: strbuf_release
      Src: /src/git/t/t4256/1/mailinfo.c:1244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - mi
    argTypes:
    - struct mailinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1220
    functionDepth: 3
    functionLinenumber: 1220
    functionLinenumberEnd: 1245
    functionName: clear_mailinfo
    functionSourceFile: /src/git/t/t4256/1/mailinfo.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void clear_mailinfo(struct mailinfo *mi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmemdupz
      Src: /src/git/oss-fuzz/fuzz-date.c:37,1
    - Dst: approxidate_careful
      Src: /src/git/oss-fuzz/fuzz-date.c:39,1
    - Dst: free
      Src: /src/git/oss-fuzz/fuzz-date.c:40,1
    - Dst: date_mode_from_type
      Src: /src/git/oss-fuzz/fuzz-date.c:42,1
    - Dst: show_date
      Src: /src/git/oss-fuzz/fuzz-date.c:44,1
    - Dst: date_mode_release
      Src: /src/git/oss-fuzz/fuzz-date.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 6
    functionDepth: 10
    functionLinenumber: 6
    functionLinenumberEnd: 49
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/git/oss-fuzz/fuzz-date.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - date_mode_release
    - approxidate_careful
    - show_date
    - free
    - date_mode_from_type
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_object_header_buffer
      Src: /src/git/oss-fuzz/fuzz-pack-headers.c:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 6
    functionDepth: 4
    functionLinenumber: 6
    functionLinenumberEnd: 15
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/git/oss-fuzz/fuzz-pack-headers.c
    functionUses: 0
    functionsReached:
    - unpack_object_header_buffer
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/oss-fuzz/dummy-cmd-main.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: cmd_main
    functionSourceFile: /src/git/oss-fuzz/dummy-cmd-main.c
    functionUses: 1
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: int cmd_main(int argc UNUSED, const char **argv UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/git/oss-fuzz/fuzz-credential-from-url-gently.c:16,1
    - Dst: memcpy
      Src: /src/git/oss-fuzz/fuzz-credential-from-url-gently.c:20,1
    - Dst: credential_init
      Src: /src/git/oss-fuzz/fuzz-credential-from-url-gently.c:24,1
    - Dst: credential_from_url_gently
      Src: /src/git/oss-fuzz/fuzz-credential-from-url-gently.c:25,1
    - Dst: credential_clear
      Src: /src/git/oss-fuzz/fuzz-credential-from-url-gently.c:28,1
    - Dst: free
      Src: /src/git/oss-fuzz/fuzz-credential-from-url-gently.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 11
    functionDepth: 12
    functionLinenumber: 11
    functionLinenumberEnd: 32
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/git/oss-fuzz/fuzz-credential-from-url-gently.c
    functionUses: 0
    functionsReached:
    - credential_from_url_gently
    - credential_clear
    - memcpy
    - free
    - malloc
    - credential_init
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/git/oss-fuzz/fuzz-parse-attr-line.c:17,1
    - Dst: memcpy
      Src: /src/git/oss-fuzz/fuzz-parse-attr-line.c:21,1
    - Dst: parse_attr_line
      Src: /src/git/oss-fuzz/fuzz-parse-attr-line.c:24,1
    - Dst: ATTR_TRUE
      Src: /src/git/oss-fuzz/fuzz-parse-attr-line.c:30,1
    - Dst: ATTR_FALSE
      Src: /src/git/oss-fuzz/fuzz-parse-attr-line.c:30,1
    - Dst: ATTR_UNSET
      Src: /src/git/oss-fuzz/fuzz-parse-attr-line.c:31,1
    - Dst: free
      Src: /src/git/oss-fuzz/fuzz-parse-attr-line.c:34,1
    - Dst: free
      Src: /src/git/oss-fuzz/fuzz-parse-attr-line.c:36,1
    - Dst: free
      Src: /src/git/oss-fuzz/fuzz-parse-attr-line.c:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 12
    functionDepth: 8
    functionLinenumber: 12
    functionLinenumberEnd: 41
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/git/oss-fuzz/fuzz-parse-attr-line.c
    functionUses: 0
    functionsReached:
    - parse_attr_line
    - ATTR_FALSE
    - memcpy
    - ATTR_UNSET
    - free
    - malloc
    - ATTR_TRUE
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_idx
      Src: /src/git/oss-fuzz/fuzz-pack-idx.c:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 7
    functionDepth: 4
    functionLinenumber: 7
    functionLinenumberEnd: 14
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/git/oss-fuzz/fuzz-pack-idx.c
    functionUses: 0
    functionsReached:
    - load_idx
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/oss-fuzz/fuzz-commit-graph.c:13,1
    - Dst: initialize_repository
      Src: /src/git/oss-fuzz/fuzz-commit-graph.c:14,1
    - Dst: repo_set_hash_algo
      Src: /src/git/oss-fuzz/fuzz-commit-graph.c:22,1
    - Dst: parse_commit_graph
      Src: /src/git/oss-fuzz/fuzz-commit-graph.c:26,1
    - Dst: repo_clear
      Src: /src/git/oss-fuzz/fuzz-commit-graph.c:27,1
    - Dst: free_commit_graph
      Src: /src/git/oss-fuzz/fuzz-commit-graph.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 9
    functionDepth: 9
    functionLinenumber: 9
    functionLinenumberEnd: 31
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/git/oss-fuzz/fuzz-commit-graph.c
    functionUses: 0
    functionsReached:
    - memset
    - free_commit_graph
    - repo_clear
    - parse_commit_graph
    - repo_set_hash_algo
    - initialize_repository
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:17,1
    - Dst: memcpy
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:21,1
    - Dst: url_decode
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:25,1
    - Dst: free
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:26,1
    - Dst: url_percent_decode
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:28,1
    - Dst: free
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:29,1
    - Dst: url_decode_parameter_name
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:32,1
    - Dst: free
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:33,1
    - Dst: url_decode_parameter_value
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:36,1
    - Dst: free
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:37,1
    - Dst: free
      Src: /src/git/oss-fuzz/fuzz-url-decode-mem.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 11
    functionDepth: 3
    functionLinenumber: 11
    functionLinenumberEnd: 43
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/git/oss-fuzz/fuzz-url-decode-mem.c
    functionUses: 0
    functionsReached:
    - url_decode_parameter_name
    - memcpy
    - url_decode_parameter_value
    - url_percent_decode
    - free
    - url_decode
    - malloc
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/oss-fuzz/fuzz-config.c:17,1
    - Dst: strlen
      Src: /src/git/oss-fuzz/fuzz-config.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 22
    functionName: config_parser_callback
    functionSourceFile: /src/git/oss-fuzz/fuzz-config.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: "int config_parser_callback(const char *key, const char *value,\n\t\t\t\t\tconst
      struct config_context *ctx UNUSED,\n\t\t\t\t\tvoid *data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_config_from_mem
      Src: /src/git/oss-fuzz/fuzz-config.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 8
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/git/oss-fuzz/fuzz-config.c
    functionUses: 0
    functionsReached:
    - git_config_from_mem
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, const size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _DVMASK
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: CHECK_DVMASK
    functionSourceFile: /src/git/sha1dc/ubc_check.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_DVMASK(_DVMASK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: rotate_right
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotate_right(x,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: rotate_left
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotate_left(x,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: sha1_bswap32
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_bswap32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - W
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: sha1_mix
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_mix(W, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: sha1_load
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_load(m, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: sha1_load
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_load(m, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - W
    - ','
    - t
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: sha1_store
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_store(W, t, x)
  - 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: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: sha1_f1
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_f1(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: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: sha1_f2
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_f2(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: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: sha1_f3
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_f3(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: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: sha1_f4
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_f4(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - W
    - ','
    - t
    - ','
    - temp
    - )
    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: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(a, b, c, d, e, m, W, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - W
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND(a, b, c, d, e, W, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - W
    - ','
    - t
    - ','
    - temp
    - )
    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: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: SHA1COMPRESS_FULL_ROUND2_STEP
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1COMPRESS_FULL_ROUND2_STEP(a, b, c, d, e, W, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - W
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: SHA1COMPRESS_FULL_ROUND3_STEP
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1COMPRESS_FULL_ROUND3_STEP(a, b, c, d, e, W, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - W
    - ','
    - t
    - ','
    - temp
    - )
    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: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: SHA1COMPRESS_FULL_ROUND4_STEP
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1COMPRESS_FULL_ROUND4_STEP(a, b, c, d, e, W, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: SHA1_STORE_STATE
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1_STORE_STATE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/sha1dc/sha1.c:197,1
    - Dst: sha1_mix
      Src: /src/git/sha1dc/sha1.c:199,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:203,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:204,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:205,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:206,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:207,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:208,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:209,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:210,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:211,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:212,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:213,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:214,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:215,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:216,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:217,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:218,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:219,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:220,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:221,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:222,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:224,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:225,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:226,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:227,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:228,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:229,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:230,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:231,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:232,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:233,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:234,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:235,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:236,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:237,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:238,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:239,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:240,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:241,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:242,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:243,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:245,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:246,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:247,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:248,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:249,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:250,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:251,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:252,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:253,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:254,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:255,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:256,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:257,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:258,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:259,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:260,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:261,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:262,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:263,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:264,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:266,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:267,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:268,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:269,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:270,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:271,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:272,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:273,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:274,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:275,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:276,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:277,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:278,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:279,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:280,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:281,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:282,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:283,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:284,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 94
    argCount: 2
    argNames:
    - ihv
    - m
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 288
    functionName: sha1_compression
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached:
    - HASHCLASH_SHA1COMPRESS_ROUND2_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND1_STEP
    - memcpy
    - HASHCLASH_SHA1COMPRESS_ROUND4_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND3_STEP
    - sha1_mix
    linkageType: ''
    returnType: void
    signature: void sha1_compression(uint32_t ihv[5], const uint32_t m[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:296,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:297,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:298,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:299,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:300,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:301,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:302,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:303,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:304,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:305,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:306,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:307,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:308,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:309,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:310,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:311,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:312,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:313,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:314,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/git/sha1dc/sha1.c:315,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:317,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:318,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:319,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:320,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:321,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:322,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:323,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:324,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:325,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:326,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:327,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:328,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:329,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:330,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:331,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:332,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:333,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:334,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:335,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:336,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:338,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:339,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:340,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:341,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:342,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:343,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:344,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:345,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:346,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:347,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:348,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:349,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:350,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:351,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:352,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:353,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:354,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:355,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:356,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:357,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:359,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:360,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:361,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:362,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:363,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:364,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:365,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:366,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:367,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:368,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:369,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:370,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:371,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:372,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:373,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:374,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:375,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:376,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:377,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 86
    argCount: 2
    argNames:
    - ihv
    - W
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 381
    functionName: sha1_compression_W
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached:
    - HASHCLASH_SHA1COMPRESS_ROUND4_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND3_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND2_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND1_STEP
    linkageType: ''
    returnType: void
    signature: void sha1_compression_W(uint32_t ihv[5], const uint32_t W[80])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:391,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:393,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:396,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:398,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:401,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:403,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:406,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:408,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:411,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:413,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:416,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:418,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:421,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:423,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:426,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:428,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:431,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:433,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:436,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:438,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:441,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:443,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:446,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:448,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:451,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:453,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:456,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:458,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:461,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:463,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:466,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/git/sha1dc/sha1.c:468,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:471,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/git/sha1dc/sha1.c:473,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:476,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/git/sha1dc/sha1.c:478,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:481,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/git/sha1dc/sha1.c:483,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:486,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/git/sha1dc/sha1.c:488,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:493,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:495,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:498,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:500,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:503,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:505,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:508,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:510,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:513,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:515,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:518,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:520,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:523,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:525,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:528,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:530,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:533,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:535,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:538,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:540,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:543,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:545,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:548,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:550,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:553,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:555,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:558,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:560,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:563,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:565,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:568,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:570,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:573,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:575,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:578,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:580,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:583,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:585,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:588,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/git/sha1dc/sha1.c:590,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:595,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:597,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:600,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:602,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:605,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:607,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:610,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:612,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:615,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:617,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:620,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:622,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:625,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:627,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:630,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:632,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:635,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:637,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:640,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:642,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:645,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:647,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:650,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:652,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:655,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:657,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:660,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:662,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:665,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:667,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:670,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:672,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:675,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:677,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:680,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:682,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:685,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:687,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:690,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/git/sha1dc/sha1.c:692,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:698,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:700,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:703,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:705,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:708,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:710,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:713,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:715,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:718,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:720,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:723,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:725,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:728,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:730,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:733,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:735,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:738,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:740,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:743,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:745,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:748,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:750,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:753,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:755,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:758,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:760,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:763,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:765,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:768,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:770,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:773,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:775,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:778,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:780,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:783,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:785,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:788,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:790,1
    - Dst: SHA1_STORE_STATE
      Src: /src/git/sha1dc/sha1.c:793,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/git/sha1dc/sha1.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 166
    argCount: 4
    argNames:
    - ihv
    - m
    - W
    - states
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    - uint32_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 800
    functionName: sha1_compression_states
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached:
    - SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
    - SHA1COMPRESS_FULL_ROUND3_STEP
    - SHA1_STORE_STATE
    - SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
    - SHA1COMPRESS_FULL_ROUND2_STEP
    - SHA1COMPRESS_FULL_ROUND4_STEP
    linkageType: ''
    returnType: void
    signature: void sha1_compression_states(uint32_t ihv[5], const uint32_t m[16],
      uint32_t W[80], uint32_t states[80][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 973
    functionName: SHA1_RECOMPRESS
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1_RECOMPRESS(t)
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: sha1recompress_fast_0
      Src: /src/git/sha1dc/sha1.c:1309,1
    - Dst: sha1recompress_fast_1
      Src: /src/git/sha1dc/sha1.c:1314,1
    - Dst: sha1recompress_fast_2
      Src: /src/git/sha1dc/sha1.c:1319,1
    - Dst: sha1recompress_fast_3
      Src: /src/git/sha1dc/sha1.c:1324,1
    - Dst: sha1recompress_fast_4
      Src: /src/git/sha1dc/sha1.c:1329,1
    - Dst: sha1recompress_fast_5
      Src: /src/git/sha1dc/sha1.c:1334,1
    - Dst: sha1recompress_fast_6
      Src: /src/git/sha1dc/sha1.c:1339,1
    - Dst: sha1recompress_fast_7
      Src: /src/git/sha1dc/sha1.c:1344,1
    - Dst: sha1recompress_fast_8
      Src: /src/git/sha1dc/sha1.c:1349,1
    - Dst: sha1recompress_fast_9
      Src: /src/git/sha1dc/sha1.c:1354,1
    - Dst: sha1recompress_fast_10
      Src: /src/git/sha1dc/sha1.c:1359,1
    - Dst: sha1recompress_fast_11
      Src: /src/git/sha1dc/sha1.c:1364,1
    - Dst: sha1recompress_fast_12
      Src: /src/git/sha1dc/sha1.c:1369,1
    - Dst: sha1recompress_fast_13
      Src: /src/git/sha1dc/sha1.c:1374,1
    - Dst: sha1recompress_fast_14
      Src: /src/git/sha1dc/sha1.c:1379,1
    - Dst: sha1recompress_fast_15
      Src: /src/git/sha1dc/sha1.c:1384,1
    - Dst: sha1recompress_fast_16
      Src: /src/git/sha1dc/sha1.c:1389,1
    - Dst: sha1recompress_fast_17
      Src: /src/git/sha1dc/sha1.c:1394,1
    - Dst: sha1recompress_fast_18
      Src: /src/git/sha1dc/sha1.c:1399,1
    - Dst: sha1recompress_fast_19
      Src: /src/git/sha1dc/sha1.c:1404,1
    - Dst: sha1recompress_fast_20
      Src: /src/git/sha1dc/sha1.c:1409,1
    - Dst: sha1recompress_fast_21
      Src: /src/git/sha1dc/sha1.c:1414,1
    - Dst: sha1recompress_fast_22
      Src: /src/git/sha1dc/sha1.c:1419,1
    - Dst: sha1recompress_fast_23
      Src: /src/git/sha1dc/sha1.c:1424,1
    - Dst: sha1recompress_fast_24
      Src: /src/git/sha1dc/sha1.c:1429,1
    - Dst: sha1recompress_fast_25
      Src: /src/git/sha1dc/sha1.c:1434,1
    - Dst: sha1recompress_fast_26
      Src: /src/git/sha1dc/sha1.c:1439,1
    - Dst: sha1recompress_fast_27
      Src: /src/git/sha1dc/sha1.c:1444,1
    - Dst: sha1recompress_fast_28
      Src: /src/git/sha1dc/sha1.c:1449,1
    - Dst: sha1recompress_fast_29
      Src: /src/git/sha1dc/sha1.c:1454,1
    - Dst: sha1recompress_fast_30
      Src: /src/git/sha1dc/sha1.c:1459,1
    - Dst: sha1recompress_fast_31
      Src: /src/git/sha1dc/sha1.c:1464,1
    - Dst: sha1recompress_fast_32
      Src: /src/git/sha1dc/sha1.c:1469,1
    - Dst: sha1recompress_fast_33
      Src: /src/git/sha1dc/sha1.c:1474,1
    - Dst: sha1recompress_fast_34
      Src: /src/git/sha1dc/sha1.c:1479,1
    - Dst: sha1recompress_fast_35
      Src: /src/git/sha1dc/sha1.c:1484,1
    - Dst: sha1recompress_fast_36
      Src: /src/git/sha1dc/sha1.c:1489,1
    - Dst: sha1recompress_fast_37
      Src: /src/git/sha1dc/sha1.c:1494,1
    - Dst: sha1recompress_fast_38
      Src: /src/git/sha1dc/sha1.c:1499,1
    - Dst: sha1recompress_fast_39
      Src: /src/git/sha1dc/sha1.c:1504,1
    - Dst: sha1recompress_fast_40
      Src: /src/git/sha1dc/sha1.c:1509,1
    - Dst: sha1recompress_fast_41
      Src: /src/git/sha1dc/sha1.c:1514,1
    - Dst: sha1recompress_fast_42
      Src: /src/git/sha1dc/sha1.c:1519,1
    - Dst: sha1recompress_fast_43
      Src: /src/git/sha1dc/sha1.c:1524,1
    - Dst: sha1recompress_fast_44
      Src: /src/git/sha1dc/sha1.c:1529,1
    - Dst: sha1recompress_fast_45
      Src: /src/git/sha1dc/sha1.c:1534,1
    - Dst: sha1recompress_fast_46
      Src: /src/git/sha1dc/sha1.c:1539,1
    - Dst: sha1recompress_fast_47
      Src: /src/git/sha1dc/sha1.c:1544,1
    - Dst: sha1recompress_fast_48
      Src: /src/git/sha1dc/sha1.c:1549,1
    - Dst: sha1recompress_fast_49
      Src: /src/git/sha1dc/sha1.c:1554,1
    - Dst: sha1recompress_fast_50
      Src: /src/git/sha1dc/sha1.c:1559,1
    - Dst: sha1recompress_fast_51
      Src: /src/git/sha1dc/sha1.c:1564,1
    - Dst: sha1recompress_fast_52
      Src: /src/git/sha1dc/sha1.c:1569,1
    - Dst: sha1recompress_fast_53
      Src: /src/git/sha1dc/sha1.c:1574,1
    - Dst: sha1recompress_fast_54
      Src: /src/git/sha1dc/sha1.c:1579,1
    - Dst: sha1recompress_fast_55
      Src: /src/git/sha1dc/sha1.c:1584,1
    - Dst: sha1recompress_fast_56
      Src: /src/git/sha1dc/sha1.c:1589,1
    - Dst: sha1recompress_fast_57
      Src: /src/git/sha1dc/sha1.c:1594,1
    - Dst: sha1recompress_fast_58
      Src: /src/git/sha1dc/sha1.c:1599,1
    - Dst: sha1recompress_fast_59
      Src: /src/git/sha1dc/sha1.c:1604,1
    - Dst: sha1recompress_fast_60
      Src: /src/git/sha1dc/sha1.c:1609,1
    - Dst: sha1recompress_fast_61
      Src: /src/git/sha1dc/sha1.c:1614,1
    - Dst: sha1recompress_fast_62
      Src: /src/git/sha1dc/sha1.c:1619,1
    - Dst: sha1recompress_fast_63
      Src: /src/git/sha1dc/sha1.c:1624,1
    - Dst: sha1recompress_fast_64
      Src: /src/git/sha1dc/sha1.c:1629,1
    - Dst: sha1recompress_fast_65
      Src: /src/git/sha1dc/sha1.c:1634,1
    - Dst: sha1recompress_fast_66
      Src: /src/git/sha1dc/sha1.c:1639,1
    - Dst: sha1recompress_fast_67
      Src: /src/git/sha1dc/sha1.c:1644,1
    - Dst: sha1recompress_fast_68
      Src: /src/git/sha1dc/sha1.c:1649,1
    - Dst: sha1recompress_fast_69
      Src: /src/git/sha1dc/sha1.c:1654,1
    - Dst: sha1recompress_fast_70
      Src: /src/git/sha1dc/sha1.c:1659,1
    - Dst: sha1recompress_fast_71
      Src: /src/git/sha1dc/sha1.c:1664,1
    - Dst: sha1recompress_fast_72
      Src: /src/git/sha1dc/sha1.c:1669,1
    - Dst: sha1recompress_fast_73
      Src: /src/git/sha1dc/sha1.c:1674,1
    - Dst: sha1recompress_fast_74
      Src: /src/git/sha1dc/sha1.c:1679,1
    - Dst: sha1recompress_fast_75
      Src: /src/git/sha1dc/sha1.c:1684,1
    - Dst: sha1recompress_fast_76
      Src: /src/git/sha1dc/sha1.c:1689,1
    - Dst: sha1recompress_fast_77
      Src: /src/git/sha1dc/sha1.c:1694,1
    - Dst: sha1recompress_fast_78
      Src: /src/git/sha1dc/sha1.c:1699,1
    - Dst: sha1recompress_fast_79
      Src: /src/git/sha1dc/sha1.c:1704,1
    - Dst: abort
      Src: /src/git/sha1dc/sha1.c:1708,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 245
    argCount: 5
    argNames:
    - step
    - ihvin
    - ihvout
    - me2
    - state
    argTypes:
    - uint32_t
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1303
    functionDepth: 0
    functionLinenumber: 1303
    functionLinenumberEnd: 1711
    functionName: sha1_recompression_step
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached:
    - sha1recompress_fast_29
    - sha1recompress_fast_48
    - sha1recompress_fast_18
    - sha1recompress_fast_27
    - sha1recompress_fast_74
    - sha1recompress_fast_39
    - sha1recompress_fast_40
    - sha1recompress_fast_63
    - sha1recompress_fast_8
    - sha1recompress_fast_22
    - sha1recompress_fast_59
    - sha1recompress_fast_35
    - sha1recompress_fast_70
    - sha1recompress_fast_57
    - sha1recompress_fast_7
    - sha1recompress_fast_67
    - sha1recompress_fast_55
    - sha1recompress_fast_73
    - sha1recompress_fast_49
    - sha1recompress_fast_61
    - sha1recompress_fast_3
    - sha1recompress_fast_21
    - sha1recompress_fast_34
    - sha1recompress_fast_58
    - sha1recompress_fast_78
    - sha1recompress_fast_19
    - sha1recompress_fast_53
    - sha1recompress_fast_62
    - sha1recompress_fast_45
    - sha1recompress_fast_33
    - sha1recompress_fast_56
    - sha1recompress_fast_46
    - sha1recompress_fast_23
    - sha1recompress_fast_54
    - sha1recompress_fast_71
    - sha1recompress_fast_64
    - sha1recompress_fast_38
    - sha1recompress_fast_44
    - sha1recompress_fast_17
    - sha1recompress_fast_26
    - sha1recompress_fast_68
    - sha1recompress_fast_43
    - sha1recompress_fast_9
    - sha1recompress_fast_66
    - sha1recompress_fast_36
    - sha1recompress_fast_32
    - abort
    - sha1recompress_fast_42
    - sha1recompress_fast_79
    - sha1recompress_fast_5
    - sha1recompress_fast_6
    - sha1recompress_fast_24
    - sha1recompress_fast_12
    - sha1recompress_fast_51
    - sha1recompress_fast_4
    - sha1recompress_fast_41
    - sha1recompress_fast_11
    - sha1recompress_fast_50
    - sha1recompress_fast_16
    - sha1recompress_fast_2
    - sha1recompress_fast_75
    - sha1recompress_fast_14
    - sha1recompress_fast_0
    - sha1recompress_fast_10
    - sha1recompress_fast_25
    - sha1recompress_fast_30
    - sha1recompress_fast_31
    - sha1recompress_fast_77
    - sha1recompress_fast_72
    - sha1recompress_fast_15
    - sha1recompress_fast_1
    - sha1recompress_fast_47
    - sha1recompress_fast_69
    - sha1recompress_fast_76
    - sha1recompress_fast_28
    - sha1recompress_fast_37
    - sha1recompress_fast_20
    - sha1recompress_fast_60
    - sha1recompress_fast_52
    - sha1recompress_fast_65
    - sha1recompress_fast_13
    linkageType: ''
    returnType: void
    signature: void sha1_recompression_step(uint32_t step, uint32_t ihvin[5], uint32_t
      ihvout[5], const uint32_t me2[80], const uint32_t state[5])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sha1_compression_states
      Src: /src/git/sha1dc/sha1.c:1727,1
    - Dst: ubc_check
      Src: /src/git/sha1dc/sha1.c:1733,1
    - Dst: sha1_recompression_step
      Src: /src/git/sha1dc/sha1.c:1745,1
    - Dst: sha1_compression_W
      Src: /src/git/sha1dc/sha1.c:1755,1
    - Dst: sha1_compression_W
      Src: /src/git/sha1dc/sha1.c:1756,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - block
    argTypes:
    - SHA1_CTX*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1715
    functionDepth: 2
    functionLinenumber: 1715
    functionLinenumberEnd: 1765
    functionName: sha1_process
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached:
    - sha1_compression_states
    - ubc_check
    - sha1_recompression_step
    - sha1_compression_W
    linkageType: ''
    returnType: void
    signature: void sha1_process(SHA1_CTX* ctx, const uint32_t block[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1767
    functionDepth: 0
    functionLinenumber: 1767
    functionLinenumberEnd: 1781
    functionName: SHA1DCInit
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCInit(SHA1_CTX* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - safehash
    argTypes:
    - SHA1_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1789
    functionName: SHA1DCSetSafeHash
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCSetSafeHash(SHA1_CTX* ctx, int safehash)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ubc_check
    argTypes:
    - SHA1_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1792
    functionDepth: 0
    functionLinenumber: 1792
    functionLinenumberEnd: 1798
    functionName: SHA1DCSetUseUBC
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCSetUseUBC(SHA1_CTX* ctx, int ubc_check)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - detect_coll
    argTypes:
    - SHA1_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1806
    functionName: SHA1DCSetUseDetectColl
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCSetUseDetectColl(SHA1_CTX* ctx, int detect_coll)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - reduced_round_coll
    argTypes:
    - SHA1_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1808
    functionDepth: 0
    functionLinenumber: 1808
    functionLinenumberEnd: 1814
    functionName: SHA1DCSetDetectReducedRoundCollision
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCSetDetectReducedRoundCollision(SHA1_CTX* ctx, int reduced_round_coll)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - callback
    argTypes:
    - SHA1_CTX*
    - collision_block_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1819
    functionName: SHA1DCSetCallback
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCSetCallback(SHA1_CTX* ctx, collision_block_callback callback)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/sha1dc/sha1.c:1834,1
    - Dst: sha1_process
      Src: /src/git/sha1dc/sha1.c:1835,1
    - Dst: sha1_process
      Src: /src/git/sha1dc/sha1.c:1845,1
    - Dst: memcpy
      Src: /src/git/sha1dc/sha1.c:1847,1
    - Dst: sha1_process
      Src: /src/git/sha1dc/sha1.c:1848,1
    - Dst: memcpy
      Src: /src/git/sha1dc/sha1.c:1856,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - SHA1_CTX*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1821
    functionDepth: 3
    functionLinenumber: 1821
    functionLinenumberEnd: 1858
    functionName: SHA1DCUpdate
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 1
    functionsReached:
    - sha1_process
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA1DCUpdate(SHA1_CTX* ctx, const char* buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1DCUpdate
      Src: /src/git/sha1dc/sha1.c:1873,1
    - Dst: sha1_process
      Src: /src/git/sha1dc/sha1.c:1885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - output
    - ctx
    argTypes:
    - unsigned char[]
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1868
    functionDepth: 4
    functionLinenumber: 1868
    functionLinenumberEnd: 1907
    functionName: SHA1DCFinal
    functionSourceFile: /src/git/sha1dc/sha1.c
    functionUses: 1
    functionsReached:
    - sha1_process
    - SHA1DCUpdate
    linkageType: ''
    returnType: int
    signature: int SHA1DCFinal(unsigned char output[20], SHA1_CTX *ctx)
  - BBCount: 84
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 197
    argCount: 2
    argNames:
    - W
    - dvmask
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 368
    functionName: ubc_check
    functionSourceFile: /src/git/sha1dc/ubc_check.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ubc_check(const uint32_t W[80], uint32_t dvmask[1])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/negotiator/default.c:31,1
    - Dst: prio_queue_put
      Src: /src/git/negotiator/default.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ns
    - commit
    - mark
    argTypes:
    - struct negotiation_state*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 20
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: rev_list_push
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 0
    functionsReached:
    - repo_parse_commit
    - prio_queue_put
    linkageType: ''
    returnType: void
    signature: "void rev_list_push(struct negotiation_state *ns,\n\t\t\t  struct commit
      *commit, int mark)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deref_tag
      Src: /src/git/negotiator/default.c:43,1
    - Dst: parse_object
      Src: /src/git/negotiator/default.c:43,1
    - Dst: clear_commit_marks
      Src: /src/git/negotiator/default.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: clear_marks
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 0
    functionsReached:
    - clear_commit_marks
    - deref_tag
    - parse_object
    linkageType: ''
    returnType: int
    signature: int clear_marks(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: commit_stack_push
      Src: /src/git/negotiator/default.c:65,1
    - Dst: commit_stack_pop
      Src: /src/git/negotiator/default.c:72,1
    - Dst: rev_list_push
      Src: /src/git/negotiator/default.c:76,1
    - Dst: repo_parse_commit
      Src: /src/git/negotiator/default.c:81,1
    - Dst: commit_stack_push
      Src: /src/git/negotiator/default.c:97,1
    - Dst: commit_stack_clear
      Src: /src/git/negotiator/default.c:102,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 4
    argNames:
    - ns
    - commit
    - ancestors_only
    - dont_parse
    argTypes:
    - struct negotiation_state*
    - struct commit*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 57
    functionDepth: 20
    functionLinenumber: 57
    functionLinenumberEnd: 103
    functionName: mark_common
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 0
    functionsReached:
    - commit_stack_pop
    - repo_parse_commit
    - commit_stack_push
    - commit_stack_clear
    - rev_list_push
    linkageType: ''
    returnType: void
    signature: "void mark_common(struct negotiation_state *ns, struct commit *commit,\n\t\tint
      ancestors_only, int dont_parse)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_get
      Src: /src/git/negotiator/default.c:119,1
    - Dst: repo_parse_commit
      Src: /src/git/negotiator/default.c:120,1
    - Dst: rev_list_push
      Src: /src/git/negotiator/default.c:140,1
    - Dst: mark_common
      Src: /src/git/negotiator/default.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct negotiation_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 108
    functionDepth: 20
    functionLinenumber: 108
    functionLinenumberEnd: 148
    functionName: get_rev
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 0
    functionsReached:
    - mark_common
    - prio_queue_get
    - repo_parse_commit
    - rev_list_push
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *get_rev(struct negotiation_state *ns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rev_list_push
      Src: /src/git/negotiator/default.c:153,1
    - Dst: mark_common
      Src: /src/git/negotiator/default.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - n
    - c
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: known_common
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 1
    functionsReached:
    - mark_common
    - rev_list_push
    linkageType: ''
    returnType: void
    signature: void known_common(struct fetch_negotiator *n, struct commit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rev_list_push
      Src: /src/git/negotiator/default.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - c
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: add_tip
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 1
    functionsReached:
    - rev_list_push
    linkageType: ''
    returnType: void
    signature: void add_tip(struct fetch_negotiator *n, struct commit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_rev
      Src: /src/git/negotiator/default.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: next
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 38
    functionsReached:
    - get_rev
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *next(struct fetch_negotiator *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_common
      Src: /src/git/negotiator/default.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - c
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: ack
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 138
    functionsReached:
    - mark_common
    linkageType: ''
    returnType: int
    signature: int ack(struct fetch_negotiator *n, struct commit *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/negotiator/default.c:180,1
    - Dst: mark_common
      Src: /src/git/negotiator/default.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - n
    - c
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 20
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: have_sent
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 2
    functionsReached:
    - mark_common
    - repo_parse_commit
    linkageType: ''
    returnType: void
    signature: void have_sent(struct fetch_negotiator *n, struct commit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_prio_queue
      Src: /src/git/negotiator/default.c:187,1
    - Dst: FREE_AND_NULL
      Src: /src/git/negotiator/default.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: release
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 872
    functionsReached:
    - clear_prio_queue
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void release(struct fetch_negotiator *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/negotiator/default.c:200,1
    - Dst: refs_for_each_ref
      Src: /src/git/negotiator/default.c:204,1
    - Dst: get_main_ref_store
      Src: /src/git/negotiator/default.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - negotiator
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: default_negotiator_init
    functionSourceFile: /src/git/negotiator/default.c
    functionUses: 1
    functionsReached:
    - get_main_ref_store
    - refs_for_each_ref
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void default_negotiator_init(struct fetch_negotiator *negotiator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: known_common
    functionSourceFile: /src/git/negotiator/noop.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void known_common(struct fetch_negotiator *n UNUSED,\n\t\t\t struct
      commit *c UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: add_tip
    functionSourceFile: /src/git/negotiator/noop.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void add_tip(struct fetch_negotiator *n UNUSED,\n\t\t    struct commit
      *c UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: next
    functionSourceFile: /src/git/negotiator/noop.c
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *next(struct fetch_negotiator *n UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/negotiator/noop.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: ack
    functionSourceFile: /src/git/negotiator/noop.c
    functionUses: 138
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: int ack(struct fetch_negotiator *n UNUSED, struct commit *c UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: have_sent
    functionSourceFile: /src/git/negotiator/noop.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void have_sent(struct fetch_negotiator *n UNUSED,\n\t\t      struct
      commit *c UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: release
    functionSourceFile: /src/git/negotiator/noop.c
    functionUses: 872
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void release(struct fetch_negotiator *n UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - negotiator
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: noop_negotiator_init
    functionSourceFile: /src/git/negotiator/noop.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noop_negotiator_init(struct fetch_negotiator *negotiator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare_commits_by_commit_date
      Src: /src/git/negotiator/skipping.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a_
    - b_
    - UNUSED
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: compare
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 18
    functionsReached:
    - compare_commits_by_commit_date
    linkageType: ''
    returnType: int
    signature: int compare(const void *a_, const void *b_, void *data UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/negotiator/skipping.c:69,1
    - Dst: prio_queue_put
      Src: /src/git/negotiator/skipping.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - data
    - commit
    - mark
    argTypes:
    - struct data*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: rev_list_push
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 4
    functionsReached:
    - prio_queue_put
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct entry
    signature: struct entry *rev_list_push(struct data *data, struct commit *commit,
      int mark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deref_tag
      Src: /src/git/negotiator/skipping.c:80,1
    - Dst: parse_object
      Src: /src/git/negotiator/skipping.c:80,1
    - Dst: clear_commit_marks
      Src: /src/git/negotiator/skipping.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: clear_marks
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 0
    functionsReached:
    - clear_commit_marks
    - deref_tag
    - parse_object
    linkageType: ''
    returnType: int
    signature: int clear_marks(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: commit_stack_push
      Src: /src/git/negotiator/skipping.c:100,1
    - Dst: commit_stack_pop
      Src: /src/git/negotiator/skipping.c:102,1
    - Dst: commit_stack_push
      Src: /src/git/negotiator/skipping.c:116,1
    - Dst: commit_stack_clear
      Src: /src/git/negotiator/skipping.c:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - data
    - seen_commit
    argTypes:
    - struct data*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 121
    functionName: mark_common
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 4
    functionsReached:
    - commit_stack_pop
    - commit_stack_push
    - commit_stack_clear
    linkageType: ''
    returnType: void
    signature: void mark_common(struct data *data, struct commit *seen_commit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/negotiator/skipping.c:151,1
    - Dst: rev_list_push
      Src: /src/git/negotiator/skipping.c:155,1
    - Dst: mark_common
      Src: /src/git/negotiator/skipping.c:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - data
    - entry
    - to_push
    argTypes:
    - struct data*
    - struct entry*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 172
    functionName: push_parent
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 0
    functionsReached:
    - mark_common
    - BUG
    - rev_list_push
    linkageType: ''
    returnType: int
    signature: "int push_parent(struct data *data, struct entry *entry,\n\t\t       struct
      commit *to_push)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_get
      Src: /src/git/negotiator/skipping.c:187,1
    - Dst: repo_parse_commit
      Src: /src/git/negotiator/skipping.c:196,1
    - Dst: push_parent
      Src: /src/git/negotiator/skipping.c:198,1
    - Dst: free
      Src: /src/git/negotiator/skipping.c:208,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 174
    functionDepth: 20
    functionLinenumber: 174
    functionLinenumberEnd: 212
    functionName: get_rev
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 1
    functionsReached:
    - free
    - prio_queue_get
    - repo_parse_commit
    - push_parent
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *get_rev(struct data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rev_list_push
      Src: /src/git/negotiator/skipping.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - n
    - c
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: known_common
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 1
    functionsReached:
    - rev_list_push
    linkageType: ''
    returnType: void
    signature: void known_common(struct fetch_negotiator *n, struct commit *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rev_list_push
      Src: /src/git/negotiator/skipping.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - n
    - c
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: add_tip
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 1
    functionsReached:
    - rev_list_push
    linkageType: ''
    returnType: void
    signature: void add_tip(struct fetch_negotiator *n, struct commit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_rev
      Src: /src/git/negotiator/skipping.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: next
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 38
    functionsReached:
    - get_rev
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *next(struct fetch_negotiator *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/negotiator/skipping.c:240,1
    - Dst: oid_to_hex
      Src: /src/git/negotiator/skipping.c:241,1
    - Dst: mark_common
      Src: /src/git/negotiator/skipping.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - n
    - c
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: ack
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 138
    functionsReached:
    - mark_common
    - oid_to_hex
    - die
    linkageType: ''
    returnType: int
    signature: int ack(struct fetch_negotiator *n, struct commit *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/negotiator/skipping.c:248,1
    - Dst: mark_common
      Src: /src/git/negotiator/skipping.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - n
    - c
    argTypes:
    - struct fetch_negotiator*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 20
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: have_sent
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 2
    functionsReached:
    - mark_common
    - repo_parse_commit
    linkageType: ''
    returnType: void
    signature: void have_sent(struct fetch_negotiator *n, struct commit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/negotiator/skipping.c:257,1
    - Dst: clear_prio_queue
      Src: /src/git/negotiator/skipping.c:258,1
    - Dst: FREE_AND_NULL
      Src: /src/git/negotiator/skipping.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: release
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 872
    functionsReached:
    - clear_prio_queue
    - FREE_AND_NULL
    - free
    linkageType: ''
    returnType: void
    signature: void release(struct fetch_negotiator *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/negotiator/skipping.c:271,1
    - Dst: refs_for_each_ref
      Src: /src/git/negotiator/skipping.c:275,1
    - Dst: get_main_ref_store
      Src: /src/git/negotiator/skipping.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - negotiator
    argTypes:
    - struct fetch_negotiator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 278
    functionName: skipping_negotiator_init
    functionSourceFile: /src/git/negotiator/skipping.c
    functionUses: 1
    functionsReached:
    - get_main_ref_store
    - refs_for_each_ref
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void skipping_negotiator_init(struct fetch_negotiator *negotiator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: xdl_bogosqrt
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xdl_bogosqrt(uint64_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/xdiff/xutils.c:50,1
    - Dst: xdemitcb_t*::out_line
      Src: /src/git/xdiff/xutils.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - rec
    - size
    - pre
    - psize
    - ecb
    argTypes:
    - char*
    - long
    - char*
    - long
    - xdemitcb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: xdl_emit_diffrec
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - xdemitcb_t*::out_line
    - strlen
    linkageType: ''
    returnType: int
    signature: "int xdl_emit_diffrec(char const *rec, long size, char const *pre,
      long psize,\n\t\t     xdemitcb_t *ecb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mmf
    - size
    argTypes:
    - mmfile_t*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: xdl_mmfile_first
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *xdl_mmfile_first(mmfile_t *mmf, long *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mmf
    argTypes:
    - mmfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: xdl_mmfile_size
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long xdl_mmfile_size(mmfile_t *mmf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - cha
    - isize
    - icount
    argTypes:
    - chastore_t*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: xdl_cha_init
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xdl_cha_init(chastore_t *cha, long isize, long icount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_free
      Src: /src/git/xdiff/xutils.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cha
    argTypes:
    - chastore_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: xdl_cha_free
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - xdl_free
    linkageType: ''
    returnType: void
    signature: void xdl_cha_free(chastore_t *cha)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xdl_malloc
      Src: /src/git/xdiff/xutils.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cha
    argTypes:
    - chastore_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 119
    functionName: xdl_cha_alloc
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - xdl_malloc
    linkageType: ''
    returnType: void
    signature: void *xdl_cha_alloc(chastore_t *cha)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xdl_mmfile_first
      Src: /src/git/xdiff/xutils.c:125,1
    - Dst: memchr
      Src: /src/git/xdiff/xutils.c:128,1
    - Dst: xdl_mmfile_size
      Src: /src/git/xdiff/xutils.c:137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - mf
    - sample
    argTypes:
    - mmfile_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 140
    functionName: xdl_guess_lines
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - memchr
    - xdl_mmfile_size
    - xdl_mmfile_first
    linkageType: ''
    returnType: long
    signature: long xdl_guess_lines(mmfile_t *mf, long sample)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - line
    - size
    - flags
    argTypes:
    - char*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: xdl_blankline
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - XDL_ISSPACE
    linkageType: ''
    returnType: int
    signature: int xdl_blankline(const char *line, long size, long flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - l
    - s
    - i
    argTypes:
    - char*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: ends_with_optional_cr
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ends_with_optional_cr(const char *l, long s, long i)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/xdiff/xutils.c:177,1
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:199,1
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:201,1
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:206,1
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:206,1
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:208,1
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:210,1
    - Dst: ends_with_optional_cr
      Src: /src/git/xdiff/xutils.c:228,1
    - Dst: ends_with_optional_cr
      Src: /src/git/xdiff/xutils.c:229,1
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:239,1
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:245,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 59
    argCount: 5
    argNames:
    - l1
    - s1
    - l2
    - s2
    - flags
    argTypes:
    - char*
    - long
    - char*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 250
    functionName: xdl_recmatch
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 1
    functionsReached:
    - ends_with_optional_cr
    - XDL_ISSPACE
    - memcmp
    linkageType: ''
    returnType: int
    signature: int xdl_recmatch(const char *l1, long s1, const char *l2, long s2,
      long flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:265,1
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xutils.c:268,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 30
    argCount: 3
    argNames:
    - data
    - top
    - flags
    argTypes:
    - uint8_t**
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 295
    functionName: xdl_hash_record_with_whitespace
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - XDL_ISSPACE
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t xdl_hash_record_with_whitespace(uint8_t const **data,\n\t\tuint8_t
      const *top, uint64_t flags)"
  - 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: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: REASSOC_FENCE
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REASSOC_FENCE(x, y)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REASSOC_FENCE
      Src: /src/git/xdiff/xutils.c:330,1
    - Dst: REASSOC_FENCE
      Src: /src/git/xdiff/xutils.c:344,1
    - Dst: REASSOC_FENCE
      Src: /src/git/xdiff/xutils.c:346,1
    - Dst: REASSOC_FENCE
      Src: /src/git/xdiff/xutils.c:354,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - data
    - top
    argTypes:
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 359
    functionName: xdl_hash_record_verbatim
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - REASSOC_FENCE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xdl_hash_record_verbatim(uint8_t const **data, uint8_t const
      *top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: xdl_hashbits
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xdl_hashbits(unsigned int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - out
    - val
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 389
    functionName: xdl_num_out
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xdl_num_out(char *out, long val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/xdiff/xutils.c:398,1
    - Dst: xdl_num_out
      Src: /src/git/xdiff/xutils.c:401,1
    - Dst: memcpy
      Src: /src/git/xdiff/xutils.c:404,1
    - Dst: xdl_num_out
      Src: /src/git/xdiff/xutils.c:407,1
    - Dst: memcpy
      Src: /src/git/xdiff/xutils.c:410,1
    - Dst: xdl_num_out
      Src: /src/git/xdiff/xutils.c:413,1
    - Dst: memcpy
      Src: /src/git/xdiff/xutils.c:416,1
    - Dst: xdl_num_out
      Src: /src/git/xdiff/xutils.c:419,1
    - Dst: memcpy
      Src: /src/git/xdiff/xutils.c:422,1
    - Dst: memcpy
      Src: /src/git/xdiff/xutils.c:428,1
    - Dst: xdemitcb_t*::out_line
      Src: /src/git/xdiff/xutils.c:435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 7
    argNames:
    - s1
    - c1
    - s2
    - c2
    - func
    - funclen
    - ecb
    argTypes:
    - long
    - long
    - long
    - long
    - char*
    - long
    - xdemitcb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 438
    functionName: xdl_format_hunk_hdr
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - xdl_num_out
    - xdemitcb_t*::out_line
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int xdl_format_hunk_hdr(long s1, long c1, long s2, long c2,\n\t\t\t
      \      const char *func, long funclen,\n\t\t\t       xdemitcb_t *ecb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xdl_format_hunk_hdr
      Src: /src/git/xdiff/xutils.c:444,1
    - Dst: xdemitcb_t*::out_hunk
      Src: /src/git/xdiff/xutils.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - s1
    - c1
    - s2
    - c2
    - func
    - funclen
    - ecb
    argTypes:
    - long
    - long
    - long
    - long
    - char*
    - long
    - xdemitcb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 451
    functionName: xdl_emit_hunk_hdr
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - xdl_format_hunk_hdr
    - xdemitcb_t*::out_hunk
    linkageType: ''
    returnType: int
    signature: "int xdl_emit_hunk_hdr(long s1, long c1, long s2, long c2,\n\t\t      const
      char *func, long funclen,\n\t\t      xdemitcb_t *ecb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xdl_do_diff
      Src: /src/git/xdiff/xutils.c:473,1
    - Dst: memcpy
      Src: /src/git/xdiff/xutils.c:476,1
    - Dst: memcpy
      Src: /src/git/xdiff/xutils.c:477,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xutils.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - diff_env
    - xpp
    - line1
    - count1
    - line2
    - count2
    argTypes:
    - xdfenv_t*
    - xpparam_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 482
    functionName: xdl_fall_back_diff
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - xdl_free_env
    - memcpy
    - xdl_do_diff
    linkageType: ''
    returnType: int
    signature: "int xdl_fall_back_diff(xdfenv_t *diff_env, xpparam_t const *xpp,\n\t\tint
      line1, int count1, int line2, int count2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xdl_realloc
      Src: /src/git/xdiff/xutils.c:491,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xutils.c:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - p
    - nr
    - alloc
    - size
    argTypes:
    - void*
    - long
    - long*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 499
    functionName: xdl_alloc_grow_helper
    functionSourceFile: /src/git/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - xdl_realloc
    - xdl_free
    linkageType: ''
    returnType: void
    signature: void * xdl_alloc_grow_helper(void *p, long nr, long *alloc, size_t
      size)
  - 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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: XDL_MIN
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_MIN(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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: XDL_MAX
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: XDL_ABS
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_ABS(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: XDL_ISDIGIT
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_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: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: XDL_ISSPACE
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_ISSPACE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: XDL_ADDBITS
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_ADDBITS(v,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: XDL_MASKBITS
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_MASKBITS(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: XDL_HASHLONG
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_HASHLONG(v,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: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: XDL_LE32_PUT
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_LE32_PUT(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: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: XDL_LE32_GET
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_LE32_GET(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: XDL_ALLOC_ARRAY
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_ALLOC_ARRAY(p, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: XDL_CALLOC_ARRAY
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_CALLOC_ARRAY(p, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - nr
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: XDL_ALLOC_GROW
    functionSourceFile: /src/git/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_ALLOC_GROW(p, nr, alloc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xdl_malloc
      Src: /src/git/xdiff/xmerge.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 8
    argNames:
    - merge
    - mode
    - i0
    - chg0
    - i1
    - chg1
    - i2
    - chg2
    argTypes:
    - xdmerge_t**
    - int
    - long
    - long
    - long
    - long
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 79
    functionName: xdl_append_merge
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - xdl_malloc
    linkageType: ''
    returnType: int
    signature: "int xdl_append_merge(xdmerge_t **merge, int mode,\n\t\t\t    long
      i0, long chg0,\n\t\t\t    long i1, long chg1,\n\t\t\t    long i2, long chg2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/xdiff/xmerge.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - xdmerge_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: xdl_cleanup_merge
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int xdl_cleanup_merge(xdmerge_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xdl_recmatch
      Src: /src/git/xdiff/xmerge.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - xe1
    - i1
    - xe2
    - i2
    - line_count
    - flags
    argTypes:
    - xdfenv_t*
    - int
    - xdfenv_t*
    - int
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 110
    functionName: xdl_merge_cmp_lines
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - xdl_recmatch
    linkageType: ''
    returnType: int
    signature: "int xdl_merge_cmp_lines(xdfenv_t *xe1, int i1, xdfenv_t *xe2, int
      i2,\n\t\tint line_count, long flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/xdiff/xmerge.c:124,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 7
    argNames:
    - use_orig
    - xe
    - i
    - count
    - needs_cr
    - add_nl
    - dest
    argTypes:
    - int
    - xdfenv_t*
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 140
    functionName: xdl_recs_copy_0
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int xdl_recs_copy_0(int use_orig, xdfenv_t *xe, int i, int count, int
      needs_cr, int add_nl, char *dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_recs_copy_0
      Src: /src/git/xdiff/xmerge.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xe
    - i
    - count
    - needs_cr
    - add_nl
    - dest
    argTypes:
    - xdfenv_t*
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: xdl_recs_copy
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - xdl_recs_copy_0
    linkageType: ''
    returnType: int
    signature: int xdl_recs_copy(xdfenv_t *xe, int i, int count, int needs_cr, int
      add_nl, char *dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_recs_copy_0
      Src: /src/git/xdiff/xmerge.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xe
    - i
    - count
    - needs_cr
    - add_nl
    - dest
    argTypes:
    - xdfenv_t*
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: xdl_orig_copy
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - xdl_recs_copy_0
    linkageType: ''
    returnType: int
    signature: int xdl_orig_copy(xdfenv_t *xe, int i, int count, int needs_cr, int
      add_nl, char *dest)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - file
    - i
    argTypes:
    - xdfile_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: is_eol_crlf
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_eol_crlf(xdfile_t *file, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_eol_crlf
      Src: /src/git/xdiff/xmerge.c:186,1
    - Dst: is_eol_crlf
      Src: /src/git/xdiff/xmerge.c:188,1
    - Dst: is_eol_crlf
      Src: /src/git/xdiff/xmerge.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - xe1
    - xe2
    - m
    argTypes:
    - xdfenv_t*
    - xdfenv_t*
    - xdmerge_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: is_cr_needed
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - is_eol_crlf
    linkageType: ''
    returnType: int
    signature: int is_cr_needed(xdfenv_t *xe1, xdfenv_t *xe2, xdmerge_t *m)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/xdiff/xmerge.c:202,1
    - Dst: strlen
      Src: /src/git/xdiff/xmerge.c:203,1
    - Dst: strlen
      Src: /src/git/xdiff/xmerge.c:204,1
    - Dst: is_cr_needed
      Src: /src/git/xdiff/xmerge.c:205,1
    - Dst: xdl_recs_copy
      Src: /src/git/xdiff/xmerge.c:211,1
    - Dst: memset
      Src: /src/git/xdiff/xmerge.c:217,1
    - Dst: memcpy
      Src: /src/git/xdiff/xmerge.c:221,1
    - Dst: xdl_recs_copy
      Src: /src/git/xdiff/xmerge.c:230,1
    - Dst: memset
      Src: /src/git/xdiff/xmerge.c:238,1
    - Dst: memcpy
      Src: /src/git/xdiff/xmerge.c:242,1
    - Dst: xdl_orig_copy
      Src: /src/git/xdiff/xmerge.c:249,1
    - Dst: memset
      Src: /src/git/xdiff/xmerge.c:256,1
    - Dst: xdl_recs_copy
      Src: /src/git/xdiff/xmerge.c:264,1
    - Dst: memset
      Src: /src/git/xdiff/xmerge.c:269,1
    - Dst: memcpy
      Src: /src/git/xdiff/xmerge.c:273,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 11
    argNames:
    - xe1
    - name1
    - xe2
    - name2
    - name3
    - size
    - i
    - style
    - m
    - dest
    - marker_size
    argTypes:
    - xdfenv_t*
    - char*
    - xdfenv_t*
    - char*
    - char*
    - int
    - int
    - int
    - xdmerge_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 281
    functionName: fill_conflict_hunk
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - memset
    - is_cr_needed
    - xdl_recs_copy
    - memcpy
    - strlen
    - xdl_orig_copy
    linkageType: ''
    returnType: int
    signature: "int fill_conflict_hunk(xdfenv_t *xe1, const char *name1,\n\t\t\t      xdfenv_t
      *xe2, const char *name2,\n\t\t\t      const char *name3,\n\t\t\t      int size,
      int i, int style,\n\t\t\t      xdmerge_t *m, char *dest, int marker_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fill_conflict_hunk
      Src: /src/git/xdiff/xmerge.c:297,1
    - Dst: xdl_recs_copy
      Src: /src/git/xdiff/xmerge.c:303,1
    - Dst: is_cr_needed
      Src: /src/git/xdiff/xmerge.c:307,1
    - Dst: xdl_recs_copy
      Src: /src/git/xdiff/xmerge.c:309,1
    - Dst: xdl_recs_copy
      Src: /src/git/xdiff/xmerge.c:314,1
    - Dst: xdl_recs_copy
      Src: /src/git/xdiff/xmerge.c:320,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 10
    argNames:
    - xe1
    - name1
    - xe2
    - name2
    - ancestor_name
    - favor
    - m
    - dest
    - style
    - marker_size
    argTypes:
    - xdfenv_t*
    - char*
    - xdfenv_t*
    - char*
    - char*
    - int
    - xdmerge_t*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 323
    functionName: xdl_fill_merge_buffer
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - fill_conflict_hunk
    - xdl_recs_copy
    - is_cr_needed
    linkageType: ''
    returnType: int
    signature: "int xdl_fill_merge_buffer(xdfenv_t *xe1, const char *name1,\n\t\t\t\t
      xdfenv_t *xe2, const char *name2,\n\t\t\t\t const char *ancestor_name,\n\t\t\t\t
      int favor,\n\t\t\t\t xdmerge_t *m, char *dest, int style,\n\t\t\t\t int marker_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_recmatch
      Src: /src/git/xdiff/xmerge.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rec1
    - rec2
    - flags
    argTypes:
    - xrecord_t*
    - xrecord_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: recmatch
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 3
    functionsReached:
    - xdl_recmatch
    linkageType: ''
    returnType: int
    signature: int recmatch(xrecord_t *rec1, xrecord_t *rec2, unsigned long flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recmatch
      Src: /src/git/xdiff/xmerge.c:344,1
    - Dst: recmatch
      Src: /src/git/xdiff/xmerge.c:351,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - xe1
    - xe2
    - m
    - xpp
    argTypes:
    - xdfenv_t*
    - xdfenv_t*
    - xdmerge_t*
    - xpparam_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 357
    functionName: xdl_refine_zdiff3_conflicts
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - recmatch
    linkageType: ''
    returnType: void
    signature: "void xdl_refine_zdiff3_conflicts(xdfenv_t *xe1, xdfenv_t *xe2, xdmerge_t
      *m,\n\t\txpparam_t const *xpp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xdl_do_diff
      Src: /src/git/xdiff/xmerge.c:390,1
    - Dst: xdl_change_compact
      Src: /src/git/xdiff/xmerge.c:392,1
    - Dst: xdl_change_compact
      Src: /src/git/xdiff/xmerge.c:393,1
    - Dst: xdl_build_script
      Src: /src/git/xdiff/xmerge.c:394,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xmerge.c:395,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xmerge.c:400,1
    - Dst: xdl_malloc
      Src: /src/git/xdiff/xmerge.c:410,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xmerge.c:412,1
    - Dst: xdl_free_script
      Src: /src/git/xdiff/xmerge.c:413,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xmerge.c:426,1
    - Dst: xdl_free_script
      Src: /src/git/xdiff/xmerge.c:427,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 4
    argNames:
    - xe1
    - xe2
    - m
    - xpp
    argTypes:
    - xdfenv_t*
    - xdfenv_t*
    - xdmerge_t*
    - xpparam_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 430
    functionName: xdl_refine_conflicts
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - xdl_change_compact
    - xdl_free_script
    - xdl_do_diff
    - xdl_malloc
    - xdl_free_env
    - xdl_build_script
    linkageType: ''
    returnType: int
    signature: "int xdl_refine_conflicts(xdfenv_t *xe1, xdfenv_t *xe2, xdmerge_t *m,\n\t\txpparam_t
      const *xpp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/git/xdiff/xmerge.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: line_contains_alnum
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: int
    signature: int line_contains_alnum(const char *ptr, long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: line_contains_alnum
      Src: /src/git/xdiff/xmerge.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - xe
    - i
    - chg
    argTypes:
    - xdfenv_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 447
    functionName: lines_contain_alnum
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - line_contains_alnum
    linkageType: ''
    returnType: int
    signature: int lines_contain_alnum(xdfenv_t *xe, int i, int chg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/xdiff/xmerge.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - xdmerge_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 460
    functionName: xdl_merge_two_conflicts
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void xdl_merge_two_conflicts(xdmerge_t *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lines_contain_alnum
      Src: /src/git/xdiff/xmerge.c:487,1
    - Dst: xdl_merge_two_conflicts
      Src: /src/git/xdiff/xmerge.c:491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - xe1
    - m
    - simplify_if_no_alnum
    argTypes:
    - xdfenv_t*
    - xdmerge_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 494
    functionName: xdl_simplify_non_conflicts
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - lines_contain_alnum
    - xdl_merge_two_conflicts
    linkageType: ''
    returnType: int
    signature: "int xdl_simplify_non_conflicts(xdfenv_t *xe1, xdmerge_t *m,\n\t\t\t\t
      \     int simplify_if_no_alnum)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xdl_append_merge
      Src: /src/git/xdiff/xmerge.c:555,1
    - Dst: xdl_cleanup_merge
      Src: /src/git/xdiff/xmerge.c:557,1
    - Dst: xdl_append_merge
      Src: /src/git/xdiff/xmerge.c:570,1
    - Dst: xdl_cleanup_merge
      Src: /src/git/xdiff/xmerge.c:572,1
    - Dst: xdl_merge_cmp_lines
      Src: /src/git/xdiff/xmerge.c:581,1
    - Dst: xdl_append_merge
      Src: /src/git/xdiff/xmerge.c:605,1
    - Dst: xdl_cleanup_merge
      Src: /src/git/xdiff/xmerge.c:607,1
    - Dst: xdl_append_merge
      Src: /src/git/xdiff/xmerge.c:629,1
    - Dst: xdl_cleanup_merge
      Src: /src/git/xdiff/xmerge.c:631,1
    - Dst: xdl_append_merge
      Src: /src/git/xdiff/xmerge.c:645,1
    - Dst: xdl_cleanup_merge
      Src: /src/git/xdiff/xmerge.c:647,1
    - Dst: xdl_refine_zdiff3_conflicts
      Src: /src/git/xdiff/xmerge.c:656,1
    - Dst: xdl_refine_conflicts
      Src: /src/git/xdiff/xmerge.c:658,1
    - Dst: xdl_simplify_non_conflicts
      Src: /src/git/xdiff/xmerge.c:659,1
    - Dst: xdl_cleanup_merge
      Src: /src/git/xdiff/xmerge.c:661,1
    - Dst: xdl_fill_merge_buffer
      Src: /src/git/xdiff/xmerge.c:667,1
    - Dst: xdl_malloc
      Src: /src/git/xdiff/xmerge.c:671,1
    - Dst: xdl_cleanup_merge
      Src: /src/git/xdiff/xmerge.c:673,1
    - Dst: xdl_fill_merge_buffer
      Src: /src/git/xdiff/xmerge.c:677,1
    - Dst: xdl_cleanup_merge
      Src: /src/git/xdiff/xmerge.c:681,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 115
    argCount: 6
    argNames:
    - xe1
    - xscr1
    - xe2
    - xscr2
    - xmp
    - result
    argTypes:
    - xdfenv_t*
    - xdchange_t*
    - xdfenv_t*
    - xdchange_t*
    - xmparam_t*
    - mmbuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 505
    functionDepth: 4
    functionLinenumber: 505
    functionLinenumberEnd: 682
    functionName: xdl_do_merge
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 0
    functionsReached:
    - xdl_merge_cmp_lines
    - xdl_malloc
    - xdl_cleanup_merge
    - xdl_append_merge
    - xdl_simplify_non_conflicts
    - xdl_refine_conflicts
    - xdl_refine_zdiff3_conflicts
    - xdl_fill_merge_buffer
    linkageType: ''
    returnType: int
    signature: "int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1,\n\t\txdfenv_t *xe2,
      xdchange_t *xscr2,\n\t\txmparam_t const *xmp, mmbuffer_t *result)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xdl_do_diff
      Src: /src/git/xdiff/xmerge.c:695,1
    - Dst: xdl_do_diff
      Src: /src/git/xdiff/xmerge.c:698,1
    - Dst: xdl_change_compact
      Src: /src/git/xdiff/xmerge.c:701,1
    - Dst: xdl_change_compact
      Src: /src/git/xdiff/xmerge.c:702,1
    - Dst: xdl_build_script
      Src: /src/git/xdiff/xmerge.c:703,1
    - Dst: xdl_change_compact
      Src: /src/git/xdiff/xmerge.c:706,1
    - Dst: xdl_change_compact
      Src: /src/git/xdiff/xmerge.c:707,1
    - Dst: xdl_build_script
      Src: /src/git/xdiff/xmerge.c:708,1
    - Dst: xdl_malloc
      Src: /src/git/xdiff/xmerge.c:712,1
    - Dst: memcpy
      Src: /src/git/xdiff/xmerge.c:716,1
    - Dst: xdl_malloc
      Src: /src/git/xdiff/xmerge.c:719,1
    - Dst: memcpy
      Src: /src/git/xdiff/xmerge.c:723,1
    - Dst: xdl_do_merge
      Src: /src/git/xdiff/xmerge.c:726,1
    - Dst: xdl_free_script
      Src: /src/git/xdiff/xmerge.c:731,1
    - Dst: xdl_free_script
      Src: /src/git/xdiff/xmerge.c:732,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xmerge.c:734,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xmerge.c:736,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 5
    argNames:
    - orig
    - mf1
    - mf2
    - xmp
    - result
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - mmfile_t*
    - xmparam_t*
    - mmbuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 684
    functionDepth: 5
    functionLinenumber: 684
    functionLinenumberEnd: 739
    functionName: xdl_merge
    functionSourceFile: /src/git/xdiff/xmerge.c
    functionUses: 2
    functionsReached:
    - xdl_change_compact
    - xdl_free_script
    - memcpy
    - xdl_do_diff
    - xdl_do_merge
    - xdl_malloc
    - xdl_free_env
    - xdl_build_script
    linkageType: ''
    returnType: int
    signature: "int xdl_merge(mmfile_t *orig, mmfile_t *mf1, mmfile_t *mf2,\n\t\txmparam_t
      const *xmp, mmbuffer_t *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: LINE_END
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LINE_END(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: LINE_END_PTR
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LINE_END_PTR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: LINE_MAP
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LINE_MAP(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - index
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: NEXT_PTR
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_PTR(index, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - index
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: CNT
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CNT(index, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - env
    - ','
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: REC
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REC(env, s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - xrecord_t*
    - xrecord_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: cmp_recs
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_recs(xrecord_t *r1, xrecord_t *r2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - s1
    - ','
    - l1
    - ','
    - s2
    - ','
    - l2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: CMP
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP(i, s1, l1, s2, l2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - index
    - ','
    - side
    - ','
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: TABLE_HASH
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_HASH(index, side, line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LINE_END
      Src: /src/git/xdiff/xhistogram.c:109,1
    - Dst: TABLE_HASH
      Src: /src/git/xdiff/xhistogram.c:110,1
    - Dst: CMP
      Src: /src/git/xdiff/xhistogram.c:116,1
    - Dst: NEXT_PTR
      Src: /src/git/xdiff/xhistogram.c:122,1
    - Dst: XDL_MIN
      Src: /src/git/xdiff/xhistogram.c:125,1
    - Dst: LINE_MAP
      Src: /src/git/xdiff/xhistogram.c:126,1
    - Dst: xdl_cha_alloc
      Src: /src/git/xdiff/xhistogram.c:141,1
    - Dst: LINE_MAP
      Src: /src/git/xdiff/xhistogram.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - index
    - line1
    - count1
    argTypes:
    - struct histindex*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 154
    functionName: scanA
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached:
    - TABLE_HASH
    - CMP
    - XDL_MIN
    - xdl_cha_alloc
    - LINE_END
    - LINE_MAP
    - NEXT_PTR
    linkageType: ''
    returnType: int
    signature: int scanA(struct histindex *index, int line1, int count1)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_HASH
      Src: /src/git/xdiff/xhistogram.c:160,1
    - Dst: CMP
      Src: /src/git/xdiff/xhistogram.c:167,1
    - Dst: CMP
      Src: /src/git/xdiff/xhistogram.c:172,1
    - Dst: NEXT_PTR
      Src: /src/git/xdiff/xhistogram.c:178,1
    - Dst: CMP
      Src: /src/git/xdiff/xhistogram.c:185,1
    - Dst: XDL_MIN
      Src: /src/git/xdiff/xhistogram.c:189,1
    - Dst: CNT
      Src: /src/git/xdiff/xhistogram.c:189,1
    - Dst: LINE_END
      Src: /src/git/xdiff/xhistogram.c:191,1
    - Dst: LINE_END
      Src: /src/git/xdiff/xhistogram.c:191,1
    - Dst: CMP
      Src: /src/git/xdiff/xhistogram.c:192,1
    - Dst: XDL_MIN
      Src: /src/git/xdiff/xhistogram.c:196,1
    - Dst: CNT
      Src: /src/git/xdiff/xhistogram.c:196,1
    - Dst: NEXT_PTR
      Src: /src/git/xdiff/xhistogram.c:213,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 54
    argCount: 7
    argNames:
    - index
    - lcs
    - b_ptr
    - line1
    - count1
    - line2
    - count2
    argTypes:
    - struct histindex*
    - struct region*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 227
    functionName: try_lcs
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached:
    - TABLE_HASH
    - CNT
    - CMP
    - XDL_MIN
    - LINE_END
    - NEXT_PTR
    linkageType: ''
    returnType: int
    signature: "int try_lcs(struct histindex *index, struct region *lcs, int b_ptr,\n\tint
      line1, int count1, int line2, int count2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/xdiff/xhistogram.c:234,1
    - Dst: xdl_fall_back_diff
      Src: /src/git/xdiff/xhistogram.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - xpp
    - env
    - line1
    - count1
    - line2
    - count2
    argTypes:
    - xpparam_t*
    - xdfenv_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: fall_back_to_classic_diff
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached:
    - memset
    - xdl_fall_back_diff
    linkageType: ''
    returnType: int
    signature: "int fall_back_to_classic_diff(xpparam_t const *xpp, xdfenv_t *env,\n\t\tint
      line1, int count1, int line2, int count2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_free
      Src: /src/git/xdiff/xhistogram.c:243,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xhistogram.c:244,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xhistogram.c:245,1
    - Dst: xdl_cha_free
      Src: /src/git/xdiff/xhistogram.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - struct histindex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: free_index
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached:
    - xdl_cha_free
    - xdl_free
    linkageType: ''
    returnType: void
    signature: void free_index(struct histindex *index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/xdiff/xhistogram.c:257,1
    - Dst: xdl_hashbits
      Src: /src/git/xdiff/xhistogram.c:267,1
    - Dst: XDL_CALLOC_ARRAY
      Src: /src/git/xdiff/xhistogram.c:269,1
    - Dst: XDL_CALLOC_ARRAY
      Src: /src/git/xdiff/xhistogram.c:273,1
    - Dst: XDL_CALLOC_ARRAY
      Src: /src/git/xdiff/xhistogram.c:276,1
    - Dst: xdl_cha_init
      Src: /src/git/xdiff/xhistogram.c:280,1
    - Dst: scanA
      Src: /src/git/xdiff/xhistogram.c:286,1
    - Dst: LINE_END
      Src: /src/git/xdiff/xhistogram.c:291,1
    - Dst: try_lcs
      Src: /src/git/xdiff/xhistogram.c:292,1
    - Dst: free_index
      Src: /src/git/xdiff/xhistogram.c:300,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 7
    argNames:
    - xpp
    - env
    - lcs
    - line1
    - count1
    - line2
    - count2
    argTypes:
    - xpparam_t*
    - xdfenv_t*
    - struct region*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 302
    functionName: find_lcs
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached:
    - scanA
    - memset
    - XDL_CALLOC_ARRAY
    - LINE_END
    - free_index
    - xdl_cha_init
    - try_lcs
    - xdl_hashbits
    linkageType: ''
    returnType: int
    signature: "int find_lcs(xpparam_t const *xpp, xdfenv_t *env,\n\t\t    struct
      region *lcs,\n\t\t    int line1, int count1, int line2, int count2)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LINE_END
      Src: /src/git/xdiff/xhistogram.c:316,1
    - Dst: memset
      Src: /src/git/xdiff/xhistogram.c:329,1
    - Dst: find_lcs
      Src: /src/git/xdiff/xhistogram.c:330,1
    - Dst: fall_back_to_classic_diff
      Src: /src/git/xdiff/xhistogram.c:334,1
    - Dst: histogram_diff
      Src: /src/git/xdiff/xhistogram.c:343,1
    - Dst: LINE_END
      Src: /src/git/xdiff/xhistogram.c:354,1
    - Dst: LINE_END
      Src: /src/git/xdiff/xhistogram.c:356,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 6
    argNames:
    - xpp
    - env
    - line1
    - count1
    - line2
    - count2
    argTypes:
    - xpparam_t*
    - xdfenv_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 363
    functionName: histogram_diff
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 1
    functionsReached:
    - memset
    - LINE_END
    - find_lcs
    - histogram_diff
    - fall_back_to_classic_diff
    linkageType: ''
    returnType: int
    signature: "int histogram_diff(xpparam_t const *xpp, xdfenv_t *env,\n\tint line1,
      int count1, int line2, int count2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: histogram_diff
      Src: /src/git/xdiff/xhistogram.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xpp
    - env
    argTypes:
    - xpparam_t*
    - xdfenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: xdl_do_histogram_diff
    functionSourceFile: /src/git/xdiff/xhistogram.c
    functionUses: 0
    functionsReached:
    - histogram_diff
    linkageType: ''
    returnType: int
    signature: int xdl_do_histogram_diff(xpparam_t const *xpp, xdfenv_t *env)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xdl_hash_record_with_whitespace
      Src: /src/git/xdiff/xutils.h:42,1
    - Dst: xdl_hash_record_verbatim
      Src: /src/git/xdiff/xutils.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - data
    - top
    - flags
    argTypes:
    - uint8_t**
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: xdl_hash_record
    functionSourceFile: /src/git/xdiff/xutils.h
    functionUses: 1
    functionsReached:
    - xdl_hash_record_verbatim
    - xdl_hash_record_with_whitespace
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xdl_hash_record(uint8_t const **data, uint8_t const *top,
      uint64_t flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xdl_emit_diffrec
      Src: /src/git/xdiff/xemit.c:30,1
    - Dst: strlen
      Src: /src/git/xdiff/xemit.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - xdf
    - ri
    - pre
    - ecb
    argTypes:
    - xdfile_t*
    - long
    - char*
    - xdemitcb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: xdl_emit_record
    functionSourceFile: /src/git/xdiff/xemit.c
    functionUses: 0
    functionsReached:
    - xdl_emit_diffrec
    - strlen
    linkageType: ''
    returnType: int
    signature: int xdl_emit_record(xdfile_t *xdf, long ri, char const *pre, xdemitcb_t
      *ecb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signed_add_overflows
      Src: /src/git/xdiff/xemit.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: saturating_add
    functionSourceFile: /src/git/xdiff/xemit.c
    functionUses: 0
    functionsReached:
    - signed_add_overflows
    linkageType: ''
    returnType: long
    signature: long saturating_add(long a, long b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/xdiff/xemit.c:54,1
    - Dst: BUG
      Src: /src/git/xdiff/xemit.c:56,1
    - Dst: saturating_add
      Src: /src/git/xdiff/xemit.c:58,1
    - Dst: saturating_add
      Src: /src/git/xdiff/xemit.c:58,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 2
    argNames:
    - xscr
    - xecfg
    argTypes:
    - xdchange_t**
    - xdemitconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 99
    functionName: xdl_get_hunk
    functionSourceFile: /src/git/xdiff/xemit.c
    functionUses: 0
    functionsReached:
    - saturating_add
    - BUG
    linkageType: ''
    returnType: xdchange_t
    signature: xdchange_t *xdl_get_hunk(xdchange_t **xscr, xdemitconf_t const *xecfg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/git/xdiff/xemit.c:105,1
    - Dst: isspace
      Src: /src/git/xdiff/xemit.c:110,1
    - Dst: memcpy
      Src: /src/git/xdiff/xemit.c:112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - rec
    - len
    - buf
    - sz
    argTypes:
    - char*
    - long
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: def_ff
    functionSourceFile: /src/git/xdiff/xemit.c
    functionUses: 0
    functionsReached:
    - isspace
    - isalpha
    - memcpy
    linkageType: ''
    returnType: long
    signature: long def_ff(const char *rec, long len, char *buf, long sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: def_ff
      Src: /src/git/xdiff/xemit.c:124,1
    - Dst: xdemitconf_t*::find_func
      Src: /src/git/xdiff/xemit.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - xdf
    - xecfg
    - ri
    - buf
    - sz
    argTypes:
    - xdfile_t*
    - xdemitconf_t*
    - long
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: match_func_rec
    functionSourceFile: /src/git/xdiff/xemit.c
    functionUses: 0
    functionsReached:
    - def_ff
    - xdemitconf_t*::find_func
    linkageType: ''
    returnType: long
    signature: "long match_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long
      ri,\n\t\t\t   char *buf, long sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_func_rec
      Src: /src/git/xdiff/xemit.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xdf
    - xecfg
    - ri
    argTypes:
    - xdfile_t*
    - xdemitconf_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: is_func_rec
    functionSourceFile: /src/git/xdiff/xemit.c
    functionUses: 0
    functionsReached:
    - match_func_rec
    linkageType: ''
    returnType: int
    signature: int is_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: match_func_rec
      Src: /src/git/xdiff/xemit.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - xe
    - xecfg
    - func_line
    - start
    - limit
    argTypes:
    - xdfenv_t*
    - xdemitconf_t*
    - struct func_line*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 157
    functionName: get_func_line
    functionSourceFile: /src/git/xdiff/xemit.c
    functionUses: 0
    functionsReached:
    - match_func_rec
    linkageType: ''
    returnType: long
    signature: "long get_func_line(xdfenv_t *xe, xdemitconf_t const *xecfg,\n\t\t\t
      \ struct func_line *func_line, long start, long limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xemit.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - xdf
    - ri
    argTypes:
    - xdfile_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: is_empty_rec
    functionSourceFile: /src/git/xdiff/xemit.c
    functionUses: 0
    functionsReached:
    - XDL_ISSPACE
    linkageType: ''
    returnType: int
    signature: int is_empty_rec(xdfile_t *xdf, long ri)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xdl_get_hunk
      Src: /src/git/xdiff/xemit.c:178,1
    - Dst: XDL_MAX
      Src: /src/git/xdiff/xemit.c:183,1
    - Dst: XDL_MAX
      Src: /src/git/xdiff/xemit.c:184,1
    - Dst: is_func_rec
      Src: /src/git/xdiff/xemit.c:198,1
    - Dst: get_func_line
      Src: /src/git/xdiff/xemit.c:210,1
    - Dst: is_empty_rec
      Src: /src/git/xdiff/xemit.c:211,1
    - Dst: is_func_rec
      Src: /src/git/xdiff/xemit.c:212,1
    - Dst: XDL_MAX
      Src: /src/git/xdiff/xemit.c:217,1
    - Dst: XDL_MIN
      Src: /src/git/xdiff/xemit.c:239,1
    - Dst: XDL_MIN
      Src: /src/git/xdiff/xemit.c:240,1
    - Dst: get_func_line
      Src: /src/git/xdiff/xemit.c:246,1
    - Dst: is_empty_rec
      Src: /src/git/xdiff/xemit.c:249,1
    - Dst: XDL_MIN
      Src: /src/git/xdiff/xemit.c:254,1
    - Dst: XDL_MIN
      Src: /src/git/xdiff/xemit.c:264,1
    - Dst: get_func_line
      Src: /src/git/xdiff/xemit.c:267,1
    - Dst: get_func_line
      Src: /src/git/xdiff/xemit.c:279,1
    - Dst: xdl_emit_hunk_hdr
      Src: /src/git/xdiff/xemit.c:284,1
    - Dst: xdl_emit_record
      Src: /src/git/xdiff/xemit.c:292,1
    - Dst: xdl_emit_record
      Src: /src/git/xdiff/xemit.c:300,1
    - Dst: xdl_emit_record
      Src: /src/git/xdiff/xemit.c:307,1
    - Dst: xdl_emit_record
      Src: /src/git/xdiff/xemit.c:314,1
    - Dst: xdl_emit_record
      Src: /src/git/xdiff/xemit.c:327,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 89
    argCount: 4
    argNames:
    - xe
    - xscr
    - ecb
    - xecfg
    argTypes:
    - xdfenv_t*
    - xdchange_t*
    - xdemitcb_t*
    - xdemitconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 332
    functionName: xdl_emit_diff
    functionSourceFile: /src/git/xdiff/xemit.c
    functionUses: 0
    functionsReached:
    - is_func_rec
    - xdl_get_hunk
    - is_empty_rec
    - XDL_MIN
    - xdl_emit_hunk_hdr
    - XDL_MAX
    - get_func_line
    - xdl_emit_record
    linkageType: ''
    returnType: int
    signature: "int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,\n\t\t
      \ xdemitconf_t const *xecfg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/xdiff/xpatience.c:75,1
    - Dst: strlen
      Src: /src/git/xdiff/xpatience.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - xpp
    - line
    argTypes:
    - xpparam_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: is_anchor
    functionSourceFile: /src/git/xdiff/xpatience.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int is_anchor(xpparam_t const *xpp, const char *line)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - line
    - map
    - pass
    argTypes:
    - int
    - struct hashmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 125
    functionName: insert_record
    functionSourceFile: /src/git/xdiff/xpatience.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void insert_record(int line, struct hashmap *map, int pass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XDL_CALLOC_ARRAY
      Src: /src/git/xdiff/xpatience.c:143,1
    - Dst: insert_record
      Src: /src/git/xdiff/xpatience.c:148,1
    - Dst: insert_record
      Src: /src/git/xdiff/xpatience.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - xpp
    - env
    - result
    - line1
    - count1
    - line2
    - count2
    argTypes:
    - xpparam_t*
    - xdfenv_t*
    - struct hashmap*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 155
    functionName: fill_hashmap
    functionSourceFile: /src/git/xdiff/xpatience.c
    functionUses: 0
    functionsReached:
    - XDL_CALLOC_ARRAY
    - insert_record
    linkageType: ''
    returnType: int
    signature: "int fill_hashmap(xpparam_t const *xpp, xdfenv_t *env,\n\t\tstruct
      hashmap *result,\n\t\tint line1, int count1, int line2, int count2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sequence
    - longest
    - entry
    argTypes:
    - struct entry**
    - int
    - struct entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 176
    functionName: binary_search
    functionSourceFile: /src/git/xdiff/xpatience.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int binary_search(struct entry **sequence, int longest,\n\t\tstruct
      entry *entry)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XDL_ALLOC_ARRAY
      Src: /src/git/xdiff/xpatience.c:202,1
    - Dst: binary_search
      Src: /src/git/xdiff/xpatience.c:211,1
    - Dst: is_anchor
      Src: /src/git/xdiff/xpatience.c:217,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xpatience.c:228,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xpatience.c:240,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - map
    - res
    argTypes:
    - struct hashmap*
    - struct entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 242
    functionName: find_longest_common_sequence
    functionSourceFile: /src/git/xdiff/xpatience.c
    functionUses: 0
    functionsReached:
    - binary_search
    - xdl_free
    - XDL_ALLOC_ARRAY
    - is_anchor
    linkageType: ''
    returnType: int
    signature: int find_longest_common_sequence(struct hashmap *map, struct entry
      **res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - line1
    - line2
    argTypes:
    - struct hashmap*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: match
    functionSourceFile: /src/git/xdiff/xpatience.c
    functionUses: 74
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int match(struct hashmap *map, int line1, int line2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: match
      Src: /src/git/xdiff/xpatience.c:266,1
    - Dst: match
      Src: /src/git/xdiff/xpatience.c:275,1
    - Dst: patience_diff
      Src: /src/git/xdiff/xpatience.c:282,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 6
    argNames:
    - map
    - first
    - line1
    - count1
    - line2
    - count2
    argTypes:
    - struct hashmap*
    - struct entry*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 301
    functionName: walk_common_sequence
    functionSourceFile: /src/git/xdiff/xpatience.c
    functionUses: 0
    functionsReached:
    - patience_diff
    - match
    linkageType: ''
    returnType: int
    signature: "int walk_common_sequence(struct hashmap *map, struct entry *first,\n\t\tint
      line1, int count1, int line2, int count2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/xdiff/xpatience.c:308,1
    - Dst: xdl_fall_back_diff
      Src: /src/git/xdiff/xpatience.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - map
    - line1
    - count1
    - line2
    - count2
    argTypes:
    - struct hashmap*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: fall_back_to_classic_diff
    functionSourceFile: /src/git/xdiff/xpatience.c
    functionUses: 1
    functionsReached:
    - memset
    - xdl_fall_back_diff
    linkageType: ''
    returnType: int
    signature: "int fall_back_to_classic_diff(struct hashmap *map,\n\t\tint line1,
      int count1, int line2, int count2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/xdiff/xpatience.c:339,1
    - Dst: fill_hashmap
      Src: /src/git/xdiff/xpatience.c:340,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xpatience.c:350,1
    - Dst: find_longest_common_sequence
      Src: /src/git/xdiff/xpatience.c:354,1
    - Dst: walk_common_sequence
      Src: /src/git/xdiff/xpatience.c:358,1
    - Dst: fall_back_to_classic_diff
      Src: /src/git/xdiff/xpatience.c:361,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xpatience.c:364,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 6
    argNames:
    - xpp
    - env
    - line1
    - count1
    - line2
    - count2
    argTypes:
    - xpparam_t*
    - xdfenv_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 366
    functionName: patience_diff
    functionSourceFile: /src/git/xdiff/xpatience.c
    functionUses: 1
    functionsReached:
    - memset
    - fill_hashmap
    - xdl_free
    - find_longest_common_sequence
    - walk_common_sequence
    - fall_back_to_classic_diff
    linkageType: ''
    returnType: int
    signature: "int patience_diff(xpparam_t const *xpp, xdfenv_t *env,\n\t\tint line1,
      int count1, int line2, int count2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: patience_diff
      Src: /src/git/xdiff/xpatience.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xpp
    - env
    argTypes:
    - xpparam_t*
    - xdfenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 4
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: xdl_do_patience_diff
    functionSourceFile: /src/git/xdiff/xpatience.c
    functionUses: 0
    functionsReached:
    - patience_diff
    linkageType: ''
    returnType: int
    signature: int xdl_do_patience_diff(xpparam_t const *xpp, xdfenv_t *env)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xdl_hashbits
      Src: /src/git/xdiff/xprepare.c:62,1
    - Dst: xdl_cha_init
      Src: /src/git/xdiff/xprepare.c:65,1
    - Dst: XDL_CALLOC_ARRAY
      Src: /src/git/xdiff/xprepare.c:69,1
    - Dst: xdl_cha_free
      Src: /src/git/xdiff/xprepare.c:71,1
    - Dst: XDL_ALLOC_ARRAY
      Src: /src/git/xdiff/xprepare.c:76,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xprepare.c:78,1
    - Dst: xdl_cha_free
      Src: /src/git/xdiff/xprepare.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - cf
    - size
    - flags
    argTypes:
    - xdlclassifier_t*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 86
    functionName: xdl_init_classifier
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_free
    - XDL_CALLOC_ARRAY
    - xdl_cha_init
    - xdl_hashbits
    - xdl_cha_free
    - XDL_ALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: int xdl_init_classifier(xdlclassifier_t *cf, long size, long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_free
      Src: /src/git/xdiff/xprepare.c:91,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xprepare.c:92,1
    - Dst: xdl_cha_free
      Src: /src/git/xdiff/xprepare.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cf
    argTypes:
    - xdlclassifier_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: xdl_free_classifier
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_cha_free
    - xdl_free
    linkageType: ''
    returnType: void
    signature: void xdl_free_classifier(xdlclassifier_t *cf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XDL_HASHLONG
      Src: /src/git/xdiff/xprepare.c:102,1
    - Dst: xdl_recmatch
      Src: /src/git/xdiff/xprepare.c:105,1
    - Dst: xdl_cha_alloc
      Src: /src/git/xdiff/xprepare.c:110,1
    - Dst: XDL_ALLOC_GROW
      Src: /src/git/xdiff/xprepare.c:115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - pass
    - cf
    - rec
    - line_hash
    argTypes:
    - unsigned int
    - xdlclassifier_t*
    - xrecord_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 131
    functionName: xdl_classify_record
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_cha_alloc
    - XDL_ALLOC_GROW
    - xdl_recmatch
    - XDL_HASHLONG
    linkageType: ''
    returnType: int
    signature: "int xdl_classify_record(unsigned int pass, xdlclassifier_t *cf, xrecord_t
      *rec,\n\t\t\t       uint64_t line_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_free
      Src: /src/git/xdiff/xprepare.c:136,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xprepare.c:137,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xprepare.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - xdf
    argTypes:
    - xdfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: xdl_free_ctx
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_free
    linkageType: ''
    returnType: void
    signature: void xdl_free_ctx(xdfile_t *xdf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XDL_ALLOC_ARRAY
      Src: /src/git/xdiff/xprepare.c:153,1
    - Dst: xdl_mmfile_first
      Src: /src/git/xdiff/xprepare.c:157,1
    - Dst: xdl_hash_record
      Src: /src/git/xdiff/xprepare.c:160,1
    - Dst: XDL_ALLOC_GROW
      Src: /src/git/xdiff/xprepare.c:161,1
    - Dst: xdl_classify_record
      Src: /src/git/xdiff/xprepare.c:166,1
    - Dst: XDL_CALLOC_ARRAY
      Src: /src/git/xdiff/xprepare.c:171,1
    - Dst: xdl_free_ctx
      Src: /src/git/xdiff/xprepare.c:182,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 6
    argNames:
    - pass
    - mf
    - narec
    - xpp
    - cf
    - xdf
    argTypes:
    - unsigned int
    - mmfile_t*
    - long
    - xpparam_t*
    - xdlclassifier_t*
    - xdfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 184
    functionName: xdl_prepare_ctx
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_hash_record
    - xdl_free_ctx
    - XDL_CALLOC_ARRAY
    - XDL_ALLOC_GROW
    - xdl_mmfile_first
    - xdl_classify_record
    - XDL_ALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int xdl_prepare_ctx(unsigned int pass, mmfile_t *mf, long narec, xpparam_t
      const *xpp,\n\t\t\t   xdlclassifier_t *cf, xdfile_t *xdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_free_ctx
      Src: /src/git/xdiff/xprepare.c:189,1
    - Dst: xdl_free_ctx
      Src: /src/git/xdiff/xprepare.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xe
    argTypes:
    - xdfenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: xdl_free_env
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 3
    functionsReached:
    - xdl_free_ctx
    linkageType: ''
    returnType: void
    signature: void xdl_free_env(xdfenv_t *xe)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/xdiff/xprepare.c:225,1
    - Dst: BUG
      Src: /src/git/xdiff/xprepare.c:244,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - action
    - i
    - len
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 257
    functionName: xdl_clean_mmatch
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: bool
    signature: bool xdl_clean_mmatch(uint8_t const *action, ptrdiff_t i, ptrdiff_t
      len)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: XDL_CALLOC_ARRAY
      Src: /src/git/xdiff/xprepare.c:279,1
    - Dst: XDL_CALLOC_ARRAY
      Src: /src/git/xdiff/xprepare.c:280,1
    - Dst: XDL_ALLOC_ARRAY
      Src: /src/git/xdiff/xprepare.c:281,1
    - Dst: XDL_ALLOC_ARRAY
      Src: /src/git/xdiff/xprepare.c:282,1
    - Dst: xdl_bogosqrt
      Src: /src/git/xdiff/xprepare.c:295,1
    - Dst: xdl_bogosqrt
      Src: /src/git/xdiff/xprepare.c:315,1
    - Dst: xdl_clean_mmatch
      Src: /src/git/xdiff/xprepare.c:340,1
    - Dst: BUG
      Src: /src/git/xdiff/xprepare.c:352,1
    - Dst: xdl_clean_mmatch
      Src: /src/git/xdiff/xprepare.c:361,1
    - Dst: BUG
      Src: /src/git/xdiff/xprepare.c:373,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xprepare.c:378,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xprepare.c:379,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 3
    argNames:
    - cf
    - xdf1
    - xdf2
    argTypes:
    - xdlclassifier_t*
    - xdfile_t*
    - xdfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 382
    functionName: xdl_cleanup_records
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_free
    - XDL_CALLOC_ARRAY
    - xdl_clean_mmatch
    - xdl_bogosqrt
    - BUG
    - XDL_ALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: int xdl_cleanup_records(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t
      *xdf2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XDL_MIN
      Src: /src/git/xdiff/xprepare.c:394,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - xdf1
    - xdf2
    argTypes:
    - xdfile_t*
    - xdfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 411
    functionName: xdl_trim_ends
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - XDL_MIN
    linkageType: ''
    returnType: int
    signature: int xdl_trim_ends(xdfile_t *xdf1, xdfile_t *xdf2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xdl_trim_ends
      Src: /src/git/xdiff/xprepare.c:416,1
    - Dst: xdl_cleanup_records
      Src: /src/git/xdiff/xprepare.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - cf
    - xdf1
    - xdf2
    argTypes:
    - xdlclassifier_t*
    - xdfile_t*
    - xdfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 423
    functionName: xdl_optimize_ctxs
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_cleanup_records
    - xdl_trim_ends
    linkageType: ''
    returnType: int
    signature: int xdl_optimize_ctxs(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t
      *xdf2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/xdiff/xprepare.c:430,1
    - Dst: XDF_DIFF_ALG
      Src: /src/git/xdiff/xprepare.c:439,1
    - Dst: xdl_guess_lines
      Src: /src/git/xdiff/xprepare.c:442,1
    - Dst: xdl_guess_lines
      Src: /src/git/xdiff/xprepare.c:443,1
    - Dst: xdl_init_classifier
      Src: /src/git/xdiff/xprepare.c:445,1
    - Dst: xdl_prepare_ctx
      Src: /src/git/xdiff/xprepare.c:448,1
    - Dst: xdl_free_classifier
      Src: /src/git/xdiff/xprepare.c:450,1
    - Dst: xdl_prepare_ctx
      Src: /src/git/xdiff/xprepare.c:453,1
    - Dst: xdl_free_ctx
      Src: /src/git/xdiff/xprepare.c:455,1
    - Dst: xdl_free_classifier
      Src: /src/git/xdiff/xprepare.c:456,1
    - Dst: XDF_DIFF_ALG
      Src: /src/git/xdiff/xprepare.c:460,1
    - Dst: XDF_DIFF_ALG
      Src: /src/git/xdiff/xprepare.c:461,1
    - Dst: xdl_optimize_ctxs
      Src: /src/git/xdiff/xprepare.c:462,1
    - Dst: xdl_free_ctx
      Src: /src/git/xdiff/xprepare.c:464,1
    - Dst: xdl_free_ctx
      Src: /src/git/xdiff/xprepare.c:465,1
    - Dst: xdl_free_classifier
      Src: /src/git/xdiff/xprepare.c:466,1
    - Dst: xdl_free_classifier
      Src: /src/git/xdiff/xprepare.c:470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - mf1
    - mf2
    - xpp
    - xe
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - xpparam_t*
    - xdfenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 425
    functionDepth: 4
    functionLinenumber: 425
    functionLinenumberEnd: 473
    functionName: xdl_prepare_env
    functionSourceFile: /src/git/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_init_classifier
    - xdl_guess_lines
    - memset
    - xdl_free_ctx
    - XDF_DIFF_ALG
    - xdl_free_classifier
    - xdl_optimize_ctxs
    - xdl_prepare_ctx
    linkageType: ''
    returnType: int
    signature: "int xdl_prepare_env(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const
      *xpp,\n\t\t    xdfenv_t *xe)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: XDF_DIFF_ALG
    functionSourceFile: /src/git/xdiff/xdiff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDF_DIFF_ALG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: xdl_malloc
    functionSourceFile: /src/git/xdiff/xdiff.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xdl_malloc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: xdl_calloc
    functionSourceFile: /src/git/xdiff/xdiff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xdl_calloc(n, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: xdl_free
    functionSourceFile: /src/git/xdiff/xdiff.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xdl_free(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: xdl_realloc
    functionSourceFile: /src/git/xdiff/xdiff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xdl_realloc(ptr,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xdf
    - index
    argTypes:
    - xdfile_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: get_hash
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_hash(xdfile_t *xdf, long index)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:95,1
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:95,1
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:132,1
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:132,1
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:167,1
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:167,1
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:191,1
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:191,1
    - Dst: XDL_MIN
      Src: /src/git/xdiff/xdiffi.c:217,1
    - Dst: XDL_MAX
      Src: /src/git/xdiff/xdiffi.c:231,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 137
    argCount: 11
    argNames:
    - xdf1
    - off1
    - lim1
    - xdf2
    - off2
    - lim2
    - kvdf
    - kvdb
    - need_min
    - spl
    - xenv
    argTypes:
    - xdfile_t*
    - long
    - long
    - xdfile_t*
    - long
    - long
    - long*
    - long*
    - int
    - xdpsplit_t*
    - xdalgoenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 257
    functionName: xdl_split
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - get_hash
    - XDL_MAX
    - XDL_MIN
    linkageType: ''
    returnType: long
    signature: "long xdl_split(xdfile_t *xdf1, long off1, long lim1,\n\t\t      xdfile_t
      *xdf2, long off2, long lim2,\n\t\t      long *kvdf, long *kvdb, int need_min,
      xdpsplit_t *spl,\n\t\t      xdalgoenv_t *xenv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:272,1
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:272,1
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:273,1
    - Dst: get_hash
      Src: /src/git/xdiff/xdiffi.c:273,1
    - Dst: xdl_split
      Src: /src/git/xdiff/xdiffi.c:292,1
    - Dst: xdl_recs_cmp
      Src: /src/git/xdiff/xdiffi.c:301,1
    - Dst: xdl_recs_cmp
      Src: /src/git/xdiff/xdiffi.c:303,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 10
    argNames:
    - xdf1
    - off1
    - lim1
    - xdf2
    - off2
    - lim2
    - kvdf
    - kvdb
    - need_min
    - xenv
    argTypes:
    - xdfile_t*
    - long
    - long
    - xdfile_t*
    - long
    - long
    - long*
    - long*
    - int
    - xdalgoenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 311
    functionName: xdl_recs_cmp
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 1
    functionsReached:
    - get_hash
    - xdl_recs_cmp
    - xdl_split
    linkageType: ''
    returnType: int
    signature: "int xdl_recs_cmp(xdfile_t *xdf1, long off1, long lim1,\n\t\t xdfile_t
      *xdf2, long off2, long lim2,\n\t\t long *kvdf, long *kvdb, int need_min, xdalgoenv_t
      *xenv)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xdl_prepare_env
      Src: /src/git/xdiff/xdiffi.c:321,1
    - Dst: XDF_DIFF_ALG
      Src: /src/git/xdiff/xdiffi.c:324,1
    - Dst: xdl_do_patience_diff
      Src: /src/git/xdiff/xdiffi.c:325,1
    - Dst: XDF_DIFF_ALG
      Src: /src/git/xdiff/xdiffi.c:329,1
    - Dst: xdl_do_histogram_diff
      Src: /src/git/xdiff/xdiffi.c:330,1
    - Dst: XDL_ALLOC_ARRAY
      Src: /src/git/xdiff/xdiffi.c:341,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xdiffi.c:343,1
    - Dst: xdl_bogosqrt
      Src: /src/git/xdiff/xdiffi.c:351,1
    - Dst: xdl_recs_cmp
      Src: /src/git/xdiff/xdiffi.c:357,1
    - Dst: xdl_free
      Src: /src/git/xdiff/xdiffi.c:360,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xdiffi.c:363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - mf1
    - mf2
    - xpp
    - xe
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - xpparam_t*
    - xdfenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 314
    functionDepth: 6
    functionLinenumber: 314
    functionLinenumberEnd: 366
    functionName: xdl_do_diff
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 3
    functionsReached:
    - xdl_free
    - XDL_ALLOC_ARRAY
    - XDF_DIFF_ALG
    - xdl_do_histogram_diff
    - xdl_bogosqrt
    - xdl_recs_cmp
    - xdl_do_patience_diff
    - xdl_free_env
    - xdl_prepare_env
    linkageType: ''
    returnType: int
    signature: "int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,\n\t\txdfenv_t
      *xe)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xdl_malloc
      Src: /src/git/xdiff/xdiffi.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - xscr
    - i1
    - i2
    - chg1
    - chg2
    argTypes:
    - xdchange_t*
    - long
    - long
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 383
    functionName: xdl_add_change
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - xdl_malloc
    linkageType: ''
    returnType: xdchange_t
    signature: xdchange_t *xdl_add_change(xdchange_t *xscr, long i1, long i2, long
      chg1, long chg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rec1
    - rec2
    argTypes:
    - xrecord_t*
    - xrecord_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: recs_match
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int recs_match(xrecord_t *rec1, xrecord_t *rec2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XDL_ISSPACE
      Src: /src/git/xdiff/xdiffi.c:411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - rec
    argTypes:
    - xrecord_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 425
    functionName: get_indent
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - XDL_ISSPACE
    linkageType: ''
    returnType: int
    signature: int get_indent(xrecord_t *rec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_indent
      Src: /src/git/xdiff/xdiffi.c:491,1
    - Dst: get_indent
      Src: /src/git/xdiff/xdiffi.c:497,1
    - Dst: get_indent
      Src: /src/git/xdiff/xdiffi.c:510,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - xdf
    - split
    - m
    argTypes:
    - xdfile_t*
    - long
    - struct split_measurement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 519
    functionName: measure_split
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - get_indent
    linkageType: ''
    returnType: void
    signature: "void measure_split(const xdfile_t *xdf, long split,\n\t\t\t  struct
      split_measurement *m)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - m
    - s
    argTypes:
    - struct split_measurement*
    - struct split_score*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 664
    functionName: score_add_split
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void score_add_split(const struct split_measurement *m, struct split_score
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - struct split_score*
    - struct split_score*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 673
    functionName: score_cmp
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int score_cmp(struct split_score *s1, struct split_score *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - xdf
    - g
    argTypes:
    - xdfile_t*
    - struct xdlgroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 712
    functionName: group_init
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void group_init(xdfile_t *xdf, struct xdlgroup *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - xdf
    - g
    argTypes:
    - xdfile_t*
    - struct xdlgroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 728
    functionName: group_next
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int group_next(xdfile_t *xdf, struct xdlgroup *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - xdf
    - g
    argTypes:
    - xdfile_t*
    - struct xdlgroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 744
    functionName: group_previous
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int group_previous(xdfile_t *xdf, struct xdlgroup *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recs_match
      Src: /src/git/xdiff/xdiffi.c:754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - xdf
    - g
    argTypes:
    - xdfile_t*
    - struct xdlgroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 765
    functionName: group_slide_down
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - recs_match
    linkageType: ''
    returnType: int
    signature: int group_slide_down(xdfile_t *xdf, struct xdlgroup *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recs_match
      Src: /src/git/xdiff/xdiffi.c:775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - xdf
    - g
    argTypes:
    - xdfile_t*
    - struct xdlgroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 786
    functionName: group_slide_up
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - recs_match
    linkageType: ''
    returnType: int
    signature: int group_slide_up(xdfile_t *xdf, struct xdlgroup *g)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: group_init
      Src: /src/git/xdiff/xdiffi.c:799,1
    - Dst: group_init
      Src: /src/git/xdiff/xdiffi.c:800,1
    - Dst: group_slide_up
      Src: /src/git/xdiff/xdiffi.c:828,1
    - Dst: group_previous
      Src: /src/git/xdiff/xdiffi.c:829,1
    - Dst: BUG
      Src: /src/git/xdiff/xdiffi.c:830,1
    - Dst: group_slide_down
      Src: /src/git/xdiff/xdiffi.c:843,1
    - Dst: group_next
      Src: /src/git/xdiff/xdiffi.c:845,1
    - Dst: BUG
      Src: /src/git/xdiff/xdiffi.c:846,1
    - Dst: group_slide_up
      Src: /src/git/xdiff/xdiffi.c:871,1
    - Dst: BUG
      Src: /src/git/xdiff/xdiffi.c:872,1
    - Dst: group_previous
      Src: /src/git/xdiff/xdiffi.c:873,1
    - Dst: BUG
      Src: /src/git/xdiff/xdiffi.c:874,1
    - Dst: measure_split
      Src: /src/git/xdiff/xdiffi.c:901,1
    - Dst: score_add_split
      Src: /src/git/xdiff/xdiffi.c:902,1
    - Dst: measure_split
      Src: /src/git/xdiff/xdiffi.c:903,1
    - Dst: score_add_split
      Src: /src/git/xdiff/xdiffi.c:904,1
    - Dst: score_cmp
      Src: /src/git/xdiff/xdiffi.c:906,1
    - Dst: group_slide_up
      Src: /src/git/xdiff/xdiffi.c:914,1
    - Dst: BUG
      Src: /src/git/xdiff/xdiffi.c:915,1
    - Dst: group_previous
      Src: /src/git/xdiff/xdiffi.c:916,1
    - Dst: BUG
      Src: /src/git/xdiff/xdiffi.c:917,1
    - Dst: XDF_DIFF_ALG
      Src: /src/git/xdiff/xdiffi.c:941,1
    - Dst: memset
      Src: /src/git/xdiff/xdiffi.c:947,1
    - Dst: xdl_fall_back_diff
      Src: /src/git/xdiff/xdiffi.c:953,1
    - Dst: group_next
      Src: /src/git/xdiff/xdiffi.c:962,1
    - Dst: group_next
      Src: /src/git/xdiff/xdiffi.c:964,1
    - Dst: BUG
      Src: /src/git/xdiff/xdiffi.c:965,1
    - Dst: group_next
      Src: /src/git/xdiff/xdiffi.c:968,1
    - Dst: BUG
      Src: /src/git/xdiff/xdiffi.c:969,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 79
    argCount: 3
    argNames:
    - xdf
    - xdfo
    - flags
    argTypes:
    - xdfile_t*
    - xdfile_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 972
    functionName: xdl_change_compact
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 2
    functionsReached:
    - memset
    - score_cmp
    - group_init
    - XDF_DIFF_ALG
    - group_previous
    - score_add_split
    - measure_split
    - group_next
    - group_slide_up
    - xdl_fall_back_diff
    - group_slide_down
    - BUG
    linkageType: ''
    returnType: int
    signature: int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xdl_add_change
      Src: /src/git/xdiff/xdiffi.c:988,1
    - Dst: xdl_free_script
      Src: /src/git/xdiff/xdiffi.c:989,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - xe
    - xscr
    argTypes:
    - xdfenv_t*
    - xdchange_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 998
    functionName: xdl_build_script
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 2
    functionsReached:
    - xdl_free_script
    - xdl_add_change
    linkageType: ''
    returnType: int
    signature: int xdl_build_script(xdfenv_t *xe, xdchange_t **xscr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_free
      Src: /src/git/xdiff/xdiffi.c:1006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xscr
    argTypes:
    - xdchange_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1008
    functionName: xdl_free_script
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 3
    functionsReached:
    - xdl_free
    linkageType: ''
    returnType: void
    signature: void xdl_free_script(xdchange_t *xscr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_blankline
      Src: /src/git/xdiff/xdiffi.c:1038,1
    - Dst: xdl_blankline
      Src: /src/git/xdiff/xdiffi.c:1042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - xscr
    - xe
    - flags
    argTypes:
    - xdchange_t*
    - xdfenv_t*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1046
    functionName: xdl_mark_ignorable_lines
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - xdl_blankline
    linkageType: ''
    returnType: void
    signature: void xdl_mark_ignorable_lines(xdchange_t *xscr, xdfenv_t *xe, long
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regexec_buf
      Src: /src/git/xdiff/xdiffi.c:1053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - rec
    - xpp
    argTypes:
    - xrecord_t*
    - xpparam_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1058
    functionName: record_matches_regex
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - regexec_buf
    linkageType: ''
    returnType: int
    signature: int record_matches_regex(xrecord_t *rec, xpparam_t const *xpp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: record_matches_regex
      Src: /src/git/xdiff/xdiffi.c:1078,1
    - Dst: record_matches_regex
      Src: /src/git/xdiff/xdiffi.c:1082,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - xscr
    - xe
    - xpp
    argTypes:
    - xdchange_t*
    - xdfenv_t*
    - xpparam_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1060
    functionDepth: 3
    functionLinenumber: 1060
    functionLinenumberEnd: 1086
    functionName: xdl_mark_ignorable_regex
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - record_matches_regex
    linkageType: ''
    returnType: void
    signature: "void xdl_mark_ignorable_regex(xdchange_t *xscr, const xdfenv_t *xe,\n\t\t\t\t
      \    xpparam_t const *xpp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xdl_do_diff
      Src: /src/git/xdiff/xdiffi.c:1094,1
    - Dst: xdl_change_compact
      Src: /src/git/xdiff/xdiffi.c:1098,1
    - Dst: xdl_change_compact
      Src: /src/git/xdiff/xdiffi.c:1099,1
    - Dst: xdl_build_script
      Src: /src/git/xdiff/xdiffi.c:1100,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xdiffi.c:1102,1
    - Dst: xdl_mark_ignorable_lines
      Src: /src/git/xdiff/xdiffi.c:1107,1
    - Dst: xdl_mark_ignorable_regex
      Src: /src/git/xdiff/xdiffi.c:1110,1
    - Dst: ef
      Src: /src/git/xdiff/xdiffi.c:1112,1
    - Dst: xdl_free_script
      Src: /src/git/xdiff/xdiffi.c:1114,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xdiffi.c:1115,1
    - Dst: xdl_free_script
      Src: /src/git/xdiff/xdiffi.c:1118,1
    - Dst: xdl_free_env
      Src: /src/git/xdiff/xdiffi.c:1120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - mf1
    - mf2
    - xpp
    - xecfg
    - ecb
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - xpparam_t*
    - xdemitconf_t*
    - xdemitcb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1088
    functionDepth: 7
    functionLinenumber: 1088
    functionLinenumberEnd: 1123
    functionName: xdl_diff
    functionSourceFile: /src/git/xdiff/xdiffi.c
    functionUses: 1
    functionsReached:
    - xdl_mark_ignorable_lines
    - xdl_change_compact
    - xdl_free_script
    - xdl_do_diff
    - ef
    - xdl_mark_ignorable_regex
    - xdl_free_env
    - xdl_build_script
    linkageType: ''
    returnType: int
    signature: "int xdl_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,\n\t
      \    xdemitconf_t const *xecfg, xdemitcb_t *ecb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/git/sha1/openssl.h:14,1
    - Dst: EVP_MD_CTX_new
      Src: /src/git/sha1/openssl.h:16,1
    - Dst: die
      Src: /src/git/sha1/openssl.h:18,1
    - Dst: EVP_DigestInit_ex
      Src: /src/git/sha1/openssl.h:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct openssl_SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: openssl_SHA1_Init
    functionSourceFile: /src/git/sha1/openssl.h
    functionUses: 0
    functionsReached:
    - EVP_DigestInit_ex
    - EVP_sha1
    - die
    - EVP_MD_CTX_new
    linkageType: ''
    returnType: void
    signature: void openssl_SHA1_Init(struct openssl_SHA1_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/git/sha1/openssl.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - struct openssl_SHA1_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: openssl_SHA1_Update
    functionSourceFile: /src/git/sha1/openssl.h
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: void
    signature: "void openssl_SHA1_Update(struct openssl_SHA1_CTX *ctx,\n\t\t\t\t\tconst
      void *data,\n\t\t\t\t\tsize_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/git/sha1/openssl.h:33,1
    - Dst: EVP_MD_CTX_free
      Src: /src/git/sha1/openssl.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - struct openssl_SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: openssl_SHA1_Final
    functionSourceFile: /src/git/sha1/openssl.h
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: "void openssl_SHA1_Final(unsigned char *digest,\n\t\t\t\t       struct
      openssl_SHA1_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/git/sha1/openssl.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct openssl_SHA1_CTX*
    - struct openssl_SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: openssl_SHA1_Clone
    functionSourceFile: /src/git/sha1/openssl.h
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_copy_ex
    linkageType: ''
    returnType: void
    signature: "void openssl_SHA1_Clone(struct openssl_SHA1_CTX *dst,\n\t\t\t\t\tconst
      struct openssl_SHA1_CTX *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct reftable_block_source::ops::release_data
      Src: /src/git/reftable/blocksource.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct reftable_block_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: block_source_release_data
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 1
    functionsReached:
    - struct reftable_block_source::ops::release_data
    linkageType: ''
    returnType: void
    signature: void block_source_release_data(struct reftable_block_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct reftable_block_source*::ops::close
      Src: /src/git/reftable/blocksource.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct reftable_block_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: block_source_close
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 1
    functionsReached:
    - struct reftable_block_source*::ops::close
    linkageType: ''
    returnType: void
    signature: void block_source_close(struct reftable_block_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct reftable_block_source*::ops::read_data
      Src: /src/git/reftable/blocksource.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - source
    - dest
    - 'off'
    - size
    argTypes:
    - struct reftable_block_source*
    - struct reftable_block_data*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: block_source_read_data
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 1
    functionsReached:
    - struct reftable_block_source*::ops::read_data
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t block_source_read_data(struct reftable_block_source *source,\n\t\t\t
      \      struct reftable_block_data *dest, uint64_t off,\n\t\t\t       uint32_t
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct reftable_block_source*::ops::size
      Src: /src/git/reftable/blocksource.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct reftable_block_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: block_source_size
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 1
    functionsReached:
    - struct reftable_block_source*::ops::size
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t block_source_size(struct reftable_block_source *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/reftable/blocksource.c:54,1
    - Dst: reftable_free
      Src: /src/git/reftable/blocksource.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - REFTABLE_UNUSED
    - dest
    argTypes:
    - void*
    - struct reftable_block_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: reftable_buf_release_data
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 0
    functionsReached:
    - memset
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void reftable_buf_release_data(void *b REFTABLE_UNUSED, struct reftable_block_data
      *dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - REFTABLE_UNUSED
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: reftable_buf_close
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reftable_buf_close(void *b REFTABLE_UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/reftable/blocksource.c:66,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/blocksource.c:67,1
    - Dst: memcpy
      Src: /src/git/reftable/blocksource.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - v
    - dest
    - 'off'
    - size
    argTypes:
    - void*
    - struct reftable_block_data*
    - uint64_t
    - uint32_t
    assertStmts:
    - condition: (off + size <= b->len)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/git/reftable/blocksource.c
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: reftable_buf_read_data
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 0
    functionsReached:
    - REFTABLE_CALLOC_ARRAY
    - assert
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t reftable_buf_read_data(void *v, struct reftable_block_data
      *dest,\n\t\t\t\t      uint64_t off, uint32_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: reftable_buf_size
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t reftable_buf_size(void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/reftable/blocksource.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bs
    - buf
    argTypes:
    - struct reftable_block_source*
    - struct reftable_buf*
    assertStmts:
    - condition: (!bs->ops)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/git/reftable/blocksource.c
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: block_source_from_buf
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 23
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void block_source_from_buf(struct reftable_block_source *bs,\n\t\t\t
      \  struct reftable_buf *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: file_size
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t file_size(void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - REFTABLE_UNUSED
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - struct reftable_block_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: file_release_data
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_release_data(void *b REFTABLE_UNUSED, struct reftable_block_data
      *dest REFTABLE_UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_munmap
      Src: /src/git/reftable/blocksource.c:111,1
    - Dst: reftable_free
      Src: /src/git/reftable/blocksource.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: file_close
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 0
    functionsReached:
    - reftable_munmap
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void file_close(void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/reftable/blocksource.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - v
    - dest
    - 'off'
    - size
    argTypes:
    - void*
    - struct reftable_block_data*
    - uint64_t
    - uint32_t
    assertStmts:
    - condition: (off + size <= b->mmap.size)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/git/reftable/blocksource.c
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: file_read_data
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t file_read_data(void *v, struct reftable_block_data *dest,
      uint64_t off,\n\t\t\t      uint32_t size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/reftable/blocksource.c:139,1
    - Dst: fstat
      Src: /src/git/reftable/blocksource.c:147,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/blocksource.c:152,1
    - Dst: reftable_mmap
      Src: /src/git/reftable/blocksource.c:158,1
    - Dst: assert
      Src: /src/git/reftable/blocksource.c:162,1
    - Dst: close
      Src: /src/git/reftable/blocksource.c:170,1
    - Dst: reftable_free
      Src: /src/git/reftable/blocksource.c:172,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - bs
    - name
    argTypes:
    - struct reftable_block_source*
    - char*
    assertStmts:
    - condition: (!bs->ops)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/git/reftable/blocksource.c
    constantsTouched: []
    func_position:
      end: 174
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 174
    functionName: reftable_block_source_from_file
    functionSourceFile: /src/git/reftable/blocksource.c
    functionUses: 2
    functionsReached:
    - reftable_mmap
    - open
    - assert
    - reftable_free
    - fstat
    - close
    - REFTABLE_CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int reftable_block_source_from_file(struct reftable_block_source *bs,\n\t\t\t\t
      \   const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct reftable_iterator*::ops::seek
      Src: /src/git/reftable/iter.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - want
    argTypes:
    - struct reftable_iterator*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: iterator_seek
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 4
    functionsReached:
    - struct reftable_iterator*::ops::seek
    linkageType: ''
    returnType: int
    signature: int iterator_seek(struct reftable_iterator *it, struct reftable_record
      *want)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct reftable_iterator*::ops::next
      Src: /src/git/reftable/iter.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - rec
    argTypes:
    - struct reftable_iterator*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: iterator_next
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 9
    functionsReached:
    - struct reftable_iterator*::ops::next
    linkageType: ''
    returnType: int
    signature: int iterator_next(struct reftable_iterator *it, struct reftable_record
      *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - REFTABLE_UNUSED
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: empty_iterator_seek
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int empty_iterator_seek(void *arg REFTABLE_UNUSED, struct reftable_record
      *want REFTABLE_UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - REFTABLE_UNUSED
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: empty_iterator_next
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int empty_iterator_next(void *arg REFTABLE_UNUSED, struct reftable_record
      *rec REFTABLE_UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - REFTABLE_UNUSED
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: empty_iterator_close
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void empty_iterator_close(void *arg REFTABLE_UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/reftable/iter.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct reftable_iterator*
    assertStmts:
    - condition: (!it->ops)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/git/reftable/iter.c
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: iterator_set_empty
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void iterator_set_empty(struct reftable_iterator *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_release
      Src: /src/git/reftable/iter.c:59,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/reftable/iter.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iter_arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: filtering_ref_iterator_close
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_destroy
    - reftable_buf_release
    linkageType: ''
    returnType: void
    signature: void filtering_ref_iterator_close(void *iter_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator_seek
      Src: /src/git/reftable/iter.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iter_arg
    - want
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: filtering_ref_iterator_seek
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached:
    - iterator_seek
    linkageType: ''
    returnType: int
    signature: "int filtering_ref_iterator_seek(void *iter_arg,\n\t\t\t\t       struct
      reftable_record *want)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reftable_iterator_next_ref
      Src: /src/git/reftable/iter.c:77,1
    - Dst: memcmp
      Src: /src/git/reftable/iter.c:83,1
    - Dst: memcmp
      Src: /src/git/reftable/iter.c:85,1
    - Dst: memcmp
      Src: /src/git/reftable/iter.c:90,1
    - Dst: reftable_ref_record_release
      Src: /src/git/reftable/iter.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - iter_arg
    - rec
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 97
    functionName: filtering_ref_iterator_next
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached:
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int filtering_ref_iterator_next(void *iter_arg,\n\t\t\t\t       struct
      reftable_record *rec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/reftable/iter.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - it
    - fri
    argTypes:
    - struct reftable_iterator*
    - struct filtering_ref_iterator*
    assertStmts:
    - condition: (!it->ops)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/git/reftable/iter.c
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: iterator_from_filtering_ref_iterator
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void iterator_from_filtering_ref_iterator(struct reftable_iterator
      *it,\n\t\t\t\t\t  struct filtering_ref_iterator *fri)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_iter_close
      Src: /src/git/reftable/iter.c:116,1
    - Dst: block_source_release_data
      Src: /src/git/reftable/iter.c:117,1
    - Dst: reftable_free
      Src: /src/git/reftable/iter.c:118,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/iter.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: indexed_table_ref_iter_close
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached:
    - reftable_buf_release
    - block_iter_close
    - reftable_free
    - block_source_release_data
    linkageType: ''
    returnType: void
    signature: void indexed_table_ref_iter_close(void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: block_source_release_data
      Src: /src/git/reftable/iter.c:131,1
    - Dst: table_init_block
      Src: /src/git/reftable/iter.c:134,1
    - Dst: block_iter_init
      Src: /src/git/reftable/iter.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct indexed_table_ref_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 144
    functionName: indexed_table_ref_iter_next_block
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached:
    - table_init_block
    - block_iter_init
    - block_source_release_data
    linkageType: ''
    returnType: int
    signature: int indexed_table_ref_iter_next_block(struct indexed_table_ref_iter
      *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - REFTABLE_UNUSED
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: indexed_table_ref_iter_seek
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int indexed_table_ref_iter_seek(void *p REFTABLE_UNUSED,\n\t\t\t\t
      \      struct reftable_record *want REFTABLE_UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: block_iter_next
      Src: /src/git/reftable/iter.c:158,1
    - Dst: indexed_table_ref_iter_next_block
      Src: /src/git/reftable/iter.c:164,1
    - Dst: memcmp
      Src: /src/git/reftable/iter.c:175,1
    - Dst: memcmp
      Src: /src/git/reftable/iter.c:177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - p
    - rec
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 181
    functionName: indexed_table_ref_iter_next
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached:
    - memcmp
    - indexed_table_ref_iter_next_block
    - block_iter_next
    linkageType: ''
    returnType: int
    signature: int indexed_table_ref_iter_next(void *p, struct reftable_record *rec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_calloc
      Src: /src/git/reftable/iter.c:191,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/iter.c:200,1
    - Dst: indexed_table_ref_iter_next_block
      Src: /src/git/reftable/iter.c:207,1
    - Dst: reftable_free
      Src: /src/git/reftable/iter.c:217,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - dest
    - t
    - oid
    - oid_len
    - offsets
    - offset_len
    argTypes:
    - struct indexed_table_ref_iter**
    - struct reftable_table*
    - uint8_t*
    - int
    - uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 220
    functionName: indexed_table_ref_iter_new
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached:
    - reftable_buf_add
    - indexed_table_ref_iter_next_block
    - reftable_free
    - reftable_calloc
    linkageType: ''
    returnType: int
    signature: "int indexed_table_ref_iter_new(struct indexed_table_ref_iter **dest,\n\t\t\t
      \      struct reftable_table *t, uint8_t *oid,\n\t\t\t       int oid_len, uint64_t
      *offsets, int offset_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/reftable/iter.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - it
    - itr
    argTypes:
    - struct reftable_iterator*
    - struct indexed_table_ref_iter*
    assertStmts:
    - condition: (!it->ops)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/git/reftable/iter.c
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: iterator_from_indexed_table_ref_iter
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void iterator_from_indexed_table_ref_iter(struct reftable_iterator
      *it,\n\t\t\t\t\t  struct indexed_table_ref_iter *itr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct reftable_iterator*::ops::close
      Src: /src/git/reftable/iter.c:240,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/iter.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct reftable_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: reftable_iterator_destroy
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 23
    functionsReached:
    - REFTABLE_FREE_AND_NULL
    - struct reftable_iterator*::ops::close
    linkageType: ''
    returnType: void
    signature: void reftable_iterator_destroy(struct reftable_iterator *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct reftable_iterator*::ops::seek
      Src: /src/git/reftable/iter.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - name
    argTypes:
    - struct reftable_iterator*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: reftable_iterator_seek_ref
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 18
    functionsReached:
    - struct reftable_iterator*::ops::seek
    linkageType: ''
    returnType: int
    signature: "int reftable_iterator_seek_ref(struct reftable_iterator *it,\n\t\t\t
      \      const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator_next
      Src: /src/git/reftable/iter.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - it
    - ref
    argTypes:
    - struct reftable_iterator*
    - struct reftable_ref_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: reftable_iterator_next_ref
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 17
    functionsReached:
    - iterator_next
    linkageType: ''
    returnType: int
    signature: "int reftable_iterator_next_ref(struct reftable_iterator *it,\n\t\t\t
      \      struct reftable_ref_record *ref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct reftable_iterator*::ops::seek
      Src: /src/git/reftable/iter.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - it
    - name
    - update_index
    argTypes:
    - struct reftable_iterator*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: reftable_iterator_seek_log_at
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 1
    functionsReached:
    - struct reftable_iterator*::ops::seek
    linkageType: ''
    returnType: int
    signature: "int reftable_iterator_seek_log_at(struct reftable_iterator *it,\n\t\t\t\t
      \ const char *name, uint64_t update_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_iterator_seek_log_at
      Src: /src/git/reftable/iter.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - name
    argTypes:
    - struct reftable_iterator*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: reftable_iterator_seek_log
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 6
    functionsReached:
    - reftable_iterator_seek_log_at
    linkageType: ''
    returnType: int
    signature: "int reftable_iterator_seek_log(struct reftable_iterator *it,\n\t\t\t
      \      const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator_next
      Src: /src/git/reftable/iter.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - it
    - log
    argTypes:
    - struct reftable_iterator*
    - struct reftable_log_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 302
    functionName: reftable_iterator_next_log
    functionSourceFile: /src/git/reftable/iter.c
    functionUses: 5
    functionsReached:
    - iterator_next
    linkageType: ''
    returnType: int
    signature: "int reftable_iterator_next_log(struct reftable_iterator *it,\n\t\t\t
      \      struct reftable_log_record *log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - struct string_view*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: string_view_consume
    functionSourceFile: /src/git/reftable/record.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void string_view_consume(struct string_view *s, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: reftable_record_type
    functionSourceFile: /src/git/reftable/record.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t reftable_record_type(struct reftable_record *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_rand
      Src: /src/git/reftable/system.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 5
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: reftable_rand
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - git_rand
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t reftable_rand(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mks_tempfile
      Src: /src/git/reftable/system.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - out
    - pattern
    argTypes:
    - struct reftable_tmpfile*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 6
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: tmpfile_from_pattern
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - mks_tempfile
    linkageType: ''
    returnType: int
    signature: int tmpfile_from_pattern(struct reftable_tmpfile *out, const char *pattern)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_tempfile_gently
      Src: /src/git/reftable/system.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct reftable_tmpfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: tmpfile_close
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - close_tempfile_gently
    linkageType: ''
    returnType: int
    signature: int tmpfile_close(struct reftable_tmpfile *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: delete_tempfile
      Src: /src/git/reftable/system.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct reftable_tmpfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: tmpfile_delete
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - delete_tempfile
    linkageType: ''
    returnType: int
    signature: int tmpfile_delete(struct reftable_tmpfile *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rename_tempfile
      Src: /src/git/reftable/system.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - path
    argTypes:
    - struct reftable_tmpfile*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: tmpfile_rename
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - rename_tempfile
    linkageType: ''
    returnType: int
    signature: int tmpfile_rename(struct reftable_tmpfile *t, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reftable_malloc
      Src: /src/git/reftable/system.c:67,1
    - Dst: hold_lock_file_for_update_timeout
      Src: /src/git/reftable/system.c:71,1
    - Dst: reftable_free
      Src: /src/git/reftable/system.c:74,1
    - Dst: get_lock_file_fd
      Src: /src/git/reftable/system.c:80,1
    - Dst: get_lock_file_path
      Src: /src/git/reftable/system.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - l
    - target_path
    - timeout_ms
    argTypes:
    - struct reftable_flock*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 85
    functionName: flock_acquire
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - reftable_free
    - reftable_malloc
    - hold_lock_file_for_update_timeout
    - get_lock_file_fd
    - get_lock_file_path
    linkageType: ''
    returnType: int
    signature: "int flock_acquire(struct reftable_flock *l, const char *target_path,\n\t\t
      \ long timeout_ms)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_lock_file_gently
      Src: /src/git/reftable/system.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct reftable_flock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: flock_close
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - close_lock_file_gently
    linkageType: ''
    returnType: int
    signature: int flock_close(struct reftable_flock *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rollback_lock_file
      Src: /src/git/reftable/system.c:111,1
    - Dst: reftable_free
      Src: /src/git/reftable/system.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct reftable_flock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: flock_release
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - rollback_lock_file
    - reftable_free
    linkageType: ''
    returnType: int
    signature: int flock_release(struct reftable_flock *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: commit_lock_file
      Src: /src/git/reftable/system.c:128,1
    - Dst: reftable_free
      Src: /src/git/reftable/system.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct reftable_flock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 6
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: flock_commit
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - commit_lock_file
    - reftable_free
    linkageType: ''
    returnType: int
    signature: int flock_commit(struct reftable_flock *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsync_component
      Src: /src/git/reftable/system.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: reftable_fsync
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - fsync_component
    linkageType: ''
    returnType: int
    signature: int reftable_fsync(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/reftable/system.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: reftable_time_ms
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 0
    functionsReached:
    - getnanotime
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t reftable_time_ms(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmmap_gently
      Src: /src/git/reftable/system.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - fd
    - len
    argTypes:
    - struct reftable_mmap*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 7
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: reftable_mmap
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 1
    functionsReached:
    - xmmap_gently
    linkageType: ''
    returnType: int
    signature: int reftable_mmap(struct reftable_mmap *out, int fd, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/git/reftable/system.c:161,1
    - Dst: memset
      Src: /src/git/reftable/system.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mmap
    argTypes:
    - struct reftable_mmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: reftable_munmap
    functionSourceFile: /src/git/reftable/system.c
    functionUses: 1
    functionsReached:
    - munmap
    - memset
    linkageType: ''
    returnType: int
    signature: int reftable_munmap(struct reftable_mmap *mmap)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/git/reftable/error.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 46
    functionName: reftable_error_str
    functionSourceFile: /src/git/reftable/error.c
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *reftable_error_str(int err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/git/reftable/writer.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - w
    - typ
    argTypes:
    - struct reftable_writer*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: writer_reftable_block_stats
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: struct reftable_block_stats
    signature: 'struct reftable_block_stats *

      writer_reftable_block_stats(struct reftable_writer *w, uint8_t typ)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_calloc
      Src: /src/git/reftable/writer.c:55,1
    - Dst: struct reftable_writer*::write
      Src: /src/git/reftable/writer.c:59,1
    - Dst: reftable_free
      Src: /src/git/reftable/writer.c:61,1
    - Dst: reftable_free
      Src: /src/git/reftable/writer.c:66,1
    - Dst: struct reftable_writer*::write
      Src: /src/git/reftable/writer.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - w
    - data
    - len
    - padding
    argTypes:
    - struct reftable_writer*
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 75
    functionName: padded_write
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - struct reftable_writer*::write
    - reftable_free
    - reftable_calloc
    linkageType: ''
    returnType: int
    signature: "int padded_write(struct reftable_writer *w, uint8_t *data, size_t
      len,\n\t\t\tint padding)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct reftable_write_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: options_set_defaults
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void options_set_defaults(struct reftable_write_options *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: writer_version
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int writer_version(struct reftable_writer *w)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/reftable/writer.c:100,1
    - Dst: writer_version
      Src: /src/git/reftable/writer.c:102,1
    - Dst: reftable_put_be24
      Src: /src/git/reftable/writer.c:104,1
    - Dst: reftable_put_be64
      Src: /src/git/reftable/writer.c:105,1
    - Dst: reftable_put_be64
      Src: /src/git/reftable/writer.c:106,1
    - Dst: writer_version
      Src: /src/git/reftable/writer.c:107,1
    - Dst: reftable_put_be32
      Src: /src/git/reftable/writer.c:121,1
    - Dst: header_size
      Src: /src/git/reftable/writer.c:124,1
    - Dst: writer_version
      Src: /src/git/reftable/writer.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - w
    - dest
    argTypes:
    - struct reftable_writer*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 125
    functionName: writer_write_header
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - reftable_put_be24
    - header_size
    - memcpy
    - reftable_put_be64
    - writer_version
    - reftable_put_be32
    linkageType: ''
    returnType: int
    signature: int writer_write_header(struct reftable_writer *w, uint8_t *dest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: header_size
      Src: /src/git/reftable/writer.c:132,1
    - Dst: writer_version
      Src: /src/git/reftable/writer.c:132,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/writer.c:134,1
    - Dst: block_writer_init
      Src: /src/git/reftable/writer.c:135,1
    - Dst: hash_size
      Src: /src/git/reftable/writer.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - w
    - typ
    argTypes:
    - struct reftable_writer*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: writer_reinit_block_writer
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - block_writer_init
    - reftable_buf_reset
    - header_size
    - writer_version
    - hash_size
    linkageType: ''
    returnType: int
    signature: int writer_reinit_block_writer(struct reftable_writer *w, uint8_t typ)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_calloc
      Src: /src/git/reftable/writer.c:155,1
    - Dst: options_set_defaults
      Src: /src/git/reftable/writer.c:161,1
    - Dst: reftable_buf_init
      Src: /src/git/reftable/writer.c:165,1
    - Dst: reftable_buf_init
      Src: /src/git/reftable/writer.c:166,1
    - Dst: reftable_buf_init
      Src: /src/git/reftable/writer.c:167,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/writer.c:168,1
    - Dst: reftable_free
      Src: /src/git/reftable/writer.c:170,1
    - Dst: writer_reinit_block_writer
      Src: /src/git/reftable/writer.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - out
    - writer_arg
    - _opts
    argTypes:
    - struct reftable_writer**
    - void*
    - struct reftable_write_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 182
    functionName: reftable_writer_new
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 1
    functionsReached:
    - reftable_free
    - reftable_calloc
    - options_set_defaults
    - writer_reinit_block_writer
    - reftable_buf_init
    - REFTABLE_CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int reftable_writer_new(struct reftable_writer **out,\n\t\t\tssize_t
      (*writer_func)(void *, const void *, size_t),\n\t\t\tint (*flush_func)(void
      *),\n\t\t\tvoid *writer_arg, const struct reftable_write_options *_opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - w
    - min
    - max
    argTypes:
    - struct reftable_writer*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 202
    functionName: reftable_writer_set_limits
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int reftable_writer_set_limits(struct reftable_writer *w, uint64_t
      min,\n\t\t\t\tuint64_t max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_free
      Src: /src/git/reftable/writer.c:207,1
    - Dst: block_writer_release
      Src: /src/git/reftable/writer.c:209,1
    - Dst: writer_clear_index
      Src: /src/git/reftable/writer.c:211,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/writer.c:212,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/writer.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: writer_release
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 6
    functionsReached:
    - reftable_buf_release
    - writer_clear_index
    - block_writer_release
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void writer_release(struct reftable_writer *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writer_release
      Src: /src/git/reftable/writer.c:219,1
    - Dst: reftable_free
      Src: /src/git/reftable/writer.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: reftable_writer_free
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 15
    functionsReached:
    - writer_release
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void reftable_writer_free(struct reftable_writer *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_cmp
      Src: /src/git/reftable/writer.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: obj_index_tree_node_compare
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - reftable_buf_cmp
    linkageType: ''
    returnType: int
    signature: int obj_index_tree_node_compare(const void *a, const void *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tree_search
      Src: /src/git/reftable/writer.c:248,1
    - Dst: reftable_malloc
      Src: /src/git/reftable/writer.c:253,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/writer.c:259,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/writer.c:260,1
    - Dst: reftable_free
      Src: /src/git/reftable/writer.c:262,1
    - Dst: tree_insert
      Src: /src/git/reftable/writer.c:265,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/writer.c:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - w
    - hash
    argTypes:
    - struct reftable_writer*
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 281
    functionName: writer_index_hash
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - reftable_buf_add
    - tree_insert
    - reftable_free
    - tree_search
    - reftable_malloc
    - REFTABLE_ALLOC_GROW_OR_NULL
    - reftable_buf_reset
    linkageType: ''
    returnType: int
    signature: int writer_index_hash(struct reftable_writer *w, struct reftable_buf
      *hash)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_key
      Src: /src/git/reftable/writer.c:288,1
    - Dst: reftable_buf_cmp
      Src: /src/git/reftable/writer.c:292,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/writer.c:297,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/writer.c:298,1
    - Dst: writer_reinit_block_writer
      Src: /src/git/reftable/writer.c:303,1
    - Dst: reftable_record_type
      Src: /src/git/reftable/writer.c:303,1
    - Dst: block_writer_type
      Src: /src/git/reftable/writer.c:308,1
    - Dst: reftable_record_type
      Src: /src/git/reftable/writer.c:308,1
    - Dst: block_writer_add
      Src: /src/git/reftable/writer.c:316,1
    - Dst: writer_flush_block
      Src: /src/git/reftable/writer.c:326,1
    - Dst: writer_reinit_block_writer
      Src: /src/git/reftable/writer.c:329,1
    - Dst: reftable_record_type
      Src: /src/git/reftable/writer.c:329,1
    - Dst: block_writer_add
      Src: /src/git/reftable/writer.c:337,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 2
    argNames:
    - w
    - rec
    argTypes:
    - struct reftable_writer*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 343
    functionName: writer_add_record
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - reftable_buf_add
    - block_writer_add
    - writer_flush_block
    - reftable_buf_reset
    - block_writer_type
    - reftable_record_type
    - reftable_record_key
    - writer_reinit_block_writer
    - reftable_buf_cmp
    linkageType: ''
    returnType: int
    signature: "int writer_add_record(struct reftable_writer *w,\n\t\t\t     struct
      reftable_record *rec)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: writer_add_record
      Src: /src/git/reftable/writer.c:363,1
    - Dst: reftable_ref_record_val1
      Src: /src/git/reftable/writer.c:367,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/writer.c:368,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/writer.c:369,1
    - Dst: reftable_ref_record_val1
      Src: /src/git/reftable/writer.c:369,1
    - Dst: hash_size
      Src: /src/git/reftable/writer.c:370,1
    - Dst: writer_index_hash
      Src: /src/git/reftable/writer.c:374,1
    - Dst: reftable_ref_record_val2
      Src: /src/git/reftable/writer.c:379,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/writer.c:380,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/writer.c:381,1
    - Dst: reftable_ref_record_val2
      Src: /src/git/reftable/writer.c:381,1
    - Dst: hash_size
      Src: /src/git/reftable/writer.c:382,1
    - Dst: writer_index_hash
      Src: /src/git/reftable/writer.c:386,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 2
    argNames:
    - w
    - ref
    argTypes:
    - struct reftable_writer*
    - struct reftable_ref_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 395
    functionName: reftable_writer_add_ref
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 11
    functionsReached:
    - reftable_buf_add
    - writer_add_record
    - writer_index_hash
    - reftable_ref_record_val2
    - reftable_buf_reset
    - reftable_ref_record_val1
    - hash_size
    linkageType: ''
    returnType: int
    signature: "int reftable_writer_add_ref(struct reftable_writer *w,\n\t\t\t    struct
      reftable_ref_record *ref)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/git/reftable/writer.c:403,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/reftable/writer.c:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - w
    - refs
    - n
    argTypes:
    - struct reftable_writer*
    - struct reftable_ref_record*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 409
    functionName: reftable_writer_add_refs
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 1
    functionsReached:
    - qsort
    - reftable_writer_add_ref
    linkageType: ''
    returnType: int
    signature: "int reftable_writer_add_refs(struct reftable_writer *w,\n\t\t\t     struct
      reftable_ref_record *refs, size_t n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: block_writer_type
      Src: /src/git/reftable/writer.c:421,1
    - Dst: writer_finish_public_section
      Src: /src/git/reftable/writer.c:422,1
    - Dst: writer_add_record
      Src: /src/git/reftable/writer.c:429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - w
    - log
    argTypes:
    - struct reftable_writer*
    - struct reftable_log_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 430
    functionName: reftable_writer_add_log_verbatim
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - block_writer_type
    - writer_add_record
    - writer_finish_public_section
    linkageType: ''
    returnType: int
    signature: "int reftable_writer_add_log_verbatim(struct reftable_writer *w,\n\t\t\t\t\t
      \   struct reftable_log_record *log)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: reftable_writer_add_log_verbatim
      Src: /src/git/reftable/writer.c:440,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/writer.c:459,1
    - Dst: reftable_buf_setlen
      Src: /src/git/reftable/writer.c:465,1
    - Dst: strchr
      Src: /src/git/reftable/writer.c:470,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/writer.c:476,1
    - Dst: reftable_writer_add_log_verbatim
      Src: /src/git/reftable/writer.c:483,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/writer.c:486,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - w
    - log
    argTypes:
    - struct reftable_writer*
    - struct reftable_log_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 432
    functionDepth: 4
    functionLinenumber: 432
    functionLinenumberEnd: 488
    functionName: reftable_writer_add_log
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 7
    functionsReached:
    - reftable_buf_setlen
    - reftable_buf_addstr
    - strchr
    - reftable_buf_release
    - reftable_writer_add_log_verbatim
    linkageType: ''
    returnType: int
    signature: "int reftable_writer_add_log(struct reftable_writer *w,\n\t\t\t    struct
      reftable_log_record *log)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/git/reftable/writer.c:496,1
    - Dst: reftable_writer_add_log
      Src: /src/git/reftable/writer.c:499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - w
    - logs
    - n
    argTypes:
    - struct reftable_writer*
    - struct reftable_log_record*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 490
    functionDepth: 5
    functionLinenumber: 490
    functionLinenumberEnd: 502
    functionName: reftable_writer_add_logs
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 1
    functionsReached:
    - qsort
    - reftable_writer_add_log
    linkageType: ''
    returnType: int
    signature: "int reftable_writer_add_logs(struct reftable_writer *w,\n\t\t\t     struct
      reftable_log_record *logs, size_t n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: block_writer_type
      Src: /src/git/reftable/writer.c:507,1
    - Dst: writer_flush_block
      Src: /src/git/reftable/writer.c:514,1
    - Dst: writer_reinit_block_writer
      Src: /src/git/reftable/writer.c:542,1
    - Dst: writer_add_record
      Src: /src/git/reftable/writer.c:560,1
    - Dst: writer_flush_block
      Src: /src/git/reftable/writer.c:565,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/writer.c:570,1
    - Dst: reftable_free
      Src: /src/git/reftable/writer.c:571,1
    - Dst: writer_clear_index
      Src: /src/git/reftable/writer.c:579,1
    - Dst: writer_reftable_block_stats
      Src: /src/git/reftable/writer.c:581,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/writer.c:587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 590
    functionName: writer_finish_section
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - writer_clear_index
    - writer_add_record
    - reftable_free
    - writer_flush_block
    - reftable_buf_reset
    - block_writer_type
    - reftable_buf_release
    - writer_reftable_block_stats
    - writer_reinit_block_writer
    linkageType: ''
    returnType: int
    signature: int writer_finish_section(struct reftable_writer *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: common_prefix_size
      Src: /src/git/reftable/writer.c:602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - void_arg
    - key
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 607
    functionName: update_common
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - common_prefix_size
    linkageType: ''
    returnType: void
    signature: void update_common(void *void_arg, void *key)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: block_writer_add
      Src: /src/git/reftable/writer.c:634,1
    - Dst: writer_flush_block
      Src: /src/git/reftable/writer.c:645,1
    - Dst: writer_reinit_block_writer
      Src: /src/git/reftable/writer.c:649,1
    - Dst: block_writer_add
      Src: /src/git/reftable/writer.c:657,1
    - Dst: block_writer_add
      Src: /src/git/reftable/writer.c:665,1
    - Dst: assert
      Src: /src/git/reftable/writer.c:668,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 2
    argNames:
    - void_arg
    - key
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (arg->err == 0)
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/git/reftable/writer.c
    constantsTouched: []
    func_position:
      end: 671
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 671
    functionName: write_object_record
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - writer_reinit_block_writer
    - block_writer_add
    - assert
    - writer_flush_block
    linkageType: ''
    returnType: void
    signature: void write_object_record(void *void_arg, void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/writer.c:677,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/writer.c:678,1
    - Dst: reftable_free
      Src: /src/git/reftable/writer.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - REFTABLE_UNUSED
    - key
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 680
    functionName: object_record_free
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - REFTABLE_FREE_AND_NULL
    - reftable_buf_release
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void object_record_free(void *void_arg REFTABLE_UNUSED, void *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: infix_walk
      Src: /src/git/reftable/writer.c:691,1
    - Dst: writer_reinit_block_writer
      Src: /src/git/reftable/writer.c:694,1
    - Dst: infix_walk
      Src: /src/git/reftable/writer.c:699,1
    - Dst: writer_finish_section
      Src: /src/git/reftable/writer.c:703,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 704
    functionName: writer_dump_object_index
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - infix_walk
    - writer_finish_section
    - writer_reinit_block_writer
    linkageType: ''
    returnType: int
    signature: int writer_dump_object_index(struct reftable_writer *w)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: block_writer_type
      Src: /src/git/reftable/writer.c:714,1
    - Dst: writer_finish_section
      Src: /src/git/reftable/writer.c:715,1
    - Dst: writer_dump_object_index
      Src: /src/git/reftable/writer.c:720,1
    - Dst: infix_walk
      Src: /src/git/reftable/writer.c:726,1
    - Dst: tree_free
      Src: /src/git/reftable/writer.c:727,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 706
    functionDepth: 5
    functionLinenumber: 706
    functionLinenumberEnd: 733
    functionName: writer_finish_public_section
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 1
    functionsReached:
    - infix_walk
    - writer_dump_object_index
    - block_writer_type
    - writer_finish_section
    - tree_free
    linkageType: ''
    returnType: int
    signature: int writer_finish_public_section(struct reftable_writer *w)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: writer_finish_public_section
      Src: /src/git/reftable/writer.c:739,1
    - Dst: writer_write_header
      Src: /src/git/reftable/writer.c:747,1
    - Dst: padded_write
      Src: /src/git/reftable/writer.c:748,1
    - Dst: writer_write_header
      Src: /src/git/reftable/writer.c:753,1
    - Dst: reftable_put_be64
      Src: /src/git/reftable/writer.c:754,1
    - Dst: reftable_put_be64
      Src: /src/git/reftable/writer.c:756,1
    - Dst: reftable_put_be64
      Src: /src/git/reftable/writer.c:758,1
    - Dst: reftable_put_be64
      Src: /src/git/reftable/writer.c:761,1
    - Dst: reftable_put_be64
      Src: /src/git/reftable/writer.c:763,1
    - Dst: reftable_put_be32
      Src: /src/git/reftable/writer.c:766,1
    - Dst: crc32
      Src: /src/git/reftable/writer.c:766,1
    - Dst: struct reftable_writer*::flush
      Src: /src/git/reftable/writer.c:769,1
    - Dst: padded_write
      Src: /src/git/reftable/writer.c:775,1
    - Dst: footer_size
      Src: /src/git/reftable/writer.c:775,1
    - Dst: writer_version
      Src: /src/git/reftable/writer.c:775,1
    - Dst: writer_release
      Src: /src/git/reftable/writer.c:785,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 735
    functionDepth: 6
    functionLinenumber: 735
    functionLinenumberEnd: 787
    functionName: reftable_writer_close
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 13
    functionsReached:
    - padded_write
    - struct reftable_writer*::flush
    - footer_size
    - reftable_put_be64
    - crc32
    - writer_version
    - writer_release
    - reftable_put_be32
    - writer_finish_public_section
    - writer_write_header
    linkageType: ''
    returnType: int
    signature: int reftable_writer_close(struct reftable_writer *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_release
      Src: /src/git/reftable/writer.c:792,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/writer.c:793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 796
    functionName: writer_clear_index
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 2
    functionsReached:
    - REFTABLE_FREE_AND_NULL
    - reftable_buf_release
    linkageType: ''
    returnType: void
    signature: void writer_clear_index(struct reftable_writer *w)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: block_writer_type
      Src: /src/git/reftable/writer.c:803,1
    - Dst: block_writer_finish
      Src: /src/git/reftable/writer.c:815,1
    - Dst: writer_reftable_block_stats
      Src: /src/git/reftable/writer.c:826,1
    - Dst: writer_write_header
      Src: /src/git/reftable/writer.c:840,1
    - Dst: padded_write
      Src: /src/git/reftable/writer.c:842,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/writer.c:856,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/writer.c:861,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/writer.c:862,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 873
    functionName: writer_flush_nonempty_block
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 0
    functionsReached:
    - padded_write
    - reftable_buf_add
    - REFTABLE_ALLOC_GROW_OR_NULL
    - reftable_buf_reset
    - block_writer_finish
    - block_writer_type
    - writer_reftable_block_stats
    - writer_write_header
    linkageType: ''
    returnType: int
    signature: int writer_flush_nonempty_block(struct reftable_writer *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: writer_flush_nonempty_block
      Src: /src/git/reftable/writer.c:881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 875
    functionDepth: 3
    functionLinenumber: 875
    functionLinenumberEnd: 882
    functionName: writer_flush_block
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 3
    functionsReached:
    - writer_flush_nonempty_block
    linkageType: ''
    returnType: int
    signature: int writer_flush_block(struct reftable_writer *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct reftable_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: reftable_writer_stats
    functionSourceFile: /src/git/reftable/writer.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: struct reftable_stats
    signature: struct reftable_stats *reftable_writer_stats(struct reftable_writer
      *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merged_iter_pqueue_release
      Src: /src/git/reftable/merged.c:37,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/reftable/merged.c:39,1
    - Dst: reftable_record_release
      Src: /src/git/reftable/merged.c:40,1
    - Dst: reftable_free
      Src: /src/git/reftable/merged.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: merged_iter_close
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_destroy
    - merged_iter_pqueue_release
    - reftable_record_release
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void merged_iter_close(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iterator_next
      Src: /src/git/reftable/merged.c:53,1
    - Dst: merged_iter_pqueue_add
      Src: /src/git/reftable/merged.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mi
    - idx
    argTypes:
    - struct merged_iter*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 62
    functionName: merged_iter_advance_subiter
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 0
    functionsReached:
    - iterator_next
    - merged_iter_pqueue_add
    linkageType: ''
    returnType: int
    signature: int merged_iter_advance_subiter(struct merged_iter *mi, size_t idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: merged_iter_pqueue_is_empty
      Src: /src/git/reftable/merged.c:69,1
    - Dst: merged_iter_pqueue_remove
      Src: /src/git/reftable/merged.c:70,1
    - Dst: iterator_seek
      Src: /src/git/reftable/merged.c:76,1
    - Dst: merged_iter_advance_subiter
      Src: /src/git/reftable/merged.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - mi
    - want
    argTypes:
    - struct merged_iter*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 88
    functionName: merged_iter_seek
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 0
    functionsReached:
    - iterator_seek
    - merged_iter_pqueue_remove
    - merged_iter_pqueue_is_empty
    - merged_iter_advance_subiter
    linkageType: ''
    returnType: int
    signature: int merged_iter_seek(struct merged_iter *mi, struct reftable_record
      *want)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: merged_iter_pqueue_is_empty
      Src: /src/git/reftable/merged.c:96,1
    - Dst: iterator_next
      Src: /src/git/reftable/merged.c:112,1
    - Dst: merged_iter_advance_subiter
      Src: /src/git/reftable/merged.c:115,1
    - Dst: merged_iter_pqueue_remove
      Src: /src/git/reftable/merged.c:126,1
    - Dst: merged_iter_pqueue_is_empty
      Src: /src/git/reftable/merged.c:138,1
    - Dst: merged_iter_pqueue_top
      Src: /src/git/reftable/merged.c:139,1
    - Dst: reftable_record_cmp
      Src: /src/git/reftable/merged.c:142,1
    - Dst: merged_iter_pqueue_remove
      Src: /src/git/reftable/merged.c:148,1
    - Dst: merged_iter_advance_subiter
      Src: /src/git/reftable/merged.c:152,1
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/merged.c:158,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - mi
    - rec
    argTypes:
    - struct merged_iter*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 160
    functionName: merged_iter_next_entry
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 0
    functionsReached:
    - REFTABLE_SWAP
    - iterator_next
    - merged_iter_pqueue_remove
    - merged_iter_pqueue_is_empty
    - reftable_record_cmp
    - merged_iter_advance_subiter
    - merged_iter_pqueue_top
    linkageType: ''
    returnType: int
    signature: "int merged_iter_next_entry(struct merged_iter *mi,\n\t\t\t\t  struct
      reftable_record *rec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merged_iter_seek
      Src: /src/git/reftable/merged.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - want
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: merged_iter_seek_void
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 0
    functionsReached:
    - merged_iter_seek
    linkageType: ''
    returnType: int
    signature: int merged_iter_seek_void(void *it, struct reftable_record *want)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: merged_iter_next_entry
      Src: /src/git/reftable/merged.c:171,1
    - Dst: reftable_record_is_deletion
      Src: /src/git/reftable/merged.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - p
    - rec
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: merged_iter_next_void
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 0
    functionsReached:
    - reftable_record_is_deletion
    - merged_iter_next_entry
    linkageType: ''
    returnType: int
    signature: int merged_iter_next_void(void *p, struct reftable_record *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/reftable/merged.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - it
    - mi
    argTypes:
    - struct reftable_iterator*
    - struct merged_iter*
    assertStmts:
    - condition: (!it->ops)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/git/reftable/merged.c
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: iterator_from_merged_iter
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void iterator_from_merged_iter(struct reftable_iterator *it,\n\t\t\t\t
      \     struct merged_iter *mi)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_table_min_update_index
      Src: /src/git/reftable/merged.c:203,1
    - Dst: reftable_table_max_update_index
      Src: /src/git/reftable/merged.c:204,1
    - Dst: reftable_table_hash_id
      Src: /src/git/reftable/merged.c:206,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/merged.c:217,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - dest
    - tables
    - n
    - hash_id
    argTypes:
    - struct reftable_merged_table**
    - struct reftable_table**
    - size_t
    - enum reftable_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 228
    functionName: reftable_merged_table_new
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 4
    functionsReached:
    - reftable_table_min_update_index
    - REFTABLE_CALLOC_ARRAY
    - reftable_table_hash_id
    - reftable_table_max_update_index
    linkageType: ''
    returnType: int
    signature: "int reftable_merged_table_new(struct reftable_merged_table **dest,\n\t\t\t
      \     struct reftable_table **tables, size_t n,\n\t\t\t      enum reftable_hash
      hash_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_free
      Src: /src/git/reftable/merged.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mt
    argTypes:
    - struct reftable_merged_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: reftable_merged_table_free
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 7
    functionsReached:
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void reftable_merged_table_free(struct reftable_merged_table *mt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mt
    argTypes:
    - struct reftable_merged_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: reftable_merged_table_max_update_index
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t reftable_merged_table_max_update_index(struct reftable_merged_table
      *mt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mt
    argTypes:
    - struct reftable_merged_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: reftable_merged_table_min_update_index
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t reftable_merged_table_min_update_index(struct reftable_merged_table
      *mt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/merged.c:258,1
    - Dst: reftable_record_init
      Src: /src/git/reftable/merged.c:266,1
    - Dst: table_init_iter
      Src: /src/git/reftable/merged.c:270,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/merged.c:275,1
    - Dst: iterator_from_merged_iter
      Src: /src/git/reftable/merged.c:285,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/reftable/merged.c:291,1
    - Dst: reftable_record_release
      Src: /src/git/reftable/merged.c:292,1
    - Dst: reftable_free
      Src: /src/git/reftable/merged.c:294,1
    - Dst: reftable_free
      Src: /src/git/reftable/merged.c:295,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - mt
    - it
    - typ
    argTypes:
    - struct reftable_merged_table*
    - struct reftable_iterator*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 299
    functionName: merged_table_init_iter
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 5
    functionsReached:
    - reftable_record_init
    - reftable_free
    - reftable_record_release
    - table_init_iter
    - iterator_from_merged_iter
    - reftable_iterator_destroy
    - REFTABLE_CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int merged_table_init_iter(struct reftable_merged_table *mt,\n\t\t\t
      \  struct reftable_iterator *it,\n\t\t\t   uint8_t typ)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merged_table_init_iter
      Src: /src/git/reftable/merged.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mt
    - it
    argTypes:
    - struct reftable_merged_table*
    - struct reftable_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: reftable_merged_table_init_ref_iterator
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 1
    functionsReached:
    - merged_table_init_iter
    linkageType: ''
    returnType: int
    signature: "int reftable_merged_table_init_ref_iterator(struct reftable_merged_table
      *mt,\n\t\t\t\t\t    struct reftable_iterator *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merged_table_init_iter
      Src: /src/git/reftable/merged.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mt
    - it
    argTypes:
    - struct reftable_merged_table*
    - struct reftable_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: reftable_merged_table_init_log_iterator
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 1
    functionsReached:
    - merged_table_init_iter
    linkageType: ''
    returnType: int
    signature: "int reftable_merged_table_init_log_iterator(struct reftable_merged_table
      *mt,\n\t\t\t\t\t    struct reftable_iterator *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mt
    argTypes:
    - struct reftable_merged_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: reftable_merged_table_hash_id
    functionSourceFile: /src/git/reftable/merged.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: enum reftable_hash
    signature: enum reftable_hash reftable_merged_table_hash_id(struct reftable_merged_table
      *mt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_cmp
      Src: /src/git/reftable/pq.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct pq_entry*
    - struct pq_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: pq_less
    functionSourceFile: /src/git/reftable/pq.c
    functionUses: 2
    functionsReached:
    - reftable_record_cmp
    linkageType: ''
    returnType: int
    signature: int pq_less(struct pq_entry *a, struct pq_entry *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pq_less
      Src: /src/git/reftable/pq.c:43,1
    - Dst: pq_less
      Src: /src/git/reftable/pq.c:51,1
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/pq.c:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - pq
    - out
    argTypes:
    - struct merged_iter_pqueue*
    - struct pq_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 68
    functionName: merged_iter_pqueue_remove
    functionSourceFile: /src/git/reftable/pq.c
    functionUses: 5
    functionsReached:
    - REFTABLE_SWAP
    - pq_less
    linkageType: ''
    returnType: int
    signature: int merged_iter_pqueue_remove(struct merged_iter_pqueue *pq, struct
      pq_entry *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/pq.c:74,1
    - Dst: pq_less
      Src: /src/git/reftable/pq.c:82,1
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/pq.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pq
    - e
    argTypes:
    - struct merged_iter_pqueue*
    - struct pq_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 89
    functionName: merged_iter_pqueue_add
    functionSourceFile: /src/git/reftable/pq.c
    functionUses: 4
    functionsReached:
    - REFTABLE_SWAP
    - REFTABLE_ALLOC_GROW_OR_NULL
    - pq_less
    linkageType: ''
    returnType: int
    signature: int merged_iter_pqueue_add(struct merged_iter_pqueue *pq, const struct
      pq_entry *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/pq.c:93,1
    - Dst: memset
      Src: /src/git/reftable/pq.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pq
    argTypes:
    - struct merged_iter_pqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: merged_iter_pqueue_release
    functionSourceFile: /src/git/reftable/pq.c
    functionUses: 4
    functionsReached:
    - REFTABLE_FREE_AND_NULL
    - memset
    linkageType: ''
    returnType: void
    signature: void merged_iter_pqueue_release(struct merged_iter_pqueue *pq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - struct merged_iter_pqueue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: merged_iter_pqueue_top
    functionSourceFile: /src/git/reftable/pq.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct pq_entry
    signature: struct pq_entry merged_iter_pqueue_top(struct merged_iter_pqueue pq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - struct merged_iter_pqueue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: merged_iter_pqueue_is_empty
    functionSourceFile: /src/git/reftable/pq.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int merged_iter_pqueue_is_empty(struct merged_iter_pqueue pq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/git/reftable/table.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - t
    - typ
    argTypes:
    - struct reftable_table*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: table_offsets_for
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: struct reftable_table_offsets
    signature: 'struct reftable_table_offsets *

      table_offsets_for(struct reftable_table *t, uint8_t typ)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct reftable_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: reftable_table_hash_id
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: enum reftable_hash
    signature: enum reftable_hash reftable_table_hash_id(struct reftable_table *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct reftable_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: reftable_table_name
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *reftable_table_name(struct reftable_table *t)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/reftable/table.c:52,1
    - Dst: memcmp
      Src: /src/git/reftable/table.c:58,1
    - Dst: header_size
      Src: /src/git/reftable/table.c:58,1
    - Dst: reftable_get_be24
      Src: /src/git/reftable/table.c:64,1
    - Dst: reftable_get_be64
      Src: /src/git/reftable/table.c:67,1
    - Dst: reftable_get_be64
      Src: /src/git/reftable/table.c:69,1
    - Dst: reftable_get_be32
      Src: /src/git/reftable/table.c:75,1
    - Dst: reftable_get_be64
      Src: /src/git/reftable/table.c:90,1
    - Dst: reftable_get_be64
      Src: /src/git/reftable/table.c:93,1
    - Dst: reftable_get_be64
      Src: /src/git/reftable/table.c:99,1
    - Dst: reftable_get_be64
      Src: /src/git/reftable/table.c:101,1
    - Dst: reftable_get_be64
      Src: /src/git/reftable/table.c:103,1
    - Dst: crc32
      Src: /src/git/reftable/table.c:106,1
    - Dst: reftable_get_be32
      Src: /src/git/reftable/table.c:107,1
    - Dst: header_size
      Src: /src/git/reftable/table.c:114,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 70
    argCount: 3
    argNames:
    - t
    - footer
    - header
    argTypes:
    - struct reftable_table*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 128
    functionName: parse_footer
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - header_size
    - reftable_get_be32
    - crc32
    - reftable_get_be64
    - reftable_get_be24
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int parse_footer(struct reftable_table *t, uint8_t *footer,\n\t\t\tuint8_t
      *header)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/reftable/table.c:142,1
    - Dst: reftable_table_incref
      Src: /src/git/reftable/table.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ti
    - t
    argTypes:
    - struct table_iter*
    - struct reftable_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: table_iter_init
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - memset
    - reftable_table_incref
    linkageType: ''
    returnType: int
    signature: int table_iter_init(struct table_iter *ti, struct reftable_table *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_iter_next
      Src: /src/git/reftable/table.c:152,1
    - Dst: reftable_record_type
      Src: /src/git/reftable/table.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ti
    - rec
    argTypes:
    - struct table_iter*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: table_iter_next_in_block
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - reftable_record_type
    - block_iter_next
    linkageType: ''
    returnType: int
    signature: "int table_iter_next_in_block(struct table_iter *ti,\n\t\t\t\t    struct
      reftable_record *rec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_block_release
      Src: /src/git/reftable/table.c:162,1
    - Dst: block_iter_reset
      Src: /src/git/reftable/table.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ti
    argTypes:
    - struct table_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: table_iter_block_done
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - block_iter_reset
    - reftable_block_release
    linkageType: ''
    returnType: void
    signature: void table_iter_block_done(struct table_iter *ti)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: header_size
      Src: /src/git/reftable/table.c:169,1
    - Dst: reftable_block_init
      Src: /src/git/reftable/table.c:175,1
    - Dst: hash_size
      Src: /src/git/reftable/table.c:176,1
    - Dst: reftable_block_release
      Src: /src/git/reftable/table.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - t
    - block
    - next_off
    - want_typ
    argTypes:
    - struct reftable_table*
    - struct reftable_block*
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 180
    functionName: table_init_block
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 1
    functionsReached:
    - reftable_block_release
    - reftable_block_init
    - header_size
    - hash_size
    linkageType: ''
    returnType: int
    signature: "int table_init_block(struct reftable_table *t, struct reftable_block
      *block,\n\t\t     uint64_t next_off, uint8_t want_typ)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table_iter_block_done
      Src: /src/git/reftable/table.c:184,1
    - Dst: block_iter_close
      Src: /src/git/reftable/table.c:185,1
    - Dst: reftable_table_decref
      Src: /src/git/reftable/table.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ti
    argTypes:
    - struct table_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: table_iter_close
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - block_iter_close
    - table_iter_block_done
    - reftable_table_decref
    linkageType: ''
    returnType: void
    signature: void table_iter_close(struct table_iter *ti)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: table_init_block
      Src: /src/git/reftable/table.c:194,1
    - Dst: block_iter_init
      Src: /src/git/reftable/table.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ti
    argTypes:
    - struct table_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 205
    functionName: table_iter_next_block
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - block_iter_init
    - table_init_block
    linkageType: ''
    returnType: int
    signature: int table_iter_next_block(struct table_iter *ti)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_type
      Src: /src/git/reftable/table.c:209,1
    - Dst: table_iter_next_in_block
      Src: /src/git/reftable/table.c:223,1
    - Dst: table_iter_next_block
      Src: /src/git/reftable/table.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ti
    - rec
    argTypes:
    - struct table_iter*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 238
    functionName: table_iter_next
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - reftable_record_type
    - table_iter_next_in_block
    - table_iter_next_block
    linkageType: ''
    returnType: int
    signature: int table_iter_next(struct table_iter *ti, struct reftable_record *rec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: table_init_block
      Src: /src/git/reftable/table.c:244,1
    - Dst: reftable_block_type
      Src: /src/git/reftable/table.c:248,1
    - Dst: block_iter_init
      Src: /src/git/reftable/table.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ti
    - 'off'
    - typ
    argTypes:
    - struct table_iter*
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: table_iter_seek_to
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - reftable_block_type
    - block_iter_init
    - table_init_block
    linkageType: ''
    returnType: int
    signature: int table_iter_seek_to(struct table_iter *ti, uint64_t off, uint8_t
      typ)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: table_offsets_for
      Src: /src/git/reftable/table.c:257,1
    - Dst: table_iter_seek_to
      Src: /src/git/reftable/table.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ti
    - typ
    - index
    argTypes:
    - struct table_iter*
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: table_iter_seek_start
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - table_iter_seek_to
    - table_offsets_for
    linkageType: ''
    returnType: int
    signature: int table_iter_seek_start(struct table_iter *ti, uint8_t typ, int index)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_init
      Src: /src/git/reftable/table.c:278,1
    - Dst: reftable_record_type
      Src: /src/git/reftable/table.c:278,1
    - Dst: reftable_record_key
      Src: /src/git/reftable/table.c:282,1
    - Dst: memset
      Src: /src/git/reftable/table.c:314,1
    - Dst: table_iter_next_block
      Src: /src/git/reftable/table.c:319,1
    - Dst: reftable_block_first_key
      Src: /src/git/reftable/table.c:325,1
    - Dst: reftable_buf_cmp
      Src: /src/git/reftable/table.c:329,1
    - Dst: table_iter_block_done
      Src: /src/git/reftable/table.c:330,1
    - Dst: table_iter_block_done
      Src: /src/git/reftable/table.c:334,1
    - Dst: block_iter_init
      Src: /src/git/reftable/table.c:343,1
    - Dst: block_iter_seek_key
      Src: /src/git/reftable/table.c:344,1
    - Dst: reftable_record_release
      Src: /src/git/reftable/table.c:350,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/table.c:351,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/table.c:352,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - ti
    - want
    argTypes:
    - struct table_iter*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 354
    functionName: table_iter_seek_linear
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - reftable_record_init
    - memset
    - reftable_block_first_key
    - block_iter_init
    - reftable_record_release
    - reftable_record_type
    - block_iter_seek_key
    - reftable_record_key
    - reftable_buf_release
    - table_iter_block_done
    - table_iter_next_block
    - reftable_buf_cmp
    linkageType: ''
    returnType: int
    signature: "int table_iter_seek_linear(struct table_iter *ti,\n\t\t\t\t  struct
      reftable_record *want)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_key
      Src: /src/git/reftable/table.c:368,1
    - Dst: table_iter_seek_linear
      Src: /src/git/reftable/table.c:378,1
    - Dst: table_iter_next
      Src: /src/git/reftable/table.c:404,1
    - Dst: table_iter_seek_to
      Src: /src/git/reftable/table.c:408,1
    - Dst: block_iter_init
      Src: /src/git/reftable/table.c:412,1
    - Dst: block_iter_seek_key
      Src: /src/git/reftable/table.c:414,1
    - Dst: reftable_record_type
      Src: /src/git/reftable/table.c:418,1
    - Dst: reftable_record_release
      Src: /src/git/reftable/table.c:430,1
    - Dst: reftable_record_release
      Src: /src/git/reftable/table.c:431,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - ti
    - rec
    argTypes:
    - struct table_iter*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 433
    functionName: table_iter_seek_indexed
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - table_iter_seek_linear
    - block_iter_init
    - reftable_record_release
    - table_iter_next
    - block_iter_seek_key
    - reftable_record_type
    - reftable_record_key
    - table_iter_seek_to
    linkageType: ''
    returnType: int
    signature: "int table_iter_seek_indexed(struct table_iter *ti,\n\t\t\t\t   struct
      reftable_record *rec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_type
      Src: /src/git/reftable/table.c:438,1
    - Dst: table_offsets_for
      Src: /src/git/reftable/table.c:439,1
    - Dst: table_iter_seek_start
      Src: /src/git/reftable/table.c:442,1
    - Dst: reftable_record_type
      Src: /src/git/reftable/table.c:442,1
    - Dst: table_iter_seek_indexed
      Src: /src/git/reftable/table.c:448,1
    - Dst: table_iter_seek_linear
      Src: /src/git/reftable/table.c:450,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ti
    - want
    argTypes:
    - struct table_iter*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 435
    functionDepth: 5
    functionLinenumber: 435
    functionLinenumberEnd: 456
    functionName: table_iter_seek
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - table_iter_seek_linear
    - table_iter_seek_indexed
    - reftable_record_type
    - table_offsets_for
    - table_iter_seek_start
    linkageType: ''
    returnType: int
    signature: "int table_iter_seek(struct table_iter *ti,\n\t\t\t   struct reftable_record
      *want)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table_iter_seek
      Src: /src/git/reftable/table.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ti
    - want
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 6
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: table_iter_seek_void
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - table_iter_seek
    linkageType: ''
    returnType: int
    signature: int table_iter_seek_void(void *ti, struct reftable_record *want)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table_iter_next
      Src: /src/git/reftable/table.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ti
    - rec
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: table_iter_next_void
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - table_iter_next
    linkageType: ''
    returnType: int
    signature: int table_iter_next_void(void *ti, struct reftable_record *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table_iter_close
      Src: /src/git/reftable/table.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ti
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 471
    functionName: table_iter_close_void
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - table_iter_close
    linkageType: ''
    returnType: void
    signature: void table_iter_close_void(void *ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/reftable/table.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - it
    - ti
    argTypes:
    - struct reftable_iterator*
    - struct table_iter*
    assertStmts:
    - condition: (!it->ops)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/git/reftable/table.c
    constantsTouched: []
    func_position:
      end: 485
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 485
    functionName: iterator_from_table_iter
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void iterator_from_table_iter(struct reftable_iterator *it,\n\t\t\t\t
      \    struct table_iter *ti)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: table_offsets_for
      Src: /src/git/reftable/table.c:491,1
    - Dst: REFTABLE_ALLOC_ARRAY
      Src: /src/git/reftable/table.c:495,1
    - Dst: table_iter_init
      Src: /src/git/reftable/table.c:499,1
    - Dst: iterator_from_table_iter
      Src: /src/git/reftable/table.c:500,1
    - Dst: iterator_set_empty
      Src: /src/git/reftable/table.c:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - t
    - it
    - typ
    argTypes:
    - struct reftable_table*
    - struct reftable_iterator*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 506
    functionName: table_init_iter
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 8
    functionsReached:
    - iterator_set_empty
    - table_iter_init
    - REFTABLE_ALLOC_ARRAY
    - iterator_from_table_iter
    - table_offsets_for
    linkageType: ''
    returnType: int
    signature: "int table_init_iter(struct reftable_table *t,\n\t\t    struct reftable_iterator
      *it,\n\t\t    uint8_t typ)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table_init_iter
      Src: /src/git/reftable/table.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - it
    argTypes:
    - struct reftable_table*
    - struct reftable_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: reftable_table_init_ref_iterator
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 9
    functionsReached:
    - table_init_iter
    linkageType: ''
    returnType: int
    signature: "int reftable_table_init_ref_iterator(struct reftable_table *t,\n\t\t\t\t
      \    struct reftable_iterator *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table_init_iter
      Src: /src/git/reftable/table.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - it
    argTypes:
    - struct reftable_table*
    - struct reftable_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: reftable_table_init_log_iterator
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 3
    functionsReached:
    - table_init_iter
    linkageType: ''
    returnType: int
    signature: "int reftable_table_init_log_iterator(struct reftable_table *t,\n\t\t\t\t
      \    struct reftable_iterator *it)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: block_source_size
      Src: /src/git/reftable/table.c:526,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/table.c:531,1
    - Dst: header_size
      Src: /src/git/reftable/table.c:541,1
    - Dst: block_source_read_data
      Src: /src/git/reftable/table.c:547,1
    - Dst: memcmp
      Src: /src/git/reftable/table.c:553,1
    - Dst: footer_size
      Src: /src/git/reftable/table.c:563,1
    - Dst: reftable_strdup
      Src: /src/git/reftable/table.c:565,1
    - Dst: block_source_read_data
      Src: /src/git/reftable/table.c:573,1
    - Dst: footer_size
      Src: /src/git/reftable/table.c:574,1
    - Dst: footer_size
      Src: /src/git/reftable/table.c:575,1
    - Dst: parse_footer
      Src: /src/git/reftable/table.c:580,1
    - Dst: block_source_release_data
      Src: /src/git/reftable/table.c:587,1
    - Dst: block_source_release_data
      Src: /src/git/reftable/table.c:588,1
    - Dst: reftable_free
      Src: /src/git/reftable/table.c:591,1
    - Dst: reftable_free
      Src: /src/git/reftable/table.c:592,1
    - Dst: block_source_close
      Src: /src/git/reftable/table.c:593,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 3
    argNames:
    - out
    - source
    - name
    argTypes:
    - struct reftable_table**
    - struct reftable_block_source*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 596
    functionName: reftable_table_new
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 19
    functionsReached:
    - reftable_free
    - block_source_size
    - header_size
    - footer_size
    - block_source_read_data
    - parse_footer
    - reftable_strdup
    - block_source_close
    - REFTABLE_CALLOC_ARRAY
    - block_source_release_data
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int reftable_table_new(struct reftable_table **out,\n\t\t       struct
      reftable_block_source *source, char const *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct reftable_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: reftable_table_incref
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reftable_table_incref(struct reftable_table *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: block_source_close
      Src: /src/git/reftable/table.c:609,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/table.c:610,1
    - Dst: reftable_free
      Src: /src/git/reftable/table.c:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct reftable_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 612
    functionName: reftable_table_decref
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 18
    functionsReached:
    - REFTABLE_FREE_AND_NULL
    - block_source_close
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void reftable_table_decref(struct reftable_table *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: table_init_iter
      Src: /src/git/reftable/table.c:634,1
    - Dst: iterator_seek
      Src: /src/git/reftable/table.c:638,1
    - Dst: iterator_next
      Src: /src/git/reftable/table.c:643,1
    - Dst: memcmp
      Src: /src/git/reftable/table.c:647,1
    - Dst: iterator_set_empty
      Src: /src/git/reftable/table.c:650,1
    - Dst: indexed_table_ref_iter_new
      Src: /src/git/reftable/table.c:655,1
    - Dst: hash_size
      Src: /src/git/reftable/table.c:655,1
    - Dst: iterator_from_indexed_table_ref_iter
      Src: /src/git/reftable/table.c:661,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/reftable/table.c:664,1
    - Dst: reftable_record_release
      Src: /src/git/reftable/table.c:665,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - t
    - it
    - oid
    argTypes:
    - struct reftable_table*
    - struct reftable_iterator*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 667
    functionName: reftable_table_refs_for_indexed
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - iterator_set_empty
    - indexed_table_ref_iter_new
    - iterator_next
    - hash_size
    - iterator_seek
    - reftable_record_release
    - table_init_iter
    - iterator_from_indexed_table_ref_iter
    - reftable_iterator_destroy
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int reftable_table_refs_for_indexed(struct reftable_table *t,\n\t\t\t\t\t
      \  struct reftable_iterator *it,\n\t\t\t\t\t   uint8_t *oid)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hash_size
      Src: /src/git/reftable/table.c:676,1
    - Dst: REFTABLE_ALLOC_ARRAY
      Src: /src/git/reftable/table.c:679,1
    - Dst: table_iter_init
      Src: /src/git/reftable/table.c:685,1
    - Dst: table_iter_seek_start
      Src: /src/git/reftable/table.c:686,1
    - Dst: reftable_malloc
      Src: /src/git/reftable/table.c:690,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/table.c:697,1
    - Dst: iterator_from_table_iter
      Src: /src/git/reftable/table.c:701,1
    - Dst: iterator_from_filtering_ref_iterator
      Src: /src/git/reftable/table.c:703,1
    - Dst: table_iter_close
      Src: /src/git/reftable/table.c:710,1
    - Dst: reftable_free
      Src: /src/git/reftable/table.c:711,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - t
    - it
    - oid
    argTypes:
    - struct reftable_table*
    - struct reftable_iterator*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 669
    functionDepth: 4
    functionLinenumber: 669
    functionLinenumberEnd: 714
    functionName: reftable_table_refs_for_unindexed
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 0
    functionsReached:
    - table_iter_init
    - REFTABLE_ALLOC_ARRAY
    - reftable_buf_add
    - reftable_free
    - hash_size
    - reftable_malloc
    - iterator_from_table_iter
    - iterator_from_filtering_ref_iterator
    - table_iter_close
    - table_iter_seek_start
    linkageType: ''
    returnType: int
    signature: "int reftable_table_refs_for_unindexed(struct reftable_table *t,\n\t\t\t\t\t
      \    struct reftable_iterator *it,\n\t\t\t\t\t     uint8_t *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_table_refs_for_indexed
      Src: /src/git/reftable/table.c:720,1
    - Dst: reftable_table_refs_for_unindexed
      Src: /src/git/reftable/table.c:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - t
    - it
    - oid
    argTypes:
    - struct reftable_table*
    - struct reftable_iterator*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 722
    functionName: reftable_table_refs_for
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 1
    functionsReached:
    - reftable_table_refs_for_indexed
    - reftable_table_refs_for_unindexed
    linkageType: ''
    returnType: int
    signature: "int reftable_table_refs_for(struct reftable_table *t,\n\t\t\t    struct
      reftable_iterator *it, uint8_t *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct reftable_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: reftable_table_max_update_index
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t reftable_table_max_update_index(struct reftable_table *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct reftable_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: reftable_table_min_update_index
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t reftable_table_min_update_index(struct reftable_table *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_ALLOC_ARRAY
      Src: /src/git/reftable/table.c:740,1
    - Dst: table_iter_init
      Src: /src/git/reftable/table.c:744,1
    - Dst: reftable_free
      Src: /src/git/reftable/table.c:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - it
    - t
    argTypes:
    - struct reftable_table_iterator*
    - struct reftable_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 755
    functionName: reftable_table_iterator_init
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 2
    functionsReached:
    - table_iter_init
    - REFTABLE_ALLOC_ARRAY
    - reftable_free
    linkageType: ''
    returnType: int
    signature: "int reftable_table_iterator_init(struct reftable_table_iterator *it,\n\t\t\t\t
      struct reftable_table *t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: table_iter_close
      Src: /src/git/reftable/table.c:761,1
    - Dst: reftable_free
      Src: /src/git/reftable/table.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct reftable_table_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 764
    functionName: reftable_table_iterator_release
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 2
    functionsReached:
    - reftable_free
    - table_iter_close
    linkageType: ''
    returnType: void
    signature: void reftable_table_iterator_release(struct reftable_table_iterator
      *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: table_iter_next_block
      Src: /src/git/reftable/table.c:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - it
    - out
    argTypes:
    - struct reftable_table_iterator*
    - struct reftable_block**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 779
    functionName: reftable_table_iterator_next
    functionSourceFile: /src/git/reftable/table.c
    functionUses: 2
    functionsReached:
    - table_iter_next_block
    linkageType: ''
    returnType: int
    signature: "int reftable_table_iterator_next(struct reftable_table_iterator *it,\n\t\t\t\t
      const struct reftable_block **out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/git/reftable/block.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 27
    functionName: header_size
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 7
    functionsReached:
    - abort
    linkageType: ''
    returnType: size_t
    signature: size_t header_size(int version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/git/reftable/block.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: footer_size
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 3
    functionsReached:
    - abort
    linkageType: ''
    returnType: size_t
    signature: size_t footer_size(int version)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/block.c:55,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/block.c:64,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/block.c:65,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - w
    - n
    - is_restart
    - key
    argTypes:
    - struct block_writer*
    - int
    - int
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 71
    functionName: block_writer_register_restart
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 0
    functionsReached:
    - reftable_buf_add
    - REFTABLE_ALLOC_GROW_OR_NULL
    - reftable_buf_reset
    linkageType: ''
    returnType: int
    signature: "int block_writer_register_restart(struct block_writer *w, int n,\n\t\t\t\t\t
      int is_restart, struct reftable_buf *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/block.c:87,1
    - Dst: deflateInit
      Src: /src/git/reftable/block.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 6
    argNames:
    - bw
    - typ
    - block
    - block_size
    - header_off
    - hash_size
    argTypes:
    - struct block_writer*
    - uint8_t
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: block_writer_init
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 6
    functionsReached:
    - deflateInit
    - REFTABLE_CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int block_writer_init(struct block_writer *bw, uint8_t typ, uint8_t
      *block,\n\t\t      uint32_t block_size, uint32_t header_off, uint32_t hash_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bw
    argTypes:
    - struct block_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: block_writer_type
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t block_writer_type(struct block_writer *bw)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_key
      Src: /src/git/reftable/block.c:119,1
    - Dst: reftable_encode_key
      Src: /src/git/reftable/block.c:128,1
    - Dst: reftable_record_val_type
      Src: /src/git/reftable/block.c:129,1
    - Dst: string_view_consume
      Src: /src/git/reftable/block.c:134,1
    - Dst: reftable_record_encode
      Src: /src/git/reftable/block.c:136,1
    - Dst: string_view_consume
      Src: /src/git/reftable/block.c:141,1
    - Dst: block_writer_register_restart
      Src: /src/git/reftable/block.c:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - w
    - rec
    argTypes:
    - struct block_writer*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 147
    functionName: block_writer_add
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 7
    functionsReached:
    - reftable_encode_key
    - block_writer_register_restart
    - reftable_record_encode
    - reftable_record_val_type
    - string_view_consume
    - reftable_record_key
    linkageType: ''
    returnType: int
    signature: int block_writer_add(struct block_writer *w, struct reftable_record
      *rec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_put_be24
      Src: /src/git/reftable/block.c:152,1
    - Dst: reftable_put_be16
      Src: /src/git/reftable/block.c:156,1
    - Dst: reftable_put_be24
      Src: /src/git/reftable/block.c:158,1
    - Dst: block_writer_type
      Src: /src/git/reftable/block.c:164,1
    - Dst: deflateReset
      Src: /src/git/reftable/block.c:169,1
    - Dst: deflateBound
      Src: /src/git/reftable/block.c:178,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/block.c:179,1
    - Dst: deflate
      Src: /src/git/reftable/block.c:197,1
    - Dst: memcpy
      Src: /src/git/reftable/block.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct block_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 212
    functionName: block_writer_finish
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 6
    functionsReached:
    - reftable_put_be24
    - reftable_put_be16
    - REFTABLE_ALLOC_GROW_OR_NULL
    - memcpy
    - block_writer_type
    - deflateReset
    - deflateBound
    - deflate
    linkageType: ''
    returnType: int
    signature: int block_writer_finish(struct block_writer *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: block_source_size
      Src: /src/git/reftable/block.c:218,1
    - Dst: block_source_release_data
      Src: /src/git/reftable/block.c:219,1
    - Dst: block_source_read_data
      Src: /src/git/reftable/block.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - source
    - dest
    - 'off'
    - sz
    argTypes:
    - struct reftable_block_source*
    - struct reftable_block_data*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: read_block
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 0
    functionsReached:
    - block_source_read_data
    - block_source_release_data
    - block_source_size
    linkageType: ''
    returnType: int
    signature: "int read_block(struct reftable_block_source *source,\n\t\t      struct
      reftable_block_data *dest, uint64_t off,\n\t\t      uint32_t sz)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: read_block
      Src: /src/git/reftable/block.c:242,1
    - Dst: reftable_is_block_type
      Src: /src/git/reftable/block.c:247,1
    - Dst: reftable_get_be24
      Src: /src/git/reftable/block.c:256,1
    - Dst: read_block
      Src: /src/git/reftable/block.c:258,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/block.c:269,1
    - Dst: memcpy
      Src: /src/git/reftable/block.c:277,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/block.c:280,1
    - Dst: inflateInit
      Src: /src/git/reftable/block.c:286,1
    - Dst: inflateReset
      Src: /src/git/reftable/block.c:288,1
    - Dst: inflate
      Src: /src/git/reftable/block.c:307,1
    - Dst: block_source_release_data
      Src: /src/git/reftable/block.c:320,1
    - Dst: reftable_get_be16
      Src: /src/git/reftable/block.c:334,1
    - Dst: reftable_block_release
      Src: /src/git/reftable/block.c:348,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 88
    argCount: 7
    argNames:
    - block
    - source
    - offset
    - header_size
    - table_block_size
    - hash_size
    - want_type
    argTypes:
    - struct reftable_block*
    - struct reftable_block_source*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 350
    functionName: reftable_block_init
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 6
    functionsReached:
    - reftable_is_block_type
    - read_block
    - reftable_block_release
    - REFTABLE_ALLOC_GROW_OR_NULL
    - inflateInit
    - inflate
    - reftable_get_be16
    - memcpy
    - block_source_release_data
    - reftable_get_be24
    - REFTABLE_CALLOC_ARRAY
    - inflateReset
    linkageType: ''
    returnType: int
    signature: "int reftable_block_init(struct reftable_block *block,\n\t\t\tstruct
      reftable_block_source *source,\n\t\t\tuint32_t offset, uint32_t header_size,\n\t\t\tuint32_t
      table_block_size, uint32_t hash_size,\n\t\t\tuint8_t want_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/git/reftable/block.c:354,1
    - Dst: reftable_free
      Src: /src/git/reftable/block.c:355,1
    - Dst: reftable_free
      Src: /src/git/reftable/block.c:356,1
    - Dst: block_source_release_data
      Src: /src/git/reftable/block.c:357,1
    - Dst: memset
      Src: /src/git/reftable/block.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - block
    argTypes:
    - struct reftable_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: reftable_block_release
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 8
    functionsReached:
    - memset
    - inflateEnd
    - reftable_free
    - block_source_release_data
    linkageType: ''
    returnType: void
    signature: void reftable_block_release(struct reftable_block *block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct reftable_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: reftable_block_type
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t reftable_block_type(const struct reftable_block *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/block.c:375,1
    - Dst: reftable_decode_key
      Src: /src/git/reftable/block.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - block
    - key
    argTypes:
    - struct reftable_block*
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 384
    functionName: reftable_block_first_key
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 1
    functionsReached:
    - reftable_decode_key
    - reftable_buf_reset
    linkageType: ''
    returnType: int
    signature: int reftable_block_first_key(const struct reftable_block *block, struct
      reftable_buf *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_get_be24
      Src: /src/git/reftable/block.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - idx
    argTypes:
    - struct reftable_block*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: block_restart_offset
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 0
    functionsReached:
    - reftable_get_be24
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t block_restart_offset(const struct reftable_block *b, size_t
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_iter_seek_start
      Src: /src/git/reftable/block.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - it
    - block
    argTypes:
    - struct block_iter*
    - struct reftable_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 395
    functionName: block_iter_init
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 9
    functionsReached:
    - block_iter_seek_start
    linkageType: ''
    returnType: void
    signature: void block_iter_init(struct block_iter *it, const struct reftable_block
      *block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/block.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct block_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: block_iter_seek_start
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 1
    functionsReached:
    - reftable_buf_reset
    linkageType: ''
    returnType: void
    signature: void block_iter_seek_start(struct block_iter *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: block_restart_offset
      Src: /src/git/reftable/block.c:412,1
    - Dst: reftable_decode_keylen
      Src: /src/git/reftable/block.c:426,1
    - Dst: string_view_consume
      Src: /src/git/reftable/block.c:432,1
    - Dst: memcmp
      Src: /src/git/reftable/block.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - idx
    - _args
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 443
    functionName: restart_needle_less
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 0
    functionsReached:
    - block_restart_offset
    - string_view_consume
    - reftable_decode_keylen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int restart_needle_less(size_t idx, void *_args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_decode_key
      Src: /src/git/reftable/block.c:458,1
    - Dst: string_view_consume
      Src: /src/git/reftable/block.c:464,1
    - Dst: reftable_record_decode
      Src: /src/git/reftable/block.c:465,1
    - Dst: string_view_consume
      Src: /src/git/reftable/block.c:469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - it
    - rec
    argTypes:
    - struct block_iter*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 473
    functionName: block_iter_next
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 6
    functionsReached:
    - string_view_consume
    - reftable_record_decode
    - reftable_decode_key
    linkageType: ''
    returnType: int
    signature: int block_iter_next(struct block_iter *it, struct reftable_record *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/block.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct block_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 480
    functionName: block_iter_reset
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 1
    functionsReached:
    - reftable_buf_reset
    linkageType: ''
    returnType: void
    signature: void block_iter_reset(struct block_iter *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_release
      Src: /src/git/reftable/block.c:484,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/block.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct block_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: block_iter_close
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 6
    functionsReached:
    - reftable_buf_release
    linkageType: ''
    returnType: void
    signature: void block_iter_close(struct block_iter *it)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: binsearch
      Src: /src/git/reftable/block.c:510,1
    - Dst: block_restart_offset
      Src: /src/git/reftable/block.c:535,1
    - Dst: reftable_record_init
      Src: /src/git/reftable/block.c:539,1
    - Dst: reftable_block_type
      Src: /src/git/reftable/block.c:539,1
    - Dst: block_iter_next
      Src: /src/git/reftable/block.c:553,1
    - Dst: reftable_record_key
      Src: /src/git/reftable/block.c:562,1
    - Dst: reftable_buf_cmp
      Src: /src/git/reftable/block.c:580,1
    - Dst: reftable_record_release
      Src: /src/git/reftable/block.c:587,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - it
    - want
    argTypes:
    - struct block_iter*
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 589
    functionName: block_iter_seek_key
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 6
    functionsReached:
    - block_restart_offset
    - reftable_record_init
    - reftable_record_release
    - reftable_block_type
    - reftable_record_key
    - reftable_buf_cmp
    - binsearch
    - block_iter_next
    linkageType: ''
    returnType: int
    signature: int block_iter_seek_key(struct block_iter *it, struct reftable_buf
      *want)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_key
      Src: /src/git/reftable/block.c:600,1
    - Dst: block_iter_seek_key
      Src: /src/git/reftable/block.c:604,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/block.c:611,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - it
    - want
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 613
    functionName: block_iter_seek_void
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 0
    functionsReached:
    - reftable_buf_release
    - block_iter_seek_key
    - reftable_record_key
    linkageType: ''
    returnType: int
    signature: int block_iter_seek_void(void *it, struct reftable_record *want)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_iter_next
      Src: /src/git/reftable/block.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - rec
    argTypes:
    - void*
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 618
    functionName: block_iter_next_void
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 0
    functionsReached:
    - block_iter_next
    linkageType: ''
    returnType: int
    signature: int block_iter_next_void(void *it, struct reftable_record *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_iter_close
      Src: /src/git/reftable/block.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 623
    functionName: block_iter_close_void
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 0
    functionsReached:
    - block_iter_close
    linkageType: ''
    returnType: void
    signature: void block_iter_close_void(void *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/block.c:636,1
    - Dst: block_iter_init
      Src: /src/git/reftable/block.c:637,1
    - Dst: assert
      Src: /src/git/reftable/block.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - b
    - it
    argTypes:
    - struct reftable_block*
    - struct reftable_iterator*
    assertStmts:
    - condition: (!it->ops)
      pos:
        line_end: 638
        line_start: 638
        source_file: /src/git/reftable/block.c
    constantsTouched: []
    func_position:
      end: 644
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 644
    functionName: reftable_block_init_iterator
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 2
    functionsReached:
    - block_iter_init
    - assert
    - REFTABLE_CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int reftable_block_init_iterator(const struct reftable_block *b,\n\t\t\t\t
      struct reftable_iterator *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deflateEnd
      Src: /src/git/reftable/block.c:648,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/block.c:649,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/block.c:650,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/block.c:651,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/block.c:652,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/block.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - bw
    argTypes:
    - struct block_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 655
    functionName: block_writer_release
    functionSourceFile: /src/git/reftable/block.c
    functionUses: 6
    functionsReached:
    - reftable_buf_release
    - REFTABLE_FREE_AND_NULL
    - deflateEnd
    linkageType: ''
    returnType: void
    signature: void block_writer_release(struct block_writer *bw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: fsync
    functionSourceFile: /src/git/reftable/reftable-system.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fsync(fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/stack.c:24,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:25,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:26,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - st
    - name
    argTypes:
    - struct reftable_buf*
    - struct reftable_stack*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: stack_filename
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - reftable_buf_reset
    linkageType: ''
    returnType: int
    signature: "int stack_filename(struct reftable_buf *dest, struct reftable_stack
      *st,\n\t\t\t  const char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/git/reftable/stack.c:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - data
    - size
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: reftable_write_data
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t reftable_write_data(int fd, const void *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_write_data
      Src: /src/git/reftable/stack.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arg
    - data
    - sz
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: fd_writer_write
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_write_data
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fd_writer_write(void *arg, const void *data, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsync
      Src: /src/git/reftable/stack.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: fd_writer_flush
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - fsync
    linkageType: ''
    returnType: int
    signature: int fd_writer_flush(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/git/reftable/stack.c:74,1
    - Dst: lseek
      Src: /src/git/reftable/stack.c:80,1
    - Dst: REFTABLE_ALLOC_ARRAY
      Src: /src/git/reftable/stack.c:86,1
    - Dst: read
      Src: /src/git/reftable/stack.c:93,1
    - Dst: parse_names
      Src: /src/git/reftable/stack.c:105,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:107,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - fd
    - namesp
    argTypes:
    - int
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 109
    functionName: fd_read_lines
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - read
    - REFTABLE_ALLOC_ARRAY
    - reftable_free
    - lseek
    - parse_names
    linkageType: ''
    returnType: int
    signature: int fd_read_lines(int fd, char ***namesp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/reftable/stack.c:113,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/stack.c:117,1
    - Dst: fd_read_lines
      Src: /src/git/reftable/stack.c:125,1
    - Dst: close
      Src: /src/git/reftable/stack.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - filename
    - namesp
    argTypes:
    - char*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: read_lines
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 2
    functionsReached:
    - close
    - fd_read_lines
    - open
    - REFTABLE_CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: int read_lines(const char *filename, char ***namesp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merged_table_init_iter
      Src: /src/git/reftable/stack.c:133,1
    - Dst: reftable_stack_merged_table
      Src: /src/git/reftable/stack.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - it
    argTypes:
    - struct reftable_stack*
    - struct reftable_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: reftable_stack_init_ref_iterator
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 3
    functionsReached:
    - reftable_stack_merged_table
    - merged_table_init_iter
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_init_ref_iterator(struct reftable_stack *st,\n\t\t\t\t
      \     struct reftable_iterator *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merged_table_init_iter
      Src: /src/git/reftable/stack.c:140,1
    - Dst: reftable_stack_merged_table
      Src: /src/git/reftable/stack.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - it
    argTypes:
    - struct reftable_stack*
    - struct reftable_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: reftable_stack_init_log_iterator
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 1
    functionsReached:
    - reftable_stack_merged_table
    - merged_table_init_iter
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_init_log_iterator(struct reftable_stack *st,\n\t\t\t\t
      \    struct reftable_iterator *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: reftable_stack_merged_table
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct reftable_merged_table
    signature: 'struct reftable_merged_table *

      reftable_stack_merged_table(struct reftable_stack *st)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/reftable/stack.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - names
    - name
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: has_name
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int has_name(char **names, const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: reftable_merged_table_free
      Src: /src/git/reftable/stack.c:170,1
    - Dst: read_lines
      Src: /src/git/reftable/stack.c:174,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/stack.c:176,1
    - Dst: reftable_table_name
      Src: /src/git/reftable/stack.c:183,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/stack.c:186,1
    - Dst: has_name
      Src: /src/git/reftable/stack.c:187,1
    - Dst: stack_filename
      Src: /src/git/reftable/stack.c:188,1
    - Dst: reftable_table_decref
      Src: /src/git/reftable/stack.c:191,1
    - Dst: unlink
      Src: /src/git/reftable/stack.c:195,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:199,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/stack.c:201,1
    - Dst: close
      Src: /src/git/reftable/stack.c:205,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/stack.c:209,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/stack.c:210,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:211,1
    - Dst: free_names
      Src: /src/git/reftable/stack.c:212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 213
    functionName: reftable_stack_destroy
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 26
    functionsReached:
    - has_name
    - stack_filename
    - reftable_free
    - reftable_table_name
    - REFTABLE_FREE_AND_NULL
    - reftable_merged_table_free
    - reftable_buf_reset
    - read_lines
    - reftable_buf_release
    - close
    - unlink
    - free_names
    - reftable_table_decref
    linkageType: ''
    returnType: void
    signature: void reftable_stack_destroy(struct reftable_stack *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_calloc
      Src: /src/git/reftable/stack.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: stack_copy_tables
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_calloc
    linkageType: ''
    returnType: struct reftable_table
    signature: "struct reftable_table **stack_copy_tables(struct reftable_stack *st,\n\t\t\t\t\t\t
      size_t cur_len)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: stack_copy_tables
      Src: /src/git/reftable/stack.c:242,1
    - Dst: names_length
      Src: /src/git/reftable/stack.c:249,1
    - Dst: reftable_calloc
      Src: /src/git/reftable/stack.c:252,1
    - Dst: strcmp
      Src: /src/git/reftable/stack.c:266,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/stack.c:278,1
    - Dst: reftable_table_incref
      Src: /src/git/reftable/stack.c:286,1
    - Dst: stack_filename
      Src: /src/git/reftable/stack.c:294,1
    - Dst: reftable_block_source_from_file
      Src: /src/git/reftable/stack.c:298,1
    - Dst: reftable_table_new
      Src: /src/git/reftable/stack.c:303,1
    - Dst: reftable_merged_table_new
      Src: /src/git/reftable/stack.c:313,1
    - Dst: reftable_table_name
      Src: /src/git/reftable/stack.c:326,1
    - Dst: stack_filename
      Src: /src/git/reftable/stack.c:328,1
    - Dst: reftable_table_decref
      Src: /src/git/reftable/stack.c:332,1
    - Dst: unlink
      Src: /src/git/reftable/stack.c:333,1
    - Dst: reftable_merged_table_free
      Src: /src/git/reftable/stack.c:339,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:344,1
    - Dst: reftable_table_decref
      Src: /src/git/reftable/stack.c:356,1
    - Dst: reftable_table_decref
      Src: /src/git/reftable/stack.c:360,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:361,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:362,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:363,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:364,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 86
    argCount: 3
    argNames:
    - st
    - names
    - reuse_open
    argTypes:
    - struct reftable_stack*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 366
    functionName: reftable_stack_reload_once
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - unlink
    - stack_filename
    - reftable_calloc
    - reftable_free
    - reftable_table_name
    - stack_copy_tables
    - reftable_block_source_from_file
    - REFTABLE_ALLOC_GROW_OR_NULL
    - reftable_table_new
    - reftable_merged_table_free
    - reftable_buf_release
    - strcmp
    - reftable_merged_table_new
    - reftable_table_incref
    - names_length
    - reftable_table_decref
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_reload_once(struct reftable_stack *st,\n\t\t\t\t
      \     const char **names,\n\t\t\t\t      int reuse_open)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: reftable_time_ms
      Src: /src/git/reftable/stack.c:377,1
    - Dst: reftable_time_ms
      Src: /src/git/reftable/stack.c:380,1
    - Dst: open
      Src: /src/git/reftable/stack.c:390,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/stack.c:397,1
    - Dst: fd_read_lines
      Src: /src/git/reftable/stack.c:403,1
    - Dst: reftable_stack_reload_once
      Src: /src/git/reftable/stack.c:408,1
    - Dst: read_lines
      Src: /src/git/reftable/stack.c:419,1
    - Dst: names_equal
      Src: /src/git/reftable/stack.c:422,1
    - Dst: free_names
      Src: /src/git/reftable/stack.c:428,1
    - Dst: free_names
      Src: /src/git/reftable/stack.c:430,1
    - Dst: close
      Src: /src/git/reftable/stack.c:432,1
    - Dst: reftable_rand
      Src: /src/git/reftable/stack.c:435,1
    - Dst: poll
      Src: /src/git/reftable/stack.c:436,1
    - Dst: close
      Src: /src/git/reftable/stack.c:446,1
    - Dst: fstat
      Src: /src/git/reftable/stack.c:486,1
    - Dst: close
      Src: /src/git/reftable/stack.c:493,1
    - Dst: free_names
      Src: /src/git/reftable/stack.c:494,1
    - Dst: free_names
      Src: /src/git/reftable/stack.c:495,1
    - Dst: struct reftable_stack*::opts::on_reload
      Src: /src/git/reftable/stack.c:498,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 2
    argNames:
    - st
    - reuse_open
    argTypes:
    - struct reftable_stack*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 368
    functionDepth: 6
    functionLinenumber: 368
    functionLinenumberEnd: 501
    functionName: reftable_stack_reload_maybe_reuse
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - names_equal
    - open
    - reftable_time_ms
    - fd_read_lines
    - fstat
    - reftable_rand
    - read_lines
    - reftable_stack_reload_once
    - struct reftable_stack*::opts::on_reload
    - close
    - free_names
    - REFTABLE_CALLOC_ARRAY
    - poll
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_reload_maybe_reuse(struct reftable_stack *st,\n\t\t\t\t\t
      \    int reuse_open)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reftable_calloc
      Src: /src/git/reftable/stack.c:511,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/stack.c:524,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:525,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:526,1
    - Dst: reftable_buf_detach
      Src: /src/git/reftable/stack.c:529,1
    - Dst: reftable_strdup
      Src: /src/git/reftable/stack.c:532,1
    - Dst: reftable_stack_reload_maybe_reuse
      Src: /src/git/reftable/stack.c:538,1
    - Dst: reftable_stack_destroy
      Src: /src/git/reftable/stack.c:547,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - dest
    - dir
    - _opts
    argTypes:
    - struct reftable_stack**
    - char*
    - struct reftable_write_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 503
    functionDepth: 7
    functionLinenumber: 503
    functionLinenumberEnd: 549
    functionName: reftable_new_stack
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 26
    functionsReached:
    - reftable_buf_addstr
    - reftable_buf_detach
    - reftable_calloc
    - reftable_stack_reload_maybe_reuse
    - reftable_buf_reset
    - reftable_stack_destroy
    - reftable_strdup
    linkageType: ''
    returnType: int
    signature: "int reftable_new_stack(struct reftable_stack **dest, const char *dir,\n\t\t
      \      const struct reftable_write_options *_opts)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/reftable/stack.c:573,1
    - Dst: read_lines
      Src: /src/git/reftable/stack.c:595,1
    - Dst: strcmp
      Src: /src/git/reftable/stack.c:605,1
    - Dst: free_names
      Src: /src/git/reftable/stack.c:617,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 619
    functionName: stack_uptodate
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - free_names
    - read_lines
    - stat
    - strcmp
    linkageType: ''
    returnType: int
    signature: int stack_uptodate(struct reftable_stack *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stack_uptodate
      Src: /src/git/reftable/stack.c:623,1
    - Dst: reftable_stack_reload_maybe_reuse
      Src: /src/git/reftable/stack.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 621
    functionDepth: 7
    functionLinenumber: 621
    functionLinenumberEnd: 627
    functionName: reftable_stack_reload
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 3
    functionsReached:
    - stack_uptodate
    - reftable_stack_reload_maybe_reuse
    linkageType: ''
    returnType: int
    signature: int reftable_stack_reload(struct reftable_stack *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stack_filename
      Src: /src/git/reftable/stack.c:644,1
    - Dst: unlink
      Src: /src/git/reftable/stack.c:645,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:646,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:649,1
    - Dst: flock_release
      Src: /src/git/reftable/stack.c:654,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - add
    argTypes:
    - struct reftable_addition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 638
    functionDepth: 7
    functionLinenumber: 638
    functionLinenumberEnd: 656
    functionName: reftable_addition_close
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_free
    - stack_filename
    - flock_release
    - reftable_buf_release
    - unlink
    linkageType: ''
    returnType: void
    signature: void reftable_addition_close(struct reftable_addition *add)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/reftable/stack.c:665,1
    - Dst: flock_acquire
      Src: /src/git/reftable/stack.c:668,1
    - Dst: chmod
      Src: /src/git/reftable/stack.c:674,1
    - Dst: stack_uptodate
      Src: /src/git/reftable/stack.c:681,1
    - Dst: reftable_stack_reload_maybe_reuse
      Src: /src/git/reftable/stack.c:685,1
    - Dst: reftable_stack_next_update_index
      Src: /src/git/reftable/stack.c:694,1
    - Dst: reftable_addition_close
      Src: /src/git/reftable/stack.c:697,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:698,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - add
    - st
    - flags
    argTypes:
    - struct reftable_addition*
    - struct reftable_stack*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 658
    functionDepth: 8
    functionLinenumber: 658
    functionLinenumberEnd: 700
    functionName: reftable_stack_init_addition
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - memset
    - reftable_stack_next_update_index
    - reftable_stack_reload_maybe_reuse
    - chmod
    - flock_acquire
    - stack_uptodate
    - reftable_buf_release
    - reftable_addition_close
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_init_addition(struct reftable_addition *add,\n\t\t\t\t\tstruct
      reftable_stack *st,\n\t\t\t\t\tunsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_stack_init_addition
      Src: /src/git/reftable/stack.c:710,1
    - Dst: reftable_addition_add
      Src: /src/git/reftable/stack.c:714,1
    - Dst: reftable_addition_commit
      Src: /src/git/reftable/stack.c:718,1
    - Dst: reftable_addition_close
      Src: /src/git/reftable/stack.c:720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - st
    - arg
    - flags
    argTypes:
    - struct reftable_stack*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 702
    functionDepth: 9
    functionLinenumber: 702
    functionLinenumberEnd: 722
    functionName: stack_try_add
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_stack_init_addition
    - reftable_addition_close
    - reftable_addition_commit
    - reftable_addition_add
    linkageType: ''
    returnType: int
    signature: "int stack_try_add(struct reftable_stack *st,\n\t\t\t int (*write_table)(struct
      reftable_writer *wr,\n\t\t\t\t\t    void *arg),\n\t\t\t void *arg, unsigned
      flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stack_try_add
      Src: /src/git/reftable/stack.c:728,1
    - Dst: reftable_stack_reload
      Src: /src/git/reftable/stack.c:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - st
    - arg
    - flags
    argTypes:
    - struct reftable_stack*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 724
    functionDepth: 10
    functionLinenumber: 724
    functionLinenumberEnd: 740
    functionName: reftable_stack_add
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 16
    functionsReached:
    - reftable_stack_reload
    - stack_try_add
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_add(struct reftable_stack *st,\n\t\t       int
      (*write)(struct reftable_writer *wr, void *arg),\n\t\t       void *arg, unsigned
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_rand
      Src: /src/git/reftable/stack.c:745,1
    - Dst: snprintf
      Src: /src/git/reftable/stack.c:746,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/stack.c:748,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - min
    - max
    argTypes:
    - struct reftable_buf*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 742
    functionDepth: 6
    functionLinenumber: 742
    functionLinenumberEnd: 750
    functionName: format_name
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - snprintf
    - reftable_buf_reset
    - reftable_rand
    linkageType: ''
    returnType: int
    signature: int format_name(struct reftable_buf *dest, uint64_t min, uint64_t max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_addition_close
      Src: /src/git/reftable/stack.c:757,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - add
    argTypes:
    - struct reftable_addition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 752
    functionDepth: 8
    functionLinenumber: 752
    functionLinenumberEnd: 759
    functionName: reftable_addition_destroy
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 4
    functionsReached:
    - reftable_addition_close
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void reftable_addition_destroy(struct reftable_addition *add)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:771,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:772,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:776,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:777,1
    - Dst: reftable_write_data
      Src: /src/git/reftable/stack.c:781,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:783,1
    - Dst: fsync
      Src: /src/git/reftable/stack.c:789,1
    - Dst: flock_commit
      Src: /src/git/reftable/stack.c:795,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:803,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:804,1
    - Dst: reftable_stack_reload_maybe_reuse
      Src: /src/git/reftable/stack.c:809,1
    - Dst: reftable_stack_auto_compact
      Src: /src/git/reftable/stack.c:823,1
    - Dst: reftable_addition_close
      Src: /src/git/reftable/stack.c:831,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 1
    argNames:
    - add
    argTypes:
    - struct reftable_addition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 761
    functionDepth: 8
    functionLinenumber: 761
    functionLinenumberEnd: 833
    functionName: reftable_addition_commit
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 4
    functionsReached:
    - reftable_buf_addstr
    - flock_commit
    - reftable_free
    - reftable_stack_reload_maybe_reuse
    - reftable_stack_auto_compact
    - fsync
    - reftable_buf_release
    - reftable_write_data
    - reftable_addition_close
    linkageType: ''
    returnType: int
    signature: int reftable_addition_commit(struct reftable_addition *add)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/stack.c:841,1
    - Dst: reftable_stack_init_addition
      Src: /src/git/reftable/stack.c:845,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dest
    - st
    - flags
    argTypes:
    - struct reftable_addition**
    - struct reftable_stack*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 835
    functionDepth: 9
    functionLinenumber: 835
    functionLinenumberEnd: 852
    functionName: reftable_stack_new_addition
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 4
    functionsReached:
    - reftable_stack_init_addition
    - REFTABLE_CALLOC_ARRAY
    - reftable_free
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_new_addition(struct reftable_addition **dest,\n\t\t\t\tstruct
      reftable_stack *st,\n\t\t\t\tunsigned int flags)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/stack.c:869,1
    - Dst: format_name
      Src: /src/git/reftable/stack.c:871,1
    - Dst: stack_filename
      Src: /src/git/reftable/stack.c:875,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:879,1
    - Dst: tmpfile_from_pattern
      Src: /src/git/reftable/stack.c:883,1
    - Dst: chmod
      Src: /src/git/reftable/stack.c:887,1
    - Dst: reftable_writer_new
      Src: /src/git/reftable/stack.c:895,1
    - Dst: write_table
      Src: /src/git/reftable/stack.c:900,1
    - Dst: reftable_writer_close
      Src: /src/git/reftable/stack.c:904,1
    - Dst: tmpfile_close
      Src: /src/git/reftable/stack.c:912,1
    - Dst: format_name
      Src: /src/git/reftable/stack.c:921,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:925,1
    - Dst: stack_filename
      Src: /src/git/reftable/stack.c:929,1
    - Dst: tmpfile_rename
      Src: /src/git/reftable/stack.c:937,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/stack.c:941,1
    - Dst: reftable_buf_detach
      Src: /src/git/reftable/stack.c:947,1
    - Dst: tmpfile_delete
      Src: /src/git/reftable/stack.c:950,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:951,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:952,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:953,1
    - Dst: reftable_writer_free
      Src: /src/git/reftable/stack.c:954,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 83
    argCount: 2
    argNames:
    - add
    - arg
    argTypes:
    - struct reftable_addition*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 854
    functionDepth: 7
    functionLinenumber: 854
    functionLinenumberEnd: 956
    functionName: reftable_addition_add
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 5
    functionsReached:
    - reftable_buf_addstr
    - reftable_buf_detach
    - stack_filename
    - write_table
    - chmod
    - tmpfile_close
    - REFTABLE_ALLOC_GROW_OR_NULL
    - tmpfile_from_pattern
    - reftable_buf_reset
    - reftable_writer_free
    - tmpfile_delete
    - reftable_buf_release
    - reftable_writer_new
    - reftable_writer_close
    - tmpfile_rename
    - format_name
    linkageType: ''
    returnType: int
    signature: "int reftable_addition_add(struct reftable_addition *add,\n\t\t\t  int
      (*write_table)(struct reftable_writer *wr,\n\t\t\t\t\t     void *arg),\n\t\t\t
      \ void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_table_max_update_index
      Src: /src/git/reftable/stack.c:962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 965
    functionName: reftable_stack_next_update_index
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 10
    functionsReached:
    - reftable_table_max_update_index
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t reftable_stack_next_update_index(struct reftable_stack *st)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: reftable_writer_set_limits
      Src: /src/git/reftable/stack.c:982,1
    - Dst: reftable_merged_table_new
      Src: /src/git/reftable/stack.c:987,1
    - Dst: merged_table_init_iter
      Src: /src/git/reftable/stack.c:992,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/reftable/stack.c:996,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/reftable/stack.c:1001,1
    - Dst: reftable_ref_record_is_deletion
      Src: /src/git/reftable/stack.c:1009,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/reftable/stack.c:1013,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/reftable/stack.c:1018,1
    - Dst: merged_table_init_iter
      Src: /src/git/reftable/stack.c:1020,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/reftable/stack.c:1024,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/reftable/stack.c:1029,1
    - Dst: reftable_log_record_is_deletion
      Src: /src/git/reftable/stack.c:1036,1
    - Dst: reftable_writer_add_log
      Src: /src/git/reftable/stack.c:1050,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/reftable/stack.c:1057,1
    - Dst: reftable_merged_table_free
      Src: /src/git/reftable/stack.c:1059,1
    - Dst: reftable_ref_record_release
      Src: /src/git/reftable/stack.c:1060,1
    - Dst: reftable_log_record_release
      Src: /src/git/reftable/stack.c:1061,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 79
    argCount: 5
    argNames:
    - st
    - wr
    - first
    - last
    - config
    argTypes:
    - struct reftable_stack*
    - struct reftable_writer*
    - size_t
    - size_t
    - struct reftable_log_expiry_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 967
    functionDepth: 5
    functionLinenumber: 967
    functionLinenumberEnd: 1064
    functionName: stack_write_compact
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_log_record_is_deletion
    - reftable_writer_set_limits
    - reftable_iterator_next_log
    - reftable_writer_add_log
    - reftable_log_record_release
    - merged_table_init_iter
    - reftable_merged_table_free
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_ref_record_is_deletion
    - reftable_iterator_seek_log
    - reftable_iterator_destroy
    - reftable_writer_add_ref
    - reftable_merged_table_new
    linkageType: ''
    returnType: int
    signature: "int stack_write_compact(struct reftable_stack *st,\n\t\t\t       struct
      reftable_writer *wr,\n\t\t\t       size_t first, size_t last,\n\t\t\t       struct
      reftable_log_expiry_config *config)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: format_name
      Src: /src/git/reftable/stack.c:1080,1
    - Dst: reftable_table_min_update_index
      Src: /src/git/reftable/stack.c:1080,1
    - Dst: reftable_table_max_update_index
      Src: /src/git/reftable/stack.c:1081,1
    - Dst: stack_filename
      Src: /src/git/reftable/stack.c:1085,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:1089,1
    - Dst: tmpfile_from_pattern
      Src: /src/git/reftable/stack.c:1093,1
    - Dst: chmod
      Src: /src/git/reftable/stack.c:1098,1
    - Dst: reftable_writer_new
      Src: /src/git/reftable/stack.c:1104,1
    - Dst: stack_write_compact
      Src: /src/git/reftable/stack.c:1109,1
    - Dst: reftable_writer_close
      Src: /src/git/reftable/stack.c:1113,1
    - Dst: tmpfile_close
      Src: /src/git/reftable/stack.c:1117,1
    - Dst: tmpfile_delete
      Src: /src/git/reftable/stack.c:1125,1
    - Dst: reftable_writer_free
      Src: /src/git/reftable/stack.c:1126,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:1127,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:1128,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 5
    argNames:
    - st
    - first
    - last
    - config
    - tab_file_out
    argTypes:
    - struct reftable_stack*
    - size_t
    - size_t
    - struct reftable_log_expiry_config*
    - struct reftable_tmpfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1066
    functionDepth: 7
    functionLinenumber: 1066
    functionLinenumberEnd: 1130
    functionName: stack_compact_locked
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - stack_filename
    - stack_write_compact
    - reftable_table_max_update_index
    - chmod
    - tmpfile_close
    - tmpfile_from_pattern
    - reftable_writer_free
    - tmpfile_delete
    - reftable_buf_release
    - reftable_writer_new
    - reftable_writer_close
    - reftable_table_min_update_index
    - format_name
    linkageType: ''
    returnType: int
    signature: "int stack_compact_locked(struct reftable_stack *st,\n\t\t\t\tsize_t
      first, size_t last,\n\t\t\t\tstruct reftable_log_expiry_config *config,\n\t\t\t\tstruct
      reftable_tmpfile *tab_file_out)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: flock_acquire
      Src: /src/git/reftable/stack.c:1178,1
    - Dst: stack_uptodate
      Src: /src/git/reftable/stack.c:1193,1
    - Dst: REFTABLE_ALLOC_ARRAY
      Src: /src/git/reftable/stack.c:1211,1
    - Dst: stack_filename
      Src: /src/git/reftable/stack.c:1220,1
    - Dst: reftable_table_name
      Src: /src/git/reftable/stack.c:1220,1
    - Dst: flock_acquire
      Src: /src/git/reftable/stack.c:1224,1
    - Dst: flock_close
      Src: /src/git/reftable/stack.c:1256,1
    - Dst: flock_release
      Src: /src/git/reftable/stack.c:1266,1
    - Dst: stack_compact_locked
      Src: /src/git/reftable/stack.c:1277,1
    - Dst: flock_acquire
      Src: /src/git/reftable/stack.c:1289,1
    - Dst: chmod
      Src: /src/git/reftable/stack.c:1294,1
    - Dst: stack_uptodate
      Src: /src/git/reftable/stack.c:1312,1
    - Dst: open
      Src: /src/git/reftable/stack.c:1319,1
    - Dst: fd_read_lines
      Src: /src/git/reftable/stack.c:1325,1
    - Dst: close
      Src: /src/git/reftable/stack.c:1326,1
    - Dst: strcmp
      Src: /src/git/reftable/stack.c:1335,1
    - Dst: strcmp::strcmp
      Src: /src/git/reftable/stack.c:1355,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/stack.c:1388,1
    - Dst: reftable_strdup
      Src: /src/git/reftable/stack.c:1395,1
    - Dst: format_name
      Src: /src/git/reftable/stack.c:1410,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:1415,1
    - Dst: stack_filename
      Src: /src/git/reftable/stack.c:1419,1
    - Dst: tmpfile_rename
      Src: /src/git/reftable/stack.c:1423,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:1434,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:1435,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:1439,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:1440,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:1444,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/stack.c:1445,1
    - Dst: reftable_write_data
      Src: /src/git/reftable/stack.c:1449,1
    - Dst: unlink
      Src: /src/git/reftable/stack.c:1453,1
    - Dst: fsync
      Src: /src/git/reftable/stack.c:1457,1
    - Dst: unlink
      Src: /src/git/reftable/stack.c:1460,1
    - Dst: flock_commit
      Src: /src/git/reftable/stack.c:1464,1
    - Dst: unlink
      Src: /src/git/reftable/stack.c:1467,1
    - Dst: reftable_stack_reload_maybe_reuse
      Src: /src/git/reftable/stack.c:1476,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/stack.c:1487,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/stack.c:1488,1
    - Dst: strlen
      Src: /src/git/reftable/stack.c:1489,1
    - Dst: strlen
      Src: /src/git/reftable/stack.c:1489,1
    - Dst: unlink
      Src: /src/git/reftable/stack.c:1493,1
    - Dst: flock_release
      Src: /src/git/reftable/stack.c:1497,1
    - Dst: flock_release
      Src: /src/git/reftable/stack.c:1499,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:1500,1
    - Dst: tmpfile_delete
      Src: /src/git/reftable/stack.c:1502,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:1503,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:1504,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:1505,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:1506,1
    - Dst: free_names
      Src: /src/git/reftable/stack.c:1507,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 206
    argCount: 5
    argNames:
    - st
    - first
    - last
    - expiry
    - flags
    argTypes:
    - struct reftable_stack*
    - size_t
    - size_t
    - struct reftable_log_expiry_config*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1150
    functionDepth: 8
    functionLinenumber: 1150
    functionLinenumberEnd: 1513
    functionName: stack_compact_range
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - stack_filename
    - flock_acquire
    - stack_uptodate
    - strcmp::strcmp
    - tmpfile_rename
    - strcmp
    - reftable_strdup
    - stack_compact_locked
    - reftable_buf_add
    - reftable_free
    - flock_release
    - reftable_stack_reload_maybe_reuse
    - fsync
    - tmpfile_delete
    - reftable_write_data
    - unlink
    - flock_commit
    - reftable_buf_release
    - free_names
    - REFTABLE_CALLOC_ARRAY
    - reftable_buf_addstr
    - REFTABLE_ALLOC_ARRAY
    - open
    - reftable_table_name
    - chmod
    - fd_read_lines
    - reftable_buf_reset
    - flock_close
    - strlen
    - close
    - format_name
    linkageType: ''
    returnType: int
    signature: "int stack_compact_range(struct reftable_stack *st,\n\t\t\t       size_t
      first, size_t last,\n\t\t\t       struct reftable_log_expiry_config *expiry,\n\t\t\t
      \      unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_compact_range
      Src: /src/git/reftable/stack.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - config
    argTypes:
    - struct reftable_stack*
    - struct reftable_log_expiry_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1515
    functionDepth: 9
    functionLinenumber: 1515
    functionLinenumberEnd: 1520
    functionName: reftable_stack_compact_all
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 7
    functionsReached:
    - stack_compact_range
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_compact_all(struct reftable_stack *st,\n\t\t\t
      \      struct reftable_log_expiry_config *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct segment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1525
    functionName: segment_size
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int segment_size(struct segment *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - sizes
    - n
    - factor
    argTypes:
    - uint64_t*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1527
    functionDepth: 0
    functionLinenumber: 1527
    functionLinenumberEnd: 1601
    functionName: suggest_compaction_segment
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct segment
    signature: "struct segment suggest_compaction_segment(uint64_t *sizes, size_t
      n,\n\t\t\t\t\t  uint8_t factor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: header_size
      Src: /src/git/reftable/stack.c:1607,1
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/stack.c:1610,1
    - Dst: suggest_compaction_segment
      Src: /src/git/reftable/stack.c:1617,1
    - Dst: reftable_free
      Src: /src/git/reftable/stack.c:1619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - st
    - seg
    argTypes:
    - struct reftable_stack*
    - struct segment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1622
    functionName: stack_segments_for_compaction
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_free
    - REFTABLE_CALLOC_ARRAY
    - header_size
    - suggest_compaction_segment
    linkageType: ''
    returnType: int
    signature: "int stack_segments_for_compaction(struct reftable_stack *st,\n\t\t\t\t\t
      struct segment *seg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stack_segments_for_compaction
      Src: /src/git/reftable/stack.c:1641,1
    - Dst: segment_size
      Src: /src/git/reftable/stack.c:1645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - st
    - seg
    - use_geometric
    - required
    argTypes:
    - struct reftable_stack*
    - struct segment*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1624
    functionDepth: 2
    functionLinenumber: 1624
    functionLinenumberEnd: 1647
    functionName: update_segment_if_compaction_required
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - stack_segments_for_compaction
    - segment_size
    linkageType: ''
    returnType: int
    signature: "int update_segment_if_compaction_required(struct reftable_stack *st,\n\t\t\t\t\t\t
      struct segment *seg,\n\t\t\t\t\t\t bool use_geometric,\n\t\t\t\t\t\t bool *required)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_segment_if_compaction_required
      Src: /src/git/reftable/stack.c:1654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st
    - use_heuristics
    - required
    argTypes:
    - struct reftable_stack*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1649
    functionDepth: 3
    functionLinenumber: 1649
    functionLinenumberEnd: 1656
    functionName: reftable_stack_compaction_required
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 1
    functionsReached:
    - update_segment_if_compaction_required
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_compaction_required(struct reftable_stack *st,\n\t\t\t\t
      \      bool use_heuristics,\n\t\t\t\t       bool *required)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_segment_if_compaction_required
      Src: /src/git/reftable/stack.c:1664,1
    - Dst: stack_compact_range
      Src: /src/git/reftable/stack.c:1669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1658
    functionDepth: 9
    functionLinenumber: 1658
    functionLinenumberEnd: 1673
    functionName: reftable_stack_auto_compact
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 3
    functionsReached:
    - stack_compact_range
    - update_segment_if_compaction_required
    linkageType: ''
    returnType: int
    signature: int reftable_stack_auto_compact(struct reftable_stack *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1679
    functionName: reftable_stack_compaction_stats
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct reftable_compaction_stats
    signature: 'struct reftable_compaction_stats *

      reftable_stack_compaction_stats(struct reftable_stack *st)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_merged_table_init_ref_iterator
      Src: /src/git/reftable/stack.c:1687,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/reftable/stack.c:1691,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/reftable/stack.c:1695,1
    - Dst: strcmp
      Src: /src/git/reftable/stack.c:1699,1
    - Dst: reftable_ref_record_is_deletion
      Src: /src/git/reftable/stack.c:1700,1
    - Dst: reftable_ref_record_release
      Src: /src/git/reftable/stack.c:1701,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/reftable/stack.c:1707,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - st
    - refname
    - ref
    argTypes:
    - struct reftable_stack*
    - char*
    - struct reftable_ref_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1681
    functionDepth: 4
    functionLinenumber: 1681
    functionLinenumberEnd: 1709
    functionName: reftable_stack_read_ref
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 6
    functionsReached:
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_ref_record_is_deletion
    - strcmp
    - reftable_iterator_destroy
    - reftable_merged_table_init_ref_iterator
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_read_ref(struct reftable_stack *st, const char
      *refname,\n\t\t\t    struct reftable_ref_record *ref)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: reftable_stack_init_log_iterator
      Src: /src/git/reftable/stack.c:1717,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/reftable/stack.c:1721,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/reftable/stack.c:1725,1
    - Dst: strcmp
      Src: /src/git/reftable/stack.c:1729,1
    - Dst: reftable_log_record_is_deletion
      Src: /src/git/reftable/stack.c:1730,1
    - Dst: reftable_log_record_release
      Src: /src/git/reftable/stack.c:1737,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/reftable/stack.c:1739,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - st
    - refname
    - log
    argTypes:
    - struct reftable_stack*
    - char*
    - struct reftable_log_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1711
    functionDepth: 4
    functionLinenumber: 1711
    functionLinenumberEnd: 1741
    functionName: reftable_stack_read_log
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 4
    functionsReached:
    - reftable_iterator_seek_log
    - reftable_log_record_is_deletion
    - reftable_iterator_next_log
    - reftable_log_record_release
    - reftable_stack_init_log_iterator
    - strcmp
    - reftable_iterator_destroy
    linkageType: ''
    returnType: int
    signature: "int reftable_stack_read_log(struct reftable_stack *st, const char
      *refname,\n\t\t\t    struct reftable_log_record *log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/reftable/stack.c:1745,1
    - Dst: strcmp
      Src: /src/git/reftable/stack.c:1746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1747
    functionName: is_table_name
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strrchr
    linkageType: ''
    returnType: int
    signature: int is_table_name(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stack_filename
      Src: /src/git/reftable/stack.c:1758,1
    - Dst: reftable_block_source_from_file
      Src: /src/git/reftable/stack.c:1762,1
    - Dst: reftable_table_new
      Src: /src/git/reftable/stack.c:1766,1
    - Dst: reftable_table_max_update_index
      Src: /src/git/reftable/stack.c:1770,1
    - Dst: reftable_table_decref
      Src: /src/git/reftable/stack.c:1771,1
    - Dst: unlink
      Src: /src/git/reftable/stack.c:1774,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/stack.c:1777,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - st
    - max
    - name
    argTypes:
    - struct reftable_stack*
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1749
    functionDepth: 3
    functionLinenumber: 1749
    functionLinenumberEnd: 1778
    functionName: remove_maybe_stale_table
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - stack_filename
    - reftable_table_max_update_index
    - reftable_block_source_from_file
    - reftable_table_new
    - reftable_buf_release
    - unlink
    - reftable_table_decref
    linkageType: ''
    returnType: void
    signature: "void remove_maybe_stale_table(struct reftable_stack *st, uint64_t
      max,\n\t\t\t\t     const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reftable_merged_table_max_update_index
      Src: /src/git/reftable/stack.c:1782,1
    - Dst: reftable_stack_merged_table
      Src: /src/git/reftable/stack.c:1783,1
    - Dst: opendir
      Src: /src/git/reftable/stack.c:1784,1
    - Dst: readdir
      Src: /src/git/reftable/stack.c:1790,1
    - Dst: is_table_name
      Src: /src/git/reftable/stack.c:1792,1
    - Dst: strcmp
      Src: /src/git/reftable/stack.c:1796,1
    - Dst: reftable_table_name
      Src: /src/git/reftable/stack.c:1796,1
    - Dst: remove_maybe_stale_table
      Src: /src/git/reftable/stack.c:1800,1
    - Dst: closedir
      Src: /src/git/reftable/stack.c:1803,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1780
    functionDepth: 4
    functionLinenumber: 1780
    functionLinenumberEnd: 1805
    functionName: reftable_stack_clean_locked
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_stack_merged_table
    - reftable_merged_table_max_update_index
    - remove_maybe_stale_table
    - reftable_table_name
    - opendir
    - is_table_name
    - strcmp
    - closedir
    - readdir
    linkageType: ''
    returnType: int
    signature: int reftable_stack_clean_locked(struct reftable_stack *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_stack_new_addition
      Src: /src/git/reftable/stack.c:1810,1
    - Dst: reftable_stack_reload
      Src: /src/git/reftable/stack.c:1815,1
    - Dst: reftable_stack_clean_locked
      Src: /src/git/reftable/stack.c:1820,1
    - Dst: reftable_addition_destroy
      Src: /src/git/reftable/stack.c:1823,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1807
    functionDepth: 10
    functionLinenumber: 1807
    functionLinenumberEnd: 1825
    functionName: reftable_stack_clean
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 1
    functionsReached:
    - reftable_stack_new_addition
    - reftable_addition_destroy
    - reftable_stack_clean_locked
    - reftable_stack_reload
    linkageType: ''
    returnType: int
    signature: int reftable_stack_clean(struct reftable_stack *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_merged_table_hash_id
      Src: /src/git/reftable/stack.c:1829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1830
    functionName: reftable_stack_hash_id
    functionSourceFile: /src/git/reftable/stack.c
    functionUses: 0
    functionsReached:
    - reftable_merged_table_hash_id
    linkageType: ''
    returnType: enum reftable_hash
    signature: enum reftable_hash reftable_stack_hash_id(struct reftable_stack *st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/git/reftable/tree.c:21,1
    - Dst: tree_search
      Src: /src/git/reftable/tree.c:23,1
    - Dst: tree_search
      Src: /src/git/reftable/tree.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - tree
    - key
    argTypes:
    - struct tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 27
    functionName: tree_search
    functionSourceFile: /src/git/reftable/tree.c
    functionUses: 7
    functionsReached:
    - tree_search
    - compare
    linkageType: ''
    returnType: struct tree_node
    signature: "struct tree_node *tree_search(struct tree_node *tree,\n\t\t\t      void
      *key,\n\t\t\t      int (*compare)(const void *, const void *))"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_CALLOC_ARRAY
      Src: /src/git/reftable/tree.c:38,1
    - Dst: compare
      Src: /src/git/reftable/tree.c:47,1
    - Dst: tree_insert
      Src: /src/git/reftable/tree.c:49,1
    - Dst: tree_insert
      Src: /src/git/reftable/tree.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - rootp
    - key
    argTypes:
    - struct tree_node**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 53
    functionName: tree_insert
    functionSourceFile: /src/git/reftable/tree.c
    functionUses: 11
    functionsReached:
    - tree_insert
    - REFTABLE_CALLOC_ARRAY
    - compare
    linkageType: ''
    returnType: struct tree_node
    signature: "struct tree_node *tree_insert(struct tree_node **rootp,\n\t\t\t      void
      *key,\n\t\t\t      int (*compare)(const void *, const void *))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: infix_walk
      Src: /src/git/reftable/tree.c:59,1
    - Dst: action
      Src: /src/git/reftable/tree.c:60,1
    - Dst: infix_walk
      Src: /src/git/reftable/tree.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - t
    - arg
    argTypes:
    - struct tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: infix_walk
    functionSourceFile: /src/git/reftable/tree.c
    functionUses: 4
    functionsReached:
    - infix_walk
    - action
    linkageType: ''
    returnType: void
    signature: "void infix_walk(struct tree_node *t, void (*action)(void *arg, void
      *key),\n\t\tvoid *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tree_free
      Src: /src/git/reftable/tree.c:70,1
    - Dst: tree_free
      Src: /src/git/reftable/tree.c:72,1
    - Dst: reftable_free
      Src: /src/git/reftable/tree.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: tree_free
    functionSourceFile: /src/git/reftable/tree.c
    functionUses: 19
    functionsReached:
    - tree_free
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void tree_free(struct tree_node *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/git/reftable/basics.c:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: reftable_malloc
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 3
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *reftable_malloc(size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_free
      Src: /src/git/reftable/basics.c:30,1
    - Dst: realloc
      Src: /src/git/reftable/basics.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - sz
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: reftable_realloc
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 0
    functionsReached:
    - realloc
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void *reftable_realloc(void *p, size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_free_ptr
      Src: /src/git/reftable/basics.c:42,1
    - Dst: free
      Src: /src/git/reftable/basics.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: reftable_free
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 46
    functionsReached:
    - reftable_free_ptr
    - free
    linkageType: ''
    returnType: void
    signature: void reftable_free(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_malloc
      Src: /src/git/reftable/basics.c:54,1
    - Dst: memset
      Src: /src/git/reftable/basics.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: reftable_calloc
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 8
    functionsReached:
    - reftable_malloc
    - memset
    linkageType: ''
    returnType: void
    signature: void *reftable_calloc(size_t nelem, size_t elsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/reftable/basics.c:64,1
    - Dst: reftable_malloc
      Src: /src/git/reftable/basics.c:65,1
    - Dst: memcpy
      Src: /src/git/reftable/basics.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: reftable_strdup
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 3
    functionsReached:
    - reftable_malloc
    - strlen
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *reftable_strdup(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*malloc)(size_t)
    - (*realloc)(void *, size_t)
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: reftable_set_alloc
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void reftable_set_alloc(void *(*malloc)(size_t),\n\t\t\tvoid *(*realloc)(void
      *, size_t), void (*free)(void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: reftable_buf_init
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reftable_buf_init(struct reftable_buf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_free
      Src: /src/git/reftable/basics.c:88,1
    - Dst: reftable_buf_init
      Src: /src/git/reftable/basics.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: reftable_buf_release
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 65
    functionsReached:
    - reftable_buf_init
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void reftable_buf_release(struct reftable_buf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: reftable_buf_reset
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reftable_buf_reset(struct reftable_buf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - struct reftable_buf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: reftable_buf_setlen
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int reftable_buf_setlen(struct reftable_buf *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/reftable/basics.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct reftable_buf*
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: reftable_buf_cmp
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 6
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int reftable_buf_cmp(const struct reftable_buf *a, const struct reftable_buf
      *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_ALLOC_GROW
      Src: /src/git/reftable/basics.c:127,1
    - Dst: memcpy
      Src: /src/git/reftable/basics.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - data
    - len
    argTypes:
    - struct reftable_buf*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: reftable_buf_add
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 10
    functionsReached:
    - REFTABLE_ALLOC_GROW
    - memcpy
    linkageType: ''
    returnType: int
    signature: int reftable_buf_add(struct reftable_buf *buf, const void *data, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_add
      Src: /src/git/reftable/basics.c:140,1
    - Dst: strlen
      Src: /src/git/reftable/basics.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - s
    argTypes:
    - struct reftable_buf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: reftable_buf_addstr
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 21
    functionsReached:
    - strlen
    - reftable_buf_add
    linkageType: ''
    returnType: int
    signature: int reftable_buf_addstr(struct reftable_buf *buf, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_init
      Src: /src/git/reftable/basics.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: reftable_buf_detach
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 2
    functionsReached:
    - reftable_buf_init
    linkageType: ''
    returnType: char
    signature: char *reftable_buf_detach(struct reftable_buf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/git/reftable/basics.c:162,1
    - Dst: f
      Src: /src/git/reftable/basics.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - sz
    - args
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 176
    functionName: binsearch
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 2
    functionsReached:
    - f
    linkageType: ''
    returnType: size_t
    signature: size_t binsearch(size_t sz, int (*f)(size_t k, void *args), void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_free
      Src: /src/git/reftable/basics.c:185,1
    - Dst: reftable_free
      Src: /src/git/reftable/basics.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 188
    functionName: free_names
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 13
    functionsReached:
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void free_names(char **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - names
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: names_length
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t names_length(const char **names)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/reftable/basics.c:208,1
    - Dst: REFTABLE_ALLOC_GROW
      Src: /src/git/reftable/basics.c:219,1
    - Dst: reftable_strdup
      Src: /src/git/reftable/basics.c:225,1
    - Dst: REFTABLE_ALLOC_GROW
      Src: /src/git/reftable/basics.c:234,1
    - Dst: reftable_free
      Src: /src/git/reftable/basics.c:244,1
    - Dst: reftable_free
      Src: /src/git/reftable/basics.c:245,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - buf
    - size
    - out
    argTypes:
    - char*
    - int
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 247
    functionName: parse_names
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 4
    functionsReached:
    - REFTABLE_ALLOC_GROW
    - reftable_free
    - strchr
    - reftable_strdup
    linkageType: ''
    returnType: int
    signature: int parse_names(char *buf, int size, char ***out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/reftable/basics.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: names_equal
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int names_equal(const char **a, const char **b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct reftable_buf*
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: common_prefix_size
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t common_prefix_size(struct reftable_buf *a, struct reftable_buf
      *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/git/reftable/basics.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - id
    argTypes:
    - enum reftable_hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 278
    functionName: hash_size
    functionSourceFile: /src/git/reftable/basics.c
    functionUses: 12
    functionsReached:
    - abort
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_size(enum reftable_hash id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - i
    argTypes:
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: reftable_put_be16
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reftable_put_be16(void *out, uint16_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - i
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: reftable_put_be24
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reftable_put_be24(void *out, uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - i
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: reftable_put_be32
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reftable_put_be32(void *out, uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - i
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: reftable_put_be64
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reftable_put_be64(void *out, uint64_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: reftable_get_be16
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t reftable_get_be16(const void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: reftable_get_be24
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t reftable_get_be24(const void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: reftable_get_be32
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t reftable_get_be32(const void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: reftable_get_be64
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t reftable_get_be64(const void *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - nelem
    - elsize
    - out
    argTypes:
    - size_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: reftable_alloc_size
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int reftable_alloc_size(size_t nelem, size_t elsize, size_t *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: REFTABLE_ALLOC_ARRAY
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFTABLE_ALLOC_ARRAY(x, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: REFTABLE_CALLOC_ARRAY
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFTABLE_CALLOC_ARRAY(x, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 217
    functionName: REFTABLE_REALLOC_ARRAY
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFTABLE_REALLOC_ARRAY(x, alloc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reftable_alloc_size
      Src: /src/git/reftable/basics.h:225,1
    - Dst: reftable_realloc
      Src: /src/git/reftable/basics.h:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - p
    - nelem
    - elsize
    - allocp
    argTypes:
    - void*
    - size_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: reftable_alloc_grow
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 0
    functionsReached:
    - reftable_alloc_size
    - reftable_realloc
    linkageType: ''
    returnType: void
    signature: "void *reftable_alloc_grow(void *p, size_t nelem, size_t elsize,\n\t\t\t\t\tsize_t
      *allocp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - nr
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: REFTABLE_ALLOC_GROW
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFTABLE_ALLOC_GROW(x, nr, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - nr
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: REFTABLE_ALLOC_GROW_OR_NULL
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFTABLE_ALLOC_GROW_OR_NULL(x, nr, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: REFTABLE_FREE_AND_NULL
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFTABLE_FREE_AND_NULL(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: REFTABLE_BANNED
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFTABLE_BANNED(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: malloc
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 206
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: malloc(sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: realloc
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: realloc(ptr, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: free
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 1283
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: free(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nelem
    - ','
    - elsize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: calloc
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 124
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: calloc(nelem, elsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: strdup
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 271
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strdup(str)
  - 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: 277
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: REFTABLE_SWAP
    functionSourceFile: /src/git/reftable/basics.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REFTABLE_SWAP(a, b)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - dest
    - in
    argTypes:
    - uint64_t*
    - struct string_view*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 54
    functionName: get_var_int
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_var_int(uint64_t *dest, struct string_view *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/reftable/record.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - value
    argTypes:
    - struct string_view*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: put_var_int
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int put_var_int(struct string_view *dest, uint64_t value)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - typ
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: reftable_is_block_type
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int reftable_is_block_type(uint8_t typ)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct reftable_ref_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: reftable_ref_record_val1
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *reftable_ref_record_val1(const struct reftable_ref_record
      *rec)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct reftable_ref_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: reftable_ref_record_val2
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *reftable_ref_record_val2(const struct reftable_ref_record
      *rec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_var_int
      Src: /src/git/reftable/record.c:109,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:112,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/record.c:116,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/record.c:117,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - dest
    - in
    argTypes:
    - struct reftable_buf*
    - struct string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 124
    functionName: decode_string
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - get_var_int
    - reftable_buf_add
    - reftable_buf_reset
    - string_view_consume
    linkageType: ''
    returnType: int
    signature: int decode_string(struct reftable_buf *dest, struct string_view in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/reftable/record.c:129,1
    - Dst: put_var_int
      Src: /src/git/reftable/record.c:130,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:133,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:136,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - s
    argTypes:
    - char*
    - struct string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: encode_string
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 3
    functionsReached:
    - string_view_consume
    - strlen
    - memcpy
    - put_var_int
    linkageType: ''
    returnType: int
    signature: int encode_string(const char *str, struct string_view s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: common_prefix_size
      Src: /src/git/reftable/record.c:147,1
    - Dst: put_var_int
      Src: /src/git/reftable/record.c:149,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:152,1
    - Dst: put_var_int
      Src: /src/git/reftable/record.c:156,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:159,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:163,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - restart
    - dest
    - prev_key
    - key
    - extra
    argTypes:
    - int*
    - struct string_view
    - struct reftable_buf
    - struct reftable_buf
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 167
    functionName: reftable_encode_key
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 2
    functionsReached:
    - string_view_consume
    - common_prefix_size
    - memcpy
    - put_var_int
    linkageType: ''
    returnType: int
    signature: "int reftable_encode_key(int *restart, struct string_view dest,\n\t\t\tstruct
      reftable_buf prev_key, struct reftable_buf key,\n\t\t\tuint8_t extra)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_var_int
      Src: /src/git/reftable/record.c:177,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:180,1
    - Dst: get_var_int
      Src: /src/git/reftable/record.c:182,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - in
    - prefix_len
    - suffix_len
    - extra
    argTypes:
    - struct string_view
    - uint64_t*
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 191
    functionName: reftable_decode_keylen
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 1
    functionsReached:
    - get_var_int
    - string_view_consume
    linkageType: ''
    returnType: int
    signature: "int reftable_decode_keylen(struct string_view in,\n\t\t\t   uint64_t
      *prefix_len,\n\t\t\t   uint64_t *suffix_len,\n\t\t\t   uint8_t *extra)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_decode_keylen
      Src: /src/git/reftable/record.c:201,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:204,1
    - Dst: reftable_buf_setlen
      Src: /src/git/reftable/record.c:210,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/record.c:214,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - last_key
    - extra
    - in
    argTypes:
    - struct reftable_buf*
    - uint8_t*
    - struct string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 221
    functionName: reftable_decode_key
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 3
    functionsReached:
    - reftable_buf_setlen
    - string_view_consume
    - reftable_buf_add
    - reftable_decode_keylen
    linkageType: ''
    returnType: int
    signature: "int reftable_decode_key(struct reftable_buf *last_key, uint8_t *extra,\n\t\t\tstruct
      string_view in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/record.c:227,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/record.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - dest
    argTypes:
    - void*
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: reftable_ref_record_key
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - reftable_buf_reset
    linkageType: ''
    returnType: int
    signature: int reftable_ref_record_key(const void *r, struct reftable_buf *dest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/record.c:240,1
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/record.c:241,1
    - Dst: reftable_ref_record_release
      Src: /src/git/reftable/record.c:242,1
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/record.c:243,1
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/record.c:244,1
    - Dst: strlen
      Src: /src/git/reftable/record.c:247,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/record.c:249,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:256,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:266,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:269,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:270,1
    - Dst: reftable_strdup
      Src: /src/git/reftable/record.c:274,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - rec
    - src_rec
    - hash_size
    argTypes:
    - void*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 285
    functionName: reftable_ref_record_copy_from
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - REFTABLE_SWAP
    - REFTABLE_ALLOC_GROW_OR_NULL
    - memcpy
    - strlen
    - reftable_ref_record_release
    - reftable_strdup
    linkageType: ''
    returnType: int
    signature: "int reftable_ref_record_copy_from(void *rec, const void *src_rec,\n\t\t\t\t\t
      uint32_t hash_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_ref_record_release
      Src: /src/git/reftable/record.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: reftable_ref_record_release_void
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_ref_record_release
    linkageType: ''
    returnType: void
    signature: void reftable_ref_record_release_void(void *rec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: reftable_free
      Src: /src/git/reftable/record.c:296,1
    - Dst: abort
      Src: /src/git/reftable/record.c:305,1
    - Dst: reftable_free
      Src: /src/git/reftable/record.c:308,1
    - Dst: memset
      Src: /src/git/reftable/record.c:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct reftable_ref_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: reftable_ref_record_release
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 26
    functionsReached:
    - memset
    - reftable_free
    - abort
    linkageType: ''
    returnType: void
    signature: void reftable_ref_record_release(struct reftable_ref_record *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: reftable_ref_record_val_type
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t reftable_ref_record_val_type(const void *rec)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: put_var_int
      Src: /src/git/reftable/record.c:325,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:328,1
    - Dst: encode_string
      Src: /src/git/reftable/record.c:332,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:335,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:340,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:341,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:342,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:343,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:348,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:349,1
    - Dst: abort
      Src: /src/git/reftable/record.c:354,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - rec
    - s
    - hash_size
    argTypes:
    - void*
    - struct string_view
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 358
    functionName: reftable_ref_record_encode
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - abort
    - put_var_int
    - memcpy
    - encode_string
    - string_view_consume
    linkageType: ''
    returnType: int
    signature: "int reftable_ref_record_encode(const void *rec, struct string_view
      s,\n\t\t\t\t      uint32_t hash_size)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_var_int
      Src: /src/git/reftable/record.c:371,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:374,1
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/record.c:376,1
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/record.c:377,1
    - Dst: reftable_ref_record_release
      Src: /src/git/reftable/record.c:378,1
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/record.c:379,1
    - Dst: REFTABLE_SWAP
      Src: /src/git/reftable/record.c:380,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/record.c:382,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:387,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:399,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:400,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:409,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:410,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:412,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:413,1
    - Dst: decode_string
      Src: /src/git/reftable/record.c:417,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:422,1
    - Dst: reftable_buf_detach
      Src: /src/git/reftable/record.c:423,1
    - Dst: abort
      Src: /src/git/reftable/record.c:429,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 6
    argNames:
    - rec
    - key
    - val_type
    - in
    - hash_size
    - scratch
    argTypes:
    - void*
    - struct reftable_buf
    - uint8_t
    - struct string_view
    - uint32_t
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 437
    functionName: reftable_ref_record_decode
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - REFTABLE_SWAP
    - reftable_buf_detach
    - abort
    - REFTABLE_ALLOC_GROW_OR_NULL
    - memcpy
    - string_view_consume
    - reftable_ref_record_release
    - decode_string
    - get_var_int
    linkageType: ''
    returnType: int
    signature: "int reftable_ref_record_decode(void *rec, struct reftable_buf key,\n\t\t\t\t
      \     uint8_t val_type, struct string_view in,\n\t\t\t\t      uint32_t hash_size,
      struct reftable_buf *scratch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_ref_record_is_deletion
      Src: /src/git/reftable/record.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: reftable_ref_record_is_deletion_void
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_ref_record_is_deletion
    linkageType: ''
    returnType: int
    signature: int reftable_ref_record_is_deletion_void(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_ref_record_equal
      Src: /src/git/reftable/record.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - hash_size
    argTypes:
    - void*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: reftable_ref_record_equal_void
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_ref_record_equal
    linkageType: ''
    returnType: int
    signature: "int reftable_ref_record_equal_void(const void *a,\n\t\t\t\t\t  const
      void *b, uint32_t hash_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/reftable/record.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: reftable_ref_record_cmp_void
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int reftable_ref_record_cmp_void(const void *_a, const void *_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/record.c:477,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/record.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - dest
    argTypes:
    - void*
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: reftable_obj_record_key
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_buf_add
    - reftable_buf_reset
    linkageType: ''
    returnType: int
    signature: int reftable_obj_record_key(const void *r, struct reftable_buf *dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/record.c:484,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/record.c:485,1
    - Dst: memset
      Src: /src/git/reftable/record.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rec
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: reftable_obj_record_release
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - REFTABLE_FREE_AND_NULL
    - memset
    linkageType: ''
    returnType: void
    signature: void reftable_obj_record_release(void *rec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: reftable_obj_record_release
      Src: /src/git/reftable/record.c:495,1
    - Dst: REFTABLE_ALLOC_ARRAY
      Src: /src/git/reftable/record.c:497,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:502,1
    - Dst: REFTABLE_ALLOC_ARRAY
      Src: /src/git/reftable/record.c:508,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - rec
    - src_rec
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 517
    functionName: reftable_obj_record_copy_from
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_obj_record_release
    - REFTABLE_ALLOC_ARRAY
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int reftable_obj_record_copy_from(void *rec, const void *src_rec,\n\t\t\t\t\t
      uint32_t hash_size REFTABLE_UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - rec
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 525
    functionName: reftable_obj_record_val_type
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t reftable_obj_record_val_type(const void *rec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: put_var_int
      Src: /src/git/reftable/record.c:536,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:539,1
    - Dst: put_var_int
      Src: /src/git/reftable/record.c:543,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:546,1
    - Dst: put_var_int
      Src: /src/git/reftable/record.c:550,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:553,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - rec
    - s
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - struct string_view
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 557
    functionName: reftable_obj_record_encode
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - string_view_consume
    - put_var_int
    linkageType: ''
    returnType: int
    signature: "int reftable_obj_record_encode(const void *rec, struct string_view
      s,\n\t\t\t\t      uint32_t hash_size REFTABLE_UNUSED)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reftable_obj_record_release
      Src: /src/git/reftable/record.c:570,1
    - Dst: REFTABLE_ALLOC_ARRAY
      Src: /src/git/reftable/record.c:572,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:575,1
    - Dst: get_var_int
      Src: /src/git/reftable/record.c:579,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:584,1
    - Dst: REFTABLE_ALLOC_ARRAY
      Src: /src/git/reftable/record.c:592,1
    - Dst: get_var_int
      Src: /src/git/reftable/record.c:597,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:600,1
    - Dst: get_var_int
      Src: /src/git/reftable/record.c:605,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:609,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 6
    argNames:
    - rec
    - key
    - val_type
    - in
    - REFTABLE_UNUSED
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - struct reftable_buf
    - uint8_t
    - struct string_view
    - uint32_t
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 614
    functionName: reftable_obj_record_decode
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - REFTABLE_ALLOC_ARRAY
    - memcpy
    - string_view_consume
    - get_var_int
    - reftable_obj_record_release
    linkageType: ''
    returnType: int
    signature: "int reftable_obj_record_decode(void *rec, struct reftable_buf key,\n\t\t\t\t
      \     uint8_t val_type, struct string_view in,\n\t\t\t\t      uint32_t hash_size
      REFTABLE_UNUSED,\n\t\t\t\t      struct reftable_buf *scratch REFTABLE_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - REFTABLE_UNUSED
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: not_a_deletion
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int not_a_deletion(const void *p REFTABLE_UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/reftable/record.c:632,1
    - Dst: memcmp
      Src: /src/git/reftable/record.c:635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 639
    functionName: reftable_obj_record_equal_void
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int reftable_obj_record_equal_void(const void *a, const void *b,\n\t\t\t\t\t
      \ uint32_t hash_size REFTABLE_UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/reftable/record.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 658
    functionName: reftable_obj_record_cmp_void
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int reftable_obj_record_cmp_void(const void *_a, const void *_b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/reftable/record.c:677,1
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/record.c:681,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/record.c:682,1
    - Dst: reftable_put_be64
      Src: /src/git/reftable/record.c:687,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/record.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - r
    - dest
    argTypes:
    - void*
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 694
    functionName: reftable_log_record_key
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_put_be64
    - strlen
    - reftable_buf_add
    - reftable_buf_reset
    linkageType: ''
    returnType: int
    signature: int reftable_log_record_key(const void *r, struct reftable_buf *dest)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: reftable_log_record_release
      Src: /src/git/reftable/record.c:704,1
    - Dst: reftable_strdup
      Src: /src/git/reftable/record.c:708,1
    - Dst: reftable_strdup
      Src: /src/git/reftable/record.c:721,1
    - Dst: reftable_strdup
      Src: /src/git/reftable/record.c:724,1
    - Dst: reftable_strdup
      Src: /src/git/reftable/record.c:727,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:736,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:738,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - rec
    - src_rec
    - hash_size
    argTypes:
    - void*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 746
    functionName: reftable_log_record_copy_from
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_strdup
    - memcpy
    - reftable_log_record_release
    linkageType: ''
    returnType: int
    signature: "int reftable_log_record_copy_from(void *rec, const void *src_rec,\n\t\t\t\t\t
      uint32_t hash_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_log_record_release
      Src: /src/git/reftable/record.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: reftable_log_record_release_void
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_log_record_release
    linkageType: ''
    returnType: void
    signature: void reftable_log_record_release_void(void *rec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_free
      Src: /src/git/reftable/record.c:756,1
    - Dst: reftable_free
      Src: /src/git/reftable/record.c:761,1
    - Dst: reftable_free
      Src: /src/git/reftable/record.c:762,1
    - Dst: reftable_free
      Src: /src/git/reftable/record.c:763,1
    - Dst: memset
      Src: /src/git/reftable/record.c:766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct reftable_log_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 754
    functionDepth: 2
    functionLinenumber: 754
    functionLinenumberEnd: 767
    functionName: reftable_log_record_release
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 13
    functionsReached:
    - memset
    - reftable_free
    linkageType: ''
    returnType: void
    signature: void reftable_log_record_release(struct reftable_log_record *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_log_record_is_deletion
      Src: /src/git/reftable/record.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 775
    functionName: reftable_log_record_val_type
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_log_record_is_deletion
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t reftable_log_record_val_type(const void *rec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reftable_log_record_is_deletion
      Src: /src/git/reftable/record.c:783,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:789,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:790,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:791,1
    - Dst: encode_string
      Src: /src/git/reftable/record.c:793,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:796,1
    - Dst: encode_string
      Src: /src/git/reftable/record.c:798,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:802,1
    - Dst: put_var_int
      Src: /src/git/reftable/record.c:804,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:807,1
    - Dst: reftable_put_be16
      Src: /src/git/reftable/record.c:812,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:813,1
    - Dst: encode_string
      Src: /src/git/reftable/record.c:815,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:819,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - rec
    - s
    - hash_size
    argTypes:
    - void*
    - struct string_view
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 822
    functionName: reftable_log_record_encode
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_log_record_is_deletion
    - put_var_int
    - reftable_put_be16
    - memcpy
    - encode_string
    - string_view_consume
    linkageType: ''
    returnType: int
    signature: "int reftable_log_record_encode(const void *rec, struct string_view
      s,\n\t\t\t\t      uint32_t hash_size)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/record.c:837,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:843,1
    - Dst: reftable_get_be64
      Src: /src/git/reftable/record.c:844,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/record.c:851,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/record.c:853,1
    - Dst: REFTABLE_FREE_AND_NULL
      Src: /src/git/reftable/record.c:854,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:870,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:871,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:873,1
    - Dst: decode_string
      Src: /src/git/reftable/record.c:875,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:880,1
    - Dst: strcmp
      Src: /src/git/reftable/record.c:889,1
    - Dst: reftable_realloc
      Src: /src/git/reftable/record.c:890,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:897,1
    - Dst: decode_string
      Src: /src/git/reftable/record.c:901,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:906,1
    - Dst: strcmp
      Src: /src/git/reftable/record.c:910,1
    - Dst: reftable_realloc
      Src: /src/git/reftable/record.c:911,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:918,1
    - Dst: get_var_int
      Src: /src/git/reftable/record.c:923,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:928,1
    - Dst: reftable_get_be16
      Src: /src/git/reftable/record.c:935,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:936,1
    - Dst: decode_string
      Src: /src/git/reftable/record.c:938,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:943,1
    - Dst: REFTABLE_ALLOC_GROW_OR_NULL
      Src: /src/git/reftable/record.c:945,1
    - Dst: memcpy
      Src: /src/git/reftable/record.c:952,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 104
    argCount: 6
    argNames:
    - rec
    - key
    - val_type
    - in
    - hash_size
    - scratch
    argTypes:
    - void*
    - struct reftable_buf
    - uint8_t
    - struct string_view
    - uint32_t
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 959
    functionName: reftable_log_record_decode
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - REFTABLE_FREE_AND_NULL
    - REFTABLE_ALLOC_GROW_OR_NULL
    - reftable_get_be16
    - memcpy
    - reftable_realloc
    - string_view_consume
    - strcmp
    - decode_string
    - reftable_get_be64
    - get_var_int
    linkageType: ''
    returnType: int
    signature: "int reftable_log_record_decode(void *rec, struct reftable_buf key,\n\t\t\t\t
      \     uint8_t val_type, struct string_view in,\n\t\t\t\t      uint32_t hash_size,
      struct reftable_buf *scratch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/reftable/record.c:970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 971
    functionName: null_streq
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int null_streq(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_log_record_equal
      Src: /src/git/reftable/record.c:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - hash_size
    argTypes:
    - void*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 979
    functionName: reftable_log_record_equal_void
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_log_record_equal
    linkageType: ''
    returnType: int
    signature: "int reftable_log_record_equal_void(const void *a,\n\t\t\t\t\t  const
      void *b, uint32_t hash_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/reftable/record.c:985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 995
    functionName: reftable_log_record_cmp_void
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int reftable_log_record_cmp_void(const void *_a, const void *_b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_streq
      Src: /src/git/reftable/record.c:1000,1
    - Dst: null_streq
      Src: /src/git/reftable/record.c:1009,1
    - Dst: null_streq
      Src: /src/git/reftable/record.c:1012,1
    - Dst: null_streq
      Src: /src/git/reftable/record.c:1014,1
    - Dst: memcmp
      Src: /src/git/reftable/record.c:1016,1
    - Dst: memcmp
      Src: /src/git/reftable/record.c:1018,1
    - Dst: abort
      Src: /src/git/reftable/record.c:1022,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 3
    argNames:
    - a
    - b
    - hash_size
    argTypes:
    - struct reftable_log_record*
    - struct reftable_log_record*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1023
    functionName: reftable_log_record_equal
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 5
    functionsReached:
    - null_streq
    - abort
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int reftable_log_record_equal(const struct reftable_log_record *a,\n\t\t\t
      \     const struct reftable_log_record *b, uint32_t hash_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_log_record_is_deletion
      Src: /src/git/reftable/record.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1029
    functionName: reftable_log_record_is_deletion_void
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_log_record_is_deletion
    linkageType: ''
    returnType: int
    signature: int reftable_log_record_is_deletion_void(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/record.c:1047,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/record.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - dest
    argTypes:
    - void*
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1044
    functionDepth: 2
    functionLinenumber: 1044
    functionLinenumberEnd: 1049
    functionName: reftable_index_record_key
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_buf_add
    - reftable_buf_reset
    linkageType: ''
    returnType: int
    signature: int reftable_index_record_key(const void *r, struct reftable_buf *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/record.c:1058,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/record.c:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - rec
    - src_rec
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1051
    functionDepth: 2
    functionLinenumber: 1051
    functionLinenumberEnd: 1065
    functionName: reftable_index_record_copy_from
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_buf_add
    - reftable_buf_reset
    linkageType: ''
    returnType: int
    signature: "int reftable_index_record_copy_from(void *rec, const void *src_rec,\n\t\t\t\t\t
      \  uint32_t hash_size REFTABLE_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_release
      Src: /src/git/reftable/record.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1067
    functionDepth: 3
    functionLinenumber: 1067
    functionLinenumberEnd: 1071
    functionName: reftable_index_record_release
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_buf_release
    linkageType: ''
    returnType: void
    signature: void reftable_index_record_release(void *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - REFTABLE_UNUSED
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1076
    functionName: reftable_index_record_val_type
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t reftable_index_record_val_type(const void *rec REFTABLE_UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: put_var_int
      Src: /src/git/reftable/record.c:1085,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:1089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - rec
    - out
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - struct string_view
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1092
    functionName: reftable_index_record_encode
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - string_view_consume
    - put_var_int
    linkageType: ''
    returnType: int
    signature: "int reftable_index_record_encode(const void *rec, struct string_view
      out,\n\t\t\t\t\tuint32_t hash_size REFTABLE_UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/record.c:1104,1
    - Dst: reftable_buf_add
      Src: /src/git/reftable/record.c:1105,1
    - Dst: get_var_int
      Src: /src/git/reftable/record.c:1109,1
    - Dst: string_view_consume
      Src: /src/git/reftable/record.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - rec
    - key
    - REFTABLE_UNUSED
    - in
    - REFTABLE_UNUSED
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - struct reftable_buf
    - uint8_t
    - struct string_view
    - uint32_t
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1094
    functionDepth: 2
    functionLinenumber: 1094
    functionLinenumberEnd: 1115
    functionName: reftable_index_record_decode
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - get_var_int
    - reftable_buf_add
    - reftable_buf_reset
    - string_view_consume
    linkageType: ''
    returnType: int
    signature: "int reftable_index_record_decode(void *rec, struct reftable_buf key,\n\t\t\t\t\tuint8_t
      val_type REFTABLE_UNUSED,\n\t\t\t\t\tstruct string_view in,\n\t\t\t\t\tuint32_t
      hash_size REFTABLE_UNUSED,\n\t\t\t\t\tstruct reftable_buf *scratch REFTABLE_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_cmp
      Src: /src/git/reftable/record.c:1123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - REFTABLE_UNUSED
    argTypes:
    - void*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1124
    functionName: reftable_index_record_equal
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_buf_cmp
    linkageType: ''
    returnType: int
    signature: "int reftable_index_record_equal(const void *a, const void *b,\n\t\t\t\t
      \      uint32_t hash_size REFTABLE_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_cmp
      Src: /src/git/reftable/record.c:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1131
    functionName: reftable_index_record_cmp
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - reftable_buf_cmp
    linkageType: ''
    returnType: int
    signature: int reftable_index_record_cmp(const void *_a, const void *_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_vtable
      Src: /src/git/reftable/record.c:1148,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rec
    - dest
    argTypes:
    - struct reftable_record*
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1149
    functionName: reftable_record_key
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 13
    functionsReached:
    - reftable_record_vtable
    - reftable_record_data
    linkageType: ''
    returnType: int
    signature: int reftable_record_key(struct reftable_record *rec, struct reftable_buf
      *dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_vtable
      Src: /src/git/reftable/record.c:1154,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rec
    - dest
    - hash_size
    argTypes:
    - struct reftable_record*
    - struct string_view
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1156
    functionName: reftable_record_encode
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 5
    functionsReached:
    - reftable_record_vtable
    - reftable_record_data
    linkageType: ''
    returnType: int
    signature: "int reftable_record_encode(struct reftable_record *rec, struct string_view
      dest,\n\t\t\t   uint32_t hash_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/reftable/record.c:1161,1
    - Dst: reftable_record_vtable
      Src: /src/git/reftable/record.c:1163,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1163,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - rec
    - src
    - hash_size
    argTypes:
    - struct reftable_record*
    - struct reftable_record*
    - uint32_t
    assertStmts:
    - condition: (src->type == rec->type)
      pos:
        line_end: 1160
        line_start: 1160
        source_file: /src/git/reftable/record.c
    constantsTouched: []
    func_position:
      end: 1166
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1166
    functionName: reftable_record_copy_from
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 1
    functionsReached:
    - reftable_record_vtable
    - assert
    - reftable_record_data
    linkageType: ''
    returnType: int
    signature: "int reftable_record_copy_from(struct reftable_record *rec,\n\t\t\t
      \      struct reftable_record *src, uint32_t hash_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_vtable
      Src: /src/git/reftable/record.c:1170,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1171
    functionName: reftable_record_val_type
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 5
    functionsReached:
    - reftable_record_vtable
    - reftable_record_data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t reftable_record_val_type(struct reftable_record *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_vtable
      Src: /src/git/reftable/record.c:1177,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - rec
    - key
    - extra
    - src
    - hash_size
    - scratch
    argTypes:
    - struct reftable_record*
    - struct reftable_buf
    - uint8_t
    - struct string_view
    - uint32_t
    - struct reftable_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1180
    functionName: reftable_record_decode
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 5
    functionsReached:
    - reftable_record_vtable
    - reftable_record_data
    linkageType: ''
    returnType: int
    signature: "int reftable_record_decode(struct reftable_record *rec, struct reftable_buf
      key,\n\t\t\t   uint8_t extra, struct string_view src, uint32_t hash_size,\n\t\t\t
      \  struct reftable_buf *scratch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_vtable
      Src: /src/git/reftable/record.c:1184,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1185
    functionName: reftable_record_release
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 18
    functionsReached:
    - reftable_record_vtable
    - reftable_record_data
    linkageType: ''
    returnType: void
    signature: void reftable_record_release(struct reftable_record *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_vtable
      Src: /src/git/reftable/record.c:1189,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1191
    functionName: reftable_record_is_deletion
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 4
    functionsReached:
    - reftable_record_vtable
    - reftable_record_data
    linkageType: ''
    returnType: int
    signature: int reftable_record_is_deletion(struct reftable_record *rec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_vtable
      Src: /src/git/reftable/record.c:1198,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1198,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - cmp
    argTypes:
    - struct reftable_record*
    - struct reftable_record*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1201
    functionName: reftable_record_cmp
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 7
    functionsReached:
    - reftable_record_vtable
    - reftable_record_data
    linkageType: ''
    returnType: int
    signature: "int reftable_record_cmp(struct reftable_record *a, struct reftable_record
      *b,\n\t\t\tint *cmp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_record_vtable
      Src: /src/git/reftable/record.c:1207,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1208,1
    - Dst: reftable_record_data
      Src: /src/git/reftable/record.c:1208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - hash_size
    argTypes:
    - struct reftable_record*
    - struct reftable_record*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1209
    functionName: reftable_record_equal
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 12
    functionsReached:
    - reftable_record_vtable
    - reftable_record_data
    linkageType: ''
    returnType: int
    signature: int reftable_record_equal(struct reftable_record *a, struct reftable_record
      *b, uint32_t hash_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/reftable/record.c:1214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - hash_size
    argTypes:
    - unsigned char*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1217
    functionName: hash_equal
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int hash_equal(const unsigned char *a, const unsigned char *b, uint32_t
      hash_size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: null_streq
      Src: /src/git/reftable/record.c:1222,1
    - Dst: strcmp
      Src: /src/git/reftable/record.c:1231,1
    - Dst: hash_equal
      Src: /src/git/reftable/record.c:1233,1
    - Dst: hash_equal
      Src: /src/git/reftable/record.c:1235,1
    - Dst: hash_equal
      Src: /src/git/reftable/record.c:1238,1
    - Dst: abort
      Src: /src/git/reftable/record.c:1242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - a
    - b
    - hash_size
    argTypes:
    - struct reftable_ref_record*
    - struct reftable_ref_record*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1244
    functionName: reftable_ref_record_equal
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 15
    functionsReached:
    - null_streq
    - hash_equal
    - abort
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int reftable_ref_record_equal(const struct reftable_ref_record *a,\n\t\t\t
      \     const struct reftable_ref_record *b, uint32_t hash_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/reftable/record.c:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1250
    functionName: reftable_ref_record_compare_name
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int reftable_ref_record_compare_name(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct reftable_ref_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1255
    functionName: reftable_ref_record_is_deletion
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int reftable_ref_record_is_deletion(const struct reftable_ref_record
      *ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/reftable/record.c:1262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1268
    functionName: reftable_log_record_compare_key
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int reftable_log_record_compare_key(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct reftable_log_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1273
    functionName: reftable_log_record_is_deletion
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int reftable_log_record_is_deletion(const struct reftable_log_record
      *log)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/git/reftable/record.c:1287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1288
    functionName: reftable_record_data
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 9
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void *reftable_record_data(struct reftable_record *rec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/git/reftable/record.c:1303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct reftable_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1304
    functionName: reftable_record_vtable
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 9
    functionsReached:
    - abort
    linkageType: ''
    returnType: struct reftable_record_vtable
    signature: 'struct reftable_record_vtable *

      reftable_record_vtable(struct reftable_record *rec)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/reftable/record.c:1308,1
    - Dst: reftable_buf_init
      Src: /src/git/reftable/record.c:1317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - rec
    - typ
    argTypes:
    - struct reftable_record*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1306
    functionDepth: 1
    functionLinenumber: 1306
    functionLinenumberEnd: 1322
    functionName: reftable_record_init
    functionSourceFile: /src/git/reftable/record.c
    functionUses: 7
    functionsReached:
    - memset
    - reftable_buf_init
    linkageType: ''
    returnType: int
    signature: int reftable_record_init(struct reftable_record *rec, uint8_t typ)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strtoull
      Src: /src/git/reftable/fsck.c:14,1
    - Dst: strtoull
      Src: /src/git/reftable/fsck.c:23,1
    - Dst: strtoul
      Src: /src/git/reftable/fsck.c:32,1
    - Dst: strcmp
      Src: /src/git/reftable/fsck.c:37,1
    - Dst: strcmp
      Src: /src/git/reftable/fsck.c:37,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 41
    functionName: table_has_valid_name
    functionSourceFile: /src/git/reftable/fsck.c
    functionUses: 0
    functionsReached:
    - strtoull
    - strcmp
    - strtoul
    linkageType: ''
    returnType: bool
    signature: bool table_has_valid_name(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: table_has_valid_name
      Src: /src/git/reftable/fsck.c:51,1
    - Dst: report_fn
      Src: /src/git/reftable/fsck.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - table
    - report_fn
    - cb_data
    argTypes:
    - struct reftable_table*
    - reftable_fsck_report_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: table_check_name
    functionSourceFile: /src/git/reftable/fsck.c
    functionUses: 0
    functionsReached:
    - table_has_valid_name
    - report_fn
    linkageType: ''
    returnType: int
    signature: "int table_check_name(struct reftable_table *table,\n\t\t\t    reftable_fsck_report_fn
      report_fn,\n\t\t\t    void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - table
    - report_fn
    - verbose_fn REFTABLE_UNUSED
    - cb_data
    argTypes:
    - struct reftable_table*
    - reftable_fsck_report_fn
    - reftable_fsck_verbose_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: table_checks
    functionSourceFile: /src/git/reftable/fsck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int table_checks(struct reftable_table *table,\n\t\t\treftable_fsck_report_fn
      report_fn,\n\t\t\treftable_fsck_verbose_fn verbose_fn REFTABLE_UNUSED,\n\t\t\tvoid
      *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_buf_reset
      Src: /src/git/reftable/fsck.c:90,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/fsck.c:91,1
    - Dst: reftable_buf_addstr
      Src: /src/git/reftable/fsck.c:92,1
    - Dst: verbose_fn
      Src: /src/git/reftable/fsck.c:93,1
    - Dst: table_checks
      Src: /src/git/reftable/fsck.c:95,1
    - Dst: reftable_buf_release
      Src: /src/git/reftable/fsck.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - stack
    - report_fn
    - verbose_fn
    - cb_data
    argTypes:
    - struct reftable_stack*
    - reftable_fsck_report_fn
    - reftable_fsck_verbose_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 100
    functionName: reftable_fsck_check
    functionSourceFile: /src/git/reftable/fsck.c
    functionUses: 0
    functionsReached:
    - reftable_buf_addstr
    - reftable_buf_reset
    - table_checks
    - reftable_buf_release
    - verbose_fn
    linkageType: ''
    returnType: int
    signature: "int reftable_fsck_check(struct reftable_stack *stack,\n\t\t\treftable_fsck_report_fn
      report_fn,\n\t\t\treftable_fsck_verbose_fn verbose_fn,\n\t\t\tvoid *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/tools/coccinelle/tests/free.c:3,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5
      start: 1
    functionDepth: 1
    functionLinenumber: 1
    functionLinenumberEnd: 5
    functionName: use_FREE_AND_NULL
    functionSourceFile: /src/git/tools/coccinelle/tests/free.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int use_FREE_AND_NULL(int *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/tools/coccinelle/tests/free.c:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 11
    functionName: need_no_if
    functionSourceFile: /src/git/tools/coccinelle/tests/free.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int need_no_if(int *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/win32mmap.c:14,1
    - Dst: GetFileSizeEx
      Src: /src/git/compat/win32mmap.c:15,1
    - Dst: die
      Src: /src/git/compat/win32mmap.c:16,1
    - Dst: xsize_t
      Src: /src/git/compat/win32mmap.c:19,1
    - Dst: die
      Src: /src/git/compat/win32mmap.c:22,1
    - Dst: CreateFileMapping
      Src: /src/git/compat/win32mmap.c:24,1
    - Dst: MapViewOfFileEx
      Src: /src/git/compat/win32mmap.c:32,1
    - Dst: CloseHandle
      Src: /src/git/compat/win32mmap.c:35,1
    - Dst: warning
      Src: /src/git/compat/win32mmap.c:36,1
    - Dst: GetLastError
      Src: /src/git/compat/win32mmap.c:41,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - start
    - length
    - prot
    - flags
    - fd
    - offset
    argTypes:
    - void*
    - size_t
    - int
    - int
    - int
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 43
    functionName: git_mmap
    functionSourceFile: /src/git/compat/win32mmap.c
    functionUses: 0
    functionsReached:
    - die
    - MapViewOfFileEx
    - GetLastError
    - _get_osfhandle
    - xsize_t
    - GetFileSizeEx
    - CloseHandle
    - warning
    - CreateFileMapping
    linkageType: ''
    returnType: void
    signature: void *git_mmap(void *start, size_t length, int prot, int flags, int
      fd, off_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnmapViewOfFile
      Src: /src/git/compat/win32mmap.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: git_munmap
    functionSourceFile: /src/git/compat/win32mmap.c
    functionUses: 0
    functionsReached:
    - UnmapViewOfFile
    linkageType: ''
    returnType: int
    signature: int git_munmap(void *start, size_t length UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/strlcpy.c:5,1
    - Dst: memcpy
      Src: /src/git/compat/strlcpy.c:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 13
    functionName: gitstrlcpy
    functionSourceFile: /src/git/compat/strlcpy.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t gitstrlcpy(char *dest, const char *src, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: HCAST
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCAST(type, handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/compat/mingw.c:35,1
    - Dst: strvec_pushf
      Src: /src/git/compat/mingw.c:36,1
    - Dst: getpid
      Src: /src/git/compat/mingw.c:36,1
    - Dst: start_command
      Src: /src/git/compat/mingw.c:38,1
    - Dst: die_errno
      Src: /src/git/compat/mingw.c:39,1
    - Dst: sleep
      Src: /src/git/compat/mingw.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 7
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: open_in_gdb
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - strvec_pushl
    - die_errno
    - getpid
    - sleep
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: void
    signature: void open_in_gdb(void)
  - BBCount: 112
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/compat/mingw.c:149,1
    CyclomaticComplexity: 111
    EdgeCount: 111
    ICount: 336
    argCount: 1
    argNames:
    - winerr
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 160
    functionName: err_win_to_posix
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 1
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: int err_win_to_posix(DWORD winerr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: is_file_in_use_error
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_file_in_use_error(DWORD errcode)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/git/compat/mingw.c:177,1
    - Dst: strlen
      Src: /src/git/compat/mingw.c:178,1
    - Dst: getchar
      Src: /src/git/compat/mingw.c:191,1
    - Dst: tolower
      Src: /src/git/compat/mingw.c:198,1
    - Dst: strncasecmp
      Src: /src/git/compat/mingw.c:200,1
    - Dst: tolower
      Src: /src/git/compat/mingw.c:202,1
    - Dst: strncasecmp
      Src: /src/git/compat/mingw.c:204,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 209
    functionName: read_yes_no_answer
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - fgets
    - strncasecmp
    - strlen
    - getchar
    - tolower
    linkageType: ''
    returnType: int
    signature: int read_yes_no_answer(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/git/compat/mingw.c:216,1
    - Dst: mingw_getenv
      Src: /src/git/compat/mingw.c:218,1
    - Dst: strvec_pushl
      Src: /src/git/compat/mingw.c:222,1
    - Dst: run_command
      Src: /src/git/compat/mingw.c:223,1
    - Dst: isatty
      Src: /src/git/compat/mingw.c:226,1
    - Dst: _fileno
      Src: /src/git/compat/mingw.c:226,1
    - Dst: isatty
      Src: /src/git/compat/mingw.c:226,1
    - Dst: _fileno
      Src: /src/git/compat/mingw.c:226,1
    - Dst: fprintf
      Src: /src/git/compat/mingw.c:231,1
    - Dst: read_yes_no_answer
      Src: /src/git/compat/mingw.c:233,1
    - Dst: fprintf
      Src: /src/git/compat/mingw.c:236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 211
    functionDepth: 8
    functionLinenumber: 211
    functionLinenumberEnd: 239
    functionName: ask_yes_no_if_possible
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - run_command
    - strvec_pushl
    - mingw_getenv
    - read_yes_no_answer
    - vsnprintf
    - isatty
    - _fileno
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ask_yes_no_if_possible(const char *format, va_list args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:247,1
    - Dst: Sleep
      Src: /src/git/compat/mingw.c:254,1
    - Dst: va_start
      Src: /src/git/compat/mingw.c:259,1
    - Dst: ask_yes_no_if_possible
      Src: /src/git/compat/mingw.c:260,1
    - Dst: va_end
      Src: /src/git/compat/mingw.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - tries
    - format
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 241
    functionDepth: 9
    functionLinenumber: 241
    functionLinenumberEnd: 264
    functionName: retry_ask_yes_no
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - va_end
    - ask_yes_no_if_possible
    - Sleep
    - va_start
    linkageType: ''
    returnType: int
    signature: int retry_ask_yes_no(int *tries, const char *format, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/compat/mingw.c:280,1
    - Dst: strcasecmp
      Src: /src/git/compat/mingw.c:281,1
    - Dst: git_config_bool
      Src: /src/git/compat/mingw.c:284,1
    - Dst: strcmp
      Src: /src/git/compat/mingw.c:288,1
    - Dst: config_error_nonbool
      Src: /src/git/compat/mingw.c:290,1
    - Dst: free
      Src: /src/git/compat/mingw.c:291,1
    - Dst: xstrdup
      Src: /src/git/compat/mingw.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 276
    functionDepth: 6
    functionLinenumber: 276
    functionLinenumberEnd: 297
    functionName: mingw_core_config
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - strcasecmp
    - strcmp
    - free
    - config_error_nonbool
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int mingw_core_config(const char *var, const char *value,\n\t\t      const
      struct config_context *ctx UNUSED,\n\t\t      void *cb UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - wchar
    argTypes:
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: is_wdir_sep
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_wdir_sep(wchar_t wchar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/git/compat/mingw.c:308,1
    - Dst: is_wdir_sep
      Src: /src/git/compat/mingw.c:311,1
    - Dst: iswalpha
      Src: /src/git/compat/mingw.c:312,1
    - Dst: is_wdir_sep
      Src: /src/git/compat/mingw.c:312,1
    - Dst: is_wdir_sep
      Src: /src/git/compat/mingw.c:315,1
    - Dst: wcslen
      Src: /src/git/compat/mingw.c:322,1
    - Dst: error
      Src: /src/git/compat/mingw.c:324,1
    - Dst: memcpy
      Src: /src/git/compat/mingw.c:329,1
    - Dst: wcscpy
      Src: /src/git/compat/mingw.c:330,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - path
    - relative_to
    - out
    - size
    argTypes:
    - wchar_t*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 332
    functionName: make_relative_to
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - error
    - wcslen
    - iswalpha
    - memcpy
    - is_wdir_sep
    - wcscpy
    linkageType: ''
    returnType: wchar_t
    signature: "wchar_t *make_relative_to(const wchar_t *path,\n\t\t\t\t       const
      wchar_t *relative_to, wchar_t *out,\n\t\t\t\t       size_t size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesW
      Src: /src/git/compat/mingw.c:355,1
    - Dst: make_relative_to
      Src: /src/git/compat/mingw.c:361,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:361,1
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:366,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:370,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:370,1
    - Dst: GetFileInformationByHandle
      Src: /src/git/compat/mingw.c:374,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:375,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:375,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:376,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:379,1
    - Dst: DeleteFileW
      Src: /src/git/compat/mingw.c:386,1
    - Dst: CreateSymbolicLinkW
      Src: /src/git/compat/mingw.c:387,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:390,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - wtarget
    - wlink
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 392
    functionName: process_phantom_symlink
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - GetFileInformationByHandle
    - ARRAY_SIZE
    - DeleteFileW
    - CreateFileW
    - GetFileAttributesW
    - GetLastError
    - err_win_to_posix
    - CreateSymbolicLinkW
    - CloseHandle
    - make_relative_to
    linkageType: ''
    returnType: enum phantom_symlink_result
    signature: enum phantom_symlink_result process_phantom_symlink(const wchar_t *wtarget,
      const wchar_t *wlink)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/git/compat/mingw.c:407,1
    - Dst: process_phantom_symlink
      Src: /src/git/compat/mingw.c:411,1
    - Dst: free
      Src: /src/git/compat/mingw.c:418,1
    - Dst: LeaveCriticalSection
      Src: /src/git/compat/mingw.c:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 425
    functionName: process_phantom_symlinks
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    - EnterCriticalSection
    - process_phantom_symlink
    - free
    linkageType: ''
    returnType: void
    signature: void process_phantom_symlinks(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: wcsncmp
      Src: /src/git/compat/mingw.c:434,1
    - Dst: wcsncmp
      Src: /src/git/compat/mingw.c:435,1
    - Dst: wcsnicmp
      Src: /src/git/compat/mingw.c:437,1
    - Dst: wcsnicmp
      Src: /src/git/compat/mingw.c:440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - wbuf
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 450
    functionName: normalize_ntpath
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - wcsnicmp
    - wcsncmp
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *normalize_ntpath(wchar_t *wbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:465,1
    - Dst: SetFileInformationByHandle
      Src: /src/git/compat/mingw.c:473,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:475,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:478,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:479,1
    - Dst: SetLastError
      Src: /src/git/compat/mingw.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - wpathname
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 482
    functionName: legacy_delete_file
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - GetLastError
    - SetFileInformationByHandle
    - SetLastError
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int legacy_delete_file(const wchar_t *wpathname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: legacy_delete_file
      Src: /src/git/compat/mingw.c:487,1
    - Dst: DeleteFileW
      Src: /src/git/compat/mingw.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - wpathname
    - use_legacy
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: try_delete_file
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - DeleteFileW
    - legacy_delete_file
    linkageType: ''
    returnType: int
    signature: int try_delete_file(const wchar_t *wpathname, int use_legacy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:496,1
    - Dst: git_env_bool
      Src: /src/git/compat/mingw.c:500,1
    - Dst: try_delete_file
      Src: /src/git/compat/mingw.c:502,1
    - Dst: _wchmod
      Src: /src/git/compat/mingw.c:507,1
    - Dst: try_delete_file
      Src: /src/git/compat/mingw.c:508,1
    - Dst: is_file_in_use_error
      Src: /src/git/compat/mingw.c:510,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:510,1
    - Dst: _wrmdir
      Src: /src/git/compat/mingw.c:517,1
    - Dst: retry_ask_yes_no
      Src: /src/git/compat/mingw.c:522,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - pathname
    - handle_in_use_error
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 491
    functionDepth: 10
    functionLinenumber: 491
    functionLinenumberEnd: 525
    functionName: mingw_unlink
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - git_env_bool
    - GetLastError
    - xutftowcs_path
    - is_file_in_use_error
    - retry_ask_yes_no
    - _wchmod
    - try_delete_file
    - _wrmdir
    linkageType: ''
    returnType: int
    signature: int mingw_unlink(const char *pathname, int handle_in_use_error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcscpy
      Src: /src/git/compat/mingw.c:532,1
    - Dst: wcscat
      Src: /src/git/compat/mingw.c:533,1
    - Dst: FindFirstFileW
      Src: /src/git/compat/mingw.c:534,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:536,1
    - Dst: wcscmp
      Src: /src/git/compat/mingw.c:538,1
    - Dst: wcscmp
      Src: /src/git/compat/mingw.c:539,1
    - Dst: FindNextFileW
      Src: /src/git/compat/mingw.c:540,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:541,1
    - Dst: FindClose
      Src: /src/git/compat/mingw.c:542,1
    - Dst: FindClose
      Src: /src/git/compat/mingw.c:545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - wpath
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 547
    functionName: is_dir_empty
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - wcscmp
    - FindFirstFileW
    - wcscat
    - FindNextFileW
    - FindClose
    - wcscpy
    linkageType: ''
    returnType: int
    signature: int is_dir_empty(const wchar_t *wpath)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mingw_lstat
      Src: /src/git/compat/mingw.c:569,1
    - Dst: S_ISLNK
      Src: /src/git/compat/mingw.c:569,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:574,1
    - Dst: _wrmdir
      Src: /src/git/compat/mingw.c:578,1
    - Dst: invalidate_lstat_cache
      Src: /src/git/compat/mingw.c:579,1
    - Dst: is_file_in_use_error
      Src: /src/git/compat/mingw.c:582,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:582,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:583,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:583,1
    - Dst: is_dir_empty
      Src: /src/git/compat/mingw.c:586,1
    - Dst: retry_ask_yes_no
      Src: /src/git/compat/mingw.c:590,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - pathname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 549
    functionDepth: 10
    functionLinenumber: 549
    functionLinenumberEnd: 593
    functionName: mingw_rmdir
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - mingw_lstat
    - S_ISLNK
    - GetLastError
    - xutftowcs_path
    - is_file_in_use_error
    - retry_ask_yes_no
    - err_win_to_posix
    - is_dir_empty
    - invalidate_lstat_cache
    - _wrmdir
    linkageType: ''
    returnType: int
    signature: int mingw_rmdir(const char *pathname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: win32_skip_dos_drive_prefix
      Src: /src/git/compat/mingw.c:603,1
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:608,1
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:611,1
    - Dst: assert
      Src: /src/git/compat/mingw.c:622,1
    - Dst: strncasecmp
      Src: /src/git/compat/mingw.c:623,1
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:624,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts:
    - condition: (hide_dotfiles == HIDE_DOTFILES_DOTGITONLY)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/git/compat/mingw.c
    constantsTouched: []
    func_position:
      end: 625
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 625
    functionName: needs_hiding
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strncasecmp
    - assert
    - win32_skip_dos_drive_prefix
    linkageType: ''
    returnType: int
    signature: int needs_hiding(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesW
      Src: /src/git/compat/mingw.c:629,1
    - Dst: SetFileAttributesW
      Src: /src/git/compat/mingw.c:634,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:636,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - path
    - set
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 638
    functionName: set_hidden_flag
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - GetFileAttributesW
    - SetFileAttributesW
    - GetLastError
    - err_win_to_posix
    linkageType: ''
    returnType: int
    signature: int set_hidden_flag(const wchar_t *path, int set)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_win32_path
      Src: /src/git/compat/mingw.c:645,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:650,1
    - Dst: _wmkdir
      Src: /src/git/compat/mingw.c:652,1
    - Dst: process_phantom_symlinks
      Src: /src/git/compat/mingw.c:654,1
    - Dst: needs_hiding
      Src: /src/git/compat/mingw.c:655,1
    - Dst: set_hidden_flag
      Src: /src/git/compat/mingw.c:656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - path
    - UNUSED
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 640
    functionDepth: 4
    functionLinenumber: 640
    functionLinenumberEnd: 658
    functionName: mingw_mkdir
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - is_valid_win32_path
    - set_hidden_flag
    - xutftowcs_path
    - _wmkdir
    - process_phantom_symlinks
    - needs_hiding
    linkageType: ''
    returnType: int
    signature: int mingw_mkdir(const char *path, int mode UNUSED)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:689,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:693,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:704,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/mingw.c:714,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - wfilename
    - oflags
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 718
    functionName: mingw_open_append
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - GetLastError
    - err_win_to_posix
    - CloseHandle
    - _open_osfhandle
    linkageType: ''
    returnType: int
    signature: int mingw_open_append(wchar_t const *wfilename, int oflags, ...)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:764,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:768,1
    - Dst: GetFileAttributesW
      Src: /src/git/compat/mingw.c:770,1
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:772,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:778,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:784,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/mingw.c:789,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:791,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - filename
    - oflags
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 793
    functionName: mingw_open_existing
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - GetFileAttributesW
    - GetLastError
    - err_win_to_posix
    - CloseHandle
    - _open_osfhandle
    linkageType: ''
    returnType: int
    signature: int mingw_open_existing(const wchar_t *filename, int oflags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:801,1
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:802,1
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:804,1
    - Dst: strncasecmp
      Src: /src/git/compat/mingw.c:805,1
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 808
    functionName: is_local_named_pipe_path
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int is_local_named_pipe_path(const char *filename)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_PROC_ADDR
      Src: /src/git/compat/mingw.c:820,1
    - Dst: va_start
      Src: /src/git/compat/mingw.c:822,1
    - Dst: va_arg
      Src: /src/git/compat/mingw.c:823,1
    - Dst: va_end
      Src: /src/git/compat/mingw.c:824,1
    - Dst: is_valid_win32_path
      Src: /src/git/compat/mingw.c:826,1
    - Dst: is_local_named_pipe_path
      Src: /src/git/compat/mingw.c:831,1
    - Dst: strcmp
      Src: /src/git/compat/mingw.c:838,1
    - Dst: wcscpy
      Src: /src/git/compat/mingw.c:839,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:840,1
    - Dst: GetFileAttributesExW
      Src: /src/git/compat/mingw.c:850,1
    - Dst: open_fn
      Src: /src/git/compat/mingw.c:856,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:870,1
    - Dst: INIT_PROC_ADDR
      Src: /src/git/compat/mingw.c:871,1
    - Dst: RtlGetLastNtStatus
      Src: /src/git/compat/mingw.c:871,1
    - Dst: GetFileAttributesW
      Src: /src/git/compat/mingw.c:874,1
    - Dst: needs_hiding
      Src: /src/git/compat/mingw.c:878,1
    - Dst: open_fn
      Src: /src/git/compat/mingw.c:889,1
    - Dst: set_hidden_flag
      Src: /src/git/compat/mingw.c:890,1
    - Dst: warning
      Src: /src/git/compat/mingw.c:891,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 36
    argCount: 2
    argNames:
    - filename
    - oflags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 894
    functionName: mingw_open
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - needs_hiding
    - is_valid_win32_path
    - GetLastError
    - GetFileAttributesW
    - xutftowcs_path
    - set_hidden_flag
    - DECLARE_PROC_ADDR
    - va_end
    - RtlGetLastNtStatus
    - va_arg
    - wcscpy
    - GetFileAttributesExW
    - is_local_named_pipe_path
    - INIT_PROC_ADDR
    - strcmp
    - va_start
    - warning
    - open_fn
    linkageType: ''
    returnType: int
    signature: int mingw_open (const char *filename, int oflags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 899
    functionName: ctrl_ignore
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL ctrl_ignore(DWORD type UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/compat/mingw.c:905,1
    - Dst: _fileno
      Src: /src/git/compat/mingw.c:905,1
    - Dst: fgetc
      Src: /src/git/compat/mingw.c:906,1
    - Dst: SetConsoleCtrlHandler
      Src: /src/git/compat/mingw.c:908,1
    - Dst: fgetc
      Src: /src/git/compat/mingw.c:910,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:911,1
    - Dst: mingw_raise
      Src: /src/git/compat/mingw.c:915,1
    - Dst: SetConsoleCtrlHandler
      Src: /src/git/compat/mingw.c:917,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - stream
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 919
    functionName: mingw_fgetc
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - SetConsoleCtrlHandler
    - isatty
    - GetLastError
    - mingw_raise
    - fgetc
    - _fileno
    linkageType: ''
    returnType: int
    signature: int mingw_fgetc(FILE *stream)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: needs_hiding
      Src: /src/git/compat/mingw.c:924,1
    - Dst: strcmp
      Src: /src/git/compat/mingw.c:927,1
    - Dst: wcscpy
      Src: /src/git/compat/mingw.c:928,1
    - Dst: is_valid_win32_path
      Src: /src/git/compat/mingw.c:929,1
    - Dst: strchr
      Src: /src/git/compat/mingw.c:930,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:933,1
    - Dst: xutftowcs
      Src: /src/git/compat/mingw.c:936,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:936,1
    - Dst: access
      Src: /src/git/compat/mingw.c:939,1
    - Dst: set_hidden_flag
      Src: /src/git/compat/mingw.c:939,1
    - Dst: error
      Src: /src/git/compat/mingw.c:940,1
    - Dst: _wfopen
      Src: /src/git/compat/mingw.c:943,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:944,1
    - Dst: set_hidden_flag
      Src: /src/git/compat/mingw.c:946,1
    - Dst: warning
      Src: /src/git/compat/mingw.c:947,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 2
    argNames:
    - filename
    - otype
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 922
    functionDepth: 3
    functionLinenumber: 922
    functionLinenumberEnd: 949
    functionName: mingw_fopen
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - error
    - ARRAY_SIZE
    - is_valid_win32_path
    - access
    - set_hidden_flag
    - xutftowcs_path
    - xutftowcs
    - strchr
    - GetLastError
    - _wfopen
    - wcscpy
    - strcmp
    - warning
    - needs_hiding
    linkageType: ''
    returnType: FILE
    signature: FILE *mingw_fopen (const char *filename, const char *otype)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: needs_hiding
      Src: /src/git/compat/mingw.c:953,1
    - Dst: strcmp
      Src: /src/git/compat/mingw.c:956,1
    - Dst: wcscpy
      Src: /src/git/compat/mingw.c:957,1
    - Dst: is_valid_win32_path
      Src: /src/git/compat/mingw.c:958,1
    - Dst: strchr
      Src: /src/git/compat/mingw.c:959,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:962,1
    - Dst: xutftowcs
      Src: /src/git/compat/mingw.c:965,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:965,1
    - Dst: access
      Src: /src/git/compat/mingw.c:968,1
    - Dst: set_hidden_flag
      Src: /src/git/compat/mingw.c:968,1
    - Dst: error
      Src: /src/git/compat/mingw.c:969,1
    - Dst: _wfreopen
      Src: /src/git/compat/mingw.c:972,1
    - Dst: set_hidden_flag
      Src: /src/git/compat/mingw.c:973,1
    - Dst: warning
      Src: /src/git/compat/mingw.c:974,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 3
    argNames:
    - filename
    - otype
    - stream
    argTypes:
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 951
    functionDepth: 3
    functionLinenumber: 951
    functionLinenumberEnd: 976
    functionName: mingw_freopen
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - error
    - ARRAY_SIZE
    - _wfreopen
    - is_valid_win32_path
    - access
    - set_hidden_flag
    - xutftowcs_path
    - xutftowcs
    - strchr
    - wcscpy
    - strcmp
    - warning
    - needs_hiding
    linkageType: ''
    returnType: FILE
    signature: FILE *mingw_freopen (const char *filename, const char *otype, FILE
      *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/git/compat/mingw.c:981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 998
    functionName: mingw_fflush
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - fflush
    linkageType: ''
    returnType: int
    signature: int mingw_fflush(FILE *stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/git/compat/mingw.c:1003,1
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.c:1009,1
    - Dst: GetFileType
      Src: /src/git/compat/mingw.c:1010,1
    - Dst: GetNamedPipeInfo
      Src: /src/git/compat/mingw.c:1017,1
    - Dst: write
      Src: /src/git/compat/mingw.c:1020,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1026
    functionName: mingw_write
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - _get_osfhandle
    - write
    - GetNamedPipeInfo
    - GetFileType
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mingw_write(int fd, const void *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/compat/mingw.c:1031,1
    - Dst: strcmp
      Src: /src/git/compat/mingw.c:1031,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:1033,1
    - Dst: _waccess
      Src: /src/git/compat/mingw.c:1036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1037
    functionName: mingw_access
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - _waccess
    - xutftowcs_path
    - strcmp
    linkageType: ''
    returnType: int
    signature: int mingw_access(const char *filename, int mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:1043,1
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:1047,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:1051,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1051,1
    - Dst: GetFinalPathNameByHandleW
      Src: /src/git/compat/mingw.c:1054,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:1054,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:1055,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1055,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1056,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1059,1
    - Dst: _wchdir
      Src: /src/git/compat/mingw.c:1062,1
    - Dst: normalize_ntpath
      Src: /src/git/compat/mingw.c:1062,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1063
    functionName: mingw_chdir
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - CreateFileW
    - normalize_ntpath
    - GetLastError
    - xutftowcs_path
    - GetFinalPathNameByHandleW
    - err_win_to_posix
    - _wchdir
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int mingw_chdir(const char *dirname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:1068,1
    - Dst: _wchmod
      Src: /src/git/compat/mingw.c:1070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1071
    functionName: mingw_chmod
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - xutftowcs_path
    - _wchmod
    linkageType: ''
    returnType: int
    signature: int mingw_chmod(const char *filename, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - FILETIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1082
    functionName: filetime_to_hnsec
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long long
    signature: long long filetime_to_hnsec(const FILETIME *ft)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filetime_to_hnsec
      Src: /src/git/compat/mingw.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ft
    - ts
    argTypes:
    - FILETIME*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1089
    functionName: filetime_to_timespec
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - filetime_to_hnsec
    linkageType: ''
    returnType: void
    signature: void filetime_to_timespec(const FILETIME *ft, struct timespec *ts)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/git/compat/mingw.c:1096,1
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:1102,1
    - Dst: GetFileAttributesW
      Src: /src/git/compat/mingw.c:1106,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - wfilename
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1122
    functionName: has_valid_directory_prefix
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - wcslen
    - GetFileAttributesW
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int has_valid_directory_prefix(wchar_t *wfilename)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/git/compat/mingw.c:1165,1
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:1169,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:1174,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1174,1
    - Dst: DeviceIoControl
      Src: /src/git/compat/mingw.c:1177,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:1179,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1179,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1180,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1183,1
    - Dst: xwcstoutf
      Src: /src/git/compat/mingw.c:1210,1
    - Dst: normalize_ntpath
      Src: /src/git/compat/mingw.c:1210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 5
    argNames:
    - wpath
    - fail_on_unknown_tag
    - tmpbuf
    - plen
    - ptag
    argTypes:
    - WCHAR*
    - BOOL
    - char*
    - int*
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1213
    functionName: read_reparse_point
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - normalize_ntpath
    - GetLastError
    - err_win_to_posix
    - xwcstoutf
    - CloseHandle
    - alloca
    - DeviceIoControl
    linkageType: ''
    returnType: int
    signature: "int read_reparse_point(const WCHAR *wpath, BOOL fail_on_unknown_tag,\n\t\t\t
      \     char *tmpbuf, int *plen, DWORD *ptag)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:1221,1
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:1226,1
    - Dst: GetFileAttributesExW
      Src: /src/git/compat/mingw.c:1233,1
    - Dst: read_reparse_point
      Src: /src/git/compat/mingw.c:1238,1
    - Dst: file_attr_to_st_mode
      Src: /src/git/compat/mingw.c:1246,1
    - Dst: S_ISLNK
      Src: /src/git/compat/mingw.c:1248,1
    - Dst: filetime_to_timespec
      Src: /src/git/compat/mingw.c:1251,1
    - Dst: filetime_to_timespec
      Src: /src/git/compat/mingw.c:1252,1
    - Dst: filetime_to_timespec
      Src: /src/git/compat/mingw.c:1253,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1257,1
    - Dst: has_valid_directory_prefix
      Src: /src/git/compat/mingw.c:1271,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - file_name
    - buf
    argTypes:
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1215
    functionDepth: 3
    functionLinenumber: 1215
    functionLinenumberEnd: 1281
    functionName: mingw_lstat
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 1
    functionsReached:
    - S_ISLNK
    - is_dir_sep
    - has_valid_directory_prefix
    - GetLastError
    - xutftowcs_path
    - filetime_to_timespec
    - GetFileAttributesExW
    - file_attr_to_st_mode
    - read_reparse_point
    linkageType: ''
    returnType: int
    signature: int mingw_lstat(const char *file_name, struct stat *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetFileInformationByHandle
      Src: /src/git/compat/mingw.c:1287,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:1288,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1288,1
    - Dst: file_attr_to_st_mode
      Src: /src/git/compat/mingw.c:1296,1
    - Dst: filetime_to_timespec
      Src: /src/git/compat/mingw.c:1300,1
    - Dst: filetime_to_timespec
      Src: /src/git/compat/mingw.c:1301,1
    - Dst: filetime_to_timespec
      Src: /src/git/compat/mingw.c:1302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - hnd
    - buf
    argTypes:
    - HANDLE
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1304
    functionName: get_file_info_by_handle
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - GetFileInformationByHandle
    - GetLastError
    - filetime_to_timespec
    - err_win_to_posix
    - file_attr_to_st_mode
    linkageType: ''
    returnType: int
    signature: int get_file_info_by_handle(HANDLE hnd, struct stat *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:1313,1
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:1315,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1319,1
    - Dst: mingw_lstat
      Src: /src/git/compat/mingw.c:1322,1
    - Dst: S_ISLNK
      Src: /src/git/compat/mingw.c:1323,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:1331,1
    - Dst: get_file_info_by_handle
      Src: /src/git/compat/mingw.c:1334,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - file_name
    - buf
    argTypes:
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1306
    functionDepth: 4
    functionLinenumber: 1306
    functionLinenumberEnd: 1337
    functionName: mingw_stat
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - get_file_info_by_handle
    - mingw_lstat
    - S_ISLNK
    - CreateFileW
    - GetLastError
    - xutftowcs_path
    - err_win_to_posix
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int mingw_stat(const char *file_name, struct stat *buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.c:1341,1
    - Dst: GetFileType
      Src: /src/git/compat/mingw.c:1342,1
    - Dst: get_file_info_by_handle
      Src: /src/git/compat/mingw.c:1346,1
    - Dst: memset
      Src: /src/git/compat/mingw.c:1351,1
    - Dst: PeekNamedPipe
      Src: /src/git/compat/mingw.c:1358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - buf
    argTypes:
    - int
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1339
    functionDepth: 3
    functionLinenumber: 1339
    functionLinenumberEnd: 1367
    functionName: mingw_fstat
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - get_file_info_by_handle
    - memset
    - PeekNamedPipe
    - _get_osfhandle
    - GetFileType
    linkageType: ''
    returnType: int
    signature: int mingw_fstat(int fd, struct stat *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - ft
    argTypes:
    - time_t
    - FILETIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1374
    functionName: time_t_to_filetime
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void time_t_to_filetime(time_t t, FILETIME *ft)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:1384,1
    - Dst: GetFileAttributesW
      Src: /src/git/compat/mingw.c:1388,1
    - Dst: SetFileAttributesW
      Src: /src/git/compat/mingw.c:1392,1
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:1395,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:1405,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1405,1
    - Dst: time_t_to_filetime
      Src: /src/git/compat/mingw.c:1411,1
    - Dst: time_t_to_filetime
      Src: /src/git/compat/mingw.c:1412,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/git/compat/mingw.c:1414,1
    - Dst: SetFileTime
      Src: /src/git/compat/mingw.c:1418,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1425,1
    - Dst: SetFileAttributesW
      Src: /src/git/compat/mingw.c:1431,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - file_name
    - times
    argTypes:
    - char*
    - struct utimbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1376
    functionDepth: 2
    functionLinenumber: 1376
    functionLinenumberEnd: 1434
    functionName: mingw_utime
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - GetFileAttributesW
    - GetLastError
    - SetFileAttributesW
    - xutftowcs_path
    - GetSystemTimeAsFileTime
    - err_win_to_posix
    - time_t_to_filetime
    - CloseHandle
    - SetFileTime
    linkageType: ''
    returnType: int
    signature: int mingw_utime (const char *file_name, const struct utimbuf *times)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strftime
      Src: /src/git/compat/mingw.c:1441,1
    - Dst: DECLARE_PROC_ADDR
      Src: /src/git/compat/mingw.c:1446,1
    - Dst: INIT_PROC_ADDR
      Src: /src/git/compat/mingw.c:1449,1
    - Dst: strftime
      Src: /src/git/compat/mingw.c:1450,1
    - Dst: fallback
      Src: /src/git/compat/mingw.c:1452,1
    - Dst: die
      Src: /src/git/compat/mingw.c:1456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - s
    - max
    - format
    - tm
    argTypes:
    - char*
    - size_t
    - char*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1458
    functionName: mingw_strftime
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - die
    - strftime
    - DECLARE_PROC_ADDR
    - INIT_PROC_ADDR
    - fallback
    linkageType: ''
    returnType: size_t
    signature: "size_t mingw_strftime(char *s, size_t max,\n\t\t      const char *format,
      const struct tm *tm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/git/compat/mingw.c:1462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1460
    functionDepth: 0
    functionLinenumber: 1460
    functionLinenumberEnd: 1464
    functionName: sleep
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 6
    functionsReached:
    - Sleep
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sleep (unsigned int seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_mkstemp_mode
      Src: /src/git/compat/mingw.c:1468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1466
    functionDepth: 4
    functionLinenumber: 1466
    functionLinenumberEnd: 1469
    functionName: mkstemp
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 11
    functionsReached:
    - git_mkstemp_mode
    linkageType: ''
    returnType: int
    signature: int mkstemp(char *template)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/git/compat/mingw.c:1476,1
    - Dst: filetime_to_hnsec
      Src: /src/git/compat/mingw.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - tv
    - UNUSED
    argTypes:
    - struct timeval*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1481
    functionName: gettimeofday
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 4
    functionsReached:
    - GetSystemTimeAsFileTime
    - filetime_to_hnsec
    linkageType: ''
    returnType: int
    signature: int gettimeofday(struct timeval *tv, void *tz UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CreatePipe
      Src: /src/git/compat/mingw.c:1488,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:1489,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1489,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/mingw.c:1492,1
    - Dst: HCAST
      Src: /src/git/compat/mingw.c:1492,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1494,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1495,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/mingw.c:1498,1
    - Dst: HCAST
      Src: /src/git/compat/mingw.c:1498,1
    - Dst: close
      Src: /src/git/compat/mingw.c:1500,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - filedes
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1505
    functionName: pipe
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 13
    functionsReached:
    - GetLastError
    - err_win_to_posix
    - CreatePipe
    - CloseHandle
    - close
    - _open_osfhandle
    - HCAST
    linkageType: ''
    returnType: int
    signature: int pipe(int filedes[2])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/git/compat/mingw.c:1510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - timep
    - result
    argTypes:
    - time_t*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1513
    functionName: gmtime_r
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 3
    functionsReached:
    - gmtime_s
    linkageType: ''
    returnType: struct tm
    signature: struct tm *gmtime_r(const time_t *timep, struct tm *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localtime_s
      Src: /src/git/compat/mingw.c:1517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - timep
    - result
    argTypes:
    - time_t*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1520
    functionName: localtime_r
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 9
    functionsReached:
    - localtime_s
    linkageType: ''
    returnType: struct tm
    signature: struct tm *localtime_r(const time_t *timep, struct tm *result)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentDirectoryW
      Src: /src/git/compat/mingw.c:1526,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:1526,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:1529,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:1530,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:1530,1
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:1533,1
    - Dst: GetFinalPathNameByHandleW
      Src: /src/git/compat/mingw.c:1537,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:1537,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1538,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:1539,1
    - Dst: xwcstoutf
      Src: /src/git/compat/mingw.c:1541,1
    - Dst: normalize_ntpath
      Src: /src/git/compat/mingw.c:1541,1
    - Dst: GetFileAttributesW
      Src: /src/git/compat/mingw.c:1545,1
    - Dst: xwcstoutf
      Src: /src/git/compat/mingw.c:1549,1
    - Dst: convert_slashes
      Src: /src/git/compat/mingw.c:1551,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - pointer
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1523
    functionDepth: 2
    functionLinenumber: 1523
    functionLinenumberEnd: 1553
    functionName: mingw_getcwd
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - CreateFileW
    - normalize_ntpath
    - GetLastError
    - GetFileAttributesW
    - GetFinalPathNameByHandleW
    - err_win_to_posix
    - xwcstoutf
    - CloseHandle
    - GetCurrentDirectoryW
    - convert_slashes
    linkageType: ''
    returnType: char
    signature: char *mingw_getcwd(char *pointer, int len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/compat/mingw.c:1568,1
    - Dst: xmalloc
      Src: /src/git/compat/mingw.c:1590,1
    - Dst: st_add3
      Src: /src/git/compat/mingw.c:1590,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 46
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1615
    functionName: quote_arg_msvc
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - isspace
    - xmalloc
    - st_add3
    linkageType: ''
    returnType: char
    signature: char *quote_arg_msvc(const char *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/compat/mingw.c:1625,1
    - Dst: strbuf_addch
      Src: /src/git/compat/mingw.c:1630,1
    - Dst: strbuf_add
      Src: /src/git/compat/mingw.c:1632,1
    - Dst: strbuf_addch
      Src: /src/git/compat/mingw.c:1634,1
    - Dst: strbuf_addch
      Src: /src/git/compat/mingw.c:1639,1
    - Dst: strbuf_add
      Src: /src/git/compat/mingw.c:1643,1
    - Dst: strbuf_addch
      Src: /src/git/compat/mingw.c:1645,1
    - Dst: strbuf_detach
      Src: /src/git/compat/mingw.c:1646,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1619
    functionDepth: 3
    functionLinenumber: 1619
    functionLinenumberEnd: 1647
    functionName: quote_arg_msys2
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_detach
    - strbuf_add
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *quote_arg_msys2(const char *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/mingw.c:1657,1
    - Dst: strcasecmp
      Src: /src/git/compat/mingw.c:1658,1
    - Dst: open
      Src: /src/git/compat/mingw.c:1661,1
    - Dst: read
      Src: /src/git/compat/mingw.c:1664,1
    - Dst: close
      Src: /src/git/compat/mingw.c:1665,1
    - Dst: strcspn
      Src: /src/git/compat/mingw.c:1672,1
    - Dst: strrchr
      Src: /src/git/compat/mingw.c:1677,1
    - Dst: strrchr
      Src: /src/git/compat/mingw.c:1677,1
    - Dst: strchr
      Src: /src/git/compat/mingw.c:1680,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1683
    functionName: parse_interpreter
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - read
    - open
    - strrchr
    - strcasecmp
    - strchr
    - strlen
    - strcspn
    - close
    linkageType: ''
    returnType: char
    signature: char *parse_interpreter(const char *cmd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/git/compat/mingw.c:1694,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:1696,1
    - Dst: _waccess
      Src: /src/git/compat/mingw.c:1699,1
    - Dst: xstrdup
      Src: /src/git/compat/mingw.c:1700,1
    - Dst: wcslen
      Src: /src/git/compat/mingw.c:1701,1
    - Dst: _waccess
      Src: /src/git/compat/mingw.c:1702,1
    - Dst: GetFileAttributesW
      Src: /src/git/compat/mingw.c:1703,1
    - Dst: strlen
      Src: /src/git/compat/mingw.c:1704,1
    - Dst: xstrdup
      Src: /src/git/compat/mingw.c:1705,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - dir
    - dirlen
    - cmd
    - isexe
    - exe_only
    argTypes:
    - char*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1689
    functionDepth: 1
    functionLinenumber: 1689
    functionLinenumberEnd: 1709
    functionName: lookup_prog
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - wcslen
    - snprintf
    - GetFileAttributesW
    - _waccess
    - xutftowcs_path
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *lookup_prog(const char *dir, int dirlen, const char *cmd,\n\t\t\t
      int isexe, int exe_only)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/mingw.c:1719,1
    - Dst: strcasecmp
      Src: /src/git/compat/mingw.c:1720,1
    - Dst: strpbrk
      Src: /src/git/compat/mingw.c:1722,1
    - Dst: xstrdup
      Src: /src/git/compat/mingw.c:1723,1
    - Dst: mingw_getenv
      Src: /src/git/compat/mingw.c:1725,1
    - Dst: strchrnul
      Src: /src/git/compat/mingw.c:1730,1
    - Dst: lookup_prog
      Src: /src/git/compat/mingw.c:1733,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - cmd
    - exe_only
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1715
    functionDepth: 2
    functionLinenumber: 1715
    functionLinenumberEnd: 1740
    functionName: path_lookup
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - lookup_prog
    - strcasecmp
    - mingw_getenv
    - strlen
    - strpbrk
    - strchrnul
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *path_lookup(const char *cmd, int exe_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_lookup
      Src: /src/git/compat/mingw.c:1744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1742
    functionDepth: 3
    functionLinenumber: 1742
    functionLinenumberEnd: 1745
    functionName: mingw_locate_in_PATH
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - path_lookup
    linkageType: ''
    returnType: char
    signature: char *mingw_locate_in_PATH(const char *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - wchar_t*
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1747
    functionDepth: 0
    functionLinenumber: 1747
    functionLinenumberEnd: 1752
    functionName: wcschrnul
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *wcschrnul(const wchar_t *s, wchar_t c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcschrnul
      Src: /src/git/compat/mingw.c:1761,1
    - Dst: wcschrnul
      Src: /src/git/compat/mingw.c:1762,1
    - Dst: _wcsnicmp
      Src: /src/git/compat/mingw.c:1770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1755
    functionDepth: 1
    functionLinenumber: 1755
    functionLinenumberEnd: 1771
    functionName: wenvcmp
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - wcschrnul
    - _wcsnicmp
    linkageType: ''
    returnType: int
    signature: int wenvcmp(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentStringsW
      Src: /src/git/compat/mingw.c:1787,1
    - Dst: wcslen
      Src: /src/git/compat/mingw.c:1798,1
    - Dst: DUP_ARRAY
      Src: /src/git/compat/mingw.c:1803,1
    - Dst: FreeEnvironmentStringsW
      Src: /src/git/compat/mingw.c:1804,1
    - Dst: ALLOC_GROW
      Src: /src/git/compat/mingw.c:1814,1
    - Dst: wcslen
      Src: /src/git/compat/mingw.c:1815,1
    - Dst: strlen
      Src: /src/git/compat/mingw.c:1823,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/compat/mingw.c:1824,1
    - Dst: ALLOC_GROW
      Src: /src/git/compat/mingw.c:1828,1
    - Dst: xutftowcs
      Src: /src/git/compat/mingw.c:1829,1
    - Dst: git_stable_qsort
      Src: /src/git/compat/mingw.c:1834,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/compat/mingw.c:1835,1
    - Dst: wenvcmp
      Src: /src/git/compat/mingw.c:1839,1
    - Dst: wcschr
      Src: /src/git/compat/mingw.c:1843,1
    - Dst: wcslen
      Src: /src/git/compat/mingw.c:1846,1
    - Dst: COPY_ARRAY
      Src: /src/git/compat/mingw.c:1847,1
    - Dst: free
      Src: /src/git/compat/mingw.c:1852,1
    - Dst: free
      Src: /src/git/compat/mingw.c:1853,1
    - Dst: FreeEnvironmentStringsW
      Src: /src/git/compat/mingw.c:1854,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - deltaenv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1785
    functionDepth: 3
    functionLinenumber: 1785
    functionLinenumberEnd: 1856
    functionName: make_environment_block
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - wcslen
    - ALLOC_ARRAY
    - FreeEnvironmentStringsW
    - xutftowcs
    - strlen
    - wenvcmp
    - ALLOC_GROW
    - free
    - GetEnvironmentStringsW
    - COPY_ARRAY
    - DUP_ARRAY
    - wcschr
    - git_stable_qsort
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *make_environment_block(char **deltaenv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/compat/mingw.c:1868,1
    - Dst: unsetenv
      Src: /src/git/compat/mingw.c:1872,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1858
    functionDepth: 0
    functionLinenumber: 1858
    functionLinenumberEnd: 1877
    functionName: do_unset_environment_variables
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - unsetenv
    - strchr
    linkageType: ''
    returnType: void
    signature: void do_unset_environment_variables(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/mingw.c:1891,1
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:1893,1
    - Dst: fspathncmp
      Src: /src/git/compat/mingw.c:1894,1
    - Dst: is_dir_sep
      Src: /src/git/compat/mingw.c:1898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - path
    - len
    - component
    argTypes:
    - char*
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1888
    functionDepth: 1
    functionLinenumber: 1888
    functionLinenumberEnd: 1901
    functionName: match_last_path_component
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strlen
    - fspathncmp
    linkageType: ''
    returnType: int
    signature: "int match_last_path_component(const char *path, size_t *len,\n\t\t\t\t\t
      \   const char *component)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/compat/mingw.c:1908,1
    - Dst: path_lookup
      Src: /src/git/compat/mingw.c:1915,1
    - Dst: strlen
      Src: /src/git/compat/mingw.c:1919,1
    - Dst: match_last_path_component
      Src: /src/git/compat/mingw.c:1921,1
    - Dst: match_last_path_component
      Src: /src/git/compat/mingw.c:1922,1
    - Dst: match_last_path_component
      Src: /src/git/compat/mingw.c:1923,1
    - Dst: free
      Src: /src/git/compat/mingw.c:1924,1
    - Dst: ends_with
      Src: /src/git/compat/mingw.c:1929,1
    - Dst: ends_with
      Src: /src/git/compat/mingw.c:1929,1
    - Dst: path_lookup
      Src: /src/git/compat/mingw.c:1933,1
    - Dst: fspathcmp
      Src: /src/git/compat/mingw.c:1935,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1903
    functionDepth: 4
    functionLinenumber: 1903
    functionLinenumberEnd: 1939
    functionName: is_msys2_sh
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - path_lookup
    - ends_with
    - strlen
    - strcmp
    - match_last_path_component
    - free
    - fspathcmp
    linkageType: ''
    returnType: int
    signature: int is_msys2_sh(const char *cmd)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: is_msys2_sh
      Src: /src/git/compat/mingw.c:1957,1
    - Dst: do_unset_environment_variables
      Src: /src/git/compat/mingw.c:1964,1
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:1967,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:1988,1
    - Dst: memset
      Src: /src/git/compat/mingw.c:1990,1
    - Dst: winansi_get_osfhandle
      Src: /src/git/compat/mingw.c:1992,1
    - Dst: winansi_get_osfhandle
      Src: /src/git/compat/mingw.c:1993,1
    - Dst: winansi_get_osfhandle
      Src: /src/git/compat/mingw.c:1994,1
    - Dst: strcmp
      Src: /src/git/compat/mingw.c:2009,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:2011,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:2013,1
    - Dst: strbuf_init
      Src: /src/git/compat/mingw.c:2017,1
    - Dst: quote_arg
      Src: /src/git/compat/mingw.c:2019,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/mingw.c:2020,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2022,1
    - Dst: quote_arg
      Src: /src/git/compat/mingw.c:2025,1
    - Dst: strbuf_addch
      Src: /src/git/compat/mingw.c:2027,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/mingw.c:2028,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2030,1
    - Dst: getenv
      Src: /src/git/compat/mingw.c:2033,1
    - Dst: path_lookup
      Src: /src/git/compat/mingw.c:2035,1
    - Dst: error
      Src: /src/git/compat/mingw.c:2037,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:2038,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2039,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2042,1
    - Dst: strcmp
      Src: /src/git/compat/mingw.c:2043,1
    - Dst: strcasecmp
      Src: /src/git/compat/mingw.c:2044,1
    - Dst: strcasecmp
      Src: /src/git/compat/mingw.c:2045,1
    - Dst: strbuf_insert
      Src: /src/git/compat/mingw.c:2046,1
    - Dst: quote_arg
      Src: /src/git/compat/mingw.c:2048,1
    - Dst: strbuf_addf
      Src: /src/git/compat/mingw.c:2050,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2052,1
    - Dst: strbuf_insert
      Src: /src/git/compat/mingw.c:2053,1
    - Dst: strbuf_release
      Src: /src/git/compat/mingw.c:2054,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/compat/mingw.c:2058,1
    - Dst: st_add
      Src: /src/git/compat/mingw.c:2058,1
    - Dst: st_mult
      Src: /src/git/compat/mingw.c:2058,1
    - Dst: xutftowcs
      Src: /src/git/compat/mingw.c:2059,1
    - Dst: strbuf_release
      Src: /src/git/compat/mingw.c:2060,1
    - Dst: make_environment_block
      Src: /src/git/compat/mingw.c:2062,1
    - Dst: memset
      Src: /src/git/compat/mingw.c:2064,1
    - Dst: InitializeProcThreadAttributeList
      Src: /src/git/compat/mingw.c:2066,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2067,1
    - Dst: HeapAlloc
      Src: /src/git/compat/mingw.c:2069,1
    - Dst: GetProcessHeap
      Src: /src/git/compat/mingw.c:2069,1
    - Dst: InitializeProcThreadAttributeList
      Src: /src/git/compat/mingw.c:2070,1
    - Dst: UpdateProcThreadAttribute
      Src: /src/git/compat/mingw.c:2071,1
    - Dst: CreateProcessW
      Src: /src/git/compat/mingw.c:2080,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2090,1
    - Dst: CreateProcessW
      Src: /src/git/compat/mingw.c:2094,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:2098,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2098,1
    - Dst: warning
      Src: /src/git/compat/mingw.c:2100,1
    - Dst: strbuf_release
      Src: /src/git/compat/mingw.c:2103,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:2105,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2105,1
    - Dst: DeleteProcThreadAttributeList
      Src: /src/git/compat/mingw.c:2108,1
    - Dst: HeapFree
      Src: /src/git/compat/mingw.c:2110,1
    - Dst: GetProcessHeap
      Src: /src/git/compat/mingw.c:2110,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2112,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2113,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:2118,1
    - Dst: EnterCriticalSection
      Src: /src/git/compat/mingw.c:2128,1
    - Dst: xmalloc
      Src: /src/git/compat/mingw.c:2130,1
    - Dst: LeaveCriticalSection
      Src: /src/git/compat/mingw.c:2136,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 98
    argCount: 8
    argNames:
    - cmd
    - argv
    - deltaenv
    - dir
    - prepend_cmd
    - fhin
    - fhout
    - fherr
    argTypes:
    - char*
    - char**
    - char**
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 1941
    functionDepth: 5
    functionLinenumber: 1941
    functionLinenumberEnd: 2139
    functionName: mingw_spawnve_fd
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - GetProcessHeap
    - HeapAlloc
    - make_environment_block
    - strcasecmp
    - strbuf_addf
    - LeaveCriticalSection
    - err_win_to_posix
    - xmalloc
    - CloseHandle
    - free
    - strcmp
    - st_add
    - winansi_get_osfhandle
    - error
    - strbuf_release
    - do_unset_environment_variables
    - HeapFree
    - CreateFileW
    - ALLOC_ARRAY
    - quote_arg
    - strbuf_addstr
    - UpdateProcThreadAttribute
    - strbuf_init
    - CreateProcessW
    - memset
    - DeleteProcThreadAttributeList
    - GetLastError
    - xutftowcs_path
    - EnterCriticalSection
    - warning
    - st_mult
    - InitializeProcThreadAttributeList
    - path_lookup
    - xutftowcs
    - strbuf_insert
    - strbuf_addch
    - is_msys2_sh
    - getenv
    linkageType: ''
    returnType: pid_t
    signature: "pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaenv,\n\t\t\t
      \     const char *dir,\n\t\t\t      int prepend_cmd, int fhin, int fhout, int
      fherr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mingw_spawnve_fd
      Src: /src/git/compat/mingw.c:2143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - argv
    - prepend_cmd
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2141
    functionDepth: 6
    functionLinenumber: 2141
    functionLinenumberEnd: 2144
    functionName: mingw_spawnv
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - mingw_spawnve_fd
    linkageType: ''
    returnType: pid_t
    signature: pid_t mingw_spawnv(const char *cmd, const char **argv, int prepend_cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: path_lookup
      Src: /src/git/compat/mingw.c:2151,1
    - Dst: parse_interpreter
      Src: /src/git/compat/mingw.c:2158,1
    - Dst: path_lookup
      Src: /src/git/compat/mingw.c:2162,1
    - Dst: mingw_spawnve_fd
      Src: /src/git/compat/mingw.c:2169,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2171,1
    - Dst: mingw_spawnve_fd
      Src: /src/git/compat/mingw.c:2176,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 7
    argNames:
    - cmd
    - argv
    - deltaenv
    - dir
    - fhin
    - fhout
    - fherr
    argTypes:
    - char*
    - char**
    - char**
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2146
    functionDepth: 6
    functionLinenumber: 2146
    functionLinenumberEnd: 2181
    functionName: mingw_spawnvpe
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 1
    functionsReached:
    - parse_interpreter
    - mingw_spawnve_fd
    - path_lookup
    - free
    linkageType: ''
    returnType: pid_t
    signature: "pid_t mingw_spawnvpe(const char *cmd, const char **argv, char **deltaenv,\n\t\t
      \    const char *dir,\n\t\t     int fhin, int fhout, int fherr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_interpreter
      Src: /src/git/compat/mingw.c:2185,1
    - Dst: path_lookup
      Src: /src/git/compat/mingw.c:2191,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/compat/mingw.c:2197,1
    - Dst: COPY_ARRAY
      Src: /src/git/compat/mingw.c:2199,1
    - Dst: trace2_exec
      Src: /src/git/compat/mingw.c:2200,1
    - Dst: mingw_spawnv
      Src: /src/git/compat/mingw.c:2201,1
    - Dst: waitpid
      Src: /src/git/compat/mingw.c:2204,1
    - Dst: trace2_exec_result
      Src: /src/git/compat/mingw.c:2206,1
    - Dst: exit
      Src: /src/git/compat/mingw.c:2207,1
    - Dst: trace2_exec_result
      Src: /src/git/compat/mingw.c:2209,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2211,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2212,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - cmd
    - argv
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2183
    functionDepth: 7
    functionLinenumber: 2183
    functionLinenumberEnd: 2215
    functionName: try_shell_exec
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - mingw_spawnv
    - trace2_exec
    - path_lookup
    - ALLOC_ARRAY
    - exit
    - parse_interpreter
    - trace2_exec_result
    - free
    - COPY_ARRAY
    - waitpid
    linkageType: ''
    returnType: int
    signature: int try_shell_exec(const char *cmd, char *const *argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: try_shell_exec
      Src: /src/git/compat/mingw.c:2220,1
    - Dst: trace2_exec
      Src: /src/git/compat/mingw.c:2224,1
    - Dst: mingw_spawnv
      Src: /src/git/compat/mingw.c:2225,1
    - Dst: trace2_exec_result
      Src: /src/git/compat/mingw.c:2227,1
    - Dst: waitpid
      Src: /src/git/compat/mingw.c:2230,1
    - Dst: trace2_exec_result
      Src: /src/git/compat/mingw.c:2232,1
    - Dst: exit
      Src: /src/git/compat/mingw.c:2233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - cmd
    - argv
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2217
    functionDepth: 8
    functionLinenumber: 2217
    functionLinenumberEnd: 2236
    functionName: mingw_execv
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - mingw_spawnv
    - try_shell_exec
    - exit
    - trace2_exec_result
    - trace2_exec
    - waitpid
    linkageType: ''
    returnType: int
    signature: int mingw_execv(const char *cmd, char *const *argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: path_lookup
      Src: /src/git/compat/mingw.c:2240,1
    - Dst: mingw_execv
      Src: /src/git/compat/mingw.c:2243,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cmd
    - argv
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2238
    functionDepth: 9
    functionLinenumber: 2238
    functionLinenumberEnd: 2249
    functionName: mingw_execvp
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - path_lookup
    - mingw_execv
    - free
    linkageType: ''
    returnType: int
    signature: int mingw_execvp(const char *cmd, char *const *argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OpenProcess
      Src: /src/git/compat/mingw.c:2254,1
    - Dst: TerminateProcess
      Src: /src/git/compat/mingw.c:2256,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:2257,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:2261,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2261,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:2262,1
    - Dst: OpenProcess
      Src: /src/git/compat/mingw.c:2265,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:2267,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2275,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:2278,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - pid
    - sig
    argTypes:
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2251
    functionDepth: 2
    functionLinenumber: 2251
    functionLinenumberEnd: 2284
    functionName: mingw_kill
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - OpenProcess
    - GetLastError
    - TerminateProcess
    - err_win_to_posix
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int mingw_kill(pid_t pid, int sig)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/mingw.c:2304,1
    - Dst: calloc
      Src: /src/git/compat/mingw.c:2306,1
    - Dst: die
      Src: /src/git/compat/mingw.c:2308,1
    - Dst: xutftowcs
      Src: /src/git/compat/mingw.c:2310,1
    - Dst: SetLastError
      Src: /src/git/compat/mingw.c:2312,1
    - Dst: GetEnvironmentVariableW
      Src: /src/git/compat/mingw.c:2313,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:2313,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2314,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2315,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2318,1
    - Dst: calloc
      Src: /src/git/compat/mingw.c:2322,1
    - Dst: die
      Src: /src/git/compat/mingw.c:2324,1
    - Dst: xwcstoutf
      Src: /src/git/compat/mingw.c:2326,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2333,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:2335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2291
    functionDepth: 1
    functionLinenumber: 2291
    functionLinenumberEnd: 2339
    functionName: mingw_getenv
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 2
    functionsReached:
    - GetEnvironmentVariableW
    - ARRAY_SIZE
    - die
    - GetLastError
    - xutftowcs
    - SetLastError
    - strlen
    - xwcstoutf
    - free
    - calloc
    linkageType: ''
    returnType: char
    signature: char *mingw_getenv(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/mingw.c:2350,1
    - Dst: calloc
      Src: /src/git/compat/mingw.c:2351,1
    - Dst: die
      Src: /src/git/compat/mingw.c:2353,1
    - Dst: xutftowcs
      Src: /src/git/compat/mingw.c:2355,1
    - Dst: wcschr
      Src: /src/git/compat/mingw.c:2356,1
    - Dst: SetEnvironmentVariableW
      Src: /src/git/compat/mingw.c:2358,1
    - Dst: SetEnvironmentVariableW
      Src: /src/git/compat/mingw.c:2361,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2363,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:2366,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - namevalue
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2341
    functionDepth: 2
    functionLinenumber: 2341
    functionLinenumberEnd: 2369
    functionName: mingw_putenv
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - calloc
    - die
    - SetEnvironmentVariableW
    - GetLastError
    - xutftowcs
    - strlen
    - err_win_to_posix
    - free
    - wcschr
    linkageType: ''
    returnType: int
    signature: int mingw_putenv(const char *namevalue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/git/compat/mingw.c:2379,1
    - Dst: MAKEWORD
      Src: /src/git/compat/mingw.c:2379,1
    - Dst: die
      Src: /src/git/compat/mingw.c:2380,1
    - Dst: WSAGetLastError
      Src: /src/git/compat/mingw.c:2381,1
    - Dst: atexit
      Src: /src/git/compat/mingw.c:2383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2371
    functionDepth: 0
    functionLinenumber: 2371
    functionLinenumberEnd: 2385
    functionName: ensure_socket_initialization
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - atexit
    - WSAGetLastError
    - die
    - WSAStartup
    - MAKEWORD
    linkageType: ''
    returnType: void
    signature: void ensure_socket_initialization(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_socket_initialization
      Src: /src/git/compat/mingw.c:2390,1
    - Dst: gethostname
      Src: /src/git/compat/mingw.c:2391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - namelen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2388
    functionDepth: 1
    functionLinenumber: 2388
    functionLinenumberEnd: 2392
    functionName: mingw_gethostname
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - ensure_socket_initialization
    - gethostname
    linkageType: ''
    returnType: int
    signature: int mingw_gethostname(char *name, int namelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_socket_initialization
      Src: /src/git/compat/mingw.c:2397,1
    - Dst: gethostbyname
      Src: /src/git/compat/mingw.c:2398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - host
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2395
    functionDepth: 1
    functionLinenumber: 2395
    functionLinenumberEnd: 2399
    functionName: mingw_gethostbyname
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - gethostbyname
    - ensure_socket_initialization
    linkageType: ''
    returnType: struct hostent
    signature: struct hostent *mingw_gethostbyname(const char *host)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_socket_initialization
      Src: /src/git/compat/mingw.c:2405,1
    - Dst: getaddrinfo
      Src: /src/git/compat/mingw.c:2406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - node
    - service
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2402
    functionDepth: 1
    functionLinenumber: 2402
    functionLinenumberEnd: 2407
    functionName: mingw_getaddrinfo
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - ensure_socket_initialization
    - getaddrinfo
    linkageType: ''
    returnType: int
    signature: "int mingw_getaddrinfo(const char *node, const char *service,\n\t\t
      \     const struct addrinfo *hints, struct addrinfo **res)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ensure_socket_initialization
      Src: /src/git/compat/mingw.c:2414,1
    - Dst: WSASocket
      Src: /src/git/compat/mingw.c:2415,1
    - Dst: WSAGetLastError
      Src: /src/git/compat/mingw.c:2426,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/mingw.c:2430,1
    - Dst: closesocket
      Src: /src/git/compat/mingw.c:2431,1
    - Dst: error
      Src: /src/git/compat/mingw.c:2432,1
    - Dst: strerror
      Src: /src/git/compat/mingw.c:2433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - domain
    - type
    - protocol
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2436
    functionName: mingw_socket
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - error
    - ensure_socket_initialization
    - strerror
    - closesocket
    - WSASocket
    - WSAGetLastError
    - _open_osfhandle
    linkageType: ''
    returnType: int
    signature: int mingw_socket(int domain, int type, int protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.c:2441,1
    - Dst: connect
      Src: /src/git/compat/mingw.c:2442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sockfd
    - sa
    - sz
    argTypes:
    - int
    - struct sockaddr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2439
    functionDepth: 0
    functionLinenumber: 2439
    functionLinenumberEnd: 2443
    functionName: mingw_connect
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - _get_osfhandle
    - connect
    linkageType: ''
    returnType: int
    signature: int mingw_connect(int sockfd, struct sockaddr *sa, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.c:2448,1
    - Dst: bind
      Src: /src/git/compat/mingw.c:2449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sockfd
    - sa
    - sz
    argTypes:
    - int
    - struct sockaddr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2446
    functionDepth: 0
    functionLinenumber: 2446
    functionLinenumberEnd: 2450
    functionName: mingw_bind
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - _get_osfhandle
    - bind
    linkageType: ''
    returnType: int
    signature: int mingw_bind(int sockfd, struct sockaddr *sa, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.c:2455,1
    - Dst: setsockopt
      Src: /src/git/compat/mingw.c:2456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - sockfd
    - lvl
    - optname
    - optval
    - optlen
    argTypes:
    - int
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2453
    functionDepth: 0
    functionLinenumber: 2453
    functionLinenumberEnd: 2457
    functionName: mingw_setsockopt
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - _get_osfhandle
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int mingw_setsockopt(int sockfd, int lvl, int optname, void *optval,
      int optlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.c:2462,1
    - Dst: shutdown
      Src: /src/git/compat/mingw.c:2463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sockfd
    - how
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2460
    functionDepth: 0
    functionLinenumber: 2460
    functionLinenumberEnd: 2464
    functionName: mingw_shutdown
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - _get_osfhandle
    - shutdown
    linkageType: ''
    returnType: int
    signature: int mingw_shutdown(int sockfd, int how)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.c:2469,1
    - Dst: listen
      Src: /src/git/compat/mingw.c:2470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sockfd
    - backlog
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2467
    functionDepth: 0
    functionLinenumber: 2467
    functionLinenumberEnd: 2471
    functionName: mingw_listen
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - _get_osfhandle
    - listen
    linkageType: ''
    returnType: int
    signature: int mingw_listen(int sockfd, int backlog)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.c:2478,1
    - Dst: accept
      Src: /src/git/compat/mingw.c:2479,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/mingw.c:2482,1
    - Dst: closesocket
      Src: /src/git/compat/mingw.c:2484,1
    - Dst: error
      Src: /src/git/compat/mingw.c:2485,1
    - Dst: strerror
      Src: /src/git/compat/mingw.c:2486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sockfd1
    - sa
    - sz
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2489
      start: 2474
    functionDepth: 0
    functionLinenumber: 2474
    functionLinenumberEnd: 2489
    functionName: mingw_accept
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - error
    - accept
    - strerror
    - closesocket
    - _get_osfhandle
    - _open_osfhandle
    linkageType: ''
    returnType: int
    signature: int mingw_accept(int sockfd1, struct sockaddr *sa, socklen_t *sz)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:2500,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:2502,1
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:2539,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:2545,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2545,1
    - Dst: memcpy
      Src: /src/git/compat/mingw.c:2552,1
    - Dst: SetFileInformationByHandle
      Src: /src/git/compat/mingw.c:2554,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2556,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:2557,1
    - Dst: MoveFileExW
      Src: /src/git/compat/mingw.c:2581,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2584,1
    - Dst: SetFileAttributesW
      Src: /src/git/compat/mingw.c:2589,1
    - Dst: is_file_in_use_error
      Src: /src/git/compat/mingw.c:2591,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:2592,1
    - Dst: GetFileAttributesW
      Src: /src/git/compat/mingw.c:2597,1
    - Dst: GetFileAttributesW
      Src: /src/git/compat/mingw.c:2599,1
    - Dst: _wrmdir
      Src: /src/git/compat/mingw.c:2603,1
    - Dst: SetFileAttributesW
      Src: /src/git/compat/mingw.c:2608,1
    - Dst: retry_ask_yes_no
      Src: /src/git/compat/mingw.c:2611,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 2
    argNames:
    - pold
    - pnew
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2492
    functionDepth: 10
    functionLinenumber: 2492
    functionLinenumberEnd: 2617
    functionName: mingw_rename
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - GetLastError
    - GetFileAttributesW
    - xutftowcs_path
    - SetFileInformationByHandle
    - SetFileAttributesW
    - memcpy
    - is_file_in_use_error
    - retry_ask_yes_no
    - err_win_to_posix
    - CloseHandle
    - MoveFileExW
    - _wrmdir
    linkageType: ''
    returnType: int
    signature: int mingw_rename(const char *pold, const char *pnew)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/git/compat/mingw.c:2627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2624
    functionDepth: 0
    functionLinenumber: 2624
    functionLinenumberEnd: 2629
    functionName: mingw_getpagesize
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - GetSystemInfo
    linkageType: ''
    returnType: int
    signature: int mingw_getpagesize(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_PROC_ADDR
      Src: /src/git/compat/mingw.c:2639,1
    - Dst: INIT_PROC_ADDR
      Src: /src/git/compat/mingw.c:2644,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:2647,1
    - Dst: GetUserNameExW
      Src: /src/git/compat/mingw.c:2648,1
    - Dst: xmalloc
      Src: /src/git/compat/mingw.c:2649,1
    - Dst: xwcstoutf
      Src: /src/git/compat/mingw.c:2650,1
    - Dst: free
      Src: /src/git/compat/mingw.c:2652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum EXTENDED_NAME_FORMAT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2637
    functionDepth: 1
    functionLinenumber: 2637
    functionLinenumberEnd: 2656
    functionName: get_extended_user_info
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - DECLARE_PROC_ADDR
    - GetUserNameExW
    - INIT_PROC_ADDR
    - xmalloc
    - xwcstoutf
    - free
    linkageType: ''
    returnType: char
    signature: char *get_extended_user_info(enum EXTENDED_NAME_FORMAT type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_extended_user_info
      Src: /src/git/compat/mingw.c:2660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2658
    functionDepth: 2
    functionLinenumber: 2658
    functionLinenumberEnd: 2661
    functionName: mingw_query_user_email
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - get_extended_user_info
    linkageType: ''
    returnType: char
    signature: char *mingw_query_user_email(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:2674,1
    - Dst: GetUserNameW
      Src: /src/git/compat/mingw.c:2675,1
    - Dst: xwcstoutf
      Src: /src/git/compat/mingw.c:2680,1
    - Dst: xmalloc
      Src: /src/git/compat/mingw.c:2685,1
    - Dst: get_extended_user_info
      Src: /src/git/compat/mingw.c:2687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2663
    functionDepth: 2
    functionLinenumber: 2663
    functionLinenumberEnd: 2698
    functionName: getpwuid
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - get_extended_user_info
    - xmalloc
    - xwcstoutf
    - GetUserNameW
    linkageType: ''
    returnType: struct passwd
    signature: struct passwd *getpwuid(int uid UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/git/compat/mingw.c:2717,1
    - Dst: mingw_raise
      Src: /src/git/compat/mingw.c:2718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2715
    functionDepth: 1
    functionLinenumber: 2715
    functionLinenumberEnd: 2723
    functionName: ticktack
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - mingw_raise
    - WaitForSingleObject
    linkageType: ''
    returnType: unsigned
    signature: unsigned ticktack(void *dummy UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CreateEvent
      Src: /src/git/compat/mingw.c:2727,1
    - Dst: _beginthreadex
      Src: /src/git/compat/mingw.c:2729,1
    - Dst: error
      Src: /src/git/compat/mingw.c:2732,1
    - Dst: error
      Src: /src/git/compat/mingw.c:2736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2725
    functionDepth: 0
    functionLinenumber: 2725
    functionLinenumberEnd: 2739
    functionName: start_timer_thread
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - CreateEvent
    - _beginthreadex
    - error
    linkageType: ''
    returnType: int
    signature: int start_timer_thread(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SetEvent
      Src: /src/git/compat/mingw.c:2744,1
    - Dst: WaitForSingleObject
      Src: /src/git/compat/mingw.c:2746,1
    - Dst: error
      Src: /src/git/compat/mingw.c:2748,1
    - Dst: error
      Src: /src/git/compat/mingw.c:2750,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2751,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:2752,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:2755,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2758
    functionName: stop_timer_thread
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - error
    - GetLastError
    - SetEvent
    - CloseHandle
    - WaitForSingleObject
    linkageType: ''
    returnType: void
    signature: void stop_timer_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - i1
    - i2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2763
    functionName: is_timeval_eq
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_timeval_eq(const struct timeval *i1, const struct timeval *i2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/compat/mingw.c:2772,1
    - Dst: is_timeval_eq
      Src: /src/git/compat/mingw.c:2774,1
    - Dst: is_timeval_eq
      Src: /src/git/compat/mingw.c:2775,1
    - Dst: error
      Src: /src/git/compat/mingw.c:2777,1
    - Dst: stop_timer_thread
      Src: /src/git/compat/mingw.c:2781,1
    - Dst: is_timeval_eq
      Src: /src/git/compat/mingw.c:2783,1
    - Dst: is_timeval_eq
      Src: /src/git/compat/mingw.c:2784,1
    - Dst: is_timeval_eq
      Src: /src/git/compat/mingw.c:2788,1
    - Dst: atexit
      Src: /src/git/compat/mingw.c:2790,1
    - Dst: start_timer_thread
      Src: /src/git/compat/mingw.c:2793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - UNUSED
    - in
    - out
    argTypes:
    - int
    - struct itimerval*
    - struct itimerval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2765
    functionDepth: 1
    functionLinenumber: 2765
    functionLinenumberEnd: 2794
    functionName: setitimer
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 2
    functionsReached:
    - error
    - atexit
    - stop_timer_thread
    - is_timeval_eq
    - start_timer_thread
    linkageType: ''
    returnType: int
    signature: int setitimer(int type UNUSED, struct itimerval *in, struct itimerval
      *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/compat/mingw.c:2802,1
    - Dst: error
      Src: /src/git/compat/mingw.c:2806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - sig
    - in
    - out
    argTypes:
    - int
    - struct sigaction*
    - struct sigaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2796
    functionDepth: 0
    functionLinenumber: 2796
    functionLinenumberEnd: 2811
    functionName: sigaction
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 2
    functionsReached:
    - error
    linkageType: ''
    returnType: int
    signature: int sigaction(int sig, struct sigaction *in, struct sigaction *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/git/compat/mingw.c:2830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - sig
    - handler
    argTypes:
    - int
    - sig_handler_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2834
      start: 2814
    functionDepth: 0
    functionLinenumber: 2814
    functionLinenumberEnd: 2834
    functionName: mingw_signal
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - signal
    linkageType: ''
    returnType: sig_handler_t
    signature: sig_handler_t mingw_signal(int sig, sig_handler_t handler)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/compat/mingw.c:2842,1
    - Dst: fputs
      Src: /src/git/compat/mingw.c:2843,1
    - Dst: exit
      Src: /src/git/compat/mingw.c:2844,1
    - Dst: timer_fn
      Src: /src/git/compat/mingw.c:2846,1
    - Dst: exit
      Src: /src/git/compat/mingw.c:2851,1
    - Dst: sigint_fn
      Src: /src/git/compat/mingw.c:2853,1
    - Dst: raise
      Src: /src/git/compat/mingw.c:2871,1
    - Dst: raise
      Src: /src/git/compat/mingw.c:2879,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2837
    functionDepth: 1
    functionLinenumber: 2837
    functionLinenumberEnd: 2884
    functionName: mingw_raise
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 2
    functionsReached:
    - fputs
    - raise
    - exit
    - timer_fn
    - sigint_fn
    - isatty
    linkageType: ''
    returnType: int
    signature: int mingw_raise(int sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:2889,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:2890,1
    - Dst: CreateHardLinkW
      Src: /src/git/compat/mingw.c:2893,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:2894,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - oldpath
    - newpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2886
    functionDepth: 2
    functionLinenumber: 2886
    functionLinenumberEnd: 2898
    functionName: link
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 94
    functionsReached:
    - CreateHardLinkW
    - xutftowcs_path
    - GetLastError
    - err_win_to_posix
    linkageType: ''
    returnType: int
    signature: int link(const char *oldpath, const char *newpath)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:2911,1
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:2912,1
    - Dst: CreateSymbolicLinkW
      Src: /src/git/compat/mingw.c:2921,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:2922,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2922,1
    - Dst: process_phantom_symlink
      Src: /src/git/compat/mingw.c:2927,1
    - Dst: GetFullPathNameW
      Src: /src/git/compat/mingw.c:2934,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/mingw.c:2936,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:2936,1
    - Dst: xmalloc
      Src: /src/git/compat/mingw.c:2941,1
    - Dst: wcslen
      Src: /src/git/compat/mingw.c:2942,1
    - Dst: wcscpy
      Src: /src/git/compat/mingw.c:2944,1
    - Dst: wcscpy
      Src: /src/git/compat/mingw.c:2946,1
    - Dst: EnterCriticalSection
      Src: /src/git/compat/mingw.c:2948,1
    - Dst: LeaveCriticalSection
      Src: /src/git/compat/mingw.c:2951,1
    - Dst: process_phantom_symlinks
      Src: /src/git/compat/mingw.c:2956,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - target
    - link
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2900
    functionDepth: 4
    functionLinenumber: 2900
    functionLinenumberEnd: 2962
    functionName: symlink
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 9
    functionsReached:
    - wcslen
    - GetLastError
    - xutftowcs_path
    - GetFullPathNameW
    - LeaveCriticalSection
    - CreateSymbolicLinkW
    - err_win_to_posix
    - xmalloc
    - wcscpy
    - EnterCriticalSection
    - process_phantom_symlinks
    - process_phantom_symlink
    linkageType: ''
    returnType: int
    signature: int symlink(const char *target, const char *link)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:2971,1
    - Dst: read_reparse_point
      Src: /src/git/compat/mingw.c:2974,1
    - Dst: memcpy
      Src: /src/git/compat/mingw.c:2984,1
    - Dst: min
      Src: /src/git/compat/mingw.c:2984,1
    - Dst: min
      Src: /src/git/compat/mingw.c:2985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - path
    - buf
    - bufsiz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2964
    functionDepth: 3
    functionLinenumber: 2964
    functionLinenumberEnd: 2986
    functionName: readlink
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 15
    functionsReached:
    - xutftowcs_path
    - min
    - read_reparse_point
    - memcpy
    linkageType: ''
    returnType: int
    signature: int readlink(const char *path, char *buf, size_t bufsiz)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OpenProcess
      Src: /src/git/compat/mingw.c:2990,1
    - Dst: WaitForSingleObject
      Src: /src/git/compat/mingw.c:2998,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:2999,1
    - Dst: WaitForSingleObject
      Src: /src/git/compat/mingw.c:3007,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:3008,1
    - Dst: GetExitCodeProcess
      Src: /src/git/compat/mingw.c:3013,1
    - Dst: EnterCriticalSection
      Src: /src/git/compat/mingw.c:3015,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:3021,1
    - Dst: free
      Src: /src/git/compat/mingw.c:3023,1
    - Dst: LeaveCriticalSection
      Src: /src/git/compat/mingw.c:3029,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:3031,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:3034,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - pid
    - status
    - options
    argTypes:
    - pid_t
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 2988
    functionDepth: 1
    functionLinenumber: 2988
    functionLinenumberEnd: 3038
    functionName: waitpid
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 8
    functionsReached:
    - OpenProcess
    - LeaveCriticalSection
    - EnterCriticalSection
    - CloseHandle
    - WaitForSingleObject
    - free
    - GetExitCodeProcess
    linkageType: ''
    returnType: pid_t
    signature: pid_t waitpid(pid_t pid, int *status, int options)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 49
    argCount: 4
    argNames:
    - wcs
    - utfs
    - wcslen
    - utflen
    argTypes:
    - wchar_t*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3040
    functionDepth: 0
    functionLinenumber: 3040
    functionLinenumberEnd: 3110
    functionName: xutftowcsn
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xutftowcsn(wchar_t *wcs, const char *utfs, size_t wcslen, int utflen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WideCharToMultiByte
      Src: /src/git/compat/mingw.c:3118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - utf
    - wcs
    - utflen
    argTypes:
    - char*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3123
      start: 3112
    functionDepth: 0
    functionLinenumber: 3112
    functionLinenumberEnd: 3123
    functionName: xwcstoutf
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 6
    functionsReached:
    - WideCharToMultiByte
    linkageType: ''
    returnType: int
    signature: int xwcstoutf(char *utf, const wchar_t *wcs, size_t utflen)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/compat/mingw.c:3127,1
    - Dst: getenv
      Src: /src/git/compat/mingw.c:3131,1
    - Dst: getenv
      Src: /src/git/compat/mingw.c:3132,1
    - Dst: setenv
      Src: /src/git/compat/mingw.c:3134,1
    - Dst: getenv
      Src: /src/git/compat/mingw.c:3135,1
    - Dst: convert_slashes
      Src: /src/git/compat/mingw.c:3146,1
    - Dst: getenv
      Src: /src/git/compat/mingw.c:3150,1
    - Dst: setenv
      Src: /src/git/compat/mingw.c:3151,1
    - Dst: getenv
      Src: /src/git/compat/mingw.c:3154,1
    - Dst: getenv
      Src: /src/git/compat/mingw.c:3160,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/mingw.c:3162,1
    - Dst: getenv
      Src: /src/git/compat/mingw.c:3163,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/mingw.c:3164,1
    - Dst: is_directory
      Src: /src/git/compat/mingw.c:3165,1
    - Dst: setenv
      Src: /src/git/compat/mingw.c:3166,1
    - Dst: strbuf_release
      Src: /src/git/compat/mingw.c:3170,1
    - Dst: getenv
      Src: /src/git/compat/mingw.c:3173,1
    - Dst: setenv
      Src: /src/git/compat/mingw.c:3174,1
    - Dst: getenv
      Src: /src/git/compat/mingw.c:3183,1
    - Dst: strstr
      Src: /src/git/compat/mingw.c:3183,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3125
    functionDepth: 4
    functionLinenumber: 3125
    functionLinenumberEnd: 3185
    functionName: setup_windows_environment
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strstr
    - setenv
    - strbuf_addstr
    - convert_slashes
    - is_directory
    - getenv
    linkageType: ''
    returnType: void
    signature: void setup_windows_environment(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OpenProcessToken
      Src: /src/git/compat/mingw.c:3197,1
    - Dst: GetCurrentProcess
      Src: /src/git/compat/mingw.c:3197,1
    - Dst: GetTokenInformation
      Src: /src/git/compat/mingw.c:3200,1
    - Dst: xmalloc
      Src: /src/git/compat/mingw.c:3201,1
    - Dst: GetTokenInformation
      Src: /src/git/compat/mingw.c:3202,1
    - Dst: GetLengthSid
      Src: /src/git/compat/mingw.c:3203,1
    - Dst: xmalloc
      Src: /src/git/compat/mingw.c:3204,1
    - Dst: CopySid
      Src: /src/git/compat/mingw.c:3205,1
    - Dst: error
      Src: /src/git/compat/mingw.c:3206,1
    - Dst: _
      Src: /src/git/compat/mingw.c:3206,1
    - Dst: GetLastError
      Src: /src/git/compat/mingw.c:3207,1
    - Dst: FREE_AND_NULL
      Src: /src/git/compat/mingw.c:3208,1
    - Dst: FREE_AND_NULL
      Src: /src/git/compat/mingw.c:3211,1
    - Dst: GetTokenInformation
      Src: /src/git/compat/mingw.c:3214,1
    - Dst: GetTokenInformation
      Src: /src/git/compat/mingw.c:3220,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:3224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - sid
    - linked_token
    argTypes:
    - PSID*
    - HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3187
    functionDepth: 1
    functionLinenumber: 3187
    functionLinenumberEnd: 3225
    functionName: get_current_user_sid
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - error
    - GetTokenInformation
    - GetLengthSid
    - GetCurrentProcess
    - GetLastError
    - OpenProcessToken
    - xmalloc
    - CopySid
    - CloseHandle
    - _
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void get_current_user_sid(PSID *sid, HANDLE *linked_token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LookupAccountSidA
      Src: /src/git/compat/mingw.c:3236,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/compat/mingw.c:3241,1
    - Dst: LookupAccountSidA
      Src: /src/git/compat/mingw.c:3242,1
    - Dst: FREE_AND_NULL
      Src: /src/git/compat/mingw.c:3245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sid
    - str
    argTypes:
    - PSID
    - LPSTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3227
    functionDepth: 1
    functionLinenumber: 3227
    functionLinenumberEnd: 3249
    functionName: user_sid_to_user_name
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - LookupAccountSidA
    - ALLOC_ARRAY
    - FREE_AND_NULL
    linkageType: ''
    returnType: BOOL
    signature: BOOL user_sid_to_user_name(PSID sid, LPSTR *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: offset_1st_component
      Src: /src/git/compat/mingw.c:3253,1
    - Dst: xutftowcsn
      Src: /src/git/compat/mingw.c:3258,1
    - Dst: GetVolumeInformationW
      Src: /src/git/compat/mingw.c:3259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3264
      start: 3251
    functionDepth: 1
    functionLinenumber: 3251
    functionLinenumberEnd: 3264
    functionName: acls_supported
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - GetVolumeInformationW
    - xutftowcsn
    - offset_1st_component
    linkageType: ''
    returnType: int
    signature: int acls_supported(const char *path)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/mingw.c:3277,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:3286,1
    - Dst: GetEnvironmentVariableW
      Src: /src/git/compat/mingw.c:3287,1
    - Dst: wcscpy
      Src: /src/git/compat/mingw.c:3289,1
    - Dst: wcsicmp
      Src: /src/git/compat/mingw.c:3291,1
    - Dst: GetNamedSecurityInfoW
      Src: /src/git/compat/mingw.c:3295,1
    - Dst: error
      Src: /src/git/compat/mingw.c:3301,1
    - Dst: _
      Src: /src/git/compat/mingw.c:3301,1
    - Dst: IsValidSid
      Src: /src/git/compat/mingw.c:3302,1
    - Dst: get_current_user_sid
      Src: /src/git/compat/mingw.c:3309,1
    - Dst: IsValidSid
      Src: /src/git/compat/mingw.c:3312,1
    - Dst: EqualSid
      Src: /src/git/compat/mingw.c:3313,1
    - Dst: IsWellKnownSid
      Src: /src/git/compat/mingw.c:3315,1
    - Dst: CheckTokenMembership
      Src: /src/git/compat/mingw.c:3316,1
    - Dst: CheckTokenMembership
      Src: /src/git/compat/mingw.c:3319,1
    - Dst: IsWellKnownSid
      Src: /src/git/compat/mingw.c:3328,1
    - Dst: acls_supported
      Src: /src/git/compat/mingw.c:3329,1
    - Dst: strbuf_addf
      Src: /src/git/compat/mingw.c:3333,1
    - Dst: user_sid_to_user_name
      Src: /src/git/compat/mingw.c:3340,1
    - Dst: ConvertSidToStringSidA
      Src: /src/git/compat/mingw.c:3344,1
    - Dst: IsValidSid
      Src: /src/git/compat/mingw.c:3353,1
    - Dst: user_sid_to_user_name
      Src: /src/git/compat/mingw.c:3357,1
    - Dst: ConvertSidToStringSidA
      Src: /src/git/compat/mingw.c:3362,1
    - Dst: strbuf_addf
      Src: /src/git/compat/mingw.c:3368,1
    - Dst: free
      Src: /src/git/compat/mingw.c:3373,1
    - Dst: LocalFree
      Src: /src/git/compat/mingw.c:3374,1
    - Dst: free
      Src: /src/git/compat/mingw.c:3375,1
    - Dst: LocalFree
      Src: /src/git/compat/mingw.c:3376,1
    - Dst: LocalFree
      Src: /src/git/compat/mingw.c:3385,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 54
    argCount: 2
    argNames:
    - path
    - report
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3388
      start: 3266
    functionDepth: 2
    functionLinenumber: 3266
    functionLinenumberEnd: 3388
    functionName: is_path_owned_by_current_sid
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - GetNamedSecurityInfoW
    - strbuf_addf
    - get_current_user_sid
    - wcscpy
    - free
    - IsValidSid
    - wcsicmp
    - error
    - acls_supported
    - user_sid_to_user_name
    - LocalFree
    - IsWellKnownSid
    - ARRAY_SIZE
    - xutftowcs_path
    - EqualSid
    - _
    - GetEnvironmentVariableW
    - ConvertSidToStringSidA
    - CheckTokenMembership
    linkageType: ''
    returnType: int
    signature: int is_path_owned_by_current_sid(const char *path, struct strbuf *report)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: skip_dos_drive_prefix
      Src: /src/git/compat/mingw.c:3398,1
    - Dst: isdigit
      Src: /src/git/compat/mingw.c:3454,1
    - Dst: is_xplatform_dir_sep
      Src: /src/git/compat/mingw.c:3488,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 103
    argCount: 2
    argNames:
    - path
    - allow_literal_nul
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3390
    functionDepth: 1
    functionLinenumber: 3390
    functionLinenumberEnd: 3512
    functionName: is_valid_win32_path
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 4
    functionsReached:
    - isdigit
    - is_xplatform_dir_sep
    - skip_dos_drive_prefix
    linkageType: ''
    returnType: int
    signature: int is_valid_win32_path(const char *path, int allow_literal_nul)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/git/compat/mingw.c:3524,1
    - Dst: exit
      Src: /src/git/compat/mingw.c:3525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3522
    functionDepth: 1
    functionLinenumber: 3522
    functionLinenumberEnd: 3526
    functionName: die_startup
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - exit
    - fputs
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN die_startup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/git/compat/mingw.c:3530,1
    - Dst: die_startup
      Src: /src/git/compat/mingw.c:3532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3534
      start: 3528
    functionDepth: 2
    functionLinenumber: 3528
    functionLinenumberEnd: 3534
    functionName: malloc_startup
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - malloc
    - die_startup
    linkageType: ''
    returnType: void
    signature: void *malloc_startup(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xwcstoutf
      Src: /src/git/compat/mingw.c:3538,1
    - Dst: memcpy
      Src: /src/git/compat/mingw.c:3539,1
    - Dst: malloc_startup
      Src: /src/git/compat/mingw.c:3539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buffer
    - wcs
    - len
    argTypes:
    - char*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3540
      start: 3536
    functionDepth: 3
    functionLinenumber: 3536
    functionLinenumberEnd: 3540
    functionName: wcstoutfdup_startup
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - xwcstoutf
    - malloc_startup
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *wcstoutfdup_startup(char *buffer, const wchar_t *wcs, size_t
      len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/mingw.c:3547,1
    - Dst: GetEnvironmentVariableW
      Src: /src/git/compat/mingw.c:3549,1
    - Dst: SetEnvironmentVariableW
      Src: /src/git/compat/mingw.c:3555,1
    - Dst: wcscmp
      Src: /src/git/compat/mingw.c:3556,1
    - Dst: close
      Src: /src/git/compat/mingw.c:3557,1
    - Dst: GetStdHandle
      Src: /src/git/compat/mingw.c:3558,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:3560,1
    - Dst: wcscmp
      Src: /src/git/compat/mingw.c:3563,1
    - Dst: GetStdHandle
      Src: /src/git/compat/mingw.c:3564,1
    - Dst: close
      Src: /src/git/compat/mingw.c:3566,1
    - Dst: GetStdHandle
      Src: /src/git/compat/mingw.c:3567,1
    - Dst: CloseHandle
      Src: /src/git/compat/mingw.c:3569,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/mingw.c:3571,1
    - Dst: SetStdHandle
      Src: /src/git/compat/mingw.c:3572,1
    - Dst: dup2
      Src: /src/git/compat/mingw.c:3573,1
    - Dst: CreateFileW
      Src: /src/git/compat/mingw.c:3578,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/mingw.c:3581,1
    - Dst: SetStdHandle
      Src: /src/git/compat/mingw.c:3582,1
    - Dst: dup2
      Src: /src/git/compat/mingw.c:3583,1
    - Dst: close
      Src: /src/git/compat/mingw.c:3584,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - key
    - std_id
    - fd
    - desired_access
    - flags
    argTypes:
    - wchar_t*
    - DWORD
    - int
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3586
      start: 3542
    functionDepth: 0
    functionLinenumber: 3542
    functionLinenumberEnd: 3586
    functionName: maybe_redirect_std_handle
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - GetEnvironmentVariableW
    - SetEnvironmentVariableW
    - CreateFileW
    - wcscmp
    - GetStdHandle
    - CloseHandle
    - SetStdHandle
    - close
    - _open_osfhandle
    - dup2
    linkageType: ''
    returnType: void
    signature: "void maybe_redirect_std_handle(const wchar_t *key, DWORD std_id, int
      fd,\n\t\t\t\t      DWORD desired_access, DWORD flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maybe_redirect_std_handle
      Src: /src/git/compat/mingw.c:3590,1
    - Dst: maybe_redirect_std_handle
      Src: /src/git/compat/mingw.c:3592,1
    - Dst: maybe_redirect_std_handle
      Src: /src/git/compat/mingw.c:3594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3596
      start: 3588
    functionDepth: 1
    functionLinenumber: 3588
    functionLinenumberEnd: 3596
    functionName: maybe_redirect_std_handles
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - maybe_redirect_std_handle
    linkageType: ''
    returnType: void
    signature: void maybe_redirect_std_handles(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetVersion
      Src: /src/git/compat/mingw.c:3609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3614
      start: 3598
    functionDepth: 0
    functionLinenumber: 3598
    functionLinenumberEnd: 3614
    functionName: adjust_symlink_flags
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - GetVersion
    linkageType: ''
    returnType: void
    signature: void adjust_symlink_flags(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_initialize_clock
      Src: /src/git/compat/mingw.c:3638,1
    - Dst: _CrtSetReportMode
      Src: /src/git/compat/mingw.c:3642,1
    - Dst: _CrtSetDbgFlag
      Src: /src/git/compat/mingw.c:3646,1
    - Dst: maybe_redirect_std_handles
      Src: /src/git/compat/mingw.c:3650,1
    - Dst: adjust_symlink_flags
      Src: /src/git/compat/mingw.c:3651,1
    - Dst: wcslen
      Src: /src/git/compat/mingw.c:3654,1
    - Dst: max
      Src: /src/git/compat/mingw.c:3656,1
    - Dst: wcslen
      Src: /src/git/compat/mingw.c:3656,1
    - Dst: malloc_startup
      Src: /src/git/compat/mingw.c:3660,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/compat/mingw.c:3667,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/compat/mingw.c:3668,1
    - Dst: wcstoutfdup_startup
      Src: /src/git/compat/mingw.c:3670,1
    - Dst: free
      Src: /src/git/compat/mingw.c:3672,1
    - Dst: setup_windows_environment
      Src: /src/git/compat/mingw.c:3675,1
    - Dst: xstrdup
      Src: /src/git/compat/mingw.c:3677,1
    - Dst: InitializeCriticalSection
      Src: /src/git/compat/mingw.c:3680,1
    - Dst: InitializeCriticalSection
      Src: /src/git/compat/mingw.c:3681,1
    - Dst: _setmode
      Src: /src/git/compat/mingw.c:3685,1
    - Dst: _fileno
      Src: /src/git/compat/mingw.c:3685,1
    - Dst: _setmode
      Src: /src/git/compat/mingw.c:3686,1
    - Dst: _fileno
      Src: /src/git/compat/mingw.c:3686,1
    - Dst: _setmode
      Src: /src/git/compat/mingw.c:3687,1
    - Dst: _fileno
      Src: /src/git/compat/mingw.c:3687,1
    - Dst: winansi_init
      Src: /src/git/compat/mingw.c:3690,1
    - Dst: main
      Src: /src/git/compat/mingw.c:3693,1
    - Dst: free
      Src: /src/git/compat/mingw.c:3696,1
    - Dst: free
      Src: /src/git/compat/mingw.c:3697,1
    - Dst: free
      Src: /src/git/compat/mingw.c:3698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - wargv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3701
      start: 3631
    functionDepth: 5
    functionLinenumber: 3631
    functionLinenumberEnd: 3701
    functionName: wmain
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - wcslen
    - _CrtSetReportMode
    - trace2_initialize_clock
    - _fileno
    - adjust_symlink_flags
    - ALLOC_ARRAY
    - _CrtSetDbgFlag
    - setup_windows_environment
    - _setmode
    - winansi_init
    - malloc_startup
    - InitializeCriticalSection
    - maybe_redirect_std_handles
    - free
    - main
    - wcstoutfdup_startup
    - max
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int wmain(int argc, const wchar_t **wargv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetVersion
      Src: /src/git/compat/mingw.c:3705,1
    - Dst: memset
      Src: /src/git/compat/mingw.c:3706,1
    - Dst: xsnprintf
      Src: /src/git/compat/mingw.c:3707,1
    - Dst: xsnprintf
      Src: /src/git/compat/mingw.c:3708,1
    - Dst: xsnprintf
      Src: /src/git/compat/mingw.c:3711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct utsname*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3714
      start: 3703
    functionDepth: 2
    functionLinenumber: 3703
    functionLinenumberEnd: 3714
    functionName: uname
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 2
    functionsReached:
    - GetVersion
    - memset
    - xsnprintf
    linkageType: ''
    returnType: int
    signature: int uname(struct utsname *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OpenSCManagerA
      Src: /src/git/compat/mingw.c:3723,1
    - Dst: OpenServiceA
      Src: /src/git/compat/mingw.c:3725,1
    - Dst: QueryServiceStatusEx
      Src: /src/git/compat/mingw.c:3727,1
    - Dst: CloseServiceHandle
      Src: /src/git/compat/mingw.c:3729,1
    - Dst: CloseServiceHandle
      Src: /src/git/compat/mingw.c:3731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3734
      start: 3717
    functionDepth: 0
    functionLinenumber: 3717
    functionLinenumberEnd: 3734
    functionName: mingw_have_unix_sockets
    functionSourceFile: /src/git/compat/mingw.c
    functionUses: 0
    functionsReached:
    - OpenSCManagerA
    - QueryServiceStatusEx
    - OpenServiceA
    - CloseServiceHandle
    linkageType: ''
    returnType: int
    signature: int mingw_have_unix_sockets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - adler
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: adler32
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: adler32(adler, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - crc
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: crc32
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: crc32(crc, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: inflate
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflate(strm, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: inflateEnd
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateEnd(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: inflateInit
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateInit(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: inflateInit2
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateInit2(strm, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: inflateReset
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateReset(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: deflate
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflate(strm, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - source_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: deflateBound
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateBound(strm, source_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: deflateEnd
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateEnd(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: deflateInit
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateInit(strm, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - stream
    - ','
    - level
    - ','
    - method
    - ','
    - window_bits
    - ','
    - mem_level
    - ','
    - strategy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: deflateInit2
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateInit2(stream, level, method, window_bits, mem_level, strategy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: deflateReset
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateReset(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: deflateSetHeader
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateSetHeader(strm, head)
  - 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: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: deflateBound
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateBound(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - strm
    - head
    argTypes:
    - z_streamp
    - struct gz_header_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: deflateSetHeader
    functionSourceFile: /src/git/compat/zlib-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int deflateSetHeader(z_streamp strm, struct gz_header_s *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/strcasestr.c:5,1
    - Dst: strlen
      Src: /src/git/compat/strcasestr.c:6,1
    - Dst: toupper
      Src: /src/git/compat/strcasestr.c:14,1
    - Dst: toupper
      Src: /src/git/compat/strcasestr.c:14,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 22
    functionName: gitstrcasestr
    functionSourceFile: /src/git/compat/strcasestr.c
    functionUses: 0
    functionsReached:
    - strlen
    - toupper
    linkageType: ''
    returnType: char
    signature: char *gitstrcasestr(const char *haystack, const char *needle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/git/compat/nonblock.c:8,1
    - Dst: fcntl
      Src: /src/git/compat/nonblock.c:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 13
    functionName: enable_pipe_nonblock
    functionSourceFile: /src/git/compat/nonblock.c
    functionUses: 1
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int enable_pipe_nonblock(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/nonblock.c:21,1
    - Dst: GetFileType
      Src: /src/git/compat/nonblock.c:23,1
    - Dst: GetLastError
      Src: /src/git/compat/nonblock.c:24,1
    - Dst: BUG
      Src: /src/git/compat/nonblock.c:29,1
    - Dst: GetNamedPipeHandleState
      Src: /src/git/compat/nonblock.c:30,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/nonblock.c:31,1
    - Dst: GetLastError
      Src: /src/git/compat/nonblock.c:31,1
    - Dst: SetNamedPipeHandleState
      Src: /src/git/compat/nonblock.c:35,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/nonblock.c:36,1
    - Dst: GetLastError
      Src: /src/git/compat/nonblock.c:36,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 40
    functionName: enable_pipe_nonblock
    functionSourceFile: /src/git/compat/nonblock.c
    functionUses: 1
    functionsReached:
    - GetNamedPipeHandleState
    - GetLastError
    - _get_osfhandle
    - err_win_to_posix
    - SetNamedPipeHandleState
    - BUG
    - GetFileType
    linkageType: ''
    returnType: int
    signature: int enable_pipe_nonblock(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: enable_pipe_nonblock
    functionSourceFile: /src/git/compat/nonblock.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int enable_pipe_nonblock(int fd UNUSED)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/compat/inet_pton.c:65,1
    - Dst: memcpy
      Src: /src/git/compat/inet_pton.c:86,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 88
    functionName: inet_pton4
    functionSourceFile: /src/git/compat/inet_pton.c
    functionUses: 0
    functionsReached:
    - strchr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int inet_pton4(const char *src, unsigned char *dst)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/compat/inet_pton.c:115,1
    - Dst: strchr
      Src: /src/git/compat/inet_pton.c:128,1
    - Dst: strchr
      Src: /src/git/compat/inet_pton.c:129,1
    - Dst: inet_pton4
      Src: /src/git/compat/inet_pton.c:155,1
    - Dst: memcpy
      Src: /src/git/compat/inet_pton.c:184,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 186
    functionName: inet_pton6
    functionSourceFile: /src/git/compat/inet_pton.c
    functionUses: 0
    functionsReached:
    - memset
    - inet_pton4
    - strchr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int inet_pton6(const char *src, unsigned char *dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton4
      Src: /src/git/compat/inet_pton.c:205,1
    - Dst: inet_pton6
      Src: /src/git/compat/inet_pton.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - af
    - src
    - dst
    argTypes:
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 215
    functionName: inet_pton
    functionSourceFile: /src/git/compat/inet_pton.c
    functionUses: 1
    functionsReached:
    - inet_pton6
    - inet_pton4
    linkageType: ''
    returnType: int
    signature: int inet_pton(int af, const char *src, void *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: platform_SHA1_Update
      Src: /src/git/compat/sha1-chunked.c:14,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - platform_SHA_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 20
    functionName: git_SHA1_Update_Chunked
    functionSourceFile: /src/git/compat/sha1-chunked.c
    functionUses: 0
    functionsReached:
    - platform_SHA1_Update
    linkageType: ''
    returnType: int
    signature: int git_SHA1_Update_Chunked(platform_SHA_CTX *c, const void *data,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/compat/strtoumax.c:6,1
    - Dst: strtoull
      Src: /src/git/compat/strtoumax.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nptr
    - endptr
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 10
    functionName: gitstrtoumax
    functionSourceFile: /src/git/compat/strtoumax.c
    functionUses: 0
    functionsReached:
    - strtoull
    - strtoul
    linkageType: ''
    returnType: uintmax_t
    signature: uintmax_t gitstrtoumax (const char *nptr, char **endptr, int base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/git/compat/pread.c:9,1
    - Dst: lseek
      Src: /src/git/compat/pread.c:11,1
    - Dst: read_in_full
      Src: /src/git/compat/pread.c:14,1
    - Dst: lseek
      Src: /src/git/compat/pread.c:16,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - buf
    - count
    - offset
    argTypes:
    - int
    - void*
    - size_t
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 4
    functionDepth: 4
    functionLinenumber: 4
    functionLinenumberEnd: 19
    functionName: git_pread
    functionSourceFile: /src/git/compat/pread.c
    functionUses: 0
    functionsReached:
    - read_in_full
    - lseek
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t git_pread(int fd, void *buf, size_t count, off_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/compat/open.c:16,1
    - Dst: va_arg
      Src: /src/git/compat/open.c:17,1
    - Dst: va_end
      Src: /src/git/compat/open.c:18,1
    - Dst: open
      Src: /src/git/compat/open.c:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - path
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 26
    functionName: git_open_with_retry
    functionSourceFile: /src/git/compat/open.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - va_arg
    - open
    linkageType: ''
    returnType: int
    signature: int git_open_with_retry(const char *path, int flags, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/compat/open.c:34,1
    - Dst: open
      Src: /src/git/compat/open.c:38,1
    - Dst: fcntl
      Src: /src/git/compat/open.c:47,1
    - Dst: fcntl
      Src: /src/git/compat/open.c:48,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 54
    functionName: git_open_cloexec
    functionSourceFile: /src/git/compat/open.c
    functionUses: 1
    functionsReached:
    - fcntl
    - open
    linkageType: ''
    returnType: int
    signature: int git_open_cloexec(const char *name, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/git/compat/hstrerror.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 21
    functionName: githstrerror
    functionSourceFile: /src/git/compat/hstrerror.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *githstrerror(int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/mkdir.c:9,1
    - Dst: strdup
      Src: /src/git/compat/mkdir.c:12,1
    - Dst: mkdir
      Src: /src/git/compat/mkdir.c:19,1
    - Dst: free
      Src: /src/git/compat/mkdir.c:21,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - dir
    - mode
    argTypes:
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 24
    functionName: compat_mkdir_wo_trailing_slash
    functionSourceFile: /src/git/compat/mkdir.c
    functionUses: 0
    functionsReached:
    - mkdir
    - strdup
    - strlen
    - free
    linkageType: ''
    returnType: int
    signature: int compat_mkdir_wo_trailing_slash(const char *dir, mode_t mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: opendir
    functionSourceFile: /src/git/compat/precompose_utf8.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: opendir(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: readdir
    functionSourceFile: /src/git/compat/precompose_utf8.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readdir(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: closedir
    functionSourceFile: /src/git/compat/precompose_utf8.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: closedir(d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: skip_dos_drive_prefix
      Src: /src/git/compat/basename.c:10,1
    - Dst: is_dir_sep
      Src: /src/git/compat/basename.c:22,1
    - Dst: is_dir_sep
      Src: /src/git/compat/basename.c:26,1
    - Dst: is_dir_sep
      Src: /src/git/compat/basename.c:30,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 34
    functionName: gitbasename
    functionSourceFile: /src/git/compat/basename.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - skip_dos_drive_prefix
    linkageType: ''
    returnType: char
    signature: char *gitbasename (char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: skip_dos_drive_prefix
      Src: /src/git/compat/basename.c:51,1
    - Dst: is_dir_sep
      Src: /src/git/compat/basename.c:58,1
    - Dst: is_dir_sep
      Src: /src/git/compat/basename.c:59,1
    - Dst: is_dir_sep
      Src: /src/git/compat/basename.c:64,1
    - Dst: is_dir_sep
      Src: /src/git/compat/basename.c:68,1
    - Dst: strbuf_reset
      Src: /src/git/compat/basename.c:80,1
    - Dst: strbuf_addf
      Src: /src/git/compat/basename.c:81,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 83
    functionName: gitdirname
    functionSourceFile: /src/git/compat/basename.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strbuf_reset
    - strbuf_addf
    - skip_dos_drive_prefix
    linkageType: ''
    returnType: char
    signature: char *gitdirname(char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/compat/compiler.h:14,1
    - Dst: strbuf_addf
      Src: /src/git/compat/compiler.h:16,1
    - Dst: strbuf_addf
      Src: /src/git/compat/compiler.h:20,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/compiler.h:25,1
    - Dst: _
      Src: /src/git/compat/compiler.h:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 10
    functionDepth: 4
    functionLinenumber: 10
    functionLinenumberEnd: 26
    functionName: get_compiler_info
    functionSourceFile: /src/git/compat/compiler.h
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: void
    signature: void get_compiler_info(struct strbuf *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/compat/compiler.h:33,1
    - Dst: gnu_get_libc_version
      Src: /src/git/compat/compiler.h:33,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/compiler.h:37,1
    - Dst: _
      Src: /src/git/compat/compiler.h:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: get_libc_info
    functionSourceFile: /src/git/compat/compiler.h
    functionUses: 0
    functionsReached:
    - gnu_get_libc_version
    - strbuf_addf
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: void
    signature: void get_libc_info(struct strbuf *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/git/compat/regcomp_enhanced.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - preg
    - pattern
    - cflags
    argTypes:
    - regex_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 14
    functionName: git_regcomp
    functionSourceFile: /src/git/compat/regcomp_enhanced.c
    functionUses: 0
    functionsReached:
    - regcomp
    linkageType: ''
    returnType: int
    signature: int git_regcomp(regex_t *preg, const char *pattern, int cflags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/compat/fopen.c:20,1
    - Dst: fopen
      Src: /src/git/compat/fopen.c:22,1
    - Dst: fstat
      Src: /src/git/compat/fopen.c:25,1
    - Dst: fileno
      Src: /src/git/compat/fopen.c:25,1
    - Dst: fclose
      Src: /src/git/compat/fopen.c:26,1
    - Dst: S_ISDIR
      Src: /src/git/compat/fopen.c:30,1
    - Dst: fclose
      Src: /src/git/compat/fopen.c:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 37
    functionName: git_fopen
    functionSourceFile: /src/git/compat/fopen.c
    functionUses: 0
    functionsReached:
    - fclose
    - S_ISDIR
    - fileno
    - fstat
    - fopen
    linkageType: ''
    returnType: FILE
    signature: FILE *git_fopen(const char *path, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/git/compat/fileno.c:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 7
    functionName: git_fileno
    functionSourceFile: /src/git/compat/fileno.c
    functionUses: 0
    functionsReached:
    - fileno
    linkageType: ''
    returnType: int
    signature: int git_fileno(FILE *stream)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/git/compat/snprintf.c:27,1
    - Dst: vsnprintf
      Src: /src/git/compat/snprintf.c:28,1
    - Dst: va_end
      Src: /src/git/compat/snprintf.c:29,1
    - Dst: realloc
      Src: /src/git/compat/snprintf.c:44,1
    - Dst: va_copy
      Src: /src/git/compat/snprintf.c:48,1
    - Dst: vsnprintf
      Src: /src/git/compat/snprintf.c:49,1
    - Dst: va_end
      Src: /src/git/compat/snprintf.c:50,1
    - Dst: free
      Src: /src/git/compat/snprintf.c:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - str
    - maxsize
    - format
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 56
    functionName: git_vsnprintf
    functionSourceFile: /src/git/compat/snprintf.c
    functionUses: 0
    functionsReached:
    - va_copy
    - va_end
    - realloc
    - free
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int git_vsnprintf(char *str, size_t maxsize, const char *format, va_list
      ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/compat/snprintf.c:63,1
    - Dst: git_vsnprintf
      Src: /src/git/compat/snprintf.c:64,1
    - Dst: va_end
      Src: /src/git/compat/snprintf.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - str
    - maxsize
    - format
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: git_snprintf
    functionSourceFile: /src/git/compat/snprintf.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - git_vsnprintf
    linkageType: ''
    returnType: int
    signature: int git_snprintf(char *str, size_t maxsize, const char *format, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/git/compat/access.c:13,1
    - Dst: access
      Src: /src/git/compat/access.c:14,1
    - Dst: stat
      Src: /src/git/compat/access.c:16,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 31
    functionName: git_access
    functionSourceFile: /src/git/compat/access.c
    functionUses: 0
    functionsReached:
    - access
    - stat
    - geteuid
    linkageType: ''
    returnType: int
    signature: int git_access(const char *path, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_fd
      Src: /src/git/compat/mingw.h:12,1
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.h:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - fd
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: mingw_SSL_set_fd
    functionSourceFile: /src/git/compat/mingw.h
    functionUses: 0
    functionsReached:
    - _get_osfhandle
    - SSL_set_fd
    linkageType: ''
    returnType: int
    signature: int mingw_SSL_set_fd(SSL *ssl, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_rfd
      Src: /src/git/compat/mingw.h:18,1
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - fd
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: mingw_SSL_set_rfd
    functionSourceFile: /src/git/compat/mingw.h
    functionUses: 0
    functionsReached:
    - SSL_set_rfd
    - _get_osfhandle
    linkageType: ''
    returnType: int
    signature: int mingw_SSL_set_rfd(SSL *ssl, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_wfd
      Src: /src/git/compat/mingw.h:24,1
    - Dst: _get_osfhandle
      Src: /src/git/compat/mingw.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - fd
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: mingw_SSL_set_wfd
    functionSourceFile: /src/git/compat/mingw.h
    functionUses: 0
    functionsReached:
    - _get_osfhandle
    - SSL_set_wfd
    linkageType: ''
    returnType: int
    signature: int mingw_SSL_set_wfd(SSL *ssl, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: convert_slashes
    functionSourceFile: /src/git/compat/mingw.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void convert_slashes(char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: is_valid_path
    functionSourceFile: /src/git/compat/mingw.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_valid_path(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcsn
      Src: /src/git/compat/mingw.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wcs
    - utf
    - wcslen
    argTypes:
    - wchar_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: xutftowcs
    functionSourceFile: /src/git/compat/mingw.h
    functionUses: 6
    functionsReached:
    - xutftowcsn
    linkageType: ''
    returnType: int
    signature: int xutftowcs(wchar_t *wcs, const char *utf, size_t wcslen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcsn
      Src: /src/git/compat/mingw.h:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - wcs
    - utf
    argTypes:
    - wchar_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: xutftowcs_path
    functionSourceFile: /src/git/compat/mingw.h
    functionUses: 19
    functionsReached:
    - xutftowcsn
    linkageType: ''
    returnType: int
    signature: int xutftowcs_path(wchar_t *wcs, const char *utf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: GIT_GNUC_PREREQ
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GIT_GNUC_PREREQ(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: GIT_GNUC_PREREQ
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GIT_GNUC_PREREQ(maj, min)
  - 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: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: mkdir
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mkdir(a,b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/git/compat/posix.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tloc
    argTypes:
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 198
    functionName: git_time
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: time_t
    signature: time_t git_time(time_t *tloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - newvalue
    argTypes:
    - int
    - struct itimerval*
    - struct itimerval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: git_setitimer
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int git_setitimer(int which UNUSED,\n\t\t\t\tconst struct itimerval
      *value UNUSED,\n\t\t\t\tstruct itimerval *newvalue UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - which
    - ','
    - value
    - ','
    - ovalue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: setitimer
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setitimer(which,value,ovalue)
  - 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: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: stat
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 165
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: stat(path, buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: fstat
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fstat(fd, buf)
  - 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: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: lstat
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 59
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lstat(path, buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: getpagesize
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getpagesize()
  - 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: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: fopen
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fopen(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: gitstrchrnul
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *gitstrchrnul(const char *s, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - base
    - ','
    - n
    - ','
    - compar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 457
    functionName: QSORT
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QSORT(base, n, compar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/git/compat/posix.h:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - base
    - nmemb
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 462
    functionName: sane_qsort
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: "void sane_qsort(void *base, size_t nmemb, size_t size,\n\t\t\t      int(*compar)(const
      void *, const void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - base
    - ','
    - n
    - ','
    - compar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 466
    functionName: STABLE_QSORT
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STABLE_QSORT(base, n, compar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - base
    - ','
    - n
    - ','
    - compar
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: QSORT_S
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QSORT_S(base, n, compar, ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: ST_CTIME_NSEC
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_CTIME_NSEC(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 482
    functionName: ST_MTIME_NSEC
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_MTIME_NSEC(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 485
    functionName: ST_CTIME_NSEC
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_CTIME_NSEC(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: ST_MTIME_NSEC
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_MTIME_NSEC(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 488
    functionName: ST_CTIME_NSEC
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_CTIME_NSEC(st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 489
    functionName: ST_MTIME_NSEC
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_MTIME_NSEC(st)
  - 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: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: va_copy
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(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: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: va_copy
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fh
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: flockfile
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flockfile(fh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fh
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 519
    functionName: funlockfile
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: funlockfile(fh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fh
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: getc_unlocked
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getc_unlocked(fh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    functionName: fileno
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fileno(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 537
    functionName: access
    functionSourceFile: /src/git/compat/posix.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: access(path, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: CALL_CHUNKFUN
    functionSourceFile: /src/git/compat/obstack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_CHUNKFUN(h, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - old_chunk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: CALL_FREEFUN
    functionSourceFile: /src/git/compat/obstack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_FREEFUN(h, old_chunk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CALL_CHUNKFUN
      Src: /src/git/compat/obstack.c:168,1
    - Dst: __PTR_ALIGN
      Src: /src/git/compat/obstack.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - h
    - size
    - alignment
    - (*chunkfun) (long)
    argTypes:
    - struct obstack*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 180
    functionName: _obstack_begin
    functionSourceFile: /src/git/compat/obstack.c
    functionUses: 0
    functionsReached:
    - CALL_CHUNKFUN
    - __PTR_ALIGN
    linkageType: ''
    returnType: int
    signature: "int _obstack_begin (struct obstack *h,\n\t\tint size, int alignment,\n\t\tvoid
      *(*chunkfun) (long),\n\t\tvoid (*freefun) (void *))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CALL_CHUNKFUN
      Src: /src/git/compat/obstack.c:217,1
    - Dst: __PTR_ALIGN
      Src: /src/git/compat/obstack.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - h
    - size
    - alignment
    - (*chunkfun) (void *, long)
    - arg
    argTypes:
    - struct obstack*
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 229
    functionName: _obstack_begin_1
    functionSourceFile: /src/git/compat/obstack.c
    functionUses: 0
    functionsReached:
    - CALL_CHUNKFUN
    - __PTR_ALIGN
    linkageType: ''
    returnType: int
    signature: "int _obstack_begin_1 (struct obstack *h, int size, int alignment,\n\t\t
      \ void *(*chunkfun) (void *, long),\n\t\t  void (*freefun) (void *, void *),\n\t\t
      \ void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CALL_CHUNKFUN
      Src: /src/git/compat/obstack.c:254,1
    - Dst: __PTR_ALIGN
      Src: /src/git/compat/obstack.c:263,1
    - Dst: __PTR_ALIGN
      Src: /src/git/compat/obstack.c:290,1
    - Dst: CALL_FREEFUN
      Src: /src/git/compat/obstack.c:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - h
    - length
    argTypes:
    - struct obstack*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 301
    functionName: _obstack_newchunk
    functionSourceFile: /src/git/compat/obstack.c
    functionUses: 0
    functionsReached:
    - CALL_CHUNKFUN
    - CALL_FREEFUN
    - __PTR_ALIGN
    linkageType: ''
    returnType: void
    signature: void _obstack_newchunk (struct obstack *h, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - h
    - obj
    argTypes:
    - struct obstack*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 330
    functionName: _obstack_allocated_p
    functionSourceFile: /src/git/compat/obstack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _obstack_allocated_p (struct obstack *h, void *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FREEFUN
      Src: /src/git/compat/obstack.c:350,1
    - Dst: abort
      Src: /src/git/compat/obstack.c:364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - h
    - obj
    argTypes:
    - struct obstack*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 365
    functionName: obstack_free
    functionSourceFile: /src/git/compat/obstack.c
    functionUses: 2
    functionsReached:
    - CALL_FREEFUN
    - abort
    linkageType: ''
    returnType: void
    signature: void obstack_free (struct obstack *h, void *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct obstack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 384
    functionName: _obstack_memory_used
    functionSourceFile: /src/git/compat/obstack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _obstack_memory_used (struct obstack *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __fxprintf
      Src: /src/git/compat/obstack.c:406,1
    - Dst: _
      Src: /src/git/compat/obstack.c:406,1
    - Dst: fprintf
      Src: /src/git/compat/obstack.c:408,1
    - Dst: _
      Src: /src/git/compat/obstack.c:408,1
    - Dst: exit
      Src: /src/git/compat/obstack.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 411
    functionName: print_and_abort
    functionSourceFile: /src/git/compat/obstack.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - _
    - __fxprintf
    linkageType: ''
    returnType: void
    signature: void print_and_abort (void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/compat/mmap.c:8,1
    - Dst: malloc
      Src: /src/git/compat/mmap.c:15,1
    - Dst: xpread
      Src: /src/git/compat/mmap.c:22,1
    - Dst: memset
      Src: /src/git/compat/mmap.c:25,1
    - Dst: free
      Src: /src/git/compat/mmap.c:30,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 6
    argNames:
    - start
    - length
    - prot
    - flags
    - fd
    - offset
    argTypes:
    - void*
    - size_t
    - int
    - int
    - int
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 39
    functionName: git_mmap
    functionSourceFile: /src/git/compat/mmap.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - free
    - xpread
    - malloc
    linkageType: ''
    returnType: void
    signature: void *git_mmap(void *start, size_t length, int prot, int flags, int
      fd, off_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/compat/mmap.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - start
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: git_munmap
    functionSourceFile: /src/git/compat/mmap.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int git_munmap(void *start, size_t length UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: msort_with_tmp
      Src: /src/git/compat/qsort_s.c:25,1
    - Dst: msort_with_tmp
      Src: /src/git/compat/qsort_s.c:26,1
    - Dst: cmp
      Src: /src/git/compat/qsort_s.c:31,1
    - Dst: memcpy
      Src: /src/git/compat/qsort_s.c:32,1
    - Dst: memcpy
      Src: /src/git/compat/qsort_s.c:37,1
    - Dst: memcpy
      Src: /src/git/compat/qsort_s.c:44,1
    - Dst: memcpy
      Src: /src/git/compat/qsort_s.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - b
    - n
    - s
    - t
    - ctx
    argTypes:
    - void*
    - size_t
    - size_t
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 9
    functionDepth: 2
    functionLinenumber: 9
    functionLinenumberEnd: 46
    functionName: msort_with_tmp
    functionSourceFile: /src/git/compat/qsort_s.c
    functionUses: 3
    functionsReached:
    - msort_with_tmp
    - cmp
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void msort_with_tmp(void *b, size_t n, size_t s,\n\t\t\t   int (*cmp)(const
      void *, const void *, void *),\n\t\t\t   char *t, void *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: st_mult
      Src: /src/git/compat/qsort_s.c:51,1
    - Dst: xmalloc
      Src: /src/git/compat/qsort_s.c:59,1
    - Dst: msort_with_tmp
      Src: /src/git/compat/qsort_s.c:60,1
    - Dst: free
      Src: /src/git/compat/qsort_s.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - b
    - n
    - s
    - ctx
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: git_qsort_s
    functionSourceFile: /src/git/compat/qsort_s.c
    functionUses: 0
    functionsReached:
    - free
    - xmalloc
    - msort_with_tmp
    - st_mult
    linkageType: ''
    returnType: int
    signature: "int git_qsort_s(void *b, size_t n, size_t s,\n\t\tint (*cmp)(const
      void *, const void *, void *), void *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentConsoleFontEx
      Src: /src/git/compat/winansi.c:45,1
    - Dst: WriteConsoleW
      Src: /src/git/compat/winansi.c:54,1
    - Dst: wcslen
      Src: /src/git/compat/winansi.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: warn_if_raster_font
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - wcslen
    - GetCurrentConsoleFontEx
    - WriteConsoleW
    linkageType: ''
    returnType: void
    signature: void warn_if_raster_font(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/winansi.c:67,1
    - Dst: GetFileType
      Src: /src/git/compat/winansi.c:72,1
    - Dst: GetConsoleMode
      Src: /src/git/compat/winansi.c:77,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/git/compat/winansi.c:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 101
    functionName: is_console
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - GetConsoleMode
    - _get_osfhandle
    - GetConsoleScreenBufferInfo
    - GetFileType
    linkageType: ''
    returnType: int
    signature: int is_console(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcsn
      Src: /src/git/compat/winansi.c:113,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/winansi.c:113,1
    - Dst: WriteConsoleW
      Src: /src/git/compat/winansi.c:116,1
    - Dst: wcslen
      Src: /src/git/compat/winansi.c:116,1
    - Dst: WriteConsoleW
      Src: /src/git/compat/winansi.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 126
    functionName: write_console
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - xutftowcsn
    - wcslen
    - WriteConsoleW
    linkageType: ''
    returnType: void
    signature: void write_console(unsigned char *str, size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleTextAttribute
      Src: /src/git/compat/winansi.c:154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 155
    functionName: set_console_attr
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - SetConsoleTextAttribute
    linkageType: ''
    returnType: void
    signature: void set_console_attr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/git/compat/winansi.c:165,1
    - Dst: FillConsoleOutputCharacterA
      Src: /src/git/compat/winansi.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 169
    functionName: erase_in_line
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - FillConsoleOutputCharacterA
    - GetConsoleScreenBufferInfo
    linkageType: ''
    returnType: void
    signature: void erase_in_line(void)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: set_console_attr
      Src: /src/git/compat/winansi.c:301,1
    - Dst: erase_in_line
      Src: /src/git/compat/winansi.c:304,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 123
    argCount: 3
    argNames:
    - func
    - params
    - paramlen
    argTypes:
    - char
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 310
    functionName: set_attr
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - erase_in_line
    - set_console_attr
    linkageType: ''
    returnType: void
    signature: void set_attr(char func, const int *params, int paramlen)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/git/compat/winansi.c:325,1
    - Dst: GetLastError
      Src: /src/git/compat/winansi.c:328,1
    - Dst: GetLastError
      Src: /src/git/compat/winansi.c:329,1
    - Dst: write_console
      Src: /src/git/compat/winansi.c:345,1
    - Dst: memset
      Src: /src/git/compat/winansi.c:350,1
    - Dst: set_attr
      Src: /src/git/compat/winansi.c:379,1
    - Dst: write_console
      Src: /src/git/compat/winansi.c:403,1
    - Dst: memmove
      Src: /src/git/compat/winansi.c:407,1
    - Dst: warn_if_raster_font
      Src: /src/git/compat/winansi.c:416,1
    - Dst: CloseHandle
      Src: /src/git/compat/winansi.c:418,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 63
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 420
    functionName: console_thread
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - memset
    - ReadFile
    - warn_if_raster_font
    - write_console
    - GetLastError
    - set_attr
    - CloseHandle
    - memmove
    linkageType: ''
    returnType: DWORD
    signature: DWORD console_thread(LPVOID data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _flushall
      Src: /src/git/compat/winansi.c:425,1
    - Dst: FlushFileBuffers
      Src: /src/git/compat/winansi.c:428,1
    - Dst: DisconnectNamedPipe
      Src: /src/git/compat/winansi.c:429,1
    - Dst: WaitForSingleObject
      Src: /src/git/compat/winansi.c:432,1
    - Dst: CloseHandle
      Src: /src/git/compat/winansi.c:435,1
    - Dst: CloseHandle
      Src: /src/git/compat/winansi.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 437
    functionName: winansi_exit
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - _flushall
    - FlushFileBuffers
    - CloseHandle
    - WaitForSingleObject
    - DisconnectNamedPipe
    linkageType: ''
    returnType: void
    signature: void winansi_exit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/compat/winansi.c:442,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/winansi.c:443,1
    - Dst: GetLastError
      Src: /src/git/compat/winansi.c:443,1
    - Dst: die_errno
      Src: /src/git/compat/winansi.c:444,1
    - Dst: va_end
      Src: /src/git/compat/winansi.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 446
    functionName: die_lasterr
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - die_errno
    - va_end
    - err_win_to_posix
    - va_start
    linkageType: ''
    returnType: void
    signature: void die_lasterr(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dup2
      Src: /src/git/compat/winansi.c:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - oldfd
    - newfd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 458
    functionName: winansi_dup2
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - dup2
    linkageType: ''
    returnType: int
    signature: int winansi_dup2(int oldfd, int newfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/git/compat/winansi.c:462,1
    - Dst: DuplicateHandle
      Src: /src/git/compat/winansi.c:463,1
    - Dst: die_lasterr
      Src: /src/git/compat/winansi.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hnd
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 468
    functionName: duplicate_handle
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcess
    - die_lasterr
    - DuplicateHandle
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE duplicate_handle(HANDLE hnd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/winansi.c:476,1
    - Dst: duplicate_handle
      Src: /src/git/compat/winansi.c:477,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/winansi.c:480,1
    - Dst: assert
      Src: /src/git/compat/winansi.c:482,1
    - Dst: dup2
      Src: /src/git/compat/winansi.c:501,1
    - Dst: close
      Src: /src/git/compat/winansi.c:506,1
    - Dst: setvbuf
      Src: /src/git/compat/winansi.c:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - new_handle
    argTypes:
    - int
    - HANDLE
    assertStmts:
    - condition: ((fd == 1) || (fd == 2))
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/git/compat/winansi.c
    constantsTouched: []
    func_position:
      end: 513
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 513
    functionName: swap_osfhnd
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - assert
    - duplicate_handle
    - _get_osfhandle
    - setvbuf
    - close
    - _open_osfhandle
    - dup2
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE swap_osfhnd(int fd, HANDLE new_handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/winansi.c:541,1
    - Dst: GetFileType
      Src: /src/git/compat/winansi.c:542,1
    - Dst: NT_SUCCESS
      Src: /src/git/compat/winansi.c:546,1
    - Dst: NtQueryObject
      Src: /src/git/compat/winansi.c:546,1
    - Dst: wcsstr
      Src: /src/git/compat/winansi.c:556,1
    - Dst: wcsstr
      Src: /src/git/compat/winansi.c:556,1
    - Dst: wcsstr
      Src: /src/git/compat/winansi.c:557,1
    - Dst: setvbuf
      Src: /src/git/compat/winansi.c:561,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 563
    functionName: detect_msys_tty
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - wcsstr
    - NtQueryObject
    - _get_osfhandle
    - NT_SUCCESS
    - setvbuf
    - GetFileType
    linkageType: ''
    returnType: void
    signature: void detect_msys_tty(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/compat/winansi.c:580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 581
    functionName: winansi_isatty
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 0
    functionsReached:
    - isatty
    linkageType: ''
    returnType: int
    signature: int winansi_isatty(int fd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_console
      Src: /src/git/compat/winansi.c:589,1
    - Dst: is_console
      Src: /src/git/compat/winansi.c:590,1
    - Dst: is_console
      Src: /src/git/compat/winansi.c:593,1
    - Dst: detect_msys_tty
      Src: /src/git/compat/winansi.c:598,1
    - Dst: detect_msys_tty
      Src: /src/git/compat/winansi.c:599,1
    - Dst: detect_msys_tty
      Src: /src/git/compat/winansi.c:600,1
    - Dst: swprintf
      Src: /src/git/compat/winansi.c:606,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/winansi.c:606,1
    - Dst: GetCurrentProcessId
      Src: /src/git/compat/winansi.c:607,1
    - Dst: die
      Src: /src/git/compat/winansi.c:608,1
    - Dst: CreateNamedPipeW
      Src: /src/git/compat/winansi.c:609,1
    - Dst: die_lasterr
      Src: /src/git/compat/winansi.c:612,1
    - Dst: CreateFileW
      Src: /src/git/compat/winansi.c:614,1
    - Dst: die_lasterr
      Src: /src/git/compat/winansi.c:616,1
    - Dst: CreateThread
      Src: /src/git/compat/winansi.c:619,1
    - Dst: die_lasterr
      Src: /src/git/compat/winansi.c:621,1
    - Dst: atexit
      Src: /src/git/compat/winansi.c:624,1
    - Dst: die_errno
      Src: /src/git/compat/winansi.c:625,1
    - Dst: swap_osfhnd
      Src: /src/git/compat/winansi.c:629,1
    - Dst: duplicate_handle
      Src: /src/git/compat/winansi.c:629,1
    - Dst: swap_osfhnd
      Src: /src/git/compat/winansi.c:631,1
    - Dst: duplicate_handle
      Src: /src/git/compat/winansi.c:631,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 583
    functionDepth: 5
    functionLinenumber: 583
    functionLinenumberEnd: 632
    functionName: winansi_init
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - swprintf
    - atexit
    - die
    - duplicate_handle
    - CreateFileW
    - CreateNamedPipeW
    - detect_msys_tty
    - die_errno
    - die_lasterr
    - swap_osfhnd
    - CreateThread
    - is_console
    - GetCurrentProcessId
    linkageType: ''
    returnType: void
    signature: void winansi_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/git/compat/winansi.c:647,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 656
    functionName: winansi_get_osfhandle
    functionSourceFile: /src/git/compat/winansi.c
    functionUses: 1
    functionsReached:
    - _get_osfhandle
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE winansi_get_osfhandle(int fd)
  - 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: S_ISLNK
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(x)
  - 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: S_ISSOCK
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSOCK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: WIFEXITED
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WIFEXITED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: WIFSIGNALED
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WIFSIGNALED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: WEXITSTATUS
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEXITSTATUS(x)
  - 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: WTERMSIG
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WTERMSIG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fildes
    - UNUSED
    argTypes:
    - int
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: fchmod
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fchmod(int fildes UNUSED, mode_t mode UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: fork
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: pid_t
    signature: pid_t fork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: alarm
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int alarm(unsigned int seconds UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _commit
      Src: /src/git/compat/mingw-posix.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: fsync
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 9
    functionsReached:
    - _commit
    linkageType: ''
    returnType: int
    signature: int fsync(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: sync
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sync(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: getuid
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uid_t
    signature: uid_t getuid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: getpwnam
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct passwd
    signature: struct passwd *getpwnam(const char *name UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - UNUSED
    - cmd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: fcntl
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fcntl(int fd UNUSED, int cmd, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: sigemptyset
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigemptyset(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - oldset
    argTypes:
    - int
    - sigset_t*
    - sigset_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: sigprocmask
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sigprocmask(int how UNUSED, const sigset_t *set UNUSED, sigset_t
      *oldset UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: getppid
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pid_t
    signature: pid_t getppid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/git/compat/mingw-posix.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: getpgid
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 1
    functionsReached:
    - getpid
    linkageType: ''
    returnType: pid_t
    signature: pid_t getpgid(pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/git/compat/mingw-posix.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: tcgetpgrp
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 1
    functionsReached:
    - getpid
    linkageType: ''
    returnType: pid_t
    signature: pid_t tcgetpgrp(int fd UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: unlink
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlink(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: unlink
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlink(path)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - resource
    - rlp
    argTypes:
    - int
    - struct rlimit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 334
    functionName: getrlimit
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getrlimit(int resource, struct rlimit *rlp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/git/compat/mingw-posix.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 402
    functionName: git_ntohl
    functionSourceFile: /src/git/compat/mingw-posix.h
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int git_ntohl(unsigned int x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/compat/setenv.c:9,1
    - Dst: getenv
      Src: /src/git/compat/setenv.c:15,1
    - Dst: strlen
      Src: /src/git/compat/setenv.c:19,1
    - Dst: strlen
      Src: /src/git/compat/setenv.c:20,1
    - Dst: malloc
      Src: /src/git/compat/setenv.c:21,1
    - Dst: st_add3
      Src: /src/git/compat/setenv.c:21,1
    - Dst: memcpy
      Src: /src/git/compat/setenv.c:27,1
    - Dst: memcpy
      Src: /src/git/compat/setenv.c:29,1
    - Dst: putenv
      Src: /src/git/compat/setenv.c:32,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - name
    - value
    - replace
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 40
    functionName: gitsetenv
    functionSourceFile: /src/git/compat/setenv.c
    functionUses: 0
    functionsReached:
    - malloc
    - strchr
    - memcpy
    - strlen
    - st_add3
    - getenv
    - putenv
    linkageType: ''
    returnType: int
    signature: int gitsetenv(const char *name, const char *value, int replace)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/unsetenv.c:11,1
    - Dst: strlen
      Src: /src/git/compat/unsetenv.c:15,1
    - Dst: strncmp
      Src: /src/git/compat/unsetenv.c:18,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 29
    functionName: gitunsetenv
    functionSourceFile: /src/git/compat/unsetenv.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int gitunsetenv(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/git/compat/strtoimax.c:6,1
    - Dst: strtoll
      Src: /src/git/compat/strtoimax.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nptr
    - endptr
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 10
    functionName: gitstrtoimax
    functionSourceFile: /src/git/compat/strtoimax.c
    functionUses: 0
    functionsReached:
    - strtol
    - strtoll
    linkageType: ''
    returnType: intmax_t
    signature: intmax_t gitstrtoimax (const char *nptr, char **endptr, int base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/compat/disk.h:17,1
    - Dst: GetDiskFreeSpaceExA
      Src: /src/git/compat/disk.h:18,1
    - Dst: error
      Src: /src/git/compat/disk.h:19,1
    - Dst: _
      Src: /src/git/compat/disk.h:19,1
    - Dst: strbuf_setlen
      Src: /src/git/compat/disk.h:25,1
    - Dst: offset_1st_component
      Src: /src/git/compat/disk.h:25,1
    - Dst: GetVolumeInformationA
      Src: /src/git/compat/disk.h:26,1
    - Dst: error
      Src: /src/git/compat/disk.h:29,1
    - Dst: _
      Src: /src/git/compat/disk.h:29,1
    - Dst: strbuf_addf
      Src: /src/git/compat/disk.h:33,1
    - Dst: strbuf_humanise_bytes
      Src: /src/git/compat/disk.h:34,1
    - Dst: strbuf_addch
      Src: /src/git/compat/disk.h:35,1
    - Dst: strbuf_realpath
      Src: /src/git/compat/disk.h:39,1
    - Dst: statvfs
      Src: /src/git/compat/disk.h:40,1
    - Dst: error_errno
      Src: /src/git/compat/disk.h:41,1
    - Dst: _
      Src: /src/git/compat/disk.h:41,1
    - Dst: strbuf_addf
      Src: /src/git/compat/disk.h:47,1
    - Dst: strbuf_humanise_bytes
      Src: /src/git/compat/disk.h:48,1
    - Dst: strbuf_addf
      Src: /src/git/compat/disk.h:49,1
    - Dst: strbuf_release
      Src: /src/git/compat/disk.h:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 7
    functionDepth: 7
    functionLinenumber: 7
    functionLinenumberEnd: 55
    functionName: get_disk_info
    functionSourceFile: /src/git/compat/disk.h
    functionUses: 1
    functionsReached:
    - error
    - error_errno
    - strbuf_release
    - statvfs
    - strbuf_realpath
    - strbuf_humanise_bytes
    - strbuf_setlen
    - strbuf_addf
    - strbuf_addch
    - GetDiskFreeSpaceExA
    - GetVolumeInformationA
    - offset_1st_component
    - _
    linkageType: ''
    returnType: int
    signature: int get_disk_info(struct strbuf *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - B
    - ','
    - P
    - ','
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: __BPTR_ALIGN
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __BPTR_ALIGN(B, P, A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - B
    - ','
    - P
    - ','
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: __PTR_ALIGN
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __PTR_ALIGN(B, P, A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: obstack_base
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_base(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: obstack_chunk_size
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_chunk_size(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: obstack_next_free
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_next_free(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: obstack_alignment_mask
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_alignment_mask(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: obstack_init
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_init(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: obstack_begin
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_begin(h, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - h
    - ','
    - size
    - ','
    - alignment
    - ','
    - chunkfun
    - ','
    - freefun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: obstack_specify_allocation
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_specify_allocation(h, size, alignment, chunkfun, freefun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - h
    - ','
    - size
    - ','
    - alignment
    - ','
    - chunkfun
    - ','
    - freefun
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: obstack_specify_allocation_with_arg
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun,
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - newchunkfun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: obstack_chunkfun
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_chunkfun(h, newchunkfun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - newfreefun
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: obstack_freefun
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_freefun(h, newfreefun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - achar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: obstack_1grow_fast
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_1grow_fast(h,achar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: obstack_blank_fast
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_blank_fast(h,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: obstack_memory_used
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_memory_used(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OBSTACK
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: obstack_object_size
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_object_size(OBSTACK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OBSTACK
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: obstack_room
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_room(OBSTACK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OBSTACK
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 285
    functionName: obstack_make_room
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_make_room(OBSTACK,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OBSTACK
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 293
    functionName: obstack_empty_p
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_empty_p(OBSTACK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OBSTACK
    - ','
    - where
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: obstack_grow
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_grow(OBSTACK,where,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OBSTACK
    - ','
    - where
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: obstack_grow0
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_grow0(OBSTACK,where,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OBSTACK
    - ','
    - datum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 322
    functionName: obstack_1grow
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_1grow(OBSTACK,datum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OBSTACK
    - ','
    - datum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: obstack_ptr_grow
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_ptr_grow(OBSTACK,datum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OBSTACK
    - ','
    - datum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: obstack_int_grow
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_int_grow(OBSTACK,datum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OBSTACK
    - ','
    - aptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 347
    functionName: obstack_ptr_grow_fast
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_ptr_grow_fast(OBSTACK,aptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OBSTACK
    - ','
    - aint
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: obstack_int_grow_fast
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_int_grow_fast(OBSTACK,aint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OBSTACK
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 363
    functionName: obstack_blank
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_blank(OBSTACK,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OBSTACK
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 369
    functionName: obstack_alloc
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_alloc(OBSTACK,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OBSTACK
    - ','
    - where
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 375
    functionName: obstack_copy
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_copy(OBSTACK,where,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OBSTACK
    - ','
    - where
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: obstack_copy0
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_copy0(OBSTACK,where,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OBSTACK
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 398
    functionName: obstack_finish
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_finish(OBSTACK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OBSTACK
    - ','
    - OBJ
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: obstack_free
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_free(OBSTACK, OBJ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: obstack_object_size
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_object_size(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: obstack_room
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_room(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: obstack_empty_p
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_empty_p(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: obstack_make_room
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_make_room(h,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h
    - ','
    - where
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: obstack_grow
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_grow(h,where,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h
    - ','
    - where
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 446
    functionName: obstack_grow0
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_grow0(h,where,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - datum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: obstack_1grow
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_1grow(h,datum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - datum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: obstack_ptr_grow
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_ptr_grow(h,datum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - datum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: obstack_int_grow
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_int_grow(h,datum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - aptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: obstack_ptr_grow_fast
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_ptr_grow_fast(h,aptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - aint
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 467
    functionName: obstack_int_grow_fast
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_int_grow_fast(h,aint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 473
    functionName: obstack_blank
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_blank(h,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: obstack_alloc
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_alloc(h,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h
    - ','
    - where
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: obstack_copy
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_copy(h,where,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h
    - ','
    - where
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 482
    functionName: obstack_copy0
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_copy0(h,where,length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 496
    functionName: obstack_finish
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_finish(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 504
    functionName: obstack_free
    functionSourceFile: /src/git/compat/obstack.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: obstack_free(h,obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restore_term
      Src: /src/git/compat/terminal.c:14,1
    - Dst: raise
      Src: /src/git/compat/terminal.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: restore_term_on_signal
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - raise
    - restore_term
    linkageType: ''
    returnType: void
    signature: void restore_term_on_signal(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_in_full
      Src: /src/git/compat/terminal.c:35,1
    - Dst: strlen
      Src: /src/git/compat/terminal.c:35,1
    - Dst: write_in_full
      Src: /src/git/compat/terminal.c:36,1
    - Dst: strlen
      Src: /src/git/compat/terminal.c:36,1
    - Dst: write_in_full
      Src: /src/git/compat/terminal.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: write_err
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - write_in_full
    - strlen
    linkageType: ''
    returnType: void
    signature: void write_err(const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_err
      Src: /src/git/compat/terminal.c:48,1
    - Dst: sigaction
      Src: /src/git/compat/terminal.c:49,1
    - Dst: raise
      Src: /src/git/compat/terminal.c:50,1
    - Dst: sigemptyset
      Src: /src/git/compat/terminal.c:51,1
    - Dst: sigaddset
      Src: /src/git/compat/terminal.c:52,1
    - Dst: sigprocmask
      Src: /src/git/compat/terminal.c:53,1
    - Dst: sigprocmask
      Src: /src/git/compat/terminal.c:55,1
    - Dst: sigaction
      Src: /src/git/compat/terminal.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: print_background_resume_msg
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - sigprocmask
    - raise
    - sigemptyset
    - sigaction
    - sigaddset
    - write_err
    linkageType: ''
    returnType: void
    signature: void print_background_resume_msg(int signo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tcgetattr
      Src: /src/git/compat/terminal.c:70,1
    - Dst: tcsetattr
      Src: /src/git/compat/terminal.c:73,1
    - Dst: write_err
      Src: /src/git/compat/terminal.c:74,1
    - Dst: sigaction
      Src: /src/git/compat/terminal.c:76,1
    - Dst: raise
      Src: /src/git/compat/terminal.c:77,1
    - Dst: sigemptyset
      Src: /src/git/compat/terminal.c:78,1
    - Dst: sigaddset
      Src: /src/git/compat/terminal.c:79,1
    - Dst: sigprocmask
      Src: /src/git/compat/terminal.c:80,1
    - Dst: sigprocmask
      Src: /src/git/compat/terminal.c:82,1
    - Dst: sigaction
      Src: /src/git/compat/terminal.c:83,1
    - Dst: write_err
      Src: /src/git/compat/terminal.c:85,1
    - Dst: sigemptyset
      Src: /src/git/compat/terminal.c:93,1
    - Dst: sigaddset
      Src: /src/git/compat/terminal.c:94,1
    - Dst: sigaction
      Src: /src/git/compat/terminal.c:98,1
    - Dst: sigprocmask
      Src: /src/git/compat/terminal.c:101,1
    - Dst: tcsetattr
      Src: /src/git/compat/terminal.c:102,1
    - Dst: sigprocmask
      Src: /src/git/compat/terminal.c:103,1
    - Dst: write_err
      Src: /src/git/compat/terminal.c:107,1
    - Dst: sigaction
      Src: /src/git/compat/terminal.c:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 111
    functionName: restore_terminal_on_suspend
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - sigprocmask
    - tcsetattr
    - raise
    - sigemptyset
    - tcgetattr
    - sigaction
    - sigaddset
    - write_err
    linkageType: ''
    returnType: void
    signature: void restore_terminal_on_suspend(int signo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/git/compat/terminal.c:116,1
    - Dst: signal
      Src: /src/git/compat/terminal.c:117,1
    - Dst: signal
      Src: /src/git/compat/terminal.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: reset_job_signals
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - signal
    linkageType: ''
    returnType: void
    signature: void reset_job_signals(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/compat/terminal.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: close_term_fd
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close_term_fd(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcsetattr
      Src: /src/git/compat/terminal.c:137,1
    - Dst: close_term_fd
      Src: /src/git/compat/terminal.c:138,1
    - Dst: sigchain_pop_common
      Src: /src/git/compat/terminal.c:139,1
    - Dst: reset_job_signals
      Src: /src/git/compat/terminal.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: restore_term
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 1
    functionsReached:
    - close_term_fd
    - reset_job_signals
    - sigchain_pop_common
    - tcsetattr
    linkageType: ''
    returnType: void
    signature: void restore_term(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/compat/terminal.c:150,1
    - Dst: tcgetattr
      Src: /src/git/compat/terminal.c:154,1
    - Dst: close_term_fd
      Src: /src/git/compat/terminal.c:155,1
    - Dst: sigchain_push_common
      Src: /src/git/compat/terminal.c:158,1
    - Dst: sigaction
      Src: /src/git/compat/terminal.c:163,1
    - Dst: _
      Src: /src/git/compat/terminal.c:168,1
    - Dst: _
      Src: /src/git/compat/terminal.c:169,1
    - Dst: sigemptyset
      Src: /src/git/compat/terminal.c:172,1
    - Dst: sigaddset
      Src: /src/git/compat/terminal.c:173,1
    - Dst: sigaddset
      Src: /src/git/compat/terminal.c:174,1
    - Dst: sigaddset
      Src: /src/git/compat/terminal.c:175,1
    - Dst: sigaction
      Src: /src/git/compat/terminal.c:176,1
    - Dst: sigaction
      Src: /src/git/compat/terminal.c:177,1
    - Dst: sigaction
      Src: /src/git/compat/terminal.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum save_term_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 181
    functionName: save_term
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - close_term_fd
    - sigchain_push_common
    - open
    - sigemptyset
    - tcgetattr
    - sigaction
    - sigaddset
    - _
    linkageType: ''
    returnType: int
    signature: int save_term(enum save_term_flags flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: save_term
      Src: /src/git/compat/terminal.c:187,1
    - Dst: tcsetattr
      Src: /src/git/compat/terminal.c:197,1
    - Dst: sigchain_pop_common
      Src: /src/git/compat/terminal.c:200,1
    - Dst: reset_job_signals
      Src: /src/git/compat/terminal.c:201,1
    - Dst: close_term_fd
      Src: /src/git/compat/terminal.c:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - flags
    - bits
    argTypes:
    - enum save_term_flags
    - tcflag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 183
    functionDepth: 5
    functionLinenumber: 183
    functionLinenumberEnd: 204
    functionName: disable_bits
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - close_term_fd
    - tcsetattr
    - save_term
    - sigchain_pop_common
    - reset_job_signals
    linkageType: ''
    returnType: int
    signature: int disable_bits(enum save_term_flags flags, tcflag_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disable_bits
      Src: /src/git/compat/terminal.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum save_term_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 6
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: disable_echo
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - disable_bits
    linkageType: ''
    returnType: int
    signature: int disable_echo(enum save_term_flags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disable_bits
      Src: /src/git/compat/terminal.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum save_term_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: enable_non_canonical
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - disable_bits
    linkageType: ''
    returnType: int
    signature: int enable_non_canonical(enum save_term_flags flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/git/compat/terminal.c:233,1
    - Dst: FD_SET
      Src: /src/git/compat/terminal.c:234,1
    - Dst: select
      Src: /src/git/compat/terminal.c:235,1
    - Dst: getchar
      Src: /src/git/compat/terminal.c:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 245
    functionName: getchar_with_timeout
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - FD_SET
    - select
    - getchar
    - FD_ZERO
    linkageType: ''
    returnType: int
    signature: int getchar_with_timeout(int timeout)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/compat/terminal.c:267,1
    - Dst: strvec_push
      Src: /src/git/compat/terminal.c:269,1
    - Dst: run_command
      Src: /src/git/compat/terminal.c:270,1
    - Dst: string_list_clear
      Src: /src/git/compat/terminal.c:271,1
    - Dst: sigchain_pop_common
      Src: /src/git/compat/terminal.c:275,1
    - Dst: SetConsoleMode
      Src: /src/git/compat/terminal.c:280,1
    - Dst: CloseHandle
      Src: /src/git/compat/terminal.c:281,1
    - Dst: assert
      Src: /src/git/compat/terminal.c:283,1
    - Dst: SetConsoleMode
      Src: /src/git/compat/terminal.c:284,1
    - Dst: CloseHandle
      Src: /src/git/compat/terminal.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (hconout != INVALID_HANDLE_VALUE)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/git/compat/terminal.c
    constantsTouched: []
    func_position:
      end: 289
      start: 259
    functionDepth: 8
    functionLinenumber: 259
    functionLinenumberEnd: 289
    functionName: restore_term
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - string_list_clear
    - assert
    - run_command
    - SetConsoleMode
    - sigchain_pop_common
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void restore_term(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileA
      Src: /src/git/compat/terminal.c:293,1
    - Dst: CreateFileA
      Src: /src/git/compat/terminal.c:300,1
    - Dst: GetConsoleMode
      Src: /src/git/compat/terminal.c:306,1
    - Dst: GetConsoleMode
      Src: /src/git/compat/terminal.c:309,1
    - Dst: sigchain_push_common
      Src: /src/git/compat/terminal.c:311,1
    - Dst: CloseHandle
      Src: /src/git/compat/terminal.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum save_term_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 317
    functionName: save_term
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 1
    functionsReached:
    - GetConsoleMode
    - sigchain_push_common
    - CloseHandle
    - CreateFileA
    linkageType: ''
    returnType: int
    signature: int save_term(enum save_term_flags flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/compat/terminal.c:324,1
    - Dst: string_list_append
      Src: /src/git/compat/terminal.c:327,1
    - Dst: strvec_pushl
      Src: /src/git/compat/terminal.c:332,1
    - Dst: string_list_append
      Src: /src/git/compat/terminal.c:336,1
    - Dst: strvec_push
      Src: /src/git/compat/terminal.c:337,1
    - Dst: string_list_append
      Src: /src/git/compat/terminal.c:341,1
    - Dst: string_list_append
      Src: /src/git/compat/terminal.c:342,1
    - Dst: string_list_append
      Src: /src/git/compat/terminal.c:343,1
    - Dst: strvec_push
      Src: /src/git/compat/terminal.c:344,1
    - Dst: strvec_push
      Src: /src/git/compat/terminal.c:345,1
    - Dst: strvec_push
      Src: /src/git/compat/terminal.c:346,1
    - Dst: run_command
      Src: /src/git/compat/terminal.c:349,1
    - Dst: save_term
      Src: /src/git/compat/terminal.c:356,1
    - Dst: SetConsoleMode
      Src: /src/git/compat/terminal.c:359,1
    - Dst: CloseHandle
      Src: /src/git/compat/terminal.c:360,1
    - Dst: sigchain_pop_common
      Src: /src/git/compat/terminal.c:362,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - flags
    - bits
    argTypes:
    - enum save_term_flags
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 319
    functionDepth: 8
    functionLinenumber: 319
    functionLinenumberEnd: 367
    functionName: disable_bits
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 2
    functionsReached:
    - strvec_push
    - run_command
    - strvec_pushl
    - save_term
    - SetConsoleMode
    - sigchain_pop_common
    - CloseHandle
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int disable_bits(enum save_term_flags flags, DWORD bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disable_bits
      Src: /src/git/compat/terminal.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum save_term_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 6
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: disable_echo
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - disable_bits
    linkageType: ''
    returnType: int
    signature: int disable_echo(enum save_term_flags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disable_bits
      Src: /src/git/compat/terminal.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum save_term_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 6
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: enable_non_canonical
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - disable_bits
    linkageType: ''
    returnType: int
    signature: int enable_non_canonical(enum save_term_flags flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/git/compat/terminal.c:399,1
    - Dst: GetStdHandle
      Src: /src/git/compat/terminal.c:399,1
    - Dst: error
      Src: /src/git/compat/terminal.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 408
    functionName: mingw_getchar
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - error
    - ReadFile
    - GetStdHandle
    linkageType: ''
    returnType: int
    signature: int mingw_getchar(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/git/compat/terminal.c:415,1
    - Dst: getchar
      Src: /src/git/compat/terminal.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 419
    functionName: getchar_with_timeout
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - getchar
    - poll
    linkageType: ''
    returnType: int
    signature: int getchar_with_timeout(int timeout)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/compat/terminal.c:433,1
    - Dst: fopen
      Src: /src/git/compat/terminal.c:437,1
    - Dst: fclose
      Src: /src/git/compat/terminal.c:439,1
    - Dst: disable_echo
      Src: /src/git/compat/terminal.c:443,1
    - Dst: fclose
      Src: /src/git/compat/terminal.c:444,1
    - Dst: fclose
      Src: /src/git/compat/terminal.c:445,1
    - Dst: fputs
      Src: /src/git/compat/terminal.c:449,1
    - Dst: fflush
      Src: /src/git/compat/terminal.c:450,1
    - Dst: strbuf_getline_lf
      Src: /src/git/compat/terminal.c:452,1
    - Dst: putc
      Src: /src/git/compat/terminal.c:454,1
    - Dst: fflush
      Src: /src/git/compat/terminal.c:455,1
    - Dst: restore_term
      Src: /src/git/compat/terminal.c:458,1
    - Dst: fclose
      Src: /src/git/compat/terminal.c:459,1
    - Dst: fclose
      Src: /src/git/compat/terminal.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - prompt
    - echo
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 427
    functionDepth: 7
    functionLinenumber: 427
    functionLinenumberEnd: 465
    functionName: git_terminal_prompt
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 1
    functionsReached:
    - fclose
    - putc
    - fputs
    - strbuf_getline_lf
    - restore_term
    - fopen
    - fflush
    - disable_echo
    linkageType: ''
    returnType: char
    signature: char *git_terminal_prompt(const char *prompt, int echo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/compat/terminal.c:486,1
    - Dst: container_of
      Src: /src/git/compat/terminal.c:487,1
    - Dst: strcmp
      Src: /src/git/compat/terminal.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hashmap_cmp_fn_data
    - he1
    - he2
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 489
    functionName: sequence_entry_cmp
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sequence_entry_cmp(const void *hashmap_cmp_fn_data UNUSED,\n\t\t\t
      \     const struct hashmap_entry *he1,\n\t\t\t      const struct hashmap_entry
      *he2,\n\t\t\t      const void *keydata)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/compat/terminal.c:501,1
    - Dst: strvec_pushl
      Src: /src/git/compat/terminal.c:503,1
    - Dst: pipe_command
      Src: /src/git/compat/terminal.c:504,1
    - Dst: strbuf_setlen
      Src: /src/git/compat/terminal.c:505,1
    - Dst: strchr
      Src: /src/git/compat/terminal.c:508,1
    - Dst: strchrnul
      Src: /src/git/compat/terminal.c:512,1
    - Dst: starts_with
      Src: /src/git/compat/terminal.c:514,1
    - Dst: memchr
      Src: /src/git/compat/terminal.c:515,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/compat/terminal.c:520,1
    - Dst: hashmap_entry_init
      Src: /src/git/compat/terminal.c:521,1
    - Dst: strhash
      Src: /src/git/compat/terminal.c:522,1
    - Dst: hashmap_add
      Src: /src/git/compat/terminal.c:523,1
    - Dst: hashmap_get_from_hash
      Src: /src/git/compat/terminal.c:531,1
    - Dst: strhash
      Src: /src/git/compat/terminal.c:531,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - sequence
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 491
    functionDepth: 8
    functionLinenumber: 491
    functionLinenumberEnd: 532
    functionName: is_known_escape_sequence
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 0
    functionsReached:
    - strhash
    - memchr
    - hashmap_add
    - hashmap_init
    - strvec_pushl
    - strbuf_setlen
    - hashmap_entry_init
    - strchr
    - starts_with
    - pipe_command
    - FLEX_ALLOC_MEM
    - strchrnul
    - hashmap_get_from_hash
    linkageType: ''
    returnType: int
    signature: int is_known_escape_sequence(const char *sequence)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: enable_non_canonical
      Src: /src/git/compat/terminal.c:539,1
    - Dst: warning
      Src: /src/git/compat/terminal.c:541,1
    - Dst: strbuf_getline
      Src: /src/git/compat/terminal.c:546,1
    - Dst: strbuf_reset
      Src: /src/git/compat/terminal.c:549,1
    - Dst: getchar
      Src: /src/git/compat/terminal.c:550,1
    - Dst: restore_term
      Src: /src/git/compat/terminal.c:552,1
    - Dst: strbuf_addch
      Src: /src/git/compat/terminal.c:555,1
    - Dst: strbuf_splice
      Src: /src/git/compat/terminal.c:565,1
    - Dst: is_known_escape_sequence
      Src: /src/git/compat/terminal.c:572,1
    - Dst: getchar_with_timeout
      Src: /src/git/compat/terminal.c:573,1
    - Dst: strbuf_addch
      Src: /src/git/compat/terminal.c:576,1
    - Dst: restore_term
      Src: /src/git/compat/terminal.c:580,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 534
    functionDepth: 9
    functionLinenumber: 534
    functionLinenumberEnd: 582
    functionName: read_key_without_echo
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 1
    functionsReached:
    - enable_non_canonical
    - restore_term
    - getchar_with_timeout
    - strbuf_reset
    - is_known_escape_sequence
    - strbuf_addch
    - strbuf_splice
    - getchar
    - strbuf_getline
    - warning
    linkageType: ''
    returnType: int
    signature: int read_key_without_echo(struct strbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum save_term_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: save_term
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int save_term(enum save_term_flags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 594
    functionName: restore_term
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void restore_term(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpass
      Src: /src/git/compat/terminal.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prompt
    - UNUSED
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 599
    functionName: git_terminal_prompt
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 1
    functionsReached:
    - getpass
    linkageType: ''
    returnType: char
    signature: char *git_terminal_prompt(const char *prompt, int echo UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/compat/terminal.c:607,1
    - Dst: getpass
      Src: /src/git/compat/terminal.c:612,1
    - Dst: strbuf_reset
      Src: /src/git/compat/terminal.c:613,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/terminal.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 618
    functionName: read_key_without_echo
    functionSourceFile: /src/git/compat/terminal.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - warning
    - strbuf_addstr
    - getpass
    linkageType: ''
    returnType: int
    signature: int read_key_without_echo(struct strbuf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - attr
    - tag
    argTypes:
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 21
    functionName: file_attr_to_st_mode
    functionSourceFile: /src/git/compat/win32.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_attr_to_st_mode (DWORD attr, DWORD tag)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesExA
      Src: /src/git/compat/win32.h:25,1
    - Dst: GetLastError
      Src: /src/git/compat/win32.h:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - fname
    - fdata
    argTypes:
    - char*
    - WIN32_FILE_ATTRIBUTE_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: get_file_attr
    functionSourceFile: /src/git/compat/win32.h
    functionUses: 0
    functionsReached:
    - GetLastError
    - GetFileAttributesExA
    linkageType: ''
    returnType: int
    signature: int get_file_attr(const char *fname, WIN32_FILE_ATTRIBUTE_DATA *fdata)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/compat/stat.c:8,1
    - Dst: S_ISDIR
      Src: /src/git/compat/stat.c:10,1
    - Dst: S_ISLNK
      Src: /src/git/compat/stat.c:12,1
    - Dst: S_ISBLK
      Src: /src/git/compat/stat.c:14,1
    - Dst: S_ISCHR
      Src: /src/git/compat/stat.c:16,1
    - Dst: S_ISFIFO
      Src: /src/git/compat/stat.c:18,1
    - Dst: S_ISSOCK
      Src: /src/git/compat/stat.c:20,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - native_mode
    argTypes:
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 24
    functionName: mode_native_to_git
    functionSourceFile: /src/git/compat/stat.c
    functionUses: 0
    functionsReached:
    - S_ISFIFO
    - S_ISSOCK
    - S_ISDIR
    - S_ISBLK
    - S_ISLNK
    - S_ISCHR
    - S_ISREG
    linkageType: ''
    returnType: mode_t
    signature: mode_t mode_native_to_git(mode_t native_mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/compat/stat.c:28,1
    - Dst: mode_native_to_git
      Src: /src/git/compat/stat.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - path
    - buf
    argTypes:
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: git_stat
    functionSourceFile: /src/git/compat/stat.c
    functionUses: 0
    functionsReached:
    - mode_native_to_git
    - stat
    linkageType: ''
    returnType: int
    signature: int git_stat(const char *path, struct stat *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/git/compat/stat.c:36,1
    - Dst: mode_native_to_git
      Src: /src/git/compat/stat.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - buf
    argTypes:
    - int
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: git_fstat
    functionSourceFile: /src/git/compat/stat.c
    functionUses: 0
    functionsReached:
    - fstat
    - mode_native_to_git
    linkageType: ''
    returnType: int
    signature: int git_fstat(int fd, struct stat *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/compat/stat.c:44,1
    - Dst: mode_native_to_git
      Src: /src/git/compat/stat.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - path
    - buf
    argTypes:
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: git_lstat
    functionSourceFile: /src/git/compat/stat.c
    functionUses: 0
    functionsReached:
    - mode_native_to_git
    - lstat
    linkageType: ''
    returnType: int
    signature: int git_lstat(const char *path, struct stat *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: default_swab32
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t default_swab32(uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: default_bswap64
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t default_bswap64(uint64_t val)
  - 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: __has_builtin
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_builtin(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: bswap32
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: bswap64
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: bswap32
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap32(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: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: bswap64
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: ntohl
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: htonl
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htonl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: ntohll
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohll(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: htonll
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htonll(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: ntohl
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: htonl
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htonl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: ntohl
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: htonl
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htonl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: ntohll
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohll(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: htonll
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htonll(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: ntohll
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohll(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: htonll
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htonll(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: get_be16
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_be16(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: get_be32
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_be32(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_be32
      Src: /src/git/compat/bswap.h:149,1
    - Dst: get_be32
      Src: /src/git/compat/bswap.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: get_be64
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 13
    functionsReached:
    - get_be32
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_be64(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: put_be32
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_be32(void *ptr, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 173
    functionName: put_be64
    functionSourceFile: /src/git/compat/bswap.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_be64(void *ptr, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: EVP_md5
    functionSourceFile: /src/git/compat/apple-common-crypto.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_md5(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CCHmac
      Src: /src/git/compat/apple-common-crypto.h:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - alg
    - key
    - key_len
    - data
    - data_len
    - md
    - md_len
    argTypes:
    - CCHmacAlgorithm
    - void*
    - int
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 16
    functionName: git_CC_HMAC
    functionSourceFile: /src/git/compat/apple-common-crypto.h
    functionUses: 0
    functionsReached:
    - CCHmac
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *git_CC_HMAC(CCHmacAlgorithm alg,\n\t\tconst void *key,
      int key_len,\n\t\tconst unsigned char *data, size_t data_len,\n\t\tunsigned
      char *md, unsigned int *md_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pattern
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: git_CC_error_check
    functionSourceFile: /src/git/compat/apple-common-crypto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: git_CC_error_check(pattern, err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SecEncodeTransformCreate
      Src: /src/git/compat/apple-common-crypto.h:46,1
    - Dst: git_CC_error_check
      Src: /src/git/compat/apple-common-crypto.h:47,1
    - Dst: CFDataCreate
      Src: /src/git/compat/apple-common-crypto.h:49,1
    - Dst: SecTransformSetAttribute
      Src: /src/git/compat/apple-common-crypto.h:50,1
    - Dst: git_CC_error_check
      Src: /src/git/compat/apple-common-crypto.h:52,1
    - Dst: SecTransformExecute
      Src: /src/git/compat/apple-common-crypto.h:54,1
    - Dst: git_CC_error_check
      Src: /src/git/compat/apple-common-crypto.h:55,1
    - Dst: CFDataGetLength
      Src: /src/git/compat/apple-common-crypto.h:57,1
    - Dst: CFDataGetBytes
      Src: /src/git/compat/apple-common-crypto.h:58,1
    - Dst: CFRangeMake
      Src: /src/git/compat/apple-common-crypto.h:58,1
    - Dst: CFRelease
      Src: /src/git/compat/apple-common-crypto.h:60,1
    - Dst: CFRelease
      Src: /src/git/compat/apple-common-crypto.h:61,1
    - Dst: CFRelease
      Src: /src/git/compat/apple-common-crypto.h:62,1
    - Dst: strlen
      Src: /src/git/compat/apple-common-crypto.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 65
    functionName: git_CC_EVP_EncodeBlock
    functionSourceFile: /src/git/compat/apple-common-crypto.h
    functionUses: 0
    functionsReached:
    - CFDataGetLength
    - CFDataCreate
    - CFRangeMake
    - SecEncodeTransformCreate
    - git_CC_error_check
    - CFDataGetBytes
    - SecTransformExecute
    - CFRelease
    - strlen
    - SecTransformSetAttribute
    linkageType: ''
    returnType: int
    signature: "int git_CC_EVP_EncodeBlock(unsigned char *out,\n\t\tconst unsigned
      char *in, int inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SecDecodeTransformCreate
      Src: /src/git/compat/apple-common-crypto.h:76,1
    - Dst: git_CC_error_check
      Src: /src/git/compat/apple-common-crypto.h:77,1
    - Dst: CFDataCreate
      Src: /src/git/compat/apple-common-crypto.h:79,1
    - Dst: SecTransformSetAttribute
      Src: /src/git/compat/apple-common-crypto.h:80,1
    - Dst: git_CC_error_check
      Src: /src/git/compat/apple-common-crypto.h:82,1
    - Dst: SecTransformExecute
      Src: /src/git/compat/apple-common-crypto.h:84,1
    - Dst: git_CC_error_check
      Src: /src/git/compat/apple-common-crypto.h:85,1
    - Dst: CFDataGetLength
      Src: /src/git/compat/apple-common-crypto.h:87,1
    - Dst: CFDataGetBytes
      Src: /src/git/compat/apple-common-crypto.h:88,1
    - Dst: CFRangeMake
      Src: /src/git/compat/apple-common-crypto.h:88,1
    - Dst: CFRelease
      Src: /src/git/compat/apple-common-crypto.h:90,1
    - Dst: CFRelease
      Src: /src/git/compat/apple-common-crypto.h:91,1
    - Dst: CFRelease
      Src: /src/git/compat/apple-common-crypto.h:92,1
    - Dst: strlen
      Src: /src/git/compat/apple-common-crypto.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 95
    functionName: git_CC_EVP_DecodeBlock
    functionSourceFile: /src/git/compat/apple-common-crypto.h
    functionUses: 0
    functionsReached:
    - CFDataGetLength
    - CFDataCreate
    - CFRangeMake
    - git_CC_error_check
    - CFDataGetBytes
    - SecTransformExecute
    - CFRelease
    - strlen
    - SecDecodeTransformCreate
    - SecTransformSetAttribute
    linkageType: ''
    returnType: int
    signature: "int git_CC_EVP_DecodeBlock(unsigned char *out,\n\t\tconst unsigned
      char *in, int inlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/compat/memmem.c:27,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - haystack
    - haystack_len
    - needle
    - needle_len
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 32
    functionName: gitmemmem
    functionSourceFile: /src/git/compat/memmem.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void *gitmemmem(const void *haystack, size_t haystack_len,\n                const
      void *needle, size_t needle_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/git/compat/inet_ntop.c:53,1
    - Dst: strlcpy
      Src: /src/git/compat/inet_ntop.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - src
    - dst
    - size
    argTypes:
    - u_char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: inet_ntop4
    functionSourceFile: /src/git/compat/inet_ntop.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      inet_ntop4(const u_char *src, char *dst, size_t size)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/compat/inet_ntop.c:91,1
    - Dst: inet_ntop4
      Src: /src/git/compat/inet_ntop.c:137,1
    - Dst: strlen
      Src: /src/git/compat/inet_ntop.c:139,1
    - Dst: snprintf
      Src: /src/git/compat/inet_ntop.c:142,1
    - Dst: strlcpy
      Src: /src/git/compat/inet_ntop.c:157,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 53
    argCount: 3
    argNames:
    - src
    - dst
    - size
    argTypes:
    - u_char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 159
    functionName: inet_ntop6
    functionSourceFile: /src/git/compat/inet_ntop.c
    functionUses: 0
    functionsReached:
    - memset
    - snprintf
    - strlen
    - inet_ntop4
    - strlcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      inet_ntop6(const u_char *src, char *dst, size_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop4
      Src: /src/git/compat/inet_ntop.c:175,1
    - Dst: inet_ntop6
      Src: /src/git/compat/inet_ntop.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - af
    - src
    - dst
    - size
    argTypes:
    - int
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: inet_ntop
    functionSourceFile: /src/git/compat/inet_ntop.c
    functionUses: 3
    functionsReached:
    - inet_ntop4
    - inet_ntop6
    linkageType: ''
    returnType: char
    signature: 'char *

      inet_ntop(int af, const void *src, char *dst, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/strdup.c:5,1
    - Dst: malloc
      Src: /src/git/compat/strdup.c:6,1
    - Dst: memcpy
      Src: /src/git/compat/strdup.c:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s1
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 11
    functionName: gitstrdup
    functionSourceFile: /src/git/compat/strdup.c
    functionUses: 0
    functionsReached:
    - malloc
    - strlen
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *gitstrdup(const char *s1)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - s
    - maxlen
    - strlen_c
    argTypes:
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: has_non_ascii
    functionSourceFile: /src/git/compat/precompose_utf8.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t has_non_ascii(const char *s, size_t maxlen, size_t *strlen_c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path_replace
      Src: /src/git/compat/precompose_utf8.c:53,1
    - Dst: open
      Src: /src/git/compat/precompose_utf8.c:54,1
    - Dst: close
      Src: /src/git/compat/precompose_utf8.c:56,1
    - Dst: repo_git_path_replace
      Src: /src/git/compat/precompose_utf8.c:57,1
    - Dst: access
      Src: /src/git/compat/precompose_utf8.c:58,1
    - Dst: repo_config_set
      Src: /src/git/compat/precompose_utf8.c:59,1
    - Dst: repo_git_path_replace
      Src: /src/git/compat/precompose_utf8.c:61,1
    - Dst: unlink
      Src: /src/git/compat/precompose_utf8.c:62,1
    - Dst: die_errno
      Src: /src/git/compat/precompose_utf8.c:63,1
    - Dst: _
      Src: /src/git/compat/precompose_utf8.c:63,1
    - Dst: strbuf_release
      Src: /src/git/compat/precompose_utf8.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 8
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: probe_utf8_pathname_composition
    functionSourceFile: /src/git/compat/precompose_utf8.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - open
    - access
    - repo_config_set
    - die_errno
    - _
    - close
    - repo_git_path_replace
    - unlink
    linkageType: ''
    returnType: void
    signature: void probe_utf8_pathname_composition(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: has_non_ascii
      Src: /src/git/compat/precompose_utf8.c:74,1
    - Dst: repo_config_get_bool
      Src: /src/git/compat/precompose_utf8.c:78,1
    - Dst: iconv_open
      Src: /src/git/compat/precompose_utf8.c:81,1
    - Dst: reencode_string_iconv
      Src: /src/git/compat/precompose_utf8.c:85,1
    - Dst: memcmp
      Src: /src/git/compat/precompose_utf8.c:87,1
    - Dst: free
      Src: /src/git/compat/precompose_utf8.c:88,1
    - Dst: iconv_close
      Src: /src/git/compat/precompose_utf8.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 68
    functionDepth: 19
    functionLinenumber: 68
    functionLinenumberEnd: 96
    functionName: precompose_string_if_needed
    functionSourceFile: /src/git/compat/precompose_utf8.c
    functionUses: 3
    functionsReached:
    - has_non_ascii
    - iconv_open
    - repo_config_get_bool
    - iconv_close
    - free
    - reencode_string_iconv
    - memcmp
    linkageType: ''
    returnType: char
    signature: char *precompose_string_if_needed(const char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: precompose_string_if_needed
      Src: /src/git/compat/precompose_utf8.c:103,1
    - Dst: precompose_string_if_needed
      Src: /src/git/compat/precompose_utf8.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - argc
    - argv
    - prefix
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: precompose_argv_prefix
    functionSourceFile: /src/git/compat/precompose_utf8.c
    functionUses: 2
    functionsReached:
    - precompose_string_if_needed
    linkageType: ''
    returnType: char
    signature: char *precompose_argv_prefix(int argc, const char **argv, const char
      *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/compat/precompose_utf8.c:112,1
    - Dst: xmalloc
      Src: /src/git/compat/precompose_utf8.c:113,1
    - Dst: opendir
      Src: /src/git/compat/precompose_utf8.c:116,1
    - Dst: free
      Src: /src/git/compat/precompose_utf8.c:118,1
    - Dst: free
      Src: /src/git/compat/precompose_utf8.c:119,1
    - Dst: iconv_open
      Src: /src/git/compat/precompose_utf8.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: precompose_utf8_opendir
    functionSourceFile: /src/git/compat/precompose_utf8.c
    functionUses: 0
    functionsReached:
    - opendir
    - xmalloc
    - iconv_open
    - free
    linkageType: ''
    returnType: PREC_DIR
    signature: PREC_DIR *precompose_utf8_opendir(const char *dirname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: readdir
      Src: /src/git/compat/precompose_utf8.c:134,1
    - Dst: strlen
      Src: /src/git/compat/precompose_utf8.c:136,1
    - Dst: xrealloc
      Src: /src/git/compat/precompose_utf8.c:145,1
    - Dst: has_non_ascii
      Src: /src/git/compat/precompose_utf8.c:152,1
    - Dst: die
      Src: /src/git/compat/precompose_utf8.c:154,1
    - Dst: iconv
      Src: /src/git/compat/precompose_utf8.c:165,1
    - Dst: strlcpy
      Src: /src/git/compat/precompose_utf8.c:180,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - prec_dir
    argTypes:
    - PREC_DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 131
    functionDepth: 7
    functionLinenumber: 131
    functionLinenumberEnd: 187
    functionName: precompose_utf8_readdir
    functionSourceFile: /src/git/compat/precompose_utf8.c
    functionUses: 0
    functionsReached:
    - has_non_ascii
    - iconv
    - die
    - xrealloc
    - strlen
    - readdir
    - strlcpy
    linkageType: ''
    returnType: struct dirent_prec_psx
    signature: struct dirent_prec_psx *precompose_utf8_readdir(PREC_DIR *prec_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/git/compat/precompose_utf8.c:194,1
    - Dst: iconv_close
      Src: /src/git/compat/precompose_utf8.c:197,1
    - Dst: free
      Src: /src/git/compat/precompose_utf8.c:198,1
    - Dst: free
      Src: /src/git/compat/precompose_utf8.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - prec_dir
    argTypes:
    - PREC_DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 202
    functionName: precompose_utf8_closedir
    functionSourceFile: /src/git/compat/precompose_utf8.c
    functionUses: 0
    functionsReached:
    - closedir
    - iconv_close
    - free
    linkageType: ''
    returnType: int
    signature: int precompose_utf8_closedir(PREC_DIR *prec_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reason
    argTypes:
    - enum trace2_process_info_reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 11
    functionName: trace2_collect_process_info
    functionSourceFile: /src/git/compat/stub/procinfo.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void trace2_collect_process_info(enum trace2_process_info_reason reason
      UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: return_0
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int return_0(int i UNUSED)
  - 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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: pthread_mutex_init
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_mutex_init(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: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: pthread_mutex_destroy
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_mutex_destroy(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: pthread_mutexattr_init
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_mutexattr_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: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: pthread_mutexattr_destroy
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_mutexattr_destroy(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: pthread_mutexattr_settype
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_mutexattr_settype(a, t)
  - 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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: pthread_cond_init
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_cond_init(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: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: pthread_cond_destroy
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_cond_destroy(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: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: pthread_join
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_join(a, b)
  - 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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: pthread_equal
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_equal(t1, t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _endthreadex
      Src: /src/git/compat/win32/pthread.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ret
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: pthread_exit
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 2
    functionsReached:
    - _endthreadex
    linkageType: ''
    returnType: void
    signature: void pthread_exit(void *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsAlloc
      Src: /src/git/compat/win32/pthread.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyp
    argTypes:
    - pthread_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: pthread_key_create
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 1
    functionsReached:
    - TlsAlloc
    linkageType: ''
    returnType: int
    signature: int pthread_key_create(pthread_key_t *keyp, void (*destructor)(void
      *value) UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsFree
      Src: /src/git/compat/win32/pthread.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - pthread_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: pthread_key_delete
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 0
    functionsReached:
    - TlsFree
    linkageType: ''
    returnType: int
    signature: int pthread_key_delete(pthread_key_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsSetValue
      Src: /src/git/compat/win32/pthread.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - pthread_key_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: pthread_setspecific
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 2
    functionsReached:
    - TlsSetValue
    linkageType: ''
    returnType: int
    signature: int pthread_setspecific(pthread_key_t key, const void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsGetValue
      Src: /src/git/compat/win32/pthread.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - pthread_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: pthread_getspecific
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 2
    functionsReached:
    - TlsGetValue
    linkageType: ''
    returnType: void
    signature: void *pthread_getspecific(pthread_key_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - how
    - set
    - oset
    argTypes:
    - int
    - sigset_t*
    - sigset_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: pthread_sigmask
    functionSourceFile: /src/git/compat/win32/pthread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_sigmask(int how, const sigset_t *set, sigset_t *oset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/git/compat/win32/pthread.c:19,1
    - Dst: pthread_t*::start_routine
      Src: /src/git/compat/win32/pthread.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: win32_start_routine
    functionSourceFile: /src/git/compat/win32/pthread.c
    functionUses: 0
    functionsReached:
    - pthread_t*::start_routine
    - GetCurrentThreadId
    linkageType: ''
    returnType: unsigned
    signature: unsigned win32_start_routine(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _beginthreadex
      Src: /src/git/compat/win32/pthread.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - thread
    - UNUSED
    - (*start_routine)(void *)
    - arg
    argTypes:
    - pthread_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: pthread_create
    functionSourceFile: /src/git/compat/win32/pthread.c
    functionUses: 10
    functionsReached:
    - _beginthreadex
    linkageType: ''
    returnType: int
    signature: "int pthread_create(pthread_t *thread, const void *attr UNUSED,\n\t\t
      \  void *(*start_routine)(void *), void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/git/compat/win32/pthread.c:40,1
    - Dst: CloseHandle
      Src: /src/git/compat/win32/pthread.c:45,1
    - Dst: CloseHandle
      Src: /src/git/compat/win32/pthread.c:48,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/win32/pthread.c:52,1
    - Dst: GetLastError
      Src: /src/git/compat/win32/pthread.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - thread
    - value_ptr
    argTypes:
    - pthread_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: win32_pthread_join
    functionSourceFile: /src/git/compat/win32/pthread.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - err_win_to_posix
    - CloseHandle
    - WaitForSingleObject
    linkageType: ''
    returnType: int
    signature: int win32_pthread_join(pthread_t *thread, void **value_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/git/compat/win32/pthread.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: pthread_self
    functionSourceFile: /src/git/compat/win32/pthread.c
    functionUses: 2
    functionsReached:
    - GetCurrentThreadId
    linkageType: ''
    returnType: pthread_t
    signature: pthread_t pthread_self(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SleepConditionVariableCS
      Src: /src/git/compat/win32/pthread.c:65,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/win32/pthread.c:66,1
    - Dst: GetLastError
      Src: /src/git/compat/win32/pthread.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cond
    - mutex
    argTypes:
    - pthread_cond_t*
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: pthread_cond_wait
    functionSourceFile: /src/git/compat/win32/pthread.c
    functionUses: 0
    functionsReached:
    - err_win_to_posix
    - GetLastError
    - SleepConditionVariableCS
    linkageType: ''
    returnType: int
    signature: int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RegisterEventSourceA
      Src: /src/git/compat/win32/syslog.c:10,1
    - Dst: warning
      Src: /src/git/compat/win32/syslog.c:13,1
    - Dst: GetLastError
      Src: /src/git/compat/win32/syslog.c:13,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ident
    - logopt
    - facility
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 14
    functionName: openlog
    functionSourceFile: /src/git/compat/win32/syslog.c
    functionUses: 1
    functionsReached:
    - GetLastError
    - warning
    - RegisterEventSourceA
    linkageType: ''
    returnType: void
    signature: void openlog(const char *ident, int logopt UNUSED, int facility UNUSED)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/compat/win32/syslog.c:26,1
    - Dst: vsnprintf
      Src: /src/git/compat/win32/syslog.c:27,1
    - Dst: va_end
      Src: /src/git/compat/win32/syslog.c:28,1
    - Dst: warning_errno
      Src: /src/git/compat/win32/syslog.c:31,1
    - Dst: malloc
      Src: /src/git/compat/win32/syslog.c:35,1
    - Dst: st_add
      Src: /src/git/compat/win32/syslog.c:35,1
    - Dst: warning_errno
      Src: /src/git/compat/win32/syslog.c:37,1
    - Dst: va_start
      Src: /src/git/compat/win32/syslog.c:41,1
    - Dst: vsnprintf
      Src: /src/git/compat/win32/syslog.c:42,1
    - Dst: va_end
      Src: /src/git/compat/win32/syslog.c:43,1
    - Dst: strstr
      Src: /src/git/compat/win32/syslog.c:45,1
    - Dst: realloc
      Src: /src/git/compat/win32/syslog.c:49,1
    - Dst: st_add
      Src: /src/git/compat/win32/syslog.c:49,1
    - Dst: free
      Src: /src/git/compat/win32/syslog.c:51,1
    - Dst: warning_errno
      Src: /src/git/compat/win32/syslog.c:52,1
    - Dst: memmove
      Src: /src/git/compat/win32/syslog.c:56,1
    - Dst: strlen
      Src: /src/git/compat/win32/syslog.c:56,1
    - Dst: ReportEventA
      Src: /src/git/compat/win32/syslog.c:80,1
    - Dst: free
      Src: /src/git/compat/win32/syslog.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 2
    argNames:
    - priority
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 83
    functionName: syslog
    functionSourceFile: /src/git/compat/win32/syslog.c
    functionUses: 1
    functionsReached:
    - strstr
    - malloc
    - warning_errno
    - ReportEventA
    - va_end
    - realloc
    - memmove
    - strlen
    - free
    - va_start
    - vsnprintf
    - st_add
    linkageType: ''
    returnType: void
    signature: void syslog(int priority, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - dll
    - ','
    - rettype
    - ','
    - convention
    - ','
    - function
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: DECLARE_PROC_ADDR
    functionSourceFile: /src/git/compat/win32/lazyload.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PROC_ADDR(dll, rettype, convention, function, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - function
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: INIT_PROC_ADDR
    functionSourceFile: /src/git/compat/win32/lazyload.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_PROC_ADDR(function)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryExA
      Src: /src/git/compat/win32/lazyload.h:49,1
    - Dst: GetProcAddress
      Src: /src/git/compat/win32/lazyload.h:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - proc
    argTypes:
    - struct proc_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: get_proc_addr
    functionSourceFile: /src/git/compat/win32/lazyload.h
    functionUses: 0
    functionsReached:
    - LoadLibraryExA
    - GetProcAddress
    linkageType: ''
    returnType: FARVOIDPROC
    signature: FARVOIDPROC get_proc_addr(struct proc_addr *proc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_PROC_ADDR
      Src: /src/git/compat/win32/flush.c:13,1
    - Dst: INIT_PROC_ADDR
      Src: /src/git/compat/win32/flush.c:17,1
    - Dst: memset
      Src: /src/git/compat/win32/flush.c:22,1
    - Dst: NtFlushBuffersFileEx
      Src: /src/git/compat/win32/flush.c:23,1
    - Dst: _get_osfhandle
      Src: /src/git/compat/win32/flush.c:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 30
    functionName: win32_fsync_no_flush
    functionSourceFile: /src/git/compat/win32/flush.c
    functionUses: 0
    functionsReached:
    - memset
    - DECLARE_PROC_ADDR
    - _get_osfhandle
    - INIT_PROC_ADDR
    - NtFlushBuffersFileEx
    linkageType: ''
    returnType: int
    signature: int win32_fsync_no_flush(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/compat/win32/path-utils.h:14,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 17
    functionName: win32_find_last_dir_sep
    functionSourceFile: /src/git/compat/win32/path-utils.h
    functionUses: 0
    functionsReached:
    - is_dir_sep
    linkageType: ''
    returnType: char
    signature: char *win32_find_last_dir_sep(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/git/compat/win32/path-utils.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: win32_has_dir_sep
    functionSourceFile: /src/git/compat/win32/path-utils.h
    functionUses: 0
    functionsReached:
    - strcspn
    linkageType: ''
    returnType: int
    signature: int win32_has_dir_sep(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: has_dir_sep
    functionSourceFile: /src/git/compat/win32/path-utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_dir_sep(path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/git/compat/win32/headless.c:24,1
    - Dst: memcmp
      Src: /src/git/compat/win32/headless.c:32,1
    - Dst: GetEnvironmentVariableW
      Src: /src/git/compat/win32/headless.c:35,1
    - Dst: _alloca
      Src: /src/git/compat/win32/headless.c:39,1
    - Dst: wcsncpy
      Src: /src/git/compat/win32/headless.c:40,1
    - Dst: wcscpy
      Src: /src/git/compat/win32/headless.c:41,1
    - Dst: GetEnvironmentVariableW
      Src: /src/git/compat/win32/headless.c:42,1
    - Dst: SetEnvironmentVariableW
      Src: /src/git/compat/win32/headless.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - dir
    - dir_len
    argTypes:
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 47
    functionName: extend_path
    functionSourceFile: /src/git/compat/win32/headless.c
    functionUses: 0
    functionsReached:
    - wcslen
    - GetEnvironmentVariableW
    - SetEnvironmentVariableW
    - wcsncpy
    - _alloca
    - wcscpy
    - memcmp
    linkageType: ''
    returnType: int
    signature: int extend_path(wchar_t *dir, size_t dir_len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: extend_path
      Src: /src/git/compat/win32/headless.c:80,1
    - Dst: swprintf_s
      Src: /src/git/compat/win32/headless.c:83,1
    - Dst: swprintf_s
      Src: /src/git/compat/win32/headless.c:90,1
    - Dst: GetStdHandle
      Src: /src/git/compat/win32/headless.c:96,1
    - Dst: GetStdHandle
      Src: /src/git/compat/win32/headless.c:97,1
    - Dst: GetStdHandle
      Src: /src/git/compat/win32/headless.c:98,1
    - Dst: CreateProcess
      Src: /src/git/compat/win32/headless.c:100,1
    - Dst: WaitForSingleObject
      Src: /src/git/compat/win32/headless.c:110,1
    - Dst: GetExitCodeProcess
      Src: /src/git/compat/win32/headless.c:111,1
    - Dst: CloseHandle
      Src: /src/git/compat/win32/headless.c:114,1
    - Dst: CloseHandle
      Src: /src/git/compat/win32/headless.c:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - HINSTANCE
    - previous_instance
    - command_line
    - show
    argTypes:
    - _In_
    - _In_opt_
    - _In_
    - _In_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 118
    functionName: wWinMain
    functionSourceFile: /src/git/compat/win32/headless.c
    functionUses: 0
    functionsReached:
    - swprintf_s
    - CreateProcess
    - GetStdHandle
    - CloseHandle
    - WaitForSingleObject
    - GetExitCodeProcess
    - extend_path
    linkageType: ''
    returnType: int
    signature: "int wWinMain(_In_ HINSTANCE instance,\n\t\t    _In_opt_ HINSTANCE
      previous_instance,\n\t\t    _In_ LPWSTR command_line, _In_ int show)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Process32First
      Src: /src/git/compat/win32/trace2_win32_process_info.c:26,1
    - Dst: Process32Next
      Src: /src/git/compat/win32/trace2_win32_process_info.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pid
    - hSnapshot
    - pe32
    argTypes:
    - DWORD
    - HANDLE
    - PROCESSENTRY32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: find_pid
    functionSourceFile: /src/git/compat/win32/trace2_win32_process_info.c
    functionUses: 0
    functionsReached:
    - Process32Next
    - Process32First
    linkageType: ''
    returnType: int
    signature: int find_pid(DWORD pid, HANDLE hSnapshot, PROCESSENTRY32 *pe32)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcessId
      Src: /src/git/compat/win32/trace2_win32_process_info.c:79,1
    - Dst: find_pid
      Src: /src/git/compat/win32/trace2_win32_process_info.c:80,1
    - Dst: strvec_push
      Src: /src/git/compat/win32/trace2_win32_process_info.c:83,1
    - Dst: strvec_push
      Src: /src/git/compat/win32/trace2_win32_process_info.c:88,1
    - Dst: strvec_push
      Src: /src/git/compat/win32/trace2_win32_process_info.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - names
    - hSnapshot
    argTypes:
    - struct strvec*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 101
    functionName: get_processes
    functionSourceFile: /src/git/compat/win32/trace2_win32_process_info.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - GetCurrentProcessId
    - find_pid
    linkageType: ''
    returnType: void
    signature: void get_processes(struct strvec *names, HANDLE hSnapshot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateToolhelp32Snapshot
      Src: /src/git/compat/win32/trace2_win32_process_info.c:108,1
    - Dst: get_processes
      Src: /src/git/compat/win32/trace2_win32_process_info.c:111,1
    - Dst: CloseHandle
      Src: /src/git/compat/win32/trace2_win32_process_info.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - names
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: get_ancestry
    functionSourceFile: /src/git/compat/win32/trace2_win32_process_info.c
    functionUses: 0
    functionsReached:
    - get_processes
    - CreateToolhelp32Snapshot
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void get_ancestry(struct strvec *names)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsDebuggerPresent
      Src: /src/git/compat/win32/trace2_win32_process_info.c:126,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/win32/trace2_win32_process_info.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: get_is_being_debugged
    functionSourceFile: /src/git/compat/win32/trace2_win32_process_info.c
    functionUses: 0
    functionsReached:
    - IsDebuggerPresent
    - trace2_data_intmax
    linkageType: ''
    returnType: void
    signature: void get_is_being_debugged(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_PROC_ADDR
      Src: /src/git/compat/win32/trace2_win32_process_info.c:136,1
    - Dst: INIT_PROC_ADDR
      Src: /src/git/compat/win32/trace2_win32_process_info.c:139,1
    - Dst: GetProcessMemoryInfo
      Src: /src/git/compat/win32/trace2_win32_process_info.c:142,1
    - Dst: GetCurrentProcess
      Src: /src/git/compat/win32/trace2_win32_process_info.c:142,1
    - Dst: jw_object_begin
      Src: /src/git/compat/win32/trace2_win32_process_info.c:146,1
    - Dst: jw_object_intmax
      Src: /src/git/compat/win32/trace2_win32_process_info.c:150,1
    - Dst: KV
      Src: /src/git/compat/win32/trace2_win32_process_info.c:150,1
    - Dst: jw_object_intmax
      Src: /src/git/compat/win32/trace2_win32_process_info.c:151,1
    - Dst: KV
      Src: /src/git/compat/win32/trace2_win32_process_info.c:151,1
    - Dst: jw_object_intmax
      Src: /src/git/compat/win32/trace2_win32_process_info.c:152,1
    - Dst: KV
      Src: /src/git/compat/win32/trace2_win32_process_info.c:152,1
    - Dst: jw_end
      Src: /src/git/compat/win32/trace2_win32_process_info.c:154,1
    - Dst: trace2_data_json
      Src: /src/git/compat/win32/trace2_win32_process_info.c:156,1
    - Dst: jw_release
      Src: /src/git/compat/win32/trace2_win32_process_info.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 161
    functionName: get_peak_memory_info
    functionSourceFile: /src/git/compat/win32/trace2_win32_process_info.c
    functionUses: 0
    functionsReached:
    - jw_object_begin
    - GetCurrentProcess
    - jw_end
    - trace2_data_json
    - KV
    - DECLARE_PROC_ADDR
    - INIT_PROC_ADDR
    - jw_object_intmax
    - jw_release
    - GetProcessMemoryInfo
    linkageType: ''
    returnType: void
    signature: void get_peak_memory_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - kv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: KV
    functionSourceFile: /src/git/compat/win32/trace2_win32_process_info.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KV(kv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trace2_is_enabled
      Src: /src/git/compat/win32/trace2_win32_process_info.c:167,1
    - Dst: get_is_being_debugged
      Src: /src/git/compat/win32/trace2_win32_process_info.c:172,1
    - Dst: get_ancestry
      Src: /src/git/compat/win32/trace2_win32_process_info.c:173,1
    - Dst: jw_array_begin
      Src: /src/git/compat/win32/trace2_win32_process_info.c:181,1
    - Dst: jw_array_string
      Src: /src/git/compat/win32/trace2_win32_process_info.c:183,1
    - Dst: jw_end
      Src: /src/git/compat/win32/trace2_win32_process_info.c:184,1
    - Dst: trace2_data_json
      Src: /src/git/compat/win32/trace2_win32_process_info.c:185,1
    - Dst: jw_release
      Src: /src/git/compat/win32/trace2_win32_process_info.c:187,1
    - Dst: trace2_cmd_ancestry
      Src: /src/git/compat/win32/trace2_win32_process_info.c:190,1
    - Dst: strvec_clear
      Src: /src/git/compat/win32/trace2_win32_process_info.c:193,1
    - Dst: get_peak_memory_info
      Src: /src/git/compat/win32/trace2_win32_process_info.c:197,1
    - Dst: BUG
      Src: /src/git/compat/win32/trace2_win32_process_info.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - reason
    argTypes:
    - enum trace2_process_info_reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 203
    functionName: trace2_collect_process_info
    functionSourceFile: /src/git/compat/win32/trace2_win32_process_info.c
    functionUses: 2
    functionsReached:
    - trace2_is_enabled
    - get_ancestry
    - jw_end
    - jw_array_string
    - trace2_data_json
    - get_peak_memory_info
    - strvec_clear
    - jw_array_begin
    - trace2_cmd_ancestry
    - jw_release
    - BUG
    - get_is_being_debugged
    linkageType: ''
    returnType: void
    signature: void trace2_collect_process_info(enum trace2_process_info_reason reason)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xwcstoutf
      Src: /src/git/compat/win32/dirent.c:12,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ent
    - fdata
    argTypes:
    - struct dirent*
    - WIN32_FIND_DATAW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 22
    functionName: finddata2dirent
    functionSourceFile: /src/git/compat/win32/dirent.c
    functionUses: 0
    functionsReached:
    - xwcstoutf
    linkageType: ''
    returnType: void
    signature: void finddata2dirent(struct dirent *ent, WIN32_FIND_DATAW *fdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/win32/dirent.c:33,1
    - Dst: is_dir_sep
      Src: /src/git/compat/win32/dirent.c:37,1
    - Dst: FindFirstFileW
      Src: /src/git/compat/win32/dirent.c:43,1
    - Dst: GetLastError
      Src: /src/git/compat/win32/dirent.c:45,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/win32/dirent.c:46,1
    - Dst: xmalloc
      Src: /src/git/compat/win32/dirent.c:51,1
    - Dst: finddata2dirent
      Src: /src/git/compat/win32/dirent.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: opendir
    functionSourceFile: /src/git/compat/win32/dirent.c
    functionUses: 32
    functionsReached:
    - is_dir_sep
    - GetLastError
    - finddata2dirent
    - xutftowcs_path
    - FindFirstFileW
    - err_win_to_posix
    - xmalloc
    linkageType: ''
    returnType: DIR
    signature: DIR *opendir(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FindNextFileW
      Src: /src/git/compat/win32/dirent.c:69,1
    - Dst: finddata2dirent
      Src: /src/git/compat/win32/dirent.c:70,1
    - Dst: GetLastError
      Src: /src/git/compat/win32/dirent.c:72,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/win32/dirent.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - dir
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 83
    functionName: readdir
    functionSourceFile: /src/git/compat/win32/dirent.c
    functionUses: 17
    functionsReached:
    - GetLastError
    - finddata2dirent
    - err_win_to_posix
    - FindNextFileW
    linkageType: ''
    returnType: struct dirent
    signature: struct dirent *readdir(DIR *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/git/compat/win32/dirent.c:92,1
    - Dst: free
      Src: /src/git/compat/win32/dirent.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dir
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: closedir
    functionSourceFile: /src/git/compat/win32/dirent.c
    functionUses: 34
    functionsReached:
    - free
    - FindClose
    linkageType: ''
    returnType: int
    signature: int closedir(DIR *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 28
    functionName: win32_has_dos_drive_prefix
    functionSourceFile: /src/git/compat/win32/path-utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int win32_has_dos_drive_prefix(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_dos_drive_prefix
      Src: /src/git/compat/win32/path-utils.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: win32_skip_dos_drive_prefix
    functionSourceFile: /src/git/compat/win32/path-utils.c
    functionUses: 1
    functionsReached:
    - has_dos_drive_prefix
    linkageType: ''
    returnType: int
    signature: int win32_skip_dos_drive_prefix(char **path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_dos_drive_prefix
      Src: /src/git/compat/win32/path-utils.c:42,1
    - Dst: is_dir_sep
      Src: /src/git/compat/win32/path-utils.c:43,1
    - Dst: is_dir_sep
      Src: /src/git/compat/win32/path-utils.c:43,1
    - Dst: strpbrk
      Src: /src/git/compat/win32/path-utils.c:45,1
    - Dst: is_dir_sep
      Src: /src/git/compat/win32/path-utils.c:51,1
    - Dst: is_dir_sep
      Src: /src/git/compat/win32/path-utils.c:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 55
    functionName: win32_offset_1st_component
    functionSourceFile: /src/git/compat/win32/path-utils.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strpbrk
    - skip_dos_drive_prefix
    linkageType: ''
    returnType: int
    signature: int win32_offset_1st_component(const char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_sep
      Src: /src/git/compat/win32/path-utils.c:69,1
    - Dst: is_dir_sep
      Src: /src/git/compat/win32/path-utils.c:70,1
    - Dst: is_dir_sep
      Src: /src/git/compat/win32/path-utils.c:75,1
    - Dst: tolower
      Src: /src/git/compat/win32/path-utils.c:79,1
    - Dst: tolower
      Src: /src/git/compat/win32/path-utils.c:79,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - a
    - b
    - count
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 86
    functionName: win32_fspathncmp
    functionSourceFile: /src/git/compat/win32/path-utils.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - tolower
    linkageType: ''
    returnType: int
    signature: int win32_fspathncmp(const char *a, const char *b, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: win32_fspathncmp
      Src: /src/git/compat/win32/path-utils.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: win32_fspathcmp
    functionSourceFile: /src/git/compat/win32/path-utils.c
    functionUses: 0
    functionsReached:
    - win32_fspathncmp
    linkageType: ''
    returnType: int
    signature: int win32_fspathcmp(const char *a, const char *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/compat/simple-ipc/ipc-win32.c:26,1
    - Dst: swprintf
      Src: /src/git/compat/simple-ipc/ipc-win32.c:29,1
    - Dst: xutftowcs
      Src: /src/git/compat/simple-ipc/ipc-win32.c:30,1
    - Dst: strbuf_release
      Src: /src/git/compat/simple-ipc/ipc-win32.c:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - path
    - wpath
    - alloc
    argTypes:
    - char*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 45
    functionName: initialize_pipe_name
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - swprintf
    - strbuf_release
    - xutftowcs
    - strbuf_realpath
    linkageType: ''
    returnType: int
    signature: int initialize_pipe_name(const char *path, wchar_t *wpath, size_t alloc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WaitNamedPipeW
      Src: /src/git/compat/simple-ipc/ipc-win32.c:49,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:52,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:55,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:58,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pipe_path
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: get_active_state
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 4
    functionsReached:
    - WaitNamedPipeW
    - GetLastError
    - trace2_data_intmax
    linkageType: ''
    returnType: enum ipc_active_state
    signature: enum ipc_active_state get_active_state(wchar_t *pipe_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: initialize_pipe_name
      Src: /src/git/compat/simple-ipc/ipc-win32.c:68,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/simple-ipc/ipc-win32.c:68,1
    - Dst: get_active_state
      Src: /src/git/compat/simple-ipc/ipc-win32.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: ipc_get_active_state
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 4
    functionsReached:
    - ARRAY_SIZE
    - initialize_pipe_name
    - get_active_state
    linkageType: ''
    returnType: enum ipc_active_state
    signature: enum ipc_active_state ipc_get_active_state(const char *path)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/git/compat/simple-ipc/ipc-win32.c:91,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:96,1
    - Dst: sleep_millisec
      Src: /src/git/compat/simple-ipc/ipc-win32.c:107,1
    - Dst: getnanotime
      Src: /src/git/compat/simple-ipc/ipc-win32.c:118,1
    - Dst: WaitNamedPipeW
      Src: /src/git/compat/simple-ipc/ipc-win32.c:120,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:121,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:126,1
    - Dst: getnanotime
      Src: /src/git/compat/simple-ipc/ipc-win32.c:143,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:151,1
    - Dst: SetNamedPipeHandleState
      Src: /src/git/compat/simple-ipc/ipc-win32.c:159,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:160,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:161,1
    - Dst: CloseHandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:165,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:169,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:171,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:172,1
    - Dst: CloseHandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:176,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 4
    argNames:
    - wpath
    - timeout_ms
    - options
    - pfd
    argTypes:
    - wchar_t*
    - DWORD
    - struct ipc_client_connect_options*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 183
    functionName: connect_to_server
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - trace2_data_intmax
    - CreateFileW
    - _open_osfhandle
    - GetLastError
    - sleep_millisec
    - CloseHandle
    - WaitNamedPipeW
    - SetNamedPipeHandleState
    - getnanotime
    linkageType: ''
    returnType: enum ipc_active_state
    signature: "enum ipc_active_state connect_to_server(\n\tconst wchar_t *wpath,\n\tDWORD
      timeout_ms,\n\tconst struct ipc_client_connect_options *options,\n\tint *pfd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/compat/simple-ipc/ipc-win32.c:206,1
    - Dst: trace2_data_string
      Src: /src/git/compat/simple-ipc/ipc-win32.c:207,1
    - Dst: initialize_pipe_name
      Src: /src/git/compat/simple-ipc/ipc-win32.c:209,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/simple-ipc/ipc-win32.c:209,1
    - Dst: connect_to_server
      Src: /src/git/compat/simple-ipc/ipc-win32.c:212,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:215,1
    - Dst: trace2_region_leave
      Src: /src/git/compat/simple-ipc/ipc-win32.c:217,1
    - Dst: xcalloc
      Src: /src/git/compat/simple-ipc/ipc-win32.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - path
    - options
    - p_connection
    argTypes:
    - char*
    - struct ipc_client_connect_options*
    - struct ipc_client_connection**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 195
    functionDepth: 8
    functionLinenumber: 195
    functionLinenumberEnd: 225
    functionName: ipc_client_try_connect
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - trace2_data_intmax
    - initialize_pipe_name
    - trace2_region_leave
    - trace2_region_enter
    - connect_to_server
    - xcalloc
    - trace2_data_string
    linkageType: ''
    returnType: enum ipc_active_state
    signature: "enum ipc_active_state ipc_client_try_connect(\n\tconst char *path,\n\tconst
      struct ipc_client_connect_options *options,\n\tstruct ipc_client_connection
      **p_connection)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-win32.c:233,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-win32.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - connection
    argTypes:
    - struct ipc_client_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: ipc_client_close_connection
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 2
    functionsReached:
    - close
    - free
    linkageType: ''
    returnType: void
    signature: void ipc_client_close_connection(struct ipc_client_connection *connection)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/compat/simple-ipc/ipc-win32.c:245,1
    - Dst: trace2_region_enter
      Src: /src/git/compat/simple-ipc/ipc-win32.c:247,1
    - Dst: write_packetized_from_buf_no_flush
      Src: /src/git/compat/simple-ipc/ipc-win32.c:249,1
    - Dst: packet_flush_gently
      Src: /src/git/compat/simple-ipc/ipc-win32.c:251,1
    - Dst: error
      Src: /src/git/compat/simple-ipc/ipc-win32.c:252,1
    - Dst: _
      Src: /src/git/compat/simple-ipc/ipc-win32.c:252,1
    - Dst: FlushFileBuffers
      Src: /src/git/compat/simple-ipc/ipc-win32.c:256,1
    - Dst: _get_osfhandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:256,1
    - Dst: read_packetized_to_strbuf
      Src: /src/git/compat/simple-ipc/ipc-win32.c:258,1
    - Dst: error
      Src: /src/git/compat/simple-ipc/ipc-win32.c:261,1
    - Dst: _
      Src: /src/git/compat/simple-ipc/ipc-win32.c:261,1
    - Dst: trace2_region_leave
      Src: /src/git/compat/simple-ipc/ipc-win32.c:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - connection
    - message
    - message_len
    - answer
    argTypes:
    - struct ipc_client_connection*
    - char*
    - size_t
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 238
    functionDepth: 8
    functionLinenumber: 238
    functionLinenumberEnd: 268
    functionName: ipc_client_send_command_to_connection
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 2
    functionsReached:
    - error
    - write_packetized_from_buf_no_flush
    - read_packetized_to_strbuf
    - trace2_region_leave
    - strbuf_setlen
    - trace2_region_enter
    - packet_flush_gently
    - _get_osfhandle
    - _
    - FlushFileBuffers
    linkageType: ''
    returnType: int
    signature: "int ipc_client_send_command_to_connection(\n\tstruct ipc_client_connection
      *connection,\n\tconst char *message, size_t message_len,\n\tstruct strbuf *answer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ipc_client_try_connect
      Src: /src/git/compat/simple-ipc/ipc-win32.c:279,1
    - Dst: ipc_client_send_command_to_connection
      Src: /src/git/compat/simple-ipc/ipc-win32.c:284,1
    - Dst: ipc_client_close_connection
      Src: /src/git/compat/simple-ipc/ipc-win32.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - path
    - options
    - message
    - message_len
    - response
    argTypes:
    - char*
    - struct ipc_client_connect_options*
    - char*
    - size_t
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 291
    functionName: ipc_client_send_command
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 2
    functionsReached:
    - ipc_client_try_connect
    - ipc_client_close_connection
    - ipc_client_send_command_to_connection
    linkageType: ''
    returnType: int
    signature: "int ipc_client_send_command(const char *path,\n\t\t\t    const struct
      ipc_client_connect_options *options,\n\t\t\t    const char *message, size_t
      message_len,\n\t\t\t    struct strbuf *response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/git/compat/simple-ipc/ipc-win32.c:299,1
    - Dst: DuplicateHandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:303,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/simple-ipc/ipc-win32.c:305,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:305,1
    - Dst: _open_osfhandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:309,1
    - Dst: err_win_to_posix
      Src: /src/git/compat/simple-ipc/ipc-win32.c:311,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:311,1
    - Dst: CloseHandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pipe
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 322
    functionName: dup_fd_from_pipe
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - DuplicateHandle
    - GetCurrentProcess
    - GetLastError
    - err_win_to_posix
    - CloseHandle
    - _open_osfhandle
    linkageType: ''
    returnType: int
    signature: int dup_fd_from_pipe(const HANDLE pipe)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ConnectNamedPipe
      Src: /src/git/compat/simple-ipc/ipc-win32.c:391,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:394,1
    - Dst: SetEvent
      Src: /src/git/compat/simple-ipc/ipc-win32.c:399,1
    - Dst: error
      Src: /src/git/compat/simple-ipc/ipc-win32.c:407,1
    - Dst: _
      Src: /src/git/compat/simple-ipc/ipc-win32.c:407,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - server_thread_data
    - lpo
    argTypes:
    - struct ipc_server_thread_data*
    - OVERLAPPED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 411
    functionName: queue_overlapped_connect
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - error
    - GetLastError
    - SetEvent
    - ConnectNamedPipe
    - _
    linkageType: ''
    returnType: enum connect_result
    signature: "enum connect_result queue_overlapped_connect(\n\tstruct ipc_server_thread_data
      *server_thread_data,\n\tOVERLAPPED *lpo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: queue_overlapped_connect
      Src: /src/git/compat/simple-ipc/ipc-win32.c:425,1
    - Dst: WaitForMultipleObjects
      Src: /src/git/compat/simple-ipc/ipc-win32.c:432,1
    - Dst: ResetEvent
      Src: /src/git/compat/simple-ipc/ipc-win32.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - server_thread_data
    - lpo
    argTypes:
    - struct ipc_server_thread_data*
    - OVERLAPPED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 444
    functionName: wait_for_connection
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - WaitForMultipleObjects
    - queue_overlapped_connect
    - ResetEvent
    linkageType: ''
    returnType: enum connect_result
    signature: "enum connect_result wait_for_connection(\n\tstruct ipc_server_thread_data
      *server_thread_data,\n\tOVERLAPPED *lpo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/compat/simple-ipc/ipc-win32.c:463,1
    - Dst: write_packetized_from_buf_no_flush
      Src: /src/git/compat/simple-ipc/ipc-win32.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - reply_data
    - response
    - response_len
    argTypes:
    - struct ipc_server_reply_data*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 467
    functionName: do_io_reply_callback
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - write_packetized_from_buf_no_flush
    - BUG
    linkageType: ''
    returnType: int
    signature: "int do_io_reply_callback(struct ipc_server_reply_data *reply_data,\n\t\t
      \      const char *response, size_t response_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dup_fd_from_pipe
      Src: /src/git/compat/simple-ipc/ipc-win32.c:486,1
    - Dst: error
      Src: /src/git/compat/simple-ipc/ipc-win32.c:488,1
    - Dst: _
      Src: /src/git/compat/simple-ipc/ipc-win32.c:488,1
    - Dst: read_packetized_to_strbuf
      Src: /src/git/compat/simple-ipc/ipc-win32.c:491,1
    - Dst: struct ipc_server_thread_data*::server_data::application_cb
      Src: /src/git/compat/simple-ipc/ipc-win32.c:495,1
    - Dst: packet_flush_gently
      Src: /src/git/compat/simple-ipc/ipc-win32.c:499,1
    - Dst: FlushFileBuffers
      Src: /src/git/compat/simple-ipc/ipc-win32.c:501,1
    - Dst: _get_osfhandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:501,1
    - Dst: strbuf_release
      Src: /src/git/compat/simple-ipc/ipc-win32.c:510,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-win32.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - server_thread_data
    argTypes:
    - struct ipc_server_thread_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 477
    functionDepth: 8
    functionLinenumber: 477
    functionLinenumberEnd: 514
    functionName: do_io
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - read_packetized_to_strbuf
    - packet_flush_gently
    - _get_osfhandle
    - struct ipc_server_thread_data*::server_data::application_cb
    - dup_fd_from_pipe
    - _
    - close
    - FlushFileBuffers
    linkageType: ''
    returnType: int
    signature: int do_io(struct ipc_server_thread_data *server_thread_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_io
      Src: /src/git/compat/simple-ipc/ipc-win32.c:524,1
    - Dst: FlushFileBuffers
      Src: /src/git/compat/simple-ipc/ipc-win32.c:526,1
    - Dst: DisconnectNamedPipe
      Src: /src/git/compat/simple-ipc/ipc-win32.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - server_thread_data
    argTypes:
    - struct ipc_server_thread_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 9
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: use_connection
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - DisconnectNamedPipe
    - do_io
    - FlushFileBuffers
    linkageType: ''
    returnType: int
    signature: int use_connection(struct ipc_server_thread_data *server_thread_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/compat/simple-ipc/ipc-win32.c:538,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/simple-ipc/ipc-win32.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - server_data
    argTypes:
    - struct ipc_server_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: wait_for_startup_barrier
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void wait_for_startup_barrier(struct ipc_server_data *server_data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/simple-ipc/ipc-win32.c:555,1
    - Dst: trace2_thread_start
      Src: /src/git/compat/simple-ipc/ipc-win32.c:557,1
    - Dst: trace2_data_string
      Src: /src/git/compat/simple-ipc/ipc-win32.c:558,1
    - Dst: CreateEventW
      Src: /src/git/compat/simple-ipc/ipc-win32.c:561,1
    - Dst: memset
      Src: /src/git/compat/simple-ipc/ipc-win32.c:563,1
    - Dst: wait_for_startup_barrier
      Src: /src/git/compat/simple-ipc/ipc-win32.c:566,1
    - Dst: wait_for_connection
      Src: /src/git/compat/simple-ipc/ipc-win32.c:569,1
    - Dst: use_connection
      Src: /src/git/compat/simple-ipc/ipc-win32.c:576,1
    - Dst: ipc_server_stop_async
      Src: /src/git/compat/simple-ipc/ipc-win32.c:578,1
    - Dst: BUG
      Src: /src/git/compat/simple-ipc/ipc-win32.c:592,1
    - Dst: DisconnectNamedPipe
      Src: /src/git/compat/simple-ipc/ipc-win32.c:600,1
    - Dst: BUG
      Src: /src/git/compat/simple-ipc/ipc-win32.c:604,1
    - Dst: CloseHandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:609,1
    - Dst: CloseHandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:610,1
    - Dst: trace2_thread_exit
      Src: /src/git/compat/simple-ipc/ipc-win32.c:612,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 1
    argNames:
    - _server_thread_data
    argTypes:
    - void*
    assertStmts:
    - condition: (server_thread_data->hPipe != INVALID_HANDLE_VALUE)
      pos:
        line_end: 554
        line_start: 554
        source_file: /src/git/compat/simple-ipc/ipc-win32.c
    constantsTouched: []
    func_position:
      end: 614
      start: 547
    functionDepth: 10
    functionLinenumber: 547
    functionLinenumberEnd: 614
    functionName: server_thread_proc
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - memset
    - wait_for_startup_barrier
    - assert
    - trace2_thread_exit
    - wait_for_connection
    - ipc_server_stop_async
    - use_connection
    - CloseHandle
    - trace2_thread_start
    - CreateEventW
    - BUG
    - DisconnectNamedPipe
    - trace2_data_string
    linkageType: ''
    returnType: void
    signature: void *server_thread_proc(void *_server_thread_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/compat/simple-ipc/ipc-win32.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct my_sa_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 638
    functionName: init_sa
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void init_sa(struct my_sa_data *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FreeSid
      Src: /src/git/compat/simple-ipc/ipc-win32.c:643,1
    - Dst: LocalFree
      Src: /src/git/compat/simple-ipc/ipc-win32.c:645,1
    - Dst: LocalFree
      Src: /src/git/compat/simple-ipc/ipc-win32.c:647,1
    - Dst: LocalFree
      Src: /src/git/compat/simple-ipc/ipc-win32.c:649,1
    - Dst: memset
      Src: /src/git/compat/simple-ipc/ipc-win32.c:651,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct my_sa_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 652
    functionName: release_sa
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - FreeSid
    - LocalFree
    - memset
    linkageType: ''
    returnType: void
    signature: void release_sa(struct my_sa_data *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AllocateAndInitializeSid
      Src: /src/git/compat/simple-ipc/ipc-win32.c:680,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:683,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:684,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/compat/simple-ipc/ipc-win32.c:689,1
    - Dst: SetEntriesInAcl
      Src: /src/git/compat/simple-ipc/ipc-win32.c:699,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:701,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:702,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:704,1
    - Dst: LocalAlloc
      Src: /src/git/compat/simple-ipc/ipc-win32.c:709,1
    - Dst: InitializeSecurityDescriptor
      Src: /src/git/compat/simple-ipc/ipc-win32.c:711,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:712,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:713,1
    - Dst: SetSecurityDescriptorDacl
      Src: /src/git/compat/simple-ipc/ipc-win32.c:717,1
    - Dst: GetLastError
      Src: /src/git/compat/simple-ipc/ipc-win32.c:718,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-win32.c:719,1
    - Dst: LocalAlloc
      Src: /src/git/compat/simple-ipc/ipc-win32.c:723,1
    - Dst: release_sa
      Src: /src/git/compat/simple-ipc/ipc-win32.c:731,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct my_sa_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 733
    functionName: get_sa
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - release_sa
    - trace2_data_intmax
    - LocalAlloc
    - GetLastError
    - MEMZERO_ARRAY
    - SetSecurityDescriptorDacl
    - InitializeSecurityDescriptor
    - AllocateAndInitializeSid
    - SetEntriesInAcl
    linkageType: ''
    returnType: LPSECURITY_ATTRIBUTES
    signature: LPSECURITY_ATTRIBUTES get_sa(struct my_sa_data *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_sa
      Src: /src/git/compat/simple-ipc/ipc-win32.c:741,1
    - Dst: get_sa
      Src: /src/git/compat/simple-ipc/ipc-win32.c:758,1
    - Dst: CreateNamedPipeW
      Src: /src/git/compat/simple-ipc/ipc-win32.c:761,1
    - Dst: release_sa
      Src: /src/git/compat/simple-ipc/ipc-win32.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - wpath
    - is_first
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 768
    functionName: create_new_pipe
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - get_sa
    - CreateNamedPipeW
    - init_sa
    - release_sa
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE create_new_pipe(wchar_t *wpath, int is_first)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: initialize_pipe_name
      Src: /src/git/compat/simple-ipc/ipc-win32.c:784,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/simple-ipc/ipc-win32.c:784,1
    - Dst: create_new_pipe
      Src: /src/git/compat/simple-ipc/ipc-win32.c:790,1
    - Dst: xcalloc
      Src: /src/git/compat/simple-ipc/ipc-win32.c:796,1
    - Dst: CreateEvent
      Src: /src/git/compat/simple-ipc/ipc-win32.c:800,1
    - Dst: strbuf_init
      Src: /src/git/compat/simple-ipc/ipc-win32.c:801,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/simple-ipc/ipc-win32.c:802,1
    - Dst: wcscpy
      Src: /src/git/compat/simple-ipc/ipc-win32.c:803,1
    - Dst: pthread_mutex_init
      Src: /src/git/compat/simple-ipc/ipc-win32.c:809,1
    - Dst: pthread_mutex_lock
      Src: /src/git/compat/simple-ipc/ipc-win32.c:810,1
    - Dst: xcalloc
      Src: /src/git/compat/simple-ipc/ipc-win32.c:818,1
    - Dst: create_new_pipe
      Src: /src/git/compat/simple-ipc/ipc-win32.c:825,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-win32.c:832,1
    - Dst: pthread_create
      Src: /src/git/compat/simple-ipc/ipc-win32.c:836,1
    - Dst: die
      Src: /src/git/compat/simple-ipc/ipc-win32.c:846,1
    - Dst: _
      Src: /src/git/compat/simple-ipc/ipc-win32.c:846,1
    - Dst: CloseHandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:849,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-win32.c:850,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 5
    argNames:
    - returned_server_data
    - path
    - opts
    - application_cb
    - application_data
    argTypes:
    - struct ipc_server_data**
    - char*
    - struct ipc_server_opts*
    - ipc_server_application_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 770
    functionDepth: 8
    functionLinenumber: 770
    functionLinenumberEnd: 860
    functionName: ipc_server_init_async
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - pthread_mutex_init
    - die
    - pthread_mutex_lock
    - pthread_create
    - initialize_pipe_name
    - create_new_pipe
    - CreateEvent
    - wcscpy
    - CloseHandle
    - xcalloc
    - strbuf_addstr
    - free
    - strbuf_init
    - _
    linkageType: ''
    returnType: int
    signature: "int ipc_server_init_async(struct ipc_server_data **returned_server_data,\n\t\t\t
      \ const char *path, const struct ipc_server_opts *opts,\n\t\t\t  ipc_server_application_cb
      *application_cb,\n\t\t\t  void *application_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/simple-ipc/ipc-win32.c:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - server_data
    argTypes:
    - struct ipc_server_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 869
    functionName: ipc_server_start_async
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void ipc_server_start_async(struct ipc_server_data *server_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetEvent
      Src: /src/git/compat/simple-ipc/ipc-win32.c:883,1
    - Dst: ipc_server_start_async
      Src: /src/git/compat/simple-ipc/ipc-win32.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - server_data
    argTypes:
    - struct ipc_server_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 892
    functionName: ipc_server_stop_async
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 1
    functionsReached:
    - ipc_server_start_async
    - SetEvent
    linkageType: ''
    returnType: int
    signature: int ipc_server_stop_async(struct ipc_server_data *server_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/git/compat/simple-ipc/ipc-win32.c:901,1
    - Dst: error
      Src: /src/git/compat/simple-ipc/ipc-win32.c:903,1
    - Dst: _
      Src: /src/git/compat/simple-ipc/ipc-win32.c:903,1
    - Dst: pthread_join
      Src: /src/git/compat/simple-ipc/ipc-win32.c:909,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-win32.c:912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - server_data
    argTypes:
    - struct ipc_server_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 918
    functionName: ipc_server_await
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - error
    - WaitForSingleObject
    - free
    - pthread_join
    - _
    linkageType: ''
    returnType: int
    signature: int ipc_server_await(struct ipc_server_data *server_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/compat/simple-ipc/ipc-win32.c:926,1
    - Dst: strbuf_release
      Src: /src/git/compat/simple-ipc/ipc-win32.c:929,1
    - Dst: CloseHandle
      Src: /src/git/compat/simple-ipc/ipc-win32.c:932,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-win32.c:938,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/compat/simple-ipc/ipc-win32.c:941,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-win32.c:943,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - server_data
    argTypes:
    - struct ipc_server_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 920
    functionDepth: 3
    functionLinenumber: 920
    functionLinenumberEnd: 944
    functionName: ipc_server_free
    functionSourceFile: /src/git/compat/simple-ipc/ipc-win32.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - pthread_mutex_destroy
    - CloseHandle
    - free
    - BUG
    linkageType: ''
    returnType: void
    signature: void ipc_server_free(struct ipc_server_data *server_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ipc_server_init_async
      Src: /src/git/compat/simple-ipc/ipc-shared.c:19,1
    - Dst: ipc_server_start_async
      Src: /src/git/compat/simple-ipc/ipc-shared.c:24,1
    - Dst: ipc_server_await
      Src: /src/git/compat/simple-ipc/ipc-shared.c:25,1
    - Dst: ipc_server_free
      Src: /src/git/compat/simple-ipc/ipc-shared.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - path
    - opts
    - application_cb
    - application_data
    argTypes:
    - char*
    - struct ipc_server_opts*
    - ipc_server_application_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 30
    functionName: ipc_server_run
    functionSourceFile: /src/git/compat/simple-ipc/ipc-shared.c
    functionUses: 1
    functionsReached:
    - ipc_server_free
    - ipc_server_init_async
    - ipc_server_start_async
    - ipc_server_await
    linkageType: ''
    returnType: int
    signature: "int ipc_server_run(const char *path, const struct ipc_server_opts
      *opts,\n\t\t   ipc_server_application_cb *application_cb,\n\t\t   void *application_data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:29,1
    - Dst: S_ISREG
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:53,1
    - Dst: sleep_millisec
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:54,1
    - Dst: lstat
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:55,1
    - Dst: ipc_client_try_connect
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:70,1
    - Dst: ipc_client_close_connection
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 74
    functionName: ipc_get_active_state
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 4
    functionsReached:
    - sleep_millisec
    - ipc_client_try_connect
    - ipc_client_close_connection
    - lstat
    - S_ISREG
    linkageType: ''
    returnType: enum ipc_active_state
    signature: enum ipc_active_state ipc_get_active_state(const char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unix_stream_connect
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:100,1
    - Dst: sleep_millisec
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:131,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - path
    - timeout_ms
    - options
    - pfd
    argTypes:
    - char*
    - int
    - struct ipc_client_connect_options*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 135
    functionName: connect_to_server
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 1
    functionsReached:
    - unix_stream_connect
    - sleep_millisec
    linkageType: ''
    returnType: enum ipc_active_state
    signature: "enum ipc_active_state connect_to_server(\n\tconst char *path,\n\tint
      timeout_ms,\n\tconst struct ipc_client_connect_options *options,\n\tint *pfd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:163,1
    - Dst: trace2_data_string
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:164,1
    - Dst: connect_to_server
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:166,1
    - Dst: trace2_data_intmax
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:169,1
    - Dst: trace2_region_leave
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:171,1
    - Dst: xcalloc
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - path
    - options
    - p_connection
    argTypes:
    - char*
    - struct ipc_client_connect_options*
    - struct ipc_client_connection**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 153
    functionDepth: 7
    functionLinenumber: 153
    functionLinenumberEnd: 179
    functionName: ipc_client_try_connect
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 4
    functionsReached:
    - trace2_data_intmax
    - trace2_region_leave
    - trace2_region_enter
    - connect_to_server
    - xcalloc
    - trace2_data_string
    linkageType: ''
    returnType: enum ipc_active_state
    signature: "enum ipc_active_state ipc_client_try_connect(\n\tconst char *path,\n\tconst
      struct ipc_client_connect_options *options,\n\tstruct ipc_client_connection
      **p_connection)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:187,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - connection
    argTypes:
    - struct ipc_client_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 190
    functionName: ipc_client_close_connection
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 4
    functionsReached:
    - close
    - free
    linkageType: ''
    returnType: void
    signature: void ipc_client_close_connection(struct ipc_client_connection *connection)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:199,1
    - Dst: trace2_region_enter
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:201,1
    - Dst: write_packetized_from_buf_no_flush
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:203,1
    - Dst: packet_flush_gently
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:205,1
    - Dst: error
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:206,1
    - Dst: _
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:206,1
    - Dst: read_packetized_to_strbuf
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:210,1
    - Dst: error
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:213,1
    - Dst: _
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:213,1
    - Dst: trace2_region_leave
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - connection
    - message
    - message_len
    - answer
    argTypes:
    - struct ipc_client_connection*
    - char*
    - size_t
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 192
    functionDepth: 8
    functionLinenumber: 192
    functionLinenumberEnd: 220
    functionName: ipc_client_send_command_to_connection
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 3
    functionsReached:
    - error
    - write_packetized_from_buf_no_flush
    - read_packetized_to_strbuf
    - trace2_region_leave
    - strbuf_setlen
    - trace2_region_enter
    - packet_flush_gently
    - _
    linkageType: ''
    returnType: int
    signature: "int ipc_client_send_command_to_connection(\n\tstruct ipc_client_connection
      *connection,\n\tconst char *message, size_t message_len,\n\tstruct strbuf *answer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ipc_client_try_connect
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:231,1
    - Dst: ipc_client_send_command_to_connection
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:236,1
    - Dst: ipc_client_close_connection
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - path
    - options
    - message
    - message_len
    - answer
    argTypes:
    - char*
    - struct ipc_client_connect_options*
    - char*
    - size_t
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 243
    functionName: ipc_client_send_command
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 2
    functionsReached:
    - ipc_client_try_connect
    - ipc_client_close_connection
    - ipc_client_send_command_to_connection
    linkageType: ''
    returnType: int
    signature: "int ipc_client_send_command(const char *path,\n\t\t\t    const struct
      ipc_client_connect_options *options,\n\t\t\t    const char *message, size_t
      message_len,\n\t\t\t    struct strbuf *answer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:249,1
    - Dst: fcntl
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - fd
    - make_nonblocking
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: set_socket_blocking_flag
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int set_socket_blocking_flag(int fd, int make_nonblocking)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - server_data
    argTypes:
    - struct ipc_server_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 358
    functionName: fifo_dequeue
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fifo_dequeue(struct ipc_server_data *server_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - server_data
    - fd
    argTypes:
    - struct ipc_server_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 385
    functionName: fifo_enqueue
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int fifo_enqueue(struct ipc_server_data *server_data, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:400,1
    - Dst: fifo_dequeue
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:405,1
    - Dst: pthread_cond_wait
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:409,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - worker_thread_data
    argTypes:
    - struct ipc_worker_thread_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 415
    functionName: worker_thread__wait_for_connection
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - fifo_dequeue
    - pthread_cond_wait
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: "int worker_thread__wait_for_connection(\n\tstruct ipc_worker_thread_data
      *worker_thread_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:434,1
    - Dst: write_packetized_from_buf_no_flush
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - reply_data
    - response
    - response_len
    argTypes:
    - struct ipc_server_reply_data*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 438
    functionName: do_io_reply_callback
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - write_packetized_from_buf_no_flush
    - BUG
    linkageType: ''
    returnType: int
    signature: "int do_io_reply_callback(struct ipc_server_reply_data *reply_data,\n\t\t
      \      const char *response, size_t response_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:469,1
    - Dst: pthread_mutex_lock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:481,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:483,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:504,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - worker_thread_data
    - fd
    argTypes:
    - struct ipc_worker_thread_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 506
    functionName: worker_thread__wait_for_io_start
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - close
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - poll
    linkageType: ''
    returnType: int
    signature: "int worker_thread__wait_for_io_start(\n\tstruct ipc_worker_thread_data
      *worker_thread_data,\n\tint fd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_packetized_to_strbuf
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:528,1
    - Dst: struct ipc_worker_thread_data*::server_data::application_cb
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:532,1
    - Dst: packet_flush_gently
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:536,1
    - Dst: strbuf_release
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:545,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - worker_thread_data
    - fd
    argTypes:
    - struct ipc_worker_thread_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 513
    functionDepth: 8
    functionLinenumber: 513
    functionLinenumberEnd: 549
    functionName: worker_thread__do_io
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - read_packetized_to_strbuf
    - packet_flush_gently
    - close
    - struct ipc_worker_thread_data*::server_data::application_cb
    linkageType: ''
    returnType: int
    signature: "int worker_thread__do_io(\n\tstruct ipc_worker_thread_data *worker_thread_data,\n\tint
      fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:566,1
    - Dst: sigaddset
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:567,1
    - Dst: sigemptyset
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:569,1
    - Dst: pthread_sigmask
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - old_set
    argTypes:
    - sigset_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 571
    functionName: thread_block_sigpipe
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - sigaddset
    - pthread_sigmask
    linkageType: ''
    returnType: void
    signature: void thread_block_sigpipe(sigset_t *old_set)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace2_thread_start
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:593,1
    - Dst: thread_block_sigpipe
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:595,1
    - Dst: worker_thread__wait_for_connection
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:598,1
    - Dst: worker_thread__wait_for_io_start
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:602,1
    - Dst: worker_thread__do_io
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:606,1
    - Dst: trace2_data_string
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:609,1
    - Dst: ipc_server_stop_async
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:624,1
    - Dst: trace2_thread_exit
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:629,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - _worker_thread_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 585
    functionDepth: 9
    functionLinenumber: 585
    functionLinenumberEnd: 631
    functionName: worker_thread_proc
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - trace2_thread_exit
    - worker_thread__wait_for_io_start
    - ipc_server_stop_async
    - trace2_thread_start
    - worker_thread__wait_for_connection
    - thread_block_sigpipe
    - worker_thread__do_io
    - trace2_data_string
    linkageType: ''
    returnType: void
    signature: void *worker_thread_proc(void *_worker_thread_data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:654,1
    - Dst: unix_ss_was_stolen
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:670,1
    - Dst: trace2_data_string
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:672,1
    - Dst: ipc_server_stop_async
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:675,1
    - Dst: accept
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:690,1
    - Dst: BUG
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:703,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - accept_thread_data
    argTypes:
    - struct ipc_accept_thread_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 706
    functionName: accept_thread__wait_for_connection
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - accept
    - ipc_server_stop_async
    - unix_ss_was_stolen
    - BUG
    - poll
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: "int accept_thread__wait_for_connection(\n\tstruct ipc_accept_thread_data
      *accept_thread_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace2_thread_start
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:724,1
    - Dst: thread_block_sigpipe
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:726,1
    - Dst: accept_thread__wait_for_connection
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:729,1
    - Dst: pthread_mutex_lock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:732,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:734,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:736,1
    - Dst: fifo_enqueue
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:744,1
    - Dst: pthread_cond_broadcast
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:745,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:747,1
    - Dst: trace2_thread_exit
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:750,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - _accept_thread_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 752
    functionName: accept_thread_proc
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_cond_broadcast
    - trace2_thread_exit
    - accept_thread__wait_for_connection
    - pthread_mutex_unlock
    - close
    - trace2_thread_start
    - fifo_enqueue
    - thread_block_sigpipe
    linkageType: ''
    returnType: void
    signature: void *accept_thread_proc(void *_accept_thread_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unix_ss_create
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:790,1
    - Dst: set_socket_blocking_flag
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:794,1
    - Dst: unix_ss_free
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:796,1
    - Dst: trace2_data_string
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - path
    - ipc_opts
    - new_server_socket
    argTypes:
    - char*
    - struct ipc_server_opts*
    - struct unix_ss_socket**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 778
    functionDepth: 8
    functionLinenumber: 778
    functionLinenumberEnd: 805
    functionName: create_listener_socket
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - set_socket_blocking_flag
    - unix_ss_free
    - unix_ss_create
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: "int create_listener_socket(\n\tconst char *path,\n\tconst struct ipc_server_opts
      *ipc_opts,\n\tstruct unix_ss_socket **new_server_socket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:814,1
    - Dst: create_listener_socket
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:816,1
    - Dst: trace2_region_leave
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - path
    - ipc_opts
    - new_server_socket
    argTypes:
    - char*
    - struct ipc_server_opts*
    - struct unix_ss_socket**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 807
    functionDepth: 9
    functionLinenumber: 807
    functionLinenumberEnd: 823
    functionName: setup_listener_socket
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 0
    functionsReached:
    - trace2_region_leave
    - create_listener_socket
    - trace2_region_enter
    linkageType: ''
    returnType: int
    signature: "int setup_listener_socket(\n\tconst char *path,\n\tconst struct ipc_server_opts
      *ipc_opts,\n\tstruct unix_ss_socket **new_server_socket)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:848,1
    - Dst: set_socket_blocking_flag
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:851,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:853,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:854,1
    - Dst: setup_listener_socket
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:859,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:862,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:863,1
    - Dst: xcalloc
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:868,1
    - Dst: strbuf_init
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:872,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:873,1
    - Dst: pthread_mutex_init
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:878,1
    - Dst: pthread_cond_init
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:879,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:882,1
    - Dst: xcalloc
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:885,1
    - Dst: pthread_mutex_lock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:896,1
    - Dst: pthread_create
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:898,1
    - Dst: die_errno
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:900,1
    - Dst: _
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:900,1
    - Dst: xcalloc
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:905,1
    - Dst: pthread_create
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:909,1
    - Dst: die
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:912,1
    - Dst: _
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:912,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 5
    argNames:
    - returned_server_data
    - path
    - opts
    - application_cb
    - application_data
    argTypes:
    - struct ipc_server_data**
    - char*
    - struct ipc_server_opts*
    - ipc_server_application_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 828
    functionDepth: 10
    functionLinenumber: 828
    functionLinenumberEnd: 926
    functionName: ipc_server_init_async
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_init
    - die
    - pthread_mutex_lock
    - pthread_cond_init
    - pthread_create
    - CALLOC_ARRAY
    - die_errno
    - set_socket_blocking_flag
    - setup_listener_socket
    - xcalloc
    - strbuf_addstr
    - close
    - socketpair
    - strbuf_init
    - _
    linkageType: ''
    returnType: int
    signature: "int ipc_server_init_async(struct ipc_server_data **returned_server_data,\n\t\t\t
      \ const char *path, const struct ipc_server_opts *opts,\n\t\t\t  ipc_server_application_cb
      *application_cb,\n\t\t\t  void *application_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - server_data
    argTypes:
    - struct ipc_server_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 935
    functionName: ipc_server_start_async
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void ipc_server_start_async(struct ipc_server_data *server_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:950,1
    - Dst: pthread_mutex_lock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:954,1
    - Dst: write
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:962,1
    - Dst: error_errno
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:963,1
    - Dst: fifo_dequeue
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:968,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:969,1
    - Dst: pthread_cond_broadcast
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:975,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:977,1
    - Dst: trace2_region_leave
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - server_data
    argTypes:
    - struct ipc_server_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 982
    functionName: ipc_server_stop_async
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 3
    functionsReached:
    - fifo_dequeue
    - error_errno
    - pthread_mutex_lock
    - pthread_cond_broadcast
    - write
    - trace2_region_leave
    - trace2_region_enter
    - pthread_mutex_unlock
    - close
    linkageType: ''
    returnType: int
    signature: int ipc_server_stop_async(struct ipc_server_data *server_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:989,1
    - Dst: BUG
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:992,1
    - Dst: pthread_join
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:999,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1002,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - server_data
    argTypes:
    - struct ipc_server_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 1008
    functionName: ipc_server_await
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 1
    functionsReached:
    - BUG
    - pthread_join
    - free
    linkageType: ''
    returnType: int
    signature: int ipc_server_await(struct ipc_server_data *server_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1018,1
    - Dst: unix_ss_free
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1023,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1026,1
    - Dst: close
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1028,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1030,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1038,1
    - Dst: pthread_cond_destroy
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1041,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1042,1
    - Dst: strbuf_release
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1044,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1046,1
    - Dst: free
      Src: /src/git/compat/simple-ipc/ipc-unix-socket.c:1047,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - server_data
    argTypes:
    - struct ipc_server_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1048
    functionName: ipc_server_free
    functionSourceFile: /src/git/compat/simple-ipc/ipc-unix-socket.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - pthread_cond_destroy
    - unix_ss_free
    - pthread_mutex_destroy
    - free
    - close
    - BUG
    linkageType: ''
    returnType: void
    signature: void ipc_server_free(struct ipc_server_data *server_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: IsConsoleHandle
    functionSourceFile: /src/git/compat/poll/poll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsConsoleHandle(h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsConsoleHandle
      Src: /src/git/compat/poll/poll.c:90,1
    - Dst: WSAEnumNetworkEvents
      Src: /src/git/compat/poll/poll.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: IsSocketHandle
    functionSourceFile: /src/git/compat/poll/poll.c
    functionUses: 0
    functionsReached:
    - WSAEnumNetworkEvents
    - IsConsoleHandle
    linkageType: ''
    returnType: BOOL
    signature: BOOL IsSocketHandle (HANDLE h)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: GetFileType
      Src: /src/git/compat/poll/poll.c:145,1
    - Dst: PeekNamedPipe
      Src: /src/git/compat/poll/poll.c:149,1
    - Dst: GetLastError
      Src: /src/git/compat/poll/poll.c:154,1
    - Dst: WaitForSingleObject
      Src: /src/git/compat/poll/poll.c:167,1
    - Dst: IsConsoleHandle
      Src: /src/git/compat/poll/poll.c:168,1
    - Dst: GetNumberOfConsoleInputEvents
      Src: /src/git/compat/poll/poll.c:172,1
    - Dst: alloca
      Src: /src/git/compat/poll/poll.c:182,1
    - Dst: PeekConsoleInput
      Src: /src/git/compat/poll/poll.c:183,1
    - Dst: WaitForSingleObject
      Src: /src/git/compat/poll/poll.c:200,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - h
    - p_sought
    argTypes:
    - HANDLE
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 206
    functionName: win32_compute_revents
    functionSourceFile: /src/git/compat/poll/poll.c
    functionUses: 0
    functionsReached:
    - PeekConsoleInput
    - PeekNamedPipe
    - GetLastError
    - GetFileType
    - GetNumberOfConsoleInputEvents
    - WaitForSingleObject
    - alloca
    - IsConsoleHandle
    linkageType: ''
    returnType: int
    signature: int win32_compute_revents (HANDLE h, int *p_sought)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WSASetLastError
      Src: /src/git/compat/poll/poll.c:223,1
    - Dst: recv
      Src: /src/git/compat/poll/poll.c:224,1
    - Dst: WSAGetLastError
      Src: /src/git/compat/poll/poll.c:225,1
    - Dst: WSASetLastError
      Src: /src/git/compat/poll/poll.c:226,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 3
    argNames:
    - h
    - sought
    - lNetworkEvents
    argTypes:
    - SOCKET
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 247
    functionName: win32_compute_revents_socket
    functionSourceFile: /src/git/compat/poll/poll.c
    functionUses: 0
    functionsReached:
    - WSASetLastError
    - recv
    - WSAGetLastError
    linkageType: ''
    returnType: int
    signature: int win32_compute_revents_socket (SOCKET h, int sought, long lNetworkEvents)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FD_ISSET
      Src: /src/git/compat/poll/poll.c:256,1
    - Dst: recv
      Src: /src/git/compat/poll/poll.c:266,1
    - Dst: ioctl
      Src: /src/git/compat/poll/poll.c:269,1
    - Dst: recv
      Src: /src/git/compat/poll/poll.c:272,1
    - Dst: FD_ISSET
      Src: /src/git/compat/poll/poll.c:296,1
    - Dst: FD_ISSET
      Src: /src/git/compat/poll/poll.c:299,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 5
    argNames:
    - fd
    - sought
    - rfds
    - wfds
    - efds
    argTypes:
    - int
    - int
    - fd_set*
    - fd_set*
    - fd_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 303
    functionName: compute_revents
    functionSourceFile: /src/git/compat/poll/poll.c
    functionUses: 0
    functionsReached:
    - ioctl
    - FD_ISSET
    - recv
    linkageType: ''
    returnType: int
    signature: int compute_revents (int fd, int sought, fd_set *rfds, fd_set *wfds,
      fd_set *efds)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/git/compat/poll/poll.c:322,1
    - Dst: FD_ZERO
      Src: /src/git/compat/poll/poll.c:369,1
    - Dst: FD_ZERO
      Src: /src/git/compat/poll/poll.c:370,1
    - Dst: FD_ZERO
      Src: /src/git/compat/poll/poll.c:371,1
    - Dst: FD_SET
      Src: /src/git/compat/poll/poll.c:378,1
    - Dst: FD_SET
      Src: /src/git/compat/poll/poll.c:384,1
    - Dst: FD_SET
      Src: /src/git/compat/poll/poll.c:386,1
    - Dst: select
      Src: /src/git/compat/poll/poll.c:402,1
    - Dst: compute_revents
      Src: /src/git/compat/poll/poll.c:413,1
    - Dst: GetTickCount64
      Src: /src/git/compat/poll/poll.c:449,1
    - Dst: CreateEvent
      Src: /src/git/compat/poll/poll.c:453,1
    - Dst: FD_ZERO
      Src: /src/git/compat/poll/poll.c:458,1
    - Dst: FD_ZERO
      Src: /src/git/compat/poll/poll.c:459,1
    - Dst: FD_ZERO
      Src: /src/git/compat/poll/poll.c:460,1
    - Dst: _get_osfhandle
      Src: /src/git/compat/poll/poll.c:473,1
    - Dst: assert
      Src: /src/git/compat/poll/poll.c:474,1
    - Dst: IsSocketHandle
      Src: /src/git/compat/poll/poll.c:475,1
    - Dst: FD_SET
      Src: /src/git/compat/poll/poll.c:483,1
    - Dst: FD_SET
      Src: /src/git/compat/poll/poll.c:488,1
    - Dst: FD_SET
      Src: /src/git/compat/poll/poll.c:493,1
    - Dst: WSAEventSelect
      Src: /src/git/compat/poll/poll.c:497,1
    - Dst: win32_compute_revents
      Src: /src/git/compat/poll/poll.c:505,1
    - Dst: select
      Src: /src/git/compat/poll/poll.c:513,1
    - Dst: MsgWaitForMultipleObjects
      Src: /src/git/compat/poll/poll.c:531,1
    - Dst: PeekMessage
      Src: /src/git/compat/poll/poll.c:538,1
    - Dst: TranslateMessage
      Src: /src/git/compat/poll/poll.c:540,1
    - Dst: DispatchMessage
      Src: /src/git/compat/poll/poll.c:541,1
    - Dst: select
      Src: /src/git/compat/poll/poll.c:549,1
    - Dst: _get_osfhandle
      Src: /src/git/compat/poll/poll.c:564,1
    - Dst: WSAEnumNetworkEvents
      Src: /src/git/compat/poll/poll.c:568,1
    - Dst: WSAEventSelect
      Src: /src/git/compat/poll/poll.c:569,1
    - Dst: FD_ISSET
      Src: /src/git/compat/poll/poll.c:573,1
    - Dst: FD_ISSET
      Src: /src/git/compat/poll/poll.c:576,1
    - Dst: FD_ISSET
      Src: /src/git/compat/poll/poll.c:578,1
    - Dst: win32_compute_revents_socket
      Src: /src/git/compat/poll/poll.c:581,1
    - Dst: win32_compute_revents
      Src: /src/git/compat/poll/poll.c:588,1
    - Dst: GetTickCount64
      Src: /src/git/compat/poll/poll.c:598,1
    - Dst: SleepEx
      Src: /src/git/compat/poll/poll.c:604,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 167
    argCount: 3
    argNames:
    - pfd
    - nfd
    - timeout
    argTypes:
    - struct pollfd*
    - nfds_t
    - int
    assertStmts:
    - condition: (h != NULL)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/git/compat/poll/poll.c
    constantsTouched: []
    func_position:
      end: 610
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 610
    functionName: poll
    functionSourceFile: /src/git/compat/poll/poll.c
    functionUses: 11
    functionsReached:
    - FD_SET
    - GetTickCount64
    - win32_compute_revents_socket
    - _get_osfhandle
    - win32_compute_revents
    - TranslateMessage
    - IsSocketHandle
    - MsgWaitForMultipleObjects
    - PeekMessage
    - FD_ISSET
    - SleepEx
    - FD_ZERO
    - CreateEvent
    - compute_revents
    - DispatchMessage
    - WSAEventSelect
    - assert
    - sysconf
    - WSAEnumNetworkEvents
    - select
    linkageType: ''
    returnType: int
    signature: int poll (struct pollfd *pfd, nfds_t nfd, int timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/compat/fsmonitor/fsm-ipc-win32.c:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 8
    functionLinenumber: 6
    functionLinenumberEnd: 11
    functionName: fsmonitor_ipc__get_path
    functionSourceFile: /src/git/compat/fsmonitor/fsm-ipc-win32.c
    functionUses: 4
    functionsReached:
    - repo_git_path
    linkageType: ''
    returnType: char
    signature: char *fsmonitor_ipc__get_path(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:17,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:21,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:21,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:22,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:26,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:28,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:28,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:29,1
    - Dst: CloseHandle
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:30,1
    - Dst: CloseHandle
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:34,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - wpath
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 41
    functionName: check_remote_protocol
    functionSourceFile: /src/git/compat/fsmonitor/fsm-path-utils-win32.c
    functionUses: 0
    functionsReached:
    - error
    - CreateFileW
    - GetLastError
    - trace_printf_key
    - GetFileInformationByHandleEx
    - CloseHandle
    - _
    linkageType: ''
    returnType: int
    signature: int check_remote_protocol(wchar_t *wpath)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:81,1
    - Dst: wcslen
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:89,1
    - Dst: GetFullPathNameW
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:100,1
    - Dst: GetDriveTypeW
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:104,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:105,1
    - Dst: check_remote_protocol
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:111,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - path
    - fs_info
    argTypes:
    - char*
    - struct fs_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 122
    functionName: fsmonitor__get_fs_info
    functionSourceFile: /src/git/compat/fsmonitor/fsm-path-utils-win32.c
    functionUses: 0
    functionsReached:
    - wcslen
    - GetFullPathNameW
    - trace_printf_key
    - xutftowcs_path
    - check_remote_protocol
    - GetDriveTypeW
    linkageType: ''
    returnType: int
    signature: int fsmonitor__get_fs_info(const char *path, struct fs_info *fs_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor__get_fs_info
      Src: /src/git/compat/fsmonitor/fsm-path-utils-win32.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: fsmonitor__is_fs_remote
    functionSourceFile: /src/git/compat/fsmonitor/fsm-path-utils-win32.c
    functionUses: 1
    functionsReached:
    - fsmonitor__get_fs_info
    linkageType: ''
    returnType: int
    signature: int fsmonitor__is_fs_remote(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - struct alias_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: fsmonitor__get_alias
    functionSourceFile: /src/git/compat/fsmonitor/fsm-path-utils-win32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fsmonitor__get_alias(const char *path UNUSED,\n\t\t\t struct alias_info
      *info UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - struct alias_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: fsmonitor__resolve_alias
    functionSourceFile: /src/git/compat/fsmonitor/fsm-path-utils-win32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *fsmonitor__resolve_alias(const char *path UNUSED,\n\t\t\t       const
      struct alias_info *info UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 10
    functionName: fsm_health__ctor
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fsm_health__ctor(struct fsmonitor_daemon_state *state UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: fsm_health__dtor
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsm_health__dtor(struct fsmonitor_daemon_state *state UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: fsm_health__loop
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsm_health__loop(struct fsmonitor_daemon_state *state UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: fsm_health__stop_async
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsm_health__stop_async(struct fsmonitor_daemon_state *state UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:85,1
    - Dst: strbuf_grow
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:96,1
    - Dst: WideCharToMultiByte
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:99,1
    - Dst: strbuf_avail
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:102,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:106,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:107,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:107,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:108,1
    - Dst: strbuf_grow
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:112,1
    - Dst: strbuf_avail
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:113,1
    - Dst: strbuf_setlen
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:117,1
    - Dst: strbuf_normalize_path
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - wpath
    - wpath_len
    - normalized_path
    argTypes:
    - wchar_t*
    - DWORD
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 119
    functionName: normalize_path_in_utf8
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_normalize_path
    - strbuf_avail
    - WideCharToMultiByte
    - strbuf_reset
    - GetLastError
    - strbuf_setlen
    - strbuf_grow
    - _
    linkageType: ''
    returnType: int
    signature: "int normalize_path_in_utf8(wchar_t *wpath, DWORD wpath_len,\n\t\t\t\t
      \ struct strbuf *normalized_path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: swprintf
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:140,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:140,1
    - Dst: GetShortPathNameW
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:143,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:143,1
    - Dst: wcscmp
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:154,1
    - Dst: wcsncpy
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:158,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:159,1
    - Dst: wcschr
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - watch
    argTypes:
    - struct one_watch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 175
    functionName: check_for_shortnames
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - swprintf
    - wcsncpy
    - wcscmp
    - wcschr
    - GetShortPathNameW
    linkageType: ''
    returnType: void
    signature: void check_for_shortnames(struct one_watch *watch)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:211,1
    - Dst: wcsncpy
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:219,1
    - Dst: wcsncpy
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:220,1
    - Dst: GetLongPathNameW
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:228,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:228,1
    - Dst: wcscmp
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:252,1
    - Dst: wcsncmp
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:259,1
    - Dst: wcscpy
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - watch
    - wpath
    - wpath_len
    - wpath_longname
    - bufsize_wpath_longname
    argTypes:
    - struct one_watch*
    - wchar_t*
    - DWORD
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 286
    functionName: get_relative_longname
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - wcsncpy
    - wcscmp
    - wcscpy
    - GetLongPathNameW
    - wcsncmp
    linkageType: ''
    returnType: enum get_relative_result
    signature: "enum get_relative_result get_relative_longname(\n\tstruct one_watch
      *watch,\n\tconst wchar_t *wpath, DWORD wpath_len,\n\twchar_t *wpath_longname,
      size_t bufsize_wpath_longname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetEvent
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: fsm_listen__stop_async
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - SetEvent
    linkageType: ''
    returnType: void
    signature: void fsm_listen__stop_async(struct fsmonitor_daemon_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:304,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:305,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:305,1
    - Dst: CreateFileW
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:309,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:314,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:314,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:315,1
    - Dst: GetLongPathNameW
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:319,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:320,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:322,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:322,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:323,1
    - Dst: CloseHandle
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:324,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:334,1
    - Dst: strbuf_init
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:338,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:339,1
    - Dst: wcscpy
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:341,1
    - Dst: CreateEvent
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 293
    functionDepth: 4
    functionLinenumber: 293
    functionLinenumberEnd: 348
    functionName: create_watch
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - error
    - ARRAY_SIZE
    - CreateFileW
    - GetLastError
    - xutftowcs_path
    - CreateEvent
    - wcscpy
    - CloseHandle
    - GetLongPathNameW
    - _
    - CALLOC_ARRAY
    - strbuf_addstr
    - strbuf_init
    linkageType: ''
    returnType: struct one_watch
    signature: struct one_watch *create_watch(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:355,1
    - Dst: CloseHandle
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:357,1
    - Dst: CloseHandle
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:359,1
    - Dst: free
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - watch
    argTypes:
    - struct one_watch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 362
    functionName: destroy_watch
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - CloseHandle
    - free
    linkageType: ''
    returnType: void
    signature: void destroy_watch(struct one_watch *watch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResetEvent
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:374,1
    - Dst: memset
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:376,1
    - Dst: ReadDirectoryChangesW
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:386,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:393,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:393,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - watch
    argTypes:
    - struct one_watch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 396
    functionName: start_rdcw_watch
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - error
    - memset
    - GetLastError
    - ResetEvent
    - _
    - ReadDirectoryChangesW
    linkageType: ''
    returnType: int
    signature: int start_rdcw_watch(struct one_watch *watch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetOverlappedResult
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:408,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:412,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:446,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - watch
    argTypes:
    - struct one_watch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 449
    functionName: recv_rdcw_watch
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - error
    - GetLastError
    - _
    - GetOverlappedResult
    linkageType: ''
    returnType: int
    signature: int recv_rdcw_watch(struct one_watch *watch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CancelIoEx
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:471,1
    - Dst: GetOverlappedResult
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - watch
    argTypes:
    - struct one_watch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 474
    functionName: cancel_rdcw_watch
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - CancelIoEx
    - GetOverlappedResult
    linkageType: ''
    returnType: void
    signature: void cancel_rdcw_watch(struct one_watch *watch)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: find_last_dir_sep
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:494,1
    - Dst: string_list_append
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:495,1
    - Dst: trace2_data_string
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:507,1
    - Dst: fsmonitor_batch__new
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:517,1
    - Dst: fsmonitor_batch__add_path
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:518,1
    - Dst: BUG
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:525,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - cookie_list
    - batch
    - path
    - t
    - info_action
    argTypes:
    - struct string_list*
    - struct fsmonitor_batch**
    - struct strbuf*
    - enum fsmonitor_path_type
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 530
    functionName: process_1_worktree_event
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - fsmonitor_batch__new
    - find_last_dir_sep
    - string_list_append
    - BUG
    - fsmonitor_batch__add_path
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: "int process_1_worktree_event(\n\tstruct string_list *cookie_list,\n\tstruct
      fsmonitor_batch **batch,\n\tconst struct strbuf *path,\n\tenum fsmonitor_path_type
      t,\n\tDWORD info_action)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: trace2_data_string
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:568,1
    - Dst: fsmonitor_force_resync
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:570,1
    - Dst: wcscmp
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:587,1
    - Dst: strbuf_reset
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:598,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:599,1
    - Dst: wcschr
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:604,1
    - Dst: get_relative_longname
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:613,1
    - Dst: ARRAY_SIZE
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:615,1
    - Dst: wcslen
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:621,1
    - Dst: normalize_path_in_utf8
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:630,1
    - Dst: fsmonitor_classify_path_workdir_relative
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:633,1
    - Dst: process_1_worktree_event
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:636,1
    - Dst: fsmonitor_publish
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:646,1
    - Dst: string_list_clear
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:648,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:649,1
    - Dst: fsmonitor_batch__free_list
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:653,1
    - Dst: string_list_clear
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:654,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:655,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 540
    functionDepth: 5
    functionLinenumber: 540
    functionLinenumberEnd: 657
    functionName: process_worktree_events
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - normalize_path_in_utf8
    - ARRAY_SIZE
    - wcslen
    - fsmonitor_classify_path_workdir_relative
    - string_list_clear
    - strbuf_release
    - strbuf_reset
    - wcscmp
    - process_1_worktree_event
    - fsmonitor_publish
    - fsmonitor_batch__free_list
    - strbuf_addstr
    - get_relative_longname
    - wcschr
    - fsmonitor_force_resync
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: int process_worktree_events(struct fsmonitor_daemon_state *state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: trace2_data_string
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:680,1
    - Dst: fsmonitor_force_resync
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:682,1
    - Dst: normalize_path_in_utf8
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:691,1
    - Dst: fsmonitor_classify_path_gitdir_relative
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:697,1
    - Dst: find_last_dir_sep
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:704,1
    - Dst: string_list_append
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:705,1
    - Dst: BUG
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:713,1
    - Dst: fsmonitor_publish
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:723,1
    - Dst: string_list_clear
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:724,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:725,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 671
    functionDepth: 5
    functionLinenumber: 671
    functionLinenumberEnd: 727
    functionName: process_gitdir_events
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - fsmonitor_force_resync
    - string_list_clear
    - strbuf_release
    - fsmonitor_publish
    - find_last_dir_sep
    - string_list_append
    - normalize_path_in_utf8
    - BUG
    - fsmonitor_classify_path_gitdir_relative
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: int process_gitdir_events(struct fsmonitor_daemon_state *state)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: start_rdcw_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:737,1
    - Dst: start_rdcw_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:741,1
    - Dst: ipc_server_start_async
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:748,1
    - Dst: WaitForMultipleObjects
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:751,1
    - Dst: recv_rdcw_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:756,1
    - Dst: start_rdcw_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:763,1
    - Dst: process_worktree_events
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:769,1
    - Dst: start_rdcw_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:771,1
    - Dst: recv_rdcw_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:777,1
    - Dst: start_rdcw_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:784,1
    - Dst: process_gitdir_events
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:790,1
    - Dst: start_rdcw_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:792,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:800,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:800,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:801,1
    - Dst: ipc_server_stop_async
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:814,1
    - Dst: cancel_rdcw_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:817,1
    - Dst: cancel_rdcw_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:818,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 68
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 729
    functionDepth: 6
    functionLinenumber: 729
    functionLinenumberEnd: 819
    functionName: fsm_listen__loop
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - error
    - WaitForMultipleObjects
    - ipc_server_start_async
    - GetLastError
    - start_rdcw_watch
    - recv_rdcw_watch
    - cancel_rdcw_watch
    - ipc_server_stop_async
    - process_gitdir_events
    - process_worktree_events
    - _
    linkageType: ''
    returnType: void
    signature: void fsm_listen__loop(struct fsmonitor_daemon_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:825,1
    - Dst: CreateEvent
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:827,1
    - Dst: create_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:829,1
    - Dst: check_for_shortnames
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:833,1
    - Dst: create_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:836,1
    - Dst: CloseHandle
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:858,1
    - Dst: destroy_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:859,1
    - Dst: destroy_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 821
    functionDepth: 5
    functionLinenumber: 821
    functionLinenumberEnd: 863
    functionName: fsm_listen__ctor
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - check_for_shortnames
    - CreateEvent
    - create_watch
    - CloseHandle
    - CALLOC_ARRAY
    - destroy_watch
    linkageType: ''
    returnType: int
    signature: int fsm_listen__ctor(struct fsmonitor_daemon_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:874,1
    - Dst: destroy_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:875,1
    - Dst: destroy_watch
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:876,1
    - Dst: FREE_AND_NULL
      Src: /src/git/compat/fsmonitor/fsm-listen-win32.c:878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 865
    functionDepth: 4
    functionLinenumber: 865
    functionLinenumberEnd: 879
    functionName: fsm_listen__dtor
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-win32.c
    functionUses: 0
    functionsReached:
    - destroy_watch
    - FREE_AND_NULL
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void fsm_listen__dtor(struct fsmonitor_daemon_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:25,1
    - Dst: fsmonitor__is_fs_remote
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:32,1
    - Dst: fsmonitor_ipc__get_default_path
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:33,1
    - Dst: git_SHA1_Init
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:37,1
    - Dst: git_SHA1_Update
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:38,1
    - Dst: strlen
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:38,1
    - Dst: git_SHA1_Final
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:39,1
    - Dst: repo_config_get_string
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:41,1
    - Dst: strbuf_addf
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:45,1
    - Dst: hash_to_hex_algop
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:46,1
    - Dst: strbuf_addf
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:48,1
    - Dst: hash_to_hex_algop
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:49,1
    - Dst: free
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:51,1
    - Dst: interpolate_path
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:53,1
    - Dst: die
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:55,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:55,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-ipc-darwin.c:57,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 16
    functionDepth: 19
    functionLinenumber: 16
    functionLinenumberEnd: 59
    functionName: fsmonitor_ipc__get_path
    functionSourceFile: /src/git/compat/fsmonitor/fsm-ipc-darwin.c
    functionUses: 4
    functionsReached:
    - interpolate_path
    - strbuf_release
    - die
    - strbuf_addf
    - _
    - repo_config_get_string
    - git_SHA1_Init
    - fsmonitor__is_fs_remote
    - strlen
    - free
    - fsmonitor_ipc__get_default_path
    - hash_to_hex_algop
    - git_SHA1_Update
    - BUG
    - git_SHA1_Final
    linkageType: ''
    returnType: char
    signature: char *fsmonitor_ipc__get_path(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: statfs
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:15,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:17,1
    - Dst: strerror
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:18,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:23,1
    - Dst: xstrdup
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:32,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - path
    - fs_info
    argTypes:
    - char*
    - struct fs_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 38
    functionName: fsmonitor__get_fs_info
    functionSourceFile: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c
    functionUses: 1
    functionsReached:
    - strerror
    - trace_printf_key
    - statfs
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int fsmonitor__get_fs_info(const char *path, struct fs_info *fs_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor__get_fs_info
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:43,1
    - Dst: free
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: fsmonitor__is_fs_remote
    functionSourceFile: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c
    functionUses: 2
    functionsReached:
    - fsmonitor__get_fs_info
    - free
    linkageType: ''
    returnType: int
    signature: int fsmonitor__is_fs_remote(const char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:77,1
    - Dst: error_errno
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:79,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:79,1
    - Dst: strbuf_init
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:81,1
    - Dst: readdir
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:83,1
    - Dst: strbuf_reset
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:84,1
    - Dst: strbuf_addf
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:85,1
    - Dst: lstat
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:87,1
    - Dst: error_errno
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:88,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:88,1
    - Dst: S_ISLNK
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:92,1
    - Dst: strbuf_readlink
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:95,1
    - Dst: error_errno
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:96,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:96,1
    - Dst: strncmp
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:100,1
    - Dst: strbuf_addbuf
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:102,1
    - Dst: strbuf_addbuf
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:103,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:104,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:114,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:115,1
    - Dst: closedir
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:116,1
    - Dst: error_errno
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:117,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:117,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - path
    - info
    argTypes:
    - char*
    - struct alias_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 119
    functionName: fsmonitor__get_alias
    functionSourceFile: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - strbuf_init
    - strbuf_reset
    - S_ISLNK
    - strbuf_addf
    - strbuf_readlink
    - trace_printf_key
    - opendir
    - strbuf_addbuf
    - _
    - strncmp
    - closedir
    - lstat
    - readdir
    linkageType: ''
    returnType: int
    signature: int fsmonitor__get_alias(const char *path, struct alias_info *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:127,1
    - Dst: strbuf_addbuf
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:132,1
    - Dst: strbuf_add
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:133,1
    - Dst: strlen
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:133,1
    - Dst: strbuf_detach
      Src: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - path
    - info
    argTypes:
    - char*
    - struct alias_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: fsmonitor__resolve_alias
    functionSourceFile: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c
    functionUses: 0
    functionsReached:
    - strbuf_addbuf
    - strlen
    - strbuf_detach
    - strncmp
    - strbuf_add
    linkageType: ''
    returnType: char
    signature: "char *fsmonitor__resolve_alias(const char *path,\n\tconst struct alias_info
      *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:55,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:58,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:58,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:59,1
    - Dst: GetFileInformationByHandle
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:63,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:64,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:64,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:65,1
    - Dst: CloseHandle
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:66,1
    - Dst: CloseHandle
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - wpath
    - bhfi
    argTypes:
    - wchar_t*
    - BY_HANDLE_FILE_INFORMATION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 72
    functionName: lookup_bhfi
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-win32.c
    functionUses: 0
    functionsReached:
    - GetFileInformationByHandle
    - error
    - CreateFileW
    - GetLastError
    - CloseHandle
    - _
    linkageType: ''
    returnType: int
    signature: "int lookup_bhfi(wchar_t *wpath,\n\t\t       BY_HANDLE_FILE_INFORMATION
      *bhfi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - bhfi_1
    - bhfi_2
    argTypes:
    - BY_HANDLE_FILE_INFORMATION*
    - BY_HANDLE_FILE_INFORMATION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: bhfi_eq
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-win32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int bhfi_eq(const BY_HANDLE_FILE_INFORMATION *bhfi_1,\n\t\t   const
      BY_HANDLE_FILE_INFORMATION *bhfi_2)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xutftowcs_path
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:146,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:148,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:148,1
    - Dst: lookup_bhfi
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:157,1
    - Dst: lookup_bhfi
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:160,1
    - Dst: bhfi_eq
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:163,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:164,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:164,1
    - Dst: die
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:170,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - state
    - ctx
    argTypes:
    - struct fsmonitor_daemon_state*
    - enum interval_fn_ctx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 175
    functionName: has_worktree_moved
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-win32.c
    functionUses: 0
    functionsReached:
    - error
    - die
    - xutftowcs_path
    - lookup_bhfi
    - _
    - bhfi_eq
    linkageType: ''
    returnType: int
    signature: "int has_worktree_moved(struct fsmonitor_daemon_state *state,\n\t\t\t
      \     enum interval_fn_ctx ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:182,1
    - Dst: CreateEvent
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 191
    functionName: fsm_health__ctor
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-win32.c
    functionUses: 0
    functionsReached:
    - CreateEvent
    - CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: int fsm_health__ctor(struct fsmonitor_daemon_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:202,1
    - Dst: FREE_AND_NULL
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 205
    functionName: fsm_health__dtor
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-win32.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void fsm_health__dtor(struct fsmonitor_daemon_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - state
    - ctx
    argTypes:
    - struct fsmonitor_daemon_state*
    - enum interval_fn_ctx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: call_all
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-win32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int call_all(struct fsmonitor_daemon_state *state,\n\t\t    enum interval_fn_ctx
      ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: call_all
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:240,1
    - Dst: WaitForMultipleObjects
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:247,1
    - Dst: call_all
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:255,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:263,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:263,1
    - Dst: GetLastError
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:264,1
    - Dst: ipc_server_stop_async
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:271,1
    - Dst: call_all
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:273,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 275
    functionName: fsm_health__loop
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-win32.c
    functionUses: 0
    functionsReached:
    - error
    - WaitForMultipleObjects
    - GetLastError
    - call_all
    - ipc_server_stop_async
    - _
    linkageType: ''
    returnType: void
    signature: void fsm_health__loop(struct fsmonitor_daemon_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetEvent
      Src: /src/git/compat/fsmonitor/fsm-health-win32.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: fsm_health__stop_async
    functionSourceFile: /src/git/compat/fsmonitor/fsm-health-win32.c
    functionUses: 0
    functionsReached:
    - SetEvent
    linkageType: ''
    returnType: void
    signature: void fsm_health__stop_async(struct fsmonitor_daemon_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_value
      Src: /src/git/compat/fsmonitor/fsm-settings-win32.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 19
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: check_vfs4git
    functionSourceFile: /src/git/compat/fsmonitor/fsm-settings-win32.c
    functionUses: 0
    functionsReached:
    - repo_config_get_value
    linkageType: ''
    returnType: enum fsmonitor_reason
    signature: enum fsmonitor_reason check_vfs4git(struct repository *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_vfs4git
      Src: /src/git/compat/fsmonitor/fsm-settings-win32.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - r
    - UNUSED
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 20
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: fsm_os__incompatible
    functionSourceFile: /src/git/compat/fsmonitor/fsm-settings-win32.c
    functionUses: 1
    functionsReached:
    - check_vfs4git
    linkageType: ''
    returnType: enum fsmonitor_reason
    signature: enum fsmonitor_reason fsm_os__incompatible(struct repository *r, int
      ipc UNUSED)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:65,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:67,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:69,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:71,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:73,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:75,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:77,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:79,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:81,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:83,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:85,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:87,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:89,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:91,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:93,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:95,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:97,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:99,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:101,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:103,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:105,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:107,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:109,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:111,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:114,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 2
    argNames:
    - path
    - flag
    argTypes:
    - char*
    - FSEventStreamEventFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 115
    functionName: log_flags_set
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - trace_printf_key
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void log_flags_set(const char *path, const FSEventStreamEventFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ef
    argTypes:
    - FSEventStreamEventFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: ef_is_root_changed
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ef_is_root_changed(const FSEventStreamEventFlags ef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ef
    argTypes:
    - FSEventStreamEventFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: ef_is_root_delete
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ef_is_root_delete(const FSEventStreamEventFlags ef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ef
    argTypes:
    - FSEventStreamEventFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: ef_is_root_renamed
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ef_is_root_renamed(const FSEventStreamEventFlags ef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ef
    argTypes:
    - FSEventStreamEventFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: ef_is_dropped
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ef_is_dropped(const FSEventStreamEventFlags ef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ef
    argTypes:
    - FSEventStreamEventFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 164
    functionName: ef_ignore_xattr
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ef_ignore_xattr(const FSEventStreamEventFlags ef)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor_batch__add_path
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:183,1
    - Dst: precompose_string_if_needed
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:186,1
    - Dst: fsmonitor_batch__add_path
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:190,1
    - Dst: free
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - batch
    - path
    argTypes:
    - struct fsmonitor_batch*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: my_add_path
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached:
    - precompose_string_if_needed
    - fsmonitor_batch__add_path
    - free
    linkageType: ''
    returnType: void
    signature: void my_add_path(struct fsmonitor_batch *batch, const char *path)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:220,1
    - Dst: fsmonitor__resolve_alias
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:221,1
    - Dst: ef_is_dropped
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:247,1
    - Dst: trace_pass_fl
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:248,1
    - Dst: log_flags_set
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:249,1
    - Dst: fsmonitor_force_resync
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:251,1
    - Dst: fsmonitor_batch__free_list
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:252,1
    - Dst: string_list_clear
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:253,1
    - Dst: ef_is_root_changed
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:266,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:281,1
    - Dst: ef_ignore_xattr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:286,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:287,1
    - Dst: fsmonitor_classify_path_absolute
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:293,1
    - Dst: find_last_dir_sep
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:300,1
    - Dst: string_list_append
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:301,1
    - Dst: ef_is_root_delete
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:316,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:317,1
    - Dst: ef_is_root_renamed
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:321,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:322,1
    - Dst: trace_pass_fl
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:331,1
    - Dst: log_flags_set
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:332,1
    - Dst: fsmonitor_batch__new
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:350,1
    - Dst: my_add_path
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:351,1
    - Dst: strbuf_reset
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:358,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:359,1
    - Dst: strbuf_addch
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:360,1
    - Dst: fsmonitor_batch__new
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:363,1
    - Dst: my_add_path
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:364,1
    - Dst: trace_printf_key
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:371,1
    - Dst: free
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:377,1
    - Dst: fsmonitor_publish
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:378,1
    - Dst: string_list_clear
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:379,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:380,1
    - Dst: free
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:384,1
    - Dst: fsmonitor_batch__free_list
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:385,1
    - Dst: string_list_clear
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:386,1
    - Dst: pthread_mutex_lock
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:388,1
    - Dst: pthread_cond_broadcast
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:390,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:391,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:393,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 86
    argCount: 6
    argNames:
    - streamRef
    - ctx
    - num_of_events
    - event_paths
    - event_flags
    - event_ids
    argTypes:
    - ConstFSEventStreamRef
    - void*
    - size_t
    - void*
    - FSEventStreamEventFlags[]
    - FSEventStreamEventId[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 195
    functionDepth: 5
    functionLinenumber: 195
    functionLinenumberEnd: 395
    functionName: fsevent_callback
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached:
    - fsmonitor__resolve_alias
    - log_flags_set
    - fsmonitor_classify_path_absolute
    - ef_is_root_delete
    - ef_is_dropped
    - pthread_mutex_unlock
    - free
    - strbuf_release
    - pthread_mutex_lock
    - pthread_cond_broadcast
    - trace_printf_key
    - fsmonitor_publish
    - fsmonitor_batch__free_list
    - ef_ignore_xattr
    - strbuf_addstr
    - my_add_path
    - string_list_clear
    - string_list_append
    - fsmonitor_force_resync
    - fsmonitor_batch__new
    - ef_is_root_changed
    - strbuf_reset
    - ef_is_root_renamed
    - strbuf_addch
    - find_last_dir_sep
    - trace_pass_fl
    linkageType: ''
    returnType: void
    signature: "void fsevent_callback(ConstFSEventStreamRef streamRef UNUSED,\n\t\t\t
      \    void *ctx,\n\t\t\t     size_t num_of_events,\n\t\t\t     void *event_paths,\n\t\t\t
      \    const FSEventStreamEventFlags event_flags[],\n\t\t\t     const FSEventStreamEventId
      event_ids[] UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:429,1
    - Dst: CFStringCreateWithCString
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:432,1
    - Dst: CFStringCreateWithCString
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:437,1
    - Dst: CFArrayCreate
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:443,1
    - Dst: FSEventStreamCreate
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:446,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:456,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:456,1
    - Dst: FREE_AND_NULL
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 460
    functionName: fsm_listen__ctor
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached:
    - error
    - CFStringCreateWithCString
    - FREE_AND_NULL
    - FSEventStreamCreate
    - CALLOC_ARRAY
    - CFArrayCreate
    - _
    linkageType: ''
    returnType: int
    signature: int fsm_listen__ctor(struct fsmonitor_daemon_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FSEventStreamStop
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:473,1
    - Dst: FSEventStreamInvalidate
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:475,1
    - Dst: FSEventStreamRelease
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:476,1
    - Dst: dispatch_release
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:480,1
    - Dst: pthread_cond_destroy
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:481,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:482,1
    - Dst: FREE_AND_NULL
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:484,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 485
    functionName: fsm_listen__dtor
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached:
    - FSEventStreamStop
    - pthread_cond_destroy
    - FSEventStreamInvalidate
    - dispatch_release
    - pthread_mutex_destroy
    - FSEventStreamRelease
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void fsm_listen__dtor(struct fsmonitor_daemon_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:493,1
    - Dst: pthread_cond_broadcast
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:495,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 497
    functionName: fsm_listen__stop_async
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - pthread_cond_broadcast
    linkageType: ''
    returnType: void
    signature: void fsm_listen__stop_async(struct fsmonitor_daemon_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:505,1
    - Dst: pthread_cond_init
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:506,1
    - Dst: dispatch_queue_create
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:507,1
    - Dst: FSEventStreamSetDispatchQueue
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:509,1
    - Dst: FSEventStreamStart
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:512,1
    - Dst: error
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:513,1
    - Dst: _
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:513,1
    - Dst: ipc_server_start_async
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:522,1
    - Dst: pthread_mutex_lock
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:524,1
    - Dst: pthread_cond_wait
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:525,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:526,1
    - Dst: ipc_server_stop_async
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:533,1
    - Dst: ipc_server_stop_async
      Src: /src/git/compat/fsmonitor/fsm-listen-darwin.c:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 545
    functionName: fsm_listen__loop
    functionSourceFile: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    functionUses: 0
    functionsReached:
    - error
    - pthread_mutex_init
    - ipc_server_start_async
    - pthread_mutex_lock
    - pthread_cond_init
    - ipc_server_stop_async
    - pthread_mutex_unlock
    - pthread_cond_wait
    - dispatch_queue_create
    - FSEventStreamSetDispatchQueue
    - FSEventStreamStart
    - _
    linkageType: ''
    returnType: void
    signature: void fsm_listen__loop(struct fsmonitor_daemon_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor_ipc__get_path
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:30,1
    - Dst: strbuf_add
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:32,1
    - Dst: strlen
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:32,1
    - Dst: fsmonitor__get_fs_info
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:34,1
    - Dst: dirname
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:34,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:35,1
    - Dst: strbuf_release
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:39,1
    - Dst: strcmp
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:42,1
    - Dst: strcmp
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:43,1
    - Dst: free
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:44,1
    - Dst: free
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: check_uds_volume
    functionSourceFile: /src/git/compat/fsmonitor/fsm-settings-darwin.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fsmonitor_ipc__get_path
    - fsmonitor__get_fs_info
    - strlen
    - strcmp
    - free
    - strbuf_add
    - dirname
    linkageType: ''
    returnType: enum fsmonitor_reason
    signature: enum fsmonitor_reason check_uds_volume(struct repository *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_uds_volume
      Src: /src/git/compat/fsmonitor/fsm-settings-darwin.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - r
    - ipc
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: fsm_os__incompatible
    functionSourceFile: /src/git/compat/fsmonitor/fsm-settings-darwin.c
    functionUses: 1
    functionsReached:
    - check_uds_volume
    linkageType: ''
    returnType: enum fsmonitor_reason
    signature: enum fsmonitor_reason fsm_os__incompatible(struct repository *r, int
      ipc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/compat/linux/procinfo.c:48,1
    - Dst: strrchr
      Src: /src/git/compat/linux/procinfo.c:49,1
    - Dst: strchr
      Src: /src/git/compat/linux/procinfo.c:68,1
    - Dst: strtol
      Src: /src/git/compat/linux/procinfo.c:72,1
    - Dst: strbuf_add
      Src: /src/git/compat/linux/procinfo.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - sb
    - name
    - statppid
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 90
    functionName: parse_proc_stat
    functionSourceFile: /src/git/compat/linux/procinfo.c
    functionUses: 0
    functionsReached:
    - strtol
    - strbuf_add
    - strchr
    - strrchr
    linkageType: ''
    returnType: int
    signature: "int parse_proc_stat(struct strbuf *sb, struct strbuf *name,\n\t\t\t
      \   int *statppid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/compat/linux/procinfo.c:100,1
    - Dst: fopen
      Src: /src/git/compat/linux/procinfo.c:101,1
    - Dst: strbuf_fread
      Src: /src/git/compat/linux/procinfo.c:114,1
    - Dst: parse_proc_stat
      Src: /src/git/compat/linux/procinfo.c:116,1
    - Dst: fclose
      Src: /src/git/compat/linux/procinfo.c:122,1
    - Dst: strbuf_release
      Src: /src/git/compat/linux/procinfo.c:123,1
    - Dst: strbuf_release
      Src: /src/git/compat/linux/procinfo.c:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - pid
    - name
    - statppid
    argTypes:
    - pid_t
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 127
    functionName: stat_parent_pid
    functionSourceFile: /src/git/compat/linux/procinfo.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - strbuf_addf
    - fopen
    - strbuf_fread
    - parse_proc_stat
    linkageType: ''
    returnType: int
    signature: int stat_parent_pid(pid_t pid, struct strbuf *name, int *statppid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat_parent_pid
      Src: /src/git/compat/linux/procinfo.c:134,1
    - Dst: strvec_push
      Src: /src/git/compat/linux/procinfo.c:137,1
    - Dst: push_ancestry_name
      Src: /src/git/compat/linux/procinfo.c:144,1
    - Dst: strbuf_release
      Src: /src/git/compat/linux/procinfo.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - names
    - pid
    argTypes:
    - struct strvec*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 149
    functionName: push_ancestry_name
    functionSourceFile: /src/git/compat/linux/procinfo.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - stat_parent_pid
    - strbuf_release
    - push_ancestry_name
    linkageType: ''
    returnType: void
    signature: void push_ancestry_name(struct strvec *names, pid_t pid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: trace2_is_enabled
      Src: /src/git/compat/linux/procinfo.c:155,1
    - Dst: push_ancestry_name
      Src: /src/git/compat/linux/procinfo.c:167,1
    - Dst: getppid
      Src: /src/git/compat/linux/procinfo.c:167,1
    - Dst: trace2_cmd_ancestry
      Src: /src/git/compat/linux/procinfo.c:170,1
    - Dst: strvec_clear
      Src: /src/git/compat/linux/procinfo.c:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - reason
    argTypes:
    - enum trace2_process_info_reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 176
    functionName: trace2_collect_process_info
    functionSourceFile: /src/git/compat/linux/procinfo.c
    functionUses: 2
    functionsReached:
    - trace2_is_enabled
    - strvec_clear
    - trace2_cmd_ancestry
    - push_ancestry_name
    - getppid
    linkageType: ''
    returnType: void
    signature: void trace2_collect_process_info(enum trace2_process_info_reason reason)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sysctl
      Src: /src/git/compat/darwin/procinfo.c:27,1
    - Dst: strbuf_addstr
      Src: /src/git/compat/darwin/procinfo.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pid
    - name
    - ppid
    argTypes:
    - pid_t
    - struct strbuf*
    - pid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 37
    functionName: get_proc_info
    functionSourceFile: /src/git/compat/darwin/procinfo.c
    functionUses: 0
    functionsReached:
    - sysctl
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int get_proc_info(pid_t pid, struct strbuf *name, pid_t *ppid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_proc_info
      Src: /src/git/compat/darwin/procinfo.c:54,1
    - Dst: strvec_push
      Src: /src/git/compat/darwin/procinfo.c:57,1
    - Dst: push_ancestry_name
      Src: /src/git/compat/darwin/procinfo.c:64,1
    - Dst: strbuf_release
      Src: /src/git/compat/darwin/procinfo.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - names
    - pid
    - depth
    argTypes:
    - struct strvec*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 68
    functionName: push_ancestry_name
    functionSourceFile: /src/git/compat/darwin/procinfo.c
    functionUses: 3
    functionsReached:
    - strvec_push
    - push_ancestry_name
    - get_proc_info
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void push_ancestry_name(struct strvec *names, pid_t pid, int depth)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trace2_is_enabled
      Src: /src/git/compat/darwin/procinfo.c:74,1
    - Dst: push_ancestry_name
      Src: /src/git/compat/darwin/procinfo.c:79,1
    - Dst: getppid
      Src: /src/git/compat/darwin/procinfo.c:79,1
    - Dst: trace2_cmd_ancestry
      Src: /src/git/compat/darwin/procinfo.c:81,1
    - Dst: strvec_clear
      Src: /src/git/compat/darwin/procinfo.c:83,1
    - Dst: BUG
      Src: /src/git/compat/darwin/procinfo.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - reason
    argTypes:
    - enum trace2_process_info_reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 97
    functionName: trace2_collect_process_info
    functionSourceFile: /src/git/compat/darwin/procinfo.c
    functionUses: 2
    functionsReached:
    - trace2_is_enabled
    - BUG
    - strvec_clear
    - trace2_cmd_ancestry
    - push_ancestry_name
    - getppid
    linkageType: ''
    returnType: void
    signature: void trace2_collect_process_info(enum trace2_process_info_reason reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - preg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: regfree
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: regfree(preg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - pr
    - ','
    - st
    - ','
    - nm
    - ','
    - pm
    - ','
    - ef
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: regexec
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: regexec(pr, st, nm, pm, ef)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - preg
    - ','
    - pattern
    - ','
    - cflags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: regcomp
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: regcomp(preg, pattern, cflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - errcode
    - ','
    - preg
    - ','
    - errbuf
    - ','
    - errbuf_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: regerror
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: regerror(errcode, preg, errbuf, errbuf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - bu
    - ','
    - re
    - ','
    - nu
    - ','
    - st
    - ','
    - en
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: re_set_registers
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_set_registers(bu, re, nu, st, en)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - bufp
    - ','
    - string1
    - ','
    - size1
    - ','
    - string2
    - ','
    - size2
    - ','
    - pos
    - ','
    - regs
    - ','
    - stop
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: re_match_2
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - bufp
    - ','
    - string
    - ','
    - size
    - ','
    - pos
    - ','
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: re_match
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_match(bufp, string, size, pos, regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - bufp
    - ','
    - string
    - ','
    - size
    - ','
    - startpos
    - ','
    - range
    - ','
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: re_search
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_search(bufp, string, size, startpos, range, regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pattern
    - ','
    - length
    - ','
    - bufp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: re_compile_pattern
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_compile_pattern(pattern, length, bufp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - syntax
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: re_set_syntax
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_set_syntax(syntax)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - bufp
    - ','
    - st1
    - ','
    - s1
    - ','
    - st2
    - ','
    - s2
    - ','
    - startpos
    - ','
    - range
    - ','
    - regs
    - ','
    - stop
    - )
    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: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: re_search_2
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bufp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: re_compile_fastmap
    functionSourceFile: /src/git/compat/regex/regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_compile_fastmap(bufp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: MAX
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int MAX(size_t a, size_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::re_string_construct_common
      Src: /src/git/compat/regex/regex_internal.c:58,1
    - Dst: internal_function::re_string_realloc_buffers
      Src: /src/git/compat/regex/regex_internal.c:60,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - pstr
    - str
    - len
    - init_len
    - trans
    - icase
    - dfa
    argTypes:
    - re_string_t*
    - char*
    - int
    - int
    - RE_TRANSLATE_TYPE
    - int
    - re_dfa_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 70
    functionName: internal_function::re_string_allocate
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - internal_function::re_string_realloc_buffers
    - internal_function::re_string_construct_common
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nre_string_allocate (re_string_t *pstr,
      const char *str, int len, int init_len,\n\t\t    RE_TRANSLATE_TYPE trans, int
      icase, const re_dfa_t *dfa)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/compat/regex/regex_internal.c:80,1
    - Dst: internal_function::re_string_construct_common
      Src: /src/git/compat/regex/regex_internal.c:81,1
    - Dst: internal_function::re_string_realloc_buffers
      Src: /src/git/compat/regex/regex_internal.c:85,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:86,1
    - Dst: internal_function::build_wcs_upper_buffer
      Src: /src/git/compat/regex/regex_internal.c:98,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:99,1
    - Dst: internal_function::re_string_realloc_buffers
      Src: /src/git/compat/regex/regex_internal.c:105,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:106,1
    - Dst: internal_function::build_upper_buffer
      Src: /src/git/compat/regex/regex_internal.c:112,1
    - Dst: internal_function::build_wcs_buffer
      Src: /src/git/compat/regex/regex_internal.c:118,1
    - Dst: internal_function::re_string_translate_buffer
      Src: /src/git/compat/regex/regex_internal.c:123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 6
    argNames:
    - pstr
    - str
    - len
    - trans
    - icase
    - dfa
    argTypes:
    - re_string_t*
    - char*
    - int
    - RE_TRANSLATE_TYPE
    - int
    - re_dfa_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 133
    functionName: internal_function::re_string_construct
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - internal_function::build_wcs_upper_buffer
    - memset
    - internal_function::re_string_translate_buffer
    - internal_function::re_string_realloc_buffers
    - BE
    - internal_function::build_wcs_buffer
    - internal_function::build_upper_buffer
    - internal_function::re_string_construct_common
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nre_string_construct (re_string_t
      *pstr, const char *str, int len,\n\t\t     RE_TRANSLATE_TYPE trans, int icase,
      const re_dfa_t *dfa)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/git/compat/regex/regex_internal.c:147,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:148,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:151,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:152,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:157,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:158,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:166,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - pstr
    - new_buf_len
    argTypes:
    - re_string_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 174
    functionName: internal_function::re_string_realloc_buffers
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 2
    functionsReached:
    - re_realloc
    - BE
    - MAX
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      re_string_realloc_buffers (re_string_t *pstr, int new_buf_len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - str
    - len
    - pstr
    - trans
    - icase
    - dfa
    argTypes:
    - char*
    - int
    - re_string_t*
    - RE_TRANSLATE_TYPE
    - int
    - re_dfa_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 194
    functionName: internal_function::re_string_construct_common
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void internal_function\nre_string_construct_common (const char *str,
      int len, re_string_t *pstr,\n\t\t\t    RE_TRANSLATE_TYPE trans, int icase,\n\t\t\t
      \   const re_dfa_t *dfa)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regex_internal.c:215,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:234,1
    - Dst: __mbrtowc
      Src: /src/git/compat/regex/regex_internal.c:247,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:248,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:254,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:259,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - pstr
    argTypes:
    - re_string_t*
    assertStmts:
    - condition: (MB_LEN_MAX >= pstr->mb_cur_max)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/git/compat/regex/regex_internal.c
    constantsTouched: []
    func_position:
      end: 272
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 272
    functionName: internal_function::build_wcs_buffer
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 1
    functionsReached:
    - assert
    - BE
    - __mbrtowc
    linkageType: ''
    returnType: void
    signature: 'void internal_function

      build_wcs_buffer (re_string_t *pstr)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regex_internal.c:286,1
    - Dst: isascii
      Src: /src/git/compat/regex/regex_internal.c:302,1
    - Dst: mbsinit
      Src: /src/git/compat/regex/regex_internal.c:303,1
    - Dst: toupper
      Src: /src/git/compat/regex/regex_internal.c:307,1
    - Dst: __mbrtowc
      Src: /src/git/compat/regex/regex_internal.c:317,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:320,1
    - Dst: iswlower
      Src: /src/git/compat/regex/regex_internal.c:323,1
    - Dst: towupper
      Src: /src/git/compat/regex/regex_internal.c:327,1
    - Dst: wcrtomb
      Src: /src/git/compat/regex/regex_internal.c:328,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:329,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:330,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:338,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:352,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:374,1
    - Dst: __mbrtowc
      Src: /src/git/compat/regex/regex_internal.c:387,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:388,1
    - Dst: iswlower
      Src: /src/git/compat/regex/regex_internal.c:391,1
    - Dst: towupper
      Src: /src/git/compat/regex/regex_internal.c:395,1
    - Dst: wcrtomb
      Src: /src/git/compat/regex/regex_internal.c:396,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:397,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:398,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regex_internal.c:411,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:423,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:442,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:445,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:447,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:465,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:469,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:475,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 125
    argCount: 1
    argNames:
    - pstr
    argTypes:
    - re_string_t*
    assertStmts:
    - condition: (MB_LEN_MAX >= pstr->mb_cur_max)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/git/compat/regex/regex_internal.c
    constantsTouched: []
    func_position:
      end: 488
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 488
    functionName: internal_function::build_wcs_upper_buffer
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 1
    functionsReached:
    - assert
    - iswlower
    - __mbrtowc
    - toupper
    - re_malloc
    - wcrtomb
    - BE
    - memcpy
    - isascii
    - mbsinit
    - towupper
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      build_wcs_upper_buffer (re_string_t *pstr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __mbrtowc
      Src: /src/git/compat/regex/regex_internal.c:509,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:511,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - pstr
    - new_raw_idx
    - last_wc
    argTypes:
    - re_string_t*
    - int
    - wint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 528
    functionName: internal_function::re_string_skip_chars
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - BE
    - __mbrtowc
    linkageType: ''
    returnType: int
    signature: 'int internal_function

      re_string_skip_chars (re_string_t *pstr, int new_raw_idx, wint_t *last_wc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:544,1
    - Dst: islower
      Src: /src/git/compat/regex/regex_internal.c:546,1
    - Dst: toupper
      Src: /src/git/compat/regex/regex_internal.c:547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pstr
    argTypes:
    - re_string_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 553
    functionName: internal_function::build_upper_buffer
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 1
    functionsReached:
    - islower
    - BE
    - toupper
    linkageType: ''
    returnType: void
    signature: 'void internal_function

      build_upper_buffer (re_string_t *pstr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pstr
    argTypes:
    - re_string_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 572
    functionName: internal_function::re_string_translate_buffer
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void internal_function

      re_string_translate_buffer (re_string_t *pstr)'
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:583,1
    - Dst: memset
      Src: /src/git/compat/regex/regex_internal.c:588,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:603,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:606,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:610,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regex_internal.c:626,1
    - Dst: memmove
      Src: /src/git/compat/regex/regex_internal.c:635,1
    - Dst: memmove
      Src: /src/git/compat/regex/regex_internal.c:637,1
    - Dst: memset
      Src: /src/git/compat/regex/regex_internal.c:666,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regex_internal.c:675,1
    - Dst: memmove
      Src: /src/git/compat/regex/regex_internal.c:679,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:682,1
    - Dst: memmove
      Src: /src/git/compat/regex/regex_internal.c:683,1
    - Dst: assert
      Src: /src/git/compat/regex/regex_internal.c:688,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:698,1
    - Dst: isascii
      Src: /src/git/compat/regex/regex_internal.c:726,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:726,1
    - Dst: memset
      Src: /src/git/compat/regex/regex_internal.c:728,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:743,1
    - Dst: memset
      Src: /src/git/compat/regex/regex_internal.c:751,1
    - Dst: __mbrtowc
      Src: /src/git/compat/regex/regex_internal.c:752,1
    - Dst: memset
      Src: /src/git/compat/regex/regex_internal.c:757,1
    - Dst: internal_function::re_string_skip_chars
      Src: /src/git/compat/regex/regex_internal.c:767,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regex_internal.c:770,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:772,1
    - Dst: IS_WIDE_WORD_CHAR
      Src: /src/git/compat/regex/regex_internal.c:773,1
    - Dst: IS_WIDE_NEWLINE
      Src: /src/git/compat/regex/regex_internal.c:775,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:778,1
    - Dst: memset
      Src: /src/git/compat/regex/regex_internal.c:783,1
    - Dst: bitset_contain
      Src: /src/git/compat/regex/regex_internal.c:794,1
    - Dst: IS_NEWLINE
      Src: /src/git/compat/regex/regex_internal.c:796,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:800,1
    - Dst: internal_function::build_wcs_upper_buffer
      Src: /src/git/compat/regex/regex_internal.c:813,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:814,1
    - Dst: internal_function::build_wcs_buffer
      Src: /src/git/compat/regex/regex_internal.c:818,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:822,1
    - Dst: internal_function::build_upper_buffer
      Src: /src/git/compat/regex/regex_internal.c:825,1
    - Dst: internal_function::re_string_translate_buffer
      Src: /src/git/compat/regex/regex_internal.c:827,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 142
    argCount: 3
    argNames:
    - pstr
    - idx
    - eflags
    argTypes:
    - re_string_t*
    - int
    - int
    assertStmts:
    - condition: (pstr->valid_len > 0)
      pos:
        line_end: 687
        line_start: 687
        source_file: /src/git/compat/regex/regex_internal.c
    constantsTouched: []
    func_position:
      end: 834
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 834
    functionName: internal_function::re_string_reconstruct
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - internal_function::build_wcs_upper_buffer
    - memset
    - internal_function::re_string_context_at
    - assert
    - __mbrtowc
    - internal_function::re_string_translate_buffer
    - BE
    - IS_WIDE_NEWLINE
    - isascii
    - internal_function::build_wcs_buffer
    - bitset_contain
    - IS_NEWLINE
    - internal_function::build_upper_buffer
    - memmove
    - IS_WIDE_WORD_CHAR
    - internal_function::re_string_skip_chars
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      re_string_reconstruct (re_string_t *pstr, int idx, int eflags)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:843,1
    - Dst: re_string_peek_byte
      Src: /src/git/compat/regex/regex_internal.c:844,1
    - Dst: re_string_is_single_byte_char
      Src: /src/git/compat/regex/regex_internal.c:848,1
    - Dst: re_string_peek_byte
      Src: /src/git/compat/regex/regex_internal.c:849,1
    - Dst: isascii
      Src: /src/git/compat/regex/regex_internal.c:865,1
    - Dst: re_string_peek_byte
      Src: /src/git/compat/regex/regex_internal.c:866,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - pstr
    - idx
    argTypes:
    - re_string_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 870
    functionName: re_string_peek_byte_case
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_string_is_single_byte_char
    - re_string_peek_byte
    - isascii
    - BE
    linkageType: ''
    returnType: void
    signature: void re_string_peek_byte_case (const re_string_t *pstr, int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:876,1
    - Dst: re_string_fetch_byte
      Src: /src/git/compat/regex/regex_internal.c:877,1
    - Dst: re_string_first_byte
      Src: /src/git/compat/regex/regex_internal.c:891,1
    - Dst: re_string_fetch_byte
      Src: /src/git/compat/regex/regex_internal.c:892,1
    - Dst: isascii
      Src: /src/git/compat/regex/regex_internal.c:897,1
    - Dst: re_string_fetch_byte
      Src: /src/git/compat/regex/regex_internal.c:898,1
    - Dst: re_string_skip_bytes
      Src: /src/git/compat/regex/regex_internal.c:900,1
    - Dst: re_string_char_size_at
      Src: /src/git/compat/regex/regex_internal.c:901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pstr
    argTypes:
    - re_string_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 907
    functionName: re_string_fetch_byte_case
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_string_first_byte
    - BE
    - isascii
    - re_string_fetch_byte
    - re_string_char_size_at
    - re_string_skip_bytes
    linkageType: ''
    returnType: void
    signature: void re_string_fetch_byte_case (re_string_t *pstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: re_free
      Src: /src/git/compat/regex/regex_internal.c:914,1
    - Dst: re_free
      Src: /src/git/compat/regex/regex_internal.c:915,1
    - Dst: re_free
      Src: /src/git/compat/regex/regex_internal.c:918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pstr
    argTypes:
    - re_string_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 919
    functionName: internal_function::re_string_destruct
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_free
    linkageType: ''
    returnType: void
    signature: 'void internal_function

      re_string_destruct (re_string_t *pstr)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:928,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:932,1
    - Dst: assert
      Src: /src/git/compat/regex/regex_internal.c:944,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:951,1
    - Dst: IS_WIDE_WORD_CHAR
      Src: /src/git/compat/regex/regex_internal.c:951,1
    - Dst: IS_WIDE_NEWLINE
      Src: /src/git/compat/regex/regex_internal.c:953,1
    - Dst: re_string_byte_at
      Src: /src/git/compat/regex/regex_internal.c:959,1
    - Dst: bitset_contain
      Src: /src/git/compat/regex/regex_internal.c:960,1
    - Dst: IS_NEWLINE
      Src: /src/git/compat/regex/regex_internal.c:962,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - input
    - idx
    - eflags
    argTypes:
    - re_string_t*
    - int
    - int
    assertStmts:
    - condition: (wc_idx >= 0)
      pos:
        line_end: 943
        line_start: 943
        source_file: /src/git/compat/regex/regex_internal.c
    constantsTouched: []
    func_position:
      end: 964
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 964
    functionName: internal_function::re_string_context_at
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 1
    functionsReached:
    - assert
    - BE
    - IS_WIDE_NEWLINE
    - re_string_byte_at
    - bitset_contain
    - IS_NEWLINE
    - IS_WIDE_WORD_CHAR
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int internal_function

      re_string_context_at (const re_string_t *input, int idx, int eflags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/compat/regex/regex_internal.c:979,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regex_internal.c:984,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - set
    - size
    argTypes:
    - re_node_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 988
    functionName: internal_function::re_node_set_alloc
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - memset
    - re_malloc
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      re_node_set_alloc (re_node_set *set, int size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: re_malloc
      Src: /src/git/compat/regex/regex_internal.c:996,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - set
    - elem
    argTypes:
    - re_node_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1004
    functionName: internal_function::re_node_set_init_1
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_malloc
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      re_node_set_init_1 (re_node_set *set, int elem)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: re_malloc
      Src: /src/git/compat/regex/regex_internal.c:1011,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - set
    - elem1
    - elem2
    argTypes:
    - re_node_set*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1034
    functionName: internal_function::re_node_set_init_2
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_malloc
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      re_node_set_init_2 (re_node_set *set, int elem1, int elem2)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: re_malloc
      Src: /src/git/compat/regex/regex_internal.c:1044,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1045,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:1050,1
    - Dst: re_node_set_init_empty
      Src: /src/git/compat/regex/regex_internal.c:1053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - re_node_set*
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1055
    functionName: internal_function::re_node_set_init_copy
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_node_set_init_empty
    - re_malloc
    - BE
    - memcpy
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      re_node_set_init_copy (re_node_set *dest, const re_node_set *src)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:1075,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1076,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:1144,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 48
    argCount: 3
    argNames:
    - dest
    - src1
    - src2
    argTypes:
    - re_node_set*
    - re_node_set*
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1147
    functionName: internal_function::re_node_set_add_intersect
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_realloc
    - BE
    - memcpy
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nre_node_set_add_intersect (re_node_set
      *dest, const re_node_set *src1,\n\t\t\t   const re_node_set *src2)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: re_malloc
      Src: /src/git/compat/regex/regex_internal.c:1161,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1162,1
    - Dst: internal_function::re_node_set_init_copy
      Src: /src/git/compat/regex/regex_internal.c:1168,1
    - Dst: internal_function::re_node_set_init_copy
      Src: /src/git/compat/regex/regex_internal.c:1170,1
    - Dst: re_node_set_init_empty
      Src: /src/git/compat/regex/regex_internal.c:1172,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:1188,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:1194,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 3
    argNames:
    - dest
    - src1
    - src2
    argTypes:
    - re_node_set*
    - re_node_set*
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1200
    functionName: internal_function::re_node_set_init_union
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - internal_function::re_node_set_init_copy
    - re_malloc
    - BE
    - memcpy
    - re_node_set_init_empty
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nre_node_set_init_union (re_node_set
      *dest, const re_node_set *src1,\n\t\t\tconst re_node_set *src2)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:1215,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1216,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1222,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:1225,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:1249,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regex_internal.c:1277,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - re_node_set*
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1285
    functionName: internal_function::re_node_set_merge
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_realloc
    - BE
    - memcpy
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      re_node_set_merge (re_node_set *dest, const re_node_set *src)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1299,1
    - Dst: internal_function::re_node_set_init_1
      Src: /src/git/compat/regex/regex_internal.c:1299,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1305,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:1318,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - set
    - elem
    argTypes:
    - re_node_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1342
    functionName: internal_function::re_node_set_insert
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - internal_function::re_node_set_init_1
    - re_realloc
    - BE
    linkageType: ''
    returnType: int
    signature: 'int internal_function

      re_node_set_insert (re_node_set *set, int elem)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:1357,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - set
    - elem
    argTypes:
    - re_node_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1366
    functionName: internal_function::re_node_set_insert_last
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_realloc
    - BE
    linkageType: ''
    returnType: int
    signature: 'int internal_function

      re_node_set_insert_last (re_node_set *set, int elem)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - set1
    - set2
    argTypes:
    - re_node_set*
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1382
    functionName: re_node_set_compare
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void re_node_set_compare (const re_node_set *set1, const re_node_set
      *set2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - set
    - elem
    argTypes:
    - re_node_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1406
    functionName: re_node_set_contains
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void re_node_set_contains (const re_node_set *set, int elem)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - set
    - idx
    argTypes:
    - re_node_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1417
    functionName: internal_function::re_node_set_remove_at
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void internal_function

      re_node_set_remove_at (re_node_set *set, int idx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1427,1
    - Dst: MAX
      Src: /src/git/compat/regex/regex_internal.c:1435,1
    - Dst: MAX
      Src: /src/git/compat/regex/regex_internal.c:1436,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1438,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:1441,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1442,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:1445,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:1446,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:1447,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:1448,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1449,1
    - Dst: re_node_set_init_empty
      Src: /src/git/compat/regex/regex_internal.c:1465,1
    - Dst: re_node_set_init_empty
      Src: /src/git/compat/regex/regex_internal.c:1466,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - dfa
    - token
    argTypes:
    - re_dfa_t*
    - re_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1468
    functionName: internal_function::re_dfa_add_node
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_node_set_init_empty
    - re_realloc
    - BE
    - MAX
    linkageType: ''
    returnType: int
    signature: 'int internal_function

      re_dfa_add_node (re_dfa_t *dfa, re_token_t token)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nodes
    - context
    argTypes:
    - re_node_set*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1479
    functionName: internal_function::calc_state_hash
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int internal_function

      calc_state_hash (const re_node_set *nodes, unsigned int context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1499,1
    - Dst: internal_function::calc_state_hash
      Src: /src/git/compat/regex/regex_internal.c:1504,1
    - Dst: re_node_set_compare
      Src: /src/git/compat/regex/regex_internal.c:1512,1
    - Dst: internal_function::create_ci_newstate
      Src: /src/git/compat/regex/regex_internal.c:1517,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - err
    - dfa
    - nodes
    argTypes:
    - reg_errcode_t*
    - re_dfa_t*
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1490
    functionDepth: 1
    functionLinenumber: 1490
    functionLinenumberEnd: 1522
    functionName: internal_function::re_acquire_state
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - internal_function::create_ci_newstate
    - internal_function::calc_state_hash
    - BE
    - re_node_set_compare
    linkageType: ''
    returnType: re_dfastate_t
    signature: "re_dfastate_t *\ninternal_function\nre_acquire_state (reg_errcode_t
      *err, const re_dfa_t *dfa,\n\t\t  const re_node_set *nodes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::calc_state_hash
      Src: /src/git/compat/regex/regex_internal.c:1548,1
    - Dst: re_node_set_compare
      Src: /src/git/compat/regex/regex_internal.c:1556,1
    - Dst: internal_function::create_cd_newstate
      Src: /src/git/compat/regex/regex_internal.c:1560,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1561,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - err
    - dfa
    - nodes
    - context
    argTypes:
    - reg_errcode_t*
    - re_dfa_t*
    - re_node_set*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1534
    functionDepth: 1
    functionLinenumber: 1534
    functionLinenumberEnd: 1565
    functionName: internal_function::re_acquire_state_context
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - BE
    - internal_function::create_cd_newstate
    - internal_function::calc_state_hash
    - re_node_set_compare
    linkageType: ''
    returnType: re_dfastate_t
    signature: "re_dfastate_t *\ninternal_function\nre_acquire_state_context (reg_errcode_t
      *err, const re_dfa_t *dfa,\n\t\t\t  const re_node_set *nodes, unsigned int context)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_alloc
      Src: /src/git/compat/regex/regex_internal.c:1580,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1581,1
    - Dst: IS_EPSILON_NODE
      Src: /src/git/compat/regex/regex_internal.c:1586,1
    - Dst: re_node_set_insert_last
      Src: /src/git/compat/regex/regex_internal.c:1587,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1592,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regex_internal.c:1595,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1597,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - dfa
    - newstate
    - hash
    argTypes:
    - re_dfa_t*
    - re_dfastate_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1604
    functionName: register_state
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - IS_EPSILON_NODE
    - re_node_set_alloc
    - re_realloc
    - BE
    - re_node_set_insert_last
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t register_state (const re_dfa_t *dfa, re_dfastate_t *newstate,\n\t\tunsigned
      int hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regex_internal.c:1609,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regex_internal.c:1610,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regex_internal.c:1613,1
    - Dst: re_free
      Src: /src/git/compat/regex/regex_internal.c:1614,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regex_internal.c:1616,1
    - Dst: re_free
      Src: /src/git/compat/regex/regex_internal.c:1617,1
    - Dst: re_free
      Src: /src/git/compat/regex/regex_internal.c:1618,1
    - Dst: re_free
      Src: /src/git/compat/regex/regex_internal.c:1619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - re_dfastate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1620
    functionName: free_state
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 0
    functionsReached:
    - re_node_set_free
    - re_free
    linkageType: ''
    returnType: void
    signature: void free_state (re_dfastate_t *state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/git/compat/regex/regex_internal.c:1634,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1635,1
    - Dst: internal_function::re_node_set_init_copy
      Src: /src/git/compat/regex/regex_internal.c:1637,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1638,1
    - Dst: re_free
      Src: /src/git/compat/regex/regex_internal.c:1640,1
    - Dst: register_state
      Src: /src/git/compat/regex/regex_internal.c:1663,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1664,1
    - Dst: free_state
      Src: /src/git/compat/regex/regex_internal.c:1666,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - dfa
    - nodes
    - hash
    argTypes:
    - re_dfa_t*
    - re_node_set*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1625
    functionDepth: 2
    functionLinenumber: 1625
    functionLinenumberEnd: 1670
    functionName: internal_function::create_ci_newstate
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 1
    functionsReached:
    - internal_function::re_node_set_init_copy
    - re_free
    - BE
    - register_state
    - free_state
    - calloc
    linkageType: ''
    returnType: re_dfastate_t
    signature: "re_dfastate_t *\ninternal_function\ncreate_ci_newstate (const re_dfa_t
      *dfa, const re_node_set *nodes,\n\t\t    unsigned int hash)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/git/compat/regex/regex_internal.c:1684,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1685,1
    - Dst: internal_function::re_node_set_init_copy
      Src: /src/git/compat/regex/regex_internal.c:1687,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1688,1
    - Dst: re_free
      Src: /src/git/compat/regex/regex_internal.c:1690,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regex_internal.c:1719,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1720,1
    - Dst: free_state
      Src: /src/git/compat/regex/regex_internal.c:1722,1
    - Dst: internal_function::re_node_set_init_copy
      Src: /src/git/compat/regex/regex_internal.c:1725,1
    - Dst: NOT_SATISFY_PREV_CONSTRAINT
      Src: /src/git/compat/regex/regex_internal.c:1732,1
    - Dst: internal_function::re_node_set_remove_at
      Src: /src/git/compat/regex/regex_internal.c:1734,1
    - Dst: register_state
      Src: /src/git/compat/regex/regex_internal.c:1739,1
    - Dst: BE
      Src: /src/git/compat/regex/regex_internal.c:1740,1
    - Dst: free_state
      Src: /src/git/compat/regex/regex_internal.c:1742,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - dfa
    - nodes
    - context
    - hash
    argTypes:
    - re_dfa_t*
    - re_node_set*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1675
    functionDepth: 2
    functionLinenumber: 1675
    functionLinenumberEnd: 1746
    functionName: internal_function::create_cd_newstate
    functionSourceFile: /src/git/compat/regex/regex_internal.c
    functionUses: 1
    functionsReached:
    - internal_function::re_node_set_init_copy
    - re_free
    - re_malloc
    - internal_function::re_node_set_remove_at
    - BE
    - register_state
    - free_state
    - calloc
    - NOT_SATISFY_PREV_CONSTRAINT
    linkageType: ''
    returnType: re_dfastate_t
    signature: "re_dfastate_t *\ninternal_function\ncreate_cd_newstate (const re_dfa_t
      *dfa, const re_node_set *nodes,\n\t\t    unsigned int context, unsigned int
      hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbtowc
      Src: /src/git/compat/regex/regcomp.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: btowc
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - mbtowc
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t btowc (int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: re_compile_internal
      Src: /src/git/compat/regex/regcomp.c:256,1
    - Dst: gettext
      Src: /src/git/compat/regex/regcomp.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pattern
    - length
    - bufp
    argTypes:
    - char*
    - size_t
    - struct re_pattern_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 261
    functionName: re_compile_pattern
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - gettext
    - re_compile_internal
    linkageType: ''
    returnType: char
    signature: "char *\nre_compile_pattern (const char *pattern,\n\t\t    size_t length,\n\t\t
      \   struct re_pattern_buffer *bufp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - syntax
    argTypes:
    - reg_syntax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: re_set_syntax
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reg_syntax_t
    signature: reg_syntax_t re_set_syntax (reg_syntax_t syntax)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/compat/regex/regcomp.c:299,1
    - Dst: re_compile_fastmap_iter
      Src: /src/git/compat/regex/regcomp.c:300,1
    - Dst: re_compile_fastmap_iter
      Src: /src/git/compat/regex/regcomp.c:302,1
    - Dst: re_compile_fastmap_iter
      Src: /src/git/compat/regex/regcomp.c:304,1
    - Dst: re_compile_fastmap_iter
      Src: /src/git/compat/regex/regcomp.c:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - bufp
    argTypes:
    - struct re_pattern_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 309
    functionName: re_compile_fastmap
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - memset
    - re_compile_fastmap_iter
    linkageType: ''
    returnType: int
    signature: int re_compile_fastmap (struct re_pattern_buffer *bufp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/git/compat/regex/regcomp.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fastmap
    - icase
    - ch
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: re_set_fastmap
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: void
    signature: void re_set_fastmap (char *fastmap, int icase, int ch)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: re_set_fastmap
      Src: /src/git/compat/regex/regcomp.c:340,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:344,1
    - Dst: memset
      Src: /src/git/compat/regex/regcomp.c:354,1
    - Dst: __mbrtowc
      Src: /src/git/compat/regex/regcomp.c:355,1
    - Dst: __wcrtomb
      Src: /src/git/compat/regex/regcomp.c:357,1
    - Dst: towlower
      Src: /src/git/compat/regex/regcomp.c:357,1
    - Dst: re_set_fastmap
      Src: /src/git/compat/regex/regcomp.c:359,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:360,1
    - Dst: re_set_fastmap
      Src: /src/git/compat/regex/regcomp.c:373,1
    - Dst: _NL_CURRENT_WORD
      Src: /src/git/compat/regex/regcomp.c:389,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regcomp.c:393,1
    - Dst: re_set_fastmap
      Src: /src/git/compat/regex/regcomp.c:396,1
    - Dst: memset
      Src: /src/git/compat/regex/regcomp.c:415,1
    - Dst: __mbrtowc
      Src: /src/git/compat/regex/regcomp.c:416,1
    - Dst: re_set_fastmap
      Src: /src/git/compat/regex/regcomp.c:417,1
    - Dst: memset
      Src: /src/git/compat/regex/regcomp.c:429,1
    - Dst: __wcrtomb
      Src: /src/git/compat/regex/regcomp.c:430,1
    - Dst: re_set_fastmap
      Src: /src/git/compat/regex/regcomp.c:431,1
    - Dst: __wcrtomb
      Src: /src/git/compat/regex/regcomp.c:434,1
    - Dst: towlower
      Src: /src/git/compat/regex/regcomp.c:434,1
    - Dst: re_set_fastmap
      Src: /src/git/compat/regex/regcomp.c:436,1
    - Dst: memset
      Src: /src/git/compat/regex/regcomp.c:448,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 51
    argCount: 3
    argNames:
    - bufp
    - init_state
    - fastmap
    argTypes:
    - regex_t*
    - re_dfastate_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 454
    functionName: re_compile_fastmap_iter
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - memset
    - re_free
    - re_set_fastmap
    - __mbrtowc
    - re_malloc
    - towlower
    - _NL_CURRENT_WORD
    - _NL_CURRENT
    - __wcrtomb
    linkageType: ''
    returnType: void
    signature: "void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,\n\t\t\t
      char *fastmap)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:506,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:507,1
    - Dst: re_compile_internal
      Src: /src/git/compat/regex/regcomp.c:525,1
    - Dst: strlen
      Src: /src/git/compat/regex/regcomp.c:525,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:533,1
    - Dst: re_compile_fastmap
      Src: /src/git/compat/regex/regcomp.c:536,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - preg
    - pattern
    - cflags
    argTypes:
    - regex_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 545
    functionName: regcomp
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 19
    functionsReached:
    - re_free
    - re_malloc
    - re_compile_internal
    - BE
    - strlen
    - re_compile_fastmap
    linkageType: ''
    returnType: int
    signature: "int regcomp (regex_t *__restrict preg,\n\t const char *__restrict
      pattern,\n\t int cflags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:560,1
    - Dst: abort
      Src: /src/git/compat/regex/regcomp.c:567,1
    - Dst: gettext
      Src: /src/git/compat/regex/regcomp.c:569,1
    - Dst: strlen
      Src: /src/git/compat/regex/regcomp.c:571,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:573,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:575,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regcomp.c:577,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regcomp.c:581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - errcode
    - preg
    - errbuf
    - errbuf_size
    argTypes:
    - int
    - regex_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 585
    functionName: regerror
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 8
    functionsReached:
    - gettext
    - abort
    - BE
    - memcpy
    - strlen
    linkageType: ''
    returnType: size_t
    signature: "size_t regerror(int errcode, const regex_t *__restrict preg,\n\t char
      *__restrict errbuf, size_t errbuf_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free_token
      Src: /src/git/compat/regex/regcomp.c:614,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:615,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regcomp.c:619,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regcomp.c:621,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regcomp.c:623,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:625,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:626,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:627,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:628,1
    - Dst: free_state
      Src: /src/git/compat/regex/regcomp.c:637,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:639,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:641,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:644,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:646,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:648,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:651,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - dfa
    argTypes:
    - re_dfa_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 652
    functionName: free_dfa_content
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - re_node_set_free
    - re_free
    - free_state
    - free_token
    linkageType: ''
    returnType: void
    signature: void free_dfa_content (re_dfa_t *dfa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:661,1
    - Dst: free_dfa_content
      Src: /src/git/compat/regex/regcomp.c:662,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:666,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - preg
    argTypes:
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 657
    functionDepth: 3
    functionLinenumber: 657
    functionLinenumberEnd: 671
    functionName: regfree
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 17
    functionsReached:
    - re_free
    - BE
    - free_dfa_content
    linkageType: ''
    returnType: void
    signature: void regfree (regex_t *preg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __regfree
      Src: /src/git/compat/regex/regcomp.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 740
    functionName: libc_freeres_fn
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - __regfree
    linkageType: ''
    returnType: void
    signature: void libc_freeres_fn (free_mem)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:768,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regcomp.c:774,1
    - Dst: init_dfa
      Src: /src/git/compat/regex/regcomp.c:782,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:783,1
    - Dst: free_dfa_content
      Src: /src/git/compat/regex/regcomp.c:785,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:792,1
    - Dst: strncpy
      Src: /src/git/compat/regex/regcomp.c:793,1
    - Dst: __libc_lock_init
      Src: /src/git/compat/regex/regcomp.c:796,1
    - Dst: re_string_construct
      Src: /src/git/compat/regex/regcomp.c:798,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:800,1
    - Dst: free_workarea_compile
      Src: /src/git/compat/regex/regcomp.c:803,1
    - Dst: re_string_destruct
      Src: /src/git/compat/regex/regcomp.c:804,1
    - Dst: free_dfa_content
      Src: /src/git/compat/regex/regcomp.c:805,1
    - Dst: parse
      Src: /src/git/compat/regex/regcomp.c:813,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:814,1
    - Dst: analyze
      Src: /src/git/compat/regex/regcomp.c:818,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:819,1
    - Dst: optimize_utf8
      Src: /src/git/compat/regex/regcomp.c:825,1
    - Dst: create_initial_state
      Src: /src/git/compat/regex/regcomp.c:829,1
    - Dst: free_workarea_compile
      Src: /src/git/compat/regex/regcomp.c:832,1
    - Dst: re_string_destruct
      Src: /src/git/compat/regex/regcomp.c:833,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:835,1
    - Dst: free_dfa_content
      Src: /src/git/compat/regex/regcomp.c:837,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 4
    argNames:
    - preg
    - pattern
    - length
    - syntax
    argTypes:
    - regex_t*
    - char*
    - size_t
    - reg_syntax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 749
    functionDepth: 3
    functionLinenumber: 749
    functionLinenumberEnd: 843
    functionName: re_compile_internal
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 2
    functionsReached:
    - re_string_construct
    - re_malloc
    - free_workarea_compile
    - re_string_destruct
    - re_realloc
    - BE
    - free_dfa_content
    - optimize_utf8
    - strncpy
    - analyze
    - __libc_lock_init
    - parse
    - create_initial_state
    - init_dfa
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
      size_t length,\n\t\t     reg_syntax_t syntax)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/compat/regex/regcomp.c:856,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:866,1
    - Dst: calloc
      Src: /src/git/compat/regex/regcomp.c:873,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:879,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regcomp.c:879,1
    - Dst: _NL_CURRENT_WORD
      Src: /src/git/compat/regex/regcomp.c:881,1
    - Dst: nl_langinfo
      Src: /src/git/compat/regex/regcomp.c:885,1
    - Dst: getenv
      Src: /src/git/compat/regex/regcomp.c:887,1
    - Dst: getenv
      Src: /src/git/compat/regex/regcomp.c:889,1
    - Dst: getenv
      Src: /src/git/compat/regex/regcomp.c:891,1
    - Dst: strchr
      Src: /src/git/compat/regex/regcomp.c:894,1
    - Dst: strchr
      Src: /src/git/compat/regex/regcomp.c:895,1
    - Dst: strcasecmp
      Src: /src/git/compat/regex/regcomp.c:900,1
    - Dst: strcasecmp
      Src: /src/git/compat/regex/regcomp.c:901,1
    - Dst: calloc
      Src: /src/git/compat/regex/regcomp.c:941,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:942,1
    - Dst: __btowc
      Src: /src/git/compat/regex/regcomp.c:949,1
    - Dst: isascii
      Src: /src/git/compat/regex/regcomp.c:953,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:961,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 55
    argCount: 2
    argNames:
    - dfa
    - pat_len
    argTypes:
    - re_dfa_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 964
    functionName: init_dfa
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - memset
    - __btowc
    - re_malloc
    - strcasecmp
    - strchr
    - BE
    - _NL_CURRENT_WORD
    - nl_langinfo
    - isascii
    - strcmp
    - getenv
    - _NL_CURRENT
    - calloc
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/git/compat/regex/regcomp.c:978,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - dfa
    argTypes:
    - re_dfa_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 980
    functionName: internal_function::init_word_char
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: void
    signature: 'void internal_function

      init_word_char (re_dfa_t *dfa)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:992,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - preg
    argTypes:
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 999
    functionName: free_workarea_compile
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - re_free
    linkageType: ''
    returnType: void
    signature: void free_workarea_compile (regex_t *preg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_init_copy
      Src: /src/git/compat/regex/regcomp.c:1014,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1015,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regcomp.c:1045,1
    - Dst: re_node_set_merge
      Src: /src/git/compat/regex/regcomp.c:1047,1
    - Dst: re_acquire_state_context
      Src: /src/git/compat/regex/regcomp.c:1058,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1060,1
    - Dst: re_acquire_state_context
      Src: /src/git/compat/regex/regcomp.c:1064,1
    - Dst: re_acquire_state_context
      Src: /src/git/compat/regex/regcomp.c:1066,1
    - Dst: re_acquire_state_context
      Src: /src/git/compat/regex/regcomp.c:1068,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1072,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regcomp.c:1080,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 1
    argNames:
    - dfa
    argTypes:
    - re_dfa_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1082
    functionName: create_initial_state
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - re_node_set_free
    - re_node_set_contains
    - re_node_set_merge
    - re_node_set_init_copy
    - BE
    - re_acquire_state_context
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t create_initial_state (re_dfa_t *dfa)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regcomp.c:1130,1
    - Dst: abort
      Src: /src/git/compat/regex/regcomp.c:1136,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 1
    argNames:
    - dfa
    argTypes:
    - re_dfa_t*
    assertStmts:
    - condition: (0x80 % BITSET_WORD_BITS == 0)
      pos:
        line_end: 1129
        line_start: 1129
        source_file: /src/git/compat/regex/regcomp.c
    constantsTouched: []
    func_position:
      end: 1153
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1153
    functionName: optimize_utf8
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - assert
    - abort
    linkageType: ''
    returnType: void
    signature: void optimize_utf8 (re_dfa_t *dfa)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:1166,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:1167,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:1168,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:1169,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1170,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:1174,1
    - Dst: preorder
      Src: /src/git/compat/regex/regcomp.c:1180,1
    - Dst: free
      Src: /src/git/compat/regex/regcomp.c:1186,1
    - Dst: postorder
      Src: /src/git/compat/regex/regcomp.c:1191,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1192,1
    - Dst: postorder
      Src: /src/git/compat/regex/regcomp.c:1194,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1195,1
    - Dst: preorder
      Src: /src/git/compat/regex/regcomp.c:1197,1
    - Dst: preorder
      Src: /src/git/compat/regex/regcomp.c:1198,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1199,1
    - Dst: calc_eclosure
      Src: /src/git/compat/regex/regcomp.c:1201,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1202,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:1210,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1211,1
    - Dst: calc_inveclosure
      Src: /src/git/compat/regex/regcomp.c:1213,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 1
    argNames:
    - preg
    argTypes:
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1217
    functionName: analyze
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - calc_eclosure
    - postorder
    - re_malloc
    - BE
    - preorder
    - free
    - calc_inveclosure
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t analyze (regex_t *preg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/compat/regex/regcomp.c:1240,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1241,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - root
    - extra
    argTypes:
    - bin_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1252
    functionName: postorder
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - fn
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t postorder (bin_tree_t *root, reg_errcode_t (fn (void
      *, bin_tree_t *)),\n\t   void *extra)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/compat/regex/regcomp.c:1262,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - root
    - extra
    argTypes:
    - bin_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1282
    functionName: preorder
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - fn
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void
      *, bin_tree_t *)),\n\t  void *extra)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - extra
    - node
    argTypes:
    - void*
    - bin_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1314
    functionName: optimize_subexps
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lower_subexp
      Src: /src/git/compat/regex/regcomp.c:1326,1
    - Dst: lower_subexp
      Src: /src/git/compat/regex/regcomp.c:1332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - extra
    - node
    argTypes:
    - void*
    - bin_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1338
    functionName: lower_subexps
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - lower_subexp
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t lower_subexps (void *extra, bin_tree_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:1360,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:1361,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:1362,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:1363,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - err
    - preg
    - node
    argTypes:
    - reg_errcode_t*
    - regex_t*
    - bin_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1373
    functionName: lower_subexp
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - create_tree
    - BE
    linkageType: ''
    returnType: bin_tree_t
    signature: 'bin_tree_t *

      lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: re_dfa_add_node
      Src: /src/git/compat/regex/regcomp.c:1389,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - extra
    - node
    argTypes:
    - void*
    - bin_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1396
    functionName: calc_first
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - re_dfa_add_node
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t calc_first (void *extra, bin_tree_t *node)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - extra
    - node
    argTypes:
    - void*
    - bin_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1419
    functionName: calc_next
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t calc_next (void *extra, bin_tree_t *node)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regcomp.c:1435,1
    - Dst: assert
      Src: /src/git/compat/regex/regcomp.c:1451,1
    - Dst: assert
      Src: /src/git/compat/regex/regcomp.c:1452,1
    - Dst: re_node_set_init_2
      Src: /src/git/compat/regex/regcomp.c:1453,1
    - Dst: re_node_set_init_1
      Src: /src/git/compat/regex/regcomp.c:1460,1
    - Dst: re_node_set_init_1
      Src: /src/git/compat/regex/regcomp.c:1466,1
    - Dst: assert
      Src: /src/git/compat/regex/regcomp.c:1470,1
    - Dst: IS_EPSILON_NODE
      Src: /src/git/compat/regex/regcomp.c:1470,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - extra
    - node
    argTypes:
    - void*
    - bin_tree_t*
    assertStmts:
    - condition: (node->next == NULL)
      pos:
        line_end: 1434
        line_start: 1434
        source_file: /src/git/compat/regex/regcomp.c
    - condition: (left > -1)
      pos:
        line_end: 1450
        line_start: 1450
        source_file: /src/git/compat/regex/regcomp.c
    - condition: (right > -1)
      pos:
        line_end: 1451
        line_start: 1451
        source_file: /src/git/compat/regex/regcomp.c
    - condition: (!IS_EPSILON_NODE (node->token.type))
      pos:
        line_end: 1469
        line_start: 1469
        source_file: /src/git/compat/regex/regcomp.c
    constantsTouched: []
    func_position:
      end: 1476
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1476
    functionName: link_nfa_nodes
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - IS_EPSILON_NODE
    - re_node_set_init_1
    - assert
    - re_node_set_init_2
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_empty
      Src: /src/git/compat/regex/regcomp.c:1499,1
    - Dst: duplicate_node
      Src: /src/git/compat/regex/regcomp.c:1500,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1501,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regcomp.c:1504,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1505,1
    - Dst: re_node_set_empty
      Src: /src/git/compat/regex/regcomp.c:1521,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regcomp.c:1526,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1527,1
    - Dst: duplicate_node
      Src: /src/git/compat/regex/regcomp.c:1533,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1534,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regcomp.c:1536,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1537,1
    - Dst: re_node_set_empty
      Src: /src/git/compat/regex/regcomp.c:1545,1
    - Dst: search_duplicated_node
      Src: /src/git/compat/regex/regcomp.c:1547,1
    - Dst: duplicate_node
      Src: /src/git/compat/regex/regcomp.c:1552,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1553,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regcomp.c:1555,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1556,1
    - Dst: internal_function::duplicate_node_closure
      Src: /src/git/compat/regex/regcomp.c:1558,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1560,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regcomp.c:1567,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1568,1
    - Dst: duplicate_node
      Src: /src/git/compat/regex/regcomp.c:1573,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1574,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regcomp.c:1576,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1577,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 5
    argNames:
    - dfa
    - top_org_node
    - top_clone_node
    - root_node
    - init_constraint
    argTypes:
    - re_dfa_t*
    - int
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1482
    functionDepth: 3
    functionLinenumber: 1482
    functionLinenumberEnd: 1584
    functionName: internal_function::duplicate_node_closure
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - internal_function::duplicate_node_closure
    - re_node_set_empty
    - search_duplicated_node
    - BE
    - internal_function::re_node_set_insert
    - duplicate_node
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nduplicate_node_closure (re_dfa_t
      *dfa, int top_org_node, int top_clone_node,\n\t\t\tint root_node, unsigned int
      init_constraint)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - dfa
    - org_node
    - constraint
    argTypes:
    - re_dfa_t*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1601
    functionName: search_duplicated_node
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int search_duplicated_node (const re_dfa_t *dfa, int org_node,\n\t\t\tunsigned
      int constraint)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: re_dfa_add_node
      Src: /src/git/compat/regex/regcomp.c:1610,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - dfa
    - org_idx
    - constraint
    argTypes:
    - re_dfa_t*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1621
    functionName: duplicate_node
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - re_dfa_add_node
    - BE
    linkageType: ''
    returnType: int
    signature: int duplicate_node (re_dfa_t *dfa, int org_idx, unsigned int constraint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_init_empty
      Src: /src/git/compat/regex/regcomp.c:1628,1
    - Dst: re_node_set_insert_last
      Src: /src/git/compat/regex/regcomp.c:1635,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - dfa
    argTypes:
    - re_dfa_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1642
    functionName: calc_inveclosure
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - re_node_set_init_empty
    - re_node_set_insert_last
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t calc_inveclosure (re_dfa_t *dfa)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regcomp.c:1651,1
    - Dst: assert
      Src: /src/git/compat/regex/regcomp.c:1668,1
    - Dst: calc_eclosure_iter
      Src: /src/git/compat/regex/regcomp.c:1675,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1676,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regcomp.c:1682,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - dfa
    argTypes:
    - re_dfa_t*
    assertStmts:
    - condition: (dfa->nodes_len > 0)
      pos:
        line_end: 1650
        line_start: 1650
        source_file: /src/git/compat/regex/regcomp.c
    - condition: (dfa->eclosures[node_idx].nelem != -1)
      pos:
        line_end: 1667
        line_start: 1667
        source_file: /src/git/compat/regex/regcomp.c
    constantsTouched: []
    func_position:
      end: 1686
      start: 1646
    functionDepth: 1
    functionLinenumber: 1646
    functionLinenumberEnd: 1686
    functionName: calc_eclosure
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - calc_eclosure_iter
    - re_node_set_free
    - assert
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t calc_eclosure (re_dfa_t *dfa)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_alloc
      Src: /src/git/compat/regex/regcomp.c:1698,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1699,1
    - Dst: duplicate_node_closure
      Src: /src/git/compat/regex/regcomp.c:1712,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1714,1
    - Dst: IS_EPSILON_NODE
      Src: /src/git/compat/regex/regcomp.c:1719,1
    - Dst: calc_eclosure_iter
      Src: /src/git/compat/regex/regcomp.c:1735,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1736,1
    - Dst: re_node_set_merge
      Src: /src/git/compat/regex/regcomp.c:1742,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1743,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regcomp.c:1750,1
    - Dst: re_node_set_insert
      Src: /src/git/compat/regex/regcomp.c:1755,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:1756,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 4
    argNames:
    - new_set
    - dfa
    - node
    - root
    argTypes:
    - re_node_set*
    - re_dfa_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1764
    functionName: calc_eclosure_iter
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 2
    functionsReached:
    - re_node_set_free
    - IS_EPSILON_NODE
    - re_node_set_alloc
    - re_node_set_insert
    - BE
    - duplicate_node_closure
    - re_node_set_merge
    - calc_eclosure_iter
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa,
      int node, int root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: re_string_skip_bytes
      Src: /src/git/compat/regex/regcomp.c:1775,1
    - Dst: peek_token
      Src: /src/git/compat/regex/regcomp.c:1775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - input
    - syntax
    argTypes:
    - re_token_t*
    - re_string_t*
    - reg_syntax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1771
    functionDepth: 1
    functionLinenumber: 1771
    functionLinenumberEnd: 1776
    functionName: internal_function::fetch_token
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - peek_token
    - re_string_skip_bytes
    linkageType: ''
    returnType: void
    signature: 'void internal_function

      fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax)'
  - BBCount: 78
    BranchProfiles: []
    Callsites:
    - Dst: re_string_eoi
      Src: /src/git/compat/regex/regcomp.c:1787,1
    - Dst: re_string_peek_byte
      Src: /src/git/compat/regex/regcomp.c:1793,1
    - Dst: re_string_first_byte
      Src: /src/git/compat/regex/regcomp.c:1800,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:1800,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:1810,1
    - Dst: re_string_length
      Src: /src/git/compat/regex/regcomp.c:1810,1
    - Dst: re_string_peek_byte_case
      Src: /src/git/compat/regex/regcomp.c:1816,1
    - Dst: re_string_wchar_at
      Src: /src/git/compat/regex/regcomp.c:1822,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:1823,1
    - Dst: IS_WIDE_WORD_CHAR
      Src: /src/git/compat/regex/regcomp.c:1824,1
    - Dst: IS_WORD_CHAR
      Src: /src/git/compat/regex/regcomp.c:1828,1
    - Dst: re_string_wchar_at
      Src: /src/git/compat/regex/regcomp.c:1936,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:1936,1
    - Dst: IS_WIDE_WORD_CHAR
      Src: /src/git/compat/regex/regcomp.c:1937,1
    - Dst: IS_WORD_CHAR
      Src: /src/git/compat/regex/regcomp.c:1941,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:1988,1
    - Dst: re_string_peek_byte
      Src: /src/git/compat/regex/regcomp.c:1990,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:1999,1
    - Dst: re_string_length
      Src: /src/git/compat/regex/regcomp.c:1999,1
    - Dst: re_string_skip_bytes
      Src: /src/git/compat/regex/regcomp.c:2002,1
    - Dst: peek_token
      Src: /src/git/compat/regex/regcomp.c:2003,1
    - Dst: re_string_skip_bytes
      Src: /src/git/compat/regex/regcomp.c:2004,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 196
    argCount: 3
    argNames:
    - token
    - input
    - syntax
    argTypes:
    - re_token_t*
    - re_string_t*
    - reg_syntax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 2015
    functionName: internal_function
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - re_string_first_byte
    - re_string_eoi
    - re_string_peek_byte_case
    - re_string_peek_byte
    - re_string_length
    - IS_WORD_CHAR
    - re_string_wchar_at
    - re_string_cur_idx
    - peek_token
    - IS_WIDE_WORD_CHAR
    - re_string_skip_bytes
    linkageType: ''
    returnType: int
    signature: 'int internal_function

      peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: re_string_eoi
      Src: /src/git/compat/regex/regcomp.c:2025,1
    - Dst: re_string_peek_byte
      Src: /src/git/compat/regex/regcomp.c:2030,1
    - Dst: re_string_first_byte
      Src: /src/git/compat/regex/regcomp.c:2035,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:2035,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:2043,1
    - Dst: re_string_length
      Src: /src/git/compat/regex/regcomp.c:2043,1
    - Dst: re_string_skip_bytes
      Src: /src/git/compat/regex/regcomp.c:2047,1
    - Dst: re_string_peek_byte
      Src: /src/git/compat/regex/regcomp.c:2048,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:2057,1
    - Dst: re_string_length
      Src: /src/git/compat/regex/regcomp.c:2057,1
    - Dst: re_string_peek_byte
      Src: /src/git/compat/regex/regcomp.c:2058,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 3
    argNames:
    - token
    - input
    - syntax
    argTypes:
    - re_token_t*
    - re_string_t*
    - reg_syntax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2020
    functionDepth: 1
    functionLinenumber: 2020
    functionLinenumberEnd: 2101
    functionName: internal_function::peek_token_bracket
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - re_string_first_byte
    - re_string_eoi
    - re_string_peek_byte
    - re_string_length
    - re_string_cur_idx
    - re_string_skip_bytes
    linkageType: ''
    returnType: int
    signature: 'int internal_function

      peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fetch_token
      Src: /src/git/compat/regex/regcomp.c:2125,1
    - Dst: parse_reg_exp
      Src: /src/git/compat/regex/regcomp.c:2126,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2127,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2129,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2131,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - regexp
    - preg
    - syntax
    - err
    argTypes:
    - re_string_t*
    - regex_t*
    - reg_syntax_t
    - reg_errcode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2117
    functionDepth: 1
    functionLinenumber: 2117
    functionLinenumberEnd: 2140
    functionName: parse
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 27
    functionsReached:
    - fetch_token
    - parse_reg_exp
    - create_tree
    - BE
    linkageType: ''
    returnType: bin_tree_t
    signature: "bin_tree_t *\nparse (re_string_t *regexp, regex_t *preg, reg_syntax_t
      syntax,\n       reg_errcode_t *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_branch
      Src: /src/git/compat/regex/regcomp.c:2157,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2158,1
    - Dst: fetch_token
      Src: /src/git/compat/regex/regcomp.c:2163,1
    - Dst: parse_branch
      Src: /src/git/compat/regex/regcomp.c:2167,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2168,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2173,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 6
    argNames:
    - regexp
    - preg
    - token
    - syntax
    - nest
    - err
    argTypes:
    - re_string_t*
    - regex_t*
    - re_token_t*
    - reg_syntax_t
    - int
    - reg_errcode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2151
    functionDepth: 1
    functionLinenumber: 2151
    functionLinenumberEnd: 2181
    functionName: parse_reg_exp
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - fetch_token
    - parse_branch
    - create_tree
    - BE
    linkageType: ''
    returnType: bin_tree_t
    signature: "bin_tree_t *\nparse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t
      *token,\n\t       reg_syntax_t syntax, int nest, reg_errcode_t *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_expression
      Src: /src/git/compat/regex/regcomp.c:2198,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2199,1
    - Dst: parse_expression
      Src: /src/git/compat/regex/regcomp.c:2205,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2206,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2212,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 6
    argNames:
    - regexp
    - preg
    - token
    - syntax
    - nest
    - err
    argTypes:
    - re_string_t*
    - regex_t*
    - re_token_t*
    - reg_syntax_t
    - int
    - reg_errcode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2192
    functionDepth: 1
    functionLinenumber: 2192
    functionLinenumberEnd: 2224
    functionName: parse_branch
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - create_tree
    - parse_expression
    - BE
    linkageType: ''
    returnType: bin_tree_t
    signature: "bin_tree_t *\nparse_branch (re_string_t *regexp, regex_t *preg, re_token_t
      *token,\n\t      reg_syntax_t syntax, int nest, reg_errcode_t *err)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:2241,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2242,1
    - Dst: re_string_eoi
      Src: /src/git/compat/regex/regcomp.c:2250,1
    - Dst: re_string_first_byte
      Src: /src/git/compat/regex/regcomp.c:2251,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:2251,1
    - Dst: fetch_token
      Src: /src/git/compat/regex/regcomp.c:2254,1
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:2255,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2256,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2257,1
    - Dst: parse_sub_exp
      Src: /src/git/compat/regex/regcomp.c:2267,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2268,1
    - Dst: parse_bracket_exp
      Src: /src/git/compat/regex/regcomp.c:2272,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2273,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2277,1
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:2283,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2284,1
    - Dst: fetch_token
      Src: /src/git/compat/regex/regcomp.c:2309,1
    - Dst: parse_expression
      Src: /src/git/compat/regex/regcomp.c:2310,1
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:2328,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2329,1
    - Dst: init_word_char
      Src: /src/git/compat/regex/regcomp.c:2339,1
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:2347,1
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:2353,1
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:2356,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2357,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2358,1
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:2366,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2367,1
    - Dst: fetch_token
      Src: /src/git/compat/regex/regcomp.c:2377,1
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:2380,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2381,1
    - Dst: build_charclass_op
      Src: /src/git/compat/regex/regcomp.c:2391,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2395,1
    - Dst: build_charclass_op
      Src: /src/git/compat/regex/regcomp.c:2400,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2404,1
    - Dst: assert
      Src: /src/git/compat/regex/regcomp.c:2416,1
    - Dst: fetch_token
      Src: /src/git/compat/regex/regcomp.c:2420,1
    - Dst: parse_dup_op
      Src: /src/git/compat/regex/regcomp.c:2425,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2426,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 143
    argCount: 6
    argNames:
    - regexp
    - preg
    - token
    - syntax
    - nest
    - err
    argTypes:
    - re_string_t*
    - regex_t*
    - re_token_t*
    - reg_syntax_t
    - int
    - reg_errcode_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 2415
        line_start: 2415
        source_file: /src/git/compat/regex/regcomp.c
    constantsTouched: []
    func_position:
      end: 2439
      start: 2232
    functionDepth: 1
    functionLinenumber: 2232
    functionLinenumberEnd: 2439
    functionName: parse_expression
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 2
    functionsReached:
    - fetch_token
    - parse_sub_exp
    - re_string_first_byte
    - assert
    - parse_dup_op
    - re_string_eoi
    - parse_expression
    - BE
    - parse_bracket_exp
    - init_word_char
    - re_string_cur_idx
    - create_tree
    - create_token_tree
    - build_charclass_op
    linkageType: ''
    returnType: bin_tree_t
    signature: "bin_tree_t *\nparse_expression (re_string_t *regexp, regex_t *preg,
      re_token_t *token,\n\t\t  reg_syntax_t syntax, int nest, reg_errcode_t *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fetch_token
      Src: /src/git/compat/regex/regcomp.c:2457,1
    - Dst: parse_reg_exp
      Src: /src/git/compat/regex/regcomp.c:2464,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2465,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2467,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2474,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2475,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - regexp
    - preg
    - token
    - syntax
    - nest
    - err
    argTypes:
    - re_string_t*
    - regex_t*
    - re_token_t*
    - reg_syntax_t
    - int
    - reg_errcode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2448
    functionDepth: 2
    functionLinenumber: 2448
    functionLinenumberEnd: 2482
    functionName: parse_sub_exp
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - fetch_token
    - parse_reg_exp
    - create_tree
    - BE
    linkageType: ''
    returnType: bin_tree_t
    signature: "bin_tree_t *\nparse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t
      *token,\n\t       reg_syntax_t syntax, int nest, reg_errcode_t *err)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:2491,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regcomp.c:2497,1
    - Dst: fetch_number
      Src: /src/git/compat/regex/regcomp.c:2503,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2514,1
    - Dst: fetch_number
      Src: /src/git/compat/regex/regcomp.c:2519,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2521,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2524,1
    - Dst: re_string_set_index
      Src: /src/git/compat/regex/regcomp.c:2535,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2543,1
    - Dst: fetch_token
      Src: /src/git/compat/regex/regcomp.c:2556,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2558,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2560,1
    - Dst: postorder
      Src: /src/git/compat/regex/regcomp.c:2562,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2567,1
    - Dst: duplicate_tree
      Src: /src/git/compat/regex/regcomp.c:2572,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2573,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2574,1
    - Dst: duplicate_tree
      Src: /src/git/compat/regex/regcomp.c:2582,1
    - Dst: postorder
      Src: /src/git/compat/regex/regcomp.c:2589,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2591,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2592,1
    - Dst: duplicate_tree
      Src: /src/git/compat/regex/regcomp.c:2600,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2601,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2602,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2605,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2606,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:2611,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 81
    argCount: 6
    argNames:
    - elem
    - regexp
    - dfa
    - token
    - syntax
    - err
    argTypes:
    - bin_tree_t*
    - re_string_t*
    - re_dfa_t*
    - re_token_t*
    - reg_syntax_t
    - reg_errcode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2486
    functionDepth: 2
    functionLinenumber: 2486
    functionLinenumberEnd: 2618
    functionName: parse_dup_op
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - fetch_token
    - postorder
    - re_string_set_index
    - BE
    - memcpy
    - re_string_cur_idx
    - duplicate_tree
    - create_tree
    - fetch_number
    linkageType: ''
    returnType: bin_tree_t
    signature: "bin_tree_t *\nparse_dup_op (bin_tree_t *elem, re_string_t *regexp,
      re_dfa_t *dfa,\n\t      re_token_t *token, reg_syntax_t syntax, reg_errcode_t
      *err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2644,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2651,1
    - Dst: strlen
      Src: /src/git/compat/regex/regcomp.c:2652,1
    - Dst: strlen
      Src: /src/git/compat/regex/regcomp.c:2654,1
    - Dst: __btowc
      Src: /src/git/compat/regex/regcomp.c:2682,1
    - Dst: __btowc
      Src: /src/git/compat/regex/regcomp.c:2684,1
    - Dst: wcscoll
      Src: /src/git/compat/regex/regcomp.c:2690,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2701,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regcomp.c:2711,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regcomp.c:2713,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2716,1
    - Dst: wcscoll
      Src: /src/git/compat/regex/regcomp.c:2732,1
    - Dst: wcscoll
      Src: /src/git/compat/regex/regcomp.c:2733,1
    - Dst: bitset_set
      Src: /src/git/compat/regex/regcomp.c:2734,1
    - Dst: bitset_set
      Src: /src/git/compat/regex/regcomp.c:2751,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 46
    argCount: 3
    argNames:
    - sbcset
    - start_elem
    - end_elem
    argTypes:
    - bitset_t
    - bracket_elem_t*
    - bracket_elem_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2638
    functionDepth: 1
    functionLinenumber: 2638
    functionLinenumberEnd: 2755
    functionName: build_range_exp
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - __btowc
    - wcscoll
    - bitset_set
    - re_realloc
    - BE
    - strlen
    linkageType: ''
    returnType: void
    signature: "void build_range_exp (bitset_t sbcset, bracket_elem_t *start_elem,\n\t\t
      bracket_elem_t *end_elem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/regex/regcomp.c:2774,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:2775,1
    - Dst: bitset_set
      Src: /src/git/compat/regex/regcomp.c:2779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sbcset
    - name
    argTypes:
    - bitset_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2771
    functionDepth: 1
    functionLinenumber: 2771
    functionLinenumberEnd: 2782
    functionName: build_collating_symbol
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - strlen
    - bitset_set
    - BE
    linkageType: ''
    returnType: void
    signature: void build_collating_symbol (bitset_t sbcset, const unsigned char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: seek_collating_symbol_entry
      Src: /src/git/compat/regex/regcomp.c:3006,1
    - Dst: bitset_set
      Src: /src/git/compat/regex/regcomp.c:3018,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3026,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regcomp.c:3033,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3035,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 2995
    functionDepth: 1
    functionLinenumber: 2995
    functionLinenumberEnd: 3042
    functionName: strlen
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 544
    functionsReached:
    - seek_collating_symbol_entry
    - bitset_set
    - re_realloc
    - BE
    linkageType: ''
    returnType: void
    signature: "void strlen ((const char *) name);\n      if (nrules != 0)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: re_string_char_size_at
      Src: /src/git/compat/regex/regcomp.c:3353,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:3353,1
    - Dst: re_string_wchar_at
      Src: /src/git/compat/regex/regcomp.c:3357,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regcomp.c:3357,1
    - Dst: re_string_skip_bytes
      Src: /src/git/compat/regex/regcomp.c:3358,1
    - Dst: re_string_skip_bytes
      Src: /src/git/compat/regex/regcomp.c:3362,1
    - Dst: parse_bracket_symbol
      Src: /src/git/compat/regex/regcomp.c:3365,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3366,1
    - Dst: peek_token_bracket
      Src: /src/git/compat/regex/regcomp.c:3371,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 7
    argNames:
    - elem
    - regexp
    - token
    - token_len
    - dfa
    - syntax
    - accept_hyphen
    argTypes:
    - bracket_elem_t*
    - re_string_t*
    - re_token_t*
    - int
    - re_dfa_t*
    - reg_syntax_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3346
    functionDepth: 1
    functionLinenumber: 3346
    functionLinenumberEnd: 3380
    functionName: parse_bracket_element
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - parse_bracket_symbol
    - BE
    - peek_token_bracket
    - re_string_wchar_at
    - re_string_cur_idx
    - re_string_char_size_at
    - re_string_skip_bytes
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t
      *regexp,\n\t\t       re_token_t *token, int token_len, re_dfa_t *dfa,\n\t\t
      \      reg_syntax_t syntax, int accept_hyphen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: re_string_eoi
      Src: /src/git/compat/regex/regcomp.c:3392,1
    - Dst: re_string_fetch_byte_case
      Src: /src/git/compat/regex/regcomp.c:3399,1
    - Dst: re_string_fetch_byte
      Src: /src/git/compat/regex/regcomp.c:3401,1
    - Dst: re_string_eoi
      Src: /src/git/compat/regex/regcomp.c:3402,1
    - Dst: re_string_peek_byte
      Src: /src/git/compat/regex/regcomp.c:3404,1
    - Dst: re_string_skip_bytes
      Src: /src/git/compat/regex/regcomp.c:3408,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - elem
    - regexp
    - token
    argTypes:
    - bracket_elem_t*
    - re_string_t*
    - re_token_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3425
      start: 3386
    functionDepth: 2
    functionLinenumber: 3386
    functionLinenumberEnd: 3425
    functionName: parse_bracket_symbol
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - re_string_eoi
    - re_string_fetch_byte_case
    - re_string_peek_byte
    - re_string_fetch_byte
    - re_string_skip_bytes
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t
      *regexp,\n\t\t      re_token_t *token)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _NL_CURRENT_WORD
      Src: /src/git/compat/regex/regcomp.c:3442,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regcomp.c:3455,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regcomp.c:3456,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regcomp.c:3458,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regcomp.c:3460,1
    - Dst: findidx
      Src: /src/git/compat/regex/regcomp.c:3462,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3463,1
    - Dst: strlen
      Src: /src/git/compat/regex/regcomp.c:3463,1
    - Dst: findidx
      Src: /src/git/compat/regex/regcomp.c:3474,1
    - Dst: bitset_set
      Src: /src/git/compat/regex/regcomp.c:3493,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3497,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regcomp.c:3503,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3506,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3516,1
    - Dst: strlen
      Src: /src/git/compat/regex/regcomp.c:3516,1
    - Dst: bitset_set
      Src: /src/git/compat/regex/regcomp.c:3518,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - sbcset
    - name
    argTypes:
    - bitset_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3438
    functionDepth: 2
    functionLinenumber: 3438
    functionLinenumberEnd: 3521
    functionName: build_equiv_class
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - bitset_set
    - re_realloc
    - BE
    - _NL_CURRENT_WORD
    - strlen
    - _NL_CURRENT
    - findidx
    linkageType: ''
    returnType: void
    signature: void build_equiv_class (bitset_t sbcset, const unsigned char *name)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3544,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3544,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3549,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regcomp.c:3555,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3557,1
    - Dst: __wctype
      Src: /src/git/compat/regex/regcomp.c:3562,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3581,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3582,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3583,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3584,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3585,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3586,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3587,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3588,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3589,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3590,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3591,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3592,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3593,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3594,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3595,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3596,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3597,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3599,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3602,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3604,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3605,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3606,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3607,1
    - Dst: strcmp
      Src: /src/git/compat/regex/regcomp.c:3608,1
    - Dst: BUILD_CHARCLASS_LOOP
      Src: /src/git/compat/regex/regcomp.c:3609,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - trans
    - sbcset
    - class_name
    - syntax
    argTypes:
    - RE_TRANSLATE_TYPE
    - bitset_t
    - char*
    - reg_syntax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3614
      start: 3535
    functionDepth: 1
    functionLinenumber: 3535
    functionLinenumberEnd: 3614
    functionName: build_charclass
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - re_realloc
    - BE
    - __wctype
    - strcmp
    - BUILD_CHARCLASS_LOOP
    linkageType: ''
    returnType: void
    signature: "void build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,\n\t\t
      const char *class_name, reg_syntax_t syntax)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctype_func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3565
    functionDepth: 0
    functionLinenumber: 3565
    functionLinenumberEnd: 3580
    functionName: BUILD_CHARCLASS_LOOP
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_CHARCLASS_LOOP(ctype_func)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/git/compat/regex/regcomp.c:3631,1
    - Dst: calloc
      Src: /src/git/compat/regex/regcomp.c:3633,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3637,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3639,1
    - Dst: build_charclass
      Src: /src/git/compat/regex/regcomp.c:3654,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3660,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:3662,1
    - Dst: free_charset
      Src: /src/git/compat/regex/regcomp.c:3664,1
    - Dst: bitset_set
      Src: /src/git/compat/regex/regcomp.c:3671,1
    - Dst: bitset_not
      Src: /src/git/compat/regex/regcomp.c:3675,1
    - Dst: bitset_mask
      Src: /src/git/compat/regex/regcomp.c:3680,1
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:3686,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3687,1
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:3698,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3699,1
    - Dst: create_tree
      Src: /src/git/compat/regex/regcomp.c:3702,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3703,1
    - Dst: free_charset
      Src: /src/git/compat/regex/regcomp.c:3708,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:3716,1
    - Dst: free_charset
      Src: /src/git/compat/regex/regcomp.c:3718,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 6
    argNames:
    - dfa
    - trans
    - class_name
    - extra
    - non_match
    - err
    argTypes:
    - re_dfa_t*
    - RE_TRANSLATE_TYPE
    - char*
    - char*
    - int
    - reg_errcode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3722
      start: 3616
    functionDepth: 2
    functionLinenumber: 3616
    functionLinenumberEnd: 3722
    functionName: build_charclass_op
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - re_free
    - free_charset
    - bitset_not
    - bitset_set
    - BE
    - create_tree
    - build_charclass
    - create_token_tree
    - calloc
    - bitset_mask
    linkageType: ''
    returnType: bin_tree_t
    signature: "bin_tree_t *\nbuild_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE
      trans,\n\t\t    const char *class_name,\n\t\t    const char *extra, int non_match,\n\t\t
      \   reg_errcode_t *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fetch_token
      Src: /src/git/compat/regex/regcomp.c:3736,1
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3738,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - input
    - token
    - syntax
    argTypes:
    - re_string_t*
    - re_token_t*
    - reg_syntax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3747
      start: 3729
    functionDepth: 1
    functionLinenumber: 3729
    functionLinenumberEnd: 3747
    functionName: fetch_number
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - fetch_token
    - BE
    linkageType: ''
    returnType: int
    signature: int fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t
      syntax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:3753,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:3755,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:3756,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:3757,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:3758,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:3760,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:3761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cset
    argTypes:
    - re_charset_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3762
      start: 3750
    functionDepth: 1
    functionLinenumber: 3750
    functionLinenumberEnd: 3762
    functionName: free_charset
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - re_free
    linkageType: ''
    returnType: void
    signature: void free_charset (re_charset_t *cset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:3775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dfa
    - left
    - right
    - type
    argTypes:
    - re_dfa_t*
    - bin_tree_t*
    - bin_tree_t*
    - re_token_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3776
      start: 3769
    functionDepth: 1
    functionLinenumber: 3769
    functionLinenumberEnd: 3776
    functionName: create_tree
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 8
    functionsReached:
    - create_token_tree
    linkageType: ''
    returnType: bin_tree_t
    signature: "bin_tree_t *\ncreate_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t
      *right,\n\t     re_token_type_t type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regcomp.c:3783,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regcomp.c:3785,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - dfa
    - left
    - right
    - token
    argTypes:
    - re_dfa_t*
    - bin_tree_t*
    - bin_tree_t*
    - re_token_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3810
      start: 3778
    functionDepth: 1
    functionLinenumber: 3778
    functionLinenumberEnd: 3810
    functionName: create_token_tree
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 3
    functionsReached:
    - re_malloc
    - BE
    linkageType: ''
    returnType: bin_tree_t
    signature: "bin_tree_t *\ncreate_token_tree (re_dfa_t *dfa, bin_tree_t *left,
      bin_tree_t *right,\n\t\t   const re_token_t *token)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - extra
    - node
    argTypes:
    - void*
    - bin_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3823
      start: 3815
    functionDepth: 0
    functionLinenumber: 3815
    functionLinenumberEnd: 3823
    functionName: mark_opt_subexp
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free_charset
      Src: /src/git/compat/regex/regcomp.c:3832,1
    - Dst: re_free
      Src: /src/git/compat/regex/regcomp.c:3836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - re_token_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3837
      start: 3827
    functionDepth: 2
    functionLinenumber: 3827
    functionLinenumberEnd: 3837
    functionName: free_token
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - re_free
    - free_charset
    linkageType: ''
    returnType: void
    signature: void free_token (re_token_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_token
      Src: /src/git/compat/regex/regcomp.c:3845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - extra
    - node
    argTypes:
    - void*
    - bin_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3847
      start: 3842
    functionDepth: 3
    functionLinenumber: 3842
    functionLinenumberEnd: 3847
    functionName: free_tree
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - free_token
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t free_tree (void *extra, bin_tree_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_token_tree
      Src: /src/git/compat/regex/regcomp.c:3865,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - root
    - dfa
    argTypes:
    - bin_tree_t*
    - re_dfa_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3893
      start: 3855
    functionDepth: 2
    functionLinenumber: 3855
    functionLinenumberEnd: 3893
    functionName: duplicate_tree
    functionSourceFile: /src/git/compat/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - create_token_tree
    linkageType: ''
    returnType: bin_tree_t
    signature: 'bin_tree_t *

      duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/compat/regex/regexec.c:240,1
    - Dst: __libc_lock_lock
      Src: /src/git/compat/regex/regexec.c:243,1
    - Dst: re_search_internal
      Src: /src/git/compat/regex/regexec.c:245,1
    - Dst: re_search_internal
      Src: /src/git/compat/regex/regexec.c:248,1
    - Dst: __libc_lock_unlock
      Src: /src/git/compat/regex/regexec.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - preg
    - string
    - nmatch
    - pmatch
    - eflags
    argTypes:
    - regex_t*
    - char*
    - size_t
    - regmatch_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 252
    functionName: regexec
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 13
    functionsReached:
    - __libc_lock_unlock
    - strlen
    - re_search_internal
    - __libc_lock_lock
    linkageType: ''
    returnType: int
    signature: "int regexec (\n\tconst regex_t *__restrict preg,\n\tconst char *__restrict
      string,\n\tsize_t nmatch,\n\tregmatch_t pmatch[],\n\tint eflags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regexec
      Src: /src/git/compat/regex/regexec.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - preg
    - string
    - nmatch
    - pmatch
    - eflags
    argTypes:
    - regex_t*
    - char*
    - size_t
    - regmatch_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 269
    functionName: attribute_compat_text_section::__compat_regexec
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - regexec
    linkageType: ''
    returnType: int
    signature: "int attribute_compat_text_section\n__compat_regexec (const regex_t
      *__restrict preg,\n\t\t  const char *__restrict string, size_t nmatch,\n\t\t
      \ regmatch_t pmatch[], int eflags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: re_search_stub
      Src: /src/git/compat/regex/regexec.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bufp
    - string
    - length
    - start
    - regs
    argTypes:
    - struct re_pattern_buffer*
    - char*
    - int
    - int
    - struct re_registers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 311
    functionName: re_match
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_search_stub
    linkageType: ''
    returnType: int
    signature: "int re_match (struct re_pattern_buffer *bufp,\n\t  const char *string,\n\t
      \ int length,\n\t  int start,\n\t  struct re_registers *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: re_search_stub
      Src: /src/git/compat/regex/regexec.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - bufp
    - string
    - length
    - start
    - range
    - regs
    argTypes:
    - struct re_pattern_buffer*
    - char*
    - int
    - int
    - int
    - struct re_registers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: re_search
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_search_stub
    linkageType: ''
    returnType: int
    signature: "int re_search (struct re_pattern_buffer *bufp,\n\t   const char *string,\n\t
      \  int length, int start, int range,\n\t   struct re_registers *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: re_search_2_stub
      Src: /src/git/compat/regex/regexec.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - bufp
    - string1
    - length1
    - string2
    - length2
    - start
    - regs
    - stop
    argTypes:
    - struct re_pattern_buffer*
    - char*
    - int
    - char*
    - int
    - int
    - struct re_registers*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 336
    functionName: re_match_2
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_search_2_stub
    linkageType: ''
    returnType: int
    signature: "int re_match_2 (struct re_pattern_buffer *bufp,\n\t    const char
      *string1, int length1,\n\t    const char *string2, int length2, int start,\n\t
      \   struct re_registers *regs, int stop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: re_search_2_stub
      Src: /src/git/compat/regex/regexec.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - bufp
    - string1
    - length1
    - string2
    - length2
    - start
    - range
    - regs
    - stop
    argTypes:
    - struct re_pattern_buffer*
    - char*
    - int
    - char*
    - int
    - int
    - int
    - struct re_registers*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 349
    functionName: re_search_2
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_search_2_stub
    linkageType: ''
    returnType: int
    signature: "int re_search_2 (struct re_pattern_buffer *bufp,\n\t     const char
      *string1, int length1,\n\t     const char *string2, int length2, int start,\n\t
      \    int range, struct re_registers *regs,  int stop)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:366,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:373,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:375,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regexec.c:377,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regexec.c:378,1
    - Dst: re_search_stub
      Src: /src/git/compat/regex/regexec.c:387,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:389,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 10
    argNames:
    - bufp
    - string1
    - length1
    - string2
    - length2
    - start
    - range
    - regs
    - stop
    - ret_len
    argTypes:
    - struct re_pattern_buffer*
    - char*
    - int
    - char*
    - int
    - int
    - int
    - struct re_registers*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 391
    functionName: re_search_2_stub
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 2
    functionsReached:
    - re_free
    - re_malloc
    - BE
    - memcpy
    - re_search_stub
    linkageType: ''
    returnType: int
    signature: "int re_search_2_stub (struct re_pattern_buffer *bufp,\n\t\t  const
      char *string1, int length1,\n\t\t  const char *string2, int length2, int start,\n\t\t
      \ int range, struct re_registers *regs,\n\t\t  int stop, int ret_len)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:410,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:412,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:414,1
    - Dst: __libc_lock_lock
      Src: /src/git/compat/regex/regexec.c:417,1
    - Dst: re_compile_fastmap
      Src: /src/git/compat/regex/regexec.c:424,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:426,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:432,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:436,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:445,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:446,1
    - Dst: re_search_internal
      Src: /src/git/compat/regex/regexec.c:452,1
    - Dst: re_copy_regs
      Src: /src/git/compat/regex/regexec.c:463,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:465,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:469,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:473,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:479,1
    - Dst: __libc_lock_unlock
      Src: /src/git/compat/regex/regexec.c:481,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 8
    argNames:
    - bufp
    - string
    - length
    - start
    - range
    - stop
    - regs
    - ret_len
    argTypes:
    - struct re_pattern_buffer*
    - char*
    - int
    - int
    - int
    - int
    - struct re_registers*
    - int
    assertStmts:
    - condition: (pmatch[0].rm_so == start)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 483
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 483
    functionName: re_search_stub
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 3
    functionsReached:
    - re_free
    - __libc_lock_lock
    - assert
    - re_copy_regs
    - re_malloc
    - re_search_internal
    - BE
    - re_compile_fastmap
    - __libc_lock_unlock
    linkageType: ''
    returnType: int
    signature: "int re_search_stub (struct re_pattern_buffer *bufp,\n\t\tconst char
      *string, int length, int start,\n\t\tint range, int stop,\n\t\tstruct re_registers
      *regs, int ret_len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:499,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:500,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:502,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:503,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:505,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:514,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regexec.c:516,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:518,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regexec.c:520,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:521,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:523,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:533,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:535,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - regs
    - pmatch
    - nregs
    - regs_allocated
    argTypes:
    - struct re_registers*
    - regmatch_t*
    - int
    - int
    assertStmts:
    - condition: (regs_allocated == REGS_FIXED)
      pos:
        line_end: 532
        line_start: 532
        source_file: /src/git/compat/regex/regexec.c
    - condition: (regs->num_regs >= nregs)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 549
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 549
    functionName: re_copy_regs
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - re_free
    - assert
    - re_malloc
    - re_realloc
    - BE
    linkageType: ''
    returnType: unsigned
    signature: "unsigned re_copy_regs (struct re_registers *regs,\n\t      regmatch_t
      *pmatch,\n\t      int nregs, int regs_allocated)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - bufp
    - regs
    - num_regs
    - starts
    - ends
    argTypes:
    - struct re_pattern_buffer*
    - struct re_registers*
    - unsigned
    - regoff_t*
    - regoff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 584
    functionName: re_set_registers
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void re_set_registers (struct re_pattern_buffer *bufp,\n\t\t  struct
      re_registers *regs,\n\t\t  unsigned num_regs,\n\t\t  regoff_t *starts,\n\t\t
      \ regoff_t *ends)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/compat/regex/regexec.c:638,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:646,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:653,1
    - Dst: re_string_allocate
      Src: /src/git/compat/regex/regexec.c:672,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:674,1
    - Dst: match_ctx_init
      Src: /src/git/compat/regex/regexec.c:680,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:681,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:691,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:697,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:698,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:742,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:749,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:754,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:787,1
    - Dst: re_string_reconstruct
      Src: /src/git/compat/regex/regexec.c:789,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:791,1
    - Dst: re_string_byte_at
      Src: /src/git/compat/regex/regexec.c:799,1
    - Dst: re_string_reconstruct
      Src: /src/git/compat/regex/regexec.c:814,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:815,1
    - Dst: re_string_first_byte
      Src: /src/git/compat/regex/regexec.c:821,1
    - Dst: check_matching
      Src: /src/git/compat/regex/regexec.c:828,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:832,1
    - Dst: check_halt_state_context
      Src: /src/git/compat/regex/regexec.c:843,1
    - Dst: prune_impossible_nodes
      Src: /src/git/compat/regex/regexec.c:849,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:852,1
    - Dst: match_ctx_clean
      Src: /src/git/compat/regex/regexec.c:861,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:865,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:866,1
    - Dst: set_regs
      Src: /src/git/compat/regex/regexec.c:884,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:886,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:897,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:909,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:932,1
    - Dst: match_ctx_free
      Src: /src/git/compat/regex/regexec.c:934,1
    - Dst: re_string_destruct
      Src: /src/git/compat/regex/regexec.c:935,1
    CyclomaticComplexity: 98
    EdgeCount: 98
    ICount: 177
    argCount: 9
    argNames:
    - preg
    - string
    - length
    - start
    - range
    - stop
    - nmatch
    - pmatch
    - eflags
    argTypes:
    - regex_t*
    - char*
    - int
    - int
    - int
    - int
    - size_t
    - regmatch_t[]
    - int
    assertStmts:
    - condition: (start + range >= 0 && start + range <= length)
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/git/compat/regex/regexec.c
    - condition: (match_last != -1)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/git/compat/regex/regexec.c
    - condition: (mctx.input.offsets_needed == 0)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/git/compat/regex/regexec.c
    - condition: (err == REG_NOERROR)
      pos:
        line_end: 865
        line_start: 865
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 937
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 937
    functionName: re_search_internal
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 2
    functionsReached:
    - check_matching
    - match_ctx_init
    - memset
    - match_ctx_clean
    - re_free
    - assert
    - re_string_first_byte
    - prune_impossible_nodes
    - re_malloc
    - re_string_reconstruct
    - re_string_destruct
    - BE
    - match_ctx_free
    - re_string_allocate
    - set_regs
    - check_halt_state_context
    - re_string_byte_at
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t re_search_internal (const regex_t *preg,\n\t\t    const
      char *string,\n\t\t    int length, int start, int range, int stop,\n\t\t    size_t
      nmatch, regmatch_t pmatch[],\n\t\t    int eflags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:949,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:955,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:958,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:959,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:966,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:967,1
    - Dst: memset
      Src: /src/git/compat/regex/regexec.c:974,1
    - Dst: sift_ctx_init
      Src: /src/git/compat/regex/regexec.c:976,1
    - Dst: sift_states_backward
      Src: /src/git/compat/regex/regexec.c:978,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:979,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:980,1
    - Dst: check_halt_state_context
      Src: /src/git/compat/regex/regexec.c:994,1
    - Dst: merge_state_array
      Src: /src/git/compat/regex/regexec.c:998,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1000,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1002,1
    - Dst: sift_ctx_init
      Src: /src/git/compat/regex/regexec.c:1007,1
    - Dst: sift_states_backward
      Src: /src/git/compat/regex/regexec.c:1008,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1009,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1010,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1018,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1025,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1026,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - re_match_context_t*
    assertStmts:
    - condition: (mctx->state_log != NULL)
      pos:
        line_end: 948
        line_start: 948
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 1028
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 1028
    functionName: prune_impossible_nodes
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - sift_states_backward
    - memset
    - re_node_set_free
    - re_free
    - assert
    - re_malloc
    - merge_state_array
    - sift_ctx_init
    - BE
    - check_halt_state_context
    linkageType: ''
    returnType: reg_errcode_t
    signature: reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: re_string_context_at
      Src: /src/git/compat/regex/regexec.c:1043,1
    - Dst: IS_WORD_CONTEXT
      Src: /src/git/compat/regex/regexec.c:1044,1
    - Dst: IS_ORDINARY_CONTEXT
      Src: /src/git/compat/regex/regexec.c:1046,1
    - Dst: IS_BEGBUF_CONTEXT
      Src: /src/git/compat/regex/regexec.c:1048,1
    - Dst: IS_NEWLINE_CONTEXT
      Src: /src/git/compat/regex/regexec.c:1048,1
    - Dst: IS_NEWLINE_CONTEXT
      Src: /src/git/compat/regex/regexec.c:1050,1
    - Dst: IS_BEGBUF_CONTEXT
      Src: /src/git/compat/regex/regexec.c:1052,1
    - Dst: re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:1055,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - err
    - mctx
    - idx
    argTypes:
    - reg_errcode_t*
    - re_match_context_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1065
    functionName: acquire_init_state_context
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - IS_NEWLINE_CONTEXT
    - IS_BEGBUF_CONTEXT
    - IS_ORDINARY_CONTEXT
    - IS_WORD_CONTEXT
    - re_string_context_at
    - re_acquire_state_context
    linkageType: ''
    returnType: internal_function
    signature: "internal_function acquire_init_state_context (reg_errcode_t *err,
      const re_match_context_t *mctx,\n\t\t\t    int idx)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:1085,1
    - Dst: acquire_init_state_context
      Src: /src/git/compat/regex/regexec.c:1091,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1093,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:1095,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1105,1
    - Dst: internal_function::check_subexp_matching_top
      Src: /src/git/compat/regex/regexec.c:1108,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1109,1
    - Dst: internal_function::transit_state_bkref
      Src: /src/git/compat/regex/regexec.c:1114,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1115,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1122,1
    - Dst: internal_function::check_halt_state_context
      Src: /src/git/compat/regex/regexec.c:1125,1
    - Dst: re_string_eoi
      Src: /src/git/compat/regex/regexec.c:1137,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:1140,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1142,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1143,1
    - Dst: internal_function::extend_buffers
      Src: /src/git/compat/regex/regexec.c:1146,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1147,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:1149,1
    - Dst: internal_function::transit_state
      Src: /src/git/compat/regex/regexec.c:1154,1
    - Dst: internal_function::merge_state_with_log
      Src: /src/git/compat/regex/regexec.c:1156,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1163,1
    - Dst: internal_function::find_recover_state
      Src: /src/git/compat/regex/regexec.c:1168,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1172,1
    - Dst: internal_function::check_halt_state_context
      Src: /src/git/compat/regex/regexec.c:1185,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:1186,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:1189,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 65
    argCount: 3
    argNames:
    - mctx
    - fl_longest_match
    - p_match_first
    argTypes:
    - re_match_context_t*
    - int
    - int*
    assertStmts:
    - condition: (err == REG_ESPACE)
      pos:
        line_end: 1094
        line_start: 1094
        source_file: /src/git/compat/regex/regexec.c
    - condition: (err == REG_ESPACE)
      pos:
        line_end: 1148
        line_start: 1148
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 1204
      start: 1076
    functionDepth: 2
    functionLinenumber: 1076
    functionLinenumberEnd: 1204
    functionName: internal_function::check_matching
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - internal_function::extend_buffers
    - assert
    - internal_function::check_halt_state_context
    - internal_function::check_subexp_matching_top
    - re_string_eoi
    - internal_function::find_recover_state
    - acquire_init_state_context
    - BE
    - internal_function::merge_state_with_log
    - internal_function::transit_state
    - re_string_cur_idx
    - internal_function::transit_state_bkref
    linkageType: ''
    returnType: int
    signature: "int internal_function\ncheck_matching (re_match_context_t *mctx, int
      fl_longest_match,\n\t\tint *p_match_first)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NOT_SATISFY_NEXT_CONSTRAINT
      Src: /src/git/compat/regex/regexec.c:1218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - dfa
    - node
    - context
    argTypes:
    - re_dfa_t*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1221
    functionName: internal_function::check_halt_node_context
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - NOT_SATISFY_NEXT_CONSTRAINT
    linkageType: ''
    returnType: int
    signature: 'int internal_function

      check_halt_node_context (const re_dfa_t *dfa, int node, unsigned int context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:1235,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regexec.c:1237,1
    - Dst: internal_function::check_halt_node_context
      Src: /src/git/compat/regex/regexec.c:1239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - mctx
    - state
    - idx
    argTypes:
    - re_match_context_t*
    - re_dfastate_t*
    - int
    assertStmts:
    - condition: (state->halt)
      pos:
        line_end: 1234
        line_start: 1234
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 1242
      start: 1227
    functionDepth: 2
    functionLinenumber: 1227
    functionLinenumberEnd: 1242
    functionName: internal_function::check_halt_state_context
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::re_string_context_at
    - internal_function::check_halt_node_context
    - assert
    linkageType: ''
    returnType: int
    signature: "int internal_function\ncheck_halt_state_context (const re_match_context_t
      *mctx,\n\t\t\t  const re_dfastate_t *state, int idx)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: IS_EPSILON_NODE
      Src: /src/git/compat/regex/regexec.c:1257,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regexec.c:1262,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1263,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:1269,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:1278,1
    - Dst: internal_function::push_fail_stack
      Src: /src/git/compat/regex/regexec.c:1283,1
    - Dst: internal_function::check_node_accept_bytes
      Src: /src/git/compat/regex/regexec.c:1300,1
    - Dst: re_string_get_buffer
      Src: /src/git/compat/regex/regexec.c:1313,1
    - Dst: memcmp
      Src: /src/git/compat/regex/regexec.c:1314,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regexec.c:1323,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1324,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:1327,1
    - Dst: internal_function::check_node_accept
      Src: /src/git/compat/regex/regexec.c:1334,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:1339,1
    - Dst: re_node_set_empty
      Src: /src/git/compat/regex/regexec.c:1342,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 49
    argCount: 7
    argNames:
    - mctx
    - nregs
    - regs
    - pidx
    - node
    - eps_via_nodes
    - fs
    argTypes:
    - re_match_context_t*
    - int
    - regmatch_t*
    - int*
    - int
    - re_node_set*
    - struct re_fail_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1249
    functionDepth: 3
    functionLinenumber: 1249
    functionLinenumberEnd: 1347
    functionName: internal_function::proceed_next_node
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - IS_EPSILON_NODE
    - re_node_set_contains
    - re_node_set_empty
    - internal_function::check_node_accept
    - BE
    - internal_function::push_fail_stack
    - internal_function::re_node_set_insert
    - internal_function::check_node_accept_bytes
    - re_string_get_buffer
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int internal_function\nproceed_next_node (const re_match_context_t
      *mctx, int nregs, regmatch_t *regs,\n\t\t   int *pidx, int node, re_node_set
      *eps_via_nodes,\n\t\t   struct re_fail_stack_t *fs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/git/compat/regex/regexec.c:1359,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:1368,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regexec.c:1371,1
    - Dst: internal_function::re_node_set_init_copy
      Src: /src/git/compat/regex/regexec.c:1372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - fs
    - str_idx
    - dest_node
    - nregs
    - regs
    - eps_via_nodes
    argTypes:
    - struct re_fail_stack_t*
    - int
    - int
    - int
    - regmatch_t*
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1349
    functionDepth: 2
    functionLinenumber: 1349
    functionLinenumberEnd: 1374
    functionName: internal_function::push_fail_stack
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::re_node_set_init_copy
    - realloc
    - re_malloc
    - memcpy
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\npush_fail_stack (struct re_fail_stack_t
      *fs, int str_idx, int dest_node,\n\t\t int nregs, regmatch_t *regs, re_node_set
      *eps_via_nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:1382,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regexec.c:1384,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1385,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - fs
    - pidx
    - nregs
    - regs
    - eps_via_nodes
    argTypes:
    - struct re_fail_stack_t*
    - int*
    - int
    - regmatch_t*
    - re_node_set*
    assertStmts:
    - condition: (num >= 0)
      pos:
        line_end: 1381
        line_start: 1381
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 1389
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1389
    functionName: internal_function::pop_fail_stack
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_node_set_free
    - re_free
    - assert
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int internal_function\npop_fail_stack (struct re_fail_stack_t *fs,
      int *pidx, int nregs,\n\t\tregmatch_t *regs, re_node_set *eps_via_nodes)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:1410,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:1411,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:1416,1
    - Dst: re_node_set_init_empty
      Src: /src/git/compat/regex/regexec.c:1424,1
    - Dst: __libc_use_alloca
      Src: /src/git/compat/regex/regexec.c:1427,1
    - Dst: alloca
      Src: /src/git/compat/regex/regexec.c:1428,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:1432,1
    - Dst: free_fail_stack_return
      Src: /src/git/compat/regex/regexec.c:1435,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regexec.c:1440,1
    - Dst: update_regs
      Src: /src/git/compat/regex/regexec.c:1444,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1456,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1458,1
    - Dst: free_fail_stack_return
      Src: /src/git/compat/regex/regexec.c:1459,1
    - Dst: pop_fail_stack
      Src: /src/git/compat/regex/regexec.c:1461,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1466,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1468,1
    - Dst: proceed_next_node
      Src: /src/git/compat/regex/regexec.c:1474,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1477,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1479,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1481,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1483,1
    - Dst: free_fail_stack_return
      Src: /src/git/compat/regex/regexec.c:1484,1
    - Dst: pop_fail_stack
      Src: /src/git/compat/regex/regexec.c:1488,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1492,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1494,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1499,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1501,1
    - Dst: free_fail_stack_return
      Src: /src/git/compat/regex/regexec.c:1502,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 5
    argNames:
    - preg
    - mctx
    - nmatch
    - pmatch
    - fl_backtrack
    argTypes:
    - regex_t*
    - re_match_context_t*
    - size_t
    - regmatch_t*
    - int
    assertStmts:
    - condition: (mctx->state_log != NULL)
      pos:
        line_end: 1410
        line_start: 1410
        source_file: /src/git/compat/regex/regexec.c
    - condition: (nmatch > 1)
      pos:
        line_end: 1409
        line_start: 1409
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 1503
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1503
    functionName: internal_function
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - pop_fail_stack
    - re_node_set_free
    - re_free
    - assert
    - free_fail_stack_return
    - re_malloc
    - proceed_next_node
    - BE
    - memcpy
    - re_node_set_init_empty
    - update_regs
    - alloca
    - __libc_use_alloca
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nset_regs (const regex_t *preg, const
      re_match_context_t *mctx, size_t nmatch,\n\t  regmatch_t *pmatch, int fl_backtrack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1514,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1515,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:1517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fs
    argTypes:
    - struct re_fail_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1520
    functionName: internal_function::free_fail_stack_return
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_node_set_free
    - re_free
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      free_fail_stack_return (struct re_fail_stack_t *fs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/compat/regex/regexec.c:1550,1
    - Dst: memcpy
      Src: /src/git/compat/regex/regexec.c:1561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 6
    argNames:
    - dfa
    - pmatch
    - prev_idx_match
    - cur_node
    - cur_idx
    - nmatch
    argTypes:
    - re_dfa_t*
    - regmatch_t*
    - regmatch_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1569
    functionName: internal_function::update_regs
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void internal_function\nupdate_regs (const re_dfa_t *dfa, regmatch_t
      *pmatch,\n\t     regmatch_t *prev_idx_match, int cur_node, int cur_idx, int
      nmatch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1593
    functionName: STATE_NODE_CONTAINS
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_NODE_CONTAINS(state,node)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:1604,1
    - Dst: internal_function::re_node_set_init_1
      Src: /src/git/compat/regex/regexec.c:1609,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1610,1
    - Dst: internal_function::update_cur_sifted_state
      Src: /src/git/compat/regex/regexec.c:1612,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1613,1
    - Dst: memset
      Src: /src/git/compat/regex/regexec.c:1623,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1625,1
    - Dst: re_node_set_empty
      Src: /src/git/compat/regex/regexec.c:1628,1
    - Dst: internal_function::build_sifted_states
      Src: /src/git/compat/regex/regexec.c:1633,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1634,1
    - Dst: internal_function::update_cur_sifted_state
      Src: /src/git/compat/regex/regexec.c:1642,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1643,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1648,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - mctx
    - sctx
    argTypes:
    - re_match_context_t*
    - re_sift_context_t*
    assertStmts:
    - condition: (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL)
      pos:
        line_end: 1603
        line_start: 1603
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 1650
      start: 1594
    functionDepth: 2
    functionLinenumber: 1594
    functionLinenumberEnd: 1650
    functionName: internal_function::sift_states_backward
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - memset
    - internal_function::re_node_set_init_1
    - re_node_set_free
    - assert
    - re_node_set_empty
    - internal_function::update_cur_sifted_state
    - BE
    - internal_function::build_sifted_states
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:1676,1
    - Dst: IS_EPSILON_NODE
      Src: /src/git/compat/regex/regexec.c:1676,1
    - Dst: internal_function::sift_states_iter_mb
      Src: /src/git/compat/regex/regexec.c:1681,1
    - Dst: internal_function::check_node_accept
      Src: /src/git/compat/regex/regexec.c:1688,1
    - Dst: STATE_NODE_CONTAINS
      Src: /src/git/compat/regex/regexec.c:1689,1
    - Dst: internal_function::check_dst_limits
      Src: /src/git/compat/regex/regexec.c:1699,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regexec.c:1704,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1705,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - mctx
    - sctx
    - str_idx
    - cur_dest
    argTypes:
    - re_match_context_t*
    - re_sift_context_t*
    - int
    - re_node_set*
    assertStmts:
    - condition: (!IS_EPSILON_NODE (type))
      pos:
        line_end: 1675
        line_start: 1675
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 1710
      start: 1652
    functionDepth: 3
    functionLinenumber: 1652
    functionLinenumberEnd: 1710
    functionName: internal_function::build_sifted_states
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - IS_EPSILON_NODE
    - assert
    - internal_function::sift_states_iter_mb
    - internal_function::check_dst_limits
    - BE
    - internal_function::re_node_set_insert
    - STATE_NODE_CONTAINS
    - internal_function::check_node_accept
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nbuild_sifted_states (const re_match_context_t
      *mctx, re_sift_context_t *sctx,\n\t\t     int str_idx, re_node_set *cur_dest)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::extend_buffers
      Src: /src/git/compat/regex/regexec.c:1725,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1726,1
    - Dst: memset
      Src: /src/git/compat/regex/regexec.c:1732,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - mctx
    - next_state_log_idx
    argTypes:
    - re_match_context_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1714
    functionDepth: 1
    functionLinenumber: 1714
    functionLinenumberEnd: 1737
    functionName: internal_function::clean_state_log_if_needed
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - internal_function::extend_buffers
    - memset
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      clean_state_log_if_needed (re_match_context_t *mctx, int next_state_log_idx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::re_node_set_init_union
      Src: /src/git/compat/regex/regexec.c:1753,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1755,1
    - Dst: internal_function::re_acquire_state
      Src: /src/git/compat/regex/regexec.c:1757,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1758,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1759,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - dfa
    - dst
    - src
    - num
    argTypes:
    - re_dfa_t*
    - re_dfastate_t**
    - re_dfastate_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1739
    functionDepth: 3
    functionLinenumber: 1739
    functionLinenumberEnd: 1764
    functionName: internal_function::merge_state_array
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_node_set_free
    - internal_function::re_node_set_init_union
    - internal_function::re_acquire_state
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nmerge_state_array (const re_dfa_t
      *dfa, re_dfastate_t **dst,\n\t\t   re_dfastate_t **src, int num)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::add_epsilon_src_nodes
      Src: /src/git/compat/regex/regexec.c:1786,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1787,1
    - Dst: internal_function::check_subexp_limits
      Src: /src/git/compat/regex/regexec.c:1793,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1795,1
    - Dst: internal_function::re_acquire_state
      Src: /src/git/compat/regex/regexec.c:1800,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1801,1
    - Dst: internal_function::sift_states_bkref
      Src: /src/git/compat/regex/regexec.c:1807,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1808,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - mctx
    - sctx
    - str_idx
    - dest_nodes
    argTypes:
    - re_match_context_t*
    - re_sift_context_t*
    - int
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1766
    functionDepth: 2
    functionLinenumber: 1766
    functionLinenumberEnd: 1812
    functionName: internal_function::update_cur_sifted_state
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::add_epsilon_src_nodes
    - internal_function::check_subexp_limits
    - internal_function::sift_states_bkref
    - BE
    - internal_function::re_acquire_state
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nupdate_cur_sifted_state (const re_match_context_t
      *mctx,\n\t\t\t re_sift_context_t *sctx, int str_idx,\n\t\t\t re_node_set *dest_nodes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::re_acquire_state
      Src: /src/git/compat/regex/regexec.c:1822,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1823,1
    - Dst: internal_function::re_node_set_alloc
      Src: /src/git/compat/regex/regexec.c:1828,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1829,1
    - Dst: internal_function::re_node_set_merge
      Src: /src/git/compat/regex/regexec.c:1833,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1835,1
    - Dst: internal_function::re_node_set_add_intersect
      Src: /src/git/compat/regex/regexec.c:1839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - dfa
    - dest_nodes
    - candidates
    argTypes:
    - re_dfa_t*
    - re_node_set*
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1814
    functionDepth: 2
    functionLinenumber: 1814
    functionLinenumberEnd: 1841
    functionName: internal_function::add_epsilon_src_nodes
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::re_node_set_add_intersect
    - BE
    - internal_function::re_node_set_alloc
    - internal_function::re_node_set_merge
    - internal_function::re_acquire_state
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nadd_epsilon_src_nodes (const re_dfa_t
      *dfa, re_node_set *dest_nodes,\n\t\t       const re_node_set *candidates)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_init_empty
      Src: /src/git/compat/regex/regexec.c:1852,1
    - Dst: IS_EPSILON_NODE
      Src: /src/git/compat/regex/regexec.c:1858,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:1863,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:1864,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:1866,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:1867,1
    - Dst: internal_function::re_node_set_add_intersect
      Src: /src/git/compat/regex/regexec.c:1869,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:1871,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1873,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:1882,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:1884,1
    - Dst: internal_function::re_node_set_remove_at
      Src: /src/git/compat/regex/regexec.c:1885,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:1888,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 4
    argNames:
    - dfa
    - node
    - dest_nodes
    - candidates
    argTypes:
    - re_dfa_t*
    - int
    - re_node_set*
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1843
    functionDepth: 2
    functionLinenumber: 1843
    functionLinenumberEnd: 1890
    functionName: internal_function::sub_epsilon_src_nodes
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_node_set_free
    - IS_EPSILON_NODE
    - internal_function::re_node_set_add_intersect
    - re_node_set_contains
    - internal_function::re_node_set_remove_at
    - BE
    - re_node_set_init_empty
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nsub_epsilon_src_nodes (const re_dfa_t
      *dfa, int node, re_node_set *dest_nodes,\n\t\t       const re_node_set *candidates)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::search_cur_bkref_entry
      Src: /src/git/compat/regex/regexec.c:1900,1
    - Dst: internal_function::search_cur_bkref_entry
      Src: /src/git/compat/regex/regexec.c:1901,1
    - Dst: internal_function::check_dst_limits_calc_pos
      Src: /src/git/compat/regex/regexec.c:1909,1
    - Dst: internal_function::check_dst_limits_calc_pos
      Src: /src/git/compat/regex/regexec.c:1912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - mctx
    - limits
    - dst_node
    - dst_idx
    - src_node
    - src_idx
    argTypes:
    - re_match_context_t*
    - re_node_set*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1892
    functionDepth: 1
    functionLinenumber: 1892
    functionLinenumberEnd: 1926
    functionName: internal_function::check_dst_limits
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::search_cur_bkref_entry
    - internal_function::check_dst_limits_calc_pos
    linkageType: ''
    returnType: int
    signature: "int internal_function\ncheck_dst_limits (const re_match_context_t
      *mctx, re_node_set *limits,\n\t\t  int dst_node, int dst_idx, int src_node,
      int src_idx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::check_dst_limits_calc_pos_1
      Src: /src/git/compat/regex/regexec.c:1976,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 39
    argCount: 5
    argNames:
    - mctx
    - boundaries
    - subexp_idx
    - from_node
    - bkref_idx
    argTypes:
    - re_match_context_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1928
    functionDepth: 1
    functionLinenumber: 1928
    functionLinenumberEnd: 2007
    functionName: internal_function::check_dst_limits_calc_pos_1
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::check_dst_limits_calc_pos_1
    linkageType: ''
    returnType: int
    signature: "int internal_function\ncheck_dst_limits_calc_pos_1 (const re_match_context_t
      *mctx, int boundaries,\n\t\t\t     int subexp_idx, int from_node, int bkref_idx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::check_dst_limits_calc_pos_1
      Src: /src/git/compat/regex/regexec.c:2032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - mctx
    - limit
    - subexp_idx
    - from_node
    - str_idx
    - bkref_idx
    argTypes:
    - re_match_context_t*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2009
    functionDepth: 2
    functionLinenumber: 2009
    functionLinenumberEnd: 2034
    functionName: internal_function::check_dst_limits_calc_pos
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::check_dst_limits_calc_pos_1
    linkageType: ''
    returnType: int
    signature: "int internal_function\ncheck_dst_limits_calc_pos (const re_match_context_t
      *mctx, int limit,\n\t\t\t   int subexp_idx, int from_node, int str_idx,\n\t\t\t
      \  int bkref_idx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::sub_epsilon_src_nodes
      Src: /src/git/compat/regex/regexec.c:2078,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2080,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:2089,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:2091,1
    - Dst: internal_function::sub_epsilon_src_nodes
      Src: /src/git/compat/regex/regexec.c:2096,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2098,1
    - Dst: internal_function::sub_epsilon_src_nodes
      Src: /src/git/compat/regex/regexec.c:2116,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2118,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 40
    argCount: 6
    argNames:
    - dfa
    - dest_nodes
    - candidates
    - limits
    - bkref_ents
    - str_idx
    argTypes:
    - re_dfa_t*
    - re_node_set*
    - re_node_set*
    - re_node_set*
    - struct re_backref_cache_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2039
    functionDepth: 3
    functionLinenumber: 2039
    functionLinenumberEnd: 2125
    functionName: internal_function::check_subexp_limits
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - re_node_set_contains
    - BE
    - internal_function::sub_epsilon_src_nodes
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\ncheck_subexp_limits (const re_dfa_t
      *dfa, re_node_set *dest_nodes,\n\t\t     const re_node_set *candidates, re_node_set
      *limits,\n\t\t     struct re_backref_cache_entry *bkref_ents, int str_idx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::search_cur_bkref_entry
      Src: /src/git/compat/regex/regexec.c:2136,1
    - Dst: STATE_NODE_CONTAINS
      Src: /src/git/compat/regex/regexec.c:2175,1
    - Dst: internal_function::check_dst_limits
      Src: /src/git/compat/regex/regexec.c:2176,1
    - Dst: internal_function::re_node_set_init_copy
      Src: /src/git/compat/regex/regexec.c:2183,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2184,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regexec.c:2189,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2190,1
    - Dst: internal_function::sift_states_backward
      Src: /src/git/compat/regex/regexec.c:2196,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2197,1
    - Dst: internal_function::merge_state_array
      Src: /src/git/compat/regex/regexec.c:2201,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2204,1
    - Dst: re_node_set_remove
      Src: /src/git/compat/regex/regexec.c:2208,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2219,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 4
    argNames:
    - mctx
    - sctx
    - str_idx
    - candidates
    argTypes:
    - re_match_context_t*
    - re_sift_context_t*
    - int
    - re_node_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2127
    functionDepth: 4
    functionLinenumber: 2127
    functionLinenumberEnd: 2223
    functionName: internal_function::sift_states_bkref
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - re_node_set_remove
    - internal_function::re_node_set_init_copy
    - re_node_set_free
    - internal_function::check_dst_limits
    - BE
    - internal_function::sift_states_backward
    - internal_function::re_node_set_insert
    - internal_function::merge_state_array
    - STATE_NODE_CONTAINS
    - internal_function::search_cur_bkref_entry
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nsift_states_bkref (const re_match_context_t
      *mctx, re_sift_context_t *sctx,\n\t\t   int str_idx, const re_node_set *candidates)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::check_node_accept_bytes
      Src: /src/git/compat/regex/regexec.c:2235,1
    - Dst: STATE_NODE_CONTAINS
      Src: /src/git/compat/regex/regexec.c:2237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - mctx
    - sctx
    - node_idx
    - str_idx
    - max_str_idx
    argTypes:
    - re_match_context_t*
    - re_sift_context_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2227
    functionDepth: 1
    functionLinenumber: 2227
    functionLinenumberEnd: 2246
    functionName: internal_function::sift_states_iter_mb
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::check_node_accept_bytes
    - STATE_NODE_CONTAINS
    linkageType: ''
    returnType: int
    signature: "int internal_function\nsift_states_iter_mb (const re_match_context_t
      *mctx, re_sift_context_t *sctx,\n\t\t     int node_idx, int str_idx, int max_str_idx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2267,1
    - Dst: internal_function::transit_state_mb
      Src: /src/git/compat/regex/regexec.c:2269,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2270,1
    - Dst: transit_state_sb
      Src: /src/git/compat/regex/regexec.c:2279,1
    - Dst: re_string_fetch_byte
      Src: /src/git/compat/regex/regexec.c:2283,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2287,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2291,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regexec.c:2295,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:2296,1
    - Dst: IS_WORD_CONTEXT
      Src: /src/git/compat/regex/regexec.c:2298,1
    - Dst: internal_function::build_trtable
      Src: /src/git/compat/regex/regexec.c:2304,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - err
    - mctx
    - state
    argTypes:
    - reg_errcode_t*
    - re_match_context_t*
    - re_dfastate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2257
    functionDepth: 2
    functionLinenumber: 2257
    functionLinenumberEnd: 2312
    functionName: internal_function::transit_state
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::re_string_context_at
    - transit_state_sb
    - BE
    - IS_WORD_CONTEXT
    - internal_function::transit_state_mb
    - re_string_cur_idx
    - re_string_fetch_byte
    - internal_function::build_trtable
    linkageType: ''
    returnType: re_dfastate_t
    signature: "re_dfastate_t *\ninternal_function\ntransit_state (reg_errcode_t *err,
      re_match_context_t *mctx,\n\t       re_dfastate_t *state)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:2321,1
    - Dst: internal_function::re_node_set_init_union
      Src: /src/git/compat/regex/regexec.c:2346,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2348,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regexec.c:2356,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:2357,1
    - Dst: internal_function::re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:2360,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2365,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2368,1
    - Dst: internal_function::check_subexp_matching_top
      Src: /src/git/compat/regex/regexec.c:2373,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2375,1
    - Dst: internal_function::transit_state_bkref
      Src: /src/git/compat/regex/regexec.c:2381,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2382,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - err
    - mctx
    - next_state
    argTypes:
    - reg_errcode_t*
    - re_match_context_t*
    - re_dfastate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2315
    functionDepth: 3
    functionLinenumber: 2315
    functionLinenumberEnd: 2389
    functionName: internal_function::merge_state_with_log
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::re_node_set_init_union
    - internal_function::re_string_context_at
    - re_node_set_free
    - internal_function::check_subexp_matching_top
    - internal_function::re_acquire_state_context
    - BE
    - re_string_cur_idx
    - internal_function::transit_state_bkref
    linkageType: ''
    returnType: re_dfastate_t
    signature: "re_dfastate_t *\ninternal_function\nmerge_state_with_log (reg_errcode_t
      *err, re_match_context_t *mctx,\n\t\t      re_dfastate_t *next_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:2402,1
    - Dst: re_string_skip_bytes
      Src: /src/git/compat/regex/regexec.c:2408,1
    - Dst: internal_function::merge_state_with_log
      Src: /src/git/compat/regex/regexec.c:2412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - err
    - mctx
    argTypes:
    - reg_errcode_t*
    - re_match_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2394
    functionDepth: 4
    functionLinenumber: 2394
    functionLinenumberEnd: 2416
    functionName: internal_function::find_recover_state
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::merge_state_with_log
    - re_string_cur_idx
    - re_string_skip_bytes
    linkageType: ''
    returnType: re_dfastate_t
    signature: 're_dfastate_t *

      internal_function

      find_recover_state (reg_errcode_t *err, re_match_context_t *mctx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::match_ctx_add_subtop
      Src: /src/git/compat/regex/regexec.c:2447,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - mctx
    - cur_nodes
    - str_idx
    argTypes:
    - re_match_context_t*
    - re_node_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2425
    functionDepth: 1
    functionLinenumber: 2425
    functionLinenumberEnd: 2453
    functionName: internal_function::check_subexp_matching_top
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 2
    functionsReached:
    - internal_function::match_ctx_add_subtop
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\ncheck_subexp_matching_top (re_match_context_t
      *mctx, re_node_set *cur_nodes,\n\t\t\t   int str_idx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:2466,1
    - Dst: re_node_set_alloc
      Src: /src/git/compat/regex/regexec.c:2469,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2470,1
    - Dst: check_node_accept
      Src: /src/git/compat/regex/regexec.c:2475,1
    - Dst: re_node_set_merge
      Src: /src/git/compat/regex/regexec.c:2477,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2479,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2481,1
    - Dst: re_string_context_at
      Src: /src/git/compat/regex/regexec.c:2486,1
    - Dst: re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:2487,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2491,1
    - Dst: re_string_skip_bytes
      Src: /src/git/compat/regex/regexec.c:2492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - err
    - mctx
    - state
    argTypes:
    - reg_errcode_t*
    - re_match_context_t*
    - re_dfastate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2459
    functionDepth: 1
    functionLinenumber: 2459
    functionLinenumberEnd: 2494
    functionName: transit_state_sb
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - re_node_set_free
    - re_acquire_state_context
    - re_node_set_alloc
    - BE
    - re_string_context_at
    - check_node_accept
    - re_string_cur_idx
    - re_node_set_merge
    - re_string_skip_bytes
    linkageType: ''
    returnType: re_dfastate_t
    signature: "re_dfastate_t *\ntransit_state_sb (reg_errcode_t *err, re_match_context_t
      *mctx,\n\t\t  re_dfastate_t *state)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regexec.c:2519,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:2520,1
    - Dst: NOT_SATISFY_NEXT_CONSTRAINT
      Src: /src/git/compat/regex/regexec.c:2522,1
    - Dst: internal_function::check_node_accept_bytes
      Src: /src/git/compat/regex/regexec.c:2528,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:2529,1
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:2534,1
    - Dst: internal_function::clean_state_log_if_needed
      Src: /src/git/compat/regex/regexec.c:2537,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2538,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:2541,1
    - Dst: internal_function::re_node_set_init_union
      Src: /src/git/compat/regex/regexec.c:2550,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2552,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regexec.c:2555,1
    - Dst: internal_function::re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:2558,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2560,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2561,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - mctx
    - pstate
    argTypes:
    - re_match_context_t*
    - re_dfastate_t*
    assertStmts:
    - condition: (dfa->nexts[cur_node_idx] != -1)
      pos:
        line_end: 2540
        line_start: 2540
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 2565
      start: 2498
    functionDepth: 3
    functionLinenumber: 2498
    functionLinenumberEnd: 2565
    functionName: internal_function::transit_state_mb
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::re_string_context_at
    - internal_function::re_node_set_init_union
    - re_node_set_free
    - assert
    - internal_function::re_acquire_state_context
    - BE
    - internal_function::check_node_accept_bytes
    - re_string_cur_idx
    - internal_function::clean_state_log_if_needed
    - NOT_SATISFY_NEXT_CONSTRAINT
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: re_string_cur_idx
      Src: /src/git/compat/regex/regexec.c:2575,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regexec.c:2591,1
    - Dst: NOT_SATISFY_NEXT_CONSTRAINT
      Src: /src/git/compat/regex/regexec.c:2593,1
    - Dst: get_subexp
      Src: /src/git/compat/regex/regexec.c:2600,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2601,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:2607,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regexec.c:2623,1
    - Dst: internal_function::re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:2632,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2634,1
    - Dst: internal_function::re_node_set_init_union
      Src: /src/git/compat/regex/regexec.c:2641,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2644,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2646,1
    - Dst: internal_function::re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:2650,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2651,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2652,1
    - Dst: internal_function::check_subexp_matching_top
      Src: /src/git/compat/regex/regexec.c:2661,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2663,1
    - Dst: internal_function::transit_state_bkref
      Src: /src/git/compat/regex/regexec.c:2665,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2666,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 59
    argCount: 2
    argNames:
    - mctx
    - nodes
    argTypes:
    - re_match_context_t*
    - re_node_set*
    assertStmts:
    - condition: (dfa->nexts[node_idx] != -1)
      pos:
        line_end: 2606
        line_start: 2606
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 2674
      start: 2568
    functionDepth: 3
    functionLinenumber: 2568
    functionLinenumberEnd: 2674
    functionName: internal_function::transit_state_bkref
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 3
    functionsReached:
    - internal_function::re_string_context_at
    - internal_function::re_node_set_init_union
    - re_node_set_free
    - assert
    - internal_function::check_subexp_matching_top
    - internal_function::re_acquire_state_context
    - BE
    - get_subexp
    - re_string_cur_idx
    - internal_function::transit_state_bkref
    - NOT_SATISFY_NEXT_CONSTRAINT
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: re_string_get_buffer
      Src: /src/git/compat/regex/regexec.c:2688,1
    - Dst: search_cur_bkref_entry
      Src: /src/git/compat/regex/regexec.c:2690,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2727,1
    - Dst: clean_state_log_if_needed
      Src: /src/git/compat/regex/regexec.c:2733,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2736,1
    - Dst: re_string_get_buffer
      Src: /src/git/compat/regex/regexec.c:2738,1
    - Dst: memcmp
      Src: /src/git/compat/regex/regexec.c:2740,1
    - Dst: get_subexp_sub
      Src: /src/git/compat/regex/regexec.c:2746,1
    - Dst: re_string_get_buffer
      Src: /src/git/compat/regex/regexec.c:2751,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2755,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2773,1
    - Dst: extend_buffers
      Src: /src/git/compat/regex/regexec.c:2779,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2780,1
    - Dst: re_string_get_buffer
      Src: /src/git/compat/regex/regexec.c:2783,1
    - Dst: find_subexp_node
      Src: /src/git/compat/regex/regexec.c:2793,1
    - Dst: calloc
      Src: /src/git/compat/regex/regexec.c:2799,1
    - Dst: check_arrival
      Src: /src/git/compat/regex/regexec.c:2806,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2811,1
    - Dst: match_ctx_add_sublast
      Src: /src/git/compat/regex/regexec.c:2813,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2814,1
    - Dst: get_subexp_sub
      Src: /src/git/compat/regex/regexec.c:2816,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 79
    argCount: 3
    argNames:
    - mctx
    - bkref_node
    - bkref_str_idx
    argTypes:
    - re_match_context_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2682
    functionDepth: 1
    functionLinenumber: 2682
    functionLinenumberEnd: 2823
    functionName: internal_function
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - check_arrival
    - search_cur_bkref_entry
    - BE
    - get_subexp_sub
    - extend_buffers
    - re_string_get_buffer
    - clean_state_log_if_needed
    - match_ctx_add_sublast
    - calloc
    - find_subexp_node
    - memcmp
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::check_arrival
      Src: /src/git/compat/regex/regexec.c:2839,1
    - Dst: internal_function::match_ctx_add_entry
      Src: /src/git/compat/regex/regexec.c:2844,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2846,1
    - Dst: internal_function::clean_state_log_if_needed
      Src: /src/git/compat/regex/regexec.c:2849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - mctx
    - sub_top
    - sub_last
    - bkref_node
    - bkref_str
    argTypes:
    - re_match_context_t*
    - re_sub_match_top_t*
    - re_sub_match_last_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2831
    functionDepth: 2
    functionLinenumber: 2831
    functionLinenumberEnd: 2850
    functionName: internal_function::get_subexp_sub
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - internal_function::match_ctx_add_entry
    - internal_function::check_arrival
    - internal_function::clean_state_log_if_needed
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nget_subexp_sub (re_match_context_t
      *mctx, const re_sub_match_top_t *sub_top,\n\t\tre_sub_match_last_t *sub_last,
      int bkref_node, int bkref_str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - dfa
    - nodes
    - subexp_idx
    - type
    argTypes:
    - re_dfa_t*
    - re_node_set*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2860
    functionDepth: 0
    functionLinenumber: 2860
    functionLinenumberEnd: 2875
    functionName: internal_function::find_subexp_node
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int internal_function\nfind_subexp_node (const re_dfa_t *dfa, const
      re_node_set *nodes,\n\t\t  int subexp_idx, int type)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2897,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regexec.c:2902,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2903,1
    - Dst: memset
      Src: /src/git/compat/regex/regexec.c:2909,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regexec.c:2922,1
    - Dst: internal_function::re_node_set_init_1
      Src: /src/git/compat/regex/regexec.c:2925,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2926,1
    - Dst: internal_function::check_arrival_expand_ecl
      Src: /src/git/compat/regex/regexec.c:2928,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2929,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2931,1
    - Dst: internal_function::re_node_set_init_copy
      Src: /src/git/compat/regex/regexec.c:2940,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2941,1
    - Dst: re_node_set_init_empty
      Src: /src/git/compat/regex/regexec.c:2945,1
    - Dst: internal_function::expand_bkref_cache
      Src: /src/git/compat/regex/regexec.c:2951,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2953,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2955,1
    - Dst: internal_function::re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:2959,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2960,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2962,1
    - Dst: re_node_set_empty
      Src: /src/git/compat/regex/regexec.c:2970,1
    - Dst: internal_function::re_node_set_merge
      Src: /src/git/compat/regex/regexec.c:2973,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2975,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2977,1
    - Dst: internal_function::check_arrival_add_next_nodes
      Src: /src/git/compat/regex/regexec.c:2983,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2986,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2988,1
    - Dst: internal_function::check_arrival_expand_ecl
      Src: /src/git/compat/regex/regexec.c:2995,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:2996,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:2998,1
    - Dst: internal_function::expand_bkref_cache
      Src: /src/git/compat/regex/regexec.c:3001,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3003,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3005,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regexec.c:3009,1
    - Dst: internal_function::re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:3010,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3011,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3013,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3019,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:3029,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 97
    argCount: 7
    argNames:
    - mctx
    - path
    - top_node
    - top_str
    - last_node
    - last_str
    - type
    argTypes:
    - re_match_context_t*
    - state_array_t*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3033
      start: 2882
    functionDepth: 2
    functionLinenumber: 2882
    functionLinenumberEnd: 3033
    functionName: internal_function::check_arrival
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::re_node_set_init_copy
    - internal_function::re_node_set_init_1
    - memset
    - internal_function::re_string_context_at
    - re_node_set_free
    - internal_function::check_arrival_add_next_nodes
    - re_node_set_contains
    - re_node_set_empty
    - internal_function::re_acquire_state_context
    - re_realloc
    - BE
    - internal_function::expand_bkref_cache
    - re_node_set_init_empty
    - internal_function::re_node_set_merge
    - internal_function::check_arrival_expand_ecl
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\ncheck_arrival (re_match_context_t
      *mctx, state_array_t *path, int top_node,\n\t       int top_str, int last_node,
      int last_str, int type)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_init_empty
      Src: /src/git/compat/regex/regexec.c:3055,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:3062,1
    - Dst: IS_EPSILON_NODE
      Src: /src/git/compat/regex/regexec.c:3062,1
    - Dst: internal_function::check_node_accept_bytes
      Src: /src/git/compat/regex/regexec.c:3068,1
    - Dst: re_node_set_empty
      Src: /src/git/compat/regex/regexec.c:3076,1
    - Dst: internal_function::re_node_set_merge
      Src: /src/git/compat/regex/regexec.c:3079,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3080,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3082,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regexec.c:3086,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3087,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3089,1
    - Dst: internal_function::re_acquire_state
      Src: /src/git/compat/regex/regexec.c:3092,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3094,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3097,1
    - Dst: internal_function::check_node_accept
      Src: /src/git/compat/regex/regexec.c:3104,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regexec.c:3106,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3107,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3109,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - mctx
    - str_idx
    - cur_nodes
    - next_nodes
    argTypes:
    - re_match_context_t*
    - int
    - re_node_set*
    - re_node_set*
    assertStmts:
    - condition: (!IS_EPSILON_NODE (type))
      pos:
        line_end: 3061
        line_start: 3061
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 3116
      start: 3043
    functionDepth: 3
    functionLinenumber: 3043
    functionLinenumberEnd: 3116
    functionName: internal_function::check_arrival_add_next_nodes
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - re_node_set_free
    - IS_EPSILON_NODE
    - assert
    - re_node_set_empty
    - BE
    - re_node_set_init_empty
    - internal_function::check_node_accept_bytes
    - internal_function::re_node_set_insert
    - internal_function::re_node_set_merge
    - internal_function::re_acquire_state
    - internal_function::check_node_accept
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\ncheck_arrival_add_next_nodes (re_match_context_t
      *mctx, int str_idx,\n\t\t\t      re_node_set *cur_nodes, re_node_set *next_nodes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:3133,1
    - Dst: internal_function::re_node_set_alloc
      Src: /src/git/compat/regex/regexec.c:3135,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3136,1
    - Dst: internal_function::find_subexp_node
      Src: /src/git/compat/regex/regexec.c:3145,1
    - Dst: internal_function::re_node_set_merge
      Src: /src/git/compat/regex/regexec.c:3149,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3150,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3152,1
    - Dst: internal_function::check_arrival_expand_ecl_sub
      Src: /src/git/compat/regex/regexec.c:3159,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3161,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3163,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - dfa
    - cur_nodes
    - ex_subexp
    - type
    argTypes:
    - re_dfa_t*
    - re_node_set*
    - int
    - int
    assertStmts:
    - condition: (cur_nodes->nelem)
      pos:
        line_end: 3132
        line_start: 3132
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 3171
      start: 3124
    functionDepth: 2
    functionLinenumber: 3124
    functionLinenumberEnd: 3171
    functionName: internal_function::check_arrival_expand_ecl
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - re_node_set_free
    - internal_function::find_subexp_node
    - assert
    - BE
    - internal_function::check_arrival_expand_ecl_sub
    - internal_function::re_node_set_alloc
    - internal_function::re_node_set_merge
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\ncheck_arrival_expand_ecl (const re_dfa_t
      *dfa, re_node_set *cur_nodes,\n\t\t\t  int ex_subexp, int type)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:3183,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regexec.c:3192,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3193,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regexec.c:3198,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3199,1
    - Dst: internal_function::check_arrival_expand_ecl_sub
      Src: /src/git/compat/regex/regexec.c:3205,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3208,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 5
    argNames:
    - dfa
    - dst_nodes
    - target
    - ex_subexp
    - type
    argTypes:
    - re_dfa_t*
    - re_node_set*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3214
      start: 3177
    functionDepth: 3
    functionLinenumber: 3177
    functionLinenumberEnd: 3214
    functionName: internal_function::check_arrival_expand_ecl_sub
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 2
    functionsReached:
    - internal_function::re_node_set_insert
    - internal_function::check_arrival_expand_ecl_sub
    - BE
    - re_node_set_contains
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\ncheck_arrival_expand_ecl_sub (const
      re_dfa_t *dfa, re_node_set *dst_nodes,\n\t\t\t      int target, int ex_subexp,
      int type)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::search_cur_bkref_entry
      Src: /src/git/compat/regex/regexec.c:3228,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:3241,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:3254,1
    - Dst: internal_function::re_node_set_init_1
      Src: /src/git/compat/regex/regexec.c:3256,1
    - Dst: internal_function::check_arrival_expand_ecl
      Src: /src/git/compat/regex/regexec.c:3257,1
    - Dst: internal_function::re_node_set_merge
      Src: /src/git/compat/regex/regexec.c:3258,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3259,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3260,1
    - Dst: re_node_set_contains
      Src: /src/git/compat/regex/regexec.c:3277,1
    - Dst: internal_function::re_node_set_init_copy
      Src: /src/git/compat/regex/regexec.c:3280,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regexec.c:3282,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3283,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3285,1
    - Dst: internal_function::re_node_set_init_1
      Src: /src/git/compat/regex/regexec.c:3292,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3293,1
    - Dst: internal_function::re_acquire_state
      Src: /src/git/compat/regex/regexec.c:3296,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3297,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3298,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 5
    argNames:
    - mctx
    - cur_nodes
    - cur_str
    - subexp_num
    - type
    argTypes:
    - re_match_context_t*
    - re_node_set*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3305
      start: 3221
    functionDepth: 3
    functionLinenumber: 3221
    functionLinenumberEnd: 3305
    functionName: internal_function::expand_bkref_cache
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::re_node_set_init_copy
    - internal_function::re_node_set_init_1
    - re_node_set_free
    - re_node_set_contains
    - BE
    - internal_function::re_node_set_insert
    - internal_function::re_node_set_merge
    - internal_function::check_arrival_expand_ecl
    - internal_function::re_acquire_state
    - internal_function::search_cur_bkref_entry
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nexpand_bkref_cache (re_match_context_t
      *mctx, re_node_set *cur_nodes,\n\t\t    int cur_str, int subexp_num, int type)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: __libc_use_alloca
      Src: /src/git/compat/regex/regexec.c:3337,1
    - Dst: alloca
      Src: /src/git/compat/regex/regexec.c:3338,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:3342,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3343,1
    - Dst: internal_function::group_nodes_into_DFAstates
      Src: /src/git/compat/regex/regexec.c:3355,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3356,1
    - Dst: free
      Src: /src/git/compat/regex/regexec.c:3359,1
    - Dst: calloc
      Src: /src/git/compat/regex/regexec.c:3364,1
    - Dst: internal_function::re_node_set_alloc
      Src: /src/git/compat/regex/regexec.c:3370,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3371,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3375,1
    - Dst: __libc_use_alloca
      Src: /src/git/compat/regex/regexec.c:3382,1
    - Dst: alloca
      Src: /src/git/compat/regex/regexec.c:3385,1
    - Dst: malloc
      Src: /src/git/compat/regex/regexec.c:3390,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3391,1
    - Dst: free
      Src: /src/git/compat/regex/regexec.c:3395,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3396,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3398,1
    - Dst: free
      Src: /src/git/compat/regex/regexec.c:3400,1
    - Dst: bitset_empty
      Src: /src/git/compat/regex/regexec.c:3407,1
    - Dst: re_node_set_empty
      Src: /src/git/compat/regex/regexec.c:3413,1
    - Dst: internal_function::re_node_set_merge
      Src: /src/git/compat/regex/regexec.c:3420,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3421,1
    - Dst: internal_function::re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:3425,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3426,1
    - Dst: internal_function::re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:3432,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3434,1
    - Dst: internal_function::re_acquire_state_context
      Src: /src/git/compat/regex/regexec.c:3440,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3442,1
    - Dst: bitset_merge
      Src: /src/git/compat/regex/regexec.c:3450,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3453,1
    - Dst: calloc
      Src: /src/git/compat/regex/regexec.c:3460,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3461,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3469,1
    - Dst: calloc
      Src: /src/git/compat/regex/regexec.c:3491,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3492,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3500,1
    - Dst: bitset_contain
      Src: /src/git/compat/regex/regexec.c:3514,1
    - Dst: bitset_contain
      Src: /src/git/compat/regex/regexec.c:3518,1
    - Dst: free
      Src: /src/git/compat/regex/regexec.c:3531,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3533,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3535,1
    - Dst: free
      Src: /src/git/compat/regex/regexec.c:3538,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 125
    argCount: 2
    argNames:
    - dfa
    - state
    argTypes:
    - re_dfa_t*
    - re_dfastate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3541
      start: 3310
    functionDepth: 2
    functionLinenumber: 3310
    functionLinenumberEnd: 3541
    functionName: internal_function::build_trtable
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - re_node_set_free
    - bitset_contain
    - re_node_set_empty
    - re_malloc
    - internal_function::re_acquire_state_context
    - BE
    - internal_function::re_node_set_merge
    - internal_function::group_nodes_into_DFAstates
    - bitset_empty
    - internal_function::re_node_set_alloc
    - free
    - malloc
    - alloca
    - __libc_use_alloca
    - calloc
    - bitset_merge
    linkageType: ''
    returnType: int
    signature: 'int internal_function

      build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)'
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: bitset_empty
      Src: /src/git/compat/regex/regexec.c:3559,1
    - Dst: bitset_set
      Src: /src/git/compat/regex/regexec.c:3571,1
    - Dst: bitset_merge
      Src: /src/git/compat/regex/regexec.c:3574,1
    - Dst: bitset_merge
      Src: /src/git/compat/regex/regexec.c:3580,1
    - Dst: bitset_set_all
      Src: /src/git/compat/regex/regexec.c:3583,1
    - Dst: bitset_clear
      Src: /src/git/compat/regex/regexec.c:3585,1
    - Dst: bitset_clear
      Src: /src/git/compat/regex/regexec.c:3587,1
    - Dst: memset
      Src: /src/git/compat/regex/regexec.c:3592,1
    - Dst: bitset_clear
      Src: /src/git/compat/regex/regexec.c:3594,1
    - Dst: bitset_clear
      Src: /src/git/compat/regex/regexec.c:3596,1
    - Dst: bitset_contain
      Src: /src/git/compat/regex/regexec.c:3608,1
    - Dst: bitset_empty
      Src: /src/git/compat/regex/regexec.c:3609,1
    - Dst: bitset_set
      Src: /src/git/compat/regex/regexec.c:3611,1
    - Dst: bitset_empty
      Src: /src/git/compat/regex/regexec.c:3617,1
    - Dst: bitset_empty
      Src: /src/git/compat/regex/regexec.c:3626,1
    - Dst: bitset_empty
      Src: /src/git/compat/regex/regexec.c:3645,1
    - Dst: bitset_contain
      Src: /src/git/compat/regex/regexec.c:3671,1
    - Dst: bitset_copy
      Src: /src/git/compat/regex/regexec.c:3694,1
    - Dst: bitset_copy
      Src: /src/git/compat/regex/regexec.c:3695,1
    - Dst: internal_function::re_node_set_init_copy
      Src: /src/git/compat/regex/regexec.c:3696,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3697,1
    - Dst: internal_function::re_node_set_insert
      Src: /src/git/compat/regex/regexec.c:3703,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3704,1
    - Dst: bitset_copy
      Src: /src/git/compat/regex/regexec.c:3714,1
    - Dst: internal_function::re_node_set_init_1
      Src: /src/git/compat/regex/regexec.c:3715,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3716,1
    - Dst: bitset_empty
      Src: /src/git/compat/regex/regexec.c:3719,1
    - Dst: re_node_set_free
      Src: /src/git/compat/regex/regexec.c:3725,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 107
    argCount: 4
    argNames:
    - dfa
    - state
    - dests_node
    - dests_ch
    argTypes:
    - re_dfa_t*
    - re_dfastate_t*
    - re_node_set*
    - bitset_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3727
      start: 3548
    functionDepth: 3
    functionLinenumber: 3548
    functionLinenumberEnd: 3727
    functionName: internal_function::group_nodes_into_DFAstates
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - internal_function::re_node_set_init_copy
    - memset
    - internal_function::re_node_set_init_1
    - re_node_set_free
    - bitset_set
    - bitset_copy
    - BE
    - internal_function::re_node_set_insert
    - bitset_empty
    - bitset_clear
    - bitset_contain
    - bitset_set_all
    - bitset_merge
    linkageType: ''
    returnType: int
    signature: "int internal_function\ngroup_nodes_into_DFAstates (const re_dfa_t
      *dfa, const re_dfastate_t *state,\n\t\t\t    re_node_set *dests_node, bitset_t
      *dests_ch)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3748,1
    - Dst: re_string_byte_at
      Src: /src/git/compat/regex/regexec.c:3750,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:3751,1
    - Dst: re_string_byte_at
      Src: /src/git/compat/regex/regexec.c:3757,1
    - Dst: re_string_byte_at
      Src: /src/git/compat/regex/regexec.c:3792,1
    - Dst: re_string_char_size_at
      Src: /src/git/compat/regex/regexec.c:3799,1
    - Dst: re_string_byte_at
      Src: /src/git/compat/regex/regexec.c:3808,1
    - Dst: re_string_byte_at
      Src: /src/git/compat/regex/regexec.c:3810,1
    - Dst: re_string_elem_size_at
      Src: /src/git/compat/regex/regexec.c:3815,1
    - Dst: __btowc
      Src: /src/git/compat/regex/regexec.c:3816,1
    - Dst: re_string_get_buffer
      Src: /src/git/compat/regex/regexec.c:3825,1
    - Dst: re_string_wchar_at
      Src: /src/git/compat/regex/regexec.c:3831,1
    - Dst: __iswctype
      Src: /src/git/compat/regex/regexec.c:3844,1
    - Dst: _NL_CURRENT_WORD
      Src: /src/git/compat/regex/regexec.c:3852,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regexec.c:3865,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regexec.c:3889,1
    - Dst: __collseq_table_lookup
      Src: /src/git/compat/regex/regexec.c:3890,1
    - Dst: internal_function::find_collation_sequence_value
      Src: /src/git/compat/regex/regexec.c:3893,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regexec.c:3909,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regexec.c:3911,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regexec.c:3913,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regexec.c:3915,1
    - Dst: findidx
      Src: /src/git/compat/regex/regexec.c:3916,1
    - Dst: wcscoll
      Src: /src/git/compat/regex/regexec.c:3957,1
    - Dst: wcscoll
      Src: /src/git/compat/regex/regexec.c:3958,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 136
    argCount: 4
    argNames:
    - dfa
    - node_idx
    - input
    - str_idx
    argTypes:
    - re_dfa_t*
    - int
    - re_string_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3977
      start: 3738
    functionDepth: 1
    functionLinenumber: 3738
    functionLinenumberEnd: 3977
    functionName: internal_function::check_node_accept_bytes
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 4
    functionsReached:
    - __btowc
    - wcscoll
    - __collseq_table_lookup
    - BE
    - _NL_CURRENT_WORD
    - re_string_get_buffer
    - internal_function::find_collation_sequence_value
    - re_string_wchar_at
    - findidx
    - _NL_CURRENT
    - __iswctype
    - re_string_elem_size_at
    - re_string_byte_at
    - re_string_char_size_at
    linkageType: ''
    returnType: int
    signature: "int internal_function\ncheck_node_accept_bytes (const re_dfa_t *dfa,
      int node_idx,\n\t\t\t const re_string_t *input, int str_idx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _NL_CURRENT_WORD
      Src: /src/git/compat/regex/regexec.c:3984,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regexec.c:3991,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regexec.c:4000,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regexec.c:4002,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - mbs
    - mbs_len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4036
      start: 3980
    functionDepth: 0
    functionLinenumber: 3980
    functionLinenumberEnd: 4036
    functionName: internal_function::find_collation_sequence_value
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - _NL_CURRENT_WORD
    - _NL_CURRENT
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int internal_function

      find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: re_string_byte_at
      Src: /src/git/compat/regex/regexec.c:4049,1
    - Dst: bitset_contain
      Src: /src/git/compat/regex/regexec.c:4058,1
    - Dst: internal_function::re_string_context_at
      Src: /src/git/compat/regex/regexec.c:4082,1
    - Dst: NOT_SATISFY_NEXT_CONSTRAINT
      Src: /src/git/compat/regex/regexec.c:4084,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - mctx
    - node
    - idx
    argTypes:
    - re_match_context_t*
    - re_token_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4089
      start: 4043
    functionDepth: 2
    functionLinenumber: 4043
    functionLinenumberEnd: 4089
    functionName: internal_function::check_node_accept
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 3
    functionsReached:
    - internal_function::re_string_context_at
    - re_string_byte_at
    - NOT_SATISFY_NEXT_CONSTRAINT
    - bitset_contain
    linkageType: ''
    returnType: int
    signature: "int internal_function\ncheck_node_accept (const re_match_context_t
      *mctx, const re_token_t *node,\n\t\t   int idx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4101,1
    - Dst: internal_function::re_string_realloc_buffers
      Src: /src/git/compat/regex/regexec.c:4105,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4106,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regexec.c:4115,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4117,1
    - Dst: internal_function::build_wcs_upper_buffer
      Src: /src/git/compat/regex/regexec.c:4128,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4129,1
    - Dst: internal_function::build_upper_buffer
      Src: /src/git/compat/regex/regexec.c:4134,1
    - Dst: internal_function::build_wcs_buffer
      Src: /src/git/compat/regex/regexec.c:4140,1
    - Dst: internal_function::re_string_translate_buffer
      Src: /src/git/compat/regex/regexec.c:4145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - re_match_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4149
      start: 4093
    functionDepth: 2
    functionLinenumber: 4093
    functionLinenumberEnd: 4149
    functionName: internal_function::extend_buffers
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 2
    functionsReached:
    - internal_function::build_wcs_upper_buffer
    - internal_function::re_string_translate_buffer
    - internal_function::re_string_realloc_buffers
    - re_realloc
    - BE
    - internal_function::build_wcs_buffer
    - internal_function::build_upper_buffer
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      extend_buffers (re_match_context_t *mctx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:4164,1
    - Dst: re_malloc
      Src: /src/git/compat/regex/regexec.c:4165,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - mctx
    - eflags
    - n
    argTypes:
    - re_match_context_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4178
      start: 4156
    functionDepth: 1
    functionLinenumber: 4156
    functionLinenumberEnd: 4178
    functionName: internal_function::match_ctx_init
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_malloc
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      match_ctx_init (re_match_context_t *mctx, int eflags, int n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:4196,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:4197,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:4199,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:4202,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:4203,1
    - Dst: free
      Src: /src/git/compat/regex/regexec.c:4205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - re_match_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4210
      start: 4184
    functionDepth: 1
    functionLinenumber: 4184
    functionLinenumberEnd: 4210
    functionName: internal_function::match_ctx_clean
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_free
    - free
    linkageType: ''
    returnType: void
    signature: 'void internal_function

      match_ctx_clean (re_match_context_t *mctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_function::match_ctx_clean
      Src: /src/git/compat/regex/regexec.c:4219,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:4220,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:4221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - re_match_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4222
      start: 4214
    functionDepth: 2
    functionLinenumber: 4214
    functionLinenumberEnd: 4222
    functionName: internal_function::match_ctx_free
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_free
    - internal_function::match_ctx_clean
    linkageType: ''
    returnType: void
    signature: 'void internal_function

      match_ctx_free (re_match_context_t *mctx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: re_realloc
      Src: /src/git/compat/regex/regexec.c:4237,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4239,1
    - Dst: re_free
      Src: /src/git/compat/regex/regexec.c:4241,1
    - Dst: memset
      Src: /src/git/compat/regex/regexec.c:4245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - mctx
    - node
    - str_idx
    - from
    - to
    argTypes:
    - re_match_context_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4273
      start: 4229
    functionDepth: 1
    functionLinenumber: 4229
    functionLinenumberEnd: 4273
    functionName: internal_function::match_ctx_add_entry
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - re_free
    - memset
    - re_realloc
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: "reg_errcode_t internal_function\nmatch_ctx_add_entry (re_match_context_t
      *mctx, int node, int str_idx, int from,\n\t\t     int to)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mctx
    - str_idx
    argTypes:
    - re_match_context_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4296
      start: 4278
    functionDepth: 0
    functionLinenumber: 4278
    functionLinenumberEnd: 4296
    functionName: internal_function::search_cur_bkref_entry
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int internal_function

      search_cur_bkref_entry (const re_match_context_t *mctx, int str_idx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:4306,1
    - Dst: assert
      Src: /src/git/compat/regex/regexec.c:4307,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4309,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regexec.c:4312,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4315,1
    - Dst: calloc
      Src: /src/git/compat/regex/regexec.c:4320,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - mctx
    - node
    - str_idx
    argTypes:
    - re_match_context_t*
    - int
    - int
    assertStmts:
    - condition: (mctx->sub_tops != NULL)
      pos:
        line_end: 4305
        line_start: 4305
        source_file: /src/git/compat/regex/regexec.c
    - condition: (mctx->asub_tops > 0)
      pos:
        line_end: 4306
        line_start: 4306
        source_file: /src/git/compat/regex/regexec.c
    constantsTouched: []
    func_position:
      end: 4326
      start: 4301
    functionDepth: 1
    functionLinenumber: 4301
    functionLinenumberEnd: 4326
    functionName: internal_function::match_ctx_add_subtop
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 1
    functionsReached:
    - re_realloc
    - calloc
    - assert
    - BE
    linkageType: ''
    returnType: reg_errcode_t
    signature: 'reg_errcode_t internal_function

      match_ctx_add_subtop (re_match_context_t *mctx, int node, int str_idx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4336,1
    - Dst: re_realloc
      Src: /src/git/compat/regex/regexec.c:4339,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4342,1
    - Dst: calloc
      Src: /src/git/compat/regex/regexec.c:4347,1
    - Dst: BE
      Src: /src/git/compat/regex/regexec.c:4348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - subtop
    - node
    - str_idx
    argTypes:
    - re_sub_match_top_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4331
    functionDepth: 1
    functionLinenumber: 4331
    functionLinenumberEnd: 4356
    functionName: internal_function::match_ctx_add_sublast
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - calloc
    - re_realloc
    - BE
    linkageType: ''
    returnType: re_sub_match_last_t
    signature: 're_sub_match_last_t *

      internal_function

      match_ctx_add_sublast (re_sub_match_top_t *subtop, int node, int str_idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: re_node_set_init_empty
      Src: /src/git/compat/regex/regexec.c:4367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - sctx
    - sifted_sts
    - limited_sts
    - last_node
    - last_str_idx
    argTypes:
    - re_sift_context_t*
    - re_dfastate_t**
    - re_dfastate_t**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4368
      start: 4358
    functionDepth: 1
    functionLinenumber: 4358
    functionLinenumberEnd: 4368
    functionName: internal_function::sift_ctx_init
    functionSourceFile: /src/git/compat/regex/regexec.c
    functionUses: 0
    functionsReached:
    - re_node_set_init_empty
    linkageType: ''
    returnType: void
    signature: "void internal_function\nsift_ctx_init (re_sift_context_t *sctx, re_dfastate_t
      **sifted_sts,\n\t       re_dfastate_t **limited_sts, int last_node, int last_str_idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: __libc_lock_init
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __libc_lock_init(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: __libc_lock_lock
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __libc_lock_lock(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: __libc_lock_unlock
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __libc_lock_unlock(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: isblank
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isblank(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: is_blank
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_blank (int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: gettext
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gettext(msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: gettext
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gettext(msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - String
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: gettext_noop
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gettext_noop(String)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: BE
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 95
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BE(expr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: BE
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 95
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BE(expr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: __attribute
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __attribute(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - set
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: bitset_set
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitset_set(set,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - set
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: bitset_clear
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitset_clear(set,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - set
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: bitset_contain
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitset_contain(set,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - set
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: bitset_empty
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitset_empty(set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - set
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: bitset_set_all
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitset_set_all(set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: bitset_copy
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitset_copy(dest,src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: IS_EPSILON_NODE
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_EPSILON_NODE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pstr
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: re_string_peek_byte
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_peek_byte(pstr, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pstr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: re_string_fetch_byte
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_fetch_byte(pstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pstr
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: re_string_first_byte
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_first_byte(pstr, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pstr
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: re_string_is_single_byte_char
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_is_single_byte_char(pstr, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pstr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: re_string_eoi
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_eoi(pstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pstr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 447
    functionName: re_string_cur_idx
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_cur_idx(pstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pstr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: re_string_get_buffer
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_get_buffer(pstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pstr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: re_string_length
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_length(pstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pstr
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 450
    functionName: re_string_byte_at
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_byte_at(pstr,idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pstr
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: re_string_skip_bytes
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_skip_bytes(pstr,idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pstr
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    functionName: re_string_set_index
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_string_set_index(pstr,idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: __libc_use_alloca
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __libc_use_alloca(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    functionName: __libc_use_alloca
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __libc_use_alloca(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: __libc_use_alloca
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __libc_use_alloca(n)
  - 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: 473
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 473
    functionName: re_malloc
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_malloc(t,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - t
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 475
    functionName: re_realloc
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_realloc(p,t,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: re_free
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    functionName: IS_WORD_CONTEXT
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WORD_CONTEXT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: IS_NEWLINE_CONTEXT
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NEWLINE_CONTEXT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    functionName: IS_BEGBUF_CONTEXT
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BEGBUF_CONTEXT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 512
    functionName: IS_ENDBUF_CONTEXT
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ENDBUF_CONTEXT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: IS_ORDINARY_CONTEXT
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ORDINARY_CONTEXT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    functionName: IS_WORD_CHAR
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WORD_CHAR(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: IS_NEWLINE
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NEWLINE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    functionName: IS_WIDE_WORD_CHAR
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WIDE_WORD_CHAR(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: IS_WIDE_NEWLINE
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WIDE_NEWLINE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - constraint
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: NOT_SATISFY_PREV_CONSTRAINT
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_SATISFY_PREV_CONSTRAINT(constraint,context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - constraint
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 530
    functionName: NOT_SATISFY_NEXT_CONSTRAINT
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_SATISFY_NEXT_CONSTRAINT(constraint,context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - set
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 702
    functionName: re_node_set_init_empty
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_node_set_init_empty(set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - set
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 704
    functionName: re_node_set_remove
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_node_set_remove(set,id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 705
    functionName: re_node_set_empty
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_node_set_empty(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - set
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 706
    functionName: re_node_set_free
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: re_node_set_free(set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - bitset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 736
    functionName: bitset_not
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitset_not (bitset_t set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - bitset_t
    - bitset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 744
    functionName: bitset_merge
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitset_merge (bitset_t dest, const bitset_t src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - bitset_t
    - bitset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: bitset_mask
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitset_mask (bitset_t dest, const bitset_t src)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pstr
    - idx
    argTypes:
    - re_string_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 767
    functionName: re_string_char_size_at
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void re_string_char_size_at (const re_string_t *pstr, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pstr
    - idx
    argTypes:
    - re_string_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 776
    functionName: re_string_wchar_at
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void re_string_wchar_at (const re_string_t *pstr, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _NL_CURRENT_WORD
      Src: /src/git/compat/regex/regex_internal.h:788,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regex_internal.h:792,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regex_internal.h:794,1
    - Dst: _NL_CURRENT
      Src: /src/git/compat/regex/regex_internal.h:795,1
    - Dst: findidx
      Src: /src/git/compat/regex/regex_internal.h:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pstr
    - idx
    argTypes:
    - re_string_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 804
    functionName: re_string_elem_size_at
    functionSourceFile: /src/git/compat/regex/regex_internal.h
    functionUses: 1
    functionsReached:
    - _NL_CURRENT_WORD
    - _NL_CURRENT
    - findidx
    linkageType: ''
    returnType: void
    signature: void re_string_elem_size_at (const re_string_t *pstr, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: __REPB_PREFIX
    functionSourceFile: /src/git/compat/regex/regex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __REPB_PREFIX(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: __REPB_PREFIX
    functionSourceFile: /src/git/compat/regex/regex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __REPB_PREFIX(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: SHA_ROT
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROT(X,l,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: SHA_ROL
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROL(X,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: SHA_ROR
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROR(X,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: setW
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setW(x, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: setW
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setW(x, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: setW
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setW(x, val)
  - 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: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: W
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 180
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: SHA_SRC
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_SRC(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: SHA_MIX
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_MIX(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - t
    - ','
    - input
    - ','
    - fn
    - ','
    - constant
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    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: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: SHA_ROUND
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROUND(t, input, fn, constant, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - t
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: T_0_15
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T_0_15(t, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - t
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: T_16_19
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T_16_19(t, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - t
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: T_20_39
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T_20_39(t, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - t
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: T_40_59
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T_40_59(t, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - t
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: T_60_79
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T_60_79(t, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:77,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:78,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:79,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:80,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:81,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:82,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:83,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:84,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:85,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:86,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:87,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:88,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:89,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:90,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:91,1
    - Dst: T_0_15
      Src: /src/git/block-sha1/sha1.c:92,1
    - Dst: T_16_19
      Src: /src/git/block-sha1/sha1.c:95,1
    - Dst: T_16_19
      Src: /src/git/block-sha1/sha1.c:96,1
    - Dst: T_16_19
      Src: /src/git/block-sha1/sha1.c:97,1
    - Dst: T_16_19
      Src: /src/git/block-sha1/sha1.c:98,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:101,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:102,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:103,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:104,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:105,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:106,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:107,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:108,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:109,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:110,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:111,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:112,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:113,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:114,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:115,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:116,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:117,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:118,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:119,1
    - Dst: T_20_39
      Src: /src/git/block-sha1/sha1.c:120,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:123,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:124,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:125,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:126,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:127,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:128,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:129,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:130,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:131,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:132,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:133,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:134,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:135,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:136,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:137,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:138,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:139,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:140,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:141,1
    - Dst: T_40_59
      Src: /src/git/block-sha1/sha1.c:142,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:145,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:146,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:147,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:148,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:149,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:150,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:151,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:152,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:153,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:154,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:155,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:156,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:157,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:158,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:159,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:160,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:161,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:162,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:163,1
    - Dst: T_60_79
      Src: /src/git/block-sha1/sha1.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 91
    argCount: 2
    argNames:
    - ctx
    - block
    argTypes:
    - blk_SHA_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 171
    functionName: blk_SHA1_Block
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached:
    - T_40_59
    - T_16_19
    - T_20_39
    - T_0_15
    - T_60_79
    linkageType: ''
    returnType: void
    signature: void blk_SHA1_Block(blk_SHA_CTX *ctx, const void *block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - blk_SHA_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 183
    functionName: blk_SHA1_Init
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void blk_SHA1_Init(blk_SHA_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/block-sha1/sha1.c:196,1
    - Dst: blk_SHA1_Block
      Src: /src/git/block-sha1/sha1.c:202,1
    - Dst: blk_SHA1_Block
      Src: /src/git/block-sha1/sha1.c:205,1
    - Dst: memcpy
      Src: /src/git/block-sha1/sha1.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - blk_SHA_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 211
    functionName: blk_SHA1_Update
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached:
    - blk_SHA1_Block
    - memcpy
    linkageType: ''
    returnType: void
    signature: void blk_SHA1_Update(blk_SHA_CTX *ctx, const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/git/block-sha1/sha1.c:220,1
    - Dst: htonl
      Src: /src/git/block-sha1/sha1.c:221,1
    - Dst: blk_SHA1_Update
      Src: /src/git/block-sha1/sha1.c:224,1
    - Dst: blk_SHA1_Update
      Src: /src/git/block-sha1/sha1.c:225,1
    - Dst: put_be32
      Src: /src/git/block-sha1/sha1.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hashout
    - ctx
    argTypes:
    - unsigned char[]
    - blk_SHA_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 230
    functionName: blk_SHA1_Final
    functionSourceFile: /src/git/block-sha1/sha1.c
    functionUses: 0
    functionsReached:
    - blk_SHA1_Update
    - put_be32
    - htonl
    linkageType: ''
    returnType: void
    signature: void blk_SHA1_Final(unsigned char hashout[20], blk_SHA_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/fast-import.c:67,1
    - Dst: oidcmp
      Src: /src/git/builtin/fast-import.c:69,1
    - Dst: container_of
      Src: /src/git/builtin/fast-import.c:71,1
    - Dst: oidcmp
      Src: /src/git/builtin/fast-import.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - map_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: object_entry_hashcmp
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - container_of
    - oidcmp
    linkageType: ''
    returnType: int
    signature: "int object_entry_hashcmp(const void *map_data UNUSED,\n\t\t\t\tconst
      struct hashmap_entry *eptr,\n\t\t\t\tconst struct hashmap_entry *entry_or_key,\n\t\t\t\tconst
      void *keydata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: for_each_mark
      Src: /src/git/builtin/fast-import.c:290,1
    - Dst: callback
      Src: /src/git/builtin/fast-import.c:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - m
    - base
    - callback
    - p
    argTypes:
    - struct mark_set*
    - uintmax_t
    - each_mark_fn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 298
    functionName: for_each_mark
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - for_each_mark
    - callback
    linkageType: ''
    returnType: void
    signature: void for_each_mark(struct mark_set *m, uintmax_t base, each_mark_fn_t
      callback, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:304,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mark
    - object
    - cbp
    argTypes:
    - uintmax_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: dump_marks_fn
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_marks_fn(uintmax_t mark, void *object, void *cbp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:309,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:311,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:313,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:315,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:316,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:317,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:318,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:320,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:320,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:321,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:322,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:323,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:324,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:325,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:327,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:329,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:330,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - rpt
    - b
    argTypes:
    - FILE*
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 333
    functionName: write_branch_report
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fputs
    - is_null_oid
    - fputc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_branch_report(FILE *rpt, struct branch *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/builtin/fast-import.c:337,1
    - Dst: getpid
      Src: /src/git/builtin/fast-import.c:337,1
    - Dst: fopen
      Src: /src/git/builtin/fast-import.c:338,1
    - Dst: error_errno
      Src: /src/git/builtin/fast-import.c:344,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:344,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:345,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:349,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:349,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:351,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:352,1
    - Dst: getpid
      Src: /src/git/builtin/fast-import.c:352,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:353,1
    - Dst: getppid
      Src: /src/git/builtin/fast-import.c:353,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:354,1
    - Dst: show_date
      Src: /src/git/builtin/fast-import.c:354,1
    - Dst: time
      Src: /src/git/builtin/fast-import.c:354,1
    - Dst: DATE_MODE
      Src: /src/git/builtin/fast-import.c:354,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:355,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:357,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:358,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:359,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:361,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:362,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:363,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:366,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:368,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:369,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:370,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:373,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:374,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:375,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:376,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:379,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:380,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:381,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:383,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:386,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:387,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:388,1
    - Dst: write_branch_report
      Src: /src/git/builtin/fast-import.c:391,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:396,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:397,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:398,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:400,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:400,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:401,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:402,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:403,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:407,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:408,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:409,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:411,1
    - Dst: for_each_mark
      Src: /src/git/builtin/fast-import.c:413,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:415,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:416,1
    - Dst: fputs
      Src: /src/git/builtin/fast-import.c:417,1
    - Dst: fclose
      Src: /src/git/builtin/fast-import.c:418,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:419,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 63
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 335
    functionDepth: 8
    functionLinenumber: 335
    functionLinenumberEnd: 420
    functionName: write_crash_report
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - repo_git_path
    - fputs
    - write_branch_report
    - oid_to_hex
    - for_each_mark
    - fopen
    - free
    - DATE_MODE
    - show_date
    - _
    - getpid
    - fputc
    - getppid
    - fprintf
    - time
    linkageType: ''
    returnType: void
    signature: void write_crash_report(const char *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_die_message_routine
      Src: /src/git/builtin/fast-import.c:430,1
    - Dst: va_copy
      Src: /src/git/builtin/fast-import.c:432,1
    - Dst: die_message_fn
      Src: /src/git/builtin/fast-import.c:433,1
    - Dst: vsnprintf
      Src: /src/git/builtin/fast-import.c:439,1
    - Dst: write_crash_report
      Src: /src/git/builtin/fast-import.c:440,1
    - Dst: end_packfile
      Src: /src/git/builtin/fast-import.c:441,1
    - Dst: unkeep_all_packs
      Src: /src/git/builtin/fast-import.c:442,1
    - Dst: dump_marks
      Src: /src/git/builtin/fast-import.c:443,1
    - Dst: exit
      Src: /src/git/builtin/fast-import.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - err
    - params
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 426
    functionDepth: 9
    functionLinenumber: 426
    functionLinenumberEnd: 446
    functionName: die_nicely
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - va_copy
    - die_message_fn
    - get_die_message_routine
    - exit
    - unkeep_all_packs
    - dump_marks
    - vsnprintf
    - end_packfile
    - write_crash_report
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN die_nicely(const char *err, va_list params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: set_checkpoint_signal
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_checkpoint_signal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: checkpoint_signal
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void checkpoint_signal(int signo UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/fast-import.c:465,1
    - Dst: sigemptyset
      Src: /src/git/builtin/fast-import.c:467,1
    - Dst: sigaction
      Src: /src/git/builtin/fast-import.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 470
    functionName: set_checkpoint_signal
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - memset
    - sigaction
    linkageType: ''
    returnType: void
    signature: void set_checkpoint_signal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/builtin/fast-import.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cnt
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 485
    functionName: alloc_objects
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: void
    signature: void alloc_objects(unsigned int cnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_objects
      Src: /src/git/builtin/fast-import.c:492,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 497
    functionName: new_object
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - alloc_objects
    linkageType: ''
    returnType: struct object_entry
    signature: struct object_entry *new_object(struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/builtin/fast-import.c:501,1
    - Dst: oidhash
      Src: /src/git/builtin/fast-import.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: find_object
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - oidhash
    - hashmap_get_entry_from_hash
    linkageType: ''
    returnType: struct object_entry
    signature: struct object_entry *find_object(struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidhash
      Src: /src/git/builtin/fast-import.c:508,1
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/builtin/fast-import.c:510,1
    - Dst: new_object
      Src: /src/git/builtin/fast-import.c:513,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/fast-import.c:515,1
    - Dst: hashmap_add
      Src: /src/git/builtin/fast-import.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 505
    functionDepth: 4
    functionLinenumber: 505
    functionLinenumberEnd: 520
    functionName: insert_object
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - hashmap_add
    - hashmap_get_entry_from_hash
    - hashmap_entry_init
    - new_object
    - oidhash
    linkageType: ''
    returnType: struct object_entry
    signature: struct object_entry *insert_object(struct object_id *oid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/fast-import.c:529,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 545
    functionName: invalidate_pack_id
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - hashmap_for_each_entry
    linkageType: ''
    returnType: void
    signature: void invalidate_pack_id(unsigned int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 553
    functionName: hc_str
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hc_str(const char *s, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_calloc
      Src: /src/git/builtin/fast-import.c:560,1
    - Dst: mem_pool_calloc
      Src: /src/git/builtin/fast-import.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - top
    - idnum
    - oe
    argTypes:
    - struct mark_set**
    - uintmax_t
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 555
    functionDepth: 4
    functionLinenumber: 555
    functionLinenumberEnd: 577
    functionName: insert_mark
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - mem_pool_calloc
    linkageType: ''
    returnType: void
    signature: void insert_mark(struct mark_set **top, uintmax_t idnum, struct object_entry
      *oe)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/fast-import.c:593,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - s
    - idnum
    argTypes:
    - struct mark_set*
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 595
    functionName: find_mark
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void *find_mark(struct mark_set *s, uintmax_t idnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hc_str
      Src: /src/git/builtin/fast-import.c:599,1
    - Dst: strncmp
      Src: /src/git/builtin/fast-import.c:603,1
    - Dst: mem_pool_alloc
      Src: /src/git/builtin/fast-import.c:606,1
    - Dst: memcpy
      Src: /src/git/builtin/fast-import.c:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 614
    functionName: to_atom
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strncmp
    - mem_pool_alloc
    - memcpy
    - hc_str
    linkageType: ''
    returnType: struct atom_str
    signature: struct atom_str *to_atom(const char *s, unsigned short len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hc_str
      Src: /src/git/builtin/fast-import.c:618,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:618,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 625
    functionName: lookup_branch
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strlen
    - strcmp
    - hc_str
    linkageType: ''
    returnType: struct branch
    signature: struct branch *lookup_branch(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hc_str
      Src: /src/git/builtin/fast-import.c:629,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:629,1
    - Dst: lookup_branch
      Src: /src/git/builtin/fast-import.c:630,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:633,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:633,1
    - Dst: check_refname_format
      Src: /src/git/builtin/fast-import.c:634,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:635,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:635,1
    - Dst: mem_pool_calloc
      Src: /src/git/builtin/fast-import.c:637,1
    - Dst: mem_pool_strdup
      Src: /src/git/builtin/fast-import.c:638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 648
    functionName: new_branch
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - mem_pool_calloc
    - hc_str
    - die
    - lookup_branch
    - mem_pool_strdup
    - strlen
    - check_refname_format
    - _
    linkageType: ''
    returnType: struct branch
    signature: struct branch *new_branch(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cnt
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: hc_entries
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hc_entries(unsigned int cnt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hc_entries
      Src: /src/git/builtin/fast-import.c:660,1
    - Dst: mem_pool_alloc
      Src: /src/git/builtin/fast-import.c:673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cnt
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 681
    functionName: new_tree_content
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - hc_entries
    - mem_pool_alloc
    linkageType: ''
    returnType: struct tree_content
    signature: struct tree_content *new_tree_content(unsigned int cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hc_entries
      Src: /src/git/builtin/fast-import.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tree_content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 690
    functionName: release_tree_content
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - hc_entries
    linkageType: ''
    returnType: void
    signature: void release_tree_content(struct tree_content *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_tree_entry
      Src: /src/git/builtin/fast-import.c:696,1
    - Dst: release_tree_content
      Src: /src/git/builtin/fast-import.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tree_content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 698
    functionName: release_tree_content_recursive
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - release_tree_content
    - release_tree_entry
    linkageType: ''
    returnType: void
    signature: void release_tree_content_recursive(struct tree_content *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_tree_content
      Src: /src/git/builtin/fast-import.c:704,1
    - Dst: COPY_ARRAY
      Src: /src/git/builtin/fast-import.c:707,1
    - Dst: release_tree_content
      Src: /src/git/builtin/fast-import.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - t
    - amt
    argTypes:
    - struct tree_content*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 700
    functionDepth: 4
    functionLinenumber: 700
    functionLinenumberEnd: 710
    functionName: grow_tree_content
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - release_tree_content
    - COPY_ARRAY
    - new_tree_content
    linkageType: ''
    returnType: struct tree_content
    signature: "struct tree_content *grow_tree_content(\n\tstruct tree_content *t,\n\tint
      amt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/fast-import.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 731
    functionName: new_tree_entry
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    linkageType: ''
    returnType: struct tree_entry
    signature: struct tree_entry *new_tree_entry(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release_tree_content_recursive
      Src: /src/git/builtin/fast-import.c:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct tree_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 739
    functionName: release_tree_entry
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - release_tree_content_recursive
    linkageType: ''
    returnType: void
    signature: void release_tree_entry(struct tree_entry *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_tree_content
      Src: /src/git/builtin/fast-import.c:749,1
    - Dst: new_tree_entry
      Src: /src/git/builtin/fast-import.c:752,1
    - Dst: memcpy
      Src: /src/git/builtin/fast-import.c:753,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:754,1
    - Dst: dup_tree_content
      Src: /src/git/builtin/fast-import.c:755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct tree_content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 764
    functionName: dup_tree_content
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - new_tree_entry
    - is_null_oid
    - memcpy
    - new_tree_content
    - dup_tree_content
    linkageType: ''
    returnType: struct tree_content
    signature: struct tree_content *dup_tree_content(struct tree_content *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_mkstemp
      Src: /src/git/builtin/fast-import.c:772,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/builtin/fast-import.c:774,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:775,1
    - Dst: hashfd
      Src: /src/git/builtin/fast-import.c:780,1
    - Dst: write_pack_header
      Src: /src/git/builtin/fast-import.c:783,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/builtin/fast-import.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 766
    functionDepth: 9
    functionLinenumber: 766
    functionLinenumberEnd: 788
    functionName: start_packfile
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - write_pack_header
    - odb_mkstemp
    - hashfd
    - REALLOC_ARRAY
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: void
    signature: void start_packfile(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/fast-import.c:798,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:806,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:806,1
    - Dst: write_idx_file
      Src: /src/git/builtin/fast-import.c:808,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 790
    functionDepth: 10
    functionLinenumber: 790
    functionLinenumberEnd: 812
    functionName: create_index
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - write_idx_file
    - ALLOC_ARRAY
    - free
    - _
    linkageType: ''
    returnType: char
    signature: char *create_index(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: odb_pack_name
      Src: /src/git/builtin/fast-import.c:820,1
    - Dst: safe_create_file_with_leading_directories
      Src: /src/git/builtin/fast-import.c:821,1
    - Dst: die_errno
      Src: /src/git/builtin/fast-import.c:824,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:824,1
    - Dst: write_or_die
      Src: /src/git/builtin/fast-import.c:825,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:825,1
    - Dst: close
      Src: /src/git/builtin/fast-import.c:826,1
    - Dst: die_errno
      Src: /src/git/builtin/fast-import.c:827,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:827,1
    - Dst: odb_pack_name
      Src: /src/git/builtin/fast-import.c:829,1
    - Dst: finalize_object_file
      Src: /src/git/builtin/fast-import.c:830,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:831,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:831,1
    - Dst: odb_pack_name
      Src: /src/git/builtin/fast-import.c:833,1
    - Dst: finalize_object_file
      Src: /src/git/builtin/fast-import.c:834,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:835,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:835,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:836,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fast-import.c:837,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - curr_index_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 814
    functionDepth: 7
    functionLinenumber: 814
    functionLinenumberEnd: 838
    functionName: keep_pack
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - die
    - odb_pack_name
    - die_errno
    - free
    - strlen
    - strbuf_detach
    - _
    - close
    - safe_create_file_with_leading_directories
    - finalize_object_file
    linkageType: ''
    returnType: char
    signature: char *keep_pack(const char *curr_index_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_pack_name
      Src: /src/git/builtin/fast-import.c:847,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/fast-import.c:848,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 840
    functionDepth: 3
    functionLinenumber: 840
    functionLinenumberEnd: 851
    functionName: unkeep_all_packs
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - odb_pack_name
    - strbuf_release
    - unlink_or_warn
    linkageType: ''
    returnType: void
    signature: void unkeep_all_packs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/git/builtin/fast-import.c:857,1
    - Dst: die_errno
      Src: /src/git/builtin/fast-import.c:858,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:858,1
    - Dst: strvec_push
      Src: /src/git/builtin/fast-import.c:863,1
    - Dst: strvec_push
      Src: /src/git/builtin/fast-import.c:865,1
    - Dst: run_command
      Src: /src/git/builtin/fast-import.c:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 853
    functionDepth: 8
    functionLinenumber: 853
    functionLinenumberEnd: 868
    functionName: loosen_small_pack
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_command
    - lseek
    - die_errno
    - _
    linkageType: ''
    returnType: int
    signature: int loosen_small_pack(const struct packed_git *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: clear_delta_base_cache
      Src: /src/git/builtin/fast-import.c:878,1
    - Dst: odb_source_files_downcast
      Src: /src/git/builtin/fast-import.c:880,1
    - Dst: close_pack_windows
      Src: /src/git/builtin/fast-import.c:888,1
    - Dst: finalize_hashfile
      Src: /src/git/builtin/fast-import.c:889,1
    - Dst: fixup_pack_header_footer
      Src: /src/git/builtin/fast-import.c:890,1
    - Dst: loosen_small_pack
      Src: /src/git/builtin/fast-import.c:896,1
    - Dst: invalidate_pack_id
      Src: /src/git/builtin/fast-import.c:897,1
    - Dst: close
      Src: /src/git/builtin/fast-import.c:902,1
    - Dst: keep_pack
      Src: /src/git/builtin/fast-import.c:903,1
    - Dst: create_index
      Src: /src/git/builtin/fast-import.c:903,1
    - Dst: packfile_store_load_pack
      Src: /src/git/builtin/fast-import.c:906,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:908,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:908,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:910,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:914,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:918,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:919,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:924,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:925,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:927,1
    - Dst: fflush
      Src: /src/git/builtin/fast-import.c:928,1
    - Dst: close
      Src: /src/git/builtin/fast-import.c:935,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/fast-import.c:936,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/fast-import.c:938,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:942,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 870
    functionDepth: 11
    functionLinenumber: 870
    functionLinenumberEnd: 945
    functionName: end_packfile
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - packfile_store_load_pack
    - free
    - loosen_small_pack
    - strbuf_release
    - die
    - odb_source_files_downcast
    - close_pack_windows
    - create_index
    - clear_delta_base_cache
    - fixup_pack_header_footer
    - oid_to_hex
    - unlink_or_warn
    - keep_pack
    - fflush
    - _
    - FREE_AND_NULL
    - finalize_hashfile
    - close
    - fputc
    - invalidate_pack_id
    - fprintf
    linkageType: ''
    returnType: void
    signature: void end_packfile(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_packfile
      Src: /src/git/builtin/fast-import.c:949,1
    - Dst: start_packfile
      Src: /src/git/builtin/fast-import.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 947
    functionDepth: 12
    functionLinenumber: 947
    functionLinenumberEnd: 951
    functionName: cycle_packfile
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - start_packfile
    - end_packfile
    linkageType: ''
    returnType: void
    signature: void cycle_packfile(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: format_object_header
      Src: /src/git/builtin/fast-import.c:969,1
    - Dst: init_fn
      Src: /src/git/builtin/fast-import.c:971,1
    - Dst: git_hash_update
      Src: /src/git/builtin/fast-import.c:972,1
    - Dst: git_hash_update
      Src: /src/git/builtin/fast-import.c:973,1
    - Dst: git_hash_final_oid
      Src: /src/git/builtin/fast-import.c:974,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:976,1
    - Dst: insert_object
      Src: /src/git/builtin/fast-import.c:978,1
    - Dst: insert_mark
      Src: /src/git/builtin/fast-import.c:980,1
    - Dst: odb_source_files_downcast
      Src: /src/git/builtin/fast-import.c:987,1
    - Dst: packfile_list_find_oid
      Src: /src/git/builtin/fast-import.c:989,1
    - Dst: packfile_store_get_packs
      Src: /src/git/builtin/fast-import.c:989,1
    - Dst: diff_delta
      Src: /src/git/builtin/fast-import.c:1002,1
    - Dst: git_deflate_init
      Src: /src/git/builtin/fast-import.c:1008,1
    - Dst: git_deflate_bound
      Src: /src/git/builtin/fast-import.c:1016,1
    - Dst: xmalloc
      Src: /src/git/builtin/fast-import.c:1017,1
    - Dst: git_deflate
      Src: /src/git/builtin/fast-import.c:1018,1
    - Dst: git_deflate_end
      Src: /src/git/builtin/fast-import.c:1020,1
    - Dst: cycle_packfile
      Src: /src/git/builtin/fast-import.c:1029,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/fast-import.c:1033,1
    - Dst: git_deflate_init
      Src: /src/git/builtin/fast-import.c:1035,1
    - Dst: git_deflate_bound
      Src: /src/git/builtin/fast-import.c:1038,1
    - Dst: xrealloc
      Src: /src/git/builtin/fast-import.c:1039,1
    - Dst: git_deflate
      Src: /src/git/builtin/fast-import.c:1040,1
    - Dst: git_deflate_end
      Src: /src/git/builtin/fast-import.c:1042,1
    - Dst: crc32_begin
      Src: /src/git/builtin/fast-import.c:1052,1
    - Dst: encode_in_pack_object_header
      Src: /src/git/builtin/fast-import.c:1061,1
    - Dst: hashwrite
      Src: /src/git/builtin/fast-import.c:1063,1
    - Dst: hashwrite
      Src: /src/git/builtin/fast-import.c:1069,1
    - Dst: encode_in_pack_object_header
      Src: /src/git/builtin/fast-import.c:1073,1
    - Dst: hashwrite
      Src: /src/git/builtin/fast-import.c:1075,1
    - Dst: hashwrite
      Src: /src/git/builtin/fast-import.c:1079,1
    - Dst: crc32_end
      Src: /src/git/builtin/fast-import.c:1082,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:1084,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:1085,1
    - Dst: strbuf_swap
      Src: /src/git/builtin/fast-import.c:1090,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 95
    argCount: 5
    argNames:
    - type
    - dat
    - last
    - oidout
    - mark
    argTypes:
    - enum object_type
    - struct strbuf*
    - struct last_object*
    - struct object_id*
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 953
    functionDepth: 13
    functionLinenumber: 953
    functionLinenumberEnd: 1096
    functionName: store_object
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - git_deflate_bound
    - xmalloc
    - crc32_end
    - free
    - strbuf_swap
    - git_deflate
    - odb_source_files_downcast
    - git_deflate_end
    - packfile_list_find_oid
    - diff_delta
    - git_hash_update
    - init_fn
    - format_object_header
    - insert_object
    - hashwrite
    - git_hash_final_oid
    - xrealloc
    - packfile_store_get_packs
    - FREE_AND_NULL
    - cycle_packfile
    - encode_in_pack_object_header
    - insert_mark
    - git_deflate_init
    - crc32_begin
    linkageType: ''
    returnType: int
    signature: "int store_object(\n\tenum object_type type,\n\tstruct strbuf *dat,\n\tstruct
      last_object *last,\n\tstruct object_id *oidout,\n\tuintmax_t mark)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashfile_truncate
      Src: /src/git/builtin/fast-import.c:1100,1
    - Dst: die_errno
      Src: /src/git/builtin/fast-import.c:1101,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - checkpoint
    argTypes:
    - struct hashfile_checkpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1098
    functionDepth: 2
    functionLinenumber: 1098
    functionLinenumberEnd: 1103
    functionName: truncate_pack
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die_errno
    - _
    - hashfile_truncate
    linkageType: ''
    returnType: void
    signature: void truncate_pack(struct hashfile_checkpoint *checkpoint)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/builtin/fast-import.c:1108,1
    - Dst: xmalloc
      Src: /src/git/builtin/fast-import.c:1109,1
    - Dst: cycle_packfile
      Src: /src/git/builtin/fast-import.c:1124,1
    - Dst: hashfile_checkpoint_init
      Src: /src/git/builtin/fast-import.c:1126,1
    - Dst: hashfile_checkpoint
      Src: /src/git/builtin/fast-import.c:1127,1
    - Dst: format_object_header
      Src: /src/git/builtin/fast-import.c:1130,1
    - Dst: init_fn
      Src: /src/git/builtin/fast-import.c:1132,1
    - Dst: git_hash_update
      Src: /src/git/builtin/fast-import.c:1133,1
    - Dst: crc32_begin
      Src: /src/git/builtin/fast-import.c:1135,1
    - Dst: git_deflate_init
      Src: /src/git/builtin/fast-import.c:1137,1
    - Dst: encode_in_pack_object_header
      Src: /src/git/builtin/fast-import.c:1139,1
    - Dst: fread
      Src: /src/git/builtin/fast-import.c:1147,1
    - Dst: feof
      Src: /src/git/builtin/fast-import.c:1148,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1149,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1149,1
    - Dst: git_hash_update
      Src: /src/git/builtin/fast-import.c:1151,1
    - Dst: git_deflate
      Src: /src/git/builtin/fast-import.c:1157,1
    - Dst: hashwrite
      Src: /src/git/builtin/fast-import.c:1161,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1173,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1173,1
    - Dst: git_deflate_end
      Src: /src/git/builtin/fast-import.c:1176,1
    - Dst: git_hash_final_oid
      Src: /src/git/builtin/fast-import.c:1177,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:1180,1
    - Dst: insert_object
      Src: /src/git/builtin/fast-import.c:1182,1
    - Dst: insert_mark
      Src: /src/git/builtin/fast-import.c:1185,1
    - Dst: truncate_pack
      Src: /src/git/builtin/fast-import.c:1189,1
    - Dst: odb_source_files_downcast
      Src: /src/git/builtin/fast-import.c:1194,1
    - Dst: packfile_list_find_oid
      Src: /src/git/builtin/fast-import.c:1196,1
    - Dst: packfile_store_get_packs
      Src: /src/git/builtin/fast-import.c:1196,1
    - Dst: truncate_pack
      Src: /src/git/builtin/fast-import.c:1202,1
    - Dst: crc32_end
      Src: /src/git/builtin/fast-import.c:1210,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:1215,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:1216,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 74
    argCount: 3
    argNames:
    - len
    - oidout
    - mark
    argTypes:
    - uintmax_t
    - struct object_id*
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1105
    functionDepth: 13
    functionLinenumber: 1105
    functionLinenumberEnd: 1217
    functionName: stream_blob
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - feof
    - oidcpy
    - truncate_pack
    - xmalloc
    - crc32_end
    - free
    - die
    - git_deflate
    - odb_source_files_downcast
    - hashfile_checkpoint_init
    - git_deflate_end
    - packfile_list_find_oid
    - git_hash_update
    - init_fn
    - format_object_header
    - insert_object
    - hashwrite
    - git_hash_final_oid
    - packfile_store_get_packs
    - _
    - cycle_packfile
    - hashfile_checkpoint
    - encode_in_pack_object_header
    - insert_mark
    - git_deflate_init
    - fread
    - crc32_begin
    linkageType: ''
    returnType: void
    signature: void stream_blob(uintmax_t len, struct object_id *oidout, uintmax_t
      mark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_pack_windows
      Src: /src/git/builtin/fast-import.c:1252,1
    - Dst: hashflush
      Src: /src/git/builtin/fast-import.c:1253,1
    - Dst: unpack_entry
      Src: /src/git/builtin/fast-import.c:1263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - oe
    - sizep
    argTypes:
    - struct object_entry*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1237
    functionDepth: 24
    functionLinenumber: 1237
    functionLinenumberEnd: 1264
    functionName: gfi_unpack_entry
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - close_pack_windows
    - unpack_entry
    - hashflush
    linkageType: ''
    returnType: void
    signature: "void *gfi_unpack_entry(\n\tstruct object_entry *oe,\n\tunsigned long
      *sizep)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: new_tree_content
      Src: /src/git/builtin/fast-import.c:1275,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:1276,1
    - Dst: find_object
      Src: /src/git/builtin/fast-import.c:1279,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1282,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1282,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:1282,1
    - Dst: gfi_unpack_entry
      Src: /src/git/builtin/fast-import.c:1284,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1286,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1286,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:1286,1
    - Dst: odb_read_object
      Src: /src/git/builtin/fast-import.c:1289,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1291,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1291,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:1291,1
    - Dst: new_tree_entry
      Src: /src/git/builtin/fast-import.c:1296,1
    - Dst: grow_tree_content
      Src: /src/git/builtin/fast-import.c:1299,1
    - Dst: parse_mode
      Src: /src/git/builtin/fast-import.c:1303,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1305,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1305,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:1305,1
    - Dst: to_atom
      Src: /src/git/builtin/fast-import.c:1307,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:1307,1
    - Dst: oidread
      Src: /src/git/builtin/fast-import.c:1309,1
    - Dst: oidread
      Src: /src/git/builtin/fast-import.c:1311,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:1315,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct tree_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1266
    functionDepth: 25
    functionLinenumber: 1266
    functionLinenumberEnd: 1316
    functionName: load_tree
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - new_tree_entry
    - oid_to_hex
    - die
    - odb_read_object
    - grow_tree_content
    - is_null_oid
    - gfi_unpack_entry
    - strlen
    - new_tree_content
    - parse_mode
    - _
    - free
    - find_object
    - to_atom
    - oidread
    linkageType: ''
    returnType: void
    signature: void load_tree(struct tree_entry *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_name_compare
      Src: /src/git/builtin/fast-import.c:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1318
    functionDepth: 2
    functionLinenumber: 1318
    functionLinenumberEnd: 1325
    functionName: tecmp0
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - base_name_compare
    linkageType: ''
    returnType: int
    signature: int tecmp0 (const void *_a, const void *_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_name_compare
      Src: /src/git/builtin/fast-import.c:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1327
    functionDepth: 2
    functionLinenumber: 1327
    functionLinenumberEnd: 1334
    functionName: tecmp1
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - base_name_compare
    linkageType: ''
    returnType: int
    signature: int tecmp1 (const void *_a, const void *_b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/builtin/fast-import.c:1342,1
    - Dst: QSORT
      Src: /src/git/builtin/fast-import.c:1344,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:1351,1
    - Dst: strbuf_grow
      Src: /src/git/builtin/fast-import.c:1352,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:1357,1
    - Dst: strbuf_add
      Src: /src/git/builtin/fast-import.c:1360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - t
    - v
    - b
    argTypes:
    - struct tree_content*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1336
    functionDepth: 3
    functionLinenumber: 1336
    functionLinenumberEnd: 1362
    functionName: mktree
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addf
    - QSORT
    - strbuf_grow
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void mktree(struct tree_content *t, int v, struct strbuf *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:1371,1
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:1375,1
    - Dst: store_tree
      Src: /src/git/builtin/fast-import.c:1380,1
    - Dst: find_object
      Src: /src/git/builtin/fast-import.c:1384,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:1385,1
    - Dst: mktree
      Src: /src/git/builtin/fast-import.c:1386,1
    - Dst: mktree
      Src: /src/git/builtin/fast-import.c:1392,1
    - Dst: store_object
      Src: /src/git/builtin/fast-import.c:1393,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:1400,1
    - Dst: release_tree_entry
      Src: /src/git/builtin/fast-import.c:1403,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct tree_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1364
    functionDepth: 26
    functionLinenumber: 1364
    functionLinenumberEnd: 1408
    functionName: store_tree
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - store_tree
    - S_ISDIR
    - store_object
    - oidcpy
    - release_tree_entry
    - is_null_oid
    - mktree
    - find_object
    - load_tree
    linkageType: ''
    returnType: void
    signature: void store_tree(struct tree_entry *root)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:1416,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1417,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1417,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:1418,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:1419,1
    - Dst: release_tree_content_recursive
      Src: /src/git/builtin/fast-import.c:1421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - root
    - oid
    - mode
    - newtree
    argTypes:
    - struct tree_entry*
    - struct object_id*
    - uint16_t
    - struct tree_content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1410
    functionDepth: 3
    functionLinenumber: 1410
    functionLinenumberEnd: 1423
    functionName: tree_content_replace
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - die
    - oidcpy
    - release_tree_content_recursive
    - oidclr
    - _
    linkageType: ''
    returnType: void
    signature: "void tree_content_replace(\n\tstruct tree_entry *root,\n\tconst struct
      object_id *oid,\n\tconst uint16_t mode,\n\tstruct tree_content *newtree)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/builtin/fast-import.c:1437,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1440,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1440,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:1441,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1442,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1442,1
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:1445,1
    - Dst: fspathncmp
      Src: /src/git/builtin/fast-import.c:1449,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:1451,1
    - Dst: oideq
      Src: /src/git/builtin/fast-import.c:1453,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:1456,1
    - Dst: release_tree_content_recursive
      Src: /src/git/builtin/fast-import.c:1458,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:1474,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:1477,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:1480,1
    - Dst: new_tree_content
      Src: /src/git/builtin/fast-import.c:1481,1
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:1485,1
    - Dst: tree_content_set
      Src: /src/git/builtin/fast-import.c:1486,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:1487,1
    - Dst: grow_tree_content
      Src: /src/git/builtin/fast-import.c:1495,1
    - Dst: new_tree_entry
      Src: /src/git/builtin/fast-import.c:1496,1
    - Dst: to_atom
      Src: /src/git/builtin/fast-import.c:1497,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:1499,1
    - Dst: new_tree_content
      Src: /src/git/builtin/fast-import.c:1502,1
    - Dst: tree_content_set
      Src: /src/git/builtin/fast-import.c:1504,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:1508,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:1510,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 5
    argNames:
    - root
    - p
    - oid
    - mode
    - subtree
    argTypes:
    - struct tree_entry*
    - char*
    - struct object_id*
    - uint16_t
    - struct tree_content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1425
    functionDepth: 26
    functionLinenumber: 1425
    functionLinenumberEnd: 1512
    functionName: tree_content_set
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - new_tree_entry
    - die
    - oidcpy
    - to_atom
    - fspathncmp
    - grow_tree_content
    - release_tree_content_recursive
    - tree_content_set
    - oidclr
    - new_tree_content
    - _
    - load_tree
    - strchrnul
    - oideq
    linkageType: ''
    returnType: int
    signature: "int tree_content_set(\n\tstruct tree_entry *root,\n\tconst char *p,\n\tconst
      struct object_id *oid,\n\tconst uint16_t mode,\n\tstruct tree_content *subtree)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/builtin/fast-import.c:1525,1
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:1529,1
    - Dst: fspathncmp
      Src: /src/git/builtin/fast-import.c:1539,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:1540,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:1548,1
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:1551,1
    - Dst: tree_content_remove
      Src: /src/git/builtin/fast-import.c:1552,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:1555,1
    - Dst: memcpy
      Src: /src/git/builtin/fast-import.c:1570,1
    - Dst: release_tree_content_recursive
      Src: /src/git/builtin/fast-import.c:1572,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:1575,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:1576,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 4
    argNames:
    - root
    - p
    - backup_leaf
    - allow_root
    argTypes:
    - struct tree_entry*
    - char*
    - struct tree_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1514
    functionDepth: 26
    functionLinenumber: 1514
    functionLinenumberEnd: 1578
    functionName: tree_content_remove
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - tree_content_remove
    - fspathncmp
    - memcpy
    - release_tree_content_recursive
    - oidclr
    - load_tree
    - strchrnul
    linkageType: ''
    returnType: int
    signature: "int tree_content_remove(\n\tstruct tree_entry *root,\n\tconst char
      *p,\n\tstruct tree_entry *backup_leaf,\n\tint allow_root)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/builtin/fast-import.c:1591,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1594,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1594,1
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:1597,1
    - Dst: fspathncmp
      Src: /src/git/builtin/fast-import.c:1607,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:1610,1
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:1613,1
    - Dst: tree_content_get
      Src: /src/git/builtin/fast-import.c:1614,1
    - Dst: memcpy
      Src: /src/git/builtin/fast-import.c:1620,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:1621,1
    - Dst: dup_tree_content
      Src: /src/git/builtin/fast-import.c:1622,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - root
    - p
    - leaf
    - allow_root
    argTypes:
    - struct tree_entry*
    - char*
    - struct tree_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1580
    functionDepth: 26
    functionLinenumber: 1580
    functionLinenumberEnd: 1626
    functionName: tree_content_get
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - tree_content_get
    - die
    - fspathncmp
    - memcpy
    - is_null_oid
    - _
    - load_tree
    - strchrnul
    - dup_tree_content
    linkageType: ''
    returnType: int
    signature: "int tree_content_get(\n\tstruct tree_entry *root,\n\tconst char *p,\n\tstruct
      tree_entry *leaf,\n\tint allow_root)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/fast-import.c:1636,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:1637,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:1637,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:1638,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:1640,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1640,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:1642,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/fast-import.c:1643,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fast-import.c:1643,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:1647,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/fast-import.c:1649,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fast-import.c:1649,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/fast-import.c:1653,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fast-import.c:1653,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:1654,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:1655,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/fast-import.c:1659,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/fast-import.c:1661,1
    - Dst: error
      Src: /src/git/builtin/fast-import.c:1664,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1664,1
    - Dst: repo_in_merge_bases
      Src: /src/git/builtin/fast-import.c:1666,1
    - Dst: exit
      Src: /src/git/builtin/fast-import.c:1668,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:1670,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1670,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:1672,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:1673,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/fast-import.c:1677,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fast-import.c:1677,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/fast-import.c:1680,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/fast-import.c:1682,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/fast-import.c:1683,1
    - Dst: error
      Src: /src/git/builtin/fast-import.c:1684,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:1685,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/fast-import.c:1688,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:1689,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1628
    functionDepth: 17
    functionLinenumber: 1628
    functionLinenumberEnd: 1691
    functionName: update_branch
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - is_null_oid
    - oidclr
    - strcmp
    - ref_store_transaction_begin
    - get_main_ref_store
    - error
    - strbuf_release
    - ref_transaction_update
    - ref_transaction_free
    - refs_delete_ref
    - oid_to_hex
    - _
    - warning
    - lookup_commit_reference_gently
    - exit
    - refs_read_ref
    - repo_in_merge_bases
    - starts_with
    - strlen
    linkageType: ''
    returnType: int
    signature: int update_branch(struct branch *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_branch
      Src: /src/git/builtin/fast-import.c:1700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1693
    functionDepth: 18
    functionLinenumber: 1693
    functionLinenumberEnd: 1702
    functionName: dump_branches
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - update_branch
    linkageType: ''
    returnType: void
    signature: void dump_branches(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/fast-import.c:1712,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fast-import.c:1712,1
    - Dst: error
      Src: /src/git/builtin/fast-import.c:1715,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:1719,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:1720,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/fast-import.c:1722,1
    - Dst: error
      Src: /src/git/builtin/fast-import.c:1725,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/fast-import.c:1729,1
    - Dst: error
      Src: /src/git/builtin/fast-import.c:1730,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/fast-import.c:1733,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:1734,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:1735,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1704
    functionDepth: 6
    functionLinenumber: 1704
    functionLinenumberEnd: 1736
    functionName: dump_tags
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - error
    - ref_transaction_commit
    - strbuf_release
    - strbuf_reset
    - strbuf_addf
    - ref_transaction_update
    - ref_transaction_free
    - ref_store_transaction_begin
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void dump_tags(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/fast-import.c:1746,1
    - Dst: error_errno
      Src: /src/git/builtin/fast-import.c:1747,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1747,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/builtin/fast-import.c:1752,1
    - Dst: error_errno
      Src: /src/git/builtin/fast-import.c:1753,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1753,1
    - Dst: fdopen_lock_file
      Src: /src/git/builtin/fast-import.c:1758,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/fast-import.c:1761,1
    - Dst: error
      Src: /src/git/builtin/fast-import.c:1762,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1762,1
    - Dst: strerror
      Src: /src/git/builtin/fast-import.c:1763,1
    - Dst: for_each_mark
      Src: /src/git/builtin/fast-import.c:1767,1
    - Dst: commit_lock_file
      Src: /src/git/builtin/fast-import.c:1768,1
    - Dst: error_errno
      Src: /src/git/builtin/fast-import.c:1769,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1738
    functionDepth: 6
    functionLinenumber: 1738
    functionLinenumberEnd: 1773
    functionName: dump_marks
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - error
    - error_errno
    - hold_lock_file_for_update
    - for_each_mark
    - commit_lock_file
    - strerror
    - safe_create_leading_directories_const
    - fdopen_lock_file
    - rollback_lock_file
    - _
    linkageType: ''
    returnType: void
    signature: void dump_marks(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_object
      Src: /src/git/builtin/fast-import.c:1778,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/fast-import.c:1780,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1783,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1783,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:1783,1
    - Dst: insert_object
      Src: /src/git/builtin/fast-import.c:1784,1
    - Dst: insert_mark
      Src: /src/git/builtin/fast-import.c:1789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - s
    - oid
    - mark
    argTypes:
    - struct mark_set**
    - struct object_id*
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1775
    functionDepth: 12
    functionLinenumber: 1775
    functionLinenumberEnd: 1790
    functionName: insert_object_entry
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - insert_object
    - odb_read_object_info
    - _
    - find_object
    - insert_mark
    linkageType: ''
    returnType: void
    signature: void insert_object_entry(struct mark_set **s, struct object_id *oid,
      uintmax_t mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_mark
      Src: /src/git/builtin/fast-import.c:1794,1
    - Dst: xmemdupz
      Src: /src/git/builtin/fast-import.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - oid
    - mark
    argTypes:
    - struct mark_set**
    - struct object_id*
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1792
    functionDepth: 10
    functionLinenumber: 1792
    functionLinenumberEnd: 1795
    functionName: insert_oid_entry
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - insert_mark
    linkageType: ''
    returnType: void
    signature: void insert_oid_entry(struct mark_set **s, struct object_id *oid, uintmax_t
      mark)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/git/builtin/fast-import.c:1800,1
    - Dst: memset
      Src: /src/git/builtin/fast-import.c:1806,1
    - Dst: strchr
      Src: /src/git/builtin/fast-import.c:1808,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1810,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1810,1
    - Dst: strtoumax
      Src: /src/git/builtin/fast-import.c:1812,1
    - Dst: get_oid_hex_any
      Src: /src/git/builtin/fast-import.c:1815,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1816,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1816,1
    - Dst: inserter
      Src: /src/git/builtin/fast-import.c:1817,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - s
    - f
    - inserter
    argTypes:
    - struct mark_set**
    - FILE*
    - mark_set_inserter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1797
    functionDepth: 4
    functionLinenumber: 1797
    functionLinenumberEnd: 1819
    functionName: read_mark_file
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - fgets
    - memset
    - inserter
    - die
    - strtoumax
    - strchr
    - get_oid_hex_any
    - _
    linkageType: ''
    returnType: void
    signature: void read_mark_file(struct mark_set **s, FILE *f, mark_set_inserter_t
      inserter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/builtin/fast-import.c:1823,1
    - Dst: die_errno
      Src: /src/git/builtin/fast-import.c:1829,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1829,1
    - Dst: read_mark_file
      Src: /src/git/builtin/fast-import.c:1830,1
    - Dst: fclose
      Src: /src/git/builtin/fast-import.c:1831,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1821
    functionDepth: 5
    functionLinenumber: 1821
    functionLinenumberEnd: 1834
    functionName: read_marks
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - fclose
    - die_errno
    - fopen
    - _
    - read_mark_file
    linkageType: ''
    returnType: void
    signature: void read_marks(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/fast-import.c:1852,1
    - Dst: starts_with
      Src: /src/git/builtin/fast-import.c:1857,1
    - Dst: starts_with
      Src: /src/git/builtin/fast-import.c:1858,1
    - Dst: parse_argv
      Src: /src/git/builtin/fast-import.c:1859,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:1869,1
    - Dst: xstrdup
      Src: /src/git/builtin/fast-import.c:1872,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1837
    functionDepth: 5
    functionLinenumber: 1837
    functionLinenumberEnd: 1882
    functionName: read_next_command
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strbuf_getline_lf
    - starts_with
    - free
    - parse_argv
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int read_next_command(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fgetc
      Src: /src/git/builtin/fast-import.c:1886,1
    - Dst: ungetc
      Src: /src/git/builtin/fast-import.c:1888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1889
    functionName: skip_optional_lf
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - ungetc
    - fgetc
    linkageType: ''
    returnType: void
    signature: void skip_optional_lf(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:1894,1
    - Dst: strtoumax
      Src: /src/git/builtin/fast-import.c:1895,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:1896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1891
    functionDepth: 6
    functionLinenumber: 1891
    functionLinenumberEnd: 1900
    functionName: parse_mark
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strtoumax
    - skip_prefix
    - read_next_command
    linkageType: ''
    returnType: void
    signature: void parse_mark(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:1905,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:1906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1902
    functionDepth: 6
    functionLinenumber: 1902
    functionLinenumberEnd: 1907
    functionName: parse_original_identifier
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - read_next_command
    linkageType: ''
    returnType: void
    signature: void parse_original_identifier(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:1912,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:1914,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1915,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1915,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:1917,1
    - Dst: xstrdup
      Src: /src/git/builtin/fast-import.c:1918,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/fast-import.c:1922,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1923,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1923,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:1925,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/fast-import.c:1927,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fast-import.c:1928,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:1930,1
    - Dst: strtoumax
      Src: /src/git/builtin/fast-import.c:1933,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1941,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1941,1
    - Dst: strbuf_fread
      Src: /src/git/builtin/fast-import.c:1944,1
    - Dst: feof
      Src: /src/git/builtin/fast-import.c:1945,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:1946,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:1946,1
    - Dst: skip_optional_lf
      Src: /src/git/builtin/fast-import.c:1952,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - sb
    - limit
    - len_res
    argTypes:
    - struct strbuf*
    - uintmax_t
    - uintmax_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1909
    functionDepth: 5
    functionLinenumber: 1909
    functionLinenumberEnd: 1954
    functionName: parse_data
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strbuf_getline_lf
    - die
    - feof
    - strbuf_reset
    - strtoumax
    - skip_optional_lf
    - strbuf_addch
    - strbuf_fread
    - strbuf_addbuf
    - strcmp
    - _
    - free
    - skip_prefix
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int parse_data(struct strbuf *sb, uintmax_t limit, uintmax_t *len_res)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/builtin/fast-import.c:1964,1
    - Dst: strtoul
      Src: /src/git/builtin/fast-import.c:1977,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fast-import.c:1987,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 3
    argNames:
    - src
    - result
    - strict
    argTypes:
    - char*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1956
    functionDepth: 4
    functionLinenumber: 1956
    functionLinenumberEnd: 1989
    functionName: validate_raw_date
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    - strtoul
    linkageType: ''
    returnType: int
    signature: int validate_raw_date(const char *src, struct strbuf *result, int strict)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/git/builtin/fast-import.c:2001,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2003,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2003,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2005,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2005,1
    - Dst: strcspn
      Src: /src/git/builtin/fast-import.c:2006,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2008,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2008,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2011,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2011,1
    - Dst: strbuf_add
      Src: /src/git/builtin/fast-import.c:2014,1
    - Dst: validate_raw_date
      Src: /src/git/builtin/fast-import.c:2018,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2019,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2019,1
    - Dst: validate_raw_date
      Src: /src/git/builtin/fast-import.c:2022,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2023,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2023,1
    - Dst: parse_date
      Src: /src/git/builtin/fast-import.c:2026,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2027,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2027,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:2030,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2031,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2031,1
    - Dst: datestamp
      Src: /src/git/builtin/fast-import.c:2032,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fast-import.c:2036,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 1991
    functionDepth: 6
    functionLinenumber: 1991
    functionLinenumberEnd: 2037
    functionName: parse_ident
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - validate_raw_date
    - die
    - datestamp
    - parse_date
    - strcmp
    - strbuf_detach
    - _
    - strbuf_add
    - strcspn
    linkageType: ''
    returnType: char
    signature: char *parse_ident(const char *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_data
      Src: /src/git/builtin/fast-import.c:2047,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/builtin/fast-import.c:2047,1
    - Dst: store_object
      Src: /src/git/builtin/fast-import.c:2048,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:2051,1
    - Dst: stream_blob
      Src: /src/git/builtin/fast-import.c:2055,1
    - Dst: skip_optional_lf
      Src: /src/git/builtin/fast-import.c:2056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - last
    - oidout
    - mark
    argTypes:
    - struct last_object*
    - struct object_id*
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2039
    functionDepth: 21
    functionLinenumber: 2039
    functionLinenumberEnd: 2058
    functionName: parse_and_store_blob
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - stream_blob
    - store_object
    - skip_optional_lf
    - repo_settings_get_big_file_threshold
    - parse_data
    linkageType: ''
    returnType: void
    signature: "void parse_and_store_blob(\n\tstruct last_object *last,\n\tstruct
      object_id *oidout,\n\tuintmax_t mark)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2062,1
    - Dst: parse_mark
      Src: /src/git/builtin/fast-import.c:2063,1
    - Dst: parse_original_identifier
      Src: /src/git/builtin/fast-import.c:2064,1
    - Dst: parse_and_store_blob
      Src: /src/git/builtin/fast-import.c:2065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2060
    functionDepth: 22
    functionLinenumber: 2060
    functionLinenumberEnd: 2066
    functionName: parse_new_blob
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_original_identifier
    - parse_and_store_blob
    - parse_mark
    - read_next_command
    linkageType: ''
    returnType: void
    signature: void parse_new_blob(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: release_tree_content_recursive
      Src: /src/git/builtin/fast-import.c:2093,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2068
    functionDepth: 3
    functionLinenumber: 2068
    functionLinenumberEnd: 2098
    functionName: unload_one_branch
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - release_tree_content_recursive
    linkageType: ''
    returnType: void
    signature: void unload_one_branch(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:2102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2100
    functionDepth: 26
    functionLinenumber: 2100
    functionLinenumberEnd: 2110
    functionName: load_branch
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - load_tree
    linkageType: ''
    returnType: void
    signature: void load_branch(struct branch *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num_notes
    argTypes:
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2112
    functionDepth: 0
    functionLinenumber: 2112
    functionLinenumberEnd: 2118
    functionName: convert_num_notes_to_fanout
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char convert_num_notes_to_fanout(uintmax_t num_notes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2125,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2125,1
    - Dst: memcpy
      Src: /src/git/builtin/fast-import.c:2132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - hex_sha1
    - fanout
    - path
    argTypes:
    - char*
    - unsigned char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2120
    functionDepth: 0
    functionLinenumber: 2120
    functionLinenumberEnd: 2134
    functionName: construct_path_with_fanout
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - die
    - memcpy
    - _
    linkageType: ''
    returnType: void
    signature: "void construct_path_with_fanout(const char *hex_sha1,\n\t\tunsigned
      char fanout, char *path)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:2152,1
    - Dst: memcpy
      Src: /src/git/builtin/fast-import.c:2174,1
    - Dst: memcpy
      Src: /src/git/builtin/fast-import.c:2178,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/fast-import.c:2183,1
    - Dst: construct_path_with_fanout
      Src: /src/git/builtin/fast-import.c:2190,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:2191,1
    - Dst: tree_content_remove
      Src: /src/git/builtin/fast-import.c:2198,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2199,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2199,1
    - Dst: tree_content_set
      Src: /src/git/builtin/fast-import.c:2200,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:2204,1
    - Dst: do_change_note_fanout
      Src: /src/git/builtin/fast-import.c:2206,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 7
    argNames:
    - orig_root
    - root
    - hex_oid
    - hex_oid_len
    - fullpath
    - fullpath_len
    - fanout
    argTypes:
    - struct tree_entry*
    - struct tree_entry*
    - char*
    - unsigned int
    - char*
    - unsigned int
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2136
    functionDepth: 27
    functionLinenumber: 2136
    functionLinenumberEnd: 2215
    functionName: do_change_note_fanout
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - tree_content_remove
    - die
    - get_oid_hex
    - memcpy
    - tree_content_set
    - construct_path_with_fanout
    - strcmp
    - load_tree
    - do_change_note_fanout
    - _
    linkageType: ''
    returnType: uintmax_t
    signature: "uintmax_t do_change_note_fanout(\n\t\tstruct tree_entry *orig_root,
      struct tree_entry *root,\n\t\tchar *hex_oid, unsigned int hex_oid_len,\n\t\tchar
      *fullpath, unsigned int fullpath_len,\n\t\tunsigned char fanout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_change_note_fanout
      Src: /src/git/builtin/fast-import.c:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - fanout
    argTypes:
    - struct tree_entry*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2217
    functionDepth: 28
    functionLinenumber: 2217
    functionLinenumberEnd: 2228
    functionName: change_note_fanout
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 2
    functionsReached:
    - do_change_note_fanout
    linkageType: ''
    returnType: uintmax_t
    signature: "uintmax_t change_note_fanout(struct tree_entry *root,\n\t\tunsigned
      char fanout)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/fast-import.c:2236,1
    - Dst: parse_oid_hex_any
      Src: /src/git/builtin/fast-import.c:2238,1
    - Dst: kh_get_oid_map
      Src: /src/git/builtin/fast-import.c:2242,1
    - Dst: kh_end
      Src: /src/git/builtin/fast-import.c:2244,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2250,1
    - Dst: kh_value
      Src: /src/git/builtin/fast-import.c:2250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - hex
    - oid
    - end
    argTypes:
    - char*
    - struct object_id*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2230
    functionDepth: 5
    functionLinenumber: 2230
    functionLinenumberEnd: 2252
    functionName: parse_mapped_oid_hex
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - memset
    - parse_oid_hex_any
    - oidcpy
    - kh_value
    - kh_get_oid_map
    - kh_end
    linkageType: ''
    returnType: int
    signature: int parse_mapped_oid_hex(const char *hex, struct object_id *oid, const
      char **end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/fast-import.c:2268,1
    - Dst: strtoumax
      Src: /src/git/builtin/fast-import.c:2270,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2272,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - endptr
    argTypes:
    - char*
    - char**
    assertStmts:
    - condition: (*p == ':')
      pos:
        line_end: 2267
        line_start: 2267
        source_file: /src/git/builtin/fast-import.c
    constantsTouched: []
    func_position:
      end: 2274
      start: 2264
    functionDepth: 1
    functionLinenumber: 2264
    functionLinenumberEnd: 2274
    functionName: parse_mark_ref
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strtoumax
    - die
    - assert
    - _
    linkageType: ''
    returnType: uintmax_t
    signature: uintmax_t parse_mark_ref(const char *p, char **endptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_mark_ref
      Src: /src/git/builtin/fast-import.c:2285,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2287,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2280
    functionDepth: 2
    functionLinenumber: 2280
    functionLinenumberEnd: 2289
    functionName: parse_mark_ref_eol
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - parse_mark_ref
    - _
    linkageType: ''
    returnType: uintmax_t
    signature: uintmax_t parse_mark_ref_eol(const char *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_mark_ref
      Src: /src/git/builtin/fast-import.c:2300,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2302,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2295
    functionDepth: 2
    functionLinenumber: 2295
    functionLinenumberEnd: 2305
    functionName: parse_mark_ref_space
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - parse_mark_ref
    - _
    linkageType: ''
    returnType: uintmax_t
    signature: uintmax_t parse_mark_ref_space(const char **p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unquote_c_style
      Src: /src/git/builtin/fast-import.c:2317,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2318,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2318,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:2319,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2320,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2320,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:2327,1
    - Dst: strchrnul
      Src: /src/git/builtin/fast-import.c:2328,1
    - Dst: strbuf_add
      Src: /src/git/builtin/fast-import.c:2329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - sb
    - p
    - endp
    - is_last_field
    - field
    argTypes:
    - struct strbuf*
    - char*
    - char**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2313
    functionDepth: 4
    functionLinenumber: 2313
    functionLinenumberEnd: 2331
    functionName: parse_path
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - strlen
    - unquote_c_style
    - _
    - strchrnul
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void parse_path(struct strbuf *sb, const char *p, const char **endp,\n\t\tint
      is_last_field, const char *field)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_path
      Src: /src/git/builtin/fast-import.c:2341,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2343,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - sb
    - p
    - field
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2337
    functionDepth: 5
    functionLinenumber: 2337
    functionLinenumberEnd: 2344
    functionName: parse_path_eol
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - parse_path
    - _
    linkageType: ''
    returnType: void
    signature: void parse_path_eol(struct strbuf *sb, const char *p, const char *field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_path
      Src: /src/git/builtin/fast-import.c:2354,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2356,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - sb
    - p
    - endp
    - field
    argTypes:
    - struct strbuf*
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2351
    functionDepth: 5
    functionLinenumber: 2351
    functionLinenumberEnd: 2358
    functionName: parse_path_space
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - parse_path
    - _
    linkageType: ''
    returnType: void
    signature: "void parse_path_space(struct strbuf *sb, const char *p,\n\t\tconst
      char **endp, const char *field)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: parse_mode
      Src: /src/git/builtin/fast-import.c:2367,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2369,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2369,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2382,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2382,1
    - Dst: find_mark
      Src: /src/git/builtin/fast-import.c:2386,1
    - Dst: parse_mark_ref_space
      Src: /src/git/builtin/fast-import.c:2386,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2387,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:2388,1
    - Dst: parse_mapped_oid_hex
      Src: /src/git/builtin/fast-import.c:2392,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2393,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2393,1
    - Dst: find_object
      Src: /src/git/builtin/fast-import.c:2394,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2396,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2396,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:2399,1
    - Dst: parse_path_eol
      Src: /src/git/builtin/fast-import.c:2400,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:2403,1
    - Dst: is_empty_tree_oid
      Src: /src/git/builtin/fast-import.c:2404,1
    - Dst: tree_content_remove
      Src: /src/git/builtin/fast-import.c:2406,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/fast-import.c:2410,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2412,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2412,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2416,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2416,1
    - Dst: type_name
      Src: /src/git/builtin/fast-import.c:2417,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:2424,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2425,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2425,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2427,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:2429,1
    - Dst: parse_cat_blob
      Src: /src/git/builtin/fast-import.c:2430,1
    - Dst: parse_and_store_blob
      Src: /src/git/builtin/fast-import.c:2432,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:2437,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/fast-import.c:2440,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2443,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2443,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:2444,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2444,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2444,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2447,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2447,1
    - Dst: type_name
      Src: /src/git/builtin/fast-import.c:2448,1
    - Dst: type_name
      Src: /src/git/builtin/fast-import.c:2448,1
    - Dst: tree_content_replace
      Src: /src/git/builtin/fast-import.c:2453,1
    - Dst: verify_path
      Src: /src/git/builtin/fast-import.c:2457,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2458,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2458,1
    - Dst: tree_content_set
      Src: /src/git/builtin/fast-import.c:2459,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 2
    argNames:
    - p
    - b
    argTypes:
    - char*
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2360
    functionDepth: 27
    functionLinenumber: 2360
    functionLinenumberEnd: 2460
    functionName: file_change_m
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_cat_blob
    - oidcpy
    - parse_mapped_oid_hex
    - find_mark
    - odb_read_object_info
    - type_name
    - find_object
    - parse_and_store_blob
    - die
    - parse_path_eol
    - verify_path
    - S_ISGITLINK
    - parse_mode
    - _
    - skip_prefix
    - S_ISDIR
    - tree_content_remove
    - strbuf_reset
    - is_empty_tree_oid
    - read_next_command
    - tree_content_replace
    - tree_content_set
    - parse_mark_ref_space
    linkageType: ''
    returnType: void
    signature: void file_change_m(const char *p, struct branch *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:2466,1
    - Dst: parse_path_eol
      Src: /src/git/builtin/fast-import.c:2467,1
    - Dst: tree_content_remove
      Src: /src/git/builtin/fast-import.c:2468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - b
    argTypes:
    - char*
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2462
    functionDepth: 27
    functionLinenumber: 2462
    functionLinenumberEnd: 2469
    functionName: file_change_d
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - parse_path_eol
    - tree_content_remove
    linkageType: ''
    returnType: void
    signature: void file_change_d(const char *p, struct branch *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:2477,1
    - Dst: parse_path_space
      Src: /src/git/builtin/fast-import.c:2478,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:2479,1
    - Dst: parse_path_eol
      Src: /src/git/builtin/fast-import.c:2480,1
    - Dst: memset
      Src: /src/git/builtin/fast-import.c:2482,1
    - Dst: tree_content_remove
      Src: /src/git/builtin/fast-import.c:2484,1
    - Dst: tree_content_get
      Src: /src/git/builtin/fast-import.c:2486,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2488,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2488,1
    - Dst: tree_content_replace
      Src: /src/git/builtin/fast-import.c:2490,1
    - Dst: verify_path
      Src: /src/git/builtin/fast-import.c:2496,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2497,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2497,1
    - Dst: tree_content_set
      Src: /src/git/builtin/fast-import.c:2498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - p
    - b
    - rename
    argTypes:
    - char*
    - struct branch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2471
    functionDepth: 27
    functionLinenumber: 2471
    functionLinenumberEnd: 2502
    functionName: file_change_cr
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - verify_path
    - memset
    - tree_content_get
    - tree_content_remove
    - die
    - strbuf_reset
    - parse_path_space
    - tree_content_replace
    - tree_content_set
    - _
    - parse_path_eol
    linkageType: ''
    returnType: void
    signature: void file_change_cr(const char *p, struct branch *b, int rename)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: change_note_fanout
      Src: /src/git/builtin/fast-import.c:2525,1
    - Dst: convert_num_notes_to_fanout
      Src: /src/git/builtin/fast-import.c:2526,1
    - Dst: find_mark
      Src: /src/git/builtin/fast-import.c:2532,1
    - Dst: parse_mark_ref_space
      Src: /src/git/builtin/fast-import.c:2532,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2533,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:2534,1
    - Dst: parse_mapped_oid_hex
      Src: /src/git/builtin/fast-import.c:2538,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2539,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2539,1
    - Dst: find_object
      Src: /src/git/builtin/fast-import.c:2540,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2542,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2542,1
    - Dst: lookup_branch
      Src: /src/git/builtin/fast-import.c:2546,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:2548,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2549,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2549,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2550,1
    - Dst: parse_mark_ref_eol
      Src: /src/git/builtin/fast-import.c:2552,1
    - Dst: find_mark
      Src: /src/git/builtin/fast-import.c:2553,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2555,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2555,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2556,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/fast-import.c:2557,1
    - Dst: odb_read_object_peeled
      Src: /src/git/builtin/fast-import.c:2559,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2563,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2563,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:2564,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2566,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2566,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2569,1
    - Dst: parse_and_store_blob
      Src: /src/git/builtin/fast-import.c:2570,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2573,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2573,1
    - Dst: type_name
      Src: /src/git/builtin/fast-import.c:2574,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:2575,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/fast-import.c:2576,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2579,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2579,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2581,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2581,1
    - Dst: type_name
      Src: /src/git/builtin/fast-import.c:2582,1
    - Dst: construct_path_with_fanout
      Src: /src/git/builtin/fast-import.c:2585,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:2585,1
    - Dst: tree_content_remove
      Src: /src/git/builtin/fast-import.c:2586,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:2589,1
    - Dst: convert_num_notes_to_fanout
      Src: /src/git/builtin/fast-import.c:2593,1
    - Dst: construct_path_with_fanout
      Src: /src/git/builtin/fast-import.c:2594,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:2594,1
    - Dst: tree_content_set
      Src: /src/git/builtin/fast-import.c:2595,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 3
    argNames:
    - p
    - b
    - old_fanout
    argTypes:
    - char*
    - struct branch*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2504
    functionDepth: 29
    functionLinenumber: 2504
    functionLinenumberEnd: 2596
    functionName: note_change_n
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - convert_num_notes_to_fanout
    - oidcpy
    - parse_mapped_oid_hex
    - lookup_branch
    - repo_get_oid
    - find_mark
    - is_null_oid
    - odb_read_object_info
    - free
    - find_object
    - type_name
    - parse_and_store_blob
    - die
    - oid_to_hex
    - construct_path_with_fanout
    - _
    - change_note_fanout
    - skip_prefix
    - parse_mark_ref_eol
    - tree_content_remove
    - read_next_command
    - tree_content_set
    - odb_read_object_peeled
    - parse_mark_ref_space
    linkageType: ''
    returnType: void
    signature: void note_change_n(const char *p, struct branch *b, unsigned char *old_fanout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_tree_content_recursive
      Src: /src/git/builtin/fast-import.c:2600,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:2601,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:2602,1
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:2603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2598
    functionDepth: 26
    functionLinenumber: 2598
    functionLinenumberEnd: 2605
    functionName: file_change_deleteall
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - oidclr
    - load_tree
    - release_tree_content_recursive
    linkageType: ''
    returnType: void
    signature: void file_change_deleteall(struct branch *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2610,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2610,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:2610,1
    - Dst: memcmp
      Src: /src/git/builtin/fast-import.c:2611,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/fast-import.c:2612,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2613,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2613,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:2613,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - struct branch*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2607
    functionDepth: 4
    functionLinenumber: 2607
    functionLinenumberEnd: 2616
    functionName: parse_from_commit
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - oidcpy
    - get_oid_hex
    - _
    - memcmp
    linkageType: ''
    returnType: void
    signature: void parse_from_commit(struct branch *b, char *buf, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:2620,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:2621,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:2622,1
    - Dst: odb_read_object_peeled
      Src: /src/git/builtin/fast-import.c:2627,1
    - Dst: parse_from_commit
      Src: /src/git/builtin/fast-import.c:2629,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:2630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2618
    functionDepth: 13
    functionLinenumber: 2618
    functionLinenumberEnd: 2632
    functionName: parse_from_existing
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_from_commit
    - is_null_oid
    - oidclr
    - odb_read_object_peeled
    - free
    linkageType: ''
    returnType: void
    signature: void parse_from_existing(struct branch *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2639,1
    - Dst: lookup_branch
      Src: /src/git/builtin/fast-import.c:2641,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2643,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2643,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2646,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2647,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2648,1
    - Dst: parse_mark_ref_eol
      Src: /src/git/builtin/fast-import.c:2650,1
    - Dst: find_mark
      Src: /src/git/builtin/fast-import.c:2651,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2653,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2653,1
    - Dst: oideq
      Src: /src/git/builtin/fast-import.c:2654,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2655,1
    - Dst: gfi_unpack_entry
      Src: /src/git/builtin/fast-import.c:2658,1
    - Dst: parse_from_commit
      Src: /src/git/builtin/fast-import.c:2659,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:2660,1
    - Dst: parse_from_existing
      Src: /src/git/builtin/fast-import.c:2662,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/fast-import.c:2664,1
    - Dst: parse_from_existing
      Src: /src/git/builtin/fast-import.c:2665,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:2666,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2670,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2670,1
    - Dst: oideq
      Src: /src/git/builtin/fast-import.c:2672,1
    - Dst: release_tree_content_recursive
      Src: /src/git/builtin/fast-import.c:2673,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2677,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - b
    - objectish
    argTypes:
    - struct branch*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2679
      start: 2634
    functionDepth: 25
    functionLinenumber: 2634
    functionLinenumberEnd: 2679
    functionName: parse_objectish
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_from_existing
    - parse_mark_ref_eol
    - die
    - lookup_branch
    - oidcpy
    - repo_get_oid
    - find_mark
    - parse_from_commit
    - is_null_oid
    - gfi_unpack_entry
    - release_tree_content_recursive
    - read_next_command
    - _
    - free
    - oideq
    linkageType: ''
    returnType: int
    signature: int parse_objectish(struct branch *b, const char *objectish)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:2685,1
    - Dst: parse_objectish
      Src: /src/git/builtin/fast-import.c:2688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2681
    functionDepth: 26
    functionLinenumber: 2681
    functionLinenumberEnd: 2689
    functionName: parse_from
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_objectish
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int parse_from(struct branch *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:2695,1
    - Dst: parse_objectish
      Src: /src/git/builtin/fast-import.c:2698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - prefix
    argTypes:
    - struct branch*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2691
    functionDepth: 26
    functionLinenumber: 2691
    functionLinenumberEnd: 2699
    functionName: parse_objectish_with_prefix
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_objectish
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int parse_objectish_with_prefix(struct branch *b, const char *prefix)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:2708,1
    - Dst: xmalloc
      Src: /src/git/builtin/fast-import.c:2709,1
    - Dst: lookup_branch
      Src: /src/git/builtin/fast-import.c:2710,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2712,1
    - Dst: parse_mark_ref_eol
      Src: /src/git/builtin/fast-import.c:2714,1
    - Dst: find_mark
      Src: /src/git/builtin/fast-import.c:2715,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2717,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2717,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:2718,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/fast-import.c:2719,1
    - Dst: odb_read_object_peeled
      Src: /src/git/builtin/fast-import.c:2721,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2725,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2725,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:2726,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2728,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2728,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2735,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2701
    functionDepth: 13
    functionLinenumber: 2701
    functionLinenumberEnd: 2738
    functionName: parse_merge
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_mark_ref_eol
    - die
    - lookup_branch
    - oidcpy
    - repo_get_oid
    - find_mark
    - read_next_command
    - xmalloc
    - odb_read_object_peeled
    - _
    - free
    - skip_prefix
    linkageType: ''
    returnType: struct hash_list
    signature: struct hash_list *parse_merge(unsigned int *count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/builtin/fast-import.c:2748,1
    - Dst: strchr
      Src: /src/git/builtin/fast-import.c:2749,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2752,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2752,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:2760,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:2761,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2762,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2762,1
    - Dst: valid_signature_format
      Src: /src/git/builtin/fast-import.c:2765,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2766,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2766,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:2767,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:2768,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2768,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2771,1
    - Dst: parse_data
      Src: /src/git/builtin/fast-import.c:2772,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - sig
    - v
    argTypes:
    - struct signature_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2746
    functionDepth: 6
    functionLinenumber: 2746
    functionLinenumberEnd: 2773
    functionName: parse_one_signature
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - strchr
    - read_next_command
    - parse_data
    - valid_signature_format
    - strcmp
    - warning
    - _
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void parse_one_signature(struct signature_data *sig, const char *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2779,1
    - Dst: parse_data
      Src: /src/git/builtin/fast-import.c:2780,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:2781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2775
    functionDepth: 6
    functionLinenumber: 2775
    functionLinenumberEnd: 2782
    functionName: discard_one_signature
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - parse_data
    - read_next_command
    linkageType: ''
    returnType: void
    signature: void discard_one_signature(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fast-import.c:2793,1
    - Dst: string_list_split_in_place
      Src: /src/git/builtin/fast-import.c:2794,1
    - Dst: strbuf_add_separated_string_list
      Src: /src/git/builtin/fast-import.c:2795,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fast-import.c:2796,1
    - Dst: string_list_clear
      Src: /src/git/builtin/fast-import.c:2797,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:2798,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:2799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - commit_data
    - header
    - sig
    argTypes:
    - struct strbuf*
    - char*
    - struct signature_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2784
    functionDepth: 5
    functionLinenumber: 2784
    functionLinenumberEnd: 2800
    functionName: add_gpgsig_to_commit
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strbuf_add_separated_string_list
    - string_list_clear
    - strbuf_release
    - strbuf_addch
    - strbuf_addstr
    - free
    - string_list_split_in_place
    linkageType: ''
    returnType: void
    signature: "void add_gpgsig_to_commit(struct strbuf *commit_data,\n\t\t\t\t const
      char *header,\n\t\t\t\t struct signature_data *sig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:2807,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2807,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:2810,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:2811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - stored_sig
    - new_sig
    - hash_type
    argTypes:
    - struct signature_data*
    - struct signature_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2802
    functionDepth: 3
    functionLinenumber: 2802
    functionLinenumberEnd: 2815
    functionName: store_signature
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - free
    - strbuf_release
    - warning
    - _
    linkageType: ''
    returnType: void
    signature: "void store_signature(struct signature_data *stored_sig,\n\t\t\t    struct
      signature_data *new_sig,\n\t\t\t    const char *hash_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_one_signature
      Src: /src/git/builtin/fast-import.c:2823,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:2825,1
    - Dst: store_signature
      Src: /src/git/builtin/fast-import.c:2826,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:2827,1
    - Dst: store_signature
      Src: /src/git/builtin/fast-import.c:2828,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2830,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sig_sha1
    - sig_sha256
    - v
    argTypes:
    - struct signature_data*
    - struct signature_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2817
    functionDepth: 7
    functionLinenumber: 2817
    functionLinenumberEnd: 2831
    functionName: import_one_signature
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - store_signature
    - strcmp
    - parse_one_signature
    - _
    linkageType: ''
    returnType: void
    signature: "void import_one_signature(struct signature_data *sig_sha1,\n\t\t\t\t
      struct signature_data *sig_sha256,\n\t\t\t\t const char *v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_gpgsig_to_commit
      Src: /src/git/builtin/fast-import.c:2838,1
    - Dst: add_gpgsig_to_commit
      Src: /src/git/builtin/fast-import.c:2839,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fast-import.c:2841,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/fast-import.c:2842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - new_data
    - sig_sha1
    - sig_sha256
    - msg
    argTypes:
    - struct strbuf*
    - struct signature_data*
    - struct signature_data*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2833
    functionDepth: 6
    functionLinenumber: 2833
    functionLinenumberEnd: 2843
    functionName: finalize_commit_buffer
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - strbuf_addbuf
    - add_gpgsig_to_commit
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void finalize_commit_buffer(struct strbuf *new_data,\n\t\t\t\t   struct
      signature_data *sig_sha1,\n\t\t\t\t   struct signature_data *sig_sha256,\n\t\t\t\t
      \  struct strbuf *msg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2848,1
    - Dst: find_commit_subject
      Src: /src/git/builtin/fast-import.c:2850,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:2855,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2855,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:2858,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2858,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:2861,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2861,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:2866,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2866,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:2869,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2869,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:2872,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2872,1
    - Dst: BUG
      Src: /src/git/builtin/fast-import.c:2876,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - check
    - msg
    - mode
    argTypes:
    - struct signature_check*
    - char*
    - enum sign_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2845
    functionDepth: 3
    functionLinenumber: 2845
    functionLinenumberEnd: 2878
    functionName: warn_invalid_signature
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - BUG
    - warning
    - find_commit_subject
    - _
    linkageType: ''
    returnType: void
    signature: "void warn_invalid_signature(struct signature_check *check,\n\t\t\t\t
      \  const char *msg, enum sign_mode mode)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/fast-import.c:2891,1
    - Dst: finalize_commit_buffer
      Src: /src/git/builtin/fast-import.c:2892,1
    - Dst: verify_commit_buffer
      Src: /src/git/builtin/fast-import.c:2893,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2897,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2897,1
    - Dst: warn_invalid_signature
      Src: /src/git/builtin/fast-import.c:2899,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2916,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2916,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fast-import.c:2918,1
    - Dst: sign_buffer
      Src: /src/git/builtin/fast-import.c:2919,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2921,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2921,1
    - Dst: add_header_signature
      Src: /src/git/builtin/fast-import.c:2922,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:2924,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:2925,1
    - Dst: finalize_commit_buffer
      Src: /src/git/builtin/fast-import.c:2928,1
    - Dst: strbuf_swap
      Src: /src/git/builtin/fast-import.c:2930,1
    - Dst: signature_check_clear
      Src: /src/git/builtin/fast-import.c:2933,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:2934,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - new_data
    - sig_sha1
    - sig_sha256
    - msg
    - mode
    argTypes:
    - struct strbuf*
    - struct signature_data*
    - struct signature_data*
    - struct strbuf*
    - enum sign_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2935
      start: 2880
    functionDepth: 10
    functionLinenumber: 2880
    functionLinenumberEnd: 2935
    functionName: handle_signature_if_invalid
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - sign_buffer
    - strbuf_release
    - die
    - verify_commit_buffer
    - add_header_signature
    - finalize_commit_buffer
    - strbuf_addbuf
    - strbuf_addstr
    - _
    - signature_check_clear
    - warn_invalid_signature
    - strbuf_swap
    linkageType: ''
    returnType: void
    signature: "void handle_signature_if_invalid(struct strbuf *new_data,\n\t\t\t\t\tstruct
      signature_data *sig_sha1,\n\t\t\t\t\tstruct signature_data *sig_sha256,\n\t\t\t\t\tstruct
      strbuf *msg,\n\t\t\t\t\tenum sign_mode mode)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: lookup_branch
      Src: /src/git/builtin/fast-import.c:2951,1
    - Dst: new_branch
      Src: /src/git/builtin/fast-import.c:2953,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2955,1
    - Dst: parse_mark
      Src: /src/git/builtin/fast-import.c:2956,1
    - Dst: parse_original_identifier
      Src: /src/git/builtin/fast-import.c:2957,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:2958,1
    - Dst: parse_ident
      Src: /src/git/builtin/fast-import.c:2959,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2960,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:2962,1
    - Dst: parse_ident
      Src: /src/git/builtin/fast-import.c:2963,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2964,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2967,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2967,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:2969,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:2974,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2974,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:2977,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2977,1
    - Dst: discard_one_signature
      Src: /src/git/builtin/fast-import.c:2980,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:2985,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:2985,1
    - Dst: import_one_signature
      Src: /src/git/builtin/fast-import.c:2991,1
    - Dst: BUG
      Src: /src/git/builtin/fast-import.c:2996,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:2998,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3001,1
    - Dst: xstrdup
      Src: /src/git/builtin/fast-import.c:3002,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:3003,1
    - Dst: parse_data
      Src: /src/git/builtin/fast-import.c:3005,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:3006,1
    - Dst: parse_from
      Src: /src/git/builtin/fast-import.c:3007,1
    - Dst: parse_merge
      Src: /src/git/builtin/fast-import.c:3008,1
    - Dst: unload_one_branch
      Src: /src/git/builtin/fast-import.c:3012,1
    - Dst: load_branch
      Src: /src/git/builtin/fast-import.c:3013,1
    - Dst: convert_num_notes_to_fanout
      Src: /src/git/builtin/fast-import.c:3016,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3020,1
    - Dst: file_change_m
      Src: /src/git/builtin/fast-import.c:3021,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3022,1
    - Dst: file_change_d
      Src: /src/git/builtin/fast-import.c:3023,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3024,1
    - Dst: file_change_cr
      Src: /src/git/builtin/fast-import.c:3025,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3026,1
    - Dst: file_change_cr
      Src: /src/git/builtin/fast-import.c:3027,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3028,1
    - Dst: note_change_n
      Src: /src/git/builtin/fast-import.c:3029,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3030,1
    - Dst: file_change_deleteall
      Src: /src/git/builtin/fast-import.c:3031,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3032,1
    - Dst: parse_ls
      Src: /src/git/builtin/fast-import.c:3033,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3034,1
    - Dst: parse_cat_blob
      Src: /src/git/builtin/fast-import.c:3035,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:3040,1
    - Dst: convert_num_notes_to_fanout
      Src: /src/git/builtin/fast-import.c:3044,1
    - Dst: change_note_fanout
      Src: /src/git/builtin/fast-import.c:3046,1
    - Dst: store_tree
      Src: /src/git/builtin/fast-import.c:3049,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:3050,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:3053,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:3054,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3055,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:3056,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:3057,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3058,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:3061,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3062,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3063,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:3066,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:3071,1
    - Dst: handle_signature_if_invalid
      Src: /src/git/builtin/fast-import.c:3079,1
    - Dst: finalize_commit_buffer
      Src: /src/git/builtin/fast-import.c:3082,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3084,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3085,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3086,1
    - Dst: store_object
      Src: /src/git/builtin/fast-import.c:3088,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 101
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 2937
    functionDepth: 30
    functionLinenumber: 2937
    functionLinenumberEnd: 3091
    functionName: parse_new_commit
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_cat_blob
    - file_change_m
    - parse_from
    - lookup_branch
    - convert_num_notes_to_fanout
    - BUG
    - oidcpy
    - strbuf_addf
    - is_null_oid
    - note_change_n
    - strcmp
    - free
    - parse_merge
    - store_tree
    - die
    - parse_mark
    - new_branch
    - parse_original_identifier
    - oid_to_hex
    - handle_signature_if_invalid
    - file_change_d
    - load_branch
    - _
    - file_change_deleteall
    - change_note_fanout
    - warning
    - skip_prefix
    - xstrdup
    - parse_ls
    - store_object
    - parse_ident
    - strbuf_reset
    - read_next_command
    - finalize_commit_buffer
    - file_change_cr
    - parse_data
    - unload_one_branch
    - discard_one_signature
    - import_one_signature
    linkageType: ''
    returnType: void
    signature: void parse_new_commit(const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/fast-import.c:3101,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fast-import.c:3102,1
    - Dst: strbuf_add
      Src: /src/git/builtin/fast-import.c:3103,1
    - Dst: strbuf_add
      Src: /src/git/builtin/fast-import.c:3104,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fast-import.c:3107,1
    - Dst: check_signature
      Src: /src/git/builtin/fast-import.c:3109,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3113,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3113,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/fast-import.c:3115,1
    - Dst: strbuf_attach
      Src: /src/git/builtin/fast-import.c:3118,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:3121,1
    - Dst: sign_buffer
      Src: /src/git/builtin/fast-import.c:3123,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3125,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3125,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/fast-import.c:3127,1
    - Dst: signature_check_clear
      Src: /src/git/builtin/fast-import.c:3131,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:3132,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:3133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - msg
    - sig_offset
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3093
    functionDepth: 10
    functionLinenumber: 3093
    functionLinenumberEnd: 3134
    functionName: handle_tag_signature_if_invalid
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - sign_buffer
    - strbuf_release
    - die
    - strbuf_attach
    - check_signature
    - strbuf_reset
    - strbuf_setlen
    - strbuf_addch
    - strbuf_addbuf
    - strbuf_detach
    - signature_check_clear
    - _
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void handle_tag_signature_if_invalid(struct strbuf *buf,\n\t\t\t\t\t
      \   struct strbuf *msg,\n\t\t\t\t\t    size_t sig_offset)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: parse_signed_buffer
      Src: /src/git/builtin/fast-import.c:3138,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:3148,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3148,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:3156,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3156,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/fast-import.c:3160,1
    - Dst: handle_tag_signature_if_invalid
      Src: /src/git/builtin/fast-import.c:3165,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3170,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3170,1
    - Dst: BUG
      Src: /src/git/builtin/fast-import.c:3173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - buf
    - msg
    - name
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3176
      start: 3136
    functionDepth: 11
    functionLinenumber: 3136
    functionLinenumberEnd: 3176
    functionName: handle_tag_signature
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - handle_tag_signature_if_invalid
    - die
    - strbuf_setlen
    - _
    - warning
    - BUG
    - parse_signed_buffer
    linkageType: ''
    returnType: void
    signature: void handle_tag_signature(struct strbuf *buf, struct strbuf *msg, const
      char *name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_calloc
      Src: /src/git/builtin/fast-import.c:3190,1
    - Dst: mem_pool_strdup
      Src: /src/git/builtin/fast-import.c:3191,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:3197,1
    - Dst: parse_mark
      Src: /src/git/builtin/fast-import.c:3198,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3201,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3202,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3202,1
    - Dst: lookup_branch
      Src: /src/git/builtin/fast-import.c:3203,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:3205,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3206,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3206,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:3207,1
    - Dst: parse_mark_ref_eol
      Src: /src/git/builtin/fast-import.c:3211,1
    - Dst: find_mark
      Src: /src/git/builtin/fast-import.c:3212,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:3214,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/fast-import.c:3215,1
    - Dst: find_object
      Src: /src/git/builtin/fast-import.c:3216,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/fast-import.c:3218,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3221,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3221,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3225,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3225,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:3226,1
    - Dst: parse_original_identifier
      Src: /src/git/builtin/fast-import.c:3229,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3232,1
    - Dst: parse_ident
      Src: /src/git/builtin/fast-import.c:3233,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:3234,1
    - Dst: parse_data
      Src: /src/git/builtin/fast-import.c:3239,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:3242,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:3244,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3248,1
    - Dst: type_name
      Src: /src/git/builtin/fast-import.c:3248,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:3250,1
    - Dst: handle_tag_signature
      Src: /src/git/builtin/fast-import.c:3253,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fast-import.c:3255,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/fast-import.c:3256,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3257,1
    - Dst: store_object
      Src: /src/git/builtin/fast-import.c:3259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3263
      start: 3178
    functionDepth: 14
    functionLinenumber: 3178
    functionLinenumberEnd: 3263
    functionName: parse_new_tag
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - lookup_branch
    - oidcpy
    - repo_get_oid
    - find_mark
    - strbuf_addf
    - mem_pool_strdup
    - is_null_oid
    - odb_read_object_info
    - handle_tag_signature
    - strbuf_addbuf
    - free
    - find_object
    - type_name
    - mem_pool_calloc
    - die
    - parse_mark
    - parse_original_identifier
    - oid_to_hex
    - _
    - skip_prefix
    - parse_mark_ref_eol
    - store_object
    - parse_ident
    - strbuf_reset
    - read_next_command
    - strbuf_addch
    - parse_data
    linkageType: ''
    returnType: void
    signature: void parse_new_tag(const char *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lookup_branch
      Src: /src/git/builtin/fast-import.c:3270,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:3272,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:3273,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-import.c:3274,1
    - Dst: release_tree_content_recursive
      Src: /src/git/builtin/fast-import.c:3276,1
    - Dst: new_branch
      Src: /src/git/builtin/fast-import.c:3281,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:3282,1
    - Dst: parse_from
      Src: /src/git/builtin/fast-import.c:3283,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3284,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3296,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3312
      start: 3265
    functionDepth: 27
    functionLinenumber: 3265
    functionLinenumberEnd: 3312
    functionName: parse_reset_branch
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_from
    - lookup_branch
    - read_next_command
    - release_tree_content_recursive
    - oidclr
    - new_branch
    - strcmp
    - skip_prefix
    linkageType: ''
    returnType: void
    signature: void parse_reset_branch(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_in_full
      Src: /src/git/builtin/fast-import.c:3316,1
    - Dst: die_errno
      Src: /src/git/builtin/fast-import.c:3317,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3318
      start: 3314
    functionDepth: 4
    functionLinenumber: 3314
    functionLinenumberEnd: 3318
    functionName: cat_blob_write
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - write_in_full
    - die_errno
    - _
    linkageType: ''
    returnType: void
    signature: void cat_blob_write(const char *buf, unsigned long size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/builtin/fast-import.c:3328,1
    - Dst: gfi_unpack_entry
      Src: /src/git/builtin/fast-import.c:3331,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:3338,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:3339,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3339,1
    - Dst: cat_blob_write
      Src: /src/git/builtin/fast-import.c:3340,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:3341,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3342,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3346,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3346,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3346,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3348,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3348,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3349,1
    - Dst: type_name
      Src: /src/git/builtin/fast-import.c:3349,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:3350,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:3351,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3351,1
    - Dst: type_name
      Src: /src/git/builtin/fast-import.c:3352,1
    - Dst: cat_blob_write
      Src: /src/git/builtin/fast-import.c:3353,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fast-import.c:3354,1
    - Dst: cat_blob_write
      Src: /src/git/builtin/fast-import.c:3355,1
    - Dst: cat_blob_write
      Src: /src/git/builtin/fast-import.c:3356,1
    - Dst: strbuf_attach
      Src: /src/git/builtin/fast-import.c:3359,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3362,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - oe
    - oid
    argTypes:
    - struct object_entry*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3363
      start: 3320
    functionDepth: 25
    functionLinenumber: 3320
    functionLinenumberEnd: 3363
    functionName: cat_blob
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - die
    - strbuf_reset
    - strbuf_attach
    - strbuf_addf
    - _
    - gfi_unpack_entry
    - type_name
    - free
    - odb_read_object
    - cat_blob_write
    linkageType: ''
    returnType: void
    signature: void cat_blob(struct object_entry *oe, struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3372,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3372,1
    - Dst: find_mark
      Src: /src/git/builtin/fast-import.c:3374,1
    - Dst: parse_mark_ref_eol
      Src: /src/git/builtin/fast-import.c:3374,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3376,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3376,1
    - Dst: xsnprintf
      Src: /src/git/builtin/fast-import.c:3378,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3378,1
    - Dst: cat_blob_write
      Src: /src/git/builtin/fast-import.c:3379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3365
    functionDepth: 5
    functionLinenumber: 3365
    functionLinenumberEnd: 3380
    functionName: parse_get_mark
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_mark_ref_eol
    - die
    - oid_to_hex
    - find_mark
    - xsnprintf
    - _
    - cat_blob_write
    linkageType: ''
    returnType: void
    signature: void parse_get_mark(const char *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_mark
      Src: /src/git/builtin/fast-import.c:3389,1
    - Dst: parse_mark_ref_eol
      Src: /src/git/builtin/fast-import.c:3389,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3391,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3391,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:3392,1
    - Dst: parse_mapped_oid_hex
      Src: /src/git/builtin/fast-import.c:3394,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3395,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3395,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3397,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3397,1
    - Dst: find_object
      Src: /src/git/builtin/fast-import.c:3398,1
    - Dst: cat_blob
      Src: /src/git/builtin/fast-import.c:3401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3402
      start: 3382
    functionDepth: 26
    functionLinenumber: 3382
    functionLinenumberEnd: 3402
    functionName: parse_cat_blob
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 2
    functionsReached:
    - parse_mark_ref_eol
    - die
    - oidcpy
    - parse_mapped_oid_hex
    - cat_blob
    - find_mark
    - _
    - find_object
    linkageType: ''
    returnType: void
    signature: void parse_cat_blob(const char *p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/builtin/fast-import.c:3412,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3415,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3415,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3415,1
    - Dst: insert_object
      Src: /src/git/builtin/fast-import.c:3417,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3429,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3429,1
    - Dst: gfi_unpack_entry
      Src: /src/git/builtin/fast-import.c:3433,1
    - Dst: odb_read_object
      Src: /src/git/builtin/fast-import.c:3436,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3440,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3440,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-import.c:3440,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:3445,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/fast-import.c:3446,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:3446,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3447,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3447,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:3450,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/fast-import.c:3451,1
    - Dst: strlen
      Src: /src/git/builtin/fast-import.c:3451,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3452,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3452,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3455,1
    - Dst: find_object
      Src: /src/git/builtin/fast-import.c:3456,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - oe
    - oid
    argTypes:
    - struct object_entry*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3457
      start: 3404
    functionDepth: 25
    functionLinenumber: 3404
    functionLinenumberEnd: 3457
    functionName: dereference
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - get_oid_hex
    - insert_object
    - find_object
    - odb_read_object_info
    - gfi_unpack_entry
    - strlen
    - _
    - free
    - odb_read_object
    linkageType: ''
    returnType: struct object_entry
    signature: "struct object_entry *dereference(struct object_entry *oe,\n\t\t\t\t\tstruct
      object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_mark
      Src: /src/git/builtin/fast-import.c:3462,1
    - Dst: kh_put_oid_map
      Src: /src/git/builtin/fast-import.c:3466,1
    - Dst: kh_value
      Src: /src/git/builtin/fast-import.c:3470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mark
    - object
    - cbp
    argTypes:
    - uintmax_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3471
      start: 3459
    functionDepth: 1
    functionLinenumber: 3459
    functionLinenumberEnd: 3471
    functionName: insert_mapped_mark
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - kh_value
    - kh_put_oid_map
    - find_mark
    linkageType: ''
    returnType: void
    signature: void insert_mapped_mark(uintmax_t mark, void *object, void *cbp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_mark
      Src: /src/git/builtin/fast-import.c:3475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - struct mark_set*
    - struct mark_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3476
      start: 3473
    functionDepth: 2
    functionLinenumber: 3473
    functionLinenumberEnd: 3476
    functionName: build_mark_map_one
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - for_each_mark
    linkageType: ''
    returnType: void
    signature: void build_mark_map_one(struct mark_set *from, struct mark_set *to)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kh_init_oid_map
      Src: /src/git/builtin/fast-import.c:3482,1
    - Dst: string_list_lookup
      Src: /src/git/builtin/fast-import.c:3485,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3487,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3487,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3489,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3489,1
    - Dst: build_mark_map_one
      Src: /src/git/builtin/fast-import.c:3491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - struct string_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3493
      start: 3478
    functionDepth: 3
    functionLinenumber: 3478
    functionLinenumberEnd: 3493
    functionName: build_mark_map
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    - die
    - kh_init_oid_map
    - build_mark_map_one
    - _
    linkageType: ''
    returnType: void
    signature: void build_mark_map(struct string_list *from, struct string_list *to)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_lookup
      Src: /src/git/builtin/fast-import.c:3485,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3487,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3487,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3489,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3489,1
    - Dst: build_mark_map_one
      Src: /src/git/builtin/fast-import.c:3491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3492
      start: 3484
    functionDepth: 3
    functionLinenumber: 3484
    functionLinenumberEnd: 3492
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 54
    functionsReached:
    - build_mark_map_one
    - string_list_lookup
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(fromp, from)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_mark
      Src: /src/git/builtin/fast-import.c:3501,1
    - Dst: parse_mark_ref_space
      Src: /src/git/builtin/fast-import.c:3501,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3503,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3503,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:3504,1
    - Dst: parse_mapped_oid_hex
      Src: /src/git/builtin/fast-import.c:3506,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3507,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3507,1
    - Dst: find_object
      Src: /src/git/builtin/fast-import.c:3508,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3510,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3510,1
    - Dst: dereference
      Src: /src/git/builtin/fast-import.c:3514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3516
      start: 3495
    functionDepth: 26
    functionLinenumber: 3495
    functionLinenumberEnd: 3516
    functionName: parse_treeish_dataref
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_mark_ref_space
    - die
    - oidcpy
    - parse_mapped_oid_hex
    - find_mark
    - dereference
    - _
    - find_object
    linkageType: ''
    returnType: struct object_entry
    signature: struct object_entry *parse_treeish_dataref(const char **p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/fast-import.c:3524,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:3525,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:3530,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fast-import.c:3531,1
    - Dst: quote_c_style
      Src: /src/git/builtin/fast-import.c:3532,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fast-import.c:3533,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:3536,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-import.c:3537,1
    - Dst: hash_to_hex
      Src: /src/git/builtin/fast-import.c:3538,1
    - Dst: quote_c_style
      Src: /src/git/builtin/fast-import.c:3539,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fast-import.c:3540,1
    - Dst: cat_blob_write
      Src: /src/git/builtin/fast-import.c:3542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - mode
    - hash
    - path
    argTypes:
    - int
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3518
    functionDepth: 5
    functionLinenumber: 3518
    functionLinenumberEnd: 3543
    functionName: print_ls
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - hash_to_hex
    - strbuf_reset
    - S_ISGITLINK
    - strbuf_addf
    - strbuf_addch
    - strbuf_addstr
    - quote_c_style
    - cat_blob_write
    linkageType: ''
    returnType: void
    signature: void print_ls(int mode, const unsigned char *hash, const char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3554,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3554,1
    - Dst: parse_treeish_dataref
      Src: /src/git/builtin/fast-import.c:3557,1
    - Dst: new_tree_entry
      Src: /src/git/builtin/fast-import.c:3558,1
    - Dst: oidcpy
      Src: /src/git/builtin/fast-import.c:3559,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-import.c:3560,1
    - Dst: load_tree
      Src: /src/git/builtin/fast-import.c:3562,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-import.c:3564,1
    - Dst: parse_path_eol
      Src: /src/git/builtin/fast-import.c:3565,1
    - Dst: tree_content_get
      Src: /src/git/builtin/fast-import.c:3566,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/fast-import.c:3571,1
    - Dst: store_tree
      Src: /src/git/builtin/fast-import.c:3572,1
    - Dst: print_ls
      Src: /src/git/builtin/fast-import.c:3574,1
    - Dst: release_tree_content_recursive
      Src: /src/git/builtin/fast-import.c:3576,1
    - Dst: release_tree_entry
      Src: /src/git/builtin/fast-import.c:3578,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - p
    - b
    argTypes:
    - char*
    - struct branch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3579
      start: 3545
    functionDepth: 27
    functionLinenumber: 3545
    functionLinenumberEnd: 3579
    functionName: parse_ls
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - print_ls
    - new_tree_entry
    - tree_content_get
    - die
    - S_ISDIR
    - store_tree
    - oidcpy
    - parse_treeish_dataref
    - strbuf_reset
    - release_tree_entry
    - is_null_oid
    - release_tree_content_recursive
    - _
    - load_tree
    - parse_path_eol
    linkageType: ''
    returnType: void
    signature: void parse_ls(const char *p, struct branch *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cycle_packfile
      Src: /src/git/builtin/fast-import.c:3585,1
    - Dst: dump_branches
      Src: /src/git/builtin/fast-import.c:3587,1
    - Dst: dump_tags
      Src: /src/git/builtin/fast-import.c:3588,1
    - Dst: dump_marks
      Src: /src/git/builtin/fast-import.c:3589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3590
      start: 3581
    functionDepth: 19
    functionLinenumber: 3581
    functionLinenumberEnd: 3590
    functionName: checkpoint
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 2
    functionsReached:
    - dump_branches
    - dump_marks
    - dump_tags
    - cycle_packfile
    linkageType: ''
    returnType: void
    signature: void checkpoint(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_optional_lf
      Src: /src/git/builtin/fast-import.c:3595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3596
      start: 3592
    functionDepth: 1
    functionLinenumber: 3592
    functionLinenumberEnd: 3596
    functionName: parse_checkpoint
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - skip_optional_lf
    linkageType: ''
    returnType: void
    signature: void parse_checkpoint(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/builtin/fast-import.c:3600,1
    - Dst: fputc
      Src: /src/git/builtin/fast-import.c:3601,1
    - Dst: fflush
      Src: /src/git/builtin/fast-import.c:3602,1
    - Dst: skip_optional_lf
      Src: /src/git/builtin/fast-import.c:3603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3598
    functionDepth: 1
    functionLinenumber: 3598
    functionLinenumberEnd: 3604
    functionName: parse_progress
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - skip_optional_lf
    - fputc
    - fwrite
    - fflush
    linkageType: ''
    returnType: void
    signature: void parse_progress(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_optional_lf
      Src: /src/git/builtin/fast-import.c:3611,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:3612,1
    - Dst: parse_mark
      Src: /src/git/builtin/fast-import.c:3615,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3617,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3617,1
    - Dst: memset
      Src: /src/git/builtin/fast-import.c:3620,1
    - Dst: parse_objectish_with_prefix
      Src: /src/git/builtin/fast-import.c:3621,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3622,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3622,1
    - Dst: find_object
      Src: /src/git/builtin/fast-import.c:3623,1
    - Dst: assert
      Src: /src/git/builtin/fast-import.c:3624,1
    - Dst: insert_mark
      Src: /src/git/builtin/fast-import.c:3625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (e)
      pos:
        line_end: 3623
        line_start: 3623
        source_file: /src/git/builtin/fast-import.c
    constantsTouched: []
    func_position:
      end: 3626
      start: 3606
    functionDepth: 27
    functionLinenumber: 3606
    functionLinenumberEnd: 3626
    functionName: parse_alias
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - parse_mark
    - assert
    - skip_optional_lf
    - read_next_command
    - parse_objectish_with_prefix
    - _
    - find_object
    - insert_mark
    linkageType: ''
    returnType: void
    signature: void parse_alias(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute_path
      Src: /src/git/builtin/fast-import.c:3630,1
    - Dst: prefix_filename
      Src: /src/git/builtin/fast-import.c:3631,1
    - Dst: repo_git_path
      Src: /src/git/builtin/fast-import.c:3632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3633
      start: 3628
    functionDepth: 8
    functionLinenumber: 3628
    functionLinenumberEnd: 3633
    functionName: make_fast_import_path
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    - is_absolute_path
    - prefix_filename
    linkageType: ''
    returnType: char
    signature: char * make_fast_import_path(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3640,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3640,1
    - Dst: read_marks
      Src: /src/git/builtin/fast-import.c:3644,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3647,1
    - Dst: make_fast_import_path
      Src: /src/git/builtin/fast-import.c:3648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - marks
    - from_stream
    - ignore_missing
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3651
      start: 3635
    functionDepth: 9
    functionLinenumber: 3635
    functionLinenumberEnd: 3651
    functionName: option_import_marks
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - make_fast_import_path
    - die
    - _
    - free
    - read_marks
    linkageType: ''
    returnType: void
    signature: "void option_import_marks(const char *marks,\n\t\t\t\t\tint from_stream,
      int ignore_missing)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3655,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3657,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3659,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3661,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3664,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3665
      start: 3653
    functionDepth: 0
    functionLinenumber: 3653
    functionLinenumberEnd: 3665
    functionName: option_date_format
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: void
    signature: void option_date_format(const char *fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/builtin/fast-import.c:3670,1
    - Dst: strchr
      Src: /src/git/builtin/fast-import.c:3671,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3672,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - option
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3674
      start: 3667
    functionDepth: 0
    functionLinenumber: 3667
    functionLinenumberEnd: 3674
    functionName: ulong_arg
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strchr
    - strtoul
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ulong_arg(const char *option, const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ulong_arg
      Src: /src/git/builtin/fast-import.c:3678,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3680,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - depth
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3676
    functionDepth: 1
    functionLinenumber: 3676
    functionLinenumberEnd: 3681
    functionName: option_depth
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - ulong_arg
    linkageType: ''
    returnType: void
    signature: void option_depth(const char *depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ulong_arg
      Src: /src/git/builtin/fast-import.c:3685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - branches
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3686
      start: 3683
    functionDepth: 1
    functionLinenumber: 3683
    functionLinenumberEnd: 3686
    functionName: option_active_branches
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - ulong_arg
    linkageType: ''
    returnType: void
    signature: void option_active_branches(const char *branches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3690,1
    - Dst: make_fast_import_path
      Src: /src/git/builtin/fast-import.c:3691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - marks
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3692
      start: 3688
    functionDepth: 9
    functionLinenumber: 3688
    functionLinenumberEnd: 3692
    functionName: option_export_marks
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - make_fast_import_path
    - free
    linkageType: ''
    returnType: void
    signature: void option_export_marks(const char *marks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ulong_arg
      Src: /src/git/builtin/fast-import.c:3696,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3698,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3700
      start: 3694
    functionDepth: 1
    functionLinenumber: 3694
    functionLinenumberEnd: 3700
    functionName: option_cat_blob_fd
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - ulong_arg
    linkageType: ''
    returnType: void
    signature: void option_cat_blob_fd(const char *fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prefix_filename
      Src: /src/git/builtin/fast-import.c:3704,1
    - Dst: fclose
      Src: /src/git/builtin/fast-import.c:3706,1
    - Dst: xfopen
      Src: /src/git/builtin/fast-import.c:3707,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - edges
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3709
      start: 3702
    functionDepth: 5
    functionLinenumber: 3702
    functionLinenumberEnd: 3709
    functionName: option_export_pack_edges
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - fclose
    - xfopen
    - prefix_filename
    - free
    linkageType: ''
    returnType: void
    signature: void option_export_pack_edges(const char *edges)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/builtin/fast-import.c:3715,1
    - Dst: strchr
      Src: /src/git/builtin/fast-import.c:3716,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3718,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3718,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/fast-import.c:3721,1
    - Dst: prefix_filename
      Src: /src/git/builtin/fast-import.c:3723,1
    - Dst: fopen
      Src: /src/git/builtin/fast-import.c:3724,1
    - Dst: die_errno
      Src: /src/git/builtin/fast-import.c:3726,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3726,1
    - Dst: read_mark_file
      Src: /src/git/builtin/fast-import.c:3727,1
    - Dst: fclose
      Src: /src/git/builtin/fast-import.c:3728,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3729,1
    - Dst: string_list_insert
      Src: /src/git/builtin/fast-import.c:3731,1
    - Dst: free
      Src: /src/git/builtin/fast-import.c:3733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - arg
    - list
    argTypes:
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3734
      start: 3711
    functionDepth: 5
    functionLinenumber: 3711
    functionLinenumberEnd: 3734
    functionName: option_rewrite_submodules
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - fclose
    - die
    - prefix_filename
    - string_list_insert
    - die_errno
    - fopen
    - strchr
    - CALLOC_ARRAY
    - free
    - read_mark_file
    - _
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void option_rewrite_submodules(const char *arg, struct string_list
      *list)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3738,1
    - Dst: git_parse_ulong
      Src: /src/git/builtin/fast-import.c:3740,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:3743,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3743,1
    - Dst: warning
      Src: /src/git/builtin/fast-import.c:3746,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3746,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3750,1
    - Dst: git_parse_ulong
      Src: /src/git/builtin/fast-import.c:3752,1
    - Dst: repo_settings_set_big_file_threshold
      Src: /src/git/builtin/fast-import.c:3754,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3755,1
    - Dst: option_depth
      Src: /src/git/builtin/fast-import.c:3756,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3757,1
    - Dst: option_active_branches
      Src: /src/git/builtin/fast-import.c:3758,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3759,1
    - Dst: option_export_pack_edges
      Src: /src/git/builtin/fast-import.c:3760,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3761,1
    - Dst: parse_sign_mode
      Src: /src/git/builtin/fast-import.c:3762,1
    - Dst: usagef
      Src: /src/git/builtin/fast-import.c:3763,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3763,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3764,1
    - Dst: parse_sign_mode
      Src: /src/git/builtin/fast-import.c:3765,1
    - Dst: usagef
      Src: /src/git/builtin/fast-import.c:3766,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3766,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3767,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3770,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3772,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 1
    argNames:
    - option
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3779
      start: 3736
    functionDepth: 6
    functionLinenumber: 3736
    functionLinenumberEnd: 3779
    functionName: parse_one_option
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - repo_settings_set_big_file_threshold
    - parse_sign_mode
    - option_export_pack_edges
    - git_parse_ulong
    - option_active_branches
    - strcmp
    - warning
    - _
    - option_depth
    - skip_prefix
    - usagef
    linkageType: ''
    returnType: int
    signature: int parse_one_option(const char *option)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3784,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - feature
    - from_stream
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3786
      start: 3781
    functionDepth: 0
    functionLinenumber: 3781
    functionLinenumberEnd: 3786
    functionName: check_unsafe_feature
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void check_unsafe_feature(const char *feature, int from_stream)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3792,1
    - Dst: option_date_format
      Src: /src/git/builtin/fast-import.c:3793,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3794,1
    - Dst: check_unsafe_feature
      Src: /src/git/builtin/fast-import.c:3795,1
    - Dst: option_import_marks
      Src: /src/git/builtin/fast-import.c:3796,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3797,1
    - Dst: check_unsafe_feature
      Src: /src/git/builtin/fast-import.c:3798,1
    - Dst: option_import_marks
      Src: /src/git/builtin/fast-import.c:3799,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3800,1
    - Dst: check_unsafe_feature
      Src: /src/git/builtin/fast-import.c:3801,1
    - Dst: option_export_marks
      Src: /src/git/builtin/fast-import.c:3802,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3803,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3805,1
    - Dst: option_rewrite_submodules
      Src: /src/git/builtin/fast-import.c:3806,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3807,1
    - Dst: option_rewrite_submodules
      Src: /src/git/builtin/fast-import.c:3808,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3809,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3811,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3813,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3815,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3817,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3819,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3821,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3821,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - feature
    - from_stream
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3828
      start: 3788
    functionDepth: 10
    functionLinenumber: 3788
    functionLinenumberEnd: 3828
    functionName: parse_one_feature
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - option_import_marks
    - option_rewrite_submodules
    - option_export_marks
    - strcmp
    - check_unsafe_feature
    - skip_prefix
    - option_date_format
    linkageType: ''
    returnType: int
    signature: int parse_one_feature(const char *feature, int from_stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3833,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3833,1
    - Dst: parse_one_feature
      Src: /src/git/builtin/fast-import.c:3835,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3838,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - feature
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3830
    functionDepth: 11
    functionLinenumber: 3830
    functionLinenumberEnd: 3839
    functionName: parse_feature
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_one_feature
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void parse_feature(const char *feature)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3844,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3844,1
    - Dst: parse_one_option
      Src: /src/git/builtin/fast-import.c:3846,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3849,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - option
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3850
      start: 3841
    functionDepth: 7
    functionLinenumber: 3841
    functionLinenumberEnd: 3850
    functionName: parse_option
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - parse_one_option
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void parse_option(const char *option)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_ulong
      Src: /src/git/builtin/fast-import.c:3858,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/fast-import.c:3862,1
    - Dst: git_die_config
      Src: /src/git/builtin/fast-import.c:3865,1
    - Dst: repo_config_get_ulong
      Src: /src/git/builtin/fast-import.c:3868,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/fast-import.c:3871,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/fast-import.c:3873,1
    - Dst: repo_config
      Src: /src/git/builtin/fast-import.c:3876,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3877
      start: 3852
    functionDepth: 20
    functionLinenumber: 3852
    functionLinenumberEnd: 3877
    functionName: git_pack_config
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - repo_config
    - repo_config_get_ulong
    - git_die_config
    linkageType: ''
    returnType: void
    signature: void git_pack_config(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3889,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3892,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3893,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3893,1
    - Dst: parse_one_option
      Src: /src/git/builtin/fast-import.c:3895,1
    - Dst: parse_one_feature
      Src: /src/git/builtin/fast-import.c:3898,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3901,1
    - Dst: option_cat_blob_fd
      Src: /src/git/builtin/fast-import.c:3902,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3906,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3906,1
    - Dst: usage
      Src: /src/git/builtin/fast-import.c:3909,1
    - Dst: read_marks
      Src: /src/git/builtin/fast-import.c:3913,1
    - Dst: build_mark_map
      Src: /src/git/builtin/fast-import.c:3914,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3882
    functionDepth: 11
    functionLinenumber: 3882
    functionLinenumberEnd: 3915
    functionName: parse_argv
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 1
    functionsReached:
    - parse_one_option
    - die
    - parse_one_feature
    - usage
    - option_cat_blob_fd
    - strcmp
    - _
    - skip_prefix
    - read_marks
    - build_mark_map
    linkageType: ''
    returnType: void
    signature: void parse_argv(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/fast-import.c:3924,1
    - Dst: reset_pack_idx_option
      Src: /src/git/builtin/fast-import.c:3926,1
    - Dst: git_pack_config
      Src: /src/git/builtin/fast-import.c:3927,1
    - Dst: alloc_objects
      Src: /src/git/builtin/fast-import.c:3929,1
    - Dst: strbuf_init
      Src: /src/git/builtin/fast-import.c:3930,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/fast-import.c:3931,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/fast-import.c:3932,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/fast-import.c:3933,1
    - Dst: mem_pool_calloc
      Src: /src/git/builtin/fast-import.c:3934,1
    - Dst: hashmap_init
      Src: /src/git/builtin/fast-import.c:3936,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3946,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3948,1
    - Dst: mem_pool_alloc
      Src: /src/git/builtin/fast-import.c:3956,1
    - Dst: start_packfile
      Src: /src/git/builtin/fast-import.c:3961,1
    - Dst: set_die_routine
      Src: /src/git/builtin/fast-import.c:3962,1
    - Dst: set_checkpoint_signal
      Src: /src/git/builtin/fast-import.c:3963,1
    - Dst: read_next_command
      Src: /src/git/builtin/fast-import.c:3964,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3966,1
    - Dst: parse_new_blob
      Src: /src/git/builtin/fast-import.c:3967,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3968,1
    - Dst: parse_new_commit
      Src: /src/git/builtin/fast-import.c:3969,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3970,1
    - Dst: parse_new_tag
      Src: /src/git/builtin/fast-import.c:3971,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3972,1
    - Dst: parse_reset_branch
      Src: /src/git/builtin/fast-import.c:3973,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3974,1
    - Dst: parse_ls
      Src: /src/git/builtin/fast-import.c:3975,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3976,1
    - Dst: parse_cat_blob
      Src: /src/git/builtin/fast-import.c:3977,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3978,1
    - Dst: parse_get_mark
      Src: /src/git/builtin/fast-import.c:3979,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3980,1
    - Dst: parse_checkpoint
      Src: /src/git/builtin/fast-import.c:3981,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3982,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-import.c:3984,1
    - Dst: parse_alias
      Src: /src/git/builtin/fast-import.c:3985,1
    - Dst: starts_with
      Src: /src/git/builtin/fast-import.c:3986,1
    - Dst: parse_progress
      Src: /src/git/builtin/fast-import.c:3987,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3988,1
    - Dst: parse_feature
      Src: /src/git/builtin/fast-import.c:3989,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-import.c:3990,1
    - Dst: parse_option
      Src: /src/git/builtin/fast-import.c:3991,1
    - Dst: starts_with
      Src: /src/git/builtin/fast-import.c:3992,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:3995,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:3995,1
    - Dst: checkpoint
      Src: /src/git/builtin/fast-import.c:3998,1
    - Dst: parse_argv
      Src: /src/git/builtin/fast-import.c:4003,1
    - Dst: feof
      Src: /src/git/builtin/fast-import.c:4005,1
    - Dst: die
      Src: /src/git/builtin/fast-import.c:4006,1
    - Dst: _
      Src: /src/git/builtin/fast-import.c:4006,1
    - Dst: end_packfile
      Src: /src/git/builtin/fast-import.c:4008,1
    - Dst: dump_branches
      Src: /src/git/builtin/fast-import.c:4010,1
    - Dst: dump_tags
      Src: /src/git/builtin/fast-import.c:4011,1
    - Dst: unkeep_all_packs
      Src: /src/git/builtin/fast-import.c:4012,1
    - Dst: dump_marks
      Src: /src/git/builtin/fast-import.c:4013,1
    - Dst: fclose
      Src: /src/git/builtin/fast-import.c:4016,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/fast-import.c:4020,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/fast-import.c:4022,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4025,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4026,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4027,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4028,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4029,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4030,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4031,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4032,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4033,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4034,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4035,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4036,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4037,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4038,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4039,1
    - Dst: pack_report
      Src: /src/git/builtin/fast-import.c:4040,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4041,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-import.c:4042,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 96
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4046
      start: 3917
    functionDepth: 31
    functionLinenumber: 3917
    functionLinenumberEnd: 4046
    functionName: cmd_fast_import
    functionSourceFile: /src/git/builtin/fast-import.c
    functionUses: 0
    functionsReached:
    - parse_cat_blob
    - fclose
    - pack_report
    - reset_pack_idx_option
    - feof
    - git_pack_config
    - hashmap_init
    - dump_branches
    - mem_pool_alloc
    - parse_new_blob
    - strcmp
    - CALLOC_ARRAY
    - end_packfile
    - mem_pool_calloc
    - parse_alias
    - die
    - parse_get_mark
    - unkeep_all_packs
    - parse_new_commit
    - parse_new_tag
    - parse_reset_branch
    - dump_marks
    - start_packfile
    - strbuf_init
    - set_checkpoint_signal
    - parse_feature
    - ARRAY_SIZE
    - parse_checkpoint
    - alloc_objects
    - _
    - dump_tags
    - parse_argv
    - skip_prefix
    - checkpoint
    - set_die_routine
    - parse_ls
    - show_usage_if_asked
    - parse_progress
    - starts_with
    - read_next_command
    - parse_option
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int cmd_fast_import(int argc,\n\t\t    const char **argv,\n\t\t    const
      char *prefix,\n\t\t    struct repository *repo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/replay.c:23,1
    - Dst: strcmp
      Src: /src/git/builtin/replay.c:25,1
    - Dst: die
      Src: /src/git/builtin/replay.c:27,1
    - Dst: _
      Src: /src/git/builtin/replay.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ref_action
    - source
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: parse_ref_action_mode
    functionSourceFile: /src/git/builtin/replay.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: enum ref_action_mode
    signature: enum ref_action_mode parse_ref_action_mode(const char *ref_action,
      const char *source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_ref_action_mode
      Src: /src/git/builtin/replay.c:36,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/replay.c:39,1
    - Dst: parse_ref_action_mode
      Src: /src/git/builtin/replay.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - repo
    - ref_action
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 19
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: get_ref_action_mode
    functionSourceFile: /src/git/builtin/replay.c
    functionUses: 0
    functionsReached:
    - repo_config_get_string_tmp
    - parse_ref_action_mode
    linkageType: ''
    returnType: enum ref_action_mode
    signature: enum ref_action_mode get_ref_action_mode(struct repository *repo, const
      char *ref_action)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/replay.c:56,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replay.c:58,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replay.c:59,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/replay.c:62,1
    - Dst: BUG
      Src: /src/git/builtin/replay.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 7
    argNames:
    - mode
    - transaction
    - refname
    - new_oid
    - old_oid
    - reflog_msg
    - err
    argTypes:
    - enum ref_action_mode
    - struct ref_transaction*
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 6
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: handle_ref_update
    functionSourceFile: /src/git/builtin/replay.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - BUG
    - printf
    - ref_transaction_update
    linkageType: ''
    returnType: int
    signature: "int handle_ref_update(enum ref_action_mode mode,\n\t\t\t     struct
      ref_transaction *transaction,\n\t\t\t     const char *refname,\n\t\t\t     const
      struct object_id *new_oid,\n\t\t\t     const struct object_id *old_oid,\n\t\t\t
      \    const char *reflog_msg,\n\t\t\t     struct strbuf *err)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/replay.c:86,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/replay.c:92,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:93,1
    - Dst: OPT_STRING_F
      Src: /src/git/builtin/replay.c:94,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:95,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:96,1
    - Dst: OPT_STRING_F
      Src: /src/git/builtin/replay.c:98,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:99,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:100,1
    - Dst: OPT_STRING_F
      Src: /src/git/builtin/replay.c:102,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:103,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:104,1
    - Dst: OPT_STRING_F
      Src: /src/git/builtin/replay.c:106,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:107,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:108,1
    - Dst: OPT_STRING_F
      Src: /src/git/builtin/replay.c:110,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:111,1
    - Dst: N_
      Src: /src/git/builtin/replay.c:112,1
    - Dst: OPT_END
      Src: /src/git/builtin/replay.c:114,1
    - Dst: parse_options
      Src: /src/git/builtin/replay.c:117,1
    - Dst: error
      Src: /src/git/builtin/replay.c:122,1
    - Dst: _
      Src: /src/git/builtin/replay.c:122,1
    - Dst: usage_with_options
      Src: /src/git/builtin/replay.c:123,1
    - Dst: die_for_incompatible_opt3
      Src: /src/git/builtin/replay.c:126,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/replay.c:129,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/replay.c:131,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/replay.c:133,1
    - Dst: get_ref_action_mode
      Src: /src/git/builtin/replay.c:137,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/replay.c:147,1
    - Dst: setup_revisions
      Src: /src/git/builtin/replay.c:163,1
    - Dst: error
      Src: /src/git/builtin/replay.c:165,1
    - Dst: _
      Src: /src/git/builtin/replay.c:165,1
    - Dst: warning
      Src: /src/git/builtin/replay.c:174,1
    - Dst: _
      Src: /src/git/builtin/replay.c:174,1
    - Dst: warning
      Src: /src/git/builtin/replay.c:180,1
    - Dst: _
      Src: /src/git/builtin/replay.c:180,1
    - Dst: warning
      Src: /src/git/builtin/replay.c:186,1
    - Dst: _
      Src: /src/git/builtin/replay.c:186,1
    - Dst: warning
      Src: /src/git/builtin/replay.c:192,1
    - Dst: _
      Src: /src/git/builtin/replay.c:192,1
    - Dst: replay_revisions
      Src: /src/git/builtin/replay.c:198,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/replay.c:204,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/replay.c:206,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/replay.c:209,1
    - Dst: BUG
      Src: /src/git/builtin/replay.c:210,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/replay.c:211,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replay.c:211,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/replay.c:216,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/replay.c:216,1
    - Dst: error
      Src: /src/git/builtin/replay.c:219,1
    - Dst: _
      Src: /src/git/builtin/replay.c:219,1
    - Dst: handle_ref_update
      Src: /src/git/builtin/replay.c:226,1
    - Dst: error
      Src: /src/git/builtin/replay.c:230,1
    - Dst: _
      Src: /src/git/builtin/replay.c:230,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/replay.c:238,1
    - Dst: error
      Src: /src/git/builtin/replay.c:239,1
    - Dst: _
      Src: /src/git/builtin/replay.c:239,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/replay.c:249,1
    - Dst: replay_result_release
      Src: /src/git/builtin/replay.c:250,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replay.c:251,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replay.c:252,1
    - Dst: release_revisions
      Src: /src/git/builtin/replay.c:253,1
    - Dst: exit
      Src: /src/git/builtin/replay.c:257,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 88
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 69
    functionDepth: 20
    functionLinenumber: 69
    functionLinenumberEnd: 259
    functionName: cmd_replay
    functionSourceFile: /src/git/builtin/replay.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - parse_options
    - OPT_BOOL
    - repo_init_revisions
    - strbuf_addf
    - replay_revisions
    - OPT_STRING_F
    - ref_store_transaction_begin
    - handle_ref_update
    - usage_with_options
    - error
    - get_main_ref_store
    - strbuf_release
    - OPT_END
    - release_revisions
    - die_for_incompatible_opt2
    - ref_transaction_free
    - oid_to_hex
    - get_ref_action_mode
    - _
    - N_
    - setup_revisions
    - warning
    - replay_result_release
    - exit
    - die_for_incompatible_opt3
    - repo_get_oid_committish
    - BUG
    linkageType: ''
    returnType: int
    signature: "int cmd_replay(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING_F
      Src: /src/git/builtin/refs.c:36,1
    - Dst: N_
      Src: /src/git/builtin/refs.c:36,1
    - Dst: N_
      Src: /src/git/builtin/refs.c:37,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/refs.c:39,1
    - Dst: N_
      Src: /src/git/builtin/refs.c:40,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/refs.c:42,1
    - Dst: N_
      Src: /src/git/builtin/refs.c:43,1
    - Dst: OPT_END
      Src: /src/git/builtin/refs.c:45,1
    - Dst: parse_options
      Src: /src/git/builtin/refs.c:50,1
    - Dst: usage
      Src: /src/git/builtin/refs.c:52,1
    - Dst: _
      Src: /src/git/builtin/refs.c:52,1
    - Dst: usage
      Src: /src/git/builtin/refs.c:54,1
    - Dst: _
      Src: /src/git/builtin/refs.c:54,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/builtin/refs.c:56,1
    - Dst: error
      Src: /src/git/builtin/refs.c:58,1
    - Dst: _
      Src: /src/git/builtin/refs.c:58,1
    - Dst: error
      Src: /src/git/builtin/refs.c:63,1
    - Dst: _
      Src: /src/git/builtin/refs.c:63,1
    - Dst: ref_storage_format_to_name
      Src: /src/git/builtin/refs.c:64,1
    - Dst: repo_migrate_ref_storage_format
      Src: /src/git/builtin/refs.c:68,1
    - Dst: error
      Src: /src/git/builtin/refs.c:69,1
    - Dst: strbuf_release
      Src: /src/git/builtin/refs.c:76,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 25
    functionDepth: 13
    functionLinenumber: 25
    functionLinenumberEnd: 78
    functionName: cmd_refs_migrate
    functionSourceFile: /src/git/builtin/refs.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - strbuf_release
    - repo_migrate_ref_storage_format
    - usage
    - ref_storage_format_to_name
    - OPT_BIT
    - ref_storage_format_by_name
    - _
    - N_
    - OPT_STRING_F
    linkageType: ''
    returnType: int
    signature: "int cmd_refs_migrate(int argc, const char **argv, const char *prefix,\n\t\t\t
      \   struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/refs.c:90,1
    - Dst: N_
      Src: /src/git/builtin/refs.c:90,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/refs.c:91,1
    - Dst: N_
      Src: /src/git/builtin/refs.c:91,1
    - Dst: OPT_END
      Src: /src/git/builtin/refs.c:92,1
    - Dst: fsck_options_init
      Src: /src/git/builtin/refs.c:96,1
    - Dst: parse_options
      Src: /src/git/builtin/refs.c:98,1
    - Dst: usage
      Src: /src/git/builtin/refs.c:100,1
    - Dst: _
      Src: /src/git/builtin/refs.c:100,1
    - Dst: repo_config
      Src: /src/git/builtin/refs.c:102,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/refs.c:103,1
    - Dst: get_worktrees_without_reading_head
      Src: /src/git/builtin/refs.c:105,1
    - Dst: refs_fsck
      Src: /src/git/builtin/refs.c:107,1
    - Dst: get_worktree_ref_store
      Src: /src/git/builtin/refs.c:107,1
    - Dst: fsck_options_clear
      Src: /src/git/builtin/refs.c:110,1
    - Dst: free_worktrees
      Src: /src/git/builtin/refs.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 80
    functionDepth: 21
    functionLinenumber: 80
    functionLinenumberEnd: 113
    functionName: cmd_refs_verify
    functionSourceFile: /src/git/builtin/refs.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - get_worktree_ref_store
    - free_worktrees
    - OPT_BOOL
    - usage
    - prepare_repo_settings
    - refs_fsck
    - _
    - N_
    - fsck_options_init
    - repo_config
    - fsck_options_clear
    - get_worktrees_without_reading_head
    linkageType: ''
    returnType: int
    signature: "int cmd_refs_verify(int argc, const char **argv, const char *prefix,\n\t\t\t
      \  struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/refs.c:119,1
    - Dst: for_each_ref_core
      Src: /src/git/builtin/refs.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: cmd_refs_list
    functionSourceFile: /src/git/builtin/refs.c
    functionUses: 0
    functionsReached:
    - N_
    - for_each_ref_core
    linkageType: ''
    returnType: int
    signature: "int cmd_refs_list(int argc, const char **argv, const char *prefix,\n\t\t\t
      \  struct repository *repo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/refs.c:140,1
    - Dst: parse_options
      Src: /src/git/builtin/refs.c:143,1
    - Dst: die
      Src: /src/git/builtin/refs.c:145,1
    - Dst: _
      Src: /src/git/builtin/refs.c:145,1
    - Dst: refs_read_raw_ref
      Src: /src/git/builtin/refs.c:148,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/refs.c:148,1
    - Dst: error
      Src: /src/git/builtin/refs.c:152,1
    - Dst: _
      Src: /src/git/builtin/refs.c:152,1
    - Dst: error_errno
      Src: /src/git/builtin/refs.c:156,1
    - Dst: _
      Src: /src/git/builtin/refs.c:156,1
    - Dst: strbuf_release
      Src: /src/git/builtin/refs.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 126
    functionDepth: 13
    functionLinenumber: 126
    functionLinenumberEnd: 166
    functionName: cmd_refs_exists
    functionSourceFile: /src/git/builtin/refs.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - parse_options
    - refs_read_raw_ref
    - OPT_END
    - die
    - strbuf_release
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int cmd_refs_exists(int argc, const char **argv, const char *prefix,\n\t\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_refs_core
      Src: /src/git/builtin/refs.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: cmd_refs_optimize
    functionSourceFile: /src/git/builtin/refs.c
    functionUses: 0
    functionsReached:
    - pack_refs_core
    linkageType: ''
    returnType: int
    signature: "int cmd_refs_optimize(int argc, const char **argv, const char *prefix,\n\t\t\t
      \    struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/refs.c:194,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/refs.c:195,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/refs.c:196,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/refs.c:197,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/refs.c:198,1
    - Dst: OPT_END
      Src: /src/git/builtin/refs.c:199,1
    - Dst: parse_options
      Src: /src/git/builtin/refs.c:202,1
    - Dst: fn
      Src: /src/git/builtin/refs.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 13
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: cmd_refs
    functionSourceFile: /src/git/builtin/refs.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - parse_options
    - OPT_SUBCOMMAND
    - fn
    linkageType: ''
    returnType: int
    signature: "int cmd_refs(int argc,\n\t     const char **argv,\n\t     const char
      *prefix,\n\t     struct repository *repo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ATTR_TRUE
      Src: /src/git/builtin/check-attr.c:43,1
    - Dst: ATTR_FALSE
      Src: /src/git/builtin/check-attr.c:45,1
    - Dst: ATTR_UNSET
      Src: /src/git/builtin/check-attr.c:47,1
    - Dst: printf
      Src: /src/git/builtin/check-attr.c:51,1
    - Dst: git_attr_name
      Src: /src/git/builtin/check-attr.c:55,1
    - Dst: quote_c_style
      Src: /src/git/builtin/check-attr.c:57,1
    - Dst: printf
      Src: /src/git/builtin/check-attr.c:58,1
    - Dst: git_attr_name
      Src: /src/git/builtin/check-attr.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - check
    - file
    argTypes:
    - struct attr_check*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: output_attr
    functionSourceFile: /src/git/builtin/check-attr.c
    functionUses: 0
    functionsReached:
    - ATTR_FALSE
    - git_attr_name
    - ATTR_UNSET
    - quote_c_style
    - printf
    - ATTR_TRUE
    linkageType: ''
    returnType: void
    signature: void output_attr(struct attr_check *check, const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prefix_path
      Src: /src/git/builtin/check-attr.c:70,1
    - Dst: strlen
      Src: /src/git/builtin/check-attr.c:70,1
    - Dst: git_all_attrs
      Src: /src/git/builtin/check-attr.c:73,1
    - Dst: git_check_attr
      Src: /src/git/builtin/check-attr.c:75,1
    - Dst: output_attr
      Src: /src/git/builtin/check-attr.c:77,1
    - Dst: free
      Src: /src/git/builtin/check-attr.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - prefix
    - check
    - collect_all
    - file
    argTypes:
    - char*
    - struct attr_check*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 19
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: check_attr
    functionSourceFile: /src/git/builtin/check-attr.c
    functionUses: 8
    functionsReached:
    - output_attr
    - git_all_attrs
    - strlen
    - free
    - prefix_path
    - git_check_attr
    linkageType: ''
    returnType: void
    signature: "void check_attr(const char *prefix, struct attr_check *check,\n\t\t
      \      int collect_all,\n\t\t       const char *file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getline_fn
      Src: /src/git/builtin/check-attr.c:90,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/check-attr.c:92,1
    - Dst: unquote_c_style
      Src: /src/git/builtin/check-attr.c:93,1
    - Dst: die
      Src: /src/git/builtin/check-attr.c:94,1
    - Dst: strbuf_swap
      Src: /src/git/builtin/check-attr.c:95,1
    - Dst: check_attr
      Src: /src/git/builtin/check-attr.c:97,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/check-attr.c:98,1
    - Dst: strbuf_release
      Src: /src/git/builtin/check-attr.c:100,1
    - Dst: strbuf_release
      Src: /src/git/builtin/check-attr.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - prefix
    - check
    - collect_all
    argTypes:
    - char*
    - struct attr_check*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 20
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: check_attr_stdin_paths
    functionSourceFile: /src/git/builtin/check-attr.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - check_attr
    - die
    - strbuf_reset
    - getline_fn
    - unquote_c_style
    - maybe_flush_or_die
    - strbuf_swap
    linkageType: ''
    returnType: void
    signature: "void check_attr_stdin_paths(const char *prefix, struct attr_check
      *check,\n\t\t\t\t   int collect_all)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/check-attr.c:106,1
    - Dst: usage_with_options
      Src: /src/git/builtin/check-attr.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 9
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: error_with_usage
    functionSourceFile: /src/git/builtin/check-attr.c
    functionUses: 0
    functionsReached:
    - error
    - usage_with_options
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN error_with_usage(const char *msg)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: is_bare_repository
      Src: /src/git/builtin/check-attr.c:119,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/check-attr.c:120,1
    - Dst: repo_config
      Src: /src/git/builtin/check-attr.c:122,1
    - Dst: parse_options
      Src: /src/git/builtin/check-attr.c:124,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/check-attr.c:127,1
    - Dst: repo_read_index
      Src: /src/git/builtin/check-attr.c:130,1
    - Dst: die
      Src: /src/git/builtin/check-attr.c:131,1
    - Dst: git_attr_set_direction
      Src: /src/git/builtin/check-attr.c:135,1
    - Dst: strcmp
      Src: /src/git/builtin/check-attr.c:139,1
    - Dst: error_with_usage
      Src: /src/git/builtin/check-attr.c:146,1
    - Dst: error_with_usage
      Src: /src/git/builtin/check-attr.c:151,1
    - Dst: error_with_usage
      Src: /src/git/builtin/check-attr.c:154,1
    - Dst: error_with_usage
      Src: /src/git/builtin/check-attr.c:173,1
    - Dst: error_with_usage
      Src: /src/git/builtin/check-attr.c:176,1
    - Dst: attr_check_alloc
      Src: /src/git/builtin/check-attr.c:179,1
    - Dst: git_attr
      Src: /src/git/builtin/check-attr.c:182,1
    - Dst: error
      Src: /src/git/builtin/check-attr.c:185,1
    - Dst: attr_check_append
      Src: /src/git/builtin/check-attr.c:187,1
    - Dst: repo_get_oid_tree
      Src: /src/git/builtin/check-attr.c:192,1
    - Dst: die
      Src: /src/git/builtin/check-attr.c:193,1
    - Dst: set_git_attr_source
      Src: /src/git/builtin/check-attr.c:194,1
    - Dst: check_attr_stdin_paths
      Src: /src/git/builtin/check-attr.c:198,1
    - Dst: check_attr
      Src: /src/git/builtin/check-attr.c:201,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/check-attr.c:202,1
    - Dst: attr_check_free
      Src: /src/git/builtin/check-attr.c:205,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 110
    functionDepth: 21
    functionLinenumber: 110
    functionLinenumberEnd: 207
    functionName: cmd_check_attr
    functionSourceFile: /src/git/builtin/check-attr.c
    functionUses: 0
    functionsReached:
    - parse_options
    - check_attr
    - strcmp
    - repo_config
    - error
    - git_attr
    - die
    - repo_read_index
    - attr_check_alloc
    - repo_get_oid_tree
    - git_attr_set_direction
    - attr_check_append
    - maybe_flush_or_die
    - setup_work_tree
    - set_git_attr_source
    - attr_check_free
    - is_bare_repository
    - prepare_repo_settings
    - check_attr_stdin_paths
    - error_with_usage
    linkageType: ''
    returnType: int
    signature: "int cmd_check_attr(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_merge_bases_many_dirty
      Src: /src/git/builtin/merge-base.c:17,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge-base.c:20,1
    - Dst: printf
      Src: /src/git/builtin/merge-base.c:28,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-base.c:28,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge-base.c:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - rev
    - rev_nr
    - show_all
    argTypes:
    - struct commit**
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 12
    functionDepth: 25
    functionLinenumber: 12
    functionLinenumberEnd: 35
    functionName: show_merge_base
    functionSourceFile: /src/git/builtin/merge-base.c
    functionUses: 0
    functionsReached:
    - commit_list_free
    - oid_to_hex
    - repo_get_merge_bases_many_dirty
    - printf
    linkageType: ''
    returnType: int
    signature: int show_merge_base(struct commit **rev, size_t rev_nr, int show_all)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/merge-base.c:51,1
    - Dst: die
      Src: /src/git/builtin/merge-base.c:52,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/merge-base.c:53,1
    - Dst: die
      Src: /src/git/builtin/merge-base.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 7
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: get_commit_reference
    functionSourceFile: /src/git/builtin/merge-base.c
    functionUses: 1
    functionsReached:
    - lookup_commit_reference
    - repo_get_oid
    - die
    linkageType: ''
    returnType: struct commit
    signature: struct commit *get_commit_reference(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/builtin/merge-base.c:66,1
    - Dst: get_commit_reference
      Src: /src/git/builtin/merge-base.c:66,1
    - Dst: reduce_heads_replace
      Src: /src/git/builtin/merge-base.c:68,1
    - Dst: printf
      Src: /src/git/builtin/merge-base.c:74,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-base.c:74,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge-base.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - count
    - args
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 25
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: handle_independent
    functionSourceFile: /src/git/builtin/merge-base.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - reduce_heads_replace
    - get_commit_reference
    - commit_list_free
    - commit_list_insert
    - printf
    linkageType: ''
    returnType: int
    signature: int handle_independent(int count, const char **args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/builtin/merge-base.c:87,1
    - Dst: get_commit_reference
      Src: /src/git/builtin/merge-base.c:87,1
    - Dst: get_octopus_merge_bases
      Src: /src/git/builtin/merge-base.c:89,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge-base.c:90,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge-base.c:91,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge-base.c:94,1
    - Dst: reduce_heads_replace
      Src: /src/git/builtin/merge-base.c:95,1
    - Dst: printf
      Src: /src/git/builtin/merge-base.c:101,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-base.c:101,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge-base.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - count
    - args
    - show_all
    argTypes:
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 80
    functionDepth: 25
    functionLinenumber: 80
    functionLinenumberEnd: 108
    functionName: handle_octopus
    functionSourceFile: /src/git/builtin/merge-base.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - reduce_heads_replace
    - get_commit_reference
    - get_octopus_merge_bases
    - commit_list_free
    - commit_list_insert
    - printf
    linkageType: ''
    returnType: int
    signature: int handle_octopus(int count, const char **args, int show_all)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/merge-base.c:116,1
    - Dst: get_commit_reference
      Src: /src/git/builtin/merge-base.c:117,1
    - Dst: get_commit_reference
      Src: /src/git/builtin/merge-base.c:118,1
    - Dst: repo_in_merge_bases
      Src: /src/git/builtin/merge-base.c:119,1
    - Dst: exit
      Src: /src/git/builtin/merge-base.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 17
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: handle_is_ancestor
    functionSourceFile: /src/git/builtin/merge-base.c
    functionUses: 0
    functionsReached:
    - exit
    - get_commit_reference
    - die
    - repo_in_merge_bases
    linkageType: ''
    returnType: int
    signature: int handle_is_ancestor(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/merge-base.c:135,1
    - Dst: die
      Src: /src/git/builtin/merge-base.c:136,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/merge-base.c:138,1
    - Dst: get_fork_point
      Src: /src/git/builtin/merge-base.c:140,1
    - Dst: printf
      Src: /src/git/builtin/merge-base.c:145,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-base.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 7
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: handle_fork_point
    functionSourceFile: /src/git/builtin/merge-base.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - lookup_commit_reference
    - repo_get_oid
    - get_fork_point
    - printf
    linkageType: ''
    returnType: int
    signature: int handle_fork_point(int argc, const char **argv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/merge-base.c:161,1
    - Dst: N_
      Src: /src/git/builtin/merge-base.c:161,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/merge-base.c:162,1
    - Dst: N_
      Src: /src/git/builtin/merge-base.c:163,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/merge-base.c:164,1
    - Dst: N_
      Src: /src/git/builtin/merge-base.c:165,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/merge-base.c:166,1
    - Dst: N_
      Src: /src/git/builtin/merge-base.c:167,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/merge-base.c:168,1
    - Dst: N_
      Src: /src/git/builtin/merge-base.c:169,1
    - Dst: OPT_END
      Src: /src/git/builtin/merge-base.c:170,1
    - Dst: repo_config
      Src: /src/git/builtin/merge-base.c:173,1
    - Dst: parse_options
      Src: /src/git/builtin/merge-base.c:174,1
    - Dst: usage_with_options
      Src: /src/git/builtin/merge-base.c:178,1
    - Dst: die
      Src: /src/git/builtin/merge-base.c:180,1
    - Dst: _
      Src: /src/git/builtin/merge-base.c:180,1
    - Dst: handle_is_ancestor
      Src: /src/git/builtin/merge-base.c:182,1
    - Dst: die
      Src: /src/git/builtin/merge-base.c:186,1
    - Dst: _
      Src: /src/git/builtin/merge-base.c:186,1
    - Dst: handle_octopus
      Src: /src/git/builtin/merge-base.c:190,1
    - Dst: handle_independent
      Src: /src/git/builtin/merge-base.c:193,1
    - Dst: usage_with_options
      Src: /src/git/builtin/merge-base.c:197,1
    - Dst: handle_fork_point
      Src: /src/git/builtin/merge-base.c:198,1
    - Dst: usage_with_options
      Src: /src/git/builtin/merge-base.c:202,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/merge-base.c:204,1
    - Dst: get_commit_reference
      Src: /src/git/builtin/merge-base.c:206,1
    - Dst: show_merge_base
      Src: /src/git/builtin/merge-base.c:207,1
    - Dst: free
      Src: /src/git/builtin/merge-base.c:208,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 149
    functionDepth: 26
    functionLinenumber: 149
    functionLinenumberEnd: 210
    functionName: cmd_merge_base
    functionSourceFile: /src/git/builtin/merge-base.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - ALLOC_ARRAY
    - OPT_BOOL
    - get_commit_reference
    - free
    - handle_independent
    - OPT_CMDMODE
    - show_merge_base
    - _
    - N_
    - handle_fork_point
    - handle_octopus
    - repo_config
    - handle_is_ancestor
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_merge_base(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/commit-tree.c:33,1
    - Dst: _
      Src: /src/git/builtin/commit-tree.c:33,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/commit-tree.c:33,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/commit-tree.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - parent
    - parents_p
    argTypes:
    - struct commit*
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: new_parent
    functionSourceFile: /src/git/builtin/commit-tree.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - commit_list_insert
    - _
    linkageType: ''
    returnType: void
    signature: void new_parent(struct commit *parent, struct commit_list **parents_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG_NOARG
      Src: /src/git/builtin/commit-tree.c:47,1
    - Dst: repo_get_oid_commit
      Src: /src/git/builtin/commit-tree.c:49,1
    - Dst: die
      Src: /src/git/builtin/commit-tree.c:50,1
    - Dst: _
      Src: /src/git/builtin/commit-tree.c:50,1
    - Dst: odb_assert_oid_type
      Src: /src/git/builtin/commit-tree.c:52,1
    - Dst: new_parent
      Src: /src/git/builtin/commit-tree.c:53,1
    - Dst: lookup_commit
      Src: /src/git/builtin/commit-tree.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 13
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: parse_parent_arg_callback
    functionSourceFile: /src/git/builtin/commit-tree.c
    functionUses: 0
    functionsReached:
    - repo_get_oid_commit
    - die
    - new_parent
    - BUG_ON_OPT_NEG_NOARG
    - odb_assert_oid_type
    - lookup_commit
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_parent_arg_callback(const struct option *opt,\n\t\tconst
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG_NOARG
      Src: /src/git/builtin/commit-tree.c:62,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/commit-tree.c:65,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/commit-tree.c:66,1
    - Dst: strbuf_complete_line
      Src: /src/git/builtin/commit-tree.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: parse_message_arg_callback
    functionSourceFile: /src/git/builtin/commit-tree.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    - strbuf_complete_line
    - strbuf_addstr
    - BUG_ON_OPT_NEG_NOARG
    linkageType: ''
    returnType: int
    signature: "int parse_message_arg_callback(const struct option *opt,\n\t\tconst
      char *arg, int unset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG_NOARG
      Src: /src/git/builtin/commit-tree.c:78,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/commit-tree.c:81,1
    - Dst: strcmp
      Src: /src/git/builtin/commit-tree.c:82,1
    - Dst: xopen
      Src: /src/git/builtin/commit-tree.c:85,1
    - Dst: strbuf_read
      Src: /src/git/builtin/commit-tree.c:87,1
    - Dst: die_errno
      Src: /src/git/builtin/commit-tree.c:88,1
    - Dst: _
      Src: /src/git/builtin/commit-tree.c:88,1
    - Dst: close
      Src: /src/git/builtin/commit-tree.c:89,1
    - Dst: die_errno
      Src: /src/git/builtin/commit-tree.c:90,1
    - Dst: _
      Src: /src/git/builtin/commit-tree.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 93
    functionName: parse_file_arg_callback
    functionSourceFile: /src/git/builtin/commit-tree.c
    functionUses: 0
    functionsReached:
    - xopen
    - strbuf_read
    - die_errno
    - strbuf_addch
    - BUG_ON_OPT_NEG_NOARG
    - strcmp
    - close
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_file_arg_callback(const struct option *opt,\n\t\tconst char
      *arg, int unset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/commit-tree.c:106,1
    - Dst: N_
      Src: /src/git/builtin/commit-tree.c:106,1
    - Dst: N_
      Src: /src/git/builtin/commit-tree.c:107,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/commit-tree.c:109,1
    - Dst: N_
      Src: /src/git/builtin/commit-tree.c:109,1
    - Dst: N_
      Src: /src/git/builtin/commit-tree.c:110,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/commit-tree.c:112,1
    - Dst: N_
      Src: /src/git/builtin/commit-tree.c:112,1
    - Dst: N_
      Src: /src/git/builtin/commit-tree.c:113,1
    - Dst: N_
      Src: /src/git/builtin/commit-tree.c:120,1
    - Dst: N_
      Src: /src/git/builtin/commit-tree.c:121,1
    - Dst: OPT_END
      Src: /src/git/builtin/commit-tree.c:125,1
    - Dst: repo_config
      Src: /src/git/builtin/commit-tree.c:129,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/commit-tree.c:131,1
    - Dst: parse_options
      Src: /src/git/builtin/commit-tree.c:134,1
    - Dst: die
      Src: /src/git/builtin/commit-tree.c:137,1
    - Dst: _
      Src: /src/git/builtin/commit-tree.c:137,1
    - Dst: repo_get_oid_tree
      Src: /src/git/builtin/commit-tree.c:139,1
    - Dst: die
      Src: /src/git/builtin/commit-tree.c:140,1
    - Dst: _
      Src: /src/git/builtin/commit-tree.c:140,1
    - Dst: strbuf_read
      Src: /src/git/builtin/commit-tree.c:143,1
    - Dst: die_errno
      Src: /src/git/builtin/commit-tree.c:144,1
    - Dst: _
      Src: /src/git/builtin/commit-tree.c:144,1
    - Dst: commit_tree
      Src: /src/git/builtin/commit-tree.c:147,1
    - Dst: printf
      Src: /src/git/builtin/commit-tree.c:153,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/commit-tree.c:153,1
    - Dst: commit_list_free
      Src: /src/git/builtin/commit-tree.c:157,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit-tree.c:158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 95
    functionDepth: 19
    functionLinenumber: 95
    functionLinenumberEnd: 160
    functionName: cmd_commit_tree
    functionSourceFile: /src/git/builtin/commit-tree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - strbuf_read
    - oid_to_hex
    - strbuf_release
    - commit_tree
    - OPT_CALLBACK_F
    - repo_get_oid_tree
    - die_errno
    - commit_list_free
    - _
    - N_
    - repo_config
    - printf
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: "int cmd_commit_tree(int argc,\n\t\t    const char **argv,\n\t\t    const
      char *prefix,\n\t\t    struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/builtin/unpack-file.c:18,1
    - Dst: die
      Src: /src/git/builtin/unpack-file.c:20,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/unpack-file.c:20,1
    - Dst: xsnprintf
      Src: /src/git/builtin/unpack-file.c:22,1
    - Dst: xmkstemp
      Src: /src/git/builtin/unpack-file.c:23,1
    - Dst: write_in_full
      Src: /src/git/builtin/unpack-file.c:24,1
    - Dst: die_errno
      Src: /src/git/builtin/unpack-file.c:25,1
    - Dst: close
      Src: /src/git/builtin/unpack-file.c:26,1
    - Dst: free
      Src: /src/git/builtin/unpack-file.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 10
    functionDepth: 12
    functionLinenumber: 10
    functionLinenumberEnd: 29
    functionName: create_temp_file
    functionSourceFile: /src/git/builtin/unpack-file.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - die_errno
    - close
    - xsnprintf
    - free
    - write_in_full
    - odb_read_object
    - xmkstemp
    linkageType: ''
    returnType: char
    signature: char *create_temp_file(struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/unpack-file.c:41,1
    - Dst: usage
      Src: /src/git/builtin/unpack-file.c:43,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/unpack-file.c:44,1
    - Dst: die
      Src: /src/git/builtin/unpack-file.c:45,1
    - Dst: repo_config
      Src: /src/git/builtin/unpack-file.c:47,1
    - Dst: puts
      Src: /src/git/builtin/unpack-file.c:49,1
    - Dst: create_temp_file
      Src: /src/git/builtin/unpack-file.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 34
    functionDepth: 19
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: cmd_unpack_file
    functionSourceFile: /src/git/builtin/unpack-file.c
    functionUses: 0
    functionsReached:
    - die
    - puts
    - show_usage_if_asked
    - repo_get_oid
    - usage
    - create_temp_file
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_unpack_file(int argc,\n\t\t    const char **argv,\n\t\t    const
      char *prefix UNUSED,\n\t\t    struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/init-db.c:27,1
    - Dst: xgetcwd
      Src: /src/git/builtin/init-db.c:29,1
    - Dst: strcmp
      Src: /src/git/builtin/init-db.c:30,1
    - Dst: free
      Src: /src/git/builtin/init-db.c:31,1
    - Dst: strcmp
      Src: /src/git/builtin/init-db.c:37,1
    - Dst: strrchr
      Src: /src/git/builtin/init-db.c:39,1
    - Dst: strcmp
      Src: /src/git/builtin/init-db.c:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - git_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 17
    functionDepth: 5
    functionLinenumber: 17
    functionLinenumberEnd: 48
    functionName: guess_repository_type
    functionSourceFile: /src/git/builtin/init-db.c
    functionUses: 0
    functionsReached:
    - free
    - xgetcwd
    - strrchr
    - strcmp
    linkageType: ''
    returnType: int
    signature: int guess_repository_type(const char *git_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/init-db.c:52,1
    - Dst: git_config_perm
      Src: /src/git/builtin/init-db.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: shared_callback
    functionSourceFile: /src/git/builtin/init-db.c
    functionUses: 0
    functionsReached:
    - git_config_perm
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: int shared_callback(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/init-db.c:91,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:91,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:92,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/init-db.c:93,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:94,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:99,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:100,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/init-db.c:104,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:104,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/init-db.c:105,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:105,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:106,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/init-db.c:107,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:107,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:108,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/init-db.c:109,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:109,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:110,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/init-db.c:111,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:111,1
    - Dst: N_
      Src: /src/git/builtin/init-db.c:112,1
    - Dst: OPT_END
      Src: /src/git/builtin/init-db.c:113,1
    - Dst: parse_options
      Src: /src/git/builtin/init-db.c:117,1
    - Dst: die
      Src: /src/git/builtin/init-db.c:120,1
    - Dst: _
      Src: /src/git/builtin/init-db.c:120,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/init-db.c:122,1
    - Dst: real_pathdup
      Src: /src/git/builtin/init-db.c:123,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/init-db.c:125,1
    - Dst: absolute_pathdup
      Src: /src/git/builtin/init-db.c:126,1
    - Dst: chdir
      Src: /src/git/builtin/init-db.c:131,1
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/builtin/init-db.c:139,1
    - Dst: repo_settings_set_shared_repository
      Src: /src/git/builtin/init-db.c:140,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/init-db.c:141,1
    - Dst: die_errno
      Src: /src/git/builtin/init-db.c:149,1
    - Dst: _
      Src: /src/git/builtin/init-db.c:149,1
    - Dst: repo_settings_set_shared_repository
      Src: /src/git/builtin/init-db.c:152,1
    - Dst: mkdir
      Src: /src/git/builtin/init-db.c:153,1
    - Dst: die_errno
      Src: /src/git/builtin/init-db.c:154,1
    - Dst: _
      Src: /src/git/builtin/init-db.c:154,1
    - Dst: die_errno
      Src: /src/git/builtin/init-db.c:158,1
    - Dst: _
      Src: /src/git/builtin/init-db.c:158,1
    - Dst: usage
      Src: /src/git/builtin/init-db.c:161,1
    - Dst: xgetcwd
      Src: /src/git/builtin/init-db.c:164,1
    - Dst: setenv
      Src: /src/git/builtin/init-db.c:165,1
    - Dst: free
      Src: /src/git/builtin/init-db.c:166,1
    - Dst: hash_algo_by_name
      Src: /src/git/builtin/init-db.c:170,1
    - Dst: die
      Src: /src/git/builtin/init-db.c:172,1
    - Dst: _
      Src: /src/git/builtin/init-db.c:172,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/builtin/init-db.c:176,1
    - Dst: die
      Src: /src/git/builtin/init-db.c:178,1
    - Dst: _
      Src: /src/git/builtin/init-db.c:178,1
    - Dst: repo_settings_set_shared_repository
      Src: /src/git/builtin/init-db.c:182,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/init-db.c:188,1
    - Dst: getenv
      Src: /src/git/builtin/init-db.c:188,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/init-db.c:189,1
    - Dst: getenv
      Src: /src/git/builtin/init-db.c:189,1
    - Dst: die
      Src: /src/git/builtin/init-db.c:191,1
    - Dst: _
      Src: /src/git/builtin/init-db.c:191,1
    - Dst: xstrdup
      Src: /src/git/builtin/init-db.c:200,1
    - Dst: read_gitfile_gently
      Src: /src/git/builtin/init-db.c:212,1
    - Dst: get_common_dir
      Src: /src/git/builtin/init-db.c:213,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/init-db.c:216,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/builtin/init-db.c:217,1
    - Dst: chdir
      Src: /src/git/builtin/init-db.c:218,1
    - Dst: die_errno
      Src: /src/git/builtin/init-db.c:219,1
    - Dst: _
      Src: /src/git/builtin/init-db.c:219,1
    - Dst: strbuf_release
      Src: /src/git/builtin/init-db.c:220,1
    - Dst: free
      Src: /src/git/builtin/init-db.c:221,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/init-db.c:222,1
    - Dst: strbuf_release
      Src: /src/git/builtin/init-db.c:224,1
    - Dst: guess_repository_type
      Src: /src/git/builtin/init-db.c:228,1
    - Dst: strrchr
      Src: /src/git/builtin/init-db.c:231,1
    - Dst: xstrndup
      Src: /src/git/builtin/init-db.c:233,1
    - Dst: real_pathdup
      Src: /src/git/builtin/init-db.c:234,1
    - Dst: free
      Src: /src/git/builtin/init-db.c:235,1
    - Dst: xgetcwd
      Src: /src/git/builtin/init-db.c:238,1
    - Dst: set_git_work_tree
      Src: /src/git/builtin/init-db.c:240,1
    - Dst: set_git_work_tree
      Src: /src/git/builtin/init-db.c:242,1
    - Dst: access
      Src: /src/git/builtin/init-db.c:243,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/init-db.c:243,1
    - Dst: die_errno
      Src: /src/git/builtin/init-db.c:244,1
    - Dst: _
      Src: /src/git/builtin/init-db.c:244,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/init-db.c:245,1
    - Dst: die
      Src: /src/git/builtin/init-db.c:249,1
    - Dst: _
      Src: /src/git/builtin/init-db.c:249,1
    - Dst: set_git_work_tree
      Src: /src/git/builtin/init-db.c:251,1
    - Dst: init_db
      Src: /src/git/builtin/init-db.c:255,1
    - Dst: free
      Src: /src/git/builtin/init-db.c:259,1
    - Dst: free
      Src: /src/git/builtin/init-db.c:260,1
    - Dst: free
      Src: /src/git/builtin/init-db.c:261,1
    - Dst: free
      Src: /src/git/builtin/init-db.c:262,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 100
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 72
    functionDepth: 20
    functionLinenumber: 72
    functionLinenumberEnd: 264
    functionName: cmd_init_db
    functionSourceFile: /src/git/builtin/init-db.c
    functionUses: 0
    functionsReached:
    - init_db
    - parse_options
    - strbuf_addbuf
    - free
    - xgetcwd
    - OPT_END
    - die
    - xstrdup_or_null
    - strbuf_release
    - access
    - set_git_work_tree
    - repo_settings_get_shared_repository
    - OPT_BIT
    - guess_repository_type
    - ref_storage_format_by_name
    - hash_algo_by_name
    - absolute_pathdup
    - repo_settings_set_shared_repository
    - is_absolute_path
    - chdir
    - read_gitfile_gently
    - OPT_SET_INT
    - strbuf_strip_suffix
    - repo_get_work_tree
    - die_errno
    - safe_create_leading_directories_const
    - mkdir
    - strbuf_detach
    - _
    - N_
    - real_pathdup
    - xstrdup
    - strrchr
    - OPT_STRING
    - usage
    - xstrndup
    - setenv
    - get_common_dir
    - getenv
    linkageType: ''
    returnType: int
    signature: "int cmd_init_db(int argc,\n\t\tconst char **argv,\n\t\tconst char
      *prefix,\n\t\tstruct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/credential-cache--daemon.c:27,1
    - Dst: memcpy
      Src: /src/git/builtin/credential-cache--daemon.c:31,1
    - Dst: memset
      Src: /src/git/builtin/credential-cache--daemon.c:32,1
    - Dst: time
      Src: /src/git/builtin/credential-cache--daemon.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - struct credential*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: cache_credential
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 0
    functionsReached:
    - memset
    - time
    - ALLOC_GROW
    - memcpy
    linkageType: ''
    returnType: void
    signature: void cache_credential(struct credential *c, int timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: credential_match
      Src: /src/git/builtin/credential-cache--daemon.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: lookup_credential
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 0
    functionsReached:
    - credential_match
    linkageType: ''
    returnType: struct credential_cache_entry
    signature: struct credential_cache_entry *lookup_credential(const struct credential
      *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: credential_match
      Src: /src/git/builtin/credential-cache--daemon.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - match_password
    argTypes:
    - struct credential*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: remove_credential
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 0
    functionsReached:
    - credential_match
    linkageType: ''
    returnType: void
    signature: void remove_credential(const struct credential *c, int match_password)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/builtin/credential-cache--daemon.c:63,1
    - Dst: credential_clear
      Src: /src/git/builtin/credential-cache--daemon.c:77,1
    - Dst: memcpy
      Src: /src/git/builtin/credential-cache--daemon.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 101
    functionName: check_expirations
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 0
    functionsReached:
    - memcpy
    - credential_clear
    - time
    linkageType: ''
    returnType: timestamp_t
    signature: timestamp_t check_expirations(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/credential-cache--daemon.c:109,1
    - Dst: skip_prefix
      Src: /src/git/builtin/credential-cache--daemon.c:110,1
    - Dst: error
      Src: /src/git/builtin/credential-cache--daemon.c:111,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/credential-cache--daemon.c:112,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/credential-cache--daemon.c:114,1
    - Dst: skip_prefix
      Src: /src/git/builtin/credential-cache--daemon.c:115,1
    - Dst: error
      Src: /src/git/builtin/credential-cache--daemon.c:116,1
    - Dst: atoi
      Src: /src/git/builtin/credential-cache--daemon.c:117,1
    - Dst: credential_set_all_capabilities
      Src: /src/git/builtin/credential-cache--daemon.c:119,1
    - Dst: credential_read
      Src: /src/git/builtin/credential-cache--daemon.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - fh
    - c
    - action
    - timeout
    argTypes:
    - FILE*
    - struct credential*
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 124
    functionName: read_request
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 2
    functionsReached:
    - error
    - strbuf_getline_lf
    - atoi
    - credential_set_all_capabilities
    - strbuf_addstr
    - credential_read
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int read_request(FILE *fh, struct credential *c,\n\t\t\tstruct strbuf
      *action, int *timeout)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: read_request
      Src: /src/git/builtin/credential-cache--daemon.c:132,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-cache--daemon.c:134,1
    - Dst: lookup_credential
      Src: /src/git/builtin/credential-cache--daemon.c:135,1
    - Dst: fprintf
      Src: /src/git/builtin/credential-cache--daemon.c:140,1
    - Dst: fprintf
      Src: /src/git/builtin/credential-cache--daemon.c:142,1
    - Dst: fprintf
      Src: /src/git/builtin/credential-cache--daemon.c:144,1
    - Dst: credential_has_capability
      Src: /src/git/builtin/credential-cache--daemon.c:145,1
    - Dst: fprintf
      Src: /src/git/builtin/credential-cache--daemon.c:146,1
    - Dst: credential_has_capability
      Src: /src/git/builtin/credential-cache--daemon.c:147,1
    - Dst: fprintf
      Src: /src/git/builtin/credential-cache--daemon.c:148,1
    - Dst: fprintf
      Src: /src/git/builtin/credential-cache--daemon.c:150,1
    - Dst: fprintf
      Src: /src/git/builtin/credential-cache--daemon.c:153,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-cache--daemon.c:157,1
    - Dst: exit
      Src: /src/git/builtin/credential-cache--daemon.c:166,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-cache--daemon.c:168,1
    - Dst: remove_credential
      Src: /src/git/builtin/credential-cache--daemon.c:169,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-cache--daemon.c:170,1
    - Dst: warning
      Src: /src/git/builtin/credential-cache--daemon.c:172,1
    - Dst: warning
      Src: /src/git/builtin/credential-cache--daemon.c:174,1
    - Dst: warning
      Src: /src/git/builtin/credential-cache--daemon.c:176,1
    - Dst: remove_credential
      Src: /src/git/builtin/credential-cache--daemon.c:178,1
    - Dst: cache_credential
      Src: /src/git/builtin/credential-cache--daemon.c:179,1
    - Dst: warning
      Src: /src/git/builtin/credential-cache--daemon.c:183,1
    - Dst: credential_clear
      Src: /src/git/builtin/credential-cache--daemon.c:185,1
    - Dst: strbuf_release
      Src: /src/git/builtin/credential-cache--daemon.c:186,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - FILE*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 187
    functionName: serve_one_client
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - remove_credential
    - exit
    - credential_clear
    - read_request
    - cache_credential
    - credential_has_capability
    - strcmp
    - lookup_credential
    - warning
    - fprintf
    linkageType: ''
    returnType: void
    signature: void serve_one_client(FILE *in, FILE *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: check_expirations
      Src: /src/git/builtin/credential-cache--daemon.c:194,1
    - Dst: poll
      Src: /src/git/builtin/credential-cache--daemon.c:200,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache--daemon.c:202,1
    - Dst: accept
      Src: /src/git/builtin/credential-cache--daemon.c:210,1
    - Dst: warning_errno
      Src: /src/git/builtin/credential-cache--daemon.c:212,1
    - Dst: dup
      Src: /src/git/builtin/credential-cache--daemon.c:215,1
    - Dst: warning_errno
      Src: /src/git/builtin/credential-cache--daemon.c:217,1
    - Dst: close
      Src: /src/git/builtin/credential-cache--daemon.c:218,1
    - Dst: xfdopen
      Src: /src/git/builtin/credential-cache--daemon.c:222,1
    - Dst: xfdopen
      Src: /src/git/builtin/credential-cache--daemon.c:223,1
    - Dst: serve_one_client
      Src: /src/git/builtin/credential-cache--daemon.c:224,1
    - Dst: fclose
      Src: /src/git/builtin/credential-cache--daemon.c:225,1
    - Dst: fclose
      Src: /src/git/builtin/credential-cache--daemon.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 229
    functionName: serve_cache_loop
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 0
    functionsReached:
    - fclose
    - dup
    - serve_one_client
    - accept
    - warning_errno
    - die_errno
    - close
    - check_expirations
    - xfdopen
    - poll
    linkageType: ''
    returnType: int
    signature: int serve_cache_loop(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unix_stream_listen
      Src: /src/git/builtin/credential-cache--daemon.c:236,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache--daemon.c:238,1
    - Dst: printf
      Src: /src/git/builtin/credential-cache--daemon.c:240,1
    - Dst: fclose
      Src: /src/git/builtin/credential-cache--daemon.c:241,1
    - Dst: freopen
      Src: /src/git/builtin/credential-cache--daemon.c:243,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache--daemon.c:244,1
    - Dst: serve_cache_loop
      Src: /src/git/builtin/credential-cache--daemon.c:247,1
    - Dst: close
      Src: /src/git/builtin/credential-cache--daemon.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - socket_path
    - debug
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 231
    functionDepth: 6
    functionLinenumber: 231
    functionLinenumberEnd: 251
    functionName: serve_cache
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 0
    functionsReached:
    - fclose
    - serve_cache_loop
    - die_errno
    - close
    - unix_stream_listen
    - printf
    - freopen
    linkageType: ''
    returnType: void
    signature: void serve_cache(const char *socket_path, int debug)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/builtin/credential-cache--daemon.c:261,1
    - Dst: dirname
      Src: /src/git/builtin/credential-cache--daemon.c:262,1
    - Dst: stat
      Src: /src/git/builtin/credential-cache--daemon.c:264,1
    - Dst: die
      Src: /src/git/builtin/credential-cache--daemon.c:266,1
    - Dst: _
      Src: /src/git/builtin/credential-cache--daemon.c:266,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/credential-cache--daemon.c:274,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache--daemon.c:275,1
    - Dst: mkdir
      Src: /src/git/builtin/credential-cache--daemon.c:276,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache--daemon.c:277,1
    - Dst: chdir
      Src: /src/git/builtin/credential-cache--daemon.c:280,1
    - Dst: free
      Src: /src/git/builtin/credential-cache--daemon.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 258
    functionDepth: 6
    functionLinenumber: 258
    functionLinenumberEnd: 289
    functionName: init_socket_directory
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 0
    functionsReached:
    - chdir
    - die
    - stat
    - die_errno
    - safe_create_leading_directories_const
    - mkdir
    - _
    - free
    - dirname
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void init_socket_directory(const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/credential-cache--daemon.c:305,1
    - Dst: N_
      Src: /src/git/builtin/credential-cache--daemon.c:306,1
    - Dst: OPT_END
      Src: /src/git/builtin/credential-cache--daemon.c:307,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/credential-cache--daemon.c:310,1
    - Dst: parse_options
      Src: /src/git/builtin/credential-cache--daemon.c:312,1
    - Dst: have_unix_sockets
      Src: /src/git/builtin/credential-cache--daemon.c:315,1
    - Dst: die
      Src: /src/git/builtin/credential-cache--daemon.c:316,1
    - Dst: _
      Src: /src/git/builtin/credential-cache--daemon.c:316,1
    - Dst: usage_with_options
      Src: /src/git/builtin/credential-cache--daemon.c:318,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/credential-cache--daemon.c:320,1
    - Dst: die
      Src: /src/git/builtin/credential-cache--daemon.c:321,1
    - Dst: init_socket_directory
      Src: /src/git/builtin/credential-cache--daemon.c:323,1
    - Dst: register_tempfile
      Src: /src/git/builtin/credential-cache--daemon.c:324,1
    - Dst: signal
      Src: /src/git/builtin/credential-cache--daemon.c:327,1
    - Dst: serve_cache
      Src: /src/git/builtin/credential-cache--daemon.c:329,1
    - Dst: delete_tempfile
      Src: /src/git/builtin/credential-cache--daemon.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 291
    functionDepth: 19
    functionLinenumber: 291
    functionLinenumberEnd: 333
    functionName: cmd_credential_cache_daemon
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 0
    functionsReached:
    - register_tempfile
    - delete_tempfile
    - parse_options
    - OPT_END
    - die
    - is_absolute_path
    - serve_cache
    - init_socket_directory
    - signal
    - OPT_BOOL
    - repo_config_get_bool
    - _
    - N_
    - have_unix_sockets
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_credential_cache_daemon(int argc,\n\t\t\t\tconst char **argv,\n\t\t\t\tconst
      char *prefix,\n\t\t\t\tstruct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/credential-cache--daemon.c:348,1
    - Dst: parse_options
      Src: /src/git/builtin/credential-cache--daemon.c:350,1
    - Dst: die
      Src: /src/git/builtin/credential-cache--daemon.c:351,1
    - Dst: _
      Src: /src/git/builtin/credential-cache--daemon.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 337
    functionDepth: 13
    functionLinenumber: 337
    functionLinenumberEnd: 352
    functionName: cmd_credential_cache_daemon
    functionSourceFile: /src/git/builtin/credential-cache--daemon.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - _
    linkageType: ''
    returnType: int
    signature: 'int cmd_credential_cache_daemon(int argc,

      const char **argv,

      const char *prefix,

      struct repository *repo UNUSED)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:120,1
    - Dst: git_config_bool
      Src: /src/git/builtin/fetch.c:121,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:125,1
    - Dst: git_config_bool
      Src: /src/git/builtin/fetch.c:126,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:130,1
    - Dst: git_config_bool
      Src: /src/git/builtin/fetch.c:131,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:135,1
    - Dst: git_config_bool
      Src: /src/git/builtin/fetch.c:136,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:140,1
    - Dst: git_config_bool
      Src: /src/git/builtin/fetch.c:141,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:147,1
    - Dst: parse_submodule_fetchjobs
      Src: /src/git/builtin/fetch.c:148,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:150,1
    - Dst: parse_fetch_recurse_submodules_arg
      Src: /src/git/builtin/fetch.c:151,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:155,1
    - Dst: git_config_int
      Src: /src/git/builtin/fetch.c:156,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:158,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:158,1
    - Dst: online_cpus
      Src: /src/git/builtin/fetch.c:160,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:164,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/fetch.c:166,1
    - Dst: strcasecmp
      Src: /src/git/builtin/fetch.c:167,1
    - Dst: strcasecmp
      Src: /src/git/builtin/fetch.c:169,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:172,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:172,1
    - Dst: git_default_config
      Src: /src/git/builtin/fetch.c:176,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 4
    argNames:
    - k
    - v
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 115
    functionDepth: 6
    functionLinenumber: 115
    functionLinenumberEnd: 177
    functionName: git_fetch_config
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - parse_submodule_fetchjobs
    - git_config_int
    - die
    - online_cpus
    - strcasecmp
    - parse_fetch_recurse_submodules_arg
    - strcmp
    - git_default_config
    - config_error_nonbool
    - git_config_bool
    - _
    linkageType: ''
    returnType: int
    signature: "int git_fetch_config(const char *k, const char *v,\n\t\t\t    const
      struct config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/fetch.c:181,1
    - Dst: refspec_append
      Src: /src/git/builtin/fetch.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 8
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: parse_refmap_arg
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - refspec_append
    linkageType: ''
    returnType: int
    signature: int parse_refmap_arg(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: transport_unlock_pack
      Src: /src/git/builtin/fetch.c:195,1
    - Dst: transport_unlock_pack
      Src: /src/git/builtin/fetch.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: unlock_pack
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 1
    functionsReached:
    - transport_unlock_pack
    linkageType: ''
    returnType: void
    signature: void unlock_pack(unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock_pack
      Src: /src/git/builtin/fetch.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: unlock_pack_atexit
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - unlock_pack
    linkageType: ''
    returnType: void
    signature: void unlock_pack_atexit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock_pack
      Src: /src/git/builtin/fetch.c:207,1
    - Dst: sigchain_pop
      Src: /src/git/builtin/fetch.c:208,1
    - Dst: raise
      Src: /src/git/builtin/fetch.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: unlock_pack_on_signal
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - sigchain_pop
    - raise
    - unlock_pack
    linkageType: ''
    returnType: void
    signature: void unlock_pack_on_signal(int signo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: branch_merge_matches
      Src: /src/git/builtin/fetch.c:224,1
    - Dst: memset
      Src: /src/git/builtin/fetch.c:242,1
    - Dst: get_fetch_map
      Src: /src/git/builtin/fetch.c:244,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - head
    - remote_refs
    - branch
    - tail
    argTypes:
    - struct ref**
    - struct ref*
    - struct branch*
    - struct ref***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 212
    functionDepth: 11
    functionLinenumber: 212
    functionLinenumberEnd: 248
    functionName: add_merge_config
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - memset
    - get_fetch_map
    - branch_merge_matches
    linkageType: ''
    returnType: void
    signature: "void add_merge_config(struct ref **head,\n\t\t\t   const struct ref
      *remote_refs,\n\t\t           struct branch *branch,\n\t\t           struct
      ref ***tail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_insert
      Src: /src/git/builtin/fetch.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - head
    - out
    argTypes:
    - struct ref**
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: create_fetch_oidset
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - oidset_insert
    linkageType: ''
    returnType: void
    signature: void create_fetch_oidset(struct ref **head, struct oidset *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/fetch.c:273,1
    - Dst: container_of
      Src: /src/git/builtin/fetch.c:274,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hashmap_cmp_fn_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: refname_hash_entry_cmp
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int refname_hash_entry_cmp(const void *hashmap_cmp_fn_data UNUSED,\n\t\t\t\t
      \ const struct hashmap_entry *eptr,\n\t\t\t\t  const struct hashmap_entry *entry_or_key,\n\t\t\t\t
      \ const void *keydata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/fetch.c:283,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/builtin/fetch.c:285,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/fetch.c:286,1
    - Dst: strhash
      Src: /src/git/builtin/fetch.c:286,1
    - Dst: oidcpy
      Src: /src/git/builtin/fetch.c:287,1
    - Dst: hashmap_add
      Src: /src/git/builtin/fetch.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - map
    - refname
    - oid
    argTypes:
    - struct hashmap*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 290
    functionName: refname_hash_add
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_add
    - oidcpy
    - hashmap_entry_init
    - FLEX_ALLOC_MEM
    - strlen
    linkageType: ''
    returnType: struct refname_hash_entry
    signature: "struct refname_hash_entry *refname_hash_add(struct hashmap *map,\n\t\t\t\t\t\t
      \  const char *refname,\n\t\t\t\t\t\t   const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refname_hash_add
      Src: /src/git/builtin/fetch.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cbdata
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 5
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: add_one_refname
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - refname_hash_add
    linkageType: ''
    returnType: int
    signature: int add_one_refname(const struct reference *ref, void *cbdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/builtin/fetch.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct hashmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: refname_hash_init
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - hashmap_init
    linkageType: ''
    returnType: void
    signature: void refname_hash_init(struct hashmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_get_from_hash
      Src: /src/git/builtin/fetch.c:307,1
    - Dst: strhash
      Src: /src/git/builtin/fetch.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - refname
    argTypes:
    - struct hashmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: refname_hash_exists
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_get_from_hash
    linkageType: ''
    returnType: int
    signature: int refname_hash_exists(struct hashmap *map, const char *refname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct refname_hash_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: clear_item
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_item(struct refname_hash_entry *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:322,1
    - Dst: refname_hash_add
      Src: /src/git/builtin/fetch.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - refname
    - old_oid
    - new_oid
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 324
    functionName: add_already_queued_tags
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - refname_hash_add
    - starts_with
    linkageType: ''
    returnType: void
    signature: "void add_already_queued_tags(const char *refname,\n\t\t\t\t    const
      struct object_id *old_oid UNUSED,\n\t\t\t\t    const struct object_id *new_oid,\n\t\t\t\t
      \   void *cb_data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: refname_hash_init
      Src: /src/git/builtin/fetch.c:339,1
    - Dst: refname_hash_init
      Src: /src/git/builtin/fetch.c:340,1
    - Dst: create_fetch_oidset
      Src: /src/git/builtin/fetch.c:341,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/fetch.c:343,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fetch.c:343,1
    - Dst: ref_transaction_for_each_queued_update
      Src: /src/git/builtin/fetch.c:351,1
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:356,1
    - Dst: ends_with
      Src: /src/git/builtin/fetch.c:365,1
    - Dst: odb_has_object
      Src: /src/git/builtin/fetch.c:367,1
    - Dst: oidset_contains
      Src: /src/git/builtin/fetch.c:368,1
    - Dst: odb_has_object
      Src: /src/git/builtin/fetch.c:369,1
    - Dst: oidset_contains
      Src: /src/git/builtin/fetch.c:370,1
    - Dst: clear_item
      Src: /src/git/builtin/fetch.c:371,1
    - Dst: odb_has_object
      Src: /src/git/builtin/fetch.c:383,1
    - Dst: oidset_contains
      Src: /src/git/builtin/fetch.c:384,1
    - Dst: clear_item
      Src: /src/git/builtin/fetch.c:385,1
    - Dst: refname_hash_exists
      Src: /src/git/builtin/fetch.c:390,1
    - Dst: refname_hash_exists
      Src: /src/git/builtin/fetch.c:391,1
    - Dst: refname_hash_add
      Src: /src/git/builtin/fetch.c:394,1
    - Dst: string_list_insert
      Src: /src/git/builtin/fetch.c:395,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/builtin/fetch.c:397,1
    - Dst: odb_has_object
      Src: /src/git/builtin/fetch.c:404,1
    - Dst: oidset_contains
      Src: /src/git/builtin/fetch.c:405,1
    - Dst: clear_item
      Src: /src/git/builtin/fetch.c:406,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/fetch.c:412,1
    - Dst: strhash
      Src: /src/git/builtin/fetch.c:415,1
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/builtin/fetch.c:417,1
    - Dst: BUG
      Src: /src/git/builtin/fetch.c:420,1
    - Dst: alloc_ref
      Src: /src/git/builtin/fetch.c:426,1
    - Dst: alloc_ref
      Src: /src/git/builtin/fetch.c:427,1
    - Dst: oidcpy
      Src: /src/git/builtin/fetch.c:428,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/builtin/fetch.c:432,1
    - Dst: string_list_clear
      Src: /src/git/builtin/fetch.c:433,1
    - Dst: oidset_clear
      Src: /src/git/builtin/fetch.c:434,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 42
    argCount: 4
    argNames:
    - refs
    - transaction
    - head
    - tail
    argTypes:
    - struct ref*
    - struct ref_transaction*
    - struct ref**
    - struct ref***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 326
    functionDepth: 12
    functionLinenumber: 326
    functionLinenumberEnd: 435
    functionName: find_non_local_tags
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - oidcpy
    - oidset_clear
    - refname_hash_add
    - alloc_ref
    - get_main_ref_store
    - string_list_insert
    - odb_has_object
    - strhash
    - string_list_clear
    - ref_transaction_for_each_queued_update
    - hashmap_get_entry_from_hash
    - clear_item
    - refname_hash_exists
    - refname_hash_init
    - oidset_contains
    - refs_for_each_ref
    - starts_with
    - create_fetch_oidset
    - hashmap_clear_and_free
    - ends_with
    - BUG
    linkageType: ''
    returnType: void
    signature: "void find_non_local_tags(const struct ref *refs,\n\t\t\t\tstruct ref_transaction
      *transaction,\n\t\t\t\tstruct ref **head,\n\t\t\t\tstruct ref ***tail)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:453,1
    - Dst: refspec_item_clear
      Src: /src/git/builtin/fetch.c:457,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fetch.c:467,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch.c:474,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fetch.c:476,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fetch.c:478,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:481,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct refspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 483
    functionName: filter_prefetch_refspec
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - starts_with
    - strbuf_detach
    - strbuf_addstr
    - free
    - refspec_item_clear
    linkageType: ''
    returnType: void
    signature: void filter_prefetch_refspec(struct refspec *rs)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: filter_prefetch_refspec
      Src: /src/git/builtin/fetch.c:501,1
    - Dst: filter_prefetch_refspec
      Src: /src/git/builtin/fetch.c:503,1
    - Dst: get_fetch_map
      Src: /src/git/builtin/fetch.c:509,1
    - Dst: get_fetch_map
      Src: /src/git/builtin/fetch.c:543,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:545,1
    - Dst: branch_get
      Src: /src/git/builtin/fetch.c:548,1
    - Dst: branch_has_merge_config
      Src: /src/git/builtin/fetch.c:549,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:553,1
    - Dst: get_fetch_map
      Src: /src/git/builtin/fetch.c:555,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:571,1
    - Dst: add_merge_config
      Src: /src/git/builtin/fetch.c:572,1
    - Dst: get_remote_ref
      Src: /src/git/builtin/fetch.c:574,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:576,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:576,1
    - Dst: refspec_item_init_push
      Src: /src/git/builtin/fetch.c:586,1
    - Dst: get_fetch_map
      Src: /src/git/builtin/fetch.c:587,1
    - Dst: refspec_item_clear
      Src: /src/git/builtin/fetch.c:588,1
    - Dst: find_non_local_tags
      Src: /src/git/builtin/fetch.c:590,1
    - Dst: apply_negative_refspecs
      Src: /src/git/builtin/fetch.c:606,1
    - Dst: apply_negative_refspecs
      Src: /src/git/builtin/fetch.c:608,1
    - Dst: ref_remove_duplicates
      Src: /src/git/builtin/fetch.c:610,1
    - Dst: strhash
      Src: /src/git/builtin/fetch.c:616,1
    - Dst: refname_hash_init
      Src: /src/git/builtin/fetch.c:619,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/fetch.c:620,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fetch.c:620,1
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/builtin/fetch.c:626,1
    - Dst: oidcpy
      Src: /src/git/builtin/fetch.c:631,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/builtin/fetch.c:636,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 73
    argCount: 5
    argNames:
    - remote
    - remote_refs
    - rs
    - tags
    - autotags
    argTypes:
    - struct remote*
    - struct ref*
    - struct refspec*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 485
    functionDepth: 17
    functionLinenumber: 485
    functionLinenumberEnd: 639
    functionName: get_ref_map
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - filter_prefetch_refspec
    - oidcpy
    - strcmp
    - get_main_ref_store
    - die
    - branch_get
    - branch_has_merge_config
    - get_fetch_map
    - refspec_item_clear
    - strhash
    - ref_remove_duplicates
    - hashmap_get_entry_from_hash
    - apply_negative_refspecs
    - add_merge_config
    - get_remote_ref
    - _
    - find_non_local_tags
    - refname_hash_init
    - refspec_item_init_push
    - refs_for_each_ref
    - hashmap_clear_and_free
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *get_ref_map(struct remote *remote,\n\t\t\t       const
      struct ref *remote_refs,\n\t\t\t       struct refspec *rs,\n\t\t\t       int
      tags, int *autotags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/builtin/fetch.c:647,1
    - Dst: xstrfmt
      Src: /src/git/builtin/fetch.c:655,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/fetch.c:657,1
    - Dst: error
      Src: /src/git/builtin/fetch.c:662,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:663,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - action
    - ref
    - transaction
    - check_old
    argTypes:
    - char*
    - struct ref*
    - struct ref_transaction*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 641
    functionDepth: 6
    functionLinenumber: 641
    functionLinenumberEnd: 666
    functionName: s_update_ref
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 15
    functionsReached:
    - error
    - strbuf_release
    - xstrfmt
    - ref_transaction_update
    - free
    - getenv
    linkageType: ''
    returnType: int
    signature: "int s_update_ref(const char *action,\n\t\t\tstruct ref *ref,\n\t\t\tstruct
      ref_transaction *transaction,\n\t\t\tint check_old)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: term_columns
      Src: /src/git/builtin/fetch.c:673,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:682,1
    - Dst: oideq
      Src: /src/git/builtin/fetch.c:686,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/fetch.c:689,1
    - Dst: prettify_refname
      Src: /src/git/builtin/fetch.c:689,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/fetch.c:691,1
    - Dst: prettify_refname
      Src: /src/git/builtin/fetch.c:691,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 2
    argNames:
    - ref_map
    - compact_format
    argTypes:
    - struct ref*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 668
    functionDepth: 5
    functionLinenumber: 668
    functionLinenumberEnd: 708
    functionName: refcol_width
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - utf8_strwidth
    - strcmp
    - term_columns
    - prettify_refname
    - oideq
    linkageType: ''
    returnType: int
    signature: int refcol_width(const struct ref *ref_map, int compact_format)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/fetch.c:715,1
    - Dst: strbuf_init
      Src: /src/git/builtin/fetch.c:716,1
    - Dst: transport_anonymize_url
      Src: /src/git/builtin/fetch.c:720,1
    - Dst: xstrdup
      Src: /src/git/builtin/fetch.c:722,1
    - Dst: strlen
      Src: /src/git/builtin/fetch.c:724,1
    - Dst: strncmp
      Src: /src/git/builtin/fetch.c:728,1
    - Dst: refcol_width
      Src: /src/git/builtin/fetch.c:737,1
    - Dst: BUG
      Src: /src/git/builtin/fetch.c:744,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - display_state
    - ref_map
    - raw_url
    - format
    argTypes:
    - struct display_state*
    - struct ref*
    - char*
    - enum display_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 710
    functionDepth: 6
    functionLinenumber: 710
    functionLinenumberEnd: 746
    functionName: display_state_init
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - memset
    - transport_anonymize_url
    - refcol_width
    - strlen
    - strncmp
    - BUG
    - strbuf_init
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void display_state_init(struct display_state *display_state, struct
      ref *ref_map,\n\t\t\t       const char *raw_url, enum display_format format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:750,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - display_state
    argTypes:
    - struct display_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 748
    functionDepth: 3
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: display_state_release
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void display_state_release(struct display_state *display_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - display_state
    - remote
    - local
    argTypes:
    - struct display_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 754
    functionDepth: 2
    functionLinenumber: 754
    functionLinenumberEnd: 759
    functionName: print_remote_to_local
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void print_remote_to_local(struct display_state *display_state,\n\t\t\t\t
      \ const char *remote, const char *local)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/fetch.c:768,1
    - Dst: ends_with
      Src: /src/git/builtin/fetch.c:769,1
    - Dst: strstr
      Src: /src/git/builtin/fetch.c:772,1
    - Dst: strlen
      Src: /src/git/builtin/fetch.c:779,1
    - Dst: strbuf_splice
      Src: /src/git/builtin/fetch.c:783,1
    - Dst: strlen
      Src: /src/git/builtin/fetch.c:784,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - haystack
    - needle
    - placeholder
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 761
    functionDepth: 4
    functionLinenumber: 761
    functionLinenumberEnd: 786
    functionName: find_and_replace
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strlen
    - strbuf_splice
    - strstr
    - ends_with
    linkageType: ''
    returnType: int
    signature: "int find_and_replace(struct strbuf *haystack,\n\t\t\t    const char
      *needle,\n\t\t\t    const char *placeholder)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:794,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:795,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fetch.c:799,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fetch.c:800,1
    - Dst: find_and_replace
      Src: /src/git/builtin/fetch.c:802,1
    - Dst: find_and_replace
      Src: /src/git/builtin/fetch.c:803,1
    - Dst: print_remote_to_local
      Src: /src/git/builtin/fetch.c:804,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:806,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - display_state
    - remote
    - local
    argTypes:
    - struct display_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 788
    functionDepth: 5
    functionLinenumber: 788
    functionLinenumberEnd: 808
    functionName: print_compact
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - strbuf_addstr
    - strcmp
    - find_and_replace
    - print_remote_to_local
    linkageType: ''
    returnType: void
    signature: "void print_compact(struct display_state *display_state,\n\t\t\t  const
      char *remote, const char *local)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/fetch.c:822,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:830,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:830,1
    - Dst: strlen
      Src: /src/git/builtin/fetch.c:835,1
    - Dst: gettext_width
      Src: /src/git/builtin/fetch.c:835,1
    - Dst: prettify_refname
      Src: /src/git/builtin/fetch.c:836,1
    - Dst: prettify_refname
      Src: /src/git/builtin/fetch.c:837,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:839,1
    - Dst: print_remote_to_local
      Src: /src/git/builtin/fetch.c:842,1
    - Dst: print_compact
      Src: /src/git/builtin/fetch.c:844,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:847,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:852,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fetch.c:853,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fetch.c:853,1
    - Dst: BUG
      Src: /src/git/builtin/fetch.c:857,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fetch.c:859,1
    - Dst: fputs
      Src: /src/git/builtin/fetch.c:861,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 9
    argNames:
    - display_state
    - code
    - summary
    - error
    - remote
    - local
    - old_oid
    - new_oid
    - summary_width
    argTypes:
    - struct display_state*
    - char
    - char*
    - char*
    - char*
    - char*
    - struct object_id*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 810
    functionDepth: 6
    functionLinenumber: 810
    functionLinenumberEnd: 862
    functionName: display_ref_update
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fputs
    - strbuf_reset
    - BUG
    - print_compact
    - strbuf_addf
    - strbuf_addch
    - strlen
    - _
    - gettext_width
    - prettify_refname
    - print_remote_to_local
    linkageType: ''
    returnType: void
    signature: "void display_ref_update(struct display_state *display_state, char
      code,\n\t\t\t       const char *summary, const char *error,\n\t\t\t       const
      char *remote, const char *local,\n\t\t\t       const struct object_id *old_oid,\n\t\t\t
      \      const struct object_id *new_oid,\n\t\t\t       int summary_width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/fetch.c:896,1
    - Dst: xstrdup
      Src: /src/git/builtin/fetch.c:902,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/fetch.c:903,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/fetch.c:904,1
    - Dst: xstrdup
      Src: /src/git/builtin/fetch.c:905,1
    - Dst: xstrdup
      Src: /src/git/builtin/fetch.c:906,1
    - Dst: oidcpy
      Src: /src/git/builtin/fetch.c:908,1
    - Dst: oidcpy
      Src: /src/git/builtin/fetch.c:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 10
    argNames:
    - array
    - success_code
    - fail_code
    - summary
    - success_detail
    - fail_detail
    - ref
    - remote
    - old_oid
    - new_oid
    argTypes:
    - struct ref_update_display_info_array*
    - char
    - char
    - char*
    - char*
    - char*
    - char*
    - char*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 882
    functionDepth: 2
    functionLinenumber: 882
    functionLinenumberEnd: 912
    functionName: ref_update_display_info_append
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - xstrdup_or_null
    - ALLOC_GROW
    - xstrdup
    linkageType: ''
    returnType: struct ref_update_display_info
    signature: "struct ref_update_display_info *ref_update_display_info_append(\n\t\t\t\t\t
      \  struct ref_update_display_info_array *array,\n\t\t\t\t\t   char success_code,\n\t\t\t\t\t
      \  char fail_code,\n\t\t\t\t\t   const char *summary,\n\t\t\t\t\t   const char
      *success_detail,\n\t\t\t\t\t   const char *fail_detail,\n\t\t\t\t\t   const
      char *ref,\n\t\t\t\t\t   const char *remote,\n\t\t\t\t\t   const struct object_id
      *old_oid,\n\t\t\t\t\t   const struct object_id *new_oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct ref_update_display_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 917
    functionName: ref_update_display_info_set_failed
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ref_update_display_info_set_failed(struct ref_update_display_info
      *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/fetch.c:921,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:922,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:923,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:924,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct ref_update_display_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 926
    functionName: ref_update_display_info_free
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ref_update_display_info_free(struct ref_update_display_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: display_ref_update
      Src: /src/git/builtin/fetch.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - info
    - display_state
    - summary_width
    argTypes:
    - struct ref_update_display_info*
    - struct display_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 928
    functionDepth: 7
    functionLinenumber: 928
    functionLinenumberEnd: 938
    functionName: ref_update_display_info_display
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - display_ref_update
    linkageType: ''
    returnType: void
    signature: "void ref_update_display_info_display(struct ref_update_display_info
      *info,\n\t\t\t\t\t    struct display_state *display_state,\n\t\t\t\t\t    int
      summary_width)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/builtin/fetch.c:949,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:951,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:951,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fetch.c:951,1
    - Dst: oideq
      Src: /src/git/builtin/fetch.c:953,1
    - Dst: ref_update_display_info_append
      Src: /src/git/builtin/fetch.c:955,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:956,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fetch.c:964,1
    - Dst: branch_checked_out
      Src: /src/git/builtin/fetch.c:965,1
    - Dst: ref_update_display_info_append
      Src: /src/git/builtin/fetch.c:971,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:972,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:973,1
    - Dst: ref_update_display_info_set_failed
      Src: /src/git/builtin/fetch.c:976,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fetch.c:980,1
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:981,1
    - Dst: s_update_ref
      Src: /src/git/builtin/fetch.c:987,1
    - Dst: ref_update_display_info_append
      Src: /src/git/builtin/fetch.c:989,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:990,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:991,1
    - Dst: ref_update_display_info_set_failed
      Src: /src/git/builtin/fetch.c:995,1
    - Dst: ref_update_display_info_append
      Src: /src/git/builtin/fetch.c:999,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1000,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1001,1
    - Dst: ref_update_display_info_set_failed
      Src: /src/git/builtin/fetch.c:1004,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/fetch.c:1009,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/fetch.c:1011,1
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:1023,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1025,1
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:1026,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1028,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1031,1
    - Dst: s_update_ref
      Src: /src/git/builtin/fetch.c:1034,1
    - Dst: ref_update_display_info_append
      Src: /src/git/builtin/fetch.c:1036,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1038,1
    - Dst: ref_update_display_info_set_failed
      Src: /src/git/builtin/fetch.c:1042,1
    - Dst: getnanotime
      Src: /src/git/builtin/fetch.c:1048,1
    - Dst: repo_in_merge_bases
      Src: /src/git/builtin/fetch.c:1049,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:1052,1
    - Dst: getnanotime
      Src: /src/git/builtin/fetch.c:1053,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/builtin/fetch.c:1063,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fetch.c:1064,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/builtin/fetch.c:1065,1
    - Dst: s_update_ref
      Src: /src/git/builtin/fetch.c:1066,1
    - Dst: ref_update_display_info_append
      Src: /src/git/builtin/fetch.c:1068,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1070,1
    - Dst: ref_update_display_info_set_failed
      Src: /src/git/builtin/fetch.c:1074,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1076,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/builtin/fetch.c:1083,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fetch.c:1084,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/builtin/fetch.c:1085,1
    - Dst: s_update_ref
      Src: /src/git/builtin/fetch.c:1086,1
    - Dst: ref_update_display_info_append
      Src: /src/git/builtin/fetch.c:1088,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1089,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1090,1
    - Dst: ref_update_display_info_set_failed
      Src: /src/git/builtin/fetch.c:1095,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1097,1
    - Dst: ref_update_display_info_append
      Src: /src/git/builtin/fetch.c:1101,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1102,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1103,1
    - Dst: ref_update_display_info_set_failed
      Src: /src/git/builtin/fetch.c:1106,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 80
    argCount: 5
    argNames:
    - ref
    - transaction
    - remote_ref
    - config
    - display_array
    argTypes:
    - struct ref*
    - struct ref_transaction*
    - struct ref*
    - struct fetch_config*
    - struct ref_update_display_info_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 940
    functionDepth: 17
    functionLinenumber: 940
    functionLinenumberEnd: 1109
    functionName: update_local_ref
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - s_update_ref
    - oid_to_hex
    - die
    - strbuf_release
    - lookup_commit_reference_gently
    - repo_in_merge_bases
    - starts_with
    - is_null_oid
    - odb_has_object
    - strbuf_addstr
    - _
    - getnanotime
    - ref_update_display_info_append
    - branch_checked_out
    - strbuf_add_unique_abbrev
    - oideq
    - ref_update_display_info_set_failed
    linkageType: ''
    returnType: int
    signature: "int update_local_ref(struct ref *ref,\n\t\t\t    struct ref_transaction
      *transaction,\n\t\t\t    const struct ref *remote_ref,\n\t\t\t    const struct
      fetch_config *config,\n\t\t\t    struct ref_update_display_info_array *display_array)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cb_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1122
    functionName: iterate_ref_map
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *iterate_ref_map(void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_path_fetch_head
      Src: /src/git/builtin/fetch.c:1131,1
    - Dst: fopen
      Src: /src/git/builtin/fetch.c:1134,1
    - Dst: error_errno
      Src: /src/git/builtin/fetch.c:1136,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1136,1
    - Dst: strbuf_init
      Src: /src/git/builtin/fetch.c:1137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fetch_head
    argTypes:
    - struct fetch_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1143
    functionName: open_fetch_head
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - error_errno
    - fopen
    - _
    - git_path_fetch_head
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: int open_fetch_head(struct fetch_head *fetch_head)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:1170,1
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/fetch.c:1171,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fetch.c:1174,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fetch.c:1176,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fetch.c:1177,1
    - Dst: strbuf_write
      Src: /src/git/builtin/fetch.c:1186,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fetch.c:1187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 6
    argNames:
    - fetch_head
    - old_oid
    - fetch_head_status
    - note
    - url
    - url_len
    argTypes:
    - struct fetch_head*
    - struct object_id*
    - enum fetch_head_status
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1145
    functionDepth: 4
    functionLinenumber: 1145
    functionLinenumberEnd: 1189
    functionName: append_fetch_head
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strbuf_write
    - oid_to_hex_r
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void append_fetch_head(struct fetch_head *fetch_head,\n\t\t\t      const
      struct object_id *old_oid,\n\t\t\t      enum fetch_head_status fetch_head_status,\n\t\t\t
      \     const char *note,\n\t\t\t      const char *url, size_t url_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_write
      Src: /src/git/builtin/fetch.c:1195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fetch_head
    argTypes:
    - struct fetch_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1196
    functionName: commit_fetch_head
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strbuf_write
    linkageType: ''
    returnType: void
    signature: void commit_fetch_head(struct fetch_head *fetch_head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/git/builtin/fetch.c:1203,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fetch_head
    argTypes:
    - struct fetch_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1198
    functionDepth: 3
    functionLinenumber: 1198
    functionLinenumberEnd: 1205
    functionName: close_fetch_head
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void close_fetch_head(struct fetch_head *fetch_head)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: check_connected
      Src: /src/git/builtin/fetch.c:1234,1
    - Dst: error
      Src: /src/git/builtin/fetch.c:1235,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1235,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:1254,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1254,1
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:1279,1
    - Dst: lookup_commit_in_graph
      Src: /src/git/builtin/fetch.c:1280,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/fetch.c:1282,1
    - Dst: alloc_ref
      Src: /src/git/builtin/fetch.c:1294,1
    - Dst: oidcpy
      Src: /src/git/builtin/fetch.c:1295,1
    - Dst: oidcpy
      Src: /src/git/builtin/fetch.c:1296,1
    - Dst: oideq
      Src: /src/git/builtin/fetch.c:1301,1
    - Dst: check_for_new_submodule_commits
      Src: /src/git/builtin/fetch.c:1302,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:1305,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch.c:1308,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch.c:1310,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch.c:1312,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fetch.c:1319,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:1322,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:1323,1
    - Dst: append_fetch_head
      Src: /src/git/builtin/fetch.c:1326,1
    - Dst: update_local_ref
      Src: /src/git/builtin/fetch.c:1332,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:1334,1
    - Dst: ref_update_display_info_append
      Src: /src/git/builtin/fetch.c:1342,1
    - Dst: advice_enabled
      Src: /src/git/builtin/fetch.c:1351,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:1353,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1353,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:1355,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1355,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1361,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 81
    argCount: 7
    argNames:
    - display_state
    - connectivity_checked
    - transaction
    - ref_map
    - fetch_head
    - config
    - display_array
    argTypes:
    - struct display_state*
    - int
    - struct ref_transaction*
    - struct ref*
    - struct fetch_head*
    - struct fetch_config*
    - struct ref_update_display_info_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1216
    functionDepth: 18
    functionLinenumber: 1216
    functionLinenumberEnd: 1363
    functionName: store_updated_refs
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - strbuf_addf
    - strcmp
    - free
    - alloc_ref
    - error
    - strbuf_release
    - lookup_commit_in_graph
    - check_connected
    - append_fetch_head
    - _
    - check_for_new_submodule_commits
    - skip_prefix
    - warning
    - update_local_ref
    - lookup_commit_reference_gently
    - strbuf_reset
    - starts_with
    - ref_update_display_info_append
    - advice_enabled
    - oideq
    linkageType: ''
    returnType: int
    signature: "int store_updated_refs(struct display_state *display_state,\n\t\t\t
      \     int connectivity_checked,\n\t\t\t      struct ref_transaction *transaction,
      struct ref *ref_map,\n\t\t\t      struct fetch_head *fetch_head,\n\t\t\t      const
      struct fetch_config *config,\n\t\t\t      struct ref_update_display_info_array
      *display_array)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/builtin/fetch.c:1399,1
    - Dst: check_connected
      Src: /src/git/builtin/fetch.c:1406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ref_map
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1370
    functionDepth: 12
    functionLinenumber: 1370
    functionLinenumberEnd: 1407
    functionName: check_exist_and_connected
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - odb_has_object
    - check_connected
    linkageType: ''
    returnType: int
    signature: int check_exist_and_connected(struct ref *ref_map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_exist_and_connected
      Src: /src/git/builtin/fetch.c:1424,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/fetch.c:1426,1
    - Dst: transport_fetch_refs
      Src: /src/git/builtin/fetch.c:1427,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fetch.c:1428,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/fetch.c:1435,1
    - Dst: store_updated_refs
      Src: /src/git/builtin/fetch.c:1436,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fetch.c:1439,1
    - Dst: transport_unlock_pack
      Src: /src/git/builtin/fetch.c:1442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 7
    argNames:
    - display_state
    - transport
    - transaction
    - ref_map
    - fetch_head
    - config
    - display_array
    argTypes:
    - struct display_state*
    - struct transport*
    - struct ref_transaction*
    - struct ref*
    - struct fetch_head*
    - struct fetch_config*
    - struct ref_update_display_info_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1409
    functionDepth: 19
    functionLinenumber: 1409
    functionLinenumberEnd: 1444
    functionName: fetch_and_consume_refs
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - store_updated_refs
    - trace2_region_leave
    - trace2_region_enter
    - transport_fetch_refs
    - check_exist_and_connected
    - transport_unlock_pack
    linkageType: ''
    returnType: int
    signature: "int fetch_and_consume_refs(struct display_state *display_state,\n\t\t\t\t
      \ struct transport *transport,\n\t\t\t\t  struct ref_transaction *transaction,\n\t\t\t\t
      \ struct ref *ref_map,\n\t\t\t\t  struct fetch_head *fetch_head,\n\t\t\t\t  const
      struct fetch_config *config,\n\t\t\t\t  struct ref_update_display_info_array
      *display_array)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_stale_heads
      Src: /src/git/builtin/fetch.c:1452,1
    - Dst: string_list_append
      Src: /src/git/builtin/fetch.c:1457,1
    - Dst: ref_transaction_delete
      Src: /src/git/builtin/fetch.c:1462,1
    - Dst: refs_delete_refs
      Src: /src/git/builtin/fetch.c:1468,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fetch.c:1468,1
    - Dst: transport_summary_width
      Src: /src/git/builtin/fetch.c:1475,1
    - Dst: display_ref_update
      Src: /src/git/builtin/fetch.c:1478,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1478,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1479,1
    - Dst: string_list_sort
      Src: /src/git/builtin/fetch.c:1483,1
    - Dst: refs_warn_dangling_symrefs
      Src: /src/git/builtin/fetch.c:1484,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fetch.c:1484,1
    - Dst: string_list_clear
      Src: /src/git/builtin/fetch.c:1489,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1490,1
    - Dst: free_refs
      Src: /src/git/builtin/fetch.c:1491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - display_state
    - rs
    - transaction
    - ref_map
    argTypes:
    - struct display_state*
    - struct refspec*
    - struct ref_transaction*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1446
    functionDepth: 8
    functionLinenumber: 1446
    functionLinenumberEnd: 1493
    functionName: prune_refs
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_release
    - transport_summary_width
    - string_list_sort
    - refs_warn_dangling_symrefs
    - free_refs
    - get_stale_heads
    - ref_transaction_delete
    - display_ref_update
    - string_list_append
    - _
    - refs_delete_refs
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int prune_refs(struct display_state *display_state,\n\t\t      struct
      refspec *rs,\n\t\t      struct ref_transaction *transaction,\n\t\t      struct
      ref *ref_map)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:1500,1
    - Dst: branch_checked_out
      Src: /src/git/builtin/fetch.c:1501,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:1502,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - ref_map
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1495
    functionDepth: 9
    functionLinenumber: 1495
    functionLinenumberEnd: 1505
    functionName: check_not_current_branch
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - die
    - branch_checked_out
    - starts_with
    - _
    linkageType: ''
    returnType: void
    signature: void check_not_current_branch(struct ref *ref_map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_path_fetch_head
      Src: /src/git/builtin/fetch.c:1509,1
    - Dst: fopen_for_writing
      Src: /src/git/builtin/fetch.c:1510,1
    - Dst: error_errno
      Src: /src/git/builtin/fetch.c:1513,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1513,1
    - Dst: fclose
      Src: /src/git/builtin/fetch.c:1514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1507
    functionDepth: 2
    functionLinenumber: 1507
    functionLinenumberEnd: 1516
    functionName: truncate_fetch_head
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - _
    - fopen_for_writing
    - git_path_fetch_head
    linkageType: ''
    returnType: int
    signature: int truncate_fetch_head(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: transport_set_option
      Src: /src/git/builtin/fetch.c:1520,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:1522,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1522,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:1525,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - transport
    - name
    - value
    argTypes:
    - struct transport*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1518
    functionDepth: 3
    functionLinenumber: 1518
    functionLinenumberEnd: 1527
    functionName: set_option
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 3
    functionsReached:
    - transport_set_option
    - warning
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void set_option(struct transport *transport, const char *name, const
      char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_append
      Src: /src/git/builtin/fetch.c:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1530
    functionDepth: 3
    functionLinenumber: 1530
    functionLinenumberEnd: 1536
    functionName: add_oid
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - oid_array_append
    linkageType: ''
    returnType: int
    signature: int add_oid(const struct reference *ref, void *cb_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/builtin/fetch.c:1542,1
    - Dst: has_glob_specials
      Src: /src/git/builtin/fetch.c:1551,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/fetch.c:1555,1
    - Dst: odb_has_object
      Src: /src/git/builtin/fetch.c:1558,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:1559,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1559,1
    - Dst: oid_array_append
      Src: /src/git/builtin/fetch.c:1561,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/fetch.c:1565,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fetch.c:1565,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:1568,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1568,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - input_list
    - output_list
    - argname
    argTypes:
    - struct string_list*
    - struct oid_array**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1538
    functionDepth: 12
    functionLinenumber: 1538
    functionLinenumberEnd: 1572
    functionName: add_negotiation_tips
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - die
    - has_glob_specials
    - repo_get_oid
    - odb_has_object
    - refs_for_each_ref_ext
    - xcalloc
    - _
    - warning
    - oid_array_append
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void add_negotiation_tips(struct string_list *input_list,\n\t\t\t\t
      struct oid_array **output_list,\n\t\t\t\t const char *argname)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: transport_get
      Src: /src/git/builtin/fetch.c:1579,1
    - Dst: transport_set_verbosity
      Src: /src/git/builtin/fetch.c:1580,1
    - Dst: set_option
      Src: /src/git/builtin/fetch.c:1583,1
    - Dst: set_option
      Src: /src/git/builtin/fetch.c:1585,1
    - Dst: set_option
      Src: /src/git/builtin/fetch.c:1587,1
    - Dst: set_option
      Src: /src/git/builtin/fetch.c:1589,1
    - Dst: set_option
      Src: /src/git/builtin/fetch.c:1591,1
    - Dst: set_option
      Src: /src/git/builtin/fetch.c:1594,1
    - Dst: set_option
      Src: /src/git/builtin/fetch.c:1596,1
    - Dst: set_option
      Src: /src/git/builtin/fetch.c:1598,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/builtin/fetch.c:1601,1
    - Dst: set_option
      Src: /src/git/builtin/fetch.c:1602,1
    - Dst: set_option
      Src: /src/git/builtin/fetch.c:1603,1
    - Dst: add_negotiation_tips
      Src: /src/git/builtin/fetch.c:1607,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:1611,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1611,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/fetch.c:1615,1
    - Dst: string_list_append
      Src: /src/git/builtin/fetch.c:1616,1
    - Dst: add_negotiation_tips
      Src: /src/git/builtin/fetch.c:1618,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:1623,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:1624,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1624,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1626,1
    - Dst: add_negotiation_tips
      Src: /src/git/builtin/fetch.c:1631,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:1635,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1635,1
    - Dst: add_negotiation_tips
      Src: /src/git/builtin/fetch.c:1639,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:1644,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:1645,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1645,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1647,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - remote
    - deepen
    - filter_options
    argTypes:
    - struct remote*
    - int
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1574
    functionDepth: 13
    functionLinenumber: 1574
    functionLinenumberEnd: 1651
    functionName: prepare_transport
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - transport_set_verbosity
    - for_each_string_list_item
    - strbuf_release
    - transport_get
    - strbuf_addf
    - add_negotiation_tips
    - set_option
    - string_list_append
    - _
    - warning
    - expand_list_objects_filter_spec
    linkageType: ''
    returnType: struct transport
    signature: "struct transport *prepare_transport(struct remote *remote, int deepen,\n\t\t\t\t\t
      \  struct list_objects_filter_options *filter_options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_transport
      Src: /src/git/builtin/fetch.c:1674,1
    - Dst: transport_set_option
      Src: /src/git/builtin/fetch.c:1678,1
    - Dst: transport_set_option
      Src: /src/git/builtin/fetch.c:1679,1
    - Dst: transport_set_option
      Src: /src/git/builtin/fetch.c:1680,1
    - Dst: fetch_and_consume_refs
      Src: /src/git/builtin/fetch.c:1681,1
    - Dst: transport_disconnect
      Src: /src/git/builtin/fetch.c:1685,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 8
    argNames:
    - display_state
    - transport
    - transaction
    - ref_map
    - fetch_head
    - config
    - display_array
    - filter_options
    argTypes:
    - struct display_state*
    - struct transport*
    - struct ref_transaction*
    - struct ref*
    - struct fetch_head*
    - struct fetch_config*
    - struct ref_update_display_info_array*
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1653
    functionDepth: 20
    functionLinenumber: 1653
    functionLinenumberEnd: 1690
    functionName: backfill_tags
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - transport_set_option
    - transport_disconnect
    - prepare_transport
    - fetch_and_consume_refs
    linkageType: ''
    returnType: int
    signature: "int backfill_tags(struct display_state *display_state,\n\t\t\t struct
      transport *transport,\n\t\t\t struct ref_transaction *transaction,\n\t\t\t struct
      ref *ref_map,\n\t\t\t struct fetch_head *fetch_head,\n\t\t\t const struct fetch_config
      *config,\n\t\t\t struct ref_update_display_info_array *display_array,\n\t\t\t
      struct list_objects_filter_options *filter_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch.c:1693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1695
    functionName: strip_refshead
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: char
    signature: char *strip_refshead(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/fetch.c:1700,1
    - Dst: advise_if_enabled
      Src: /src/git/builtin/fetch.c:1706,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - remote
    - head_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1697
    functionDepth: 8
    functionLinenumber: 1697
    functionLinenumberEnd: 1708
    functionName: set_head_advice_msg
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - N_
    - advise_if_enabled
    - _
    linkageType: ''
    returnType: void
    signature: void set_head_advice_msg(const char *remote, const char *head_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:1715,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch.c:1716,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:1718,1
    - Dst: printf
      Src: /src/git/builtin/fetch.c:1719,1
    - Dst: set_head_advice_msg
      Src: /src/git/builtin/fetch.c:1721,1
    - Dst: printf
      Src: /src/git/builtin/fetch.c:1724,1
    - Dst: set_head_advice_msg
      Src: /src/git/builtin/fetch.c:1727,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1729,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - remote
    - head_name
    - buf_prev
    - updateres
    argTypes:
    - char*
    - char*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1710
    functionDepth: 9
    functionLinenumber: 1710
    functionLinenumberEnd: 1730
    functionName: report_set_head
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - set_head_advice_msg
    - strbuf_addf
    - strcmp
    - skip_prefix
    - printf
    linkageType: ''
    returnType: void
    signature: "void report_set_head(const char *remote, const char *head_name,\n\t\t\tstruct
      strbuf *buf_prev, int updateres)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fetch.c:1749,1
    - Dst: get_fetch_map
      Src: /src/git/builtin/fetch.c:1751,1
    - Dst: guess_remote_head
      Src: /src/git/builtin/fetch.c:1752,1
    - Dst: find_ref_by_name
      Src: /src/git/builtin/fetch.c:1752,1
    - Dst: string_list_append
      Src: /src/git/builtin/fetch.c:1755,1
    - Dst: strip_refshead
      Src: /src/git/builtin/fetch.c:1755,1
    - Dst: xstrdup
      Src: /src/git/builtin/fetch.c:1763,1
    - Dst: is_bare_repository
      Src: /src/git/builtin/fetch.c:1767,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fetch.c:1770,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:1771,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:1773,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:1774,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/fetch.c:1777,1
    - Dst: refs_update_symref_extended
      Src: /src/git/builtin/fetch.c:1781,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:1789,1
    - Dst: report_set_head
      Src: /src/git/builtin/fetch.c:1790,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:1793,1
    - Dst: free_refs
      Src: /src/git/builtin/fetch.c:1794,1
    - Dst: free_refs
      Src: /src/git/builtin/fetch.c:1795,1
    - Dst: string_list_clear
      Src: /src/git/builtin/fetch.c:1796,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1797,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1798,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:1799,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - remote_refs
    - remote
    argTypes:
    - struct ref*
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1732
    functionDepth: 11
    functionLinenumber: 1732
    functionLinenumberEnd: 1801
    functionName: set_head
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 3
    functionsReached:
    - guess_remote_head
    - refs_update_symref_extended
    - string_list_clear
    - is_bare_repository
    - strbuf_release
    - strbuf_addf
    - free_refs
    - strip_refshead
    - strcmp
    - string_list_append
    - strbuf_addstr
    - free
    - refs_ref_exists
    - get_fetch_map
    - find_ref_by_name
    - report_set_head
    - xstrdup
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int set_head(const struct ref *remote_refs, struct remote *remote)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/fetch.c:1824,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1824,1
    - Dst: error
      Src: /src/git/builtin/fetch.c:1837,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1837,1
    - Dst: error
      Src: /src/git/builtin/fetch.c:1843,1
    - Dst: error
      Src: /src/git/builtin/fetch.c:1845,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:1845,1
    - Dst: ref_transaction_error_msg
      Src: /src/git/builtin/fetch.c:1846,1
    - Dst: strmap_put
      Src: /src/git/builtin/fetch.c:1849,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 8
    argNames:
    - refname
    - old_oid
    - new_oid
    - old_target
    - new_target
    - err
    - details
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - char*
    - enum ref_transaction_error
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1811
    functionDepth: 3
    functionLinenumber: 1811
    functionLinenumberEnd: 1851
    functionName: ref_transaction_rejection_handler
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - error
    - ref_transaction_error_msg
    - strmap_put
    - _
    linkageType: ''
    returnType: void
    signature: "void ref_transaction_rejection_handler(const char *refname,\n\t\t\t\t\t
      \     const struct object_id *old_oid UNUSED,\n\t\t\t\t\t      const struct
      object_id *new_oid UNUSED,\n\t\t\t\t\t      const char *old_target UNUSED,\n\t\t\t\t\t
      \     const char *new_target UNUSED,\n\t\t\t\t\t      enum ref_transaction_error
      err,\n\t\t\t\t\t      const char *details,\n\t\t\t\t\t      void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/fetch.c:1862,1
    - Dst: ref_transaction_for_each_rejected_update
      Src: /src/git/builtin/fetch.c:1874,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/fetch.c:1880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - transaction
    - is_atomic
    - remote_name
    - rejected_refs
    - err
    argTypes:
    - struct ref_transaction**
    - bool
    - char*
    - struct strmap*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1857
    functionDepth: 4
    functionLinenumber: 1857
    functionLinenumberEnd: 1883
    functionName: commit_ref_transaction
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - ref_transaction_for_each_rejected_update
    - ref_transaction_free
    linkageType: ''
    returnType: int
    signature: "int commit_ref_transaction(struct ref_transaction **transaction,\n\t\t\t\t
      \ bool is_atomic, const char *remote_name,\n\t\t\t\t  struct strmap *rejected_refs,\n\t\t\t\t
      \ struct strbuf *err)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: truncate_fetch_head
      Src: /src/git/builtin/fetch.c:1914,1
    - Dst: refspec_ref_prefixes
      Src: /src/git/builtin/fetch.c:1920,1
    - Dst: branch_get
      Src: /src/git/builtin/fetch.c:1922,1
    - Dst: refspec_ref_prefixes
      Src: /src/git/builtin/fetch.c:1925,1
    - Dst: branch_has_merge_config
      Src: /src/git/builtin/fetch.c:1930,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:1931,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:1934,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:1944,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:1949,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:1953,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/fetch.c:1961,1
    - Dst: transport_get_remote_refs
      Src: /src/git/builtin/fetch.c:1962,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fetch.c:1964,1
    - Dst: transport_ls_refs_options_release
      Src: /src/git/builtin/fetch.c:1968,1
    - Dst: get_ref_map
      Src: /src/git/builtin/fetch.c:1970,1
    - Dst: check_not_current_branch
      Src: /src/git/builtin/fetch.c:1973,1
    - Dst: open_fetch_head
      Src: /src/git/builtin/fetch.c:1975,1
    - Dst: display_state_init
      Src: /src/git/builtin/fetch.c:1979,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/fetch.c:1983,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fetch.c:1983,1
    - Dst: transport_set_option
      Src: /src/git/builtin/fetch.c:1992,1
    - Dst: prune_refs
      Src: /src/git/builtin/fetch.c:2000,1
    - Dst: prune_refs
      Src: /src/git/builtin/fetch.c:2002,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/fetch.c:2019,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fetch.c:2019,1
    - Dst: fetch_and_consume_refs
      Src: /src/git/builtin/fetch.c:2027,1
    - Dst: find_non_local_tags
      Src: /src/git/builtin/fetch.c:2040,1
    - Dst: backfill_tags
      Src: /src/git/builtin/fetch.c:2050,1
    - Dst: free_refs
      Src: /src/git/builtin/fetch.c:2055,1
    - Dst: transport_summary_width
      Src: /src/git/builtin/fetch.c:2062,1
    - Dst: commit_ref_transaction
      Src: /src/git/builtin/fetch.c:2064,1
    - Dst: commit_fetch_head
      Src: /src/git/builtin/fetch.c:2074,1
    - Dst: branch_get
      Src: /src/git/builtin/fetch.c:2077,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:2094,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2094,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch.c:2104,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:2106,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2106,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:2112,1
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:2113,1
    - Dst: install_branch_config
      Src: /src/git/builtin/fetch.c:2114,1
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:2118,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:2119,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2119,1
    - Dst: starts_with
      Src: /src/git/builtin/fetch.c:2120,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:2121,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2121,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:2123,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2123,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:2125,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2125,1
    - Dst: set_head
      Src: /src/git/builtin/fetch.c:2134,1
    - Dst: commit_ref_transaction
      Src: /src/git/builtin/fetch.c:2143,1
    - Dst: strmap_contains
      Src: /src/git/builtin/fetch.c:2150,1
    - Dst: ref_update_display_info_set_failed
      Src: /src/git/builtin/fetch.c:2151,1
    - Dst: ref_update_display_info_display
      Src: /src/git/builtin/fetch.c:2152,1
    - Dst: ref_update_display_info_free
      Src: /src/git/builtin/fetch.c:2153,1
    - Dst: error
      Src: /src/git/builtin/fetch.c:2158,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fetch.c:2159,1
    - Dst: ref_transaction_abort
      Src: /src/git/builtin/fetch.c:2161,1
    - Dst: error
      Src: /src/git/builtin/fetch.c:2163,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/fetch.c:2168,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:2170,1
    - Dst: strmap_clear
      Src: /src/git/builtin/fetch.c:2171,1
    - Dst: display_state_release
      Src: /src/git/builtin/fetch.c:2172,1
    - Dst: close_fetch_head
      Src: /src/git/builtin/fetch.c:2173,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:2174,1
    - Dst: free_refs
      Src: /src/git/builtin/fetch.c:2175,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 159
    argCount: 4
    argNames:
    - transport
    - rs
    - config
    - filter_options
    argTypes:
    - struct transport*
    - struct refspec*
    - struct fetch_config*
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 1885
    functionDepth: 21
    functionLinenumber: 1885
    functionLinenumberEnd: 2177
    functionName: do_fetch
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - transport_get_remote_refs
    - check_not_current_branch
    - trace2_region_enter
    - truncate_fetch_head
    - commit_ref_transaction
    - get_ref_map
    - strcmp
    - free
    - commit_fetch_head
    - ref_store_transaction_begin
    - install_branch_config
    - get_main_ref_store
    - error
    - strbuf_release
    - ref_transaction_abort
    - branch_get
    - display_state_release
    - fetch_and_consume_refs
    - prune_refs
    - ref_transaction_free
    - branch_has_merge_config
    - open_fetch_head
    - ref_update_display_info_free
    - backfill_tags
    - strmap_contains
    - ref_update_display_info_set_failed
    - ref_update_display_info_display
    - strmap_clear
    - set_head
    - refspec_ref_prefixes
    - _
    - find_non_local_tags
    - warning
    - skip_prefix
    - close_fetch_head
    - transport_set_option
    - transport_summary_width
    - trace2_region_leave
    - strbuf_reset
    - transport_ls_refs_options_release
    - free_refs
    - starts_with
    - display_state_init
    linkageType: ''
    returnType: int
    signature: "int do_fetch(struct transport *transport,\n\t\t    struct refspec
      *rs,\n\t\t    const struct fetch_config *config,\n\t\t    struct list_objects_filter_options
      *filter_options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/builtin/fetch.c:2183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - remote
    - priv
    argTypes:
    - struct remote*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2179
    functionDepth: 0
    functionLinenumber: 2179
    functionLinenumberEnd: 2185
    functionName: get_one_remote_for_fetch
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int get_one_remote_for_fetch(struct remote *remote, void *priv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch.c:2198,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:2198,1
    - Dst: strcspn
      Src: /src/git/builtin/fetch.c:2201,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/fetch.c:2204,1
    - Dst: xstrndup
      Src: /src/git/builtin/fetch.c:2205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - priv
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2192
    functionDepth: 11
    functionLinenumber: 2192
    functionLinenumberEnd: 2211
    functionName: get_remote_group
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - string_list_append_nodup
    - xstrndup
    - strcmp
    - strcspn
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int get_remote_group(const char *key, const char *value,\n\t\t\t    const
      struct config_context *ctx UNUSED,\n\t\t\t    void *priv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/builtin/fetch.c:2219,1
    - Dst: remote_get
      Src: /src/git/builtin/fetch.c:2221,1
    - Dst: remote_is_configured
      Src: /src/git/builtin/fetch.c:2222,1
    - Dst: string_list_append
      Src: /src/git/builtin/fetch.c:2224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - list
    argTypes:
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2213
    functionDepth: 19
    functionLinenumber: 2213
    functionLinenumberEnd: 2227
    functionName: add_remote_or_group
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - remote_is_configured
    - string_list_append
    - repo_config
    - remote_get
    linkageType: ''
    returnType: int
    signature: int add_remote_or_group(const char *name, struct string_list *list)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2233,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2235,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2237,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2239,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2241,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2243,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2245,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2247,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2249,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2251,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2253,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2255,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2257,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2259,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2261,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2263,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2265,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/fetch.c:2267,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 2
    argNames:
    - argv
    - config
    argTypes:
    - struct strvec*
    - struct fetch_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2229
    functionDepth: 4
    functionLinenumber: 2229
    functionLinenumberEnd: 2268
    functionName: add_options_to_argv
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: "void add_options_to_argv(struct strvec *argv,\n\t\t\t\tconst struct
      fetch_config *config)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushv
      Src: /src/git/builtin/fetch.c:2292,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2293,1
    - Dst: printf
      Src: /src/git/builtin/fetch.c:2297,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - cp
    - UNUSED
    - cb
    - task_cb
    argTypes:
    - struct child_process*
    - struct strbuf*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2279
    functionDepth: 4
    functionLinenumber: 2279
    functionLinenumberEnd: 2300
    functionName: fetch_next_remote
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strvec_pushv
    - strvec_push
    - printf
    - _
    linkageType: ''
    returnType: int
    signature: "int fetch_next_remote(struct child_process *cp,\n\t\t\t     struct
      strbuf *out UNUSED,\n\t\t\t     void *cb, void **task_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/fetch.c:2308,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - UNUSED
    - cb
    - task_cb
    argTypes:
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2302
    functionDepth: 0
    functionLinenumber: 2302
    functionLinenumberEnd: 2311
    functionName: fetch_failed_to_start
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - error
    - _
    linkageType: ''
    returnType: int
    signature: "int fetch_failed_to_start(struct strbuf *out UNUSED,\n\t\t\t\t void
      *cb, void *task_cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:2320,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - result
    - out
    - cb
    - task_cb
    argTypes:
    - int
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2313
    functionDepth: 2
    functionLinenumber: 2313
    functionLinenumberEnd: 2326
    functionName: fetch_finished
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - _
    linkageType: ''
    returnType: int
    signature: "int fetch_finished(int result, struct strbuf *out,\n\t\t\t  void *cb,
      void *task_cb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: truncate_fetch_head
      Src: /src/git/builtin/fetch.c:2335,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/fetch.c:2344,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/fetch.c:2348,1
    - Dst: add_options_to_argv
      Src: /src/git/builtin/fetch.c:2349,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2365,1
    - Dst: run_processes_parallel
      Src: /src/git/builtin/fetch.c:2367,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/fetch.c:2374,1
    - Dst: strvec_push
      Src: /src/git/builtin/fetch.c:2375,1
    - Dst: printf
      Src: /src/git/builtin/fetch.c:2377,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2377,1
    - Dst: run_command
      Src: /src/git/builtin/fetch.c:2379,1
    - Dst: error
      Src: /src/git/builtin/fetch.c:2380,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2380,1
    - Dst: strvec_clear
      Src: /src/git/builtin/fetch.c:2385,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - list
    - max_children
    - config
    argTypes:
    - struct string_list*
    - int
    - struct fetch_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2328
    functionDepth: 9
    functionLinenumber: 2328
    functionLinenumberEnd: 2387
    functionName: fetch_multiple
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - printf
    - add_options_to_argv
    - run_processes_parallel
    - strvec_pushv
    - run_command
    - strvec_pushl
    - truncate_fetch_head
    - strvec_clear
    - _
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int fetch_multiple(struct string_list *list, int max_children,\n\t\t\t
      \ const struct fetch_config *config)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_has_promisor_remote
      Src: /src/git/builtin/fetch.c:2407,1
    - Dst: partial_clone_register
      Src: /src/git/builtin/fetch.c:2417,1
    - Dst: partial_clone_get_default_filter_spec
      Src: /src/git/builtin/fetch.c:2427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - remote
    - filter_options
    argTypes:
    - struct remote*
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2393
    functionDepth: 10
    functionLinenumber: 2393
    functionLinenumberEnd: 2429
    functionName: fetch_one_setup_partial
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - partial_clone_get_default_filter_spec
    - partial_clone_register
    - repo_has_promisor_remote
    linkageType: ''
    returnType: void
    signature: "void fetch_one_setup_partial(struct remote *remote,\n\t\t\t\t\t   struct
      list_objects_filter_options *filter_options)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: remote_is_configured
      Src: /src/git/builtin/fetch.c:2440,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2443,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2443,1
    - Dst: prepare_transport
      Src: /src/git/builtin/fetch.c:2446,1
    - Dst: refspec_append
      Src: /src/git/builtin/fetch.c:2470,1
    - Dst: refspec_append
      Src: /src/git/builtin/fetch.c:2473,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch.c:2476,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2479,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2479,1
    - Dst: refspec_appendf
      Src: /src/git/builtin/fetch.c:2481,1
    - Dst: refspec_append
      Src: /src/git/builtin/fetch.c:2484,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/fetch.c:2490,1
    - Dst: refspec_append
      Src: /src/git/builtin/fetch.c:2491,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch.c:2492,1
    - Dst: sigchain_push_common
      Src: /src/git/builtin/fetch.c:2498,1
    - Dst: atexit
      Src: /src/git/builtin/fetch.c:2499,1
    - Dst: sigchain_push
      Src: /src/git/builtin/fetch.c:2500,1
    - Dst: do_fetch
      Src: /src/git/builtin/fetch.c:2501,1
    - Dst: sigchain_pop
      Src: /src/git/builtin/fetch.c:2502,1
    - Dst: refspec_clear
      Src: /src/git/builtin/fetch.c:2503,1
    - Dst: transport_disconnect
      Src: /src/git/builtin/fetch.c:2504,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 7
    argNames:
    - remote
    - argc
    - argv
    - prune_tags_ok
    - use_stdin_refspecs
    - config
    - filter_options
    argTypes:
    - struct remote*
    - int
    - char**
    - int
    - int
    - struct fetch_config*
    - struct list_objects_filter_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2431
    functionDepth: 22
    functionLinenumber: 2431
    functionLinenumberEnd: 2507
    functionName: fetch_one
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - remote_is_configured
    - sigchain_push_common
    - strbuf_release
    - strbuf_getline_lf
    - die
    - refspec_append
    - atexit
    - do_fetch
    - sigchain_push
    - transport_disconnect
    - sigchain_pop
    - prepare_transport
    - strcmp
    - _
    - refspec_appendf
    - refspec_clear
    linkageType: ''
    returnType: int
    signature: "int fetch_one(struct remote *remote, int argc, const char **argv,\n\t\t
      \    int prune_tags_ok, int use_stdin_refspecs,\n\t\t     const struct fetch_config
      *config,\n\t\t     struct list_objects_filter_options *filter_options)"
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSITY
      Src: /src/git/builtin/fetch.c:2543,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2544,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2545,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2546,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2547,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2548,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2549,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2550,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2551,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/fetch.c:2552,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2552,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2553,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/fetch.c:2554,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2554,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2555,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2556,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/fetch.c:2557,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2558,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/fetch.c:2559,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2560,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/fetch.c:2561,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2562,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2563,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2564,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2565,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2566,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2567,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2568,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/fetch.c:2569,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2569,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2570,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2572,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2573,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2574,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2574,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2575,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2576,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2577,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2577,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2578,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2579,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2580,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2580,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/fetch.c:2581,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2581,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2582,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/fetch.c:2583,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2583,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2584,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/fetch.c:2585,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2585,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2586,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/fetch.c:2587,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2588,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/fetch.c:2589,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2590,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/fetch.c:2592,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2593,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2599,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2600,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/fetch.c:2603,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2604,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2605,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2608,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2609,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/fetch.c:2610,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2610,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2611,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/fetch.c:2612,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2612,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2612,1
    - Dst: OPT_IPVERSION
      Src: /src/git/builtin/fetch.c:2613,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/fetch.c:2614,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2614,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2615,1
    - Dst: OPT_ALIAS
      Src: /src/git/builtin/fetch.c:2616,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/fetch.c:2617,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2617,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2618,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2619,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2620,1
    - Dst: OPT_PARSE_LIST_OBJECTS_FILTER
      Src: /src/git/builtin/fetch.c:2621,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2622,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2623,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2624,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2625,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2626,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2627,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2628,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2629,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fetch.c:2630,1
    - Dst: N_
      Src: /src/git/builtin/fetch.c:2631,1
    - Dst: OPT_END
      Src: /src/git/builtin/fetch.c:2632,1
    - Dst: packet_trace_identity
      Src: /src/git/builtin/fetch.c:2637,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fetch.c:2640,1
    - Dst: transport_anonymize_url
      Src: /src/git/builtin/fetch.c:2643,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fetch.c:2645,1
    - Dst: free
      Src: /src/git/builtin/fetch.c:2646,1
    - Dst: repo_config
      Src: /src/git/builtin/fetch.c:2649,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/fetch.c:2651,1
    - Dst: parse_options
      Src: /src/git/builtin/fetch.c:2655,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2674,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2674,1
    - Dst: fetch_config_from_gitmodules
      Src: /src/git/builtin/fetch.c:2685,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2701,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2701,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2710,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2710,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2712,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2712,1
    - Dst: xstrfmt
      Src: /src/git/builtin/fetch.c:2713,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2717,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2717,1
    - Dst: is_repository_shallow
      Src: /src/git/builtin/fetch.c:2718,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2719,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2719,1
    - Dst: xstrfmt
      Src: /src/git/builtin/fetch.c:2721,1
    - Dst: atoi
      Src: /src/git/builtin/fetch.c:2725,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2726,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2726,1
    - Dst: online_cpus
      Src: /src/git/builtin/fetch.c:2735,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/fetch.c:2737,1
    - Dst: fetch_bundle_uri
      Src: /src/git/builtin/fetch.c:2738,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:2739,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2739,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2751,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2751,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2753,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2753,1
    - Dst: for_each_remote
      Src: /src/git/builtin/fetch.c:2755,1
    - Dst: remote_get
      Src: /src/git/builtin/fetch.c:2759,1
    - Dst: remote_get
      Src: /src/git/builtin/fetch.c:2762,1
    - Dst: add_remote_or_group
      Src: /src/git/builtin/fetch.c:2766,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2767,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2767,1
    - Dst: add_remote_or_group
      Src: /src/git/builtin/fetch.c:2771,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2775,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2775,1
    - Dst: remote_get
      Src: /src/git/builtin/fetch.c:2778,1
    - Dst: string_list_remove_duplicates
      Src: /src/git/builtin/fetch.c:2784,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/fetch.c:2791,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2793,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2793,1
    - Dst: prepare_transport
      Src: /src/git/builtin/fetch.c:2794,1
    - Dst: warning
      Src: /src/git/builtin/fetch.c:2797,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2797,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fetch.c:2799,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2803,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2803,1
    - Dst: transport_fetch_refs
      Src: /src/git/builtin/fetch.c:2810,1
    - Dst: oidset_iter_init
      Src: /src/git/builtin/fetch.c:2813,1
    - Dst: oidset_iter_next
      Src: /src/git/builtin/fetch.c:2814,1
    - Dst: printf
      Src: /src/git/builtin/fetch.c:2815,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fetch.c:2815,1
    - Dst: oidset_clear
      Src: /src/git/builtin/fetch.c:2816,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fetch.c:2817,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/builtin/fetch.c:2819,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/fetch.c:2820,1
    - Dst: fetch_one_setup_partial
      Src: /src/git/builtin/fetch.c:2821,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fetch.c:2822,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/fetch.c:2824,1
    - Dst: fetch_one
      Src: /src/git/builtin/fetch.c:2825,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fetch.c:2827,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2832,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2832,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2836,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2836,1
    - Dst: die
      Src: /src/git/builtin/fetch.c:2840,1
    - Dst: _
      Src: /src/git/builtin/fetch.c:2840,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/fetch.c:2847,1
    - Dst: fetch_multiple
      Src: /src/git/builtin/fetch.c:2848,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fetch.c:2849,1
    - Dst: add_options_to_argv
      Src: /src/git/builtin/fetch.c:2870,1
    - Dst: trace2_region_enter_printf
      Src: /src/git/builtin/fetch.c:2871,1
    - Dst: fetch_submodules
      Src: /src/git/builtin/fetch.c:2872,1
    - Dst: trace2_region_leave_printf
      Src: /src/git/builtin/fetch.c:2879,1
    - Dst: strvec_clear
      Src: /src/git/builtin/fetch.c:2880,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/fetch.c:2894,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/fetch.c:2903,1
    - Dst: write_commit_graph_reachable
      Src: /src/git/builtin/fetch.c:2904,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fetch.c:2907,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/fetch.c:2917,1
    - Dst: git_config_push_parameter
      Src: /src/git/builtin/fetch.c:2920,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/fetch.c:2922,1
    - Dst: git_config_push_parameter
      Src: /src/git/builtin/fetch.c:2925,1
    - Dst: run_auto_maintenance
      Src: /src/git/builtin/fetch.c:2927,1
    - Dst: string_list_clear
      Src: /src/git/builtin/fetch.c:2931,1
    - Dst: list_objects_filter_release
      Src: /src/git/builtin/fetch.c:2932,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 183
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2509
    functionDepth: 23
    functionLinenumber: 2509
    functionLinenumberEnd: 2934
    functionName: cmd_fetch
    functionSourceFile: /src/git/builtin/fetch.c
    functionUses: 0
    functionsReached:
    - OPT_PARSE_LIST_OBJECTS_FILTER
    - parse_options
    - string_list_remove_duplicates
    - fetch_multiple
    - add_options_to_argv
    - OPT_BOOL
    - packet_trace_identity
    - strbuf_addf
    - remote_get
    - trace2_region_enter
    - oidset_clear
    - fetch_one_setup_partial
    - free
    - run_auto_maintenance
    - repo_config
    - printf
    - fetch_config_from_gitmodules
    - oidset_iter_init
    - OPT_ALIAS
    - list_objects_filter_release
    - transport_anonymize_url
    - OPT_END
    - die
    - OPT__FORCE
    - online_cpus
    - repo_config_get_string_tmp
    - repo_has_promisor_remote
    - prepare_transport
    - OPT_IPVERSION
    - strbuf_addstr
    - transport_fetch_refs
    - OPT_STRING_LIST
    - add_remote_or_group
    - OPT_INTEGER
    - string_list_clear
    - oid_to_hex
    - atoi
    - OPT_SET_INT
    - for_each_remote
    - OPT_SET_INT_F
    - is_repository_shallow
    - trace2_region_enter_printf
    - fetch_submodules
    - _
    - N_
    - warning
    - repo_config_get_int
    - trace2_region_leave_printf
    - xstrfmt
    - fetch_bundle_uri
    - OPT_CALLBACK_F
    - OPT_STRING
    - trace2_region_leave
    - prepare_repo_settings
    - fetch_one
    - write_commit_graph_reachable
    - strvec_clear
    - oidset_iter_next
    - OPT__VERBOSITY
    - git_config_push_parameter
    linkageType: ''
    returnType: int
    signature: "int cmd_fetch(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: connection_closed
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int connection_closed(int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: connection_fatally_broken
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int connection_fatally_broken(int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: connection_closed
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int connection_closed(int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: connection_fatally_broken
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int connection_fatally_broken(int error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unix_stream_connect
      Src: /src/git/builtin/credential-cache.c:46,1
    - Dst: write_in_full
      Src: /src/git/builtin/credential-cache.c:51,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache.c:52,1
    - Dst: shutdown
      Src: /src/git/builtin/credential-cache.c:53,1
    - Dst: read_in_full
      Src: /src/git/builtin/credential-cache.c:59,1
    - Dst: connection_closed
      Src: /src/git/builtin/credential-cache.c:60,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache.c:63,1
    - Dst: write_or_die
      Src: /src/git/builtin/credential-cache.c:64,1
    - Dst: close
      Src: /src/git/builtin/credential-cache.c:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - socket
    - out
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 69
    functionName: send_request
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 2
    functionsReached:
    - write_or_die
    - shutdown
    - die_errno
    - read_in_full
    - close
    - unix_stream_connect
    - connection_closed
    - write_in_full
    linkageType: ''
    returnType: int
    signature: int send_request(const char *socket, const struct strbuf *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/credential-cache.c:77,1
    - Dst: start_command
      Src: /src/git/builtin/credential-cache.c:84,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache.c:85,1
    - Dst: read_in_full
      Src: /src/git/builtin/credential-cache.c:86,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache.c:88,1
    - Dst: memcmp
      Src: /src/git/builtin/credential-cache.c:89,1
    - Dst: die
      Src: /src/git/builtin/credential-cache.c:90,1
    - Dst: child_process_clear
      Src: /src/git/builtin/credential-cache.c:92,1
    - Dst: close
      Src: /src/git/builtin/credential-cache.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - socket
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 71
    functionDepth: 7
    functionLinenumber: 71
    functionLinenumberEnd: 94
    functionName: spawn_daemon
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 1
    functionsReached:
    - die
    - strvec_pushl
    - die_errno
    - child_process_clear
    - read_in_full
    - close
    - start_command
    - memcmp
    linkageType: ''
    returnType: void
    signature: void spawn_daemon(const char *socket)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/credential-cache.c:101,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/credential-cache.c:102,1
    - Dst: strbuf_read
      Src: /src/git/builtin/credential-cache.c:104,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache.c:105,1
    - Dst: send_request
      Src: /src/git/builtin/credential-cache.c:108,1
    - Dst: connection_fatally_broken
      Src: /src/git/builtin/credential-cache.c:109,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache.c:110,1
    - Dst: spawn_daemon
      Src: /src/git/builtin/credential-cache.c:112,1
    - Dst: send_request
      Src: /src/git/builtin/credential-cache.c:113,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-cache.c:114,1
    - Dst: strbuf_release
      Src: /src/git/builtin/credential-cache.c:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - socket
    - action
    - timeout
    - flags
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: do_cache
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_read
    - spawn_daemon
    - die_errno
    - strbuf_addf
    - send_request
    - connection_fatally_broken
    linkageType: ''
    returnType: void
    signature: "void do_cache(const char *socket, const char *action, int timeout,\n\t\t
      \    int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: interpolate_path
      Src: /src/git/builtin/credential-cache.c:124,1
    - Dst: stat
      Src: /src/git/builtin/credential-cache.c:125,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/credential-cache.c:125,1
    - Dst: xstrfmt
      Src: /src/git/builtin/credential-cache.c:126,1
    - Dst: xdg_cache_home
      Src: /src/git/builtin/credential-cache.c:128,1
    - Dst: free
      Src: /src/git/builtin/credential-cache.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 7
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: get_socket_path
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 0
    functionsReached:
    - interpolate_path
    - S_ISDIR
    - xstrfmt
    - stat
    - xdg_cache_home
    - free
    linkageType: ''
    returnType: char
    signature: char *get_socket_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: credential_announce_capabilities
      Src: /src/git/builtin/credential-cache.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: announce_capabilities
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 1
    functionsReached:
    - credential_announce_capabilities
    linkageType: ''
    returnType: void
    signature: void announce_capabilities(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/credential-cache.c:154,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/credential-cache.c:156,1
    - Dst: OPT_END
      Src: /src/git/builtin/credential-cache.c:158,1
    - Dst: parse_options
      Src: /src/git/builtin/credential-cache.c:161,1
    - Dst: usage_with_options
      Src: /src/git/builtin/credential-cache.c:163,1
    - Dst: have_unix_sockets
      Src: /src/git/builtin/credential-cache.c:166,1
    - Dst: die
      Src: /src/git/builtin/credential-cache.c:167,1
    - Dst: _
      Src: /src/git/builtin/credential-cache.c:167,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/credential-cache.c:169,1
    - Dst: get_socket_path
      Src: /src/git/builtin/credential-cache.c:171,1
    - Dst: die
      Src: /src/git/builtin/credential-cache.c:173,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-cache.c:175,1
    - Dst: do_cache
      Src: /src/git/builtin/credential-cache.c:176,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-cache.c:177,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-cache.c:177,1
    - Dst: do_cache
      Src: /src/git/builtin/credential-cache.c:178,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-cache.c:179,1
    - Dst: do_cache
      Src: /src/git/builtin/credential-cache.c:180,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-cache.c:181,1
    - Dst: announce_capabilities
      Src: /src/git/builtin/credential-cache.c:182,1
    - Dst: free
      Src: /src/git/builtin/credential-cache.c:186,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 140
    functionDepth: 13
    functionLinenumber: 140
    functionLinenumberEnd: 188
    functionName: cmd_credential_cache
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - xstrdup_or_null
    - announce_capabilities
    - OPT_STRING
    - free
    - OPT_INTEGER
    - strcmp
    - _
    - get_socket_path
    - do_cache
    - have_unix_sockets
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_credential_cache(int argc,\n\t\t\t const char **argv,\n\t\t\t
      const char *prefix,\n\t\t\t struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/credential-cache.c:201,1
    - Dst: parse_options
      Src: /src/git/builtin/credential-cache.c:203,1
    - Dst: die
      Src: /src/git/builtin/credential-cache.c:204,1
    - Dst: _
      Src: /src/git/builtin/credential-cache.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 192
    functionDepth: 13
    functionLinenumber: 192
    functionLinenumberEnd: 205
    functionName: cmd_credential_cache
    functionSourceFile: /src/git/builtin/credential-cache.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - _
    linkageType: ''
    returnType: int
    signature: "int cmd_credential_cache(int argc, const char **argv, const char *prefix,\n\t\t\t
      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/builtin/am.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: linelen
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 8
    functionsReached:
    - strchrnul
    linkageType: ''
    returnType: int
    signature: int linelen(const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/builtin/am.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: str_isspace
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int str_isspace(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/am.c:159,1
    - Dst: repo_git_path
      Src: /src/git/builtin/am.c:161,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/am.c:165,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/am.c:169,1
    - Dst: strvec_init
      Src: /src/git/builtin/am.c:174,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/am.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 155
    functionDepth: 19
    functionLinenumber: 155
    functionLinenumberEnd: 178
    functionName: am_state_init
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - repo_config_get_bool
    - memset
    - repo_git_path
    - strvec_init
    linkageType: ''
    returnType: void
    signature: void am_state_init(struct am_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/am.c:185,1
    - Dst: free
      Src: /src/git/builtin/am.c:186,1
    - Dst: free
      Src: /src/git/builtin/am.c:187,1
    - Dst: free
      Src: /src/git/builtin/am.c:188,1
    - Dst: free
      Src: /src/git/builtin/am.c:189,1
    - Dst: strvec_clear
      Src: /src/git/builtin/am.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: am_state_release
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strvec_clear
    - free
    linkageType: ''
    returnType: void
    signature: void am_state_release(struct am_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/am.c:196,1
    - Dst: mailinfo_parse_quoted_cr_action
      Src: /src/git/builtin/am.c:198,1
    - Dst: error
      Src: /src/git/builtin/am.c:199,1
    - Dst: _
      Src: /src/git/builtin/am.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: am_option_parse_quoted_cr
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - error
    - mailinfo_parse_quoted_cr_action
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: "int am_option_parse_quoted_cr(const struct option *opt,\n\t\t\t\t
      \    const char *arg, int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/am.c:208,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:210,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:212,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:214,1
    - Dst: error
      Src: /src/git/builtin/am.c:217,1
    - Dst: _
      Src: /src/git/builtin/am.c:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 220
    functionName: am_option_parse_empty
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int am_option_parse_empty(const struct option *opt,\n\t\t\t\t     const
      char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mkpath
      Src: /src/git/builtin/am.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - path
    argTypes:
    - struct am_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: am_path
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - mkpath
    linkageType: ''
    returnType: char
    signature: char *am_path(const struct am_state *state, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_file
      Src: /src/git/builtin/am.c:236,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - name
    - string
    argTypes:
    - struct am_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 6
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: write_state_text
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - am_path
    - write_file
    linkageType: ''
    returnType: void
    signature: "void write_state_text(const struct am_state *state,\n\t\t\t     const
      char *name, const char *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_file
      Src: /src/git/builtin/am.c:242,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - name
    - value
    argTypes:
    - struct am_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 6
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: write_state_count
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - am_path
    - write_file
    linkageType: ''
    returnType: void
    signature: "void write_state_count(const struct am_state *state,\n\t\t\t      const
      char *name, int value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - name
    - value
    argTypes:
    - struct am_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 7
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: write_state_bool
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - write_state_text
    linkageType: ''
    returnType: void
    signature: "void write_state_bool(const struct am_state *state,\n\t\t\t     const
      char *name, int value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/builtin/am.c:255,1
    - Dst: va_start
      Src: /src/git/builtin/am.c:260,1
    - Dst: vfprintf
      Src: /src/git/builtin/am.c:262,1
    - Dst: putc
      Src: /src/git/builtin/am.c:263,1
    - Dst: va_end
      Src: /src/git/builtin/am.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - fp
    - fmt
    argTypes:
    - struct am_state*
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 266
    functionName: say
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 4
    functionsReached:
    - putc
    - vfprintf
    - va_end
    - va_start
    - format
    linkageType: ''
    returnType: void
    signature: void say(const struct am_state *state, FILE *fp, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/builtin/am.c:275,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/am.c:275,1
    - Dst: lstat
      Src: /src/git/builtin/am.c:277,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:277,1
    - Dst: S_ISREG
      Src: /src/git/builtin/am.c:277,1
    - Dst: lstat
      Src: /src/git/builtin/am.c:279,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:279,1
    - Dst: S_ISREG
      Src: /src/git/builtin/am.c:279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: am_in_progress
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 1
    functionsReached:
    - am_path
    - S_ISDIR
    - lstat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int am_in_progress(const struct am_state *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/am.c:292,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/am.c:294,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:294,1
    - Dst: strbuf_trim
      Src: /src/git/builtin/am.c:296,1
    - Dst: die_errno
      Src: /src/git/builtin/am.c:304,1
    - Dst: _
      Src: /src/git/builtin/am.c:304,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - sb
    - state
    - file
    - trim
    argTypes:
    - struct strbuf*
    - struct am_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 289
    functionDepth: 5
    functionLinenumber: 289
    functionLinenumberEnd: 305
    functionName: read_state_file
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_read_file
    - am_path
    - die_errno
    - strbuf_trim
    - _
    linkageType: ''
    returnType: int
    signature: "int read_state_file(struct strbuf *sb, const struct am_state *state,\n\t\t\tconst
      char *file, int trim)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: am_path
      Src: /src/git/builtin/am.c:325,1
    - Dst: assert
      Src: /src/git/builtin/am.c:327,1
    - Dst: assert
      Src: /src/git/builtin/am.c:328,1
    - Dst: assert
      Src: /src/git/builtin/am.c:329,1
    - Dst: read_author_script
      Src: /src/git/builtin/am.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts:
    - condition: (!state->author_name)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/git/builtin/am.c
    - condition: (!state->author_email)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/git/builtin/am.c
    - condition: (!state->author_date)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/git/builtin/am.c
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 6
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: read_am_author_script
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - read_author_script
    - am_path
    - assert
    linkageType: ''
    returnType: int
    signature: int read_am_author_script(struct am_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/am.c:343,1
    - Dst: sq_quote_buf
      Src: /src/git/builtin/am.c:344,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/am.c:345,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/am.c:347,1
    - Dst: sq_quote_buf
      Src: /src/git/builtin/am.c:348,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/am.c:349,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/am.c:351,1
    - Dst: sq_quote_buf
      Src: /src/git/builtin/am.c:352,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/am.c:353,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:355,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 339
    functionDepth: 7
    functionLinenumber: 339
    functionLinenumberEnd: 358
    functionName: write_author_script
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 2
    functionsReached:
    - sq_quote_buf
    - strbuf_release
    - strbuf_addch
    - write_state_text
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void write_author_script(const struct am_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/am.c:371,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:373,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:374,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/am.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts:
    - condition: (!state->msg)
      pos:
        line_end: 370
        line_start: 370
        source_file: /src/git/builtin/am.c
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 6
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: read_commit_msg
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strbuf_detach
    - strbuf_release
    - assert
    - read_state_file
    linkageType: ''
    returnType: int
    signature: int read_commit_msg(struct am_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: am_path
      Src: /src/git/builtin/am.c:387,1
    - Dst: write_file_buf
      Src: /src/git/builtin/am.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 5
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: write_commit_msg
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - write_file_buf
    - am_path
    linkageType: ''
    returnType: void
    signature: void write_commit_msg(const struct am_state *state)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:398,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:399,1
    - Dst: strtol
      Src: /src/git/builtin/am.c:400,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:402,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:403,1
    - Dst: strtol
      Src: /src/git/builtin/am.c:404,1
    - Dst: read_am_author_script
      Src: /src/git/builtin/am.c:406,1
    - Dst: die
      Src: /src/git/builtin/am.c:407,1
    - Dst: _
      Src: /src/git/builtin/am.c:407,1
    - Dst: read_commit_msg
      Src: /src/git/builtin/am.c:409,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:411,1
    - Dst: oidclr
      Src: /src/git/builtin/am.c:412,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/am.c:413,1
    - Dst: die
      Src: /src/git/builtin/am.c:414,1
    - Dst: _
      Src: /src/git/builtin/am.c:414,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:414,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:416,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:417,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:419,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:420,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:422,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:423,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:425,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:426,1
    - Dst: file_exists
      Src: /src/git/builtin/am.c:428,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:428,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:429,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:430,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:436,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:437,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:439,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:444,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:445,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:447,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:448,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:450,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:455,1
    - Dst: mailinfo_parse_quoted_cr_action
      Src: /src/git/builtin/am.c:458,1
    - Dst: die
      Src: /src/git/builtin/am.c:459,1
    - Dst: _
      Src: /src/git/builtin/am.c:459,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:459,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:461,1
    - Dst: strvec_clear
      Src: /src/git/builtin/am.c:462,1
    - Dst: sq_dequote_to_strvec
      Src: /src/git/builtin/am.c:463,1
    - Dst: die
      Src: /src/git/builtin/am.c:464,1
    - Dst: _
      Src: /src/git/builtin/am.c:464,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:464,1
    - Dst: file_exists
      Src: /src/git/builtin/am.c:466,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:466,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:468,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 394
    functionDepth: 7
    functionLinenumber: 394
    functionLinenumberEnd: 469
    functionName: am_load
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - sq_dequote_to_strvec
    - die
    - file_exists
    - get_oid_hex
    - am_path
    - oidclr
    - mailinfo_parse_quoted_cr_action
    - strcmp
    - strvec_clear
    - _
    - read_commit_msg
    - strtol
    - BUG
    - read_am_author_script
    - read_state_file
    linkageType: ''
    returnType: void
    signature: void am_load(struct am_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/am.c:479,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/am.c:480,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 475
    functionDepth: 8
    functionLinenumber: 475
    functionLinenumberEnd: 482
    functionName: am_destroy
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - remove_dir_recursively
    - strbuf_release
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void am_destroy(const struct am_state *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/am.c:491,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:495,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:495,1
    - Dst: run_hooks_opt
      Src: /src/git/builtin/am.c:496,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/am.c:500,1
    - Dst: read_commit_msg
      Src: /src/git/builtin/am.c:501,1
    - Dst: die
      Src: /src/git/builtin/am.c:502,1
    - Dst: _
      Src: /src/git/builtin/am.c:502,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts:
    - condition: (state->msg)
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/git/builtin/am.c
    constantsTouched: []
    func_position:
      end: 507
      start: 487
    functionDepth: 12
    functionLinenumber: 487
    functionLinenumberEnd: 507
    functionName: run_applypatch_msg_hook
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - die
    - assert
    - am_path
    - run_hooks_opt
    - _
    - FREE_AND_NULL
    - read_commit_msg
    linkageType: ''
    returnType: int
    signature: int run_applypatch_msg_hook(struct am_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:516,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:517,1
    - Dst: run_hooks_opt
      Src: /src/git/builtin/am.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 512
    functionDepth: 12
    functionLinenumber: 512
    functionLinenumberEnd: 520
    functionName: run_post_rewrite_hook
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - am_path
    - run_hooks_opt
    linkageType: ''
    returnType: int
    signature: int run_post_rewrite_hook(const struct am_state *state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/builtin/am.c:532,1
    - Dst: assert
      Src: /src/git/builtin/am.c:537,1
    - Dst: init_copy_notes_for_rewrite
      Src: /src/git/builtin/am.c:539,1
    - Dst: xfopen
      Src: /src/git/builtin/am.c:543,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:543,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/am.c:545,1
    - Dst: error
      Src: /src/git/builtin/am.c:550,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/am.c:554,1
    - Dst: error
      Src: /src/git/builtin/am.c:555,1
    - Dst: error
      Src: /src/git/builtin/am.c:560,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/am.c:564,1
    - Dst: error
      Src: /src/git/builtin/am.c:565,1
    - Dst: copy_note_for_rewrite
      Src: /src/git/builtin/am.c:569,1
    - Dst: error
      Src: /src/git/builtin/am.c:570,1
    - Dst: _
      Src: /src/git/builtin/am.c:570,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:571,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:571,1
    - Dst: finish_copy_notes_for_rewrite
      Src: /src/git/builtin/am.c:575,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:576,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:577,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts:
    - condition: (state->rebasing)
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/git/builtin/am.c
    constantsTouched: []
    func_position:
      end: 579
      start: 528
    functionDepth: 20
    functionLinenumber: 528
    functionLinenumberEnd: 579
    functionName: copy_notes_for_rebase
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - oid_to_hex
    - assert
    - finish_copy_notes_for_rewrite
    - get_oid_hex
    - am_path
    - parse_oid_hex
    - _
    - copy_note_for_rewrite
    - xfopen
    - init_copy_notes_for_rewrite
    linkageType: ''
    returnType: int
    signature: int copy_notes_for_rebase(const struct am_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/git/builtin/am.c:595,1
    - Dst: die_errno
      Src: /src/git/builtin/am.c:596,1
    - Dst: _
      Src: /src/git/builtin/am.c:596,1
    - Dst: regcomp
      Src: /src/git/builtin/am.c:598,1
    - Dst: die
      Src: /src/git/builtin/am.c:599,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/am.c:601,1
    - Dst: regexec
      Src: /src/git/builtin/am.c:610,1
    - Dst: regfree
      Src: /src/git/builtin/am.c:617,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:618,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 588
    functionDepth: 5
    functionLinenumber: 588
    functionLinenumberEnd: 620
    functionName: is_mail
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 5
    functionsReached:
    - strbuf_release
    - die
    - fseek
    - regfree
    - die_errno
    - regexec
    - _
    - regcomp
    - strbuf_getline
    linkageType: ''
    returnType: int
    signature: int is_mail(FILE *fp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/am.c:638,1
    - Dst: is_directory
      Src: /src/git/builtin/am.c:638,1
    - Dst: xfopen
      Src: /src/git/builtin/am.c:646,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/am.c:648,1
    - Dst: starts_with
      Src: /src/git/builtin/am.c:653,1
    - Dst: starts_with
      Src: /src/git/builtin/am.c:653,1
    - Dst: starts_with
      Src: /src/git/builtin/am.c:658,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:663,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/am.c:668,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/am.c:669,1
    - Dst: starts_with
      Src: /src/git/builtin/am.c:676,1
    - Dst: starts_with
      Src: /src/git/builtin/am.c:677,1
    - Dst: starts_with
      Src: /src/git/builtin/am.c:678,1
    - Dst: is_mail
      Src: /src/git/builtin/am.c:683,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:689,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:690,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:691,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:692,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 1
    argNames:
    - paths
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 627
    functionDepth: 6
    functionLinenumber: 627
    functionLinenumberEnd: 694
    functionName: detect_patch_format
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - starts_with
    - is_mail
    - strcmp
    - is_directory
    - strbuf_getline
    - xfopen
    linkageType: ''
    returnType: int
    signature: int detect_patch_format(const char **paths)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:708,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/am.c:709,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/am.c:710,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:711,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:713,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:715,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:716,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/am.c:717,1
    - Dst: capture_command
      Src: /src/git/builtin/am.c:719,1
    - Dst: strtol
      Src: /src/git/builtin/am.c:724,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - state
    - paths
    - keep_cr
    - mboxrd
    argTypes:
    - struct am_state*
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 700
    functionDepth: 4
    functionLinenumber: 700
    functionLinenumberEnd: 729
    functionName: split_mail_mbox
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - strvec_pushv
    - capture_command
    - strtol
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int split_mail_mbox(struct am_state *state, const char **paths,\n\t\t\t\tint
      keep_cr, int mboxrd)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/am.c:758,1
    - Dst: fopen
      Src: /src/git/builtin/am.c:761,1
    - Dst: error_errno
      Src: /src/git/builtin/am.c:764,1
    - Dst: _
      Src: /src/git/builtin/am.c:764,1
    - Dst: mkpath
      Src: /src/git/builtin/am.c:767,1
    - Dst: fopen
      Src: /src/git/builtin/am.c:769,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:772,1
    - Dst: error_errno
      Src: /src/git/builtin/am.c:773,1
    - Dst: _
      Src: /src/git/builtin/am.c:773,1
    - Dst: fn
      Src: /src/git/builtin/am.c:777,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:779,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:781,1
    - Dst: error
      Src: /src/git/builtin/am.c:784,1
    - Dst: _
      Src: /src/git/builtin/am.c:784,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - fn
    - state
    - paths
    - keep_cr
    argTypes:
    - mail_conv_fn
    - struct am_state*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 744
    functionDepth: 4
    functionLinenumber: 744
    functionLinenumberEnd: 790
    functionName: split_mail_conv
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - error
    - fn
    - fopen
    - strcmp
    - _
    - mkpath
    linkageType: ''
    returnType: int
    signature: "int split_mail_conv(mail_conv_fn fn, struct am_state *state,\n\t\t\tconst
      char **paths, int keep_cr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/am.c:801,1
    - Dst: str_isspace
      Src: /src/git/builtin/am.c:804,1
    - Dst: skip_prefix
      Src: /src/git/builtin/am.c:806,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:807,1
    - Dst: starts_with
      Src: /src/git/builtin/am.c:808,1
    - Dst: starts_with
      Src: /src/git/builtin/am.c:808,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:809,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:811,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:814,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/am.c:819,1
    - Dst: strbuf_fread
      Src: /src/git/builtin/am.c:820,1
    - Dst: fwrite
      Src: /src/git/builtin/am.c:821,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/am.c:822,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:825,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - out
    - in
    - keep_cr
    argTypes:
    - FILE*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 796
    functionDepth: 5
    functionLinenumber: 796
    functionLinenumberEnd: 827
    functionName: stgit_patch_to_mail
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_getline_lf
    - strbuf_reset
    - fwrite
    - starts_with
    - str_isspace
    - strbuf_fread
    - skip_prefix
    - fprintf
    linkageType: ''
    returnType: int
    signature: int stgit_patch_to_mail(FILE *out, FILE *in, int keep_cr UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/am.c:849,1
    - Dst: _
      Src: /src/git/builtin/am.c:849,1
    - Dst: xstrdup
      Src: /src/git/builtin/am.c:851,1
    - Dst: dirname
      Src: /src/git/builtin/am.c:852,1
    - Dst: fopen
      Src: /src/git/builtin/am.c:854,1
    - Dst: free
      Src: /src/git/builtin/am.c:856,1
    - Dst: error_errno
      Src: /src/git/builtin/am.c:857,1
    - Dst: _
      Src: /src/git/builtin/am.c:857,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/am.c:860,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:864,1
    - Dst: mkpath
      Src: /src/git/builtin/am.c:864,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:867,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:868,1
    - Dst: free
      Src: /src/git/builtin/am.c:869,1
    - Dst: split_mail_conv
      Src: /src/git/builtin/am.c:871,1
    - Dst: strvec_clear
      Src: /src/git/builtin/am.c:873,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - state
    - paths
    - keep_cr
    argTypes:
    - struct am_state*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 838
    functionDepth: 5
    functionLinenumber: 838
    functionLinenumberEnd: 875
    functionName: split_mail_stgit_series
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - strvec_push
    - strbuf_getline_lf
    - fclose
    - strbuf_release
    - mkpath
    - fopen
    - split_mail_conv
    - strvec_clear
    - _
    - free
    - dirname
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int split_mail_stgit_series(struct am_state *state, const char **paths,\n\t\t\t\t\tint
      keep_cr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/am.c:886,1
    - Dst: skip_prefix
      Src: /src/git/builtin/am.c:889,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:890,1
    - Dst: skip_prefix
      Src: /src/git/builtin/am.c:891,1
    - Dst: parse_timestamp
      Src: /src/git/builtin/am.c:897,1
    - Dst: error
      Src: /src/git/builtin/am.c:899,1
    - Dst: _
      Src: /src/git/builtin/am.c:899,1
    - Dst: skip_prefix
      Src: /src/git/builtin/am.c:903,1
    - Dst: error
      Src: /src/git/builtin/am.c:904,1
    - Dst: _
      Src: /src/git/builtin/am.c:904,1
    - Dst: strtol
      Src: /src/git/builtin/am.c:909,1
    - Dst: error
      Src: /src/git/builtin/am.c:911,1
    - Dst: _
      Src: /src/git/builtin/am.c:911,1
    - Dst: error
      Src: /src/git/builtin/am.c:916,1
    - Dst: _
      Src: /src/git/builtin/am.c:916,1
    - Dst: labs
      Src: /src/git/builtin/am.c:925,1
    - Dst: labs
      Src: /src/git/builtin/am.c:925,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:929,1
    - Dst: show_date
      Src: /src/git/builtin/am.c:929,1
    - Dst: DATE_MODE
      Src: /src/git/builtin/am.c:929,1
    - Dst: starts_with
      Src: /src/git/builtin/am.c:930,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:933,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/am.c:938,1
    - Dst: strbuf_fread
      Src: /src/git/builtin/am.c:939,1
    - Dst: fwrite
      Src: /src/git/builtin/am.c:940,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/am.c:941,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:944,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - out
    - in
    - keep_cr
    argTypes:
    - FILE*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 881
    functionDepth: 5
    functionLinenumber: 881
    functionLinenumberEnd: 946
    functionName: hg_patch_to_mail
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - strbuf_getline_lf
    - strbuf_reset
    - fwrite
    - labs
    - starts_with
    - DATE_MODE
    - strbuf_fread
    - show_date
    - parse_timestamp
    - strtol
    - skip_prefix
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int hg_patch_to_mail(FILE *out, FILE *in, int keep_cr UNUSED)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/am.c:970,1
    - Dst: split_mail_mbox
      Src: /src/git/builtin/am.c:975,1
    - Dst: split_mail_conv
      Src: /src/git/builtin/am.c:977,1
    - Dst: split_mail_stgit_series
      Src: /src/git/builtin/am.c:979,1
    - Dst: split_mail_conv
      Src: /src/git/builtin/am.c:981,1
    - Dst: split_mail_mbox
      Src: /src/git/builtin/am.c:983,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - state
    - patch_format
    - paths
    - keep_cr
    argTypes:
    - struct am_state*
    - enum patch_format
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 965
    functionDepth: 19
    functionLinenumber: 965
    functionLinenumberEnd: 988
    functionName: split_mail
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - split_mail_stgit_series
    - split_mail_mbox
    - repo_config_get_bool
    - BUG
    - split_mail_conv
    linkageType: ''
    returnType: int
    signature: "int split_mail(struct am_state *state, enum patch_format patch_format,\n\t\t\tconst
      char **paths, int keep_cr)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: detect_patch_format
      Src: /src/git/builtin/am.c:1001,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/am.c:1004,1
    - Dst: _
      Src: /src/git/builtin/am.c:1004,1
    - Dst: die
      Src: /src/git/builtin/am.c:1005,1
    - Dst: mkdir
      Src: /src/git/builtin/am.c:1008,1
    - Dst: die_errno
      Src: /src/git/builtin/am.c:1009,1
    - Dst: _
      Src: /src/git/builtin/am.c:1009,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/am.c:1010,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/am.c:1010,1
    - Dst: split_mail
      Src: /src/git/builtin/am.c:1013,1
    - Dst: am_destroy
      Src: /src/git/builtin/am.c:1014,1
    - Dst: die
      Src: /src/git/builtin/am.c:1015,1
    - Dst: _
      Src: /src/git/builtin/am.c:1015,1
    - Dst: write_state_bool
      Src: /src/git/builtin/am.c:1021,1
    - Dst: write_state_bool
      Src: /src/git/builtin/am.c:1022,1
    - Dst: write_state_bool
      Src: /src/git/builtin/am.c:1023,1
    - Dst: write_state_bool
      Src: /src/git/builtin/am.c:1024,1
    - Dst: write_state_bool
      Src: /src/git/builtin/am.c:1027,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:1041,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1044,1
    - Dst: write_state_bool
      Src: /src/git/builtin/am.c:1045,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:1058,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1060,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:1076,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1078,1
    - Dst: sq_quote_argv
      Src: /src/git/builtin/am.c:1080,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1081,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1084,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1086,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/am.c:1088,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1089,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:1089,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/am.c:1091,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/am.c:1091,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1096,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/am.c:1098,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/am.c:1098,1
    - Dst: write_state_count
      Src: /src/git/builtin/am.c:1107,1
    - Dst: write_state_count
      Src: /src/git/builtin/am.c:1108,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1110,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 85
    argCount: 4
    argNames:
    - state
    - patch_format
    - paths
    - keep_cr
    argTypes:
    - struct am_state*
    - enum patch_format
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 993
    functionDepth: 20
    functionLinenumber: 993
    functionLinenumberEnd: 1111
    functionName: am_setup
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - split_mail
    - repo_get_oid
    - get_main_ref_store
    - strbuf_release
    - detect_patch_format
    - die
    - write_state_count
    - refs_delete_ref
    - oid_to_hex
    - fprintf_ln
    - sq_quote_argv
    - die_errno
    - mkdir
    - am_destroy
    - _
    - write_state_bool
    - write_state_text
    - refs_update_ref
    - BUG
    linkageType: ''
    returnType: void
    signature: "void am_setup(struct am_state *state, enum patch_format patch_format,\n\t\t\tconst
      char **paths, int keep_cr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/am.c:1121,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/am.c:1122,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/am.c:1123,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/am.c:1124,1
    - Dst: unlink
      Src: /src/git/builtin/am.c:1127,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1127,1
    - Dst: unlink
      Src: /src/git/builtin/am.c:1128,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1128,1
    - Dst: oidclr
      Src: /src/git/builtin/am.c:1130,1
    - Dst: unlink
      Src: /src/git/builtin/am.c:1131,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1131,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/am.c:1132,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/am.c:1132,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/am.c:1135,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1136,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:1136,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1138,1
    - Dst: write_state_count
      Src: /src/git/builtin/am.c:1141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1117
    functionDepth: 7
    functionLinenumber: 1117
    functionLinenumberEnd: 1142
    functionName: am_next
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - refs_delete_ref
    - oid_to_hex
    - repo_get_oid
    - write_state_count
    - am_path
    - oidclr
    - get_main_ref_store
    - write_state_text
    - FREE_AND_NULL
    - unlink
    linkageType: ''
    returnType: void
    signature: void am_next(struct am_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/am.c:1151,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/am.c:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1155
    functionName: msgnum
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - strbuf_addf
    linkageType: ''
    returnType: char
    signature: char *msgnum(const struct am_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: advise_if_enabled
      Src: /src/git/builtin/am.c:1164,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/am.c:1169,1
    - Dst: _
      Src: /src/git/builtin/am.c:1169,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/am.c:1170,1
    - Dst: _
      Src: /src/git/builtin/am.c:1170,1
    - Dst: advice_enabled
      Src: /src/git/builtin/am.c:1172,1
    - Dst: is_empty_or_missing_file
      Src: /src/git/builtin/am.c:1173,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1173,1
    - Dst: repo_index_has_changes
      Src: /src/git/builtin/am.c:1174,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/am.c:1175,1
    - Dst: _
      Src: /src/git/builtin/am.c:1175,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/am.c:1177,1
    - Dst: _
      Src: /src/git/builtin/am.c:1177,1
    - Dst: advise_if_enabled
      Src: /src/git/builtin/am.c:1179,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1180,1
    - Dst: die
      Src: /src/git/builtin/am.c:1183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1161
    functionDepth: 8
    functionLinenumber: 1161
    functionLinenumberEnd: 1184
    functionName: die_user_resolve
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - is_empty_or_missing_file
    - strbuf_release
    - die
    - repo_index_has_changes
    - strbuf_addf
    - am_path
    - advise_if_enabled
    - _
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: void die_user_resolve(const struct am_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_attach
      Src: /src/git/builtin/am.c:1193,1
    - Dst: append_signoff
      Src: /src/git/builtin/am.c:1194,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/am.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1189
    functionDepth: 9
    functionLinenumber: 1189
    functionLinenumberEnd: 1196
    functionName: am_append_signoff
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strbuf_attach
    - append_signoff
    - strbuf_detach
    linkageType: ''
    returnType: void
    signature: void am_append_signoff(struct am_state *state)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: setup_mailinfo
      Src: /src/git/builtin/am.c:1218,1
    - Dst: get_commit_output_encoding
      Src: /src/git/builtin/am.c:1221,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:1235,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:1251,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:1263,1
    - Dst: xfopen
      Src: /src/git/builtin/am.c:1266,1
    - Dst: xfopen
      Src: /src/git/builtin/am.c:1267,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1267,1
    - Dst: mailinfo
      Src: /src/git/builtin/am.c:1268,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1268,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1268,1
    - Dst: die
      Src: /src/git/builtin/am.c:1269,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:1271,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:1272,1
    - Dst: warning
      Src: /src/git/builtin/am.c:1275,1
    - Dst: _
      Src: /src/git/builtin/am.c:1275,1
    - Dst: xfopen
      Src: /src/git/builtin/am.c:1279,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1279,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/am.c:1280,1
    - Dst: skip_prefix
      Src: /src/git/builtin/am.c:1283,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/am.c:1285,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/am.c:1286,1
    - Dst: skip_prefix
      Src: /src/git/builtin/am.c:1287,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/am.c:1288,1
    - Dst: skip_prefix
      Src: /src/git/builtin/am.c:1289,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/am.c:1290,1
    - Dst: skip_prefix
      Src: /src/git/builtin/am.c:1291,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/am.c:1292,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:1294,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:1297,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/am.c:1302,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/am.c:1303,1
    - Dst: strbuf_stripspace
      Src: /src/git/builtin/am.c:1304,1
    - Dst: assert
      Src: /src/git/builtin/am.c:1306,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/am.c:1307,1
    - Dst: assert
      Src: /src/git/builtin/am.c:1309,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/am.c:1310,1
    - Dst: assert
      Src: /src/git/builtin/am.c:1312,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/am.c:1313,1
    - Dst: assert
      Src: /src/git/builtin/am.c:1315,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/am.c:1316,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1319,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1320,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1321,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1322,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1323,1
    - Dst: clear_mailinfo
      Src: /src/git/builtin/am.c:1324,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 90
    argCount: 2
    argNames:
    - state
    - mail
    argTypes:
    - struct am_state*
    - char*
    assertStmts:
    - condition: (!state->msg)
      pos:
        line_end: 1314
        line_start: 1314
        source_file: /src/git/builtin/am.c
    - condition: (!state->author_date)
      pos:
        line_end: 1311
        line_start: 1311
        source_file: /src/git/builtin/am.c
    - condition: (!state->author_name)
      pos:
        line_end: 1305
        line_start: 1305
        source_file: /src/git/builtin/am.c
    - condition: (!state->author_email)
      pos:
        line_end: 1308
        line_start: 1308
        source_file: /src/git/builtin/am.c
    constantsTouched: []
    func_position:
      end: 1326
      start: 1207
    functionDepth: 5
    functionLinenumber: 1207
    functionLinenumberEnd: 1326
    functionName: parse_mail
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - fclose
    - am_path
    - strbuf_addbuf
    - get_commit_output_encoding
    - strcmp
    - xfopen
    - mailinfo
    - clear_mailinfo
    - strbuf_release
    - strbuf_getline_lf
    - die
    - strbuf_addstr
    - strbuf_stripspace
    - strbuf_detach
    - _
    - skip_prefix
    - warning
    - assert
    - setup_mailinfo
    - strbuf_addch
    - BUG
    linkageType: ''
    returnType: int
    signature: int parse_mail(struct am_state *state, const char *mail)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfopen
      Src: /src/git/builtin/am.c:1335,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/am.c:1339,1
    - Dst: skip_prefix
      Src: /src/git/builtin/am.c:1340,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/am.c:1341,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1344,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:1345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - commit_id
    - mail
    argTypes:
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1332
    functionDepth: 5
    functionLinenumber: 1332
    functionLinenumberEnd: 1347
    functionName: get_mail_commit_oid
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - get_oid_hex
    - skip_prefix
    - xfopen
    linkageType: ''
    returnType: int
    signature: int get_mail_commit_oid(struct object_id *commit_id, const char *mail)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_logmsg_reencode
      Src: /src/git/builtin/am.c:1359,1
    - Dst: get_commit_output_encoding
      Src: /src/git/builtin/am.c:1360,1
    - Dst: find_commit_header
      Src: /src/git/builtin/am.c:1362,1
    - Dst: die
      Src: /src/git/builtin/am.c:1364,1
    - Dst: _
      Src: /src/git/builtin/am.c:1364,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:1365,1
    - Dst: split_ident_line
      Src: /src/git/builtin/am.c:1366,1
    - Dst: die
      Src: /src/git/builtin/am.c:1367,1
    - Dst: _
      Src: /src/git/builtin/am.c:1367,1
    - Dst: assert
      Src: /src/git/builtin/am.c:1369,1
    - Dst: xmemdupz
      Src: /src/git/builtin/am.c:1372,1
    - Dst: xstrdup
      Src: /src/git/builtin/am.c:1374,1
    - Dst: assert
      Src: /src/git/builtin/am.c:1376,1
    - Dst: xmemdupz
      Src: /src/git/builtin/am.c:1379,1
    - Dst: xstrdup
      Src: /src/git/builtin/am.c:1381,1
    - Dst: assert
      Src: /src/git/builtin/am.c:1383,1
    - Dst: xstrdup
      Src: /src/git/builtin/am.c:1384,1
    - Dst: show_ident_date
      Src: /src/git/builtin/am.c:1384,1
    - Dst: DATE_MODE
      Src: /src/git/builtin/am.c:1384,1
    - Dst: assert
      Src: /src/git/builtin/am.c:1386,1
    - Dst: strstr
      Src: /src/git/builtin/am.c:1387,1
    - Dst: die
      Src: /src/git/builtin/am.c:1389,1
    - Dst: _
      Src: /src/git/builtin/am.c:1389,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:1389,1
    - Dst: xstrdup
      Src: /src/git/builtin/am.c:1390,1
    - Dst: strlen
      Src: /src/git/builtin/am.c:1391,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/am.c:1392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - state
    - commit
    argTypes:
    - struct am_state*
    - struct commit*
    assertStmts:
    - condition: (!state->author_name)
      pos:
        line_end: 1368
        line_start: 1368
        source_file: /src/git/builtin/am.c
    - condition: (!state->author_email)
      pos:
        line_end: 1375
        line_start: 1375
        source_file: /src/git/builtin/am.c
    - condition: (!state->msg)
      pos:
        line_end: 1385
        line_start: 1385
        source_file: /src/git/builtin/am.c
    - condition: (!state->author_date)
      pos:
        line_end: 1382
        line_start: 1382
        source_file: /src/git/builtin/am.c
    constantsTouched: []
    func_position:
      end: 1393
      start: 1353
    functionDepth: 10
    functionLinenumber: 1353
    functionLinenumberEnd: 1393
    functionName: get_commit_info
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - oid_to_hex
    - die
    - assert
    - strstr
    - find_commit_header
    - repo_unuse_commit_buffer
    - DATE_MODE
    - strlen
    - repo_logmsg_reencode
    - get_commit_output_encoding
    - _
    - split_ident_line
    - show_ident_date
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void get_commit_info(struct am_state *state, struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfopen
      Src: /src/git/builtin/am.c:1403,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1403,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/am.c:1404,1
    - Dst: add_pending_object
      Src: /src/git/builtin/am.c:1416,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/am.c:1417,1
    - Dst: log_tree_commit
      Src: /src/git/builtin/am.c:1418,1
    - Dst: release_revisions
      Src: /src/git/builtin/am.c:1419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - state
    - commit
    argTypes:
    - struct am_state*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1398
    functionDepth: 24
    functionLinenumber: 1398
    functionLinenumberEnd: 1420
    functionName: write_commit_patch
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - log_tree_commit
    - release_revisions
    - am_path
    - repo_init_revisions
    - add_pending_object
    - diff_setup_done
    - xfopen
    linkageType: ''
    returnType: void
    signature: void write_commit_patch(const struct am_state *state, struct commit
      *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/am.c:1433,1
    - Dst: lookup_commit_or_die
      Src: /src/git/builtin/am.c:1434,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/am.c:1435,1
    - Dst: lookup_tree
      Src: /src/git/builtin/am.c:1437,1
    - Dst: xfopen
      Src: /src/git/builtin/am.c:1440,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1440,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/am.c:1441,1
    - Dst: add_pending_object
      Src: /src/git/builtin/am.c:1449,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/am.c:1450,1
    - Dst: run_diff_index
      Src: /src/git/builtin/am.c:1451,1
    - Dst: release_revisions
      Src: /src/git/builtin/am.c:1452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1426
    functionDepth: 8
    functionLinenumber: 1426
    functionLinenumberEnd: 1453
    functionName: write_index_patch
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - lookup_tree
    - release_revisions
    - repo_get_oid
    - am_path
    - repo_init_revisions
    - add_pending_object
    - repo_get_commit_tree
    - run_diff_index
    - diff_setup_done
    - lookup_commit_or_die
    - xfopen
    linkageType: ''
    returnType: void
    signature: void write_index_patch(const struct am_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_mail_commit_oid
      Src: /src/git/builtin/am.c:1469,1
    - Dst: die
      Src: /src/git/builtin/am.c:1470,1
    - Dst: _
      Src: /src/git/builtin/am.c:1470,1
    - Dst: lookup_commit_or_die
      Src: /src/git/builtin/am.c:1472,1
    - Dst: get_commit_info
      Src: /src/git/builtin/am.c:1474,1
    - Dst: write_commit_patch
      Src: /src/git/builtin/am.c:1476,1
    - Dst: oidcpy
      Src: /src/git/builtin/am.c:1478,1
    - Dst: write_state_text
      Src: /src/git/builtin/am.c:1479,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:1479,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/am.c:1480,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/am.c:1480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - state
    - mail
    argTypes:
    - struct am_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1464
    functionDepth: 25
    functionLinenumber: 1464
    functionLinenumberEnd: 1485
    functionName: parse_mail_rebase
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - oidcpy
    - get_commit_info
    - get_mail_commit_oid
    - write_state_text
    - lookup_commit_or_die
    - refs_update_ref
    - get_main_ref_store
    - _
    - write_commit_patch
    linkageType: ''
    returnType: int
    signature: int parse_mail_rebase(struct am_state *state, const char *mail)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: init_apply_state
      Src: /src/git/builtin/am.c:1501,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:1502,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:1504,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/am.c:1505,1
    - Dst: DUP_ARRAY
      Src: /src/git/builtin/am.c:1512,1
    - Dst: apply_parse_options
      Src: /src/git/builtin/am.c:1514,1
    - Dst: die
      Src: /src/git/builtin/am.c:1519,1
    - Dst: check_apply_state
      Src: /src/git/builtin/am.c:1534,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:1535,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:1537,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1537,1
    - Dst: apply_all_patches
      Src: /src/git/builtin/am.c:1539,1
    - Dst: strvec_clear
      Src: /src/git/builtin/am.c:1541,1
    - Dst: strvec_clear
      Src: /src/git/builtin/am.c:1542,1
    - Dst: clear_apply_state
      Src: /src/git/builtin/am.c:1543,1
    - Dst: free
      Src: /src/git/builtin/am.c:1544,1
    - Dst: discard_index
      Src: /src/git/builtin/am.c:1551,1
    - Dst: read_index_from
      Src: /src/git/builtin/am.c:1552,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/am.c:1553,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - state
    - index_file
    argTypes:
    - struct am_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1491
    functionDepth: 9
    functionLinenumber: 1491
    functionLinenumberEnd: 1557
    functionName: run_apply
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - apply_all_patches
    - strvec_push
    - die
    - strvec_pushv
    - am_path
    - init_apply_state
    - check_apply_state
    - strvec_clear
    - clear_apply_state
    - repo_get_git_dir
    - free
    - apply_parse_options
    - DUP_ARRAY
    - read_index_from
    - BUG
    - discard_index
    linkageType: ''
    returnType: int
    signature: int run_apply(const struct am_state *state, const char *index_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:1567,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/am.c:1568,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/am.c:1569,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:1570,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1570,1
    - Dst: run_command
      Src: /src/git/builtin/am.c:1572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - state
    - index_file
    argTypes:
    - struct am_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1562
    functionDepth: 8
    functionLinenumber: 1562
    functionLinenumberEnd: 1576
    functionName: build_fake_ancestor
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - run_command
    - strvec_pushv
    - am_path
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int build_fake_ancestor(const struct am_state *state, const char *index_file)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/am.c:1589,1
    - Dst: oidcpy
      Src: /src/git/builtin/am.c:1590,1
    - Dst: build_fake_ancestor
      Src: /src/git/builtin/am.c:1592,1
    - Dst: error
      Src: /src/git/builtin/am.c:1593,1
    - Dst: discard_index
      Src: /src/git/builtin/am.c:1595,1
    - Dst: read_index_from
      Src: /src/git/builtin/am.c:1596,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/am.c:1596,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/am.c:1598,1
    - Dst: error
      Src: /src/git/builtin/am.c:1599,1
    - Dst: _
      Src: /src/git/builtin/am.c:1599,1
    - Dst: say
      Src: /src/git/builtin/am.c:1601,1
    - Dst: _
      Src: /src/git/builtin/am.c:1601,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/am.c:1610,1
    - Dst: diff_filter_bit
      Src: /src/git/builtin/am.c:1612,1
    - Dst: diff_filter_bit
      Src: /src/git/builtin/am.c:1613,1
    - Dst: add_pending_oid
      Src: /src/git/builtin/am.c:1614,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/am.c:1615,1
    - Dst: run_diff_index
      Src: /src/git/builtin/am.c:1616,1
    - Dst: release_revisions
      Src: /src/git/builtin/am.c:1617,1
    - Dst: run_apply
      Src: /src/git/builtin/am.c:1620,1
    - Dst: error
      Src: /src/git/builtin/am.c:1621,1
    - Dst: _
      Src: /src/git/builtin/am.c:1621,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/am.c:1624,1
    - Dst: error
      Src: /src/git/builtin/am.c:1625,1
    - Dst: say
      Src: /src/git/builtin/am.c:1627,1
    - Dst: _
      Src: /src/git/builtin/am.c:1627,1
    - Dst: discard_index
      Src: /src/git/builtin/am.c:1629,1
    - Dst: repo_read_index
      Src: /src/git/builtin/am.c:1630,1
    - Dst: init_ui_merge_options
      Src: /src/git/builtin/am.c:1640,1
    - Dst: xstrfmt
      Src: /src/git/builtin/am.c:1643,1
    - Dst: linelen
      Src: /src/git/builtin/am.c:1643,1
    - Dst: merge_ort_generic
      Src: /src/git/builtin/am.c:1651,1
    - Dst: repo_rerere
      Src: /src/git/builtin/am.c:1652,1
    - Dst: free
      Src: /src/git/builtin/am.c:1653,1
    - Dst: error
      Src: /src/git/builtin/am.c:1654,1
    - Dst: _
      Src: /src/git/builtin/am.c:1654,1
    - Dst: free
      Src: /src/git/builtin/am.c:1657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - state
    - index_path
    argTypes:
    - struct am_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1581
    functionDepth: 23
    functionLinenumber: 1581
    functionLinenumberEnd: 1659
    functionName: fall_back_threeway
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - repo_get_oid
    - repo_init_revisions
    - merge_ort_generic
    - run_diff_index
    - free
    - read_index_from
    - build_fake_ancestor
    - discard_index
    - error
    - release_revisions
    - diff_filter_bit
    - run_apply
    - repo_read_index
    - repo_rerere
    - diff_setup_done
    - write_index_as_tree
    - say
    - _
    - xstrfmt
    - add_pending_oid
    - repo_get_git_dir
    - init_ui_merge_options
    - linelen
    linkageType: ''
    returnType: int
    signature: int fall_back_threeway(const struct am_state *state, const char *index_path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: run_hooks
      Src: /src/git/builtin/am.c:1674,1
    - Dst: exit
      Src: /src/git/builtin/am.c:1675,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/am.c:1677,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/am.c:1678,1
    - Dst: die
      Src: /src/git/builtin/am.c:1680,1
    - Dst: _
      Src: /src/git/builtin/am.c:1680,1
    - Dst: repo_get_oid_commit
      Src: /src/git/builtin/am.c:1682,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/am.c:1684,1
    - Dst: lookup_commit
      Src: /src/git/builtin/am.c:1684,1
    - Dst: say
      Src: /src/git/builtin/am.c:1688,1
    - Dst: _
      Src: /src/git/builtin/am.c:1688,1
    - Dst: fmt_ident
      Src: /src/git/builtin/am.c:1691,1
    - Dst: fmt_ident
      Src: /src/git/builtin/am.c:1697,1
    - Dst: getenv
      Src: /src/git/builtin/am.c:1697,1
    - Dst: getenv
      Src: /src/git/builtin/am.c:1698,1
    - Dst: commit_tree_extended
      Src: /src/git/builtin/am.c:1704,1
    - Dst: die
      Src: /src/git/builtin/am.c:1707,1
    - Dst: _
      Src: /src/git/builtin/am.c:1707,1
    - Dst: getenv
      Src: /src/git/builtin/am.c:1709,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/am.c:1713,1
    - Dst: linelen
      Src: /src/git/builtin/am.c:1713,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/am.c:1716,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/am.c:1716,1
    - Dst: xfopen
      Src: /src/git/builtin/am.c:1721,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1721,1
    - Dst: assert
      Src: /src/git/builtin/am.c:1723,1
    - Dst: is_null_oid
      Src: /src/git/builtin/am.c:1723,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:1724,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:1724,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:1725,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:1725,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:1726,1
    - Dst: run_hooks
      Src: /src/git/builtin/am.c:1729,1
    - Dst: commit_list_free
      Src: /src/git/builtin/am.c:1731,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1732,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts:
    - condition: (!is_null_oid(&state->orig_commit))
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/git/builtin/am.c
    constantsTouched: []
    func_position:
      end: 1733
      start: 1666
    functionDepth: 14
    functionLinenumber: 1666
    functionLinenumberEnd: 1733
    functionName: do_commit
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 1
    functionsReached:
    - fclose
    - repo_get_oid_commit
    - fmt_ident
    - commit_tree_extended
    - commit_list_insert
    - strbuf_addf
    - am_path
    - is_null_oid
    - xfopen
    - get_main_ref_store
    - strbuf_release
    - die
    - repo_get_index_file
    - write_index_as_tree
    - oid_to_hex
    - say
    - _
    - assert
    - exit
    - run_hooks
    - commit_list_free
    - lookup_commit
    - getenv
    - refs_update_ref
    - fprintf
    - linelen
    linkageType: ''
    returnType: void
    signature: void do_commit(const struct am_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/am.c:1742,1
    - Dst: _
      Src: /src/git/builtin/am.c:1742,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1743,1
    - Dst: die
      Src: /src/git/builtin/am.c:1746,1
    - Dst: _
      Src: /src/git/builtin/am.c:1746,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1747,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1739
    functionDepth: 5
    functionLinenumber: 1739
    functionLinenumberEnd: 1748
    functionName: validate_resume_state
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - am_path
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void validate_resume_state(const struct am_state *state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/am.c:1759,1
    - Dst: puts
      Src: /src/git/builtin/am.c:1764,1
    - Dst: _
      Src: /src/git/builtin/am.c:1764,1
    - Dst: puts
      Src: /src/git/builtin/am.c:1765,1
    - Dst: printf
      Src: /src/git/builtin/am.c:1766,1
    - Dst: puts
      Src: /src/git/builtin/am.c:1767,1
    - Dst: printf
      Src: /src/git/builtin/am.c:1774,1
    - Dst: _
      Src: /src/git/builtin/am.c:1774,1
    - Dst: fgets
      Src: /src/git/builtin/am.c:1775,1
    - Dst: die
      Src: /src/git/builtin/am.c:1776,1
    - Dst: launch_editor
      Src: /src/git/builtin/am.c:1788,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1788,1
    - Dst: free
      Src: /src/git/builtin/am.c:1789,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/am.c:1790,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1792,1
    - Dst: git_pager
      Src: /src/git/builtin/am.c:1794,1
    - Dst: prepare_pager_args
      Src: /src/git/builtin/am.c:1799,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:1800,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1800,1
    - Dst: run_command
      Src: /src/git/builtin/am.c:1801,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts:
    - condition: (state->msg)
      pos:
        line_end: 1758
        line_start: 1758
        source_file: /src/git/builtin/am.c
    constantsTouched: []
    func_position:
      end: 1804
      start: 1757
    functionDepth: 9
    functionLinenumber: 1757
    functionLinenumberEnd: 1804
    functionName: do_interactive
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - fgets
    - strbuf_release
    - strvec_push
    - die
    - assert
    - prepare_pager_args
    - run_command
    - puts
    - am_path
    - launch_editor
    - git_pager
    - strbuf_detach
    - _
    - free
    - printf
    linkageType: ''
    returnType: int
    signature: int do_interactive(struct am_state *state)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/git/builtin/am.c:1817,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1817,1
    - Dst: repo_refresh_and_write_index
      Src: /src/git/builtin/am.c:1819,1
    - Dst: die
      Src: /src/git/builtin/am.c:1821,1
    - Dst: _
      Src: /src/git/builtin/am.c:1821,1
    - Dst: repo_index_has_changes
      Src: /src/git/builtin/am.c:1823,1
    - Dst: write_state_bool
      Src: /src/git/builtin/am.c:1824,1
    - Dst: die
      Src: /src/git/builtin/am.c:1825,1
    - Dst: _
      Src: /src/git/builtin/am.c:1825,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1828,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1831,1
    - Dst: msgnum
      Src: /src/git/builtin/am.c:1831,1
    - Dst: reset_ident_date
      Src: /src/git/builtin/am.c:1835,1
    - Dst: file_exists
      Src: /src/git/builtin/am.c:1837,1
    - Dst: validate_resume_state
      Src: /src/git/builtin/am.c:1841,1
    - Dst: parse_mail_rebase
      Src: /src/git/builtin/am.c:1846,1
    - Dst: parse_mail
      Src: /src/git/builtin/am.c:1848,1
    - Dst: am_append_signoff
      Src: /src/git/builtin/am.c:1854,1
    - Dst: write_author_script
      Src: /src/git/builtin/am.c:1856,1
    - Dst: write_commit_msg
      Src: /src/git/builtin/am.c:1857,1
    - Dst: do_interactive
      Src: /src/git/builtin/am.c:1860,1
    - Dst: is_empty_or_missing_file
      Src: /src/git/builtin/am.c:1864,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1864,1
    - Dst: say
      Src: /src/git/builtin/am.c:1867,1
    - Dst: _
      Src: /src/git/builtin/am.c:1867,1
    - Dst: linelen
      Src: /src/git/builtin/am.c:1867,1
    - Dst: say
      Src: /src/git/builtin/am.c:1872,1
    - Dst: _
      Src: /src/git/builtin/am.c:1872,1
    - Dst: linelen
      Src: /src/git/builtin/am.c:1873,1
    - Dst: printf_ln
      Src: /src/git/builtin/am.c:1876,1
    - Dst: _
      Src: /src/git/builtin/am.c:1876,1
    - Dst: die_user_resolve
      Src: /src/git/builtin/am.c:1877,1
    - Dst: run_applypatch_msg_hook
      Src: /src/git/builtin/am.c:1882,1
    - Dst: exit
      Src: /src/git/builtin/am.c:1883,1
    - Dst: say
      Src: /src/git/builtin/am.c:1887,1
    - Dst: _
      Src: /src/git/builtin/am.c:1887,1
    - Dst: linelen
      Src: /src/git/builtin/am.c:1887,1
    - Dst: run_apply
      Src: /src/git/builtin/am.c:1889,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/am.c:1894,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1894,1
    - Dst: fall_back_threeway
      Src: /src/git/builtin/am.c:1895,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:1896,1
    - Dst: repo_index_has_changes
      Src: /src/git/builtin/am.c:1903,1
    - Dst: say
      Src: /src/git/builtin/am.c:1904,1
    - Dst: _
      Src: /src/git/builtin/am.c:1904,1
    - Dst: printf_ln
      Src: /src/git/builtin/am.c:1910,1
    - Dst: _
      Src: /src/git/builtin/am.c:1910,1
    - Dst: msgnum
      Src: /src/git/builtin/am.c:1910,1
    - Dst: linelen
      Src: /src/git/builtin/am.c:1911,1
    - Dst: advice_enabled
      Src: /src/git/builtin/am.c:1913,1
    - Dst: advise
      Src: /src/git/builtin/am.c:1914,1
    - Dst: _
      Src: /src/git/builtin/am.c:1914,1
    - Dst: die_user_resolve
      Src: /src/git/builtin/am.c:1916,1
    - Dst: do_commit
      Src: /src/git/builtin/am.c:1920,1
    - Dst: am_next
      Src: /src/git/builtin/am.c:1923,1
    - Dst: am_load
      Src: /src/git/builtin/am.c:1926,1
    - Dst: is_empty_or_missing_file
      Src: /src/git/builtin/am.c:1930,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1930,1
    - Dst: assert
      Src: /src/git/builtin/am.c:1931,1
    - Dst: copy_notes_for_rebase
      Src: /src/git/builtin/am.c:1932,1
    - Dst: run_post_rewrite_hook
      Src: /src/git/builtin/am.c:1933,1
    - Dst: am_destroy
      Src: /src/git/builtin/am.c:1941,1
    - Dst: run_auto_maintenance
      Src: /src/git/builtin/am.c:1942,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 91
    argCount: 2
    argNames:
    - state
    - resume
    argTypes:
    - struct am_state*
    - int
    assertStmts:
    - condition: (state->rebasing)
      pos:
        line_end: 1930
        line_start: 1930
        source_file: /src/git/builtin/am.c
    constantsTouched: []
    func_position:
      end: 1944
      start: 1813
    functionDepth: 26
    functionLinenumber: 1813
    functionLinenumberEnd: 1944
    functionName: am_run
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - msgnum
    - is_empty_or_missing_file
    - fall_back_threeway
    - am_path
    - am_load
    - am_append_signoff
    - write_commit_msg
    - file_exists
    - run_auto_maintenance
    - reset_ident_date
    - strbuf_release
    - die
    - run_apply
    - die_user_resolve
    - run_post_rewrite_hook
    - do_interactive
    - strbuf_addstr
    - am_next
    - advise
    - unlink
    - write_author_script
    - copy_notes_for_rebase
    - repo_index_has_changes
    - validate_resume_state
    - am_destroy
    - say
    - run_applypatch_msg_hook
    - advice_enabled
    - do_commit
    - _
    - parse_mail_rebase
    - write_state_bool
    - assert
    - exit
    - parse_mail
    - printf_ln
    - repo_refresh_and_write_index
    - linelen
    linkageType: ''
    returnType: void
    signature: void am_run(struct am_state *state, int resume)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: validate_resume_state
      Src: /src/git/builtin/am.c:1954,1
    - Dst: say
      Src: /src/git/builtin/am.c:1956,1
    - Dst: _
      Src: /src/git/builtin/am.c:1956,1
    - Dst: linelen
      Src: /src/git/builtin/am.c:1956,1
    - Dst: repo_index_has_changes
      Src: /src/git/builtin/am.c:1958,1
    - Dst: is_empty_or_missing_file
      Src: /src/git/builtin/am.c:1959,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:1959,1
    - Dst: printf_ln
      Src: /src/git/builtin/am.c:1960,1
    - Dst: _
      Src: /src/git/builtin/am.c:1960,1
    - Dst: printf_ln
      Src: /src/git/builtin/am.c:1962,1
    - Dst: _
      Src: /src/git/builtin/am.c:1962,1
    - Dst: die_user_resolve
      Src: /src/git/builtin/am.c:1965,1
    - Dst: unmerged_index
      Src: /src/git/builtin/am.c:1969,1
    - Dst: printf_ln
      Src: /src/git/builtin/am.c:1970,1
    - Dst: _
      Src: /src/git/builtin/am.c:1970,1
    - Dst: die_user_resolve
      Src: /src/git/builtin/am.c:1973,1
    - Dst: write_index_patch
      Src: /src/git/builtin/am.c:1977,1
    - Dst: do_interactive
      Src: /src/git/builtin/am.c:1978,1
    - Dst: repo_rerere
      Src: /src/git/builtin/am.c:1982,1
    - Dst: do_commit
      Src: /src/git/builtin/am.c:1984,1
    - Dst: am_next
      Src: /src/git/builtin/am.c:1987,1
    - Dst: am_load
      Src: /src/git/builtin/am.c:1988,1
    - Dst: am_run
      Src: /src/git/builtin/am.c:1989,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - state
    - allow_empty
    argTypes:
    - struct am_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1952
    functionDepth: 27
    functionLinenumber: 1952
    functionLinenumberEnd: 1990
    functionName: am_resolve
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - is_empty_or_missing_file
    - unmerged_index
    - repo_rerere
    - am_run
    - validate_resume_state
    - repo_index_has_changes
    - am_path
    - die_user_resolve
    - write_index_patch
    - am_load
    - am_next
    - say
    - do_interactive
    - do_commit
    - _
    - printf_ln
    - linelen
    linkageType: ''
    returnType: void
    signature: void am_resolve(struct am_state *state, int allow_empty)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree
      Src: /src/git/builtin/am.c:2003,1
    - Dst: repo_parse_tree
      Src: /src/git/builtin/am.c:2003,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/am.c:2006,1
    - Dst: refresh_index
      Src: /src/git/builtin/am.c:2008,1
    - Dst: memset
      Src: /src/git/builtin/am.c:2010,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/am.c:2019,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/am.c:2020,1
    - Dst: unpack_trees
      Src: /src/git/builtin/am.c:2022,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/am.c:2023,1
    - Dst: write_locked_index
      Src: /src/git/builtin/am.c:2027,1
    - Dst: die
      Src: /src/git/builtin/am.c:2028,1
    - Dst: _
      Src: /src/git/builtin/am.c:2028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - head
    - remote
    - reset
    argTypes:
    - struct tree*
    - struct tree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 1997
    functionDepth: 14
    functionLinenumber: 1997
    functionLinenumberEnd: 2031
    functionName: fast_forward_to
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 2
    functionsReached:
    - memset
    - die
    - repo_parse_tree
    - write_locked_index
    - repo_hold_locked_index
    - rollback_lock_file
    - unpack_trees
    - refresh_index
    - _
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: int fast_forward_to(struct tree *head, struct tree *remote, int reset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree
      Src: /src/git/builtin/am.c:2043,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/am.c:2046,1
    - Dst: memset
      Src: /src/git/builtin/am.c:2048,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/am.c:2054,1
    - Dst: unpack_trees
      Src: /src/git/builtin/am.c:2056,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/am.c:2057,1
    - Dst: write_locked_index
      Src: /src/git/builtin/am.c:2061,1
    - Dst: die
      Src: /src/git/builtin/am.c:2062,1
    - Dst: _
      Src: /src/git/builtin/am.c:2062,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - tree
    argTypes:
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2037
    functionDepth: 14
    functionLinenumber: 2037
    functionLinenumberEnd: 2065
    functionName: merge_tree
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - repo_parse_tree
    - write_locked_index
    - repo_hold_locked_index
    - rollback_lock_file
    - unpack_trees
    - _
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: int merge_tree(struct tree *tree)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/am.c:2076,1
    - Dst: error
      Src: /src/git/builtin/am.c:2078,1
    - Dst: _
      Src: /src/git/builtin/am.c:2078,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:2078,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/am.c:2080,1
    - Dst: error
      Src: /src/git/builtin/am.c:2082,1
    - Dst: _
      Src: /src/git/builtin/am.c:2082,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:2082,1
    - Dst: repo_read_index_unmerged
      Src: /src/git/builtin/am.c:2084,1
    - Dst: fast_forward_to
      Src: /src/git/builtin/am.c:2086,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/am.c:2089,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/am.c:2090,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/am.c:2094,1
    - Dst: error
      Src: /src/git/builtin/am.c:2096,1
    - Dst: _
      Src: /src/git/builtin/am.c:2096,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:2096,1
    - Dst: fast_forward_to
      Src: /src/git/builtin/am.c:2098,1
    - Dst: merge_tree
      Src: /src/git/builtin/am.c:2101,1
    - Dst: remove_branch_state
      Src: /src/git/builtin/am.c:2104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - head
    - remote
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2071
    functionDepth: 15
    functionLinenumber: 2071
    functionLinenumberEnd: 2107
    functionName: clean_index
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - repo_parse_tree_indirect
    - repo_get_index_file
    - remove_branch_state
    - repo_read_index_unmerged
    - merge_tree
    - fast_forward_to
    - _
    - write_index_as_tree
    linkageType: ''
    returnType: int
    signature: int clean_index(const struct object_id *head, const struct object_id
      *remote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rerere_clear
      Src: /src/git/builtin/am.c:2115,1
    - Dst: string_list_clear
      Src: /src/git/builtin/am.c:2116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2112
    functionDepth: 14
    functionLinenumber: 2112
    functionLinenumberEnd: 2117
    functionName: am_rerere_clear
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - rerere_clear
    linkageType: ''
    returnType: void
    signature: void am_rerere_clear(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: am_rerere_clear
      Src: /src/git/builtin/am.c:2126,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/am.c:2128,1
    - Dst: oidcpy
      Src: /src/git/builtin/am.c:2129,1
    - Dst: clean_index
      Src: /src/git/builtin/am.c:2131,1
    - Dst: die
      Src: /src/git/builtin/am.c:2132,1
    - Dst: _
      Src: /src/git/builtin/am.c:2132,1
    - Dst: xfopen
      Src: /src/git/builtin/am.c:2135,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:2135,1
    - Dst: assert
      Src: /src/git/builtin/am.c:2137,1
    - Dst: is_null_oid
      Src: /src/git/builtin/am.c:2137,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:2138,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:2138,1
    - Dst: fprintf
      Src: /src/git/builtin/am.c:2139,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:2139,1
    - Dst: fclose
      Src: /src/git/builtin/am.c:2140,1
    - Dst: am_next
      Src: /src/git/builtin/am.c:2143,1
    - Dst: am_load
      Src: /src/git/builtin/am.c:2144,1
    - Dst: am_run
      Src: /src/git/builtin/am.c:2145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts:
    - condition: (!is_null_oid(&state->orig_commit))
      pos:
        line_end: 2136
        line_start: 2136
        source_file: /src/git/builtin/am.c
    constantsTouched: []
    func_position:
      end: 2146
      start: 2122
    functionDepth: 27
    functionLinenumber: 2122
    functionLinenumberEnd: 2146
    functionName: am_skip
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - fclose
    - oid_to_hex
    - die
    - assert
    - oidcpy
    - am_run
    - repo_get_oid
    - am_rerere_clear
    - am_path
    - is_null_oid
    - am_load
    - am_next
    - _
    - clean_index
    - xfopen
    - fprintf
    linkageType: ''
    returnType: void
    signature: void am_skip(struct am_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/builtin/am.c:2160,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:2160,1
    - Dst: read_state_file
      Src: /src/git/builtin/am.c:2163,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/am.c:2164,1
    - Dst: die
      Src: /src/git/builtin/am.c:2165,1
    - Dst: _
      Src: /src/git/builtin/am.c:2165,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:2165,1
    - Dst: oidclr
      Src: /src/git/builtin/am.c:2167,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:2168,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/am.c:2170,1
    - Dst: oidclr
      Src: /src/git/builtin/am.c:2171,1
    - Dst: oideq
      Src: /src/git/builtin/am.c:2173,1
    - Dst: warning
      Src: /src/git/builtin/am.c:2176,1
    - Dst: _
      Src: /src/git/builtin/am.c:2176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2155
    functionDepth: 6
    functionLinenumber: 2155
    functionLinenumberEnd: 2180
    functionName: safe_to_abort
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - get_oid_hex
    - repo_get_oid
    - am_path
    - oidclr
    - _
    - file_exists
    - warning
    - oideq
    - read_state_file
    linkageType: ''
    returnType: int
    signature: int safe_to_abort(const struct am_state *state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: safe_to_abort
      Src: /src/git/builtin/am.c:2191,1
    - Dst: am_destroy
      Src: /src/git/builtin/am.c:2192,1
    - Dst: am_rerere_clear
      Src: /src/git/builtin/am.c:2196,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/am.c:2198,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/am.c:2198,1
    - Dst: is_null_oid
      Src: /src/git/builtin/am.c:2200,1
    - Dst: oidcpy
      Src: /src/git/builtin/am.c:2202,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/am.c:2204,1
    - Dst: oidcpy
      Src: /src/git/builtin/am.c:2206,1
    - Dst: clean_index
      Src: /src/git/builtin/am.c:2208,1
    - Dst: die
      Src: /src/git/builtin/am.c:2209,1
    - Dst: _
      Src: /src/git/builtin/am.c:2209,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/am.c:2212,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/am.c:2212,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/am.c:2217,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/am.c:2217,1
    - Dst: free
      Src: /src/git/builtin/am.c:2220,1
    - Dst: am_destroy
      Src: /src/git/builtin/am.c:2221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct am_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2185
    functionDepth: 16
    functionLinenumber: 2185
    functionLinenumberEnd: 2222
    functionName: am_abort
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - refs_delete_ref
    - die
    - oidcpy
    - repo_get_oid
    - am_rerere_clear
    - free
    - is_null_oid
    - am_destroy
    - refs_resolve_refdup
    - refs_update_ref
    - _
    - clean_index
    - safe_to_abort
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void am_abort(struct am_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/am.c:2230,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/am.c:2233,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/am.c:2233,1
    - Dst: run_command
      Src: /src/git/builtin/am.c:2236,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:2241,1
    - Dst: msgnum
      Src: /src/git/builtin/am.c:2241,1
    - Dst: am_path
      Src: /src/git/builtin/am.c:2244,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:2247,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/am.c:2250,1
    - Dst: die_errno
      Src: /src/git/builtin/am.c:2252,1
    - Dst: _
      Src: /src/git/builtin/am.c:2252,1
    - Dst: setup_pager
      Src: /src/git/builtin/am.c:2254,1
    - Dst: write_in_full
      Src: /src/git/builtin/am.c:2255,1
    - Dst: strbuf_release
      Src: /src/git/builtin/am.c:2256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - state
    - resume_mode
    argTypes:
    - struct am_state*
    - enum resume_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2224
    functionDepth: 8
    functionLinenumber: 2224
    functionLinenumberEnd: 2258
    functionName: show_patch
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - setup_pager
    - msgnum
    - oid_to_hex
    - strbuf_release
    - run_command
    - strvec_pushl
    - am_path
    - strbuf_read_file
    - die_errno
    - is_null_oid
    - _
    - write_in_full
    - BUG
    linkageType: ''
    returnType: int
    signature: int show_patch(struct am_state *state, enum resume_type resume_mode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/am.c:2270,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:2272,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:2274,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:2276,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:2278,1
    - Dst: error
      Src: /src/git/builtin/am.c:2285,1
    - Dst: _
      Src: /src/git/builtin/am.c:2285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2288
    functionName: parse_opt_patchformat
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_opt_patchformat(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/am.c:2294,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:2298,1
    - Dst: strcmp
      Src: /src/git/builtin/am.c:2300,1
    - Dst: error
      Src: /src/git/builtin/am.c:2307,1
    - Dst: _
      Src: /src/git/builtin/am.c:2307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2290
    functionDepth: 1
    functionLinenumber: 2290
    functionLinenumberEnd: 2310
    functionName: parse_opt_show_current_patch
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_opt_show_current_patch(const struct option *opt, const char
      *arg, int unset)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/am.c:2326,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2327,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/am.c:2332,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2333,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/am.c:2334,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2335,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/am.c:2336,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2337,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/am.c:2338,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2339,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/am.c:2340,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2340,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/am.c:2341,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2342,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/am.c:2344,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2345,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/am.c:2346,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2347,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/am.c:2348,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2349,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/am.c:2350,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2351,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/am.c:2352,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2353,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/am.c:2355,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2356,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/am.c:2357,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2357,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2358,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/am.c:2360,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2360,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2361,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/am.c:2363,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2364,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/am.c:2366,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2367,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/am.c:2369,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2369,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2370,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/am.c:2372,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2372,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2373,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/am.c:2375,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2375,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2376,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/am.c:2378,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2378,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2379,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/am.c:2381,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2381,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2382,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/am.c:2384,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2384,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2385,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/am.c:2387,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2388,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/am.c:2390,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2391,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/am.c:2392,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2393,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/am.c:2395,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2396,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/am.c:2398,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2399,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/am.c:2401,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2402,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/am.c:2404,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2405,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2413,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/am.c:2418,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2419,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/am.c:2421,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2422,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/am.c:2424,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2426,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/am.c:2427,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2428,1
    - Dst: OPT_RERERE_AUTOUPDATE
      Src: /src/git/builtin/am.c:2429,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2435,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2436,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/am.c:2440,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2441,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/am.c:2443,1
    - Dst: N_
      Src: /src/git/builtin/am.c:2444,1
    - Dst: OPT_END
      Src: /src/git/builtin/am.c:2445,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/am.c:2448,1
    - Dst: repo_config
      Src: /src/git/builtin/am.c:2450,1
    - Dst: am_state_init
      Src: /src/git/builtin/am.c:2452,1
    - Dst: am_in_progress
      Src: /src/git/builtin/am.c:2454,1
    - Dst: am_load
      Src: /src/git/builtin/am.c:2456,1
    - Dst: parse_options
      Src: /src/git/builtin/am.c:2458,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/am.c:2461,1
    - Dst: _
      Src: /src/git/builtin/am.c:2461,1
    - Dst: git_committer_info
      Src: /src/git/builtin/am.c:2465,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/am.c:2467,1
    - Dst: die
      Src: /src/git/builtin/am.c:2468,1
    - Dst: _
      Src: /src/git/builtin/am.c:2468,1
    - Dst: isatty
      Src: /src/git/builtin/am.c:2482,1
    - Dst: die
      Src: /src/git/builtin/am.c:2483,1
    - Dst: _
      Src: /src/git/builtin/am.c:2483,1
    - Dst: am_append_signoff
      Src: /src/git/builtin/am.c:2490,1
    - Dst: file_exists
      Src: /src/git/builtin/am.c:2500,1
    - Dst: am_destroy
      Src: /src/git/builtin/am.c:2502,1
    - Dst: am_state_release
      Src: /src/git/builtin/am.c:2503,1
    - Dst: die
      Src: /src/git/builtin/am.c:2507,1
    - Dst: _
      Src: /src/git/builtin/am.c:2507,1
    - Dst: die
      Src: /src/git/builtin/am.c:2513,1
    - Dst: _
      Src: /src/git/builtin/am.c:2513,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/am.c:2516,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:2517,1
    - Dst: strvec_push
      Src: /src/git/builtin/am.c:2519,1
    - Dst: mkpath
      Src: /src/git/builtin/am.c:2519,1
    - Dst: die
      Src: /src/git/builtin/am.c:2523,1
    - Dst: _
      Src: /src/git/builtin/am.c:2523,1
    - Dst: am_setup
      Src: /src/git/builtin/am.c:2525,1
    - Dst: strvec_clear
      Src: /src/git/builtin/am.c:2527,1
    - Dst: am_run
      Src: /src/git/builtin/am.c:2532,1
    - Dst: am_run
      Src: /src/git/builtin/am.c:2535,1
    - Dst: am_resolve
      Src: /src/git/builtin/am.c:2539,1
    - Dst: am_skip
      Src: /src/git/builtin/am.c:2542,1
    - Dst: am_abort
      Src: /src/git/builtin/am.c:2545,1
    - Dst: am_rerere_clear
      Src: /src/git/builtin/am.c:2548,1
    - Dst: am_destroy
      Src: /src/git/builtin/am.c:2549,1
    - Dst: show_patch
      Src: /src/git/builtin/am.c:2553,1
    - Dst: BUG
      Src: /src/git/builtin/am.c:2556,1
    - Dst: am_state_release
      Src: /src/git/builtin/am.c:2559,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2312
    functionDepth: 28
    functionLinenumber: 2312
    functionLinenumberEnd: 2562
    functionName: cmd_am
    functionSourceFile: /src/git/builtin/am.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_options
    - am_resolve
    - OPT_BOOL
    - am_rerere_clear
    - am_in_progress
    - am_load
    - am_append_signoff
    - file_exists
    - am_abort
    - am_setup
    - repo_config
    - repo_read_index_preload
    - OPT_END
    - die
    - am_state_release
    - OPT_PASSTHRU_ARGV
    - OPT_CMDMODE
    - mkpath
    - isatty
    - OPT_HIDDEN_BOOL
    - OPT__QUIET
    - is_absolute_path
    - fprintf_ln
    - show_patch
    - OPT_SET_INT
    - OPT_RERERE_AUTOUPDATE
    - am_destroy
    - _
    - N_
    - git_committer_info
    - am_state_init
    - am_run
    - OPT_CALLBACK_F
    - OPT_STRING
    - OPT_CALLBACK
    - strvec_clear
    - am_skip
    - BUG
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: "int cmd_am(int argc,\n\t   const char **argv,\n\t   const char *prefix,\n\t
      \  struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_mode
      Src: /src/git/builtin/diff-pairs.c:17,1
    - Dst: die
      Src: /src/git/builtin/diff-pairs.c:19,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mode
    - end
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: parse_mode_or_die
    functionSourceFile: /src/git/builtin/diff-pairs.c
    functionUses: 0
    functionsReached:
    - die
    - parse_mode
    - _
    linkageType: ''
    returnType: unsigned
    signature: unsigned parse_mode_or_die(const char *mode, const char **end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex_algop
      Src: /src/git/builtin/diff-pairs.c:26,1
    - Dst: die
      Src: /src/git/builtin/diff-pairs.c:27,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - hex
    - oid
    - end
    - algop
    argTypes:
    - char*
    - struct object_id*
    - char**
    - struct git_hash_algo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: parse_oid_or_die
    functionSourceFile: /src/git/builtin/diff-pairs.c
    functionUses: 0
    functionsReached:
    - parse_oid_hex_algop
    - die
    - _
    linkageType: ''
    returnType: void
    signature: "void parse_oid_or_die(const char *hex, struct object_id *oid,\n\t\t\t
      \    const char **end, const struct git_hash_algo *algop)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/diff-pairs.c:42,1
    - Dst: OPT_END
      Src: /src/git/builtin/diff-pairs.c:46,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/diff-pairs.c:49,1
    - Dst: add_diff_options
      Src: /src/git/builtin/diff-pairs.c:56,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/diff-pairs.c:57,1
    - Dst: repo_config
      Src: /src/git/builtin/diff-pairs.c:59,1
    - Dst: parse_options
      Src: /src/git/builtin/diff-pairs.c:65,1
    - Dst: setup_revisions
      Src: /src/git/builtin/diff-pairs.c:68,1
    - Dst: usagef
      Src: /src/git/builtin/diff-pairs.c:69,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:69,1
    - Dst: usage
      Src: /src/git/builtin/diff-pairs.c:77,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:77,1
    - Dst: usage
      Src: /src/git/builtin/diff-pairs.c:80,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:80,1
    - Dst: usage
      Src: /src/git/builtin/diff-pairs.c:85,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:85,1
    - Dst: strbuf_getwholeline
      Src: /src/git/builtin/diff-pairs.c:106,1
    - Dst: diffcore_std
      Src: /src/git/builtin/diff-pairs.c:111,1
    - Dst: diff_flush
      Src: /src/git/builtin/diff-pairs.c:112,1
    - Dst: fputc
      Src: /src/git/builtin/diff-pairs.c:117,1
    - Dst: fflush
      Src: /src/git/builtin/diff-pairs.c:118,1
    - Dst: die
      Src: /src/git/builtin/diff-pairs.c:123,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:123,1
    - Dst: parse_mode_or_die
      Src: /src/git/builtin/diff-pairs.c:126,1
    - Dst: parse_mode_or_die
      Src: /src/git/builtin/diff-pairs.c:127,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/diff-pairs.c:129,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/diff-pairs.c:129,1
    - Dst: die
      Src: /src/git/builtin/diff-pairs.c:130,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:130,1
    - Dst: parse_oid_or_die
      Src: /src/git/builtin/diff-pairs.c:132,1
    - Dst: parse_oid_or_die
      Src: /src/git/builtin/diff-pairs.c:133,1
    - Dst: strbuf_getwholeline
      Src: /src/git/builtin/diff-pairs.c:137,1
    - Dst: die
      Src: /src/git/builtin/diff-pairs.c:138,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:138,1
    - Dst: diff_queue_addremove
      Src: /src/git/builtin/diff-pairs.c:142,1
    - Dst: diff_queue_addremove
      Src: /src/git/builtin/diff-pairs.c:150,1
    - Dst: diff_queue_change
      Src: /src/git/builtin/diff-pairs.c:159,1
    - Dst: strbuf_getwholeline
      Src: /src/git/builtin/diff-pairs.c:171,1
    - Dst: die
      Src: /src/git/builtin/diff-pairs.c:172,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:172,1
    - Dst: alloc_filespec
      Src: /src/git/builtin/diff-pairs.c:174,1
    - Dst: alloc_filespec
      Src: /src/git/builtin/diff-pairs.c:175,1
    - Dst: fill_filespec
      Src: /src/git/builtin/diff-pairs.c:176,1
    - Dst: fill_filespec
      Src: /src/git/builtin/diff-pairs.c:177,1
    - Dst: diff_queue
      Src: /src/git/builtin/diff-pairs.c:179,1
    - Dst: strtoul_ui
      Src: /src/git/builtin/diff-pairs.c:181,1
    - Dst: die
      Src: /src/git/builtin/diff-pairs.c:182,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:182,1
    - Dst: die
      Src: /src/git/builtin/diff-pairs.c:191,1
    - Dst: _
      Src: /src/git/builtin/diff-pairs.c:191,1
    - Dst: diffcore_std
      Src: /src/git/builtin/diff-pairs.c:196,1
    - Dst: diff_flush
      Src: /src/git/builtin/diff-pairs.c:197,1
    - Dst: diff_result_code
      Src: /src/git/builtin/diff-pairs.c:198,1
    - Dst: strbuf_release
      Src: /src/git/builtin/diff-pairs.c:200,1
    - Dst: strbuf_release
      Src: /src/git/builtin/diff-pairs.c:201,1
    - Dst: strbuf_release
      Src: /src/git/builtin/diff-pairs.c:202,1
    - Dst: release_revisions
      Src: /src/git/builtin/diff-pairs.c:203,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/diff-pairs.c:204,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 92
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 30
    functionDepth: 26
    functionLinenumber: 30
    functionLinenumberEnd: 207
    functionName: cmd_diff_pairs
    functionSourceFile: /src/git/builtin/diff-pairs.c
    functionUses: 0
    functionsReached:
    - parse_options
    - diff_queue_addremove
    - repo_init_revisions
    - diff_queue_change
    - fill_filespec
    - repo_config
    - strbuf_release
    - OPT_END
    - die
    - release_revisions
    - add_diff_options
    - parse_oid_or_die
    - diff_result_code
    - alloc_filespec
    - diff_flush
    - fflush
    - strtoul_ui
    - _
    - N_
    - setup_revisions
    - FREE_AND_NULL
    - usagef
    - strbuf_getwholeline
    - S_ISDIR
    - parse_mode_or_die
    - diff_queue
    - usage
    - diffcore_std
    - fputc
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: "int cmd_diff_pairs(int argc, const char **argv, const char *prefix,\n\t\t
      \  struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/describe.c:87,1
    - Dst: container_of
      Src: /src/git/builtin/describe.c:88,1
    - Dst: oideq
      Src: /src/git/builtin/describe.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - peeled
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: commit_name_neq
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - container_of
    - oideq
    linkageType: ''
    returnType: int
    signature: "int commit_name_neq(const void *cmp_data UNUSED,\n\t\t\t   const struct
      hashmap_entry *eptr,\n\t\t\t   const struct hashmap_entry *entry_or_key,\n\t\t\t
      \  const void *peeled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/builtin/describe.c:95,1
    - Dst: oidhash
      Src: /src/git/builtin/describe.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peeled
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: find_commit_name
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - oidhash
    - hashmap_get_entry_from_hash
    linkageType: ''
    returnType: struct commit_name
    signature: struct commit_name *find_commit_name(const struct object_id *peeled)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tag
      Src: /src/git/builtin/describe.c:114,1
    - Dst: parse_tag
      Src: /src/git/builtin/describe.c:115,1
    - Dst: lookup_tag
      Src: /src/git/builtin/describe.c:120,1
    - Dst: parse_tag
      Src: /src/git/builtin/describe.c:121,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - e
    - prio
    - oid
    - tag
    argTypes:
    - struct commit_name*
    - int
    - struct object_id*
    - struct tag**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 130
    functionName: replace_name
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - parse_tag
    - lookup_tag
    linkageType: ''
    returnType: int
    signature: "int replace_name(struct commit_name *e,\n\t\t\t       int prio,\n\t\t\t
      \      const struct object_id *oid,\n\t\t\t       struct tag **tag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_commit_name
      Src: /src/git/builtin/describe.c:137,1
    - Dst: replace_name
      Src: /src/git/builtin/describe.c:139,1
    - Dst: xmalloc
      Src: /src/git/builtin/describe.c:141,1
    - Dst: oidcpy
      Src: /src/git/builtin/describe.c:142,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/describe.c:143,1
    - Dst: oidhash
      Src: /src/git/builtin/describe.c:143,1
    - Dst: hashmap_add
      Src: /src/git/builtin/describe.c:144,1
    - Dst: oidcpy
      Src: /src/git/builtin/describe.c:151,1
    - Dst: free
      Src: /src/git/builtin/describe.c:152,1
    - Dst: xstrdup
      Src: /src/git/builtin/describe.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - path
    - peeled
    - prio
    - oid
    argTypes:
    - char*
    - struct object_id*
    - int
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 132
    functionDepth: 7
    functionLinenumber: 132
    functionLinenumberEnd: 155
    functionName: add_to_known_names
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - hashmap_add
    - oidcpy
    - hashmap_entry_init
    - replace_name
    - xmalloc
    - find_commit_name
    - free
    - oidhash
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void add_to_known_names(const char *path,\n\t\t\t       const struct
      object_id *peeled,\n\t\t\t       int prio,\n\t\t\t       const struct object_id
      *oid)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/describe.c:164,1
    - Dst: skip_prefix
      Src: /src/git/builtin/describe.c:168,1
    - Dst: skip_prefix
      Src: /src/git/builtin/describe.c:169,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/describe.c:185,1
    - Dst: wildmatch
      Src: /src/git/builtin/describe.c:186,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/describe.c:199,1
    - Dst: wildmatch
      Src: /src/git/builtin/describe.c:200,1
    - Dst: reference_get_peeled_oid
      Src: /src/git/builtin/describe.c:211,1
    - Dst: oideq
      Src: /src/git/builtin/describe.c:212,1
    - Dst: oidcpy
      Src: /src/git/builtin/describe.c:214,1
    - Dst: add_to_known_names
      Src: /src/git/builtin/describe.c:231,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 157
    functionDepth: 8
    functionLinenumber: 157
    functionLinenumberEnd: 234
    functionName: get_name
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - reference_get_peeled_oid
    - oidcpy
    - add_to_known_names
    - skip_prefix
    - oideq
    - wildmatch
    linkageType: ''
    returnType: int
    signature: int get_name(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: compare_pt
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_pt(const void *a_, const void *b_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_get
      Src: /src/git/builtin/describe.c:264,1
    - Dst: prio_queue_peek
      Src: /src/git/builtin/describe.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct lazy_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: lazy_queue_get
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - prio_queue_get
    - prio_queue_peek
    linkageType: ''
    returnType: void
    signature: void *lazy_queue_get(struct lazy_queue *queue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prio_queue_replace
      Src: /src/git/builtin/describe.c:273,1
    - Dst: prio_queue_put
      Src: /src/git/builtin/describe.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - queue
    - thing
    argTypes:
    - struct lazy_queue*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: lazy_queue_put
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - prio_queue_put
    - prio_queue_replace
    linkageType: ''
    returnType: void
    signature: void lazy_queue_put(struct lazy_queue *queue, void *thing)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct lazy_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: lazy_queue_empty
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lazy_queue_empty(const struct lazy_queue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_prio_queue
      Src: /src/git/builtin/describe.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct lazy_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: lazy_queue_clear
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - clear_prio_queue
    linkageType: ''
    returnType: void
    signature: void lazy_queue_clear(struct lazy_queue *queue)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidset_insert
      Src: /src/git/builtin/describe.c:299,1
    - Dst: lazy_queue_empty
      Src: /src/git/builtin/describe.c:302,1
    - Dst: lazy_queue_get
      Src: /src/git/builtin/describe.c:303,1
    - Dst: oidset_size
      Src: /src/git/builtin/describe.c:307,1
    - Dst: oidset_remove
      Src: /src/git/builtin/describe.c:310,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/describe.c:316,1
    - Dst: lazy_queue_put
      Src: /src/git/builtin/describe.c:319,1
    - Dst: oidset_insert
      Src: /src/git/builtin/describe.c:324,1
    - Dst: oidset_remove
      Src: /src/git/builtin/describe.c:326,1
    - Dst: oidset_clear
      Src: /src/git/builtin/describe.c:330,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - queue
    - best
    argTypes:
    - struct lazy_queue*
    - struct possible_tag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 290
    functionDepth: 20
    functionLinenumber: 290
    functionLinenumberEnd: 332
    functionName: finish_depth_computation
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - oidset_size
    - lazy_queue_put
    - lazy_queue_empty
    - oidset_remove
    - repo_parse_commit
    - oidset_clear
    - oidset_insert
    - lazy_queue_get
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long finish_depth_computation(struct lazy_queue *queue,\n\t\t\t\t\t
      \     struct possible_tag *best)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tag
      Src: /src/git/builtin/describe.c:337,1
    - Dst: parse_tag
      Src: /src/git/builtin/describe.c:338,1
    - Dst: die
      Src: /src/git/builtin/describe.c:339,1
    - Dst: _
      Src: /src/git/builtin/describe.c:339,1
    - Dst: strcmp
      Src: /src/git/builtin/describe.c:342,1
    - Dst: warning
      Src: /src/git/builtin/describe.c:343,1
    - Dst: _
      Src: /src/git/builtin/describe.c:343,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/describe.c:352,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/describe.c:353,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/describe.c:355,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - n
    - dst
    argTypes:
    - struct commit_name*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 334
    functionDepth: 6
    functionLinenumber: 334
    functionLinenumberEnd: 357
    functionName: append_name
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - die
    - lookup_tag
    - parse_tag
    - strbuf_addstr
    - strcmp
    - warning
    - _
    linkageType: ''
    returnType: void
    signature: void append_name(struct commit_name *n, struct strbuf *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/describe.c:361,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/describe.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - depth
    - oid
    - dst
    argTypes:
    - int
    - struct object_id*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 4
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: append_suffix
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - repo_find_unique_abbrev
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void append_suffix(int depth, const struct object_id *oid, struct strbuf
      *dst)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: find_commit_name
      Src: /src/git/builtin/describe.c:375,1
    - Dst: append_name
      Src: /src/git/builtin/describe.c:380,1
    - Dst: append_suffix
      Src: /src/git/builtin/describe.c:382,1
    - Dst: get_tagged_oid
      Src: /src/git/builtin/describe.c:382,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/describe.c:384,1
    - Dst: die
      Src: /src/git/builtin/describe.c:389,1
    - Dst: _
      Src: /src/git/builtin/describe.c:389,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/describe.c:389,1
    - Dst: fprintf
      Src: /src/git/builtin/describe.c:391,1
    - Dst: _
      Src: /src/git/builtin/describe.c:391,1
    - Dst: init_commit_names
      Src: /src/git/builtin/describe.c:398,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/describe.c:399,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/describe.c:401,1
    - Dst: commit_names_at
      Src: /src/git/builtin/describe.c:404,1
    - Dst: lazy_queue_put
      Src: /src/git/builtin/describe.c:410,1
    - Dst: lazy_queue_empty
      Src: /src/git/builtin/describe.c:411,1
    - Dst: lazy_queue_get
      Src: /src/git/builtin/describe.c:412,1
    - Dst: hashmap_get_size
      Src: /src/git/builtin/describe.c:419,1
    - Dst: commit_names_peek
      Src: /src/git/builtin/describe.c:424,1
    - Dst: lazy_queue_empty
      Src: /src/git/builtin/describe.c:446,1
    - Dst: fprintf
      Src: /src/git/builtin/describe.c:460,1
    - Dst: _
      Src: /src/git/builtin/describe.c:460,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/describe.c:461,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/describe.c:467,1
    - Dst: lazy_queue_put
      Src: /src/git/builtin/describe.c:469,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/builtin/describe.c:481,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/describe.c:483,1
    - Dst: lazy_queue_clear
      Src: /src/git/builtin/describe.c:484,1
    - Dst: die
      Src: /src/git/builtin/describe.c:488,1
    - Dst: _
      Src: /src/git/builtin/describe.c:488,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/describe.c:490,1
    - Dst: die
      Src: /src/git/builtin/describe.c:492,1
    - Dst: _
      Src: /src/git/builtin/describe.c:492,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/describe.c:494,1
    - Dst: QSORT
      Src: /src/git/builtin/describe.c:497,1
    - Dst: lazy_queue_put
      Src: /src/git/builtin/describe.c:500,1
    - Dst: finish_depth_computation
      Src: /src/git/builtin/describe.c:503,1
    - Dst: lazy_queue_clear
      Src: /src/git/builtin/describe.c:504,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/describe.c:510,1
    - Dst: strlen
      Src: /src/git/builtin/describe.c:511,1
    - Dst: _
      Src: /src/git/builtin/describe.c:511,1
    - Dst: fprintf
      Src: /src/git/builtin/describe.c:518,1
    - Dst: _
      Src: /src/git/builtin/describe.c:519,1
    - Dst: fprintf
      Src: /src/git/builtin/describe.c:522,1
    - Dst: _
      Src: /src/git/builtin/describe.c:522,1
    - Dst: fprintf
      Src: /src/git/builtin/describe.c:524,1
    - Dst: _
      Src: /src/git/builtin/describe.c:525,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/describe.c:527,1
    - Dst: append_name
      Src: /src/git/builtin/describe.c:531,1
    - Dst: append_suffix
      Src: /src/git/builtin/describe.c:533,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/describe.c:535,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 117
    argCount: 2
    argNames:
    - cmit
    - dst
    argTypes:
    - struct commit*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 365
    functionDepth: 21
    functionLinenumber: 365
    functionLinenumberEnd: 536
    functionName: describe_commit
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - commit_names_peek
    - lazy_queue_empty
    - append_name
    - hashmap_get_size
    - find_commit_name
    - lazy_queue_put
    - die
    - repo_parse_commit
    - QSORT
    - strbuf_add_unique_abbrev
    - strbuf_addstr
    - append_suffix
    - hashmap_for_each_entry
    - ARRAY_SIZE
    - oid_to_hex
    - _
    - lazy_queue_get
    - lazy_queue_clear
    - commit_names_at
    - lookup_commit_reference_gently
    - init_commit_names
    - finish_depth_computation
    - strlen
    - get_tagged_oid
    - fprintf
    linkageType: ''
    returnType: void
    signature: void describe_commit(struct commit *cmit, struct strbuf *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - commit
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: process_commit
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void process_commit(struct commit *commit, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/builtin/describe.c:555,1
    - Dst: reset_revision_walk
      Src: /src/git/builtin/describe.c:556,1
    - Dst: describe_commit
      Src: /src/git/builtin/describe.c:558,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/describe.c:559,1
    - Dst: commit_list_free
      Src: /src/git/builtin/describe.c:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - obj
    - path
    - data
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 551
    functionDepth: 22
    functionLinenumber: 551
    functionLinenumberEnd: 564
    functionName: process_object
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 1
    functionsReached:
    - strbuf_addf
    - reset_revision_walk
    - describe_commit
    - commit_list_free
    - oideq
    linkageType: ''
    returnType: void
    signature: void process_object(struct object *obj, const char *path, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/describe.c:573,1
    - Dst: die
      Src: /src/git/builtin/describe.c:574,1
    - Dst: _
      Src: /src/git/builtin/describe.c:574,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/describe.c:575,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/describe.c:577,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/describe.c:579,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/describe.c:582,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/builtin/describe.c:583,1
    - Dst: BUG
      Src: /src/git/builtin/describe.c:585,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/describe.c:587,1
    - Dst: die
      Src: /src/git/builtin/describe.c:588,1
    - Dst: traverse_commit_list
      Src: /src/git/builtin/describe.c:590,1
    - Dst: reset_revision_walk
      Src: /src/git/builtin/describe.c:591,1
    - Dst: release_revisions
      Src: /src/git/builtin/describe.c:592,1
    - Dst: strvec_clear
      Src: /src/git/builtin/describe.c:593,1
    - Dst: die
      Src: /src/git/builtin/describe.c:596,1
    - Dst: _
      Src: /src/git/builtin/describe.c:596,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/describe.c:596,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - oid
    - dst
    argTypes:
    - struct object_id*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 566
    functionDepth: 13
    functionLinenumber: 566
    functionLinenumberEnd: 597
    functionName: describe_blob
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - traverse_commit_list
    - release_revisions
    - repo_get_oid
    - strvec_pushl
    - reset_revision_walk
    - repo_init_revisions
    - setup_revisions_from_strvec
    - strvec_clear
    - prepare_revision_walk
    - _
    - BUG
    linkageType: ''
    returnType: void
    signature: void describe_blob(const struct object_id *oid, struct strbuf *dst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/describe.c:606,1
    - Dst: _
      Src: /src/git/builtin/describe.c:606,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/describe.c:608,1
    - Dst: die
      Src: /src/git/builtin/describe.c:609,1
    - Dst: _
      Src: /src/git/builtin/describe.c:609,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/describe.c:610,1
    - Dst: describe_commit
      Src: /src/git/builtin/describe.c:613,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/describe.c:614,1
    - Dst: describe_blob
      Src: /src/git/builtin/describe.c:616,1
    - Dst: die
      Src: /src/git/builtin/describe.c:618,1
    - Dst: _
      Src: /src/git/builtin/describe.c:618,1
    - Dst: puts
      Src: /src/git/builtin/describe.c:620,1
    - Dst: clear_commit_marks
      Src: /src/git/builtin/describe.c:623,1
    - Dst: strbuf_release
      Src: /src/git/builtin/describe.c:625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - arg
    - last_one
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 599
    functionDepth: 22
    functionLinenumber: 599
    functionLinenumberEnd: 626
    functionName: describe
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - die
    - lookup_commit_reference_gently
    - puts
    - repo_get_oid
    - describe_commit
    - clear_commit_marks
    - odb_read_object_info
    - describe_blob
    - _
    - fprintf
    linkageType: ''
    returnType: void
    signature: void describe(const char *arg, int last_one)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/describe.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 637
    functionName: option_parse_exact_match
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int option_parse_exact_match(const struct option *opt, const char
      *arg,\n\t\t\t\t    int unset)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/describe.c:649,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:649,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/describe.c:650,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:650,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/describe.c:651,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:651,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/describe.c:652,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:652,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/describe.c:653,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:653,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/describe.c:654,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:654,1
    - Dst: OPT__ABBREV
      Src: /src/git/builtin/describe.c:655,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/describe.c:656,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:657,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/describe.c:659,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:660,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/describe.c:661,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:661,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:662,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/describe.c:663,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:663,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:664,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/describe.c:665,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:666,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:671,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:672,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:680,1
    - Dst: N_
      Src: /src/git/builtin/describe.c:681,1
    - Dst: OPT_END
      Src: /src/git/builtin/describe.c:685,1
    - Dst: repo_config
      Src: /src/git/builtin/describe.c:688,1
    - Dst: parse_options
      Src: /src/git/builtin/describe.c:689,1
    - Dst: die
      Src: /src/git/builtin/describe.c:701,1
    - Dst: _
      Src: /src/git/builtin/describe.c:701,1
    - Dst: strvec_init
      Src: /src/git/builtin/describe.c:709,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/describe.c:710,1
    - Dst: strvec_push
      Src: /src/git/builtin/describe.c:714,1
    - Dst: strvec_push
      Src: /src/git/builtin/describe.c:716,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/describe.c:717,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/describe.c:718,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/describe.c:719,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/describe.c:720,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/describe.c:723,1
    - Dst: strvec_push
      Src: /src/git/builtin/describe.c:725,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/describe.c:731,1
    - Dst: cmd_name_rev
      Src: /src/git/builtin/describe.c:736,1
    - Dst: strvec_clear
      Src: /src/git/builtin/describe.c:738,1
    - Dst: free
      Src: /src/git/builtin/describe.c:739,1
    - Dst: hashmap_init
      Src: /src/git/builtin/describe.c:743,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/describe.c:744,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/describe.c:744,1
    - Dst: hashmap_get_size
      Src: /src/git/builtin/describe.c:746,1
    - Dst: die
      Src: /src/git/builtin/describe.c:747,1
    - Dst: _
      Src: /src/git/builtin/describe.c:747,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/describe.c:753,1
    - Dst: run_command
      Src: /src/git/builtin/describe.c:757,1
    - Dst: child_process_init
      Src: /src/git/builtin/describe.c:759,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/describe.c:760,1
    - Dst: run_command
      Src: /src/git/builtin/describe.c:768,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/describe.c:784,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/describe.c:785,1
    - Dst: repo_read_index
      Src: /src/git/builtin/describe.c:787,1
    - Dst: refresh_index
      Src: /src/git/builtin/describe.c:788,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/describe.c:790,1
    - Dst: repo_update_index_if_able
      Src: /src/git/builtin/describe.c:793,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/describe.c:795,1
    - Dst: setup_revisions
      Src: /src/git/builtin/describe.c:797,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/describe.c:797,1
    - Dst: BUG
      Src: /src/git/builtin/describe.c:799,1
    - Dst: run_diff_index
      Src: /src/git/builtin/describe.c:800,1
    - Dst: diff_result_code
      Src: /src/git/builtin/describe.c:802,1
    - Dst: release_revisions
      Src: /src/git/builtin/describe.c:806,1
    - Dst: describe
      Src: /src/git/builtin/describe.c:808,1
    - Dst: die
      Src: /src/git/builtin/describe.c:810,1
    - Dst: _
      Src: /src/git/builtin/describe.c:810,1
    - Dst: die
      Src: /src/git/builtin/describe.c:812,1
    - Dst: _
      Src: /src/git/builtin/describe.c:812,1
    - Dst: describe
      Src: /src/git/builtin/describe.c:815,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 95
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 639
    functionDepth: 23
    functionLinenumber: 639
    functionLinenumberEnd: 818
    functionName: cmd_describe
    functionSourceFile: /src/git/builtin/describe.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_options
    - for_each_string_list_item
    - hashmap_init
    - OPT_BOOL
    - repo_init_revisions
    - repo_hold_locked_index
    - hashmap_get_size
    - run_diff_index
    - free
    - refresh_index
    - repo_config
    - get_main_ref_store
    - OPT_END
    - die
    - release_revisions
    - child_process_init
    - repo_read_index
    - ALLOC_ARRAY
    - describe
    - OPT_STRING_LIST
    - OPT_INTEGER
    - ARRAY_SIZE
    - OPT__ABBREV
    - setup_work_tree
    - strvec_pushv
    - strvec_pushl
    - diff_result_code
    - strvec_init
    - repo_update_index_if_able
    - cmd_name_rev
    - _
    - N_
    - setup_revisions
    - strvec_pushf
    - run_command
    - OPT_CALLBACK_F
    - prepare_repo_settings
    - refs_for_each_ref_ext
    - strvec_clear
    - BUG
    linkageType: ''
    returnType: int
    signature: "int cmd_describe(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo UNUSED )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_apply_state
      Src: /src/git/builtin/apply.c:22,1
    - Dst: exit
      Src: /src/git/builtin/apply.c:23,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/apply.c:32,1
    - Dst: apply_parse_options
      Src: /src/git/builtin/apply.c:34,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/apply.c:39,1
    - Dst: check_apply_state
      Src: /src/git/builtin/apply.c:43,1
    - Dst: exit
      Src: /src/git/builtin/apply.c:44,1
    - Dst: apply_all_patches
      Src: /src/git/builtin/apply.c:46,1
    - Dst: clear_apply_state
      Src: /src/git/builtin/apply.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 12
    functionDepth: 21
    functionLinenumber: 12
    functionLinenumberEnd: 51
    functionName: cmd_apply
    functionSourceFile: /src/git/builtin/apply.c
    functionUses: 0
    functionsReached:
    - apply_all_patches
    - exit
    - prepare_repo_settings
    - init_apply_state
    - check_apply_state
    - clear_apply_state
    - apply_parse_options
    - repo_set_hash_algo
    linkageType: ''
    returnType: int
    signature: "int cmd_apply(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/last-modified.c:40,1
    - Dst: container_of
      Src: /src/git/builtin/last-modified.c:42,1
    - Dst: strcmp
      Src: /src/git/builtin/last-modified.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - unused
    - hent1
    - hent2
    - path
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: last_modified_entry_hashcmp
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int last_modified_entry_hashcmp(const void *unused UNUSED,\n\t\t\t\t
      \      const struct hashmap_entry *hent1,\n\t\t\t\t       const struct hashmap_entry
      *hent2,\n\t\t\t\t       const void *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: active_paths_for_commit_at
      Src: /src/git/builtin/last-modified.c:70,1
    - Dst: bitmap_word_alloc
      Src: /src/git/builtin/last-modified.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lm
    - c
    argTypes:
    - struct last_modified*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: active_paths_for
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - bitmap_word_alloc
    - active_paths_for_commit_at
    linkageType: ''
    returnType: struct bitmap
    signature: struct bitmap *active_paths_for(struct last_modified *lm, struct commit
      *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: active_paths_for_commit_at
      Src: /src/git/builtin/last-modified.c:79,1
    - Dst: bitmap_free
      Src: /src/git/builtin/last-modified.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lm
    - c
    argTypes:
    - struct last_modified*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: active_paths_free
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - active_paths_for_commit_at
    - bitmap_free
    linkageType: ''
    returnType: void
    signature: void active_paths_free(struct last_modified *lm, struct commit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/last-modified.c:91,1
    - Dst: bloom_key_clear
      Src: /src/git/builtin/last-modified.c:92,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/builtin/last-modified.c:94,1
    - Dst: release_revisions
      Src: /src/git/builtin/last-modified.c:95,1
    - Dst: free
      Src: /src/git/builtin/last-modified.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - lm
    argTypes:
    - struct last_modified*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: last_modified_release
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - release_revisions
    - bloom_key_clear
    - hashmap_clear_and_free
    - free
    - hashmap_for_each_entry
    linkageType: ''
    returnType: void
    signature: void last_modified_release(struct last_modified *lm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/builtin/last-modified.c:115,1
    - Dst: oidcpy
      Src: /src/git/builtin/last-modified.c:116,1
    - Dst: bloom_key_fill
      Src: /src/git/builtin/last-modified.c:118,1
    - Dst: strlen
      Src: /src/git/builtin/last-modified.c:118,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/last-modified.c:120,1
    - Dst: strhash
      Src: /src/git/builtin/last-modified.c:120,1
    - Dst: hashmap_add
      Src: /src/git/builtin/last-modified.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - q
    - UNUSED
    - data
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: add_path_from_diff
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_add
    - oidcpy
    - hashmap_entry_init
    - strlen
    - bloom_key_fill
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: void
    signature: "void add_path_from_diff(struct diff_queue_struct *q,\n\t\t\t       struct
      diff_options *opt UNUSED, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/builtin/last-modified.c:137,1
    - Dst: copy_pathspec
      Src: /src/git/builtin/last-modified.c:138,1
    - Dst: error
      Src: /src/git/builtin/last-modified.c:150,1
    - Dst: _
      Src: /src/git/builtin/last-modified.c:150,1
    - Dst: repo_peel_to_type
      Src: /src/git/builtin/last-modified.c:154,1
    - Dst: error
      Src: /src/git/builtin/last-modified.c:155,1
    - Dst: _
      Src: /src/git/builtin/last-modified.c:155,1
    - Dst: type_name
      Src: /src/git/builtin/last-modified.c:155,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/last-modified.c:159,1
    - Dst: diff_flush
      Src: /src/git/builtin/last-modified.c:161,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/last-modified.c:165,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - lm
    argTypes:
    - struct last_modified*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 125
    functionDepth: 28
    functionLinenumber: 125
    functionLinenumberEnd: 168
    functionName: populate_paths_from_revs
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - error
    - clear_pathspec
    - repo_peel_to_type
    - copy_pathspec
    - diff_tree_oid
    - memcpy
    - diff_flush
    - _
    - type_name
    linkageType: ''
    returnType: int
    signature: int populate_paths_from_revs(struct last_modified *lm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/git/builtin/last-modified.c:175,1
    - Dst: printf
      Src: /src/git/builtin/last-modified.c:176,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/last-modified.c:176,1
    - Dst: printf
      Src: /src/git/builtin/last-modified.c:179,1
    - Dst: write_name_quoted
      Src: /src/git/builtin/last-modified.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - lm
    - path
    - commit
    argTypes:
    - struct last_modified*
    - char*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 182
    functionName: last_modified_emit
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - write_name_quoted
    - putchar
    - oid_to_hex
    - printf
    linkageType: ''
    returnType: void
    signature: "void last_modified_emit(struct last_modified *lm,\n\t\t\t       const
      char *path, const struct commit *commit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/builtin/last-modified.c:190,1
    - Dst: strhash
      Src: /src/git/builtin/last-modified.c:190,1
    - Dst: oideq
      Src: /src/git/builtin/last-modified.c:199,1
    - Dst: last_modified_emit
      Src: /src/git/builtin/last-modified.c:202,1
    - Dst: hashmap_remove
      Src: /src/git/builtin/last-modified.c:204,1
    - Dst: bloom_key_clear
      Src: /src/git/builtin/last-modified.c:205,1
    - Dst: free
      Src: /src/git/builtin/last-modified.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - path
    - oid
    - data
    argTypes:
    - char*
    - struct object_id*
    - struct last_modified_callback_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 184
    functionDepth: 6
    functionLinenumber: 184
    functionLinenumberEnd: 207
    functionName: mark_path
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - strhash
    - bloom_key_clear
    - hashmap_get_entry_from_hash
    - last_modified_emit
    - hashmap_remove
    - free
    - oideq
    linkageType: ''
    returnType: void
    signature: "void mark_path(const char *path, const struct object_id *oid,\n\t\t
      \     struct last_modified_callback_data *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mark_path
      Src: /src/git/builtin/last-modified.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - q
    - UNUSED
    - cbdata
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 209
    functionDepth: 7
    functionLinenumber: 209
    functionLinenumberEnd: 247
    functionName: last_modified_diff
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - mark_path
    linkageType: ''
    returnType: void
    signature: "void last_modified_diff(struct diff_queue_struct *q,\n\t\t\t       struct
      diff_options *opt UNUSED, void *cbdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_unset
      Src: /src/git/builtin/last-modified.c:253,1
    - Dst: bitmap_set
      Src: /src/git/builtin/last-modified.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - c
    - p
    - pos
    argTypes:
    - struct bitmap*
    - struct bitmap*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: pass_to_parent
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - bitmap_unset
    - bitmap_set
    linkageType: ''
    returnType: void
    signature: "void pass_to_parent(struct bitmap *c,\n\t\t\t   struct bitmap *p,\n\t\t\t
      \  size_t pos)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_generation
      Src: /src/git/builtin/last-modified.c:268,1
    - Dst: get_bloom_filter
      Src: /src/git/builtin/last-modified.c:271,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/last-modified.c:275,1
    - Dst: bitmap_get
      Src: /src/git/builtin/last-modified.c:276,1
    - Dst: bloom_filter_contains
      Src: /src/git/builtin/last-modified.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - lm
    - origin
    - active
    argTypes:
    - struct last_modified*
    - struct commit*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 284
    functionName: maybe_changed_path
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 1
    functionsReached:
    - commit_graph_generation
    - bloom_filter_contains
    - get_bloom_filter
    - bitmap_get
    - hashmap_for_each_entry
    linkageType: ''
    returnType: bool
    signature: "bool maybe_changed_path(struct last_modified *lm,\n\t\t\t       struct
      commit *origin,\n\t\t\t       struct bitmap *active)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/builtin/last-modified.c:293,1
    - Dst: active_paths_for
      Src: /src/git/builtin/last-modified.c:294,1
    - Dst: maybe_changed_path
      Src: /src/git/builtin/last-modified.c:300,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/last-modified.c:301,1
    - Dst: diffcore_std
      Src: /src/git/builtin/last-modified.c:303,1
    - Dst: hashmap_get_entry_from_hash
      Src: /src/git/builtin/last-modified.c:317,1
    - Dst: strhash
      Src: /src/git/builtin/last-modified.c:317,1
    - Dst: bitmap_get
      Src: /src/git/builtin/last-modified.c:321,1
    - Dst: bitmap_set
      Src: /src/git/builtin/last-modified.c:322,1
    - Dst: bitmap_get
      Src: /src/git/builtin/last-modified.c:326,1
    - Dst: bitmap_get
      Src: /src/git/builtin/last-modified.c:326,1
    - Dst: pass_to_parent
      Src: /src/git/builtin/last-modified.c:327,1
    - Dst: bitmap_is_empty
      Src: /src/git/builtin/last-modified.c:333,1
    - Dst: prio_queue_put
      Src: /src/git/builtin/last-modified.c:335,1
    - Dst: active_paths_free
      Src: /src/git/builtin/last-modified.c:338,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/builtin/last-modified.c:340,1
    - Dst: diff_queue_clear
      Src: /src/git/builtin/last-modified.c:341,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 6
    argNames:
    - lm
    - queue
    - c
    - active_c
    - parent
    - parent_i
    argTypes:
    - struct last_modified*
    - struct prio_queue*
    - struct commit*
    - struct bitmap*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 286
    functionDepth: 28
    functionLinenumber: 286
    functionLinenumberEnd: 342
    functionName: process_parent
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - strhash
    - prio_queue_put
    - repo_parse_commit
    - diff_tree_oid
    - hashmap_get_entry_from_hash
    - maybe_changed_path
    - bitmap_set
    - bitmap_is_empty
    - diffcore_std
    - MEMZERO_ARRAY
    - diff_queue_clear
    - bitmap_get
    - active_paths_free
    - active_paths_for
    - pass_to_parent
    linkageType: ''
    returnType: void
    signature: "void process_parent(struct last_modified *lm,\n\t\t\t   struct prio_queue
      *queue,\n\t\t\t   struct commit *c, struct bitmap *active_c,\n\t\t\t   struct
      commit *parent, int parent_i)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/last-modified.c:357,1
    - Dst: init_active_paths_for_commit
      Src: /src/git/builtin/last-modified.c:361,1
    - Dst: bitmap_word_alloc
      Src: /src/git/builtin/last-modified.c:362,1
    - Dst: prio_queue_put
      Src: /src/git/builtin/last-modified.c:373,1
    - Dst: prio_queue_put
      Src: /src/git/builtin/last-modified.c:383,1
    - Dst: active_paths_for
      Src: /src/git/builtin/last-modified.c:386,1
    - Dst: bitmap_set
      Src: /src/git/builtin/last-modified.c:388,1
    - Dst: prio_queue_get
      Src: /src/git/builtin/last-modified.c:395,1
    - Dst: active_paths_for
      Src: /src/git/builtin/last-modified.c:396,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/last-modified.c:406,1
    - Dst: diff_flush
      Src: /src/git/builtin/last-modified.c:409,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/last-modified.c:417,1
    - Dst: prio_queue_get
      Src: /src/git/builtin/last-modified.c:421,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/last-modified.c:423,1
    - Dst: prio_queue_put
      Src: /src/git/builtin/last-modified.c:427,1
    - Dst: commit_graph_generation
      Src: /src/git/builtin/last-modified.c:432,1
    - Dst: commit_graph_generation
      Src: /src/git/builtin/last-modified.c:432,1
    - Dst: process_parent
      Src: /src/git/builtin/last-modified.c:441,1
    - Dst: bitmap_is_empty
      Src: /src/git/builtin/last-modified.c:445,1
    - Dst: bitmap_is_empty
      Src: /src/git/builtin/last-modified.c:453,1
    - Dst: bitmap_get
      Src: /src/git/builtin/last-modified.c:456,1
    - Dst: mark_path
      Src: /src/git/builtin/last-modified.c:457,1
    - Dst: active_paths_free
      Src: /src/git/builtin/last-modified.c:462,1
    - Dst: hashmap_get_size
      Src: /src/git/builtin/last-modified.c:465,1
    - Dst: BUG
      Src: /src/git/builtin/last-modified.c:466,1
    - Dst: clear_prio_queue
      Src: /src/git/builtin/last-modified.c:468,1
    - Dst: clear_prio_queue
      Src: /src/git/builtin/last-modified.c:469,1
    - Dst: clear_active_paths_for_commit
      Src: /src/git/builtin/last-modified.c:470,1
    - Dst: bitmap_free
      Src: /src/git/builtin/last-modified.c:471,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 1
    argNames:
    - lm
    argTypes:
    - struct last_modified*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 344
    functionDepth: 29
    functionLinenumber: 344
    functionLinenumberEnd: 474
    functionName: last_modified_run
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - clear_active_paths_for_commit
    - prio_queue_get
    - process_parent
    - bitmap_is_empty
    - hashmap_get_size
    - mark_path
    - active_paths_free
    - prio_queue_put
    - commit_graph_generation
    - repo_parse_commit
    - bitmap_set
    - prepare_revision_walk
    - bitmap_get
    - init_active_paths_for_commit
    - diff_flush
    - active_paths_for
    - diff_tree_oid
    - bitmap_free
    - clear_prio_queue
    - BUG
    - bitmap_word_alloc
    linkageType: ''
    returnType: int
    signature: int last_modified_run(struct last_modified *lm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/builtin/last-modified.c:482,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/last-modified.c:484,1
    - Dst: setup_revisions
      Src: /src/git/builtin/last-modified.c:497,1
    - Dst: error
      Src: /src/git/builtin/last-modified.c:499,1
    - Dst: _
      Src: /src/git/builtin/last-modified.c:499,1
    - Dst: get_bloom_filter_settings
      Src: /src/git/builtin/last-modified.c:503,1
    - Dst: populate_paths_from_revs
      Src: /src/git/builtin/last-modified.c:505,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/last-modified.c:508,1
    - Dst: hashmap_get_size
      Src: /src/git/builtin/last-modified.c:508,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/last-modified.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 5
    argNames:
    - lm
    - r
    - prefix
    - argc
    - argv
    argTypes:
    - struct last_modified*
    - struct repository*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 476
    functionDepth: 29
    functionLinenumber: 476
    functionLinenumberEnd: 516
    functionName: last_modified_init
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - error
    - get_bloom_filter_settings
    - hashmap_init
    - repo_init_revisions
    - populate_paths_from_revs
    - hashmap_get_size
    - _
    - CALLOC_ARRAY
    - setup_revisions
    - hashmap_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int last_modified_init(struct last_modified *lm, struct repository
      *r,\n\t\t\t      const char *prefix, int argc, const char **argv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/last-modified.c:525,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/last-modified.c:531,1
    - Dst: N_
      Src: /src/git/builtin/last-modified.c:532,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/last-modified.c:533,1
    - Dst: N_
      Src: /src/git/builtin/last-modified.c:534,1
    - Dst: OPT_INTEGER_F
      Src: /src/git/builtin/last-modified.c:535,1
    - Dst: N_
      Src: /src/git/builtin/last-modified.c:536,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/last-modified.c:537,1
    - Dst: N_
      Src: /src/git/builtin/last-modified.c:538,1
    - Dst: OPT_END
      Src: /src/git/builtin/last-modified.c:539,1
    - Dst: parse_options
      Src: /src/git/builtin/last-modified.c:542,1
    - Dst: repo_config
      Src: /src/git/builtin/last-modified.c:547,1
    - Dst: last_modified_init
      Src: /src/git/builtin/last-modified.c:549,1
    - Dst: usage_with_options
      Src: /src/git/builtin/last-modified.c:551,1
    - Dst: last_modified_run
      Src: /src/git/builtin/last-modified.c:556,1
    - Dst: last_modified_release
      Src: /src/git/builtin/last-modified.c:561,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 518
    functionDepth: 30
    functionLinenumber: 518
    functionLinenumberEnd: 564
    functionName: cmd_last_modified
    functionSourceFile: /src/git/builtin/last-modified.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - OPT_SET_INT
    - OPT_BOOL
    - last_modified_init
    - last_modified_run
    - OPT_INTEGER_F
    - last_modified_release
    - N_
    - repo_config
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_last_modified(int argc, const char **argv, const char *prefix,\n\t\t
      \     struct repository *repo)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/verify-tag.c:32,1
    - Dst: N_
      Src: /src/git/builtin/verify-tag.c:32,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/verify-tag.c:33,1
    - Dst: N_
      Src: /src/git/builtin/verify-tag.c:33,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/verify-tag.c:34,1
    - Dst: N_
      Src: /src/git/builtin/verify-tag.c:34,1
    - Dst: N_
      Src: /src/git/builtin/verify-tag.c:34,1
    - Dst: OPT_END
      Src: /src/git/builtin/verify-tag.c:35,1
    - Dst: repo_config
      Src: /src/git/builtin/verify-tag.c:38,1
    - Dst: parse_options
      Src: /src/git/builtin/verify-tag.c:40,1
    - Dst: usage_with_options
      Src: /src/git/builtin/verify-tag.c:43,1
    - Dst: verify_ref_format
      Src: /src/git/builtin/verify-tag.c:49,1
    - Dst: usage_with_options
      Src: /src/git/builtin/verify-tag.c:50,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/verify-tag.c:59,1
    - Dst: error
      Src: /src/git/builtin/verify-tag.c:60,1
    - Dst: gpg_verify_tag
      Src: /src/git/builtin/verify-tag.c:64,1
    - Dst: pretty_print_ref
      Src: /src/git/builtin/verify-tag.c:70,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 23
    functionDepth: 19
    functionLinenumber: 23
    functionLinenumberEnd: 73
    functionName: cmd_verify_tag
    functionSourceFile: /src/git/builtin/verify-tag.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - verify_ref_format
    - repo_get_oid
    - OPT_STRING
    - gpg_verify_tag
    - OPT_BIT
    - repo_config
    - pretty_print_ref
    - N_
    - OPT__VERBOSE
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_verify_tag(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/upload-pack.c:33,1
    - Dst: N_
      Src: /src/git/builtin/upload-pack.c:34,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/upload-pack.c:35,1
    - Dst: N_
      Src: /src/git/builtin/upload-pack.c:36,1
    - Dst: OPT_ALIAS
      Src: /src/git/builtin/upload-pack.c:37,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/upload-pack.c:38,1
    - Dst: N_
      Src: /src/git/builtin/upload-pack.c:39,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/upload-pack.c:40,1
    - Dst: N_
      Src: /src/git/builtin/upload-pack.c:41,1
    - Dst: OPT_END
      Src: /src/git/builtin/upload-pack.c:42,1
    - Dst: packet_trace_identity
      Src: /src/git/builtin/upload-pack.c:46,1
    - Dst: disable_replace_refs
      Src: /src/git/builtin/upload-pack.c:47,1
    - Dst: xsetenv
      Src: /src/git/builtin/upload-pack.c:49,1
    - Dst: parse_options
      Src: /src/git/builtin/upload-pack.c:51,1
    - Dst: usage_with_options
      Src: /src/git/builtin/upload-pack.c:54,1
    - Dst: setup_path
      Src: /src/git/builtin/upload-pack.c:56,1
    - Dst: enter_repo
      Src: /src/git/builtin/upload-pack.c:62,1
    - Dst: die
      Src: /src/git/builtin/upload-pack.c:63,1
    - Dst: determine_protocol_version_server
      Src: /src/git/builtin/upload-pack.c:65,1
    - Dst: protocol_v2_advertise_capabilities
      Src: /src/git/builtin/upload-pack.c:68,1
    - Dst: protocol_v2_serve_loop
      Src: /src/git/builtin/upload-pack.c:70,1
    - Dst: packet_write_fmt
      Src: /src/git/builtin/upload-pack.c:78,1
    - Dst: upload_pack
      Src: /src/git/builtin/upload-pack.c:82,1
    - Dst: BUG
      Src: /src/git/builtin/upload-pack.c:85,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 22
    functionDepth: 13
    functionLinenumber: 22
    functionLinenumberEnd: 89
    functionName: cmd_upload_pack
    functionSourceFile: /src/git/builtin/upload-pack.c
    functionUses: 0
    functionsReached:
    - parse_options
    - setup_path
    - OPT_BOOL
    - packet_trace_identity
    - xsetenv
    - OPT_ALIAS
    - usage_with_options
    - OPT_END
    - die
    - disable_replace_refs
    - OPT_HIDDEN_BOOL
    - OPT_INTEGER
    - packet_write_fmt
    - upload_pack
    - N_
    - enter_repo
    - protocol_v2_serve_loop
    - determine_protocol_version_server
    - BUG
    - protocol_v2_advertise_capabilities
    linkageType: ''
    returnType: int
    signature: "int cmd_upload_pack(int argc,\n\t\t    const char **argv,\n\t\t    const
      char *prefix,\n\t\t    struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct llist_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: llist_item_put
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void llist_item_put(struct llist_item *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/pack-redundant.c:60,1
    - Dst: llist_item_put
      Src: /src/git/builtin/pack-redundant.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: llist_item_get
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_item_put
    - ALLOC_ARRAY
    linkageType: ''
    returnType: struct llist_item
    signature: struct llist_item *llist_item_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/builtin/pack-redundant.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct llist**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: llist_init
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: void
    signature: void llist_init(struct llist **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_item_put
      Src: /src/git/builtin/pack-redundant.c:78,1
    - Dst: free
      Src: /src/git/builtin/pack-redundant.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct llist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: llist_free
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_item_put
    - free
    linkageType: ''
    returnType: void
    signature: void llist_free(struct llist *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_init
      Src: /src/git/builtin/pack-redundant.c:88,1
    - Dst: llist_item_get
      Src: /src/git/builtin/pack-redundant.c:93,1
    - Dst: llist_item_get
      Src: /src/git/builtin/pack-redundant.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct llist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: llist_copy
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_item_get
    - llist_init
    linkageType: ''
    returnType: struct llist
    signature: struct llist * llist_copy(struct llist *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: llist_item_get
      Src: /src/git/builtin/pack-redundant.c:114,1
    - Dst: oidread
      Src: /src/git/builtin/pack-redundant.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - list
    - after
    - oid
    argTypes:
    - struct llist*
    - struct llist_item*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: llist_insert
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_item_get
    - oidread
    linkageType: ''
    returnType: struct llist_item
    signature: "struct llist_item *llist_insert(struct llist *list,\n\t\t\t\t\t      struct
      llist_item *after,\n\t\t\t\t\t      const unsigned char *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_insert
      Src: /src/git/builtin/pack-redundant.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - oid
    argTypes:
    - struct llist*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: llist_insert_back
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_insert
    linkageType: ''
    returnType: struct llist_item
    signature: "struct llist_item *llist_insert_back(struct llist *list,\n\t\t\t\t\t\t
      \  const unsigned char *oid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/builtin/pack-redundant.c:147,1
    - Dst: llist_insert
      Src: /src/git/builtin/pack-redundant.c:149,1
    - Dst: llist_insert_back
      Src: /src/git/builtin/pack-redundant.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - list
    - oid
    - hint
    argTypes:
    - struct llist*
    - struct object_id*
    - struct llist_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 159
    functionName: llist_insert_sorted_unique
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_insert
    - oidcmp
    - llist_insert_back
    linkageType: ''
    returnType: struct llist_item
    signature: "struct llist_item *llist_insert_sorted_unique(struct llist *list,\n\t\t\tconst
      struct object_id *oid, struct llist_item *hint)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashcmp
      Src: /src/git/builtin/pack-redundant.c:170,1
    - Dst: llist_item_put
      Src: /src/git/builtin/pack-redundant.c:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - list
    - oid
    - hint
    argTypes:
    - struct llist*
    - unsigned char*
    - struct llist_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: llist_sorted_remove
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - hashcmp
    - llist_item_put
    linkageType: ''
    returnType: struct llist_item
    signature: struct llist_item * llist_sorted_remove(struct llist *list, const unsigned
      char *oid, struct llist_item *hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_sorted_remove
      Src: /src/git/builtin/pack-redundant.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - A
    - B
    argTypes:
    - struct llist*
    - struct llist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 208
    functionName: llist_sorted_difference_inplace
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_sorted_remove
    linkageType: ''
    returnType: void
    signature: "void llist_sorted_difference_inplace(struct llist *A,\n\t\t\t\t     struct
      llist *B)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/builtin/pack-redundant.c:213,1
    - Dst: memcpy
      Src: /src/git/builtin/pack-redundant.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pl
    - entry
    argTypes:
    - struct pack_list**
    - struct pack_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: pack_list_insert
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - memcpy
    linkageType: ''
    returnType: struct pack_list
    signature: "struct pack_list * pack_list_insert(struct pack_list **pl,\n\t\t\t\t\t
      \  struct pack_list *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/pack-redundant.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pl
    argTypes:
    - struct pack_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: pack_list_free
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void pack_list_free(struct pack_list *pl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pl
    argTypes:
    - struct pack_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: pack_list_size
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pack_list_size(struct pack_list *pl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pack_list_difference
      Src: /src/git/builtin/pack-redundant.c:250,1
    - Dst: xmalloc
      Src: /src/git/builtin/pack-redundant.c:253,1
    - Dst: memcpy
      Src: /src/git/builtin/pack-redundant.c:254,1
    - Dst: pack_list_difference
      Src: /src/git/builtin/pack-redundant.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - A
    - B
    argTypes:
    - struct pack_list*
    - struct pack_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 257
    functionName: pack_list_difference
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - pack_list_difference
    - memcpy
    linkageType: ''
    returnType: struct pack_list
    signature: "struct pack_list * pack_list_difference(const struct pack_list *A,\n\t\t\t\t\t
      \      const struct pack_list *B)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: llist_copy
      Src: /src/git/builtin/pack-redundant.c:267,1
    - Dst: llist_copy
      Src: /src/git/builtin/pack-redundant.c:269,1
    - Dst: hashcmp
      Src: /src/git/builtin/pack-redundant.c:281,1
    - Dst: llist_sorted_remove
      Src: /src/git/builtin/pack-redundant.c:285,1
    - Dst: llist_sorted_remove
      Src: /src/git/builtin/pack-redundant.c:288,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - struct pack_list*
    - struct pack_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 301
    functionName: cmp_two_packs
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - hashcmp
    - llist_sorted_remove
    - llist_copy
    linkageType: ''
    returnType: void
    signature: void cmp_two_packs(struct pack_list *p1, struct pack_list *p2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashcmp
      Src: /src/git/builtin/pack-redundant.c:320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - struct packed_git*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 336
    functionName: sizeof_union
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - hashcmp
    linkageType: ''
    returnType: size_t
    signature: size_t sizeof_union(struct packed_git *p1, struct packed_git *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_union
      Src: /src/git/builtin/pack-redundant.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pl
    argTypes:
    - struct pack_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 355
    functionName: get_pack_redundancy
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - sizeof_union
    linkageType: ''
    returnType: size_t
    signature: size_t get_pack_redundancy(struct pack_list *pl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pl
    argTypes:
    - struct pack_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 366
    functionName: pack_set_bytecount
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: off_t
    signature: off_t pack_set_bytecount(struct pack_list *pl)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 387
    functionName: cmp_remaining_objects
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_remaining_objects(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pack_list_size
      Src: /src/git/builtin/pack-redundant.c:393,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/pack-redundant.c:399,1
    - Dst: QSORT
      Src: /src/git/builtin/pack-redundant.c:403,1
    - Dst: free
      Src: /src/git/builtin/pack-redundant.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - pl
    argTypes:
    - struct pack_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 412
    functionName: sort_pack_list
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - free
    - pack_list_size
    - QSORT
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void sort_pack_list(struct pack_list **pl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pack_list_insert
      Src: /src/git/builtin/pack-redundant.c:423,1
    - Dst: pack_list_insert
      Src: /src/git/builtin/pack-redundant.c:425,1
    - Dst: llist_copy
      Src: /src/git/builtin/pack-redundant.c:429,1
    - Dst: llist_sorted_difference_inplace
      Src: /src/git/builtin/pack-redundant.c:432,1
    - Dst: llist_free
      Src: /src/git/builtin/pack-redundant.c:440,1
    - Dst: pack_list_free
      Src: /src/git/builtin/pack-redundant.c:441,1
    - Dst: llist_copy
      Src: /src/git/builtin/pack-redundant.c:445,1
    - Dst: llist_sorted_difference_inplace
      Src: /src/git/builtin/pack-redundant.c:446,1
    - Dst: llist_sorted_difference_inplace
      Src: /src/git/builtin/pack-redundant.c:451,1
    - Dst: sort_pack_list
      Src: /src/git/builtin/pack-redundant.c:459,1
    - Dst: pack_list_insert
      Src: /src/git/builtin/pack-redundant.c:463,1
    - Dst: llist_sorted_difference_inplace
      Src: /src/git/builtin/pack-redundant.c:466,1
    - Dst: free
      Src: /src/git/builtin/pack-redundant.c:469,1
    - Dst: pack_list_free
      Src: /src/git/builtin/pack-redundant.c:473,1
    - Dst: llist_free
      Src: /src/git/builtin/pack-redundant.c:474,1
    - Dst: llist_free
      Src: /src/git/builtin/pack-redundant.c:475,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - min
    argTypes:
    - struct pack_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 476
    functionName: minimize
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_free
    - pack_list_free
    - llist_copy
    - pack_list_insert
    - free
    - sort_pack_list
    - llist_sorted_difference_inplace
    linkageType: ''
    returnType: void
    signature: void minimize(struct pack_list **min)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_init
      Src: /src/git/builtin/pack-redundant.c:483,1
    - Dst: llist_insert_sorted_unique
      Src: /src/git/builtin/pack-redundant.c:489,1
    - Dst: llist_sorted_difference_inplace
      Src: /src/git/builtin/pack-redundant.c:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 501
    functionName: load_all_objects
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_sorted_difference_inplace
    - llist_init
    - llist_insert_sorted_unique
    linkageType: ''
    returnType: void
    signature: void load_all_objects(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_init
      Src: /src/git/builtin/pack-redundant.c:510,1
    - Dst: cmp_two_packs
      Src: /src/git/builtin/pack-redundant.c:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 519
    functionName: cmp_local_packs
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_init
    - cmp_two_packs
    linkageType: ''
    returnType: void
    signature: void cmp_local_packs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_sorted_difference_inplace
      Src: /src/git/builtin/pack-redundant.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 535
    functionName: scan_alt_odb_packs
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - llist_sorted_difference_inplace
    linkageType: ''
    returnType: void
    signature: void scan_alt_odb_packs(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: llist_init
      Src: /src/git/builtin/pack-redundant.c:547,1
    - Dst: open_pack_index
      Src: /src/git/builtin/pack-redundant.c:549,1
    - Dst: llist_free
      Src: /src/git/builtin/pack-redundant.c:550,1
    - Dst: llist_insert_back
      Src: /src/git/builtin/pack-redundant.c:558,1
    - Dst: pack_list_insert
      Src: /src/git/builtin/pack-redundant.c:564,1
    - Dst: pack_list_insert
      Src: /src/git/builtin/pack-redundant.c:566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 537
    functionDepth: 10
    functionLinenumber: 537
    functionLinenumberEnd: 567
    functionName: add_pack
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 2
    functionsReached:
    - llist_init
    - llist_free
    - pack_list_insert
    - open_pack_index
    - llist_insert_back
    linkageType: ''
    returnType: struct pack_list
    signature: struct pack_list * add_pack(struct packed_git *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/pack-redundant.c:573,1
    - Dst: die
      Src: /src/git/builtin/pack-redundant.c:574,1
    - Dst: repo_for_each_pack
      Src: /src/git/builtin/pack-redundant.c:576,1
    - Dst: strstr
      Src: /src/git/builtin/pack-redundant.c:577,1
    - Dst: add_pack
      Src: /src/git/builtin/pack-redundant.c:578,1
    - Dst: die
      Src: /src/git/builtin/pack-redundant.c:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 569
    functionDepth: 11
    functionLinenumber: 569
    functionLinenumberEnd: 580
    functionName: add_pack_file
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - die
    - strstr
    - strlen
    - repo_for_each_pack
    - add_pack
    linkageType: ''
    returnType: struct pack_list
    signature: struct pack_list * add_pack_file(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_for_each_pack
      Src: /src/git/builtin/pack-redundant.c:586,1
    - Dst: add_pack
      Src: /src/git/builtin/pack-redundant.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 582
    functionDepth: 11
    functionLinenumber: 582
    functionLinenumberEnd: 588
    functionName: load_all
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - repo_for_each_pack
    - add_pack
    linkageType: ''
    returnType: void
    signature: void load_all(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/pack-redundant.c:596,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-redundant.c:600,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-redundant.c:604,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-redundant.c:608,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-redundant.c:612,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-redundant.c:616,1
    - Dst: usage
      Src: /src/git/builtin/pack-redundant.c:621,1
    - Dst: you_still_use_that
      Src: /src/git/builtin/pack-redundant.c:627,1
    - Dst: load_all
      Src: /src/git/builtin/pack-redundant.c:630,1
    - Dst: add_pack_file
      Src: /src/git/builtin/pack-redundant.c:633,1
    - Dst: die
      Src: /src/git/builtin/pack-redundant.c:636,1
    - Dst: load_all_objects
      Src: /src/git/builtin/pack-redundant.c:638,1
    - Dst: scan_alt_odb_packs
      Src: /src/git/builtin/pack-redundant.c:641,1
    - Dst: llist_init
      Src: /src/git/builtin/pack-redundant.c:644,1
    - Dst: isatty
      Src: /src/git/builtin/pack-redundant.c:645,1
    - Dst: fgets
      Src: /src/git/builtin/pack-redundant.c:647,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/pack-redundant.c:648,1
    - Dst: die
      Src: /src/git/builtin/pack-redundant.c:649,1
    - Dst: llist_insert_sorted_unique
      Src: /src/git/builtin/pack-redundant.c:650,1
    - Dst: llist_sorted_difference_inplace
      Src: /src/git/builtin/pack-redundant.c:653,1
    - Dst: llist_sorted_difference_inplace
      Src: /src/git/builtin/pack-redundant.c:656,1
    - Dst: cmp_local_packs
      Src: /src/git/builtin/pack-redundant.c:660,1
    - Dst: minimize
      Src: /src/git/builtin/pack-redundant.c:662,1
    - Dst: fprintf
      Src: /src/git/builtin/pack-redundant.c:665,1
    - Dst: pack_list_size
      Src: /src/git/builtin/pack-redundant.c:666,1
    - Dst: fprintf
      Src: /src/git/builtin/pack-redundant.c:667,1
    - Dst: fprintf
      Src: /src/git/builtin/pack-redundant.c:670,1
    - Dst: fprintf
      Src: /src/git/builtin/pack-redundant.c:673,1
    - Dst: get_pack_redundancy
      Src: /src/git/builtin/pack-redundant.c:675,1
    - Dst: pack_set_bytecount
      Src: /src/git/builtin/pack-redundant.c:676,1
    - Dst: fprintf
      Src: /src/git/builtin/pack-redundant.c:677,1
    - Dst: fprintf
      Src: /src/git/builtin/pack-redundant.c:679,1
    - Dst: pack_list_difference
      Src: /src/git/builtin/pack-redundant.c:681,1
    - Dst: printf
      Src: /src/git/builtin/pack-redundant.c:683,1
    - Dst: odb_pack_name
      Src: /src/git/builtin/pack-redundant.c:684,1
    - Dst: fprintf
      Src: /src/git/builtin/pack-redundant.c:689,1
    - Dst: pack_set_bytecount
      Src: /src/git/builtin/pack-redundant.c:690,1
    - Dst: pack_list_free
      Src: /src/git/builtin/pack-redundant.c:692,1
    - Dst: pack_list_free
      Src: /src/git/builtin/pack-redundant.c:693,1
    - Dst: llist_free
      Src: /src/git/builtin/pack-redundant.c:694,1
    - Dst: strbuf_release
      Src: /src/git/builtin/pack-redundant.c:695,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 78
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 590
    functionDepth: 12
    functionLinenumber: 590
    functionLinenumberEnd: 697
    functionName: cmd_pack_redundant
    functionSourceFile: /src/git/builtin/pack-redundant.c
    functionUses: 0
    functionsReached:
    - fgets
    - llist_init
    - get_pack_redundancy
    - load_all_objects
    - add_pack_file
    - strcmp
    - pack_set_bytecount
    - llist_sorted_difference_inplace
    - printf
    - strbuf_release
    - llist_insert_sorted_unique
    - die
    - pack_list_difference
    - odb_pack_name
    - pack_list_free
    - you_still_use_that
    - cmp_local_packs
    - isatty
    - minimize
    - get_oid_hex
    - pack_list_size
    - load_all
    - scan_alt_odb_packs
    - llist_free
    - show_usage_if_asked
    - usage
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_pack_redundant(int argc, const char **argv, const char *prefix
      UNUSED, struct repository *repo UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/pack-refs.c:11,1
    - Dst: pack_refs_core
      Src: /src/git/builtin/pack-refs.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 5
    functionDepth: 4
    functionLinenumber: 5
    functionLinenumberEnd: 16
    functionName: cmd_pack_refs
    functionSourceFile: /src/git/builtin/pack-refs.c
    functionUses: 0
    functionsReached:
    - N_
    - pack_refs_core
    linkageType: ''
    returnType: int
    signature: "int cmd_pack_refs(int argc,\n\t\t  const char **argv,\n\t\t  const
      char *prefix,\n\t\t  struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: interpolate_path
      Src: /src/git/builtin/for-each-repo.c:20,1
    - Dst: sanitize_repo_env
      Src: /src/git/builtin/for-each-repo.c:22,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/for-each-repo.c:25,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/for-each-repo.c:26,1
    - Dst: free
      Src: /src/git/builtin/for-each-repo.c:28,1
    - Dst: run_command
      Src: /src/git/builtin/for-each-repo.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - path
    - argv
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 8
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: run_command_on_repo
    functionSourceFile: /src/git/builtin/for-each-repo.c
    functionUses: 0
    functionsReached:
    - interpolate_path
    - run_command
    - strvec_pushv
    - strvec_pushl
    - sanitize_repo_env
    - free
    linkageType: ''
    returnType: int
    signature: int run_command_on_repo(const char *path, const char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/for-each-repo.c:45,1
    - Dst: N_
      Src: /src/git/builtin/for-each-repo.c:45,1
    - Dst: N_
      Src: /src/git/builtin/for-each-repo.c:46,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/for-each-repo.c:47,1
    - Dst: N_
      Src: /src/git/builtin/for-each-repo.c:48,1
    - Dst: OPT_END
      Src: /src/git/builtin/for-each-repo.c:49,1
    - Dst: parse_options
      Src: /src/git/builtin/for-each-repo.c:52,1
    - Dst: die
      Src: /src/git/builtin/for-each-repo.c:56,1
    - Dst: _
      Src: /src/git/builtin/for-each-repo.c:56,1
    - Dst: repo_config_get_string_multi
      Src: /src/git/builtin/for-each-repo.c:58,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/for-each-repo.c:60,1
    - Dst: _
      Src: /src/git/builtin/for-each-repo.c:60,1
    - Dst: run_command_on_repo
      Src: /src/git/builtin/for-each-repo.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 33
    functionDepth: 19
    functionLinenumber: 33
    functionLinenumberEnd: 75
    functionName: cmd_for_each_repo
    functionSourceFile: /src/git/builtin/for-each-repo.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - repo_config_get_string_multi
    - OPT_BOOL
    - OPT_STRING
    - run_command_on_repo
    - _
    - N_
    - usage_msg_optf
    linkageType: ''
    returnType: int
    signature: "int cmd_for_each_repo(int argc,\n\t\t      const char **argv,\n\t\t
      \     const char *prefix,\n\t\t      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink_or_warn
      Src: /src/git/builtin/gc.c:68,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: clean_pack_garbage
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - unlink_or_warn
    linkageType: ''
    returnType: void
    signature: void clean_pack_garbage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/builtin/gc.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - seen_bits
    - path
    argTypes:
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: report_pack_garbage
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 1
    functionsReached:
    - string_list_append
    linkageType: ''
    returnType: void
    signature: void report_pack_garbage(unsigned seen_bits, const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/git/builtin/gc.c:81,1
    - Dst: get_lock_file_fd
      Src: /src/git/builtin/gc.c:81,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:89,1
    - Dst: _
      Src: /src/git/builtin/gc.c:89,1
    - Dst: get_lock_file_path
      Src: /src/git/builtin/gc.c:90,1
    - Dst: strerror
      Src: /src/git/builtin/gc.c:91,1
    - Dst: fflush
      Src: /src/git/builtin/gc.c:92,1
    - Dst: commit_lock_file
      Src: /src/git/builtin/gc.c:93,1
    - Dst: commit_lock_file
      Src: /src/git/builtin/gc.c:97,1
    - Dst: repo_git_path
      Src: /src/git/builtin/gc.c:99,1
    - Dst: unlink
      Src: /src/git/builtin/gc.c:101,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/gc.c:102,1
    - Dst: free
      Src: /src/git/builtin/gc.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 78
    functionDepth: 8
    functionLinenumber: 78
    functionLinenumberEnd: 105
    functionName: process_log_file
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    - commit_lock_file
    - fstat
    - strerror
    - free
    - rollback_lock_file
    - fprintf
    - fflush
    - _
    - get_lock_file_fd
    - get_lock_file_path
    - unlink
    linkageType: ''
    returnType: void
    signature: void process_log_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/git/builtin/gc.c:109,1
    - Dst: process_log_file
      Src: /src/git/builtin/gc.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 9
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: process_log_file_at_exit
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - process_log_file
    - fflush
    linkageType: ''
    returnType: void
    signature: void process_log_file_at_exit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_value
      Src: /src/git/builtin/gc.c:118,1
    - Dst: parse_expiry_date
      Src: /src/git/builtin/gc.c:119,1
    - Dst: die
      Src: /src/git/builtin/gc.c:120,1
    - Dst: _
      Src: /src/git/builtin/gc.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - var
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 19
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: gc_config_is_timestamp_never
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - die
    - repo_config_get_value
    - _
    - parse_expiry_date
    linkageType: ''
    returnType: int
    signature: int gc_config_is_timestamp_never(const char *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/gc.c:169,1
    - Dst: free
      Src: /src/git/builtin/gc.c:170,1
    - Dst: free
      Src: /src/git/builtin/gc.c:171,1
    - Dst: free
      Src: /src/git/builtin/gc.c:172,1
    - Dst: free
      Src: /src/git/builtin/gc.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: gc_config_release
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void gc_config_release(struct gc_config *cfg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_value
      Src: /src/git/builtin/gc.c:182,1
    - Dst: strcmp
      Src: /src/git/builtin/gc.c:183,1
    - Dst: git_config_bool
      Src: /src/git/builtin/gc.c:186,1
    - Dst: gc_config_is_timestamp_never
      Src: /src/git/builtin/gc.c:189,1
    - Dst: gc_config_is_timestamp_never
      Src: /src/git/builtin/gc.c:190,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:193,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:194,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:195,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:196,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/gc.c:197,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/gc.c:198,1
    - Dst: repo_config_get_ulong
      Src: /src/git/builtin/gc.c:199,1
    - Dst: repo_config_get_expiry
      Src: /src/git/builtin/gc.c:201,1
    - Dst: free
      Src: /src/git/builtin/gc.c:202,1
    - Dst: repo_config_get_expiry
      Src: /src/git/builtin/gc.c:206,1
    - Dst: free
      Src: /src/git/builtin/gc.c:207,1
    - Dst: repo_config_get_expiry
      Src: /src/git/builtin/gc.c:211,1
    - Dst: free
      Src: /src/git/builtin/gc.c:212,1
    - Dst: repo_config_get_ulong
      Src: /src/git/builtin/gc.c:216,1
    - Dst: repo_config_get_ulong
      Src: /src/git/builtin/gc.c:217,1
    - Dst: repo_config_get_ulong
      Src: /src/git/builtin/gc.c:219,1
    - Dst: repo_config_get_string
      Src: /src/git/builtin/gc.c:222,1
    - Dst: free
      Src: /src/git/builtin/gc.c:223,1
    - Dst: repo_config_get_string
      Src: /src/git/builtin/gc.c:227,1
    - Dst: free
      Src: /src/git/builtin/gc.c:228,1
    - Dst: repo_config
      Src: /src/git/builtin/gc.c:232,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 176
    functionDepth: 20
    functionLinenumber: 176
    functionLinenumberEnd: 233
    functionName: gc_config
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - gc_config_is_timestamp_never
    - repo_config_get_value
    - repo_config_get_ulong
    - repo_config_get_string
    - repo_config_get_bool
    - repo_config_get_expiry
    - strcmp
    - git_config_bool
    - free
    - repo_config
    linkageType: ''
    returnType: void
    signature: void gc_config(struct gc_config *cfg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:246,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:248,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: parse_schedule
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: enum schedule_priority
    signature: enum schedule_priority parse_schedule(const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/gc.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct maintenance_run_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: maintenance_run_opts_release
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void maintenance_run_opts_release(struct maintenance_run_opts *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/builtin/gc.c:300,1
    - Dst: refs_optimize_required
      Src: /src/git/builtin/gc.c:302,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/gc.c:302,1
    - Dst: clear_ref_exclusions
      Src: /src/git/builtin/gc.c:306,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 310
    functionName: pack_refs_condition
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - refs_optimize_required
    - clear_ref_exclusions
    - string_list_append
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int pack_refs_condition(UNUSED struct gc_config *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:318,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:320,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - opts
    - cfg
    argTypes:
    - struct maintenance_run_opts*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 312
    functionDepth: 8
    functionLinenumber: 312
    functionLinenumberEnd: 323
    functionName: maintenance_task_pack_refs
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_pushl
    - run_command
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_pack_refs(struct maintenance_run_opts *opts,\n\t\t\t\t
      \     UNUSED struct gc_config *cfg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_expire_reflog_ent
      Src: /src/git/builtin/gc.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - refname
    - old_oid
    - new_oid
    - committer
    - timestamp
    - tz
    - msg
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: count_reflog_entries
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - should_expire_reflog_ent
    linkageType: ''
    returnType: int
    signature: "int count_reflog_entries(const char *refname UNUSED,\n\t\t\t\tstruct
      object_id *old_oid, struct object_id *new_oid,\n\t\t\t\tconst char *committer,
      timestamp_t timestamp,\n\t\t\t\tint tz, const char *msg, void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/builtin/gc.c:344,1
    - Dst: REFLOG_EXPIRE_OPTIONS_INIT
      Src: /src/git/builtin/gc.c:347,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:352,1
    - Dst: repo_config
      Src: /src/git/builtin/gc.c:359,1
    - Dst: reflog_expire_options_set_refname
      Src: /src/git/builtin/gc.c:361,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/builtin/gc.c:362,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/gc.c:362,1
    - Dst: reflog_expiry_cleanup
      Src: /src/git/builtin/gc.c:365,1
    - Dst: reflog_clear_expire_config
      Src: /src/git/builtin/gc.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 342
    functionDepth: 19
    functionLinenumber: 342
    functionLinenumberEnd: 368
    functionName: reflog_expire_condition
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - reflog_expire_options_set_refname
    - refs_for_each_reflog_ent
    - reflog_expiry_cleanup
    - REFLOG_EXPIRE_OPTIONS_INIT
    - get_main_ref_store
    - reflog_clear_expire_config
    - repo_config
    - time
    linkageType: ''
    returnType: int
    signature: int reflog_expire_condition(struct gc_config *cfg UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:375,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 8
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: maintenance_task_reflog_expire
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_pushl
    - run_command
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_reflog_expire(struct maintenance_run_opts *opts
      UNUSED,\n\t\t\t\t\t  struct gc_config *cfg UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:385,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:386,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - UNUSED
    - cfg
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 379
    functionDepth: 8
    functionLinenumber: 379
    functionLinenumberEnd: 389
    functionName: maintenance_task_worktree_prune
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_pushl
    - run_command
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_worktree_prune(struct maintenance_run_opts *opts
      UNUSED,\n\t\t\t\t\t   struct gc_config *cfg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:399,1
    - Dst: parse_expiry_date
      Src: /src/git/builtin/gc.c:405,1
    - Dst: opendir
      Src: /src/git/builtin/gc.c:408,1
    - Dst: repo_git_path_replace
      Src: /src/git/builtin/gc.c:408,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/builtin/gc.c:412,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/gc.c:414,1
    - Dst: should_prune_worktree
      Src: /src/git/builtin/gc.c:415,1
    - Dst: free
      Src: /src/git/builtin/gc.c:417,1
    - Dst: closedir
      Src: /src/git/builtin/gc.c:424,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:425,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 391
    functionDepth: 19
    functionLinenumber: 391
    functionLinenumberEnd: 427
    functionName: worktree_prune_condition
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - strbuf_release
    - strbuf_reset
    - closedir
    - parse_expiry_date
    - readdir_skip_dot_and_dotdot
    - opendir
    - free
    - should_prune_worktree
    - repo_git_path_replace
    linkageType: ''
    returnType: int
    signature: int worktree_prune_condition(struct gc_config *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:434,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 429
    functionDepth: 8
    functionLinenumber: 429
    functionLinenumberEnd: 436
    functionName: maintenance_task_rerere_gc
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_pushl
    - run_command
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_rerere_gc(struct maintenance_run_opts *opts UNUSED,\n\t\t\t\t
      \     struct gc_config *cfg UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:444,1
    - Dst: repo_git_path_replace
      Src: /src/git/builtin/gc.c:454,1
    - Dst: opendir
      Src: /src/git/builtin/gc.c:455,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/builtin/gc.c:458,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:461,1
    - Dst: closedir
      Src: /src/git/builtin/gc.c:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 438
    functionDepth: 19
    functionLinenumber: 438
    functionLinenumberEnd: 465
    functionName: rerere_gc_condition
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - strbuf_release
    - closedir
    - readdir_skip_dot_and_dotdot
    - opendir
    - repo_git_path_replace
    linkageType: ''
    returnType: int
    signature: int rerere_gc_condition(struct gc_config *cfg UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/git/builtin/gc.c:474,1
    - Dst: odb_source_loose_count_objects
      Src: /src/git/builtin/gc.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 467
    functionDepth: 6
    functionLinenumber: 467
    functionLinenumberEnd: 483
    functionName: too_many_loose_objects
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - odb_source_loose_count_objects
    - DIV_ROUND_UP
    linkageType: ''
    returnType: int
    signature: int too_many_loose_objects(int limit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/builtin/gc.c:495,1
    - Dst: string_list_append
      Src: /src/git/builtin/gc.c:502,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - packs
    - limit
    argTypes:
    - struct string_list*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 505
    functionName: find_base_packs
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - string_list_append
    linkageType: ''
    returnType: struct packed_git
    signature: "struct packed_git *find_base_packs(struct string_list *packs,\n\t\t\t\t\t
      \ unsigned long limit)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/builtin/gc.c:495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 499
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 6
    functionsReached:
    - string_list_append
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 527
    functionName: too_many_packs
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int too_many_packs(struct gc_config *cfg)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sysinfo
      Src: /src/git/builtin/gc.c:534,1
    - Dst: sysctl
      Src: /src/git/builtin/gc.c:555,1
    - Dst: sysctl
      Src: /src/git/builtin/gc.c:559,1
    - Dst: GlobalMemoryStatusEx
      Src: /src/git/builtin/gc.c:568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 572
    functionName: total_ram
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - GlobalMemoryStatusEx
    - sysinfo
    - sysctl
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t total_ram(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_count_objects
      Src: /src/git/builtin/gc.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - cfg
    - pack
    argTypes:
    - struct gc_config*
    - struct packed_git*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 574
    functionDepth: 7
    functionLinenumber: 574
    functionLinenumberEnd: 619
    functionName: estimate_repack_memory
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - odb_count_objects
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t estimate_repack_memory(struct gc_config *cfg,\n\t\t\t\t       struct
      packed_git *pack)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:624,1
    - Dst: basename
      Src: /src/git/builtin/gc.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 4
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: keep_one_pack
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - basename
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int keep_one_pack(struct string_list_item *item, void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/gc.c:632,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:634,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:636,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:638,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:640,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:643,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:645,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:647,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/gc.c:651,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:654,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:656,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 3
    argNames:
    - cfg
    - keep_pack
    - args
    argTypes:
    - struct gc_config*
    - struct string_list*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 657
    functionName: add_repack_all_option
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - for_each_string_list
    - strvec_pushf
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void add_repack_all_option(struct gc_config *cfg,\n\t\t\t\t  struct
      string_list *keep_pack,\n\t\t\t\t  struct strvec *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 3
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: add_repack_incremental_option
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_push
    linkageType: ''
    returnType: void
    signature: void add_repack_incremental_option(struct strvec *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: too_many_packs
      Src: /src/git/builtin/gc.c:679,1
    - Dst: find_base_packs
      Src: /src/git/builtin/gc.c:683,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:686,1
    - Dst: find_base_packs
      Src: /src/git/builtin/gc.c:687,1
    - Dst: find_base_packs
      Src: /src/git/builtin/gc.c:690,1
    - Dst: total_ram
      Src: /src/git/builtin/gc.c:693,1
    - Dst: estimate_repack_memory
      Src: /src/git/builtin/gc.c:694,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:702,1
    - Dst: add_repack_all_option
      Src: /src/git/builtin/gc.c:705,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:706,1
    - Dst: too_many_loose_objects
      Src: /src/git/builtin/gc.c:707,1
    - Dst: add_repack_incremental_option
      Src: /src/git/builtin/gc.c:708,1
    - Dst: run_hooks
      Src: /src/git/builtin/gc.c:712,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - cfg
    - repack_args
    argTypes:
    - struct gc_config*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 664
    functionDepth: 13
    functionLinenumber: 664
    functionLinenumberEnd: 715
    functionName: need_to_gc
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - add_repack_incremental_option
    - string_list_clear
    - estimate_repack_memory
    - too_many_packs
    - run_hooks
    - too_many_loose_objects
    - add_repack_all_option
    - find_base_packs
    - total_ram
    linkageType: ''
    returnType: int
    signature: int need_to_gc(struct gc_config *cfg, struct strvec *repack_args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/builtin/gc.c:729,1
    - Dst: xgethostname
      Src: /src/git/builtin/gc.c:733,1
    - Dst: xsnprintf
      Src: /src/git/builtin/gc.c:734,1
    - Dst: repo_git_path
      Src: /src/git/builtin/gc.c:736,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/builtin/gc.c:737,1
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:745,1
    - Dst: fopen
      Src: /src/git/builtin/gc.c:746,1
    - Dst: memset
      Src: /src/git/builtin/gc.c:747,1
    - Dst: fstat
      Src: /src/git/builtin/gc.c:750,1
    - Dst: fileno
      Src: /src/git/builtin/gc.c:750,1
    - Dst: time
      Src: /src/git/builtin/gc.c:760,1
    - Dst: fscanf
      Src: /src/git/builtin/gc.c:761,1
    - Dst: strcmp
      Src: /src/git/builtin/gc.c:763,1
    - Dst: kill
      Src: /src/git/builtin/gc.c:763,1
    - Dst: fclose
      Src: /src/git/builtin/gc.c:765,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/gc.c:768,1
    - Dst: free
      Src: /src/git/builtin/gc.c:770,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:775,1
    - Dst: getpid
      Src: /src/git/builtin/gc.c:776,1
    - Dst: write_in_full
      Src: /src/git/builtin/gc.c:777,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:778,1
    - Dst: commit_lock_file
      Src: /src/git/builtin/gc.c:779,1
    - Dst: register_tempfile
      Src: /src/git/builtin/gc.c:780,1
    - Dst: free
      Src: /src/git/builtin/gc.c:781,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - force
    - ret_pid
    argTypes:
    - int
    - pid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 718
    functionDepth: 8
    functionLinenumber: 718
    functionLinenumberEnd: 783
    functionName: lock_repo_for_gc
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - fclose
    - repo_git_path
    - hold_lock_file_for_update
    - strbuf_addf
    - fscanf
    - xsnprintf
    - strcmp
    - free
    - register_tempfile
    - strbuf_release
    - commit_lock_file
    - fopen
    - rollback_lock_file
    - write_in_full
    - memset
    - fileno
    - xgethostname
    - is_tempfile_active
    - xstrfmt
    - fstat
    - kill
    - getpid
    - time
    linkageType: ''
    returnType: char
    signature: char *lock_repo_for_gc(int force, pid_t* ret_pid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/builtin/gc.c:797,1
    - Dst: stat
      Src: /src/git/builtin/gc.c:799,1
    - Dst: die_message_errno
      Src: /src/git/builtin/gc.c:803,1
    - Dst: _
      Src: /src/git/builtin/gc.c:803,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/gc.c:810,1
    - Dst: die_message_errno
      Src: /src/git/builtin/gc.c:812,1
    - Dst: _
      Src: /src/git/builtin/gc.c:812,1
    - Dst: warning
      Src: /src/git/builtin/gc.c:819,1
    - Dst: _
      Src: /src/git/builtin/gc.c:819,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:828,1
    - Dst: free
      Src: /src/git/builtin/gc.c:830,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 791
    functionDepth: 8
    functionLinenumber: 791
    functionLinenumberEnd: 832
    functionName: report_last_gc_error
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    - strbuf_release
    - die_message_errno
    - strbuf_read_file
    - stat
    - _
    - free
    - warning
    linkageType: ''
    returnType: int
    signature: int report_last_gc_error(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: maintenance_task_pack_refs
      Src: /src/git/builtin/gc.c:837,1
    - Dst: error
      Src: /src/git/builtin/gc.c:838,1
    - Dst: maintenance_task_reflog_expire
      Src: /src/git/builtin/gc.c:839,1
    - Dst: error
      Src: /src/git/builtin/gc.c:840,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - opts
    - cfg
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 834
    functionDepth: 9
    functionLinenumber: 834
    functionLinenumberEnd: 842
    functionName: gc_foreground_tasks
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - maintenance_task_reflog_expire
    - maintenance_task_pack_refs
    linkageType: ''
    returnType: int
    signature: "int gc_foreground_tasks(struct maintenance_run_opts *opts,\n\t\t\t
      \      struct gc_config *cfg)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/gc.c:864,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:864,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:869,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:870,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/gc.c:874,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:874,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/gc.c:875,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:876,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/gc.c:877,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:877,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/gc.c:878,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:878,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/gc.c:880,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:881,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/gc.c:882,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:883,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/gc.c:885,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:886,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/gc.c:887,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:887,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:888,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/gc.c:889,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:890,1
    - Dst: OPT_END
      Src: /src/git/builtin/gc.c:891,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/gc.c:894,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:897,1
    - Dst: gc_config
      Src: /src/git/builtin/gc.c:899,1
    - Dst: parse_expiry_date
      Src: /src/git/builtin/gc.c:901,1
    - Dst: die
      Src: /src/git/builtin/gc.c:902,1
    - Dst: _
      Src: /src/git/builtin/gc.c:902,1
    - Dst: is_bare_repository
      Src: /src/git/builtin/gc.c:905,1
    - Dst: parse_options
      Src: /src/git/builtin/gc.c:907,1
    - Dst: usage_with_options
      Src: /src/git/builtin/gc.c:910,1
    - Dst: free
      Src: /src/git/builtin/gc.c:913,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/gc.c:914,1
    - Dst: parse_expiry_date
      Src: /src/git/builtin/gc.c:916,1
    - Dst: die
      Src: /src/git/builtin/gc.c:917,1
    - Dst: _
      Src: /src/git/builtin/gc.c:917,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:920,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:922,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:924,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:927,1
    - Dst: need_to_gc
      Src: /src/git/builtin/gc.c:936,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:943,1
    - Dst: _
      Src: /src/git/builtin/gc.c:943,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:945,1
    - Dst: _
      Src: /src/git/builtin/gc.c:945,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:946,1
    - Dst: _
      Src: /src/git/builtin/gc.c:946,1
    - Dst: find_base_packs
      Src: /src/git/builtin/gc.c:953,1
    - Dst: find_base_packs
      Src: /src/git/builtin/gc.c:955,1
    - Dst: add_repack_all_option
      Src: /src/git/builtin/gc.c:958,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:959,1
    - Dst: report_last_gc_error
      Src: /src/git/builtin/gc.c:963,1
    - Dst: lock_repo_for_gc
      Src: /src/git/builtin/gc.c:975,1
    - Dst: gc_foreground_tasks
      Src: /src/git/builtin/gc.c:980,1
    - Dst: die
      Src: /src/git/builtin/gc.c:981,1
    - Dst: delete_tempfile
      Src: /src/git/builtin/gc.c:982,1
    - Dst: daemonize
      Src: /src/git/builtin/gc.c:989,1
    - Dst: lock_repo_for_gc
      Src: /src/git/builtin/gc.c:992,1
    - Dst: die
      Src: /src/git/builtin/gc.c:999,1
    - Dst: _
      Src: /src/git/builtin/gc.c:999,1
    - Dst: repo_git_path
      Src: /src/git/builtin/gc.c:1004,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/builtin/gc.c:1005,1
    - Dst: dup2
      Src: /src/git/builtin/gc.c:1007,1
    - Dst: get_lock_file_fd
      Src: /src/git/builtin/gc.c:1007,1
    - Dst: atexit
      Src: /src/git/builtin/gc.c:1008,1
    - Dst: free
      Src: /src/git/builtin/gc.c:1009,1
    - Dst: gc_foreground_tasks
      Src: /src/git/builtin/gc.c:1013,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/gc.c:1020,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:1021,1
    - Dst: die
      Src: /src/git/builtin/gc.c:1022,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:1027,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1029,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1031,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/builtin/gc.c:1032,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1033,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:1037,1
    - Dst: die
      Src: /src/git/builtin/gc.c:1038,1
    - Dst: maintenance_task_worktree_prune
      Src: /src/git/builtin/gc.c:1043,1
    - Dst: die
      Src: /src/git/builtin/gc.c:1044,1
    - Dst: maintenance_task_rerere_gc
      Src: /src/git/builtin/gc.c:1046,1
    - Dst: die
      Src: /src/git/builtin/gc.c:1047,1
    - Dst: odb_reprepare
      Src: /src/git/builtin/gc.c:1050,1
    - Dst: odb_close
      Src: /src/git/builtin/gc.c:1052,1
    - Dst: clean_pack_garbage
      Src: /src/git/builtin/gc.c:1053,1
    - Dst: write_commit_graph_reachable
      Src: /src/git/builtin/gc.c:1057,1
    - Dst: too_many_loose_objects
      Src: /src/git/builtin/gc.c:1061,1
    - Dst: warning
      Src: /src/git/builtin/gc.c:1062,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1062,1
    - Dst: repo_git_path
      Src: /src/git/builtin/gc.c:1066,1
    - Dst: unlink
      Src: /src/git/builtin/gc.c:1067,1
    - Dst: free
      Src: /src/git/builtin/gc.c:1068,1
    - Dst: maintenance_run_opts_release
      Src: /src/git/builtin/gc.c:1072,1
    - Dst: strvec_clear
      Src: /src/git/builtin/gc.c:1073,1
    - Dst: gc_config_release
      Src: /src/git/builtin/gc.c:1074,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 133
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 844
    functionDepth: 21
    functionLinenumber: 844
    functionLinenumberEnd: 1076
    functionName: cmd_gc
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_options
    - repo_git_path
    - hold_lock_file_for_update
    - gc_config_release
    - OPT_UNSIGNED
    - OPT_BOOL
    - parse_expiry_date
    - too_many_loose_objects
    - clean_pack_garbage
    - dup2
    - free
    - maintenance_run_opts_release
    - usage_with_options
    - delete_tempfile
    - OPT_END
    - die
    - xstrdup_or_null
    - gc_foreground_tasks
    - repo_has_promisor_remote
    - maintenance_task_rerere_gc
    - maintenance_task_worktree_prune
    - daemonize
    - OPT_HIDDEN_BOOL
    - OPT__QUIET
    - unlink
    - string_list_clear
    - atexit
    - odb_reprepare
    - odb_close
    - strvec_pushv
    - strvec_pushl
    - lock_repo_for_gc
    - _
    - N_
    - need_to_gc
    - find_base_packs
    - add_repack_all_option
    - report_last_gc_error
    - strvec_pushf
    - get_lock_file_fd
    - warning
    - is_bare_repository
    - OPT_BOOL_F
    - run_command
    - OPT_STRING
    - write_commit_graph_reachable
    - strvec_clear
    - gc_config
    - fprintf
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: "int cmd_gc(int argc,\n\t   const char **argv,\n\t   const char *prefix,\n\t
      \  struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/gc.c:1089,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1089,1
    - Dst: parse_schedule
      Src: /src/git/builtin/gc.c:1091,1
    - Dst: die
      Src: /src/git/builtin/gc.c:1094,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1097
    functionName: maintenance_opt_schedule
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - parse_schedule
    - die
    - _
    linkageType: ''
    returnType: int
    signature: "int maintenance_opt_schedule(const struct option *opt, const char
      *arg,\n\t\t\t\t    int unset)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reference_get_peeled_oid
      Src: /src/git/builtin/gc.c:1113,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/gc.c:1115,1
    - Dst: lookup_commit
      Src: /src/git/builtin/gc.c:1118,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/gc.c:1123,1
    - Dst: commit_graph_position
      Src: /src/git/builtin/gc.c:1124,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/gc.c:1132,1
    - Dst: pop_commit
      Src: /src/git/builtin/gc.c:1137,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/gc.c:1140,1
    - Dst: commit_graph_position
      Src: /src/git/builtin/gc.c:1141,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/gc.c:1153,1
    - Dst: commit_list_free
      Src: /src/git/builtin/gc.c:1157,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1104
    functionDepth: 20
    functionLinenumber: 1104
    functionLinenumberEnd: 1159
    functionName: dfs_on_ref
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - reference_get_peeled_oid
    - repo_parse_commit
    - commit_graph_position
    - pop_commit
    - odb_read_object_info
    - commit_list_free
    - lookup_commit
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: int dfs_on_ref(const struct reference *ref, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:1168,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/gc.c:1176,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/gc.c:1176,1
    - Dst: repo_clear_commit_marks
      Src: /src/git/builtin/gc.c:1179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1161
    functionDepth: 19
    functionLinenumber: 1161
    functionLinenumberEnd: 1182
    functionName: should_write_commit_graph
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - repo_clear_commit_marks
    - refs_for_each_ref
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int should_write_commit_graph(struct gc_config *cfg UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:1190,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1194,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1196,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct maintenance_run_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1184
    functionDepth: 8
    functionLinenumber: 1184
    functionLinenumberEnd: 1199
    functionName: run_write_commit_graph
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_pushl
    - run_command
    linkageType: ''
    returnType: int
    signature: int run_write_commit_graph(struct maintenance_run_opts *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/gc.c:1204,1
    - Dst: run_write_commit_graph
      Src: /src/git/builtin/gc.c:1208,1
    - Dst: error
      Src: /src/git/builtin/gc.c:1209,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - opts
    - UNUSED
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1201
    functionDepth: 21
    functionLinenumber: 1201
    functionLinenumberEnd: 1214
    functionName: maintenance_task_commit_graph
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - run_write_commit_graph
    - _
    - prepare_repo_settings
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_commit_graph(struct maintenance_run_opts *opts,\n\t\t\t\t\t
      struct gc_config *cfg UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:1225,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1231,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:1233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - remote
    - cbdata
    argTypes:
    - struct remote*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1216
    functionDepth: 8
    functionLinenumber: 1216
    functionLinenumberEnd: 1234
    functionName: fetch_remote
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_pushl
    - run_command
    linkageType: ''
    returnType: int
    signature: int fetch_remote(struct remote *remote, void *cbdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_remote
      Src: /src/git/builtin/gc.c:1239,1
    - Dst: error
      Src: /src/git/builtin/gc.c:1240,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - opts
    - UNUSED
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1236
    functionDepth: 14
    functionLinenumber: 1236
    functionLinenumberEnd: 1245
    functionName: maintenance_task_prefetch
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - for_each_remote
    - _
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_prefetch(struct maintenance_run_opts *opts,\n\t\t\t\t
      \    struct gc_config *cfg UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_foreground_tasks
      Src: /src/git/builtin/gc.c:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - cfg
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1247
    functionDepth: 10
    functionLinenumber: 1247
    functionLinenumberEnd: 1251
    functionName: maintenance_task_gc_foreground
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - gc_foreground_tasks
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_gc_foreground(struct maintenance_run_opts *opts,\n\t\t\t\t\t
      \ struct gc_config *cfg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1260,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1263,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1265,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1267,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1268,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1269,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:1271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - opts
    - UNUSED
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1253
    functionDepth: 8
    functionLinenumber: 1253
    functionLinenumberEnd: 1272
    functionName: maintenance_task_gc_background
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_command
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_gc_background(struct maintenance_run_opts *opts,\n\t\t\t\t\t
      \ struct gc_config *cfg UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: need_to_gc
      Src: /src/git/builtin/gc.c:1282,1
    - Dst: strvec_clear
      Src: /src/git/builtin/gc.c:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1274
    functionDepth: 14
    functionLinenumber: 1274
    functionLinenumberEnd: 1285
    functionName: gc_condition
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_clear
    - need_to_gc
    linkageType: ''
    returnType: int
    signature: int gc_condition(struct gc_config *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1292,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1295,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:1297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct maintenance_run_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1287
    functionDepth: 8
    functionLinenumber: 1287
    functionLinenumberEnd: 1298
    functionName: prune_packed
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_command
    linkageType: ''
    returnType: int
    signature: int prune_packed(struct maintenance_run_opts *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - data
    argTypes:
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1316
    functionName: loose_object_count
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int loose_object_count(const struct object_id *oid UNUSED,\n\t\t\t
      \     const char *path UNUSED,\n\t\t\t      void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:1322,1
    - Dst: for_each_loose_file_in_source
      Src: /src/git/builtin/gc.c:1330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1318
    functionDepth: 19
    functionLinenumber: 1318
    functionLinenumberEnd: 1333
    functionName: loose_object_auto_condition
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - for_each_loose_file_in_source
    linkageType: ''
    returnType: int
    signature: int loose_object_auto_condition(struct gc_config *cfg UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - UNUSED
    argTypes:
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1340
    functionName: bail_on_loose
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int bail_on_loose(const struct object_id *oid UNUSED,\n\t\t\t const
      char *path UNUSED,\n\t\t\t void *data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:1348,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/gc.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - data
    argTypes:
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1342
    functionDepth: 3
    functionLinenumber: 1342
    functionLinenumberEnd: 1352
    functionName: write_loose_object_to_stdin
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int write_loose_object_to_stdin(const struct object_id *oid,\n\t\t\t\t
      \      const char *path UNUSED,\n\t\t\t\t       void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: for_each_loose_file_in_source
      Src: /src/git/builtin/gc.c:1365,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1372,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1374,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1376,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:1377,1
    - Dst: start_command
      Src: /src/git/builtin/gc.c:1387,1
    - Dst: error
      Src: /src/git/builtin/gc.c:1388,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1388,1
    - Dst: xfdopen
      Src: /src/git/builtin/gc.c:1392,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:1396,1
    - Dst: for_each_loose_file_in_source
      Src: /src/git/builtin/gc.c:1405,1
    - Dst: fclose
      Src: /src/git/builtin/gc.c:1409,1
    - Dst: finish_command
      Src: /src/git/builtin/gc.c:1411,1
    - Dst: error
      Src: /src/git/builtin/gc.c:1412,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1412,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct maintenance_run_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1354
    functionDepth: 19
    functionLinenumber: 1354
    functionLinenumberEnd: 1417
    functionName: pack_loose
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - for_each_loose_file_in_source
    - repo_config_get_int
    - fclose
    - finish_command
    - _
    - xfdopen
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: int
    signature: int pack_loose(struct maintenance_run_opts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prune_packed
      Src: /src/git/builtin/gc.c:1422,1
    - Dst: pack_loose
      Src: /src/git/builtin/gc.c:1422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - opts
    - UNUSED
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1419
    functionDepth: 20
    functionLinenumber: 1419
    functionLinenumberEnd: 1423
    functionName: maintenance_task_loose_objects
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - pack_loose
    - prune_packed
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_loose_objects(struct maintenance_run_opts *opts,\n\t\t\t\t\t
      \ struct gc_config *cfg UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/gc.c:1431,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:1435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1425
    functionDepth: 21
    functionLinenumber: 1425
    functionLinenumberEnd: 1451
    functionName: incremental_repack_auto_condition
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - prepare_repo_settings
    linkageType: ''
    returnType: int
    signature: int incremental_repack_auto_condition(struct gc_config *cfg UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1443
    functionDepth: 0
    functionLinenumber: 1443
    functionLinenumberEnd: 1448
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:1458,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1461,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1463,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:1465,1
    - Dst: error
      Src: /src/git/builtin/gc.c:1466,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct maintenance_run_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1453
    functionDepth: 8
    functionLinenumber: 1453
    functionLinenumberEnd: 1469
    functionName: multi_pack_index_write
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - run_command
    - strvec_pushl
    - _
    linkageType: ''
    returnType: int
    signature: int multi_pack_index_write(struct maintenance_run_opts *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:1477,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1480,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1482,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:1484,1
    - Dst: error
      Src: /src/git/builtin/gc.c:1485,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct maintenance_run_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1471
    functionDepth: 8
    functionLinenumber: 1471
    functionLinenumberEnd: 1488
    functionName: multi_pack_index_expire
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - run_command
    - strvec_pushl
    - _
    linkageType: ''
    returnType: int
    signature: int multi_pack_index_expire(struct maintenance_run_opts *opts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_reprepare
      Src: /src/git/builtin/gc.c:1512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1492
    functionDepth: 7
    functionLinenumber: 1492
    functionLinenumberEnd: 1528
    functionName: get_auto_pack_size
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - odb_reprepare
    linkageType: ''
    returnType: off_t
    signature: off_t get_auto_pack_size(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1519
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(r, p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:1536,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1539,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1541,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:1543,1
    - Dst: get_auto_pack_size
      Src: /src/git/builtin/gc.c:1544,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:1546,1
    - Dst: error
      Src: /src/git/builtin/gc.c:1547,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct maintenance_run_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1530
    functionDepth: 8
    functionLinenumber: 1530
    functionLinenumberEnd: 1550
    functionName: multi_pack_index_repack
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - run_command
    - strvec_pushl
    - get_auto_pack_size
    - _
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int multi_pack_index_repack(struct maintenance_run_opts *opts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/gc.c:1555,1
    - Dst: warning
      Src: /src/git/builtin/gc.c:1557,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1557,1
    - Dst: multi_pack_index_write
      Src: /src/git/builtin/gc.c:1561,1
    - Dst: multi_pack_index_expire
      Src: /src/git/builtin/gc.c:1563,1
    - Dst: multi_pack_index_repack
      Src: /src/git/builtin/gc.c:1565,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - opts
    - UNUSED
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1552
    functionDepth: 21
    functionLinenumber: 1552
    functionLinenumberEnd: 1568
    functionName: maintenance_task_incremental_repack
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - multi_pack_index_repack
    - multi_pack_index_expire
    - multi_pack_index_write
    - prepare_repo_settings
    - _
    - warning
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_incremental_repack(struct maintenance_run_opts
      *opts,\n\t\t\t\t\t       struct gc_config *cfg UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:1584,1
    - Dst: existing_packs_collect
      Src: /src/git/builtin/gc.c:1588,1
    - Dst: pack_geometry_init
      Src: /src/git/builtin/gc.c:1589,1
    - Dst: pack_geometry_split
      Src: /src/git/builtin/gc.c:1590,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:1595,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:1597,1
    - Dst: add_repack_all_option
      Src: /src/git/builtin/gc.c:1600,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1602,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:1604,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:1606,1
    - Dst: error
      Src: /src/git/builtin/gc.c:1607,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1607,1
    - Dst: existing_packs_release
      Src: /src/git/builtin/gc.c:1614,1
    - Dst: pack_geometry_release
      Src: /src/git/builtin/gc.c:1615,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - opts
    - cfg
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1570
    functionDepth: 19
    functionLinenumber: 1570
    functionLinenumberEnd: 1617
    functionName: maintenance_task_geometric_repack
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - strvec_push
    - error
    - run_command
    - pack_geometry_release
    - strvec_pushl
    - pack_geometry_init
    - _
    - add_repack_all_option
    - pack_geometry_split
    - existing_packs_release
    - existing_packs_collect
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int maintenance_task_geometric_repack(struct maintenance_run_opts
      *opts,\n\t\t\t\t\t     struct gc_config *cfg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:1632,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/gc.c:1639,1
    - Dst: existing_packs_collect
      Src: /src/git/builtin/gc.c:1643,1
    - Dst: pack_geometry_init
      Src: /src/git/builtin/gc.c:1644,1
    - Dst: pack_geometry_split
      Src: /src/git/builtin/gc.c:1645,1
    - Dst: too_many_loose_objects
      Src: /src/git/builtin/gc.c:1660,1
    - Dst: existing_packs_release
      Src: /src/git/builtin/gc.c:1668,1
    - Dst: pack_geometry_release
      Src: /src/git/builtin/gc.c:1669,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1619
    functionDepth: 19
    functionLinenumber: 1619
    functionLinenumberEnd: 1671
    functionName: geometric_repack_auto_condition
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - pack_geometry_release
    - too_many_loose_objects
    - pack_geometry_init
    - pack_geometry_split
    - existing_packs_release
    - existing_packs_collect
    linkageType: ''
    returnType: int
    signature: int geometric_repack_auto_condition(struct gc_config *cfg UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct maintenance_task*::auto_condition
      Src: /src/git/builtin/gc.c:1772,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/gc.c:1775,1
    - Dst: fn
      Src: /src/git/builtin/gc.c:1776,1
    - Dst: error
      Src: /src/git/builtin/gc.c:1777,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1777,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/gc.c:1780,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - task
    - repo
    - opts
    - cfg
    - phase
    argTypes:
    - struct maintenance_task*
    - struct repository*
    - struct maintenance_run_opts*
    - struct gc_config*
    - enum task_phase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1783
    functionName: maybe_run_task
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - fn
    - trace2_region_leave
    - trace2_region_enter
    - struct maintenance_task*::auto_condition
    - _
    linkageType: ''
    returnType: int
    signature: "int maybe_run_task(const struct maintenance_task *task,\n\t\t\t  struct
      repository *repo,\n\t\t\t  struct maintenance_run_opts *opts,\n\t\t\t  struct
      gc_config *cfg,\n\t\t\t  enum task_phase phase)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:1791,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/builtin/gc.c:1793,1
    - Dst: warning
      Src: /src/git/builtin/gc.c:1802,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1802,1
    - Dst: free
      Src: /src/git/builtin/gc.c:1804,1
    - Dst: free
      Src: /src/git/builtin/gc.c:1807,1
    - Dst: maybe_run_task
      Src: /src/git/builtin/gc.c:1810,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/gc.c:1816,1
    - Dst: daemonize
      Src: /src/git/builtin/gc.c:1817,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/gc.c:1818,1
    - Dst: maybe_run_task
      Src: /src/git/builtin/gc.c:1822,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/gc.c:1826,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - opts
    - cfg
    argTypes:
    - struct maintenance_run_opts*
    - struct gc_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1785
    functionDepth: 6
    functionLinenumber: 1785
    functionLinenumberEnd: 1828
    functionName: maintenance_run_tasks
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - daemonize
    - hold_lock_file_for_update
    - maybe_run_task
    - xstrfmt
    - trace2_region_leave
    - trace2_region_enter
    - rollback_lock_file
    - free
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: "int maintenance_run_tasks(struct maintenance_run_opts *opts,\n\t\t\t\t
      struct gc_config *cfg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:1925,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:1927,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:1929,1
    - Dst: die
      Src: /src/git/builtin/gc.c:1931,1
    - Dst: _
      Src: /src/git/builtin/gc.c:1931,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1932
    functionName: parse_maintenance_strategy
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - die
    - _
    linkageType: ''
    returnType: struct maintenance_strategy
    signature: struct maintenance_strategy parse_maintenance_strategy(const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/gc.c:1950,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/gc.c:1978,1
    - Dst: parse_maintenance_strategy
      Src: /src/git/builtin/gc.c:1979,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/gc.c:1984,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:1985,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/gc.c:1987,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/gc.c:1993,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:1994,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/gc.c:1996,1
    - Dst: parse_schedule
      Src: /src/git/builtin/gc.c:1997,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/gc.c:2002,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:2006,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - opts
    - selected_tasks
    argTypes:
    - struct maintenance_run_opts*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1934
    functionDepth: 19
    functionLinenumber: 1934
    functionLinenumberEnd: 2007
    functionName: initialize_task_config
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - parse_maintenance_strategy
    - parse_schedule
    - strbuf_release
    - repo_config_get_string_tmp
    - strbuf_reset
    - strbuf_addf
    - repo_config_get_bool
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: "void initialize_task_config(struct maintenance_run_opts *opts,\n\t\t\t\t
      \  const struct string_list *selected_tasks)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/gc.c:2015,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:2018,1
    - Dst: error
      Src: /src/git/builtin/gc.c:2021,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2021,1
    - Dst: unsorted_string_list_has_string
      Src: /src/git/builtin/gc.c:2025,1
    - Dst: error
      Src: /src/git/builtin/gc.c:2026,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2026,1
    - Dst: string_list_append
      Src: /src/git/builtin/gc.c:2030,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2009
    functionDepth: 3
    functionLinenumber: 2009
    functionLinenumberEnd: 2033
    functionName: task_option_parse
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - strcasecmp
    - unsorted_string_list_has_string
    - string_list_append
    - _
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int task_option_parse(const struct option *opt,\n\t\t\t     const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/gc.c:2042,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2043,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/gc.c:2044,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2045,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/gc.c:2046,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2046,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2047,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/gc.c:2049,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2050,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/gc.c:2051,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2051,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2052,1
    - Dst: OPT_END
      Src: /src/git/builtin/gc.c:2054,1
    - Dst: isatty
      Src: /src/git/builtin/gc.c:2058,1
    - Dst: parse_options
      Src: /src/git/builtin/gc.c:2060,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/gc.c:2065,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/gc.c:2067,1
    - Dst: gc_config
      Src: /src/git/builtin/gc.c:2070,1
    - Dst: initialize_task_config
      Src: /src/git/builtin/gc.c:2071,1
    - Dst: usage_with_options
      Src: /src/git/builtin/gc.c:2074,1
    - Dst: maintenance_run_tasks
      Src: /src/git/builtin/gc.c:2077,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:2079,1
    - Dst: maintenance_run_opts_release
      Src: /src/git/builtin/gc.c:2080,1
    - Dst: gc_config_release
      Src: /src/git/builtin/gc.c:2081,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2035
    functionDepth: 21
    functionLinenumber: 2035
    functionLinenumberEnd: 2083
    functionName: maintenance_run
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - parse_options
    - OPT_END
    - die_for_incompatible_opt2
    - initialize_task_config
    - gc_config_release
    - OPT_BOOL
    - OPT_CALLBACK_F
    - OPT_CALLBACK
    - maintenance_run_tasks
    - gc_config
    - N_
    - isatty
    - maintenance_run_opts_release
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int maintenance_run(int argc, const char **argv, const char *prefix,\n\t\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_realpath
      Src: /src/git/builtin/gc.c:2091,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/gc.c:2092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2085
    functionDepth: 7
    functionLinenumber: 2085
    functionLinenumberEnd: 2093
    functionName: get_maintpath
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strbuf_detach
    - strbuf_realpath
    linkageType: ''
    returnType: char
    signature: char *get_maintpath(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/gc.c:2105,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2105,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2105,1
    - Dst: OPT_END
      Src: /src/git/builtin/gc.c:2106,1
    - Dst: get_maintpath
      Src: /src/git/builtin/gc.c:2110,1
    - Dst: parse_options
      Src: /src/git/builtin/gc.c:2114,1
    - Dst: usage_with_options
      Src: /src/git/builtin/gc.c:2117,1
    - Dst: repo_config_set
      Src: /src/git/builtin/gc.c:2121,1
    - Dst: repo_config_get
      Src: /src/git/builtin/gc.c:2124,1
    - Dst: repo_config_set
      Src: /src/git/builtin/gc.c:2125,1
    - Dst: repo_config_get_string_multi
      Src: /src/git/builtin/gc.c:2127,1
    - Dst: strcmp
      Src: /src/git/builtin/gc.c:2129,1
    - Dst: git_global_config
      Src: /src/git/builtin/gc.c:2141,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2145,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2145,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/builtin/gc.c:2146,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2149,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2152,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2152,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2156,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2100
    functionDepth: 19
    functionLinenumber: 2100
    functionLinenumberEnd: 2158
    functionName: maintenance_register
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - repo_config_get_string_multi
    - repo_config_set
    - OPT_STRING
    - repo_config_get
    - get_maintpath
    - _
    - free
    - repo_config_set_multivar_in_file_gently
    - strcmp
    - N_
    - git_global_config
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int maintenance_register(int argc, const char **argv, const char *prefix,\n\t\t\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/gc.c:2129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2128
    functionDepth: 0
    functionLinenumber: 2128
    functionLinenumberEnd: 2133
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 58
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, list)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/gc.c:2171,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2171,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2171,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/gc.c:2172,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:2173,1
    - Dst: OPT_END
      Src: /src/git/builtin/gc.c:2175,1
    - Dst: get_maintpath
      Src: /src/git/builtin/gc.c:2178,1
    - Dst: parse_options
      Src: /src/git/builtin/gc.c:2184,1
    - Dst: usage_with_options
      Src: /src/git/builtin/gc.c:2187,1
    - Dst: git_configset_init
      Src: /src/git/builtin/gc.c:2191,1
    - Dst: git_configset_add_file
      Src: /src/git/builtin/gc.c:2192,1
    - Dst: git_configset_get_string_multi
      Src: /src/git/builtin/gc.c:2195,1
    - Dst: repo_config_get_string_multi
      Src: /src/git/builtin/gc.c:2196,1
    - Dst: strcmp
      Src: /src/git/builtin/gc.c:2198,1
    - Dst: git_global_config
      Src: /src/git/builtin/gc.c:2210,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2214,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2214,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/builtin/gc.c:2215,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2218,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2222,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2222,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2225,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2225,1
    - Dst: git_configset_clear
      Src: /src/git/builtin/gc.c:2228,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2229,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2165
    functionDepth: 19
    functionLinenumber: 2165
    functionLinenumberEnd: 2231
    functionName: maintenance_unregister
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - OPT__FORCE
    - repo_config_get_string_multi
    - git_configset_add_file
    - OPT_STRING
    - git_configset_init
    - get_maintpath
    - _
    - free
    - git_configset_get_string_multi
    - git_configset_clear
    - repo_config_set_multivar_in_file_gently
    - strcmp
    - N_
    - git_global_config
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int maintenance_unregister(int argc, const char **argv, const char
      *prefix,\n\t\t\t\t  struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/gc.c:2198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2197
    functionDepth: 0
    functionLinenumber: 2197
    functionLinenumberEnd: 2202
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 58
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/gc.c:2243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - schedule
    argTypes:
    - enum schedule_priority
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2233
    functionDepth: 1
    functionLinenumber: 2233
    functionLinenumberEnd: 2245
    functionName: get_frequency
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *get_frequency(enum schedule_priority schedule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2261,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/gc.c:2263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2253
    functionDepth: 3
    functionLinenumber: 2253
    functionLinenumberEnd: 2265
    functionName: get_extra_config_parameters
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *get_extra_config_parameters(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/gc.c:2275,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2276,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/gc.c:2279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2267
    functionDepth: 4
    functionLinenumber: 2267
    functionLinenumberEnd: 2281
    functionName: get_extra_launchctl_strings
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_detach
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *get_extra_launchctl_strings(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/gc.c:2325,1
    - Dst: getenv
      Src: /src/git/builtin/gc.c:2325,1
    - Dst: xstrdup
      Src: /src/git/builtin/gc.c:2331,1
    - Dst: string_list_split_in_place
      Src: /src/git/builtin/gc.c:2338,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/gc.c:2339,1
    - Dst: string_list_split_in_place
      Src: /src/git/builtin/gc.c:2342,1
    - Dst: strcmp
      Src: /src/git/builtin/gc.c:2345,1
    - Dst: xstrdup
      Src: /src/git/builtin/gc.c:2347,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:2350,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:2354,1
    - Dst: xstrdup
      Src: /src/git/builtin/gc.c:2358,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:2361,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2362,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - cmd
    - is_available
    - out
    argTypes:
    - char*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2323
    functionDepth: 5
    functionLinenumber: 2323
    functionLinenumberEnd: 2364
    functionName: get_schedule_cmd
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - xstrdup_or_null
    - strcmp
    - free
    - getenv
    - string_list_split_in_place
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int get_schedule_cmd(const char *cmd, int *is_available, char **out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/builtin/gc.c:2369,1
    - Dst: git_rand
      Src: /src/git/builtin/gc.c:2372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2366
    functionDepth: 5
    functionLinenumber: 2366
    functionLinenumberEnd: 2373
    functionName: get_random_minute
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - getenv
    - git_rand
    linkageType: ''
    returnType: int
    signature: int get_random_minute(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_schedule_cmd
      Src: /src/git/builtin/gc.c:2378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2375
    functionDepth: 6
    functionLinenumber: 2375
    functionLinenumberEnd: 2386
    functionName: is_launchctl_available
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - get_schedule_cmd
    linkageType: ''
    returnType: int
    signature: int is_launchctl_available(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2391,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/gc.c:2392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frequency
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2388
    functionDepth: 3
    functionLinenumber: 2388
    functionLinenumberEnd: 2393
    functionName: launchctl_service_name
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *launchctl_service_name(const char *frequency)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2399,1
    - Dst: interpolate_path
      Src: /src/git/builtin/gc.c:2401,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2403,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2403,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:2405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2395
    functionDepth: 4
    functionLinenumber: 2395
    functionLinenumberEnd: 2407
    functionName: launchctl_service_filename
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - interpolate_path
    - strbuf_release
    - die
    - strbuf_addf
    - _
    linkageType: ''
    returnType: char
    signature: char *launchctl_service_filename(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:2411,1
    - Dst: getuid
      Src: /src/git/builtin/gc.c:2411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2409
    functionDepth: 5
    functionLinenumber: 2409
    functionLinenumberEnd: 2412
    functionName: launchctl_get_uid
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - getuid
    linkageType: ''
    returnType: char
    signature: char *launchctl_get_uid(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: launchctl_get_uid
      Src: /src/git/builtin/gc.c:2419,1
    - Dst: get_schedule_cmd
      Src: /src/git/builtin/gc.c:2421,1
    - Dst: strvec_split
      Src: /src/git/builtin/gc.c:2422,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:2423,1
    - Dst: start_command
      Src: /src/git/builtin/gc.c:2429,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2430,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2430,1
    - Dst: finish_command
      Src: /src/git/builtin/gc.c:2432,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2434,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - enable
    - filename
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2414
    functionDepth: 12
    functionLinenumber: 2414
    functionLinenumberEnd: 2437
    functionName: launchctl_boot_plist
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - die
    - finish_command
    - launchctl_get_uid
    - strvec_pushl
    - get_schedule_cmd
    - strvec_split
    - _
    - free
    - start_command
    linkageType: ''
    returnType: int
    signature: int launchctl_boot_plist(int enable, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_frequency
      Src: /src/git/builtin/gc.c:2441,1
    - Dst: launchctl_service_name
      Src: /src/git/builtin/gc.c:2442,1
    - Dst: launchctl_service_filename
      Src: /src/git/builtin/gc.c:2443,1
    - Dst: launchctl_boot_plist
      Src: /src/git/builtin/gc.c:2444,1
    - Dst: unlink
      Src: /src/git/builtin/gc.c:2445,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2446,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - schedule
    argTypes:
    - enum schedule_priority
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2439
    functionDepth: 13
    functionLinenumber: 2439
    functionLinenumberEnd: 2449
    functionName: launchctl_remove_plist
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - free
    - get_frequency
    - launchctl_service_filename
    - launchctl_boot_plist
    - launchctl_service_name
    - unlink
    linkageType: ''
    returnType: int
    signature: int launchctl_remove_plist(enum schedule_priority schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: launchctl_remove_plist
      Src: /src/git/builtin/gc.c:2453,1
    - Dst: launchctl_remove_plist
      Src: /src/git/builtin/gc.c:2454,1
    - Dst: launchctl_remove_plist
      Src: /src/git/builtin/gc.c:2455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2451
    functionDepth: 14
    functionLinenumber: 2451
    functionLinenumberEnd: 2456
    functionName: launchctl_remove_plists
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - launchctl_remove_plist
    linkageType: ''
    returnType: int
    signature: int launchctl_remove_plists(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_split
      Src: /src/git/builtin/gc.c:2462,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:2463,1
    - Dst: start_command
      Src: /src/git/builtin/gc.c:2468,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2469,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2469,1
    - Dst: finish_command
      Src: /src/git/builtin/gc.c:2472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - name
    - cmd
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2458
    functionDepth: 12
    functionLinenumber: 2458
    functionLinenumberEnd: 2473
    functionName: launchctl_list_contains_plist
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - die
    - finish_command
    - strvec_pushl
    - strvec_split
    - _
    - start_command
    linkageType: ''
    returnType: int
    signature: int launchctl_list_contains_plist(const char *name, const char *cmd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_frequency
      Src: /src/git/builtin/gc.c:2479,1
    - Dst: launchctl_service_name
      Src: /src/git/builtin/gc.c:2480,1
    - Dst: launchctl_service_filename
      Src: /src/git/builtin/gc.c:2481,1
    - Dst: get_random_minute
      Src: /src/git/builtin/gc.c:2487,1
    - Dst: get_schedule_cmd
      Src: /src/git/builtin/gc.c:2489,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2509,1
    - Dst: get_extra_launchctl_strings
      Src: /src/git/builtin/gc.c:2510,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2519,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2529,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2533,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/gc.c:2546,1
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/gc.c:2548,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2549,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2549,1
    - Dst: repo_config_get_ulong
      Src: /src/git/builtin/gc.c:2552,1
    - Dst: hold_lock_file_for_update_timeout
      Src: /src/git/builtin/gc.c:2556,1
    - Dst: stat
      Src: /src/git/builtin/gc.c:2563,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/gc.c:2564,1
    - Dst: strbuf_cmp
      Src: /src/git/builtin/gc.c:2565,1
    - Dst: launchctl_list_contains_plist
      Src: /src/git/builtin/gc.c:2566,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/gc.c:2567,1
    - Dst: write_in_full
      Src: /src/git/builtin/gc.c:2569,1
    - Dst: commit_lock_file
      Src: /src/git/builtin/gc.c:2570,1
    - Dst: die_errno
      Src: /src/git/builtin/gc.c:2571,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2571,1
    - Dst: launchctl_boot_plist
      Src: /src/git/builtin/gc.c:2574,1
    - Dst: launchctl_boot_plist
      Src: /src/git/builtin/gc.c:2575,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2576,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2576,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2579,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2580,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2581,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:2582,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:2583,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - exec_path
    - schedule
    argTypes:
    - char*
    - enum schedule_priority
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2585
      start: 2475
    functionDepth: 19
    functionLinenumber: 2475
    functionLinenumberEnd: 2585
    functionName: launchctl_schedule_plist
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - repo_config_get_ulong
    - strbuf_addf
    - launchctl_list_contains_plist
    - get_frequency
    - free
    - strbuf_release
    - die
    - commit_lock_file
    - strbuf_cmp
    - get_schedule_cmd
    - hold_lock_file_for_update_timeout
    - rollback_lock_file
    - strbuf_addstr
    - launchctl_service_filename
    - write_in_full
    - get_random_minute
    - stat
    - strbuf_read_file
    - die_errno
    - _
    - get_extra_launchctl_strings
    - launchctl_boot_plist
    - launchctl_service_name
    - safe_create_leading_directories
    linkageType: ''
    returnType: int
    signature: int launchctl_schedule_plist(const char *exec_path, enum schedule_priority
      schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_exec_path
      Src: /src/git/builtin/gc.c:2589,1
    - Dst: launchctl_schedule_plist
      Src: /src/git/builtin/gc.c:2591,1
    - Dst: launchctl_schedule_plist
      Src: /src/git/builtin/gc.c:2592,1
    - Dst: launchctl_schedule_plist
      Src: /src/git/builtin/gc.c:2593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2587
    functionDepth: 20
    functionLinenumber: 2587
    functionLinenumberEnd: 2594
    functionName: launchctl_add_plists
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - launchctl_schedule_plist
    - git_exec_path
    linkageType: ''
    returnType: int
    signature: int launchctl_add_plists(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: launchctl_add_plists
      Src: /src/git/builtin/gc.c:2599,1
    - Dst: launchctl_remove_plists
      Src: /src/git/builtin/gc.c:2601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - run_maintenance
    - UNUSED
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2596
    functionDepth: 21
    functionLinenumber: 2596
    functionLinenumberEnd: 2602
    functionName: launchctl_update_schedule
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - launchctl_add_plists
    - launchctl_remove_plists
    linkageType: ''
    returnType: int
    signature: int launchctl_update_schedule(int run_maintenance, int fd UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_schedule_cmd
      Src: /src/git/builtin/gc.c:2607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2604
    functionDepth: 6
    functionLinenumber: 2604
    functionLinenumberEnd: 2615
    functionName: is_schtasks_available
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - get_schedule_cmd
    linkageType: ''
    returnType: int
    signature: int is_schtasks_available(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2620,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/gc.c:2621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frequency
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2617
    functionDepth: 3
    functionLinenumber: 2617
    functionLinenumberEnd: 2622
    functionName: schtasks_task_name
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *schtasks_task_name(const char *frequency)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_frequency
      Src: /src/git/builtin/gc.c:2628,1
    - Dst: schtasks_task_name
      Src: /src/git/builtin/gc.c:2629,1
    - Dst: get_schedule_cmd
      Src: /src/git/builtin/gc.c:2631,1
    - Dst: strvec_split
      Src: /src/git/builtin/gc.c:2632,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:2633,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2634,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2635,1
    - Dst: run_command
      Src: /src/git/builtin/gc.c:2637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - schedule
    argTypes:
    - enum schedule_priority
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2624
    functionDepth: 12
    functionLinenumber: 2624
    functionLinenumberEnd: 2638
    functionName: schtasks_remove_task
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - run_command
    - strvec_pushl
    - schtasks_task_name
    - get_schedule_cmd
    - strvec_split
    - get_frequency
    - free
    linkageType: ''
    returnType: int
    signature: int schtasks_remove_task(enum schedule_priority schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: schtasks_remove_task
      Src: /src/git/builtin/gc.c:2642,1
    - Dst: schtasks_remove_task
      Src: /src/git/builtin/gc.c:2643,1
    - Dst: schtasks_remove_task
      Src: /src/git/builtin/gc.c:2644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2640
    functionDepth: 13
    functionLinenumber: 2640
    functionLinenumberEnd: 2645
    functionName: schtasks_remove_tasks
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - schtasks_remove_task
    linkageType: ''
    returnType: int
    signature: int schtasks_remove_tasks(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_frequency
      Src: /src/git/builtin/gc.c:2654,1
    - Dst: schtasks_task_name
      Src: /src/git/builtin/gc.c:2655,1
    - Dst: get_random_minute
      Src: /src/git/builtin/gc.c:2657,1
    - Dst: get_schedule_cmd
      Src: /src/git/builtin/gc.c:2659,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2661,1
    - Dst: repo_get_common_dir
      Src: /src/git/builtin/gc.c:2662,1
    - Dst: xmks_tempfile
      Src: /src/git/builtin/gc.c:2663,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:2664,1
    - Dst: fdopen_tempfile
      Src: /src/git/builtin/gc.c:2666,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2667,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2667,1
    - Dst: fputs
      Src: /src/git/builtin/gc.c:2673,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2677,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2692,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2710,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2750,1
    - Dst: get_extra_config_parameters
      Src: /src/git/builtin/gc.c:2751,1
    - Dst: strvec_split
      Src: /src/git/builtin/gc.c:2752,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:2753,1
    - Dst: get_tempfile_path
      Src: /src/git/builtin/gc.c:2754,1
    - Dst: close_tempfile_gently
      Src: /src/git/builtin/gc.c:2755,1
    - Dst: start_command
      Src: /src/git/builtin/gc.c:2760,1
    - Dst: die
      Src: /src/git/builtin/gc.c:2761,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2761,1
    - Dst: finish_command
      Src: /src/git/builtin/gc.c:2762,1
    - Dst: delete_tempfile
      Src: /src/git/builtin/gc.c:2764,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2765,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - exec_path
    - schedule
    argTypes:
    - char*
    - enum schedule_priority
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2647
    functionDepth: 12
    functionLinenumber: 2647
    functionLinenumberEnd: 2768
    functionName: schtasks_schedule_task
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - fputs
    - strbuf_addf
    - get_frequency
    - free
    - fdopen_tempfile
    - get_tempfile_path
    - delete_tempfile
    - strbuf_release
    - die
    - finish_command
    - get_extra_config_parameters
    - get_schedule_cmd
    - get_random_minute
    - schtasks_task_name
    - strvec_pushl
    - close_tempfile_gently
    - _
    - repo_get_common_dir
    - strvec_split
    - xmks_tempfile
    - fprintf
    - start_command
    linkageType: ''
    returnType: int
    signature: int schtasks_schedule_task(const char *exec_path, enum schedule_priority
      schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_exec_path
      Src: /src/git/builtin/gc.c:2772,1
    - Dst: schtasks_schedule_task
      Src: /src/git/builtin/gc.c:2774,1
    - Dst: schtasks_schedule_task
      Src: /src/git/builtin/gc.c:2775,1
    - Dst: schtasks_schedule_task
      Src: /src/git/builtin/gc.c:2776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2777
      start: 2770
    functionDepth: 13
    functionLinenumber: 2770
    functionLinenumberEnd: 2777
    functionName: schtasks_schedule_tasks
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - git_exec_path
    - schtasks_schedule_task
    linkageType: ''
    returnType: int
    signature: int schtasks_schedule_tasks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: schtasks_schedule_tasks
      Src: /src/git/builtin/gc.c:2782,1
    - Dst: schtasks_remove_tasks
      Src: /src/git/builtin/gc.c:2784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - run_maintenance
    - UNUSED
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2779
    functionDepth: 14
    functionLinenumber: 2779
    functionLinenumberEnd: 2785
    functionName: schtasks_update_schedule
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - schtasks_schedule_tasks
    - schtasks_remove_tasks
    linkageType: ''
    returnType: int
    signature: int schtasks_update_schedule(int run_maintenance, int fd UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_split
      Src: /src/git/builtin/gc.c:2792,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:2793,1
    - Dst: start_command
      Src: /src/git/builtin/gc.c:2799,1
    - Dst: finish_command
      Src: /src/git/builtin/gc.c:2802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2787
    functionDepth: 12
    functionLinenumber: 2787
    functionLinenumberEnd: 2804
    functionName: check_crontab_process
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_split
    - finish_command
    - start_command
    linkageType: ''
    returnType: MAYBE_UNUSED
    signature: MAYBE_UNUSED check_crontab_process(const char *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_schedule_cmd
      Src: /src/git/builtin/gc.c:2812,1
    - Dst: check_crontab_process
      Src: /src/git/builtin/gc.c:2824,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2806
    functionDepth: 13
    functionLinenumber: 2806
    functionLinenumberEnd: 2830
    functionName: is_crontab_available
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - free
    - check_crontab_process
    - get_schedule_cmd
    linkageType: ''
    returnType: int
    signature: int is_crontab_available(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_random_minute
      Src: /src/git/builtin/gc.c:2845,1
    - Dst: get_schedule_cmd
      Src: /src/git/builtin/gc.c:2847,1
    - Dst: strvec_split
      Src: /src/git/builtin/gc.c:2848,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:2849,1
    - Dst: dup
      Src: /src/git/builtin/gc.c:2851,1
    - Dst: start_command
      Src: /src/git/builtin/gc.c:2854,1
    - Dst: error
      Src: /src/git/builtin/gc.c:2855,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2855,1
    - Dst: finish_command
      Src: /src/git/builtin/gc.c:2860,1
    - Dst: mks_tempfile_t
      Src: /src/git/builtin/gc.c:2862,1
    - Dst: error
      Src: /src/git/builtin/gc.c:2864,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2864,1
    - Dst: fdopen_tempfile
      Src: /src/git/builtin/gc.c:2867,1
    - Dst: error
      Src: /src/git/builtin/gc.c:2869,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2869,1
    - Dst: fdopen
      Src: /src/git/builtin/gc.c:2877,1
    - Dst: rewind
      Src: /src/git/builtin/gc.c:2878,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/gc.c:2880,1
    - Dst: strcmp
      Src: /src/git/builtin/gc.c:2881,1
    - Dst: strcmp
      Src: /src/git/builtin/gc.c:2883,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2886,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:2888,1
    - Dst: git_exec_path
      Src: /src/git/builtin/gc.c:2892,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2894,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2895,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2897,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2898,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/gc.c:2901,1
    - Dst: get_extra_config_parameters
      Src: /src/git/builtin/gc.c:2903,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2904,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2905,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2906,1
    - Dst: strbuf_release
      Src: /src/git/builtin/gc.c:2907,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:2909,1
    - Dst: fflush
      Src: /src/git/builtin/gc.c:2912,1
    - Dst: strvec_split
      Src: /src/git/builtin/gc.c:2914,1
    - Dst: strvec_push
      Src: /src/git/builtin/gc.c:2915,1
    - Dst: get_tempfile_path
      Src: /src/git/builtin/gc.c:2915,1
    - Dst: start_command
      Src: /src/git/builtin/gc.c:2918,1
    - Dst: error
      Src: /src/git/builtin/gc.c:2919,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2919,1
    - Dst: finish_command
      Src: /src/git/builtin/gc.c:2923,1
    - Dst: error
      Src: /src/git/builtin/gc.c:2924,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2924,1
    - Dst: fclose
      Src: /src/git/builtin/gc.c:2926,1
    - Dst: delete_tempfile
      Src: /src/git/builtin/gc.c:2929,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2930,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 2
    argNames:
    - run_maintenance
    - fd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2932
      start: 2835
    functionDepth: 12
    functionLinenumber: 2835
    functionLinenumberEnd: 2932
    functionName: crontab_update_schedule
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - fclose
    - strvec_push
    - strbuf_addf
    - strcmp
    - free
    - fdopen_tempfile
    - get_tempfile_path
    - error
    - delete_tempfile
    - strbuf_release
    - strbuf_getline_lf
    - finish_command
    - fdopen
    - get_schedule_cmd
    - get_extra_config_parameters
    - mks_tempfile_t
    - get_random_minute
    - dup
    - fflush
    - _
    - strvec_split
    - rewind
    - git_exec_path
    - fprintf
    - start_command
    linkageType: ''
    returnType: int
    signature: int crontab_update_schedule(int run_maintenance, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:2938,1
    - Dst: start_command
      Src: /src/git/builtin/gc.c:2944,1
    - Dst: finish_command
      Src: /src/git/builtin/gc.c:2946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2934
    functionDepth: 7
    functionLinenumber: 2934
    functionLinenumberEnd: 2949
    functionName: real_is_systemd_timer_available
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strvec_pushl
    - finish_command
    - start_command
    linkageType: ''
    returnType: int
    signature: int real_is_systemd_timer_available(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_schedule_cmd
      Src: /src/git/builtin/gc.c:2955,1
    - Dst: real_is_systemd_timer_available
      Src: /src/git/builtin/gc.c:2958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2959
      start: 2951
    functionDepth: 8
    functionLinenumber: 2951
    functionLinenumberEnd: 2959
    functionName: is_systemd_timer_available
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 1
    functionsReached:
    - real_is_systemd_timer_available
    - get_schedule_cmd
    linkageType: ''
    returnType: int
    signature: int is_systemd_timer_available(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdg_config_home_for
      Src: /src/git/builtin/gc.c:2963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2964
      start: 2961
    functionDepth: 7
    functionLinenumber: 2961
    functionLinenumberEnd: 2964
    functionName: xdg_config_home_systemd
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - xdg_config_home_for
    linkageType: ''
    returnType: char
    signature: char *xdg_config_home_systemd(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_frequency
      Src: /src/git/builtin/gc.c:2971,1
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:2972,1
    - Dst: xdg_config_home_systemd
      Src: /src/git/builtin/gc.c:2973,1
    - Dst: unlink
      Src: /src/git/builtin/gc.c:2975,1
    - Dst: is_missing_file_error
      Src: /src/git/builtin/gc.c:2975,1
    - Dst: error_errno
      Src: /src/git/builtin/gc.c:2976,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2976,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2978,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - priority
    argTypes:
    - enum schedule_priority
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2981
      start: 2968
    functionDepth: 8
    functionLinenumber: 2968
    functionLinenumberEnd: 2981
    functionName: systemd_timer_delete_timer_file
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error_errno
    - xstrfmt
    - is_missing_file_error
    - xdg_config_home_systemd
    - get_frequency
    - _
    - free
    - unlink
    linkageType: ''
    returnType: int
    signature: int systemd_timer_delete_timer_file(enum schedule_priority priority)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:2986,1
    - Dst: xdg_config_home_systemd
      Src: /src/git/builtin/gc.c:2987,1
    - Dst: unlink
      Src: /src/git/builtin/gc.c:2988,1
    - Dst: is_missing_file_error
      Src: /src/git/builtin/gc.c:2988,1
    - Dst: error_errno
      Src: /src/git/builtin/gc.c:2989,1
    - Dst: _
      Src: /src/git/builtin/gc.c:2989,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2991,1
    - Dst: free
      Src: /src/git/builtin/gc.c:2992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2983
    functionDepth: 8
    functionLinenumber: 2983
    functionLinenumberEnd: 2994
    functionName: systemd_timer_delete_service_template
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error_errno
    - xstrfmt
    - is_missing_file_error
    - xdg_config_home_systemd
    - _
    - free
    - unlink
    linkageType: ''
    returnType: int
    signature: int systemd_timer_delete_service_template(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_frequency
      Src: /src/git/builtin/gc.c:3009,1
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:3010,1
    - Dst: xdg_config_home_systemd
      Src: /src/git/builtin/gc.c:3012,1
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/gc.c:3014,1
    - Dst: error
      Src: /src/git/builtin/gc.c:3015,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3015,1
    - Dst: fopen_or_warn
      Src: /src/git/builtin/gc.c:3018,1
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:3024,1
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:3028,1
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:3032,1
    - Dst: BUG
      Src: /src/git/builtin/gc.c:3036,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:3052,1
    - Dst: error
      Src: /src/git/builtin/gc.c:3053,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3053,1
    - Dst: fclose
      Src: /src/git/builtin/gc.c:3054,1
    - Dst: fclose
      Src: /src/git/builtin/gc.c:3057,1
    - Dst: error_errno
      Src: /src/git/builtin/gc.c:3058,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3058,1
    - Dst: free
      Src: /src/git/builtin/gc.c:3065,1
    - Dst: free
      Src: /src/git/builtin/gc.c:3066,1
    - Dst: free
      Src: /src/git/builtin/gc.c:3067,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - schedule
    - minute
    argTypes:
    - enum schedule_priority
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3001
    functionDepth: 8
    functionLinenumber: 3001
    functionLinenumberEnd: 3069
    functionName: systemd_timer_write_timer_file
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - error_errno
    - BUG
    - xstrfmt
    - xdg_config_home_systemd
    - fopen_or_warn
    - get_frequency
    - _
    - free
    - safe_create_leading_directories
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int systemd_timer_write_timer_file(enum schedule_priority schedule,\n\t\t\t\t\t
      \ int minute)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:3084,1
    - Dst: xdg_config_home_systemd
      Src: /src/git/builtin/gc.c:3086,1
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/gc.c:3087,1
    - Dst: error
      Src: /src/git/builtin/gc.c:3088,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3088,1
    - Dst: fopen_or_warn
      Src: /src/git/builtin/gc.c:3091,1
    - Dst: fprintf
      Src: /src/git/builtin/gc.c:3114,1
    - Dst: get_extra_config_parameters
      Src: /src/git/builtin/gc.c:3114,1
    - Dst: error
      Src: /src/git/builtin/gc.c:3115,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3115,1
    - Dst: fclose
      Src: /src/git/builtin/gc.c:3116,1
    - Dst: fclose
      Src: /src/git/builtin/gc.c:3119,1
    - Dst: error_errno
      Src: /src/git/builtin/gc.c:3120,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3120,1
    - Dst: free
      Src: /src/git/builtin/gc.c:3127,1
    - Dst: free
      Src: /src/git/builtin/gc.c:3128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - exec_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3130
      start: 3078
    functionDepth: 8
    functionLinenumber: 3078
    functionLinenumberEnd: 3130
    functionName: systemd_timer_write_service_template
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - error_errno
    - xstrfmt
    - xdg_config_home_systemd
    - get_extra_config_parameters
    - fopen_or_warn
    - _
    - free
    - safe_create_leading_directories
    - fprintf
    linkageType: ''
    returnType: int
    signature: int systemd_timer_write_service_template(const char *exec_path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_frequency
      Src: /src/git/builtin/gc.c:3138,1
    - Dst: systemd_timer_write_timer_file
      Src: /src/git/builtin/gc.c:3152,1
    - Dst: get_schedule_cmd
      Src: /src/git/builtin/gc.c:3157,1
    - Dst: strvec_split
      Src: /src/git/builtin/gc.c:3158,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/gc.c:3159,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/gc.c:3161,1
    - Dst: start_command
      Src: /src/git/builtin/gc.c:3163,1
    - Dst: error
      Src: /src/git/builtin/gc.c:3164,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3164,1
    - Dst: finish_command
      Src: /src/git/builtin/gc.c:3168,1
    - Dst: error
      Src: /src/git/builtin/gc.c:3177,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3177,1
    - Dst: free
      Src: /src/git/builtin/gc.c:3185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - enable
    - schedule
    - minute
    argTypes:
    - int
    - enum schedule_priority
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3187
      start: 3132
    functionDepth: 12
    functionLinenumber: 3132
    functionLinenumberEnd: 3187
    functionName: systemd_timer_enable_unit
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - systemd_timer_write_timer_file
    - finish_command
    - strvec_pushl
    - get_schedule_cmd
    - strvec_split
    - get_frequency
    - _
    - free
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: int
    signature: "int systemd_timer_enable_unit(int enable,\n\t\t\t\t     enum schedule_priority
      schedule,\n\t\t\t\t     int minute)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:3195,1
    - Dst: xdg_config_home_systemd
      Src: /src/git/builtin/gc.c:3196,1
    - Dst: unlink
      Src: /src/git/builtin/gc.c:3198,1
    - Dst: is_missing_file_error
      Src: /src/git/builtin/gc.c:3198,1
    - Dst: warning
      Src: /src/git/builtin/gc.c:3199,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3199,1
    - Dst: free
      Src: /src/git/builtin/gc.c:3201,1
    - Dst: free
      Src: /src/git/builtin/gc.c:3202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3203
      start: 3193
    functionDepth: 8
    functionLinenumber: 3193
    functionLinenumberEnd: 3203
    functionName: systemd_timer_delete_stale_timer_templates
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - is_missing_file_error
    - xdg_config_home_systemd
    - _
    - free
    - warning
    - unlink
    linkageType: ''
    returnType: void
    signature: void systemd_timer_delete_stale_timer_templates(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: systemd_timer_delete_stale_timer_templates
      Src: /src/git/builtin/gc.c:3207,1
    - Dst: systemd_timer_delete_timer_file
      Src: /src/git/builtin/gc.c:3210,1
    - Dst: systemd_timer_delete_timer_file
      Src: /src/git/builtin/gc.c:3211,1
    - Dst: systemd_timer_delete_timer_file
      Src: /src/git/builtin/gc.c:3212,1
    - Dst: systemd_timer_delete_service_template
      Src: /src/git/builtin/gc.c:3213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3214
      start: 3205
    functionDepth: 9
    functionLinenumber: 3205
    functionLinenumberEnd: 3214
    functionName: systemd_timer_delete_unit_files
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - systemd_timer_delete_timer_file
    - systemd_timer_delete_service_template
    - systemd_timer_delete_stale_timer_templates
    linkageType: ''
    returnType: int
    signature: int systemd_timer_delete_unit_files(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_random_minute
      Src: /src/git/builtin/gc.c:3218,1
    - Dst: systemd_timer_enable_unit
      Src: /src/git/builtin/gc.c:3220,1
    - Dst: systemd_timer_enable_unit
      Src: /src/git/builtin/gc.c:3221,1
    - Dst: systemd_timer_enable_unit
      Src: /src/git/builtin/gc.c:3222,1
    - Dst: systemd_timer_delete_unit_files
      Src: /src/git/builtin/gc.c:3223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3216
    functionDepth: 13
    functionLinenumber: 3216
    functionLinenumberEnd: 3224
    functionName: systemd_timer_delete_units
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - get_random_minute
    - systemd_timer_enable_unit
    - systemd_timer_delete_unit_files
    linkageType: ''
    returnType: int
    signature: int systemd_timer_delete_units(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_random_minute
      Src: /src/git/builtin/gc.c:3228,1
    - Dst: git_exec_path
      Src: /src/git/builtin/gc.c:3229,1
    - Dst: systemd_timer_write_service_template
      Src: /src/git/builtin/gc.c:3231,1
    - Dst: systemd_timer_enable_unit
      Src: /src/git/builtin/gc.c:3232,1
    - Dst: systemd_timer_enable_unit
      Src: /src/git/builtin/gc.c:3233,1
    - Dst: systemd_timer_enable_unit
      Src: /src/git/builtin/gc.c:3234,1
    - Dst: systemd_timer_delete_units
      Src: /src/git/builtin/gc.c:3237,1
    - Dst: systemd_timer_delete_stale_timer_templates
      Src: /src/git/builtin/gc.c:3239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3242
      start: 3226
    functionDepth: 14
    functionLinenumber: 3226
    functionLinenumberEnd: 3242
    functionName: systemd_timer_setup_units
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - get_random_minute
    - systemd_timer_delete_units
    - systemd_timer_delete_stale_timer_templates
    - systemd_timer_write_service_template
    - systemd_timer_enable_unit
    - git_exec_path
    linkageType: ''
    returnType: int
    signature: int systemd_timer_setup_units(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: systemd_timer_setup_units
      Src: /src/git/builtin/gc.c:3247,1
    - Dst: systemd_timer_delete_units
      Src: /src/git/builtin/gc.c:3249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - run_maintenance
    - UNUSED
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3250
      start: 3244
    functionDepth: 15
    functionLinenumber: 3244
    functionLinenumberEnd: 3250
    functionName: systemd_timer_update_schedule
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - systemd_timer_delete_units
    - systemd_timer_setup_units
    linkageType: ''
    returnType: int
    signature: int systemd_timer_update_schedule(int run_maintenance, int fd UNUSED)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:3292,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:3294,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:3294,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:3296,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:3297,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:3299,1
    - Dst: strcasecmp
      Src: /src/git/builtin/gc.c:3301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3305
      start: 3288
    functionDepth: 1
    functionLinenumber: 3288
    functionLinenumberEnd: 3305
    functionName: parse_scheduler
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: enum scheduler
    signature: enum scheduler parse_scheduler(const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/gc.c:3312,1
    - Dst: parse_scheduler
      Src: /src/git/builtin/gc.c:3314,1
    - Dst: error
      Src: /src/git/builtin/gc.c:3316,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3318
      start: 3307
    functionDepth: 2
    functionLinenumber: 3307
    functionLinenumberEnd: 3318
    functionName: maintenance_opt_scheduler
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - parse_scheduler
    - _
    linkageType: ''
    returnType: int
    signature: "int maintenance_opt_scheduler(const struct option *opt, const char
      *arg,\n\t\t\t\t     int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_systemd_timer_available
      Src: /src/git/builtin/gc.c:3336,1
    - Dst: is_crontab_available
      Src: /src/git/builtin/gc.c:3338,1
    - Dst: die
      Src: /src/git/builtin/gc.c:3341,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - enum scheduler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3346
      start: 3324
    functionDepth: 14
    functionLinenumber: 3324
    functionLinenumberEnd: 3346
    functionName: resolve_scheduler
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - is_systemd_timer_available
    - die
    - is_crontab_available
    - _
    linkageType: ''
    returnType: enum scheduler
    signature: enum scheduler resolve_scheduler(enum scheduler scheduler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/gc.c:3351,1
    - Dst: BUG
      Src: /src/git/builtin/gc.c:3353,1
    - Dst: is_available
      Src: /src/git/builtin/gc.c:3355,1
    - Dst: die
      Src: /src/git/builtin/gc.c:3356,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - enum scheduler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3358
      start: 3348
    functionDepth: 1
    functionLinenumber: 3348
    functionLinenumberEnd: 3358
    functionName: validate_scheduler
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - die
    - BUG
    - is_available
    - _
    linkageType: ''
    returnType: void
    signature: void validate_scheduler(enum scheduler scheduler)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/gc.c:3366,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/builtin/gc.c:3368,1
    - Dst: error
      Src: /src/git/builtin/gc.c:3370,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3370,1
    - Dst: absolute_path
      Src: /src/git/builtin/gc.c:3375,1
    - Dst: strerror
      Src: /src/git/builtin/gc.c:3375,1
    - Dst: error_errno
      Src: /src/git/builtin/gc.c:3377,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3377,1
    - Dst: free
      Src: /src/git/builtin/gc.c:3378,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/gc.c:3382,1
    - Dst: is_available
      Src: /src/git/builtin/gc.c:3385,1
    - Dst: update_schedule
      Src: /src/git/builtin/gc.c:3387,1
    - Dst: get_lock_file_fd
      Src: /src/git/builtin/gc.c:3387,1
    - Dst: update_schedule
      Src: /src/git/builtin/gc.c:3391,1
    - Dst: get_lock_file_fd
      Src: /src/git/builtin/gc.c:3392,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/gc.c:3394,1
    - Dst: free
      Src: /src/git/builtin/gc.c:3396,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - opts
    - enable
    argTypes:
    - struct maintenance_start_opts*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3360
    functionDepth: 6
    functionLinenumber: 3360
    functionLinenumberEnd: 3398
    functionName: update_background_schedule
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - error
    - absolute_path
    - hold_lock_file_for_update
    - error_errno
    - ARRAY_SIZE
    - xstrfmt
    - strerror
    - update_schedule
    - is_available
    - get_lock_file_fd
    - rollback_lock_file
    - _
    - free
    linkageType: ''
    returnType: int
    signature: "int update_background_schedule(const struct maintenance_start_opts
      *opts,\n\t\t\t\t      int enable)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/gc.c:3410,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:3411,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:3412,1
    - Dst: OPT_END
      Src: /src/git/builtin/gc.c:3414,1
    - Dst: parse_options
      Src: /src/git/builtin/gc.c:3418,1
    - Dst: usage_with_options
      Src: /src/git/builtin/gc.c:3421,1
    - Dst: resolve_scheduler
      Src: /src/git/builtin/gc.c:3423,1
    - Dst: validate_scheduler
      Src: /src/git/builtin/gc.c:3424,1
    - Dst: update_background_schedule
      Src: /src/git/builtin/gc.c:3426,1
    - Dst: die
      Src: /src/git/builtin/gc.c:3427,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3427,1
    - Dst: maintenance_register
      Src: /src/git/builtin/gc.c:3429,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/gc.c:3429,1
    - Dst: warning
      Src: /src/git/builtin/gc.c:3430,1
    - Dst: _
      Src: /src/git/builtin/gc.c:3430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3432
      start: 3405
    functionDepth: 20
    functionLinenumber: 3405
    functionLinenumberEnd: 3432
    functionName: maintenance_start
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - parse_options
    - OPT_END
    - die
    - update_background_schedule
    - resolve_scheduler
    - validate_scheduler
    - maintenance_register
    - OPT_CALLBACK_F
    - _
    - N_
    - warning
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int maintenance_start(int argc, const char **argv, const char *prefix,\n\t\t\t
      \    struct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/gc.c:3443,1
    - Dst: parse_options
      Src: /src/git/builtin/gc.c:3445,1
    - Dst: usage_with_options
      Src: /src/git/builtin/gc.c:3448,1
    - Dst: update_background_schedule
      Src: /src/git/builtin/gc.c:3449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3439
    functionDepth: 13
    functionLinenumber: 3439
    functionLinenumberEnd: 3450
    functionName: maintenance_stop
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - update_background_schedule
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int maintenance_stop(int argc, const char **argv, const char *prefix,\n\t\t\t
      \   struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/gc.c:3464,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:3465,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/gc.c:3466,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:3466,1
    - Dst: N_
      Src: /src/git/builtin/gc.c:3467,1
    - Dst: OPT_END
      Src: /src/git/builtin/gc.c:3469,1
    - Dst: parse_options
      Src: /src/git/builtin/gc.c:3473,1
    - Dst: usage_with_options
      Src: /src/git/builtin/gc.c:3477,1
    - Dst: gc_config
      Src: /src/git/builtin/gc.c:3479,1
    - Dst: initialize_task_config
      Src: /src/git/builtin/gc.c:3480,1
    - Dst: auto_condition
      Src: /src/git/builtin/gc.c:3485,1
    - Dst: string_list_clear
      Src: /src/git/builtin/gc.c:3503,1
    - Dst: maintenance_run_opts_release
      Src: /src/git/builtin/gc.c:3504,1
    - Dst: gc_config_release
      Src: /src/git/builtin/gc.c:3505,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3457
    functionDepth: 21
    functionLinenumber: 3457
    functionLinenumberEnd: 3510
    functionName: maintenance_is_needed
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - parse_options
    - OPT_END
    - initialize_task_config
    - gc_config_release
    - OPT_BOOL
    - OPT_CALLBACK_F
    - gc_config
    - N_
    - auto_condition
    - maintenance_run_opts_release
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int maintenance_is_needed(int argc, const char **argv, const char
      *prefix,\n\t\t\t\t struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/gc.c:3524,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/gc.c:3525,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/gc.c:3526,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/gc.c:3527,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/gc.c:3528,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/gc.c:3529,1
    - Dst: OPT_END
      Src: /src/git/builtin/gc.c:3530,1
    - Dst: parse_options
      Src: /src/git/builtin/gc.c:3533,1
    - Dst: fn
      Src: /src/git/builtin/gc.c:3535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3536
      start: 3517
    functionDepth: 13
    functionLinenumber: 3517
    functionLinenumberEnd: 3536
    functionName: cmd_maintenance
    functionSourceFile: /src/git/builtin/gc.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - parse_options
    - OPT_SUBCOMMAND
    - fn
    linkageType: ''
    returnType: int
    signature: "int cmd_maintenance(int argc,\n\t\t    const char **argv,\n\t\t    const
      char *prefix,\n\t\t    struct repository *repo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/git/builtin/rev-parse.c:100,1
    - Dst: strlen
      Src: /src/git/builtin/rev-parse.c:108,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:109,1
    - Dst: strncmp
      Src: /src/git/builtin/rev-parse.c:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 113
    functionName: is_rev_argument
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strncmp
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_rev_argument(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/git/builtin/rev-parse.c:121,1
    - Dst: fputs
      Src: /src/git/builtin/rev-parse.c:124,1
    - Dst: putchar
      Src: /src/git/builtin/rev-parse.c:125,1
    - Dst: putchar
      Src: /src/git/builtin/rev-parse.c:127,1
    - Dst: putchar
      Src: /src/git/builtin/rev-parse.c:128,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 132
    functionName: show
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 3
    functionsReached:
    - puts
    - putchar
    - fputs
    linkageType: ''
    returnType: void
    signature: void show(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/git/builtin/rev-parse.c:138,1
    - Dst: show
      Src: /src/git/builtin/rev-parse.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: show_with_type
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - putchar
    - show
    linkageType: ''
    returnType: void
    signature: void show_with_type(int type, const char *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: repo_dwim_ref
      Src: /src/git/builtin/rev-parse.c:154,1
    - Dst: strlen
      Src: /src/git/builtin/rev-parse.c:155,1
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/builtin/rev-parse.c:169,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rev-parse.c:169,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:172,1
    - Dst: show_with_type
      Src: /src/git/builtin/rev-parse.c:174,1
    - Dst: error
      Src: /src/git/builtin/rev-parse.c:177,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:180,1
    - Dst: show_with_type
      Src: /src/git/builtin/rev-parse.c:182,1
    - Dst: show_with_type
      Src: /src/git/builtin/rev-parse.c:186,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/rev-parse.c:187,1
    - Dst: show_with_type
      Src: /src/git/builtin/rev-parse.c:189,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-parse.c:189,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - type
    - oid
    - name
    argTypes:
    - int
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 190
    functionName: show_rev
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - repo_dwim_ref
    - show_with_type
    - refs_shorten_unambiguous_ref
    - strlen
    - repo_find_unique_abbrev
    - free
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void show_rev(int type, const struct object_id *oid, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_rev_argument
      Src: /src/git/builtin/rev-parse.c:197,1
    - Dst: show
      Src: /src/git/builtin/rev-parse.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: show_flag
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - show
    - is_rev_argument
    linkageType: ''
    returnType: int
    signature: int show_flag(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/rev-parse.c:212,1
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: show_default
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - repo_get_oid
    - show_rev
    linkageType: ''
    returnType: int
    signature: int show_default(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ref_excluded
      Src: /src/git/builtin/rev-parse.c:222,1
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 5
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: show_reference
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - show_rev
    - ref_excluded
    linkageType: ''
    returnType: int
    signature: int show_reference(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 5
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: anti_reference
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - show_rev
    linkageType: ''
    returnType: int
    signature: int anti_reference(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - oid
    - cb_data
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: show_abbrev
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - show_rev
    linkageType: ''
    returnType: int
    signature: int show_abbrev(const struct object_id *oid, void *cb_data UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/rev-parse.c:247,1
    - Dst: approxidate
      Src: /src/git/builtin/rev-parse.c:247,1
    - Dst: show
      Src: /src/git/builtin/rev-parse.c:248,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - flag
    - datestr
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 5
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: show_datestring
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - show
    - approxidate
    - free
    linkageType: ''
    returnType: void
    signature: void show_datestring(const char *flag, const char *datestr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: show_default
      Src: /src/git/builtin/rev-parse.c:254,1
    - Dst: prefix_filename
      Src: /src/git/builtin/rev-parse.c:258,1
    - Dst: show
      Src: /src/git/builtin/rev-parse.c:259,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:260,1
    - Dst: show
      Src: /src/git/builtin/rev-parse.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - arg
    - output_prefix
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 6
    functionLinenumber: 252
    functionLinenumberEnd: 266
    functionName: show_file
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 4
    functionsReached:
    - show
    - show_default
    - prefix_filename
    - free
    linkageType: ''
    returnType: int
    signature: int show_file(const char *arg, int output_prefix)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/builtin/rev-parse.c:279,1
    - Dst: xmemdupz
      Src: /src/git/builtin/rev-parse.c:281,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:297,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/rev-parse.c:301,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/rev-parse.c:301,1
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:302,1
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:303,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/rev-parse.c:307,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/rev-parse.c:308,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:310,1
    - Dst: repo_get_merge_bases
      Src: /src/git/builtin/rev-parse.c:313,1
    - Dst: exit
      Src: /src/git/builtin/rev-parse.c:314,1
    - Dst: pop_commit
      Src: /src/git/builtin/rev-parse.c:316,1
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:317,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:320,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:323,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 268
    functionDepth: 25
    functionLinenumber: 268
    functionLinenumberEnd: 325
    functionName: try_difference
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strstr
    - lookup_commit_reference
    - exit
    - repo_get_merge_bases
    - pop_commit
    - show_rev
    - repo_get_oid_committish
    - free
    linkageType: ''
    returnType: int
    signature: int try_difference(const char *arg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/builtin/rev-parse.c:339,1
    - Dst: strstr
      Src: /src/git/builtin/rev-parse.c:343,1
    - Dst: strstr
      Src: /src/git/builtin/rev-parse.c:347,1
    - Dst: strtoul
      Src: /src/git/builtin/rev-parse.c:353,1
    - Dst: xmemdupz
      Src: /src/git/builtin/rev-parse.c:360,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/rev-parse.c:361,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/rev-parse.c:362,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:363,1
    - Dst: commit_list_count
      Src: /src/git/builtin/rev-parse.c:368,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:369,1
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:374,1
    - Dst: xstrfmt
      Src: /src/git/builtin/rev-parse.c:384,1
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:385,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:387,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:390,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 327
    functionDepth: 10
    functionLinenumber: 327
    functionLinenumberEnd: 392
    functionName: try_parent_shorthands
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strstr
    - lookup_commit_reference
    - xstrfmt
    - show_rev
    - repo_get_oid_committish
    - free
    - commit_list_count
    - strtoul
    linkageType: ''
    returnType: int
    signature: int try_parent_shorthands(const char *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/rev-parse.c:398,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rev-parse.c:400,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rev-parse.c:402,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/rev-parse.c:405,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/rev-parse.c:407,1
    - Dst: sq_quote_buf
      Src: /src/git/builtin/rev-parse.c:408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - o
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 394
    functionDepth: 5
    functionLinenumber: 394
    functionLinenumberEnd: 411
    functionName: parseopt_dump
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - sq_quote_buf
    - strbuf_addf
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: int parseopt_dump(const struct option *o, const char *arg, int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/builtin/rev-parse.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: skipspaces
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: char
    signature: char *skipspaces(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/builtin/rev-parse.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 426
    functionName: findspace
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: char
    signature: char *findspace(const char *s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/rev-parse.c:432,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rev-parse.c:436,1
    - Dst: N_
      Src: /src/git/builtin/rev-parse.c:437,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rev-parse.c:438,1
    - Dst: N_
      Src: /src/git/builtin/rev-parse.c:439,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rev-parse.c:441,1
    - Dst: N_
      Src: /src/git/builtin/rev-parse.c:442,1
    - Dst: OPT_END
      Src: /src/git/builtin/rev-parse.c:443,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rev-parse.c:451,1
    - Dst: parse_options
      Src: /src/git/builtin/rev-parse.c:452,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:454,1
    - Dst: usage_with_options
      Src: /src/git/builtin/rev-parse.c:455,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rev-parse.c:459,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/rev-parse.c:460,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:461,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:461,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:462,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:464,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:464,1
    - Dst: strvec_push
      Src: /src/git/builtin/rev-parse.c:468,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/rev-parse.c:472,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/rev-parse.c:480,1
    - Dst: memset
      Src: /src/git/builtin/rev-parse.c:481,1
    - Dst: findspace
      Src: /src/git/builtin/rev-parse.c:484,1
    - Dst: xstrdup
      Src: /src/git/builtin/rev-parse.c:487,1
    - Dst: skipspaces
      Src: /src/git/builtin/rev-parse.c:487,1
    - Dst: xstrdup
      Src: /src/git/builtin/rev-parse.c:494,1
    - Dst: skipspaces
      Src: /src/git/builtin/rev-parse.c:494,1
    - Dst: strpbrk
      Src: /src/git/builtin/rev-parse.c:500,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:505,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:505,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/rev-parse.c:510,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/rev-parse.c:514,1
    - Dst: xmemdupz
      Src: /src/git/builtin/rev-parse.c:540,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:542,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/rev-parse.c:545,1
    - Dst: memset
      Src: /src/git/builtin/rev-parse.c:546,1
    - Dst: parse_options
      Src: /src/git/builtin/rev-parse.c:547,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rev-parse.c:552,1
    - Dst: sq_quote_argv
      Src: /src/git/builtin/rev-parse.c:553,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:554,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:556,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:557,1
    - Dst: strvec_clear
      Src: /src/git/builtin/rev-parse.c:558,1
    - Dst: strvec_clear
      Src: /src/git/builtin/rev-parse.c:559,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:561,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:562,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:564,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 3
    argNames:
    - argc
    - argv
    - prefix
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 428
    functionDepth: 13
    functionLinenumber: 428
    functionLinenumberEnd: 566
    functionName: cmd_parseopt
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_options
    - xmemdupz
    - OPT_BOOL
    - skipspaces
    - strcmp
    - strpbrk
    - free
    - usage_with_options
    - strbuf_release
    - OPT_END
    - die
    - findspace
    - puts
    - strbuf_addstr
    - memset
    - sq_quote_argv
    - _
    - N_
    - strbuf_getline
    - strvec_pushf
    - xstrdup
    - strbuf_reset
    - strvec_clear
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: int cmd_parseopt(int argc, const char **argv, const char *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sq_quote_argv
      Src: /src/git/builtin/rev-parse.c:573,1
    - Dst: printf
      Src: /src/git/builtin/rev-parse.c:574,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 568
    functionDepth: 6
    functionLinenumber: 568
    functionLinenumberEnd: 578
    functionName: cmd_sq_quote
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - sq_quote_argv
    - printf
    linkageType: ''
    returnType: int
    signature: int cmd_sq_quote(int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/git/builtin/rev-parse.c:583,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:585,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - quiet
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: die_no_single_rev
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - exit
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void die_no_single_rev(int quiet)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-parse.c:601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - arg
    - opt
    - value
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 612
    functionName: opt_with_value
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int opt_with_value(const char *arg, const char *opt, const char **value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/rev-parse.c:620,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/rev-parse.c:622,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rev-parse.c:622,1
    - Dst: strlen
      Src: /src/git/builtin/rev-parse.c:627,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/rev-parse.c:629,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rev-parse.c:629,1
    - Dst: clear_ref_exclusions
      Src: /src/git/builtin/rev-parse.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pattern
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 633
    functionName: handle_ref_opt
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - strlen
    - clear_ref_exclusions
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void handle_ref_opt(const char *pattern, const char *prefix)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xgetcwd
      Src: /src/git/builtin/rev-parse.c:667,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:669,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/rev-parse.c:679,1
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/builtin/rev-parse.c:680,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/rev-parse.c:683,1
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/builtin/rev-parse.c:684,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:687,1
    - Dst: relative_path
      Src: /src/git/builtin/rev-parse.c:687,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:688,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:689,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:690,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:693,1
    - Dst: relative_path
      Src: /src/git/builtin/rev-parse.c:693,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:694,1
    - Dst: strbuf_realpath_forgiving
      Src: /src/git/builtin/rev-parse.c:697,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:698,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:699,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:701,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - path
    - prefix
    - format
    - def
    argTypes:
    - char*
    - char*
    - enum format_type
    - enum default_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 655
    functionDepth: 7
    functionLinenumber: 655
    functionLinenumberEnd: 702
    functionName: print_path
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - xgetcwd
    - is_absolute_path
    - strbuf_release
    - strbuf_realpath_forgiving
    - puts
    - relative_path
    - free
    linkageType: ''
    returnType: void
    signature: void print_path(const char *path, const char *prefix, enum format_type
      format, enum default_type def)
  - BBCount: 114
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/rev-parse.c:722,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:724,1
    - Dst: cmd_parseopt
      Src: /src/git/builtin/rev-parse.c:725,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:727,1
    - Dst: cmd_sq_quote
      Src: /src/git/builtin/rev-parse.c:728,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:730,1
    - Dst: usage
      Src: /src/git/builtin/rev-parse.c:731,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:734,1
    - Dst: setup_git_directory
      Src: /src/git/builtin/rev-parse.c:742,1
    - Dst: repo_config
      Src: /src/git/builtin/rev-parse.c:743,1
    - Dst: show_file
      Src: /src/git/builtin/rev-parse.c:751,1
    - Dst: verify_filename
      Src: /src/git/builtin/rev-parse.c:752,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:757,1
    - Dst: printf
      Src: /src/git/builtin/rev-parse.c:760,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:763,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:766,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:766,1
    - Dst: resolve_gitdir
      Src: /src/git/builtin/rev-parse.c:767,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:769,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:769,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:770,1
    - Dst: setup_git_directory
      Src: /src/git/builtin/rev-parse.c:777,1
    - Dst: repo_config
      Src: /src/git/builtin/rev-parse.c:778,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/rev-parse.c:781,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:786,1
    - Dst: show_file
      Src: /src/git/builtin/rev-parse.c:790,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:795,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:797,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:797,1
    - Dst: print_path
      Src: /src/git/builtin/rev-parse.c:798,1
    - Dst: repo_git_path_replace
      Src: /src/git/builtin/rev-parse.c:798,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:805,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:807,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:807,1
    - Dst: show
      Src: /src/git/builtin/rev-parse.c:809,1
    - Dst: show
      Src: /src/git/builtin/rev-parse.c:810,1
    - Dst: starts_with
      Src: /src/git/builtin/rev-parse.c:814,1
    - Dst: show
      Src: /src/git/builtin/rev-parse.c:816,1
    - Dst: opt_with_value
      Src: /src/git/builtin/rev-parse.c:819,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:821,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:821,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:822,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:824,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:827,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:827,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:831,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:834,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:834,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:837,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:840,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:840,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:845,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:849,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:853,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:857,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:861,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:866,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:866,1
    - Dst: opt_with_value
      Src: /src/git/builtin/rev-parse.c:871,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:873,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:873,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:874,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:875,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:880,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:885,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:885,1
    - Dst: opt_with_value
      Src: /src/git/builtin/rev-parse.c:887,1
    - Dst: strtoul
      Src: /src/git/builtin/rev-parse.c:893,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:900,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:904,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:908,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:912,1
    - Dst: opt_with_value
      Src: /src/git/builtin/rev-parse.c:916,1
    - Dst: repo_settings_get_warn_ambiguous_refs
      Src: /src/git/builtin/rev-parse.c:919,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:921,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:923,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:926,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:926,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:931,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/rev-parse.c:932,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rev-parse.c:932,1
    - Dst: clear_ref_exclusions
      Src: /src/git/builtin/rev-parse.c:934,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-parse.c:937,1
    - Dst: repo_for_each_abbrev
      Src: /src/git/builtin/rev-parse.c:938,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:942,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/rev-parse.c:945,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rev-parse.c:945,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/rev-parse.c:948,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rev-parse.c:948,1
    - Dst: opt_with_value
      Src: /src/git/builtin/rev-parse.c:952,1
    - Dst: error
      Src: /src/git/builtin/rev-parse.c:954,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:954,1
    - Dst: handle_ref_opt
      Src: /src/git/builtin/rev-parse.c:956,1
    - Dst: opt_with_value
      Src: /src/git/builtin/rev-parse.c:959,1
    - Dst: error
      Src: /src/git/builtin/rev-parse.c:961,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:961,1
    - Dst: handle_ref_opt
      Src: /src/git/builtin/rev-parse.c:963,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-parse.c:966,1
    - Dst: handle_ref_opt
      Src: /src/git/builtin/rev-parse.c:967,1
    - Dst: opt_with_value
      Src: /src/git/builtin/rev-parse.c:970,1
    - Dst: error
      Src: /src/git/builtin/rev-parse.c:972,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:972,1
    - Dst: handle_ref_opt
      Src: /src/git/builtin/rev-parse.c:974,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-parse.c:977,1
    - Dst: add_ref_exclusion
      Src: /src/git/builtin/rev-parse.c:978,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-parse.c:981,1
    - Dst: exclude_hidden_refs
      Src: /src/git/builtin/rev-parse.c:982,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:985,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/rev-parse.c:986,1
    - Dst: print_path
      Src: /src/git/builtin/rev-parse.c:988,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:990,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:990,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:993,1
    - Dst: get_superproject_working_tree
      Src: /src/git/builtin/rev-parse.c:995,1
    - Dst: print_path
      Src: /src/git/builtin/rev-parse.c:996,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:997,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1000,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:1002,1
    - Dst: putchar
      Src: /src/git/builtin/rev-parse.c:1004,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1007,1
    - Dst: is_inside_work_tree
      Src: /src/git/builtin/rev-parse.c:1009,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/rev-parse.c:1011,1
    - Dst: printf
      Src: /src/git/builtin/rev-parse.c:1013,1
    - Dst: strchr
      Src: /src/git/builtin/rev-parse.c:1017,1
    - Dst: printf
      Src: /src/git/builtin/rev-parse.c:1020,1
    - Dst: putchar
      Src: /src/git/builtin/rev-parse.c:1023,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1026,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1027,1
    - Dst: getenv
      Src: /src/git/builtin/rev-parse.c:1028,1
    - Dst: print_path
      Src: /src/git/builtin/rev-parse.c:1034,1
    - Dst: print_path
      Src: /src/git/builtin/rev-parse.c:1038,1
    - Dst: strbuf_realpath
      Src: /src/git/builtin/rev-parse.c:1047,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:1048,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:1049,1
    - Dst: xgetcwd
      Src: /src/git/builtin/rev-parse.c:1053,1
    - Dst: strlen
      Src: /src/git/builtin/rev-parse.c:1054,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rev-parse.c:1055,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rev-parse.c:1056,1
    - Dst: free
      Src: /src/git/builtin/rev-parse.c:1057,1
    - Dst: print_path
      Src: /src/git/builtin/rev-parse.c:1058,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1061,1
    - Dst: print_path
      Src: /src/git/builtin/rev-parse.c:1062,1
    - Dst: repo_get_common_dir
      Src: /src/git/builtin/rev-parse.c:1062,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1065,1
    - Dst: printf
      Src: /src/git/builtin/rev-parse.c:1066,1
    - Dst: is_inside_git_dir
      Src: /src/git/builtin/rev-parse.c:1066,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1070,1
    - Dst: printf
      Src: /src/git/builtin/rev-parse.c:1071,1
    - Dst: is_inside_work_tree
      Src: /src/git/builtin/rev-parse.c:1071,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1075,1
    - Dst: printf
      Src: /src/git/builtin/rev-parse.c:1076,1
    - Dst: is_bare_repository
      Src: /src/git/builtin/rev-parse.c:1076,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1080,1
    - Dst: printf
      Src: /src/git/builtin/rev-parse.c:1081,1
    - Dst: is_repository_shallow
      Src: /src/git/builtin/rev-parse.c:1082,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1086,1
    - Dst: repo_read_index
      Src: /src/git/builtin/rev-parse.c:1087,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:1088,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:1088,1
    - Dst: repo_git_path_replace
      Src: /src/git/builtin/rev-parse.c:1091,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-parse.c:1091,1
    - Dst: print_path
      Src: /src/git/builtin/rev-parse.c:1092,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-parse.c:1096,1
    - Dst: show_datestring
      Src: /src/git/builtin/rev-parse.c:1097,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-parse.c:1100,1
    - Dst: show_datestring
      Src: /src/git/builtin/rev-parse.c:1101,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-parse.c:1104,1
    - Dst: show_datestring
      Src: /src/git/builtin/rev-parse.c:1105,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-parse.c:1108,1
    - Dst: show_datestring
      Src: /src/git/builtin/rev-parse.c:1109,1
    - Dst: opt_with_value
      Src: /src/git/builtin/rev-parse.c:1112,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1115,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1116,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1117,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1118,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:1119,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:1119,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1122,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:1124,1
    - Dst: putchar
      Src: /src/git/builtin/rev-parse.c:1126,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:1128,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1132,1
    - Dst: puts
      Src: /src/git/builtin/rev-parse.c:1133,1
    - Dst: ref_storage_format_to_name
      Src: /src/git/builtin/rev-parse.c:1133,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-parse.c:1136,1
    - Dst: show_file
      Src: /src/git/builtin/rev-parse.c:1139,1
    - Dst: show_flag
      Src: /src/git/builtin/rev-parse.c:1142,1
    - Dst: die_no_single_rev
      Src: /src/git/builtin/rev-parse.c:1143,1
    - Dst: try_difference
      Src: /src/git/builtin/rev-parse.c:1148,1
    - Dst: try_parent_shorthands
      Src: /src/git/builtin/rev-parse.c:1150,1
    - Dst: repo_get_oid_with_flags
      Src: /src/git/builtin/rev-parse.c:1158,1
    - Dst: repo_oid_to_algop
      Src: /src/git/builtin/rev-parse.c:1161,1
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:1166,1
    - Dst: die_no_single_rev
      Src: /src/git/builtin/rev-parse.c:1170,1
    - Dst: die
      Src: /src/git/builtin/rev-parse.c:1172,1
    - Dst: _
      Src: /src/git/builtin/rev-parse.c:1172,1
    - Dst: show_file
      Src: /src/git/builtin/rev-parse.c:1174,1
    - Dst: verify_filename
      Src: /src/git/builtin/rev-parse.c:1176,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-parse.c:1178,1
    - Dst: show_rev
      Src: /src/git/builtin/rev-parse.c:1181,1
    - Dst: show_default
      Src: /src/git/builtin/rev-parse.c:1183,1
    - Dst: die_no_single_rev
      Src: /src/git/builtin/rev-parse.c:1185,1
    - Dst: show_default
      Src: /src/git/builtin/rev-parse.c:1187,1
    CyclomaticComplexity: 197
    EdgeCount: 197
    ICount: 404
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 704
    functionDepth: 26
    functionLinenumber: 704
    functionLinenumberEnd: 1189
    functionName: cmd_rev_parse
    functionSourceFile: /src/git/builtin/rev-parse.c
    functionUses: 0
    functionsReached:
    - try_difference
    - is_inside_git_dir
    - putchar
    - repo_get_oid_with_flags
    - setup_git_directory
    - strbuf_addf
    - clear_ref_exclusions
    - strchr
    - die_no_single_rev
    - strcmp
    - free
    - show_flag
    - repo_config
    - printf
    - exclude_hidden_refs
    - get_main_ref_store
    - error
    - handle_ref_opt
    - strbuf_release
    - cmd_sq_quote
    - die
    - show_file
    - strbuf_realpath
    - xgetcwd
    - puts
    - repo_read_index
    - is_inside_work_tree
    - ref_storage_format_to_name
    - repo_oid_to_algop
    - add_ref_exclusion
    - strtoul
    - oid_to_hex
    - repo_get_work_tree
    - repo_for_each_abbrev
    - show_datestring
    - is_repository_shallow
    - show_rev
    - _
    - verify_filename
    - skip_prefix
    - try_parent_shorthands
    - is_bare_repository
    - opt_with_value
    - strbuf_reset
    - show_usage_if_asked
    - repo_settings_get_warn_ambiguous_refs
    - show
    - cmd_parseopt
    - resolve_gitdir
    - usage
    - prepare_repo_settings
    - print_path
    - starts_with
    - refs_for_each_ref
    - refs_for_each_ref_ext
    - strlen
    - repo_get_common_dir
    - show_default
    - getenv
    - repo_git_path_replace
    - get_superproject_working_tree
    linkageType: ''
    returnType: int
    signature: "int cmd_rev_parse(int argc,\n\t\t  const char **argv,\n\t\t  const
      char *prefix,\n\t\t  struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/builtin/merge.c:129,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:131,1
    - Dst: error
      Src: /src/git/builtin/merge.c:134,1
    - Dst: _
      Src: /src/git/builtin/merge.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: option_parse_message
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_addf
    - strbuf_setlen
    - _
    linkageType: ''
    returnType: int
    signature: "int option_parse_message(const struct option *opt,\n\t\t\t\tconst
      char *arg, int unset)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/merge.c:146,1
    - Dst: BUG
      Src: /src/git/builtin/merge.c:148,1
    - Dst: error
      Src: /src/git/builtin/merge.c:157,1
    - Dst: _
      Src: /src/git/builtin/merge.c:157,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/merge.c:160,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/merge.c:161,1
    - Dst: prefix_filename
      Src: /src/git/builtin/merge.c:162,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/merge.c:163,1
    - Dst: error
      Src: /src/git/builtin/merge.c:164,1
    - Dst: _
      Src: /src/git/builtin/merge.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - opt
    - arg_not_used
    - unset
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 138
    functionDepth: 5
    functionLinenumber: 138
    functionLinenumberEnd: 168
    functionName: option_read_message
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_ARG
    - is_absolute_path
    - prefix_filename
    - strbuf_read_file
    - strbuf_addch
    - _
    - BUG
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result option_read_message(struct parse_opt_ctx_t *ctx,\n\t\t\t\t\t\t
      const struct option *opt,\n\t\t\t\t\t\t const char *arg_not_used,\n\t\t\t\t\t\t
      int unset)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:182,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:183,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/merge.c:187,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:188,1
    - Dst: load_command_list
      Src: /src/git/builtin/merge.c:195,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/merge.c:199,1
    - Dst: xstrncmpz
      Src: /src/git/builtin/merge.c:200,1
    - Dst: add_cmdname
      Src: /src/git/builtin/merge.c:203,1
    - Dst: exclude_cmds
      Src: /src/git/builtin/merge.c:205,1
    - Dst: cmdnames_release
      Src: /src/git/builtin/merge.c:207,1
    - Dst: is_in_cmdlist
      Src: /src/git/builtin/merge.c:209,1
    - Dst: is_in_cmdlist
      Src: /src/git/builtin/merge.c:209,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:210,1
    - Dst: _
      Src: /src/git/builtin/merge.c:210,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:211,1
    - Dst: _
      Src: /src/git/builtin/merge.c:211,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:213,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:214,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:216,1
    - Dst: _
      Src: /src/git/builtin/merge.c:216,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:218,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:219,1
    - Dst: exit
      Src: /src/git/builtin/merge.c:221,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/merge.c:224,1
    - Dst: xstrdup
      Src: /src/git/builtin/merge.c:225,1
    - Dst: cmdnames_release
      Src: /src/git/builtin/merge.c:228,1
    - Dst: cmdnames_release
      Src: /src/git/builtin/merge.c:229,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 231
    functionName: get_strategy
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    - ARRAY_SIZE
    - exclude_cmds
    - exit
    - xstrdup
    - is_in_cmdlist
    - strcmp
    - CALLOC_ARRAY
    - add_cmdname
    - cmdnames_release
    - fprintf
    - _
    - load_command_list
    linkageType: ''
    returnType: struct strategy
    signature: struct strategy *get_strategy(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/merge.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct strategy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: append_strategy
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void append_strategy(struct strategy *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: append_strategy
      Src: /src/git/builtin/merge.c:245,1
    - Dst: get_strategy
      Src: /src/git/builtin/merge.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - UNUSED
    - name
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 6
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: option_parse_strategy
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - get_strategy
    - append_strategy
    linkageType: ''
    returnType: int
    signature: "int option_parse_strategy(const struct option *opt UNUSED,\n\t\t\t\t
      const char *name, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - UNUSED
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: option_parse_compact_summary
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int option_parse_compact_summary(const struct option *opt,\n\t\t\t\t\tconst
      char *name UNUSED, int unset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/merge.c:350,1
    - Dst: refresh_index
      Src: /src/git/builtin/merge.c:351,1
    - Dst: repo_update_index_if_able
      Src: /src/git/builtin/merge.c:353,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/merge.c:354,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/merge.c:356,1
    - Dst: start_command
      Src: /src/git/builtin/merge.c:360,1
    - Dst: die
      Src: /src/git/builtin/merge.c:361,1
    - Dst: _
      Src: /src/git/builtin/merge.c:361,1
    - Dst: strbuf_read
      Src: /src/git/builtin/merge.c:362,1
    - Dst: close
      Src: /src/git/builtin/merge.c:363,1
    - Dst: finish_command
      Src: /src/git/builtin/merge.c:365,1
    - Dst: die
      Src: /src/git/builtin/merge.c:366,1
    - Dst: _
      Src: /src/git/builtin/merge.c:366,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/merge.c:369,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/merge.c:370,1
    - Dst: die
      Src: /src/git/builtin/merge.c:371,1
    - Dst: _
      Src: /src/git/builtin/merge.c:371,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:374,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - stash
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 341
    functionDepth: 12
    functionLinenumber: 341
    functionLinenumberEnd: 376
    functionName: save_state
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_read
    - die
    - finish_command
    - repo_get_oid
    - strvec_pushl
    - strbuf_setlen
    - _
    - repo_update_index_if_able
    - repo_hold_locked_index
    - rollback_lock_file
    - refresh_index
    - close
    - start_command
    linkageType: ''
    returnType: int
    signature: int save_state(struct object_id *stash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/merge.c:382,1
    - Dst: empty_tree_oid_hex
      Src: /src/git/builtin/merge.c:383,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:384,1
    - Dst: run_command
      Src: /src/git/builtin/merge.c:387,1
    - Dst: die
      Src: /src/git/builtin/merge.c:388,1
    - Dst: _
      Src: /src/git/builtin/merge.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 378
    functionDepth: 8
    functionLinenumber: 378
    functionLinenumberEnd: 389
    functionName: read_empty
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - run_command
    - strvec_pushl
    - empty_tree_oid_hex
    - _
    linkageType: ''
    returnType: void
    signature: void read_empty(const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/merge.c:395,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:396,1
    - Dst: run_command
      Src: /src/git/builtin/merge.c:399,1
    - Dst: die
      Src: /src/git/builtin/merge.c:400,1
    - Dst: _
      Src: /src/git/builtin/merge.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 391
    functionDepth: 8
    functionLinenumber: 391
    functionLinenumberEnd: 401
    functionName: reset_hard
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - run_command
    - strvec_pushl
    - _
    linkageType: ''
    returnType: void
    signature: void reset_hard(const struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset_hard
      Src: /src/git/builtin/merge.c:408,1
    - Dst: is_null_oid
      Src: /src/git/builtin/merge.c:410,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/merge.c:413,1
    - Dst: strvec_push
      Src: /src/git/builtin/merge.c:414,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:414,1
    - Dst: run_command
      Src: /src/git/builtin/merge.c:421,1
    - Dst: discard_index
      Src: /src/git/builtin/merge.c:424,1
    - Dst: repo_read_index
      Src: /src/git/builtin/merge.c:425,1
    - Dst: die
      Src: /src/git/builtin/merge.c:426,1
    - Dst: _
      Src: /src/git/builtin/merge.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - head
    - stash
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 403
    functionDepth: 10
    functionLinenumber: 403
    functionLinenumberEnd: 427
    functionName: restore_state
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - oid_to_hex
    - die
    - run_command
    - repo_read_index
    - strvec_pushl
    - is_null_oid
    - reset_hard
    - _
    - discard_index
    linkageType: ''
    returnType: void
    signature: "void restore_state(const struct object_id *head,\n\t\t\t  const struct
      object_id *stash)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/git/builtin/merge.c:434,1
    - Dst: _
      Src: /src/git/builtin/merge.c:434,1
    - Dst: puts
      Src: /src/git/builtin/merge.c:436,1
    - Dst: _
      Src: /src/git/builtin/merge.c:436,1
    - Dst: remove_merge_branch_state
      Src: /src/git/builtin/merge.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 430
    functionDepth: 12
    functionLinenumber: 430
    functionLinenumberEnd: 439
    functionName: finish_up_to_date
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - puts
    - remove_merge_branch_state
    - _
    linkageType: ''
    returnType: void
    signature: void finish_up_to_date(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/merge.c:448,1
    - Dst: _
      Src: /src/git/builtin/merge.c:448,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/merge.c:450,1
    - Dst: diff_merges_suppress
      Src: /src/git/builtin/merge.c:451,1
    - Dst: add_pending_object
      Src: /src/git/builtin/merge.c:455,1
    - Dst: add_pending_object
      Src: /src/git/builtin/merge.c:458,1
    - Dst: setup_revisions
      Src: /src/git/builtin/merge.c:460,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/merge.c:461,1
    - Dst: die
      Src: /src/git/builtin/merge.c:462,1
    - Dst: _
      Src: /src/git/builtin/merge.c:462,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/merge.c:468,1
    - Dst: get_revision
      Src: /src/git/builtin/merge.c:469,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/merge.c:470,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:471,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:472,1
    - Dst: pretty_print_commit
      Src: /src/git/builtin/merge.c:473,1
    - Dst: write_file_buf
      Src: /src/git/builtin/merge.c:475,1
    - Dst: git_path_squash_msg
      Src: /src/git/builtin/merge.c:475,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:476,1
    - Dst: release_revisions
      Src: /src/git/builtin/merge.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - commit
    - remoteheads
    argTypes:
    - struct commit*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 441
    functionDepth: 15
    functionLinenumber: 441
    functionLinenumberEnd: 478
    functionName: squash_message
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 1
    functionsReached:
    - write_file_buf
    - strbuf_release
    - oid_to_hex
    - die
    - pretty_print_commit
    - release_revisions
    - get_revision
    - git_path_squash_msg
    - strbuf_addf
    - repo_init_revisions
    - strbuf_addch
    - add_pending_object
    - diff_merges_suppress
    - prepare_revision_walk
    - _
    - strbuf_addstr
    - setup_revisions
    - printf
    linkageType: ''
    returnType: void
    signature: void squash_message(struct commit *commit, struct commit_list *remoteheads)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/merge.c:488,1
    - Dst: getenv
      Src: /src/git/builtin/merge.c:488,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:491,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:492,1
    - Dst: getenv
      Src: /src/git/builtin/merge.c:493,1
    - Dst: squash_message
      Src: /src/git/builtin/merge.c:496,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:499,1
    - Dst: _
      Src: /src/git/builtin/merge.c:499,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/merge.c:501,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/merge.c:501,1
    - Dst: run_auto_maintenance
      Src: /src/git/builtin/merge.c:509,1
    - Dst: repo_diff_setup
      Src: /src/git/builtin/merge.c:514,1
    - Dst: init_diffstat_widths
      Src: /src/git/builtin/merge.c:515,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/merge.c:530,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/merge.c:531,1
    - Dst: diffcore_std
      Src: /src/git/builtin/merge.c:532,1
    - Dst: diff_flush
      Src: /src/git/builtin/merge.c:533,1
    - Dst: run_hooks_l
      Src: /src/git/builtin/merge.c:537,1
    - Dst: apply_autostash_ref
      Src: /src/git/builtin/merge.c:540,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:542,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 4
    argNames:
    - head_commit
    - remoteheads
    - new_head
    - msg
    argTypes:
    - struct commit*
    - struct commit_list*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 480
    functionDepth: 28
    functionLinenumber: 480
    functionLinenumberEnd: 543
    functionName: finish
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 13
    functionsReached:
    - init_diffstat_widths
    - strbuf_release
    - run_hooks_l
    - apply_autostash_ref
    - diff_tree_oid
    - strbuf_addf
    - diff_flush
    - refs_update_ref
    - diffcore_std
    - strbuf_addstr
    - _
    - repo_diff_setup
    - getenv
    - run_auto_maintenance
    - squash_message
    - diff_setup_done
    - printf
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void finish(struct commit *head_commit,\n\t\t   struct commit_list
      *remoteheads,\n\t\t   const struct object_id *new_head, const char *msg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: copy_branchname
      Src: /src/git/builtin/merge.c:556,1
    - Dst: oidclr
      Src: /src/git/builtin/merge.c:559,1
    - Dst: get_merge_parent
      Src: /src/git/builtin/merge.c:560,1
    - Dst: die
      Src: /src/git/builtin/merge.c:562,1
    - Dst: _
      Src: /src/git/builtin/merge.c:562,1
    - Dst: repo_dwim_ref
      Src: /src/git/builtin/merge.c:564,1
    - Dst: strlen
      Src: /src/git/builtin/merge.c:564,1
    - Dst: starts_with
      Src: /src/git/builtin/merge.c:566,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:567,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:568,1
    - Dst: starts_with
      Src: /src/git/builtin/merge.c:571,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:572,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:573,1
    - Dst: starts_with
      Src: /src/git/builtin/merge.c:576,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:577,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:578,1
    - Dst: strlen
      Src: /src/git/builtin/merge.c:584,1
    - Dst: strrchr
      Src: /src/git/builtin/merge.c:592,1
    - Dst: isdigit
      Src: /src/git/builtin/merge.c:597,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:611,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/merge.c:612,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/merge.c:613,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/merge.c:613,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:614,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:616,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:619,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:622,1
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:625,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:627,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:628,1
    - Dst: type_name
      Src: /src/git/builtin/merge.c:629,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:634,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:635,1
    - Dst: free
      Src: /src/git/builtin/merge.c:637,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:638,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 2
    argNames:
    - remote
    - msg
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 546
    functionDepth: 6
    functionLinenumber: 546
    functionLinenumberEnd: 639
    functionName: merge_name
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - oidclr
    - free
    - type_name
    - get_main_ref_store
    - merge_remote_util
    - strbuf_release
    - die
    - strbuf_setlen
    - refs_ref_exists
    - oid_to_hex
    - _
    - copy_branchname
    - repo_dwim_ref
    - strrchr
    - starts_with
    - isdigit
    - strlen
    - get_merge_parent
    linkageType: ''
    returnType: void
    signature: void merge_name(const char *remote, struct strbuf *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: split_cmdline
      Src: /src/git/builtin/merge.c:648,1
    - Dst: die
      Src: /src/git/builtin/merge.c:650,1
    - Dst: _
      Src: /src/git/builtin/merge.c:650,1
    - Dst: _
      Src: /src/git/builtin/merge.c:651,1
    - Dst: split_cmdline_strerror
      Src: /src/git/builtin/merge.c:651,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/builtin/merge.c:652,1
    - Dst: MOVE_ARRAY
      Src: /src/git/builtin/merge.c:653,1
    - Dst: parse_options
      Src: /src/git/builtin/merge.c:656,1
    - Dst: free
      Src: /src/git/builtin/merge.c:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - bmo
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 641
    functionDepth: 13
    functionLinenumber: 641
    functionLinenumberEnd: 659
    functionName: parse_branch_merge_options
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - parse_options
    - die
    - MOVE_ARRAY
    - split_cmdline_strerror
    - REALLOC_ARRAY
    - split_cmdline
    - _
    - free
    linkageType: ''
    returnType: void
    signature: void parse_branch_merge_options(char *bmo)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/merge.c:668,1
    - Dst: skip_prefix
      Src: /src/git/builtin/merge.c:669,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:670,1
    - Dst: free
      Src: /src/git/builtin/merge.c:671,1
    - Dst: xstrdup
      Src: /src/git/builtin/merge.c:672,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:676,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:676,1
    - Dst: git_parse_maybe_bool_text
      Src: /src/git/builtin/merge.c:677,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:686,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:706,1
    - Dst: git_config_bool
      Src: /src/git/builtin/merge.c:707,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:708,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/merge.c:709,1
    - Dst: git_config_string
      Src: /src/git/builtin/merge.c:710,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:711,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/merge.c:712,1
    - Dst: git_config_string
      Src: /src/git/builtin/merge.c:713,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:714,1
    - Dst: git_config_string
      Src: /src/git/builtin/merge.c:715,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:716,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/merge.c:717,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:720,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:724,1
    - Dst: git_config_bool
      Src: /src/git/builtin/merge.c:725,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:727,1
    - Dst: git_config_bool
      Src: /src/git/builtin/merge.c:728,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:730,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:732,1
    - Dst: git_config_bool
      Src: /src/git/builtin/merge.c:733,1
    - Dst: fmt_merge_msg_config
      Src: /src/git/builtin/merge.c:737,1
    - Dst: git_diff_ui_config
      Src: /src/git/builtin/merge.c:740,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 4
    argNames:
    - k
    - v
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 661
    functionDepth: 8
    functionLinenumber: 661
    functionLinenumberEnd: 741
    functionName: git_merge_config
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - git_config_string
    - git_parse_maybe_bool
    - strcmp
    - fmt_merge_msg_config
    - free
    - git_diff_ui_config
    - skip_prefix
    - FREE_AND_NULL
    - xstrdup
    - git_parse_maybe_bool_text
    linkageType: ''
    returnType: int
    signature: "int git_merge_config(const char *k, const char *v,\n\t\t\t    const
      struct config_context *ctx, void *cb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/merge.c:751,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/merge.c:760,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/merge.c:763,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/merge.c:766,1
    - Dst: cache_tree_free
      Src: /src/git/builtin/merge.c:770,1
    - Dst: repo_parse_tree
      Src: /src/git/builtin/merge.c:772,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/merge.c:773,1
    - Dst: unpack_trees
      Src: /src/git/builtin/merge.c:776,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - common
    - head
    - one
    argTypes:
    - struct object_id*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 743
    functionDepth: 14
    functionLinenumber: 743
    functionLinenumberEnd: 779
    functionName: read_tree_trivial
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - memset
    - repo_parse_tree_indirect
    - repo_parse_tree
    - unpack_trees
    - cache_tree_free
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int read_tree_trivial(struct object_id *common, struct object_id *head,\n\t\t\t
      \    struct object_id *one)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_index_as_tree
      Src: /src/git/builtin/merge.c:783,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/merge.c:784,1
    - Dst: die
      Src: /src/git/builtin/merge.c:786,1
    - Dst: _
      Src: /src/git/builtin/merge.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 781
    functionDepth: 14
    functionLinenumber: 781
    functionLinenumberEnd: 787
    functionName: write_tree_trivial
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - repo_get_index_file
    - die
    - write_index_as_tree
    - _
    linkageType: ''
    returnType: void
    signature: void write_tree_trivial(struct object_id *oid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_refresh_and_write_index
      Src: /src/git/builtin/merge.c:795,1
    - Dst: die
      Src: /src/git/builtin/merge.c:798,1
    - Dst: _
      Src: /src/git/builtin/merge.c:798,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:800,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:800,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:801,1
    - Dst: error
      Src: /src/git/builtin/merge.c:810,1
    - Dst: _
      Src: /src/git/builtin/merge.c:810,1
    - Dst: init_ui_merge_options
      Src: /src/git/builtin/merge.c:814,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:815,1
    - Dst: isatty
      Src: /src/git/builtin/merge.c:819,1
    - Dst: parse_merge_opt
      Src: /src/git/builtin/merge.c:822,1
    - Dst: die
      Src: /src/git/builtin/merge.c:823,1
    - Dst: _
      Src: /src/git/builtin/merge.c:823,1
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:826,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/merge.c:829,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/merge.c:831,1
    - Dst: merge_ort_recursive
      Src: /src/git/builtin/merge.c:833,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge.c:835,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:836,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/merge.c:839,1
    - Dst: write_locked_index
      Src: /src/git/builtin/merge.c:842,1
    - Dst: die
      Src: /src/git/builtin/merge.c:844,1
    - Dst: _
      Src: /src/git/builtin/merge.c:844,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/merge.c:844,1
    - Dst: try_merge_command
      Src: /src/git/builtin/merge.c:847,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - strategy
    - common
    - remoteheads
    - head
    argTypes:
    - char*
    - struct commit_list*
    - struct commit_list*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 789
    functionDepth: 22
    functionLinenumber: 789
    functionLinenumberEnd: 851
    functionName: try_merge_strategy
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - error
    - merge_remote_util
    - strbuf_release
    - die
    - commit_list_insert
    - repo_get_index_file
    - try_merge_command
    - write_locked_index
    - repo_hold_locked_index
    - commit_list_free
    - rollback_lock_file
    - merge_ort_recursive
    - init_ui_merge_options
    - strcmp
    - parse_merge_opt
    - isatty
    - repo_refresh_and_write_index
    - _
    linkageType: ''
    returnType: int
    signature: "int try_merge_strategy(const char *strategy, struct commit_list *common,\n\t\t\t
      \     struct commit_list *remoteheads,\n\t\t\t      struct commit *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - q
    - UNUSED
    - data
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 859
    functionName: count_diff_files
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void count_diff_files(struct diff_queue_struct *q,\n\t\t\t     struct
      diff_options *opt UNUSED, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ce_stage
      Src: /src/git/builtin/merge.c:866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 870
    functionName: count_unmerged_entries
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - ce_stage
    linkageType: ''
    returnType: int
    signature: int count_unmerged_entries(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_split
      Src: /src/git/builtin/merge.c:879,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/merge.c:880,1
    - Dst: append_strategy
      Src: /src/git/builtin/merge.c:881,1
    - Dst: get_strategy
      Src: /src/git/builtin/merge.c:881,1
    - Dst: string_list_clear
      Src: /src/git/builtin/merge.c:882,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/merge.c:885,1
    - Dst: append_strategy
      Src: /src/git/builtin/merge.c:887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - string
    - attr
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 872
    functionDepth: 6
    functionLinenumber: 872
    functionLinenumberEnd: 889
    functionName: add_strategies
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - ARRAY_SIZE
    - get_strategy
    - string_list_split
    - append_strategy
    linkageType: ''
    returnType: void
    signature: void add_strategies(const char *string, unsigned attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_path_merge_msg
      Src: /src/git/builtin/merge.c:893,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/merge.c:894,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/merge.c:895,1
    - Dst: die_errno
      Src: /src/git/builtin/merge.c:896,1
    - Dst: _
      Src: /src/git/builtin/merge.c:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 891
    functionDepth: 5
    functionLinenumber: 891
    functionLinenumberEnd: 897
    functionName: read_merge_msg
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_read_file
    - die_errno
    - _
    - git_path_merge_msg
    linkageType: ''
    returnType: void
    signature: void read_merge_msg(struct strbuf *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/merge.c:903,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:904,1
    - Dst: _
      Src: /src/git/builtin/merge.c:905,1
    - Dst: write_merge_state
      Src: /src/git/builtin/merge.c:906,1
    - Dst: exit
      Src: /src/git/builtin/merge.c:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - remoteheads
    - err_msg
    argTypes:
    - struct commit_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 908
    functionName: abort_commit
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - error
    - exit
    - write_merge_state
    - _
    - fprintf
    linkageType: ''
    returnType: void
    signature: void abort_commit(struct commit_list *remoteheads, const char *err_msg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_index_file
      Src: /src/git/builtin/merge.c:926,1
    - Dst: run_commit_hook
      Src: /src/git/builtin/merge.c:931,1
    - Dst: abort_commit
      Src: /src/git/builtin/merge.c:933,1
    - Dst: discard_index
      Src: /src/git/builtin/merge.c:940,1
    - Dst: read_index_from
      Src: /src/git/builtin/merge.c:942,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/merge.c:943,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/merge.c:944,1
    - Dst: BUG
      Src: /src/git/builtin/merge.c:946,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/merge.c:948,1
    - Dst: wt_status_append_cut_line
      Src: /src/git/builtin/merge.c:950,1
    - Dst: strbuf_commented_addf
      Src: /src/git/builtin/merge.c:951,1
    - Dst: strbuf_commented_addf
      Src: /src/git/builtin/merge.c:953,1
    - Dst: _
      Src: /src/git/builtin/merge.c:954,1
    - Dst: strbuf_commented_addf
      Src: /src/git/builtin/merge.c:956,1
    - Dst: _
      Src: /src/git/builtin/merge.c:957,1
    - Dst: strbuf_commented_addf
      Src: /src/git/builtin/merge.c:959,1
    - Dst: _
      Src: /src/git/builtin/merge.c:960,1
    - Dst: append_signoff
      Src: /src/git/builtin/merge.c:963,1
    - Dst: ignored_log_message_bytes
      Src: /src/git/builtin/merge.c:963,1
    - Dst: write_merge_heads
      Src: /src/git/builtin/merge.c:964,1
    - Dst: write_file_buf
      Src: /src/git/builtin/merge.c:965,1
    - Dst: git_path_merge_msg
      Src: /src/git/builtin/merge.c:965,1
    - Dst: run_commit_hook
      Src: /src/git/builtin/merge.c:966,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/merge.c:966,1
    - Dst: git_path_merge_msg
      Src: /src/git/builtin/merge.c:968,1
    - Dst: abort_commit
      Src: /src/git/builtin/merge.c:969,1
    - Dst: launch_editor
      Src: /src/git/builtin/merge.c:971,1
    - Dst: git_path_merge_msg
      Src: /src/git/builtin/merge.c:971,1
    - Dst: abort_commit
      Src: /src/git/builtin/merge.c:972,1
    - Dst: run_commit_hook
      Src: /src/git/builtin/merge.c:975,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/merge.c:975,1
    - Dst: git_path_merge_msg
      Src: /src/git/builtin/merge.c:977,1
    - Dst: abort_commit
      Src: /src/git/builtin/merge.c:978,1
    - Dst: read_merge_msg
      Src: /src/git/builtin/merge.c:980,1
    - Dst: cleanup_message
      Src: /src/git/builtin/merge.c:981,1
    - Dst: abort_commit
      Src: /src/git/builtin/merge.c:983,1
    - Dst: _
      Src: /src/git/builtin/merge.c:983,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:984,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/merge.c:985,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:986,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - remoteheads
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 923
    functionDepth: 13
    functionLinenumber: 923
    functionLinenumberEnd: 987
    functionName: prepare_to_commit
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - cleanup_message
    - strbuf_commented_addf
    - read_merge_msg
    - strbuf_addbuf
    - read_index_from
    - abort_commit
    - discard_index
    - strbuf_release
    - append_signoff
    - run_commit_hook
    - repo_get_index_file
    - _
    - git_path_merge_msg
    - wt_status_append_cut_line
    - strbuf_addch
    - launch_editor
    - ignored_log_message_bytes
    - repo_get_git_dir
    - write_file_buf
    - BUG
    - write_merge_heads
    linkageType: ''
    returnType: void
    signature: void prepare_to_commit(struct commit_list *remoteheads)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_refresh_and_write_index
      Src: /src/git/builtin/merge.c:994,1
    - Dst: error
      Src: /src/git/builtin/merge.c:997,1
    - Dst: _
      Src: /src/git/builtin/merge.c:997,1
    - Dst: write_tree_trivial
      Src: /src/git/builtin/merge.c:999,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:1000,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1000,1
    - Dst: commit_list_append
      Src: /src/git/builtin/merge.c:1001,1
    - Dst: commit_list_append
      Src: /src/git/builtin/merge.c:1002,1
    - Dst: prepare_to_commit
      Src: /src/git/builtin/merge.c:1003,1
    - Dst: commit_tree
      Src: /src/git/builtin/merge.c:1004,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1006,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1006,1
    - Dst: finish
      Src: /src/git/builtin/merge.c:1007,1
    - Dst: remove_merge_branch_state
      Src: /src/git/builtin/merge.c:1009,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge.c:1010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - head
    - remoteheads
    argTypes:
    - struct commit*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 989
    functionDepth: 29
    functionLinenumber: 989
    functionLinenumberEnd: 1012
    functionName: merge_trivial
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - error
    - prepare_to_commit
    - die
    - printf
    - commit_list_append
    - repo_refresh_and_write_index
    - commit_tree
    - finish
    - remove_merge_branch_state
    - commit_list_free
    - _
    - write_tree_trivial
    linkageType: ''
    returnType: int
    signature: int merge_trivial(struct commit *head, struct commit_list *remoteheads)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_tree_trivial
      Src: /src/git/builtin/merge.c:1025,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge.c:1026,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/merge.c:1029,1
    - Dst: prepare_to_commit
      Src: /src/git/builtin/merge.c:1030,1
    - Dst: commit_tree
      Src: /src/git/builtin/merge.c:1031,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1033,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1033,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:1034,1
    - Dst: finish
      Src: /src/git/builtin/merge.c:1035,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:1037,1
    - Dst: remove_merge_branch_state
      Src: /src/git/builtin/merge.c:1038,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge.c:1039,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - head
    - head_subsumed
    - common
    - remoteheads
    - result_tree
    - wt_strategy
    argTypes:
    - struct commit*
    - int
    - struct commit_list*
    - struct commit_list*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1014
    functionDepth: 29
    functionLinenumber: 1014
    functionLinenumberEnd: 1041
    functionName: finish_automerge
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - prepare_to_commit
    - strbuf_release
    - die
    - commit_tree
    - strbuf_addf
    - finish
    - commit_list_free
    - remove_merge_branch_state
    - _
    - commit_list_insert
    - write_tree_trivial
    linkageType: ''
    returnType: int
    signature: "int finish_automerge(struct commit *head,\n\t\t\t    int head_subsumed,\n\t\t\t
      \   struct commit_list *common,\n\t\t\t    struct commit_list *remoteheads,\n\t\t\t
      \   struct object_id *result_tree,\n\t\t\t    const char *wt_strategy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_path_merge_msg
      Src: /src/git/builtin/merge.c:1049,1
    - Dst: xfopen
      Src: /src/git/builtin/merge.c:1050,1
    - Dst: append_conflicts_hint
      Src: /src/git/builtin/merge.c:1059,1
    - Dst: get_cleanup_mode
      Src: /src/git/builtin/merge.c:1060,1
    - Dst: fputs
      Src: /src/git/builtin/merge.c:1061,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:1062,1
    - Dst: fclose
      Src: /src/git/builtin/merge.c:1063,1
    - Dst: repo_rerere
      Src: /src/git/builtin/merge.c:1064,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:1065,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1043
    functionDepth: 16
    functionLinenumber: 1043
    functionLinenumberEnd: 1068
    functionName: suggest_conflicts
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - fputs
    - get_cleanup_mode
    - append_conflicts_hint
    - repo_rerere
    - _
    - git_path_merge_msg
    - xfopen
    - printf
    linkageType: ''
    returnType: int
    signature: int suggest_conflicts(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/builtin/merge.c:1076,1
    - Dst: setup_revisions
      Src: /src/git/builtin/merge.c:1077,1
    - Dst: run_diff_files
      Src: /src/git/builtin/merge.c:1082,1
    - Dst: count_unmerged_entries
      Src: /src/git/builtin/merge.c:1088,1
    - Dst: release_revisions
      Src: /src/git/builtin/merge.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1070
    functionDepth: 12
    functionLinenumber: 1070
    functionLinenumberEnd: 1092
    functionName: evaluate_result
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - release_revisions
    - repo_init_revisions
    - count_unmerged_entries
    - setup_revisions
    - run_diff_files
    linkageType: ''
    returnType: int
    signature: int evaluate_result(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: branch_get
      Src: /src/git/builtin/merge.c:1100,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1105,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1105,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1107,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1107,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1109,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1109,1
    - Dst: xcalloc
      Src: /src/git/builtin/merge.c:1111,1
    - Dst: st_add
      Src: /src/git/builtin/merge.c:1111,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1114,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1098
    functionDepth: 17
    functionLinenumber: 1098
    functionLinenumberEnd: 1121
    functionName: setup_with_upstream
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - die
    - branch_get
    - xcalloc
    - _
    - st_add
    linkageType: ''
    returnType: int
    signature: int setup_with_upstream(const char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:1133,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:1139,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:1139,1
    - Dst: write_file_buf
      Src: /src/git/builtin/merge.c:1141,1
    - Dst: git_path_merge_head
      Src: /src/git/builtin/merge.c:1141,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/merge.c:1143,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/merge.c:1145,1
    - Dst: write_file_buf
      Src: /src/git/builtin/merge.c:1146,1
    - Dst: git_path_merge_mode
      Src: /src/git/builtin/merge.c:1146,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:1147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - remoteheads
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1123
    functionDepth: 5
    functionLinenumber: 1123
    functionLinenumberEnd: 1148
    functionName: write_merge_heads
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 1
    functionsReached:
    - git_path_merge_mode
    - merge_remote_util
    - strbuf_release
    - oid_to_hex
    - strbuf_reset
    - strbuf_addf
    - git_path_merge_head
    - strbuf_addstr
    - write_file_buf
    linkageType: ''
    returnType: void
    signature: void write_merge_heads(struct commit_list *remoteheads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_merge_heads
      Src: /src/git/builtin/merge.c:1152,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/merge.c:1153,1
    - Dst: write_file_buf
      Src: /src/git/builtin/merge.c:1154,1
    - Dst: git_path_merge_msg
      Src: /src/git/builtin/merge.c:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - remoteheads
    argTypes:
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1150
    functionDepth: 6
    functionLinenumber: 1150
    functionLinenumberEnd: 1156
    functionName: write_merge_state
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 1
    functionsReached:
    - write_file_buf
    - git_path_merge_msg
    - write_merge_heads
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void write_merge_state(struct commit_list *remoteheads)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/builtin/merge.c:1161,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/merge.c:1169,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1171,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1171,1
    - Dst: fstat
      Src: /src/git/builtin/merge.c:1176,1
    - Dst: fstat
      Src: /src/git/builtin/merge.c:1177,1
    - Dst: isatty
      Src: /src/git/builtin/merge.c:1178,1
    - Dst: isatty
      Src: /src/git/builtin/merge.c:1178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1158
    functionDepth: 5
    functionLinenumber: 1158
    functionLinenumberEnd: 1182
    functionName: default_edit_option
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - die
    - fstat
    - git_parse_maybe_bool
    - _
    - getenv
    - isatty
    linkageType: ''
    returnType: int
    signature: int default_edit_option(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reduce_heads
      Src: /src/git/builtin/merge.c:1200,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge.c:1201,1
    - Dst: pop_commit
      Src: /src/git/builtin/merge.c:1206,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/merge.c:1210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - head_commit
    - head_subsumed
    - remoteheads
    argTypes:
    - struct commit*
    - int*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1184
    functionDepth: 24
    functionLinenumber: 1184
    functionLinenumberEnd: 1213
    functionName: reduce_parents
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - pop_commit
    - reduce_heads
    - commit_list_free
    - commit_list_insert
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *reduce_parents(struct commit *head_commit,\n\t\t\t\t\t
      \ int *head_subsumed,\n\t\t\t\t\t  struct commit_list *remoteheads)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/merge.c:1219,1
    - Dst: fmt_merge_msg
      Src: /src/git/builtin/merge.c:1225,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/merge.c:1227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - merge_names
    - merge_msg
    argTypes:
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1215
    functionDepth: 15
    functionLinenumber: 1215
    functionLinenumberEnd: 1228
    functionName: prepare_merge_message
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - memset
    - strbuf_setlen
    - fmt_merge_msg
    linkageType: ''
    returnType: void
    signature: void prepare_merge_message(struct strbuf *merge_names, struct strbuf
      *merge_msg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: git_path_fetch_head
      Src: /src/git/builtin/merge.c:1240,1
    - Dst: xopen
      Src: /src/git/builtin/merge.c:1241,1
    - Dst: strbuf_read
      Src: /src/git/builtin/merge.c:1243,1
    - Dst: die_errno
      Src: /src/git/builtin/merge.c:1244,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1244,1
    - Dst: close
      Src: /src/git/builtin/merge.c:1245,1
    - Dst: die_errno
      Src: /src/git/builtin/merge.c:1246,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1246,1
    - Dst: strchr
      Src: /src/git/builtin/merge.c:1253,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/merge.c:1260,1
    - Dst: memcmp
      Src: /src/git/builtin/merge.c:1262,1
    - Dst: get_merge_parent
      Src: /src/git/builtin/merge.c:1267,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1273,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1273,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/merge.c:1276,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:1280,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - remotes
    - merge_names
    argTypes:
    - struct commit_list**
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1230
    functionDepth: 6
    functionLinenumber: 1230
    functionLinenumberEnd: 1281
    functionName: handle_fetch_head
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - xopen
    - strbuf_release
    - strbuf_read
    - die
    - get_oid_hex
    - die_errno
    - strchr
    - get_merge_parent
    - _
    - close
    - commit_list_insert
    - git_path_fetch_head
    - memcmp
    linkageType: ''
    returnType: void
    signature: void handle_fetch_head(struct commit_list **remotes, struct strbuf
      *merge_names)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/builtin/merge.c:1297,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:1299,1
    - Dst: handle_fetch_head
      Src: /src/git/builtin/merge.c:1300,1
    - Dst: reduce_parents
      Src: /src/git/builtin/merge.c:1301,1
    - Dst: get_merge_parent
      Src: /src/git/builtin/merge.c:1304,1
    - Dst: help_unknown_ref
      Src: /src/git/builtin/merge.c:1306,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1307,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/merge.c:1308,1
    - Dst: reduce_parents
      Src: /src/git/builtin/merge.c:1310,1
    - Dst: merge_name
      Src: /src/git/builtin/merge.c:1314,1
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:1314,1
    - Dst: prepare_merge_message
      Src: /src/git/builtin/merge.c:1319,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:1320,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 5
    argNames:
    - head_commit
    - head_subsumed
    - argc
    - argv
    - merge_msg
    argTypes:
    - struct commit*
    - int*
    - int
    - char**
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1283
    functionDepth: 25
    functionLinenumber: 1283
    functionLinenumberEnd: 1324
    functionName: collect_parents
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - merge_remote_util
    - prepare_merge_message
    - strbuf_release
    - merge_name
    - commit_list_insert
    - strcmp
    - help_unknown_ref
    - reduce_parents
    - get_merge_parent
    - handle_fetch_head
    - _
    linkageType: ''
    returnType: struct commit_list
    signature: "struct commit_list *collect_parents(struct commit *head_commit,\n\t\t\t\t\t
      \  int *head_subsumed,\n\t\t\t\t\t   int argc, const char **argv,\n\t\t\t\t\t
      \  struct strbuf *merge_msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:1333,1
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:1334,1
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:1335,1
    - Dst: xstrfmt
      Src: /src/git/builtin/merge.c:1352,1
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:1353,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/merge.c:1354,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/merge.c:1354,1
    - Dst: oideq
      Src: /src/git/builtin/merge.c:1355,1
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:1355,1
    - Dst: free
      Src: /src/git/builtin/merge.c:1359,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1326
    functionDepth: 5
    functionLinenumber: 1326
    functionLinenumberEnd: 1361
    functionName: merging_a_throwaway_tag
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - merge_remote_util
    - xstrfmt
    - refs_read_ref
    - free
    - oideq
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int merging_a_throwaway_tag(struct commit *commit)
  - BBCount: 81
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/merge.c:1380,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/merge.c:1386,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/merge.c:1393,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/merge.c:1393,1
    - Dst: skip_prefix
      Src: /src/git/builtin/merge.c:1397,1
    - Dst: init_diff_ui_defaults
      Src: /src/git/builtin/merge.c:1399,1
    - Dst: repo_config
      Src: /src/git/builtin/merge.c:1400,1
    - Dst: is_null_oid
      Src: /src/git/builtin/merge.c:1402,1
    - Dst: lookup_commit_or_die
      Src: /src/git/builtin/merge.c:1405,1
    - Dst: parse_branch_merge_options
      Src: /src/git/builtin/merge.c:1408,1
    - Dst: parse_options
      Src: /src/git/builtin/merge.c:1409,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/merge.c:1424,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1424,1
    - Dst: file_exists
      Src: /src/git/builtin/merge.c:1427,1
    - Dst: git_path_merge_head
      Src: /src/git/builtin/merge.c:1427,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1428,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1428,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/merge.c:1430,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/merge.c:1430,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/merge.c:1431,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/merge.c:1431,1
    - Dst: cmd_reset
      Src: /src/git/builtin/merge.c:1436,1
    - Dst: is_null_oid
      Src: /src/git/builtin/merge.c:1438,1
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/merge.c:1439,1
    - Dst: apply_autostash_oid
      Src: /src/git/builtin/merge.c:1440,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/merge.c:1448,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1448,1
    - Dst: remove_merge_branch_state
      Src: /src/git/builtin/merge.c:1452,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/merge.c:1461,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1461,1
    - Dst: file_exists
      Src: /src/git/builtin/merge.c:1464,1
    - Dst: git_path_merge_head
      Src: /src/git/builtin/merge.c:1464,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1465,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1465,1
    - Dst: cmd_commit
      Src: /src/git/builtin/merge.c:1468,1
    - Dst: repo_read_index_unmerged
      Src: /src/git/builtin/merge.c:1472,1
    - Dst: die_resolve_conflict
      Src: /src/git/builtin/merge.c:1473,1
    - Dst: file_exists
      Src: /src/git/builtin/merge.c:1475,1
    - Dst: git_path_merge_head
      Src: /src/git/builtin/merge.c:1475,1
    - Dst: advice_enabled
      Src: /src/git/builtin/merge.c:1480,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1481,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1481,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1484,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1484,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/merge.c:1486,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/merge.c:1486,1
    - Dst: advice_enabled
      Src: /src/git/builtin/merge.c:1487,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1488,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1488,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1491,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1491,1
    - Dst: resolve_undo_clear_index
      Src: /src/git/builtin/merge.c:1493,1
    - Dst: default_edit_option
      Src: /src/git/builtin/merge.c:1496,1
    - Dst: get_cleanup_mode
      Src: /src/git/builtin/merge.c:1498,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1505,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1505,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1507,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1507,1
    - Dst: setup_with_upstream
      Src: /src/git/builtin/merge.c:1521,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1523,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1523,1
    - Dst: strcmp
      Src: /src/git/builtin/merge.c:1524,1
    - Dst: usage_with_options
      Src: /src/git/builtin/merge.c:1529,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1540,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1540,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1542,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1542,1
    - Dst: collect_parents
      Src: /src/git/builtin/merge.c:1544,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1547,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1547,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1549,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1549,1
    - Dst: verify_merge_signature
      Src: /src/git/builtin/merge.c:1552,1
    - Dst: read_empty
      Src: /src/git/builtin/merge.c:1556,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/merge.c:1557,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/merge.c:1557,1
    - Dst: collect_parents
      Src: /src/git/builtin/merge.c:1569,1
    - Dst: usage_with_options
      Src: /src/git/builtin/merge.c:1573,1
    - Dst: verify_merge_signature
      Src: /src/git/builtin/merge.c:1578,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/merge.c:1583,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:1585,1
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:1585,1
    - Dst: setenv
      Src: /src/git/builtin/merge.c:1586,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/merge.c:1587,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge.c:1591,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge.c:1592,1
    - Dst: setenv
      Src: /src/git/builtin/merge.c:1593,1
    - Dst: merge_remote_util
      Src: /src/git/builtin/merge.c:1593,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/merge.c:1594,1
    - Dst: merging_a_throwaway_tag
      Src: /src/git/builtin/merge.c:1595,1
    - Dst: add_strategies
      Src: /src/git/builtin/merge.c:1603,1
    - Dst: add_strategies
      Src: /src/git/builtin/merge.c:1605,1
    - Dst: repo_get_merge_bases
      Src: /src/git/builtin/merge.c:1618,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/merge.c:1625,1
    - Dst: get_octopus_merge_bases
      Src: /src/git/builtin/merge.c:1626,1
    - Dst: free
      Src: /src/git/builtin/merge.c:1627,1
    - Dst: free
      Src: /src/git/builtin/merge.c:1631,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/merge.c:1634,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/merge.c:1634,1
    - Dst: die
      Src: /src/git/builtin/merge.c:1642,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1642,1
    - Dst: finish_up_to_date
      Src: /src/git/builtin/merge.c:1651,1
    - Dst: oideq
      Src: /src/git/builtin/merge.c:1655,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:1663,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1663,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/merge.c:1664,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/merge.c:1666,1
    - Dst: create_autostash_ref
      Src: /src/git/builtin/merge.c:1676,1
    - Dst: checkout_fast_forward
      Src: /src/git/builtin/merge.c:1678,1
    - Dst: apply_autostash_ref
      Src: /src/git/builtin/merge.c:1682,1
    - Dst: finish
      Src: /src/git/builtin/merge.c:1688,1
    - Dst: remove_merge_branch_state
      Src: /src/git/builtin/merge.c:1689,1
    - Dst: refresh_index
      Src: /src/git/builtin/merge.c:1702,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/merge.c:1708,1
    - Dst: repo_index_has_changes
      Src: /src/git/builtin/merge.c:1712,1
    - Dst: error
      Src: /src/git/builtin/merge.c:1714,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1714,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:1716,1
    - Dst: git_committer_info
      Src: /src/git/builtin/merge.c:1722,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:1723,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1723,1
    - Dst: read_tree_trivial
      Src: /src/git/builtin/merge.c:1724,1
    - Dst: merge_trivial
      Src: /src/git/builtin/merge.c:1727,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:1730,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1730,1
    - Dst: repo_in_merge_bases
      Src: /src/git/builtin/merge.c:1741,1
    - Dst: exit
      Src: /src/git/builtin/merge.c:1744,1
    - Dst: finish_up_to_date
      Src: /src/git/builtin/merge.c:1751,1
    - Dst: die_ff_impossible
      Src: /src/git/builtin/merge.c:1757,1
    - Dst: create_autostash_ref
      Src: /src/git/builtin/merge.c:1760,1
    - Dst: git_committer_info
      Src: /src/git/builtin/merge.c:1764,1
    - Dst: save_state
      Src: /src/git/builtin/merge.c:1778,1
    - Dst: oidclr
      Src: /src/git/builtin/merge.c:1779,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:1784,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1784,1
    - Dst: restore_state
      Src: /src/git/builtin/merge.c:1785,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:1788,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1788,1
    - Dst: try_merge_strategy
      Src: /src/git/builtin/merge.c:1796,1
    - Dst: evaluate_result
      Src: /src/git/builtin/merge.c:1814,1
    - Dst: finish_automerge
      Src: /src/git/builtin/merge.c:1828,1
    - Dst: restore_state
      Src: /src/git/builtin/merge.c:1839,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:1841,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1842,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:1844,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1844,1
    - Dst: apply_autostash_ref
      Src: /src/git/builtin/merge.c:1846,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:1853,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1853,1
    - Dst: restore_state
      Src: /src/git/builtin/merge.c:1854,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:1855,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1855,1
    - Dst: try_merge_strategy
      Src: /src/git/builtin/merge.c:1857,1
    - Dst: finish
      Src: /src/git/builtin/merge.c:1862,1
    - Dst: git_test_write_commit_graph_or_die
      Src: /src/git/builtin/merge.c:1864,1
    - Dst: write_merge_state
      Src: /src/git/builtin/merge.c:1866,1
    - Dst: fprintf
      Src: /src/git/builtin/merge.c:1869,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1869,1
    - Dst: suggest_conflicts
      Src: /src/git/builtin/merge.c:1872,1
    - Dst: printf
      Src: /src/git/builtin/merge.c:1874,1
    - Dst: _
      Src: /src/git/builtin/merge.c:1874,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge.c:1878,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge.c:1879,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge.c:1881,1
    - Dst: free
      Src: /src/git/builtin/merge.c:1882,1
    - Dst: free
      Src: /src/git/builtin/merge.c:1883,1
    - Dst: free
      Src: /src/git/builtin/merge.c:1884,1
    - Dst: discard_index
      Src: /src/git/builtin/merge.c:1885,1
    CyclomaticComplexity: 121
    EdgeCount: 121
    ICount: 300
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1363
    functionDepth: 30
    functionLinenumber: 1363
    functionLinenumberEnd: 1887
    functionName: cmd_merge
    functionSourceFile: /src/git/builtin/merge.c
    functionUses: 0
    functionsReached:
    - evaluate_result
    - is_null_oid
    - apply_autostash_oid
    - get_octopus_merge_bases
    - oidclr
    - strcmp
    - suggest_conflicts
    - finish_automerge
    - get_main_ref_store
    - discard_index
    - merge_remote_util
    - refs_ref_exists
    - read_tree_trivial
    - oid_to_hex
    - repo_read_index_unmerged
    - repo_index_has_changes
    - default_edit_option
    - git_committer_info
    - checkout_fast_forward
    - exit
    - prepare_repo_settings
    - repo_get_commit_tree
    - repo_find_unique_abbrev
    - fprintf
    - advice_enabled
    - verify_merge_signature
    - strbuf_addf
    - free
    - repo_config
    - printf
    - die
    - merge_trivial
    - init_diff_ui_defaults
    - refs_resolve_refdup
    - apply_autostash_ref
    - setup_with_upstream
    - finish
    - die_ff_impossible
    - skip_prefix
    - usage_msg_opt
    - oid_to_hex_r
    - collect_parents
    - restore_state
    - repo_in_merge_bases
    - setenv
    - remove_merge_branch_state
    - oideq
    - show_usage_with_options_if_asked
    - parse_options
    - git_path_merge_head
    - repo_get_merge_bases
    - refresh_index
    - strbuf_release
    - refs_delete_ref
    - resolve_undo_clear_index
    - _
    - refs_read_ref
    - save_state
    - commit_list_free
    - refs_update_ref
    - die_resolve_conflict
    - create_autostash_ref
    - cmd_reset
    - file_exists
    - try_merge_strategy
    - git_test_write_commit_graph_or_die
    - usage_with_options
    - error
    - read_empty
    - parse_branch_merge_options
    - strbuf_addstr
    - merging_a_throwaway_tag
    - add_strategies
    - finish_up_to_date
    - get_cleanup_mode
    - cmd_commit
    - lookup_commit_or_die
    - strbuf_reset
    - write_merge_state
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: "int cmd_merge(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_clear
      Src: /src/git/builtin/backfill.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct backfill_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: backfill_context_clear
    functionSourceFile: /src/git/builtin/backfill.c
    functionUses: 0
    functionsReached:
    - oid_array_clear
    linkageType: ''
    returnType: void
    signature: void backfill_context_clear(struct backfill_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: promisor_remote_get_direct
      Src: /src/git/builtin/backfill.c:49,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/backfill.c:52,1
    - Dst: odb_reprepare
      Src: /src/git/builtin/backfill.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct backfill_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 14
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: download_batch
    functionSourceFile: /src/git/builtin/backfill.c
    functionUses: 0
    functionsReached:
    - promisor_remote_get_direct
    - oid_array_clear
    - odb_reprepare
    linkageType: ''
    returnType: void
    signature: void download_batch(struct backfill_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/builtin/backfill.c:72,1
    - Dst: oid_array_append
      Src: /src/git/builtin/backfill.c:73,1
    - Dst: download_batch
      Src: /src/git/builtin/backfill.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - UNUSED
    - list
    - type
    - data
    argTypes:
    - char*
    - struct oid_array*
    - enum object_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 15
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: fill_missing_blobs
    functionSourceFile: /src/git/builtin/backfill.c
    functionUses: 0
    functionsReached:
    - odb_has_object
    - oid_array_append
    - download_batch
    linkageType: ''
    returnType: int
    signature: "int fill_missing_blobs(const char *path UNUSED,\n\t\t\t      struct
      oid_array *list,\n\t\t\t      enum object_type type,\n\t\t\t      void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/backfill.c:85,1
    - Dst: _
      Src: /src/git/builtin/backfill.c:85,1
    - Dst: die
      Src: /src/git/builtin/backfill.c:88,1
    - Dst: _
      Src: /src/git/builtin/backfill.c:88,1
    - Dst: die
      Src: /src/git/builtin/backfill.c:91,1
    - Dst: _
      Src: /src/git/builtin/backfill.c:91,1
    - Dst: die
      Src: /src/git/builtin/backfill.c:94,1
    - Dst: _
      Src: /src/git/builtin/backfill.c:94,1
    - Dst: die
      Src: /src/git/builtin/backfill.c:97,1
    - Dst: _
      Src: /src/git/builtin/backfill.c:97,1
    - Dst: die
      Src: /src/git/builtin/backfill.c:100,1
    - Dst: _
      Src: /src/git/builtin/backfill.c:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: reject_unsupported_rev_list_options
    functionSourceFile: /src/git/builtin/backfill.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void reject_unsupported_rev_list_options(struct rev_info *revs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/backfill.c:110,1
    - Dst: get_sparse_checkout_patterns
      Src: /src/git/builtin/backfill.c:111,1
    - Dst: path_walk_info_clear
      Src: /src/git/builtin/backfill.c:112,1
    - Dst: error
      Src: /src/git/builtin/backfill.c:113,1
    - Dst: _
      Src: /src/git/builtin/backfill.c:113,1
    - Dst: add_head_to_pending
      Src: /src/git/builtin/backfill.c:119,1
    - Dst: walk_objects_by_path
      Src: /src/git/builtin/backfill.c:130,1
    - Dst: download_batch
      Src: /src/git/builtin/backfill.c:134,1
    - Dst: path_walk_info_clear
      Src: /src/git/builtin/backfill.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct backfill_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 104
    functionDepth: 15
    functionLinenumber: 104
    functionLinenumberEnd: 138
    functionName: do_backfill
    functionSourceFile: /src/git/builtin/backfill.c
    functionUses: 0
    functionsReached:
    - error
    - walk_objects_by_path
    - add_head_to_pending
    - path_walk_info_clear
    - download_batch
    - _
    - CALLOC_ARRAY
    - get_sparse_checkout_patterns
    linkageType: ''
    returnType: int
    signature: int do_backfill(struct backfill_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/backfill.c:152,1
    - Dst: N_
      Src: /src/git/builtin/backfill.c:153,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/backfill.c:154,1
    - Dst: N_
      Src: /src/git/builtin/backfill.c:155,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/backfill.c:156,1
    - Dst: N_
      Src: /src/git/builtin/backfill.c:157,1
    - Dst: OPT_END
      Src: /src/git/builtin/backfill.c:158,1
    - Dst: repo_config_values
      Src: /src/git/builtin/backfill.c:160,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/backfill.c:162,1
    - Dst: parse_options
      Src: /src/git/builtin/backfill.c:165,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/backfill.c:170,1
    - Dst: setup_revisions
      Src: /src/git/builtin/backfill.c:171,1
    - Dst: die
      Src: /src/git/builtin/backfill.c:174,1
    - Dst: _
      Src: /src/git/builtin/backfill.c:174,1
    - Dst: reject_unsupported_rev_list_options
      Src: /src/git/builtin/backfill.c:175,1
    - Dst: repo_config
      Src: /src/git/builtin/backfill.c:177,1
    - Dst: do_backfill
      Src: /src/git/builtin/backfill.c:182,1
    - Dst: backfill_context_clear
      Src: /src/git/builtin/backfill.c:183,1
    - Dst: release_revisions
      Src: /src/git/builtin/backfill.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 140
    functionDepth: 19
    functionLinenumber: 140
    functionLinenumberEnd: 186
    functionName: cmd_backfill
    functionSourceFile: /src/git/builtin/backfill.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - reject_unsupported_rev_list_options
    - do_backfill
    - release_revisions
    - OPT_UNSIGNED
    - OPT_BOOL
    - repo_init_revisions
    - backfill_context_clear
    - _
    - N_
    - setup_revisions
    - repo_config_values
    - repo_config
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: int cmd_backfill(int argc, const char **argv, const char *prefix, struct
      repository *repo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/mktag.c:30,1
    - Dst: _
      Src: /src/git/builtin/mktag.c:30,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/mktag.c:41,1
    - Dst: _
      Src: /src/git/builtin/mktag.c:41,1
    - Dst: BUG
      Src: /src/git/builtin/mktag.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - UNUSED
    - fsck_report
    - msg_type
    - msg_id
    - message
    argTypes:
    - struct fsck_options*
    - void*
    - enum fsck_msg_type
    - enum fsck_msg_id
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 47
    functionName: mktag_fsck_error_func
    functionSourceFile: /src/git/builtin/mktag.c
    functionUses: 0
    functionsReached:
    - BUG
    - fprintf_ln
    - _
    linkageType: ''
    returnType: int
    signature: "int mktag_fsck_error_func(struct fsck_options *o UNUSED,\n\t\t\t\t
      void *fsck_report UNUSED,\n\t\t\t\t enum fsck_msg_type msg_type,\n\t\t\t\t enum
      fsck_msg_id msg_id UNUSED,\n\t\t\t\t const char *message)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/builtin/mktag.c:57,1
    - Dst: die
      Src: /src/git/builtin/mktag.c:60,1
    - Dst: _
      Src: /src/git/builtin/mktag.c:60,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/mktag.c:61,1
    - Dst: die
      Src: /src/git/builtin/mktag.c:63,1
    - Dst: _
      Src: /src/git/builtin/mktag.c:63,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/mktag.c:64,1
    - Dst: type_name
      Src: /src/git/builtin/mktag.c:65,1
    - Dst: type_name
      Src: /src/git/builtin/mktag.c:65,1
    - Dst: lookup_replace_object
      Src: /src/git/builtin/mktag.c:67,1
    - Dst: check_object_signature
      Src: /src/git/builtin/mktag.c:68,1
    - Dst: free
      Src: /src/git/builtin/mktag.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tagged_oid
    - tagged_type
    argTypes:
    - struct object_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 12
    functionLinenumber: 49
    functionLinenumberEnd: 73
    functionName: verify_object_in_tag
    functionSourceFile: /src/git/builtin/mktag.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - lookup_replace_object
    - free
    - type_name
    - _
    - check_object_signature
    - odb_read_object
    linkageType: ''
    returnType: int
    signature: int verify_object_in_tag(struct object_id *tagged_oid, int *tagged_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/mktag.c:81,1
    - Dst: N_
      Src: /src/git/builtin/mktag.c:82,1
    - Dst: OPT_END
      Src: /src/git/builtin/mktag.c:83,1
    - Dst: parse_options
      Src: /src/git/builtin/mktag.c:90,1
    - Dst: strbuf_read
      Src: /src/git/builtin/mktag.c:94,1
    - Dst: die_errno
      Src: /src/git/builtin/mktag.c:95,1
    - Dst: _
      Src: /src/git/builtin/mktag.c:95,1
    - Dst: fsck_options_init
      Src: /src/git/builtin/mktag.c:97,1
    - Dst: fsck_set_msg_type_from_ids
      Src: /src/git/builtin/mktag.c:99,1
    - Dst: repo_config
      Src: /src/git/builtin/mktag.c:102,1
    - Dst: fsck_tag_standalone
      Src: /src/git/builtin/mktag.c:103,1
    - Dst: die
      Src: /src/git/builtin/mktag.c:105,1
    - Dst: _
      Src: /src/git/builtin/mktag.c:105,1
    - Dst: verify_object_in_tag
      Src: /src/git/builtin/mktag.c:107,1
    - Dst: die
      Src: /src/git/builtin/mktag.c:108,1
    - Dst: _
      Src: /src/git/builtin/mktag.c:108,1
    - Dst: odb_write_object
      Src: /src/git/builtin/mktag.c:110,1
    - Dst: die
      Src: /src/git/builtin/mktag.c:111,1
    - Dst: _
      Src: /src/git/builtin/mktag.c:111,1
    - Dst: strbuf_release
      Src: /src/git/builtin/mktag.c:113,1
    - Dst: puts
      Src: /src/git/builtin/mktag.c:114,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/mktag.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 75
    functionDepth: 19
    functionLinenumber: 75
    functionLinenumberEnd: 116
    functionName: cmd_mktag
    functionSourceFile: /src/git/builtin/mktag.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - strbuf_read
    - die
    - odb_write_object
    - strbuf_release
    - puts
    - oid_to_hex
    - OPT_BOOL
    - die_errno
    - fsck_set_msg_type_from_ids
    - _
    - N_
    - fsck_options_init
    - verify_object_in_tag
    - fsck_tag_standalone
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_mktag(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/multi-pack-index.c:80,1
    - Dst: xstrdup
      Src: /src/git/builtin/multi-pack-index.c:82,1
    - Dst: real_pathdup
      Src: /src/git/builtin/multi-pack-index.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 8
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: parse_object_dir
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - real_pathdup
    - xstrdup
    - free
    linkageType: ''
    returnType: int
    signature: "int parse_object_dir(const struct option *opt, const char *arg,\n\t\t\t
      \   int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_find_source
      Src: /src/git/builtin/multi-pack-index.c:90,1
    - Dst: odb_add_to_alternates_memory
      Src: /src/git/builtin/multi-pack-index.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 6
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: handle_object_dir_option
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - odb_find_source
    - odb_add_to_alternates_memory
    linkageType: ''
    returnType: struct odb_source
    signature: struct odb_source *handle_object_dir_option(struct repository *repo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_options_concat
      Src: /src/git/builtin/multi-pack-index.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prev
    argTypes:
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: add_common_options
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - parse_options_concat
    linkageType: ''
    returnType: struct option
    signature: struct option *add_common_options(struct option *prev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/multi-pack-index.c:115,1
    - Dst: git_config_bool
      Src: /src/git/builtin/multi-pack-index.c:116,1
    - Dst: strcmp
      Src: /src/git/builtin/multi-pack-index.c:122,1
    - Dst: git_config_bool
      Src: /src/git/builtin/multi-pack-index.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 111
    functionDepth: 6
    functionLinenumber: 111
    functionLinenumberEnd: 134
    functionName: git_multi_pack_index_write_config
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_multi_pack_index_write_config(const char *var, const char
      *value,\n\t\t\t\t\t     const struct config_context *ctx UNUSED,\n\t\t\t\t\t
      \    void *cb UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline
      Src: /src/git/builtin/multi-pack-index.c:139,1
    - Dst: string_list_append
      Src: /src/git/builtin/multi-pack-index.c:140,1
    - Dst: string_list_sort
      Src: /src/git/builtin/multi-pack-index.c:141,1
    - Dst: strbuf_release
      Src: /src/git/builtin/multi-pack-index.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - to
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: read_packs_from_stdin
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - string_list_sort
    - strbuf_getline
    - strbuf_release
    - string_list_append
    linkageType: ''
    returnType: void
    signature: void read_packs_from_stdin(struct string_list *to)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/multi-pack-index.c:152,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:153,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:154,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/multi-pack-index.c:155,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:155,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/multi-pack-index.c:157,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:157,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:158,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/multi-pack-index.c:159,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:160,1
    - Dst: OPT_NEGBIT
      Src: /src/git/builtin/multi-pack-index.c:161,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:162,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/multi-pack-index.c:164,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:165,1
    - Dst: OPT_FILENAME
      Src: /src/git/builtin/multi-pack-index.c:166,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:167,1
    - Dst: OPT_END
      Src: /src/git/builtin/multi-pack-index.c:168,1
    - Dst: repo_config
      Src: /src/git/builtin/multi-pack-index.c:175,1
    - Dst: add_common_options
      Src: /src/git/builtin/multi-pack-index.c:177,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/multi-pack-index.c:179,1
    - Dst: isatty
      Src: /src/git/builtin/multi-pack-index.c:181,1
    - Dst: parse_options
      Src: /src/git/builtin/multi-pack-index.c:183,1
    - Dst: usage_with_options
      Src: /src/git/builtin/multi-pack-index.c:187,1
    - Dst: error
      Src: /src/git/builtin/multi-pack-index.c:192,1
    - Dst: _
      Src: /src/git/builtin/multi-pack-index.c:192,1
    - Dst: usage_with_options
      Src: /src/git/builtin/multi-pack-index.c:194,1
    - Dst: error
      Src: /src/git/builtin/multi-pack-index.c:200,1
    - Dst: _
      Src: /src/git/builtin/multi-pack-index.c:200,1
    - Dst: usage_with_options
      Src: /src/git/builtin/multi-pack-index.c:201,1
    - Dst: handle_object_dir_option
      Src: /src/git/builtin/multi-pack-index.c:205,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/multi-pack-index.c:207,1
    - Dst: read_packs_from_stdin
      Src: /src/git/builtin/multi-pack-index.c:212,1
    - Dst: write_midx_file_only
      Src: /src/git/builtin/multi-pack-index.c:214,1
    - Dst: string_list_clear
      Src: /src/git/builtin/multi-pack-index.c:219,1
    - Dst: free
      Src: /src/git/builtin/multi-pack-index.c:220,1
    - Dst: write_midx_file
      Src: /src/git/builtin/multi-pack-index.c:226,1
    - Dst: free
      Src: /src/git/builtin/multi-pack-index.c:229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 146
    functionDepth: 21
    functionLinenumber: 146
    functionLinenumberEnd: 231
    functionName: cmd_multi_pack_index_write
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_BOOL
    - free
    - repo_config
    - usage_with_options
    - error
    - OPT_END
    - OPT_BIT
    - write_midx_file
    - isatty
    - write_midx_file_only
    - string_list_clear
    - OPT_FILENAME
    - read_packs_from_stdin
    - _
    - N_
    - FREE_AND_NULL
    - OPT_NEGBIT
    - handle_object_dir_option
    - OPT_STRING
    - trace2_cmd_mode
    - add_common_options
    linkageType: ''
    returnType: int
    signature: "int cmd_multi_pack_index_write(int argc, const char **argv,\n\t\t\t\t
      \     const char *prefix,\n\t\t\t\t      struct repository *repo)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/multi-pack-index.c:245,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:245,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:246,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/multi-pack-index.c:247,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:247,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/multi-pack-index.c:249,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:250,1
    - Dst: OPT_NEGBIT
      Src: /src/git/builtin/multi-pack-index.c:251,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:252,1
    - Dst: OPT_END
      Src: /src/git/builtin/multi-pack-index.c:254,1
    - Dst: repo_config
      Src: /src/git/builtin/multi-pack-index.c:257,1
    - Dst: add_common_options
      Src: /src/git/builtin/multi-pack-index.c:259,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/multi-pack-index.c:261,1
    - Dst: isatty
      Src: /src/git/builtin/multi-pack-index.c:263,1
    - Dst: parse_options
      Src: /src/git/builtin/multi-pack-index.c:265,1
    - Dst: usage_with_options
      Src: /src/git/builtin/multi-pack-index.c:270,1
    - Dst: error
      Src: /src/git/builtin/multi-pack-index.c:275,1
    - Dst: _
      Src: /src/git/builtin/multi-pack-index.c:275,1
    - Dst: usage_with_options
      Src: /src/git/builtin/multi-pack-index.c:277,1
    - Dst: handle_object_dir_option
      Src: /src/git/builtin/multi-pack-index.c:281,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/multi-pack-index.c:283,1
    - Dst: get_multi_pack_index
      Src: /src/git/builtin/multi-pack-index.c:285,1
    - Dst: midx_get_checksum_hex
      Src: /src/git/builtin/multi-pack-index.c:288,1
    - Dst: strcmp
      Src: /src/git/builtin/multi-pack-index.c:290,1
    - Dst: strcmp
      Src: /src/git/builtin/multi-pack-index.c:292,1
    - Dst: die
      Src: /src/git/builtin/multi-pack-index.c:297,1
    - Dst: _
      Src: /src/git/builtin/multi-pack-index.c:297,1
    - Dst: die
      Src: /src/git/builtin/multi-pack-index.c:299,1
    - Dst: _
      Src: /src/git/builtin/multi-pack-index.c:299,1
    - Dst: die
      Src: /src/git/builtin/multi-pack-index.c:301,1
    - Dst: _
      Src: /src/git/builtin/multi-pack-index.c:301,1
    - Dst: die
      Src: /src/git/builtin/multi-pack-index.c:305,1
    - Dst: _
      Src: /src/git/builtin/multi-pack-index.c:305,1
    - Dst: write_midx_file_compact
      Src: /src/git/builtin/multi-pack-index.c:308,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 233
    functionDepth: 21
    functionLinenumber: 233
    functionLinenumberEnd: 312
    functionName: cmd_multi_pack_index_compact
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - parse_options
    - strcmp
    - repo_config
    - usage_with_options
    - error
    - OPT_END
    - die
    - OPT_BIT
    - midx_get_checksum_hex
    - isatty
    - _
    - N_
    - FREE_AND_NULL
    - OPT_NEGBIT
    - handle_object_dir_option
    - write_midx_file_compact
    - OPT_STRING
    - get_multi_pack_index
    - trace2_cmd_mode
    - add_common_options
    linkageType: ''
    returnType: int
    signature: "int cmd_multi_pack_index_compact(int argc, const char **argv,\n\t\t\t\t\tconst
      char *prefix,\n\t\t\t\t\tstruct repository *repo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/multi-pack-index.c:320,1
    - Dst: add_common_options
      Src: /src/git/builtin/multi-pack-index.c:324,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/multi-pack-index.c:326,1
    - Dst: isatty
      Src: /src/git/builtin/multi-pack-index.c:328,1
    - Dst: parse_options
      Src: /src/git/builtin/multi-pack-index.c:330,1
    - Dst: usage_with_options
      Src: /src/git/builtin/multi-pack-index.c:334,1
    - Dst: handle_object_dir_option
      Src: /src/git/builtin/multi-pack-index.c:336,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/multi-pack-index.c:338,1
    - Dst: verify_midx_file
      Src: /src/git/builtin/multi-pack-index.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 314
    functionDepth: 13
    functionLinenumber: 314
    functionLinenumberEnd: 341
    functionName: cmd_multi_pack_index_verify
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - handle_object_dir_option
    - verify_midx_file
    - trace2_cmd_mode
    - add_common_options
    - isatty
    - FREE_AND_NULL
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_multi_pack_index_verify(int argc, const char **argv,\n\t\t\t\t
      \      const char *prefix,\n\t\t\t\t       struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/multi-pack-index.c:349,1
    - Dst: add_common_options
      Src: /src/git/builtin/multi-pack-index.c:353,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/multi-pack-index.c:355,1
    - Dst: isatty
      Src: /src/git/builtin/multi-pack-index.c:357,1
    - Dst: parse_options
      Src: /src/git/builtin/multi-pack-index.c:359,1
    - Dst: usage_with_options
      Src: /src/git/builtin/multi-pack-index.c:363,1
    - Dst: handle_object_dir_option
      Src: /src/git/builtin/multi-pack-index.c:365,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/multi-pack-index.c:367,1
    - Dst: expire_midx_packs
      Src: /src/git/builtin/multi-pack-index.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 343
    functionDepth: 21
    functionLinenumber: 343
    functionLinenumberEnd: 370
    functionName: cmd_multi_pack_index_expire
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - expire_midx_packs
    - handle_object_dir_option
    - trace2_cmd_mode
    - add_common_options
    - isatty
    - FREE_AND_NULL
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_multi_pack_index_expire(int argc, const char **argv,\n\t\t\t\t
      \      const char *prefix,\n\t\t\t\t       struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/multi-pack-index.c:378,1
    - Dst: N_
      Src: /src/git/builtin/multi-pack-index.c:379,1
    - Dst: OPT_END
      Src: /src/git/builtin/multi-pack-index.c:380,1
    - Dst: add_common_options
      Src: /src/git/builtin/multi-pack-index.c:384,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/multi-pack-index.c:386,1
    - Dst: isatty
      Src: /src/git/builtin/multi-pack-index.c:388,1
    - Dst: parse_options
      Src: /src/git/builtin/multi-pack-index.c:390,1
    - Dst: usage_with_options
      Src: /src/git/builtin/multi-pack-index.c:395,1
    - Dst: handle_object_dir_option
      Src: /src/git/builtin/multi-pack-index.c:397,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/multi-pack-index.c:399,1
    - Dst: midx_repack
      Src: /src/git/builtin/multi-pack-index.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 372
    functionDepth: 21
    functionLinenumber: 372
    functionLinenumberEnd: 402
    functionName: cmd_multi_pack_index_repack
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - OPT_UNSIGNED
    - handle_object_dir_option
    - midx_repack
    - trace2_cmd_mode
    - N_
    - add_common_options
    - isatty
    - FREE_AND_NULL
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_multi_pack_index_repack(int argc, const char **argv,\n\t\t\t\t
      \      const char *prefix,\n\t\t\t\t       struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/multi-pack-index.c:412,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/multi-pack-index.c:413,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/multi-pack-index.c:414,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/multi-pack-index.c:415,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/multi-pack-index.c:416,1
    - Dst: OPT_END
      Src: /src/git/builtin/multi-pack-index.c:417,1
    - Dst: parse_options_concat
      Src: /src/git/builtin/multi-pack-index.c:419,1
    - Dst: disable_replace_refs
      Src: /src/git/builtin/multi-pack-index.c:421,1
    - Dst: repo_config
      Src: /src/git/builtin/multi-pack-index.c:423,1
    - Dst: xstrdup
      Src: /src/git/builtin/multi-pack-index.c:428,1
    - Dst: parse_options
      Src: /src/git/builtin/multi-pack-index.c:430,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/multi-pack-index.c:432,1
    - Dst: fn
      Src: /src/git/builtin/multi-pack-index.c:434,1
    - Dst: free
      Src: /src/git/builtin/multi-pack-index.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 404
    functionDepth: 19
    functionLinenumber: 404
    functionLinenumberEnd: 438
    functionName: cmd_multi_pack_index
    functionSourceFile: /src/git/builtin/multi-pack-index.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - fn
    - disable_replace_refs
    - OPT_SUBCOMMAND
    - parse_options_concat
    - FREE_AND_NULL
    - free
    - repo_config
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int cmd_multi_pack_index(int argc,\n\t\t\t const char **argv,\n\t\t\t
      const char *prefix,\n\t\t\t struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/history.c:37,1
    - Dst: free
      Src: /src/git/builtin/history.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - util
    - UNUSED
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: change_data_free
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void change_data_free(void *util, const char *str UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_path_commit_editmsg
      Src: /src/git/builtin/history.c:48,1
    - Dst: _
      Src: /src/git/builtin/history.c:50,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/history.c:55,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/history.c:56,1
    - Dst: strbuf_commented_addf
      Src: /src/git/builtin/history.c:57,1
    - Dst: write_file_buf
      Src: /src/git/builtin/history.c:58,1
    - Dst: wt_status_prepare
      Src: /src/git/builtin/history.c:60,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/history.c:61,1
    - Dst: fopen
      Src: /src/git/builtin/history.c:71,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/builtin/history.c:71,1
    - Dst: error_errno
      Src: /src/git/builtin/history.c:73,1
    - Dst: _
      Src: /src/git/builtin/history.c:73,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/builtin/history.c:73,1
    - Dst: wt_status_collect_changes_trees
      Src: /src/git/builtin/history.c:75,1
    - Dst: wt_status_print
      Src: /src/git/builtin/history.c:76,1
    - Dst: wt_status_collect_free_buffers
      Src: /src/git/builtin/history.c:77,1
    - Dst: string_list_clear_func
      Src: /src/git/builtin/history.c:78,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/history.c:80,1
    - Dst: launch_editor
      Src: /src/git/builtin/history.c:81,1
    - Dst: fprintf
      Src: /src/git/builtin/history.c:82,1
    - Dst: _
      Src: /src/git/builtin/history.c:82,1
    - Dst: strbuf_stripspace
      Src: /src/git/builtin/history.c:85,1
    - Dst: cleanup_message
      Src: /src/git/builtin/history.c:87,1
    - Dst: fprintf
      Src: /src/git/builtin/history.c:90,1
    - Dst: _
      Src: /src/git/builtin/history.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 6
    argNames:
    - repo
    - old_tree
    - new_tree
    - default_message
    - action
    - out
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 41
    functionDepth: 15
    functionLinenumber: 41
    functionLinenumberEnd: 95
    functionName: fill_commit_message
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - error_errno
    - cleanup_message
    - wt_status_prepare
    - wt_status_collect_free_buffers
    - strbuf_commented_addf
    - git_path_commit_editmsg
    - string_list_clear_func
    - fopen
    - strbuf_addstr
    - wt_status_collect_changes_trees
    - strbuf_stripspace
    - _
    - wt_status_print
    - FREE_AND_NULL
    - strbuf_reset
    - strbuf_addch
    - launch_editor
    - write_file_buf
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int fill_commit_message(struct repository *repo,\n\t\t\t       const
      struct object_id *old_tree,\n\t\t\t       const struct object_id *new_tree,\n\t\t\t
      \      const char *default_message,\n\t\t\t       const char *action,\n\t\t\t
      \      struct strbuf *out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_logmsg_reencode
      Src: /src/git/builtin/history.c:127,1
    - Dst: find_commit_header
      Src: /src/git/builtin/history.c:128,1
    - Dst: xmemdupz
      Src: /src/git/builtin/history.c:130,1
    - Dst: find_commit_subject
      Src: /src/git/builtin/history.c:131,1
    - Dst: fill_commit_message
      Src: /src/git/builtin/history.c:134,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/history.c:139,1
    - Dst: read_commit_extra_headers
      Src: /src/git/builtin/history.c:142,1
    - Dst: commit_tree_extended
      Src: /src/git/builtin/history.c:145,1
    - Dst: lookup_commit_or_die
      Src: /src/git/builtin/history.c:151,1
    - Dst: free_commit_extra_headers
      Src: /src/git/builtin/history.c:154,1
    - Dst: strbuf_release
      Src: /src/git/builtin/history.c:155,1
    - Dst: free
      Src: /src/git/builtin/history.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 8
    argNames:
    - repo
    - action
    - commit_with_message
    - parents
    - old_tree
    - new_tree
    - out
    - flags
    argTypes:
    - struct repository*
    - char*
    - struct commit*
    - struct commit_list*
    - struct object_id*
    - struct object_id*
    - struct commit**
    - enum commit_tree_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 101
    functionDepth: 16
    functionLinenumber: 101
    functionLinenumberEnd: 158
    functionName: commit_tree_ext
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - lookup_commit_or_die
    - strbuf_release
    - find_commit_subject
    - commit_tree_extended
    - find_commit_header
    - fill_commit_message
    - free_commit_extra_headers
    - repo_logmsg_reencode
    - strbuf_addstr
    - read_commit_extra_headers
    - free
    linkageType: ''
    returnType: int
    signature: "int commit_tree_ext(struct repository *repo,\n\t\t\t   const char
      *action,\n\t\t\t   struct commit *commit_with_message,\n\t\t\t   const struct
      commit_list *parents,\n\t\t\t   const struct object_id *old_tree,\n\t\t\t   const
      struct object_id *new_tree,\n\t\t\t   struct commit **out,\n\t\t\t   enum commit_tree_flags
      flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/history.c:169,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/history.c:173,1
    - Dst: error
      Src: /src/git/builtin/history.c:174,1
    - Dst: _
      Src: /src/git/builtin/history.c:174,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/history.c:175,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/history.c:178,1
    - Dst: oidcpy
      Src: /src/git/builtin/history.c:180,1
    - Dst: commit_tree_ext
      Src: /src/git/builtin/history.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - repo
    - action
    - original
    - out
    argTypes:
    - struct repository*
    - char*
    - struct commit*
    - struct commit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 160
    functionDepth: 20
    functionLinenumber: 160
    functionLinenumberEnd: 185
    functionName: commit_tree_with_edited_message
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - oidcpy
    - repo_parse_commit
    - repo_get_commit_tree
    - _
    - commit_tree_ext
    linkageType: ''
    returnType: int
    signature: "int commit_tree_with_edited_message(struct repository *repo,\n\t\t\t\t\t
      \  const char *action,\n\t\t\t\t\t   struct commit *original,\n\t\t\t\t\t   struct
      commit **out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG_NOARG
      Src: /src/git/builtin/history.c:197,1
    - Dst: strcmp
      Src: /src/git/builtin/history.c:198,1
    - Dst: strcmp
      Src: /src/git/builtin/history.c:200,1
    - Dst: error
      Src: /src/git/builtin/history.c:203,1
    - Dst: _
      Src: /src/git/builtin/history.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - value
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: parse_ref_action
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - error
    - strcmp
    - _
    - BUG_ON_OPT_NEG_NOARG
    linkageType: ''
    returnType: int
    signature: int parse_ref_action(const struct option *opt, const char *value, int
      unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushv
      Src: /src/git/builtin/history.c:217,1
    - Dst: strvec_push
      Src: /src/git/builtin/history.c:218,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/history.c:220,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/builtin/history.c:222,1
    - Dst: BUG
      Src: /src/git/builtin/history.c:224,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/history.c:226,1
    - Dst: error
      Src: /src/git/builtin/history.c:227,1
    - Dst: _
      Src: /src/git/builtin/history.c:227,1
    - Dst: get_revision
      Src: /src/git/builtin/history.c:231,1
    - Dst: error
      Src: /src/git/builtin/history.c:232,1
    - Dst: _
      Src: /src/git/builtin/history.c:232,1
    - Dst: reset_revision_walk
      Src: /src/git/builtin/history.c:236,1
    - Dst: release_revisions
      Src: /src/git/builtin/history.c:240,1
    - Dst: strvec_clear
      Src: /src/git/builtin/history.c:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - repo
    - revwalk_args
    argTypes:
    - struct repository*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 210
    functionDepth: 13
    functionLinenumber: 210
    functionLinenumberEnd: 243
    functionName: revwalk_contains_merges
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - release_revisions
    - get_revision
    - strvec_pushv
    - reset_revision_walk
    - repo_init_revisions
    - setup_revisions_from_strvec
    - strvec_clear
    - prepare_revision_walk
    - _
    - BUG
    linkageType: ''
    returnType: int
    signature: "int revwalk_contains_merges(struct repository *repo,\n\t\t\t\t   const
      struct strvec *revwalk_args)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/builtin/history.c:253,1
    - Dst: strvec_push
      Src: /src/git/builtin/history.c:254,1
    - Dst: strvec_push
      Src: /src/git/builtin/history.c:255,1
    - Dst: strvec_push
      Src: /src/git/builtin/history.c:256,1
    - Dst: strvec_push
      Src: /src/git/builtin/history.c:257,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/history.c:260,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/history.c:261,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/history.c:267,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/history.c:267,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/history.c:279,1
    - Dst: error
      Src: /src/git/builtin/history.c:281,1
    - Dst: _
      Src: /src/git/builtin/history.c:281,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/history.c:285,1
    - Dst: repo_is_descendant_of
      Src: /src/git/builtin/history.c:286,1
    - Dst: free_commit_list
      Src: /src/git/builtin/history.c:287,1
    - Dst: error
      Src: /src/git/builtin/history.c:290,1
    - Dst: _
      Src: /src/git/builtin/history.c:290,1
    - Dst: error
      Src: /src/git/builtin/history.c:293,1
    - Dst: _
      Src: /src/git/builtin/history.c:293,1
    - Dst: strvec_push
      Src: /src/git/builtin/history.c:298,1
    - Dst: strvec_push
      Src: /src/git/builtin/history.c:300,1
    - Dst: strvec_push
      Src: /src/git/builtin/history.c:301,1
    - Dst: revwalk_contains_merges
      Src: /src/git/builtin/history.c:304,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/builtin/history.c:308,1
    - Dst: BUG
      Src: /src/git/builtin/history.c:310,1
    - Dst: strvec_clear
      Src: /src/git/builtin/history.c:315,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 4
    argNames:
    - repo
    - action
    - original
    - revs
    argTypes:
    - struct repository*
    - enum ref_action
    - struct commit*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 245
    functionDepth: 16
    functionLinenumber: 245
    functionLinenumberEnd: 317
    functionName: setup_revwalk
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - oid_to_hex
    - lookup_commit_reference_by_name
    - free_commit_list
    - repo_init_revisions
    - setup_revisions_from_strvec
    - repo_is_descendant_of
    - strvec_clear
    - _
    - commit_list_insert
    - BUG
    - strvec_pushf
    - revwalk_contains_merges
    linkageType: ''
    returnType: int
    signature: "int setup_revwalk(struct repository *repo,\n\t\t\t enum ref_action
      action,\n\t\t\t struct commit *original,\n\t\t\t struct rev_info *revs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/history.c:327,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/history.c:328,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/history.c:328,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/history.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - transaction
    - refname
    - new_oid
    - old_oid
    - reflog_msg
    - err
    argTypes:
    - struct ref_transaction*
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 319
    functionDepth: 6
    functionLinenumber: 319
    functionLinenumberEnd: 334
    functionName: handle_ref_update
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - printf
    - ref_transaction_update
    linkageType: ''
    returnType: int
    signature: "int handle_ref_update(struct ref_transaction *transaction,\n\t\t\t
      \    const char *refname,\n\t\t\t     const struct object_id *new_oid,\n\t\t\t
      \    const struct object_id *old_oid,\n\t\t\t     const char *reflog_msg,\n\t\t\t
      \    struct strbuf *err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: refs_read_ref_full
      Src: /src/git/builtin/history.c:356,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/history.c:356,1
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/history.c:360,1
    - Dst: replay_revisions
      Src: /src/git/builtin/history.c:362,1
    - Dst: BUG
      Src: /src/git/builtin/history.c:367,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/history.c:370,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/history.c:370,1
    - Dst: error
      Src: /src/git/builtin/history.c:372,1
    - Dst: _
      Src: /src/git/builtin/history.c:372,1
    - Dst: handle_ref_update
      Src: /src/git/builtin/history.c:378,1
    - Dst: error
      Src: /src/git/builtin/history.c:384,1
    - Dst: _
      Src: /src/git/builtin/history.c:384,1
    - Dst: get_name_decoration
      Src: /src/git/builtin/history.c:395,1
    - Dst: handle_ref_update
      Src: /src/git/builtin/history.c:417,1
    - Dst: error
      Src: /src/git/builtin/history.c:423,1
    - Dst: _
      Src: /src/git/builtin/history.c:423,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/history.c:429,1
    - Dst: error
      Src: /src/git/builtin/history.c:430,1
    - Dst: _
      Src: /src/git/builtin/history.c:430,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/history.c:437,1
    - Dst: replay_result_release
      Src: /src/git/builtin/history.c:438,1
    - Dst: strbuf_release
      Src: /src/git/builtin/history.c:439,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 7
    argNames:
    - revs
    - action
    - original
    - rewritten
    - reflog_msg
    - dry_run
    - empty
    argTypes:
    - struct rev_info*
    - enum ref_action
    - struct commit*
    - struct commit*
    - char*
    - int
    - enum replay_empty_commit_action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 336
    functionDepth: 5
    functionLinenumber: 336
    functionLinenumberEnd: 441
    functionName: handle_reference_updates
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - error
    - ref_transaction_commit
    - strbuf_release
    - oid_to_hex_r
    - replay_result_release
    - get_name_decoration
    - refs_read_ref_full
    - ref_store_transaction_begin
    - handle_ref_update
    - _
    - ref_transaction_free
    - replay_revisions
    - BUG
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int handle_reference_updates(struct rev_info *revs,\n\t\t\t\t    enum
      ref_action action,\n\t\t\t\t    struct commit *original,\n\t\t\t\t    struct
      commit *rewritten,\n\t\t\t\t    const char *reflog_msg,\n\t\t\t\t    int dry_run,\n\t\t\t\t
      \   enum replay_empty_commit_action empty)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/builtin/history.c:451,1
    - Dst: error
      Src: /src/git/builtin/history.c:452,1
    - Dst: _
      Src: /src/git/builtin/history.c:452,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/history.c:453,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/history.c:455,1
    - Dst: oidcpy
      Src: /src/git/builtin/history.c:457,1
    - Dst: oideq
      Src: /src/git/builtin/history.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - repo
    - original
    - result
    argTypes:
    - struct repository*
    - struct commit*
    - struct tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 443
    functionDepth: 20
    functionLinenumber: 443
    functionLinenumberEnd: 461
    functionName: commit_became_empty
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - oidcpy
    - repo_parse_commit
    - repo_get_commit_tree
    - _
    - oideq
    linkageType: ''
    returnType: int
    signature: "int commit_became_empty(struct repository *repo,\n\t\t\t       struct
      commit *original,\n\t\t\t       struct tree *result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/history.c:467,1
    - Dst: strcmp
      Src: /src/git/builtin/history.c:469,1
    - Dst: strcmp
      Src: /src/git/builtin/history.c:471,1
    - Dst: strcmp
      Src: /src/git/builtin/history.c:473,1
    - Dst: die
      Src: /src/git/builtin/history.c:476,1
    - Dst: _
      Src: /src/git/builtin/history.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 480
    functionName: parse_opt_empty
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_opt_empty(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/history.c:496,1
    - Dst: N_
      Src: /src/git/builtin/history.c:497,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/history.c:499,1
    - Dst: N_
      Src: /src/git/builtin/history.c:500,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/history.c:501,1
    - Dst: N_
      Src: /src/git/builtin/history.c:502,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/history.c:504,1
    - Dst: N_
      Src: /src/git/builtin/history.c:505,1
    - Dst: OPT_END
      Src: /src/git/builtin/history.c:507,1
    - Dst: parse_options
      Src: /src/git/builtin/history.c:518,1
    - Dst: error
      Src: /src/git/builtin/history.c:520,1
    - Dst: _
      Src: /src/git/builtin/history.c:520,1
    - Dst: repo_config
      Src: /src/git/builtin/history.c:523,1
    - Dst: is_bare_repository
      Src: /src/git/builtin/history.c:528,1
    - Dst: error
      Src: /src/git/builtin/history.c:529,1
    - Dst: _
      Src: /src/git/builtin/history.c:529,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/history.c:534,1
    - Dst: error
      Src: /src/git/builtin/history.c:536,1
    - Dst: _
      Src: /src/git/builtin/history.c:536,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/history.c:544,1
    - Dst: error
      Src: /src/git/builtin/history.c:546,1
    - Dst: _
      Src: /src/git/builtin/history.c:546,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/history.c:550,1
    - Dst: error
      Src: /src/git/builtin/history.c:552,1
    - Dst: _
      Src: /src/git/builtin/history.c:552,1
    - Dst: repo_read_index
      Src: /src/git/builtin/history.c:556,1
    - Dst: error
      Src: /src/git/builtin/history.c:557,1
    - Dst: _
      Src: /src/git/builtin/history.c:557,1
    - Dst: repo_index_has_changes
      Src: /src/git/builtin/history.c:561,1
    - Dst: error
      Src: /src/git/builtin/history.c:562,1
    - Dst: _
      Src: /src/git/builtin/history.c:562,1
    - Dst: write_in_core_index_as_tree
      Src: /src/git/builtin/history.c:570,1
    - Dst: error
      Src: /src/git/builtin/history.c:572,1
    - Dst: _
      Src: /src/git/builtin/history.c:572,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/history.c:576,1
    - Dst: error
      Src: /src/git/builtin/history.c:578,1
    - Dst: _
      Src: /src/git/builtin/history.c:578,1
    - Dst: init_basic_merge_options
      Src: /src/git/builtin/history.c:588,1
    - Dst: merge_incore_nonrecursive
      Src: /src/git/builtin/history.c:592,1
    - Dst: error
      Src: /src/git/builtin/history.c:596,1
    - Dst: _
      Src: /src/git/builtin/history.c:596,1
    - Dst: error
      Src: /src/git/builtin/history.c:601,1
    - Dst: _
      Src: /src/git/builtin/history.c:601,1
    - Dst: commit_became_empty
      Src: /src/git/builtin/history.c:605,1
    - Dst: error
      Src: /src/git/builtin/history.c:624,1
    - Dst: _
      Src: /src/git/builtin/history.c:624,1
    - Dst: error
      Src: /src/git/builtin/history.c:636,1
    - Dst: _
      Src: /src/git/builtin/history.c:636,1
    - Dst: setup_revwalk
      Src: /src/git/builtin/history.c:641,1
    - Dst: commit_tree_ext
      Src: /src/git/builtin/history.c:646,1
    - Dst: error
      Src: /src/git/builtin/history.c:650,1
    - Dst: _
      Src: /src/git/builtin/history.c:650,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/history.c:655,1
    - Dst: handle_reference_updates
      Src: /src/git/builtin/history.c:657,1
    - Dst: error
      Src: /src/git/builtin/history.c:660,1
    - Dst: _
      Src: /src/git/builtin/history.c:660,1
    - Dst: merge_finalize
      Src: /src/git/builtin/history.c:667,1
    - Dst: strbuf_release
      Src: /src/git/builtin/history.c:668,1
    - Dst: release_revisions
      Src: /src/git/builtin/history.c:669,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 119
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 482
    functionDepth: 21
    functionLinenumber: 482
    functionLinenumberEnd: 671
    functionName: cmd_history_fixup
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_BOOL
    - strbuf_addf
    - repo_config
    - error
    - strbuf_release
    - OPT_END
    - release_revisions
    - lookup_commit_reference_by_name
    - merge_finalize
    - repo_read_index
    - init_basic_merge_options
    - OPT_BIT
    - write_in_core_index_as_tree
    - setup_revwalk
    - commit_became_empty
    - repo_index_has_changes
    - _
    - N_
    - merge_incore_nonrecursive
    - is_bare_repository
    - OPT_CALLBACK_F
    - repo_get_commit_tree
    - handle_reference_updates
    - commit_tree_ext
    linkageType: ''
    returnType: int
    signature: "int cmd_history_fixup(int argc,\n\t\t\t     const char **argv,\n\t\t\t
      \    const char *prefix,\n\t\t\t     struct repository *repo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/history.c:685,1
    - Dst: N_
      Src: /src/git/builtin/history.c:686,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/history.c:688,1
    - Dst: N_
      Src: /src/git/builtin/history.c:689,1
    - Dst: OPT_END
      Src: /src/git/builtin/history.c:690,1
    - Dst: parse_options
      Src: /src/git/builtin/history.c:697,1
    - Dst: error
      Src: /src/git/builtin/history.c:699,1
    - Dst: _
      Src: /src/git/builtin/history.c:699,1
    - Dst: repo_config
      Src: /src/git/builtin/history.c:702,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/history.c:707,1
    - Dst: error
      Src: /src/git/builtin/history.c:709,1
    - Dst: _
      Src: /src/git/builtin/history.c:709,1
    - Dst: setup_revwalk
      Src: /src/git/builtin/history.c:713,1
    - Dst: commit_tree_with_edited_message
      Src: /src/git/builtin/history.c:717,1
    - Dst: error
      Src: /src/git/builtin/history.c:719,1
    - Dst: _
      Src: /src/git/builtin/history.c:719,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/history.c:723,1
    - Dst: handle_reference_updates
      Src: /src/git/builtin/history.c:725,1
    - Dst: error
      Src: /src/git/builtin/history.c:728,1
    - Dst: _
      Src: /src/git/builtin/history.c:728,1
    - Dst: strbuf_release
      Src: /src/git/builtin/history.c:735,1
    - Dst: release_revisions
      Src: /src/git/builtin/history.c:736,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 673
    functionDepth: 21
    functionLinenumber: 673
    functionLinenumberEnd: 738
    functionName: cmd_history_reword
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - handle_reference_updates
    - lookup_commit_reference_by_name
    - strbuf_release
    - release_revisions
    - commit_tree_with_edited_message
    - OPT_CALLBACK_F
    - OPT_BOOL
    - strbuf_addf
    - _
    - N_
    - repo_config
    - setup_revwalk
    linkageType: ''
    returnType: int
    signature: "int cmd_history_reword(int argc,\n\t\t\t      const char **argv,\n\t\t\t
      \     const char *prefix,\n\t\t\t      struct repository *repo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: index_state_init
      Src: /src/git/builtin/history.c:751,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/history.c:757,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/history.c:758,1
    - Dst: unpack_trees
      Src: /src/git/builtin/history.c:760,1
    - Dst: error
      Src: /src/git/builtin/history.c:761,1
    - Dst: _
      Src: /src/git/builtin/history.c:761,1
    - Dst: prime_cache_tree
      Src: /src/git/builtin/history.c:765,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/builtin/history.c:767,1
    - Dst: error_errno
      Src: /src/git/builtin/history.c:768,1
    - Dst: _
      Src: /src/git/builtin/history.c:768,1
    - Dst: write_locked_index
      Src: /src/git/builtin/history.c:772,1
    - Dst: error
      Src: /src/git/builtin/history.c:773,1
    - Dst: _
      Src: /src/git/builtin/history.c:773,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/history.c:780,1
    - Dst: release_index
      Src: /src/git/builtin/history.c:781,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - repo
    - oid
    - path
    argTypes:
    - struct repository*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 740
    functionDepth: 14
    functionLinenumber: 740
    functionLinenumberEnd: 783
    functionName: write_ondisk_index
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - hold_lock_file_for_update
    - repo_parse_tree_indirect
    - release_index
    - write_locked_index
    - prime_cache_tree
    - rollback_lock_file
    - unpack_trees
    - _
    - index_state_init
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int write_ondisk_index(struct repository *repo,\n\t\t\t      struct
      object_id *oid,\n\t\t\t      const char *path)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: INDEX_STATE_INIT
      Src: /src/git/builtin/history.c:792,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/history.c:803,1
    - Dst: error
      Src: /src/git/builtin/history.c:804,1
    - Dst: _
      Src: /src/git/builtin/history.c:804,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/history.c:805,1
    - Dst: get_commit_tree_oid
      Src: /src/git/builtin/history.c:809,1
    - Dst: oidcpy
      Src: /src/git/builtin/history.c:811,1
    - Dst: get_commit_tree_oid
      Src: /src/git/builtin/history.c:813,1
    - Dst: repo_git_path_replace
      Src: /src/git/builtin/history.c:820,1
    - Dst: write_ondisk_index
      Src: /src/git/builtin/history.c:822,1
    - Dst: read_index_from
      Src: /src/git/builtin/history.c:826,1
    - Dst: error
      Src: /src/git/builtin/history.c:828,1
    - Dst: _
      Src: /src/git/builtin/history.c:828,1
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/history.c:832,1
    - Dst: run_add_p_index
      Src: /src/git/builtin/history.c:833,1
    - Dst: write_in_core_index_as_tree
      Src: /src/git/builtin/history.c:838,1
    - Dst: error
      Src: /src/git/builtin/history.c:840,1
    - Dst: _
      Src: /src/git/builtin/history.c:840,1
    - Dst: unlink
      Src: /src/git/builtin/history.c:844,1
    - Dst: strbuf_release
      Src: /src/git/builtin/history.c:845,1
    - Dst: oideq
      Src: /src/git/builtin/history.c:852,1
    - Dst: error
      Src: /src/git/builtin/history.c:853,1
    - Dst: _
      Src: /src/git/builtin/history.c:853,1
    - Dst: oideq
      Src: /src/git/builtin/history.c:855,1
    - Dst: error
      Src: /src/git/builtin/history.c:856,1
    - Dst: _
      Src: /src/git/builtin/history.c:856,1
    - Dst: commit_tree_ext
      Src: /src/git/builtin/history.c:864,1
    - Dst: error
      Src: /src/git/builtin/history.c:867,1
    - Dst: _
      Src: /src/git/builtin/history.c:867,1
    - Dst: commit_list_append
      Src: /src/git/builtin/history.c:876,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/history.c:878,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/history.c:879,1
    - Dst: commit_tree_ext
      Src: /src/git/builtin/history.c:881,1
    - Dst: error
      Src: /src/git/builtin/history.c:884,1
    - Dst: _
      Src: /src/git/builtin/history.c:884,1
    - Dst: unlink
      Src: /src/git/builtin/history.c:893,1
    - Dst: strbuf_release
      Src: /src/git/builtin/history.c:894,1
    - Dst: free_commit_list
      Src: /src/git/builtin/history.c:895,1
    - Dst: release_index
      Src: /src/git/builtin/history.c:896,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 4
    argNames:
    - repo
    - original
    - pathspec
    - out
    argTypes:
    - struct repository*
    - struct commit*
    - struct pathspec*
    - struct commit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 785
    functionDepth: 20
    functionLinenumber: 785
    functionLinenumberEnd: 898
    functionName: split_commit
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - read_index_from
    - error
    - strbuf_release
    - repo_parse_commit
    - free_commit_list
    - write_in_core_index_as_tree
    - unlink
    - oid_to_hex
    - commit_list_append
    - write_ondisk_index
    - _
    - INDEX_STATE_INIT
    - oid_to_hex_r
    - run_add_p_index
    - release_index
    - get_commit_tree_oid
    - repo_get_commit_tree
    - commit_tree_ext
    - repo_git_path_replace
    - oideq
    linkageType: ''
    returnType: int
    signature: "int split_commit(struct repository *repo,\n\t\t\tstruct commit *original,\n\t\t\tstruct
      pathspec *pathspec,\n\t\t\tstruct commit **out)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/history.c:912,1
    - Dst: N_
      Src: /src/git/builtin/history.c:913,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/history.c:915,1
    - Dst: N_
      Src: /src/git/builtin/history.c:916,1
    - Dst: OPT_END
      Src: /src/git/builtin/history.c:917,1
    - Dst: parse_options
      Src: /src/git/builtin/history.c:925,1
    - Dst: error
      Src: /src/git/builtin/history.c:927,1
    - Dst: _
      Src: /src/git/builtin/history.c:927,1
    - Dst: repo_config
      Src: /src/git/builtin/history.c:930,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/history.c:935,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/history.c:941,1
    - Dst: error
      Src: /src/git/builtin/history.c:943,1
    - Dst: _
      Src: /src/git/builtin/history.c:943,1
    - Dst: setup_revwalk
      Src: /src/git/builtin/history.c:947,1
    - Dst: error
      Src: /src/git/builtin/history.c:952,1
    - Dst: _
      Src: /src/git/builtin/history.c:952,1
    - Dst: split_commit
      Src: /src/git/builtin/history.c:956,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/history.c:960,1
    - Dst: handle_reference_updates
      Src: /src/git/builtin/history.c:962,1
    - Dst: error
      Src: /src/git/builtin/history.c:965,1
    - Dst: _
      Src: /src/git/builtin/history.c:965,1
    - Dst: strbuf_release
      Src: /src/git/builtin/history.c:972,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/history.c:973,1
    - Dst: release_revisions
      Src: /src/git/builtin/history.c:974,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 900
    functionDepth: 21
    functionLinenumber: 900
    functionLinenumberEnd: 976
    functionName: cmd_history_split
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - handle_reference_updates
    - lookup_commit_reference_by_name
    - strbuf_release
    - clear_pathspec
    - release_revisions
    - OPT_CALLBACK_F
    - OPT_BOOL
    - split_commit
    - strbuf_addf
    - _
    - N_
    - parse_pathspec
    - repo_config
    - setup_revwalk
    linkageType: ''
    returnType: int
    signature: "int cmd_history_split(int argc,\n\t\t\t     const char **argv,\n\t\t\t
      \    const char *prefix,\n\t\t\t     struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/history.c:991,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/history.c:992,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/history.c:993,1
    - Dst: OPT_END
      Src: /src/git/builtin/history.c:994,1
    - Dst: parse_options
      Src: /src/git/builtin/history.c:997,1
    - Dst: fn
      Src: /src/git/builtin/history.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 978
    functionDepth: 13
    functionLinenumber: 978
    functionLinenumberEnd: 999
    functionName: cmd_history
    functionSourceFile: /src/git/builtin/history.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - parse_options
    - OPT_SUBCOMMAND
    - fn
    linkageType: ''
    returnType: int
    signature: "int cmd_history(int argc,\n\t\tconst char **argv,\n\t\tconst char
      *prefix,\n\t\tstruct repository *repo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:48,1
    - Dst: git_config_int
      Src: /src/git/builtin/fsmonitor--daemon.c:49,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:51,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:51,1
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:57,1
    - Dst: git_config_int
      Src: /src/git/builtin/fsmonitor--daemon.c:58,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:60,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:60,1
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:66,1
    - Dst: git_config_bool_or_int
      Src: /src/git/builtin/fsmonitor--daemon.c:68,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:70,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:70,1
    - Dst: git_default_config
      Src: /src/git/builtin/fsmonitor--daemon.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 77
    functionName: fsmonitor_config
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - error
    - git_config_int
    - strcmp
    - git_config_bool_or_int
    - git_default_config
    - _
    linkageType: ''
    returnType: int
    signature: "int fsmonitor_config(const char *var, const char *value,\n\t\t\t    const
      struct config_context *ctx, void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor_ipc__send_command
      Src: /src/git/builtin/fsmonitor--daemon.c:90,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:93,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/fsmonitor--daemon.c:98,1
    - Dst: fsmonitor_ipc__get_state
      Src: /src/git/builtin/fsmonitor--daemon.c:99,1
    - Dst: sleep_millisec
      Src: /src/git/builtin/fsmonitor--daemon.c:100,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fsmonitor--daemon.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 104
    functionName: do_as_client__send_stop
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fsmonitor_ipc__send_command
    - trace2_region_leave
    - trace2_region_enter
    - sleep_millisec
    - fsmonitor_ipc__get_state
    linkageType: ''
    returnType: int
    signature: int do_as_client__send_stop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor_ipc__get_state
      Src: /src/git/builtin/fsmonitor--daemon.c:108,1
    - Dst: printf
      Src: /src/git/builtin/fsmonitor--daemon.c:112,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:112,1
    - Dst: printf
      Src: /src/git/builtin/fsmonitor--daemon.c:117,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: do_as_client__status
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - printf
    - fsmonitor_ipc__get_state
    - _
    linkageType: ''
    returnType: int
    signature: int do_as_client__status(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/fsmonitor--daemon.c:141,1
    - Dst: container_of
      Src: /src/git/builtin/fsmonitor--daemon.c:143,1
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - UNUSED
    - he1
    - he2
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: cookies_cmp
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cookies_cmp(const void *data UNUSED,\n\t\t       const struct
      hashmap_entry *he1,\n\t\t       const struct hashmap_entry *he2, const void
      *keydata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/fsmonitor--daemon.c:160,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fsmonitor--daemon.c:164,1
    - Dst: getpid
      Src: /src/git/builtin/fsmonitor--daemon.c:164,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/fsmonitor--daemon.c:166,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/fsmonitor--daemon.c:167,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fsmonitor--daemon.c:169,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/fsmonitor--daemon.c:171,1
    - Dst: strhash
      Src: /src/git/builtin/fsmonitor--daemon.c:171,1
    - Dst: hashmap_add
      Src: /src/git/builtin/fsmonitor--daemon.c:173,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:175,1
    - Dst: open
      Src: /src/git/builtin/fsmonitor--daemon.c:182,1
    - Dst: error_errno
      Src: /src/git/builtin/fsmonitor--daemon.c:184,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:184,1
    - Dst: close
      Src: /src/git/builtin/fsmonitor--daemon.c:196,1
    - Dst: unlink
      Src: /src/git/builtin/fsmonitor--daemon.c:197,1
    - Dst: pthread_cond_wait
      Src: /src/git/builtin/fsmonitor--daemon.c:212,1
    - Dst: hashmap_remove
      Src: /src/git/builtin/fsmonitor--daemon.c:216,1
    - Dst: free
      Src: /src/git/builtin/fsmonitor--daemon.c:220,1
    - Dst: free
      Src: /src/git/builtin/fsmonitor--daemon.c:221,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 225
    functionName: with_lock__wait_for_cookie
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_add
    - error_errno
    - open
    - strbuf_release
    - strbuf_addf
    - hashmap_entry_init
    - trace_printf_key
    - free
    - strbuf_addbuf
    - hashmap_remove
    - close
    - strbuf_detach
    - CALLOC_ARRAY
    - getpid
    - pthread_cond_wait
    - _
    - unlink
    linkageType: ''
    returnType: enum fsmonitor_cookie_item_result
    signature: "enum fsmonitor_cookie_item_result with_lock__wait_for_cookie(\n\tstruct
      fsmonitor_daemon_state *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/fsmonitor--daemon.c:243,1
    - Dst: strhash
      Src: /src/git/builtin/fsmonitor--daemon.c:243,1
    - Dst: hashmap_get_entry
      Src: /src/git/builtin/fsmonitor--daemon.c:245,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:247,1
    - Dst: pthread_cond_broadcast
      Src: /src/git/builtin/fsmonitor--daemon.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - cookie_names
    argTypes:
    - struct fsmonitor_daemon_state*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 256
    functionName: with_lock__mark_cookies_seen
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - strhash
    - pthread_cond_broadcast
    - trace_printf_key
    - hashmap_entry_init
    - hashmap_get_entry
    linkageType: ''
    returnType: void
    signature: "void with_lock__mark_cookies_seen(struct fsmonitor_daemon_state *state,\n\t\t\t\t\t
      const struct string_list *cookie_names)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/fsmonitor--daemon.c:269,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:270,1
    - Dst: pthread_cond_broadcast
      Src: /src/git/builtin/fsmonitor--daemon.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 278
    functionName: with_lock__abort_all_cookies
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - hashmap_for_each_entry
    - pthread_cond_broadcast
    linkageType: ''
    returnType: void
    signature: void with_lock__abort_all_cookies(struct fsmonitor_daemon_state *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/fsmonitor--daemon.c:370,1
    - Dst: fsmonitor_batch__new
      Src: /src/git/builtin/fsmonitor--daemon.c:371,1
    - Dst: strbuf_init
      Src: /src/git/builtin/fsmonitor--daemon.c:373,1
    - Dst: git_env_bool
      Src: /src/git/builtin/fsmonitor--daemon.c:379,1
    - Dst: gettimeofday
      Src: /src/git/builtin/fsmonitor--daemon.c:386,1
    - Dst: gmtime_r
      Src: /src/git/builtin/fsmonitor--daemon.c:388,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fsmonitor--daemon.c:390,1
    - Dst: getpid
      Src: /src/git/builtin/fsmonitor--daemon.c:393,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fsmonitor--daemon.c:398,1
    - Dst: time
      Src: /src/git/builtin/fsmonitor--daemon.c:429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 363
    functionDepth: 6
    functionLinenumber: 363
    functionLinenumberEnd: 432
    functionName: fsmonitor_new_token_data
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - fsmonitor_batch__new
    - git_env_bool
    - gettimeofday
    - strbuf_addf
    - gmtime_r
    - CALLOC_ARRAY
    - getpid
    - strbuf_init
    - time
    linkageType: ''
    returnType: struct fsmonitor_token_data
    signature: struct fsmonitor_token_data *fsmonitor_new_token_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/fsmonitor--daemon.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 441
    functionName: fsmonitor_batch__new
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 3
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct fsmonitor_batch
    signature: struct fsmonitor_batch *fsmonitor_batch__new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/fsmonitor--daemon.c:453,1
    - Dst: free
      Src: /src/git/builtin/fsmonitor--daemon.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - batch
    argTypes:
    - struct fsmonitor_batch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 458
    functionName: fsmonitor_batch__free_list
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void fsmonitor_batch__free_list(struct fsmonitor_batch *batch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strintern
      Src: /src/git/builtin/fsmonitor--daemon.c:463,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:465,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/fsmonitor--daemon.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - batch
    - path
    argTypes:
    - struct fsmonitor_batch*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 469
    functionName: fsmonitor_batch__add_path
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 2
    functionsReached:
    - strintern
    - trace_printf_key
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: "void fsmonitor_batch__add_path(struct fsmonitor_batch *batch,\n\t\t\t
      \      const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/fsmonitor--daemon.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - batch_dest
    - batch_src
    argTypes:
    - struct fsmonitor_batch*
    - struct fsmonitor_batch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 483
    functionName: fsmonitor_batch__combine
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: "void fsmonitor_batch__combine(struct fsmonitor_batch *batch_dest,\n\t\t\t\t
      \    const struct fsmonitor_batch *batch_src)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:526,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - state
    - batch_marker
    argTypes:
    - struct fsmonitor_daemon_state*
    - struct fsmonitor_batch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 552
    functionName: with_lock__truncate_old_batches
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    linkageType: ''
    returnType: struct fsmonitor_batch
    signature: "struct fsmonitor_batch *with_lock__truncate_old_batches(\n\tstruct
      fsmonitor_daemon_state *state,\n\tconst struct fsmonitor_batch *batch_marker)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/fsmonitor--daemon.c:559,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:561,1
    - Dst: fsmonitor_batch__free_list
      Src: /src/git/builtin/fsmonitor--daemon.c:563,1
    - Dst: free
      Src: /src/git/builtin/fsmonitor--daemon.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - token
    argTypes:
    - struct fsmonitor_token_data*
    assertStmts:
    - condition: (token->client_ref_count == 0)
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/git/builtin/fsmonitor--daemon.c
    constantsTouched: []
    func_position:
      end: 566
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 566
    functionName: fsmonitor_free_token_data
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - free
    - strbuf_release
    - assert
    - fsmonitor_batch__free_list
    linkageType: ''
    returnType: void
    signature: void fsmonitor_free_token_data(struct fsmonitor_token_data *token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor_new_token_data
      Src: /src/git/builtin/fsmonitor--daemon.c:594,1
    - Dst: fsmonitor_free_token_data
      Src: /src/git/builtin/fsmonitor--daemon.c:600,1
    - Dst: with_lock__abort_all_cookies
      Src: /src/git/builtin/fsmonitor--daemon.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 587
    functionDepth: 7
    functionLinenumber: 587
    functionLinenumberEnd: 603
    functionName: with_lock__do_force_resync
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - fsmonitor_free_token_data
    - with_lock__abort_all_cookies
    - fsmonitor_new_token_data
    linkageType: ''
    returnType: void
    signature: void with_lock__do_force_resync(struct fsmonitor_daemon_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/fsmonitor--daemon.c:607,1
    - Dst: with_lock__do_force_resync
      Src: /src/git/builtin/fsmonitor--daemon.c:608,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/fsmonitor--daemon.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 605
    functionDepth: 8
    functionLinenumber: 605
    functionLinenumberEnd: 610
    functionName: fsmonitor_force_resync
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 3
    functionsReached:
    - with_lock__do_force_resync
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void fsmonitor_force_resync(struct fsmonitor_daemon_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/fsmonitor--daemon.c:622,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/fsmonitor--daemon.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - response_token
    - response_token_id
    - batch
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - struct fsmonitor_batch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 625
    functionName: with_lock__format_response_token
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void with_lock__format_response_token(\n\tstruct strbuf *response_token,\n\tconst
      struct strbuf *response_token_id,\n\tconst struct fsmonitor_batch *batch)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/fsmonitor--daemon.c:638,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fsmonitor--daemon.c:641,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fsmonitor--daemon.c:645,1
    - Dst: strtoumax
      Src: /src/git/builtin/fsmonitor--daemon.c:649,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - buf_token
    - requested_token_id
    - seq_nr
    argTypes:
    - char*
    - struct strbuf*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 654
    functionName: fsmonitor_parse_client_token
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - skip_prefix
    - strtoumax
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: "int fsmonitor_parse_client_token(const char *buf_token,\n\t\t\t\t\tstruct
      strbuf *requested_token_id,\n\t\t\t\t\tuint64_t *seq_nr)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:690,1
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:703,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fsmonitor--daemon.c:713,1
    - Dst: strtoumax
      Src: /src/git/builtin/fsmonitor--daemon.c:718,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:719,1
    - Dst: fsmonitor_parse_client_token
      Src: /src/git/builtin/fsmonitor--daemon.c:729,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:731,1
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/fsmonitor--daemon.c:746,1
    - Dst: BUG
      Src: /src/git/builtin/fsmonitor--daemon.c:749,1
    - Dst: with_lock__wait_for_cookie
      Src: /src/git/builtin/fsmonitor--daemon.c:767,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:769,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:769,1
    - Dst: with_lock__do_force_resync
      Src: /src/git/builtin/fsmonitor--daemon.c:776,1
    - Dst: time
      Src: /src/git/builtin/fsmonitor--daemon.c:786,1
    - Dst: with_lock__format_response_token
      Src: /src/git/builtin/fsmonitor--daemon.c:795,1
    - Dst: reply
      Src: /src/git/builtin/fsmonitor--daemon.c:798,1
    - Dst: trace2_data_string
      Src: /src/git/builtin/fsmonitor--daemon.c:801,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:803,1
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:807,1
    - Dst: trace2_data_string
      Src: /src/git/builtin/fsmonitor--daemon.c:813,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:826,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/fsmonitor--daemon.c:833,1
    - Dst: reply
      Src: /src/git/builtin/fsmonitor--daemon.c:835,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/fsmonitor--daemon.c:837,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/fsmonitor--daemon.c:857,1
    - Dst: kh_init_str
      Src: /src/git/builtin/fsmonitor--daemon.c:871,1
    - Dst: kh_get_str
      Src: /src/git/builtin/fsmonitor--daemon.c:881,1
    - Dst: kh_end
      Src: /src/git/builtin/fsmonitor--daemon.c:881,1
    - Dst: kh_put_str
      Src: /src/git/builtin/fsmonitor--daemon.c:884,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:886,1
    - Dst: strlen
      Src: /src/git/builtin/fsmonitor--daemon.c:891,1
    - Dst: reply
      Src: /src/git/builtin/fsmonitor--daemon.c:895,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fsmonitor--daemon.c:898,1
    - Dst: strbuf_add
      Src: /src/git/builtin/fsmonitor--daemon.c:901,1
    - Dst: reply
      Src: /src/git/builtin/fsmonitor--daemon.c:908,1
    - Dst: kh_release_str
      Src: /src/git/builtin/fsmonitor--daemon.c:912,1
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/fsmonitor--daemon.c:914,1
    - Dst: fsmonitor_free_token_data
      Src: /src/git/builtin/fsmonitor--daemon.c:928,1
    - Dst: with_lock__truncate_old_batches
      Src: /src/git/builtin/fsmonitor--daemon.c:942,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/fsmonitor--daemon.c:947,1
    - Dst: fsmonitor_batch__free_list
      Src: /src/git/builtin/fsmonitor--daemon.c:950,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/fsmonitor--daemon.c:952,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/fsmonitor--daemon.c:953,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/fsmonitor--daemon.c:954,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:957,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:958,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:959,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 107
    argCount: 4
    argNames:
    - state
    - command
    - reply
    - reply_data
    argTypes:
    - struct fsmonitor_daemon_state*
    - char*
    - ipc_server_reply_cb*
    - struct ipc_server_reply_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 658
    functionDepth: 8
    functionLinenumber: 658
    functionLinenumberEnd: 962
    functionName: do_handle_client
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - trace2_data_intmax
    - pthread_mutex_unlock
    - strcmp
    - with_lock__wait_for_cookie
    - kh_get_str
    - error
    - strbuf_release
    - pthread_mutex_lock
    - trace_printf_key
    - fsmonitor_batch__free_list
    - time
    - kh_put_str
    - kh_release_str
    - strtoumax
    - fsmonitor_parse_client_token
    - reply
    - _
    - with_lock__truncate_old_batches
    - skip_prefix
    - kh_end
    - strbuf_add
    - with_lock__format_response_token
    - strbuf_reset
    - fsmonitor_free_token_data
    - with_lock__do_force_resync
    - strlen
    - kh_init_str
    - BUG
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: "int do_handle_client(struct fsmonitor_daemon_state *state,\n\t\t\t
      \   const char *command,\n\t\t\t    ipc_server_reply_cb *reply,\n\t\t\t    struct
      ipc_server_reply_data *reply_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/fsmonitor--daemon.c:979,1
    - Dst: BUG
      Src: /src/git/builtin/fsmonitor--daemon.c:980,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:982,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/fsmonitor--daemon.c:984,1
    - Dst: trace2_data_string
      Src: /src/git/builtin/fsmonitor--daemon.c:985,1
    - Dst: do_handle_client
      Src: /src/git/builtin/fsmonitor--daemon.c:987,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/fsmonitor--daemon.c:989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - data
    - command
    - command_len
    - reply
    - reply_data
    argTypes:
    - void*
    - char*
    - size_t
    - ipc_server_reply_cb*
    - struct ipc_server_reply_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 966
    functionDepth: 9
    functionLinenumber: 966
    functionLinenumberEnd: 992
    functionName: handle_client
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 1
    functionsReached:
    - trace2_region_leave
    - do_handle_client
    - trace_printf_key
    - trace2_region_enter
    - strlen
    - BUG
    - trace2_data_string
    linkageType: ''
    returnType: int
    signature: "int handle_client(void *data,\n\t\t\t const char *command, size_t
      command_len,\n\t\t\t ipc_server_reply_cb *reply,\n\t\t\t struct ipc_server_reply_data
      *reply_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fspathncmp
      Src: /src/git/builtin/fsmonitor--daemon.c:1001,1
    - Dst: fspathncmp
      Src: /src/git/builtin/fsmonitor--daemon.c:1011,1
    - Dst: strlen
      Src: /src/git/builtin/fsmonitor--daemon.c:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - rel
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1016
    functionName: fsmonitor_classify_path_workdir_relative
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 1
    functionsReached:
    - fspathncmp
    - strlen
    linkageType: ''
    returnType: enum fsmonitor_path_type
    signature: "enum fsmonitor_path_type fsmonitor_classify_path_workdir_relative(\n\tconst
      char *rel)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fspathncmp
      Src: /src/git/builtin/fsmonitor--daemon.c:1021,1
    - Dst: strlen
      Src: /src/git/builtin/fsmonitor--daemon.c:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rel
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1026
    functionName: fsmonitor_classify_path_gitdir_relative
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 1
    functionsReached:
    - fspathncmp
    - strlen
    linkageType: ''
    returnType: enum fsmonitor_path_type
    signature: "enum fsmonitor_path_type fsmonitor_classify_path_gitdir_relative(\n\tconst
      char *rel)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fspathncmp
      Src: /src/git/builtin/fsmonitor--daemon.c:1034,1
    - Dst: fsmonitor_classify_path_workdir_relative
      Src: /src/git/builtin/fsmonitor--daemon.c:1046,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - state
    - path
    argTypes:
    - struct fsmonitor_daemon_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1028
    functionDepth: 3
    functionLinenumber: 1028
    functionLinenumberEnd: 1047
    functionName: try_classify_workdir_abs_path
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - fspathncmp
    - fsmonitor_classify_path_workdir_relative
    linkageType: ''
    returnType: enum fsmonitor_path_type
    signature: "enum fsmonitor_path_type try_classify_workdir_abs_path(\n\tstruct
      fsmonitor_daemon_state *state,\n\tconst char *path)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: try_classify_workdir_abs_path
      Src: /src/git/builtin/fsmonitor--daemon.c:1056,1
    - Dst: fspathncmp
      Src: /src/git/builtin/fsmonitor--daemon.c:1062,1
    - Dst: fsmonitor_classify_path_gitdir_relative
      Src: /src/git/builtin/fsmonitor--daemon.c:1074,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - state
    - path
    argTypes:
    - struct fsmonitor_daemon_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1049
    functionDepth: 4
    functionLinenumber: 1049
    functionLinenumberEnd: 1075
    functionName: fsmonitor_classify_path_absolute
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 1
    functionsReached:
    - fspathncmp
    - try_classify_workdir_abs_path
    - fsmonitor_classify_path_gitdir_relative
    linkageType: ''
    returnType: enum fsmonitor_path_type
    signature: "enum fsmonitor_path_type fsmonitor_classify_path_absolute(\n\tstruct
      fsmonitor_daemon_state *state,\n\tconst char *path)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/fsmonitor--daemon.c:1093,1
    - Dst: BUG
      Src: /src/git/builtin/fsmonitor--daemon.c:1100,1
    - Dst: fsmonitor_batch__free_list
      Src: /src/git/builtin/fsmonitor--daemon.c:1127,1
    - Dst: fsmonitor_batch__combine
      Src: /src/git/builtin/fsmonitor--daemon.c:1144,1
    - Dst: fsmonitor_batch__free_list
      Src: /src/git/builtin/fsmonitor--daemon.c:1145,1
    - Dst: with_lock__mark_cookies_seen
      Src: /src/git/builtin/fsmonitor--daemon.c:1150,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/fsmonitor--daemon.c:1152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - state
    - batch
    - cookie_names
    argTypes:
    - struct fsmonitor_daemon_state*
    - struct fsmonitor_batch*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 1153
    functionName: fsmonitor_publish
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_lock
    - with_lock__mark_cookies_seen
    - fsmonitor_batch__combine
    - fsmonitor_batch__free_list
    - pthread_mutex_unlock
    - BUG
    linkageType: ''
    returnType: void
    signature: "void fsmonitor_publish(struct fsmonitor_daemon_state *state,\n\t\t
      \      struct fsmonitor_batch *batch,\n\t\t       const struct string_list *cookie_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace2_thread_start
      Src: /src/git/builtin/fsmonitor--daemon.c:1159,1
    - Dst: fsm_health__loop
      Src: /src/git/builtin/fsmonitor--daemon.c:1161,1
    - Dst: trace2_thread_exit
      Src: /src/git/builtin/fsmonitor--daemon.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1165
    functionName: fsm_health__thread_proc
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - trace2_thread_start
    - fsm_health__loop
    - trace2_thread_exit
    linkageType: ''
    returnType: void
    signature: void *fsm_health__thread_proc(void *_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace2_thread_start
      Src: /src/git/builtin/fsmonitor--daemon.c:1171,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:1173,1
    - Dst: trace_printf_key
      Src: /src/git/builtin/fsmonitor--daemon.c:1176,1
    - Dst: fsm_listen__loop
      Src: /src/git/builtin/fsmonitor--daemon.c:1179,1
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/fsmonitor--daemon.c:1181,1
    - Dst: fsmonitor_free_token_data
      Src: /src/git/builtin/fsmonitor--daemon.c:1184,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/fsmonitor--daemon.c:1186,1
    - Dst: trace2_thread_exit
      Src: /src/git/builtin/fsmonitor--daemon.c:1188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - _state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1167
    functionDepth: 4
    functionLinenumber: 1167
    functionLinenumberEnd: 1190
    functionName: fsm_listen__thread_proc
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - fsm_listen__loop
    - pthread_mutex_lock
    - trace2_thread_exit
    - fsmonitor_free_token_data
    - trace_printf_key
    - pthread_mutex_unlock
    - trace2_thread_start
    linkageType: ''
    returnType: void
    signature: void *fsm_listen__thread_proc(void *_state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ipc_server_init_async
      Src: /src/git/builtin/fsmonitor--daemon.c:1214,1
    - Dst: error_errno
      Src: /src/git/builtin/fsmonitor--daemon.c:1217,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1218,1
    - Dst: pthread_create
      Src: /src/git/builtin/fsmonitor--daemon.c:1225,1
    - Dst: ipc_server_stop_async
      Src: /src/git/builtin/fsmonitor--daemon.c:1227,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:1228,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1228,1
    - Dst: pthread_create
      Src: /src/git/builtin/fsmonitor--daemon.c:1236,1
    - Dst: ipc_server_stop_async
      Src: /src/git/builtin/fsmonitor--daemon.c:1238,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:1239,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1239,1
    - Dst: ipc_server_await
      Src: /src/git/builtin/fsmonitor--daemon.c:1254,1
    - Dst: fsm_listen__stop_async
      Src: /src/git/builtin/fsmonitor--daemon.c:1262,1
    - Dst: pthread_join
      Src: /src/git/builtin/fsmonitor--daemon.c:1263,1
    - Dst: fsm_health__stop_async
      Src: /src/git/builtin/fsmonitor--daemon.c:1267,1
    - Dst: pthread_join
      Src: /src/git/builtin/fsmonitor--daemon.c:1268,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct fsmonitor_daemon_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1278
    functionName: fsmonitor_run_daemon_1
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - pthread_create
    - fsm_health__stop_async
    - fsm_listen__stop_async
    - ipc_server_await
    - ipc_server_init_async
    - ipc_server_stop_async
    - _
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int fsmonitor_run_daemon_1(struct fsmonitor_daemon_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/fsmonitor--daemon.c:1286,1
    - Dst: hashmap_init
      Src: /src/git/builtin/fsmonitor--daemon.c:1288,1
    - Dst: pthread_mutex_init
      Src: /src/git/builtin/fsmonitor--daemon.c:1289,1
    - Dst: pthread_cond_init
      Src: /src/git/builtin/fsmonitor--daemon.c:1290,1
    - Dst: fsmonitor_new_token_data
      Src: /src/git/builtin/fsmonitor--daemon.c:1293,1
    - Dst: strbuf_init
      Src: /src/git/builtin/fsmonitor--daemon.c:1296,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fsmonitor--daemon.c:1297,1
    - Dst: absolute_path
      Src: /src/git/builtin/fsmonitor--daemon.c:1298,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/fsmonitor--daemon.c:1298,1
    - Dst: strbuf_init
      Src: /src/git/builtin/fsmonitor--daemon.c:1301,1
    - Dst: strbuf_init
      Src: /src/git/builtin/fsmonitor--daemon.c:1302,1
    - Dst: fsmonitor__get_alias
      Src: /src/git/builtin/fsmonitor--daemon.c:1303,1
    - Dst: strbuf_init
      Src: /src/git/builtin/fsmonitor--daemon.c:1313,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/fsmonitor--daemon.c:1314,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fsmonitor--daemon.c:1315,1
    - Dst: is_directory
      Src: /src/git/builtin/fsmonitor--daemon.c:1316,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fsmonitor--daemon.c:1317,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fsmonitor--daemon.c:1318,1
    - Dst: absolute_path
      Src: /src/git/builtin/fsmonitor--daemon.c:1319,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/fsmonitor--daemon.c:1319,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/builtin/fsmonitor--daemon.c:1320,1
    - Dst: strbuf_init
      Src: /src/git/builtin/fsmonitor--daemon.c:1349,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/fsmonitor--daemon.c:1350,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fsmonitor--daemon.c:1352,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fsmonitor--daemon.c:1353,1
    - Dst: mkdir
      Src: /src/git/builtin/fsmonitor--daemon.c:1354,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fsmonitor--daemon.c:1356,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fsmonitor--daemon.c:1357,1
    - Dst: mkdir
      Src: /src/git/builtin/fsmonitor--daemon.c:1358,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fsmonitor--daemon.c:1360,1
    - Dst: strbuf_init
      Src: /src/git/builtin/fsmonitor--daemon.c:1368,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fsmonitor--daemon.c:1369,1
    - Dst: absolute_path
      Src: /src/git/builtin/fsmonitor--daemon.c:1370,1
    - Dst: fsmonitor_ipc__get_path
      Src: /src/git/builtin/fsmonitor--daemon.c:1370,1
    - Dst: fsm_listen__ctor
      Src: /src/git/builtin/fsmonitor--daemon.c:1376,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:1377,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1377,1
    - Dst: fsm_health__ctor
      Src: /src/git/builtin/fsmonitor--daemon.c:1381,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:1382,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1382,1
    - Dst: getenv
      Src: /src/git/builtin/fsmonitor--daemon.c:1399,1
    - Dst: chdir
      Src: /src/git/builtin/fsmonitor--daemon.c:1400,1
    - Dst: die_errno
      Src: /src/git/builtin/fsmonitor--daemon.c:1401,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1401,1
    - Dst: fsmonitor_run_daemon_1
      Src: /src/git/builtin/fsmonitor--daemon.c:1403,1
    - Dst: pthread_cond_destroy
      Src: /src/git/builtin/fsmonitor--daemon.c:1406,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/fsmonitor--daemon.c:1407,1
    - Dst: fsm_listen__dtor
      Src: /src/git/builtin/fsmonitor--daemon.c:1408,1
    - Dst: fsm_health__dtor
      Src: /src/git/builtin/fsmonitor--daemon.c:1409,1
    - Dst: ipc_server_free
      Src: /src/git/builtin/fsmonitor--daemon.c:1411,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:1413,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:1414,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:1415,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:1416,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:1417,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsmonitor--daemon.c:1418,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1280
    functionDepth: 7
    functionLinenumber: 1280
    functionLinenumberEnd: 1421
    functionName: fsmonitor_run_daemon
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_init
    - pthread_cond_init
    - hashmap_init
    - ipc_server_free
    - fsm_health__dtor
    - strbuf_addbuf
    - fsmonitor_new_token_data
    - absolute_path
    - error
    - strbuf_release
    - fsm_health__ctor
    - fsmonitor__get_alias
    - pthread_mutex_destroy
    - strbuf_addstr
    - fsm_listen__ctor
    - strbuf_init
    - memset
    - chdir
    - fsmonitor_ipc__get_path
    - fsm_listen__dtor
    - repo_get_work_tree
    - strbuf_strip_suffix
    - die_errno
    - mkdir
    - _
    - fsmonitor_run_daemon_1
    - pthread_cond_destroy
    - strbuf_reset
    - strbuf_addch
    - repo_get_git_dir
    - is_directory
    - getenv
    linkageType: ''
    returnType: int
    signature: int fsmonitor_run_daemon(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor_ipc__get_state
      Src: /src/git/builtin/fsmonitor--daemon.c:1433,1
    - Dst: die
      Src: /src/git/builtin/fsmonitor--daemon.c:1434,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1434,1
    - Dst: fprintf
      Src: /src/git/builtin/fsmonitor--daemon.c:1438,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1438,1
    - Dst: fflush
      Src: /src/git/builtin/fsmonitor--daemon.c:1440,1
    - Dst: FreeConsole
      Src: /src/git/builtin/fsmonitor--daemon.c:1445,1
    - Dst: fsmonitor_run_daemon
      Src: /src/git/builtin/fsmonitor--daemon.c:1448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - detach_console MAYBE_UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1423
    functionDepth: 8
    functionLinenumber: 1423
    functionLinenumberEnd: 1449
    functionName: try_to_run_foreground_daemon
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - die
    - FreeConsole
    - fflush
    - _
    - fprintf
    - fsmonitor_ipc__get_state
    - fsmonitor_run_daemon
    linkageType: ''
    returnType: int
    signature: int try_to_run_foreground_daemon(int detach_console MAYBE_UNUSED)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor_ipc__get_state
      Src: /src/git/builtin/fsmonitor--daemon.c:1456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - UNUSED
    - cb_data
    argTypes:
    - struct child_process*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1474
    functionName: bg_wait_cb
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - fsmonitor_ipc__get_state
    linkageType: ''
    returnType: int
    signature: "int bg_wait_cb(const struct child_process *cp UNUSED,\n\t\t      void
      *cb_data UNUSED)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fsmonitor_ipc__get_state
      Src: /src/git/builtin/fsmonitor--daemon.c:1489,1
    - Dst: die
      Src: /src/git/builtin/fsmonitor--daemon.c:1490,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1490,1
    - Dst: fprintf
      Src: /src/git/builtin/fsmonitor--daemon.c:1494,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1494,1
    - Dst: fflush
      Src: /src/git/builtin/fsmonitor--daemon.c:1496,1
    - Dst: strvec_push
      Src: /src/git/builtin/fsmonitor--daemon.c:1501,1
    - Dst: strvec_push
      Src: /src/git/builtin/fsmonitor--daemon.c:1502,1
    - Dst: strvec_push
      Src: /src/git/builtin/fsmonitor--daemon.c:1503,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/fsmonitor--daemon.c:1504,1
    - Dst: start_bg_command
      Src: /src/git/builtin/fsmonitor--daemon.c:1510,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:1520,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1520,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:1523,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1523,1
    - Dst: error
      Src: /src/git/builtin/fsmonitor--daemon.c:1526,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1476
    functionDepth: 8
    functionLinenumber: 1476
    functionLinenumberEnd: 1528
    functionName: try_to_start_background_daemon
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - die
    - start_bg_command
    - fflush
    - _
    - strvec_pushf
    - fprintf
    - fsmonitor_ipc__get_state
    linkageType: ''
    returnType: int
    signature: int try_to_start_background_daemon(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fsmonitor--daemon.c:1540,1
    - Dst: N_
      Src: /src/git/builtin/fsmonitor--daemon.c:1540,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/fsmonitor--daemon.c:1541,1
    - Dst: N_
      Src: /src/git/builtin/fsmonitor--daemon.c:1543,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/fsmonitor--daemon.c:1544,1
    - Dst: N_
      Src: /src/git/builtin/fsmonitor--daemon.c:1546,1
    - Dst: OPT_END
      Src: /src/git/builtin/fsmonitor--daemon.c:1548,1
    - Dst: repo_config
      Src: /src/git/builtin/fsmonitor--daemon.c:1551,1
    - Dst: parse_options
      Src: /src/git/builtin/fsmonitor--daemon.c:1553,1
    - Dst: usage_with_options
      Src: /src/git/builtin/fsmonitor--daemon.c:1556,1
    - Dst: die
      Src: /src/git/builtin/fsmonitor--daemon.c:1560,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1560,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/fsmonitor--daemon.c:1563,1
    - Dst: fsm_settings__set_ipc
      Src: /src/git/builtin/fsmonitor--daemon.c:1572,1
    - Dst: fsm_settings__get_reason
      Src: /src/git/builtin/fsmonitor--daemon.c:1574,1
    - Dst: die
      Src: /src/git/builtin/fsmonitor--daemon.c:1576,1
    - Dst: fsm_settings__get_incompatible_msg
      Src: /src/git/builtin/fsmonitor--daemon.c:1577,1
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:1580,1
    - Dst: try_to_start_background_daemon
      Src: /src/git/builtin/fsmonitor--daemon.c:1581,1
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:1583,1
    - Dst: try_to_run_foreground_daemon
      Src: /src/git/builtin/fsmonitor--daemon.c:1584,1
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:1586,1
    - Dst: do_as_client__send_stop
      Src: /src/git/builtin/fsmonitor--daemon.c:1587,1
    - Dst: strcmp
      Src: /src/git/builtin/fsmonitor--daemon.c:1589,1
    - Dst: do_as_client__status
      Src: /src/git/builtin/fsmonitor--daemon.c:1590,1
    - Dst: die
      Src: /src/git/builtin/fsmonitor--daemon.c:1592,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1592,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1530
    functionDepth: 21
    functionLinenumber: 1530
    functionLinenumberEnd: 1593
    functionName: cmd_fsmonitor__daemon
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - fsm_settings__get_reason
    - usage_with_options
    - fsm_settings__set_ipc
    - OPT_BOOL
    - fsm_settings__get_incompatible_msg
    - prepare_repo_settings
    - do_as_client__status
    - try_to_start_background_daemon
    - strcmp
    - do_as_client__send_stop
    - _
    - N_
    - repo_config
    - try_to_run_foreground_daemon
    - OPT_INTEGER
    linkageType: ''
    returnType: int
    signature: "int cmd_fsmonitor__daemon(int argc,\n\t\t\t  const char **argv,\n\t\t\t
      \ const char *prefix,\n\t\t\t  struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/fsmonitor--daemon.c:1599,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/fsmonitor--daemon.c:1602,1
    - Dst: die
      Src: /src/git/builtin/fsmonitor--daemon.c:1605,1
    - Dst: _
      Src: /src/git/builtin/fsmonitor--daemon.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1596
    functionDepth: 9
    functionLinenumber: 1596
    functionLinenumberEnd: 1606
    functionName: cmd_fsmonitor__daemon
    functionSourceFile: /src/git/builtin/fsmonitor--daemon.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - die
    - _
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix
      UNUSED, struct repository *repo UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct stash_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: free_stash_info
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void free_stash_info(struct stash_info *info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/builtin/stash.c:201,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/stash.c:201,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/stash.c:202,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/stash.c:207,1
    - Dst: oideq
      Src: /src/git/builtin/stash.c:210,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 16
    argCount: 2
    argNames:
    - r
    - stash
    argTypes:
    - struct repository*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 189
    functionDepth: 20
    functionLinenumber: 189
    functionLinenumberEnd: 214
    functionName: check_stash_topology
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - repo_parse_commit
    - oideq
    linkageType: ''
    returnType: int
    signature: int check_stash_topology(struct repository *r, struct commit *stash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_oidf
      Src: /src/git/builtin/stash.c:218,1
    - Dst: get_oidf
      Src: /src/git/builtin/stash.c:219,1
    - Dst: get_oidf
      Src: /src/git/builtin/stash.c:220,1
    - Dst: get_oidf
      Src: /src/git/builtin/stash.c:221,1
    - Dst: die
      Src: /src/git/builtin/stash.c:222,1
    - Dst: _
      Src: /src/git/builtin/stash.c:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - info
    - revision
    argTypes:
    - struct stash_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 5
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: assert_stash_like
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - get_oidf
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void assert_stash_like(struct stash_info *info, const char *revision)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/stash.c:227,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/stash.c:229,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/stash.c:229,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:231,1
    - Dst: _
      Src: /src/git/builtin/stash.c:231,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/stash.c:235,1
    - Dst: strspn
      Src: /src/git/builtin/stash.c:236,1
    - Dst: strlen
      Src: /src/git/builtin/stash.c:236,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/stash.c:237,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/stash.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - revision
    - commit
    - quiet
    argTypes:
    - struct strbuf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 242
    functionName: parse_stash_revision
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - fprintf_ln
    - strbuf_reset
    - strbuf_addf
    - strspn
    - strlen
    - strbuf_addstr
    - _
    - refs_ref_exists
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int parse_stash_revision(struct strbuf *revision, const char *commit,
      int quiet)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/stash.c:259,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:261,1
    - Dst: _
      Src: /src/git/builtin/stash.c:261,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:263,1
    - Dst: strbuf_init
      Src: /src/git/builtin/stash.c:271,1
    - Dst: parse_stash_revision
      Src: /src/git/builtin/stash.c:272,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/stash.c:278,1
    - Dst: error
      Src: /src/git/builtin/stash.c:279,1
    - Dst: _
      Src: /src/git/builtin/stash.c:279,1
    - Dst: assert_stash_like
      Src: /src/git/builtin/stash.c:281,1
    - Dst: get_oidf
      Src: /src/git/builtin/stash.c:283,1
    - Dst: strchrnul
      Src: /src/git/builtin/stash.c:285,1
    - Dst: strbuf_add
      Src: /src/git/builtin/stash.c:286,1
    - Dst: repo_dwim_ref
      Src: /src/git/builtin/stash.c:288,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:290,1
    - Dst: strcmp
      Src: /src/git/builtin/stash.c:296,1
    - Dst: free
      Src: /src/git/builtin/stash.c:302,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - info
    - argc
    - argv
    argTypes:
    - struct stash_info*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 244
    functionDepth: 6
    functionLinenumber: 244
    functionLinenumberEnd: 304
    functionName: get_stash_info
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - fprintf_ln
    - repo_dwim_ref
    - get_oidf
    - repo_get_oid
    - strbuf_addf
    - strchrnul
    - strcmp
    - _
    - free
    - parse_stash_revision
    - assert_stash_like
    - strbuf_init
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int get_stash_info(struct stash_info *info, int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/stash.c:309,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/stash.c:312,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/stash.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: do_clear_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - repo_get_oid
    - refs_delete_ref
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int do_clear_stash(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:320,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:323,1
    - Dst: error
      Src: /src/git/builtin/stash.c:328,1
    - Dst: _
      Src: /src/git/builtin/stash.c:328,1
    - Dst: do_clear_stash
      Src: /src/git/builtin/stash.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 316
    functionDepth: 13
    functionLinenumber: 316
    functionLinenumberEnd: 332
    functionName: clear_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 1
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - _
    - do_clear_stash
    linkageType: ''
    returnType: int
    signature: "int clear_stash(int argc, const char **argv, const char *prefix,\n\t\t
      \      struct repository *repo UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/stash.c:342,1
    - Dst: refresh_index
      Src: /src/git/builtin/stash.c:343,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/stash.c:346,1
    - Dst: memset
      Src: /src/git/builtin/stash.c:348,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/stash.c:350,1
    - Dst: repo_parse_tree
      Src: /src/git/builtin/stash.c:351,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/stash.c:354,1
    - Dst: unpack_trees
      Src: /src/git/builtin/stash.c:366,1
    - Dst: write_locked_index
      Src: /src/git/builtin/stash.c:369,1
    - Dst: error
      Src: /src/git/builtin/stash.c:370,1
    - Dst: _
      Src: /src/git/builtin/stash.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - i_tree
    - update
    - reset
    argTypes:
    - struct object_id*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 334
    functionDepth: 21
    functionLinenumber: 334
    functionLinenumberEnd: 373
    functionName: reset_tree
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - repo_read_index_preload
    - error
    - memset
    - repo_parse_tree_indirect
    - repo_parse_tree
    - write_locked_index
    - repo_hold_locked_index
    - unpack_trees
    - refresh_index
    - _
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: int reset_tree(struct object_id *i_tree, int update, int reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:378,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:385,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/stash.c:386,1
    - Dst: pipe_command
      Src: /src/git/builtin/stash.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - w_commit
    argTypes:
    - struct strbuf*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 8
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: diff_tree_binary
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - pipe_command
    - oid_to_hex
    - strvec_pushf
    - strvec_pushl
    linkageType: ''
    returnType: int
    signature: int diff_tree_binary(struct strbuf *out, struct object_id *w_commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:401,1
    - Dst: pipe_command
      Src: /src/git/builtin/stash.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 8
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: apply_cached
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - pipe_command
    - strvec_pushl
    linkageType: ''
    returnType: int
    signature: int apply_cached(struct strbuf *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:414,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 405
    functionDepth: 8
    functionLinenumber: 405
    functionLinenumberEnd: 417
    functionName: reset_head
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 2
    functionsReached:
    - strvec_pushl
    - run_command
    linkageType: ''
    returnType: int
    signature: int reset_head(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/builtin/stash.c:427,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/stash.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 428
    functionName: is_path_a_directory
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - lstat
    linkageType: ''
    returnType: int
    signature: int is_path_a_directory(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_path_a_directory
      Src: /src/git/builtin/stash.c:437,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/stash.c:440,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/stash.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - q
    - options
    - data
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 430
    functionDepth: 4
    functionLinenumber: 430
    functionLinenumberEnd: 445
    functionName: add_diff_to_buf
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - is_path_a_directory
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void add_diff_to_buf(struct diff_queue_struct *q,\n\t\t\t    struct
      diff_options *options UNUSED,\n\t\t\t    void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:458,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:459,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:459,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/stash.c:460,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:462,1
    - Dst: remove_path
      Src: /src/git/builtin/stash.c:463,1
    - Dst: child_process_init
      Src: /src/git/builtin/stash.c:467,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:469,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/stash.c:470,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:473,1
    - Dst: remove_path
      Src: /src/git/builtin/stash.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - u_tree
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 447
    functionDepth: 8
    functionLinenumber: 447
    functionLinenumberEnd: 476
    functionName: restore_untracked
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - oid_to_hex
    - run_command
    - child_process_init
    - strvec_pushl
    - remove_path
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int restore_untracked(struct object_id *u_tree)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_diff_setup
      Src: /src/git/builtin/stash.c:507,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/stash.c:511,1
    - Dst: do_diff_cache
      Src: /src/git/builtin/stash.c:513,1
    - Dst: diffcore_std
      Src: /src/git/builtin/stash.c:514,1
    - Dst: index_name_pos
      Src: /src/git/builtin/stash.c:524,1
    - Dst: strlen
      Src: /src/git/builtin/stash.c:525,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/stash.c:535,1
    - Dst: lstat
      Src: /src/git/builtin/stash.c:539,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/stash.c:544,1
    - Dst: xmkstemp
      Src: /src/git/builtin/stash.c:546,1
    - Dst: close
      Src: /src/git/builtin/stash.c:547,1
    - Dst: printf
      Src: /src/git/builtin/stash.c:548,1
    - Dst: _
      Src: /src/git/builtin/stash.c:548,1
    - Dst: rename
      Src: /src/git/builtin/stash.c:553,1
    - Dst: die
      Src: /src/git/builtin/stash.c:554,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:556,1
    - Dst: checkout_entry
      Src: /src/git/builtin/stash.c:558,1
    - Dst: make_cache_entry
      Src: /src/git/builtin/stash.c:574,1
    - Dst: add_index_entry
      Src: /src/git/builtin/stash.c:579,1
    - Dst: diff_flush
      Src: /src/git/builtin/stash.c:582,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/stash.c:587,1
    - Dst: write_locked_index
      Src: /src/git/builtin/stash.c:588,1
    - Dst: die
      Src: /src/git/builtin/stash.c:590,1
    - Dst: _
      Src: /src/git/builtin/stash.c:590,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 1
    argNames:
    - orig_tree
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 478
    functionDepth: 26
    functionLinenumber: 478
    functionLinenumberEnd: 591
    functionName: unstage_changes_unless_new
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - repo_hold_locked_index
    - ce_skip_worktree
    - printf
    - index_name_pos
    - strbuf_release
    - die
    - diff_setup_done
    - make_cache_entry
    - repo_diff_setup
    - xmkstemp
    - checkout_entry
    - diff_flush
    - add_index_entry
    - _
    - do_diff_cache
    - rename
    - write_locked_index
    - strlen
    - diffcore_std
    - close
    - lstat
    linkageType: ''
    returnType: void
    signature: void unstage_changes_unless_new(struct object_id *orig_tree)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/stash.c:606,1
    - Dst: repo_refresh_and_write_index
      Src: /src/git/builtin/stash.c:607,1
    - Dst: error
      Src: /src/git/builtin/stash.c:609,1
    - Dst: _
      Src: /src/git/builtin/stash.c:609,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/stash.c:611,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/stash.c:612,1
    - Dst: error
      Src: /src/git/builtin/stash.c:613,1
    - Dst: _
      Src: /src/git/builtin/stash.c:613,1
    - Dst: oideq
      Src: /src/git/builtin/stash.c:616,1
    - Dst: oideq
      Src: /src/git/builtin/stash.c:617,1
    - Dst: diff_tree_binary
      Src: /src/git/builtin/stash.c:622,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:623,1
    - Dst: error
      Src: /src/git/builtin/stash.c:624,1
    - Dst: _
      Src: /src/git/builtin/stash.c:624,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:625,1
    - Dst: apply_cached
      Src: /src/git/builtin/stash.c:628,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:629,1
    - Dst: error
      Src: /src/git/builtin/stash.c:631,1
    - Dst: _
      Src: /src/git/builtin/stash.c:631,1
    - Dst: discard_index
      Src: /src/git/builtin/stash.c:634,1
    - Dst: repo_read_index
      Src: /src/git/builtin/stash.c:635,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/stash.c:636,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/stash.c:637,1
    - Dst: error
      Src: /src/git/builtin/stash.c:638,1
    - Dst: _
      Src: /src/git/builtin/stash.c:638,1
    - Dst: reset_head
      Src: /src/git/builtin/stash.c:640,1
    - Dst: discard_index
      Src: /src/git/builtin/stash.c:641,1
    - Dst: repo_read_index
      Src: /src/git/builtin/stash.c:642,1
    - Dst: init_ui_merge_options
      Src: /src/git/builtin/stash.c:646,1
    - Dst: oideq
      Src: /src/git/builtin/stash.c:652,1
    - Dst: printf_ln
      Src: /src/git/builtin/stash.c:659,1
    - Dst: _
      Src: /src/git/builtin/stash.c:659,1
    - Dst: lookup_tree
      Src: /src/git/builtin/stash.c:661,1
    - Dst: lookup_tree
      Src: /src/git/builtin/stash.c:662,1
    - Dst: lookup_tree
      Src: /src/git/builtin/stash.c:663,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/stash.c:665,1
    - Dst: merge_ort_nonrecursive
      Src: /src/git/builtin/stash.c:666,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/stash.c:676,1
    - Dst: write_locked_index
      Src: /src/git/builtin/stash.c:677,1
    - Dst: error
      Src: /src/git/builtin/stash.c:679,1
    - Dst: _
      Src: /src/git/builtin/stash.c:679,1
    - Dst: repo_rerere
      Src: /src/git/builtin/stash.c:682,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:685,1
    - Dst: _
      Src: /src/git/builtin/stash.c:685,1
    - Dst: reset_tree
      Src: /src/git/builtin/stash.c:691,1
    - Dst: unstage_changes_unless_new
      Src: /src/git/builtin/stash.c:694,1
    - Dst: restore_untracked
      Src: /src/git/builtin/stash.c:698,1
    - Dst: error
      Src: /src/git/builtin/stash.c:699,1
    - Dst: _
      Src: /src/git/builtin/stash.c:699,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/stash.c:711,1
    - Dst: absolute_path
      Src: /src/git/builtin/stash.c:712,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/stash.c:712,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/stash.c:713,1
    - Dst: absolute_path
      Src: /src/git/builtin/stash.c:714,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/stash.c:714,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:715,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:716,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 7
    argNames:
    - prefix
    - info
    - index
    - quiet
    - label_ours
    - label_theirs
    - label_base
    argTypes:
    - char*
    - struct stash_info*
    - int
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 593
    functionDepth: 27
    functionLinenumber: 593
    functionLinenumberEnd: 720
    functionName: do_apply_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - merge_ort_nonrecursive
    - repo_hold_locked_index
    - reset_head
    - lookup_tree
    - discard_index
    - repo_read_index_preload
    - error
    - strbuf_release
    - absolute_path
    - repo_get_index_file
    - repo_read_index
    - repo_rerere
    - rollback_lock_file
    - write_index_as_tree
    - oid_to_hex
    - fprintf_ln
    - repo_get_work_tree
    - reset_tree
    - restore_untracked
    - _
    - unstage_changes_unless_new
    - strvec_pushf
    - apply_cached
    - run_command
    - diff_tree_binary
    - write_locked_index
    - init_ui_merge_options
    - repo_get_git_dir
    - printf_ln
    - repo_refresh_and_write_index
    - oideq
    linkageType: ''
    returnType: int
    signature: "int do_apply_stash(const char *prefix, struct stash_info *info,\n\t\t\t
      \ int index, int quiet,\n\t\t\t  const char *label_ours, const char *label_theirs,\n\t\t\t
      \ const char *label_base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/stash.c:731,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:731,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:732,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:733,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/stash.c:734,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:734,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:735,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/stash.c:736,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:736,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:737,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/stash.c:738,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:738,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:739,1
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:740,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:743,1
    - Dst: get_stash_info
      Src: /src/git/builtin/stash.c:746,1
    - Dst: do_apply_stash
      Src: /src/git/builtin/stash.c:749,1
    - Dst: free_stash_info
      Src: /src/git/builtin/stash.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 722
    functionDepth: 28
    functionLinenumber: 722
    functionLinenumberEnd: 754
    functionName: apply_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 1
    functionsReached:
    - parse_options
    - OPT_END
    - get_stash_info
    - do_apply_stash
    - OPT_BOOL
    - OPT_STRING
    - free_stash_info
    - N_
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int apply_stash(int argc, const char **argv, const char *prefix,\n\t\t
      \      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - refname
    - UNUSED
    - UNUSED
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 765
    functionName: reject_reflog_ent
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int reject_reflog_ent(const char *refname UNUSED,\n\t\t\t     struct
      object_id *ooid UNUSED,\n\t\t\t     struct object_id *noid UNUSED,\n\t\t\t     const
      char *email UNUSED,\n\t\t\t     timestamp_t timestamp UNUSED,\n\t\t\t     int
      tz UNUSED, const char *message UNUSED,\n\t\t\t     void *cb_data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/builtin/stash.c:769,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/stash.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: reflog_is_empty
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - refs_for_each_reflog_ent
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int reflog_is_empty(const char *refname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reflog_delete
      Src: /src/git/builtin/stash.c:775,1
    - Dst: printf_ln
      Src: /src/git/builtin/stash.c:779,1
    - Dst: _
      Src: /src/git/builtin/stash.c:779,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:780,1
    - Dst: error
      Src: /src/git/builtin/stash.c:782,1
    - Dst: _
      Src: /src/git/builtin/stash.c:782,1
    - Dst: reflog_is_empty
      Src: /src/git/builtin/stash.c:786,1
    - Dst: do_clear_stash
      Src: /src/git/builtin/stash.c:787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - info
    - quiet
    argTypes:
    - struct stash_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 773
    functionDepth: 5
    functionLinenumber: 773
    functionLinenumberEnd: 790
    functionName: do_drop_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - error
    - reflog_is_empty
    - oid_to_hex
    - reflog_delete
    - _
    - printf_ln
    - do_clear_stash
    linkageType: ''
    returnType: int
    signature: int do_drop_stash(struct stash_info *info, int quiet)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_stash_info
      Src: /src/git/builtin/stash.c:795,1
    - Dst: error
      Src: /src/git/builtin/stash.c:801,1
    - Dst: _
      Src: /src/git/builtin/stash.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - info
    - argc
    - argv
    argTypes:
    - struct stash_info*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 792
    functionDepth: 7
    functionLinenumber: 792
    functionLinenumberEnd: 804
    functionName: get_stash_info_assert
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - error
    - get_stash_info
    - _
    linkageType: ''
    returnType: int
    signature: "int get_stash_info_assert(struct stash_info *info, int argc,\n\t\t\t\t
      const char **argv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/stash.c:813,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:813,1
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:814,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:817,1
    - Dst: get_stash_info_assert
      Src: /src/git/builtin/stash.c:820,1
    - Dst: do_drop_stash
      Src: /src/git/builtin/stash.c:823,1
    - Dst: free_stash_info
      Src: /src/git/builtin/stash.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 806
    functionDepth: 13
    functionLinenumber: 806
    functionLinenumberEnd: 827
    functionName: drop_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 1
    functionsReached:
    - parse_options
    - OPT_END
    - do_drop_stash
    - get_stash_info_assert
    - free_stash_info
    - N_
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int drop_stash(int argc, const char **argv, const char *prefix,\n\t\t
      \     struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/stash.c:837,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:837,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:838,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:839,1
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:840,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:843,1
    - Dst: get_stash_info_assert
      Src: /src/git/builtin/stash.c:846,1
    - Dst: do_apply_stash
      Src: /src/git/builtin/stash.c:849,1
    - Dst: printf_ln
      Src: /src/git/builtin/stash.c:851,1
    - Dst: _
      Src: /src/git/builtin/stash.c:851,1
    - Dst: do_drop_stash
      Src: /src/git/builtin/stash.c:854,1
    - Dst: free_stash_info
      Src: /src/git/builtin/stash.c:857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 829
    functionDepth: 28
    functionLinenumber: 829
    functionLinenumberEnd: 859
    functionName: pop_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - do_apply_stash
    - OPT_BOOL
    - do_drop_stash
    - get_stash_info_assert
    - _
    - N_
    - free_stash_info
    - printf_ln
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int pop_stash(int argc, const char **argv, const char *prefix,\n\t\t
      \    struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:869,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:872,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:876,1
    - Dst: _
      Src: /src/git/builtin/stash.c:876,1
    - Dst: get_stash_info
      Src: /src/git/builtin/stash.c:882,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:886,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:887,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:888,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:888,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:889,1
    - Dst: do_apply_stash
      Src: /src/git/builtin/stash.c:891,1
    - Dst: do_drop_stash
      Src: /src/git/builtin/stash.c:894,1
    - Dst: free_stash_info
      Src: /src/git/builtin/stash.c:897,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 861
    functionDepth: 28
    functionLinenumber: 861
    functionLinenumberEnd: 899
    functionName: branch_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_options
    - OPT_END
    - fprintf_ln
    - get_stash_info
    - oid_to_hex
    - run_command
    - do_apply_stash
    - strvec_pushl
    - do_drop_stash
    - free_stash_info
    - _
    linkageType: ''
    returnType: int
    signature: "int branch_stash(int argc, const char **argv, const char *prefix,\n\t\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:906,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:909,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/stash.c:913,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/stash.c:913,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:917,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/stash.c:919,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:920,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:921,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 901
    functionDepth: 13
    functionLinenumber: 901
    functionLinenumberEnd: 923
    functionName: list_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_options
    - OPT_END
    - run_command
    - strvec_pushv
    - strvec_pushl
    - refs_ref_exists
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int list_stash(int argc, const char **argv, const char *prefix,\n\t\t
      \     struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/stash.c:928,1
    - Dst: git_config_bool
      Src: /src/git/builtin/stash.c:929,1
    - Dst: strcmp
      Src: /src/git/builtin/stash.c:932,1
    - Dst: git_config_bool
      Src: /src/git/builtin/stash.c:933,1
    - Dst: strcmp
      Src: /src/git/builtin/stash.c:936,1
    - Dst: git_config_bool
      Src: /src/git/builtin/stash.c:937,1
    - Dst: strcmp
      Src: /src/git/builtin/stash.c:940,1
    - Dst: git_config_bool
      Src: /src/git/builtin/stash.c:941,1
    - Dst: git_diff_basic_config
      Src: /src/git/builtin/stash.c:944,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 925
    functionDepth: 8
    functionLinenumber: 925
    functionLinenumberEnd: 945
    functionName: git_stash_config
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - git_diff_basic_config
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_stash_config(const char *var, const char *value,\n\t\t\t    const
      struct config_context *ctx, void *cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/stash.c:950,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/stash.c:951,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/stash.c:954,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/stash.c:955,1
    - Dst: repo_parse_tree
      Src: /src/git/builtin/stash.c:956,1
    - Dst: die
      Src: /src/git/builtin/stash.c:957,1
    - Dst: _
      Src: /src/git/builtin/stash.c:957,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/stash.c:958,1
    - Dst: unpack_trees
      Src: /src/git/builtin/stash.c:968,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/stash.c:968,1
    - Dst: die
      Src: /src/git/builtin/stash.c:969,1
    - Dst: _
      Src: /src/git/builtin/stash.c:969,1
    - Dst: do_diff_cache
      Src: /src/git/builtin/stash.c:971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - info
    - diff_opt
    argTypes:
    - struct stash_info*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 947
    functionDepth: 14
    functionLinenumber: 947
    functionLinenumberEnd: 972
    functionName: diff_include_untracked
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - die
    - repo_parse_tree_indirect
    - repo_parse_tree
    - unpack_trees
    - _
    - do_diff_cache
    - init_tree_desc
    linkageType: ''
    returnType: void
    signature: void diff_include_untracked(const struct stash_info *info, struct diff_options
      *diff_opt)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/stash.c:989,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:990,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/stash.c:992,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:993,1
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:995,1
    - Dst: init_diff_ui_defaults
      Src: /src/git/builtin/stash.c:999,1
    - Dst: repo_config
      Src: /src/git/builtin/stash.c:1000,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/stash.c:1001,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:1003,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:1007,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:1010,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:1012,1
    - Dst: get_stash_info
      Src: /src/git/builtin/stash.c:1015,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/builtin/stash.c:1035,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/stash.c:1040,1
    - Dst: setup_diff_pager
      Src: /src/git/builtin/stash.c:1044,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/stash.c:1047,1
    - Dst: diff_root_tree_oid
      Src: /src/git/builtin/stash.c:1051,1
    - Dst: diff_include_untracked
      Src: /src/git/builtin/stash.c:1055,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/stash.c:1057,1
    - Dst: log_tree_diff_flush
      Src: /src/git/builtin/stash.c:1060,1
    - Dst: diff_result_code
      Src: /src/git/builtin/stash.c:1062,1
    - Dst: strvec_clear
      Src: /src/git/builtin/stash.c:1065,1
    - Dst: strvec_clear
      Src: /src/git/builtin/stash.c:1066,1
    - Dst: free_stash_info
      Src: /src/git/builtin/stash.c:1067,1
    - Dst: release_revisions
      Src: /src/git/builtin/stash.c:1068,1
    - Dst: usage_with_options
      Src: /src/git/builtin/stash.c:1070,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 974
    functionDepth: 29
    functionLinenumber: 974
    functionLinenumberEnd: 1075
    functionName: show_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_options
    - repo_init_revisions
    - setup_diff_pager
    - repo_config
    - usage_with_options
    - OPT_END
    - release_revisions
    - get_stash_info
    - init_diff_ui_defaults
    - diff_setup_done
    - OPT_SET_INT
    - diff_root_tree_oid
    - OPT_SET_INT_F
    - diff_result_code
    - log_tree_diff_flush
    - free_stash_info
    - N_
    - diff_tree_oid
    - setup_revisions_from_strvec
    - strvec_clear
    - diff_include_untracked
    linkageType: ''
    returnType: int
    signature: "int show_stash(int argc, const char **argv, const char *prefix,\n\t\t
      \     struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/stash.c:1083,1
    - Dst: assert_stash_like
      Src: /src/git/builtin/stash.c:1084,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/stash.c:1089,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/stash.c:1089,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1094,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1094,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:1095,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - w_commit
    - stash_msg
    - quiet
    argTypes:
    - struct object_id*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1077
    functionDepth: 7
    functionLinenumber: 1077
    functionLinenumberEnd: 1101
    functionName: do_store_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - oid_to_hex_r
    - fprintf_ln
    - oid_to_hex
    - _
    - refs_update_ref
    - assert_stash_like
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int do_store_stash(const struct object_id *w_commit, const char *stash_msg,\n\t\t\t
      \ int quiet)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/stash.c:1110,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1110,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/stash.c:1111,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1112,1
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:1113,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:1117,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1123,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1123,1
    - Dst: repo_get_oid_with_flags
      Src: /src/git/builtin/stash.c:1128,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1131,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1131,1
    - Dst: do_store_stash
      Src: /src/git/builtin/stash.c:1137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1103
    functionDepth: 13
    functionLinenumber: 1103
    functionLinenumberEnd: 1141
    functionName: store_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 1
    functionsReached:
    - do_store_stash
    - parse_options
    - OPT_END
    - fprintf_ln
    - repo_get_oid_with_flags
    - OPT_STRING
    - _
    - N_
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int store_stash(int argc, const char **argv, const char *prefix,\n\t\t
      \      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:1148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - args
    - ps
    argTypes:
    - struct strvec*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1143
    functionDepth: 3
    functionLinenumber: 1143
    functionLinenumberEnd: 1149
    functionName: add_pathspecs
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - strvec_push
    linkageType: ''
    returnType: void
    signature: "void add_pathspecs(struct strvec *args,\n\t\t\t  const struct pathspec
      *ps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_standard_excludes
      Src: /src/git/builtin/stash.c:1166,1
    - Dst: fill_directory
      Src: /src/git/builtin/stash.c:1168,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/stash.c:1172,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/stash.c:1174,1
    - Dst: dir_clear
      Src: /src/git/builtin/stash.c:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ps
    - include_untracked
    - untracked_files
    argTypes:
    - struct pathspec*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1158
    functionDepth: 4
    functionLinenumber: 1158
    functionLinenumberEnd: 1179
    functionName: get_untracked_files
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 1
    functionsReached:
    - fill_directory
    - strbuf_addch
    - setup_standard_excludes
    - dir_clear
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int get_untracked_files(const struct pathspec *ps, int include_untracked,\n\t\t\t
      \      struct strbuf *untracked_files)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/stash.c:1195,1
    - Dst: repo_read_index
      Src: /src/git/builtin/stash.c:1198,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/stash.c:1201,1
    - Dst: copy_pathspec
      Src: /src/git/builtin/stash.c:1202,1
    - Dst: add_head_to_pending
      Src: /src/git/builtin/stash.c:1208,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/stash.c:1209,1
    - Dst: run_diff_index
      Src: /src/git/builtin/stash.c:1211,1
    - Dst: diff_result_code
      Src: /src/git/builtin/stash.c:1212,1
    - Dst: run_diff_files
      Src: /src/git/builtin/stash.c:1217,1
    - Dst: diff_result_code
      Src: /src/git/builtin/stash.c:1218,1
    - Dst: release_revisions
      Src: /src/git/builtin/stash.c:1224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - ps
    argTypes:
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1188
    functionDepth: 11
    functionLinenumber: 1188
    functionLinenumberEnd: 1226
    functionName: check_changes_tracked_files
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - release_revisions
    - copy_pathspec
    - repo_read_index
    - add_head_to_pending
    - repo_get_oid
    - diff_result_code
    - repo_init_revisions
    - run_diff_index
    - diff_setup_done
    - run_diff_files
    linkageType: ''
    returnType: int
    signature: int check_changes_tracked_files(const struct pathspec *ps)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_changes_tracked_files
      Src: /src/git/builtin/stash.c:1236,1
    - Dst: get_untracked_files
      Src: /src/git/builtin/stash.c:1239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ps
    - include_untracked
    - untracked_files
    argTypes:
    - struct pathspec*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1232
    functionDepth: 12
    functionLinenumber: 1232
    functionLinenumberEnd: 1244
    functionName: check_changes
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - get_untracked_files
    - check_changes_tracked_files
    linkageType: ''
    returnType: int
    signature: "int check_changes(const struct pathspec *ps, int include_untracked,\n\t\t\t
      struct strbuf *untracked_files)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INDEX_STATE_INIT
      Src: /src/git/builtin/stash.c:1252,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1255,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/stash.c:1257,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/stash.c:1260,1
    - Dst: pipe_command
      Src: /src/git/builtin/stash.c:1261,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/stash.c:1267,1
    - Dst: commit_tree
      Src: /src/git/builtin/stash.c:1273,1
    - Dst: release_index
      Src: /src/git/builtin/stash.c:1280,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:1281,1
    - Dst: remove_path
      Src: /src/git/builtin/stash.c:1282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - info
    - msg
    - files
    argTypes:
    - struct stash_info*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1246
    functionDepth: 15
    functionLinenumber: 1246
    functionLinenumberEnd: 1284
    functionName: save_untracked_files
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - INDEX_STATE_INIT
    - strbuf_release
    - strvec_pushl
    - strbuf_addf
    - commit_tree
    - release_index
    - remove_path
    - pipe_command
    - write_index_as_tree
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int save_untracked_files(struct stash_info *info, struct strbuf *msg,\n\t\t\t\tstruct
      strbuf *files)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INDEX_STATE_INIT
      Src: /src/git/builtin/stash.c:1291,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/stash.c:1293,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1300,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:1302,1
    - Dst: pipe_command
      Src: /src/git/builtin/stash.c:1303,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1310,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1310,1
    - Dst: release_index
      Src: /src/git/builtin/stash.c:1315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - info
    - out_patch
    - quiet
    argTypes:
    - struct stash_info*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1286
    functionDepth: 14
    functionLinenumber: 1286
    functionLinenumberEnd: 1317
    functionName: stash_staged
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - INDEX_STATE_INIT
    - oid_to_hex
    - fprintf_ln
    - strvec_pushl
    - release_index
    - pipe_command
    - _
    - write_index_as_tree
    linkageType: ''
    returnType: int
    signature: "int stash_staged(struct stash_info *info, struct strbuf *out_patch,\n\t\t\tint
      quiet)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INDEX_STATE_INIT
      Src: /src/git/builtin/stash.c:1326,1
    - Dst: remove_path
      Src: /src/git/builtin/stash.c:1329,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1332,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/stash.c:1333,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:1335,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/stash.c:1343,1
    - Dst: getenv
      Src: /src/git/builtin/stash.c:1343,1
    - Dst: setenv
      Src: /src/git/builtin/stash.c:1344,1
    - Dst: run_add_p
      Src: /src/git/builtin/stash.c:1346,1
    - Dst: setenv
      Src: /src/git/builtin/stash.c:1350,1
    - Dst: unsetenv
      Src: /src/git/builtin/stash.c:1352,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/stash.c:1353,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/stash.c:1356,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1363,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:1365,1
    - Dst: pipe_command
      Src: /src/git/builtin/stash.c:1366,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1373,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1373,1
    - Dst: release_index
      Src: /src/git/builtin/stash.c:1378,1
    - Dst: remove_path
      Src: /src/git/builtin/stash.c:1379,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 5
    argNames:
    - info
    - ps
    - out_patch
    - quiet
    - interactive_opts
    argTypes:
    - struct stash_info*
    - struct pathspec*
    - struct strbuf*
    - int
    - struct interactive_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1319
    functionDepth: 14
    functionLinenumber: 1319
    functionLinenumberEnd: 1381
    functionName: stash_patch
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - INDEX_STATE_INIT
    - write_index_as_tree
    - oid_to_hex
    - xstrdup_or_null
    - fprintf_ln
    - run_command
    - run_add_p
    - strvec_pushl
    - remove_path
    - release_index
    - setenv
    - pipe_command
    - _
    - getenv
    - FREE_AND_NULL
    - strvec_pushf
    - unsetenv
    linkageType: ''
    returnType: int
    signature: "int stash_patch(struct stash_info *info, const struct pathspec *ps,\n\t\t
      \      struct strbuf *out_patch, int quiet,\n\t\t       struct interactive_options
      *interactive_opts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INDEX_STATE_INIT
      Src: /src/git/builtin/stash.c:1389,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/stash.c:1391,1
    - Dst: copy_pathspec
      Src: /src/git/builtin/stash.c:1392,1
    - Dst: set_alternate_index_output
      Src: /src/git/builtin/stash.c:1394,1
    - Dst: reset_tree
      Src: /src/git/builtin/stash.c:1395,1
    - Dst: set_alternate_index_output
      Src: /src/git/builtin/stash.c:1399,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/stash.c:1405,1
    - Dst: add_pending_object
      Src: /src/git/builtin/stash.c:1410,1
    - Dst: parse_object
      Src: /src/git/builtin/stash.c:1410,1
    - Dst: run_diff_index
      Src: /src/git/builtin/stash.c:1412,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1415,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/stash.c:1418,1
    - Dst: pipe_command
      Src: /src/git/builtin/stash.c:1421,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/stash.c:1427,1
    - Dst: release_index
      Src: /src/git/builtin/stash.c:1434,1
    - Dst: release_revisions
      Src: /src/git/builtin/stash.c:1435,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:1436,1
    - Dst: remove_path
      Src: /src/git/builtin/stash.c:1437,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 2
    argNames:
    - info
    - ps
    argTypes:
    - struct stash_info*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1383
    functionDepth: 21
    functionLinenumber: 1383
    functionLinenumberEnd: 1439
    functionName: stash_working_tree
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - INDEX_STATE_INIT
    - repo_read_index_preload
    - strbuf_release
    - release_revisions
    - copy_pathspec
    - reset_tree
    - strvec_pushl
    - repo_init_revisions
    - set_alternate_index_output
    - parse_object
    - add_pending_object
    - pipe_command
    - release_index
    - run_diff_index
    - remove_path
    - write_index_as_tree
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int stash_working_tree(struct stash_info *info, const struct pathspec
      *ps)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: prepare_fallback_ident
      Src: /src/git/builtin/stash.c:1460,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/stash.c:1462,1
    - Dst: repo_refresh_and_write_index
      Src: /src/git/builtin/stash.c:1463,1
    - Dst: error
      Src: /src/git/builtin/stash.c:1465,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1465,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/stash.c:1469,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1471,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1471,1
    - Dst: lookup_commit
      Src: /src/git/builtin/stash.c:1476,1
    - Dst: check_changes
      Src: /src/git/builtin/stash.c:1479,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/stash.c:1484,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/stash.c:1484,1
    - Dst: skip_prefix
      Src: /src/git/builtin/stash.c:1488,1
    - Dst: xstrdup
      Src: /src/git/builtin/stash.c:1489,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/stash.c:1492,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/stash.c:1495,1
    - Dst: pp_commit_easy
      Src: /src/git/builtin/stash.c:1496,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/stash.c:1498,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/stash.c:1499,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/stash.c:1500,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/stash.c:1501,1
    - Dst: commit_tree
      Src: /src/git/builtin/stash.c:1502,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1505,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1505,1
    - Dst: commit_list_free
      Src: /src/git/builtin/stash.c:1511,1
    - Dst: save_untracked_files
      Src: /src/git/builtin/stash.c:1515,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1517,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1517,1
    - Dst: stash_patch
      Src: /src/git/builtin/stash.c:1525,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1528,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1528,1
    - Dst: stash_staged
      Src: /src/git/builtin/stash.c:1535,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1538,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1538,1
    - Dst: stash_working_tree
      Src: /src/git/builtin/stash.c:1545,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1547,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1547,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/stash.c:1555,1
    - Dst: strbuf_insertf
      Src: /src/git/builtin/stash.c:1557,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/stash.c:1560,1
    - Dst: lookup_commit
      Src: /src/git/builtin/stash.c:1560,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/stash.c:1563,1
    - Dst: lookup_commit
      Src: /src/git/builtin/stash.c:1563,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/stash.c:1565,1
    - Dst: commit_tree
      Src: /src/git/builtin/stash.c:1567,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1570,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1570,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:1577,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:1578,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:1579,1
    - Dst: commit_list_free
      Src: /src/git/builtin/stash.c:1580,1
    - Dst: free
      Src: /src/git/builtin/stash.c:1581,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 107
    argCount: 9
    argNames:
    - ps
    - stash_msg_buf
    - include_untracked
    - patch_mode
    - interactive_opts
    - only_staged
    - info
    - patch
    - quiet
    argTypes:
    - struct pathspec*
    - struct strbuf*
    - int
    - int
    - struct interactive_options*
    - int
    - struct stash_info*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1441
    functionDepth: 22
    functionLinenumber: 1441
    functionLinenumberEnd: 1583
    functionName: do_create_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - repo_get_oid
    - strbuf_addf
    - check_changes
    - save_untracked_files
    - free
    - get_main_ref_store
    - repo_read_index_preload
    - error
    - strbuf_release
    - repo_get_index_file
    - commit_tree
    - strbuf_insertf
    - write_index_as_tree
    - fprintf_ln
    - pp_commit_easy
    - prepare_fallback_ident
    - _
    - stash_patch
    - skip_prefix
    - xstrdup
    - stash_working_tree
    - stash_staged
    - commit_list_free
    - lookup_commit
    - repo_find_unique_abbrev
    - commit_list_insert
    - repo_refresh_and_write_index
    linkageType: ''
    returnType: int
    signature: "int do_create_stash(const struct pathspec *ps, struct strbuf *stash_msg_buf,\n\t\t\t
      \  int include_untracked, int patch_mode,\n\t\t\t   struct interactive_options
      *interactive_opts,\n\t\t\t   int only_staged, struct stash_info *info, struct
      strbuf *patch,\n\t\t\t   int quiet)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_join_argv
      Src: /src/git/builtin/stash.c:1594,1
    - Dst: memset
      Src: /src/git/builtin/stash.c:1596,1
    - Dst: check_changes_tracked_files
      Src: /src/git/builtin/stash.c:1597,1
    - Dst: do_create_stash
      Src: /src/git/builtin/stash.c:1600,1
    - Dst: printf_ln
      Src: /src/git/builtin/stash.c:1603,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:1603,1
    - Dst: free_stash_info
      Src: /src/git/builtin/stash.c:1605,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:1606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1585
    functionDepth: 23
    functionLinenumber: 1585
    functionLinenumberEnd: 1608
    functionName: create_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 1
    functionsReached:
    - memset
    - oid_to_hex
    - strbuf_release
    - strbuf_join_argv
    - printf_ln
    - free_stash_info
    - do_create_stash
    - check_changes_tracked_files
    linkageType: ''
    returnType: int
    signature: "int create_stash(int argc, const char **argv, const char *prefix UNUSED,\n\t\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1626,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1626,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1637,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1637,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/stash.c:1643,1
    - Dst: xcalloc
      Src: /src/git/builtin/stash.c:1645,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/stash.c:1648,1
    - Dst: ce_path_match
      Src: /src/git/builtin/stash.c:1650,1
    - Dst: report_path_error
      Src: /src/git/builtin/stash.c:1653,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1654,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1654,1
    - Dst: free
      Src: /src/git/builtin/stash.c:1656,1
    - Dst: free
      Src: /src/git/builtin/stash.c:1659,1
    - Dst: repo_refresh_and_write_index
      Src: /src/git/builtin/stash.c:1662,1
    - Dst: error
      Src: /src/git/builtin/stash.c:1664,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1664,1
    - Dst: check_changes
      Src: /src/git/builtin/stash.c:1668,1
    - Dst: printf_ln
      Src: /src/git/builtin/stash.c:1670,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1670,1
    - Dst: refs_reflog_exists
      Src: /src/git/builtin/stash.c:1674,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/stash.c:1674,1
    - Dst: do_clear_stash
      Src: /src/git/builtin/stash.c:1674,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1677,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1677,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/stash.c:1682,1
    - Dst: do_create_stash
      Src: /src/git/builtin/stash.c:1683,1
    - Dst: do_store_stash
      Src: /src/git/builtin/stash.c:1689,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1692,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1692,1
    - Dst: printf_ln
      Src: /src/git/builtin/stash.c:1697,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1697,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/stash.c:1707,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1711,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:1714,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:1715,1
    - Dst: discard_index
      Src: /src/git/builtin/stash.c:1720,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:1727,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:1729,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:1731,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:1732,1
    - Dst: add_pathspecs
      Src: /src/git/builtin/stash.c:1733,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:1734,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1740,1
    - Dst: add_pathspecs
      Src: /src/git/builtin/stash.c:1744,1
    - Dst: pipe_command
      Src: /src/git/builtin/stash.c:1745,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1751,1
    - Dst: pipe_command
      Src: /src/git/builtin/stash.c:1753,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1762,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:1764,1
    - Dst: is_null_oid
      Src: /src/git/builtin/stash.c:1790,1
    - Dst: is_empty_tree_oid
      Src: /src/git/builtin/stash.c:1791,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1795,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:1796,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:1798,1
    - Dst: add_pathspecs
      Src: /src/git/builtin/stash.c:1800,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:1801,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1811,1
    - Dst: pipe_command
      Src: /src/git/builtin/stash.c:1813,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/stash.c:1815,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1815,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/stash.c:1825,1
    - Dst: add_pathspecs
      Src: /src/git/builtin/stash.c:1827,1
    - Dst: run_command
      Src: /src/git/builtin/stash.c:1828,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:1837,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:1838,1
    - Dst: free_stash_info
      Src: /src/git/builtin/stash.c:1839,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:1840,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:1841,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 165
    argCount: 8
    argNames:
    - ps
    - stash_msg
    - quiet
    - keep_index
    - patch_mode
    - interactive_opts
    - include_untracked
    - only_staged
    argTypes:
    - struct pathspec*
    - char*
    - int
    - int
    - int
    - struct interactive_options*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1610
    functionDepth: 23
    functionLinenumber: 1610
    functionLinenumberEnd: 1843
    functionName: do_push_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - strvec_push
    - is_null_oid
    - check_changes
    - free
    - do_create_stash
    - do_clear_stash
    - get_main_ref_store
    - repo_read_index_preload
    - error
    - discard_index
    - strbuf_release
    - ce_path_match
    - xcalloc
    - strbuf_addstr
    - add_pathspecs
    - oid_to_hex
    - fprintf_ln
    - strvec_pushl
    - refs_reflog_exists
    - report_path_error
    - pipe_command
    - free_stash_info
    - _
    - strvec_pushf
    - do_store_stash
    - run_command
    - is_empty_tree_oid
    - printf_ln
    - repo_refresh_and_write_index
    linkageType: ''
    returnType: int
    signature: "int do_push_stash(const struct pathspec *ps, const char *stash_msg,
      int quiet,\n\t\t\t int keep_index, int patch_mode,\n\t\t\t struct interactive_options
      *interactive_opts,\n\t\t\t int include_untracked, int only_staged)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:1860,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1861,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:1862,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1863,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:1864,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1865,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:1866,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1867,1
    - Dst: OPT_DIFF_UNIFIED
      Src: /src/git/builtin/stash.c:1868,1
    - Dst: OPT_DIFF_INTERHUNK_CONTEXT
      Src: /src/git/builtin/stash.c:1869,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/stash.c:1870,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1870,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:1871,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1872,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/stash.c:1873,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1874,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/stash.c:1875,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1875,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1876,1
    - Dst: OPT_PATHSPEC_FROM_FILE
      Src: /src/git/builtin/stash.c:1877,1
    - Dst: OPT_PATHSPEC_FILE_NUL
      Src: /src/git/builtin/stash.c:1878,1
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:1879,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:1889,1
    - Dst: strcmp
      Src: /src/git/builtin/stash.c:1896,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1900,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/stash.c:1905,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1910,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1910,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1913,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1913,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1916,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1916,1
    - Dst: parse_pathspec_file
      Src: /src/git/builtin/stash.c:1918,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1922,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1922,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1927,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1927,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1929,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1929,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1931,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1931,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1935,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1935,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1937,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1937,1
    - Dst: do_push_stash
      Src: /src/git/builtin/stash.c:1939,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/stash.c:1942,1
    - Dst: free
      Src: /src/git/builtin/stash.c:1943,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - push_assumed
    argTypes:
    - int
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1845
    functionDepth: 24
    functionLinenumber: 1845
    functionLinenumberEnd: 1945
    functionName: push_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 1
    functionsReached:
    - parse_options
    - do_push_stash
    - OPT_DIFF_UNIFIED
    - parse_pathspec_file
    - OPT_BOOL
    - free
    - strcmp
    - OPT_END
    - die
    - parse_pathspec
    - OPT_DIFF_INTERHUNK_CONTEXT
    - OPT__QUIET
    - OPT_SET_INT
    - _
    - N_
    - OPT_PATHSPEC_FILE_NUL
    - clear_pathspec
    - OPT_STRING
    - OPT_PATHSPEC_FROM_FILE
    linkageType: ''
    returnType: int
    signature: "int push_stash(int argc, const char **argv, const char *prefix,\n\t\t
      \     int push_assumed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_stash
      Src: /src/git/builtin/stash.c:1950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1947
    functionDepth: 25
    functionLinenumber: 1947
    functionLinenumberEnd: 1951
    functionName: push_stash_unassumed
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - push_stash
    linkageType: ''
    returnType: int
    signature: "int push_stash_unassumed(int argc, const char **argv, const char *prefix,\n\t\t\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:1967,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1968,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:1969,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1970,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:1971,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1972,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:1973,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1974,1
    - Dst: OPT_DIFF_UNIFIED
      Src: /src/git/builtin/stash.c:1975,1
    - Dst: OPT_DIFF_INTERHUNK_CONTEXT
      Src: /src/git/builtin/stash.c:1976,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/stash.c:1977,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1977,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/stash.c:1978,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1979,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/stash.c:1980,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1981,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/stash.c:1982,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:1983,1
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:1984,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:1987,1
    - Dst: strbuf_join_argv
      Src: /src/git/builtin/stash.c:1992,1
    - Dst: memset
      Src: /src/git/builtin/stash.c:1994,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1997,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1997,1
    - Dst: die
      Src: /src/git/builtin/stash.c:1999,1
    - Dst: _
      Src: /src/git/builtin/stash.c:1999,1
    - Dst: die
      Src: /src/git/builtin/stash.c:2003,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2003,1
    - Dst: die
      Src: /src/git/builtin/stash.c:2005,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2005,1
    - Dst: die
      Src: /src/git/builtin/stash.c:2007,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2007,1
    - Dst: do_push_stash
      Src: /src/git/builtin/stash.c:2010,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:2014,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1953
    functionDepth: 24
    functionLinenumber: 1953
    functionLinenumberEnd: 2016
    functionName: save_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - memset
    - die
    - do_push_stash
    - strbuf_release
    - OPT_SET_INT
    - OPT_DIFF_UNIFIED
    - strbuf_join_argv
    - OPT_BOOL
    - OPT_STRING
    - _
    - N_
    - OPT_DIFF_INTERHUNK_CONTEXT
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int save_stash(int argc, const char **argv, const char *prefix,\n\t\t
      \     struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/stash.c:2034,1
    - Dst: repo_get_commit_buffer
      Src: /src/git/builtin/stash.c:2035,1
    - Dst: find_commit_header
      Src: /src/git/builtin/stash.c:2036,1
    - Dst: find_commit_header
      Src: /src/git/builtin/stash.c:2037,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2040,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2040,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2040,1
    - Dst: split_ident_line
      Src: /src/git/builtin/stash.c:2044,1
    - Dst: split_ident_line
      Src: /src/git/builtin/stash.c:2045,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2046,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2046,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2046,1
    - Dst: strstr
      Src: /src/git/builtin/stash.c:2050,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/stash.c:2051,1
    - Dst: strbuf_add
      Src: /src/git/builtin/stash.c:2054,1
    - Dst: strbuf_complete_line
      Src: /src/git/builtin/stash.c:2055,1
    - Dst: xmemdupz
      Src: /src/git/builtin/stash.c:2057,1
    - Dst: xmemdupz
      Src: /src/git/builtin/stash.c:2058,1
    - Dst: commit_tree_extended
      Src: /src/git/builtin/stash.c:2060,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2064,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2064,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:2068,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/stash.c:2069,1
    - Dst: free
      Src: /src/git/builtin/stash.c:2070,1
    - Dst: free
      Src: /src/git/builtin/stash.c:2071,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - r
    - out
    - oid
    - parents
    argTypes:
    - struct repository*
    - struct object_id*
    - struct object_id*
    - struct commit_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2018
    functionDepth: 14
    functionLinenumber: 2018
    functionLinenumberEnd: 2073
    functionName: write_commit_with_parents
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - error
    - xmemdupz
    - strbuf_release
    - oid_to_hex
    - strstr
    - commit_tree_extended
    - lookup_commit_reference
    - find_commit_header
    - strbuf_complete_line
    - repo_unuse_commit_buffer
    - repo_get_commit_buffer
    - strbuf_addstr
    - _
    - free
    - split_ident_line
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int write_commit_with_parents(struct repository *r,\n\t\t\t\t     struct
      object_id *out,\n\t\t\t\t     const struct object_id *oid,\n\t\t\t\t     struct
      commit_list *parents)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/stash.c:2085,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2086,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2086,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/stash.c:2088,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2090,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2090,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/stash.c:2103,1
    - Dst: oideq
      Src: /src/git/builtin/stash.c:2106,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2109,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2109,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2110,1
    - Dst: repo_get_commit_buffer
      Src: /src/git/builtin/stash.c:2114,1
    - Dst: find_commit_header
      Src: /src/git/builtin/stash.c:2121,1
    - Dst: find_commit_header
      Src: /src/git/builtin/stash.c:2122,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2125,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2125,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2125,1
    - Dst: strlen
      Src: /src/git/builtin/stash.c:2129,1
    - Dst: strlen
      Src: /src/git/builtin/stash.c:2130,1
    - Dst: memcmp
      Src: /src/git/builtin/stash.c:2131,1
    - Dst: memcmp
      Src: /src/git/builtin/stash.c:2132,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2133,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2133,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2133,1
    - Dst: strstr
      Src: /src/git/builtin/stash.c:2139,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2141,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2141,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2141,1
    - Dst: strlen
      Src: /src/git/builtin/stash.c:2146,1
    - Dst: memcmp
      Src: /src/git/builtin/stash.c:2147,1
    - Dst: strlen
      Src: /src/git/builtin/stash.c:2147,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2148,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2148,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2148,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/stash.c:2154,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/stash.c:2155,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2156,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2156,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2157,1
    - Dst: check_stash_topology
      Src: /src/git/builtin/stash.c:2161,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2162,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2162,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2163,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/stash.c:2167,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/stash.c:2169,1
    - Dst: repo_get_commit_buffer
      Src: /src/git/builtin/stash.c:2183,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2185,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2185,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2185,1
    - Dst: strstr
      Src: /src/git/builtin/stash.c:2189,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2191,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2191,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2191,1
    - Dst: xmemdupz
      Src: /src/git/builtin/stash.c:2196,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/stash.c:2197,1
    - Dst: do_store_stash
      Src: /src/git/builtin/stash.c:2200,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2201,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2201,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2201,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/stash.c:2204,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/stash.c:2208,1
    - Dst: commit_list_free
      Src: /src/git/builtin/stash.c:2209,1
    - Dst: free
      Src: /src/git/builtin/stash.c:2210,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 89
    argCount: 2
    argNames:
    - r
    - rev
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2075
    functionDepth: 21
    functionLinenumber: 2075
    functionLinenumberEnd: 2213
    functionName: do_import_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - repo_get_oid
    - repo_get_commit_buffer
    - free
    - error
    - strstr
    - lookup_commit_reference
    - repo_parse_commit
    - oid_to_hex
    - repo_unuse_commit_buffer
    - check_stash_topology
    - _
    - FREE_AND_NULL
    - do_store_stash
    - find_commit_header
    - repo_get_commit_tree
    - strlen
    - commit_list_free
    - commit_list_insert
    - oideq
    - memcmp
    linkageType: ''
    returnType: int
    signature: int do_import_stash(struct repository *r, const char *rev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:2219,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:2222,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/stash.c:2227,1
    - Dst: do_import_stash
      Src: /src/git/builtin/stash.c:2229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2215
    functionDepth: 22
    functionLinenumber: 2215
    functionLinenumberEnd: 2230
    functionName: import_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 1
    functionsReached:
    - usage_msg_opt
    - parse_options
    - OPT_END
    - do_import_stash
    linkageType: ''
    returnType: int
    signature: "int import_stash(int argc, const char **argv, const char *prefix,\n\t\t\tstruct
      repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/stash.c:2250,1
    - Dst: check_stash_topology
      Src: /src/git/builtin/stash.c:2251,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2252,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2252,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2253,1
    - Dst: commit_list_append
      Src: /src/git/builtin/stash.c:2255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 8
    argNames:
    - refname
    - old_oid
    - new_oid
    - committer
    - timestamp
    - UNUSED
    - UNUSED
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2238
    functionDepth: 21
    functionLinenumber: 2238
    functionLinenumberEnd: 2257
    functionName: collect_stash_entries
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - commit_list_append
    - lookup_commit_reference
    - check_stash_topology
    - _
    linkageType: ''
    returnType: int
    signature: "int collect_stash_entries(const char *refname UNUSED,\n\t\t\t\t struct
      object_id *old_oid UNUSED,\n\t\t\t\t struct object_id *new_oid,\n\t\t\t\t const
      char *committer UNUSED,\n\t\t\t\t timestamp_t timestamp UNUSED,\n\t\t\t\t int
      tz UNUSED, const char *msg UNUSED,\n\t\t\t\t void *cb_data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: prepare_fallback_ident
      Src: /src/git/builtin/stash.c:2276,1
    - Dst: fmt_ident
      Src: /src/git/builtin/stash.c:2277,1
    - Dst: fmt_ident
      Src: /src/git/builtin/stash.c:2279,1
    - Dst: commit_tree_extended
      Src: /src/git/builtin/stash.c:2283,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2285,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2285,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/stash.c:2287,1
    - Dst: parse_stash_revision
      Src: /src/git/builtin/stash.c:2297,1
    - Dst: repo_get_oid_with_flags
      Src: /src/git/builtin/stash.c:2298,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2301,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2301,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/stash.c:2305,1
    - Dst: check_stash_topology
      Src: /src/git/builtin/stash.c:2306,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2307,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2307,1
    - Dst: commit_list_append
      Src: /src/git/builtin/stash.c:2311,1
    - Dst: refs_for_each_reflog_ent_reverse
      Src: /src/git/builtin/stash.c:2321,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/stash.c:2321,1
    - Dst: commit_list_reverse
      Src: /src/git/builtin/stash.c:2333,1
    - Dst: commit_list_append
      Src: /src/git/builtin/stash.c:2340,1
    - Dst: commit_list_append
      Src: /src/git/builtin/stash.c:2341,1
    - Dst: write_commit_with_parents
      Src: /src/git/builtin/stash.c:2342,1
    - Dst: commit_list_free
      Src: /src/git/builtin/stash.c:2343,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/stash.c:2346,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/stash.c:2349,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/stash.c:2349,1
    - Dst: puts
      Src: /src/git/builtin/stash.c:2352,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/stash.c:2352,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stash.c:2354,1
    - Dst: commit_list_free
      Src: /src/git/builtin/stash.c:2355,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - r
    - ref
    - argc
    - argv
    argTypes:
    - struct repository*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2259
    functionDepth: 21
    functionLinenumber: 2259
    functionLinenumberEnd: 2358
    functionName: do_export_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - repo_get_oid_with_flags
    - fmt_ident
    - commit_tree_extended
    - get_main_ref_store
    - error
    - commit_list_reverse
    - strbuf_release
    - parse_stash_revision
    - lookup_commit_reference
    - puts
    - oid_to_hex
    - commit_list_append
    - prepare_fallback_ident
    - check_stash_topology
    - _
    - write_commit_with_parents
    - commit_list_free
    - refs_for_each_reflog_ent_reverse
    - refs_update_ref
    linkageType: ''
    returnType: int
    signature: "int do_export_stash(struct repository *r,\n\t\t\t   const char *ref,\n\t\t\t
      \  int argc,\n\t\t\t   const char **argv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/stash.c:2374,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:2375,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/stash.c:2377,1
    - Dst: N_
      Src: /src/git/builtin/stash.c:2378,1
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:2379,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:2382,1
    - Dst: error
      Src: /src/git/builtin/stash.c:2390,1
    - Dst: _
      Src: /src/git/builtin/stash.c:2390,1
    - Dst: do_export_stash
      Src: /src/git/builtin/stash.c:2392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2366
    functionDepth: 22
    functionLinenumber: 2366
    functionLinenumberEnd: 2393
    functionName: export_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 1
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - OPT_STRING
    - do_export_stash
    - OPT_CMDMODE
    - _
    - N_
    linkageType: ''
    returnType: int
    signature: "int export_stash(int argc,\n\t\t\tconst char **argv,\n\t\t\tconst
      char *prefix,\n\t\t\tstruct repository *repo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/git/builtin/stash.c:2400,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2405,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2406,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2407,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2408,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2409,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2410,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2411,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2412,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2413,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2414,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2415,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/stash.c:2416,1
    - Dst: OPT_SUBCOMMAND_F
      Src: /src/git/builtin/stash.c:2417,1
    - Dst: OPT_END
      Src: /src/git/builtin/stash.c:2418,1
    - Dst: repo_config
      Src: /src/git/builtin/stash.c:2423,1
    - Dst: parse_options
      Src: /src/git/builtin/stash.c:2425,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/stash.c:2430,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/stash.c:2433,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/stash.c:2434,1
    - Dst: fn
      Src: /src/git/builtin/stash.c:2438,1
    - Dst: push_stash_unassumed
      Src: /src/git/builtin/stash.c:2440,1
    - Dst: strvec_push
      Src: /src/git/builtin/stash.c:2443,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/stash.c:2444,1
    - Dst: DUP_ARRAY
      Src: /src/git/builtin/stash.c:2450,1
    - Dst: push_stash
      Src: /src/git/builtin/stash.c:2452,1
    - Dst: strvec_clear
      Src: /src/git/builtin/stash.c:2454,1
    - Dst: free
      Src: /src/git/builtin/stash.c:2455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2395
    functionDepth: 26
    functionLinenumber: 2395
    functionLinenumberEnd: 2457
    functionName: cmd_stash
    functionSourceFile: /src/git/builtin/stash.c
    functionUses: 0
    functionsReached:
    - push_stash_unassumed
    - strvec_push
    - parse_options
    - OPT_END
    - fn
    - repo_get_index_file
    - strvec_pushv
    - strbuf_addf
    - OPT_SUBCOMMAND_F
    - prepare_repo_settings
    - strvec_clear
    - OPT_SUBCOMMAND
    - free
    - getpid
    - push_stash
    - DUP_ARRAY
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_stash(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/git/builtin/mailsplit.c:22,1
    - Dst: isdigit
      Src: /src/git/builtin/mailsplit.c:34,1
    - Dst: isdigit
      Src: /src/git/builtin/mailsplit.c:35,1
    - Dst: isdigit
      Src: /src/git/builtin/mailsplit.c:36,1
    - Dst: isdigit
      Src: /src/git/builtin/mailsplit.c:37,1
    - Dst: isdigit
      Src: /src/git/builtin/mailsplit.c:38,1
    - Dst: strtol
      Src: /src/git/builtin/mailsplit.c:42,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 47
    functionName: is_from_line
    functionSourceFile: /src/git/builtin/mailsplit.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strtol
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_from_line(const char *line, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/mailsplit.c:55,1
    - Dst: strspn
      Src: /src/git/builtin/mailsplit.c:61,1
    - Dst: starts_with
      Src: /src/git/builtin/mailsplit.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: is_gtfrom
    functionSourceFile: /src/git/builtin/mailsplit.c
    functionUses: 0
    functionsReached:
    - strspn
    - strlen
    - starts_with
    linkageType: ''
    returnType: int
    signature: int is_gtfrom(const struct strbuf *buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_from_line
      Src: /src/git/builtin/mailsplit.c:75,1
    - Dst: fprintf
      Src: /src/git/builtin/mailsplit.c:78,1
    - Dst: exit
      Src: /src/git/builtin/mailsplit.c:79,1
    - Dst: xopen
      Src: /src/git/builtin/mailsplit.c:81,1
    - Dst: xfdopen
      Src: /src/git/builtin/mailsplit.c:82,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/mailsplit.c:90,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/mailsplit.c:91,1
    - Dst: is_gtfrom
      Src: /src/git/builtin/mailsplit.c:94,1
    - Dst: strbuf_remove
      Src: /src/git/builtin/mailsplit.c:95,1
    - Dst: fwrite
      Src: /src/git/builtin/mailsplit.c:97,1
    - Dst: die_errno
      Src: /src/git/builtin/mailsplit.c:98,1
    - Dst: strbuf_getwholeline
      Src: /src/git/builtin/mailsplit.c:100,1
    - Dst: feof
      Src: /src/git/builtin/mailsplit.c:101,1
    - Dst: die_errno
      Src: /src/git/builtin/mailsplit.c:105,1
    - Dst: is_from_line
      Src: /src/git/builtin/mailsplit.c:107,1
    - Dst: fclose
      Src: /src/git/builtin/mailsplit.c:110,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 3
    argNames:
    - mbox
    - name
    - allow_bare
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 112
    functionName: split_one
    functionSourceFile: /src/git/builtin/mailsplit.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - xopen
    - fclose
    - strbuf_remove
    - is_gtfrom
    - is_from_line
    - feof
    - fwrite
    - exit
    - strbuf_setlen
    - die_errno
    - strbuf_addch
    - xfdopen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int split_one(FILE *mbox, const char *name, int allow_bare)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/mailsplit.c:124,1
    - Dst: xstrfmt
      Src: /src/git/builtin/mailsplit.c:125,1
    - Dst: opendir
      Src: /src/git/builtin/mailsplit.c:126,1
    - Dst: error_errno
      Src: /src/git/builtin/mailsplit.c:129,1
    - Dst: readdir
      Src: /src/git/builtin/mailsplit.c:133,1
    - Dst: free
      Src: /src/git/builtin/mailsplit.c:136,1
    - Dst: xstrfmt
      Src: /src/git/builtin/mailsplit.c:137,1
    - Dst: string_list_insert
      Src: /src/git/builtin/mailsplit.c:138,1
    - Dst: closedir
      Src: /src/git/builtin/mailsplit.c:141,1
    - Dst: free
      Src: /src/git/builtin/mailsplit.c:147,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - list
    - path
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 149
    functionName: populate_maildir_list
    functionSourceFile: /src/git/builtin/mailsplit.c
    functionUses: 0
    functionsReached:
    - error_errno
    - string_list_insert
    - xstrfmt
    - opendir
    - free
    - closedir
    - readdir
    linkageType: ''
    returnType: int
    signature: int populate_maildir_list(struct string_list *list, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/git/builtin/mailsplit.c:154,1
    - Dst: isdigit
      Src: /src/git/builtin/mailsplit.c:154,1
    - Dst: strtol
      Src: /src/git/builtin/mailsplit.c:156,1
    - Dst: strtol
      Src: /src/git/builtin/mailsplit.c:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 170
    functionName: maildir_filename_cmp
    functionSourceFile: /src/git/builtin/mailsplit.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strtol
    linkageType: ''
    returnType: int
    signature: int maildir_filename_cmp(const char *a, const char *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: populate_maildir_list
      Src: /src/git/builtin/mailsplit.c:182,1
    - Dst: free
      Src: /src/git/builtin/mailsplit.c:188,1
    - Dst: xstrfmt
      Src: /src/git/builtin/mailsplit.c:189,1
    - Dst: fopen
      Src: /src/git/builtin/mailsplit.c:191,1
    - Dst: error_errno
      Src: /src/git/builtin/mailsplit.c:193,1
    - Dst: strbuf_getwholeline
      Src: /src/git/builtin/mailsplit.c:197,1
    - Dst: error_errno
      Src: /src/git/builtin/mailsplit.c:198,1
    - Dst: xstrfmt
      Src: /src/git/builtin/mailsplit.c:202,1
    - Dst: split_one
      Src: /src/git/builtin/mailsplit.c:203,1
    - Dst: free
      Src: /src/git/builtin/mailsplit.c:204,1
    - Dst: fclose
      Src: /src/git/builtin/mailsplit.c:206,1
    - Dst: fclose
      Src: /src/git/builtin/mailsplit.c:213,1
    - Dst: free
      Src: /src/git/builtin/mailsplit.c:214,1
    - Dst: string_list_clear
      Src: /src/git/builtin/mailsplit.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - maildir
    - dir
    - nr_prec
    - skip
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 172
    functionDepth: 6
    functionLinenumber: 172
    functionLinenumberEnd: 217
    functionName: split_maildir
    functionSourceFile: /src/git/builtin/mailsplit.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - error_errno
    - fclose
    - string_list_clear
    - xstrfmt
    - fopen
    - free
    - split_one
    - populate_maildir_list
    linkageType: ''
    returnType: int
    signature: "int split_maildir(const char *maildir, const char *dir,\n\tint nr_prec,
      int skip)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/mailsplit.c:225,1
    - Dst: fopen
      Src: /src/git/builtin/mailsplit.c:225,1
    - Dst: isatty
      Src: /src/git/builtin/mailsplit.c:228,1
    - Dst: fileno
      Src: /src/git/builtin/mailsplit.c:228,1
    - Dst: warning
      Src: /src/git/builtin/mailsplit.c:229,1
    - Dst: _
      Src: /src/git/builtin/mailsplit.c:229,1
    - Dst: error_errno
      Src: /src/git/builtin/mailsplit.c:232,1
    - Dst: fgetc
      Src: /src/git/builtin/mailsplit.c:237,1
    - Dst: fclose
      Src: /src/git/builtin/mailsplit.c:243,1
    - Dst: error
      Src: /src/git/builtin/mailsplit.c:244,1
    - Dst: _
      Src: /src/git/builtin/mailsplit.c:244,1
    - Dst: isspace
      Src: /src/git/builtin/mailsplit.c:248,1
    - Dst: ungetc
      Src: /src/git/builtin/mailsplit.c:249,1
    - Dst: strbuf_getwholeline
      Src: /src/git/builtin/mailsplit.c:251,1
    - Dst: error
      Src: /src/git/builtin/mailsplit.c:254,1
    - Dst: xstrfmt
      Src: /src/git/builtin/mailsplit.c:261,1
    - Dst: split_one
      Src: /src/git/builtin/mailsplit.c:262,1
    - Dst: free
      Src: /src/git/builtin/mailsplit.c:263,1
    - Dst: fclose
      Src: /src/git/builtin/mailsplit.c:267,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - file
    - dir
    - allow_bare
    - nr_prec
    - skip
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 219
    functionDepth: 5
    functionLinenumber: 219
    functionLinenumberEnd: 272
    functionName: split_mbox
    functionSourceFile: /src/git/builtin/mailsplit.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - error
    - isspace
    - strbuf_getwholeline
    - fileno
    - xstrfmt
    - fopen
    - free
    - fgetc
    - warning
    - strcmp
    - split_one
    - ungetc
    - isatty
    - _
    linkageType: ''
    returnType: int
    signature: "int split_mbox(const char *file, const char *dir, int allow_bare,\n\t\t
      \     int nr_prec, int skip)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_NON_EMPTY_PREFIX
      Src: /src/git/builtin/mailsplit.c:285,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/mailsplit.c:287,1
    - Dst: strtol
      Src: /src/git/builtin/mailsplit.c:296,1
    - Dst: usage
      Src: /src/git/builtin/mailsplit.c:298,1
    - Dst: strtol
      Src: /src/git/builtin/mailsplit.c:301,1
    - Dst: strcmp
      Src: /src/git/builtin/mailsplit.c:304,1
    - Dst: strcmp
      Src: /src/git/builtin/mailsplit.c:308,1
    - Dst: die
      Src: /src/git/builtin/mailsplit.c:314,1
    - Dst: usage
      Src: /src/git/builtin/mailsplit.c:332,1
    - Dst: split_mbox
      Src: /src/git/builtin/mailsplit.c:346,1
    - Dst: error
      Src: /src/git/builtin/mailsplit.c:348,1
    - Dst: stat
      Src: /src/git/builtin/mailsplit.c:356,1
    - Dst: error_errno
      Src: /src/git/builtin/mailsplit.c:357,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/mailsplit.c:361,1
    - Dst: split_maildir
      Src: /src/git/builtin/mailsplit.c:362,1
    - Dst: split_mbox
      Src: /src/git/builtin/mailsplit.c:364,1
    - Dst: error
      Src: /src/git/builtin/mailsplit.c:367,1
    - Dst: printf
      Src: /src/git/builtin/mailsplit.c:374,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 79
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 274
    functionDepth: 7
    functionLinenumber: 274
    functionLinenumberEnd: 377
    functionName: cmd_mailsplit
    functionSourceFile: /src/git/builtin/mailsplit.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - S_ISDIR
    - BUG_ON_NON_EMPTY_PREFIX
    - die
    - show_usage_if_asked
    - stat
    - split_maildir
    - usage
    - strcmp
    - strtol
    - printf
    - split_mbox
    linkageType: ''
    returnType: int
    signature: "int cmd_mailsplit(int argc,\n\t\t  const char **argv,\n\t\t  const
      char *prefix,\n\t\t  struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: action_name
    functionSourceFile: /src/git/builtin/revert.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *action_name(const struct replay_opts *opts)
  - 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: revert_or_cherry_pick_usage
    functionSourceFile: /src/git/builtin/revert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * const *revert_or_cherry_pick_usage(struct replay_opts *opts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/revert.c:59,1
    - Dst: strcmp
      Src: /src/git/builtin/revert.c:61,1
    - Dst: strcmp
      Src: /src/git/builtin/revert.c:63,1
    - Dst: strcmp
      Src: /src/git/builtin/revert.c:65,1
    - Dst: error
      Src: /src/git/builtin/revert.c:68,1
    - Dst: _
      Src: /src/git/builtin/revert.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: parse_opt_empty
    functionSourceFile: /src/git/builtin/revert.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_opt_empty(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/git/builtin/revert.c:84,1
    - Dst: error
      Src: /src/git/builtin/revert.c:86,1
    - Dst: _
      Src: /src/git/builtin/revert.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: option_parse_m
    functionSourceFile: /src/git/builtin/revert.c
    functionUses: 0
    functionsReached:
    - error
    - strtol
    - _
    linkageType: ''
    returnType: int
    signature: "int option_parse_m(const struct option *opt,\n\t\t\t  const char *arg,
      int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/builtin/revert.c:98,1
    - Dst: va_arg
      Src: /src/git/builtin/revert.c:99,1
    - Dst: va_arg
      Src: /src/git/builtin/revert.c:100,1
    - Dst: va_end
      Src: /src/git/builtin/revert.c:103,1
    - Dst: die
      Src: /src/git/builtin/revert.c:106,1
    - Dst: _
      Src: /src/git/builtin/revert.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - me
    - base_opt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: verify_opt_compatible
    functionSourceFile: /src/git/builtin/revert.c
    functionUses: 0
    functionsReached:
    - die
    - va_end
    - va_arg
    - _
    - va_start
    linkageType: ''
    returnType: LAST_ARG_MUST_BE_NULL
    signature: LAST_ARG_MUST_BE_NULL verify_opt_compatible(const char *me, const char
      *base_opt, ...)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: revert_or_cherry_pick_usage
      Src: /src/git/builtin/revert.c:112,1
    - Dst: action_name
      Src: /src/git/builtin/revert.c:113,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/revert.c:121,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:121,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/revert.c:122,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:122,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/revert.c:123,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:123,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/revert.c:124,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:124,1
    - Dst: OPT_CLEANUP
      Src: /src/git/builtin/revert.c:125,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/revert.c:126,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:126,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/revert.c:127,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:127,1
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/builtin/revert.c:128,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/revert.c:129,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:129,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/revert.c:130,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:130,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:131,1
    - Dst: OPT_RERERE_AUTOUPDATE
      Src: /src/git/builtin/revert.c:132,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/revert.c:133,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:133,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:133,1
    - Dst: OPT_STRVEC
      Src: /src/git/builtin/revert.c:134,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:134,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:135,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:141,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:142,1
    - Dst: OPT_END
      Src: /src/git/builtin/revert.c:146,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/revert.c:152,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:152,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/revert.c:153,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:153,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/revert.c:154,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:154,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/revert.c:155,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:155,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/revert.c:156,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:156,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/revert.c:157,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:158,1
    - Dst: OPT_END
      Src: /src/git/builtin/revert.c:160,1
    - Dst: parse_options_concat
      Src: /src/git/builtin/revert.c:162,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/revert.c:165,1
    - Dst: N_
      Src: /src/git/builtin/revert.c:166,1
    - Dst: OPT_END
      Src: /src/git/builtin/revert.c:167,1
    - Dst: parse_options_concat
      Src: /src/git/builtin/revert.c:169,1
    - Dst: parse_options
      Src: /src/git/builtin/revert.c:172,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/revert.c:176,1
    - Dst: get_cleanup_mode
      Src: /src/git/builtin/revert.c:189,1
    - Dst: assert
      Src: /src/git/builtin/revert.c:203,1
    - Dst: verify_opt_compatible
      Src: /src/git/builtin/revert.c:207,1
    - Dst: verify_opt_compatible
      Src: /src/git/builtin/revert.c:228,1
    - Dst: xmalloc
      Src: /src/git/builtin/revert.c:239,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/revert.c:240,1
    - Dst: usage_with_options
      Src: /src/git/builtin/revert.c:244,1
    - Dst: strcmp
      Src: /src/git/builtin/revert.c:245,1
    - Dst: memset
      Src: /src/git/builtin/revert.c:247,1
    - Dst: setup_revisions
      Src: /src/git/builtin/revert.c:249,1
    - Dst: usage_with_options
      Src: /src/git/builtin/revert.c:253,1
    - Dst: free
      Src: /src/git/builtin/revert.c:257,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/revert.c:258,1
    - Dst: free
      Src: /src/git/builtin/revert.c:261,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/revert.c:262,1
    - Dst: free
      Src: /src/git/builtin/revert.c:264,1
    - Dst: sequencer_remove_state
      Src: /src/git/builtin/revert.c:267,1
    - Dst: remove_branch_state
      Src: /src/git/builtin/revert.c:269,1
    - Dst: sequencer_continue
      Src: /src/git/builtin/revert.c:273,1
    - Dst: sequencer_rollback
      Src: /src/git/builtin/revert.c:275,1
    - Dst: sequencer_skip
      Src: /src/git/builtin/revert.c:277,1
    - Dst: sequencer_pick_revisions
      Src: /src/git/builtin/revert.c:278,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - opts
    argTypes:
    - int
    - char**
    - char*
    - struct replay_opts*
    assertStmts:
    - condition: (cmd == 'a')
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/git/builtin/revert.c
    constantsTouched: []
    func_position:
      end: 279
      start: 109
    functionDepth: 25
    functionLinenumber: 109
    functionLinenumberEnd: 279
    functionName: run_sequencer
    functionSourceFile: /src/git/builtin/revert.c
    functionUses: 0
    functionsReached:
    - verify_opt_compatible
    - parse_options
    - remove_branch_state
    - sequencer_continue
    - OPT_BOOL
    - repo_init_revisions
    - xmalloc
    - strcmp
    - free
    - usage_with_options
    - OPT_END
    - xstrdup_or_null
    - sequencer_skip
    - sequencer_remove_state
    - OPT_NOOP_NOARG
    - OPT_CMDMODE
    - sequencer_rollback
    - sequencer_pick_revisions
    - memset
    - get_cleanup_mode
    - OPT_RERERE_AUTOUPDATE
    - OPT_STRVEC
    - N_
    - setup_revisions
    - OPT_CLEANUP
    - assert
    - OPT_CALLBACK_F
    - OPT_STRING
    - prepare_repo_settings
    - OPT_CALLBACK
    - parse_options_concat
    - revert_or_cherry_pick_usage
    - action_name
    linkageType: ''
    returnType: int
    signature: "int run_sequencer(int argc, const char **argv, const char *prefix,\n\t\t\t
      struct replay_opts *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sequencer_init_config
      Src: /src/git/builtin/revert.c:293,1
    - Dst: run_sequencer
      Src: /src/git/builtin/revert.c:294,1
    - Dst: die
      Src: /src/git/builtin/revert.c:296,1
    - Dst: _
      Src: /src/git/builtin/revert.c:296,1
    - Dst: replay_opts_release
      Src: /src/git/builtin/revert.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 26
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: cmd_revert
    functionSourceFile: /src/git/builtin/revert.c
    functionUses: 0
    functionsReached:
    - die
    - replay_opts_release
    - run_sequencer
    - _
    - sequencer_init_config
    linkageType: ''
    returnType: int
    signature: "int cmd_revert(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sequencer_init_config
      Src: /src/git/builtin/revert.c:313,1
    - Dst: run_sequencer
      Src: /src/git/builtin/revert.c:314,1
    - Dst: die
      Src: /src/git/builtin/revert.c:316,1
    - Dst: _
      Src: /src/git/builtin/revert.c:316,1
    - Dst: replay_opts_release
      Src: /src/git/builtin/revert.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 301
    functionDepth: 26
    functionLinenumber: 301
    functionLinenumberEnd: 319
    functionName: cmd_cherry_pick
    functionSourceFile: /src/git/builtin/revert.c
    functionUses: 0
    functionsReached:
    - die
    - replay_opts_release
    - run_sequencer
    - _
    - sequencer_init_config
    linkageType: ''
    returnType: int
    signature: 'int cmd_cherry_pick(int argc,

      const char **argv,

      const char *prefix,

      struct repository *repo UNUSED)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink_or_warn
      Src: /src/git/builtin/notes.c:130,1
    - Dst: free
      Src: /src/git/builtin/notes.c:131,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:133,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:136,1
    - Dst: free
      Src: /src/git/builtin/notes.c:137,1
    - Dst: free
      Src: /src/git/builtin/notes.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct note_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: free_note_data
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - unlink_or_warn
    - free
    linkageType: ''
    returnType: void
    signature: void free_note_data(struct note_data *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/notes.c:147,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:147,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - object_oid
    - note_oid
    - note_path
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: list_each_note
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - printf
    linkageType: ''
    returnType: int
    signature: "int list_each_note(const struct object_id *object_oid,\n\t\t\t  const
      struct object_id *note_oid,\n\t\t\t  char *note_path UNUSED,\n\t\t\t  void *cb_data
      UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/builtin/notes.c:155,1
    - Dst: write_or_die
      Src: /src/git/builtin/notes.c:158,1
    - Dst: free
      Src: /src/git/builtin/notes.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - oid
    argTypes:
    - int
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 12
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: copy_obj_to_fd
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - odb_read_object
    - write_or_die
    - free
    linkageType: ''
    returnType: void
    signature: void copy_obj_to_fd(int fd, const struct object_id *oid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/notes.c:170,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:171,1
    - Dst: start_command
      Src: /src/git/builtin/notes.c:176,1
    - Dst: die
      Src: /src/git/builtin/notes.c:177,1
    - Dst: _
      Src: /src/git/builtin/notes.c:177,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:178,1
    - Dst: strbuf_read
      Src: /src/git/builtin/notes.c:180,1
    - Dst: die_errno
      Src: /src/git/builtin/notes.c:181,1
    - Dst: _
      Src: /src/git/builtin/notes.c:181,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/builtin/notes.c:182,1
    - Dst: write_or_die
      Src: /src/git/builtin/notes.c:183,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:185,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:186,1
    - Dst: finish_command
      Src: /src/git/builtin/notes.c:188,1
    - Dst: die
      Src: /src/git/builtin/notes.c:189,1
    - Dst: _
      Src: /src/git/builtin/notes.c:189,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - fd
    - object
    argTypes:
    - int
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 163
    functionDepth: 7
    functionLinenumber: 163
    functionLinenumberEnd: 191
    functionName: write_commented_object
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - strbuf_add_commented_lines
    - oid_to_hex
    - die
    - strbuf_read
    - strbuf_release
    - finish_command
    - strvec_pushl
    - die_errno
    - _
    - start_command
    linkageType: ''
    returnType: void
    signature: void write_commented_object(int fd, const struct object_id *object)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/builtin/notes.c:201,1
    - Dst: xopen
      Src: /src/git/builtin/notes.c:202,1
    - Dst: write_or_die
      Src: /src/git/builtin/notes.c:205,1
    - Dst: copy_obj_to_fd
      Src: /src/git/builtin/notes.c:207,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/notes.c:209,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/builtin/notes.c:210,1
    - Dst: strlen
      Src: /src/git/builtin/notes.c:210,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/builtin/notes.c:211,1
    - Dst: _
      Src: /src/git/builtin/notes.c:211,1
    - Dst: strlen
      Src: /src/git/builtin/notes.c:211,1
    - Dst: _
      Src: /src/git/builtin/notes.c:211,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/builtin/notes.c:213,1
    - Dst: strlen
      Src: /src/git/builtin/notes.c:213,1
    - Dst: write_or_die
      Src: /src/git/builtin/notes.c:214,1
    - Dst: write_commented_object
      Src: /src/git/builtin/notes.c:216,1
    - Dst: close
      Src: /src/git/builtin/notes.c:218,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:219,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/notes.c:220,1
    - Dst: launch_editor
      Src: /src/git/builtin/notes.c:222,1
    - Dst: die
      Src: /src/git/builtin/notes.c:223,1
    - Dst: _
      Src: /src/git/builtin/notes.c:223,1
    - Dst: strbuf_stripspace
      Src: /src/git/builtin/notes.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - object
    - d
    - old_note
    argTypes:
    - struct object_id*
    - struct note_data*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 193
    functionDepth: 13
    functionLinenumber: 193
    functionLinenumberEnd: 228
    functionName: prepare_note_data
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - xopen
    - repo_git_path
    - write_or_die
    - strbuf_add_commented_lines
    - write_commented_object
    - strbuf_release
    - die
    - strbuf_reset
    - strbuf_stripspace
    - copy_obj_to_fd
    - strbuf_addch
    - launch_editor
    - strlen
    - _
    - close
    linkageType: ''
    returnType: void
    signature: "void prepare_note_data(const struct object_id *object, struct note_data
      *d,\n\t\tconst struct object_id *old_note)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_write_object
      Src: /src/git/builtin/notes.c:232,1
    - Dst: die_message
      Src: /src/git/builtin/notes.c:234,1
    - Dst: _
      Src: /src/git/builtin/notes.c:234,1
    - Dst: die_message
      Src: /src/git/builtin/notes.c:237,1
    - Dst: _
      Src: /src/git/builtin/notes.c:237,1
    - Dst: exit
      Src: /src/git/builtin/notes.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - oid
    argTypes:
    - struct note_data*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 241
    functionName: write_note_data
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - die_message
    - exit
    - odb_write_object
    - _
    linkageType: ''
    returnType: void
    signature: void write_note_data(struct note_data *d, struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/notes.c:249,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/notes.c:250,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/notes.c:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: append_separator
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - strlen
    - strbuf_addf
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void append_separator(struct strbuf *message)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: append_separator
      Src: /src/git/builtin/notes.c:262,1
    - Dst: strbuf_add
      Src: /src/git/builtin/notes.c:263,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/notes.c:264,1
    - Dst: strbuf_stripspace
      Src: /src/git/builtin/notes.c:268,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/notes.c:269,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct note_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 255
    functionDepth: 5
    functionLinenumber: 255
    functionLinenumberEnd: 272
    functionName: concat_messages
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - strbuf_stripspace
    - strbuf_release
    - append_separator
    - strbuf_reset
    - strbuf_addbuf
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void concat_messages(struct note_data *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/builtin/notes.c:277,1
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/notes.c:279,1
    - Dst: strbuf_init
      Src: /src/git/builtin/notes.c:281,1
    - Dst: strlen
      Src: /src/git/builtin/notes.c:281,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/notes.c:282,1
    - Dst: ALLOC_GROW_BY
      Src: /src/git/builtin/notes.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 287
    functionName: parse_msg_arg
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW_BY
    - xmalloc
    - strlen
    - strbuf_addstr
    - BUG_ON_OPT_NEG
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: int parse_msg_arg(const struct option *opt, const char *arg, int unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/builtin/notes.c:292,1
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/notes.c:294,1
    - Dst: strbuf_init
      Src: /src/git/builtin/notes.c:296,1
    - Dst: strcmp
      Src: /src/git/builtin/notes.c:297,1
    - Dst: strbuf_read
      Src: /src/git/builtin/notes.c:298,1
    - Dst: die_errno
      Src: /src/git/builtin/notes.c:299,1
    - Dst: _
      Src: /src/git/builtin/notes.c:299,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/notes.c:300,1
    - Dst: die_errno
      Src: /src/git/builtin/notes.c:301,1
    - Dst: _
      Src: /src/git/builtin/notes.c:301,1
    - Dst: ALLOC_GROW_BY
      Src: /src/git/builtin/notes.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 289
    functionDepth: 5
    functionLinenumber: 289
    functionLinenumberEnd: 307
    functionName: parse_file_arg
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - strbuf_read
    - strbuf_read_file
    - die_errno
    - ALLOC_GROW_BY
    - xmalloc
    - strcmp
    - BUG_ON_OPT_NEG
    - strbuf_init
    - _
    linkageType: ''
    returnType: int
    signature: int parse_file_arg(const struct option *opt, const char *arg, int unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/builtin/notes.c:312,1
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/notes.c:318,1
    - Dst: strbuf_init
      Src: /src/git/builtin/notes.c:320,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:321,1
    - Dst: die
      Src: /src/git/builtin/notes.c:322,1
    - Dst: _
      Src: /src/git/builtin/notes.c:322,1
    - Dst: odb_read_object
      Src: /src/git/builtin/notes.c:323,1
    - Dst: die
      Src: /src/git/builtin/notes.c:324,1
    - Dst: _
      Src: /src/git/builtin/notes.c:324,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:326,1
    - Dst: free
      Src: /src/git/builtin/notes.c:327,1
    - Dst: free
      Src: /src/git/builtin/notes.c:328,1
    - Dst: die
      Src: /src/git/builtin/notes.c:329,1
    - Dst: _
      Src: /src/git/builtin/notes.c:329,1
    - Dst: strbuf_add
      Src: /src/git/builtin/notes.c:332,1
    - Dst: free
      Src: /src/git/builtin/notes.c:333,1
    - Dst: ALLOC_GROW_BY
      Src: /src/git/builtin/notes.c:336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 309
    functionDepth: 12
    functionLinenumber: 309
    functionLinenumberEnd: 340
    functionName: parse_reuse_arg
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - repo_get_oid
    - ALLOC_GROW_BY
    - xmalloc
    - _
    - free
    - odb_read_object
    - BUG_ON_OPT_NEG
    - strbuf_init
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int parse_reuse_arg(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/notes.c:345,1
    - Dst: parse_reuse_arg
      Src: /src/git/builtin/notes.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 13
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: parse_reedit_arg
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - parse_reuse_arg
    linkageType: ''
    returnType: int
    signature: int parse_reedit_arg(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 358
    functionName: parse_separator_arg
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int parse_separator_arg(const struct option *opt, const char *arg,\n\t\t\t
      \      int unset)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: init_copy_notes_for_rewrite
      Src: /src/git/builtin/notes.c:369,1
    - Dst: init_notes
      Src: /src/git/builtin/notes.c:373,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/notes.c:377,1
    - Dst: string_list_split_in_place_f
      Src: /src/git/builtin/notes.c:382,1
    - Dst: die
      Src: /src/git/builtin/notes.c:385,1
    - Dst: _
      Src: /src/git/builtin/notes.c:385,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:386,1
    - Dst: die
      Src: /src/git/builtin/notes.c:387,1
    - Dst: _
      Src: /src/git/builtin/notes.c:387,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:389,1
    - Dst: die
      Src: /src/git/builtin/notes.c:390,1
    - Dst: _
      Src: /src/git/builtin/notes.c:390,1
    - Dst: copy_note_for_rewrite
      Src: /src/git/builtin/notes.c:394,1
    - Dst: copy_note
      Src: /src/git/builtin/notes.c:396,1
    - Dst: error
      Src: /src/git/builtin/notes.c:400,1
    - Dst: _
      Src: /src/git/builtin/notes.c:400,1
    - Dst: string_list_clear
      Src: /src/git/builtin/notes.c:405,1
    - Dst: commit_notes
      Src: /src/git/builtin/notes.c:409,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:410,1
    - Dst: finish_copy_notes_for_rewrite
      Src: /src/git/builtin/notes.c:412,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:414,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - force
    - rewrite_cmd
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 360
    functionDepth: 20
    functionLinenumber: 360
    functionLinenumberEnd: 416
    functionName: notes_copy_from_stdin
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - error
    - string_list_clear
    - strbuf_release
    - string_list_split_in_place_f
    - die
    - strbuf_getline_lf
    - commit_notes
    - finish_copy_notes_for_rewrite
    - free_notes
    - repo_get_oid
    - init_notes
    - _
    - copy_note_for_rewrite
    - copy_note
    - init_copy_notes_for_rewrite
    linkageType: ''
    returnType: int
    signature: int notes_copy_from_stdin(int force, const char *rewrite_cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_notes
      Src: /src/git/builtin/notes.c:423,1
    - Dst: starts_with
      Src: /src/git/builtin/notes.c:427,1
    - Dst: die
      Src: /src/git/builtin/notes.c:432,1
    - Dst: _
      Src: /src/git/builtin/notes.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - subcommand
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 418
    functionDepth: 6
    functionLinenumber: 418
    functionLinenumberEnd: 435
    functionName: init_notes_check
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - die
    - init_notes
    - starts_with
    - _
    linkageType: ''
    returnType: struct notes_tree
    signature: "struct notes_tree *init_notes_check(const char *subcommand,\n\t\t\t\t\t
      \  int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/notes.c:445,1
    - Dst: parse_options
      Src: /src/git/builtin/notes.c:449,1
    - Dst: error
      Src: /src/git/builtin/notes.c:453,1
    - Dst: _
      Src: /src/git/builtin/notes.c:453,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:454,1
    - Dst: init_notes_check
      Src: /src/git/builtin/notes.c:457,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:459,1
    - Dst: die
      Src: /src/git/builtin/notes.c:460,1
    - Dst: _
      Src: /src/git/builtin/notes.c:460,1
    - Dst: get_note
      Src: /src/git/builtin/notes.c:461,1
    - Dst: puts
      Src: /src/git/builtin/notes.c:463,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:463,1
    - Dst: error
      Src: /src/git/builtin/notes.c:466,1
    - Dst: _
      Src: /src/git/builtin/notes.c:466,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:467,1
    - Dst: for_each_note
      Src: /src/git/builtin/notes.c:469,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:471,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 437
    functionDepth: 13
    functionLinenumber: 437
    functionLinenumberEnd: 473
    functionName: list
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 129
    functionsReached:
    - error
    - get_note
    - parse_options
    - OPT_END
    - die
    - oid_to_hex
    - for_each_note
    - puts
    - free_notes
    - repo_get_oid
    - _
    - init_notes_check
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int list(int argc, const char **argv, const char *prefix,\n\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/notes.c:489,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:489,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:490,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/notes.c:492,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:492,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:493,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/notes.c:495,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:495,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:496,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/notes.c:498,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:499,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/notes.c:500,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:500,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:501,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/notes.c:503,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:504,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/notes.c:505,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:505,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/notes.c:506,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:507,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:508,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/notes.c:510,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:511,1
    - Dst: OPT_END
      Src: /src/git/builtin/notes.c:512,1
    - Dst: parse_options
      Src: /src/git/builtin/notes.c:515,1
    - Dst: error
      Src: /src/git/builtin/notes.c:519,1
    - Dst: _
      Src: /src/git/builtin/notes.c:519,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:520,1
    - Dst: concat_messages
      Src: /src/git/builtin/notes.c:524,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:528,1
    - Dst: die
      Src: /src/git/builtin/notes.c:529,1
    - Dst: _
      Src: /src/git/builtin/notes.c:529,1
    - Dst: init_notes_check
      Src: /src/git/builtin/notes.c:531,1
    - Dst: get_note
      Src: /src/git/builtin/notes.c:532,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:536,1
    - Dst: free_note_data
      Src: /src/git/builtin/notes.c:538,1
    - Dst: error
      Src: /src/git/builtin/notes.c:539,1
    - Dst: _
      Src: /src/git/builtin/notes.c:539,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:542,1
    - Dst: append_edit
      Src: /src/git/builtin/notes.c:552,1
    - Dst: fprintf
      Src: /src/git/builtin/notes.c:554,1
    - Dst: _
      Src: /src/git/builtin/notes.c:554,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:555,1
    - Dst: prepare_note_data
      Src: /src/git/builtin/notes.c:558,1
    - Dst: write_note_data
      Src: /src/git/builtin/notes.c:560,1
    - Dst: add_note
      Src: /src/git/builtin/notes.c:561,1
    - Dst: BUG
      Src: /src/git/builtin/notes.c:562,1
    - Dst: commit_notes
      Src: /src/git/builtin/notes.c:563,1
    - Dst: fprintf
      Src: /src/git/builtin/notes.c:566,1
    - Dst: _
      Src: /src/git/builtin/notes.c:566,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:567,1
    - Dst: remove_note
      Src: /src/git/builtin/notes.c:568,1
    - Dst: commit_notes
      Src: /src/git/builtin/notes.c:569,1
    - Dst: free_note_data
      Src: /src/git/builtin/notes.c:573,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:574,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 478
    functionDepth: 17
    functionLinenumber: 478
    functionLinenumberEnd: 576
    functionName: add
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 362
    functionsReached:
    - parse_options
    - free_notes
    - repo_get_oid
    - concat_messages
    - OPT_BOOL
    - usage_with_options
    - error
    - OPT_END
    - die
    - OPT__FORCE
    - prepare_note_data
    - add_note
    - oid_to_hex
    - commit_notes
    - remove_note
    - _
    - N_
    - get_note
    - OPT_CALLBACK_F
    - free_note_data
    - write_note_data
    - append_edit
    - init_notes_check
    - BUG
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int add(int argc, const char **argv, const char *prefix,\n\t       struct
      repository *repo)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPT__FORCE
      Src: /src/git/builtin/notes.c:588,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:588,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/notes.c:589,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:589,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/notes.c:590,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:590,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:591,1
    - Dst: OPT_END
      Src: /src/git/builtin/notes.c:593,1
    - Dst: parse_options
      Src: /src/git/builtin/notes.c:596,1
    - Dst: error
      Src: /src/git/builtin/notes.c:601,1
    - Dst: _
      Src: /src/git/builtin/notes.c:601,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:602,1
    - Dst: notes_copy_from_stdin
      Src: /src/git/builtin/notes.c:604,1
    - Dst: error
      Src: /src/git/builtin/notes.c:609,1
    - Dst: _
      Src: /src/git/builtin/notes.c:609,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:610,1
    - Dst: error
      Src: /src/git/builtin/notes.c:613,1
    - Dst: _
      Src: /src/git/builtin/notes.c:613,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:614,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:617,1
    - Dst: die
      Src: /src/git/builtin/notes.c:618,1
    - Dst: _
      Src: /src/git/builtin/notes.c:618,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:622,1
    - Dst: die
      Src: /src/git/builtin/notes.c:623,1
    - Dst: _
      Src: /src/git/builtin/notes.c:623,1
    - Dst: init_notes_check
      Src: /src/git/builtin/notes.c:625,1
    - Dst: get_note
      Src: /src/git/builtin/notes.c:626,1
    - Dst: error
      Src: /src/git/builtin/notes.c:630,1
    - Dst: _
      Src: /src/git/builtin/notes.c:630,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:633,1
    - Dst: fprintf
      Src: /src/git/builtin/notes.c:636,1
    - Dst: _
      Src: /src/git/builtin/notes.c:636,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:637,1
    - Dst: get_note
      Src: /src/git/builtin/notes.c:640,1
    - Dst: error
      Src: /src/git/builtin/notes.c:642,1
    - Dst: _
      Src: /src/git/builtin/notes.c:642,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:643,1
    - Dst: add_note
      Src: /src/git/builtin/notes.c:647,1
    - Dst: BUG
      Src: /src/git/builtin/notes.c:648,1
    - Dst: commit_notes
      Src: /src/git/builtin/notes.c:649,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:652,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 578
    functionDepth: 21
    functionLinenumber: 578
    functionLinenumberEnd: 654
    functionName: copy
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 53
    functionsReached:
    - parse_options
    - free_notes
    - repo_get_oid
    - OPT_BOOL
    - usage_with_options
    - error
    - OPT_END
    - die
    - OPT__FORCE
    - add_note
    - oid_to_hex
    - commit_notes
    - _
    - N_
    - get_note
    - OPT_STRING
    - notes_copy_from_stdin
    - init_notes_check
    - BUG
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int copy(int argc, const char **argv, const char *prefix,\n\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/notes.c:668,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:668,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:669,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/notes.c:671,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:671,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:672,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/notes.c:674,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:674,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:675,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/notes.c:677,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:677,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:678,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/notes.c:680,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:681,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/notes.c:682,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:683,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/notes.c:684,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:685,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:686,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/notes.c:688,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:689,1
    - Dst: OPT_END
      Src: /src/git/builtin/notes.c:690,1
    - Dst: strcmp
      Src: /src/git/builtin/notes.c:692,1
    - Dst: parse_options
      Src: /src/git/builtin/notes.c:695,1
    - Dst: error
      Src: /src/git/builtin/notes.c:699,1
    - Dst: _
      Src: /src/git/builtin/notes.c:699,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:700,1
    - Dst: concat_messages
      Src: /src/git/builtin/notes.c:704,1
    - Dst: fprintf
      Src: /src/git/builtin/notes.c:706,1
    - Dst: _
      Src: /src/git/builtin/notes.c:706,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:714,1
    - Dst: die
      Src: /src/git/builtin/notes.c:715,1
    - Dst: _
      Src: /src/git/builtin/notes.c:715,1
    - Dst: init_notes_check
      Src: /src/git/builtin/notes.c:717,1
    - Dst: get_note
      Src: /src/git/builtin/notes.c:718,1
    - Dst: prepare_note_data
      Src: /src/git/builtin/notes.c:720,1
    - Dst: odb_read_object
      Src: /src/git/builtin/notes.c:727,1
    - Dst: die
      Src: /src/git/builtin/notes.c:730,1
    - Dst: _
      Src: /src/git/builtin/notes.c:730,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:730,1
    - Dst: strbuf_add
      Src: /src/git/builtin/notes.c:732,1
    - Dst: append_separator
      Src: /src/git/builtin/notes.c:734,1
    - Dst: strbuf_insert
      Src: /src/git/builtin/notes.c:735,1
    - Dst: free
      Src: /src/git/builtin/notes.c:737,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:738,1
    - Dst: write_note_data
      Src: /src/git/builtin/notes.c:742,1
    - Dst: add_note
      Src: /src/git/builtin/notes.c:743,1
    - Dst: BUG
      Src: /src/git/builtin/notes.c:744,1
    - Dst: xstrfmt
      Src: /src/git/builtin/notes.c:745,1
    - Dst: fprintf
      Src: /src/git/builtin/notes.c:747,1
    - Dst: _
      Src: /src/git/builtin/notes.c:747,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:748,1
    - Dst: remove_note
      Src: /src/git/builtin/notes.c:749,1
    - Dst: xstrfmt
      Src: /src/git/builtin/notes.c:750,1
    - Dst: commit_notes
      Src: /src/git/builtin/notes.c:752,1
    - Dst: free
      Src: /src/git/builtin/notes.c:754,1
    - Dst: free_note_data
      Src: /src/git/builtin/notes.c:755,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:756,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 656
    functionDepth: 17
    functionLinenumber: 656
    functionLinenumberEnd: 758
    functionName: append_edit
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 1
    functionsReached:
    - parse_options
    - free_notes
    - repo_get_oid
    - concat_messages
    - OPT_BOOL
    - strcmp
    - free
    - usage_with_options
    - error
    - strbuf_release
    - OPT_END
    - die
    - append_separator
    - prepare_note_data
    - add_note
    - odb_read_object
    - oid_to_hex
    - commit_notes
    - remove_note
    - _
    - N_
    - strbuf_add
    - get_note
    - xstrfmt
    - OPT_CALLBACK_F
    - strbuf_insert
    - free_note_data
    - write_note_data
    - init_notes_check
    - BUG
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int append_edit(int argc, const char **argv, const char *prefix,\n\t\t
      \      struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/notes.c:769,1
    - Dst: parse_options
      Src: /src/git/builtin/notes.c:772,1
    - Dst: error
      Src: /src/git/builtin/notes.c:776,1
    - Dst: _
      Src: /src/git/builtin/notes.c:776,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:777,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:782,1
    - Dst: die
      Src: /src/git/builtin/notes.c:783,1
    - Dst: _
      Src: /src/git/builtin/notes.c:783,1
    - Dst: init_notes_check
      Src: /src/git/builtin/notes.c:785,1
    - Dst: get_note
      Src: /src/git/builtin/notes.c:786,1
    - Dst: error
      Src: /src/git/builtin/notes.c:789,1
    - Dst: _
      Src: /src/git/builtin/notes.c:789,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:790,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/notes.c:792,1
    - Dst: execv_git_cmd
      Src: /src/git/builtin/notes.c:793,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 760
    functionDepth: 13
    functionLinenumber: 760
    functionLinenumberEnd: 797
    functionName: show
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 8
    functionsReached:
    - error
    - get_note
    - parse_options
    - OPT_END
    - die
    - oid_to_hex
    - free_notes
    - repo_get_oid
    - execv_git_cmd
    - _
    - init_notes_check
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int show(int argc, const char **argv, const char *prefix,\n\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_delete_ref
      Src: /src/git/builtin/notes.c:808,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/notes.c:808,1
    - Dst: error
      Src: /src/git/builtin/notes.c:809,1
    - Dst: _
      Src: /src/git/builtin/notes.c:809,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/notes.c:810,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/notes.c:810,1
    - Dst: error
      Src: /src/git/builtin/notes.c:811,1
    - Dst: _
      Src: /src/git/builtin/notes.c:811,1
    - Dst: notes_merge_abort
      Src: /src/git/builtin/notes.c:812,1
    - Dst: error
      Src: /src/git/builtin/notes.c:813,1
    - Dst: _
      Src: /src/git/builtin/notes.c:813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct notes_merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 799
    functionDepth: 9
    functionLinenumber: 799
    functionLinenumberEnd: 815
    functionName: merge_abort
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 1
    functionsReached:
    - error
    - refs_delete_ref
    - _
    - notes_merge_abort
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int merge_abort(struct notes_merge_options *o)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:832,1
    - Dst: die
      Src: /src/git/builtin/notes.c:833,1
    - Dst: _
      Src: /src/git/builtin/notes.c:833,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/notes.c:834,1
    - Dst: die
      Src: /src/git/builtin/notes.c:835,1
    - Dst: _
      Src: /src/git/builtin/notes.c:835,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/notes.c:836,1
    - Dst: die
      Src: /src/git/builtin/notes.c:837,1
    - Dst: _
      Src: /src/git/builtin/notes.c:837,1
    - Dst: oidcpy
      Src: /src/git/builtin/notes.c:840,1
    - Dst: oidclr
      Src: /src/git/builtin/notes.c:842,1
    - Dst: init_notes
      Src: /src/git/builtin/notes.c:844,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/notes.c:847,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/notes.c:847,1
    - Dst: die
      Src: /src/git/builtin/notes.c:850,1
    - Dst: _
      Src: /src/git/builtin/notes.c:850,1
    - Dst: notes_merge_commit
      Src: /src/git/builtin/notes.c:852,1
    - Dst: die
      Src: /src/git/builtin/notes.c:853,1
    - Dst: _
      Src: /src/git/builtin/notes.c:853,1
    - Dst: memset
      Src: /src/git/builtin/notes.c:856,1
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/notes.c:857,1
    - Dst: strbuf_trim
      Src: /src/git/builtin/notes.c:859,1
    - Dst: strbuf_insertstr
      Src: /src/git/builtin/notes.c:860,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/notes.c:861,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/notes.c:861,1
    - Dst: is_null_oid
      Src: /src/git/builtin/notes.c:863,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:866,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:867,1
    - Dst: merge_abort
      Src: /src/git/builtin/notes.c:868,1
    - Dst: free
      Src: /src/git/builtin/notes.c:869,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct notes_merge_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 817
    functionDepth: 20
    functionLinenumber: 817
    functionLinenumberEnd: 871
    functionName: merge_commit
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 2
    functionsReached:
    - oidcpy
    - free_notes
    - repo_get_oid
    - is_null_oid
    - oidclr
    - free
    - get_main_ref_store
    - strbuf_release
    - die
    - lookup_commit_reference
    - repo_parse_commit
    - refs_resolve_refdup
    - merge_abort
    - memset
    - strbuf_trim
    - _
    - notes_merge_commit
    - repo_format_commit_message
    - strbuf_insertstr
    - init_notes
    - refs_update_ref
    linkageType: ''
    returnType: int
    signature: int merge_commit(struct notes_merge_options *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string
      Src: /src/git/builtin/notes.c:878,1
    - Dst: parse_notes_merge_strategy
      Src: /src/git/builtin/notes.c:880,1
    - Dst: git_die_config
      Src: /src/git/builtin/notes.c:881,1
    - Dst: _
      Src: /src/git/builtin/notes.c:881,1
    - Dst: free
      Src: /src/git/builtin/notes.c:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - key
    - strategy
    argTypes:
    - char*
    - enum notes_merge_strategy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 873
    functionDepth: 20
    functionLinenumber: 873
    functionLinenumberEnd: 885
    functionName: git_config_get_notes_strategy
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - git_die_config
    - repo_config_get_string
    - free
    - parse_notes_merge_strategy
    - _
    linkageType: ''
    returnType: int
    signature: "int git_config_get_notes_strategy(const char *key,\n\t\t\t\t\t enum
      notes_merge_strategy *strategy)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OPT_GROUP
      Src: /src/git/builtin/notes.c:898,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:898,1
    - Dst: OPT__VERBOSITY
      Src: /src/git/builtin/notes.c:899,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/notes.c:900,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:900,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/notes.c:901,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:901,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:902,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/notes.c:904,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:904,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/notes.c:905,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:906,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/notes.c:908,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:908,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/notes.c:909,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:910,1
    - Dst: OPT_END
      Src: /src/git/builtin/notes.c:912,1
    - Dst: parse_options
      Src: /src/git/builtin/notes.c:916,1
    - Dst: error
      Src: /src/git/builtin/notes.c:922,1
    - Dst: _
      Src: /src/git/builtin/notes.c:922,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:923,1
    - Dst: error
      Src: /src/git/builtin/notes.c:927,1
    - Dst: _
      Src: /src/git/builtin/notes.c:927,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:928,1
    - Dst: error
      Src: /src/git/builtin/notes.c:930,1
    - Dst: _
      Src: /src/git/builtin/notes.c:930,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:931,1
    - Dst: init_notes_merge_options
      Src: /src/git/builtin/notes.c:934,1
    - Dst: merge_abort
      Src: /src/git/builtin/notes.c:938,1
    - Dst: merge_commit
      Src: /src/git/builtin/notes.c:940,1
    - Dst: default_notes_ref
      Src: /src/git/builtin/notes.c:942,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/notes.c:944,1
    - Dst: expand_loose_notes_ref
      Src: /src/git/builtin/notes.c:945,1
    - Dst: init_notes_check
      Src: /src/git/builtin/notes.c:948,1
    - Dst: parse_notes_merge_strategy
      Src: /src/git/builtin/notes.c:951,1
    - Dst: error
      Src: /src/git/builtin/notes.c:952,1
    - Dst: _
      Src: /src/git/builtin/notes.c:952,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:953,1
    - Dst: skip_prefix
      Src: /src/git/builtin/notes.c:959,1
    - Dst: BUG
      Src: /src/git/builtin/notes.c:960,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/notes.c:963,1
    - Dst: git_config_get_notes_strategy
      Src: /src/git/builtin/notes.c:965,1
    - Dst: git_config_get_notes_strategy
      Src: /src/git/builtin/notes.c:966,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:968,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/notes.c:971,1
    - Dst: strbuf_add
      Src: /src/git/builtin/notes.c:973,1
    - Dst: notes_merge
      Src: /src/git/builtin/notes.c:975,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/notes.c:979,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/notes.c:979,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/notes.c:988,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/notes.c:988,1
    - Dst: get_worktrees
      Src: /src/git/builtin/notes.c:992,1
    - Dst: find_shared_symref
      Src: /src/git/builtin/notes.c:993,1
    - Dst: die
      Src: /src/git/builtin/notes.c:996,1
    - Dst: _
      Src: /src/git/builtin/notes.c:996,1
    - Dst: free_worktrees
      Src: /src/git/builtin/notes.c:998,1
    - Dst: refs_update_symref
      Src: /src/git/builtin/notes.c:999,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/notes.c:999,1
    - Dst: die
      Src: /src/git/builtin/notes.c:1000,1
    - Dst: _
      Src: /src/git/builtin/notes.c:1000,1
    - Dst: repo_git_path
      Src: /src/git/builtin/notes.c:1003,1
    - Dst: fprintf
      Src: /src/git/builtin/notes.c:1004,1
    - Dst: _
      Src: /src/git/builtin/notes.c:1004,1
    - Dst: free
      Src: /src/git/builtin/notes.c:1008,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:1011,1
    - Dst: free
      Src: /src/git/builtin/notes.c:1012,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:1013,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:1014,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 887
    functionDepth: 21
    functionLinenumber: 887
    functionLinenumberEnd: 1016
    functionName: merge
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 59
    functionsReached:
    - parse_options
    - repo_git_path
    - default_notes_ref
    - free_notes
    - refs_update_symref
    - strbuf_addf
    - free
    - parse_notes_merge_strategy
    - usage_with_options
    - error
    - merge_commit
    - strbuf_release
    - OPT_END
    - get_main_ref_store
    - get_worktrees
    - die
    - OPT_GROUP
    - refs_update_ref
    - strbuf_addstr
    - merge_abort
    - OPT_SET_INT_F
    - init_notes_merge_options
    - _
    - N_
    - skip_prefix
    - strbuf_add
    - free_worktrees
    - expand_loose_notes_ref
    - find_shared_symref
    - git_config_get_notes_strategy
    - OPT_STRING
    - notes_merge
    - OPT__VERBOSITY
    - init_notes_check
    - BUG
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int merge(int argc, const char **argv, const char *prefix,\n\t\t struct
      repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/notes.c:1024,1
    - Dst: error
      Src: /src/git/builtin/notes.c:1025,1
    - Dst: _
      Src: /src/git/builtin/notes.c:1025,1
    - Dst: remove_note
      Src: /src/git/builtin/notes.c:1026,1
    - Dst: fprintf
      Src: /src/git/builtin/notes.c:1028,1
    - Dst: _
      Src: /src/git/builtin/notes.c:1028,1
    - Dst: fprintf
      Src: /src/git/builtin/notes.c:1030,1
    - Dst: _
      Src: /src/git/builtin/notes.c:1030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - t
    - name
    - flag
    argTypes:
    - struct notes_tree*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1020
    functionDepth: 4
    functionLinenumber: 1020
    functionLinenumberEnd: 1032
    functionName: remove_one_note
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - error
    - repo_get_oid
    - remove_note
    - _
    - fprintf
    linkageType: ''
    returnType: int
    signature: int remove_one_note(struct notes_tree *t, const char *name, unsigned
      flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BIT
      Src: /src/git/builtin/notes.c:1040,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:1041,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/notes.c:1043,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:1044,1
    - Dst: OPT_END
      Src: /src/git/builtin/notes.c:1045,1
    - Dst: parse_options
      Src: /src/git/builtin/notes.c:1050,1
    - Dst: init_notes_check
      Src: /src/git/builtin/notes.c:1053,1
    - Dst: remove_one_note
      Src: /src/git/builtin/notes.c:1056,1
    - Dst: remove_one_note
      Src: /src/git/builtin/notes.c:1059,1
    - Dst: strbuf_getwholeline
      Src: /src/git/builtin/notes.c:1065,1
    - Dst: strbuf_rtrim
      Src: /src/git/builtin/notes.c:1066,1
    - Dst: remove_one_note
      Src: /src/git/builtin/notes.c:1067,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:1069,1
    - Dst: commit_notes
      Src: /src/git/builtin/notes.c:1072,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:1074,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1034
    functionDepth: 17
    functionLinenumber: 1034
    functionLinenumberEnd: 1076
    functionName: remove_cmd
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - parse_options
    - OPT_END
    - strbuf_release
    - commit_notes
    - free_notes
    - OPT_BOOL
    - OPT_BIT
    - remove_one_note
    - N_
    - init_notes_check
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: "int remove_cmd(int argc, const char **argv, const char *prefix,\n\t\t
      \     struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT__DRY_RUN
      Src: /src/git/builtin/notes.c:1084,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:1084,1
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/notes.c:1085,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:1085,1
    - Dst: OPT_END
      Src: /src/git/builtin/notes.c:1086,1
    - Dst: parse_options
      Src: /src/git/builtin/notes.c:1089,1
    - Dst: error
      Src: /src/git/builtin/notes.c:1093,1
    - Dst: _
      Src: /src/git/builtin/notes.c:1093,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:1094,1
    - Dst: init_notes_check
      Src: /src/git/builtin/notes.c:1097,1
    - Dst: prune_notes
      Src: /src/git/builtin/notes.c:1099,1
    - Dst: commit_notes
      Src: /src/git/builtin/notes.c:1102,1
    - Dst: free_notes
      Src: /src/git/builtin/notes.c:1104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1078
    functionDepth: 17
    functionLinenumber: 1078
    functionLinenumberEnd: 1106
    functionName: prune
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 1
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - OPT__DRY_RUN
    - commit_notes
    - free_notes
    - prune_notes
    - _
    - N_
    - init_notes_check
    - OPT__VERBOSE
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int prune(int argc, const char **argv, const char *prefix,\n\t\t struct
      repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/notes.c:1111,1
    - Dst: parse_options
      Src: /src/git/builtin/notes.c:1113,1
    - Dst: error
      Src: /src/git/builtin/notes.c:1117,1
    - Dst: _
      Src: /src/git/builtin/notes.c:1117,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:1118,1
    - Dst: default_notes_ref
      Src: /src/git/builtin/notes.c:1121,1
    - Dst: puts
      Src: /src/git/builtin/notes.c:1122,1
    - Dst: free
      Src: /src/git/builtin/notes.c:1123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1108
    functionDepth: 13
    functionLinenumber: 1108
    functionLinenumberEnd: 1125
    functionName: get_ref
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 1
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - default_notes_ref
    - puts
    - _
    - free
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int get_ref(int argc, const char **argv, const char *prefix,\n\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/notes.c:1135,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:1135,1
    - Dst: N_
      Src: /src/git/builtin/notes.c:1136,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/notes.c:1137,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/notes.c:1138,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/notes.c:1139,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/notes.c:1140,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/notes.c:1141,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/notes.c:1142,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/notes.c:1143,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/notes.c:1144,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/notes.c:1145,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/notes.c:1146,1
    - Dst: OPT_END
      Src: /src/git/builtin/notes.c:1147,1
    - Dst: repo_config
      Src: /src/git/builtin/notes.c:1150,1
    - Dst: parse_options
      Src: /src/git/builtin/notes.c:1151,1
    - Dst: error
      Src: /src/git/builtin/notes.c:1155,1
    - Dst: _
      Src: /src/git/builtin/notes.c:1155,1
    - Dst: usage_with_options
      Src: /src/git/builtin/notes.c:1156,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/notes.c:1163,1
    - Dst: expand_notes_ref
      Src: /src/git/builtin/notes.c:1164,1
    - Dst: setenv
      Src: /src/git/builtin/notes.c:1165,1
    - Dst: strbuf_release
      Src: /src/git/builtin/notes.c:1166,1
    - Dst: fn
      Src: /src/git/builtin/notes.c:1169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1127
    functionDepth: 19
    functionLinenumber: 1127
    functionLinenumberEnd: 1170
    functionName: cmd_notes
    functionSourceFile: /src/git/builtin/notes.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - strbuf_release
    - fn
    - OPT_STRING
    - setenv
    - expand_notes_ref
    - OPT_SUBCOMMAND
    - strbuf_addstr
    - _
    - N_
    - repo_config
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_notes(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/merge-recursive.c:17,1
    - Dst: xstrdup
      Src: /src/git/builtin/merge-recursive.c:18,1
    - Dst: xsnprintf
      Src: /src/git/builtin/merge-recursive.c:19,1
    - Dst: getenv
      Src: /src/git/builtin/merge-recursive.c:20,1
    - Dst: xstrdup
      Src: /src/git/builtin/merge-recursive.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - branch
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: better_branch_name
    functionSourceFile: /src/git/builtin/merge-recursive.c
    functionUses: 0
    functionsReached:
    - getenv
    - strlen
    - xsnprintf
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *better_branch_name(const char *branch)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: init_basic_merge_options
      Src: /src/git/builtin/merge-recursive.c:37,1
    - Dst: ends_with
      Src: /src/git/builtin/merge-recursive.c:38,1
    - Dst: strcmp
      Src: /src/git/builtin/merge-recursive.c:41,1
    - Dst: strcmp
      Src: /src/git/builtin/merge-recursive.c:42,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/merge-recursive.c:44,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/merge-recursive.c:45,1
    - Dst: usagef
      Src: /src/git/builtin/merge-recursive.c:49,1
    - Dst: starts_with
      Src: /src/git/builtin/merge-recursive.c:54,1
    - Dst: parse_merge_opt
      Src: /src/git/builtin/merge-recursive.c:57,1
    - Dst: die
      Src: /src/git/builtin/merge-recursive.c:58,1
    - Dst: _
      Src: /src/git/builtin/merge-recursive.c:58,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/merge-recursive.c:61,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/merge-recursive.c:62,1
    - Dst: die
      Src: /src/git/builtin/merge-recursive.c:63,1
    - Dst: _
      Src: /src/git/builtin/merge-recursive.c:63,1
    - Dst: warning
      Src: /src/git/builtin/merge-recursive.c:66,1
    - Dst: Q_
      Src: /src/git/builtin/merge-recursive.c:66,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/merge-recursive.c:70,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/merge-recursive.c:71,1
    - Dst: die
      Src: /src/git/builtin/merge-recursive.c:74,1
    - Dst: _
      Src: /src/git/builtin/merge-recursive.c:74,1
    - Dst: repo_read_index_unmerged
      Src: /src/git/builtin/merge-recursive.c:76,1
    - Dst: die_resolve_conflict
      Src: /src/git/builtin/merge-recursive.c:77,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/merge-recursive.c:82,1
    - Dst: die
      Src: /src/git/builtin/merge-recursive.c:83,1
    - Dst: _
      Src: /src/git/builtin/merge-recursive.c:83,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/merge-recursive.c:84,1
    - Dst: die
      Src: /src/git/builtin/merge-recursive.c:85,1
    - Dst: _
      Src: /src/git/builtin/merge-recursive.c:85,1
    - Dst: better_branch_name
      Src: /src/git/builtin/merge-recursive.c:87,1
    - Dst: better_branch_name
      Src: /src/git/builtin/merge-recursive.c:88,1
    - Dst: printf
      Src: /src/git/builtin/merge-recursive.c:91,1
    - Dst: _
      Src: /src/git/builtin/merge-recursive.c:91,1
    - Dst: merge_ort_generic
      Src: /src/git/builtin/merge-recursive.c:93,1
    - Dst: free
      Src: /src/git/builtin/merge-recursive.c:95,1
    - Dst: free
      Src: /src/git/builtin/merge-recursive.c:96,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 24
    functionDepth: 23
    functionLinenumber: 24
    functionLinenumberEnd: 101
    functionName: cmd_merge_recursive
    functionSourceFile: /src/git/builtin/merge-recursive.c
    functionUses: 0
    functionsReached:
    - die_resolve_conflict
    - repo_get_oid
    - strbuf_addf
    - merge_ort_generic
    - strcmp
    - free
    - parse_merge_opt
    - printf
    - die
    - init_basic_merge_options
    - Q_
    - ARRAY_SIZE
    - repo_read_index_unmerged
    - _
    - warning
    - usagef
    - show_usage_if_asked
    - starts_with
    - ends_with
    - better_branch_name
    linkageType: ''
    returnType: int
    signature: "int cmd_merge_recursive(int argc,\n\t\t\tconst char **argv,\n\t\t\tconst
      char *prefix UNUSED,\n\t\t\tstruct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/builtin/help.c:121,1
    - Dst: strchr
      Src: /src/git/builtin/help.c:122,1
    - Dst: string_list_append
      Src: /src/git/builtin/help.c:132,1
    - Dst: strbuf_add
      Src: /src/git/builtin/help.c:136,1
    - Dst: string_list_append
      Src: /src/git/builtin/help.c:137,1
    - Dst: strbuf_release
      Src: /src/git/builtin/help.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - keys_uniq
    - var
    argTypes:
    - struct string_list*
    - struct string_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 139
    functionName: set_config_vars
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - string_list_append
    - strbuf_release
    - strbuf_add
    - strchr
    linkageType: ''
    returnType: void
    signature: void set_config_vars(struct string_list *keys_uniq, struct string_list_item
      *var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/builtin/help.c:145,1
    - Dst: set_config_vars
      Src: /src/git/builtin/help.c:151,1
    - Dst: strbuf_add
      Src: /src/git/builtin/help.c:155,1
    - Dst: string_list_append
      Src: /src/git/builtin/help.c:156,1
    - Dst: strbuf_release
      Src: /src/git/builtin/help.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - keys_uniq
    - var
    argTypes:
    - struct string_list*
    - struct string_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: set_config_sections
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strchr
    - string_list_append
    - set_config_vars
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void set_config_sections(struct string_list *keys_uniq, struct string_list_item
      *var)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/help.c:186,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/help.c:187,1
    - Dst: strcasecmp
      Src: /src/git/builtin/help.c:188,1
    - Dst: struct slot_expansion*::fn
      Src: /src/git/builtin/help.c:189,1
    - Dst: string_list_append
      Src: /src/git/builtin/help.c:196,1
    - Dst: strbuf_release
      Src: /src/git/builtin/help.c:199,1
    - Dst: BUG
      Src: /src/git/builtin/help.c:203,1
    - Dst: string_list_append
      Src: /src/git/builtin/help.c:209,1
    - Dst: set_config_sections
      Src: /src/git/builtin/help.c:212,1
    - Dst: set_config_vars
      Src: /src/git/builtin/help.c:215,1
    - Dst: BUG
      Src: /src/git/builtin/help.c:218,1
    - Dst: string_list_sort_u
      Src: /src/git/builtin/help.c:222,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/help.c:223,1
    - Dst: puts
      Src: /src/git/builtin/help.c:224,1
    - Dst: string_list_clear
      Src: /src/git/builtin/help.c:225,1
    - Dst: string_list_clear
      Src: /src/git/builtin/help.c:226,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum show_config_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 227
    functionName: list_config_help
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - strbuf_release
    - string_list_clear
    - strbuf_reset
    - set_config_sections
    - string_list_sort_u
    - strcasecmp
    - strbuf_addf
    - puts
    - string_list_append
    - set_config_vars
    - BUG
    - struct slot_expansion*::fn
    linkageType: ''
    returnType: void
    signature: void list_config_help(enum show_config_type type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/help.c:231,1
    - Dst: strcmp
      Src: /src/git/builtin/help.c:233,1
    - Dst: strcmp
      Src: /src/git/builtin/help.c:235,1
    - Dst: strcmp
      Src: /src/git/builtin/help.c:235,1
    - Dst: die
      Src: /src/git/builtin/help.c:241,1
    - Dst: _
      Src: /src/git/builtin/help.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 242
    functionName: parse_help_format
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: enum help_format
    signature: enum help_format parse_help_format(const char *format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/builtin/help.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: get_man_viewer_info
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: char
    signature: char *get_man_viewer_info(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/help.c:263,1
    - Dst: start_command
      Src: /src/git/builtin/help.c:266,1
    - Dst: error
      Src: /src/git/builtin/help.c:267,1
    - Dst: _
      Src: /src/git/builtin/help.c:267,1
    - Dst: strbuf_read
      Src: /src/git/builtin/help.c:269,1
    - Dst: close
      Src: /src/git/builtin/help.c:270,1
    - Dst: finish_command
      Src: /src/git/builtin/help.c:276,1
    - Dst: starts_with
      Src: /src/git/builtin/help.c:278,1
    - Dst: strbuf_release
      Src: /src/git/builtin/help.c:279,1
    - Dst: error
      Src: /src/git/builtin/help.c:280,1
    - Dst: _
      Src: /src/git/builtin/help.c:280,1
    - Dst: strbuf_remove
      Src: /src/git/builtin/help.c:283,1
    - Dst: strlen
      Src: /src/git/builtin/help.c:283,1
    - Dst: atoi
      Src: /src/git/builtin/help.c:284,1
    - Dst: strbuf_release
      Src: /src/git/builtin/help.c:287,1
    - Dst: error
      Src: /src/git/builtin/help.c:288,1
    - Dst: _
      Src: /src/git/builtin/help.c:288,1
    - Dst: strbuf_release
      Src: /src/git/builtin/help.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 256
    functionDepth: 7
    functionLinenumber: 256
    functionLinenumberEnd: 294
    functionName: check_emacsclient_version
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - strbuf_read
    - atoi
    - finish_command
    - strbuf_remove
    - strvec_pushl
    - starts_with
    - strlen
    - _
    - close
    - start_command
    linkageType: ''
    returnType: int
    signature: int check_emacsclient_version(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_emacsclient_version
      Src: /src/git/builtin/help.c:298,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/help.c:304,1
    - Dst: execlp
      Src: /src/git/builtin/help.c:305,1
    - Dst: warning_errno
      Src: /src/git/builtin/help.c:306,1
    - Dst: _
      Src: /src/git/builtin/help.c:306,1
    - Dst: strbuf_release
      Src: /src/git/builtin/help.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - path
    - page
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 296
    functionDepth: 8
    functionLinenumber: 296
    functionLinenumberEnd: 309
    functionName: exec_woman_emacs
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - check_emacsclient_version
    - strbuf_addf
    - warning_errno
    - execlp
    - _
    linkageType: ''
    returnType: void
    signature: void exec_woman_emacs(const char *path, const char *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/builtin/help.c:313,1
    - Dst: strip_suffix
      Src: /src/git/builtin/help.c:321,1
    - Dst: xstrfmt
      Src: /src/git/builtin/help.c:322,1
    - Dst: basename
      Src: /src/git/builtin/help.c:323,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/help.c:326,1
    - Dst: execlp
      Src: /src/git/builtin/help.c:327,1
    - Dst: warning_errno
      Src: /src/git/builtin/help.c:328,1
    - Dst: _
      Src: /src/git/builtin/help.c:328,1
    - Dst: strbuf_release
      Src: /src/git/builtin/help.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - path
    - page
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 311
    functionDepth: 5
    functionLinenumber: 311
    functionLinenumberEnd: 331
    functionName: exec_man_konqueror
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strip_suffix
    - xstrfmt
    - warning_errno
    - strbuf_addf
    - basename
    - execlp
    - _
    - getenv
    linkageType: ''
    returnType: void
    signature: void exec_man_konqueror(const char *path, const char *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/git/builtin/help.c:337,1
    - Dst: warning_errno
      Src: /src/git/builtin/help.c:338,1
    - Dst: _
      Src: /src/git/builtin/help.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - path
    - page
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: exec_man_man
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - execlp
    - warning_errno
    - _
    linkageType: ''
    returnType: void
    signature: void exec_man_man(const char *path, const char *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/help.c:344,1
    - Dst: execl
      Src: /src/git/builtin/help.c:345,1
    - Dst: warning
      Src: /src/git/builtin/help.c:346,1
    - Dst: _
      Src: /src/git/builtin/help.c:346,1
    - Dst: strbuf_release
      Src: /src/git/builtin/help.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cmd
    - page
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: exec_man_cmd
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - execl
    - _
    - warning
    linkageType: ''
    returnType: void
    signature: void exec_man_cmd(const char *cmd, const char *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/builtin/help.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: add_man_viewer
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: void
    signature: void add_man_viewer(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/git/builtin/help.c:361,1
    - Dst: strncasecmp
      Src: /src/git/builtin/help.c:362,1
    - Dst: strncasecmp
      Src: /src/git/builtin/help.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: supported_man_viewer
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int supported_man_viewer(const char *name, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/builtin/help.c:371,1
    - Dst: xstrdup
      Src: /src/git/builtin/help.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - name
    - len
    - value
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 375
    functionName: do_add_man_viewer_info
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - FLEX_ALLOC_MEM
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void do_add_man_viewer_info(const char *name,\n\t\t\t\t   size_t len,\n\t\t\t\t
      \  const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supported_man_viewer
      Src: /src/git/builtin/help.c:381,1
    - Dst: do_add_man_viewer_info
      Src: /src/git/builtin/help.c:382,1
    - Dst: warning
      Src: /src/git/builtin/help.c:384,1
    - Dst: _
      Src: /src/git/builtin/help.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - len
    - value
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: add_man_viewer_path
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - do_add_man_viewer_info
    - warning
    - supported_man_viewer
    - _
    linkageType: ''
    returnType: int
    signature: "int add_man_viewer_path(const char *name,\n\t\t\t       size_t len,\n\t\t\t
      \      const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supported_man_viewer
      Src: /src/git/builtin/help.c:395,1
    - Dst: warning
      Src: /src/git/builtin/help.c:396,1
    - Dst: _
      Src: /src/git/builtin/help.c:396,1
    - Dst: do_add_man_viewer_info
      Src: /src/git/builtin/help.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - len
    - value
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: add_man_viewer_cmd
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - do_add_man_viewer_info
    - warning
    - supported_man_viewer
    - _
    linkageType: ''
    returnType: int
    signature: "int add_man_viewer_cmd(const char *name,\n\t\t\t      size_t len,\n\t\t\t
      \     const char *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_key
      Src: /src/git/builtin/help.c:410,1
    - Dst: strcmp
      Src: /src/git/builtin/help.c:413,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/help.c:415,1
    - Dst: add_man_viewer_path
      Src: /src/git/builtin/help.c:416,1
    - Dst: strcmp
      Src: /src/git/builtin/help.c:418,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/help.c:420,1
    - Dst: add_man_viewer_cmd
      Src: /src/git/builtin/help.c:421,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 425
    functionName: add_man_viewer_info
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 2
    functionsReached:
    - add_man_viewer_path
    - parse_config_key
    - strcmp
    - add_man_viewer_cmd
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: int add_man_viewer_info(const char *var, const char *value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/help.c:430,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/help.c:432,1
    - Dst: parse_help_format
      Src: /src/git/builtin/help.c:433,1
    - Dst: strcmp
      Src: /src/git/builtin/help.c:436,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/help.c:438,1
    - Dst: free
      Src: /src/git/builtin/help.c:439,1
    - Dst: xstrdup
      Src: /src/git/builtin/help.c:440,1
    - Dst: strcmp
      Src: /src/git/builtin/help.c:443,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/help.c:445,1
    - Dst: add_man_viewer
      Src: /src/git/builtin/help.c:446,1
    - Dst: starts_with
      Src: /src/git/builtin/help.c:449,1
    - Dst: add_man_viewer_info
      Src: /src/git/builtin/help.c:450,1
    - Dst: git_default_config
      Src: /src/git/builtin/help.c:452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 453
    functionName: git_help_config
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - add_man_viewer
    - starts_with
    - strcmp
    - git_default_config
    - parse_help_format
    - free
    - add_man_viewer_info
    - config_error_nonbool
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int git_help_config(const char *var, const char *value,\n\t\t\t   const
      struct config_context *ctx, void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_builtin
      Src: /src/git/builtin/help.c:459,1
    - Dst: load_command_list
      Src: /src/git/builtin/help.c:462,1
    - Dst: is_in_cmdlist
      Src: /src/git/builtin/help.c:463,1
    - Dst: is_in_cmdlist
      Src: /src/git/builtin/help.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 457
    functionDepth: 5
    functionLinenumber: 457
    functionLinenumberEnd: 465
    functionName: is_git_command
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - is_in_cmdlist
    - is_builtin
    - load_command_list
    linkageType: ''
    returnType: int
    signature: int is_git_command(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/help.c:471,1
    - Dst: is_git_command
      Src: /src/git/builtin/help.c:473,1
    - Dst: xstrfmt
      Src: /src/git/builtin/help.c:474,1
    - Dst: strcmp
      Src: /src/git/builtin/help.c:475,1
    - Dst: xstrdup
      Src: /src/git/builtin/help.c:476,1
    - Dst: xstrfmt
      Src: /src/git/builtin/help.c:478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - git_cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 467
    functionDepth: 6
    functionLinenumber: 467
    functionLinenumberEnd: 479
    functionName: cmd_to_page
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - starts_with
    - strcmp
    - is_git_command
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *cmd_to_page(const char *git_cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/builtin/help.c:484,1
    - Dst: system_path
      Src: /src/git/builtin/help.c:485,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/help.c:491,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/help.c:492,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/help.c:494,1
    - Dst: free
      Src: /src/git/builtin/help.c:496,1
    - Dst: setenv
      Src: /src/git/builtin/help.c:497,1
    - Dst: strbuf_release
      Src: /src/git/builtin/help.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 481
    functionDepth: 4
    functionLinenumber: 481
    functionLinenumberEnd: 500
    functionName: setup_man_path
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addch
    - setenv
    - strbuf_addstr
    - free
    - getenv
    - system_path
    linkageType: ''
    returnType: void
    signature: void setup_man_path(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_man_viewer_info
      Src: /src/git/builtin/help.c:504,1
    - Dst: strcasecmp
      Src: /src/git/builtin/help.c:506,1
    - Dst: exec_man_man
      Src: /src/git/builtin/help.c:507,1
    - Dst: strcasecmp
      Src: /src/git/builtin/help.c:508,1
    - Dst: exec_woman_emacs
      Src: /src/git/builtin/help.c:509,1
    - Dst: strcasecmp
      Src: /src/git/builtin/help.c:510,1
    - Dst: exec_man_konqueror
      Src: /src/git/builtin/help.c:511,1
    - Dst: exec_man_cmd
      Src: /src/git/builtin/help.c:513,1
    - Dst: warning
      Src: /src/git/builtin/help.c:515,1
    - Dst: _
      Src: /src/git/builtin/help.c:515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - name
    - page
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 9
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: exec_viewer
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - exec_man_konqueror
    - strcasecmp
    - exec_woman_emacs
    - _
    - get_man_viewer_info
    - exec_man_man
    - warning
    - exec_man_cmd
    linkageType: ''
    returnType: void
    signature: void exec_viewer(const char *name, const char *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/builtin/help.c:521,1
    - Dst: setup_man_path
      Src: /src/git/builtin/help.c:523,1
    - Dst: exec_viewer
      Src: /src/git/builtin/help.c:526,1
    - Dst: exec_viewer
      Src: /src/git/builtin/help.c:529,1
    - Dst: exec_viewer
      Src: /src/git/builtin/help.c:530,1
    - Dst: die
      Src: /src/git/builtin/help.c:531,1
    - Dst: _
      Src: /src/git/builtin/help.c:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - page
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 518
    functionDepth: 10
    functionLinenumber: 518
    functionLinenumberEnd: 532
    functionName: show_man_page
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - die
    - exec_viewer
    - _
    - setup_man_path
    - getenv
    linkageType: ''
    returnType: void
    signature: void show_man_page(const char *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/git/builtin/help.c:536,1
    - Dst: system_path
      Src: /src/git/builtin/help.c:536,1
    - Dst: execlp
      Src: /src/git/builtin/help.c:537,1
    - Dst: die
      Src: /src/git/builtin/help.c:538,1
    - Dst: _
      Src: /src/git/builtin/help.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - page
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 539
    functionName: show_info_page
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - die
    - setenv
    - execlp
    - _
    - system_path
    linkageType: ''
    returnType: void
    signature: void show_info_page(const char *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: system_path
      Src: /src/git/builtin/help.c:548,1
    - Dst: strstr
      Src: /src/git/builtin/help.c:553,1
    - Dst: stat
      Src: /src/git/builtin/help.c:554,1
    - Dst: mkpath
      Src: /src/git/builtin/help.c:554,1
    - Dst: S_ISREG
      Src: /src/git/builtin/help.c:555,1
    - Dst: die
      Src: /src/git/builtin/help.c:556,1
    - Dst: strbuf_init
      Src: /src/git/builtin/help.c:560,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/help.c:561,1
    - Dst: free
      Src: /src/git/builtin/help.c:562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - page_path
    - page
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 541
    functionDepth: 4
    functionLinenumber: 541
    functionLinenumberEnd: 563
    functionName: get_html_page_path
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - die
    - strstr
    - stat
    - strbuf_addf
    - free
    - mkpath
    - system_path
    - strbuf_init
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void get_html_page_path(struct strbuf *page_path, const char *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execl_git_cmd
      Src: /src/git/builtin/help.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: open_html
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - execl_git_cmd
    linkageType: ''
    returnType: void
    signature: void open_html(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_html_page_path
      Src: /src/git/builtin/help.c:574,1
    - Dst: open_html
      Src: /src/git/builtin/help.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - page
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 570
    functionDepth: 5
    functionLinenumber: 570
    functionLinenumberEnd: 577
    functionName: show_html_page
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - open_html
    - get_html_page_path
    linkageType: ''
    returnType: void
    signature: void show_html_page(const char *page)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_git_command
      Src: /src/git/builtin/help.c:583,1
    - Dst: xstrdup
      Src: /src/git/builtin/help.c:584,1
    - Dst: alias_lookup
      Src: /src/git/builtin/help.c:586,1
    - Dst: printf_ln
      Src: /src/git/builtin/help.c:600,1
    - Dst: _
      Src: /src/git/builtin/help.c:600,1
    - Dst: free
      Src: /src/git/builtin/help.c:601,1
    - Dst: exit
      Src: /src/git/builtin/help.c:602,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/help.c:611,1
    - Dst: _
      Src: /src/git/builtin/help.c:611,1
    - Dst: split_cmdline
      Src: /src/git/builtin/help.c:612,1
    - Dst: die
      Src: /src/git/builtin/help.c:614,1
    - Dst: _
      Src: /src/git/builtin/help.c:614,1
    - Dst: split_cmdline_strerror
      Src: /src/git/builtin/help.c:615,1
    - Dst: free
      Src: /src/git/builtin/help.c:616,1
    - Dst: help_unknown_cmd
      Src: /src/git/builtin/help.c:621,1
    - Dst: xstrdup
      Src: /src/git/builtin/help.c:623,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 579
    functionDepth: 18
    functionLinenumber: 579
    functionLinenumberEnd: 624
    functionName: check_git_cmd
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - fprintf_ln
    - die
    - help_unknown_cmd
    - exit
    - split_cmdline_strerror
    - alias_lookup
    - split_cmdline
    - _
    - free
    - printf_ln
    - is_git_command
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *check_git_cmd(const char *cmd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/help.c:643,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/help.c:646,1
    - Dst: _
      Src: /src/git/builtin/help.c:646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - opt_mode
    - fmt
    argTypes:
    - char*
    - enum help_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 626
    functionDepth: 11
    functionLinenumber: 626
    functionLinenumberEnd: 649
    functionName: no_help_format
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - usage_msg_optf
    - BUG
    - _
    linkageType: ''
    returnType: void
    signature: void no_help_format(const char *opt_mode, enum help_format fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: usage_msg_optf
      Src: /src/git/builtin/help.c:655,1
    - Dst: _
      Src: /src/git/builtin/help.c:655,1
    - Dst: no_help_format
      Src: /src/git/builtin/help.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - argc
    - opt_mode
    - fmt
    argTypes:
    - int
    - char*
    - enum help_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 651
    functionDepth: 12
    functionLinenumber: 651
    functionLinenumberEnd: 660
    functionName: opt_mode_usage
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - usage_msg_optf
    - no_help_format
    - _
    linkageType: ''
    returnType: void
    signature: "void opt_mode_usage(int argc, const char *opt_mode,\n\t\t\t   enum
      help_format fmt)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: parse_options
      Src: /src/git/builtin/help.c:672,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/help.c:679,1
    - Dst: _
      Src: /src/git/builtin/help.c:679,1
    - Dst: opt_mode_usage
      Src: /src/git/builtin/help.c:684,1
    - Dst: setup_pager
      Src: /src/git/builtin/help.c:686,1
    - Dst: list_all_cmds_help
      Src: /src/git/builtin/help.c:687,1
    - Dst: printf
      Src: /src/git/builtin/help.c:691,1
    - Dst: _
      Src: /src/git/builtin/help.c:691,1
    - Dst: _
      Src: /src/git/builtin/help.c:691,1
    - Dst: load_command_list
      Src: /src/git/builtin/help.c:692,1
    - Dst: list_commands
      Src: /src/git/builtin/help.c:693,1
    - Dst: printf
      Src: /src/git/builtin/help.c:694,1
    - Dst: _
      Src: /src/git/builtin/help.c:694,1
    - Dst: opt_mode_usage
      Src: /src/git/builtin/help.c:697,1
    - Dst: list_guides_help
      Src: /src/git/builtin/help.c:698,1
    - Dst: printf
      Src: /src/git/builtin/help.c:699,1
    - Dst: _
      Src: /src/git/builtin/help.c:699,1
    - Dst: opt_mode_usage
      Src: /src/git/builtin/help.c:702,1
    - Dst: list_config_help
      Src: /src/git/builtin/help.c:703,1
    - Dst: opt_mode_usage
      Src: /src/git/builtin/help.c:706,1
    - Dst: list_user_interfaces_help
      Src: /src/git/builtin/help.c:707,1
    - Dst: opt_mode_usage
      Src: /src/git/builtin/help.c:710,1
    - Dst: list_developer_interfaces_help
      Src: /src/git/builtin/help.c:711,1
    - Dst: opt_mode_usage
      Src: /src/git/builtin/help.c:714,1
    - Dst: list_config_help
      Src: /src/git/builtin/help.c:716,1
    - Dst: opt_mode_usage
      Src: /src/git/builtin/help.c:720,1
    - Dst: list_aliases
      Src: /src/git/builtin/help.c:721,1
    - Dst: printf
      Src: /src/git/builtin/help.c:723,1
    - Dst: string_list_clear
      Src: /src/git/builtin/help.c:725,1
    - Dst: opt_mode_usage
      Src: /src/git/builtin/help.c:729,1
    - Dst: setup_pager
      Src: /src/git/builtin/help.c:730,1
    - Dst: list_config_help
      Src: /src/git/builtin/help.c:731,1
    - Dst: printf
      Src: /src/git/builtin/help.c:732,1
    - Dst: _
      Src: /src/git/builtin/help.c:732,1
    - Dst: printf
      Src: /src/git/builtin/help.c:737,1
    - Dst: _
      Src: /src/git/builtin/help.c:737,1
    - Dst: _
      Src: /src/git/builtin/help.c:737,1
    - Dst: list_common_cmds_help
      Src: /src/git/builtin/help.c:738,1
    - Dst: printf
      Src: /src/git/builtin/help.c:739,1
    - Dst: _
      Src: /src/git/builtin/help.c:739,1
    - Dst: setup_git_directory_gently
      Src: /src/git/builtin/help.c:743,1
    - Dst: repo_config
      Src: /src/git/builtin/help.c:744,1
    - Dst: parse_help_format
      Src: /src/git/builtin/help.c:749,1
    - Dst: check_git_cmd
      Src: /src/git/builtin/help.c:751,1
    - Dst: cmd_to_page
      Src: /src/git/builtin/help.c:753,1
    - Dst: show_man_page
      Src: /src/git/builtin/help.c:757,1
    - Dst: show_info_page
      Src: /src/git/builtin/help.c:760,1
    - Dst: show_html_page
      Src: /src/git/builtin/help.c:763,1
    - Dst: free
      Src: /src/git/builtin/help.c:767,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 82
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 662
    functionDepth: 19
    functionLinenumber: 662
    functionLinenumberEnd: 769
    functionName: cmd_help
    functionSourceFile: /src/git/builtin/help.c
    functionUses: 0
    functionsReached:
    - show_man_page
    - list_config_help
    - parse_options
    - show_html_page
    - setup_git_directory_gently
    - opt_mode_usage
    - free
    - repo_config
    - printf
    - list_common_cmds_help
    - cmd_to_page
    - parse_help_format
    - setup_pager
    - string_list_clear
    - list_guides_help
    - check_git_cmd
    - _
    - list_all_cmds_help
    - show_info_page
    - usage_msg_opt
    - list_commands
    - list_user_interfaces_help
    - list_aliases
    - list_developer_interfaces_help
    - load_command_list
    linkageType: ''
    returnType: int
    signature: "int cmd_help(int argc,\n\t     const char **argv,\n\t     const char
      *prefix,\n\t     struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_options
      Src: /src/git/builtin/bundle.c:62,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/bundle.c:65,1
    - Dst: _
      Src: /src/git/builtin/bundle.c:65,1
    - Dst: prefix_filename_except_for_dash
      Src: /src/git/builtin/bundle.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - argc
    - argv
    - prefix
    - usagestr
    - options
    - bundle_file
    argTypes:
    - int
    - char**
    - char*
    - char*[]
    - struct option[]
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 13
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: parse_options_cmd_bundle
    functionSourceFile: /src/git/builtin/bundle.c
    functionUses: 0
    functionsReached:
    - prefix_filename_except_for_dash
    - usage_msg_opt
    - parse_options
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_options_cmd_bundle(int argc,\n\t\tconst char **argv,\n\t\tconst
      char* prefix,\n\t\tconst char * const usagestr[],\n\t\tconst struct option options[],\n\t\tchar
      **bundle_file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/bundle.c:76,1
    - Dst: N_
      Src: /src/git/builtin/bundle.c:77,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/bundle.c:79,1
    - Dst: N_
      Src: /src/git/builtin/bundle.c:80,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/bundle.c:82,1
    - Dst: N_
      Src: /src/git/builtin/bundle.c:83,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/bundle.c:85,1
    - Dst: N_
      Src: /src/git/builtin/bundle.c:86,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/bundle.c:88,1
    - Dst: N_
      Src: /src/git/builtin/bundle.c:89,1
    - Dst: OPT_END
      Src: /src/git/builtin/bundle.c:90,1
    - Dst: isatty
      Src: /src/git/builtin/bundle.c:94,1
    - Dst: strvec_push
      Src: /src/git/builtin/bundle.c:95,1
    - Dst: strvec_push
      Src: /src/git/builtin/bundle.c:96,1
    - Dst: parse_options_cmd_bundle
      Src: /src/git/builtin/bundle.c:98,1
    - Dst: die
      Src: /src/git/builtin/bundle.c:103,1
    - Dst: _
      Src: /src/git/builtin/bundle.c:103,1
    - Dst: create_bundle
      Src: /src/git/builtin/bundle.c:104,1
    - Dst: strvec_clear
      Src: /src/git/builtin/bundle.c:105,1
    - Dst: free
      Src: /src/git/builtin/bundle.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 70
    functionDepth: 14
    functionLinenumber: 70
    functionLinenumberEnd: 108
    functionName: cmd_bundle_create
    functionSourceFile: /src/git/builtin/bundle.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - OPT_END
    - die
    - parse_options_cmd_bundle
    - create_bundle
    - free
    - OPT_PASSTHRU_ARGV
    - strvec_clear
    - _
    - N_
    - isatty
    - OPT_INTEGER
    linkageType: ''
    returnType: int
    signature: "int cmd_bundle_create(int argc, const char **argv, const char *prefix,\n\t\t\t
      \    struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/bundle.c:116,1
    - Dst: read_bundle_header_fd
      Src: /src/git/builtin/bundle.c:119,1
    - Dst: read_bundle_header
      Src: /src/git/builtin/bundle.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - path
    - header
    - name
    argTypes:
    - char*
    - struct bundle_header*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: open_bundle
    functionSourceFile: /src/git/builtin/bundle.c
    functionUses: 0
    functionsReached:
    - read_bundle_header_fd
    - read_bundle_header
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int open_bundle(const char *path, struct bundle_header *header,\n\t\t
      \      const char **name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/bundle.c:134,1
    - Dst: N_
      Src: /src/git/builtin/bundle.c:135,1
    - Dst: OPT_END
      Src: /src/git/builtin/bundle.c:136,1
    - Dst: parse_options_cmd_bundle
      Src: /src/git/builtin/bundle.c:141,1
    - Dst: error
      Src: /src/git/builtin/bundle.c:146,1
    - Dst: _
      Src: /src/git/builtin/bundle.c:146,1
    - Dst: open_bundle
      Src: /src/git/builtin/bundle.c:150,1
    - Dst: close
      Src: /src/git/builtin/bundle.c:154,1
    - Dst: verify_bundle
      Src: /src/git/builtin/bundle.c:155,1
    - Dst: fprintf
      Src: /src/git/builtin/bundle.c:161,1
    - Dst: _
      Src: /src/git/builtin/bundle.c:161,1
    - Dst: free
      Src: /src/git/builtin/bundle.c:164,1
    - Dst: bundle_header_release
      Src: /src/git/builtin/bundle.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 127
    functionDepth: 14
    functionLinenumber: 127
    functionLinenumberEnd: 167
    functionName: cmd_bundle_verify
    functionSourceFile: /src/git/builtin/bundle.c
    functionUses: 0
    functionsReached:
    - error
    - OPT_END
    - OPT_BOOL
    - free
    - close
    - fprintf
    - _
    - N_
    - bundle_header_release
    - open_bundle
    - verify_bundle
    - parse_options_cmd_bundle
    linkageType: ''
    returnType: int
    signature: "int cmd_bundle_verify(int argc, const char **argv, const char *prefix,\n\t\t\t
      \    struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/bundle.c:175,1
    - Dst: parse_options_cmd_bundle
      Src: /src/git/builtin/bundle.c:179,1
    - Dst: open_bundle
      Src: /src/git/builtin/bundle.c:183,1
    - Dst: close
      Src: /src/git/builtin/bundle.c:187,1
    - Dst: list_bundle_refs
      Src: /src/git/builtin/bundle.c:188,1
    - Dst: free
      Src: /src/git/builtin/bundle.c:190,1
    - Dst: bundle_header_release
      Src: /src/git/builtin/bundle.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 169
    functionDepth: 14
    functionLinenumber: 169
    functionLinenumberEnd: 193
    functionName: cmd_bundle_list_heads
    functionSourceFile: /src/git/builtin/bundle.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - parse_options_cmd_bundle
    - free
    - close
    - bundle_header_release
    - open_bundle
    - list_bundle_refs
    linkageType: ''
    returnType: int
    signature: "int cmd_bundle_list_heads(int argc, const char **argv, const char
      *prefix,\n\t\t\t\t struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/builtin/bundle.c:200,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/bundle.c:203,1
    - Dst: N_
      Src: /src/git/builtin/bundle.c:204,1
    - Dst: OPT_END
      Src: /src/git/builtin/bundle.c:205,1
    - Dst: parse_options_cmd_bundle
      Src: /src/git/builtin/bundle.c:210,1
    - Dst: die
      Src: /src/git/builtin/bundle.c:215,1
    - Dst: _
      Src: /src/git/builtin/bundle.c:215,1
    - Dst: open_bundle
      Src: /src/git/builtin/bundle.c:217,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/bundle.c:222,1
    - Dst: _
      Src: /src/git/builtin/bundle.c:223,1
    - Dst: unbundle
      Src: /src/git/builtin/bundle.c:224,1
    - Dst: list_bundle_refs
      Src: /src/git/builtin/bundle.c:226,1
    - Dst: bundle_header_release
      Src: /src/git/builtin/bundle.c:227,1
    - Dst: strvec_clear
      Src: /src/git/builtin/bundle.c:230,1
    - Dst: free
      Src: /src/git/builtin/bundle.c:231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 195
    functionDepth: 14
    functionLinenumber: 195
    functionLinenumberEnd: 233
    functionName: cmd_bundle_unbundle
    functionSourceFile: /src/git/builtin/bundle.c
    functionUses: 0
    functionsReached:
    - unbundle
    - OPT_END
    - die
    - list_bundle_refs
    - strvec_pushl
    - OPT_BOOL
    - free
    - bundle_header_release
    - strvec_clear
    - _
    - N_
    - isatty
    - open_bundle
    - parse_options_cmd_bundle
    linkageType: ''
    returnType: int
    signature: "int cmd_bundle_unbundle(int argc, const char **argv, const char *prefix,\n\t\t\t
      \      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bundle.c:242,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bundle.c:243,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bundle.c:244,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bundle.c:245,1
    - Dst: OPT_END
      Src: /src/git/builtin/bundle.c:246,1
    - Dst: parse_options
      Src: /src/git/builtin/bundle.c:249,1
    - Dst: packet_trace_identity
      Src: /src/git/builtin/bundle.c:252,1
    - Dst: fn
      Src: /src/git/builtin/bundle.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 235
    functionDepth: 13
    functionLinenumber: 235
    functionLinenumberEnd: 255
    functionName: cmd_bundle
    functionSourceFile: /src/git/builtin/bundle.c
    functionUses: 4
    functionsReached:
    - parse_options
    - OPT_END
    - fn
    - packet_trace_identity
    - OPT_SUBCOMMAND
    linkageType: ''
    returnType: int
    signature: "int cmd_bundle(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/symbolic-ref.c:23,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/symbolic-ref.c:23,1
    - Dst: die
      Src: /src/git/builtin/symbolic-ref.c:27,1
    - Dst: die
      Src: /src/git/builtin/symbolic-ref.c:30,1
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/builtin/symbolic-ref.c:37,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/symbolic-ref.c:37,1
    - Dst: puts
      Src: /src/git/builtin/symbolic-ref.c:40,1
    - Dst: free
      Src: /src/git/builtin/symbolic-ref.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - HEAD
    - quiet
    - shorten
    - recurse
    - print
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 5
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: check_symref
    functionSourceFile: /src/git/builtin/symbolic-ref.c
    functionUses: 0
    functionsReached:
    - die
    - refs_resolve_ref_unsafe
    - puts
    - refs_shorten_unambiguous_ref
    - free
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int check_symref(const char *HEAD, int quiet, int shorten, int recurse,
      int print)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/symbolic-ref.c:54,1
    - Dst: N_
      Src: /src/git/builtin/symbolic-ref.c:55,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/symbolic-ref.c:56,1
    - Dst: N_
      Src: /src/git/builtin/symbolic-ref.c:56,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/symbolic-ref.c:57,1
    - Dst: N_
      Src: /src/git/builtin/symbolic-ref.c:57,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/symbolic-ref.c:58,1
    - Dst: N_
      Src: /src/git/builtin/symbolic-ref.c:58,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/symbolic-ref.c:59,1
    - Dst: N_
      Src: /src/git/builtin/symbolic-ref.c:59,1
    - Dst: N_
      Src: /src/git/builtin/symbolic-ref.c:59,1
    - Dst: OPT_END
      Src: /src/git/builtin/symbolic-ref.c:60,1
    - Dst: repo_config
      Src: /src/git/builtin/symbolic-ref.c:63,1
    - Dst: parse_options
      Src: /src/git/builtin/symbolic-ref.c:64,1
    - Dst: die
      Src: /src/git/builtin/symbolic-ref.c:67,1
    - Dst: usage_with_options
      Src: /src/git/builtin/symbolic-ref.c:71,1
    - Dst: check_symref
      Src: /src/git/builtin/symbolic-ref.c:72,1
    - Dst: die
      Src: /src/git/builtin/symbolic-ref.c:74,1
    - Dst: strcmp
      Src: /src/git/builtin/symbolic-ref.c:75,1
    - Dst: die
      Src: /src/git/builtin/symbolic-ref.c:76,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/symbolic-ref.c:77,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/symbolic-ref.c:77,1
    - Dst: check_symref
      Src: /src/git/builtin/symbolic-ref.c:83,1
    - Dst: strcmp
      Src: /src/git/builtin/symbolic-ref.c:86,1
    - Dst: starts_with
      Src: /src/git/builtin/symbolic-ref.c:87,1
    - Dst: die
      Src: /src/git/builtin/symbolic-ref.c:88,1
    - Dst: check_refname_format
      Src: /src/git/builtin/symbolic-ref.c:89,1
    - Dst: die
      Src: /src/git/builtin/symbolic-ref.c:90,1
    - Dst: refs_update_symref
      Src: /src/git/builtin/symbolic-ref.c:91,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/symbolic-ref.c:91,1
    - Dst: usage_with_options
      Src: /src/git/builtin/symbolic-ref.c:95,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 46
    functionDepth: 19
    functionLinenumber: 46
    functionLinenumberEnd: 98
    functionName: cmd_symbolic_ref
    functionSourceFile: /src/git/builtin/symbolic-ref.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - refs_delete_ref
    - check_symref
    - usage_with_options
    - refs_update_symref
    - OPT_BOOL
    - OPT_STRING
    - starts_with
    - get_main_ref_store
    - check_refname_format
    - strcmp
    - N_
    - repo_config
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int cmd_symbolic_ref(int argc,\n\t\t     const char **argv,\n\t\t
      \    const char *prefix,\n\t\t     struct repository *repo UNUSED)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/diff-index.c:29,1
    - Dst: repo_config
      Src: /src/git/builtin/diff-index.c:31,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/diff-index.c:33,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/diff-index.c:36,1
    - Dst: precompose_argv_prefix
      Src: /src/git/builtin/diff-index.c:38,1
    - Dst: diff_merges_suppress_m_parsing
      Src: /src/git/builtin/diff-index.c:44,1
    - Dst: setup_revisions
      Src: /src/git/builtin/diff-index.c:46,1
    - Dst: strcmp
      Src: /src/git/builtin/diff-index.c:50,1
    - Dst: strcmp
      Src: /src/git/builtin/diff-index.c:52,1
    - Dst: strcmp
      Src: /src/git/builtin/diff-index.c:54,1
    - Dst: usage
      Src: /src/git/builtin/diff-index.c:57,1
    - Dst: usage
      Src: /src/git/builtin/diff-index.c:70,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/diff-index.c:72,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/diff-index.c:73,1
    - Dst: perror
      Src: /src/git/builtin/diff-index.c:74,1
    - Dst: repo_read_index
      Src: /src/git/builtin/diff-index.c:77,1
    - Dst: perror
      Src: /src/git/builtin/diff-index.c:78,1
    - Dst: run_diff_index
      Src: /src/git/builtin/diff-index.c:81,1
    - Dst: diff_result_code
      Src: /src/git/builtin/diff-index.c:82,1
    - Dst: release_revisions
      Src: /src/git/builtin/diff-index.c:83,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 19
    functionDepth: 21
    functionLinenumber: 19
    functionLinenumberEnd: 85
    functionName: cmd_diff_index
    functionSourceFile: /src/git/builtin/diff-index.c
    functionUses: 0
    functionsReached:
    - repo_read_index_preload
    - precompose_argv_prefix
    - setup_work_tree
    - perror
    - release_revisions
    - repo_read_index
    - show_usage_if_asked
    - diff_merges_suppress_m_parsing
    - diff_result_code
    - repo_init_revisions
    - usage
    - prepare_repo_settings
    - run_diff_index
    - strcmp
    - setup_revisions
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_diff_index(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - seen_bits
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: bits_to_msg
    functionSourceFile: /src/git/builtin/count-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *bits_to_msg(unsigned seen_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bits_to_msg
      Src: /src/git/builtin/count-objects.c:44,1
    - Dst: stat
      Src: /src/git/builtin/count-objects.c:49,1
    - Dst: warning
      Src: /src/git/builtin/count-objects.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - seen_bits
    - path
    argTypes:
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: real_report_garbage
    functionSourceFile: /src/git/builtin/count-objects.c
    functionUses: 0
    functionsReached:
    - stat
    - warning
    - bits_to_msg
    linkageType: ''
    returnType: void
    signature: void real_report_garbage(unsigned seen_bits, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: report_garbage
      Src: /src/git/builtin/count-objects.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: loose_garbage
    functionSourceFile: /src/git/builtin/count-objects.c
    functionUses: 0
    functionsReached:
    - report_garbage
    linkageType: ''
    returnType: void
    signature: void loose_garbage(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/builtin/count-objects.c:66,1
    - Dst: S_ISREG
      Src: /src/git/builtin/count-objects.c:66,1
    - Dst: loose_garbage
      Src: /src/git/builtin/count-objects.c:67,1
    - Dst: on_disk_bytes
      Src: /src/git/builtin/count-objects.c:69,1
    - Dst: has_object_pack
      Src: /src/git/builtin/count-objects.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - oid
    - path
    - UNUSED
    argTypes:
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 10
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: count_loose
    functionSourceFile: /src/git/builtin/count-objects.c
    functionUses: 0
    functionsReached:
    - on_disk_bytes
    - has_object_pack
    - lstat
    - loose_garbage
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int count_loose(const struct object_id *oid, const char *path,\n\t\t
      \      void *data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loose_garbage
      Src: /src/git/builtin/count-objects.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - basename
    - path
    - UNUSED
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: count_cruft
    functionSourceFile: /src/git/builtin/count-objects.c
    functionUses: 0
    functionsReached:
    - loose_garbage
    linkageType: ''
    returnType: int
    signature: "int count_cruft(const char *basename UNUSED, const char *path,\n\t\t
      \      void *data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/count-objects.c:86,1
    - Dst: quote_c_style
      Src: /src/git/builtin/count-objects.c:87,1
    - Dst: putchar
      Src: /src/git/builtin/count-objects.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - alternate
    - UNUSED
    argTypes:
    - struct odb_source*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: print_alternate
    functionSourceFile: /src/git/builtin/count-objects.c
    functionUses: 0
    functionsReached:
    - quote_c_style
    - printf
    - putchar
    linkageType: ''
    returnType: int
    signature: int print_alternate(struct odb_source *alternate, void *data UNUSED)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/count-objects.c:104,1
    - Dst: N_
      Src: /src/git/builtin/count-objects.c:104,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/count-objects.c:105,1
    - Dst: N_
      Src: /src/git/builtin/count-objects.c:106,1
    - Dst: OPT_END
      Src: /src/git/builtin/count-objects.c:107,1
    - Dst: repo_config
      Src: /src/git/builtin/count-objects.c:110,1
    - Dst: parse_options
      Src: /src/git/builtin/count-objects.c:112,1
    - Dst: usage_with_options
      Src: /src/git/builtin/count-objects.c:115,1
    - Dst: report_linked_checkout_garbage
      Src: /src/git/builtin/count-objects.c:118,1
    - Dst: for_each_loose_file_in_source
      Src: /src/git/builtin/count-objects.c:121,1
    - Dst: open_pack_index
      Src: /src/git/builtin/count-objects.c:135,1
    - Dst: strbuf_humanise_bytes
      Src: /src/git/builtin/count-objects.c:143,1
    - Dst: strbuf_humanise_bytes
      Src: /src/git/builtin/count-objects.c:144,1
    - Dst: strbuf_humanise_bytes
      Src: /src/git/builtin/count-objects.c:145,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/count-objects.c:147,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/count-objects.c:149,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/count-objects.c:151,1
    - Dst: printf
      Src: /src/git/builtin/count-objects.c:155,1
    - Dst: printf
      Src: /src/git/builtin/count-objects.c:156,1
    - Dst: printf
      Src: /src/git/builtin/count-objects.c:157,1
    - Dst: printf
      Src: /src/git/builtin/count-objects.c:158,1
    - Dst: printf
      Src: /src/git/builtin/count-objects.c:159,1
    - Dst: printf
      Src: /src/git/builtin/count-objects.c:160,1
    - Dst: printf
      Src: /src/git/builtin/count-objects.c:161,1
    - Dst: printf
      Src: /src/git/builtin/count-objects.c:162,1
    - Dst: odb_for_each_alternate
      Src: /src/git/builtin/count-objects.c:163,1
    - Dst: strbuf_release
      Src: /src/git/builtin/count-objects.c:164,1
    - Dst: strbuf_release
      Src: /src/git/builtin/count-objects.c:165,1
    - Dst: strbuf_release
      Src: /src/git/builtin/count-objects.c:166,1
    - Dst: strbuf_humanise_bytes
      Src: /src/git/builtin/count-objects.c:170,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/count-objects.c:172,1
    - Dst: printf
      Src: /src/git/builtin/count-objects.c:174,1
    - Dst: strbuf_release
      Src: /src/git/builtin/count-objects.c:175,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 97
    functionDepth: 19
    functionLinenumber: 97
    functionLinenumberEnd: 178
    functionName: cmd_count_objects
    functionSourceFile: /src/git/builtin/count-objects.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - for_each_loose_file_in_source
    - strbuf_release
    - OPT__VERBOSE
    - open_pack_index
    - strbuf_humanise_bytes
    - report_linked_checkout_garbage
    - OPT_BOOL
    - strbuf_addf
    - N_
    - odb_for_each_alternate
    - repo_config
    - printf
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_count_objects(int argc,\n\t\t      const char **argv,\n\t\t
      \     const char *prefix,\n\t\t      struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/builtin/count-objects.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 10
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/count-objects.c
    functionUses: 6
    functionsReached:
    - open_pack_index
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT__FORCE
      Src: /src/git/builtin/update-server-info.c:20,1
    - Dst: N_
      Src: /src/git/builtin/update-server-info.c:20,1
    - Dst: OPT_END
      Src: /src/git/builtin/update-server-info.c:21,1
    - Dst: repo_config
      Src: /src/git/builtin/update-server-info.c:24,1
    - Dst: parse_options
      Src: /src/git/builtin/update-server-info.c:26,1
    - Dst: usage_with_options
      Src: /src/git/builtin/update-server-info.c:29,1
    - Dst: update_server_info
      Src: /src/git/builtin/update-server-info.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 13
    functionDepth: 19
    functionLinenumber: 13
    functionLinenumberEnd: 32
    functionName: cmd_update_server_info
    functionSourceFile: /src/git/builtin/update-server-info.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - OPT__FORCE
    - update_server_info
    - N_
    - repo_config
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_update_server_info(int argc,\n\t\t\t   const char **argv,\n\t\t\t
      \  const char *prefix,\n\t\t\t   struct repository *repo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/tag.c:64,1
    - Dst: verify_ref_format
      Src: /src/git/builtin/tag.c:72,1
    - Dst: die
      Src: /src/git/builtin/tag.c:73,1
    - Dst: _
      Src: /src/git/builtin/tag.c:73,1
    - Dst: filter_and_format_refs
      Src: /src/git/builtin/tag.c:75,1
    - Dst: free
      Src: /src/git/builtin/tag.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - filter
    - sorting
    - format
    argTypes:
    - struct ref_filter*
    - struct ref_sorting*
    - struct ref_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 8
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: list_tags
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - die
    - xstrfmt
    - verify_ref_format
    - filter_and_format_refs
    - _
    - free
    linkageType: ''
    returnType: int
    signature: "int list_tags(struct ref_filter *filter, struct ref_sorting *sorting,\n\t\t
      \    struct ref_format *format)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/tag.c:94,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/tag.c:95,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/tag.c:96,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/tag.c:96,1
    - Dst: error
      Src: /src/git/builtin/tag.c:97,1
    - Dst: _
      Src: /src/git/builtin/tag.c:97,1
    - Dst: fn
      Src: /src/git/builtin/tag.c:101,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - argv
    - fn
    - cb_data
    argTypes:
    - char**
    - each_tag_name_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: for_each_tag_name
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - fn
    - strbuf_reset
    - refs_read_ref
    - strbuf_addf
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int for_each_tag_name(const char **argv, each_tag_name_fn fn,\n\t\t\t
      \    void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/builtin/tag.c:113,1
    - Dst: oiddup
      Src: /src/git/builtin/tag.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - UNUSED
    - ref
    - oid
    - cb_data
    argTypes:
    - char*
    - char*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: collect_tags
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - oiddup
    - string_list_append
    linkageType: ''
    returnType: int
    signature: "int collect_tags(const char *name UNUSED, const char *ref,\n\t\t\tconst
      struct object_id *oid, void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_tag_name
      Src: /src/git/builtin/tag.c:124,1
    - Dst: refs_delete_refs
      Src: /src/git/builtin/tag.c:125,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/tag.c:125,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/tag.c:128,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/tag.c:131,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/tag.c:131,1
    - Dst: printf
      Src: /src/git/builtin/tag.c:132,1
    - Dst: _
      Src: /src/git/builtin/tag.c:132,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/tag.c:134,1
    - Dst: free
      Src: /src/git/builtin/tag.c:136,1
    - Dst: string_list_clear
      Src: /src/git/builtin/tag.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 118
    functionDepth: 8
    functionLinenumber: 118
    functionLinenumberEnd: 140
    functionName: delete_tags
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - for_each_tag_name
    - free
    - repo_find_unique_abbrev
    - _
    - refs_delete_refs
    - refs_ref_exists
    - printf
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int delete_tags(const char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gpg_verify_tag
      Src: /src/git/builtin/tag.c:152,1
    - Dst: pretty_print_ref
      Src: /src/git/builtin/tag.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - name
    - UNUSED
    - oid
    - cb_data
    argTypes:
    - char*
    - char*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 142
    functionDepth: 15
    functionLinenumber: 142
    functionLinenumberEnd: 159
    functionName: verify_tag
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 2
    functionsReached:
    - pretty_print_ref
    - gpg_verify_tag
    linkageType: ''
    returnType: int
    signature: "int verify_tag(const char *name, const char *ref UNUSED,\n\t\t      const
      struct object_id *oid, void *cb_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_signing_key
      Src: /src/git/builtin/tag.c:167,1
    - Dst: sign_buffer
      Src: /src/git/builtin/tag.c:170,1
    - Dst: convert_object_file
      Src: /src/git/builtin/tag.c:176,1
    - Dst: sign_buffer
      Src: /src/git/builtin/tag.c:179,1
    - Dst: add_header_signature
      Src: /src/git/builtin/tag.c:181,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/tag.c:182,1
    - Dst: hash_object_file
      Src: /src/git/builtin/tag.c:183,1
    - Dst: add_header_signature
      Src: /src/git/builtin/tag.c:189,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/tag.c:191,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:194,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:195,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:196,1
    - Dst: free
      Src: /src/git/builtin/tag.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - buffer
    - compat_oid
    - compat_oid_buf
    argTypes:
    - struct strbuf*
    - struct object_id**
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 161
    functionDepth: 10
    functionLinenumber: 161
    functionLinenumberEnd: 199
    functionName: do_sign
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - sign_buffer
    - strbuf_release
    - get_signing_key
    - hash_object_file
    - add_header_signature
    - strbuf_addbuf
    - convert_object_file
    - free
    linkageType: ''
    returnType: int
    signature: "int do_sign(struct strbuf *buffer, struct object_id **compat_oid,\n\t\t
      \  struct object_id *compat_oid_buf)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/tag.c:213,1
    - Dst: git_config_bool
      Src: /src/git/builtin/tag.c:214,1
    - Dst: strcmp
      Src: /src/git/builtin/tag.c:218,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/tag.c:220,1
    - Dst: string_list_append
      Src: /src/git/builtin/tag.c:221,1
    - Dst: strcmp
      Src: /src/git/builtin/tag.c:225,1
    - Dst: git_config_bool
      Src: /src/git/builtin/tag.c:226,1
    - Dst: starts_with
      Src: /src/git/builtin/tag.c:230,1
    - Dst: git_column_config
      Src: /src/git/builtin/tag.c:231,1
    - Dst: git_color_config
      Src: /src/git/builtin/tag.c:233,1
    - Dst: git_default_config
      Src: /src/git/builtin/tag.c:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 210
    functionDepth: 6
    functionLinenumber: 210
    functionLinenumberEnd: 237
    functionName: git_tag_config
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - git_color_config
    - starts_with
    - git_column_config
    - strcmp
    - git_default_config
    - string_list_append
    - git_config_bool
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_tag_config(const char *var, const char *value,\n\t\t\t  const
      struct config_context *ctx, void *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/builtin/tag.c:247,1
    - Dst: parse_signature
      Src: /src/git/builtin/tag.c:250,1
    - Dst: strstr
      Src: /src/git/builtin/tag.c:255,1
    - Dst: free
      Src: /src/git/builtin/tag.c:258,1
    - Dst: write_or_die
      Src: /src/git/builtin/tag.c:262,1
    - Dst: free
      Src: /src/git/builtin/tag.c:264,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:265,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - fd
    - oid
    argTypes:
    - int
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 239
    functionDepth: 12
    functionLinenumber: 239
    functionLinenumberEnd: 267
    functionName: write_tag_body
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - parse_signature
    - strbuf_release
    - strstr
    - free
    - odb_read_object
    linkageType: ''
    returnType: void
    signature: void write_tag_body(int fd, const struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_sign
      Src: /src/git/builtin/tag.c:272,1
    - Dst: error
      Src: /src/git/builtin/tag.c:273,1
    - Dst: _
      Src: /src/git/builtin/tag.c:273,1
    - Dst: odb_write_object_ext
      Src: /src/git/builtin/tag.c:274,1
    - Dst: error
      Src: /src/git/builtin/tag.c:276,1
    - Dst: _
      Src: /src/git/builtin/tag.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - sign
    - result
    argTypes:
    - struct strbuf*
    - int
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 11
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: build_tag_object
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - error
    - do_sign
    - odb_write_object_ext
    - _
    linkageType: ''
    returnType: int
    signature: int build_tag_object(struct strbuf *buf, int sign, struct object_id
      *result)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/builtin/tag.c:307,1
    - Dst: die
      Src: /src/git/builtin/tag.c:309,1
    - Dst: _
      Src: /src/git/builtin/tag.c:309,1
    - Dst: advise_if_enabled
      Src: /src/git/builtin/tag.c:312,1
    - Dst: _
      Src: /src/git/builtin/tag.c:312,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/tag.c:315,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/tag.c:320,1
    - Dst: type_name
      Src: /src/git/builtin/tag.c:321,1
    - Dst: git_committer_info
      Src: /src/git/builtin/tag.c:323,1
    - Dst: xopen
      Src: /src/git/builtin/tag.c:330,1
    - Dst: strbuf_complete
      Src: /src/git/builtin/tag.c:333,1
    - Dst: write_or_die
      Src: /src/git/builtin/tag.c:334,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/tag.c:335,1
    - Dst: is_null_oid
      Src: /src/git/builtin/tag.c:336,1
    - Dst: write_tag_body
      Src: /src/git/builtin/tag.c:337,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/tag.c:340,1
    - Dst: strbuf_commented_addf
      Src: /src/git/builtin/tag.c:342,1
    - Dst: _
      Src: /src/git/builtin/tag.c:343,1
    - Dst: strbuf_commented_addf
      Src: /src/git/builtin/tag.c:345,1
    - Dst: _
      Src: /src/git/builtin/tag.c:346,1
    - Dst: write_or_die
      Src: /src/git/builtin/tag.c:347,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:348,1
    - Dst: close
      Src: /src/git/builtin/tag.c:350,1
    - Dst: amend_file_with_trailers
      Src: /src/git/builtin/tag.c:352,1
    - Dst: die
      Src: /src/git/builtin/tag.c:353,1
    - Dst: _
      Src: /src/git/builtin/tag.c:353,1
    - Dst: launch_editor
      Src: /src/git/builtin/tag.c:356,1
    - Dst: fprintf
      Src: /src/git/builtin/tag.c:357,1
    - Dst: _
      Src: /src/git/builtin/tag.c:358,1
    - Dst: exit
      Src: /src/git/builtin/tag.c:359,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/tag.c:362,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/tag.c:363,1
    - Dst: die_errno
      Src: /src/git/builtin/tag.c:364,1
    - Dst: _
      Src: /src/git/builtin/tag.c:364,1
    - Dst: strbuf_stripspace
      Src: /src/git/builtin/tag.c:369,1
    - Dst: die
      Src: /src/git/builtin/tag.c:373,1
    - Dst: _
      Src: /src/git/builtin/tag.c:373,1
    - Dst: strbuf_insert
      Src: /src/git/builtin/tag.c:375,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:376,1
    - Dst: build_tag_object
      Src: /src/git/builtin/tag.c:378,1
    - Dst: fprintf
      Src: /src/git/builtin/tag.c:380,1
    - Dst: _
      Src: /src/git/builtin/tag.c:380,1
    - Dst: exit
      Src: /src/git/builtin/tag.c:382,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 9
    argNames:
    - object
    - object_ref
    - tag
    - buf
    - opt
    - prev
    - result
    - trailer_args
    - path
    argTypes:
    - struct object_id*
    - char*
    - char*
    - struct strbuf*
    - struct create_tag_options*
    - struct object_id*
    - struct object_id*
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 297
    functionDepth: 13
    functionLinenumber: 297
    functionLinenumberEnd: 384
    functionName: create_tag
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - build_tag_object
    - strbuf_addf
    - strbuf_commented_addf
    - is_null_oid
    - odb_read_object_info
    - advise_if_enabled
    - strbuf_complete
    - type_name
    - xopen
    - write_or_die
    - strbuf_release
    - die
    - strbuf_stripspace
    - oid_to_hex
    - strbuf_read_file
    - die_errno
    - _
    - write_tag_body
    - git_committer_info
    - strbuf_reset
    - exit
    - strbuf_insert
    - strbuf_addch
    - launch_editor
    - fprintf
    - close
    - amend_file_with_trailers
    linkageType: ''
    returnType: void
    signature: "void create_tag(const struct object_id *object, const char *object_ref,\n\t\t
      \      const char *tag,\n\t\t       struct strbuf *buf, struct create_tag_options
      *opt,\n\t\t       struct object_id *prev, struct object_id *result,\n\t\t       struct
      strvec *trailer_args, char *path)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/builtin/tag.c:395,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/tag.c:397,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/tag.c:399,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/builtin/tag.c:400,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/tag.c:403,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/tag.c:404,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/tag.c:407,1
    - Dst: odb_read_object
      Src: /src/git/builtin/tag.c:410,1
    - Dst: find_commit_subject
      Src: /src/git/builtin/tag.c:411,1
    - Dst: strbuf_insert
      Src: /src/git/builtin/tag.c:412,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/tag.c:414,1
    - Dst: free
      Src: /src/git/builtin/tag.c:416,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/tag.c:418,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/tag.c:419,1
    - Dst: show_date
      Src: /src/git/builtin/tag.c:419,1
    - Dst: DATE_MODE
      Src: /src/git/builtin/tag.c:419,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/tag.c:422,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/tag.c:425,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/tag.c:428,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/tag.c:431,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - oid
    - sb
    argTypes:
    - struct object_id*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 386
    functionDepth: 12
    functionLinenumber: 386
    functionLinenumberEnd: 432
    functionName: create_reflog_msg
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - odb_read_object
    - find_commit_subject
    - lookup_commit_reference
    - strbuf_addf
    - strbuf_insert
    - DATE_MODE
    - strbuf_addch
    - odb_read_object_info
    - show_date
    - strbuf_addstr
    - free
    - getenv
    - strbuf_add_unique_abbrev
    linkageType: ''
    returnType: void
    signature: void create_reflog_msg(const struct object_id *oid, struct strbuf *sb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/tag.c:443,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/tag.c:448,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/tag.c:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 452
    functionName: parse_msg_arg
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int parse_msg_arg(const struct option *opt, const char *arg, int unset)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/tag.c:482,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:482,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:488,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:489,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/tag.c:493,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:493,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/tag.c:494,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:494,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/tag.c:496,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:496,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/tag.c:497,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:498,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/tag.c:499,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:499,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:500,1
    - Dst: OPT_FILENAME
      Src: /src/git/builtin/tag.c:501,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:501,1
    - Dst: OPT_STRVEC
      Src: /src/git/builtin/tag.c:502,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:502,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:503,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/tag.c:504,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:504,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/tag.c:505,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:505,1
    - Dst: OPT_CLEANUP
      Src: /src/git/builtin/tag.c:506,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/tag.c:507,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:507,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:508,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/tag.c:509,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:509,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/tag.c:510,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:510,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/tag.c:512,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:512,1
    - Dst: OPT_COLUMN
      Src: /src/git/builtin/tag.c:513,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:513,1
    - Dst: OPT_CONTAINS
      Src: /src/git/builtin/tag.c:514,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:514,1
    - Dst: OPT_NO_CONTAINS
      Src: /src/git/builtin/tag.c:515,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:515,1
    - Dst: OPT_WITH
      Src: /src/git/builtin/tag.c:516,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:516,1
    - Dst: OPT_WITHOUT
      Src: /src/git/builtin/tag.c:517,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:517,1
    - Dst: OPT_MERGED
      Src: /src/git/builtin/tag.c:518,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:518,1
    - Dst: OPT_NO_MERGED
      Src: /src/git/builtin/tag.c:519,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:519,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/tag.c:520,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:521,1
    - Dst: OPT_REF_SORT
      Src: /src/git/builtin/tag.c:522,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:527,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:528,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/tag.c:533,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:533,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:534,1
    - Dst: OPT__COLOR
      Src: /src/git/builtin/tag.c:535,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:535,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/tag.c:536,1
    - Dst: N_
      Src: /src/git/builtin/tag.c:536,1
    - Dst: OPT_END
      Src: /src/git/builtin/tag.c:537,1
    - Dst: setup_ref_filter_porcelain_msg
      Src: /src/git/builtin/tag.c:543,1
    - Dst: repo_config
      Src: /src/git/builtin/tag.c:549,1
    - Dst: string_list_append
      Src: /src/git/builtin/tag.c:551,1
    - Dst: memset
      Src: /src/git/builtin/tag.c:553,1
    - Dst: parse_options
      Src: /src/git/builtin/tag.c:557,1
    - Dst: setup_auto_pager
      Src: /src/git/builtin/tag.c:569,1
    - Dst: trailer_config_init
      Src: /src/git/builtin/tag.c:572,1
    - Dst: set_signing_key
      Src: /src/git/builtin/tag.c:579,1
    - Dst: usage_with_options
      Src: /src/git/builtin/tag.c:585,1
    - Dst: finalize_colopts
      Src: /src/git/builtin/tag.c:587,1
    - Dst: explicitly_enable_column
      Src: /src/git/builtin/tag.c:589,1
    - Dst: die
      Src: /src/git/builtin/tag.c:590,1
    - Dst: _
      Src: /src/git/builtin/tag.c:590,1
    - Dst: ref_sorting_options
      Src: /src/git/builtin/tag.c:593,1
    - Dst: ref_sorting_set_sort_flags_all
      Src: /src/git/builtin/tag.c:594,1
    - Dst: column_active
      Src: /src/git/builtin/tag.c:597,1
    - Dst: memset
      Src: /src/git/builtin/tag.c:599,1
    - Dst: run_column_filter
      Src: /src/git/builtin/tag.c:601,1
    - Dst: die
      Src: /src/git/builtin/tag.c:602,1
    - Dst: _
      Src: /src/git/builtin/tag.c:602,1
    - Dst: list_tags
      Src: /src/git/builtin/tag.c:605,1
    - Dst: column_active
      Src: /src/git/builtin/tag.c:606,1
    - Dst: stop_column_filter
      Src: /src/git/builtin/tag.c:607,1
    - Dst: die
      Src: /src/git/builtin/tag.c:623,1
    - Dst: _
      Src: /src/git/builtin/tag.c:623,1
    - Dst: delete_tags
      Src: /src/git/builtin/tag.c:625,1
    - Dst: verify_ref_format
      Src: /src/git/builtin/tag.c:629,1
    - Dst: usage_with_options
      Src: /src/git/builtin/tag.c:630,1
    - Dst: for_each_tag_name
      Src: /src/git/builtin/tag.c:631,1
    - Dst: die
      Src: /src/git/builtin/tag.c:637,1
    - Dst: _
      Src: /src/git/builtin/tag.c:637,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/tag.c:639,1
    - Dst: strcmp
      Src: /src/git/builtin/tag.c:641,1
    - Dst: strbuf_read
      Src: /src/git/builtin/tag.c:642,1
    - Dst: die_errno
      Src: /src/git/builtin/tag.c:643,1
    - Dst: _
      Src: /src/git/builtin/tag.c:643,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/tag.c:645,1
    - Dst: die_errno
      Src: /src/git/builtin/tag.c:646,1
    - Dst: _
      Src: /src/git/builtin/tag.c:646,1
    - Dst: die
      Src: /src/git/builtin/tag.c:656,1
    - Dst: _
      Src: /src/git/builtin/tag.c:656,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/tag.c:658,1
    - Dst: die
      Src: /src/git/builtin/tag.c:659,1
    - Dst: _
      Src: /src/git/builtin/tag.c:659,1
    - Dst: check_tag_ref
      Src: /src/git/builtin/tag.c:661,1
    - Dst: die
      Src: /src/git/builtin/tag.c:662,1
    - Dst: _
      Src: /src/git/builtin/tag.c:662,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/tag.c:664,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/tag.c:664,1
    - Dst: oidclr
      Src: /src/git/builtin/tag.c:665,1
    - Dst: die
      Src: /src/git/builtin/tag.c:667,1
    - Dst: _
      Src: /src/git/builtin/tag.c:667,1
    - Dst: strcmp
      Src: /src/git/builtin/tag.c:672,1
    - Dst: strcmp
      Src: /src/git/builtin/tag.c:674,1
    - Dst: strcmp
      Src: /src/git/builtin/tag.c:676,1
    - Dst: die
      Src: /src/git/builtin/tag.c:679,1
    - Dst: _
      Src: /src/git/builtin/tag.c:679,1
    - Dst: create_reflog_msg
      Src: /src/git/builtin/tag.c:681,1
    - Dst: repo_git_path
      Src: /src/git/builtin/tag.c:686,1
    - Dst: create_tag
      Src: /src/git/builtin/tag.c:687,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/tag.c:691,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/tag.c:691,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/tag.c:694,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/tag.c:698,1
    - Dst: fprintf
      Src: /src/git/builtin/tag.c:700,1
    - Dst: _
      Src: /src/git/builtin/tag.c:701,1
    - Dst: die
      Src: /src/git/builtin/tag.c:703,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/tag.c:706,1
    - Dst: free
      Src: /src/git/builtin/tag.c:707,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/tag.c:709,1
    - Dst: is_null_oid
      Src: /src/git/builtin/tag.c:710,1
    - Dst: oideq
      Src: /src/git/builtin/tag.c:710,1
    - Dst: printf
      Src: /src/git/builtin/tag.c:711,1
    - Dst: _
      Src: /src/git/builtin/tag.c:711,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/tag.c:712,1
    - Dst: ref_sorting_release
      Src: /src/git/builtin/tag.c:715,1
    - Dst: ref_filter_clear
      Src: /src/git/builtin/tag.c:716,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:717,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:718,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:719,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:720,1
    - Dst: strbuf_release
      Src: /src/git/builtin/tag.c:721,1
    - Dst: strvec_clear
      Src: /src/git/builtin/tag.c:722,1
    - Dst: free
      Src: /src/git/builtin/tag.c:723,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 144
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 454
    functionDepth: 19
    functionLinenumber: 454
    functionLinenumberEnd: 725
    functionName: cmd_tag
    functionSourceFile: /src/git/builtin/tag.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - parse_options
    - repo_git_path
    - OPT_CONTAINS
    - ref_sorting_options
    - explicitly_enable_column
    - repo_get_oid
    - OPT_BOOL
    - is_null_oid
    - strbuf_addbuf
    - oidclr
    - OPT_WITHOUT
    - strcmp
    - free
    - ref_store_transaction_begin
    - repo_config
    - OPT_REF_SORT
    - printf
    - usage_with_options
    - get_main_ref_store
    - create_tag
    - ref_sorting_release
    - OPT_END
    - die
    - OPT__FORCE
    - ref_filter_clear
    - strbuf_release
    - OPT_GROUP
    - ref_transaction_update
    - OPT__COLOR
    - OPT_CMDMODE
    - ref_transaction_free
    - OPT_WITH
    - finalize_colopts
    - OPT_FILENAME
    - memset
    - unlink_or_warn
    - set_signing_key
    - delete_tags
    - ref_sorting_set_sort_flags_all
    - OPT_STRVEC
    - OPT_MERGED
    - verify_ref_format
    - column_active
    - trailer_config_init
    - die_errno
    - strbuf_read_file
    - string_list_append
    - _
    - N_
    - OPT_NO_MERGED
    - setup_ref_filter_porcelain_msg
    - create_reflog_msg
    - run_column_filter
    - OPT_CLEANUP
    - list_tags
    - stop_column_filter
    - strbuf_read
    - OPT_NO_CONTAINS
    - setup_auto_pager
    - for_each_tag_name
    - OPT_CALLBACK_F
    - OPT_STRING
    - OPT_COLUMN
    - check_tag_ref
    - refs_read_ref
    - strvec_clear
    - repo_find_unique_abbrev
    - fprintf
    - oideq
    linkageType: ''
    returnType: int
    signature: "int cmd_tag(int argc,\n\t    const char **argv,\n\t    const char
      *prefix,\n\t    struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_sign_mode
      Src: /src/git/builtin/fast-export.c:67,1
    - Dst: error
      Src: /src/git/builtin/fast-export.c:69,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: parse_opt_sign_mode
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - error
    - parse_sign_mode
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_opt_sign_mode(const struct option *opt,\n\t\t\t       const
      char *arg, int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/fast-export.c:79,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-export.c:81,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-export.c:83,1
    - Dst: error
      Src: /src/git/builtin/fast-export.c:86,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: parse_opt_tag_of_filtered_mode
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int parse_opt_tag_of_filtered_mode(const struct option *opt,\n\t\t\t\t\t
      \ const char *arg, int unset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/fast-export.c:100,1
    - Dst: strcasecmp
      Src: /src/git/builtin/fast-export.c:108,1
    - Dst: error
      Src: /src/git/builtin/fast-export.c:111,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 115
    functionName: parse_opt_reencode_mode
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - git_parse_maybe_bool
    - error
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_opt_reencode_mode(const struct option *opt,\n\t\t\t\t   const
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/fast-export.c:138,1
    - Dst: xstrncmpz
      Src: /src/git/builtin/fast-export.c:141,1
    - Dst: container_of
      Src: /src/git/builtin/fast-export.c:145,1
    - Dst: strcmp
      Src: /src/git/builtin/fast-export.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: anonymized_entry_cmp
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int anonymized_entry_cmp(const void *cmp_data UNUSED,\n\t\t\t\tconst
      struct hashmap_entry *eptr,\n\t\t\t\tconst struct hashmap_entry *entry_or_key,\n\t\t\t\tconst
      void *keydata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/builtin/fast-export.c:157,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/builtin/fast-export.c:159,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/fast-export.c:160,1
    - Dst: hashmap_put_entry
      Src: /src/git/builtin/fast-export.c:162,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:165,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - map
    - hash
    - orig
    - len
    - anon
    argTypes:
    - struct hashmap*
    - unsigned
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 170
    functionName: add_anonymized_entry
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - hashmap_init
    - hashmap_entry_init
    - FLEX_ALLOC_MEM
    - free
    - hashmap_put_entry
    linkageType: ''
    returnType: struct anonymized_entry
    signature: "struct anonymized_entry *add_anonymized_entry(struct hashmap *map,\n\t\t\t\t\t\t
      \    unsigned hash,\n\t\t\t\t\t\t     const char *orig, size_t len,\n\t\t\t\t\t\t
      \    char *anon)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/fast-export.c:184,1
    - Dst: memhash
      Src: /src/git/builtin/fast-export.c:184,1
    - Dst: hashmap_get_entry
      Src: /src/git/builtin/fast-export.c:189,1
    - Dst: hashmap_get_entry
      Src: /src/git/builtin/fast-export.c:193,1
    - Dst: add_anonymized_entry
      Src: /src/git/builtin/fast-export.c:197,1
    - Dst: generate
      Src: /src/git/builtin/fast-export.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - map
    - (*generate)(void)
    - orig
    - len
    argTypes:
    - struct hashmap*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 201
    functionName: anonymize_str
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - memhash
    - generate
    - add_anonymized_entry
    - hashmap_entry_init
    - hashmap_get_entry
    linkageType: ''
    returnType: char
    signature: "char *anonymize_str(struct hashmap *map,\n\t\t\t\t char *(*generate)(void),\n\t\t\t\t
      const char *orig, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/builtin/fast-export.c:214,1
    - Dst: anonymize_str
      Src: /src/git/builtin/fast-export.c:216,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fast-export.c:217,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fast-export.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - out
    - path
    - map
    - (*generate)(void)
    argTypes:
    - struct strbuf*
    - char*
    - struct hashmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 209
    functionDepth: 5
    functionLinenumber: 209
    functionLinenumberEnd: 222
    functionName: anonymize_path
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - anonymize_str
    - strchrnul
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void anonymize_path(struct strbuf *out, const char *path,\n\t\t\t
      \  struct hashmap *map,\n\t\t\t   char *(*generate)(void))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mark
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: mark_to_ptr
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *mark_to_ptr(uint32_t mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mark
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: ptr_to_mark
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ptr_to_mark(void * mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_decoration
      Src: /src/git/builtin/fast-export.c:236,1
    - Dst: mark_to_ptr
      Src: /src/git/builtin/fast-export.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - mark
    argTypes:
    - struct object*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: mark_object
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 1
    functionsReached:
    - mark_to_ptr
    - add_decoration
    linkageType: ''
    returnType: void
    signature: void mark_object(struct object *object, uint32_t mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_object
      Src: /src/git/builtin/fast-export.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: mark_next_object
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - mark_object
    linkageType: ''
    returnType: void
    signature: void mark_next_object(struct object *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_decoration
      Src: /src/git/builtin/fast-export.c:246,1
    - Dst: ptr_to_mark
      Src: /src/git/builtin/fast-export.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: get_object_mark
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - ptr_to_mark
    - lookup_decoration
    linkageType: ''
    returnType: int
    signature: int get_object_mark(struct object *object)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 266
    functionName: rewrite_commit
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct commit
    signature: struct commit *rewrite_commit(struct commit *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: show_progress
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void show_progress(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-export.c:292,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fast-export.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: anonymize_blob
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *anonymize_blob(unsigned long *size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/fast-export.c:308,1
    - Dst: lookup_object
      Src: /src/git/builtin/fast-export.c:311,1
    - Dst: anonymize_blob
      Src: /src/git/builtin/fast-export.c:316,1
    - Dst: lookup_blob
      Src: /src/git/builtin/fast-export.c:317,1
    - Dst: odb_read_object
      Src: /src/git/builtin/fast-export.c:320,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:322,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:322,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:322,1
    - Dst: check_object_signature
      Src: /src/git/builtin/fast-export.c:323,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:325,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:325,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:325,1
    - Dst: parse_object_buffer
      Src: /src/git/builtin/fast-export.c:326,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:331,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:331,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:331,1
    - Dst: mark_next_object
      Src: /src/git/builtin/fast-export.c:333,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:335,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:337,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:337,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:338,1
    - Dst: fwrite
      Src: /src/git/builtin/fast-export.c:339,1
    - Dst: die_errno
      Src: /src/git/builtin/fast-export.c:340,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:340,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:340,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:341,1
    - Dst: show_progress
      Src: /src/git/builtin/fast-export.c:343,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:347,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 297
    functionDepth: 12
    functionLinenumber: 297
    functionLinenumberEnd: 348
    functionName: export_blob
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - mark_next_object
    - show_progress
    - fwrite
    - die_errno
    - anonymize_blob
    - free
    - is_null_oid
    - lookup_object
    - lookup_blob
    - _
    - check_object_signature
    - odb_read_object
    - parse_object_buffer
    - printf
    linkageType: ''
    returnType: void
    signature: void export_blob(const struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:361,1
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:362,1
    - Dst: memcmp
      Src: /src/git/builtin/fast-export.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 378
    functionName: depth_first
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int depth_first(const void *a_, const void *b_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quote_c_style
      Src: /src/git/builtin/fast-export.c:382,1
    - Dst: quote_c_style
      Src: /src/git/builtin/fast-export.c:384,1
    - Dst: strchr
      Src: /src/git/builtin/fast-export.c:385,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:386,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 389
    functionName: print_path_1
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - quote_c_style
    - printf
    - strchr
    linkageType: ''
    returnType: void
    signature: void print_path_1(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-export.c:395,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fast-export.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: anonymize_path_component
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *anonymize_path_component(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_path_1
      Src: /src/git/builtin/fast-export.c:402,1
    - Dst: anonymize_path
      Src: /src/git/builtin/fast-export.c:407,1
    - Dst: print_path_1
      Src: /src/git/builtin/fast-export.c:408,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-export.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 6
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: print_path
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - print_path_1
    - anonymize_path
    linkageType: ''
    returnType: void
    signature: void print_path(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmallocz
      Src: /src/git/builtin/fast-export.c:418,1
    - Dst: oidclr
      Src: /src/git/builtin/fast-export.c:420,1
    - Dst: put_be32
      Src: /src/git/builtin/fast-export.c:421,1
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/fast-export.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 9
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: generate_fake_oid
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - xmallocz
    - oidclr
    - put_be32
    - oid_to_hex_r
    linkageType: ''
    returnType: char
    signature: char *generate_fake_oid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:428,1
    - Dst: anonymize_str
      Src: /src/git/builtin/fast-export.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid_hex
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 5
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: anonymize_oid
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - anonymize_str
    - strlen
    linkageType: ''
    returnType: char
    signature: char *anonymize_oid(const char *oid_hex)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/builtin/fast-export.c:442,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:450,1
    - Dst: print_path
      Src: /src/git/builtin/fast-export.c:451,1
    - Dst: string_list_insert
      Src: /src/git/builtin/fast-export.c:452,1
    - Dst: putchar
      Src: /src/git/builtin/fast-export.c:453,1
    - Dst: string_list_has_string
      Src: /src/git/builtin/fast-export.c:465,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:466,1
    - Dst: print_path
      Src: /src/git/builtin/fast-export.c:467,1
    - Dst: putchar
      Src: /src/git/builtin/fast-export.c:468,1
    - Dst: print_path
      Src: /src/git/builtin/fast-export.c:469,1
    - Dst: string_list_insert
      Src: /src/git/builtin/fast-export.c:470,1
    - Dst: putchar
      Src: /src/git/builtin/fast-export.c:471,1
    - Dst: oideq
      Src: /src/git/builtin/fast-export.c:473,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/fast-export.c:486,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:487,1
    - Dst: anonymize_oid
      Src: /src/git/builtin/fast-export.c:489,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:489,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:490,1
    - Dst: lookup_object
      Src: /src/git/builtin/fast-export.c:492,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:494,1
    - Dst: get_object_mark
      Src: /src/git/builtin/fast-export.c:495,1
    - Dst: print_path
      Src: /src/git/builtin/fast-export.c:497,1
    - Dst: string_list_insert
      Src: /src/git/builtin/fast-export.c:498,1
    - Dst: putchar
      Src: /src/git/builtin/fast-export.c:499,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:503,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:503,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:505,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:506,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - q
    - options
    - data
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 432
    functionDepth: 6
    functionLinenumber: 432
    functionLinenumberEnd: 509
    functionName: show_filemodify
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - putchar
    - oid_to_hex
    - die
    - string_list_insert
    - anonymize_oid
    - get_object_mark
    - S_ISGITLINK
    - print_path
    - lookup_object
    - QSORT
    - string_list_has_string
    - _
    - printf
    - oideq
    linkageType: ''
    returnType: void
    signature: "void show_filemodify(struct diff_queue_struct *q,\n\t\t\t    struct
      diff_options *options UNUSED, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-export.c:515,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fast-export.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 517
    functionName: anonymize_ref_component
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *anonymize_ref_component(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-export.c:535,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/fast-export.c:536,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-export.c:537,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fast-export.c:538,1
    - Dst: anonymize_path
      Src: /src/git/builtin/fast-export.c:543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 519
    functionDepth: 6
    functionLinenumber: 519
    functionLinenumberEnd: 545
    functionName: anonymize_refname
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - anonymize_path
    - strbuf_reset
    - strbuf_addstr
    - skip_prefix
    linkageType: ''
    returnType: char
    signature: char *anonymize_refname(const char *refname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/fast-export.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 551
    functionDepth: 5
    functionLinenumber: 551
    functionLinenumberEnd: 555
    functionName: anonymize_commit_message
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    linkageType: ''
    returnType: char
    signature: char *anonymize_commit_message(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-export.c:561,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fast-export.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 557
    functionDepth: 3
    functionLinenumber: 557
    functionLinenumberEnd: 564
    functionName: anonymize_ident
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *anonymize_ident(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/fast-export.c:582,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/fast-export.c:583,1
    - Dst: strchr
      Src: /src/git/builtin/fast-export.c:586,1
    - Dst: BUG
      Src: /src/git/builtin/fast-export.c:588,1
    - Dst: strbuf_add
      Src: /src/git/builtin/fast-export.c:591,1
    - Dst: split_ident_line
      Src: /src/git/builtin/fast-export.c:593,1
    - Dst: anonymize_str
      Src: /src/git/builtin/fast-export.c:599,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fast-export.c:601,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fast-export.c:602,1
    - Dst: strbuf_add
      Src: /src/git/builtin/fast-export.c:603,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fast-export.c:605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - beg
    - end
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 571
    functionDepth: 5
    functionLinenumber: 571
    functionLinenumberEnd: 610
    functionName: anonymize_ident_line
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strbuf_reset
    - strchr
    - strbuf_addch
    - strbuf_addstr
    - anonymize_str
    - BUG
    - split_ident_line
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void anonymize_ident_line(const char **beg, const char **end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_commit_header
      Src: /src/git/builtin/fast-export.c:632,1
    - Dst: strbuf_add
      Src: /src/git/builtin/fast-export.c:636,1
    - Dst: strchrnul
      Src: /src/git/builtin/fast-export.c:640,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/fast-export.c:641,1
    - Dst: strbuf_add
      Src: /src/git/builtin/fast-export.c:642,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fast-export.c:646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - msg
    - key
    - end
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 647
    functionName: find_commit_multiline_header
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - find_commit_header
    - strbuf_addch
    - strbuf_detach
    - strchrnul
    - strbuf_add
    linkageType: ''
    returnType: char
    signature: "char *find_commit_multiline_header(const char *msg,\n\t\t\t\t\t\tconst
      char *key,\n\t\t\t\t\t\tconst char **end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:654,1
    - Dst: get_signature_format
      Src: /src/git/builtin/fast-export.c:656,1
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - signature
    - object_hash
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 659
    functionName: print_signature
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - strlen
    - printf
    - get_signature_format
    linkageType: ''
    returnType: void
    signature: void print_signature(const char *signature, const char *object_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_commit_multiline_header
      Src: /src/git/builtin/fast-export.c:670,1
    - Dst: string_list_append
      Src: /src/git/builtin/fast-export.c:673,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - signatures
    - pos
    - header
    - object_hash
    argTypes:
    - struct string_list*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 661
    functionDepth: 4
    functionLinenumber: 661
    functionLinenumberEnd: 679
    functionName: append_signatures_for_header
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - find_commit_multiline_header
    - string_list_append
    - free
    linkageType: ''
    returnType: char
    signature: "char *append_signatures_for_header(struct string_list *signatures,\n\t\t\t\t\t\tconst
      char *pos,\n\t\t\t\t\t\tconst char *header,\n\t\t\t\t\t\tconst char *object_hash)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: parse_commit_or_die
      Src: /src/git/builtin/fast-export.c:698,1
    - Dst: repo_get_commit_buffer
      Src: /src/git/builtin/fast-export.c:699,1
    - Dst: strstr
      Src: /src/git/builtin/fast-export.c:701,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:703,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:703,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:704,1
    - Dst: strchrnul
      Src: /src/git/builtin/fast-export.c:706,1
    - Dst: strstr
      Src: /src/git/builtin/fast-export.c:708,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:710,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:710,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:711,1
    - Dst: strchrnul
      Src: /src/git/builtin/fast-export.c:713,1
    - Dst: find_commit_header
      Src: /src/git/builtin/fast-export.c:723,1
    - Dst: append_signatures_for_header
      Src: /src/git/builtin/fast-export.c:729,1
    - Dst: append_signatures_for_header
      Src: /src/git/builtin/fast-export.c:731,1
    - Dst: strstr
      Src: /src/git/builtin/fast-export.c:736,1
    - Dst: get_object_mark
      Src: /src/git/builtin/fast-export.c:741,1
    - Dst: parse_commit_or_die
      Src: /src/git/builtin/fast-export.c:744,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/fast-export.c:745,1
    - Dst: get_commit_tree_oid
      Src: /src/git/builtin/fast-export.c:745,1
    - Dst: get_commit_tree_oid
      Src: /src/git/builtin/fast-export.c:746,1
    - Dst: diff_root_tree_oid
      Src: /src/git/builtin/fast-export.c:749,1
    - Dst: get_commit_tree_oid
      Src: /src/git/builtin/fast-export.c:749,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/fast-export.c:754,1
    - Dst: export_blob
      Src: /src/git/builtin/fast-export.c:755,1
    - Dst: revision_sources_at
      Src: /src/git/builtin/fast-export.c:757,1
    - Dst: string_list_remove
      Src: /src/git/builtin/fast-export.c:764,1
    - Dst: anonymize_refname
      Src: /src/git/builtin/fast-export.c:766,1
    - Dst: anonymize_ident_line
      Src: /src/git/builtin/fast-export.c:767,1
    - Dst: anonymize_ident_line
      Src: /src/git/builtin/fast-export.c:768,1
    - Dst: mark_next_object
      Src: /src/git/builtin/fast-export.c:771,1
    - Dst: anonymize_commit_message
      Src: /src/git/builtin/fast-export.c:773,1
    - Dst: xstrfmt
      Src: /src/git/builtin/fast-export.c:778,1
    - Dst: reencode_string
      Src: /src/git/builtin/fast-export.c:779,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:780,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:785,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:785,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:788,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:792,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:793,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:795,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:795,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:796,1
    - Dst: warning
      Src: /src/git/builtin/fast-export.c:803,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:803,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:804,1
    - Dst: print_signature
      Src: /src/git/builtin/fast-export.c:809,1
    - Dst: warning
      Src: /src/git/builtin/fast-export.c:815,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:815,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:816,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:823,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:823,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:825,1
    - Dst: BUG
      Src: /src/git/builtin/fast-export.c:827,1
    - Dst: string_list_clear
      Src: /src/git/builtin/fast-export.c:829,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:832,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:833,1
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:835,1
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:836,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:838,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/fast-export.c:839,1
    - Dst: get_object_mark
      Src: /src/git/builtin/fast-export.c:843,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:848,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:850,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:852,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:854,1
    - Dst: anonymize_oid
      Src: /src/git/builtin/fast-export.c:856,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:856,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:857,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:862,1
    - Dst: log_tree_diff_flush
      Src: /src/git/builtin/fast-export.c:863,1
    - Dst: string_list_clear
      Src: /src/git/builtin/fast-export.c:864,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:867,1
    - Dst: show_progress
      Src: /src/git/builtin/fast-export.c:869,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 106
    argCount: 3
    argNames:
    - commit
    - rev
    - paths_of_changed_objects
    argTypes:
    - struct commit*
    - struct rev_info*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 681
    functionDepth: 29
    functionLinenumber: 681
    functionLinenumberEnd: 870
    functionName: handle_commit
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 1
    functionsReached:
    - repo_get_commit_buffer
    - print_signature
    - free
    - printf
    - parse_commit_or_die
    - append_signatures_for_header
    - die
    - strstr
    - mark_next_object
    - reencode_string
    - strchrnul
    - string_list_clear
    - oid_to_hex
    - diff_root_tree_oid
    - show_progress
    - S_ISGITLINK
    - repo_unuse_commit_buffer
    - log_tree_diff_flush
    - anonymize_ident_line
    - _
    - revision_sources_at
    - warning
    - anonymize_oid
    - get_object_mark
    - find_commit_header
    - xstrfmt
    - diff_tree_oid
    - export_blob
    - get_commit_tree_oid
    - anonymize_refname
    - strlen
    - string_list_remove
    - anonymize_commit_message
    - BUG
    linkageType: ''
    returnType: void
    signature: "void handle_commit(struct commit *commit, struct rev_info *rev,\n\t\t\t
      \ struct string_list *paths_of_changed_objects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/fast-export.c:876,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/fast-export.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 872
    functionDepth: 3
    functionLinenumber: 872
    functionLinenumberEnd: 878
    functionName: anonymize_tag
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *anonymize_tag(void)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/builtin/fast-export.c:901,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:901,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:903,1
    - Dst: odb_read_object
      Src: /src/git/builtin/fast-export.c:907,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:910,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:910,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:910,1
    - Dst: memmem
      Src: /src/git/builtin/fast-export.c:911,1
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:914,1
    - Dst: memmem
      Src: /src/git/builtin/fast-export.c:916,1
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:923,1
    - Dst: strchrnul
      Src: /src/git/builtin/fast-export.c:926,1
    - Dst: anonymize_ident_line
      Src: /src/git/builtin/fast-export.c:928,1
    - Dst: anonymize_refname
      Src: /src/git/builtin/fast-export.c:932,1
    - Dst: anonymize_str
      Src: /src/git/builtin/fast-export.c:935,1
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:937,1
    - Dst: parse_signed_buffer
      Src: /src/git/builtin/fast-export.c:943,1
    - Dst: warning
      Src: /src/git/builtin/fast-export.c:948,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:948,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:949,1
    - Dst: warning
      Src: /src/git/builtin/fast-export.c:956,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:956,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:957,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:965,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:965,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:967,1
    - Dst: BUG
      Src: /src/git/builtin/fast-export.c:969,1
    - Dst: get_object_mark
      Src: /src/git/builtin/fast-export.c:975,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:979,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:979,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:981,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:984,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:988,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:988,1
    - Dst: rewrite_commit
      Src: /src/git/builtin/fast-export.c:990,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:992,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:993,1
    - Dst: null_oid
      Src: /src/git/builtin/fast-export.c:993,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:994,1
    - Dst: get_object_mark
      Src: /src/git/builtin/fast-export.c:997,1
    - Dst: get_object_mark
      Src: /src/git/builtin/fast-export.c:1000,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1006,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1007,1
    - Dst: null_oid
      Src: /src/git/builtin/fast-export.c:1007,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fast-export.c:1009,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1010,1
    - Dst: mark_next_object
      Src: /src/git/builtin/fast-export.c:1012,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1013,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1016,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1018,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1018,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1021,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1021,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1022,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:1026,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 96
    argCount: 2
    argNames:
    - name
    - tag
    argTypes:
    - char*
    - struct tag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 881
    functionDepth: 12
    functionLinenumber: 881
    functionLinenumberEnd: 1027
    functionName: handle_tag
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - BUG
    - free
    - printf
    - parse_signed_buffer
    - memmem
    - rewrite_commit
    - die
    - mark_next_object
    - odb_read_object
    - anonymize_str
    - strchrnul
    - oid_to_hex
    - anonymize_ident_line
    - _
    - skip_prefix
    - warning
    - get_object_mark
    - anonymize_refname
    - strlen
    - null_oid
    linkageType: ''
    returnType: void
    signature: void handle_tag(const char *name, struct tag *tag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/builtin/fast-export.c:1039,1
    - Dst: string_list_append
      Src: /src/git/builtin/fast-export.c:1040,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:1044,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - e
    - full_name
    argTypes:
    - struct rev_cmdline_entry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1029
    functionDepth: 4
    functionLinenumber: 1029
    functionLinenumberEnd: 1050
    functionName: get_commit
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - die
    - parse_object
    - string_list_append
    - _
    linkageType: ''
    returnType: struct commit
    signature: struct commit *get_commit(struct rev_cmdline_entry *e, const char *full_name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: repo_dwim_ref
      Src: /src/git/builtin/fast-export.c:1065,1
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:1065,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:1067,1
    - Dst: apply_refspecs
      Src: /src/git/builtin/fast-export.c:1073,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:1075,1
    - Dst: get_commit
      Src: /src/git/builtin/fast-export.c:1080,1
    - Dst: warning
      Src: /src/git/builtin/fast-export.c:1082,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1082,1
    - Dst: type_name
      Src: /src/git/builtin/fast-export.c:1084,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:1085,1
    - Dst: export_blob
      Src: /src/git/builtin/fast-export.c:1093,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:1094,1
    - Dst: warning
      Src: /src/git/builtin/fast-export.c:1097,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1097,1
    - Dst: type_name
      Src: /src/git/builtin/fast-export.c:1098,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:1099,1
    - Dst: string_list_append
      Src: /src/git/builtin/fast-export.c:1108,1
    - Dst: revision_sources_at
      Src: /src/git/builtin/fast-export.c:1110,1
    - Dst: revision_sources_at
      Src: /src/git/builtin/fast-export.c:1111,1
    - Dst: free
      Src: /src/git/builtin/fast-export.c:1113,1
    - Dst: string_list_sort_u
      Src: /src/git/builtin/fast-export.c:1116,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct rev_cmdline_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1052
    functionDepth: 13
    functionLinenumber: 1052
    functionLinenumberEnd: 1117
    functionName: get_tags_and_duplicates
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - get_commit
    - repo_dwim_ref
    - export_blob
    - strlen
    - string_list_append
    - free
    - revision_sources_at
    - type_name
    - warning
    - string_list_sort_u
    - apply_refspecs
    - _
    linkageType: ''
    returnType: void
    signature: void get_tags_and_duplicates(struct rev_cmdline_info *info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: handle_tag
      Src: /src/git/builtin/fast-export.c:1131,1
    - Dst: anonymize_refname
      Src: /src/git/builtin/fast-export.c:1135,1
    - Dst: rewrite_commit
      Src: /src/git/builtin/fast-export.c:1137,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1145,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1146,1
    - Dst: null_oid
      Src: /src/git/builtin/fast-export.c:1146,1
    - Dst: get_object_mark
      Src: /src/git/builtin/fast-export.c:1150,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1164,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1165,1
    - Dst: null_oid
      Src: /src/git/builtin/fast-export.c:1165,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1169,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1170,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1174,1
    - Dst: show_progress
      Src: /src/git/builtin/fast-export.c:1176,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - extras
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1119
    functionDepth: 13
    functionLinenumber: 1119
    functionLinenumberEnd: 1180
    functionName: handle_tags_and_duplicates
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - get_object_mark
    - show_progress
    - anonymize_refname
    - handle_tag
    - null_oid
    - printf
    - rewrite_commit
    linkageType: ''
    returnType: void
    signature: void handle_tags_and_duplicates(struct string_list *extras)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen_for_writing
      Src: /src/git/builtin/fast-export.c:1190,1
    - Dst: die_errno
      Src: /src/git/builtin/fast-export.c:1192,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1192,1
    - Dst: ptr_to_mark
      Src: /src/git/builtin/fast-export.c:1196,1
    - Dst: fprintf
      Src: /src/git/builtin/fast-export.c:1197,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1198,1
    - Dst: ferror
      Src: /src/git/builtin/fast-export.c:1206,1
    - Dst: fclose
      Src: /src/git/builtin/fast-export.c:1207,1
    - Dst: error
      Src: /src/git/builtin/fast-export.c:1209,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1209,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1182
    functionDepth: 3
    functionLinenumber: 1182
    functionLinenumberEnd: 1210
    functionName: export_marks
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 1
    functionsReached:
    - fclose
    - ferror
    - error
    - oid_to_hex
    - die_errno
    - ptr_to_mark
    - _
    - fopen_for_writing
    - fprintf
    linkageType: ''
    returnType: void
    signature: void export_marks(char *file)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/builtin/fast-export.c:1218,1
    - Dst: xfopen
      Src: /src/git/builtin/fast-export.c:1221,1
    - Dst: fgets
      Src: /src/git/builtin/fast-export.c:1222,1
    - Dst: strchr
      Src: /src/git/builtin/fast-export.c:1230,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:1232,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1232,1
    - Dst: strtoumax
      Src: /src/git/builtin/fast-export.c:1235,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/fast-export.c:1237,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:1238,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1238,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/fast-export.c:1243,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:1245,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1245,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1245,1
    - Dst: lookup_commit
      Src: /src/git/builtin/fast-export.c:1251,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:1253,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1253,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1253,1
    - Dst: error
      Src: /src/git/builtin/fast-export.c:1258,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1258,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1258,1
    - Dst: mark_object
      Src: /src/git/builtin/fast-export.c:1260,1
    - Dst: fclose
      Src: /src/git/builtin/fast-export.c:1264,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 2
    argNames:
    - input_file
    - check_exists
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1212
    functionDepth: 12
    functionLinenumber: 1212
    functionLinenumberEnd: 1265
    functionName: import_marks
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 1
    functionsReached:
    - error
    - fgets
    - fclose
    - oid_to_hex
    - die
    - strtoumax
    - get_oid_hex
    - stat
    - strchr
    - odb_read_object_info
    - lookup_commit
    - mark_object
    - _
    - xfopen
    linkageType: ''
    returnType: void
    signature: void import_marks(char *input_file, int check_exists)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1275,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fast-export.c:1276,1
    - Dst: null_oid
      Src: /src/git/builtin/fast-export.c:1276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1267
    functionDepth: 3
    functionLinenumber: 1267
    functionLinenumberEnd: 1278
    functionName: handle_deletes
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - null_oid
    - printf
    linkageType: ''
    returnType: void
    signature: void handle_deletes(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/fast-export.c:1287,1
    - Dst: strchr
      Src: /src/git/builtin/fast-export.c:1289,1
    - Dst: strlen
      Src: /src/git/builtin/fast-export.c:1294,1
    - Dst: error
      Src: /src/git/builtin/fast-export.c:1299,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1299,1
    - Dst: add_anonymized_entry
      Src: /src/git/builtin/fast-export.c:1301,1
    - Dst: memhash
      Src: /src/git/builtin/fast-export.c:1301,1
    - Dst: xstrdup
      Src: /src/git/builtin/fast-export.c:1302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1280
    functionDepth: 4
    functionLinenumber: 1280
    functionLinenumberEnd: 1305
    functionName: parse_opt_anonymize_map
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - error
    - memhash
    - add_anonymized_entry
    - strchr
    - strlen
    - _
    - BUG_ON_OPT_NEG
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int parse_opt_anonymize_map(const struct option *opt,\n\t\t\t\t   const
      char *arg, int unset)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/fast-export.c:1321,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1322,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/fast-export.c:1323,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1323,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1324,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/fast-export.c:1326,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1326,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1327,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/fast-export.c:1329,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1329,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1330,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/fast-export.c:1332,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1332,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1333,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/fast-export.c:1335,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1335,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1336,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/fast-export.c:1337,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1337,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1338,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/fast-export.c:1339,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1341,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1342,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fast-export.c:1343,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1344,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fast-export.c:1345,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1346,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fast-export.c:1347,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1348,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fast-export.c:1349,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1349,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/fast-export.c:1350,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1350,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1351,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fast-export.c:1352,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1352,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/fast-export.c:1353,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1353,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1354,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fast-export.c:1356,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1357,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fast-export.c:1358,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1359,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/fast-export.c:1360,1
    - Dst: N_
      Src: /src/git/builtin/fast-export.c:1361,1
    - Dst: OPT_END
      Src: /src/git/builtin/fast-export.c:1363,1
    - Dst: usage_with_options
      Src: /src/git/builtin/fast-export.c:1367,1
    - Dst: repo_config
      Src: /src/git/builtin/fast-export.c:1370,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/fast-export.c:1372,1
    - Dst: init_revision_sources
      Src: /src/git/builtin/fast-export.c:1373,1
    - Dst: parse_options
      Src: /src/git/builtin/fast-export.c:1377,1
    - Dst: setup_revisions
      Src: /src/git/builtin/fast-export.c:1379,1
    - Dst: usage_with_options
      Src: /src/git/builtin/fast-export.c:1381,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:1384,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1384,1
    - Dst: refspec_append
      Src: /src/git/builtin/fast-export.c:1390,1
    - Dst: string_list_clear
      Src: /src/git/builtin/fast-export.c:1392,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1396,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:1399,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1399,1
    - Dst: import_marks
      Src: /src/git/builtin/fast-export.c:1401,1
    - Dst: import_marks
      Src: /src/git/builtin/fast-export.c:1403,1
    - Dst: get_tags_and_duplicates
      Src: /src/git/builtin/fast-export.c:1409,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/fast-export.c:1411,1
    - Dst: die
      Src: /src/git/builtin/fast-export.c:1412,1
    - Dst: _
      Src: /src/git/builtin/fast-export.c:1412,1
    - Dst: get_revision
      Src: /src/git/builtin/fast-export.c:1420,1
    - Dst: handle_commit
      Src: /src/git/builtin/fast-export.c:1421,1
    - Dst: handle_tags_and_duplicates
      Src: /src/git/builtin/fast-export.c:1424,1
    - Dst: handle_tags_and_duplicates
      Src: /src/git/builtin/fast-export.c:1425,1
    - Dst: handle_deletes
      Src: /src/git/builtin/fast-export.c:1426,1
    - Dst: export_marks
      Src: /src/git/builtin/fast-export.c:1429,1
    - Dst: printf
      Src: /src/git/builtin/fast-export.c:1432,1
    - Dst: refspec_clear
      Src: /src/git/builtin/fast-export.c:1434,1
    - Dst: release_revisions
      Src: /src/git/builtin/fast-export.c:1435,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1307
    functionDepth: 19
    functionLinenumber: 1307
    functionLinenumberEnd: 1438
    functionName: cmd_fast_export
    functionSourceFile: /src/git/builtin/fast-export.c
    functionUses: 0
    functionsReached:
    - parse_options
    - import_marks
    - OPT_BOOL
    - repo_init_revisions
    - repo_config
    - printf
    - init_revision_sources
    - usage_with_options
    - handle_deletes
    - OPT_END
    - die
    - release_revisions
    - prepare_revision_walk
    - get_tags_and_duplicates
    - OPT_STRING_LIST
    - refspec_clear
    - OPT_INTEGER
    - string_list_clear
    - handle_commit
    - _
    - N_
    - setup_revisions
    - refspec_append
    - OPT_CALLBACK_F
    - OPT_STRING
    - OPT_CALLBACK
    - get_revision
    - export_marks
    - handle_tags_and_duplicates
    linkageType: ''
    returnType: int
    signature: "int cmd_fast_export(int argc,\n\t\t    const char **argv,\n\t\t    const
      char *prefix,\n\t\t    struct repository *repo UNUSED)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/git/builtin/checkout-index.c:48,1
    - Dst: fputs
      Src: /src/git/builtin/checkout-index.c:50,1
    - Dst: putchar
      Src: /src/git/builtin/checkout-index.c:52,1
    - Dst: fputs
      Src: /src/git/builtin/checkout-index.c:57,1
    - Dst: putchar
      Src: /src/git/builtin/checkout-index.c:61,1
    - Dst: write_name_quoted_relative
      Src: /src/git/builtin/checkout-index.c:62,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - name
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 33
    functionDepth: 6
    functionLinenumber: 33
    functionLinenumberEnd: 69
    functionName: write_tempfile_record
    functionSourceFile: /src/git/builtin/checkout-index.c
    functionUses: 0
    functionsReached:
    - putchar
    - fputs
    - write_name_quoted_relative
    linkageType: ''
    returnType: void
    signature: void write_tempfile_record(const char *name, const char *prefix)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/checkout-index.c:73,1
    - Dst: index_name_pos
      Src: /src/git/builtin/checkout-index.c:74,1
    - Dst: ce_namelen
      Src: /src/git/builtin/checkout-index.c:86,1
    - Dst: memcmp
      Src: /src/git/builtin/checkout-index.c:87,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/builtin/checkout-index.c:91,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/checkout-index.c:94,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout-index.c:97,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout-index.c:98,1
    - Dst: checkout_entry
      Src: /src/git/builtin/checkout-index.c:101,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout-index.c:102,1
    - Dst: write_tempfile_record
      Src: /src/git/builtin/checkout-index.c:109,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout-index.c:122,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout-index.c:124,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout-index.c:126,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout-index.c:128,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout-index.c:131,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout-index.c:134,1
    - Dst: fputc
      Src: /src/git/builtin/checkout-index.c:135,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 41
    argCount: 3
    argNames:
    - index
    - name
    - prefix
    argTypes:
    - struct index_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 71
    functionDepth: 11
    functionLinenumber: 71
    functionLinenumberEnd: 138
    functionName: checkout_file
    functionSourceFile: /src/git/builtin/checkout-index.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - ce_namelen
    - checkout_entry
    - write_tempfile_record
    - S_ISSPARSEDIR
    - strlen
    - ce_skip_worktree
    - fprintf
    - fputc
    - ce_stage
    - memcmp
    linkageType: ''
    returnType: int
    signature: int checkout_file(struct index_state *index, const char *name, const
      char *prefix)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: S_ISSPARSEDIR
      Src: /src/git/builtin/checkout-index.c:148,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/checkout-index.c:149,1
    - Dst: BUG
      Src: /src/git/builtin/checkout-index.c:150,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/checkout-index.c:159,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/checkout-index.c:164,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout-index.c:166,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout-index.c:167,1
    - Dst: ce_namelen
      Src: /src/git/builtin/checkout-index.c:170,1
    - Dst: memcmp
      Src: /src/git/builtin/checkout-index.c:171,1
    - Dst: ce_namelen
      Src: /src/git/builtin/checkout-index.c:174,1
    - Dst: ce_namelen
      Src: /src/git/builtin/checkout-index.c:174,1
    - Dst: memcmp
      Src: /src/git/builtin/checkout-index.c:175,1
    - Dst: ce_namelen
      Src: /src/git/builtin/checkout-index.c:175,1
    - Dst: write_tempfile_record
      Src: /src/git/builtin/checkout-index.c:176,1
    - Dst: checkout_entry
      Src: /src/git/builtin/checkout-index.c:178,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout-index.c:179,1
    - Dst: write_tempfile_record
      Src: /src/git/builtin/checkout-index.c:185,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 27
    argCount: 3
    argNames:
    - index
    - prefix
    - prefix_length
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 140
    functionDepth: 11
    functionLinenumber: 140
    functionLinenumberEnd: 187
    functionName: checkout_all
    functionSourceFile: /src/git/builtin/checkout-index.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - ce_namelen
    - checkout_entry
    - write_tempfile_record
    - S_ISSPARSEDIR
    - ce_skip_worktree
    - BUG
    - ce_stage
    - memcmp
    linkageType: ''
    returnType: int
    signature: int checkout_all(struct index_state *index, const char *prefix, int
      prefix_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/checkout-index.c:199,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout-index.c:201,1
    - Dst: die
      Src: /src/git/builtin/checkout-index.c:208,1
    - Dst: _
      Src: /src/git/builtin/checkout-index.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 211
    functionName: option_parse_stage
    functionSourceFile: /src/git/builtin/checkout-index.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int option_parse_stage(const struct option *opt,\n\t\t\t      const
      char *arg, int unset)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout-index.c:228,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:229,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout-index.c:230,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:231,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/checkout-index.c:232,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:232,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/checkout-index.c:233,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:234,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout-index.c:235,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:236,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout-index.c:237,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:238,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout-index.c:239,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:240,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout-index.c:241,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:242,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout-index.c:243,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:244,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/checkout-index.c:245,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:245,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:246,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/checkout-index.c:247,1
    - Dst: N_
      Src: /src/git/builtin/checkout-index.c:248,1
    - Dst: OPT_END
      Src: /src/git/builtin/checkout-index.c:250,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/checkout-index.c:253,1
    - Dst: repo_config
      Src: /src/git/builtin/checkout-index.c:256,1
    - Dst: strlen
      Src: /src/git/builtin/checkout-index.c:257,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/checkout-index.c:259,1
    - Dst: repo_read_index
      Src: /src/git/builtin/checkout-index.c:262,1
    - Dst: die
      Src: /src/git/builtin/checkout-index.c:263,1
    - Dst: parse_options
      Src: /src/git/builtin/checkout-index.c:266,1
    - Dst: strlen
      Src: /src/git/builtin/checkout-index.c:275,1
    - Dst: die
      Src: /src/git/builtin/checkout-index.c:280,1
    - Dst: _
      Src: /src/git/builtin/checkout-index.c:280,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/checkout-index.c:289,1
    - Dst: get_parallel_checkout_configs
      Src: /src/git/builtin/checkout-index.c:293,1
    - Dst: init_parallel_checkout
      Src: /src/git/builtin/checkout-index.c:295,1
    - Dst: die
      Src: /src/git/builtin/checkout-index.c:303,1
    - Dst: die
      Src: /src/git/builtin/checkout-index.c:305,1
    - Dst: prefix_path
      Src: /src/git/builtin/checkout-index.c:306,1
    - Dst: checkout_file
      Src: /src/git/builtin/checkout-index.c:307,1
    - Dst: free
      Src: /src/git/builtin/checkout-index.c:308,1
    - Dst: die
      Src: /src/git/builtin/checkout-index.c:317,1
    - Dst: getline_fn
      Src: /src/git/builtin/checkout-index.c:320,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/checkout-index.c:323,1
    - Dst: unquote_c_style
      Src: /src/git/builtin/checkout-index.c:324,1
    - Dst: die
      Src: /src/git/builtin/checkout-index.c:325,1
    - Dst: strbuf_swap
      Src: /src/git/builtin/checkout-index.c:326,1
    - Dst: prefix_path
      Src: /src/git/builtin/checkout-index.c:328,1
    - Dst: checkout_file
      Src: /src/git/builtin/checkout-index.c:329,1
    - Dst: free
      Src: /src/git/builtin/checkout-index.c:330,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout-index.c:332,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout-index.c:333,1
    - Dst: checkout_all
      Src: /src/git/builtin/checkout-index.c:337,1
    - Dst: run_parallel_checkout
      Src: /src/git/builtin/checkout-index.c:340,1
    - Dst: is_lock_file_locked
      Src: /src/git/builtin/checkout-index.c:346,1
    - Dst: write_locked_index
      Src: /src/git/builtin/checkout-index.c:347,1
    - Dst: die
      Src: /src/git/builtin/checkout-index.c:348,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 213
    functionDepth: 21
    functionLinenumber: 213
    functionLinenumberEnd: 350
    functionName: cmd_checkout_index
    functionSourceFile: /src/git/builtin/checkout-index.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_BOOL
    - repo_hold_locked_index
    - getline_fn
    - free
    - repo_config
    - strbuf_swap
    - strbuf_release
    - OPT_END
    - die
    - OPT__FORCE
    - checkout_all
    - repo_read_index
    - checkout_file
    - run_parallel_checkout
    - OPT__QUIET
    - init_parallel_checkout
    - _
    - N_
    - is_lock_file_locked
    - get_parallel_checkout_configs
    - strbuf_reset
    - OPT_CALLBACK_F
    - OPT_STRING
    - prepare_repo_settings
    - write_locked_index
    - strlen
    - unquote_c_style
    - prefix_path
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: "int cmd_checkout_index(int argc,\n\t\t       const char **argv,\n\t\t
      \      const char *prefix,\n\t\t       struct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/builtin/update-index.c:66,1
    - Dst: va_start
      Src: /src/git/builtin/update-index.c:74,1
    - Dst: vprintf
      Src: /src/git/builtin/update-index.c:75,1
    - Dst: putchar
      Src: /src/git/builtin/update-index.c:76,1
    - Dst: va_end
      Src: /src/git/builtin/update-index.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: report
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 22
    functionsReached:
    - putchar
    - va_end
    - vprintf
    - va_start
    - format
    linkageType: ''
    returnType: void
    signature: void report(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/update-index.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 8
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: remove_test_directory
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - remove_dir_recursively
    linkageType: ''
    returnType: void
    signature: void remove_test_directory(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/update-index.c:89,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/update-index.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: get_mtime_path
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addf
    linkageType: ''
    returnType: char
    signature: char *get_mtime_path(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_mtime_path
      Src: /src/git/builtin/update-index.c:96,1
    - Dst: mkdir
      Src: /src/git/builtin/update-index.c:97,1
    - Dst: die_errno
      Src: /src/git/builtin/update-index.c:98,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: xmkdir
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - mkdir
    - get_mtime_path
    - die_errno
    - _
    linkageType: ''
    returnType: void
    signature: void xmkdir(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/builtin/update-index.c:103,1
    - Dst: die_errno
      Src: /src/git/builtin/update-index.c:104,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: xstat_mtime_dir
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - stat
    - die_errno
    - _
    linkageType: ''
    returnType: int
    signature: int xstat_mtime_dir(struct stat *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_mtime_path
      Src: /src/git/builtin/update-index.c:111,1
    - Dst: xopen
      Src: /src/git/builtin/update-index.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: create_file
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 3
    functionsReached:
    - get_mtime_path
    - xopen
    linkageType: ''
    returnType: int
    signature: int create_file(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_mtime_path
      Src: /src/git/builtin/update-index.c:118,1
    - Dst: unlink
      Src: /src/git/builtin/update-index.c:119,1
    - Dst: die_errno
      Src: /src/git/builtin/update-index.c:120,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: xunlink
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - get_mtime_path
    - die_errno
    - _
    - unlink
    linkageType: ''
    returnType: void
    signature: void xunlink(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_mtime_path
      Src: /src/git/builtin/update-index.c:125,1
    - Dst: rmdir
      Src: /src/git/builtin/update-index.c:126,1
    - Dst: die_errno
      Src: /src/git/builtin/update-index.c:127,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: xrmdir
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - rmdir
    - get_mtime_path
    - die_errno
    - _
    linkageType: ''
    returnType: void
    signature: void xrmdir(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sleep
      Src: /src/git/builtin/update-index.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: avoid_racy
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - sleep
    linkageType: ''
    returnType: void
    signature: void avoid_racy(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/update-index.c:147,1
    - Dst: mkdtemp
      Src: /src/git/builtin/update-index.c:148,1
    - Dst: die_errno
      Src: /src/git/builtin/update-index.c:149,1
    - Dst: xgetcwd
      Src: /src/git/builtin/update-index.c:151,1
    - Dst: fprintf
      Src: /src/git/builtin/update-index.c:152,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:152,1
    - Dst: free
      Src: /src/git/builtin/update-index.c:153,1
    - Dst: atexit
      Src: /src/git/builtin/update-index.c:155,1
    - Dst: xstat_mtime_dir
      Src: /src/git/builtin/update-index.c:156,1
    - Dst: fill_stat_data
      Src: /src/git/builtin/update-index.c:157,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:158,1
    - Dst: avoid_racy
      Src: /src/git/builtin/update-index.c:160,1
    - Dst: create_file
      Src: /src/git/builtin/update-index.c:161,1
    - Dst: xstat_mtime_dir
      Src: /src/git/builtin/update-index.c:162,1
    - Dst: match_stat_data
      Src: /src/git/builtin/update-index.c:163,1
    - Dst: close
      Src: /src/git/builtin/update-index.c:164,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:165,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/update-index.c:166,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:166,1
    - Dst: fill_stat_data
      Src: /src/git/builtin/update-index.c:170,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:171,1
    - Dst: avoid_racy
      Src: /src/git/builtin/update-index.c:173,1
    - Dst: xmkdir
      Src: /src/git/builtin/update-index.c:174,1
    - Dst: xstat_mtime_dir
      Src: /src/git/builtin/update-index.c:175,1
    - Dst: match_stat_data
      Src: /src/git/builtin/update-index.c:176,1
    - Dst: close
      Src: /src/git/builtin/update-index.c:177,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:178,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/update-index.c:179,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:179,1
    - Dst: fill_stat_data
      Src: /src/git/builtin/update-index.c:183,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:184,1
    - Dst: avoid_racy
      Src: /src/git/builtin/update-index.c:186,1
    - Dst: write_or_die
      Src: /src/git/builtin/update-index.c:187,1
    - Dst: close
      Src: /src/git/builtin/update-index.c:188,1
    - Dst: xstat_mtime_dir
      Src: /src/git/builtin/update-index.c:189,1
    - Dst: match_stat_data
      Src: /src/git/builtin/update-index.c:190,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:191,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/update-index.c:192,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:192,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:196,1
    - Dst: avoid_racy
      Src: /src/git/builtin/update-index.c:198,1
    - Dst: close
      Src: /src/git/builtin/update-index.c:199,1
    - Dst: create_file
      Src: /src/git/builtin/update-index.c:199,1
    - Dst: xstat_mtime_dir
      Src: /src/git/builtin/update-index.c:200,1
    - Dst: match_stat_data
      Src: /src/git/builtin/update-index.c:201,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:202,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/update-index.c:203,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:203,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:207,1
    - Dst: avoid_racy
      Src: /src/git/builtin/update-index.c:209,1
    - Dst: xunlink
      Src: /src/git/builtin/update-index.c:210,1
    - Dst: xstat_mtime_dir
      Src: /src/git/builtin/update-index.c:211,1
    - Dst: match_stat_data
      Src: /src/git/builtin/update-index.c:212,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:213,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/update-index.c:214,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:214,1
    - Dst: fill_stat_data
      Src: /src/git/builtin/update-index.c:218,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:219,1
    - Dst: avoid_racy
      Src: /src/git/builtin/update-index.c:221,1
    - Dst: xunlink
      Src: /src/git/builtin/update-index.c:222,1
    - Dst: xrmdir
      Src: /src/git/builtin/update-index.c:223,1
    - Dst: xstat_mtime_dir
      Src: /src/git/builtin/update-index.c:224,1
    - Dst: match_stat_data
      Src: /src/git/builtin/update-index.c:225,1
    - Dst: fputc
      Src: /src/git/builtin/update-index.c:226,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/update-index.c:227,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:227,1
    - Dst: rmdir
      Src: /src/git/builtin/update-index.c:232,1
    - Dst: die_errno
      Src: /src/git/builtin/update-index.c:233,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:233,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/update-index.c:234,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:234,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-index.c:238,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 240
    functionName: test_if_untracked_cache_is_supported
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - xmkdir
    - mkdtemp
    - match_stat_data
    - free
    - create_file
    - write_or_die
    - xgetcwd
    - strbuf_release
    - xrmdir
    - rmdir
    - strbuf_addstr
    - atexit
    - fprintf_ln
    - avoid_racy
    - die_errno
    - xstat_mtime_dir
    - fill_stat_data
    - xunlink
    - _
    - close
    - fputc
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_if_untracked_cache_is_supported(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/update-index.c:244,1
    - Dst: index_name_pos
      Src: /src/git/builtin/update-index.c:245,1
    - Dst: mark_fsmonitor_invalid
      Src: /src/git/builtin/update-index.c:247,1
    - Dst: cache_tree_invalidate_path
      Src: /src/git/builtin/update-index.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - path
    - flag
    - mark
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: mark_ce_flags
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - cache_tree_invalidate_path
    - strlen
    - index_name_pos
    - mark_fsmonitor_invalid
    linkageType: ''
    returnType: int
    signature: int mark_ce_flags(const char *path, int flag, int mark)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/update-index.c:263,1
    - Dst: remove_file_from_index
      Src: /src/git/builtin/update-index.c:264,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: remove_one_path
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - error
    - remove_file_from_index
    linkageType: ''
    returnType: int
    signature: int remove_one_path(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_missing_file_error
      Src: /src/git/builtin/update-index.c:278,1
    - Dst: remove_one_path
      Src: /src/git/builtin/update-index.c:279,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:280,1
    - Dst: strerror
      Src: /src/git/builtin/update-index.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - path
    - err
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 7
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: process_lstat_error
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - error
    - remove_one_path
    - strerror
    - is_missing_file_error
    linkageType: ''
    returnType: int
    signature: int process_lstat_error(const char *path, int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ce_stage
      Src: /src/git/builtin/update-index.c:289,1
    - Dst: ie_match_stat
      Src: /src/git/builtin/update-index.c:289,1
    - Dst: make_empty_cache_entry
      Src: /src/git/builtin/update-index.c:292,1
    - Dst: memcpy
      Src: /src/git/builtin/update-index.c:293,1
    - Dst: create_ce_flags
      Src: /src/git/builtin/update-index.c:294,1
    - Dst: fill_stat_cache_info
      Src: /src/git/builtin/update-index.c:296,1
    - Dst: ce_mode_from_stat
      Src: /src/git/builtin/update-index.c:297,1
    - Dst: index_path
      Src: /src/git/builtin/update-index.c:299,1
    - Dst: discard_cache_entry
      Src: /src/git/builtin/update-index.c:301,1
    - Dst: add_index_entry
      Src: /src/git/builtin/update-index.c:306,1
    - Dst: discard_cache_entry
      Src: /src/git/builtin/update-index.c:307,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - old
    - path
    - len
    - st
    argTypes:
    - struct cache_entry*
    - char*
    - int
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 283
    functionDepth: 9
    functionLinenumber: 283
    functionLinenumberEnd: 311
    functionName: add_one_path
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - error
    - index_path
    - ie_match_stat
    - make_empty_cache_entry
    - memcpy
    - discard_cache_entry
    - add_index_entry
    - fill_stat_cache_info
    - ce_mode_from_stat
    - create_ce_flags
    - ce_stage
    linkageType: ''
    returnType: int
    signature: int add_one_path(const struct cache_entry *old, const char *path, int
      len, struct stat *st)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/builtin/update-index.c:339,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/update-index.c:344,1
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/builtin/update-index.c:347,1
    - Dst: add_one_path
      Src: /src/git/builtin/update-index.c:351,1
    - Dst: remove_one_path
      Src: /src/git/builtin/update-index.c:354,1
    - Dst: strncmp
      Src: /src/git/builtin/update-index.c:362,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:370,1
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/builtin/update-index.c:374,1
    - Dst: add_one_path
      Src: /src/git/builtin/update-index.c:375,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:378,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - path
    - len
    - st
    argTypes:
    - char*
    - int
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 336
    functionDepth: 10
    functionLinenumber: 336
    functionLinenumberEnd: 379
    functionName: process_directory
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - error
    - index_name_pos
    - S_ISGITLINK
    - remove_one_path
    - add_one_path
    - repo_resolve_gitlink_ref
    - strncmp
    linkageType: ''
    returnType: int
    signature: int process_directory(const char *path, int len, struct stat *st)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/update-index.c:386,1
    - Dst: has_symlink_leading_path
      Src: /src/git/builtin/update-index.c:387,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:388,1
    - Dst: index_name_pos
      Src: /src/git/builtin/update-index.c:390,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/update-index.c:392,1
    - Dst: remove_file_from_index
      Src: /src/git/builtin/update-index.c:399,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:400,1
    - Dst: process_lstat_error
      Src: /src/git/builtin/update-index.c:409,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/update-index.c:411,1
    - Dst: process_directory
      Src: /src/git/builtin/update-index.c:412,1
    - Dst: add_one_path
      Src: /src/git/builtin/update-index.c:414,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - path
    - st
    - stat_errno
    argTypes:
    - char*
    - struct stat*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 381
    functionDepth: 11
    functionLinenumber: 381
    functionLinenumberEnd: 415
    functionName: process_path
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - error
    - index_name_pos
    - S_ISDIR
    - process_lstat_error
    - remove_file_from_index
    - strlen
    - ce_skip_worktree
    - process_directory
    - add_one_path
    - has_symlink_leading_path
    linkageType: ''
    returnType: int
    signature: int process_path(const char *path, struct stat *st, int stat_errno)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: verify_path
      Src: /src/git/builtin/update-index.c:423,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:424,1
    - Dst: strlen
      Src: /src/git/builtin/update-index.c:426,1
    - Dst: make_empty_cache_entry
      Src: /src/git/builtin/update-index.c:427,1
    - Dst: oidcpy
      Src: /src/git/builtin/update-index.c:429,1
    - Dst: memcpy
      Src: /src/git/builtin/update-index.c:430,1
    - Dst: create_ce_flags
      Src: /src/git/builtin/update-index.c:431,1
    - Dst: create_ce_mode
      Src: /src/git/builtin/update-index.c:433,1
    - Dst: add_index_entry
      Src: /src/git/builtin/update-index.c:438,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:439,1
    - Dst: report
      Src: /src/git/builtin/update-index.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - mode
    - oid
    - path
    - stage
    argTypes:
    - unsigned int
    - struct object_id*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 417
    functionDepth: 8
    functionLinenumber: 417
    functionLinenumberEnd: 443
    functionName: add_cacheinfo
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - error
    - verify_path
    - oidcpy
    - make_empty_cache_entry
    - report
    - memcpy
    - add_index_entry
    - strlen
    - create_ce_mode
    - create_ce_flags
    linkageType: ''
    returnType: int
    signature: "int add_cacheinfo(unsigned int mode, const struct object_id *oid,\n\t\t\t
      const char *path, int stage)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/builtin/update-index.c:450,1
    - Dst: strlen
      Src: /src/git/builtin/update-index.c:450,1
    - Dst: chmod_index_entry
      Src: /src/git/builtin/update-index.c:454,1
    - Dst: report
      Src: /src/git/builtin/update-index.c:457,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - flip
    - path
    argTypes:
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 445
    functionDepth: 6
    functionLinenumber: 445
    functionLinenumberEnd: 461
    functionName: chmod_path
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - die
    - chmod_index_entry
    - report
    - strlen
    linkageType: ''
    returnType: void
    signature: void chmod_path(char flip, const char *path)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/builtin/update-index.c:471,1
    - Dst: verify_path
      Src: /src/git/builtin/update-index.c:476,1
    - Dst: fprintf
      Src: /src/git/builtin/update-index.c:477,1
    - Dst: mark_ce_flags
      Src: /src/git/builtin/update-index.c:481,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:482,1
    - Dst: mark_ce_flags
      Src: /src/git/builtin/update-index.c:486,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:487,1
    - Dst: mark_ce_flags
      Src: /src/git/builtin/update-index.c:491,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:492,1
    - Dst: remove_file_from_index
      Src: /src/git/builtin/update-index.c:497,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:498,1
    - Dst: report
      Src: /src/git/builtin/update-index.c:499,1
    - Dst: process_path
      Src: /src/git/builtin/update-index.c:502,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:503,1
    - Dst: report
      Src: /src/git/builtin/update-index.c:504,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 463
    functionDepth: 12
    functionLinenumber: 463
    functionLinenumberEnd: 505
    functionName: update_one
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 2
    functionsReached:
    - verify_path
    - process_path
    - die
    - mark_ce_flags
    - remove_file_from_index
    - report
    - lstat
    - fprintf
    linkageType: ''
    returnType: void
    signature: void update_one(const char *path)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getline_fn
      Src: /src/git/builtin/update-index.c:515,1
    - Dst: strtoul
      Src: /src/git/builtin/update-index.c:540,1
    - Dst: strchr
      Src: /src/git/builtin/update-index.c:546,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/update-index.c:560,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/update-index.c:566,1
    - Dst: unquote_c_style
      Src: /src/git/builtin/update-index.c:567,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:568,1
    - Dst: verify_path
      Src: /src/git/builtin/update-index.c:573,1
    - Dst: fprintf
      Src: /src/git/builtin/update-index.c:574,1
    - Dst: remove_file_from_index
      Src: /src/git/builtin/update-index.c:580,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:581,1
    - Dst: add_cacheinfo
      Src: /src/git/builtin/update-index.c:590,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:591,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:597,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-index.c:599,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-index.c:600,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 1
    argNames:
    - nul_term_line
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 507
    functionDepth: 9
    functionLinenumber: 507
    functionLinenumberEnd: 601
    functionName: read_index_info
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - add_cacheinfo
    - verify_path
    - strbuf_release
    - die
    - get_oid_hex
    - strbuf_reset
    - remove_file_from_index
    - strchr
    - getline_fn
    - unquote_c_style
    - fprintf
    - strtoul
    linkageType: ''
    returnType: void
    signature: void read_index_info(int nul_term_line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_tree_entry
      Src: /src/git/builtin/update-index.c:616,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:618,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:623,1
    - Dst: make_empty_cache_entry
      Src: /src/git/builtin/update-index.c:626,1
    - Dst: oidcpy
      Src: /src/git/builtin/update-index.c:628,1
    - Dst: memcpy
      Src: /src/git/builtin/update-index.c:629,1
    - Dst: create_ce_flags
      Src: /src/git/builtin/update-index.c:630,1
    - Dst: create_ce_mode
      Src: /src/git/builtin/update-index.c:632,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - which
    - ent
    - path
    - namelen
    - stage
    argTypes:
    - char*
    - struct object_id*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 608
    functionDepth: 7
    functionLinenumber: 608
    functionLinenumberEnd: 634
    functionName: read_one_ent
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - error
    - get_tree_entry
    - oidcpy
    - make_empty_cache_entry
    - memcpy
    - create_ce_mode
    - create_ce_flags
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *read_one_ent(const char *which,\n\t\t\t\t\tstruct
      object_id *ent, const char *path,\n\t\t\t\t\tint namelen, int stage)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_lookup
      Src: /src/git/builtin/update-index.c:643,1
    - Dst: unmerge_index_entry
      Src: /src/git/builtin/update-index.c:646,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/update-index.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 636
    functionDepth: 9
    functionLinenumber: 636
    functionLinenumberEnd: 649
    functionName: unresolve_one
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    - FREE_AND_NULL
    - unmerge_index_entry
    linkageType: ''
    returnType: int
    signature: int unresolve_one(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prefix_path
      Src: /src/git/builtin/update-index.c:659,1
    - Dst: unresolve_one
      Src: /src/git/builtin/update-index.c:660,1
    - Dst: free
      Src: /src/git/builtin/update-index.c:661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - prefix_length
    argTypes:
    - int
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 651
    functionDepth: 10
    functionLinenumber: 651
    functionLinenumberEnd: 664
    functionName: do_unresolve
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - prefix_path
    - unresolve_one
    - free
    linkageType: ''
    returnType: int
    signature: "int do_unresolve(int ac, const char **av,\n\t\t\tconst char *prefix,
      int prefix_length)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_pathspec
      Src: /src/git/builtin/update-index.c:677,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/update-index.c:681,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/update-index.c:681,1
    - Dst: ce_stage
      Src: /src/git/builtin/update-index.c:693,1
    - Dst: ce_path_match
      Src: /src/git/builtin/update-index.c:693,1
    - Dst: read_one_ent
      Src: /src/git/builtin/update-index.c:696,1
    - Dst: ce_namelen
      Src: /src/git/builtin/update-index.c:697,1
    - Dst: oideq
      Src: /src/git/builtin/update-index.c:699,1
    - Dst: discard_cache_entry
      Src: /src/git/builtin/update-index.c:700,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/builtin/update-index.c:708,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/update-index.c:709,1
    - Dst: xstrdup
      Src: /src/git/builtin/update-index.c:718,1
    - Dst: update_one
      Src: /src/git/builtin/update-index.c:719,1
    - Dst: free
      Src: /src/git/builtin/update-index.c:720,1
    - Dst: discard_cache_entry
      Src: /src/git/builtin/update-index.c:721,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/update-index.c:725,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - paths
    - prefix
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 666
    functionDepth: 15
    functionLinenumber: 666
    functionLinenumberEnd: 727
    functionName: do_reupdate
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - clear_pathspec
    - ce_namelen
    - read_one_ent
    - refs_read_ref
    - ce_path_match
    - S_ISSPARSEDIR
    - discard_cache_entry
    - update_one
    - free
    - xstrdup
    - parse_pathspec
    - ce_stage
    - oideq
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int do_reupdate(const char **paths,\n\t\t       const char *prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_work_tree
      Src: /src/git/builtin/update-index.c:736,1
    - Dst: repo_read_index
      Src: /src/git/builtin/update-index.c:737,1
    - Dst: refresh_index
      Src: /src/git/builtin/update-index.c:738,1
    - Dst: has_racy_timestamp
      Src: /src/git/builtin/update-index.c:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - o
    - flag
    argTypes:
    - struct refresh_params*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 734
    functionDepth: 12
    functionLinenumber: 734
    functionLinenumberEnd: 752
    functionName: refresh
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - repo_read_index
    - has_racy_timestamp
    - setup_work_tree
    - refresh_index
    linkageType: ''
    returnType: int
    signature: int refresh(struct refresh_params *o, unsigned int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/update-index.c:757,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/update-index.c:758,1
    - Dst: refresh
      Src: /src/git/builtin/update-index.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 760
    functionName: refresh_callback
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 1
    functionsReached:
    - refresh
    - BUG_ON_OPT_NEG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int refresh_callback(const struct option *opt,\n\t\t\t\tconst char
      *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/update-index.c:765,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/update-index.c:766,1
    - Dst: refresh
      Src: /src/git/builtin/update-index.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 768
    functionName: really_refresh_callback
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - refresh
    - BUG_ON_OPT_NEG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int really_refresh_callback(const struct option *opt,\n\t\t\t\tconst
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/update-index.c:774,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 779
    functionName: chmod_callback
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int chmod_callback(const struct option *opt,\n\t\t\t\tconst char *arg,
      int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/update-index.c:784,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/update-index.c:785,1
    - Dst: resolve_undo_clear_index
      Src: /src/git/builtin/update-index.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - UNUSED
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 788
    functionName: resolve_undo_clear_callback
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - resolve_undo_clear_index
    - BUG_ON_OPT_NEG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int resolve_undo_clear_callback(const struct option *opt UNUSED,\n\t\t\t\tconst
      char *arg, int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/builtin/update-index.c:803,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/update-index.c:808,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - arg
    - mode
    - oid
    - path
    argTypes:
    - char*
    - unsigned int*
    - struct object_id*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 812
    functionName: parse_new_style_cacheinfo
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - parse_oid_hex
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int parse_new_style_cacheinfo(const char *arg,\n\t\t\t\t     unsigned
      int *mode,\n\t\t\t\t     struct object_id *oid,\n\t\t\t\t     const char **path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/update-index.c:822,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/update-index.c:823,1
    - Dst: parse_new_style_cacheinfo
      Src: /src/git/builtin/update-index.c:825,1
    - Dst: add_cacheinfo
      Src: /src/git/builtin/update-index.c:826,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:827,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:833,1
    - Dst: strtoul_ui
      Src: /src/git/builtin/update-index.c:834,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/update-index.c:835,1
    - Dst: add_cacheinfo
      Src: /src/git/builtin/update-index.c:836,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:837,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - UNUSED
    - arg
    - unset
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 814
    functionDepth: 9
    functionLinenumber: 814
    functionLinenumberEnd: 840
    functionName: cacheinfo_callback
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - add_cacheinfo
    - error
    - BUG_ON_OPT_ARG
    - die
    - get_oid_hex
    - parse_new_style_cacheinfo
    - strtoul_ui
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result cacheinfo_callback(\n\tstruct parse_opt_ctx_t
      *ctx, const struct option *opt UNUSED,\n\tconst char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/update-index.c:848,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/update-index.c:849,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:852,1
    - Dst: read_index_info
      Src: /src/git/builtin/update-index.c:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - opt
    - arg
    - unset
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 842
    functionDepth: 10
    functionLinenumber: 842
    functionLinenumberEnd: 856
    functionName: stdin_cacheinfo_callback
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - read_index_info
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result stdin_cacheinfo_callback(\n\tstruct parse_opt_ctx_t
      *ctx, const struct option *opt,\n\tconst char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/update-index.c:864,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/update-index.c:865,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - opt
    - arg
    - unset
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 871
    functionName: stdin_callback
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result stdin_callback(\n\tstruct parse_opt_ctx_t *ctx,
      const struct option *opt,\n\tconst char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/update-index.c:880,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/update-index.c:881,1
    - Dst: do_unresolve
      Src: /src/git/builtin/update-index.c:884,1
    - Dst: strlen
      Src: /src/git/builtin/update-index.c:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - opt
    - arg
    - unset
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 873
    functionDepth: 11
    functionLinenumber: 873
    functionLinenumberEnd: 892
    functionName: unresolve_callback
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - strlen
    - BUG_ON_OPT_NEG
    - do_unresolve
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result unresolve_callback(\n\tstruct parse_opt_ctx_t
      *ctx, const struct option *opt,\n\tconst char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/update-index.c:901,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/update-index.c:902,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/update-index.c:905,1
    - Dst: do_reupdate
      Src: /src/git/builtin/update-index.c:906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - opt
    - arg
    - unset
    argTypes:
    - struct parse_opt_ctx_t*
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 894
    functionDepth: 16
    functionLinenumber: 894
    functionLinenumberEnd: 913
    functionName: reupdate_callback
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - do_reupdate
    - BUG_ON_OPT_NEG
    - setup_work_tree
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: enum parse_opt_result
    signature: "enum parse_opt_result reupdate_callback(\n\tstruct parse_opt_ctx_t
      *ctx, const struct option *opt,\n\tconst char *arg, int unset)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/update-index.c:923,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/update-index.c:938,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:939,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/update-index.c:941,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:942,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/update-index.c:944,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:945,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/update-index.c:946,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:947,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/update-index.c:948,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:949,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/update-index.c:950,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:951,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/update-index.c:953,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:954,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/update-index.c:957,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:958,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:964,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:965,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/update-index.c:970,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:971,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:979,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:988,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:997,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1006,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/update-index.c:1010,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1011,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/update-index.c:1012,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1013,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/update-index.c:1014,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1015,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/update-index.c:1016,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1017,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1022,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1030,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1038,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1047,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/update-index.c:1051,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1052,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/update-index.c:1054,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1055,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/update-index.c:1056,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1057,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/update-index.c:1060,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1061,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/update-index.c:1062,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1063,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/update-index.c:1064,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1065,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/update-index.c:1066,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1067,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/update-index.c:1068,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1069,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/update-index.c:1070,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1071,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/update-index.c:1072,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1073,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/update-index.c:1074,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1075,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1081,1
    - Dst: N_
      Src: /src/git/builtin/update-index.c:1090,1
    - Dst: OPT_END
      Src: /src/git/builtin/update-index.c:1094,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/update-index.c:1097,1
    - Dst: repo_config
      Src: /src/git/builtin/update-index.c:1100,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/update-index.c:1102,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/update-index.c:1106,1
    - Dst: repo_read_index
      Src: /src/git/builtin/update-index.c:1110,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:1112,1
    - Dst: parse_options_start
      Src: /src/git/builtin/update-index.c:1120,1
    - Dst: odb_transaction_begin
      Src: /src/git/builtin/update-index.c:1127,1
    - Dst: parse_options_step
      Src: /src/git/builtin/update-index.c:1130,1
    - Dst: exit
      Src: /src/git/builtin/update-index.c:1137,1
    - Dst: exit
      Src: /src/git/builtin/update-index.c:1139,1
    - Dst: odb_transaction_commit
      Src: /src/git/builtin/update-index.c:1157,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/update-index.c:1161,1
    - Dst: prefix_path
      Src: /src/git/builtin/update-index.c:1162,1
    - Dst: update_one
      Src: /src/git/builtin/update-index.c:1163,1
    - Dst: chmod_path
      Src: /src/git/builtin/update-index.c:1165,1
    - Dst: free
      Src: /src/git/builtin/update-index.c:1166,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:1173,1
    - Dst: error
      Src: /src/git/builtin/update-index.c:1175,1
    - Dst: usage_with_options
      Src: /src/git/builtin/update-index.c:1176,1
    - Dst: parse_options_end
      Src: /src/git/builtin/update-index.c:1179,1
    - Dst: printf
      Src: /src/git/builtin/update-index.c:1184,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1184,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:1187,1
    - Dst: report
      Src: /src/git/builtin/update-index.c:1193,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1193,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/update-index.c:1203,1
    - Dst: getline_fn
      Src: /src/git/builtin/update-index.c:1204,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/update-index.c:1207,1
    - Dst: unquote_c_style
      Src: /src/git/builtin/update-index.c:1208,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:1209,1
    - Dst: strbuf_swap
      Src: /src/git/builtin/update-index.c:1210,1
    - Dst: prefix_path
      Src: /src/git/builtin/update-index.c:1212,1
    - Dst: update_one
      Src: /src/git/builtin/update-index.c:1213,1
    - Dst: chmod_path
      Src: /src/git/builtin/update-index.c:1215,1
    - Dst: free
      Src: /src/git/builtin/update-index.c:1216,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-index.c:1218,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-index.c:1219,1
    - Dst: odb_transaction_commit
      Src: /src/git/builtin/update-index.c:1225,1
    - Dst: repo_config_get_split_index
      Src: /src/git/builtin/update-index.c:1228,1
    - Dst: warning
      Src: /src/git/builtin/update-index.c:1229,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1229,1
    - Dst: add_split_index
      Src: /src/git/builtin/update-index.c:1235,1
    - Dst: repo_config_get_split_index
      Src: /src/git/builtin/update-index.c:1237,1
    - Dst: warning
      Src: /src/git/builtin/update-index.c:1238,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1238,1
    - Dst: remove_split_index
      Src: /src/git/builtin/update-index.c:1241,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/update-index.c:1244,1
    - Dst: warning
      Src: /src/git/builtin/update-index.c:1250,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1250,1
    - Dst: remove_untracked_cache
      Src: /src/git/builtin/update-index.c:1253,1
    - Dst: report
      Src: /src/git/builtin/update-index.c:1254,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1254,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/update-index.c:1257,1
    - Dst: test_if_untracked_cache_is_supported
      Src: /src/git/builtin/update-index.c:1258,1
    - Dst: warning
      Src: /src/git/builtin/update-index.c:1262,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1262,1
    - Dst: add_untracked_cache
      Src: /src/git/builtin/update-index.c:1265,1
    - Dst: report
      Src: /src/git/builtin/update-index.c:1266,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1266,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/update-index.c:1266,1
    - Dst: BUG
      Src: /src/git/builtin/update-index.c:1269,1
    - Dst: fsm_settings__get_mode
      Src: /src/git/builtin/update-index.c:1273,1
    - Dst: fsm_settings__get_reason
      Src: /src/git/builtin/update-index.c:1274,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:1287,1
    - Dst: fsm_settings__get_incompatible_msg
      Src: /src/git/builtin/update-index.c:1288,1
    - Dst: warning
      Src: /src/git/builtin/update-index.c:1291,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1291,1
    - Dst: add_fsmonitor
      Src: /src/git/builtin/update-index.c:1295,1
    - Dst: report
      Src: /src/git/builtin/update-index.c:1296,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1296,1
    - Dst: fsm_settings__get_mode
      Src: /src/git/builtin/update-index.c:1298,1
    - Dst: warning
      Src: /src/git/builtin/update-index.c:1300,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1300,1
    - Dst: remove_fsmonitor
      Src: /src/git/builtin/update-index.c:1303,1
    - Dst: report
      Src: /src/git/builtin/update-index.c:1304,1
    - Dst: _
      Src: /src/git/builtin/update-index.c:1304,1
    - Dst: exit
      Src: /src/git/builtin/update-index.c:1310,1
    - Dst: unable_to_lock_die
      Src: /src/git/builtin/update-index.c:1311,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/update-index.c:1311,1
    - Dst: write_locked_index
      Src: /src/git/builtin/update-index.c:1313,1
    - Dst: die
      Src: /src/git/builtin/update-index.c:1314,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/update-index.c:1317,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 143
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 915
    functionDepth: 21
    functionLinenumber: 915
    functionLinenumberEnd: 1320
    functionName: cmd_update_index
    functionSourceFile: /src/git/builtin/update-index.c
    functionUses: 0
    functionsReached:
    - fsm_settings__get_reason
    - BUG
    - parse_options_start
    - OPT_BOOL
    - remove_untracked_cache
    - repo_hold_locked_index
    - getline_fn
    - free
    - unable_to_lock_die
    - repo_config
    - printf
    - strbuf_swap
    - usage_with_options
    - error
    - remove_split_index
    - strbuf_release
    - OPT_END
    - die
    - add_fsmonitor
    - repo_read_index
    - repo_get_index_file
    - OPT_BIT
    - rollback_lock_file
    - update_one
    - OPT_INTEGER
    - setup_work_tree
    - odb_transaction_commit
    - OPT_SET_INT
    - chmod_path
    - repo_get_work_tree
    - fsm_settings__get_incompatible_msg
    - remove_fsmonitor
    - parse_options_step
    - _
    - N_
    - test_if_untracked_cache_is_supported
    - fsm_settings__get_mode
    - warning
    - strbuf_reset
    - exit
    - OPT_CALLBACK_F
    - report
    - prepare_repo_settings
    - write_locked_index
    - odb_transaction_begin
    - strlen
    - unquote_c_style
    - add_split_index
    - add_untracked_cache
    - prefix_path
    - repo_config_get_split_index
    - parse_options_end
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: "int cmd_update_index(int argc,\n\t\t     const char **argv,\n\t\t
      \    const char *prefix,\n\t\t     struct repository *repo UNUSED)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/send-pack.c:98,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/send-pack.c:99,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/send-pack.c:103,1
    - Dst: quote_two_c_style
      Src: /src/git/builtin/send-pack.c:104,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/send-pack.c:106,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/send-pack.c:111,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/send-pack.c:113,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/send-pack.c:116,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/send-pack.c:117,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/send-pack.c:119,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/send-pack.c:120,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/send-pack.c:122,1
    - Dst: write_or_die
      Src: /src/git/builtin/send-pack.c:125,1
    - Dst: strbuf_release
      Src: /src/git/builtin/send-pack.c:127,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 128
    functionName: print_helper_status
    functionSourceFile: /src/git/builtin/send-pack.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - strbuf_release
    - oid_to_hex
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - quote_two_c_style
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void print_helper_status(struct ref *ref)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/send-pack.c:133,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/send-pack.c:134,1
    - Dst: strcasecmp
      Src: /src/git/builtin/send-pack.c:142,1
    - Dst: error
      Src: /src/git/builtin/send-pack.c:145,1
    - Dst: _
      Src: /src/git/builtin/send-pack.c:145,1
    - Dst: git_default_config
      Src: /src/git/builtin/send-pack.c:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - k
    - v
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 149
    functionName: send_pack_config
    functionSourceFile: /src/git/builtin/send-pack.c
    functionUses: 0
    functionsReached:
    - error
    - strcasecmp
    - git_parse_maybe_bool
    - strcmp
    - git_default_config
    - _
    linkageType: ''
    returnType: int
    signature: "int send_pack_config(const char *k, const char *v,\n\t\t\t    const
      struct config_context *ctx, void *cb)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSITY
      Src: /src/git/builtin/send-pack.c:188,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/send-pack.c:189,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:189,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/send-pack.c:190,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:190,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/send-pack.c:191,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:191,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:192,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:192,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:193,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:193,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:194,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:194,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:195,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:195,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/send-pack.c:196,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:196,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/send-pack.c:198,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:199,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:200,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:201,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:201,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:202,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:202,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:203,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:203,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:204,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:204,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:205,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:205,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:206,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:206,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/send-pack.c:207,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:207,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:208,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/send-pack.c:210,1
    - Dst: N_
      Src: /src/git/builtin/send-pack.c:211,1
    - Dst: OPT_END
      Src: /src/git/builtin/send-pack.c:212,1
    - Dst: repo_config
      Src: /src/git/builtin/send-pack.c:215,1
    - Dst: parse_options
      Src: /src/git/builtin/send-pack.c:216,1
    - Dst: refspec_appendn
      Src: /src/git/builtin/send-pack.c:219,1
    - Dst: usage_with_options
      Src: /src/git/builtin/send-pack.c:223,1
    - Dst: packet_read_line
      Src: /src/git/builtin/send-pack.c:241,1
    - Dst: refspec_append
      Src: /src/git/builtin/send-pack.c:242,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/send-pack.c:245,1
    - Dst: refspec_append
      Src: /src/git/builtin/send-pack.c:246,1
    - Dst: strbuf_release
      Src: /src/git/builtin/send-pack.c:247,1
    - Dst: usage_with_options
      Src: /src/git/builtin/send-pack.c:257,1
    - Dst: remote_get
      Src: /src/git/builtin/send-pack.c:260,1
    - Dst: remote_has_url
      Src: /src/git/builtin/send-pack.c:261,1
    - Dst: die
      Src: /src/git/builtin/send-pack.c:262,1
    - Dst: isatty
      Src: /src/git/builtin/send-pack.c:268,1
    - Dst: git_connect
      Src: /src/git/builtin/send-pack.c:276,1
    - Dst: packet_reader_init
      Src: /src/git/builtin/send-pack.c:280,1
    - Dst: discover_version
      Src: /src/git/builtin/send-pack.c:285,1
    - Dst: die
      Src: /src/git/builtin/send-pack.c:287,1
    - Dst: get_remote_heads
      Src: /src/git/builtin/send-pack.c:291,1
    - Dst: BUG
      Src: /src/git/builtin/send-pack.c:295,1
    - Dst: get_local_heads
      Src: /src/git/builtin/send-pack.c:298,1
    - Dst: match_push_refs
      Src: /src/git/builtin/send-pack.c:308,1
    - Dst: is_empty_cas
      Src: /src/git/builtin/send-pack.c:312,1
    - Dst: apply_push_cas
      Src: /src/git/builtin/send-pack.c:313,1
    - Dst: is_empty_cas
      Src: /src/git/builtin/send-pack.c:315,1
    - Dst: set_ref_status_for_push
      Src: /src/git/builtin/send-pack.c:318,1
    - Dst: send_pack
      Src: /src/git/builtin/send-pack.c:321,1
    - Dst: print_helper_status
      Src: /src/git/builtin/send-pack.c:324,1
    - Dst: close
      Src: /src/git/builtin/send-pack.c:326,1
    - Dst: close
      Src: /src/git/builtin/send-pack.c:327,1
    - Dst: finish_connect
      Src: /src/git/builtin/send-pack.c:329,1
    - Dst: transport_print_push_status
      Src: /src/git/builtin/send-pack.c:332,1
    - Dst: transport_update_tracking_ref
      Src: /src/git/builtin/send-pack.c:337,1
    - Dst: transport_refs_pushed
      Src: /src/git/builtin/send-pack.c:340,1
    - Dst: fprintf
      Src: /src/git/builtin/send-pack.c:342,1
    - Dst: string_list_clear
      Src: /src/git/builtin/send-pack.c:345,1
    - Dst: free_refs
      Src: /src/git/builtin/send-pack.c:346,1
    - Dst: free_refs
      Src: /src/git/builtin/send-pack.c:347,1
    - Dst: refspec_clear
      Src: /src/git/builtin/send-pack.c:348,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/send-pack.c:349,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/send-pack.c:350,1
    - Dst: clear_cas_option
      Src: /src/git/builtin/send-pack.c:351,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 101
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 151
    functionDepth: 23
    functionLinenumber: 151
    functionLinenumberEnd: 353
    functionName: cmd_send_pack
    functionSourceFile: /src/git/builtin/send-pack.c
    functionUses: 0
    functionsReached:
    - parse_options
    - packet_read_line
    - refspec_appendn
    - apply_push_cas
    - OPT_BOOL
    - remote_get
    - transport_print_push_status
    - repo_config
    - set_ref_status_for_push
    - transport_refs_pushed
    - usage_with_options
    - finish_connect
    - strbuf_release
    - OPT_END
    - die
    - is_empty_cas
    - oid_array_clear
    - get_remote_heads
    - transport_update_tracking_ref
    - get_local_heads
    - isatty
    - OPT_STRING_LIST
    - discover_version
    - refspec_clear
    - string_list_clear
    - N_
    - strbuf_getline
    - remote_has_url
    - refspec_append
    - OPT_CALLBACK_F
    - OPT_STRING
    - packet_reader_init
    - free_refs
    - match_push_refs
    - print_helper_status
    - git_connect
    - send_pack
    - clear_cas_option
    - close
    - OPT__VERBOSITY
    - BUG
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int cmd_send_pack(int argc,\n\t\t  const char **argv,\n\t\t  const
      char *prefix,\n\t\t  struct repository *repo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/git/builtin/remote-fd.c:30,1
    - Dst: ferror
      Src: /src/git/builtin/remote-fd.c:31,1
    - Dst: die
      Src: /src/git/builtin/remote-fd.c:32,1
    - Dst: strlen
      Src: /src/git/builtin/remote-fd.c:36,1
    - Dst: isspace
      Src: /src/git/builtin/remote-fd.c:37,1
    - Dst: strcmp
      Src: /src/git/builtin/remote-fd.c:40,1
    - Dst: printf
      Src: /src/git/builtin/remote-fd.c:41,1
    - Dst: fflush
      Src: /src/git/builtin/remote-fd.c:42,1
    - Dst: starts_with
      Src: /src/git/builtin/remote-fd.c:43,1
    - Dst: printf
      Src: /src/git/builtin/remote-fd.c:44,1
    - Dst: fflush
      Src: /src/git/builtin/remote-fd.c:45,1
    - Dst: bidirectional_transfer_loop
      Src: /src/git/builtin/remote-fd.c:46,1
    - Dst: die
      Src: /src/git/builtin/remote-fd.c:48,1
    - Dst: die
      Src: /src/git/builtin/remote-fd.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - input_fd
    - output_fd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 54
    functionName: command_loop
    functionSourceFile: /src/git/builtin/remote-fd.c
    functionUses: 1
    functionsReached:
    - isspace
    - fgets
    - ferror
    - die
    - starts_with
    - bidirectional_transfer_loop
    - strlen
    - fflush
    - strcmp
    - printf
    linkageType: ''
    returnType: void
    signature: void command_loop(int input_fd, int output_fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_NON_EMPTY_PREFIX
      Src: /src/git/builtin/remote-fd.c:65,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/remote-fd.c:67,1
    - Dst: usage
      Src: /src/git/builtin/remote-fd.c:69,1
    - Dst: strtoul
      Src: /src/git/builtin/remote-fd.c:71,1
    - Dst: die
      Src: /src/git/builtin/remote-fd.c:74,1
    - Dst: strtoul
      Src: /src/git/builtin/remote-fd.c:80,1
    - Dst: die
      Src: /src/git/builtin/remote-fd.c:83,1
    - Dst: command_loop
      Src: /src/git/builtin/remote-fd.c:86,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 88
    functionName: cmd_remote_fd
    functionSourceFile: /src/git/builtin/remote-fd.c
    functionUses: 0
    functionsReached:
    - die
    - BUG_ON_NON_EMPTY_PREFIX
    - show_usage_if_asked
    - command_loop
    - usage
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int cmd_remote_fd(int argc,\n\t\t  const char **argv,\n\t\t  const
      char *prefix,\n\t\t  struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/rebase.c:163,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:164,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:165,1
    - Dst: strvec_clear
      Src: /src/git/builtin/rebase.c:166,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:167,1
    - Dst: string_list_clear
      Src: /src/git/builtin/rebase.c:168,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:169,1
    - Dst: string_list_clear
      Src: /src/git/builtin/rebase.c:170,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:171,1
    - Dst: strvec_clear
      Src: /src/git/builtin/rebase.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: rebase_options_release
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strvec_clear
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void rebase_options_release(struct rebase_options *opts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sequencer_init_config
      Src: /src/git/builtin/rebase.c:181,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/rebase.c:185,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:200,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/rebase.c:201,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:202,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/rebase.c:204,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:211,1
    - Dst: oidcpy
      Src: /src/git/builtin/rebase.c:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 219
    functionName: get_replay_opts
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - xstrdup_or_null
    - oidcpy
    - strvec_pushv
    - sequencer_init_config
    - free
    - xstrdup
    linkageType: ''
    returnType: struct replay_opts
    signature: struct replay_opts get_replay_opts(const struct rebase_options *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rebase_path_todo
      Src: /src/git/builtin/rebase.c:223,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/rebase.c:228,1
    - Dst: error_errno
      Src: /src/git/builtin/rebase.c:229,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:229,1
    - Dst: strbuf_stripspace
      Src: /src/git/builtin/rebase.c:231,1
    - Dst: edit_todo_list
      Src: /src/git/builtin/rebase.c:232,1
    - Dst: todo_list_write_to_file
      Src: /src/git/builtin/rebase.c:234,1
    - Dst: error_errno
      Src: /src/git/builtin/rebase.c:236,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:236,1
    - Dst: todo_list_release
      Src: /src/git/builtin/rebase.c:238,1
    - Dst: todo_list_release
      Src: /src/git/builtin/rebase.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - flags
    - opts
    argTypes:
    - unsigned
    - struct replay_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 8
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: edit_todo_file
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_stripspace
    - edit_todo_list
    - todo_list_write_to_file
    - strbuf_read_file
    - _
    - todo_list_release
    - rebase_path_todo
    linkageType: ''
    returnType: int
    signature: int edit_todo_file(unsigned flags, struct replay_opts *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/rebase.c:251,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:251,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:252,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/rebase.c:254,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/rebase.c:260,1
    - Dst: xstrfmt
      Src: /src/git/builtin/rebase.c:264,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - upstream
    - onto
    - orig_head
    - revisions
    - shortrevisions
    argTypes:
    - struct commit*
    - struct commit*
    - struct object_id*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 269
    functionName: get_revision_ranges
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - oid_to_hex
    - repo_find_unique_abbrev
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int get_revision_ranges(struct commit *upstream, struct commit *onto,\n\t\t\t
      \      struct object_id *orig_head, char **revisions,\n\t\t\t       char **shortrevisions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_directory
      Src: /src/git/builtin/rebase.c:277,1
    - Dst: merge_dir
      Src: /src/git/builtin/rebase.c:277,1
    - Dst: safe_create_dir_in_gitdir
      Src: /src/git/builtin/rebase.c:278,1
    - Dst: merge_dir
      Src: /src/git/builtin/rebase.c:278,1
    - Dst: error_errno
      Src: /src/git/builtin/rebase.c:279,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:279,1
    - Dst: merge_dir
      Src: /src/git/builtin/rebase.c:279,1
    - Dst: refs_delete_reflog
      Src: /src/git/builtin/rebase.c:281,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rebase.c:281,1
    - Dst: fopen
      Src: /src/git/builtin/rebase.c:283,1
    - Dst: path_interactive
      Src: /src/git/builtin/rebase.c:283,1
    - Dst: error_errno
      Src: /src/git/builtin/rebase.c:285,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:285,1
    - Dst: fclose
      Src: /src/git/builtin/rebase.c:286,1
    - Dst: write_basic_state
      Src: /src/git/builtin/rebase.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - opts
    - head_name
    - onto
    - orig_head
    argTypes:
    - struct replay_opts*
    - char*
    - struct commit*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 289
    functionName: init_basic_state
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - write_basic_state
    - path_interactive
    - merge_dir
    - safe_create_dir_in_gitdir
    - fopen
    - refs_delete_reflog
    - _
    - is_directory
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int init_basic_state(struct replay_opts *opts, const char *head_name,\n\t\t\t
      \   struct commit *onto,\n\t\t\t    const struct object_id *orig_head)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_replay_opts
      Src: /src/git/builtin/rebase.c:297,1
    - Dst: get_revision_ranges
      Src: /src/git/builtin/rebase.c:299,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/rebase.c:303,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/rebase.c:305,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:306,1
    - Dst: sequencer_make_script
      Src: /src/git/builtin/rebase.c:308,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:311,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:311,1
    - Dst: init_basic_state
      Src: /src/git/builtin/rebase.c:315,1
    - Dst: write_file
      Src: /src/git/builtin/rebase.c:321,1
    - Dst: path_squash_onto
      Src: /src/git/builtin/rebase.c:321,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:322,1
    - Dst: discard_index
      Src: /src/git/builtin/rebase.c:324,1
    - Dst: todo_list_parse_insn_buffer
      Src: /src/git/builtin/rebase.c:325,1
    - Dst: BUG
      Src: /src/git/builtin/rebase.c:327,1
    - Dst: complete_action
      Src: /src/git/builtin/rebase.c:329,1
    - Dst: replay_opts_release
      Src: /src/git/builtin/rebase.c:335,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:336,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:337,1
    - Dst: todo_list_release
      Src: /src/git/builtin/rebase.c:338,1
    - Dst: strvec_clear
      Src: /src/git/builtin/rebase.c:339,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - opts
    - flags
    argTypes:
    - struct rebase_options*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 291
    functionDepth: 25
    functionLinenumber: 291
    functionLinenumberEnd: 342
    functionName: do_interactive_rebase
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - path_squash_onto
    - write_file
    - init_basic_state
    - complete_action
    - free
    - discard_index
    - error
    - get_replay_opts
    - todo_list_parse_insn_buffer
    - todo_list_release
    - oid_to_hex
    - strvec_pushl
    - _
    - get_revision_ranges
    - strvec_pushf
    - replay_opts_release
    - strvec_clear
    - sequencer_make_script
    - BUG
    linkageType: ''
    returnType: int
    signature: int do_interactive_rebase(struct rebase_options *opts, unsigned flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/rebase.c:349,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:362,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:362,1
    - Dst: do_interactive_rebase
      Src: /src/git/builtin/rebase.c:364,1
    - Dst: rerere_clear
      Src: /src/git/builtin/rebase.c:370,1
    - Dst: get_replay_opts
      Src: /src/git/builtin/rebase.c:374,1
    - Dst: sequencer_continue
      Src: /src/git/builtin/rebase.c:376,1
    - Dst: replay_opts_release
      Src: /src/git/builtin/rebase.c:377,1
    - Dst: get_replay_opts
      Src: /src/git/builtin/rebase.c:381,1
    - Dst: edit_todo_file
      Src: /src/git/builtin/rebase.c:383,1
    - Dst: replay_opts_release
      Src: /src/git/builtin/rebase.c:384,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/rebase.c:391,1
    - Dst: run_command
      Src: /src/git/builtin/rebase.c:392,1
    - Dst: BUG
      Src: /src/git/builtin/rebase.c:397,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 344
    functionDepth: 26
    functionLinenumber: 344
    functionLinenumberEnd: 401
    functionName: run_sequencer_rebase
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - die
    - run_command
    - edit_todo_file
    - do_interactive_rebase
    - sequencer_continue
    - get_replay_opts
    - replay_opts_release
    - strvec_pushl
    - repo_config_get_bool
    - _
    - BUG
    - rerere_clear
    linkageType: ''
    returnType: int
    signature: int run_sequencer_rebase(struct rebase_options *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: is_merge
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_merge(struct rebase_options *opts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/rebase.c:412,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - opts
    - option
    argTypes:
    - struct rebase_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 420
    functionName: imply_merge
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void imply_merge(struct rebase_options *opts, const char *option)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:429,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/rebase.c:433,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rebase.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - filename
    - opts
    argTypes:
    - char*
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 423
    functionDepth: 4
    functionLinenumber: 423
    functionLinenumberEnd: 436
    functionName: state_dir_path
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addstr
    - strbuf_setlen
    linkageType: ''
    returnType: char
    signature: char *state_dir_path(const char *filename, struct rebase_options *opts)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: read_oneliner
      Src: /src/git/builtin/rebase.c:445,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:445,1
    - Dst: read_oneliner
      Src: /src/git/builtin/rebase.c:447,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:447,1
    - Dst: starts_with
      Src: /src/git/builtin/rebase.c:450,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:451,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:452,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/rebase.c:453,1
    - Dst: lookup_commit_object
      Src: /src/git/builtin/rebase.c:454,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:455,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:455,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rebase.c:462,1
    - Dst: file_exists
      Src: /src/git/builtin/rebase.c:463,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:463,1
    - Dst: read_oneliner
      Src: /src/git/builtin/rebase.c:464,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:464,1
    - Dst: read_oneliner
      Src: /src/git/builtin/rebase.c:467,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:467,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/rebase.c:470,1
    - Dst: lookup_commit_object
      Src: /src/git/builtin/rebase.c:471,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:472,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:472,1
    - Dst: file_exists
      Src: /src/git/builtin/rebase.c:474,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:474,1
    - Dst: file_exists
      Src: /src/git/builtin/rebase.c:479,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:479,1
    - Dst: file_exists
      Src: /src/git/builtin/rebase.c:482,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:482,1
    - Dst: file_exists
      Src: /src/git/builtin/rebase.c:487,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:487,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rebase.c:488,1
    - Dst: read_oneliner
      Src: /src/git/builtin/rebase.c:489,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:489,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:492,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:494,1
    - Dst: warning
      Src: /src/git/builtin/rebase.c:497,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:497,1
    - Dst: file_exists
      Src: /src/git/builtin/rebase.c:501,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:501,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rebase.c:502,1
    - Dst: read_oneliner
      Src: /src/git/builtin/rebase.c:503,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:503,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:506,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:507,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:510,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 513
    functionName: read_basic_state
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - error
    - read_oneliner
    - strbuf_release
    - get_oid_hex
    - strbuf_reset
    - state_dir_path
    - starts_with
    - lookup_commit_object
    - free
    - strcmp
    - _
    - file_exists
    - warning
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int read_basic_state(struct rebase_options *opts)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: write_file
      Src: /src/git/builtin/rebase.c:517,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:517,1
    - Dst: write_file
      Src: /src/git/builtin/rebase.c:519,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:519,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:520,1
    - Dst: write_file
      Src: /src/git/builtin/rebase.c:521,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:521,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:522,1
    - Dst: write_file
      Src: /src/git/builtin/rebase.c:524,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:524,1
    - Dst: write_file
      Src: /src/git/builtin/rebase.c:526,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:526,1
    - Dst: write_file
      Src: /src/git/builtin/rebase.c:528,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:528,1
    - Dst: write_file
      Src: /src/git/builtin/rebase.c:533,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:533,1
    - Dst: write_file
      Src: /src/git/builtin/rebase.c:536,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:536,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 515
    functionDepth: 6
    functionLinenumber: 515
    functionLinenumberEnd: 539
    functionName: rebase_write_basic_state
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - write_file
    - state_dir_path
    linkageType: ''
    returnType: int
    signature: int rebase_write_basic_state(struct rebase_options *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:545,1
    - Dst: file_exists
      Src: /src/git/builtin/rebase.c:547,1
    - Dst: apply_autostash
      Src: /src/git/builtin/rebase.c:549,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rebase.c:550,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/rebase.c:551,1
    - Dst: error_errno
      Src: /src/git/builtin/rebase.c:552,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:552,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 541
    functionDepth: 11
    functionLinenumber: 541
    functionLinenumberEnd: 556
    functionName: cleanup_autostash
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - remove_dir_recursively
    - state_dir_path
    - strbuf_addstr
    - apply_autostash
    - file_exists
    - _
    linkageType: ''
    returnType: int
    signature: int cleanup_autostash(struct rebase_options *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_delete_ref
      Src: /src/git/builtin/rebase.c:563,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rebase.c:563,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/rebase.c:565,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rebase.c:565,1
    - Dst: apply_autostash
      Src: /src/git/builtin/rebase.c:567,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:567,1
    - Dst: run_auto_maintenance
      Src: /src/git/builtin/rebase.c:572,1
    - Dst: sequencer_remove_state
      Src: /src/git/builtin/rebase.c:579,1
    - Dst: replay_opts_release
      Src: /src/git/builtin/rebase.c:580,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rebase.c:582,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/rebase.c:583,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:584,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:584,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 558
    functionDepth: 11
    functionLinenumber: 558
    functionLinenumberEnd: 590
    functionName: finish_rebase
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - error
    - refs_delete_ref
    - strbuf_release
    - sequencer_remove_state
    - remove_dir_recursively
    - state_dir_path
    - replay_opts_release
    - strbuf_addstr
    - apply_autostash
    - run_auto_maintenance
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int finish_rebase(struct rebase_options *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/rebase.c:602,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:604,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:606,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:607,1
    - Dst: reset_head
      Src: /src/git/builtin/rebase.c:613,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:615,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 618
    functionName: move_to_original_branch
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - strbuf_addf
    - reset_head
    - BUG
    linkageType: ''
    returnType: int
    signature: int move_to_original_branch(struct rebase_options *opts)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:628,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/rebase.c:629,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:632,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/rebase.c:633,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:635,1
    - Dst: run_command
      Src: /src/git/builtin/rebase.c:636,1
    - Dst: move_to_original_branch
      Src: /src/git/builtin/rebase.c:640,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:643,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/rebase.c:644,1
    - Dst: run_command
      Src: /src/git/builtin/rebase.c:645,1
    - Dst: move_to_original_branch
      Src: /src/git/builtin/rebase.c:649,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:652,1
    - Dst: run_command
      Src: /src/git/builtin/rebase.c:653,1
    - Dst: repo_git_path
      Src: /src/git/builtin/rebase.c:656,1
    - Dst: open
      Src: /src/git/builtin/rebase.c:657,1
    - Dst: error_errno
      Src: /src/git/builtin/rebase.c:660,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:660,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:662,1
    - Dst: child_process_clear
      Src: /src/git/builtin/rebase.c:663,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/rebase.c:668,1
    - Dst: strvec_split
      Src: /src/git/builtin/rebase.c:674,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/rebase.c:676,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:677,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:681,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/rebase.c:683,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:684,1
    - Dst: run_command
      Src: /src/git/builtin/rebase.c:686,1
    - Dst: unlink
      Src: /src/git/builtin/rebase.c:689,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:690,1
    - Dst: child_process_clear
      Src: /src/git/builtin/rebase.c:691,1
    - Dst: reset_head
      Src: /src/git/builtin/rebase.c:696,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:697,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:697,1
    - Dst: open
      Src: /src/git/builtin/rebase.c:707,1
    - Dst: error_errno
      Src: /src/git/builtin/rebase.c:709,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:709,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:711,1
    - Dst: child_process_clear
      Src: /src/git/builtin/rebase.c:712,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/rebase.c:716,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:717,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/rebase.c:718,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:719,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:721,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:723,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:725,1
    - Dst: run_command
      Src: /src/git/builtin/rebase.c:726,1
    - Dst: unlink
      Src: /src/git/builtin/rebase.c:727,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:728,1
    - Dst: move_to_original_branch
      Src: /src/git/builtin/rebase.c:731,1
    - Dst: is_directory
      Src: /src/git/builtin/rebase.c:734,1
    - Dst: rebase_write_basic_state
      Src: /src/git/builtin/rebase.c:735,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 79
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 620
    functionDepth: 12
    functionLinenumber: 620
    functionLinenumberEnd: 738
    functionName: run_am
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - repo_git_path
    - error_errno
    - reset_head
    - free
    - error
    - rebase_write_basic_state
    - child_process_clear
    - move_to_original_branch
    - unlink
    - oid_to_hex
    - strvec_pushv
    - strvec_pushl
    - _
    - strvec_pushf
    - open
    - run_command
    - strvec_split
    - is_directory
    linkageType: ''
    returnType: int
    signature: int run_am(struct rebase_options *opts)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/git/builtin/rebase.c:747,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:750,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:751,1
    - Dst: run_sequencer_rebase
      Src: /src/git/builtin/rebase.c:755,1
    - Dst: run_am
      Src: /src/git/builtin/rebase.c:757,1
    - Dst: BUG
      Src: /src/git/builtin/rebase.c:759,1
    - Dst: file_exists
      Src: /src/git/builtin/rebase.c:766,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:766,1
    - Dst: finish_rebase
      Src: /src/git/builtin/rebase.c:767,1
    - Dst: apply_autostash
      Src: /src/git/builtin/rebase.c:771,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:771,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rebase.c:772,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/rebase.c:773,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:774,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:775,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 740
    functionDepth: 27
    functionLinenumber: 740
    functionLinenumberEnd: 779
    functionName: run_specific_rebase
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - file_exists
    - remove_dir_recursively
    - state_dir_path
    - finish_rebase
    - setenv
    - run_am
    - apply_autostash
    - strbuf_addstr
    - free
    - run_sequencer_rebase
    - BUG
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int run_specific_rebase(struct rebase_options *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:783,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:785,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:788,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - options
    - value
    argTypes:
    - struct rebase_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 789
    functionName: parse_rebase_merges_value
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: void
    signature: void parse_rebase_merges_value(struct rebase_options *options, const
      char *value)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:796,1
    - Dst: git_config_bool
      Src: /src/git/builtin/rebase.c:797,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:804,1
    - Dst: git_config_bool
      Src: /src/git/builtin/rebase.c:805,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:809,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:810,1
    - Dst: git_config_bool
      Src: /src/git/builtin/rebase.c:811,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:812,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:816,1
    - Dst: git_config_bool
      Src: /src/git/builtin/rebase.c:817,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:821,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/rebase.c:822,1
    - Dst: parse_rebase_merges_value
      Src: /src/git/builtin/rebase.c:825,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:832,1
    - Dst: git_config_bool
      Src: /src/git/builtin/rebase.c:833,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:837,1
    - Dst: git_config_bool
      Src: /src/git/builtin/rebase.c:838,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:842,1
    - Dst: git_config_bool
      Src: /src/git/builtin/rebase.c:843,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:847,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/rebase.c:848,1
    - Dst: git_config_string
      Src: /src/git/builtin/rebase.c:849,1
    - Dst: git_default_config
      Src: /src/git/builtin/rebase.c:852,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 791
    functionDepth: 6
    functionLinenumber: 791
    functionLinenumberEnd: 853
    functionName: rebase_config
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - git_config_string
    - git_parse_maybe_bool
    - strcmp
    - git_default_config
    - free
    - parse_rebase_merges_value
    - FREE_AND_NULL
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int rebase_config(const char *var, const char *value,\n\t\t\t const
      struct config_context *ctx, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:861,1
    - Dst: reset_head
      Src: /src/git/builtin/rebase.c:869,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:870,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:870,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - options
    argTypes:
    - struct rebase_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 874
    functionName: checkout_up_to_date
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - strbuf_addf
    - reset_head
    - _
    linkageType: ''
    returnType: int
    signature: int checkout_up_to_date(struct rebase_options *options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/builtin/rebase.c:884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - struct commit*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 881
    functionDepth: 20
    functionLinenumber: 881
    functionLinenumberEnd: 892
    functionName: is_linear_history
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - repo_parse_commit
    linkageType: ''
    returnType: int
    signature: int is_linear_history(struct commit *from, struct commit *to)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/rebase.c:901,1
    - Dst: oideq
      Src: /src/git/builtin/rebase.c:904,1
    - Dst: oideq
      Src: /src/git/builtin/rebase.c:907,1
    - Dst: repo_get_merge_bases
      Src: /src/git/builtin/rebase.c:913,1
    - Dst: exit
      Src: /src/git/builtin/rebase.c:914,1
    - Dst: oideq
      Src: /src/git/builtin/rebase.c:918,1
    - Dst: commit_list_free
      Src: /src/git/builtin/rebase.c:924,1
    - Dst: is_linear_history
      Src: /src/git/builtin/rebase.c:925,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 5
    argNames:
    - onto
    - upstream
    - restrict_revision
    - head
    - branch_base
    argTypes:
    - struct commit*
    - struct commit*
    - struct commit*
    - struct commit*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 894
    functionDepth: 25
    functionLinenumber: 894
    functionLinenumberEnd: 926
    functionName: can_fast_forward
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - is_linear_history
    - exit
    - repo_get_merge_bases
    - is_null_oid
    - commit_list_free
    - oideq
    linkageType: ''
    returnType: int
    signature: "int can_fast_forward(struct commit *onto, struct commit *upstream,\n\t\t\t
      \   struct commit *restrict_revision,\n\t\t\t    struct commit *head, struct
      object_id *branch_base)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_merge_bases
      Src: /src/git/builtin/rebase.c:933,1
    - Dst: exit
      Src: /src/git/builtin/rebase.c:935,1
    - Dst: oidcpy
      Src: /src/git/builtin/rebase.c:937,1
    - Dst: null_oid
      Src: /src/git/builtin/rebase.c:937,1
    - Dst: oidcpy
      Src: /src/git/builtin/rebase.c:939,1
    - Dst: commit_list_free
      Src: /src/git/builtin/rebase.c:941,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - options
    - branch_base
    argTypes:
    - struct rebase_options*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 928
    functionDepth: 25
    functionLinenumber: 928
    functionLinenumberEnd: 942
    functionName: fill_branch_base
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - exit
    - repo_get_merge_bases
    - commit_list_free
    - null_oid
    linkageType: ''
    returnType: void
    signature: "void fill_branch_base(struct rebase_options *options,\n\t\t\t    struct
      object_id *branch_base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/rebase.c:948,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/rebase.c:949,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:952,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:952,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 957
    functionName: parse_opt_am
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - _
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: int parse_opt_am(const struct option *opt, const char *arg, int unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/rebase.c:964,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/rebase.c:965,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:968,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 973
    functionName: parse_opt_merge
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - _
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: int parse_opt_merge(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/rebase.c:981,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/rebase.c:982,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:985,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 991
    functionName: parse_opt_interactive
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - _
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int parse_opt_interactive(const struct option *opt, const char *arg,\n\t\t\t\t
      int unset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/builtin/rebase.c:995,1
    - Dst: strcasecmp
      Src: /src/git/builtin/rebase.c:997,1
    - Dst: strcasecmp
      Src: /src/git/builtin/rebase.c:999,1
    - Dst: strcasecmp
      Src: /src/git/builtin/rebase.c:1001,1
    - Dst: warning
      Src: /src/git/builtin/rebase.c:1002,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1002,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1006,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1007
    functionName: parse_empty_value
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - die
    - warning
    - _
    linkageType: ''
    returnType: enum empty_type
    signature: enum empty_type parse_empty_value(const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/rebase.c:1014,1
    - Dst: imply_merge
      Src: /src/git/builtin/rebase.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1019
    functionName: parse_opt_keep_empty
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - imply_merge
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int parse_opt_keep_empty(const struct option *opt, const char *arg,\n\t\t\t\tint
      unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_empty_value
      Src: /src/git/builtin/rebase.c:1024,1
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/rebase.c:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1021
    functionDepth: 2
    functionLinenumber: 1021
    functionLinenumberEnd: 1030
    functionName: parse_opt_empty
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - parse_empty_value
    linkageType: ''
    returnType: int
    signature: int parse_opt_empty(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/builtin/rebase.c:1041,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1041,1
    - Dst: parse_rebase_merges_value
      Src: /src/git/builtin/rebase.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1052
    functionName: parse_opt_rebase_merges
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - parse_rebase_merges_value
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: int parse_opt_rebase_merges(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: branch_get
      Src: /src/git/builtin/rebase.c:1056,1
    - Dst: printf
      Src: /src/git/builtin/rebase.c:1058,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1058,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1064,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1066,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1072,1
    - Dst: printf
      Src: /src/git/builtin/rebase.c:1074,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1074,1
    - Dst: exit
      Src: /src/git/builtin/rebase.c:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1054
    functionDepth: 17
    functionLinenumber: 1054
    functionLinenumberEnd: 1082
    functionName: error_on_missing_default_upstream
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - branch_get
    - exit
    - printf
    - _
    linkageType: ''
    returnType: void
    signature: void error_on_missing_default_upstream(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/builtin/rebase.c:1086,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:1087,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1087,1
    - Dst: strspn
      Src: /src/git/builtin/rebase.c:1090,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:1091,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1094
    functionName: check_exec_cmd
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - error
    - strspn
    - strchr
    - _
    linkageType: ''
    returnType: int
    signature: int check_exec_cmd(const char *cmd)
  - BBCount: 133
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/rebase.c:1121,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1122,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1123,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1124,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1125,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1126,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1127,1
    - Dst: OPT_NEGBIT
      Src: /src/git/builtin/rebase.c:1128,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1129,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/rebase.c:1131,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1132,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1140,1
    - Dst: OPT_STRVEC
      Src: /src/git/builtin/rebase.c:1144,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1144,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1145,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1146,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1147,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1148,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1150,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1151,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1152,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/rebase.c:1153,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1154,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/rebase.c:1155,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1155,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1156,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1157,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1158,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/rebase.c:1159,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1160,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1160,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/rebase.c:1161,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1162,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/rebase.c:1164,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1165,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/rebase.c:1167,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1167,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/rebase.c:1169,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1170,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/rebase.c:1171,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1172,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/rebase.c:1174,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1175,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/rebase.c:1176,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1176,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/rebase.c:1178,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1179,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/rebase.c:1181,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1182,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/rebase.c:1185,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1186,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/rebase.c:1189,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1190,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/rebase.c:1193,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1194,1
    - Dst: OPT_RERERE_AUTOUPDATE
      Src: /src/git/builtin/rebase.c:1197,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/rebase.c:1198,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1199,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/rebase.c:1201,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1202,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1205,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1206,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1208,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1209,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1216,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1217,1
    - Dst: OPT_AUTOSTASH
      Src: /src/git/builtin/rebase.c:1221,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/rebase.c:1222,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1222,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1223,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/rebase.c:1225,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1227,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/rebase.c:1229,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1229,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1230,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1232,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1233,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/rebase.c:1234,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1235,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1235,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/rebase.c:1236,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1237,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1238,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1240,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1241,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1242,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1244,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/rebase.c:1245,1
    - Dst: N_
      Src: /src/git/builtin/rebase.c:1246,1
    - Dst: OPT_END
      Src: /src/git/builtin/rebase.c:1247,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/rebase.c:1251,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/rebase.c:1258,1
    - Dst: repo_config
      Src: /src/git/builtin/rebase.c:1261,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/rebase.c:1264,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rebase.c:1266,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:1267,1
    - Dst: apply_dir
      Src: /src/git/builtin/rebase.c:1267,1
    - Dst: file_exists
      Src: /src/git/builtin/rebase.c:1268,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1269,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1269,1
    - Dst: is_directory
      Src: /src/git/builtin/rebase.c:1271,1
    - Dst: apply_dir
      Src: /src/git/builtin/rebase.c:1271,1
    - Dst: apply_dir
      Src: /src/git/builtin/rebase.c:1273,1
    - Dst: is_directory
      Src: /src/git/builtin/rebase.c:1274,1
    - Dst: merge_dir
      Src: /src/git/builtin/rebase.c:1274,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rebase.c:1275,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:1276,1
    - Dst: merge_dir
      Src: /src/git/builtin/rebase.c:1276,1
    - Dst: is_directory
      Src: /src/git/builtin/rebase.c:1277,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1278,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1278,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rebase.c:1282,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:1283,1
    - Dst: merge_dir
      Src: /src/git/builtin/rebase.c:1283,1
    - Dst: file_exists
      Src: /src/git/builtin/rebase.c:1285,1
    - Dst: merge_dir
      Src: /src/git/builtin/rebase.c:1288,1
    - Dst: parse_options
      Src: /src/git/builtin/rebase.c:1295,1
    - Dst: validate_trailer_args
      Src: /src/git/builtin/rebase.c:1300,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1301,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1306,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1306,1
    - Dst: usage_with_options
      Src: /src/git/builtin/rebase.c:1311,1
    - Dst: usage_with_options
      Src: /src/git/builtin/rebase.c:1316,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1321,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1321,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1323,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1323,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1332,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1332,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1335,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1335,1
    - Dst: is_merge
      Src: /src/git/builtin/rebase.c:1337,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1338,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1338,1
    - Dst: trace2_is_enabled
      Src: /src/git/builtin/rebase.c:1341,1
    - Dst: is_merge
      Src: /src/git/builtin/rebase.c:1342,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/rebase.c:1343,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/rebase.c:1345,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/rebase.c:1347,1
    - Dst: getenv
      Src: /src/git/builtin/rebase.c:1350,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:1352,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/rebase.c:1361,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1362,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1362,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/rebase.c:1364,1
    - Dst: repo_read_index
      Src: /src/git/builtin/rebase.c:1365,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1366,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1366,1
    - Dst: refresh_index
      Src: /src/git/builtin/rebase.c:1367,1
    - Dst: repo_update_index_if_able
      Src: /src/git/builtin/rebase.c:1370,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/rebase.c:1371,1
    - Dst: has_unstaged_changes
      Src: /src/git/builtin/rebase.c:1373,1
    - Dst: puts
      Src: /src/git/builtin/rebase.c:1374,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1374,1
    - Dst: exit
      Src: /src/git/builtin/rebase.c:1376,1
    - Dst: read_basic_state
      Src: /src/git/builtin/rebase.c:1378,1
    - Dst: exit
      Src: /src/git/builtin/rebase.c:1379,1
    - Dst: rerere_clear
      Src: /src/git/builtin/rebase.c:1385,1
    - Dst: string_list_clear
      Src: /src/git/builtin/rebase.c:1386,1
    - Dst: reset_head
      Src: /src/git/builtin/rebase.c:1388,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1389,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1389,1
    - Dst: remove_branch_state
      Src: /src/git/builtin/rebase.c:1390,1
    - Dst: read_basic_state
      Src: /src/git/builtin/rebase.c:1391,1
    - Dst: exit
      Src: /src/git/builtin/rebase.c:1392,1
    - Dst: rerere_clear
      Src: /src/git/builtin/rebase.c:1399,1
    - Dst: string_list_clear
      Src: /src/git/builtin/rebase.c:1400,1
    - Dst: read_basic_state
      Src: /src/git/builtin/rebase.c:1402,1
    - Dst: exit
      Src: /src/git/builtin/rebase.c:1403,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:1405,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:1408,1
    - Dst: reset_head
      Src: /src/git/builtin/rebase.c:1413,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1414,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1414,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:1415,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:1416,1
    - Dst: remove_branch_state
      Src: /src/git/builtin/rebase.c:1417,1
    - Dst: finish_rebase
      Src: /src/git/builtin/rebase.c:1418,1
    - Dst: save_autostash
      Src: /src/git/builtin/rebase.c:1422,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:1422,1
    - Dst: sequencer_remove_state
      Src: /src/git/builtin/rebase.c:1427,1
    - Dst: replay_opts_release
      Src: /src/git/builtin/rebase.c:1428,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rebase.c:1430,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rebase.c:1431,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/rebase.c:1432,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:1434,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1434,1
    - Dst: BUG
      Src: /src/git/builtin/rebase.c:1448,1
    - Dst: strrchr
      Src: /src/git/builtin/rebase.c:1453,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rebase.c:1458,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:1459,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1460,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1460,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1482,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1483,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rebase.c:1485,1
    - Dst: isdigit
      Src: /src/git/builtin/rebase.c:1487,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1488,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1488,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rebase.c:1490,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1491,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1491,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1492,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1492,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1493,1
    - Dst: check_exec_cmd
      Src: /src/git/builtin/rebase.c:1498,1
    - Dst: exit
      Src: /src/git/builtin/rebase.c:1499,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:1502,1
    - Dst: imply_merge
      Src: /src/git/builtin/rebase.c:1505,1
    - Dst: imply_merge
      Src: /src/git/builtin/rebase.c:1525,1
    - Dst: xstrfmt
      Src: /src/git/builtin/rebase.c:1530,1
    - Dst: imply_merge
      Src: /src/git/builtin/rebase.c:1533,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:1537,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:1540,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:1543,1
    - Dst: string_list_append
      Src: /src/git/builtin/rebase.c:1547,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:1553,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:1555,1
    - Dst: imply_merge
      Src: /src/git/builtin/rebase.c:1557,1
    - Dst: imply_merge
      Src: /src/git/builtin/rebase.c:1560,1
    - Dst: imply_merge
      Src: /src/git/builtin/rebase.c:1563,1
    - Dst: isatty
      Src: /src/git/builtin/rebase.c:1565,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rebase.c:1566,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1571,1
    - Dst: is_merge
      Src: /src/git/builtin/rebase.c:1575,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1576,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1576,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1579,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1579,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1581,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1581,1
    - Dst: imply_merge
      Src: /src/git/builtin/rebase.c:1588,1
    - Dst: imply_merge
      Src: /src/git/builtin/rebase.c:1593,1
    - Dst: imply_merge
      Src: /src/git/builtin/rebase.c:1598,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1606,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1608,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1611,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1611,1
    - Dst: merge_dir
      Src: /src/git/builtin/rebase.c:1617,1
    - Dst: apply_dir
      Src: /src/git/builtin/rebase.c:1620,1
    - Dst: BUG
      Src: /src/git/builtin/rebase.c:1623,1
    - Dst: is_merge
      Src: /src/git/builtin/rebase.c:1634,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1635,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1635,1
    - Dst: strvec_push
      Src: /src/git/builtin/rebase.c:1641,1
    - Dst: branch_get
      Src: /src/git/builtin/rebase.c:1649,1
    - Dst: branch_get_upstream
      Src: /src/git/builtin/rebase.c:1650,1
    - Dst: error_on_missing_default_upstream
      Src: /src/git/builtin/rebase.c:1653,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1660,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/rebase.c:1664,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1666,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1666,1
    - Dst: commit_tree
      Src: /src/git/builtin/rebase.c:1670,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1672,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1672,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:1675,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:1675,1
    - Dst: usage_with_options
      Src: /src/git/builtin/rebase.c:1682,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rebase.c:1701,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:1702,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/rebase.c:1703,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rebase.c:1703,1
    - Dst: die_if_checked_out
      Src: /src/git/builtin/rebase.c:1704,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:1705,1
    - Dst: lookup_commit_object
      Src: /src/git/builtin/rebase.c:1707,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/rebase.c:1712,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1716,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1716,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/rebase.c:1720,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/rebase.c:1720,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rebase.c:1720,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1723,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1723,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rebase.c:1725,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/rebase.c:1730,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/rebase.c:1733,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1735,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1735,1
    - Dst: BUG
      Src: /src/git/builtin/rebase.c:1737,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rebase.c:1741,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rebase.c:1742,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rebase.c:1743,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rebase.c:1744,1
    - Dst: xstrdup
      Src: /src/git/builtin/rebase.c:1745,1
    - Dst: strstr
      Src: /src/git/builtin/rebase.c:1748,1
    - Dst: repo_get_oid_mb
      Src: /src/git/builtin/rebase.c:1749,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1751,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1751,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1754,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1754,1
    - Dst: lookup_commit_or_die
      Src: /src/git/builtin/rebase.c:1757,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/rebase.c:1761,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1763,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1763,1
    - Dst: fill_branch_base
      Src: /src/git/builtin/rebase.c:1765,1
    - Dst: get_fork_point
      Src: /src/git/builtin/rebase.c:1773,1
    - Dst: repo_read_index
      Src: /src/git/builtin/rebase.c:1775,1
    - Dst: die
      Src: /src/git/builtin/rebase.c:1776,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1776,1
    - Dst: create_autostash
      Src: /src/git/builtin/rebase.c:1779,1
    - Dst: state_dir_path
      Src: /src/git/builtin/rebase.c:1780,1
    - Dst: require_clean_work_tree
      Src: /src/git/builtin/rebase.c:1783,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1784,1
    - Dst: can_fast_forward
      Src: /src/git/builtin/rebase.c:1800,1
    - Dst: checkout_up_to_date
      Src: /src/git/builtin/rebase.c:1807,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1814,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/rebase.c:1815,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rebase.c:1815,1
    - Dst: puts
      Src: /src/git/builtin/rebase.c:1816,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1816,1
    - Dst: printf
      Src: /src/git/builtin/rebase.c:1818,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1818,1
    - Dst: finish_rebase
      Src: /src/git/builtin/rebase.c:1820,1
    - Dst: strcmp
      Src: /src/git/builtin/rebase.c:1824,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/rebase.c:1825,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/rebase.c:1825,1
    - Dst: puts
      Src: /src/git/builtin/rebase.c:1826,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1826,1
    - Dst: printf
      Src: /src/git/builtin/rebase.c:1828,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1828,1
    - Dst: run_hooks_l
      Src: /src/git/builtin/rebase.c:1834,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:1836,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1836,1
    - Dst: is_null_oid
      Src: /src/git/builtin/rebase.c:1844,1
    - Dst: printf
      Src: /src/git/builtin/rebase.c:1845,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1845,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:1846,1
    - Dst: printf
      Src: /src/git/builtin/rebase.c:1848,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1848,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:1849,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:1850,1
    - Dst: repo_diff_setup
      Src: /src/git/builtin/rebase.c:1854,1
    - Dst: init_diffstat_widths
      Src: /src/git/builtin/rebase.c:1855,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/rebase.c:1859,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/rebase.c:1860,1
    - Dst: is_null_oid
      Src: /src/git/builtin/rebase.c:1860,1
    - Dst: diffcore_std
      Src: /src/git/builtin/rebase.c:1863,1
    - Dst: diff_flush
      Src: /src/git/builtin/rebase.c:1864,1
    - Dst: is_merge
      Src: /src/git/builtin/rebase.c:1867,1
    - Dst: printf
      Src: /src/git/builtin/rebase.c:1872,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1872,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:1875,1
    - Dst: reset_head
      Src: /src/git/builtin/rebase.c:1883,1
    - Dst: error
      Src: /src/git/builtin/rebase.c:1884,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1884,1
    - Dst: oideq
      Src: /src/git/builtin/rebase.c:1892,1
    - Dst: printf
      Src: /src/git/builtin/rebase.c:1893,1
    - Dst: _
      Src: /src/git/builtin/rebase.c:1893,1
    - Dst: move_to_original_branch
      Src: /src/git/builtin/rebase.c:1895,1
    - Dst: finish_rebase
      Src: /src/git/builtin/rebase.c:1896,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rebase.c:1900,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:1901,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:1903,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:1904,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rebase.c:1905,1
    - Dst: run_specific_rebase
      Src: /src/git/builtin/rebase.c:1910,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:1913,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:1914,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rebase.c:1915,1
    - Dst: rebase_options_release
      Src: /src/git/builtin/rebase.c:1916,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:1917,1
    - Dst: free
      Src: /src/git/builtin/rebase.c:1918,1
    - Dst: cleanup_autostash
      Src: /src/git/builtin/rebase.c:1922,1
    CyclomaticComplexity: 173
    EdgeCount: 173
    ICount: 453
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1096
    functionDepth: 28
    functionLinenumber: 1096
    functionLinenumberEnd: 1924
    functionName: cmd_rebase
    functionSourceFile: /src/git/builtin/rebase.c
    functionUses: 0
    functionsReached:
    - run_hooks_l
    - remove_branch_state
    - OPT_BOOL
    - can_fast_forward
    - is_null_oid
    - strcmp
    - get_main_ref_store
    - lookup_commit_reference_by_name
    - checkout_up_to_date
    - branch_get
    - get_fork_point
    - isatty
    - read_basic_state
    - oid_to_hex
    - trace2_is_enabled
    - OPT_SET_INT_F
    - repo_update_index_if_able
    - finish_rebase
    - check_exec_cmd
    - diff_flush
    - string_list_append
    - imply_merge
    - xstrdup
    - exit
    - replay_opts_release
    - prepare_repo_settings
    - isdigit
    - init_diffstat_widths
    - strvec_push
    - has_unstaged_changes
    - refs_resolve_ref_unsafe
    - strbuf_addf
    - state_dir_path
    - reset_head
    - free
    - repo_config
    - printf
    - die
    - strstr
    - repo_read_index
    - puts
    - OPT_PASSTHRU_ARGV
    - rollback_lock_file
    - OPT_CMDMODE
    - require_clean_work_tree
    - OPT_HIDDEN_BOOL
    - OPT_AUTOSTASH
    - string_list_clear
    - OPT_STRVEC
    - lookup_commit_object
    - N_
    - skip_prefix
    - FREE_AND_NULL
    - getenv
    - oideq
    - show_usage_with_options_if_asked
    - parse_options
    - cleanup_autostash
    - repo_get_oid
    - is_merge
    - refresh_index
    - strbuf_release
    - OPT_END
    - move_to_original_branch
    - diff_setup_done
    - OPT_STRING_LIST
    - branch_get_upstream
    - repo_get_oid_mb
    - merge_dir
    - remove_dir_recursively
    - die_if_checked_out
    - _
    - run_specific_rebase
    - OPT_BOOL_F
    - validate_trailer_args
    - xstrfmt
    - diff_tree_oid
    - OPT_CALLBACK_F
    - OPT_STRING
    - refs_read_ref
    - trace2_cmd_mode
    - is_directory
    - BUG
    - fill_branch_base
    - create_autostash
    - save_autostash
    - repo_hold_locked_index
    - rebase_options_release
    - file_exists
    - apply_dir
    - usage_with_options
    - error
    - xstrdup_or_null
    - sequencer_remove_state
    - commit_tree
    - error_on_missing_default_upstream
    - OPT_BIT
    - strbuf_addstr
    - repo_diff_setup
    - OPT_RERERE_AUTOUPDATE
    - lookup_commit_or_die
    - OPT_NEGBIT
    - strrchr
    - strbuf_reset
    - diffcore_std
    - rerere_clear
    linkageType: ''
    returnType: int
    signature: "int cmd_rebase(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/checkout--worker.c:22,1
    - Dst: BUG
      Src: /src/git/builtin/checkout--worker.c:29,1
    - Dst: xmemdupz
      Src: /src/git/builtin/checkout--worker.c:40,1
    - Dst: memset
      Src: /src/git/builtin/checkout--worker.c:47,1
    - Dst: make_empty_transient_cache_entry
      Src: /src/git/builtin/checkout--worker.c:48,1
    - Dst: memcpy
      Src: /src/git/builtin/checkout--worker.c:51,1
    - Dst: oidcpy
      Src: /src/git/builtin/checkout--worker.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - buffer
    - len
    - pc_item
    argTypes:
    - char*
    - int
    - struct parallel_checkout_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 14
    functionDepth: 10
    functionLinenumber: 14
    functionLinenumberEnd: 58
    functionName: packet_to_pc_item
    functionSourceFile: /src/git/builtin/checkout--worker.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - memset
    - oidcpy
    - make_empty_transient_cache_entry
    - memcpy
    - BUG
    linkageType: ''
    returnType: void
    signature: "void packet_to_pc_item(const char *buffer, int len,\n\t\t\t      struct
      parallel_checkout_item *pc_item)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_write
      Src: /src/git/builtin/checkout--worker.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - pc_item
    argTypes:
    - struct parallel_checkout_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 6
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: report_result
    functionSourceFile: /src/git/builtin/checkout--worker.c
    functionUses: 0
    functionsReached:
    - packet_write
    linkageType: ''
    returnType: void
    signature: void report_result(struct parallel_checkout_item *pc_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/checkout--worker.c:81,1
    - Dst: discard_cache_entry
      Src: /src/git/builtin/checkout--worker.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pc_item
    argTypes:
    - struct parallel_checkout_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: release_pc_item_data
    functionSourceFile: /src/git/builtin/checkout--worker.c
    functionUses: 0
    functionsReached:
    - discard_cache_entry
    - free
    linkageType: ''
    returnType: void
    signature: void release_pc_item_data(struct parallel_checkout_item *pc_item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packet_read
      Src: /src/git/builtin/checkout--worker.c:91,1
    - Dst: BUG
      Src: /src/git/builtin/checkout--worker.c:95,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/checkout--worker.c:99,1
    - Dst: packet_to_pc_item
      Src: /src/git/builtin/checkout--worker.c:100,1
    - Dst: write_pc_item
      Src: /src/git/builtin/checkout--worker.c:105,1
    - Dst: report_result
      Src: /src/git/builtin/checkout--worker.c:106,1
    - Dst: release_pc_item_data
      Src: /src/git/builtin/checkout--worker.c:107,1
    - Dst: packet_flush
      Src: /src/git/builtin/checkout--worker.c:110,1
    - Dst: free
      Src: /src/git/builtin/checkout--worker.c:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct checkout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 85
    functionDepth: 11
    functionLinenumber: 85
    functionLinenumberEnd: 113
    functionName: worker_loop
    functionSourceFile: /src/git/builtin/checkout--worker.c
    functionUses: 0
    functionsReached:
    - release_pc_item_data
    - write_pc_item
    - packet_flush
    - packet_read
    - packet_to_pc_item
    - report_result
    - ALLOC_GROW
    - free
    - BUG
    linkageType: ''
    returnType: void
    signature: void worker_loop(struct checkout *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/checkout--worker.c:127,1
    - Dst: N_
      Src: /src/git/builtin/checkout--worker.c:127,1
    - Dst: N_
      Src: /src/git/builtin/checkout--worker.c:128,1
    - Dst: OPT_END
      Src: /src/git/builtin/checkout--worker.c:129,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/checkout--worker.c:132,1
    - Dst: repo_config
      Src: /src/git/builtin/checkout--worker.c:136,1
    - Dst: parse_options
      Src: /src/git/builtin/checkout--worker.c:137,1
    - Dst: usage_with_options
      Src: /src/git/builtin/checkout--worker.c:140,1
    - Dst: strlen
      Src: /src/git/builtin/checkout--worker.c:143,1
    - Dst: worker_loop
      Src: /src/git/builtin/checkout--worker.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 120
    functionDepth: 19
    functionLinenumber: 120
    functionLinenumberEnd: 154
    functionName: cmd_checkout__worker
    functionSourceFile: /src/git/builtin/checkout--worker.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - worker_loop
    - usage_with_options
    - OPT_STRING
    - strlen
    - N_
    - repo_config
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: "int cmd_checkout__worker(int argc,\n\t\t\t const char **argv,\n\t\t\t
      const char *prefix,\n\t\t\t struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/git/builtin/hash-object.c:28,1
    - Dst: index_fd
      Src: /src/git/builtin/hash-object.c:29,1
    - Dst: type_from_string
      Src: /src/git/builtin/hash-object.c:30,1
    - Dst: die
      Src: /src/git/builtin/hash-object.c:31,1
    - Dst: printf
      Src: /src/git/builtin/hash-object.c:34,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/hash-object.c:34,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/hash-object.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - fd
    - type
    - path
    - flags
    argTypes:
    - int
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 8
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: hash_fd
    functionSourceFile: /src/git/builtin/hash-object.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - type_from_string
    - fstat
    - index_fd
    - maybe_flush_or_die
    - printf
    linkageType: ''
    returnType: void
    signature: void hash_fd(int fd, const char *type, const char *path, unsigned flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xopen
      Src: /src/git/builtin/hash-object.c:42,1
    - Dst: hash_fd
      Src: /src/git/builtin/hash-object.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - path
    - type
    - vpath
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 9
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: hash_object
    functionSourceFile: /src/git/builtin/hash-object.c
    functionUses: 0
    functionsReached:
    - xopen
    - hash_fd
    linkageType: ''
    returnType: void
    signature: "void hash_object(const char *path, const char *type, const char *vpath,\n\t\t\tunsigned
      flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline
      Src: /src/git/builtin/hash-object.c:51,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/hash-object.c:53,1
    - Dst: unquote_c_style
      Src: /src/git/builtin/hash-object.c:54,1
    - Dst: die
      Src: /src/git/builtin/hash-object.c:55,1
    - Dst: strbuf_swap
      Src: /src/git/builtin/hash-object.c:56,1
    - Dst: hash_object
      Src: /src/git/builtin/hash-object.c:58,1
    - Dst: strbuf_release
      Src: /src/git/builtin/hash-object.c:60,1
    - Dst: strbuf_release
      Src: /src/git/builtin/hash-object.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - type
    - no_filters
    - flags
    argTypes:
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 10
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: hash_stdin_paths
    functionSourceFile: /src/git/builtin/hash-object.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - strbuf_reset
    - hash_object
    - unquote_c_style
    - strbuf_getline
    - strbuf_swap
    linkageType: ''
    returnType: void
    signature: void hash_stdin_paths(const char *type, int no_filters, unsigned flags)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:70,1
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:72,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/hash-object.c:84,1
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:84,1
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:84,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/hash-object.c:85,1
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:85,1
    - Dst: OPT_COUNTUP
      Src: /src/git/builtin/hash-object.c:87,1
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:87,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/hash-object.c:88,1
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:88,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/hash-object.c:89,1
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:89,1
    - Dst: OPT_NEGBIT
      Src: /src/git/builtin/hash-object.c:90,1
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:91,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/hash-object.c:93,1
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:93,1
    - Dst: N_
      Src: /src/git/builtin/hash-object.c:93,1
    - Dst: OPT_END
      Src: /src/git/builtin/hash-object.c:94,1
    - Dst: parse_options
      Src: /src/git/builtin/hash-object.c:99,1
    - Dst: setup_git_directory
      Src: /src/git/builtin/hash-object.c:103,1
    - Dst: setup_git_directory_gently
      Src: /src/git/builtin/hash-object.c:105,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/hash-object.c:108,1
    - Dst: prefix_filename
      Src: /src/git/builtin/hash-object.c:111,1
    - Dst: repo_config
      Src: /src/git/builtin/hash-object.c:115,1
    - Dst: error
      Src: /src/git/builtin/hash-object.c:133,1
    - Dst: usage_with_options
      Src: /src/git/builtin/hash-object.c:134,1
    - Dst: hash_fd
      Src: /src/git/builtin/hash-object.c:138,1
    - Dst: prefix_filename
      Src: /src/git/builtin/hash-object.c:145,1
    - Dst: hash_object
      Src: /src/git/builtin/hash-object.c:146,1
    - Dst: free
      Src: /src/git/builtin/hash-object.c:148,1
    - Dst: hash_stdin_paths
      Src: /src/git/builtin/hash-object.c:152,1
    - Dst: free
      Src: /src/git/builtin/hash-object.c:154,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 64
    functionDepth: 19
    functionLinenumber: 64
    functionLinenumberEnd: 157
    functionName: cmd_hash_object
    functionSourceFile: /src/git/builtin/hash-object.c
    functionUses: 0
    functionsReached:
    - parse_options
    - setup_git_directory
    - OPT_BOOL
    - setup_git_directory_gently
    - free
    - repo_set_hash_algo
    - repo_config
    - usage_with_options
    - error
    - OPT_END
    - prefix_filename
    - OPT_BIT
    - N_
    - hash_stdin_paths
    - OPT_COUNTUP
    - OPT_NEGBIT
    - hash_object
    - OPT_STRING
    - hash_fd
    linkageType: ''
    returnType: int
    signature: "int cmd_hash_object(int argc,\n\t\t    const char **argv,\n\t\t    const
      char *prefix,\n\t\t    struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/ls-remote.c:30,1
    - Dst: wildmatch
      Src: /src/git/builtin/ls-remote.c:32,1
    - Dst: free
      Src: /src/git/builtin/ls-remote.c:33,1
    - Dst: free
      Src: /src/git/builtin/ls-remote.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pattern
    - path
    argTypes:
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: tail_match
    functionSourceFile: /src/git/builtin/ls-remote.c
    functionUses: 0
    functionsReached:
    - free
    - xstrfmt
    - wildmatch
    linkageType: ''
    returnType: int
    signature: int tail_match(const struct strvec *pattern, const char *path)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/ls-remote.c:67,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:67,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/ls-remote.c:68,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:68,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:69,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:74,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:75,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/ls-remote.c:78,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:78,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/ls-remote.c:79,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:79,1
    - Dst: OPT_BIT_F
      Src: /src/git/builtin/ls-remote.c:80,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:81,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/ls-remote.c:83,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:83,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-remote.c:84,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:85,1
    - Dst: OPT_REF_SORT
      Src: /src/git/builtin/ls-remote.c:86,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/ls-remote.c:87,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:88,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-remote.c:90,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:91,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/ls-remote.c:92,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:92,1
    - Dst: N_
      Src: /src/git/builtin/ls-remote.c:92,1
    - Dst: OPT_END
      Src: /src/git/builtin/ls-remote.c:93,1
    - Dst: memset
      Src: /src/git/builtin/ls-remote.c:96,1
    - Dst: parse_options
      Src: /src/git/builtin/ls-remote.c:98,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/ls-remote.c:115,1
    - Dst: packet_trace_identity
      Src: /src/git/builtin/ls-remote.c:117,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/ls-remote.c:120,1
    - Dst: strvec_push
      Src: /src/git/builtin/ls-remote.c:123,1
    - Dst: strvec_push
      Src: /src/git/builtin/ls-remote.c:125,1
    - Dst: remote_get
      Src: /src/git/builtin/ls-remote.c:127,1
    - Dst: die
      Src: /src/git/builtin/ls-remote.c:130,1
    - Dst: die
      Src: /src/git/builtin/ls-remote.c:131,1
    - Dst: printf
      Src: /src/git/builtin/ls-remote.c:135,1
    - Dst: transport_get
      Src: /src/git/builtin/ls-remote.c:139,1
    - Dst: transport_set_option
      Src: /src/git/builtin/ls-remote.c:141,1
    - Dst: transport_get_remote_refs
      Src: /src/git/builtin/ls-remote.c:145,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/builtin/ls-remote.c:147,1
    - Dst: transport_get_hash_algo
      Src: /src/git/builtin/ls-remote.c:147,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/ls-remote.c:148,1
    - Dst: fprintf
      Src: /src/git/builtin/ls-remote.c:152,1
    - Dst: check_ref_type
      Src: /src/git/builtin/ls-remote.c:155,1
    - Dst: tail_match
      Src: /src/git/builtin/ls-remote.c:157,1
    - Dst: ref_array_push
      Src: /src/git/builtin/ls-remote.c:159,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/ls-remote.c:160,1
    - Dst: ref_sorting_options
      Src: /src/git/builtin/ls-remote.c:163,1
    - Dst: ref_array_sort
      Src: /src/git/builtin/ls-remote.c:164,1
    - Dst: printf
      Src: /src/git/builtin/ls-remote.c:169,1
    - Dst: printf
      Src: /src/git/builtin/ls-remote.c:170,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/ls-remote.c:170,1
    - Dst: string_list_clear
      Src: /src/git/builtin/ls-remote.c:174,1
    - Dst: ref_sorting_release
      Src: /src/git/builtin/ls-remote.c:175,1
    - Dst: ref_array_clear
      Src: /src/git/builtin/ls-remote.c:176,1
    - Dst: transport_disconnect
      Src: /src/git/builtin/ls-remote.c:177,1
    - Dst: transport_ls_refs_options_release
      Src: /src/git/builtin/ls-remote.c:179,1
    - Dst: strvec_clear
      Src: /src/git/builtin/ls-remote.c:181,1
    - Dst: string_list_clear
      Src: /src/git/builtin/ls-remote.c:182,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 41
    functionDepth: 15
    functionLinenumber: 41
    functionLinenumberEnd: 184
    functionName: cmd_ls_remote
    functionSourceFile: /src/git/builtin/ls-remote.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - parse_options
    - transport_get_hash_algo
    - ref_sorting_options
    - transport_get_remote_refs
    - OPT_BOOL
    - packet_trace_identity
    - remote_get
    - repo_set_hash_algo
    - printf
    - OPT_REF_SORT
    - check_ref_type
    - ref_sorting_release
    - OPT_END
    - die
    - xstrdup_or_null
    - tail_match
    - OPT_BIT
    - ref_array_sort
    - OPT_STRING_LIST
    - OPT__QUIET
    - hash_algo_by_ptr
    - string_list_clear
    - memset
    - oid_to_hex
    - transport_disconnect
    - OPT_SET_INT_F
    - OPT_BIT_F
    - N_
    - ref_array_push
    - strvec_pushf
    - transport_get
    - transport_set_option
    - OPT_STRING
    - transport_ls_refs_options_release
    - strvec_clear
    - ref_array_clear
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int cmd_ls_remote(int argc,\n\t\t  const char **argv,\n\t\t  const
      char *prefix,\n\t\t  struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trailer_set_where
      Src: /src/git/builtin/interpret-trailers.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - opt
    - arg
    - UNUSED
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: option_parse_where
    functionSourceFile: /src/git/builtin/interpret-trailers.c
    functionUses: 0
    functionsReached:
    - trailer_set_where
    linkageType: ''
    returnType: int
    signature: "int option_parse_where(const struct option *opt,\n\t\t\t      const
      char *arg, int unset UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trailer_set_if_exists
      Src: /src/git/builtin/interpret-trailers.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - opt
    - arg
    - UNUSED
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: option_parse_if_exists
    functionSourceFile: /src/git/builtin/interpret-trailers.c
    functionUses: 0
    functionsReached:
    - trailer_set_if_exists
    linkageType: ''
    returnType: int
    signature: "int option_parse_if_exists(const struct option *opt,\n\t\t\t\t  const
      char *arg, int unset UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trailer_set_if_missing
      Src: /src/git/builtin/interpret-trailers.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - opt
    - arg
    - UNUSED
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: option_parse_if_missing
    functionSourceFile: /src/git/builtin/interpret-trailers.c
    functionUses: 0
    functionsReached:
    - trailer_set_if_missing
    linkageType: ''
    returnType: int
    signature: "int option_parse_if_missing(const struct option *opt,\n\t\t\t\t   const
      char *arg, int unset UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/builtin/interpret-trailers.c:55,1
    - Dst: list_del
      Src: /src/git/builtin/interpret-trailers.c:56,1
    - Dst: free
      Src: /src/git/builtin/interpret-trailers.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - trailers
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: new_trailers_clear
    functionSourceFile: /src/git/builtin/interpret-trailers.c
    functionUses: 0
    functionsReached:
    - list_del
    - list_entry
    - free
    linkageType: ''
    returnType: void
    signature: void new_trailers_clear(struct list_head *trailers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/git/builtin/interpret-trailers.c:55,1
    - Dst: list_del
      Src: /src/git/builtin/interpret-trailers.c:56,1
    - Dst: free
      Src: /src/git/builtin/interpret-trailers.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: list_for_each_safe
    functionSourceFile: /src/git/builtin/interpret-trailers.c
    functionUses: 3
    functionsReached:
    - list_del
    - list_entry
    - free
    linkageType: ''
    returnType: void
    signature: void list_for_each_safe(pos, tmp, trailers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_trailers_clear
      Src: /src/git/builtin/interpret-trailers.c:68,1
    - Dst: xmalloc
      Src: /src/git/builtin/interpret-trailers.c:75,1
    - Dst: list_add_tail
      Src: /src/git/builtin/interpret-trailers.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: option_parse_trailer
    functionSourceFile: /src/git/builtin/interpret-trailers.c
    functionUses: 0
    functionsReached:
    - list_add_tail
    - xmalloc
    - new_trailers_clear
    linkageType: ''
    returnType: int
    signature: "int option_parse_trailer(const struct option *opt,\n\t\t\t\t   const
      char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/interpret-trailers.c:91,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/interpret-trailers.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: parse_opt_parse
    functionSourceFile: /src/git/builtin/interpret-trailers.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int parse_opt_parse(const struct option *opt, const char *arg,\n\t\t\t
      \  int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/builtin/interpret-trailers.c:99,1
    - Dst: die_errno
      Src: /src/git/builtin/interpret-trailers.c:100,1
    - Dst: _
      Src: /src/git/builtin/interpret-trailers.c:100,1
    - Dst: strbuf_read
      Src: /src/git/builtin/interpret-trailers.c:102,1
    - Dst: fileno
      Src: /src/git/builtin/interpret-trailers.c:102,1
    - Dst: die_errno
      Src: /src/git/builtin/interpret-trailers.c:103,1
    - Dst: _
      Src: /src/git/builtin/interpret-trailers.c:103,1
    - Dst: strbuf_complete_line
      Src: /src/git/builtin/interpret-trailers.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - sb
    - file
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: read_input_file
    functionSourceFile: /src/git/builtin/interpret-trailers.c
    functionUses: 0
    functionsReached:
    - strbuf_read
    - strbuf_complete_line
    - fileno
    - strbuf_read_file
    - die_errno
    - _
    linkageType: ''
    returnType: void
    signature: void read_input_file(struct strbuf *sb, const char *file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trailer_config_init
      Src: /src/git/builtin/interpret-trailers.c:117,1
    - Dst: read_input_file
      Src: /src/git/builtin/interpret-trailers.c:119,1
    - Dst: trailer_create_in_place_tempfile
      Src: /src/git/builtin/interpret-trailers.c:122,1
    - Dst: die
      Src: /src/git/builtin/interpret-trailers.c:124,1
    - Dst: process_trailers
      Src: /src/git/builtin/interpret-trailers.c:127,1
    - Dst: write_in_full
      Src: /src/git/builtin/interpret-trailers.c:129,1
    - Dst: die_errno
      Src: /src/git/builtin/interpret-trailers.c:130,1
    - Dst: _
      Src: /src/git/builtin/interpret-trailers.c:130,1
    - Dst: rename_tempfile
      Src: /src/git/builtin/interpret-trailers.c:132,1
    - Dst: die_errno
      Src: /src/git/builtin/interpret-trailers.c:133,1
    - Dst: _
      Src: /src/git/builtin/interpret-trailers.c:133,1
    - Dst: strbuf_release
      Src: /src/git/builtin/interpret-trailers.c:135,1
    - Dst: strbuf_release
      Src: /src/git/builtin/interpret-trailers.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - opts
    - new_trailer_head
    - file
    argTypes:
    - struct process_trailer_options*
    - struct list_head*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 108
    functionDepth: 13
    functionLinenumber: 108
    functionLinenumberEnd: 137
    functionName: interpret_trailers
    functionSourceFile: /src/git/builtin/interpret-trailers.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - rename_tempfile
    - die
    - read_input_file
    - process_trailers
    - trailer_create_in_place_tempfile
    - die_errno
    - trailer_config_init
    - _
    - write_in_full
    linkageType: ''
    returnType: void
    signature: "void interpret_trailers(const struct process_trailer_options *opts,\n\t\t\t
      \      struct list_head *new_trailer_head,\n\t\t\t       const char *file)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/git/builtin/interpret-trailers.c:145,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/interpret-trailers.c:148,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:148,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/interpret-trailers.c:149,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:149,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/interpret-trailers.c:151,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:151,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:152,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/interpret-trailers.c:153,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:153,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:154,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/interpret-trailers.c:155,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:155,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:156,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/interpret-trailers.c:158,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:158,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/interpret-trailers.c:159,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:159,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/interpret-trailers.c:160,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:160,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/interpret-trailers.c:161,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:161,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/interpret-trailers.c:163,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:163,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/interpret-trailers.c:164,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:164,1
    - Dst: N_
      Src: /src/git/builtin/interpret-trailers.c:165,1
    - Dst: OPT_END
      Src: /src/git/builtin/interpret-trailers.c:166,1
    - Dst: repo_config
      Src: /src/git/builtin/interpret-trailers.c:169,1
    - Dst: parse_options
      Src: /src/git/builtin/interpret-trailers.c:171,1
    - Dst: list_empty
      Src: /src/git/builtin/interpret-trailers.c:174,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/interpret-trailers.c:175,1
    - Dst: _
      Src: /src/git/builtin/interpret-trailers.c:176,1
    - Dst: interpret_trailers
      Src: /src/git/builtin/interpret-trailers.c:183,1
    - Dst: die
      Src: /src/git/builtin/interpret-trailers.c:186,1
    - Dst: _
      Src: /src/git/builtin/interpret-trailers.c:186,1
    - Dst: interpret_trailers
      Src: /src/git/builtin/interpret-trailers.c:187,1
    - Dst: new_trailers_clear
      Src: /src/git/builtin/interpret-trailers.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 139
    functionDepth: 19
    functionLinenumber: 139
    functionLinenumberEnd: 193
    functionName: cmd_interpret_trailers
    functionSourceFile: /src/git/builtin/interpret-trailers.c
    functionUses: 0
    functionsReached:
    - usage_msg_opt
    - parse_options
    - OPT_END
    - die
    - interpret_trailers
    - OPT_BOOL
    - OPT_CALLBACK_F
    - OPT_CALLBACK
    - list_empty
    - LIST_HEAD
    - _
    - N_
    - repo_config
    - new_trailers_clear
    linkageType: ''
    returnType: int
    signature: "int cmd_interpret_trailers(int argc,\n\t\t\t   const char **argv,\n\t\t\t
      \  const char *prefix,\n\t\t\t   struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/mv.c:59,1
    - Dst: strlen
      Src: /src/git/builtin/mv.c:63,1
    - Dst: is_dir_sep
      Src: /src/git/builtin/mv.c:69,1
    - Dst: xmemdupz
      Src: /src/git/builtin/mv.c:72,1
    - Dst: basename
      Src: /src/git/builtin/mv.c:73,1
    - Dst: prefix_path
      Src: /src/git/builtin/mv.c:74,1
    - Dst: strvec_push
      Src: /src/git/builtin/mv.c:75,1
    - Dst: free
      Src: /src/git/builtin/mv.c:77,1
    - Dst: free
      Src: /src/git/builtin/mv.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - out
    - prefix
    - pathspec
    - count
    - flags
    argTypes:
    - struct strvec*
    - char*
    - char**
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 10
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: internal_prefix_pathspec
    functionSourceFile: /src/git/builtin/mv.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - strvec_push
    - is_dir_sep
    - basename
    - strlen
    - free
    - prefix_path
    linkageType: ''
    returnType: void
    signature: "void internal_prefix_pathspec(struct strvec *out,\n\t\t\t\t     const
      char *prefix,\n\t\t\t\t     const char **pathspec,\n\t\t\t\t     int count,
      unsigned flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/mv.c:84,1
    - Dst: xmalloc
      Src: /src/git/builtin/mv.c:86,1
    - Dst: st_add
      Src: /src/git/builtin/mv.c:86,1
    - Dst: memcpy
      Src: /src/git/builtin/mv.c:87,1
    - Dst: xstrdup
      Src: /src/git/builtin/mv.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: add_slash
    functionSourceFile: /src/git/builtin/mv.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - xmalloc
    - st_add
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *add_slash(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/mv.c:102,1
    - Dst: die
      Src: /src/git/builtin/mv.c:103,1
    - Dst: _
      Src: /src/git/builtin/mv.c:103,1
    - Dst: is_staging_gitmodules_ok
      Src: /src/git/builtin/mv.c:104,1
    - Dst: die
      Src: /src/git/builtin/mv.c:105,1
    - Dst: _
      Src: /src/git/builtin/mv.c:105,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/mv.c:107,1
    - Dst: read_gitfile
      Src: /src/git/builtin/mv.c:109,1
    - Dst: strbuf_release
      Src: /src/git/builtin/mv.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - src
    - first
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 11
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: submodule_gitfile_path
    functionSourceFile: /src/git/builtin/mv.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - strbuf_addf
    - S_ISGITLINK
    - read_gitfile
    - _
    - is_staging_gitmodules_ok
    linkageType: ''
    returnType: char
    signature: char *submodule_gitfile_path(const char *src, int first)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_slash
      Src: /src/git/builtin/mv.c:119,1
    - Dst: index_name_pos
      Src: /src/git/builtin/mv.c:122,1
    - Dst: die
      Src: /src/git/builtin/mv.c:124,1
    - Dst: _
      Src: /src/git/builtin/mv.c:124,1
    - Dst: strncmp
      Src: /src/git/builtin/mv.c:129,1
    - Dst: free
      Src: /src/git/builtin/mv.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - src
    - length
    - first_p
    - last_p
    argTypes:
    - char*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: index_range_of_same_dir
    functionSourceFile: /src/git/builtin/mv.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - die
    - add_slash
    - _
    - free
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int index_range_of_same_dir(const char *src, int length,\n\t\t\t\t
      \  int *first_p, int *last_p)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: add_slash
      Src: /src/git/builtin/mv.c:149,1
    - Dst: strlen
      Src: /src/git/builtin/mv.c:150,1
    - Dst: index_name_pos
      Src: /src/git/builtin/mv.c:152,1
    - Dst: strncmp
      Src: /src/git/builtin/mv.c:160,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/mv.c:162,1
    - Dst: free
      Src: /src/git/builtin/mv.c:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 169
    functionName: empty_dir_has_sparse_contents
    functionSourceFile: /src/git/builtin/mv.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - add_slash
    - strlen
    - ce_skip_worktree
    - free
    - strncmp
    linkageType: ''
    returnType: int
    signature: int empty_dir_has_sparse_contents(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/mv.c:178,1
    - Dst: index_range_of_same_dir
      Src: /src/git/builtin/mv.c:183,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/mv.c:185,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/mv.c:187,1
    - Dst: strbuf_release
      Src: /src/git/builtin/mv.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - src_dir
    - src_dir_nr
    argTypes:
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 171
    functionDepth: 8
    functionLinenumber: 171
    functionLinenumberEnd: 191
    functionName: remove_empty_src_dirs
    functionSourceFile: /src/git/builtin/mv.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - index_range_of_same_dir
    - strbuf_reset
    - remove_dir_recursively
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void remove_empty_src_dirs(const char **src_dir, size_t src_dir_nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/mv.c:203,1
    - Dst: container_of
      Src: /src/git/builtin/mv.c:204,1
    - Dst: fspathcmp
      Src: /src/git/builtin/mv.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cmp_data
    - a
    - b
    - UNUSED
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: pathmap_cmp
    functionSourceFile: /src/git/builtin/mv.c
    functionUses: 0
    functionsReached:
    - container_of
    - fspathcmp
    linkageType: ''
    returnType: int
    signature: "int pathmap_cmp(const void *cmp_data UNUSED,\n\t\t       const struct
      hashmap_entry *a,\n\t\t       const struct hashmap_entry *b,\n\t\t       const
      void *key UNUSED)"
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/mv.c:216,1
    - Dst: N_
      Src: /src/git/builtin/mv.c:216,1
    - Dst: OPT__DRY_RUN
      Src: /src/git/builtin/mv.c:217,1
    - Dst: N_
      Src: /src/git/builtin/mv.c:217,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/mv.c:218,1
    - Dst: N_
      Src: /src/git/builtin/mv.c:218,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/mv.c:220,1
    - Dst: N_
      Src: /src/git/builtin/mv.c:220,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/mv.c:221,1
    - Dst: N_
      Src: /src/git/builtin/mv.c:221,1
    - Dst: OPT_END
      Src: /src/git/builtin/mv.c:222,1
    - Dst: HASHMAP_INIT
      Src: /src/git/builtin/mv.c:238,1
    - Dst: repo_config_values
      Src: /src/git/builtin/mv.c:241,1
    - Dst: repo_config
      Src: /src/git/builtin/mv.c:243,1
    - Dst: parse_options
      Src: /src/git/builtin/mv.c:245,1
    - Dst: usage_with_options
      Src: /src/git/builtin/mv.c:248,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/mv.c:250,1
    - Dst: repo_read_index
      Src: /src/git/builtin/mv.c:251,1
    - Dst: die
      Src: /src/git/builtin/mv.c:252,1
    - Dst: _
      Src: /src/git/builtin/mv.c:252,1
    - Dst: internal_prefix_pathspec
      Src: /src/git/builtin/mv.c:254,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/mv.c:255,1
    - Dst: is_directory
      Src: /src/git/builtin/mv.c:263,1
    - Dst: is_directory
      Src: /src/git/builtin/mv.c:263,1
    - Dst: internal_prefix_pathspec
      Src: /src/git/builtin/mv.c:265,1
    - Dst: add_slash
      Src: /src/git/builtin/mv.c:266,1
    - Dst: xcalloc
      Src: /src/git/builtin/mv.c:267,1
    - Dst: internal_prefix_pathspec
      Src: /src/git/builtin/mv.c:271,1
    - Dst: lstat
      Src: /src/git/builtin/mv.c:272,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/mv.c:272,1
    - Dst: internal_prefix_pathspec
      Src: /src/git/builtin/mv.c:273,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/mv.c:274,1
    - Dst: empty_dir_has_sparse_contents
      Src: /src/git/builtin/mv.c:275,1
    - Dst: internal_prefix_pathspec
      Src: /src/git/builtin/mv.c:276,1
    - Dst: die
      Src: /src/git/builtin/mv.c:279,1
    - Dst: _
      Src: /src/git/builtin/mv.c:279,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/mv.c:281,1
    - Dst: path_in_cone_mode_sparse_checkout
      Src: /src/git/builtin/mv.c:291,1
    - Dst: printf
      Src: /src/git/builtin/mv.c:303,1
    - Dst: _
      Src: /src/git/builtin/mv.c:303,1
    - Dst: strlen
      Src: /src/git/builtin/mv.c:305,1
    - Dst: lstat
      Src: /src/git/builtin/mv.c:306,1
    - Dst: index_name_pos
      Src: /src/git/builtin/mv.c:310,1
    - Dst: add_slash
      Src: /src/git/builtin/mv.c:312,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/mv.c:313,1
    - Dst: empty_dir_has_sparse_contents
      Src: /src/git/builtin/mv.c:314,1
    - Dst: free
      Src: /src/git/builtin/mv.c:315,1
    - Dst: free
      Src: /src/git/builtin/mv.c:319,1
    - Dst: _
      Src: /src/git/builtin/mv.c:322,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/mv.c:326,1
    - Dst: _
      Src: /src/git/builtin/mv.c:327,1
    - Dst: string_list_append
      Src: /src/git/builtin/mv.c:331,1
    - Dst: index_name_pos
      Src: /src/git/builtin/mv.c:335,1
    - Dst: strlen
      Src: /src/git/builtin/mv.c:335,1
    - Dst: _
      Src: /src/git/builtin/mv.c:340,1
    - Dst: strncmp
      Src: /src/git/builtin/mv.c:346,1
    - Dst: _
      Src: /src/git/builtin/mv.c:348,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/mv.c:351,1
    - Dst: lstat
      Src: /src/git/builtin/mv.c:352,1
    - Dst: _
      Src: /src/git/builtin/mv.c:353,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/mv.c:358,1
    - Dst: index_name_pos
      Src: /src/git/builtin/mv.c:363,1
    - Dst: submodule_gitfile_path
      Src: /src/git/builtin/mv.c:366,1
    - Dst: strvec_push
      Src: /src/git/builtin/mv.c:368,1
    - Dst: index_range_of_same_dir
      Src: /src/git/builtin/mv.c:371,1
    - Dst: _
      Src: /src/git/builtin/mv.c:373,1
    - Dst: xmalloc
      Src: /src/git/builtin/mv.c:377,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/mv.c:379,1
    - Dst: fspathhash
      Src: /src/git/builtin/mv.c:379,1
    - Dst: hashmap_add
      Src: /src/git/builtin/mv.c:380,1
    - Dst: strvec_push
      Src: /src/git/builtin/mv.c:385,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/builtin/mv.c:388,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/builtin/mv.c:389,1
    - Dst: add_slash
      Src: /src/git/builtin/mv.c:391,1
    - Dst: strlen
      Src: /src/git/builtin/mv.c:392,1
    - Dst: prefix_path
      Src: /src/git/builtin/mv.c:397,1
    - Dst: strvec_push
      Src: /src/git/builtin/mv.c:400,1
    - Dst: strvec_push
      Src: /src/git/builtin/mv.c:401,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/mv.c:403,1
    - Dst: free
      Src: /src/git/builtin/mv.c:406,1
    - Dst: free
      Src: /src/git/builtin/mv.c:409,1
    - Dst: index_file_exists
      Src: /src/git/builtin/mv.c:413,1
    - Dst: _
      Src: /src/git/builtin/mv.c:414,1
    - Dst: ce_stage
      Src: /src/git/builtin/mv.c:417,1
    - Dst: _
      Src: /src/git/builtin/mv.c:418,1
    - Dst: lstat
      Src: /src/git/builtin/mv.c:421,1
    - Dst: strcasecmp
      Src: /src/git/builtin/mv.c:422,1
    - Dst: _
      Src: /src/git/builtin/mv.c:423,1
    - Dst: S_ISREG
      Src: /src/git/builtin/mv.c:429,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/mv.c:429,1
    - Dst: warning
      Src: /src/git/builtin/mv.c:431,1
    - Dst: _
      Src: /src/git/builtin/mv.c:431,1
    - Dst: _
      Src: /src/git/builtin/mv.c:434,1
    - Dst: string_list_has_string
      Src: /src/git/builtin/mv.c:438,1
    - Dst: _
      Src: /src/git/builtin/mv.c:439,1
    - Dst: is_dir_sep
      Src: /src/git/builtin/mv.c:442,1
    - Dst: strlen
      Src: /src/git/builtin/mv.c:442,1
    - Dst: _
      Src: /src/git/builtin/mv.c:443,1
    - Dst: index_entry_exists
      Src: /src/git/builtin/mv.c:449,1
    - Dst: strlen
      Src: /src/git/builtin/mv.c:449,1
    - Dst: _
      Src: /src/git/builtin/mv.c:450,1
    - Dst: warning
      Src: /src/git/builtin/mv.c:453,1
    - Dst: _
      Src: /src/git/builtin/mv.c:453,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/mv.c:466,1
    - Dst: string_list_append
      Src: /src/git/builtin/mv.c:467,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/mv.c:471,1
    - Dst: string_list_append
      Src: /src/git/builtin/mv.c:472,1
    - Dst: string_list_insert
      Src: /src/git/builtin/mv.c:479,1
    - Dst: die
      Src: /src/git/builtin/mv.c:485,1
    - Dst: _
      Src: /src/git/builtin/mv.c:485,1
    - Dst: strvec_remove
      Src: /src/git/builtin/mv.c:490,1
    - Dst: strvec_remove
      Src: /src/git/builtin/mv.c:491,1
    - Dst: MOVE_ARRAY
      Src: /src/git/builtin/mv.c:492,1
    - Dst: MOVE_ARRAY
      Src: /src/git/builtin/mv.c:493,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/mv.c:505,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/mv.c:506,1
    - Dst: strrchr
      Src: /src/git/builtin/mv.c:508,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/mv.c:512,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/mv.c:515,1
    - Dst: fspathhash
      Src: /src/git/builtin/mv.c:515,1
    - Dst: hashmap_get_entry
      Src: /src/git/builtin/mv.c:517,1
    - Dst: die
      Src: /src/git/builtin/mv.c:518,1
    - Dst: _
      Src: /src/git/builtin/mv.c:518,1
    - Dst: strrchr
      Src: /src/git/builtin/mv.c:521,1
    - Dst: advise_on_updating_sparse_paths
      Src: /src/git/builtin/mv.c:526,1
    - Dst: printf
      Src: /src/git/builtin/mv.c:544,1
    - Dst: _
      Src: /src/git/builtin/mv.c:544,1
    - Dst: rename
      Src: /src/git/builtin/mv.c:549,1
    - Dst: die_errno
      Src: /src/git/builtin/mv.c:552,1
    - Dst: _
      Src: /src/git/builtin/mv.c:552,1
    - Dst: update_path_in_gitmodules
      Src: /src/git/builtin/mv.c:555,1
    - Dst: connect_work_tree_and_git_dir
      Src: /src/git/builtin/mv.c:558,1
    - Dst: index_name_pos
      Src: /src/git/builtin/mv.c:566,1
    - Dst: strlen
      Src: /src/git/builtin/mv.c:566,1
    - Dst: BUG
      Src: /src/git/builtin/mv.c:568,1
    - Dst: lstat
      Src: /src/git/builtin/mv.c:569,1
    - Dst: ie_modified
      Src: /src/git/builtin/mv.c:570,1
    - Dst: rename_index_entry_at
      Src: /src/git/builtin/mv.c:574,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/mv.c:586,1
    - Dst: index_name_pos
      Src: /src/git/builtin/mv.c:588,1
    - Dst: strlen
      Src: /src/git/builtin/mv.c:589,1
    - Dst: checkout_entry
      Src: /src/git/builtin/mv.c:594,1
    - Dst: die
      Src: /src/git/builtin/mv.c:595,1
    - Dst: _
      Src: /src/git/builtin/mv.c:595,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/mv.c:598,1
    - Dst: index_name_pos
      Src: /src/git/builtin/mv.c:600,1
    - Dst: strlen
      Src: /src/git/builtin/mv.c:601,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/mv.c:609,1
    - Dst: xstrdup
      Src: /src/git/builtin/mv.c:616,1
    - Dst: string_list_append
      Src: /src/git/builtin/mv.c:617,1
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/mv.c:618,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/mv.c:619,1
    - Dst: rename
      Src: /src/git/builtin/mv.c:620,1
    - Dst: remove_empty_src_dirs
      Src: /src/git/builtin/mv.c:626,1
    - Dst: advise_on_moving_dirty_path
      Src: /src/git/builtin/mv.c:629,1
    - Dst: stage_updated_gitmodules
      Src: /src/git/builtin/mv.c:632,1
    - Dst: write_locked_index
      Src: /src/git/builtin/mv.c:634,1
    - Dst: die
      Src: /src/git/builtin/mv.c:636,1
    - Dst: _
      Src: /src/git/builtin/mv.c:636,1
    - Dst: strvec_clear
      Src: /src/git/builtin/mv.c:641,1
    - Dst: free
      Src: /src/git/builtin/mv.c:642,1
    - Dst: string_list_clear
      Src: /src/git/builtin/mv.c:643,1
    - Dst: string_list_clear
      Src: /src/git/builtin/mv.c:644,1
    - Dst: string_list_clear
      Src: /src/git/builtin/mv.c:645,1
    - Dst: strvec_clear
      Src: /src/git/builtin/mv.c:646,1
    - Dst: strvec_clear
      Src: /src/git/builtin/mv.c:647,1
    - Dst: strvec_clear
      Src: /src/git/builtin/mv.c:648,1
    - Dst: strvec_clear
      Src: /src/git/builtin/mv.c:649,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/builtin/mv.c:650,1
    - Dst: strbuf_release
      Src: /src/git/builtin/mv.c:651,1
    - Dst: free
      Src: /src/git/builtin/mv.c:652,1
    - Dst: free
      Src: /src/git/builtin/mv.c:653,1
    CyclomaticComplexity: 117
    EdgeCount: 117
    ICount: 289
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 208
    functionDepth: 19
    functionLinenumber: 208
    functionLinenumberEnd: 655
    functionName: cmd_mv
    functionSourceFile: /src/git/builtin/mv.c
    functionUses: 0
    functionsReached:
    - OPT_BOOL
    - fspathhash
    - index_file_exists
    - hashmap_add
    - index_name_pos
    - ie_modified
    - update_path_in_gitmodules
    - internal_prefix_pathspec
    - strvec_remove
    - string_list_append
    - xstrdup
    - strlen
    - strvec_clear
    - string_list_has_string
    - strvec_push
    - xmalloc
    - ce_skip_worktree
    - REALLOC_ARRAY
    - CALLOC_ARRAY
    - free
    - repo_config
    - printf
    - advise_on_updating_sparse_paths
    - die
    - OPT__FORCE
    - submodule_gitfile_path
    - repo_read_index
    - add_slash
    - string_list_clear
    - checkout_entry
    - MOVE_ARRAY
    - die_errno
    - N_
    - FREE_AND_NULL
    - connect_work_tree_and_git_dir
    - write_locked_index
    - hashmap_get_entry
    - advise_on_moving_dirty_path
    - prefix_path
    - parse_options
    - strcasecmp
    - strbuf_release
    - OPT_END
    - strbuf_setlen
    - HASHMAP_INIT
    - xcalloc
    - strncmp
    - repo_config_values
    - rename_index_entry_at
    - unlink_or_warn
    - path_in_sparse_checkout
    - _
    - index_entry_exists
    - OPT__VERBOSE
    - ce_stage
    - rename
    - hashmap_clear_and_free
    - is_directory
    - BUG
    - safe_create_leading_directories
    - lstat
    - OPT__DRY_RUN
    - index_range_of_same_dir
    - path_in_cone_mode_sparse_checkout
    - S_ISLNK
    - is_dir_sep
    - repo_hold_locked_index
    - usage_with_options
    - string_list_insert
    - empty_dir_has_sparse_contents
    - hashmap_entry_init
    - strbuf_addstr
    - S_ISREG
    - stage_updated_gitmodules
    - strvec_pushv
    - warning
    - S_ISDIR
    - strrchr
    - strbuf_reset
    - remove_empty_src_dirs
    linkageType: ''
    returnType: int
    signature: "int cmd_mv(int argc,\n\t   const char **argv,\n\t   const char *prefix,\n\t
      \  struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bugreport.c:22,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:22,1
    - Dst: get_version_info
      Src: /src/git/builtin/bugreport.c:23,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bugreport.c:26,1
    - Dst: get_uname_info
      Src: /src/git/builtin/bugreport.c:27,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bugreport.c:29,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:29,1
    - Dst: get_compiler_info
      Src: /src/git/builtin/bugreport.c:30,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bugreport.c:32,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:32,1
    - Dst: get_libc_info
      Src: /src/git/builtin/bugreport.c:33,1
    - Dst: getenv
      Src: /src/git/builtin/bugreport.c:35,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/bugreport.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - sys_info
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 17
    functionDepth: 5
    functionLinenumber: 17
    functionLinenumberEnd: 38
    functionName: get_system_info
    functionSourceFile: /src/git/builtin/bugreport.c
    functionUses: 0
    functionsReached:
    - get_uname_info
    - get_libc_info
    - strbuf_addf
    - get_version_info
    - strbuf_addstr
    - get_compiler_info
    - getenv
    - _
    linkageType: ''
    returnType: void
    signature: void get_system_info(struct strbuf *sys_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bugreport.c:45,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:46,1
    - Dst: hook_exists
      Src: /src/git/builtin/bugreport.c:53,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/bugreport.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - hook_info
    - nongit
    argTypes:
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 12
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: get_populated_hooks
    functionSourceFile: /src/git/builtin/bugreport.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - hook_exists
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: void
    signature: void get_populated_hooks(struct strbuf *hook_info, int nongit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/bugreport.c:67,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 86
    functionName: get_bug_template
    functionSourceFile: /src/git/builtin/bugreport.c
    functionUses: 0
    functionsReached:
    - N_
    - _
    linkageType: ''
    returnType: int
    signature: int get_bug_template(struct strbuf *template)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/bugreport.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - title
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: get_header
    functionSourceFile: /src/git/builtin/bugreport.c
    functionUses: 1
    functionsReached:
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void get_header(struct strbuf *buf, const char *title)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/builtin/bugreport.c:101,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/bugreport.c:112,1
    - Dst: N_
      Src: /src/git/builtin/bugreport.c:112,1
    - Dst: N_
      Src: /src/git/builtin/bugreport.c:113,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/bugreport.c:115,1
    - Dst: N_
      Src: /src/git/builtin/bugreport.c:115,1
    - Dst: N_
      Src: /src/git/builtin/bugreport.c:116,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/bugreport.c:117,1
    - Dst: N_
      Src: /src/git/builtin/bugreport.c:117,1
    - Dst: N_
      Src: /src/git/builtin/bugreport.c:118,1
    - Dst: OPT_END
      Src: /src/git/builtin/bugreport.c:119,1
    - Dst: parse_options
      Src: /src/git/builtin/bugreport.c:122,1
    - Dst: error
      Src: /src/git/builtin/bugreport.c:126,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:126,1
    - Dst: usage
      Src: /src/git/builtin/bugreport.c:127,1
    - Dst: prefix_filename
      Src: /src/git/builtin/bugreport.c:131,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bugreport.c:133,1
    - Dst: strbuf_complete
      Src: /src/git/builtin/bugreport.c:134,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bugreport.c:137,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/bugreport.c:139,1
    - Dst: strbuf_addftime
      Src: /src/git/builtin/bugreport.c:140,1
    - Dst: localtime_r
      Src: /src/git/builtin/bugreport.c:140,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bugreport.c:142,1
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/bugreport.c:144,1
    - Dst: die
      Src: /src/git/builtin/bugreport.c:149,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:149,1
    - Dst: strbuf_add
      Src: /src/git/builtin/bugreport.c:156,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bugreport.c:157,1
    - Dst: strbuf_addftime
      Src: /src/git/builtin/bugreport.c:158,1
    - Dst: localtime_r
      Src: /src/git/builtin/bugreport.c:158,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bugreport.c:159,1
    - Dst: create_diagnostics_archive
      Src: /src/git/builtin/bugreport.c:161,1
    - Dst: die_errno
      Src: /src/git/builtin/bugreport.c:162,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:162,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bugreport.c:164,1
    - Dst: get_bug_template
      Src: /src/git/builtin/bugreport.c:168,1
    - Dst: get_header
      Src: /src/git/builtin/bugreport.c:170,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:170,1
    - Dst: get_system_info
      Src: /src/git/builtin/bugreport.c:171,1
    - Dst: get_header
      Src: /src/git/builtin/bugreport.c:173,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:173,1
    - Dst: get_populated_hooks
      Src: /src/git/builtin/bugreport.c:174,1
    - Dst: xopen
      Src: /src/git/builtin/bugreport.c:177,1
    - Dst: write_in_full
      Src: /src/git/builtin/bugreport.c:179,1
    - Dst: die_errno
      Src: /src/git/builtin/bugreport.c:180,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:180,1
    - Dst: close
      Src: /src/git/builtin/bugreport.c:182,1
    - Dst: skip_prefix
      Src: /src/git/builtin/bugreport.c:188,1
    - Dst: fprintf
      Src: /src/git/builtin/bugreport.c:190,1
    - Dst: _
      Src: /src/git/builtin/bugreport.c:190,1
    - Dst: free
      Src: /src/git/builtin/bugreport.c:193,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bugreport.c:194,1
    - Dst: launch_editor
      Src: /src/git/builtin/bugreport.c:196,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bugreport.c:197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 93
    functionDepth: 13
    functionLinenumber: 93
    functionLinenumberEnd: 199
    functionName: cmd_bugreport
    functionSourceFile: /src/git/builtin/bugreport.c
    functionUses: 0
    functionsReached:
    - parse_options
    - strbuf_complete
    - free
    - error
    - xopen
    - strbuf_release
    - OPT_END
    - die
    - prefix_filename
    - strbuf_addftime
    - get_system_info
    - strbuf_addstr
    - write_in_full
    - die_errno
    - get_populated_hooks
    - _
    - N_
    - skip_prefix
    - strbuf_add
    - create_diagnostics_archive
    - get_header
    - OPT_CALLBACK_F
    - OPT_STRING
    - usage
    - strbuf_addch
    - get_bug_template
    - launch_editor
    - close
    - localtime_r
    - safe_create_leading_directories
    - fprintf
    - time
    linkageType: ''
    returnType: int
    signature: "int cmd_bugreport(int argc,\n\t\t  const char **argv,\n\t\t  const
      char *prefix,\n\t\t  struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct merge_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: add_merge_entry
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_merge_entry(struct merge_list *entry)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct merge_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 70
    functionName: explanation
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *explanation(struct merge_list *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/builtin/merge-tree.c:79,1
    - Dst: merge_blobs
      Src: /src/git/builtin/merge-tree.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - entry
    - size
    argTypes:
    - struct merge_list*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 12
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: result
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 19
    functionsReached:
    - odb_read_object
    - merge_blobs
    linkageType: ''
    returnType: void
    signature: void *result(struct merge_list *entry, unsigned long *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/builtin/merge-tree.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - entry
    - size
    argTypes:
    - struct merge_list*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 12
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: origin
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 6
    functionsReached:
    - odb_read_object
    linkageType: ''
    returnType: void
    signature: void *origin(struct merge_list *entry, unsigned long *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/merge-tree.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - UNUSED
    - mb
    - nbuf
    argTypes:
    - void*
    - mmbuffer_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: show_outf
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int show_outf(void *priv UNUSED, mmbuffer_t *mb, int nbuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/merge-tree.c:128,1
    - Dst: memset
      Src: /src/git/builtin/merge-tree.c:130,1
    - Dst: origin
      Src: /src/git/builtin/merge-tree.c:133,1
    - Dst: result
      Src: /src/git/builtin/merge-tree.c:137,1
    - Dst: xdi_diff
      Src: /src/git/builtin/merge-tree.c:141,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:142,1
    - Dst: free
      Src: /src/git/builtin/merge-tree.c:143,1
    - Dst: free
      Src: /src/git/builtin/merge-tree.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct merge_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 120
    functionDepth: 13
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: show_diff
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - xdi_diff
    - memset
    - die
    - result
    - free
    - origin
    linkageType: ''
    returnType: void
    signature: void show_diff(struct merge_list *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/merge-tree.c:149,1
    - Dst: explanation
      Src: /src/git/builtin/merge-tree.c:149,1
    - Dst: printf
      Src: /src/git/builtin/merge-tree.c:153,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-tree.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct merge_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: show_result_list
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - explanation
    - oid_to_hex
    - printf
    linkageType: ''
    returnType: void
    signature: void show_result_list(struct merge_list *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_result_list
      Src: /src/git/builtin/merge-tree.c:164,1
    - Dst: show_diff
      Src: /src/git/builtin/merge-tree.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 158
    functionDepth: 14
    functionLinenumber: 158
    functionLinenumberEnd: 168
    functionName: show_result
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - show_result_list
    - show_diff
    linkageType: ''
    returnType: void
    signature: void show_result(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/merge-tree.c:173,1
    - Dst: is_null_oid
      Src: /src/git/builtin/merge-tree.c:174,1
    - Dst: oideq
      Src: /src/git/builtin/merge-tree.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct name_entry*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: same_entry
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - oideq
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int same_entry(struct name_entry *a, struct name_entry *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/merge-tree.c:181,1
    - Dst: is_null_oid
      Src: /src/git/builtin/merge-tree.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct name_entry*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: both_empty
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int both_empty(struct name_entry *a, struct name_entry *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/builtin/merge-tree.c:186,1
    - Dst: lookup_blob
      Src: /src/git/builtin/merge-tree.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - stage
    - mode
    - oid
    - path
    argTypes:
    - unsigned
    - unsigned
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 7
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: create_entry
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 2
    functionsReached:
    - lookup_blob
    - xcalloc
    linkageType: ''
    returnType: struct merge_list
    signature: struct merge_list *create_entry(unsigned stage, unsigned mode, const
      struct object_id *oid, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_make_traverse_path
      Src: /src/git/builtin/merge-tree.c:198,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/merge-tree.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - info
    - n
    argTypes:
    - struct traverse_info*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 5
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: traverse_path
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 8
    functionsReached:
    - strbuf_detach
    - strbuf_make_traverse_path
    linkageType: ''
    returnType: char
    signature: char *traverse_path(const struct traverse_info *info, const struct
      name_entry *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: traverse_path
      Src: /src/git/builtin/merge-tree.c:211,1
    - Dst: create_entry
      Src: /src/git/builtin/merge-tree.c:212,1
    - Dst: create_entry
      Src: /src/git/builtin/merge-tree.c:213,1
    - Dst: add_merge_entry
      Src: /src/git/builtin/merge-tree.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - info
    - ours
    - result
    argTypes:
    - struct traverse_info*
    - struct name_entry*
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 6
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: resolve
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 4
    functionsReached:
    - add_merge_entry
    - traverse_path
    - create_entry
    linkageType: ''
    returnType: void
    signature: void resolve(const struct traverse_info *info, struct name_entry *ours,
      struct name_entry *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/builtin/merge-tree.c:230,1
    - Dst: traverse_path
      Src: /src/git/builtin/merge-tree.c:236,1
    - Dst: fill_tree_descriptor
      Src: /src/git/builtin/merge-tree.c:239,1
    - Dst: ENTRY_OID
      Src: /src/git/builtin/merge-tree.c:239,1
    - Dst: fill_tree_descriptor
      Src: /src/git/builtin/merge-tree.c:240,1
    - Dst: ENTRY_OID
      Src: /src/git/builtin/merge-tree.c:240,1
    - Dst: fill_tree_descriptor
      Src: /src/git/builtin/merge-tree.c:241,1
    - Dst: ENTRY_OID
      Src: /src/git/builtin/merge-tree.c:241,1
    - Dst: trivial_merge_trees
      Src: /src/git/builtin/merge-tree.c:244,1
    - Dst: free
      Src: /src/git/builtin/merge-tree.c:246,1
    - Dst: free
      Src: /src/git/builtin/merge-tree.c:247,1
    - Dst: free
      Src: /src/git/builtin/merge-tree.c:248,1
    - Dst: free
      Src: /src/git/builtin/merge-tree.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - info
    - n
    argTypes:
    - struct traverse_info*
    - struct name_entry[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 250
    functionName: unresolved_directory
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - traverse_path
    - ENTRY_OID
    - trivial_merge_trees
    - free
    - fill_tree_descriptor
    linkageType: ''
    returnType: void
    signature: "void unresolved_directory(const struct traverse_info *info,\n\t\t\t\t
      struct name_entry n[3])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: ENTRY_OID
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTRY_OID(e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: traverse_path
      Src: /src/git/builtin/merge-tree.c:263,1
    - Dst: create_entry
      Src: /src/git/builtin/merge-tree.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - stage
    - info
    - n
    - entry
    argTypes:
    - unsigned
    - struct traverse_info*
    - struct name_entry*
    - struct merge_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 267
    functionName: link_entry
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 2
    functionsReached:
    - traverse_path
    - create_entry
    linkageType: ''
    returnType: struct merge_list
    signature: struct merge_list *link_entry(unsigned stage, const struct traverse_info
      *info, struct name_entry *n, struct merge_list *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/builtin/merge-tree.c:281,1
    - Dst: unresolved_directory
      Src: /src/git/builtin/merge-tree.c:285,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/merge-tree.c:290,1
    - Dst: link_entry
      Src: /src/git/builtin/merge-tree.c:291,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/merge-tree.c:292,1
    - Dst: link_entry
      Src: /src/git/builtin/merge-tree.c:293,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/merge-tree.c:294,1
    - Dst: link_entry
      Src: /src/git/builtin/merge-tree.c:295,1
    - Dst: add_merge_entry
      Src: /src/git/builtin/merge-tree.c:297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - info
    - n
    argTypes:
    - struct traverse_info*
    - struct name_entry[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 269
    functionDepth: 7
    functionLinenumber: 269
    functionLinenumberEnd: 298
    functionName: unresolved
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - add_merge_entry
    - S_ISDIR
    - link_entry
    - unresolved_directory
    linkageType: ''
    returnType: void
    signature: void unresolved(const struct traverse_info *info, struct name_entry
      n[3])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: same_entry
      Src: /src/git/builtin/merge-tree.c:334,1
    - Dst: both_empty
      Src: /src/git/builtin/merge-tree.c:334,1
    - Dst: resolve
      Src: /src/git/builtin/merge-tree.c:336,1
    - Dst: same_entry
      Src: /src/git/builtin/merge-tree.c:340,1
    - Dst: is_null_oid
      Src: /src/git/builtin/merge-tree.c:341,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/merge-tree.c:341,1
    - Dst: resolve
      Src: /src/git/builtin/merge-tree.c:343,1
    - Dst: same_entry
      Src: /src/git/builtin/merge-tree.c:353,1
    - Dst: both_empty
      Src: /src/git/builtin/merge-tree.c:353,1
    - Dst: resolve
      Src: /src/git/builtin/merge-tree.c:355,1
    - Dst: unresolved
      Src: /src/git/builtin/merge-tree.c:359,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - UNUSED
    - mask
    - UNUSED
    - entry
    - info
    argTypes:
    - int
    - unsigned long
    - unsigned long dirmask
    - struct name_entry*
    - struct traverse_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 329
    functionDepth: 8
    functionLinenumber: 329
    functionLinenumberEnd: 361
    functionName: threeway_callback
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - same_entry
    - S_ISDIR
    - is_null_oid
    - both_empty
    - resolve
    - unresolved
    linkageType: ''
    returnType: int
    signature: "int threeway_callback(int n UNUSED, unsigned long mask,\n\t\t\t     unsigned
      long dirmask UNUSED,\n\t\t\t     struct name_entry *entry, struct traverse_info
      *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_traverse_info
      Src: /src/git/builtin/merge-tree.c:367,1
    - Dst: traverse_trees
      Src: /src/git/builtin/merge-tree.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - t
    - base
    argTypes:
    - struct tree_desc[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 363
    functionDepth: 7
    functionLinenumber: 363
    functionLinenumberEnd: 370
    functionName: trivial_merge_trees
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 1
    functionsReached:
    - setup_traverse_info
    - traverse_trees
    linkageType: ''
    returnType: void
    signature: void trivial_merge_trees(struct tree_desc t[3], const char *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/merge-tree.c:379,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:380,1
    - Dst: fill_tree_descriptor
      Src: /src/git/builtin/merge-tree.c:381,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - r
    - desc
    - rev
    argTypes:
    - struct repository*
    - struct tree_desc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 372
    functionDepth: 6
    functionLinenumber: 372
    functionLinenumberEnd: 385
    functionName: get_tree_descriptor
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - repo_get_oid
    - die
    - fill_tree_descriptor
    linkageType: ''
    returnType: void
    signature: "void *get_tree_descriptor(struct repository *r,\n\t\t\t\t struct tree_desc
      *desc,\n\t\t\t\t const char *rev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_tree_descriptor
      Src: /src/git/builtin/merge-tree.c:395,1
    - Dst: get_tree_descriptor
      Src: /src/git/builtin/merge-tree.c:396,1
    - Dst: get_tree_descriptor
      Src: /src/git/builtin/merge-tree.c:397,1
    - Dst: trivial_merge_trees
      Src: /src/git/builtin/merge-tree.c:398,1
    - Dst: free
      Src: /src/git/builtin/merge-tree.c:399,1
    - Dst: free
      Src: /src/git/builtin/merge-tree.c:400,1
    - Dst: free
      Src: /src/git/builtin/merge-tree.c:401,1
    - Dst: show_result
      Src: /src/git/builtin/merge-tree.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - base
    - branch1
    - branch2
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 387
    functionDepth: 15
    functionLinenumber: 387
    functionLinenumberEnd: 405
    functionName: trivial_merge
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - free
    - show_result
    - trivial_merge_trees
    - get_tree_descriptor
    linkageType: ''
    returnType: int
    signature: "int trivial_merge(const char *base,\n\t\t\t const char *branch1,\n\t\t\t
      const char *branch2)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: copy_merge_options
      Src: /src/git/builtin/merge-tree.c:433,1
    - Dst: repo_get_oid_treeish
      Src: /src/git/builtin/merge-tree.c:448,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:449,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:449,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/merge-tree.c:450,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:453,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:453,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-tree.c:453,1
    - Dst: repo_get_oid_treeish
      Src: /src/git/builtin/merge-tree.c:454,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:455,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:455,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/merge-tree.c:456,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:459,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:459,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-tree.c:459,1
    - Dst: repo_get_oid_treeish
      Src: /src/git/builtin/merge-tree.c:460,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:461,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:461,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/merge-tree.c:462,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:465,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:465,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-tree.c:465,1
    - Dst: merge_incore_nonrecursive
      Src: /src/git/builtin/merge-tree.c:468,1
    - Dst: get_merge_parent
      Src: /src/git/builtin/merge-tree.c:470,1
    - Dst: help_unknown_ref
      Src: /src/git/builtin/merge-tree.c:472,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:473,1
    - Dst: get_merge_parent
      Src: /src/git/builtin/merge-tree.c:475,1
    - Dst: help_unknown_ref
      Src: /src/git/builtin/merge-tree.c:477,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:478,1
    - Dst: repo_get_merge_bases
      Src: /src/git/builtin/merge-tree.c:484,1
    - Dst: exit
      Src: /src/git/builtin/merge-tree.c:486,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:488,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:488,1
    - Dst: commit_list_reverse
      Src: /src/git/builtin/merge-tree.c:489,1
    - Dst: merge_incore_recursive
      Src: /src/git/builtin/merge-tree.c:490,1
    - Dst: commit_list_free
      Src: /src/git/builtin/merge-tree.c:491,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:495,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:495,1
    - Dst: printf
      Src: /src/git/builtin/merge-tree.c:504,1
    - Dst: printf
      Src: /src/git/builtin/merge-tree.c:505,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-tree.c:505,1
    - Dst: merge_get_conflicted_files
      Src: /src/git/builtin/merge-tree.c:510,1
    - Dst: printf
      Src: /src/git/builtin/merge-tree.c:515,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-tree.c:516,1
    - Dst: strcmp
      Src: /src/git/builtin/merge-tree.c:517,1
    - Dst: write_name_quoted_relative
      Src: /src/git/builtin/merge-tree.c:519,1
    - Dst: string_list_clear
      Src: /src/git/builtin/merge-tree.c:523,1
    - Dst: putchar
      Src: /src/git/builtin/merge-tree.c:526,1
    - Dst: merge_display_update_messages
      Src: /src/git/builtin/merge-tree.c:527,1
    - Dst: putchar
      Src: /src/git/builtin/merge-tree.c:531,1
    - Dst: merge_finalize
      Src: /src/git/builtin/merge-tree.c:534,1
    - Dst: clear_merge_options
      Src: /src/git/builtin/merge-tree.c:535,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 5
    argNames:
    - o
    - merge_base
    - branch1
    - branch2
    - prefix
    argTypes:
    - struct merge_tree_options*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 422
    functionDepth: 25
    functionLinenumber: 422
    functionLinenumberEnd: 537
    functionName: real_merge
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - putchar
    - write_name_quoted_relative
    - repo_get_oid_treeish
    - repo_get_merge_bases
    - merge_incore_recursive
    - strcmp
    - printf
    - commit_list_reverse
    - die
    - merge_finalize
    - merge_display_update_messages
    - merge_get_conflicted_files
    - string_list_clear
    - oid_to_hex
    - repo_parse_tree_indirect
    - clear_merge_options
    - help_unknown_ref
    - _
    - merge_incore_nonrecursive
    - copy_merge_options
    - exit
    - commit_list_free
    - get_merge_parent
    linkageType: ''
    returnType: int
    signature: "int real_merge(struct merge_tree_options *o,\n\t\t      const char
      *merge_base,\n\t\t      const char *branch1, const char *branch2,\n\t\t      const
      char *prefix)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:553,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:554,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/merge-tree.c:558,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:559,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/merge-tree.c:561,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:562,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/merge-tree.c:563,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:564,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/merge-tree.c:565,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:567,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/merge-tree.c:569,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:570,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/merge-tree.c:571,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:573,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/merge-tree.c:575,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:577,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/merge-tree.c:579,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:581,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/merge-tree.c:583,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:585,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:586,1
    - Dst: OPT_STRVEC
      Src: /src/git/builtin/merge-tree.c:587,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:587,1
    - Dst: N_
      Src: /src/git/builtin/merge-tree.c:588,1
    - Dst: OPT_END
      Src: /src/git/builtin/merge-tree.c:589,1
    - Dst: init_basic_merge_options
      Src: /src/git/builtin/merge-tree.c:593,1
    - Dst: parse_options
      Src: /src/git/builtin/merge-tree.c:597,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/merge-tree.c:603,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/merge-tree.c:604,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/merge-tree.c:605,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/merge-tree.c:606,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:609,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:609,1
    - Dst: parse_merge_opt
      Src: /src/git/builtin/merge-tree.c:611,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:612,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:612,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:619,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:619,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:621,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:621,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/merge-tree.c:624,1
    - Dst: string_list_split_in_place_f
      Src: /src/git/builtin/merge-tree.c:628,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:632,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:632,1
    - Dst: strcmp
      Src: /src/git/builtin/merge-tree.c:635,1
    - Dst: real_merge
      Src: /src/git/builtin/merge-tree.c:640,1
    - Dst: real_merge
      Src: /src/git/builtin/merge-tree.c:644,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:648,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:648,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/merge-tree.c:650,1
    - Dst: string_list_clear
      Src: /src/git/builtin/merge-tree.c:652,1
    - Dst: strbuf_release
      Src: /src/git/builtin/merge-tree.c:654,1
    - Dst: BUG
      Src: /src/git/builtin/merge-tree.c:663,1
    - Dst: usage_with_options
      Src: /src/git/builtin/merge-tree.c:667,1
    - Dst: die
      Src: /src/git/builtin/merge-tree.c:687,1
    - Dst: _
      Src: /src/git/builtin/merge-tree.c:687,1
    - Dst: usage_with_options
      Src: /src/git/builtin/merge-tree.c:690,1
    - Dst: repo_config
      Src: /src/git/builtin/merge-tree.c:692,1
    - Dst: real_merge
      Src: /src/git/builtin/merge-tree.c:696,1
    - Dst: trivial_merge
      Src: /src/git/builtin/merge-tree.c:698,1
    - Dst: strvec_clear
      Src: /src/git/builtin/merge-tree.c:701,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 539
    functionDepth: 26
    functionLinenumber: 539
    functionLinenumberEnd: 703
    functionName: cmd_merge_tree
    functionSourceFile: /src/git/builtin/merge-tree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_BOOL
    - strcmp
    - parse_merge_opt
    - repo_config
    - usage_with_options
    - strbuf_release
    - OPT_END
    - die
    - strbuf_getline_lf
    - die_for_incompatible_opt2
    - init_basic_merge_options
    - OPT_CMDMODE
    - maybe_flush_or_die
    - string_list_clear
    - OPT_SET_INT
    - OPT_STRVEC
    - real_merge
    - trivial_merge
    - _
    - N_
    - string_list_split_in_place_f
    - OPT_BOOL_F
    - OPT_STRING
    - strvec_clear
    - BUG
    linkageType: ''
    returnType: int
    signature: "int cmd_merge_tree(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/show-index.c:29,1
    - Dst: N_
      Src: /src/git/builtin/show-index.c:29,1
    - Dst: N_
      Src: /src/git/builtin/show-index.c:30,1
    - Dst: OPT_END
      Src: /src/git/builtin/show-index.c:31,1
    - Dst: parse_options
      Src: /src/git/builtin/show-index.c:34,1
    - Dst: hash_algo_by_name
      Src: /src/git/builtin/show-index.c:37,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:39,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:39,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/show-index.c:40,1
    - Dst: warning
      Src: /src/git/builtin/show-index.c:51,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:51,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/show-index.c:52,1
    - Dst: fread
      Src: /src/git/builtin/show-index.c:57,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:58,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:58,1
    - Dst: htonl
      Src: /src/git/builtin/show-index.c:59,1
    - Dst: ntohl
      Src: /src/git/builtin/show-index.c:60,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:62,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:62,1
    - Dst: fread
      Src: /src/git/builtin/show-index.c:63,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:64,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:64,1
    - Dst: fread
      Src: /src/git/builtin/show-index.c:67,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:68,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:68,1
    - Dst: ntohl
      Src: /src/git/builtin/show-index.c:72,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:74,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:74,1
    - Dst: fread
      Src: /src/git/builtin/show-index.c:81,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:82,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:82,1
    - Dst: ntohl
      Src: /src/git/builtin/show-index.c:83,1
    - Dst: printf
      Src: /src/git/builtin/show-index.c:84,1
    - Dst: hash_to_hex
      Src: /src/git/builtin/show-index.c:84,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/show-index.c:93,1
    - Dst: fread
      Src: /src/git/builtin/show-index.c:95,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:96,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:96,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/builtin/show-index.c:97,1
    - Dst: fread
      Src: /src/git/builtin/show-index.c:100,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:101,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:101,1
    - Dst: fread
      Src: /src/git/builtin/show-index.c:103,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:104,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:104,1
    - Dst: ntohl
      Src: /src/git/builtin/show-index.c:107,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:113,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:113,1
    - Dst: fread
      Src: /src/git/builtin/show-index.c:114,1
    - Dst: die
      Src: /src/git/builtin/show-index.c:115,1
    - Dst: _
      Src: /src/git/builtin/show-index.c:115,1
    - Dst: ntohl
      Src: /src/git/builtin/show-index.c:116,1
    - Dst: ntohl
      Src: /src/git/builtin/show-index.c:117,1
    - Dst: printf
      Src: /src/git/builtin/show-index.c:120,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/show-index.c:122,1
    - Dst: ntohl
      Src: /src/git/builtin/show-index.c:123,1
    - Dst: free
      Src: /src/git/builtin/show-index.c:125,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 16
    functionDepth: 13
    functionLinenumber: 16
    functionLinenumberEnd: 128
    functionName: cmd_show_index
    functionSourceFile: /src/git/builtin/show-index.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - hash_algo_by_ptr
    - hash_to_hex
    - oid_to_hex
    - ntohl
    - ALLOC_ARRAY
    - OPT_STRING
    - htonl
    - free
    - repo_set_hash_algo
    - _
    - N_
    - hash_algo_by_name
    - warning
    - printf
    - fread
    linkageType: ''
    returnType: int
    signature: "int cmd_show_index(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/repo.c:61,1
    - Dst: is_bare_repository
      Src: /src/git/builtin/repo.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - UNUSED
    - buf
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: get_layout_bare
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - is_bare_repository
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int get_layout_bare(struct repository *repo UNUSED, struct strbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/repo.c:67,1
    - Dst: is_repository_shallow
      Src: /src/git/builtin/repo.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - repo
    - buf
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: get_layout_shallow
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - is_repository_shallow
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int get_layout_shallow(struct repository *repo, struct strbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/repo.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - repo
    - buf
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: get_object_format
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int get_object_format(struct repository *repo, struct strbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/repo.c:80,1
    - Dst: ref_storage_format_to_name
      Src: /src/git/builtin/repo.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - repo
    - buf
    argTypes:
    - struct repository*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: get_references_format
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - ref_storage_format_to_name
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int get_references_format(struct repository *repo, struct strbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/repo.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: repo_info_field_cmp
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int repo_info_field_cmp(const void *va, const void *vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/git/builtin/repo.c:104,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/repo.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: get_repo_info_field
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - bsearch
    linkageType: ''
    returnType: struct repo_info_field
    signature: struct repo_info_field *get_repo_info_field(const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/repo.c:118,1
    - Dst: quote_c_style
      Src: /src/git/builtin/repo.c:119,1
    - Dst: putchar
      Src: /src/git/builtin/repo.c:120,1
    - Dst: printf
      Src: /src/git/builtin/repo.c:123,1
    - Dst: BUG
      Src: /src/git/builtin/repo.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - format
    - key
    - value
    argTypes:
    - enum output_format
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: print_field
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - quote_c_style
    - BUG
    - printf
    - putchar
    linkageType: ''
    returnType: void
    signature: "void print_field(enum output_format format, const char *key,\n\t\t\tconst
      char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_repo_info_field
      Src: /src/git/builtin/repo.c:139,1
    - Dst: error
      Src: /src/git/builtin/repo.c:142,1
    - Dst: _
      Src: /src/git/builtin/repo.c:142,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/repo.c:146,1
    - Dst: struct repo_info_field*::get_value
      Src: /src/git/builtin/repo.c:147,1
    - Dst: print_field
      Src: /src/git/builtin/repo.c:148,1
    - Dst: strbuf_release
      Src: /src/git/builtin/repo.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - argc
    - argv
    - repo
    - format
    argTypes:
    - int
    - char**
    - struct repository*
    - enum output_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 153
    functionName: print_fields
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - print_field
    - strbuf_reset
    - get_repo_info_field
    - _
    - struct repo_info_field*::get_value
    linkageType: ''
    returnType: int
    signature: "int print_fields(int argc, const char **argv,\n\t\t\tstruct repository
      *repo,\n\t\t\tenum output_format format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/repo.c:160,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/repo.c:163,1
    - Dst: struct repo_info_field*::get_value
      Src: /src/git/builtin/repo.c:164,1
    - Dst: print_field
      Src: /src/git/builtin/repo.c:165,1
    - Dst: strbuf_release
      Src: /src/git/builtin/repo.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - repo
    - format
    argTypes:
    - struct repository*
    - enum output_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: print_all_fields
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strbuf_release
    - print_field
    - strbuf_reset
    - struct repo_info_field*::get_value
    linkageType: ''
    returnType: int
    signature: "int print_all_fields(struct repository *repo,\n\t\t\t    enum output_format
      format)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/repo.c:184,1
    - Dst: _
      Src: /src/git/builtin/repo.c:184,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/repo.c:187,1
    - Dst: printf
      Src: /src/git/builtin/repo.c:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - format
    argTypes:
    - enum output_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: print_keys
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - die
    - printf
    - _
    linkageType: ''
    returnType: int
    signature: int print_keys(enum output_format format)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/repo.c:202,1
    - Dst: strcmp
      Src: /src/git/builtin/repo.c:204,1
    - Dst: strcmp
      Src: /src/git/builtin/repo.c:206,1
    - Dst: die
      Src: /src/git/builtin/repo.c:209,1
    - Dst: _
      Src: /src/git/builtin/repo.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - UNUSED
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: parse_format_cb
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int parse_format_cb(const struct option *opt,\n\t\t\t   const char
      *arg, int unset UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/repo.c:221,1
    - Dst: N_
      Src: /src/git/builtin/repo.c:221,1
    - Dst: N_
      Src: /src/git/builtin/repo.c:222,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/repo.c:224,1
    - Dst: N_
      Src: /src/git/builtin/repo.c:225,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repo.c:228,1
    - Dst: N_
      Src: /src/git/builtin/repo.c:228,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repo.c:229,1
    - Dst: N_
      Src: /src/git/builtin/repo.c:229,1
    - Dst: OPT_END
      Src: /src/git/builtin/repo.c:230,1
    - Dst: parse_options
      Src: /src/git/builtin/repo.c:233,1
    - Dst: die
      Src: /src/git/builtin/repo.c:236,1
    - Dst: _
      Src: /src/git/builtin/repo.c:236,1
    - Dst: print_keys
      Src: /src/git/builtin/repo.c:239,1
    - Dst: die
      Src: /src/git/builtin/repo.c:242,1
    - Dst: _
      Src: /src/git/builtin/repo.c:242,1
    - Dst: die
      Src: /src/git/builtin/repo.c:245,1
    - Dst: _
      Src: /src/git/builtin/repo.c:245,1
    - Dst: print_all_fields
      Src: /src/git/builtin/repo.c:248,1
    - Dst: print_fields
      Src: /src/git/builtin/repo.c:250,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 214
    functionDepth: 13
    functionLinenumber: 214
    functionLinenumberEnd: 251
    functionName: cmd_repo_info
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - OPT_CALLBACK_F
    - OPT_BOOL
    - print_keys
    - print_all_fields
    - print_fields
    - _
    - N_
    linkageType: ''
    returnType: int
    signature: "int cmd_repo_info(int argc, const char **argv, const char *prefix,\n\t\t\t
      struct repository *repo)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_vaddf
      Src: /src/git/builtin/repo.c:322,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/repo.c:323,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/repo.c:324,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/repo.c:326,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/repo.c:335,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/repo.c:336,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/repo.c:337,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/repo.c:337,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/repo.c:340,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/repo.c:345,1
    - Dst: strbuf_release
      Src: /src/git/builtin/repo.c:350,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - table
    - entry
    - format
    - ap
    argTypes:
    - struct stats_table*
    - struct stats_table_entry*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 313
    functionDepth: 5
    functionLinenumber: 313
    functionLinenumberEnd: 351
    functionName: stats_table_vaddf
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - strbuf_vaddf
    - string_list_append_nodup
    - strbuf_addf
    - utf8_strwidth
    - strbuf_detach
    linkageType: ''
    returnType: void
    signature: "void stats_table_vaddf(struct stats_table *table,\n\t\t\t      struct
      stats_table_entry *entry,\n\t\t\t      const char *format, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/builtin/repo.c:357,1
    - Dst: stats_table_vaddf
      Src: /src/git/builtin/repo.c:358,1
    - Dst: va_end
      Src: /src/git/builtin/repo.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - table
    - format
    argTypes:
    - struct stats_table*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: stats_table_addf
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - stats_table_vaddf
    linkageType: ''
    returnType: void
    signature: void stats_table_addf(struct stats_table *table, const char *format,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/repo.c:368,1
    - Dst: humanise_count
      Src: /src/git/builtin/repo.c:369,1
    - Dst: va_start
      Src: /src/git/builtin/repo.c:371,1
    - Dst: stats_table_vaddf
      Src: /src/git/builtin/repo.c:372,1
    - Dst: va_end
      Src: /src/git/builtin/repo.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - table
    - value
    - format
    argTypes:
    - struct stats_table*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 362
    functionDepth: 6
    functionLinenumber: 362
    functionLinenumberEnd: 374
    functionName: stats_table_count_addf
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - stats_table_vaddf
    - va_end
    - CALLOC_ARRAY
    - va_start
    - humanise_count
    linkageType: ''
    returnType: void
    signature: "void stats_table_count_addf(struct stats_table *table, size_t value,\n\t\t\t\t
      \  const char *format, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/repo.c:383,1
    - Dst: humanise_count
      Src: /src/git/builtin/repo.c:384,1
    - Dst: is_null_oid
      Src: /src/git/builtin/repo.c:389,1
    - Dst: va_start
      Src: /src/git/builtin/repo.c:392,1
    - Dst: stats_table_vaddf
      Src: /src/git/builtin/repo.c:393,1
    - Dst: va_end
      Src: /src/git/builtin/repo.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - table
    - oid
    - value
    - format
    argTypes:
    - struct stats_table*
    - struct object_id*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 376
    functionDepth: 6
    functionLinenumber: 376
    functionLinenumberEnd: 395
    functionName: stats_table_object_count_addf
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - stats_table_vaddf
    - is_null_oid
    - va_end
    - CALLOC_ARRAY
    - va_start
    - humanise_count
    linkageType: ''
    returnType: void
    signature: "void stats_table_object_count_addf(struct stats_table *table,\n\t\t\t\t\t
      \ struct object_id *oid, size_t value,\n\t\t\t\t\t  const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/repo.c:403,1
    - Dst: humanise_bytes
      Src: /src/git/builtin/repo.c:404,1
    - Dst: va_start
      Src: /src/git/builtin/repo.c:406,1
    - Dst: stats_table_vaddf
      Src: /src/git/builtin/repo.c:407,1
    - Dst: va_end
      Src: /src/git/builtin/repo.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - table
    - value
    - format
    argTypes:
    - struct stats_table*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 397
    functionDepth: 6
    functionLinenumber: 397
    functionLinenumberEnd: 409
    functionName: stats_table_size_addf
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - stats_table_vaddf
    - va_end
    - CALLOC_ARRAY
    - va_start
    - humanise_bytes
    linkageType: ''
    returnType: void
    signature: "void stats_table_size_addf(struct stats_table *table, size_t value,\n\t\t\t\t
      \ const char *format, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/repo.c:418,1
    - Dst: humanise_bytes
      Src: /src/git/builtin/repo.c:419,1
    - Dst: is_null_oid
      Src: /src/git/builtin/repo.c:424,1
    - Dst: va_start
      Src: /src/git/builtin/repo.c:427,1
    - Dst: stats_table_vaddf
      Src: /src/git/builtin/repo.c:428,1
    - Dst: va_end
      Src: /src/git/builtin/repo.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - table
    - oid
    - value
    - format
    argTypes:
    - struct stats_table*
    - struct object_id*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 411
    functionDepth: 6
    functionLinenumber: 411
    functionLinenumberEnd: 430
    functionName: stats_table_object_size_addf
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - stats_table_vaddf
    - is_null_oid
    - va_end
    - CALLOC_ARRAY
    - va_start
    - humanise_bytes
    linkageType: ''
    returnType: void
    signature: "void stats_table_object_size_addf(struct stats_table *table,\n\t\t\t\t\t
      struct object_id *oid, size_t value,\n\t\t\t\t\t const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stats
    argTypes:
    - struct ref_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: get_total_reference_count
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_total_reference_count(struct ref_stats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - values
    argTypes:
    - struct object_values*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: get_total_object_values
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_total_object_values(struct object_values *values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_total_reference_count
      Src: /src/git/builtin/repo.c:452,1
    - Dst: stats_table_addf
      Src: /src/git/builtin/repo.c:453,1
    - Dst: _
      Src: /src/git/builtin/repo.c:453,1
    - Dst: stats_table_count_addf
      Src: /src/git/builtin/repo.c:454,1
    - Dst: _
      Src: /src/git/builtin/repo.c:454,1
    - Dst: stats_table_count_addf
      Src: /src/git/builtin/repo.c:455,1
    - Dst: _
      Src: /src/git/builtin/repo.c:455,1
    - Dst: stats_table_count_addf
      Src: /src/git/builtin/repo.c:456,1
    - Dst: _
      Src: /src/git/builtin/repo.c:456,1
    - Dst: stats_table_count_addf
      Src: /src/git/builtin/repo.c:457,1
    - Dst: _
      Src: /src/git/builtin/repo.c:457,1
    - Dst: stats_table_count_addf
      Src: /src/git/builtin/repo.c:458,1
    - Dst: _
      Src: /src/git/builtin/repo.c:458,1
    - Dst: get_total_object_values
      Src: /src/git/builtin/repo.c:460,1
    - Dst: stats_table_addf
      Src: /src/git/builtin/repo.c:461,1
    - Dst: stats_table_addf
      Src: /src/git/builtin/repo.c:462,1
    - Dst: _
      Src: /src/git/builtin/repo.c:462,1
    - Dst: stats_table_count_addf
      Src: /src/git/builtin/repo.c:463,1
    - Dst: _
      Src: /src/git/builtin/repo.c:463,1
    - Dst: stats_table_count_addf
      Src: /src/git/builtin/repo.c:464,1
    - Dst: _
      Src: /src/git/builtin/repo.c:465,1
    - Dst: stats_table_count_addf
      Src: /src/git/builtin/repo.c:466,1
    - Dst: _
      Src: /src/git/builtin/repo.c:467,1
    - Dst: stats_table_count_addf
      Src: /src/git/builtin/repo.c:468,1
    - Dst: _
      Src: /src/git/builtin/repo.c:469,1
    - Dst: stats_table_count_addf
      Src: /src/git/builtin/repo.c:470,1
    - Dst: _
      Src: /src/git/builtin/repo.c:471,1
    - Dst: get_total_object_values
      Src: /src/git/builtin/repo.c:473,1
    - Dst: stats_table_size_addf
      Src: /src/git/builtin/repo.c:474,1
    - Dst: _
      Src: /src/git/builtin/repo.c:475,1
    - Dst: stats_table_size_addf
      Src: /src/git/builtin/repo.c:476,1
    - Dst: _
      Src: /src/git/builtin/repo.c:477,1
    - Dst: stats_table_size_addf
      Src: /src/git/builtin/repo.c:478,1
    - Dst: _
      Src: /src/git/builtin/repo.c:479,1
    - Dst: stats_table_size_addf
      Src: /src/git/builtin/repo.c:480,1
    - Dst: _
      Src: /src/git/builtin/repo.c:481,1
    - Dst: stats_table_size_addf
      Src: /src/git/builtin/repo.c:482,1
    - Dst: _
      Src: /src/git/builtin/repo.c:483,1
    - Dst: get_total_object_values
      Src: /src/git/builtin/repo.c:485,1
    - Dst: stats_table_size_addf
      Src: /src/git/builtin/repo.c:486,1
    - Dst: _
      Src: /src/git/builtin/repo.c:487,1
    - Dst: stats_table_size_addf
      Src: /src/git/builtin/repo.c:488,1
    - Dst: _
      Src: /src/git/builtin/repo.c:489,1
    - Dst: stats_table_size_addf
      Src: /src/git/builtin/repo.c:490,1
    - Dst: _
      Src: /src/git/builtin/repo.c:491,1
    - Dst: stats_table_size_addf
      Src: /src/git/builtin/repo.c:492,1
    - Dst: _
      Src: /src/git/builtin/repo.c:493,1
    - Dst: stats_table_size_addf
      Src: /src/git/builtin/repo.c:494,1
    - Dst: _
      Src: /src/git/builtin/repo.c:495,1
    - Dst: stats_table_addf
      Src: /src/git/builtin/repo.c:497,1
    - Dst: stats_table_addf
      Src: /src/git/builtin/repo.c:498,1
    - Dst: _
      Src: /src/git/builtin/repo.c:498,1
    - Dst: stats_table_addf
      Src: /src/git/builtin/repo.c:499,1
    - Dst: _
      Src: /src/git/builtin/repo.c:499,1
    - Dst: stats_table_object_size_addf
      Src: /src/git/builtin/repo.c:500,1
    - Dst: _
      Src: /src/git/builtin/repo.c:503,1
    - Dst: stats_table_object_count_addf
      Src: /src/git/builtin/repo.c:504,1
    - Dst: _
      Src: /src/git/builtin/repo.c:507,1
    - Dst: stats_table_addf
      Src: /src/git/builtin/repo.c:508,1
    - Dst: _
      Src: /src/git/builtin/repo.c:508,1
    - Dst: stats_table_object_size_addf
      Src: /src/git/builtin/repo.c:509,1
    - Dst: _
      Src: /src/git/builtin/repo.c:512,1
    - Dst: stats_table_object_count_addf
      Src: /src/git/builtin/repo.c:513,1
    - Dst: _
      Src: /src/git/builtin/repo.c:516,1
    - Dst: stats_table_addf
      Src: /src/git/builtin/repo.c:517,1
    - Dst: _
      Src: /src/git/builtin/repo.c:517,1
    - Dst: stats_table_object_size_addf
      Src: /src/git/builtin/repo.c:518,1
    - Dst: _
      Src: /src/git/builtin/repo.c:521,1
    - Dst: stats_table_addf
      Src: /src/git/builtin/repo.c:522,1
    - Dst: _
      Src: /src/git/builtin/repo.c:522,1
    - Dst: stats_table_object_size_addf
      Src: /src/git/builtin/repo.c:523,1
    - Dst: _
      Src: /src/git/builtin/repo.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 2
    argNames:
    - table
    - stats
    argTypes:
    - struct stats_table*
    - struct repo_structure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 442
    functionDepth: 7
    functionLinenumber: 442
    functionLinenumberEnd: 527
    functionName: stats_table_setup_structure
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - stats_table_count_addf
    - get_total_object_values
    - get_total_reference_count
    - stats_table_object_size_addf
    - stats_table_addf
    - _
    - stats_table_object_count_addf
    - stats_table_size_addf
    linkageType: ''
    returnType: void
    signature: "void stats_table_setup_structure(struct stats_table *table,\n\t\t\t\t\tstruct
      repo_structure *stats)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/builtin/repo.c:533,1
    - Dst: _
      Src: /src/git/builtin/repo.c:534,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/repo.c:535,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/repo.c:536,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/repo.c:548,1
    - Dst: strbuf_utf8_align
      Src: /src/git/builtin/repo.c:549,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/repo.c:551,1
    - Dst: strbuf_utf8_align
      Src: /src/git/builtin/repo.c:552,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/repo.c:554,1
    - Dst: printf
      Src: /src/git/builtin/repo.c:555,1
    - Dst: printf
      Src: /src/git/builtin/repo.c:557,1
    - Dst: putchar
      Src: /src/git/builtin/repo.c:559,1
    - Dst: printf
      Src: /src/git/builtin/repo.c:560,1
    - Dst: putchar
      Src: /src/git/builtin/repo.c:562,1
    - Dst: printf
      Src: /src/git/builtin/repo.c:563,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/repo.c:565,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/repo.c:576,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/repo.c:577,1
    - Dst: strbuf_utf8_align
      Src: /src/git/builtin/repo.c:578,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/repo.c:581,1
    - Dst: strbuf_addchars
      Src: /src/git/builtin/repo.c:584,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/repo.c:586,1
    - Dst: strbuf_utf8_align
      Src: /src/git/builtin/repo.c:587,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/repo.c:588,1
    - Dst: strbuf_utf8_align
      Src: /src/git/builtin/repo.c:589,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/repo.c:590,1
    - Dst: printf
      Src: /src/git/builtin/repo.c:591,1
    - Dst: printf
      Src: /src/git/builtin/repo.c:595,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/repo.c:596,1
    - Dst: printf
      Src: /src/git/builtin/repo.c:597,1
    - Dst: strbuf_release
      Src: /src/git/builtin/repo.c:600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct stats_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 531
    functionDepth: 5
    functionLinenumber: 531
    functionLinenumberEnd: 601
    functionName: stats_table_print_structure
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - putchar
    - strbuf_addchars
    - strbuf_release
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - utf8_strwidth
    - strbuf_addstr
    - _
    - strbuf_utf8_align
    - printf
    linkageType: ''
    returnType: void
    signature: void stats_table_print_structure(const struct stats_table *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/repo.c:608,1
    - Dst: free
      Src: /src/git/builtin/repo.c:611,1
    - Dst: string_list_clear
      Src: /src/git/builtin/repo.c:614,1
    - Dst: string_list_clear
      Src: /src/git/builtin/repo.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct stats_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 616
    functionName: stats_table_clear
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - free
    linkageType: ''
    returnType: void
    signature: void stats_table_clear(struct stats_table *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/repo.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - key_delim
    - value
    - value_delim
    argTypes:
    - char*
    - char
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 623
    functionName: print_keyvalue
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_keyvalue(const char *key, char key_delim, size_t value,\n\t\t\t\t
      \ char value_delim)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:628,1
    - Dst: printf
      Src: /src/git/builtin/repo.c:629,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/repo.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - key
    - key_delim
    - data
    - value_delim
    argTypes:
    - char*
    - char
    - struct object_data*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: print_object_data
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - printf
    - print_keyvalue
    linkageType: ''
    returnType: void
    signature: "void print_object_data(const char *key, char key_delim,\n\t\t\t      struct
      object_data *data, char value_delim)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:636,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:638,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:640,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:642,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:645,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:647,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:649,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:651,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:654,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:656,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:658,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:660,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:663,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:665,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:667,1
    - Dst: print_keyvalue
      Src: /src/git/builtin/repo.c:669,1
    - Dst: print_object_data
      Src: /src/git/builtin/repo.c:672,1
    - Dst: print_object_data
      Src: /src/git/builtin/repo.c:674,1
    - Dst: print_object_data
      Src: /src/git/builtin/repo.c:676,1
    - Dst: print_object_data
      Src: /src/git/builtin/repo.c:678,1
    - Dst: print_object_data
      Src: /src/git/builtin/repo.c:681,1
    - Dst: print_object_data
      Src: /src/git/builtin/repo.c:683,1
    - Dst: fflush
      Src: /src/git/builtin/repo.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 3
    argNames:
    - stats
    - key_delim
    - value_delim
    argTypes:
    - struct repo_structure*
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 633
    functionDepth: 4
    functionLinenumber: 633
    functionLinenumberEnd: 687
    functionName: structure_keyvalue_print
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - print_object_data
    - fflush
    - print_keyvalue
    linkageType: ''
    returnType: void
    signature: "void structure_keyvalue_print(struct repo_structure *stats,\n\t\t\t\t
      \    char key_delim, char value_delim)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ref_kind_from_refname
      Src: /src/git/builtin/repo.c:701,1
    - Dst: BUG
      Src: /src/git/builtin/repo.c:715,1
    - Dst: add_pending_oid
      Src: /src/git/builtin/repo.c:722,1
    - Dst: get_total_reference_count
      Src: /src/git/builtin/repo.c:724,1
    - Dst: display_progress
      Src: /src/git/builtin/repo.c:725,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 695
    functionDepth: 6
    functionLinenumber: 695
    functionLinenumberEnd: 728
    functionName: count_references
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - ref_kind_from_refname
    - add_pending_oid
    - display_progress
    - get_total_reference_count
    - BUG
    linkageType: ''
    returnType: int
    signature: int count_references(const struct reference *ref, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/builtin/repo.c:741,1
    - Dst: _
      Src: /src/git/builtin/repo.c:742,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/repo.c:744,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/repo.c:744,1
    - Dst: stop_progress
      Src: /src/git/builtin/repo.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - stats
    - revs
    - repo
    - show_progress
    argTypes:
    - struct ref_stats*
    - struct rev_info*
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 730
    functionDepth: 4
    functionLinenumber: 730
    functionLinenumberEnd: 746
    functionName: structure_count_references
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - refs_for_each_ref
    - start_delayed_progress
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void structure_count_references(struct ref_stats *stats,\n\t\t\t\t
      \      struct rev_info *revs,\n\t\t\t\t       struct repository *repo,\n\t\t\t\t
      \      int show_progress)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/repo.c:757,1
    - Dst: oidcpy
      Src: /src/git/builtin/repo.c:758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - data
    - oid
    - value
    argTypes:
    - struct object_data*
    - struct object_id*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 761
    functionName: check_largest
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - is_null_oid
    linkageType: ''
    returnType: void
    signature: "void check_largest(struct object_data *data, struct object_id *oid,\n\t\t\t
      \ size_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_as_type
      Src: /src/git/builtin/repo.c:765,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/repo.c:770,1
    - Dst: tree_entry
      Src: /src/git/builtin/repo.c:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 763
    functionDepth: 6
    functionLinenumber: 763
    functionLinenumberEnd: 775
    functionName: count_tree_entries
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - object_as_type
    - tree_entry
    - init_tree_desc
    linkageType: ''
    returnType: size_t
    signature: size_t count_tree_entries(struct object *obj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/repo.c:797,1
    - Dst: parse_object_buffer
      Src: /src/git/builtin/repo.c:802,1
    - Dst: check_largest
      Src: /src/git/builtin/repo.c:810,1
    - Dst: object_as_type
      Src: /src/git/builtin/repo.c:814,1
    - Dst: check_largest
      Src: /src/git/builtin/repo.c:818,1
    - Dst: check_largest
      Src: /src/git/builtin/repo.c:820,1
    - Dst: commit_list_count
      Src: /src/git/builtin/repo.c:821,1
    - Dst: check_largest
      Src: /src/git/builtin/repo.c:827,1
    - Dst: check_largest
      Src: /src/git/builtin/repo.c:829,1
    - Dst: count_tree_entries
      Src: /src/git/builtin/repo.c:830,1
    - Dst: check_largest
      Src: /src/git/builtin/repo.c:836,1
    - Dst: BUG
      Src: /src/git/builtin/repo.c:840,1
    - Dst: free
      Src: /src/git/builtin/repo.c:844,1
    - Dst: get_total_object_values
      Src: /src/git/builtin/repo.c:847,1
    - Dst: display_progress
      Src: /src/git/builtin/repo.c:848,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 4
    argNames:
    - UNUSED
    - oids
    - type
    - cb_data
    argTypes:
    - char*
    - struct oid_array*
    - enum object_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 777
    functionDepth: 11
    functionLinenumber: 777
    functionLinenumberEnd: 851
    functionName: count_objects
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 6
    functionsReached:
    - count_tree_entries
    - get_total_object_values
    - object_as_type
    - check_largest
    - display_progress
    - free
    - parse_object_buffer
    - odb_read_object_info_extended
    - BUG
    - commit_list_count
    linkageType: ''
    returnType: int
    signature: "int count_objects(const char *path UNUSED, struct oid_array *oids,\n\t\t\t
      enum object_type type, void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/builtin/repo.c:868,1
    - Dst: _
      Src: /src/git/builtin/repo.c:868,1
    - Dst: walk_objects_by_path
      Src: /src/git/builtin/repo.c:870,1
    - Dst: path_walk_info_clear
      Src: /src/git/builtin/repo.c:871,1
    - Dst: stop_progress
      Src: /src/git/builtin/repo.c:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - stats
    - revs
    - repo
    - show_progress
    argTypes:
    - struct object_stats*
    - struct rev_info*
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 853
    functionDepth: 14
    functionLinenumber: 853
    functionLinenumberEnd: 873
    functionName: structure_count_objects
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - walk_objects_by_path
    - stop_progress
    - path_walk_info_clear
    - start_delayed_progress
    - _
    linkageType: ''
    returnType: void
    signature: "void structure_count_objects(struct object_stats *stats,\n\t\t\t\t
      \   struct rev_info *revs,\n\t\t\t\t    struct repository *repo, int show_progress)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/repo.c:887,1
    - Dst: N_
      Src: /src/git/builtin/repo.c:887,1
    - Dst: N_
      Src: /src/git/builtin/repo.c:888,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/repo.c:890,1
    - Dst: N_
      Src: /src/git/builtin/repo.c:891,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repo.c:894,1
    - Dst: N_
      Src: /src/git/builtin/repo.c:894,1
    - Dst: OPT_END
      Src: /src/git/builtin/repo.c:895,1
    - Dst: parse_options
      Src: /src/git/builtin/repo.c:898,1
    - Dst: usage
      Src: /src/git/builtin/repo.c:900,1
    - Dst: _
      Src: /src/git/builtin/repo.c:900,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/repo.c:902,1
    - Dst: isatty
      Src: /src/git/builtin/repo.c:905,1
    - Dst: structure_count_references
      Src: /src/git/builtin/repo.c:907,1
    - Dst: structure_count_objects
      Src: /src/git/builtin/repo.c:908,1
    - Dst: stats_table_setup_structure
      Src: /src/git/builtin/repo.c:912,1
    - Dst: stats_table_print_structure
      Src: /src/git/builtin/repo.c:913,1
    - Dst: structure_keyvalue_print
      Src: /src/git/builtin/repo.c:916,1
    - Dst: structure_keyvalue_print
      Src: /src/git/builtin/repo.c:919,1
    - Dst: BUG
      Src: /src/git/builtin/repo.c:922,1
    - Dst: stats_table_clear
      Src: /src/git/builtin/repo.c:925,1
    - Dst: release_revisions
      Src: /src/git/builtin/repo.c:926,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 875
    functionDepth: 15
    functionLinenumber: 875
    functionLinenumberEnd: 929
    functionName: cmd_repo_structure
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - stats_table_print_structure
    - release_revisions
    - structure_keyvalue_print
    - OPT_CALLBACK_F
    - OPT_BOOL
    - usage
    - repo_init_revisions
    - structure_count_objects
    - stats_table_clear
    - structure_count_references
    - stats_table_setup_structure
    - _
    - N_
    - isatty
    - BUG
    linkageType: ''
    returnType: int
    signature: "int cmd_repo_structure(int argc, const char **argv, const char *prefix,\n\t\t\t
      \     struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/repo.c:936,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/repo.c:937,1
    - Dst: OPT_END
      Src: /src/git/builtin/repo.c:938,1
    - Dst: parse_options
      Src: /src/git/builtin/repo.c:941,1
    - Dst: fn
      Src: /src/git/builtin/repo.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 931
    functionDepth: 13
    functionLinenumber: 931
    functionLinenumberEnd: 944
    functionName: cmd_repo
    functionSourceFile: /src/git/builtin/repo.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - parse_options
    - OPT_SUBCOMMAND
    - fn
    linkageType: ''
    returnType: int
    signature: "int cmd_repo(int argc, const char **argv, const char *prefix,\n\t
      \    struct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_worktree_ref
      Src: /src/git/builtin/reflog.c:102,1
    - Dst: strbuf_worktree_ref
      Src: /src/git/builtin/reflog.c:105,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/reflog.c:106,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/reflog.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: collect_reflog
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - strbuf_detach
    - strbuf_worktree_ref
    - parse_worktree_ref
    - string_list_append_nodup
    linkageType: ''
    returnType: int
    signature: int collect_reflog(const char *ref, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/reflog.c:117,1
    - Dst: parse_expiry_date
      Src: /src/git/builtin/reflog.c:119,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:120,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: expire_unreachable_callback
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - _
    - parse_expiry_date
    linkageType: ''
    returnType: int
    signature: "int expire_unreachable_callback(const struct option *opt,\n\t\t\t\t
      const char *arg,\n\t\t\t\t int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/reflog.c:133,1
    - Dst: parse_expiry_date
      Src: /src/git/builtin/reflog.c:135,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:136,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: expire_total_callback
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - _
    - parse_expiry_date
    linkageType: ''
    returnType: int
    signature: "int expire_total_callback(const struct option *opt,\n\t\t\t\t const
      char *arg,\n\t\t\t\t int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/reflog.c:147,1
    - Dst: parse_options
      Src: /src/git/builtin/reflog.c:150,1
    - Dst: cmd_log_reflog
      Src: /src/git/builtin/reflog.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 13
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: cmd_reflog_show
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - cmd_log_reflog
    linkageType: ''
    returnType: int
    signature: "int cmd_reflog_show(int argc, const char **argv, const char *prefix,\n\t\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/reflog.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - refname
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: show_reflog
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int show_reflog(const char *refname, void *cb_data UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/reflog.c:167,1
    - Dst: parse_options
      Src: /src/git/builtin/reflog.c:171,1
    - Dst: error
      Src: /src/git/builtin/reflog.c:173,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:173,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/reflog.c:176,1
    - Dst: refs_for_each_reflog
      Src: /src/git/builtin/reflog.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 163
    functionDepth: 13
    functionLinenumber: 163
    functionLinenumberEnd: 179
    functionName: cmd_reflog_list
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - error
    - refs_for_each_reflog
    - parse_options
    - OPT_END
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int cmd_reflog_list(int argc, const char **argv, const char *prefix,\n\t\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/builtin/reflog.c:184,1
    - Dst: REFLOG_EXPIRE_OPTIONS_INIT
      Src: /src/git/builtin/reflog.c:185,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/reflog.c:191,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:191,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/reflog.c:193,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:194,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/reflog.c:196,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:197,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reflog.c:199,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:199,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/reflog.c:200,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:200,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:201,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/reflog.c:204,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:204,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:205,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reflog.c:208,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:209,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reflog.c:210,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:210,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reflog.c:211,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:212,1
    - Dst: OPT_END
      Src: /src/git/builtin/reflog.c:213,1
    - Dst: repo_config
      Src: /src/git/builtin/reflog.c:216,1
    - Dst: parse_options
      Src: /src/git/builtin/reflog.c:221,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/reflog.c:234,1
    - Dst: printf
      Src: /src/git/builtin/reflog.c:239,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:239,1
    - Dst: mark_reachable_objects
      Src: /src/git/builtin/reflog.c:240,1
    - Dst: release_revisions
      Src: /src/git/builtin/reflog.c:241,1
    - Dst: putchar
      Src: /src/git/builtin/reflog.c:243,1
    - Dst: get_worktrees
      Src: /src/git/builtin/reflog.c:253,1
    - Dst: refs_for_each_reflog
      Src: /src/git/builtin/reflog.c:258,1
    - Dst: get_worktree_ref_store
      Src: /src/git/builtin/reflog.c:258,1
    - Dst: free_worktrees
      Src: /src/git/builtin/reflog.c:261,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/reflog.c:263,1
    - Dst: reflog_expire_options_set_refname
      Src: /src/git/builtin/reflog.c:269,1
    - Dst: refs_reflog_expire
      Src: /src/git/builtin/reflog.c:270,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/reflog.c:270,1
    - Dst: string_list_clear
      Src: /src/git/builtin/reflog.c:277,1
    - Dst: repo_dwim_log
      Src: /src/git/builtin/reflog.c:284,1
    - Dst: strlen
      Src: /src/git/builtin/reflog.c:284,1
    - Dst: error
      Src: /src/git/builtin/reflog.c:285,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:285,1
    - Dst: reflog_expire_options_set_refname
      Src: /src/git/builtin/reflog.c:288,1
    - Dst: refs_reflog_expire
      Src: /src/git/builtin/reflog.c:289,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/reflog.c:289,1
    - Dst: free
      Src: /src/git/builtin/reflog.c:295,1
    - Dst: reflog_clear_expire_config
      Src: /src/git/builtin/reflog.c:298,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 181
    functionDepth: 19
    functionLinenumber: 181
    functionLinenumberEnd: 301
    functionName: cmd_reflog_expire
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - refs_for_each_reflog
    - parse_options
    - putchar
    - for_each_string_list_item
    - mark_reachable_objects
    - repo_dwim_log
    - OPT_BOOL
    - repo_init_revisions
    - free
    - repo_config
    - printf
    - get_main_ref_store
    - error
    - get_worktrees
    - OPT_END
    - release_revisions
    - get_worktree_ref_store
    - REFLOG_EXPIRE_OPTIONS_INIT
    - OPT_BIT
    - string_list_clear
    - _
    - N_
    - reflog_clear_expire_config
    - free_worktrees
    - reflog_expire_options_set_refname
    - OPT_CALLBACK_F
    - refs_reflog_expire
    - strlen
    - time
    linkageType: ''
    returnType: int
    signature: "int cmd_reflog_expire(int argc, const char **argv, const char *prefix,\n\t\t\t
      \    struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BIT
      Src: /src/git/builtin/reflog.c:311,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:311,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/reflog.c:313,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:314,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/reflog.c:316,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:317,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reflog.c:319,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:319,1
    - Dst: OPT_END
      Src: /src/git/builtin/reflog.c:320,1
    - Dst: parse_options
      Src: /src/git/builtin/reflog.c:323,1
    - Dst: error
      Src: /src/git/builtin/reflog.c:326,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:326,1
    - Dst: reflog_delete
      Src: /src/git/builtin/reflog.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 303
    functionDepth: 13
    functionLinenumber: 303
    functionLinenumberEnd: 332
    functionName: cmd_reflog_delete
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - reflog_delete
    - OPT_BOOL
    - OPT_BIT
    - _
    - N_
    linkageType: ''
    returnType: int
    signature: "int cmd_reflog_delete(int argc, const char **argv, const char *prefix,\n\t\t\t
      \    struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/reflog.c:338,1
    - Dst: parse_options
      Src: /src/git/builtin/reflog.c:342,1
    - Dst: usage_with_options
      Src: /src/git/builtin/reflog.c:345,1
    - Dst: check_refname_format
      Src: /src/git/builtin/reflog.c:348,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:349,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:349,1
    - Dst: refs_reflog_exists
      Src: /src/git/builtin/reflog.c:350,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/reflog.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 334
    functionDepth: 13
    functionLinenumber: 334
    functionLinenumberEnd: 352
    functionName: cmd_reflog_exists
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - refs_reflog_exists
    - check_refname_format
    - _
    - get_main_ref_store
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_reflog_exists(int argc, const char **argv, const char *prefix,\n\t\t\t
      \    struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reflog.c:359,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:359,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reflog.c:360,1
    - Dst: N_
      Src: /src/git/builtin/reflog.c:361,1
    - Dst: OPT_END
      Src: /src/git/builtin/reflog.c:362,1
    - Dst: parse_options
      Src: /src/git/builtin/reflog.c:365,1
    - Dst: usage
      Src: /src/git/builtin/reflog.c:368,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:368,1
    - Dst: get_worktrees
      Src: /src/git/builtin/reflog.c:377,1
    - Dst: refs_for_each_reflog
      Src: /src/git/builtin/reflog.c:382,1
    - Dst: get_worktree_ref_store
      Src: /src/git/builtin/reflog.c:382,1
    - Dst: free_worktrees
      Src: /src/git/builtin/reflog.c:385,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/reflog.c:387,1
    - Dst: refs_delete_reflog
      Src: /src/git/builtin/reflog.c:388,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/reflog.c:388,1
    - Dst: string_list_clear
      Src: /src/git/builtin/reflog.c:390,1
    - Dst: repo_dwim_log
      Src: /src/git/builtin/reflog.c:397,1
    - Dst: strlen
      Src: /src/git/builtin/reflog.c:397,1
    - Dst: error
      Src: /src/git/builtin/reflog.c:398,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:398,1
    - Dst: refs_delete_reflog
      Src: /src/git/builtin/reflog.c:402,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/reflog.c:402,1
    - Dst: free
      Src: /src/git/builtin/reflog.c:403,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 354
    functionDepth: 15
    functionLinenumber: 354
    functionLinenumberEnd: 407
    functionName: cmd_reflog_drop
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - error
    - refs_for_each_reflog
    - parse_options
    - OPT_END
    - get_worktrees
    - get_worktree_ref_store
    - free_worktrees
    - for_each_string_list_item
    - string_list_clear
    - repo_dwim_log
    - OPT_BOOL
    - usage
    - free
    - refs_delete_reflog
    - strlen
    - _
    - N_
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int cmd_reflog_drop(int argc, const char **argv, const char *prefix,\n\t\t\t
      \  struct repository *repo)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/reflog.c:413,1
    - Dst: repo_config
      Src: /src/git/builtin/reflog.c:421,1
    - Dst: parse_options
      Src: /src/git/builtin/reflog.c:423,1
    - Dst: usage_with_options
      Src: /src/git/builtin/reflog.c:425,1
    - Dst: is_root_ref
      Src: /src/git/builtin/reflog.c:428,1
    - Dst: check_refname_format
      Src: /src/git/builtin/reflog.c:428,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:429,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:429,1
    - Dst: get_oid_hex_algop
      Src: /src/git/builtin/reflog.c:431,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:433,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:433,1
    - Dst: is_null_oid
      Src: /src/git/builtin/reflog.c:434,1
    - Dst: odb_has_object
      Src: /src/git/builtin/reflog.c:434,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:435,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:435,1
    - Dst: get_oid_hex_algop
      Src: /src/git/builtin/reflog.c:437,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:439,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:439,1
    - Dst: is_null_oid
      Src: /src/git/builtin/reflog.c:440,1
    - Dst: odb_has_object
      Src: /src/git/builtin/reflog.c:440,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:441,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:441,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/reflog.c:445,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/reflog.c:445,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:447,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:447,1
    - Dst: ref_transaction_update_reflog
      Src: /src/git/builtin/reflog.c:449,1
    - Dst: git_committer_info
      Src: /src/git/builtin/reflog.c:450,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:453,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:453,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/reflog.c:455,1
    - Dst: die
      Src: /src/git/builtin/reflog.c:457,1
    - Dst: _
      Src: /src/git/builtin/reflog.c:457,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/reflog.c:459,1
    - Dst: strbuf_release
      Src: /src/git/builtin/reflog.c:460,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 409
    functionDepth: 19
    functionLinenumber: 409
    functionLinenumberEnd: 462
    functionName: cmd_reflog_write
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - parse_options
    - OPT_END
    - die
    - strbuf_release
    - get_oid_hex_algop
    - is_root_ref
    - is_null_oid
    - odb_has_object
    - git_committer_info
    - get_main_ref_store
    - ref_transaction_free
    - check_refname_format
    - _
    - ref_store_transaction_begin
    - repo_config
    - ref_transaction_update_reflog
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_reflog_write(int argc, const char **argv, const char *prefix,\n\t\t\t
      \   struct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/reflog.c:474,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/reflog.c:475,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/reflog.c:476,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/reflog.c:477,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/reflog.c:478,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/reflog.c:479,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/reflog.c:480,1
    - Dst: OPT_END
      Src: /src/git/builtin/reflog.c:481,1
    - Dst: parse_options
      Src: /src/git/builtin/reflog.c:484,1
    - Dst: fn
      Src: /src/git/builtin/reflog.c:489,1
    - Dst: cmd_log_reflog
      Src: /src/git/builtin/reflog.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repository
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 467
    functionDepth: 13
    functionLinenumber: 467
    functionLinenumberEnd: 492
    functionName: cmd_reflog
    functionSourceFile: /src/git/builtin/reflog.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - fn
    - cmd_log_reflog
    - OPT_SUBCOMMAND
    linkageType: ''
    returnType: int
    signature: "int cmd_reflog(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repository)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/builtin/ls-tree.c:31,1
    - Dst: die
      Src: /src/git/builtin/ls-tree.c:32,1
    - Dst: _
      Src: /src/git/builtin/ls-tree.c:32,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/ls-tree.c:33,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/ls-tree.c:35,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/ls-tree.c:37,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/ls-tree.c:39,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-tree.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - line
    - oid
    - type
    - padded
    argTypes:
    - struct strbuf*
    - struct object_id*
    - enum object_type
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 12
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: expand_objectsize
    functionSourceFile: /src/git/builtin/ls-tree.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - strbuf_addf
    - odb_read_object_info
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: void
    signature: "void expand_objectsize(struct strbuf *line, const struct object_id
      *oid,\n\t\t\t      const enum object_type type, unsigned int padded)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/builtin/ls-tree.c:73,1
    - Dst: strlen
      Src: /src/git/builtin/ls-tree.c:75,1
    - Dst: strlen
      Src: /src/git/builtin/ls-tree.c:77,1
    - Dst: memcmp
      Src: /src/git/builtin/ls-tree.c:82,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 4
    argNames:
    - options
    - base
    - baselen
    - pathname
    argTypes:
    - struct ls_tree_options*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 87
    functionName: show_recursive
    functionSourceFile: /src/git/builtin/ls-tree.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int show_recursive(struct ls_tree_options *options, const char *base,\n\t\t\t
      \ size_t baselen, const char *pathname)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: object_type
      Src: /src/git/builtin/ls-tree.c:95,1
    - Dst: show_recursive
      Src: /src/git/builtin/ls-tree.c:98,1
    - Dst: strbuf_expand_step
      Src: /src/git/builtin/ls-tree.c:105,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-tree.c:108,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/ls-tree.c:109,1
    - Dst: strbuf_expand_literal
      Src: /src/git/builtin/ls-tree.c:110,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-tree.c:112,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/ls-tree.c:113,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-tree.c:114,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-tree.c:115,1
    - Dst: type_name
      Src: /src/git/builtin/ls-tree.c:115,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-tree.c:116,1
    - Dst: expand_objectsize
      Src: /src/git/builtin/ls-tree.c:117,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-tree.c:118,1
    - Dst: expand_objectsize
      Src: /src/git/builtin/ls-tree.c:119,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-tree.c:120,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/builtin/ls-tree.c:121,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-tree.c:122,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-tree.c:128,1
    - Dst: relative_path
      Src: /src/git/builtin/ls-tree.c:129,1
    - Dst: quote_c_style
      Src: /src/git/builtin/ls-tree.c:130,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/ls-tree.c:131,1
    - Dst: strbuf_release
      Src: /src/git/builtin/ls-tree.c:132,1
    - Dst: strbuf_expand_bad_format
      Src: /src/git/builtin/ls-tree.c:134,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/ls-tree.c:136,1
    - Dst: fwrite
      Src: /src/git/builtin/ls-tree.c:137,1
    - Dst: strbuf_release
      Src: /src/git/builtin/ls-tree.c:138,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 5
    argNames:
    - oid
    - base
    - pathname
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 140
    functionName: show_tree_fmt
    functionSourceFile: /src/git/builtin/ls-tree.c
    functionUses: 0
    functionsReached:
    - object_type
    - strbuf_release
    - relative_path
    - strbuf_expand_bad_format
    - fwrite
    - show_recursive
    - strbuf_addf
    - strbuf_setlen
    - strbuf_addch
    - strbuf_expand_step
    - strbuf_expand_literal
    - strbuf_addstr
    - type_name
    - quote_c_style
    - skip_prefix
    - strbuf_add_unique_abbrev
    - expand_objectsize
    linkageType: ''
    returnType: int
    signature: "int show_tree_fmt(const struct object_id *oid, struct strbuf *base,\n\t\t\t
      const char *pathname, unsigned mode, void *context)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: show_recursive
      Src: /src/git/builtin/ls-tree.c:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - options
    - recurse
    - base
    - pathname
    - type
    argTypes:
    - struct ls_tree_options*
    - int*
    - struct strbuf*
    - char*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 160
    functionName: show_tree_common
    functionSourceFile: /src/git/builtin/ls-tree.c
    functionUses: 0
    functionsReached:
    - show_recursive
    linkageType: ''
    returnType: int
    signature: "int show_tree_common(struct ls_tree_options *options, int *recurse,\n\t\t\t
      \   struct strbuf *base, const char *pathname,\n\t\t\t    enum object_type type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-tree.c:169,1
    - Dst: relative_path
      Src: /src/git/builtin/ls-tree.c:173,1
    - Dst: fputs
      Src: /src/git/builtin/ls-tree.c:175,1
    - Dst: fputc
      Src: /src/git/builtin/ls-tree.c:176,1
    - Dst: strbuf_release
      Src: /src/git/builtin/ls-tree.c:178,1
    - Dst: write_name_quoted_relative
      Src: /src/git/builtin/ls-tree.c:180,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/ls-tree.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - options
    - base
    - pathname
    - baselen
    argTypes:
    - struct ls_tree_options*
    - struct strbuf*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 162
    functionDepth: 6
    functionLinenumber: 162
    functionLinenumberEnd: 184
    functionName: show_tree_common_default_long
    functionSourceFile: /src/git/builtin/ls-tree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fputs
    - write_name_quoted_relative
    - relative_path
    - strbuf_setlen
    - strbuf_addstr
    - fputc
    linkageType: ''
    returnType: void
    signature: "void show_tree_common_default_long(struct ls_tree_options *options,\n\t\t\t\t\t
      \ struct strbuf *base,\n\t\t\t\t\t  const char *pathname,\n\t\t\t\t\t  const
      size_t baselen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: object_type
      Src: /src/git/builtin/ls-tree.c:193,1
    - Dst: show_tree_common
      Src: /src/git/builtin/ls-tree.c:195,1
    - Dst: printf
      Src: /src/git/builtin/ls-tree.c:199,1
    - Dst: type_name
      Src: /src/git/builtin/ls-tree.c:199,1
    - Dst: object_type
      Src: /src/git/builtin/ls-tree.c:199,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/ls-tree.c:200,1
    - Dst: show_tree_common_default_long
      Src: /src/git/builtin/ls-tree.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - oid
    - base
    - pathname
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 203
    functionName: show_tree_default
    functionSourceFile: /src/git/builtin/ls-tree.c
    functionUses: 0
    functionsReached:
    - object_type
    - show_tree_common
    - repo_find_unique_abbrev
    - type_name
    - show_tree_common_default_long
    - printf
    linkageType: ''
    returnType: int
    signature: "int show_tree_default(const struct object_id *oid, struct strbuf *base,\n\t\t\t
      \    const char *pathname, unsigned mode,\n\t\t\t     void *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: object_type
      Src: /src/git/builtin/ls-tree.c:213,1
    - Dst: show_tree_common
      Src: /src/git/builtin/ls-tree.c:215,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/ls-tree.c:221,1
    - Dst: xsnprintf
      Src: /src/git/builtin/ls-tree.c:222,1
    - Dst: xsnprintf
      Src: /src/git/builtin/ls-tree.c:224,1
    - Dst: xsnprintf
      Src: /src/git/builtin/ls-tree.c:227,1
    - Dst: printf
      Src: /src/git/builtin/ls-tree.c:230,1
    - Dst: type_name
      Src: /src/git/builtin/ls-tree.c:230,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/ls-tree.c:231,1
    - Dst: show_tree_common_default_long
      Src: /src/git/builtin/ls-tree.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - oid
    - base
    - pathname
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 205
    functionDepth: 12
    functionLinenumber: 205
    functionLinenumberEnd: 235
    functionName: show_tree_long
    functionSourceFile: /src/git/builtin/ls-tree.c
    functionUses: 0
    functionsReached:
    - object_type
    - show_tree_common
    - odb_read_object_info
    - repo_find_unique_abbrev
    - xsnprintf
    - type_name
    - show_tree_common_default_long
    - printf
    linkageType: ''
    returnType: int
    signature: "int show_tree_long(const struct object_id *oid, struct strbuf *base,\n\t\t\t
      \ const char *pathname, unsigned mode,\n\t\t\t  void *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: object_type
      Src: /src/git/builtin/ls-tree.c:246,1
    - Dst: show_tree_common
      Src: /src/git/builtin/ls-tree.c:249,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-tree.c:254,1
    - Dst: relative_path
      Src: /src/git/builtin/ls-tree.c:257,1
    - Dst: fputs
      Src: /src/git/builtin/ls-tree.c:259,1
    - Dst: fputc
      Src: /src/git/builtin/ls-tree.c:260,1
    - Dst: strbuf_release
      Src: /src/git/builtin/ls-tree.c:262,1
    - Dst: write_name_quoted_relative
      Src: /src/git/builtin/ls-tree.c:264,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/ls-tree.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - UNUSED
    - base
    - pathname
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 237
    functionDepth: 6
    functionLinenumber: 237
    functionLinenumberEnd: 268
    functionName: show_tree_name_only
    functionSourceFile: /src/git/builtin/ls-tree.c
    functionUses: 0
    functionsReached:
    - object_type
    - fputs
    - strbuf_release
    - show_tree_common
    - write_name_quoted_relative
    - relative_path
    - strbuf_setlen
    - strbuf_addstr
    - fputc
    linkageType: ''
    returnType: int
    signature: "int show_tree_name_only(const struct object_id *oid UNUSED,\n\t\t\t
      \      struct strbuf *base,\n\t\t\t       const char *pathname, unsigned mode,\n\t\t\t
      \      void *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: object_type
      Src: /src/git/builtin/ls-tree.c:277,1
    - Dst: show_tree_common
      Src: /src/git/builtin/ls-tree.c:280,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/ls-tree.c:284,1
    - Dst: fputs
      Src: /src/git/builtin/ls-tree.c:286,1
    - Dst: fputc
      Src: /src/git/builtin/ls-tree.c:287,1
    - Dst: puts
      Src: /src/git/builtin/ls-tree.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - oid
    - base
    - pathname
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 292
    functionName: show_tree_object
    functionSourceFile: /src/git/builtin/ls-tree.c
    functionUses: 0
    functionsReached:
    - object_type
    - fputs
    - show_tree_common
    - puts
    - repo_find_unique_abbrev
    - fputc
    linkageType: ''
    returnType: int
    signature: "int show_tree_object(const struct object_id *oid, struct strbuf *base,\n\t\t\t
      \   const char *pathname, unsigned mode,\n\t\t\t    void *context)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BIT
      Src: /src/git/builtin/ls-tree.c:349,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:349,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/ls-tree.c:351,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:351,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/ls-tree.c:353,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:353,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-tree.c:355,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:356,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/ls-tree.c:357,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:357,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/ls-tree.c:359,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:359,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/ls-tree.c:361,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:361,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/ls-tree.c:363,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:363,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-tree.c:365,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:365,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-tree.c:366,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:367,1
    - Dst: OPT_STRING_F
      Src: /src/git/builtin/ls-tree.c:369,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:369,1
    - Dst: N_
      Src: /src/git/builtin/ls-tree.c:370,1
    - Dst: OPT__ABBREV
      Src: /src/git/builtin/ls-tree.c:372,1
    - Dst: OPT_END
      Src: /src/git/builtin/ls-tree.c:373,1
    - Dst: repo_config
      Src: /src/git/builtin/ls-tree.c:378,1
    - Dst: parse_options
      Src: /src/git/builtin/ls-tree.c:380,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/ls-tree.c:402,1
    - Dst: _
      Src: /src/git/builtin/ls-tree.c:403,1
    - Dst: usage_with_options
      Src: /src/git/builtin/ls-tree.c:406,1
    - Dst: repo_get_oid_with_flags
      Src: /src/git/builtin/ls-tree.c:407,1
    - Dst: die
      Src: /src/git/builtin/ls-tree.c:409,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/ls-tree.c:417,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/ls-tree.c:424,1
    - Dst: die
      Src: /src/git/builtin/ls-tree.c:426,1
    - Dst: strcmp
      Src: /src/git/builtin/ls-tree.c:434,1
    - Dst: read_tree
      Src: /src/git/builtin/ls-tree.c:446,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/ls-tree.c:447,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 335
    functionDepth: 19
    functionLinenumber: 335
    functionLinenumberEnd: 449
    functionName: cmd_ls_tree
    functionSourceFile: /src/git/builtin/ls-tree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - repo_get_oid_with_flags
    - OPT_BOOL
    - strcmp
    - OPT_STRING_F
    - repo_config
    - usage_with_options
    - OPT_END
    - die
    - OPT_BIT
    - OPT_CMDMODE
    - read_tree
    - parse_pathspec
    - OPT__ABBREV
    - repo_parse_tree_indirect
    - _
    - N_
    - usage_msg_opt
    - clear_pathspec
    linkageType: ''
    returnType: int
    signature: "int cmd_ls_tree(int argc,\n\t\tconst char **argv,\n\t\tconst char
      *prefix,\n\t\tstruct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/merge-ours.c:25,1
    - Dst: repo_config
      Src: /src/git/builtin/merge-ours.c:27,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/merge-ours.c:28,1
    - Dst: repo_read_index
      Src: /src/git/builtin/merge-ours.c:36,1
    - Dst: die_errno
      Src: /src/git/builtin/merge-ours.c:37,1
    - Dst: index_differs_from
      Src: /src/git/builtin/merge-ours.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 20
    functionDepth: 21
    functionLinenumber: 20
    functionLinenumberEnd: 41
    functionName: cmd_merge_ours
    functionSourceFile: /src/git/builtin/merge-ours.c
    functionUses: 0
    functionsReached:
    - repo_read_index
    - show_usage_if_asked
    - die_errno
    - prepare_repo_settings
    - index_differs_from
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_merge_ours(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix UNUSED,\n\t\t   struct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/patch-id.c:16,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/patch-id.c:16,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/patch-id.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - patchlen
    - id
    - result
    argTypes:
    - size_t
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: flush_current_id
    functionSourceFile: /src/git/builtin/patch-id.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - printf
    linkageType: ''
    returnType: void
    signature: void flush_current_id(size_t patchlen, struct object_id *id, struct
      object_id *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/builtin/patch-id.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: remove_space
    functionSourceFile: /src/git/builtin/patch-id.c
    functionUses: 2
    functionsReached:
    - isspace
    linkageType: ''
    returnType: size_t
    signature: size_t remove_space(char *line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/git/builtin/patch-id.c:39,1
    - Dst: atoi
      Src: /src/git/builtin/patch-id.c:42,1
    - Dst: strspn
      Src: /src/git/builtin/patch-id.c:43,1
    - Dst: strspn
      Src: /src/git/builtin/patch-id.c:52,1
    - Dst: atoi
      Src: /src/git/builtin/patch-id.c:55,1
    - Dst: strspn
      Src: /src/git/builtin/patch-id.c:56,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - p
    - p_before
    - p_after
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 64
    functionName: scan_hunk_header
    functionSourceFile: /src/git/builtin/patch-id.c
    functionUses: 0
    functionsReached:
    - strspn
    - atoi
    linkageType: ''
    returnType: int
    signature: int scan_hunk_header(const char *p, int *p_before, int *p_after)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: init_fn
      Src: /src/git/builtin/patch-id.c:76,1
    - Dst: oidclr
      Src: /src/git/builtin/patch-id.c:77,1
    - Dst: strbuf_getwholeline
      Src: /src/git/builtin/patch-id.c:79,1
    - Dst: skip_prefix
      Src: /src/git/builtin/patch-id.c:85,1
    - Dst: skip_prefix
      Src: /src/git/builtin/patch-id.c:86,1
    - Dst: starts_with
      Src: /src/git/builtin/patch-id.c:87,1
    - Dst: strlen
      Src: /src/git/builtin/patch-id.c:87,1
    - Dst: git_hash_update
      Src: /src/git/builtin/patch-id.c:89,1
    - Dst: strlen
      Src: /src/git/builtin/patch-id.c:89,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/patch-id.c:93,1
    - Dst: starts_with
      Src: /src/git/builtin/patch-id.c:99,1
    - Dst: starts_with
      Src: /src/git/builtin/patch-id.c:104,1
    - Dst: starts_with
      Src: /src/git/builtin/patch-id.c:105,1
    - Dst: git_hash_update
      Src: /src/git/builtin/patch-id.c:108,1
    - Dst: strlen
      Src: /src/git/builtin/patch-id.c:109,1
    - Dst: git_hash_update
      Src: /src/git/builtin/patch-id.c:110,1
    - Dst: strlen
      Src: /src/git/builtin/patch-id.c:111,1
    - Dst: flush_one_hunk
      Src: /src/git/builtin/patch-id.c:113,1
    - Dst: skip_prefix
      Src: /src/git/builtin/patch-id.c:115,1
    - Dst: strstr
      Src: /src/git/builtin/patch-id.c:116,1
    - Dst: strstr
      Src: /src/git/builtin/patch-id.c:119,1
    - Dst: strlen
      Src: /src/git/builtin/patch-id.c:121,1
    - Dst: strlcpy
      Src: /src/git/builtin/patch-id.c:124,1
    - Dst: strlcpy
      Src: /src/git/builtin/patch-id.c:125,1
    - Dst: starts_with
      Src: /src/git/builtin/patch-id.c:128,1
    - Dst: isalpha
      Src: /src/git/builtin/patch-id.c:130,1
    - Dst: starts_with
      Src: /src/git/builtin/patch-id.c:135,1
    - Dst: starts_with
      Src: /src/git/builtin/patch-id.c:144,1
    - Dst: scan_hunk_header
      Src: /src/git/builtin/patch-id.c:146,1
    - Dst: starts_with
      Src: /src/git/builtin/patch-id.c:151,1
    - Dst: flush_one_hunk
      Src: /src/git/builtin/patch-id.c:156,1
    - Dst: strlen
      Src: /src/git/builtin/patch-id.c:167,1
    - Dst: remove_space
      Src: /src/git/builtin/patch-id.c:167,1
    - Dst: git_hash_update
      Src: /src/git/builtin/patch-id.c:169,1
    - Dst: oidclr
      Src: /src/git/builtin/patch-id.c:173,1
    - Dst: flush_one_hunk
      Src: /src/git/builtin/patch-id.c:175,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 72
    argCount: 5
    argNames:
    - next_oid
    - result
    - line_buf
    - stable
    - verbatim
    argTypes:
    - struct object_id*
    - struct object_id*
    - struct strbuf*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 178
    functionName: get_one_patchid
    functionSourceFile: /src/git/builtin/patch-id.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - flush_one_hunk
    - isalpha
    - strstr
    - get_oid_hex
    - starts_with
    - oidclr
    - strlen
    - remove_space
    - scan_hunk_header
    - git_hash_update
    - skip_prefix
    - init_fn
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t get_one_patchid(struct object_id *next_oid, struct object_id
      *result,\n\t\t\t      struct strbuf *line_buf, int stable, int verbatim)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidclr
      Src: /src/git/builtin/patch-id.c:186,1
    - Dst: feof
      Src: /src/git/builtin/patch-id.c:187,1
    - Dst: get_one_patchid
      Src: /src/git/builtin/patch-id.c:188,1
    - Dst: flush_current_id
      Src: /src/git/builtin/patch-id.c:189,1
    - Dst: oidcpy
      Src: /src/git/builtin/patch-id.c:190,1
    - Dst: strbuf_release
      Src: /src/git/builtin/patch-id.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - stable
    - verbatim
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 193
    functionName: generate_id_list
    functionSourceFile: /src/git/builtin/patch-id.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - feof
    - oidcpy
    - oidclr
    - flush_current_id
    - get_one_patchid
    linkageType: ''
    returnType: void
    signature: void generate_id_list(int stable, int verbatim)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/patch-id.c:209,1
    - Dst: git_config_bool
      Src: /src/git/builtin/patch-id.c:210,1
    - Dst: strcmp
      Src: /src/git/builtin/patch-id.c:213,1
    - Dst: git_config_bool
      Src: /src/git/builtin/patch-id.c:214,1
    - Dst: git_default_config
      Src: /src/git/builtin/patch-id.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 6
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: git_patch_id_config
    functionSourceFile: /src/git/builtin/patch-id.c
    functionUses: 0
    functionsReached:
    - git_default_config
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_patch_id_config(const char *var, const char *value,\n\t\t\t
      \      const struct config_context *ctx, void *cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/patch-id.c:230,1
    - Dst: N_
      Src: /src/git/builtin/patch-id.c:231,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/patch-id.c:232,1
    - Dst: N_
      Src: /src/git/builtin/patch-id.c:233,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/patch-id.c:234,1
    - Dst: N_
      Src: /src/git/builtin/patch-id.c:235,1
    - Dst: OPT_END
      Src: /src/git/builtin/patch-id.c:236,1
    - Dst: repo_config
      Src: /src/git/builtin/patch-id.c:239,1
    - Dst: parse_options
      Src: /src/git/builtin/patch-id.c:245,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/patch-id.c:258,1
    - Dst: generate_id_list
      Src: /src/git/builtin/patch-id.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 221
    functionDepth: 19
    functionLinenumber: 221
    functionLinenumberEnd: 263
    functionName: cmd_patch_id
    functionSourceFile: /src/git/builtin/patch-id.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - OPT_CMDMODE
    - generate_id_list
    - N_
    - repo_set_hash_algo
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_patch_id(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/add.c:54,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/add.c:55,1
    - Dst: ce_path_match
      Src: /src/git/builtin/add.c:58,1
    - Dst: chmod_index_entry
      Src: /src/git/builtin/add.c:62,1
    - Dst: S_ISREG
      Src: /src/git/builtin/add.c:64,1
    - Dst: error
      Src: /src/git/builtin/add.c:67,1
    - Dst: _
      Src: /src/git/builtin/add.c:67,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 4
    argNames:
    - repo
    - pathspec
    - flip
    - show_only
    argTypes:
    - struct repository*
    - struct pathspec*
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 42
    functionDepth: 7
    functionLinenumber: 42
    functionLinenumberEnd: 71
    functionName: chmod_pathspec
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 0
    functionsReached:
    - error
    - chmod_index_entry
    - ce_path_match
    - ce_skip_worktree
    - path_in_sparse_checkout
    - _
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int chmod_pathspec(struct repository *repo,\n\t\t\t  struct pathspec
      *pathspec,\n\t\t\t  char flip,\n\t\t\t  int show_only)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/add.c:83,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/add.c:84,1
    - Dst: ce_stage
      Src: /src/git/builtin/add.c:86,1
    - Dst: S_ISREG
      Src: /src/git/builtin/add.c:88,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/add.c:88,1
    - Dst: ce_path_match
      Src: /src/git/builtin/add.c:90,1
    - Dst: add_file_to_index
      Src: /src/git/builtin/add.c:92,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 13
    argCount: 3
    argNames:
    - repo
    - pathspec
    - flags
    argTypes:
    - struct repository*
    - struct pathspec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 73
    functionDepth: 11
    functionLinenumber: 73
    functionLinenumberEnd: 97
    functionName: renormalize_tracked_files
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - add_file_to_index
    - ce_path_match
    - ce_skip_worktree
    - path_in_sparse_checkout
    - ce_stage
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int renormalize_tracked_files(struct repository *repo,\n\t\t\t\t     const
      struct pathspec *pathspec,\n\t\t\t\t     int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/builtin/add.c:108,1
    - Dst: dir_path_match
      Src: /src/git/builtin/add.c:114,1
    - Dst: add_pathspec_matches_against_index
      Src: /src/git/builtin/add.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - repo
    - dir
    - pathspec
    - prefix
    argTypes:
    - struct repository*
    - struct dir_struct*
    - struct pathspec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 99
    functionDepth: 8
    functionLinenumber: 99
    functionLinenumberEnd: 121
    functionName: prune_directory
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 0
    functionsReached:
    - dir_path_match
    - add_pathspec_matches_against_index
    - xcalloc
    linkageType: ''
    returnType: char
    signature: "char *prune_directory(struct repository *repo,\n\t\t\t     struct
      dir_struct *dir,\n\t\t\t     struct pathspec *pathspec,\n\t\t\t     int prefix)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/builtin/add.c:132,1
    - Dst: refresh_index
      Src: /src/git/builtin/add.c:133,1
    - Dst: _
      Src: /src/git/builtin/add.c:134,1
    - Dst: matches_skip_worktree
      Src: /src/git/builtin/add.c:139,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/add.c:140,1
    - Dst: string_list_append
      Src: /src/git/builtin/add.c:141,1
    - Dst: die
      Src: /src/git/builtin/add.c:144,1
    - Dst: _
      Src: /src/git/builtin/add.c:144,1
    - Dst: advise_on_updating_sparse_paths
      Src: /src/git/builtin/add.c:151,1
    - Dst: free
      Src: /src/git/builtin/add.c:155,1
    - Dst: free
      Src: /src/git/builtin/add.c:156,1
    - Dst: string_list_clear
      Src: /src/git/builtin/add.c:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - repo
    - verbose
    - pathspec
    argTypes:
    - struct repository*
    - int
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 123
    functionDepth: 12
    functionLinenumber: 123
    functionLinenumberEnd: 159
    functionName: refresh
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 2
    functionsReached:
    - string_list_clear
    - die
    - free
    - matches_skip_worktree
    - path_in_sparse_checkout
    - _
    - xcalloc
    - string_list_append
    - refresh_index
    - advise_on_updating_sparse_paths
    linkageType: ''
    returnType: int
    signature: int refresh(struct repository *repo, int verbose, const struct pathspec
      *pathspec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_pathspec
      Src: /src/git/builtin/add.c:169,1
    - Dst: run_add_p
      Src: /src/git/builtin/add.c:176,1
    - Dst: run_add_i
      Src: /src/git/builtin/add.c:178,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/add.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - repo
    - argv
    - prefix
    - patch
    - interactive_opts
    argTypes:
    - struct repository*
    - char**
    - char*
    - int
    - struct interactive_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 161
    functionDepth: 15
    functionLinenumber: 161
    functionLinenumberEnd: 182
    functionName: interactive_add
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 0
    functionsReached:
    - parse_pathspec
    - clear_pathspec
    - run_add_p
    - run_add_i
    linkageType: ''
    returnType: int
    signature: "int interactive_add(struct repository *repo,\n\t\t    const char **argv,\n\t\t
      \   const char *prefix,\n\t\t    int patch, struct interactive_options *interactive_opts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/builtin/add.c:189,1
    - Dst: repo_config
      Src: /src/git/builtin/add.c:195,1
    - Dst: repo_read_index
      Src: /src/git/builtin/add.c:197,1
    - Dst: die
      Src: /src/git/builtin/add.c:198,1
    - Dst: _
      Src: /src/git/builtin/add.c:198,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/add.c:200,1
    - Dst: setup_revisions
      Src: /src/git/builtin/add.c:203,1
    - Dst: xopen
      Src: /src/git/builtin/add.c:207,1
    - Dst: xfdopen
      Src: /src/git/builtin/add.c:208,1
    - Dst: run_diff_files
      Src: /src/git/builtin/add.c:210,1
    - Dst: launch_editor
      Src: /src/git/builtin/add.c:212,1
    - Dst: die
      Src: /src/git/builtin/add.c:213,1
    - Dst: _
      Src: /src/git/builtin/add.c:213,1
    - Dst: stat
      Src: /src/git/builtin/add.c:215,1
    - Dst: die_errno
      Src: /src/git/builtin/add.c:216,1
    - Dst: _
      Src: /src/git/builtin/add.c:216,1
    - Dst: die
      Src: /src/git/builtin/add.c:218,1
    - Dst: _
      Src: /src/git/builtin/add.c:218,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/add.c:221,1
    - Dst: run_command
      Src: /src/git/builtin/add.c:223,1
    - Dst: die
      Src: /src/git/builtin/add.c:224,1
    - Dst: _
      Src: /src/git/builtin/add.c:224,1
    - Dst: unlink
      Src: /src/git/builtin/add.c:226,1
    - Dst: free
      Src: /src/git/builtin/add.c:227,1
    - Dst: release_revisions
      Src: /src/git/builtin/add.c:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - repo
    - argc
    - argv
    - prefix
    argTypes:
    - struct repository*
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 184
    functionDepth: 19
    functionLinenumber: 184
    functionLinenumberEnd: 230
    functionName: edit_patch
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 0
    functionsReached:
    - xopen
    - repo_git_path
    - die
    - release_revisions
    - run_diff_files
    - run_command
    - repo_read_index
    - stat
    - die_errno
    - repo_init_revisions
    - strvec_pushl
    - launch_editor
    - _
    - free
    - setup_revisions
    - xfdopen
    - repo_config
    - unlink
    linkageType: ''
    returnType: int
    signature: "int edit_patch(struct repository *repo,\n\t\t      int argc,\n\t\t
      \     const char **argv,\n\t\t      const char *prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/add.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 252
    functionName: ignore_removal_cb
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: int ignore_removal_cb(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/add.c:290,1
    - Dst: strcmp
      Src: /src/git/builtin/add.c:291,1
    - Dst: git_config_bool
      Src: /src/git/builtin/add.c:292,1
    - Dst: git_color_config
      Src: /src/git/builtin/add.c:296,1
    - Dst: git_default_config
      Src: /src/git/builtin/add.c:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 287
    functionDepth: 6
    functionLinenumber: 287
    functionLinenumberEnd: 300
    functionName: add_config
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 0
    functionsReached:
    - git_default_config
    - git_color_config
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int add_config(const char *var, const char *value,\n\t\t      const
      struct config_context *ctx, void *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ends_with
      Src: /src/git/builtin/add.c:325,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/add.c:329,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/builtin/add.c:330,1
    - Dst: warning
      Src: /src/git/builtin/add.c:332,1
    - Dst: _
      Src: /src/git/builtin/add.c:332,1
    - Dst: advise_if_enabled
      Src: /src/git/builtin/add.c:334,1
    - Dst: strbuf_release
      Src: /src/git/builtin/add.c:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 318
    functionDepth: 8
    functionLinenumber: 318
    functionLinenumberEnd: 340
    functionName: check_embedded_repo
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_strip_suffix
    - ends_with
    - advise_if_enabled
    - strbuf_addstr
    - _
    - warning
    linkageType: ''
    returnType: void
    signature: void check_embedded_repo(const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/add.c:348,1
    - Dst: _
      Src: /src/git/builtin/add.c:348,1
    - Dst: fprintf
      Src: /src/git/builtin/add.c:350,1
    - Dst: advise_if_enabled
      Src: /src/git/builtin/add.c:351,1
    - Dst: _
      Src: /src/git/builtin/add.c:352,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/add.c:358,1
    - Dst: string_list_append
      Src: /src/git/builtin/add.c:359,1
    - Dst: add_file_to_index
      Src: /src/git/builtin/add.c:363,1
    - Dst: die
      Src: /src/git/builtin/add.c:365,1
    - Dst: _
      Src: /src/git/builtin/add.c:365,1
    - Dst: check_embedded_repo
      Src: /src/git/builtin/add.c:368,1
    - Dst: advise_on_updating_sparse_paths
      Src: /src/git/builtin/add.c:373,1
    - Dst: string_list_clear
      Src: /src/git/builtin/add.c:377,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - repo
    - dir
    - flags
    argTypes:
    - struct repository*
    - struct dir_struct*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 342
    functionDepth: 11
    functionLinenumber: 342
    functionLinenumberEnd: 380
    functionName: add_files
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - die
    - advise_on_updating_sparse_paths
    - add_file_to_index
    - advise_if_enabled
    - string_list_append
    - path_in_sparse_checkout
    - check_embedded_repo
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int add_files(struct repository *repo, struct dir_struct *dir, int
      flags)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/builtin/add.c:398,1
    - Dst: parse_options
      Src: /src/git/builtin/add.c:400,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/add.c:403,1
    - Dst: die
      Src: /src/git/builtin/add.c:407,1
    - Dst: _
      Src: /src/git/builtin/add.c:407,1
    - Dst: die
      Src: /src/git/builtin/add.c:409,1
    - Dst: _
      Src: /src/git/builtin/add.c:409,1
    - Dst: die
      Src: /src/git/builtin/add.c:415,1
    - Dst: _
      Src: /src/git/builtin/add.c:415,1
    - Dst: die
      Src: /src/git/builtin/add.c:417,1
    - Dst: _
      Src: /src/git/builtin/add.c:417,1
    - Dst: exit
      Src: /src/git/builtin/add.c:418,1
    - Dst: interactive_add
      Src: /src/git/builtin/add.c:418,1
    - Dst: die
      Src: /src/git/builtin/add.c:421,1
    - Dst: _
      Src: /src/git/builtin/add.c:421,1
    - Dst: die
      Src: /src/git/builtin/add.c:423,1
    - Dst: _
      Src: /src/git/builtin/add.c:423,1
    - Dst: die
      Src: /src/git/builtin/add.c:425,1
    - Dst: _
      Src: /src/git/builtin/add.c:425,1
    - Dst: die
      Src: /src/git/builtin/add.c:430,1
    - Dst: _
      Src: /src/git/builtin/add.c:430,1
    - Dst: edit_patch
      Src: /src/git/builtin/add.c:431,1
    - Dst: die
      Src: /src/git/builtin/add.c:442,1
    - Dst: _
      Src: /src/git/builtin/add.c:442,1
    - Dst: die
      Src: /src/git/builtin/add.c:445,1
    - Dst: _
      Src: /src/git/builtin/add.c:445,1
    - Dst: die
      Src: /src/git/builtin/add.c:449,1
    - Dst: _
      Src: /src/git/builtin/add.c:449,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/add.c:454,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/add.c:460,1
    - Dst: die
      Src: /src/git/builtin/add.c:467,1
    - Dst: _
      Src: /src/git/builtin/add.c:467,1
    - Dst: parse_pathspec_file
      Src: /src/git/builtin/add.c:469,1
    - Dst: die
      Src: /src/git/builtin/add.c:474,1
    - Dst: _
      Src: /src/git/builtin/add.c:474,1
    - Dst: fprintf
      Src: /src/git/builtin/add.c:478,1
    - Dst: _
      Src: /src/git/builtin/add.c:478,1
    - Dst: advise_if_enabled
      Src: /src/git/builtin/add.c:479,1
    - Dst: _
      Src: /src/git/builtin/add.c:480,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/add.c:495,1
    - Dst: die
      Src: /src/git/builtin/add.c:496,1
    - Dst: _
      Src: /src/git/builtin/add.c:496,1
    - Dst: die_in_unpopulated_submodule
      Src: /src/git/builtin/add.c:498,1
    - Dst: die_path_inside_submodule
      Src: /src/git/builtin/add.c:499,1
    - Dst: setup_standard_excludes
      Src: /src/git/builtin/add.c:507,1
    - Dst: fill_directory
      Src: /src/git/builtin/add.c:511,1
    - Dst: prune_directory
      Src: /src/git/builtin/add.c:513,1
    - Dst: refresh
      Src: /src/git/builtin/add.c:517,1
    - Dst: find_pathspecs_matching_against_index
      Src: /src/git/builtin/add.c:527,1
    - Dst: GUARD_PATHSPEC
      Src: /src/git/builtin/add.c:533,1
    - Dst: matches_skip_worktree
      Src: /src/git/builtin/add.c:550,1
    - Dst: string_list_append
      Src: /src/git/builtin/add.c:551,1
    - Dst: file_exists
      Src: /src/git/builtin/add.c:561,1
    - Dst: is_excluded
      Src: /src/git/builtin/add.c:564,1
    - Dst: dir_add_ignored
      Src: /src/git/builtin/add.c:565,1
    - Dst: die
      Src: /src/git/builtin/add.c:568,1
    - Dst: _
      Src: /src/git/builtin/add.c:568,1
    - Dst: advise_on_updating_sparse_paths
      Src: /src/git/builtin/add.c:575,1
    - Dst: free
      Src: /src/git/builtin/add.c:579,1
    - Dst: free
      Src: /src/git/builtin/add.c:580,1
    - Dst: string_list_clear
      Src: /src/git/builtin/add.c:581,1
    - Dst: odb_transaction_begin
      Src: /src/git/builtin/add.c:584,1
    - Dst: xcalloc
      Src: /src/git/builtin/add.c:586,1
    - Dst: renormalize_tracked_files
      Src: /src/git/builtin/add.c:588,1
    - Dst: add_files_to_cache
      Src: /src/git/builtin/add.c:590,1
    - Dst: report_path_error
      Src: /src/git/builtin/add.c:595,1
    - Dst: exit
      Src: /src/git/builtin/add.c:596,1
    - Dst: add_files
      Src: /src/git/builtin/add.c:599,1
    - Dst: chmod_pathspec
      Src: /src/git/builtin/add.c:602,1
    - Dst: odb_transaction_commit
      Src: /src/git/builtin/add.c:603,1
    - Dst: write_locked_index
      Src: /src/git/builtin/add.c:606,1
    - Dst: die
      Src: /src/git/builtin/add.c:608,1
    - Dst: _
      Src: /src/git/builtin/add.c:608,1
    - Dst: free
      Src: /src/git/builtin/add.c:610,1
    - Dst: dir_clear
      Src: /src/git/builtin/add.c:611,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/add.c:612,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 131
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 382
    functionDepth: 21
    functionLinenumber: 382
    functionLinenumberEnd: 614
    functionName: cmd_add
    functionSourceFile: /src/git/builtin/add.c
    functionUses: 0
    functionsReached:
    - parse_options
    - find_pathspecs_matching_against_index
    - parse_pathspec_file
    - repo_hold_locked_index
    - advise_if_enabled
    - chmod_pathspec
    - fill_directory
    - file_exists
    - free
    - repo_config
    - advise_on_updating_sparse_paths
    - repo_read_index_preload
    - die
    - add_files_to_cache
    - renormalize_tracked_files
    - interactive_add
    - die_in_unpopulated_submodule
    - add_files
    - die_path_inside_submodule
    - setup_standard_excludes
    - xcalloc
    - parse_pathspec
    - string_list_clear
    - edit_patch
    - odb_transaction_commit
    - GUARD_PATHSPEC
    - report_path_error
    - string_list_append
    - _
    - dir_clear
    - refresh
    - clear_pathspec
    - exit
    - is_excluded
    - prepare_repo_settings
    - write_locked_index
    - odb_transaction_begin
    - matches_skip_worktree
    - dir_add_ignored
    - prune_directory
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int cmd_add(int argc,\n\t    const char **argv,\n\t    const char
      *prefix,\n\t    struct repository *repo)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/fmt-merge-msg.c:28,1
    - Dst: N_
      Src: /src/git/builtin/fmt-merge-msg.c:29,1
    - Dst: N_
      Src: /src/git/builtin/fmt-merge-msg.c:38,1
    - Dst: N_
      Src: /src/git/builtin/fmt-merge-msg.c:39,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/fmt-merge-msg.c:43,1
    - Dst: N_
      Src: /src/git/builtin/fmt-merge-msg.c:43,1
    - Dst: N_
      Src: /src/git/builtin/fmt-merge-msg.c:44,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/fmt-merge-msg.c:45,1
    - Dst: N_
      Src: /src/git/builtin/fmt-merge-msg.c:45,1
    - Dst: N_
      Src: /src/git/builtin/fmt-merge-msg.c:46,1
    - Dst: OPT_FILENAME
      Src: /src/git/builtin/fmt-merge-msg.c:47,1
    - Dst: N_
      Src: /src/git/builtin/fmt-merge-msg.c:47,1
    - Dst: OPT_END
      Src: /src/git/builtin/fmt-merge-msg.c:48,1
    - Dst: repo_config
      Src: /src/git/builtin/fmt-merge-msg.c:56,1
    - Dst: parse_options
      Src: /src/git/builtin/fmt-merge-msg.c:57,1
    - Dst: usage_with_options
      Src: /src/git/builtin/fmt-merge-msg.c:60,1
    - Dst: strcmp
      Src: /src/git/builtin/fmt-merge-msg.c:64,1
    - Dst: fopen
      Src: /src/git/builtin/fmt-merge-msg.c:65,1
    - Dst: die_errno
      Src: /src/git/builtin/fmt-merge-msg.c:67,1
    - Dst: strbuf_read
      Src: /src/git/builtin/fmt-merge-msg.c:70,1
    - Dst: fileno
      Src: /src/git/builtin/fmt-merge-msg.c:70,1
    - Dst: die_errno
      Src: /src/git/builtin/fmt-merge-msg.c:71,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/fmt-merge-msg.c:74,1
    - Dst: memset
      Src: /src/git/builtin/fmt-merge-msg.c:76,1
    - Dst: fmt_merge_msg
      Src: /src/git/builtin/fmt-merge-msg.c:82,1
    - Dst: write_in_full
      Src: /src/git/builtin/fmt-merge-msg.c:85,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fmt-merge-msg.c:87,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fmt-merge-msg.c:88,1
    - Dst: free
      Src: /src/git/builtin/fmt-merge-msg.c:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 12
    functionDepth: 19
    functionLinenumber: 12
    functionLinenumberEnd: 91
    functionName: cmd_fmt_merge_msg
    functionSourceFile: /src/git/builtin/fmt-merge-msg.c
    functionUses: 0
    functionsReached:
    - OPT_FILENAME
    - OPT_END
    - parse_options
    - strbuf_read
    - memset
    - fmt_merge_msg
    - strbuf_release
    - fileno
    - die_errno
    - OPT_STRING
    - fopen
    - free
    - strbuf_addstr
    - strcmp
    - N_
    - repo_config
    - write_in_full
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_fmt_merge_msg(int argc,\n\t\t      const char **argv,\n\t\t
      \     const char *prefix,\n\t\t      struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/annotate.c:20,1
    - Dst: strvec_push
      Src: /src/git/builtin/annotate.c:22,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/annotate.c:28,1
    - Dst: COPY_ARRAY
      Src: /src/git/builtin/annotate.c:29,1
    - Dst: cmd_blame
      Src: /src/git/builtin/annotate.c:31,1
    - Dst: strvec_clear
      Src: /src/git/builtin/annotate.c:33,1
    - Dst: free
      Src: /src/git/builtin/annotate.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 36
    functionName: cmd_annotate
    functionSourceFile: /src/git/builtin/annotate.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_pushl
    - strvec_clear
    - CALLOC_ARRAY
    - free
    - COPY_ARRAY
    - cmd_blame
    linkageType: ''
    returnType: int
    signature: "int cmd_annotate(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BIT
      Src: /src/git/builtin/for-each-ref.c:24,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:25,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/for-each-ref.c:26,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:27,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/for-each-ref.c:28,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:29,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/for-each-ref.c:30,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:31,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/for-each-ref.c:32,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:33,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/for-each-ref.c:35,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/for-each-ref.c:36,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:36,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/for-each-ref.c:37,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:37,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:37,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/for-each-ref.c:38,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:38,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:38,1
    - Dst: OPT__COLOR
      Src: /src/git/builtin/for-each-ref.c:39,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:39,1
    - Dst: OPT_REF_FILTER_EXCLUDE
      Src: /src/git/builtin/for-each-ref.c:40,1
    - Dst: OPT_REF_SORT
      Src: /src/git/builtin/for-each-ref.c:41,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/for-each-ref.c:42,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:43,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:43,1
    - Dst: OPT_MERGED
      Src: /src/git/builtin/for-each-ref.c:45,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:45,1
    - Dst: OPT_NO_MERGED
      Src: /src/git/builtin/for-each-ref.c:46,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:46,1
    - Dst: OPT_CONTAINS
      Src: /src/git/builtin/for-each-ref.c:47,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:47,1
    - Dst: OPT_NO_CONTAINS
      Src: /src/git/builtin/for-each-ref.c:48,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:48,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/for-each-ref.c:49,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:49,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/for-each-ref.c:50,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:50,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/for-each-ref.c:51,1
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:51,1
    - Dst: OPT_END
      Src: /src/git/builtin/for-each-ref.c:52,1
    - Dst: repo_config
      Src: /src/git/builtin/for-each-ref.c:57,1
    - Dst: string_list_append
      Src: /src/git/builtin/for-each-ref.c:60,1
    - Dst: parse_options
      Src: /src/git/builtin/for-each-ref.c:62,1
    - Dst: error
      Src: /src/git/builtin/for-each-ref.c:64,1
    - Dst: usage_with_options
      Src: /src/git/builtin/for-each-ref.c:65,1
    - Dst: HAS_MULTI_BITS
      Src: /src/git/builtin/for-each-ref.c:67,1
    - Dst: error
      Src: /src/git/builtin/for-each-ref.c:68,1
    - Dst: usage_with_options
      Src: /src/git/builtin/for-each-ref.c:69,1
    - Dst: verify_ref_format
      Src: /src/git/builtin/for-each-ref.c:71,1
    - Dst: usage_with_options
      Src: /src/git/builtin/for-each-ref.c:72,1
    - Dst: die
      Src: /src/git/builtin/for-each-ref.c:75,1
    - Dst: _
      Src: /src/git/builtin/for-each-ref.c:75,1
    - Dst: ref_sorting_options
      Src: /src/git/builtin/for-each-ref.c:77,1
    - Dst: ref_sorting_set_sort_flags_all
      Src: /src/git/builtin/for-each-ref.c:78,1
    - Dst: die
      Src: /src/git/builtin/for-each-ref.c:85,1
    - Dst: _
      Src: /src/git/builtin/for-each-ref.c:85,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/for-each-ref.c:87,1
    - Dst: strvec_push
      Src: /src/git/builtin/for-each-ref.c:88,1
    - Dst: strbuf_release
      Src: /src/git/builtin/for-each-ref.c:90,1
    - Dst: die
      Src: /src/git/builtin/for-each-ref.c:99,1
    - Dst: _
      Src: /src/git/builtin/for-each-ref.c:99,1
    - Dst: filter_and_format_refs
      Src: /src/git/builtin/for-each-ref.c:105,1
    - Dst: ref_filter_clear
      Src: /src/git/builtin/for-each-ref.c:107,1
    - Dst: ref_sorting_release
      Src: /src/git/builtin/for-each-ref.c:108,1
    - Dst: strvec_clear
      Src: /src/git/builtin/for-each-ref.c:109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 5
    argNames:
    - argc
    - argv
    - prefix
    - repo
    - usage
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 13
    functionDepth: 19
    functionLinenumber: 13
    functionLinenumberEnd: 111
    functionName: for_each_ref_core
    functionSourceFile: /src/git/builtin/for-each-ref.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - parse_options
    - OPT_CONTAINS
    - ref_sorting_options
    - OPT_BOOL
    - repo_config
    - OPT_REF_SORT
    - usage_with_options
    - error
    - ref_sorting_release
    - strbuf_release
    - OPT_END
    - die
    - ref_filter_clear
    - OPT_GROUP
    - OPT_BIT
    - filter_and_format_refs
    - OPT__COLOR
    - OPT_INTEGER
    - verify_ref_format
    - OPT_MERGED
    - ref_sorting_set_sort_flags_all
    - string_list_append
    - _
    - N_
    - OPT_NO_MERGED
    - strbuf_getline
    - OPT_NO_CONTAINS
    - HAS_MULTI_BITS
    - OPT_STRING
    - OPT_CALLBACK
    - strvec_clear
    - OPT_REF_FILTER_EXCLUDE
    linkageType: ''
    returnType: int
    signature: int for_each_ref_core(int argc, const char **argv, const char *prefix,
      struct repository *repo, const char *const *usage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/for-each-ref.c:119,1
    - Dst: for_each_ref_core
      Src: /src/git/builtin/for-each-ref.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 20
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: cmd_for_each_ref
    functionSourceFile: /src/git/builtin/for-each-ref.c
    functionUses: 0
    functionsReached:
    - N_
    - for_each_ref_core
    linkageType: ''
    returnType: int
    signature: "int cmd_for_each_ref(int argc,\n\t\t     const char **argv,\n\t\t
      \    const char *prefix,\n\t\t     struct repository *repo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/git/builtin/diagnose.c:22,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/diagnose.c:30,1
    - Dst: N_
      Src: /src/git/builtin/diagnose.c:30,1
    - Dst: N_
      Src: /src/git/builtin/diagnose.c:31,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/diagnose.c:32,1
    - Dst: N_
      Src: /src/git/builtin/diagnose.c:32,1
    - Dst: N_
      Src: /src/git/builtin/diagnose.c:33,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/diagnose.c:34,1
    - Dst: N_
      Src: /src/git/builtin/diagnose.c:35,1
    - Dst: OPT_END
      Src: /src/git/builtin/diagnose.c:37,1
    - Dst: parse_options
      Src: /src/git/builtin/diagnose.c:40,1
    - Dst: prefix_filename
      Src: /src/git/builtin/diagnose.c:44,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/diagnose.c:46,1
    - Dst: strbuf_complete
      Src: /src/git/builtin/diagnose.c:47,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/diagnose.c:49,1
    - Dst: strbuf_addftime
      Src: /src/git/builtin/diagnose.c:50,1
    - Dst: localtime_r
      Src: /src/git/builtin/diagnose.c:50,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/diagnose.c:51,1
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/diagnose.c:53,1
    - Dst: die_errno
      Src: /src/git/builtin/diagnose.c:58,1
    - Dst: _
      Src: /src/git/builtin/diagnose.c:58,1
    - Dst: create_diagnostics_archive
      Src: /src/git/builtin/diagnose.c:63,1
    - Dst: die_errno
      Src: /src/git/builtin/diagnose.c:64,1
    - Dst: _
      Src: /src/git/builtin/diagnose.c:64,1
    - Dst: free
      Src: /src/git/builtin/diagnose.c:67,1
    - Dst: strbuf_release
      Src: /src/git/builtin/diagnose.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 16
    functionDepth: 13
    functionLinenumber: 16
    functionLinenumberEnd: 70
    functionName: cmd_diagnose
    functionSourceFile: /src/git/builtin/diagnose.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - strbuf_release
    - prefix_filename
    - create_diagnostics_archive
    - strbuf_addftime
    - OPT_CALLBACK_F
    - OPT_STRING
    - die_errno
    - free
    - strbuf_addstr
    - strbuf_complete
    - N_
    - localtime_r
    - safe_create_leading_directories
    - _
    - time
    linkageType: ''
    returnType: int
    signature: "int cmd_diagnose(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/builtin/prune-packed.c:16,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/prune-packed.c:18,1
    - Dst: N_
      Src: /src/git/builtin/prune-packed.c:18,1
    - Dst: OPT_NEGBIT
      Src: /src/git/builtin/prune-packed.c:20,1
    - Dst: N_
      Src: /src/git/builtin/prune-packed.c:20,1
    - Dst: OPT_END
      Src: /src/git/builtin/prune-packed.c:22,1
    - Dst: parse_options
      Src: /src/git/builtin/prune-packed.c:25,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/prune-packed.c:29,1
    - Dst: _
      Src: /src/git/builtin/prune-packed.c:29,1
    - Dst: prune_packed_objects
      Src: /src/git/builtin/prune-packed.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 11
    functionDepth: 13
    functionLinenumber: 11
    functionLinenumberEnd: 35
    functionName: cmd_prune_packed
    functionSourceFile: /src/git/builtin/prune-packed.c
    functionUses: 0
    functionsReached:
    - usage_msg_opt
    - parse_options
    - OPT_END
    - OPT_NEGBIT
    - OPT_BIT
    - _
    - N_
    - isatty
    - prune_packed_objects
    linkageType: ''
    returnType: int
    signature: "int cmd_prune_packed(int argc,\n\t\t     const char **argv,\n\t\t
      \    const char *prefix,\n\t\t     struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/mailinfo.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: parse_opt_explicit_encoding
    functionSourceFile: /src/git/builtin/mailinfo.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int parse_opt_explicit_encoding(const struct option *opt,\n\t\t\t\t
      \      const char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/mailinfo.c:45,1
    - Dst: mailinfo_parse_quoted_cr_action
      Src: /src/git/builtin/mailinfo.c:47,1
    - Dst: error
      Src: /src/git/builtin/mailinfo.c:48,1
    - Dst: _
      Src: /src/git/builtin/mailinfo.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: parse_opt_quoted_cr
    functionSourceFile: /src/git/builtin/mailinfo.c
    functionUses: 0
    functionsReached:
    - error
    - mailinfo_parse_quoted_cr_action
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: int parse_opt_quoted_cr(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/mailinfo.c:63,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:63,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/mailinfo.c:64,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:65,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/mailinfo.c:66,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:67,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/mailinfo.c:68,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:69,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/mailinfo.c:71,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:72,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/mailinfo.c:74,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:74,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:75,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/mailinfo.c:77,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:77,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/mailinfo.c:78,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:78,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:79,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/mailinfo.c:81,1
    - Dst: N_
      Src: /src/git/builtin/mailinfo.c:82,1
    - Dst: OPT_END
      Src: /src/git/builtin/mailinfo.c:83,1
    - Dst: setup_mailinfo
      Src: /src/git/builtin/mailinfo.c:86,1
    - Dst: parse_options
      Src: /src/git/builtin/mailinfo.c:89,1
    - Dst: usage_with_options
      Src: /src/git/builtin/mailinfo.c:92,1
    - Dst: get_commit_output_encoding
      Src: /src/git/builtin/mailinfo.c:96,1
    - Dst: BUG
      Src: /src/git/builtin/mailinfo.c:104,1
    - Dst: prefix_filename
      Src: /src/git/builtin/mailinfo.c:110,1
    - Dst: prefix_filename
      Src: /src/git/builtin/mailinfo.c:111,1
    - Dst: mailinfo
      Src: /src/git/builtin/mailinfo.c:113,1
    - Dst: clear_mailinfo
      Src: /src/git/builtin/mailinfo.c:114,1
    - Dst: free
      Src: /src/git/builtin/mailinfo.c:116,1
    - Dst: free
      Src: /src/git/builtin/mailinfo.c:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 52
    functionDepth: 13
    functionLinenumber: 52
    functionLinenumberEnd: 119
    functionName: cmd_mailinfo
    functionSourceFile: /src/git/builtin/mailinfo.c
    functionUses: 0
    functionsReached:
    - clear_mailinfo
    - parse_options
    - OPT_END
    - prefix_filename
    - setup_mailinfo
    - BUG
    - OPT_SET_INT_F
    - OPT_BOOL
    - OPT_CALLBACK_F
    - get_commit_output_encoding
    - free
    - N_
    - OPT_HIDDEN_BOOL
    - mailinfo
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_mailinfo(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: oe_delta
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_entry
    signature: "struct object_entry *oe_delta(\n\t\tconst struct packing_data *pack,\n\t\tconst
      struct object_entry *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: oe_delta_size
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long oe_delta_size(struct packing_data *pack,\n\t\t\t\t\t
      \ const struct object_entry *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oe_get_size_slow
      Src: /src/git/builtin/pack-objects.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: oe_size
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oe_get_size_slow
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long oe_size(struct packing_data *pack,\n\t\t\t\t    const
      struct object_entry *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pack
    - e
    - delta
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: oe_set_delta
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void oe_set_delta(struct packing_data *pack,\n\t\t\t\tstruct object_entry
      *e,\n\t\t\t\tstruct object_entry *delta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: oe_delta_sibling
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_entry
    signature: "struct object_entry *oe_delta_sibling(\n\t\tconst struct packing_data
      *pack,\n\t\tconst struct object_entry *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: oe_delta_child
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_entry
    signature: "struct object_entry *oe_delta_child(\n\t\tconst struct packing_data
      *pack,\n\t\tconst struct object_entry *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pack
    - e
    - delta
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: oe_set_delta_child
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void oe_set_delta_child(struct packing_data *pack,\n\t\t\t\t      struct
      object_entry *e,\n\t\t\t\t      struct object_entry *delta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pack
    - e
    - delta
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: oe_set_delta_sibling
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void oe_set_delta_sibling(struct packing_data *pack,\n\t\t\t\t\tstruct
      object_entry *e,\n\t\t\t\t\tstruct object_entry *delta)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oe_get_size_slow
      Src: /src/git/builtin/pack-objects.c:155,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pack
    - e
    - size
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: oe_set_size
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - BUG
    - oe_get_size_slow
    linkageType: ''
    returnType: void
    signature: "void oe_set_size(struct packing_data *pack,\n\t\t\t       struct object_entry
      *e,\n\t\t\t       unsigned long size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packing_data_lock
      Src: /src/git/builtin/pack-objects.c:168,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:170,1
    - Dst: packing_data_unlock
      Src: /src/git/builtin/pack-objects.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pack
    - e
    - size
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 176
    functionName: oe_set_delta_size
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - packing_data_lock
    - ALLOC_ARRAY
    - packing_data_unlock
    linkageType: ''
    returnType: void
    signature: "void oe_set_delta_size(struct packing_data *pack,\n\t\t\t\t     struct
      object_entry *e,\n\t\t\t\t     unsigned long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: IN_PACK
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_PACK(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: SIZE
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 208
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZE(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: SET_SIZE
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SIZE(obj,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: DELTA_SIZE
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DELTA_SIZE(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: DELTA
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DELTA(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: DELTA_CHILD
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DELTA_CHILD(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: DELTA_SIBLING
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DELTA_SIBLING(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: SET_DELTA
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DELTA(obj, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - oid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: SET_DELTA_EXT
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DELTA_EXT(obj, oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: SET_DELTA_SIZE
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DELTA_SIZE(obj, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: SET_DELTA_CHILD
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DELTA_CHILD(obj, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: SET_DELTA_SIBLING
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DELTA_SIBLING(obj, val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:302,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:302,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:304,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 307
    functionName: validate_name_hash_version
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - warning
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void validate_name_hash_version(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:316,1
    - Dst: pack_name_hash
      Src: /src/git/builtin/pack-objects.c:321,1
    - Dst: pack_name_hash_v2
      Src: /src/git/builtin/pack-objects.c:324,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 329
    functionName: pack_name_hash_fn
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - pack_name_hash_v2
    - pack_name_hash
    - BUG
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pack_name_hash_fn(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: index_commit_for_bitmap
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - REALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void index_commit_for_bitmap(struct commit *commit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/builtin/pack-objects.c:360,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:363,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:363,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:363,1
    - Dst: odb_read_object
      Src: /src/git/builtin/pack-objects.c:364,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:365,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:368,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:369,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:369,1
    - Dst: diff_delta
      Src: /src/git/builtin/pack-objects.c:370,1
    - Dst: DELTA_SIZE
      Src: /src/git/builtin/pack-objects.c:377,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:378,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:379,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 354
    functionDepth: 12
    functionLinenumber: 354
    functionLinenumberEnd: 382
    functionName: get_delta
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - die
    - free
    - DELTA_SIZE
    - DELTA
    - _
    - diff_delta
    - odb_read_object
    - BUG
    linkageType: ''
    returnType: void
    signature: void *get_delta(struct object_entry *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate_init
      Src: /src/git/builtin/pack-objects.c:390,1
    - Dst: git_deflate_bound
      Src: /src/git/builtin/pack-objects.c:391,1
    - Dst: xmalloc
      Src: /src/git/builtin/pack-objects.c:394,1
    - Dst: git_deflate
      Src: /src/git/builtin/pack-objects.c:401,1
    - Dst: git_deflate_end
      Src: /src/git/builtin/pack-objects.c:403,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - pptr
    - size
    argTypes:
    - void**
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 384
    functionDepth: 4
    functionLinenumber: 384
    functionLinenumberEnd: 407
    functionName: do_compress
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 1
    functionsReached:
    - git_deflate_init
    - git_deflate
    - git_deflate_end
    - git_deflate_bound
    - xmalloc
    - free
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long do_compress(void **pptr, unsigned long size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate_init
      Src: /src/git/builtin/pack-objects.c:417,1
    - Dst: odb_read_stream_read
      Src: /src/git/builtin/pack-objects.c:422,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:424,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:424,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:424,1
    - Dst: git_deflate
      Src: /src/git/builtin/pack-objects.c:432,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:433,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:437,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:437,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:440,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:440,1
    - Dst: git_deflate_end
      Src: /src/git/builtin/pack-objects.c:444,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - st
    - f
    - oid
    argTypes:
    - struct odb_read_stream*
    - struct hashfile*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 446
    functionName: write_large_blob_data
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - git_deflate_init
    - oid_to_hex
    - die
    - git_deflate
    - hashwrite
    - git_deflate_end
    - _
    - odb_read_stream_read
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long write_large_blob_data(struct odb_read_stream *st, struct
      hashfile *f,\n\t\t\t\t\t   const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/pack-objects.c:462,1
    - Dst: git_inflate_init
      Src: /src/git/builtin/pack-objects.c:463,1
    - Dst: use_pack
      Src: /src/git/builtin/pack-objects.c:465,1
    - Dst: git_inflate
      Src: /src/git/builtin/pack-objects.c:469,1
    - Dst: git_inflate_end
      Src: /src/git/builtin/pack-objects.c:472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - p
    - w_curs
    - offset
    - len
    - expect
    argTypes:
    - struct packed_git*
    - struct pack_window**
    - off_t
    - off_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 452
    functionDepth: 22
    functionLinenumber: 452
    functionLinenumberEnd: 476
    functionName: check_pack_inflate
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - memset
    - use_pack
    - git_inflate
    - git_inflate_init
    - git_inflate_end
    linkageType: ''
    returnType: int
    signature: "int check_pack_inflate(struct packed_git *p,\n\t\tstruct pack_window
      **w_curs,\n\t\toff_t offset,\n\t\toff_t len,\n\t\tunsigned long expect)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: use_pack
      Src: /src/git/builtin/pack-objects.c:488,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - f
    - p
    - w_curs
    - offset
    - len
    argTypes:
    - struct hashfile*
    - struct packed_git*
    - struct pack_window**
    - off_t
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 478
    functionDepth: 22
    functionLinenumber: 478
    functionLinenumberEnd: 495
    functionName: copy_pack_data
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - use_pack
    - hashwrite
    linkageType: ''
    returnType: void
    signature: "void copy_pack_data(struct hashfile *f,\n\t\tstruct packed_git *p,\n\t\tstruct
      pack_window **w_curs,\n\t\toff_t offset,\n\t\toff_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oe_get_size_slow
      Src: /src/git/builtin/pack-objects.c:505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pack
    - lhs
    - rhs
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 506
    functionName: oe_size_greater_than
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oe_get_size_slow
    linkageType: ''
    returnType: int
    signature: "int oe_size_greater_than(struct packing_data *pack,\n\t\t\t\t       const
      struct object_entry *lhs,\n\t\t\t\t       unsigned long rhs)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:522,1
    - Dst: oe_size_greater_than
      Src: /src/git/builtin/pack-objects.c:523,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/builtin/pack-objects.c:524,1
    - Dst: odb_read_stream_open
      Src: /src/git/builtin/pack-objects.c:525,1
    - Dst: odb_read_object
      Src: /src/git/builtin/pack-objects.c:531,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:535,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:535,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:536,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/pack-objects.c:542,1
    - Dst: DELTA_SIZE
      Src: /src/git/builtin/pack-objects.c:545,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:548,1
    - Dst: get_delta
      Src: /src/git/builtin/pack-objects.c:551,1
    - Dst: DELTA_SIZE
      Src: /src/git/builtin/pack-objects.c:552,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:553,1
    - Dst: do_compress
      Src: /src/git/builtin/pack-objects.c:562,1
    - Dst: encode_in_pack_object_header
      Src: /src/git/builtin/pack-objects.c:568,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:577,1
    - Dst: odb_read_stream_close
      Src: /src/git/builtin/pack-objects.c:584,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:585,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:588,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:589,1
    - Dst: odb_read_stream_close
      Src: /src/git/builtin/pack-objects.c:598,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:599,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:602,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:603,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:603,1
    - Dst: odb_read_stream_close
      Src: /src/git/builtin/pack-objects.c:608,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:609,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:612,1
    - Dst: write_large_blob_data
      Src: /src/git/builtin/pack-objects.c:615,1
    - Dst: odb_read_stream_close
      Src: /src/git/builtin/pack-objects.c:616,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:618,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:619,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 4
    argNames:
    - f
    - entry
    - limit
    - usable_delta
    argTypes:
    - struct hashfile*
    - struct object_entry*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 509
    functionDepth: 21
    functionLinenumber: 509
    functionLinenumberEnd: 623
    functionName: write_no_reuse_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - odb_read_stream_close
    - write_large_blob_data
    - odb_read_stream_open
    - oe_type
    - die
    - oid_to_hex
    - oe_size_greater_than
    - get_delta
    - repo_settings_get_big_file_threshold
    - hashwrite
    - DELTA_SIZE
    - DELTA
    - do_compress
    - _
    - free
    - odb_read_object
    - FREE_AND_NULL
    - encode_in_pack_object_header
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long write_no_reuse_object(struct hashfile *f, struct object_entry
      *entry,\n\t\t\t\t\t   unsigned long limit, int usable_delta)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: IN_PACK
      Src: /src/git/builtin/pack-objects.c:629,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:633,1
    - Dst: unpack_object_header
      Src: /src/git/builtin/pack-objects.c:643,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:645,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:645,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:646,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:648,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:649,1
    - Dst: encode_in_pack_object_header
      Src: /src/git/builtin/pack-objects.c:651,1
    - Dst: offset_to_pack_pos
      Src: /src/git/builtin/pack-objects.c:655,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:656,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:656,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:658,1
    - Dst: pack_pos_to_offset
      Src: /src/git/builtin/pack-objects.c:660,1
    - Dst: check_pack_crc
      Src: /src/git/builtin/pack-objects.c:662,1
    - Dst: pack_pos_to_index
      Src: /src/git/builtin/pack-objects.c:663,1
    - Dst: error
      Src: /src/git/builtin/pack-objects.c:664,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:664,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:665,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:666,1
    - Dst: write_no_reuse_object
      Src: /src/git/builtin/pack-objects.c:667,1
    - Dst: check_pack_inflate
      Src: /src/git/builtin/pack-objects.c:674,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/builtin/pack-objects.c:675,1
    - Dst: error
      Src: /src/git/builtin/pack-objects.c:676,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:676,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:677,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:678,1
    - Dst: write_no_reuse_object
      Src: /src/git/builtin/pack-objects.c:679,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:683,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:689,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:692,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:693,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:698,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:701,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:702,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:702,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:707,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:710,1
    - Dst: copy_pack_data
      Src: /src/git/builtin/pack-objects.c:712,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:713,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 4
    argNames:
    - f
    - entry
    - limit
    - usable_delta
    argTypes:
    - struct hashfile*
    - struct object_entry*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 626
    functionDepth: 23
    functionLinenumber: 626
    functionLinenumberEnd: 716
    functionName: write_reuse_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - copy_pack_data
    - offset_to_pack_pos
    - IN_PACK
    - pack_pos_to_offset
    - error
    - die
    - unpack_object_header
    - pack_pos_to_index
    - check_pack_inflate
    - write_no_reuse_object
    - oid_to_hex
    - oe_type
    - hashwrite
    - _
    - encode_in_pack_object_header
    - check_pack_crc
    - DELTA
    - unuse_pack
    - cast_size_t_to_ulong
    linkageType: ''
    returnType: off_t
    signature: "off_t write_reuse_object(struct hashfile *f, struct object_entry *entry,\n\t\t\t\tunsigned
      long limit, int usable_delta)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: crc32_begin
      Src: /src/git/builtin/pack-objects.c:728,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:742,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:746,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:748,1
    - Dst: IN_PACK
      Src: /src/git/builtin/pack-objects.c:755,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:757,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:758,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:762,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:764,1
    - Dst: write_no_reuse_object
      Src: /src/git/builtin/pack-objects.c:772,1
    - Dst: write_reuse_object
      Src: /src/git/builtin/pack-objects.c:774,1
    - Dst: crc32_end
      Src: /src/git/builtin/pack-objects.c:782,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 3
    argNames:
    - f
    - entry
    - write_offset
    argTypes:
    - struct hashfile*
    - struct object_entry*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 719
    functionDepth: 24
    functionLinenumber: 719
    functionLinenumberEnd: 784
    functionName: write_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 25
    functionsReached:
    - oe_type
    - DELTA
    - write_reuse_object
    - IN_PACK
    - crc32_end
    - write_no_reuse_object
    - crc32_begin
    linkageType: ''
    returnType: off_t
    signature: "off_t write_object(struct hashfile *f,\n\t\t\t  struct object_entry
      *entry,\n\t\t\t  off_t write_offset)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:807,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:807,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:808,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:816,1
    - Dst: write_one
      Src: /src/git/builtin/pack-objects.c:818,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:818,1
    - Dst: SET_DELTA
      Src: /src/git/builtin/pack-objects.c:821,1
    - Dst: write_object
      Src: /src/git/builtin/pack-objects.c:832,1
    - Dst: signed_add_overflows
      Src: /src/git/builtin/pack-objects.c:840,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:841,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:841,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - f
    - e
    - offset
    argTypes:
    - struct hashfile*
    - struct object_entry*
    - off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 844
    functionName: write_one
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 3
    functionsReached:
    - SET_DELTA
    - write_one
    - oid_to_hex
    - die
    - signed_add_overflows
    - write_object
    - DELTA
    - _
    - warning
    linkageType: ''
    returnType: enum write_one_status
    signature: "enum write_one_status write_one(struct hashfile *f,\n\t\t\t\t       struct
      object_entry *e,\n\t\t\t\t       off_t *offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: packlist_find
      Src: /src/git/builtin/pack-objects.c:849,1
    - Dst: reference_get_peeled_oid
      Src: /src/git/builtin/pack-objects.c:853,1
    - Dst: packlist_find
      Src: /src/git/builtin/pack-objects.c:854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 846
    functionDepth: 3
    functionLinenumber: 846
    functionLinenumberEnd: 859
    functionName: mark_tagged
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - packlist_find
    - reference_get_peeled_oid
    linkageType: ''
    returnType: int
    signature: int mark_tagged(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 867
    functionName: oe_layer
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char oe_layer(struct packing_data *pack,\n\t\t\t\t     struct
      object_entry *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oe_layer
      Src: /src/git/builtin/pack-objects.c:873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - wo
    - endp
    - e
    argTypes:
    - struct object_entry**
    - unsigned int*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 877
    functionName: add_to_write_order
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oe_layer
    linkageType: ''
    returnType: void
    signature: "void add_to_write_order(struct object_entry **wo,\n\t\t\t       unsigned
      int *endp,\n\t\t\t       struct object_entry *e)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: add_to_write_order
      Src: /src/git/builtin/pack-objects.c:888,1
    - Dst: DELTA_SIBLING
      Src: /src/git/builtin/pack-objects.c:890,1
    - Dst: DELTA_SIBLING
      Src: /src/git/builtin/pack-objects.c:890,1
    - Dst: add_to_write_order
      Src: /src/git/builtin/pack-objects.c:891,1
    - Dst: DELTA_CHILD
      Src: /src/git/builtin/pack-objects.c:895,1
    - Dst: DELTA_CHILD
      Src: /src/git/builtin/pack-objects.c:897,1
    - Dst: DELTA_SIBLING
      Src: /src/git/builtin/pack-objects.c:901,1
    - Dst: DELTA_SIBLING
      Src: /src/git/builtin/pack-objects.c:902,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:906,1
    - Dst: DELTA_SIBLING
      Src: /src/git/builtin/pack-objects.c:907,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:910,1
    - Dst: DELTA_SIBLING
      Src: /src/git/builtin/pack-objects.c:917,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - wo
    - endp
    - e
    argTypes:
    - struct object_entry**
    - unsigned int*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 920
    functionName: add_descendants_to_write_order
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - DELTA_SIBLING
    - add_to_write_order
    - DELTA_CHILD
    - DELTA
    linkageType: ''
    returnType: void
    signature: "void add_descendants_to_write_order(struct object_entry **wo,\n\t\t\t\t\t
      \  unsigned int *endp,\n\t\t\t\t\t   struct object_entry *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:928,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:928,1
    - Dst: add_descendants_to_write_order
      Src: /src/git/builtin/pack-objects.c:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - wo
    - endp
    - e
    argTypes:
    - struct object_entry**
    - unsigned int*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 922
    functionDepth: 3
    functionLinenumber: 922
    functionLinenumberEnd: 931
    functionName: add_family_to_write_order
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - DELTA
    - add_descendants_to_write_order
    linkageType: ''
    returnType: void
    signature: "void add_family_to_write_order(struct object_entry **wo,\n\t\t\t\t
      \     unsigned int *endp,\n\t\t\t\t      struct object_entry *e)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: add_to_write_order
      Src: /src/git/builtin/pack-objects.c:941,1
    - Dst: add_to_write_order
      Src: /src/git/builtin/pack-objects.c:950,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:957,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:958,1
    - Dst: add_to_write_order
      Src: /src/git/builtin/pack-objects.c:960,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:967,1
    - Dst: add_to_write_order
      Src: /src/git/builtin/pack-objects.c:969,1
    - Dst: oe_layer
      Src: /src/git/builtin/pack-objects.c:976,1
    - Dst: add_family_to_write_order
      Src: /src/git/builtin/pack-objects.c:977,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 2
    argNames:
    - wo
    - wo_end
    argTypes:
    - struct object_entry**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 933
    functionDepth: 4
    functionLinenumber: 933
    functionLinenumberEnd: 979
    functionName: compute_layer_order
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - add_to_write_order
    - add_family_to_write_order
    - oe_type
    - oe_layer
    linkageType: ''
    returnType: void
    signature: void compute_layer_order(struct object_entry **wo, unsigned int *wo_end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SET_DELTA_CHILD
      Src: /src/git/builtin/pack-objects.c:992,1
    - Dst: SET_DELTA_SIBLING
      Src: /src/git/builtin/pack-objects.c:993,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:1003,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:1006,1
    - Dst: SET_DELTA_CHILD
      Src: /src/git/builtin/pack-objects.c:1007,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:1007,1
    - Dst: refs_for_each_tag_ref
      Src: /src/git/builtin/pack-objects.c:1013,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/pack-objects.c:1013,1
    - Dst: compute_pack_layers
      Src: /src/git/builtin/pack-objects.c:1017,1
    - Dst: free_island_marks
      Src: /src/git/builtin/pack-objects.c:1018,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:1021,1
    - Dst: compute_layer_order
      Src: /src/git/builtin/pack-objects.c:1025,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:1028,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:1028,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 981
    functionDepth: 5
    functionLinenumber: 981
    functionLinenumberEnd: 1032
    functionName: compute_write_order
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - die
    - compute_layer_order
    - compute_pack_layers
    - ALLOC_ARRAY
    - free_island_marks
    - SET_DELTA_SIBLING
    - DELTA
    - SET_DELTA_CHILD
    - _
    - refs_for_each_tag_ref
    - get_main_ref_store
    linkageType: ''
    returnType: struct object_entry
    signature: struct object_entry **compute_write_order(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/pack-objects.c:1057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - where
    - offset
    argTypes:
    - off_t
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1062
    functionName: record_reused_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void record_reused_object(off_t where, off_t offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/pack-objects.c:1087,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - where
    argTypes:
    - off_t
    assertStmts:
    - condition: (lo)
      pos:
        line_end: 1086
        line_start: 1086
        source_file: /src/git/builtin/pack-objects.c
    constantsTouched: []
    func_position:
      end: 1089
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1089
    functionName: find_reused_offset
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: off_t
    signature: off_t find_reused_offset(off_t where)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pack_pos_to_offset
      Src: /src/git/builtin/pack-objects.c:1100,1
    - Dst: pack_pos_to_offset
      Src: /src/git/builtin/pack-objects.c:1101,1
    - Dst: record_reused_object
      Src: /src/git/builtin/pack-objects.c:1103,1
    - Dst: hashfile_total
      Src: /src/git/builtin/pack-objects.c:1104,1
    - Dst: unpack_object_header
      Src: /src/git/builtin/pack-objects.c:1107,1
    - Dst: assert
      Src: /src/git/builtin/pack-objects.c:1108,1
    - Dst: get_delta_base
      Src: /src/git/builtin/pack-objects.c:1117,1
    - Dst: assert
      Src: /src/git/builtin/pack-objects.c:1118,1
    - Dst: offset_to_pack_pos
      Src: /src/git/builtin/pack-objects.c:1125,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:1126,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:1126,1
    - Dst: nth_packed_object_id
      Src: /src/git/builtin/pack-objects.c:1131,1
    - Dst: pack_pos_to_index
      Src: /src/git/builtin/pack-objects.c:1132,1
    - Dst: encode_in_pack_object_header
      Src: /src/git/builtin/pack-objects.c:1134,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:1136,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:1137,1
    - Dst: copy_pack_data
      Src: /src/git/builtin/pack-objects.c:1138,1
    - Dst: find_reused_offset
      Src: /src/git/builtin/pack-objects.c:1143,1
    - Dst: find_reused_offset
      Src: /src/git/builtin/pack-objects.c:1144,1
    - Dst: encode_in_pack_object_header
      Src: /src/git/builtin/pack-objects.c:1150,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:1160,1
    - Dst: hashwrite
      Src: /src/git/builtin/pack-objects.c:1161,1
    - Dst: copy_pack_data
      Src: /src/git/builtin/pack-objects.c:1162,1
    - Dst: copy_pack_data
      Src: /src/git/builtin/pack-objects.c:1169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 5
    argNames:
    - reuse_packfile
    - pos
    - out
    - pack_start
    - w_curs
    argTypes:
    - struct packed_git*
    - size_t
    - struct hashfile*
    - off_t
    - struct pack_window**
    assertStmts:
    - condition: (type >= 0)
      pos:
        line_end: 1107
        line_start: 1107
        source_file: /src/git/builtin/pack-objects.c
    - condition: (base_offset != 0)
      pos:
        line_end: 1117
        line_start: 1117
        source_file: /src/git/builtin/pack-objects.c
    constantsTouched: []
    func_position:
      end: 1170
      start: 1091
    functionDepth: 23
    functionLinenumber: 1091
    functionLinenumberEnd: 1170
    functionName: write_reused_pack_one
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - hashfile_total
    - find_reused_offset
    - die
    - assert
    - get_delta_base
    - record_reused_object
    - unpack_object_header
    - hashwrite
    - pack_pos_to_index
    - nth_packed_object_id
    - copy_pack_data
    - offset_to_pack_pos
    - _
    - pack_pos_to_offset
    - encode_in_pack_object_header
    linkageType: ''
    returnType: void
    signature: "void write_reused_pack_one(struct packed_git *reuse_packfile,\n\t\t\t\t
      \ size_t pos, struct hashfile *out,\n\t\t\t\t  off_t pack_start,\n\t\t\t\t  struct
      pack_window **w_curs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:1211,1
    - Dst: pack_pos_to_offset
      Src: /src/git/builtin/pack-objects.c:1220,1
    - Dst: record_reused_object
      Src: /src/git/builtin/pack-objects.c:1224,1
    - Dst: hashflush
      Src: /src/git/builtin/pack-objects.c:1225,1
    - Dst: copy_pack_data
      Src: /src/git/builtin/pack-objects.c:1226,1
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:1229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - reuse_packfile
    - out
    - w_curs
    argTypes:
    - struct bitmapped_pack*
    - struct hashfile*
    - struct pack_window**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1172
    functionDepth: 23
    functionLinenumber: 1172
    functionLinenumberEnd: 1232
    functionName: write_reused_pack_verbatim
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - record_reused_object
    - copy_pack_data
    - display_progress
    - hashflush
    - pack_pos_to_offset
    - BUG
    linkageType: ''
    returnType: size_t
    signature: "size_t write_reused_pack_verbatim(struct bitmapped_pack *reuse_packfile,\n\t\t\t\t\t
      struct hashfile *out,\n\t\t\t\t\t struct pack_window **w_curs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hashfile_total
      Src: /src/git/builtin/pack-objects.c:1239,1
    - Dst: write_reused_pack_verbatim
      Src: /src/git/builtin/pack-objects.c:1243,1
    - Dst: ewah_bit_ctz64
      Src: /src/git/builtin/pack-objects.c:1254,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:1273,1
    - Dst: pack_pos_to_midx
      Src: /src/git/builtin/pack-objects.c:1275,1
    - Dst: nth_midxed_offset
      Src: /src/git/builtin/pack-objects.c:1276,1
    - Dst: offset_to_pack_pos
      Src: /src/git/builtin/pack-objects.c:1278,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:1280,1
    - Dst: pack_basename
      Src: /src/git/builtin/pack-objects.c:1282,1
    - Dst: write_reused_pack_one
      Src: /src/git/builtin/pack-objects.c:1292,1
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:1294,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:1299,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - reuse_packfile
    - f
    argTypes:
    - struct bitmapped_pack*
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1234
    functionDepth: 24
    functionLinenumber: 1234
    functionLinenumberEnd: 1300
    functionName: write_reused_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - hashfile_total
    - ewah_bit_ctz64
    - pack_basename
    - write_reused_pack_verbatim
    - display_progress
    - offset_to_pack_pos
    - write_reused_pack_one
    - unuse_pack
    - pack_pos_to_midx
    - BUG
    - nth_midxed_offset
    linkageType: ''
    returnType: void
    signature: "void write_reused_pack(struct bitmapped_pack *reuse_packfile,\n\t\t\t
      \     struct hashfile *f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidset_iter_init
      Src: /src/git/builtin/pack-objects.c:1307,1
    - Dst: oidset_iter_next
      Src: /src/git/builtin/pack-objects.c:1308,1
    - Dst: oidmap_get
      Src: /src/git/builtin/pack-objects.c:1310,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:1313,1
    - Dst: write_in_full
      Src: /src/git/builtin/pack-objects.c:1314,1
    - Dst: strlen
      Src: /src/git/builtin/pack-objects.c:1314,1
    - Dst: write_in_full
      Src: /src/git/builtin/pack-objects.c:1315,1
    - Dst: write_in_full
      Src: /src/git/builtin/pack-objects.c:1316,1
    - Dst: strlen
      Src: /src/git/builtin/pack-objects.c:1316,1
    - Dst: write_in_full
      Src: /src/git/builtin/pack-objects.c:1317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1302
    functionDepth: 4
    functionLinenumber: 1302
    functionLinenumberEnd: 1319
    functionName: write_excluded_by_configs
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oidmap_get
    - strlen
    - oidset_iter_next
    - write_in_full
    - BUG
    - oidset_iter_init
    linkageType: ''
    returnType: void
    signature: void write_excluded_by_configs(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: start_progress
      Src: /src/git/builtin/pack-objects.c:1335,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:1336,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:1337,1
    - Dst: compute_write_order
      Src: /src/git/builtin/pack-objects.c:1338,1
    - Dst: hashfd_ext
      Src: /src/git/builtin/pack-objects.c:1358,1
    - Dst: create_tmp_packfile
      Src: /src/git/builtin/pack-objects.c:1361,1
    - Dst: write_pack_header
      Src: /src/git/builtin/pack-objects.c:1364,1
    - Dst: assert
      Src: /src/git/builtin/pack-objects.c:1367,1
    - Dst: write_reused_pack
      Src: /src/git/builtin/pack-objects.c:1370,1
    - Dst: hashfile_total
      Src: /src/git/builtin/pack-objects.c:1374,1
    - Dst: write_one
      Src: /src/git/builtin/pack-objects.c:1380,1
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:1382,1
    - Dst: finalize_hashfile
      Src: /src/git/builtin/pack-objects.c:1393,1
    - Dst: finalize_hashfile
      Src: /src/git/builtin/pack-objects.c:1396,1
    - Dst: finalize_hashfile
      Src: /src/git/builtin/pack-objects.c:1404,1
    - Dst: fixup_pack_header_footer
      Src: /src/git/builtin/pack-objects.c:1405,1
    - Dst: close
      Src: /src/git/builtin/pack-objects.c:1408,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:1411,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:1411,1
    - Dst: stat
      Src: /src/git/builtin/pack-objects.c:1429,1
    - Dst: warning_errno
      Src: /src/git/builtin/pack-objects.c:1430,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:1430,1
    - Dst: utime
      Src: /src/git/builtin/pack-objects.c:1437,1
    - Dst: warning_errno
      Src: /src/git/builtin/pack-objects.c:1438,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:1438,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/pack-objects.c:1441,1
    - Dst: hash_to_hex
      Src: /src/git/builtin/pack-objects.c:1442,1
    - Dst: bitmap_writer_init
      Src: /src/git/builtin/pack-objects.c:1445,1
    - Dst: bitmap_writer_set_checksum
      Src: /src/git/builtin/pack-objects.c:1448,1
    - Dst: bitmap_writer_build_type_index
      Src: /src/git/builtin/pack-objects.c:1449,1
    - Dst: stage_tmp_packfiles
      Src: /src/git/builtin/pack-objects.c:1456,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/pack-objects.c:1465,1
    - Dst: stop_progress
      Src: /src/git/builtin/pack-objects.c:1466,1
    - Dst: bitmap_writer_show_progress
      Src: /src/git/builtin/pack-objects.c:1468,1
    - Dst: bitmap_writer_select_commits
      Src: /src/git/builtin/pack-objects.c:1470,1
    - Dst: bitmap_writer_build
      Src: /src/git/builtin/pack-objects.c:1473,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:1474,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:1474,1
    - Dst: bitmap_writer_finish
      Src: /src/git/builtin/pack-objects.c:1475,1
    - Dst: bitmap_writer_free
      Src: /src/git/builtin/pack-objects.c:1478,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/pack-objects.c:1480,1
    - Dst: rename_tmp_packfile_idx
      Src: /src/git/builtin/pack-objects.c:1483,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:1485,1
    - Dst: strbuf_release
      Src: /src/git/builtin/pack-objects.c:1486,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:1487,1
    - Dst: puts
      Src: /src/git/builtin/pack-objects.c:1488,1
    - Dst: hash_to_hex
      Src: /src/git/builtin/pack-objects.c:1488,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:1498,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:1499,1
    - Dst: stop_progress
      Src: /src/git/builtin/pack-objects.c:1500,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:1502,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:1502,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/pack-objects.c:1504,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (pack_to_stdout)
      pos:
        line_end: 1366
        line_start: 1366
        source_file: /src/git/builtin/pack-objects.c
    constantsTouched: []
    func_position:
      end: 1506
      start: 1325
    functionDepth: 25
    functionLinenumber: 1325
    functionLinenumberEnd: 1506
    functionName: write_pack_file
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - hashfile_total
    - write_one
    - stop_progress
    - create_tmp_packfile
    - hash_to_hex
    - trace2_data_intmax
    - strbuf_addf
    - free
    - write_reused_pack
    - rename_tmp_packfile_idx
    - strbuf_release
    - die
    - bitmap_writer_build
    - puts
    - ALLOC_ARRAY
    - strbuf_setlen
    - strbuf_addstr
    - bitmap_writer_init
    - fixup_pack_header_footer
    - write_pack_header
    - stat
    - bitmap_writer_build_type_index
    - bitmap_writer_set_checksum
    - utime
    - stage_tmp_packfiles
    - _
    - bitmap_writer_free
    - bitmap_writer_show_progress
    - warning
    - compute_write_order
    - assert
    - bitmap_writer_select_commits
    - warning_errno
    - bitmap_writer_finish
    - finalize_hashfile
    - hashfd_ext
    - display_progress
    - close
    - start_progress
    linkageType: ''
    returnType: void
    signature: void write_pack_file(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: attr_check_initl
      Src: /src/git/builtin/pack-objects.c:1513,1
    - Dst: git_check_attr
      Src: /src/git/builtin/pack-objects.c:1514,1
    - Dst: ATTR_FALSE
      Src: /src/git/builtin/pack-objects.c:1515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1508
    functionDepth: 19
    functionLinenumber: 1508
    functionLinenumberEnd: 1518
    functionName: no_try_delta
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - ATTR_FALSE
    - attr_check_initl
    - git_check_attr
    linkageType: ''
    returnType: int
    signature: int no_try_delta(const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_walk_contains
      Src: /src/git/builtin/pack-objects.c:1536,1
    - Dst: packlist_find
      Src: /src/git/builtin/pack-objects.c:1539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - oid
    - exclude
    argTypes:
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1530
    functionDepth: 9
    functionLinenumber: 1530
    functionLinenumberEnd: 1550
    functionName: have_duplicate_entry
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - bitmap_walk_contains
    - packlist_find
    linkageType: ''
    returnType: int
    signature: "int have_duplicate_entry(const struct object_id *oid,\n\t\t\t\tint
      exclude)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/builtin/pack-objects.c:1559,1
    - Dst: packfile_store_get_kept_pack_cache
      Src: /src/git/builtin/pack-objects.c:1560,1
    - Dst: find_pack_entry_one
      Src: /src/git/builtin/pack-objects.c:1567,1
    - Dst: load_pack_mtimes
      Src: /src/git/builtin/pack-objects.c:1586,1
    - Dst: offset_to_pack_pos
      Src: /src/git/builtin/pack-objects.c:1588,1
    - Dst: nth_packed_mtime
      Src: /src/git/builtin/pack-objects.c:1590,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - r
    - oid
    - flags
    - mtime
    argTypes:
    - struct repository*
    - struct object_id*
    - unsigned
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1552
    functionDepth: 11
    functionLinenumber: 1552
    functionLinenumberEnd: 1607
    functionName: want_cruft_object_mtime
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - odb_source_files_downcast
    - offset_to_pack_pos
    - find_pack_entry_one
    - load_pack_mtimes
    - packfile_store_get_kept_pack_cache
    - nth_packed_mtime
    linkageType: ''
    returnType: int
    signature: "int want_cruft_object_mtime(struct repository *r,\n\t\t\t\t   const
      struct object_id *oid,\n\t\t\t\t   unsigned flags, uint32_t mtime)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: is_pack_valid
      Src: /src/git/builtin/pack-objects.c:1617,1
    - Dst: has_object_kept_pack
      Src: /src/git/builtin/pack-objects.c:1675,1
    - Dst: want_cruft_object_mtime
      Src: /src/git/builtin/pack-objects.c:1684,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 33
    argCount: 4
    argNames:
    - oid
    - exclude
    - p
    - mtime
    argTypes:
    - struct object_id*
    - int
    - struct packed_git*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1609
    functionDepth: 13
    functionLinenumber: 1609
    functionLinenumberEnd: 1700
    functionName: want_found_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - has_object_kept_pack
    - want_cruft_object_mtime
    - is_pack_valid
    linkageType: ''
    returnType: int
    signature: "int want_found_object(const struct object_id *oid, int exclude,\n\t\t\t
      \    struct packed_git *p, uint32_t mtime)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_pack_entry_one
      Src: /src/git/builtin/pack-objects.c:1714,1
    - Dst: is_pack_valid
      Src: /src/git/builtin/pack-objects.c:1718,1
    - Dst: want_found_object
      Src: /src/git/builtin/pack-objects.c:1723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - p
    - oid
    - exclude
    - found_pack
    - found_offset
    - found_mtime
    argTypes:
    - struct packed_git*
    - struct object_id*
    - int
    - struct packed_git**
    - off_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1702
    functionDepth: 14
    functionLinenumber: 1702
    functionLinenumberEnd: 1726
    functionName: want_object_in_pack_one
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - want_found_object
    - find_pack_entry_one
    - is_pack_valid
    linkageType: ''
    returnType: int
    signature: "int want_object_in_pack_one(struct packed_git *p,\n\t\t\t\t   const
      struct object_id *oid,\n\t\t\t\t   int exclude,\n\t\t\t\t   struct packed_git
      **found_pack,\n\t\t\t\t   off_t *found_offset,\n\t\t\t\t   uint32_t found_mtime)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_loose_has_object
      Src: /src/git/builtin/pack-objects.c:1754,1
    - Dst: want_found_object
      Src: /src/git/builtin/pack-objects.c:1764,1
    - Dst: odb_prepare_alternates
      Src: /src/git/builtin/pack-objects.c:1773,1
    - Dst: get_multi_pack_index
      Src: /src/git/builtin/pack-objects.c:1776,1
    - Dst: fill_midx_entry
      Src: /src/git/builtin/pack-objects.c:1779,1
    - Dst: want_object_in_pack_one
      Src: /src/git/builtin/pack-objects.c:1780,1
    - Dst: odb_source_files_downcast
      Src: /src/git/builtin/pack-objects.c:1787,1
    - Dst: want_object_in_pack_one
      Src: /src/git/builtin/pack-objects.c:1791,1
    - Dst: packfile_list_prepend
      Src: /src/git/builtin/pack-objects.c:1793,1
    - Dst: oidmap_get
      Src: /src/git/builtin/pack-objects.c:1801,1
    - Dst: skip_prefix
      Src: /src/git/builtin/pack-objects.c:1807,1
    - Dst: oidset_insert
      Src: /src/git/builtin/pack-objects.c:1811,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 5
    argNames:
    - oid
    - exclude
    - found_pack
    - found_offset
    - found_mtime
    argTypes:
    - struct object_id*
    - int
    - struct packed_git**
    - off_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1737
    functionDepth: 15
    functionLinenumber: 1737
    functionLinenumberEnd: 1819
    functionName: want_object_in_pack_mtime
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - odb_source_loose_has_object
    - odb_source_files_downcast
    - oidmap_get
    - want_found_object
    - odb_prepare_alternates
    - fill_midx_entry
    - get_multi_pack_index
    - oidset_insert
    - want_object_in_pack_one
    - skip_prefix
    - packfile_list_prepend
    linkageType: ''
    returnType: int
    signature: "int want_object_in_pack_mtime(const struct object_id *oid,\n\t\t\t\t
      \    int exclude,\n\t\t\t\t     struct packed_git **found_pack,\n\t\t\t\t     off_t
      *found_offset,\n\t\t\t\t     uint32_t found_mtime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: want_object_in_pack_mtime
      Src: /src/git/builtin/pack-objects.c:1826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - oid
    - exclude
    - found_pack
    - found_offset
    argTypes:
    - struct object_id*
    - int
    - struct packed_git**
    - off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1821
    functionDepth: 16
    functionLinenumber: 1821
    functionLinenumberEnd: 1828
    functionName: want_object_in_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - want_object_in_pack_mtime
    linkageType: ''
    returnType: int
    signature: "int want_object_in_pack(const struct object_id *oid,\n\t\t\t\t      int
      exclude,\n\t\t\t\t      struct packed_git **found_pack,\n\t\t\t\t      off_t
      *found_offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packlist_alloc
      Src: /src/git/builtin/pack-objects.c:1840,1
    - Dst: oe_set_type
      Src: /src/git/builtin/pack-objects.c:1842,1
    - Dst: oe_set_in_pack
      Src: /src/git/builtin/pack-objects.c:1848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - oid
    - type
    - hash
    - exclude
    - no_try_delta
    - found_pack
    - found_offset
    argTypes:
    - struct object_id*
    - enum object_type
    - uint32_t
    - int
    - int
    - struct packed_git*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1830
    functionDepth: 4
    functionLinenumber: 1830
    functionLinenumberEnd: 1855
    functionName: create_object_entry
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oe_set_type
    - oe_set_in_pack
    - packlist_alloc
    linkageType: ''
    returnType: struct object_entry
    signature: "struct object_entry *create_object_entry(const struct object_id *oid,\n\t\t\t\t\t\tenum
      object_type type,\n\t\t\t\t\t\tuint32_t hash,\n\t\t\t\t\t\tint exclude,\n\t\t\t\t\t\tint
      no_try_delta,\n\t\t\t\t\t\tstruct packed_git *found_pack,\n\t\t\t\t\t\toff_t
      found_offset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:1867,1
    - Dst: have_duplicate_entry
      Src: /src/git/builtin/pack-objects.c:1869,1
    - Dst: want_object_in_pack
      Src: /src/git/builtin/pack-objects.c:1872,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:1876,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:1876,1
    - Dst: create_object_entry
      Src: /src/git/builtin/pack-objects.c:1882,1
    - Dst: pack_name_hash_fn
      Src: /src/git/builtin/pack-objects.c:1882,1
    - Dst: no_try_delta
      Src: /src/git/builtin/pack-objects.c:1883,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - oid
    - type
    - name
    - exclude
    argTypes:
    - struct object_id*
    - enum object_type
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1861
    functionDepth: 20
    functionLinenumber: 1861
    functionLinenumberEnd: 1886
    functionName: add_object_entry
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - pack_name_hash_fn
    - want_object_in_pack
    - create_object_entry
    - have_duplicate_entry
    - no_try_delta
    - display_progress
    - _
    - warning
    linkageType: ''
    returnType: int
    signature: "int add_object_entry(const struct object_id *oid, enum object_type
      type,\n\t\t\t    const char *name, int exclude)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:1894,1
    - Dst: have_duplicate_entry
      Src: /src/git/builtin/pack-objects.c:1896,1
    - Dst: want_object_in_pack
      Src: /src/git/builtin/pack-objects.c:1899,1
    - Dst: create_object_entry
      Src: /src/git/builtin/pack-objects.c:1902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - oid
    - type
    - UNUSED
    - name_hash
    - pack
    - offset
    - payload
    argTypes:
    - struct object_id*
    - enum object_type
    - int
    - uint32_t
    - struct packed_git*
    - off_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1888
    functionDepth: 17
    functionLinenumber: 1888
    functionLinenumberEnd: 1904
    functionName: add_object_entry_from_bitmap
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - display_progress
    - have_duplicate_entry
    - create_object_entry
    - want_object_in_pack
    linkageType: ''
    returnType: int
    signature: "int add_object_entry_from_bitmap(const struct object_id *oid,\n\t\t\t\t\tenum
      object_type type,\n\t\t\t\t\tint flags UNUSED, uint32_t name_hash,\n\t\t\t\t\tstruct
      packed_git *pack, off_t offset,\n\t\t\t\t\tvoid *payload UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/pack-objects.c:1917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1915
    functionDepth: 0
    functionLinenumber: 1915
    functionLinenumberEnd: 1918
    functionName: pbase_tree_cache_ix
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int pbase_tree_cache_ix(const struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/pack-objects.c:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ix
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1922
    functionName: pbase_tree_cache_ix_incr
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int pbase_tree_cache_ix_incr(int ix)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pbase_tree_cache_ix
      Src: /src/git/builtin/pack-objects.c:1941,1
    - Dst: oideq
      Src: /src/git/builtin/pack-objects.c:1950,1
    - Dst: pbase_tree_cache_ix_incr
      Src: /src/git/builtin/pack-objects.c:1960,1
    - Dst: odb_read_object
      Src: /src/git/builtin/pack-objects.c:1966,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:1970,1
    - Dst: xmalloc
      Src: /src/git/builtin/pack-objects.c:1984,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:1989,1
    - Dst: oidcpy
      Src: /src/git/builtin/pack-objects.c:1992,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1934
    functionDepth: 12
    functionLinenumber: 1934
    functionLinenumberEnd: 1999
    functionName: pbase_tree_get
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - pbase_tree_cache_ix_incr
    - pbase_tree_cache_ix
    - oidcpy
    - xmalloc
    - free
    - odb_read_object
    - oideq
    linkageType: ''
    returnType: struct pbase_tree_cache
    signature: struct pbase_tree_cache *pbase_tree_get(const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:2007,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:2008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct pbase_tree_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 2001
    functionDepth: 1
    functionLinenumber: 2001
    functionLinenumberEnd: 2009
    functionName: pbase_tree_put
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void pbase_tree_put(struct pbase_tree_cache *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/git/builtin/pack-objects.c:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2011
    functionDepth: 0
    functionLinenumber: 2011
    functionLinenumberEnd: 2014
    functionName: name_cmp_len
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - strcspn
    linkageType: ''
    returnType: size_t
    signature: size_t name_cmp_len(const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tree_entry
      Src: /src/git/builtin/pack-objects.c:2024,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/pack-objects.c:2025,1
    - Dst: tree_entry_len
      Src: /src/git/builtin/pack-objects.c:2027,1
    - Dst: memcmp
      Src: /src/git/builtin/pack-objects.c:2028,1
    - Dst: add_object_entry
      Src: /src/git/builtin/pack-objects.c:2034,1
    - Dst: object_type
      Src: /src/git/builtin/pack-objects.c:2035,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/pack-objects.c:2039,1
    - Dst: name_cmp_len
      Src: /src/git/builtin/pack-objects.c:2043,1
    - Dst: pbase_tree_get
      Src: /src/git/builtin/pack-objects.c:2045,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/pack-objects.c:2048,1
    - Dst: add_pbase_object
      Src: /src/git/builtin/pack-objects.c:2051,1
    - Dst: pbase_tree_put
      Src: /src/git/builtin/pack-objects.c:2052,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - tree
    - name
    - cmplen
    - fullname
    argTypes:
    - struct tree_desc*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2016
    functionDepth: 21
    functionLinenumber: 2016
    functionLinenumberEnd: 2055
    functionName: add_pbase_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 1
    functionsReached:
    - object_type
    - S_ISDIR
    - tree_entry
    - add_object_entry
    - S_ISGITLINK
    - init_tree_desc
    - add_pbase_object
    - pbase_tree_put
    - pbase_tree_get
    - name_cmp_len
    - tree_entry_len
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void add_pbase_object(struct tree_desc *tree,\n\t\t\t     const char
      *name,\n\t\t\t     size_t cmplen,\n\t\t\t     const char *fullname)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - hash
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2060
    functionDepth: 0
    functionLinenumber: 2060
    functionLinenumberEnd: 2074
    functionName: done_pbase_path_pos
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int done_pbase_path_pos(unsigned hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: done_pbase_path_pos
      Src: /src/git/builtin/pack-objects.c:2078,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/pack-objects.c:2082,1
    - Dst: MOVE_ARRAY
      Src: /src/git/builtin/pack-objects.c:2087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - hash
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 2076
    functionDepth: 1
    functionLinenumber: 2076
    functionLinenumberEnd: 2091
    functionName: check_pbase_path
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - done_pbase_path_pos
    - ALLOC_GROW
    - MOVE_ARRAY
    linkageType: ''
    returnType: int
    signature: int check_pbase_path(unsigned hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pack_name_hash_fn
      Src: /src/git/builtin/pack-objects.c:2097,1
    - Dst: check_pbase_path
      Src: /src/git/builtin/pack-objects.c:2099,1
    - Dst: name_cmp_len
      Src: /src/git/builtin/pack-objects.c:2102,1
    - Dst: add_object_entry
      Src: /src/git/builtin/pack-objects.c:2105,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/pack-objects.c:2109,1
    - Dst: add_pbase_object
      Src: /src/git/builtin/pack-objects.c:2111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2093
    functionDepth: 22
    functionLinenumber: 2093
    functionLinenumberEnd: 2114
    functionName: add_preferred_base_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - pack_name_hash_fn
    - add_object_entry
    - check_pbase_path
    - add_pbase_object
    - name_cmp_len
    - init_tree_desc
    linkageType: ''
    returnType: void
    signature: void add_preferred_base_object(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_peeled
      Src: /src/git/builtin/pack-objects.c:2126,1
    - Dst: oideq
      Src: /src/git/builtin/pack-objects.c:2132,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:2133,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:2138,1
    - Dst: oidcpy
      Src: /src/git/builtin/pack-objects.c:2142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2116
    functionDepth: 13
    functionLinenumber: 2116
    functionLinenumberEnd: 2145
    functionName: add_preferred_base
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - odb_read_object_peeled
    - CALLOC_ARRAY
    - free
    - oideq
    linkageType: ''
    returnType: void
    signature: void add_preferred_base(struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:2157,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:2158,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/pack-objects.c:2161,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:2164,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/pack-objects.c:2165,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/pack-objects.c:2168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2170
    functionName: cleanup_preferred_base
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - FREE_AND_NULL
    - free
    linkageType: ''
    returnType: void
    signature: void cleanup_preferred_base(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: packlist_find
      Src: /src/git/builtin/pack-objects.c:2193,1
    - Dst: in_same_island
      Src: /src/git/builtin/pack-objects.c:2195,1
    - Dst: bitmap_has_oid_in_uninteresting
      Src: /src/git/builtin/pack-objects.c:2206,1
    - Dst: in_same_island
      Src: /src/git/builtin/pack-objects.c:2208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - base_oid
    - delta
    - base_out
    argTypes:
    - struct object_id*
    - struct object_entry*
    - struct object_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2183
    functionDepth: 10
    functionLinenumber: 2183
    functionLinenumberEnd: 2216
    functionName: can_reuse_delta
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - packlist_find
    - in_same_island
    - bitmap_has_oid_in_uninteresting
    linkageType: ''
    returnType: int
    signature: "int can_reuse_delta(const struct object_id *base_oid,\n\t\t\t   struct
      object_entry *delta,\n\t\t\t   struct object_entry **base_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/pack-objects.c:2225,1
    - Dst: oid_array_append
      Src: /src/git/builtin/pack-objects.c:2230,1
    - Dst: promisor_remote_get_direct
      Src: /src/git/builtin/pack-objects.c:2232,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/pack-objects.c:2234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - object_index_start
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2218
    functionDepth: 14
    functionLinenumber: 2218
    functionLinenumberEnd: 2235
    functionName: prefetch_to_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info_extended
    - promisor_remote_get_direct
    - oid_array_append
    - oid_array_clear
    linkageType: ''
    returnType: void
    signature: void prefetch_to_pack(uint32_t object_index_start)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: IN_PACK
      Src: /src/git/builtin/pack-objects.c:2243,1
    - Dst: IN_PACK
      Src: /src/git/builtin/pack-objects.c:2244,1
    - Dst: use_pack
      Src: /src/git/builtin/pack-objects.c:2256,1
    - Dst: unpack_object_header_buffer
      Src: /src/git/builtin/pack-objects.c:2262,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:2269,1
    - Dst: oe_set_type
      Src: /src/git/builtin/pack-objects.c:2280,1
    - Dst: SET_SIZE
      Src: /src/git/builtin/pack-objects.c:2281,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/builtin/pack-objects.c:2281,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:2283,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:2283,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:2285,1
    - Dst: oidread
      Src: /src/git/builtin/pack-objects.c:2289,1
    - Dst: use_pack
      Src: /src/git/builtin/pack-objects.c:2290,1
    - Dst: use_pack
      Src: /src/git/builtin/pack-objects.c:2299,1
    - Dst: MSB
      Src: /src/git/builtin/pack-objects.c:2306,1
    - Dst: error
      Src: /src/git/builtin/pack-objects.c:2307,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2307,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:2308,1
    - Dst: error
      Src: /src/git/builtin/pack-objects.c:2316,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2316,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:2317,1
    - Dst: offset_to_pack_pos
      Src: /src/git/builtin/pack-objects.c:2322,1
    - Dst: nth_packed_object_id
      Src: /src/git/builtin/pack-objects.c:2324,1
    - Dst: pack_pos_to_index
      Src: /src/git/builtin/pack-objects.c:2325,1
    - Dst: can_reuse_delta
      Src: /src/git/builtin/pack-objects.c:2333,1
    - Dst: oe_set_type
      Src: /src/git/builtin/pack-objects.c:2334,1
    - Dst: SET_SIZE
      Src: /src/git/builtin/pack-objects.c:2335,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/builtin/pack-objects.c:2335,1
    - Dst: SET_DELTA_SIZE
      Src: /src/git/builtin/pack-objects.c:2336,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/builtin/pack-objects.c:2336,1
    - Dst: SET_DELTA
      Src: /src/git/builtin/pack-objects.c:2339,1
    - Dst: SET_DELTA_CHILD
      Src: /src/git/builtin/pack-objects.c:2341,1
    - Dst: SET_DELTA_EXT
      Src: /src/git/builtin/pack-objects.c:2343,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:2346,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:2350,1
    - Dst: get_size_from_delta
      Src: /src/git/builtin/pack-objects.c:2359,1
    - Dst: SET_SIZE
      Src: /src/git/builtin/pack-objects.c:2362,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:2363,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:2373,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/pack-objects.c:2376,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/builtin/pack-objects.c:2378,1
    - Dst: prefetch_to_pack
      Src: /src/git/builtin/pack-objects.c:2379,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/pack-objects.c:2380,1
    - Dst: oe_set_type
      Src: /src/git/builtin/pack-objects.c:2387,1
    - Dst: SET_SIZE
      Src: /src/git/builtin/pack-objects.c:2389,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 100
    argCount: 2
    argNames:
    - entry
    - object_index
    argTypes:
    - struct object_entry*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2237
    functionDepth: 24
    functionLinenumber: 2237
    functionLinenumberEnd: 2398
    functionName: check_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - offset_to_pack_pos
    - IN_PACK
    - SET_DELTA_CHILD
    - error
    - repo_has_promisor_remote
    - SET_DELTA_EXT
    - MSB
    - prefetch_to_pack
    - can_reuse_delta
    - unpack_object_header_buffer
    - pack_pos_to_index
    - nth_packed_object_id
    - oe_set_type
    - SET_DELTA
    - SET_DELTA_SIZE
    - use_pack
    - oe_type
    - oid_to_hex
    - get_size_from_delta
    - _
    - cast_size_t_to_ulong
    - unuse_pack
    - odb_read_object_info_extended
    - BUG
    - SET_SIZE
    - oidread
    linkageType: ''
    returnType: void
    signature: void check_object(struct object_entry *entry, uint32_t object_index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IN_PACK
      Src: /src/git/builtin/pack-objects.c:2404,1
    - Dst: IN_PACK
      Src: /src/git/builtin/pack-objects.c:2405,1
    - Dst: oidcmp
      Src: /src/git/builtin/pack-objects.c:2409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2400
    functionDepth: 1
    functionLinenumber: 2400
    functionLinenumberEnd: 2417
    functionName: pack_offset_sort
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oidcmp
    - IN_PACK
    linkageType: ''
    returnType: int
    signature: int pack_offset_sort(const void *_a, const void *_b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SET_DELTA
      Src: /src/git/builtin/pack-objects.c:2447,1
    - Dst: packed_object_info
      Src: /src/git/builtin/pack-objects.c:2452,1
    - Dst: IN_PACK
      Src: /src/git/builtin/pack-objects.c:2452,1
    - Dst: oe_set_type
      Src: /src/git/builtin/pack-objects.c:2459,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/pack-objects.c:2460,1
    - Dst: oe_set_type
      Src: /src/git/builtin/pack-objects.c:2463,1
    - Dst: SET_SIZE
      Src: /src/git/builtin/pack-objects.c:2465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2466
      start: 2432
    functionDepth: 26
    functionLinenumber: 2432
    functionLinenumberEnd: 2466
    functionName: drop_reused_delta
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - SET_DELTA
    - odb_read_object_info
    - IN_PACK
    - oe_set_type
    - SET_SIZE
    - packed_object_info
    linkageType: ''
    returnType: void
    signature: void drop_reused_delta(struct object_entry *entry)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:2489,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:2506,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:2514,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:2537,1
    - Dst: drop_reused_delta
      Src: /src/git/builtin/pack-objects.c:2538,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:2552,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:2563,1
    - Dst: drop_reused_delta
      Src: /src/git/builtin/pack-objects.c:2586,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2476
    functionDepth: 27
    functionLinenumber: 2476
    functionLinenumberEnd: 2590
    functionName: break_delta_chains
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - drop_reused_delta
    - DELTA
    - BUG
    linkageType: ''
    returnType: void
    signature: void break_delta_chains(struct object_entry *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_progress
      Src: /src/git/builtin/pack-objects.c:2598,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2599,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:2602,1
    - Dst: QSORT
      Src: /src/git/builtin/pack-objects.c:2605,1
    - Dst: check_object
      Src: /src/git/builtin/pack-objects.c:2609,1
    - Dst: oe_size_greater_than
      Src: /src/git/builtin/pack-objects.c:2611,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/builtin/pack-objects.c:2612,1
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:2614,1
    - Dst: stop_progress
      Src: /src/git/builtin/pack-objects.c:2616,1
    - Dst: break_delta_chains
      Src: /src/git/builtin/pack-objects.c:2623,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:2625,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2592
    functionDepth: 28
    functionLinenumber: 2592
    functionLinenumberEnd: 2626
    functionName: get_object_details
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - break_delta_chains
    - stop_progress
    - oe_size_greater_than
    - repo_settings_get_big_file_threshold
    - check_object
    - QSORT
    - display_progress
    - CALLOC_ARRAY
    - free
    - start_progress
    - _
    linkageType: ''
    returnType: void
    signature: void get_object_details(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:2641,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:2642,1
    - Dst: SIZE
      Src: /src/git/builtin/pack-objects.c:2643,1
    - Dst: SIZE
      Src: /src/git/builtin/pack-objects.c:2644,1
    - Dst: island_delta_cmp
      Src: /src/git/builtin/pack-objects.c:2659,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2637
    functionDepth: 2
    functionLinenumber: 2637
    functionLinenumberEnd: 2668
    functionName: type_size_sort
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - SIZE
    - island_delta_cmp
    - oe_type
    linkageType: ''
    returnType: int
    signature: int type_size_sort(const void *_a, const void *_b)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - src_size
    - trg_size
    - delta_size
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2677
    functionDepth: 0
    functionLinenumber: 2677
    functionLinenumberEnd: 2691
    functionName: delta_cacheable
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int delta_cacheable(unsigned long src_size, unsigned long trg_size,\n\t\t\t
      \  unsigned long delta_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2695
    functionDepth: 0
    functionLinenumber: 2695
    functionLinenumberEnd: 2696
    functionName: cache_lock
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cache_lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2697
      start: 2696
    functionDepth: 0
    functionLinenumber: 2696
    functionLinenumberEnd: 2697
    functionName: cache_unlock
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cache_unlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2703
    functionDepth: 0
    functionLinenumber: 2703
    functionLinenumberEnd: 2704
    functionName: progress_lock
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: progress_lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2704
    functionDepth: 0
    functionLinenumber: 2704
    functionLinenumberEnd: 2705
    functionName: progress_unlock
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: progress_unlock()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oe_get_size_slow
      Src: /src/git/builtin/pack-objects.c:2721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pack
    - lhs
    - rhs
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2713
    functionDepth: 1
    functionLinenumber: 2713
    functionLinenumberEnd: 2722
    functionName: oe_size_less_than
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oe_get_size_slow
    linkageType: ''
    returnType: int
    signature: "int oe_size_less_than(struct packing_data *pack,\n\t\t\t\t    const
      struct object_entry *lhs,\n\t\t\t\t    unsigned long rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:2729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pack
    - e
    - tree_depth
    argTypes:
    - struct packing_data*
    - struct object_entry*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2731
      start: 2724
    functionDepth: 1
    functionLinenumber: 2724
    functionLinenumberEnd: 2731
    functionName: oe_set_tree_depth
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void oe_set_tree_depth(struct packing_data *pack,\n\t\t\t\t     struct
      object_entry *e,\n\t\t\t\t     unsigned int tree_depth)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: packing_data_lock
      Src: /src/git/builtin/pack-objects.c:2750,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/pack-objects.c:2751,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:2753,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2753,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:2754,1
    - Dst: packing_data_unlock
      Src: /src/git/builtin/pack-objects.c:2755,1
    - Dst: oe_in_pack
      Src: /src/git/builtin/pack-objects.c:2759,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:2761,1
    - Dst: packing_data_lock
      Src: /src/git/builtin/pack-objects.c:2763,1
    - Dst: use_pack
      Src: /src/git/builtin/pack-objects.c:2765,1
    - Dst: unpack_object_header_buffer
      Src: /src/git/builtin/pack-objects.c:2766,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:2768,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2768,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:2769,1
    - Dst: unuse_pack
      Src: /src/git/builtin/pack-objects.c:2771,1
    - Dst: packing_data_unlock
      Src: /src/git/builtin/pack-objects.c:2772,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/builtin/pack-objects.c:2773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pack
    - e
    argTypes:
    - struct packing_data*
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2738
    functionDepth: 22
    functionLinenumber: 2738
    functionLinenumberEnd: 2774
    functionName: oe_get_size_slow
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 4
    functionsReached:
    - oid_to_hex
    - die
    - use_pack
    - unpack_object_header_buffer
    - odb_read_object_info
    - oe_in_pack
    - unuse_pack
    - cast_size_t_to_ulong
    - _
    - packing_data_lock
    - BUG
    - packing_data_unlock
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long oe_get_size_slow(struct packing_data *pack,\n\t\t\t
      \      const struct object_entry *e)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:2787,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:2787,1
    - Dst: IN_PACK
      Src: /src/git/builtin/pack-objects.c:2798,1
    - Dst: IN_PACK
      Src: /src/git/builtin/pack-objects.c:2799,1
    - Dst: IN_PACK
      Src: /src/git/builtin/pack-objects.c:2799,1
    - Dst: SIZE
      Src: /src/git/builtin/pack-objects.c:2810,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:2811,1
    - Dst: DELTA_SIZE
      Src: /src/git/builtin/pack-objects.c:2815,1
    - Dst: SIZE
      Src: /src/git/builtin/pack-objects.c:2822,1
    - Dst: in_same_island
      Src: /src/git/builtin/pack-objects.c:2829,1
    - Dst: packing_data_lock
      Src: /src/git/builtin/pack-objects.c:2834,1
    - Dst: odb_read_object
      Src: /src/git/builtin/pack-objects.c:2835,1
    - Dst: packing_data_unlock
      Src: /src/git/builtin/pack-objects.c:2838,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:2840,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2840,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:2841,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:2843,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2843,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:2844,1
    - Dst: packing_data_lock
      Src: /src/git/builtin/pack-objects.c:2849,1
    - Dst: odb_read_object
      Src: /src/git/builtin/pack-objects.c:2850,1
    - Dst: packing_data_unlock
      Src: /src/git/builtin/pack-objects.c:2853,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:2858,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2858,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:2859,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:2868,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2868,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:2869,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:2872,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2872,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:2873,1
    - Dst: create_delta_index
      Src: /src/git/builtin/pack-objects.c:2878,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:2882,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:2882,1
    - Dst: sizeof_delta_index
      Src: /src/git/builtin/pack-objects.c:2885,1
    - Dst: create_delta
      Src: /src/git/builtin/pack-objects.c:2888,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:2892,1
    - Dst: DELTA_SIZE
      Src: /src/git/builtin/pack-objects.c:2894,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:2896,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:2906,1
    - Dst: cache_lock
      Src: /src/git/builtin/pack-objects.c:2907,1
    - Dst: DELTA_SIZE
      Src: /src/git/builtin/pack-objects.c:2909,1
    - Dst: delta_cacheable
      Src: /src/git/builtin/pack-objects.c:2912,1
    - Dst: cache_unlock
      Src: /src/git/builtin/pack-objects.c:2914,1
    - Dst: xrealloc
      Src: /src/git/builtin/pack-objects.c:2915,1
    - Dst: cache_unlock
      Src: /src/git/builtin/pack-objects.c:2917,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:2918,1
    - Dst: SET_DELTA
      Src: /src/git/builtin/pack-objects.c:2921,1
    - Dst: SET_DELTA_SIZE
      Src: /src/git/builtin/pack-objects.c:2922,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 88
    argCount: 4
    argNames:
    - trg
    - src
    - max_depth
    - mem_usage
    argTypes:
    - struct unpacked*
    - struct unpacked*
    - unsigned
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2776
    functionDepth: 12
    functionLinenumber: 2776
    functionLinenumberEnd: 2926
    functionName: try_delta
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 1
    functionsReached:
    - cache_unlock
    - IN_PACK
    - free
    - die
    - odb_read_object
    - packing_data_lock
    - delta_cacheable
    - SET_DELTA
    - SET_DELTA_SIZE
    - oid_to_hex
    - oe_type
    - create_delta_index
    - xrealloc
    - _
    - warning
    - in_same_island
    - cache_lock
    - SIZE
    - DELTA_SIZE
    - DELTA
    - sizeof_delta_index
    - create_delta
    - packing_data_unlock
    linkageType: ''
    returnType: int
    signature: "int try_delta(struct unpacked *trg, struct unpacked *src,\n\t\t     unsigned
      max_depth, unsigned long *mem_usage)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DELTA_CHILD
      Src: /src/git/builtin/pack-objects.c:2930,1
    - Dst: check_delta_limit
      Src: /src/git/builtin/pack-objects.c:2933,1
    - Dst: DELTA_SIBLING
      Src: /src/git/builtin/pack-objects.c:2936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - me
    - n
    argTypes:
    - struct object_entry*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2939
      start: 2928
    functionDepth: 1
    functionLinenumber: 2928
    functionLinenumberEnd: 2939
    functionName: check_delta_limit
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 1
    functionsReached:
    - check_delta_limit
    - DELTA_SIBLING
    - DELTA_CHILD
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int check_delta_limit(struct object_entry *me, unsigned int
      n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_delta_index
      Src: /src/git/builtin/pack-objects.c:2943,1
    - Dst: free_delta_index
      Src: /src/git/builtin/pack-objects.c:2944,1
    - Dst: SIZE
      Src: /src/git/builtin/pack-objects.c:2947,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/pack-objects.c:2948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct unpacked*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2941
    functionDepth: 2
    functionLinenumber: 2941
    functionLinenumberEnd: 2953
    functionName: free_unpacked
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - sizeof_delta_index
    - FREE_AND_NULL
    - SIZE
    - free_delta_index
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long free_unpacked(struct unpacked *n)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:2962,1
    - Dst: progress_lock
      Src: /src/git/builtin/pack-objects.c:2969,1
    - Dst: progress_unlock
      Src: /src/git/builtin/pack-objects.c:2971,1
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:2978,1
    - Dst: progress_unlock
      Src: /src/git/builtin/pack-objects.c:2980,1
    - Dst: free_unpacked
      Src: /src/git/builtin/pack-objects.c:2982,1
    - Dst: free_unpacked
      Src: /src/git/builtin/pack-objects.c:2989,1
    - Dst: DELTA_CHILD
      Src: /src/git/builtin/pack-objects.c:3005,1
    - Dst: check_delta_limit
      Src: /src/git/builtin/pack-objects.c:3006,1
    - Dst: try_delta
      Src: /src/git/builtin/pack-objects.c:3021,1
    - Dst: do_compress
      Src: /src/git/builtin/pack-objects.c:3045,1
    - Dst: DELTA_SIZE
      Src: /src/git/builtin/pack-objects.c:3045,1
    - Dst: cache_lock
      Src: /src/git/builtin/pack-objects.c:3048,1
    - Dst: DELTA_SIZE
      Src: /src/git/builtin/pack-objects.c:3049,1
    - Dst: cache_unlock
      Src: /src/git/builtin/pack-objects.c:3051,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/pack-objects.c:3053,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:3062,1
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:3070,1
    - Dst: free_delta_index
      Src: /src/git/builtin/pack-objects.c:3091,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:3092,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:3094,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 79
    argCount: 5
    argNames:
    - list
    - list_size
    - window
    - depth
    - processed
    argTypes:
    - struct object_entry**
    - unsigned*
    - int
    - int
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 2955
    functionDepth: 13
    functionLinenumber: 2955
    functionLinenumberEnd: 3095
    functionName: find_deltas
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - try_delta
    - progress_lock
    - cache_lock
    - free_delta_index
    - cache_unlock
    - check_delta_limit
    - DELTA_SIZE
    - do_compress
    - DELTA
    - free_unpacked
    - display_progress
    - FREE_AND_NULL
    - CALLOC_ARRAY
    - free
    - DELTA_CHILD
    - progress_unlock
    linkageType: ''
    returnType: void
    signature: "void find_deltas(struct object_entry **list, unsigned *list_size,\n\t\t\tint
      window, int depth, unsigned *processed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/git/builtin/pack-objects.c:3135,1
    - Dst: pthread_mutex_init
      Src: /src/git/builtin/pack-objects.c:3136,1
    - Dst: pthread_cond_init
      Src: /src/git/builtin/pack-objects.c:3137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3138
      start: 3133
    functionDepth: 0
    functionLinenumber: 3133
    functionLinenumberEnd: 3138
    functionName: init_threaded_search
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_init
    - pthread_cond_init
    linkageType: ''
    returnType: void
    signature: void init_threaded_search(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_destroy
      Src: /src/git/builtin/pack-objects.c:3142,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/pack-objects.c:3143,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/pack-objects.c:3144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3145
      start: 3140
    functionDepth: 1
    functionLinenumber: 3140
    functionLinenumberEnd: 3145
    functionName: cleanup_threaded_search
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - pthread_cond_destroy
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void cleanup_threaded_search(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: progress_lock
      Src: /src/git/builtin/pack-objects.c:3151,1
    - Dst: progress_unlock
      Src: /src/git/builtin/pack-objects.c:3153,1
    - Dst: find_deltas
      Src: /src/git/builtin/pack-objects.c:3155,1
    - Dst: progress_lock
      Src: /src/git/builtin/pack-objects.c:3158,1
    - Dst: pthread_cond_signal
      Src: /src/git/builtin/pack-objects.c:3160,1
    - Dst: progress_unlock
      Src: /src/git/builtin/pack-objects.c:3161,1
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/pack-objects.c:3171,1
    - Dst: pthread_cond_wait
      Src: /src/git/builtin/pack-objects.c:3173,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/pack-objects.c:3175,1
    - Dst: progress_lock
      Src: /src/git/builtin/pack-objects.c:3177,1
    - Dst: progress_unlock
      Src: /src/git/builtin/pack-objects.c:3179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3182
      start: 3147
    functionDepth: 14
    functionLinenumber: 3147
    functionLinenumberEnd: 3182
    functionName: threaded_find_deltas
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - progress_lock
    - pthread_mutex_lock
    - find_deltas
    - pthread_cond_signal
    - pthread_mutex_unlock
    - pthread_cond_wait
    - progress_unlock
    linkageType: ''
    returnType: void
    signature: void *threaded_find_deltas(void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: init_threaded_search
      Src: /src/git/builtin/pack-objects.c:3190,1
    - Dst: find_deltas
      Src: /src/git/builtin/pack-objects.c:3193,1
    - Dst: cleanup_threaded_search
      Src: /src/git/builtin/pack-objects.c:3194,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pack-objects.c:3198,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3198,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:3200,1
    - Dst: pthread_mutex_init
      Src: /src/git/builtin/pack-objects.c:3234,1
    - Dst: pthread_cond_init
      Src: /src/git/builtin/pack-objects.c:3235,1
    - Dst: pthread_create
      Src: /src/git/builtin/pack-objects.c:3236,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3239,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3239,1
    - Dst: strerror
      Src: /src/git/builtin/pack-objects.c:3239,1
    - Dst: progress_lock
      Src: /src/git/builtin/pack-objects.c:3256,1
    - Dst: pthread_cond_wait
      Src: /src/git/builtin/pack-objects.c:3263,1
    - Dst: progress_unlock
      Src: /src/git/builtin/pack-objects.c:3295,1
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/pack-objects.c:3297,1
    - Dst: pthread_cond_signal
      Src: /src/git/builtin/pack-objects.c:3299,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/pack-objects.c:3300,1
    - Dst: pthread_join
      Src: /src/git/builtin/pack-objects.c:3303,1
    - Dst: pthread_cond_destroy
      Src: /src/git/builtin/pack-objects.c:3304,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/pack-objects.c:3305,1
    - Dst: cleanup_threaded_search
      Src: /src/git/builtin/pack-objects.c:3309,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:3310,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 81
    argCount: 5
    argNames:
    - list
    - list_size
    - window
    - depth
    - processed
    argTypes:
    - struct object_entry**
    - unsigned
    - int
    - int
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3184
    functionDepth: 14
    functionLinenumber: 3184
    functionLinenumberEnd: 3311
    functionName: ll_find_deltas
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_init
    - pthread_cond_init
    - find_deltas
    - pthread_mutex_unlock
    - CALLOC_ARRAY
    - free
    - die
    - pthread_mutex_lock
    - cleanup_threaded_search
    - strerror
    - pthread_mutex_destroy
    - progress_lock
    - fprintf_ln
    - pthread_create
    - _
    - pthread_cond_wait
    - progress_unlock
    - pthread_cond_destroy
    - pthread_cond_signal
    - init_threaded_search
    - pthread_join
    linkageType: ''
    returnType: void
    signature: "void ll_find_deltas(struct object_entry **list, unsigned list_size,\n\t\t\t
      \  int window, int depth, unsigned *processed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packlist_find
      Src: /src/git/builtin/pack-objects.c:3315,1
    - Dst: bitmap_walk_contains
      Src: /src/git/builtin/pack-objects.c:3317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3318
      start: 3313
    functionDepth: 9
    functionLinenumber: 3313
    functionLinenumberEnd: 3318
    functionName: obj_is_packed
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - bitmap_walk_contains
    - packlist_find
    linkageType: ''
    returnType: int
    signature: int obj_is_packed(const struct object_id *oid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_is_packed
      Src: /src/git/builtin/pack-objects.c:3331,1
    - Dst: lookup_tag
      Src: /src/git/builtin/pack-objects.c:3334,1
    - Dst: parse_tag
      Src: /src/git/builtin/pack-objects.c:3336,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3337,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3337,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:3338,1
    - Dst: add_object_entry
      Src: /src/git/builtin/pack-objects.c:3340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3347
      start: 3320
    functionDepth: 21
    functionLinenumber: 3320
    functionLinenumberEnd: 3347
    functionName: add_tag_chain
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - lookup_tag
    - add_object_entry
    - parse_tag
    - obj_is_packed
    - _
    linkageType: ''
    returnType: void
    signature: void add_tag_chain(const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reference_get_peeled_oid
      Src: /src/git/builtin/pack-objects.c:3353,1
    - Dst: obj_is_packed
      Src: /src/git/builtin/pack-objects.c:3354,1
    - Dst: add_tag_chain
      Src: /src/git/builtin/pack-objects.c:3355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3349
    functionDepth: 22
    functionLinenumber: 3349
    functionLinenumberEnd: 3357
    functionName: add_ref_tag
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - add_tag_chain
    - reference_get_peeled_oid
    - obj_is_packed
    linkageType: ''
    returnType: int
    signature: int add_ref_tag(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DELTA
      Src: /src/git/builtin/pack-objects.c:3361,1
    - Dst: oe_size_less_than
      Src: /src/git/builtin/pack-objects.c:3368,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:3375,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3376,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3376,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:3377,1
    - Dst: oe_type
      Src: /src/git/builtin/pack-objects.c:3378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3387
      start: 3359
    functionDepth: 3
    functionLinenumber: 3359
    functionLinenumberEnd: 3387
    functionName: should_attempt_deltas
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - oe_type
    - oe_size_less_than
    - DELTA
    - _
    linkageType: ''
    returnType: int
    signature: int should_attempt_deltas(struct object_entry *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:3396,1
    - Dst: should_attempt_deltas
      Src: /src/git/builtin/pack-objects.c:3399,1
    - Dst: QSORT
      Src: /src/git/builtin/pack-objects.c:3403,1
    - Dst: find_deltas
      Src: /src/git/builtin/pack-objects.c:3404,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:3405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - list
    - region
    - processed
    argTypes:
    - struct object_entry*
    - struct packing_region*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3406
      start: 3389
    functionDepth: 14
    functionLinenumber: 3389
    functionLinenumberEnd: 3406
    functionName: find_deltas_for_region
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - find_deltas
    - ALLOC_ARRAY
    - should_attempt_deltas
    - QSORT
    - free
    linkageType: ''
    returnType: void
    signature: "void find_deltas_for_region(struct object_entry *list,\n\t\t\t\t   struct
      packing_region *region,\n\t\t\t\t   unsigned int *processed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_progress
      Src: /src/git/builtin/pack-objects.c:3421,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3422,1
    - Dst: find_deltas_for_region
      Src: /src/git/builtin/pack-objects.c:3426,1
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:3430,1
    - Dst: stop_progress
      Src: /src/git/builtin/pack-objects.c:3431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - list
    - regions
    - start
    - nr
    argTypes:
    - struct object_entry*
    - struct packing_region*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3432
      start: 3408
    functionDepth: 15
    functionLinenumber: 3408
    functionLinenumberEnd: 3432
    functionName: find_deltas_by_region
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - find_deltas_for_region
    - display_progress
    - _
    - start_progress
    linkageType: ''
    returnType: void
    signature: "void find_deltas_by_region(struct object_entry *list,\n\t\t\t\t  struct
      packing_region *regions,\n\t\t\t\t  size_t start, size_t nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: progress_lock
      Src: /src/git/builtin/pack-objects.c:3438,1
    - Dst: progress_unlock
      Src: /src/git/builtin/pack-objects.c:3441,1
    - Dst: find_deltas_for_region
      Src: /src/git/builtin/pack-objects.c:3442,1
    - Dst: progress_lock
      Src: /src/git/builtin/pack-objects.c:3445,1
    - Dst: pthread_cond_signal
      Src: /src/git/builtin/pack-objects.c:3451,1
    - Dst: progress_unlock
      Src: /src/git/builtin/pack-objects.c:3452,1
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/pack-objects.c:3462,1
    - Dst: pthread_cond_wait
      Src: /src/git/builtin/pack-objects.c:3464,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/pack-objects.c:3466,1
    - Dst: progress_lock
      Src: /src/git/builtin/pack-objects.c:3468,1
    - Dst: progress_unlock
      Src: /src/git/builtin/pack-objects.c:3470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3473
      start: 3434
    functionDepth: 15
    functionLinenumber: 3434
    functionLinenumberEnd: 3473
    functionName: threaded_find_deltas_by_path
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - progress_lock
    - pthread_mutex_lock
    - find_deltas_for_region
    - pthread_cond_signal
    - pthread_mutex_unlock
    - pthread_cond_wait
    - progress_unlock
    linkageType: ''
    returnType: void
    signature: void *threaded_find_deltas_by_path(void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: init_threaded_search
      Src: /src/git/builtin/pack-objects.c:3483,1
    - Dst: find_deltas_by_region
      Src: /src/git/builtin/pack-objects.c:3490,1
    - Dst: cleanup_threaded_search
      Src: /src/git/builtin/pack-objects.c:3491,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pack-objects.c:3496,1
    - Dst: Q_
      Src: /src/git/builtin/pack-objects.c:3497,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:3501,1
    - Dst: start_progress
      Src: /src/git/builtin/pack-objects.c:3504,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3505,1
    - Dst: pthread_mutex_init
      Src: /src/git/builtin/pack-objects.c:3529,1
    - Dst: pthread_cond_init
      Src: /src/git/builtin/pack-objects.c:3530,1
    - Dst: pthread_create
      Src: /src/git/builtin/pack-objects.c:3531,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3534,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3534,1
    - Dst: strerror
      Src: /src/git/builtin/pack-objects.c:3534,1
    - Dst: progress_lock
      Src: /src/git/builtin/pack-objects.c:3551,1
    - Dst: pthread_cond_wait
      Src: /src/git/builtin/pack-objects.c:3558,1
    - Dst: progress_unlock
      Src: /src/git/builtin/pack-objects.c:3574,1
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/pack-objects.c:3576,1
    - Dst: pthread_cond_signal
      Src: /src/git/builtin/pack-objects.c:3578,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/pack-objects.c:3579,1
    - Dst: pthread_join
      Src: /src/git/builtin/pack-objects.c:3582,1
    - Dst: pthread_cond_destroy
      Src: /src/git/builtin/pack-objects.c:3583,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/pack-objects.c:3584,1
    - Dst: cleanup_threaded_search
      Src: /src/git/builtin/pack-objects.c:3588,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:3589,1
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:3591,1
    - Dst: stop_progress
      Src: /src/git/builtin/pack-objects.c:3592,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 4
    argNames:
    - list
    - regions
    - start
    - nr
    argTypes:
    - struct object_entry*
    - struct packing_region*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3593
      start: 3475
    functionDepth: 16
    functionLinenumber: 3475
    functionLinenumberEnd: 3593
    functionName: ll_find_deltas_by_region
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_init
    - stop_progress
    - pthread_cond_init
    - pthread_mutex_unlock
    - CALLOC_ARRAY
    - free
    - die
    - pthread_mutex_lock
    - cleanup_threaded_search
    - strerror
    - pthread_mutex_destroy
    - find_deltas_by_region
    - Q_
    - progress_lock
    - fprintf_ln
    - pthread_create
    - _
    - pthread_cond_wait
    - progress_unlock
    - pthread_cond_destroy
    - pthread_cond_signal
    - display_progress
    - init_threaded_search
    - pthread_join
    - start_progress
    linkageType: ''
    returnType: void
    signature: "void ll_find_deltas_by_region(struct object_entry *list,\n\t\t\t\t
      \    struct packing_region *regions,\n\t\t\t\t     uint32_t start, uint32_t
      nr)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: resolve_tree_islands
      Src: /src/git/builtin/pack-objects.c:3602,1
    - Dst: get_object_details
      Src: /src/git/builtin/pack-objects.c:3604,1
    - Dst: ll_find_deltas_by_region
      Src: /src/git/builtin/pack-objects.c:3620,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:3623,1
    - Dst: should_attempt_deltas
      Src: /src/git/builtin/pack-objects.c:3629,1
    - Dst: start_progress
      Src: /src/git/builtin/pack-objects.c:3642,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3643,1
    - Dst: QSORT
      Src: /src/git/builtin/pack-objects.c:3645,1
    - Dst: ll_find_deltas
      Src: /src/git/builtin/pack-objects.c:3646,1
    - Dst: stop_progress
      Src: /src/git/builtin/pack-objects.c:3647,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3649,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3649,1
    - Dst: free
      Src: /src/git/builtin/pack-objects.c:3651,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - window
    - depth
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3652
      start: 3595
    functionDepth: 29
    functionLinenumber: 3595
    functionLinenumberEnd: 3652
    functionName: prepare_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - die
    - get_object_details
    - ALLOC_ARRAY
    - resolve_tree_islands
    - should_attempt_deltas
    - ll_find_deltas_by_region
    - QSORT
    - _
    - free
    - ll_find_deltas
    - start_progress
    linkageType: ''
    returnType: void
    signature: void prepare_pack(int window, int depth)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3657,1
    - Dst: git_config_int
      Src: /src/git/builtin/pack-objects.c:3658,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3661,1
    - Dst: git_config_ulong
      Src: /src/git/builtin/pack-objects.c:3662,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3665,1
    - Dst: git_config_int
      Src: /src/git/builtin/pack-objects.c:3666,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3669,1
    - Dst: git_config_int
      Src: /src/git/builtin/pack-objects.c:3670,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3673,1
    - Dst: git_config_int
      Src: /src/git/builtin/pack-objects.c:3674,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3677,1
    - Dst: git_config_bool
      Src: /src/git/builtin/pack-objects.c:3678,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3684,1
    - Dst: git_config_bool
      Src: /src/git/builtin/pack-objects.c:3685,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3691,1
    - Dst: git_config_bool
      Src: /src/git/builtin/pack-objects.c:3692,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3695,1
    - Dst: git_parse_maybe_bool_text
      Src: /src/git/builtin/pack-objects.c:3696,1
    - Dst: strcasecmp
      Src: /src/git/builtin/pack-objects.c:3698,1
    - Dst: strcasecmp
      Src: /src/git/builtin/pack-objects.c:3700,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3703,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3703,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3711,1
    - Dst: git_config_int
      Src: /src/git/builtin/pack-objects.c:3712,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3714,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3714,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:3717,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3717,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3722,1
    - Dst: git_config_int
      Src: /src/git/builtin/pack-objects.c:3723,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3725,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3725,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3729,1
    - Dst: git_config_bool
      Src: /src/git/builtin/pack-objects.c:3730,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:3736,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/pack-objects.c:3746,1
    - Dst: xmalloc
      Src: /src/git/builtin/pack-objects.c:3748,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/pack-objects.c:3749,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/pack-objects.c:3751,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3753,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3753,1
    - Dst: oidmap_get
      Src: /src/git/builtin/pack-objects.c:3755,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3756,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3756,1
    - Dst: xcalloc
      Src: /src/git/builtin/pack-objects.c:3758,1
    - Dst: memcpy
      Src: /src/git/builtin/pack-objects.c:3759,1
    - Dst: xstrdup
      Src: /src/git/builtin/pack-objects.c:3760,1
    - Dst: oidmap_put
      Src: /src/git/builtin/pack-objects.c:3761,1
    - Dst: git_default_config
      Src: /src/git/builtin/pack-objects.c:3763,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 86
    argCount: 4
    argNames:
    - k
    - v
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3764
      start: 3654
    functionDepth: 7
    functionLinenumber: 3654
    functionLinenumberEnd: 3764
    functionName: git_pack_config
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 1
    functionsReached:
    - git_config_int
    - oidmap_put
    - git_config_ulong
    - die
    - oidmap_get
    - strcasecmp
    - xstrdup
    - memcpy
    - xmalloc
    - parse_oid_hex
    - strcmp
    - git_default_config
    - config_error_nonbool
    - git_config_bool
    - xcalloc
    - warning
    - _
    - git_parse_maybe_bool_text
    linkageType: ''
    returnType: int
    signature: "int git_pack_config(const char *k, const char *v,\n\t\t\t   const
      struct config_context *ctx, void *cb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:3779,1
    - Dst: have_duplicate_entry
      Src: /src/git/builtin/pack-objects.c:3781,1
    - Dst: nth_packed_object_offset
      Src: /src/git/builtin/pack-objects.c:3786,1
    - Dst: packed_object_info
      Src: /src/git/builtin/pack-objects.c:3789,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3790,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3790,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:3791,1
    - Dst: add_pending_oid
      Src: /src/git/builtin/pack-objects.c:3806,1
    - Dst: want_object_in_pack
      Src: /src/git/builtin/pack-objects.c:3809,1
    - Dst: create_object_entry
      Src: /src/git/builtin/pack-objects.c:3812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - oid
    - p
    - pos
    - _data
    argTypes:
    - struct object_id*
    - struct packed_git*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3815
      start: 3770
    functionDepth: 26
    functionLinenumber: 3770
    functionLinenumberEnd: 3815
    functionName: add_object_entry_from_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - want_object_in_pack
    - add_pending_oid
    - have_duplicate_entry
    - create_object_entry
    - nth_packed_object_offset
    - display_progress
    - _
    - packed_object_info
    linkageType: ''
    returnType: int
    signature: "int add_object_entry_from_pack(const struct object_id *oid,\n\t\t\t\t
      \     struct packed_git *p,\n\t\t\t\t      uint32_t pos,\n\t\t\t\t      void
      *_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/builtin/pack-objects.c:3823,1
    - Dst: add_object_entry
      Src: /src/git/builtin/pack-objects.c:3825,1
    - Dst: packlist_find
      Src: /src/git/builtin/pack-objects.c:3827,1
    - Dst: pack_name_hash_fn
      Src: /src/git/builtin/pack-objects.c:3841,1
    - Dst: no_try_delta
      Src: /src/git/builtin/pack-objects.c:3842,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - object
    - name
    - data
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3846
      start: 3817
    functionDepth: 21
    functionLinenumber: 3817
    functionLinenumberEnd: 3846
    functionName: show_object_pack_hint
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - add_object_entry
    - pack_name_hash_fn
    - odb_has_object
    - no_try_delta
    - packlist_find
    linkageType: ''
    returnType: void
    signature: "void show_object_pack_hint(struct object *object, const char *name,\n\t\t\t\t
      \ void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: show_object_pack_hint
      Src: /src/git/builtin/pack-objects.c:3853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - commit
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3859
      start: 3848
    functionDepth: 22
    functionLinenumber: 3848
    functionLinenumberEnd: 3859
    functionName: show_commit_pack_hint
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - show_object_pack_hint
    linkageType: ''
    returnType: void
    signature: void show_commit_pack_hint(struct commit *commit, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3906
      start: 3891
    functionDepth: 0
    functionLinenumber: 3891
    functionLinenumberEnd: 3906
    functionName: pack_mtime_cmp
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pack_mtime_cmp(const void *_a, const void *_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_object_kept_pack
      Src: /src/git/builtin/pack-objects.c:3910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - UNUSED
    argTypes:
    - struct object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3912
      start: 3908
    functionDepth: 11
    functionLinenumber: 3908
    functionLinenumberEnd: 3912
    functionName: stdin_packs_include_check_obj
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - has_object_kept_pack
    linkageType: ''
    returnType: int
    signature: int stdin_packs_include_check_obj(struct object *obj, void *data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stdin_packs_include_check_obj
      Src: /src/git/builtin/pack-objects.c:3916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - commit
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3914
    functionDepth: 12
    functionLinenumber: 3914
    functionLinenumberEnd: 3917
    functionName: stdin_packs_include_check
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - stdin_packs_include_check_obj
    linkageType: ''
    returnType: int
    signature: int stdin_packs_include_check(struct commit *commit, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strmap_for_each_entry
      Src: /src/git/builtin/pack-objects.c:3927,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:3930,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:3930,1
    - Dst: string_list_append
      Src: /src/git/builtin/pack-objects.c:3932,1
    - Dst: QSORT
      Src: /src/git/builtin/pack-objects.c:3940,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/pack-objects.c:3942,1
    - Dst: for_each_object_in_pack
      Src: /src/git/builtin/pack-objects.c:3958,1
    - Dst: string_list_clear
      Src: /src/git/builtin/pack-objects.c:3964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - packs
    - revs
    argTypes:
    - struct strmap*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3965
      start: 3919
    functionDepth: 12
    functionLinenumber: 3919
    functionLinenumberEnd: 3965
    functionName: stdin_packs_add_pack_entries
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - die
    - strmap_for_each_entry
    - for_each_object_in_pack
    - QSORT
    - string_list_append
    - _
    linkageType: ''
    returnType: void
    signature: "void stdin_packs_add_pack_entries(struct strmap *packs,\n\t\t\t\t\t
      struct rev_info *revs)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline
      Src: /src/git/builtin/pack-objects.c:3974,1
    - Dst: strmap_get
      Src: /src/git/builtin/pack-objects.c:3989,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/pack-objects.c:3991,1
    - Dst: strmap_put
      Src: /src/git/builtin/pack-objects.c:3992,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/pack-objects.c:3997,1
    - Dst: strmap_get
      Src: /src/git/builtin/pack-objects.c:4003,1
    - Dst: pack_basename
      Src: /src/git/builtin/pack-objects.c:4003,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4009,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4009,1
    - Dst: is_pack_valid
      Src: /src/git/builtin/pack-objects.c:4017,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4018,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4018,1
    - Dst: stdin_packs_add_pack_entries
      Src: /src/git/builtin/pack-objects.c:4048,1
    - Dst: strbuf_release
      Src: /src/git/builtin/pack-objects.c:4050,1
    - Dst: strmap_clear
      Src: /src/git/builtin/pack-objects.c:4051,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - revs
    - mode
    argTypes:
    - struct rev_info*
    - enum stdin_packs_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 3967
    functionDepth: 13
    functionLinenumber: 3967
    functionLinenumberEnd: 4052
    functionName: stdin_packs_read_input
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - strmap_clear
    - pack_basename
    - strbuf_reset
    - strmap_get
    - is_pack_valid
    - strmap_put
    - CALLOC_ARRAY
    - strbuf_getline
    - stdin_packs_add_pack_entries
    - _
    linkageType: ''
    returnType: void
    signature: "void stdin_packs_read_input(struct rev_info *revs,\n\t\t\t\t   enum
      stdin_packs_mode mode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/builtin/pack-objects.c:4003,1
    - Dst: pack_basename
      Src: /src/git/builtin/pack-objects.c:4003,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4009,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4009,1
    - Dst: is_pack_valid
      Src: /src/git/builtin/pack-objects.c:4017,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4018,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4018,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4046
      start: 4000
    functionDepth: 13
    functionLinenumber: 4000
    functionLinenumberEnd: 4046
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 6
    functionsReached:
    - die
    - pack_basename
    - strmap_get
    - is_pack_valid
    - _
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/builtin/pack-objects.c:4068,1
    - Dst: stdin_packs_read_input
      Src: /src/git/builtin/pack-objects.c:4096,1
    - Dst: add_unreachable_loose_objects
      Src: /src/git/builtin/pack-objects.c:4098,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/pack-objects.c:4100,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4101,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4101,1
    - Dst: traverse_commit_list
      Src: /src/git/builtin/pack-objects.c:4102,1
    - Dst: release_revisions
      Src: /src/git/builtin/pack-objects.c:4107,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/pack-objects.c:4109,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/pack-objects.c:4111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - mode
    - rev_list_unpacked
    argTypes:
    - enum stdin_packs_mode
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4115
      start: 4056
    functionDepth: 14
    functionLinenumber: 4056
    functionLinenumberEnd: 4115
    functionName: read_stdin_packs
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - stdin_packs_read_input
    - die
    - traverse_commit_list
    - release_revisions
    - trace2_data_intmax
    - repo_init_revisions
    - prepare_revision_walk
    - _
    - add_unreachable_loose_objects
    linkageType: ''
    returnType: void
    signature: void read_stdin_packs(enum stdin_packs_mode mode, int rev_list_unpacked)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:4123,1
    - Dst: packlist_find
      Src: /src/git/builtin/pack-objects.c:4125,1
    - Dst: pack_name_hash_fn
      Src: /src/git/builtin/pack-objects.c:4128,1
    - Dst: no_try_delta
      Src: /src/git/builtin/pack-objects.c:4129,1
    - Dst: want_object_in_pack_mtime
      Src: /src/git/builtin/pack-objects.c:4132,1
    - Dst: odb_source_loose_has_object
      Src: /src/git/builtin/pack-objects.c:4139,1
    - Dst: create_object_entry
      Src: /src/git/builtin/pack-objects.c:4159,1
    - Dst: pack_name_hash_fn
      Src: /src/git/builtin/pack-objects.c:4159,1
    - Dst: no_try_delta
      Src: /src/git/builtin/pack-objects.c:4160,1
    - Dst: oe_cruft_mtime
      Src: /src/git/builtin/pack-objects.c:4164,1
    - Dst: oe_set_cruft_mtime
      Src: /src/git/builtin/pack-objects.c:4165,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 6
    argNames:
    - oid
    - type
    - pack
    - offset
    - name
    - mtime
    argTypes:
    - struct object_id*
    - enum object_type
    - struct packed_git*
    - off_t
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4167
      start: 4117
    functionDepth: 20
    functionLinenumber: 4117
    functionLinenumberEnd: 4167
    functionName: add_cruft_object_entry
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oe_set_cruft_mtime
    - odb_source_loose_has_object
    - pack_name_hash_fn
    - create_object_entry
    - want_object_in_pack_mtime
    - no_try_delta
    - oe_cruft_mtime
    - display_progress
    - packlist_find
    linkageType: ''
    returnType: void
    signature: "void add_cruft_object_entry(const struct object_id *oid, enum object_type
      type,\n\t\t\t\t   struct packed_git *pack, off_t offset,\n\t\t\t\t   const char
      *name, uint32_t mtime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_cruft_object_entry
      Src: /src/git/builtin/pack-objects.c:4181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - UNUSED
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4169
    functionDepth: 21
    functionLinenumber: 4169
    functionLinenumberEnd: 4182
    functionName: show_cruft_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - add_cruft_object_entry
    linkageType: ''
    returnType: void
    signature: void show_cruft_object(struct object *obj, const char *name, void *data
      UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_cruft_object
      Src: /src/git/builtin/pack-objects.c:4186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - commit
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4187
      start: 4184
    functionDepth: 22
    functionLinenumber: 4184
    functionLinenumberEnd: 4187
    functionName: show_cruft_commit
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - show_cruft_object
    linkageType: ''
    returnType: void
    signature: void show_cruft_commit(struct commit *commit, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_object_kept_pack
      Src: /src/git/builtin/pack-objects.c:4191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - UNUSED
    argTypes:
    - struct object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4192
      start: 4189
    functionDepth: 11
    functionLinenumber: 4189
    functionLinenumberEnd: 4192
    functionName: cruft_include_check_obj
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - has_object_kept_pack
    linkageType: ''
    returnType: int
    signature: int cruft_include_check_obj(struct object *obj, void *data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cruft_include_check_obj
      Src: /src/git/builtin/pack-objects.c:4196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - commit
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4197
      start: 4194
    functionDepth: 12
    functionLinenumber: 4194
    functionLinenumberEnd: 4197
    functionName: cruft_include_check
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - cruft_include_check_obj
    linkageType: ''
    returnType: int
    signature: int cruft_include_check(struct commit *commit, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_cruft_object_entry
      Src: /src/git/builtin/pack-objects.c:4203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - object
    - pack
    - offset
    - mtime
    argTypes:
    - struct object*
    - struct packed_git*
    - off_t
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4205
      start: 4199
    functionDepth: 21
    functionLinenumber: 4199
    functionLinenumberEnd: 4205
    functionName: set_cruft_mtime
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 1
    functionsReached:
    - add_cruft_object_entry
    linkageType: ''
    returnType: void
    signature: "void set_cruft_mtime(const struct object *object,\n\t\t\t    struct
      packed_git *pack,\n\t\t\t    off_t offset, time_t mtime)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4213,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - packs
    - keep
    argTypes:
    - struct string_list*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4218
      start: 4207
    functionDepth: 0
    functionLinenumber: 4207
    functionLinenumberEnd: 4218
    functionName: mark_pack_kept_in_core
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void mark_pack_kept_in_core(struct string_list *packs, unsigned keep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4213,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4217
      start: 4210
    functionDepth: 0
    functionLinenumber: 4210
    functionLinenumberEnd: 4217
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 67
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, packs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_progress
      Src: /src/git/builtin/pack-objects.c:4225,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4226,1
    - Dst: add_objects_in_unpacked_packs
      Src: /src/git/builtin/pack-objects.c:4228,1
    - Dst: add_unreachable_loose_objects
      Src: /src/git/builtin/pack-objects.c:4229,1
    - Dst: stop_progress
      Src: /src/git/builtin/pack-objects.c:4231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4232
      start: 4222
    functionDepth: 4
    functionLinenumber: 4222
    functionLinenumberEnd: 4232
    functionName: enumerate_cruft_objects
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - _
    - add_unreachable_loose_objects
    - add_objects_in_unpacked_packs
    - start_progress
    linkageType: ''
    returnType: void
    signature: void enumerate_cruft_objects(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/builtin/pack-objects.c:4240,1
    - Dst: start_progress
      Src: /src/git/builtin/pack-objects.c:4252,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4253,1
    - Dst: add_unseen_recent_objects_to_traversal
      Src: /src/git/builtin/pack-objects.c:4254,1
    - Dst: stop_progress
      Src: /src/git/builtin/pack-objects.c:4256,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4259,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4259,1
    - Dst: repo_for_each_pack
      Src: /src/git/builtin/pack-objects.c:4265,1
    - Dst: mark_pack_kept_in_core
      Src: /src/git/builtin/pack-objects.c:4267,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/pack-objects.c:4269,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4270,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4270,1
    - Dst: start_progress
      Src: /src/git/builtin/pack-objects.c:4272,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4273,1
    - Dst: traverse_commit_list
      Src: /src/git/builtin/pack-objects.c:4275,1
    - Dst: stop_progress
      Src: /src/git/builtin/pack-objects.c:4277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - fresh_packs
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4234
    functionDepth: 11
    functionLinenumber: 4234
    functionLinenumberEnd: 4278
    functionName: enumerate_and_traverse_cruft_objects
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - die
    - mark_pack_kept_in_core
    - traverse_commit_list
    - repo_init_revisions
    - add_unseen_recent_objects_to_traversal
    - repo_for_each_pack
    - prepare_revision_walk
    - _
    - start_progress
    linkageType: ''
    returnType: void
    signature: void enumerate_and_traverse_cruft_objects(struct string_list *fresh_packs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getline
      Src: /src/git/builtin/pack-objects.c:4289,1
    - Dst: string_list_append
      Src: /src/git/builtin/pack-objects.c:4294,1
    - Dst: string_list_append
      Src: /src/git/builtin/pack-objects.c:4296,1
    - Dst: string_list_sort
      Src: /src/git/builtin/pack-objects.c:4299,1
    - Dst: string_list_sort
      Src: /src/git/builtin/pack-objects.c:4300,1
    - Dst: pack_basename
      Src: /src/git/builtin/pack-objects.c:4303,1
    - Dst: string_list_lookup
      Src: /src/git/builtin/pack-objects.c:4306,1
    - Dst: string_list_lookup
      Src: /src/git/builtin/pack-objects.c:4308,1
    - Dst: mark_pack_kept_in_core
      Src: /src/git/builtin/pack-objects.c:4326,1
    - Dst: mark_pack_kept_in_core
      Src: /src/git/builtin/pack-objects.c:4327,1
    - Dst: enumerate_and_traverse_cruft_objects
      Src: /src/git/builtin/pack-objects.c:4330,1
    - Dst: enumerate_cruft_objects
      Src: /src/git/builtin/pack-objects.c:4332,1
    - Dst: strbuf_release
      Src: /src/git/builtin/pack-objects.c:4334,1
    - Dst: string_list_clear
      Src: /src/git/builtin/pack-objects.c:4335,1
    - Dst: string_list_clear
      Src: /src/git/builtin/pack-objects.c:4336,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4337
      start: 4280
    functionDepth: 12
    functionLinenumber: 4280
    functionLinenumberEnd: 4337
    functionName: read_cruft_objects
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_lookup
    - strbuf_release
    - mark_pack_kept_in_core
    - pack_basename
    - string_list_sort
    - enumerate_cruft_objects
    - string_list_append
    - strbuf_getline
    - enumerate_and_traverse_cruft_objects
    linkageType: ''
    returnType: void
    signature: void read_cruft_objects(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pack_basename
      Src: /src/git/builtin/pack-objects.c:4303,1
    - Dst: string_list_lookup
      Src: /src/git/builtin/pack-objects.c:4306,1
    - Dst: string_list_lookup
      Src: /src/git/builtin/pack-objects.c:4308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4302
    functionDepth: 3
    functionLinenumber: 4302
    functionLinenumberEnd: 4324
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 7
    functionsReached:
    - string_list_lookup
    - pack_basename
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/git/builtin/pack-objects.c:4346,1
    - Dst: feof
      Src: /src/git/builtin/pack-objects.c:4347,1
    - Dst: ferror
      Src: /src/git/builtin/pack-objects.c:4349,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:4350,1
    - Dst: die_errno
      Src: /src/git/builtin/pack-objects.c:4352,1
    - Dst: clearerr
      Src: /src/git/builtin/pack-objects.c:4353,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/pack-objects.c:4357,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4358,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4358,1
    - Dst: add_preferred_base
      Src: /src/git/builtin/pack-objects.c:4360,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/pack-objects.c:4363,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4364,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4364,1
    - Dst: add_preferred_base_object
      Src: /src/git/builtin/pack-objects.c:4366,1
    - Dst: add_object_entry
      Src: /src/git/builtin/pack-objects.c:4367,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4369
      start: 4339
    functionDepth: 23
    functionLinenumber: 4339
    functionLinenumberEnd: 4369
    functionName: read_object_list_from_stdin
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - fgets
    - ferror
    - die
    - add_object_entry
    - feof
    - add_preferred_base
    - get_oid_hex
    - add_preferred_base_object
    - die_errno
    - clearerr
    - parse_oid_hex
    - _
    - BUG
    linkageType: ''
    returnType: void
    signature: void read_object_list_from_stdin(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_object_entry
      Src: /src/git/builtin/pack-objects.c:4373,1
    - Dst: index_commit_for_bitmap
      Src: /src/git/builtin/pack-objects.c:4376,1
    - Dst: propagate_island_marks
      Src: /src/git/builtin/pack-objects.c:4379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - commit
    - UNUSED
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4380
      start: 4371
    functionDepth: 21
    functionLinenumber: 4371
    functionLinenumberEnd: 4380
    functionName: show_commit
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 4
    functionsReached:
    - propagate_island_marks
    - index_commit_for_bitmap
    - add_object_entry
    linkageType: ''
    returnType: void
    signature: void show_commit(struct commit *commit, void *data UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_preferred_base_object
      Src: /src/git/builtin/pack-objects.c:4385,1
    - Dst: add_object_entry
      Src: /src/git/builtin/pack-objects.c:4386,1
    - Dst: strchr
      Src: /src/git/builtin/pack-objects.c:4395,1
    - Dst: strchr
      Src: /src/git/builtin/pack-objects.c:4395,1
    - Dst: packlist_find
      Src: /src/git/builtin/pack-objects.c:4398,1
    - Dst: oe_tree_depth
      Src: /src/git/builtin/pack-objects.c:4399,1
    - Dst: oe_set_tree_depth
      Src: /src/git/builtin/pack-objects.c:4400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - name
    - UNUSED
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4382
    functionDepth: 23
    functionLinenumber: 4382
    functionLinenumberEnd: 4402
    functionName: show_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 4
    functionsReached:
    - add_object_entry
    - add_preferred_base_object
    - strchr
    - packlist_find
    - oe_tree_depth
    - oe_set_tree_depth
    linkageType: ''
    returnType: void
    signature: "void show_object(struct object *obj, const char *name,\n\t\t\tvoid
      *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/pack-objects.c:4406,1
    - Dst: odb_has_object
      Src: /src/git/builtin/pack-objects.c:4412,1
    - Dst: show_object
      Src: /src/git/builtin/pack-objects.c:4415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - obj
    - name
    - data
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts:
    - condition: (arg_missing_action == MA_ALLOW_ANY)
      pos:
        line_end: 4405
        line_start: 4405
        source_file: /src/git/builtin/pack-objects.c
    constantsTouched: []
    func_position:
      end: 4416
      start: 4404
    functionDepth: 12
    functionLinenumber: 4404
    functionLinenumberEnd: 4416
    functionName: show_object__ma_allow_any
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - odb_has_object
    - assert
    - show_object
    linkageType: ''
    returnType: void
    signature: void show_object__ma_allow_any(struct object *obj, const char *name,
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/pack-objects.c:4420,1
    - Dst: odb_has_object
      Src: /src/git/builtin/pack-objects.c:4426,1
    - Dst: is_promisor_object
      Src: /src/git/builtin/pack-objects.c:4427,1
    - Dst: show_object
      Src: /src/git/builtin/pack-objects.c:4430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - obj
    - name
    - data
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts:
    - condition: (arg_missing_action == MA_ALLOW_PROMISOR)
      pos:
        line_end: 4419
        line_start: 4419
        source_file: /src/git/builtin/pack-objects.c
    constantsTouched: []
    func_position:
      end: 4431
      start: 4418
    functionDepth: 12
    functionLinenumber: 4418
    functionLinenumberEnd: 4431
    functionName: show_object__ma_allow_promisor
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - odb_has_object
    - is_promisor_object
    - assert
    - show_object
    linkageType: ''
    returnType: void
    signature: void show_object__ma_allow_promisor(struct object *obj, const char
      *name, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/pack-objects.c:4436,1
    - Dst: assert
      Src: /src/git/builtin/pack-objects.c:4437,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:4439,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:4445,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:4452,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4459,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - UNUSED
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts:
    - condition: (arg)
      pos:
        line_end: 4435
        line_start: 4435
        source_file: /src/git/builtin/pack-objects.c
    - condition: (!unset)
      pos:
        line_end: 4436
        line_start: 4436
        source_file: /src/git/builtin/pack-objects.c
    constantsTouched: []
    func_position:
      end: 4461
      start: 4433
    functionDepth: 1
    functionLinenumber: 4433
    functionLinenumberEnd: 4461
    functionName: option_parse_missing_action
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - die
    - assert
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int option_parse_missing_action(const struct option *opt UNUSED,\n\t\t\t\t
      \      const char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_preferred_base
      Src: /src/git/builtin/pack-objects.c:4465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4466
      start: 4463
    functionDepth: 14
    functionLinenumber: 4463
    functionLinenumberEnd: 4466
    functionName: show_edge
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 3
    functionsReached:
    - add_preferred_base
    linkageType: ''
    returnType: void
    signature: void show_edge(struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_cruft_object_entry
      Src: /src/git/builtin/pack-objects.c:4473,1
    - Dst: add_object_entry
      Src: /src/git/builtin/pack-objects.c:4476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - oid
    - oi
    - UNUSED
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4479
      start: 4468
    functionDepth: 21
    functionLinenumber: 4468
    functionLinenumberEnd: 4479
    functionName: add_object_in_unpacked_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - add_cruft_object_entry
    - add_object_entry
    linkageType: ''
    returnType: int
    signature: "int add_object_in_unpacked_pack(const struct object_id *oid,\n\t\t\t\t
      \      struct object_info *oi,\n\t\t\t\t       void *data UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/builtin/pack-objects.c:4495,1
    - Dst: odb_source_files_downcast
      Src: /src/git/builtin/pack-objects.c:4497,1
    - Dst: packfile_store_for_each_object
      Src: /src/git/builtin/pack-objects.c:4502,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4504,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4506
      start: 4481
    functionDepth: 30
    functionLinenumber: 4481
    functionLinenumberEnd: 4506
    functionName: add_objects_in_unpacked_packs
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 1
    functionsReached:
    - die
    - odb_source_files_downcast
    - odb_prepare_alternates
    - _
    - packfile_store_for_each_object
    linkageType: ''
    returnType: void
    signature: void add_objects_in_unpacked_packs(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/builtin/pack-objects.c:4512,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:4515,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4515,1
    - Dst: stat
      Src: /src/git/builtin/pack-objects.c:4521,1
    - Dst: error_errno
      Src: /src/git/builtin/pack-objects.c:4524,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pack-objects.c:4524,1
    - Dst: add_cruft_object_entry
      Src: /src/git/builtin/pack-objects.c:4527,1
    - Dst: add_object_entry
      Src: /src/git/builtin/pack-objects.c:4530,1
    - Dst: add_pending_oid
      Src: /src/git/builtin/pack-objects.c:4534,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - oid
    - path
    - data
    argTypes:
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4537
      start: 4508
    functionDepth: 21
    functionLinenumber: 4508
    functionLinenumberEnd: 4537
    functionName: add_loose_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - error_errno
    - oid_to_hex
    - add_object_entry
    - stat
    - add_pending_oid
    - odb_read_object_info
    - add_cruft_object_entry
    - _
    - warning
    linkageType: ''
    returnType: int
    signature: "int add_loose_object(const struct object_id *oid, const char *path,\n\t\t\t
      \   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_loose_file_in_source
      Src: /src/git/builtin/pack-objects.c:4546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4548
      start: 4544
    functionDepth: 4
    functionLinenumber: 4544
    functionLinenumberEnd: 4548
    functionName: add_unreachable_loose_objects
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 2
    functionsReached:
    - for_each_loose_file_in_source
    linkageType: ''
    returnType: void
    signature: void add_unreachable_loose_objects(struct rev_info *revs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_pack_entry_one
      Src: /src/git/builtin/pack-objects.c:4555,1
    - Dst: find_pack_entry_one
      Src: /src/git/builtin/pack-objects.c:4567,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4574
      start: 4550
    functionDepth: 11
    functionLinenumber: 4550
    functionLinenumberEnd: 4574
    functionName: has_sha1_pack_kept_or_nonlocal
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - find_pack_entry_one
    linkageType: ''
    returnType: int
    signature: int has_sha1_pack_kept_or_nonlocal(const struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_pack_entry_one
      Src: /src/git/builtin/pack-objects.c:4567,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4571
      start: 4558
    functionDepth: 11
    functionLinenumber: 4558
    functionLinenumberEnd: 4571
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 7
    functionsReached:
    - find_pack_entry_one
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_lookup
      Src: /src/git/builtin/pack-objects.c:4592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - oid
    - mtime
    argTypes:
    - struct object_id*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4595
      start: 4585
    functionDepth: 3
    functionLinenumber: 4585
    functionLinenumberEnd: 4595
    functionName: loosened_object_can_be_discarded
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oid_array_lookup
    linkageType: ''
    returnType: int
    signature: "int loosened_object_can_be_discarded(const struct object_id *oid,\n\t\t\t\t\t
      \   timestamp_t mtime)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/builtin/pack-objects.c:4608,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4609,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4609,1
    - Dst: nth_packed_object_id
      Src: /src/git/builtin/pack-objects.c:4612,1
    - Dst: packlist_find
      Src: /src/git/builtin/pack-objects.c:4613,1
    - Dst: has_sha1_pack_kept_or_nonlocal
      Src: /src/git/builtin/pack-objects.c:4614,1
    - Dst: loosened_object_can_be_discarded
      Src: /src/git/builtin/pack-objects.c:4615,1
    - Dst: force_object_loose
      Src: /src/git/builtin/pack-objects.c:4616,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4618,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4618,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/pack-objects.c:4624,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4597
    functionDepth: 12
    functionLinenumber: 4597
    functionLinenumberEnd: 4626
    functionName: loosen_unused_packed_objects
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - die
    - trace2_data_intmax
    - nth_packed_object_id
    - force_object_loose
    - has_sha1_pack_kept_or_nonlocal
    - loosened_object_can_be_discarded
    - _
    - packlist_find
    - open_pack_index
    linkageType: ''
    returnType: void
    signature: void loosen_unused_packed_objects(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/builtin/pack-objects.c:4608,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4609,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4609,1
    - Dst: nth_packed_object_id
      Src: /src/git/builtin/pack-objects.c:4612,1
    - Dst: packlist_find
      Src: /src/git/builtin/pack-objects.c:4613,1
    - Dst: has_sha1_pack_kept_or_nonlocal
      Src: /src/git/builtin/pack-objects.c:4614,1
    - Dst: loosened_object_can_be_discarded
      Src: /src/git/builtin/pack-objects.c:4615,1
    - Dst: force_object_loose
      Src: /src/git/builtin/pack-objects.c:4616,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4618,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4618,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4622
      start: 4604
    functionDepth: 12
    functionLinenumber: 4604
    functionLinenumberEnd: 4622
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 7
    functionsReached:
    - die
    - nth_packed_object_id
    - force_object_loose
    - has_sha1_pack_kept_or_nonlocal
    - loosened_object_can_be_discarded
    - _
    - packlist_find
    - open_pack_index
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4641
      start: 4633
    functionDepth: 0
    functionLinenumber: 4633
    functionLinenumberEnd: 4641
    functionName: pack_options_allow_reuse
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pack_options_allow_reuse(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_walk
      Src: /src/git/builtin/pack-objects.c:4645,1
    - Dst: pack_options_allow_reuse
      Src: /src/git/builtin/pack-objects.c:4657,1
    - Dst: reuse_partial_packfile_from_bitmap
      Src: /src/git/builtin/pack-objects.c:4658,1
    - Dst: bitmap_popcount
      Src: /src/git/builtin/pack-objects.c:4665,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:4667,1
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:4671,1
    - Dst: traverse_bitmap_commit_list
      Src: /src/git/builtin/pack-objects.c:4674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4677
      start: 4643
    functionDepth: 16
    functionLinenumber: 4643
    functionLinenumberEnd: 4677
    functionName: get_object_list_from_bitmap
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - prepare_bitmap_walk
    - reuse_partial_packfile_from_bitmap
    - pack_options_allow_reuse
    - traverse_bitmap_commit_list
    - bitmap_popcount
    - display_progress
    - BUG
    linkageType: ''
    returnType: int
    signature: int get_object_list_from_bitmap(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_append
      Src: /src/git/builtin/pack-objects.c:4683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - UNUSED
    - UNUSED
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4684
      start: 4679
    functionDepth: 3
    functionLinenumber: 4679
    functionLinenumberEnd: 4684
    functionName: record_recent_object
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oid_array_append
    linkageType: ''
    returnType: void
    signature: "void record_recent_object(struct object *obj,\n\t\t\t\t const char
      *name UNUSED,\n\t\t\t\t void *data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_append
      Src: /src/git/builtin/pack-objects.c:4688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - commit
    - UNUSED
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4689
      start: 4686
    functionDepth: 3
    functionLinenumber: 4686
    functionLinenumberEnd: 4689
    functionName: record_recent_commit
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - oid_array_append
    linkageType: ''
    returnType: void
    signature: void record_recent_commit(struct commit *commit, void *data UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reference_get_peeled_oid
      Src: /src/git/builtin/pack-objects.c:4697,1
    - Dst: parse_object_or_die
      Src: /src/git/builtin/pack-objects.c:4700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ref
    - UNUSED
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4691
    functionDepth: 2
    functionLinenumber: 4691
    functionLinenumberEnd: 4705
    functionName: mark_bitmap_preferred_tip
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - parse_object_or_die
    - reference_get_peeled_oid
    linkageType: ''
    returnType: int
    signature: int mark_bitmap_preferred_tip(const struct reference *ref, void *data
      UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/builtin/pack-objects.c:4710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - repo
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4712
      start: 4707
    functionDepth: 2
    functionLinenumber: 4707
    functionLinenumberEnd: 4712
    functionName: is_oid_uninteresting
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - lookup_object
    linkageType: ''
    returnType: int
    signature: "int is_oid_uninteresting(struct repository *repo,\n\t\t\t\t       struct
      object_id *oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/pack-objects.c:4735,1
    - Dst: is_oid_uninteresting
      Src: /src/git/builtin/pack-objects.c:4739,1
    - Dst: add_object_entry
      Src: /src/git/builtin/pack-objects.c:4744,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/pack-objects.c:4753,1
    - Dst: display_progress
      Src: /src/git/builtin/pack-objects.c:4762,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - path
    - oids
    - type
    - data
    argTypes:
    - char*
    - struct oid_array*
    - enum object_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4765
      start: 4714
    functionDepth: 21
    functionLinenumber: 4714
    functionLinenumberEnd: 4765
    functionName: add_objects_by_path
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - add_object_entry
    - is_oid_uninteresting
    - display_progress
    - ALLOC_GROW
    - odb_read_object_info_extended
    linkageType: ''
    returnType: int
    signature: "int add_objects_by_path(const char *path,\n\t\t\t       struct oid_array
      *oids,\n\t\t\t       enum object_type type,\n\t\t\t       void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace2_region_enter
      Src: /src/git/builtin/pack-objects.c:4786,1
    - Dst: walk_objects_by_path
      Src: /src/git/builtin/pack-objects.c:4787,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/pack-objects.c:4788,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4791,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4792
      start: 4767
    functionDepth: 14
    functionLinenumber: 4767
    functionLinenumberEnd: 4792
    functionName: get_object_list_path_walk
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - walk_objects_by_path
    - die
    - trace2_region_leave
    - trace2_region_enter
    - _
    linkageType: ''
    returnType: void
    signature: void get_object_list_path_walk(struct rev_info *revs)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: setup_revisions_from_strvec
      Src: /src/git/builtin/pack-objects.c:4804,1
    - Dst: is_repository_shallow
      Src: /src/git/builtin/pack-objects.c:4807,1
    - Dst: fgets
      Src: /src/git/builtin/pack-objects.c:4812,1
    - Dst: strlen
      Src: /src/git/builtin/pack-objects.c:4813,1
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:4819,1
    - Dst: starts_with
      Src: /src/git/builtin/pack-objects.c:4824,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/pack-objects.c:4826,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4827,1
    - Dst: register_shallow
      Src: /src/git/builtin/pack-objects.c:4828,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4832,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4832,1
    - Dst: handle_revision_arg
      Src: /src/git/builtin/pack-objects.c:4834,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4835,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4835,1
    - Dst: get_object_list_from_bitmap
      Src: /src/git/builtin/pack-objects.c:4840,1
    - Dst: load_delta_islands
      Src: /src/git/builtin/pack-objects.c:4844,1
    - Dst: for_each_preferred_bitmap_tip
      Src: /src/git/builtin/pack-objects.c:4847,1
    - Dst: get_object_list_path_walk
      Src: /src/git/builtin/pack-objects.c:4854,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/pack-objects.c:4856,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4857,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4857,1
    - Dst: mark_edges_uninteresting
      Src: /src/git/builtin/pack-objects.c:4858,1
    - Dst: traverse_commit_list
      Src: /src/git/builtin/pack-objects.c:4859,1
    - Dst: add_unseen_recent_objects_to_traversal
      Src: /src/git/builtin/pack-objects.c:4866,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4868,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4868,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/pack-objects.c:4869,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4870,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4870,1
    - Dst: traverse_commit_list
      Src: /src/git/builtin/pack-objects.c:4871,1
    - Dst: add_objects_in_unpacked_packs
      Src: /src/git/builtin/pack-objects.c:4876,1
    - Dst: add_unreachable_loose_objects
      Src: /src/git/builtin/pack-objects.c:4878,1
    - Dst: loosen_unused_packed_objects
      Src: /src/git/builtin/pack-objects.c:4880,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/pack-objects.c:4882,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 2
    argNames:
    - revs
    - argv
    argTypes:
    - struct rev_info*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4883
      start: 4794
    functionDepth: 31
    functionLinenumber: 4794
    functionLinenumberEnd: 4883
    functionName: get_object_list
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - fgets
    - get_object_list_path_walk
    - strcmp
    - loosen_unused_packed_objects
    - mark_edges_uninteresting
    - get_object_list_from_bitmap
    - die
    - traverse_commit_list
    - oid_array_clear
    - register_shallow
    - handle_revision_arg
    - add_unseen_recent_objects_to_traversal
    - prepare_revision_walk
    - add_objects_in_unpacked_packs
    - get_oid_hex
    - is_repository_shallow
    - _
    - load_delta_islands
    - starts_with
    - for_each_preferred_bitmap_tip
    - setup_revisions_from_strvec
    - strlen
    - add_unreachable_loose_objects
    linkageType: ''
    returnType: void
    signature: void get_object_list(struct rev_info *revs, struct strvec *argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: basename
      Src: /src/git/builtin/pack-objects.c:4893,1
    - Dst: fspathcmp
      Src: /src/git/builtin/pack-objects.c:4900,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - names
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4909
      start: 4885
    functionDepth: 0
    functionLinenumber: 4885
    functionLinenumberEnd: 4909
    functionName: add_extra_kept_packs
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - basename
    - fspathcmp
    linkageType: ''
    returnType: void
    signature: void add_extra_kept_packs(const struct string_list *names)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: basename
      Src: /src/git/builtin/pack-objects.c:4893,1
    - Dst: fspathcmp
      Src: /src/git/builtin/pack-objects.c:4900,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4892
    functionDepth: 0
    functionLinenumber: 4892
    functionLinenumberEnd: 4908
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 7
    functionsReached:
    - basename
    - fspathcmp
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/pack-objects.c:4916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4923
      start: 4911
    functionDepth: 1
    functionLinenumber: 4911
    functionLinenumberEnd: 4923
    functionName: option_parse_quiet
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int option_parse_quiet(const struct option *opt, const char *arg,\n\t\t\t
      \     int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/pack-objects.c:4932,1
    - Dst: strtoul
      Src: /src/git/builtin/pack-objects.c:4934,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4936,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4936,1
    - Dst: strtoul
      Src: /src/git/builtin/pack-objects.c:4938,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4940,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4940,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4942
      start: 4925
    functionDepth: 1
    functionLinenumber: 4925
    functionLinenumberEnd: 4942
    functionName: option_parse_index_version
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - _
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int option_parse_index_version(const struct option *opt,\n\t\t\t\t
      \     const char *arg, int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: approxidate
      Src: /src/git/builtin/pack-objects.c:4954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - UNUSED
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4957
      start: 4944
    functionDepth: 1
    functionLinenumber: 4944
    functionLinenumberEnd: 4957
    functionName: option_parse_unpack_unreachable
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - approxidate
    linkageType: ''
    returnType: int
    signature: "int option_parse_unpack_unreachable(const struct option *opt UNUSED,\n\t\t\t\t\t
      \  const char *arg, int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: approxidate
      Src: /src/git/builtin/pack-objects.c:4968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - UNUSED
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4971
      start: 4959
    functionDepth: 1
    functionLinenumber: 4959
    functionLinenumberEnd: 4971
    functionName: option_parse_cruft_expiration
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - approxidate
    linkageType: ''
    returnType: int
    signature: "int option_parse_cruft_expiration(const struct option *opt UNUSED,\n\t\t\t\t\t
      const char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/pack-objects.c:4976,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:4977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - UNUSED
    argTypes:
    - struct object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4979
      start: 4973
    functionDepth: 11
    functionLinenumber: 4973
    functionLinenumberEnd: 4979
    functionName: is_not_in_promisor_pack_obj
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info_extended
    - BUG
    linkageType: ''
    returnType: int
    signature: int is_not_in_promisor_pack_obj(struct object *obj, void *data UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_not_in_promisor_pack_obj
      Src: /src/git/builtin/pack-objects.c:4982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - commit
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4983
      start: 4981
    functionDepth: 12
    functionLinenumber: 4981
    functionLinenumberEnd: 4983
    functionName: is_not_in_promisor_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - is_not_in_promisor_pack_obj
    linkageType: ''
    returnType: int
    signature: int is_not_in_promisor_pack(struct commit *commit, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/pack-objects.c:4994,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:4997,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:4997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5000
      start: 4985
    functionDepth: 0
    functionLinenumber: 4985
    functionLinenumberEnd: 5000
    functionName: parse_stdin_packs_mode
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int parse_stdin_packs_mode(const struct option *opt, const char *arg,\n\t\t\t\t
      \ int unset)"
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/pack-objects.c:5018,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5019,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/pack-objects.c:5021,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5022,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/pack-objects.c:5023,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5024,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5025,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5027,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/pack-objects.c:5028,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5028,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5029,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/pack-objects.c:5031,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5032,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5033,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5034,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5035,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5036,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/pack-objects.c:5037,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5038,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/pack-objects.c:5039,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5040,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/pack-objects.c:5041,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5042,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5043,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5044,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5045,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5046,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5047,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5048,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/pack-objects.c:5049,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5050,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5051,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5052,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5053,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5054,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/pack-objects.c:5055,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5056,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/pack-objects.c:5058,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5059,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/pack-objects.c:5061,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5062,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/pack-objects.c:5064,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5065,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/pack-objects.c:5067,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5067,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5068,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5070,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5071,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5072,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5073,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5074,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5075,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5076,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5077,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/pack-objects.c:5078,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5078,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5079,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5081,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5081,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/pack-objects.c:5082,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5082,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5083,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5085,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5086,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5087,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5088,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5089,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5090,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5091,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5092,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5093,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5094,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/pack-objects.c:5095,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5095,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5096,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/pack-objects.c:5097,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5098,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5099,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5100,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5101,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5102,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/pack-objects.c:5103,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5104,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/pack-objects.c:5106,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5108,1
    - Dst: OPT_PARSE_LIST_OBJECTS_FILTER
      Src: /src/git/builtin/pack-objects.c:5110,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/pack-objects.c:5111,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5111,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5112,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5114,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5115,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5116,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5118,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pack-objects.c:5119,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5120,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/pack-objects.c:5121,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5122,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5123,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/pack-objects.c:5124,1
    - Dst: N_
      Src: /src/git/builtin/pack-objects.c:5125,1
    - Dst: OPT_END
      Src: /src/git/builtin/pack-objects.c:5126,1
    - Dst: BUG
      Src: /src/git/builtin/pack-objects.c:5130,1
    - Dst: disable_replace_refs
      Src: /src/git/builtin/pack-objects.c:5132,1
    - Dst: git_env_bool
      Src: /src/git/builtin/pack-objects.c:5134,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/pack-objects.c:5136,1
    - Dst: reset_pack_idx_option
      Src: /src/git/builtin/pack-objects.c:5143,1
    - Dst: repo_config
      Src: /src/git/builtin/pack-objects.c:5145,1
    - Dst: git_env_bool
      Src: /src/git/builtin/pack-objects.c:5146,1
    - Dst: isatty
      Src: /src/git/builtin/pack-objects.c:5149,1
    - Dst: parse_options
      Src: /src/git/builtin/pack-objects.c:5150,1
    - Dst: usage_with_options
      Src: /src/git/builtin/pack-objects.c:5158,1
    - Dst: git_env_bool
      Src: /src/git/builtin/pack-objects.c:5168,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:5174,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5174,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:5179,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5179,1
    - Dst: strvec_push
      Src: /src/git/builtin/pack-objects.c:5186,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:5196,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5196,1
    - Dst: strvec_push
      Src: /src/git/builtin/pack-objects.c:5202,1
    - Dst: strvec_push
      Src: /src/git/builtin/pack-objects.c:5210,1
    - Dst: strvec_push
      Src: /src/git/builtin/pack-objects.c:5214,1
    - Dst: strvec_push
      Src: /src/git/builtin/pack-objects.c:5218,1
    - Dst: strvec_push
      Src: /src/git/builtin/pack-objects.c:5222,1
    - Dst: strvec_push
      Src: /src/git/builtin/pack-objects.c:5226,1
    - Dst: strvec_push
      Src: /src/git/builtin/pack-objects.c:5230,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/pack-objects.c:5233,1
    - Dst: strvec_push
      Src: /src/git/builtin/pack-objects.c:5243,1
    - Dst: option_parse_missing_action
      Src: /src/git/builtin/pack-objects.c:5248,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:5259,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5259,1
    - Dst: online_cpus
      Src: /src/git/builtin/pack-objects.c:5262,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:5265,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5265,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:5269,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5269,1
    - Dst: warning
      Src: /src/git/builtin/pack-objects.c:5271,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5271,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:5276,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5276,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/pack-objects.c:5278,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/pack-objects.c:5283,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:5288,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5288,1
    - Dst: die
      Src: /src/git/builtin/pack-objects.c:5292,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5292,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/pack-objects.c:5293,1
    - Dst: is_repository_shallow
      Src: /src/git/builtin/pack-objects.c:5313,1
    - Dst: git_env_ulong
      Src: /src/git/builtin/pack-objects.c:5320,1
    - Dst: validate_name_hash_version
      Src: /src/git/builtin/pack-objects.c:5322,1
    - Dst: strvec_push
      Src: /src/git/builtin/pack-objects.c:5325,1
    - Dst: add_extra_kept_packs
      Src: /src/git/builtin/pack-objects.c:5330,1
    - Dst: repo_for_each_pack
      Src: /src/git/builtin/pack-objects.c:5334,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/pack-objects.c:5356,1
    - Dst: prepare_packing_data
      Src: /src/git/builtin/pack-objects.c:5358,1
    - Dst: start_progress
      Src: /src/git/builtin/pack-objects.c:5361,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5362,1
    - Dst: read_stdin_packs
      Src: /src/git/builtin/pack-objects.c:5364,1
    - Dst: read_cruft_objects
      Src: /src/git/builtin/pack-objects.c:5366,1
    - Dst: read_object_list_from_stdin
      Src: /src/git/builtin/pack-objects.c:5368,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/pack-objects.c:5372,1
    - Dst: list_objects_filter_copy
      Src: /src/git/builtin/pack-objects.c:5373,1
    - Dst: get_object_list
      Src: /src/git/builtin/pack-objects.c:5378,1
    - Dst: release_revisions
      Src: /src/git/builtin/pack-objects.c:5379,1
    - Dst: cleanup_preferred_base
      Src: /src/git/builtin/pack-objects.c:5381,1
    - Dst: refs_for_each_tag_ref
      Src: /src/git/builtin/pack-objects.c:5383,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/pack-objects.c:5383,1
    - Dst: stop_progress
      Src: /src/git/builtin/pack-objects.c:5385,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/pack-objects.c:5386,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/pack-objects.c:5392,1
    - Dst: prepare_pack
      Src: /src/git/builtin/pack-objects.c:5394,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/pack-objects.c:5395,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/pack-objects.c:5399,1
    - Dst: write_excluded_by_configs
      Src: /src/git/builtin/pack-objects.c:5400,1
    - Dst: write_pack_file
      Src: /src/git/builtin/pack-objects.c:5401,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/pack-objects.c:5402,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pack-objects.c:5405,1
    - Dst: _
      Src: /src/git/builtin/pack-objects.c:5406,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/pack-objects.c:5413,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/pack-objects.c:5414,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/pack-objects.c:5415,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/pack-objects.c:5416,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/pack-objects.c:5417,1
    - Dst: trace2_data_intmax
      Src: /src/git/builtin/pack-objects.c:5418,1
    - Dst: clear_packing_data
      Src: /src/git/builtin/pack-objects.c:5421,1
    - Dst: list_objects_filter_release
      Src: /src/git/builtin/pack-objects.c:5422,1
    - Dst: string_list_clear
      Src: /src/git/builtin/pack-objects.c:5423,1
    - Dst: strvec_clear
      Src: /src/git/builtin/pack-objects.c:5424,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 210
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5427
      start: 5002
    functionDepth: 32
    functionLinenumber: 5002
    functionLinenumberEnd: 5427
    functionName: cmd_pack_objects
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 0
    functionsReached:
    - OPT_PARSE_LIST_OBJECTS_FILTER
    - parse_options
    - strvec_push
    - add_extra_kept_packs
    - reset_pack_idx_option
    - stop_progress
    - trace2_data_intmax
    - validate_name_hash_version
    - read_object_list_from_stdin
    - OPT_UNSIGNED
    - OPT_BOOL
    - trace2_region_enter
    - repo_init_revisions
    - prepare_pack
    - list_objects_filter_copy
    - repo_config
    - list_objects_filter_release
    - usage_with_options
    - get_main_ref_store
    - clear_packing_data
    - OPT_END
    - git_env_bool
    - die
    - die_for_incompatible_opt2
    - online_cpus
    - get_object_list
    - release_revisions
    - disable_replace_refs
    - read_cruft_objects
    - option_parse_missing_action
    - cleanup_preferred_base
    - isatty
    - OPT_STRING_LIST
    - OPT_INTEGER
    - string_list_clear
    - fprintf_ln
    - OPT_SET_INT
    - OPT_SET_INT_F
    - write_pack_file
    - is_repository_shallow
    - repo_for_each_pack
    - read_stdin_packs
    - _
    - N_
    - refs_for_each_tag_ref
    - warning
    - git_env_ulong
    - write_excluded_by_configs
    - trace2_region_leave
    - OPT_CALLBACK_F
    - prepare_repo_settings
    - strvec_clear
    - prepare_packing_data
    - BUG
    - start_progress
    linkageType: ''
    returnType: int
    signature: "int cmd_pack_objects(int argc,\n\t\t     const char **argv,\n\t\t
      \    const char *prefix,\n\t\t     struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5353
      start: 5348
    functionDepth: 0
    functionLinenumber: 5348
    functionLinenumberEnd: 5353
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/pack-objects.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/builtin/log.c:77,1
    - Dst: pager_in_use
      Src: /src/git/builtin/log.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: session_is_interactive
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - isatty
    - pager_in_use
    linkageType: ''
    returnType: int
    signature: int session_is_interactive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_is_interactive
      Src: /src/git/builtin/log.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: auto_decoration_style
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - session_is_interactive
    linkageType: ''
    returnType: int
    signature: int auto_decoration_style(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/log.c:87,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:95,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:97,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:99,1
    - Dst: auto_decoration_style
      Src: /src/git/builtin/log.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: parse_decoration_style
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - git_parse_maybe_bool
    - auto_decoration_style
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_decoration_style(const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/log.c:134,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:138,1
    - Dst: auto_decoration_style
      Src: /src/git/builtin/log.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct log_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: log_config_init
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - memset
    - auto_decoration_style
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void log_config_init(struct log_config *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/log.c:145,1
    - Dst: free
      Src: /src/git/builtin/log.c:146,1
    - Dst: free
      Src: /src/git/builtin/log.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct log_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: log_config_release
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void log_config_release(struct log_config *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/log.c:158,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/log.c:159,1
    - Dst: string_list_clear
      Src: /src/git/builtin/log.c:160,1
    - Dst: string_list_clear
      Src: /src/git/builtin/log.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - UNUSED
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: clear_decorations_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - BUG_ON_OPT_NEG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int clear_decorations_callback(const struct option *opt UNUSED,\n\t\t\t\t
      \     const char *arg, int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_decoration_style
      Src: /src/git/builtin/log.c:174,1
    - Dst: die
      Src: /src/git/builtin/log.c:179,1
    - Dst: _
      Src: /src/git/builtin/log.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 166
    functionDepth: 6
    functionLinenumber: 166
    functionLinenumberEnd: 184
    functionName: decorate_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - parse_decoration_style
    - die
    - _
    linkageType: ''
    returnType: int
    signature: "int decorate_callback(const struct option *opt, const char *arg,\n\t\t\t
      \    int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/log.c:190,1
    - Dst: string_list_append
      Src: /src/git/builtin/log.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - option
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: log_line_range_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int log_line_range_callback(const struct option *option, const char
      *arg, int unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_format
      Src: /src/git/builtin/log.c:205,1
    - Dst: init_diffstat_widths
      Src: /src/git/builtin/log.c:209,1
    - Dst: parse_date_format
      Src: /src/git/builtin/log.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - rev
    - cfg
    argTypes:
    - struct rev_info*
    - struct log_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 221
    functionName: cmd_log_init_defaults
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - init_diffstat_widths
    - parse_date_format
    - get_commit_format
    linkageType: ''
    returnType: void
    signature: "void cmd_log_init_defaults(struct rev_info *rev,\n\t\t\t\t  struct
      log_config *cfg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string_multi
      Src: /src/git/builtin/log.c:229,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/log.c:232,1
    - Dst: string_list_append
      Src: /src/git/builtin/log.c:233,1
    - Dst: repo_config_get_string
      Src: /src/git/builtin/log.c:243,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:244,1
    - Dst: free
      Src: /src/git/builtin/log.c:246,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/log.c:258,1
    - Dst: string_list_append
      Src: /src/git/builtin/log.c:262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 1
    argNames:
    - decoration_filter
    argTypes:
    - struct decoration_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 223
    functionDepth: 19
    functionLinenumber: 223
    functionLinenumberEnd: 264
    functionName: set_default_decoration_filter
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - ARRAY_SIZE
    - repo_config_get_string_multi
    - repo_config_get_string
    - string_list_append
    - strcmp
    - free
    linkageType: ''
    returnType: void
    signature: void set_default_decoration_filter(struct decoration_filter *decoration_filter)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/log.c:281,1
    - Dst: N_
      Src: /src/git/builtin/log.c:281,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:282,1
    - Dst: N_
      Src: /src/git/builtin/log.c:282,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:283,1
    - Dst: N_
      Src: /src/git/builtin/log.c:283,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/log.c:285,1
    - Dst: OPT_ALIAS
      Src: /src/git/builtin/log.c:288,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:289,1
    - Dst: N_
      Src: /src/git/builtin/log.c:290,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/log.c:293,1
    - Dst: N_
      Src: /src/git/builtin/log.c:294,1
    - Dst: N_
      Src: /src/git/builtin/log.c:294,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/log.c:295,1
    - Dst: N_
      Src: /src/git/builtin/log.c:296,1
    - Dst: N_
      Src: /src/git/builtin/log.c:296,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:297,1
    - Dst: N_
      Src: /src/git/builtin/log.c:297,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/log.c:299,1
    - Dst: N_
      Src: /src/git/builtin/log.c:300,1
    - Dst: OPT_END
      Src: /src/git/builtin/log.c:302,1
    - Dst: parse_options
      Src: /src/git/builtin/log.c:309,1
    - Dst: setup_revisions
      Src: /src/git/builtin/log.c:316,1
    - Dst: die
      Src: /src/git/builtin/log.c:320,1
    - Dst: _
      Src: /src/git/builtin/log.c:320,1
    - Dst: die
      Src: /src/git/builtin/log.c:323,1
    - Dst: _
      Src: /src/git/builtin/log.c:323,1
    - Dst: memset
      Src: /src/git/builtin/log.c:325,1
    - Dst: userformat_find_requirements
      Src: /src/git/builtin/log.c:326,1
    - Dst: load_display_notes
      Src: /src/git/builtin/log.c:331,1
    - Dst: init_revision_sources
      Src: /src/git/builtin/log.c:338,1
    - Dst: xmalloc
      Src: /src/git/builtin/log.c:343,1
    - Dst: string_list_init_nodup
      Src: /src/git/builtin/log.c:344,1
    - Dst: read_mailmap
      Src: /src/git/builtin/log.c:345,1
    - Dst: set_default_decoration_filter
      Src: /src/git/builtin/log.c:377,1
    - Dst: load_ref_decorations
      Src: /src/git/builtin/log.c:382,1
    - Dst: line_log_init
      Src: /src/git/builtin/log.c:386,1
    - Dst: setup_pager
      Src: /src/git/builtin/log.c:388,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 6
    argNames:
    - argc
    - argv
    - prefix
    - rev
    - opt
    - cfg
    argTypes:
    - int
    - char**
    - char*
    - struct rev_info*
    - struct setup_revision_opt*
    - struct log_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 266
    functionDepth: 25
    functionLinenumber: 266
    functionLinenumberEnd: 389
    functionName: cmd_log_init_finish
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_BOOL
    - load_ref_decorations
    - xmalloc
    - set_default_decoration_filter
    - init_revision_sources
    - OPT_ALIAS
    - OPT_END
    - die
    - line_log_init
    - read_mailmap
    - OPT_STRING_LIST
    - OPT_HIDDEN_BOOL
    - OPT__QUIET
    - setup_pager
    - memset
    - _
    - N_
    - setup_revisions
    - load_display_notes
    - userformat_find_requirements
    - string_list_init_nodup
    - OPT_CALLBACK_F
    - OPT_CALLBACK
    linkageType: ''
    returnType: void
    signature: "void cmd_log_init_finish(int argc, const char **argv, const char *prefix,\n\t\t\t
      struct rev_info *rev, struct setup_revision_opt *opt,\n\t\t\t struct log_config
      *cfg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_log_init_defaults
      Src: /src/git/builtin/log.c:395,1
    - Dst: cmd_log_init_finish
      Src: /src/git/builtin/log.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - argc
    - argv
    - prefix
    - rev
    - opt
    - cfg
    argTypes:
    - int
    - char**
    - char*
    - struct rev_info*
    - struct setup_revision_opt*
    - struct log_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 26
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: cmd_log_init
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - cmd_log_init_finish
    - cmd_log_init_defaults
    linkageType: ''
    returnType: void
    signature: "void cmd_log_init(int argc, const char **argv, const char *prefix,\n\t\t\t
      struct rev_info *rev, struct setup_revision_opt *opt,\n\t\t\t struct log_config
      *cfg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/log.c:406,1
    - Dst: die
      Src: /src/git/builtin/log.c:407,1
    - Dst: _
      Src: /src/git/builtin/log.c:407,1
    - Dst: get_revision
      Src: /src/git/builtin/log.c:414,1
    - Dst: log_tree_commit
      Src: /src/git/builtin/log.c:415,1
    - Dst: free_commit_buffer
      Src: /src/git/builtin/log.c:430,1
    - Dst: commit_list_free
      Src: /src/git/builtin/log.c:432,1
    - Dst: diff_result_code
      Src: /src/git/builtin/log.c:443,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - rev
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 399
    functionDepth: 24
    functionLinenumber: 399
    functionLinenumberEnd: 449
    functionName: cmd_log_walk_no_free
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - log_tree_commit
    - free_commit_buffer
    - die
    - diff_result_code
    - commit_list_free
    - prepare_revision_walk
    - get_revision
    - _
    linkageType: ''
    returnType: int
    signature: int cmd_log_walk_no_free(struct rev_info *rev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_log_walk_no_free
      Src: /src/git/builtin/log.c:456,1
    - Dst: diff_free
      Src: /src/git/builtin/log.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - rev
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 451
    functionDepth: 25
    functionLinenumber: 451
    functionLinenumberEnd: 460
    functionName: cmd_log_walk
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - diff_free
    - cmd_log_walk_no_free
    linkageType: ''
    returnType: int
    signature: int cmd_log_walk(struct rev_info *rev)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/log.c:468,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:469,1
    - Dst: git_config_string
      Src: /src/git/builtin/log.c:470,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:472,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:473,1
    - Dst: git_config_string
      Src: /src/git/builtin/log.c:474,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:476,1
    - Dst: git_config_int
      Src: /src/git/builtin/log.c:477,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:480,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:481,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:484,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:485,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:488,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:489,1
    - Dst: git_config_string
      Src: /src/git/builtin/log.c:490,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:492,1
    - Dst: parse_decoration_style
      Src: /src/git/builtin/log.c:493,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:498,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/log.c:500,1
    - Dst: diff_merges_config
      Src: /src/git/builtin/log.c:501,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:503,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:504,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:507,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:508,1
    - Dst: skip_prefix
      Src: /src/git/builtin/log.c:511,1
    - Dst: parse_decorate_color_config
      Src: /src/git/builtin/log.c:512,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:513,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:514,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:517,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:518,1
    - Dst: git_diff_ui_config
      Src: /src/git/builtin/log.c:522,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 462
    functionDepth: 8
    functionLinenumber: 462
    functionLinenumberEnd: 523
    functionName: git_log_config
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - git_config_string
    - diff_merges_config
    - parse_decoration_style
    - strcmp
    - git_config_bool
    - parse_decorate_color_config
    - git_diff_ui_config
    - skip_prefix
    - FREE_AND_NULL
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_log_config(const char *var, const char *value,\n\t\t\t  const
      struct config_context *ctx, void *cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_config_init
      Src: /src/git/builtin/log.c:536,1
    - Dst: init_diff_ui_defaults
      Src: /src/git/builtin/log.c:537,1
    - Dst: repo_config
      Src: /src/git/builtin/log.c:538,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/log.c:540,1
    - Dst: repo_config
      Src: /src/git/builtin/log.c:541,1
    - Dst: memset
      Src: /src/git/builtin/log.c:545,1
    - Dst: cmd_log_init
      Src: /src/git/builtin/log.c:548,1
    - Dst: you_still_use_that
      Src: /src/git/builtin/log.c:551,1
    - Dst: _
      Src: /src/git/builtin/log.c:552,1
    - Dst: cmd_log_walk
      Src: /src/git/builtin/log.c:562,1
    - Dst: release_revisions
      Src: /src/git/builtin/log.c:564,1
    - Dst: log_config_release
      Src: /src/git/builtin/log.c:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 526
    functionDepth: 27
    functionLinenumber: 526
    functionLinenumberEnd: 567
    functionName: cmd_whatchanged
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - cmd_log_walk
    - memset
    - release_revisions
    - log_config_release
    - repo_init_revisions
    - you_still_use_that
    - log_config_init
    - init_diff_ui_defaults
    - _
    - repo_config
    - cmd_log_init
    linkageType: ''
    returnType: int
    signature: "int cmd_whatchanged(int argc,\n\t\t    const char **argv,\n\t\t    const
      char *prefix,\n\t\t    struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pp_user_info
      Src: /src/git/builtin/log.c:577,1
    - Dst: get_log_output_encoding
      Src: /src/git/builtin/log.c:577,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:578,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - rev
    argTypes:
    - char*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 570
    functionDepth: 7
    functionLinenumber: 570
    functionLinenumberEnd: 580
    functionName: show_tagger
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - get_log_output_encoding
    - strbuf_release
    - fprintf
    - pp_user_info
    linkageType: ''
    returnType: void
    signature: void show_tagger(const char *buf, struct rev_info *rev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/git/builtin/log.c:589,1
    - Dst: odb_stream_blob_to_fd
      Src: /src/git/builtin/log.c:592,1
    - Dst: get_oid_with_context
      Src: /src/git/builtin/log.c:594,1
    - Dst: die
      Src: /src/git/builtin/log.c:597,1
    - Dst: _
      Src: /src/git/builtin/log.c:597,1
    - Dst: textconv_object
      Src: /src/git/builtin/log.c:599,1
    - Dst: object_context_release
      Src: /src/git/builtin/log.c:601,1
    - Dst: odb_stream_blob_to_fd
      Src: /src/git/builtin/log.c:602,1
    - Dst: die
      Src: /src/git/builtin/log.c:606,1
    - Dst: _
      Src: /src/git/builtin/log.c:606,1
    - Dst: write_or_die
      Src: /src/git/builtin/log.c:608,1
    - Dst: object_context_release
      Src: /src/git/builtin/log.c:609,1
    - Dst: free
      Src: /src/git/builtin/log.c:610,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - oid
    - rev
    - obj_name
    argTypes:
    - struct object_id*
    - struct rev_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 582
    functionDepth: 26
    functionLinenumber: 582
    functionLinenumberEnd: 612
    functionName: show_blob_object
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - die
    - object_context_release
    - textconv_object
    - fflush
    - _
    - free
    - get_oid_with_context
    - odb_stream_blob_to_fd
    linkageType: ''
    returnType: int
    signature: int show_blob_object(const struct object_id *oid, struct rev_info *rev,
      const char *obj_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/builtin/log.c:618,1
    - Dst: error
      Src: /src/git/builtin/log.c:622,1
    - Dst: _
      Src: /src/git/builtin/log.c:622,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/log.c:622,1
    - Dst: assert
      Src: /src/git/builtin/log.c:624,1
    - Dst: skip_prefix
      Src: /src/git/builtin/log.c:630,1
    - Dst: show_tagger
      Src: /src/git/builtin/log.c:631,1
    - Dst: fwrite
      Src: /src/git/builtin/log.c:636,1
    - Dst: free
      Src: /src/git/builtin/log.c:637,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - oid
    - rev
    argTypes:
    - struct object_id*
    - struct rev_info*
    assertStmts:
    - condition: (type == OBJ_TAG)
      pos:
        line_end: 623
        line_start: 623
        source_file: /src/git/builtin/log.c
    constantsTouched: []
    func_position:
      end: 639
      start: 614
    functionDepth: 12
    functionLinenumber: 614
    functionLinenumberEnd: 639
    functionName: show_tag_object
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - assert
    - show_tagger
    - fwrite
    - _
    - free
    - odb_read_object
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int show_tag_object(const struct object_id *oid, struct rev_info *rev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/log.c:647,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/log.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - UNUSED
    - UNUSED
    - pathname
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 649
    functionName: show_tree_object
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int show_tree_object(const struct object_id *oid UNUSED,\n\t\t\t    struct
      strbuf *base UNUSED,\n\t\t\t    const char *pathname, unsigned mode,\n\t\t\t
      \   void *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_merges_default_to_first_parent
      Src: /src/git/builtin/log.c:654,1
    - Dst: diff_merges_default_to_dense_combined
      Src: /src/git/builtin/log.c:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rev
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 651
    functionDepth: 4
    functionLinenumber: 651
    functionLinenumberEnd: 659
    functionName: show_setup_revisions_tweak
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - diff_merges_default_to_dense_combined
    - diff_merges_default_to_first_parent
    linkageType: ''
    returnType: void
    signature: void show_setup_revisions_tweak(struct rev_info *rev)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_config_init
      Src: /src/git/builtin/log.c:673,1
    - Dst: init_diff_ui_defaults
      Src: /src/git/builtin/log.c:674,1
    - Dst: repo_config
      Src: /src/git/builtin/log.c:675,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/log.c:678,1
    - Dst: memset
      Src: /src/git/builtin/log.c:682,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/log.c:683,1
    - Dst: repo_config
      Src: /src/git/builtin/log.c:684,1
    - Dst: memset
      Src: /src/git/builtin/log.c:691,1
    - Dst: cmd_log_init
      Src: /src/git/builtin/log.c:694,1
    - Dst: cmd_log_walk
      Src: /src/git/builtin/log.c:697,1
    - Dst: release_revisions
      Src: /src/git/builtin/log.c:698,1
    - Dst: log_config_release
      Src: /src/git/builtin/log.c:699,1
    - Dst: show_blob_object
      Src: /src/git/builtin/log.c:709,1
    - Dst: get_tagged_oid
      Src: /src/git/builtin/log.c:713,1
    - Dst: putchar
      Src: /src/git/builtin/log.c:716,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:717,1
    - Dst: diff_get_color_opt
      Src: /src/git/builtin/log.c:718,1
    - Dst: diff_get_color_opt
      Src: /src/git/builtin/log.c:720,1
    - Dst: show_tag_object
      Src: /src/git/builtin/log.c:721,1
    - Dst: parse_object
      Src: /src/git/builtin/log.c:725,1
    - Dst: error
      Src: /src/git/builtin/log.c:727,1
    - Dst: _
      Src: /src/git/builtin/log.c:727,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/log.c:728,1
    - Dst: putchar
      Src: /src/git/builtin/log.c:735,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:736,1
    - Dst: diff_get_color_opt
      Src: /src/git/builtin/log.c:737,1
    - Dst: diff_get_color_opt
      Src: /src/git/builtin/log.c:739,1
    - Dst: read_tree
      Src: /src/git/builtin/log.c:740,1
    - Dst: memcpy
      Src: /src/git/builtin/log.c:750,1
    - Dst: memcpy
      Src: /src/git/builtin/log.c:751,1
    - Dst: add_object_array
      Src: /src/git/builtin/log.c:753,1
    - Dst: cmd_log_walk_no_free
      Src: /src/git/builtin/log.c:754,1
    - Dst: memcpy
      Src: /src/git/builtin/log.c:761,1
    - Dst: error
      Src: /src/git/builtin/log.c:765,1
    - Dst: _
      Src: /src/git/builtin/log.c:765,1
    - Dst: diff_free
      Src: /src/git/builtin/log.c:770,1
    - Dst: release_revisions
      Src: /src/git/builtin/log.c:771,1
    - Dst: log_config_release
      Src: /src/git/builtin/log.c:772,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 70
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 661
    functionDepth: 27
    functionLinenumber: 661
    functionLinenumberEnd: 775
    functionName: cmd_show
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - show_blob_object
    - putchar
    - repo_init_revisions
    - log_config_release
    - cmd_log_walk_no_free
    - repo_config
    - cmd_log_init
    - error
    - release_revisions
    - memcpy
    - init_diff_ui_defaults
    - read_tree
    - diff_get_color_opt
    - memset
    - oid_to_hex
    - parse_object
    - _
    - cmd_log_walk
    - show_tag_object
    - diff_free
    - add_object_array
    - prepare_repo_settings
    - log_config_init
    - get_tagged_oid
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int cmd_show(int argc,\n\t     const char **argv,\n\t     const char
      *prefix,\n\t     struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_config_init
      Src: /src/git/builtin/log.c:790,1
    - Dst: init_diff_ui_defaults
      Src: /src/git/builtin/log.c:791,1
    - Dst: repo_config
      Src: /src/git/builtin/log.c:792,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/log.c:794,1
    - Dst: init_reflog_walk
      Src: /src/git/builtin/log.c:795,1
    - Dst: repo_config
      Src: /src/git/builtin/log.c:796,1
    - Dst: memset
      Src: /src/git/builtin/log.c:799,1
    - Dst: cmd_log_init_defaults
      Src: /src/git/builtin/log.c:801,1
    - Dst: cmd_log_init_finish
      Src: /src/git/builtin/log.c:806,1
    - Dst: cmd_log_walk
      Src: /src/git/builtin/log.c:808,1
    - Dst: release_revisions
      Src: /src/git/builtin/log.c:810,1
    - Dst: log_config_release
      Src: /src/git/builtin/log.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 780
    functionDepth: 26
    functionLinenumber: 780
    functionLinenumberEnd: 813
    functionName: cmd_log_reflog
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 2
    functionsReached:
    - cmd_log_walk
    - memset
    - release_revisions
    - repo_init_revisions
    - cmd_log_init_defaults
    - cmd_log_init_finish
    - log_config_init
    - init_diff_ui_defaults
    - log_config_release
    - init_reflog_walk
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_log_reflog(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: diff_check_follow_pathspec
      Src: /src/git/builtin/log.c:818,1
    - Dst: diff_merges_default_to_first_parent
      Src: /src/git/builtin/log.c:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - rev
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 815
    functionDepth: 6
    functionLinenumber: 815
    functionLinenumberEnd: 823
    functionName: log_setup_revisions_tweak
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - diff_check_follow_pathspec
    - diff_merges_default_to_first_parent
    linkageType: ''
    returnType: void
    signature: void log_setup_revisions_tweak(struct rev_info *rev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_config_init
      Src: /src/git/builtin/log.c:835,1
    - Dst: init_diff_ui_defaults
      Src: /src/git/builtin/log.c:836,1
    - Dst: repo_config
      Src: /src/git/builtin/log.c:837,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/log.c:839,1
    - Dst: repo_config
      Src: /src/git/builtin/log.c:840,1
    - Dst: memset
      Src: /src/git/builtin/log.c:843,1
    - Dst: cmd_log_init
      Src: /src/git/builtin/log.c:847,1
    - Dst: cmd_log_walk
      Src: /src/git/builtin/log.c:849,1
    - Dst: release_revisions
      Src: /src/git/builtin/log.c:851,1
    - Dst: log_config_release
      Src: /src/git/builtin/log.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 825
    functionDepth: 27
    functionLinenumber: 825
    functionLinenumberEnd: 854
    functionName: cmd_log
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - cmd_log_walk
    - memset
    - release_revisions
    - repo_init_revisions
    - log_config_init
    - init_diff_ui_defaults
    - log_config_release
    - repo_config
    - cmd_log_init
    linkageType: ''
    returnType: int
    signature: "int cmd_log(int argc,\n\t    const char **argv,\n\t    const char
      *prefix,\n\t    struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/log.c:914,1
    - Dst: log_config_init
      Src: /src/git/builtin/log.c:915,1
    - Dst: string_list_init_dup
      Src: /src/git/builtin/log.c:918,1
    - Dst: string_list_init_dup
      Src: /src/git/builtin/log.c:919,1
    - Dst: string_list_init_dup
      Src: /src/git/builtin/log.c:920,1
    - Dst: strbuf_init
      Src: /src/git/builtin/log.c:921,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct format_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 912
    functionDepth: 5
    functionLinenumber: 912
    functionLinenumberEnd: 923
    functionName: format_config_init
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - memset
    - log_config_init
    - string_list_init_dup
    - strbuf_init
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void format_config_init(struct format_config *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_config_release
      Src: /src/git/builtin/log.c:927,1
    - Dst: free
      Src: /src/git/builtin/log.c:928,1
    - Dst: free
      Src: /src/git/builtin/log.c:929,1
    - Dst: free
      Src: /src/git/builtin/log.c:930,1
    - Dst: free
      Src: /src/git/builtin/log.c:931,1
    - Dst: free
      Src: /src/git/builtin/log.c:932,1
    - Dst: free
      Src: /src/git/builtin/log.c:933,1
    - Dst: string_list_clear
      Src: /src/git/builtin/log.c:934,1
    - Dst: string_list_clear
      Src: /src/git/builtin/log.c:935,1
    - Dst: string_list_clear
      Src: /src/git/builtin/log.c:936,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:937,1
    - Dst: free
      Src: /src/git/builtin/log.c:938,1
    - Dst: free
      Src: /src/git/builtin/log.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct format_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 925
    functionDepth: 3
    functionLinenumber: 925
    functionLinenumberEnd: 940
    functionName: format_config_release
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - free
    - string_list_clear
    - strbuf_release
    - log_config_release
    linkageType: ''
    returnType: void
    signature: void format_config_release(struct format_config *cfg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/log.c:944,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:946,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:948,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:950,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:952,1
    - Dst: die
      Src: /src/git/builtin/log.c:955,1
    - Dst: _
      Src: /src/git/builtin/log.c:955,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 956
    functionName: parse_cover_from_description
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: enum cover_from_description
    signature: enum cover_from_description parse_cover_from_description(const char
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/log.c:961,1
    - Dst: strncasecmp
      Src: /src/git/builtin/log.c:965,1
    - Dst: string_list_append
      Src: /src/git/builtin/log.c:966,1
    - Dst: strncasecmp
      Src: /src/git/builtin/log.c:968,1
    - Dst: string_list_append
      Src: /src/git/builtin/log.c:969,1
    - Dst: string_list_append
      Src: /src/git/builtin/log.c:972,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - cfg
    - value
    argTypes:
    - struct format_config*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 976
    functionName: add_header
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strlen
    - string_list_append
    - strncasecmp
    linkageType: ''
    returnType: void
    signature: void add_header(struct format_config *cfg, const char *value)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/log.c:983,1
    - Dst: die
      Src: /src/git/builtin/log.c:985,1
    - Dst: _
      Src: /src/git/builtin/log.c:985,1
    - Dst: add_header
      Src: /src/git/builtin/log.c:986,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:989,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:990,1
    - Dst: git_config_string
      Src: /src/git/builtin/log.c:991,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:993,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/log.c:995,1
    - Dst: string_list_append
      Src: /src/git/builtin/log.c:996,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:999,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/log.c:1001,1
    - Dst: string_list_append
      Src: /src/git/builtin/log.c:1002,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1005,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1005,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1006,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1006,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1009,1
    - Dst: strcasecmp
      Src: /src/git/builtin/log.c:1010,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:1014,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1018,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:1020,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:1021,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:1023,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:1025,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:1026,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1030,1
    - Dst: strcasecmp
      Src: /src/git/builtin/log.c:1031,1
    - Dst: strcasecmp
      Src: /src/git/builtin/log.c:1035,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:1039,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1042,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:1043,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1046,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:1047,1
    - Dst: git_config_string
      Src: /src/git/builtin/log.c:1048,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1050,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:1051,1
    - Dst: git_config_pathname
      Src: /src/git/builtin/log.c:1052,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1054,1
    - Dst: strcasecmp
      Src: /src/git/builtin/log.c:1055,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:1059,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1062,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:1063,1
    - Dst: git_config_string
      Src: /src/git/builtin/log.c:1064,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1066,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:1067,1
    - Dst: git_config_string
      Src: /src/git/builtin/log.c:1068,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1070,1
    - Dst: strcasecmp
      Src: /src/git/builtin/log.c:1071,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:1075,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1078,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/log.c:1079,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:1080,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:1082,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:1084,1
    - Dst: git_committer_info
      Src: /src/git/builtin/log.c:1084,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1087,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:1088,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1091,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/log.c:1092,1
    - Dst: enable_ref_display_notes
      Src: /src/git/builtin/log.c:1094,1
    - Dst: enable_default_display_notes
      Src: /src/git/builtin/log.c:1096,1
    - Dst: disable_display_notes
      Src: /src/git/builtin/log.c:1098,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1101,1
    - Dst: parse_cover_from_description
      Src: /src/git/builtin/log.c:1102,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1105,1
    - Dst: git_config_bool
      Src: /src/git/builtin/log.c:1106,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1109,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/log.c:1110,1
    - Dst: die_message
      Src: /src/git/builtin/log.c:1112,1
    - Dst: _
      Src: /src/git/builtin/log.c:1113,1
    - Dst: advise
      Src: /src/git/builtin/log.c:1115,1
    - Dst: _
      Src: /src/git/builtin/log.c:1115,1
    - Dst: exit
      Src: /src/git/builtin/log.c:1120,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1131,1
    - Dst: git_log_config
      Src: /src/git/builtin/log.c:1134,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 135
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 978
    functionDepth: 9
    functionLinenumber: 978
    functionLinenumberEnd: 1135
    functionName: git_format_config
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - strcmp
    - die
    - enable_ref_display_notes
    - parse_cover_from_description
    - advise
    - git_config_pathname
    - add_header
    - git_config_string
    - string_list_append
    - git_config_bool
    - _
    - die_message
    - git_committer_info
    - FREE_AND_NULL
    - git_log_config
    - xstrdup
    - disable_display_notes
    - enable_default_display_notes
    - exit
    - git_parse_maybe_bool
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_format_config(const char *var, const char *value,\n\t\t\t
      \    const struct config_context *ctx, void *cb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:1146,1
    - Dst: strbuf_complete
      Src: /src/git/builtin/log.c:1147,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/log.c:1151,1
    - Dst: fmt_output_commit
      Src: /src/git/builtin/log.c:1153,1
    - Dst: fmt_output_subject
      Src: /src/git/builtin/log.c:1155,1
    - Dst: printf
      Src: /src/git/builtin/log.c:1158,1
    - Dst: fopen
      Src: /src/git/builtin/log.c:1160,1
    - Dst: error_errno
      Src: /src/git/builtin/log.c:1161,1
    - Dst: _
      Src: /src/git/builtin/log.c:1161,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:1162,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:1166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - commit
    - subject
    - rev
    - quiet
    argTypes:
    - struct commit*
    - char*
    - struct rev_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1140
    functionDepth: 15
    functionLinenumber: 1140
    functionLinenumberEnd: 1168
    functionName: open_next_file
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - fmt_output_subject
    - fmt_output_commit
    - strbuf_addf
    - fopen
    - strbuf_addstr
    - strbuf_complete
    - printf
    - _
    linkageType: ''
    returnType: int
    signature: "int open_next_file(struct commit *commit, const char *subject,\n\t\t\t
      struct rev_info *rev, int quiet)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/log.c:1178,1
    - Dst: _
      Src: /src/git/builtin/log.c:1178,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/log.c:1184,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/log.c:1185,1
    - Dst: die
      Src: /src/git/builtin/log.c:1188,1
    - Dst: _
      Src: /src/git/builtin/log.c:1188,1
    - Dst: init_patch_ids
      Src: /src/git/builtin/log.c:1190,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/log.c:1193,1
    - Dst: add_pending_object
      Src: /src/git/builtin/log.c:1197,1
    - Dst: add_pending_object
      Src: /src/git/builtin/log.c:1198,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/log.c:1199,1
    - Dst: die
      Src: /src/git/builtin/log.c:1200,1
    - Dst: _
      Src: /src/git/builtin/log.c:1200,1
    - Dst: get_revision
      Src: /src/git/builtin/log.c:1202,1
    - Dst: add_commit_patch_id
      Src: /src/git/builtin/log.c:1203,1
    - Dst: clear_commit_marks
      Src: /src/git/builtin/log.c:1207,1
    - Dst: clear_commit_marks
      Src: /src/git/builtin/log.c:1208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - rev
    - ids
    argTypes:
    - struct rev_info*
    - struct patch_ids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1170
    functionDepth: 13
    functionLinenumber: 1170
    functionLinenumberEnd: 1211
    functionName: get_patch_ids
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - die
    - init_patch_ids
    - get_revision
    - lookup_commit_reference
    - repo_init_revisions
    - add_pending_object
    - clear_commit_marks
    - prepare_revision_walk
    - add_commit_patch_id
    - _
    linkageType: ''
    returnType: void
    signature: void get_patch_ids(struct rev_info *rev, struct patch_ids *ids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/log.c:1216,1
    - Dst: time
      Src: /src/git/builtin/log.c:1217,1
    - Dst: git_committer_info
      Src: /src/git/builtin/log.c:1218,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/log.c:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - info
    - base
    argTypes:
    - struct rev_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1213
    functionDepth: 8
    functionLinenumber: 1213
    functionLinenumberEnd: 1220
    functionName: gen_message_id
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - git_committer_info
    - strbuf_addf
    - strbuf_detach
    - time
    linkageType: ''
    returnType: void
    signature: void gen_message_id(struct rev_info *info, const char *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/log.c:1227,1
    - Dst: strlen
      Src: /src/git/builtin/log.c:1228,1
    - Dst: putc
      Src: /src/git/builtin/log.c:1229,1
    - Dst: putc
      Src: /src/git/builtin/log.c:1230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - signature
    - file
    argTypes:
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1222
    functionDepth: 2
    functionLinenumber: 1222
    functionLinenumberEnd: 1231
    functionName: print_signature
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 1
    functionsReached:
    - putc
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_signature(const char *signature, FILE *file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_dwim_ref
      Src: /src/git/builtin/log.c:1254,1
    - Dst: strlen
      Src: /src/git/builtin/log.c:1254,1
    - Dst: skip_prefix
      Src: /src/git/builtin/log.c:1256,1
    - Dst: oideq
      Src: /src/git/builtin/log.c:1257,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:1258,1
    - Dst: free
      Src: /src/git/builtin/log.c:1259,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - rev
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1233
    functionDepth: 3
    functionLinenumber: 1233
    functionLinenumberEnd: 1261
    functionName: find_branch_name
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - repo_dwim_ref
    - strlen
    - free
    - skip_prefix
    - oideq
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *find_branch_name(struct rev_info *rev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/builtin/log.c:1268,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/log.c:1270,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/log.c:1272,1
    - Dst: get_commit_tree_oid
      Src: /src/git/builtin/log.c:1272,1
    - Dst: get_commit_tree_oid
      Src: /src/git/builtin/log.c:1273,1
    - Dst: diffcore_std
      Src: /src/git/builtin/log.c:1275,1
    - Dst: diff_flush
      Src: /src/git/builtin/log.c:1276,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:1278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - rev
    - origin
    - head
    argTypes:
    - struct rev_info*
    - struct commit*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1263
    functionDepth: 28
    functionLinenumber: 1263
    functionLinenumberEnd: 1279
    functionName: show_diffstat
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - diff_tree_oid
    - memcpy
    - diff_flush
    - get_commit_tree_oid
    - diffcore_std
    - diff_setup_done
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void show_diffstat(struct rev_info *rev,\n\t\t\t  struct commit *origin,
      struct commit *head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/builtin/log.c:1283,1
    - Dst: die_errno
      Src: /src/git/builtin/log.c:1284,1
    - Dst: _
      Src: /src/git/builtin/log.c:1284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - desc_file
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1281
    functionDepth: 5
    functionLinenumber: 1281
    functionLinenumberEnd: 1286
    functionName: read_desc_file
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strbuf_read_file
    - die_errno
    - _
    linkageType: ''
    returnType: void
    signature: void read_desc_file(struct strbuf *buf, const char *desc_file)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: read_desc_file
      Src: /src/git/builtin/log.c:1305,1
    - Dst: read_branch_desc
      Src: /src/git/builtin/log.c:1307,1
    - Dst: format_subject
      Src: /src/git/builtin/log.c:1313,1
    - Dst: pp_email_subject
      Src: /src/git/builtin/log.c:1323,1
    - Dst: pp_remainder
      Src: /src/git/builtin/log.c:1324,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:1326,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:1327,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 7
    argNames:
    - pp
    - description_file
    - branch_name
    - sb
    - encoding
    - need_8bit_cte
    - cfg
    argTypes:
    - struct pretty_print_context*
    - char*
    - char*
    - struct strbuf*
    - char*
    - int
    - struct format_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1288
    functionDepth: 9
    functionLinenumber: 1288
    functionLinenumberEnd: 1328
    functionName: prepare_cover_text
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - pp_remainder
    - pp_email_subject
    - format_subject
    - read_desc_file
    - read_branch_desc
    linkageType: ''
    returnType: void
    signature: "void prepare_cover_text(struct pretty_print_context *pp,\n\t\t\t       const
      char *description_file,\n\t\t\t       const char *branch_name,\n\t\t\t       struct
      strbuf *sb,\n\t\t\t       const char *encoding,\n\t\t\t       int need_8bit_cte,\n\t\t\t
      \      const struct format_config *cfg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/builtin/log.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - item
    - arg
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1330
    functionDepth: 4
    functionLinenumber: 1330
    functionLinenumberEnd: 1334
    functionName: get_notes_refs
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int get_notes_refs(struct string_list_item *item, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/log.c:1339,1
    - Dst: strvec_push
      Src: /src/git/builtin/log.c:1343,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/log.c:1345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - arg
    - rev
    argTypes:
    - struct strvec*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1336
    functionDepth: 3
    functionLinenumber: 1336
    functionLinenumberEnd: 1347
    functionName: get_notes_args
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - for_each_string_list
    linkageType: ''
    returnType: void
    signature: void get_notes_args(struct strvec *arg, struct rev_info *rev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shortlog_init
      Src: /src/git/builtin/log.c:1354,1
    - Dst: shortlog_finish_setup
      Src: /src/git/builtin/log.c:1361,1
    - Dst: shortlog_add_commit
      Src: /src/git/builtin/log.c:1363,1
    - Dst: shortlog_output
      Src: /src/git/builtin/log.c:1365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - log
    - rev
    - list
    - nr
    argTypes:
    - struct shortlog*
    - struct rev_info*
    - struct commit**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1366
    functionName: generate_shortlog_cover_letter
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - shortlog_finish_setup
    - shortlog_output
    - shortlog_add_commit
    - shortlog_init
    linkageType: ''
    returnType: void
    signature: "void generate_shortlog_cover_letter(struct shortlog *log,\n\t\t\t\t\t
      \  struct rev_info *rev,\n\t\t\t\t\t   struct commit **list,\n\t\t\t\t\t   int
      nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/log.c:1379,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:1381,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/log.c:1382,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:1384,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - cover_file
    - format
    - list
    - n
    argTypes:
    - FILE*
    - char*
    - struct commit**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1368
    functionDepth: 14
    functionLinenumber: 1368
    functionLinenumberEnd: 1387
    functionName: generate_commit_list_cover
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - repo_format_commit_message
    - strbuf_release
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void generate_commit_list_cover(FILE *cover_file, const char *format,\n\t\t\t\t
      \      struct commit **list, int n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cmit_fmt_is_mail
      Src: /src/git/builtin/log.c:1408,1
    - Dst: die
      Src: /src/git/builtin/log.c:1409,1
    - Dst: _
      Src: /src/git/builtin/log.c:1409,1
    - Dst: git_committer_info
      Src: /src/git/builtin/log.c:1411,1
    - Dst: open_next_file
      Src: /src/git/builtin/log.c:1414,1
    - Dst: die
      Src: /src/git/builtin/log.c:1415,1
    - Dst: _
      Src: /src/git/builtin/log.c:1415,1
    - Dst: log_write_email_headers
      Src: /src/git/builtin/log.c:1417,1
    - Dst: repo_get_commit_buffer
      Src: /src/git/builtin/log.c:1420,1
    - Dst: has_non_ascii
      Src: /src/git/builtin/log.c:1422,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/log.c:1424,1
    - Dst: find_branch_name
      Src: /src/git/builtin/log.c:1428,1
    - Dst: pp_user_info
      Src: /src/git/builtin/log.c:1434,1
    - Dst: prepare_cover_text
      Src: /src/git/builtin/log.c:1435,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:1437,1
    - Dst: free
      Src: /src/git/builtin/log.c:1439,1
    - Dst: free
      Src: /src/git/builtin/log.c:1440,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:1441,1
    - Dst: skip_prefix
      Src: /src/git/builtin/log.c:1443,1
    - Dst: generate_commit_list_cover
      Src: /src/git/builtin/log.c:1444,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1445,1
    - Dst: generate_shortlog_cover_letter
      Src: /src/git/builtin/log.c:1446,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1447,1
    - Dst: generate_commit_list_cover
      Src: /src/git/builtin/log.c:1448,1
    - Dst: strchr
      Src: /src/git/builtin/log.c:1450,1
    - Dst: generate_commit_list_cover
      Src: /src/git/builtin/log.c:1451,1
    - Dst: die
      Src: /src/git/builtin/log.c:1453,1
    - Dst: _
      Src: /src/git/builtin/log.c:1453,1
    - Dst: show_diffstat
      Src: /src/git/builtin/log.c:1457,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/log.c:1460,1
    - Dst: show_interdiff
      Src: /src/git/builtin/log.c:1461,1
    - Dst: repo_diff_setup
      Src: /src/git/builtin/log.c:1479,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/log.c:1482,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/log.c:1483,1
    - Dst: show_range_diff
      Src: /src/git/builtin/log.c:1484,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 10
    argNames:
    - rev
    - use_separate_file
    - origin
    - nr
    - list
    - description_file
    - branch_name
    - quiet
    - cfg
    - format
    argTypes:
    - struct rev_info*
    - int
    - struct commit*
    - int
    - struct commit**
    - char*
    - char*
    - int
    - struct format_config*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1389
    functionDepth: 29
    functionLinenumber: 1389
    functionLinenumberEnd: 1486
    functionName: make_cover_letter
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strchr
    - repo_get_commit_buffer
    - strcmp
    - free
    - open_next_file
    - has_non_ascii
    - strbuf_release
    - die
    - show_diffstat
    - generate_shortlog_cover_letter
    - show_interdiff
    - diff_setup_done
    - repo_diff_setup
    - cmit_fmt_is_mail
    - generate_commit_list_cover
    - fprintf_ln
    - find_branch_name
    - prepare_cover_text
    - repo_unuse_commit_buffer
    - pp_user_info
    - _
    - skip_prefix
    - git_committer_info
    - log_write_email_headers
    - show_range_diff
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void make_cover_letter(struct rev_info *rev, int use_separate_file,\n\t\t\t
      \     struct commit *origin,\n\t\t\t      int nr, struct commit **list,\n\t\t\t
      \     const char *description_file,\n\t\t\t      const char *branch_name,\n\t\t\t
      \     int quiet,\n\t\t\t      const struct format_config *cfg,\n\t\t\t      const
      char *format)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/builtin/log.c:1494,1
    - Dst: isspace
      Src: /src/git/builtin/log.c:1499,1
    - Dst: die
      Src: /src/git/builtin/log.c:1504,1
    - Dst: _
      Src: /src/git/builtin/log.c:1504,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:1506,1
    - Dst: xmemdupz
      Src: /src/git/builtin/log.c:1507,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - msg_id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1488
    functionDepth: 10
    functionLinenumber: 1488
    functionLinenumberEnd: 1508
    functionName: clean_message_id
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - isspace
    - xmemdupz
    - die
    - _
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *clean_message_id(const char *msg_id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute_path
      Src: /src/git/builtin/log.c:1512,1
    - Dst: strlen
      Src: /src/git/builtin/log.c:1523,1
    - Dst: prefix_filename
      Src: /src/git/builtin/log.c:1527,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - prefix
    - output_directory
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1510
    functionDepth: 5
    functionLinenumber: 1510
    functionLinenumberEnd: 1528
    functionName: set_outdir
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strlen
    - is_absolute_path
    - prefix_filename
    linkageType: ''
    returnType: char
    signature: char *set_outdir(const char *prefix, const char *output_directory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/log.c:1543,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/log.c:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1540
    functionDepth: 1
    functionLinenumber: 1540
    functionLinenumberEnd: 1548
    functionName: keep_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: int keep_callback(const struct option *opt, const char *arg, int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/log.c:1555,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/log.c:1557,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:1558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1550
    functionDepth: 4
    functionLinenumber: 1550
    functionLinenumberEnd: 1560
    functionName: subject_prefix_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - BUG_ON_OPT_NEG
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int subject_prefix_callback(const struct option *opt, const char *arg,\n\t\t\t
      \   int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1573
    functionName: rfc_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int rfc_callback(const struct option *opt, const char *arg,\n\t\t\tint
      unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/log.c:1579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1584
    functionName: numbered_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int numbered_callback(const struct option *opt, const char *arg,\n\t\t\t
      \    int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/log.c:1589,1
    - Dst: numbered_callback
      Src: /src/git/builtin/log.c:1590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1586
    functionDepth: 2
    functionLinenumber: 1586
    functionLinenumberEnd: 1591
    functionName: no_numbered_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - numbered_callback
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int no_numbered_callback(const struct option *opt, const char *arg,\n\t\t\t\tint
      unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/log.c:1597,1
    - Dst: die
      Src: /src/git/builtin/log.c:1599,1
    - Dst: _
      Src: /src/git/builtin/log.c:1599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1593
    functionDepth: 1
    functionLinenumber: 1593
    functionLinenumberEnd: 1602
    functionName: output_directory_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - _
    linkageType: ''
    returnType: int
    signature: "int output_directory_callback(const struct option *opt, const char
      *arg,\n\t\t\t      int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1610,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1604
    functionDepth: 0
    functionLinenumber: 1604
    functionLinenumberEnd: 1621
    functionName: thread_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int thread_callback(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1634
    functionName: attach_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int attach_callback(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1636
    functionDepth: 0
    functionLinenumber: 1636
    functionLinenumberEnd: 1647
    functionName: inline_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int inline_callback(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/builtin/log.c:1655,1
    - Dst: string_list_clear
      Src: /src/git/builtin/log.c:1656,1
    - Dst: string_list_clear
      Src: /src/git/builtin/log.c:1657,1
    - Dst: add_header
      Src: /src/git/builtin/log.c:1659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1649
    functionDepth: 3
    functionLinenumber: 1649
    functionLinenumberEnd: 1662
    functionName: header_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - add_header
    linkageType: ''
    returnType: int
    signature: "int header_callback(const struct option *opt, const char *arg,\n\t\t\t
      \  int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/log.c:1668,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:1673,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:1675,1
    - Dst: git_committer_info
      Src: /src/git/builtin/log.c:1675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1664
    functionDepth: 8
    functionLinenumber: 1664
    functionLinenumberEnd: 1677
    functionName: from_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - git_committer_info
    - xstrdup
    - free
    linkageType: ''
    returnType: int
    signature: int from_callback(const struct option *opt, const char *arg, int unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:1685,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:1686,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/log.c:1688,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:1691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1694
    functionName: base_callback
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - xstrdup
    - strcmp
    linkageType: ''
    returnType: int
    signature: int base_callback(const struct option *opt, const char *arg, int unset)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/log.c:1724,1
    - Dst: BUG
      Src: /src/git/builtin/log.c:1731,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/log.c:1735,1
    - Dst: die
      Src: /src/git/builtin/log.c:1737,1
    - Dst: _
      Src: /src/git/builtin/log.c:1737,1
    - Dst: branch_get
      Src: /src/git/builtin/log.c:1739,1
    - Dst: branch_get_upstream
      Src: /src/git/builtin/log.c:1740,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/log.c:1746,1
    - Dst: die
      Src: /src/git/builtin/log.c:1748,1
    - Dst: _
      Src: /src/git/builtin/log.c:1748,1
    - Dst: lookup_commit_or_die
      Src: /src/git/builtin/log.c:1752,1
    - Dst: repo_get_merge_bases_many
      Src: /src/git/builtin/log.c:1753,1
    - Dst: die
      Src: /src/git/builtin/log.c:1760,1
    - Dst: _
      Src: /src/git/builtin/log.c:1760,1
    - Dst: commit_list_free
      Src: /src/git/builtin/log.c:1762,1
    - Dst: commit_list_free
      Src: /src/git/builtin/log.c:1767,1
    - Dst: die
      Src: /src/git/builtin/log.c:1770,1
    - Dst: _
      Src: /src/git/builtin/log.c:1770,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/log.c:1778,1
    - Dst: repo_get_merge_bases
      Src: /src/git/builtin/log.c:1790,1
    - Dst: die
      Src: /src/git/builtin/log.c:1795,1
    - Dst: _
      Src: /src/git/builtin/log.c:1795,1
    - Dst: commit_list_free
      Src: /src/git/builtin/log.c:1797,1
    - Dst: free
      Src: /src/git/builtin/log.c:1798,1
    - Dst: commit_list_free
      Src: /src/git/builtin/log.c:1804,1
    - Dst: DIV_ROUND_UP
      Src: /src/git/builtin/log.c:1809,1
    - Dst: repo_in_merge_bases
      Src: /src/git/builtin/log.c:1812,1
    - Dst: exit
      Src: /src/git/builtin/log.c:1814,1
    - Dst: die
      Src: /src/git/builtin/log.c:1817,1
    - Dst: _
      Src: /src/git/builtin/log.c:1817,1
    - Dst: free
      Src: /src/git/builtin/log.c:1819,1
    - Dst: die
      Src: /src/git/builtin/log.c:1827,1
    - Dst: _
      Src: /src/git/builtin/log.c:1827,1
    - Dst: free
      Src: /src/git/builtin/log.c:1829,1
    - Dst: free
      Src: /src/git/builtin/log.c:1835,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 95
    argCount: 3
    argNames:
    - cfg
    - list
    - total
    argTypes:
    - struct format_config*
    - struct commit**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1702
    functionDepth: 25
    functionLinenumber: 1702
    functionLinenumberEnd: 1837
    functionName: get_base_commit
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - lookup_commit_or_die
    - die
    - lookup_commit_reference_by_name
    - DIV_ROUND_UP
    - branch_get
    - repo_get_oid
    - ALLOC_ARRAY
    - repo_in_merge_bases
    - exit
    - repo_get_merge_bases
    - commit_list_free
    - branch_get_upstream
    - _
    - free
    - repo_get_merge_bases_many
    - BUG
    linkageType: ''
    returnType: struct commit
    signature: "struct commit *get_base_commit(const struct format_config *cfg,\n\t\t\t\t
      \     struct commit **list,\n\t\t\t\t      size_t total)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_commit_base
      Src: /src/git/builtin/log.c:1854,1
    - Dst: repo_diff_setup
      Src: /src/git/builtin/log.c:1855,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/log.c:1857,1
    - Dst: oidcpy
      Src: /src/git/builtin/log.c:1859,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/log.c:1861,1
    - Dst: add_pending_object
      Src: /src/git/builtin/log.c:1866,1
    - Dst: commit_base_at
      Src: /src/git/builtin/log.c:1867,1
    - Dst: add_pending_object
      Src: /src/git/builtin/log.c:1870,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/log.c:1872,1
    - Dst: die
      Src: /src/git/builtin/log.c:1873,1
    - Dst: _
      Src: /src/git/builtin/log.c:1873,1
    - Dst: get_revision
      Src: /src/git/builtin/log.c:1878,1
    - Dst: commit_base_at
      Src: /src/git/builtin/log.c:1881,1
    - Dst: commit_patch_id
      Src: /src/git/builtin/log.c:1883,1
    - Dst: die
      Src: /src/git/builtin/log.c:1884,1
    - Dst: _
      Src: /src/git/builtin/log.c:1884,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/log.c:1885,1
    - Dst: oidcpy
      Src: /src/git/builtin/log.c:1887,1
    - Dst: clear_commit_base
      Src: /src/git/builtin/log.c:1890,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - bases
    - base
    - list
    - total
    argTypes:
    - struct base_tree_info*
    - struct commit*
    - struct commit**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1841
    functionDepth: 13
    functionLinenumber: 1841
    functionLinenumberEnd: 1891
    functionName: prepare_bases
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - die
    - clear_commit_base
    - oidcpy
    - get_revision
    - repo_init_revisions
    - add_pending_object
    - commit_patch_id
    - prepare_revision_walk
    - diff_setup_done
    - _
    - repo_diff_setup
    - ALLOC_GROW
    - commit_base_at
    - init_commit_base
    linkageType: ''
    returnType: void
    signature: "void prepare_bases(struct base_tree_info *bases,\n\t\t\t  struct commit
      *base,\n\t\t\t  struct commit **list,\n\t\t\t  size_t total)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/log.c:1898,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:1902,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/log.c:1902,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:1906,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/log.c:1906,1
    - Dst: free
      Src: /src/git/builtin/log.c:1908,1
    - Dst: oidclr
      Src: /src/git/builtin/log.c:1911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bases
    - file
    argTypes:
    - struct base_tree_info*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1893
    functionDepth: 3
    functionLinenumber: 1893
    functionLinenumberEnd: 1912
    functionName: print_bases
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - is_null_oid
    - oidclr
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_bases(struct base_tree_info *bases, FILE *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol_i
      Src: /src/git/builtin/log.c:1922,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/log.c:1924,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:1926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - sb
    - reroll_count
    - generic
    - rerolled
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1914
    functionDepth: 4
    functionLinenumber: 1914
    functionLinenumberEnd: 1928
    functionName: diff_title
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strtol_i
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: "char *diff_title(struct strbuf *sb,\n\t\t\t      const char *reroll_count,\n\t\t\t
      \     const char *generic,\n\t\t\t      const char *rerolled)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/builtin/log.c:1936,1
    - Dst: is_range_diff_range
      Src: /src/git/builtin/log.c:1937,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:1940,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/log.c:1942,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/log.c:1945,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/log.c:1945,1
    - Dst: die
      Src: /src/git/builtin/log.c:1947,1
    - Dst: _
      Src: /src/git/builtin/log.c:1947,1
    - Dst: warning
      Src: /src/git/builtin/log.c:1949,1
    - Dst: _
      Src: /src/git/builtin/log.c:1949,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/log.c:1950,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - r1
    - r2
    - prev
    - origin
    - head
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - char*
    - struct commit*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1930
    functionDepth: 13
    functionLinenumber: 1930
    functionLinenumberEnd: 1952
    functionName: infer_range_diff_ranges
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - strbuf_addf
    - is_range_diff_range
    - strbuf_addstr
    - _
    - warning
    linkageType: ''
    returnType: void
    signature: "void infer_range_diff_ranges(struct strbuf *r1,\n\t\t\t\t    struct
      strbuf *r2,\n\t\t\t\t    const char *prev,\n\t\t\t\t    struct commit *origin,\n\t\t\t\t
      \   struct commit *head)"
  - BBCount: 86
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2007,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2008,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2010,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2011,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:2013,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2013,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:2014,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2015,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:2016,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2017,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/log.c:2018,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2018,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2019,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:2020,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2021,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/log.c:2022,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2022,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2023,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/log.c:2024,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2025,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/log.c:2026,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2026,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2027,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/log.c:2028,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2029,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2030,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2030,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2031,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/log.c:2033,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2034,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2035,1
    - Dst: OPT_FILENAME
      Src: /src/git/builtin/log.c:2036,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2037,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2038,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2038,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2039,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2041,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2042,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2042,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2044,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2045,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:2047,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2048,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:2049,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2050,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:2051,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2052,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/log.c:2053,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2054,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/log.c:2056,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2056,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/log.c:2057,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2057,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2058,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/log.c:2059,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2059,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2059,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/log.c:2060,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2060,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2060,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2061,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2061,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2062,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/log.c:2064,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2064,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2065,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2066,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2066,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2067,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2069,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2069,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2070,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2073,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2073,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2074,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/log.c:2076,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2076,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2077,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/log.c:2078,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2078,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2079,1
    - Dst: OPT_FILENAME
      Src: /src/git/builtin/log.c:2081,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2082,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/log.c:2083,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2083,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:2084,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2085,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/log.c:2086,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2086,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2087,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/log.c:2089,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2089,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2090,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/log.c:2091,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2092,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/log.c:2093,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2094,1
    - Dst: OPT_END
      Src: /src/git/builtin/log.c:2095,1
    - Dst: format_config_init
      Src: /src/git/builtin/log.c:2098,1
    - Dst: init_diff_ui_defaults
      Src: /src/git/builtin/log.c:2099,1
    - Dst: init_display_notes
      Src: /src/git/builtin/log.c:2100,1
    - Dst: repo_config
      Src: /src/git/builtin/log.c:2101,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/log.c:2102,1
    - Dst: repo_config
      Src: /src/git/builtin/log.c:2103,1
    - Dst: memcpy
      Src: /src/git/builtin/log.c:2106,1
    - Dst: memset
      Src: /src/git/builtin/log.c:2115,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:2119,1
    - Dst: diff_set_noprefix
      Src: /src/git/builtin/log.c:2121,1
    - Dst: parse_options
      Src: /src/git/builtin/log.c:2133,1
    - Dst: cast_size_t_to_int
      Src: /src/git/builtin/log.c:2144,1
    - Dst: strlen
      Src: /src/git/builtin/log.c:2144,1
    - Dst: strlen
      Src: /src/git/builtin/log.c:2144,1
    - Dst: strlen
      Src: /src/git/builtin/log.c:2145,1
    - Dst: strlen
      Src: /src/git/builtin/log.c:2145,1
    - Dst: parse_cover_from_description
      Src: /src/git/builtin/log.c:2148,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/log.c:2153,1
    - Dst: strbuf_insertf
      Src: /src/git/builtin/log.c:2155,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/log.c:2159,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:2166,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/log.c:2167,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:2171,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:2174,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:2175,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/log.c:2177,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/log.c:2178,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:2182,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:2185,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/log.c:2186,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/log.c:2188,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/log.c:2189,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/log.c:2192,1
    - Dst: split_ident_line
      Src: /src/git/builtin/log.c:2195,1
    - Dst: strlen
      Src: /src/git/builtin/log.c:2195,1
    - Dst: die
      Src: /src/git/builtin/log.c:2196,1
    - Dst: _
      Src: /src/git/builtin/log.c:2196,1
    - Dst: die
      Src: /src/git/builtin/log.c:2211,1
    - Dst: _
      Src: /src/git/builtin/log.c:2211,1
    - Dst: die
      Src: /src/git/builtin/log.c:2213,1
    - Dst: _
      Src: /src/git/builtin/log.c:2213,1
    - Dst: setup_revisions
      Src: /src/git/builtin/log.c:2216,1
    - Dst: die
      Src: /src/git/builtin/log.c:2218,1
    - Dst: _
      Src: /src/git/builtin/log.c:2218,1
    - Dst: die
      Src: /src/git/builtin/log.c:2221,1
    - Dst: _
      Src: /src/git/builtin/log.c:2221,1
    - Dst: die
      Src: /src/git/builtin/log.c:2223,1
    - Dst: _
      Src: /src/git/builtin/log.c:2223,1
    - Dst: die
      Src: /src/git/builtin/log.c:2225,1
    - Dst: _
      Src: /src/git/builtin/log.c:2225,1
    - Dst: die
      Src: /src/git/builtin/log.c:2227,1
    - Dst: _
      Src: /src/git/builtin/log.c:2227,1
    - Dst: load_display_notes
      Src: /src/git/builtin/log.c:2247,1
    - Dst: die_for_incompatible_opt3
      Src: /src/git/builtin/log.c:2249,1
    - Dst: setup_pager
      Src: /src/git/builtin/log.c:2257,1
    - Dst: set_outdir
      Src: /src/git/builtin/log.c:2263,1
    - Dst: repo_settings_get_shared_repository
      Src: /src/git/builtin/log.c:2271,1
    - Dst: repo_settings_set_shared_repository
      Src: /src/git/builtin/log.c:2272,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/log.c:2273,1
    - Dst: die
      Src: /src/git/builtin/log.c:2278,1
    - Dst: _
      Src: /src/git/builtin/log.c:2278,1
    - Dst: repo_settings_set_shared_repository
      Src: /src/git/builtin/log.c:2281,1
    - Dst: mkdir
      Src: /src/git/builtin/log.c:2282,1
    - Dst: die_errno
      Src: /src/git/builtin/log.c:2283,1
    - Dst: _
      Src: /src/git/builtin/log.c:2283,1
    - Dst: add_head_to_pending
      Src: /src/git/builtin/log.c:2297,1
    - Dst: strcmp
      Src: /src/git/builtin/log.c:2306,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/log.c:2311,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/log.c:2311,1
    - Dst: skip_prefix
      Src: /src/git/builtin/log.c:2315,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:2316,1
    - Dst: xstrdup
      Src: /src/git/builtin/log.c:2318,1
    - Dst: oideq
      Src: /src/git/builtin/log.c:2332,1
    - Dst: get_patch_ids
      Src: /src/git/builtin/log.c:2335,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/log.c:2338,1
    - Dst: die
      Src: /src/git/builtin/log.c:2339,1
    - Dst: _
      Src: /src/git/builtin/log.c:2339,1
    - Dst: get_revision
      Src: /src/git/builtin/log.c:2341,1
    - Dst: has_commit_patch_id
      Src: /src/git/builtin/log.c:2348,1
    - Dst: commit_stack_push
      Src: /src/git/builtin/log.c:2351,1
    - Dst: die
      Src: /src/git/builtin/log.c:2381,1
    - Dst: _
      Src: /src/git/builtin/log.c:2381,1
    - Dst: get_commit_tree_oid
      Src: /src/git/builtin/log.c:2383,1
    - Dst: diff_title
      Src: /src/git/builtin/log.c:2384,1
    - Dst: _
      Src: /src/git/builtin/log.c:2385,1
    - Dst: _
      Src: /src/git/builtin/log.c:2386,1
    - Dst: die
      Src: /src/git/builtin/log.c:2392,1
    - Dst: _
      Src: /src/git/builtin/log.c:2392,1
    - Dst: die
      Src: /src/git/builtin/log.c:2396,1
    - Dst: _
      Src: /src/git/builtin/log.c:2396,1
    - Dst: infer_range_diff_ranges
      Src: /src/git/builtin/log.c:2398,1
    - Dst: diff_title
      Src: /src/git/builtin/log.c:2403,1
    - Dst: _
      Src: /src/git/builtin/log.c:2404,1
    - Dst: _
      Src: /src/git/builtin/log.c:2405,1
    - Dst: get_notes_args
      Src: /src/git/builtin/log.c:2406,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/log.c:2427,1
    - Dst: die_errno
      Src: /src/git/builtin/log.c:2428,1
    - Dst: _
      Src: /src/git/builtin/log.c:2428,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/log.c:2429,1
    - Dst: memset
      Src: /src/git/builtin/log.c:2434,1
    - Dst: get_base_commit
      Src: /src/git/builtin/log.c:2435,1
    - Dst: reset_revision_walk
      Src: /src/git/builtin/log.c:2437,1
    - Dst: clear_object_flags
      Src: /src/git/builtin/log.c:2438,1
    - Dst: prepare_bases
      Src: /src/git/builtin/log.c:2439,1
    - Dst: xmalloc
      Src: /src/git/builtin/log.c:2443,1
    - Dst: string_list_init_dup
      Src: /src/git/builtin/log.c:2444,1
    - Dst: clean_message_id
      Src: /src/git/builtin/log.c:2447,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/log.c:2448,1
    - Dst: gen_message_id
      Src: /src/git/builtin/log.c:2455,1
    - Dst: make_cover_letter
      Src: /src/git/builtin/log.c:2456,1
    - Dst: print_bases
      Src: /src/git/builtin/log.c:2460,1
    - Dst: print_signature
      Src: /src/git/builtin/log.c:2461,1
    - Dst: start_delayed_progress
      Src: /src/git/builtin/log.c:2471,1
    - Dst: _
      Src: /src/git/builtin/log.c:2472,1
    - Dst: display_progress
      Src: /src/git/builtin/log.c:2477,1
    - Dst: commit_stack_pop
      Src: /src/git/builtin/log.c:2478,1
    - Dst: free
      Src: /src/git/builtin/log.c:2509,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/log.c:2511,1
    - Dst: gen_message_id
      Src: /src/git/builtin/log.c:2514,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/log.c:2514,1
    - Dst: open_next_file
      Src: /src/git/builtin/log.c:2518,1
    - Dst: die
      Src: /src/git/builtin/log.c:2519,1
    - Dst: _
      Src: /src/git/builtin/log.c:2519,1
    - Dst: log_tree_commit
      Src: /src/git/builtin/log.c:2520,1
    - Dst: free_commit_buffer
      Src: /src/git/builtin/log.c:2521,1
    - Dst: print_bases
      Src: /src/git/builtin/log.c:2533,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:2535,1
    - Dst: print_signature
      Src: /src/git/builtin/log.c:2539,1
    - Dst: fclose
      Src: /src/git/builtin/log.c:2542,1
    - Dst: stop_progress
      Src: /src/git/builtin/log.c:2546,1
    - Dst: commit_stack_clear
      Src: /src/git/builtin/log.c:2547,1
    - Dst: free_patch_ids
      Src: /src/git/builtin/log.c:2549,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/log.c:2552,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:2553,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:2554,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:2555,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:2556,1
    - Dst: free
      Src: /src/git/builtin/log.c:2557,1
    - Dst: free
      Src: /src/git/builtin/log.c:2558,1
    - Dst: free
      Src: /src/git/builtin/log.c:2559,1
    - Dst: free
      Src: /src/git/builtin/log.c:2560,1
    - Dst: free
      Src: /src/git/builtin/log.c:2561,1
    - Dst: free
      Src: /src/git/builtin/log.c:2562,1
    - Dst: string_list_clear
      Src: /src/git/builtin/log.c:2564,1
    - Dst: free
      Src: /src/git/builtin/log.c:2565,1
    - Dst: release_revisions
      Src: /src/git/builtin/log.c:2567,1
    - Dst: format_config_release
      Src: /src/git/builtin/log.c:2568,1
    - Dst: strvec_clear
      Src: /src/git/builtin/log.c:2569,1
    CyclomaticComplexity: 122
    EdgeCount: 122
    ICount: 311
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 1954
    functionDepth: 30
    functionLinenumber: 1954
    functionLinenumberEnd: 2571
    functionName: cmd_format_patch
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - OPT_BOOL
    - make_cover_letter
    - free_patch_ids
    - strcmp
    - open_next_file
    - string_list_init_dup
    - get_main_ref_store
    - get_patch_ids
    - has_commit_patch_id
    - repo_settings_get_shared_repository
    - memcpy
    - strbuf_insertf
    - format_config_init
    - memset
    - oid_to_hex
    - print_bases
    - OPT_SET_INT_F
    - safe_create_leading_directories_const
    - xstrdup
    - string_list_append_nodup
    - add_head_to_pending
    - infer_range_diff_ranges
    - strbuf_addch
    - get_commit_tree_oid
    - strlen
    - strvec_clear
    - get_revision
    - fprintf
    - stop_progress
    - refs_resolve_ref_unsafe
    - strbuf_addf
    - repo_init_revisions
    - print_signature
    - xmalloc
    - commit_stack_clear
    - free
    - repo_config
    - prepare_bases
    - clean_message_id
    - free_commit_buffer
    - die
    - OPT_GROUP
    - oid_array_clear
    - init_diff_ui_defaults
    - prepare_revision_walk
    - split_ident_line
    - OPT_INTEGER
    - repo_settings_set_shared_repository
    - string_list_clear
    - format_config_release
    - die_errno
    - N_
    - skip_prefix
    - init_display_notes
    - reset_revision_walk
    - die_for_incompatible_opt3
    - gen_message_id
    - oideq
    - fclose
    - parse_options
    - log_tree_commit
    - strbuf_release
    - OPT_END
    - OPT_STRING_LIST
    - OPT__QUIET
    - OPT_FILENAME
    - diff_title
    - strbuf_read_file
    - diff_set_noprefix
    - commit_stack_push
    - mkdir
    - _
    - get_base_commit
    - OPT_CALLBACK_F
    - OPT_STRING
    - cast_size_t_to_int
    - start_delayed_progress
    - commit_stack_pop
    - release_revisions
    - parse_cover_from_description
    - strbuf_addstr
    - setup_pager
    - strbuf_detach
    - setup_revisions
    - load_display_notes
    - get_notes_args
    - OPT_CALLBACK
    - display_progress
    - set_outdir
    - clear_object_flags
    linkageType: ''
    returnType: int
    signature: "int cmd_format_patch(int argc,\n\t\t     const char **argv,\n\t\t
      \    const char *prefix,\n\t\t     struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/log.c:2576,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/log.c:2577,1
    - Dst: add_pending_object
      Src: /src/git/builtin/log.c:2581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - arg
    - revs
    - flags
    argTypes:
    - char*
    - struct rev_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2573
    functionDepth: 7
    functionLinenumber: 2573
    functionLinenumberEnd: 2586
    functionName: add_pending_commit
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - repo_get_oid
    - add_pending_object
    linkageType: ''
    returnType: int
    signature: int add_pending_commit(const char *arg, struct rev_info *revs, int
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/log.c:2597,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/log.c:2598,1
    - Dst: pp_commit_easy
      Src: /src/git/builtin/log.c:2601,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:2602,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/log.c:2603,1
    - Dst: strbuf_release
      Src: /src/git/builtin/log.c:2605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - sign
    - commit
    - verbose
    - abbrev
    - file
    argTypes:
    - char
    - struct commit*
    - int
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2593
    functionDepth: 16
    functionLinenumber: 2593
    functionLinenumberEnd: 2607
    functionName: print_commit
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 7
    functionsReached:
    - strbuf_release
    - repo_find_unique_abbrev
    - pp_commit_easy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void print_commit(char sign, struct commit *commit, int verbose,\n\t\t\t
      int abbrev, FILE *file)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/log.c:2628,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/log.c:2631,1
    - Dst: diff_root_tree_oid
      Src: /src/git/builtin/log.c:2634,1
    - Dst: diffcore_std
      Src: /src/git/builtin/log.c:2635,1
    - Dst: userdiff_find_by_path
      Src: /src/git/builtin/log.c:2643,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/builtin/log.c:2647,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/log.c:2648,1
    - Dst: oidset_insert
      Src: /src/git/builtin/log.c:2651,1
    - Dst: DIFF_FILE_VALID
      Src: /src/git/builtin/log.c:2652,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/log.c:2653,1
    - Dst: oidset_insert
      Src: /src/git/builtin/log.c:2656,1
    - Dst: diff_queue_clear
      Src: /src/git/builtin/log.c:2658,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - commit
    - opts
    - blobs
    argTypes:
    - struct commit*
    - struct diff_options*
    - struct oidset*
    assertStmts:
    - condition: (!commit->parents || !commit->parents->next)
      pos:
        line_end: 2627
        line_start: 2627
        source_file: /src/git/builtin/log.c
    constantsTouched: []
    func_position:
      end: 2659
      start: 2618
    functionDepth: 29
    functionLinenumber: 2618
    functionLinenumberEnd: 2659
    functionName: collect_diff_blob_oids
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - assert
    - diff_root_tree_oid
    - diff_tree_oid
    - userdiff_find_by_path
    - diffcore_std
    - diff_queue_clear
    - oidset_insert
    - odb_read_object_info_extended
    - DIFF_FILE_VALID
    linkageType: ''
    returnType: void
    signature: "void collect_diff_blob_oids(struct commit *commit,\n\t\t\t\t   struct
      diff_options *opts,\n\t\t\t\t   struct oidset *blobs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cmp_data
    - entry1
    - entry2
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2661
    functionDepth: 0
    functionLinenumber: 2661
    functionLinenumberEnd: 2667
    functionName: always_match
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int always_match(const void *cmp_data UNUSED,\n\t\t\tconst struct
      hashmap_entry *entry1 UNUSED,\n\t\t\tconst struct hashmap_entry *entry2 UNUSED,\n\t\t\tconst
      void *keydata UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_has_promisor_remote
      Src: /src/git/builtin/log.c:2691,1
    - Dst: patch_id_iter_first
      Src: /src/git/builtin/log.c:2702,1
    - Dst: patch_id_iter_next
      Src: /src/git/builtin/log.c:2704,1
    - Dst: collect_diff_blob_oids
      Src: /src/git/builtin/log.c:2706,1
    - Dst: collect_diff_blob_oids
      Src: /src/git/builtin/log.c:2710,1
    - Dst: oidset_size
      Src: /src/git/builtin/log.c:2717,1
    - Dst: oidset_iter_init
      Src: /src/git/builtin/log.c:2722,1
    - Dst: oidset_iter_next
      Src: /src/git/builtin/log.c:2723,1
    - Dst: oid_array_append
      Src: /src/git/builtin/log.c:2724,1
    - Dst: promisor_remote_get_direct
      Src: /src/git/builtin/log.c:2726,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/log.c:2728,1
    - Dst: oidset_clear
      Src: /src/git/builtin/log.c:2731,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - repo
    - list
    - ids
    argTypes:
    - struct repository*
    - struct commit_list*
    - struct patch_ids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2683
    functionDepth: 30
    functionLinenumber: 2683
    functionLinenumberEnd: 2732
    functionName: prefetch_cherry_blobs
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - oidset_size
    - collect_diff_blob_oids
    - patch_id_iter_first
    - repo_has_promisor_remote
    - oid_array_clear
    - oidset_clear
    - oidset_iter_next
    - patch_id_iter_next
    - promisor_remote_get_direct
    - oid_array_append
    - oidset_iter_init
    linkageType: ''
    returnType: void
    signature: "void prefetch_cherry_blobs(struct repository *repo,\n\t\t\t\t  struct
      commit_list *list,\n\t\t\t\t  struct patch_ids *ids)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OPT__ABBREV
      Src: /src/git/builtin/log.c:2750,1
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/log.c:2751,1
    - Dst: N_
      Src: /src/git/builtin/log.c:2751,1
    - Dst: OPT_END
      Src: /src/git/builtin/log.c:2752,1
    - Dst: parse_options
      Src: /src/git/builtin/log.c:2755,1
    - Dst: branch_get
      Src: /src/git/builtin/log.c:2768,1
    - Dst: branch_get_upstream
      Src: /src/git/builtin/log.c:2769,1
    - Dst: fprintf
      Src: /src/git/builtin/log.c:2771,1
    - Dst: _
      Src: /src/git/builtin/log.c:2771,1
    - Dst: usage_with_options
      Src: /src/git/builtin/log.c:2774,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/log.c:2778,1
    - Dst: add_pending_commit
      Src: /src/git/builtin/log.c:2781,1
    - Dst: die
      Src: /src/git/builtin/log.c:2782,1
    - Dst: _
      Src: /src/git/builtin/log.c:2782,1
    - Dst: add_pending_commit
      Src: /src/git/builtin/log.c:2783,1
    - Dst: die
      Src: /src/git/builtin/log.c:2784,1
    - Dst: _
      Src: /src/git/builtin/log.c:2784,1
    - Dst: oideq
      Src: /src/git/builtin/log.c:2789,1
    - Dst: get_patch_ids
      Src: /src/git/builtin/log.c:2793,1
    - Dst: add_pending_commit
      Src: /src/git/builtin/log.c:2795,1
    - Dst: die
      Src: /src/git/builtin/log.c:2796,1
    - Dst: _
      Src: /src/git/builtin/log.c:2796,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/log.c:2799,1
    - Dst: die
      Src: /src/git/builtin/log.c:2800,1
    - Dst: _
      Src: /src/git/builtin/log.c:2800,1
    - Dst: get_revision
      Src: /src/git/builtin/log.c:2801,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/log.c:2802,1
    - Dst: prefetch_cherry_blobs
      Src: /src/git/builtin/log.c:2805,1
    - Dst: has_commit_patch_id
      Src: /src/git/builtin/log.c:2811,1
    - Dst: print_commit
      Src: /src/git/builtin/log.c:2813,1
    - Dst: commit_list_free
      Src: /src/git/builtin/log.c:2816,1
    - Dst: free_patch_ids
      Src: /src/git/builtin/log.c:2817,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2734
    functionDepth: 31
    functionLinenumber: 2734
    functionLinenumberEnd: 2819
    functionName: cmd_cherry
    functionSourceFile: /src/git/builtin/log.c
    functionUses: 0
    functionsReached:
    - print_commit
    - parse_options
    - add_pending_commit
    - repo_init_revisions
    - free_patch_ids
    - usage_with_options
    - OPT_END
    - die
    - get_patch_ids
    - has_commit_patch_id
    - branch_get
    - prepare_revision_walk
    - branch_get_upstream
    - OPT__ABBREV
    - _
    - N_
    - OPT__VERBOSE
    - commit_list_free
    - prefetch_cherry_blobs
    - get_revision
    - commit_list_insert
    - fprintf
    - oideq
    linkageType: ''
    returnType: int
    signature: "int cmd_cherry(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_attach
      Src: /src/git/builtin/cat-file.c:65,1
    - Dst: apply_mailmap_to_header
      Src: /src/git/builtin/cat-file.c:66,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/cat-file.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - object_buf
    - size
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: replace_idents_using_mailmap
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - strbuf_attach
    - strbuf_detach
    - apply_mailmap_to_header
    linkageType: ''
    returnType: char
    signature: char *replace_idents_using_mailmap(char *object_buf, size_t *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object
      Src: /src/git/builtin/cat-file.c:77,1
    - Dst: error
      Src: /src/git/builtin/cat-file.c:79,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:79,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:80,1
    - Dst: S_ISREG
      Src: /src/git/builtin/cat-file.c:81,1
    - Dst: init_checkout_metadata
      Src: /src/git/builtin/cat-file.c:85,1
    - Dst: convert_to_working_tree
      Src: /src/git/builtin/cat-file.c:86,1
    - Dst: free
      Src: /src/git/builtin/cat-file.c:87,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/cat-file.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - path
    - mode
    - oid
    - buf
    - size
    argTypes:
    - char*
    - unsigned
    - struct object_id*
    - char**
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 71
    functionDepth: 12
    functionLinenumber: 71
    functionLinenumberEnd: 94
    functionName: filter_object
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 5
    functionsReached:
    - error
    - oid_to_hex
    - init_checkout_metadata
    - convert_to_working_tree
    - strbuf_detach
    - _
    - free
    - odb_read_object
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int filter_object(const char *path, unsigned mode,\n\t\t\t const struct
      object_id *oid,\n\t\t\t char **buf, unsigned long *size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_stream_blob_to_fd
      Src: /src/git/builtin/cat-file.c:98,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:99,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: stream_blob
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - odb_stream_blob_to_fd
    - die
    linkageType: ''
    returnType: int
    signature: int stream_blob(const struct object_id *oid)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_with_context
      Src: /src/git/builtin/cat-file.c:122,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:124,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/cat-file.c:135,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:136,1
    - Dst: printf
      Src: /src/git/builtin/cat-file.c:137,1
    - Dst: type_name
      Src: /src/git/builtin/cat-file.c:137,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/cat-file.c:149,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:150,1
    - Dst: replace_idents_using_mailmap
      Src: /src/git/builtin/cat-file.c:154,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/builtin/cat-file.c:155,1
    - Dst: printf
      Src: /src/git/builtin/cat-file.c:158,1
    - Dst: odb_has_object
      Src: /src/git/builtin/cat-file.c:163,1
    - Dst: filter_object
      Src: /src/git/builtin/cat-file.c:169,1
    - Dst: textconv_object
      Src: /src/git/builtin/cat-file.c:177,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/cat-file.c:183,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:185,1
    - Dst: cmd_ls_tree
      Src: /src/git/builtin/cat-file.c:192,1
    - Dst: stream_blob
      Src: /src/git/builtin/cat-file.c:197,1
    - Dst: odb_read_object
      Src: /src/git/builtin/cat-file.c:200,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:203,1
    - Dst: replace_idents_using_mailmap
      Src: /src/git/builtin/cat-file.c:207,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/builtin/cat-file.c:208,1
    - Dst: type_from_string
      Src: /src/git/builtin/cat-file.c:216,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/cat-file.c:220,1
    - Dst: odb_read_object
      Src: /src/git/builtin/cat-file.c:222,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:227,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:227,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:227,1
    - Dst: skip_prefix
      Src: /src/git/builtin/cat-file.c:229,1
    - Dst: get_oid_hex_algop
      Src: /src/git/builtin/cat-file.c:230,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:232,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:232,1
    - Dst: free
      Src: /src/git/builtin/cat-file.c:233,1
    - Dst: oidcpy
      Src: /src/git/builtin/cat-file.c:235,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/cat-file.c:237,1
    - Dst: stream_blob
      Src: /src/git/builtin/cat-file.c:239,1
    - Dst: odb_read_object_peeled
      Src: /src/git/builtin/cat-file.c:249,1
    - Dst: replace_idents_using_mailmap
      Src: /src/git/builtin/cat-file.c:254,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/builtin/cat-file.c:255,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:260,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:264,1
    - Dst: write_or_die
      Src: /src/git/builtin/cat-file.c:266,1
    - Dst: free
      Src: /src/git/builtin/cat-file.c:269,1
    - Dst: object_context_release
      Src: /src/git/builtin/cat-file.c:270,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 108
    argCount: 3
    argNames:
    - opt
    - exp_type
    - obj_name
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 103
    functionDepth: 26
    functionLinenumber: 103
    functionLinenumberEnd: 272
    functionName: cat_one_file
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - object_context_release
    - textconv_object
    - odb_read_object_info
    - free
    - type_name
    - get_oid_with_context
    - printf
    - write_or_die
    - die
    - odb_has_object
    - odb_read_object
    - oid_to_hex
    - _
    - skip_prefix
    - replace_idents_using_mailmap
    - stream_blob
    - type_from_string
    - get_oid_hex_algop
    - cmd_ls_tree
    - cast_size_t_to_ulong
    - filter_object
    - odb_read_object_peeled
    - odb_read_object_info_extended
    linkageType: ''
    returnType: int
    signature: int cat_one_file(int opt, const char *exp_type, const char *obj_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/cat-file.c:314,1
    - Dst: memcmp
      Src: /src/git/builtin/cat-file.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - atom
    - s
    - slen
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: is_atom
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_atom(const char *atom, const char *s, int slen)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: is_atom
      Src: /src/git/builtin/cat-file.c:321,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/cat-file.c:323,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:323,1
    - Dst: is_atom
      Src: /src/git/builtin/cat-file.c:324,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/cat-file.c:328,1
    - Dst: type_name
      Src: /src/git/builtin/cat-file.c:328,1
    - Dst: is_atom
      Src: /src/git/builtin/cat-file.c:329,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/cat-file.c:333,1
    - Dst: is_atom
      Src: /src/git/builtin/cat-file.c:334,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/cat-file.c:338,1
    - Dst: is_atom
      Src: /src/git/builtin/cat-file.c:339,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/cat-file.c:343,1
    - Dst: is_atom
      Src: /src/git/builtin/cat-file.c:344,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/cat-file.c:348,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:349,1
    - Dst: is_atom
      Src: /src/git/builtin/cat-file.c:350,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/cat-file.c:352,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 4
    argNames:
    - sb
    - atom
    - len
    - data
    argTypes:
    - struct strbuf*
    - char*
    - int
    - struct expand_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 356
    functionName: expand_atom
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - is_atom
    - strbuf_addf
    - strbuf_addstr
    - type_name
    linkageType: ''
    returnType: int
    signature: "int expand_atom(struct strbuf *sb, const char *atom, int len,\n\t\t
      \      struct expand_data *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_expand_step
      Src: /src/git/builtin/cat-file.c:361,1
    - Dst: skip_prefix
      Src: /src/git/builtin/cat-file.c:364,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/cat-file.c:365,1
    - Dst: strchr
      Src: /src/git/builtin/cat-file.c:366,1
    - Dst: expand_atom
      Src: /src/git/builtin/cat-file.c:367,1
    - Dst: strbuf_expand_bad_format
      Src: /src/git/builtin/cat-file.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - sb
    - start
    - data
    argTypes:
    - struct strbuf*
    - char*
    - struct expand_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 358
    functionDepth: 5
    functionLinenumber: 358
    functionLinenumberEnd: 372
    functionName: expand_format
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - strchr
    - strbuf_addch
    - strbuf_expand_step
    - skip_prefix
    - expand_atom
    - strbuf_expand_bad_format
    linkageType: ''
    returnType: void
    signature: "void expand_format(struct strbuf *sb, const char *start,\n\t\t\t  struct
      expand_data *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/git/builtin/cat-file.c:377,1
    - Dst: die_errno
      Src: /src/git/builtin/cat-file.c:378,1
    - Dst: write_or_die
      Src: /src/git/builtin/cat-file.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - data
    - len
    argTypes:
    - struct batch_options*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: batch_write
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - fwrite
    - die_errno
    linkageType: ''
    returnType: void
    signature: void batch_write(struct batch_options *opt, const void *data, int len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/cat-file.c:387,1
    - Dst: fflush
      Src: /src/git/builtin/cat-file.c:391,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:397,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:397,1
    - Dst: filter_object
      Src: /src/git/builtin/cat-file.c:400,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:402,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:403,1
    - Dst: textconv_object
      Src: /src/git/builtin/cat-file.c:406,1
    - Dst: odb_read_object
      Src: /src/git/builtin/cat-file.c:409,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:412,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:413,1
    - Dst: BUG
      Src: /src/git/builtin/cat-file.c:415,1
    - Dst: batch_write
      Src: /src/git/builtin/cat-file.c:416,1
    - Dst: free
      Src: /src/git/builtin/cat-file.c:417,1
    - Dst: stream_blob
      Src: /src/git/builtin/cat-file.c:419,1
    - Dst: odb_read_object
      Src: /src/git/builtin/cat-file.c:427,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:430,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:430,1
    - Dst: replace_idents_using_mailmap
      Src: /src/git/builtin/cat-file.c:434,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/builtin/cat-file.c:435,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:439,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:439,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:441,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:441,1
    - Dst: batch_write
      Src: /src/git/builtin/cat-file.c:443,1
    - Dst: free
      Src: /src/git/builtin/cat-file.c:444,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - opt
    - data
    argTypes:
    - struct batch_options*
    - struct expand_data*
    assertStmts:
    - condition: (data->info.typep)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/git/builtin/cat-file.c
    constantsTouched: []
    func_position:
      end: 446
      start: 383
    functionDepth: 26
    functionLinenumber: 383
    functionLinenumberEnd: 446
    functionName: print_object_or_die
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - assert
    - stream_blob
    - textconv_object
    - batch_write
    - filter_object
    - fflush
    - cast_size_t_to_ulong
    - free
    - odb_read_object
    - BUG
    - replace_idents_using_mailmap
    linkageType: ''
    returnType: void
    signature: void print_object_or_die(struct batch_options *opt, struct expand_data
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/cat-file.c:451,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:451,1
    - Dst: type_name
      Src: /src/git/builtin/cat-file.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - scratch
    - data
    - opt
    argTypes:
    - struct strbuf*
    - struct expand_data*
    - struct batch_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 454
    functionName: print_default_format
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - type_name
    - oid_to_hex
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void print_default_format(struct strbuf *scratch, struct expand_data
      *data,\n\t\t\t\t struct batch_options *opt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/cat-file.c:461,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:461,1
    - Dst: fflush
      Src: /src/git/builtin/cat-file.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - opt
    - obj_name
    - oid
    - status
    argTypes:
    - struct batch_options*
    - char*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 464
    functionName: report_object_status
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fflush
    - printf
    linkageType: ''
    returnType: void
    signature: "void report_object_status(struct batch_options *opt,\n\t\t\t\t const
      char *obj_name,\n\t\t\t\t const struct object_id *oid,\n\t\t\t\t const char
      *status)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: packed_object_info
      Src: /src/git/builtin/cat-file.c:490,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/cat-file.c:492,1
    - Dst: report_object_status
      Src: /src/git/builtin/cat-file.c:497,1
    - Dst: report_object_status
      Src: /src/git/builtin/cat-file.c:499,1
    - Dst: report_object_status
      Src: /src/git/builtin/cat-file.c:509,1
    - Dst: report_object_status
      Src: /src/git/builtin/cat-file.c:518,1
    - Dst: report_object_status
      Src: /src/git/builtin/cat-file.c:526,1
    - Dst: BUG
      Src: /src/git/builtin/cat-file.c:532,1
    - Dst: odb_read_object
      Src: /src/git/builtin/cat-file.c:539,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:542,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:542,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/cat-file.c:542,1
    - Dst: replace_idents_using_mailmap
      Src: /src/git/builtin/cat-file.c:543,1
    - Dst: cast_size_t_to_ulong
      Src: /src/git/builtin/cat-file.c:544,1
    - Dst: free
      Src: /src/git/builtin/cat-file.c:546,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/cat-file.c:550,1
    - Dst: print_default_format
      Src: /src/git/builtin/cat-file.c:553,1
    - Dst: expand_format
      Src: /src/git/builtin/cat-file.c:555,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/cat-file.c:556,1
    - Dst: batch_write
      Src: /src/git/builtin/cat-file.c:559,1
    - Dst: print_object_or_die
      Src: /src/git/builtin/cat-file.c:562,1
    - Dst: batch_write
      Src: /src/git/builtin/cat-file.c:563,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 63
    argCount: 6
    argNames:
    - obj_name
    - scratch
    - opt
    - data
    - pack
    - offset
    argTypes:
    - char*
    - struct strbuf*
    - struct batch_options*
    - struct expand_data*
    - struct packed_git*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 471
    functionDepth: 27
    functionLinenumber: 471
    functionLinenumberEnd: 565
    functionName: batch_object_write
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - print_default_format
    - strbuf_reset
    - expand_format
    - print_object_or_die
    - report_object_status
    - strbuf_addch
    - batch_write
    - cast_size_t_to_ulong
    - _
    - free
    - odb_read_object
    - odb_read_object_info_extended
    - BUG
    - replace_idents_using_mailmap
    - packed_object_info
    linkageType: ''
    returnType: void
    signature: "void batch_object_write(const char *obj_name,\n\t\t\t       struct
      strbuf *scratch,\n\t\t\t       struct batch_options *opt,\n\t\t\t       struct
      expand_data *data,\n\t\t\t       struct packed_git *pack,\n\t\t\t       off_t
      offset)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_oid_with_context
      Src: /src/git/builtin/cat-file.c:578,1
    - Dst: report_object_status
      Src: /src/git/builtin/cat-file.c:583,1
    - Dst: report_object_status
      Src: /src/git/builtin/cat-file.c:586,1
    - Dst: printf
      Src: /src/git/builtin/cat-file.c:589,1
    - Dst: strlen
      Src: /src/git/builtin/cat-file.c:590,1
    - Dst: printf
      Src: /src/git/builtin/cat-file.c:594,1
    - Dst: strlen
      Src: /src/git/builtin/cat-file.c:595,1
    - Dst: printf
      Src: /src/git/builtin/cat-file.c:599,1
    - Dst: strlen
      Src: /src/git/builtin/cat-file.c:600,1
    - Dst: BUG
      Src: /src/git/builtin/cat-file.c:604,1
    - Dst: fflush
      Src: /src/git/builtin/cat-file.c:608,1
    - Dst: printf
      Src: /src/git/builtin/cat-file.c:614,1
    - Dst: fflush
      Src: /src/git/builtin/cat-file.c:617,1
    - Dst: batch_object_write
      Src: /src/git/builtin/cat-file.c:622,1
    - Dst: object_context_release
      Src: /src/git/builtin/cat-file.c:625,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - obj_name
    - scratch
    - opt
    - data
    argTypes:
    - char*
    - struct strbuf*
    - struct batch_options*
    - struct expand_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 567
    functionDepth: 28
    functionLinenumber: 567
    functionLinenumberEnd: 626
    functionName: batch_one_object
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - object_context_release
    - report_object_status
    - batch_object_write
    - strlen
    - fflush
    - get_oid_with_context
    - BUG
    - printf
    linkageType: ''
    returnType: void
    signature: "void batch_one_object(const char *obj_name,\n\t\t\t     struct strbuf
      *scratch,\n\t\t\t     struct batch_options *opt,\n\t\t\t     struct expand_data
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/builtin/cat-file.c:638,1
    - Dst: batch_object_write
      Src: /src/git/builtin/cat-file.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - oid
    - vdata
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 635
    functionDepth: 28
    functionLinenumber: 635
    functionLinenumberEnd: 642
    functionName: batch_object_cb
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - batch_object_write
    - oidcpy
    linkageType: ''
    returnType: int
    signature: int batch_object_cb(const struct object_id *oid, void *vdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oid_array_append
      Src: /src/git/builtin/cat-file.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - oid
    - UNUSED
    - offset
    - data
    argTypes:
    - struct object_id*
    - struct packed_git*
    - off_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 651
    functionName: collect_object
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - oid_array_append
    linkageType: ''
    returnType: int
    signature: "int collect_object(const struct object_id *oid,\n\t\t\t  struct packed_git
      *pack UNUSED,\n\t\t\t  off_t offset UNUSED,\n\t\t\t  void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidset_insert
      Src: /src/git/builtin/cat-file.c:660,1
    - Dst: oidcpy
      Src: /src/git/builtin/cat-file.c:663,1
    - Dst: batch_object_write
      Src: /src/git/builtin/cat-file.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - oid
    - pack
    - offset
    - vdata
    argTypes:
    - struct object_id*
    - struct packed_git*
    - off_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 653
    functionDepth: 28
    functionLinenumber: 653
    functionLinenumberEnd: 667
    functionName: batch_unordered_object
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - batch_object_write
    - oidset_insert
    linkageType: ''
    returnType: int
    signature: "int batch_unordered_object(const struct object_id *oid,\n\t\t\t\t
      \ struct packed_git *pack,\n\t\t\t\t  off_t offset,\n\t\t\t\t  void *vdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: batch_one_object
      Src: /src/git/builtin/cat-file.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - opt
    - line
    - output
    - data
    argTypes:
    - struct batch_options*
    - char*
    - struct strbuf*
    - struct expand_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 677
    functionDepth: 29
    functionLinenumber: 677
    functionLinenumberEnd: 684
    functionName: parse_cmd_contents
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - batch_one_object
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_contents(struct batch_options *opt,\n\t\t\t     const
      char *line,\n\t\t\t     struct strbuf *output,\n\t\t\t     struct expand_data
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: batch_one_object
      Src: /src/git/builtin/cat-file.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - opt
    - line
    - output
    - data
    argTypes:
    - struct batch_options*
    - char*
    - struct strbuf*
    - struct expand_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 686
    functionDepth: 29
    functionLinenumber: 686
    functionLinenumberEnd: 693
    functionName: parse_cmd_info
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - batch_one_object
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_info(struct batch_options *opt,\n\t\t\t   const char
      *line,\n\t\t\t   struct strbuf *output,\n\t\t\t   struct expand_data *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/cat-file.c:704,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:704,1
    - Dst: fn
      Src: /src/git/builtin/cat-file.c:707,1
    - Dst: fflush
      Src: /src/git/builtin/cat-file.c:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - opt
    - output
    - data
    - cmd
    - nr
    argTypes:
    - struct batch_options*
    - struct strbuf*
    - struct expand_data*
    - struct queued_cmd*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 710
    functionName: dispatch_calls
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - fn
    - die
    - fflush
    - _
    linkageType: ''
    returnType: void
    signature: "void dispatch_calls(struct batch_options *opt,\n\t\tstruct strbuf
      *output,\n\t\tstruct expand_data *data,\n\t\tstruct queued_cmd *cmd,\n\t\tint
      nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/cat-file.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cmd
    - nr
    argTypes:
    - struct queued_cmd*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 720
    functionName: free_cmds
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void free_cmds(struct queued_cmd *cmd, size_t *nr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_getdelim_strip_crlf
      Src: /src/git/builtin/cat-file.c:741,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:748,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:748,1
    - Dst: isspace
      Src: /src/git/builtin/cat-file.c:749,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:750,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:750,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/cat-file.c:752,1
    - Dst: skip_prefix
      Src: /src/git/builtin/cat-file.c:753,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:759,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:759,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:764,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:764,1
    - Dst: die
      Src: /src/git/builtin/cat-file.c:772,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:772,1
    - Dst: strcmp
      Src: /src/git/builtin/cat-file.c:774,1
    - Dst: dispatch_calls
      Src: /src/git/builtin/cat-file.c:775,1
    - Dst: free_cmds
      Src: /src/git/builtin/cat-file.c:776,1
    - Dst: struct parse_cmd*::fn
      Src: /src/git/builtin/cat-file.c:778,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/cat-file.c:780,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/cat-file.c:782,1
    - Dst: git_env_bool
      Src: /src/git/builtin/cat-file.c:789,1
    - Dst: dispatch_calls
      Src: /src/git/builtin/cat-file.c:790,1
    - Dst: free_cmds
      Src: /src/git/builtin/cat-file.c:791,1
    - Dst: free_cmds
      Src: /src/git/builtin/cat-file.c:794,1
    - Dst: free
      Src: /src/git/builtin/cat-file.c:795,1
    - Dst: strbuf_release
      Src: /src/git/builtin/cat-file.c:796,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - opt
    - output
    - data
    argTypes:
    - struct batch_options*
    - struct strbuf*
    - struct expand_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 733
    functionDepth: 6
    functionLinenumber: 733
    functionLinenumberEnd: 797
    functionName: batch_objects_command
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - isspace
    - ARRAY_SIZE
    - strbuf_release
    - free_cmds
    - die
    - xstrdup_or_null
    - git_env_bool
    - struct parse_cmd*::fn
    - dispatch_calls
    - strbuf_getdelim_strip_crlf
    - strcmp
    - ALLOC_GROW
    - _
    - free
    - skip_prefix
    linkageType: ''
    returnType: void
    signature: "void batch_objects_command(struct batch_options *opt,\n\t\t\t\t    struct
      strbuf *output,\n\t\t\t\t    struct expand_data *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct for_each_object_payload*::callback
      Src: /src/git/builtin/cat-file.c:815,1
    - Dst: struct for_each_object_payload*::callback
      Src: /src/git/builtin/cat-file.c:817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - oid
    - oi
    - _payload
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 818
    functionName: batch_one_object_oi
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - struct for_each_object_payload*::callback
    linkageType: ''
    returnType: int
    signature: "int batch_one_object_oi(const struct object_id *oid,\n\t\t\t       struct
      object_info *oi,\n\t\t\t       void *_payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct for_each_object_payload*::callback
      Src: /src/git/builtin/cat-file.c:826,1
    - Dst: nth_packed_object_offset
      Src: /src/git/builtin/cat-file.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - oid
    - pack
    - pos
    - _payload
    argTypes:
    - struct object_id*
    - struct packed_git*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 820
    functionDepth: 4
    functionLinenumber: 820
    functionLinenumberEnd: 828
    functionName: batch_one_object_packed
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - nth_packed_object_offset
    - struct for_each_object_payload*::callback
    linkageType: ''
    returnType: int
    signature: "int batch_one_object_packed(const struct object_id *oid,\n\t\t\t\t
      \  struct packed_git *pack,\n\t\t\t\t   uint32_t pos,\n\t\t\t\t   void *_payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct for_each_object_payload*::callback
      Src: /src/git/builtin/cat-file.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - oid
    - UNUSED
    - UNUSED
    - UNUSED
    - pack
    - offset
    - _payload
    argTypes:
    - struct object_id*
    - enum object_type
    - int
    - uint32_t
    - struct packed_git*
    - off_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 840
    functionName: batch_one_object_bitmapped
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - struct for_each_object_payload*::callback
    linkageType: ''
    returnType: int
    signature: "int batch_one_object_bitmapped(const struct object_id *oid,\n\t\t\t\t
      \     enum object_type type UNUSED,\n\t\t\t\t      int flags UNUSED,\n\t\t\t\t
      \     uint32_t hash UNUSED,\n\t\t\t\t      struct packed_git *pack,\n\t\t\t\t
      \     off_t offset,\n\t\t\t\t      void *_payload)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/builtin/cat-file.c:863,1
    - Dst: odb_source_loose_for_each_object
      Src: /src/git/builtin/cat-file.c:865,1
    - Dst: prepare_bitmap_git
      Src: /src/git/builtin/cat-file.c:872,1
    - Dst: for_each_bitmapped_object
      Src: /src/git/builtin/cat-file.c:873,1
    - Dst: bitmap_index_contains_pack
      Src: /src/git/builtin/cat-file.c:878,1
    - Dst: open_pack_index
      Src: /src/git/builtin/cat-file.c:879,1
    - Dst: for_each_object_in_pack
      Src: /src/git/builtin/cat-file.c:881,1
    - Dst: odb_source_files_downcast
      Src: /src/git/builtin/cat-file.c:888,1
    - Dst: packfile_store_for_each_object
      Src: /src/git/builtin/cat-file.c:889,1
    - Dst: free_bitmap_index
      Src: /src/git/builtin/cat-file.c:896,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 4
    argNames:
    - opt
    - callback
    - flags
    - _payload
    argTypes:
    - struct batch_options*
    - for_each_object_fn
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 842
    functionDepth: 30
    functionLinenumber: 842
    functionLinenumberEnd: 897
    functionName: batch_each_object
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - odb_source_files_downcast
    - for_each_bitmapped_object
    - odb_prepare_alternates
    - prepare_bitmap_git
    - for_each_object_in_pack
    - free_bitmap_index
    - bitmap_index_contains_pack
    - packfile_store_for_each_object
    - open_pack_index
    - odb_source_loose_for_each_object
    linkageType: ''
    returnType: void
    signature: "void batch_each_object(struct batch_options *opt,\n\t\t\t      for_each_object_fn
      callback,\n\t\t\t      unsigned flags,\n\t\t\t      void *_payload)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_index_contains_pack
      Src: /src/git/builtin/cat-file.c:878,1
    - Dst: open_pack_index
      Src: /src/git/builtin/cat-file.c:879,1
    - Dst: for_each_object_in_pack
      Src: /src/git/builtin/cat-file.c:881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 877
    functionDepth: 12
    functionLinenumber: 877
    functionLinenumberEnd: 883
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 8
    functionsReached:
    - for_each_object_in_pack
    - open_pack_index
    - bitmap_index_contains_pack
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(the_repository, pack)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: expand_format
      Src: /src/git/builtin/cat-file.c:913,1
    - Dst: strbuf_release
      Src: /src/git/builtin/cat-file.c:917,1
    - Dst: strcmp
      Src: /src/git/builtin/cat-file.c:921,1
    - Dst: memcmp
      Src: /src/git/builtin/cat-file.c:934,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/builtin/cat-file.c:938,1
    - Dst: warning
      Src: /src/git/builtin/cat-file.c:939,1
    - Dst: disable_replace_refs
      Src: /src/git/builtin/cat-file.c:941,1
    - Dst: batch_each_object
      Src: /src/git/builtin/cat-file.c:952,1
    - Dst: oidset_clear
      Src: /src/git/builtin/cat-file.c:955,1
    - Dst: batch_each_object
      Src: /src/git/builtin/cat-file.c:959,1
    - Dst: oid_array_for_each_unique
      Src: /src/git/builtin/cat-file.c:960,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/cat-file.c:962,1
    - Dst: strbuf_release
      Src: /src/git/builtin/cat-file.c:965,1
    - Dst: batch_objects_command
      Src: /src/git/builtin/cat-file.c:980,1
    - Dst: strbuf_getdelim_strip_crlf
      Src: /src/git/builtin/cat-file.c:984,1
    - Dst: strpbrk
      Src: /src/git/builtin/cat-file.c:991,1
    - Dst: strchr
      Src: /src/git/builtin/cat-file.c:993,1
    - Dst: batch_one_object
      Src: /src/git/builtin/cat-file.c:999,1
    - Dst: strbuf_release
      Src: /src/git/builtin/cat-file.c:1003,1
    - Dst: strbuf_release
      Src: /src/git/builtin/cat-file.c:1004,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct batch_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 899
    functionDepth: 31
    functionLinenumber: 899
    functionLinenumberEnd: 1007
    functionName: batch_objects
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - repo_has_promisor_remote
    - batch_one_object
    - expand_format
    - disable_replace_refs
    - batch_each_object
    - oid_array_clear
    - oidset_clear
    - strchr
    - batch_objects_command
    - strbuf_getdelim_strip_crlf
    - oid_array_for_each_unique
    - strcmp
    - strpbrk
    - warning
    - memcmp
    linkageType: ''
    returnType: int
    signature: int batch_objects(struct batch_options *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: userdiff_config
      Src: /src/git/builtin/cat-file.c:1012,1
    - Dst: git_default_config
      Src: /src/git/builtin/cat-file.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1009
    functionDepth: 4
    functionLinenumber: 1009
    functionLinenumberEnd: 1016
    functionName: git_cat_file_config
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - userdiff_config
    - git_default_config
    linkageType: ''
    returnType: int
    signature: "int git_cat_file_config(const char *var, const char *value,\n\t\t\t
      \      const struct config_context *ctx, void *cb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/cat-file.c:1024,1
    - Dst: error
      Src: /src/git/builtin/cat-file.c:1027,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1027,1
    - Dst: strcmp
      Src: /src/git/builtin/cat-file.c:1032,1
    - Dst: strcmp
      Src: /src/git/builtin/cat-file.c:1034,1
    - Dst: strcmp
      Src: /src/git/builtin/cat-file.c:1036,1
    - Dst: BUG
      Src: /src/git/builtin/cat-file.c:1039,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1044
    functionName: batch_option_callback
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - error
    - strcmp
    - BUG_ON_OPT_NEG
    - BUG
    - _
    linkageType: ''
    returnType: int
    signature: "int batch_option_callback(const struct option *opt,\n\t\t\t\t const
      char *arg,\n\t\t\t\t int unset)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1064,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1065,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1066,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1068,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/cat-file.c:1075,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1075,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/cat-file.c:1076,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1077,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/cat-file.c:1078,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1078,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/cat-file.c:1080,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1080,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/cat-file.c:1081,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1081,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/cat-file.c:1082,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1082,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/cat-file.c:1083,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1084,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/cat-file.c:1085,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1085,1
    - Dst: OPT_ALIAS
      Src: /src/git/builtin/cat-file.c:1086,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/cat-file.c:1088,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1088,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/cat-file.c:1089,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1089,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1090,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/cat-file.c:1093,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1093,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1094,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/cat-file.c:1097,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1097,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/cat-file.c:1099,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1099,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/cat-file.c:1100,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1100,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1101,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/cat-file.c:1104,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1105,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/cat-file.c:1107,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1107,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/cat-file.c:1108,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1108,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/cat-file.c:1109,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1110,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/cat-file.c:1111,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1112,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/cat-file.c:1114,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1114,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/cat-file.c:1115,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1116,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/cat-file.c:1117,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1118,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/cat-file.c:1119,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1119,1
    - Dst: N_
      Src: /src/git/builtin/cat-file.c:1120,1
    - Dst: OPT_PARSE_LIST_OBJECTS_FILTER
      Src: /src/git/builtin/cat-file.c:1121,1
    - Dst: OPT_END
      Src: /src/git/builtin/cat-file.c:1122,1
    - Dst: repo_config
      Src: /src/git/builtin/cat-file.c:1125,1
    - Dst: parse_options
      Src: /src/git/builtin/cat-file.c:1129,1
    - Dst: read_mailmap
      Src: /src/git/builtin/cat-file.c:1134,1
    - Dst: usage
      Src: /src/git/builtin/cat-file.c:1143,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1143,1
    - Dst: usagef
      Src: /src/git/builtin/cat-file.c:1146,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1146,1
    - Dst: list_object_filter_config_name
      Src: /src/git/builtin/cat-file.c:1147,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1156,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1156,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1158,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1165,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1165,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1168,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1168,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1171,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1171,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1174,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1174,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1177,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1177,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/cat-file.c:1190,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1198,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1198,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/cat-file.c:1201,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1201,1
    - Dst: batch_objects
      Src: /src/git/builtin/cat-file.c:1204,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1210,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1210,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1214,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1214,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1218,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1218,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/cat-file.c:1223,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1223,1
    - Dst: usage_with_options
      Src: /src/git/builtin/cat-file.c:1226,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/cat-file.c:1228,1
    - Dst: _
      Src: /src/git/builtin/cat-file.c:1228,1
    - Dst: cat_one_file
      Src: /src/git/builtin/cat-file.c:1235,1
    - Dst: list_objects_filter_release
      Src: /src/git/builtin/cat-file.c:1238,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 82
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1046
    functionDepth: 32
    functionLinenumber: 1046
    functionLinenumberEnd: 1240
    functionName: cmd_cat_file
    functionSourceFile: /src/git/builtin/cat-file.c
    functionUses: 0
    functionsReached:
    - OPT_PARSE_LIST_OBJECTS_FILTER
    - parse_options
    - cat_one_file
    - OPT_BOOL
    - list_object_filter_config_name
    - repo_config
    - list_objects_filter_release
    - usage_with_options
    - OPT_ALIAS
    - OPT_END
    - OPT_GROUP
    - read_mailmap
    - batch_objects
    - OPT_CMDMODE
    - OPT_HIDDEN_BOOL
    - _
    - N_
    - usagef
    - usage_msg_opt
    - OPT_BOOL_F
    - OPT_CALLBACK_F
    - OPT_STRING
    - usage
    - prepare_repo_settings
    - usage_msg_optf
    linkageType: ''
    returnType: int
    signature: "int cmd_cat_file(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: write_name_quoted
      Src: /src/git/builtin/check-ignore.c:43,1
    - Dst: quote_c_style
      Src: /src/git/builtin/check-ignore.c:46,1
    - Dst: printf
      Src: /src/git/builtin/check-ignore.c:47,1
    - Dst: printf
      Src: /src/git/builtin/check-ignore.c:52,1
    - Dst: quote_c_style
      Src: /src/git/builtin/check-ignore.c:54,1
    - Dst: fputc
      Src: /src/git/builtin/check-ignore.c:55,1
    - Dst: printf
      Src: /src/git/builtin/check-ignore.c:59,1
    - Dst: printf
      Src: /src/git/builtin/check-ignore.c:62,1
    - Dst: printf
      Src: /src/git/builtin/check-ignore.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - path
    - pattern
    argTypes:
    - char*
    - struct path_pattern*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 71
    functionName: output_pattern
    functionSourceFile: /src/git/builtin/check-ignore.c
    functionUses: 0
    functionsReached:
    - write_name_quoted
    - fputc
    - quote_c_style
    - printf
    linkageType: ''
    returnType: void
    signature: void output_pattern(const char *path, struct path_pattern *pattern)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/check-ignore.c:84,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/check-ignore.c:92,1
    - Dst: die_path_inside_submodule
      Src: /src/git/builtin/check-ignore.c:98,1
    - Dst: find_pathspecs_matching_against_index
      Src: /src/git/builtin/check-ignore.c:105,1
    - Dst: last_matching_pattern
      Src: /src/git/builtin/check-ignore.c:112,1
    - Dst: output_pattern
      Src: /src/git/builtin/check-ignore.c:119,1
    - Dst: free
      Src: /src/git/builtin/check-ignore.c:123,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/check-ignore.c:124,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 4
    argNames:
    - dir
    - prefix
    - argc
    - argv
    argTypes:
    - struct dir_struct*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 73
    functionDepth: 15
    functionLinenumber: 73
    functionLinenumberEnd: 127
    functionName: check_ignore
    functionSourceFile: /src/git/builtin/check-ignore.c
    functionUses: 0
    functionsReached:
    - clear_pathspec
    - find_pathspecs_matching_against_index
    - last_matching_pattern
    - die_path_inside_submodule
    - output_pattern
    - free
    - parse_pathspec
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int check_ignore(struct dir_struct *dir,\n\t\t\tconst char *prefix,
      int argc, const char **argv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getline_fn
      Src: /src/git/builtin/check-ignore.c:138,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/check-ignore.c:140,1
    - Dst: unquote_c_style
      Src: /src/git/builtin/check-ignore.c:141,1
    - Dst: die
      Src: /src/git/builtin/check-ignore.c:142,1
    - Dst: strbuf_swap
      Src: /src/git/builtin/check-ignore.c:143,1
    - Dst: check_ignore
      Src: /src/git/builtin/check-ignore.c:146,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/check-ignore.c:148,1
    - Dst: strbuf_release
      Src: /src/git/builtin/check-ignore.c:150,1
    - Dst: strbuf_release
      Src: /src/git/builtin/check-ignore.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - dir
    - prefix
    argTypes:
    - struct dir_struct*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 129
    functionDepth: 16
    functionLinenumber: 129
    functionLinenumberEnd: 153
    functionName: check_ignore_stdin_paths
    functionSourceFile: /src/git/builtin/check-ignore.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - strbuf_reset
    - check_ignore
    - getline_fn
    - unquote_c_style
    - maybe_flush_or_die
    - strbuf_swap
    linkageType: ''
    returnType: int
    signature: int check_ignore_stdin_paths(struct dir_struct *dir, const char *prefix)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/builtin/check-ignore.c:163,1
    - Dst: parse_options
      Src: /src/git/builtin/check-ignore.c:165,1
    - Dst: die
      Src: /src/git/builtin/check-ignore.c:170,1
    - Dst: _
      Src: /src/git/builtin/check-ignore.c:170,1
    - Dst: die
      Src: /src/git/builtin/check-ignore.c:173,1
    - Dst: _
      Src: /src/git/builtin/check-ignore.c:173,1
    - Dst: die
      Src: /src/git/builtin/check-ignore.c:175,1
    - Dst: _
      Src: /src/git/builtin/check-ignore.c:175,1
    - Dst: die
      Src: /src/git/builtin/check-ignore.c:179,1
    - Dst: _
      Src: /src/git/builtin/check-ignore.c:179,1
    - Dst: die
      Src: /src/git/builtin/check-ignore.c:181,1
    - Dst: _
      Src: /src/git/builtin/check-ignore.c:181,1
    - Dst: die
      Src: /src/git/builtin/check-ignore.c:184,1
    - Dst: _
      Src: /src/git/builtin/check-ignore.c:184,1
    - Dst: repo_read_index
      Src: /src/git/builtin/check-ignore.c:187,1
    - Dst: die
      Src: /src/git/builtin/check-ignore.c:188,1
    - Dst: _
      Src: /src/git/builtin/check-ignore.c:188,1
    - Dst: setup_standard_excludes
      Src: /src/git/builtin/check-ignore.c:190,1
    - Dst: check_ignore_stdin_paths
      Src: /src/git/builtin/check-ignore.c:193,1
    - Dst: check_ignore
      Src: /src/git/builtin/check-ignore.c:195,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/check-ignore.c:196,1
    - Dst: dir_clear
      Src: /src/git/builtin/check-ignore.c:199,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 155
    functionDepth: 19
    functionLinenumber: 155
    functionLinenumberEnd: 202
    functionName: cmd_check_ignore
    functionSourceFile: /src/git/builtin/check-ignore.c
    functionUses: 0
    functionsReached:
    - parse_options
    - die
    - check_ignore_stdin_paths
    - repo_read_index
    - check_ignore
    - setup_standard_excludes
    - dir_clear
    - _
    - maybe_flush_or_die
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_check_ignore(int argc,\n\t\t     const char **argv,\n\t\t
      \    const char *prefix,\n\t\t     struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/read-tree.c:34,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/read-tree.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 6
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: list_tree
    functionSourceFile: /src/git/builtin/read-tree.c
    functionUses: 0
    functionsReached:
    - die
    - repo_parse_tree_indirect
    linkageType: ''
    returnType: int
    signature: int list_tree(struct object_id *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/read-tree.c:52,1
    - Dst: set_alternate_index_output
      Src: /src/git/builtin/read-tree.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - UNUSED
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: index_output_cb
    functionSourceFile: /src/git/builtin/read-tree.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - set_alternate_index_output
    linkageType: ''
    returnType: int
    signature: "int index_output_cb(const struct option *opt UNUSED, const char *arg,\n\t\t\t\t
      int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/read-tree.c:62,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:67,1
    - Dst: strcmp
      Src: /src/git/builtin/read-tree.c:68,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: exclude_per_directory_cb
    functionSourceFile: /src/git/builtin/read-tree.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int exclude_per_directory_cb(const struct option *opt, const char
      *arg,\n\t\t\t\t    int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/read-tree.c:76,1
    - Dst: printf
      Src: /src/git/builtin/read-tree.c:78,1
    - Dst: printf
      Src: /src/git/builtin/read-tree.c:80,1
    - Dst: printf
      Src: /src/git/builtin/read-tree.c:82,1
    - Dst: ce_stage
      Src: /src/git/builtin/read-tree.c:83,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/read-tree.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - label
    - ce
    - o
    argTypes:
    - char*
    - struct cache_entry*
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: debug_stage
    functionSourceFile: /src/git/builtin/read-tree.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - ce_stage
    - printf
    linkageType: ''
    returnType: void
    signature: "void debug_stage(const char *label, const struct cache_entry *ce,\n\t\t\tstruct
      unpack_trees_options *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/read-tree.c:92,1
    - Dst: debug_stage
      Src: /src/git/builtin/read-tree.c:93,1
    - Dst: xsnprintf
      Src: /src/git/builtin/read-tree.c:96,1
    - Dst: debug_stage
      Src: /src/git/builtin/read-tree.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - stages
    - o
    argTypes:
    - struct cache_entry**
    - struct unpack_trees_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: debug_merge
    functionSourceFile: /src/git/builtin/read-tree.c
    functionUses: 0
    functionsReached:
    - debug_stage
    - printf
    - xsnprintf
    linkageType: ''
    returnType: int
    signature: "int debug_merge(const struct cache_entry * const *stages,\n\t\t       struct
      unpack_trees_options *o)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/read-tree.c:105,1
    - Dst: git_default_submodule_config
      Src: /src/git/builtin/read-tree.c:106,1
    - Dst: git_default_config
      Src: /src/git/builtin/read-tree.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 7
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: git_read_tree_config
    functionSourceFile: /src/git/builtin/read-tree.c
    functionUses: 0
    functionsReached:
    - git_default_config
    - git_default_submodule_config
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_read_tree_config(const char *var, const char *value,\n\t\t\t\tconst
      struct config_context *ctx, void *cb)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: OPT__SUPER_PREFIX
      Src: /src/git/builtin/read-tree.c:123,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/read-tree.c:124,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:124,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:125,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/read-tree.c:127,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:128,1
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/read-tree.c:129,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:129,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/read-tree.c:130,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:130,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/read-tree.c:131,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:132,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/read-tree.c:133,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:134,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/read-tree.c:135,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:136,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/read-tree.c:137,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:138,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:143,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:144,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/read-tree.c:147,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:148,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/read-tree.c:149,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:150,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:151,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/read-tree.c:153,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:154,1
    - Dst: OPT__DRY_RUN
      Src: /src/git/builtin/read-tree.c:155,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:155,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/read-tree.c:156,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:157,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/read-tree.c:158,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:159,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/read-tree.c:160,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/read-tree.c:163,1
    - Dst: N_
      Src: /src/git/builtin/read-tree.c:163,1
    - Dst: OPT_END
      Src: /src/git/builtin/read-tree.c:164,1
    - Dst: memset
      Src: /src/git/builtin/read-tree.c:167,1
    - Dst: repo_config
      Src: /src/git/builtin/read-tree.c:172,1
    - Dst: parse_options
      Src: /src/git/builtin/read-tree.c:174,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:179,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:183,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/read-tree.c:188,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/read-tree.c:191,1
    - Dst: repo_read_index_unmerged
      Src: /src/git/builtin/read-tree.c:203,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:204,1
    - Dst: _
      Src: /src/git/builtin/read-tree.c:204,1
    - Dst: resolve_undo_clear_index
      Src: /src/git/builtin/read-tree.c:207,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/read-tree.c:212,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:213,1
    - Dst: list_tree
      Src: /src/git/builtin/read-tree.c:214,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:215,1
    - Dst: warning
      Src: /src/git/builtin/read-tree.c:219,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:221,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:224,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:226,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/read-tree.c:232,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/read-tree.c:235,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:240,1
    - Dst: is_index_unborn
      Src: /src/git/builtin/read-tree.c:247,1
    - Dst: cache_tree_free
      Src: /src/git/builtin/read-tree.c:268,1
    - Dst: repo_parse_tree
      Src: /src/git/builtin/read-tree.c:271,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/read-tree.c:273,1
    - Dst: unpack_trees
      Src: /src/git/builtin/read-tree.c:275,1
    - Dst: prime_cache_tree
      Src: /src/git/builtin/read-tree.c:288,1
    - Dst: write_locked_index
      Src: /src/git/builtin/read-tree.c:292,1
    - Dst: die
      Src: /src/git/builtin/read-tree.c:293,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 84
    argCount: 4
    argNames:
    - argc
    - argv
    - cmd_prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 111
    functionDepth: 21
    functionLinenumber: 111
    functionLinenumberEnd: 295
    functionName: cmd_read_tree
    functionSourceFile: /src/git/builtin/read-tree.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - parse_options
    - OPT__DRY_RUN
    - list_tree
    - repo_get_oid
    - OPT_BOOL
    - repo_hold_locked_index
    - cache_tree_free
    - repo_config
    - OPT_END
    - die
    - OPT_GROUP
    - repo_parse_tree
    - OPT__SUPER_PREFIX
    - OPT__QUIET
    - memset
    - resolve_undo_clear_index
    - setup_work_tree
    - repo_read_index_unmerged
    - prime_cache_tree
    - unpack_trees
    - _
    - N_
    - warning
    - OPT__VERBOSE
    - init_tree_desc
    - is_index_unborn
    - OPT_CALLBACK_F
    - prepare_repo_settings
    - write_locked_index
    linkageType: ''
    returnType: int
    signature: "int cmd_read_tree(int argc,\n\t\t  const char **argv,\n\t\t  const
      char *cmd_prefix,\n\t\t  struct repository *repo UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/builtin/credential-store.c:26,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-store.c:29,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/credential-store.c:33,1
    - Dst: credential_from_url_gently
      Src: /src/git/builtin/credential-store.c:34,1
    - Dst: credential_match
      Src: /src/git/builtin/credential-store.c:36,1
    - Dst: match_cb
      Src: /src/git/builtin/credential-store.c:39,1
    - Dst: other_cb
      Src: /src/git/builtin/credential-store.c:44,1
    - Dst: credential_clear
      Src: /src/git/builtin/credential-store.c:47,1
    - Dst: strbuf_release
      Src: /src/git/builtin/credential-store.c:48,1
    - Dst: fclose
      Src: /src/git/builtin/credential-store.c:49,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - fn
    - c
    - match_password
    argTypes:
    - char*
    - struct credential*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 15
    functionDepth: 12
    functionLinenumber: 15
    functionLinenumberEnd: 51
    functionName: parse_credential_file
    functionSourceFile: /src/git/builtin/credential-store.c
    functionUses: 0
    functionsReached:
    - fclose
    - credential_from_url_gently
    - strbuf_getline_lf
    - strbuf_release
    - die_errno
    - fopen
    - credential_clear
    - match_cb
    - other_cb
    - credential_match
    linkageType: ''
    returnType: int
    signature: "int parse_credential_file(const char *fn,\n\t\t\t\t  struct credential
      *c,\n\t\t\t\t  void (*match_cb)(struct credential *),\n\t\t\t\t  void (*other_cb)(struct
      strbuf *),\n\t\t\t\t  int match_password)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/credential-store.c:55,1
    - Dst: printf
      Src: /src/git/builtin/credential-store.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: print_entry
    functionSourceFile: /src/git/builtin/credential-store.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_entry(struct credential *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/builtin/credential-store.c:61,1
    - Dst: write_or_die
      Src: /src/git/builtin/credential-store.c:62,1
    - Dst: get_lock_file_fd
      Src: /src/git/builtin/credential-store.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: print_line
    functionSourceFile: /src/git/builtin/credential-store.c
    functionUses: 0
    functionsReached:
    - get_lock_file_fd
    - write_or_die
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void print_line(struct strbuf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_int
      Src: /src/git/builtin/credential-store.c:70,1
    - Dst: hold_lock_file_for_update_timeout
      Src: /src/git/builtin/credential-store.c:71,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-store.c:72,1
    - Dst: _
      Src: /src/git/builtin/credential-store.c:72,1
    - Dst: print_line
      Src: /src/git/builtin/credential-store.c:74,1
    - Dst: parse_credential_file
      Src: /src/git/builtin/credential-store.c:75,1
    - Dst: commit_lock_file
      Src: /src/git/builtin/credential-store.c:76,1
    - Dst: die_errno
      Src: /src/git/builtin/credential-store.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - fn
    - c
    - extra
    - match_password
    argTypes:
    - char*
    - struct credential*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 19
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: rewrite_credential_file
    functionSourceFile: /src/git/builtin/credential-store.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - print_line
    - commit_lock_file
    - die_errno
    - hold_lock_file_for_update_timeout
    - _
    - parse_credential_file
    linkageType: ''
    returnType: void
    signature: "void rewrite_credential_file(const char *fn, struct credential *c,\n\t\t\t\t
      \   struct strbuf *extra, int match_password)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: is_rfc3986_unreserved
      Src: /src/git/builtin/credential-store.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: is_rfc3986_reserved_or_unreserved
    functionSourceFile: /src/git/builtin/credential-store.c
    functionUses: 0
    functionsReached:
    - is_rfc3986_unreserved
    linkageType: ''
    returnType: int
    signature: int is_rfc3986_reserved_or_unreserved(char ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/credential-store.c:97,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/builtin/credential-store.c:98,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/credential-store.c:99,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/builtin/credential-store.c:100,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/credential-store.c:101,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/builtin/credential-store.c:103,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/credential-store.c:105,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/builtin/credential-store.c:106,1
    - Dst: rewrite_credential_file
      Src: /src/git/builtin/credential-store.c:110,1
    - Dst: strbuf_release
      Src: /src/git/builtin/credential-store.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - fn
    - c
    argTypes:
    - char*
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 20
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: store_credential_file
    functionSourceFile: /src/git/builtin/credential-store.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - rewrite_credential_file
    - strbuf_addf
    - strbuf_addch
    - strbuf_addstr_urlencode
    linkageType: ''
    returnType: void
    signature: void store_credential_file(const char *fn, struct credential *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/credential-store.c:128,1
    - Dst: access
      Src: /src/git/builtin/credential-store.c:129,1
    - Dst: store_credential_file
      Src: /src/git/builtin/credential-store.c:130,1
    - Dst: store_credential_file
      Src: /src/git/builtin/credential-store.c:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - fns
    - c
    argTypes:
    - struct string_list*
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 114
    functionDepth: 21
    functionLinenumber: 114
    functionLinenumberEnd: 139
    functionName: store_credential
    functionSourceFile: /src/git/builtin/credential-store.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - access
    - store_credential_file
    linkageType: ''
    returnType: void
    signature: void store_credential(const struct string_list *fns, struct credential
      *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/credential-store.c:155,1
    - Dst: access
      Src: /src/git/builtin/credential-store.c:156,1
    - Dst: rewrite_credential_file
      Src: /src/git/builtin/credential-store.c:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - fns
    - c
    argTypes:
    - struct string_list*
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 20
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: remove_credential
    functionSourceFile: /src/git/builtin/credential-store.c
    functionUses: 1
    functionsReached:
    - for_each_string_list_item
    - access
    - rewrite_credential_file
    linkageType: ''
    returnType: void
    signature: void remove_credential(const struct string_list *fns, struct credential
      *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/credential-store.c:164,1
    - Dst: parse_credential_file
      Src: /src/git/builtin/credential-store.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fns
    - c
    argTypes:
    - struct string_list*
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 13
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: lookup_credential
    functionSourceFile: /src/git/builtin/credential-store.c
    functionUses: 1
    functionsReached:
    - for_each_string_list_item
    - parse_credential_file
    linkageType: ''
    returnType: void
    signature: void lookup_credential(const struct string_list *fns, struct credential
      *c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/credential-store.c:183,1
    - Dst: OPT_END
      Src: /src/git/builtin/credential-store.c:185,1
    - Dst: umask
      Src: /src/git/builtin/credential-store.c:188,1
    - Dst: parse_options
      Src: /src/git/builtin/credential-store.c:190,1
    - Dst: usage_with_options
      Src: /src/git/builtin/credential-store.c:192,1
    - Dst: string_list_append
      Src: /src/git/builtin/credential-store.c:196,1
    - Dst: interpolate_path
      Src: /src/git/builtin/credential-store.c:198,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/credential-store.c:199,1
    - Dst: xdg_config_home
      Src: /src/git/builtin/credential-store.c:200,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/credential-store.c:202,1
    - Dst: die
      Src: /src/git/builtin/credential-store.c:205,1
    - Dst: credential_read
      Src: /src/git/builtin/credential-store.c:207,1
    - Dst: die
      Src: /src/git/builtin/credential-store.c:208,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-store.c:210,1
    - Dst: lookup_credential
      Src: /src/git/builtin/credential-store.c:211,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-store.c:212,1
    - Dst: remove_credential
      Src: /src/git/builtin/credential-store.c:213,1
    - Dst: strcmp
      Src: /src/git/builtin/credential-store.c:214,1
    - Dst: store_credential
      Src: /src/git/builtin/credential-store.c:215,1
    - Dst: string_list_clear
      Src: /src/git/builtin/credential-store.c:219,1
    - Dst: credential_clear
      Src: /src/git/builtin/credential-store.c:220,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 169
    functionDepth: 13
    functionLinenumber: 169
    functionLinenumberEnd: 222
    functionName: cmd_credential_store
    functionSourceFile: /src/git/builtin/credential-store.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - parse_options
    - OPT_END
    - interpolate_path
    - umask
    - string_list_append_nodup
    - die
    - remove_credential
    - OPT_STRING
    - credential_clear
    - store_credential
    - strcmp
    - string_list_append
    - xdg_config_home
    - lookup_credential
    - credential_read
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_credential_store(int argc,\n\t\t\t const char **argv,\n\t\t\t
      const char *prefix,\n\t\t\t struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unquote_c_style
      Src: /src/git/builtin/update-ref.c:48,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:49,1
    - Dst: isspace
      Src: /src/git/builtin/update-ref.c:50,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:51,1
    - Dst: isspace
      Src: /src/git/builtin/update-ref.c:53,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/update-ref.c:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - next
    - arg
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: parse_arg
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - isspace
    - unquote_c_style
    - die
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *parse_arg(const char *next, struct strbuf *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_arg
      Src: /src/git/builtin/update-ref.c:74,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/update-ref.c:77,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:82,1
    - Dst: check_refname_format
      Src: /src/git/builtin/update-ref.c:86,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:87,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/update-ref.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - next
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 90
    functionName: parse_refname
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - parse_arg
    - strbuf_detach
    - check_refname_format
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *parse_refname(const char **next)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/update-ref.c:102,1
    - Dst: parse_refname
      Src: /src/git/builtin/update-ref.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - next
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 112
    functionName: parse_next_refname
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - die
    - parse_refname
    linkageType: ''
    returnType: char
    signature: char *parse_next_refname(const char **next)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/update-ref.c:126,1
    - Dst: parse_arg
      Src: /src/git/builtin/update-ref.c:137,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/update-ref.c:140,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/update-ref.c:145,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - next
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 149
    functionName: parse_next_arg
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - parse_arg
    - strbuf_detach
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *parse_next_arg(const char **next)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/update-ref.c:188,1
    - Dst: parse_arg
      Src: /src/git/builtin/update-ref.c:191,1
    - Dst: repo_get_oid_with_flags
      Src: /src/git/builtin/update-ref.c:193,1
    - Dst: oidclr
      Src: /src/git/builtin/update-ref.c:198,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:203,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/update-ref.c:208,1
    - Dst: repo_get_oid_with_flags
      Src: /src/git/builtin/update-ref.c:212,1
    - Dst: warning
      Src: /src/git/builtin/update-ref.c:217,1
    - Dst: oidclr
      Src: /src/git/builtin/update-ref.c:219,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:229,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:234,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:240,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 6
    argNames:
    - next
    - end
    - oid
    - command
    - refname
    - flags
    argTypes:
    - char**
    - char*
    - struct object_id*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 244
    functionName: parse_next_oid
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - repo_get_oid_with_flags
    - strbuf_release
    - die
    - parse_arg
    - oidclr
    - strbuf_addstr
    - warning
    linkageType: ''
    returnType: int
    signature: "int parse_next_oid(const char **next, const char *end,\n\t\t\t  struct
      object_id *oid,\n\t\t\t  const char *command, const char *refname,\n\t\t\t  int
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/update-ref.c:258,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/update-ref.c:260,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/update-ref.c:261,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/update-ref.c:262,1
    - Dst: ref_transaction_error_msg
      Src: /src/git/builtin/update-ref.c:263,1
    - Dst: fwrite
      Src: /src/git/builtin/update-ref.c:265,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 8
    argNames:
    - refname
    - old_oid
    - new_oid
    - old_target
    - new_target
    - err
    - details
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - char*
    - enum ref_transaction_error
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 267
    functionName: print_rejected_refs
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - oid_to_hex
    - fwrite
    - strbuf_addf
    - ref_transaction_error_msg
    linkageType: ''
    returnType: void
    signature: "void print_rejected_refs(const char *refname,\n\t\t\t\tconst struct
      object_id *old_oid,\n\t\t\t\tconst struct object_id *new_oid,\n\t\t\t\tconst
      char *old_target,\n\t\t\t\tconst char *new_target,\n\t\t\t\tenum ref_transaction_error
      err,\n\t\t\t\tconst char *details,\n\t\t\t\tvoid *cb_data UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print_rejected_refs
      Src: /src/git/builtin/update-ref.c:286,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 8
    argNames:
    - refname
    - new_oid
    - old_oid
    - new_target
    - old_target
    - tx_err
    - err
    - opts
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - char*
    - enum ref_transaction_error
    - struct strbuf*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 292
    functionName: handle_ref_transaction_error
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - print_rejected_refs
    - die
    linkageType: ''
    returnType: void
    signature: "void handle_ref_transaction_error(const char *refname,\n\t\t\t\t\t
      struct object_id *new_oid,\n\t\t\t\t\t struct object_id *old_oid,\n\t\t\t\t\t
      const char *new_target,\n\t\t\t\t\t const char *old_target,\n\t\t\t\t\t enum
      ref_transaction_error tx_err,\n\t\t\t\t\t struct strbuf *err,\n\t\t\t\t\t struct
      command_options *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_refname
      Src: /src/git/builtin/update-ref.c:314,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:316,1
    - Dst: parse_next_oid
      Src: /src/git/builtin/update-ref.c:318,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:320,1
    - Dst: parse_next_oid
      Src: /src/git/builtin/update-ref.c:322,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:326,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/update-ref.c:328,1
    - Dst: handle_ref_transaction_error
      Src: /src/git/builtin/update-ref.c:333,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:338,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - transaction
    - next
    - end
    - opts
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 304
    functionDepth: 6
    functionLinenumber: 304
    functionLinenumberEnd: 340
    functionName: parse_cmd_update
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - handle_ref_transaction_error
    - die
    - ref_transaction_update
    - parse_refname
    - free
    - parse_next_oid
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_update(struct ref_transaction *transaction,\n\t\t\t
      \    const char *next, const char *end,\n\t\t\t     struct command_options *opts)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: parse_refname
      Src: /src/git/builtin/update-ref.c:353,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:355,1
    - Dst: parse_next_refname
      Src: /src/git/builtin/update-ref.c:357,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:359,1
    - Dst: parse_next_arg
      Src: /src/git/builtin/update-ref.c:361,1
    - Dst: parse_next_arg
      Src: /src/git/builtin/update-ref.c:363,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:365,1
    - Dst: strcmp
      Src: /src/git/builtin/update-ref.c:367,1
    - Dst: repo_get_oid_with_flags
      Src: /src/git/builtin/update-ref.c:368,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:370,1
    - Dst: strcmp
      Src: /src/git/builtin/update-ref.c:373,1
    - Dst: check_refname_format
      Src: /src/git/builtin/update-ref.c:374,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:375,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:377,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:382,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/update-ref.c:384,1
    - Dst: handle_ref_transaction_error
      Src: /src/git/builtin/update-ref.c:390,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:395,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:396,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:397,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:398,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:399,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - transaction
    - next
    - UNUSED
    - opts
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 342
    functionDepth: 7
    functionLinenumber: 342
    functionLinenumberEnd: 400
    functionName: parse_cmd_symref_update
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - repo_get_oid_with_flags
    - handle_ref_transaction_error
    - die
    - strbuf_release
    - parse_next_arg
    - ref_transaction_update
    - parse_next_refname
    - parse_refname
    - check_refname_format
    - strcmp
    - free
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_symref_update(struct ref_transaction *transaction,\n\t\t\t\t
      \   const char *next, const char *end UNUSED,\n\t\t\t\t    struct command_options
      *opts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_refname
      Src: /src/git/builtin/update-ref.c:411,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:413,1
    - Dst: parse_next_oid
      Src: /src/git/builtin/update-ref.c:415,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:416,1
    - Dst: is_null_oid
      Src: /src/git/builtin/update-ref.c:418,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:419,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:422,1
    - Dst: ref_transaction_create
      Src: /src/git/builtin/update-ref.c:424,1
    - Dst: handle_ref_transaction_error
      Src: /src/git/builtin/update-ref.c:427,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:431,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - transaction
    - next
    - end
    - opts
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 402
    functionDepth: 7
    functionLinenumber: 402
    functionLinenumberEnd: 433
    functionName: parse_cmd_create
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - handle_ref_transaction_error
    - die
    - is_null_oid
    - parse_refname
    - free
    - ref_transaction_create
    - parse_next_oid
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_create(struct ref_transaction *transaction,\n\t\t\t
      \    const char *next, const char *end,\n\t\t\t     struct command_options *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_refname
      Src: /src/git/builtin/update-ref.c:443,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:445,1
    - Dst: parse_next_refname
      Src: /src/git/builtin/update-ref.c:447,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:449,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:452,1
    - Dst: ref_transaction_create
      Src: /src/git/builtin/update-ref.c:454,1
    - Dst: handle_ref_transaction_error
      Src: /src/git/builtin/update-ref.c:457,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:461,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:462,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - transaction
    - next
    - UNUSED
    - opts
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 435
    functionDepth: 7
    functionLinenumber: 435
    functionLinenumberEnd: 464
    functionName: parse_cmd_symref_create
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - handle_ref_transaction_error
    - die
    - parse_next_refname
    - parse_refname
    - free
    - ref_transaction_create
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_symref_create(struct ref_transaction *transaction,\n\t\t\t\t
      \   const char *next, const char *end UNUSED,\n\t\t\t\t    struct command_options
      *opts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_refname
      Src: /src/git/builtin/update-ref.c:475,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:477,1
    - Dst: parse_next_oid
      Src: /src/git/builtin/update-ref.c:479,1
    - Dst: is_null_oid
      Src: /src/git/builtin/update-ref.c:483,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:484,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:489,1
    - Dst: ref_transaction_delete
      Src: /src/git/builtin/update-ref.c:491,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:494,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:497,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - transaction
    - next
    - end
    - UNUSED
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 466
    functionDepth: 7
    functionLinenumber: 466
    functionLinenumberEnd: 499
    functionName: parse_cmd_delete
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - is_null_oid
    - ref_transaction_delete
    - parse_refname
    - free
    - parse_next_oid
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_delete(struct ref_transaction *transaction,\n\t\t\t
      \    const char *next, const char *end,\n\t\t\t     struct command_options *opts
      UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/update-ref.c:509,1
    - Dst: parse_refname
      Src: /src/git/builtin/update-ref.c:511,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:513,1
    - Dst: parse_next_refname
      Src: /src/git/builtin/update-ref.c:515,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:518,1
    - Dst: ref_transaction_delete
      Src: /src/git/builtin/update-ref.c:520,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:522,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:525,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:526,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - transaction
    - next
    - UNUSED
    - UNUSED
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 501
    functionDepth: 7
    functionLinenumber: 501
    functionLinenumberEnd: 528
    functionName: parse_cmd_symref_delete
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - parse_next_refname
    - ref_transaction_delete
    - parse_refname
    - free
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_symref_delete(struct ref_transaction *transaction,\n\t\t\t\t
      \   const char *next, const char *end UNUSED,\n\t\t\t\t    struct command_options
      *opts UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_refname
      Src: /src/git/builtin/update-ref.c:538,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:540,1
    - Dst: parse_next_oid
      Src: /src/git/builtin/update-ref.c:542,1
    - Dst: oidclr
      Src: /src/git/builtin/update-ref.c:544,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:547,1
    - Dst: ref_transaction_verify
      Src: /src/git/builtin/update-ref.c:549,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:551,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:554,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - transaction
    - next
    - end
    - UNUSED
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 530
    functionDepth: 7
    functionLinenumber: 530
    functionLinenumberEnd: 556
    functionName: parse_cmd_verify
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - oidclr
    - ref_transaction_verify
    - parse_refname
    - free
    - parse_next_oid
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_verify(struct ref_transaction *transaction,\n\t\t\t
      \    const char *next, const char *end,\n\t\t\t     struct command_options *opts
      UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/update-ref.c:567,1
    - Dst: parse_refname
      Src: /src/git/builtin/update-ref.c:569,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:571,1
    - Dst: parse_next_refname
      Src: /src/git/builtin/update-ref.c:577,1
    - Dst: oidcpy
      Src: /src/git/builtin/update-ref.c:579,1
    - Dst: null_oid
      Src: /src/git/builtin/update-ref.c:579,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:582,1
    - Dst: ref_transaction_verify
      Src: /src/git/builtin/update-ref.c:584,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:587,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:590,1
    - Dst: free
      Src: /src/git/builtin/update-ref.c:591,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:592,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - transaction
    - next
    - UNUSED
    - UNUSED
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 558
    functionDepth: 7
    functionLinenumber: 558
    functionLinenumberEnd: 593
    functionName: parse_cmd_symref_verify
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - oidcpy
    - parse_next_refname
    - ref_transaction_verify
    - parse_refname
    - free
    - null_oid
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_symref_verify(struct ref_transaction *transaction,\n\t\t\t\t
      \   const char *next, const char *end UNUSED,\n\t\t\t\t    struct command_options
      *opts UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/update-ref.c:597,1
    - Dst: fflush
      Src: /src/git/builtin/update-ref.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - command
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 599
    functionName: report_ok
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void report_ok(const char *command)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/update-ref.c:606,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - transaction
    - next
    - UNUSED
    - UNUSED
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 610
    functionName: parse_cmd_option
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - die
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_option(struct ref_transaction *transaction UNUSED,\n\t\t\t
      \    const char *next, const char *end UNUSED,\n\t\t\t     struct command_options
      *opts UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/update-ref.c:617,1
    - Dst: report_ok
      Src: /src/git/builtin/update-ref.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - transaction
    - next
    - UNUSED
    - UNUSED
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 619
    functionName: parse_cmd_start
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - die
    - report_ok
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_start(struct ref_transaction *transaction UNUSED,\n\t\t\t
      \   const char *next, const char *end UNUSED,\n\t\t\t    struct command_options
      *opts UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/update-ref.c:627,1
    - Dst: ref_transaction_prepare
      Src: /src/git/builtin/update-ref.c:628,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:629,1
    - Dst: report_ok
      Src: /src/git/builtin/update-ref.c:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - transaction
    - next
    - UNUSED
    - UNUSED
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 631
    functionName: parse_cmd_prepare
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - ref_transaction_prepare
    - die
    - report_ok
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_prepare(struct ref_transaction *transaction,\n\t\t\t
      \     const char *next, const char *end UNUSED,\n\t\t\t      struct command_options
      *opts UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/update-ref.c:639,1
    - Dst: ref_transaction_abort
      Src: /src/git/builtin/update-ref.c:640,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:641,1
    - Dst: report_ok
      Src: /src/git/builtin/update-ref.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - transaction
    - next
    - UNUSED
    - UNUSED
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 643
    functionName: parse_cmd_abort
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - die
    - ref_transaction_abort
    - report_ok
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_abort(struct ref_transaction *transaction,\n\t\t\t
      \   const char *next, const char *end UNUSED,\n\t\t\t    struct command_options
      *opts UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/update-ref.c:651,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/update-ref.c:652,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:653,1
    - Dst: ref_transaction_for_each_rejected_update
      Src: /src/git/builtin/update-ref.c:655,1
    - Dst: report_ok
      Src: /src/git/builtin/update-ref.c:658,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/update-ref.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - transaction
    - next
    - UNUSED
    - UNUSED
    argTypes:
    - struct ref_transaction*
    - char*
    - char*
    - struct command_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 660
    functionName: parse_cmd_commit
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - die
    - ref_transaction_free
    - report_ok
    - ref_transaction_for_each_rejected_update
    linkageType: ''
    returnType: void
    signature: "void parse_cmd_commit(struct ref_transaction *transaction,\n\t\t\t
      \    const char *next, const char *end UNUSED,\n\t\t\t     struct command_options
      *opts UNUSED)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/update-ref.c:706,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/update-ref.c:706,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:709,1
    - Dst: strbuf_getwholeline
      Src: /src/git/builtin/update-ref.c:712,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:716,1
    - Dst: isspace
      Src: /src/git/builtin/update-ref.c:717,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:718,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/update-ref.c:720,1
    - Dst: starts_with
      Src: /src/git/builtin/update-ref.c:724,1
    - Dst: strlen
      Src: /src/git/builtin/update-ref.c:733,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:740,1
    - Dst: strbuf_appendwholeline
      Src: /src/git/builtin/update-ref.c:748,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:755,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:762,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:767,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/update-ref.c:774,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/update-ref.c:774,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:777,1
    - Dst: struct parse_cmd*::fn
      Src: /src/git/builtin/update-ref.c:782,1
    - Dst: strlen
      Src: /src/git/builtin/update-ref.c:782,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/update-ref.c:789,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:790,1
    - Dst: ref_transaction_for_each_rejected_update
      Src: /src/git/builtin/update-ref.c:791,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/update-ref.c:793,1
    - Dst: ref_transaction_abort
      Src: /src/git/builtin/update-ref.c:798,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:799,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:806,1
    - Dst: strbuf_release
      Src: /src/git/builtin/update-ref.c:807,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 64
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 695
    functionDepth: 4
    functionLinenumber: 695
    functionLinenumberEnd: 808
    functionName: update_refs_stdin
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - isspace
    - ARRAY_SIZE
    - ref_transaction_commit
    - die
    - ref_transaction_abort
    - strbuf_appendwholeline
    - strbuf_release
    - struct parse_cmd*::fn
    - starts_with
    - strlen
    - ref_transaction_free
    - ref_transaction_for_each_rejected_update
    - ref_store_transaction_begin
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void update_refs_stdin(unsigned int flags)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/update-ref.c:822,1
    - Dst: N_
      Src: /src/git/builtin/update-ref.c:822,1
    - Dst: N_
      Src: /src/git/builtin/update-ref.c:822,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/update-ref.c:823,1
    - Dst: N_
      Src: /src/git/builtin/update-ref.c:823,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/update-ref.c:824,1
    - Dst: N_
      Src: /src/git/builtin/update-ref.c:825,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/update-ref.c:826,1
    - Dst: N_
      Src: /src/git/builtin/update-ref.c:826,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/update-ref.c:827,1
    - Dst: N_
      Src: /src/git/builtin/update-ref.c:827,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/update-ref.c:828,1
    - Dst: N_
      Src: /src/git/builtin/update-ref.c:828,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/update-ref.c:829,1
    - Dst: N_
      Src: /src/git/builtin/update-ref.c:829,1
    - Dst: OPT_END
      Src: /src/git/builtin/update-ref.c:831,1
    - Dst: repo_config
      Src: /src/git/builtin/update-ref.c:834,1
    - Dst: parse_options
      Src: /src/git/builtin/update-ref.c:835,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:838,1
    - Dst: usage_with_options
      Src: /src/git/builtin/update-ref.c:849,1
    - Dst: update_refs_stdin
      Src: /src/git/builtin/update-ref.c:852,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:855,1
    - Dst: usage_with_options
      Src: /src/git/builtin/update-ref.c:859,1
    - Dst: usage_with_options
      Src: /src/git/builtin/update-ref.c:863,1
    - Dst: usage_with_options
      Src: /src/git/builtin/update-ref.c:869,1
    - Dst: repo_get_oid_with_flags
      Src: /src/git/builtin/update-ref.c:873,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:875,1
    - Dst: oidclr
      Src: /src/git/builtin/update-ref.c:884,1
    - Dst: repo_get_oid_with_flags
      Src: /src/git/builtin/update-ref.c:885,1
    - Dst: die
      Src: /src/git/builtin/update-ref.c:887,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/update-ref.c:895,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/update-ref.c:895,1
    - Dst: is_null_oid
      Src: /src/git/builtin/update-ref.c:897,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/update-ref.c:900,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/update-ref.c:900,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 810
    functionDepth: 19
    functionLinenumber: 810
    functionLinenumberEnd: 905
    functionName: cmd_update_ref
    functionSourceFile: /src/git/builtin/update-ref.c
    functionUses: 0
    functionsReached:
    - update_refs_stdin
    - parse_options
    - OPT_END
    - die
    - repo_get_oid_with_flags
    - refs_delete_ref
    - OPT_BOOL
    - OPT_STRING
    - is_null_oid
    - OPT_BIT
    - oidclr
    - get_main_ref_store
    - N_
    - refs_update_ref
    - repo_config
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_update_ref(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: url_is_local_not_ssh
      Src: /src/git/builtin/url-parse.c:32,1
    - Dst: die
      Src: /src/git/builtin/url-parse.c:34,1
    - Dst: has_dos_drive_prefix
      Src: /src/git/builtin/url-parse.c:36,1
    - Dst: die
      Src: /src/git/builtin/url-parse.c:37,1
    - Dst: die
      Src: /src/git/builtin/url-parse.c:39,1
    - Dst: url_parse
      Src: /src/git/builtin/url-parse.c:42,1
    - Dst: die
      Src: /src/git/builtin/url-parse.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - url
    - info
    argTypes:
    - char*
    - struct url_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: parse_or_die
    functionSourceFile: /src/git/builtin/url-parse.c
    functionUses: 0
    functionsReached:
    - url_parse
    - die
    - url_is_local_not_ssh
    - has_dos_drive_prefix
    linkageType: ''
    returnType: void
    signature: void parse_or_die(const char *url, struct url_info *info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/url-parse.c:48,1
    - Dst: strcmp
      Src: /src/git/builtin/url-parse.c:50,1
    - Dst: strcmp
      Src: /src/git/builtin/url-parse.c:52,1
    - Dst: strcmp
      Src: /src/git/builtin/url-parse.c:54,1
    - Dst: strcmp
      Src: /src/git/builtin/url-parse.c:56,1
    - Dst: strcmp
      Src: /src/git/builtin/url-parse.c:58,1
    - Dst: die
      Src: /src/git/builtin/url-parse.c:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: get_component_or_die
    functionSourceFile: /src/git/builtin/url-parse.c
    functionUses: 0
    functionsReached:
    - die
    - strcmp
    linkageType: ''
    returnType: enum url_component
    signature: enum url_component get_component_or_die(const char *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xstrndup
      Src: /src/git/builtin/url-parse.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - component
    - info
    argTypes:
    - enum url_component
    - struct url_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 63
    functionDepth: 11
    functionLinenumber: 63
    functionLinenumberEnd: 98
    functionName: extract_component
    functionSourceFile: /src/git/builtin/url-parse.c
    functionUses: 0
    functionsReached:
    - xstrndup
    linkageType: ''
    returnType: char
    signature: "char *extract_component(enum url_component component,\n\t\t\t       struct
      url_info *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_options
      Src: /src/git/builtin/url-parse.c:110,1
    - Dst: usage_with_options
      Src: /src/git/builtin/url-parse.c:114,1
    - Dst: get_component_or_die
      Src: /src/git/builtin/url-parse.c:118,1
    - Dst: parse_or_die
      Src: /src/git/builtin/url-parse.c:121,1
    - Dst: extract_component
      Src: /src/git/builtin/url-parse.c:124,1
    - Dst: puts
      Src: /src/git/builtin/url-parse.c:126,1
    - Dst: free
      Src: /src/git/builtin/url-parse.c:127,1
    - Dst: free
      Src: /src/git/builtin/url-parse.c:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 100
    functionDepth: 13
    functionLinenumber: 100
    functionLinenumberEnd: 135
    functionName: cmd_url_parse
    functionSourceFile: /src/git/builtin/url-parse.c
    functionUses: 0
    functionsReached:
    - parse_options
    - get_component_or_die
    - usage_with_options
    - puts
    - free
    - extract_component
    - parse_or_die
    linkageType: ''
    returnType: int
    signature: "int cmd_url_parse(int argc,\n\t\t  const char **argv,\n\t\t  const
      char *prefix,\n\t\t  struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmallocz
      Src: /src/git/builtin/check-ref-format.c:25,1
    - Dst: strlen
      Src: /src/git/builtin/check-ref-format.c:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - refname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 9
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: collapse_slashes
    functionSourceFile: /src/git/builtin/check-ref-format.c
    functionUses: 0
    functionsReached:
    - xmallocz
    - strlen
    linkageType: ''
    returnType: char
    signature: char *collapse_slashes(const char *refname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_git_directory_gently
      Src: /src/git/builtin/check-ref-format.c:47,1
    - Dst: check_branch_ref
      Src: /src/git/builtin/check-ref-format.c:48,1
    - Dst: skip_prefix
      Src: /src/git/builtin/check-ref-format.c:49,1
    - Dst: die
      Src: /src/git/builtin/check-ref-format.c:50,1
    - Dst: printf
      Src: /src/git/builtin/check-ref-format.c:51,1
    - Dst: strbuf_release
      Src: /src/git/builtin/check-ref-format.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 13
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: check_ref_format_branch
    functionSourceFile: /src/git/builtin/check-ref-format.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - setup_git_directory_gently
    - skip_prefix
    - check_branch_ref
    - printf
    linkageType: ''
    returnType: int
    signature: int check_ref_format_branch(const char *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_NON_EMPTY_PREFIX
      Src: /src/git/builtin/check-ref-format.c:68,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/check-ref-format.c:70,1
    - Dst: strcmp
      Src: /src/git/builtin/check-ref-format.c:73,1
    - Dst: check_ref_format_branch
      Src: /src/git/builtin/check-ref-format.c:74,1
    - Dst: strcmp
      Src: /src/git/builtin/check-ref-format.c:77,1
    - Dst: strcmp
      Src: /src/git/builtin/check-ref-format.c:77,1
    - Dst: strcmp
      Src: /src/git/builtin/check-ref-format.c:79,1
    - Dst: strcmp
      Src: /src/git/builtin/check-ref-format.c:81,1
    - Dst: strcmp
      Src: /src/git/builtin/check-ref-format.c:83,1
    - Dst: usage
      Src: /src/git/builtin/check-ref-format.c:86,1
    - Dst: usage
      Src: /src/git/builtin/check-ref-format.c:89,1
    - Dst: collapse_slashes
      Src: /src/git/builtin/check-ref-format.c:93,1
    - Dst: check_refname_format
      Src: /src/git/builtin/check-ref-format.c:94,1
    - Dst: printf
      Src: /src/git/builtin/check-ref-format.c:97,1
    - Dst: free
      Src: /src/git/builtin/check-ref-format.c:101,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 56
    functionDepth: 14
    functionLinenumber: 56
    functionLinenumberEnd: 103
    functionName: cmd_check_ref_format
    functionSourceFile: /src/git/builtin/check-ref-format.c
    functionUses: 0
    functionsReached:
    - collapse_slashes
    - BUG_ON_NON_EMPTY_PREFIX
    - show_usage_if_asked
    - usage
    - check_refname_format
    - strcmp
    - free
    - check_ref_format_branch
    - printf
    linkageType: ''
    returnType: int
    signature: "int cmd_check_ref_format(int argc,\n\t\t\t const char **argv,\n\t\t\t
      const char *prefix,\n\t\t\t struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/remote.c:104,1
    - Dst: strvec_push
      Src: /src/git/builtin/remote.c:106,1
    - Dst: strvec_push
      Src: /src/git/builtin/remote.c:107,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:109,1
    - Dst: _
      Src: /src/git/builtin/remote.c:109,1
    - Dst: run_command
      Src: /src/git/builtin/remote.c:110,1
    - Dst: error
      Src: /src/git/builtin/remote.c:111,1
    - Dst: _
      Src: /src/git/builtin/remote.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 8
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: fetch_remote
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - error
    - strvec_push
    - run_command
    - _
    - printf_ln
    linkageType: ''
    returnType: int
    signature: int fetch_remote(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:129,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/remote.c:130,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:132,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:135,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/remote.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - key
    - branchname
    - remotename
    - mirror
    - tmp
    argTypes:
    - char*
    - char*
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 13
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: add_branch
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - repo_config_set_multivar
    - strbuf_addf
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void add_branch(const char *key, const char *branchname,\n\t\t       const
      char *remotename, int mirror, struct strbuf *tmp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/builtin/remote.c:150,1
    - Dst: _
      Src: /src/git/builtin/remote.c:150,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:153,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:155,1
    - Dst: error
      Src: /src/git/builtin/remote.c:158,1
    - Dst: _
      Src: /src/git/builtin/remote.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - opt
    - arg
    - not
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 160
    functionName: parse_mirror_opt
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - error
    - warning
    - strcmp
    - _
    linkageType: ''
    returnType: int
    signature: int parse_mirror_opt(const struct option *opt, const char *arg, int
      not)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/remote.c:167,1
    - Dst: die
      Src: /src/git/builtin/remote.c:168,1
    - Dst: _
      Src: /src/git/builtin/remote.c:168,1
    - Dst: skip_prefix
      Src: /src/git/builtin/remote.c:170,1
    - Dst: die
      Src: /src/git/builtin/remote.c:171,1
    - Dst: _
      Src: /src/git/builtin/remote.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - remote
    - data
    argTypes:
    - struct remote*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 175
    functionName: check_remote_collision
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - die
    - _
    linkageType: ''
    returnType: int
    signature: int check_remote_collision(struct remote *remote, void *data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:190,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:190,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/remote.c:191,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:192,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/remote.c:195,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:195,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:196,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/remote.c:197,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:197,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:197,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/remote.c:198,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:199,1
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:201,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:204,1
    - Dst: usage_with_options
      Src: /src/git/builtin/remote.c:208,1
    - Dst: die
      Src: /src/git/builtin/remote.c:211,1
    - Dst: _
      Src: /src/git/builtin/remote.c:211,1
    - Dst: die
      Src: /src/git/builtin/remote.c:213,1
    - Dst: _
      Src: /src/git/builtin/remote.c:213,1
    - Dst: remote_get
      Src: /src/git/builtin/remote.c:218,1
    - Dst: remote_is_configured
      Src: /src/git/builtin/remote.c:219,1
    - Dst: error
      Src: /src/git/builtin/remote.c:220,1
    - Dst: _
      Src: /src/git/builtin/remote.c:220,1
    - Dst: exit
      Src: /src/git/builtin/remote.c:221,1
    - Dst: valid_remote_name
      Src: /src/git/builtin/remote.c:224,1
    - Dst: die
      Src: /src/git/builtin/remote.c:225,1
    - Dst: _
      Src: /src/git/builtin/remote.c:225,1
    - Dst: for_each_remote
      Src: /src/git/builtin/remote.c:227,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:229,1
    - Dst: repo_config_set
      Src: /src/git/builtin/remote.c:230,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:233,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:234,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:236,1
    - Dst: add_branch
      Src: /src/git/builtin/remote.c:238,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:244,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:245,1
    - Dst: repo_config_set
      Src: /src/git/builtin/remote.c:246,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:250,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:251,1
    - Dst: repo_config_set
      Src: /src/git/builtin/remote.c:252,1
    - Dst: fetch_remote
      Src: /src/git/builtin/remote.c:256,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:262,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:263,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:265,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:266,1
    - Dst: refs_update_symref
      Src: /src/git/builtin/remote.c:268,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:268,1
    - Dst: error
      Src: /src/git/builtin/remote.c:269,1
    - Dst: _
      Src: /src/git/builtin/remote.c:269,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:273,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:274,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:275,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 177
    functionDepth: 15
    functionLinenumber: 177
    functionLinenumberEnd: 278
    functionName: add
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 372
    functionsReached:
    - remote_is_configured
    - parse_options
    - valid_remote_name
    - fetch_remote
    - refs_update_symref
    - repo_config_set
    - OPT_BOOL
    - strbuf_addf
    - remote_get
    - usage_with_options
    - error
    - get_main_ref_store
    - strbuf_release
    - OPT_END
    - die
    - OPT_STRING_LIST
    - string_list_clear
    - OPT_SET_INT
    - for_each_remote
    - string_list_append
    - _
    - N_
    - strbuf_reset
    - exit
    - OPT_CALLBACK_F
    - OPT_STRING
    - add_branch
    linkageType: ''
    returnType: int
    signature: "int add(int argc, const char **argv, const char *prefix,\n\t       struct
      repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/remote.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: abbrev_ref
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: char
    signature: char *abbrev_ref(const char *name, const char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: abbrev_branch
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abbrev_branch(name)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/remote.c:307,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:310,1
    - Dst: strip_suffix
      Src: /src/git/builtin/remote.c:311,1
    - Dst: strip_suffix
      Src: /src/git/builtin/remote.c:313,1
    - Dst: strip_suffix
      Src: /src/git/builtin/remote.c:315,1
    - Dst: strip_suffix
      Src: /src/git/builtin/remote.c:317,1
    - Dst: xmemdupz
      Src: /src/git/builtin/remote.c:322,1
    - Dst: string_list_insert
      Src: /src/git/builtin/remote.c:323,1
    - Dst: xcalloc
      Src: /src/git/builtin/remote.c:326,1
    - Dst: warning
      Src: /src/git/builtin/remote.c:331,1
    - Dst: _
      Src: /src/git/builtin/remote.c:331,1
    - Dst: xstrdup
      Src: /src/git/builtin/remote.c:332,1
    - Dst: strchr
      Src: /src/git/builtin/remote.c:335,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:336,1
    - Dst: xstrndup
      Src: /src/git/builtin/remote.c:339,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:340,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:341,1
    - Dst: strchr
      Src: /src/git/builtin/remote.c:342,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:344,1
    - Dst: xstrdup
      Src: /src/git/builtin/remote.c:344,1
    - Dst: rebase_parse_value
      Src: /src/git/builtin/remote.c:352,1
    - Dst: warning
      Src: /src/git/builtin/remote.c:354,1
    - Dst: _
      Src: /src/git/builtin/remote.c:354,1
    - Dst: warning
      Src: /src/git/builtin/remote.c:359,1
    - Dst: _
      Src: /src/git/builtin/remote.c:359,1
    - Dst: xstrdup
      Src: /src/git/builtin/remote.c:360,1
    - Dst: BUG
      Src: /src/git/builtin/remote.c:363,1
    - Dst: free
      Src: /src/git/builtin/remote.c:366,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 296
    functionDepth: 11
    functionLinenumber: 296
    functionLinenumberEnd: 368
    functionName: config_read_branches
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - string_list_insert
    - strip_suffix
    - rebase_parse_value
    - starts_with
    - strchr
    - xstrndup
    - free
    - strlen
    - xcalloc
    - _
    - abbrev_branch
    - string_list_append
    - warning
    - BUG
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int config_read_branches(const char *key, const char *value,\n\t\t\t\tconst
      struct config_context *ctx UNUSED,\n\t\t\t\tvoid *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/builtin/remote.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 370
    functionDepth: 19
    functionLinenumber: 370
    functionLinenumberEnd: 375
    functionName: read_branches
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - repo_config
    linkageType: ''
    returnType: void
    signature: void read_branches(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_fetch_map
      Src: /src/git/builtin/remote.c:399,1
    - Dst: die
      Src: /src/git/builtin/remote.c:400,1
    - Dst: _
      Src: /src/git/builtin/remote.c:400,1
    - Dst: refname_matches_negative_refspec_item
      Src: /src/git/builtin/remote.c:404,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:405,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:405,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/remote.c:406,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:406,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:407,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:407,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:409,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:409,1
    - Dst: get_stale_heads
      Src: /src/git/builtin/remote.c:411,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:414,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:414,1
    - Dst: xstrdup
      Src: /src/git/builtin/remote.c:415,1
    - Dst: free_refs
      Src: /src/git/builtin/remote.c:417,1
    - Dst: free_refs
      Src: /src/git/builtin/remote.c:418,1
    - Dst: string_list_sort
      Src: /src/git/builtin/remote.c:420,1
    - Dst: string_list_sort
      Src: /src/git/builtin/remote.c:421,1
    - Dst: string_list_sort
      Src: /src/git/builtin/remote.c:422,1
    - Dst: string_list_sort
      Src: /src/git/builtin/remote.c:423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - remote_refs
    - states
    argTypes:
    - struct ref*
    - struct ref_states*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 392
    functionDepth: 11
    functionLinenumber: 392
    functionLinenumberEnd: 426
    functionName: get_ref_states
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - refname_matches_negative_refspec_item
    - die
    - string_list_sort
    - free_refs
    - get_stale_heads
    - string_list_append
    - _
    - abbrev_branch
    - refs_ref_exists
    - get_fetch_map
    - xstrdup
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int get_ref_states(const struct ref *remote_refs, struct ref_states
      *states)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_local_heads
      Src: /src/git/builtin/remote.c:449,1
    - Dst: copy_ref_list
      Src: /src/git/builtin/remote.c:450,1
    - Dst: match_push_refs
      Src: /src/git/builtin/remote.c:452,1
    - Dst: oidcpy
      Src: /src/git/builtin/remote.c:460,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:462,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:463,1
    - Dst: xcalloc
      Src: /src/git/builtin/remote.c:464,1
    - Dst: xstrdup
      Src: /src/git/builtin/remote.c:467,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:467,1
    - Dst: is_null_oid
      Src: /src/git/builtin/remote.c:469,1
    - Dst: oideq
      Src: /src/git/builtin/remote.c:471,1
    - Dst: is_null_oid
      Src: /src/git/builtin/remote.c:473,1
    - Dst: odb_has_object
      Src: /src/git/builtin/remote.c:475,1
    - Dst: ref_newer
      Src: /src/git/builtin/remote.c:477,1
    - Dst: free_refs
      Src: /src/git/builtin/remote.c:482,1
    - Dst: free_refs
      Src: /src/git/builtin/remote.c:483,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - remote_refs
    - states
    argTypes:
    - struct ref*
    - struct ref_states*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 441
    functionDepth: 21
    functionLinenumber: 441
    functionLinenumberEnd: 485
    functionName: get_push_ref_states
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - copy_ref_list
    - free_refs
    - is_null_oid
    - match_push_refs
    - odb_has_object
    - ref_newer
    - string_list_append
    - abbrev_branch
    - xcalloc
    - get_local_heads
    - oideq
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int get_push_ref_states(const struct ref *remote_refs,\n\tstruct ref_states
      *states)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:498,1
    - Dst: _
      Src: /src/git/builtin/remote.c:498,1
    - Dst: xcalloc
      Src: /src/git/builtin/remote.c:499,1
    - Dst: xstrdup
      Src: /src/git/builtin/remote.c:501,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:506,1
    - Dst: _
      Src: /src/git/builtin/remote.c:506,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:507,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:508,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:510,1
    - Dst: _
      Src: /src/git/builtin/remote.c:510,1
    - Dst: xcalloc
      Src: /src/git/builtin/remote.c:512,1
    - Dst: xstrdup
      Src: /src/git/builtin/remote.c:515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - states
    argTypes:
    - struct ref_states*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 487
    functionDepth: 7
    functionLinenumber: 487
    functionLinenumberEnd: 518
    functionName: get_push_ref_states_noquery
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strlen
    - xcalloc
    - string_list_append
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int get_push_ref_states_noquery(struct ref_states *states)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_fetch_map
      Src: /src/git/builtin/remote.c:531,1
    - Dst: guess_remote_head
      Src: /src/git/builtin/remote.c:532,1
    - Dst: find_ref_by_name
      Src: /src/git/builtin/remote.c:532,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:535,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:535,1
    - Dst: free_refs
      Src: /src/git/builtin/remote.c:537,1
    - Dst: free_refs
      Src: /src/git/builtin/remote.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - remote_refs
    - states
    argTypes:
    - struct ref*
    - struct ref_states*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 520
    functionDepth: 11
    functionLinenumber: 520
    functionLinenumberEnd: 540
    functionName: get_head_names
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - guess_remote_head
    - free_refs
    - string_list_append
    - abbrev_branch
    - get_fetch_map
    - find_ref_by_name
    linkageType: ''
    returnType: int
    signature: int get_head_names(const struct ref *remote_refs, struct ref_states
      *states)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:557,1
    - Dst: xmalloc
      Src: /src/git/builtin/remote.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - remote
    - cb_data
    argTypes:
    - struct remote*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 565
    functionName: add_known_remote
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - strcmp
    linkageType: ''
    returnType: int
    signature: int add_known_remote(struct remote *remote, void *cb_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/remote.c:579,1
    - Dst: remote_find_tracking
      Src: /src/git/builtin/remote.c:581,1
    - Dst: free
      Src: /src/git/builtin/remote.c:583,1
    - Dst: memset
      Src: /src/git/builtin/remote.c:587,1
    - Dst: remote_find_tracking
      Src: /src/git/builtin/remote.c:589,1
    - Dst: free
      Src: /src/git/builtin/remote.c:590,1
    - Dst: starts_with
      Src: /src/git/builtin/remote.c:596,1
    - Dst: starts_with
      Src: /src/git/builtin/remote.c:598,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:599,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:600,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 573
    functionDepth: 9
    functionLinenumber: 573
    functionLinenumberEnd: 608
    functionName: add_branch_for_removal
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - memset
    - remote_find_tracking
    - starts_with
    - string_list_append
    - free
    - abbrev_branch
    linkageType: ''
    returnType: int
    signature: int add_branch_for_removal(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:624,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/remote.c:625,1
    - Dst: strbuf_splice
      Src: /src/git/builtin/remote.c:626,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:626,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:626,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rename
    - refname
    - out
    argTypes:
    - struct rename_info*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 620
    functionDepth: 4
    functionLinenumber: 620
    functionLinenumberEnd: 628
    functionName: compute_renamed_ref
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strlen
    - strbuf_splice
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void compute_renamed_ref(struct rename_info *rename,\n\t\t\t\tconst
      char *refname,\n\t\t\t\tstruct strbuf *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compute_renamed_ref
      Src: /src/git/builtin/remote.c:646,1
    - Dst: split_ident_line
      Src: /src/git/builtin/remote.c:648,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:648,1
    - Dst: strbuf_add
      Src: /src/git/builtin/remote.c:653,1
    - Dst: strbuf_add
      Src: /src/git/builtin/remote.c:654,1
    - Dst: show_date
      Src: /src/git/builtin/remote.c:656,1
    - Dst: DATE_MODE
      Src: /src/git/builtin/remote.c:656,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/remote.c:657,1
    - Dst: fmt_ident
      Src: /src/git/builtin/remote.c:657,1
    - Dst: ref_transaction_update_reflog
      Src: /src/git/builtin/remote.c:660,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:665,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:666,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:667,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 8
    argNames:
    - old_refname
    - old_oid
    - new_oid
    - committer
    - timestamp
    - tz
    - msg
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 630
    functionDepth: 7
    functionLinenumber: 630
    functionLinenumberEnd: 670
    functionName: rename_one_reflog_entry
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fmt_ident
    - DATE_MODE
    - strlen
    - compute_renamed_ref
    - show_date
    - strbuf_addstr
    - ref_transaction_update_reflog
    - split_ident_line
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int rename_one_reflog_entry(const char *old_refname,\n\t\t\t\t   struct
      object_id *old_oid,\n\t\t\t\t   struct object_id *new_oid,\n\t\t\t\t   const
      char *committer,\n\t\t\t\t   timestamp_t timestamp, int tz,\n\t\t\t\t   const
      char *msg, void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_reflog_exists
      Src: /src/git/builtin/remote.c:680,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:680,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/builtin/remote.c:683,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:683,1
    - Dst: compute_renamed_ref
      Src: /src/git/builtin/remote.c:688,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:698,1
    - Dst: ref_transaction_update_reflog
      Src: /src/git/builtin/remote.c:701,1
    - Dst: git_committer_info
      Src: /src/git/builtin/remote.c:702,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:708,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:709,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - old_refname
    - old_oid
    - rename
    argTypes:
    - char*
    - struct object_id*
    - struct rename_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 672
    functionDepth: 8
    functionLinenumber: 672
    functionLinenumberEnd: 711
    functionName: rename_one_reflog
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - refs_for_each_reflog_ent
    - strbuf_addf
    - refs_reflog_exists
    - compute_renamed_ref
    - ref_transaction_update_reflog
    - git_committer_info
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int rename_one_reflog(const char *old_refname,\n\t\t\t     const struct
      object_id *old_oid,\n\t\t\t     struct rename_info *rename)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: compute_renamed_ref
      Src: /src/git/builtin/remote.c:722,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/remote.c:731,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:731,1
    - Dst: compute_renamed_ref
      Src: /src/git/builtin/remote.c:734,1
    - Dst: ref_transaction_delete
      Src: /src/git/builtin/remote.c:738,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/remote.c:743,1
    - Dst: null_oid
      Src: /src/git/builtin/remote.c:743,1
    - Dst: rename_one_reflog
      Src: /src/git/builtin/remote.c:750,1
    - Dst: display_progress
      Src: /src/git/builtin/remote.c:754,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:757,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:758,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 713
    functionDepth: 9
    functionLinenumber: 713
    functionLinenumberEnd: 760
    functionName: rename_one_ref
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - refs_resolve_ref_unsafe
    - ref_transaction_update
    - rename_one_reflog
    - ref_transaction_delete
    - compute_renamed_ref
    - display_progress
    - null_oid
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int rename_one_ref(const struct reference *ref, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:766,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/remote.c:768,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:769,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:770,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/remote.c:772,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:773,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:774,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/remote.c:776,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/remote.c:779,1
    - Dst: repo_git_path_replace
      Src: /src/git/builtin/remote.c:779,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/remote.c:782,1
    - Dst: repo_git_path_replace
      Src: /src/git/builtin/remote.c:782,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:785,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - remote
    argTypes:
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 762
    functionDepth: 13
    functionLinenumber: 762
    functionLinenumberEnd: 788
    functionName: migrate_file
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - repo_config_set_multivar
    - strbuf_release
    - unlink_or_warn
    - strbuf_reset
    - strbuf_addf
    - repo_git_path_replace
    linkageType: ''
    returnType: int
    signature: int migrate_file(struct remote *remote)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:804,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:805,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:809,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/remote.c:810,1
    - Dst: config_origin_type_name
      Src: /src/git/builtin/remote.c:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 798
    functionDepth: 4
    functionLinenumber: 798
    functionLinenumberEnd: 814
    functionName: config_read_push_default
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - config_origin_type_name
    - strbuf_addstr
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int config_read_push_default(const char *key, const char *value,\n\tconst
      struct config_context *ctx, void *cb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/builtin/remote.c:824,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/remote.c:828,1
    - Dst: die
      Src: /src/git/builtin/remote.c:831,1
    - Dst: _
      Src: /src/git/builtin/remote.c:831,1
    - Dst: die
      Src: /src/git/builtin/remote.c:833,1
    - Dst: _
      Src: /src/git/builtin/remote.c:833,1
    - Dst: warning
      Src: /src/git/builtin/remote.c:836,1
    - Dst: _
      Src: /src/git/builtin/remote.c:836,1
    - Dst: config_scope_name
      Src: /src/git/builtin/remote.c:839,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:844,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - old_name
    - new_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 816
    functionDepth: 19
    functionLinenumber: 816
    functionLinenumberEnd: 845
    functionName: handle_push_default
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - repo_config
    - config_scope_name
    - _
    - warning
    - repo_config_set_gently
    linkageType: ''
    returnType: void
    signature: void handle_push_default(const char* old_name, const char* new_name)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/git/builtin/remote.c:859,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:861,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:861,1
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:862,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:873,1
    - Dst: usage_with_options
      Src: /src/git/builtin/remote.c:877,1
    - Dst: remote_get
      Src: /src/git/builtin/remote.c:882,1
    - Dst: remote_is_configured
      Src: /src/git/builtin/remote.c:883,1
    - Dst: error
      Src: /src/git/builtin/remote.c:884,1
    - Dst: _
      Src: /src/git/builtin/remote.c:884,1
    - Dst: exit
      Src: /src/git/builtin/remote.c:885,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:888,1
    - Dst: migrate_file
      Src: /src/git/builtin/remote.c:889,1
    - Dst: remote_get
      Src: /src/git/builtin/remote.c:891,1
    - Dst: remote_is_configured
      Src: /src/git/builtin/remote.c:892,1
    - Dst: error
      Src: /src/git/builtin/remote.c:893,1
    - Dst: _
      Src: /src/git/builtin/remote.c:893,1
    - Dst: exit
      Src: /src/git/builtin/remote.c:894,1
    - Dst: valid_remote_name
      Src: /src/git/builtin/remote.c:897,1
    - Dst: die
      Src: /src/git/builtin/remote.c:898,1
    - Dst: _
      Src: /src/git/builtin/remote.c:898,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:900,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:901,1
    - Dst: repo_config_rename_section
      Src: /src/git/builtin/remote.c:902,1
    - Dst: error
      Src: /src/git/builtin/remote.c:903,1
    - Dst: _
      Src: /src/git/builtin/remote.c:903,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:908,1
    - Dst: strstr
      Src: /src/git/builtin/remote.c:911,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/remote.c:918,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:918,1
    - Dst: start_delayed_progress
      Src: /src/git/builtin/remote.c:924,1
    - Dst: _
      Src: /src/git/builtin/remote.c:925,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:927,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:928,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/remote.c:931,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:931,1
    - Dst: die
      Src: /src/git/builtin/remote.c:934,1
    - Dst: _
      Src: /src/git/builtin/remote.c:934,1
    - Dst: ref_transaction_prepare
      Src: /src/git/builtin/remote.c:936,1
    - Dst: error
      Src: /src/git/builtin/remote.c:938,1
    - Dst: advise
      Src: /src/git/builtin/remote.c:940,1
    - Dst: die
      Src: /src/git/builtin/remote.c:941,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:946,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:947,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/remote.c:948,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:952,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/remote.c:953,1
    - Dst: strstr
      Src: /src/git/builtin/remote.c:954,1
    - Dst: strbuf_splice
      Src: /src/git/builtin/remote.c:956,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:957,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:958,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:959,1
    - Dst: warning
      Src: /src/git/builtin/remote.c:961,1
    - Dst: _
      Src: /src/git/builtin/remote.c:961,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/remote.c:966,1
    - Dst: read_branches
      Src: /src/git/builtin/remote.c:970,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:974,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:975,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:976,1
    - Dst: repo_config_set
      Src: /src/git/builtin/remote.c:977,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:979,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:980,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:981,1
    - Dst: repo_config_set
      Src: /src/git/builtin/remote.c:982,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/remote.c:987,1
    - Dst: die
      Src: /src/git/builtin/remote.c:989,1
    - Dst: _
      Src: /src/git/builtin/remote.c:989,1
    - Dst: stop_progress
      Src: /src/git/builtin/remote.c:991,1
    - Dst: handle_push_default
      Src: /src/git/builtin/remote.c:993,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/remote.c:997,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:998,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:999,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1000,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1001,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1002,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 95
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 856
    functionDepth: 20
    functionLinenumber: 856
    functionLinenumberEnd: 1004
    functionName: mv
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - remote_is_configured
    - ref_transaction_commit
    - parse_options
    - stop_progress
    - valid_remote_name
    - repo_config_set
    - OPT_BOOL
    - strbuf_addf
    - remote_get
    - strbuf_splice
    - start_delayed_progress
    - strcmp
    - ref_store_transaction_begin
    - migrate_file
    - usage_with_options
    - error
    - get_main_ref_store
    - strbuf_release
    - OPT_END
    - die
    - strstr
    - handle_push_default
    - ref_transaction_prepare
    - ref_transaction_free
    - strbuf_addstr
    - advise
    - isatty
    - read_branches
    - _
    - N_
    - warning
    - repo_config_set_multivar
    - strbuf_reset
    - exit
    - repo_config_rename_section
    - refs_for_each_ref_ext
    - strlen
    linkageType: ''
    returnType: int
    signature: "int mv(int argc, const char **argv, const char *prefix,\n\t      struct
      repository *repo UNUSED)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:1010,1
    - Dst: memset
      Src: /src/git/builtin/remote.c:1020,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:1025,1
    - Dst: usage_with_options
      Src: /src/git/builtin/remote.c:1028,1
    - Dst: remote_get
      Src: /src/git/builtin/remote.c:1030,1
    - Dst: remote_is_configured
      Src: /src/git/builtin/remote.c:1031,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1032,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1032,1
    - Dst: exit
      Src: /src/git/builtin/remote.c:1033,1
    - Dst: for_each_remote
      Src: /src/git/builtin/remote.c:1037,1
    - Dst: read_branches
      Src: /src/git/builtin/remote.c:1039,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:1043,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:1046,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1047,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/remote.c:1049,1
    - Dst: die
      Src: /src/git/builtin/remote.c:1051,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1051,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:1054,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/remote.c:1055,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1056,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/remote.c:1057,1
    - Dst: die
      Src: /src/git/builtin/remote.c:1059,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1059,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/remote.c:1069,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:1069,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1071,1
    - Dst: refs_delete_refs
      Src: /src/git/builtin/remote.c:1074,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:1074,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1077,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/remote.c:1080,1
    - Dst: Q_
      Src: /src/git/builtin/remote.c:1081,1
    - Dst: fprintf
      Src: /src/git/builtin/remote.c:1087,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1090,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1093,1
    - Dst: repo_config_rename_section
      Src: /src/git/builtin/remote.c:1094,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1095,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1095,1
    - Dst: handle_push_default
      Src: /src/git/builtin/remote.c:1099,1
    - Dst: free
      Src: /src/git/builtin/remote.c:1105,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1108,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1006
    functionDepth: 20
    functionLinenumber: 1006
    functionLinenumberEnd: 1110
    functionName: rm
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 45
    functionsReached:
    - remote_is_configured
    - parse_options
    - strbuf_addf
    - remote_get
    - strcmp
    - free
    - get_main_ref_store
    - error
    - usage_with_options
    - strbuf_release
    - OPT_END
    - die
    - handle_push_default
    - Q_
    - string_list_clear
    - memset
    - fprintf_ln
    - read_branches
    - for_each_remote
    - _
    - refs_delete_refs
    - strbuf_reset
    - exit
    - refs_for_each_ref
    - repo_config_rename_section
    - repo_config_set_gently
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int rm(int argc, const char **argv, const char *prefix,\n\t      struct
      repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/remote.c:1115,1
    - Dst: free
      Src: /src/git/builtin/remote.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - util
    - string
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1117
    functionName: clear_push_info
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void clear_push_info(void *util, const char *string UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1121,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1122,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1123,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1124,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1125,1
    - Dst: string_list_clear_func
      Src: /src/git/builtin/remote.c:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - states
    argTypes:
    - struct ref_states*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1127
    functionName: free_remote_ref_states
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_clear_func
    linkageType: ''
    returnType: void
    signature: void free_remote_ref_states(struct ref_states *states)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/remote.c:1137,1
    - Dst: remote_find_tracking
      Src: /src/git/builtin/remote.c:1139,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:1140,1
    - Dst: abbrev_branch
      Src: /src/git/builtin/remote.c:1140,1
    - Dst: free
      Src: /src/git/builtin/remote.c:1141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1129
    functionDepth: 9
    functionLinenumber: 1129
    functionLinenumberEnd: 1145
    functionName: append_ref_to_tracked_list
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - memset
    - remote_find_tracking
    - string_list_append
    - free
    - abbrev_branch
    linkageType: ''
    returnType: int
    signature: int append_ref_to_tracked_list(const struct reference *ref, void *cb_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: remote_get
      Src: /src/git/builtin/remote.c:1151,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1153,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1153,1
    - Dst: read_branches
      Src: /src/git/builtin/remote.c:1155,1
    - Dst: transport_get
      Src: /src/git/builtin/remote.c:1161,1
    - Dst: transport_get_remote_refs
      Src: /src/git/builtin/remote.c:1162,1
    - Dst: get_ref_states
      Src: /src/git/builtin/remote.c:1166,1
    - Dst: get_head_names
      Src: /src/git/builtin/remote.c:1168,1
    - Dst: get_push_ref_states
      Src: /src/git/builtin/remote.c:1170,1
    - Dst: transport_disconnect
      Src: /src/git/builtin/remote.c:1171,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/remote.c:1173,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:1173,1
    - Dst: string_list_sort
      Src: /src/git/builtin/remote.c:1175,1
    - Dst: get_push_ref_states_noquery
      Src: /src/git/builtin/remote.c:1176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - name
    - states
    - query
    argTypes:
    - char*
    - struct ref_states*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1147
    functionDepth: 22
    functionLinenumber: 1147
    functionLinenumberEnd: 1180
    functionName: get_remote_ref_states
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - error
    - transport_disconnect
    - transport_get
    - read_branches
    - get_push_ref_states
    - string_list_sort
    - transport_get_remote_refs
    - refs_for_each_ref
    - remote_get
    - get_head_names
    - _
    - get_ref_states
    - get_push_ref_states_noquery
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int get_remote_ref_states(const char *name,\n\t\t\t\t struct ref_states
      *states,\n\t\t\t\t int query)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/remote.c:1197,1
    - Dst: string_list_insert
      Src: /src/git/builtin/remote.c:1200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1194
    functionDepth: 2
    functionLinenumber: 1194
    functionLinenumberEnd: 1202
    functionName: add_remote_to_show_info
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strlen
    - string_list_insert
    linkageType: ''
    returnType: int
    signature: int add_remote_to_show_info(struct string_list_item *item, void *cb_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string_list_has_string
      Src: /src/git/builtin/remote.c:1213,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1214,1
    - Dst: string_list_has_string
      Src: /src/git/builtin/remote.c:1216,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1217,1
    - Dst: string_list_has_string
      Src: /src/git/builtin/remote.c:1218,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1219,1
    - Dst: string_list_has_string
      Src: /src/git/builtin/remote.c:1220,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1221,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1223,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1224,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1225,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1226,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1204
    functionDepth: 3
    functionLinenumber: 1204
    functionLinenumberEnd: 1231
    functionName: show_remote_info_item
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - string_list_has_string
    - printf
    - _
    linkageType: ''
    returnType: int
    signature: int show_remote_info_item(struct string_list_item *item, void *cb_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:1242,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:1244,1
    - Dst: string_list_insert
      Src: /src/git/builtin/remote.c:1249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - branch_item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1233
    functionDepth: 2
    functionLinenumber: 1233
    functionLinenumberEnd: 1253
    functionName: add_local_to_show_info
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strlen
    - string_list_insert
    - strcmp
    linkageType: ''
    returnType: int
    signature: int add_local_to_show_info(struct string_list_item *branch_item, void
      *cb_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/remote.c:1263,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1263,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1268,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1272,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1274,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1277,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1278,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1281,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1281,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1284,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1284,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1287,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1287,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1291
    functionName: show_local_info_item
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - error
    - printf_ln
    - printf
    - _
    linkageType: ''
    returnType: int
    signature: int show_local_info_item(struct string_list_item *item, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/remote.c:1299,1
    - Dst: strlen
      Src: /src/git/builtin/remote.c:1301,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:1303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - push_item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1293
    functionDepth: 2
    functionLinenumber: 1293
    functionLinenumberEnd: 1306
    functionName: add_push_to_show_info
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strlen
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int add_push_to_show_info(struct string_list_item *push_item, void
      *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:1318,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1320
    functionName: cmp_string_with_push
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmp_string_with_push(const void *va, const void *vb)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/builtin/remote.c:1330,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1333,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1334,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1337,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1340,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1343,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1350,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1350,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1353,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1353,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1357,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1357,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1360,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1360,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1364
    functionName: show_push_info_item
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - printf_ln
    - _
    linkageType: ''
    returnType: int
    signature: int show_push_info_item(struct string_list_item *item, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1376,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1377,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/remote.c:1378,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1379,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1381,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:1382,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/remote.c:1383,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:1385,1
    - Dst: push_url_of_remote
      Src: /src/git/builtin/remote.c:1386,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1388,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:1389,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/remote.c:1390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - remote
    - priv
    argTypes:
    - struct remote*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1366
    functionDepth: 19
    functionLinenumber: 1366
    functionLinenumberEnd: 1394
    functionName: get_one_entry
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - repo_config_get_string_tmp
    - push_url_of_remote
    - strbuf_addf
    - strbuf_detach
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int get_one_entry(struct remote *remote, void *priv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: for_each_remote
      Src: /src/git/builtin/remote.c:1401,1
    - Dst: string_list_sort
      Src: /src/git/builtin/remote.c:1404,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1408,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:1411,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1413,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1396
    functionDepth: 14
    functionLinenumber: 1396
    functionLinenumberEnd: 1419
    functionName: show_all
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - for_each_remote
    - string_list_sort
    - strcmp
    - printf
    linkageType: ''
    returnType: int
    signature: int show_all(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:1426,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1426,1
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:1427,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:1431,1
    - Dst: show_all
      Src: /src/git/builtin/remote.c:1436,1
    - Dst: get_remote_ref_states
      Src: /src/git/builtin/remote.c:1445,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1447,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1447,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1448,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1448,1
    - Dst: push_url_of_remote
      Src: /src/git/builtin/remote.c:1449,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1456,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1456,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1458,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1458,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1458,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1460,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1460,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1460,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1462,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1462,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1462,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1464,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1464,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1466,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1466,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1469,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/remote.c:1474,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/remote.c:1475,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/remote.c:1476,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/remote.c:1477,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1479,1
    - Dst: Q_
      Src: /src/git/builtin/remote.c:1479,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1482,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/remote.c:1483,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1484,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/remote.c:1489,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1491,1
    - Dst: Q_
      Src: /src/git/builtin/remote.c:1491,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/remote.c:1494,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1495,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1499,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1499,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/remote.c:1502,1
    - Dst: QSORT
      Src: /src/git/builtin/remote.c:1503,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1505,1
    - Dst: Q_
      Src: /src/git/builtin/remote.c:1505,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1508,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/remote.c:1509,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1510,1
    - Dst: free_remote_ref_states
      Src: /src/git/builtin/remote.c:1512,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1421
    functionDepth: 23
    functionLinenumber: 1421
    functionLinenumberEnd: 1516
    functionName: show
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 8
    functionsReached:
    - string_list_clear
    - parse_options
    - OPT_END
    - push_url_of_remote
    - for_each_string_list
    - show_all
    - Q_
    - OPT_BOOL
    - get_remote_ref_states
    - QSORT
    - free_remote_ref_states
    - _
    - N_
    - printf_ln
    - printf
    linkageType: ''
    returnType: int
    signature: "int show(int argc, const char **argv, const char *prefix,\n\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1523,1
    - Dst: skip_prefix
      Src: /src/git/builtin/remote.c:1524,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:1526,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1527,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1527,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1530,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1530,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1533,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1533,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1536,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1536,1
    - Dst: printf
      Src: /src/git/builtin/remote.c:1539,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1539,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1542,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - remote
    - head_name
    - b_local_head
    - was_detached
    argTypes:
    - char*
    - char*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1518
    functionDepth: 3
    functionLinenumber: 1518
    functionLinenumberEnd: 1543
    functionName: report_set_head_auto
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - strcmp
    - _
    - skip_prefix
    - printf
    linkageType: ''
    returnType: void
    signature: "void report_set_head_auto(const char *remote, const char *head_name,\n\t\t\tstruct
      strbuf *b_local_head, int was_detached)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:1552,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:1556,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1557,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:1558,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1559,1
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:1560,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:1562,1
    - Dst: usage_with_options
      Src: /src/git/builtin/remote.c:1567,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1569,1
    - Dst: remote_get
      Src: /src/git/builtin/remote.c:1570,1
    - Dst: xstrdup
      Src: /src/git/builtin/remote.c:1573,1
    - Dst: get_remote_ref_states
      Src: /src/git/builtin/remote.c:1576,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1578,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1578,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1580,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1580,1
    - Dst: fprintf
      Src: /src/git/builtin/remote.c:1583,1
    - Dst: xstrdup
      Src: /src/git/builtin/remote.c:1586,1
    - Dst: free_remote_ref_states
      Src: /src/git/builtin/remote.c:1587,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/remote.c:1589,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1590,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1590,1
    - Dst: usage_with_options
      Src: /src/git/builtin/remote.c:1592,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1596,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/remote.c:1597,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1598,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1598,1
    - Dst: refs_update_symref_extended
      Src: /src/git/builtin/remote.c:1601,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1604,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1604,1
    - Dst: report_set_head_auto
      Src: /src/git/builtin/remote.c:1608,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1611,1
    - Dst: repo_config_set
      Src: /src/git/builtin/remote.c:1613,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1614,1
    - Dst: free
      Src: /src/git/builtin/remote.c:1618,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1619,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1620,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1621,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1545
    functionDepth: 23
    functionLinenumber: 1545
    functionLinenumberEnd: 1623
    functionName: set_head
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 9
    functionsReached:
    - parse_options
    - repo_config_set
    - OPT_BOOL
    - strbuf_addf
    - remote_get
    - free
    - usage_with_options
    - error
    - refs_update_symref_extended
    - get_main_ref_store
    - OPT_END
    - strbuf_release
    - refs_ref_exists
    - report_set_head_auto
    - refs_delete_ref
    - _
    - N_
    - xstrdup
    - get_remote_ref_states
    - free_remote_ref_states
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int set_head(int argc, const char **argv, const char *prefix,\n\t\t
      \   struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_remote_ref_states
      Src: /src/git/builtin/remote.c:1632,1
    - Dst: free_remote_ref_states
      Src: /src/git/builtin/remote.c:1635,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1639,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1639,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1640,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1640,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/remote.c:1642,1
    - Dst: string_list_append
      Src: /src/git/builtin/remote.c:1643,1
    - Dst: string_list_sort
      Src: /src/git/builtin/remote.c:1644,1
    - Dst: refs_delete_refs
      Src: /src/git/builtin/remote.c:1647,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:1647,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/remote.c:1650,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1654,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1654,1
    - Dst: abbrev_ref
      Src: /src/git/builtin/remote.c:1655,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1657,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1657,1
    - Dst: abbrev_ref
      Src: /src/git/builtin/remote.c:1658,1
    - Dst: refs_warn_dangling_symrefs
      Src: /src/git/builtin/remote.c:1661,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/remote.c:1661,1
    - Dst: string_list_clear
      Src: /src/git/builtin/remote.c:1664,1
    - Dst: free_remote_ref_states
      Src: /src/git/builtin/remote.c:1665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - remote
    - dry_run
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1625
    functionDepth: 23
    functionLinenumber: 1625
    functionLinenumberEnd: 1667
    functionName: prune_remote
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - abbrev_ref
    - string_list_sort
    - refs_warn_dangling_symrefs
    - refs_delete_refs
    - get_remote_ref_states
    - free_remote_ref_states
    - _
    - string_list_append
    - printf_ln
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int prune_remote(const char *remote, int dry_run)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT__DRY_RUN
      Src: /src/git/builtin/remote.c:1674,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1674,1
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:1675,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:1678,1
    - Dst: usage_with_options
      Src: /src/git/builtin/remote.c:1682,1
    - Dst: prune_remote
      Src: /src/git/builtin/remote.c:1685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1669
    functionDepth: 24
    functionLinenumber: 1669
    functionLinenumberEnd: 1688
    functionName: prune
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 1
    functionsReached:
    - parse_options
    - OPT_END
    - OPT__DRY_RUN
    - prune_remote
    - N_
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int prune(int argc, const char **argv, const char *prefix,\n\t\t struct
      repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:1694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - key
    - UNUSED
    - UNUSED
    - priv
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1690
    functionDepth: 0
    functionLinenumber: 1690
    functionLinenumberEnd: 1699
    functionName: get_remote_default
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int get_remote_default(const char *key, const char *value UNUSED,\n\t\t\t
      \     const struct config_context *ctx UNUSED,\n\t\t\t      void *priv)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:1706,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1707,1
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:1708,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:1713,1
    - Dst: strvec_push
      Src: /src/git/builtin/remote.c:1717,1
    - Dst: strvec_push
      Src: /src/git/builtin/remote.c:1720,1
    - Dst: strvec_push
      Src: /src/git/builtin/remote.c:1722,1
    - Dst: strvec_push
      Src: /src/git/builtin/remote.c:1723,1
    - Dst: strvec_push
      Src: /src/git/builtin/remote.c:1725,1
    - Dst: strvec_push
      Src: /src/git/builtin/remote.c:1727,1
    - Dst: strcmp
      Src: /src/git/builtin/remote.c:1729,1
    - Dst: repo_config
      Src: /src/git/builtin/remote.c:1730,1
    - Dst: strvec_pop
      Src: /src/git/builtin/remote.c:1732,1
    - Dst: strvec_push
      Src: /src/git/builtin/remote.c:1733,1
    - Dst: run_command
      Src: /src/git/builtin/remote.c:1738,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1701
    functionDepth: 19
    functionLinenumber: 1701
    functionLinenumberEnd: 1739
    functionName: update
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 102
    functionsReached:
    - strvec_push
    - parse_options
    - OPT_END
    - strvec_pop
    - run_command
    - OPT_BOOL
    - strcmp
    - N_
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int update(int argc, const char **argv, const char *prefix,\n\t\t
      \ struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_set_multivar_gently
      Src: /src/git/builtin/remote.c:1743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1741
    functionDepth: 12
    functionLinenumber: 1741
    functionLinenumberEnd: 1745
    functionName: remove_all_fetch_refspecs
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - repo_config_set_multivar_gently
    linkageType: ''
    returnType: int
    signature: int remove_all_fetch_refspecs(const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_branch
      Src: /src/git/builtin/remote.c:1755,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - remote
    - branches
    - key
    argTypes:
    - struct remote*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1747
    functionDepth: 14
    functionLinenumber: 1747
    functionLinenumberEnd: 1758
    functionName: add_branches
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - add_branch
    linkageType: ''
    returnType: void
    signature: "void add_branches(struct remote *remote, const char **branches,\n\t\t\t
      const char *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1766,1
    - Dst: remote_get
      Src: /src/git/builtin/remote.c:1768,1
    - Dst: remote_is_configured
      Src: /src/git/builtin/remote.c:1769,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1770,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1770,1
    - Dst: exit
      Src: /src/git/builtin/remote.c:1771,1
    - Dst: remove_all_fetch_refspecs
      Src: /src/git/builtin/remote.c:1774,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1775,1
    - Dst: add_branches
      Src: /src/git/builtin/remote.c:1778,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - remotename
    - branches
    - add_mode
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1760
    functionDepth: 15
    functionLinenumber: 1760
    functionLinenumberEnd: 1782
    functionName: set_remote_branches
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - remote_is_configured
    - error
    - strbuf_release
    - remove_all_fetch_refspecs
    - exit
    - strbuf_addf
    - remote_get
    - _
    - add_branches
    linkageType: ''
    returnType: int
    signature: "int set_remote_branches(const char *remotename, const char **branches,\n\t\t\t\tint
      add_mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:1789,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1789,1
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:1790,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:1793,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1796,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1796,1
    - Dst: usage_with_options
      Src: /src/git/builtin/remote.c:1797,1
    - Dst: set_remote_branches
      Src: /src/git/builtin/remote.c:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1784
    functionDepth: 16
    functionLinenumber: 1784
    functionLinenumberEnd: 1802
    functionName: set_branches
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - OPT_BOOL
    - _
    - N_
    - set_remote_branches
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int set_branches(int argc, const char **argv, const char *prefix,\n\t\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:1812,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1813,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:1814,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1815,1
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:1816,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:1818,1
    - Dst: usage_with_options
      Src: /src/git/builtin/remote.c:1822,1
    - Dst: remote_get
      Src: /src/git/builtin/remote.c:1826,1
    - Dst: remote_is_configured
      Src: /src/git/builtin/remote.c:1827,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1828,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1828,1
    - Dst: exit
      Src: /src/git/builtin/remote.c:1829,1
    - Dst: push_url_of_remote
      Src: /src/git/builtin/remote.c:1832,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1836,1
    - Dst: printf_ln
      Src: /src/git/builtin/remote.c:1838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1804
    functionDepth: 15
    functionLinenumber: 1804
    functionLinenumberEnd: 1842
    functionName: get_url
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - remote_is_configured
    - error
    - parse_options
    - OPT_END
    - push_url_of_remote
    - exit
    - OPT_BOOL
    - remote_get
    - _
    - N_
    - printf_ln
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int get_url(int argc, const char **argv, const char *prefix,\n\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:1857,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1858,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:1859,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1860,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/remote.c:1861,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1862,1
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:1863,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:1865,1
    - Dst: die
      Src: /src/git/builtin/remote.c:1870,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1870,1
    - Dst: usage_with_options
      Src: /src/git/builtin/remote.c:1873,1
    - Dst: remote_get
      Src: /src/git/builtin/remote.c:1883,1
    - Dst: remote_is_configured
      Src: /src/git/builtin/remote.c:1884,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1885,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1885,1
    - Dst: exit
      Src: /src/git/builtin/remote.c:1886,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1890,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/remote.c:1893,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/remote.c:1900,1
    - Dst: repo_config_set
      Src: /src/git/builtin/remote.c:1903,1
    - Dst: regcomp
      Src: /src/git/builtin/remote.c:1908,1
    - Dst: die
      Src: /src/git/builtin/remote.c:1909,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1909,1
    - Dst: regexec
      Src: /src/git/builtin/remote.c:1912,1
    - Dst: die
      Src: /src/git/builtin/remote.c:1917,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1917,1
    - Dst: die
      Src: /src/git/builtin/remote.c:1919,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1919,1
    - Dst: regfree
      Src: /src/git/builtin/remote.c:1921,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/remote.c:1924,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/remote.c:1926,1
    - Dst: strbuf_release
      Src: /src/git/builtin/remote.c:1929,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1844
    functionDepth: 15
    functionLinenumber: 1844
    functionLinenumberEnd: 1931
    functionName: set_url
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - remote_is_configured
    - error
    - parse_options
    - OPT_END
    - die
    - repo_config_set_multivar
    - strbuf_release
    - regfree
    - exit
    - OPT_BOOL
    - strbuf_addf
    - remote_get
    - repo_config_set
    - regexec
    - regcomp
    - _
    - N_
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int set_url(int argc, const char **argv, const char *prefix,\n\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/remote.c:1940,1
    - Dst: N_
      Src: /src/git/builtin/remote.c:1940,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/remote.c:1941,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/remote.c:1942,1
    - Dst: OPT_SUBCOMMAND_F
      Src: /src/git/builtin/remote.c:1943,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/remote.c:1944,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/remote.c:1945,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/remote.c:1946,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/remote.c:1947,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/remote.c:1948,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/remote.c:1949,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/remote.c:1950,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/remote.c:1951,1
    - Dst: OPT_END
      Src: /src/git/builtin/remote.c:1952,1
    - Dst: parse_options
      Src: /src/git/builtin/remote.c:1955,1
    - Dst: fn
      Src: /src/git/builtin/remote.c:1959,1
    - Dst: error
      Src: /src/git/builtin/remote.c:1962,1
    - Dst: _
      Src: /src/git/builtin/remote.c:1962,1
    - Dst: usage_with_options
      Src: /src/git/builtin/remote.c:1963,1
    - Dst: show_all
      Src: /src/git/builtin/remote.c:1965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1933
    functionDepth: 15
    functionLinenumber: 1933
    functionLinenumberEnd: 1967
    functionName: cmd_remote
    functionSourceFile: /src/git/builtin/remote.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - fn
    - show_all
    - OPT_SUBCOMMAND_F
    - OPT_SUBCOMMAND
    - _
    - N_
    - OPT__VERBOSE
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_remote(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_unsigned
      Src: /src/git/builtin/range-diff.c:28,1
    - Dst: error
      Src: /src/git/builtin/range-diff.c:29,1
    - Dst: _
      Src: /src/git/builtin/range-diff.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: parse_max_memory
    functionSourceFile: /src/git/builtin/range-diff.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - git_parse_unsigned
    linkageType: ''
    returnType: int
    signature: int parse_max_memory(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/range-diff.c:51,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:53,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/range-diff.c:54,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:55,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/range-diff.c:56,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:57,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:57,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/range-diff.c:59,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:60,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:60,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/range-diff.c:61,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:62,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:63,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/range-diff.c:65,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:66,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/range-diff.c:67,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:68,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/range-diff.c:69,1
    - Dst: N_
      Src: /src/git/builtin/range-diff.c:70,1
    - Dst: OPT_END
      Src: /src/git/builtin/range-diff.c:71,1
    - Dst: repo_config
      Src: /src/git/builtin/range-diff.c:79,1
    - Dst: repo_diff_setup
      Src: /src/git/builtin/range-diff.c:81,1
    - Dst: add_diff_options
      Src: /src/git/builtin/range-diff.c:83,1
    - Dst: parse_options
      Src: /src/git/builtin/range-diff.c:84,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/range-diff.c:87,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/range-diff.c:96,1
    - Dst: strcmp
      Src: /src/git/builtin/range-diff.c:100,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/range-diff.c:107,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/range-diff.c:108,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/range-diff.c:109,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/range-diff.c:112,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/range-diff.c:113,1
    - Dst: _
      Src: /src/git/builtin/range-diff.c:113,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/range-diff.c:116,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/range-diff.c:117,1
    - Dst: _
      Src: /src/git/builtin/range-diff.c:117,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/range-diff.c:120,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/range-diff.c:121,1
    - Dst: _
      Src: /src/git/builtin/range-diff.c:121,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/range-diff.c:125,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/range-diff.c:126,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/range-diff.c:128,1
    - Dst: is_range_diff_range
      Src: /src/git/builtin/range-diff.c:132,1
    - Dst: is_range_diff_range
      Src: /src/git/builtin/range-diff.c:133,1
    - Dst: is_range_diff_range
      Src: /src/git/builtin/range-diff.c:136,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/range-diff.c:137,1
    - Dst: _
      Src: /src/git/builtin/range-diff.c:137,1
    - Dst: is_range_diff_range
      Src: /src/git/builtin/range-diff.c:140,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/range-diff.c:141,1
    - Dst: _
      Src: /src/git/builtin/range-diff.c:141,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/range-diff.c:145,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/range-diff.c:146,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/range-diff.c:148,1
    - Dst: strstr
      Src: /src/git/builtin/range-diff.c:152,1
    - Dst: strstr
      Src: /src/git/builtin/range-diff.c:158,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/range-diff.c:159,1
    - Dst: _
      Src: /src/git/builtin/range-diff.c:159,1
    - Dst: strlen
      Src: /src/git/builtin/range-diff.c:165,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/range-diff.c:176,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/range-diff.c:177,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/range-diff.c:179,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/range-diff.c:182,1
    - Dst: _
      Src: /src/git/builtin/range-diff.c:182,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/range-diff.c:184,1
    - Dst: show_range_diff
      Src: /src/git/builtin/range-diff.c:189,1
    - Dst: strvec_clear
      Src: /src/git/builtin/range-diff.c:191,1
    - Dst: strvec_clear
      Src: /src/git/builtin/range-diff.c:192,1
    - Dst: strbuf_release
      Src: /src/git/builtin/range-diff.c:193,1
    - Dst: strbuf_release
      Src: /src/git/builtin/range-diff.c:194,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 71
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 35
    functionDepth: 19
    functionLinenumber: 35
    functionLinenumberEnd: 197
    functionName: cmd_range_diff
    functionSourceFile: /src/git/builtin/range-diff.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_BOOL
    - strbuf_addf
    - strcmp
    - repo_config
    - strbuf_release
    - OPT_END
    - strstr
    - OPT_PASSTHRU_ARGV
    - add_diff_options
    - diff_setup_done
    - strbuf_addstr
    - repo_diff_setup
    - OPT_INTEGER
    - strvec_pushv
    - _
    - N_
    - FREE_AND_NULL
    - usage_msg_opt
    - show_range_diff
    - OPT_CALLBACK
    - strlen
    - strvec_clear
    - is_range_diff_range
    - repo_get_oid_committish
    - usage_msg_optf
    linkageType: ''
    returnType: int
    signature: "int cmd_range_diff(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: read_lock
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: read_unlock
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_unlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: counter_lock
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: counter_lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: counter_unlock
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: counter_unlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: work_lock
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: work_lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: work_unlock
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: work_unlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: deepest_delta_lock
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deepest_delta_lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: deepest_delta_unlock
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deepest_delta_unlock()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/index-pack.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: lock_mutex
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void lock_mutex(pthread_mutex_t *mutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/index-pack.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: unlock_mutex
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void unlock_mutex(pthread_mutex_t *mutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_recursive_mutex
      Src: /src/git/builtin/index-pack.c:205,1
    - Dst: pthread_mutex_init
      Src: /src/git/builtin/index-pack.c:206,1
    - Dst: pthread_mutex_init
      Src: /src/git/builtin/index-pack.c:207,1
    - Dst: pthread_mutex_init
      Src: /src/git/builtin/index-pack.c:209,1
    - Dst: pthread_key_create
      Src: /src/git/builtin/index-pack.c:210,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/index-pack.c:211,1
    - Dst: xopen
      Src: /src/git/builtin/index-pack.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: init_thread
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - xopen
    - pthread_mutex_init
    - pthread_key_create
    - CALLOC_ARRAY
    - init_recursive_mutex
    linkageType: ''
    returnType: void
    signature: void init_thread(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/index-pack.c:225,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/index-pack.c:226,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/index-pack.c:227,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/index-pack.c:229,1
    - Dst: close
      Src: /src/git/builtin/index-pack.c:231,1
    - Dst: pthread_key_delete
      Src: /src/git/builtin/index-pack.c:232,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 234
    functionName: cleanup_thread
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - close
    - pthread_key_delete
    - pthread_mutex_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cleanup_thread(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/index-pack.c:244,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:244,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - obj
    - type
    - UNUSED
    - options
    argTypes:
    - struct object*
    - enum object_type
    - void*
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 248
    functionName: mark_link
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - _
    linkageType: ''
    returnType: int
    signature: "int mark_link(struct object *obj, enum object_type type,\n\t\t     void
      *data UNUSED,\n\t\t     struct fsck_options *options UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/builtin/index-pack.c:262,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:265,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:265,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:266,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:268,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:268,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:269,1
    - Dst: type_name
      Src: /src/git/builtin/index-pack.c:270,1
    - Dst: type_name
      Src: /src/git/builtin/index-pack.c:270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 252
    functionDepth: 12
    functionLinenumber: 252
    functionLinenumberEnd: 276
    functionName: check_object
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - die
    - odb_read_object_info
    - _
    - type_name
    linkageType: ''
    returnType: unsigned
    signature: unsigned check_object(struct object *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_max_object_index
      Src: /src/git/builtin/index-pack.c:282,1
    - Dst: start_delayed_progress
      Src: /src/git/builtin/index-pack.c:285,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:286,1
    - Dst: check_object
      Src: /src/git/builtin/index-pack.c:289,1
    - Dst: get_indexed_object
      Src: /src/git/builtin/index-pack.c:289,1
    - Dst: display_progress
      Src: /src/git/builtin/index-pack.c:290,1
    - Dst: stop_progress
      Src: /src/git/builtin/index-pack.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 295
    functionName: check_objects
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - check_object
    - display_progress
    - get_max_object_index
    - start_delayed_progress
    - _
    - get_indexed_object
    linkageType: ''
    returnType: unsigned
    signature: unsigned check_objects(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_or_die
      Src: /src/git/builtin/index-pack.c:303,1
    - Dst: git_hash_update
      Src: /src/git/builtin/index-pack.c:304,1
    - Dst: memmove
      Src: /src/git/builtin/index-pack.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 4
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: flush
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 150
    functionsReached:
    - write_or_die
    - git_hash_update
    - memmove
    linkageType: ''
    returnType: void
    signature: void flush(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/index-pack.c:319,1
    - Dst: Q_
      Src: /src/git/builtin/index-pack.c:319,1
    - Dst: flush
      Src: /src/git/builtin/index-pack.c:323,1
    - Dst: xread
      Src: /src/git/builtin/index-pack.c:325,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:329,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:329,1
    - Dst: die_errno
      Src: /src/git/builtin/index-pack.c:330,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:330,1
    - Dst: display_throughput
      Src: /src/git/builtin/index-pack.c:334,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - min
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 314
    functionDepth: 6
    functionLinenumber: 314
    functionLinenumberEnd: 337
    functionName: fill
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 19
    functionsReached:
    - die
    - die_errno
    - display_throughput
    - xread
    - flush
    - _
    - Q_
    linkageType: ''
    returnType: void
    signature: void *fill(int min)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/index-pack.c:342,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:342,1
    - Dst: crc32
      Src: /src/git/builtin/index-pack.c:343,1
    - Dst: signed_add_overflows
      Src: /src/git/builtin/index-pack.c:348,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:349,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:349,1
    - Dst: strbuf_humanise_bytes
      Src: /src/git/builtin/index-pack.c:353,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:354,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 357
    functionName: use
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 13
    functionsReached:
    - die
    - signed_add_overflows
    - strbuf_humanise_bytes
    - crc32
    - _
    linkageType: ''
    returnType: void
    signature: void use(int bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_mkstemp
      Src: /src/git/builtin/index-pack.c:365,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/index-pack.c:367,1
    - Dst: xopen
      Src: /src/git/builtin/index-pack.c:369,1
    - Dst: xopen
      Src: /src/git/builtin/index-pack.c:373,1
    - Dst: init_fn
      Src: /src/git/builtin/index-pack.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - pack_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 359
    functionDepth: 9
    functionLinenumber: 359
    functionLinenumberEnd: 379
    functionName: open_pack_file
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - odb_mkstemp
    - xopen
    - init_fn
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *open_pack_file(const char *pack_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/git/builtin/index-pack.c:383,1
    - Dst: get_be32
      Src: /src/git/builtin/index-pack.c:386,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:387,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:387,1
    - Dst: pack_version_ok_native
      Src: /src/git/builtin/index-pack.c:389,1
    - Dst: get_be32
      Src: /src/git/builtin/index-pack.c:389,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:390,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:390,1
    - Dst: get_be32
      Src: /src/git/builtin/index-pack.c:391,1
    - Dst: get_be32
      Src: /src/git/builtin/index-pack.c:394,1
    - Dst: use
      Src: /src/git/builtin/index-pack.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 396
    functionName: parse_pack_header
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - die
    - use
    - get_be32
    - fill
    - _
    - pack_version_ok_native
    linkageType: ''
    returnType: void
    signature: void parse_pack_header(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/builtin/index-pack.c:398,1
    - Dst: va_start
      Src: /src/git/builtin/index-pack.c:404,1
    - Dst: vsnprintf
      Src: /src/git/builtin/index-pack.c:405,1
    - Dst: va_end
      Src: /src/git/builtin/index-pack.c:406,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:407,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - format
    argTypes:
    - off_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 409
    functionName: bad_object
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - die
    - va_end
    - _
    - va_start
    - vsnprintf
    - format
    linkageType: ''
    returnType: NORETURN
    signature: NORETURN bad_object(off_t offset, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/git/builtin/index-pack.c:415,1
    - Dst: assert
      Src: /src/git/builtin/index-pack.c:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(!threads_active &&\n\t\t       \"This should only be reached when
        all threads are gone\")"
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/git/builtin/index-pack.c
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: get_thread_data
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - pthread_getspecific
    - assert
    linkageType: ''
    returnType: struct thread_local_data
    signature: struct thread_local_data *get_thread_data(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setspecific
      Src: /src/git/builtin/index-pack.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct thread_local_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: set_thread_data
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: void set_thread_data(struct thread_local_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/index-pack.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct base_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 434
    functionName: free_base_data
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void free_base_data(struct base_data *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_prev
      Src: /src/git/builtin/index-pack.c:443,1
    - Dst: list_entry
      Src: /src/git/builtin/index-pack.c:444,1
    - Dst: free_base_data
      Src: /src/git/builtin/index-pack.c:448,1
    - Dst: list_for_each_prev
      Src: /src/git/builtin/index-pack.c:454,1
    - Dst: list_entry
      Src: /src/git/builtin/index-pack.c:455,1
    - Dst: free_base_data
      Src: /src/git/builtin/index-pack.c:459,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - retain
    argTypes:
    - struct base_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 464
    functionName: prune_base_data
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - free_base_data
    - list_entry
    - list_for_each_prev
    linkageType: ''
    returnType: void
    signature: void prune_base_data(struct base_data *retain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: is_delta_type
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_delta_type(enum object_type type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_delta_type
      Src: /src/git/builtin/index-pack.c:482,1
    - Dst: format_object_header
      Src: /src/git/builtin/index-pack.c:483,1
    - Dst: init_fn
      Src: /src/git/builtin/index-pack.c:484,1
    - Dst: git_hash_update
      Src: /src/git/builtin/index-pack.c:485,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/builtin/index-pack.c:489,1
    - Dst: xmallocz
      Src: /src/git/builtin/index-pack.c:492,1
    - Dst: memset
      Src: /src/git/builtin/index-pack.c:494,1
    - Dst: git_inflate_init
      Src: /src/git/builtin/index-pack.c:495,1
    - Dst: fill
      Src: /src/git/builtin/index-pack.c:501,1
    - Dst: git_inflate
      Src: /src/git/builtin/index-pack.c:503,1
    - Dst: use
      Src: /src/git/builtin/index-pack.c:504,1
    - Dst: git_hash_update
      Src: /src/git/builtin/index-pack.c:506,1
    - Dst: bad_object
      Src: /src/git/builtin/index-pack.c:513,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:513,1
    - Dst: git_inflate_end
      Src: /src/git/builtin/index-pack.c:514,1
    - Dst: git_hash_final_oid
      Src: /src/git/builtin/index-pack.c:516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - offset
    - size
    - type
    - oid
    argTypes:
    - off_t
    - size_t
    - enum object_type
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 471
    functionDepth: 21
    functionLinenumber: 471
    functionLinenumberEnd: 518
    functionName: unpack_entry_data
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - memset
    - format_object_header
    - bad_object
    - xmallocz
    - repo_settings_get_big_file_threshold
    - git_inflate
    - use
    - fill
    - git_hash_final_oid
    - is_delta_type
    - git_hash_update
    - init_fn
    - git_inflate_init
    - _
    - git_inflate_end
    linkageType: ''
    returnType: void
    signature: "void *unpack_entry_data(off_t offset, size_t size,\n\t\t\t       enum
      object_type type, struct object_id *oid)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/git/builtin/index-pack.c:532,1
    - Dst: fill
      Src: /src/git/builtin/index-pack.c:534,1
    - Dst: use
      Src: /src/git/builtin/index-pack.c:536,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:542,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:542,1
    - Dst: fill
      Src: /src/git/builtin/index-pack.c:543,1
    - Dst: use
      Src: /src/git/builtin/index-pack.c:545,1
    - Dst: oidread
      Src: /src/git/builtin/index-pack.c:553,1
    - Dst: fill
      Src: /src/git/builtin/index-pack.c:553,1
    - Dst: use
      Src: /src/git/builtin/index-pack.c:555,1
    - Dst: fill
      Src: /src/git/builtin/index-pack.c:558,1
    - Dst: use
      Src: /src/git/builtin/index-pack.c:560,1
    - Dst: MSB
      Src: /src/git/builtin/index-pack.c:564,1
    - Dst: bad_object
      Src: /src/git/builtin/index-pack.c:565,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:565,1
    - Dst: fill
      Src: /src/git/builtin/index-pack.c:566,1
    - Dst: use
      Src: /src/git/builtin/index-pack.c:568,1
    - Dst: bad_object
      Src: /src/git/builtin/index-pack.c:573,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:573,1
    - Dst: bad_object
      Src: /src/git/builtin/index-pack.c:581,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:581,1
    - Dst: unpack_entry_data
      Src: /src/git/builtin/index-pack.c:585,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 4
    argNames:
    - obj
    - ofs_offset
    - ref_oid
    - oid
    argTypes:
    - struct object_entry*
    - off_t*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 520
    functionDepth: 22
    functionLinenumber: 520
    functionLinenumberEnd: 588
    functionName: unpack_raw_entry
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - die
    - bad_object
    - unpack_entry_data
    - MSB
    - use
    - fill
    - crc32
    - _
    - oidread
    linkageType: ''
    returnType: void
    signature: "void *unpack_raw_entry(struct object_entry *obj,\n\t\t\t      off_t
      *ofs_offset,\n\t\t\t      struct object_id *ref_oid,\n\t\t\t      struct object_id
      *oid)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmallocz
      Src: /src/git/builtin/index-pack.c:600,1
    - Dst: xmalloc
      Src: /src/git/builtin/index-pack.c:601,1
    - Dst: memset
      Src: /src/git/builtin/index-pack.c:603,1
    - Dst: git_inflate_init
      Src: /src/git/builtin/index-pack.c:604,1
    - Dst: xpread
      Src: /src/git/builtin/index-pack.c:610,1
    - Dst: get_thread_data
      Src: /src/git/builtin/index-pack.c:610,1
    - Dst: die_errno
      Src: /src/git/builtin/index-pack.c:612,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:612,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:614,1
    - Dst: Q_
      Src: /src/git/builtin/index-pack.c:614,1
    - Dst: git_inflate
      Src: /src/git/builtin/index-pack.c:623,1
    - Dst: git_inflate
      Src: /src/git/builtin/index-pack.c:626,1
    - Dst: consume
      Src: /src/git/builtin/index-pack.c:627,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:628,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:629,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:640,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:640,1
    - Dst: git_inflate_end
      Src: /src/git/builtin/index-pack.c:642,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:643,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/index-pack.c:645,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - obj
    - cb_data
    argTypes:
    - struct object_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 590
    functionDepth: 9
    functionLinenumber: 590
    functionLinenumberEnd: 648
    functionName: unpack_data
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - xmallocz
    - get_thread_data
    - Q_
    - die_errno
    - git_inflate
    - free
    - xmalloc
    - _
    - xpread
    - FREE_AND_NULL
    - git_inflate_init
    - consume
    - git_inflate_end
    linkageType: ''
    returnType: void
    signature: "void *unpack_data(struct object_entry *obj,\n\t\t\t int (*consume)(const
      unsigned char *, unsigned long, void *),\n\t\t\t void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_data
      Src: /src/git/builtin/index-pack.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 650
    functionDepth: 10
    functionLinenumber: 650
    functionLinenumberEnd: 653
    functionName: get_data_from_pack
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - unpack_data
    linkageType: ''
    returnType: void
    signature: void *get_data_from_pack(struct object_entry *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - offset1
    - offset2
    - type1
    - type2
    argTypes:
    - off_t
    - off_t
    - enum object_type
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 665
    functionName: compare_ofs_delta_bases
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int compare_ofs_delta_bases(off_t offset1, off_t offset2,\n\t\t\t\t
      \  enum object_type type1,\n\t\t\t\t   enum object_type type2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compare_ofs_delta_bases
      Src: /src/git/builtin/index-pack.c:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - offset
    argTypes:
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 688
    functionName: find_ofs_delta
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - compare_ofs_delta_bases
    linkageType: ''
    returnType: int
    signature: int find_ofs_delta(const off_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_ofs_delta
      Src: /src/git/builtin/index-pack.c:693,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - offset
    - first_index
    - last_index
    argTypes:
    - off_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 708
    functionName: find_ofs_delta_children
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - find_ofs_delta
    linkageType: ''
    returnType: void
    signature: "void find_ofs_delta_children(off_t offset,\n\t\t\t\t    int *first_index,
      int *last_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/builtin/index-pack.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - oid1
    - oid2
    - type1
    - type2
    argTypes:
    - struct object_id*
    - struct object_id*
    - enum object_type
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 719
    functionName: compare_ref_delta_bases
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - oidcmp
    linkageType: ''
    returnType: int
    signature: "int compare_ref_delta_bases(const struct object_id *oid1,\n\t\t\t\t
      \  const struct object_id *oid2,\n\t\t\t\t   enum object_type type1,\n\t\t\t\t
      \  enum object_type type2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compare_ref_delta_bases
      Src: /src/git/builtin/index-pack.c:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 742
    functionName: find_ref_delta
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - compare_ref_delta_bases
    linkageType: ''
    returnType: int
    signature: int find_ref_delta(const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_ref_delta
      Src: /src/git/builtin/index-pack.c:747,1
    - Dst: oideq
      Src: /src/git/builtin/index-pack.c:756,1
    - Dst: oideq
      Src: /src/git/builtin/index-pack.c:758,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - oid
    - first_index
    - last_index
    argTypes:
    - struct object_id*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 744
    functionDepth: 3
    functionLinenumber: 744
    functionLinenumberEnd: 762
    functionName: find_ref_delta_children
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - find_ref_delta
    - oideq
    linkageType: ''
    returnType: void
    signature: "void find_ref_delta_children(const struct object_id *oid,\n\t\t\t\t
      \   int *first_index, int *last_index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/index-pack.c:777,1
    - Dst: xmalloc
      Src: /src/git/builtin/index-pack.c:778,1
    - Dst: odb_read_stream_read
      Src: /src/git/builtin/index-pack.c:783,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:785,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:785,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:786,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:788,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:788,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:789,1
    - Dst: memcmp
      Src: /src/git/builtin/index-pack.c:790,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:791,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:791,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:792,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - size
    - cb_data
    argTypes:
    - unsigned char*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 797
    functionName: compare_objects
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - xmalloc
    - _
    - free
    - odb_read_stream_read
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int compare_objects(const unsigned char *buf, unsigned long size,\n\t\t\t
      \  void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/builtin/index-pack.c:803,1
    - Dst: memset
      Src: /src/git/builtin/index-pack.c:807,1
    - Dst: odb_read_stream_open
      Src: /src/git/builtin/index-pack.c:809,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:813,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:813,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:814,1
    - Dst: unpack_data
      Src: /src/git/builtin/index-pack.c:815,1
    - Dst: odb_read_stream_close
      Src: /src/git/builtin/index-pack.c:816,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct object_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 799
    functionDepth: 21
    functionLinenumber: 799
    functionLinenumberEnd: 819
    functionName: check_collison
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - odb_read_stream_close
    - memset
    - odb_read_stream_open
    - die
    - oid_to_hex
    - repo_settings_get_big_file_threshold
    - unpack_data
    - _
    - free
    linkageType: ''
    returnType: int
    signature: int check_collison(struct object_entry *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidset_insert
      Src: /src/git/builtin/index-pack.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 824
    functionName: record_outgoing_link
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - oidset_insert
    linkageType: ''
    returnType: void
    signature: void record_outgoing_link(const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/builtin/index-pack.c:851,1
    - Dst: record_outgoing_link
      Src: /src/git/builtin/index-pack.c:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct name_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 853
    functionName: maybe_record_name_entry
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - record_outgoing_link
    linkageType: ''
    returnType: void
    signature: void maybe_record_name_entry(const struct name_entry *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_tree_desc_gently
      Src: /src/git/builtin/index-pack.c:861,1
    - Dst: tree_entry_gently
      Src: /src/git/builtin/index-pack.c:868,1
    - Dst: maybe_record_name_entry
      Src: /src/git/builtin/index-pack.c:869,1
    - Dst: record_outgoing_link
      Src: /src/git/builtin/index-pack.c:874,1
    - Dst: get_commit_tree_oid
      Src: /src/git/builtin/index-pack.c:874,1
    - Dst: record_outgoing_link
      Src: /src/git/builtin/index-pack.c:876,1
    - Dst: record_outgoing_link
      Src: /src/git/builtin/index-pack.c:879,1
    - Dst: get_tagged_oid
      Src: /src/git/builtin/index-pack.c:879,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 855
    functionDepth: 7
    functionLinenumber: 855
    functionLinenumberEnd: 881
    functionName: do_record_outgoing_links
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - maybe_record_name_entry
    - get_commit_tree_oid
    - tree_entry_gently
    - init_tree_desc_gently
    - record_outgoing_link
    - get_tagged_oid
    linkageType: ''
    returnType: void
    signature: void do_record_outgoing_links(struct object *obj)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/builtin/index-pack.c:890,1
    - Dst: read_lock
      Src: /src/git/builtin/index-pack.c:893,1
    - Dst: odb_has_object
      Src: /src/git/builtin/index-pack.c:894,1
    - Dst: read_unlock
      Src: /src/git/builtin/index-pack.c:896,1
    - Dst: read_lock
      Src: /src/git/builtin/index-pack.c:900,1
    - Dst: check_collison
      Src: /src/git/builtin/index-pack.c:901,1
    - Dst: read_unlock
      Src: /src/git/builtin/index-pack.c:903,1
    - Dst: read_lock
      Src: /src/git/builtin/index-pack.c:909,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/index-pack.c:910,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:912,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:912,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:912,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:914,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:914,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:914,1
    - Dst: odb_read_object
      Src: /src/git/builtin/index-pack.c:915,1
    - Dst: read_unlock
      Src: /src/git/builtin/index-pack.c:917,1
    - Dst: get_data_from_pack
      Src: /src/git/builtin/index-pack.c:919,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:921,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:921,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:921,1
    - Dst: memcmp
      Src: /src/git/builtin/index-pack.c:923,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:924,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:924,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:924,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:925,1
    - Dst: read_lock
      Src: /src/git/builtin/index-pack.c:929,1
    - Dst: lookup_blob
      Src: /src/git/builtin/index-pack.c:931,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:935,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:935,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:935,1
    - Dst: fsck_object
      Src: /src/git/builtin/index-pack.c:937,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:938,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:938,1
    - Dst: assert
      Src: /src/git/builtin/index-pack.c:944,1
    - Dst: parse_object_buffer
      Src: /src/git/builtin/index-pack.c:950,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:954,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:954,1
    - Dst: type_name
      Src: /src/git/builtin/index-pack.c:954,1
    - Dst: fsck_object
      Src: /src/git/builtin/index-pack.c:956,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:957,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:957,1
    - Dst: fsck_walk
      Src: /src/git/builtin/index-pack.c:958,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:959,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:959,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:959,1
    - Dst: do_record_outgoing_links
      Src: /src/git/builtin/index-pack.c:961,1
    - Dst: detach_commit_buffer
      Src: /src/git/builtin/index-pack.c:970,1
    - Dst: BUG
      Src: /src/git/builtin/index-pack.c:971,1
    - Dst: read_unlock
      Src: /src/git/builtin/index-pack.c:975,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:978,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 62
    argCount: 5
    argNames:
    - data
    - obj_entry
    - size
    - type
    - oid
    argTypes:
    - void*
    - struct object_entry*
    - unsigned long
    - enum object_type
    - struct object_id*
    assertStmts:
    - condition: (data || obj_entry)
      pos:
        line_end: 889
        line_start: 889
        source_file: /src/git/builtin/index-pack.c
    - condition: (data && "data can only be NULL for large _blobs_")
      pos:
        line_end: 943
        line_start: 943
        source_file: /src/git/builtin/index-pack.c
    constantsTouched: []
    func_position:
      end: 979
      start: 883
    functionDepth: 22
    functionLinenumber: 883
    functionLinenumberEnd: 979
    functionName: sha1_object
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    - check_collison
    - free
    - type_name
    - fsck_object
    - die
    - do_record_outgoing_links
    - odb_has_object
    - lookup_blob
    - odb_read_object
    - read_lock
    - oid_to_hex
    - fsck_walk
    - detach_commit_buffer
    - get_data_from_pack
    - _
    - parse_object_buffer
    - read_unlock
    - assert
    - BUG
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void sha1_object(const void *data, struct object_entry *obj_entry,\n\t\t\tunsigned
      long size, enum object_type type,\n\t\t\tconst struct object_id *oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_delta_type
      Src: /src/git/builtin/index-pack.c:999,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/index-pack.c:1000,1
    - Dst: get_data_from_pack
      Src: /src/git/builtin/index-pack.c:1005,1
    - Dst: prune_base_data
      Src: /src/git/builtin/index-pack.c:1008,1
    - Dst: get_base_data
      Src: /src/git/builtin/index-pack.c:1014,1
    - Dst: get_data_from_pack
      Src: /src/git/builtin/index-pack.c:1015,1
    - Dst: patch_delta
      Src: /src/git/builtin/index-pack.c:1016,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:1020,1
    - Dst: bad_object
      Src: /src/git/builtin/index-pack.c:1022,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1022,1
    - Dst: prune_base_data
      Src: /src/git/builtin/index-pack.c:1024,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:1026,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct base_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 992
    functionDepth: 11
    functionLinenumber: 992
    functionLinenumberEnd: 1029
    functionName: get_base_data
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 1
    functionsReached:
    - prune_base_data
    - bad_object
    - patch_delta
    - get_base_data
    - is_delta_type
    - get_data_from_pack
    - ALLOC_GROW
    - free
    - _
    linkageType: ''
    returnType: void
    signature: void *get_base_data(struct base_data *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/builtin/index-pack.c:1034,1
    - Dst: find_ref_delta_children
      Src: /src/git/builtin/index-pack.c:1037,1
    - Dst: find_ofs_delta_children
      Src: /src/git/builtin/index-pack.c:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - parent
    argTypes:
    - struct object_entry*
    - struct base_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1031
    functionDepth: 7
    functionLinenumber: 1031
    functionLinenumberEnd: 1044
    functionName: make_base
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - find_ref_delta_children
    - find_ofs_delta_children
    - xcalloc
    linkageType: ''
    returnType: struct base_data
    signature: "struct base_data *make_base(struct object_entry *obj,\n\t\t\t\t   struct
      base_data *parent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: deepest_delta_lock
      Src: /src/git/builtin/index-pack.c:1057,1
    - Dst: deepest_delta_unlock
      Src: /src/git/builtin/index-pack.c:1060,1
    - Dst: get_data_from_pack
      Src: /src/git/builtin/index-pack.c:1063,1
    - Dst: assert
      Src: /src/git/builtin/index-pack.c:1064,1
    - Dst: patch_delta
      Src: /src/git/builtin/index-pack.c:1065,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:1067,1
    - Dst: bad_object
      Src: /src/git/builtin/index-pack.c:1069,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1069,1
    - Dst: hash_object_file
      Src: /src/git/builtin/index-pack.c:1070,1
    - Dst: sha1_object
      Src: /src/git/builtin/index-pack.c:1072,1
    - Dst: make_base
      Src: /src/git/builtin/index-pack.c:1075,1
    - Dst: counter_lock
      Src: /src/git/builtin/index-pack.c:1079,1
    - Dst: counter_unlock
      Src: /src/git/builtin/index-pack.c:1081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - delta_obj
    - base
    argTypes:
    - struct object_entry*
    - struct base_data*
    assertStmts:
    - condition: (base->data)
      pos:
        line_end: 1063
        line_start: 1063
        source_file: /src/git/builtin/index-pack.c
    constantsTouched: []
    func_position:
      end: 1084
      start: 1046
    functionDepth: 23
    functionLinenumber: 1046
    functionLinenumberEnd: 1084
    functionName: resolve_delta
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - assert
    - hash_object_file
    - bad_object
    - counter_unlock
    - deepest_delta_unlock
    - counter_lock
    - patch_delta
    - make_base
    - deepest_delta_lock
    - sha1_object
    - get_data_from_pack
    - free
    - _
    linkageType: ''
    returnType: struct base_data
    signature: "struct base_data *resolve_delta(struct object_entry *delta_obj,\n\t\t\t\t
      \      struct base_data *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1094
    functionName: compare_ofs_delta_entry
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_ofs_delta_entry(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/builtin/index-pack.c:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1102
    functionName: compare_ref_delta_entry
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - oidcmp
    linkageType: ''
    returnType: int
    signature: int compare_ref_delta_entry(const void *a, const void *b)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: set_thread_data
      Src: /src/git/builtin/index-pack.c:1107,1
    - Dst: counter_lock
      Src: /src/git/builtin/index-pack.c:1113,1
    - Dst: display_progress
      Src: /src/git/builtin/index-pack.c:1114,1
    - Dst: counter_unlock
      Src: /src/git/builtin/index-pack.c:1115,1
    - Dst: work_lock
      Src: /src/git/builtin/index-pack.c:1117,1
    - Dst: list_empty
      Src: /src/git/builtin/index-pack.c:1118,1
    - Dst: is_delta_type
      Src: /src/git/builtin/index-pack.c:1123,1
    - Dst: work_unlock
      Src: /src/git/builtin/index-pack.c:1126,1
    - Dst: list_first_entry
      Src: /src/git/builtin/index-pack.c:1135,1
    - Dst: assert
      Src: /src/git/builtin/index-pack.c:1152,1
    - Dst: list_del
      Src: /src/git/builtin/index-pack.c:1162,1
    - Dst: list_add
      Src: /src/git/builtin/index-pack.c:1163,1
    - Dst: get_base_data
      Src: /src/git/builtin/index-pack.c:1177,1
    - Dst: work_unlock
      Src: /src/git/builtin/index-pack.c:1180,1
    - Dst: resolve_delta
      Src: /src/git/builtin/index-pack.c:1184,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/index-pack.c:1186,1
    - Dst: make_base
      Src: /src/git/builtin/index-pack.c:1188,1
    - Dst: get_data_from_pack
      Src: /src/git/builtin/index-pack.c:1197,1
    - Dst: work_lock
      Src: /src/git/builtin/index-pack.c:1203,1
    - Dst: list_add
      Src: /src/git/builtin/index-pack.c:1212,1
    - Dst: prune_base_data
      Src: /src/git/builtin/index-pack.c:1214,1
    - Dst: free_base_data
      Src: /src/git/builtin/index-pack.c:1215,1
    - Dst: free_base_data
      Src: /src/git/builtin/index-pack.c:1232,1
    - Dst: list_del
      Src: /src/git/builtin/index-pack.c:1233,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:1234,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/index-pack.c:1238,1
    - Dst: work_unlock
      Src: /src/git/builtin/index-pack.c:1240,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 78
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (child_obj->real_type == OBJ_OFS_DELTA)
      pos:
        line_end: 1151
        line_start: 1151
        source_file: /src/git/builtin/index-pack.c
    constantsTouched: []
    func_position:
      end: 1243
      start: 1104
    functionDepth: 12
    functionLinenumber: 1104
    functionLinenumberEnd: 1243
    functionName: threaded_second_pass
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - counter_unlock
    - make_base
    - get_base_data
    - is_delta_type
    - free
    - prune_base_data
    - counter_lock
    - list_empty
    - resolve_delta
    - get_data_from_pack
    - set_thread_data
    - FREE_AND_NULL
    - assert
    - list_del
    - display_progress
    - work_lock
    - work_unlock
    - list_first_entry
    - list_add
    - free_base_data
    linkageType: ''
    returnType: void
    signature: void *threaded_second_pass(void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: start_progress
      Src: /src/git/builtin/index-pack.c:1260,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1263,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1263,1
    - Dst: unpack_raw_entry
      Src: /src/git/builtin/index-pack.c:1267,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/index-pack.c:1276,1
    - Dst: oidcpy
      Src: /src/git/builtin/index-pack.c:1277,1
    - Dst: sha1_object
      Src: /src/git/builtin/index-pack.c:1285,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:1287,1
    - Dst: display_progress
      Src: /src/git/builtin/index-pack.c:1288,1
    - Dst: stop_progress
      Src: /src/git/builtin/index-pack.c:1291,1
    - Dst: flush
      Src: /src/git/builtin/index-pack.c:1294,1
    - Dst: init_fn
      Src: /src/git/builtin/index-pack.c:1295,1
    - Dst: git_hash_clone
      Src: /src/git/builtin/index-pack.c:1296,1
    - Dst: git_hash_final
      Src: /src/git/builtin/index-pack.c:1297,1
    - Dst: hasheq
      Src: /src/git/builtin/index-pack.c:1298,1
    - Dst: fill
      Src: /src/git/builtin/index-pack.c:1298,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1299,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1299,1
    - Dst: use
      Src: /src/git/builtin/index-pack.c:1300,1
    - Dst: fstat
      Src: /src/git/builtin/index-pack.c:1303,1
    - Dst: die_errno
      Src: /src/git/builtin/index-pack.c:1304,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1304,1
    - Dst: S_ISREG
      Src: /src/git/builtin/index-pack.c:1305,1
    - Dst: lseek
      Src: /src/git/builtin/index-pack.c:1306,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1307,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1307,1
    - Dst: sha1_object
      Src: /src/git/builtin/index-pack.c:1314,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1319,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1319,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - hash
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1251
    functionDepth: 23
    functionLinenumber: 1251
    functionLinenumberEnd: 1320
    functionName: parse_pack_objects
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - git_hash_clone
    - oidcpy
    - git_hash_final
    - free
    - die
    - sha1_object
    - init_fn
    - unpack_raw_entry
    - S_ISREG
    - hasheq
    - die_errno
    - _
    - fstat
    - lseek
    - use
    - fill
    - display_progress
    - flush
    - ALLOC_GROW
    - start_progress
    linkageType: ''
    returnType: void
    signature: void parse_pack_objects(unsigned char *hash)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/builtin/index-pack.c:1338,1
    - Dst: QSORT
      Src: /src/git/builtin/index-pack.c:1339,1
    - Dst: start_progress
      Src: /src/git/builtin/index-pack.c:1342,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1343,1
    - Dst: getenv
      Src: /src/git/builtin/index-pack.c:1348,1
    - Dst: init_thread
      Src: /src/git/builtin/index-pack.c:1349,1
    - Dst: pthread_create
      Src: /src/git/builtin/index-pack.c:1351,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1354,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1354,1
    - Dst: strerror
      Src: /src/git/builtin/index-pack.c:1355,1
    - Dst: pthread_join
      Src: /src/git/builtin/index-pack.c:1358,1
    - Dst: cleanup_thread
      Src: /src/git/builtin/index-pack.c:1359,1
    - Dst: threaded_second_pass
      Src: /src/git/builtin/index-pack.c:1362,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct pack_idx_option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1330
    functionDepth: 13
    functionLinenumber: 1330
    functionLinenumberEnd: 1363
    functionName: resolve_deltas
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - cleanup_thread
    - die
    - threaded_second_pass
    - pthread_create
    - strerror
    - QSORT
    - _
    - getenv
    - init_thread
    - pthread_join
    - start_progress
    linkageType: ''
    returnType: void
    signature: void resolve_deltas(struct pack_idx_option *opts)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stop_progress
      Src: /src/git/builtin/index-pack.c:1374,1
    - Dst: flush
      Src: /src/git/builtin/index-pack.c:1376,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1387,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1387,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/builtin/index-pack.c:1388,1
    - Dst: memset
      Src: /src/git/builtin/index-pack.c:1389,1
    - Dst: hashfd
      Src: /src/git/builtin/index-pack.c:1391,1
    - Dst: fix_unresolved_deltas
      Src: /src/git/builtin/index-pack.c:1392,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/index-pack.c:1393,1
    - Dst: Q_
      Src: /src/git/builtin/index-pack.c:1393,1
    - Dst: stop_progress_msg
      Src: /src/git/builtin/index-pack.c:1397,1
    - Dst: strbuf_release
      Src: /src/git/builtin/index-pack.c:1398,1
    - Dst: finalize_hashfile
      Src: /src/git/builtin/index-pack.c:1399,1
    - Dst: hashcpy
      Src: /src/git/builtin/index-pack.c:1400,1
    - Dst: fixup_pack_header_footer
      Src: /src/git/builtin/index-pack.c:1401,1
    - Dst: hasheq
      Src: /src/git/builtin/index-pack.c:1404,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1405,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1405,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1409,1
    - Dst: Q_
      Src: /src/git/builtin/index-pack.c:1409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - fix_thin_pack
    - curr_pack
    - pack_hash
    argTypes:
    - int
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1371
    functionDepth: 7
    functionLinenumber: 1371
    functionLinenumberEnd: 1413
    functionName: conclude_pack
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - memset
    - stop_progress
    - die
    - fix_unresolved_deltas
    - strbuf_release
    - hashcpy
    - fixup_pack_header_footer
    - hasheq
    - strbuf_addf
    - finalize_hashfile
    - REALLOC_ARRAY
    - flush
    - hashfd
    - stop_progress_msg
    - _
    - Q_
    linkageType: ''
    returnType: void
    signature: void conclude_pack(int fix_thin_pack, const char *curr_pack, unsigned
      char *pack_hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_deflate_init
      Src: /src/git/builtin/index-pack.c:1421,1
    - Dst: git_deflate
      Src: /src/git/builtin/index-pack.c:1428,1
    - Dst: hashwrite
      Src: /src/git/builtin/index-pack.c:1429,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1433,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1433,1
    - Dst: git_deflate_end
      Src: /src/git/builtin/index-pack.c:1435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - f
    - in
    - size
    argTypes:
    - struct hashfile*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1415
    functionDepth: 4
    functionLinenumber: 1415
    functionLinenumberEnd: 1437
    functionName: write_compressed
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - git_deflate_init
    - die
    - git_deflate
    - hashwrite
    - git_deflate_end
    - _
    linkageType: ''
    returnType: int
    signature: int write_compressed(struct hashfile *f, void *in, unsigned int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32_begin
      Src: /src/git/builtin/index-pack.c:1455,1
    - Dst: hashwrite
      Src: /src/git/builtin/index-pack.c:1456,1
    - Dst: write_compressed
      Src: /src/git/builtin/index-pack.c:1462,1
    - Dst: crc32_end
      Src: /src/git/builtin/index-pack.c:1463,1
    - Dst: hashflush
      Src: /src/git/builtin/index-pack.c:1464,1
    - Dst: oidread
      Src: /src/git/builtin/index-pack.c:1465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 5
    argNames:
    - f
    - sha1
    - buf
    - size
    - type
    argTypes:
    - struct hashfile*
    - unsigned char*
    - void*
    - unsigned long
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1439
    functionDepth: 5
    functionLinenumber: 1439
    functionLinenumberEnd: 1467
    functionName: append_obj_to_pack
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - hashwrite
    - write_compressed
    - crc32_end
    - hashflush
    - crc32_begin
    - oidread
    linkageType: ''
    returnType: struct object_entry
    signature: "struct object_entry *append_obj_to_pack(struct hashfile *f,\n\t\t\t
      \      const unsigned char *sha1, void *buf,\n\t\t\t       unsigned long size,
      enum object_type type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1474
    functionName: delta_pos_compare
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int delta_pos_compare(const void *_a, const void *_b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/index-pack.c:1491,1
    - Dst: QSORT
      Src: /src/git/builtin/index-pack.c:1494,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/builtin/index-pack.c:1496,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/index-pack.c:1503,1
    - Dst: oid_array_append
      Src: /src/git/builtin/index-pack.c:1507,1
    - Dst: promisor_remote_get_direct
      Src: /src/git/builtin/index-pack.c:1509,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/index-pack.c:1511,1
    - Dst: odb_read_object
      Src: /src/git/builtin/index-pack.c:1522,1
    - Dst: check_object_signature
      Src: /src/git/builtin/index-pack.c:1527,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1529,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1529,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:1529,1
    - Dst: append_obj_to_pack
      Src: /src/git/builtin/index-pack.c:1536,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:1537,1
    - Dst: threaded_second_pass
      Src: /src/git/builtin/index-pack.c:1538,1
    - Dst: display_progress
      Src: /src/git/builtin/index-pack.c:1540,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:1542,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct hashfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1476
    functionDepth: 14
    functionLinenumber: 1476
    functionLinenumberEnd: 1543
    functionName: fix_unresolved_deltas
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 1
    functionsReached:
    - repo_has_promisor_remote
    - die
    - oid_to_hex
    - threaded_second_pass
    - ALLOC_ARRAY
    - oid_array_clear
    - free
    - QSORT
    - display_progress
    - _
    - check_object_signature
    - odb_read_object
    - odb_read_object_info_extended
    - promisor_remote_get_direct
    - oid_array_append
    - append_obj_to_pack
    linkageType: ''
    returnType: void
    signature: void fix_unresolved_deltas(struct hashfile *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix
      Src: /src/git/builtin/index-pack.c:1549,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1551,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1551,1
    - Dst: strbuf_add
      Src: /src/git/builtin/index-pack.c:1553,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/index-pack.c:1554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - pack_name
    - strip
    - suffix
    - buf
    argTypes:
    - char*
    - char*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1545
    functionDepth: 4
    functionLinenumber: 1545
    functionLinenumberEnd: 1556
    functionName: derive_filename
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - die
    - strip_suffix
    - strbuf_addstr
    - _
    - strbuf_add
    linkageType: ''
    returnType: char
    signature: "char *derive_filename(const char *pack_name, const char *strip,\n\t\t\t\t
      \  const char *suffix, struct strbuf *buf)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/index-pack.c:1565,1
    - Dst: derive_filename
      Src: /src/git/builtin/index-pack.c:1568,1
    - Dst: odb_pack_name
      Src: /src/git/builtin/index-pack.c:1570,1
    - Dst: safe_create_file_with_leading_directories
      Src: /src/git/builtin/index-pack.c:1572,1
    - Dst: die_errno
      Src: /src/git/builtin/index-pack.c:1575,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1575,1
    - Dst: write_or_die
      Src: /src/git/builtin/index-pack.c:1579,1
    - Dst: write_or_die
      Src: /src/git/builtin/index-pack.c:1580,1
    - Dst: close
      Src: /src/git/builtin/index-pack.c:1582,1
    - Dst: die_errno
      Src: /src/git/builtin/index-pack.c:1583,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1583,1
    - Dst: strbuf_release
      Src: /src/git/builtin/index-pack.c:1588,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - suffix
    - msg
    - pack_name
    - hash
    - report
    argTypes:
    - char*
    - char*
    - char*
    - unsigned char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1558
    functionDepth: 7
    functionLinenumber: 1558
    functionLinenumberEnd: 1589
    functionName: write_special_file
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - strbuf_release
    - derive_filename
    - odb_pack_name
    - die_errno
    - strlen
    - _
    - close
    - safe_create_file_with_leading_directories
    linkageType: ''
    returnType: void
    signature: "void write_special_file(const char *suffix, const char *msg,\n\t\t\t
      \      const char *pack_name, const unsigned char *hash,\n\t\t\t       const
      char **report)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1596,1
    - Dst: odb_pack_name
      Src: /src/git/builtin/index-pack.c:1598,1
    - Dst: finalize_object_file
      Src: /src/git/builtin/index-pack.c:1599,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1600,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1600,1
    - Dst: chmod
      Src: /src/git/builtin/index-pack.c:1603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 6
    argNames:
    - final_name
    - curr_name
    - name
    - hash
    - ext
    - make_read_only_if_same
    argTypes:
    - char**
    - char*
    - struct strbuf*
    - unsigned char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1591
    functionDepth: 3
    functionLinenumber: 1591
    functionLinenumberEnd: 1605
    functionName: rename_tmp_packfile
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 2
    functionsReached:
    - die
    - odb_pack_name
    - chmod
    - strcmp
    - _
    - finalize_object_file
    linkageType: ''
    returnType: void
    signature: "void rename_tmp_packfile(const char **final_name,\n\t\t\t\tconst char
      *curr_name,\n\t\t\t\tstruct strbuf *name, unsigned char *hash,\n\t\t\t\tconst
      char *ext, int make_read_only_if_same)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/builtin/index-pack.c:1619,1
    - Dst: fsync_component_or_die
      Src: /src/git/builtin/index-pack.c:1621,1
    - Dst: close
      Src: /src/git/builtin/index-pack.c:1622,1
    - Dst: die_errno
      Src: /src/git/builtin/index-pack.c:1623,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1623,1
    - Dst: write_special_file
      Src: /src/git/builtin/index-pack.c:1627,1
    - Dst: write_special_file
      Src: /src/git/builtin/index-pack.c:1630,1
    - Dst: rename_tmp_packfile
      Src: /src/git/builtin/index-pack.c:1633,1
    - Dst: rename_tmp_packfile
      Src: /src/git/builtin/index-pack.c:1636,1
    - Dst: rename_tmp_packfile
      Src: /src/git/builtin/index-pack.c:1638,1
    - Dst: odb_source_files_downcast
      Src: /src/git/builtin/index-pack.c:1643,1
    - Dst: packfile_store_load_pack
      Src: /src/git/builtin/index-pack.c:1644,1
    - Dst: printf
      Src: /src/git/builtin/index-pack.c:1648,1
    - Dst: hash_to_hex
      Src: /src/git/builtin/index-pack.c:1648,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/index-pack.c:1652,1
    - Dst: hash_to_hex
      Src: /src/git/builtin/index-pack.c:1652,1
    - Dst: write_or_die
      Src: /src/git/builtin/index-pack.c:1653,1
    - Dst: strbuf_release
      Src: /src/git/builtin/index-pack.c:1654,1
    - Dst: write_in_full
      Src: /src/git/builtin/index-pack.c:1657,1
    - Dst: strbuf_release
      Src: /src/git/builtin/index-pack.c:1660,1
    - Dst: strbuf_release
      Src: /src/git/builtin/index-pack.c:1661,1
    - Dst: strbuf_release
      Src: /src/git/builtin/index-pack.c:1662,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 9
    argNames:
    - final_pack_name
    - curr_pack_name
    - final_index_name
    - curr_index_name
    - final_rev_index_name
    - curr_rev_index_name
    - keep_msg
    - promisor_msg
    - hash
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1607
    functionDepth: 8
    functionLinenumber: 1607
    functionLinenumberEnd: 1663
    functionName: final
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 15
    functionsReached:
    - write_or_die
    - strbuf_release
    - odb_source_files_downcast
    - hash_to_hex
    - packfile_store_load_pack
    - die_errno
    - strbuf_addf
    - rename_tmp_packfile
    - write_special_file
    - _
    - close
    - fsync_component_or_die
    - printf
    - write_in_full
    linkageType: ''
    returnType: void
    signature: "void final(const char *final_pack_name, const char *curr_pack_name,\n\t\t
      \ const char *final_index_name, const char *curr_index_name,\n\t\t  const char
      *final_rev_index_name, const char *curr_rev_index_name,\n\t\t  const char *keep_msg,
      const char *promisor_msg,\n\t\t  unsigned char *hash)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1670,1
    - Dst: git_config_int
      Src: /src/git/builtin/index-pack.c:1671,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1673,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1673,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1676,1
    - Dst: git_config_int
      Src: /src/git/builtin/index-pack.c:1677,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1679,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1679,1
    - Dst: warning
      Src: /src/git/builtin/index-pack.c:1682,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1682,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1687,1
    - Dst: git_config_bool
      Src: /src/git/builtin/index-pack.c:1688,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1693,1
    - Dst: git_config_ulong
      Src: /src/git/builtin/index-pack.c:1694,1
    - Dst: git_default_config
      Src: /src/git/builtin/index-pack.c:1697,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - k
    - v
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1665
    functionDepth: 6
    functionLinenumber: 1665
    functionLinenumberEnd: 1698
    functionName: git_index_pack_config
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - die
    - git_config_ulong
    - git_config_bool
    - strcmp
    - git_default_config
    - _
    - warning
    linkageType: ''
    returnType: int
    signature: "int git_index_pack_config(const char *k, const char *v,\n\t\t\t\t
      const struct config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1700
    functionDepth: 0
    functionLinenumber: 1700
    functionLinenumberEnd: 1706
    functionName: cmp_uint32
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_uint32(const void *a_, const void *b_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/git/builtin/index-pack.c:1723,1
    - Dst: check_pack_index_ptr
      Src: /src/git/builtin/index-pack.c:1727,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/index-pack.c:1735,1
    - Dst: ntohl
      Src: /src/git/builtin/index-pack.c:1736,1
    - Dst: QSORT
      Src: /src/git/builtin/index-pack.c:1739,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - p
    - opts
    argTypes:
    - struct packed_git*
    - struct pack_idx_option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1740
    functionName: read_v2_anomalous_offsets
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - ntohl
    - QSORT
    - ALLOC_GROW
    - check_pack_index_ptr
    linkageType: ''
    returnType: void
    signature: "void read_v2_anomalous_offsets(struct packed_git *p,\n\t\t\t\t      struct
      pack_idx_option *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_packed_git
      Src: /src/git/builtin/index-pack.c:1744,1
    - Dst: strlen
      Src: /src/git/builtin/index-pack.c:1745,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1748,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1748,1
    - Dst: open_pack_index
      Src: /src/git/builtin/index-pack.c:1749,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1750,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1750,1
    - Dst: read_v2_anomalous_offsets
      Src: /src/git/builtin/index-pack.c:1756,1
    - Dst: close_pack_index
      Src: /src/git/builtin/index-pack.c:1765,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:1766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - opts
    - pack_name
    argTypes:
    - struct pack_idx_option*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1742
    functionDepth: 10
    functionLinenumber: 1742
    functionLinenumberEnd: 1767
    functionName: read_idx_option
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - close_pack_index
    - die
    - read_v2_anomalous_offsets
    - strlen
    - add_packed_git
    - _
    - free
    - open_pack_index
    linkageType: ''
    returnType: void
    signature: void read_idx_option(struct pack_idx_option *opts, const char *pack_name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/index-pack.c:1775,1
    - Dst: is_delta_type
      Src: /src/git/builtin/index-pack.c:1780,1
    - Dst: printf
      Src: /src/git/builtin/index-pack.c:1784,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:1785,1
    - Dst: type_name
      Src: /src/git/builtin/index-pack.c:1786,1
    - Dst: is_delta_type
      Src: /src/git/builtin/index-pack.c:1789,1
    - Dst: printf
      Src: /src/git/builtin/index-pack.c:1791,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:1792,1
    - Dst: putchar
      Src: /src/git/builtin/index-pack.c:1794,1
    - Dst: printf_ln
      Src: /src/git/builtin/index-pack.c:1798,1
    - Dst: Q_
      Src: /src/git/builtin/index-pack.c:1798,1
    - Dst: printf_ln
      Src: /src/git/builtin/index-pack.c:1805,1
    - Dst: Q_
      Src: /src/git/builtin/index-pack.c:1805,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:1811,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - stat_only
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1769
    functionDepth: 3
    functionLinenumber: 1769
    functionLinenumberEnd: 1812
    functionName: show_pack_info
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - putchar
    - oid_to_hex
    - Q_
    - free
    - is_delta_type
    - CALLOC_ARRAY
    - type_name
    - printf_ln
    - printf
    linkageType: ''
    returnType: void
    signature: void show_pack_info(int stat_only)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidset_size
      Src: /src/git/builtin/index-pack.c:1823,1
    - Dst: oidset_iter_init
      Src: /src/git/builtin/index-pack.c:1826,1
    - Dst: oidset_iter_next
      Src: /src/git/builtin/index-pack.c:1827,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/index-pack.c:1829,1
    - Dst: mkpathdup
      Src: /src/git/builtin/index-pack.c:1836,1
    - Dst: repo_get_object_directory
      Src: /src/git/builtin/index-pack.c:1838,1
    - Dst: strvec_push
      Src: /src/git/builtin/index-pack.c:1839,1
    - Dst: strvec_push
      Src: /src/git/builtin/index-pack.c:1840,1
    - Dst: strvec_push
      Src: /src/git/builtin/index-pack.c:1842,1
    - Dst: start_command
      Src: /src/git/builtin/index-pack.c:1846,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1847,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1847,1
    - Dst: write_in_full
      Src: /src/git/builtin/index-pack.c:1850,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/index-pack.c:1850,1
    - Dst: write_in_full
      Src: /src/git/builtin/index-pack.c:1851,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1852,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1852,1
    - Dst: close
      Src: /src/git/builtin/index-pack.c:1858,1
    - Dst: xfdopen
      Src: /src/git/builtin/index-pack.c:1860,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/index-pack.c:1861,1
    - Dst: hex_to_bytes
      Src: /src/git/builtin/index-pack.c:1864,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1865,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1865,1
    - Dst: write_special_file
      Src: /src/git/builtin/index-pack.c:1871,1
    - Dst: fclose
      Src: /src/git/builtin/index-pack.c:1874,1
    - Dst: finish_command
      Src: /src/git/builtin/index-pack.c:1875,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1876,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1876,1
    - Dst: strbuf_release
      Src: /src/git/builtin/index-pack.c:1877,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:1878,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1814
    functionDepth: 11
    functionLinenumber: 1814
    functionLinenumberEnd: 1879
    functionName: repack_local_links
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - fclose
    - strvec_push
    - free
    - hex_to_bytes
    - oidset_iter_init
    - strbuf_release
    - strbuf_getline_lf
    - die
    - finish_command
    - write_in_full
    - mkpathdup
    - oid_to_hex
    - repo_get_object_directory
    - write_special_file
    - _
    - xfdopen
    - oidset_size
    - oidset_iter_next
    - close
    - odb_read_object_info_extended
    - start_command
    linkageType: ''
    returnType: void
    signature: void repack_local_links(void)
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/index-pack.c:1909,1
    - Dst: disable_replace_refs
      Src: /src/git/builtin/index-pack.c:1911,1
    - Dst: fsck_options_init
      Src: /src/git/builtin/index-pack.c:1913,1
    - Dst: reset_pack_idx_option
      Src: /src/git/builtin/index-pack.c:1916,1
    - Dst: repo_config
      Src: /src/git/builtin/index-pack.c:1918,1
    - Dst: chdir
      Src: /src/git/builtin/index-pack.c:1919,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1920,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1920,1
    - Dst: git_env_bool
      Src: /src/git/builtin/index-pack.c:1922,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1931,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1933,1
    - Dst: skip_to_optional_arg
      Src: /src/git/builtin/index-pack.c:1935,1
    - Dst: fsck_set_msg_types
      Src: /src/git/builtin/index-pack.c:1938,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1939,1
    - Dst: skip_to_optional_arg
      Src: /src/git/builtin/index-pack.c:1942,1
    - Dst: fsck_set_msg_types
      Src: /src/git/builtin/index-pack.c:1944,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1945,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1947,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1950,1
    - Dst: skip_to_optional_arg
      Src: /src/git/builtin/index-pack.c:1954,1
    - Dst: skip_to_optional_arg
      Src: /src/git/builtin/index-pack.c:1956,1
    - Dst: starts_with
      Src: /src/git/builtin/index-pack.c:1958,1
    - Dst: strtoul
      Src: /src/git/builtin/index-pack.c:1960,1
    - Dst: usage
      Src: /src/git/builtin/index-pack.c:1962,1
    - Dst: warning
      Src: /src/git/builtin/index-pack.c:1964,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1964,1
    - Dst: skip_prefix
      Src: /src/git/builtin/index-pack.c:1967,1
    - Dst: parse_pack_header_option
      Src: /src/git/builtin/index-pack.c:1968,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1971,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1971,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1972,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1974,1
    - Dst: usage
      Src: /src/git/builtin/index-pack.c:1976,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1978,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1980,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:1982,1
    - Dst: usage
      Src: /src/git/builtin/index-pack.c:1984,1
    - Dst: starts_with
      Src: /src/git/builtin/index-pack.c:1986,1
    - Dst: strtoul
      Src: /src/git/builtin/index-pack.c:1988,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1990,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1990,1
    - Dst: strtoul
      Src: /src/git/builtin/index-pack.c:1992,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:1994,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:1994,1
    - Dst: skip_prefix
      Src: /src/git/builtin/index-pack.c:1995,1
    - Dst: strtoumax
      Src: /src/git/builtin/index-pack.c:1996,1
    - Dst: skip_prefix
      Src: /src/git/builtin/index-pack.c:1997,1
    - Dst: hash_algo_by_name
      Src: /src/git/builtin/index-pack.c:1998,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:2000,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:2000,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/index-pack.c:2001,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:2002,1
    - Dst: strcmp
      Src: /src/git/builtin/index-pack.c:2004,1
    - Dst: usage
      Src: /src/git/builtin/index-pack.c:2007,1
    - Dst: usage
      Src: /src/git/builtin/index-pack.c:2012,1
    - Dst: usage
      Src: /src/git/builtin/index-pack.c:2017,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:2019,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:2019,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:2021,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:2021,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:2023,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:2023,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:2025,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:2025,1
    - Dst: derive_filename
      Src: /src/git/builtin/index-pack.c:2027,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/index-pack.c:2036,1
    - Dst: derive_filename
      Src: /src/git/builtin/index-pack.c:2042,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:2049,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:2049,1
    - Dst: read_idx_option
      Src: /src/git/builtin/index-pack.c:2050,1
    - Dst: online_cpus
      Src: /src/git/builtin/index-pack.c:2057,1
    - Dst: open_pack_file
      Src: /src/git/builtin/index-pack.c:2076,1
    - Dst: parse_pack_header
      Src: /src/git/builtin/index-pack.c:2077,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/index-pack.c:2078,1
    - Dst: st_add
      Src: /src/git/builtin/index-pack.c:2078,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/index-pack.c:2080,1
    - Dst: st_add
      Src: /src/git/builtin/index-pack.c:2080,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/index-pack.c:2081,1
    - Dst: parse_pack_objects
      Src: /src/git/builtin/index-pack.c:2082,1
    - Dst: write_in_full
      Src: /src/git/builtin/index-pack.c:2084,1
    - Dst: resolve_deltas
      Src: /src/git/builtin/index-pack.c:2085,1
    - Dst: conclude_pack
      Src: /src/git/builtin/index-pack.c:2086,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:2087,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:2088,1
    - Dst: check_objects
      Src: /src/git/builtin/index-pack.c:2090,1
    - Dst: show_pack_info
      Src: /src/git/builtin/index-pack.c:2093,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/index-pack.c:2095,1
    - Dst: write_idx_file
      Src: /src/git/builtin/index-pack.c:2098,1
    - Dst: write_rev_file
      Src: /src/git/builtin/index-pack.c:2101,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:2104,1
    - Dst: final
      Src: /src/git/builtin/index-pack.c:2107,1
    - Dst: close
      Src: /src/git/builtin/index-pack.c:2113,1
    - Dst: fsck_has_queued_checks
      Src: /src/git/builtin/index-pack.c:2125,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:2126,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:2126,1
    - Dst: fsck_finish
      Src: /src/git/builtin/index-pack.c:2129,1
    - Dst: die
      Src: /src/git/builtin/index-pack.c:2130,1
    - Dst: _
      Src: /src/git/builtin/index-pack.c:2130,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:2133,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:2134,1
    - Dst: strbuf_release
      Src: /src/git/builtin/index-pack.c:2135,1
    - Dst: strbuf_release
      Src: /src/git/builtin/index-pack.c:2136,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:2138,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:2140,1
    - Dst: free
      Src: /src/git/builtin/index-pack.c:2141,1
    - Dst: repack_local_links
      Src: /src/git/builtin/index-pack.c:2143,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 200
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 1881
    functionDepth: 24
    functionLinenumber: 1881
    functionLinenumberEnd: 2152
    functionName: cmd_index_pack
    functionSourceFile: /src/git/builtin/index-pack.c
    functionUses: 0
    functionsReached:
    - reset_pack_idx_option
    - check_objects
    - read_idx_option
    - strcmp
    - CALLOC_ARRAY
    - fsck_options_init
    - skip_to_optional_arg
    - repo_set_hash_algo
    - repo_config
    - st_add
    - free
    - strbuf_release
    - die
    - git_env_bool
    - online_cpus
    - disable_replace_refs
    - fsck_set_msg_types
    - ALLOC_ARRAY
    - fsck_has_queued_checks
    - write_rev_file
    - write_in_full
    - hash_algo_by_name
    - parse_pack_header
    - strtoul
    - final
    - chdir
    - derive_filename
    - fsck_finish
    - strtoumax
    - write_idx_file
    - show_pack_info
    - _
    - skip_prefix
    - warning
    - resolve_deltas
    - show_usage_if_asked
    - starts_with
    - usage
    - parse_pack_objects
    - repack_local_links
    - open_pack_file
    - close
    - conclude_pack
    - parse_pack_header_option
    linkageType: ''
    returnType: int
    signature: "int cmd_index_pack(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BIT
      Src: /src/git/builtin/write-tree.c:31,1
    - Dst: N_
      Src: /src/git/builtin/write-tree.c:31,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/write-tree.c:33,1
    - Dst: N_
      Src: /src/git/builtin/write-tree.c:33,1
    - Dst: N_
      Src: /src/git/builtin/write-tree.c:34,1
    - Dst: N_
      Src: /src/git/builtin/write-tree.c:40,1
    - Dst: OPT_END
      Src: /src/git/builtin/write-tree.c:44,1
    - Dst: repo_config
      Src: /src/git/builtin/write-tree.c:47,1
    - Dst: parse_options
      Src: /src/git/builtin/write-tree.c:48,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/write-tree.c:51,1
    - Dst: write_index_as_tree
      Src: /src/git/builtin/write-tree.c:54,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/write-tree.c:55,1
    - Dst: printf
      Src: /src/git/builtin/write-tree.c:59,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/write-tree.c:59,1
    - Dst: die
      Src: /src/git/builtin/write-tree.c:62,1
    - Dst: die
      Src: /src/git/builtin/write-tree.c:65,1
    - Dst: die
      Src: /src/git/builtin/write-tree.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - argc
    - argv
    - cmd_prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 21
    functionDepth: 21
    functionLinenumber: 21
    functionLinenumberEnd: 72
    functionName: cmd_write_tree
    functionSourceFile: /src/git/builtin/write-tree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - write_index_as_tree
    - oid_to_hex
    - die
    - repo_get_index_file
    - OPT_STRING
    - prepare_repo_settings
    - OPT_BIT
    - N_
    - repo_config
    - printf
    linkageType: ''
    returnType: int
    signature: "int cmd_write_tree(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *cmd_prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/builtin/prune.c:34,1
    - Dst: error
      Src: /src/git/builtin/prune.c:35,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/prune.c:38,1
    - Dst: printf
      Src: /src/git/builtin/prune.c:40,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/prune.c:44,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/prune.c:45,1
    - Dst: strbuf_release
      Src: /src/git/builtin/prune.c:46,1
    - Dst: printf
      Src: /src/git/builtin/prune.c:50,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/prune.c:52,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - fullpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 31
    functionDepth: 8
    functionLinenumber: 31
    functionLinenumberEnd: 55
    functionName: prune_tmp_file
    functionSourceFile: /src/git/builtin/prune.c
    functionUses: 0
    functionsReached:
    - error
    - S_ISDIR
    - strbuf_release
    - unlink_or_warn
    - remove_dir_recursively
    - strbuf_addstr
    - lstat
    - printf
    linkageType: ''
    returnType: int
    signature: int prune_tmp_file(const char *fullpath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/builtin/prune.c:66,1
    - Dst: _
      Src: /src/git/builtin/prune.c:67,1
    - Dst: mark_reachable_objects
      Src: /src/git/builtin/prune.c:68,1
    - Dst: stop_progress
      Src: /src/git/builtin/prune.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 12
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: perform_reachability_traversal
    functionSourceFile: /src/git/builtin/prune.c
    functionUses: 0
    functionsReached:
    - mark_reachable_objects
    - stop_progress
    - start_delayed_progress
    - _
    linkageType: ''
    returnType: void
    signature: void perform_reachability_traversal(struct rev_info *revs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perform_reachability_traversal
      Src: /src/git/builtin/prune.c:78,1
    - Dst: lookup_object
      Src: /src/git/builtin/prune.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - oid
    - revs
    argTypes:
    - struct object_id*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 13
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: is_object_reachable
    functionSourceFile: /src/git/builtin/prune.c
    functionUses: 0
    functionsReached:
    - lookup_object
    - perform_reachability_traversal
    linkageType: ''
    returnType: int
    signature: "int is_object_reachable(const struct object_id *oid,\n\t\t\t       struct
      rev_info *revs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_object_reachable
      Src: /src/git/builtin/prune.c:90,1
    - Dst: lstat
      Src: /src/git/builtin/prune.c:93,1
    - Dst: error
      Src: /src/git/builtin/prune.c:95,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/prune.c:102,1
    - Dst: printf
      Src: /src/git/builtin/prune.c:103,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/prune.c:103,1
    - Dst: type_name
      Src: /src/git/builtin/prune.c:104,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/prune.c:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - oid
    - fullpath
    - data
    argTypes:
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 84
    functionDepth: 14
    functionLinenumber: 84
    functionLinenumberEnd: 109
    functionName: prune_object
    functionSourceFile: /src/git/builtin/prune.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - unlink_or_warn
    - odb_read_object_info
    - type_name
    - is_object_reachable
    - lstat
    - printf
    linkageType: ''
    returnType: int
    signature: "int prune_object(const struct object_id *oid, const char *fullpath,\n\t\t\tvoid
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/prune.c:114,1
    - Dst: prune_tmp_file
      Src: /src/git/builtin/prune.c:115,1
    - Dst: fprintf
      Src: /src/git/builtin/prune.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - basename
    - path
    - UNUSED
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 9
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: prune_cruft
    functionSourceFile: /src/git/builtin/prune.c
    functionUses: 0
    functionsReached:
    - prune_tmp_file
    - fprintf
    - starts_with
    linkageType: ''
    returnType: int
    signature: "int prune_cruft(const char *basename, const char *path,\n\t\t       void
      *data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rmdir
      Src: /src/git/builtin/prune.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - UNUSED
    - path
    - UNUSED
    argTypes:
    - unsigned int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: prune_subdir
    functionSourceFile: /src/git/builtin/prune.c
    functionUses: 0
    functionsReached:
    - rmdir
    linkageType: ''
    returnType: int
    signature: "int prune_subdir(unsigned int nr UNUSED, const char *path,\n\t\t\tvoid
      *data UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/builtin/prune.c:140,1
    - Dst: fprintf
      Src: /src/git/builtin/prune.c:143,1
    - Dst: strerror
      Src: /src/git/builtin/prune.c:144,1
    - Dst: readdir
      Src: /src/git/builtin/prune.c:147,1
    - Dst: starts_with
      Src: /src/git/builtin/prune.c:148,1
    - Dst: prune_tmp_file
      Src: /src/git/builtin/prune.c:149,1
    - Dst: mkpath
      Src: /src/git/builtin/prune.c:149,1
    - Dst: closedir
      Src: /src/git/builtin/prune.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 9
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: remove_temporary_files
    functionSourceFile: /src/git/builtin/prune.c
    functionUses: 0
    functionsReached:
    - strerror
    - starts_with
    - opendir
    - fprintf
    - mkpath
    - prune_tmp_file
    - closedir
    - readdir
    linkageType: ''
    returnType: void
    signature: void remove_temporary_files(const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT__DRY_RUN
      Src: /src/git/builtin/prune.c:161,1
    - Dst: N_
      Src: /src/git/builtin/prune.c:161,1
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/prune.c:162,1
    - Dst: N_
      Src: /src/git/builtin/prune.c:162,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/prune.c:163,1
    - Dst: N_
      Src: /src/git/builtin/prune.c:163,1
    - Dst: OPT_EXPIRY_DATE
      Src: /src/git/builtin/prune.c:164,1
    - Dst: N_
      Src: /src/git/builtin/prune.c:165,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/prune.c:166,1
    - Dst: N_
      Src: /src/git/builtin/prune.c:167,1
    - Dst: OPT_END
      Src: /src/git/builtin/prune.c:168,1
    - Dst: disable_replace_refs
      Src: /src/git/builtin/prune.c:174,1
    - Dst: parse_options
      Src: /src/git/builtin/prune.c:176,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/prune.c:178,1
    - Dst: die
      Src: /src/git/builtin/prune.c:180,1
    - Dst: _
      Src: /src/git/builtin/prune.c:180,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/prune.c:186,1
    - Dst: parse_object_or_die
      Src: /src/git/builtin/prune.c:187,1
    - Dst: add_pending_object
      Src: /src/git/builtin/prune.c:188,1
    - Dst: die
      Src: /src/git/builtin/prune.c:191,1
    - Dst: isatty
      Src: /src/git/builtin/prune.c:195,1
    - Dst: for_each_loose_file_in_source
      Src: /src/git/builtin/prune.c:201,1
    - Dst: prune_packed_objects
      Src: /src/git/builtin/prune.c:204,1
    - Dst: remove_temporary_files
      Src: /src/git/builtin/prune.c:205,1
    - Dst: repo_get_object_directory
      Src: /src/git/builtin/prune.c:205,1
    - Dst: mkpathdup
      Src: /src/git/builtin/prune.c:206,1
    - Dst: repo_get_object_directory
      Src: /src/git/builtin/prune.c:206,1
    - Dst: remove_temporary_files
      Src: /src/git/builtin/prune.c:207,1
    - Dst: free
      Src: /src/git/builtin/prune.c:208,1
    - Dst: is_repository_shallow
      Src: /src/git/builtin/prune.c:210,1
    - Dst: perform_reachability_traversal
      Src: /src/git/builtin/prune.c:211,1
    - Dst: prune_shallow
      Src: /src/git/builtin/prune.c:212,1
    - Dst: release_revisions
      Src: /src/git/builtin/prune.c:215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 153
    functionDepth: 13
    functionLinenumber: 153
    functionLinenumberEnd: 217
    functionName: cmd_prune
    functionSourceFile: /src/git/builtin/prune.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT__DRY_RUN
    - prune_shallow
    - repo_get_oid
    - OPT_BOOL
    - repo_init_revisions
    - free
    - OPT_END
    - die
    - remove_temporary_files
    - release_revisions
    - disable_replace_refs
    - perform_reachability_traversal
    - parse_object_or_die
    - isatty
    - mkpathdup
    - repo_get_object_directory
    - is_repository_shallow
    - _
    - N_
    - OPT__VERBOSE
    - for_each_loose_file_in_source
    - add_pending_object
    - prune_packed_objects
    - OPT_EXPIRY_DATE
    linkageType: ''
    returnType: int
    signature: "int cmd_prune(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/rm.c:45,1
    - Dst: ce_stage
      Src: /src/git/builtin/rm.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - path
    - pos
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: get_ours_cache_pos
    functionSourceFile: /src/git/builtin/rm.c
    functionUses: 0
    functionsReached:
    - ce_stage
    - strcmp
    linkageType: ''
    returnType: int
    signature: int get_ours_cache_pos(const char *path, unsigned int pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rm.c:62,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rm.c:64,1
    - Dst: advice_enabled
      Src: /src/git/builtin/rm.c:67,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rm.c:68,1
    - Dst: error
      Src: /src/git/builtin/rm.c:69,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rm.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - files_list
    - main_msg
    - hints_msg
    - errs
    argTypes:
    - struct string_list*
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 53
    functionDepth: 7
    functionLinenumber: 53
    functionLinenumberEnd: 72
    functionName: print_error_files
    functionSourceFile: /src/git/builtin/rm.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - strbuf_addf
    - strbuf_addstr
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: "void print_error_files(struct string_list *files_list,\n\t\t\t      const
      char *main_msg,\n\t\t\t      const char *hints_msg,\n\t\t\t      int *errs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/builtin/rm.c:82,1
    - Dst: strlen
      Src: /src/git/builtin/rm.c:82,1
    - Dst: get_ours_cache_pos
      Src: /src/git/builtin/rm.c:84,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/rm.c:90,1
    - Dst: file_exists
      Src: /src/git/builtin/rm.c:91,1
    - Dst: is_empty_dir
      Src: /src/git/builtin/rm.c:92,1
    - Dst: submodule_uses_gitfile
      Src: /src/git/builtin/rm.c:95,1
    - Dst: absorb_git_dir_into_superproject
      Src: /src/git/builtin/rm.c:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 74
    functionDepth: 10
    functionLinenumber: 74
    functionLinenumberEnd: 98
    functionName: submodules_absorb_gitdir_if_needed
    functionSourceFile: /src/git/builtin/rm.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - get_ours_cache_pos
    - is_empty_dir
    - submodule_uses_gitfile
    - S_ISGITLINK
    - strlen
    - absorb_git_dir_into_superproject
    - file_exists
    linkageType: ''
    returnType: void
    signature: void submodules_absorb_gitdir_if_needed(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/rm.c:115,1
    - Dst: index_name_pos
      Src: /src/git/builtin/rm.c:126,1
    - Dst: strlen
      Src: /src/git/builtin/rm.c:126,1
    - Dst: get_ours_cache_pos
      Src: /src/git/builtin/rm.c:132,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/rm.c:136,1
    - Dst: is_empty_dir
      Src: /src/git/builtin/rm.c:137,1
    - Dst: lstat
      Src: /src/git/builtin/rm.c:142,1
    - Dst: is_missing_file_error
      Src: /src/git/builtin/rm.c:143,1
    - Dst: warning_errno
      Src: /src/git/builtin/rm.c:144,1
    - Dst: _
      Src: /src/git/builtin/rm.c:144,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/rm.c:148,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/rm.c:154,1
    - Dst: ie_match_stat
      Src: /src/git/builtin/rm.c:177,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/rm.c:178,1
    - Dst: bad_to_remove_submodule
      Src: /src/git/builtin/rm.c:179,1
    - Dst: get_tree_entry
      Src: /src/git/builtin/rm.c:191,1
    - Dst: create_ce_mode
      Src: /src/git/builtin/rm.c:192,1
    - Dst: oideq
      Src: /src/git/builtin/rm.c:193,1
    - Dst: ce_intent_to_add
      Src: /src/git/builtin/rm.c:205,1
    - Dst: string_list_append
      Src: /src/git/builtin/rm.c:206,1
    - Dst: string_list_append
      Src: /src/git/builtin/rm.c:210,1
    - Dst: string_list_append
      Src: /src/git/builtin/rm.c:212,1
    - Dst: print_error_files
      Src: /src/git/builtin/rm.c:215,1
    - Dst: Q_
      Src: /src/git/builtin/rm.c:216,1
    - Dst: _
      Src: /src/git/builtin/rm.c:221,1
    - Dst: string_list_clear
      Src: /src/git/builtin/rm.c:223,1
    - Dst: print_error_files
      Src: /src/git/builtin/rm.c:224,1
    - Dst: Q_
      Src: /src/git/builtin/rm.c:225,1
    - Dst: _
      Src: /src/git/builtin/rm.c:229,1
    - Dst: string_list_clear
      Src: /src/git/builtin/rm.c:232,1
    - Dst: print_error_files
      Src: /src/git/builtin/rm.c:234,1
    - Dst: Q_
      Src: /src/git/builtin/rm.c:235,1
    - Dst: _
      Src: /src/git/builtin/rm.c:238,1
    - Dst: string_list_clear
      Src: /src/git/builtin/rm.c:241,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 43
    argCount: 2
    argNames:
    - head
    - index_only
    argTypes:
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 100
    functionDepth: 10
    functionLinenumber: 100
    functionLinenumberEnd: 244
    functionName: check_local_mod
    functionSourceFile: /src/git/builtin/rm.c
    functionUses: 0
    functionsReached:
    - get_tree_entry
    - get_ours_cache_pos
    - is_empty_dir
    - is_null_oid
    - index_name_pos
    - ie_match_stat
    - ce_intent_to_add
    - is_missing_file_error
    - create_ce_mode
    - Q_
    - string_list_clear
    - S_ISGITLINK
    - bad_to_remove_submodule
    - string_list_append
    - _
    - S_ISDIR
    - warning_errno
    - strlen
    - lstat
    - oideq
    - print_error_files
    linkageType: ''
    returnType: int
    signature: int check_local_mod(struct object_id *head, int index_only)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/builtin/rm.c:275,1
    - Dst: parse_options
      Src: /src/git/builtin/rm.c:277,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/rm.c:280,1
    - Dst: die
      Src: /src/git/builtin/rm.c:286,1
    - Dst: _
      Src: /src/git/builtin/rm.c:286,1
    - Dst: parse_pathspec_file
      Src: /src/git/builtin/rm.c:288,1
    - Dst: die
      Src: /src/git/builtin/rm.c:292,1
    - Dst: _
      Src: /src/git/builtin/rm.c:292,1
    - Dst: die
      Src: /src/git/builtin/rm.c:296,1
    - Dst: _
      Src: /src/git/builtin/rm.c:296,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/rm.c:299,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/rm.c:301,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/rm.c:303,1
    - Dst: repo_read_index
      Src: /src/git/builtin/rm.c:305,1
    - Dst: die
      Src: /src/git/builtin/rm.c:306,1
    - Dst: _
      Src: /src/git/builtin/rm.c:306,1
    - Dst: refresh_index
      Src: /src/git/builtin/rm.c:308,1
    - Dst: xcalloc
      Src: /src/git/builtin/rm.c:310,1
    - Dst: pathspec_needs_expanded_index
      Src: /src/git/builtin/rm.c:312,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/rm.c:313,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/rm.c:319,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/rm.c:320,1
    - Dst: ce_path_match
      Src: /src/git/builtin/rm.c:322,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/rm.c:324,1
    - Dst: xstrdup
      Src: /src/git/builtin/rm.c:325,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/rm.c:326,1
    - Dst: is_staging_gitmodules_ok
      Src: /src/git/builtin/rm.c:328,1
    - Dst: die
      Src: /src/git/builtin/rm.c:329,1
    - Dst: _
      Src: /src/git/builtin/rm.c:329,1
    - Dst: matches_skip_worktree
      Src: /src/git/builtin/rm.c:345,1
    - Dst: string_list_append
      Src: /src/git/builtin/rm.c:346,1
    - Dst: die
      Src: /src/git/builtin/rm.c:348,1
    - Dst: _
      Src: /src/git/builtin/rm.c:348,1
    - Dst: die
      Src: /src/git/builtin/rm.c:351,1
    - Dst: _
      Src: /src/git/builtin/rm.c:351,1
    - Dst: advise_on_updating_sparse_paths
      Src: /src/git/builtin/rm.c:356,1
    - Dst: free
      Src: /src/git/builtin/rm.c:359,1
    - Dst: string_list_clear
      Src: /src/git/builtin/rm.c:360,1
    - Dst: exit
      Src: /src/git/builtin/rm.c:363,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/rm.c:365,1
    - Dst: free
      Src: /src/git/builtin/rm.c:366,1
    - Dst: submodules_absorb_gitdir_if_needed
      Src: /src/git/builtin/rm.c:369,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/rm.c:383,1
    - Dst: oidclr
      Src: /src/git/builtin/rm.c:384,1
    - Dst: check_local_mod
      Src: /src/git/builtin/rm.c:385,1
    - Dst: exit
      Src: /src/git/builtin/rm.c:386,1
    - Dst: printf
      Src: /src/git/builtin/rm.c:396,1
    - Dst: remove_file_from_index
      Src: /src/git/builtin/rm.c:398,1
    - Dst: die
      Src: /src/git/builtin/rm.c:399,1
    - Dst: _
      Src: /src/git/builtin/rm.c:399,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/rm.c:420,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rm.c:421,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/rm.c:422,1
    - Dst: die
      Src: /src/git/builtin/rm.c:423,1
    - Dst: _
      Src: /src/git/builtin/rm.c:423,1
    - Dst: remove_path_from_gitmodules
      Src: /src/git/builtin/rm.c:426,1
    - Dst: remove_path
      Src: /src/git/builtin/rm.c:430,1
    - Dst: die_errno
      Src: /src/git/builtin/rm.c:435,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rm.c:437,1
    - Dst: stage_updated_gitmodules
      Src: /src/git/builtin/rm.c:439,1
    - Dst: write_locked_index
      Src: /src/git/builtin/rm.c:442,1
    - Dst: die
      Src: /src/git/builtin/rm.c:444,1
    - Dst: _
      Src: /src/git/builtin/rm.c:444,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 102
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 265
    functionDepth: 21
    functionLinenumber: 265
    functionLinenumberEnd: 447
    functionName: cmd_rm
    functionSourceFile: /src/git/builtin/rm.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - parse_options
    - parse_pathspec_file
    - repo_get_oid
    - repo_hold_locked_index
    - oidclr
    - ce_skip_worktree
    - refresh_index
    - free
    - repo_config
    - advise_on_updating_sparse_paths
    - printf
    - check_local_mod
    - strbuf_release
    - die
    - repo_read_index
    - ce_path_match
    - remove_path
    - pathspec_needs_expanded_index
    - xcalloc
    - strbuf_addstr
    - parse_pathspec
    - stage_updated_gitmodules
    - string_list_clear
    - remove_path_from_gitmodules
    - setup_work_tree
    - remove_dir_recursively
    - S_ISGITLINK
    - die_errno
    - path_in_sparse_checkout
    - _
    - string_list_append
    - submodules_absorb_gitdir_if_needed
    - xstrdup
    - clear_pathspec
    - remove_file_from_index
    - strbuf_reset
    - exit
    - prepare_repo_settings
    - write_locked_index
    - matches_skip_worktree
    - ALLOC_GROW
    - is_staging_gitmodules_ok
    linkageType: ''
    returnType: int
    signature: "int cmd_rm(int argc,\n\t   const char **argv,\n\t   const char *prefix,\n\t
      \  struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wildmatch
      Src: /src/git/builtin/replace.c:54,1
    - Dst: printf
      Src: /src/git/builtin/replace.c:56,1
    - Dst: printf
      Src: /src/git/builtin/replace.c:58,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:58,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/replace.c:63,1
    - Dst: error
      Src: /src/git/builtin/replace.c:64,1
    - Dst: _
      Src: /src/git/builtin/replace.c:64,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/replace.c:66,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/replace.c:67,1
    - Dst: printf
      Src: /src/git/builtin/replace.c:69,1
    - Dst: type_name
      Src: /src/git/builtin/replace.c:69,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:70,1
    - Dst: type_name
      Src: /src/git/builtin/replace.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 50
    functionDepth: 12
    functionLinenumber: 50
    functionLinenumberEnd: 75
    functionName: show_reference
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - repo_get_oid
    - odb_read_object_info
    - _
    - type_name
    - printf
    - wildmatch
    linkageType: ''
    returnType: int
    signature: int show_reference(const struct reference *ref, void *cb_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/replace.c:86,1
    - Dst: strcmp
      Src: /src/git/builtin/replace.c:88,1
    - Dst: strcmp
      Src: /src/git/builtin/replace.c:90,1
    - Dst: error
      Src: /src/git/builtin/replace.c:97,1
    - Dst: _
      Src: /src/git/builtin/replace.c:97,1
    - Dst: refs_for_each_replace_ref
      Src: /src/git/builtin/replace.c:101,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/replace.c:101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - pattern
    - format
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 105
    functionName: list_replace_refs
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - strcmp
    - _
    - refs_for_each_replace_ref
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int list_replace_refs(const char *pattern, const char *format)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/replace.c:119,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/replace.c:123,1
    - Dst: error
      Src: /src/git/builtin/replace.c:124,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/replace.c:129,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/replace.c:130,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:130,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/replace.c:133,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/replace.c:133,1
    - Dst: error
      Src: /src/git/builtin/replace.c:134,1
    - Dst: _
      Src: /src/git/builtin/replace.c:134,1
    - Dst: fn
      Src: /src/git/builtin/replace.c:138,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - argv
    - fn
    argTypes:
    - char**
    - each_replace_name_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 143
    functionName: for_each_replace_name
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - oid_to_hex
    - fn
    - repo_get_oid
    - strbuf_setlen
    - refs_read_ref
    - strbuf_addstr
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int for_each_replace_name(const char **argv, each_replace_name_fn fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refs_delete_ref
      Src: /src/git/builtin/replace.c:148,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/replace.c:148,1
    - Dst: printf_ln
      Src: /src/git/builtin/replace.c:150,1
    - Dst: _
      Src: /src/git/builtin/replace.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - ref
    - oid
    argTypes:
    - char*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: delete_replace_ref
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - refs_delete_ref
    - printf_ln
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int delete_replace_ref(const char *name, const char *ref,\n\t\t\t
      \     const struct object_id *oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/replace.c:161,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/replace.c:162,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:162,1
    - Dst: check_refname_format
      Src: /src/git/builtin/replace.c:163,1
    - Dst: error
      Src: /src/git/builtin/replace.c:164,1
    - Dst: _
      Src: /src/git/builtin/replace.c:164,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/replace.c:166,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/replace.c:166,1
    - Dst: oidclr
      Src: /src/git/builtin/replace.c:167,1
    - Dst: error
      Src: /src/git/builtin/replace.c:169,1
    - Dst: _
      Src: /src/git/builtin/replace.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - object
    - prev
    - ref
    - force
    argTypes:
    - struct object_id*
    - struct object_id*
    - struct strbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 171
    functionName: check_ref_valid
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - strbuf_reset
    - strbuf_addf
    - refs_read_ref
    - oidclr
    - check_refname_format
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int check_ref_valid(struct object_id *object,\n\t\t\t    struct object_id
      *prev,\n\t\t\t    struct strbuf *ref,\n\t\t\t    int force)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/builtin/replace.c:186,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/replace.c:187,1
    - Dst: error
      Src: /src/git/builtin/replace.c:189,1
    - Dst: _
      Src: /src/git/builtin/replace.c:189,1
    - Dst: type_name
      Src: /src/git/builtin/replace.c:193,1
    - Dst: type_name
      Src: /src/git/builtin/replace.c:194,1
    - Dst: check_ref_valid
      Src: /src/git/builtin/replace.c:196,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:197,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/replace.c:201,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/replace.c:201,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/replace.c:204,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/replace.c:206,1
    - Dst: error
      Src: /src/git/builtin/replace.c:207,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/replace.c:209,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - object_ref
    - object
    - replace_ref
    - repl
    - force
    argTypes:
    - char*
    - struct object_id*
    - char*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 173
    functionDepth: 12
    functionLinenumber: 173
    functionLinenumberEnd: 212
    functionName: replace_object_oid
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - ref_transaction_commit
    - strbuf_release
    - ref_transaction_update
    - check_ref_valid
    - odb_read_object_info
    - ref_transaction_free
    - _
    - type_name
    - ref_store_transaction_begin
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int replace_object_oid(const char *object_ref,\n\t\t\t       struct
      object_id *object,\n\t\t\t       const char *replace_ref,\n\t\t\t       struct
      object_id *repl,\n\t\t\t       int force)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/replace.c:218,1
    - Dst: error
      Src: /src/git/builtin/replace.c:219,1
    - Dst: _
      Src: /src/git/builtin/replace.c:219,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/replace.c:221,1
    - Dst: error
      Src: /src/git/builtin/replace.c:222,1
    - Dst: _
      Src: /src/git/builtin/replace.c:222,1
    - Dst: replace_object_oid
      Src: /src/git/builtin/replace.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - object_ref
    - replace_ref
    - force
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 214
    functionDepth: 13
    functionLinenumber: 214
    functionLinenumberEnd: 226
    functionName: replace_object
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 7
    functionsReached:
    - error
    - repo_get_oid
    - replace_object_oid
    - _
    linkageType: ''
    returnType: int
    signature: int replace_object(const char *object_ref, const char *replace_ref,
      int force)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/builtin/replace.c:239,1
    - Dst: error_errno
      Src: /src/git/builtin/replace.c:241,1
    - Dst: _
      Src: /src/git/builtin/replace.c:241,1
    - Dst: strvec_push
      Src: /src/git/builtin/replace.c:243,1
    - Dst: strvec_push
      Src: /src/git/builtin/replace.c:244,1
    - Dst: strvec_push
      Src: /src/git/builtin/replace.c:246,1
    - Dst: type_name
      Src: /src/git/builtin/replace.c:246,1
    - Dst: strvec_push
      Src: /src/git/builtin/replace.c:248,1
    - Dst: strvec_push
      Src: /src/git/builtin/replace.c:249,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:249,1
    - Dst: run_command
      Src: /src/git/builtin/replace.c:253,1
    - Dst: error
      Src: /src/git/builtin/replace.c:254,1
    - Dst: _
      Src: /src/git/builtin/replace.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - oid
    - type
    - raw
    - filename
    argTypes:
    - struct object_id*
    - enum object_type
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 233
    functionDepth: 8
    functionLinenumber: 233
    functionLinenumberEnd: 256
    functionName: export_object
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - strvec_push
    - oid_to_hex
    - open
    - run_command
    - _
    - type_name
    linkageType: ''
    returnType: int
    signature: "int export_object(const struct object_id *oid, enum object_type type,\n\t\t\t
      \ int raw, const char *filename)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/builtin/replace.c:268,1
    - Dst: error_errno
      Src: /src/git/builtin/replace.c:270,1
    - Dst: _
      Src: /src/git/builtin/replace.c:270,1
    - Dst: strvec_push
      Src: /src/git/builtin/replace.c:276,1
    - Dst: start_command
      Src: /src/git/builtin/replace.c:281,1
    - Dst: close
      Src: /src/git/builtin/replace.c:282,1
    - Dst: error
      Src: /src/git/builtin/replace.c:283,1
    - Dst: _
      Src: /src/git/builtin/replace.c:283,1
    - Dst: strbuf_read
      Src: /src/git/builtin/replace.c:286,1
    - Dst: error_errno
      Src: /src/git/builtin/replace.c:287,1
    - Dst: _
      Src: /src/git/builtin/replace.c:287,1
    - Dst: close
      Src: /src/git/builtin/replace.c:288,1
    - Dst: close
      Src: /src/git/builtin/replace.c:289,1
    - Dst: close
      Src: /src/git/builtin/replace.c:292,1
    - Dst: finish_command
      Src: /src/git/builtin/replace.c:294,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:295,1
    - Dst: error
      Src: /src/git/builtin/replace.c:296,1
    - Dst: _
      Src: /src/git/builtin/replace.c:296,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/replace.c:298,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:299,1
    - Dst: error
      Src: /src/git/builtin/replace.c:300,1
    - Dst: _
      Src: /src/git/builtin/replace.c:300,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:303,1
    - Dst: fstat
      Src: /src/git/builtin/replace.c:308,1
    - Dst: error_errno
      Src: /src/git/builtin/replace.c:309,1
    - Dst: _
      Src: /src/git/builtin/replace.c:309,1
    - Dst: close
      Src: /src/git/builtin/replace.c:310,1
    - Dst: index_fd
      Src: /src/git/builtin/replace.c:313,1
    - Dst: error
      Src: /src/git/builtin/replace.c:314,1
    - Dst: _
      Src: /src/git/builtin/replace.c:314,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - oid
    - type
    - raw
    - filename
    argTypes:
    - struct object_id*
    - enum object_type
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 263
    functionDepth: 8
    functionLinenumber: 263
    functionLinenumberEnd: 323
    functionName: import_object
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - strvec_push
    - strbuf_read
    - open
    - finish_command
    - strbuf_release
    - get_oid_hex
    - fstat
    - index_fd
    - _
    - close
    - start_command
    linkageType: ''
    returnType: int
    signature: "int import_object(struct object_id *oid, enum object_type type,\n\t\t\t
      \ int raw, const char *filename)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/replace.c:332,1
    - Dst: error
      Src: /src/git/builtin/replace.c:333,1
    - Dst: _
      Src: /src/git/builtin/replace.c:333,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/replace.c:335,1
    - Dst: error
      Src: /src/git/builtin/replace.c:337,1
    - Dst: _
      Src: /src/git/builtin/replace.c:337,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:338,1
    - Dst: check_ref_valid
      Src: /src/git/builtin/replace.c:340,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:341,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:344,1
    - Dst: repo_git_path
      Src: /src/git/builtin/replace.c:346,1
    - Dst: export_object
      Src: /src/git/builtin/replace.c:347,1
    - Dst: free
      Src: /src/git/builtin/replace.c:348,1
    - Dst: launch_editor
      Src: /src/git/builtin/replace.c:351,1
    - Dst: free
      Src: /src/git/builtin/replace.c:352,1
    - Dst: error
      Src: /src/git/builtin/replace.c:353,1
    - Dst: _
      Src: /src/git/builtin/replace.c:353,1
    - Dst: import_object
      Src: /src/git/builtin/replace.c:355,1
    - Dst: free
      Src: /src/git/builtin/replace.c:356,1
    - Dst: free
      Src: /src/git/builtin/replace.c:359,1
    - Dst: oideq
      Src: /src/git/builtin/replace.c:361,1
    - Dst: error
      Src: /src/git/builtin/replace.c:362,1
    - Dst: _
      Src: /src/git/builtin/replace.c:362,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:362,1
    - Dst: replace_object_oid
      Src: /src/git/builtin/replace.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - object_ref
    - force
    - raw
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 325
    functionDepth: 13
    functionLinenumber: 325
    functionLinenumberEnd: 365
    functionName: edit_and_replace
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - oid_to_hex
    - repo_git_path
    - export_object
    - repo_get_oid
    - check_ref_valid
    - launch_editor
    - odb_read_object_info
    - import_object
    - _
    - free
    - replace_object_oid
    - oideq
    linkageType: ''
    returnType: int
    signature: int edit_and_replace(const char *object_ref, int force, int raw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/replace.c:379,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/replace.c:387,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:388,1
    - Dst: error
      Src: /src/git/builtin/replace.c:389,1
    - Dst: _
      Src: /src/git/builtin/replace.c:389,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/replace.c:392,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:394,1
    - Dst: error
      Src: /src/git/builtin/replace.c:395,1
    - Dst: _
      Src: /src/git/builtin/replace.c:395,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/replace.c:397,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:397,1
    - Dst: strbuf_splice
      Src: /src/git/builtin/replace.c:401,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - buf
    - argc
    - argv
    argTypes:
    - struct strbuf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 367
    functionDepth: 7
    functionLinenumber: 367
    functionLinenumberEnd: 406
    functionName: replace_parents
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - oid_to_hex
    - lookup_commit_reference
    - repo_get_oid
    - strbuf_addf
    - starts_with
    - strbuf_splice
    - _
    linkageType: ''
    returnType: int
    signature: int replace_parents(struct strbuf *buf, int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hash_object_file
      Src: /src/git/builtin/replace.c:423,1
    - Dst: lookup_tag
      Src: /src/git/builtin/replace.c:425,1
    - Dst: error
      Src: /src/git/builtin/replace.c:427,1
    - Dst: _
      Src: /src/git/builtin/replace.c:427,1
    - Dst: parse_tag_buffer
      Src: /src/git/builtin/replace.c:428,1
    - Dst: error
      Src: /src/git/builtin/replace.c:429,1
    - Dst: _
      Src: /src/git/builtin/replace.c:429,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/replace.c:434,1
    - Dst: error
      Src: /src/git/builtin/replace.c:435,1
    - Dst: _
      Src: /src/git/builtin/replace.c:435,1
    - Dst: oideq
      Src: /src/git/builtin/replace.c:437,1
    - Dst: get_tagged_oid
      Src: /src/git/builtin/replace.c:437,1
    - Dst: error
      Src: /src/git/builtin/replace.c:441,1
    - Dst: _
      Src: /src/git/builtin/replace.c:441,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - commit
    - extra
    - data
    argTypes:
    - struct commit*
    - struct commit_extra_header*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 413
    functionDepth: 5
    functionLinenumber: 413
    functionLinenumberEnd: 444
    functionName: check_one_mergetag
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - lookup_tag
    - hash_object_file
    - repo_get_oid
    - parse_tag_buffer
    - _
    - get_tagged_oid
    - oideq
    linkageType: ''
    returnType: int
    signature: "int check_one_mergetag(struct commit *commit UNUSED,\n\t\t\t       struct
      commit_extra_header *extra,\n\t\t\t       void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_mergetag
      Src: /src/git/builtin/replace.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - commit
    - argc
    - argv
    argTypes:
    - struct commit*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 446
    functionDepth: 15
    functionLinenumber: 446
    functionLinenumberEnd: 453
    functionName: check_mergetags
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - for_each_mergetag
    linkageType: ''
    returnType: int
    signature: int check_mergetags(struct commit *commit, int argc, const char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/replace.c:464,1
    - Dst: error
      Src: /src/git/builtin/replace.c:465,1
    - Dst: _
      Src: /src/git/builtin/replace.c:465,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/replace.c:466,1
    - Dst: error
      Src: /src/git/builtin/replace.c:468,1
    - Dst: _
      Src: /src/git/builtin/replace.c:468,1
    - Dst: repo_get_commit_buffer
      Src: /src/git/builtin/replace.c:470,1
    - Dst: strbuf_add
      Src: /src/git/builtin/replace.c:471,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/replace.c:472,1
    - Dst: replace_parents
      Src: /src/git/builtin/replace.c:474,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:475,1
    - Dst: remove_signature
      Src: /src/git/builtin/replace.c:479,1
    - Dst: warning
      Src: /src/git/builtin/replace.c:480,1
    - Dst: _
      Src: /src/git/builtin/replace.c:480,1
    - Dst: warning
      Src: /src/git/builtin/replace.c:481,1
    - Dst: _
      Src: /src/git/builtin/replace.c:481,1
    - Dst: check_mergetags
      Src: /src/git/builtin/replace.c:484,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:485,1
    - Dst: odb_write_object
      Src: /src/git/builtin/replace.c:489,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:491,1
    - Dst: error
      Src: /src/git/builtin/replace.c:492,1
    - Dst: _
      Src: /src/git/builtin/replace.c:492,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:496,1
    - Dst: oideq
      Src: /src/git/builtin/replace.c:498,1
    - Dst: warning
      Src: /src/git/builtin/replace.c:500,1
    - Dst: _
      Src: /src/git/builtin/replace.c:500,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:501,1
    - Dst: error
      Src: /src/git/builtin/replace.c:504,1
    - Dst: _
      Src: /src/git/builtin/replace.c:504,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/replace.c:505,1
    - Dst: replace_object_oid
      Src: /src/git/builtin/replace.c:508,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - argc
    - argv
    - force
    - gentle
    argTypes:
    - int
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 455
    functionDepth: 16
    functionLinenumber: 455
    functionLinenumberEnd: 510
    functionName: create_graft
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - check_mergetags
    - oideq
    - replace_parents
    - odb_write_object
    - oid_to_hex
    - lookup_commit_reference
    - repo_get_oid
    - repo_unuse_commit_buffer
    - repo_get_commit_buffer
    - warning
    - _
    - replace_object_oid
    - remove_signature
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int create_graft(int argc, const char **argv, int force, int gentle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_graft_file
      Src: /src/git/builtin/replace.c:514,1
    - Dst: fopen_or_warn
      Src: /src/git/builtin/replace.c:515,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/replace.c:523,1
    - Dst: strvec_split
      Src: /src/git/builtin/replace.c:527,1
    - Dst: create_graft
      Src: /src/git/builtin/replace.c:528,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/replace.c:529,1
    - Dst: strvec_clear
      Src: /src/git/builtin/replace.c:530,1
    - Dst: fclose
      Src: /src/git/builtin/replace.c:532,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:534,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/replace.c:537,1
    - Dst: warning
      Src: /src/git/builtin/replace.c:539,1
    - Dst: _
      Src: /src/git/builtin/replace.c:539,1
    - Dst: strbuf_release
      Src: /src/git/builtin/replace.c:540,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - force
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 512
    functionDepth: 17
    functionLinenumber: 512
    functionLinenumberEnd: 543
    functionName: convert_graft_file
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - unlink_or_warn
    - create_graft
    - strbuf_addf
    - strvec_split
    - fopen_or_warn
    - strvec_clear
    - repo_get_graft_file
    - _
    - strbuf_getline
    - warning
    linkageType: ''
    returnType: int
    signature: int convert_graft_file(int force)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/replace.c:563,1
    - Dst: N_
      Src: /src/git/builtin/replace.c:563,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/replace.c:564,1
    - Dst: N_
      Src: /src/git/builtin/replace.c:564,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/replace.c:565,1
    - Dst: N_
      Src: /src/git/builtin/replace.c:565,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/replace.c:566,1
    - Dst: N_
      Src: /src/git/builtin/replace.c:566,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/replace.c:567,1
    - Dst: N_
      Src: /src/git/builtin/replace.c:567,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/replace.c:568,1
    - Dst: N_
      Src: /src/git/builtin/replace.c:568,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/replace.c:570,1
    - Dst: N_
      Src: /src/git/builtin/replace.c:570,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/replace.c:571,1
    - Dst: N_
      Src: /src/git/builtin/replace.c:571,1
    - Dst: N_
      Src: /src/git/builtin/replace.c:571,1
    - Dst: OPT_END
      Src: /src/git/builtin/replace.c:572,1
    - Dst: disable_replace_refs
      Src: /src/git/builtin/replace.c:575,1
    - Dst: repo_config
      Src: /src/git/builtin/replace.c:576,1
    - Dst: parse_options
      Src: /src/git/builtin/replace.c:578,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/replace.c:584,1
    - Dst: _
      Src: /src/git/builtin/replace.c:584,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/replace.c:592,1
    - Dst: _
      Src: /src/git/builtin/replace.c:592,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/replace.c:596,1
    - Dst: _
      Src: /src/git/builtin/replace.c:596,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/replace.c:602,1
    - Dst: _
      Src: /src/git/builtin/replace.c:602,1
    - Dst: for_each_replace_name
      Src: /src/git/builtin/replace.c:604,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/replace.c:608,1
    - Dst: _
      Src: /src/git/builtin/replace.c:608,1
    - Dst: replace_object
      Src: /src/git/builtin/replace.c:610,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/replace.c:614,1
    - Dst: _
      Src: /src/git/builtin/replace.c:614,1
    - Dst: edit_and_replace
      Src: /src/git/builtin/replace.c:616,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/replace.c:620,1
    - Dst: _
      Src: /src/git/builtin/replace.c:620,1
    - Dst: create_graft
      Src: /src/git/builtin/replace.c:622,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/replace.c:626,1
    - Dst: _
      Src: /src/git/builtin/replace.c:626,1
    - Dst: convert_graft_file
      Src: /src/git/builtin/replace.c:628,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/replace.c:632,1
    - Dst: _
      Src: /src/git/builtin/replace.c:632,1
    - Dst: list_replace_refs
      Src: /src/git/builtin/replace.c:634,1
    - Dst: BUG
      Src: /src/git/builtin/replace.c:637,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 545
    functionDepth: 19
    functionLinenumber: 545
    functionLinenumberEnd: 639
    functionName: cmd_replace
    functionSourceFile: /src/git/builtin/replace.c
    functionUses: 0
    functionsReached:
    - usage_msg_opt
    - parse_options
    - OPT_END
    - OPT_BOOL_F
    - for_each_replace_name
    - BUG
    - disable_replace_refs
    - replace_object
    - OPT_BOOL
    - OPT_STRING
    - create_graft
    - convert_graft_file
    - OPT_CMDMODE
    - _
    - N_
    - edit_and_replace
    - repo_config
    - list_replace_refs
    linkageType: ''
    returnType: int
    signature: "int cmd_replace(int argc,\n\t\tconst char **argv,\n\t\tconst char
      *prefix,\n\t\tstruct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_in_full
      Src: /src/git/builtin/rerere.c:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - UNUSED
    - ptr
    - nbuf
    argTypes:
    - void*
    - mmbuffer_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: outf
    functionSourceFile: /src/git/builtin/rerere.c
    functionUses: 16
    functionsReached:
    - write_in_full
    linkageType: ''
    returnType: int
    signature: int outf(void *dummy UNUSED, mmbuffer_t *ptr, int nbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_mmfile
      Src: /src/git/builtin/rerere.c:37,1
    - Dst: read_mmfile
      Src: /src/git/builtin/rerere.c:37,1
    - Dst: printf
      Src: /src/git/builtin/rerere.c:40,1
    - Dst: fflush
      Src: /src/git/builtin/rerere.c:41,1
    - Dst: memset
      Src: /src/git/builtin/rerere.c:42,1
    - Dst: memset
      Src: /src/git/builtin/rerere.c:44,1
    - Dst: xdi_diff
      Src: /src/git/builtin/rerere.c:46,1
    - Dst: free
      Src: /src/git/builtin/rerere.c:48,1
    - Dst: free
      Src: /src/git/builtin/rerere.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - file1
    - label1
    - file2
    - label2
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 51
    functionName: diff_two
    functionSourceFile: /src/git/builtin/rerere.c
    functionUses: 0
    functionsReached:
    - xdi_diff
    - memset
    - read_mmfile
    - fflush
    - free
    - printf
    linkageType: ''
    returnType: int
    signature: "int diff_two(const char *file1, const char *label1,\n\t\tconst char
      *file2, const char *label2)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/rerere.c:62,1
    - Dst: N_
      Src: /src/git/builtin/rerere.c:63,1
    - Dst: OPT_END
      Src: /src/git/builtin/rerere.c:64,1
    - Dst: parse_options
      Src: /src/git/builtin/rerere.c:67,1
    - Dst: repo_config
      Src: /src/git/builtin/rerere.c:69,1
    - Dst: repo_rerere
      Src: /src/git/builtin/rerere.c:77,1
    - Dst: strcmp
      Src: /src/git/builtin/rerere.c:79,1
    - Dst: warning
      Src: /src/git/builtin/rerere.c:84,1
    - Dst: _
      Src: /src/git/builtin/rerere.c:84,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/rerere.c:85,1
    - Dst: rerere_forget
      Src: /src/git/builtin/rerere.c:88,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/rerere.c:90,1
    - Dst: strcmp
      Src: /src/git/builtin/rerere.c:94,1
    - Dst: rerere_clear
      Src: /src/git/builtin/rerere.c:95,1
    - Dst: strcmp
      Src: /src/git/builtin/rerere.c:96,1
    - Dst: rerere_gc
      Src: /src/git/builtin/rerere.c:97,1
    - Dst: strcmp
      Src: /src/git/builtin/rerere.c:98,1
    - Dst: setup_rerere
      Src: /src/git/builtin/rerere.c:99,1
    - Dst: printf
      Src: /src/git/builtin/rerere.c:103,1
    - Dst: strcmp
      Src: /src/git/builtin/rerere.c:104,1
    - Dst: rerere_remaining
      Src: /src/git/builtin/rerere.c:105,1
    - Dst: printf
      Src: /src/git/builtin/rerere.c:108,1
    - Dst: strcmp
      Src: /src/git/builtin/rerere.c:114,1
    - Dst: setup_rerere
      Src: /src/git/builtin/rerere.c:116,1
    - Dst: diff_two
      Src: /src/git/builtin/rerere.c:122,1
    - Dst: rerere_path
      Src: /src/git/builtin/rerere.c:122,1
    - Dst: die
      Src: /src/git/builtin/rerere.c:123,1
    - Dst: _
      Src: /src/git/builtin/rerere.c:123,1
    - Dst: rerere_path
      Src: /src/git/builtin/rerere.c:123,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rerere.c:126,1
    - Dst: usage_with_options
      Src: /src/git/builtin/rerere.c:128,1
    - Dst: string_list_clear
      Src: /src/git/builtin/rerere.c:130,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 53
    functionDepth: 19
    functionLinenumber: 53
    functionLinenumberEnd: 132
    functionName: cmd_rerere
    functionSourceFile: /src/git/builtin/rerere.c
    functionUses: 0
    functionsReached:
    - parse_options
    - strcmp
    - repo_config
    - printf
    - usage_with_options
    - strbuf_release
    - OPT_END
    - die
    - repo_rerere
    - rerere_path
    - diff_two
    - parse_pathspec
    - string_list_clear
    - rerere_gc
    - OPT_SET_INT
    - rerere_forget
    - rerere_remaining
    - _
    - N_
    - warning
    - clear_pathspec
    - setup_rerere
    - rerere_clear
    linkageType: ''
    returnType: int
    signature: "int cmd_rerere(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: split_ident_line
      Src: /src/git/builtin/check-mailmap.c:33,1
    - Dst: strlen
      Src: /src/git/builtin/check-mailmap.c:33,1
    - Dst: strlen
      Src: /src/git/builtin/check-mailmap.c:42,1
    - Dst: map_user
      Src: /src/git/builtin/check-mailmap.c:45,1
    - Dst: printf
      Src: /src/git/builtin/check-mailmap.c:48,1
    - Dst: printf
      Src: /src/git/builtin/check-mailmap.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - mailmap
    - contact
    argTypes:
    - struct string_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: check_mailmap
    functionSourceFile: /src/git/builtin/check-mailmap.c
    functionUses: 0
    functionsReached:
    - map_user
    - strlen
    - split_ident_line
    - printf
    linkageType: ''
    returnType: void
    signature: void check_mailmap(struct string_list *mailmap, const char *contact)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/builtin/check-mailmap.c:60,1
    - Dst: parse_options
      Src: /src/git/builtin/check-mailmap.c:61,1
    - Dst: die
      Src: /src/git/builtin/check-mailmap.c:64,1
    - Dst: _
      Src: /src/git/builtin/check-mailmap.c:64,1
    - Dst: read_mailmap
      Src: /src/git/builtin/check-mailmap.c:66,1
    - Dst: read_mailmap_blob
      Src: /src/git/builtin/check-mailmap.c:68,1
    - Dst: read_mailmap_file
      Src: /src/git/builtin/check-mailmap.c:70,1
    - Dst: check_mailmap
      Src: /src/git/builtin/check-mailmap.c:73,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/check-mailmap.c:74,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/check-mailmap.c:78,1
    - Dst: check_mailmap
      Src: /src/git/builtin/check-mailmap.c:79,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/check-mailmap.c:80,1
    - Dst: strbuf_release
      Src: /src/git/builtin/check-mailmap.c:82,1
    - Dst: clear_mailmap
      Src: /src/git/builtin/check-mailmap.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 52
    functionDepth: 19
    functionLinenumber: 52
    functionLinenumberEnd: 87
    functionName: cmd_check_mailmap
    functionSourceFile: /src/git/builtin/check-mailmap.c
    functionUses: 0
    functionsReached:
    - parse_options
    - strbuf_getline_lf
    - die
    - strbuf_release
    - clear_mailmap
    - read_mailmap
    - read_mailmap_file
    - check_mailmap
    - _
    - maybe_flush_or_die
    - read_mailmap_blob
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_check_mailmap(int argc,\n\t\t      const char **argv,\n\t\t
      \     const char *prefix,\n\t\t      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/var.c:26,1
    - Dst: git_committer_info
      Src: /src/git/builtin/var.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 8
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: committer
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - git_committer_info
    linkageType: ''
    returnType: char
    signature: char *committer(int ident_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/var.c:31,1
    - Dst: git_author_info
      Src: /src/git/builtin/var.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: author
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 3
    functionsReached:
    - git_author_info
    - xstrdup_or_null
    linkageType: ''
    returnType: char
    signature: char *author(int ident_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/var.c:36,1
    - Dst: git_editor
      Src: /src/git/builtin/var.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: editor
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 14
    functionsReached:
    - git_editor
    - xstrdup_or_null
    linkageType: ''
    returnType: char
    signature: char *editor(int ident_flag UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/var.c:41,1
    - Dst: git_sequence_editor
      Src: /src/git/builtin/var.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: sequence_editor
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 3
    functionsReached:
    - git_sequence_editor
    - xstrdup_or_null
    linkageType: ''
    returnType: char
    signature: char *sequence_editor(int ident_flag UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_pager
      Src: /src/git/builtin/var.c:46,1
    - Dst: xstrdup
      Src: /src/git/builtin/var.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: pager
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 15
    functionsReached:
    - git_pager
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *pager(int ident_flag UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_default_branch_name
      Src: /src/git/builtin/var.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: default_branch
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 1
    functionsReached:
    - repo_default_branch_name
    linkageType: ''
    returnType: char
    signature: char *default_branch(int ident_flag UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_shell_path
      Src: /src/git/builtin/var.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: shell_path
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 2
    functionsReached:
    - git_shell_path
    linkageType: ''
    returnType: char
    signature: char *shell_path(int ident_flag UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_attr_system_is_enabled
      Src: /src/git/builtin/var.c:65,1
    - Dst: xstrdup
      Src: /src/git/builtin/var.c:66,1
    - Dst: git_attr_system_file
      Src: /src/git/builtin/var.c:66,1
    - Dst: normalize_path_copy
      Src: /src/git/builtin/var.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 7
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: git_attr_val_system
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 0
    functionsReached:
    - git_attr_system_file
    - normalize_path_copy
    - xstrdup
    - git_attr_system_is_enabled
    linkageType: ''
    returnType: char
    signature: char *git_attr_val_system(int ident_flag UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/var.c:75,1
    - Dst: git_attr_global_file
      Src: /src/git/builtin/var.c:75,1
    - Dst: normalize_path_copy
      Src: /src/git/builtin/var.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 9
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: git_attr_val_global
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - normalize_path_copy
    - git_attr_global_file
    linkageType: ''
    returnType: char
    signature: char *git_attr_val_global(int ident_flag UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_config_system
      Src: /src/git/builtin/var.c:85,1
    - Dst: git_system_config
      Src: /src/git/builtin/var.c:86,1
    - Dst: normalize_path_copy
      Src: /src/git/builtin/var.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 7
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: git_config_val_system
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 0
    functionsReached:
    - git_config_system
    - normalize_path_copy
    - git_system_config
    linkageType: ''
    returnType: char
    signature: char *git_config_val_system(int ident_flag UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_global_config_paths
      Src: /src/git/builtin/var.c:99,1
    - Dst: normalize_path_copy
      Src: /src/git/builtin/var.c:101,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/var.c:102,1
    - Dst: normalize_path_copy
      Src: /src/git/builtin/var.c:105,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/var.c:106,1
    - Dst: free
      Src: /src/git/builtin/var.c:108,1
    - Dst: free
      Src: /src/git/builtin/var.c:109,1
    - Dst: strbuf_trim_trailing_newline
      Src: /src/git/builtin/var.c:110,1
    - Dst: strbuf_release
      Src: /src/git/builtin/var.c:112,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/var.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ident_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 9
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: git_config_val_global
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 0
    functionsReached:
    - strbuf_trim_trailing_newline
    - strbuf_release
    - normalize_path_copy
    - git_global_config_paths
    - strbuf_addf
    - strbuf_detach
    - free
    linkageType: ''
    returnType: char
    signature: char *git_config_val_global(int ident_flag UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct git_var*::read
      Src: /src/git/builtin/var.c:181,1
    - Dst: string_list_split
      Src: /src/git/builtin/var.c:185,1
    - Dst: printf
      Src: /src/git/builtin/var.c:187,1
    - Dst: string_list_clear
      Src: /src/git/builtin/var.c:188,1
    - Dst: printf
      Src: /src/git/builtin/var.c:190,1
    - Dst: free
      Src: /src/git/builtin/var.c:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 175
    functionDepth: 5
    functionLinenumber: 175
    functionLinenumberEnd: 194
    functionName: list_vars
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - struct git_var*::read
    - string_list_split
    - free
    - printf
    linkageType: ''
    returnType: void
    signature: void list_vars(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/var.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - var
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: get_git_var
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct git_var
    signature: struct git_var *get_git_var(const char *var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/var.c:211,1
    - Dst: printf
      Src: /src/git/builtin/var.c:213,1
    - Dst: git_default_config
      Src: /src/git/builtin/var.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: show_config
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 0
    functionsReached:
    - git_default_config
    - printf
    linkageType: ''
    returnType: int
    signature: "int show_config(const char *var, const char *value,\n\t\t       const
      struct config_context *ctx, void *cb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/var.c:225,1
    - Dst: usage
      Src: /src/git/builtin/var.c:227,1
    - Dst: strcmp
      Src: /src/git/builtin/var.c:229,1
    - Dst: repo_config
      Src: /src/git/builtin/var.c:230,1
    - Dst: list_vars
      Src: /src/git/builtin/var.c:231,1
    - Dst: repo_config
      Src: /src/git/builtin/var.c:234,1
    - Dst: get_git_var
      Src: /src/git/builtin/var.c:236,1
    - Dst: usage
      Src: /src/git/builtin/var.c:238,1
    - Dst: struct git_var*::read
      Src: /src/git/builtin/var.c:240,1
    - Dst: printf
      Src: /src/git/builtin/var.c:244,1
    - Dst: free
      Src: /src/git/builtin/var.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 217
    functionDepth: 19
    functionLinenumber: 217
    functionLinenumberEnd: 248
    functionName: cmd_var
    functionSourceFile: /src/git/builtin/var.c
    functionUses: 0
    functionsReached:
    - show_usage_if_asked
    - struct git_var*::read
    - usage
    - list_vars
    - get_git_var
    - strcmp
    - free
    - repo_config
    - printf
    linkageType: ''
    returnType: int
    signature: "int cmd_var(int argc,\n\t    const char **argv,\n\t    const char
      *prefix UNUSED,\n\t    struct repository *repo UNUSED)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/branch.c:89,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/branch.c:91,1
    - Dst: string_list_append
      Src: /src/git/builtin/branch.c:92,1
    - Dst: starts_with
      Src: /src/git/builtin/branch.c:96,1
    - Dst: git_column_config
      Src: /src/git/builtin/branch.c:97,1
    - Dst: strcmp
      Src: /src/git/builtin/branch.c:98,1
    - Dst: git_config_colorbool
      Src: /src/git/builtin/branch.c:99,1
    - Dst: skip_prefix
      Src: /src/git/builtin/branch.c:102,1
    - Dst: LOOKUP_CONFIG
      Src: /src/git/builtin/branch.c:103,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/branch.c:107,1
    - Dst: color_parse
      Src: /src/git/builtin/branch.c:108,1
    - Dst: strcmp
      Src: /src/git/builtin/branch.c:110,1
    - Dst: git_config_bool
      Src: /src/git/builtin/branch.c:111,1
    - Dst: strcasecmp
      Src: /src/git/builtin/branch.c:114,1
    - Dst: git_config_bool
      Src: /src/git/builtin/branch.c:115,1
    - Dst: git_color_config
      Src: /src/git/builtin/branch.c:119,1
    - Dst: git_default_config
      Src: /src/git/builtin/branch.c:122,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 84
    functionDepth: 6
    functionLinenumber: 84
    functionLinenumberEnd: 123
    functionName: git_branch_config
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - git_config_colorbool
    - git_color_config
    - git_config_bool
    - strcasecmp
    - starts_with
    - git_column_config
    - color_parse
    - git_default_config
    - string_list_append
    - strcmp
    - LOOKUP_CONFIG
    - skip_prefix
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_branch_config(const char *var, const char *value,\n\t\t\t
      \    const struct config_context *ctx, void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color
      Src: /src/git/builtin/branch.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ix
    argTypes:
    - enum color_branch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: branch_get_color
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - want_color
    linkageType: ''
    returnType: char
    signature: char *branch_get_color(enum color_branch ix)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: branch_get
      Src: /src/git/builtin/branch.c:147,1
    - Dst: branch_get_upstream
      Src: /src/git/builtin/branch.c:148,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/branch.c:153,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:153,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/branch.c:155,1
    - Dst: repo_in_merge_bases
      Src: /src/git/builtin/branch.c:161,1
    - Dst: exit
      Src: /src/git/builtin/branch.c:164,1
    - Dst: repo_in_merge_bases
      Src: /src/git/builtin/branch.c:174,1
    - Dst: exit
      Src: /src/git/builtin/branch.c:176,1
    - Dst: warning
      Src: /src/git/builtin/branch.c:180,1
    - Dst: _
      Src: /src/git/builtin/branch.c:180,1
    - Dst: warning
      Src: /src/git/builtin/branch.c:184,1
    - Dst: _
      Src: /src/git/builtin/branch.c:184,1
    - Dst: free
      Src: /src/git/builtin/branch.c:188,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - kind
    - name
    - rev
    - head_rev
    argTypes:
    - int
    - char*
    - struct commit*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 132
    functionDepth: 17
    functionLinenumber: 132
    functionLinenumberEnd: 190
    functionName: branch_merged
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - branch_get
    - exit
    - repo_in_merge_bases
    - refs_resolve_refdup
    - _
    - free
    - warning
    - branch_get_upstream
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int branch_merged(int kind, const char *name,\n\t\t\t struct commit
      *rev, struct commit *head_rev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/branch.c:196,1
    - Dst: error
      Src: /src/git/builtin/branch.c:198,1
    - Dst: _
      Src: /src/git/builtin/branch.c:198,1
    - Dst: branch_merged
      Src: /src/git/builtin/branch.c:201,1
    - Dst: error
      Src: /src/git/builtin/branch.c:202,1
    - Dst: _
      Src: /src/git/builtin/branch.c:202,1
    - Dst: advise_if_enabled
      Src: /src/git/builtin/branch.c:203,1
    - Dst: _
      Src: /src/git/builtin/branch.c:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 6
    argNames:
    - branchname
    - refname
    - oid
    - head_rev
    - kinds
    - force
    argTypes:
    - char*
    - char*
    - struct object_id*
    - struct commit*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 192
    functionDepth: 18
    functionLinenumber: 192
    functionLinenumberEnd: 209
    functionName: check_branch_commit
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - error
    - lookup_commit_reference
    - branch_merged
    - advise_if_enabled
    - _
    linkageType: ''
    returnType: int
    signature: "int check_branch_commit(const char *branchname, const char *refname,\n\t\t\t
      \      const struct object_id *oid, struct commit *head_rev,\n\t\t\t       int
      kinds, int force)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:214,1
    - Dst: repo_config_rename_section
      Src: /src/git/builtin/branch.c:215,1
    - Dst: warning
      Src: /src/git/builtin/branch.c:216,1
    - Dst: _
      Src: /src/git/builtin/branch.c:216,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - branchname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 11
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: delete_branch_config
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - repo_config_rename_section
    - strbuf_addf
    - _
    - warning
    linkageType: ''
    returnType: void
    signature: void delete_branch_config(const char *branchname)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/branch.c:251,1
    - Dst: _
      Src: /src/git/builtin/branch.c:251,1
    - Dst: strcspn
      Src: /src/git/builtin/branch.c:253,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/branch.c:256,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/branch.c:258,1
    - Dst: copy_branchname
      Src: /src/git/builtin/branch.c:262,1
    - Dst: free
      Src: /src/git/builtin/branch.c:263,1
    - Dst: mkpathdup
      Src: /src/git/builtin/branch.c:264,1
    - Dst: branch_checked_out
      Src: /src/git/builtin/branch.c:268,1
    - Dst: error
      Src: /src/git/builtin/branch.c:269,1
    - Dst: _
      Src: /src/git/builtin/branch.c:269,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/branch.c:277,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:277,1
    - Dst: error
      Src: /src/git/builtin/branch.c:285,1
    - Dst: _
      Src: /src/git/builtin/branch.c:285,1
    - Dst: mkpathdup
      Src: /src/git/builtin/branch.c:287,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/branch.c:288,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:288,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/branch.c:295,1
    - Dst: error
      Src: /src/git/builtin/branch.c:298,1
    - Dst: _
      Src: /src/git/builtin/branch.c:298,1
    - Dst: error
      Src: /src/git/builtin/branch.c:302,1
    - Dst: _
      Src: /src/git/builtin/branch.c:302,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/branch.c:303,1
    - Dst: check_branch_commit
      Src: /src/git/builtin/branch.c:310,1
    - Dst: string_list_append
      Src: /src/git/builtin/branch.c:316,1
    - Dst: xstrdup
      Src: /src/git/builtin/branch.c:317,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/branch.c:319,1
    - Dst: free
      Src: /src/git/builtin/branch.c:322,1
    - Dst: refs_delete_refs
      Src: /src/git/builtin/branch.c:325,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:325,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/branch.c:328,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/branch.c:331,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:331,1
    - Dst: printf
      Src: /src/git/builtin/branch.c:334,1
    - Dst: _
      Src: /src/git/builtin/branch.c:335,1
    - Dst: _
      Src: /src/git/builtin/branch.c:336,1
    - Dst: delete_branch_config
      Src: /src/git/builtin/branch.c:339,1
    - Dst: free
      Src: /src/git/builtin/branch.c:341,1
    - Dst: string_list_clear
      Src: /src/git/builtin/branch.c:343,1
    - Dst: free
      Src: /src/git/builtin/branch.c:345,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:346,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 5
    argNames:
    - argc
    - argv
    - force
    - kinds
    - quiet
    argTypes:
    - int
    - char**
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 220
    functionDepth: 19
    functionLinenumber: 220
    functionLinenumberEnd: 349
    functionName: delete_branches
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - check_branch_commit
    - free
    - printf
    - get_main_ref_store
    - error
    - strbuf_release
    - die
    - lookup_commit_reference
    - delete_branch_config
    - refs_ref_exists
    - mkpathdup
    - refs_resolve_refdup
    - string_list_clear
    - string_list_append
    - _
    - refs_delete_refs
    - FREE_AND_NULL
    - xstrdup
    - copy_branchname
    - strbuf_reset
    - repo_find_unique_abbrev
    - strcspn
    - branch_checked_out
    linkageType: ''
    returnType: int
    signature: "int delete_branches(int argc, const char **argv, int force, int kinds,\n\t\t\t
      \  int quiet)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/branch.c:359,1
    - Dst: skip_prefix
      Src: /src/git/builtin/branch.c:360,1
    - Dst: get_head_description
      Src: /src/git/builtin/branch.c:362,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/branch.c:363,1
    - Dst: free
      Src: /src/git/builtin/branch.c:364,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/branch.c:366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - refs
    - remote_bonus
    argTypes:
    - struct ref_array*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 351
    functionDepth: 9
    functionLinenumber: 351
    functionLinenumberEnd: 374
    functionName: calc_maxwidth
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - get_head_description
    - skip_prefix
    - utf8_strwidth
    - free
    linkageType: ''
    returnType: int
    signature: int calc_maxwidth(struct ref_array *refs, int remote_bonus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/branch.c:380,1
    - Dst: strbuf_expand_step
      Src: /src/git/builtin/branch.c:381,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/branch.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 384
    functionName: quote_literal_for_format
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_expand_step
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *quote_literal_for_format(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:392,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:393,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:394,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:395,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:396,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:397,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:403,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:405,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:407,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:409,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/branch.c:410,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:410,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:411,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:415,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:416,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:416,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:417,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:419,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:419,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:422,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:424,1
    - Dst: quote_literal_for_format
      Src: /src/git/builtin/branch.c:427,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:428,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:429,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:431,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:432,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:433,1
    - Dst: quote_literal_for_format
      Src: /src/git/builtin/branch.c:434,1
    - Dst: branch_get_color
      Src: /src/git/builtin/branch.c:435,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:438,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:440,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:441,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/branch.c:442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - filter
    - maxwidth
    - remote_prefix
    argTypes:
    - struct ref_filter*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 443
    functionName: build_format
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - branch_get_color
    - strbuf_addf
    - quote_literal_for_format
    - strbuf_detach
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *build_format(struct ref_filter *filter, int maxwidth, const char
      *remote_prefix)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/branch.c:462,1
    - Dst: filter_refs
      Src: /src/git/builtin/branch.c:464,1
    - Dst: calc_maxwidth
      Src: /src/git/builtin/branch.c:467,1
    - Dst: strlen
      Src: /src/git/builtin/branch.c:467,1
    - Dst: build_format
      Src: /src/git/builtin/branch.c:470,1
    - Dst: verify_ref_format
      Src: /src/git/builtin/branch.c:473,1
    - Dst: die
      Src: /src/git/builtin/branch.c:474,1
    - Dst: _
      Src: /src/git/builtin/branch.c:474,1
    - Dst: filter_ahead_behind
      Src: /src/git/builtin/branch.c:476,1
    - Dst: ref_array_sort
      Src: /src/git/builtin/branch.c:477,1
    - Dst: column_active
      Src: /src/git/builtin/branch.c:479,1
    - Dst: assert
      Src: /src/git/builtin/branch.c:482,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/branch.c:485,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/branch.c:486,1
    - Dst: format_ref_array_item
      Src: /src/git/builtin/branch.c:487,1
    - Dst: die
      Src: /src/git/builtin/branch.c:488,1
    - Dst: string_list_append
      Src: /src/git/builtin/branch.c:491,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:494,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:495,1
    - Dst: print_formatted_ref_array
      Src: /src/git/builtin/branch.c:497,1
    - Dst: ref_array_clear
      Src: /src/git/builtin/branch.c:500,1
    - Dst: free
      Src: /src/git/builtin/branch.c:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - filter
    - sorting
    - format
    - output
    argTypes:
    - struct ref_filter*
    - struct ref_sorting*
    - struct ref_format*
    - struct string_list*
    assertStmts:
    - condition: (!filter->verbose && "--column and --verbose are incompatible")
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/git/builtin/branch.c
    constantsTouched: []
    func_position:
      end: 502
      start: 445
    functionDepth: 15
    functionLinenumber: 445
    functionLinenumberEnd: 502
    functionName: print_ref_list
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - calc_maxwidth
    - filter_refs
    - print_formatted_ref_array
    - free
    - format_ref_array_item
    - strbuf_release
    - filter_ahead_behind
    - die
    - ref_array_sort
    - memset
    - verify_ref_format
    - column_active
    - string_list_append
    - _
    - build_format
    - assert
    - strbuf_reset
    - strlen
    - ref_array_clear
    linkageType: ''
    returnType: void
    signature: "void print_ref_list(struct ref_filter *filter, struct ref_sorting
      *sorting,\n\t\t\t   struct ref_format *format, struct string_list *output)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/branch.c:507,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:507,1
    - Dst: die
      Src: /src/git/builtin/branch.c:511,1
    - Dst: _
      Src: /src/git/builtin/branch.c:511,1
    - Dst: skip_prefix
      Src: /src/git/builtin/branch.c:514,1
    - Dst: puts
      Src: /src/git/builtin/branch.c:515,1
    - Dst: die
      Src: /src/git/builtin/branch.c:517,1
    - Dst: _
      Src: /src/git/builtin/branch.c:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 504
    functionDepth: 5
    functionLinenumber: 504
    functionLinenumberEnd: 518
    functionName: print_current_branch_name
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - die
    - refs_resolve_ref_unsafe
    - puts
    - _
    - skip_prefix
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void print_current_branch_name(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_worktree_being_rebased
      Src: /src/git/builtin/branch.c:531,1
    - Dst: die
      Src: /src/git/builtin/branch.c:532,1
    - Dst: _
      Src: /src/git/builtin/branch.c:532,1
    - Dst: is_worktree_being_bisected
      Src: /src/git/builtin/branch.c:535,1
    - Dst: die
      Src: /src/git/builtin/branch.c:536,1
    - Dst: _
      Src: /src/git/builtin/branch.c:536,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - worktrees
    - target
    argTypes:
    - struct worktree**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 520
    functionDepth: 8
    functionLinenumber: 520
    functionLinenumberEnd: 539
    functionName: reject_rebase_or_bisect_branch
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - is_worktree_being_bisected
    - die
    - _
    - is_worktree_being_rebased
    linkageType: ''
    returnType: void
    signature: "void reject_rebase_or_bisect_branch(struct worktree **worktrees,\n\t\t\t\t\t
      \  const char *target)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/branch.c:560,1
    - Dst: get_worktree_ref_store
      Src: /src/git/builtin/branch.c:563,1
    - Dst: refs_update_symref
      Src: /src/git/builtin/branch.c:564,1
    - Dst: error
      Src: /src/git/builtin/branch.c:565,1
    - Dst: _
      Src: /src/git/builtin/branch.c:565,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - worktrees
    - oldref
    - newref
    - logmsg
    argTypes:
    - struct worktree**
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 546
    functionDepth: 4
    functionLinenumber: 546
    functionLinenumberEnd: 570
    functionName: replace_each_worktree_head_symref
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - error
    - get_worktree_ref_store
    - refs_update_symref
    - strcmp
    - _
    linkageType: ''
    returnType: int
    signature: "int replace_each_worktree_head_symref(struct worktree **worktrees,\n\t\t\t\t\t
      \    const char *oldref, const char *newref,\n\t\t\t\t\t     const char *logmsg)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees
      Src: /src/git/builtin/branch.c:582,1
    - Dst: check_branch_ref
      Src: /src/git/builtin/branch.c:584,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/branch.c:589,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:589,1
    - Dst: die_message
      Src: /src/git/builtin/branch.c:592,1
    - Dst: _
      Src: /src/git/builtin/branch.c:592,1
    - Dst: advise_if_enabled
      Src: /src/git/builtin/branch.c:593,1
    - Dst: _
      Src: /src/git/builtin/branch.c:594,1
    - Dst: exit
      Src: /src/git/builtin/branch.c:595,1
    - Dst: strcmp
      Src: /src/git/builtin/branch.c:602,1
    - Dst: is_null_oid
      Src: /src/git/builtin/branch.c:604,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/branch.c:610,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:610,1
    - Dst: die
      Src: /src/git/builtin/branch.c:612,1
    - Dst: _
      Src: /src/git/builtin/branch.c:612,1
    - Dst: die
      Src: /src/git/builtin/branch.c:614,1
    - Dst: _
      Src: /src/git/builtin/branch.c:614,1
    - Dst: strcmp
      Src: /src/git/builtin/branch.c:621,1
    - Dst: validate_branchname
      Src: /src/git/builtin/branch.c:622,1
    - Dst: validate_new_branchname
      Src: /src/git/builtin/branch.c:624,1
    - Dst: reject_rebase_or_bisect_branch
      Src: /src/git/builtin/branch.c:626,1
    - Dst: skip_prefix
      Src: /src/git/builtin/branch.c:628,1
    - Dst: skip_prefix
      Src: /src/git/builtin/branch.c:629,1
    - Dst: BUG
      Src: /src/git/builtin/branch.c:630,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:634,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:637,1
    - Dst: refs_rename_ref
      Src: /src/git/builtin/branch.c:641,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:641,1
    - Dst: die
      Src: /src/git/builtin/branch.c:642,1
    - Dst: _
      Src: /src/git/builtin/branch.c:642,1
    - Dst: refs_copy_existing_ref
      Src: /src/git/builtin/branch.c:643,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:643,1
    - Dst: die
      Src: /src/git/builtin/branch.c:644,1
    - Dst: _
      Src: /src/git/builtin/branch.c:644,1
    - Dst: warning
      Src: /src/git/builtin/branch.c:648,1
    - Dst: _
      Src: /src/git/builtin/branch.c:648,1
    - Dst: warning
      Src: /src/git/builtin/branch.c:651,1
    - Dst: _
      Src: /src/git/builtin/branch.c:651,1
    - Dst: replace_each_worktree_head_symref
      Src: /src/git/builtin/branch.c:656,1
    - Dst: die
      Src: /src/git/builtin/branch.c:658,1
    - Dst: _
      Src: /src/git/builtin/branch.c:658,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:660,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:662,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:663,1
    - Dst: repo_config_rename_section
      Src: /src/git/builtin/branch.c:664,1
    - Dst: die
      Src: /src/git/builtin/branch.c:665,1
    - Dst: _
      Src: /src/git/builtin/branch.c:665,1
    - Dst: strcmp
      Src: /src/git/builtin/branch.c:666,1
    - Dst: repo_config_copy_section
      Src: /src/git/builtin/branch.c:667,1
    - Dst: die
      Src: /src/git/builtin/branch.c:668,1
    - Dst: _
      Src: /src/git/builtin/branch.c:668,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:669,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:670,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:671,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:672,1
    - Dst: free_worktrees
      Src: /src/git/builtin/branch.c:673,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 54
    argCount: 4
    argNames:
    - oldname
    - newname
    - copy
    - force
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 575
    functionDepth: 15
    functionLinenumber: 575
    functionLinenumberEnd: 674
    functionName: copy_or_rename_branch
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - check_branch_ref
    - strbuf_addf
    - is_null_oid
    - advise_if_enabled
    - replace_each_worktree_head_symref
    - validate_new_branchname
    - strcmp
    - get_main_ref_store
    - get_worktrees
    - strbuf_release
    - die
    - refs_rename_ref
    - refs_ref_exists
    - validate_branchname
    - _
    - repo_config_copy_section
    - die_message
    - skip_prefix
    - warning
    - free_worktrees
    - refs_copy_existing_ref
    - reject_rebase_or_bisect_branch
    - exit
    - repo_config_rename_section
    - BUG
    linkageType: ''
    returnType: void
    signature: void copy_or_rename_branch(const char *oldname, const char *newname,
      int copy, int force)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_branch_desc
      Src: /src/git/builtin/branch.c:684,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/branch.c:686,1
    - Dst: strbuf_commented_addf
      Src: /src/git/builtin/branch.c:687,1
    - Dst: _
      Src: /src/git/builtin/branch.c:688,1
    - Dst: write_file_buf
      Src: /src/git/builtin/branch.c:692,1
    - Dst: edit_description
      Src: /src/git/builtin/branch.c:692,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/branch.c:693,1
    - Dst: launch_editor
      Src: /src/git/builtin/branch.c:694,1
    - Dst: edit_description
      Src: /src/git/builtin/branch.c:694,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:695,1
    - Dst: strbuf_stripspace
      Src: /src/git/builtin/branch.c:698,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:700,1
    - Dst: repo_config_set
      Src: /src/git/builtin/branch.c:702,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:703,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:704,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - branch_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 678
    functionDepth: 9
    functionLinenumber: 678
    functionLinenumberEnd: 707
    functionName: edit_branch_description
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - edit_description
    - strbuf_release
    - strbuf_stripspace
    - strbuf_reset
    - repo_config_set
    - strbuf_addf
    - strbuf_commented_addf
    - strbuf_addch
    - launch_editor
    - _
    - write_file_buf
    - read_branch_desc
    linkageType: ''
    returnType: int
    signature: int edit_branch_description(const char *branch_name)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/builtin/branch.c:727,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/branch.c:731,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:731,1
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/branch.c:732,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:733,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/branch.c:734,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:734,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/branch.c:735,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:736,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/branch.c:739,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:739,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/branch.c:741,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:741,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:741,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/branch.c:742,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:742,1
    - Dst: OPT__COLOR
      Src: /src/git/builtin/branch.c:743,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:743,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/branch.c:744,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:744,1
    - Dst: OPT_CONTAINS
      Src: /src/git/builtin/branch.c:747,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:747,1
    - Dst: OPT_NO_CONTAINS
      Src: /src/git/builtin/branch.c:748,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:748,1
    - Dst: OPT_WITH
      Src: /src/git/builtin/branch.c:749,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:749,1
    - Dst: OPT_WITHOUT
      Src: /src/git/builtin/branch.c:750,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:750,1
    - Dst: OPT__ABBREV
      Src: /src/git/builtin/branch.c:751,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/branch.c:753,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:753,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/branch.c:754,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:754,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/branch.c:757,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:757,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/branch.c:758,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:758,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/branch.c:759,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:759,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/branch.c:760,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:760,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/branch.c:761,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:762,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/branch.c:763,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:763,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/branch.c:764,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:764,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/branch.c:765,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:765,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/branch.c:766,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:766,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/branch.c:767,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:767,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/branch.c:768,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:769,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/branch.c:770,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:770,1
    - Dst: OPT_MERGED
      Src: /src/git/builtin/branch.c:771,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:771,1
    - Dst: OPT_NO_MERGED
      Src: /src/git/builtin/branch.c:772,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:772,1
    - Dst: OPT_COLUMN
      Src: /src/git/builtin/branch.c:773,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:773,1
    - Dst: OPT_REF_SORT
      Src: /src/git/builtin/branch.c:774,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/branch.c:775,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:775,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:776,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/branch.c:777,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:777,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/branch.c:778,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:778,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/branch.c:779,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:779,1
    - Dst: N_
      Src: /src/git/builtin/branch.c:779,1
    - Dst: OPT_END
      Src: /src/git/builtin/branch.c:780,1
    - Dst: setup_ref_filter_porcelain_msg
      Src: /src/git/builtin/branch.c:783,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/branch.c:788,1
    - Dst: repo_config
      Src: /src/git/builtin/branch.c:795,1
    - Dst: string_list_append
      Src: /src/git/builtin/branch.c:797,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/branch.c:801,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:801,1
    - Dst: die
      Src: /src/git/builtin/branch.c:804,1
    - Dst: _
      Src: /src/git/builtin/branch.c:804,1
    - Dst: strcmp
      Src: /src/git/builtin/branch.c:805,1
    - Dst: skip_prefix
      Src: /src/git/builtin/branch.c:807,1
    - Dst: die
      Src: /src/git/builtin/branch.c:808,1
    - Dst: _
      Src: /src/git/builtin/branch.c:808,1
    - Dst: parse_options
      Src: /src/git/builtin/branch.c:810,1
    - Dst: usage_with_options
      Src: /src/git/builtin/branch.c:825,1
    - Dst: die
      Src: /src/git/builtin/branch.c:829,1
    - Dst: _
      Src: /src/git/builtin/branch.c:829,1
    - Dst: die
      Src: /src/git/builtin/branch.c:831,1
    - Dst: _
      Src: /src/git/builtin/branch.c:831,1
    - Dst: finalize_colopts
      Src: /src/git/builtin/branch.c:842,1
    - Dst: explicitly_enable_column
      Src: /src/git/builtin/branch.c:844,1
    - Dst: die
      Src: /src/git/builtin/branch.c:845,1
    - Dst: _
      Src: /src/git/builtin/branch.c:845,1
    - Dst: setup_auto_pager
      Src: /src/git/builtin/branch.c:856,1
    - Dst: die
      Src: /src/git/builtin/branch.c:860,1
    - Dst: _
      Src: /src/git/builtin/branch.c:860,1
    - Dst: delete_branches
      Src: /src/git/builtin/branch.c:861,1
    - Dst: print_current_branch_name
      Src: /src/git/builtin/branch.c:864,1
    - Dst: ref_sorting_options
      Src: /src/git/builtin/branch.c:879,1
    - Dst: ref_sorting_set_sort_flags_all
      Src: /src/git/builtin/branch.c:880,1
    - Dst: ref_sorting_set_sort_flags_all
      Src: /src/git/builtin/branch.c:881,1
    - Dst: print_ref_list
      Src: /src/git/builtin/branch.c:883,1
    - Dst: print_columns
      Src: /src/git/builtin/branch.c:884,1
    - Dst: string_list_clear
      Src: /src/git/builtin/branch.c:885,1
    - Dst: ref_sorting_release
      Src: /src/git/builtin/branch.c:886,1
    - Dst: ref_filter_clear
      Src: /src/git/builtin/branch.c:887,1
    - Dst: die
      Src: /src/git/builtin/branch.c:898,1
    - Dst: _
      Src: /src/git/builtin/branch.c:898,1
    - Dst: copy_branchname
      Src: /src/git/builtin/branch.c:901,1
    - Dst: die
      Src: /src/git/builtin/branch.c:904,1
    - Dst: _
      Src: /src/git/builtin/branch.c:904,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:907,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/branch.c:908,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:908,1
    - Dst: error
      Src: /src/git/builtin/branch.c:909,1
    - Dst: branch_checked_out
      Src: /src/git/builtin/branch.c:909,1
    - Dst: _
      Src: /src/git/builtin/branch.c:910,1
    - Dst: _
      Src: /src/git/builtin/branch.c:911,1
    - Dst: edit_branch_description
      Src: /src/git/builtin/branch.c:914,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:920,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:921,1
    - Dst: die
      Src: /src/git/builtin/branch.c:926,1
    - Dst: _
      Src: /src/git/builtin/branch.c:926,1
    - Dst: die
      Src: /src/git/builtin/branch.c:928,1
    - Dst: _
      Src: /src/git/builtin/branch.c:928,1
    - Dst: _
      Src: /src/git/builtin/branch.c:929,1
    - Dst: copy_or_rename_branch
      Src: /src/git/builtin/branch.c:931,1
    - Dst: copy_or_rename_branch
      Src: /src/git/builtin/branch.c:933,1
    - Dst: die
      Src: /src/git/builtin/branch.c:935,1
    - Dst: _
      Src: /src/git/builtin/branch.c:935,1
    - Dst: _
      Src: /src/git/builtin/branch.c:936,1
    - Dst: branch_get
      Src: /src/git/builtin/branch.c:942,1
    - Dst: copy_branchname
      Src: /src/git/builtin/branch.c:944,1
    - Dst: branch_get
      Src: /src/git/builtin/branch.c:945,1
    - Dst: die
      Src: /src/git/builtin/branch.c:947,1
    - Dst: _
      Src: /src/git/builtin/branch.c:947,1
    - Dst: strcmp
      Src: /src/git/builtin/branch.c:950,1
    - Dst: die
      Src: /src/git/builtin/branch.c:951,1
    - Dst: _
      Src: /src/git/builtin/branch.c:951,1
    - Dst: die
      Src: /src/git/builtin/branch.c:954,1
    - Dst: _
      Src: /src/git/builtin/branch.c:954,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/branch.c:957,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/branch.c:957,1
    - Dst: branch_checked_out
      Src: /src/git/builtin/branch.c:958,1
    - Dst: die
      Src: /src/git/builtin/branch.c:959,1
    - Dst: _
      Src: /src/git/builtin/branch.c:959,1
    - Dst: die
      Src: /src/git/builtin/branch.c:960,1
    - Dst: _
      Src: /src/git/builtin/branch.c:960,1
    - Dst: dwim_and_setup_tracking
      Src: /src/git/builtin/branch.c:963,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:966,1
    - Dst: branch_get
      Src: /src/git/builtin/branch.c:972,1
    - Dst: copy_branchname
      Src: /src/git/builtin/branch.c:974,1
    - Dst: branch_get
      Src: /src/git/builtin/branch.c:975,1
    - Dst: die
      Src: /src/git/builtin/branch.c:977,1
    - Dst: _
      Src: /src/git/builtin/branch.c:977,1
    - Dst: strcmp
      Src: /src/git/builtin/branch.c:980,1
    - Dst: die
      Src: /src/git/builtin/branch.c:981,1
    - Dst: _
      Src: /src/git/builtin/branch.c:981,1
    - Dst: die
      Src: /src/git/builtin/branch.c:983,1
    - Dst: _
      Src: /src/git/builtin/branch.c:983,1
    - Dst: branch_has_merge_config
      Src: /src/git/builtin/branch.c:986,1
    - Dst: die
      Src: /src/git/builtin/branch.c:987,1
    - Dst: _
      Src: /src/git/builtin/branch.c:987,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/branch.c:989,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:990,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/branch.c:991,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/branch.c:992,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/branch.c:993,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/branch.c:994,1
    - Dst: strbuf_release
      Src: /src/git/builtin/branch.c:995,1
    - Dst: die
      Src: /src/git/builtin/branch.c:1001,1
    - Dst: _
      Src: /src/git/builtin/branch.c:1001,1
    - Dst: die
      Src: /src/git/builtin/branch.c:1005,1
    - Dst: _
      Src: /src/git/builtin/branch.c:1005,1
    - Dst: create_branches_recursively
      Src: /src/git/builtin/branch.c:1008,1
    - Dst: create_branch
      Src: /src/git/builtin/branch.c:1014,1
    - Dst: usage_with_options
      Src: /src/git/builtin/branch.c:1017,1
    - Dst: string_list_clear
      Src: /src/git/builtin/branch.c:1022,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 177
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 709
    functionDepth: 21
    functionLinenumber: 709
    functionLinenumberEnd: 1024
    functionName: cmd_branch
    functionSourceFile: /src/git/builtin/branch.c
    functionUses: 0
    functionsReached:
    - parse_options
    - delete_branches
    - OPT_CONTAINS
    - ref_sorting_options
    - print_ref_list
    - explicitly_enable_column
    - copy_or_rename_branch
    - OPT_BOOL
    - strbuf_addf
    - print_current_branch_name
    - OPT_WITHOUT
    - strcmp
    - dwim_and_setup_tracking
    - repo_config
    - OPT_REF_SORT
    - get_main_ref_store
    - usage_with_options
    - ref_sorting_release
    - error
    - OPT_END
    - die
    - OPT__FORCE
    - ref_filter_clear
    - strbuf_release
    - OPT_GROUP
    - branch_get
    - OPT_BIT
    - OPT__COLOR
    - OPT_WITH
    - finalize_colopts
    - branch_has_merge_config
    - refs_ref_exists
    - repo_config_values
    - OPT__QUIET
    - refs_resolve_refdup
    - string_list_clear
    - OPT__ABBREV
    - edit_branch_description
    - OPT_SET_INT_F
    - OPT_MERGED
    - ref_sorting_set_sort_flags_all
    - string_list_append
    - _
    - N_
    - OPT_NO_MERGED
    - create_branch
    - skip_prefix
    - OPT__VERBOSE
    - setup_ref_filter_porcelain_msg
    - print_columns
    - copy_branchname
    - repo_config_set_multivar
    - OPT_NO_CONTAINS
    - setup_auto_pager
    - strbuf_reset
    - OPT_CALLBACK_F
    - OPT_STRING
    - OPT_COLUMN
    - create_branches_recursively
    - OPT_CALLBACK
    - branch_checked_out
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: "int cmd_branch(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: odb_has_object
      Src: /src/git/builtin/show-ref.c:39,1
    - Dst: die
      Src: /src/git/builtin/show-ref.c:41,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/show-ref.c:42,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/show-ref.c:47,1
    - Dst: printf
      Src: /src/git/builtin/show-ref.c:49,1
    - Dst: printf
      Src: /src/git/builtin/show-ref.c:51,1
    - Dst: reference_get_peeled_oid
      Src: /src/git/builtin/show-ref.c:56,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/show-ref.c:57,1
    - Dst: printf
      Src: /src/git/builtin/show-ref.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - opts
    - ref
    argTypes:
    - struct show_one_options*
    - struct reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 12
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: show_one
    functionSourceFile: /src/git/builtin/show-ref.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - reference_get_peeled_oid
    - odb_has_object
    - repo_find_unique_abbrev
    - printf
    linkageType: ''
    returnType: void
    signature: "void show_one(const struct show_one_options *opts,\n\t\t     const
      struct reference *ref)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/show-ref.c:73,1
    - Dst: strlen
      Src: /src/git/builtin/show-ref.c:77,1
    - Dst: strlen
      Src: /src/git/builtin/show-ref.c:80,1
    - Dst: memcmp
      Src: /src/git/builtin/show-ref.c:83,1
    - Dst: show_one
      Src: /src/git/builtin/show-ref.c:96,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 2
    argNames:
    - ref
    - cbdata
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 69
    functionDepth: 13
    functionLinenumber: 69
    functionLinenumberEnd: 99
    functionName: show_ref
    functionSourceFile: /src/git/builtin/show-ref.c
    functionUses: 3
    functionsReached:
    - strlen
    - memcmp
    - show_one
    - strcmp
    linkageType: ''
    returnType: int
    signature: int show_ref(const struct reference *ref, void *cbdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/builtin/show-ref.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cbdata
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: add_existing
    functionSourceFile: /src/git/builtin/show-ref.c
    functionUses: 0
    functionsReached:
    - string_list_insert
    linkageType: ''
    returnType: int
    signature: int add_existing(const struct reference *ref, void *cbdata)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/show-ref.c:130,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/show-ref.c:132,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-ref.c:132,1
    - Dst: fgets
      Src: /src/git/builtin/show-ref.c:134,1
    - Dst: strlen
      Src: /src/git/builtin/show-ref.c:136,1
    - Dst: strcmp
      Src: /src/git/builtin/show-ref.c:140,1
    - Dst: isspace
      Src: /src/git/builtin/show-ref.c:145,1
    - Dst: strncmp
      Src: /src/git/builtin/show-ref.c:151,1
    - Dst: check_refname_format
      Src: /src/git/builtin/show-ref.c:154,1
    - Dst: warning
      Src: /src/git/builtin/show-ref.c:155,1
    - Dst: string_list_has_string
      Src: /src/git/builtin/show-ref.c:158,1
    - Dst: printf
      Src: /src/git/builtin/show-ref.c:159,1
    - Dst: string_list_clear
      Src: /src/git/builtin/show-ref.c:163,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct exclude_existing_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 165
    functionName: cmd_show_ref__exclude_existing
    functionSourceFile: /src/git/builtin/show-ref.c
    functionUses: 0
    functionsReached:
    - isspace
    - fgets
    - string_list_clear
    - refs_for_each_ref
    - strlen
    - string_list_has_string
    - check_refname_format
    - strcmp
    - strncmp
    - warning
    - printf
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int cmd_show_ref__exclude_existing(const struct exclude_existing_options
      *opts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/show-ref.c:171,1
    - Dst: starts_with
      Src: /src/git/builtin/show-ref.c:176,1
    - Dst: refname_is_safe
      Src: /src/git/builtin/show-ref.c:176,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/show-ref.c:177,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-ref.c:177,1
    - Dst: show_one
      Src: /src/git/builtin/show-ref.c:183,1
    - Dst: die
      Src: /src/git/builtin/show-ref.c:185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - show_one_opts
    - refs
    argTypes:
    - struct show_one_options*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 167
    functionDepth: 13
    functionLinenumber: 167
    functionLinenumberEnd: 194
    functionName: cmd_show_ref__verify
    functionSourceFile: /src/git/builtin/show-ref.c
    functionUses: 0
    functionsReached:
    - show_one
    - die
    - refs_read_ref
    - starts_with
    - refname_is_safe
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int cmd_show_ref__verify(const struct show_one_options *show_one_opts,\n\t\t\t\tconst
      char **refs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: refs_head_ref
      Src: /src/git/builtin/show-ref.c:215,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-ref.c:215,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/show-ref.c:222,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-ref.c:222,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/show-ref.c:228,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-ref.c:228,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/show-ref.c:232,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-ref.c:232,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - opts
    - show_one_opts
    - patterns
    argTypes:
    - struct patterns_options*
    - struct show_one_options*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 239
    functionName: cmd_show_ref__patterns
    functionSourceFile: /src/git/builtin/show-ref.c
    functionUses: 0
    functionsReached:
    - refs_for_each_ref_ext
    - refs_for_each_ref
    - refs_head_ref
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int cmd_show_ref__patterns(const struct patterns_options *opts,\n\t\t\t\t
      \ const struct show_one_options *show_one_opts,\n\t\t\t\t  const char **patterns)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/show-ref.c:251,1
    - Dst: die
      Src: /src/git/builtin/show-ref.c:254,1
    - Dst: refs_read_raw_ref
      Src: /src/git/builtin/show-ref.c:256,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-ref.c:256,1
    - Dst: error
      Src: /src/git/builtin/show-ref.c:260,1
    - Dst: _
      Src: /src/git/builtin/show-ref.c:260,1
    - Dst: error_errno
      Src: /src/git/builtin/show-ref.c:264,1
    - Dst: _
      Src: /src/git/builtin/show-ref.c:264,1
    - Dst: strbuf_release
      Src: /src/git/builtin/show-ref.c:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - refs
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 274
    functionName: cmd_show_ref__exists
    functionSourceFile: /src/git/builtin/show-ref.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - strbuf_release
    - refs_read_raw_ref
    - die
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int cmd_show_ref__exists(const char **refs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_opt_abbrev_cb
      Src: /src/git/builtin/show-ref.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: hash_callback
    functionSourceFile: /src/git/builtin/show-ref.c
    functionUses: 0
    functionsReached:
    - parse_opt_abbrev_cb
    linkageType: ''
    returnType: int
    signature: int hash_callback(const struct option *opt, const char *arg, int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/show-ref.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 298
    functionName: exclude_existing_callback
    functionSourceFile: /src/git/builtin/show-ref.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int exclude_existing_callback(const struct option *opt, const char
      *arg,\n\t\t\t\t     int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-ref.c:310,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:310,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-ref.c:311,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:311,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/show-ref.c:312,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:313,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-ref.c:314,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:314,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-ref.c:315,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:315,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/show-ref.c:317,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:318,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-ref.c:319,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:320,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-ref.c:321,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:322,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/show-ref.c:323,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:323,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:324,1
    - Dst: OPT__ABBREV
      Src: /src/git/builtin/show-ref.c:326,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/show-ref.c:327,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:328,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/show-ref.c:329,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:330,1
    - Dst: N_
      Src: /src/git/builtin/show-ref.c:330,1
    - Dst: OPT_END
      Src: /src/git/builtin/show-ref.c:332,1
    - Dst: repo_config
      Src: /src/git/builtin/show-ref.c:335,1
    - Dst: parse_options
      Src: /src/git/builtin/show-ref.c:337,1
    - Dst: die_for_incompatible_opt3
      Src: /src/git/builtin/show-ref.c:340,1
    - Dst: cmd_show_ref__exclude_existing
      Src: /src/git/builtin/show-ref.c:345,1
    - Dst: cmd_show_ref__verify
      Src: /src/git/builtin/show-ref.c:347,1
    - Dst: cmd_show_ref__exists
      Src: /src/git/builtin/show-ref.c:349,1
    - Dst: cmd_show_ref__patterns
      Src: /src/git/builtin/show-ref.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 300
    functionDepth: 19
    functionLinenumber: 300
    functionLinenumberEnd: 352
    functionName: cmd_show_ref
    functionSourceFile: /src/git/builtin/show-ref.c
    functionUses: 0
    functionsReached:
    - OPT__ABBREV
    - OPT_END
    - parse_options
    - cmd_show_ref__patterns
    - cmd_show_ref__exists
    - OPT_BOOL
    - OPT_CALLBACK_F
    - cmd_show_ref__verify
    - repo_config
    - die_for_incompatible_opt3
    - N_
    - cmd_show_ref__exclude_existing
    - OPT_HIDDEN_BOOL
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: 'int cmd_show_ref(int argc,

      const char **argv,

      const char *prefix,

      struct repository *repo UNUSED)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/diff-files.c:32,1
    - Dst: repo_config
      Src: /src/git/builtin/diff-files.c:34,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/diff-files.c:36,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/diff-files.c:39,1
    - Dst: precompose_argv_prefix
      Src: /src/git/builtin/diff-files.c:48,1
    - Dst: setup_revisions
      Src: /src/git/builtin/diff-files.c:50,1
    - Dst: strcmp
      Src: /src/git/builtin/diff-files.c:52,1
    - Dst: strcmp
      Src: /src/git/builtin/diff-files.c:54,1
    - Dst: strcmp
      Src: /src/git/builtin/diff-files.c:56,1
    - Dst: strcmp
      Src: /src/git/builtin/diff-files.c:58,1
    - Dst: usage
      Src: /src/git/builtin/diff-files.c:61,1
    - Dst: usage
      Src: /src/git/builtin/diff-files.c:76,1
    - Dst: diff_merges_set_dense_combined_if_unset
      Src: /src/git/builtin/diff-files.c:85,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/diff-files.c:87,1
    - Dst: die_errno
      Src: /src/git/builtin/diff-files.c:88,1
    - Dst: run_diff_files
      Src: /src/git/builtin/diff-files.c:89,1
    - Dst: diff_result_code
      Src: /src/git/builtin/diff-files.c:90,1
    - Dst: release_revisions
      Src: /src/git/builtin/diff-files.c:91,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 23
    functionDepth: 21
    functionLinenumber: 23
    functionLinenumberEnd: 93
    functionName: cmd_diff_files
    functionSourceFile: /src/git/builtin/diff-files.c
    functionUses: 0
    functionsReached:
    - repo_read_index_preload
    - precompose_argv_prefix
    - release_revisions
    - show_usage_if_asked
    - diff_merges_set_dense_combined_if_unset
    - diff_result_code
    - die_errno
    - repo_init_revisions
    - usage
    - prepare_repo_settings
    - strcmp
    - setup_revisions
    - run_diff_files
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_diff_files(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: disable_cutoff
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_cutoff(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_generation
      Src: /src/git/builtin/name-rev.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: set_commit_cutoff
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - commit_graph_generation
    linkageType: ''
    returnType: void
    signature: void set_commit_cutoff(struct commit *commit)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: adjust_cutoff_timestamp_for_slop
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void adjust_cutoff_timestamp_for_slop(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_graph_generation
      Src: /src/git/builtin/name-rev.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: commit_is_before_cutoff
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - commit_graph_generation
    linkageType: ''
    returnType: int
    signature: int commit_is_before_cutoff(struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - struct rev_name*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: is_valid_rev_name
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_valid_rev_name(const struct rev_name *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_rev_name_peek
      Src: /src/git/builtin/name-rev.c:103,1
    - Dst: is_valid_rev_name
      Src: /src/git/builtin/name-rev.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: get_commit_rev_name
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - commit_rev_name_peek
    - is_valid_rev_name
    linkageType: ''
    returnType: struct rev_name
    signature: struct rev_name *get_commit_rev_name(const struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - distance
    - generation
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: effective_distance
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int effective_distance(int distance, int generation)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: effective_distance
      Src: /src/git/builtin/name-rev.c:119,1
    - Dst: effective_distance
      Src: /src/git/builtin/name-rev.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - name
    - taggerdate
    - generation
    - distance
    - from_tag
    argTypes:
    - struct rev_name*
    - timestamp_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: is_better_name
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - effective_distance
    linkageType: ''
    returnType: int
    signature: "int is_better_name(struct rev_name *name,\n\t\t\t  timestamp_t taggerdate,\n\t\t\t
      \ int generation,\n\t\t\t  int distance,\n\t\t\t  int from_tag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_rev_name_at
      Src: /src/git/builtin/name-rev.c:150,1
    - Dst: is_valid_rev_name
      Src: /src/git/builtin/name-rev.c:152,1
    - Dst: is_better_name
      Src: /src/git/builtin/name-rev.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - commit
    - taggerdate
    - generation
    - distance
    - from_tag
    argTypes:
    - struct commit*
    - timestamp_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 162
    functionName: create_or_update_name
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - is_better_name
    - is_valid_rev_name
    - commit_rev_name_at
    linkageType: ''
    returnType: struct rev_name
    signature: "struct rev_name *create_or_update_name(struct commit *commit,\n\t\t\t\t\t
      \     timestamp_t taggerdate,\n\t\t\t\t\t      int generation, int distance,\n\t\t\t\t\t
      \     int from_tag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix
      Src: /src/git/builtin/name-rev.c:169,1
    - Dst: mem_pool_strfmt
      Src: /src/git/builtin/name-rev.c:171,1
    - Dst: mem_pool_strfmt
      Src: /src/git/builtin/name-rev.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - name
    - parent_number
    - string_pool
    argTypes:
    - struct rev_name*
    - int
    - struct mem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: get_parent_name
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - strip_suffix
    - mem_pool_strfmt
    linkageType: ''
    returnType: char
    signature: "char *get_parent_name(const struct rev_name *name, int parent_number,\n\t\t\t
      \    struct mem_pool *string_pool)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/builtin/name-rev.c:189,1
    - Dst: commit_is_before_cutoff
      Src: /src/git/builtin/name-rev.c:190,1
    - Dst: create_or_update_name
      Src: /src/git/builtin/name-rev.c:193,1
    - Dst: mem_pool_strfmt
      Src: /src/git/builtin/name-rev.c:198,1
    - Dst: mem_pool_strdup
      Src: /src/git/builtin/name-rev.c:201,1
    - Dst: commit_stack_push
      Src: /src/git/builtin/name-rev.c:203,1
    - Dst: commit_stack_pop
      Src: /src/git/builtin/name-rev.c:205,1
    - Dst: get_commit_rev_name
      Src: /src/git/builtin/name-rev.c:206,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/name-rev.c:219,1
    - Dst: commit_is_before_cutoff
      Src: /src/git/builtin/name-rev.c:220,1
    - Dst: create_or_update_name
      Src: /src/git/builtin/name-rev.c:231,1
    - Dst: get_parent_name
      Src: /src/git/builtin/name-rev.c:237,1
    - Dst: commit_stack_push
      Src: /src/git/builtin/name-rev.c:242,1
    - Dst: commit_stack_push
      Src: /src/git/builtin/name-rev.c:248,1
    - Dst: commit_stack_pop
      Src: /src/git/builtin/name-rev.c:249,1
    - Dst: commit_stack_clear
      Src: /src/git/builtin/name-rev.c:252,1
    - Dst: commit_stack_clear
      Src: /src/git/builtin/name-rev.c:253,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 6
    argNames:
    - start_commit
    - tip_name
    - taggerdate
    - from_tag
    - deref
    - string_pool
    argTypes:
    - struct commit*
    - char*
    - timestamp_t
    - int
    - int
    - struct mem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 180
    functionDepth: 20
    functionLinenumber: 180
    functionLinenumberEnd: 254
    functionName: name_rev
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 1
    functionsReached:
    - commit_stack_pop
    - create_or_update_name
    - get_parent_name
    - commit_is_before_cutoff
    - repo_parse_commit
    - mem_pool_strdup
    - commit_stack_push
    - commit_stack_clear
    - get_commit_rev_name
    - mem_pool_strfmt
    linkageType: ''
    returnType: void
    signature: "void name_rev(struct commit *start_commit,\n\t\tconst char *tip_name,
      timestamp_t taggerdate,\n\t\tint from_tag, int deref, struct mem_pool *string_pool)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wildmatch
      Src: /src/git/builtin/name-rev.c:261,1
    - Dst: strchr
      Src: /src/git/builtin/name-rev.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - path
    - filter
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: subpath_matches
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - strchr
    - wildmatch
    linkageType: ''
    returnType: int
    signature: int subpath_matches(const char *path, const char *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cmd
    - name_only
    argTypes:
    - struct command*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: init_name_rev_command
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void init_name_rev_command(struct command *cmd,\n\t\t\t\t  int name_only)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cmd
    - pretty_format
    argTypes:
    - struct command*
    - struct pretty_format*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: init_format_rev_command
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void init_format_rev_command(struct command *cmd,\n\t\t\t\t    struct
      pretty_format *pretty_format)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/builtin/name-rev.c:335,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/name-rev.c:335,1
    - Dst: skip_prefix
      Src: /src/git/builtin/name-rev.c:337,1
    - Dst: skip_prefix
      Src: /src/git/builtin/name-rev.c:340,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/name-rev.c:342,1
    - Dst: oidcpy
      Src: /src/git/builtin/name-rev.c:343,1
    - Dst: xstrdup
      Src: /src/git/builtin/name-rev.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - oid
    - refname
    - shorten_unambiguous
    - commit
    - taggerdate
    - from_tag
    - deref
    argTypes:
    - struct object_id*
    - char*
    - int
    - struct commit*
    - timestamp_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 352
    functionName: add_to_tip_table
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - refs_shorten_unambiguous_ref
    - ALLOC_GROW
    - skip_prefix
    - xstrdup
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void add_to_tip_table(const struct object_id *oid, const char *refname,\n\t\t\t
      \    int shorten_unambiguous, struct commit *commit,\n\t\t\t     timestamp_t
      taggerdate, int from_tag, int deref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidcmp
      Src: /src/git/builtin/name-rev.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: tipcmp
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - oidcmp
    linkageType: ''
    returnType: int
    signature: int tipcmp(const void *a_, const void *b_)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: cmp_by_tag_and_age
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_by_tag_and_age(const void *a_, const void *b_)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/builtin/name-rev.c:378,1
    - Dst: starts_with
      Src: /src/git/builtin/name-rev.c:386,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/name-rev.c:392,1
    - Dst: subpath_matches
      Src: /src/git/builtin/name-rev.c:393,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/name-rev.c:403,1
    - Dst: subpath_matches
      Src: /src/git/builtin/name-rev.c:414,1
    - Dst: parse_object
      Src: /src/git/builtin/name-rev.c:436,1
    - Dst: starts_with
      Src: /src/git/builtin/name-rev.c:442,1
    - Dst: add_to_tip_table
      Src: /src/git/builtin/name-rev.c:447,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 450
    functionName: name_ref
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 3
    functionsReached:
    - for_each_string_list_item
    - add_to_tip_table
    - subpath_matches
    - parse_object
    - starts_with
    linkageType: ''
    returnType: int
    signature: int name_ref(const struct reference *ref, void *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/builtin/name-rev.c:460,1
    - Dst: name_rev
      Src: /src/git/builtin/name-rev.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - string_pool
    argTypes:
    - struct mem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 452
    functionDepth: 21
    functionLinenumber: 452
    functionLinenumberEnd: 468
    functionName: name_tips
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - QSORT
    - name_rev
    linkageType: ''
    returnType: void
    signature: void name_tips(struct mem_pool *string_pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ix
    - table_
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: nth_tip_table_ent
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *nth_tip_table_ent(size_t ix, const void *table_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/builtin/name-rev.c:484,1
    - Dst: oid_pos
      Src: /src/git/builtin/name-rev.c:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 493
    functionName: get_exact_ref_match
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - oid_pos
    - QSORT
    linkageType: ''
    returnType: char
    signature: char *get_exact_ref_match(const struct object *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_exact_ref_match
      Src: /src/git/builtin/name-rev.c:502,1
    - Dst: get_commit_rev_name
      Src: /src/git/builtin/name-rev.c:504,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/name-rev.c:511,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/name-rev.c:512,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/builtin/name-rev.c:513,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/name-rev.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - o
    - buf
    argTypes:
    - struct object*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 517
    functionName: get_rev_name
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_strip_suffix
    - strbuf_addf
    - get_exact_ref_match
    - strbuf_addstr
    - get_commit_rev_name
    linkageType: ''
    returnType: char
    signature: char *get_rev_name(const struct object *o, struct strbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/name-rev.c:523,1
    - Dst: format_display_notes
      Src: /src/git/builtin/name-rev.c:528,1
    - Dst: get_log_output_encoding
      Src: /src/git/builtin/name-rev.c:529,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/name-rev.c:531,1
    - Dst: pretty_print_commit
      Src: /src/git/builtin/name-rev.c:534,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/name-rev.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - c
    - format_ctx
    - buf
    argTypes:
    - struct commit*
    - struct pretty_format*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 519
    functionDepth: 15
    functionLinenumber: 519
    functionLinenumberEnd: 538
    functionName: get_format_rev
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - pretty_print_commit
    - strbuf_reset
    - get_log_output_encoding
    - strbuf_detach
    - FREE_AND_NULL
    - format_display_notes
    linkageType: ''
    returnType: char
    signature: "char *get_format_rev(const struct commit *c,\n\t\t\t\t  struct pretty_format
      *format_ctx,\n\t\t\t\t  struct strbuf *buf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/name-rev.c:549,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/name-rev.c:549,1
    - Dst: get_rev_name
      Src: /src/git/builtin/name-rev.c:550,1
    - Dst: printf
      Src: /src/git/builtin/name-rev.c:552,1
    - Dst: printf
      Src: /src/git/builtin/name-rev.c:554,1
    - Dst: printf
      Src: /src/git/builtin/name-rev.c:556,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/name-rev.c:557,1
    - Dst: die
      Src: /src/git/builtin/name-rev.c:559,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/name-rev.c:559,1
    - Dst: strbuf_release
      Src: /src/git/builtin/name-rev.c:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - obj
    - caller_name
    - always
    - allow_undefined
    - name_only
    argTypes:
    - struct object*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 540
    functionDepth: 5
    functionLinenumber: 540
    functionLinenumberEnd: 561
    functionName: show_name
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - die
    - repo_find_unique_abbrev
    - get_rev_name
    - printf
    linkageType: ''
    returnType: void
    signature: "void show_name(const struct object *obj,\n\t\t      const char *caller_name,\n\t\t
      \     int always, int allow_undefined, int name_only)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ishex
      Src: /src/git/builtin/name-rev.c:579,1
    - Dst: ishex
      Src: /src/git/builtin/name-rev.c:582,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/name-rev.c:593,1
    - Dst: lookup_object
      Src: /src/git/builtin/name-rev.c:599,1
    - Dst: get_rev_name
      Src: /src/git/builtin/name-rev.c:601,1
    - Dst: printf
      Src: /src/git/builtin/name-rev.c:605,1
    - Dst: printf
      Src: /src/git/builtin/name-rev.c:607,1
    - Dst: parse_object
      Src: /src/git/builtin/name-rev.c:611,1
    - Dst: get_format_rev
      Src: /src/git/builtin/name-rev.c:613,1
    - Dst: printf
      Src: /src/git/builtin/name-rev.c:617,1
    - Dst: printf
      Src: /src/git/builtin/name-rev.c:619,1
    - Dst: BUG
      Src: /src/git/builtin/name-rev.c:622,1
    - Dst: fwrite
      Src: /src/git/builtin/name-rev.c:631,1
    - Dst: strbuf_release
      Src: /src/git/builtin/name-rev.c:633,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - p
    - cmd
    argTypes:
    - char*
    - struct command*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 570
    functionDepth: 16
    functionLinenumber: 570
    functionLinenumberEnd: 634
    functionName: name_rev_line
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_format_rev
    - ishex
    - repo_get_oid
    - fwrite
    - parse_object
    - lookup_object
    - get_rev_name
    - BUG
    - printf
    linkageType: ''
    returnType: void
    signature: void name_rev_line(char *p, struct command *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 579
    functionName: ishex
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ishex(x)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/name-rev.c:651,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:651,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/name-rev.c:652,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:652,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/name-rev.c:653,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:653,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:654,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/name-rev.c:655,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:655,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:656,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/name-rev.c:657,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/name-rev.c:658,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:658,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/name-rev.c:660,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:663,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/name-rev.c:666,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:666,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/name-rev.c:667,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:667,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/name-rev.c:668,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:669,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/name-rev.c:670,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:671,1
    - Dst: OPT_END
      Src: /src/git/builtin/name-rev.c:672,1
    - Dst: mem_pool_init
      Src: /src/git/builtin/name-rev.c:675,1
    - Dst: init_commit_rev_name
      Src: /src/git/builtin/name-rev.c:676,1
    - Dst: repo_config
      Src: /src/git/builtin/name-rev.c:677,1
    - Dst: parse_options
      Src: /src/git/builtin/name-rev.c:678,1
    - Dst: init_name_rev_command
      Src: /src/git/builtin/name-rev.c:679,1
    - Dst: warning
      Src: /src/git/builtin/name-rev.c:683,1
    - Dst: error
      Src: /src/git/builtin/name-rev.c:691,1
    - Dst: usage_with_options
      Src: /src/git/builtin/name-rev.c:692,1
    - Dst: disable_cutoff
      Src: /src/git/builtin/name-rev.c:695,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/name-rev.c:702,1
    - Dst: fprintf
      Src: /src/git/builtin/name-rev.c:703,1
    - Dst: parse_object
      Src: /src/git/builtin/name-rev.c:709,1
    - Dst: deref_tag
      Src: /src/git/builtin/name-rev.c:711,1
    - Dst: fprintf
      Src: /src/git/builtin/name-rev.c:718,1
    - Dst: set_commit_cutoff
      Src: /src/git/builtin/name-rev.c:724,1
    - Dst: fprintf
      Src: /src/git/builtin/name-rev.c:728,1
    - Dst: add_object_array
      Src: /src/git/builtin/name-rev.c:734,1
    - Dst: adjust_cutoff_timestamp_for_slop
      Src: /src/git/builtin/name-rev.c:737,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/name-rev.c:739,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/name-rev.c:739,1
    - Dst: name_tips
      Src: /src/git/builtin/name-rev.c:740,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/name-rev.c:745,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/name-rev.c:746,1
    - Dst: name_rev_line
      Src: /src/git/builtin/name-rev.c:747,1
    - Dst: strbuf_release
      Src: /src/git/builtin/name-rev.c:749,1
    - Dst: get_max_object_index
      Src: /src/git/builtin/name-rev.c:753,1
    - Dst: get_indexed_object
      Src: /src/git/builtin/name-rev.c:755,1
    - Dst: show_name
      Src: /src/git/builtin/name-rev.c:758,1
    - Dst: show_name
      Src: /src/git/builtin/name-rev.c:764,1
    - Dst: string_list_clear
      Src: /src/git/builtin/name-rev.c:768,1
    - Dst: string_list_clear
      Src: /src/git/builtin/name-rev.c:769,1
    - Dst: mem_pool_discard
      Src: /src/git/builtin/name-rev.c:770,1
    - Dst: object_array_clear
      Src: /src/git/builtin/name-rev.c:771,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 636
    functionDepth: 22
    functionLinenumber: 636
    functionLinenumberEnd: 773
    functionName: cmd_name_rev
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 1
    functionsReached:
    - parse_options
    - object_array_clear
    - repo_get_oid
    - deref_tag
    - OPT_BOOL
    - init_commit_rev_name
    - name_rev_line
    - disable_cutoff
    - repo_config
    - usage_with_options
    - error
    - get_main_ref_store
    - strbuf_release
    - OPT_END
    - get_indexed_object
    - mem_pool_discard
    - OPT_GROUP
    - get_max_object_index
    - OPT_HIDDEN_BOOL
    - OPT_STRING_LIST
    - init_name_rev_command
    - string_list_clear
    - mem_pool_init
    - parse_object
    - adjust_cutoff_timestamp_for_slop
    - N_
    - set_commit_cutoff
    - warning
    - strbuf_getline
    - name_tips
    - OPT_BOOL_F
    - add_object_array
    - refs_for_each_ref
    - strbuf_addch
    - show_name
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int cmd_name_rev(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/name-rev.c:787,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/name-rev.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - option
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 790
    functionName: format_nul_cb
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int format_nul_cb(const struct option *option,\n\t\t\t const char
      *arg,\n\t\t\t int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/name-rev.c:794,1
    - Dst: strcmp
      Src: /src/git/builtin/name-rev.c:796,1
    - Dst: strcmp
      Src: /src/git/builtin/name-rev.c:797,1
    - Dst: die
      Src: /src/git/builtin/name-rev.c:800,1
    - Dst: _
      Src: /src/git/builtin/name-rev.c:800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - stdin_mode
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 802
    functionName: parse_stdin_mode
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: enum stdin_mode
    signature: enum stdin_mode parse_stdin_mode(const char *stdin_mode)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/name-rev.c:829,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:829,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:830,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/name-rev.c:831,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:831,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:832,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/name-rev.c:833,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:833,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:834,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/name-rev.c:835,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:835,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:836,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/name-rev.c:838,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:839,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/name-rev.c:840,1
    - Dst: N_
      Src: /src/git/builtin/name-rev.c:841,1
    - Dst: OPT_END
      Src: /src/git/builtin/name-rev.c:842,1
    - Dst: parse_options
      Src: /src/git/builtin/name-rev.c:845,1
    - Dst: error
      Src: /src/git/builtin/name-rev.c:848,1
    - Dst: _
      Src: /src/git/builtin/name-rev.c:848,1
    - Dst: usage_with_options
      Src: /src/git/builtin/name-rev.c:849,1
    - Dst: die
      Src: /src/git/builtin/name-rev.c:853,1
    - Dst: _
      Src: /src/git/builtin/name-rev.c:853,1
    - Dst: die
      Src: /src/git/builtin/name-rev.c:855,1
    - Dst: _
      Src: /src/git/builtin/name-rev.c:855,1
    - Dst: init_display_notes
      Src: /src/git/builtin/name-rev.c:860,1
    - Dst: parse_stdin_mode
      Src: /src/git/builtin/name-rev.c:861,1
    - Dst: get_commit_format
      Src: /src/git/builtin/name-rev.c:863,1
    - Dst: userformat_find_requirements
      Src: /src/git/builtin/name-rev.c:871,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/name-rev.c:877,1
    - Dst: enable_ref_display_notes
      Src: /src/git/builtin/name-rev.c:878,1
    - Dst: load_display_notes
      Src: /src/git/builtin/name-rev.c:881,1
    - Dst: init_format_rev_command
      Src: /src/git/builtin/name-rev.c:884,1
    - Dst: getline_fn
      Src: /src/git/builtin/name-rev.c:888,1
    - Dst: name_rev_line
      Src: /src/git/builtin/name-rev.c:889,1
    - Dst: printf
      Src: /src/git/builtin/name-rev.c:894,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/name-rev.c:895,1
    - Dst: getline_fn
      Src: /src/git/builtin/name-rev.c:899,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/name-rev.c:904,1
    - Dst: fprintf
      Src: /src/git/builtin/name-rev.c:905,1
    - Dst: parse_object
      Src: /src/git/builtin/name-rev.c:910,1
    - Dst: fprintf
      Src: /src/git/builtin/name-rev.c:912,1
    - Dst: deref_tag
      Src: /src/git/builtin/name-rev.c:917,1
    - Dst: fprintf
      Src: /src/git/builtin/name-rev.c:919,1
    - Dst: get_format_rev
      Src: /src/git/builtin/name-rev.c:925,1
    - Dst: printf
      Src: /src/git/builtin/name-rev.c:927,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/name-rev.c:928,1
    - Dst: strbuf_release
      Src: /src/git/builtin/name-rev.c:929,1
    - Dst: BUG
      Src: /src/git/builtin/name-rev.c:933,1
    - Dst: strbuf_release
      Src: /src/git/builtin/name-rev.c:936,1
    - Dst: string_list_clear
      Src: /src/git/builtin/name-rev.c:937,1
    - Dst: release_display_notes
      Src: /src/git/builtin/name-rev.c:938,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 811
    functionDepth: 17
    functionLinenumber: 811
    functionLinenumberEnd: 940
    functionName: cmd_format_rev
    functionSourceFile: /src/git/builtin/name-rev.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - parse_options
    - repo_get_oid
    - deref_tag
    - OPT_BOOL
    - name_rev_line
    - getline_fn
    - release_display_notes
    - get_format_rev
    - parse_stdin_mode
    - printf
    - usage_with_options
    - error
    - strbuf_release
    - OPT_END
    - die
    - enable_ref_display_notes
    - get_commit_format
    - init_format_rev_command
    - maybe_flush_or_die
    - OPT_STRING_LIST
    - string_list_clear
    - parse_object
    - _
    - N_
    - init_display_notes
    - load_display_notes
    - userformat_find_requirements
    - OPT_CALLBACK_F
    - OPT_STRING
    - BUG
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int cmd_format_rev(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/verify-commit.c:27,1
    - Dst: check_commit_signature
      Src: /src/git/builtin/verify-commit.c:29,1
    - Dst: print_signature_buffer
      Src: /src/git/builtin/verify-commit.c:30,1
    - Dst: signature_check_clear
      Src: /src/git/builtin/verify-commit.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - commit
    - flags
    argTypes:
    - struct commit*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 14
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: run_gpg_verify
    functionSourceFile: /src/git/builtin/verify-commit.c
    functionUses: 1
    functionsReached:
    - memset
    - print_signature_buffer
    - signature_check_clear
    - check_commit_signature
    linkageType: ''
    returnType: int
    signature: int run_gpg_verify(struct commit *commit, unsigned flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/verify-commit.c:41,1
    - Dst: error
      Src: /src/git/builtin/verify-commit.c:42,1
    - Dst: parse_object
      Src: /src/git/builtin/verify-commit.c:44,1
    - Dst: error
      Src: /src/git/builtin/verify-commit.c:46,1
    - Dst: error
      Src: /src/git/builtin/verify-commit.c:48,1
    - Dst: type_name
      Src: /src/git/builtin/verify-commit.c:49,1
    - Dst: run_gpg_verify
      Src: /src/git/builtin/verify-commit.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - repo
    - name
    - flags
    argTypes:
    - struct repository*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: verify_commit
    functionSourceFile: /src/git/builtin/verify-commit.c
    functionUses: 0
    functionsReached:
    - error
    - run_gpg_verify
    - repo_get_oid
    - parse_object
    - type_name
    linkageType: ''
    returnType: int
    signature: int verify_commit(struct repository *repo, const char *name, unsigned
      flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/verify-commit.c:62,1
    - Dst: N_
      Src: /src/git/builtin/verify-commit.c:62,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/verify-commit.c:63,1
    - Dst: N_
      Src: /src/git/builtin/verify-commit.c:63,1
    - Dst: OPT_END
      Src: /src/git/builtin/verify-commit.c:64,1
    - Dst: repo_config
      Src: /src/git/builtin/verify-commit.c:67,1
    - Dst: parse_options
      Src: /src/git/builtin/verify-commit.c:69,1
    - Dst: usage_with_options
      Src: /src/git/builtin/verify-commit.c:72,1
    - Dst: signal
      Src: /src/git/builtin/verify-commit.c:79,1
    - Dst: verify_commit
      Src: /src/git/builtin/verify-commit.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 54
    functionDepth: 19
    functionLinenumber: 54
    functionLinenumberEnd: 84
    functionName: cmd_verify_commit
    functionSourceFile: /src/git/builtin/verify-commit.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - verify_commit
    - OPT__VERBOSE
    - signal
    - OPT_BIT
    - N_
    - repo_config
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_verify_commit(int argc,\n\t\t      const char **argv,\n\t\t
      \     const char *prefix,\n\t\t      struct repository *repo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/sparse-checkout.c:39,1
    - Dst: fprintf
      Src: /src/git/builtin/sparse-checkout.c:41,1
    - Dst: fprintf
      Src: /src/git/builtin/sparse-checkout.c:44,1
    - Dst: fprintf
      Src: /src/git/builtin/sparse-checkout.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - pl
    argTypes:
    - FILE*
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: write_patterns_to_file
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_patterns_to_file(FILE *fp, struct pattern_list *pl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/sparse-checkout.c:59,1
    - Dst: repo_config_values
      Src: /src/git/builtin/sparse-checkout.c:64,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/sparse-checkout.c:66,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:68,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:68,1
    - Dst: parse_options
      Src: /src/git/builtin/sparse-checkout.c:70,1
    - Dst: memset
      Src: /src/git/builtin/sparse-checkout.c:74,1
    - Dst: get_sparse_checkout_filename
      Src: /src/git/builtin/sparse-checkout.c:78,1
    - Dst: add_patterns_from_file_to_list
      Src: /src/git/builtin/sparse-checkout.c:79,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:80,1
    - Dst: warning
      Src: /src/git/builtin/sparse-checkout.c:83,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:83,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/sparse-checkout.c:93,1
    - Dst: string_list_append
      Src: /src/git/builtin/sparse-checkout.c:95,1
    - Dst: string_list_sort_u
      Src: /src/git/builtin/sparse-checkout.c:98,1
    - Dst: quote_c_style
      Src: /src/git/builtin/sparse-checkout.c:101,1
    - Dst: printf
      Src: /src/git/builtin/sparse-checkout.c:102,1
    - Dst: string_list_clear
      Src: /src/git/builtin/sparse-checkout.c:105,1
    - Dst: write_patterns_to_file
      Src: /src/git/builtin/sparse-checkout.c:107,1
    - Dst: clear_pattern_list
      Src: /src/git/builtin/sparse-checkout.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 55
    functionDepth: 13
    functionLinenumber: 55
    functionLinenumberEnd: 113
    functionName: sparse_checkout_list
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - parse_options
    - get_sparse_checkout_filename
    - free
    - printf
    - OPT_END
    - die
    - quote_c_style
    - repo_config_values
    - string_list_sort_u
    - hashmap_for_each_entry
    - add_patterns_from_file_to_list
    - string_list_clear
    - memset
    - setup_work_tree
    - string_list_append
    - _
    - clear_pattern_list
    - warning
    - write_patterns_to_file
    linkageType: ''
    returnType: int
    signature: "int sparse_checkout_list(int argc, const char **argv, const char *prefix,\n\t\t\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: init_sparse_checkout_patterns
      Src: /src/git/builtin/sparse-checkout.c:129,1
    - Dst: convert_to_sparse
      Src: /src/git/builtin/sparse-checkout.c:145,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/sparse-checkout.c:150,1
    - Dst: strbuf_complete
      Src: /src/git/builtin/sparse-checkout.c:151,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/builtin/sparse-checkout.c:163,1
    - Dst: repo_file_exists
      Src: /src/git/builtin/sparse-checkout.c:164,1
    - Dst: string_list_append
      Src: /src/git/builtin/sparse-checkout.c:165,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/sparse-checkout.c:168,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/sparse-checkout.c:173,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/sparse-checkout.c:174,1
    - Dst: setup_standard_excludes
      Src: /src/git/builtin/sparse-checkout.c:178,1
    - Dst: strvec_push
      Src: /src/git/builtin/sparse-checkout.c:179,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/sparse-checkout.c:181,1
    - Dst: fill_directory
      Src: /src/git/builtin/sparse-checkout.c:182,1
    - Dst: warning
      Src: /src/git/builtin/sparse-checkout.c:185,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:185,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/sparse-checkout.c:188,1
    - Dst: warning
      Src: /src/git/builtin/sparse-checkout.c:193,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:193,1
    - Dst: strvec_clear
      Src: /src/git/builtin/sparse-checkout.c:197,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/sparse-checkout.c:198,1
    - Dst: dir_clear
      Src: /src/git/builtin/sparse-checkout.c:199,1
    - Dst: string_list_clear
      Src: /src/git/builtin/sparse-checkout.c:202,1
    - Dst: strbuf_release
      Src: /src/git/builtin/sparse-checkout.c:203,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/sparse-checkout.c:206,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 115
    functionDepth: 15
    functionLinenumber: 115
    functionLinenumberEnd: 207
    functionName: clean_tracked_sparse_directories
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - for_each_string_list_item
    - strvec_push
    - fill_directory
    - strbuf_complete
    - init_sparse_checkout_patterns
    - strbuf_release
    - S_ISSPARSEDIR
    - strbuf_setlen
    - setup_standard_excludes
    - strbuf_addstr
    - parse_pathspec
    - convert_to_sparse
    - string_list_clear
    - remove_dir_recursively
    - string_list_append
    - dir_clear
    - _
    - warning
    - clear_pathspec
    - repo_file_exists
    - strvec_clear
    linkageType: ''
    returnType: void
    signature: void clean_tracked_sparse_directories(struct repository *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_index_unborn
      Src: /src/git/builtin/sparse-checkout.c:218,1
    - Dst: memset
      Src: /src/git/builtin/sparse-checkout.c:224,1
    - Dst: isatty
      Src: /src/git/builtin/sparse-checkout.c:225,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/sparse-checkout.c:232,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/sparse-checkout.c:234,1
    - Dst: setup_unpack_trees_porcelain
      Src: /src/git/builtin/sparse-checkout.c:236,1
    - Dst: update_sparsity
      Src: /src/git/builtin/sparse-checkout.c:237,1
    - Dst: clear_unpack_trees_porcelain
      Src: /src/git/builtin/sparse-checkout.c:238,1
    - Dst: write_locked_index
      Src: /src/git/builtin/sparse-checkout.c:247,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/sparse-checkout.c:249,1
    - Dst: clean_tracked_sparse_directories
      Src: /src/git/builtin/sparse-checkout.c:251,1
    - Dst: clear_pattern_list
      Src: /src/git/builtin/sparse-checkout.c:254,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/sparse-checkout.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - r
    - pl
    argTypes:
    - struct repository*
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 209
    functionDepth: 16
    functionLinenumber: 209
    functionLinenumberEnd: 260
    functionName: update_working_directory
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - update_sparsity
    - memset
    - is_index_unborn
    - setup_work_tree
    - setup_unpack_trees_porcelain
    - clear_unpack_trees_porcelain
    - write_locked_index
    - repo_hold_locked_index
    - rollback_lock_file
    - clear_pattern_list
    - clean_tracked_sparse_directories
    - isatty
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: "int update_working_directory(struct repository *r,\n\t\t\t\t    struct
      pattern_list *pl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_glob_special
      Src: /src/git/builtin/sparse-checkout.c:268,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/sparse-checkout.c:269,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/sparse-checkout.c:271,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/sparse-checkout.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 276
    functionName: escaped_pattern
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - strbuf_detach
    - is_glob_special
    - strbuf_addch
    linkageType: ''
    returnType: char
    signature: char *escaped_pattern(char *pattern)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/sparse-checkout.c:286,1
    - Dst: hashmap_get_entry
      Src: /src/git/builtin/sparse-checkout.c:287,1
    - Dst: hashmap_contains_parent
      Src: /src/git/builtin/sparse-checkout.c:290,1
    - Dst: string_list_append
      Src: /src/git/builtin/sparse-checkout.c:293,1
    - Dst: string_list_sort_u
      Src: /src/git/builtin/sparse-checkout.c:296,1
    - Dst: fprintf
      Src: /src/git/builtin/sparse-checkout.c:298,1
    - Dst: escaped_pattern
      Src: /src/git/builtin/sparse-checkout.c:301,1
    - Dst: strlen
      Src: /src/git/builtin/sparse-checkout.c:303,1
    - Dst: fprintf
      Src: /src/git/builtin/sparse-checkout.c:304,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:305,1
    - Dst: string_list_clear
      Src: /src/git/builtin/sparse-checkout.c:308,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/sparse-checkout.c:310,1
    - Dst: hashmap_contains_parent
      Src: /src/git/builtin/sparse-checkout.c:311,1
    - Dst: string_list_append
      Src: /src/git/builtin/sparse-checkout.c:314,1
    - Dst: strbuf_release
      Src: /src/git/builtin/sparse-checkout.c:317,1
    - Dst: string_list_sort_u
      Src: /src/git/builtin/sparse-checkout.c:319,1
    - Dst: escaped_pattern
      Src: /src/git/builtin/sparse-checkout.c:322,1
    - Dst: fprintf
      Src: /src/git/builtin/sparse-checkout.c:323,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:324,1
    - Dst: string_list_clear
      Src: /src/git/builtin/sparse-checkout.c:327,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - fp
    - pl
    argTypes:
    - FILE*
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 328
    functionName: write_cone_to_file
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_release
    - escaped_pattern
    - strlen
    - hashmap_get_entry
    - string_list_append
    - fprintf
    - free
    - string_list_sort_u
    - hashmap_for_each_entry
    - hashmap_contains_parent
    linkageType: ''
    returnType: void
    signature: void write_cone_to_file(FILE *fp, struct pattern_list *pl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_sparse_checkout_filename
      Src: /src/git/builtin/sparse-checkout.c:338,1
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/sparse-checkout.c:340,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:341,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:341,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/builtin/sparse-checkout.c:343,1
    - Dst: update_working_directory
      Src: /src/git/builtin/sparse-checkout.c:345,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/sparse-checkout.c:347,1
    - Dst: update_working_directory
      Src: /src/git/builtin/sparse-checkout.c:348,1
    - Dst: fdopen_lock_file
      Src: /src/git/builtin/sparse-checkout.c:352,1
    - Dst: die_errno
      Src: /src/git/builtin/sparse-checkout.c:354,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:354,1
    - Dst: get_lock_file_path
      Src: /src/git/builtin/sparse-checkout.c:354,1
    - Dst: write_cone_to_file
      Src: /src/git/builtin/sparse-checkout.c:357,1
    - Dst: write_patterns_to_file
      Src: /src/git/builtin/sparse-checkout.c:359,1
    - Dst: commit_lock_file
      Src: /src/git/builtin/sparse-checkout.c:361,1
    - Dst: die_errno
      Src: /src/git/builtin/sparse-checkout.c:362,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:362,1
    - Dst: clear_pattern_list
      Src: /src/git/builtin/sparse-checkout.c:365,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - repo
    - pl
    argTypes:
    - struct repository*
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 330
    functionDepth: 17
    functionLinenumber: 330
    functionLinenumberEnd: 368
    functionName: write_patterns_and_update
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - update_working_directory
    - hold_lock_file_for_update
    - die
    - commit_lock_file
    - write_patterns_to_file
    - get_sparse_checkout_filename
    - die_errno
    - free
    - rollback_lock_file
    - fdopen_lock_file
    - _
    - clear_pattern_list
    - write_cone_to_file
    - safe_create_leading_directories
    - get_lock_file_path
    linkageType: ''
    returnType: int
    signature: "int write_patterns_and_update(struct repository *repo,\n\t\t\t\t     struct
      pattern_list *pl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_worktree_config
      Src: /src/git/builtin/sparse-checkout.c:380,1
    - Dst: error
      Src: /src/git/builtin/sparse-checkout.c:381,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:381,1
    - Dst: repo_config_set_worktree_gently
      Src: /src/git/builtin/sparse-checkout.c:385,1
    - Dst: repo_config_set_worktree_gently
      Src: /src/git/builtin/sparse-checkout.c:388,1
    - Dst: set_sparse_index_config
      Src: /src/git/builtin/sparse-checkout.c:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - repo
    - mode
    argTypes:
    - struct repository*
    - enum sparse_checkout_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 376
    functionDepth: 12
    functionLinenumber: 376
    functionLinenumberEnd: 398
    functionName: set_config
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 2
    functionsReached:
    - error
    - repo_config_set_worktree_gently
    - init_worktree_config
    - set_sparse_index_config
    - _
    linkageType: ''
    returnType: int
    signature: "int set_config(struct repository *repo,\n\t\t      enum sparse_checkout_mode
      mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/builtin/sparse-checkout.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cone_mode
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 415
    functionName: update_cone_mode
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - repo_config_values
    linkageType: ''
    returnType: enum sparse_checkout_mode
    signature: enum sparse_checkout_mode update_cone_mode(int *cone_mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/builtin/sparse-checkout.c:420,1
    - Dst: update_cone_mode
      Src: /src/git/builtin/sparse-checkout.c:425,1
    - Dst: set_config
      Src: /src/git/builtin/sparse-checkout.c:426,1
    - Dst: set_sparse_index_config
      Src: /src/git/builtin/sparse-checkout.c:431,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:432,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:432,1
    - Dst: repo_read_index
      Src: /src/git/builtin/sparse-checkout.c:435,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/sparse-checkout.c:439,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - repo
    - cone_mode
    - sparse_index
    argTypes:
    - struct repository*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 417
    functionDepth: 10
    functionLinenumber: 417
    functionLinenumberEnd: 443
    functionName: update_modes
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - update_cone_mode
    - ensure_full_index
    - die
    - repo_read_index
    - set_sparse_index_config
    - _
    - set_config
    - repo_config_values
    linkageType: ''
    returnType: int
    signature: int update_modes(struct repository *repo, int *cone_mode, int *sparse_index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/sparse-checkout.c:464,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:465,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/sparse-checkout.c:466,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:467,1
    - Dst: OPT_END
      Src: /src/git/builtin/sparse-checkout.c:468,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/sparse-checkout.c:471,1
    - Dst: repo_read_index
      Src: /src/git/builtin/sparse-checkout.c:472,1
    - Dst: parse_options
      Src: /src/git/builtin/sparse-checkout.c:477,1
    - Dst: update_modes
      Src: /src/git/builtin/sparse-checkout.c:481,1
    - Dst: memset
      Src: /src/git/builtin/sparse-checkout.c:484,1
    - Dst: get_sparse_checkout_filename
      Src: /src/git/builtin/sparse-checkout.c:486,1
    - Dst: add_patterns_from_file_to_list
      Src: /src/git/builtin/sparse-checkout.c:487,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:491,1
    - Dst: clear_pattern_list
      Src: /src/git/builtin/sparse-checkout.c:492,1
    - Dst: update_working_directory
      Src: /src/git/builtin/sparse-checkout.c:493,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/sparse-checkout.c:496,1
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/sparse-checkout.c:500,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:501,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:501,1
    - Dst: xfopen
      Src: /src/git/builtin/sparse-checkout.c:503,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:505,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:505,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:507,1
    - Dst: fprintf
      Src: /src/git/builtin/sparse-checkout.c:508,1
    - Dst: fclose
      Src: /src/git/builtin/sparse-checkout.c:509,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:513,1
    - Dst: add_pattern
      Src: /src/git/builtin/sparse-checkout.c:515,1
    - Dst: add_pattern
      Src: /src/git/builtin/sparse-checkout.c:516,1
    - Dst: write_patterns_and_update
      Src: /src/git/builtin/sparse-checkout.c:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 455
    functionDepth: 18
    functionLinenumber: 455
    functionLinenumberEnd: 520
    functionName: sparse_checkout_init
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - fclose
    - parse_options
    - repo_get_oid
    - OPT_BOOL
    - get_sparse_checkout_filename
    - free
    - xfopen
    - update_working_directory
    - write_patterns_and_update
    - update_modes
    - OPT_END
    - die
    - repo_read_index
    - add_patterns_from_file_to_list
    - memset
    - setup_work_tree
    - _
    - clear_pattern_list
    - N_
    - add_pattern
    - safe_create_leading_directories
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int sparse_checkout_init(int argc, const char **argv, const char *prefix,\n\t\t\t\tstruct
      repository *repo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/builtin/sparse-checkout.c:524,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/sparse-checkout.c:526,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/sparse-checkout.c:527,1
    - Dst: fspathhash
      Src: /src/git/builtin/sparse-checkout.c:527,1
    - Dst: hashmap_add
      Src: /src/git/builtin/sparse-checkout.c:529,1
    - Dst: strrchr
      Src: /src/git/builtin/sparse-checkout.c:532,1
    - Dst: xmalloc
      Src: /src/git/builtin/sparse-checkout.c:541,1
    - Dst: xstrndup
      Src: /src/git/builtin/sparse-checkout.c:543,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/sparse-checkout.c:544,1
    - Dst: fspathhash
      Src: /src/git/builtin/sparse-checkout.c:544,1
    - Dst: hashmap_get_entry
      Src: /src/git/builtin/sparse-checkout.c:546,1
    - Dst: hashmap_add
      Src: /src/git/builtin/sparse-checkout.c:548,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:550,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pl
    - path
    argTypes:
    - struct pattern_list*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 522
    functionDepth: 11
    functionLinenumber: 522
    functionLinenumberEnd: 555
    functionName: insert_recursive_pattern
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - hashmap_add
    - strrchr
    - hashmap_entry_init
    - xstrndup
    - xmalloc
    - strbuf_detach
    - hashmap_get_entry
    - free
    - fspathhash
    linkageType: ''
    returnType: void
    signature: void insert_recursive_pattern(struct pattern_list *pl, struct strbuf
      *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_trim
      Src: /src/git/builtin/sparse-checkout.c:559,1
    - Dst: strbuf_trim_trailing_dir_sep
      Src: /src/git/builtin/sparse-checkout.c:561,1
    - Dst: strbuf_normalize_path
      Src: /src/git/builtin/sparse-checkout.c:563,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:564,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:564,1
    - Dst: strbuf_insertstr
      Src: /src/git/builtin/sparse-checkout.c:570,1
    - Dst: insert_recursive_pattern
      Src: /src/git/builtin/sparse-checkout.c:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - line
    - pl
    argTypes:
    - struct strbuf*
    - struct pattern_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 557
    functionDepth: 12
    functionLinenumber: 557
    functionLinenumberEnd: 573
    functionName: strbuf_to_cone_pattern
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - strbuf_normalize_path
    - strbuf_insertstr
    - die
    - insert_recursive_pattern
    - strbuf_trim
    - strbuf_trim_trailing_dir_sep
    - _
    linkageType: ''
    returnType: void
    signature: void strbuf_to_cone_pattern(struct strbuf *line, struct pattern_list
      *pl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashmap_init
      Src: /src/git/builtin/sparse-checkout.c:583,1
    - Dst: hashmap_init
      Src: /src/git/builtin/sparse-checkout.c:584,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/sparse-checkout.c:589,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/sparse-checkout.c:591,1
    - Dst: unquote_c_style
      Src: /src/git/builtin/sparse-checkout.c:592,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:593,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:593,1
    - Dst: strbuf_swap
      Src: /src/git/builtin/sparse-checkout.c:596,1
    - Dst: strbuf_to_cone_pattern
      Src: /src/git/builtin/sparse-checkout.c:599,1
    - Dst: strbuf_release
      Src: /src/git/builtin/sparse-checkout.c:602,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/sparse-checkout.c:605,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/sparse-checkout.c:606,1
    - Dst: strbuf_to_cone_pattern
      Src: /src/git/builtin/sparse-checkout.c:607,1
    - Dst: strbuf_release
      Src: /src/git/builtin/sparse-checkout.c:610,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/sparse-checkout.c:615,1
    - Dst: add_pattern
      Src: /src/git/builtin/sparse-checkout.c:616,1
    - Dst: strbuf_release
      Src: /src/git/builtin/sparse-checkout.c:618,1
    - Dst: add_pattern
      Src: /src/git/builtin/sparse-checkout.c:621,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - pl
    - argc
    - argv
    - file
    argTypes:
    - struct pattern_list*
    - int
    - char**
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 575
    functionDepth: 13
    functionLinenumber: 575
    functionLinenumberEnd: 624
    functionName: add_patterns_from_input
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - hashmap_init
    - strbuf_reset
    - strbuf_setlen
    - unquote_c_style
    - strbuf_to_cone_pattern
    - _
    - strbuf_addstr
    - strbuf_getline
    - add_pattern
    - strbuf_swap
    linkageType: ''
    returnType: void
    signature: "void add_patterns_from_input(struct pattern_list *pl,\n\t\t\t\t    int
      argc, const char **argv,\n\t\t\t\t    FILE *file)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_sparse_checkout_filename
      Src: /src/git/builtin/sparse-checkout.c:639,1
    - Dst: add_patterns_from_input
      Src: /src/git/builtin/sparse-checkout.c:641,1
    - Dst: memset
      Src: /src/git/builtin/sparse-checkout.c:644,1
    - Dst: add_patterns_from_file_to_list
      Src: /src/git/builtin/sparse-checkout.c:647,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:649,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:649,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:650,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:653,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:653,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/sparse-checkout.c:655,1
    - Dst: hashmap_contains_parent
      Src: /src/git/builtin/sparse-checkout.c:656,1
    - Dst: hashmap_contains_parent
      Src: /src/git/builtin/sparse-checkout.c:658,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/sparse-checkout.c:660,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/sparse-checkout.c:661,1
    - Dst: insert_recursive_pattern
      Src: /src/git/builtin/sparse-checkout.c:662,1
    - Dst: clear_pattern_list
      Src: /src/git/builtin/sparse-checkout.c:666,1
    - Dst: strbuf_release
      Src: /src/git/builtin/sparse-checkout.c:667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - argc
    - argv
    - pl
    - use_stdin
    argTypes:
    - int
    - char**
    - struct pattern_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 631
    functionDepth: 14
    functionLinenumber: 631
    functionLinenumberEnd: 668
    functionName: add_patterns_cone_mode
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - memset
    - clear_pattern_list
    - die
    - insert_recursive_pattern
    - strbuf_release
    - strbuf_reset
    - get_sparse_checkout_filename
    - add_patterns_from_input
    - _
    - free
    - strbuf_addstr
    - hashmap_for_each_entry
    - hashmap_contains_parent
    - add_patterns_from_file_to_list
    linkageType: ''
    returnType: void
    signature: "void add_patterns_cone_mode(int argc, const char **argv,\n\t\t\t\t
      \  struct pattern_list *pl,\n\t\t\t\t   int use_stdin)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sparse_checkout_filename
      Src: /src/git/builtin/sparse-checkout.c:674,1
    - Dst: add_patterns_from_file_to_list
      Src: /src/git/builtin/sparse-checkout.c:675,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:677,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:677,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:678,1
    - Dst: add_patterns_from_input
      Src: /src/git/builtin/sparse-checkout.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - argc
    - argv
    - pl
    - use_stdin
    argTypes:
    - int
    - char**
    - struct pattern_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 14
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: add_patterns_literal
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - die
    - get_sparse_checkout_filename
    - add_patterns_from_input
    - free
    - _
    - add_patterns_from_file_to_list
    linkageType: ''
    returnType: void
    signature: "void add_patterns_literal(int argc, const char **argv,\n\t\t\t\t struct
      pattern_list *pl,\n\t\t\t\t int use_stdin)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/builtin/sparse-checkout.c:688,1
    - Dst: repo_config_values
      Src: /src/git/builtin/sparse-checkout.c:689,1
    - Dst: add_patterns_cone_mode
      Src: /src/git/builtin/sparse-checkout.c:694,1
    - Dst: add_patterns_literal
      Src: /src/git/builtin/sparse-checkout.c:696,1
    - Dst: add_patterns_from_input
      Src: /src/git/builtin/sparse-checkout.c:700,1
    - Dst: set_config
      Src: /src/git/builtin/sparse-checkout.c:706,1
    - Dst: write_patterns_and_update
      Src: /src/git/builtin/sparse-checkout.c:711,1
    - Dst: set_config
      Src: /src/git/builtin/sparse-checkout.c:714,1
    - Dst: clear_pattern_list
      Src: /src/git/builtin/sparse-checkout.c:716,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:717,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - repo
    - args
    - use_stdin
    - m
    argTypes:
    - struct repository*
    - struct strvec*
    - int
    - enum modify_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 682
    functionDepth: 18
    functionLinenumber: 682
    functionLinenumberEnd: 719
    functionName: modify_pattern_list
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - write_patterns_and_update
    - add_patterns_cone_mode
    - free
    - add_patterns_from_input
    - xcalloc
    - clear_pattern_list
    - set_config
    - repo_config_values
    - add_patterns_literal
    linkageType: ''
    returnType: int
    signature: "int modify_pattern_list(struct repository *repo,\n\t\t\t       struct
      strvec *args, int use_stdin,\n\t\t\t       enum modify_type m)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/sparse-checkout.c:735,1
    - Dst: prefix_path
      Src: /src/git/builtin/sparse-checkout.c:738,1
    - Dst: strvec_replace
      Src: /src/git/builtin/sparse-checkout.c:740,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:741,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:749,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:749,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:754,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:754,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:756,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:756,1
    - Dst: strpbrk
      Src: /src/git/builtin/sparse-checkout.c:757,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:758,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:758,1
    - Dst: index_name_pos
      Src: /src/git/builtin/sparse-checkout.c:765,1
    - Dst: strlen
      Src: /src/git/builtin/sparse-checkout.c:765,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/builtin/sparse-checkout.c:770,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:774,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:774,1
    - Dst: warning
      Src: /src/git/builtin/sparse-checkout.c:776,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:776,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 4
    argNames:
    - repo
    - args
    - prefix
    - skip_checks
    argTypes:
    - struct repository*
    - struct strvec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 721
    functionDepth: 7
    functionLinenumber: 721
    functionLinenumberEnd: 778
    functionName: sanitize_paths
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - die
    - S_ISSPARSEDIR
    - strlen
    - warning
    - free
    - strpbrk
    - strvec_replace
    - prefix_path
    - _
    linkageType: ''
    returnType: void
    signature: "void sanitize_paths(struct repository *repo,\n\t\t\t   struct strvec
      *args,\n\t\t\t   const char *prefix, int skip_checks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/sparse-checkout.c:794,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:795,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/sparse-checkout.c:797,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:798,1
    - Dst: OPT_END
      Src: /src/git/builtin/sparse-checkout.c:799,1
    - Dst: repo_config_values
      Src: /src/git/builtin/sparse-checkout.c:803,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/sparse-checkout.c:805,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:807,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:807,1
    - Dst: repo_read_index
      Src: /src/git/builtin/sparse-checkout.c:809,1
    - Dst: parse_options
      Src: /src/git/builtin/sparse-checkout.c:811,1
    - Dst: strvec_push
      Src: /src/git/builtin/sparse-checkout.c:816,1
    - Dst: sanitize_paths
      Src: /src/git/builtin/sparse-checkout.c:817,1
    - Dst: modify_pattern_list
      Src: /src/git/builtin/sparse-checkout.c:819,1
    - Dst: strvec_clear
      Src: /src/git/builtin/sparse-checkout.c:821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 790
    functionDepth: 19
    functionLinenumber: 790
    functionLinenumberEnd: 823
    functionName: sparse_checkout_add
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_options
    - OPT_END
    - OPT_BOOL_F
    - setup_work_tree
    - die
    - repo_read_index
    - modify_pattern_list
    - OPT_BOOL
    - strvec_clear
    - _
    - N_
    - sanitize_paths
    - repo_config_values
    linkageType: ''
    returnType: int
    signature: "int sparse_checkout_add(int argc, const char **argv, const char *prefix,\n\t\t\t
      \      struct repository *repo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/sparse-checkout.c:844,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:845,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/sparse-checkout.c:846,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:847,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/sparse-checkout.c:848,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:849,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/sparse-checkout.c:851,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:852,1
    - Dst: OPT_END
      Src: /src/git/builtin/sparse-checkout.c:854,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/sparse-checkout.c:859,1
    - Dst: repo_read_index
      Src: /src/git/builtin/sparse-checkout.c:860,1
    - Dst: parse_options
      Src: /src/git/builtin/sparse-checkout.c:865,1
    - Dst: update_modes
      Src: /src/git/builtin/sparse-checkout.c:869,1
    - Dst: strvec_push
      Src: /src/git/builtin/sparse-checkout.c:879,1
    - Dst: strvec_push
      Src: /src/git/builtin/sparse-checkout.c:882,1
    - Dst: sanitize_paths
      Src: /src/git/builtin/sparse-checkout.c:883,1
    - Dst: modify_pattern_list
      Src: /src/git/builtin/sparse-checkout.c:886,1
    - Dst: strvec_clear
      Src: /src/git/builtin/sparse-checkout.c:888,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 837
    functionDepth: 19
    functionLinenumber: 837
    functionLinenumberEnd: 890
    functionName: sparse_checkout_set
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_options
    - OPT_END
    - OPT_BOOL_F
    - setup_work_tree
    - update_modes
    - repo_read_index
    - modify_pattern_list
    - OPT_BOOL
    - strvec_clear
    - sanitize_paths
    - N_
    linkageType: ''
    returnType: int
    signature: "int sparse_checkout_set(int argc, const char **argv, const char *prefix,\n\t\t\t
      \      struct repository *repo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/sparse-checkout.c:907,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:908,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/sparse-checkout.c:909,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:910,1
    - Dst: OPT_END
      Src: /src/git/builtin/sparse-checkout.c:911,1
    - Dst: repo_config_values
      Src: /src/git/builtin/sparse-checkout.c:913,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/sparse-checkout.c:915,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:917,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:917,1
    - Dst: parse_options
      Src: /src/git/builtin/sparse-checkout.c:922,1
    - Dst: repo_read_index
      Src: /src/git/builtin/sparse-checkout.c:926,1
    - Dst: update_modes
      Src: /src/git/builtin/sparse-checkout.c:928,1
    - Dst: update_working_directory
      Src: /src/git/builtin/sparse-checkout.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 902
    functionDepth: 17
    functionLinenumber: 902
    functionLinenumberEnd: 932
    functionName: sparse_checkout_reapply
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - update_working_directory
    - parse_options
    - OPT_END
    - setup_work_tree
    - die
    - update_modes
    - repo_read_index
    - OPT_BOOL
    - _
    - N_
    - repo_config_values
    linkageType: ''
    returnType: int
    signature: "int sparse_checkout_reapply(int argc, const char **argv,\n\t\t\t\t
      \  const char *prefix,\n\t\t\t\t   struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/sparse-checkout.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 945
    functionName: list_file_iterator
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int list_file_iterator(const char *path, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/sparse-checkout.c:952,1
    - Dst: for_each_file_in_dir
      Src: /src/git/builtin/sparse-checkout.c:953,1
    - Dst: strbuf_release
      Src: /src/git/builtin/sparse-checkout.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - directory
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 947
    functionDepth: 4
    functionLinenumber: 947
    functionLinenumberEnd: 955
    functionName: list_every_file_in_dir
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - for_each_file_in_dir
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void list_every_file_in_dir(const char *msg,\n\t\t\t\t   const char
      *directory)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/builtin/sparse-checkout.c:969,1
    - Dst: OPT__DRY_RUN
      Src: /src/git/builtin/sparse-checkout.c:972,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:972,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/sparse-checkout.c:973,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:973,1
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/sparse-checkout.c:974,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:974,1
    - Dst: OPT_END
      Src: /src/git/builtin/sparse-checkout.c:975,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/sparse-checkout.c:978,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:980,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:980,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:982,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:982,1
    - Dst: parse_options
      Src: /src/git/builtin/sparse-checkout.c:984,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/sparse-checkout.c:988,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:990,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:990,1
    - Dst: repo_read_index
      Src: /src/git/builtin/sparse-checkout.c:995,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:996,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:996,1
    - Dst: convert_to_sparse
      Src: /src/git/builtin/sparse-checkout.c:998,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:1000,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:1000,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/sparse-checkout.c:1002,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/sparse-checkout.c:1003,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/builtin/sparse-checkout.c:1008,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/sparse-checkout.c:1010,1
    - Dst: strbuf_add
      Src: /src/git/builtin/sparse-checkout.c:1011,1
    - Dst: is_directory
      Src: /src/git/builtin/sparse-checkout.c:1013,1
    - Dst: list_every_file_in_dir
      Src: /src/git/builtin/sparse-checkout.c:1017,1
    - Dst: printf
      Src: /src/git/builtin/sparse-checkout.c:1019,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/sparse-checkout.c:1022,1
    - Dst: warning_errno
      Src: /src/git/builtin/sparse-checkout.c:1023,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:1023,1
    - Dst: strbuf_release
      Src: /src/git/builtin/sparse-checkout.c:1026,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 960
    functionDepth: 19
    functionLinenumber: 960
    functionLinenumberEnd: 1028
    functionName: sparse_checkout_clean
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT__DRY_RUN
    - printf
    - strbuf_release
    - OPT_END
    - die
    - OPT__FORCE
    - repo_read_index
    - S_ISSPARSEDIR
    - strbuf_setlen
    - strbuf_addstr
    - repo_config_values
    - convert_to_sparse
    - setup_work_tree
    - list_every_file_in_dir
    - remove_dir_recursively
    - _
    - N_
    - OPT__VERBOSE
    - strbuf_add
    - warning_errno
    - strbuf_addch
    - repo_config_get_bool
    - is_directory
    linkageType: ''
    returnType: int
    signature: "int sparse_checkout_clean(int argc, const char **argv,\n\t\t\t\t   const
      char *prefix,\n\t\t\t\t   struct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/sparse-checkout.c:1040,1
    - Dst: repo_config_values
      Src: /src/git/builtin/sparse-checkout.c:1043,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/sparse-checkout.c:1056,1
    - Dst: parse_options
      Src: /src/git/builtin/sparse-checkout.c:1057,1
    - Dst: repo_read_index
      Src: /src/git/builtin/sparse-checkout.c:1066,1
    - Dst: memset
      Src: /src/git/builtin/sparse-checkout.c:1068,1
    - Dst: hashmap_init
      Src: /src/git/builtin/sparse-checkout.c:1069,1
    - Dst: hashmap_init
      Src: /src/git/builtin/sparse-checkout.c:1070,1
    - Dst: add_pattern
      Src: /src/git/builtin/sparse-checkout.c:1074,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/sparse-checkout.c:1076,1
    - Dst: update_working_directory
      Src: /src/git/builtin/sparse-checkout.c:1079,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:1080,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:1080,1
    - Dst: clear_pattern_list
      Src: /src/git/builtin/sparse-checkout.c:1082,1
    - Dst: set_config
      Src: /src/git/builtin/sparse-checkout.c:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1035
    functionDepth: 21
    functionLinenumber: 1035
    functionLinenumberEnd: 1084
    functionName: sparse_checkout_disable
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - update_working_directory
    - parse_options
    - OPT_END
    - setup_work_tree
    - memset
    - die
    - repo_read_index
    - hashmap_init
    - prepare_repo_settings
    - _
    - clear_pattern_list
    - set_config
    - repo_config_values
    - add_pattern
    linkageType: ''
    returnType: int
    signature: "int sparse_checkout_disable(int argc, const char **argv,\n\t\t\t\t
      \  const char *prefix,\n\t\t\t\t   struct repository *repo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getline_fn
      Src: /src/git/builtin/sparse-checkout.c:1109,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/sparse-checkout.c:1112,1
    - Dst: unquote_c_style
      Src: /src/git/builtin/sparse-checkout.c:1113,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:1114,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:1114,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/sparse-checkout.c:1120,1
    - Dst: write_name_quoted
      Src: /src/git/builtin/sparse-checkout.c:1121,1
    - Dst: strbuf_release
      Src: /src/git/builtin/sparse-checkout.c:1123,1
    - Dst: strbuf_release
      Src: /src/git/builtin/sparse-checkout.c:1124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - repo
    - pl
    - null_terminated
    argTypes:
    - struct repository*
    - struct pattern_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1098
    functionDepth: 7
    functionLinenumber: 1098
    functionLinenumberEnd: 1127
    functionName: check_rules
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - strbuf_reset
    - write_name_quoted
    - getline_fn
    - unquote_c_style
    - path_in_sparse_checkout
    - _
    linkageType: ''
    returnType: int
    signature: "int check_rules(struct repository *repo,\n\t\t       struct pattern_list
      *pl,\n\t\t       int null_terminated)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/sparse-checkout.c:1133,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:1134,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/sparse-checkout.c:1135,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:1136,1
    - Dst: OPT_FILENAME
      Src: /src/git/builtin/sparse-checkout.c:1137,1
    - Dst: N_
      Src: /src/git/builtin/sparse-checkout.c:1138,1
    - Dst: OPT_END
      Src: /src/git/builtin/sparse-checkout.c:1139,1
    - Dst: parse_options
      Src: /src/git/builtin/sparse-checkout.c:1148,1
    - Dst: update_cone_mode
      Src: /src/git/builtin/sparse-checkout.c:1155,1
    - Dst: xfopen
      Src: /src/git/builtin/sparse-checkout.c:1158,1
    - Dst: add_patterns_from_input
      Src: /src/git/builtin/sparse-checkout.c:1159,1
    - Dst: fclose
      Src: /src/git/builtin/sparse-checkout.c:1160,1
    - Dst: get_sparse_checkout_filename
      Src: /src/git/builtin/sparse-checkout.c:1162,1
    - Dst: add_patterns_from_file_to_list
      Src: /src/git/builtin/sparse-checkout.c:1163,1
    - Dst: die
      Src: /src/git/builtin/sparse-checkout.c:1165,1
    - Dst: _
      Src: /src/git/builtin/sparse-checkout.c:1165,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:1166,1
    - Dst: check_rules
      Src: /src/git/builtin/sparse-checkout.c:1169,1
    - Dst: clear_pattern_list
      Src: /src/git/builtin/sparse-checkout.c:1170,1
    - Dst: free
      Src: /src/git/builtin/sparse-checkout.c:1171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1129
    functionDepth: 14
    functionLinenumber: 1129
    functionLinenumberEnd: 1173
    functionName: sparse_checkout_check_rules
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - update_cone_mode
    - fclose
    - OPT_FILENAME
    - OPT_END
    - parse_options
    - die
    - clear_pattern_list
    - OPT_BOOL
    - get_sparse_checkout_filename
    - free
    - add_patterns_from_input
    - _
    - N_
    - check_rules
    - xfopen
    - add_patterns_from_file_to_list
    linkageType: ''
    returnType: int
    signature: "int sparse_checkout_check_rules(int argc, const char **argv, const
      char *prefix,\n\t\t\t\t       struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/sparse-checkout.c:1182,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/sparse-checkout.c:1183,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/sparse-checkout.c:1184,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/sparse-checkout.c:1185,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/sparse-checkout.c:1186,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/sparse-checkout.c:1187,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/sparse-checkout.c:1188,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/sparse-checkout.c:1189,1
    - Dst: OPT_END
      Src: /src/git/builtin/sparse-checkout.c:1190,1
    - Dst: parse_options
      Src: /src/git/builtin/sparse-checkout.c:1193,1
    - Dst: repo_config
      Src: /src/git/builtin/sparse-checkout.c:1197,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/sparse-checkout.c:1199,1
    - Dst: fn
      Src: /src/git/builtin/sparse-checkout.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1175
    functionDepth: 21
    functionLinenumber: 1175
    functionLinenumberEnd: 1203
    functionName: cmd_sparse_checkout
    functionSourceFile: /src/git/builtin/sparse-checkout.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - fn
    - prepare_repo_settings
    - OPT_SUBCOMMAND
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_sparse_checkout(int argc,\n\t\t\tconst char **argv,\n\t\t\tconst
      char *prefix,\n\t\t\tstruct repository *repo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_config
      Src: /src/git/builtin/credential.c:20,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/credential.c:22,1
    - Dst: usage
      Src: /src/git/builtin/credential.c:24,1
    - Dst: strcmp
      Src: /src/git/builtin/credential.c:27,1
    - Dst: credential_set_all_capabilities
      Src: /src/git/builtin/credential.c:28,1
    - Dst: credential_announce_capabilities
      Src: /src/git/builtin/credential.c:29,1
    - Dst: credential_read
      Src: /src/git/builtin/credential.c:33,1
    - Dst: die
      Src: /src/git/builtin/credential.c:34,1
    - Dst: strcmp
      Src: /src/git/builtin/credential.c:36,1
    - Dst: credential_fill
      Src: /src/git/builtin/credential.c:37,1
    - Dst: credential_next_state
      Src: /src/git/builtin/credential.c:38,1
    - Dst: credential_write
      Src: /src/git/builtin/credential.c:39,1
    - Dst: strcmp
      Src: /src/git/builtin/credential.c:40,1
    - Dst: credential_set_all_capabilities
      Src: /src/git/builtin/credential.c:41,1
    - Dst: credential_approve
      Src: /src/git/builtin/credential.c:42,1
    - Dst: strcmp
      Src: /src/git/builtin/credential.c:43,1
    - Dst: credential_set_all_capabilities
      Src: /src/git/builtin/credential.c:44,1
    - Dst: credential_reject
      Src: /src/git/builtin/credential.c:45,1
    - Dst: usage
      Src: /src/git/builtin/credential.c:47,1
    - Dst: credential_clear
      Src: /src/git/builtin/credential.c:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 12
    functionDepth: 19
    functionLinenumber: 12
    functionLinenumberEnd: 52
    functionName: cmd_credential
    functionSourceFile: /src/git/builtin/credential.c
    functionUses: 0
    functionsReached:
    - credential_approve
    - credential_announce_capabilities
    - die
    - credential_write
    - show_usage_if_asked
    - usage
    - credential_fill
    - credential_next_state
    - credential_clear
    - credential_set_all_capabilities
    - credential_reject
    - strcmp
    - credential_read
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_credential(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix UNUSED,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex
      Src: /src/git/builtin/fetch-pack.c:27,1
    - Dst: oidclr
      Src: /src/git/builtin/fetch-pack.c:35,1
    - Dst: oidclr
      Src: /src/git/builtin/fetch-pack.c:39,1
    - Dst: alloc_ref
      Src: /src/git/builtin/fetch-pack.c:42,1
    - Dst: oidcpy
      Src: /src/git/builtin/fetch-pack.c:43,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/fetch-pack.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - sought
    - nr
    - alloc
    - name
    argTypes:
    - struct ref***
    - int*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 20
    functionDepth: 9
    functionLinenumber: 20
    functionLinenumberEnd: 47
    functionName: add_sought_entry
    functionSourceFile: /src/git/builtin/fetch-pack.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - oidclr
    - parse_oid_hex
    - ALLOC_GROW
    - alloc_ref
    linkageType: ''
    returnType: void
    signature: "void add_sought_entry(struct ref ***sought, int *nr, int *alloc,\n\t\t\t
      \    const char *name)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: packet_trace_identity
      Src: /src/git/builtin/fetch-pack.c:72,1
    - Dst: memset
      Src: /src/git/builtin/fetch-pack.c:74,1
    - Dst: list_objects_filter_init
      Src: /src/git/builtin/fetch-pack.c:75,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/fetch-pack.c:78,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch-pack.c:83,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch-pack.c:87,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:91,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:91,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:95,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:95,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:100,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:104,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:108,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:112,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:116,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:120,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch-pack.c:124,1
    - Dst: strtol
      Src: /src/git/builtin/fetch-pack.c:125,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch-pack.c:128,1
    - Dst: xstrdup
      Src: /src/git/builtin/fetch-pack.c:129,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch-pack.c:132,1
    - Dst: string_list_append
      Src: /src/git/builtin/fetch-pack.c:133,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:136,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:140,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:144,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:148,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:153,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:157,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:161,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:165,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:169,1
    - Dst: skip_prefix
      Src: /src/git/builtin/fetch-pack.c:173,1
    - Dst: parse_list_objects_filter
      Src: /src/git/builtin/fetch-pack.c:174,1
    - Dst: strcmp
      Src: /src/git/builtin/fetch-pack.c:177,1
    - Dst: list_objects_filter_set_no_filter
      Src: /src/git/builtin/fetch-pack.c:178,1
    - Dst: usage
      Src: /src/git/builtin/fetch-pack.c:181,1
    - Dst: usage
      Src: /src/git/builtin/fetch-pack.c:189,1
    - Dst: add_sought_entry
      Src: /src/git/builtin/fetch-pack.c:196,1
    - Dst: packet_read_line
      Src: /src/git/builtin/fetch-pack.c:203,1
    - Dst: add_sought_entry
      Src: /src/git/builtin/fetch-pack.c:206,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/fetch-pack.c:212,1
    - Dst: add_sought_entry
      Src: /src/git/builtin/fetch-pack.c:213,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fetch-pack.c:214,1
    - Dst: git_connect
      Src: /src/git/builtin/fetch-pack.c:226,1
    - Dst: packet_reader_init
      Src: /src/git/builtin/fetch-pack.c:232,1
    - Dst: discover_version
      Src: /src/git/builtin/fetch-pack.c:237,1
    - Dst: get_remote_refs
      Src: /src/git/builtin/fetch-pack.c:240,1
    - Dst: get_remote_heads
      Src: /src/git/builtin/fetch-pack.c:245,1
    - Dst: BUG
      Src: /src/git/builtin/fetch-pack.c:248,1
    - Dst: DUP_ARRAY
      Src: /src/git/builtin/fetch-pack.c:256,1
    - Dst: fetch_pack
      Src: /src/git/builtin/fetch-pack.c:258,1
    - Dst: printf
      Src: /src/git/builtin/fetch-pack.c:264,1
    - Dst: fflush
      Src: /src/git/builtin/fetch-pack.c:265,1
    - Dst: warning
      Src: /src/git/builtin/fetch-pack.c:267,1
    - Dst: _
      Src: /src/git/builtin/fetch-pack.c:267,1
    - Dst: printf
      Src: /src/git/builtin/fetch-pack.c:272,1
    - Dst: fflush
      Src: /src/git/builtin/fetch-pack.c:273,1
    - Dst: close
      Src: /src/git/builtin/fetch-pack.c:275,1
    - Dst: close
      Src: /src/git/builtin/fetch-pack.c:276,1
    - Dst: finish_connect
      Src: /src/git/builtin/fetch-pack.c:277,1
    - Dst: report_unmatched_refs
      Src: /src/git/builtin/fetch-pack.c:290,1
    - Dst: printf
      Src: /src/git/builtin/fetch-pack.c:293,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fetch-pack.c:294,1
    - Dst: free_one_ref
      Src: /src/git/builtin/fetch-pack.c:298,1
    - Dst: free
      Src: /src/git/builtin/fetch-pack.c:299,1
    - Dst: free
      Src: /src/git/builtin/fetch-pack.c:300,1
    - Dst: free_refs
      Src: /src/git/builtin/fetch-pack.c:301,1
    - Dst: free_refs
      Src: /src/git/builtin/fetch-pack.c:302,1
    - Dst: list_objects_filter_release
      Src: /src/git/builtin/fetch-pack.c:303,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/fetch-pack.c:304,1
    - Dst: string_list_clear
      Src: /src/git/builtin/fetch-pack.c:305,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 187
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 49
    functionDepth: 23
    functionLinenumber: 49
    functionLinenumberEnd: 307
    functionName: cmd_fetch_pack
    functionSourceFile: /src/git/builtin/fetch-pack.c
    functionUses: 0
    functionsReached:
    - packet_read_line
    - free_one_ref
    - packet_trace_identity
    - list_objects_filter_set_no_filter
    - strcmp
    - free
    - list_objects_filter_release
    - printf
    - finish_connect
    - strbuf_release
    - strbuf_getline_lf
    - add_sought_entry
    - get_remote_refs
    - parse_list_objects_filter
    - oid_array_clear
    - list_objects_filter_init
    - get_remote_heads
    - fetch_pack
    - strtol
    - discover_version
    - string_list_clear
    - memset
    - oid_to_hex
    - fflush
    - string_list_append
    - _
    - skip_prefix
    - warning
    - report_unmatched_refs
    - xstrdup
    - show_usage_if_asked
    - usage
    - packet_reader_init
    - free_refs
    - git_connect
    - close
    - DUP_ARRAY
    - BUG
    linkageType: ''
    returnType: int
    signature: "int cmd_fetch_pack(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix UNUSED,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/hook.c:43,1
    - Dst: N_
      Src: /src/git/builtin/hook.c:44,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/hook.c:45,1
    - Dst: N_
      Src: /src/git/builtin/hook.c:46,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/hook.c:47,1
    - Dst: N_
      Src: /src/git/builtin/hook.c:48,1
    - Dst: OPT_END
      Src: /src/git/builtin/hook.c:49,1
    - Dst: parse_options
      Src: /src/git/builtin/hook.c:52,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/hook.c:60,1
    - Dst: _
      Src: /src/git/builtin/hook.c:60,1
    - Dst: is_known_hook
      Src: /src/git/builtin/hook.c:65,1
    - Dst: error
      Src: /src/git/builtin/hook.c:66,1
    - Dst: _
      Src: /src/git/builtin/hook.c:66,1
    - Dst: list_hooks
      Src: /src/git/builtin/hook.c:72,1
    - Dst: warning
      Src: /src/git/builtin/hook.c:75,1
    - Dst: _
      Src: /src/git/builtin/hook.c:75,1
    - Dst: printf
      Src: /src/git/builtin/hook.c:85,1
    - Dst: _
      Src: /src/git/builtin/hook.c:85,1
    - Dst: config_scope_name
      Src: /src/git/builtin/hook.c:90,1
    - Dst: printf
      Src: /src/git/builtin/hook.c:102,1
    - Dst: printf
      Src: /src/git/builtin/hook.c:105,1
    - Dst: BUG
      Src: /src/git/builtin/hook.c:110,1
    - Dst: string_list_clear_func
      Src: /src/git/builtin/hook.c:115,1
    - Dst: free
      Src: /src/git/builtin/hook.c:116,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 27
    functionDepth: 13
    functionLinenumber: 27
    functionLinenumberEnd: 118
    functionName: list
    functionSourceFile: /src/git/builtin/hook.c
    functionUses: 154
    functionsReached:
    - is_known_hook
    - usage_msg_opt
    - parse_options
    - OPT_END
    - error
    - string_list_clear_func
    - OPT_SET_INT
    - OPT_BOOL
    - free
    - list_hooks
    - config_scope_name
    - _
    - N_
    - warning
    - BUG
    - printf
    linkageType: ''
    returnType: int
    signature: "int list(int argc, const char **argv, const char *prefix,\n\t\t struct
      repository *repo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/hook.c:85,1
    - Dst: _
      Src: /src/git/builtin/hook.c:85,1
    - Dst: config_scope_name
      Src: /src/git/builtin/hook.c:90,1
    - Dst: printf
      Src: /src/git/builtin/hook.c:102,1
    - Dst: printf
      Src: /src/git/builtin/hook.c:105,1
    - Dst: BUG
      Src: /src/git/builtin/hook.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 112
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/builtin/hook.c
    functionUses: 76
    functionsReached:
    - BUG
    - printf
    - config_scope_name
    - _
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, head)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/hook.c:130,1
    - Dst: N_
      Src: /src/git/builtin/hook.c:131,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/hook.c:132,1
    - Dst: N_
      Src: /src/git/builtin/hook.c:133,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/hook.c:134,1
    - Dst: N_
      Src: /src/git/builtin/hook.c:134,1
    - Dst: N_
      Src: /src/git/builtin/hook.c:135,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/hook.c:136,1
    - Dst: N_
      Src: /src/git/builtin/hook.c:137,1
    - Dst: OPT_END
      Src: /src/git/builtin/hook.c:138,1
    - Dst: parse_options
      Src: /src/git/builtin/hook.c:142,1
    - Dst: online_cpus
      Src: /src/git/builtin/hook.c:147,1
    - Dst: die
      Src: /src/git/builtin/hook.c:149,1
    - Dst: _
      Src: /src/git/builtin/hook.c:149,1
    - Dst: strcmp
      Src: /src/git/builtin/hook.c:162,1
    - Dst: strcmp
      Src: /src/git/builtin/hook.c:163,1
    - Dst: strvec_push
      Src: /src/git/builtin/hook.c:168,1
    - Dst: repo_config
      Src: /src/git/builtin/hook.c:171,1
    - Dst: is_known_hook
      Src: /src/git/builtin/hook.c:175,1
    - Dst: error
      Src: /src/git/builtin/hook.c:176,1
    - Dst: _
      Src: /src/git/builtin/hook.c:176,1
    - Dst: run_hooks_opt
      Src: /src/git/builtin/hook.c:184,1
    - Dst: usage_with_options
      Src: /src/git/builtin/hook.c:189,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 120
    functionDepth: 19
    functionLinenumber: 120
    functionLinenumberEnd: 190
    functionName: run
    functionSourceFile: /src/git/builtin/hook.c
    functionUses: 8
    functionsReached:
    - is_known_hook
    - strvec_push
    - parse_options
    - OPT_END
    - die
    - error
    - online_cpus
    - usage_with_options
    - OPT_BOOL
    - OPT_STRING
    - strcmp
    - run_hooks_opt
    - _
    - N_
    - repo_config
    - OPT_INTEGER
    linkageType: ''
    returnType: int
    signature: "int run(int argc, const char **argv, const char *prefix,\n\t       struct
      repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/hook.c:199,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/hook.c:200,1
    - Dst: OPT_END
      Src: /src/git/builtin/hook.c:201,1
    - Dst: parse_options
      Src: /src/git/builtin/hook.c:204,1
    - Dst: fn
      Src: /src/git/builtin/hook.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 192
    functionDepth: 13
    functionLinenumber: 192
    functionLinenumberEnd: 208
    functionName: cmd_hook
    functionSourceFile: /src/git/builtin/hook.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - parse_options
    - OPT_SUBCOMMAND
    - fn
    linkageType: ''
    returnType: int
    signature: "int cmd_hook(int argc,\n\t     const char **argv,\n\t     const char
      *prefix,\n\t     struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/rev-list.c:99,1
    - Dst: free
      Src: /src/git/builtin/rev-list.c:101,1
    - Dst: free
      Src: /src/git/builtin/rev-list.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: missing_objects_map_entry_free
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - container_of
    - free
    linkageType: ''
    returnType: void
    signature: void missing_objects_map_entry_free(void *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/rev-list.c:132,1
    - Dst: die
      Src: /src/git/builtin/rev-list.c:134,1
    - Dst: _
      Src: /src/git/builtin/rev-list.c:134,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 11
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: get_object_disk_usage
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info_extended
    - oid_to_hex
    - die
    - _
    linkageType: ''
    returnType: off_t
    signature: off_t get_object_disk_usage(struct object *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidmap_get
      Src: /src/git/builtin/rev-list.c:143,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/rev-list.c:146,1
    - Dst: xstrdup
      Src: /src/git/builtin/rev-list.c:150,1
    - Dst: oidmap_put
      Src: /src/git/builtin/rev-list.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - oid
    - path
    - type
    argTypes:
    - struct object_id*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 6
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: add_missing_object_entry
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - oidmap_get
    - oidmap_put
    - xstrdup
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void add_missing_object_entry(struct object_id *oid, const char *path,\n\t\t\t\t
      \    unsigned type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:160,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:160,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:162,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:162,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:166,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rev-list.c:171,1
    - Dst: quote_path
      Src: /src/git/builtin/rev-list.c:176,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/rev-list.c:177,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-list.c:179,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/rev-list.c:181,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rev-list.c:185,1
    - Dst: type_name
      Src: /src/git/builtin/rev-list.c:185,1
    - Dst: fwrite
      Src: /src/git/builtin/rev-list.c:187,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:188,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-list.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - entry
    - print_missing_info
    argTypes:
    - struct missing_objects_map_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 191
    functionName: print_missing_object
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - putchar
    - oid_to_hex
    - strbuf_release
    - fwrite
    - strbuf_addf
    - quote_path
    - strbuf_addbuf
    - strbuf_addstr
    - type_name
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_missing_object(struct missing_objects_map_entry *entry,\n\t\t\t\t
      int print_missing_info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/rev-list.c:203,1
    - Dst: type_name
      Src: /src/git/builtin/rev-list.c:204,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:204,1
    - Dst: add_missing_object_entry
      Src: /src/git/builtin/rev-list.c:212,1
    - Dst: is_promisor_object
      Src: /src/git/builtin/rev-list.c:216,1
    - Dst: die
      Src: /src/git/builtin/rev-list.c:218,1
    - Dst: type_name
      Src: /src/git/builtin/rev-list.c:219,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:219,1
    - Dst: BUG
      Src: /src/git/builtin/rev-list.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - struct object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 193
    functionDepth: 11
    functionLinenumber: 193
    functionLinenumberEnd: 226
    functionName: finish_object__ma
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - is_promisor_object
    - add_missing_object_entry
    - type_name
    - BUG
    linkageType: ''
    returnType: void
    signature: void finish_object__ma(struct object *obj, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_free
      Src: /src/git/builtin/rev-list.c:230,1
    - Dst: free_commit_buffer
      Src: /src/git/builtin/rev-list.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: finish_commit
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - free_commit_buffer
    - commit_list_free
    linkageType: ''
    returnType: void
    signature: void finish_commit(struct commit *commit)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/builtin/rev-list.c:241,1
    - Dst: oidset_contains
      Src: /src/git/builtin/rev-list.c:244,1
    - Dst: finish_object__ma
      Src: /src/git/builtin/rev-list.c:245,1
    - Dst: get_object_disk_usage
      Src: /src/git/builtin/rev-list.c:250,1
    - Dst: finish_commit
      Src: /src/git/builtin/rev-list.c:253,1
    - Dst: graph_show_commit
      Src: /src/git/builtin/rev-list.c:257,1
    - Dst: finish_commit
      Src: /src/git/builtin/rev-list.c:266,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:271,1
    - Dst: fputs
      Src: /src/git/builtin/rev-list.c:273,1
    - Dst: fputs
      Src: /src/git/builtin/rev-list.c:277,1
    - Dst: get_revision_mark
      Src: /src/git/builtin/rev-list.c:277,1
    - Dst: fputs
      Src: /src/git/builtin/rev-list.c:279,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/rev-list.c:279,1
    - Dst: fputs
      Src: /src/git/builtin/rev-list.c:282,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:282,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:286,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:292,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:292,1
    - Dst: lookup_decoration
      Src: /src/git/builtin/rev-list.c:299,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:301,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:301,1
    - Dst: show_decorations
      Src: /src/git/builtin/rev-list.c:305,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:307,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:309,1
    - Dst: get_log_output_encoding
      Src: /src/git/builtin/rev-list.c:318,1
    - Dst: pretty_print_commit
      Src: /src/git/builtin/rev-list.c:321,1
    - Dst: graph_show_oneline
      Src: /src/git/builtin/rev-list.c:324,1
    - Dst: graph_show_commit_msg
      Src: /src/git/builtin/rev-list.c:326,1
    - Dst: graph_show_padding
      Src: /src/git/builtin/rev-list.c:344,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:345,1
    - Dst: graph_show_remainder
      Src: /src/git/builtin/rev-list.c:352,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:353,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:355,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-list.c:357,1
    - Dst: graph_show_remainder
      Src: /src/git/builtin/rev-list.c:359,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:360,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/rev-list.c:362,1
    - Dst: finish_commit
      Src: /src/git/builtin/rev-list.c:363,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 84
    argCount: 2
    argNames:
    - commit
    - data
    argTypes:
    - struct commit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 236
    functionDepth: 15
    functionLinenumber: 236
    functionLinenumberEnd: 364
    functionName: show_commit
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 5
    functionsReached:
    - putchar
    - fputs
    - finish_commit
    - finish_object__ma
    - printf
    - strbuf_release
    - pretty_print_commit
    - graph_show_commit_msg
    - graph_show_commit
    - lookup_decoration
    - get_object_disk_usage
    - maybe_flush_or_die
    - get_revision_mark
    - oid_to_hex
    - graph_show_remainder
    - show_decorations
    - graph_show_oneline
    - graph_show_padding
    - oidset_contains
    - get_log_output_encoding
    - display_progress
    - repo_find_unique_abbrev
    linkageType: ''
    returnType: void
    signature: void show_commit(struct commit *commit, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/rev-list.c:369,1
    - Dst: finish_object__ma
      Src: /src/git/builtin/rev-list.c:371,1
    - Dst: parse_object
      Src: /src/git/builtin/rev-list.c:375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - obj
    - name
    - cb_data
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 366
    functionDepth: 12
    functionLinenumber: 366
    functionLinenumberEnd: 377
    functionName: finish_object
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info_extended
    - parse_object
    - finish_object__ma
    linkageType: ''
    returnType: int
    signature: int finish_object(struct object *obj, const char *name, void *cb_data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: finish_object
      Src: /src/git/builtin/rev-list.c:384,1
    - Dst: display_progress
      Src: /src/git/builtin/rev-list.c:386,1
    - Dst: get_object_disk_usage
      Src: /src/git/builtin/rev-list.c:388,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:404,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:404,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:408,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:410,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:412,1
    - Dst: putchar
      Src: /src/git/builtin/rev-list.c:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - obj
    - name
    - cb_data
    argTypes:
    - struct object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 379
    functionDepth: 13
    functionLinenumber: 379
    functionLinenumberEnd: 417
    functionName: show_object
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 6
    functionsReached:
    - finish_object
    - putchar
    - oid_to_hex
    - display_progress
    - get_object_disk_usage
    - printf
    linkageType: ''
    returnType: void
    signature: void show_object(struct object *obj, const char *name, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:421,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: show_edge
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 3
    functionsReached:
    - oid_to_hex
    - printf
    linkageType: ''
    returnType: void
    signature: void show_edge(struct commit *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - var
    - val
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: print_var_str
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_var_str(const char *var, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - var
    - val
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: print_var_int
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_var_int(const char *var, int val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: filter_skipped
      Src: /src/git/builtin/rev-list.c:444,1
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/rev-list.c:462,1
    - Dst: traverse_commit_list
      Src: /src/git/builtin/rev-list.c:465,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:466,1
    - Dst: print_var_str
      Src: /src/git/builtin/rev-list.c:469,1
    - Dst: print_var_int
      Src: /src/git/builtin/rev-list.c:470,1
    - Dst: print_var_int
      Src: /src/git/builtin/rev-list.c:471,1
    - Dst: print_var_int
      Src: /src/git/builtin/rev-list.c:472,1
    - Dst: print_var_int
      Src: /src/git/builtin/rev-list.c:473,1
    - Dst: print_var_int
      Src: /src/git/builtin/rev-list.c:474,1
    - Dst: estimate_bisect_steps
      Src: /src/git/builtin/rev-list.c:474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - info
    - reaches
    - all
    argTypes:
    - struct rev_list_info*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 477
    functionName: show_bisect_vars
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - print_var_int
    - oid_to_hex_r
    - traverse_commit_list
    - print_var_str
    - estimate_bisect_steps
    - filter_skipped
    - printf
    linkageType: ''
    returnType: int
    signature: int show_bisect_vars(struct rev_list_info *info, int reaches, int all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/builtin/rev-list.c:488,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - oid
    - UNUSED
    - exclude
    - name_hash
    - found_pack
    - found_offset
    - payload
    argTypes:
    - struct object_id*
    - enum object_type
    - int
    - uint32_t
    - struct packed_git*
    - off_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 490
    functionName: show_object_fast
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int show_object_fast(\n\tconst struct object_id *oid,\n\tenum object_type
      type UNUSED,\n\tint exclude UNUSED,\n\tuint32_t name_hash UNUSED,\n\tstruct
      packed_git *found_pack UNUSED,\n\toff_t found_offset UNUSED,\n\tvoid *payload
      UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_humanise_bytes
      Src: /src/git/builtin/rev-list.c:496,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/rev-list.c:498,1
    - Dst: puts
      Src: /src/git/builtin/rev-list.c:499,1
    - Dst: strbuf_release
      Src: /src/git/builtin/rev-list.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 492
    functionDepth: 4
    functionLinenumber: 492
    functionLinenumberEnd: 501
    functionName: print_disk_usage
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - strbuf_humanise_bytes
    - strbuf_release
    - strbuf_addf
    - puts
    linkageType: ''
    returnType: void
    signature: void print_disk_usage(off_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:505,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:510,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:516,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:522,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:528,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 535
    functionName: parse_missing_action_value
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_missing_action_value(const char *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_walk
      Src: /src/git/builtin/rev-list.c:573,1
    - Dst: count_bitmap_commit_list
      Src: /src/git/builtin/rev-list.c:577,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:584,1
    - Dst: free_bitmap_index
      Src: /src/git/builtin/rev-list.c:585,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 2
    argNames:
    - revs
    - filter_provided_objects
    argTypes:
    - struct rev_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 537
    functionDepth: 16
    functionLinenumber: 537
    functionLinenumberEnd: 587
    functionName: try_bitmap_count
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - prepare_bitmap_walk
    - printf
    - free_bitmap_index
    - count_bitmap_commit_list
    linkageType: ''
    returnType: int
    signature: "int try_bitmap_count(struct rev_info *revs,\n\t\t\t    int filter_provided_objects)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_walk
      Src: /src/git/builtin/rev-list.c:608,1
    - Dst: traverse_bitmap_commit_list
      Src: /src/git/builtin/rev-list.c:612,1
    - Dst: free_bitmap_index
      Src: /src/git/builtin/rev-list.c:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - revs
    - filter_provided_objects
    argTypes:
    - struct rev_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 589
    functionDepth: 16
    functionLinenumber: 589
    functionLinenumberEnd: 615
    functionName: try_bitmap_traversal
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - free_bitmap_index
    - prepare_bitmap_walk
    - traverse_bitmap_commit_list
    linkageType: ''
    returnType: int
    signature: "int try_bitmap_traversal(struct rev_info *revs,\n\t\t\t\tint filter_provided_objects)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepare_bitmap_walk
      Src: /src/git/builtin/rev-list.c:626,1
    - Dst: get_disk_usage_from_bitmap
      Src: /src/git/builtin/rev-list.c:630,1
    - Dst: print_disk_usage
      Src: /src/git/builtin/rev-list.c:631,1
    - Dst: free_bitmap_index
      Src: /src/git/builtin/rev-list.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - revs
    - filter_provided_objects
    argTypes:
    - struct rev_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 617
    functionDepth: 16
    functionLinenumber: 617
    functionLinenumberEnd: 635
    functionName: try_bitmap_disk_usage
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - print_disk_usage
    - free_bitmap_index
    - prepare_bitmap_walk
    - get_disk_usage_from_bitmap
    linkageType: ''
    returnType: int
    signature: "int try_bitmap_disk_usage(struct rev_info *revs,\n\t\t\t\t int filter_provided_objects)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reduce_heads_replace
      Src: /src/git/builtin/rev-list.c:686,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 11
    argCount: 1
    argNames:
    - revs
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 644
    functionDepth: 25
    functionLinenumber: 644
    functionLinenumberEnd: 690
    functionName: prepare_maximal_independent
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - reduce_heads_replace
    linkageType: ''
    returnType: void
    signature: void prepare_maximal_independent(struct rev_info *revs)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/rev-list.c:711,1
    - Dst: repo_config
      Src: /src/git/builtin/rev-list.c:713,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/rev-list.c:714,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:747,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-list.c:750,1
    - Dst: parse_missing_action_value
      Src: /src/git/builtin/rev-list.c:751,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:752,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/rev-list.c:758,1
    - Dst: setup_revisions
      Src: /src/git/builtin/rev-list.c:765,1
    - Dst: memset
      Src: /src/git/builtin/rev-list.c:767,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:777,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:781,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:785,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:789,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:796,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:801,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:805,1
    - Dst: test_bitmap_walk
      Src: /src/git/builtin/rev-list.c:806,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-list.c:809,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:813,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:817,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:822,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-list.c:824,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:827,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:832,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:837,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:842,1
    - Dst: skip_prefix
      Src: /src/git/builtin/rev-list.c:847,1
    - Dst: strcmp
      Src: /src/git/builtin/rev-list.c:849,1
    - Dst: die
      Src: /src/git/builtin/rev-list.c:852,1
    - Dst: _
      Src: /src/git/builtin/rev-list.c:852,1
    - Dst: usage
      Src: /src/git/builtin/rev-list.c:860,1
    - Dst: usage
      Src: /src/git/builtin/rev-list.c:867,1
    - Dst: die
      Src: /src/git/builtin/rev-list.c:881,1
    - Dst: _
      Src: /src/git/builtin/rev-list.c:881,1
    - Dst: reflog_walk_empty
      Src: /src/git/builtin/rev-list.c:898,1
    - Dst: usage
      Src: /src/git/builtin/rev-list.c:903,1
    - Dst: die
      Src: /src/git/builtin/rev-list.c:906,1
    - Dst: _
      Src: /src/git/builtin/rev-list.c:906,1
    - Dst: die
      Src: /src/git/builtin/rev-list.c:911,1
    - Dst: _
      Src: /src/git/builtin/rev-list.c:911,1
    - Dst: start_delayed_progress
      Src: /src/git/builtin/rev-list.c:920,1
    - Dst: try_bitmap_count
      Src: /src/git/builtin/rev-list.c:924,1
    - Dst: try_bitmap_disk_usage
      Src: /src/git/builtin/rev-list.c:926,1
    - Dst: try_bitmap_traversal
      Src: /src/git/builtin/rev-list.c:928,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/rev-list.c:932,1
    - Dst: die
      Src: /src/git/builtin/rev-list.c:933,1
    - Dst: prepare_maximal_independent
      Src: /src/git/builtin/rev-list.c:935,1
    - Dst: mark_edges_uninteresting
      Src: /src/git/builtin/rev-list.c:938,1
    - Dst: find_bisection
      Src: /src/git/builtin/rev-list.c:950,1
    - Dst: show_bisect_vars
      Src: /src/git/builtin/rev-list.c:953,1
    - Dst: oidset_init
      Src: /src/git/builtin/rev-list.c:969,1
    - Dst: oidmap_init
      Src: /src/git/builtin/rev-list.c:975,1
    - Dst: oidset_iter_init
      Src: /src/git/builtin/rev-list.c:976,1
    - Dst: oidset_iter_next
      Src: /src/git/builtin/rev-list.c:979,1
    - Dst: add_missing_object_entry
      Src: /src/git/builtin/rev-list.c:980,1
    - Dst: oidset_clear
      Src: /src/git/builtin/rev-list.c:982,1
    - Dst: traverse_commit_list_filtered
      Src: /src/git/builtin/rev-list.c:985,1
    - Dst: oidset_iter_init
      Src: /src/git/builtin/rev-list.c:992,1
    - Dst: oidset_iter_next
      Src: /src/git/builtin/rev-list.c:993,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:994,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/rev-list.c:994,1
    - Dst: oidset_clear
      Src: /src/git/builtin/rev-list.c:995,1
    - Dst: oidmap_iter_init
      Src: /src/git/builtin/rev-list.c:1002,1
    - Dst: oidmap_iter_next
      Src: /src/git/builtin/rev-list.c:1004,1
    - Dst: print_missing_object
      Src: /src/git/builtin/rev-list.c:1005,1
    - Dst: oidmap_clear_with_free
      Src: /src/git/builtin/rev-list.c:1009,1
    - Dst: stop_progress
      Src: /src/git/builtin/rev-list.c:1012,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:1016,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:1018,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:1020,1
    - Dst: printf
      Src: /src/git/builtin/rev-list.c:1022,1
    - Dst: print_disk_usage
      Src: /src/git/builtin/rev-list.c:1026,1
    - Dst: release_revisions
      Src: /src/git/builtin/rev-list.c:1029,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 211
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 692
    functionDepth: 26
    functionLinenumber: 692
    functionLinenumberEnd: 1031
    functionName: cmd_rev_list
    functionSourceFile: /src/git/builtin/rev-list.c
    functionUses: 0
    functionsReached:
    - print_disk_usage
    - stop_progress
    - prepare_maximal_independent
    - repo_init_revisions
    - oidmap_init
    - oidset_clear
    - oidmap_iter_next
    - start_delayed_progress
    - add_missing_object_entry
    - strcmp
    - reflog_walk_empty
    - repo_config
    - printf
    - mark_edges_uninteresting
    - oidset_iter_init
    - die
    - release_revisions
    - die_for_incompatible_opt2
    - oidmap_clear_with_free
    - show_bisect_vars
    - try_bitmap_count
    - prepare_revision_walk
    - find_bisection
    - print_missing_object
    - traverse_commit_list_filtered
    - memset
    - oid_to_hex
    - try_bitmap_traversal
    - parse_missing_action_value
    - _
    - setup_revisions
    - skip_prefix
    - oidset_init
    - show_usage_if_asked
    - test_bitmap_walk
    - oidmap_iter_init
    - usage
    - try_bitmap_disk_usage
    - oidset_iter_next
    linkageType: ''
    returnType: int
    signature: "int cmd_rev_list(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opts
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: CONFIG_LOCATION_OPTIONS
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_LOCATION_OPTIONS(opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: CONFIG_TYPE_OPTIONS
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_TYPE_OPTIONS(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opts
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: CONFIG_DISPLAY_OPTIONS
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_DISPLAY_OPTIONS(opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - v
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: OPT_CALLBACK_VALUE
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_CALLBACK_VALUE(s, l, v, h, i)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/config.c:166,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:168,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:170,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:172,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:174,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:176,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:178,1
    - Dst: die
      Src: /src/git/builtin/config.c:181,1
    - Dst: _
      Src: /src/git/builtin/config.c:181,1
    - Dst: error
      Src: /src/git/builtin/config.c:193,1
    - Dst: _
      Src: /src/git/builtin/config.c:193,1
    - Dst: exit
      Src: /src/git/builtin/config.c:194,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 199
    functionName: option_parse_type
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - error
    - die
    - exit
    - strcmp
    - _
    linkageType: ''
    returnType: int
    signature: "int option_parse_type(const struct option *opt, const char *arg,\n\t\t\t
      \    int unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/config.c:206,1
    - Dst: _
      Src: /src/git/builtin/config.c:206,1
    - Dst: error
      Src: /src/git/builtin/config.c:208,1
    - Dst: _
      Src: /src/git/builtin/config.c:208,1
    - Dst: exit
      Src: /src/git/builtin/config.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - argc
    - min
    - max
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: check_argc
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - error
    - exit
    - _
    linkageType: ''
    returnType: void
    signature: void check_argc(int argc, int min, int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:219,1
    - Dst: config_origin_type_name
      Src: /src/git/builtin/config.c:219,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/config.c:220,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:222,1
    - Dst: quote_c_style
      Src: /src/git/builtin/config.c:224,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/config.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - opts
    - kvi
    - buf
    argTypes:
    - struct config_display_options*
    - struct key_value_info*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: show_config_origin
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    - quote_c_style
    - strbuf_addstr
    - config_origin_type_name
    linkageType: ''
    returnType: void
    signature: "void show_config_origin(const struct config_display_options *opts,\n\t\t\t
      \      const struct key_value_info *kvi,\n\t\t\t       struct strbuf *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_scope_name
      Src: /src/git/builtin/config.c:233,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:235,1
    - Dst: N_
      Src: /src/git/builtin/config.c:235,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/config.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opts
    - kvi
    - buf
    argTypes:
    - struct config_display_options*
    - struct key_value_info*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: show_config_scope
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - N_
    - strbuf_addstr
    - config_scope_name
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void show_config_scope(const struct config_display_options *opts,\n\t\t\t
      \     const struct key_value_info *kvi,\n\t\t\t      struct strbuf *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_int64
      Src: /src/git/builtin/config.c:253,1
    - Dst: git_config_int64
      Src: /src/git/builtin/config.c:257,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/config.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - buf
    - key_
    - value_
    - kvi
    - gently
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - struct key_value_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 245
    functionDepth: 5
    functionLinenumber: 245
    functionLinenumberEnd: 262
    functionName: format_config_int64
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - git_config_int64
    - strbuf_addf
    - git_parse_int64
    linkageType: ''
    returnType: int
    signature: "int format_config_int64(struct strbuf *buf,\n\t\t\t       const char
      *key_,\n\t\t\t       const char *value_,\n\t\t\t       const struct key_value_info
      *kvi,\n\t\t\t       int gently)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/config.c:271,1
    - Dst: git_config_bool
      Src: /src/git/builtin/config.c:275,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - key_
    - value_
    - gently
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 264
    functionDepth: 6
    functionLinenumber: 264
    functionLinenumberEnd: 280
    functionName: format_config_bool
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - git_parse_maybe_bool
    - strbuf_addstr
    - git_config_bool
    linkageType: ''
    returnType: int
    signature: "int format_config_bool(struct strbuf *buf,\n\t\t\t      const char
      *key_,\n\t\t\t      const char *value_,\n\t\t\t      int gently)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool_text
      Src: /src/git/builtin/config.c:291,1
    - Dst: git_parse_int
      Src: /src/git/builtin/config.c:295,1
    - Dst: git_config_bool_or_int
      Src: /src/git/builtin/config.c:298,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:303,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/config.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - buf
    - key_
    - value_
    - kvi
    - gently
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - struct key_value_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 282
    functionDepth: 6
    functionLinenumber: 282
    functionLinenumberEnd: 308
    functionName: format_config_bool_or_int
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - git_parse_int
    - strbuf_addf
    - git_config_bool_or_int
    - strbuf_addstr
    - git_parse_maybe_bool_text
    linkageType: ''
    returnType: int
    signature: "int format_config_bool_or_int(struct strbuf *buf,\n\t\t\t\t     const
      char *key_,\n\t\t\t\t     const char *value_,\n\t\t\t\t     const struct key_value_info
      *kvi,\n\t\t\t\t     int gently)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/config.c:314,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:316,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - value_
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 5
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: format_config_bool_or_str
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - git_parse_maybe_bool
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int format_config_bool_or_str(struct strbuf *buf,\n\t\t\t\t     const
      char *value_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_config_pathname
      Src: /src/git/builtin/config.c:329,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:333,1
    - Dst: free
      Src: /src/git/builtin/config.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - buf
    - key_
    - value_
    - gently
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 322
    functionDepth: 5
    functionLinenumber: 322
    functionLinenumberEnd: 339
    functionName: format_config_path
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - git_config_pathname
    - strbuf_addstr
    - free
    linkageType: ''
    returnType: int
    signature: "int format_config_path(struct strbuf *buf,\n\t\t\t      const char
      *key_,\n\t\t\t      const char *value_,\n\t\t\t      int gently)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_expiry_date
      Src: /src/git/builtin/config.c:348,1
    - Dst: git_config_expiry_date
      Src: /src/git/builtin/config.c:350,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/config.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - buf
    - key_
    - value_
    - quietly
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 356
    functionName: format_config_expiry_date
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - git_config_expiry_date
    - strbuf_addf
    - parse_expiry_date
    linkageType: ''
    returnType: int
    signature: "int format_config_expiry_date(struct strbuf *buf,\n\t\t\t\t     const
      char *key_,\n\t\t\t\t     const char *value_,\n\t\t\t\t     int quietly)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: color_parse_quietly
      Src: /src/git/builtin/config.c:366,1
    - Dst: git_config_color
      Src: /src/git/builtin/config.c:368,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - buf
    - key_
    - value_
    - gently
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 358
    functionDepth: 6
    functionLinenumber: 358
    functionLinenumberEnd: 374
    functionName: format_config_color
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - color_parse_quietly
    - git_config_color
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int format_config_color(struct strbuf *buf,\n\t\t\t       const char
      *key_,\n\t\t\t       const char *value_,\n\t\t\t       int gently)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: show_config_scope
      Src: /src/git/builtin/config.c:392,1
    - Dst: show_config_origin
      Src: /src/git/builtin/config.c:394,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:396,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/config.c:402,1
    - Dst: format_config_int64
      Src: /src/git/builtin/config.c:406,1
    - Dst: format_config_bool
      Src: /src/git/builtin/config.c:410,1
    - Dst: format_config_bool_or_int
      Src: /src/git/builtin/config.c:414,1
    - Dst: format_config_bool_or_str
      Src: /src/git/builtin/config.c:418,1
    - Dst: format_config_path
      Src: /src/git/builtin/config.c:422,1
    - Dst: format_config_expiry_date
      Src: /src/git/builtin/config.c:426,1
    - Dst: format_config_color
      Src: /src/git/builtin/config.c:430,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:435,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/config.c:439,1
    - Dst: BUG
      Src: /src/git/builtin/config.c:444,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/config.c:448,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 6
    argNames:
    - opts
    - buf
    - key_
    - value_
    - kvi
    - gently
    argTypes:
    - struct config_display_options*
    - struct strbuf*
    - char*
    - char*
    - struct key_value_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 385
    functionDepth: 7
    functionLinenumber: 385
    functionLinenumberEnd: 450
    functionName: format_config
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - format_config_bool_or_str
    - format_config_expiry_date
    - format_config_int64
    - format_config_path
    - strbuf_setlen
    - show_config_origin
    - strbuf_addch
    - strbuf_addstr
    - show_config_scope
    - format_config_bool_or_int
    - BUG
    - format_config_color
    - format_config_bool
    linkageType: ''
    returnType: int
    signature: "int format_config(const struct config_display_options *opts,\n\t\t\t
      struct strbuf *buf, const char *key_,\n\t\t\t const char *value_, const struct
      key_value_info *kvi,\n\t\t\t int gently)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_config
      Src: /src/git/builtin/config.c:460,1
    - Dst: fwrite
      Src: /src/git/builtin/config.c:461,1
    - Dst: strbuf_release
      Src: /src/git/builtin/config.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - key_
    - value_
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 452
    functionDepth: 8
    functionLinenumber: 452
    functionLinenumberEnd: 465
    functionName: show_all_config
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - fwrite
    - format_config
    - strbuf_release
    linkageType: ''
    returnType: int
    signature: "int show_all_config(const char *key_, const char *value_,\n\t\t\t
      \  const struct config_context *ctx,\n\t\t\t   void *cb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/config.c:491,1
    - Dst: regexec
      Src: /src/git/builtin/config.c:494,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:497,1
    - Dst: regexec
      Src: /src/git/builtin/config.c:500,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/config.c:503,1
    - Dst: strbuf_init
      Src: /src/git/builtin/config.c:504,1
    - Dst: format_config
      Src: /src/git/builtin/config.c:506,1
    - Dst: strbuf_release
      Src: /src/git/builtin/config.c:511,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - key_
    - value_
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 482
    functionDepth: 8
    functionLinenumber: 482
    functionLinenumberEnd: 515
    functionName: collect_config
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - regexec
    - ALLOC_GROW
    - strcmp
    - format_config
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: "int collect_config(const char *key_, const char *value_,\n\t\t\t  const
      struct config_context *ctx, void *cb)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/builtin/config.c:542,1
    - Dst: strlen
      Src: /src/git/builtin/config.c:543,1
    - Dst: tolower
      Src: /src/git/builtin/config.c:546,1
    - Dst: tolower
      Src: /src/git/builtin/config.c:548,1
    - Dst: xmalloc
      Src: /src/git/builtin/config.c:550,1
    - Dst: regcomp
      Src: /src/git/builtin/config.c:551,1
    - Dst: error
      Src: /src/git/builtin/config.c:552,1
    - Dst: _
      Src: /src/git/builtin/config.c:552,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/config.c:553,1
    - Dst: git_config_parse_key
      Src: /src/git/builtin/config.c:558,1
    - Dst: xmalloc
      Src: /src/git/builtin/config.c:574,1
    - Dst: regcomp
      Src: /src/git/builtin/config.c:575,1
    - Dst: error
      Src: /src/git/builtin/config.c:576,1
    - Dst: _
      Src: /src/git/builtin/config.c:576,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/config.c:577,1
    - Dst: config_with_options
      Src: /src/git/builtin/config.c:583,1
    - Dst: kvi_from_param
      Src: /src/git/builtin/config.c:592,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/config.c:593,1
    - Dst: strbuf_init
      Src: /src/git/builtin/config.c:595,1
    - Dst: format_config
      Src: /src/git/builtin/config.c:597,1
    - Dst: die
      Src: /src/git/builtin/config.c:600,1
    - Dst: _
      Src: /src/git/builtin/config.c:600,1
    - Dst: strbuf_release
      Src: /src/git/builtin/config.c:605,1
    - Dst: fwrite
      Src: /src/git/builtin/config.c:614,1
    - Dst: strbuf_release
      Src: /src/git/builtin/config.c:615,1
    - Dst: free
      Src: /src/git/builtin/config.c:617,1
    - Dst: free
      Src: /src/git/builtin/config.c:620,1
    - Dst: regfree
      Src: /src/git/builtin/config.c:622,1
    - Dst: free
      Src: /src/git/builtin/config.c:623,1
    - Dst: regfree
      Src: /src/git/builtin/config.c:626,1
    - Dst: free
      Src: /src/git/builtin/config.c:627,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 6
    argNames:
    - opts
    - display_opts
    - key_
    - regex_
    - get_value_flags
    - flags
    argTypes:
    - struct config_location_options*
    - struct config_display_options*
    - char*
    - char*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 517
    functionDepth: 16
    functionLinenumber: 517
    functionLinenumberEnd: 631
    functionName: get_value
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 36
    functionsReached:
    - kvi_from_param
    - xmalloc
    - free
    - error
    - strbuf_release
    - die
    - config_with_options
    - regcomp
    - format_config
    - tolower
    - strbuf_init
    - git_config_parse_key
    - _
    - FREE_AND_NULL
    - xstrdup
    - regfree
    - fwrite
    - strlen
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: "int get_value(const struct config_location_options *opts,\n\t\t     const
      struct config_display_options *display_opts,\n\t\t     const char *key_, const
      char *regex_,\n\t\t     unsigned get_value_flags, unsigned flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/builtin/config.c:647,1
    - Dst: xstrfmt
      Src: /src/git/builtin/config.c:649,1
    - Dst: git_config_int64
      Src: /src/git/builtin/config.c:649,1
    - Dst: xstrdup
      Src: /src/git/builtin/config.c:651,1
    - Dst: git_config_bool
      Src: /src/git/builtin/config.c:651,1
    - Dst: git_config_bool_or_int
      Src: /src/git/builtin/config.c:654,1
    - Dst: xstrfmt
      Src: /src/git/builtin/config.c:656,1
    - Dst: xstrdup
      Src: /src/git/builtin/config.c:658,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/config.c:661,1
    - Dst: xstrdup
      Src: /src/git/builtin/config.c:663,1
    - Dst: xstrdup
      Src: /src/git/builtin/config.c:665,1
    - Dst: git_config_color
      Src: /src/git/builtin/config.c:669,1
    - Dst: die
      Src: /src/git/builtin/config.c:670,1
    - Dst: _
      Src: /src/git/builtin/config.c:670,1
    - Dst: xstrdup
      Src: /src/git/builtin/config.c:679,1
    - Dst: BUG
      Src: /src/git/builtin/config.c:682,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - key
    - value
    - type
    - kvi
    argTypes:
    - char*
    - char*
    - int
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 633
    functionDepth: 6
    functionLinenumber: 633
    functionLinenumberEnd: 683
    functionName: normalize_value
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - git_config_int64
    - die
    - xstrfmt
    - git_parse_maybe_bool
    - git_config_bool_or_int
    - git_config_color
    - git_config_bool
    - BUG
    - _
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *normalize_value(const char *key, const char *value,\n\t\t\t
      \    int type, struct key_value_info *kvi)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/config.c:697,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/config.c:699,1
    - Dst: color_parse
      Src: /src/git/builtin/config.c:700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 691
    functionDepth: 5
    functionLinenumber: 691
    functionLinenumberEnd: 705
    functionName: git_get_color_config
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - color_parse
    - config_error_nonbool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_get_color_config(const char *var, const char *value,\n\t\t\t\tconst
      struct config_context *ctx UNUSED,\n\t\t\t\tvoid *cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: config_with_options
      Src: /src/git/builtin/config.c:716,1
    - Dst: color_parse
      Src: /src/git/builtin/config.c:721,1
    - Dst: error
      Src: /src/git/builtin/config.c:722,1
    - Dst: _
      Src: /src/git/builtin/config.c:722,1
    - Dst: fputs
      Src: /src/git/builtin/config.c:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - opts
    - var
    - def_color
    argTypes:
    - struct config_location_options*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 707
    functionDepth: 16
    functionLinenumber: 707
    functionLinenumberEnd: 732
    functionName: get_color
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 11
    functionsReached:
    - error
    - fputs
    - color_parse
    - config_with_options
    - _
    linkageType: ''
    returnType: int
    signature: "int get_color(const struct config_location_options *opts,\n\t\t      const
      char *var, const char *def_color)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/config.c:747,1
    - Dst: git_config_colorbool
      Src: /src/git/builtin/config.c:748,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:749,1
    - Dst: git_config_colorbool
      Src: /src/git/builtin/config.c:750,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:751,1
    - Dst: git_config_colorbool
      Src: /src/git/builtin/config.c:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 754
    functionName: git_get_colorbool_config
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - git_config_colorbool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_get_colorbool_config(const char *var, const char *value,\n\t\t\t\t
      \   const struct config_context *ctx UNUSED,\n\t\t\t\t    void *cb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: config_with_options
      Src: /src/git/builtin/config.c:767,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:772,1
    - Dst: want_color
      Src: /src/git/builtin/config.c:782,1
    - Dst: printf
      Src: /src/git/builtin/config.c:785,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - opts
    - var
    - print
    argTypes:
    - struct config_location_options*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 756
    functionDepth: 16
    functionLinenumber: 756
    functionLinenumberEnd: 789
    functionName: get_colorbool
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - printf
    - want_color
    - config_with_options
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int get_colorbool(const struct config_location_options *opts,\n\t\t\t
      const char *var, int print)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/config.c:794,1
    - Dst: _
      Src: /src/git/builtin/config.c:794,1
    - Dst: die
      Src: /src/git/builtin/config.c:797,1
    - Dst: _
      Src: /src/git/builtin/config.c:797,1
    - Dst: die
      Src: /src/git/builtin/config.c:800,1
    - Dst: _
      Src: /src/git/builtin/config.c:800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct git_config_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 801
    functionName: check_write
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void check_write(const struct git_config_source *source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/builtin/config.c:814,1
    - Dst: xmalloc
      Src: /src/git/builtin/config.c:819,1
    - Dst: strbuf_init
      Src: /src/git/builtin/config.c:820,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/config.c:823,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/config.c:828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 809
    functionDepth: 4
    functionLinenumber: 809
    functionLinenumberEnd: 834
    functionName: urlmatch_collect_fn
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - string_list_insert
    - strbuf_reset
    - xmalloc
    - strbuf_addstr
    - strbuf_init
    linkageType: ''
    returnType: int
    signature: "int urlmatch_collect_fn(const char *var, const char *value,\n\t\t\t
      \      const struct config_context *ctx,\n\t\t\t       void *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: url_normalize
      Src: /src/git/builtin/config.c:852,1
    - Dst: die
      Src: /src/git/builtin/config.c:853,1
    - Dst: xstrdup_tolower
      Src: /src/git/builtin/config.c:855,1
    - Dst: strchr
      Src: /src/git/builtin/config.c:856,1
    - Dst: config_with_options
      Src: /src/git/builtin/config.c:866,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/config.c:872,1
    - Dst: format_config
      Src: /src/git/builtin/config.c:877,1
    - Dst: fwrite
      Src: /src/git/builtin/config.c:881,1
    - Dst: strbuf_release
      Src: /src/git/builtin/config.c:882,1
    - Dst: strbuf_release
      Src: /src/git/builtin/config.c:884,1
    - Dst: urlmatch_config_release
      Src: /src/git/builtin/config.c:886,1
    - Dst: string_list_clear
      Src: /src/git/builtin/config.c:887,1
    - Dst: free
      Src: /src/git/builtin/config.c:888,1
    - Dst: free
      Src: /src/git/builtin/config.c:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 4
    argNames:
    - opts
    - _display_opts
    - var
    - url
    argTypes:
    - struct config_location_options*
    - struct config_display_options*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 836
    functionDepth: 16
    functionLinenumber: 836
    functionLinenumberEnd: 892
    functionName: get_urlmatch
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - strbuf_release
    - string_list_clear
    - die
    - urlmatch_config_release
    - fwrite
    - url_normalize
    - strchr
    - xstrdup_tolower
    - config_with_options
    - free
    - format_config
    linkageType: ''
    returnType: int
    signature: "int get_urlmatch(const struct config_location_options *opts,\n\t\t\tconst
      struct config_display_options *_display_opts,\n\t\t\tconst char *var, const
      char *url)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/config.c:897,1
    - Dst: _
      Src: /src/git/builtin/config.c:898,1
    - Dst: ident_default_name
      Src: /src/git/builtin/config.c:903,1
    - Dst: ident_default_email
      Src: /src/git/builtin/config.c:904,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/config.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 894
    functionDepth: 3
    functionLinenumber: 894
    functionLinenumberEnd: 906
    functionName: default_user_config
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - ident_default_email
    - strbuf_addf
    - ident_default_name
    - strbuf_detach
    - _
    linkageType: ''
    returnType: char
    signature: char *default_user_config(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/config.c:913,1
    - Dst: getenv
      Src: /src/git/builtin/config.c:913,1
    - Dst: error
      Src: /src/git/builtin/config.c:918,1
    - Dst: _
      Src: /src/git/builtin/config.c:918,1
    - Dst: exit
      Src: /src/git/builtin/config.c:919,1
    - Dst: die
      Src: /src/git/builtin/config.c:924,1
    - Dst: _
      Src: /src/git/builtin/config.c:924,1
    - Dst: die
      Src: /src/git/builtin/config.c:926,1
    - Dst: _
      Src: /src/git/builtin/config.c:926,1
    - Dst: die
      Src: /src/git/builtin/config.c:928,1
    - Dst: _
      Src: /src/git/builtin/config.c:928,1
    - Dst: strcmp
      Src: /src/git/builtin/config.c:932,1
    - Dst: git_global_config
      Src: /src/git/builtin/config.c:939,1
    - Dst: die
      Src: /src/git/builtin/config.c:947,1
    - Dst: _
      Src: /src/git/builtin/config.c:947,1
    - Dst: git_system_config
      Src: /src/git/builtin/config.c:950,1
    - Dst: repo_git_path
      Src: /src/git/builtin/config.c:953,1
    - Dst: get_worktrees
      Src: /src/git/builtin/config.c:956,1
    - Dst: repo_git_path
      Src: /src/git/builtin/config.c:959,1
    - Dst: die
      Src: /src/git/builtin/config.c:961,1
    - Dst: _
      Src: /src/git/builtin/config.c:961,1
    - Dst: repo_git_path
      Src: /src/git/builtin/config.c:968,1
    - Dst: free_worktrees
      Src: /src/git/builtin/config.c:970,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/config.c:972,1
    - Dst: prefix_filename
      Src: /src/git/builtin/config.c:974,1
    - Dst: repo_get_common_dir
      Src: /src/git/builtin/config.c:985,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/config.c:986,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 2
    argNames:
    - opts
    - prefix
    argTypes:
    - struct config_location_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 908
    functionDepth: 15
    functionLinenumber: 908
    functionLinenumberEnd: 988
    functionName: location_options_init
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - error
    - repo_git_path
    - get_worktrees
    - xstrdup_or_null
    - die
    - free_worktrees
    - is_absolute_path
    - prefix_filename
    - exit
    - repo_get_common_dir
    - git_system_config
    - strcmp
    - repo_get_git_dir
    - _
    - getenv
    - git_global_config
    linkageType: ''
    returnType: void
    signature: "void location_options_init(struct config_location_options *opts,\n\t\t\t\t
      \ const char *prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/config.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct config_location_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 993
    functionName: location_options_release
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void location_options_release(struct config_location_options *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct config_display_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1002
    functionName: display_options_init
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void display_options_init(struct config_display_options *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_options_init
      Src: /src/git/builtin/config.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct config_display_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1015
    functionName: display_options_init_list
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - display_options_init
    linkageType: ''
    returnType: void
    signature: void display_options_init_list(struct config_display_options *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_LOCATION_OPTIONS
      Src: /src/git/builtin/config.c:1023,1
    - Dst: CONFIG_DISPLAY_OPTIONS
      Src: /src/git/builtin/config.c:1024,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/config.c:1025,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1025,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/config.c:1026,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1027,1
    - Dst: OPT_END
      Src: /src/git/builtin/config.c:1028,1
    - Dst: parse_options
      Src: /src/git/builtin/config.c:1031,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1032,1
    - Dst: location_options_init
      Src: /src/git/builtin/config.c:1034,1
    - Dst: display_options_init_list
      Src: /src/git/builtin/config.c:1035,1
    - Dst: setup_auto_pager
      Src: /src/git/builtin/config.c:1037,1
    - Dst: config_with_options
      Src: /src/git/builtin/config.c:1039,1
    - Dst: die_errno
      Src: /src/git/builtin/config.c:1043,1
    - Dst: _
      Src: /src/git/builtin/config.c:1043,1
    - Dst: die
      Src: /src/git/builtin/config.c:1046,1
    - Dst: _
      Src: /src/git/builtin/config.c:1046,1
    - Dst: location_options_release
      Src: /src/git/builtin/config.c:1049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1017
    functionDepth: 16
    functionLinenumber: 1017
    functionLinenumberEnd: 1051
    functionName: cmd_config_list
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - CONFIG_DISPLAY_OPTIONS
    - CONFIG_LOCATION_OPTIONS
    - OPT_END
    - parse_options
    - check_argc
    - display_options_init_list
    - setup_auto_pager
    - die
    - OPT_GROUP
    - location_options_release
    - OPT_BOOL
    - location_options_init
    - die_errno
    - config_with_options
    - _
    - N_
    linkageType: ''
    returnType: int
    signature: "int cmd_config_list(int argc, const char **argv, const char *prefix,\n\t\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_LOCATION_OPTIONS
      Src: /src/git/builtin/config.c:1062,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/config.c:1063,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1063,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/config.c:1064,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1064,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/config.c:1065,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1065,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/config.c:1066,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1066,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1066,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/config.c:1067,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1067,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/config.c:1068,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1068,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1068,1
    - Dst: CONFIG_DISPLAY_OPTIONS
      Src: /src/git/builtin/config.c:1069,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/config.c:1070,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1070,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/config.c:1071,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1072,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/config.c:1073,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1074,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1074,1
    - Dst: OPT_END
      Src: /src/git/builtin/config.c:1075,1
    - Dst: parse_options
      Src: /src/git/builtin/config.c:1079,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1081,1
    - Dst: die
      Src: /src/git/builtin/config.c:1084,1
    - Dst: _
      Src: /src/git/builtin/config.c:1084,1
    - Dst: die
      Src: /src/git/builtin/config.c:1087,1
    - Dst: _
      Src: /src/git/builtin/config.c:1087,1
    - Dst: die
      Src: /src/git/builtin/config.c:1091,1
    - Dst: _
      Src: /src/git/builtin/config.c:1091,1
    - Dst: location_options_init
      Src: /src/git/builtin/config.c:1093,1
    - Dst: display_options_init
      Src: /src/git/builtin/config.c:1094,1
    - Dst: setup_auto_pager
      Src: /src/git/builtin/config.c:1097,1
    - Dst: get_urlmatch
      Src: /src/git/builtin/config.c:1100,1
    - Dst: strlen
      Src: /src/git/builtin/config.c:1101,1
    - Dst: get_color
      Src: /src/git/builtin/config.c:1102,1
    - Dst: get_value
      Src: /src/git/builtin/config.c:1104,1
    - Dst: location_options_release
      Src: /src/git/builtin/config.c:1107,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1053
    functionDepth: 17
    functionLinenumber: 1053
    functionLinenumberEnd: 1109
    functionName: cmd_config_get
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_BOOL
    - CONFIG_DISPLAY_OPTIONS
    - CONFIG_LOCATION_OPTIONS
    - OPT_END
    - check_argc
    - die
    - location_options_release
    - OPT_GROUP
    - OPT_BIT
    - get_value
    - _
    - N_
    - setup_auto_pager
    - OPT_STRING
    - location_options_init
    - strlen
    - display_options_init
    - get_urlmatch
    - get_color
    linkageType: ''
    returnType: int
    signature: "int cmd_config_get(int argc, const char **argv, const char *prefix,\n\t\t\t
      \ struct repository *repo UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_LOCATION_OPTIONS
      Src: /src/git/builtin/config.c:1119,1
    - Dst: CONFIG_TYPE_OPTIONS
      Src: /src/git/builtin/config.c:1120,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/config.c:1121,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1121,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/config.c:1122,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1122,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/config.c:1123,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1123,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1123,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/config.c:1124,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1124,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/config.c:1125,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1125,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/config.c:1126,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1126,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1126,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/config.c:1127,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1127,1
    - Dst: OPT_END
      Src: /src/git/builtin/config.c:1128,1
    - Dst: parse_options
      Src: /src/git/builtin/config.c:1134,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1136,1
    - Dst: die
      Src: /src/git/builtin/config.c:1139,1
    - Dst: _
      Src: /src/git/builtin/config.c:1139,1
    - Dst: die
      Src: /src/git/builtin/config.c:1141,1
    - Dst: _
      Src: /src/git/builtin/config.c:1141,1
    - Dst: git_config_prepare_comment_string
      Src: /src/git/builtin/config.c:1145,1
    - Dst: location_options_init
      Src: /src/git/builtin/config.c:1147,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1148,1
    - Dst: normalize_value
      Src: /src/git/builtin/config.c:1150,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/builtin/config.c:1153,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/builtin/config.c:1157,1
    - Dst: error
      Src: /src/git/builtin/config.c:1160,1
    - Dst: _
      Src: /src/git/builtin/config.c:1160,1
    - Dst: location_options_release
      Src: /src/git/builtin/config.c:1164,1
    - Dst: free
      Src: /src/git/builtin/config.c:1165,1
    - Dst: free
      Src: /src/git/builtin/config.c:1166,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1111
    functionDepth: 16
    functionLinenumber: 1111
    functionLinenumberEnd: 1168
    functionName: cmd_config_set
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - parse_options
    - normalize_value
    - OPT_BOOL
    - check_write
    - free
    - error
    - CONFIG_LOCATION_OPTIONS
    - OPT_END
    - check_argc
    - die
    - location_options_release
    - OPT_GROUP
    - CONFIG_TYPE_OPTIONS
    - git_config_prepare_comment_string
    - OPT_BIT
    - repo_config_set_multivar_in_file_gently
    - _
    - N_
    - repo_config_set_in_file_gently
    - OPT_STRING
    - location_options_init
    linkageType: ''
    returnType: int
    signature: "int cmd_config_set(int argc, const char **argv, const char *prefix,\n\t\t\t
      \ struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_LOCATION_OPTIONS
      Src: /src/git/builtin/config.c:1177,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/config.c:1178,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1178,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/config.c:1179,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1179,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/config.c:1180,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1180,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1180,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/config.c:1181,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1181,1
    - Dst: OPT_END
      Src: /src/git/builtin/config.c:1182,1
    - Dst: parse_options
      Src: /src/git/builtin/config.c:1186,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1188,1
    - Dst: die
      Src: /src/git/builtin/config.c:1191,1
    - Dst: _
      Src: /src/git/builtin/config.c:1191,1
    - Dst: location_options_init
      Src: /src/git/builtin/config.c:1193,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1194,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/builtin/config.c:1197,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/builtin/config.c:1201,1
    - Dst: location_options_release
      Src: /src/git/builtin/config.c:1204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1170
    functionDepth: 16
    functionLinenumber: 1170
    functionLinenumberEnd: 1206
    functionName: cmd_config_unset
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - CONFIG_LOCATION_OPTIONS
    - OPT_END
    - parse_options
    - check_argc
    - die
    - location_options_release
    - OPT_GROUP
    - repo_config_set_in_file_gently
    - OPT_STRING
    - location_options_init
    - check_write
    - OPT_BIT
    - repo_config_set_multivar_in_file_gently
    - _
    - N_
    linkageType: ''
    returnType: int
    signature: "int cmd_config_unset(int argc, const char **argv, const char *prefix,\n\t\t\t
      \   struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_LOCATION_OPTIONS
      Src: /src/git/builtin/config.c:1213,1
    - Dst: OPT_END
      Src: /src/git/builtin/config.c:1214,1
    - Dst: parse_options
      Src: /src/git/builtin/config.c:1218,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1220,1
    - Dst: location_options_init
      Src: /src/git/builtin/config.c:1222,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1223,1
    - Dst: repo_config_rename_section_in_file
      Src: /src/git/builtin/config.c:1225,1
    - Dst: die
      Src: /src/git/builtin/config.c:1230,1
    - Dst: _
      Src: /src/git/builtin/config.c:1230,1
    - Dst: location_options_release
      Src: /src/git/builtin/config.c:1234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1208
    functionDepth: 16
    functionLinenumber: 1208
    functionLinenumberEnd: 1236
    functionName: cmd_config_rename_section
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - check_argc
    - CONFIG_LOCATION_OPTIONS
    - OPT_END
    - parse_options
    - die
    - location_options_release
    - repo_config_rename_section_in_file
    - location_options_init
    - check_write
    - _
    linkageType: ''
    returnType: int
    signature: "int cmd_config_rename_section(int argc, const char **argv, const char
      *prefix,\n\t\t\t\t     struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_LOCATION_OPTIONS
      Src: /src/git/builtin/config.c:1243,1
    - Dst: OPT_END
      Src: /src/git/builtin/config.c:1244,1
    - Dst: parse_options
      Src: /src/git/builtin/config.c:1248,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1250,1
    - Dst: location_options_init
      Src: /src/git/builtin/config.c:1252,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1253,1
    - Dst: repo_config_rename_section_in_file
      Src: /src/git/builtin/config.c:1255,1
    - Dst: die
      Src: /src/git/builtin/config.c:1260,1
    - Dst: _
      Src: /src/git/builtin/config.c:1260,1
    - Dst: location_options_release
      Src: /src/git/builtin/config.c:1264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1238
    functionDepth: 16
    functionLinenumber: 1238
    functionLinenumberEnd: 1266
    functionName: cmd_config_remove_section
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - check_argc
    - CONFIG_LOCATION_OPTIONS
    - OPT_END
    - parse_options
    - die
    - location_options_release
    - repo_config_rename_section_in_file
    - location_options_init
    - check_write
    - _
    linkageType: ''
    returnType: int
    signature: "int cmd_config_remove_section(int argc, const char **argv, const char
      *prefix,\n\t\t\t\t     struct repository *repo UNUSED)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/config.c:1273,1
    - Dst: _
      Src: /src/git/builtin/config.c:1273,1
    - Dst: die
      Src: /src/git/builtin/config.c:1275,1
    - Dst: _
      Src: /src/git/builtin/config.c:1275,1
    - Dst: die
      Src: /src/git/builtin/config.c:1277,1
    - Dst: _
      Src: /src/git/builtin/config.c:1277,1
    - Dst: repo_config
      Src: /src/git/builtin/config.c:1278,1
    - Dst: xstrdup
      Src: /src/git/builtin/config.c:1280,1
    - Dst: repo_git_path
      Src: /src/git/builtin/config.c:1281,1
    - Dst: open
      Src: /src/git/builtin/config.c:1283,1
    - Dst: default_user_config
      Src: /src/git/builtin/config.c:1285,1
    - Dst: write_str_in_full
      Src: /src/git/builtin/config.c:1286,1
    - Dst: free
      Src: /src/git/builtin/config.c:1287,1
    - Dst: close
      Src: /src/git/builtin/config.c:1288,1
    - Dst: die_errno
      Src: /src/git/builtin/config.c:1291,1
    - Dst: _
      Src: /src/git/builtin/config.c:1291,1
    - Dst: launch_editor
      Src: /src/git/builtin/config.c:1293,1
    - Dst: free
      Src: /src/git/builtin/config.c:1294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct config_location_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1268
    functionDepth: 19
    functionLinenumber: 1268
    functionLinenumberEnd: 1297
    functionName: show_editor
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    - die
    - open
    - write_str_in_full
    - die_errno
    - free
    - launch_editor
    - close
    - _
    - default_user_config
    - repo_config
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int show_editor(struct config_location_options *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_LOCATION_OPTIONS
      Src: /src/git/builtin/config.c:1304,1
    - Dst: OPT_END
      Src: /src/git/builtin/config.c:1305,1
    - Dst: parse_options
      Src: /src/git/builtin/config.c:1309,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1310,1
    - Dst: location_options_init
      Src: /src/git/builtin/config.c:1312,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1313,1
    - Dst: show_editor
      Src: /src/git/builtin/config.c:1315,1
    - Dst: location_options_release
      Src: /src/git/builtin/config.c:1316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1299
    functionDepth: 20
    functionLinenumber: 1299
    functionLinenumberEnd: 1318
    functionName: cmd_config_edit
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - check_argc
    - CONFIG_LOCATION_OPTIONS
    - OPT_END
    - parse_options
    - location_options_release
    - location_options_init
    - check_write
    - show_editor
    linkageType: ''
    returnType: int
    signature: "int cmd_config_edit(int argc, const char **argv, const char *prefix,\n\t\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_LOCATION_OPTIONS
      Src: /src/git/builtin/config.c:1346,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/config.c:1347,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1347,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1348,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1348,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1349,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1349,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1350,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1350,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1351,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1351,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1352,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1352,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1353,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1353,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1354,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1354,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1355,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1355,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1356,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1356,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1357,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1357,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1358,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1358,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1359,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1359,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1360,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1360,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/config.c:1361,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1361,1
    - Dst: CONFIG_DISPLAY_OPTIONS
      Src: /src/git/builtin/config.c:1362,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/config.c:1363,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1363,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/config.c:1364,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1365,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1365,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/config.c:1366,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1366,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1366,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/config.c:1367,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1367,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/config.c:1368,1
    - Dst: N_
      Src: /src/git/builtin/config.c:1369,1
    - Dst: OPT_END
      Src: /src/git/builtin/config.c:1370,1
    - Dst: parse_options
      Src: /src/git/builtin/config.c:1376,1
    - Dst: location_options_init
      Src: /src/git/builtin/config.c:1380,1
    - Dst: display_options_init
      Src: /src/git/builtin/config.c:1381,1
    - Dst: error
      Src: /src/git/builtin/config.c:1384,1
    - Dst: _
      Src: /src/git/builtin/config.c:1384,1
    - Dst: exit
      Src: /src/git/builtin/config.c:1385,1
    - Dst: error
      Src: /src/git/builtin/config.c:1394,1
    - Dst: _
      Src: /src/git/builtin/config.c:1394,1
    - Dst: exit
      Src: /src/git/builtin/config.c:1395,1
    - Dst: error
      Src: /src/git/builtin/config.c:1399,1
    - Dst: _
      Src: /src/git/builtin/config.c:1399,1
    - Dst: exit
      Src: /src/git/builtin/config.c:1400,1
    - Dst: error
      Src: /src/git/builtin/config.c:1405,1
    - Dst: _
      Src: /src/git/builtin/config.c:1405,1
    - Dst: exit
      Src: /src/git/builtin/config.c:1407,1
    - Dst: error
      Src: /src/git/builtin/config.c:1411,1
    - Dst: _
      Src: /src/git/builtin/config.c:1411,1
    - Dst: exit
      Src: /src/git/builtin/config.c:1412,1
    - Dst: error
      Src: /src/git/builtin/config.c:1417,1
    - Dst: _
      Src: /src/git/builtin/config.c:1417,1
    - Dst: exit
      Src: /src/git/builtin/config.c:1418,1
    - Dst: error
      Src: /src/git/builtin/config.c:1450,1
    - Dst: _
      Src: /src/git/builtin/config.c:1450,1
    - Dst: exit
      Src: /src/git/builtin/config.c:1451,1
    - Dst: git_config_prepare_comment_string
      Src: /src/git/builtin/config.c:1455,1
    - Dst: setup_auto_pager
      Src: /src/git/builtin/config.c:1462,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1465,1
    - Dst: display_options_init_list
      Src: /src/git/builtin/config.c:1466,1
    - Dst: config_with_options
      Src: /src/git/builtin/config.c:1467,1
    - Dst: die_errno
      Src: /src/git/builtin/config.c:1471,1
    - Dst: _
      Src: /src/git/builtin/config.c:1471,1
    - Dst: die
      Src: /src/git/builtin/config.c:1474,1
    - Dst: _
      Src: /src/git/builtin/config.c:1474,1
    - Dst: show_editor
      Src: /src/git/builtin/config.c:1478,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1481,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1482,1
    - Dst: normalize_value
      Src: /src/git/builtin/config.c:1483,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/builtin/config.c:1484,1
    - Dst: error
      Src: /src/git/builtin/config.c:1486,1
    - Dst: _
      Src: /src/git/builtin/config.c:1486,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1490,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1491,1
    - Dst: normalize_value
      Src: /src/git/builtin/config.c:1492,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/builtin/config.c:1493,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1498,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1499,1
    - Dst: normalize_value
      Src: /src/git/builtin/config.c:1500,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/builtin/config.c:1501,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1507,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1508,1
    - Dst: normalize_value
      Src: /src/git/builtin/config.c:1509,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/builtin/config.c:1510,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1515,1
    - Dst: get_value
      Src: /src/git/builtin/config.c:1516,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1520,1
    - Dst: get_value
      Src: /src/git/builtin/config.c:1521,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1526,1
    - Dst: get_value
      Src: /src/git/builtin/config.c:1527,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1531,1
    - Dst: get_urlmatch
      Src: /src/git/builtin/config.c:1532,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1535,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1536,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/builtin/config.c:1538,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/builtin/config.c:1542,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1546,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1547,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/builtin/config.c:1548,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1553,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1554,1
    - Dst: repo_config_rename_section_in_file
      Src: /src/git/builtin/config.c:1555,1
    - Dst: die
      Src: /src/git/builtin/config.c:1560,1
    - Dst: _
      Src: /src/git/builtin/config.c:1560,1
    - Dst: check_write
      Src: /src/git/builtin/config.c:1565,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1566,1
    - Dst: repo_config_rename_section_in_file
      Src: /src/git/builtin/config.c:1567,1
    - Dst: die
      Src: /src/git/builtin/config.c:1572,1
    - Dst: _
      Src: /src/git/builtin/config.c:1572,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1577,1
    - Dst: get_color
      Src: /src/git/builtin/config.c:1578,1
    - Dst: check_argc
      Src: /src/git/builtin/config.c:1581,1
    - Dst: git_config_bool
      Src: /src/git/builtin/config.c:1583,1
    - Dst: get_colorbool
      Src: /src/git/builtin/config.c:1584,1
    - Dst: location_options_release
      Src: /src/git/builtin/config.c:1588,1
    - Dst: free
      Src: /src/git/builtin/config.c:1589,1
    - Dst: free
      Src: /src/git/builtin/config.c:1590,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 166
    argCount: 3
    argNames:
    - argc
    - argv
    - prefix
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1320
    functionDepth: 20
    functionLinenumber: 1320
    functionLinenumberEnd: 1592
    functionName: cmd_config_actions
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - parse_options
    - normalize_value
    - repo_config_rename_section_in_file
    - OPT_BOOL
    - check_write
    - get_colorbool
    - free
    - error
    - CONFIG_DISPLAY_OPTIONS
    - CONFIG_LOCATION_OPTIONS
    - OPT_END
    - check_argc
    - die
    - display_options_init_list
    - location_options_release
    - OPT_GROUP
    - git_config_prepare_comment_string
    - OPT_BIT
    - OPT_CMDMODE
    - repo_config_set_multivar_in_file_gently
    - config_with_options
    - get_value
    - die_errno
    - _
    - N_
    - git_config_bool
    - setup_auto_pager
    - exit
    - repo_config_set_in_file_gently
    - OPT_STRING
    - location_options_init
    - display_options_init
    - show_editor
    - get_urlmatch
    - get_color
    linkageType: ''
    returnType: int
    signature: int cmd_config_actions(int argc, const char **argv, const char *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/config.c:1601,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/config.c:1602,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/config.c:1603,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/config.c:1604,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/config.c:1605,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/config.c:1606,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/config.c:1607,1
    - Dst: OPT_END
      Src: /src/git/builtin/config.c:1608,1
    - Dst: parse_options
      Src: /src/git/builtin/config.c:1619,1
    - Dst: parse_options
      Src: /src/git/builtin/config.c:1622,1
    - Dst: subcommand
      Src: /src/git/builtin/config.c:1624,1
    - Dst: cmd_config_actions
      Src: /src/git/builtin/config.c:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1594
    functionDepth: 21
    functionLinenumber: 1594
    functionLinenumberEnd: 1628
    functionName: cmd_config
    functionSourceFile: /src/git/builtin/config.c
    functionUses: 0
    functionsReached:
    - subcommand
    - parse_options
    - OPT_END
    - cmd_config_actions
    - OPT_SUBCOMMAND
    linkageType: ''
    returnType: int
    signature: "int cmd_config(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_options_concat
      Src: /src/git/builtin/commit-graph.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - to
    argTypes:
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: add_common_options
    functionSourceFile: /src/git/builtin/commit-graph.c
    functionUses: 5
    functionsReached:
    - parse_options_concat
    linkageType: ''
    returnType: struct option
    signature: struct option *add_common_options(struct option *to)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit-graph.c:81,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:82,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit-graph.c:83,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:84,1
    - Dst: OPT_END
      Src: /src/git/builtin/commit-graph.c:85,1
    - Dst: add_common_options
      Src: /src/git/builtin/commit-graph.c:87,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/commit-graph.c:89,1
    - Dst: isatty
      Src: /src/git/builtin/commit-graph.c:91,1
    - Dst: parse_options
      Src: /src/git/builtin/commit-graph.c:92,1
    - Dst: usage_with_options
      Src: /src/git/builtin/commit-graph.c:96,1
    - Dst: repo_get_object_directory
      Src: /src/git/builtin/commit-graph.c:99,1
    - Dst: odb_find_source_or_die
      Src: /src/git/builtin/commit-graph.c:105,1
    - Dst: get_commit_graph_filename
      Src: /src/git/builtin/commit-graph.c:106,1
    - Dst: get_commit_graph_chain_filename
      Src: /src/git/builtin/commit-graph.c:107,1
    - Dst: open_commit_graph
      Src: /src/git/builtin/commit-graph.c:108,1
    - Dst: die_errno
      Src: /src/git/builtin/commit-graph.c:111,1
    - Dst: _
      Src: /src/git/builtin/commit-graph.c:111,1
    - Dst: open_commit_graph_chain
      Src: /src/git/builtin/commit-graph.c:112,1
    - Dst: die_errno
      Src: /src/git/builtin/commit-graph.c:116,1
    - Dst: _
      Src: /src/git/builtin/commit-graph.c:116,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/commit-graph.c:118,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/commit-graph.c:119,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/commit-graph.c:120,1
    - Dst: load_commit_graph_one_fd_st
      Src: /src/git/builtin/commit-graph.c:125,1
    - Dst: load_commit_graph_chain_fd_st
      Src: /src/git/builtin/commit-graph.c:127,1
    - Dst: verify_commit_graph
      Src: /src/git/builtin/commit-graph.c:133,1
    - Dst: free_commit_graph
      Src: /src/git/builtin/commit-graph.c:134,1
    - Dst: error
      Src: /src/git/builtin/commit-graph.c:137,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 66
    functionDepth: 13
    functionLinenumber: 66
    functionLinenumberEnd: 142
    functionName: graph_verify
    functionSourceFile: /src/git/builtin/commit-graph.c
    functionUses: 0
    functionsReached:
    - parse_options
    - load_commit_graph_chain_fd_st
    - get_commit_graph_chain_filename
    - OPT_BOOL
    - open_commit_graph_chain
    - usage_with_options
    - error
    - get_commit_graph_filename
    - verify_commit_graph
    - OPT_END
    - free_commit_graph
    - open_commit_graph
    - isatty
    - die_errno
    - repo_get_object_directory
    - _
    - N_
    - odb_find_source_or_die
    - FREE_AND_NULL
    - trace2_cmd_mode
    - load_commit_graph_one_fd_st
    - add_common_options
    linkageType: ''
    returnType: int
    signature: "int graph_verify(int argc, const char **argv, const char *prefix,\n\t\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/commit-graph.c:152,1
    - Dst: strcmp
      Src: /src/git/builtin/commit-graph.c:158,1
    - Dst: strcmp
      Src: /src/git/builtin/commit-graph.c:160,1
    - Dst: die
      Src: /src/git/builtin/commit-graph.c:163,1
    - Dst: _
      Src: /src/git/builtin/commit-graph.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 166
    functionName: write_option_parse_split
    functionSourceFile: /src/git/builtin/commit-graph.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int write_option_parse_split(const struct option *opt, const char
      *arg,\n\t\t\t\t    int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex
      Src: /src/git/builtin/commit-graph.c:175,1
    - Dst: error
      Src: /src/git/builtin/commit-graph.c:176,1
    - Dst: _
      Src: /src/git/builtin/commit-graph.c:176,1
    - Dst: deref_tag
      Src: /src/git/builtin/commit-graph.c:178,1
    - Dst: parse_object
      Src: /src/git/builtin/commit-graph.c:178,1
    - Dst: error
      Src: /src/git/builtin/commit-graph.c:181,1
    - Dst: _
      Src: /src/git/builtin/commit-graph.c:181,1
    - Dst: object_as_type
      Src: /src/git/builtin/commit-graph.c:182,1
    - Dst: oidset_insert
      Src: /src/git/builtin/commit-graph.c:183,1
    - Dst: display_progress
      Src: /src/git/builtin/commit-graph.c:185,1
    - Dst: oidset_size
      Src: /src/git/builtin/commit-graph.c:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - commits
    - progress
    - hash
    argTypes:
    - struct oidset*
    - struct progress*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 188
    functionName: read_one_commit
    functionSourceFile: /src/git/builtin/commit-graph.c
    functionUses: 0
    functionsReached:
    - error
    - oidset_size
    - object_as_type
    - deref_tag
    - parse_object
    - parse_oid_hex
    - display_progress
    - _
    - oidset_insert
    linkageType: ''
    returnType: int
    signature: "int read_one_commit(struct oidset *commits, struct progress *progress,\n\t\t\t
      \  const char *hash)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/git/builtin/commit-graph.c:199,1
    - Dst: error
      Src: /src/git/builtin/commit-graph.c:201,1
    - Dst: _
      Src: /src/git/builtin/commit-graph.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: write_option_max_new_filters
    functionSourceFile: /src/git/builtin/commit-graph.c
    functionUses: 0
    functionsReached:
    - error
    - strtol
    - _
    linkageType: ''
    returnType: int
    signature: "int write_option_max_new_filters(const struct option *opt,\n\t\t\t\t\tconst
      char *arg,\n\t\t\t\t\tint unset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/commit-graph.c:211,1
    - Dst: git_config_int
      Src: /src/git/builtin/commit-graph.c:212,1
    - Dst: strcmp
      Src: /src/git/builtin/commit-graph.c:213,1
    - Dst: git_config_bool
      Src: /src/git/builtin/commit-graph.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 6
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: git_commit_graph_write_config
    functionSourceFile: /src/git/builtin/commit-graph.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_commit_graph_write_config(const char *var, const char *value,\n\t\t\t\t\t
      const struct config_context *ctx,\n\t\t\t\t\t void *cb UNUSED)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit-graph.c:234,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:235,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit-graph.c:236,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:237,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit-graph.c:238,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:239,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit-graph.c:240,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:241,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit-graph.c:242,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:243,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/commit-graph.c:244,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:245,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/commit-graph.c:248,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:249,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/commit-graph.c:250,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:251,1
    - Dst: OPT_EXPIRY_DATE
      Src: /src/git/builtin/commit-graph.c:252,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:253,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/commit-graph.c:254,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:255,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit-graph.c:257,1
    - Dst: N_
      Src: /src/git/builtin/commit-graph.c:258,1
    - Dst: OPT_END
      Src: /src/git/builtin/commit-graph.c:259,1
    - Dst: add_common_options
      Src: /src/git/builtin/commit-graph.c:261,1
    - Dst: isatty
      Src: /src/git/builtin/commit-graph.c:263,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/commit-graph.c:270,1
    - Dst: repo_config
      Src: /src/git/builtin/commit-graph.c:272,1
    - Dst: parse_options
      Src: /src/git/builtin/commit-graph.c:274,1
    - Dst: usage_with_options
      Src: /src/git/builtin/commit-graph.c:278,1
    - Dst: die
      Src: /src/git/builtin/commit-graph.c:281,1
    - Dst: _
      Src: /src/git/builtin/commit-graph.c:281,1
    - Dst: repo_get_object_directory
      Src: /src/git/builtin/commit-graph.c:283,1
    - Dst: git_env_bool
      Src: /src/git/builtin/commit-graph.c:293,1
    - Dst: odb_find_source_or_die
      Src: /src/git/builtin/commit-graph.c:296,1
    - Dst: write_commit_graph_reachable
      Src: /src/git/builtin/commit-graph.c:299,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/commit-graph.c:305,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/commit-graph.c:306,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/commit-graph.c:307,1
    - Dst: oidset_init
      Src: /src/git/builtin/commit-graph.c:309,1
    - Dst: start_delayed_progress
      Src: /src/git/builtin/commit-graph.c:311,1
    - Dst: _
      Src: /src/git/builtin/commit-graph.c:313,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/commit-graph.c:315,1
    - Dst: read_one_commit
      Src: /src/git/builtin/commit-graph.c:316,1
    - Dst: stop_progress
      Src: /src/git/builtin/commit-graph.c:318,1
    - Dst: stop_progress
      Src: /src/git/builtin/commit-graph.c:323,1
    - Dst: write_commit_graph
      Src: /src/git/builtin/commit-graph.c:326,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/commit-graph.c:334,1
    - Dst: string_list_clear
      Src: /src/git/builtin/commit-graph.c:335,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit-graph.c:336,1
    - Dst: oidset_clear
      Src: /src/git/builtin/commit-graph.c:337,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 222
    functionDepth: 21
    functionLinenumber: 222
    functionLinenumberEnd: 339
    functionName: graph_write
    functionSourceFile: /src/git/builtin/commit-graph.c
    functionUses: 0
    functionsReached:
    - parse_options
    - stop_progress
    - OPT_BOOL
    - oidset_clear
    - start_delayed_progress
    - repo_config
    - usage_with_options
    - strbuf_release
    - OPT_END
    - die
    - git_env_bool
    - isatty
    - OPT_INTEGER
    - string_list_clear
    - repo_get_object_directory
    - read_one_commit
    - write_commit_graph
    - strbuf_detach
    - _
    - N_
    - odb_find_source_or_die
    - strbuf_getline
    - FREE_AND_NULL
    - oidset_init
    - string_list_append_nodup
    - OPT_CALLBACK_F
    - write_commit_graph_reachable
    - trace2_cmd_mode
    - add_common_options
    - OPT_EXPIRY_DATE
    linkageType: ''
    returnType: int
    signature: "int graph_write(int argc, const char **argv, const char *prefix,\n\t\t
      \      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/commit-graph.c:348,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/commit-graph.c:349,1
    - Dst: OPT_END
      Src: /src/git/builtin/commit-graph.c:350,1
    - Dst: parse_options_concat
      Src: /src/git/builtin/commit-graph.c:352,1
    - Dst: repo_config
      Src: /src/git/builtin/commit-graph.c:354,1
    - Dst: disable_replace_refs
      Src: /src/git/builtin/commit-graph.c:356,1
    - Dst: parse_options
      Src: /src/git/builtin/commit-graph.c:359,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/commit-graph.c:361,1
    - Dst: fn
      Src: /src/git/builtin/commit-graph.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 341
    functionDepth: 19
    functionLinenumber: 341
    functionLinenumberEnd: 364
    functionName: cmd_commit_graph
    functionSourceFile: /src/git/builtin/commit-graph.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - fn
    - disable_replace_refs
    - OPT_SUBCOMMAND
    - parse_options_concat
    - FREE_AND_NULL
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_commit_graph(int argc,\n\t\t     const char **argv,\n\t\t
      \    const char *prefix,\n\t\t     struct repository *repo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_convert_attr_ascii
      Src: /src/git/builtin/ls-files.c:78,1
    - Dst: S_ISREG
      Src: /src/git/builtin/ls-files.c:79,1
    - Dst: get_cached_convert_stats_ascii
      Src: /src/git/builtin/ls-files.c:80,1
    - Dst: lstat
      Src: /src/git/builtin/ls-files.c:82,1
    - Dst: S_ISREG
      Src: /src/git/builtin/ls-files.c:82,1
    - Dst: get_wt_convert_stats_ascii
      Src: /src/git/builtin/ls-files.c:83,1
    - Dst: printf
      Src: /src/git/builtin/ls-files.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - istate
    - ce
    - path
    argTypes:
    - struct index_state*
    - struct cache_entry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: write_eolinfo
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - get_cached_convert_stats_ascii
    - get_wt_convert_stats_ascii
    - get_convert_attr_ascii
    - lstat
    - printf
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: "void write_eolinfo(struct index_state *istate,\n\t\t\t  const struct
      cache_entry *ce, const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_name_quoted_relative
      Src: /src/git/builtin/ls-files.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 6
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: write_name
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - write_name_quoted_relative
    linkageType: ''
    returnType: void
    signature: void write_name(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: relative_path
      Src: /src/git/builtin/ls-files.c:101,1
    - Dst: quote_c_style
      Src: /src/git/builtin/ls-files.c:104,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-files.c:106,1
    - Dst: strbuf_release
      Src: /src/git/builtin/ls-files.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sb
    - name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: write_name_to_buf
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - relative_path
    - quote_c_style
    - strbuf_release
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void write_name_to_buf(struct strbuf *sb, const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/builtin/ls-files.c:117,1
    - Dst: isalpha
      Src: /src/git/builtin/ls-files.c:119,1
    - Dst: tolower
      Src: /src/git/builtin/ls-files.c:120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ce
    - tag
    argTypes:
    - struct cache_entry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 134
    functionName: get_tag
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - isalpha
    - tolower
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *get_tag(const struct cache_entry *ce, const char *tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/ls-files.c:141,1
    - Dst: printf
      Src: /src/git/builtin/ls-files.c:142,1
    - Dst: printf
      Src: /src/git/builtin/ls-files.c:143,1
    - Dst: printf
      Src: /src/git/builtin/ls-files.c:144,1
    - Dst: printf
      Src: /src/git/builtin/ls-files.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ce
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: print_debug
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_debug(const struct cache_entry *ce)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/ls-files.c:155,1
    - Dst: dir_path_match
      Src: /src/git/builtin/ls-files.c:159,1
    - Dst: fputs
      Src: /src/git/builtin/ls-files.c:161,1
    - Dst: write_eolinfo
      Src: /src/git/builtin/ls-files.c:162,1
    - Dst: write_name
      Src: /src/git/builtin/ls-files.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - istate
    - tag
    - ent
    argTypes:
    - struct index_state*
    - char*
    - struct dir_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 149
    functionDepth: 7
    functionLinenumber: 149
    functionLinenumberEnd: 164
    functionName: show_dir_entry
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - fputs
    - die
    - write_name
    - write_eolinfo
    - dir_path_match
    linkageType: ''
    returnType: void
    signature: "void show_dir_entry(struct index_state *istate,\n\t\t\t   const char
      *tag, struct dir_entry *ent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: index_name_is_other
      Src: /src/git/builtin/ls-files.c:173,1
    - Dst: show_dir_entry
      Src: /src/git/builtin/ls-files.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - istate
    - dir
    argTypes:
    - struct index_state*
    - struct dir_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 8
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: show_other_files
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - index_name_is_other
    - show_dir_entry
    linkageType: ''
    returnType: void
    signature: "void show_other_files(struct index_state *istate,\n\t\t\t     const
      struct dir_struct *dir)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/builtin/ls-files.c:189,1
    - Dst: index_name_pos
      Src: /src/git/builtin/ls-files.c:194,1
    - Dst: BUG
      Src: /src/git/builtin/ls-files.c:196,1
    - Dst: ce_stage
      Src: /src/git/builtin/ls-files.c:200,1
    - Dst: ce_namelen
      Src: /src/git/builtin/ls-files.c:208,1
    - Dst: strncmp
      Src: /src/git/builtin/ls-files.c:210,1
    - Dst: index_name_pos
      Src: /src/git/builtin/ls-files.c:216,1
    - Dst: show_dir_entry
      Src: /src/git/builtin/ls-files.c:226,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 2
    argNames:
    - istate
    - dir
    argTypes:
    - struct index_state*
    - struct dir_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 179
    functionDepth: 8
    functionLinenumber: 179
    functionLinenumberEnd: 228
    functionName: show_killed_files
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - ce_namelen
    - show_dir_entry
    - strchr
    - strncmp
    - BUG
    - ce_stage
    linkageType: ''
    returnType: void
    signature: "void show_killed_files(struct index_state *istate,\n\t\t\t      const
      struct dir_struct *dir)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_submodule_init
      Src: /src/git/builtin/ls-files.c:237,1
    - Dst: null_oid
      Src: /src/git/builtin/ls-files.c:238,1
    - Dst: repo_read_index
      Src: /src/git/builtin/ls-files.c:241,1
    - Dst: die
      Src: /src/git/builtin/ls-files.c:242,1
    - Dst: show_files
      Src: /src/git/builtin/ls-files.c:244,1
    - Dst: repo_clear
      Src: /src/git/builtin/ls-files.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - superproject
    - dir
    - path
    argTypes:
    - struct repository*
    - struct dir_struct*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 232
    functionDepth: 10
    functionLinenumber: 232
    functionLinenumberEnd: 247
    functionName: show_submodule
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - die
    - repo_read_index
    - repo_submodule_init
    - repo_clear
    - show_files
    - null_oid
    linkageType: ''
    returnType: void
    signature: "void show_submodule(struct repository *superproject,\n\t\t\t   struct
      dir_struct *dir, const char *path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/builtin/ls-files.c:255,1
    - Dst: die
      Src: /src/git/builtin/ls-files.c:256,1
    - Dst: _
      Src: /src/git/builtin/ls-files.c:256,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/ls-files.c:257,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/ls-files.c:259,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/ls-files.c:261,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/ls-files.c:263,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-files.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - repo
    - line
    - oid
    - type
    - padded
    argTypes:
    - struct repository*
    - struct strbuf*
    - struct object_id*
    - enum object_type
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 249
    functionDepth: 12
    functionLinenumber: 249
    functionLinenumberEnd: 267
    functionName: expand_objectsize
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - die
    - strbuf_addf
    - odb_read_object_info
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: void
    signature: "void expand_objectsize(struct repository *repo, struct strbuf *line,\n\t\t\t
      \     const struct object_id *oid,\n\t\t\t      const enum object_type type,
      unsigned int padded)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_expand_step
      Src: /src/git/builtin/ls-files.c:273,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:277,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/ls-files.c:278,1
    - Dst: strbuf_expand_literal
      Src: /src/git/builtin/ls-files.c:279,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:281,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/ls-files.c:282,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:283,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/builtin/ls-files.c:284,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:285,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-files.c:286,1
    - Dst: type_name
      Src: /src/git/builtin/ls-files.c:286,1
    - Dst: object_type
      Src: /src/git/builtin/ls-files.c:286,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:287,1
    - Dst: expand_objectsize
      Src: /src/git/builtin/ls-files.c:288,1
    - Dst: object_type
      Src: /src/git/builtin/ls-files.c:289,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:290,1
    - Dst: expand_objectsize
      Src: /src/git/builtin/ls-files.c:291,1
    - Dst: object_type
      Src: /src/git/builtin/ls-files.c:292,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:293,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/ls-files.c:294,1
    - Dst: ce_stage
      Src: /src/git/builtin/ls-files.c:294,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:295,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-files.c:296,1
    - Dst: S_ISREG
      Src: /src/git/builtin/ls-files.c:296,1
    - Dst: get_cached_convert_stats_ascii
      Src: /src/git/builtin/ls-files.c:297,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:299,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-files.c:300,1
    - Dst: lstat
      Src: /src/git/builtin/ls-files.c:300,1
    - Dst: S_ISREG
      Src: /src/git/builtin/ls-files.c:301,1
    - Dst: get_wt_convert_stats_ascii
      Src: /src/git/builtin/ls-files.c:302,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:303,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-files.c:304,1
    - Dst: get_convert_attr_ascii
      Src: /src/git/builtin/ls-files.c:304,1
    - Dst: skip_prefix
      Src: /src/git/builtin/ls-files.c:306,1
    - Dst: write_name_to_buf
      Src: /src/git/builtin/ls-files.c:307,1
    - Dst: strbuf_expand_bad_format
      Src: /src/git/builtin/ls-files.c:309,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/ls-files.c:311,1
    - Dst: fwrite
      Src: /src/git/builtin/ls-files.c:312,1
    - Dst: strbuf_release
      Src: /src/git/builtin/ls-files.c:313,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 4
    argNames:
    - repo
    - ce
    - format
    - fullname
    argTypes:
    - struct repository*
    - struct cache_entry*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 314
    functionName: show_ce_fmt
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - get_wt_convert_stats_ascii
    - type_name
    - expand_objectsize
    - strbuf_release
    - get_cached_convert_stats_ascii
    - write_name_to_buf
    - strbuf_expand_literal
    - strbuf_add_unique_abbrev
    - strbuf_addstr
    - S_ISREG
    - get_convert_attr_ascii
    - skip_prefix
    - ce_stage
    - object_type
    - fwrite
    - strbuf_addch
    - strbuf_expand_step
    - lstat
    - strbuf_expand_bad_format
    linkageType: ''
    returnType: void
    signature: "void show_ce_fmt(struct repository *repo, const struct cache_entry
      *ce,\n\t\t\tconst char *format, const char *fullname)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/ls-files.c:320,1
    - Dst: die
      Src: /src/git/builtin/ls-files.c:321,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/ls-files.c:323,1
    - Dst: is_submodule_active
      Src: /src/git/builtin/ls-files.c:324,1
    - Dst: show_submodule
      Src: /src/git/builtin/ls-files.c:325,1
    - Dst: match_pathspec
      Src: /src/git/builtin/ls-files.c:326,1
    - Dst: strlen
      Src: /src/git/builtin/ls-files.c:326,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/ls-files.c:328,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/ls-files.c:329,1
    - Dst: show_ce_fmt
      Src: /src/git/builtin/ls-files.c:331,1
    - Dst: print_debug
      Src: /src/git/builtin/ls-files.c:332,1
    - Dst: get_tag
      Src: /src/git/builtin/ls-files.c:336,1
    - Dst: fputs
      Src: /src/git/builtin/ls-files.c:339,1
    - Dst: printf
      Src: /src/git/builtin/ls-files.c:341,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/ls-files.c:344,1
    - Dst: ce_stage
      Src: /src/git/builtin/ls-files.c:345,1
    - Dst: write_eolinfo
      Src: /src/git/builtin/ls-files.c:347,1
    - Dst: write_name
      Src: /src/git/builtin/ls-files.c:348,1
    - Dst: print_debug
      Src: /src/git/builtin/ls-files.c:349,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - repo
    - dir
    - ce
    - fullname
    - tag
    argTypes:
    - struct repository*
    - struct dir_struct*
    - struct cache_entry*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 316
    functionDepth: 21
    functionLinenumber: 316
    functionLinenumberEnd: 351
    functionName: show_ce
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - show_ce_fmt
    - is_submodule_active
    - S_ISDIR
    - die
    - fputs
    - write_name
    - S_ISGITLINK
    - ce_stage
    - strlen
    - repo_find_unique_abbrev
    - match_pathspec
    - show_submodule
    - get_tag
    - write_eolinfo
    - print_debug
    - printf
    linkageType: ''
    returnType: void
    signature: "void show_ce(struct repository *repo, struct dir_struct *dir,\n\t\t
      \   const struct cache_entry *ce, const char *fullname,\n\t\t    const char
      *tag)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/ls-files.c:360,1
    - Dst: strlen
      Src: /src/git/builtin/ls-files.c:365,1
    - Dst: match_pathspec
      Src: /src/git/builtin/ls-files.c:368,1
    - Dst: printf
      Src: /src/git/builtin/ls-files.c:374,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/ls-files.c:375,1
    - Dst: write_name
      Src: /src/git/builtin/ls-files.c:377,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - repo
    - istate
    argTypes:
    - struct repository*
    - struct index_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 353
    functionDepth: 7
    functionLinenumber: 353
    functionLinenumberEnd: 380
    functionName: show_ru_info
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - strlen
    - repo_find_unique_abbrev
    - match_pathspec
    - write_name
    - printf
    linkageType: ''
    returnType: void
    signature: void show_ru_info(struct repository *repo, struct index_state *istate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ce_to_dtype
      Src: /src/git/builtin/ls-files.c:385,1
    - Dst: is_excluded
      Src: /src/git/builtin/ls-files.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dir
    - istate
    - fullname
    - ce
    argTypes:
    - struct dir_struct*
    - struct index_state*
    - char*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 382
    functionDepth: 8
    functionLinenumber: 382
    functionLinenumberEnd: 387
    functionName: ce_excluded
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - is_excluded
    - ce_to_dtype
    linkageType: ''
    returnType: int
    signature: "int ce_excluded(struct dir_struct *dir, struct index_state *istate,\n\t\t
      \      const char *fullname, const struct cache_entry *ce)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/ls-files.c:392,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-files.c:394,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/ls-files.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - repo
    - ce
    argTypes:
    - struct strbuf*
    - struct repository*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 389
    functionDepth: 4
    functionLinenumber: 389
    functionLinenumberEnd: 396
    functionName: construct_fullname
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void construct_fullname(struct strbuf *out, const struct repository
      *repo,\n\t\t\t       const struct cache_entry *ce)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fill_directory
      Src: /src/git/builtin/ls-files.c:407,1
    - Dst: show_other_files
      Src: /src/git/builtin/ls-files.c:409,1
    - Dst: show_killed_files
      Src: /src/git/builtin/ls-files.c:411,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/builtin/ls-files.c:422,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/ls-files.c:428,1
    - Dst: construct_fullname
      Src: /src/git/builtin/ls-files.c:432,1
    - Dst: ce_excluded
      Src: /src/git/builtin/ls-files.c:435,1
    - Dst: ce_stage
      Src: /src/git/builtin/ls-files.c:440,1
    - Dst: show_ce
      Src: /src/git/builtin/ls-files.c:441,1
    - Dst: ce_stage
      Src: /src/git/builtin/ls-files.c:442,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/ls-files.c:443,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/ls-files.c:451,1
    - Dst: lstat
      Src: /src/git/builtin/ls-files.c:453,1
    - Dst: error_errno
      Src: /src/git/builtin/ls-files.c:455,1
    - Dst: show_ce
      Src: /src/git/builtin/ls-files.c:457,1
    - Dst: ie_modified
      Src: /src/git/builtin/ls-files.c:462,1
    - Dst: show_ce
      Src: /src/git/builtin/ls-files.c:463,1
    - Dst: strcmp
      Src: /src/git/builtin/ls-files.c:474,1
    - Dst: strbuf_release
      Src: /src/git/builtin/ls-files.c:480,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 57
    argCount: 2
    argNames:
    - repo
    - dir
    argTypes:
    - struct repository*
    - struct dir_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 398
    functionDepth: 22
    functionLinenumber: 398
    functionLinenumberEnd: 481
    functionName: show_files
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 1
    functionsReached:
    - ensure_full_index
    - error_errno
    - strbuf_release
    - ce_excluded
    - S_ISSPARSEDIR
    - ce_stage
    - ce_skip_worktree
    - strcmp
    - fill_directory
    - show_ce
    - ie_modified
    - lstat
    - show_other_files
    - show_killed_files
    - construct_fullname
    linkageType: ''
    returnType: void
    signature: void show_files(struct repository *repo, struct dir_struct *dir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/builtin/ls-files.c:494,1
    - Dst: strncmp
      Src: /src/git/builtin/ls-files.c:502,1
    - Dst: MOVE_ARRAY
      Src: /src/git/builtin/ls-files.c:508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - istate
    - prefix
    - prefixlen
    argTypes:
    - struct index_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 510
    functionName: prune_index
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - strncmp
    - index_name_pos
    - MOVE_ARRAY
    linkageType: ''
    returnType: void
    signature: "void prune_index(struct index_state *istate,\n\t\t\tconst char *prefix,
      size_t prefixlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/ls-files.c:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - common_prefix
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 529
    functionName: get_common_prefix_len
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int get_common_prefix_len(const char *common_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/ls-files.c:541,1
    - Dst: string_list_append
      Src: /src/git/builtin/ls-files.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 547
    functionName: option_parse_exclude
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - string_list_append
    linkageType: ''
    returnType: int
    signature: "int option_parse_exclude(const struct option *opt,\n\t\t\t\tconst
      char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/ls-files.c:554,1
    - Dst: add_patterns_from_file
      Src: /src/git/builtin/ls-files.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 549
    functionDepth: 6
    functionLinenumber: 549
    functionLinenumberEnd: 560
    functionName: option_parse_exclude_from
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - add_patterns_from_file
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int option_parse_exclude_from(const struct option *opt,\n\t\t\t\t
      \    const char *arg, int unset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/ls-files.c:567,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/ls-files.c:568,1
    - Dst: setup_standard_excludes
      Src: /src/git/builtin/ls-files.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 574
    functionName: option_parse_exclude_standard
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - setup_standard_excludes
    - BUG_ON_OPT_NEG
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int option_parse_exclude_standard(const struct option *opt,\n\t\t\t\t\t
      const char *arg, int unset)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/ls-files.c:588,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:589,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:590,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:591,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:592,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:593,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:594,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:595,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:596,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:597,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:598,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:599,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:600,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:601,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:602,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:603,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/ls-files.c:604,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:605,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:607,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:608,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:609,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:610,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/ls-files.c:611,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:612,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:614,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:614,1
    - Dst: OPT_NEGBIT
      Src: /src/git/builtin/ls-files.c:615,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:616,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:618,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:619,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:620,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:621,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/ls-files.c:622,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:622,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:623,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/ls-files.c:625,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:625,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:626,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/ls-files.c:628,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:628,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:629,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/ls-files.c:630,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:631,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/ls-files.c:634,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:635,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:637,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:638,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:639,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:640,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/ls-files.c:641,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:641,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:642,1
    - Dst: OPT__ABBREV
      Src: /src/git/builtin/ls-files.c:643,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:644,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:644,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:645,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:646,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/ls-files.c:647,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:648,1
    - Dst: OPT_STRING_F
      Src: /src/git/builtin/ls-files.c:649,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:649,1
    - Dst: N_
      Src: /src/git/builtin/ls-files.c:650,1
    - Dst: OPT_END
      Src: /src/git/builtin/ls-files.c:652,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/ls-files.c:656,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/ls-files.c:659,1
    - Dst: strlen
      Src: /src/git/builtin/ls-files.c:664,1
    - Dst: repo_config
      Src: /src/git/builtin/ls-files.c:665,1
    - Dst: repo_read_index
      Src: /src/git/builtin/ls-files.c:667,1
    - Dst: die
      Src: /src/git/builtin/ls-files.c:668,1
    - Dst: parse_options
      Src: /src/git/builtin/ls-files.c:670,1
    - Dst: add_pattern_list
      Src: /src/git/builtin/ls-files.c:672,1
    - Dst: add_pattern
      Src: /src/git/builtin/ls-files.c:674,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/ls-files.c:679,1
    - Dst: _
      Src: /src/git/builtin/ls-files.c:679,1
    - Dst: is_inside_work_tree
      Src: /src/git/builtin/ls-files.c:706,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/ls-files.c:707,1
    - Dst: die
      Src: /src/git/builtin/ls-files.c:712,1
    - Dst: die
      Src: /src/git/builtin/ls-files.c:715,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/ls-files.c:718,1
    - Dst: common_prefix
      Src: /src/git/builtin/ls-files.c:733,1
    - Dst: get_common_prefix_len
      Src: /src/git/builtin/ls-files.c:734,1
    - Dst: prune_index
      Src: /src/git/builtin/ls-files.c:736,1
    - Dst: xcalloc
      Src: /src/git/builtin/ls-files.c:740,1
    - Dst: die
      Src: /src/git/builtin/ls-files.c:743,1
    - Dst: die
      Src: /src/git/builtin/ls-files.c:746,1
    - Dst: die
      Src: /src/git/builtin/ls-files.c:759,1
    - Dst: _
      Src: /src/git/builtin/ls-files.c:759,1
    - Dst: overlay_tree_on_index
      Src: /src/git/builtin/ls-files.c:760,1
    - Dst: show_files
      Src: /src/git/builtin/ls-files.c:763,1
    - Dst: show_ru_info
      Src: /src/git/builtin/ls-files.c:766,1
    - Dst: report_path_error
      Src: /src/git/builtin/ls-files.c:768,1
    - Dst: fprintf
      Src: /src/git/builtin/ls-files.c:769,1
    - Dst: string_list_clear
      Src: /src/git/builtin/ls-files.c:773,1
    - Dst: dir_clear
      Src: /src/git/builtin/ls-files.c:774,1
    - Dst: free
      Src: /src/git/builtin/ls-files.c:775,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 71
    argCount: 4
    argNames:
    - argc
    - argv
    - cmd_prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 576
    functionDepth: 23
    functionLinenumber: 576
    functionLinenumberEnd: 777
    functionName: cmd_ls_files
    functionSourceFile: /src/git/builtin/ls-files.c
    functionUses: 0
    functionsReached:
    - parse_options
    - add_pattern_list
    - OPT_BOOL
    - free
    - OPT_STRING_F
    - repo_config
    - OPT_END
    - die
    - repo_read_index
    - is_inside_work_tree
    - OPT_BIT
    - xcalloc
    - get_common_prefix_len
    - parse_pathspec
    - string_list_clear
    - OPT__ABBREV
    - setup_work_tree
    - show_ru_info
    - OPT_SET_INT
    - OPT_SET_INT_F
    - report_path_error
    - dir_clear
    - _
    - N_
    - overlay_tree_on_index
    - usage_msg_opt
    - OPT_NEGBIT
    - OPT_CALLBACK_F
    - OPT_STRING
    - common_prefix
    - prepare_repo_settings
    - strlen
    - prune_index
    - show_files
    - add_pattern
    - fprintf
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: "int cmd_ls_files(int argc,\n\t\t const char **argv,\n\t\t const char
      *cmd_prefix,\n\t\t struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/bisect.c:83,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/bisect.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - terms
    argTypes:
    - struct bisect_terms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: free_terms
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void free_terms(struct bisect_terms *terms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/bisect.c:90,1
    - Dst: xstrdup
      Src: /src/git/builtin/bisect.c:91,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:92,1
    - Dst: xstrdup
      Src: /src/git/builtin/bisect.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - terms
    - bad
    - good
    argTypes:
    - struct bisect_terms*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: set_terms
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: "void set_terms(struct bisect_terms *terms, const char *bad,\n\t\t
      \     const char *good)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/git/builtin/bisect.c:112,1
    - Dst: va_arg
      Src: /src/git/builtin/bisect.c:113,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:114,1
    - Dst: va_end
      Src: /src/git/builtin/bisect.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - term
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: one_of
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - va_arg
    - strcmp
    linkageType: ''
    returnType: LAST_ARG_MUST_BE_NULL
    signature: LAST_ARG_MUST_BE_NULL one_of(const char *term, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - res
    argTypes:
    - enum bisect_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: is_bisect_success
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_bisect_success(enum bisect_error res)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:138,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:138,1
    - Dst: BUG
      Src: /src/git/builtin/bisect.c:139,1
    - Dst: fopen
      Src: /src/git/builtin/bisect.c:140,1
    - Dst: error_errno
      Src: /src/git/builtin/bisect.c:142,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:142,1
    - Dst: vfprintf
      Src: /src/git/builtin/bisect.c:143,1
    - Dst: fclose
      Src: /src/git/builtin/bisect.c:147,1
    - Dst: error_errno
      Src: /src/git/builtin/bisect.c:149,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:149,1
    - Dst: fclose
      Src: /src/git/builtin/bisect.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - path
    - mode
    - format
    - args
    argTypes:
    - char*
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 153
    functionName: write_in_file
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - vfprintf
    - fopen
    - strcmp
    - _
    - BUG
    linkageType: ''
    returnType: int
    signature: int write_in_file(const char *path, const char *mode, const char *format,
      va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/builtin/bisect.c:155,1
    - Dst: va_start
      Src: /src/git/builtin/bisect.c:161,1
    - Dst: write_in_file
      Src: /src/git/builtin/bisect.c:162,1
    - Dst: va_end
      Src: /src/git/builtin/bisect.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - path
    - format
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: write_to_file
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 4
    functionsReached:
    - va_end
    - va_start
    - format
    - write_in_file
    linkageType: ''
    returnType: int
    signature: int write_to_file(const char *path, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/builtin/bisect.c:168,1
    - Dst: va_start
      Src: /src/git/builtin/bisect.c:174,1
    - Dst: write_in_file
      Src: /src/git/builtin/bisect.c:175,1
    - Dst: va_end
      Src: /src/git/builtin/bisect.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - path
    - format
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: append_to_file
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - format
    - write_in_file
    linkageType: ''
    returnType: int
    signature: int append_to_file(const char *path, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/builtin/bisect.c:183,1
    - Dst: error_errno
      Src: /src/git/builtin/bisect.c:187,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:187,1
    - Dst: copy_fd
      Src: /src/git/builtin/bisect.c:188,1
    - Dst: error_errno
      Src: /src/git/builtin/bisect.c:189,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:189,1
    - Dst: close
      Src: /src/git/builtin/bisect.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: print_file_to_stdout
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error_errno
    - copy_fd
    - open
    - _
    - close
    linkageType: ''
    returnType: int
    signature: int print_file_to_stdout(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/bisect.c:197,1
    - Dst: check_refname_format
      Src: /src/git/builtin/bisect.c:199,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:200,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:203,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:203,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:205,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:207,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:207,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:215,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:215,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:216,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:216,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:217,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - term
    - orig_term
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 194
    functionDepth: 5
    functionLinenumber: 194
    functionLinenumberEnd: 220
    functionName: check_term_format
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - one_of
    - xstrfmt
    - strcmp
    - check_refname_format
    - _
    - free
    linkageType: ''
    returnType: int
    signature: int check_term_format(const char *term, const char *orig_term)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:226,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:227,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:227,1
    - Dst: check_term_format
      Src: /src/git/builtin/bisect.c:229,1
    - Dst: check_term_format
      Src: /src/git/builtin/bisect.c:229,1
    - Dst: write_to_file
      Src: /src/git/builtin/bisect.c:232,1
    - Dst: git_path_bisect_terms
      Src: /src/git/builtin/bisect.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - bad
    - good
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 235
    functionName: write_terms
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - git_path_bisect_terms
    - write_to_file
    - check_term_format
    - strcmp
    - _
    linkageType: ''
    returnType: int
    signature: int write_terms(const char *bad, const char *good)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_read_file
      Src: /src/git/builtin/bisect.c:242,1
    - Dst: git_path_bisect_start
      Src: /src/git/builtin/bisect.c:242,1
    - Dst: printf
      Src: /src/git/builtin/bisect.c:243,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:243,1
    - Dst: strbuf_rtrim
      Src: /src/git/builtin/bisect.c:245,1
    - Dst: repo_get_oid_commit
      Src: /src/git/builtin/bisect.c:249,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:250,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:250,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bisect.c:251,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/bisect.c:254,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:254,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/bisect.c:258,1
    - Dst: run_command
      Src: /src/git/builtin/bisect.c:260,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:261,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:261,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:264,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:269,1
    - Dst: bisect_clean_state
      Src: /src/git/builtin/bisect.c:270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - commit
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 237
    functionDepth: 9
    functionLinenumber: 237
    functionLinenumberEnd: 271
    functionName: bisect_reset
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - repo_get_oid_commit
    - run_command
    - strbuf_read_file
    - strvec_pushl
    - strbuf_addstr
    - _
    - refs_ref_exists
    - git_path_bisect_start
    - get_main_ref_store
    - printf
    - bisect_clean_state
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: int bisect_reset(const char *commit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/bisect.c:279,1
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/bisect.c:281,1
    - Dst: fprintf
      Src: /src/git/builtin/bisect.c:284,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/bisect.c:284,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:287,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - fp
    - fmt
    - state
    - commit
    argTypes:
    - FILE*
    - char*
    - char*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 273
    functionDepth: 14
    functionLinenumber: 273
    functionLinenumberEnd: 289
    functionName: log_commit
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 2
    functionsReached:
    - repo_format_commit_message
    - strbuf_release
    - oid_to_hex
    - xstrfmt
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void log_commit(FILE *fp,\n\t\t       const char *fmt, const char
      *state,\n\t\t       struct commit *commit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:300,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/bisect.c:301,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:302,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/bisect.c:303,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:305,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:305,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/bisect.c:309,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:310,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:310,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/bisect.c:314,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:314,1
    - Dst: fopen
      Src: /src/git/builtin/bisect.c:320,1
    - Dst: git_path_bisect_log
      Src: /src/git/builtin/bisect.c:320,1
    - Dst: error_errno
      Src: /src/git/builtin/bisect.c:322,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:322,1
    - Dst: git_path_bisect_log
      Src: /src/git/builtin/bisect.c:322,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/bisect.c:326,1
    - Dst: log_commit
      Src: /src/git/builtin/bisect.c:327,1
    - Dst: fprintf
      Src: /src/git/builtin/bisect.c:330,1
    - Dst: fclose
      Src: /src/git/builtin/bisect.c:334,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:335,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - state
    - rev
    - terms
    - nolog
    argTypes:
    - char*
    - char*
    - struct bisect_terms*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 291
    functionDepth: 15
    functionLinenumber: 291
    functionLinenumberEnd: 337
    functionName: bisect_write
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - one_of
    - error
    - error_errno
    - fclose
    - strbuf_release
    - lookup_commit_reference
    - repo_get_oid
    - log_commit
    - strbuf_addf
    - fopen
    - strcmp
    - _
    - git_path_bisect_log
    - refs_update_ref
    - fprintf
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int bisect_write(const char *state, const char *rev,\n\t\t\tconst
      struct bisect_terms *terms, int nolog)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_or_missing_file
      Src: /src/git/builtin/bisect.c:341,1
    - Dst: git_path_bisect_terms
      Src: /src/git/builtin/bisect.c:341,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:343,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:346,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:347,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:348,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:348,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:353,1
    - Dst: set_terms
      Src: /src/git/builtin/bisect.c:354,1
    - Dst: write_terms
      Src: /src/git/builtin/bisect.c:355,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:357,1
    - Dst: set_terms
      Src: /src/git/builtin/bisect.c:358,1
    - Dst: write_terms
      Src: /src/git/builtin/bisect.c:359,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - terms
    - cmd
    argTypes:
    - struct bisect_terms*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 339
    functionDepth: 7
    functionLinenumber: 339
    functionLinenumberEnd: 364
    functionName: check_and_set_terms
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - git_path_bisect_terms
    - error
    - is_empty_or_missing_file
    - one_of
    - set_terms
    - write_terms
    - strcmp
    - _
    linkageType: ''
    returnType: int
    signature: int check_and_set_terms(struct bisect_terms *terms, const char *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - UNUSED
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 371
    functionName: inc_nr
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int inc_nr(const struct reference *ref UNUSED, void *cb_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:392,1
    - Dst: warning
      Src: /src/git/builtin/bisect.c:398,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:398,1
    - Dst: isatty
      Src: /src/git/builtin/bisect.c:399,1
    - Dst: git_prompt
      Src: /src/git/builtin/bisect.c:406,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:406,1
    - Dst: starts_with
      Src: /src/git/builtin/bisect.c:407,1
    - Dst: starts_with
      Src: /src/git/builtin/bisect.c:407,1
    - Dst: is_empty_or_missing_file
      Src: /src/git/builtin/bisect.c:412,1
    - Dst: git_path_bisect_start
      Src: /src/git/builtin/bisect.c:412,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:413,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:413,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:416,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:416,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 4
    argNames:
    - terms
    - current_term
    - missing_good
    - missing_bad
    argTypes:
    - struct bisect_terms*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 382
    functionDepth: 9
    functionLinenumber: 382
    functionLinenumberEnd: 418
    functionName: decide_next
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - is_empty_or_missing_file
    - git_path_bisect_start
    - starts_with
    - git_prompt
    - strcmp
    - warning
    - _
    - isatty
    linkageType: ''
    returnType: int
    signature: "int decide_next(const struct bisect_terms *terms,\n\t\t       const
      char *current_term, int missing_good,\n\t\t       int missing_bad)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/bisect.c:423,1
    - Dst: xstrfmt
      Src: /src/git/builtin/bisect.c:424,1
    - Dst: strlen
      Src: /src/git/builtin/bisect.c:428,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/bisect.c:431,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:431,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/bisect.c:434,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:434,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:437,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - terms
    argTypes:
    - struct bisect_state*
    - struct bisect_terms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 420
    functionDepth: 5
    functionLinenumber: 420
    functionLinenumberEnd: 439
    functionName: bisect_status
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - refs_for_each_ref_ext
    - strlen
    - free
    - refs_ref_exists
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void bisect_status(struct bisect_state *state,\n\t\t\t  const struct
      bisect_terms *terms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/builtin/bisect.c:441,1
    - Dst: va_start
      Src: /src/git/builtin/bisect.c:447,1
    - Dst: strbuf_vaddf
      Src: /src/git/builtin/bisect.c:448,1
    - Dst: va_end
      Src: /src/git/builtin/bisect.c:449,1
    - Dst: printf
      Src: /src/git/builtin/bisect.c:451,1
    - Dst: append_to_file
      Src: /src/git/builtin/bisect.c:452,1
    - Dst: git_path_bisect_log
      Src: /src/git/builtin/bisect.c:452,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 455
    functionName: bisect_log_printf
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_vaddf
    - append_to_file
    - va_end
    - git_path_bisect_log
    - va_start
    - printf
    - format
    linkageType: ''
    returnType: void
    signature: void bisect_log_printf(const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bisect_status
      Src: /src/git/builtin/bisect.c:461,1
    - Dst: bisect_log_printf
      Src: /src/git/builtin/bisect.c:468,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:468,1
    - Dst: bisect_log_printf
      Src: /src/git/builtin/bisect.c:470,1
    - Dst: Q_
      Src: /src/git/builtin/bisect.c:470,1
    - Dst: bisect_log_printf
      Src: /src/git/builtin/bisect.c:474,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - terms
    argTypes:
    - struct bisect_terms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 457
    functionDepth: 6
    functionLinenumber: 457
    functionLinenumberEnd: 475
    functionName: bisect_print_status
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - Q_
    - bisect_log_printf
    - bisect_status
    - _
    linkageType: ''
    returnType: void
    signature: void bisect_print_status(const struct bisect_terms *terms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bisect_status
      Src: /src/git/builtin/bisect.c:481,1
    - Dst: decide_next
      Src: /src/git/builtin/bisect.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - terms
    - current_term
    argTypes:
    - struct bisect_terms*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 477
    functionDepth: 10
    functionLinenumber: 477
    functionLinenumberEnd: 483
    functionName: bisect_next_check
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - bisect_status
    - decide_next
    linkageType: ''
    returnType: int
    signature: "int bisect_next_check(const struct bisect_terms *terms,\n\t\t\t     const
      char *current_term)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/builtin/bisect.c:491,1
    - Dst: git_path_bisect_terms
      Src: /src/git/builtin/bisect.c:491,1
    - Dst: free_terms
      Src: /src/git/builtin/bisect.c:497,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/bisect.c:498,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/bisect.c:499,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/bisect.c:500,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/bisect.c:501,1
    - Dst: fclose
      Src: /src/git/builtin/bisect.c:505,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - terms
    argTypes:
    - struct bisect_terms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 508
    functionName: get_terms
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - git_path_bisect_terms
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - fopen
    - strbuf_detach
    - free_terms
    linkageType: ''
    returnType: int
    signature: int get_terms(struct bisect_terms *terms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_terms
      Src: /src/git/builtin/bisect.c:512,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:513,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:513,1
    - Dst: printf
      Src: /src/git/builtin/bisect.c:516,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:516,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:521,1
    - Dst: printf
      Src: /src/git/builtin/bisect.c:522,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:523,1
    - Dst: printf
      Src: /src/git/builtin/bisect.c:524,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:526,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - terms
    - option
    argTypes:
    - struct bisect_terms*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 510
    functionDepth: 6
    functionLinenumber: 510
    functionLinenumberEnd: 532
    functionName: bisect_terms
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 7
    functionsReached:
    - error
    - one_of
    - get_terms
    - _
    - printf
    linkageType: ''
    returnType: int
    signature: int bisect_terms(struct bisect_terms *terms, const char *option)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/git/builtin/bisect.c:537,1
    - Dst: git_path_bisect_log
      Src: /src/git/builtin/bisect.c:537,1
    - Dst: fprintf
      Src: /src/git/builtin/bisect.c:543,1
    - Dst: sq_quote_argv
      Src: /src/git/builtin/bisect.c:548,1
    - Dst: fprintf
      Src: /src/git/builtin/bisect.c:549,1
    - Dst: fclose
      Src: /src/git/builtin/bisect.c:553,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 534
    functionDepth: 6
    functionLinenumber: 534
    functionLinenumberEnd: 556
    functionName: bisect_append_log_quoted
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - sq_quote_argv
    - fopen
    - git_path_bisect_log
    - fprintf
    linkageType: ''
    returnType: int
    signature: int bisect_append_log_quoted(const char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pending_oid
      Src: /src/git/builtin/bisect.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cb
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 558
    functionDepth: 6
    functionLinenumber: 558
    functionLinenumberEnd: 565
    functionName: add_bisect_ref
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - add_pending_oid
    linkageType: ''
    returnType: int
    signature: int add_bisect_ref(const struct reference *ref, void *cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/bisect.c:571,1
    - Dst: xstrfmt
      Src: /src/git/builtin/bisect.c:575,1
    - Dst: xstrfmt
      Src: /src/git/builtin/bisect.c:582,1
    - Dst: reset_revision_walk
      Src: /src/git/builtin/bisect.c:589,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/bisect.c:590,1
    - Dst: setup_revisions
      Src: /src/git/builtin/bisect.c:591,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/bisect.c:594,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:594,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/bisect.c:599,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:599,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/bisect.c:602,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:603,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:603,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:605,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - terms
    - revs
    argTypes:
    - struct bisect_terms*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 567
    functionDepth: 12
    functionLinenumber: 567
    functionLinenumberEnd: 608
    functionName: prepare_revs
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 1
    functionsReached:
    - error
    - xstrfmt
    - reset_revision_walk
    - repo_init_revisions
    - refs_for_each_ref_ext
    - strlen
    - prepare_revision_walk
    - _
    - free
    - setup_revisions
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int prepare_revs(struct bisect_terms *terms, struct rev_info *revs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prepare_revs
      Src: /src/git/builtin/bisect.c:619,1
    - Dst: fopen
      Src: /src/git/builtin/bisect.c:623,1
    - Dst: git_path_bisect_log
      Src: /src/git/builtin/bisect.c:623,1
    - Dst: error_errno
      Src: /src/git/builtin/bisect.c:625,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:625,1
    - Dst: git_path_bisect_log
      Src: /src/git/builtin/bisect.c:626,1
    - Dst: fprintf
      Src: /src/git/builtin/bisect.c:628,1
    - Dst: error_errno
      Src: /src/git/builtin/bisect.c:629,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:629,1
    - Dst: git_path_bisect_log
      Src: /src/git/builtin/bisect.c:629,1
    - Dst: get_revision
      Src: /src/git/builtin/bisect.c:631,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/bisect.c:632,1
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/bisect.c:633,1
    - Dst: fprintf
      Src: /src/git/builtin/bisect.c:635,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/bisect.c:636,1
    - Dst: reset_revision_walk
      Src: /src/git/builtin/bisect.c:644,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:646,1
    - Dst: release_revisions
      Src: /src/git/builtin/bisect.c:647,1
    - Dst: fclose
      Src: /src/git/builtin/bisect.c:648,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - terms
    argTypes:
    - struct bisect_terms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 610
    functionDepth: 14
    functionLinenumber: 610
    functionLinenumberEnd: 650
    functionName: bisect_skipped_commits
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - repo_format_commit_message
    - oid_to_hex
    - strbuf_release
    - release_revisions
    - get_revision
    - strbuf_reset
    - prepare_revs
    - reset_revision_walk
    - fopen
    - _
    - git_path_bisect_log
    - fprintf
    linkageType: ''
    returnType: int
    signature: int bisect_skipped_commits(struct bisect_terms *terms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/bisect.c:658,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/bisect.c:661,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:661,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/bisect.c:662,1
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/bisect.c:663,1
    - Dst: append_to_file
      Src: /src/git/builtin/bisect.c:666,1
    - Dst: git_path_bisect_log
      Src: /src/git/builtin/bisect.c:666,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/bisect.c:667,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:670,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - terms
    argTypes:
    - struct bisect_terms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 652
    functionDepth: 14
    functionLinenumber: 652
    functionLinenumberEnd: 673
    functionName: bisect_successful
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - strbuf_release
    - oid_to_hex
    - lookup_commit_reference_by_name
    - xstrfmt
    - append_to_file
    - refs_read_ref
    - free
    - git_path_bisect_log
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int bisect_successful(struct bisect_terms *terms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bisect_autostart
      Src: /src/git/builtin/bisect.c:679,1
    - Dst: bisect_next_check
      Src: /src/git/builtin/bisect.c:682,1
    - Dst: bisect_next_all
      Src: /src/git/builtin/bisect.c:686,1
    - Dst: bisect_successful
      Src: /src/git/builtin/bisect.c:689,1
    - Dst: bisect_skipped_commits
      Src: /src/git/builtin/bisect.c:692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - terms
    - prefix
    argTypes:
    - struct bisect_terms*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 675
    functionDepth: 18
    functionLinenumber: 675
    functionLinenumberEnd: 696
    functionName: bisect_next
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - bisect_next_check
    - bisect_autostart
    - bisect_next_all
    - bisect_skipped_commits
    - bisect_successful
    linkageType: ''
    returnType: enum bisect_error
    signature: enum bisect_error bisect_next(struct bisect_terms *terms, const char
      *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bisect_next_check
      Src: /src/git/builtin/bisect.c:700,1
    - Dst: bisect_print_status
      Src: /src/git/builtin/bisect.c:701,1
    - Dst: bisect_next
      Src: /src/git/builtin/bisect.c:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - terms
    - prefix
    argTypes:
    - struct bisect_terms*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 698
    functionDepth: 19
    functionLinenumber: 698
    functionLinenumberEnd: 706
    functionName: bisect_auto_next
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - bisect_next_check
    - bisect_print_status
    - bisect_next
    linkageType: ''
    returnType: enum bisect_error
    signature: enum bisect_error bisect_auto_next(struct bisect_terms *terms, const
      char *prefix)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: is_bare_repository
      Src: /src/git/builtin/bisect.c:724,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:731,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:739,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:741,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:743,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:745,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:746,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:749,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:749,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:751,1
    - Dst: xstrdup
      Src: /src/git/builtin/bisect.c:752,1
    - Dst: skip_prefix
      Src: /src/git/builtin/bisect.c:753,1
    - Dst: skip_prefix
      Src: /src/git/builtin/bisect.c:754,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:756,1
    - Dst: xstrdup
      Src: /src/git/builtin/bisect.c:757,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:758,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:759,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:762,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:762,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:764,1
    - Dst: xstrdup
      Src: /src/git/builtin/bisect.c:765,1
    - Dst: skip_prefix
      Src: /src/git/builtin/bisect.c:766,1
    - Dst: skip_prefix
      Src: /src/git/builtin/bisect.c:767,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:769,1
    - Dst: xstrdup
      Src: /src/git/builtin/bisect.c:770,1
    - Dst: starts_with
      Src: /src/git/builtin/bisect.c:771,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:772,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:772,1
    - Dst: get_oidf
      Src: /src/git/builtin/bisect.c:773,1
    - Dst: string_list_append
      Src: /src/git/builtin/bisect.c:774,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/bisect.c:774,1
    - Dst: die
      Src: /src/git/builtin/bisect.c:776,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:776,1
    - Dst: string_list_append
      Src: /src/git/builtin/bisect.c:794,1
    - Dst: string_list_append
      Src: /src/git/builtin/bisect.c:797,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/bisect.c:804,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:804,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/bisect.c:807,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:808,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:808,1
    - Dst: is_empty_or_missing_file
      Src: /src/git/builtin/bisect.c:813,1
    - Dst: git_path_bisect_start
      Src: /src/git/builtin/bisect.c:813,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/bisect.c:815,1
    - Dst: git_path_bisect_start
      Src: /src/git/builtin/bisect.c:815,1
    - Dst: strbuf_trim
      Src: /src/git/builtin/bisect.c:816,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/bisect.c:821,1
    - Dst: run_command
      Src: /src/git/builtin/bisect.c:823,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:824,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:824,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/bisect.c:833,1
    - Dst: starts_with
      Src: /src/git/builtin/bisect.c:834,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/bisect.c:835,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bisect.c:836,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/bisect.c:836,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/bisect.c:837,1
    - Dst: skip_prefix
      Src: /src/git/builtin/bisect.c:838,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/bisect.c:839,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:841,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:841,1
    - Dst: bisect_clean_state
      Src: /src/git/builtin/bisect.c:848,1
    - Dst: write_file
      Src: /src/git/builtin/bisect.c:854,1
    - Dst: git_path_bisect_start
      Src: /src/git/builtin/bisect.c:854,1
    - Dst: write_file
      Src: /src/git/builtin/bisect.c:857,1
    - Dst: git_path_bisect_first_parent
      Src: /src/git/builtin/bisect.c:857,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/bisect.c:860,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:861,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:861,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/bisect.c:864,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:864,1
    - Dst: sq_quote_argv
      Src: /src/git/builtin/bisect.c:872,1
    - Dst: write_file
      Src: /src/git/builtin/bisect.c:873,1
    - Dst: git_path_bisect_names
      Src: /src/git/builtin/bisect.c:873,1
    - Dst: bisect_write
      Src: /src/git/builtin/bisect.c:876,1
    - Dst: write_terms
      Src: /src/git/builtin/bisect.c:882,1
    - Dst: bisect_append_log_quoted
      Src: /src/git/builtin/bisect.c:888,1
    - Dst: string_list_clear
      Src: /src/git/builtin/bisect.c:893,1
    - Dst: string_list_clear
      Src: /src/git/builtin/bisect.c:894,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:895,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:896,1
    - Dst: bisect_auto_next
      Src: /src/git/builtin/bisect.c:900,1
    - Dst: is_bisect_success
      Src: /src/git/builtin/bisect.c:901,1
    - Dst: bisect_clean_state
      Src: /src/git/builtin/bisect.c:902,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 141
    argCount: 3
    argNames:
    - terms
    - argc
    - argv
    argTypes:
    - struct bisect_terms*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 708
    functionDepth: 20
    functionLinenumber: 708
    functionLinenumberEnd: 904
    functionName: bisect_start
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 4
    functionsReached:
    - is_empty_or_missing_file
    - write_file
    - refs_resolve_ref_unsafe
    - repo_get_oid
    - write_terms
    - strcmp
    - free
    - get_main_ref_store
    - error
    - strbuf_release
    - die
    - is_bisect_success
    - refs_update_ref
    - strbuf_addstr
    - git_path_bisect_first_parent
    - string_list_clear
    - oid_to_hex
    - bisect_write
    - strbuf_read_file
    - strvec_pushl
    - sq_quote_argv
    - strbuf_trim
    - git_path_bisect_names
    - string_list_append
    - _
    - skip_prefix
    - bisect_clean_state
    - xstrdup
    - is_bare_repository
    - run_command
    - get_oidf
    - strbuf_reset
    - starts_with
    - bisect_append_log_quoted
    - git_path_bisect_start
    - bisect_auto_next
    linkageType: ''
    returnType: enum bisect_error
    signature: "enum bisect_error bisect_start(struct bisect_terms *terms, int argc,\n\t\t\t\t
      \     const char **argv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_or_missing_file
      Src: /src/git/builtin/bisect.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 909
    functionName: file_is_not_empty
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - is_empty_or_missing_file
    linkageType: ''
    returnType: int
    signature: int file_is_not_empty(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_is_not_empty
      Src: /src/git/builtin/bisect.c:916,1
    - Dst: git_path_bisect_start
      Src: /src/git/builtin/bisect.c:916,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/bisect.c:919,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:919,1
    - Dst: isatty
      Src: /src/git/builtin/bisect.c:922,1
    - Dst: git_prompt
      Src: /src/git/builtin/bisect.c:930,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:930,1
    - Dst: tolower
      Src: /src/git/builtin/bisect.c:932,1
    - Dst: bisect_start
      Src: /src/git/builtin/bisect.c:933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - terms
    argTypes:
    - struct bisect_terms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 911
    functionDepth: 21
    functionLinenumber: 911
    functionLinenumberEnd: 936
    functionName: bisect_autostart
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 1
    functionsReached:
    - fprintf_ln
    - file_is_not_empty
    - git_path_bisect_start
    - git_prompt
    - bisect_start
    - _
    - isatty
    - tolower
    linkageType: ''
    returnType: int
    signature: int bisect_autostart(struct bisect_terms *terms)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/bisect.c:947,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:947,1
    - Dst: bisect_autostart
      Src: /src/git/builtin/bisect.c:949,1
    - Dst: check_and_set_terms
      Src: /src/git/builtin/bisect.c:953,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:954,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:959,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:960,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:960,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/bisect.c:964,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/bisect.c:969,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:973,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:973,1
    - Dst: oid_array_append
      Src: /src/git/builtin/bisect.c:974,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/bisect.c:985,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:986,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:986,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/bisect.c:987,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/bisect.c:991,1
    - Dst: die
      Src: /src/git/builtin/bisect.c:993,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:993,1
    - Dst: oid_array_append
      Src: /src/git/builtin/bisect.c:995,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/bisect.c:998,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:998,1
    - Dst: bisect_write
      Src: /src/git/builtin/bisect.c:1002,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/bisect.c:1002,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/bisect.c:1003,1
    - Dst: oideq
      Src: /src/git/builtin/bisect.c:1006,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/bisect.c:1007,1
    - Dst: git_path_bisect_ancestors_ok
      Src: /src/git/builtin/bisect.c:1007,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/bisect.c:1008,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:1008,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/bisect.c:1015,1
    - Dst: bisect_auto_next
      Src: /src/git/builtin/bisect.c:1016,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 3
    argNames:
    - terms
    - argc
    - argv
    argTypes:
    - struct bisect_terms*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 938
    functionDepth: 22
    functionLinenumber: 938
    functionLinenumberEnd: 1017
    functionName: bisect_state
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - repo_get_oid
    - bisect_autostart
    - git_path_bisect_ancestors_ok
    - strcmp
    - get_main_ref_store
    - error
    - one_of
    - die
    - lookup_commit_reference
    - oid_array_clear
    - oid_array_append
    - refs_delete_ref
    - bisect_write
    - oid_to_hex
    - unlink_or_warn
    - _
    - refs_read_ref
    - check_and_set_terms
    - oideq
    - bisect_auto_next
    linkageType: ''
    returnType: enum bisect_error
    signature: "enum bisect_error bisect_state(struct bisect_terms *terms, int argc,\n\t\t\t\t
      \     const char **argv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_path_bisect_log
      Src: /src/git/builtin/bisect.c:1022,1
    - Dst: is_empty_or_missing_file
      Src: /src/git/builtin/bisect.c:1024,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:1025,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1025,1
    - Dst: open
      Src: /src/git/builtin/bisect.c:1027,1
    - Dst: copy_fd
      Src: /src/git/builtin/bisect.c:1031,1
    - Dst: close
      Src: /src/git/builtin/bisect.c:1032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1034
    functionName: bisect_log
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 7
    functionsReached:
    - error
    - is_empty_or_missing_file
    - open
    - copy_fd
    - _
    - close
    - git_path_bisect_log
    linkageType: ''
    returnType: enum bisect_error
    signature: enum bisect_error bisect_log(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/git/builtin/bisect.c:1038,1
    - Dst: skip_prefix
      Src: /src/git/builtin/bisect.c:1041,1
    - Dst: skip_prefix
      Src: /src/git/builtin/bisect.c:1042,1
    - Dst: isspace
      Src: /src/git/builtin/bisect.c:1042,1
    - Dst: strspn
      Src: /src/git/builtin/bisect.c:1044,1
    - Dst: strcspn
      Src: /src/git/builtin/bisect.c:1046,1
    - Dst: strspn
      Src: /src/git/builtin/bisect.c:1047,1
    - Dst: get_terms
      Src: /src/git/builtin/bisect.c:1050,1
    - Dst: check_and_set_terms
      Src: /src/git/builtin/bisect.c:1051,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:1054,1
    - Dst: sq_dequote_to_strvec
      Src: /src/git/builtin/bisect.c:1057,1
    - Dst: bisect_start
      Src: /src/git/builtin/bisect.c:1058,1
    - Dst: strvec_clear
      Src: /src/git/builtin/bisect.c:1059,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:1063,1
    - Dst: bisect_write
      Src: /src/git/builtin/bisect.c:1065,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:1067,1
    - Dst: sq_dequote_to_strvec
      Src: /src/git/builtin/bisect.c:1070,1
    - Dst: bisect_terms
      Src: /src/git/builtin/bisect.c:1071,1
    - Dst: strvec_clear
      Src: /src/git/builtin/bisect.c:1072,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:1075,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1075,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - terms
    - line
    argTypes:
    - struct bisect_terms*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1036
    functionDepth: 21
    functionLinenumber: 1036
    functionLinenumberEnd: 1078
    functionName: process_replay_line
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - isspace
    - one_of
    - error
    - sq_dequote_to_strvec
    - bisect_write
    - bisect_terms
    - strspn
    - get_terms
    - strcmp
    - check_and_set_terms
    - bisect_start
    - strcspn
    - strvec_clear
    - skip_prefix
    - _
    linkageType: ''
    returnType: int
    signature: int process_replay_line(struct bisect_terms *terms, struct strbuf *line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_or_missing_file
      Src: /src/git/builtin/bisect.c:1086,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:1087,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1087,1
    - Dst: bisect_reset
      Src: /src/git/builtin/bisect.c:1089,1
    - Dst: fopen
      Src: /src/git/builtin/bisect.c:1092,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/bisect.c:1096,1
    - Dst: process_replay_line
      Src: /src/git/builtin/bisect.c:1097,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:1099,1
    - Dst: fclose
      Src: /src/git/builtin/bisect.c:1100,1
    - Dst: bisect_auto_next
      Src: /src/git/builtin/bisect.c:1105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - terms
    - filename
    argTypes:
    - struct bisect_terms*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1080
    functionDepth: 22
    functionLinenumber: 1080
    functionLinenumberEnd: 1106
    functionName: bisect_replay
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - is_empty_or_missing_file
    - strbuf_release
    - bisect_reset
    - process_replay_line
    - fopen
    - _
    - strbuf_getline
    - bisect_auto_next
    linkageType: ''
    returnType: enum bisect_error
    signature: enum bisect_error bisect_replay(struct bisect_terms *terms, const char
      *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/bisect.c:1115,1
    - Dst: strstr
      Src: /src/git/builtin/bisect.c:1118,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/bisect.c:1124,1
    - Dst: setup_revisions
      Src: /src/git/builtin/bisect.c:1125,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/bisect.c:1127,1
    - Dst: die
      Src: /src/git/builtin/bisect.c:1128,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1128,1
    - Dst: get_revision
      Src: /src/git/builtin/bisect.c:1129,1
    - Dst: strvec_push
      Src: /src/git/builtin/bisect.c:1130,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/bisect.c:1131,1
    - Dst: reset_revision_walk
      Src: /src/git/builtin/bisect.c:1133,1
    - Dst: release_revisions
      Src: /src/git/builtin/bisect.c:1134,1
    - Dst: strvec_push
      Src: /src/git/builtin/bisect.c:1136,1
    - Dst: bisect_state
      Src: /src/git/builtin/bisect.c:1139,1
    - Dst: strvec_clear
      Src: /src/git/builtin/bisect.c:1141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - terms
    - argc
    - argv
    argTypes:
    - struct bisect_terms*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1108
    functionDepth: 23
    functionLinenumber: 1108
    functionLinenumberEnd: 1143
    functionName: bisect_skip
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - oid_to_hex
    - die
    - release_revisions
    - strstr
    - get_revision
    - bisect_state
    - reset_revision_walk
    - repo_init_revisions
    - strvec_clear
    - prepare_revision_walk
    - _
    - setup_revisions
    linkageType: ''
    returnType: enum bisect_error
    signature: "enum bisect_error bisect_skip(struct bisect_terms *terms, int argc,\n\t\t\t\t
      \    const char **argv)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bisect_next_check
      Src: /src/git/builtin/bisect.c:1151,1
    - Dst: getenv
      Src: /src/git/builtin/bisect.c:1156,1
    - Dst: getenv
      Src: /src/git/builtin/bisect.c:1156,1
    - Dst: getenv
      Src: /src/git/builtin/bisect.c:1156,1
    - Dst: getenv
      Src: /src/git/builtin/bisect.c:1157,1
    - Dst: exists_in_PATH
      Src: /src/git/builtin/bisect.c:1157,1
    - Dst: strvec_push
      Src: /src/git/builtin/bisect.c:1158,1
    - Dst: strvec_push
      Src: /src/git/builtin/bisect.c:1160,1
    - Dst: strvec_push
      Src: /src/git/builtin/bisect.c:1165,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:1167,1
    - Dst: starts_with
      Src: /src/git/builtin/bisect.c:1167,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/bisect.c:1170,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/bisect.c:1173,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/bisect.c:1175,1
    - Dst: git_path_bisect_names
      Src: /src/git/builtin/bisect.c:1175,1
    - Dst: sq_dequote_to_strvec
      Src: /src/git/builtin/bisect.c:1176,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:1177,1
    - Dst: run_command
      Src: /src/git/builtin/bisect.c:1179,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - terms
    - argc
    - argv
    argTypes:
    - struct bisect_terms*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1145
    functionDepth: 11
    functionLinenumber: 1145
    functionLinenumberEnd: 1180
    functionName: bisect_visualize
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - sq_dequote_to_strvec
    - run_command
    - bisect_next_check
    - strvec_pushv
    - strvec_pushl
    - strbuf_read_file
    - starts_with
    - git_path_bisect_names
    - strcmp
    - exists_in_PATH
    - getenv
    linkageType: ''
    returnType: int
    signature: "int bisect_visualize(struct bisect_terms *terms, int argc,\n\t\t\t
      \   const char **argv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/builtin/bisect.c:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1186
    functionName: get_first_good
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - oidcpy
    linkageType: ''
    returnType: int
    signature: int get_first_good(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/bisect.c:1192,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1192,1
    - Dst: strvec_push
      Src: /src/git/builtin/bisect.c:1194,1
    - Dst: run_command
      Src: /src/git/builtin/bisect.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - command
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1188
    functionDepth: 8
    functionLinenumber: 1188
    functionLinenumberEnd: 1196
    functionName: do_bisect_run
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - printf
    - run_command
    - _
    linkageType: ''
    returnType: int
    signature: int do_bisect_run(const char *command)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/bisect.c:1204,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/bisect.c:1205,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:1205,1
    - Dst: strlen
      Src: /src/git/builtin/bisect.c:1210,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/bisect.c:1213,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:1213,1
    - Dst: free
      Src: /src/git/builtin/bisect.c:1215,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/bisect.c:1217,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/bisect.c:1217,1
    - Dst: bisect_checkout
      Src: /src/git/builtin/bisect.c:1220,1
    - Dst: do_bisect_run
      Src: /src/git/builtin/bisect.c:1224,1
    - Dst: bisect_checkout
      Src: /src/git/builtin/bisect.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - terms
    - command
    argTypes:
    - struct bisect_terms*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1198
    functionDepth: 15
    functionLinenumber: 1198
    functionLinenumberEnd: 1231
    functionName: verify_good
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - refs_read_ref
    - do_bisect_run
    - refs_for_each_ref_ext
    - strlen
    - free
    - refs_ref_exists
    - bisect_checkout
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int verify_good(const struct bisect_terms *terms, const char *command)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: bisect_next_check
      Src: /src/git/builtin/bisect.c:1241,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:1245,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1245,1
    - Dst: sq_quote_argv
      Src: /src/git/builtin/bisect.c:1249,1
    - Dst: strbuf_ltrim
      Src: /src/git/builtin/bisect.c:1250,1
    - Dst: do_bisect_run
      Src: /src/git/builtin/bisect.c:1252,1
    - Dst: verify_good
      Src: /src/git/builtin/bisect.c:1262,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:1265,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1265,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:1271,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1271,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:1279,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1279,1
    - Dst: open
      Src: /src/git/builtin/bisect.c:1291,1
    - Dst: git_path_bisect_run
      Src: /src/git/builtin/bisect.c:1291,1
    - Dst: error_errno
      Src: /src/git/builtin/bisect.c:1294,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1294,1
    - Dst: git_path_bisect_run
      Src: /src/git/builtin/bisect.c:1294,1
    - Dst: fflush
      Src: /src/git/builtin/bisect.c:1298,1
    - Dst: dup
      Src: /src/git/builtin/bisect.c:1299,1
    - Dst: dup2
      Src: /src/git/builtin/bisect.c:1300,1
    - Dst: bisect_state
      Src: /src/git/builtin/bisect.c:1302,1
    - Dst: fflush
      Src: /src/git/builtin/bisect.c:1304,1
    - Dst: dup2
      Src: /src/git/builtin/bisect.c:1305,1
    - Dst: close
      Src: /src/git/builtin/bisect.c:1306,1
    - Dst: close
      Src: /src/git/builtin/bisect.c:1307,1
    - Dst: print_file_to_stdout
      Src: /src/git/builtin/bisect.c:1309,1
    - Dst: git_path_bisect_run
      Src: /src/git/builtin/bisect.c:1309,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:1312,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1312,1
    - Dst: puts
      Src: /src/git/builtin/bisect.c:1314,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1314,1
    - Dst: puts
      Src: /src/git/builtin/bisect.c:1317,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1317,1
    - Dst: error
      Src: /src/git/builtin/bisect.c:1320,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1320,1
    - Dst: strbuf_release
      Src: /src/git/builtin/bisect.c:1328,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 3
    argNames:
    - terms
    - argc
    - argv
    argTypes:
    - struct bisect_terms*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1233
    functionDepth: 23
    functionLinenumber: 1233
    functionLinenumberEnd: 1330
    functionName: bisect_run
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 3
    functionsReached:
    - error
    - error_errno
    - strbuf_release
    - dup
    - open
    - bisect_state
    - bisect_next_check
    - puts
    - sq_quote_argv
    - do_bisect_run
    - verify_good
    - strbuf_ltrim
    - fflush
    - print_file_to_stdout
    - _
    - close
    - dup2
    - git_path_bisect_run
    linkageType: ''
    returnType: int
    signature: int bisect_run(struct bisect_terms *terms, int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/bisect.c:1336,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1336,1
    - Dst: bisect_reset
      Src: /src/git/builtin/bisect.c:1338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1332
    functionDepth: 10
    functionLinenumber: 1332
    functionLinenumberEnd: 1339
    functionName: cmd_bisect__reset
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - bisect_reset
    - _
    linkageType: ''
    returnType: int
    signature: "int cmd_bisect__reset(int argc, const char **argv, const char *prefix
      UNUSED,\n\t\t\t     struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/bisect.c:1348,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1348,1
    - Dst: bisect_terms
      Src: /src/git/builtin/bisect.c:1350,1
    - Dst: free_terms
      Src: /src/git/builtin/bisect.c:1351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1341
    functionDepth: 7
    functionLinenumber: 1341
    functionLinenumberEnd: 1353
    functionName: cmd_bisect__terms
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - bisect_terms
    - free_terms
    - _
    linkageType: ''
    returnType: int
    signature: "int cmd_bisect__terms(int argc, const char **argv, const char *prefix
      UNUSED,\n\t\t\t     struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_terms
      Src: /src/git/builtin/bisect.c:1361,1
    - Dst: bisect_start
      Src: /src/git/builtin/bisect.c:1362,1
    - Dst: free_terms
      Src: /src/git/builtin/bisect.c:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1355
    functionDepth: 21
    functionLinenumber: 1355
    functionLinenumberEnd: 1365
    functionName: cmd_bisect__start
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - bisect_start
    - set_terms
    - free_terms
    linkageType: ''
    returnType: int
    signature: "int cmd_bisect__start(int argc, const char **argv, const char *prefix
      UNUSED,\n\t\t\t     struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/bisect.c:1374,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1374,1
    - Dst: get_terms
      Src: /src/git/builtin/bisect.c:1376,1
    - Dst: bisect_next
      Src: /src/git/builtin/bisect.c:1377,1
    - Dst: free_terms
      Src: /src/git/builtin/bisect.c:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - argc
    - UNUSED
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1367
    functionDepth: 19
    functionLinenumber: 1367
    functionLinenumberEnd: 1380
    functionName: cmd_bisect__next
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - get_terms
    - free_terms
    - bisect_next
    - _
    linkageType: ''
    returnType: int
    signature: "int cmd_bisect__next(int argc, const char **argv UNUSED, const char
      *prefix,\n\t\t\t    struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bisect_log
      Src: /src/git/builtin/bisect.c:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - UNUSED
    - UNUSED
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1382
    functionDepth: 3
    functionLinenumber: 1382
    functionLinenumberEnd: 1387
    functionName: cmd_bisect__log
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - bisect_log
    linkageType: ''
    returnType: int
    signature: "int cmd_bisect__log(int argc UNUSED, const char **argv UNUSED,\n\t\t\t
      \  const char *prefix UNUSED,\n\t\t\t   struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/bisect.c:1396,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1396,1
    - Dst: set_terms
      Src: /src/git/builtin/bisect.c:1397,1
    - Dst: bisect_replay
      Src: /src/git/builtin/bisect.c:1398,1
    - Dst: free_terms
      Src: /src/git/builtin/bisect.c:1399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1389
    functionDepth: 23
    functionLinenumber: 1389
    functionLinenumberEnd: 1401
    functionName: cmd_bisect__replay
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - bisect_replay
    - set_terms
    - free_terms
    - _
    linkageType: ''
    returnType: int
    signature: "int cmd_bisect__replay(int argc, const char **argv, const char *prefix
      UNUSED,\n\t\t\t      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_terms
      Src: /src/git/builtin/bisect.c:1409,1
    - Dst: get_terms
      Src: /src/git/builtin/bisect.c:1410,1
    - Dst: bisect_skip
      Src: /src/git/builtin/bisect.c:1411,1
    - Dst: free_terms
      Src: /src/git/builtin/bisect.c:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1403
    functionDepth: 24
    functionLinenumber: 1403
    functionLinenumberEnd: 1414
    functionName: cmd_bisect__skip
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - bisect_skip
    - get_terms
    - set_terms
    - free_terms
    linkageType: ''
    returnType: int
    signature: "int cmd_bisect__skip(int argc, const char **argv, const char *prefix
      UNUSED,\n\t\t\t    struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_terms
      Src: /src/git/builtin/bisect.c:1422,1
    - Dst: bisect_visualize
      Src: /src/git/builtin/bisect.c:1423,1
    - Dst: free_terms
      Src: /src/git/builtin/bisect.c:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1416
    functionDepth: 12
    functionLinenumber: 1416
    functionLinenumberEnd: 1426
    functionName: cmd_bisect__visualize
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - get_terms
    - bisect_visualize
    - free_terms
    linkageType: ''
    returnType: int
    signature: "int cmd_bisect__visualize(int argc, const char **argv, const char
      *prefix UNUSED,\n\t\t\t\t struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/bisect.c:1435,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1435,1
    - Dst: get_terms
      Src: /src/git/builtin/bisect.c:1436,1
    - Dst: bisect_run
      Src: /src/git/builtin/bisect.c:1437,1
    - Dst: free_terms
      Src: /src/git/builtin/bisect.c:1438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1428
    functionDepth: 24
    functionLinenumber: 1428
    functionLinenumberEnd: 1440
    functionName: cmd_bisect__run
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - error
    - bisect_run
    - get_terms
    - free_terms
    - _
    linkageType: ''
    returnType: int
    signature: "int cmd_bisect__run(int argc, const char **argv, const char *prefix
      UNUSED,\n\t\t\t   struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bisect.c:1450,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bisect.c:1451,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bisect.c:1452,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bisect.c:1453,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bisect.c:1454,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bisect.c:1455,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bisect.c:1456,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bisect.c:1457,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bisect.c:1458,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/bisect.c:1459,1
    - Dst: OPT_END
      Src: /src/git/builtin/bisect.c:1460,1
    - Dst: parse_options
      Src: /src/git/builtin/bisect.c:1462,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/bisect.c:1469,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1469,1
    - Dst: strcmp
      Src: /src/git/builtin/bisect.c:1471,1
    - Dst: usage_with_options
      Src: /src/git/builtin/bisect.c:1472,1
    - Dst: set_terms
      Src: /src/git/builtin/bisect.c:1474,1
    - Dst: get_terms
      Src: /src/git/builtin/bisect.c:1475,1
    - Dst: check_and_set_terms
      Src: /src/git/builtin/bisect.c:1476,1
    - Dst: one_of
      Src: /src/git/builtin/bisect.c:1477,1
    - Dst: usage_msg_optf
      Src: /src/git/builtin/bisect.c:1478,1
    - Dst: _
      Src: /src/git/builtin/bisect.c:1478,1
    - Dst: bisect_state
      Src: /src/git/builtin/bisect.c:1480,1
    - Dst: free_terms
      Src: /src/git/builtin/bisect.c:1481,1
    - Dst: fn
      Src: /src/git/builtin/bisect.c:1485,1
    - Dst: is_bisect_success
      Src: /src/git/builtin/bisect.c:1488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1442
    functionDepth: 23
    functionLinenumber: 1442
    functionLinenumberEnd: 1489
    functionName: cmd_bisect
    functionSourceFile: /src/git/builtin/bisect.c
    functionUses: 0
    functionsReached:
    - one_of
    - usage_msg_opt
    - parse_options
    - OPT_END
    - free_terms
    - fn
    - bisect_state
    - is_bisect_success
    - set_terms
    - OPT_SUBCOMMAND
    - strcmp
    - get_terms
    - check_and_set_terms
    - _
    - usage_msg_optf
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_bisect(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/builtin/receive-pack.c:131,1
    - Dst: strcasecmp
      Src: /src/git/builtin/receive-pack.c:133,1
    - Dst: strcasecmp
      Src: /src/git/builtin/receive-pack.c:135,1
    - Dst: strcasecmp
      Src: /src/git/builtin/receive-pack.c:137,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - var
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 6
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: parse_deny_action
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - git_config_bool
    linkageType: ''
    returnType: enum deny_action
    signature: enum deny_action parse_deny_action(const char *var, const char *value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: parse_hide_refs_config
      Src: /src/git/builtin/receive-pack.c:149,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:154,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:155,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:159,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:160,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:164,1
    - Dst: git_config_int
      Src: /src/git/builtin/receive-pack.c:165,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:169,1
    - Dst: git_config_int
      Src: /src/git/builtin/receive-pack.c:170,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:174,1
    - Dst: git_config_pathname
      Src: /src/git/builtin/receive-pack.c:177,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:180,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:182,1
    - Dst: skip_prefix
      Src: /src/git/builtin/receive-pack.c:186,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/receive-pack.c:188,1
    - Dst: is_valid_msg_type
      Src: /src/git/builtin/receive-pack.c:189,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:190,1
    - Dst: warning
      Src: /src/git/builtin/receive-pack.c:193,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:197,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:198,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:202,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:203,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:207,1
    - Dst: parse_deny_action
      Src: /src/git/builtin/receive-pack.c:208,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:212,1
    - Dst: parse_deny_action
      Src: /src/git/builtin/receive-pack.c:213,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:217,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:218,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:222,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:223,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:227,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:228,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:232,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:233,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:237,1
    - Dst: git_config_string
      Src: /src/git/builtin/receive-pack.c:238,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:240,1
    - Dst: git_config_ulong
      Src: /src/git/builtin/receive-pack.c:241,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:245,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:246,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:250,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:251,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:255,1
    - Dst: git_config_int
      Src: /src/git/builtin/receive-pack.c:256,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:260,1
    - Dst: git_config_int64
      Src: /src/git/builtin/receive-pack.c:261,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:265,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/receive-pack.c:267,1
    - Dst: proc_receive_ref_append
      Src: /src/git/builtin/receive-pack.c:268,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:272,1
    - Dst: git_config_bool
      Src: /src/git/builtin/receive-pack.c:273,1
    - Dst: git_default_config
      Src: /src/git/builtin/receive-pack.c:277,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 100
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 145
    functionDepth: 7
    functionLinenumber: 145
    functionLinenumberEnd: 278
    functionName: receive_pack_config
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - parse_deny_action
    - git_config_pathname
    - git_config_int
    - git_config_ulong
    - git_config_int64
    - parse_hide_refs_config
    - proc_receive_ref_append
    - strbuf_addf
    - is_valid_msg_type
    - git_config_string
    - strcmp
    - git_default_config
    - warning
    - git_config_bool
    - free
    - skip_prefix
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int receive_pack_config(const char *var, const char *value,\n\t\t\t
      \      const struct config_context *ctx, void *cb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: packet_write_fmt
      Src: /src/git/builtin/receive-pack.c:283,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:283,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:287,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:290,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:292,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:294,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:296,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:298,1
    - Dst: trace2_session_id
      Src: /src/git/builtin/receive-pack.c:298,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:299,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:300,1
    - Dst: git_user_agent_sanitized
      Src: /src/git/builtin/receive-pack.c:300,1
    - Dst: packet_write_fmt
      Src: /src/git/builtin/receive-pack.c:301,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:302,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - path
    - oid
    argTypes:
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 280
    functionDepth: 7
    functionLinenumber: 280
    functionLinenumberEnd: 306
    functionName: show_ref
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 3
    functionsReached:
    - packet_write_fmt
    - strbuf_release
    - oid_to_hex
    - strbuf_addf
    - trace2_session_id
    - strbuf_addstr
    - git_user_agent_sanitized
    linkageType: ''
    returnType: void
    signature: void show_ref(const char *path, const struct object_id *oid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strip_namespace
      Src: /src/git/builtin/receive-pack.c:311,1
    - Dst: ref_is_hidden
      Src: /src/git/builtin/receive-pack.c:313,1
    - Dst: oidset_insert
      Src: /src/git/builtin/receive-pack.c:322,1
    - Dst: oidset_insert
      Src: /src/git/builtin/receive-pack.c:326,1
    - Dst: show_ref
      Src: /src/git/builtin/receive-pack.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ref
    - data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 308
    functionDepth: 6
    functionLinenumber: 308
    functionLinenumberEnd: 330
    functionName: show_ref_cb
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strip_namespace
    - oidset_insert
    - show_ref
    - ref_is_hidden
    linkageType: ''
    returnType: int
    signature: int show_ref_cb(const struct reference *ref, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidset_insert
      Src: /src/git/builtin/receive-pack.c:337,1
    - Dst: show_ref
      Src: /src/git/builtin/receive-pack.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - oid
    - data
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: show_one_alternate_ref
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - show_ref
    - oidset_insert
    linkageType: ''
    returnType: void
    signature: "void show_one_alternate_ref(const struct object_id *oid,\n\t\t\t\t
      \  void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_namespaced_exclude_patterns
      Src: /src/git/builtin/receive-pack.c:355,1
    - Dst: hidden_refs_to_excludes
      Src: /src/git/builtin/receive-pack.c:356,1
    - Dst: get_git_namespace
      Src: /src/git/builtin/receive-pack.c:357,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/receive-pack.c:359,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/receive-pack.c:359,1
    - Dst: odb_for_each_alternate_ref
      Src: /src/git/builtin/receive-pack.c:361,1
    - Dst: oidset_clear
      Src: /src/git/builtin/receive-pack.c:364,1
    - Dst: strvec_clear
      Src: /src/git/builtin/receive-pack.c:365,1
    - Dst: show_ref
      Src: /src/git/builtin/receive-pack.c:368,1
    - Dst: null_oid
      Src: /src/git/builtin/receive-pack.c:368,1
    - Dst: advertise_shallow_grafts
      Src: /src/git/builtin/receive-pack.c:370,1
    - Dst: packet_flush
      Src: /src/git/builtin/receive-pack.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 343
    functionDepth: 9
    functionLinenumber: 343
    functionLinenumberEnd: 374
    functionName: write_head_info
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - hidden_refs_to_excludes
    - get_namespaced_exclude_patterns
    - packet_flush
    - oidset_clear
    - refs_for_each_ref_ext
    - advertise_shallow_grafts
    - strvec_clear
    - null_oid
    - odb_for_each_alternate_ref
    - get_git_namespace
    - show_ref
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void write_head_info(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/receive-pack.c:398,1
    - Dst: strchr
      Src: /src/git/builtin/receive-pack.c:399,1
    - Dst: strlen
      Src: /src/git/builtin/receive-pack.c:418,1
    - Dst: xmemdupz
      Src: /src/git/builtin/receive-pack.c:421,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 392
    functionDepth: 10
    functionLinenumber: 392
    functionLinenumberEnd: 432
    functionName: proc_receive_ref_append
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 1
    functionsReached:
    - xmemdupz
    - strlen
    - strchr
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void proc_receive_ref_append(const char *prefix)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:445,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:447,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:450,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:451,1
    - Dst: skip_prefix
      Src: /src/git/builtin/receive-pack.c:454,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 19
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct command*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 463
    functionName: proc_receive_ref_matches
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int proc_receive_ref_matches(struct command *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/builtin/receive-pack.c:470,1
    - Dst: vsnprintf
      Src: /src/git/builtin/receive-pack.c:471,1
    - Dst: send_sideband
      Src: /src/git/builtin/receive-pack.c:477,1
    - Dst: xwrite
      Src: /src/git/builtin/receive-pack.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - prefix
    - err
    - params
    argTypes:
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 480
    functionName: report_message
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - vsnprintf
    - xwrite
    - send_sideband
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void report_message(const char *prefix, const char *err, va_list params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/builtin/receive-pack.c:482,1
    - Dst: va_start
      Src: /src/git/builtin/receive-pack.c:486,1
    - Dst: report_message
      Src: /src/git/builtin/receive-pack.c:487,1
    - Dst: va_end
      Src: /src/git/builtin/receive-pack.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 489
    functionName: rp_warning
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - format
    - report_message
    linkageType: ''
    returnType: void
    signature: void rp_warning(const char *err, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/builtin/receive-pack.c:491,1
    - Dst: va_start
      Src: /src/git/builtin/receive-pack.c:495,1
    - Dst: report_message
      Src: /src/git/builtin/receive-pack.c:496,1
    - Dst: va_end
      Src: /src/git/builtin/receive-pack.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 491
    functionDepth: 4
    functionLinenumber: 491
    functionLinenumberEnd: 498
    functionName: rp_error
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - format
    - report_message
    linkageType: ''
    returnType: void
    signature: void rp_error(const char *err, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/git/builtin/receive-pack.c:519,1
    - Dst: write_or_die
      Src: /src/git/builtin/receive-pack.c:529,1
    - Dst: xread
      Src: /src/git/builtin/receive-pack.c:534,1
    - Dst: memchr
      Src: /src/git/builtin/receive-pack.c:539,1
    - Dst: send_sideband
      Src: /src/git/builtin/receive-pack.c:547,1
    - Dst: send_sideband
      Src: /src/git/builtin/receive-pack.c:548,1
    - Dst: send_sideband
      Src: /src/git/builtin/receive-pack.c:557,1
    - Dst: close
      Src: /src/git/builtin/receive-pack.c:559,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 3
    argNames:
    - in
    - UNUSED
    - UNUSED
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 500
    functionDepth: 4
    functionLinenumber: 500
    functionLinenumberEnd: 561
    functionName: copy_to_sideband
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - memchr
    - send_sideband
    - xread
    - close
    - poll
    linkageType: ''
    returnType: int
    signature: int copy_to_sideband(int in, int out UNUSED, void *arg UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/receive-pack.c:575,1
    - Dst: start_async
      Src: /src/git/builtin/receive-pack.c:579,1
    - Dst: dup
      Src: /src/git/builtin/receive-pack.c:581,1
    - Dst: dup2
      Src: /src/git/builtin/receive-pack.c:583,1
    - Dst: close
      Src: /src/git/builtin/receive-pack.c:584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - sideband_async
    - saved_stderr
    - started
    argTypes:
    - struct async*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 586
    functionName: prepare_sideband_async
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - memset
    - dup
    - close
    - start_async
    - dup2
    linkageType: ''
    returnType: void
    signature: void prepare_sideband_async(struct async *sideband_async, int *saved_stderr,
      int *started)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dup2
      Src: /src/git/builtin/receive-pack.c:597,1
    - Dst: close
      Src: /src/git/builtin/receive-pack.c:598,1
    - Dst: finish_async
      Src: /src/git/builtin/receive-pack.c:602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - sideband_async
    - saved_stderr
    - started
    argTypes:
    - struct async*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 591
    functionDepth: 4
    functionLinenumber: 591
    functionLinenumberEnd: 603
    functionName: finish_sideband_async
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - close
    - dup2
    - finish_async
    linkageType: ''
    returnType: void
    signature: void finish_sideband_async(struct async *sideband_async, int saved_stderr,
      int started)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/receive-pack.c:616,1
    - Dst: init_fn
      Src: /src/git/builtin/receive-pack.c:618,1
    - Dst: git_hash_update
      Src: /src/git/builtin/receive-pack.c:619,1
    - Dst: git_hash_final
      Src: /src/git/builtin/receive-pack.c:620,1
    - Dst: memcpy
      Src: /src/git/builtin/receive-pack.c:622,1
    - Dst: init_fn
      Src: /src/git/builtin/receive-pack.c:632,1
    - Dst: git_hash_update
      Src: /src/git/builtin/receive-pack.c:633,1
    - Dst: git_hash_update
      Src: /src/git/builtin/receive-pack.c:634,1
    - Dst: git_hash_final
      Src: /src/git/builtin/receive-pack.c:635,1
    - Dst: init_fn
      Src: /src/git/builtin/receive-pack.c:638,1
    - Dst: git_hash_update
      Src: /src/git/builtin/receive-pack.c:639,1
    - Dst: git_hash_update
      Src: /src/git/builtin/receive-pack.c:640,1
    - Dst: git_hash_final
      Src: /src/git/builtin/receive-pack.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - out
    - key_in
    - key_len
    - text
    - text_len
    argTypes:
    - unsigned char*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 642
    functionName: hmac_hash
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - memset
    - git_hash_final
    - memcpy
    - git_hash_update
    - init_fn
    linkageType: ''
    returnType: void
    signature: "void hmac_hash(unsigned char *out,\n\t\t      const char *key_in,
      size_t key_len,\n\t\t      const char *text, size_t text_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:649,1
    - Dst: hmac_hash
      Src: /src/git/builtin/receive-pack.c:650,1
    - Dst: strlen
      Src: /src/git/builtin/receive-pack.c:650,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:651,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:654,1
    - Dst: hash_to_hex
      Src: /src/git/builtin/receive-pack.c:654,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/receive-pack.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - path
    - stamp
    argTypes:
    - char*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 656
    functionName: prepare_push_cert_nonce
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - hash_to_hex
    - hmac_hash
    - strbuf_addf
    - strlen
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *prepare_push_cert_nonce(const char *path, timestamp_t stamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 670
    functionName: constant_memequal
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int constant_memequal(const char *a, const char *b, size_t n)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find_commit_header
      Src: /src/git/builtin/receive-pack.c:675,1
    - Dst: xmemdupz
      Src: /src/git/builtin/receive-pack.c:676,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:687,1
    - Dst: parse_timestamp
      Src: /src/git/builtin/receive-pack.c:715,1
    - Dst: prepare_push_cert_nonce
      Src: /src/git/builtin/receive-pack.c:721,1
    - Dst: strlen
      Src: /src/git/builtin/receive-pack.c:722,1
    - Dst: constant_memequal
      Src: /src/git/builtin/receive-pack.c:727,1
    - Dst: parse_timestamp
      Src: /src/git/builtin/receive-pack.c:738,1
    - Dst: labs
      Src: /src/git/builtin/receive-pack.c:742,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:748,1
    - Dst: xstrdup
      Src: /src/git/builtin/receive-pack.c:749,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:756,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:757,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 672
    functionDepth: 10
    functionLinenumber: 672
    functionLinenumberEnd: 759
    functionName: check_nonce
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - constant_memequal
    - find_commit_header
    - labs
    - strlen
    - strcmp
    - prepare_push_cert_nonce
    - parse_timestamp
    - free
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *check_nonce(const char *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_commit_header
      Src: /src/git/builtin/receive-pack.c:778,1
    - Dst: xstrncmpz
      Src: /src/git/builtin/receive-pack.c:782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - push_options
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 791
    functionName: check_cert_push_options
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - find_commit_header
    - xstrncmpz
    linkageType: ''
    returnType: int
    signature: int check_cert_push_options(const struct string_list *push_options)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: odb_write_object
      Src: /src/git/builtin/receive-pack.c:804,1
    - Dst: oidclr
      Src: /src/git/builtin/receive-pack.c:806,1
    - Dst: memset
      Src: /src/git/builtin/receive-pack.c:808,1
    - Dst: parse_signed_buffer
      Src: /src/git/builtin/receive-pack.c:810,1
    - Dst: xmemdupz
      Src: /src/git/builtin/receive-pack.c:811,1
    - Dst: check_signature
      Src: /src/git/builtin/receive-pack.c:813,1
    - Dst: check_nonce
      Src: /src/git/builtin/receive-pack.c:816,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:818,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:819,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:820,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:821,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:823,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:825,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:828,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:831,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:835,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct run_hooks_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 793
    functionDepth: 11
    functionLinenumber: 793
    functionLinenumberEnd: 840
    functionName: prepare_push_cert_sha1
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - memset
    - oid_to_hex
    - odb_write_object
    - check_signature
    - is_null_oid
    - oidclr
    - check_nonce
    - strvec_pushf
    - parse_signed_buffer
    linkageType: ''
    returnType: void
    signature: void prepare_push_cert_sha1(struct run_hooks_opt *opt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/receive-pack.c:854,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:875,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:876,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:876,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:883,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:884,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:884,1
    - Dst: write_in_full
      Src: /src/git/builtin/receive-pack.c:892,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - hook_stdin_fd
    - UNUSED
    - pp_task_cb
    argTypes:
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 849
    functionDepth: 4
    functionLinenumber: 849
    functionLinenumberEnd: 901
    functionName: feed_receive_hook_cb
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strbuf_reset
    - oid_to_hex
    - strbuf_addf
    - write_in_full
    linkageType: ''
    returnType: int
    signature: int feed_receive_hook_cb(int hook_stdin_fd, void *pp_cb UNUSED, void
      *pp_task_cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/receive-pack.c:908,1
    - Dst: strbuf_init
      Src: /src/git/builtin/receive-pack.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - feed_pipe_ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 903
    functionDepth: 2
    functionLinenumber: 903
    functionLinenumberEnd: 915
    functionName: receive_hook_feed_state_alloc
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strbuf_init
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void *receive_hook_feed_state_alloc(void *feed_pipe_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:922,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 917
    functionDepth: 3
    functionLinenumber: 917
    functionLinenumberEnd: 924
    functionName: receive_hook_feed_state_free
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void receive_hook_feed_state_free(void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hook_exists
      Src: /src/git/builtin/receive-pack.c:943,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:954,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:956,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:959,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/receive-pack.c:963,1
    - Dst: tmp_objdir_env
      Src: /src/git/builtin/receive-pack.c:963,1
    - Dst: prepare_push_cert_sha1
      Src: /src/git/builtin/receive-pack.c:965,1
    - Dst: prepare_sideband_async
      Src: /src/git/builtin/receive-pack.c:967,1
    - Dst: run_hooks_opt
      Src: /src/git/builtin/receive-pack.c:975,1
    - Dst: finish_sideband_async
      Src: /src/git/builtin/receive-pack.c:977,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - commands
    - hook_name
    - skip_broken
    - push_options
    argTypes:
    - struct command*
    - char*
    - int
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 926
    functionDepth: 12
    functionLinenumber: 926
    functionLinenumberEnd: 980
    functionName: run_receive_hook
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strvec_pushv
    - finish_sideband_async
    - prepare_sideband_async
    - hook_exists
    - run_hooks_opt
    - prepare_push_cert_sha1
    - tmp_objdir_env
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int run_receive_hook(struct command *commands,\n\t\t\t    const char
      *hook_name,\n\t\t\t    int skip_broken,\n\t\t\t    const struct string_list
      *push_options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hook_exists
      Src: /src/git/builtin/receive-pack.c:991,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/receive-pack.c:994,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:996,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:997,1
    - Dst: prepare_sideband_async
      Src: /src/git/builtin/receive-pack.c:1000,1
    - Dst: run_hooks_opt
      Src: /src/git/builtin/receive-pack.c:1002,1
    - Dst: finish_sideband_async
      Src: /src/git/builtin/receive-pack.c:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct command*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 982
    functionDepth: 12
    functionLinenumber: 982
    functionLinenumberEnd: 1007
    functionName: run_update_hook
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - finish_sideband_async
    - strvec_pushl
    - prepare_sideband_async
    - hook_exists
    - run_hooks_opt
    linkageType: ''
    returnType: int
    signature: int run_update_hook(struct command *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - list
    - refname
    argTypes:
    - struct command*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1016
    functionName: find_command_by_refname
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct command
    signature: "struct command *find_command_by_refname(struct command *list,\n\t\t\t\t\t
      \      const char *refname)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/builtin/receive-pack.c:1037,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:1041,1
    - Dst: strchr
      Src: /src/git/builtin/receive-pack.c:1049,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:1051,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1056,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:1062,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/receive-pack.c:1068,1
    - Dst: xcalloc
      Src: /src/git/builtin/receive-pack.c:1074,1
    - Dst: strchr
      Src: /src/git/builtin/receive-pack.c:1080,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1084,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/receive-pack.c:1085,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1086,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/receive-pack.c:1087,1
    - Dst: oiddup
      Src: /src/git/builtin/receive-pack.c:1088,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1089,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/receive-pack.c:1090,1
    - Dst: oiddup
      Src: /src/git/builtin/receive-pack.c:1091,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1092,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1094,1
    - Dst: strchr
      Src: /src/git/builtin/receive-pack.c:1103,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1106,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1106,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:1107,1
    - Dst: find_command_by_refname
      Src: /src/git/builtin/receive-pack.c:1115,1
    - Dst: find_command_by_refname
      Src: /src/git/builtin/receive-pack.c:1117,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:1119,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:1125,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1131,1
    - Dst: xstrdup
      Src: /src/git/builtin/receive-pack.c:1133,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 97
    argCount: 3
    argNames:
    - reader
    - commands
    - errmsg
    argTypes:
    - struct packet_reader*
    - struct command*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1018
    functionDepth: 7
    functionLinenumber: 1018
    functionLinenumberEnd: 1149
    functionName: read_proc_receive_report
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - oiddup
    - find_command_by_refname
    - xstrdup_or_null
    - strbuf_addf
    - strchr
    - parse_oid_hex
    - strbuf_addstr
    - strcmp
    - CALLOC_ARRAY
    - xcalloc
    - packet_reader_read
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int read_proc_receive_report(struct packet_reader *reader,\n\t\t\t\t
      \   struct command *commands,\n\t\t\t\t    struct strbuf *errmsg)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: find_hook
      Src: /src/git/builtin/receive-pack.c:1163,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1166,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:1170,1
    - Dst: memset
      Src: /src/git/builtin/receive-pack.c:1176,1
    - Dst: start_async
      Src: /src/git/builtin/receive-pack.c:1179,1
    - Dst: start_command
      Src: /src/git/builtin/receive-pack.c:1187,1
    - Dst: finish_async
      Src: /src/git/builtin/receive-pack.c:1190,1
    - Dst: sigchain_push
      Src: /src/git/builtin/receive-pack.c:1194,1
    - Dst: packet_reader_init
      Src: /src/git/builtin/receive-pack.c:1197,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:1201,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:1203,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/builtin/receive-pack.c:1205,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:1206,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/builtin/receive-pack.c:1208,1
    - Dst: packet_flush_gently
      Src: /src/git/builtin/receive-pack.c:1211,1
    - Dst: packet_reader_read
      Src: /src/git/builtin/receive-pack.c:1218,1
    - Dst: starts_with
      Src: /src/git/builtin/receive-pack.c:1226,1
    - Dst: atoi
      Src: /src/git/builtin/receive-pack.c:1227,1
    - Dst: strlen
      Src: /src/git/builtin/receive-pack.c:1228,1
    - Dst: parse_feature_request
      Src: /src/git/builtin/receive-pack.c:1231,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:1238,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:1248,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/builtin/receive-pack.c:1258,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:1259,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:1260,1
    - Dst: packet_flush_gently
      Src: /src/git/builtin/receive-pack.c:1266,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:1268,1
    - Dst: packet_write_fmt_gently
      Src: /src/git/builtin/receive-pack.c:1277,1
    - Dst: packet_flush_gently
      Src: /src/git/builtin/receive-pack.c:1282,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:1284,1
    - Dst: read_proc_receive_report
      Src: /src/git/builtin/receive-pack.c:1291,1
    - Dst: close
      Src: /src/git/builtin/receive-pack.c:1294,1
    - Dst: close
      Src: /src/git/builtin/receive-pack.c:1295,1
    - Dst: finish_async
      Src: /src/git/builtin/receive-pack.c:1297,1
    - Dst: finish_command
      Src: /src/git/builtin/receive-pack.c:1298,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1306,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:1307,1
    - Dst: sigchain_pop
      Src: /src/git/builtin/receive-pack.c:1309,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 117
    argCount: 2
    argNames:
    - commands
    - push_options
    argTypes:
    - struct command*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1151
    functionDepth: 9
    functionLinenumber: 1151
    functionLinenumberEnd: 1312
    functionName: run_proc_receive_hook
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - read_proc_receive_report
    - strbuf_addf
    - rp_error
    - packet_write_fmt_gently
    - strbuf_release
    - finish_command
    - sigchain_push
    - finish_async
    - strbuf_addstr
    - memset
    - oid_to_hex
    - atoi
    - sigchain_pop
    - packet_flush_gently
    - packet_reader_init
    - starts_with
    - find_hook
    - strlen
    - parse_feature_request
    - close
    - start_async
    - packet_reader_read
    - start_command
    linkageType: ''
    returnType: int
    signature: "int run_proc_receive_hook(struct command *commands,\n\t\t\t\t const
      struct string_list *push_options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_write_fmt_gently
      Src: /src/git/builtin/receive-pack.c:1277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1276
    functionDepth: 7
    functionLinenumber: 1276
    functionLinenumberEnd: 1280
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 78
    functionsReached:
    - packet_write_fmt_gently
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, push_options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1331,1
    - Dst: _
      Src: /src/git/builtin/receive-pack.c:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1329
    functionDepth: 5
    functionLinenumber: 1329
    functionLinenumberEnd: 1332
    functionName: refuse_unconfigured_deny
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - rp_error
    - _
    linkageType: ''
    returnType: void
    signature: void refuse_unconfigured_deny(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1346,1
    - Dst: _
      Src: /src/git/builtin/receive-pack.c:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1344
    functionDepth: 5
    functionLinenumber: 1344
    functionLinenumberEnd: 1347
    functionName: refuse_unconfigured_deny_delete_current
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - rp_error
    - _
    linkageType: ''
    returnType: void
    signature: void refuse_unconfigured_deny_delete_current(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf_key
      Src: /src/git/builtin/receive-pack.c:1358,1
    - Dst: delayed_reachability_test
      Src: /src/git/builtin/receive-pack.c:1363,1
    - Dst: oid_array_append
      Src: /src/git/builtin/receive-pack.c:1364,1
    - Dst: tmp_objdir_env
      Src: /src/git/builtin/receive-pack.c:1366,1
    - Dst: setup_alternate_shallow
      Src: /src/git/builtin/receive-pack.c:1367,1
    - Dst: check_connected
      Src: /src/git/builtin/receive-pack.c:1368,1
    - Dst: rollback_shallow_file
      Src: /src/git/builtin/receive-pack.c:1369,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/receive-pack.c:1370,1
    - Dst: commit_shallow_file
      Src: /src/git/builtin/receive-pack.c:1374,1
    - Dst: register_shallow
      Src: /src/git/builtin/receive-pack.c:1381,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/receive-pack.c:1384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - cmd
    - si
    argTypes:
    - struct command*
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1350
    functionDepth: 23
    functionLinenumber: 1350
    functionLinenumberEnd: 1386
    functionName: update_shallow_ref
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - commit_shallow_file
    - check_connected
    - oid_array_clear
    - trace_printf_key
    - rollback_shallow_file
    - register_shallow
    - delayed_reachability_test
    - tmp_objdir_env
    - oid_array_append
    - setup_alternate_shallow
    linkageType: ''
    returnType: int
    signature: int update_shallow_ref(struct command *cmd, struct shallow_info *si)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/receive-pack.c:1394,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/receive-pack.c:1396,1
    - Dst: run_command
      Src: /src/git/builtin/receive-pack.c:1401,1
    - Dst: child_process_init
      Src: /src/git/builtin/receive-pack.c:1405,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/receive-pack.c:1406,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/receive-pack.c:1408,1
    - Dst: run_command
      Src: /src/git/builtin/receive-pack.c:1413,1
    - Dst: child_process_init
      Src: /src/git/builtin/receive-pack.c:1416,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/receive-pack.c:1417,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1427,1
    - Dst: empty_tree_oid_hex
      Src: /src/git/builtin/receive-pack.c:1428,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/receive-pack.c:1429,1
    - Dst: run_command
      Src: /src/git/builtin/receive-pack.c:1434,1
    - Dst: child_process_init
      Src: /src/git/builtin/receive-pack.c:1437,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/receive-pack.c:1438,1
    - Dst: hash_to_hex
      Src: /src/git/builtin/receive-pack.c:1438,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/receive-pack.c:1440,1
    - Dst: run_command
      Src: /src/git/builtin/receive-pack.c:1446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - sha1
    - env
    - worktree
    argTypes:
    - unsigned char*
    - struct strvec*
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1388
    functionDepth: 8
    functionLinenumber: 1388
    functionLinenumberEnd: 1450
    functionName: push_to_deploy
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - child_process_init
    - run_command
    - hash_to_hex
    - strvec_pushv
    - strvec_pushl
    - is_null_oid
    - empty_tree_oid_hex
    linkageType: ''
    returnType: char
    signature: "char *push_to_deploy(unsigned char *sha1,\n\t\t\t\t  struct strvec
      *env,\n\t\t\t\t  const struct worktree *worktree)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:1463,1
    - Dst: absolute_path
      Src: /src/git/builtin/receive-pack.c:1463,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/receive-pack.c:1464,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:1465,1
    - Dst: hash_to_hex
      Src: /src/git/builtin/receive-pack.c:1465,1
    - Dst: run_hooks_opt
      Src: /src/git/builtin/receive-pack.c:1466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - hash
    - invoked_hook
    - env
    - work_tree
    argTypes:
    - unsigned char*
    - int*
    - struct strvec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1454
    functionDepth: 12
    functionLinenumber: 1454
    functionLinenumberEnd: 1470
    functionName: push_to_checkout
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - absolute_path
    - strvec_push
    - hash_to_hex
    - strvec_pushv
    - run_hooks_opt
    - strvec_pushf
    linkageType: ''
    returnType: char
    signature: "char *push_to_checkout(unsigned char *hash,\n\t\t\t\t    int *invoked_hook,\n\t\t\t\t
      \   struct strvec *env,\n\t\t\t\t    const char *work_tree)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/receive-pack.c:1480,1
    - Dst: get_worktree_git_dir
      Src: /src/git/builtin/receive-pack.c:1484,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:1486,1
    - Dst: absolute_path
      Src: /src/git/builtin/receive-pack.c:1486,1
    - Dst: push_to_checkout
      Src: /src/git/builtin/receive-pack.c:1488,1
    - Dst: push_to_deploy
      Src: /src/git/builtin/receive-pack.c:1490,1
    - Dst: strvec_clear
      Src: /src/git/builtin/receive-pack.c:1492,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:1493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - sha1
    - worktree
    argTypes:
    - unsigned char*
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1472
    functionDepth: 13
    functionLinenumber: 1472
    functionLinenumberEnd: 1495
    functionName: update_worktree
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - absolute_path
    - push_to_checkout
    - push_to_deploy
    - get_worktree_git_dir
    - strvec_clear
    - free
    - BUG
    - strvec_pushf
    linkageType: ''
    returnType: char
    signature: char *update_worktree(unsigned char *sha1, const struct worktree *worktree)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: get_worktrees
      Src: /src/git/builtin/receive-pack.c:1506,1
    - Dst: find_shared_symref
      Src: /src/git/builtin/receive-pack.c:1508,1
    - Dst: starts_with
      Src: /src/git/builtin/receive-pack.c:1511,1
    - Dst: check_refname_format
      Src: /src/git/builtin/receive-pack.c:1512,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1512,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1514,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:1519,1
    - Dst: get_git_namespace
      Src: /src/git/builtin/receive-pack.c:1519,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:1520,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/receive-pack.c:1521,1
    - Dst: rp_warning
      Src: /src/git/builtin/receive-pack.c:1528,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1532,1
    - Dst: refuse_unconfigured_deny
      Src: /src/git/builtin/receive-pack.c:1534,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1544,1
    - Dst: odb_has_object
      Src: /src/git/builtin/receive-pack.c:1545,1
    - Dst: error
      Src: /src/git/builtin/receive-pack.c:1547,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:1548,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1553,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1553,1
    - Dst: starts_with
      Src: /src/git/builtin/receive-pack.c:1554,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1555,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:1560,1
    - Dst: rp_warning
      Src: /src/git/builtin/receive-pack.c:1565,1
    - Dst: refuse_unconfigured_deny_delete_current
      Src: /src/git/builtin/receive-pack.c:1571,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1572,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1582,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1583,1
    - Dst: starts_with
      Src: /src/git/builtin/receive-pack.c:1584,1
    - Dst: parse_object
      Src: /src/git/builtin/receive-pack.c:1589,1
    - Dst: parse_object
      Src: /src/git/builtin/receive-pack.c:1590,1
    - Dst: error
      Src: /src/git/builtin/receive-pack.c:1595,1
    - Dst: repo_in_merge_bases
      Src: /src/git/builtin/receive-pack.c:1601,1
    - Dst: exit
      Src: /src/git/builtin/receive-pack.c:1603,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1605,1
    - Dst: run_update_hook
      Src: /src/git/builtin/receive-pack.c:1611,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1612,1
    - Dst: update_worktree
      Src: /src/git/builtin/receive-pack.c:1618,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1623,1
    - Dst: parse_object
      Src: /src/git/builtin/receive-pack.c:1625,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/receive-pack.c:1627,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/receive-pack.c:1627,1
    - Dst: rp_warning
      Src: /src/git/builtin/receive-pack.c:1628,1
    - Dst: rp_warning
      Src: /src/git/builtin/receive-pack.c:1630,1
    - Dst: ref_transaction_delete
      Src: /src/git/builtin/receive-pack.c:1634,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1639,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:1644,1
    - Dst: update_shallow_ref
      Src: /src/git/builtin/receive-pack.c:1649,1
    - Dst: ref_transaction_update
      Src: /src/git/builtin/receive-pack.c:1654,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1661,1
    - Dst: ref_transaction_error_msg
      Src: /src/git/builtin/receive-pack.c:1665,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:1669,1
    - Dst: free_worktrees
      Src: /src/git/builtin/receive-pack.c:1673,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 137
    argCount: 2
    argNames:
    - cmd
    - si
    argTypes:
    - struct command*
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1497
    functionDepth: 24
    functionLinenumber: 1497
    functionLinenumberEnd: 1675
    functionName: update
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 110
    functionsReached:
    - rp_warning
    - refuse_unconfigured_deny
    - strbuf_addf
    - is_null_oid
    - rp_error
    - strcmp
    - free
    - update_shallow_ref
    - get_main_ref_store
    - error
    - get_worktrees
    - strbuf_release
    - ref_transaction_update
    - run_update_hook
    - odb_has_object
    - ref_transaction_delete
    - refs_ref_exists
    - oid_to_hex
    - parse_object
    - strbuf_detach
    - check_refname_format
    - free_worktrees
    - find_shared_symref
    - update_worktree
    - exit
    - repo_in_merge_bases
    - starts_with
    - refuse_unconfigured_deny_delete_current
    - ref_transaction_error_msg
    - get_git_namespace
    linkageType: ''
    returnType: char
    signature: char *update(struct command *cmd, struct shallow_info *si)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hook_exists
      Src: /src/git/builtin/receive-pack.c:1686,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:1692,1
    - Dst: prepare_sideband_async
      Src: /src/git/builtin/receive-pack.c:1697,1
    - Dst: run_hooks_opt
      Src: /src/git/builtin/receive-pack.c:1699,1
    - Dst: finish_sideband_async
      Src: /src/git/builtin/receive-pack.c:1701,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - commands
    argTypes:
    - struct command*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1677
    functionDepth: 12
    functionLinenumber: 1677
    functionLinenumberEnd: 1702
    functionName: run_update_post_hook
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - finish_sideband_async
    - prepare_sideband_async
    - hook_exists
    - run_hooks_opt
    linkageType: ''
    returnType: void
    signature: void run_update_post_hook(struct command *commands)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1715,1
    - Dst: strip_namespace
      Src: /src/git/builtin/receive-pack.c:1720,1
    - Dst: string_list_lookup
      Src: /src/git/builtin/receive-pack.c:1722,1
    - Dst: oideq
      Src: /src/git/builtin/receive-pack.c:1729,1
    - Dst: oideq
      Src: /src/git/builtin/receive-pack.c:1730,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1735,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/receive-pack.c:1738,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/receive-pack.c:1739,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/receive-pack.c:1741,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/receive-pack.c:1742,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - cmd
    - list
    - dst_name
    - flag
    argTypes:
    - struct command*
    - struct string_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1704
    functionDepth: 6
    functionLinenumber: 1704
    functionLinenumberEnd: 1746
    functionName: check_aliased_update_internal
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - string_list_lookup
    - strip_namespace
    - rp_error
    - repo_find_unique_abbrev
    - oideq
    linkageType: ''
    returnType: void
    signature: "void check_aliased_update_internal(struct command *cmd,\n\t\t\t\t\t
      \ struct string_list *list,\n\t\t\t\t\t  const char *dst_name, int flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/receive-pack.c:1754,1
    - Dst: get_git_namespace
      Src: /src/git/builtin/receive-pack.c:1754,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/receive-pack.c:1755,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/receive-pack.c:1755,1
    - Dst: check_aliased_update_internal
      Src: /src/git/builtin/receive-pack.c:1757,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cmd
    - list
    argTypes:
    - struct command*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1748
    functionDepth: 7
    functionLinenumber: 1748
    functionLinenumberEnd: 1759
    functionName: check_aliased_update
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - check_aliased_update_internal
    - strbuf_release
    - refs_resolve_ref_unsafe
    - strbuf_addf
    - get_git_namespace
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void check_aliased_update(struct command *cmd, struct string_list *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/builtin/receive-pack.c:1768,1
    - Dst: string_list_sort
      Src: /src/git/builtin/receive-pack.c:1771,1
    - Dst: check_aliased_update
      Src: /src/git/builtin/receive-pack.c:1775,1
    - Dst: string_list_clear
      Src: /src/git/builtin/receive-pack.c:1778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - commands
    argTypes:
    - struct command*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1761
    functionDepth: 8
    functionLinenumber: 1761
    functionLinenumberEnd: 1779
    functionName: check_aliased_updates
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - check_aliased_update
    - string_list_sort
    - string_list_clear
    - string_list_append
    linkageType: ''
    returnType: void
    signature: void check_aliased_updates(struct command *commands)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cb_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1781
    functionDepth: 1
    functionLinenumber: 1781
    functionLinenumberEnd: 1790
    functionName: command_singleton_iterator
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - is_null_oid
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *command_singleton_iterator(void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tmp_objdir_env
      Src: /src/git/builtin/receive-pack.c:1805,1
    - Dst: check_connected
      Src: /src/git/builtin/receive-pack.c:1806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - commands
    - si
    argTypes:
    - struct command*
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1792
    functionDepth: 11
    functionLinenumber: 1792
    functionLinenumberEnd: 1812
    functionName: set_connectivity_errors
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - check_connected
    - tmp_objdir_env
    linkageType: ''
    returnType: void
    signature: "void set_connectivity_errors(struct command *commands,\n\t\t\t\t    struct
      shallow_info *si)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1829,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - cb_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1835
    functionName: iterate_receive_command_list
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - is_null_oid
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *iterate_receive_command_list(void *cb_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:1843,1
    - Dst: get_git_namespace
      Src: /src/git/builtin/receive-pack.c:1843,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/receive-pack.c:1850,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:1851,1
    - Dst: ref_is_hidden
      Src: /src/git/builtin/receive-pack.c:1853,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1855,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:1861,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - commands
    argTypes:
    - struct command*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1837
    functionDepth: 5
    functionLinenumber: 1837
    functionLinenumberEnd: 1862
    functionName: reject_updates_to_hidden
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_setlen
    - is_null_oid
    - strbuf_addstr
    - get_git_namespace
    - ref_is_hidden
    linkageType: ''
    returnType: void
    signature: void reject_updates_to_hidden(struct command *commands)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct command*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1864
    functionDepth: 0
    functionLinenumber: 1864
    functionLinenumberEnd: 1867
    functionName: should_process_cmd
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int should_process_cmd(struct command *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_process_cmd
      Src: /src/git/builtin/receive-pack.c:1875,1
    - Dst: bug
      Src: /src/git/builtin/receive-pack.c:1876,1
    - Dst: BUG_if_bug
      Src: /src/git/builtin/receive-pack.c:1879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - commands
    - si
    argTypes:
    - struct command*
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1869
    functionDepth: 1
    functionLinenumber: 1869
    functionLinenumberEnd: 1880
    functionName: BUG_if_skipped_connectivity_check
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - should_process_cmd
    - bug
    - BUG_if_bug
    linkageType: ''
    returnType: void
    signature: "void BUG_if_skipped_connectivity_check(struct command *commands,\n\t\t\t\t\t
      \      struct shallow_info *si)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1894,1
    - Dst: strmap_put
      Src: /src/git/builtin/receive-pack.c:1896,1
    - Dst: ref_transaction_error_msg
      Src: /src/git/builtin/receive-pack.c:1896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - refname
    - old_oid
    - new_oid
    - old_target
    - new_target
    - err
    - details
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - char*
    - enum ref_transaction_error
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1882
    functionDepth: 5
    functionLinenumber: 1882
    functionLinenumberEnd: 1897
    functionName: ref_transaction_rejection_handler
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - rp_error
    - ref_transaction_error_msg
    - strmap_put
    linkageType: ''
    returnType: void
    signature: "void ref_transaction_rejection_handler(const char *refname,\n\t\t\t\t\t
      \     const struct object_id *old_oid UNUSED,\n\t\t\t\t\t      const struct
      object_id *new_oid UNUSED,\n\t\t\t\t\t      const char *old_target UNUSED,\n\t\t\t\t\t
      \     const char *new_target UNUSED,\n\t\t\t\t\t      enum ref_transaction_error
      err,\n\t\t\t\t\t      const char *details,\n\t\t\t\t\t      void *cb_data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: should_process_cmd
      Src: /src/git/builtin/receive-pack.c:1925,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1928,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:1930,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/receive-pack.c:1938,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/receive-pack.c:1938,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1941,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/receive-pack.c:1942,1
    - Dst: update
      Src: /src/git/builtin/receive-pack.c:1948,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/receive-pack.c:1955,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1956,1
    - Dst: ref_transaction_for_each_rejected_update
      Src: /src/git/builtin/receive-pack.c:1961,1
    - Dst: strmap_empty
      Src: /src/git/builtin/receive-pack.c:1966,1
    - Dst: strmap_contains
      Src: /src/git/builtin/receive-pack.c:1973,1
    - Dst: xstrdup
      Src: /src/git/builtin/receive-pack.c:1974,1
    - Dst: strmap_get
      Src: /src/git/builtin/receive-pack.c:1974,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/receive-pack.c:1978,1
    - Dst: strmap_clear
      Src: /src/git/builtin/receive-pack.c:1980,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:1981,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 2
    argNames:
    - commands
    - si
    argTypes:
    - struct command*
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1899
    functionDepth: 5
    functionLinenumber: 1899
    functionLinenumberEnd: 1983
    functionName: execute_commands_non_atomic
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - strbuf_release
    - strmap_contains
    - strmap_clear
    - should_process_cmd
    - strbuf_reset
    - update
    - strmap_get
    - is_null_oid
    - rp_error
    - ref_transaction_free
    - strmap_empty
    - ref_transaction_for_each_rejected_update
    - ref_store_transaction_begin
    - xstrdup
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void execute_commands_non_atomic(struct command *commands,\n\t\t\t\t\tstruct
      shallow_info *si)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/receive-pack.c:1992,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/receive-pack.c:1992,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:1995,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/receive-pack.c:1996,1
    - Dst: should_process_cmd
      Src: /src/git/builtin/receive-pack.c:2002,1
    - Dst: update
      Src: /src/git/builtin/receive-pack.c:2005,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/receive-pack.c:2011,1
    - Dst: rp_error
      Src: /src/git/builtin/receive-pack.c:2012,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/receive-pack.c:2024,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:2025,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - commands
    - si
    argTypes:
    - struct command*
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 1985
    functionDepth: 5
    functionLinenumber: 1985
    functionLinenumberEnd: 2026
    functionName: execute_commands_atomic
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - strbuf_release
    - strbuf_reset
    - should_process_cmd
    - update
    - rp_error
    - ref_transaction_free
    - ref_store_transaction_begin
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void execute_commands_atomic(struct command *commands,\n\t\t\t\t\tstruct
      shallow_info *si)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/receive-pack.c:2048,1
    - Dst: start_async
      Src: /src/git/builtin/receive-pack.c:2051,1
    - Dst: tmp_objdir_env
      Src: /src/git/builtin/receive-pack.c:2060,1
    - Dst: check_connected
      Src: /src/git/builtin/receive-pack.c:2063,1
    - Dst: set_connectivity_errors
      Src: /src/git/builtin/receive-pack.c:2064,1
    - Dst: finish_async
      Src: /src/git/builtin/receive-pack.c:2067,1
    - Dst: reject_updates_to_hidden
      Src: /src/git/builtin/receive-pack.c:2070,1
    - Dst: should_process_cmd
      Src: /src/git/builtin/receive-pack.c:2078,1
    - Dst: proc_receive_ref_matches
      Src: /src/git/builtin/receive-pack.c:2081,1
    - Dst: run_receive_hook
      Src: /src/git/builtin/receive-pack.c:2088,1
    - Dst: tmp_objdir_migrate
      Src: /src/git/builtin/receive-pack.c:2109,1
    - Dst: check_aliased_updates
      Src: /src/git/builtin/receive-pack.c:2118,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:2120,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/receive-pack.c:2121,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/receive-pack.c:2121,1
    - Dst: run_proc_receive_hook
      Src: /src/git/builtin/receive-pack.c:2126,1
    - Dst: execute_commands_atomic
      Src: /src/git/builtin/receive-pack.c:2134,1
    - Dst: execute_commands_non_atomic
      Src: /src/git/builtin/receive-pack.c:2136,1
    - Dst: BUG_if_skipped_connectivity_check
      Src: /src/git/builtin/receive-pack.c:2139,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 67
    argCount: 4
    argNames:
    - commands
    - unpacker_error
    - si
    - push_options
    argTypes:
    - struct command*
    - char*
    - struct shallow_info*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2028
    functionDepth: 13
    functionLinenumber: 2028
    functionLinenumberEnd: 2140
    functionName: execute_commands
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - tmp_objdir_migrate
    - should_process_cmd
    - check_aliased_updates
    - free
    - tmp_objdir_env
    - get_main_ref_store
    - execute_commands_atomic
    - finish_async
    - refs_resolve_refdup
    - memset
    - check_connected
    - reject_updates_to_hidden
    - proc_receive_ref_matches
    - run_proc_receive_hook
    - execute_commands_non_atomic
    - run_receive_hook
    - BUG_if_skipped_connectivity_check
    - start_async
    - set_connectivity_errors
    linkageType: ''
    returnType: void
    signature: "void execute_commands(struct command *commands,\n\t\t\t     const
      char *unpacker_error,\n\t\t\t     struct shallow_info *si,\n\t\t\t     const
      struct string_list *push_options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex
      Src: /src/git/builtin/receive-pack.c:2152,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/receive-pack.c:2154,1
    - Dst: die
      Src: /src/git/builtin/receive-pack.c:2156,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/builtin/receive-pack.c:2160,1
    - Dst: oidcpy
      Src: /src/git/builtin/receive-pack.c:2161,1
    - Dst: oidcpy
      Src: /src/git/builtin/receive-pack.c:2162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2142
    functionDepth: 2
    functionLinenumber: 2142
    functionLinenumberEnd: 2165
    functionName: queue_command
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - FLEX_ALLOC_MEM
    - parse_oid_hex
    - die
    - oidcpy
    linkageType: ''
    returnType: struct command
    signature: "struct command **queue_command(struct command **tail,\n\t\t\t\t      const
      char *line,\n\t\t\t\t      int linelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ref_push_report_free
      Src: /src/git/builtin/receive-pack.c:2172,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:2173,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:2174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - commands
    argTypes:
    - struct command*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2167
    functionDepth: 2
    functionLinenumber: 2167
    functionLinenumberEnd: 2177
    functionName: free_commands
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - ref_push_report_free
    - free
    linkageType: ''
    returnType: void
    signature: void free_commands(struct command *commands)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/receive-pack.c:2185,1
    - Dst: strstr
      Src: /src/git/builtin/receive-pack.c:2187,1
    - Dst: die
      Src: /src/git/builtin/receive-pack.c:2189,1
    - Dst: parse_signed_buffer
      Src: /src/git/builtin/receive-pack.c:2192,1
    - Dst: memchr
      Src: /src/git/builtin/receive-pack.c:2195,1
    - Dst: queue_command
      Src: /src/git/builtin/receive-pack.c:2196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - tail
    - push_cert
    argTypes:
    - struct command**
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2179
    functionDepth: 3
    functionLinenumber: 2179
    functionLinenumberEnd: 2199
    functionName: queue_commands_from_cert
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - memchr
    - die
    - strstr
    - parse_signed_buffer
    - queue_command
    linkageType: ''
    returnType: void
    signature: "void queue_commands_from_cert(struct command **tail,\n\t\t\t\t     struct
      strbuf *push_cert)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/builtin/receive-pack.c:2209,1
    - Dst: starts_with
      Src: /src/git/builtin/receive-pack.c:2212,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/receive-pack.c:2214,1
    - Dst: die
      Src: /src/git/builtin/receive-pack.c:2215,1
    - Dst: oid_array_append
      Src: /src/git/builtin/receive-pack.c:2217,1
    - Dst: strlen
      Src: /src/git/builtin/receive-pack.c:2221,1
    - Dst: parse_feature_request
      Src: /src/git/builtin/receive-pack.c:2227,1
    - Dst: parse_feature_request
      Src: /src/git/builtin/receive-pack.c:2229,1
    - Dst: parse_feature_request
      Src: /src/git/builtin/receive-pack.c:2231,1
    - Dst: parse_feature_request
      Src: /src/git/builtin/receive-pack.c:2233,1
    - Dst: parse_feature_request
      Src: /src/git/builtin/receive-pack.c:2236,1
    - Dst: parse_feature_request
      Src: /src/git/builtin/receive-pack.c:2239,1
    - Dst: parse_feature_value
      Src: /src/git/builtin/receive-pack.c:2241,1
    - Dst: strlen
      Src: /src/git/builtin/receive-pack.c:2244,1
    - Dst: xstrncmpz
      Src: /src/git/builtin/receive-pack.c:2246,1
    - Dst: die
      Src: /src/git/builtin/receive-pack.c:2247,1
    - Dst: parse_feature_value
      Src: /src/git/builtin/receive-pack.c:2248,1
    - Dst: xstrndup
      Src: /src/git/builtin/receive-pack.c:2250,1
    - Dst: trace2_data_string
      Src: /src/git/builtin/receive-pack.c:2251,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:2252,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:2256,1
    - Dst: packet_reader_read
      Src: /src/git/builtin/receive-pack.c:2262,1
    - Dst: die
      Src: /src/git/builtin/receive-pack.c:2268,1
    - Dst: strcmp
      Src: /src/git/builtin/receive-pack.c:2270,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/receive-pack.c:2272,1
    - Dst: queue_command
      Src: /src/git/builtin/receive-pack.c:2281,1
    - Dst: queue_commands_from_cert
      Src: /src/git/builtin/receive-pack.c:2285,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 62
    argCount: 2
    argNames:
    - reader
    - shallow
    argTypes:
    - struct packet_reader*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2201
    functionDepth: 11
    functionLinenumber: 2201
    functionLinenumberEnd: 2288
    functionName: read_head_info
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - xstrncmpz
    - die
    - get_oid_hex
    - starts_with
    - xstrndup
    - strlen
    - parse_feature_request
    - parse_feature_value
    - strcmp
    - strbuf_addstr
    - free
    - queue_commands_from_cert
    - oid_array_append
    - packet_reader_read
    - queue_command
    - trace2_data_string
    linkageType: ''
    returnType: struct command
    signature: "struct command *read_head_info(struct packet_reader *reader,\n\t\t\t\t
      \     struct oid_array *shallow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_reader_read
      Src: /src/git/builtin/receive-pack.c:2294,1
    - Dst: string_list_append
      Src: /src/git/builtin/receive-pack.c:2297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - reader
    - options
    argTypes:
    - struct packet_reader*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2290
    functionDepth: 7
    functionLinenumber: 2290
    functionLinenumberEnd: 2299
    functionName: read_push_options
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 1
    functionsReached:
    - packet_reader_read
    - string_list_append
    linkageType: ''
    returnType: void
    signature: "void read_push_options(struct packet_reader *reader,\n\t\t\t      struct
      string_list *options)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_pack_header
      Src: /src/git/builtin/receive-pack.c:2303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct pack_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2301
    functionDepth: 2
    functionLinenumber: 2301
    functionLinenumberEnd: 2319
    functionName: parse_pack_header
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 1
    functionsReached:
    - read_pack_header
    linkageType: ''
    returnType: char
    signature: char *parse_pack_header(struct pack_header *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:2325,1
    - Dst: ntohl
      Src: /src/git/builtin/receive-pack.c:2326,1
    - Dst: ntohl
      Src: /src/git/builtin/receive-pack.c:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - args
    - hdr
    argTypes:
    - struct strvec*
    - struct pack_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2323
    functionDepth: 4
    functionLinenumber: 2323
    functionLinenumberEnd: 2327
    functionName: push_header_arg
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - ntohl
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: void push_header_arg(struct strvec *args, struct pack_header *hdr)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: parse_pack_header
      Src: /src/git/builtin/receive-pack.c:2341,1
    - Dst: close
      Src: /src/git/builtin/receive-pack.c:2344,1
    - Dst: setup_temporary_shallow
      Src: /src/git/builtin/receive-pack.c:2349,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:2350,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:2351,1
    - Dst: tmp_objdir_create
      Src: /src/git/builtin/receive-pack.c:2354,1
    - Dst: close
      Src: /src/git/builtin/receive-pack.c:2357,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/receive-pack.c:2360,1
    - Dst: tmp_objdir_env
      Src: /src/git/builtin/receive-pack.c:2360,1
    - Dst: tmp_objdir_add_as_alternate
      Src: /src/git/builtin/receive-pack.c:2367,1
    - Dst: ntohl
      Src: /src/git/builtin/receive-pack.c:2369,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:2370,1
    - Dst: push_header_arg
      Src: /src/git/builtin/receive-pack.c:2371,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:2373,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:2375,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:2378,1
    - Dst: run_command
      Src: /src/git/builtin/receive-pack.c:2383,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/receive-pack.c:2390,1
    - Dst: push_header_arg
      Src: /src/git/builtin/receive-pack.c:2391,1
    - Dst: xgethostname
      Src: /src/git/builtin/receive-pack.c:2393,1
    - Dst: xsnprintf
      Src: /src/git/builtin/receive-pack.c:2394,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:2395,1
    - Dst: getpid
      Src: /src/git/builtin/receive-pack.c:2397,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:2401,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:2403,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:2405,1
    - Dst: strvec_push
      Src: /src/git/builtin/receive-pack.c:2408,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/receive-pack.c:2410,1
    - Dst: start_command
      Src: /src/git/builtin/receive-pack.c:2415,1
    - Dst: index_pack_lockfile
      Src: /src/git/builtin/receive-pack.c:2419,1
    - Dst: register_tempfile
      Src: /src/git/builtin/receive-pack.c:2421,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:2422,1
    - Dst: close
      Src: /src/git/builtin/receive-pack.c:2424,1
    - Dst: finish_command
      Src: /src/git/builtin/receive-pack.c:2426,1
    - Dst: odb_reprepare
      Src: /src/git/builtin/receive-pack.c:2429,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 2
    argNames:
    - err_fd
    - si
    argTypes:
    - int
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2329
    functionDepth: 10
    functionLinenumber: 2329
    functionLinenumberEnd: 2432
    functionName: unpack
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - xsnprintf
    - free
    - tmp_objdir_env
    - register_tempfile
    - finish_command
    - setup_temporary_shallow
    - push_header_arg
    - index_pack_lockfile
    - getpid
    - parse_pack_header
    - tmp_objdir_create
    - strvec_pushv
    - strvec_pushl
    - xgethostname
    - strvec_pushf
    - run_command
    - ntohl
    - tmp_objdir_add_as_alternate
    - odb_reprepare
    - close
    - start_command
    linkageType: ''
    returnType: char
    signature: char *unpack(int err_fd, struct shallow_info *si)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unpack
      Src: /src/git/builtin/receive-pack.c:2440,1
    - Dst: memset
      Src: /src/git/builtin/receive-pack.c:2443,1
    - Dst: start_async
      Src: /src/git/builtin/receive-pack.c:2446,1
    - Dst: unpack
      Src: /src/git/builtin/receive-pack.c:2449,1
    - Dst: finish_async
      Src: /src/git/builtin/receive-pack.c:2451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - si
    argTypes:
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2434
    functionDepth: 4
    functionLinenumber: 2434
    functionLinenumberEnd: 2453
    functionName: unpack_with_sideband
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - unpack
    - memset
    - start_async
    - finish_async
    linkageType: ''
    returnType: char
    signature: char *unpack_with_sideband(struct shallow_info *si)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/git/builtin/receive-pack.c:2457,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/receive-pack.c:2459,1
    - Dst: assign_shallow_commits_to_refs
      Src: /src/git/builtin/receive-pack.c:2460,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/receive-pack.c:2462,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/receive-pack.c:2463,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/receive-pack.c:2464,1
    - Dst: setenv
      Src: /src/git/builtin/receive-pack.c:2495,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - si
    argTypes:
    - struct shallow_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2455
    functionDepth: 22
    functionLinenumber: 2455
    functionLinenumberEnd: 2496
    functionName: prepare_shallow_update
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - DIV_ROUND_UP
    - ALLOC_ARRAY
    - setenv
    - CALLOC_ARRAY
    - assign_shallow_commits_to_refs
    linkageType: ''
    returnType: void
    signature: void prepare_shallow_update(struct shallow_info *si)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: remove_nonexistent_theirs_shallow
      Src: /src/git/builtin/receive-pack.c:2504,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:2511,1
    - Dst: oid_array_append
      Src: /src/git/builtin/receive-pack.c:2513,1
    - Dst: prepare_shallow_update
      Src: /src/git/builtin/receive-pack.c:2519,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/receive-pack.c:2523,1
    - Dst: assign_shallow_commits_to_refs
      Src: /src/git/builtin/receive-pack.c:2524,1
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:2526,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:2533,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - commands
    - si
    - ref
    argTypes:
    - struct command*
    - struct shallow_info*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2498
    functionDepth: 23
    functionLinenumber: 2498
    functionLinenumberEnd: 2534
    functionName: update_shallow_info
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - ALLOC_ARRAY
    - is_null_oid
    - prepare_shallow_update
    - remove_nonexistent_theirs_shallow
    - free
    - oid_array_append
    - assign_shallow_commits_to_refs
    linkageType: ''
    returnType: void
    signature: "void update_shallow_info(struct command *commands,\n\t\t\t\tstruct
      shallow_info *si,\n\t\t\t\tstruct oid_array *ref)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2541,1
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2545,1
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2548,1
    - Dst: packet_buf_flush
      Src: /src/git/builtin/receive-pack.c:2551,1
    - Dst: send_sideband
      Src: /src/git/builtin/receive-pack.c:2554,1
    - Dst: write_or_die
      Src: /src/git/builtin/receive-pack.c:2556,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:2557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - commands
    - unpack_status
    argTypes:
    - struct command*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2536
    functionDepth: 6
    functionLinenumber: 2536
    functionLinenumberEnd: 2558
    functionName: report
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 27
    functionsReached:
    - write_or_die
    - strbuf_release
    - send_sideband
    - packet_buf_write
    - packet_buf_flush
    linkageType: ''
    returnType: void
    signature: void report(struct command *commands, const char *unpack_status)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2566,1
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2572,1
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2577,1
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2581,1
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2584,1
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2587,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:2588,1
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2590,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/receive-pack.c:2591,1
    - Dst: packet_buf_write
      Src: /src/git/builtin/receive-pack.c:2593,1
    - Dst: packet_buf_flush
      Src: /src/git/builtin/receive-pack.c:2596,1
    - Dst: send_sideband
      Src: /src/git/builtin/receive-pack.c:2599,1
    - Dst: write_or_die
      Src: /src/git/builtin/receive-pack.c:2601,1
    - Dst: strbuf_release
      Src: /src/git/builtin/receive-pack.c:2602,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - commands
    - unpack_status
    argTypes:
    - struct command*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2560
    functionDepth: 6
    functionLinenumber: 2560
    functionLinenumberEnd: 2603
    functionName: report_v2
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - strbuf_release
    - oid_to_hex
    - send_sideband
    - packet_buf_write
    - packet_buf_flush
    linkageType: ''
    returnType: void
    signature: void report_v2(struct command *commands, const char *unpack_status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/receive-pack.c:2609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - commands
    argTypes:
    - struct command*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2605
    functionDepth: 1
    functionLinenumber: 2605
    functionLinenumberEnd: 2613
    functionName: delete_only
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - is_null_oid
    linkageType: ''
    returnType: int
    signature: int delete_only(struct command *commands)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/receive-pack.c:2628,1
    - Dst: N_
      Src: /src/git/builtin/receive-pack.c:2628,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/receive-pack.c:2629,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/receive-pack.c:2630,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/receive-pack.c:2631,1
    - Dst: OPT_ALIAS
      Src: /src/git/builtin/receive-pack.c:2632,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/receive-pack.c:2633,1
    - Dst: OPT_END
      Src: /src/git/builtin/receive-pack.c:2634,1
    - Dst: packet_trace_identity
      Src: /src/git/builtin/receive-pack.c:2637,1
    - Dst: parse_options
      Src: /src/git/builtin/receive-pack.c:2639,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/receive-pack.c:2642,1
    - Dst: _
      Src: /src/git/builtin/receive-pack.c:2642,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/receive-pack.c:2644,1
    - Dst: _
      Src: /src/git/builtin/receive-pack.c:2644,1
    - Dst: setup_path
      Src: /src/git/builtin/receive-pack.c:2648,1
    - Dst: enter_repo
      Src: /src/git/builtin/receive-pack.c:2650,1
    - Dst: die
      Src: /src/git/builtin/receive-pack.c:2651,1
    - Dst: repo_config
      Src: /src/git/builtin/receive-pack.c:2653,1
    - Dst: prepare_push_cert_nonce
      Src: /src/git/builtin/receive-pack.c:2655,1
    - Dst: time
      Src: /src/git/builtin/receive-pack.c:2655,1
    - Dst: determine_protocol_version_server
      Src: /src/git/builtin/receive-pack.c:2662,1
    - Dst: packet_write_fmt
      Src: /src/git/builtin/receive-pack.c:2675,1
    - Dst: BUG
      Src: /src/git/builtin/receive-pack.c:2681,1
    - Dst: write_head_info
      Src: /src/git/builtin/receive-pack.c:2685,1
    - Dst: packet_reader_init
      Src: /src/git/builtin/receive-pack.c:2690,1
    - Dst: read_head_info
      Src: /src/git/builtin/receive-pack.c:2694,1
    - Dst: read_push_options
      Src: /src/git/builtin/receive-pack.c:2699,1
    - Dst: check_cert_push_options
      Src: /src/git/builtin/receive-pack.c:2700,1
    - Dst: prepare_shallow_info
      Src: /src/git/builtin/receive-pack.c:2706,1
    - Dst: delete_only
      Src: /src/git/builtin/receive-pack.c:2709,1
    - Dst: unpack_with_sideband
      Src: /src/git/builtin/receive-pack.c:2710,1
    - Dst: update_shallow_info
      Src: /src/git/builtin/receive-pack.c:2711,1
    - Dst: execute_commands
      Src: /src/git/builtin/receive-pack.c:2714,1
    - Dst: delete_tempfile
      Src: /src/git/builtin/receive-pack.c:2716,1
    - Dst: sigchain_push
      Src: /src/git/builtin/receive-pack.c:2717,1
    - Dst: report_v2
      Src: /src/git/builtin/receive-pack.c:2719,1
    - Dst: report
      Src: /src/git/builtin/receive-pack.c:2721,1
    - Dst: sigchain_pop
      Src: /src/git/builtin/receive-pack.c:2722,1
    - Dst: run_receive_hook
      Src: /src/git/builtin/receive-pack.c:2723,1
    - Dst: run_update_post_hook
      Src: /src/git/builtin/receive-pack.c:2725,1
    - Dst: free_commands
      Src: /src/git/builtin/receive-pack.c:2726,1
    - Dst: string_list_clear
      Src: /src/git/builtin/receive-pack.c:2727,1
    - Dst: prepare_auto_maintenance
      Src: /src/git/builtin/receive-pack.c:2731,1
    - Dst: start_command
      Src: /src/git/builtin/receive-pack.c:2736,1
    - Dst: copy_to_sideband
      Src: /src/git/builtin/receive-pack.c:2738,1
    - Dst: finish_command
      Src: /src/git/builtin/receive-pack.c:2739,1
    - Dst: update_server_info
      Src: /src/git/builtin/receive-pack.c:2744,1
    - Dst: clear_shallow_info
      Src: /src/git/builtin/receive-pack.c:2745,1
    - Dst: packet_flush
      Src: /src/git/builtin/receive-pack.c:2748,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/receive-pack.c:2749,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/receive-pack.c:2750,1
    - Dst: strvec_clear
      Src: /src/git/builtin/receive-pack.c:2751,1
    - Dst: free
      Src: /src/git/builtin/receive-pack.c:2752,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2615
    functionDepth: 24
    functionLinenumber: 2615
    functionLinenumberEnd: 2754
    functionName: cmd_receive_pack
    functionSourceFile: /src/git/builtin/receive-pack.c
    functionUses: 0
    functionsReached:
    - report_v2
    - parse_options
    - free_commands
    - setup_path
    - unpack_with_sideband
    - prepare_auto_maintenance
    - packet_flush
    - packet_trace_identity
    - write_head_info
    - clear_shallow_info
    - read_push_options
    - prepare_shallow_info
    - free
    - repo_config
    - update_server_info
    - OPT_ALIAS
    - delete_tempfile
    - OPT_END
    - die
    - finish_command
    - sigchain_push
    - oid_array_clear
    - OPT_HIDDEN_BOOL
    - OPT__QUIET
    - packet_write_fmt
    - string_list_clear
    - check_cert_push_options
    - sigchain_pop
    - execute_commands
    - _
    - N_
    - enter_repo
    - usage_msg_opt
    - run_update_post_hook
    - report
    - packet_reader_init
    - run_receive_hook
    - strvec_clear
    - delete_only
    - copy_to_sideband
    - prepare_push_cert_nonce
    - read_head_info
    - determine_protocol_version_server
    - BUG
    - update_shallow_info
    - start_command
    - time
    linkageType: ''
    returnType: int
    signature: "int cmd_receive_pack(int argc,\n\t\t     const char **argv,\n\t\t
      \    const char *prefix,\n\t\t     struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:159,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:159,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:161,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:161,1
    - Dst: die
      Src: /src/git/builtin/commit.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 167
    functionName: opt_parse_porcelain
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - die
    - strcmp
    linkageType: ''
    returnType: int
    signature: int opt_parse_porcelain(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/builtin/commit.c:174,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/commit.c:178,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/commit.c:179,1
    - Dst: strbuf_complete_line
      Src: /src/git/builtin/commit.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 5
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: opt_parse_m
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - strbuf_complete_line
    - strbuf_setlen
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: int opt_parse_m(const struct option *opt, const char *arg, int unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/commit.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: opt_parse_rename_score
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: int opt_parse_rename_score(const struct option *opt, const char *arg,
      int unset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/builtin/commit.c:200,1
    - Dst: git_path_merge_head
      Src: /src/git/builtin/commit.c:200,1
    - Dst: sequencer_determine_whence
      Src: /src/git/builtin/commit.c:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: determine_whence
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 1
    functionsReached:
    - file_exists
    - git_path_merge_head
    - sequencer_determine_whence
    linkageType: ''
    returnType: void
    signature: void determine_whence(struct wt_status *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wt_status_prepare
      Src: /src/git/builtin/commit.c:210,1
    - Dst: init_diff_ui_defaults
      Src: /src/git/builtin/commit.c:211,1
    - Dst: repo_config
      Src: /src/git/builtin/commit.c:212,1
    - Dst: determine_whence
      Src: /src/git/builtin/commit.c:213,1
    - Dst: advice_enabled
      Src: /src/git/builtin/commit.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - fn
    argTypes:
    - struct wt_status*
    - config_fn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 208
    functionDepth: 19
    functionLinenumber: 208
    functionLinenumberEnd: 215
    functionName: status_init_config
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - determine_whence
    - wt_status_prepare
    - init_diff_ui_defaults
    - repo_config
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: void status_init_config(struct wt_status *s, config_fn_t fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rollback_lock_file
      Src: /src/git/builtin/commit.c:223,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/commit.c:226,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/commit.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 217
    functionDepth: 6
    functionLinenumber: 217
    functionLinenumberEnd: 230
    functionName: rollback_index_files
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - rollback_lock_file
    linkageType: ''
    returnType: void
    signature: void rollback_index_files(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_lock_file
      Src: /src/git/builtin/commit.c:240,1
    - Dst: commit_lock_file
      Src: /src/git/builtin/commit.c:243,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/commit.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: commit_index_files
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - rollback_lock_file
    - commit_lock_file
    linkageType: ''
    returnType: int
    signature: int commit_index_files(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/builtin/commit.c:264,1
    - Dst: common_prefix
      Src: /src/git/builtin/commit.c:267,1
    - Dst: overlay_tree_on_index
      Src: /src/git/builtin/commit.c:268,1
    - Dst: free
      Src: /src/git/builtin/commit.c:269,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/commit.c:273,1
    - Dst: ce_path_match
      Src: /src/git/builtin/commit.c:280,1
    - Dst: string_list_insert
      Src: /src/git/builtin/commit.c:282,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/commit.c:283,1
    - Dst: report_path_error
      Src: /src/git/builtin/commit.c:287,1
    - Dst: free
      Src: /src/git/builtin/commit.c:288,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - list
    - with_tree
    - pattern
    argTypes:
    - struct string_list*
    - char*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 255
    functionDepth: 9
    functionLinenumber: 255
    functionLinenumberEnd: 290
    functionName: list_paths
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - string_list_insert
    - ce_path_match
    - common_prefix
    - report_path_error
    - ce_skip_worktree
    - xcalloc
    - free
    - overlay_tree_on_index
    linkageType: ''
    returnType: int
    signature: "int list_paths(struct string_list *list, const char *with_tree,\n\t\t
      \     const struct pathspec *pattern)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/git/builtin/commit.c:303,1
    - Dst: add_to_index
      Src: /src/git/builtin/commit.c:304,1
    - Dst: die
      Src: /src/git/builtin/commit.c:305,1
    - Dst: _
      Src: /src/git/builtin/commit.c:305,1
    - Dst: remove_file_from_index
      Src: /src/git/builtin/commit.c:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 292
    functionDepth: 10
    functionLinenumber: 292
    functionLinenumberEnd: 309
    functionName: add_remove_files
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - add_to_index
    - die
    - remove_file_from_index
    - _
    - lstat
    linkageType: ''
    returnType: void
    signature: void add_remove_files(struct string_list *list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: discard_index
      Src: /src/git/builtin/commit.c:318,1
    - Dst: memset
      Src: /src/git/builtin/commit.c:322,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/commit.c:330,1
    - Dst: die
      Src: /src/git/builtin/commit.c:333,1
    - Dst: _
      Src: /src/git/builtin/commit.c:333,1
    - Dst: repo_parse_tree
      Src: /src/git/builtin/commit.c:334,1
    - Dst: exit
      Src: /src/git/builtin/commit.c:335,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/commit.c:336,1
    - Dst: unpack_trees
      Src: /src/git/builtin/commit.c:337,1
    - Dst: exit
      Src: /src/git/builtin/commit.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - current_head
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 311
    functionDepth: 14
    functionLinenumber: 311
    functionLinenumberEnd: 339
    functionName: create_base_index
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - repo_parse_tree_indirect
    - exit
    - repo_parse_tree
    - init_tree_desc
    - unpack_trees
    - _
    - discard_index
    linkageType: ''
    returnType: void
    signature: void create_base_index(const struct commit *current_head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refresh_index
      Src: /src/git/builtin/commit.c:347,1
    - Dst: die_resolve_conflict
      Src: /src/git/builtin/commit.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - refresh_flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 341
    functionDepth: 12
    functionLinenumber: 341
    functionLinenumberEnd: 349
    functionName: refresh_cache_or_die
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - die_resolve_conflict
    - refresh_index
    linkageType: ''
    returnType: void
    signature: void refresh_cache_or_die(int refresh_flags)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/commit.c:361,1
    - Dst: _
      Src: /src/git/builtin/commit.c:361,1
    - Dst: die
      Src: /src/git/builtin/commit.c:363,1
    - Dst: _
      Src: /src/git/builtin/commit.c:363,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/commit.c:367,1
    - Dst: die
      Src: /src/git/builtin/commit.c:373,1
    - Dst: _
      Src: /src/git/builtin/commit.c:373,1
    - Dst: die
      Src: /src/git/builtin/commit.c:376,1
    - Dst: _
      Src: /src/git/builtin/commit.c:376,1
    - Dst: die
      Src: /src/git/builtin/commit.c:379,1
    - Dst: _
      Src: /src/git/builtin/commit.c:379,1
    - Dst: parse_pathspec_file
      Src: /src/git/builtin/commit.c:381,1
    - Dst: die
      Src: /src/git/builtin/commit.c:385,1
    - Dst: _
      Src: /src/git/builtin/commit.c:385,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:389,1
    - Dst: die
      Src: /src/git/builtin/commit.c:390,1
    - Dst: _
      Src: /src/git/builtin/commit.c:390,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/commit.c:392,1
    - Dst: die
      Src: /src/git/builtin/commit.c:393,1
    - Dst: _
      Src: /src/git/builtin/commit.c:393,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/commit.c:397,1
    - Dst: refresh_cache_or_die
      Src: /src/git/builtin/commit.c:400,1
    - Dst: write_locked_index
      Src: /src/git/builtin/commit.c:402,1
    - Dst: die
      Src: /src/git/builtin/commit.c:403,1
    - Dst: _
      Src: /src/git/builtin/commit.c:403,1
    - Dst: get_lock_file_path
      Src: /src/git/builtin/commit.c:407,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/commit.c:408,1
    - Dst: getenv
      Src: /src/git/builtin/commit.c:408,1
    - Dst: setenv
      Src: /src/git/builtin/commit.c:409,1
    - Dst: interactive_add
      Src: /src/git/builtin/commit.c:411,1
    - Dst: die
      Src: /src/git/builtin/commit.c:412,1
    - Dst: _
      Src: /src/git/builtin/commit.c:412,1
    - Dst: setenv
      Src: /src/git/builtin/commit.c:416,1
    - Dst: unsetenv
      Src: /src/git/builtin/commit.c:418,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/commit.c:419,1
    - Dst: discard_index
      Src: /src/git/builtin/commit.c:421,1
    - Dst: read_index_from
      Src: /src/git/builtin/commit.c:422,1
    - Dst: get_lock_file_path
      Src: /src/git/builtin/commit.c:422,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/commit.c:423,1
    - Dst: cache_tree_update
      Src: /src/git/builtin/commit.c:424,1
    - Dst: reopen_lock_file
      Src: /src/git/builtin/commit.c:425,1
    - Dst: die
      Src: /src/git/builtin/commit.c:426,1
    - Dst: _
      Src: /src/git/builtin/commit.c:426,1
    - Dst: write_locked_index
      Src: /src/git/builtin/commit.c:427,1
    - Dst: die
      Src: /src/git/builtin/commit.c:428,1
    - Dst: _
      Src: /src/git/builtin/commit.c:428,1
    - Dst: warning
      Src: /src/git/builtin/commit.c:430,1
    - Dst: _
      Src: /src/git/builtin/commit.c:430,1
    - Dst: get_lock_file_path
      Src: /src/git/builtin/commit.c:433,1
    - Dst: die
      Src: /src/git/builtin/commit.c:437,1
    - Dst: _
      Src: /src/git/builtin/commit.c:437,1
    - Dst: die
      Src: /src/git/builtin/commit.c:439,1
    - Dst: _
      Src: /src/git/builtin/commit.c:439,1
    - Dst: xcalloc
      Src: /src/git/builtin/commit.c:455,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/commit.c:456,1
    - Dst: add_files_to_cache
      Src: /src/git/builtin/commit.c:458,1
    - Dst: report_path_error
      Src: /src/git/builtin/commit.c:460,1
    - Dst: exit
      Src: /src/git/builtin/commit.c:461,1
    - Dst: refresh_cache_or_die
      Src: /src/git/builtin/commit.c:463,1
    - Dst: cache_tree_update
      Src: /src/git/builtin/commit.c:464,1
    - Dst: write_locked_index
      Src: /src/git/builtin/commit.c:465,1
    - Dst: die
      Src: /src/git/builtin/commit.c:466,1
    - Dst: _
      Src: /src/git/builtin/commit.c:466,1
    - Dst: get_lock_file_path
      Src: /src/git/builtin/commit.c:468,1
    - Dst: free
      Src: /src/git/builtin/commit.c:469,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/commit.c:483,1
    - Dst: refresh_cache_or_die
      Src: /src/git/builtin/commit.c:485,1
    - Dst: cache_tree_fully_valid
      Src: /src/git/builtin/commit.c:487,1
    - Dst: cache_tree_update
      Src: /src/git/builtin/commit.c:488,1
    - Dst: write_locked_index
      Src: /src/git/builtin/commit.c:489,1
    - Dst: die
      Src: /src/git/builtin/commit.c:491,1
    - Dst: _
      Src: /src/git/builtin/commit.c:491,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/commit.c:493,1
    - Dst: die
      Src: /src/git/builtin/commit.c:520,1
    - Dst: _
      Src: /src/git/builtin/commit.c:520,1
    - Dst: is_from_cherry_pick
      Src: /src/git/builtin/commit.c:521,1
    - Dst: die
      Src: /src/git/builtin/commit.c:522,1
    - Dst: _
      Src: /src/git/builtin/commit.c:522,1
    - Dst: is_from_rebase
      Src: /src/git/builtin/commit.c:523,1
    - Dst: die
      Src: /src/git/builtin/commit.c:524,1
    - Dst: _
      Src: /src/git/builtin/commit.c:524,1
    - Dst: list_paths
      Src: /src/git/builtin/commit.c:527,1
    - Dst: exit
      Src: /src/git/builtin/commit.c:528,1
    - Dst: discard_index
      Src: /src/git/builtin/commit.c:530,1
    - Dst: repo_read_index
      Src: /src/git/builtin/commit.c:531,1
    - Dst: die
      Src: /src/git/builtin/commit.c:532,1
    - Dst: _
      Src: /src/git/builtin/commit.c:532,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/commit.c:534,1
    - Dst: add_remove_files
      Src: /src/git/builtin/commit.c:535,1
    - Dst: refresh_index
      Src: /src/git/builtin/commit.c:536,1
    - Dst: cache_tree_update
      Src: /src/git/builtin/commit.c:537,1
    - Dst: write_locked_index
      Src: /src/git/builtin/commit.c:538,1
    - Dst: die
      Src: /src/git/builtin/commit.c:539,1
    - Dst: _
      Src: /src/git/builtin/commit.c:539,1
    - Dst: repo_git_path
      Src: /src/git/builtin/commit.c:541,1
    - Dst: getpid
      Src: /src/git/builtin/commit.c:542,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/builtin/commit.c:543,1
    - Dst: create_base_index
      Src: /src/git/builtin/commit.c:546,1
    - Dst: add_remove_files
      Src: /src/git/builtin/commit.c:547,1
    - Dst: refresh_index
      Src: /src/git/builtin/commit.c:548,1
    - Dst: write_locked_index
      Src: /src/git/builtin/commit.c:550,1
    - Dst: die
      Src: /src/git/builtin/commit.c:551,1
    - Dst: _
      Src: /src/git/builtin/commit.c:551,1
    - Dst: discard_index
      Src: /src/git/builtin/commit.c:553,1
    - Dst: get_lock_file_path
      Src: /src/git/builtin/commit.c:554,1
    - Dst: read_index_from
      Src: /src/git/builtin/commit.c:555,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/commit.c:555,1
    - Dst: string_list_clear
      Src: /src/git/builtin/commit.c:557,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/commit.c:558,1
    - Dst: free
      Src: /src/git/builtin/commit.c:559,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 122
    argCount: 4
    argNames:
    - argv
    - prefix
    - current_head
    - is_status
    argTypes:
    - char**
    - char*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 351
    functionDepth: 21
    functionLinenumber: 351
    functionLinenumberEnd: 561
    functionName: prepare_index
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    - hold_lock_file_for_update
    - parse_pathspec_file
    - repo_hold_locked_index
    - strcmp
    - free
    - refresh_index
    - read_index_from
    - unsetenv
    - is_from_cherry_pick
    - discard_index
    - repo_read_index_preload
    - add_remove_files
    - die
    - xstrdup_or_null
    - add_files_to_cache
    - interactive_add
    - repo_get_index_file
    - repo_read_index
    - is_from_rebase
    - cache_tree_update
    - xcalloc
    - parse_pathspec
    - reopen_lock_file
    - string_list_clear
    - cache_tree_fully_valid
    - report_path_error
    - _
    - warning
    - FREE_AND_NULL
    - get_lock_file_path
    - clear_pathspec
    - refresh_cache_or_die
    - list_paths
    - exit
    - write_locked_index
    - setenv
    - create_base_index
    - repo_get_git_dir
    - getpid
    - getenv
    linkageType: ''
    returnType: char
    signature: "char *prepare_index(const char **argv, const char *prefix,\n\t\t\t\t
      const struct commit *current_head, int is_status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/commit.c:579,1
    - Dst: oidcpy
      Src: /src/git/builtin/commit.c:581,1
    - Dst: wt_status_collect
      Src: /src/git/builtin/commit.c:585,1
    - Dst: wt_status_print
      Src: /src/git/builtin/commit.c:586,1
    - Dst: wt_status_collect_free_buffers
      Src: /src/git/builtin/commit.c:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - fp
    - index_file
    - prefix
    - nowarn
    - s
    argTypes:
    - FILE*
    - char*
    - char*
    - int
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 563
    functionDepth: 15
    functionLinenumber: 563
    functionLinenumberEnd: 590
    functionName: run_status
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 1
    functionsReached:
    - oidcpy
    - repo_get_oid
    - wt_status_collect_free_buffers
    - wt_status_collect
    - wt_status_print
    linkageType: ''
    returnType: int
    signature: "int run_status(FILE *fp, const char *index_file, const char *prefix,
      int nowarn,\n\t\t      struct wt_status *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - current_head
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: is_a_merge
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_a_merge(const struct commit *current_head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: split_ident_line
      Src: /src/git/builtin/commit.c:599,1
    - Dst: BUG
      Src: /src/git/builtin/commit.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - id
    - buf
    argTypes:
    - struct ident_split*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: assert_split_ident
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - BUG
    - split_ident_line
    linkageType: ''
    returnType: void
    signature: void assert_split_ident(struct ident_split *id, const struct strbuf
      *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/builtin/commit.c:607,1
    - Dst: strbuf_add
      Src: /src/git/builtin/commit.c:608,1
    - Dst: setenv
      Src: /src/git/builtin/commit.c:609,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - var
    - s
    - e
    - hack
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 611
    functionName: export_one
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - setenv
    - strbuf_release
    - strbuf_add
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void export_one(const char *var, const char *s, const char *e, int
      hack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/builtin/commit.c:615,1
    - Dst: parse_date
      Src: /src/git/builtin/commit.c:617,1
    - Dst: approxidate_careful
      Src: /src/git/builtin/commit.c:619,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/commit.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 613
    functionDepth: 6
    functionLinenumber: 613
    functionLinenumberEnd: 626
    functionName: parse_force_date
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - parse_date
    - approxidate_careful
    - strbuf_addch
    linkageType: ''
    returnType: int
    signature: int parse_force_date(const char *in, struct strbuf *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/commit.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - val
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: set_ident_var
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void set_ident_var(char **buf, char *val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/commit.c:639,1
    - Dst: getenv
      Src: /src/git/builtin/commit.c:639,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/commit.c:640,1
    - Dst: getenv
      Src: /src/git/builtin/commit.c:640,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/commit.c:641,1
    - Dst: getenv
      Src: /src/git/builtin/commit.c:641,1
    - Dst: find_commit_header
      Src: /src/git/builtin/commit.c:648,1
    - Dst: die
      Src: /src/git/builtin/commit.c:650,1
    - Dst: _
      Src: /src/git/builtin/commit.c:650,1
    - Dst: split_ident_line
      Src: /src/git/builtin/commit.c:651,1
    - Dst: die
      Src: /src/git/builtin/commit.c:652,1
    - Dst: _
      Src: /src/git/builtin/commit.c:652,1
    - Dst: set_ident_var
      Src: /src/git/builtin/commit.c:654,1
    - Dst: xmemdupz
      Src: /src/git/builtin/commit.c:654,1
    - Dst: set_ident_var
      Src: /src/git/builtin/commit.c:655,1
    - Dst: xmemdupz
      Src: /src/git/builtin/commit.c:655,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/commit.c:659,1
    - Dst: strbuf_add
      Src: /src/git/builtin/commit.c:660,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/commit.c:661,1
    - Dst: strbuf_add
      Src: /src/git/builtin/commit.c:662,1
    - Dst: set_ident_var
      Src: /src/git/builtin/commit.c:663,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/commit.c:663,1
    - Dst: split_ident_line
      Src: /src/git/builtin/commit.c:670,1
    - Dst: strlen
      Src: /src/git/builtin/commit.c:670,1
    - Dst: die
      Src: /src/git/builtin/commit.c:671,1
    - Dst: _
      Src: /src/git/builtin/commit.c:671,1
    - Dst: set_ident_var
      Src: /src/git/builtin/commit.c:672,1
    - Dst: xmemdupz
      Src: /src/git/builtin/commit.c:672,1
    - Dst: set_ident_var
      Src: /src/git/builtin/commit.c:673,1
    - Dst: xmemdupz
      Src: /src/git/builtin/commit.c:673,1
    - Dst: parse_force_date
      Src: /src/git/builtin/commit.c:678,1
    - Dst: die
      Src: /src/git/builtin/commit.c:679,1
    - Dst: _
      Src: /src/git/builtin/commit.c:679,1
    - Dst: set_ident_var
      Src: /src/git/builtin/commit.c:680,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/commit.c:680,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/commit.c:683,1
    - Dst: fmt_ident
      Src: /src/git/builtin/commit.c:683,1
    - Dst: assert_split_ident
      Src: /src/git/builtin/commit.c:685,1
    - Dst: export_one
      Src: /src/git/builtin/commit.c:686,1
    - Dst: export_one
      Src: /src/git/builtin/commit.c:687,1
    - Dst: export_one
      Src: /src/git/builtin/commit.c:688,1
    - Dst: free
      Src: /src/git/builtin/commit.c:689,1
    - Dst: free
      Src: /src/git/builtin/commit.c:690,1
    - Dst: free
      Src: /src/git/builtin/commit.c:691,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 1
    argNames:
    - author_ident
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 634
    functionDepth: 10
    functionLinenumber: 634
    functionLinenumberEnd: 692
    functionName: determine_author_info
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - fmt_ident
    - die
    - xstrdup_or_null
    - assert_split_ident
    - find_commit_header
    - set_ident_var
    - parse_force_date
    - strbuf_addch
    - free
    - strlen
    - strbuf_detach
    - strbuf_addstr
    - _
    - export_one
    - getenv
    - split_ident_line
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void determine_author_info(struct strbuf *author_ident)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: author_date_is_interesting
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int author_date_is_interesting(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ignored_log_message_bytes
      Src: /src/git/builtin/commit.c:708,1
    - Dst: memchr
      Src: /src/git/builtin/commit.c:710,1
    - Dst: free
      Src: /src/git/builtin/commit.c:711,1
    - Dst: xstrfmt
      Src: /src/git/builtin/commit.c:713,1
    - Dst: strchr
      Src: /src/git/builtin/commit.c:718,1
    - Dst: strchr
      Src: /src/git/builtin/commit.c:723,1
    - Dst: die
      Src: /src/git/builtin/commit.c:732,1
    - Dst: _
      Src: /src/git/builtin/commit.c:732,1
    - Dst: free
      Src: /src/git/builtin/commit.c:734,1
    - Dst: xstrfmt
      Src: /src/git/builtin/commit.c:735,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 700
    functionDepth: 5
    functionLinenumber: 700
    functionLinenumberEnd: 736
    functionName: adjust_comment_line_char
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - memchr
    - die
    - xstrfmt
    - strchr
    - ignored_log_message_bytes
    - free
    - _
    linkageType: ''
    returnType: void
    signature: void adjust_comment_line_char(const struct strbuf *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_commit_buffer
      Src: /src/git/builtin/commit.c:744,1
    - Dst: find_commit_subject
      Src: /src/git/builtin/commit.c:745,1
    - Dst: starts_with
      Src: /src/git/builtin/commit.c:750,1
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/commit.c:751,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/commit.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - commit
    - sb
    - ctx
    argTypes:
    - struct commit*
    - struct strbuf*
    - struct pretty_print_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 739
    functionDepth: 14
    functionLinenumber: 739
    functionLinenumberEnd: 753
    functionName: prepare_amend_commit
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - find_commit_subject
    - repo_unuse_commit_buffer
    - starts_with
    - repo_get_commit_buffer
    linkageType: ''
    returnType: void
    signature: "void prepare_amend_commit(struct commit *commit, struct strbuf *sb,\n\t\t\t\tstruct
      pretty_print_context *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/commit.c:758,1
    - Dst: free
      Src: /src/git/builtin/commit.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - util
    - UNUSED
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: change_data_free
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void change_data_free(void *util, const char *str UNUSED)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: determine_author_info
      Src: /src/git/builtin/commit.c:778,1
    - Dst: run_commit_hook
      Src: /src/git/builtin/commit.c:780,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:789,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/commit.c:790,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/commit.c:794,1
    - Dst: die
      Src: /src/git/builtin/commit.c:796,1
    - Dst: _
      Src: /src/git/builtin/commit.c:796,1
    - Dst: get_commit_output_encoding
      Src: /src/git/builtin/commit.c:797,1
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/commit.c:798,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/commit.c:805,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:807,1
    - Dst: isatty
      Src: /src/git/builtin/commit.c:808,1
    - Dst: fprintf
      Src: /src/git/builtin/commit.c:809,1
    - Dst: _
      Src: /src/git/builtin/commit.c:809,1
    - Dst: strbuf_read
      Src: /src/git/builtin/commit.c:810,1
    - Dst: die_errno
      Src: /src/git/builtin/commit.c:811,1
    - Dst: _
      Src: /src/git/builtin/commit.c:811,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/commit.c:814,1
    - Dst: die_errno
      Src: /src/git/builtin/commit.c:815,1
    - Dst: _
      Src: /src/git/builtin/commit.c:815,1
    - Dst: strstr
      Src: /src/git/builtin/commit.c:820,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/commit.c:822,1
    - Dst: skip_blank_lines
      Src: /src/git/builtin/commit.c:822,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/commit.c:829,1
    - Dst: die
      Src: /src/git/builtin/commit.c:831,1
    - Dst: _
      Src: /src/git/builtin/commit.c:831,1
    - Dst: get_commit_output_encoding
      Src: /src/git/builtin/commit.c:832,1
    - Dst: xstrfmt
      Src: /src/git/builtin/commit.c:833,1
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/commit.c:834,1
    - Dst: free
      Src: /src/git/builtin/commit.c:836,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:848,1
    - Dst: strbuf_addbuf
      Src: /src/git/builtin/commit.c:849,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:851,1
    - Dst: die
      Src: /src/git/builtin/commit.c:853,1
    - Dst: _
      Src: /src/git/builtin/commit.c:853,1
    - Dst: prepare_amend_commit
      Src: /src/git/builtin/commit.c:854,1
    - Dst: stat
      Src: /src/git/builtin/commit.c:856,1
    - Dst: git_path_merge_msg
      Src: /src/git/builtin/commit.c:856,1
    - Dst: stat
      Src: /src/git/builtin/commit.c:863,1
    - Dst: git_path_squash_msg
      Src: /src/git/builtin/commit.c:863,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/commit.c:864,1
    - Dst: git_path_squash_msg
      Src: /src/git/builtin/commit.c:864,1
    - Dst: die_errno
      Src: /src/git/builtin/commit.c:865,1
    - Dst: _
      Src: /src/git/builtin/commit.c:865,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/commit.c:871,1
    - Dst: git_path_merge_msg
      Src: /src/git/builtin/commit.c:871,1
    - Dst: die_errno
      Src: /src/git/builtin/commit.c:872,1
    - Dst: _
      Src: /src/git/builtin/commit.c:872,1
    - Dst: wt_status_locate_end
      Src: /src/git/builtin/commit.c:875,1
    - Dst: stat
      Src: /src/git/builtin/commit.c:879,1
    - Dst: git_path_squash_msg
      Src: /src/git/builtin/commit.c:879,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/commit.c:880,1
    - Dst: git_path_squash_msg
      Src: /src/git/builtin/commit.c:880,1
    - Dst: die_errno
      Src: /src/git/builtin/commit.c:881,1
    - Dst: _
      Src: /src/git/builtin/commit.c:881,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/commit.c:884,1
    - Dst: die_errno
      Src: /src/git/builtin/commit.c:885,1
    - Dst: _
      Src: /src/git/builtin/commit.c:885,1
    - Dst: is_from_cherry_pick
      Src: /src/git/builtin/commit.c:896,1
    - Dst: fopen_for_writing
      Src: /src/git/builtin/commit.c:911,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/builtin/commit.c:911,1
    - Dst: die_errno
      Src: /src/git/builtin/commit.c:913,1
    - Dst: _
      Src: /src/git/builtin/commit.c:913,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/builtin/commit.c:913,1
    - Dst: strbuf_stripspace
      Src: /src/git/builtin/commit.c:926,1
    - Dst: append_signoff
      Src: /src/git/builtin/commit.c:929,1
    - Dst: ignored_log_message_bytes
      Src: /src/git/builtin/commit.c:929,1
    - Dst: fwrite
      Src: /src/git/builtin/commit.c:931,1
    - Dst: die_errno
      Src: /src/git/builtin/commit.c:932,1
    - Dst: _
      Src: /src/git/builtin/commit.c:932,1
    - Dst: adjust_comment_line_char
      Src: /src/git/builtin/commit.c:936,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit.c:938,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/commit.c:941,1
    - Dst: git_committer_info
      Src: /src/git/builtin/commit.c:941,1
    - Dst: _
      Src: /src/git/builtin/commit.c:947,1
    - Dst: _
      Src: /src/git/builtin/commit.c:949,1
    - Dst: _
      Src: /src/git/builtin/commit.c:953,1
    - Dst: _
      Src: /src/git/builtin/commit.c:957,1
    - Dst: wt_status_add_cut_line
      Src: /src/git/builtin/commit.c:964,1
    - Dst: status_printf_ln
      Src: /src/git/builtin/commit.c:965,1
    - Dst: _
      Src: /src/git/builtin/commit.c:968,1
    - Dst: _
      Src: /src/git/builtin/commit.c:973,1
    - Dst: fprintf
      Src: /src/git/builtin/commit.c:980,1
    - Dst: status_printf
      Src: /src/git/builtin/commit.c:982,1
    - Dst: wt_status_add_cut_line
      Src: /src/git/builtin/commit.c:985,1
    - Dst: status_printf
      Src: /src/git/builtin/commit.c:987,1
    - Dst: assert_split_ident
      Src: /src/git/builtin/commit.c:995,1
    - Dst: assert_split_ident
      Src: /src/git/builtin/commit.c:996,1
    - Dst: ident_cmp
      Src: /src/git/builtin/commit.c:998,1
    - Dst: status_printf_ln
      Src: /src/git/builtin/commit.c:999,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1000,1
    - Dst: author_date_is_interesting
      Src: /src/git/builtin/commit.c:1006,1
    - Dst: status_printf_ln
      Src: /src/git/builtin/commit.c:1007,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1008,1
    - Dst: show_ident_date
      Src: /src/git/builtin/commit.c:1011,1
    - Dst: DATE_MODE
      Src: /src/git/builtin/commit.c:1011,1
    - Dst: committer_ident_sufficiently_given
      Src: /src/git/builtin/commit.c:1013,1
    - Dst: status_printf_ln
      Src: /src/git/builtin/commit.c:1014,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1015,1
    - Dst: status_printf_ln
      Src: /src/git/builtin/commit.c:1021,1
    - Dst: run_status
      Src: /src/git/builtin/commit.c:1025,1
    - Dst: string_list_clear_func
      Src: /src/git/builtin/commit.c:1027,1
    - Dst: repo_read_index
      Src: /src/git/builtin/commit.c:1032,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1033,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1033,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/commit.c:1038,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/commit.c:1042,1
    - Dst: ce_intent_to_add
      Src: /src/git/builtin/commit.c:1044,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1060,1
    - Dst: index_differs_from
      Src: /src/git/builtin/commit.c:1062,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit.c:1066,1
    - Dst: fclose
      Src: /src/git/builtin/commit.c:1068,1
    - Dst: amend_file_with_trailers
      Src: /src/git/builtin/commit.c:1071,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/builtin/commit.c:1071,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1072,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1072,1
    - Dst: strvec_clear
      Src: /src/git/builtin/commit.c:1073,1
    - Dst: is_a_merge
      Src: /src/git/builtin/commit.c:1082,1
    - Dst: advice_enabled
      Src: /src/git/builtin/commit.c:1083,1
    - Dst: run_status
      Src: /src/git/builtin/commit.c:1085,1
    - Dst: fputs
      Src: /src/git/builtin/commit.c:1087,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1087,1
    - Dst: is_from_cherry_pick
      Src: /src/git/builtin/commit.c:1088,1
    - Dst: fputs
      Src: /src/git/builtin/commit.c:1090,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1090,1
    - Dst: fputs
      Src: /src/git/builtin/commit.c:1092,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1092,1
    - Dst: fputs
      Src: /src/git/builtin/commit.c:1094,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1094,1
    - Dst: fputs
      Src: /src/git/builtin/commit.c:1096,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1096,1
    - Dst: discard_index
      Src: /src/git/builtin/commit.c:1107,1
    - Dst: read_index_from
      Src: /src/git/builtin/commit.c:1109,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/commit.c:1109,1
    - Dst: cache_tree_update
      Src: /src/git/builtin/commit.c:1111,1
    - Dst: error
      Src: /src/git/builtin/commit.c:1112,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1112,1
    - Dst: run_commit_hook
      Src: /src/git/builtin/commit.c:1116,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/builtin/commit.c:1117,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/commit.c:1123,1
    - Dst: launch_editor
      Src: /src/git/builtin/commit.c:1124,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/builtin/commit.c:1124,1
    - Dst: fprintf
      Src: /src/git/builtin/commit.c:1125,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1126,1
    - Dst: exit
      Src: /src/git/builtin/commit.c:1127,1
    - Dst: strvec_clear
      Src: /src/git/builtin/commit.c:1129,1
    - Dst: run_commit_hook
      Src: /src/git/builtin/commit.c:1133,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/builtin/commit.c:1134,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 195
    argCount: 5
    argNames:
    - index_file
    - prefix
    - current_head
    - s
    - author_ident
    argTypes:
    - char*
    - char*
    - struct commit*
    - struct wt_status*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 762
    functionDepth: 15
    functionLinenumber: 762
    functionLinenumberEnd: 1139
    functionName: prepare_to_commit
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 2
    functionsReached:
    - adjust_comment_line_char
    - author_date_is_interesting
    - ensure_full_index
    - fclose
    - fputs
    - repo_get_oid
    - DATE_MODE
    - git_path_commit_editmsg
    - run_status
    - strbuf_addbuf
    - get_commit_output_encoding
    - strcmp
    - free
    - fopen_for_writing
    - status_printf_ln
    - read_index_from
    - wt_status_locate_end
    - is_from_cherry_pick
    - discard_index
    - error
    - strbuf_release
    - die
    - lookup_commit_reference_by_name
    - strstr
    - run_commit_hook
    - skip_blank_lines
    - git_path_squash_msg
    - append_signoff
    - string_list_clear_func
    - repo_read_index
    - ce_intent_to_add
    - amend_file_with_trailers
    - cache_tree_update
    - status_printf
    - strbuf_addstr
    - isatty
    - strbuf_stripspace
    - assert_split_ident
    - committer_ident_sufficiently_given
    - strbuf_read_file
    - die_errno
    - determine_author_info
    - stat
    - advice_enabled
    - _
    - git_path_merge_msg
    - is_a_merge
    - git_committer_info
    - strvec_pushf
    - repo_format_commit_message
    - strbuf_read
    - xstrfmt
    - fwrite
    - exit
    - launch_editor
    - wt_status_add_cut_line
    - ignored_log_message_bytes
    - strvec_clear
    - repo_get_git_dir
    - ident_cmp
    - index_differs_from
    - fprintf
    - show_ident_date
    - prepare_amend_commit
    linkageType: ''
    returnType: int
    signature: "int prepare_to_commit(const char *index_file, const char *prefix,\n\t\t\t
      \    struct commit *current_head,\n\t\t\t     struct wt_status *s,\n\t\t\t     struct
      strbuf *author_ident)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/builtin/commit.c:1149,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/commit.c:1150,1
    - Dst: setup_revisions
      Src: /src/git/builtin/commit.c:1155,1
    - Dst: xmalloc
      Src: /src/git/builtin/commit.c:1156,1
    - Dst: string_list_init_nodup
      Src: /src/git/builtin/commit.c:1157,1
    - Dst: read_mailmap
      Src: /src/git/builtin/commit.c:1158,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/commit.c:1160,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1161,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1161,1
    - Dst: get_revision
      Src: /src/git/builtin/commit.c:1162,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit.c:1166,1
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/commit.c:1167,1
    - Dst: release_revisions
      Src: /src/git/builtin/commit.c:1169,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/commit.c:1170,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1172,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1141
    functionDepth: 14
    functionLinenumber: 1141
    functionLinenumberEnd: 1173
    functionName: find_author_by_nickname
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - repo_format_commit_message
    - strbuf_release
    - string_list_init_nodup
    - die
    - release_revisions
    - get_revision
    - read_mailmap
    - strbuf_addf
    - repo_init_revisions
    - xmalloc
    - prepare_revision_walk
    - strbuf_detach
    - _
    - setup_revisions
    linkageType: ''
    returnType: char
    signature: char *find_author_by_nickname(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1179,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1181,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1183,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1186,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1187
    functionName: handle_ignored_arg
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - die
    - _
    - strcmp
    linkageType: ''
    returnType: void
    signature: void handle_ignored_arg(struct wt_status *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/commit.c:1195,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1206,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1208,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - u
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1189
    functionDepth: 5
    functionLinenumber: 1189
    functionLinenumberEnd: 1214
    functionName: parse_untracked_setting_name
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - git_parse_maybe_bool
    - strcmp
    linkageType: ''
    returnType: enum untracked_status_type
    signature: enum untracked_status_type parse_untracked_setting_name(const char
      *u)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_untracked_setting_name
      Src: /src/git/builtin/commit.c:1223,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1225,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1216
    functionDepth: 6
    functionLinenumber: 1216
    functionLinenumberEnd: 1228
    functionName: handle_untracked_files_arg
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - parse_untracked_setting_name
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void handle_untracked_files_arg(struct wt_status *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/commit.c:1235,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1237,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1237,1
    - Dst: get_commit_output_encoding
      Src: /src/git/builtin/commit.c:1238,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/builtin/commit.c:1239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1230
    functionDepth: 6
    functionLinenumber: 1230
    functionLinenumberEnd: 1240
    functionName: read_commit_message
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - die
    - lookup_commit_reference_by_name
    - repo_logmsg_reencode
    - get_commit_output_encoding
    - _
    linkageType: ''
    returnType: char
    signature: char *read_commit_message(const char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/commit.c:1267,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1267,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1293
    functionName: finalize_deferred_config
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void finalize_deferred_config(struct wt_status *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/commit.c:1298,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1298,1
    - Dst: is_from_cherry_pick
      Src: /src/git/builtin/commit.c:1299,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1300,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1300,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1303,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1303,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1305,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1305,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1307
    functionName: check_fixup_reword_options
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - die
    - is_from_cherry_pick
    - _
    linkageType: ''
    returnType: void
    signature: void check_fixup_reword_options(int argc, const char *argv[])
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: parse_options
      Src: /src/git/builtin/commit.c:1316,1
    - Dst: finalize_deferred_config
      Src: /src/git/builtin/commit.c:1317,1
    - Dst: strchr
      Src: /src/git/builtin/commit.c:1319,1
    - Dst: find_author_by_nickname
      Src: /src/git/builtin/commit.c:1320,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1323,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1323,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1330,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1330,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1333,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1333,1
    - Dst: is_from_cherry_pick
      Src: /src/git/builtin/commit.c:1334,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1335,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1335,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1337,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1337,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1340,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1340,1
    - Dst: die_for_incompatible_opt4
      Src: /src/git/builtin/commit.c:1341,1
    - Dst: die_for_incompatible_opt4
      Src: /src/git/builtin/commit.c:1345,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/commit.c:1350,1
    - Dst: is_from_cherry_pick
      Src: /src/git/builtin/commit.c:1355,1
    - Dst: is_from_rebase
      Src: /src/git/builtin/commit.c:1356,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1357,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1357,1
    - Dst: read_commit_message
      Src: /src/git/builtin/commit.c:1359,1
    - Dst: is_from_cherry_pick
      Src: /src/git/builtin/commit.c:1365,1
    - Dst: read_commit_message
      Src: /src/git/builtin/commit.c:1368,1
    - Dst: die_for_incompatible_opt4
      Src: /src/git/builtin/commit.c:1374,1
    - Dst: isalpha
      Src: /src/git/builtin/commit.c:1390,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1395,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1396,1
    - Dst: check_fixup_reword_options
      Src: /src/git/builtin/commit.c:1400,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1404,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1404,1
    - Dst: handle_untracked_files_arg
      Src: /src/git/builtin/commit.c:1416,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1419,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1419,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 75
    argCount: 7
    argNames:
    - argc
    - argv
    - options
    - usage
    - prefix
    - current_head
    - s
    argTypes:
    - int
    - char*[]
    - struct option*
    - char*[]
    - char*
    - struct commit*
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1309
    functionDepth: 15
    functionLinenumber: 1309
    functionLinenumberEnd: 1426
    functionName: parse_and_validate_options
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - parse_options
    - isalpha
    - die
    - read_commit_message
    - check_fixup_reword_options
    - strchr
    - die_for_incompatible_opt4
    - is_from_rebase
    - is_from_cherry_pick
    - handle_untracked_files_arg
    - strcmp
    - _
    - finalize_deferred_config
    - FREE_AND_NULL
    - find_author_by_nickname
    linkageType: ''
    returnType: int
    signature: "int parse_and_validate_options(int argc, const char *argv[],\n\t\t\t\t
      \     const struct option *options,\n\t\t\t\t      const char * const usage[],\n\t\t\t\t
      \     const char *prefix,\n\t\t\t\t      struct commit *current_head,\n\t\t\t\t
      \     struct wt_status *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_index
      Src: /src/git/builtin/commit.c:1434,1
    - Dst: run_status
      Src: /src/git/builtin/commit.c:1435,1
    - Dst: rollback_index_files
      Src: /src/git/builtin/commit.c:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - argv
    - prefix
    - current_head
    - s
    argTypes:
    - char**
    - char*
    - struct commit*
    - struct wt_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1428
    functionDepth: 22
    functionLinenumber: 1428
    functionLinenumberEnd: 1439
    functionName: dry_run_commit
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - run_status
    - prepare_index
    - rollback_index_files
    linkageType: ''
    returnType: int
    signature: "int dry_run_commit(const char **argv, const char *prefix,\n\t\t\t
      \ const struct commit *current_head, struct wt_status *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/builtin/commit.c:1445,1
    - Dst: LOOKUP_CONFIG
      Src: /src/git/builtin/commit.c:1448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - slot
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1449
    functionName: parse_status_slot
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - LOOKUP_CONFIG
    linkageType: ''
    returnType: int
    signature: int parse_status_slot(const char *slot)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/commit.c:1457,1
    - Dst: git_column_config
      Src: /src/git/builtin/commit.c:1458,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1459,1
    - Dst: git_config_bool_or_int
      Src: /src/git/builtin/commit.c:1461,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1467,1
    - Dst: git_config_bool
      Src: /src/git/builtin/commit.c:1468,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1474,1
    - Dst: git_config_bool
      Src: /src/git/builtin/commit.c:1475,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1478,1
    - Dst: git_config_bool
      Src: /src/git/builtin/commit.c:1479,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1482,1
    - Dst: git_config_bool
      Src: /src/git/builtin/commit.c:1483,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1486,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1486,1
    - Dst: git_config_colorbool
      Src: /src/git/builtin/commit.c:1487,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1490,1
    - Dst: git_config_bool
      Src: /src/git/builtin/commit.c:1491,1
    - Dst: skip_prefix
      Src: /src/git/builtin/commit.c:1494,1
    - Dst: skip_prefix
      Src: /src/git/builtin/commit.c:1495,1
    - Dst: parse_status_slot
      Src: /src/git/builtin/commit.c:1496,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/commit.c:1500,1
    - Dst: color_parse
      Src: /src/git/builtin/commit.c:1501,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1503,1
    - Dst: git_config_bool
      Src: /src/git/builtin/commit.c:1504,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1507,1
    - Dst: parse_untracked_setting_name
      Src: /src/git/builtin/commit.c:1510,1
    - Dst: error
      Src: /src/git/builtin/commit.c:1512,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1512,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1516,1
    - Dst: git_config_int
      Src: /src/git/builtin/commit.c:1518,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1521,1
    - Dst: git_config_int
      Src: /src/git/builtin/commit.c:1522,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1525,1
    - Dst: git_config_rename
      Src: /src/git/builtin/commit.c:1527,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1530,1
    - Dst: git_config_rename
      Src: /src/git/builtin/commit.c:1531,1
    - Dst: git_diff_ui_config
      Src: /src/git/builtin/commit.c:1534,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 4
    argNames:
    - k
    - v
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1451
    functionDepth: 8
    functionLinenumber: 1451
    functionLinenumberEnd: 1535
    functionName: git_status_config
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - git_config_colorbool
    - error
    - git_config_int
    - _
    - starts_with
    - git_config_rename
    - git_column_config
    - color_parse
    - strcmp
    - git_config_bool_or_int
    - parse_status_slot
    - git_config_bool
    - parse_untracked_setting_name
    - git_diff_ui_config
    - skip_prefix
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_status_config(const char *k, const char *v,\n\t\t\t     const
      struct config_context *ctx, void *cb)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/commit.c:1549,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1549,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/commit.c:1550,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1551,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1552,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1553,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1554,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1555,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1556,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1557,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/commit.c:1558,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1559,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1559,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/commit.c:1561,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1562,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1564,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1565,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1571,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1572,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1580,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1581,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1589,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1590,1
    - Dst: OPT_COLUMN
      Src: /src/git/builtin/commit.c:1594,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1594,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1595,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1595,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/commit.c:1596,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1597,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1597,1
    - Dst: OPT_END
      Src: /src/git/builtin/commit.c:1599,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/commit.c:1602,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/commit.c:1605,1
    - Dst: status_init_config
      Src: /src/git/builtin/commit.c:1608,1
    - Dst: parse_options
      Src: /src/git/builtin/commit.c:1609,1
    - Dst: finalize_colopts
      Src: /src/git/builtin/commit.c:1612,1
    - Dst: finalize_deferred_config
      Src: /src/git/builtin/commit.c:1613,1
    - Dst: handle_untracked_files_arg
      Src: /src/git/builtin/commit.c:1615,1
    - Dst: handle_ignored_arg
      Src: /src/git/builtin/commit.c:1616,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1620,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1620,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/commit.c:1622,1
    - Dst: repo_read_index
      Src: /src/git/builtin/commit.c:1629,1
    - Dst: refresh_index
      Src: /src/git/builtin/commit.c:1630,1
    - Dst: use_optional_locks
      Src: /src/git/builtin/commit.c:1634,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/commit.c:1635,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/commit.c:1639,1
    - Dst: oidcpy
      Src: /src/git/builtin/commit.c:1641,1
    - Dst: parse_rename_score
      Src: /src/git/builtin/commit.c:1652,1
    - Dst: wt_status_collect
      Src: /src/git/builtin/commit.c:1655,1
    - Dst: repo_update_index_if_able
      Src: /src/git/builtin/commit.c:1658,1
    - Dst: wt_status_print
      Src: /src/git/builtin/commit.c:1663,1
    - Dst: wt_status_collect_free_buffers
      Src: /src/git/builtin/commit.c:1664,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1537
    functionDepth: 21
    functionLinenumber: 1537
    functionLinenumberEnd: 1667
    functionName: cmd_status
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - parse_rename_score
    - parse_options
    - oidcpy
    - repo_get_oid
    - wt_status_collect_free_buffers
    - OPT_BOOL
    - repo_hold_locked_index
    - refresh_index
    - wt_status_collect
    - OPT_END
    - die
    - use_optional_locks
    - repo_read_index
    - finalize_colopts
    - parse_pathspec
    - handle_untracked_files_arg
    - OPT_SET_INT
    - repo_update_index_if_able
    - _
    - N_
    - wt_status_print
    - OPT__VERBOSE
    - OPT_CALLBACK_F
    - OPT_COLUMN
    - prepare_repo_settings
    - status_init_config
    - handle_ignored_arg
    - finalize_deferred_config
    - show_usage_with_options_if_asked
    linkageType: ''
    returnType: int
    signature: 'int cmd_status(int argc,

      const char **argv,

      const char *prefix,

      struct repository *repo UNUSED)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1674,1
    - Dst: git_config_pathname
      Src: /src/git/builtin/commit.c:1675,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1676,1
    - Dst: git_config_bool
      Src: /src/git/builtin/commit.c:1677,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1680,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/commit.c:1681,1
    - Dst: git_config_string
      Src: /src/git/builtin/commit.c:1682,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1684,1
    - Dst: git_config_bool
      Src: /src/git/builtin/commit.c:1685,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1688,1
    - Dst: git_config_bool_or_int
      Src: /src/git/builtin/commit.c:1690,1
    - Dst: git_status_config
      Src: /src/git/builtin/commit.c:1695,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - k
    - v
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1669
    functionDepth: 9
    functionLinenumber: 1669
    functionLinenumberEnd: 1696
    functionName: git_commit_config
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 0
    functionsReached:
    - git_config_pathname
    - git_status_config
    - git_config_string
    - strcmp
    - git_config_bool_or_int
    - git_config_bool
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: "int git_commit_config(const char *k, const char *v,\n\t\t\t     const
      struct config_context *ctx, void *cb)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/commit.c:1706,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1706,1
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/commit.c:1707,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1707,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/commit.c:1709,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1709,1
    - Dst: OPT_FILENAME
      Src: /src/git/builtin/commit.c:1710,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1710,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/commit.c:1711,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1711,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1711,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/commit.c:1712,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1712,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1712,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/commit.c:1713,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1713,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1713,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/commit.c:1714,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1714,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1714,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/commit.c:1715,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1715,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1715,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/commit.c:1720,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1720,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1720,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/commit.c:1721,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1721,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1721,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1722,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1722,1
    - Dst: OPT_STRVEC
      Src: /src/git/builtin/commit.c:1723,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1723,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1724,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1725,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1725,1
    - Dst: OPT_FILENAME
      Src: /src/git/builtin/commit.c:1726,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1726,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1727,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1727,1
    - Dst: OPT_CLEANUP
      Src: /src/git/builtin/commit.c:1728,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1729,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1729,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1735,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1736,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/commit.c:1742,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1742,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1743,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1743,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1744,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1744,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1745,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1745,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1746,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1746,1
    - Dst: OPT_DIFF_UNIFIED
      Src: /src/git/builtin/commit.c:1747,1
    - Dst: OPT_DIFF_INTERHUNK_CONTEXT
      Src: /src/git/builtin/commit.c:1748,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1749,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1749,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1750,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1750,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1751,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1751,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/commit.c:1752,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1752,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1754,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1754,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1755,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1756,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/commit.c:1757,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1758,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/commit.c:1759,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1760,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1762,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1763,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1764,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1764,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/commit.c:1765,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1765,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1771,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1772,1
    - Dst: OPT_PATHSPEC_FROM_FILE
      Src: /src/git/builtin/commit.c:1776,1
    - Dst: OPT_PATHSPEC_FILE_NUL
      Src: /src/git/builtin/commit.c:1777,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/commit.c:1780,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1781,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/commit.c:1782,1
    - Dst: N_
      Src: /src/git/builtin/commit.c:1783,1
    - Dst: OPT_END
      Src: /src/git/builtin/commit.c:1785,1
    - Dst: show_usage_with_options_if_asked
      Src: /src/git/builtin/commit.c:1799,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/commit.c:1805,1
    - Dst: status_init_config
      Src: /src/git/builtin/commit.c:1808,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/commit.c:1813,1
    - Dst: lookup_commit_or_die
      Src: /src/git/builtin/commit.c:1816,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/commit.c:1817,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1818,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1818,1
    - Dst: parse_and_validate_options
      Src: /src/git/builtin/commit.c:1821,1
    - Dst: trailer_config_init
      Src: /src/git/builtin/commit.c:1825,1
    - Dst: free
      Src: /src/git/builtin/commit.c:1831,1
    - Dst: xstrdup
      Src: /src/git/builtin/commit.c:1832,1
    - Dst: get_cleanup_mode
      Src: /src/git/builtin/commit.c:1834,1
    - Dst: dry_run_commit
      Src: /src/git/builtin/commit.c:1837,1
    - Dst: prepare_index
      Src: /src/git/builtin/commit.c:1838,1
    - Dst: prepare_to_commit
      Src: /src/git/builtin/commit.c:1842,1
    - Dst: rollback_index_files
      Src: /src/git/builtin/commit.c:1845,1
    - Dst: getenv
      Src: /src/git/builtin/commit.c:1850,1
    - Dst: commit_list_copy
      Src: /src/git/builtin/commit.c:1857,1
    - Dst: commit_list_append
      Src: /src/git/builtin/commit.c:1866,1
    - Dst: xfopen
      Src: /src/git/builtin/commit.c:1867,1
    - Dst: git_path_merge_head
      Src: /src/git/builtin/commit.c:1867,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/commit.c:1868,1
    - Dst: get_merge_parent
      Src: /src/git/builtin/commit.c:1871,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1873,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1873,1
    - Dst: commit_list_append
      Src: /src/git/builtin/commit.c:1874,1
    - Dst: fclose
      Src: /src/git/builtin/commit.c:1876,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit.c:1877,1
    - Dst: stat
      Src: /src/git/builtin/commit.c:1878,1
    - Dst: git_path_merge_mode
      Src: /src/git/builtin/commit.c:1878,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/commit.c:1879,1
    - Dst: git_path_merge_mode
      Src: /src/git/builtin/commit.c:1879,1
    - Dst: die_errno
      Src: /src/git/builtin/commit.c:1880,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1880,1
    - Dst: strcmp
      Src: /src/git/builtin/commit.c:1881,1
    - Dst: reduce_heads_replace
      Src: /src/git/builtin/commit.c:1885,1
    - Dst: is_from_cherry_pick
      Src: /src/git/builtin/commit.c:1888,1
    - Dst: is_from_rebase
      Src: /src/git/builtin/commit.c:1890,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/commit.c:1893,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/commit.c:1897,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/commit.c:1898,1
    - Dst: git_path_commit_editmsg
      Src: /src/git/builtin/commit.c:1898,1
    - Dst: rollback_index_files
      Src: /src/git/builtin/commit.c:1900,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1901,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1901,1
    - Dst: strerror
      Src: /src/git/builtin/commit.c:1901,1
    - Dst: cleanup_message
      Src: /src/git/builtin/commit.c:1904,1
    - Dst: message_is_empty
      Src: /src/git/builtin/commit.c:1906,1
    - Dst: rollback_index_files
      Src: /src/git/builtin/commit.c:1907,1
    - Dst: fprintf
      Src: /src/git/builtin/commit.c:1908,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1908,1
    - Dst: exit
      Src: /src/git/builtin/commit.c:1909,1
    - Dst: template_untouched
      Src: /src/git/builtin/commit.c:1911,1
    - Dst: rollback_index_files
      Src: /src/git/builtin/commit.c:1912,1
    - Dst: fprintf
      Src: /src/git/builtin/commit.c:1913,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1913,1
    - Dst: exit
      Src: /src/git/builtin/commit.c:1914,1
    - Dst: starts_with
      Src: /src/git/builtin/commit.c:1917,1
    - Dst: commit_subject_length
      Src: /src/git/builtin/commit.c:1920,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/commit.c:1921,1
    - Dst: message_is_empty
      Src: /src/git/builtin/commit.c:1922,1
    - Dst: rollback_index_files
      Src: /src/git/builtin/commit.c:1923,1
    - Dst: fprintf
      Src: /src/git/builtin/commit.c:1924,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1924,1
    - Dst: exit
      Src: /src/git/builtin/commit.c:1925,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit.c:1927,1
    - Dst: read_commit_extra_headers
      Src: /src/git/builtin/commit.c:1932,1
    - Dst: append_merge_tag_headers
      Src: /src/git/builtin/commit.c:1935,1
    - Dst: commit_tree_extended
      Src: /src/git/builtin/commit.c:1938,1
    - Dst: rollback_index_files
      Src: /src/git/builtin/commit.c:1941,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1942,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1942,1
    - Dst: update_head_with_reflog
      Src: /src/git/builtin/commit.c:1945,1
    - Dst: rollback_index_files
      Src: /src/git/builtin/commit.c:1947,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1948,1
    - Dst: sequencer_post_commit_cleanup
      Src: /src/git/builtin/commit.c:1951,1
    - Dst: unlink
      Src: /src/git/builtin/commit.c:1952,1
    - Dst: git_path_merge_head
      Src: /src/git/builtin/commit.c:1952,1
    - Dst: unlink
      Src: /src/git/builtin/commit.c:1953,1
    - Dst: git_path_merge_msg
      Src: /src/git/builtin/commit.c:1953,1
    - Dst: unlink
      Src: /src/git/builtin/commit.c:1954,1
    - Dst: git_path_merge_mode
      Src: /src/git/builtin/commit.c:1954,1
    - Dst: unlink
      Src: /src/git/builtin/commit.c:1955,1
    - Dst: git_path_squash_msg
      Src: /src/git/builtin/commit.c:1955,1
    - Dst: commit_index_files
      Src: /src/git/builtin/commit.c:1957,1
    - Dst: die
      Src: /src/git/builtin/commit.c:1958,1
    - Dst: _
      Src: /src/git/builtin/commit.c:1958,1
    - Dst: git_test_write_commit_graph_or_die
      Src: /src/git/builtin/commit.c:1962,1
    - Dst: repo_rerere
      Src: /src/git/builtin/commit.c:1964,1
    - Dst: run_auto_maintenance
      Src: /src/git/builtin/commit.c:1965,1
    - Dst: run_commit_hook
      Src: /src/git/builtin/commit.c:1966,1
    - Dst: repo_get_index_file
      Src: /src/git/builtin/commit.c:1966,1
    - Dst: commit_post_rewrite
      Src: /src/git/builtin/commit.c:1969,1
    - Dst: author_date_is_interesting
      Src: /src/git/builtin/commit.c:1976,1
    - Dst: print_commit_summary
      Src: /src/git/builtin/commit.c:1978,1
    - Dst: apply_autostash_ref
      Src: /src/git/builtin/commit.c:1982,1
    - Dst: free_commit_extra_headers
      Src: /src/git/builtin/commit.c:1986,1
    - Dst: commit_list_free
      Src: /src/git/builtin/commit.c:1987,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit.c:1988,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit.c:1989,1
    - Dst: strbuf_release
      Src: /src/git/builtin/commit.c:1990,1
    - Dst: free
      Src: /src/git/builtin/commit.c:1991,1
    - Dst: free
      Src: /src/git/builtin/commit.c:1992,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 141
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1698
    functionDepth: 25
    functionLinenumber: 1698
    functionLinenumberEnd: 1994
    functionName: cmd_commit
    functionSourceFile: /src/git/builtin/commit.c
    functionUses: 1
    functionsReached:
    - OPT_BOOL
    - strcmp
    - is_from_cherry_pick
    - commit_subject_length
    - repo_rerere
    - rollback_index_files
    - is_from_rebase
    - commit_list_append
    - message_is_empty
    - xstrdup
    - prepare_to_commit
    - exit
    - prepare_repo_settings
    - status_init_config
    - dry_run_commit
    - fprintf
    - git_path_merge_mode
    - cleanup_message
    - reduce_heads_replace
    - commit_tree_extended
    - free
    - run_auto_maintenance
    - strbuf_getline_lf
    - die
    - git_path_squash_msg
    - OPT_GROUP
    - commit_index_files
    - OPT_HIDDEN_BOOL
    - OPT_SET_INT
    - apply_autostash_ref
    - OPT_STRVEC
    - die_errno
    - free_commit_extra_headers
    - N_
    - template_untouched
    - commit_list_copy
    - starts_with
    - getenv
    - show_usage_with_options_if_asked
    - fclose
    - repo_get_oid
    - git_path_merge_head
    - git_path_commit_editmsg
    - sequencer_post_commit_cleanup
    - xfopen
    - strbuf_release
    - OPT_END
    - run_commit_hook
    - repo_get_index_file
    - repo_parse_commit
    - append_merge_tag_headers
    - read_commit_extra_headers
    - OPT__QUIET
    - OPT_FILENAME
    - parse_and_validate_options
    - print_commit_summary
    - strbuf_read_file
    - trailer_config_init
    - _
    - git_path_merge_msg
    - OPT__VERBOSE
    - OPT_CLEANUP
    - commit_post_rewrite
    - OPT_STRING
    - update_head_with_reflog
    - commit_list_free
    - get_merge_parent
    - author_date_is_interesting
    - OPT_DIFF_UNIFIED
    - prepare_index
    - git_test_write_commit_graph_or_die
    - strerror
    - strbuf_addstr
    - OPT_DIFF_INTERHUNK_CONTEXT
    - unlink
    - get_cleanup_mode
    - stat
    - lookup_commit_or_die
    - OPT_PATHSPEC_FILE_NUL
    - strbuf_reset
    - OPT_CALLBACK
    - OPT_PATHSPEC_FROM_FILE
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: "int cmd_commit(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo UNUSED)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:61,1
    - Dst: git_config_bool
      Src: /src/git/builtin/repack.c:62,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:65,1
    - Dst: git_config_bool
      Src: /src/git/builtin/repack.c:66,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:69,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:70,1
    - Dst: git_config_bool
      Src: /src/git/builtin/repack.c:71,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:74,1
    - Dst: git_config_bool
      Src: /src/git/builtin/repack.c:75,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:78,1
    - Dst: git_config_bool
      Src: /src/git/builtin/repack.c:79,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:82,1
    - Dst: free
      Src: /src/git/builtin/repack.c:83,1
    - Dst: git_config_string
      Src: /src/git/builtin/repack.c:84,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:86,1
    - Dst: free
      Src: /src/git/builtin/repack.c:87,1
    - Dst: git_config_string
      Src: /src/git/builtin/repack.c:88,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:90,1
    - Dst: free
      Src: /src/git/builtin/repack.c:91,1
    - Dst: git_config_string
      Src: /src/git/builtin/repack.c:92,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:94,1
    - Dst: free
      Src: /src/git/builtin/repack.c:95,1
    - Dst: git_config_string
      Src: /src/git/builtin/repack.c:96,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:98,1
    - Dst: git_config_bool
      Src: /src/git/builtin/repack.c:99,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:102,1
    - Dst: git_config_int
      Src: /src/git/builtin/repack.c:103,1
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:107,1
    - Dst: git_config_int
      Src: /src/git/builtin/repack.c:108,1
    - Dst: git_default_config
      Src: /src/git/builtin/repack.c:112,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 113
    functionName: repack_config
    functionSourceFile: /src/git/builtin/repack.c
    functionUses: 0
    functionsReached:
    - git_config_int
    - git_config_bool
    - git_config_string
    - strcmp
    - git_default_config
    - free
    linkageType: ''
    returnType: int
    signature: "int repack_config(const char *var, const char *value,\n\t\t\t const
      struct config_context *ctx, void *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/repack.c:127,1
    - Dst: error
      Src: /src/git/builtin/repack.c:130,1
    - Dst: _
      Src: /src/git/builtin/repack.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: option_parse_write_midx
    functionSourceFile: /src/git/builtin/repack.c
    functionUses: 0
    functionsReached:
    - error
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int option_parse_write_midx(const struct option *opt, const char *arg,\n\t\t\t\t
      \  int unset)"
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BIT
      Src: /src/git/builtin/repack.c:168,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:169,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/repack.c:170,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:171,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/repack.c:173,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:174,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/repack.c:176,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:176,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:177,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/repack.c:178,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:180,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/repack.c:181,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:182,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repack.c:183,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:184,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repack.c:185,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:186,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repack.c:187,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:188,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/repack.c:189,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:190,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repack.c:191,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:192,1
    - Dst: OPT_NEGBIT
      Src: /src/git/builtin/repack.c:193,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:194,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/repack.c:195,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:195,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repack.c:196,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:197,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repack.c:198,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:199,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repack.c:200,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:201,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/repack.c:202,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:202,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:203,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repack.c:204,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:205,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/repack.c:206,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:206,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:207,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/repack.c:208,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:208,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:209,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/repack.c:210,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:210,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:211,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/repack.c:212,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:212,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:213,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/repack.c:214,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:215,1
    - Dst: OPT_PARSE_LIST_OBJECTS_FILTER
      Src: /src/git/builtin/repack.c:216,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/repack.c:217,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:218,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/repack.c:219,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:219,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:220,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/repack.c:221,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:222,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/repack.c:223,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:224,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:225,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/repack.c:227,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:228,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/repack.c:231,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:231,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:232,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/repack.c:233,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:233,1
    - Dst: N_
      Src: /src/git/builtin/repack.c:234,1
    - Dst: OPT_END
      Src: /src/git/builtin/repack.c:235,1
    - Dst: list_objects_filter_init
      Src: /src/git/builtin/repack.c:238,1
    - Dst: memset
      Src: /src/git/builtin/repack.c:240,1
    - Dst: repo_config
      Src: /src/git/builtin/repack.c:246,1
    - Dst: parse_options
      Src: /src/git/builtin/repack.c:248,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/repack.c:251,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/repack.c:252,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/repack.c:253,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/repack.c:254,1
    - Dst: die
      Src: /src/git/builtin/repack.c:257,1
    - Dst: _
      Src: /src/git/builtin/repack.c:257,1
    - Dst: die_for_incompatible_opt3
      Src: /src/git/builtin/repack.c:259,1
    - Dst: is_bare_repository
      Src: /src/git/builtin/repack.c:268,1
    - Dst: die
      Src: /src/git/builtin/repack.c:277,1
    - Dst: _
      Src: /src/git/builtin/repack.c:277,1
    - Dst: odb_has_alternates
      Src: /src/git/builtin/repack.c:280,1
    - Dst: warning
      Src: /src/git/builtin/repack.c:288,1
    - Dst: _
      Src: /src/git/builtin/repack.c:288,1
    - Dst: die
      Src: /src/git/builtin/repack.c:293,1
    - Dst: _
      Src: /src/git/builtin/repack.c:293,1
    - Dst: die
      Src: /src/git/builtin/repack.c:296,1
    - Dst: _
      Src: /src/git/builtin/repack.c:296,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/repack.c:302,1
    - Dst: repo_get_object_directory
      Src: /src/git/builtin/repack.c:303,1
    - Dst: xmks_tempfile
      Src: /src/git/builtin/repack.c:306,1
    - Dst: midx_snapshot_refs
      Src: /src/git/builtin/repack.c:307,1
    - Dst: strbuf_release
      Src: /src/git/builtin/repack.c:309,1
    - Dst: mkpathdup
      Src: /src/git/builtin/repack.c:312,1
    - Dst: repo_get_object_directory
      Src: /src/git/builtin/repack.c:312,1
    - Dst: xstrfmt
      Src: /src/git/builtin/repack.c:313,1
    - Dst: getpid
      Src: /src/git/builtin/repack.c:313,1
    - Dst: mkpathdup
      Src: /src/git/builtin/repack.c:314,1
    - Dst: existing_packs_collect
      Src: /src/git/builtin/repack.c:317,1
    - Dst: die
      Src: /src/git/builtin/repack.c:321,1
    - Dst: _
      Src: /src/git/builtin/repack.c:321,1
    - Dst: pack_geometry_init
      Src: /src/git/builtin/repack.c:326,1
    - Dst: pack_geometry_split
      Src: /src/git/builtin/repack.c:327,1
    - Dst: prepare_pack_objects
      Src: /src/git/builtin/repack.c:330,1
    - Dst: isatty
      Src: /src/git/builtin/repack.c:332,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:334,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/repack.c:336,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:338,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:350,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:351,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:352,1
    - Dst: repo_has_promisor_remote
      Src: /src/git/builtin/repack.c:354,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:355,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:358,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:360,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:363,1
    - Dst: repack_promisor_objects
      Src: /src/git/builtin/repack.c:366,1
    - Dst: existing_packs_has_non_kept
      Src: /src/git/builtin/repack.c:368,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/repack.c:371,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/repack.c:372,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/repack.c:376,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:380,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:383,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:389,1
    - Dst: pack_geometry_repack_promisors
      Src: /src/git/builtin/repack.c:391,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:395,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:397,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:398,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:400,1
    - Dst: strvec_push
      Src: /src/git/builtin/repack.c:401,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/repack.c:405,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/builtin/repack.c:406,1
    - Dst: die
      Src: /src/git/builtin/repack.c:408,1
    - Dst: _
      Src: /src/git/builtin/repack.c:408,1
    - Dst: start_command
      Src: /src/git/builtin/repack.c:415,1
    - Dst: xfdopen
      Src: /src/git/builtin/repack.c:420,1
    - Dst: fprintf
      Src: /src/git/builtin/repack.c:427,1
    - Dst: pack_basename
      Src: /src/git/builtin/repack.c:427,1
    - Dst: pack_basename
      Src: /src/git/builtin/repack.c:429,1
    - Dst: string_list_has_string
      Src: /src/git/builtin/repack.c:433,1
    - Dst: fprintf
      Src: /src/git/builtin/repack.c:443,1
    - Dst: fclose
      Src: /src/git/builtin/repack.c:445,1
    - Dst: finish_pack_objects_cmd
      Src: /src/git/builtin/repack.c:454,1
    - Dst: printf_ln
      Src: /src/git/builtin/repack.c:462,1
    - Dst: _
      Src: /src/git/builtin/repack.c:462,1
    - Dst: get_multi_pack_index
      Src: /src/git/builtin/repack.c:476,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/repack.c:489,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/repack.c:491,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/repack.c:493,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/repack.c:495,1
    - Dst: write_cruft_pack
      Src: /src/git/builtin/repack.c:504,1
    - Dst: write_cruft_pack
      Src: /src/git/builtin/repack.c:540,1
    - Dst: write_filtered_pack
      Src: /src/git/builtin/repack.c:558,1
    - Dst: string_list_sort
      Src: /src/git/builtin/repack.c:563,1
    - Dst: odb_close
      Src: /src/git/builtin/repack.c:565,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/repack.c:570,1
    - Dst: generated_pack_install
      Src: /src/git/builtin/repack.c:571,1
    - Dst: existing_packs_retain_midx_packs
      Src: /src/git/builtin/repack.c:577,1
    - Dst: existing_packs_mark_for_deletion
      Src: /src/git/builtin/repack.c:578,1
    - Dst: get_tempfile_path
      Src: /src/git/builtin/repack.c:586,1
    - Dst: repack_write_midx
      Src: /src/git/builtin/repack.c:596,1
    - Dst: odb_reprepare
      Src: /src/git/builtin/repack.c:601,1
    - Dst: existing_packs_remove_redundant
      Src: /src/git/builtin/repack.c:607,1
    - Dst: pack_geometry_remove_redundant
      Src: /src/git/builtin/repack.c:611,1
    - Dst: prune_packed_objects
      Src: /src/git/builtin/repack.c:616,1
    - Dst: is_repository_shallow
      Src: /src/git/builtin/repack.c:621,1
    - Dst: prune_shallow
      Src: /src/git/builtin/repack.c:622,1
    - Dst: update_server_info
      Src: /src/git/builtin/repack.c:626,1
    - Dst: git_env_bool
      Src: /src/git/builtin/repack.c:628,1
    - Dst: git_env_bool
      Src: /src/git/builtin/repack.c:630,1
    - Dst: write_midx_file
      Src: /src/git/builtin/repack.c:632,1
    - Dst: string_list_clear
      Src: /src/git/builtin/repack.c:636,1
    - Dst: string_list_clear
      Src: /src/git/builtin/repack.c:637,1
    - Dst: existing_packs_release
      Src: /src/git/builtin/repack.c:638,1
    - Dst: pack_geometry_release
      Src: /src/git/builtin/repack.c:639,1
    - Dst: pack_objects_args_release
      Src: /src/git/builtin/repack.c:640,1
    - Dst: pack_objects_args_release
      Src: /src/git/builtin/repack.c:641,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 215
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 135
    functionDepth: 21
    functionLinenumber: 135
    functionLinenumberEnd: 644
    functionName: cmd_repack
    functionSourceFile: /src/git/builtin/repack.c
    functionUses: 0
    functionsReached:
    - fclose
    - OPT_PARSE_LIST_OBJECTS_FILTER
    - parse_options
    - strvec_push
    - for_each_string_list_item
    - existing_packs_remove_redundant
    - prune_shallow
    - OPT_UNSIGNED
    - OPT_BOOL
    - strbuf_addf
    - pack_geometry_remove_redundant
    - repack_write_midx
    - repo_config
    - generated_pack_install
    - existing_packs_mark_for_deletion
    - get_tempfile_path
    - update_server_info
    - strbuf_release
    - OPT_END
    - xstrdup_or_null
    - die
    - repo_has_promisor_remote
    - existing_packs_has_non_kept
    - write_filtered_pack
    - git_env_bool
    - OPT_BIT
    - list_objects_filter_init
    - pack_geometry_init
    - prune_packed_objects
    - write_midx_file
    - mkpathdup
    - OPT_STRING_LIST
    - isatty
    - expand_list_objects_filter_spec
    - OPT__QUIET
    - OPT_INTEGER
    - prepare_pack_objects
    - memset
    - start_command
    - odb_close
    - string_list_clear
    - pack_basename
    - pack_geometry_release
    - OPT_SET_INT_F
    - midx_snapshot_refs
    - pack_objects_args_release
    - repo_get_object_directory
    - is_repository_shallow
    - _
    - N_
    - finish_pack_objects_cmd
    - warning
    - existing_packs_collect
    - strvec_pushf
    - pack_geometry_repack_promisors
    - xfdopen
    - existing_packs_release
    - repack_promisor_objects
    - is_bare_repository
    - OPT_NEGBIT
    - string_list_sort
    - xstrfmt
    - OPT_CALLBACK_F
    - OPT_STRING
    - existing_packs_retain_midx_packs
    - get_multi_pack_index
    - die_for_incompatible_opt3
    - string_list_has_string
    - write_cruft_pack
    - odb_reprepare
    - getpid
    - pack_geometry_split
    - printf_ln
    - odb_has_alternates
    - fprintf
    - xmks_tempfile
    linkageType: ''
    returnType: int
    signature: "int cmd_repack(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/clean.c:114,1
    - Dst: git_column_config
      Src: /src/git/builtin/clean.c:115,1
    - Dst: strcmp
      Src: /src/git/builtin/clean.c:119,1
    - Dst: git_config_colorbool
      Src: /src/git/builtin/clean.c:120,1
    - Dst: skip_prefix
      Src: /src/git/builtin/clean.c:123,1
    - Dst: LOOKUP_CONFIG
      Src: /src/git/builtin/clean.c:124,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/clean.c:128,1
    - Dst: color_parse
      Src: /src/git/builtin/clean.c:129,1
    - Dst: strcmp
      Src: /src/git/builtin/clean.c:132,1
    - Dst: git_config_bool
      Src: /src/git/builtin/clean.c:133,1
    - Dst: git_color_config
      Src: /src/git/builtin/clean.c:137,1
    - Dst: git_default_config
      Src: /src/git/builtin/clean.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 109
    functionDepth: 6
    functionLinenumber: 109
    functionLinenumberEnd: 141
    functionName: git_clean_config
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - git_config_colorbool
    - git_color_config
    - git_config_bool
    - starts_with
    - git_column_config
    - color_parse
    - git_default_config
    - strcmp
    - LOOKUP_CONFIG
    - skip_prefix
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_clean_config(const char *var, const char *value,\n\t\t\t    const
      struct config_context *ctx, void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color
      Src: /src/git/builtin/clean.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ix
    argTypes:
    - enum color_clean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: clean_get_color
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - want_color
    linkageType: ''
    returnType: char
    signature: char *clean_get_color(enum color_clean ix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/clean.c:152,1
    - Dst: clean_get_color
      Src: /src/git/builtin/clean.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ix
    argTypes:
    - enum color_clean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: clean_print_color
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - clean_get_color
    - printf
    linkageType: ''
    returnType: void
    signature: void clean_print_color(enum color_clean ix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/clean.c:158,1
    - Dst: string_list_append
      Src: /src/git/builtin/clean.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: exclude_cb
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - string_list_append
    linkageType: ''
    returnType: int
    signature: int exclude_cb(const struct option *opt, const char *arg, int unset)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: is_nonbare_repository_dir
      Src: /src/git/builtin/clean.c:177,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:179,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:180,1
    - Dst: _
      Src: /src/git/builtin/clean.c:180,1
    - Dst: _
      Src: /src/git/builtin/clean.c:180,1
    - Dst: opendir
      Src: /src/git/builtin/clean.c:188,1
    - Dst: rmdir
      Src: /src/git/builtin/clean.c:191,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:194,1
    - Dst: warning_errno
      Src: /src/git/builtin/clean.c:196,1
    - Dst: _
      Src: /src/git/builtin/clean.c:196,1
    - Dst: strbuf_complete
      Src: /src/git/builtin/clean.c:203,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/builtin/clean.c:206,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/clean.c:209,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clean.c:210,1
    - Dst: lstat
      Src: /src/git/builtin/clean.c:211,1
    - Dst: warning_errno
      Src: /src/git/builtin/clean.c:212,1
    - Dst: _
      Src: /src/git/builtin/clean.c:212,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/clean.c:213,1
    - Dst: remove_dirs
      Src: /src/git/builtin/clean.c:214,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:217,1
    - Dst: string_list_append
      Src: /src/git/builtin/clean.c:218,1
    - Dst: unlink
      Src: /src/git/builtin/clean.c:223,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:225,1
    - Dst: string_list_append
      Src: /src/git/builtin/clean.c:226,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:229,1
    - Dst: warning_errno
      Src: /src/git/builtin/clean.c:231,1
    - Dst: _
      Src: /src/git/builtin/clean.c:231,1
    - Dst: closedir
      Src: /src/git/builtin/clean.c:243,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/clean.c:245,1
    - Dst: strbuf_realpath
      Src: /src/git/builtin/clean.c:252,1
    - Dst: strbuf_realpath
      Src: /src/git/builtin/clean.c:260,1
    - Dst: strbuf_cmp
      Src: /src/git/builtin/clean.c:263,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:264,1
    - Dst: _
      Src: /src/git/builtin/clean.c:264,1
    - Dst: _
      Src: /src/git/builtin/clean.c:264,1
    - Dst: rmdir
      Src: /src/git/builtin/clean.c:267,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:272,1
    - Dst: warning_errno
      Src: /src/git/builtin/clean.c:274,1
    - Dst: _
      Src: /src/git/builtin/clean.c:274,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:284,1
    - Dst: _
      Src: /src/git/builtin/clean.c:284,1
    - Dst: _
      Src: /src/git/builtin/clean.c:284,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:287,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:288,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:289,1
    - Dst: string_list_clear
      Src: /src/git/builtin/clean.c:290,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 90
    argCount: 6
    argNames:
    - path
    - prefix
    - force_flag
    - dry_run
    - quiet
    - dir_gone
    argTypes:
    - struct strbuf*
    - char*
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 163
    functionDepth: 7
    functionLinenumber: 163
    functionLinenumberEnd: 292
    functionName: remove_dirs
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 1
    functionsReached:
    - quote_path
    - strbuf_complete
    - printf
    - strbuf_release
    - strbuf_realpath
    - strbuf_cmp
    - strbuf_setlen
    - strbuf_addstr
    - unlink
    - string_list_clear
    - readdir_skip_dot_and_dotdot
    - string_list_append
    - _
    - closedir
    - S_ISDIR
    - warning_errno
    - remove_dirs
    - opendir
    - rmdir
    - is_nonbare_repository_dir
    - lstat
    linkageType: ''
    returnType: int
    signature: "int remove_dirs(struct strbuf *path, const char *prefix, int force_flag,\n\t\tint
      dry_run, int quiet, int *dir_gone)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/clean.c:302,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:303,1
    - Dst: string_list_append
      Src: /src/git/builtin/clean.c:304,1
    - Dst: memset
      Src: /src/git/builtin/clean.c:312,1
    - Dst: print_columns
      Src: /src/git/builtin/clean.c:315,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:316,1
    - Dst: string_list_clear
      Src: /src/git/builtin/clean.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 294
    functionDepth: 11
    functionLinenumber: 294
    functionLinenumberEnd: 318
    functionName: pretty_print_dels
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - memset
    - strbuf_release
    - string_list_clear
    - quote_path
    - string_list_append
    - print_columns
    linkageType: ''
    returnType: void
    signature: void pretty_print_dels(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/clean.c:326,1
    - Dst: print_columns
      Src: /src/git/builtin/clean.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - menu_list
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 320
    functionDepth: 11
    functionLinenumber: 320
    functionLinenumberEnd: 330
    functionName: pretty_print_menus
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - memset
    - print_columns
    linkageType: ''
    returnType: void
    signature: void pretty_print_menus(struct string_list *menu_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:334,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:335,1
    - Dst: _
      Src: /src/git/builtin/clean.c:336,1
    - Dst: _
      Src: /src/git/builtin/clean.c:340,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - singleton
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: prompt_help_cmd
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - clean_print_color
    - printf
    - _
    linkageType: ''
    returnType: void
    signature: void prompt_help_cmd(int singleton)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/clean.c:364,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clean.c:374,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clean.c:377,1
    - Dst: clean_get_color
      Src: /src/git/builtin/clean.c:377,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/clean.c:378,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clean.c:379,1
    - Dst: clean_get_color
      Src: /src/git/builtin/clean.c:379,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/clean.c:382,1
    - Dst: string_list_append
      Src: /src/git/builtin/clean.c:385,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/clean.c:386,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/clean.c:391,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clean.c:394,1
    - Dst: string_list_append
      Src: /src/git/builtin/clean.c:396,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/clean.c:397,1
    - Dst: pretty_print_menus
      Src: /src/git/builtin/clean.c:403,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:405,1
    - Dst: string_list_clear
      Src: /src/git/builtin/clean.c:406,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - stuff
    - chosen
    argTypes:
    - struct menu_stuff*
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 354
    functionDepth: 12
    functionLinenumber: 354
    functionLinenumberEnd: 407
    functionName: print_highlight_menu_stuff
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - strbuf_release
    - string_list_clear
    - die
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - strbuf_addstr
    - string_list_append
    - clean_get_color
    - pretty_print_menus
    linkageType: ''
    returnType: void
    signature: void print_highlight_menu_stuff(struct menu_stuff *stuff, int **chosen)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/clean.c:415,1
    - Dst: die
      Src: /src/git/builtin/clean.c:418,1
    - Dst: strncasecmp
      Src: /src/git/builtin/clean.c:427,1
    - Dst: strncasecmp
      Src: /src/git/builtin/clean.c:445,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - choice
    - menu_stuff
    argTypes:
    - char*
    - struct menu_stuff*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 456
    functionName: find_unique
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 1
    functionsReached:
    - strlen
    - die
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int find_unique(const char *choice, struct menu_stuff *menu_stuff)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: string_list_split_in_place_f
      Src: /src/git/builtin/clean.c:489,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/clean.c:493,1
    - Dst: isdigit
      Src: /src/git/builtin/clean.c:523,1
    - Dst: atoi
      Src: /src/git/builtin/clean.c:531,1
    - Dst: atoi
      Src: /src/git/builtin/clean.c:534,1
    - Dst: strchr
      Src: /src/git/builtin/clean.c:536,1
    - Dst: atoi
      Src: /src/git/builtin/clean.c:539,1
    - Dst: strchr
      Src: /src/git/builtin/clean.c:539,1
    - Dst: strcmp
      Src: /src/git/builtin/clean.c:540,1
    - Dst: find_unique
      Src: /src/git/builtin/clean.c:544,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:550,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:551,1
    - Dst: _
      Src: /src/git/builtin/clean.c:551,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:552,1
    - Dst: string_list_clear
      Src: /src/git/builtin/clean.c:560,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 4
    argNames:
    - menu_stuff
    - is_single
    - input
    - chosen
    argTypes:
    - struct menu_stuff*
    - int
    - char*
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 565
    functionName: parse_choice
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - string_list_split_in_place_f
    - atoi
    - clean_print_color
    - printf
    - strchr
    - isdigit
    - strcmp
    - find_unique
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_choice(struct menu_stuff *menu_stuff,\n\t\t\tint is_single,\n\t\t\tchar
      *input,\n\t\t\tint **chosen)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_ARRAY
      Src: /src/git/builtin/clean.c:586,1
    - Dst: printf_ln
      Src: /src/git/builtin/clean.c:593,1
    - Dst: clean_get_color
      Src: /src/git/builtin/clean.c:594,1
    - Dst: _
      Src: /src/git/builtin/clean.c:595,1
    - Dst: clean_get_color
      Src: /src/git/builtin/clean.c:596,1
    - Dst: print_highlight_menu_stuff
      Src: /src/git/builtin/clean.c:600,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:606,1
    - Dst: clean_get_color
      Src: /src/git/builtin/clean.c:607,1
    - Dst: _
      Src: /src/git/builtin/clean.c:608,1
    - Dst: clean_get_color
      Src: /src/git/builtin/clean.c:610,1
    - Dst: git_read_line_interactively
      Src: /src/git/builtin/clean.c:613,1
    - Dst: strcmp
      Src: /src/git/builtin/clean.c:619,1
    - Dst: prompt_help_cmd
      Src: /src/git/builtin/clean.c:620,1
    - Dst: parse_choice
      Src: /src/git/builtin/clean.c:628,1
    - Dst: xmalloc
      Src: /src/git/builtin/clean.c:642,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/clean.c:656,1
    - Dst: st_add
      Src: /src/git/builtin/clean.c:656,1
    - Dst: free
      Src: /src/git/builtin/clean.c:664,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:665,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 2
    argNames:
    - opts
    - stuff
    argTypes:
    - struct menu_opts*
    - struct menu_stuff*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 578
    functionDepth: 13
    functionLinenumber: 578
    functionLinenumberEnd: 667
    functionName: list_and_choose
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 6
    functionsReached:
    - st_add
    - strbuf_release
    - git_read_line_interactively
    - ALLOC_ARRAY
    - free
    - print_highlight_menu_stuff
    - xmalloc
    - strcmp
    - prompt_help_cmd
    - parse_choice
    - _
    - CALLOC_ARRAY
    - clean_get_color
    - printf_ln
    - printf
    linkageType: ''
    returnType: int
    signature: int *list_and_choose(struct menu_opts *opts, struct menu_stuff *stuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 672
    functionName: clean_cmd
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int clean_cmd(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pretty_print_dels
      Src: /src/git/builtin/clean.c:689,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:691,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:692,1
    - Dst: _
      Src: /src/git/builtin/clean.c:692,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:693,1
    - Dst: git_read_line_interactively
      Src: /src/git/builtin/clean.c:694,1
    - Dst: putchar
      Src: /src/git/builtin/clean.c:695,1
    - Dst: add_pattern_list
      Src: /src/git/builtin/clean.c:701,1
    - Dst: string_list_split_in_place_f
      Src: /src/git/builtin/clean.c:703,1
    - Dst: add_pattern
      Src: /src/git/builtin/clean.c:710,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/clean.c:714,1
    - Dst: is_excluded
      Src: /src/git/builtin/clean.c:717,1
    - Dst: string_list_remove_empty_items
      Src: /src/git/builtin/clean.c:724,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:726,1
    - Dst: printf_ln
      Src: /src/git/builtin/clean.c:727,1
    - Dst: _
      Src: /src/git/builtin/clean.c:727,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:728,1
    - Dst: string_list_clear
      Src: /src/git/builtin/clean.c:731,1
    - Dst: dir_clear
      Src: /src/git/builtin/clean.c:732,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:735,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 674
    functionDepth: 12
    functionLinenumber: 674
    functionLinenumberEnd: 737
    functionName: filter_by_patterns_cmd
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - putchar
    - add_pattern_list
    - string_list_split_in_place_f
    - clean_print_color
    - string_list_clear
    - strbuf_release
    - git_read_line_interactively
    - is_excluded
    - pretty_print_dels
    - string_list_remove_empty_items
    - printf_ln
    - dir_clear
    - _
    - add_pattern
    - printf
    linkageType: ''
    returnType: int
    signature: int filter_by_patterns_cmd(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/clean.c:748,1
    - Dst: list_and_choose
      Src: /src/git/builtin/clean.c:755,1
    - Dst: string_list_remove_empty_items
      Src: /src/git/builtin/clean.c:770,1
    - Dst: free
      Src: /src/git/builtin/clean.c:772,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 774
    functionName: select_by_numbers_cmd
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - N_
    - string_list_remove_empty_items
    - list_and_choose
    - free
    linkageType: ''
    returnType: int
    signature: int select_by_numbers_cmd(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/clean.c:784,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:787,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:789,1
    - Dst: _
      Src: /src/git/builtin/clean.c:789,1
    - Dst: git_read_line_interactively
      Src: /src/git/builtin/clean.c:790,1
    - Dst: putchar
      Src: /src/git/builtin/clean.c:791,1
    - Dst: strncasecmp
      Src: /src/git/builtin/clean.c:795,1
    - Dst: string_list_remove_empty_items
      Src: /src/git/builtin/clean.c:802,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:804,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:805,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 776
    functionDepth: 4
    functionLinenumber: 776
    functionLinenumberEnd: 807
    functionName: ask_each_cmd
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - putchar
    - strbuf_release
    - strncasecmp
    - git_read_line_interactively
    - string_list_remove_empty_items
    - quote_path
    - _
    - printf
    linkageType: ''
    returnType: int
    signature: int ask_each_cmd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/builtin/clean.c:811,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:812,1
    - Dst: _
      Src: /src/git/builtin/clean.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 814
    functionName: quit_cmd
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - printf
    - _
    linkageType: ''
    returnType: int
    signature: int quit_cmd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:818,1
    - Dst: printf_ln
      Src: /src/git/builtin/clean.c:819,1
    - Dst: _
      Src: /src/git/builtin/clean.c:819,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 816
    functionDepth: 3
    functionLinenumber: 816
    functionLinenumberEnd: 830
    functionName: help_cmd
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 1
    functionsReached:
    - printf_ln
    - clean_print_color
    - _
    linkageType: ''
    returnType: int
    signature: int help_cmd(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/clean.c:847,1
    - Dst: N_
      Src: /src/git/builtin/clean.c:848,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:855,1
    - Dst: printf_ln
      Src: /src/git/builtin/clean.c:856,1
    - Dst: Q_
      Src: /src/git/builtin/clean.c:856,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:859,1
    - Dst: pretty_print_dels
      Src: /src/git/builtin/clean.c:861,1
    - Dst: list_and_choose
      Src: /src/git/builtin/clean.c:863,1
    - Dst: fn
      Src: /src/git/builtin/clean.c:867,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/clean.c:869,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:871,1
    - Dst: printf_ln
      Src: /src/git/builtin/clean.c:872,1
    - Dst: _
      Src: /src/git/builtin/clean.c:872,1
    - Dst: clean_print_color
      Src: /src/git/builtin/clean.c:873,1
    - Dst: quit_cmd
      Src: /src/git/builtin/clean.c:879,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/clean.c:882,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 832
    functionDepth: 12
    functionLinenumber: 832
    functionLinenumberEnd: 885
    functionName: interactive_main_loop
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - fn
    - clean_print_color
    - list_and_choose
    - Q_
    - pretty_print_dels
    - _
    - N_
    - printf_ln
    - FREE_AND_NULL
    - quit_cmd
    linkageType: ''
    returnType: void
    signature: void interactive_main_loop(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmp_dir_entry
      Src: /src/git/builtin/clean.c:894,1
    - Dst: check_dir_entry_contains
      Src: /src/git/builtin/clean.c:898,1
    - Dst: free
      Src: /src/git/builtin/clean.c:900,1
    - Dst: check_dir_entry_contains
      Src: /src/git/builtin/clean.c:909,1
    - Dst: free
      Src: /src/git/builtin/clean.c:910,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - dir
    argTypes:
    - struct dir_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 917
    functionName: correct_untracked_entries
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - cmp_dir_entry
    - check_dir_entry_contains
    - free
    linkageType: ''
    returnType: void
    signature: void correct_untracked_entries(struct dir_struct *dir)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/clean.c:937,1
    - Dst: N_
      Src: /src/git/builtin/clean.c:937,1
    - Dst: OPT__DRY_RUN
      Src: /src/git/builtin/clean.c:938,1
    - Dst: N_
      Src: /src/git/builtin/clean.c:938,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/clean.c:939,1
    - Dst: N_
      Src: /src/git/builtin/clean.c:939,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clean.c:940,1
    - Dst: N_
      Src: /src/git/builtin/clean.c:940,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clean.c:941,1
    - Dst: N_
      Src: /src/git/builtin/clean.c:942,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/clean.c:943,1
    - Dst: N_
      Src: /src/git/builtin/clean.c:943,1
    - Dst: N_
      Src: /src/git/builtin/clean.c:944,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clean.c:945,1
    - Dst: N_
      Src: /src/git/builtin/clean.c:945,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clean.c:946,1
    - Dst: N_
      Src: /src/git/builtin/clean.c:947,1
    - Dst: OPT_END
      Src: /src/git/builtin/clean.c:948,1
    - Dst: repo_config
      Src: /src/git/builtin/clean.c:951,1
    - Dst: parse_options
      Src: /src/git/builtin/clean.c:953,1
    - Dst: die
      Src: /src/git/builtin/clean.c:957,1
    - Dst: _
      Src: /src/git/builtin/clean.c:957,1
    - Dst: die
      Src: /src/git/builtin/clean.c:967,1
    - Dst: _
      Src: /src/git/builtin/clean.c:967,1
    - Dst: setup_standard_excludes
      Src: /src/git/builtin/clean.c:969,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/clean.c:1013,1
    - Dst: repo_read_index
      Src: /src/git/builtin/clean.c:1016,1
    - Dst: die
      Src: /src/git/builtin/clean.c:1017,1
    - Dst: _
      Src: /src/git/builtin/clean.c:1017,1
    - Dst: add_pattern_list
      Src: /src/git/builtin/clean.c:1019,1
    - Dst: add_pattern
      Src: /src/git/builtin/clean.c:1021,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/clean.c:1023,1
    - Dst: fill_directory
      Src: /src/git/builtin/clean.c:1027,1
    - Dst: correct_untracked_entries
      Src: /src/git/builtin/clean.c:1028,1
    - Dst: index_name_is_other
      Src: /src/git/builtin/clean.c:1035,1
    - Dst: lstat
      Src: /src/git/builtin/clean.c:1038,1
    - Dst: die_errno
      Src: /src/git/builtin/clean.c:1039,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/clean.c:1041,1
    - Dst: relative_path
      Src: /src/git/builtin/clean.c:1044,1
    - Dst: string_list_append
      Src: /src/git/builtin/clean.c:1045,1
    - Dst: dir_clear
      Src: /src/git/builtin/clean.c:1048,1
    - Dst: interactive_main_loop
      Src: /src/git/builtin/clean.c:1051,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/clean.c:1053,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/clean.c:1056,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clean.c:1058,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clean.c:1060,1
    - Dst: lstat
      Src: /src/git/builtin/clean.c:1067,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/clean.c:1070,1
    - Dst: remove_dirs
      Src: /src/git/builtin/clean.c:1071,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:1074,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:1075,1
    - Dst: _
      Src: /src/git/builtin/clean.c:1075,1
    - Dst: _
      Src: /src/git/builtin/clean.c:1075,1
    - Dst: unlink
      Src: /src/git/builtin/clean.c:1078,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:1081,1
    - Dst: warning_errno
      Src: /src/git/builtin/clean.c:1083,1
    - Dst: _
      Src: /src/git/builtin/clean.c:1083,1
    - Dst: quote_path
      Src: /src/git/builtin/clean.c:1086,1
    - Dst: printf
      Src: /src/git/builtin/clean.c:1087,1
    - Dst: _
      Src: /src/git/builtin/clean.c:1087,1
    - Dst: _
      Src: /src/git/builtin/clean.c:1087,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:1092,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clean.c:1093,1
    - Dst: string_list_clear
      Src: /src/git/builtin/clean.c:1094,1
    - Dst: string_list_clear
      Src: /src/git/builtin/clean.c:1095,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/clean.c:1096,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 81
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 919
    functionDepth: 21
    functionLinenumber: 919
    functionLinenumberEnd: 1098
    functionName: cmd_clean
    functionSourceFile: /src/git/builtin/clean.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - parse_options
    - OPT__DRY_RUN
    - add_pattern_list
    - OPT_BOOL
    - quote_path
    - fill_directory
    - repo_config
    - printf
    - correct_untracked_entries
    - index_name_is_other
    - OPT_END
    - die
    - OPT__FORCE
    - strbuf_release
    - repo_read_index
    - setup_standard_excludes
    - strbuf_addstr
    - interactive_main_loop
    - parse_pathspec
    - OPT__QUIET
    - unlink
    - string_list_clear
    - relative_path
    - die_errno
    - string_list_append
    - _
    - N_
    - dir_clear
    - S_ISDIR
    - clear_pathspec
    - strbuf_reset
    - warning_errno
    - OPT_CALLBACK_F
    - remove_dirs
    - prepare_repo_settings
    - add_pattern
    - lstat
    linkageType: ''
    returnType: int
    signature: "int cmd_clean(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: UTIL_TO_INT
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTIL_TO_INT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTIL_TO_INT
      Src: /src/git/builtin/shortlog.c:41,1
    - Dst: UTIL_TO_INT
      Src: /src/git/builtin/shortlog.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a1
    - a2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: compare_by_counter
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - UTIL_TO_INT
    linkageType: ''
    returnType: int
    signature: int compare_by_counter(const void *a1, const void *a2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a1
    - a2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: compare_by_list
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_by_list(const void *a1, const void *a2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/builtin/shortlog.c:63,1
    - Dst: UTIL_TO_INT
      Src: /src/git/builtin/shortlog.c:66,1
    - Dst: isspace
      Src: /src/git/builtin/shortlog.c:73,1
    - Dst: strchr
      Src: /src/git/builtin/shortlog.c:75,1
    - Dst: strlen
      Src: /src/git/builtin/shortlog.c:77,1
    - Dst: starts_with
      Src: /src/git/builtin/shortlog.c:78,1
    - Dst: strchr
      Src: /src/git/builtin/shortlog.c:79,1
    - Dst: isspace
      Src: /src/git/builtin/shortlog.c:83,1
    - Dst: format_subject
      Src: /src/git/builtin/shortlog.c:85,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/shortlog.c:86,1
    - Dst: xmalloc
      Src: /src/git/builtin/shortlog.c:89,1
    - Dst: string_list_init_nodup
      Src: /src/git/builtin/shortlog.c:90,1
    - Dst: string_list_append
      Src: /src/git/builtin/shortlog.c:92,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - log
    - ident
    - oneline
    argTypes:
    - struct shortlog*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 94
    functionName: insert_one_record
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - isspace
    - string_list_init_nodup
    - string_list_insert
    - strchr
    - starts_with
    - format_subject
    - strlen
    - xmalloc
    - strbuf_detach
    - string_list_append
    - UTIL_TO_INT
    linkageType: ''
    returnType: void
    signature: "void insert_one_record(struct shortlog *log,\n\t\t\t      const char
      *ident,\n\t\t\t      const char *oneline)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: split_ident_line
      Src: /src/git/builtin/shortlog.c:103,1
    - Dst: strlen
      Src: /src/git/builtin/shortlog.c:103,1
    - Dst: map_user
      Src: /src/git/builtin/shortlog.c:111,1
    - Dst: strbuf_add
      Src: /src/git/builtin/shortlog.c:112,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/shortlog.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - log
    - out
    - in
    argTypes:
    - struct shortlog*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: parse_ident
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 2
    functionsReached:
    - split_ident_line
    - strbuf_addf
    - strlen
    - map_user
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int parse_ident(struct shortlog *log,\n\t\t       struct strbuf *out,
      const char *in)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HAS_MULTI_BITS
      Src: /src/git/builtin/shortlog.c:128,1
    - Dst: die
      Src: /src/git/builtin/shortlog.c:129,1
    - Dst: _
      Src: /src/git/builtin/shortlog.c:129,1
    - Dst: die
      Src: /src/git/builtin/shortlog.c:139,1
    - Dst: _
      Src: /src/git/builtin/shortlog.c:139,1
    - Dst: die
      Src: /src/git/builtin/shortlog.c:141,1
    - Dst: _
      Src: /src/git/builtin/shortlog.c:141,1
    - Dst: BUG
      Src: /src/git/builtin/shortlog.c:143,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/shortlog.c:146,1
    - Dst: skip_prefix
      Src: /src/git/builtin/shortlog.c:148,1
    - Dst: skip_prefix
      Src: /src/git/builtin/shortlog.c:149,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/shortlog.c:151,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/shortlog.c:154,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/shortlog.c:158,1
    - Dst: parse_ident
      Src: /src/git/builtin/shortlog.c:159,1
    - Dst: insert_one_record
      Src: /src/git/builtin/shortlog.c:162,1
    - Dst: strbuf_release
      Src: /src/git/builtin/shortlog.c:164,1
    - Dst: strbuf_release
      Src: /src/git/builtin/shortlog.c:165,1
    - Dst: strbuf_release
      Src: /src/git/builtin/shortlog.c:166,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct shortlog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 167
    functionName: read_from_stdin
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - insert_one_record
    - strbuf_release
    - strbuf_getline_lf
    - die
    - parse_ident
    - strbuf_reset
    - HAS_MULTI_BITS
    - _
    - skip_prefix
    - BUG
    linkageType: ''
    returnType: void
    signature: void read_from_stdin(struct shortlog *log)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_logmsg_reencode
      Src: /src/git/builtin/shortlog.c:186,1
    - Dst: strstr
      Src: /src/git/builtin/shortlog.c:188,1
    - Dst: trailer_iterator_init
      Src: /src/git/builtin/shortlog.c:192,1
    - Dst: trailer_iterator_advance
      Src: /src/git/builtin/shortlog.c:193,1
    - Dst: string_list_has_string
      Src: /src/git/builtin/shortlog.c:196,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/shortlog.c:199,1
    - Dst: parse_ident
      Src: /src/git/builtin/shortlog.c:200,1
    - Dst: strset_add
      Src: /src/git/builtin/shortlog.c:203,1
    - Dst: insert_one_record
      Src: /src/git/builtin/shortlog.c:205,1
    - Dst: trailer_iterator_release
      Src: /src/git/builtin/shortlog.c:207,1
    - Dst: strbuf_release
      Src: /src/git/builtin/shortlog.c:210,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/shortlog.c:211,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 5
    argNames:
    - log
    - dups
    - commit
    - ctx
    - oneline
    argTypes:
    - struct shortlog*
    - struct strset*
    - struct commit*
    - struct pretty_print_context*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 169
    functionDepth: 10
    functionLinenumber: 169
    functionLinenumberEnd: 212
    functionName: insert_records_from_trailers
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - insert_one_record
    - strbuf_release
    - trailer_iterator_advance
    - parse_ident
    - strstr
    - strbuf_reset
    - repo_unuse_commit_buffer
    - trailer_iterator_init
    - repo_logmsg_reencode
    - string_list_has_string
    - trailer_iterator_release
    - strset_add
    linkageType: ''
    returnType: void
    signature: "void insert_records_from_trailers(struct shortlog *log,\n\t\t\t\t\t
      struct strset *dups,\n\t\t\t\t\t struct commit *commit,\n\t\t\t\t\t struct pretty_print_context
      *ctx,\n\t\t\t\t\t const char *oneline)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HAS_MULTI_BITS
      Src: /src/git/builtin/shortlog.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct shortlog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: shortlog_needs_dedup
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - HAS_MULTI_BITS
    linkageType: ''
    returnType: int
    signature: int shortlog_needs_dedup(const struct shortlog *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/shortlog.c:228,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/shortlog.c:229,1
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/shortlog.c:231,1
    - Dst: shortlog_needs_dedup
      Src: /src/git/builtin/shortlog.c:234,1
    - Dst: strset_add
      Src: /src/git/builtin/shortlog.c:234,1
    - Dst: insert_one_record
      Src: /src/git/builtin/shortlog.c:235,1
    - Dst: strbuf_release
      Src: /src/git/builtin/shortlog.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - log
    - dups
    - commit
    - ctx
    - oneline
    argTypes:
    - struct shortlog*
    - struct strset*
    - struct commit*
    - struct pretty_print_context*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 219
    functionDepth: 14
    functionLinenumber: 219
    functionLinenumberEnd: 239
    functionName: insert_records_from_format
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - repo_format_commit_message
    - insert_one_record
    - strbuf_release
    - strbuf_reset
    - shortlog_needs_dedup
    - strset_add
    linkageType: ''
    returnType: void
    signature: "void insert_records_from_format(struct shortlog *log,\n\t\t\t\t       struct
      strset *dups,\n\t\t\t\t       struct commit *commit,\n\t\t\t\t       struct
      pretty_print_context *ctx,\n\t\t\t\t       const char *oneline)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_log_output_encoding
      Src: /src/git/builtin/shortlog.c:251,1
    - Dst: pretty_print_commit
      Src: /src/git/builtin/shortlog.c:255,1
    - Dst: repo_format_commit_message
      Src: /src/git/builtin/shortlog.c:257,1
    - Dst: insert_records_from_trailers
      Src: /src/git/builtin/shortlog.c:262,1
    - Dst: insert_records_from_format
      Src: /src/git/builtin/shortlog.c:263,1
    - Dst: strset_clear
      Src: /src/git/builtin/shortlog.c:265,1
    - Dst: strbuf_release
      Src: /src/git/builtin/shortlog.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - log
    - commit
    argTypes:
    - struct shortlog*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 241
    functionDepth: 15
    functionLinenumber: 241
    functionLinenumberEnd: 267
    functionName: shortlog_add_commit
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 1
    functionsReached:
    - insert_records_from_format
    - repo_format_commit_message
    - strbuf_release
    - pretty_print_commit
    - strset_clear
    - insert_records_from_trailers
    - get_log_output_encoding
    linkageType: ''
    returnType: void
    signature: void shortlog_add_commit(struct shortlog *log, struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/shortlog.c:273,1
    - Dst: die
      Src: /src/git/builtin/shortlog.c:274,1
    - Dst: _
      Src: /src/git/builtin/shortlog.c:274,1
    - Dst: get_revision
      Src: /src/git/builtin/shortlog.c:275,1
    - Dst: shortlog_add_commit
      Src: /src/git/builtin/shortlog.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - rev
    - log
    argTypes:
    - struct rev_info*
    - struct shortlog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 16
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: get_from_rev
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - die
    - shortlog_add_commit
    - prepare_revision_walk
    - get_revision
    - _
    linkageType: ''
    returnType: void
    signature: void get_from_rev(struct rev_info *rev, struct shortlog *log)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/builtin/shortlog.c:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - arg
    - comma
    - defval
    argTypes:
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 293
    functionName: parse_uint
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 1
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_uint(char const **arg, int comma, int defval)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_uint
      Src: /src/git/builtin/shortlog.c:314,1
    - Dst: parse_uint
      Src: /src/git/builtin/shortlog.c:315,1
    - Dst: parse_uint
      Src: /src/git/builtin/shortlog.c:316,1
    - Dst: error
      Src: /src/git/builtin/shortlog.c:318,1
    - Dst: error
      Src: /src/git/builtin/shortlog.c:322,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 324
    functionName: parse_wrap_args
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - error
    - parse_uint
    linkageType: ''
    returnType: int
    signature: int parse_wrap_args(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/builtin/shortlog.c:333,1
    - Dst: string_list_clear
      Src: /src/git/builtin/shortlog.c:334,1
    - Dst: strcasecmp
      Src: /src/git/builtin/shortlog.c:335,1
    - Dst: strcasecmp
      Src: /src/git/builtin/shortlog.c:337,1
    - Dst: skip_prefix
      Src: /src/git/builtin/shortlog.c:339,1
    - Dst: string_list_append
      Src: /src/git/builtin/shortlog.c:341,1
    - Dst: skip_prefix
      Src: /src/git/builtin/shortlog.c:342,1
    - Dst: string_list_append
      Src: /src/git/builtin/shortlog.c:344,1
    - Dst: strchr
      Src: /src/git/builtin/shortlog.c:345,1
    - Dst: string_list_append
      Src: /src/git/builtin/shortlog.c:347,1
    - Dst: error
      Src: /src/git/builtin/shortlog.c:349,1
    - Dst: _
      Src: /src/git/builtin/shortlog.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 353
    functionName: parse_group_option
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - error
    - string_list_clear
    - strcasecmp
    - strchr
    - string_list_append
    - _
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: int parse_group_option(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/shortlog.c:358,1
    - Dst: read_mailmap
      Src: /src/git/builtin/shortlog.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct shortlog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 356
    functionDepth: 7
    functionLinenumber: 356
    functionLinenumberEnd: 369
    functionName: shortlog_init
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 1
    functionsReached:
    - read_mailmap
    - memset
    linkageType: ''
    returnType: void
    signature: void shortlog_init(struct shortlog *log)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append
      Src: /src/git/builtin/shortlog.c:374,1
    - Dst: string_list_append
      Src: /src/git/builtin/shortlog.c:377,1
    - Dst: string_list_sort
      Src: /src/git/builtin/shortlog.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct shortlog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 381
    functionName: shortlog_finish_setup
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 1
    functionsReached:
    - string_list_sort
    - string_list_append
    linkageType: ''
    returnType: void
    signature: void shortlog_finish_setup(struct shortlog *log)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BIT
      Src: /src/git/builtin/shortlog.c:393,1
    - Dst: N_
      Src: /src/git/builtin/shortlog.c:394,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/shortlog.c:396,1
    - Dst: N_
      Src: /src/git/builtin/shortlog.c:397,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/shortlog.c:398,1
    - Dst: N_
      Src: /src/git/builtin/shortlog.c:399,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/shortlog.c:400,1
    - Dst: N_
      Src: /src/git/builtin/shortlog.c:401,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/shortlog.c:402,1
    - Dst: N_
      Src: /src/git/builtin/shortlog.c:402,1
    - Dst: N_
      Src: /src/git/builtin/shortlog.c:403,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/shortlog.c:405,1
    - Dst: N_
      Src: /src/git/builtin/shortlog.c:405,1
    - Dst: N_
      Src: /src/git/builtin/shortlog.c:406,1
    - Dst: OPT_END
      Src: /src/git/builtin/shortlog.c:407,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/shortlog.c:422,1
    - Dst: repo_config
      Src: /src/git/builtin/shortlog.c:424,1
    - Dst: shortlog_init
      Src: /src/git/builtin/shortlog.c:425,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/shortlog.c:426,1
    - Dst: parse_options_start
      Src: /src/git/builtin/shortlog.c:427,1
    - Dst: parse_options_step
      Src: /src/git/builtin/shortlog.c:431,1
    - Dst: exit
      Src: /src/git/builtin/shortlog.c:438,1
    - Dst: exit
      Src: /src/git/builtin/shortlog.c:440,1
    - Dst: parse_revision_opt
      Src: /src/git/builtin/shortlog.c:444,1
    - Dst: revision_opts_finish
      Src: /src/git/builtin/shortlog.c:447,1
    - Dst: parse_options_end
      Src: /src/git/builtin/shortlog.c:448,1
    - Dst: error
      Src: /src/git/builtin/shortlog.c:451,1
    - Dst: _
      Src: /src/git/builtin/shortlog.c:451,1
    - Dst: usage_with_options
      Src: /src/git/builtin/shortlog.c:452,1
    - Dst: setup_revisions
      Src: /src/git/builtin/shortlog.c:455,1
    - Dst: error
      Src: /src/git/builtin/shortlog.c:456,1
    - Dst: _
      Src: /src/git/builtin/shortlog.c:456,1
    - Dst: usage_with_options
      Src: /src/git/builtin/shortlog.c:457,1
    - Dst: shortlog_finish_setup
      Src: /src/git/builtin/shortlog.c:467,1
    - Dst: isatty
      Src: /src/git/builtin/shortlog.c:470,1
    - Dst: add_head_to_pending
      Src: /src/git/builtin/shortlog.c:471,1
    - Dst: isatty
      Src: /src/git/builtin/shortlog.c:473,1
    - Dst: fprintf
      Src: /src/git/builtin/shortlog.c:474,1
    - Dst: _
      Src: /src/git/builtin/shortlog.c:474,1
    - Dst: read_from_stdin
      Src: /src/git/builtin/shortlog.c:475,1
    - Dst: get_from_rev
      Src: /src/git/builtin/shortlog.c:478,1
    - Dst: shortlog_output
      Src: /src/git/builtin/shortlog.c:480,1
    - Dst: release_revisions
      Src: /src/git/builtin/shortlog.c:481,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 383
    functionDepth: 19
    functionLinenumber: 383
    functionLinenumberEnd: 483
    functionName: cmd_shortlog
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - parse_options_start
    - OPT_BOOL
    - repo_init_revisions
    - repo_set_hash_algo
    - repo_config
    - usage_with_options
    - error
    - OPT_END
    - release_revisions
    - revision_opts_finish
    - parse_revision_opt
    - OPT_BIT
    - isatty
    - shortlog_finish_setup
    - get_from_rev
    - parse_options_step
    - shortlog_init
    - N_
    - _
    - setup_revisions
    - shortlog_output
    - add_head_to_pending
    - read_from_stdin
    - exit
    - OPT_CALLBACK_F
    - OPT_CALLBACK
    - fprintf
    - parse_options_end
    linkageType: ''
    returnType: int
    signature: "int cmd_shortlog(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add_wrapped_text
      Src: /src/git/builtin/shortlog.c:488,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/shortlog.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sb
    - s
    - log
    argTypes:
    - struct strbuf*
    - char*
    - struct shortlog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: add_wrapped_shortlog_msg
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 0
    functionsReached:
    - strbuf_add_wrapped_text
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: "void add_wrapped_shortlog_msg(struct strbuf *sb, const char *s,\n\t\t\t\t
      \    const struct shortlog *log)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STABLE_QSORT
      Src: /src/git/builtin/shortlog.c:498,1
    - Dst: fprintf
      Src: /src/git/builtin/shortlog.c:503,1
    - Dst: UTIL_TO_INT
      Src: /src/git/builtin/shortlog.c:504,1
    - Dst: fprintf
      Src: /src/git/builtin/shortlog.c:507,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/shortlog.c:513,1
    - Dst: add_wrapped_shortlog_msg
      Src: /src/git/builtin/shortlog.c:514,1
    - Dst: fwrite
      Src: /src/git/builtin/shortlog.c:515,1
    - Dst: fprintf
      Src: /src/git/builtin/shortlog.c:518,1
    - Dst: putc
      Src: /src/git/builtin/shortlog.c:520,1
    - Dst: string_list_clear
      Src: /src/git/builtin/shortlog.c:522,1
    - Dst: free
      Src: /src/git/builtin/shortlog.c:523,1
    - Dst: strbuf_release
      Src: /src/git/builtin/shortlog.c:529,1
    - Dst: string_list_clear
      Src: /src/git/builtin/shortlog.c:531,1
    - Dst: clear_mailmap
      Src: /src/git/builtin/shortlog.c:532,1
    - Dst: string_list_clear
      Src: /src/git/builtin/shortlog.c:533,1
    - Dst: string_list_clear
      Src: /src/git/builtin/shortlog.c:534,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct shortlog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 492
    functionDepth: 6
    functionLinenumber: 492
    functionLinenumberEnd: 535
    functionName: shortlog_output
    functionSourceFile: /src/git/builtin/shortlog.c
    functionUses: 2
    functionsReached:
    - string_list_clear
    - putc
    - strbuf_release
    - clear_mailmap
    - strbuf_reset
    - add_wrapped_shortlog_msg
    - fwrite
    - STABLE_QSORT
    - free
    - UTIL_TO_INT
    - fprintf
    linkageType: ''
    returnType: void
    signature: void shortlog_output(struct shortlog *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/diff-tree.c:19,1
    - Dst: log_tree_commit
      Src: /src/git/builtin/diff-tree.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 24
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: diff_tree_commit_oid
    functionSourceFile: /src/git/builtin/diff-tree.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - log_tree_commit
    linkageType: ''
    returnType: int
    signature: int diff_tree_commit_oid(const struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/builtin/diff-tree.c:32,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/diff-tree.c:32,1
    - Dst: lookup_commit
      Src: /src/git/builtin/diff-tree.c:33,1
    - Dst: commit_list_free
      Src: /src/git/builtin/diff-tree.c:36,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/diff-tree.c:41,1
    - Dst: log_tree_commit
      Src: /src/git/builtin/diff-tree.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - commit
    - p
    argTypes:
    - struct commit*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 24
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: stdin_diff_commit
    functionSourceFile: /src/git/builtin/diff-tree.c
    functionUses: 0
    functionsReached:
    - isspace
    - log_tree_commit
    - commit_list_free
    - parse_oid_hex
    - lookup_commit
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: int stdin_diff_commit(struct commit *commit, const char *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/git/builtin/diff-tree.c:52,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/diff-tree.c:52,1
    - Dst: error
      Src: /src/git/builtin/diff-tree.c:53,1
    - Dst: lookup_tree
      Src: /src/git/builtin/diff-tree.c:54,1
    - Dst: repo_parse_tree
      Src: /src/git/builtin/diff-tree.c:55,1
    - Dst: printf
      Src: /src/git/builtin/diff-tree.c:57,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/diff-tree.c:57,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/diff-tree.c:58,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/diff-tree.c:59,1
    - Dst: log_tree_diff_flush
      Src: /src/git/builtin/diff-tree.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - tree1
    - p
    argTypes:
    - struct tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 28
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: stdin_diff_trees
    functionSourceFile: /src/git/builtin/diff-tree.c
    functionUses: 0
    functionsReached:
    - isspace
    - error
    - oid_to_hex
    - diff_tree_oid
    - repo_parse_tree
    - log_tree_diff_flush
    - parse_oid_hex
    - lookup_tree
    - printf
    linkageType: ''
    returnType: int
    signature: int stdin_diff_trees(struct tree *tree1, const char *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/diff-tree.c:67,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/diff-tree.c:75,1
    - Dst: parse_object
      Src: /src/git/builtin/diff-tree.c:77,1
    - Dst: stdin_diff_commit
      Src: /src/git/builtin/diff-tree.c:81,1
    - Dst: stdin_diff_trees
      Src: /src/git/builtin/diff-tree.c:83,1
    - Dst: error
      Src: /src/git/builtin/diff-tree.c:84,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/diff-tree.c:85,1
    - Dst: type_name
      Src: /src/git/builtin/diff-tree.c:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 29
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: diff_tree_stdin
    functionSourceFile: /src/git/builtin/diff-tree.c
    functionUses: 0
    functionsReached:
    - error
    - stdin_diff_trees
    - oid_to_hex
    - parse_object
    - strlen
    - parse_oid_hex
    - type_name
    - stdin_diff_commit
    linkageType: ''
    returnType: int
    signature: int diff_tree_stdin(char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rev
    argTypes:
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: diff_tree_tweak_rev
    functionSourceFile: /src/git/builtin/diff-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diff_tree_tweak_rev(struct rev_info *rev)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/diff-tree.c:125,1
    - Dst: repo_config
      Src: /src/git/builtin/diff-tree.c:127,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/diff-tree.c:129,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/diff-tree.c:132,1
    - Dst: repo_read_index
      Src: /src/git/builtin/diff-tree.c:133,1
    - Dst: die
      Src: /src/git/builtin/diff-tree.c:134,1
    - Dst: _
      Src: /src/git/builtin/diff-tree.c:134,1
    - Dst: memset
      Src: /src/git/builtin/diff-tree.c:138,1
    - Dst: precompose_argv_prefix
      Src: /src/git/builtin/diff-tree.c:141,1
    - Dst: setup_revisions
      Src: /src/git/builtin/diff-tree.c:142,1
    - Dst: memset
      Src: /src/git/builtin/diff-tree.c:144,1
    - Dst: userformat_find_requirements
      Src: /src/git/builtin/diff-tree.c:145,1
    - Dst: load_display_notes
      Src: /src/git/builtin/diff-tree.c:150,1
    - Dst: strcmp
      Src: /src/git/builtin/diff-tree.c:155,1
    - Dst: strcmp
      Src: /src/git/builtin/diff-tree.c:159,1
    - Dst: usage
      Src: /src/git/builtin/diff-tree.c:163,1
    - Dst: die
      Src: /src/git/builtin/diff-tree.c:167,1
    - Dst: _
      Src: /src/git/builtin/diff-tree.c:167,1
    - Dst: die
      Src: /src/git/builtin/diff-tree.c:169,1
    - Dst: _
      Src: /src/git/builtin/diff-tree.c:169,1
    - Dst: usage
      Src: /src/git/builtin/diff-tree.c:183,1
    - Dst: diff_tree_commit_oid
      Src: /src/git/builtin/diff-tree.c:187,1
    - Dst: diff_get_merge_base
      Src: /src/git/builtin/diff-tree.c:195,1
    - Dst: lookup_object
      Src: /src/git/builtin/diff-tree.c:196,1
    - Dst: SWAP
      Src: /src/git/builtin/diff-tree.c:198,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/diff-tree.c:200,1
    - Dst: log_tree_diff_flush
      Src: /src/git/builtin/diff-tree.c:201,1
    - Dst: repo_read_index
      Src: /src/git/builtin/diff-tree.c:213,1
    - Dst: fgets
      Src: /src/git/builtin/diff-tree.c:216,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/diff-tree.c:219,1
    - Dst: fputs
      Src: /src/git/builtin/diff-tree.c:220,1
    - Dst: fflush
      Src: /src/git/builtin/diff-tree.c:221,1
    - Dst: diff_tree_stdin
      Src: /src/git/builtin/diff-tree.c:224,1
    - Dst: diff_free
      Src: /src/git/builtin/diff-tree.c:234,1
    - Dst: diff_result_code
      Src: /src/git/builtin/diff-tree.c:237,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 86
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 112
    functionDepth: 30
    functionLinenumber: 112
    functionLinenumberEnd: 238
    functionName: cmd_diff_tree
    functionSourceFile: /src/git/builtin/diff-tree.c
    functionUses: 0
    functionsReached:
    - fgets
    - fputs
    - repo_init_revisions
    - strcmp
    - repo_config
    - diff_tree_commit_oid
    - die
    - repo_read_index
    - lookup_object
    - SWAP
    - memset
    - precompose_argv_prefix
    - get_oid_hex
    - diff_result_code
    - log_tree_diff_flush
    - diff_tree_stdin
    - fflush
    - _
    - setup_revisions
    - load_display_notes
    - userformat_find_requirements
    - show_usage_if_asked
    - diff_free
    - diff_tree_oid
    - usage
    - prepare_repo_settings
    - diff_get_merge_base
    linkageType: ''
    returnType: int
    signature: "int cmd_diff_tree(int argc,\n\t\t  const char **argv,\n\t\t  const
      char *prefix,\n\t\t  struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/builtin/clone.c:87,1
    - Dst: string_list_append
      Src: /src/git/builtin/clone.c:89,1
    - Dst: string_list_append
      Src: /src/git/builtin/clone.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: recurse_submodules_cb
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - string_list_append
    linkageType: ''
    returnType: int
    signature: "int recurse_submodules_cb(const struct option *opt,\n\t\t\t\t const
      char *arg, int unset)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/clone.c:105,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/clone.c:106,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:107,1
    - Dst: stat
      Src: /src/git/builtin/clone.c:108,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/clone.c:110,1
    - Dst: is_git_directory
      Src: /src/git/builtin/clone.c:110,1
    - Dst: S_ISREG
      Src: /src/git/builtin/clone.c:113,1
    - Dst: open
      Src: /src/git/builtin/clone.c:117,1
    - Dst: read_in_full
      Src: /src/git/builtin/clone.c:120,1
    - Dst: close
      Src: /src/git/builtin/clone.c:121,1
    - Dst: strncmp
      Src: /src/git/builtin/clone.c:122,1
    - Dst: read_gitfile
      Src: /src/git/builtin/clone.c:124,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/clone.c:132,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/clone.c:133,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:134,1
    - Dst: stat
      Src: /src/git/builtin/clone.c:135,1
    - Dst: S_ISREG
      Src: /src/git/builtin/clone.c:135,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 2
    argNames:
    - path
    - is_bundle
    argTypes:
    - struct strbuf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 97
    functionDepth: 6
    functionLinenumber: 97
    functionLinenumberEnd: 142
    functionName: get_repo_path_1
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - S_ISDIR
    - open
    - stat
    - strbuf_setlen
    - read_gitfile
    - read_in_full
    - close
    - strbuf_addstr
    - is_git_directory
    - strncmp
    - S_ISREG
    linkageType: ''
    returnType: char
    signature: char *get_repo_path_1(struct strbuf *path, int *is_bundle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:150,1
    - Dst: get_repo_path_1
      Src: /src/git/builtin/clone.c:151,1
    - Dst: absolute_pathdup
      Src: /src/git/builtin/clone.c:152,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - repo
    - is_bundle
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 144
    functionDepth: 7
    functionLinenumber: 144
    functionLinenumberEnd: 155
    functionName: get_repo_path
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - get_repo_path_1
    - strbuf_release
    - absolute_pathdup
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *get_repo_path(const char *repo, int *is_bundle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compute_alternate_path
      Src: /src/git/builtin/clone.c:161,1
    - Dst: die
      Src: /src/git/builtin/clone.c:165,1
    - Dst: fprintf
      Src: /src/git/builtin/clone.c:167,1
    - Dst: _
      Src: /src/git/builtin/clone.c:168,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:172,1
    - Dst: odb_add_to_alternates_file
      Src: /src/git/builtin/clone.c:173,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:174,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:177,1
    - Dst: free
      Src: /src/git/builtin/clone.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - item
    - cb_data
    argTypes:
    - struct string_list_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 157
    functionDepth: 7
    functionLinenumber: 157
    functionLinenumberEnd: 180
    functionName: add_one_reference
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - strbuf_addf
    - compute_alternate_path
    - _
    - free
    - fprintf
    - odb_add_to_alternates_file
    linkageType: ''
    returnType: int
    signature: int add_one_reference(struct string_list_item *item, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list
      Src: /src/git/builtin/clone.c:185,1
    - Dst: for_each_string_list
      Src: /src/git/builtin/clone.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_reference
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - for_each_string_list
    linkageType: ''
    returnType: void
    signature: void setup_reference(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xfopen
      Src: /src/git/builtin/clone.c:206,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/clone.c:209,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/clone.c:213,1
    - Dst: odb_add_to_alternates_file
      Src: /src/git/builtin/clone.c:214,1
    - Dst: mkpathdup
      Src: /src/git/builtin/clone.c:218,1
    - Dst: normalize_path_copy
      Src: /src/git/builtin/clone.c:219,1
    - Dst: odb_add_to_alternates_file
      Src: /src/git/builtin/clone.c:220,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:223,1
    - Dst: free
      Src: /src/git/builtin/clone.c:225,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:227,1
    - Dst: fclose
      Src: /src/git/builtin/clone.c:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - src
    - src_repo
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 192
    functionDepth: 6
    functionLinenumber: 192
    functionLinenumberEnd: 229
    functionName: copy_alternates
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - is_absolute_path
    - normalize_path_copy
    - warning
    - free
    - strbuf_getline
    - xfopen
    - mkpathdup
    - odb_add_to_alternates_file
    linkageType: ''
    returnType: void
    signature: void copy_alternates(struct strbuf *src, const char *src_repo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/git/builtin/clone.c:235,1
    - Dst: die_errno
      Src: /src/git/builtin/clone.c:239,1
    - Dst: _
      Src: /src/git/builtin/clone.c:239,1
    - Dst: stat
      Src: /src/git/builtin/clone.c:240,1
    - Dst: die_errno
      Src: /src/git/builtin/clone.c:241,1
    - Dst: _
      Src: /src/git/builtin/clone.c:241,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/clone.c:242,1
    - Dst: die
      Src: /src/git/builtin/clone.c:243,1
    - Dst: _
      Src: /src/git/builtin/clone.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - pathname
    - mode
    argTypes:
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: mkdir_if_missing
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - die
    - stat
    - die_errno
    - mkdir
    - _
    linkageType: ''
    returnType: void
    signature: void mkdir_if_missing(const char *pathname, mode_t mode)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: die_upon_dubious_ownership
      Src: /src/git/builtin/clone.c:265,1
    - Dst: mkdir_if_missing
      Src: /src/git/builtin/clone.c:267,1
    - Dst: dir_iterator_begin
      Src: /src/git/builtin/clone.c:269,1
    - Dst: lstat
      Src: /src/git/builtin/clone.c:276,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/clone.c:276,1
    - Dst: die
      Src: /src/git/builtin/clone.c:277,1
    - Dst: _
      Src: /src/git/builtin/clone.c:277,1
    - Dst: die_errno
      Src: /src/git/builtin/clone.c:281,1
    - Dst: _
      Src: /src/git/builtin/clone.c:281,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/clone.c:284,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/clone.c:286,1
    - Dst: dir_iterator_advance
      Src: /src/git/builtin/clone.c:289,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/clone.c:290,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:291,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/clone.c:292,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:293,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/clone.c:295,1
    - Dst: die
      Src: /src/git/builtin/clone.c:296,1
    - Dst: _
      Src: /src/git/builtin/clone.c:296,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/clone.c:299,1
    - Dst: mkdir_if_missing
      Src: /src/git/builtin/clone.c:300,1
    - Dst: fspathcmp
      Src: /src/git/builtin/clone.c:305,1
    - Dst: copy_alternates
      Src: /src/git/builtin/clone.c:306,1
    - Dst: unlink
      Src: /src/git/builtin/clone.c:310,1
    - Dst: die_errno
      Src: /src/git/builtin/clone.c:311,1
    - Dst: _
      Src: /src/git/builtin/clone.c:311,1
    - Dst: link
      Src: /src/git/builtin/clone.c:313,1
    - Dst: lstat
      Src: /src/git/builtin/clone.c:322,1
    - Dst: die
      Src: /src/git/builtin/clone.c:323,1
    - Dst: _
      Src: /src/git/builtin/clone.c:323,1
    - Dst: die
      Src: /src/git/builtin/clone.c:330,1
    - Dst: _
      Src: /src/git/builtin/clone.c:330,1
    - Dst: die_errno
      Src: /src/git/builtin/clone.c:335,1
    - Dst: _
      Src: /src/git/builtin/clone.c:335,1
    - Dst: copy_file_with_time
      Src: /src/git/builtin/clone.c:338,1
    - Dst: die_errno
      Src: /src/git/builtin/clone.c:339,1
    - Dst: _
      Src: /src/git/builtin/clone.c:339,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/clone.c:343,1
    - Dst: die
      Src: /src/git/builtin/clone.c:344,1
    - Dst: _
      Src: /src/git/builtin/clone.c:344,1
    - Dst: dir_iterator_free
      Src: /src/git/builtin/clone.c:347,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 53
    argCount: 3
    argNames:
    - src
    - dest
    - src_repo
    argTypes:
    - struct strbuf*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 246
    functionDepth: 8
    functionLinenumber: 246
    functionLinenumberEnd: 348
    functionName: copy_or_link_directory
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - dir_iterator_begin
    - die
    - dir_iterator_advance
    - mkdir_if_missing
    - strbuf_setlen
    - copy_alternates
    - strbuf_addstr
    - fspathcmp
    - unlink
    - die_errno
    - link
    - _
    - copy_file_with_time
    - S_ISDIR
    - dir_iterator_free
    - strbuf_addch
    - die_upon_dubious_ownership
    - lstat
    linkageType: ''
    returnType: void
    signature: "void copy_or_link_directory(struct strbuf *src, struct strbuf *dest,\n\t\t\t\t
      \  const char *src_repo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_common_dir
      Src: /src/git/builtin/clone.c:354,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:355,1
    - Dst: odb_add_to_alternates_file
      Src: /src/git/builtin/clone.c:356,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:357,1
    - Dst: get_common_dir
      Src: /src/git/builtin/clone.c:361,1
    - Dst: get_common_dir
      Src: /src/git/builtin/clone.c:362,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:363,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:364,1
    - Dst: copy_or_link_directory
      Src: /src/git/builtin/clone.c:365,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:366,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:367,1
    - Dst: fprintf
      Src: /src/git/builtin/clone.c:371,1
    - Dst: _
      Src: /src/git/builtin/clone.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - src_repo
    - dest_repo
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 350
    functionDepth: 9
    functionLinenumber: 350
    functionLinenumberEnd: 372
    functionName: clone_local
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - copy_or_link_directory
    - strbuf_addstr
    - _
    - get_common_dir
    - fprintf
    - odb_add_to_alternates_file
    linkageType: ''
    returnType: void
    signature: void clone_local(const char *src_repo, const char *dest_repo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/builtin/clone.c:395,1
    - Dst: _
      Src: /src/git/builtin/clone.c:395,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:405,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/clone.c:406,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/clone.c:407,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:410,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/clone.c:411,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 389
    functionDepth: 8
    functionLinenumber: 389
    functionLinenumberEnd: 414
    functionName: remove_junk
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - remove_dir_recursively
    - strbuf_addstr
    - _
    - warning
    linkageType: ''
    returnType: void
    signature: void remove_junk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_junk
      Src: /src/git/builtin/clone.c:418,1
    - Dst: sigchain_pop
      Src: /src/git/builtin/clone.c:419,1
    - Dst: raise
      Src: /src/git/builtin/clone.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: remove_junk_on_signal
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - sigchain_pop
    - remove_junk
    - raise
    linkageType: ''
    returnType: void
    signature: void remove_junk_on_signal(int signo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:427,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:428,1
    - Dst: find_ref_by_name
      Src: /src/git/builtin/clone.c:429,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:430,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:435,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:436,1
    - Dst: find_ref_by_name
      Src: /src/git/builtin/clone.c:437,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - refs
    - branch
    argTypes:
    - struct ref*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 423
    functionDepth: 4
    functionLinenumber: 423
    functionLinenumberEnd: 441
    functionName: find_remote_branch
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - find_ref_by_name
    - strbuf_addstr
    linkageType: ''
    returnType: struct ref
    signature: struct ref *find_remote_branch(const struct ref *refs, const char *branch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: copy_ref
      Src: /src/git/builtin/clone.c:452,1
    - Dst: find_ref_by_name
      Src: /src/git/builtin/clone.c:452,1
    - Dst: tail_link_ref
      Src: /src/git/builtin/clone.c:454,1
    - Dst: guess_remote_head
      Src: /src/git/builtin/clone.c:457,1
    - Dst: copy_ref
      Src: /src/git/builtin/clone.c:462,1
    - Dst: find_remote_branch
      Src: /src/git/builtin/clone.c:462,1
    - Dst: get_fetch_map
      Src: /src/git/builtin/clone.c:466,1
    - Dst: free_one_ref
      Src: /src/git/builtin/clone.c:468,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - opts
    - refs
    - refspec
    argTypes:
    - struct clone_opts*
    - struct ref*
    - struct refspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 443
    functionDepth: 11
    functionLinenumber: 443
    functionLinenumberEnd: 471
    functionName: wanted_peer_refs
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - guess_remote_head
    - tail_link_ref
    - free_one_ref
    - find_remote_branch
    - copy_ref
    - get_fetch_map
    - find_ref_by_name
    linkageType: ''
    returnType: struct ref
    signature: "struct ref *wanted_peer_refs(struct clone_opts *opts,\n\t\t\t\t    const
      struct ref *refs,\n\t\t\t\t    struct refspec *refspec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ref_store_transaction_begin
      Src: /src/git/builtin/clone.c:480,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/clone.c:480,1
    - Dst: die
      Src: /src/git/builtin/clone.c:483,1
    - Dst: ref_transaction_create
      Src: /src/git/builtin/clone.c:488,1
    - Dst: die
      Src: /src/git/builtin/clone.c:490,1
    - Dst: ref_transaction_commit
      Src: /src/git/builtin/clone.c:493,1
    - Dst: die
      Src: /src/git/builtin/clone.c:494,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:496,1
    - Dst: ref_transaction_free
      Src: /src/git/builtin/clone.c:497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - local_refs
    argTypes:
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 473
    functionDepth: 7
    functionLinenumber: 473
    functionLinenumberEnd: 498
    functionName: write_remote_refs
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - strbuf_release
    - die
    - ref_transaction_free
    - ref_transaction_create
    - ref_store_transaction_begin
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void write_remote_refs(const struct ref *local_refs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/clone.c:504,1
    - Dst: ends_with
      Src: /src/git/builtin/clone.c:506,1
    - Dst: odb_has_object
      Src: /src/git/builtin/clone.c:508,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/clone.c:510,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/clone.c:510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - refs
    - msg
    argTypes:
    - struct ref*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 500
    functionDepth: 12
    functionLinenumber: 500
    functionLinenumberEnd: 514
    functionName: write_followtags
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - starts_with
    - odb_has_object
    - ends_with
    - refs_update_ref
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void write_followtags(const struct ref *refs, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cb_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 532
    functionName: iterate_ref_map
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct object_id
    signature: struct object_id *iterate_ref_map(void *cb_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: check_connected
      Src: /src/git/builtin/clone.c:550,1
    - Dst: die
      Src: /src/git/builtin/clone.c:551,1
    - Dst: _
      Src: /src/git/builtin/clone.c:551,1
    - Dst: write_remote_refs
      Src: /src/git/builtin/clone.c:555,1
    - Dst: write_followtags
      Src: /src/git/builtin/clone.c:557,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:562,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:563,1
    - Dst: refs_update_symref
      Src: /src/git/builtin/clone.c:564,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/clone.c:564,1
    - Dst: die
      Src: /src/git/builtin/clone.c:567,1
    - Dst: _
      Src: /src/git/builtin/clone.c:567,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:568,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 7
    argNames:
    - refs
    - mapped_refs
    - remote_head_points_at
    - branch_top
    - msg
    - transport
    - check_connectivity
    argTypes:
    - struct ref*
    - struct ref*
    - struct ref*
    - char*
    - char*
    - struct transport*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 534
    functionDepth: 13
    functionLinenumber: 534
    functionLinenumberEnd: 570
    functionName: update_remote_refs
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - check_connected
    - refs_update_symref
    - write_followtags
    - write_remote_refs
    - _
    - strbuf_addstr
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void update_remote_refs(const struct ref *refs,\n\t\t\t       const
      struct ref *mapped_refs,\n\t\t\t       const struct ref *remote_head_points_at,\n\t\t\t
      \      const char *branch_top,\n\t\t\t       const char *msg,\n\t\t\t       struct
      transport *transport,\n\t\t\t       int check_connectivity)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/clone.c:576,1
    - Dst: refs_update_symref
      Src: /src/git/builtin/clone.c:578,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/clone.c:578,1
    - Dst: die
      Src: /src/git/builtin/clone.c:579,1
    - Dst: _
      Src: /src/git/builtin/clone.c:579,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/clone.c:581,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/clone.c:581,1
    - Dst: install_branch_config
      Src: /src/git/builtin/clone.c:584,1
    - Dst: lookup_commit_or_die
      Src: /src/git/builtin/clone.c:587,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/clone.c:591,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/clone.c:591,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/clone.c:600,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/clone.c:600,1
    - Dst: skip_prefix
      Src: /src/git/builtin/clone.c:603,1
    - Dst: refs_update_symref
      Src: /src/git/builtin/clone.c:608,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/clone.c:608,1
    - Dst: die
      Src: /src/git/builtin/clone.c:609,1
    - Dst: _
      Src: /src/git/builtin/clone.c:609,1
    - Dst: install_branch_config
      Src: /src/git/builtin/clone.c:611,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 5
    argNames:
    - opts
    - our
    - remote
    - unborn
    - msg
    argTypes:
    - struct clone_opts*
    - struct ref*
    - struct ref*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 572
    functionDepth: 8
    functionLinenumber: 572
    functionLinenumberEnd: 613
    functionName: update_head
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - lookup_commit_or_die
    - die
    - refs_update_symref
    - refs_update_ref
    - _
    - skip_prefix
    - install_branch_config
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void update_head(struct clone_opts *opts, const struct ref *our, const
      struct ref *remote,\n\t\t\tconst char *unborn, const char *msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/builtin/clone.c:619,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/clone.c:621,1
    - Dst: run_command
      Src: /src/git/builtin/clone.c:630,1
    - Dst: error
      Src: /src/git/builtin/clone.c:631,1
    - Dst: _
      Src: /src/git/builtin/clone.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - repo
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 615
    functionDepth: 8
    functionLinenumber: 615
    functionLinenumberEnd: 636
    functionName: git_sparse_checkout_init
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - error
    - run_command
    - strvec_pushl
    - _
    - repo_config_values
    linkageType: ''
    returnType: int
    signature: int git_sparse_checkout_init(const char *repo)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/clone.c:655,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/clone.c:655,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:658,1
    - Dst: _
      Src: /src/git/builtin/clone.c:658,1
    - Dst: strcmp
      Src: /src/git/builtin/clone.c:662,1
    - Dst: advice_enabled
      Src: /src/git/builtin/clone.c:663,1
    - Dst: detach_advice
      Src: /src/git/builtin/clone.c:664,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/clone.c:664,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/clone.c:665,1
    - Dst: starts_with
      Src: /src/git/builtin/clone.c:667,1
    - Dst: die
      Src: /src/git/builtin/clone.c:668,1
    - Dst: _
      Src: /src/git/builtin/clone.c:668,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/clone.c:672,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/clone.c:674,1
    - Dst: memset
      Src: /src/git/builtin/clone.c:676,1
    - Dst: init_checkout_metadata
      Src: /src/git/builtin/clone.c:685,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/clone.c:687,1
    - Dst: die
      Src: /src/git/builtin/clone.c:689,1
    - Dst: _
      Src: /src/git/builtin/clone.c:689,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/clone.c:689,1
    - Dst: repo_parse_tree
      Src: /src/git/builtin/clone.c:690,1
    - Dst: exit
      Src: /src/git/builtin/clone.c:691,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/clone.c:692,1
    - Dst: unpack_trees
      Src: /src/git/builtin/clone.c:693,1
    - Dst: die
      Src: /src/git/builtin/clone.c:694,1
    - Dst: _
      Src: /src/git/builtin/clone.c:694,1
    - Dst: free
      Src: /src/git/builtin/clone.c:696,1
    - Dst: write_locked_index
      Src: /src/git/builtin/clone.c:698,1
    - Dst: die
      Src: /src/git/builtin/clone.c:699,1
    - Dst: _
      Src: /src/git/builtin/clone.c:699,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/clone.c:701,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/clone.c:701,1
    - Dst: null_oid
      Src: /src/git/builtin/clone.c:701,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/clone.c:702,1
    - Dst: run_hooks_opt
      Src: /src/git/builtin/clone.c:703,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/clone.c:707,1
    - Dst: strvec_push
      Src: /src/git/builtin/clone.c:711,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/clone.c:714,1
    - Dst: strvec_push
      Src: /src/git/builtin/clone.c:717,1
    - Dst: strvec_push
      Src: /src/git/builtin/clone.c:720,1
    - Dst: strvec_push
      Src: /src/git/builtin/clone.c:723,1
    - Dst: strvec_push
      Src: /src/git/builtin/clone.c:724,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/clone.c:728,1
    - Dst: ref_storage_format_to_name
      Src: /src/git/builtin/clone.c:729,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/clone.c:732,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/builtin/clone.c:733,1
    - Dst: strvec_push
      Src: /src/git/builtin/clone.c:736,1
    - Dst: run_command
      Src: /src/git/builtin/clone.c:741,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 4
    argNames:
    - submodule_progress
    - filter_options
    - filter_submodules
    - ref_storage_format
    argTypes:
    - int
    - struct list_objects_filter_options*
    - int
    - enum ref_storage_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 638
    functionDepth: 14
    functionLinenumber: 638
    functionLinenumberEnd: 745
    functionName: checkout
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 34
    functionsReached:
    - strvec_push
    - repo_hold_locked_index
    - run_hooks_opt
    - strcmp
    - free
    - get_main_ref_store
    - die
    - repo_parse_tree
    - ref_storage_format_to_name
    - detach_advice
    - expand_list_objects_filter_spec
    - refs_resolve_refdup
    - memset
    - oid_to_hex
    - setup_work_tree
    - repo_parse_tree_indirect
    - strvec_pushl
    - unpack_trees
    - _
    - warning
    - FREE_AND_NULL
    - strvec_pushf
    - init_tree_desc
    - init_checkout_metadata
    - run_command
    - exit
    - starts_with
    - write_locked_index
    - null_oid
    - advice_enabled
    linkageType: ''
    returnType: int
    signature: "int checkout(int submodule_progress,\n\t\t    struct list_objects_filter_options
      *filter_options,\n\t\t    int filter_submodules,\n\t\t    enum ref_storage_format
      ref_storage_format)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/clone.c:750,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/clone.c:752,1
    - Dst: free
      Src: /src/git/builtin/clone.c:753,1
    - Dst: xstrdup
      Src: /src/git/builtin/clone.c:754,1
    - Dst: strcmp
      Src: /src/git/builtin/clone.c:756,1
    - Dst: git_config_bool
      Src: /src/git/builtin/clone.c:757,1
    - Dst: strcmp
      Src: /src/git/builtin/clone.c:758,1
    - Dst: git_config_bool
      Src: /src/git/builtin/clone.c:759,1
    - Dst: git_default_config
      Src: /src/git/builtin/clone.c:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - k
    - v
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 747
    functionDepth: 6
    functionLinenumber: 747
    functionLinenumberEnd: 762
    functionName: git_clone_config
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - git_config_bool
    - strcmp
    - git_default_config
    - free
    - config_error_nonbool
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int git_clone_config(const char *k, const char *v,\n\t\t\t    const
      struct config_context *ctx, void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_clone_config
      Src: /src/git/builtin/clone.c:773,1
    - Dst: repo_config_set_multivar_gently
      Src: /src/git/builtin/clone.c:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - key
    - value
    - ctx
    - data
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 764
    functionDepth: 12
    functionLinenumber: 764
    functionLinenumberEnd: 780
    functionName: write_one_config
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - git_clone_config
    - repo_config_set_multivar_gently
    linkageType: ''
    returnType: int
    signature: "int write_one_config(const char *key, const char *value,\n\t\t\t    const
      struct config_context *ctx,\n\t\t\t    void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: git_config_parse_parameter
      Src: /src/git/builtin/clone.c:787,1
    - Dst: die
      Src: /src/git/builtin/clone.c:789,1
    - Dst: _
      Src: /src/git/builtin/clone.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 782
    functionDepth: 12
    functionLinenumber: 782
    functionLinenumberEnd: 791
    functionName: write_config
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - die
    - git_config_parse_parameter
    - _
    linkageType: ''
    returnType: void
    signature: void write_config(struct string_list *config)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/clone.c:804,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:805,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:808,1
    - Dst: skip_prefix
      Src: /src/git/builtin/clone.c:812,1
    - Dst: BUG
      Src: /src/git/builtin/clone.c:813,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:815,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:825,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:829,1
    - Dst: repo_config_set_multivar
      Src: /src/git/builtin/clone.c:830,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/clone.c:831,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:834,1
    - Dst: repo_config_set
      Src: /src/git/builtin/clone.c:835,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/clone.c:836,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:841,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:842,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - src_ref_prefix
    - our_head_points_at
    - remote_head_points_at
    - branch_top
    argTypes:
    - char*
    - struct ref*
    - struct ref*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 793
    functionDepth: 13
    functionLinenumber: 793
    functionLinenumberEnd: 843
    functionName: write_refspec_config
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - repo_config_set_multivar
    - strbuf_release
    - strbuf_reset
    - repo_config_set
    - strbuf_addf
    - starts_with
    - skip_prefix
    - BUG
    linkageType: ''
    returnType: void
    signature: "void write_refspec_config(const char *src_ref_prefix,\n\t\tconst struct
      ref *our_head_points_at,\n\t\tconst struct ref *remote_head_points_at,\n\t\tstruct
      strbuf *branch_top)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/builtin/clone.c:847,1
    - Dst: access
      Src: /src/git/builtin/clone.c:849,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/clone.c:854,1
    - Dst: run_command
      Src: /src/git/builtin/clone.c:855,1
    - Dst: die
      Src: /src/git/builtin/clone.c:856,1
    - Dst: _
      Src: /src/git/builtin/clone.c:856,1
    - Dst: unlink
      Src: /src/git/builtin/clone.c:857,1
    - Dst: die_errno
      Src: /src/git/builtin/clone.c:858,1
    - Dst: _
      Src: /src/git/builtin/clone.c:858,1
    - Dst: free
      Src: /src/git/builtin/clone.c:860,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 845
    functionDepth: 8
    functionLinenumber: 845
    functionLinenumberEnd: 861
    functionName: dissociate_from_references
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    - die
    - run_command
    - access
    - strvec_pushl
    - die_errno
    - _
    - free
    - unlink
    linkageType: ''
    returnType: void
    signature: void dissociate_from_references(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/git/builtin/clone.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 867
    functionName: path_exists
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 1
    functionsReached:
    - stat
    linkageType: ''
    returnType: int
    signature: int path_exists(const char *path)
  - BBCount: 105
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSITY
      Src: /src/git/builtin/clone.c:923,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:924,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:925,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:926,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:927,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:928,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:929,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:930,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:930,1
    - Dst: OPT_HIDDEN_BOOL
      Src: /src/git/builtin/clone.c:931,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:932,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:933,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:934,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:935,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:936,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:937,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:938,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:939,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:940,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:945,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:946,1
    - Dst: OPT_ALIAS
      Src: /src/git/builtin/clone.c:951,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/clone.c:952,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:953,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/clone.c:954,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:954,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:955,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/clone.c:956,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:956,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:957,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/clone.c:958,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:959,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:959,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:960,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:961,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/clone.c:962,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:962,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:963,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/clone.c:964,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:964,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:965,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/clone.c:966,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:966,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:967,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/clone.c:968,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:968,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:969,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/clone.c:970,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:970,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:971,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/clone.c:972,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:972,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:973,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/clone.c:974,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:974,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:975,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:976,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:977,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:978,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:979,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:980,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:981,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/clone.c:982,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:982,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:983,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/clone.c:984,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:984,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:985,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/clone.c:986,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:986,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:987,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/clone.c:988,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:989,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:989,1
    - Dst: OPT_IPVERSION
      Src: /src/git/builtin/clone.c:990,1
    - Dst: OPT_PARSE_LIST_OBJECTS_FILTER
      Src: /src/git/builtin/clone.c:991,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:992,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:993,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:994,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:995,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/clone.c:996,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:997,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/clone.c:998,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:999,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:999,1
    - Dst: OPT_END
      Src: /src/git/builtin/clone.c:1000,1
    - Dst: N_
      Src: /src/git/builtin/clone.c:1004,1
    - Dst: packet_trace_identity
      Src: /src/git/builtin/clone.c:1010,1
    - Dst: repo_config
      Src: /src/git/builtin/clone.c:1012,1
    - Dst: parse_options
      Src: /src/git/builtin/clone.c:1014,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/clone.c:1018,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1018,1
    - Dst: usage_msg_opt
      Src: /src/git/builtin/clone.c:1022,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1022,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/builtin/clone.c:1031,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1033,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1033,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1043,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1043,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1048,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1048,1
    - Dst: get_repo_path
      Src: /src/git/builtin/clone.c:1054,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/clone.c:1056,1
    - Dst: absolute_pathdup
      Src: /src/git/builtin/clone.c:1057,1
    - Dst: strchr
      Src: /src/git/builtin/clone.c:1058,1
    - Dst: transport_anonymize_url
      Src: /src/git/builtin/clone.c:1060,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1062,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1062,1
    - Dst: atoi
      Src: /src/git/builtin/clone.c:1065,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1066,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1066,1
    - Dst: xstrdup
      Src: /src/git/builtin/clone.c:1069,1
    - Dst: git_url_basename
      Src: /src/git/builtin/clone.c:1071,1
    - Dst: strip_dir_trailing_slashes
      Src: /src/git/builtin/clone.c:1072,1
    - Dst: path_exists
      Src: /src/git/builtin/clone.c:1074,1
    - Dst: is_empty_dir
      Src: /src/git/builtin/clone.c:1075,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1076,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1076,1
    - Dst: path_exists
      Src: /src/git/builtin/clone.c:1080,1
    - Dst: is_empty_dir
      Src: /src/git/builtin/clone.c:1081,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1082,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1082,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:1087,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1089,1
    - Dst: getenv
      Src: /src/git/builtin/clone.c:1094,1
    - Dst: path_exists
      Src: /src/git/builtin/clone.c:1095,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1096,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1096,1
    - Dst: xstrdup
      Src: /src/git/builtin/clone.c:1100,1
    - Dst: mkpathdup
      Src: /src/git/builtin/clone.c:1103,1
    - Dst: atexit
      Src: /src/git/builtin/clone.c:1106,1
    - Dst: sigchain_push_common
      Src: /src/git/builtin/clone.c:1107,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/clone.c:1110,1
    - Dst: die_errno
      Src: /src/git/builtin/clone.c:1111,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1111,1
    - Dst: mkdir
      Src: /src/git/builtin/clone.c:1115,1
    - Dst: die_errno
      Src: /src/git/builtin/clone.c:1116,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1116,1
    - Dst: set_git_work_tree
      Src: /src/git/builtin/clone.c:1119,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/clone.c:1131,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1132,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1132,1
    - Dst: fprintf
      Src: /src/git/builtin/clone.c:1136,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1136,1
    - Dst: fprintf
      Src: /src/git/builtin/clone.c:1138,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1138,1
    - Dst: string_list_sort_u
      Src: /src/git/builtin/clone.c:1147,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/clone.c:1153,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:1154,1
    - Dst: string_list_append
      Src: /src/git/builtin/clone.c:1156,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/clone.c:1157,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/clone.c:1160,1
    - Dst: string_list_append
      Src: /src/git/builtin/clone.c:1162,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1166,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1166,1
    - Dst: string_list_append
      Src: /src/git/builtin/clone.c:1169,1
    - Dst: string_list_append
      Src: /src/git/builtin/clone.c:1171,1
    - Dst: string_list_append
      Src: /src/git/builtin/clone.c:1174,1
    - Dst: string_list_append
      Src: /src/git/builtin/clone.c:1176,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:1180,1
    - Dst: init_db
      Src: /src/git/builtin/clone.c:1189,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1194,1
    - Dst: initialize_repository_version
      Src: /src/git/builtin/clone.c:1232,1
    - Dst: refs_create_refdir_stubs
      Src: /src/git/builtin/clone.c:1235,1
    - Dst: write_config
      Src: /src/git/builtin/clone.c:1241,1
    - Dst: repo_config
      Src: /src/git/builtin/clone.c:1247,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1273,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1273,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1276,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1276,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1284,1
    - Dst: xstrdup
      Src: /src/git/builtin/clone.c:1285,1
    - Dst: xstrdup
      Src: /src/git/builtin/clone.c:1289,1
    - Dst: valid_remote_name
      Src: /src/git/builtin/clone.c:1291,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1292,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1292,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/clone.c:1297,1
    - Dst: repo_config_set
      Src: /src/git/builtin/clone.c:1299,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:1301,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:1304,1
    - Dst: repo_config_set
      Src: /src/git/builtin/clone.c:1305,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/clone.c:1306,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/clone.c:1309,1
    - Dst: repo_config_set
      Src: /src/git/builtin/clone.c:1310,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/clone.c:1311,1
    - Dst: setup_reference
      Src: /src/git/builtin/clone.c:1315,1
    - Dst: remote_get_early
      Src: /src/git/builtin/clone.c:1317,1
    - Dst: refspec_appendf
      Src: /src/git/builtin/clone.c:1320,1
    - Dst: get_repo_path
      Src: /src/git/builtin/clone.c:1323,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1327,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1327,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1329,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1329,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1331,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1331,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1333,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1333,1
    - Dst: access
      Src: /src/git/builtin/clone.c:1334,1
    - Dst: mkpath
      Src: /src/git/builtin/clone.c:1334,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1336,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1336,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1338,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1338,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1343,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1343,1
    - Dst: transport_get
      Src: /src/git/builtin/clone.c:1345,1
    - Dst: transport_set_verbosity
      Src: /src/git/builtin/clone.c:1346,1
    - Dst: read_bundle_header
      Src: /src/git/builtin/clone.c:1352,1
    - Dst: close
      Src: /src/git/builtin/clone.c:1356,1
    - Dst: bundle_header_release
      Src: /src/git/builtin/clone.c:1357,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1359,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1359,1
    - Dst: transport_set_option
      Src: /src/git/builtin/clone.c:1362,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/clone.c:1364,1
    - Dst: die_for_incompatible_opt2
      Src: /src/git/builtin/clone.c:1366,1
    - Dst: transport_set_option
      Src: /src/git/builtin/clone.c:1370,1
    - Dst: transport_set_option
      Src: /src/git/builtin/clone.c:1372,1
    - Dst: transport_set_option
      Src: /src/git/builtin/clone.c:1375,1
    - Dst: transport_set_option
      Src: /src/git/builtin/clone.c:1378,1
    - Dst: transport_set_option
      Src: /src/git/builtin/clone.c:1381,1
    - Dst: transport_set_option
      Src: /src/git/builtin/clone.c:1388,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/builtin/clone.c:1396,1
    - Dst: transport_set_option
      Src: /src/git/builtin/clone.c:1397,1
    - Dst: transport_set_option
      Src: /src/git/builtin/clone.c:1399,1
    - Dst: refspec_append
      Src: /src/git/builtin/clone.c:1411,1
    - Dst: refspec_append
      Src: /src/git/builtin/clone.c:1419,1
    - Dst: refspec_ref_prefixes
      Src: /src/git/builtin/clone.c:1421,1
    - Dst: expand_ref_prefix
      Src: /src/git/builtin/clone.c:1424,1
    - Dst: strvec_push
      Src: /src/git/builtin/clone.c:1436,1
    - Dst: transport_get_remote_refs
      Src: /src/git/builtin/clone.c:1438,1
    - Dst: hash_algo_by_ptr
      Src: /src/git/builtin/clone.c:1444,1
    - Dst: transport_get_hash_algo
      Src: /src/git/builtin/clone.c:1444,1
    - Dst: initialize_repository_version
      Src: /src/git/builtin/clone.c:1445,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/clone.c:1446,1
    - Dst: create_reference_database
      Src: /src/git/builtin/clone.c:1447,1
    - Dst: repo_clear
      Src: /src/git/builtin/clone.c:1463,1
    - Dst: repo_init
      Src: /src/git/builtin/clone.c:1466,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1467,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1467,1
    - Dst: fetch_bundle_uri
      Src: /src/git/builtin/clone.c:1468,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1469,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1469,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/clone.c:1472,1
    - Dst: remote_state_clear
      Src: /src/git/builtin/clone.c:1474,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1475,1
    - Dst: transport_get_remote_bundle_uri
      Src: /src/git/builtin/clone.c:1482,1
    - Dst: hashmap_get_size
      Src: /src/git/builtin/clone.c:1485,1
    - Dst: repo_clear
      Src: /src/git/builtin/clone.c:1494,1
    - Dst: repo_init
      Src: /src/git/builtin/clone.c:1497,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1498,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1498,1
    - Dst: fetch_bundle_list
      Src: /src/git/builtin/clone.c:1499,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1501,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1501,1
    - Dst: remote_state_clear
      Src: /src/git/builtin/clone.c:1503,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1504,1
    - Dst: clear_bundle_list
      Src: /src/git/builtin/clone.c:1507,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/clone.c:1508,1
    - Dst: wanted_peer_refs
      Src: /src/git/builtin/clone.c:1513,1
    - Dst: is_null_oid
      Src: /src/git/builtin/clone.c:1527,1
    - Dst: transport_fetch_refs
      Src: /src/git/builtin/clone.c:1533,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1534,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1534,1
    - Dst: find_ref_by_name
      Src: /src/git/builtin/clone.c:1538,1
    - Dst: guess_remote_head
      Src: /src/git/builtin/clone.c:1539,1
    - Dst: find_remote_branch
      Src: /src/git/builtin/clone.c:1543,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1545,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1545,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1550,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1550,1
    - Dst: warning
      Src: /src/git/builtin/clone.c:1561,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1561,1
    - Dst: skip_prefix
      Src: /src/git/builtin/clone.c:1566,1
    - Dst: xstrdup
      Src: /src/git/builtin/clone.c:1568,1
    - Dst: repo_default_branch_name
      Src: /src/git/builtin/clone.c:1570,1
    - Dst: xstrfmt
      Src: /src/git/builtin/clone.c:1571,1
    - Dst: find_remote_branch
      Src: /src/git/builtin/clone.c:1585,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1587,1
    - Dst: write_refspec_config
      Src: /src/git/builtin/clone.c:1591,1
    - Dst: partial_clone_register
      Src: /src/git/builtin/clone.c:1595,1
    - Dst: clone_local
      Src: /src/git/builtin/clone.c:1598,1
    - Dst: transport_fetch_refs
      Src: /src/git/builtin/clone.c:1600,1
    - Dst: die
      Src: /src/git/builtin/clone.c:1601,1
    - Dst: _
      Src: /src/git/builtin/clone.c:1601,1
    - Dst: update_remote_refs
      Src: /src/git/builtin/clone.c:1604,1
    - Dst: update_head
      Src: /src/git/builtin/clone.c:1608,1
    - Dst: transport_unlock_pack
      Src: /src/git/builtin/clone.c:1618,1
    - Dst: transport_disconnect
      Src: /src/git/builtin/clone.c:1619,1
    - Dst: odb_close
      Src: /src/git/builtin/clone.c:1622,1
    - Dst: dissociate_from_references
      Src: /src/git/builtin/clone.c:1623,1
    - Dst: git_sparse_checkout_init
      Src: /src/git/builtin/clone.c:1626,1
    - Dst: checkout
      Src: /src/git/builtin/clone.c:1630,1
    - Dst: list_objects_filter_release
      Src: /src/git/builtin/clone.c:1635,1
    - Dst: string_list_clear
      Src: /src/git/builtin/clone.c:1637,1
    - Dst: string_list_clear
      Src: /src/git/builtin/clone.c:1638,1
    - Dst: string_list_clear
      Src: /src/git/builtin/clone.c:1639,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1641,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:1642,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:1643,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:1644,1
    - Dst: strbuf_release
      Src: /src/git/builtin/clone.c:1645,1
    - Dst: free_refs
      Src: /src/git/builtin/clone.c:1646,1
    - Dst: free_refs
      Src: /src/git/builtin/clone.c:1647,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1648,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1649,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1650,1
    - Dst: free
      Src: /src/git/builtin/clone.c:1651,1
    - Dst: transport_ls_refs_options_release
      Src: /src/git/builtin/clone.c:1654,1
    CyclomaticComplexity: 131
    EdgeCount: 131
    ICount: 360
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repository
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 869
    functionDepth: 23
    functionLinenumber: 869
    functionLinenumberEnd: 1656
    functionName: cmd_clone
    functionSourceFile: /src/git/builtin/clone.c
    functionUses: 0
    functionsReached:
    - fetch_bundle_list
    - sigchain_push_common
    - transport_get_hash_algo
    - transport_get_remote_refs
    - OPT_BOOL
    - packet_trace_identity
    - is_null_oid
    - clear_bundle_list
    - transport_unlock_pack
    - OPT_ALIAS
    - strip_dir_trailing_slashes
    - find_remote_branch
    - setup_reference
    - git_sparse_checkout_init
    - transport_fetch_refs
    - mkpath
    - clone_local
    - absolute_pathdup
    - update_head
    - expand_list_objects_filter_spec
    - transport_set_verbosity
    - odb_close
    - atoi
    - safe_create_leading_directories_const
    - refspec_ref_prefixes
    - string_list_append
    - xstrdup
    - transport_get
    - transport_set_option
    - fetch_bundle_uri
    - repo_clear
    - OPT__VERBOSITY
    - repo_config_set_gently
    - fprintf
    - strvec_push
    - is_empty_dir
    - strbuf_addf
    - free
    - repo_config
    - path_exists
    - die
    - access
    - repo_default_branch_name
    - ref_storage_format_by_name
    - mkpathdup
    - OPT_HIDDEN_BOOL
    - OPT_INTEGER
    - atexit
    - string_list_clear
    - die_errno
    - N_
    - remote_state_clear
    - refspec_appendf
    - FREE_AND_NULL
    - skip_prefix
    - guess_remote_head
    - usage_msg_opt
    - refspec_append
    - update_remote_refs
    - getenv
    - OPT_PARSE_LIST_OBJECTS_FILTER
    - parse_options
    - for_each_string_list_item
    - valid_remote_name
    - repo_config_set
    - repo_init
    - read_bundle_header
    - hashmap_get_size
    - refs_create_refdir_stubs
    - repo_set_hash_algo
    - list_objects_filter_release
    - transport_anonymize_url
    - OPT_END
    - strbuf_release
    - expand_ref_prefix
    - set_git_work_tree
    - remote_get_early
    - OPT_IPVERSION
    - bundle_header_release
    - OPT_STRING_LIST
    - hash_algo_by_ptr
    - dissociate_from_references
    - write_config
    - transport_get_remote_bundle_uri
    - mkdir
    - _
    - xstrfmt
    - OPT_STRING
    - repo_config_get_bool
    - create_reference_database
    - close
    - init_db
    - write_refspec_config
    - strchr
    - checkout
    - find_ref_by_name
    - git_url_basename
    - die_for_incompatible_opt2
    - initialize_repository_version
    - wanted_peer_refs
    - strbuf_addstr
    - string_list_sort_u
    - transport_disconnect
    - warning
    - get_repo_path
    - strbuf_reset
    - partial_clone_register
    - transport_ls_refs_options_release
    - free_refs
    linkageType: ''
    returnType: int
    signature: "int cmd_clone(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repository UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rebase_parse_value
      Src: /src/git/builtin/pull.c:44,1
    - Dst: die
      Src: /src/git/builtin/pull.c:49,1
    - Dst: _
      Src: /src/git/builtin/pull.c:49,1
    - Dst: error
      Src: /src/git/builtin/pull.c:51,1
    - Dst: _
      Src: /src/git/builtin/pull.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - value
    - fatal
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: parse_config_rebase
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - error
    - die
    - rebase_parse_value
    - _
    linkageType: ''
    returnType: enum rebase_type
    signature: "enum rebase_type parse_config_rebase(const char *key, const char *value,\n\t\tint
      fatal)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_config_rebase
      Src: /src/git/builtin/pull.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: parse_opt_rebase
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - parse_config_rebase
    linkageType: ''
    returnType: int
    signature: int parse_opt_rebase(const struct option *opt, const char *arg, int
      unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:130,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - arr
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: argv_push_verbosity
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - strvec_push
    linkageType: ''
    returnType: void
    signature: void argv_push_verbosity(struct strvec *arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - arr
    argTypes:
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: argv_push_force
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - strvec_push
    linkageType: ''
    returnType: void
    signature: void argv_push_force(struct strvec *arr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addch
      Src: /src/git/builtin/pull.c:156,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/pull.c:157,1
    - Dst: setenv
      Src: /src/git/builtin/pull.c:160,1
    - Dst: strbuf_release
      Src: /src/git/builtin/pull.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: set_reflog_message
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - setenv
    - strbuf_release
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void set_reflog_message(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_value
      Src: /src/git/builtin/pull.c:175,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/pull.c:178,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:185,1
    - Dst: die
      Src: /src/git/builtin/pull.c:188,1
    - Dst: _
      Src: /src/git/builtin/pull.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 171
    functionDepth: 19
    functionLinenumber: 171
    functionLinenumberEnd: 189
    functionName: config_get_ff
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - die
    - repo_config_get_value
    - git_parse_maybe_bool
    - strcmp
    - _
    linkageType: ''
    returnType: char
    signature: char *config_get_ff(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: branch_get
      Src: /src/git/builtin/pull.c:200,1
    - Dst: xstrfmt
      Src: /src/git/builtin/pull.c:204,1
    - Dst: repo_config_get_value
      Src: /src/git/builtin/pull.c:206,1
    - Dst: parse_config_rebase
      Src: /src/git/builtin/pull.c:207,1
    - Dst: free
      Src: /src/git/builtin/pull.c:208,1
    - Dst: free
      Src: /src/git/builtin/pull.c:212,1
    - Dst: repo_config_get_value
      Src: /src/git/builtin/pull.c:215,1
    - Dst: parse_config_rebase
      Src: /src/git/builtin/pull.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - rebase_unspecified
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 19
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: config_get_rebase
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - repo_config_get_value
    - branch_get
    - xstrfmt
    - free
    - parse_config_rebase
    linkageType: ''
    returnType: enum rebase_type
    signature: enum rebase_type config_get_rebase(int *rebase_unspecified)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:229,1
    - Dst: git_config_bool
      Src: /src/git/builtin/pull.c:238,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:240,1
    - Dst: git_config_bool
      Src: /src/git/builtin/pull.c:241,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:243,1
    - Dst: git_config_bool
      Src: /src/git/builtin/pull.c:244,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:247,1
    - Dst: git_default_config
      Src: /src/git/builtin/pull.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 226
    functionDepth: 6
    functionLinenumber: 226
    functionLinenumberEnd: 252
    functionName: git_pull_config
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - git_default_config
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_pull_config(const char *var, const char *value,\n\t\t\t   const
      struct config_context *ctx, void *cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: git_path_fetch_head
      Src: /src/git/builtin/pull.c:260,1
    - Dst: xfopen
      Src: /src/git/builtin/pull.c:265,1
    - Dst: strbuf_getline_lf
      Src: /src/git/builtin/pull.c:266,1
    - Dst: parse_oid_hex
      Src: /src/git/builtin/pull.c:268,1
    - Dst: starts_with
      Src: /src/git/builtin/pull.c:270,1
    - Dst: oid_array_append
      Src: /src/git/builtin/pull.c:272,1
    - Dst: fclose
      Src: /src/git/builtin/pull.c:274,1
    - Dst: strbuf_release
      Src: /src/git/builtin/pull.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - merge_heads
    argTypes:
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 258
    functionDepth: 5
    functionLinenumber: 258
    functionLinenumberEnd: 276
    functionName: get_merge_heads
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - strbuf_getline_lf
    - oid_array_append
    - starts_with
    - parse_oid_hex
    - xfopen
    - git_path_fetch_head
    linkageType: ''
    returnType: void
    signature: void get_merge_heads(struct oid_array *merge_heads)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - remote
    - cb_data
    argTypes:
    - struct remote*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: get_only_remote
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_only_remote(struct remote *remote, void *cb_data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: branch_get
      Src: /src/git/builtin/pull.c:317,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:322,1
    - Dst: _
      Src: /src/git/builtin/pull.c:322,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:324,1
    - Dst: _
      Src: /src/git/builtin/pull.c:324,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:325,1
    - Dst: _
      Src: /src/git/builtin/pull.c:325,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:327,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:328,1
    - Dst: _
      Src: /src/git/builtin/pull.c:328,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:333,1
    - Dst: _
      Src: /src/git/builtin/pull.c:333,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:335,1
    - Dst: _
      Src: /src/git/builtin/pull.c:335,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:337,1
    - Dst: _
      Src: /src/git/builtin/pull.c:337,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:338,1
    - Dst: _
      Src: /src/git/builtin/pull.c:338,1
    - Dst: fprintf
      Src: /src/git/builtin/pull.c:339,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:340,1
    - Dst: _
      Src: /src/git/builtin/pull.c:340,1
    - Dst: _
      Src: /src/git/builtin/pull.c:340,1
    - Dst: fprintf
      Src: /src/git/builtin/pull.c:341,1
    - Dst: for_each_remote
      Src: /src/git/builtin/pull.c:345,1
    - Dst: _
      Src: /src/git/builtin/pull.c:346,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:348,1
    - Dst: _
      Src: /src/git/builtin/pull.c:348,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:350,1
    - Dst: _
      Src: /src/git/builtin/pull.c:350,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:352,1
    - Dst: _
      Src: /src/git/builtin/pull.c:352,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:353,1
    - Dst: _
      Src: /src/git/builtin/pull.c:353,1
    - Dst: fprintf
      Src: /src/git/builtin/pull.c:354,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:355,1
    - Dst: _
      Src: /src/git/builtin/pull.c:355,1
    - Dst: _
      Src: /src/git/builtin/pull.c:355,1
    - Dst: fprintf
      Src: /src/git/builtin/pull.c:356,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:357,1
    - Dst: _
      Src: /src/git/builtin/pull.c:357,1
    - Dst: fprintf
      Src: /src/git/builtin/pull.c:358,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:359,1
    - Dst: _
      Src: /src/git/builtin/pull.c:360,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/pull.c:362,1
    - Dst: _
      Src: /src/git/builtin/pull.c:362,1
    - Dst: exit
      Src: /src/git/builtin/pull.c:365,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - repo
    - refspecs
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 315
    functionDepth: 17
    functionLinenumber: 315
    functionLinenumberEnd: 366
    functionName: die_no_merge_candidates
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - fprintf_ln
    - for_each_remote
    - branch_get
    - exit
    - strcmp
    - fprintf
    - _
    linkageType: ''
    returnType: void
    signature: void die_no_merge_candidates(const char *repo, const char **refspecs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - argc
    - argv
    - repo
    - refspecs
    argTypes:
    - int
    - char**
    - char**
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 382
    functionName: parse_repo_refspecs
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void parse_repo_refspecs(int argc, const char **argv, const char **repo,\n\t\tconst
      char ***refspecs)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/pull.c:392,1
    - Dst: argv_push_verbosity
      Src: /src/git/builtin/pull.c:395,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:397,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:401,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:403,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:405,1
    - Dst: argv_push_force
      Src: /src/git/builtin/pull.c:406,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:408,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:410,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:414,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:417,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:420,1
    - Dst: BUG
      Src: /src/git/builtin/pull.c:423,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:426,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:428,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:430,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:432,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:434,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:436,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:438,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:440,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:442,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:444,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:446,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:448,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/pull.c:449,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:452,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/pull.c:453,1
    - Dst: BUG
      Src: /src/git/builtin/pull.c:455,1
    - Dst: run_command
      Src: /src/git/builtin/pull.c:458,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 2
    argNames:
    - repo
    - refspecs
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 388
    functionDepth: 8
    functionLinenumber: 388
    functionLinenumberEnd: 459
    functionName: run_fetch
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_command
    - strvec_pushv
    - strvec_pushl
    - argv_push_verbosity
    - argv_push_force
    - BUG
    linkageType: ''
    returnType: int
    signature: int run_fetch(const char *repo, const char **refspecs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit
      Src: /src/git/builtin/pull.c:470,1
    - Dst: die
      Src: /src/git/builtin/pull.c:472,1
    - Dst: _
      Src: /src/git/builtin/pull.c:472,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pull.c:473,1
    - Dst: verify_merge_signature
      Src: /src/git/builtin/pull.c:475,1
    - Dst: checkout_fast_forward
      Src: /src/git/builtin/pull.c:485,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/pull.c:490,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/pull.c:490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - merge_head
    - curr_head
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 464
    functionDepth: 15
    functionLinenumber: 464
    functionLinenumberEnd: 494
    functionName: pull_into_void
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - verify_merge_signature
    - checkout_fast_forward
    - lookup_commit
    - _
    - refs_update_ref
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int pull_into_void(const struct object_id *merge_head,\n\t\tconst
      struct object_id *curr_head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/pull.c:502,1
    - Dst: argv_push_verbosity
      Src: /src/git/builtin/pull.c:504,1
    - Dst: run_command
      Src: /src/git/builtin/pull.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 496
    functionDepth: 8
    functionLinenumber: 496
    functionLinenumberEnd: 507
    functionName: rebase_submodules
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - strvec_pushl
    - run_command
    - argv_push_verbosity
    linkageType: ''
    returnType: int
    signature: int rebase_submodules(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/pull.c:515,1
    - Dst: argv_push_verbosity
      Src: /src/git/builtin/pull.c:517,1
    - Dst: run_command
      Src: /src/git/builtin/pull.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 509
    functionDepth: 8
    functionLinenumber: 509
    functionLinenumberEnd: 520
    functionName: update_submodules
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 3
    functionsReached:
    - strvec_pushl
    - run_command
    - argv_push_verbosity
    linkageType: ''
    returnType: int
    signature: int update_submodules(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/pull.c:529,1
    - Dst: argv_push_verbosity
      Src: /src/git/builtin/pull.c:532,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:534,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:538,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:540,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:542,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:544,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:546,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:548,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/pull.c:550,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:552,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:554,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:556,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/pull.c:557,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/pull.c:558,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:560,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:562,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:564,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:566,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:568,1
    - Dst: run_command
      Src: /src/git/builtin/pull.c:570,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 525
    functionDepth: 8
    functionLinenumber: 525
    functionLinenumberEnd: 571
    functionName: run_merge
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_command
    - strvec_pushv
    - strvec_pushl
    - argv_push_verbosity
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int run_merge(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: remote_get
      Src: /src/git/builtin/pull.c:586,1
    - Dst: branch_get
      Src: /src/git/builtin/pull.c:590,1
    - Dst: remote_for_branch
      Src: /src/git/builtin/pull.c:594,1
    - Dst: assert
      Src: /src/git/builtin/pull.c:595,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:597,1
    - Dst: branch_get_upstream
      Src: /src/git/builtin/pull.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - remote
    argTypes:
    - char*
    assertStmts:
    - condition: (curr_branch_remote)
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/git/builtin/pull.c
    constantsTouched: []
    func_position:
      end: 601
      start: 580
    functionDepth: 17
    functionLinenumber: 580
    functionLinenumberEnd: 601
    functionName: get_upstream_branch
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - assert
    - remote_for_branch
    - branch_get
    - remote_get
    - strcmp
    - branch_get_upstream
    linkageType: ''
    returnType: char
    signature: char *get_upstream_branch(const char *remote)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: refspec_item_init_fetch
      Src: /src/git/builtin/pull.c:615,1
    - Dst: die
      Src: /src/git/builtin/pull.c:616,1
    - Dst: _
      Src: /src/git/builtin/pull.c:616,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:618,1
    - Dst: skip_prefix
      Src: /src/git/builtin/pull.c:620,1
    - Dst: skip_prefix
      Src: /src/git/builtin/pull.c:622,1
    - Dst: starts_with
      Src: /src/git/builtin/pull.c:624,1
    - Dst: starts_with
      Src: /src/git/builtin/pull.c:625,1
    - Dst: starts_with
      Src: /src/git/builtin/pull.c:626,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:630,1
    - Dst: mkpath
      Src: /src/git/builtin/pull.c:631,1
    - Dst: mkpath
      Src: /src/git/builtin/pull.c:633,1
    - Dst: refspec_item_clear
      Src: /src/git/builtin/pull.c:637,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - remote
    - refspec
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 609
    functionDepth: 7
    functionLinenumber: 609
    functionLinenumberEnd: 639
    functionName: get_tracking_branch
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - die
    - refspec_item_clear
    - starts_with
    - refspec_item_init_fetch
    - strcmp
    - mkpath
    - skip_prefix
    - _
    linkageType: ''
    returnType: char
    signature: char *get_tracking_branch(const char *remote, const char *refspec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: branch_get
      Src: /src/git/builtin/pull.c:655,1
    - Dst: get_tracking_branch
      Src: /src/git/builtin/pull.c:660,1
    - Dst: get_upstream_branch
      Src: /src/git/builtin/pull.c:662,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/pull.c:667,1
    - Dst: capture_command
      Src: /src/git/builtin/pull.c:673,1
    - Dst: get_oid_hex
      Src: /src/git/builtin/pull.c:677,1
    - Dst: strbuf_release
      Src: /src/git/builtin/pull.c:682,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - fork_point
    - repo
    - refspec
    argTypes:
    - struct object_id*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 646
    functionDepth: 18
    functionLinenumber: 646
    functionLinenumberEnd: 684
    functionName: get_rebase_fork_point
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_oid_hex
    - branch_get
    - strvec_pushl
    - capture_command
    - get_tracking_branch
    - get_upstream_branch
    linkageType: ''
    returnType: int
    signature: "int get_rebase_fork_point(struct object_id *fork_point, const char
      *repo,\n\t\tconst char *refspec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/builtin/pull.c:697,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/pull.c:697,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/pull.c:699,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/pull.c:699,1
    - Dst: is_null_oid
      Src: /src/git/builtin/pull.c:701,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/pull.c:702,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/pull.c:702,1
    - Dst: get_octopus_merge_bases
      Src: /src/git/builtin/pull.c:705,1
    - Dst: exit
      Src: /src/git/builtin/pull.c:706,1
    - Dst: commit_list_free
      Src: /src/git/builtin/pull.c:707,1
    - Dst: reduce_heads_replace
      Src: /src/git/builtin/pull.c:708,1
    - Dst: oidcpy
      Src: /src/git/builtin/pull.c:713,1
    - Dst: commit_list_free
      Src: /src/git/builtin/pull.c:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - merge_base
    - curr_head
    - merge_head
    - fork_point
    argTypes:
    - struct object_id*
    - struct object_id*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 690
    functionDepth: 25
    functionLinenumber: 690
    functionLinenumberEnd: 716
    functionName: get_octopus_merge_base
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - reduce_heads_replace
    - lookup_commit_reference
    - oidcpy
    - exit
    - is_null_oid
    - get_octopus_merge_bases
    - commit_list_free
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: "int get_octopus_merge_base(struct object_id *merge_base,\n\t\tconst
      struct object_id *curr_head,\n\t\tconst struct object_id *merge_head,\n\t\tconst
      struct object_id *fork_point)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_octopus_merge_base
      Src: /src/git/builtin/pull.c:731,1
    - Dst: is_null_oid
      Src: /src/git/builtin/pull.c:732,1
    - Dst: oideq
      Src: /src/git/builtin/pull.c:732,1
    - Dst: is_null_oid
      Src: /src/git/builtin/pull.c:735,1
    - Dst: oidcpy
      Src: /src/git/builtin/pull.c:736,1
    - Dst: oidcpy
      Src: /src/git/builtin/pull.c:738,1
    - Dst: oidcpy
      Src: /src/git/builtin/pull.c:740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - newbase
    - upstream
    - curr_head
    - merge_head
    - fork_point
    argTypes:
    - struct object_id*
    - struct object_id*
    - struct object_id*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 723
    functionDepth: 26
    functionLinenumber: 723
    functionLinenumberEnd: 743
    functionName: get_rebase_newbase_and_upstream
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - oidcpy
    - is_null_oid
    - oideq
    - get_octopus_merge_base
    linkageType: ''
    returnType: int
    signature: "int get_rebase_newbase_and_upstream(struct object_id *newbase,\n\t\tstruct
      object_id *upstream,\n\t\tconst struct object_id *curr_head,\n\t\tconst struct
      object_id *merge_head,\n\t\tconst struct object_id *fork_point)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:755,1
    - Dst: argv_push_verbosity
      Src: /src/git/builtin/pull.c:758,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:762,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:764,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:766,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/pull.c:767,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/pull.c:768,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:770,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:772,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:774,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:776,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:778,1
    - Dst: warning
      Src: /src/git/builtin/pull.c:779,1
    - Dst: _
      Src: /src/git/builtin/pull.c:779,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:781,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:782,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pull.c:782,1
    - Dst: strvec_push
      Src: /src/git/builtin/pull.c:784,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pull.c:784,1
    - Dst: run_command
      Src: /src/git/builtin/pull.c:787,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - newbase
    - upstream
    argTypes:
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 750
    functionDepth: 8
    functionLinenumber: 750
    functionLinenumberEnd: 788
    functionName: run_rebase
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - oid_to_hex
    - run_command
    - strvec_pushv
    - argv_push_verbosity
    - strcmp
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: "int run_rebase(const struct object_id *newbase,\n\t\tconst struct
      object_id *upstream)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/pull.c:802,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/pull.c:803,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/pull.c:804,1
    - Dst: repo_is_descendant_of
      Src: /src/git/builtin/pull.c:805,1
    - Dst: commit_list_free
      Src: /src/git/builtin/pull.c:806,1
    - Dst: exit
      Src: /src/git/builtin/pull.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - orig_head
    - merge_heads
    argTypes:
    - struct object_id*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 790
    functionDepth: 16
    functionLinenumber: 790
    functionLinenumberEnd: 810
    functionName: get_can_ff
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - exit
    - commit_list_free
    - repo_is_descendant_of
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: "int get_can_ff(struct object_id *orig_head,\n\t\t      struct oid_array
      *merge_heads)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/pull.c:822,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/pull.c:828,1
    - Dst: commit_list_insert
      Src: /src/git/builtin/pull.c:829,1
    - Dst: repo_is_descendant_of
      Src: /src/git/builtin/pull.c:830,1
    - Dst: commit_list_free
      Src: /src/git/builtin/pull.c:831,1
    - Dst: exit
      Src: /src/git/builtin/pull.c:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - orig_head
    - merge_heads
    argTypes:
    - struct object_id*
    - struct oid_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 817
    functionDepth: 16
    functionLinenumber: 817
    functionLinenumberEnd: 838
    functionName: already_up_to_date
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference
    - exit
    - commit_list_free
    - repo_is_descendant_of
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: "int already_up_to_date(struct object_id *orig_head,\n\t\t\t      struct
      oid_array *merge_heads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: advise
      Src: /src/git/builtin/pull.c:842,1
    - Dst: _
      Src: /src/git/builtin/pull.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 840
    functionDepth: 5
    functionLinenumber: 840
    functionLinenumberEnd: 854
    functionName: show_advice_pull_non_ff
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - advise
    - _
    linkageType: ''
    returnType: void
    signature: void show_advice_pull_non_ff(void)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSITY
      Src: /src/git/builtin/pull.c:871,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:872,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:873,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/pull.c:875,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:876,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:877,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/pull.c:881,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:881,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/pull.c:882,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:884,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:886,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:887,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:889,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:890,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:892,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:893,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:895,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:896,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:898,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:898,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:899,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:901,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:902,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:904,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:905,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:907,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:908,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:910,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:911,1
    - Dst: OPT_CLEANUP
      Src: /src/git/builtin/pull.c:913,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:914,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:915,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:917,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:918,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:920,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:921,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:923,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:924,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pull.c:926,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:927,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/pull.c:928,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:928,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:929,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/pull.c:931,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:932,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:933,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:935,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:935,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:936,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/pull.c:938,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:940,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/pull.c:943,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:943,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:944,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:945,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:947,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:948,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:950,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:950,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:951,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/pull.c:953,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:953,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:954,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:955,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:957,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:958,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:960,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:960,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:961,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pull.c:963,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:964,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:965,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:966,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:968,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:968,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:969,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/pull.c:971,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:971,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:972,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/pull.c:974,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:974,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:975,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/pull.c:977,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:977,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:978,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:980,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:981,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:983,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:984,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:986,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:986,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:987,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/pull.c:989,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:990,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:991,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:993,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:994,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:996,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:997,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/pull.c:999,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:999,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:1000,1
    - Dst: OPT_ALIAS
      Src: /src/git/builtin/pull.c:1002,1
    - Dst: OPT_PASSTHRU_ARGV
      Src: /src/git/builtin/pull.c:1003,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:1003,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:1004,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/pull.c:1006,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:1007,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/pull.c:1008,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:1009,1
    - Dst: OPT_END
      Src: /src/git/builtin/pull.c:1012,1
    - Dst: getenv
      Src: /src/git/builtin/pull.c:1015,1
    - Dst: set_reflog_message
      Src: /src/git/builtin/pull.c:1016,1
    - Dst: repo_config
      Src: /src/git/builtin/pull.c:1018,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/pull.c:1020,1
    - Dst: parse_options
      Src: /src/git/builtin/pull.c:1024,1
    - Dst: get_cleanup_mode
      Src: /src/git/builtin/pull.c:1036,1
    - Dst: parse_repo_refspecs
      Src: /src/git/builtin/pull.c:1038,1
    - Dst: xstrdup_or_null
      Src: /src/git/builtin/pull.c:1041,1
    - Dst: config_get_ff
      Src: /src/git/builtin/pull.c:1041,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:1053,1
    - Dst: free
      Src: /src/git/builtin/pull.c:1054,1
    - Dst: xstrdup
      Src: /src/git/builtin/pull.c:1055,1
    - Dst: config_get_rebase
      Src: /src/git/builtin/pull.c:1060,1
    - Dst: repo_read_index_unmerged
      Src: /src/git/builtin/pull.c:1062,1
    - Dst: die_resolve_conflict
      Src: /src/git/builtin/pull.c:1063,1
    - Dst: file_exists
      Src: /src/git/builtin/pull.c:1065,1
    - Dst: git_path_merge_head
      Src: /src/git/builtin/pull.c:1065,1
    - Dst: die_conclude_merge
      Src: /src/git/builtin/pull.c:1066,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/pull.c:1068,1
    - Dst: oidclr
      Src: /src/git/builtin/pull.c:1069,1
    - Dst: is_null_oid
      Src: /src/git/builtin/pull.c:1075,1
    - Dst: is_index_unborn
      Src: /src/git/builtin/pull.c:1075,1
    - Dst: die
      Src: /src/git/builtin/pull.c:1076,1
    - Dst: _
      Src: /src/git/builtin/pull.c:1076,1
    - Dst: require_clean_work_tree
      Src: /src/git/builtin/pull.c:1079,1
    - Dst: N_
      Src: /src/git/builtin/pull.c:1080,1
    - Dst: _
      Src: /src/git/builtin/pull.c:1081,1
    - Dst: get_rebase_fork_point
      Src: /src/git/builtin/pull.c:1083,1
    - Dst: oidclr
      Src: /src/git/builtin/pull.c:1084,1
    - Dst: run_fetch
      Src: /src/git/builtin/pull.c:1087,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/pull.c:1093,1
    - Dst: oidclr
      Src: /src/git/builtin/pull.c:1094,1
    - Dst: is_null_oid
      Src: /src/git/builtin/pull.c:1096,1
    - Dst: is_null_oid
      Src: /src/git/builtin/pull.c:1096,1
    - Dst: oideq
      Src: /src/git/builtin/pull.c:1097,1
    - Dst: warning
      Src: /src/git/builtin/pull.c:1106,1
    - Dst: _
      Src: /src/git/builtin/pull.c:1106,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pull.c:1108,1
    - Dst: checkout_fast_forward
      Src: /src/git/builtin/pull.c:1110,1
    - Dst: die
      Src: /src/git/builtin/pull.c:1112,1
    - Dst: _
      Src: /src/git/builtin/pull.c:1112,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/pull.c:1117,1
    - Dst: get_merge_heads
      Src: /src/git/builtin/pull.c:1120,1
    - Dst: die_no_merge_candidates
      Src: /src/git/builtin/pull.c:1123,1
    - Dst: is_null_oid
      Src: /src/git/builtin/pull.c:1125,1
    - Dst: die
      Src: /src/git/builtin/pull.c:1127,1
    - Dst: _
      Src: /src/git/builtin/pull.c:1127,1
    - Dst: pull_into_void
      Src: /src/git/builtin/pull.c:1128,1
    - Dst: die
      Src: /src/git/builtin/pull.c:1133,1
    - Dst: _
      Src: /src/git/builtin/pull.c:1133,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:1134,1
    - Dst: die
      Src: /src/git/builtin/pull.c:1135,1
    - Dst: _
      Src: /src/git/builtin/pull.c:1135,1
    - Dst: get_can_ff
      Src: /src/git/builtin/pull.c:1138,1
    - Dst: already_up_to_date
      Src: /src/git/builtin/pull.c:1139,1
    - Dst: strcmp
      Src: /src/git/builtin/pull.c:1142,1
    - Dst: die_ff_impossible
      Src: /src/git/builtin/pull.c:1144,1
    - Dst: show_advice_pull_non_ff
      Src: /src/git/builtin/pull.c:1149,1
    - Dst: die
      Src: /src/git/builtin/pull.c:1150,1
    - Dst: _
      Src: /src/git/builtin/pull.c:1150,1
    - Dst: get_rebase_newbase_and_upstream
      Src: /src/git/builtin/pull.c:1156,1
    - Dst: submodule_touches_in_range
      Src: /src/git/builtin/pull.c:1161,1
    - Dst: die
      Src: /src/git/builtin/pull.c:1162,1
    - Dst: _
      Src: /src/git/builtin/pull.c:1162,1
    - Dst: free
      Src: /src/git/builtin/pull.c:1166,1
    - Dst: xstrdup
      Src: /src/git/builtin/pull.c:1167,1
    - Dst: run_merge
      Src: /src/git/builtin/pull.c:1168,1
    - Dst: run_rebase
      Src: /src/git/builtin/pull.c:1170,1
    - Dst: rebase_submodules
      Src: /src/git/builtin/pull.c:1175,1
    - Dst: run_merge
      Src: /src/git/builtin/pull.c:1179,1
    - Dst: update_submodules
      Src: /src/git/builtin/pull.c:1182,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/pull.c:1187,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 105
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repository
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 856
    functionDepth: 27
    functionLinenumber: 856
    functionLinenumberEnd: 1189
    functionName: cmd_pull
    functionSourceFile: /src/git/builtin/pull.c
    functionUses: 0
    functionsReached:
    - parse_options
    - die_resolve_conflict
    - repo_get_oid
    - OPT_BOOL
    - set_reflog_message
    - config_get_ff
    - git_path_merge_head
    - is_null_oid
    - run_rebase
    - oidclr
    - strcmp
    - free
    - file_exists
    - repo_config
    - already_up_to_date
    - OPT_ALIAS
    - OPT_END
    - xstrdup_or_null
    - OPT__FORCE
    - die
    - OPT_GROUP
    - die_no_merge_candidates
    - get_rebase_fork_point
    - oid_array_clear
    - OPT_PASSTHRU_ARGV
    - submodule_touches_in_range
    - require_clean_work_tree
    - pull_into_void
    - OPT_PASSTHRU
    - config_get_rebase
    - get_cleanup_mode
    - oid_to_hex
    - OPT_SET_INT
    - repo_read_index_unmerged
    - get_rebase_newbase_and_upstream
    - _
    - N_
    - die_ff_impossible
    - update_submodules
    - warning
    - xstrdup
    - OPT_CLEANUP
    - is_index_unborn
    - parse_repo_refspecs
    - checkout_fast_forward
    - get_merge_heads
    - get_can_ff
    - OPT_CALLBACK_F
    - prepare_repo_settings
    - die_conclude_merge
    - run_merge
    - rebase_submodules
    - run_fetch
    - getenv
    - OPT__VERBOSITY
    - show_advice_pull_non_ff
    - oideq
    linkageType: ''
    returnType: int
    signature: "int cmd_pull(int argc,\n\t     const char **argv,\n\t     const char
      *prefix,\n\t     struct repository *repository UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/builtin/grep.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: grep_lock
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void grep_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/builtin/grep.c:94,1
    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: grep_unlock
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void grep_unlock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grep_source_load_driver
      Src: /src/git/builtin/grep.c:113,1
    - Dst: grep_lock
      Src: /src/git/builtin/grep.c:115,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/grep.c:117,1
    - Dst: pthread_cond_wait
      Src: /src/git/builtin/grep.c:118,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/grep.c:123,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/grep.c:124,1
    - Dst: pthread_cond_signal
      Src: /src/git/builtin/grep.c:126,1
    - Dst: grep_unlock
      Src: /src/git/builtin/grep.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - opt
    - gs
    argTypes:
    - struct grep_opt*
    - struct grep_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: add_work
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - grep_source_load_driver
    - strbuf_reset
    - pthread_cond_signal
    - grep_unlock
    - grep_lock
    - pthread_cond_wait
    linkageType: ''
    returnType: void
    signature: void add_work(struct grep_opt *opt, struct grep_source *gs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grep_lock
      Src: /src/git/builtin/grep.c:134,1
    - Dst: pthread_cond_wait
      Src: /src/git/builtin/grep.c:136,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/grep.c:143,1
    - Dst: grep_unlock
      Src: /src/git/builtin/grep.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: get_work
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - grep_lock
    - pthread_cond_wait
    - grep_unlock
    linkageType: ''
    returnType: struct work_item
    signature: struct work_item *get_work(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: grep_lock
      Src: /src/git/builtin/grep.c:153,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/grep.c:157,1
    - Dst: write_or_die
      Src: /src/git/builtin/grep.c:173,1
    - Dst: grep_source_clear
      Src: /src/git/builtin/grep.c:175,1
    - Dst: pthread_cond_signal
      Src: /src/git/builtin/grep.c:179,1
    - Dst: pthread_cond_signal
      Src: /src/git/builtin/grep.c:182,1
    - Dst: grep_unlock
      Src: /src/git/builtin/grep.c:184,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct work_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 185
    functionName: work_done
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - write_or_die
    - grep_source_clear
    - pthread_cond_signal
    - grep_unlock
    - grep_lock
    linkageType: ''
    returnType: void
    signature: void work_done(struct work_item *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_clear
      Src: /src/git/builtin/grep.c:192,1
    - Dst: free
      Src: /src/git/builtin/grep.c:193,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/grep.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: free_repos
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - repo_clear
    - FREE_AND_NULL
    - free
    linkageType: ''
    returnType: void
    signature: void free_repos(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_work
      Src: /src/git/builtin/grep.c:206,1
    - Dst: grep_source
      Src: /src/git/builtin/grep.c:211,1
    - Dst: grep_source_clear_data
      Src: /src/git/builtin/grep.c:212,1
    - Dst: work_done
      Src: /src/git/builtin/grep.c:213,1
    - Dst: free_grep_patterns
      Src: /src/git/builtin/grep.c:215,1
    - Dst: free
      Src: /src/git/builtin/grep.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 200
    functionDepth: 11
    functionLinenumber: 200
    functionLinenumberEnd: 219
    functionName: run
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 11
    functionsReached:
    - grep_source_clear_data
    - get_work
    - grep_source
    - work_done
    - free
    - free_grep_patterns
    linkageType: ''
    returnType: void
    signature: void *run(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/builtin/grep.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - opt
    - buf
    - size
    argTypes:
    - struct grep_opt*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: strbuf_out
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void strbuf_out(struct grep_opt *opt, const void *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/git/builtin/grep.c:231,1
    - Dst: pthread_mutex_init
      Src: /src/git/builtin/grep.c:232,1
    - Dst: pthread_cond_init
      Src: /src/git/builtin/grep.c:233,1
    - Dst: pthread_cond_init
      Src: /src/git/builtin/grep.c:234,1
    - Dst: pthread_cond_init
      Src: /src/git/builtin/grep.c:235,1
    - Dst: enable_obj_read_lock
      Src: /src/git/builtin/grep.c:237,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/grep.c:239,1
    - Dst: strbuf_init
      Src: /src/git/builtin/grep.c:240,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/grep.c:243,1
    - Dst: grep_opt_dup
      Src: /src/git/builtin/grep.c:246,1
    - Dst: compile_grep_patterns
      Src: /src/git/builtin/grep.c:248,1
    - Dst: pthread_create
      Src: /src/git/builtin/grep.c:249,1
    - Dst: die
      Src: /src/git/builtin/grep.c:252,1
    - Dst: _
      Src: /src/git/builtin/grep.c:252,1
    - Dst: strerror
      Src: /src/git/builtin/grep.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct grep_opt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 227
    functionDepth: 14
    functionLinenumber: 227
    functionLinenumberEnd: 255
    functionName: start_threads
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - pthread_mutex_init
    - die
    - grep_opt_dup
    - pthread_cond_init
    - pthread_create
    - strerror
    - compile_grep_patterns
    - CALLOC_ARRAY
    - enable_obj_read_lock
    - strbuf_init
    - _
    linkageType: ''
    returnType: void
    signature: void start_threads(struct grep_opt *opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/grep.c:263,1
    - Dst: grep_lock
      Src: /src/git/builtin/grep.c:265,1
    - Dst: pthread_cond_wait
      Src: /src/git/builtin/grep.c:270,1
    - Dst: pthread_cond_broadcast
      Src: /src/git/builtin/grep.c:275,1
    - Dst: grep_unlock
      Src: /src/git/builtin/grep.c:276,1
    - Dst: pthread_join
      Src: /src/git/builtin/grep.c:280,1
    - Dst: free
      Src: /src/git/builtin/grep.c:284,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/grep.c:286,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/builtin/grep.c:287,1
    - Dst: pthread_cond_destroy
      Src: /src/git/builtin/grep.c:288,1
    - Dst: pthread_cond_destroy
      Src: /src/git/builtin/grep.c:289,1
    - Dst: pthread_cond_destroy
      Src: /src/git/builtin/grep.c:290,1
    - Dst: disable_obj_read_lock
      Src: /src/git/builtin/grep.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 295
    functionName: wait_all
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - pthread_cond_destroy
    - pthread_cond_broadcast
    - pthread_join
    - grep_unlock
    - pthread_mutex_destroy
    - disable_obj_read_lock
    - free
    - grep_lock
    - pthread_cond_wait
    - BUG
    linkageType: ''
    returnType: int
    signature: int wait_all(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: grep_config
      Src: /src/git/builtin/grep.c:300,1
    - Dst: git_color_config
      Src: /src/git/builtin/grep.c:302,1
    - Dst: git_default_config
      Src: /src/git/builtin/grep.c:304,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:307,1
    - Dst: git_config_int
      Src: /src/git/builtin/grep.c:308,1
    - Dst: die
      Src: /src/git/builtin/grep.c:310,1
    - Dst: _
      Src: /src/git/builtin/grep.c:310,1
    - Dst: warning
      Src: /src/git/builtin/grep.c:318,1
    - Dst: _
      Src: /src/git/builtin/grep.c:318,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:323,1
    - Dst: git_config_bool
      Src: /src/git/builtin/grep.c:324,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 297
    functionDepth: 7
    functionLinenumber: 297
    functionLinenumberEnd: 327
    functionName: grep_cmd_config
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - grep_config
    - git_config_int
    - git_color_config
    - die
    - git_config_bool
    - git_default_config
    - strcmp
    - warning
    - _
    linkageType: ''
    returnType: int
    signature: "int grep_cmd_config(const char *var, const char *value,\n\t\t\t   const
      struct config_context *ctx, void *cb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/grep.c:332,1
    - Dst: relative_path
      Src: /src/git/builtin/grep.c:338,1
    - Dst: strbuf_add
      Src: /src/git/builtin/grep.c:342,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/grep.c:344,1
    - Dst: strbuf_release
      Src: /src/git/builtin/grep.c:345,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/grep.c:347,1
    - Dst: quote_path
      Src: /src/git/builtin/grep.c:353,1
    - Dst: quote_c_style
      Src: /src/git/builtin/grep.c:355,1
    - Dst: strbuf_insert
      Src: /src/git/builtin/grep.c:358,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - opt
    - filename
    - tree_name_len
    - out
    argTypes:
    - struct grep_opt*
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 359
    functionName: grep_source_name
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - relative_path
    - strbuf_insert
    - quote_path
    - strbuf_addstr
    - quote_c_style
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void grep_source_name(struct grep_opt *opt, const char *filename,\n\t\t\t
      \    int tree_name_len, struct strbuf *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grep_source_name
      Src: /src/git/builtin/grep.c:368,1
    - Dst: grep_source_init_oid
      Src: /src/git/builtin/grep.c:369,1
    - Dst: strbuf_release
      Src: /src/git/builtin/grep.c:370,1
    - Dst: add_work
      Src: /src/git/builtin/grep.c:377,1
    - Dst: grep_source
      Src: /src/git/builtin/grep.c:382,1
    - Dst: grep_source_clear
      Src: /src/git/builtin/grep.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - opt
    - oid
    - filename
    - tree_name_len
    - path
    argTypes:
    - struct grep_opt*
    - struct object_id*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 361
    functionDepth: 11
    functionLinenumber: 361
    functionLinenumberEnd: 387
    functionName: grep_oid
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - add_work
    - grep_source
    - grep_source_clear
    - grep_source_name
    - grep_source_init_oid
    linkageType: ''
    returnType: int
    signature: "int grep_oid(struct grep_opt *opt, const struct object_id *oid,\n\t\t
      \    const char *filename, int tree_name_len,\n\t\t     const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grep_source_name
      Src: /src/git/builtin/grep.c:394,1
    - Dst: grep_source_init_file
      Src: /src/git/builtin/grep.c:395,1
    - Dst: strbuf_release
      Src: /src/git/builtin/grep.c:396,1
    - Dst: add_work
      Src: /src/git/builtin/grep.c:403,1
    - Dst: grep_source
      Src: /src/git/builtin/grep.c:408,1
    - Dst: grep_source_clear
      Src: /src/git/builtin/grep.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - opt
    - filename
    argTypes:
    - struct grep_opt*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 389
    functionDepth: 11
    functionLinenumber: 389
    functionLinenumberEnd: 413
    functionName: grep_file
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - add_work
    - grep_source
    - grep_source_clear
    - grep_source_name
    - grep_source_init_file
    linkageType: ''
    returnType: int
    signature: int grep_file(struct grep_opt *opt, const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/grep.c:421,1
    - Dst: xstrndup
      Src: /src/git/builtin/grep.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - data
    - len
    argTypes:
    - struct grep_opt*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 415
    functionDepth: 11
    functionLinenumber: 415
    functionLinenumberEnd: 422
    functionName: append_path
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - string_list_append_nodup
    - xstrndup
    linkageType: ''
    returnType: void
    signature: void append_path(struct grep_opt *opt, const void *data, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/grep.c:431,1
    - Dst: run_command
      Src: /src/git/builtin/grep.c:435,1
    - Dst: exit
      Src: /src/git/builtin/grep.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - opt
    - prefix
    argTypes:
    - struct grep_opt*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 8
    functionLinenumber: 424
    functionLinenumberEnd: 438
    functionName: run_pager
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - exit
    - run_command
    linkageType: ''
    returnType: void
    signature: void run_pager(struct grep_opt *opt, const char *prefix)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_submodule_active
      Src: /src/git/builtin/grep.c:456,1
    - Dst: xmalloc
      Src: /src/git/builtin/grep.c:459,1
    - Dst: repo_submodule_init
      Src: /src/git/builtin/grep.c:460,1
    - Dst: null_oid
      Src: /src/git/builtin/grep.c:460,1
    - Dst: free
      Src: /src/git/builtin/grep.c:461,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/grep.c:464,1
    - Dst: obj_read_lock
      Src: /src/git/builtin/grep.c:475,1
    - Dst: repo_read_gitmodules
      Src: /src/git/builtin/grep.c:503,1
    - Dst: odb_add_submodule_source_by_path
      Src: /src/git/builtin/grep.c:512,1
    - Dst: obj_read_unlock
      Src: /src/git/builtin/grep.c:514,1
    - Dst: memcpy
      Src: /src/git/builtin/grep.c:516,1
    - Dst: obj_read_lock
      Src: /src/git/builtin/grep.c:526,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/grep.c:527,1
    - Dst: obj_read_unlock
      Src: /src/git/builtin/grep.c:528,1
    - Dst: odb_read_object_peeled
      Src: /src/git/builtin/grep.c:529,1
    - Dst: die
      Src: /src/git/builtin/grep.c:531,1
    - Dst: _
      Src: /src/git/builtin/grep.c:531,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/grep.c:531,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/grep.c:533,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/grep.c:534,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/grep.c:536,1
    - Dst: grep_tree
      Src: /src/git/builtin/grep.c:537,1
    - Dst: strbuf_release
      Src: /src/git/builtin/grep.c:539,1
    - Dst: free
      Src: /src/git/builtin/grep.c:540,1
    - Dst: grep_cache
      Src: /src/git/builtin/grep.c:542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 6
    argNames:
    - opt
    - pathspec
    - oid
    - filename
    - path
    - cached
    argTypes:
    - struct grep_opt*
    - struct pathspec*
    - struct object_id*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 446
    functionDepth: 21
    functionLinenumber: 446
    functionLinenumberEnd: 546
    functionName: grep_submodule
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - repo_submodule_init
    - grep_cache
    - odb_read_object_info
    - xmalloc
    - free
    - strbuf_release
    - die
    - memcpy
    - obj_read_unlock
    - strbuf_addstr
    - grep_tree
    - is_submodule_active
    - oid_to_hex
    - _
    - init_tree_desc
    - odb_add_submodule_source_by_path
    - obj_read_lock
    - strbuf_addch
    - odb_read_object_peeled
    - ALLOC_GROW
    - null_oid
    - repo_read_gitmodules
    linkageType: ''
    returnType: int
    signature: "int grep_submodule(struct grep_opt *opt,\n\t\t\t  const struct pathspec
      *pathspec,\n\t\t\t  const struct object_id *oid,\n\t\t\t  const char *filename,
      const char *path, int cached)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/grep.c:557,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/grep.c:558,1
    - Dst: repo_read_index
      Src: /src/git/builtin/grep.c:561,1
    - Dst: die
      Src: /src/git/builtin/grep.c:562,1
    - Dst: _
      Src: /src/git/builtin/grep.c:562,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/grep.c:567,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/grep.c:570,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/grep.c:571,1
    - Dst: S_ISSPARSEDIR
      Src: /src/git/builtin/grep.c:572,1
    - Dst: odb_read_object
      Src: /src/git/builtin/grep.c:578,1
    - Dst: die
      Src: /src/git/builtin/grep.c:581,1
    - Dst: _
      Src: /src/git/builtin/grep.c:581,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/grep.c:581,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/grep.c:582,1
    - Dst: grep_tree
      Src: /src/git/builtin/grep.c:584,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/grep.c:585,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/grep.c:586,1
    - Dst: free
      Src: /src/git/builtin/grep.c:587,1
    - Dst: S_ISREG
      Src: /src/git/builtin/grep.c:588,1
    - Dst: match_pathspec
      Src: /src/git/builtin/grep.c:589,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/grep.c:590,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/grep.c:591,1
    - Dst: ce_stage
      Src: /src/git/builtin/grep.c:598,1
    - Dst: ce_intent_to_add
      Src: /src/git/builtin/grep.c:598,1
    - Dst: grep_oid
      Src: /src/git/builtin/grep.c:600,1
    - Dst: grep_file
      Src: /src/git/builtin/grep.c:603,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/grep.c:605,1
    - Dst: submodule_path_match
      Src: /src/git/builtin/grep.c:606,1
    - Dst: grep_submodule
      Src: /src/git/builtin/grep.c:607,1
    - Dst: ce_stage
      Src: /src/git/builtin/grep.c:613,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:617,1
    - Dst: strbuf_release
      Src: /src/git/builtin/grep.c:624,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 47
    argCount: 3
    argNames:
    - opt
    - pathspec
    - cached
    argTypes:
    - struct grep_opt*
    - struct pathspec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 548
    functionDepth: 22
    functionLinenumber: 548
    functionLinenumberEnd: 626
    functionName: grep_cache
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 1
    functionsReached:
    - grep_file
    - ce_skip_worktree
    - free
    - submodule_path_match
    - strcmp
    - grep_submodule
    - strbuf_release
    - die
    - repo_read_index
    - ce_intent_to_add
    - strbuf_setlen
    - S_ISSPARSEDIR
    - strbuf_addstr
    - odb_read_object
    - grep_tree
    - S_ISREG
    - oid_to_hex
    - S_ISGITLINK
    - grep_oid
    - match_pathspec
    - _
    - ce_stage
    - init_tree_desc
    - S_ISDIR
    - strlen
    linkageType: ''
    returnType: int
    signature: "int grep_cache(struct grep_opt *opt,\n\t\t      const struct pathspec
      *pathspec, int cached)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/grep.c:640,1
    - Dst: tree_entry
      Src: /src/git/builtin/grep.c:644,1
    - Dst: tree_entry_len
      Src: /src/git/builtin/grep.c:645,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/grep.c:648,1
    - Dst: tree_entry_interesting
      Src: /src/git/builtin/grep.c:649,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/grep.c:652,1
    - Dst: strbuf_add
      Src: /src/git/builtin/grep.c:660,1
    - Dst: S_ISREG
      Src: /src/git/builtin/grep.c:662,1
    - Dst: grep_oid
      Src: /src/git/builtin/grep.c:663,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/grep.c:665,1
    - Dst: odb_read_object
      Src: /src/git/builtin/grep.c:671,1
    - Dst: die
      Src: /src/git/builtin/grep.c:674,1
    - Dst: _
      Src: /src/git/builtin/grep.c:674,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/grep.c:675,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/grep.c:677,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/grep.c:678,1
    - Dst: grep_tree
      Src: /src/git/builtin/grep.c:679,1
    - Dst: free
      Src: /src/git/builtin/grep.c:681,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/grep.c:682,1
    - Dst: grep_submodule
      Src: /src/git/builtin/grep.c:683,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/grep.c:688,1
    - Dst: strbuf_release
      Src: /src/git/builtin/grep.c:694,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 6
    argNames:
    - opt
    - pathspec
    - tree
    - base
    - tn_len
    - check_attr
    argTypes:
    - struct grep_opt*
    - struct pathspec*
    - struct tree_desc*
    - struct strbuf*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 628
    functionDepth: 22
    functionLinenumber: 628
    functionLinenumberEnd: 696
    functionName: grep_tree
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 3
    functionsReached:
    - free
    - grep_submodule
    - strbuf_release
    - die
    - strbuf_setlen
    - strbuf_addstr
    - odb_read_object
    - grep_tree
    - S_ISREG
    - oid_to_hex
    - tree_entry_interesting
    - S_ISGITLINK
    - grep_oid
    - _
    - strbuf_add
    - init_tree_desc
    - S_ISDIR
    - tree_entry
    - strbuf_addch
    - tree_entry_len
    linkageType: ''
    returnType: int
    signature: "int grep_tree(struct grep_opt *opt, const struct pathspec *pathspec,\n\t\t
      \    struct tree_desc *tree, struct strbuf *base, int tn_len,\n\t\t     int
      check_attr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tree_entry
      Src: /src/git/builtin/grep.c:710,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/grep.c:712,1
    - Dst: tree_entry_interesting
      Src: /src/git/builtin/grep.c:713,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/grep.c:716,1
    - Dst: strbuf_add
      Src: /src/git/builtin/grep.c:724,1
    - Dst: tree_entry_len
      Src: /src/git/builtin/grep.c:724,1
    - Dst: S_ISREG
      Src: /src/git/builtin/grep.c:726,1
    - Dst: odb_has_object
      Src: /src/git/builtin/grep.c:727,1
    - Dst: oidset_insert
      Src: /src/git/builtin/grep.c:728,1
    - Dst: S_ISDIR
      Src: /src/git/builtin/grep.c:729,1
    - Dst: odb_read_object
      Src: /src/git/builtin/grep.c:735,1
    - Dst: die
      Src: /src/git/builtin/grep.c:738,1
    - Dst: _
      Src: /src/git/builtin/grep.c:738,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/grep.c:739,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/grep.c:741,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/grep.c:742,1
    - Dst: collect_blob_oids_for_tree
      Src: /src/git/builtin/grep.c:743,1
    - Dst: free
      Src: /src/git/builtin/grep.c:745,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/grep.c:753,1
    - Dst: strbuf_release
      Src: /src/git/builtin/grep.c:756,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 6
    argNames:
    - repo
    - pathspec
    - tree
    - base
    - tn_len
    - blob_oids
    argTypes:
    - struct repository*
    - struct pathspec*
    - struct tree_desc*
    - struct strbuf*
    - int
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 698
    functionDepth: 12
    functionLinenumber: 698
    functionLinenumberEnd: 757
    functionName: collect_blob_oids_for_tree
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 1
    functionsReached:
    - oidset_insert
    - free
    - strbuf_release
    - die
    - strbuf_setlen
    - odb_has_object
    - strbuf_addstr
    - odb_read_object
    - S_ISREG
    - oid_to_hex
    - tree_entry_interesting
    - _
    - strbuf_add
    - init_tree_desc
    - S_ISDIR
    - tree_entry
    - strbuf_reset
    - strbuf_addch
    - tree_entry_len
    - collect_blob_oids_for_tree
    linkageType: ''
    returnType: void
    signature: "void collect_blob_oids_for_tree(struct repository *repo,\n\t\t\t\t
      \      const struct pathspec *pathspec,\n\t\t\t\t       struct tree_desc *tree,\n\t\t\t\t
      \      struct strbuf *base,\n\t\t\t\t       int tn_len,\n\t\t\t\t       struct
      oidset *blob_oids)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_peeled
      Src: /src/git/builtin/grep.c:771,1
    - Dst: strlen
      Src: /src/git/builtin/grep.c:777,1
    - Dst: strbuf_add
      Src: /src/git/builtin/grep.c:779,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/grep.c:780,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/grep.c:782,1
    - Dst: collect_blob_oids_for_tree
      Src: /src/git/builtin/grep.c:784,1
    - Dst: strbuf_release
      Src: /src/git/builtin/grep.c:787,1
    - Dst: free
      Src: /src/git/builtin/grep.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - opt
    - pathspec
    - tree_ish_oid
    - name
    - blob_oids
    argTypes:
    - struct grep_opt*
    - struct pathspec*
    - struct object_id*
    - char*
    - struct oidset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 759
    functionDepth: 13
    functionLinenumber: 759
    functionLinenumberEnd: 789
    functionName: collect_blob_oids_for_treeish
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_addch
    - strlen
    - odb_read_object_peeled
    - free
    - collect_blob_oids_for_tree
    - strbuf_add
    - init_tree_desc
    linkageType: ''
    returnType: void
    signature: "void collect_blob_oids_for_treeish(struct grep_opt *opt,\n\t\t\t\t\t
      \ const struct pathspec *pathspec,\n\t\t\t\t\t  const struct object_id *tree_ish_oid,\n\t\t\t\t\t
      \ const char *name,\n\t\t\t\t\t  struct oidset *blob_oids)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_has_promisor_remote
      Src: /src/git/builtin/grep.c:798,1
    - Dst: obj_read_lock
      Src: /src/git/builtin/grep.c:805,1
    - Dst: deref_tag
      Src: /src/git/builtin/grep.c:806,1
    - Dst: obj_read_unlock
      Src: /src/git/builtin/grep.c:808,1
    - Dst: collect_blob_oids_for_treeish
      Src: /src/git/builtin/grep.c:813,1
    - Dst: oidset_size
      Src: /src/git/builtin/grep.c:820,1
    - Dst: oidset_iter_init
      Src: /src/git/builtin/grep.c:825,1
    - Dst: oidset_iter_next
      Src: /src/git/builtin/grep.c:826,1
    - Dst: oid_array_append
      Src: /src/git/builtin/grep.c:827,1
    - Dst: promisor_remote_get_direct
      Src: /src/git/builtin/grep.c:829,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/grep.c:831,1
    - Dst: oidset_clear
      Src: /src/git/builtin/grep.c:833,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - opt
    - pathspec
    - list
    argTypes:
    - struct grep_opt*
    - struct pathspec*
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 791
    functionDepth: 14
    functionLinenumber: 791
    functionLinenumberEnd: 834
    functionName: prefetch_grep_blobs
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - oidset_size
    - repo_has_promisor_remote
    - deref_tag
    - oid_array_clear
    - obj_read_lock
    - oidset_clear
    - obj_read_unlock
    - oidset_iter_next
    - promisor_remote_get_direct
    - oid_array_append
    - collect_blob_oids_for_treeish
    - oidset_iter_init
    linkageType: ''
    returnType: void
    signature: "void prefetch_grep_blobs(struct grep_opt *opt,\n\t\t\t\tconst struct
      pathspec *pathspec,\n\t\t\t\tconst struct object_array *list)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grep_oid
      Src: /src/git/builtin/grep.c:840,1
    - Dst: odb_read_object_peeled
      Src: /src/git/builtin/grep.c:848,1
    - Dst: die
      Src: /src/git/builtin/grep.c:851,1
    - Dst: _
      Src: /src/git/builtin/grep.c:851,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/grep.c:851,1
    - Dst: strlen
      Src: /src/git/builtin/grep.c:853,1
    - Dst: strbuf_init
      Src: /src/git/builtin/grep.c:854,1
    - Dst: strbuf_add
      Src: /src/git/builtin/grep.c:856,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/grep.c:857,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/grep.c:859,1
    - Dst: grep_tree
      Src: /src/git/builtin/grep.c:860,1
    - Dst: strbuf_release
      Src: /src/git/builtin/grep.c:862,1
    - Dst: free
      Src: /src/git/builtin/grep.c:863,1
    - Dst: die
      Src: /src/git/builtin/grep.c:866,1
    - Dst: _
      Src: /src/git/builtin/grep.c:866,1
    - Dst: type_name
      Src: /src/git/builtin/grep.c:866,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - opt
    - pathspec
    - obj
    - name
    - path
    argTypes:
    - struct grep_opt*
    - struct pathspec*
    - struct object*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 836
    functionDepth: 23
    functionLinenumber: 836
    functionLinenumberEnd: 867
    functionName: grep_object
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - die
    - grep_oid
    - strbuf_addch
    - strlen
    - odb_read_object_peeled
    - _
    - free
    - type_name
    - grep_tree
    - strbuf_init
    - strbuf_add
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int grep_object(struct grep_opt *opt, const struct pathspec *pathspec,\n\t\t
      \      struct object *obj, const char *name, const char *path)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prefetch_grep_blobs
      Src: /src/git/builtin/grep.c:876,1
    - Dst: obj_read_lock
      Src: /src/git/builtin/grep.c:881,1
    - Dst: deref_tag
      Src: /src/git/builtin/grep.c:882,1
    - Dst: obj_read_unlock
      Src: /src/git/builtin/grep.c:884,1
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/grep.c:891,1
    - Dst: die
      Src: /src/git/builtin/grep.c:894,1
    - Dst: _
      Src: /src/git/builtin/grep.c:894,1
    - Dst: submodule_free
      Src: /src/git/builtin/grep.c:899,1
    - Dst: obj_read_lock
      Src: /src/git/builtin/grep.c:900,1
    - Dst: gitmodules_config_oid
      Src: /src/git/builtin/grep.c:901,1
    - Dst: obj_read_unlock
      Src: /src/git/builtin/grep.c:902,1
    - Dst: grep_object
      Src: /src/git/builtin/grep.c:904,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - opt
    - pathspec
    - list
    argTypes:
    - struct grep_opt*
    - struct pathspec*
    - struct object_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 869
    functionDepth: 24
    functionLinenumber: 869
    functionLinenumberEnd: 912
    functionName: grep_objects
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - prefetch_grep_blobs
    - oid_to_hex_r
    - die
    - deref_tag
    - obj_read_lock
    - obj_read_unlock
    - gitmodules_config_oid
    - _
    - grep_object
    - submodule_free
    linkageType: ''
    returnType: int
    signature: "int grep_objects(struct grep_opt *opt, const struct pathspec *pathspec,\n\t\t\tconst
      struct object_array *list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_standard_excludes
      Src: /src/git/builtin/grep.c:923,1
    - Dst: fill_directory
      Src: /src/git/builtin/grep.c:925,1
    - Dst: grep_file
      Src: /src/git/builtin/grep.c:927,1
    - Dst: dir_clear
      Src: /src/git/builtin/grep.c:931,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - opt
    - pathspec
    - exc_std
    - use_index
    argTypes:
    - struct grep_opt*
    - struct pathspec*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 914
    functionDepth: 12
    functionLinenumber: 914
    functionLinenumberEnd: 933
    functionName: grep_directory
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - dir_clear
    - setup_standard_excludes
    - grep_file
    - fill_directory
    linkageType: ''
    returnType: int
    signature: "int grep_directory(struct grep_opt *opt, const struct pathspec *pathspec,\n\t\t\t
      \ int exc_std, int use_index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/git/builtin/grep.c:946,1
    - Dst: error
      Src: /src/git/builtin/grep.c:948,1
    - Dst: _
      Src: /src/git/builtin/grep.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 953
    functionName: context_callback
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - error
    - strtol
    - _
    linkageType: ''
    returnType: int
    signature: "int context_callback(const struct option *opt, const char *arg,\n\t\t\t
      \   int unset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/grep.c:964,1
    - Dst: prefix_filename_except_for_dash
      Src: /src/git/builtin/grep.c:969,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:971,1
    - Dst: fopen
      Src: /src/git/builtin/grep.c:972,1
    - Dst: die_errno
      Src: /src/git/builtin/grep.c:974,1
    - Dst: _
      Src: /src/git/builtin/grep.c:974,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/grep.c:975,1
    - Dst: append_grep_pat
      Src: /src/git/builtin/grep.c:980,1
    - Dst: fclose
      Src: /src/git/builtin/grep.c:984,1
    - Dst: strbuf_release
      Src: /src/git/builtin/grep.c:985,1
    - Dst: free
      Src: /src/git/builtin/grep.c:987,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 955
    functionDepth: 13
    functionLinenumber: 955
    functionLinenumberEnd: 989
    functionName: file_callback
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - fclose
    - strbuf_release
    - die_errno
    - fopen
    - free
    - append_grep_pat
    - strcmp
    - prefix_filename_except_for_dash
    - strbuf_getline
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: int file_callback(const struct option *opt, const char *arg, int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/grep.c:994,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/grep.c:995,1
    - Dst: append_grep_pattern
      Src: /src/git/builtin/grep.c:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 991
    functionDepth: 2
    functionLinenumber: 991
    functionLinenumberEnd: 998
    functionName: not_callback
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - append_grep_pattern
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: int not_callback(const struct option *opt, const char *arg, int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/grep.c:1003,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/grep.c:1004,1
    - Dst: append_grep_pattern
      Src: /src/git/builtin/grep.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1007
    functionName: and_callback
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - append_grep_pattern
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: int and_callback(const struct option *opt, const char *arg, int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/grep.c:1012,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/grep.c:1013,1
    - Dst: append_grep_pattern
      Src: /src/git/builtin/grep.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1009
    functionDepth: 2
    functionLinenumber: 1009
    functionLinenumberEnd: 1016
    functionName: open_callback
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - append_grep_pattern
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: int open_callback(const struct option *opt, const char *arg, int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/grep.c:1021,1
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/grep.c:1022,1
    - Dst: append_grep_pattern
      Src: /src/git/builtin/grep.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1025
    functionName: close_callback
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - append_grep_pattern
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: int close_callback(const struct option *opt, const char *arg, int unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/grep.c:1031,1
    - Dst: append_grep_pattern
      Src: /src/git/builtin/grep.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1034
    functionName: pattern_callback
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - append_grep_pattern
    linkageType: ''
    returnType: int
    signature: "int pattern_callback(const struct option *opt, const char *arg,\n\t\t\t
      \   int unset)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1057,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1058,1
    - Dst: OPT_NEGBIT
      Src: /src/git/builtin/grep.c:1059,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1060,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1061,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1062,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/grep.c:1063,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1064,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1065,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1066,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/grep.c:1067,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1068,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1069,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1070,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1071,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1072,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1073,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/grep.c:1074,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1075,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/grep.c:1076,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1077,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1079,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1080,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/grep.c:1081,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1082,1
    - Dst: OPT_INTEGER_F
      Src: /src/git/builtin/grep.c:1083,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1084,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/grep.c:1085,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/grep.c:1086,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1087,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/grep.c:1089,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1090,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/grep.c:1092,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1093,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/grep.c:1095,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1096,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/grep.c:1098,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1099,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1099,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1100,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1100,1
    - Dst: OPT_NEGBIT
      Src: /src/git/builtin/grep.c:1101,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1101,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/grep.c:1102,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1102,1
    - Dst: OPT_NEGBIT
      Src: /src/git/builtin/grep.c:1103,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1104,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1105,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1106,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1107,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1108,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1109,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1111,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/grep.c:1112,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1113,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1115,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1116,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1117,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1118,1
    - Dst: OPT__COLOR
      Src: /src/git/builtin/grep.c:1119,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1119,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1120,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1121,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1122,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1123,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/grep.c:1124,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/grep.c:1125,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1125,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1126,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/grep.c:1128,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1129,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/grep.c:1130,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1131,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/grep.c:1132,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1133,1
    - Dst: OPT_NUMBER_CALLBACK
      Src: /src/git/builtin/grep.c:1134,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1134,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1136,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1137,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1138,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1139,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/grep.c:1140,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/grep.c:1141,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1141,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1142,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/grep.c:1143,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1143,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1144,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/grep.c:1145,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1146,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/grep.c:1148,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/grep.c:1149,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/grep.c:1151,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/grep.c:1154,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/grep.c:1157,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1158,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/grep.c:1159,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1160,1
    - Dst: OPT_GROUP
      Src: /src/git/builtin/grep.c:1161,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1167,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1168,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/grep.c:1172,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1173,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/grep.c:1175,1
    - Dst: N_
      Src: /src/git/builtin/grep.c:1176,1
    - Dst: OPT_END
      Src: /src/git/builtin/grep.c:1177,1
    - Dst: grep_init
      Src: /src/git/builtin/grep.c:1181,1
    - Dst: repo_config
      Src: /src/git/builtin/grep.c:1182,1
    - Dst: parse_options
      Src: /src/git/builtin/grep.c:1194,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/grep.c:1199,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/grep.c:1205,1
    - Dst: setup_git_directory
      Src: /src/git/builtin/grep.c:1210,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:1221,1
    - Dst: append_grep_pattern
      Src: /src/git/builtin/grep.c:1228,1
    - Dst: git_pager
      Src: /src/git/builtin/grep.c:1235,1
    - Dst: string_list_append
      Src: /src/git/builtin/grep.c:1242,1
    - Dst: die
      Src: /src/git/builtin/grep.c:1246,1
    - Dst: _
      Src: /src/git/builtin/grep.c:1246,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:1257,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:1275,1
    - Dst: die
      Src: /src/git/builtin/grep.c:1282,1
    - Dst: _
      Src: /src/git/builtin/grep.c:1282,1
    - Dst: get_oid_with_context
      Src: /src/git/builtin/grep.c:1286,1
    - Dst: die
      Src: /src/git/builtin/grep.c:1290,1
    - Dst: _
      Src: /src/git/builtin/grep.c:1290,1
    - Dst: object_context_release
      Src: /src/git/builtin/grep.c:1291,1
    - Dst: parse_object_or_die
      Src: /src/git/builtin/grep.c:1295,1
    - Dst: verify_non_filename
      Src: /src/git/builtin/grep.c:1297,1
    - Dst: add_object_array_with_path
      Src: /src/git/builtin/grep.c:1298,1
    - Dst: object_context_release
      Src: /src/git/builtin/grep.c:1299,1
    - Dst: verify_filename
      Src: /src/git/builtin/grep.c:1309,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/grep.c:1312,1
    - Dst: die
      Src: /src/git/builtin/grep.c:1321,1
    - Dst: _
      Src: /src/git/builtin/grep.c:1321,1
    - Dst: warning
      Src: /src/git/builtin/grep.c:1334,1
    - Dst: _
      Src: /src/git/builtin/grep.c:1334,1
    - Dst: warning
      Src: /src/git/builtin/grep.c:1337,1
    - Dst: _
      Src: /src/git/builtin/grep.c:1337,1
    - Dst: die
      Src: /src/git/builtin/grep.c:1340,1
    - Dst: _
      Src: /src/git/builtin/grep.c:1340,1
    - Dst: online_cpus
      Src: /src/git/builtin/grep.c:1342,1
    - Dst: BUG
      Src: /src/git/builtin/grep.c:1346,1
    - Dst: repo_read_gitmodules
      Src: /src/git/builtin/grep.c:1358,1
    - Dst: odb_prepare_alternates
      Src: /src/git/builtin/grep.c:1363,1
    - Dst: odb_source_files_downcast
      Src: /src/git/builtin/grep.c:1365,1
    - Dst: packfile_store_prepare
      Src: /src/git/builtin/grep.c:1366,1
    - Dst: start_threads
      Src: /src/git/builtin/grep.c:1370,1
    - Dst: compile_grep_patterns
      Src: /src/git/builtin/grep.c:1378,1
    - Dst: die
      Src: /src/git/builtin/grep.c:1382,1
    - Dst: _
      Src: /src/git/builtin/grep.c:1382,1
    - Dst: strlen
      Src: /src/git/builtin/grep.c:1386,1
    - Dst: is_dir_sep
      Src: /src/git/builtin/grep.c:1388,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:1391,1
    - Dst: string_list_append
      Src: /src/git/builtin/grep.c:1392,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:1394,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:1394,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/grep.c:1396,1
    - Dst: strcmp
      Src: /src/git/builtin/grep.c:1397,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/grep.c:1399,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/grep.c:1400,1
    - Dst: setup_pager
      Src: /src/git/builtin/grep.c:1405,1
    - Dst: die_for_incompatible_opt3
      Src: /src/git/builtin/grep.c:1407,1
    - Dst: grep_directory
      Src: /src/git/builtin/grep.c:1413,1
    - Dst: die
      Src: /src/git/builtin/grep.c:1415,1
    - Dst: _
      Src: /src/git/builtin/grep.c:1415,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/grep.c:1418,1
    - Dst: grep_cache
      Src: /src/git/builtin/grep.c:1420,1
    - Dst: die
      Src: /src/git/builtin/grep.c:1423,1
    - Dst: _
      Src: /src/git/builtin/grep.c:1423,1
    - Dst: grep_objects
      Src: /src/git/builtin/grep.c:1425,1
    - Dst: wait_all
      Src: /src/git/builtin/grep.c:1429,1
    - Dst: run_pager
      Src: /src/git/builtin/grep.c:1431,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/grep.c:1436,1
    - Dst: string_list_clear
      Src: /src/git/builtin/grep.c:1437,1
    - Dst: free_grep_patterns
      Src: /src/git/builtin/grep.c:1438,1
    - Dst: object_array_clear
      Src: /src/git/builtin/grep.c:1439,1
    - Dst: free_repos
      Src: /src/git/builtin/grep.c:1440,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 157
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1036
    functionDepth: 25
    functionLinenumber: 1036
    functionLinenumberEnd: 1442
    functionName: cmd_grep
    functionSourceFile: /src/git/builtin/grep.c
    functionUses: 0
    functionsReached:
    - parse_options
    - free_repos
    - run_pager
    - setup_git_directory
    - is_dir_sep
    - object_array_clear
    - OPT_UNSIGNED
    - OPT_BOOL
    - object_context_release
    - strbuf_addf
    - grep_cache
    - odb_prepare_alternates
    - git_pager
    - OPT_INTEGER_F
    - strcmp
    - start_threads
    - get_oid_with_context
    - free_grep_patterns
    - repo_config
    - OPT_END
    - die
    - online_cpus
    - odb_source_files_downcast
    - OPT_GROUP
    - OPT_BIT
    - grep_init
    - packfile_store_prepare
    - OPT__COLOR
    - compile_grep_patterns
    - parse_object_or_die
    - parse_pathspec
    - OPT__QUIET
    - OPT_INTEGER
    - setup_pager
    - string_list_clear
    - verify_non_filename
    - setup_work_tree
    - OPT_SET_INT
    - grep_objects
    - append_grep_pattern
    - grep_directory
    - strbuf_detach
    - string_list_append
    - _
    - N_
    - verify_filename
    - warning
    - wait_all
    - clear_pathspec
    - OPT_BOOL_F
    - string_list_append_nodup
    - OPT_NEGBIT
    - OPT_NUMBER_CALLBACK
    - OPT_CALLBACK_F
    - prepare_repo_settings
    - OPT_CALLBACK
    - repo_config_get_bool
    - strlen
    - die_for_incompatible_opt3
    - add_object_array_with_path
    - BUG
    - repo_read_gitmodules
    linkageType: ''
    returnType: int
    signature: "int cmd_grep(int argc,\n\t     const char **argv,\n\t     const char
      *prefix,\n\t     struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/merge-file.c:28,1
    - Dst: error
      Src: /src/git/builtin/merge-file.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: label_cb
    functionSourceFile: /src/git/builtin/merge-file.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: int label_cb(const struct option *opt, const char *arg, int unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_algorithm_value
      Src: /src/git/builtin/merge-file.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - xpp
    - alg
    argTypes:
    - xpparam_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: set_diff_algorithm
    functionSourceFile: /src/git/builtin/merge-file.c
    functionUses: 5
    functionsReached:
    - parse_algorithm_value
    linkageType: ''
    returnType: int
    signature: "int set_diff_algorithm(xpparam_t *xpp,\n\t\t\t      const char *alg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/merge-file.c:51,1
    - Dst: set_diff_algorithm
      Src: /src/git/builtin/merge-file.c:53,1
    - Dst: error
      Src: /src/git/builtin/merge-file.c:54,1
    - Dst: _
      Src: /src/git/builtin/merge-file.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: diff_algorithm_cb
    functionSourceFile: /src/git/builtin/merge-file.c
    functionUses: 0
    functionsReached:
    - error
    - set_diff_algorithm
    - BUG_ON_OPT_NEG
    - _
    linkageType: ''
    returnType: int
    signature: "int diff_algorithm_cb(const struct option *opt,\n\t\t\t\tconst char
      *arg, int unset)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/merge-file.c:72,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:72,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/merge-file.c:73,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:73,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/merge-file.c:74,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:74,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/merge-file.c:75,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:75,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/merge-file.c:77,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:77,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/merge-file.c:79,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:79,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/merge-file.c:81,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:81,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/merge-file.c:83,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:83,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:84,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/merge-file.c:86,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:87,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/merge-file.c:88,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:88,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/merge-file.c:89,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:89,1
    - Dst: N_
      Src: /src/git/builtin/merge-file.c:90,1
    - Dst: OPT_END
      Src: /src/git/builtin/merge-file.c:91,1
    - Dst: repo_config
      Src: /src/git/builtin/merge-file.c:99,1
    - Dst: parse_options
      Src: /src/git/builtin/merge-file.c:103,1
    - Dst: usage_with_options
      Src: /src/git/builtin/merge-file.c:105,1
    - Dst: freopen
      Src: /src/git/builtin/merge-file.c:107,1
    - Dst: error_errno
      Src: /src/git/builtin/merge-file.c:108,1
    - Dst: setup_git_directory
      Src: /src/git/builtin/merge-file.c:113,1
    - Dst: prefix_filename
      Src: /src/git/builtin/merge-file.c:123,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/merge-file.c:126,1
    - Dst: error
      Src: /src/git/builtin/merge-file.c:127,1
    - Dst: _
      Src: /src/git/builtin/merge-file.c:127,1
    - Dst: oideq
      Src: /src/git/builtin/merge-file.c:129,1
    - Dst: read_mmblob
      Src: /src/git/builtin/merge-file.c:130,1
    - Dst: read_mmfile
      Src: /src/git/builtin/merge-file.c:132,1
    - Dst: read_mmfile
      Src: /src/git/builtin/merge-file.c:133,1
    - Dst: buffer_is_binary
      Src: /src/git/builtin/merge-file.c:137,1
    - Dst: error
      Src: /src/git/builtin/merge-file.c:138,1
    - Dst: free
      Src: /src/git/builtin/merge-file.c:142,1
    - Dst: xdl_merge
      Src: /src/git/builtin/merge-file.c:151,1
    - Dst: odb_write_object
      Src: /src/git/builtin/merge-file.c:157,1
    - Dst: error
      Src: /src/git/builtin/merge-file.c:159,1
    - Dst: _
      Src: /src/git/builtin/merge-file.c:159,1
    - Dst: oidcpy
      Src: /src/git/builtin/merge-file.c:161,1
    - Dst: printf
      Src: /src/git/builtin/merge-file.c:164,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/merge-file.c:164,1
    - Dst: prefix_filename
      Src: /src/git/builtin/merge-file.c:167,1
    - Dst: fopen
      Src: /src/git/builtin/merge-file.c:168,1
    - Dst: error_errno
      Src: /src/git/builtin/merge-file.c:171,1
    - Dst: fwrite
      Src: /src/git/builtin/merge-file.c:174,1
    - Dst: error_errno
      Src: /src/git/builtin/merge-file.c:175,1
    - Dst: fclose
      Src: /src/git/builtin/merge-file.c:176,1
    - Dst: error_errno
      Src: /src/git/builtin/merge-file.c:177,1
    - Dst: free
      Src: /src/git/builtin/merge-file.c:178,1
    - Dst: free
      Src: /src/git/builtin/merge-file.c:180,1
    - Dst: free
      Src: /src/git/builtin/merge-file.c:188,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 60
    functionDepth: 19
    functionLinenumber: 60
    functionLinenumberEnd: 191
    functionName: cmd_merge_file
    functionSourceFile: /src/git/builtin/merge-file.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - parse_options
    - setup_git_directory
    - oidcpy
    - repo_get_oid
    - OPT_BOOL
    - read_mmfile
    - free
    - repo_config
    - printf
    - usage_with_options
    - error
    - OPT_END
    - prefix_filename
    - fopen
    - xdl_merge
    - freopen
    - OPT__QUIET
    - OPT_INTEGER
    - oid_to_hex
    - OPT_SET_INT
    - read_mmblob
    - _
    - N_
    - buffer_is_binary
    - odb_write_object
    - fwrite
    - OPT_CALLBACK_F
    - OPT_CALLBACK
    - oideq
    linkageType: ''
    returnType: int
    signature: "int cmd_merge_file(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct object_array_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: blob_path
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *blob_path(struct object_array_entry *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/diff.c:58,1
    - Dst: is_null_oid
      Src: /src/git/builtin/diff.c:58,1
    - Dst: oideq
      Src: /src/git/builtin/diff.c:59,1
    - Dst: SWAP
      Src: /src/git/builtin/diff.c:63,1
    - Dst: SWAP
      Src: /src/git/builtin/diff.c:64,1
    - Dst: SWAP
      Src: /src/git/builtin/diff.c:65,1
    - Dst: strncmp
      Src: /src/git/builtin/diff.c:69,1
    - Dst: strncmp
      Src: /src/git/builtin/diff.c:70,1
    - Dst: alloc_filespec
      Src: /src/git/builtin/diff.c:73,1
    - Dst: alloc_filespec
      Src: /src/git/builtin/diff.c:74,1
    - Dst: fill_filespec
      Src: /src/git/builtin/diff.c:75,1
    - Dst: fill_filespec
      Src: /src/git/builtin/diff.c:76,1
    - Dst: diff_queue
      Src: /src/git/builtin/diff.c:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 9
    argNames:
    - opt
    - old_mode
    - new_mode
    - old_oid
    - new_oid
    - old_oid_valid
    - new_oid_valid
    - old_path
    - new_path
    argTypes:
    - struct diff_options*
    - unsigned
    - unsigned
    - struct object_id*
    - struct object_id*
    - int
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 47
    functionDepth: 8
    functionLinenumber: 47
    functionLinenumberEnd: 79
    functionName: stuff_change
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - diff_queue
    - alloc_filespec
    - is_null_oid
    - SWAP
    - fill_filespec
    - strncmp
    - oideq
    linkageType: ''
    returnType: void
    signature: "void stuff_change(struct diff_options *opt,\n\t\t\t unsigned old_mode,
      unsigned new_mode,\n\t\t\t const struct object_id *old_oid,\n\t\t\t const struct
      object_id *new_oid,\n\t\t\t int old_oid_valid,\n\t\t\t int new_oid_valid,\n\t\t\t
      const char *old_path,\n\t\t\t const char *new_path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/git/builtin/diff.c:90,1
    - Dst: GUARD_PATHSPEC
      Src: /src/git/builtin/diff.c:92,1
    - Dst: lstat
      Src: /src/git/builtin/diff.c:95,1
    - Dst: die_errno
      Src: /src/git/builtin/diff.c:96,1
    - Dst: _
      Src: /src/git/builtin/diff.c:96,1
    - Dst: S_ISREG
      Src: /src/git/builtin/diff.c:97,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/diff.c:97,1
    - Dst: die
      Src: /src/git/builtin/diff.c:98,1
    - Dst: _
      Src: /src/git/builtin/diff.c:98,1
    - Dst: diff_set_mnemonic_prefix
      Src: /src/git/builtin/diff.c:100,1
    - Dst: canon_mode
      Src: /src/git/builtin/diff.c:103,1
    - Dst: stuff_change
      Src: /src/git/builtin/diff.c:105,1
    - Dst: canon_mode
      Src: /src/git/builtin/diff.c:106,1
    - Dst: null_oid
      Src: /src/git/builtin/diff.c:107,1
    - Dst: diffcore_std
      Src: /src/git/builtin/diff.c:111,1
    - Dst: diff_flush
      Src: /src/git/builtin/diff.c:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - revs
    - argc
    - UNUSED
    - blob
    argTypes:
    - struct rev_info*
    - int
    - char**
    - struct object_array_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 81
    functionDepth: 26
    functionLinenumber: 81
    functionLinenumberEnd: 113
    functionName: builtin_diff_b_f
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - die
    - S_ISLNK
    - die_errno
    - usage
    - diff_flush
    - GUARD_PATHSPEC
    - diff_set_mnemonic_prefix
    - stuff_change
    - canon_mode
    - null_oid
    - diffcore_std
    - _
    - lstat
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: "void builtin_diff_b_f(struct rev_info *revs,\n\t\t\t     int argc,
      const char **argv UNUSED,\n\t\t\t     struct object_array_entry **blob)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: canon_mode
      Src: /src/git/builtin/diff.c:119,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:122,1
    - Dst: stuff_change
      Src: /src/git/builtin/diff.c:130,1
    - Dst: blob_path
      Src: /src/git/builtin/diff.c:134,1
    - Dst: blob_path
      Src: /src/git/builtin/diff.c:134,1
    - Dst: diffcore_std
      Src: /src/git/builtin/diff.c:135,1
    - Dst: diff_flush
      Src: /src/git/builtin/diff.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - revs
    - argc
    - UNUSED
    - blob
    argTypes:
    - struct rev_info*
    - int
    - char**
    - struct object_array_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 115
    functionDepth: 26
    functionLinenumber: 115
    functionLinenumberEnd: 137
    functionName: builtin_diff_blobs
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - usage
    - diff_flush
    - diffcore_std
    - canon_mode
    - stuff_change
    - blob_path
    linkageType: ''
    returnType: void
    signature: "void builtin_diff_blobs(struct rev_info *revs,\n\t\t\t       int argc,
      const char **argv UNUSED,\n\t\t\t       struct object_array_entry **blob)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:145,1
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:145,1
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:147,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:150,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:160,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/diff.c:162,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/diff.c:163,1
    - Dst: die_errno
      Src: /src/git/builtin/diff.c:165,1
    - Dst: repo_read_index
      Src: /src/git/builtin/diff.c:167,1
    - Dst: die_errno
      Src: /src/git/builtin/diff.c:168,1
    - Dst: run_diff_index
      Src: /src/git/builtin/diff.c:170,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - revs
    - argc
    - argv
    argTypes:
    - struct rev_info*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 139
    functionDepth: 21
    functionLinenumber: 139
    functionLinenumberEnd: 171
    functionName: builtin_diff_index
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - repo_read_index_preload
    - setup_work_tree
    - repo_read_index
    - die_errno
    - usage
    - run_diff_index
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void builtin_diff_index(struct rev_info *revs,\n\t\t\t       int argc,
      const char **argv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:184,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:187,1
    - Dst: diff_get_merge_base
      Src: /src/git/builtin/diff.c:192,1
    - Dst: diff_tree_oid
      Src: /src/git/builtin/diff.c:207,1
    - Dst: log_tree_diff_flush
      Src: /src/git/builtin/diff.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - revs
    - argc
    - argv
    - ent0
    - ent1
    argTypes:
    - struct rev_info*
    - int
    - char**
    - struct object_array_entry*
    - struct object_array_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 173
    functionDepth: 28
    functionLinenumber: 173
    functionLinenumberEnd: 209
    functionName: builtin_diff_tree
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - diff_tree_oid
    - usage
    - log_tree_diff_flush
    - diff_get_merge_base
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void builtin_diff_tree(struct rev_info *revs,\n\t\t\t      int argc,
      const char **argv,\n\t\t\t      struct object_array_entry *ent0,\n\t\t\t      struct
      object_array_entry *ent1)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/git/builtin/diff.c:220,1
    - Dst: die
      Src: /src/git/builtin/diff.c:223,1
    - Dst: _
      Src: /src/git/builtin/diff.c:223,1
    - Dst: BUG
      Src: /src/git/builtin/diff.c:225,1
    - Dst: diff_merges_set_dense_combined_if_unset
      Src: /src/git/builtin/diff.c:227,1
    - Dst: oid_array_append
      Src: /src/git/builtin/diff.c:231,1
    - Dst: diff_tree_combined
      Src: /src/git/builtin/diff.c:233,1
    - Dst: oid_array_clear
      Src: /src/git/builtin/diff.c:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - revs
    - argc
    - UNUSED
    - ent
    - ents
    - first_non_parent
    argTypes:
    - struct rev_info*
    - int
    - char**
    - struct object_array_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 211
    functionDepth: 8
    functionLinenumber: 211
    functionLinenumberEnd: 235
    functionName: builtin_diff_combined
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - diff_tree_combined
    - die
    - diff_merges_set_dense_combined_if_unset
    - oid_array_append
    - oid_array_clear
    - usage
    - _
    - BUG
    linkageType: ''
    returnType: void
    signature: "void builtin_diff_combined(struct rev_info *revs,\n\t\t\t\t  int argc,
      const char **argv UNUSED,\n\t\t\t\t  struct object_array_entry *ent,\n\t\t\t\t
      \ int ents, int first_non_parent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/diff.c:242,1
    - Dst: discard_index
      Src: /src/git/builtin/diff.c:245,1
    - Dst: repo_read_index
      Src: /src/git/builtin/diff.c:246,1
    - Dst: refresh_index
      Src: /src/git/builtin/diff.c:247,1
    - Dst: repo_update_index_if_able
      Src: /src/git/builtin/diff.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 237
    functionDepth: 12
    functionLinenumber: 237
    functionLinenumberEnd: 250
    functionName: refresh_index_quietly
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - repo_read_index
    - repo_update_index_if_able
    - repo_hold_locked_index
    - refresh_index
    - discard_index
    linkageType: ''
    returnType: void
    signature: void refresh_index_quietly(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:257,1
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:259,1
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:261,1
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:263,1
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:265,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:266,1
    - Dst: error
      Src: /src/git/builtin/diff.c:268,1
    - Dst: _
      Src: /src/git/builtin/diff.c:268,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:269,1
    - Dst: diff_merges_set_dense_combined_if_unset
      Src: /src/git/builtin/diff.c:282,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/diff.c:284,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/diff.c:285,1
    - Dst: die_errno
      Src: /src/git/builtin/diff.c:287,1
    - Dst: run_diff_files
      Src: /src/git/builtin/diff.c:289,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - revs
    - argc
    - argv
    argTypes:
    - struct rev_info*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 252
    functionDepth: 21
    functionLinenumber: 252
    functionLinenumberEnd: 290
    functionName: builtin_diff_files
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - error
    - repo_read_index_preload
    - setup_work_tree
    - diff_merges_set_dense_combined_if_unset
    - die_errno
    - usage
    - strcmp
    - _
    - run_diff_files
    linkageType: ''
    returnType: void
    signature: void builtin_diff_files(struct rev_info *revs, int argc, const char
      **argv)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/git/builtin/diff.c:348,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:357,1
    - Dst: bitmap_new
      Src: /src/git/builtin/diff.c:367,1
    - Dst: bitmap_set
      Src: /src/git/builtin/diff.c:368,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:375,1
    - Dst: bitmap_free
      Src: /src/git/builtin/diff.c:378,1
    - Dst: die
      Src: /src/git/builtin/diff.c:387,1
    - Dst: _
      Src: /src/git/builtin/diff.c:387,1
    - Dst: bitmap_unset
      Src: /src/git/builtin/diff.c:389,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 2
    argNames:
    - rev
    - sym
    argTypes:
    - struct rev_info*
    - struct symdiff*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 392
    functionName: symdiff_prepare
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - die
    - bitmap_set
    - usage
    - bitmap_unset
    - bitmap_free
    - _
    - bitmap_new
    linkageType: ''
    returnType: void
    signature: void symdiff_prepare(struct rev_info *rev, struct symdiff *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_free
      Src: /src/git/builtin/diff.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sdiff
    argTypes:
    - struct symdiff*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: symdiff_release
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - bitmap_free
    linkageType: ''
    returnType: void
    signature: void symdiff_release(struct symdiff *sdiff)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:448,1
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:452,1
    - Dst: setup_git_directory_gently
      Src: /src/git/builtin/diff.c:458,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/diff.c:461,1
    - Dst: path_inside_repo
      Src: /src/git/builtin/diff.c:474,1
    - Dst: path_inside_repo
      Src: /src/git/builtin/diff.c:475,1
    - Dst: repo_set_hash_algo
      Src: /src/git/builtin/diff.c:486,1
    - Dst: init_diff_ui_defaults
      Src: /src/git/builtin/diff.c:488,1
    - Dst: repo_config
      Src: /src/git/builtin/diff.c:489,1
    - Dst: chdir
      Src: /src/git/builtin/diff.c:500,1
    - Dst: die
      Src: /src/git/builtin/diff.c:501,1
    - Dst: _
      Src: /src/git/builtin/diff.c:501,1
    - Dst: precompose_argv_prefix
      Src: /src/git/builtin/diff.c:505,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/diff.c:507,1
    - Dst: init_diffstat_widths
      Src: /src/git/builtin/diff.c:510,1
    - Dst: exit
      Src: /src/git/builtin/diff.c:516,1
    - Dst: diff_no_index
      Src: /src/git/builtin/diff.c:516,1
    - Dst: die
      Src: /src/git/builtin/diff.c:535,1
    - Dst: _
      Src: /src/git/builtin/diff.c:535,1
    - Dst: setup_revisions
      Src: /src/git/builtin/diff.c:536,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/diff.c:539,1
    - Dst: setup_diff_pager
      Src: /src/git/builtin/diff.c:545,1
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:555,1
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:557,1
    - Dst: strcmp
      Src: /src/git/builtin/diff.c:558,1
    - Dst: add_head_to_pending
      Src: /src/git/builtin/diff.c:559,1
    - Dst: lookup_tree
      Src: /src/git/builtin/diff.c:562,1
    - Dst: add_pending_object
      Src: /src/git/builtin/diff.c:564,1
    - Dst: symdiff_prepare
      Src: /src/git/builtin/diff.c:571,1
    - Dst: parse_object
      Src: /src/git/builtin/diff.c:578,1
    - Dst: deref_tag
      Src: /src/git/builtin/diff.c:579,1
    - Dst: die
      Src: /src/git/builtin/diff.c:581,1
    - Dst: _
      Src: /src/git/builtin/diff.c:581,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/diff.c:583,1
    - Dst: bitmap_get
      Src: /src/git/builtin/diff.c:587,1
    - Dst: add_object_array
      Src: /src/git/builtin/diff.c:590,1
    - Dst: die
      Src: /src/git/builtin/diff.c:597,1
    - Dst: _
      Src: /src/git/builtin/diff.c:597,1
    - Dst: die
      Src: /src/git/builtin/diff.c:602,1
    - Dst: _
      Src: /src/git/builtin/diff.c:602,1
    - Dst: builtin_diff_files
      Src: /src/git/builtin/diff.c:614,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:618,1
    - Dst: builtin_diff_b_f
      Src: /src/git/builtin/diff.c:619,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:623,1
    - Dst: builtin_diff_blobs
      Src: /src/git/builtin/diff.c:624,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:627,1
    - Dst: usage
      Src: /src/git/builtin/diff.c:631,1
    - Dst: builtin_diff_index
      Src: /src/git/builtin/diff.c:633,1
    - Dst: warning
      Src: /src/git/builtin/diff.c:636,1
    - Dst: _
      Src: /src/git/builtin/diff.c:636,1
    - Dst: builtin_diff_tree
      Src: /src/git/builtin/diff.c:638,1
    - Dst: builtin_diff_combined
      Src: /src/git/builtin/diff.c:641,1
    - Dst: diff_result_code
      Src: /src/git/builtin/diff.c:644,1
    - Dst: refresh_index_quietly
      Src: /src/git/builtin/diff.c:646,1
    - Dst: release_revisions
      Src: /src/git/builtin/diff.c:647,1
    - Dst: object_array_clear
      Src: /src/git/builtin/diff.c:648,1
    - Dst: symdiff_release
      Src: /src/git/builtin/diff.c:649,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 126
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 399
    functionDepth: 29
    functionLinenumber: 399
    functionLinenumberEnd: 651
    functionName: cmd_diff
    functionSourceFile: /src/git/builtin/diff.c
    functionUses: 0
    functionsReached:
    - init_diffstat_widths
    - builtin_diff_index
    - refresh_index_quietly
    - object_array_clear
    - deref_tag
    - repo_init_revisions
    - symdiff_prepare
    - setup_git_directory_gently
    - symdiff_release
    - strcmp
    - repo_set_hash_algo
    - setup_diff_pager
    - lookup_tree
    - repo_config
    - builtin_diff_tree
    - builtin_diff_combined
    - die
    - release_revisions
    - path_inside_repo
    - builtin_diff_blobs
    - init_diff_ui_defaults
    - diff_setup_done
    - bitmap_get
    - builtin_diff_b_f
    - precompose_argv_prefix
    - chdir
    - diff_result_code
    - parse_object
    - _
    - setup_revisions
    - warning
    - diff_no_index
    - add_head_to_pending
    - exit
    - add_object_array
    - usage
    - prepare_repo_settings
    - add_pending_object
    - repo_get_commit_tree
    - builtin_diff_files
    linkageType: ''
    returnType: int
    signature: "int cmd_diff(int argc,\n\t     const char **argv,\n\t     const char
      *prefix,\n\t     struct repository *repo UNUSED)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_NON_EMPTY_PREFIX
      Src: /src/git/builtin/get-tar-commit-id.c:28,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/get-tar-commit-id.c:30,1
    - Dst: usage
      Src: /src/git/builtin/get-tar-commit-id.c:33,1
    - Dst: read_in_full
      Src: /src/git/builtin/get-tar-commit-id.c:35,1
    - Dst: die_errno
      Src: /src/git/builtin/get-tar-commit-id.c:37,1
    - Dst: die_errno
      Src: /src/git/builtin/get-tar-commit-id.c:39,1
    - Dst: strtol
      Src: /src/git/builtin/get-tar-commit-id.c:44,1
    - Dst: skip_prefix
      Src: /src/git/builtin/get-tar-commit-id.c:47,1
    - Dst: hash_algo_by_length
      Src: /src/git/builtin/get-tar-commit-id.c:51,1
    - Dst: write_in_full
      Src: /src/git/builtin/get-tar-commit-id.c:54,1
    - Dst: die_errno
      Src: /src/git/builtin/get-tar-commit-id.c:55,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 58
    functionName: cmd_get_tar_commit_id
    functionSourceFile: /src/git/builtin/get-tar-commit-id.c
    functionUses: 0
    functionsReached:
    - BUG_ON_NON_EMPTY_PREFIX
    - hash_algo_by_length
    - show_usage_if_asked
    - die_errno
    - usage
    - read_in_full
    - write_in_full
    - strtol
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int cmd_get_tar_commit_id(int argc,\n\t\t\t  const char **argv,\n\t\t\t
      \ const char *prefix,\n\t\t\t  struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blame_nth_line
      Src: /src/git/builtin/blame.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - lno
    argTypes:
    - void*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nth_line_cb
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 1
    functionsReached:
    - blame_nth_line
    linkageType: ''
    returnType: char
    signature: char *nth_line_cb(void *data, long lno)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/git/builtin/blame.c:140,1
    - Dst: strlen
      Src: /src/git/builtin/blame.c:143,1
    - Dst: strchr
      Src: /src/git/builtin/blame.c:144,1
    - Dst: strlen
      Src: /src/git/builtin/blame.c:146,1
    - Dst: split_ident_line
      Src: /src/git/builtin/blame.c:150,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/blame.c:154,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/blame.c:155,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/blame.c:156,1
    - Dst: strtoul
      Src: /src/git/builtin/blame.c:168,1
    - Dst: strbuf_add
      Src: /src/git/builtin/blame.c:173,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/blame.c:175,1
    - Dst: map_user
      Src: /src/git/builtin/blame.c:180,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/blame.c:183,1
    - Dst: strbuf_add
      Src: /src/git/builtin/blame.c:184,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 6
    argNames:
    - inbuf
    - what
    - name
    - mail
    - time
    - tz
    argTypes:
    - char*
    - char*
    - struct strbuf*
    - struct strbuf*
    - timestamp_t*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 131
    functionDepth: 5
    functionLinenumber: 131
    functionLinenumberEnd: 185
    functionName: get_ac_line
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - strstr
    - strbuf_addf
    - strchr
    - strlen
    - map_user
    - strbuf_addstr
    - split_ident_line
    - strbuf_add
    - strtoul
    linkageType: ''
    returnType: void
    signature: "void get_ac_line(const char *inbuf, const char *what,\n\tstruct strbuf
      *name, struct strbuf *mail,\n\ttimestamp_t *time, struct strbuf *tz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/builtin/blame.c:190,1
    - Dst: strbuf_release
      Src: /src/git/builtin/blame.c:191,1
    - Dst: strbuf_release
      Src: /src/git/builtin/blame.c:192,1
    - Dst: strbuf_release
      Src: /src/git/builtin/blame.c:193,1
    - Dst: strbuf_release
      Src: /src/git/builtin/blame.c:194,1
    - Dst: strbuf_release
      Src: /src/git/builtin/blame.c:195,1
    - Dst: strbuf_release
      Src: /src/git/builtin/blame.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ci
    argTypes:
    - struct commit_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: commit_info_destroy
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void commit_info_destroy(struct commit_info *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_log_output_encoding
      Src: /src/git/builtin/blame.c:205,1
    - Dst: repo_logmsg_reencode
      Src: /src/git/builtin/blame.c:206,1
    - Dst: get_ac_line
      Src: /src/git/builtin/blame.c:207,1
    - Dst: get_ac_line
      Src: /src/git/builtin/blame.c:211,1
    - Dst: find_commit_subject
      Src: /src/git/builtin/blame.c:215,1
    - Dst: strbuf_add
      Src: /src/git/builtin/blame.c:217,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/blame.c:219,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/blame.c:219,1
    - Dst: repo_unuse_commit_buffer
      Src: /src/git/builtin/blame.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - commit
    - ret
    argTypes:
    - struct commit*
    - struct commit_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 222
    functionName: get_commit_info
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - find_commit_subject
    - strbuf_addf
    - repo_unuse_commit_buffer
    - get_log_output_encoding
    - repo_logmsg_reencode
    - get_ac_line
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void get_commit_info(struct commit *commit, struct commit_info *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/blame.c:237,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/blame.c:237,1
    - Dst: write_name_quoted
      Src: /src/git/builtin/blame.c:238,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:240,1
    - Dst: write_name_quoted
      Src: /src/git/builtin/blame.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - suspect
    argTypes:
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: write_filename_info
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - write_name_quoted
    - oid_to_hex
    - printf
    linkageType: ''
    returnType: void
    signature: void write_filename_info(struct blame_origin *suspect)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_info
      Src: /src/git/builtin/blame.c:258,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:259,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:260,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:261,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:262,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:263,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:264,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:265,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:266,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:267,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:269,1
    - Dst: commit_info_destroy
      Src: /src/git/builtin/blame.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - suspect
    - repeat
    argTypes:
    - struct blame_origin*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 274
    functionName: emit_one_suspect_detail
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - commit_info_destroy
    - printf
    - get_commit_info
    linkageType: ''
    returnType: int
    signature: int emit_one_suspect_detail(struct blame_origin *suspect, int repeat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/blame.c:287,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/blame.c:288,1
    - Dst: emit_one_suspect_detail
      Src: /src/git/builtin/blame.c:290,1
    - Dst: write_filename_info
      Src: /src/git/builtin/blame.c:291,1
    - Dst: maybe_flush_or_die
      Src: /src/git/builtin/blame.c:292,1
    - Dst: display_progress
      Src: /src/git/builtin/blame.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ent
    - data
    argTypes:
    - struct blame_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 280
    functionDepth: 6
    functionLinenumber: 280
    functionLinenumberEnd: 296
    functionName: found_guilty_entry
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - emit_one_suspect_detail
    - display_progress
    - write_filename_info
    - maybe_flush_or_die
    - printf
    linkageType: ''
    returnType: void
    signature: void found_guilty_entry(struct blame_entry *ent, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/builtin/blame.c:303,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/blame.c:305,1
    - Dst: atoi
      Src: /src/git/builtin/blame.c:311,1
    - Dst: show_date
      Src: /src/git/builtin/blame.c:312,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/blame.c:313,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/blame.c:318,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/blame.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - time
    - tz_str
    - show_raw_time
    argTypes:
    - timestamp_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 298
    functionDepth: 5
    functionLinenumber: 298
    functionLinenumberEnd: 324
    functionName: format_time
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - atoi
    - strbuf_reset
    - strbuf_addf
    - strbuf_addch
    - utf8_strwidth
    - show_date
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: "char *format_time(timestamp_t time, const char *tz_str,\n\t\t\t       int
      show_raw_time)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: emit_one_suspect_detail
      Src: /src/git/builtin/blame.c:341,1
    - Dst: write_filename_info
      Src: /src/git/builtin/blame.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - suspect
    - repeat
    argTypes:
    - struct blame_origin*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 6
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: emit_porcelain_details
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - write_filename_info
    - emit_one_suspect_detail
    linkageType: ''
    returnType: void
    signature: void emit_porcelain_details(struct blame_origin *suspect, int repeat)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/git/builtin/blame.c:354,1
    - Dst: puts
      Src: /src/git/builtin/blame.c:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ent
    argTypes:
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: emit_porcelain_per_line_details
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - puts
    linkageType: ''
    returnType: void
    signature: void emit_porcelain_per_line_details(struct blame_entry *ent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/blame.c:368,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:369,1
    - Dst: emit_porcelain_details
      Src: /src/git/builtin/blame.c:374,1
    - Dst: emit_porcelain_per_line_details
      Src: /src/git/builtin/blame.c:375,1
    - Dst: blame_nth_line
      Src: /src/git/builtin/blame.c:377,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:381,1
    - Dst: emit_porcelain_details
      Src: /src/git/builtin/blame.c:385,1
    - Dst: emit_porcelain_per_line_details
      Src: /src/git/builtin/blame.c:386,1
    - Dst: putchar
      Src: /src/git/builtin/blame.c:388,1
    - Dst: putchar
      Src: /src/git/builtin/blame.c:391,1
    - Dst: putchar
      Src: /src/git/builtin/blame.c:397,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - sb
    - ent
    - opt
    argTypes:
    - struct blame_scoreboard*
    - struct blame_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 359
    functionDepth: 7
    functionLinenumber: 359
    functionLinenumberEnd: 398
    functionName: emit_porcelain
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - putchar
    - oid_to_hex_r
    - emit_porcelain_per_line_details
    - blame_nth_line
    - emit_porcelain_details
    - printf
    linkageType: ''
    returnType: void
    signature: "void emit_porcelain(struct blame_scoreboard *sb, struct blame_entry
      *ent,\n\t\t\t   int opt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_list_split
      Src: /src/git/builtin/blame.c:415,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/blame.c:416,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/blame.c:418,1
    - Dst: approxidate
      Src: /src/git/builtin/blame.c:421,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/blame.c:424,1
    - Dst: color_parse
      Src: /src/git/builtin/blame.c:427,1
    - Dst: die
      Src: /src/git/builtin/blame.c:428,1
    - Dst: _
      Src: /src/git/builtin/blame.c:428,1
    - Dst: die
      Src: /src/git/builtin/blame.c:435,1
    - Dst: _
      Src: /src/git/builtin/blame.c:435,1
    - Dst: string_list_clear
      Src: /src/git/builtin/blame.c:438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 406
    functionDepth: 5
    functionLinenumber: 406
    functionLinenumberEnd: 439
    functionName: parse_color_fields
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - string_list_clear
    - die
    - approxidate
    - string_list_split
    - color_parse
    - ALLOC_GROW
    - _
    linkageType: ''
    returnType: void
    signature: void parse_color_fields(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_color_fields
      Src: /src/git/builtin/blame.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 6
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: setup_default_color_by_age
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - parse_color_fields
    linkageType: ''
    returnType: void
    signature: void setup_default_color_by_age(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ci
    - dest_color
    argTypes:
    - struct commit_info*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: determine_line_heat
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void determine_line_heat(struct commit_info *ci, const char **dest_color)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: get_commit_info
      Src: /src/git/builtin/blame.c:467,1
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/blame.c:468,1
    - Dst: blame_nth_line
      Src: /src/git/builtin/blame.c:470,1
    - Dst: determine_line_heat
      Src: /src/git/builtin/blame.c:473,1
    - Dst: BUG
      Src: /src/git/builtin/blame.c:479,1
    - Dst: oideq
      Src: /src/git/builtin/blame.c:490,1
    - Dst: fputs
      Src: /src/git/builtin/blame.c:500,1
    - Dst: memset
      Src: /src/git/builtin/blame.c:504,1
    - Dst: strlen
      Src: /src/git/builtin/blame.c:504,1
    - Dst: putchar
      Src: /src/git/builtin/blame.c:507,1
    - Dst: putchar
      Src: /src/git/builtin/blame.c:513,1
    - Dst: putchar
      Src: /src/git/builtin/blame.c:517,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:520,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:527,1
    - Dst: format_time
      Src: /src/git/builtin/blame.c:528,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:533,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:537,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:540,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/blame.c:550,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:551,1
    - Dst: format_time
      Src: /src/git/builtin/blame.c:553,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:557,1
    - Dst: fputs
      Src: /src/git/builtin/blame.c:561,1
    - Dst: putchar
      Src: /src/git/builtin/blame.c:564,1
    - Dst: putchar
      Src: /src/git/builtin/blame.c:570,1
    - Dst: commit_info_destroy
      Src: /src/git/builtin/blame.c:572,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 4
    argNames:
    - sb
    - ent
    - opt
    - prev_ent
    argTypes:
    - struct blame_scoreboard*
    - struct blame_entry*
    - int
    - struct blame_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 456
    functionDepth: 6
    functionLinenumber: 456
    functionLinenumberEnd: 573
    functionName: emit_other
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - format_time
    - memset
    - oid_to_hex_r
    - fputs
    - putchar
    - blame_nth_line
    - commit_info_destroy
    - get_commit_info
    - determine_line_heat
    - strlen
    - utf8_strwidth
    - BUG
    - printf
    - oideq
    linkageType: ''
    returnType: void
    signature: "void emit_other(struct blame_scoreboard *sb, struct blame_entry *ent,\n\t\t
      \      int opt, struct blame_entry *prev_ent)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_blame_suspects
      Src: /src/git/builtin/blame.c:586,1
    - Dst: emit_porcelain
      Src: /src/git/builtin/blame.c:597,1
    - Dst: emit_other
      Src: /src/git/builtin/blame.c:599,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - sb
    - option
    argTypes:
    - struct blame_scoreboard*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 575
    functionDepth: 8
    functionLinenumber: 575
    functionLinenumberEnd: 603
    functionName: output
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 30
    functionsReached:
    - emit_other
    - get_blame_suspects
    - emit_porcelain
    linkageType: ''
    returnType: void
    signature: void output(struct blame_scoreboard *sb, int option)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen_or_warn
      Src: /src/git/builtin/blame.c:612,1
    - Dst: strbuf_getwholeline
      Src: /src/git/builtin/blame.c:616,1
    - Dst: read_graft_line
      Src: /src/git/builtin/blame.c:618,1
    - Dst: register_commit_graft
      Src: /src/git/builtin/blame.c:620,1
    - Dst: fclose
      Src: /src/git/builtin/blame.c:622,1
    - Dst: strbuf_release
      Src: /src/git/builtin/blame.c:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - graft_file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 610
    functionDepth: 6
    functionLinenumber: 610
    functionLinenumberEnd: 625
    functionName: read_ancestry
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - fclose
    - strbuf_release
    - read_graft_line
    - register_commit_graft
    - fopen_or_warn
    linkageType: ''
    returnType: int
    signature: int read_ancestry(const char *graft_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/blame.c:629,1
    - Dst: strlen
      Src: /src/git/builtin/blame.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - auto_abbrev
    - suspect
    argTypes:
    - int
    - struct blame_origin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 636
    functionName: update_auto_abbrev
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - strlen
    - repo_find_unique_abbrev
    linkageType: ''
    returnType: int
    signature: int update_auto_abbrev(int auto_abbrev, struct blame_origin *suspect)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: update_auto_abbrev
      Src: /src/git/builtin/blame.c:656,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:657,1
    - Dst: strlen
      Src: /src/git/builtin/blame.c:659,1
    - Dst: get_commit_info
      Src: /src/git/builtin/blame.c:665,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/blame.c:667,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/blame.c:669,1
    - Dst: commit_info_destroy
      Src: /src/git/builtin/blame.c:672,1
    - Dst: blame_entry_score
      Src: /src/git/builtin/blame.c:680,1
    - Dst: blame_entry_score
      Src: /src/git/builtin/blame.c:681,1
    - Dst: decimal_width
      Src: /src/git/builtin/blame.c:683,1
    - Dst: decimal_width
      Src: /src/git/builtin/blame.c:684,1
    - Dst: decimal_width
      Src: /src/git/builtin/blame.c:685,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - sb
    - option
    argTypes:
    - struct blame_scoreboard*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 642
    functionDepth: 5
    functionLinenumber: 642
    functionLinenumberEnd: 690
    functionName: find_alignment
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - blame_entry_score
    - commit_info_destroy
    - get_commit_info
    - decimal_width
    - strlen
    - utf8_strwidth
    - strcmp
    - update_auto_abbrev
    linkageType: ''
    returnType: void
    signature: void find_alignment(struct blame_scoreboard *sb, int *option)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_alignment
      Src: /src/git/builtin/blame.c:695,1
    - Dst: output
      Src: /src/git/builtin/blame.c:696,1
    - Dst: die
      Src: /src/git/builtin/blame.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sb
    - baa
    argTypes:
    - struct blame_scoreboard*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 692
    functionDepth: 6
    functionLinenumber: 692
    functionLinenumberEnd: 698
    functionName: sanity_check_on_fail
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - find_alignment
    - die
    - output
    linkageType: ''
    returnType: void
    signature: void sanity_check_on_fail(struct blame_scoreboard *sb, int baa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/builtin/blame.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 707
    functionName: parse_score
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: unsigned
    signature: unsigned parse_score(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prefix_path
      Src: /src/git/builtin/blame.c:711,1
    - Dst: strlen
      Src: /src/git/builtin/blame.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prefix
    - path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 709
    functionDepth: 7
    functionLinenumber: 709
    functionLinenumberEnd: 712
    functionName: add_prefix
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - strlen
    - prefix_path
    linkageType: ''
    returnType: char
    signature: char *add_prefix(const char *prefix, const char *path)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:717,1
    - Dst: git_config_bool
      Src: /src/git/builtin/blame.c:718,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:721,1
    - Dst: git_config_bool
      Src: /src/git/builtin/blame.c:722,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:725,1
    - Dst: git_config_bool
      Src: /src/git/builtin/blame.c:727,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:733,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/blame.c:735,1
    - Dst: parse_date_format
      Src: /src/git/builtin/blame.c:736,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:739,1
    - Dst: git_config_pathname
      Src: /src/git/builtin/blame.c:743,1
    - Dst: string_list_insert
      Src: /src/git/builtin/blame.c:747,1
    - Dst: free
      Src: /src/git/builtin/blame.c:748,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:751,1
    - Dst: git_config_bool
      Src: /src/git/builtin/blame.c:752,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:755,1
    - Dst: git_config_bool
      Src: /src/git/builtin/blame.c:756,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:759,1
    - Dst: color_parse_mem
      Src: /src/git/builtin/blame.c:760,1
    - Dst: strlen
      Src: /src/git/builtin/blame.c:760,1
    - Dst: warning
      Src: /src/git/builtin/blame.c:761,1
    - Dst: _
      Src: /src/git/builtin/blame.c:761,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:765,1
    - Dst: parse_color_fields
      Src: /src/git/builtin/blame.c:766,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:770,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/blame.c:772,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:773,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:775,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:777,1
    - Dst: warning
      Src: /src/git/builtin/blame.c:781,1
    - Dst: _
      Src: /src/git/builtin/blame.c:781,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:787,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/blame.c:790,1
    - Dst: parse_algorithm_value
      Src: /src/git/builtin/blame.c:791,1
    - Dst: error
      Src: /src/git/builtin/blame.c:793,1
    - Dst: _
      Src: /src/git/builtin/blame.c:793,1
    - Dst: git_diff_heuristic_config
      Src: /src/git/builtin/blame.c:800,1
    - Dst: userdiff_config
      Src: /src/git/builtin/blame.c:802,1
    - Dst: git_default_config
      Src: /src/git/builtin/blame.c:805,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 714
    functionDepth: 7
    functionLinenumber: 714
    functionLinenumberEnd: 806
    functionName: git_blame_config
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - error
    - git_config_pathname
    - userdiff_config
    - string_list_insert
    - parse_date_format
    - parse_algorithm_value
    - git_diff_heuristic_config
    - _
    - strlen
    - strcmp
    - git_default_config
    - git_config_bool
    - free
    - warning
    - color_parse_mem
    - config_error_nonbool
    - parse_color_fields
    linkageType: ''
    returnType: int
    signature: "int git_blame_config(const char *var, const char *value,\n\t\t\t    const
      struct config_context *ctx, void *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/blame.c:812,1
    - Dst: parse_score
      Src: /src/git/builtin/blame.c:828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - option
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 830
    functionName: blame_copy_callback
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - parse_score
    linkageType: ''
    returnType: int
    signature: int blame_copy_callback(const struct option *option, const char *arg,
      int unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/blame.c:836,1
    - Dst: parse_score
      Src: /src/git/builtin/blame.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - option
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 843
    functionName: blame_move_callback
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_NEG
    - parse_score
    linkageType: ''
    returnType: int
    signature: int blame_move_callback(const struct option *option, const char *arg,
      int unset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_ARG
      Src: /src/git/builtin/blame.c:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - option
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 857
    functionName: blame_diff_algorithm_minimal
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - BUG_ON_OPT_ARG
    linkageType: ''
    returnType: int
    signature: "int blame_diff_algorithm_minimal(const struct option *option,\n\t\t\t\t\tconst
      char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_algorithm_value
      Src: /src/git/builtin/blame.c:863,1
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/blame.c:865,1
    - Dst: error
      Src: /src/git/builtin/blame.c:868,1
    - Dst: _
      Src: /src/git/builtin/blame.c:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - option
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 875
    functionName: blame_diff_algorithm_callback
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - error
    - parse_algorithm_value
    - _
    - BUG_ON_OPT_NEG
    linkageType: ''
    returnType: int
    signature: "int blame_diff_algorithm_callback(const struct option *option,\n\t\t\t\t\t
      const char *arg, int unset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/blame.c:881,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/blame.c:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 877
    functionDepth: 12
    functionLinenumber: 877
    functionLinenumberEnd: 884
    functionName: is_a_rev
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    - repo_get_oid
    linkageType: ''
    returnType: int
    signature: int is_a_rev(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/builtin/blame.c:891,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/blame.c:894,1
    - Dst: oidcpy
      Src: /src/git/builtin/blame.c:896,1
    - Dst: deref_tag
      Src: /src/git/builtin/blame.c:901,1
    - Dst: parse_object
      Src: /src/git/builtin/blame.c:901,1
    - Dst: oidcpy
      Src: /src/git/builtin/blame.c:904,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - oid_ret
    - cbdata
    argTypes:
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 886
    functionDepth: 12
    functionLinenumber: 886
    functionLinenumberEnd: 906
    functionName: peel_to_commit_oid
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    - deref_tag
    - parse_object
    - oidcpy
    linkageType: ''
    returnType: int
    signature: int peel_to_commit_oid(struct object_id *oid_ret, void *cbdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidset_init
      Src: /src/git/builtin/blame.c:915,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:917,1
    - Dst: oidset_clear
      Src: /src/git/builtin/blame.c:918,1
    - Dst: oidset_parse_file_carefully
      Src: /src/git/builtin/blame.c:920,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/blame.c:925,1
    - Dst: peel_to_commit_oid
      Src: /src/git/builtin/blame.c:926,1
    - Dst: die
      Src: /src/git/builtin/blame.c:927,1
    - Dst: _
      Src: /src/git/builtin/blame.c:927,1
    - Dst: oidset_insert
      Src: /src/git/builtin/blame.c:928,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - sb
    - ignore_revs_file_list
    - ignore_rev_list
    argTypes:
    - struct blame_scoreboard*
    - struct string_list*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 908
    functionDepth: 13
    functionLinenumber: 908
    functionLinenumberEnd: 930
    functionName: build_ignorelist
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 0
    functionsReached:
    - oidset_init
    - die
    - oidset_clear
    - strcmp
    - peel_to_commit_oid
    - repo_get_oid_committish
    - oidset_insert
    - oidset_parse_file_carefully
    - _
    linkageType: ''
    returnType: void
    signature: "void build_ignorelist(struct blame_scoreboard *sb,\n\t\t\t     struct
      string_list *ignore_revs_file_list,\n\t\t\t     struct string_list *ignore_rev_list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:917,1
    - Dst: oidset_clear
      Src: /src/git/builtin/blame.c:918,1
    - Dst: oidset_parse_file_carefully
      Src: /src/git/builtin/blame.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 916
    functionDepth: 6
    functionLinenumber: 916
    functionLinenumberEnd: 923
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 88
    functionsReached:
    - oidset_clear
    - oidset_parse_file_carefully
    - strcmp
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(i, ignore_revs_file_list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/blame.c:925,1
    - Dst: peel_to_commit_oid
      Src: /src/git/builtin/blame.c:926,1
    - Dst: die
      Src: /src/git/builtin/blame.c:927,1
    - Dst: _
      Src: /src/git/builtin/blame.c:927,1
    - Dst: oidset_insert
      Src: /src/git/builtin/blame.c:928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 924
    functionDepth: 13
    functionLinenumber: 924
    functionLinenumberEnd: 929
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 88
    functionsReached:
    - die
    - repo_get_oid_committish
    - peel_to_commit_oid
    - oidset_insert
    - _
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(i, ignore_rev_list)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/blame.c:952,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:952,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/blame.c:953,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:953,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/blame.c:954,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:954,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/blame.c:955,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:955,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/blame.c:956,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:956,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:957,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:957,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:958,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:958,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:959,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:959,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:960,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:960,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:961,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:961,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:962,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:962,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:963,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:963,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:964,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:964,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:965,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:965,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:966,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:966,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:967,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:967,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/blame.c:968,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:968,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:969,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/blame.c:971,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:971,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:971,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/blame.c:972,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:972,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:972,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:973,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:973,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/blame.c:974,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:974,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/blame.c:975,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:976,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/blame.c:978,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:978,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:978,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/blame.c:979,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:979,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:979,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/blame.c:980,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:980,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:980,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/blame.c:981,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:981,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:981,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/blame.c:982,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:982,1
    - Dst: N_
      Src: /src/git/builtin/blame.c:983,1
    - Dst: OPT__ABBREV
      Src: /src/git/builtin/blame.c:984,1
    - Dst: OPT_END
      Src: /src/git/builtin/blame.c:985,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:989,1
    - Dst: setup_default_color_by_age
      Src: /src/git/builtin/blame.c:997,1
    - Dst: repo_config
      Src: /src/git/builtin/blame.c:998,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/blame.c:999,1
    - Dst: parse_options_start
      Src: /src/git/builtin/blame.c:1008,1
    - Dst: parse_options_step
      Src: /src/git/builtin/blame.c:1011,1
    - Dst: exit
      Src: /src/git/builtin/blame.c:1018,1
    - Dst: exit
      Src: /src/git/builtin/blame.c:1020,1
    - Dst: strcmp
      Src: /src/git/builtin/blame.c:1027,1
    - Dst: parse_revision_opt
      Src: /src/git/builtin/blame.c:1031,1
    - Dst: revision_opts_finish
      Src: /src/git/builtin/blame.c:1034,1
    - Dst: parse_options_end
      Src: /src/git/builtin/blame.c:1038,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/blame.c:1040,1
    - Dst: die
      Src: /src/git/builtin/blame.c:1045,1
    - Dst: _
      Src: /src/git/builtin/blame.c:1045,1
    - Dst: isatty
      Src: /src/git/builtin/blame.c:1048,1
    - Dst: read_ancestry
      Src: /src/git/builtin/blame.c:1056,1
    - Dst: die_errno
      Src: /src/git/builtin/blame.c:1057,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/blame.c:1096,1
    - Dst: _
      Src: /src/git/builtin/blame.c:1096,1
    - Dst: strlen
      Src: /src/git/builtin/blame.c:1106,1
    - Dst: show_date
      Src: /src/git/builtin/blame.c:1106,1
    - Dst: usage_with_options
      Src: /src/git/builtin/blame.c:1137,1
    - Dst: add_prefix
      Src: /src/git/builtin/blame.c:1144,1
    - Dst: usage_with_options
      Src: /src/git/builtin/blame.c:1148,1
    - Dst: usage_with_options
      Src: /src/git/builtin/blame.c:1152,1
    - Dst: is_a_rev
      Src: /src/git/builtin/blame.c:1153,1
    - Dst: add_prefix
      Src: /src/git/builtin/blame.c:1154,1
    - Dst: is_a_rev
      Src: /src/git/builtin/blame.c:1157,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/blame.c:1157,1
    - Dst: die
      Src: /src/git/builtin/blame.c:1158,1
    - Dst: add_prefix
      Src: /src/git/builtin/blame.c:1159,1
    - Dst: setup_revisions
      Src: /src/git/builtin/blame.c:1165,1
    - Dst: is_bare_repository
      Src: /src/git/builtin/blame.c:1166,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/blame.c:1170,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/blame.c:1170,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/blame.c:1172,1
    - Dst: die
      Src: /src/git/builtin/blame.c:1174,1
    - Dst: add_pending_object
      Src: /src/git/builtin/blame.c:1176,1
    - Dst: init_scoreboard
      Src: /src/git/builtin/blame.c:1179,1
    - Dst: build_ignorelist
      Src: /src/git/builtin/blame.c:1185,1
    - Dst: string_list_clear
      Src: /src/git/builtin/blame.c:1186,1
    - Dst: string_list_clear
      Src: /src/git/builtin/blame.c:1187,1
    - Dst: setup_scoreboard
      Src: /src/git/builtin/blame.c:1188,1
    - Dst: setup_blame_bloom_data
      Src: /src/git/builtin/blame.c:1195,1
    - Dst: string_list_append
      Src: /src/git/builtin/blame.c:1200,1
    - Dst: range_set_init
      Src: /src/git/builtin/blame.c:1203,1
    - Dst: parse_range_arg
      Src: /src/git/builtin/blame.c:1206,1
    - Dst: usage
      Src: /src/git/builtin/blame.c:1210,1
    - Dst: die
      Src: /src/git/builtin/blame.c:1212,1
    - Dst: Q_
      Src: /src/git/builtin/blame.c:1212,1
    - Dst: range_set_append_unsafe
      Src: /src/git/builtin/blame.c:1220,1
    - Dst: sort_and_merge_range_set
      Src: /src/git/builtin/blame.c:1223,1
    - Dst: blame_entry_prepend
      Src: /src/git/builtin/blame.c:1227,1
    - Dst: prio_queue_put
      Src: /src/git/builtin/blame.c:1234,1
    - Dst: blame_origin_decref
      Src: /src/git/builtin/blame.c:1236,1
    - Dst: range_set_release
      Src: /src/git/builtin/blame.c:1238,1
    - Dst: string_list_clear
      Src: /src/git/builtin/blame.c:1239,1
    - Dst: read_mailmap
      Src: /src/git/builtin/blame.c:1255,1
    - Dst: start_delayed_progress
      Src: /src/git/builtin/blame.c:1260,1
    - Dst: _
      Src: /src/git/builtin/blame.c:1261,1
    - Dst: assign_blame
      Src: /src/git/builtin/blame.c:1264,1
    - Dst: stop_progress
      Src: /src/git/builtin/blame.c:1266,1
    - Dst: setup_pager
      Src: /src/git/builtin/blame.c:1269,1
    - Dst: blame_sort_final
      Src: /src/git/builtin/blame.c:1273,1
    - Dst: blame_coalesce
      Src: /src/git/builtin/blame.c:1275,1
    - Dst: find_alignment
      Src: /src/git/builtin/blame.c:1281,1
    - Dst: xsnprintf
      Src: /src/git/builtin/blame.c:1284,1
    - Dst: output
      Src: /src/git/builtin/blame.c:1291,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:1294,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:1295,1
    - Dst: printf
      Src: /src/git/builtin/blame.c:1296,1
    - Dst: free
      Src: /src/git/builtin/blame.c:1302,1
    - Dst: free
      Src: /src/git/builtin/blame.c:1306,1
    - Dst: cleanup_scoreboard
      Src: /src/git/builtin/blame.c:1307,1
    - Dst: release_revisions
      Src: /src/git/builtin/blame.c:1308,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 222
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 932
    functionDepth: 30
    functionLinenumber: 932
    functionLinenumberEnd: 1310
    functionName: cmd_blame
    functionSourceFile: /src/git/builtin/blame.c
    functionUses: 1
    functionsReached:
    - setup_default_color_by_age
    - is_a_rev
    - blame_origin_decref
    - stop_progress
    - refs_resolve_ref_unsafe
    - parse_options_start
    - setup_scoreboard
    - OPT_BOOL
    - repo_init_revisions
    - start_delayed_progress
    - xsnprintf
    - strcmp
    - free
    - repo_config
    - printf
    - usage_with_options
    - get_main_ref_store
    - setup_blame_bloom_data
    - OPT_END
    - die
    - range_set_release
    - prio_queue_put
    - release_revisions
    - revision_opts_finish
    - parse_revision_opt
    - blame_entry_prepend
    - read_mailmap
    - range_set_append_unsafe
    - OPT_BIT
    - blame_coalesce
    - Q_
    - build_ignorelist
    - parse_range_arg
    - isatty
    - OPT_STRING_LIST
    - string_list_clear
    - OPT__ABBREV
    - add_prefix
    - setup_pager
    - repo_get_work_tree
    - assign_blame
    - die_errno
    - cleanup_scoreboard
    - blame_sort_final
    - output
    - parse_options_step
    - find_alignment
    - string_list_append
    - _
    - N_
    - setup_revisions
    - read_ancestry
    - sort_and_merge_range_set
    - is_bare_repository
    - range_set_init
    - lookup_commit_reference_gently
    - exit
    - OPT_CALLBACK_F
    - OPT_STRING
    - usage
    - prepare_repo_settings
    - add_pending_object
    - utf8_strwidth
    - strlen
    - show_date
    - init_scoreboard
    - parse_options_end
    linkageType: ''
    returnType: int
    signature: "int cmd_blame(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repo UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/upload-archive.c:30,1
    - Dst: usage
      Src: /src/git/builtin/upload-archive.c:32,1
    - Dst: enter_repo
      Src: /src/git/builtin/upload-archive.c:34,1
    - Dst: die
      Src: /src/git/builtin/upload-archive.c:35,1
    - Dst: init_archivers
      Src: /src/git/builtin/upload-archive.c:37,1
    - Dst: strvec_push
      Src: /src/git/builtin/upload-archive.c:40,1
    - Dst: packet_read_line
      Src: /src/git/builtin/upload-archive.c:42,1
    - Dst: die
      Src: /src/git/builtin/upload-archive.c:46,1
    - Dst: starts_with
      Src: /src/git/builtin/upload-archive.c:48,1
    - Dst: die
      Src: /src/git/builtin/upload-archive.c:49,1
    - Dst: strvec_push
      Src: /src/git/builtin/upload-archive.c:50,1
    - Dst: strlen
      Src: /src/git/builtin/upload-archive.c:50,1
    - Dst: write_archive
      Src: /src/git/builtin/upload-archive.c:54,1
    - Dst: strvec_clear
      Src: /src/git/builtin/upload-archive.c:57,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 21
    functionDepth: 20
    functionLinenumber: 21
    functionLinenumberEnd: 59
    functionName: cmd_upload_archive_writer
    functionSourceFile: /src/git/builtin/upload-archive.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - packet_read_line
    - die
    - show_usage_if_asked
    - usage
    - starts_with
    - write_archive
    - strlen
    - init_archivers
    - strvec_clear
    - enter_repo
    linkageType: ''
    returnType: int
    signature: "int cmd_upload_archive_writer(int argc,\n\t\t\t      const char **argv,\n\t\t\t
      \     const char *prefix,\n\t\t\t      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/builtin/upload-archive.c:61,1
    - Dst: va_start
      Src: /src/git/builtin/upload-archive.c:67,1
    - Dst: strbuf_vaddf
      Src: /src/git/builtin/upload-archive.c:68,1
    - Dst: va_end
      Src: /src/git/builtin/upload-archive.c:69,1
    - Dst: send_sideband
      Src: /src/git/builtin/upload-archive.c:70,1
    - Dst: die
      Src: /src/git/builtin/upload-archive.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: error_clnt
    functionSourceFile: /src/git/builtin/upload-archive.c
    functionUses: 0
    functionsReached:
    - strbuf_vaddf
    - send_sideband
    - die
    - va_end
    - va_start
    - format
    linkageType: ''
    returnType: void
    signature: void error_clnt(const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/git/builtin/upload-archive.c:77,1
    - Dst: error_clnt
      Src: /src/git/builtin/upload-archive.c:80,1
    - Dst: strerror
      Src: /src/git/builtin/upload-archive.c:80,1
    - Dst: send_sideband
      Src: /src/git/builtin/upload-archive.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - child_fd
    - band
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: process_input
    functionSourceFile: /src/git/builtin/upload-archive.c
    functionUses: 0
    functionsReached:
    - read
    - strerror
    - send_sideband
    - error_clnt
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t process_input(int child_fd, int band)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_NON_EMPTY_PREFIX
      Src: /src/git/builtin/upload-archive.c:94,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/upload-archive.c:96,1
    - Dst: strvec_push
      Src: /src/git/builtin/upload-archive.c:107,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/upload-archive.c:108,1
    - Dst: start_command
      Src: /src/git/builtin/upload-archive.c:109,1
    - Dst: packet_write_fmt
      Src: /src/git/builtin/upload-archive.c:111,1
    - Dst: die
      Src: /src/git/builtin/upload-archive.c:112,1
    - Dst: strerror
      Src: /src/git/builtin/upload-archive.c:112,1
    - Dst: packet_write_fmt
      Src: /src/git/builtin/upload-archive.c:115,1
    - Dst: packet_flush
      Src: /src/git/builtin/upload-archive.c:116,1
    - Dst: poll
      Src: /src/git/builtin/upload-archive.c:125,1
    - Dst: error_errno
      Src: /src/git/builtin/upload-archive.c:127,1
    - Dst: sleep
      Src: /src/git/builtin/upload-archive.c:128,1
    - Dst: process_input
      Src: /src/git/builtin/upload-archive.c:134,1
    - Dst: process_input
      Src: /src/git/builtin/upload-archive.c:138,1
    - Dst: finish_command
      Src: /src/git/builtin/upload-archive.c:141,1
    - Dst: error_clnt
      Src: /src/git/builtin/upload-archive.c:142,1
    - Dst: packet_flush
      Src: /src/git/builtin/upload-archive.c:143,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 87
    functionDepth: 7
    functionLinenumber: 87
    functionLinenumberEnd: 147
    functionName: cmd_upload_archive
    functionSourceFile: /src/git/builtin/upload-archive.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - packet_write_fmt
    - error_errno
    - BUG_ON_NON_EMPTY_PREFIX
    - die
    - poll
    - finish_command
    - strvec_pushv
    - show_usage_if_asked
    - strerror
    - packet_flush
    - process_input
    - sleep
    - start_command
    - error_clnt
    linkageType: ''
    returnType: int
    signature: 'int cmd_upload_archive(int argc,

      const char **argv,

      const char *prefix,

      struct repository *repo UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/checkout.c:120,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:121,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:122,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct branch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: branch_info_release
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void branch_info_release(struct branch_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/checkout.c:135,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/checkout.c:136,1
    - Dst: null_oid
      Src: /src/git/builtin/checkout.c:136,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/checkout.c:137,1
    - Dst: null_oid
      Src: /src/git/builtin/checkout.c:137,1
    - Dst: run_hooks_opt
      Src: /src/git/builtin/checkout.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - old_commit
    - new_commit
    - changed
    argTypes:
    - struct commit*
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 126
    functionDepth: 12
    functionLinenumber: 126
    functionLinenumberEnd: 142
    functionName: post_checkout_hook
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - run_hooks_opt
    - oid_to_hex
    - strvec_pushl
    - null_oid
    linkageType: ''
    returnType: int
    signature: "int post_checkout_hook(struct commit *old_commit, struct commit *new_commit,\n\t\t\t
      \     int changed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/git/builtin/checkout.c:151,1
    - Dst: strlen
      Src: /src/git/builtin/checkout.c:154,1
    - Dst: make_empty_cache_entry
      Src: /src/git/builtin/checkout.c:155,1
    - Dst: oidcpy
      Src: /src/git/builtin/checkout.c:156,1
    - Dst: memcpy
      Src: /src/git/builtin/checkout.c:157,1
    - Dst: memcpy
      Src: /src/git/builtin/checkout.c:158,1
    - Dst: create_ce_flags
      Src: /src/git/builtin/checkout.c:159,1
    - Dst: create_ce_mode
      Src: /src/git/builtin/checkout.c:161,1
    - Dst: index_name_pos
      Src: /src/git/builtin/checkout.c:168,1
    - Dst: ce_intent_to_add
      Src: /src/git/builtin/checkout.c:172,1
    - Dst: oideq
      Src: /src/git/builtin/checkout.c:173,1
    - Dst: discard_cache_entry
      Src: /src/git/builtin/checkout.c:175,1
    - Dst: add_index_entry
      Src: /src/git/builtin/checkout.c:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - oid
    - base
    - pathname
    - mode
    - context
    argTypes:
    - struct object_id*
    - struct strbuf*
    - char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 144
    functionDepth: 8
    functionLinenumber: 144
    functionLinenumberEnd: 183
    functionName: update_some
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - index_name_pos
    - oidcpy
    - ce_intent_to_add
    - make_empty_cache_entry
    - memcpy
    - discard_cache_entry
    - add_index_entry
    - strlen
    - create_ce_mode
    - create_ce_flags
    - oideq
    linkageType: ''
    returnType: int
    signature: "int update_some(const struct object_id *oid, struct strbuf *base,\n\t\t
      \      const char *pathname, unsigned mode, void *context UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_tree
      Src: /src/git/builtin/checkout.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tree
    - pathspec
    argTypes:
    - struct tree*
    - struct pathspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 9
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: read_tree_some
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - read_tree
    linkageType: ''
    returnType: int
    signature: int read_tree_some(struct tree *tree, const struct pathspec *pathspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ce
    - pos
    argTypes:
    - struct cache_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: skip_same_name
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int skip_same_name(const struct cache_entry *ce, int pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:209,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout.c:210,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:217,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:217,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:219,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - stage
    - ce
    - pos
    - overlay_mode
    argTypes:
    - int
    - struct cache_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: check_stage
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - error
    - ce_stage
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int check_stage(int stage, const struct cache_entry *ce, int pos,\n\t\t
      \      int overlay_mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:229,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout.c:231,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:235,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - stages
    - ce
    - pos
    argTypes:
    - unsigned
    - struct cache_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 238
    functionName: check_stages
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - error
    - ce_stage
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: int check_stages(unsigned stages, const struct cache_entry *ce, int
      pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:245,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout.c:246,1
    - Dst: checkout_entry
      Src: /src/git/builtin/checkout.c:247,1
    - Dst: unlink_entry
      Src: /src/git/builtin/checkout.c:252,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:256,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:256,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:258,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - stage
    - ce
    - pos
    - state
    - nr_checkouts
    - overlay_mode
    argTypes:
    - int
    - struct cache_entry*
    - int
    - struct checkout*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 240
    functionDepth: 11
    functionLinenumber: 240
    functionLinenumberEnd: 259
    functionName: checkout_stage
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - error
    - checkout_entry
    - unlink_entry
    - strcmp
    - ce_stage
    - _
    linkageType: ''
    returnType: int
    signature: "int checkout_stage(int stage, const struct cache_entry *ce, int pos,\n\t\t\t
      \ const struct checkout *state, int *nr_checkouts,\n\t\t\t  int overlay_mode)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/checkout.c:277,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout.c:280,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:281,1
    - Dst: oidcpy
      Src: /src/git/builtin/checkout.c:283,1
    - Dst: create_ce_mode
      Src: /src/git/builtin/checkout.c:285,1
    - Dst: is_null_oid
      Src: /src/git/builtin/checkout.c:289,1
    - Dst: is_null_oid
      Src: /src/git/builtin/checkout.c:289,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:290,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:290,1
    - Dst: read_mmblob
      Src: /src/git/builtin/checkout.c:292,1
    - Dst: read_mmblob
      Src: /src/git/builtin/checkout.c:293,1
    - Dst: read_mmblob
      Src: /src/git/builtin/checkout.c:294,1
    - Dst: repo_config_get_bool
      Src: /src/git/builtin/checkout.c:296,1
    - Dst: ll_merge
      Src: /src/git/builtin/checkout.c:299,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:302,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:303,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:304,1
    - Dst: warning
      Src: /src/git/builtin/checkout.c:306,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:309,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:310,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:310,1
    - Dst: odb_write_object
      Src: /src/git/builtin/checkout.c:325,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:326,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:326,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:327,1
    - Dst: make_transient_cache_entry
      Src: /src/git/builtin/checkout.c:328,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:330,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:330,1
    - Dst: checkout_entry
      Src: /src/git/builtin/checkout.c:331,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - pos
    - state
    - nr_checkouts
    - ce_mem_pool
    - conflict_style
    argTypes:
    - int
    - struct checkout*
    - int*
    - struct mem_pool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 261
    functionDepth: 22
    functionLinenumber: 261
    functionLinenumberEnd: 333
    functionName: checkout_merged
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - error
    - ll_merge
    - memset
    - die
    - odb_write_object
    - checkout_entry
    - oidcpy
    - read_mmblob
    - is_null_oid
    - repo_config_get_bool
    - make_transient_cache_entry
    - strcmp
    - create_ce_mode
    - free
    - warning
    - ce_stage
    - _
    linkageType: ''
    returnType: int
    signature: "int checkout_merged(int pos, const struct checkout *state,\n\t\t\t
      \  int *nr_checkouts, struct mem_pool *ce_mem_pool,\n\t\t\t   int conflict_style)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/checkout.c:340,1
    - Dst: ce_path_match
      Src: /src/git/builtin/checkout.c:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - ce
    - ps_matched
    - opts
    argTypes:
    - struct cache_entry*
    - char*
    - struct checkout_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 335
    functionDepth: 7
    functionLinenumber: 335
    functionLinenumberEnd: 367
    functionName: mark_ce_for_checkout_overlay
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - ce_skip_worktree
    - ce_path_match
    linkageType: ''
    returnType: void
    signature: "void mark_ce_for_checkout_overlay(struct cache_entry *ce,\n\t\t\t\t\t
      char *ps_matched,\n\t\t\t\t\t const struct checkout_opts *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/checkout.c:374,1
    - Dst: ce_path_match
      Src: /src/git/builtin/checkout.c:376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ce
    - ps_matched
    - opts
    argTypes:
    - struct cache_entry*
    - char*
    - struct checkout_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 369
    functionDepth: 7
    functionLinenumber: 369
    functionLinenumberEnd: 386
    functionName: mark_ce_for_checkout_no_overlay
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - ce_skip_worktree
    - ce_path_match
    linkageType: ''
    returnType: void
    signature: "void mark_ce_for_checkout_no_overlay(struct cache_entry *ce,\n\t\t\t\t\t
      \   char *ps_matched,\n\t\t\t\t\t    const struct checkout_opts *opts)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mem_pool_init
      Src: /src/git/builtin/checkout.c:402,1
    - Dst: get_parallel_checkout_configs
      Src: /src/git/builtin/checkout.c:403,1
    - Dst: init_checkout_metadata
      Src: /src/git/builtin/checkout.c:404,1
    - Dst: enable_delayed_checkout
      Src: /src/git/builtin/checkout.c:408,1
    - Dst: init_parallel_checkout
      Src: /src/git/builtin/checkout.c:411,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout.c:416,1
    - Dst: checkout_entry
      Src: /src/git/builtin/checkout.c:417,1
    - Dst: checkout_stage
      Src: /src/git/builtin/checkout.c:422,1
    - Dst: checkout_merged
      Src: /src/git/builtin/checkout.c:427,1
    - Dst: skip_same_name
      Src: /src/git/builtin/checkout.c:431,1
    - Dst: run_parallel_checkout
      Src: /src/git/builtin/checkout.c:435,1
    - Dst: mem_pool_discard
      Src: /src/git/builtin/checkout.c:437,1
    - Dst: should_validate_cache_entries
      Src: /src/git/builtin/checkout.c:437,1
    - Dst: remove_marked_cache_entries
      Src: /src/git/builtin/checkout.c:438,1
    - Dst: remove_scheduled_dirs
      Src: /src/git/builtin/checkout.c:439,1
    - Dst: finish_delayed_checkout
      Src: /src/git/builtin/checkout.c:440,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/checkout.c:444,1
    - Dst: Q_
      Src: /src/git/builtin/checkout.c:444,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/checkout.c:449,1
    - Dst: Q_
      Src: /src/git/builtin/checkout.c:449,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/checkout.c:453,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/checkout.c:456,1
    - Dst: Q_
      Src: /src/git/builtin/checkout.c:456,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - opts
    - info
    argTypes:
    - struct checkout_opts*
    - struct branch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 388
    functionDepth: 23
    functionLinenumber: 388
    functionLinenumberEnd: 463
    functionName: checkout_worktree
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - checkout_merged
    - finish_delayed_checkout
    - skip_same_name
    - mem_pool_discard
    - should_validate_cache_entries
    - run_parallel_checkout
    - Q_
    - checkout_stage
    - enable_delayed_checkout
    - mem_pool_init
    - remove_scheduled_dirs
    - checkout_entry
    - fprintf_ln
    - init_parallel_checkout
    - get_parallel_checkout_configs
    - ce_stage
    - init_checkout_metadata
    - remove_marked_cache_entries
    - repo_find_unique_abbrev
    linkageType: ''
    returnType: int
    signature: "int checkout_worktree(const struct checkout_opts *opts,\n\t\t\t     const
      struct branch_info *info)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/checkout.c:476,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:479,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:479,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:482,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:482,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:485,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:485,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:489,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:489,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:492,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:492,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:495,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:495,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:499,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:499,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:503,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:503,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:507,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:507,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:525,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:525,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:529,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:529,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:539,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:539,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:562,1
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/checkout.c:563,1
    - Dst: BUG
      Src: /src/git/builtin/checkout.c:572,1
    - Dst: run_add_p
      Src: /src/git/builtin/checkout.c:574,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/checkout.c:578,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/checkout.c:579,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:580,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:580,1
    - Dst: read_tree_some
      Src: /src/git/builtin/checkout.c:583,1
    - Dst: unmerge_index
      Src: /src/git/builtin/checkout.c:585,1
    - Dst: xcalloc
      Src: /src/git/builtin/checkout.c:587,1
    - Dst: mark_ce_for_checkout_overlay
      Src: /src/git/builtin/checkout.c:595,1
    - Dst: mark_ce_for_checkout_no_overlay
      Src: /src/git/builtin/checkout.c:599,1
    - Dst: report_path_error
      Src: /src/git/builtin/checkout.c:603,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:604,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:607,1
    - Dst: ce_stage
      Src: /src/git/builtin/checkout.c:613,1
    - Dst: warning
      Src: /src/git/builtin/checkout.c:617,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:617,1
    - Dst: check_stage
      Src: /src/git/builtin/checkout.c:619,1
    - Dst: check_stages
      Src: /src/git/builtin/checkout.c:621,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:624,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:624,1
    - Dst: skip_same_name
      Src: /src/git/builtin/checkout.c:626,1
    - Dst: checkout_worktree
      Src: /src/git/builtin/checkout.c:634,1
    - Dst: remove_marked_cache_entries
      Src: /src/git/builtin/checkout.c:636,1
    - Dst: write_locked_index
      Src: /src/git/builtin/checkout.c:648,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:649,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:649,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/checkout.c:657,1
    - Dst: refs_read_ref_full
      Src: /src/git/builtin/checkout.c:660,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:660,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/checkout.c:662,1
    - Dst: post_checkout_hook
      Src: /src/git/builtin/checkout.c:664,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 95
    argCount: 2
    argNames:
    - opts
    - new_branch_info
    argTypes:
    - struct checkout_opts*
    - struct branch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 465
    functionDepth: 21
    functionLinenumber: 465
    functionLinenumberEnd: 666
    functionName: checkout_paths
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - unmerge_index
    - check_stage
    - repo_hold_locked_index
    - post_checkout_hook
    - free
    - strcmp
    - mark_ce_for_checkout_overlay
    - get_main_ref_store
    - repo_read_index_preload
    - error
    - die
    - skip_same_name
    - mark_ce_for_checkout_no_overlay
    - rollback_lock_file
    - refs_read_ref_full
    - xcalloc
    - read_tree_some
    - run_add_p
    - report_path_error
    - checkout_worktree
    - _
    - warning
    - ce_stage
    - check_stages
    - oid_to_hex_r
    - lookup_commit_reference_gently
    - remove_marked_cache_entries
    - write_locked_index
    - trace2_cmd_mode
    - BUG
    linkageType: ''
    returnType: int
    signature: "int checkout_paths(const struct checkout_opts *opts,\n\t\t\t  const
      struct branch_info *new_branch_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/builtin/checkout.c:673,1
    - Dst: diff_setup_done
      Src: /src/git/builtin/checkout.c:677,1
    - Dst: add_pending_object
      Src: /src/git/builtin/checkout.c:678,1
    - Dst: run_diff_index
      Src: /src/git/builtin/checkout.c:679,1
    - Dst: release_revisions
      Src: /src/git/builtin/checkout.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - head
    - opts
    argTypes:
    - struct object*
    - struct diff_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 668
    functionDepth: 8
    functionLinenumber: 668
    functionLinenumberEnd: 681
    functionName: show_local_changes
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - release_revisions
    - repo_init_revisions
    - add_pending_object
    - run_diff_index
    - diff_setup_done
    linkageType: ''
    returnType: void
    signature: "void show_local_changes(struct object *head,\n\t\t\t       const struct
      diff_options *opts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_parse_commit
      Src: /src/git/builtin/checkout.c:687,1
    - Dst: pp_commit_easy
      Src: /src/git/builtin/checkout.c:688,1
    - Dst: print_sha1_ellipsis
      Src: /src/git/builtin/checkout.c:689,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:690,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/checkout.c:691,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:694,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/checkout.c:695,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - msg
    - commit
    argTypes:
    - char*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 683
    functionDepth: 20
    functionLinenumber: 683
    functionLinenumberEnd: 699
    functionName: describe_detached_head
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - pp_commit_easy
    - print_sha1_ellipsis
    - repo_parse_commit
    - repo_find_unique_abbrev
    - fprintf
    linkageType: ''
    returnType: void
    signature: void describe_detached_head(const char *msg, struct commit *commit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/checkout.c:708,1
    - Dst: init_checkout_metadata
      Src: /src/git/builtin/checkout.c:720,1
    - Dst: null_oid
      Src: /src/git/builtin/checkout.c:721,1
    - Dst: repo_parse_tree
      Src: /src/git/builtin/checkout.c:723,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/checkout.c:725,1
    - Dst: unpack_trees
      Src: /src/git/builtin/checkout.c:726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 5
    argNames:
    - tree
    - o
    - worktree
    - writeout_error
    - info
    argTypes:
    - struct tree*
    - struct checkout_opts*
    - int
    - int*
    - struct branch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 701
    functionDepth: 14
    functionLinenumber: 701
    functionLinenumberEnd: 741
    functionName: reset_tree
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 2
    functionsReached:
    - memset
    - init_checkout_metadata
    - repo_parse_tree
    - unpack_trees
    - null_oid
    - init_tree_desc
    linkageType: ''
    returnType: int
    signature: "int reset_tree(struct tree *tree, const struct checkout_opts *o,\n\t\t
      \     int worktree, int *writeout_error,\n\t\t      struct branch_info *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_dwim_ref
      Src: /src/git/builtin/checkout.c:751,1
    - Dst: strlen
      Src: /src/git/builtin/checkout.c:751,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/checkout.c:753,1
    - Dst: copy_branchname
      Src: /src/git/builtin/checkout.c:755,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:756,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:757,1
    - Dst: xstrdup
      Src: /src/git/builtin/checkout.c:758,1
    - Dst: strbuf_splice
      Src: /src/git/builtin/checkout.c:760,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:761,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/checkout.c:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - branch
    argTypes:
    - struct branch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 743
    functionDepth: 4
    functionLinenumber: 743
    functionLinenumberEnd: 763
    functionName: setup_branch_path
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - copy_branchname
    - repo_dwim_ref
    - repo_get_oid_committish
    - strlen
    - strbuf_splice
    - strbuf_detach
    - strcmp
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void setup_branch_path(struct branch_info *branch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/checkout.c:769,1
    - Dst: setup_unpack_trees_porcelain
      Src: /src/git/builtin/checkout.c:774,1
    - Dst: is_index_unborn
      Src: /src/git/builtin/checkout.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - topts
    - show_progress
    - overwrite_ignore
    - quiet
    argTypes:
    - struct unpack_trees_options*
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 783
    functionName: init_topts
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - memset
    - is_index_unborn
    - setup_unpack_trees_porcelain
    linkageType: ''
    returnType: void
    signature: "void init_topts(struct unpack_trees_options *topts,\n\t\t       int
      show_progress, int overwrite_ignore,\n\t\t       bool quiet)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/checkout.c:795,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/checkout.c:796,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/checkout.c:797,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:798,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:798,1
    - Dst: resolve_undo_clear_index
      Src: /src/git/builtin/checkout.c:801,1
    - Dst: BUG
      Src: /src/git/builtin/checkout.c:804,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/checkout.c:805,1
    - Dst: BUG
      Src: /src/git/builtin/checkout.c:808,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/checkout.c:810,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/checkout.c:813,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:814,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:814,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/checkout.c:815,1
    - Dst: reset_tree
      Src: /src/git/builtin/checkout.c:819,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/checkout.c:821,1
    - Dst: refresh_index
      Src: /src/git/builtin/checkout.c:830,1
    - Dst: unmerged_index
      Src: /src/git/builtin/checkout.c:832,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/checkout.c:833,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:834,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:834,1
    - Dst: init_topts
      Src: /src/git/builtin/checkout.c:839,1
    - Dst: init_checkout_metadata
      Src: /src/git/builtin/checkout.c:841,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/checkout.c:849,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:852,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:852,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/checkout.c:853,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/checkout.c:855,1
    - Dst: repo_parse_tree
      Src: /src/git/builtin/checkout.c:857,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:858,1
    - Dst: init_tree_desc
      Src: /src/git/builtin/checkout.c:860,1
    - Dst: unpack_trees
      Src: /src/git/builtin/checkout.c:863,1
    - Dst: clear_unpack_trees_porcelain
      Src: /src/git/builtin/checkout.c:864,1
    - Dst: rollback_lock_file
      Src: /src/git/builtin/checkout.c:866,1
    - Dst: cache_tree_fully_valid
      Src: /src/git/builtin/checkout.c:871,1
    - Dst: cache_tree_update
      Src: /src/git/builtin/checkout.c:872,1
    - Dst: write_locked_index
      Src: /src/git/builtin/checkout.c:874,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:875,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:875,1
    - Dst: show_local_changes
      Src: /src/git/builtin/checkout.c:878,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 5
    argNames:
    - opts
    - old_branch_info
    - new_branch_info
    - quiet
    - writeout_error
    argTypes:
    - struct checkout_opts*
    - struct branch_info*
    - struct branch_info*
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 785
    functionDepth: 21
    functionLinenumber: 785
    functionLinenumberEnd: 881
    functionName: merge_working_tree
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - unmerged_index
    - init_topts
    - repo_hold_locked_index
    - refresh_index
    - error
    - repo_read_index_preload
    - die
    - repo_parse_tree
    - cache_tree_update
    - rollback_lock_file
    - show_local_changes
    - resolve_undo_clear_index
    - oid_to_hex
    - cache_tree_fully_valid
    - repo_parse_tree_indirect
    - reset_tree
    - unpack_trees
    - _
    - init_tree_desc
    - init_checkout_metadata
    - clear_unpack_trees_porcelain
    - write_locked_index
    - repo_get_commit_tree
    - BUG
    linkageType: ''
    returnType: int
    signature: "int merge_working_tree(const struct checkout_opts *opts,\n\t\t\t      struct
      branch_info *old_branch_info,\n\t\t\t      struct branch_info *new_branch_info,\n\t\t\t
      \     bool quiet,\n\t\t\t      int *writeout_error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: branch_get
      Src: /src/git/builtin/checkout.c:886,1
    - Dst: format_tracking_info
      Src: /src/git/builtin/checkout.c:888,1
    - Dst: fputs
      Src: /src/git/builtin/checkout.c:890,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - new_branch_info
    argTypes:
    - struct branch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 883
    functionDepth: 18
    functionLinenumber: 883
    functionLinenumberEnd: 892
    functionName: report_tracking
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - format_tracking_info
    - branch_get
    - fputs
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void report_tracking(struct branch_info *new_branch_info)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: repo_settings_get_log_all_ref_updates
      Src: /src/git/builtin/checkout.c:903,1
    - Dst: mkpathdup
      Src: /src/git/builtin/checkout.c:906,1
    - Dst: should_autocreate_reflog
      Src: /src/git/builtin/checkout.c:908,1
    - Dst: refs_create_reflog
      Src: /src/git/builtin/checkout.c:912,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:912,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:915,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:915,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:917,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:918,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:921,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:923,1
    - Dst: create_branch
      Src: /src/git/builtin/checkout.c:926,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:934,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:935,1
    - Dst: xstrdup
      Src: /src/git/builtin/checkout.c:936,1
    - Dst: setup_branch_path
      Src: /src/git/builtin/checkout.c:937,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/checkout.c:942,1
    - Dst: getenv
      Src: /src/git/builtin/checkout.c:944,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/checkout.c:946,1
    - Dst: strbuf_insertstr
      Src: /src/git/builtin/checkout.c:949,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:951,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/checkout.c:954,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:954,1
    - Dst: advice_enabled
      Src: /src/git/builtin/checkout.c:960,1
    - Dst: detach_advice
      Src: /src/git/builtin/checkout.c:961,1
    - Dst: describe_detached_head
      Src: /src/git/builtin/checkout.c:962,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:962,1
    - Dst: refs_update_symref
      Src: /src/git/builtin/checkout.c:965,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:965,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:966,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:966,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:968,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:970,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:970,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:973,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:973,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:977,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:977,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:979,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:979,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:981,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:981,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/checkout.c:986,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:986,1
    - Dst: refs_reflog_exists
      Src: /src/git/builtin/checkout.c:986,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:986,1
    - Dst: refs_delete_reflog
      Src: /src/git/builtin/checkout.c:987,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:987,1
    - Dst: remove_branch_state
      Src: /src/git/builtin/checkout.c:991,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:992,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:995,1
    - Dst: report_tracking
      Src: /src/git/builtin/checkout.c:996,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 65
    argCount: 3
    argNames:
    - opts
    - old_branch_info
    - new_branch_info
    argTypes:
    - struct checkout_opts*
    - struct branch_info*
    - struct branch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 894
    functionDepth: 21
    functionLinenumber: 894
    functionLinenumberEnd: 997
    functionName: update_refs_for_switch
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - remove_branch_state
    - refs_update_symref
    - strbuf_addf
    - report_tracking
    - strcmp
    - free
    - setup_branch_path
    - get_main_ref_store
    - strbuf_release
    - die
    - refs_ref_exists
    - mkpathdup
    - detach_advice
    - oid_to_hex
    - refs_create_reflog
    - describe_detached_head
    - refs_reflog_exists
    - refs_delete_reflog
    - advice_enabled
    - create_branch
    - _
    - repo_settings_get_log_all_ref_updates
    - xstrdup
    - strbuf_insertstr
    - should_autocreate_reflog
    - getenv
    - refs_update_ref
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void update_refs_for_switch(const struct checkout_opts *opts,\n\t\t\t\t
      \  struct branch_info *old_branch_info,\n\t\t\t\t   struct branch_info *new_branch_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pending_oid
      Src: /src/git/builtin/checkout.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 999
    functionDepth: 6
    functionLinenumber: 999
    functionLinenumberEnd: 1003
    functionName: add_pending_uninteresting_ref
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - add_pending_oid
    linkageType: ''
    returnType: int
    signature: int add_pending_uninteresting_ref(const struct reference *ref, void
      *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/checkout.c:1007,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/builtin/checkout.c:1008,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/checkout.c:1009,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/checkout.c:1010,1
    - Dst: pp_commit_easy
      Src: /src/git/builtin/checkout.c:1011,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/checkout.c:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sb
    - commit
    argTypes:
    - struct strbuf*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1005
    functionDepth: 20
    functionLinenumber: 1005
    functionLinenumberEnd: 1013
    functionName: describe_one_orphan
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - pp_commit_easy
    - repo_parse_commit
    - strbuf_addch
    - strbuf_addstr
    - strbuf_add_unique_abbrev
    linkageType: ''
    returnType: void
    signature: void describe_one_orphan(struct strbuf *sb, struct commit *commit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_revision
      Src: /src/git/builtin/checkout.c:1021,1
    - Dst: describe_one_orphan
      Src: /src/git/builtin/checkout.c:1023,1
    - Dst: describe_one_orphan
      Src: /src/git/builtin/checkout.c:1030,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/checkout.c:1032,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1032,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:1035,1
    - Dst: Q_
      Src: /src/git/builtin/checkout.c:1036,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:1051,1
    - Dst: advice_enabled
      Src: /src/git/builtin/checkout.c:1053,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:1054,1
    - Dst: Q_
      Src: /src/git/builtin/checkout.c:1055,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/checkout.c:1066,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - commit
    - revs
    argTypes:
    - struct commit*
    - struct rev_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1016
    functionDepth: 21
    functionLinenumber: 1016
    functionLinenumberEnd: 1067
    functionName: suggest_reattach
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_revision
    - strbuf_addf
    - repo_find_unique_abbrev
    - advice_enabled
    - _
    - Q_
    - describe_one_orphan
    - fprintf
    linkageType: ''
    returnType: void
    signature: void suggest_reattach(struct commit *commit, struct rev_info *revs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_init_revisions
      Src: /src/git/builtin/checkout.c:1079,1
    - Dst: setup_revisions
      Src: /src/git/builtin/checkout.c:1080,1
    - Dst: add_pending_object
      Src: /src/git/builtin/checkout.c:1083,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/checkout.c:1083,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/checkout.c:1085,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:1085,1
    - Dst: add_pending_oid
      Src: /src/git/builtin/checkout.c:1088,1
    - Dst: prepare_revision_walk
      Src: /src/git/builtin/checkout.c:1092,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1093,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1093,1
    - Dst: suggest_reattach
      Src: /src/git/builtin/checkout.c:1095,1
    - Dst: describe_detached_head
      Src: /src/git/builtin/checkout.c:1097,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1097,1
    - Dst: repo_clear_commit_marks
      Src: /src/git/builtin/checkout.c:1100,1
    - Dst: release_revisions
      Src: /src/git/builtin/checkout.c:1101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - old_commit
    - new_commit
    argTypes:
    - struct commit*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1074
    functionDepth: 22
    functionLinenumber: 1074
    functionLinenumberEnd: 1102
    functionName: orphaned_commit_warning
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - release_revisions
    - describe_detached_head
    - suggest_reattach
    - add_pending_oid
    - refs_for_each_ref
    - repo_init_revisions
    - add_pending_object
    - repo_clear_commit_marks
    - prepare_revision_walk
    - _
    - setup_revisions
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void orphaned_commit_warning(struct commit *old_commit, struct commit
      *new_commit)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/checkout.c:1117,1
    - Dst: memset
      Src: /src/git/builtin/checkout.c:1119,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/checkout.c:1120,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:1120,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/checkout.c:1123,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/checkout.c:1125,1
    - Dst: skip_prefix
      Src: /src/git/builtin/checkout.c:1130,1
    - Dst: xstrdup
      Src: /src/git/builtin/checkout.c:1131,1
    - Dst: BUG
      Src: /src/git/builtin/checkout.c:1136,1
    - Dst: xstrdup
      Src: /src/git/builtin/checkout.c:1138,1
    - Dst: xstrdup
      Src: /src/git/builtin/checkout.c:1143,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1146,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1146,1
    - Dst: parse_commit_or_die
      Src: /src/git/builtin/checkout.c:1147,1
    - Dst: strbuf_add_unique_abbrev
      Src: /src/git/builtin/checkout.c:1156,1
    - Dst: merge_working_tree
      Src: /src/git/builtin/checkout.c:1163,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/checkout.c:1166,1
    - Dst: create_autostash_ref
      Src: /src/git/builtin/checkout.c:1169,1
    - Dst: merge_working_tree
      Src: /src/git/builtin/checkout.c:1173,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/checkout.c:1179,1
    - Dst: conflict_style_name
      Src: /src/git/builtin/checkout.c:1180,1
    - Dst: git_config_push_parameter
      Src: /src/git/builtin/checkout.c:1181,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:1182,1
    - Dst: apply_autostash_ref
      Src: /src/git/builtin/checkout.c:1184,1
    - Dst: branch_info_release
      Src: /src/git/builtin/checkout.c:1192,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:1193,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:1194,1
    - Dst: orphaned_commit_warning
      Src: /src/git/builtin/checkout.c:1200,1
    - Dst: update_refs_for_switch
      Src: /src/git/builtin/checkout.c:1202,1
    - Dst: discard_index
      Src: /src/git/builtin/checkout.c:1205,1
    - Dst: repo_read_index
      Src: /src/git/builtin/checkout.c:1206,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1207,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1207,1
    - Dst: printf
      Src: /src/git/builtin/checkout.c:1210,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1210,1
    - Dst: show_local_changes
      Src: /src/git/builtin/checkout.c:1211,1
    - Dst: post_checkout_hook
      Src: /src/git/builtin/checkout.c:1216,1
    - Dst: branch_info_release
      Src: /src/git/builtin/checkout.c:1217,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:1218,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:1219,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 2
    argNames:
    - opts
    - new_branch_info
    argTypes:
    - struct checkout_opts*
    - struct branch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1104
    functionDepth: 23
    functionLinenumber: 1104
    functionLinenumberEnd: 1222
    functionName: switch_branches
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - merge_working_tree
    - create_autostash_ref
    - strbuf_addf
    - post_checkout_hook
    - printf
    - get_main_ref_store
    - discard_index
    - parse_commit_or_die
    - strbuf_release
    - die
    - repo_read_index
    - refs_resolve_refdup
    - show_local_changes
    - memset
    - apply_autostash_ref
    - _
    - skip_prefix
    - FREE_AND_NULL
    - conflict_style_name
    - xstrdup
    - orphaned_commit_warning
    - branch_info_release
    - lookup_commit_reference_gently
    - trace2_cmd_mode
    - update_refs_for_switch
    - BUG
    - strbuf_add_unique_abbrev
    - git_config_push_parameter
    linkageType: ''
    returnType: int
    signature: "int switch_branches(const struct checkout_opts *opts,\n\t\t\t   struct
      branch_info *new_branch_info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:1229,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/checkout.c:1231,1
    - Dst: handle_ignore_submodules_arg
      Src: /src/git/builtin/checkout.c:1232,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:1235,1
    - Dst: git_config_bool
      Src: /src/git/builtin/checkout.c:1236,1
    - Dst: starts_with
      Src: /src/git/builtin/checkout.c:1240,1
    - Dst: git_default_submodule_config
      Src: /src/git/builtin/checkout.c:1241,1
    - Dst: git_xmerge_config
      Src: /src/git/builtin/checkout.c:1243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1224
    functionDepth: 7
    functionLinenumber: 1224
    functionLinenumberEnd: 1244
    functionName: git_checkout_config
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - handle_ignore_submodules_arg
    - git_xmerge_config
    - starts_with
    - strcmp
    - git_default_submodule_config
    - git_config_bool
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_checkout_config(const char *var, const char *value,\n\t\t\t
      \      const struct config_context *ctx, void *cb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:1256,1
    - Dst: xstrdup
      Src: /src/git/builtin/checkout.c:1256,1
    - Dst: xstrdup
      Src: /src/git/builtin/checkout.c:1257,1
    - Dst: setup_branch_path
      Src: /src/git/builtin/checkout.c:1258,1
    - Dst: check_refname_format
      Src: /src/git/builtin/checkout.c:1260,1
    - Dst: refs_read_ref
      Src: /src/git/builtin/checkout.c:1261,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:1261,1
    - Dst: oidcpy
      Src: /src/git/builtin/checkout.c:1262,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/checkout.c:1265,1
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/checkout.c:1267,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/checkout.c:1270,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1272,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1272,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/checkout.c:1272,1
    - Dst: parse_commit_or_die
      Src: /src/git/builtin/checkout.c:1274,1
    - Dst: repo_get_commit_tree
      Src: /src/git/builtin/checkout.c:1275,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1278,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1278,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/checkout.c:1279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - new_branch_info
    - opts
    - rev
    - arg
    argTypes:
    - struct branch_info*
    - struct checkout_opts*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1246
    functionDepth: 6
    functionLinenumber: 1246
    functionLinenumberEnd: 1281
    functionName: setup_new_branch_info_and_source_tree
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - parse_commit_or_die
    - oid_to_hex
    - die
    - repo_parse_tree_indirect
    - lookup_commit_reference_gently
    - oidcpy
    - refs_read_ref
    - repo_get_commit_tree
    - FREE_AND_NULL
    - check_refname_format
    - strcmp
    - setup_branch_path
    - get_main_ref_store
    - _
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void setup_new_branch_info_and_source_tree(\n\tstruct branch_info
      *new_branch_info,\n\tstruct checkout_opts *opts,\n\tstruct object_id *rev,\n\tconst
      char *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unique_tracking_name
      Src: /src/git/builtin/checkout.c:1296,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1299,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1299,1
    - Dst: advice_enabled
      Src: /src/git/builtin/checkout.c:1305,1
    - Dst: BUG
      Src: /src/git/builtin/checkout.c:1316,1
    - Dst: advise
      Src: /src/git/builtin/checkout.c:1321,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1321,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1332,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - arg
    - rev
    - could_be_checkout_paths
    - which_command
    argTypes:
    - char*
    - struct object_id*
    - int
    - enum checkout_command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1290
    functionDepth: 20
    functionLinenumber: 1290
    functionLinenumberEnd: 1337
    functionName: parse_remote_branch
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - die
    - unique_tracking_name
    - _
    - advise
    - BUG
    - advice_enabled
    linkageType: ''
    returnType: char
    signature: "char *parse_remote_branch(const char *arg,\n\t\t\t\t struct object_id
      *rev,\n\t\t\t\t int could_be_checkout_paths,\n\t\t\t\t enum checkout_command
      which_command)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/checkout.c:1400,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1400,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:1407,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1417,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1417,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:1420,1
    - Dst: repo_get_oid_mb
      Src: /src/git/builtin/checkout.c:1423,1
    - Dst: check_filename
      Src: /src/git/builtin/checkout.c:1435,1
    - Dst: no_wildcard
      Src: /src/git/builtin/checkout.c:1437,1
    - Dst: parse_remote_branch
      Src: /src/git/builtin/checkout.c:1450,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1464,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1464,1
    - Dst: setup_new_branch_info_and_source_tree
      Src: /src/git/builtin/checkout.c:1474,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1477,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1477,1
    - Dst: verify_non_filename
      Src: /src/git/builtin/checkout.c:1487,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:1494,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 7
    argNames:
    - argc
    - argv
    - dwim_new_local_branch_ok
    - which_command
    - new_branch_info
    - opts
    - rev
    argTypes:
    - int
    - char**
    - int
    - enum checkout_command
    - struct branch_info*
    - struct checkout_opts*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1339
    functionDepth: 21
    functionLinenumber: 1339
    functionLinenumberEnd: 1496
    functionName: parse_branchname_arg
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - die
    - verify_non_filename
    - no_wildcard
    - parse_remote_branch
    - _
    - strcmp
    - free
    - setup_new_branch_info_and_source_tree
    - check_filename
    - repo_get_oid_mb
    linkageType: ''
    returnType: int
    signature: "int parse_branchname_arg(int argc, const char **argv,\n\t\t\t\tint
      dwim_new_local_branch_ok,\n\t\t\t\tenum checkout_command which_command,\n\t\t\t\tstruct
      branch_info *new_branch_info,\n\t\t\t\tstruct checkout_opts *opts,\n\t\t\t\tstruct
      object_id *rev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/checkout.c:1503,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1506,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1506,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/checkout.c:1507,1
    - Dst: refs_update_symref
      Src: /src/git/builtin/checkout.c:1508,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:1508,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:1510,1
    - Dst: fprintf
      Src: /src/git/builtin/checkout.c:1512,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct checkout_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1498
    functionDepth: 3
    functionLinenumber: 1498
    functionLinenumberEnd: 1515
    functionName: switch_unborn_to_new_branch
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - refs_update_symref
    - strbuf_addf
    - trace2_cmd_mode
    - _
    - fprintf
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int switch_unborn_to_new_branch(const struct checkout_opts *opts)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: repo_dwim_ref
      Src: /src/git/builtin/checkout.c:1523,1
    - Dst: strlen
      Src: /src/git/builtin/checkout.c:1524,1
    - Dst: skip_prefix
      Src: /src/git/builtin/checkout.c:1527,1
    - Dst: die_message
      Src: /src/git/builtin/checkout.c:1528,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1528,1
    - Dst: skip_prefix
      Src: /src/git/builtin/checkout.c:1529,1
    - Dst: die_message
      Src: /src/git/builtin/checkout.c:1530,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1530,1
    - Dst: die_message
      Src: /src/git/builtin/checkout.c:1532,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1532,1
    - Dst: die_message
      Src: /src/git/builtin/checkout.c:1535,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1535,1
    - Dst: die_message
      Src: /src/git/builtin/checkout.c:1541,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1541,1
    - Dst: advice_enabled
      Src: /src/git/builtin/checkout.c:1543,1
    - Dst: advise
      Src: /src/git/builtin/checkout.c:1544,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1544,1
    - Dst: exit
      Src: /src/git/builtin/checkout.c:1546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - branch_info
    argTypes:
    - struct branch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1517
    functionDepth: 7
    functionLinenumber: 1517
    functionLinenumberEnd: 1547
    functionName: die_expecting_a_branch
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - advise
    - repo_dwim_ref
    - exit
    - strlen
    - _
    - die_message
    - skip_prefix
    - advice_enabled
    linkageType: ''
    returnType: void
    signature: void die_expecting_a_branch(const struct branch_info *branch_info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/checkout.c:1553,1
    - Dst: wt_status_get_state
      Src: /src/git/builtin/checkout.c:1554,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1557,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1557,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1561,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1561,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1565,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1565,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1569,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1569,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1573,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1573,1
    - Dst: warning
      Src: /src/git/builtin/checkout.c:1577,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1577,1
    - Dst: wt_status_state_free_buffers
      Src: /src/git/builtin/checkout.c:1579,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1549
    functionDepth: 8
    functionLinenumber: 1549
    functionLinenumberEnd: 1580
    functionName: die_if_some_operation_in_progress
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - wt_status_get_state
    - _
    - wt_status_state_free_buffers
    - warning
    linkageType: ''
    returnType: void
    signature: void die_if_some_operation_in_progress(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/checkout.c:1596,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:1596,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:1598,1
    - Dst: die_if_checked_out
      Src: /src/git/builtin/checkout.c:1599,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:1600,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - opts
    - full_ref
    argTypes:
    - struct checkout_opts*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1588
    functionDepth: 3
    functionLinenumber: 1588
    functionLinenumberEnd: 1601
    functionName: die_if_switching_to_a_branch_in_use
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - die_if_checked_out
    - refs_resolve_refdup
    - strcmp
    - free
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void die_if_switching_to_a_branch_in_use(struct checkout_opts *opts,\n\t\t\t\t\t\tconst
      char *full_ref)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/builtin/checkout.c:1606,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1612,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1612,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1615,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1615,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1619,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1619,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1625,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1627,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1628,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1632,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1632,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1635,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1635,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1638,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1638,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1643,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1643,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1645,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1645,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1648,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1648,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1653,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1653,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1658,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1658,1
    - Dst: die_expecting_a_branch
      Src: /src/git/builtin/checkout.c:1666,1
    - Dst: die_if_some_operation_in_progress
      Src: /src/git/builtin/checkout.c:1669,1
    - Dst: die_if_switching_to_a_branch_in_use
      Src: /src/git/builtin/checkout.c:1673,1
    - Dst: xstrfmt
      Src: /src/git/builtin/checkout.c:1677,1
    - Dst: die_if_switching_to_a_branch_in_use
      Src: /src/git/builtin/checkout.c:1678,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:1679,1
    - Dst: refs_read_ref_full
      Src: /src/git/builtin/checkout.c:1686,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/checkout.c:1686,1
    - Dst: is_null_oid
      Src: /src/git/builtin/checkout.c:1687,1
    - Dst: switch_unborn_to_new_branch
      Src: /src/git/builtin/checkout.c:1688,1
    - Dst: switch_branches
      Src: /src/git/builtin/checkout.c:1690,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 50
    argCount: 2
    argNames:
    - opts
    - new_branch_info
    argTypes:
    - struct checkout_opts*
    - struct branch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1603
    functionDepth: 24
    functionLinenumber: 1603
    functionLinenumberEnd: 1691
    functionName: checkout_branch
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - die
    - die_expecting_a_branch
    - xstrfmt
    - die_if_switching_to_a_branch_in_use
    - is_null_oid
    - die_if_some_operation_in_progress
    - switch_branches
    - refs_read_ref_full
    - _
    - free
    - repo_config_values
    - switch_unborn_to_new_branch
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int checkout_branch(struct checkout_opts *opts,\n\t\t\t   struct branch_info
      *new_branch_info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_conflict_style_name
      Src: /src/git/builtin/checkout.c:1701,1
    - Dst: error
      Src: /src/git/builtin/checkout.c:1703,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - o
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1709
    functionName: parse_opt_conflict
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - error
    - parse_conflict_style_name
    - _
    linkageType: ''
    returnType: int
    signature: int parse_opt_conflict(const struct option *o, const char *arg, int
      unset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/checkout.c:1715,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1715,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/checkout.c:1716,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:1719,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1719,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:1720,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1720,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/checkout.c:1721,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1721,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1722,1
    - Dst: OPT_END
      Src: /src/git/builtin/checkout.c:1724,1
    - Dst: parse_options_concat
      Src: /src/git/builtin/checkout.c:1726,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:1727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opts
    - prevopts
    argTypes:
    - struct checkout_opts*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1711
    functionDepth: 2
    functionLinenumber: 1711
    functionLinenumberEnd: 1729
    functionName: add_common_options
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 7
    functionsReached:
    - OPT_END
    - OPT_CALLBACK_F
    - OPT_BOOL
    - OPT_CALLBACK
    - parse_options_concat
    - free
    - N_
    - OPT__QUIET
    linkageType: ''
    returnType: struct option
    signature: "struct option *add_common_options(struct checkout_opts *opts,\n\t\t\t\t\t
      struct option *prevopts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:1735,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1735,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/checkout.c:1736,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1737,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/checkout.c:1740,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1740,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/checkout.c:1742,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1742,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1742,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/checkout.c:1743,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1744,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:1746,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1747,1
    - Dst: OPT_END
      Src: /src/git/builtin/checkout.c:1748,1
    - Dst: parse_options_concat
      Src: /src/git/builtin/checkout.c:1750,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opts
    - prevopts
    argTypes:
    - struct checkout_opts*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1731
    functionDepth: 2
    functionLinenumber: 1731
    functionLinenumberEnd: 1753
    functionName: add_common_switch_branch_options
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - OPT_BOOL_F
    - OPT__FORCE
    - OPT_BOOL
    - OPT_STRING
    - OPT_CALLBACK_F
    - parse_options_concat
    - free
    - N_
    linkageType: ''
    returnType: struct option
    signature: "struct option *add_common_switch_branch_options(\n\tstruct checkout_opts
      *opts, struct option *prevopts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/checkout.c:1759,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1760,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/checkout.c:1762,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1763,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:1765,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1765,1
    - Dst: OPT_DIFF_UNIFIED
      Src: /src/git/builtin/checkout.c:1766,1
    - Dst: OPT_DIFF_INTERHUNK_CONTEXT
      Src: /src/git/builtin/checkout.c:1767,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:1768,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1769,1
    - Dst: OPT_PATHSPEC_FROM_FILE
      Src: /src/git/builtin/checkout.c:1770,1
    - Dst: OPT_PATHSPEC_FILE_NUL
      Src: /src/git/builtin/checkout.c:1771,1
    - Dst: OPT_END
      Src: /src/git/builtin/checkout.c:1772,1
    - Dst: parse_options_concat
      Src: /src/git/builtin/checkout.c:1774,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:1775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opts
    - prevopts
    argTypes:
    - struct checkout_opts*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1755
    functionDepth: 2
    functionLinenumber: 1755
    functionLinenumberEnd: 1777
    functionName: add_checkout_path_options
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - OPT_DIFF_UNIFIED
    - OPT_SET_INT_F
    - OPT_BOOL
    - parse_options_concat
    - OPT_PATHSPEC_FROM_FILE
    - free
    - N_
    - OPT_DIFF_INTERHUNK_CONTEXT
    - OPT_PATHSPEC_FILE_NUL
    linkageType: ''
    returnType: struct option
    signature: "struct option *add_checkout_path_options(struct checkout_opts *opts,\n\t\t\t\t\t\tstruct
      option *prevopts)"
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1791,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1792,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1797,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:1802,1
    - Dst: BUG
      Src: /src/git/builtin/checkout.c:1819,1
    - Dst: repo_config
      Src: /src/git/builtin/checkout.c:1826,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/checkout.c:1828,1
    - Dst: BUG
      Src: /src/git/builtin/checkout.c:1835,1
    - Dst: parse_options
      Src: /src/git/builtin/checkout.c:1839,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1843,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1843,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1845,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1845,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1849,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1849,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1851,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1851,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1853,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1853,1
    - Dst: isatty
      Src: /src/git/builtin/checkout.c:1860,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1874,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1874,1
    - Dst: toupper
      Src: /src/git/builtin/checkout.c:1875,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1878,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1878,1
    - Dst: BUG
      Src: /src/git/builtin/checkout.c:1892,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:1914,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1915,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1915,1
    - Dst: skip_prefix
      Src: /src/git/builtin/checkout.c:1916,1
    - Dst: skip_prefix
      Src: /src/git/builtin/checkout.c:1917,1
    - Dst: strchr
      Src: /src/git/builtin/checkout.c:1918,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1920,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1920,1
    - Dst: parse_branchname_arg
      Src: /src/git/builtin/checkout.c:1944,1
    - Dst: repo_get_oid_mb
      Src: /src/git/builtin/checkout.c:1951,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1952,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1952,1
    - Dst: setup_new_branch_info_and_source_tree
      Src: /src/git/builtin/checkout.c:1954,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1959,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1959,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/checkout.c:1963,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1968,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1968,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1975,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1975,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1979,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1979,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1985,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1985,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1988,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1988,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1991,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1991,1
    - Dst: parse_pathspec_file
      Src: /src/git/builtin/checkout.c:1993,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:1997,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:1997,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:2004,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:2004,1
    - Dst: die
      Src: /src/git/builtin/checkout.c:2009,1
    - Dst: _
      Src: /src/git/builtin/checkout.c:2009,1
    - Dst: validate_branchname
      Src: /src/git/builtin/checkout.c:2016,1
    - Dst: validate_new_branchname
      Src: /src/git/builtin/checkout.c:2019,1
    - Dst: strbuf_release
      Src: /src/git/builtin/checkout.c:2020,1
    - Dst: checkout_paths
      Src: /src/git/builtin/checkout.c:2024,1
    - Dst: checkout_branch
      Src: /src/git/builtin/checkout.c:2026,1
    - Dst: branch_info_release
      Src: /src/git/builtin/checkout.c:2028,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/checkout.c:2029,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:2030,1
    - Dst: free
      Src: /src/git/builtin/checkout.c:2031,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 139
    argCount: 6
    argNames:
    - argc
    - argv
    - prefix
    - opts
    - options
    - which_command
    argTypes:
    - int
    - char**
    - char*
    - struct checkout_opts*
    - struct option*
    - enum checkout_command
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 1782
    functionDepth: 25
    functionLinenumber: 1782
    functionLinenumberEnd: 2034
    functionName: checkout_main
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - parse_options
    - toupper
    - parse_pathspec_file
    - strchr
    - validate_new_branchname
    - strcmp
    - free
    - setup_new_branch_info_and_source_tree
    - repo_config
    - strbuf_release
    - die
    - parse_pathspec
    - isatty
    - repo_get_oid_mb
    - checkout_branch
    - parse_branchname_arg
    - validate_branchname
    - _
    - N_
    - skip_prefix
    - checkout_paths
    - clear_pathspec
    - branch_info_release
    - prepare_repo_settings
    - BUG
    linkageType: ''
    returnType: int
    signature: "int checkout_main(int argc, const char **argv, const char *prefix,\n\t\t\t
      struct checkout_opts *opts, struct option *options,\n\t\t\t enum checkout_command
      which_command)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/checkout.c:2044,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2044,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2045,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/checkout.c:2046,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2046,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2047,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:2048,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2048,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:2049,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2050,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:2051,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2051,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:2052,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2053,1
    - Dst: OPT_END
      Src: /src/git/builtin/checkout.c:2054,1
    - Dst: strcmp
      Src: /src/git/builtin/checkout.c:2070,1
    - Dst: parse_options_dup
      Src: /src/git/builtin/checkout.c:2079,1
    - Dst: add_common_options
      Src: /src/git/builtin/checkout.c:2080,1
    - Dst: add_common_switch_branch_options
      Src: /src/git/builtin/checkout.c:2081,1
    - Dst: add_checkout_path_options
      Src: /src/git/builtin/checkout.c:2082,1
    - Dst: checkout_main
      Src: /src/git/builtin/checkout.c:2084,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2036
    functionDepth: 26
    functionLinenumber: 2036
    functionLinenumberEnd: 2086
    functionName: cmd_checkout
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - OPT_BOOL
    - OPT_STRING
    - checkout_main
    - add_checkout_path_options
    - add_common_switch_branch_options
    - strcmp
    - N_
    - add_common_options
    - parse_options_dup
    linkageType: ''
    returnType: int
    signature: "int cmd_checkout(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/checkout.c:2096,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2096,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2097,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/checkout.c:2098,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2098,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2099,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:2100,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2101,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:2102,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2103,1
    - Dst: OPT_END
      Src: /src/git/builtin/checkout.c:2104,1
    - Dst: parse_options_dup
      Src: /src/git/builtin/checkout.c:2117,1
    - Dst: add_common_options
      Src: /src/git/builtin/checkout.c:2118,1
    - Dst: add_common_switch_branch_options
      Src: /src/git/builtin/checkout.c:2119,1
    - Dst: checkout_main
      Src: /src/git/builtin/checkout.c:2123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2088
    functionDepth: 26
    functionLinenumber: 2088
    functionLinenumberEnd: 2125
    functionName: cmd_switch
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - OPT_BOOL
    - OPT_STRING
    - checkout_main
    - add_common_switch_branch_options
    - N_
    - add_common_options
    - parse_options_dup
    linkageType: ''
    returnType: int
    signature: "int cmd_switch(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/checkout.c:2135,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2136,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:2137,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2138,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:2139,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2140,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:2141,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2142,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/checkout.c:2143,1
    - Dst: N_
      Src: /src/git/builtin/checkout.c:2143,1
    - Dst: OPT_END
      Src: /src/git/builtin/checkout.c:2144,1
    - Dst: parse_options_dup
      Src: /src/git/builtin/checkout.c:2155,1
    - Dst: add_common_options
      Src: /src/git/builtin/checkout.c:2156,1
    - Dst: add_checkout_path_options
      Src: /src/git/builtin/checkout.c:2157,1
    - Dst: checkout_main
      Src: /src/git/builtin/checkout.c:2159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2127
    functionDepth: 26
    functionLinenumber: 2127
    functionLinenumberEnd: 2161
    functionName: cmd_restore
    functionSourceFile: /src/git/builtin/checkout.c
    functionUses: 0
    functionsReached:
    - OPT_END
    - OPT_BOOL
    - OPT_STRING
    - checkout_main
    - add_checkout_path_options
    - N_
    - add_common_options
    - parse_options_dup
    linkageType: ''
    returnType: int
    signature: "int cmd_restore(int argc,\n\t\tconst char **argv,\n\t\tconst char
      *prefix,\n\t\tstruct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xopen
      Src: /src/git/builtin/archive.c:14,1
    - Dst: dup2
      Src: /src/git/builtin/archive.c:16,1
    - Dst: die_errno
      Src: /src/git/builtin/archive.c:17,1
    - Dst: _
      Src: /src/git/builtin/archive.c:17,1
    - Dst: close
      Src: /src/git/builtin/archive.c:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - output_file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: create_output_file
    functionSourceFile: /src/git/builtin/archive.c
    functionUses: 0
    functionsReached:
    - xopen
    - die_errno
    - _
    - close
    - dup2
    linkageType: ''
    returnType: void
    signature: void create_output_file(const char *output_file)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: remote_get
      Src: /src/git/builtin/archive.c:32,1
    - Dst: transport_get
      Src: /src/git/builtin/archive.c:33,1
    - Dst: transport_connect
      Src: /src/git/builtin/archive.c:34,1
    - Dst: archive_format_from_filename
      Src: /src/git/builtin/archive.c:43,1
    - Dst: packet_write_fmt
      Src: /src/git/builtin/archive.c:45,1
    - Dst: packet_write_fmt
      Src: /src/git/builtin/archive.c:48,1
    - Dst: packet_flush
      Src: /src/git/builtin/archive.c:49,1
    - Dst: packet_reader_init
      Src: /src/git/builtin/archive.c:51,1
    - Dst: packet_reader_read
      Src: /src/git/builtin/archive.c:55,1
    - Dst: die
      Src: /src/git/builtin/archive.c:56,1
    - Dst: _
      Src: /src/git/builtin/archive.c:56,1
    - Dst: strcmp
      Src: /src/git/builtin/archive.c:57,1
    - Dst: starts_with
      Src: /src/git/builtin/archive.c:58,1
    - Dst: die
      Src: /src/git/builtin/archive.c:59,1
    - Dst: _
      Src: /src/git/builtin/archive.c:59,1
    - Dst: die
      Src: /src/git/builtin/archive.c:60,1
    - Dst: _
      Src: /src/git/builtin/archive.c:60,1
    - Dst: packet_reader_read
      Src: /src/git/builtin/archive.c:63,1
    - Dst: die
      Src: /src/git/builtin/archive.c:64,1
    - Dst: _
      Src: /src/git/builtin/archive.c:64,1
    - Dst: recv_sideband
      Src: /src/git/builtin/archive.c:67,1
    - Dst: transport_disconnect
      Src: /src/git/builtin/archive.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - argc
    - argv
    - remote
    - exec
    - name_hint
    argTypes:
    - int
    - char**
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 23
    functionDepth: 15
    functionLinenumber: 23
    functionLinenumberEnd: 71
    functionName: run_remote_archiver
    functionSourceFile: /src/git/builtin/archive.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    - transport_disconnect
    - transport_connect
    - transport_get
    - die
    - packet_flush
    - remote_get
    - packet_reader_init
    - starts_with
    - strcmp
    - archive_format_from_filename
    - _
    - recv_sideband
    - packet_reader_read
    linkageType: ''
    returnType: int
    signature: "int run_remote_archiver(int argc, const char **argv,\n\t\t\t       const
      char *remote, const char *exec,\n\t\t\t       const char *name_hint)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_FILENAME
      Src: /src/git/builtin/archive.c:87,1
    - Dst: N_
      Src: /src/git/builtin/archive.c:88,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/archive.c:89,1
    - Dst: N_
      Src: /src/git/builtin/archive.c:89,1
    - Dst: N_
      Src: /src/git/builtin/archive.c:90,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/archive.c:91,1
    - Dst: N_
      Src: /src/git/builtin/archive.c:91,1
    - Dst: N_
      Src: /src/git/builtin/archive.c:92,1
    - Dst: OPT_END
      Src: /src/git/builtin/archive.c:93,1
    - Dst: parse_options
      Src: /src/git/builtin/archive.c:97,1
    - Dst: init_archivers
      Src: /src/git/builtin/archive.c:100,1
    - Dst: create_output_file
      Src: /src/git/builtin/archive.c:103,1
    - Dst: run_remote_archiver
      Src: /src/git/builtin/archive.c:106,1
    - Dst: setvbuf
      Src: /src/git/builtin/archive.c:110,1
    - Dst: write_archive
      Src: /src/git/builtin/archive.c:112,1
    - Dst: free
      Src: /src/git/builtin/archive.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 78
    functionDepth: 20
    functionLinenumber: 78
    functionLinenumberEnd: 117
    functionName: cmd_archive
    functionSourceFile: /src/git/builtin/archive.c
    functionUses: 0
    functionsReached:
    - OPT_FILENAME
    - OPT_END
    - parse_options
    - OPT_STRING
    - write_archive
    - create_output_file
    - setvbuf
    - init_archivers
    - free
    - N_
    - run_remote_archiver
    linkageType: ''
    returnType: int
    signature: "int cmd_archive(int argc,\n\t\tconst char **argv,\n\t\tconst char
      *prefix,\n\t\tstruct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color
      Src: /src/git/builtin/show-branch.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: get_color_code
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 1
    functionsReached:
    - want_color
    linkageType: ''
    returnType: char
    signature: char *get_color_code(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color
      Src: /src/git/builtin/show-branch.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: get_color_reset_code
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - want_color
    linkageType: ''
    returnType: char
    signature: char *get_color_reset_code(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct prio_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: interesting
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: struct commit
    signature: struct commit *interesting(struct prio_queue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commit_name_slab_at
      Src: /src/git/builtin/show-branch.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: commit_to_name
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - commit_name_slab_at
    linkageType: ''
    returnType: struct commit_name
    signature: struct commit_name *commit_to_name(struct commit *commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_name_slab_at
      Src: /src/git/builtin/show-branch.c:95,1
    - Dst: xmalloc
      Src: /src/git/builtin/show-branch.c:97,1
    - Dst: commit_name_slab_at
      Src: /src/git/builtin/show-branch.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - commit
    - head_name
    - nth
    argTypes:
    - struct commit*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: name_commit
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - commit_name_slab_at
    linkageType: ''
    returnType: void
    signature: void name_commit(struct commit *commit, const char *head_name, int
      nth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: commit_to_name
      Src: /src/git/builtin/show-branch.c:111,1
    - Dst: commit_to_name
      Src: /src/git/builtin/show-branch.c:112,1
    - Dst: name_commit
      Src: /src/git/builtin/show-branch.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - commit
    - parent
    argTypes:
    - struct commit*
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: name_parent
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - name_commit
    - commit_to_name
    linkageType: ''
    returnType: void
    signature: void name_parent(struct commit *commit, struct commit *parent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: commit_to_name
      Src: /src/git/builtin/show-branch.c:126,1
    - Dst: commit_to_name
      Src: /src/git/builtin/show-branch.c:131,1
    - Dst: name_parent
      Src: /src/git/builtin/show-branch.c:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 140
    functionName: name_first_parent_chain
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - name_parent
    - commit_to_name
    linkageType: ''
    returnType: int
    signature: int name_first_parent_chain(struct commit *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: commit_to_name
      Src: /src/git/builtin/show-branch.c:154,1
    - Dst: name_commit
      Src: /src/git/builtin/show-branch.c:158,1
    - Dst: name_first_parent_chain
      Src: /src/git/builtin/show-branch.c:168,1
    - Dst: commit_to_name
      Src: /src/git/builtin/show-branch.c:180,1
    - Dst: commit_to_name
      Src: /src/git/builtin/show-branch.c:182,1
    - Dst: commit_to_name
      Src: /src/git/builtin/show-branch.c:190,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/show-branch.c:194,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/show-branch.c:197,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/show-branch.c:200,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/show-branch.c:205,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/show-branch.c:207,1
    - Dst: name_commit
      Src: /src/git/builtin/show-branch.c:208,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/show-branch.c:208,1
    - Dst: name_first_parent_chain
      Src: /src/git/builtin/show-branch.c:210,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 4
    argNames:
    - list
    - rev
    - ref_name
    - num_rev
    argTypes:
    - struct commit_list*
    - struct commit**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 214
    functionName: name_commits
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addch
    - name_commit
    - commit_to_name
    - strbuf_addstr
    - strbuf_detach
    - name_first_parent_chain
    linkageType: ''
    returnType: void
    signature: "void name_commits(struct commit_list *list,\n\t\t\t struct commit
      **rev,\n\t\t\t char **ref_name,\n\t\t\t int num_rev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: commit_list_insert
      Src: /src/git/builtin/show-branch.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - commit
    - seen_p
    argTypes:
    - struct commit*
    - struct commit_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: mark_seen
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - commit_list_insert
    linkageType: ''
    returnType: int
    signature: int mark_seen(struct commit *commit, struct commit_list **seen_p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: interesting
      Src: /src/git/builtin/show-branch.c:234,1
    - Dst: prio_queue_peek
      Src: /src/git/builtin/show-branch.c:235,1
    - Dst: mark_seen
      Src: /src/git/builtin/show-branch.c:242,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/show-branch.c:253,1
    - Dst: mark_seen
      Src: /src/git/builtin/show-branch.c:254,1
    - Dst: prio_queue_replace
      Src: /src/git/builtin/show-branch.c:258,1
    - Dst: prio_queue_put
      Src: /src/git/builtin/show-branch.c:260,1
    - Dst: prio_queue_get
      Src: /src/git/builtin/show-branch.c:264,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 4
    argNames:
    - queue
    - seen_p
    - num_rev
    - extra
    argTypes:
    - struct prio_queue*
    - struct commit_list**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 225
    functionDepth: 20
    functionLinenumber: 225
    functionLinenumberEnd: 304
    functionName: join_revs
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - prio_queue_put
    - interesting
    - prio_queue_get
    - repo_parse_commit
    - prio_queue_replace
    - prio_queue_peek
    - mark_seen
    linkageType: ''
    returnType: void
    signature: "void join_revs(struct prio_queue *queue,\n\t\t      struct commit_list
      **seen_p,\n\t\t      int num_rev, int extra)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: commit_to_name
      Src: /src/git/builtin/show-branch.c:310,1
    - Dst: pp_commit_easy
      Src: /src/git/builtin/show-branch.c:313,1
    - Dst: skip_prefix
      Src: /src/git/builtin/show-branch.c:316,1
    - Dst: printf
      Src: /src/git/builtin/show-branch.c:320,1
    - Dst: printf
      Src: /src/git/builtin/show-branch.c:323,1
    - Dst: printf
      Src: /src/git/builtin/show-branch.c:325,1
    - Dst: printf
      Src: /src/git/builtin/show-branch.c:327,1
    - Dst: printf
      Src: /src/git/builtin/show-branch.c:330,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/show-branch.c:331,1
    - Dst: puts
      Src: /src/git/builtin/show-branch.c:334,1
    - Dst: strbuf_release
      Src: /src/git/builtin/show-branch.c:335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - commit
    - no_name
    argTypes:
    - struct commit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 306
    functionDepth: 16
    functionLinenumber: 306
    functionLinenumberEnd: 336
    functionName: show_one_commit
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - pp_commit_easy
    - puts
    - repo_find_unique_abbrev
    - commit_to_name
    - skip_prefix
    - printf
    linkageType: ''
    returnType: void
    signature: void show_one_commit(struct commit *commit, int no_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - v
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 353
    functionName: find_digit_prefix
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *find_digit_prefix(const char *s, int *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_digit_prefix
      Src: /src/git/builtin/show-branch.c:361,1
    - Dst: find_digit_prefix
      Src: /src/git/builtin/show-branch.c:362,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 383
    functionName: version_cmp
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - find_digit_prefix
    linkageType: ''
    returnType: int
    signature: int version_cmp(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: version_cmp
      Src: /src/git/builtin/show-branch.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: compare_ref_name
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - version_cmp
    linkageType: ''
    returnType: int
    signature: int compare_ref_name(const void *a_, const void *b_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/builtin/show-branch.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bottom
    - top
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: sort_ref_range
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - QSORT
    linkageType: ''
    returnType: void
    signature: void sort_ref_range(int bottom, int top)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference_gently
      Src: /src/git/builtin/show-branch.c:399,1
    - Dst: strcmp
      Src: /src/git/builtin/show-branch.c:409,1
    - Dst: warning
      Src: /src/git/builtin/show-branch.c:413,1
    - Dst: Q_
      Src: /src/git/builtin/show-branch.c:413,1
    - Dst: xstrdup
      Src: /src/git/builtin/show-branch.c:418,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - refname
    - oid
    - allow_dups
    argTypes:
    - char*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 421
    functionName: append_ref
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - lookup_commit_reference_gently
    - strcmp
    - Q_
    - warning
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int append_ref(const char *refname, const struct object_id *oid,\n\t\t
      \     int allow_dups)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/show-branch.c:427,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/show-branch.c:432,1
    - Dst: oideq
      Src: /src/git/builtin/show-branch.c:432,1
    - Dst: append_ref
      Src: /src/git/builtin/show-branch.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 423
    functionDepth: 7
    functionLinenumber: 423
    functionLinenumberEnd: 435
    functionName: append_head_ref
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - append_ref
    - repo_get_oid
    - oideq
    - starts_with
    linkageType: ''
    returnType: int
    signature: int append_head_ref(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/show-branch.c:441,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/show-branch.c:446,1
    - Dst: oideq
      Src: /src/git/builtin/show-branch.c:446,1
    - Dst: append_ref
      Src: /src/git/builtin/show-branch.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 437
    functionDepth: 7
    functionLinenumber: 437
    functionLinenumberEnd: 449
    functionName: append_remote_ref
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - append_ref
    - repo_get_oid
    - oideq
    - starts_with
    linkageType: ''
    returnType: int
    signature: int append_remote_ref(const struct reference *ref, void *cb_data UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/show-branch.c:454,1
    - Dst: append_ref
      Src: /src/git/builtin/show-branch.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - refname
    - oid
    - UNUSED
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 451
    functionDepth: 7
    functionLinenumber: 451
    functionLinenumberEnd: 457
    functionName: append_tag_ref
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - append_ref
    - starts_with
    linkageType: ''
    returnType: int
    signature: "int append_tag_ref(const char *refname, const struct object_id *oid,\n\t\t\t
      \ int flag UNUSED, void *cb_data UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: count_slashes
      Src: /src/git/builtin/show-branch.c:469,1
    - Dst: wildmatch
      Src: /src/git/builtin/show-branch.c:475,1
    - Dst: starts_with
      Src: /src/git/builtin/show-branch.c:477,1
    - Dst: append_head_ref
      Src: /src/git/builtin/show-branch.c:478,1
    - Dst: starts_with
      Src: /src/git/builtin/show-branch.c:479,1
    - Dst: append_tag_ref
      Src: /src/git/builtin/show-branch.c:480,1
    - Dst: append_ref
      Src: /src/git/builtin/show-branch.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 462
    functionDepth: 8
    functionLinenumber: 462
    functionLinenumberEnd: 482
    functionName: append_matching_ref
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - append_head_ref
    - append_ref
    - starts_with
    - count_slashes
    - append_tag_ref
    - wildmatch
    linkageType: ''
    returnType: int
    signature: int append_matching_ref(const struct reference *ref, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/show-branch.c:489,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-branch.c:489,1
    - Dst: sort_ref_range
      Src: /src/git/builtin/show-branch.c:491,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/show-branch.c:496,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-branch.c:496,1
    - Dst: sort_ref_range
      Src: /src/git/builtin/show-branch.c:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - head
    - remotes
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 484
    functionDepth: 4
    functionLinenumber: 484
    functionLinenumberEnd: 500
    functionName: snarf_refs
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - sort_ref_range
    - refs_for_each_ref
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void snarf_refs(int head, int remotes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/show-branch.c:506,1
    - Dst: skip_prefix
      Src: /src/git/builtin/show-branch.c:507,1
    - Dst: skip_prefix
      Src: /src/git/builtin/show-branch.c:508,1
    - Dst: strcmp
      Src: /src/git/builtin/show-branch.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - head
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 510
    functionName: rev_is_head
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - strcmp
    linkageType: ''
    returnType: int
    signature: int rev_is_head(const char *head, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/git/builtin/show-branch.c:523,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/show-branch.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - seen
    - num_rev
    argTypes:
    - struct commit_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 529
    functionName: show_merge_base
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 1
    functionsReached:
    - puts
    - oid_to_hex
    linkageType: ''
    returnType: int
    signature: int show_merge_base(const struct commit_list *seen, int num_rev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/git/builtin/show-branch.c:542,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/show-branch.c:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - rev
    - num_rev
    - rev_mask
    argTypes:
    - struct commit**
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 546
    functionName: show_independent
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - puts
    - oid_to_hex
    linkageType: ''
    returnType: int
    signature: "int show_independent(struct commit **rev,\n\t\t\t    int num_rev,\n\t\t\t
      \   unsigned int *rev_mask)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/show-branch.c:551,1
    - Dst: append_ref
      Src: /src/git/builtin/show-branch.c:552,1
    - Dst: strpbrk
      Src: /src/git/builtin/show-branch.c:555,1
    - Dst: count_slashes
      Src: /src/git/builtin/show-branch.c:560,1
    - Dst: refs_for_each_ref
      Src: /src/git/builtin/show-branch.c:561,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-branch.c:561,1
    - Dst: error
      Src: /src/git/builtin/show-branch.c:565,1
    - Dst: _
      Src: /src/git/builtin/show-branch.c:565,1
    - Dst: sort_ref_range
      Src: /src/git/builtin/show-branch.c:566,1
    - Dst: die
      Src: /src/git/builtin/show-branch.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - av
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 548
    functionDepth: 7
    functionLinenumber: 548
    functionLinenumberEnd: 570
    functionName: append_one_rev
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - append_ref
    - error
    - die
    - repo_get_oid
    - sort_ref_range
    - refs_for_each_ref
    - count_slashes
    - _
    - strpbrk
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: void append_one_rev(const char *av)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/show-branch.c:575,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/show-branch.c:577,1
    - Dst: strvec_push
      Src: /src/git/builtin/show-branch.c:583,1
    - Dst: strvec_push
      Src: /src/git/builtin/show-branch.c:584,1
    - Dst: strcmp
      Src: /src/git/builtin/show-branch.c:588,1
    - Dst: git_config_colorbool
      Src: /src/git/builtin/show-branch.c:589,1
    - Dst: git_color_config
      Src: /src/git/builtin/show-branch.c:593,1
    - Dst: git_default_config
      Src: /src/git/builtin/show-branch.c:596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 572
    functionDepth: 4
    functionLinenumber: 572
    functionLinenumberEnd: 597
    functionName: git_show_branch_config
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - git_config_colorbool
    - strvec_push
    - git_color_config
    - git_default_config
    - strcmp
    - config_error_nonbool
    linkageType: ''
    returnType: int
    signature: "int git_show_branch_config(const char *var, const char *value,\n\t\t\t\t
      \ const struct config_context *ctx, void *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - commit
    - rev
    - n
    argTypes:
    - struct commit*
    - struct commit**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 618
    functionName: omit_in_dense
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int omit_in_dense(struct commit *commit, struct commit **rev, int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_OPT_NEG
      Src: /src/git/builtin/show-branch.c:627,1
    - Dst: strtoul
      Src: /src/git/builtin/show-branch.c:630,1
    - Dst: error
      Src: /src/git/builtin/show-branch.c:634,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 640
    functionName: parse_reflog_param
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - error
    - BUG_ON_OPT_NEG
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int parse_reflog_param(const struct option *opt, const char *arg,\n\t\t\t
      \     int unset)"
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-branch.c:669,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:670,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-branch.c:671,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:672,1
    - Dst: OPT__COLOR
      Src: /src/git/builtin/show-branch.c:673,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:674,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:680,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:681,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/show-branch.c:685,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:685,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-branch.c:686,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:686,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-branch.c:687,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:688,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-branch.c:689,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:690,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-branch.c:691,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:692,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-branch.c:693,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:694,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/show-branch.c:695,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:696,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/show-branch.c:698,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:699,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/show-branch.c:700,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:701,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/show-branch.c:702,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:703,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/show-branch.c:706,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:706,1
    - Dst: N_
      Src: /src/git/builtin/show-branch.c:707,1
    - Dst: OPT_END
      Src: /src/git/builtin/show-branch.c:711,1
    - Dst: init_commit_name_slab
      Src: /src/git/builtin/show-branch.c:716,1
    - Dst: repo_config
      Src: /src/git/builtin/show-branch.c:718,1
    - Dst: DUP_ARRAY
      Src: /src/git/builtin/show-branch.c:722,1
    - Dst: parse_options
      Src: /src/git/builtin/show-branch.c:727,1
    - Dst: usage_with_options
      Src: /src/git/builtin/show-branch.c:737,1
    - Dst: die
      Src: /src/git/builtin/show-branch.c:746,1
    - Dst: _
      Src: /src/git/builtin/show-branch.c:746,1
    - Dst: die
      Src: /src/git/builtin/show-branch.c:751,1
    - Dst: _
      Src: /src/git/builtin/show-branch.c:751,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/show-branch.c:767,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-branch.c:767,1
    - Dst: die
      Src: /src/git/builtin/show-branch.c:776,1
    - Dst: _
      Src: /src/git/builtin/show-branch.c:776,1
    - Dst: die
      Src: /src/git/builtin/show-branch.c:779,1
    - Dst: _
      Src: /src/git/builtin/show-branch.c:779,1
    - Dst: die
      Src: /src/git/builtin/show-branch.c:782,1
    - Dst: Q_
      Src: /src/git/builtin/show-branch.c:782,1
    - Dst: repo_dwim_ref
      Src: /src/git/builtin/show-branch.c:785,1
    - Dst: strlen
      Src: /src/git/builtin/show-branch.c:785,1
    - Dst: die
      Src: /src/git/builtin/show-branch.c:787,1
    - Dst: _
      Src: /src/git/builtin/show-branch.c:787,1
    - Dst: strtoul
      Src: /src/git/builtin/show-branch.c:792,1
    - Dst: approxidate
      Src: /src/git/builtin/show-branch.c:796,1
    - Dst: read_ref_at
      Src: /src/git/builtin/show-branch.c:797,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-branch.c:797,1
    - Dst: read_ref_at
      Src: /src/git/builtin/show-branch.c:811,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-branch.c:811,1
    - Dst: free
      Src: /src/git/builtin/show-branch.c:814,1
    - Dst: strchr
      Src: /src/git/builtin/show-branch.c:819,1
    - Dst: xstrfmt
      Src: /src/git/builtin/show-branch.c:824,1
    - Dst: show_date
      Src: /src/git/builtin/show-branch.c:825,1
    - Dst: DATE_MODE
      Src: /src/git/builtin/show-branch.c:826,1
    - Dst: free
      Src: /src/git/builtin/show-branch.c:828,1
    - Dst: xstrfmt
      Src: /src/git/builtin/show-branch.c:830,1
    - Dst: append_ref
      Src: /src/git/builtin/show-branch.c:831,1
    - Dst: free
      Src: /src/git/builtin/show-branch.c:832,1
    - Dst: free
      Src: /src/git/builtin/show-branch.c:834,1
    - Dst: append_one_rev
      Src: /src/git/builtin/show-branch.c:838,1
    - Dst: snarf_refs
      Src: /src/git/builtin/show-branch.c:842,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/show-branch.c:845,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/show-branch.c:845,1
    - Dst: rev_is_head
      Src: /src/git/builtin/show-branch.c:855,1
    - Dst: skip_prefix
      Src: /src/git/builtin/show-branch.c:860,1
    - Dst: append_one_rev
      Src: /src/git/builtin/show-branch.c:861,1
    - Dst: fprintf
      Src: /src/git/builtin/show-branch.c:866,1
    - Dst: die
      Src: /src/git/builtin/show-branch.c:876,1
    - Dst: Q_
      Src: /src/git/builtin/show-branch.c:876,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/show-branch.c:879,1
    - Dst: die
      Src: /src/git/builtin/show-branch.c:880,1
    - Dst: _
      Src: /src/git/builtin/show-branch.c:880,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/show-branch.c:881,1
    - Dst: die
      Src: /src/git/builtin/show-branch.c:883,1
    - Dst: _
      Src: /src/git/builtin/show-branch.c:883,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/show-branch.c:884,1
    - Dst: repo_parse_commit
      Src: /src/git/builtin/show-branch.c:885,1
    - Dst: mark_seen
      Src: /src/git/builtin/show-branch.c:886,1
    - Dst: prio_queue_put
      Src: /src/git/builtin/show-branch.c:894,1
    - Dst: join_revs
      Src: /src/git/builtin/show-branch.c:901,1
    - Dst: commit_list_sort_by_date
      Src: /src/git/builtin/show-branch.c:903,1
    - Dst: show_merge_base
      Src: /src/git/builtin/show-branch.c:906,1
    - Dst: show_independent
      Src: /src/git/builtin/show-branch.c:911,1
    - Dst: rev_is_head
      Src: /src/git/builtin/show-branch.c:919,1
    - Dst: oideq
      Src: /src/git/builtin/show-branch.c:920,1
    - Dst: printf
      Src: /src/git/builtin/show-branch.c:922,1
    - Dst: putchar
      Src: /src/git/builtin/show-branch.c:926,1
    - Dst: printf
      Src: /src/git/builtin/show-branch.c:927,1
    - Dst: get_color_code
      Src: /src/git/builtin/show-branch.c:928,1
    - Dst: get_color_reset_code
      Src: /src/git/builtin/show-branch.c:930,1
    - Dst: show_one_commit
      Src: /src/git/builtin/show-branch.c:935,1
    - Dst: puts
      Src: /src/git/builtin/show-branch.c:938,1
    - Dst: putchar
      Src: /src/git/builtin/show-branch.c:945,1
    - Dst: putchar
      Src: /src/git/builtin/show-branch.c:946,1
    - Dst: sort_in_topological_order
      Src: /src/git/builtin/show-branch.c:955,1
    - Dst: name_commits
      Src: /src/git/builtin/show-branch.c:959,1
    - Dst: omit_in_dense
      Src: /src/git/builtin/show-branch.c:979,1
    - Dst: putchar
      Src: /src/git/builtin/show-branch.c:992,1
    - Dst: printf
      Src: /src/git/builtin/show-branch.c:994,1
    - Dst: get_color_code
      Src: /src/git/builtin/show-branch.c:995,1
    - Dst: get_color_reset_code
      Src: /src/git/builtin/show-branch.c:996,1
    - Dst: putchar
      Src: /src/git/builtin/show-branch.c:998,1
    - Dst: show_one_commit
      Src: /src/git/builtin/show-branch.c:1000,1
    - Dst: ARRAY_SIZE
      Src: /src/git/builtin/show-branch.c:1009,1
    - Dst: free
      Src: /src/git/builtin/show-branch.c:1010,1
    - Dst: commit_list_free
      Src: /src/git/builtin/show-branch.c:1011,1
    - Dst: clear_prio_queue
      Src: /src/git/builtin/show-branch.c:1012,1
    - Dst: free
      Src: /src/git/builtin/show-branch.c:1013,1
    - Dst: free
      Src: /src/git/builtin/show-branch.c:1014,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 182
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 642
    functionDepth: 21
    functionLinenumber: 642
    functionLinenumberEnd: 1016
    functionName: cmd_show_branch
    functionSourceFile: /src/git/builtin/show-branch.c
    functionUses: 0
    functionsReached:
    - parse_options
    - putchar
    - omit_in_dense
    - snarf_refs
    - repo_get_oid
    - show_independent
    - OPT_BOOL
    - strchr
    - DATE_MODE
    - get_color_reset_code
    - show_merge_base
    - free
    - repo_config
    - mark_seen
    - printf
    - get_main_ref_store
    - usage_with_options
    - append_ref
    - OPT_END
    - die
    - read_ref_at
    - prio_queue_put
    - lookup_commit_reference
    - puts
    - repo_parse_commit
    - append_one_rev
    - OPT__COLOR
    - commit_list_sort_by_date
    - Q_
    - get_color_code
    - sort_in_topological_order
    - refs_resolve_refdup
    - strtoul
    - ARRAY_SIZE
    - rev_is_head
    - oid_to_hex
    - name_commits
    - approxidate
    - OPT_SET_INT
    - init_commit_name_slab
    - OPT_SET_INT_F
    - _
    - N_
    - skip_prefix
    - repo_dwim_ref
    - show_one_commit
    - xstrfmt
    - join_revs
    - OPT_CALLBACK_F
    - strlen
    - commit_list_free
    - show_date
    - DUP_ARRAY
    - clear_prio_queue
    - fprintf
    - oideq
    linkageType: ''
    returnType: int
    signature: "int cmd_show_branch(int ac,\n\t\tconst char **av,\n\t\tconst char
      *prefix,\n\t\tstruct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/mktree.c:27,1
    - Dst: strchr
      Src: /src/git/builtin/mktree.c:28,1
    - Dst: die
      Src: /src/git/builtin/mktree.c:29,1
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/builtin/mktree.c:31,1
    - Dst: oidcpy
      Src: /src/git/builtin/mktree.c:34,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/mktree.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - mode
    - oid
    - path
    argTypes:
    - unsigned
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: append_to_tree
    functionSourceFile: /src/git/builtin/mktree.c
    functionUses: 0
    functionsReached:
    - die
    - oidcpy
    - strchr
    - FLEX_ALLOC_MEM
    - strlen
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void append_to_tree(unsigned mode, struct object_id *oid, char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_name_compare
      Src: /src/git/builtin/mktree.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: ent_compare
    functionSourceFile: /src/git/builtin/mktree.c
    functionUses: 0
    functionsReached:
    - base_name_compare
    linkageType: ''
    returnType: int
    signature: int ent_compare(const void *a_, const void *b_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/builtin/mktree.c:54,1
    - Dst: strbuf_init
      Src: /src/git/builtin/mktree.c:58,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/mktree.c:61,1
    - Dst: strbuf_add
      Src: /src/git/builtin/mktree.c:62,1
    - Dst: odb_write_object
      Src: /src/git/builtin/mktree.c:65,1
    - Dst: strbuf_release
      Src: /src/git/builtin/mktree.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - repo
    - oid
    argTypes:
    - struct repository*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: write_tree
    functionSourceFile: /src/git/builtin/mktree.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - odb_write_object
    - strbuf_addf
    - QSORT
    - strbuf_init
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void write_tree(struct repository *repo, struct object_id *oid)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/git/builtin/mktree.c:90,1
    - Dst: die
      Src: /src/git/builtin/mktree.c:92,1
    - Dst: strchr
      Src: /src/git/builtin/mktree.c:94,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/builtin/mktree.c:95,1
    - Dst: die
      Src: /src/git/builtin/mktree.c:97,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/mktree.c:100,1
    - Dst: unquote_c_style
      Src: /src/git/builtin/mktree.c:109,1
    - Dst: die
      Src: /src/git/builtin/mktree.c:110,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/mktree.c:111,1
    - Dst: object_type
      Src: /src/git/builtin/mktree.c:118,1
    - Dst: type_from_string
      Src: /src/git/builtin/mktree.c:119,1
    - Dst: die
      Src: /src/git/builtin/mktree.c:120,1
    - Dst: type_name
      Src: /src/git/builtin/mktree.c:121,1
    - Dst: odb_read_object_info_extended
      Src: /src/git/builtin/mktree.c:126,1
    - Dst: die
      Src: /src/git/builtin/mktree.c:136,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/mktree.c:136,1
    - Dst: die
      Src: /src/git/builtin/mktree.c:145,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/mktree.c:146,1
    - Dst: type_name
      Src: /src/git/builtin/mktree.c:146,1
    - Dst: type_name
      Src: /src/git/builtin/mktree.c:146,1
    - Dst: append_to_tree
      Src: /src/git/builtin/mktree.c:150,1
    - Dst: free
      Src: /src/git/builtin/mktree.c:151,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 4
    argNames:
    - repo
    - buf
    - nul_term_line
    - allow_missing
    argTypes:
    - struct repository*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 74
    functionDepth: 11
    functionLinenumber: 74
    functionLinenumberEnd: 152
    functionName: mktree_line
    functionSourceFile: /src/git/builtin/mktree.c
    functionUses: 0
    functionsReached:
    - object_type
    - oid_to_hex
    - die
    - type_from_string
    - parse_oid_hex_algop
    - append_to_tree
    - S_ISGITLINK
    - strchr
    - unquote_c_style
    - strbuf_detach
    - free
    - type_name
    - odb_read_object_info_extended
    - strtoul
    linkageType: ''
    returnType: void
    signature: void mktree_line(struct repository *repo, char *buf, int nul_term_line,
      int allow_missing)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/mktree.c:168,1
    - Dst: N_
      Src: /src/git/builtin/mktree.c:168,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/mktree.c:169,1
    - Dst: N_
      Src: /src/git/builtin/mktree.c:169,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/mktree.c:170,1
    - Dst: N_
      Src: /src/git/builtin/mktree.c:170,1
    - Dst: OPT_END
      Src: /src/git/builtin/mktree.c:171,1
    - Dst: parse_options
      Src: /src/git/builtin/mktree.c:174,1
    - Dst: getline_fn
      Src: /src/git/builtin/mktree.c:179,1
    - Dst: die
      Src: /src/git/builtin/mktree.c:187,1
    - Dst: mktree_line
      Src: /src/git/builtin/mktree.c:189,1
    - Dst: write_tree
      Src: /src/git/builtin/mktree.c:199,1
    - Dst: puts
      Src: /src/git/builtin/mktree.c:200,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/mktree.c:200,1
    - Dst: fflush
      Src: /src/git/builtin/mktree.c:201,1
    - Dst: strbuf_release
      Src: /src/git/builtin/mktree.c:205,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 154
    functionDepth: 13
    functionLinenumber: 154
    functionLinenumberEnd: 208
    functionName: cmd_mktree
    functionSourceFile: /src/git/builtin/mktree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - oid_to_hex
    - strbuf_release
    - OPT_SET_INT
    - puts
    - OPT_BOOL
    - mktree_line
    - getline_fn
    - fflush
    - N_
    - write_tree
    linkageType: ''
    returnType: int
    signature: "int cmd_mktree(int ac,\n\t       const char **av,\n\t       const
      char *prefix,\n\t       struct repository *repo)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/builtin/remote-ext.c:40,1
    - Dst: setenv
      Src: /src/git/builtin/remote-ext.c:43,1
    - Dst: setenv
      Src: /src/git/builtin/remote-ext.c:44,1
    - Dst: die
      Src: /src/git/builtin/remote-ext.c:62,1
    - Dst: die
      Src: /src/git/builtin/remote-ext.c:71,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/remote-ext.c:87,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/remote-ext.c:90,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/remote-ext.c:93,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/remote-ext.c:103,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/remote-ext.c:110,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/remote-ext.c:113,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/remote-ext.c:116,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 3
    argNames:
    - str
    - service
    - next
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 118
    functionName: strip_escapes
    functionSourceFile: /src/git/builtin/remote-ext.c
    functionUses: 0
    functionsReached:
    - die
    - strbuf_addch
    - setenv
    - strbuf_detach
    - strbuf_addstr
    - skip_prefix
    linkageType: ''
    returnType: char
    signature: "char *strip_escapes(const char *str, const char *service,\n\tconst
      char **next)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strip_escapes
      Src: /src/git/builtin/remote-ext.c:123,1
    - Dst: strvec_push
      Src: /src/git/builtin/remote-ext.c:125,1
    - Dst: free
      Src: /src/git/builtin/remote-ext.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - out
    - arg
    - service
    argTypes:
    - struct strvec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: parse_argv
    functionSourceFile: /src/git/builtin/remote-ext.c
    functionUses: 2
    functionsReached:
    - strvec_push
    - strip_escapes
    - free
    linkageType: ''
    returnType: void
    signature: void parse_argv(struct strvec *out, const char *arg, const char *service)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packet_write_fmt
      Src: /src/git/builtin/remote-ext.c:134,1
    - Dst: packet_write_fmt
      Src: /src/git/builtin/remote-ext.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - stdin_fd
    - serv
    - repo
    - vhost
    argTypes:
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 7
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: send_git_request
    functionSourceFile: /src/git/builtin/remote-ext.c
    functionUses: 0
    functionsReached:
    - packet_write_fmt
    linkageType: ''
    returnType: void
    signature: "void send_git_request(int stdin_fd, const char *serv, const char *repo,\n\tconst
      char *vhost)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_argv
      Src: /src/git/builtin/remote-ext.c:148,1
    - Dst: start_command
      Src: /src/git/builtin/remote-ext.c:150,1
    - Dst: die
      Src: /src/git/builtin/remote-ext.c:151,1
    - Dst: send_git_request
      Src: /src/git/builtin/remote-ext.c:154,1
    - Dst: bidirectional_transfer_loop
      Src: /src/git/builtin/remote-ext.c:156,1
    - Dst: finish_command
      Src: /src/git/builtin/remote-ext.c:158,1
    - Dst: finish_command
      Src: /src/git/builtin/remote-ext.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - arg
    - service
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 140
    functionDepth: 8
    functionLinenumber: 140
    functionLinenumberEnd: 162
    functionName: run_child
    functionSourceFile: /src/git/builtin/remote-ext.c
    functionUses: 0
    functionsReached:
    - die
    - finish_command
    - send_git_request
    - bidirectional_transfer_loop
    - parse_argv
    - start_command
    linkageType: ''
    returnType: int
    signature: int run_child(const char *arg, const char *service)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/git/builtin/remote-ext.c:174,1
    - Dst: ferror
      Src: /src/git/builtin/remote-ext.c:175,1
    - Dst: die
      Src: /src/git/builtin/remote-ext.c:176,1
    - Dst: exit
      Src: /src/git/builtin/remote-ext.c:177,1
    - Dst: strlen
      Src: /src/git/builtin/remote-ext.c:180,1
    - Dst: isspace
      Src: /src/git/builtin/remote-ext.c:181,1
    - Dst: strcmp
      Src: /src/git/builtin/remote-ext.c:184,1
    - Dst: printf
      Src: /src/git/builtin/remote-ext.c:185,1
    - Dst: fflush
      Src: /src/git/builtin/remote-ext.c:186,1
    - Dst: skip_prefix
      Src: /src/git/builtin/remote-ext.c:187,1
    - Dst: printf
      Src: /src/git/builtin/remote-ext.c:188,1
    - Dst: fflush
      Src: /src/git/builtin/remote-ext.c:189,1
    - Dst: run_child
      Src: /src/git/builtin/remote-ext.c:190,1
    - Dst: fprintf
      Src: /src/git/builtin/remote-ext.c:192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - child
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 166
    functionDepth: 9
    functionLinenumber: 166
    functionLinenumberEnd: 196
    functionName: command_loop
    functionSourceFile: /src/git/builtin/remote-ext.c
    functionUses: 2
    functionsReached:
    - isspace
    - fgets
    - ferror
    - die
    - run_child
    - exit
    - strlen
    - fflush
    - fprintf
    - strcmp
    - skip_prefix
    - printf
    linkageType: ''
    returnType: int
    signature: int command_loop(const char *child)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_NON_EMPTY_PREFIX
      Src: /src/git/builtin/remote-ext.c:203,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/remote-ext.c:205,1
    - Dst: usage
      Src: /src/git/builtin/remote-ext.c:208,1
    - Dst: command_loop
      Src: /src/git/builtin/remote-ext.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 7
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: cmd_remote_ext
    functionSourceFile: /src/git/builtin/remote-ext.c
    functionUses: 0
    functionsReached:
    - show_usage_if_asked
    - BUG_ON_NON_EMPTY_PREFIX
    - command_loop
    - usage
    linkageType: ''
    returnType: int
    signature: "int cmd_remote_ext(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/difftool.c:53,1
    - Dst: git_config_bool
      Src: /src/git/builtin/difftool.c:54,1
    - Dst: strcmp
      Src: /src/git/builtin/difftool.c:57,1
    - Dst: git_config_bool
      Src: /src/git/builtin/difftool.c:58,1
    - Dst: git_default_config
      Src: /src/git/builtin/difftool.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: difftool_config
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - git_default_config
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int difftool_config(const char *var, const char *value,\n\t\t\t   const
      struct config_context *ctx, void *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/difftool.c:70,1
    - Dst: run_command
      Src: /src/git/builtin/difftool.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: print_tool_help
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - strvec_pushl
    - run_command
    linkageType: ''
    returnType: int
    signature: int print_tool_help(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/builtin/difftool.c:80,1
    - Dst: strtol
      Src: /src/git/builtin/difftool.c:81,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:83,1
    - Dst: strtol
      Src: /src/git/builtin/difftool.c:84,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:86,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/builtin/difftool.c:87,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:88,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:90,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/builtin/difftool.c:91,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:92,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:94,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:97,1
    - Dst: isdigit
      Src: /src/git/builtin/difftool.c:98,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:99,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 7
    argNames:
    - repo
    - p
    - mode1
    - mode2
    - oid1
    - oid2
    - status
    argTypes:
    - struct repository*
    - char*
    - int*
    - int*
    - struct object_id*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 101
    functionName: parse_index_info
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - error
    - strtol
    - parse_oid_hex_algop
    - isdigit
    linkageType: ''
    returnType: int
    signature: "int parse_index_info(struct repository *repo,\n\t\t\t    char *p,
      int *mode1, int *mode2,\n\t\t\t    struct object_id *oid1, struct object_id
      *oid2,\n\t\t\t    char *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/builtin/difftool.c:109,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/difftool.c:111,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/difftool.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - base_len
    - path
    argTypes:
    - struct strbuf*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: add_path
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 4
    functionsReached:
    - strbuf_setlen
    - strbuf_addstr
    - strbuf_addch
    linkageType: ''
    returnType: void
    signature: void add_path(struct strbuf *buf, size_t base_len, const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/difftool.c:126,1
    - Dst: add_path
      Src: /src/git/builtin/difftool.c:127,1
    - Dst: lstat
      Src: /src/git/builtin/difftool.c:129,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/difftool.c:129,1
    - Dst: open
      Src: /src/git/builtin/difftool.c:131,1
    - Dst: index_fd
      Src: /src/git/builtin/difftool.c:134,1
    - Dst: is_null_oid
      Src: /src/git/builtin/difftool.c:135,1
    - Dst: oidcpy
      Src: /src/git/builtin/difftool.c:136,1
    - Dst: oideq
      Src: /src/git/builtin/difftool.c:138,1
    - Dst: strbuf_release
      Src: /src/git/builtin/difftool.c:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - repo
    - workdir
    - name
    - oid
    argTypes:
    - struct repository*
    - char*
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 118
    functionDepth: 8
    functionLinenumber: 118
    functionLinenumberEnd: 146
    functionName: use_wt_file
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - open
    - S_ISLNK
    - oidcpy
    - is_null_oid
    - add_path
    - index_fd
    - strbuf_addstr
    - lstat
    - oideq
    linkageType: ''
    returnType: int
    signature: "int use_wt_file(struct repository *repo,\n\t\t       const char *workdir,
      const char *name,\n\t\t       struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/difftool.c:160,1
    - Dst: container_of
      Src: /src/git/builtin/difftool.c:161,1
    - Dst: strcmp
      Src: /src/git/builtin/difftool.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: working_tree_entry_cmp
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int working_tree_entry_cmp(const void *cmp_data UNUSED,\n\t\t\t\t
      \ const struct hashmap_entry *eptr,\n\t\t\t\t  const struct hashmap_entry *entry_or_key,\n\t\t\t\t
      \ const void *keydata UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/difftool.c:183,1
    - Dst: container_of
      Src: /src/git/builtin/difftool.c:184,1
    - Dst: strcmp
      Src: /src/git/builtin/difftool.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - keydata
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 187
    functionName: pair_cmp
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int pair_cmp(const void *cmp_data UNUSED,\n\t\t    const struct hashmap_entry
      *eptr,\n\t\t    const struct hashmap_entry *entry_or_key,\n\t\t    const void
      *keydata UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/builtin/difftool.c:194,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/difftool.c:195,1
    - Dst: strhash
      Src: /src/git/builtin/difftool.c:195,1
    - Dst: hashmap_get_entry
      Src: /src/git/builtin/difftool.c:196,1
    - Dst: free
      Src: /src/git/builtin/difftool.c:198,1
    - Dst: hashmap_add
      Src: /src/git/builtin/difftool.c:202,1
    - Dst: strlcpy
      Src: /src/git/builtin/difftool.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - map
    - path
    - content
    - is_right
    argTypes:
    - struct hashmap*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 205
    functionName: add_left_or_right
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - strhash
    - hashmap_add
    - hashmap_entry_init
    - strlcpy
    - hashmap_get_entry
    - free
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: void
    signature: "void add_left_or_right(struct hashmap *map, const char *path,\n\t\t\t
      \     const char *content, int is_right)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/builtin/difftool.c:219,1
    - Dst: container_of
      Src: /src/git/builtin/difftool.c:220,1
    - Dst: strcmp
      Src: /src/git/builtin/difftool.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cmp_data
    - eptr
    - entry_or_key
    - key
    argTypes:
    - void*
    - struct hashmap_entry*
    - struct hashmap_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 223
    functionName: path_entry_cmp
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - container_of
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int path_entry_cmp(const void *cmp_data UNUSED,\n\t\t\t  const struct
      hashmap_entry *eptr,\n\t\t\t  const struct hashmap_entry *entry_or_key,\n\t\t\t
      \ const void *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absolute_path
      Src: /src/git/builtin/difftool.c:232,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/difftool.c:232,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/difftool.c:235,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/difftool.c:246,1
    - Dst: run_command
      Src: /src/git/builtin/difftool.c:248,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/difftool.c:250,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/difftool.c:259,1
    - Dst: start_command
      Src: /src/git/builtin/difftool.c:260,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:261,1
    - Dst: xfdopen
      Src: /src/git/builtin/difftool.c:262,1
    - Dst: strbuf_getline_nul
      Src: /src/git/builtin/difftool.c:263,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/builtin/difftool.c:265,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/difftool.c:266,1
    - Dst: strhash
      Src: /src/git/builtin/difftool.c:266,1
    - Dst: hashmap_add
      Src: /src/git/builtin/difftool.c:267,1
    - Dst: fclose
      Src: /src/git/builtin/difftool.c:269,1
    - Dst: finish_command
      Src: /src/git/builtin/difftool.c:270,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:271,1
    - Dst: strbuf_release
      Src: /src/git/builtin/difftool.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 4
    argNames:
    - repo
    - result
    - index_path
    - workdir
    argTypes:
    - struct repository*
    - struct hashmap*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 225
    functionDepth: 8
    functionLinenumber: 225
    functionLinenumberEnd: 273
    functionName: changed_files
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - absolute_path
    - strhash
    - hashmap_add
    - fclose
    - die
    - finish_command
    - run_command
    - strbuf_release
    - FLEX_ALLOC_STR
    - strvec_pushl
    - hashmap_entry_init
    - strbuf_getline_nul
    - repo_get_git_dir
    - xfdopen
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: void
    signature: "void changed_files(struct repository *repo,\n\t\t\t  struct hashmap
      *result, const char *index_path,\n\t\t\t  const char *workdir)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/difftool.c:277,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:282,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - repo
    - path
    argTypes:
    - struct repository*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 5
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: ensure_leading_directories
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - error
    - safe_create_leading_directories
    - _
    linkageType: ''
    returnType: int
    signature: int ensure_leading_directories(struct repository *repo, char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/difftool.c:310,1
    - Dst: strbuf_readlink
      Src: /src/git/builtin/difftool.c:314,1
    - Dst: strlen
      Src: /src/git/builtin/difftool.c:314,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:315,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:315,1
    - Dst: strbuf_read_file
      Src: /src/git/builtin/difftool.c:316,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:317,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:317,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/difftool.c:319,1
    - Dst: odb_read_object
      Src: /src/git/builtin/difftool.c:323,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:325,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:325,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/difftool.c:326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - repo
    - dt_options
    - oid
    - path
    argTypes:
    - struct repository*
    - struct difftool_options*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 305
    functionDepth: 12
    functionLinenumber: 305
    functionLinenumberEnd: 330
    functionName: get_symlink
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - strbuf_read_file
    - strbuf_readlink
    - is_null_oid
    - strlen
    - strbuf_detach
    - _
    - odb_read_object
    linkageType: ''
    returnType: char
    signature: "char *get_symlink(struct repository *repo,\n\t\t\t struct difftool_options
      *dt_options,\n\t\t\t const struct object_id *oid, const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_transient_cache_entry
      Src: /src/git/builtin/difftool.c:338,1
    - Dst: checkout_entry
      Src: /src/git/builtin/difftool.c:339,1
    - Dst: discard_cache_entry
      Src: /src/git/builtin/difftool.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - mode
    - oid
    - path
    - state
    argTypes:
    - unsigned
    - struct object_id*
    - char*
    - struct checkout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 11
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: checkout_path
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - make_transient_cache_entry
    - checkout_entry
    - discard_cache_entry
    linkageType: ''
    returnType: int
    signature: "int checkout_path(unsigned mode, struct object_id *oid,\n\t\t\t const
      char *path, const struct checkout *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_path
      Src: /src/git/builtin/difftool.c:349,1
    - Dst: ensure_leading_directories
      Src: /src/git/builtin/difftool.c:350,1
    - Dst: unlink
      Src: /src/git/builtin/difftool.c:351,1
    - Dst: write_file
      Src: /src/git/builtin/difftool.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - repo
    - dir
    - dir_len
    - path
    - content
    argTypes:
    - struct repository*
    - struct strbuf*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 345
    functionDepth: 6
    functionLinenumber: 345
    functionLinenumberEnd: 353
    functionName: write_file_in_directory
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - add_path
    - ensure_leading_directories
    - write_file
    - unlink
    linkageType: ''
    returnType: void
    signature: "void write_file_in_directory(struct repository *repo,\n\t\t\t\t    struct
      strbuf *dir, size_t dir_len,\n\t\t\t\t    const char *path, const char *content)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_file_in_directory
      Src: /src/git/builtin/difftool.c:367,1
    - Dst: write_file_in_directory
      Src: /src/git/builtin/difftool.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - repo
    - entry
    - ldir
    - ldir_len
    - rdir
    - rdir_len
    argTypes:
    - struct repository*
    - struct pair_entry*
    - struct strbuf*
    - size_t
    - struct strbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 361
    functionDepth: 7
    functionLinenumber: 361
    functionLinenumberEnd: 370
    functionName: write_standin_files
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - write_file_in_directory
    linkageType: ''
    returnType: void
    signature: "void write_standin_files(struct repository *repo,\n\t\t\t\tstruct
      pair_entry *entry,\n\t\t\t\tstruct strbuf *ldir, size_t ldir_len,\n\t\t\t\tstruct
      strbuf *rdir, size_t rdir_len)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: HASHMAP_INIT
      Src: /src/git/builtin/difftool.c:388,1
    - Dst: HASHMAP_INIT
      Src: /src/git/builtin/difftool.c:390,1
    - Dst: HASHMAP_INIT
      Src: /src/git/builtin/difftool.c:391,1
    - Dst: INDEX_STATE_INIT
      Src: /src/git/builtin/difftool.c:394,1
    - Dst: HASHMAP_INIT
      Src: /src/git/builtin/difftool.c:398,1
    - Dst: HASHMAP_INIT
      Src: /src/git/builtin/difftool.c:399,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/difftool.c:402,1
    - Dst: getenv
      Src: /src/git/builtin/difftool.c:405,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/builtin/difftool.c:406,1
    - Dst: strbuf_trim_trailing_dir_sep
      Src: /src/git/builtin/difftool.c:407,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/difftool.c:408,1
    - Dst: mkdtemp
      Src: /src/git/builtin/difftool.c:409,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:410,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/difftool.c:413,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/difftool.c:414,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/difftool.c:415,1
    - Dst: is_dir_sep
      Src: /src/git/builtin/difftool.c:416,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/difftool.c:417,1
    - Dst: mkdir
      Src: /src/git/builtin/difftool.c:418,1
    - Dst: mkdir
      Src: /src/git/builtin/difftool.c:419,1
    - Dst: memset
      Src: /src/git/builtin/difftool.c:421,1
    - Dst: xstrdup
      Src: /src/git/builtin/difftool.c:422,1
    - Dst: memset
      Src: /src/git/builtin/difftool.c:425,1
    - Dst: xstrdup
      Src: /src/git/builtin/difftool.c:426,1
    - Dst: start_command
      Src: /src/git/builtin/difftool.c:440,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:441,1
    - Dst: xfdopen
      Src: /src/git/builtin/difftool.c:442,1
    - Dst: strbuf_getline_nul
      Src: /src/git/builtin/difftool.c:446,1
    - Dst: starts_with
      Src: /src/git/builtin/difftool.c:452,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:453,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:453,1
    - Dst: parse_index_info
      Src: /src/git/builtin/difftool.c:457,1
    - Dst: strbuf_getline_nul
      Src: /src/git/builtin/difftool.c:459,1
    - Dst: strbuf_getline_nul
      Src: /src/git/builtin/difftool.c:467,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/difftool.c:472,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/difftool.c:472,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/difftool.c:473,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/difftool.c:474,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/difftool.c:475,1
    - Dst: add_left_or_right
      Src: /src/git/builtin/difftool.c:476,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/difftool.c:477,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/difftool.c:478,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/difftool.c:479,1
    - Dst: oideq
      Src: /src/git/builtin/difftool.c:480,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/difftool.c:481,1
    - Dst: add_left_or_right
      Src: /src/git/builtin/difftool.c:482,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/difftool.c:486,1
    - Dst: get_symlink
      Src: /src/git/builtin/difftool.c:487,1
    - Dst: add_left_or_right
      Src: /src/git/builtin/difftool.c:488,1
    - Dst: free
      Src: /src/git/builtin/difftool.c:489,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/difftool.c:492,1
    - Dst: get_symlink
      Src: /src/git/builtin/difftool.c:493,1
    - Dst: add_left_or_right
      Src: /src/git/builtin/difftool.c:494,1
    - Dst: free
      Src: /src/git/builtin/difftool.c:495,1
    - Dst: checkout_path
      Src: /src/git/builtin/difftool.c:499,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:500,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/difftool.c:505,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/builtin/difftool.c:509,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/difftool.c:510,1
    - Dst: strhash
      Src: /src/git/builtin/difftool.c:510,1
    - Dst: hashmap_get
      Src: /src/git/builtin/difftool.c:511,1
    - Dst: free
      Src: /src/git/builtin/difftool.c:513,1
    - Dst: hashmap_add
      Src: /src/git/builtin/difftool.c:516,1
    - Dst: use_wt_file
      Src: /src/git/builtin/difftool.c:518,1
    - Dst: checkout_path
      Src: /src/git/builtin/difftool.c:519,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:521,1
    - Dst: is_null_oid
      Src: /src/git/builtin/difftool.c:525,1
    - Dst: make_cache_entry
      Src: /src/git/builtin/difftool.c:532,1
    - Dst: add_index_entry
      Src: /src/git/builtin/difftool.c:535,1
    - Dst: add_path
      Src: /src/git/builtin/difftool.c:538,1
    - Dst: ensure_leading_directories
      Src: /src/git/builtin/difftool.c:539,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:540,1
    - Dst: add_path
      Src: /src/git/builtin/difftool.c:545,1
    - Dst: symlink
      Src: /src/git/builtin/difftool.c:547,1
    - Dst: error_errno
      Src: /src/git/builtin/difftool.c:548,1
    - Dst: stat
      Src: /src/git/builtin/difftool.c:553,1
    - Dst: copy_file
      Src: /src/git/builtin/difftool.c:555,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:557,1
    - Dst: fclose
      Src: /src/git/builtin/difftool.c:565,1
    - Dst: finish_command
      Src: /src/git/builtin/difftool.c:567,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:568,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/difftool.c:580,1
    - Dst: write_standin_files
      Src: /src/git/builtin/difftool.c:582,1
    - Dst: hashmap_for_each_entry
      Src: /src/git/builtin/difftool.c:590,1
    - Dst: write_standin_files
      Src: /src/git/builtin/difftool.c:593,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/difftool.c:596,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/difftool.c:597,1
    - Dst: strvec_push
      Src: /src/git/builtin/difftool.c:600,1
    - Dst: strvec_push
      Src: /src/git/builtin/difftool.c:602,1
    - Dst: setenv
      Src: /src/git/builtin/difftool.c:604,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/difftool.c:606,1
    - Dst: run_command
      Src: /src/git/builtin/difftool.c:607,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/difftool.c:610,1
    - Dst: add_path
      Src: /src/git/builtin/difftool.c:628,1
    - Dst: lstat
      Src: /src/git/builtin/difftool.c:629,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/difftool.c:632,1
    - Dst: S_ISREG
      Src: /src/git/builtin/difftool.c:632,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/difftool.c:637,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/difftool.c:638,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/builtin/difftool.c:639,1
    - Dst: write_locked_index
      Src: /src/git/builtin/difftool.c:640,1
    - Dst: error
      Src: /src/git/builtin/difftool.c:641,1
    - Dst: changed_files
      Src: /src/git/builtin/difftool.c:644,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/difftool.c:645,1
    - Dst: changed_files
      Src: /src/git/builtin/difftool.c:646,1
    - Dst: add_path
      Src: /src/git/builtin/difftool.c:647,1
    - Dst: hashmap_entry_init
      Src: /src/git/builtin/difftool.c:651,1
    - Dst: strhash
      Src: /src/git/builtin/difftool.c:651,1
    - Dst: hashmap_get
      Src: /src/git/builtin/difftool.c:652,1
    - Dst: add_path
      Src: /src/git/builtin/difftool.c:653,1
    - Dst: hashmap_get
      Src: /src/git/builtin/difftool.c:654,1
    - Dst: warning
      Src: /src/git/builtin/difftool.c:655,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:655,1
    - Dst: warning
      Src: /src/git/builtin/difftool.c:657,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:657,1
    - Dst: warning
      Src: /src/git/builtin/difftool.c:658,1
    - Dst: unlink
      Src: /src/git/builtin/difftool.c:660,1
    - Dst: copy_file
      Src: /src/git/builtin/difftool.c:661,1
    - Dst: warning_errno
      Src: /src/git/builtin/difftool.c:662,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:662,1
    - Dst: warning
      Src: /src/git/builtin/difftool.c:668,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:668,1
    - Dst: warning
      Src: /src/git/builtin/difftool.c:669,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:669,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/difftool.c:672,1
    - Dst: warning
      Src: /src/git/builtin/difftool.c:674,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:674,1
    - Dst: fclose
      Src: /src/git/builtin/difftool.c:679,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/builtin/difftool.c:681,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/builtin/difftool.c:682,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/builtin/difftool.c:683,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/builtin/difftool.c:684,1
    - Dst: hashmap_clear_and_free
      Src: /src/git/builtin/difftool.c:685,1
    - Dst: release_index
      Src: /src/git/builtin/difftool.c:686,1
    - Dst: free
      Src: /src/git/builtin/difftool.c:687,1
    - Dst: free
      Src: /src/git/builtin/difftool.c:688,1
    - Dst: strbuf_release
      Src: /src/git/builtin/difftool.c:689,1
    - Dst: strbuf_release
      Src: /src/git/builtin/difftool.c:690,1
    - Dst: strbuf_release
      Src: /src/git/builtin/difftool.c:691,1
    - Dst: strbuf_release
      Src: /src/git/builtin/difftool.c:692,1
    - Dst: strbuf_release
      Src: /src/git/builtin/difftool.c:693,1
    - Dst: strbuf_release
      Src: /src/git/builtin/difftool.c:694,1
    - Dst: strbuf_release
      Src: /src/git/builtin/difftool.c:695,1
    - Dst: strbuf_release
      Src: /src/git/builtin/difftool.c:696,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 214
    argCount: 5
    argNames:
    - repo
    - dt_options
    - extcmd
    - prefix
    - child
    argTypes:
    - struct repository*
    - struct difftool_options*
    - char*
    - char*
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 372
    functionDepth: 13
    functionLinenumber: 372
    functionLinenumberEnd: 699
    functionName: run_dir_diff
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - strvec_push
    - oideq
    - ensure_full_index
    - hold_lock_file_for_update
    - mkdtemp
    - is_dir_sep
    - S_ISLNK
    - FLEX_ALLOC_STR
    - ensure_leading_directories
    - strbuf_addf
    - parse_index_info
    - changed_files
    - is_null_oid
    - strbuf_trim_trailing_dir_sep
    - free
    - strbuf_add_absolute_path
    - strbuf_getline_nul
    - hashmap_get
    - error
    - checkout_path
    - hashmap_add
    - strbuf_release
    - die
    - finish_command
    - hashmap_entry_init
    - strbuf_setlen
    - HASHMAP_INIT
    - strbuf_addstr
    - make_cache_entry
    - hashmap_for_each_entry
    - S_ISREG
    - unlink
    - strhash
    - memset
    - oid_to_hex
    - repo_get_work_tree
    - remove_dir_recursively
    - stat
    - S_ISGITLINK
    - strvec_pushl
    - mkdir
    - add_index_entry
    - add_path
    - _
    - N_
    - use_wt_file
    - xfdopen
    - warning
    - xstrdup
    - INDEX_STATE_INIT
    - symlink
    - write_standin_files
    - run_command
    - strbuf_reset
    - warning_errno
    - starts_with
    - strbuf_addch
    - get_symlink
    - setenv
    - write_locked_index
    - copy_file
    - hashmap_clear_and_free
    - release_index
    - getenv
    - lstat
    - start_command
    - add_left_or_right
    linkageType: ''
    returnType: int
    signature: "int run_dir_diff(struct repository *repo,\n\t\t\tstruct difftool_options
      *dt_options,\n\t\t\tconst char *extcmd, const char *prefix,\n\t\t\tstruct child_process
      *child)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/difftool.c:704,1
    - Dst: strvec_push
      Src: /src/git/builtin/difftool.c:705,1
    - Dst: strvec_push
      Src: /src/git/builtin/difftool.c:707,1
    - Dst: strvec_push
      Src: /src/git/builtin/difftool.c:709,1
    - Dst: run_command
      Src: /src/git/builtin/difftool.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - prompt
    - prefix
    - child
    argTypes:
    - int
    - char*
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 701
    functionDepth: 8
    functionLinenumber: 701
    functionLinenumberEnd: 715
    functionName: run_file_diff
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - run_command
    linkageType: ''
    returnType: int
    signature: "int run_file_diff(int prompt, const char *prefix,\n\t\t\t struct child_process
      *child)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/difftool.c:730,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:731,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/difftool.c:732,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:733,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/difftool.c:734,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:735,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/difftool.c:737,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/difftool.c:739,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:740,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/difftool.c:741,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:741,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:742,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/difftool.c:743,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:744,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/difftool.c:746,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:747,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/difftool.c:749,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:749,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:750,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/difftool.c:751,1
    - Dst: N_
      Src: /src/git/builtin/difftool.c:751,1
    - Dst: OPT_END
      Src: /src/git/builtin/difftool.c:752,1
    - Dst: repo_config
      Src: /src/git/builtin/difftool.c:756,1
    - Dst: parse_options
      Src: /src/git/builtin/difftool.c:759,1
    - Dst: print_tool_help
      Src: /src/git/builtin/difftool.c:764,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:767,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:767,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/difftool.c:770,1
    - Dst: setenv
      Src: /src/git/builtin/difftool.c:771,1
    - Dst: absolute_path
      Src: /src/git/builtin/difftool.c:771,1
    - Dst: repo_get_git_dir
      Src: /src/git/builtin/difftool.c:771,1
    - Dst: setenv
      Src: /src/git/builtin/difftool.c:772,1
    - Dst: absolute_path
      Src: /src/git/builtin/difftool.c:772,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/difftool.c:772,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:774,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:774,1
    - Dst: die_for_incompatible_opt3
      Src: /src/git/builtin/difftool.c:776,1
    - Dst: setenv
      Src: /src/git/builtin/difftool.c:786,1
    - Dst: setenv
      Src: /src/git/builtin/difftool.c:788,1
    - Dst: setenv
      Src: /src/git/builtin/difftool.c:792,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:794,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:794,1
    - Dst: setenv
      Src: /src/git/builtin/difftool.c:799,1
    - Dst: die
      Src: /src/git/builtin/difftool.c:801,1
    - Dst: _
      Src: /src/git/builtin/difftool.c:801,1
    - Dst: setenv
      Src: /src/git/builtin/difftool.c:804,1
    - Dst: strvec_push
      Src: /src/git/builtin/difftool.c:813,1
    - Dst: strvec_push
      Src: /src/git/builtin/difftool.c:815,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/difftool.c:817,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/difftool.c:818,1
    - Dst: run_dir_diff
      Src: /src/git/builtin/difftool.c:821,1
    - Dst: run_file_diff
      Src: /src/git/builtin/difftool.c:822,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 717
    functionDepth: 19
    functionLinenumber: 717
    functionLinenumberEnd: 823
    functionName: cmd_difftool
    functionSourceFile: /src/git/builtin/difftool.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - parse_options
    - OPT_BOOL
    - repo_config
    - absolute_path
    - OPT_END
    - die
    - run_dir_diff
    - setup_work_tree
    - print_tool_help
    - repo_get_work_tree
    - strvec_pushv
    - OPT_SET_INT_F
    - strvec_pushl
    - _
    - N_
    - OPT_STRING
    - setenv
    - run_file_diff
    - die_for_incompatible_opt3
    - repo_get_git_dir
    linkageType: ''
    returnType: int
    signature: "int cmd_difftool(int argc,\n\t\t const char **argv,\n\t\t const char
      *prefix,\n\t\t struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_decoration
      Src: /src/git/builtin/unpack-objects.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: lookup_object_buffer
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - lookup_decoration
    linkageType: ''
    returnType: struct obj_buffer
    signature: struct obj_buffer *lookup_object_buffer(struct object *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/unpack-objects.c:56,1
    - Dst: add_decoration
      Src: /src/git/builtin/unpack-objects.c:59,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:60,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/unpack-objects.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - object
    - buffer
    - size
    argTypes:
    - struct object*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: add_object_buffer
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - die
    - oid_to_hex
    - add_decoration
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void add_object_buffer(struct object *object, char *buffer, unsigned
      long size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:72,1
    - Dst: git_hash_update
      Src: /src/git/builtin/unpack-objects.c:74,1
    - Dst: memmove
      Src: /src/git/builtin/unpack-objects.c:75,1
    - Dst: xread
      Src: /src/git/builtin/unpack-objects.c:79,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:82,1
    - Dst: die_errno
      Src: /src/git/builtin/unpack-objects.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - min
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: fill
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 24
    functionsReached:
    - die
    - die_errno
    - xread
    - git_hash_update
    - memmove
    linkageType: ''
    returnType: void
    signature: void *fill(int min)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:93,1
    - Dst: signed_add_overflows
      Src: /src/git/builtin/unpack-objects.c:98,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:99,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:102,1
    - Dst: _
      Src: /src/git/builtin/unpack-objects.c:102,1
    - Dst: display_throughput
      Src: /src/git/builtin/unpack-objects.c:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: use
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 18
    functionsReached:
    - die
    - display_throughput
    - signed_add_overflows
    - _
    linkageType: ''
    returnType: void
    signature: void use(int bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmallocz
      Src: /src/git/builtin/unpack-objects.c:121,1
    - Dst: memset
      Src: /src/git/builtin/unpack-objects.c:123,1
    - Dst: fill
      Src: /src/git/builtin/unpack-objects.c:127,1
    - Dst: git_inflate_init
      Src: /src/git/builtin/unpack-objects.c:129,1
    - Dst: git_inflate
      Src: /src/git/builtin/unpack-objects.c:132,1
    - Dst: use
      Src: /src/git/builtin/unpack-objects.c:133,1
    - Dst: error
      Src: /src/git/builtin/unpack-objects.c:137,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/unpack-objects.c:138,1
    - Dst: exit
      Src: /src/git/builtin/unpack-objects.c:140,1
    - Dst: fill
      Src: /src/git/builtin/unpack-objects.c:144,1
    - Dst: git_inflate_end
      Src: /src/git/builtin/unpack-objects.c:154,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/unpack-objects.c:156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 117
    functionDepth: 9
    functionLinenumber: 117
    functionLinenumberEnd: 158
    functionName: get_data
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 2
    functionsReached:
    - error
    - memset
    - xmallocz
    - exit
    - git_inflate
    - use
    - fill
    - FREE_AND_NULL
    - git_inflate_init
    - git_inflate_end
    linkageType: ''
    returnType: void
    signature: void *get_data(unsigned long size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/builtin/unpack-objects.c:175,1
    - Dst: oidcpy
      Src: /src/git/builtin/unpack-objects.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - nr
    - base_oid
    - base_offset
    - delta
    - size
    argTypes:
    - unsigned
    - struct object_id*
    - off_t
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: add_delta_to_list
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - oidcpy
    linkageType: ''
    returnType: void
    signature: "void add_delta_to_list(unsigned nr, const struct object_id *base_oid,\n\t\t\t
      \     off_t base_offset,\n\t\t\t      void *delta, unsigned long size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_write_object
      Src: /src/git/builtin/unpack-objects.c:207,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:209,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/unpack-objects.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - obj_buf
    argTypes:
    - struct object*
    - struct obj_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: write_cached_object
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - die
    - odb_write_object
    linkageType: ''
    returnType: void
    signature: void write_cached_object(struct object *obj, struct obj_buffer *obj_buf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:231,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/unpack-objects.c:235,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:237,1
    - Dst: lookup_object_buffer
      Src: /src/git/builtin/unpack-objects.c:242,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:244,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/unpack-objects.c:244,1
    - Dst: fsck_object
      Src: /src/git/builtin/unpack-objects.c:245,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:246,1
    - Dst: fsck_walk
      Src: /src/git/builtin/unpack-objects.c:248,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:249,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/unpack-objects.c:249,1
    - Dst: write_cached_object
      Src: /src/git/builtin/unpack-objects.c:250,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - obj
    - type
    - UNUSED
    - options
    argTypes:
    - struct object*
    - enum object_type
    - void*
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 218
    functionDepth: 22
    functionLinenumber: 218
    functionLinenumberEnd: 252
    functionName: check_object
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 2
    functionsReached:
    - oid_to_hex
    - die
    - fsck_walk
    - lookup_object_buffer
    - odb_read_object_info
    - write_cached_object
    - fsck_object
    linkageType: ''
    returnType: int
    signature: "int check_object(struct object *obj, enum object_type type,\n\t\t\tvoid
      *data UNUSED,\n\t\t\tstruct fsck_options *options UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_object
      Src: /src/git/builtin/unpack-objects.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: write_rest
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - check_object
    linkageType: ''
    returnType: void
    signature: void write_rest(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: odb_write_object
      Src: /src/git/builtin/unpack-objects.c:275,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:277,1
    - Dst: added_object
      Src: /src/git/builtin/unpack-objects.c:278,1
    - Dst: free
      Src: /src/git/builtin/unpack-objects.c:279,1
    - Dst: odb_write_object
      Src: /src/git/builtin/unpack-objects.c:283,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:285,1
    - Dst: added_object
      Src: /src/git/builtin/unpack-objects.c:286,1
    - Dst: free
      Src: /src/git/builtin/unpack-objects.c:287,1
    - Dst: lookup_blob
      Src: /src/git/builtin/unpack-objects.c:289,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:293,1
    - Dst: hash_object_file
      Src: /src/git/builtin/unpack-objects.c:298,1
    - Dst: added_object
      Src: /src/git/builtin/unpack-objects.c:300,1
    - Dst: parse_object_buffer
      Src: /src/git/builtin/unpack-objects.c:301,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:305,1
    - Dst: type_name
      Src: /src/git/builtin/unpack-objects.c:305,1
    - Dst: add_object_buffer
      Src: /src/git/builtin/unpack-objects.c:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - nr
    - type
    - buf
    - size
    argTypes:
    - unsigned
    - enum object_type
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 310
    functionName: write_object
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 33
    functionsReached:
    - die
    - odb_write_object
    - hash_object_file
    - lookup_blob
    - free
    - type_name
    - parse_object_buffer
    - add_object_buffer
    - added_object
    linkageType: ''
    returnType: void
    signature: "void write_object(unsigned nr, enum object_type type,\n\t\t\t void
      *buf, unsigned long size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: patch_delta
      Src: /src/git/builtin/unpack-objects.c:319,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:323,1
    - Dst: free
      Src: /src/git/builtin/unpack-objects.c:324,1
    - Dst: write_object
      Src: /src/git/builtin/unpack-objects.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - nr
    - type
    - base
    - base_size
    - delta
    - delta_size
    argTypes:
    - unsigned
    - enum object_type
    - void*
    - unsigned long
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 312
    functionDepth: 10
    functionLinenumber: 312
    functionLinenumberEnd: 326
    functionName: resolve_delta
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 1
    functionsReached:
    - write_object
    - die
    - patch_delta
    - free
    linkageType: ''
    returnType: void
    signature: "void resolve_delta(unsigned nr, enum object_type type,\n\t\t\t  void
      *base, unsigned long base_size,\n\t\t\t  void *delta, unsigned long delta_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/builtin/unpack-objects.c:339,1
    - Dst: resolve_delta
      Src: /src/git/builtin/unpack-objects.c:343,1
    - Dst: free
      Src: /src/git/builtin/unpack-objects.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - nr
    - type
    - data
    - size
    argTypes:
    - unsigned
    - enum object_type
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 350
    functionName: added_object
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 1
    functionsReached:
    - resolve_delta
    - oideq
    - free
    linkageType: ''
    returnType: void
    signature: "void added_object(unsigned nr, enum object_type type,\n\t\t\t void
      *data, unsigned long size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_data
      Src: /src/git/builtin/unpack-objects.c:355,1
    - Dst: write_object
      Src: /src/git/builtin/unpack-objects.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - type
    - size
    - nr
    argTypes:
    - enum object_type
    - unsigned long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 10
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: unpack_non_delta_entry
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - get_data
    - write_object
    linkageType: ''
    returnType: void
    signature: "void unpack_non_delta_entry(enum object_type type, unsigned long size,\n\t\t\t\t
      \  unsigned nr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/git/builtin/unpack-objects.c:371,1
    - Dst: git_inflate
      Src: /src/git/builtin/unpack-objects.c:381,1
    - Dst: use
      Src: /src/git/builtin/unpack-objects.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - in_stream
    - buf
    - buf_len
    argTypes:
    - struct odb_write_stream*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 386
    functionName: feed_input_zstream
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - use
    - git_inflate
    - fill
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t feed_input_zstream(struct odb_write_stream *in_stream,\n\t\t\t\t
      \ unsigned char *buf, size_t buf_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: git_inflate_init
      Src: /src/git/builtin/unpack-objects.c:399,1
    - Dst: odb_write_object_stream
      Src: /src/git/builtin/unpack-objects.c:401,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:402,1
    - Dst: _
      Src: /src/git/builtin/unpack-objects.c:402,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:405,1
    - Dst: _
      Src: /src/git/builtin/unpack-objects.c:405,1
    - Dst: git_inflate_end
      Src: /src/git/builtin/unpack-objects.c:406,1
    - Dst: lookup_blob
      Src: /src/git/builtin/unpack-objects.c:409,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:412,1
    - Dst: _
      Src: /src/git/builtin/unpack-objects.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - size
    - nr
    argTypes:
    - unsigned long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 388
    functionDepth: 4
    functionLinenumber: 388
    functionLinenumberEnd: 416
    functionName: stream_blob
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 3
    functionsReached:
    - die
    - odb_write_object_stream
    - lookup_blob
    - _
    - git_inflate_init
    - git_inflate_end
    linkageType: ''
    returnType: void
    signature: void stream_blob(unsigned long size, unsigned nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/builtin/unpack-objects.c:423,1
    - Dst: lookup_object_buffer
      Src: /src/git/builtin/unpack-objects.c:426,1
    - Dst: resolve_delta
      Src: /src/git/builtin/unpack-objects.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - nr
    - base
    - delta_data
    - delta_size
    argTypes:
    - unsigned
    - struct object_id*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 432
    functionName: resolve_against_held
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - lookup_object
    - lookup_object_buffer
    - resolve_delta
    linkageType: ''
    returnType: int
    signature: "int resolve_against_held(unsigned nr, const struct object_id *base,\n\t\t\t\tvoid
      *delta_data, unsigned long delta_size)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: oidread
      Src: /src/git/builtin/unpack-objects.c:442,1
    - Dst: fill
      Src: /src/git/builtin/unpack-objects.c:442,1
    - Dst: use
      Src: /src/git/builtin/unpack-objects.c:443,1
    - Dst: get_data
      Src: /src/git/builtin/unpack-objects.c:444,1
    - Dst: odb_has_object
      Src: /src/git/builtin/unpack-objects.c:447,1
    - Dst: resolve_against_held
      Src: /src/git/builtin/unpack-objects.c:450,1
    - Dst: oidclr
      Src: /src/git/builtin/unpack-objects.c:455,1
    - Dst: add_delta_to_list
      Src: /src/git/builtin/unpack-objects.c:456,1
    - Dst: fill
      Src: /src/git/builtin/unpack-objects.c:465,1
    - Dst: use
      Src: /src/git/builtin/unpack-objects.c:467,1
    - Dst: MSB
      Src: /src/git/builtin/unpack-objects.c:471,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:472,1
    - Dst: fill
      Src: /src/git/builtin/unpack-objects.c:473,1
    - Dst: use
      Src: /src/git/builtin/unpack-objects.c:475,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:480,1
    - Dst: get_data
      Src: /src/git/builtin/unpack-objects.c:482,1
    - Dst: oidcpy
      Src: /src/git/builtin/unpack-objects.c:494,1
    - Dst: is_null_oid
      Src: /src/git/builtin/unpack-objects.c:495,1
    - Dst: oidclr
      Src: /src/git/builtin/unpack-objects.c:504,1
    - Dst: add_delta_to_list
      Src: /src/git/builtin/unpack-objects.c:505,1
    - Dst: null_oid
      Src: /src/git/builtin/unpack-objects.c:505,1
    - Dst: resolve_against_held
      Src: /src/git/builtin/unpack-objects.c:511,1
    - Dst: odb_read_object
      Src: /src/git/builtin/unpack-objects.c:514,1
    - Dst: error
      Src: /src/git/builtin/unpack-objects.c:517,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/unpack-objects.c:518,1
    - Dst: exit
      Src: /src/git/builtin/unpack-objects.c:520,1
    - Dst: resolve_delta
      Src: /src/git/builtin/unpack-objects.c:524,1
    - Dst: free
      Src: /src/git/builtin/unpack-objects.c:525,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 3
    argNames:
    - type
    - delta_size
    - nr
    argTypes:
    - enum object_type
    - unsigned long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 434
    functionDepth: 12
    functionLinenumber: 434
    functionLinenumberEnd: 526
    functionName: unpack_delta_entry
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - add_delta_to_list
    - oidcpy
    - get_data
    - is_null_oid
    - oidclr
    - free
    - error
    - die
    - MSB
    - odb_has_object
    - odb_read_object
    - oid_to_hex
    - resolve_against_held
    - resolve_delta
    - exit
    - use
    - fill
    - null_oid
    - oidread
    linkageType: ''
    returnType: void
    signature: "void unpack_delta_entry(enum object_type type, unsigned long delta_size,\n\t\t\t
      \      unsigned nr)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/git/builtin/unpack-objects.c:537,1
    - Dst: use
      Src: /src/git/builtin/unpack-objects.c:539,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:545,1
    - Dst: _
      Src: /src/git/builtin/unpack-objects.c:545,1
    - Dst: fill
      Src: /src/git/builtin/unpack-objects.c:546,1
    - Dst: use
      Src: /src/git/builtin/unpack-objects.c:548,1
    - Dst: repo_settings_get_big_file_threshold
      Src: /src/git/builtin/unpack-objects.c:556,1
    - Dst: stream_blob
      Src: /src/git/builtin/unpack-objects.c:557,1
    - Dst: unpack_non_delta_entry
      Src: /src/git/builtin/unpack-objects.c:564,1
    - Dst: unpack_delta_entry
      Src: /src/git/builtin/unpack-objects.c:568,1
    - Dst: error
      Src: /src/git/builtin/unpack-objects.c:571,1
    - Dst: exit
      Src: /src/git/builtin/unpack-objects.c:575,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 1
    argNames:
    - nr
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 528
    functionDepth: 21
    functionLinenumber: 528
    functionLinenumberEnd: 577
    functionName: unpack_one
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - error
    - stream_blob
    - die
    - unpack_non_delta_entry
    - repo_settings_get_big_file_threshold
    - exit
    - use
    - fill
    - _
    - unpack_delta_entry
    linkageType: ''
    returnType: void
    signature: void unpack_one(unsigned nr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/git/builtin/unpack-objects.c:582,1
    - Dst: get_be32
      Src: /src/git/builtin/unpack-objects.c:585,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:586,1
    - Dst: pack_version_ok_native
      Src: /src/git/builtin/unpack-objects.c:588,1
    - Dst: get_be32
      Src: /src/git/builtin/unpack-objects.c:588,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:589,1
    - Dst: get_be32
      Src: /src/git/builtin/unpack-objects.c:590,1
    - Dst: get_be32
      Src: /src/git/builtin/unpack-objects.c:592,1
    - Dst: use
      Src: /src/git/builtin/unpack-objects.c:593,1
    - Dst: start_progress
      Src: /src/git/builtin/unpack-objects.c:596,1
    - Dst: _
      Src: /src/git/builtin/unpack-objects.c:597,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/builtin/unpack-objects.c:598,1
    - Dst: odb_transaction_begin
      Src: /src/git/builtin/unpack-objects.c:599,1
    - Dst: unpack_one
      Src: /src/git/builtin/unpack-objects.c:601,1
    - Dst: display_progress
      Src: /src/git/builtin/unpack-objects.c:602,1
    - Dst: odb_transaction_commit
      Src: /src/git/builtin/unpack-objects.c:604,1
    - Dst: stop_progress
      Src: /src/git/builtin/unpack-objects.c:605,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:608,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 579
    functionDepth: 22
    functionLinenumber: 579
    functionLinenumberEnd: 609
    functionName: unpack_all
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - die
    - odb_transaction_commit
    - CALLOC_ARRAY
    - use
    - get_be32
    - fill
    - odb_transaction_begin
    - display_progress
    - unpack_one
    - _
    - pack_version_ok_native
    - start_progress
    linkageType: ''
    returnType: void
    signature: void unpack_all(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: disable_replace_refs
      Src: /src/git/builtin/unpack-objects.c:620,1
    - Dst: repo_config
      Src: /src/git/builtin/unpack-objects.c:622,1
    - Dst: isatty
      Src: /src/git/builtin/unpack-objects.c:624,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/unpack-objects.c:626,1
    - Dst: fsck_options_init
      Src: /src/git/builtin/unpack-objects.c:628,1
    - Dst: strcmp
      Src: /src/git/builtin/unpack-objects.c:634,1
    - Dst: strcmp
      Src: /src/git/builtin/unpack-objects.c:638,1
    - Dst: strcmp
      Src: /src/git/builtin/unpack-objects.c:642,1
    - Dst: strcmp
      Src: /src/git/builtin/unpack-objects.c:646,1
    - Dst: skip_prefix
      Src: /src/git/builtin/unpack-objects.c:650,1
    - Dst: fsck_set_msg_types
      Src: /src/git/builtin/unpack-objects.c:652,1
    - Dst: skip_prefix
      Src: /src/git/builtin/unpack-objects.c:655,1
    - Dst: parse_pack_header_option
      Src: /src/git/builtin/unpack-objects.c:656,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:658,1
    - Dst: _
      Src: /src/git/builtin/unpack-objects.c:658,1
    - Dst: skip_prefix
      Src: /src/git/builtin/unpack-objects.c:661,1
    - Dst: strtoumax
      Src: /src/git/builtin/unpack-objects.c:662,1
    - Dst: usage
      Src: /src/git/builtin/unpack-objects.c:665,1
    - Dst: usage
      Src: /src/git/builtin/unpack-objects.c:669,1
    - Dst: init_fn
      Src: /src/git/builtin/unpack-objects.c:671,1
    - Dst: unpack_all
      Src: /src/git/builtin/unpack-objects.c:672,1
    - Dst: git_hash_update
      Src: /src/git/builtin/unpack-objects.c:673,1
    - Dst: init_fn
      Src: /src/git/builtin/unpack-objects.c:674,1
    - Dst: git_hash_clone
      Src: /src/git/builtin/unpack-objects.c:675,1
    - Dst: git_hash_final_oid
      Src: /src/git/builtin/unpack-objects.c:676,1
    - Dst: write_rest
      Src: /src/git/builtin/unpack-objects.c:678,1
    - Dst: fsck_finish
      Src: /src/git/builtin/unpack-objects.c:679,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:680,1
    - Dst: _
      Src: /src/git/builtin/unpack-objects.c:680,1
    - Dst: hasheq
      Src: /src/git/builtin/unpack-objects.c:682,1
    - Dst: fill
      Src: /src/git/builtin/unpack-objects.c:682,1
    - Dst: die
      Src: /src/git/builtin/unpack-objects.c:684,1
    - Dst: use
      Src: /src/git/builtin/unpack-objects.c:685,1
    - Dst: write_in_full
      Src: /src/git/builtin/unpack-objects.c:688,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 611
    functionDepth: 23
    functionLinenumber: 611
    functionLinenumberEnd: 692
    functionName: cmd_unpack_objects
    functionSourceFile: /src/git/builtin/unpack-objects.c
    functionUses: 0
    functionsReached:
    - write_rest
    - git_hash_clone
    - strcmp
    - fsck_options_init
    - repo_config
    - die
    - disable_replace_refs
    - fsck_set_msg_types
    - write_in_full
    - git_hash_update
    - unpack_all
    - init_fn
    - isatty
    - fsck_finish
    - hasheq
    - strtoumax
    - git_hash_final_oid
    - _
    - skip_prefix
    - show_usage_if_asked
    - use
    - usage
    - fill
    - parse_pack_header_option
    linkageType: ''
    returnType: int
    signature: "int cmd_unpack_objects(int argc,\n\t\t       const char **argv,\n\t\t
      \      const char *prefix UNUSED,\n\t\t       struct repository *repo)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/verify-pack.c:22,1
    - Dst: strvec_push
      Src: /src/git/builtin/verify-pack.c:25,1
    - Dst: strvec_push
      Src: /src/git/builtin/verify-pack.c:27,1
    - Dst: strvec_push
      Src: /src/git/builtin/verify-pack.c:29,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/verify-pack.c:32,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/verify-pack.c:38,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/builtin/verify-pack.c:39,1
    - Dst: ends_with
      Src: /src/git/builtin/verify-pack.c:40,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/verify-pack.c:41,1
    - Dst: strvec_push
      Src: /src/git/builtin/verify-pack.c:42,1
    - Dst: run_command
      Src: /src/git/builtin/verify-pack.c:46,1
    - Dst: printf
      Src: /src/git/builtin/verify-pack.c:50,1
    - Dst: printf
      Src: /src/git/builtin/verify-pack.c:53,1
    - Dst: strbuf_release
      Src: /src/git/builtin/verify-pack.c:56,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - path
    - flags
    - hash_algo
    argTypes:
    - char*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 13
    functionDepth: 8
    functionLinenumber: 13
    functionLinenumberEnd: 59
    functionName: verify_one_pack
    functionSourceFile: /src/git/builtin/verify-pack.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - run_command
    - printf
    - strbuf_strip_suffix
    - strbuf_addstr
    - ends_with
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: int verify_one_pack(const char *path, unsigned int flags, const char
      *hash_algo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BIT
      Src: /src/git/builtin/verify-pack.c:76,1
    - Dst: N_
      Src: /src/git/builtin/verify-pack.c:76,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/verify-pack.c:78,1
    - Dst: N_
      Src: /src/git/builtin/verify-pack.c:78,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/verify-pack.c:80,1
    - Dst: N_
      Src: /src/git/builtin/verify-pack.c:80,1
    - Dst: N_
      Src: /src/git/builtin/verify-pack.c:81,1
    - Dst: OPT_END
      Src: /src/git/builtin/verify-pack.c:82,1
    - Dst: repo_config
      Src: /src/git/builtin/verify-pack.c:85,1
    - Dst: parse_options
      Src: /src/git/builtin/verify-pack.c:86,1
    - Dst: usage_with_options
      Src: /src/git/builtin/verify-pack.c:89,1
    - Dst: verify_one_pack
      Src: /src/git/builtin/verify-pack.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 66
    functionDepth: 19
    functionLinenumber: 66
    functionLinenumberEnd: 96
    functionName: cmd_verify_pack
    functionSourceFile: /src/git/builtin/verify-pack.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - verify_one_pack
    - OPT_STRING
    - OPT_BIT
    - N_
    - repo_config
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_verify_pack(int argc,\n\t\t    const char **argv,\n\t\t    const
      char *prefix,\n\t\t    struct repository *repo UNUSED)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/merge-index.c:23,1
    - Dst: ce_stage
      Src: /src/git/builtin/merge-index.c:27,1
    - Dst: strcmp
      Src: /src/git/builtin/merge-index.c:29,1
    - Dst: oid_to_hex_r
      Src: /src/git/builtin/merge-index.c:32,1
    - Dst: xsnprintf
      Src: /src/git/builtin/merge-index.c:33,1
    - Dst: die
      Src: /src/git/builtin/merge-index.c:38,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/merge-index.c:40,1
    - Dst: run_command
      Src: /src/git/builtin/merge-index.c:41,1
    - Dst: die
      Src: /src/git/builtin/merge-index.c:46,1
    - Dst: exit
      Src: /src/git/builtin/merge-index.c:47,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - pos
    - path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 14
    functionDepth: 8
    functionLinenumber: 14
    functionLinenumberEnd: 51
    functionName: merge_entry
    functionSourceFile: /src/git/builtin/merge-index.c
    functionUses: 2
    functionsReached:
    - oid_to_hex_r
    - die
    - run_command
    - strvec_pushv
    - exit
    - xsnprintf
    - strcmp
    - ce_stage
    linkageType: ''
    returnType: int
    signature: int merge_entry(int pos, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: index_name_pos
      Src: /src/git/builtin/merge-index.c:55,1
    - Dst: strlen
      Src: /src/git/builtin/merge-index.c:55,1
    - Dst: merge_entry
      Src: /src/git/builtin/merge-index.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 9
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: merge_one_path
    functionSourceFile: /src/git/builtin/merge-index.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - merge_entry
    - strlen
    linkageType: ''
    returnType: void
    signature: void merge_one_path(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_full_index
      Src: /src/git/builtin/merge-index.c:69,1
    - Dst: ce_stage
      Src: /src/git/builtin/merge-index.c:72,1
    - Dst: merge_entry
      Src: /src/git/builtin/merge-index.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 9
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: merge_all
    functionSourceFile: /src/git/builtin/merge-index.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - merge_entry
    - ce_stage
    linkageType: ''
    returnType: void
    signature: void merge_all(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/git/builtin/merge-index.c:91,1
    - Dst: show_usage_if_asked
      Src: /src/git/builtin/merge-index.c:93,1
    - Dst: usage
      Src: /src/git/builtin/merge-index.c:96,1
    - Dst: repo_read_index
      Src: /src/git/builtin/merge-index.c:98,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/merge-index.c:101,1
    - Dst: strcmp
      Src: /src/git/builtin/merge-index.c:104,1
    - Dst: strcmp
      Src: /src/git/builtin/merge-index.c:108,1
    - Dst: strcmp
      Src: /src/git/builtin/merge-index.c:116,1
    - Dst: strcmp
      Src: /src/git/builtin/merge-index.c:120,1
    - Dst: merge_all
      Src: /src/git/builtin/merge-index.c:121,1
    - Dst: die
      Src: /src/git/builtin/merge-index.c:124,1
    - Dst: merge_one_path
      Src: /src/git/builtin/merge-index.c:126,1
    - Dst: die
      Src: /src/git/builtin/merge-index.c:129,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 81
    functionDepth: 10
    functionLinenumber: 81
    functionLinenumberEnd: 131
    functionName: cmd_merge_index
    functionSourceFile: /src/git/builtin/merge-index.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - die
    - repo_read_index
    - show_usage_if_asked
    - signal
    - usage
    - merge_all
    - strcmp
    - merge_one_path
    linkageType: ''
    returnType: int
    signature: "int cmd_merge_index(int argc,\n\t\t    const char **argv,\n\t\t    const
      char *prefix UNUSED,\n\t\t    struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/git/builtin/reset.c:59,1
    - Dst: git_path_merge_head
      Src: /src/git/builtin/reset.c:59,1
    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: is_merge
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 1
    functionsReached:
    - access
    - git_path_merge_head
    linkageType: ''
    returnType: int
    signature: int is_merge(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/reset.c:70,1
    - Dst: init_checkout_metadata
      Src: /src/git/builtin/reset.c:76,1
    - Dst: BUG
      Src: /src/git/builtin/reset.c:96,1
    - Dst: repo_read_index_unmerged
      Src: /src/git/builtin/reset.c:99,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/reset.c:103,1
    - Dst: error
      Src: /src/git/builtin/reset.c:104,1
    - Dst: _
      Src: /src/git/builtin/reset.c:104,1
    - Dst: fill_tree_descriptor
      Src: /src/git/builtin/reset.c:105,1
    - Dst: error
      Src: /src/git/builtin/reset.c:106,1
    - Dst: _
      Src: /src/git/builtin/reset.c:106,1
    - Dst: fill_tree_descriptor
      Src: /src/git/builtin/reset.c:111,1
    - Dst: error
      Src: /src/git/builtin/reset.c:112,1
    - Dst: _
      Src: /src/git/builtin/reset.c:112,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/reset.c:112,1
    - Dst: unpack_trees
      Src: /src/git/builtin/reset.c:117,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/reset.c:121,1
    - Dst: error
      Src: /src/git/builtin/reset.c:123,1
    - Dst: _
      Src: /src/git/builtin/reset.c:123,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/reset.c:123,1
    - Dst: prime_cache_tree
      Src: /src/git/builtin/reset.c:126,1
    - Dst: free
      Src: /src/git/builtin/reset.c:133,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 4
    argNames:
    - ref
    - oid
    - reset_type
    - quiet
    argTypes:
    - char*
    - struct object_id*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 62
    functionDepth: 14
    functionLinenumber: 62
    functionLinenumberEnd: 135
    functionName: reset_index
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 1
    functionsReached:
    - error
    - memset
    - oid_to_hex
    - init_checkout_metadata
    - fill_tree_descriptor
    - repo_parse_tree_indirect
    - repo_get_oid
    - repo_read_index_unmerged
    - prime_cache_tree
    - unpack_trees
    - _
    - free
    - BUG
    linkageType: ''
    returnType: int
    signature: int reset_index(const char *ref, const struct object_id *oid, int reset_type,
      int quiet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/reset.c:141,1
    - Dst: _
      Src: /src/git/builtin/reset.c:141,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/reset.c:142,1
    - Dst: pp_commit_easy
      Src: /src/git/builtin/reset.c:144,1
    - Dst: printf
      Src: /src/git/builtin/reset.c:146,1
    - Dst: putchar
      Src: /src/git/builtin/reset.c:147,1
    - Dst: strbuf_release
      Src: /src/git/builtin/reset.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - commit
    argTypes:
    - struct commit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 16
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: print_new_head_line
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 0
    functionsReached:
    - putchar
    - strbuf_release
    - pp_commit_easy
    - repo_find_unique_abbrev
    - _
    - printf
    linkageType: ''
    returnType: void
    signature: void print_new_head_line(struct commit *commit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/reset.c:161,1
    - Dst: remove_file_from_index
      Src: /src/git/builtin/reset.c:165,1
    - Dst: make_cache_entry
      Src: /src/git/builtin/reset.c:169,1
    - Dst: index_name_pos
      Src: /src/git/builtin/reset.c:180,1
    - Dst: strlen
      Src: /src/git/builtin/reset.c:180,1
    - Dst: ce_skip_worktree
      Src: /src/git/builtin/reset.c:181,1
    - Dst: path_in_sparse_checkout
      Src: /src/git/builtin/reset.c:182,1
    - Dst: die
      Src: /src/git/builtin/reset.c:186,1
    - Dst: _
      Src: /src/git/builtin/reset.c:186,1
    - Dst: set_object_name_for_intent_to_add_entry
      Src: /src/git/builtin/reset.c:190,1
    - Dst: add_index_entry
      Src: /src/git/builtin/reset.c:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 3
    argNames:
    - q
    - UNUSED
    - data
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 151
    functionDepth: 8
    functionLinenumber: 151
    functionLinenumberEnd: 195
    functionName: update_index_from_diff
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 0
    functionsReached:
    - index_name_pos
    - die
    - remove_file_from_index
    - is_null_oid
    - add_index_entry
    - strlen
    - ce_skip_worktree
    - path_in_sparse_checkout
    - _
    - make_cache_entry
    - set_object_name_for_intent_to_add_entry
    linkageType: ''
    returnType: void
    signature: "void update_index_from_diff(struct diff_queue_struct *q,\n\t\t\t\t
      \  struct diff_options *opt UNUSED,\n\t\t\t\t   void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/builtin/reset.c:203,1
    - Dst: copy_pathspec
      Src: /src/git/builtin/reset.c:204,1
    - Dst: pathspec_needs_expanded_index
      Src: /src/git/builtin/reset.c:214,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/reset.c:215,1
    - Dst: do_diff_cache
      Src: /src/git/builtin/reset.c:217,1
    - Dst: diffcore_std
      Src: /src/git/builtin/reset.c:219,1
    - Dst: diff_flush
      Src: /src/git/builtin/reset.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - pathspec
    - tree_oid
    - intent_to_add
    argTypes:
    - struct pathspec*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 197
    functionDepth: 26
    functionLinenumber: 197
    functionLinenumberEnd: 223
    functionName: read_from_tree
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - memset
    - copy_pathspec
    - diff_flush
    - pathspec_needs_expanded_index
    - diffcore_std
    - do_diff_cache
    linkageType: ''
    returnType: int
    signature: "int read_from_tree(const struct pathspec *pathspec,\n\t\t\t  struct
      object_id *tree_oid,\n\t\t\t  int intent_to_add)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/builtin/reset.c:228,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/reset.c:230,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/reset.c:232,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/reset.c:234,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/reset.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sb
    - action
    - rev
    argTypes:
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: set_reflog_message
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - getenv
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void set_reflog_message(struct strbuf *sb, const char *action,\n\t\t\t
      \      const char *rev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_merge
      Src: /src/git/builtin/reset.c:241,1
    - Dst: unmerged_index
      Src: /src/git/builtin/reset.c:241,1
    - Dst: die
      Src: /src/git/builtin/reset.c:242,1
    - Dst: _
      Src: /src/git/builtin/reset.c:242,1
    - Dst: _
      Src: /src/git/builtin/reset.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - reset_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: die_if_unmerged_cache
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 0
    functionsReached:
    - unmerged_index
    - is_merge
    - die
    - _
    linkageType: ''
    returnType: void
    signature: void die_if_unmerged_cache(int reset_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/reset.c:267,1
    - Dst: strcmp
      Src: /src/git/builtin/reset.c:269,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/reset.c:278,1
    - Dst: repo_get_oid_treeish
      Src: /src/git/builtin/reset.c:279,1
    - Dst: verify_non_filename
      Src: /src/git/builtin/reset.c:284,1
    - Dst: verify_filename
      Src: /src/git/builtin/reset.c:288,1
    - Dst: strcmp
      Src: /src/git/builtin/reset.c:293,1
    - Dst: parse_pathspec
      Src: /src/git/builtin/reset.c:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - pathspec
    - argv
    - prefix
    - patch_mode
    - rev_ret
    argTypes:
    - struct pathspec*
    - char**
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 247
    functionDepth: 15
    functionLinenumber: 247
    functionLinenumberEnd: 299
    functionName: parse_args
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 1
    functionsReached:
    - verify_non_filename
    - repo_get_oid_treeish
    - strcmp
    - repo_get_oid_committish
    - verify_filename
    - parse_pathspec
    linkageType: ''
    returnType: void
    signature: "void parse_args(struct pathspec *pathspec,\n\t\t       const char
      **argv, const char *prefix,\n\t\t       int patch_mode,\n\t\t       const char
      **rev_ret)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/reset.c:308,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/reset.c:310,1
    - Dst: set_reflog_message
      Src: /src/git/builtin/reset.c:312,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/reset.c:313,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/reset.c:313,1
    - Dst: refs_delete_ref
      Src: /src/git/builtin/reset.c:317,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/reset.c:317,1
    - Dst: set_reflog_message
      Src: /src/git/builtin/reset.c:319,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/reset.c:320,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/reset.c:320,1
    - Dst: strbuf_release
      Src: /src/git/builtin/reset.c:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - rev
    - oid
    argTypes:
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 301
    functionDepth: 7
    functionLinenumber: 301
    functionLinenumberEnd: 325
    functionName: reset_refs
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 0
    functionsReached:
    - refs_delete_ref
    - strbuf_release
    - repo_get_oid
    - set_reflog_message
    - refs_update_ref
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int reset_refs(const char *rev, const struct object_id *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/reset.c:330,1
    - Dst: git_default_submodule_config
      Src: /src/git/builtin/reset.c:331,1
    - Dst: git_default_config
      Src: /src/git/builtin/reset.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 7
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: git_reset_config
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 0
    functionsReached:
    - git_default_config
    - git_default_submodule_config
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_reset_config(const char *var, const char *value,\n\t\t\t    const
      struct config_context *ctx, void *cb)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/reset.c:351,1
    - Dst: N_
      Src: /src/git/builtin/reset.c:351,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reset.c:352,1
    - Dst: N_
      Src: /src/git/builtin/reset.c:353,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/reset.c:354,1
    - Dst: N_
      Src: /src/git/builtin/reset.c:355,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/reset.c:357,1
    - Dst: N_
      Src: /src/git/builtin/reset.c:358,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/reset.c:360,1
    - Dst: N_
      Src: /src/git/builtin/reset.c:361,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/reset.c:363,1
    - Dst: N_
      Src: /src/git/builtin/reset.c:364,1
    - Dst: OPT_SET_INT_F
      Src: /src/git/builtin/reset.c:366,1
    - Dst: N_
      Src: /src/git/builtin/reset.c:367,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/reset.c:369,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reset.c:373,1
    - Dst: N_
      Src: /src/git/builtin/reset.c:373,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reset.c:374,1
    - Dst: N_
      Src: /src/git/builtin/reset.c:375,1
    - Dst: OPT_DIFF_UNIFIED
      Src: /src/git/builtin/reset.c:376,1
    - Dst: OPT_DIFF_INTERHUNK_CONTEXT
      Src: /src/git/builtin/reset.c:377,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/reset.c:378,1
    - Dst: N_
      Src: /src/git/builtin/reset.c:379,1
    - Dst: OPT_PATHSPEC_FROM_FILE
      Src: /src/git/builtin/reset.c:380,1
    - Dst: OPT_PATHSPEC_FILE_NUL
      Src: /src/git/builtin/reset.c:381,1
    - Dst: OPT_END
      Src: /src/git/builtin/reset.c:382,1
    - Dst: repo_config
      Src: /src/git/builtin/reset.c:385,1
    - Dst: parse_options
      Src: /src/git/builtin/reset.c:387,1
    - Dst: parse_args
      Src: /src/git/builtin/reset.c:389,1
    - Dst: die
      Src: /src/git/builtin/reset.c:393,1
    - Dst: _
      Src: /src/git/builtin/reset.c:393,1
    - Dst: die
      Src: /src/git/builtin/reset.c:396,1
    - Dst: _
      Src: /src/git/builtin/reset.c:396,1
    - Dst: parse_pathspec_file
      Src: /src/git/builtin/reset.c:398,1
    - Dst: die
      Src: /src/git/builtin/reset.c:402,1
    - Dst: _
      Src: /src/git/builtin/reset.c:402,1
    - Dst: strcmp
      Src: /src/git/builtin/reset.c:405,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/reset.c:405,1
    - Dst: oidcpy
      Src: /src/git/builtin/reset.c:409,1
    - Dst: repo_get_oid_committish
      Src: /src/git/builtin/reset.c:412,1
    - Dst: die
      Src: /src/git/builtin/reset.c:413,1
    - Dst: _
      Src: /src/git/builtin/reset.c:413,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/reset.c:414,1
    - Dst: die
      Src: /src/git/builtin/reset.c:416,1
    - Dst: _
      Src: /src/git/builtin/reset.c:416,1
    - Dst: oidcpy
      Src: /src/git/builtin/reset.c:417,1
    - Dst: repo_get_oid_treeish
      Src: /src/git/builtin/reset.c:420,1
    - Dst: die
      Src: /src/git/builtin/reset.c:421,1
    - Dst: _
      Src: /src/git/builtin/reset.c:421,1
    - Dst: repo_parse_tree_indirect
      Src: /src/git/builtin/reset.c:422,1
    - Dst: die
      Src: /src/git/builtin/reset.c:424,1
    - Dst: _
      Src: /src/git/builtin/reset.c:424,1
    - Dst: oidcpy
      Src: /src/git/builtin/reset.c:425,1
    - Dst: die
      Src: /src/git/builtin/reset.c:429,1
    - Dst: _
      Src: /src/git/builtin/reset.c:429,1
    - Dst: die
      Src: /src/git/builtin/reset.c:431,1
    - Dst: _
      Src: /src/git/builtin/reset.c:431,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/reset.c:433,1
    - Dst: die
      Src: /src/git/builtin/reset.c:438,1
    - Dst: _
      Src: /src/git/builtin/reset.c:438,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/reset.c:439,1
    - Dst: run_add_p
      Src: /src/git/builtin/reset.c:440,1
    - Dst: die
      Src: /src/git/builtin/reset.c:445,1
    - Dst: _
      Src: /src/git/builtin/reset.c:445,1
    - Dst: die
      Src: /src/git/builtin/reset.c:447,1
    - Dst: _
      Src: /src/git/builtin/reset.c:447,1
    - Dst: die
      Src: /src/git/builtin/reset.c:449,1
    - Dst: _
      Src: /src/git/builtin/reset.c:449,1
    - Dst: warning
      Src: /src/git/builtin/reset.c:457,1
    - Dst: _
      Src: /src/git/builtin/reset.c:457,1
    - Dst: die
      Src: /src/git/builtin/reset.c:459,1
    - Dst: _
      Src: /src/git/builtin/reset.c:459,1
    - Dst: _
      Src: /src/git/builtin/reset.c:460,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/reset.c:466,1
    - Dst: trace2_cmd_mode
      Src: /src/git/builtin/reset.c:468,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/reset.c:470,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/reset.c:471,1
    - Dst: is_bare_repository
      Src: /src/git/builtin/reset.c:473,1
    - Dst: die
      Src: /src/git/builtin/reset.c:474,1
    - Dst: _
      Src: /src/git/builtin/reset.c:474,1
    - Dst: _
      Src: /src/git/builtin/reset.c:475,1
    - Dst: die
      Src: /src/git/builtin/reset.c:478,1
    - Dst: _
      Src: /src/git/builtin/reset.c:478,1
    - Dst: repo_read_index
      Src: /src/git/builtin/reset.c:480,1
    - Dst: die
      Src: /src/git/builtin/reset.c:481,1
    - Dst: _
      Src: /src/git/builtin/reset.c:481,1
    - Dst: die_if_unmerged_cache
      Src: /src/git/builtin/reset.c:487,1
    - Dst: repo_hold_locked_index
      Src: /src/git/builtin/reset.c:491,1
    - Dst: read_from_tree
      Src: /src/git/builtin/reset.c:495,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/reset.c:500,1
    - Dst: getnanotime
      Src: /src/git/builtin/reset.c:503,1
    - Dst: refresh_index
      Src: /src/git/builtin/reset.c:504,1
    - Dst: _
      Src: /src/git/builtin/reset.c:505,1
    - Dst: getnanotime
      Src: /src/git/builtin/reset.c:506,1
    - Dst: advice_enabled
      Src: /src/git/builtin/reset.c:507,1
    - Dst: advise
      Src: /src/git/builtin/reset.c:508,1
    - Dst: _
      Src: /src/git/builtin/reset.c:508,1
    - Dst: repo_dwim_ref
      Src: /src/git/builtin/reset.c:517,1
    - Dst: strlen
      Src: /src/git/builtin/reset.c:517,1
    - Dst: starts_with
      Src: /src/git/builtin/reset.c:519,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/reset.c:520,1
    - Dst: reset_index
      Src: /src/git/builtin/reset.c:522,1
    - Dst: reset_index
      Src: /src/git/builtin/reset.c:524,1
    - Dst: die
      Src: /src/git/builtin/reset.c:526,1
    - Dst: _
      Src: /src/git/builtin/reset.c:526,1
    - Dst: free
      Src: /src/git/builtin/reset.c:527,1
    - Dst: write_locked_index
      Src: /src/git/builtin/reset.c:530,1
    - Dst: die
      Src: /src/git/builtin/reset.c:531,1
    - Dst: _
      Src: /src/git/builtin/reset.c:531,1
    - Dst: reset_refs
      Src: /src/git/builtin/reset.c:537,1
    - Dst: print_new_head_line
      Src: /src/git/builtin/reset.c:540,1
    - Dst: lookup_commit_reference
      Src: /src/git/builtin/reset.c:540,1
    - Dst: remove_branch_state
      Src: /src/git/builtin/reset.c:543,1
    - Dst: discard_index
      Src: /src/git/builtin/reset.c:545,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/reset.c:548,1
    - Dst: free
      Src: /src/git/builtin/reset.c:549,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 119
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 336
    functionDepth: 27
    functionLinenumber: 336
    functionLinenumberEnd: 551
    functionName: cmd_reset
    functionSourceFile: /src/git/builtin/reset.c
    functionUses: 1
    functionsReached:
    - parse_options
    - oidcpy
    - remove_branch_state
    - OPT_DIFF_UNIFIED
    - parse_pathspec_file
    - repo_get_oid
    - OPT_BOOL
    - repo_get_oid_treeish
    - repo_hold_locked_index
    - strcmp
    - refresh_index
    - free
    - repo_config
    - discard_index
    - reset_index
    - OPT_END
    - die
    - lookup_commit_reference
    - repo_read_index
    - reset_refs
    - getnanotime
    - OPT_DIFF_INTERHUNK_CONTEXT
    - advise
    - OPT__QUIET
    - setup_work_tree
    - repo_parse_tree_indirect
    - die_if_unmerged_cache
    - repo_get_work_tree
    - OPT_SET_INT_F
    - run_add_p
    - _
    - N_
    - parse_args
    - read_from_tree
    - warning
    - FREE_AND_NULL
    - OPT_PATHSPEC_FILE_NUL
    - is_bare_repository
    - clear_pathspec
    - repo_dwim_ref
    - OPT_CALLBACK_F
    - starts_with
    - prepare_repo_settings
    - write_locked_index
    - print_new_head_line
    - strlen
    - OPT_PATHSPEC_FROM_FILE
    - repo_get_oid_committish
    - trace2_cmd_mode
    - advice_enabled
    linkageType: ''
    returnType: int
    signature: "int cmd_reset(int argc,\n\t      const char **argv,\n\t      const
      char *prefix,\n\t      struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/builtin/push.c:43,1
    - Dst: strcasecmp
      Src: /src/git/builtin/push.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - slot
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: parse_push_color_slot
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int parse_push_color_slot(const char *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: want_color_stderr
      Src: /src/git/builtin/push.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ix
    argTypes:
    - enum color_push
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: push_get_color
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - want_color_stderr
    linkageType: ''
    returnType: char
    signature: char *push_get_color(enum color_push ix)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: refspec_find_match
      Src: /src/git/builtin/push.c:81,1
    - Dst: refspec_appendf
      Src: /src/git/builtin/push.c:82,1
    - Dst: free
      Src: /src/git/builtin/push.c:85,1
    - Dst: skip_prefix
      Src: /src/git/builtin/push.c:91,1
    - Dst: branch_get
      Src: /src/git/builtin/push.c:92,1
    - Dst: refspec_appendf
      Src: /src/git/builtin/push.c:94,1
    - Dst: refspec_append
      Src: /src/git/builtin/push.c:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - refspec
    - ref
    - remote
    - matched
    argTypes:
    - struct refspec*
    - char*
    - struct remote*
    - struct ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 71
    functionDepth: 17
    functionLinenumber: 71
    functionLinenumberEnd: 101
    functionName: refspec_append_mapped
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - refspec_append
    - refspec_find_match
    - branch_get
    - skip_prefix
    - free
    - refspec_appendf
    linkageType: ''
    returnType: void
    signature: "void refspec_append_mapped(struct refspec *refspec, const char *ref,\n\t\t\t\t
      \ struct remote *remote, struct ref *matched)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/push.c:110,1
    - Dst: die
      Src: /src/git/builtin/push.c:112,1
    - Dst: _
      Src: /src/git/builtin/push.c:112,1
    - Dst: refspec_appendf
      Src: /src/git/builtin/push.c:115,1
    - Dst: refspec_appendf
      Src: /src/git/builtin/push.c:117,1
    - Dst: strchr
      Src: /src/git/builtin/push.c:119,1
    - Dst: die
      Src: /src/git/builtin/push.c:120,1
    - Dst: _
      Src: /src/git/builtin/push.c:120,1
    - Dst: refspec_appendf
      Src: /src/git/builtin/push.c:121,1
    - Dst: strchr
      Src: /src/git/builtin/push.c:122,1
    - Dst: get_local_heads
      Src: /src/git/builtin/push.c:127,1
    - Dst: count_refspec_match
      Src: /src/git/builtin/push.c:130,1
    - Dst: refspec_append
      Src: /src/git/builtin/push.c:131,1
    - Dst: refspec_append_mapped
      Src: /src/git/builtin/push.c:133,1
    - Dst: refspec_append
      Src: /src/git/builtin/push.c:135,1
    - Dst: free_refs
      Src: /src/git/builtin/push.c:137,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - refs
    - nr
    - remote
    argTypes:
    - char**
    - int
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 103
    functionDepth: 18
    functionLinenumber: 103
    functionLinenumberEnd: 138
    functionName: set_refspecs
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - die
    - refspec_append
    - strchr
    - free_refs
    - strcmp
    - _
    - get_local_heads
    - refspec_appendf
    - refspec_append_mapped
    - count_refspec_match
    linkageType: ''
    returnType: void
    signature: void set_refspecs(const char **refs, int nr, struct remote *remote)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/builtin/push.c:154,1
    - Dst: skip_prefix
      Src: /src/git/builtin/push.c:156,1
    - Dst: _
      Src: /src/git/builtin/push.c:163,1
    - Dst: _
      Src: /src/git/builtin/push.c:167,1
    - Dst: die
      Src: /src/git/builtin/push.c:173,1
    - Dst: _
      Src: /src/git/builtin/push.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - branch
    - remote
    argTypes:
    - struct branch*
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 186
    functionName: die_push_simple
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - repo_config_values
    - die
    - skip_prefix
    - _
    linkageType: ''
    returnType: NORETURN
    signature: "NORETURN die_push_simple(struct branch *branch,\n\t\t\t\t     struct
      remote *remote)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/git/builtin/push.c:205,1
    - Dst: die
      Src: /src/git/builtin/push.c:211,1
    - Dst: _
      Src: /src/git/builtin/push.c:211,1
    - Dst: die
      Src: /src/git/builtin/push.c:222,1
    - Dst: _
      Src: /src/git/builtin/push.c:222,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - flags
    - branch
    - remote_name
    argTypes:
    - int
    - struct branch*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 226
    functionName: get_upstream_ref
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - die
    - _
    linkageType: ''
    returnType: char
    signature: char *get_upstream_ref(int flags, struct branch *branch, const char
      *remote_name)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: refspec_append
      Src: /src/git/builtin/push.c:236,1
    - Dst: die
      Src: /src/git/builtin/push.c:240,1
    - Dst: _
      Src: /src/git/builtin/push.c:240,1
    - Dst: branch_get
      Src: /src/git/builtin/push.c:247,1
    - Dst: die
      Src: /src/git/builtin/push.c:249,1
    - Dst: _
      Src: /src/git/builtin/push.c:249,1
    - Dst: strcmp
      Src: /src/git/builtin/push.c:252,1
    - Dst: remote_for_branch
      Src: /src/git/builtin/push.c:252,1
    - Dst: strcmp
      Src: /src/git/builtin/push.c:260,1
    - Dst: get_upstream_ref
      Src: /src/git/builtin/push.c:260,1
    - Dst: die_push_simple
      Src: /src/git/builtin/push.c:261,1
    - Dst: die
      Src: /src/git/builtin/push.c:266,1
    - Dst: _
      Src: /src/git/builtin/push.c:266,1
    - Dst: get_upstream_ref
      Src: /src/git/builtin/push.c:270,1
    - Dst: refspec_appendf
      Src: /src/git/builtin/push.c:285,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - flags
    - remote
    argTypes:
    - int*
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 228
    functionDepth: 17
    functionLinenumber: 228
    functionLinenumberEnd: 286
    functionName: setup_default_push_refspecs
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - die_push_simple
    - die
    - refspec_append
    - remote_for_branch
    - branch_get
    - refspec_appendf
    - strcmp
    - get_upstream_ref
    - _
    linkageType: ''
    returnType: void
    signature: void setup_default_push_refspecs(int *flags, struct remote *remote)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:323,1
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:323,1
    - Dst: advise
      Src: /src/git/builtin/push.c:325,1
    - Dst: _
      Src: /src/git/builtin/push.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 7
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: advise_pull_before_push
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - advise
    - advice_enabled
    - _
    linkageType: ''
    returnType: void
    signature: void advise_pull_before_push(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:330,1
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:330,1
    - Dst: advise
      Src: /src/git/builtin/push.c:332,1
    - Dst: _
      Src: /src/git/builtin/push.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: advise_checkout_pull_push
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - advise
    - advice_enabled
    - _
    linkageType: ''
    returnType: void
    signature: void advise_checkout_pull_push(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:337,1
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:337,1
    - Dst: advise
      Src: /src/git/builtin/push.c:339,1
    - Dst: _
      Src: /src/git/builtin/push.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 7
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: advise_ref_already_exists
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - advise
    - advice_enabled
    - _
    linkageType: ''
    returnType: void
    signature: void advise_ref_already_exists(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:344,1
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:344,1
    - Dst: advise
      Src: /src/git/builtin/push.c:346,1
    - Dst: _
      Src: /src/git/builtin/push.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 7
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: advise_ref_fetch_first
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - advise
    - advice_enabled
    - _
    linkageType: ''
    returnType: void
    signature: void advise_ref_fetch_first(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:351,1
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:351,1
    - Dst: advise
      Src: /src/git/builtin/push.c:353,1
    - Dst: _
      Src: /src/git/builtin/push.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 7
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: advise_ref_needs_force
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - advise
    - advice_enabled
    - _
    linkageType: ''
    returnType: void
    signature: void advise_ref_needs_force(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:358,1
    - Dst: advice_enabled
      Src: /src/git/builtin/push.c:358,1
    - Dst: advise
      Src: /src/git/builtin/push.c:360,1
    - Dst: _
      Src: /src/git/builtin/push.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 7
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: advise_ref_needs_update
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - advise
    - advice_enabled
    - _
    linkageType: ''
    returnType: void
    signature: void advise_ref_needs_update(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: transport_anonymize_url
      Src: /src/git/builtin/push.c:368,1
    - Dst: transport_set_verbosity
      Src: /src/git/builtin/push.c:370,1
    - Dst: transport_set_option
      Src: /src/git/builtin/push.c:374,1
    - Dst: transport_set_option
      Src: /src/git/builtin/push.c:376,1
    - Dst: is_empty_cas
      Src: /src/git/builtin/push.c:378,1
    - Dst: die
      Src: /src/git/builtin/push.c:380,1
    - Dst: fprintf
      Src: /src/git/builtin/push.c:386,1
    - Dst: _
      Src: /src/git/builtin/push.c:386,1
    - Dst: trace2_region_enter
      Src: /src/git/builtin/push.c:387,1
    - Dst: transport_push
      Src: /src/git/builtin/push.c:388,1
    - Dst: trace2_region_leave
      Src: /src/git/builtin/push.c:390,1
    - Dst: fprintf
      Src: /src/git/builtin/push.c:392,1
    - Dst: push_get_color
      Src: /src/git/builtin/push.c:392,1
    - Dst: error
      Src: /src/git/builtin/push.c:393,1
    - Dst: _
      Src: /src/git/builtin/push.c:393,1
    - Dst: fprintf
      Src: /src/git/builtin/push.c:394,1
    - Dst: push_get_color
      Src: /src/git/builtin/push.c:394,1
    - Dst: transport_disconnect
      Src: /src/git/builtin/push.c:397,1
    - Dst: free
      Src: /src/git/builtin/push.c:398,1
    - Dst: advise_pull_before_push
      Src: /src/git/builtin/push.c:403,1
    - Dst: advise_checkout_pull_push
      Src: /src/git/builtin/push.c:405,1
    - Dst: advise_ref_already_exists
      Src: /src/git/builtin/push.c:407,1
    - Dst: advise_ref_fetch_first
      Src: /src/git/builtin/push.c:409,1
    - Dst: advise_ref_needs_force
      Src: /src/git/builtin/push.c:411,1
    - Dst: advise_ref_needs_update
      Src: /src/git/builtin/push.c:413,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - transport
    - rs
    - flags
    argTypes:
    - struct transport*
    - struct refspec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 363
    functionDepth: 10
    functionLinenumber: 363
    functionLinenumberEnd: 417
    functionName: push_with_options
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - trace2_region_enter
    - free
    - transport_push
    - error
    - transport_anonymize_url
    - die
    - is_empty_cas
    - advise_ref_already_exists
    - transport_set_verbosity
    - transport_disconnect
    - push_get_color
    - advise_ref_needs_force
    - advise_pull_before_push
    - _
    - transport_set_option
    - trace2_region_leave
    - advise_ref_fetch_first
    - advise_checkout_pull_push
    - fprintf
    - advise_ref_needs_update
    linkageType: ''
    returnType: int
    signature: "int push_with_options(struct transport *transport, struct refspec
      *rs,\n\t\t\t     int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: setup_default_push_refspecs
      Src: /src/git/builtin/push.c:434,1
    - Dst: push_url_of_remote
      Src: /src/git/builtin/push.c:437,1
    - Dst: transport_get
      Src: /src/git/builtin/push.c:440,1
    - Dst: push_with_options
      Src: /src/git/builtin/push.c:443,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - flags
    - push_options
    - remote
    argTypes:
    - int
    - struct string_list*
    - struct remote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 419
    functionDepth: 18
    functionLinenumber: 419
    functionLinenumberEnd: 447
    functionName: do_push
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - setup_default_push_refspecs
    - push_with_options
    - push_url_of_remote
    - transport_get
    linkageType: ''
    returnType: int
    signature: "int do_push(int flags,\n\t\t   const struct string_list *push_options,\n\t\t
      \  struct remote *remote)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/push.c:457,1
    - Dst: warning
      Src: /src/git/builtin/push.c:459,1
    - Dst: _
      Src: /src/git/builtin/push.c:459,1
    - Dst: parse_push_recurse_submodules_arg
      Src: /src/git/builtin/push.c:463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - opt
    - arg
    - unset
    argTypes:
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 468
    functionName: option_parse_recurse_submodules
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - parse_push_recurse_submodules_arg
    - warning
    - _
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int option_parse_recurse_submodules(const struct option *opt,\n\t\t\t\t
      \  const char *arg, int unset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - flags
    - v
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 485
    functionName: set_push_cert_flags
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_push_cert_flags(int *flags, int v)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/push.c:494,1
    - Dst: git_config_bool
      Src: /src/git/builtin/push.c:495,1
    - Dst: strcmp
      Src: /src/git/builtin/push.c:500,1
    - Dst: git_config_bool
      Src: /src/git/builtin/push.c:501,1
    - Dst: strcmp
      Src: /src/git/builtin/push.c:504,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/builtin/push.c:505,1
    - Dst: set_push_cert_flags
      Src: /src/git/builtin/push.c:507,1
    - Dst: set_push_cert_flags
      Src: /src/git/builtin/push.c:510,1
    - Dst: strcasecmp
      Src: /src/git/builtin/push.c:513,1
    - Dst: set_push_cert_flags
      Src: /src/git/builtin/push.c:514,1
    - Dst: error
      Src: /src/git/builtin/push.c:516,1
    - Dst: _
      Src: /src/git/builtin/push.c:516,1
    - Dst: strcmp
      Src: /src/git/builtin/push.c:518,1
    - Dst: parse_push_recurse_submodules_arg
      Src: /src/git/builtin/push.c:519,1
    - Dst: strcmp
      Src: /src/git/builtin/push.c:520,1
    - Dst: git_config_bool
      Src: /src/git/builtin/push.c:521,1
    - Dst: strcmp
      Src: /src/git/builtin/push.c:524,1
    - Dst: parse_transport_option
      Src: /src/git/builtin/push.c:525,1
    - Dst: strcmp
      Src: /src/git/builtin/push.c:526,1
    - Dst: git_config_colorbool
      Src: /src/git/builtin/push.c:527,1
    - Dst: skip_prefix
      Src: /src/git/builtin/push.c:529,1
    - Dst: parse_push_color_slot
      Src: /src/git/builtin/push.c:530,1
    - Dst: config_error_nonbool
      Src: /src/git/builtin/push.c:534,1
    - Dst: color_parse
      Src: /src/git/builtin/push.c:535,1
    - Dst: strcmp
      Src: /src/git/builtin/push.c:536,1
    - Dst: git_config_bool
      Src: /src/git/builtin/push.c:537,1
    - Dst: git_default_config
      Src: /src/git/builtin/push.c:544,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 4
    argNames:
    - k
    - v
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 488
    functionDepth: 6
    functionLinenumber: 488
    functionLinenumberEnd: 545
    functionName: git_push_config
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - error
    - git_config_colorbool
    - parse_push_color_slot
    - parse_transport_option
    - strcasecmp
    - parse_push_recurse_submodules_arg
    - color_parse
    - git_parse_maybe_bool
    - set_push_cert_flags
    - strcmp
    - config_error_nonbool
    - git_config_bool
    - git_default_config
    - skip_prefix
    - _
    linkageType: ''
    returnType: int
    signature: "int git_push_config(const char *k, const char *v,\n\t\t\t   const
      struct config_context *ctx, void *cb)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OPT__VERBOSITY
      Src: /src/git/builtin/push.c:563,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/push.c:564,1
    - Dst: N_
      Src: /src/git/builtin/push.c:564,1
    - Dst: N_
      Src: /src/git/builtin/push.c:564,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:565,1
    - Dst: N_
      Src: /src/git/builtin/push.c:565,1
    - Dst: OPT_ALIAS
      Src: /src/git/builtin/push.c:566,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:567,1
    - Dst: N_
      Src: /src/git/builtin/push.c:567,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/push.c:569,1
    - Dst: N_
      Src: /src/git/builtin/push.c:569,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/push.c:570,1
    - Dst: N_
      Src: /src/git/builtin/push.c:570,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:571,1
    - Dst: N_
      Src: /src/git/builtin/push.c:571,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:572,1
    - Dst: N_
      Src: /src/git/builtin/push.c:572,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:573,1
    - Dst: N_
      Src: /src/git/builtin/push.c:573,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/push.c:574,1
    - Dst: N_
      Src: /src/git/builtin/push.c:574,1
    - Dst: N_
      Src: /src/git/builtin/push.c:575,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:577,1
    - Dst: N_
      Src: /src/git/builtin/push.c:578,1
    - Dst: OPT_CALLBACK
      Src: /src/git/builtin/push.c:580,1
    - Dst: N_
      Src: /src/git/builtin/push.c:581,1
    - Dst: OPT_BOOL_F
      Src: /src/git/builtin/push.c:582,1
    - Dst: N_
      Src: /src/git/builtin/push.c:582,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/push.c:583,1
    - Dst: N_
      Src: /src/git/builtin/push.c:583,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/push.c:584,1
    - Dst: N_
      Src: /src/git/builtin/push.c:584,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:585,1
    - Dst: N_
      Src: /src/git/builtin/push.c:585,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/push.c:587,1
    - Dst: N_
      Src: /src/git/builtin/push.c:587,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:588,1
    - Dst: N_
      Src: /src/git/builtin/push.c:588,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:590,1
    - Dst: N_
      Src: /src/git/builtin/push.c:590,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:591,1
    - Dst: N_
      Src: /src/git/builtin/push.c:591,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/push.c:593,1
    - Dst: N_
      Src: /src/git/builtin/push.c:593,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/push.c:595,1
    - Dst: N_
      Src: /src/git/builtin/push.c:595,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/push.c:596,1
    - Dst: N_
      Src: /src/git/builtin/push.c:596,1
    - Dst: N_
      Src: /src/git/builtin/push.c:596,1
    - Dst: OPT_IPVERSION
      Src: /src/git/builtin/push.c:597,1
    - Dst: OPT_END
      Src: /src/git/builtin/push.c:598,1
    - Dst: packet_trace_identity
      Src: /src/git/builtin/push.c:601,1
    - Dst: repo_config
      Src: /src/git/builtin/push.c:602,1
    - Dst: parse_options
      Src: /src/git/builtin/push.c:603,1
    - Dst: set_push_cert_flags
      Src: /src/git/builtin/push.c:607,1
    - Dst: die_for_incompatible_opt4
      Src: /src/git/builtin/push.c:609,1
    - Dst: die
      Src: /src/git/builtin/push.c:614,1
    - Dst: _
      Src: /src/git/builtin/push.c:614,1
    - Dst: refspec_append
      Src: /src/git/builtin/push.c:624,1
    - Dst: pushremote_get
      Src: /src/git/builtin/push.c:629,1
    - Dst: die
      Src: /src/git/builtin/push.c:632,1
    - Dst: _
      Src: /src/git/builtin/push.c:632,1
    - Dst: die
      Src: /src/git/builtin/push.c:633,1
    - Dst: _
      Src: /src/git/builtin/push.c:633,1
    - Dst: set_refspecs
      Src: /src/git/builtin/push.c:644,1
    - Dst: die
      Src: /src/git/builtin/push.c:651,1
    - Dst: _
      Src: /src/git/builtin/push.c:651,1
    - Dst: die
      Src: /src/git/builtin/push.c:655,1
    - Dst: _
      Src: /src/git/builtin/push.c:655,1
    - Dst: is_empty_cas
      Src: /src/git/builtin/push.c:658,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/push.c:661,1
    - Dst: strchr
      Src: /src/git/builtin/push.c:662,1
    - Dst: die
      Src: /src/git/builtin/push.c:663,1
    - Dst: _
      Src: /src/git/builtin/push.c:663,1
    - Dst: do_push
      Src: /src/git/builtin/push.c:665,1
    - Dst: string_list_clear
      Src: /src/git/builtin/push.c:666,1
    - Dst: string_list_clear
      Src: /src/git/builtin/push.c:667,1
    - Dst: clear_cas_option
      Src: /src/git/builtin/push.c:668,1
    - Dst: usage_with_options
      Src: /src/git/builtin/push.c:670,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repository
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 547
    functionDepth: 19
    functionLinenumber: 547
    functionLinenumberEnd: 673
    functionName: cmd_push
    functionSourceFile: /src/git/builtin/push.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - parse_options
    - OPT_BOOL
    - packet_trace_identity
    - strchr
    - repo_config
    - usage_with_options
    - OPT_ALIAS
    - OPT_END
    - die
    - is_empty_cas
    - die_for_incompatible_opt4
    - pushremote_get
    - OPT_BIT
    - OPT_IPVERSION
    - set_refspecs
    - OPT_STRING_LIST
    - string_list_clear
    - set_push_cert_flags
    - _
    - N_
    - OPT_BOOL_F
    - refspec_append
    - OPT_CALLBACK_F
    - OPT_STRING
    - OPT_CALLBACK
    - do_push
    - clear_cas_option
    - OPT__VERBOSITY
    linkageType: ''
    returnType: int
    signature: "int cmd_push(int argc,\n\t     const char **argv,\n\t     const char
      *prefix,\n\t     struct repository *repository UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:50,1
    - Dst: repo_default_remote
      Src: /src/git/builtin/submodule--helper.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 17
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: get_default_remote
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - repo_default_remote
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *get_default_remote(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_default_remote
      Src: /src/git/builtin/submodule--helper.c:56,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:59,1
    - Dst: repo_config_get_string
      Src: /src/git/builtin/submodule--helper.c:60,1
    - Dst: warning
      Src: /src/git/builtin/submodule--helper.c:62,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:62,1
    - Dst: xgetcwd
      Src: /src/git/builtin/submodule--helper.c:66,1
    - Dst: relative_url
      Src: /src/git/builtin/submodule--helper.c:68,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:70,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:71,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - rel_url
    - up_path
    - quiet
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 19
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: resolve_relative_url
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - xgetcwd
    - relative_url
    - strbuf_release
    - get_default_remote
    - strbuf_addf
    - repo_config_get_string
    - _
    - free
    - warning
    linkageType: ''
    returnType: char
    signature: char *resolve_relative_url(const char *rel_url, const char *up_path,
      int quiet)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:84,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:84,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:86,1
    - Dst: starts_with_dot_dot_slash
      Src: /src/git/builtin/submodule--helper.c:89,1
    - Dst: starts_with_dot_slash
      Src: /src/git/builtin/submodule--helper.c:90,1
    - Dst: resolve_relative_url
      Src: /src/git/builtin/submodule--helper.c:93,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:94,1
    - Dst: repo_submodule_init
      Src: /src/git/builtin/submodule--helper.c:98,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:99,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:100,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:100,1
    - Dst: repo_remote_from_url
      Src: /src/git/builtin/submodule--helper.c:105,1
    - Dst: repo_default_remote
      Src: /src/git/builtin/submodule--helper.c:107,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:109,1
    - Dst: repo_clear
      Src: /src/git/builtin/submodule--helper.c:111,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - module_path
    - default_remote
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 77
    functionDepth: 20
    functionLinenumber: 77
    functionLinenumberEnd: 115
    functionName: get_default_remote_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - starts_with_dot_slash
    - submodule_from_path
    - repo_submodule_init
    - repo_default_remote
    - repo_clear
    - starts_with_dot_dot_slash
    - free
    - resolve_relative_url
    - repo_remote_from_url
    - die_message
    - null_oid
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int get_default_remote_submodule(const char *module_path, char **default_remote)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:125,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:128,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:132,1
    - Dst: usage_with_options
      Src: /src/git/builtin/submodule--helper.c:134,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/submodule--helper.c:137,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:138,1
    - Dst: get_default_remote_submodule
      Src: /src/git/builtin/submodule--helper.c:142,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:144,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:148,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:149,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 21
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: module_get_default_remote
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - get_default_remote_submodule
    - parse_options
    - OPT_END
    - is_absolute_path
    - xstrfmt
    - free
    - N_
    - printf
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int module_get_default_remote(int argc, const char **argv, const char
      *prefix,\n\t\t\t\t     struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/submodule--helper.c:159,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:163,1
    - Dst: relative_path
      Src: /src/git/builtin/submodule--helper.c:163,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:164,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:167,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - path
    - prefix
    - super_prefix
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 171
    functionName: get_submodule_displaypath
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - relative_path
    - xstrfmt
    - BUG
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *get_submodule_displaypath(const char *path, const char *prefix,\n\t\t\t\t
      \      const char *super_prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:192,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:197,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/submodule--helper.c:198,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:199,1
    - Dst: capture_command
      Src: /src/git/builtin/submodule--helper.c:201,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/builtin/submodule--helper.c:202,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/submodule--helper.c:203,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - sub_path
    - object_id
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 209
    functionName: compute_rev_name
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - prepare_submodule_repo_env
    - strbuf_release
    - strvec_pushv
    - strbuf_strip_suffix
    - capture_command
    - strbuf_detach
    linkageType: ''
    returnType: char
    signature: char *compute_rev_name(const char *sub_path, const char* object_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ml
    argTypes:
    - struct module_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: module_list_release
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void module_list_release(struct module_list *ml)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_pathspec
      Src: /src/git/builtin/submodule--helper.c:230,1
    - Dst: xcalloc
      Src: /src/git/builtin/submodule--helper.c:235,1
    - Dst: repo_read_index
      Src: /src/git/builtin/submodule--helper.c:237,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:238,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:238,1
    - Dst: match_pathspec
      Src: /src/git/builtin/submodule--helper.c:243,1
    - Dst: ce_namelen
      Src: /src/git/builtin/submodule--helper.c:243,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:245,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/submodule--helper.c:248,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:251,1
    - Dst: report_path_error
      Src: /src/git/builtin/submodule--helper.c:259,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:262,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - argv
    - prefix
    - pathspec
    - list
    argTypes:
    - char**
    - char*
    - struct pathspec*
    - struct module_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 222
    functionDepth: 15
    functionLinenumber: 222
    functionLinenumberEnd: 265
    functionName: module_list_compute
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - die
    - ce_namelen
    - repo_read_index
    - S_ISGITLINK
    - free
    - report_path_error
    - strcmp
    - match_pathspec
    - xcalloc
    - _
    - ALLOC_GROW
    - parse_pathspec
    linkageType: ''
    returnType: int
    signature: "int module_list_compute(const char **argv,\n\t\t\t       const char
      *prefix,\n\t\t\t       struct pathspec *pathspec,\n\t\t\t       struct module_list
      *list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_submodule_active
      Src: /src/git/builtin/submodule--helper.c:275,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/submodule--helper.c:278,1
    - Dst: module_list_release
      Src: /src/git/builtin/submodule--helper.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct module_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 267
    functionDepth: 21
    functionLinenumber: 267
    functionLinenumberEnd: 286
    functionName: module_list_active
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - module_list_release
    - is_submodule_active
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void module_list_active(struct module_list *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstrings
      Src: /src/git/builtin/submodule--helper.c:292,1
    - Dst: count_slashes
      Src: /src/git/builtin/submodule--helper.c:292,1
    - Dst: is_dir_sep
      Src: /src/git/builtin/submodule--helper.c:299,1
    - Dst: strlen
      Src: /src/git/builtin/submodule--helper.c:299,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/submodule--helper.c:300,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/submodule--helper.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 303
    functionName: get_up_path
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strbuf_addstrings
    - is_dir_sep
    - count_slashes
    - strlen
    - strbuf_detach
    - strbuf_addstr
    linkageType: ''
    returnType: char
    signature: char *get_up_path(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/builtin/submodule--helper.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - list
    - fn
    - cb_data
    argTypes:
    - struct module_list*
    - each_submodule_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: for_each_listed_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - fn
    linkageType: ''
    returnType: void
    signature: "void for_each_listed_submodule(const struct module_list *list,\n\t\t\t\t
      \     each_submodule_fn fn, void *cb_data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/builtin/submodule--helper.c:334,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:335,1
    - Dst: get_submodule_displaypath
      Src: /src/git/builtin/submodule--helper.c:337,1
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:340,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:340,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:343,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:343,1
    - Dst: is_submodule_populated_gently
      Src: /src/git/builtin/submodule--helper.c:346,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:349,1
    - Dst: xgetcwd
      Src: /src/git/builtin/submodule--helper.c:366,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:369,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:370,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:371,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:372,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:373,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:374,1
    - Dst: sq_quote_buf
      Src: /src/git/builtin/submodule--helper.c:385,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:386,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:388,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:389,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/submodule--helper.c:391,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:395,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:395,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:398,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:399,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:399,1
    - Dst: child_process_clear
      Src: /src/git/builtin/submodule--helper.c:402,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:410,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:412,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:414,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:417,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:419,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/submodule--helper.c:420,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:422,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:423,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:423,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:429,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 2
    argNames:
    - list_item
    - cb_data
    argTypes:
    - struct cache_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 324
    functionDepth: 9
    functionLinenumber: 324
    functionLinenumberEnd: 430
    functionName: runcommand_in_submodule_cb
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - get_submodule_displaypath
    - strvec_push
    - validate_submodule_path
    - free
    - printf
    - submodule_from_path
    - xgetcwd
    - strbuf_release
    - die
    - child_process_clear
    - sq_quote_buf
    - prepare_submodule_repo_env
    - oid_to_hex
    - strvec_pushv
    - strvec_pushl
    - _
    - is_submodule_populated_gently
    - strvec_pushf
    - run_command
    - null_oid
    linkageType: ''
    returnType: void
    signature: "void runcommand_in_submodule_cb(const struct cache_entry *list_item,\n\t\t\t\t
      \      void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT__SUPER_PREFIX
      Src: /src/git/builtin/submodule--helper.c:439,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/submodule--helper.c:440,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:440,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:441,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:442,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:443,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:446,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:451,1
    - Dst: module_list_compute
      Src: /src/git/builtin/submodule--helper.c:454,1
    - Dst: for_each_listed_submodule
      Src: /src/git/builtin/submodule--helper.c:461,1
    - Dst: module_list_release
      Src: /src/git/builtin/submodule--helper.c:465,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/submodule--helper.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 432
    functionDepth: 16
    functionLinenumber: 432
    functionLinenumberEnd: 468
    functionName: module_foreach
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - module_list_release
    - clear_pathspec
    - module_list_compute
    - OPT_BOOL
    - N_
    - OPT__SUPER_PREFIX
    - for_each_listed_submodule
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int module_foreach(int argc, const char **argv, const char *prefix,\n\t\t\t
      \ struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_git_dir
      Src: /src/git/builtin/submodule--helper.c:483,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:486,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/submodule--helper.c:489,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:490,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/submodule--helper.c:494,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:495,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - gitdir_path
    - submodule_name
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 477
    functionDepth: 22
    functionLinenumber: 477
    functionLinenumberEnd: 501
    functionName: validate_and_set_submodule_gitdir
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - repo_config_get_string_tmp
    - xstrfmt
    - free
    - validate_submodule_git_dir
    - repo_config_set_gently
    linkageType: ''
    returnType: int
    signature: "int validate_and_set_submodule_gitdir(struct strbuf *gitdir_path,\n\t\t\t\t\t
      \    const char *submodule_name)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path_append
      Src: /src/git/builtin/submodule--helper.c:512,1
    - Dst: validate_and_set_submodule_gitdir
      Src: /src/git/builtin/submodule--helper.c:513,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:514,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:519,1
    - Dst: repo_git_path_append
      Src: /src/git/builtin/submodule--helper.c:520,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/builtin/submodule--helper.c:521,1
    - Dst: validate_and_set_submodule_gitdir
      Src: /src/git/builtin/submodule--helper.c:522,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:523,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:528,1
    - Dst: repo_git_path_append
      Src: /src/git/builtin/submodule--helper.c:529,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/builtin/submodule--helper.c:530,1
    - Dst: validate_and_set_submodule_gitdir
      Src: /src/git/builtin/submodule--helper.c:531,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:536,1
    - Dst: repo_git_path_append
      Src: /src/git/builtin/submodule--helper.c:537,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/builtin/submodule--helper.c:538,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/submodule--helper.c:539,1
    - Dst: validate_and_set_submodule_gitdir
      Src: /src/git/builtin/submodule--helper.c:540,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:543,1
    - Dst: repo_git_path_append
      Src: /src/git/builtin/submodule--helper.c:544,1
    - Dst: strbuf_addstr_urlencode
      Src: /src/git/builtin/submodule--helper.c:545,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/submodule--helper.c:546,1
    - Dst: validate_and_set_submodule_gitdir
      Src: /src/git/builtin/submodule--helper.c:547,1
    - Dst: snprintf
      Src: /src/git/builtin/submodule--helper.c:552,1
    - Dst: strlen
      Src: /src/git/builtin/submodule--helper.c:552,1
    - Dst: init_fn
      Src: /src/git/builtin/submodule--helper.c:553,1
    - Dst: update_fn
      Src: /src/git/builtin/submodule--helper.c:554,1
    - Dst: update_fn
      Src: /src/git/builtin/submodule--helper.c:555,1
    - Dst: update_fn
      Src: /src/git/builtin/submodule--helper.c:556,1
    - Dst: strlen
      Src: /src/git/builtin/submodule--helper.c:556,1
    - Dst: final_fn
      Src: /src/git/builtin/submodule--helper.c:557,1
    - Dst: hash_to_hex_algop_r
      Src: /src/git/builtin/submodule--helper.c:558,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:559,1
    - Dst: repo_git_path_append
      Src: /src/git/builtin/submodule--helper.c:560,1
    - Dst: validate_and_set_submodule_gitdir
      Src: /src/git/builtin/submodule--helper.c:561,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:562,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:567,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:567,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 1
    argNames:
    - submodule_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 503
    functionDepth: 23
    functionLinenumber: 503
    functionLinenumberEnd: 571
    functionName: create_default_gitdir_config
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - repo_git_path_append
    - strbuf_release
    - snprintf
    - die
    - validate_and_set_submodule_gitdir
    - update_fn
    - strbuf_reset
    - strbuf_addch
    - strlen
    - final_fn
    - _
    - strbuf_addstr_urlencode
    - init_fn
    - hash_to_hex_algop_r
    linkageType: ''
    returnType: void
    signature: void create_default_gitdir_config(const char *submodule_name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_submodule_displaypath
      Src: /src/git/builtin/submodule--helper.c:582,1
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:584,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:584,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:587,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:587,1
    - Dst: is_submodule_active
      Src: /src/git/builtin/submodule--helper.c:596,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:597,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/submodule--helper.c:598,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:599,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:607,1
    - Dst: repo_config_get_string
      Src: /src/git/builtin/submodule--helper.c:608,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:610,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:610,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:613,1
    - Dst: starts_with_dot_dot_slash
      Src: /src/git/builtin/submodule--helper.c:616,1
    - Dst: starts_with_dot_slash
      Src: /src/git/builtin/submodule--helper.c:617,1
    - Dst: resolve_relative_url
      Src: /src/git/builtin/submodule--helper.c:620,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:621,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/submodule--helper.c:624,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:625,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:625,1
    - Dst: fprintf
      Src: /src/git/builtin/submodule--helper.c:628,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:629,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:632,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:635,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/submodule--helper.c:636,1
    - Dst: fprintf
      Src: /src/git/builtin/submodule--helper.c:639,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:639,1
    - Dst: submodule_update_type_to_string
      Src: /src/git/builtin/submodule--helper.c:643,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/submodule--helper.c:646,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:647,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:647,1
    - Dst: create_default_gitdir_config
      Src: /src/git/builtin/submodule--helper.c:651,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:653,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:654,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:655,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - path
    - prefix
    - super_prefix
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 573
    functionDepth: 24
    functionLinenumber: 573
    functionLinenumberEnd: 656
    functionName: init_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - get_submodule_displaypath
    - starts_with_dot_slash
    - strbuf_addf
    - create_default_gitdir_config
    - free
    - resolve_relative_url
    - submodule_from_path
    - strbuf_release
    - repo_config_get_string_tmp
    - die
    - submodule_update_type_to_string
    - is_submodule_active
    - starts_with_dot_dot_slash
    - _
    - xstrdup
    - strbuf_reset
    - repo_config_get_string
    - null_oid
    - repo_config_set_gently
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void init_submodule(const char *path, const char *prefix,\n\t\t\t
      \  const char *super_prefix,\n\t\t\t   unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_submodule
      Src: /src/git/builtin/submodule--helper.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list_item
    - cb_data
    argTypes:
    - struct cache_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 658
    functionDepth: 25
    functionLinenumber: 658
    functionLinenumberEnd: 664
    functionName: init_submodule_cb
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - init_submodule
    linkageType: ''
    returnType: void
    signature: void init_submodule_cb(const struct cache_entry *list_item, void *cb_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/submodule--helper.c:674,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:674,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:675,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:678,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:683,1
    - Dst: module_list_compute
      Src: /src/git/builtin/submodule--helper.c:686,1
    - Dst: repo_config_get
      Src: /src/git/builtin/submodule--helper.c:693,1
    - Dst: module_list_active
      Src: /src/git/builtin/submodule--helper.c:694,1
    - Dst: for_each_listed_submodule
      Src: /src/git/builtin/submodule--helper.c:700,1
    - Dst: module_list_release
      Src: /src/git/builtin/submodule--helper.c:704,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/submodule--helper.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 666
    functionDepth: 22
    functionLinenumber: 666
    functionLinenumberEnd: 707
    functionName: module_init
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 9
    functionsReached:
    - parse_options
    - OPT_END
    - module_list_release
    - clear_pathspec
    - module_list_compute
    - repo_config_get
    - module_list_active
    - N_
    - for_each_listed_submodule
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int module_init(int argc, const char **argv, const char *prefix,\n\t\t
      \      struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:722,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:722,1
    - Dst: compute_rev_name
      Src: /src/git/builtin/submodule--helper.c:725,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:725,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:728,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:729,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - flags
    - state
    - path
    - oid
    - displaypath
    argTypes:
    - unsigned int
    - char
    - char*
    - struct object_id*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 733
    functionName: print_status
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 1
    functionsReached:
    - compute_rev_name
    - oid_to_hex
    - printf
    - free
    linkageType: ''
    returnType: void
    signature: "void print_status(unsigned int flags, char state, const char *path,\n\t\t\t
      const struct object_id *oid, const char *displaypath)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/builtin/submodule--helper.c:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 743
    functionName: handle_submodule_head_ref
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - oidcpy
    linkageType: ''
    returnType: int
    signature: int handle_submodule_head_ref(const struct reference *ref, void *cb_data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/builtin/submodule--helper.c:755,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:756,1
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:758,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:758,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:759,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:759,1
    - Dst: get_submodule_displaypath
      Src: /src/git/builtin/submodule--helper.c:762,1
    - Dst: print_status
      Src: /src/git/builtin/submodule--helper.c:765,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:765,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:769,1
    - Dst: read_gitfile
      Src: /src/git/builtin/submodule--helper.c:770,1
    - Dst: is_submodule_active
      Src: /src/git/builtin/submodule--helper.c:774,1
    - Dst: is_git_directory
      Src: /src/git/builtin/submodule--helper.c:775,1
    - Dst: print_status
      Src: /src/git/builtin/submodule--helper.c:776,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:777,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:780,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:782,1
    - Dst: repo_config
      Src: /src/git/builtin/submodule--helper.c:786,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/submodule--helper.c:788,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/builtin/submodule--helper.c:790,1
    - Dst: run_diff_files
      Src: /src/git/builtin/submodule--helper.c:791,1
    - Dst: diff_result_code
      Src: /src/git/builtin/submodule--helper.c:793,1
    - Dst: print_status
      Src: /src/git/builtin/submodule--helper.c:794,1
    - Dst: repo_get_submodule_ref_store
      Src: /src/git/builtin/submodule--helper.c:798,1
    - Dst: print_status
      Src: /src/git/builtin/submodule--helper.c:802,1
    - Dst: refs_head_ref
      Src: /src/git/builtin/submodule--helper.c:805,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:806,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:806,1
    - Dst: print_status
      Src: /src/git/builtin/submodule--helper.c:809,1
    - Dst: print_status
      Src: /src/git/builtin/submodule--helper.c:811,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:820,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:822,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:824,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:827,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:830,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:832,1
    - Dst: raise
      Src: /src/git/builtin/submodule--helper.c:834,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:836,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:836,1
    - Dst: strvec_clear
      Src: /src/git/builtin/submodule--helper.c:840,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:841,1
    - Dst: release_revisions
      Src: /src/git/builtin/submodule--helper.c:842,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 6
    argNames:
    - path
    - ce_oid
    - ce_flags
    - prefix
    - super_prefix
    - flags
    argTypes:
    - char*
    - struct object_id*
    - unsigned int
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 745
    functionDepth: 21
    functionLinenumber: 745
    functionLinenumberEnd: 843
    functionName: status_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - get_submodule_displaypath
    - strvec_push
    - strbuf_addf
    - validate_submodule_path
    - repo_init_revisions
    - read_gitfile
    - print_status
    - free
    - repo_config
    - submodule_from_path
    - strbuf_release
    - die
    - repo_get_submodule_ref_store
    - release_revisions
    - is_submodule_active
    - prepare_submodule_repo_env
    - refs_head_ref
    - strvec_pushl
    - diff_result_code
    - _
    - is_git_directory
    - strvec_pushf
    - run_command
    - raise
    - setup_revisions_from_strvec
    - strvec_clear
    - run_diff_files
    - null_oid
    linkageType: ''
    returnType: void
    signature: "void status_submodule(const char *path, const struct object_id *ce_oid,\n\t\t\t
      \    unsigned int ce_flags, const char *prefix,\n\t\t\t     const char *super_prefix,
      unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status_submodule
      Src: /src/git/builtin/submodule--helper.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list_item
    - cb_data
    argTypes:
    - struct cache_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 845
    functionDepth: 22
    functionLinenumber: 845
    functionLinenumberEnd: 852
    functionName: status_submodule_cb
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - status_submodule
    linkageType: ''
    returnType: void
    signature: "void status_submodule_cb(const struct cache_entry *list_item,\n\t\t\t\tvoid
      *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT__SUPER_PREFIX
      Src: /src/git/builtin/submodule--helper.c:862,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/submodule--helper.c:863,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:863,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/submodule--helper.c:864,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:864,1
    - Dst: OPT_BIT
      Src: /src/git/builtin/submodule--helper.c:865,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:865,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:866,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:869,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:874,1
    - Dst: module_list_compute
      Src: /src/git/builtin/submodule--helper.c:877,1
    - Dst: for_each_listed_submodule
      Src: /src/git/builtin/submodule--helper.c:884,1
    - Dst: module_list_release
      Src: /src/git/builtin/submodule--helper.c:888,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/submodule--helper.c:889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 854
    functionDepth: 16
    functionLinenumber: 854
    functionLinenumberEnd: 891
    functionName: module_status
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 1
    functionsReached:
    - parse_options
    - OPT_END
    - module_list_release
    - clear_pathspec
    - module_list_compute
    - OPT_BIT
    - N_
    - OPT__SUPER_PREFIX
    - for_each_listed_submodule
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int module_status(int argc, const char **argv, const char *prefix,\n\t\t\t
      struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mcb
    argTypes:
    - struct module_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 906
    functionName: module_cb_release
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void module_cb_release(struct module_cb *mcb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_cb_release
      Src: /src/git/builtin/submodule--helper.c:921,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:922,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mcbl
    argTypes:
    - struct module_cb_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 925
    functionName: module_cb_list_release
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - free
    - module_cb_release
    linkageType: ''
    returnType: void
    signature: void module_cb_list_release(struct module_cb_list *mcbl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:952,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:953,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:954,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:955,1
    - Dst: capture_command
      Src: /src/git/builtin/submodule--helper.c:957,1
    - Dst: strbuf_trim_trailing_newline
      Src: /src/git/builtin/submodule--helper.c:960,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/submodule--helper.c:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - sm_path
    - committish
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 944
    functionDepth: 4
    functionLinenumber: 944
    functionLinenumberEnd: 962
    functionName: verify_submodule_committish
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - prepare_submodule_repo_env
    - strbuf_trim_trailing_newline
    - strvec_pushl
    - capture_command
    - strbuf_detach
    - strvec_pushf
    linkageType: ''
    returnType: char
    signature: "char *verify_submodule_committish(const char *sm_path,\n\t\t\t\t\t
      const char *committish)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:970,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:971,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:971,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:974,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:974,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:977,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:982,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:984,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:987,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:987,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:993,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:994,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:996,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:996,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:998,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:1001,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:1003,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:1005,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:1006,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:1009,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:1012,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:1014,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 7
    argNames:
    - info
    - errmsg
    - total_commits
    - displaypath
    - src_abbrev
    - dst_abbrev
    - p
    argTypes:
    - struct summary_cb*
    - char*
    - int
    - char*
    - char*
    - char*
    - struct module_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 964
    functionDepth: 8
    functionLinenumber: 964
    functionLinenumberEnd: 1015
    functionName: print_submodule_summary
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 1
    functionsReached:
    - prepare_submodule_repo_env
    - run_command
    - strvec_pushl
    - S_ISGITLINK
    - _
    - strvec_pushf
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_submodule_summary(struct summary_cb *info, const char *errmsg,\n\t\t\t\t
      \   int total_commits, const char *displaypath,\n\t\t\t\t    const char *src_abbrev,
      const char *dst_abbrev,\n\t\t\t\t    struct module_cb *p)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/builtin/submodule--helper.c:1025,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:1025,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:1026,1
    - Dst: repo_get_submodule_ref_store
      Src: /src/git/builtin/submodule--helper.c:1027,1
    - Dst: refs_head_ref
      Src: /src/git/builtin/submodule--helper.c:1031,1
    - Dst: S_ISLNK
      Src: /src/git/builtin/submodule--helper.c:1032,1
    - Dst: S_ISREG
      Src: /src/git/builtin/submodule--helper.c:1032,1
    - Dst: open
      Src: /src/git/builtin/submodule--helper.c:1034,1
    - Dst: fstat
      Src: /src/git/builtin/submodule--helper.c:1036,1
    - Dst: index_fd
      Src: /src/git/builtin/submodule--helper.c:1037,1
    - Dst: error
      Src: /src/git/builtin/submodule--helper.c:1039,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1039,1
    - Dst: warning
      Src: /src/git/builtin/submodule--helper.c:1043,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1043,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:1047,1
    - Dst: verify_submodule_committish
      Src: /src/git/builtin/submodule--helper.c:1049,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1050,1
    - Dst: xstrndup
      Src: /src/git/builtin/submodule--helper.c:1059,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1059,1
    - Dst: xstrndup
      Src: /src/git/builtin/submodule--helper.c:1068,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1068,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:1071,1
    - Dst: verify_submodule_committish
      Src: /src/git/builtin/submodule--helper.c:1072,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1073,1
    - Dst: xstrndup
      Src: /src/git/builtin/submodule--helper.c:1082,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1082,1
    - Dst: xstrndup
      Src: /src/git/builtin/submodule--helper.c:1091,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1091,1
    - Dst: get_submodule_displaypath
      Src: /src/git/builtin/submodule--helper.c:1094,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:1101,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:1103,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:1103,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:1104,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1107,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:1107,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1109,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:1113,1
    - Dst: capture_command
      Src: /src/git/builtin/submodule--helper.c:1115,1
    - Dst: atoi
      Src: /src/git/builtin/submodule--helper.c:1116,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1118,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:1124,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:1126,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1127,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1128,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:1130,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1132,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1133,1
    - Dst: print_submodule_summary
      Src: /src/git/builtin/submodule--helper.c:1138,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1142,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1143,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1144,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1145,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 2
    argNames:
    - info
    - p
    argTypes:
    - struct summary_cb*
    - struct module_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1017
    functionDepth: 11
    functionLinenumber: 1017
    functionLinenumberEnd: 1146
    functionName: generate_submodule_summary
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - get_submodule_displaypath
    - strvec_push
    - S_ISLNK
    - strbuf_addf
    - capture_command
    - free
    - error
    - strbuf_release
    - repo_get_submodule_ref_store
    - index_fd
    - print_submodule_summary
    - S_ISREG
    - prepare_submodule_repo_env
    - oid_to_hex
    - refs_head_ref
    - atoi
    - strvec_pushl
    - S_ISGITLINK
    - _
    - warning
    - strvec_pushf
    - open
    - fstat
    - xstrndup
    - verify_submodule_committish
    - null_oid
    - oideq
    linkageType: ''
    returnType: void
    signature: "void generate_submodule_summary(struct summary_cb *info,\n\t\t\t\t
      \      struct module_cb *p)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: generate_submodule_summary
      Src: /src/git/builtin/submodule--helper.c:1158,1
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:1163,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:1164,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:1169,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/submodule--helper.c:1171,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:1172,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:1174,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1176,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/submodule--helper.c:1182,1
    - Dst: is_nonbare_repository_dir
      Src: /src/git/builtin/submodule--helper.c:1183,1
    - Dst: generate_submodule_summary
      Src: /src/git/builtin/submodule--helper.c:1184,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1185,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - info
    - list
    argTypes:
    - struct summary_cb*
    - struct module_cb_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1148
    functionDepth: 19
    functionLinenumber: 1148
    functionLinenumberEnd: 1187
    functionName: prepare_submodule_summary
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - strbuf_release
    - repo_config_get_string_tmp
    - generate_submodule_summary
    - xstrfmt
    - strbuf_addstr
    - strcmp
    - free
    - is_nonbare_repository_dir
    - null_oid
    linkageType: ''
    returnType: void
    signature: "void prepare_submodule_summary(struct summary_cb *info,\n\t\t\t\t
      \     struct module_cb_list *list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:1199,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:1199,1
    - Dst: xmalloc
      Src: /src/git/builtin/submodule--helper.c:1201,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:1207,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/submodule--helper.c:1209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - q
    - options
    - data
    argTypes:
    - struct diff_queue_struct*
    - struct diff_options*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1212
    functionName: submodule_summary_callback
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - S_ISGITLINK
    - ALLOC_GROW
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void submodule_summary_callback(struct diff_queue_struct *q,\n\t\t\t\t
      \      struct diff_options *options UNUSED,\n\t\t\t\t       void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/submodule--helper.c:1219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - diff_cmd
    argTypes:
    - enum diff_cmd
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1221
    functionName: get_diff_cmd
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *get_diff_cmd(enum diff_cmd diff_cmd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1232,1
    - Dst: get_diff_cmd
      Src: /src/git/builtin/submodule--helper.c:1232,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1234,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:1235,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1237,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:1237,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1238,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/submodule--helper.c:1240,1
    - Dst: repo_config
      Src: /src/git/builtin/submodule--helper.c:1242,1
    - Dst: repo_init_revisions
      Src: /src/git/builtin/submodule--helper.c:1243,1
    - Dst: precompose_argv_prefix
      Src: /src/git/builtin/submodule--helper.c:1245,1
    - Dst: setup_revisions_from_strvec
      Src: /src/git/builtin/submodule--helper.c:1246,1
    - Dst: setup_work_tree
      Src: /src/git/builtin/submodule--helper.c:1253,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/submodule--helper.c:1254,1
    - Dst: perror
      Src: /src/git/builtin/submodule--helper.c:1255,1
    - Dst: repo_read_index
      Src: /src/git/builtin/submodule--helper.c:1259,1
    - Dst: perror
      Src: /src/git/builtin/submodule--helper.c:1260,1
    - Dst: run_diff_index
      Src: /src/git/builtin/submodule--helper.c:1266,1
    - Dst: run_diff_files
      Src: /src/git/builtin/submodule--helper.c:1268,1
    - Dst: prepare_submodule_summary
      Src: /src/git/builtin/submodule--helper.c:1269,1
    - Dst: strvec_clear
      Src: /src/git/builtin/submodule--helper.c:1271,1
    - Dst: release_revisions
      Src: /src/git/builtin/submodule--helper.c:1272,1
    - Dst: module_cb_list_release
      Src: /src/git/builtin/submodule--helper.c:1273,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - head_oid
    - info
    - diff_cmd
    argTypes:
    - struct object_id*
    - struct summary_cb*
    - enum diff_cmd
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1223
    functionDepth: 21
    functionLinenumber: 1223
    functionLinenumberEnd: 1275
    functionName: compute_summary_module_list
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - repo_init_revisions
    - run_diff_index
    - repo_config
    - repo_read_index_preload
    - release_revisions
    - repo_read_index
    - precompose_argv_prefix
    - oid_to_hex
    - setup_work_tree
    - strvec_pushv
    - strvec_pushl
    - module_cb_list_release
    - prepare_submodule_summary
    - perror
    - get_diff_cmd
    - setup_revisions_from_strvec
    - strvec_clear
    - run_diff_files
    linkageType: ''
    returnType: int
    signature: "int compute_summary_module_list(struct object_id *head_oid,\n\t\t\t\t
      \      struct summary_cb *info,\n\t\t\t\t       enum diff_cmd diff_cmd)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:1289,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1290,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:1291,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1292,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:1293,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1294,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/submodule--helper.c:1295,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1296,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:1297,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1300,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:1304,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/submodule--helper.c:1310,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:1315,1
    - Dst: oidcpy
      Src: /src/git/builtin/submodule--helper.c:1317,1
    - Dst: repo_get_oid
      Src: /src/git/builtin/submodule--helper.c:1323,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1324,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1324,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1329,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1329,1
    - Dst: compute_summary_module_list
      Src: /src/git/builtin/submodule--helper.c:1341,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1277
    functionDepth: 22
    functionLinenumber: 1277
    functionLinenumberEnd: 1344
    functionName: module_summary
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 4
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - compute_summary_module_list
    - oidcpy
    - repo_get_oid
    - OPT_BOOL
    - strcmp
    - N_
    - _
    - OPT_INTEGER
    linkageType: ''
    returnType: int
    signature: "int module_summary(int argc, const char **argv, const char *prefix,\n\t\t\t
      \ struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/git/builtin/submodule--helper.c:1352,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1352,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/builtin/submodule--helper.c:1354,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:1356,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1346
    functionDepth: 23
    functionLinenumber: 1346
    functionLinenumberEnd: 1360
    functionName: module_gitdir
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 1
    functionsReached:
    - submodule_name_to_gitdir
    - strbuf_release
    - usage
    - _
    - printf
    linkageType: ''
    returnType: int
    signature: "int module_gitdir(int argc, const char **argv, const char *prefix
      UNUSED,\n\t\t\t struct repository *repo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path_append
      Src: /src/git/builtin/submodule--helper.c:1370,1
    - Dst: opendir
      Src: /src/git/builtin/submodule--helper.c:1372,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1374,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1374,1
    - Dst: readdir
      Src: /src/git/builtin/submodule--helper.c:1376,1
    - Dst: is_dot_or_dotdot
      Src: /src/git/builtin/submodule--helper.c:1381,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:1384,1
    - Dst: is_git_directory
      Src: /src/git/builtin/submodule--helper.c:1385,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1386,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1389,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:1391,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/submodule--helper.c:1392,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1394,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1397,1
    - Dst: create_default_gitdir_config
      Src: /src/git/builtin/submodule--helper.c:1399,1
    - Dst: closedir
      Src: /src/git/builtin/submodule--helper.c:1402,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1403,1
    - Dst: repo_config_get_int
      Src: /src/git/builtin/submodule--helper.c:1405,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/submodule--helper.c:1407,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1408,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1408,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/submodule--helper.c:1412,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1413,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1413,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - UNUSED
    - UNUSED
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1362
    functionDepth: 24
    functionLinenumber: 1362
    functionLinenumberEnd: 1420
    functionName: module_migrate
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - repo_git_path_append
    - strbuf_release
    - repo_config_get_string_tmp
    - die
    - is_dot_or_dotdot
    - xstrfmt
    - strbuf_addf
    - free
    - opendir
    - create_default_gitdir_config
    - _
    - is_git_directory
    - closedir
    - repo_config_set_gently
    - readdir
    linkageType: ''
    returnType: int
    signature: "int module_migrate(int argc UNUSED, const char **argv UNUSED,\n\t\t\t
      \ const char *prefix UNUSED, struct repository *repo)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: is_submodule_active
      Src: /src/git/builtin/submodule--helper.c:1439,1
    - Dst: validate_submodule_path
      Src: /src/git/builtin/submodule--helper.c:1442,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1443,1
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:1445,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:1445,1
    - Dst: starts_with_dot_dot_slash
      Src: /src/git/builtin/submodule--helper.c:1448,1
    - Dst: starts_with_dot_slash
      Src: /src/git/builtin/submodule--helper.c:1449,1
    - Dst: get_up_path
      Src: /src/git/builtin/submodule--helper.c:1450,1
    - Dst: resolve_relative_url
      Src: /src/git/builtin/submodule--helper.c:1452,1
    - Dst: resolve_relative_url
      Src: /src/git/builtin/submodule--helper.c:1453,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1454,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:1456,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:1457,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:1460,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:1461,1
    - Dst: get_submodule_displaypath
      Src: /src/git/builtin/submodule--helper.c:1464,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:1467,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1467,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:1470,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:1471,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/submodule--helper.c:1472,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1473,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1473,1
    - Dst: is_submodule_populated_gently
      Src: /src/git/builtin/submodule--helper.c:1476,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:1479,1
    - Dst: get_default_remote_submodule
      Src: /src/git/builtin/submodule--helper.c:1480,1
    - Dst: exit
      Src: /src/git/builtin/submodule--helper.c:1482,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:1484,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1485,1
    - Dst: submodule_to_gitdir
      Src: /src/git/builtin/submodule--helper.c:1487,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/submodule--helper.c:1488,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/builtin/submodule--helper.c:1490,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1491,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1491,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:1499,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:1501,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:1503,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1506,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:1508,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1509,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1509,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1514,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1515,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1516,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1517,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1518,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1519,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 4
    argNames:
    - path
    - prefix
    - super_prefix
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1429
    functionDepth: 21
    functionLinenumber: 1429
    functionLinenumberEnd: 1520
    functionName: sync_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - starts_with_dot_slash
    - get_submodule_displaypath
    - strvec_push
    - strbuf_addf
    - validate_submodule_path
    - free
    - resolve_relative_url
    - printf
    - get_default_remote_submodule
    - submodule_from_path
    - strbuf_release
    - die
    - strbuf_addstr
    - get_up_path
    - is_submodule_active
    - prepare_submodule_repo_env
    - strvec_pushl
    - starts_with_dot_dot_slash
    - _
    - is_submodule_populated_gently
    - strvec_pushf
    - xstrdup
    - run_command
    - strbuf_reset
    - xstrfmt
    - exit
    - submodule_to_gitdir
    - repo_config_set_in_file_gently
    - null_oid
    - repo_config_set_gently
    linkageType: ''
    returnType: void
    signature: "void sync_submodule(const char *path, const char *prefix,\n\t\t\t
      \  const char *super_prefix, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sync_submodule
      Src: /src/git/builtin/submodule--helper.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list_item
    - cb_data
    argTypes:
    - struct cache_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1522
    functionDepth: 22
    functionLinenumber: 1522
    functionLinenumberEnd: 1528
    functionName: sync_submodule_cb
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - sync_submodule
    linkageType: ''
    returnType: void
    signature: void sync_submodule_cb(const struct cache_entry *list_item, void *cb_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT__SUPER_PREFIX
      Src: /src/git/builtin/submodule--helper.c:1539,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/submodule--helper.c:1540,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1540,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:1541,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1542,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:1543,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1546,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:1551,1
    - Dst: module_list_compute
      Src: /src/git/builtin/submodule--helper.c:1554,1
    - Dst: for_each_listed_submodule
      Src: /src/git/builtin/submodule--helper.c:1563,1
    - Dst: module_list_release
      Src: /src/git/builtin/submodule--helper.c:1567,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/submodule--helper.c:1568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1530
    functionDepth: 16
    functionLinenumber: 1530
    functionLinenumberEnd: 1570
    functionName: module_sync
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - module_list_release
    - clear_pathspec
    - module_list_compute
    - OPT_BOOL
    - N_
    - OPT__SUPER_PREFIX
    - for_each_listed_submodule
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int module_sync(int argc, const char **argv, const char *prefix,\n\t\t
      \      struct repository *repo UNUSED)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:1585,1
    - Dst: validate_submodule_path
      Src: /src/git/builtin/submodule--helper.c:1587,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1588,1
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:1590,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:1590,1
    - Dst: get_submodule_displaypath
      Src: /src/git/builtin/submodule--helper.c:1595,1
    - Dst: is_directory
      Src: /src/git/builtin/submodule--helper.c:1598,1
    - Dst: is_directory
      Src: /src/git/builtin/submodule--helper.c:1602,1
    - Dst: warning
      Src: /src/git/builtin/submodule--helper.c:1604,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1604,1
    - Dst: absorb_git_dir_into_superproject
      Src: /src/git/builtin/submodule--helper.c:1609,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:1617,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:1620,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1621,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1621,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/submodule--helper.c:1626,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/submodule--helper.c:1628,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1629,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1631,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:1634,1
    - Dst: submodule_unset_core_worktree
      Src: /src/git/builtin/submodule--helper.c:1636,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1638,1
    - Dst: mkdir
      Src: /src/git/builtin/submodule--helper.c:1641,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:1642,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1642,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:1646,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:1647,1
    - Dst: capture_command
      Src: /src/git/builtin/submodule--helper.c:1650,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:1651,1
    - Dst: repo_config_rename_section_in_file
      Src: /src/git/builtin/submodule--helper.c:1657,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:1659,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1659,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1661,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1665,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1666,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1667,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - path
    - prefix
    - flags
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1578
    functionDepth: 10
    functionLinenumber: 1578
    functionLinenumberEnd: 1668
    functionName: deinit_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - get_submodule_displaypath
    - repo_config_rename_section_in_file
    - validate_submodule_path
    - submodule_unset_core_worktree
    - capture_command
    - free
    - printf
    - submodule_from_path
    - strbuf_release
    - die
    - strbuf_addstr
    - remove_dir_recursively
    - strvec_pushl
    - mkdir
    - absorb_git_dir_into_superproject
    - _
    - warning
    - strvec_pushf
    - run_command
    - xstrfmt
    - is_directory
    - null_oid
    linkageType: ''
    returnType: void
    signature: "void deinit_submodule(const char *path, const char *prefix,\n\t\t\t
      \    unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deinit_submodule
      Src: /src/git/builtin/submodule--helper.c:1674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list_item
    - cb_data
    argTypes:
    - struct cache_entry*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1670
    functionDepth: 11
    functionLinenumber: 1670
    functionLinenumberEnd: 1675
    functionName: deinit_submodule_cb
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - deinit_submodule
    linkageType: ''
    returnType: void
    signature: "void deinit_submodule_cb(const struct cache_entry *list_item,\n\t\t\t\tvoid
      *cb_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/submodule--helper.c:1687,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1687,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/submodule--helper.c:1688,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1688,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:1689,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1689,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:1690,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:1693,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:1698,1
    - Dst: error
      Src: /src/git/builtin/submodule--helper.c:1702,1
    - Dst: usage_with_options
      Src: /src/git/builtin/submodule--helper.c:1703,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1708,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1708,1
    - Dst: module_list_compute
      Src: /src/git/builtin/submodule--helper.c:1710,1
    - Dst: for_each_listed_submodule
      Src: /src/git/builtin/submodule--helper.c:1719,1
    - Dst: module_list_release
      Src: /src/git/builtin/submodule--helper.c:1723,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/submodule--helper.c:1724,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1677
    functionDepth: 16
    functionLinenumber: 1677
    functionLinenumberEnd: 1726
    functionName: module_deinit
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - error
    - parse_options
    - OPT_END
    - die
    - OPT__FORCE
    - module_list_release
    - clear_pathspec
    - usage_with_options
    - module_list_compute
    - OPT_BOOL
    - _
    - N_
    - for_each_listed_submodule
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int module_deinit(int argc, const char **argv, const char *prefix,\n\t\t\t
      struct repository *repo UNUSED)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strip_suffix
      Src: /src/git/builtin/submodule--helper.c:1777,1
    - Dst: strbuf_add
      Src: /src/git/builtin/submodule--helper.c:1782,1
    - Dst: repo_init
      Src: /src/git/builtin/submodule--helper.c:1784,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1785,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1785,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:1794,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/builtin/submodule--helper.c:1795,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/submodule--helper.c:1796,1
    - Dst: repo_clear
      Src: /src/git/builtin/submodule--helper.c:1797,1
    - Dst: compute_alternate_path
      Src: /src/git/builtin/submodule--helper.c:1799,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/submodule--helper.c:1801,1
    - Dst: string_list_append
      Src: /src/git/builtin/submodule--helper.c:1803,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1804,1
    - Dst: advice_enabled
      Src: /src/git/builtin/submodule--helper.c:1808,1
    - Dst: advise
      Src: /src/git/builtin/submodule--helper.c:1809,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1809,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1810,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1810,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/submodule--helper.c:1813,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1813,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1820,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - alt_odb
    - sas_cb
    argTypes:
    - struct odb_source*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1767
    functionDepth: 23
    functionLinenumber: 1767
    functionLinenumberEnd: 1825
    functionName: add_possible_reference_from_superproject
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - submodule_name_to_gitdir
    - strbuf_release
    - die
    - fprintf_ln
    - strbuf_reset
    - strip_suffix
    - strbuf_addch
    - repo_clear
    - repo_init
    - compute_alternate_path
    - strbuf_detach
    - string_list_append
    - _
    - free
    - advise
    - advice_enabled
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int add_possible_reference_from_superproject(\n\t\tstruct odb_source
      *alt_odb, void *sas_cb)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_get_string
      Src: /src/git/builtin/submodule--helper.c:1833,1
    - Dst: repo_config_get_string
      Src: /src/git/builtin/submodule--helper.c:1837,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:1840,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:1844,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:1846,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:1848,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1851,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1851,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:1853,1
    - Dst: odb_for_each_alternate
      Src: /src/git/builtin/submodule--helper.c:1854,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:1856,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1859,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1859,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1861,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1862,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - sm_name
    - reference
    argTypes:
    - char*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1827
    functionDepth: 19
    functionLinenumber: 1827
    functionLinenumberEnd: 1863
    functionName: prepare_possible_alternates
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - die
    - repo_config_get_string
    - strcmp
    - free
    - odb_for_each_alternate
    - _
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void prepare_possible_alternates(const char *sm_name,\n\t\tstruct
      string_list *reference)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: submodule_name_to_gitdir
      Src: /src/git/builtin/submodule--helper.c:1870,1
    - Dst: absolute_pathdup
      Src: /src/git/builtin/submodule--helper.c:1871,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:1872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1865
    functionDepth: 23
    functionLinenumber: 1865
    functionLinenumberEnd: 1875
    functionName: clone_submodule_sm_gitdir
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - submodule_name_to_gitdir
    - strbuf_release
    - absolute_pathdup
    linkageType: ''
    returnType: char
    signature: char *clone_submodule_sm_gitdir(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/git/builtin/submodule--helper.c:1879,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/builtin/submodule--helper.c:1886,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:1889,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/builtin/submodule--helper.c:1890,1
    - Dst: error
      Src: /src/git/builtin/submodule--helper.c:1891,1
    - Dst: closedir
      Src: /src/git/builtin/submodule--helper.c:1895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1877
    functionDepth: 2
    functionLinenumber: 1877
    functionLinenumberEnd: 1897
    functionName: dir_contains_only_dotgit
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - error
    - opendir
    - readdir_skip_dot_and_dotdot
    - strcmp
    - closedir
    linkageType: ''
    returnType: int
    signature: int dir_contains_only_dotgit(const char *path)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: clone_submodule_sm_gitdir
      Src: /src/git/builtin/submodule--helper.c:1903,1
    - Dst: validate_submodule_path
      Src: /src/git/builtin/submodule--helper.c:1910,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1911,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/submodule--helper.c:1913,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:1914,1
    - Dst: repo_get_work_tree
      Src: /src/git/builtin/submodule--helper.c:1914,1
    - Dst: file_exists
      Src: /src/git/builtin/submodule--helper.c:1917,1
    - Dst: stat
      Src: /src/git/builtin/submodule--helper.c:1918,1
    - Dst: is_empty_dir
      Src: /src/git/builtin/submodule--helper.c:1919,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1920,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1920,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/submodule--helper.c:1922,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1923,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1923,1
    - Dst: prepare_possible_alternates
      Src: /src/git/builtin/submodule--helper.c:1925,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1927,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1928,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1930,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1932,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:1934,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/submodule--helper.c:1938,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:1939,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:1943,1
    - Dst: ref_storage_format_to_name
      Src: /src/git/builtin/submodule--helper.c:1944,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1946,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:1948,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:1950,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/builtin/submodule--helper.c:1951,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1954,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1958,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1959,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:1960,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:1963,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:1966,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1967,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1967,1
    - Dst: stat
      Src: /src/git/builtin/submodule--helper.c:1970,1
    - Dst: dir_contains_only_dotgit
      Src: /src/git/builtin/submodule--helper.c:1971,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:1972,1
    - Dst: unlink
      Src: /src/git/builtin/submodule--helper.c:1973,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1974,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1975,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1975,1
    - Dst: stat
      Src: /src/git/builtin/submodule--helper.c:1980,1
    - Dst: is_empty_dir
      Src: /src/git/builtin/submodule--helper.c:1981,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1982,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1982,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/submodule--helper.c:1983,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:1984,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:1984,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:1985,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/submodule--helper.c:1986,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:1987,1
    - Dst: validate_submodule_git_dir
      Src: /src/git/builtin/submodule--helper.c:1999,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:2000,1
    - Dst: unlink
      Src: /src/git/builtin/submodule--helper.c:2001,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2002,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:2003,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2003,1
    - Dst: connect_work_tree_and_git_dir
      Src: /src/git/builtin/submodule--helper.c:2008,1
    - Dst: repo_submodule_path
      Src: /src/git/builtin/submodule--helper.c:2010,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:2012,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2012,1
    - Dst: repo_config_get_string
      Src: /src/git/builtin/submodule--helper.c:2015,1
    - Dst: repo_config_set_in_file
      Src: /src/git/builtin/submodule--helper.c:2017,1
    - Dst: repo_config_get_string
      Src: /src/git/builtin/submodule--helper.c:2019,1
    - Dst: repo_config_set_in_file
      Src: /src/git/builtin/submodule--helper.c:2021,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2024,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2025,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2027,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2028,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2029,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 76
    argCount: 2
    argNames:
    - clone_data
    - reference
    argTypes:
    - struct module_clone_data*
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 1899
    functionDepth: 24
    functionLinenumber: 1899
    functionLinenumberEnd: 2031
    functionName: clone_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - for_each_string_list_item
    - is_empty_dir
    - validate_submodule_path
    - free
    - file_exists
    - repo_submodule_path
    - die
    - clone_submodule_sm_gitdir
    - dir_contains_only_dotgit
    - ref_storage_format_to_name
    - expand_list_objects_filter_spec
    - unlink
    - prepare_submodule_repo_env
    - is_absolute_path
    - unlink_or_warn
    - repo_get_work_tree
    - repo_config_set_in_file
    - stat
    - strvec_pushl
    - safe_create_leading_directories_const
    - prepare_possible_alternates
    - _
    - validate_submodule_git_dir
    - strvec_pushf
    - run_command
    - connect_work_tree_and_git_dir
    - xstrfmt
    - repo_config_get_string
    linkageType: ''
    returnType: int
    signature: "int clone_submodule(const struct module_clone_data *clone_data,\n\t\t\t
      \  struct string_list *reference)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:2044,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2045,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2046,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:2047,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2048,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2049,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:2050,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2051,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2052,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:2053,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2054,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2055,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/submodule--helper.c:2056,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2057,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2058,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:2059,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2059,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2060,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:2061,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2062,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/submodule--helper.c:2063,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2064,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/submodule--helper.c:2065,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:2066,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2067,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:2068,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2069,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:2070,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2071,1
    - Dst: OPT_PARSE_LIST_OBJECTS_FILTER
      Src: /src/git/builtin/submodule--helper.c:2072,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:2073,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2076,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:2083,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/builtin/submodule--helper.c:2087,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:2089,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2089,1
    - Dst: usage_with_options
      Src: /src/git/builtin/submodule--helper.c:2098,1
    - Dst: clone_submodule
      Src: /src/git/builtin/submodule--helper.c:2101,1
    - Dst: list_objects_filter_release
      Src: /src/git/builtin/submodule--helper.c:2102,1
    - Dst: string_list_clear
      Src: /src/git/builtin/submodule--helper.c:2103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2033
    functionDepth: 25
    functionLinenumber: 2033
    functionLinenumberEnd: 2105
    functionName: module_clone
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - OPT_PARSE_LIST_OBJECTS_FILTER
    - parse_options
    - OPT_END
    - die
    - clone_submodule
    - string_list_clear
    - usage_with_options
    - OPT_BOOL
    - OPT_STRING
    - OPT__QUIET
    - ref_storage_format_by_name
    - _
    - N_
    - list_objects_filter_release
    - OPT_STRING_LIST
    - OPT_INTEGER
    linkageType: ''
    returnType: int
    signature: "int module_clone(int argc, const char **argv, const char *prefix,\n\t\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:2113,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:2113,1
    - Dst: BUG
      Src: /src/git/builtin/submodule--helper.c:2123,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:2125,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/submodule--helper.c:2129,1
    - Dst: parse_submodule_update_strategy
      Src: /src/git/builtin/submodule--helper.c:2130,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2131,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2131,1
    - Dst: BUG
      Src: /src/git/builtin/submodule--helper.c:2137,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - r
    - just_cloned
    - path
    - update
    - out
    argTypes:
    - struct repository*
    - int
    - char*
    - enum submodule_update_type
    - struct submodule_update_strategy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2107
    functionDepth: 19
    functionLinenumber: 2107
    functionLinenumberEnd: 2153
    functionName: determine_submodule_update_strategy
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - repo_config_get_string_tmp
    - xstrfmt
    - null_oid
    - parse_submodule_update_strategy
    - _
    - free
    - die_message
    - BUG
    linkageType: ''
    returnType: int
    signature: "int determine_submodule_update_strategy(struct repository *r,\n\t\t\t\t\t
      \      int just_cloned,\n\t\t\t\t\t       const char *path,\n\t\t\t\t\t       enum
      submodule_update_type update,\n\t\t\t\t\t       struct submodule_update_strategy
      *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2183,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - suc
    argTypes:
    - struct submodule_update_clone*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2181
    functionDepth: 1
    functionLinenumber: 2181
    functionLinenumberEnd: 2185
    functionName: submodule_update_clone_release
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void submodule_update_clone_release(struct submodule_update_clone *suc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2230,1
    - Dst: submodule_update_strategy_release
      Src: /src/git/builtin/submodule--helper.c:2231,1
    - Dst: module_list_release
      Src: /src/git/builtin/submodule--helper.c:2232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ud
    argTypes:
    - struct update_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2228
    functionDepth: 2
    functionLinenumber: 2228
    functionLinenumberEnd: 2233
    functionName: update_data_release
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - module_list_release
    - submodule_update_strategy_release
    - free
    linkageType: ''
    returnType: void
    signature: void update_data_release(struct update_data *ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:2243,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2244,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/submodule--helper.c:2246,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/submodule--helper.c:2247,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2248,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/submodule--helper.c:2249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - suc
    - out
    - displaypath
    argTypes:
    - struct submodule_update_clone*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2235
    functionDepth: 4
    functionLinenumber: 2235
    functionLinenumberEnd: 2251
    functionName: next_submodule_warn_missing
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strbuf_addch
    - strbuf_addf
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: void
    signature: "void next_submodule_warn_missing(struct submodule_update_clone *suc,\n\t\tstruct
      strbuf *out, const char *displaypath)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: get_submodule_displaypath
      Src: /src/git/builtin/submodule--helper.c:2268,1
    - Dst: ce_stage
      Src: /src/git/builtin/submodule--helper.c:2274,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:2275,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2275,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/submodule--helper.c:2276,1
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:2280,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:2280,1
    - Dst: next_submodule_warn_missing
      Src: /src/git/builtin/submodule--helper.c:2283,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:2287,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/submodule--helper.c:2288,1
    - Dst: parse_submodule_update_type
      Src: /src/git/builtin/submodule--helper.c:2289,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2293,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:2298,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2298,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/submodule--helper.c:2299,1
    - Dst: is_submodule_active
      Src: /src/git/builtin/submodule--helper.c:2304,1
    - Dst: next_submodule_warn_missing
      Src: /src/git/builtin/submodule--helper.c:2305,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:2309,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:2310,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/submodule--helper.c:2311,1
    - Dst: starts_with_dot_slash
      Src: /src/git/builtin/submodule--helper.c:2312,1
    - Dst: starts_with_dot_dot_slash
      Src: /src/git/builtin/submodule--helper.c:2313,1
    - Dst: resolve_relative_url
      Src: /src/git/builtin/submodule--helper.c:2314,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:2321,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2321,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:2323,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:2324,1
    - Dst: file_exists
      Src: /src/git/builtin/submodule--helper.c:2325,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/submodule--helper.c:2327,1
    - Dst: oidcpy
      Src: /src/git/builtin/submodule--helper.c:2329,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2341,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2342,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2344,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2346,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:2348,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2350,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:2352,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:2354,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/builtin/submodule--helper.c:2355,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2357,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:2359,1
    - Dst: ref_storage_format_to_name
      Src: /src/git/builtin/submodule--helper.c:2360,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:2361,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:2362,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:2363,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/submodule--helper.c:2367,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:2368,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2371,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2373,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2378,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:2379,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2381,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 93
    argCount: 4
    argNames:
    - ce
    - child
    - suc
    - out
    argTypes:
    - struct cache_entry*
    - struct child_process*
    - struct submodule_update_clone*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2257
    functionDepth: 21
    functionLinenumber: 2257
    functionLinenumberEnd: 2384
    functionName: prepare_to_clone_next_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - get_submodule_displaypath
    - starts_with_dot_slash
    - strvec_push
    - for_each_string_list_item
    - oidcpy
    - strbuf_addf
    - next_submodule_warn_missing
    - free
    - resolve_relative_url
    - file_exists
    - submodule_from_path
    - strbuf_release
    - repo_config_get_string_tmp
    - die
    - ref_storage_format_to_name
    - expand_list_objects_filter_spec
    - is_submodule_active
    - strvec_pushl
    - starts_with_dot_dot_slash
    - _
    - ce_stage
    - strvec_pushf
    - parse_submodule_update_type
    - strbuf_reset
    - xstrfmt
    - strbuf_addch
    - ALLOC_GROW
    - null_oid
    linkageType: ''
    returnType: int
    signature: "int prepare_to_clone_next_submodule(const struct cache_entry *ce,\n\t\t\t\t\t
      \  struct child_process *child,\n\t\t\t\t\t   struct submodule_update_clone
      *suc,\n\t\t\t\t\t   struct strbuf *out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prepare_to_clone_next_submodule
      Src: /src/git/builtin/submodule--helper.c:2397,1
    - Dst: xmalloc
      Src: /src/git/builtin/submodule--helper.c:2398,1
    - Dst: prepare_to_clone_next_submodule
      Src: /src/git/builtin/submodule--helper.c:2417,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/submodule--helper.c:2419,1
    - Dst: xmalloc
      Src: /src/git/builtin/submodule--helper.c:2424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - child
    - err
    - suc_cb
    - idx_task_cb
    argTypes:
    - struct child_process*
    - struct strbuf*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2386
    functionDepth: 22
    functionLinenumber: 2386
    functionLinenumberEnd: 2432
    functionName: update_clone_get_next_task
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - prepare_to_clone_next_submodule
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int update_clone_get_next_task(struct child_process *child,\n\t\t\t\t
      \     struct strbuf *err,\n\t\t\t\t      void *suc_cb,\n\t\t\t\t      void **idx_task_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - UNUSED
    - suc_cb
    - idx_task_cb
    argTypes:
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2434
    functionDepth: 0
    functionLinenumber: 2434
    functionLinenumberEnd: 2442
    functionName: update_clone_start_failure
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int update_clone_start_failure(struct strbuf *err UNUSED,\n\t\t\t\t
      \     void *suc_cb,\n\t\t\t\t      void *idx_task_cb UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2454,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:2461,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2461,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/submodule--helper.c:2463,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/submodule--helper.c:2464,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:2472,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2472,1
    - Dst: strbuf_addch
      Src: /src/git/builtin/submodule--helper.c:2474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - result
    - err
    - suc_cb
    - idx_task_cb
    argTypes:
    - int
    - struct strbuf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2444
    functionDepth: 3
    functionLinenumber: 2444
    functionLinenumberEnd: 2480
    functionName: update_clone_task_finished
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - strbuf_addch
    - ALLOC_GROW
    - _
    - free
    linkageType: ''
    returnType: int
    signature: "int update_clone_task_finished(int result,\n\t\t\t\t      struct strbuf
      *err,\n\t\t\t\t      void *suc_cb,\n\t\t\t\t      void *idx_task_cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:2488,1
    - Dst: parse_submodule_fetchjobs
      Src: /src/git/builtin/submodule--helper.c:2489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2482
    functionDepth: 2
    functionLinenumber: 2482
    functionLinenumberEnd: 2491
    functionName: git_update_clone_config
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - parse_submodule_fetchjobs
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_update_clone_config(const char *var, const char *value,\n\t\t\t\t
      \  const struct config_context *ctx,\n\t\t\t\t   void *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:2497,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:2503,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:2505,1
    - Dst: capture_command
      Src: /src/git/builtin/submodule--helper.c:2507,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:2512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - path
    - oid
    argTypes:
    - char*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2493
    functionDepth: 4
    functionLinenumber: 2493
    functionLinenumberEnd: 2514
    functionName: is_tip_reachable
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - prepare_submodule_repo_env
    - oid_to_hex
    - strbuf_release
    - strvec_pushl
    - capture_command
    linkageType: ''
    returnType: int
    signature: int is_tip_reachable(const char *path, const struct object_id *oid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:2521,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2525,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2527,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:2529,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:2531,1
    - Dst: get_default_remote_submodule
      Src: /src/git/builtin/submodule--helper.c:2535,1
    - Dst: child_process_clear
      Src: /src/git/builtin/submodule--helper.c:2537,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:2541,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2542,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:2545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - module_path
    - depth
    - quiet
    - oid
    argTypes:
    - char*
    - int
    - int
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2516
    functionDepth: 21
    functionLinenumber: 2516
    functionLinenumberEnd: 2546
    functionName: fetch_in_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - get_default_remote_submodule
    - strvec_push
    - prepare_submodule_repo_env
    - oid_to_hex
    - run_command
    - child_process_clear
    - strvec_pushl
    - free
    - strvec_pushf
    linkageType: ''
    returnType: int
    signature: "int fetch_in_submodule(const char *module_path, int depth, int quiet,\n\t\t\t
      \     const struct object_id *oid)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:2551,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:2557,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2559,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2563,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2565,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2569,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2571,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2575,1
    - Dst: BUG
      Src: /src/git/builtin/submodule--helper.c:2578,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2581,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:2584,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:2585,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2588,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2588,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2593,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2593,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2597,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2597,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2601,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2601,1
    - Dst: BUG
      Src: /src/git/builtin/submodule--helper.c:2605,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:2617,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2617,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:2621,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2621,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:2625,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2625,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:2629,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2629,1
    - Dst: BUG
      Src: /src/git/builtin/submodule--helper.c:2633,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 2
    argNames:
    - ud
    - subforce
    argTypes:
    - struct update_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2548
    functionDepth: 8
    functionLinenumber: 2548
    functionLinenumberEnd: 2638
    functionName: run_update_command
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - prepare_submodule_repo_env
    - oid_to_hex
    - run_command
    - strvec_pushl
    - _
    - die_message
    - BUG
    - printf
    linkageType: ''
    returnType: int
    signature: int run_update_command(const struct update_data *ud, int subforce)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/submodule--helper.c:2642,1
    - Dst: is_tip_reachable
      Src: /src/git/builtin/submodule--helper.c:2649,1
    - Dst: fetch_in_submodule
      Src: /src/git/builtin/submodule--helper.c:2650,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/submodule--helper.c:2652,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2653,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:2655,1
    - Dst: is_tip_reachable
      Src: /src/git/builtin/submodule--helper.c:2660,1
    - Dst: fetch_in_submodule
      Src: /src/git/builtin/submodule--helper.c:2661,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2662,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2662,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/submodule--helper.c:2664,1
    - Dst: run_update_command
      Src: /src/git/builtin/submodule--helper.c:2667,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - ud
    argTypes:
    - struct update_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2640
    functionDepth: 22
    functionLinenumber: 2640
    functionLinenumberEnd: 2668
    functionName: run_update_procedure
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - is_tip_reachable
    - oid_to_hex
    - fprintf_ln
    - fetch_in_submodule
    - is_null_oid
    - _
    - die_message
    - run_update_command
    linkageType: ''
    returnType: int
    signature: int run_update_procedure(const struct update_data *ud)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:2676,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:2676,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2678,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2678,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:2681,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/submodule--helper.c:2682,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2684,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:2691,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/submodule--helper.c:2692,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/submodule--helper.c:2692,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2697,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2697,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:2700,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2701,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2701,1
    - Dst: skip_prefix
      Src: /src/git/builtin/submodule--helper.c:2705,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2706,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2706,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - path
    - branch
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2670
    functionDepth: 19
    functionLinenumber: 2670
    functionLinenumberEnd: 2715
    functionName: remote_submodule_branch
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - repo_config_get_string_tmp
    - refs_resolve_ref_unsafe
    - xstrfmt
    - strcmp
    - _
    - free
    - die_message
    - skip_prefix
    - null_oid
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int remote_submodule_branch(const char *path, const char **branch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_submodule_init
      Src: /src/git/builtin/submodule--helper.c:2722,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:2722,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2723,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2723,1
    - Dst: repo_config_get_string_tmp
      Src: /src/git/builtin/submodule--helper.c:2726,1
    - Dst: repo_git_path
      Src: /src/git/builtin/submodule--helper.c:2731,1
    - Dst: absolute_pathdup
      Src: /src/git/builtin/submodule--helper.c:2733,1
    - Dst: relative_path
      Src: /src/git/builtin/submodule--helper.c:2734,1
    - Dst: repo_config_set_in_file
      Src: /src/git/builtin/submodule--helper.c:2736,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2738,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2739,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:2740,1
    - Dst: repo_clear
      Src: /src/git/builtin/submodule--helper.c:2743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2717
    functionDepth: 19
    functionLinenumber: 2717
    functionLinenumberEnd: 2745
    functionName: ensure_core_worktree
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - repo_git_path
    - repo_config_get_string_tmp
    - strbuf_release
    - relative_path
    - repo_submodule_init
    - repo_config_set_in_file
    - repo_clear
    - _
    - free
    - die_message
    - absolute_pathdup
    - null_oid
    linkageType: ''
    returnType: int
    signature: int ensure_core_worktree(const char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/builtin/submodule--helper.c:2761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum submodule_update_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2747
    functionDepth: 1
    functionLinenumber: 2747
    functionLinenumberEnd: 2762
    functionName: submodule_update_type_to_label
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *submodule_update_type_to_label(enum submodule_update_type type)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:2769,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:2771,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:2773,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2775,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2777,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2779,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2781,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2783,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2785,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2787,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2789,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:2791,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:2793,1
    - Dst: submodule_update_type_to_label
      Src: /src/git/builtin/submodule--helper.c:2794,1
    - Dst: for_each_string_list_item
      Src: /src/git/builtin/submodule--helper.c:2799,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:2800,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:2803,1
    - Dst: ref_storage_format_to_name
      Src: /src/git/builtin/submodule--helper.c:2804,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:2806,1
    - Dst: expand_list_objects_filter_spec
      Src: /src/git/builtin/submodule--helper.c:2807,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2810,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2812,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:2814,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 2
    argNames:
    - update_data
    - args
    argTypes:
    - struct update_data*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2764
    functionDepth: 4
    functionLinenumber: 2764
    functionLinenumberEnd: 2817
    functionName: update_data_to_args
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - for_each_string_list_item
    - strvec_pushl
    - ref_storage_format_to_name
    - submodule_update_type_to_label
    - strvec_pushf
    - expand_list_objects_filter_spec
    linkageType: ''
    returnType: void
    signature: "void update_data_to_args(const struct update_data *update_data,\n\t\t\t\tstruct
      strvec *args)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: validate_submodule_path
      Src: /src/git/builtin/submodule--helper.c:2823,1
    - Dst: determine_submodule_update_strategy
      Src: /src/git/builtin/submodule--helper.c:2826,1
    - Dst: oidcpy
      Src: /src/git/builtin/submodule--helper.c:2835,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:2835,1
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/builtin/submodule--helper.c:2836,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2838,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2838,1
    - Dst: get_default_remote_submodule
      Src: /src/git/builtin/submodule--helper.c:2847,1
    - Dst: remote_submodule_branch
      Src: /src/git/builtin/submodule--helper.c:2850,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2852,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:2855,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2857,1
    - Dst: fetch_in_submodule
      Src: /src/git/builtin/submodule--helper.c:2860,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2862,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2863,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2863,1
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/builtin/submodule--helper.c:2868,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2870,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2870,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2872,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:2876,1
    - Dst: oideq
      Src: /src/git/builtin/submodule--helper.c:2879,1
    - Dst: run_update_procedure
      Src: /src/git/builtin/submodule--helper.c:2880,1
    - Dst: oidcpy
      Src: /src/git/builtin/submodule--helper.c:2890,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:2890,1
    - Dst: oidcpy
      Src: /src/git/builtin/submodule--helper.c:2891,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:2891,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:2895,1
    - Dst: update_data_to_args
      Src: /src/git/builtin/submodule--helper.c:2896,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:2898,1
    - Dst: die_message
      Src: /src/git/builtin/submodule--helper.c:2900,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:2900,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 1
    argNames:
    - update_data
    argTypes:
    - struct update_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2819
    functionDepth: 23
    functionLinenumber: 2819
    functionLinenumberEnd: 2906
    functionName: update_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - get_default_remote_submodule
    - prepare_submodule_repo_env
    - determine_submodule_update_strategy
    - remote_submodule_branch
    - oidcpy
    - fetch_in_submodule
    - run_update_procedure
    - xstrfmt
    - run_command
    - update_data_to_args
    - validate_submodule_path
    - repo_resolve_gitlink_ref
    - _
    - free
    - die_message
    - null_oid
    - oideq
    linkageType: ''
    returnType: int
    signature: int update_submodule(struct update_data *update_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: run_processes_parallel
      Src: /src/git/builtin/submodule--helper.c:2925,1
    - Dst: oidcpy
      Src: /src/git/builtin/submodule--helper.c:2944,1
    - Dst: validate_submodule_path
      Src: /src/git/builtin/submodule--helper.c:2954,1
    - Dst: ensure_core_worktree
      Src: /src/git/builtin/submodule--helper.c:2957,1
    - Dst: get_submodule_displaypath
      Src: /src/git/builtin/submodule--helper.c:2961,1
    - Dst: update_submodule
      Src: /src/git/builtin/submodule--helper.c:2964,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/submodule--helper.c:2965,1
    - Dst: submodule_update_clone_release
      Src: /src/git/builtin/submodule--helper.c:2975,1
    - Dst: string_list_clear
      Src: /src/git/builtin/submodule--helper.c:2976,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - update_data
    argTypes:
    - struct update_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2908
    functionDepth: 24
    functionLinenumber: 2908
    functionLinenumberEnd: 2978
    functionName: update_submodules
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 4
    functionsReached:
    - get_submodule_displaypath
    - string_list_clear
    - oidcpy
    - run_processes_parallel
    - validate_submodule_path
    - ensure_core_worktree
    - update_submodule
    - FREE_AND_NULL
    - submodule_update_clone_release
    linkageType: ''
    returnType: int
    signature: int update_submodules(struct update_data *update_data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OPT__SUPER_PREFIX
      Src: /src/git/builtin/submodule--helper.c:2991,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/submodule--helper.c:2992,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2992,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:2993,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2994,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:2995,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2996,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:2997,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:2998,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:2999,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3000,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/submodule--helper.c:3001,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3002,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/submodule--helper.c:3004,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3005,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/submodule--helper.c:3007,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3008,1
    - Dst: OPT_STRING_LIST
      Src: /src/git/builtin/submodule--helper.c:3010,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3010,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3011,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:3012,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3012,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3013,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:3014,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3015,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/submodule--helper.c:3016,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3017,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/submodule--helper.c:3019,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3020,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:3021,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3022,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/submodule--helper.c:3023,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3023,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:3024,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3025,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:3026,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3027,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:3028,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3029,1
    - Dst: OPT_PARSE_LIST_OBJECTS_FILTER
      Src: /src/git/builtin/submodule--helper.c:3030,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:3031,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3034,1
    - Dst: update_clone_config_from_gitmodules
      Src: /src/git/builtin/submodule--helper.c:3043,1
    - Dst: repo_config
      Src: /src/git/builtin/submodule--helper.c:3044,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:3046,1
    - Dst: usage_with_options
      Src: /src/git/builtin/submodule--helper.c:3053,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/builtin/submodule--helper.c:3058,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3060,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3060,1
    - Dst: module_list_compute
      Src: /src/git/builtin/submodule--helper.c:3069,1
    - Dst: module_list_compute
      Src: /src/git/builtin/submodule--helper.c:3081,1
    - Dst: module_list_release
      Src: /src/git/builtin/submodule--helper.c:3083,1
    - Dst: repo_config_get
      Src: /src/git/builtin/submodule--helper.c:3092,1
    - Dst: module_list_active
      Src: /src/git/builtin/submodule--helper.c:3093,1
    - Dst: for_each_listed_submodule
      Src: /src/git/builtin/submodule--helper.c:3100,1
    - Dst: module_list_release
      Src: /src/git/builtin/submodule--helper.c:3101,1
    - Dst: update_submodules
      Src: /src/git/builtin/submodule--helper.c:3104,1
    - Dst: update_data_release
      Src: /src/git/builtin/submodule--helper.c:3106,1
    - Dst: list_objects_filter_release
      Src: /src/git/builtin/submodule--helper.c:3107,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/submodule--helper.c:3108,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/submodule--helper.c:3109,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 2980
    functionDepth: 22
    functionLinenumber: 2980
    functionLinenumberEnd: 3111
    functionName: module_update
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - OPT_PARSE_LIST_OBJECTS_FILTER
    - parse_options
    - module_list_compute
    - OPT_BOOL
    - update_data_release
    - repo_config
    - list_objects_filter_release
    - usage_with_options
    - OPT_END
    - die
    - OPT__FORCE
    - module_list_active
    - ref_storage_format_by_name
    - OPT__SUPER_PREFIX
    - OPT_STRING_LIST
    - OPT__QUIET
    - OPT_INTEGER
    - OPT_SET_INT
    - _
    - N_
    - update_submodules
    - for_each_listed_submodule
    - repo_config_get
    - update_clone_config_from_gitmodules
    - module_list_release
    - clear_pathspec
    - OPT_STRING
    linkageType: ''
    returnType: int
    signature: "int module_update(int argc, const char **argv, const char *prefix,\n\t\t\t
      struct repository *repo UNUSED)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3123,1
    - Dst: refs_resolve_refdup
      Src: /src/git/builtin/submodule--helper.c:3134,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/submodule--helper.c:3134,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3137,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3137,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:3138,1
    - Dst: pushremote_get
      Src: /src/git/builtin/submodule--helper.c:3145,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3147,1
    - Dst: get_local_heads
      Src: /src/git/builtin/submodule--helper.c:3152,1
    - Dst: refspec_appendn
      Src: /src/git/builtin/submodule--helper.c:3155,1
    - Dst: count_refspec_match
      Src: /src/git/builtin/submodule--helper.c:3164,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:3173,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:3175,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3177,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3181,1
    - Dst: refspec_clear
      Src: /src/git/builtin/submodule--helper.c:3186,1
    - Dst: free_refs
      Src: /src/git/builtin/submodule--helper.c:3187,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3189,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3192
      start: 3113
    functionDepth: 15
    functionLinenumber: 3113
    functionLinenumberEnd: 3192
    functionName: push_check
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 1
    functionsReached:
    - refspec_clear
    - die
    - refspec_appendn
    - pushremote_get
    - count_refspec_match
    - free_refs
    - refs_resolve_refdup
    - strcmp
    - free
    - get_local_heads
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: "int push_check(int argc, const char **argv, const char *prefix UNUSED,\n\t\t
      \     struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT__SUPER_PREFIX
      Src: /src/git/builtin/submodule--helper.c:3202,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:3203,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3206,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:3211,1
    - Dst: module_list_compute
      Src: /src/git/builtin/submodule--helper.c:3214,1
    - Dst: absorb_git_dir_into_superproject
      Src: /src/git/builtin/submodule--helper.c:3218,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/submodule--helper.c:3223,1
    - Dst: module_list_release
      Src: /src/git/builtin/submodule--helper.c:3224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3226
      start: 3194
    functionDepth: 16
    functionLinenumber: 3194
    functionLinenumberEnd: 3226
    functionName: absorb_git_dirs
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - clear_pathspec
    - module_list_release
    - module_list_compute
    - absorb_git_dir_into_superproject
    - N_
    - OPT__SUPER_PREFIX
    linkageType: ''
    returnType: int
    signature: "int absorb_git_dirs(int argc, const char **argv, const char *prefix,\n\t\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/submodule--helper.c:3236,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3236,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:3237,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3240,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:3245,1
    - Dst: usage_with_options
      Src: /src/git/builtin/submodule--helper.c:3248,1
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:3250,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:3250,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3253,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3253,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:3256,1
    - Dst: config_set_in_gitmodules_file_gently
      Src: /src/git/builtin/submodule--helper.c:3257,1
    - Dst: repo_read_gitmodules
      Src: /src/git/builtin/submodule--helper.c:3260,1
    - Dst: sync_submodule
      Src: /src/git/builtin/submodule--helper.c:3261,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3266
      start: 3228
    functionDepth: 22
    functionLinenumber: 3228
    functionLinenumberEnd: 3266
    functionName: module_set_url
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - parse_options
    - OPT_END
    - die
    - xstrfmt
    - sync_submodule
    - config_set_in_gitmodules_file_gently
    - free
    - OPT__QUIET
    - _
    - N_
    - null_oid
    - repo_read_gitmodules
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int module_set_url(int argc, const char **argv, const char *prefix,\n\t\t\t
      \ struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_NOOP_NOARG
      Src: /src/git/builtin/submodule--helper.c:3280,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:3282,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3283,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:3284,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3284,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3285,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:3286,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3289,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3290,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:3295,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3298,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3298,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3301,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3301,1
    - Dst: usage_with_options
      Src: /src/git/builtin/submodule--helper.c:3304,1
    - Dst: submodule_from_path
      Src: /src/git/builtin/submodule--helper.c:3306,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:3306,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3309,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3309,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:3312,1
    - Dst: config_set_in_gitmodules_file_gently
      Src: /src/git/builtin/submodule--helper.c:3313,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3317
      start: 3268
    functionDepth: 13
    functionLinenumber: 3268
    functionLinenumberEnd: 3317
    functionName: module_set_branch
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - submodule_from_path
    - parse_options
    - OPT_END
    - die
    - xstrfmt
    - OPT_BOOL
    - OPT_STRING
    - config_set_in_gitmodules_file_gently
    - free
    - OPT_NOOP_NOARG
    - _
    - N_
    - null_oid
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int module_set_branch(int argc, const char **argv, const char *prefix,\n\t\t\t
      \    struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPT__QUIET
      Src: /src/git/builtin/submodule--helper.c:3325,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3325,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/submodule--helper.c:3326,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3326,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:3327,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3328,1
    - Dst: OPT_CALLBACK_F
      Src: /src/git/builtin/submodule--helper.c:3329,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3330,1
    - Dst: OPT__DRY_RUN
      Src: /src/git/builtin/submodule--helper.c:3333,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3334,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:3335,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3338,1
    - Dst: repo_config_values
      Src: /src/git/builtin/submodule--helper.c:3341,1
    - Dst: repo_config
      Src: /src/git/builtin/submodule--helper.c:3343,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:3345,1
    - Dst: usage_with_options
      Src: /src/git/builtin/submodule--helper.c:3348,1
    - Dst: printf_ln
      Src: /src/git/builtin/submodule--helper.c:3351,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3351,1
    - Dst: create_branches_recursively
      Src: /src/git/builtin/submodule--helper.c:3353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3356
      start: 3319
    functionDepth: 21
    functionLinenumber: 3319
    functionLinenumberEnd: 3356
    functionName: module_create_branch
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 1
    functionsReached:
    - parse_options
    - OPT__DRY_RUN
    - OPT_END
    - OPT__FORCE
    - usage_with_options
    - OPT_BOOL
    - OPT_CALLBACK_F
    - create_branches_recursively
    - printf_ln
    - _
    - N_
    - repo_config_values
    - repo_config
    - OPT__QUIET
    linkageType: ''
    returnType: int
    signature: "int module_create_branch(int argc, const char **argv, const char *prefix,\n\t\t\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:3384,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:3386,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:3387,1
    - Dst: capture_command
      Src: /src/git/builtin/submodule--helper.c:3388,1
    - Dst: strchr
      Src: /src/git/builtin/submodule--helper.c:3392,1
    - Dst: strip_suffix_mem
      Src: /src/git/builtin/submodule--helper.c:3395,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:3396,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:3401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - msg
    - git_dir_path
    argTypes:
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3402
      start: 3378
    functionDepth: 4
    functionLinenumber: 3378
    functionLinenumberEnd: 3402
    functionName: append_fetch_remotes
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - strvec_pushl
    - strbuf_addf
    - strchr
    - capture_command
    - strip_suffix_mem
    - strvec_pushf
    linkageType: ''
    returnType: void
    signature: void append_fetch_remotes(struct strbuf *msg, const char *git_dir_path)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_directory
      Src: /src/git/builtin/submodule--helper.c:3411,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/submodule--helper.c:3414,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:3415,1
    - Dst: is_nonbare_repository_dir
      Src: /src/git/builtin/submodule--helper.c:3416,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:3417,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3417,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3420,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3420,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:3422,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3423,1
    - Dst: submodule_name_to_gitdir
      Src: /src/git/builtin/submodule--helper.c:3428,1
    - Dst: is_directory
      Src: /src/git/builtin/submodule--helper.c:3430,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:3435,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3435,1
    - Dst: append_fetch_remotes
      Src: /src/git/builtin/submodule--helper.c:3439,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:3440,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:3442,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3442,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/submodule--helper.c:3451,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3452,1
    - Dst: printf
      Src: /src/git/builtin/submodule--helper.c:3454,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3454,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:3458,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:3467,1
    - Dst: string_list_append
      Src: /src/git/builtin/submodule--helper.c:3469,1
    - Dst: clone_submodule
      Src: /src/git/builtin/submodule--helper.c:3476,1
    - Dst: prepare_submodule_repo_env
      Src: /src/git/builtin/submodule--helper.c:3479,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:3486,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:3489,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/submodule--helper.c:3490,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:3493,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3494,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3494,1
    - Dst: string_list_clear
      Src: /src/git/builtin/submodule--helper.c:3499,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 1
    argNames:
    - add_data
    argTypes:
    - struct add_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3404
    functionDepth: 25
    functionLinenumber: 3404
    functionLinenumberEnd: 3501
    functionName: add_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - append_fetch_remotes
    - is_directory
    - strbuf_addf
    - free
    - printf
    - submodule_name_to_gitdir
    - strbuf_release
    - die
    - strbuf_addstr
    - string_list_clear
    - prepare_submodule_repo_env
    - strvec_pushl
    - strbuf_detach
    - string_list_append
    - _
    - strvec_pushf
    - xstrdup
    - run_command
    - xstrfmt
    - clone_submodule
    - is_nonbare_repository_dir
    linkageType: ''
    returnType: int
    signature: int add_submodule(const struct add_data *add_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_writing_gitmodules_ok
      Src: /src/git/builtin/submodule--helper.c:3508,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3509,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3509,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:3511,1
    - Dst: config_set_in_gitmodules_file_gently
      Src: /src/git/builtin/submodule--helper.c:3512,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - name
    - var
    - value
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3516
      start: 3503
    functionDepth: 5
    functionLinenumber: 3503
    functionLinenumberEnd: 3516
    functionName: config_submodule_in_gitmodules
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - die
    - xstrfmt
    - config_set_in_gitmodules_file_gently
    - is_writing_gitmodules_ok
    - _
    - free
    linkageType: ''
    returnType: int
    signature: int config_submodule_in_gitmodules(const char *name, const char *var,
      const char *value)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:3526,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/submodule--helper.c:3527,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3528,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:3531,1
    - Dst: strvec_push
      Src: /src/git/builtin/submodule--helper.c:3534,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:3535,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:3537,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3538,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3538,1
    - Dst: config_submodule_in_gitmodules
      Src: /src/git/builtin/submodule--helper.c:3540,1
    - Dst: config_submodule_in_gitmodules
      Src: /src/git/builtin/submodule--helper.c:3541,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3542,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3542,1
    - Dst: config_submodule_in_gitmodules
      Src: /src/git/builtin/submodule--helper.c:3545,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3547,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3547,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:3551,1
    - Dst: run_command
      Src: /src/git/builtin/submodule--helper.c:3554,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3555,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3555,1
    - Dst: repo_config_get
      Src: /src/git/builtin/submodule--helper.c:3567,1
    - Dst: repo_config_get_string_multi
      Src: /src/git/builtin/submodule--helper.c:3568,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:3573,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/submodule--helper.c:3574,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3575,1
    - Dst: wildmatch
      Src: /src/git/builtin/submodule--helper.c:3579,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:3585,1
    - Dst: repo_config_set_gently
      Src: /src/git/builtin/submodule--helper.c:3586,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3587,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - add_data
    argTypes:
    - struct add_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3590
      start: 3518
    functionDepth: 19
    functionLinenumber: 3518
    functionLinenumberEnd: 3590
    functionName: configure_added_submodule
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - die
    - wildmatch
    - run_command
    - repo_config_get_string_multi
    - config_submodule_in_gitmodules
    - xstrfmt
    - strvec_pushl
    - free
    - repo_config_set_gently
    - _
    - repo_config_get
    linkageType: ''
    returnType: void
    signature: void configure_added_submodule(struct add_data *add_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_pathspec
      Src: /src/git/builtin/submodule--helper.c:3596,1
    - Dst: repo_read_index_preload
      Src: /src/git/builtin/submodule--helper.c:3598,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3599,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3599,1
    - Dst: xcalloc
      Src: /src/git/builtin/submodule--helper.c:3602,1
    - Dst: ensure_full_index
      Src: /src/git/builtin/submodule--helper.c:3605,1
    - Dst: ce_path_match
      Src: /src/git/builtin/submodule--helper.c:3612,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3617,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3617,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/submodule--helper.c:3619,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3620,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3620,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3625,1
    - Dst: clear_pathspec
      Src: /src/git/builtin/submodule--helper.c:3627,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - path
    - force
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3628
      start: 3592
    functionDepth: 21
    functionLinenumber: 3592
    functionLinenumberEnd: 3628
    functionName: die_on_index_match
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - repo_read_index_preload
    - ensure_full_index
    - clear_pathspec
    - die
    - S_ISGITLINK
    - ce_path_match
    - xcalloc
    - _
    - free
    - parse_pathspec
    linkageType: ''
    returnType: void
    signature: void die_on_index_match(const char *path, int force)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/submodule--helper.c:3633,1
    - Dst: is_nonbare_repository_dir
      Src: /src/git/builtin/submodule--helper.c:3634,1
    - Dst: repo_resolve_gitlink_ref
      Src: /src/git/builtin/submodule--helper.c:3636,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3637,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3637,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:3639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3640
      start: 3630
    functionDepth: 7
    functionLinenumber: 3630
    functionLinenumberEnd: 3640
    functionName: die_on_repo_without_commits
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - die
    - repo_resolve_gitlink_ref
    - strbuf_addstr
    - is_nonbare_repository_dir
    - _
    linkageType: ''
    returnType: void
    signature: void die_on_repo_without_commits(const char *path)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:3653,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3653,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3654,1
    - Dst: OPT__FORCE
      Src: /src/git/builtin/submodule--helper.c:3655,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3655,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/submodule--helper.c:3657,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3657,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:3658,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3658,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:3659,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3659,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3660,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:3661,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3661,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3662,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/submodule--helper.c:3663,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3663,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/submodule--helper.c:3664,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3664,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3665,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/submodule--helper.c:3667,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3667,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:3668,1
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3671,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:3677,1
    - Dst: is_writing_gitmodules_ok
      Src: /src/git/builtin/submodule--helper.c:3679,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3680,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3680,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/submodule--helper.c:3683,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:3684,1
    - Dst: usage_with_options
      Src: /src/git/builtin/submodule--helper.c:3687,1
    - Dst: ref_storage_format_by_name
      Src: /src/git/builtin/submodule--helper.c:3690,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3692,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3692,1
    - Dst: git_url_basename
      Src: /src/git/builtin/submodule--helper.c:3697,1
    - Dst: xstrdup
      Src: /src/git/builtin/submodule--helper.c:3699,1
    - Dst: is_absolute_path
      Src: /src/git/builtin/submodule--helper.c:3701,1
    - Dst: xstrfmt
      Src: /src/git/builtin/submodule--helper.c:3704,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3705,1
    - Dst: starts_with_dot_dot_slash
      Src: /src/git/builtin/submodule--helper.c:3708,1
    - Dst: starts_with_dot_slash
      Src: /src/git/builtin/submodule--helper.c:3709,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3711,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3711,1
    - Dst: resolve_relative_url
      Src: /src/git/builtin/submodule--helper.c:3715,1
    - Dst: is_dir_sep
      Src: /src/git/builtin/submodule--helper.c:3717,1
    - Dst: strchr
      Src: /src/git/builtin/submodule--helper.c:3717,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3720,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3720,1
    - Dst: normalize_path_copy
      Src: /src/git/builtin/submodule--helper.c:3728,1
    - Dst: strip_dir_trailing_slashes
      Src: /src/git/builtin/submodule--helper.c:3729,1
    - Dst: validate_submodule_path
      Src: /src/git/builtin/submodule--helper.c:3731,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3732,1
    - Dst: die_on_index_match
      Src: /src/git/builtin/submodule--helper.c:3734,1
    - Dst: die_on_repo_without_commits
      Src: /src/git/builtin/submodule--helper.c:3735,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/submodule--helper.c:3742,1
    - Dst: pipe_command
      Src: /src/git/builtin/submodule--helper.c:3744,1
    - Dst: strbuf_complete_line
      Src: /src/git/builtin/submodule--helper.c:3745,1
    - Dst: fputs
      Src: /src/git/builtin/submodule--helper.c:3746,1
    - Dst: submodule_from_name
      Src: /src/git/builtin/submodule--helper.c:3754,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:3755,1
    - Dst: strcmp
      Src: /src/git/builtin/submodule--helper.c:3759,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3761,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3761,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/submodule--helper.c:3766,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/submodule--helper.c:3767,1
    - Dst: submodule_from_name
      Src: /src/git/builtin/submodule--helper.c:3768,1
    - Dst: null_oid
      Src: /src/git/builtin/submodule--helper.c:3769,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/submodule--helper.c:3774,1
    - Dst: check_submodule_name
      Src: /src/git/builtin/submodule--helper.c:3777,1
    - Dst: die
      Src: /src/git/builtin/submodule--helper.c:3778,1
    - Dst: _
      Src: /src/git/builtin/submodule--helper.c:3778,1
    - Dst: create_default_gitdir_config
      Src: /src/git/builtin/submodule--helper.c:3787,1
    - Dst: add_submodule
      Src: /src/git/builtin/submodule--helper.c:3789,1
    - Dst: configure_added_submodule
      Src: /src/git/builtin/submodule--helper.c:3791,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3795,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3796,1
    - Dst: free
      Src: /src/git/builtin/submodule--helper.c:3797,1
    - Dst: strbuf_release
      Src: /src/git/builtin/submodule--helper.c:3798,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 86
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3801
      start: 3642
    functionDepth: 26
    functionLinenumber: 3642
    functionLinenumberEnd: 3801
    functionName: module_add
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 1
    functionsReached:
    - starts_with_dot_slash
    - parse_options
    - fputs
    - add_submodule
    - is_dir_sep
    - OPT_BOOL
    - validate_submodule_path
    - strchr
    - strbuf_addf
    - create_default_gitdir_config
    - configure_added_submodule
    - free
    - resolve_relative_url
    - strcmp
    - git_url_basename
    - usage_with_options
    - strbuf_release
    - OPT_END
    - die
    - OPT__FORCE
    - normalize_path_copy
    - strip_dir_trailing_slashes
    - is_writing_gitmodules_ok
    - ref_storage_format_by_name
    - OPT_INTEGER
    - OPT__QUIET
    - is_absolute_path
    - strvec_pushl
    - starts_with_dot_dot_slash
    - pipe_command
    - strbuf_detach
    - _
    - N_
    - submodule_from_name
    - xstrdup
    - strbuf_complete_line
    - strbuf_reset
    - xstrfmt
    - die_on_index_match
    - die_on_repo_without_commits
    - OPT_STRING
    - check_submodule_name
    - null_oid
    linkageType: ''
    returnType: int
    signature: "int module_add(int argc, const char **argv, const char *prefix,\n\t\t
      \     struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/git/builtin/submodule--helper.c:3810,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3814,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3815,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3816,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3817,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3818,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3819,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3820,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3821,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3822,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3823,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3824,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3825,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3826,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3827,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3828,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3829,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/submodule--helper.c:3830,1
    - Dst: OPT_END
      Src: /src/git/builtin/submodule--helper.c:3831,1
    - Dst: parse_options
      Src: /src/git/builtin/submodule--helper.c:3833,1
    - Dst: fn
      Src: /src/git/builtin/submodule--helper.c:3835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3836
      start: 3803
    functionDepth: 13
    functionLinenumber: 3803
    functionLinenumberEnd: 3836
    functionName: cmd_submodule__helper
    functionSourceFile: /src/git/builtin/submodule--helper.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - fn
    - OPT_SUBCOMMAND
    - N_
    linkageType: ''
    returnType: int
    signature: "int cmd_submodule__helper(int argc,\n\t\t\t  const char **argv,\n\t\t\t
      \ const char *prefix,\n\t\t\t  struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_detach
      Src: /src/git/builtin/stripspace.c:16,1
    - Dst: strbuf_add_commented_lines
      Src: /src/git/builtin/stripspace.c:17,1
    - Dst: free
      Src: /src/git/builtin/stripspace.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 11
    functionDepth: 5
    functionLinenumber: 11
    functionLinenumberEnd: 19
    functionName: comment_lines
    functionSourceFile: /src/git/builtin/stripspace.c
    functionUses: 0
    functionsReached:
    - strbuf_add_commented_lines
    - strbuf_detach
    - free
    linkageType: ''
    returnType: void
    signature: void comment_lines(struct strbuf *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/stripspace.c:43,1
    - Dst: N_
      Src: /src/git/builtin/stripspace.c:44,1
    - Dst: OPT_CMDMODE
      Src: /src/git/builtin/stripspace.c:46,1
    - Dst: N_
      Src: /src/git/builtin/stripspace.c:47,1
    - Dst: OPT_END
      Src: /src/git/builtin/stripspace.c:49,1
    - Dst: parse_options
      Src: /src/git/builtin/stripspace.c:52,1
    - Dst: usage_with_options
      Src: /src/git/builtin/stripspace.c:54,1
    - Dst: setup_git_directory_gently
      Src: /src/git/builtin/stripspace.c:57,1
    - Dst: repo_config
      Src: /src/git/builtin/stripspace.c:58,1
    - Dst: strbuf_read
      Src: /src/git/builtin/stripspace.c:61,1
    - Dst: die_errno
      Src: /src/git/builtin/stripspace.c:62,1
    - Dst: strbuf_stripspace
      Src: /src/git/builtin/stripspace.c:65,1
    - Dst: comment_lines
      Src: /src/git/builtin/stripspace.c:68,1
    - Dst: write_or_die
      Src: /src/git/builtin/stripspace.c:70,1
    - Dst: strbuf_release
      Src: /src/git/builtin/stripspace.c:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 33
    functionDepth: 19
    functionLinenumber: 33
    functionLinenumberEnd: 73
    functionName: cmd_stripspace
    functionSourceFile: /src/git/builtin/stripspace.c
    functionUses: 0
    functionsReached:
    - write_or_die
    - parse_options
    - OPT_END
    - strbuf_read
    - strbuf_stripspace
    - strbuf_release
    - die_errno
    - comment_lines
    - setup_git_directory_gently
    - OPT_CMDMODE
    - N_
    - repo_config
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int cmd_stripspace(int argc,\n\t\t   const char **argv,\n\t\t   const
      char *prefix,\n\t\t   struct repository *repo UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_column_config
      Src: /src/git/builtin/column.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - var
    - value
    - UNUSED
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: column_config
    functionSourceFile: /src/git/builtin/column.c
    functionUses: 7
    functionsReached:
    - git_column_config
    linkageType: ''
    returnType: int
    signature: "int column_config(const char *var, const char *value,\n\t\t\t const
      struct config_context *ctx UNUSED, void *cb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/column.c:32,1
    - Dst: N_
      Src: /src/git/builtin/column.c:32,1
    - Dst: N_
      Src: /src/git/builtin/column.c:32,1
    - Dst: OPT_COLUMN
      Src: /src/git/builtin/column.c:33,1
    - Dst: N_
      Src: /src/git/builtin/column.c:33,1
    - Dst: OPT_UNSIGNED
      Src: /src/git/builtin/column.c:34,1
    - Dst: N_
      Src: /src/git/builtin/column.c:34,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/column.c:35,1
    - Dst: N_
      Src: /src/git/builtin/column.c:35,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/column.c:36,1
    - Dst: N_
      Src: /src/git/builtin/column.c:36,1
    - Dst: N_
      Src: /src/git/builtin/column.c:36,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/column.c:37,1
    - Dst: N_
      Src: /src/git/builtin/column.c:37,1
    - Dst: N_
      Src: /src/git/builtin/column.c:37,1
    - Dst: OPT_INTEGER
      Src: /src/git/builtin/column.c:38,1
    - Dst: N_
      Src: /src/git/builtin/column.c:38,1
    - Dst: OPT_END
      Src: /src/git/builtin/column.c:39,1
    - Dst: starts_with
      Src: /src/git/builtin/column.c:43,1
    - Dst: repo_config
      Src: /src/git/builtin/column.c:45,1
    - Dst: repo_config
      Src: /src/git/builtin/column.c:47,1
    - Dst: memset
      Src: /src/git/builtin/column.c:49,1
    - Dst: parse_options
      Src: /src/git/builtin/column.c:51,1
    - Dst: die
      Src: /src/git/builtin/column.c:53,1
    - Dst: _
      Src: /src/git/builtin/column.c:53,1
    - Dst: usage_with_options
      Src: /src/git/builtin/column.c:55,1
    - Dst: strcmp
      Src: /src/git/builtin/column.c:57,1
    - Dst: die
      Src: /src/git/builtin/column.c:58,1
    - Dst: _
      Src: /src/git/builtin/column.c:58,1
    - Dst: finalize_colopts
      Src: /src/git/builtin/column.c:60,1
    - Dst: strbuf_getline
      Src: /src/git/builtin/column.c:61,1
    - Dst: string_list_append
      Src: /src/git/builtin/column.c:62,1
    - Dst: print_columns
      Src: /src/git/builtin/column.c:64,1
    - Dst: strbuf_release
      Src: /src/git/builtin/column.c:65,1
    - Dst: string_list_clear
      Src: /src/git/builtin/column.c:66,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 22
    functionDepth: 19
    functionLinenumber: 22
    functionLinenumberEnd: 68
    functionName: cmd_column
    functionSourceFile: /src/git/builtin/column.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_UNSIGNED
    - strcmp
    - repo_config
    - usage_with_options
    - strbuf_release
    - OPT_END
    - die
    - finalize_colopts
    - OPT_INTEGER
    - string_list_clear
    - memset
    - string_list_append
    - _
    - N_
    - strbuf_getline
    - print_columns
    - OPT_COLUMN
    - OPT_STRING
    - starts_with
    linkageType: ''
    returnType: int
    signature: "int cmd_column(int argc,\n\t       const char **argv,\n\t       const
      char *prefix,\n\t       struct repository *repo UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/builtin/worktree.c:138,1
    - Dst: git_config_bool
      Src: /src/git/builtin/worktree.c:139,1
    - Dst: strcmp
      Src: /src/git/builtin/worktree.c:141,1
    - Dst: git_config_bool
      Src: /src/git/builtin/worktree.c:142,1
    - Dst: git_default_config
      Src: /src/git/builtin/worktree.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - cb
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: git_worktree_config
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - git_default_config
    - git_config_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int git_worktree_config(const char *var, const char *value,\n\t\t\t
      \      const struct config_context *ctx, void *cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_common_path_append
      Src: /src/git/builtin/worktree.c:154,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/worktree.c:155,1
    - Dst: unlink
      Src: /src/git/builtin/worktree.c:157,1
    - Dst: error_errno
      Src: /src/git/builtin/worktree.c:159,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:159,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 8
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: delete_git_dir
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - remove_dir_recursively
    - repo_common_path_append
    - _
    - unlink
    linkageType: ''
    returnType: int
    signature: int delete_git_dir(const char *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/builtin/worktree.c:166,1
    - Dst: rmdir
      Src: /src/git/builtin/worktree.c:167,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 8
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: delete_worktrees_dir_if_empty
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - rmdir
    - repo_git_path
    - free
    linkageType: ''
    returnType: void
    signature: void delete_worktrees_dir_if_empty(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/worktree.c:174,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:174,1
    - Dst: delete_git_dir
      Src: /src/git/builtin/worktree.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - id
    - reason
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 9
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: prune_worktree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 2
    functionsReached:
    - delete_git_dir
    - fprintf_ln
    - _
    linkageType: ''
    returnType: void
    signature: void prune_worktree(const char *id, const char *reason)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fspathcmp
      Src: /src/git/builtin/worktree.c:185,1
    - Dst: strcmp
      Src: /src/git/builtin/worktree.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 199
    functionName: prune_cmp
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - strcmp
    - fspathcmp
    linkageType: ''
    returnType: int
    signature: int prune_cmp(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/builtin/worktree.c:205,1
    - Dst: fspathcmp
      Src: /src/git/builtin/worktree.c:207,1
    - Dst: prune_worktree
      Src: /src/git/builtin/worktree.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 10
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: prune_dups
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - QSORT
    - prune_worktree
    - fspathcmp
    linkageType: ''
    returnType: void
    signature: void prune_dups(struct string_list *l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/builtin/worktree.c:221,1
    - Dst: opendir
      Src: /src/git/builtin/worktree.c:222,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:223,1
    - Dst: readdir_skip_dot_and_dotdot
      Src: /src/git/builtin/worktree.c:226,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/worktree.c:228,1
    - Dst: should_prune_worktree
      Src: /src/git/builtin/worktree.c:229,1
    - Dst: prune_worktree
      Src: /src/git/builtin/worktree.c:230,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/worktree.c:232,1
    - Dst: xstrdup
      Src: /src/git/builtin/worktree.c:232,1
    - Dst: closedir
      Src: /src/git/builtin/worktree.c:234,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/builtin/worktree.c:236,1
    - Dst: repo_get_common_dir
      Src: /src/git/builtin/worktree.c:236,1
    - Dst: strbuf_strip_suffix
      Src: /src/git/builtin/worktree.c:238,1
    - Dst: string_list_append_nodup
      Src: /src/git/builtin/worktree.c:239,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/worktree.c:239,1
    - Dst: prune_dups
      Src: /src/git/builtin/worktree.c:240,1
    - Dst: string_list_clear
      Src: /src/git/builtin/worktree.c:241,1
    - Dst: delete_worktrees_dir_if_empty
      Src: /src/git/builtin/worktree.c:244,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 212
    functionDepth: 11
    functionLinenumber: 212
    functionLinenumberEnd: 246
    functionName: prune_worktrees
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - repo_git_path
    - strbuf_release
    - string_list_append_nodup
    - strbuf_reset
    - strbuf_strip_suffix
    - prune_dups
    - repo_get_common_dir
    - opendir
    - readdir_skip_dot_and_dotdot
    - delete_worktrees_dir_if_empty
    - strbuf_detach
    - free
    - strbuf_add_absolute_path
    - should_prune_worktree
    - closedir
    - prune_worktree
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void prune_worktrees(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT__DRY_RUN
      Src: /src/git/builtin/worktree.c:252,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:252,1
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/worktree.c:253,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:253,1
    - Dst: OPT_EXPIRY_DATE
      Src: /src/git/builtin/worktree.c:254,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:255,1
    - Dst: OPT_END
      Src: /src/git/builtin/worktree.c:256,1
    - Dst: parse_options
      Src: /src/git/builtin/worktree.c:260,1
    - Dst: usage_with_options
      Src: /src/git/builtin/worktree.c:263,1
    - Dst: prune_worktrees
      Src: /src/git/builtin/worktree.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 248
    functionDepth: 13
    functionLinenumber: 248
    functionLinenumberEnd: 266
    functionName: prune
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 1
    functionsReached:
    - parse_options
    - OPT_END
    - OPT__DRY_RUN
    - prune_worktrees
    - usage_with_options
    - N_
    - OPT__VERBOSE
    - OPT_EXPIRY_DATE
    linkageType: ''
    returnType: int
    signature: "int prune(int ac, const char **av, const char *prefix,\n\t\t struct
      repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/git/builtin/worktree.c:276,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/worktree.c:279,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/worktree.c:280,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/worktree.c:281,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/worktree.c:284,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/worktree.c:285,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 273
    functionDepth: 8
    functionLinenumber: 273
    functionLinenumberEnd: 288
    functionName: remove_junk
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - remove_dir_recursively
    - strbuf_addstr
    - getpid
    linkageType: ''
    returnType: void
    signature: void remove_junk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_junk
      Src: /src/git/builtin/worktree.c:292,1
    - Dst: sigchain_pop
      Src: /src/git/builtin/worktree.c:293,1
    - Dst: raise
      Src: /src/git/builtin/worktree.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: remove_junk_on_signal
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - sigchain_pop
    - remove_junk
    - raise
    linkageType: ''
    returnType: void
    signature: void remove_junk_on_signal(int signo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/builtin/worktree.c:302,1
    - Dst: is_dir_sep
      Src: /src/git/builtin/worktree.c:303,1
    - Dst: is_dir_sep
      Src: /src/git/builtin/worktree.c:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - path
    - olen
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 314
    functionName: worktree_basename
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - is_dir_sep
    - strlen
    linkageType: ''
    returnType: char
    signature: char *worktree_basename(const char *path, int *olen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/git/builtin/worktree.c:325,1
    - Dst: is_empty_dir
      Src: /src/git/builtin/worktree.c:325,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:326,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:326,1
    - Dst: find_worktree_by_path
      Src: /src/git/builtin/worktree.c:328,1
    - Dst: worktree_lock_reason
      Src: /src/git/builtin/worktree.c:332,1
    - Dst: delete_git_dir
      Src: /src/git/builtin/worktree.c:334,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:335,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:335,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:340,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:340,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:342,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:342,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - path
    - force
    - worktrees
    - cmd
    argTypes:
    - char*
    - int
    - struct worktree**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 317
    functionDepth: 9
    functionLinenumber: 317
    functionLinenumberEnd: 343
    functionName: check_candidate_path
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - find_worktree_by_path
    - die
    - worktree_lock_reason
    - is_empty_dir
    - _
    - file_exists
    - delete_git_dir
    linkageType: ''
    returnType: void
    signature: "void check_candidate_path(const char *path,\n\t\t\t\t int force,\n\t\t\t\t
      struct worktree **worktrees,\n\t\t\t\t const char *cmd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/builtin/worktree.c:347,1
    - Dst: xstrfmt
      Src: /src/git/builtin/worktree.c:348,1
    - Dst: file_exists
      Src: /src/git/builtin/worktree.c:350,1
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/worktree.c:351,1
    - Dst: copy_file
      Src: /src/git/builtin/worktree.c:352,1
    - Dst: error
      Src: /src/git/builtin/worktree.c:353,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:353,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:357,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - worktree_git_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 345
    functionDepth: 8
    functionLinenumber: 345
    functionLinenumberEnd: 359
    functionName: copy_sparse_checkout
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - error
    - repo_git_path
    - xstrfmt
    - free
    - copy_file
    - _
    - file_exists
    - safe_create_leading_directories
    linkageType: ''
    returnType: void
    signature: void copy_sparse_checkout(const char *worktree_git_dir)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: repo_git_path
      Src: /src/git/builtin/worktree.c:363,1
    - Dst: xstrfmt
      Src: /src/git/builtin/worktree.c:364,1
    - Dst: file_exists
      Src: /src/git/builtin/worktree.c:366,1
    - Dst: safe_create_leading_directories
      Src: /src/git/builtin/worktree.c:370,1
    - Dst: copy_file
      Src: /src/git/builtin/worktree.c:371,1
    - Dst: error
      Src: /src/git/builtin/worktree.c:372,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:372,1
    - Dst: git_configset_init
      Src: /src/git/builtin/worktree.c:377,1
    - Dst: git_configset_add_file
      Src: /src/git/builtin/worktree.c:378,1
    - Dst: git_configset_get_bool
      Src: /src/git/builtin/worktree.c:380,1
    - Dst: repo_config_set_multivar_in_file_gently
      Src: /src/git/builtin/worktree.c:382,1
    - Dst: error
      Src: /src/git/builtin/worktree.c:384,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:384,1
    - Dst: git_configset_get
      Src: /src/git/builtin/worktree.c:386,1
    - Dst: repo_config_set_in_file_gently
      Src: /src/git/builtin/worktree.c:387,1
    - Dst: error
      Src: /src/git/builtin/worktree.c:389,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:389,1
    - Dst: git_configset_clear
      Src: /src/git/builtin/worktree.c:392,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:396,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - worktree_git_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 361
    functionDepth: 12
    functionLinenumber: 361
    functionLinenumberEnd: 398
    functionName: copy_filtered_worktree_config
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - error
    - git_configset_get_bool
    - repo_git_path
    - git_configset_get
    - xstrfmt
    - git_configset_add_file
    - repo_config_set_in_file_gently
    - git_configset_init
    - free
    - git_configset_clear
    - copy_file
    - repo_config_set_multivar_in_file_gently
    - _
    - file_exists
    - safe_create_leading_directories
    linkageType: ''
    returnType: void
    signature: void copy_filtered_worktree_config(const char *worktree_git_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strvec_pushl
      Src: /src/git/builtin/worktree.c:405,1
    - Dst: strvec_push
      Src: /src/git/builtin/worktree.c:407,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/worktree.c:408,1
    - Dst: run_command
      Src: /src/git/builtin/worktree.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - opts
    - child_env
    argTypes:
    - struct add_opts*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 8
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: checkout_worktree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 1
    functionsReached:
    - strvec_push
    - strvec_pushl
    - strvec_pushv
    - run_command
    linkageType: ''
    returnType: int
    signature: "int checkout_worktree(const struct add_opts *opts,\n\t\t\t     struct
      strvec *child_env)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_new_branchname
      Src: /src/git/builtin/worktree.c:418,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/worktree.c:419,1
    - Dst: strvec_push
      Src: /src/git/builtin/worktree.c:421,1
    - Dst: strvec_pushv
      Src: /src/git/builtin/worktree.c:422,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:423,1
    - Dst: run_command
      Src: /src/git/builtin/worktree.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ref
    - opts
    - child_env
    argTypes:
    - char*
    - struct add_opts*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 412
    functionDepth: 10
    functionLinenumber: 412
    functionLinenumberEnd: 426
    functionName: make_worktree_orphan
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - strbuf_release
    - run_command
    - strvec_pushv
    - strvec_pushl
    - validate_new_branchname
    linkageType: ''
    returnType: int
    signature: "int make_worktree_orphan(const char * ref, const struct add_opts *opts,\n\t\t\t\tstruct
      strvec *child_env)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_absolute_path
      Src: /src/git/builtin/worktree.c:445,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:446,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:448,1
    - Dst: safe_create_dir
      Src: /src/git/builtin/worktree.c:449,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:450,1
    - Dst: safe_create_dir
      Src: /src/git/builtin/worktree.c:451,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/worktree.c:452,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:454,1
    - Dst: refs_create_refdir_stubs
      Src: /src/git/builtin/worktree.c:456,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - wt
    - wt_git_path
    argTypes:
    - struct worktree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 436
    functionDepth: 4
    functionLinenumber: 436
    functionLinenumberEnd: 459
    functionName: setup_alternate_ref_dir
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - is_absolute_path
    - strbuf_reset
    - strbuf_addf
    - safe_create_dir
    - refs_create_refdir_stubs
    linkageType: ''
    returnType: void
    signature: void setup_alternate_ref_dir(struct worktree *wt, const char *wt_git_path)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: repo_config_values
      Src: /src/git/builtin/worktree.c:476,1
    - Dst: get_worktrees
      Src: /src/git/builtin/worktree.c:478,1
    - Dst: check_candidate_path
      Src: /src/git/builtin/worktree.c:479,1
    - Dst: free_worktrees
      Src: /src/git/builtin/worktree.c:480,1
    - Dst: check_branch_ref
      Src: /src/git/builtin/worktree.c:484,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/worktree.c:485,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/worktree.c:485,1
    - Dst: die_if_checked_out
      Src: /src/git/builtin/worktree.c:488,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/worktree.c:490,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:492,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:492,1
    - Dst: worktree_basename
      Src: /src/git/builtin/worktree.c:494,1
    - Dst: strbuf_add
      Src: /src/git/builtin/worktree.c:495,1
    - Dst: sanitize_refname_component
      Src: /src/git/builtin/worktree.c:496,1
    - Dst: BUG
      Src: /src/git/builtin/worktree.c:498,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/worktree.c:499,1
    - Dst: repo_git_path_replace
      Src: /src/git/builtin/worktree.c:501,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/worktree.c:503,1
    - Dst: die_errno
      Src: /src/git/builtin/worktree.c:504,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:504,1
    - Dst: mkdir
      Src: /src/git/builtin/worktree.c:507,1
    - Dst: die_errno
      Src: /src/git/builtin/worktree.c:510,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:510,1
    - Dst: strbuf_setlen
      Src: /src/git/builtin/worktree.c:512,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:513,1
    - Dst: strrchr
      Src: /src/git/builtin/worktree.c:515,1
    - Dst: getpid
      Src: /src/git/builtin/worktree.c:517,1
    - Dst: atexit
      Src: /src/git/builtin/worktree.c:518,1
    - Dst: sigchain_push_common
      Src: /src/git/builtin/worktree.c:519,1
    - Dst: xstrdup
      Src: /src/git/builtin/worktree.c:521,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:528,1
    - Dst: write_file
      Src: /src/git/builtin/worktree.c:530,1
    - Dst: write_file
      Src: /src/git/builtin/worktree.c:532,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:532,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:534,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/worktree.c:535,1
    - Dst: die_errno
      Src: /src/git/builtin/worktree.c:536,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:536,1
    - Dst: xstrdup
      Src: /src/git/builtin/worktree.c:538,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/worktree.c:540,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:541,1
    - Dst: write_worktree_linking_files
      Src: /src/git/builtin/worktree.c:542,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/worktree.c:543,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:544,1
    - Dst: write_file
      Src: /src/git/builtin/worktree.c:545,1
    - Dst: get_linked_worktree
      Src: /src/git/builtin/worktree.c:550,1
    - Dst: error
      Src: /src/git/builtin/worktree.c:552,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:552,1
    - Dst: setup_alternate_ref_dir
      Src: /src/git/builtin/worktree.c:555,1
    - Dst: get_worktree_ref_store
      Src: /src/git/builtin/worktree.c:556,1
    - Dst: ref_store_create_on_disk
      Src: /src/git/builtin/worktree.c:558,1
    - Dst: refs_update_ref
      Src: /src/git/builtin/worktree.c:563,1
    - Dst: refs_update_symref
      Src: /src/git/builtin/worktree.c:566,1
    - Dst: copy_sparse_checkout
      Src: /src/git/builtin/worktree.c:575,1
    - Dst: copy_filtered_worktree_config
      Src: /src/git/builtin/worktree.c:583,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/worktree.c:585,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/worktree.c:586,1
    - Dst: make_worktree_orphan
      Src: /src/git/builtin/worktree.c:589,1
    - Dst: checkout_worktree
      Src: /src/git/builtin/worktree.c:593,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/worktree.c:597,1
    - Dst: FREE_AND_NULL
      Src: /src/git/builtin/worktree.c:598,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/worktree.c:602,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:603,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/worktree.c:604,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/worktree.c:614,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/worktree.c:615,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/worktree.c:616,1
    - Dst: null_oid
      Src: /src/git/builtin/worktree.c:616,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/worktree.c:617,1
    - Dst: run_hooks_opt
      Src: /src/git/builtin/worktree.c:622,1
    - Dst: strvec_clear
      Src: /src/git/builtin/worktree.c:625,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:626,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:627,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:628,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:629,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:630,1
    - Dst: free_worktree
      Src: /src/git/builtin/worktree.c:631,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 105
    argCount: 3
    argNames:
    - path
    - refname
    - opts
    argTypes:
    - char*
    - char*
    - struct add_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 461
    functionDepth: 15
    functionLinenumber: 461
    functionLinenumberEnd: 633
    functionName: add_worktree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - sanitize_refname_component
    - sigchain_push_common
    - setup_alternate_ref_dir
    - check_branch_ref
    - write_file
    - refs_update_symref
    - strbuf_addf
    - free_worktree
    - run_hooks_opt
    - worktree_basename
    - get_main_ref_store
    - error
    - get_worktrees
    - get_worktree_ref_store
    - die
    - lookup_commit_reference_by_name
    - strbuf_release
    - strbuf_setlen
    - refs_update_ref
    - get_linked_worktree
    - refs_ref_exists
    - repo_config_values
    - write_worktree_linking_files
    - atexit
    - oid_to_hex
    - unlink_or_warn
    - strvec_pushl
    - die_errno
    - safe_create_leading_directories_const
    - die_if_checked_out
    - mkdir
    - checkout_worktree
    - make_worktree_orphan
    - _
    - FREE_AND_NULL
    - strvec_pushf
    - strbuf_add
    - xstrdup
    - copy_sparse_checkout
    - copy_filtered_worktree_config
    - free_worktrees
    - strrchr
    - strbuf_reset
    - ref_store_create_on_disk
    - strvec_clear
    - check_candidate_path
    - null_oid
    - getpid
    - repo_git_path_replace
    - BUG
    linkageType: ''
    returnType: int
    signature: "int add_worktree(const char *path, const char *refname,\n\t\t\tconst
      struct add_opts *opts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/worktree.c:641,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/worktree.c:643,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:643,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/worktree.c:645,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:645,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/worktree.c:647,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/worktree.c:649,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:649,1
    - Dst: check_branch_ref
      Src: /src/git/builtin/worktree.c:652,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/worktree.c:653,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/worktree.c:653,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/worktree.c:654,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:654,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/worktree.c:657,1
    - Dst: BUG
      Src: /src/git/builtin/worktree.c:659,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/worktree.c:660,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:660,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/worktree.c:661,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:663,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - detach
    - branch
    - new_branch
    - force_new_branch
    argTypes:
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 635
    functionDepth: 5
    functionLinenumber: 635
    functionLinenumberEnd: 665
    functionName: print_preparing_worktree_line
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fprintf_ln
    - lookup_commit_reference_by_name
    - BUG
    - repo_find_unique_abbrev
    - _
    - refs_ref_exists
    - check_branch_ref
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void print_preparing_worktree_line(int detach,\n\t\t\t\t\t  const
      char *branch,\n\t\t\t\t\t  const char *new_branch,\n\t\t\t\t\t  int force_new_branch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: first_valid_ref
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int first_valid_ref(const struct reference *ref UNUSED, void *cb_data
      UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_head_ref
      Src: /src/git/builtin/worktree.c:692,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/worktree.c:692,1
    - Dst: refs_for_each_branch_ref
      Src: /src/git/builtin/worktree.c:694,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/worktree.c:694,1
    - Dst: warning
      Src: /src/git/builtin/worktree.c:696,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct add_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 700
    functionName: can_use_local_refs
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - refs_for_each_branch_ref
    - refs_head_ref
    - _
    - warning
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int can_use_local_refs(const struct add_opts *opts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: refs_for_each_remote_ref
      Src: /src/git/builtin/worktree.c:719,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/worktree.c:719,1
    - Dst: remote_get
      Src: /src/git/builtin/worktree.c:721,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:722,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:722,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct add_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 715
    functionDepth: 15
    functionLinenumber: 715
    functionLinenumberEnd: 726
    functionName: can_use_remote_refs
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - die
    - refs_for_each_remote_ref
    - remote_get
    - _
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int can_use_remote_refs(const struct add_opts *opts)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: can_use_local_refs
      Src: /src/git/builtin/worktree.c:748,1
    - Dst: can_use_remote_refs
      Src: /src/git/builtin/worktree.c:750,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/worktree.c:753,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:757,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:757,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:760,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:760,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - opts
    - opt_track
    - remote
    argTypes:
    - struct add_opts*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 746
    functionDepth: 16
    functionLinenumber: 746
    functionLinenumberEnd: 764
    functionName: dwim_orphan
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - die
    - fprintf_ln
    - _
    - can_use_remote_refs
    - can_use_local_refs
    linkageType: ''
    returnType: int
    signature: int dwim_orphan(const struct add_opts *opts, int opt_track, int remote)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: worktree_basename
      Src: /src/git/builtin/worktree.c:770,1
    - Dst: xstrndup
      Src: /src/git/builtin/worktree.c:771,1
    - Dst: check_branch_ref
      Src: /src/git/builtin/worktree.c:774,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/worktree.c:775,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/worktree.c:775,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:777,1
    - Dst: unique_tracking_name
      Src: /src/git/builtin/worktree.c:784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - path
    - new_branch
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 766
    functionDepth: 20
    functionLinenumber: 766
    functionLinenumberEnd: 788
    functionName: dwim_branch
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - unique_tracking_name
    - xstrndup
    - worktree_basename
    - refs_ref_exists
    - check_branch_ref
    - get_main_ref_store
    linkageType: ''
    returnType: char
    signature: char *dwim_branch(const char *path, char **new_branch)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: OPT__FORCE
      Src: /src/git/builtin/worktree.c:805,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:806,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/worktree.c:808,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:808,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:809,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/worktree.c:810,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:810,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:811,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/worktree.c:812,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:812,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/worktree.c:813,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:813,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/worktree.c:814,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:814,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/worktree.c:815,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:815,1
    - Dst: OPT_STRING
      Src: /src/git/builtin/worktree.c:816,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:816,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:817,1
    - Dst: OPT__QUIET
      Src: /src/git/builtin/worktree.c:818,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:818,1
    - Dst: OPT_PASSTHRU
      Src: /src/git/builtin/worktree.c:819,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:820,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/worktree.c:822,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:823,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/worktree.c:824,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:825,1
    - Dst: OPT_END
      Src: /src/git/builtin/worktree.c:826,1
    - Dst: memset
      Src: /src/git/builtin/worktree.c:830,1
    - Dst: parse_options
      Src: /src/git/builtin/worktree.c:833,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:835,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:835,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:837,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:837,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:840,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:840,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:843,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:843,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:846,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:846,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:849,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:849,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:853,1
    - Dst: usage_with_options
      Src: /src/git/builtin/worktree.c:856,1
    - Dst: prefix_filename
      Src: /src/git/builtin/worktree.c:858,1
    - Dst: strcmp
      Src: /src/git/builtin/worktree.c:862,1
    - Dst: check_branch_ref
      Src: /src/git/builtin/worktree.c:871,1
    - Dst: refs_ref_exists
      Src: /src/git/builtin/worktree.c:872,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/worktree.c:872,1
    - Dst: die_if_checked_out
      Src: /src/git/builtin/worktree.c:873,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:874,1
    - Dst: worktree_basename
      Src: /src/git/builtin/worktree.c:879,1
    - Dst: xstrndup
      Src: /src/git/builtin/worktree.c:880,1
    - Dst: strcmp
      Src: /src/git/builtin/worktree.c:885,1
    - Dst: can_use_local_refs
      Src: /src/git/builtin/worktree.c:886,1
    - Dst: dwim_orphan
      Src: /src/git/builtin/worktree.c:889,1
    - Dst: dwim_branch
      Src: /src/git/builtin/worktree.c:892,1
    - Dst: dwim_orphan
      Src: /src/git/builtin/worktree.c:898,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/worktree.c:904,1
    - Dst: unique_tracking_name
      Src: /src/git/builtin/worktree.c:906,1
    - Dst: strcmp
      Src: /src/git/builtin/worktree.c:913,1
    - Dst: can_use_local_refs
      Src: /src/git/builtin/worktree.c:914,1
    - Dst: lookup_commit_reference_by_name
      Src: /src/git/builtin/worktree.c:918,1
    - Dst: advise_if_enabled
      Src: /src/git/builtin/worktree.c:921,1
    - Dst: advise_if_enabled
      Src: /src/git/builtin/worktree.c:925,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:928,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:928,1
    - Dst: print_preparing_worktree_line
      Src: /src/git/builtin/worktree.c:932,1
    - Dst: strvec_push
      Src: /src/git/builtin/worktree.c:939,1
    - Dst: strvec_push
      Src: /src/git/builtin/worktree.c:941,1
    - Dst: strvec_push
      Src: /src/git/builtin/worktree.c:943,1
    - Dst: strvec_push
      Src: /src/git/builtin/worktree.c:944,1
    - Dst: strvec_push
      Src: /src/git/builtin/worktree.c:945,1
    - Dst: strvec_push
      Src: /src/git/builtin/worktree.c:947,1
    - Dst: run_command
      Src: /src/git/builtin/worktree.c:948,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:952,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:952,1
    - Dst: add_worktree
      Src: /src/git/builtin/worktree.c:955,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:956,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:957,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:958,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:959,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 103
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 790
    functionDepth: 21
    functionLinenumber: 790
    functionLinenumberEnd: 961
    functionName: add
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 404
    functionsReached:
    - strvec_push
    - parse_options
    - dwim_orphan
    - OPT_BOOL
    - advise_if_enabled
    - add_worktree
    - worktree_basename
    - strcmp
    - free
    - usage_with_options
    - get_main_ref_store
    - strbuf_release
    - OPT_END
    - die
    - OPT__FORCE
    - prefix_filename
    - dwim_branch
    - lookup_commit_reference_by_name
    - refs_ref_exists
    - can_use_local_refs
    - OPT_PASSTHRU
    - OPT__QUIET
    - memset
    - die_if_checked_out
    - _
    - N_
    - run_command
    - unique_tracking_name
    - OPT_STRING
    - xstrndup
    - print_preparing_worktree_line
    - check_branch_ref
    linkageType: ''
    returnType: int
    signature: "int add(int ac, const char **av, const char *prefix,\n\t       struct
      repository *repo UNUSED)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/builtin/worktree.c:967,1
    - Dst: printf
      Src: /src/git/builtin/worktree.c:969,1
    - Dst: printf
      Src: /src/git/builtin/worktree.c:971,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/worktree.c:971,1
    - Dst: printf
      Src: /src/git/builtin/worktree.c:973,1
    - Dst: printf
      Src: /src/git/builtin/worktree.c:975,1
    - Dst: worktree_lock_reason
      Src: /src/git/builtin/worktree.c:978,1
    - Dst: fputs
      Src: /src/git/builtin/worktree.c:980,1
    - Dst: fputc
      Src: /src/git/builtin/worktree.c:982,1
    - Dst: write_name_quoted
      Src: /src/git/builtin/worktree.c:983,1
    - Dst: fputc
      Src: /src/git/builtin/worktree.c:985,1
    - Dst: worktree_prune_reason
      Src: /src/git/builtin/worktree.c:989,1
    - Dst: printf
      Src: /src/git/builtin/worktree.c:991,1
    - Dst: fputc
      Src: /src/git/builtin/worktree.c:993,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - wt
    - line_terminator
    argTypes:
    - struct worktree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 963
    functionDepth: 9
    functionLinenumber: 963
    functionLinenumberEnd: 994
    functionName: show_worktree_porcelain
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - worktree_prune_reason
    - oid_to_hex
    - fputs
    - worktree_lock_reason
    - write_name_quoted
    - fputc
    - printf
    linkageType: ''
    returnType: void
    signature: void show_worktree_porcelain(struct worktree *wt, int line_terminator)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:1007,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/worktree.c:1009,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:1011,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/worktree.c:1012,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/worktree.c:1014,1
    - Dst: refs_shorten_unambiguous_ref
      Src: /src/git/builtin/worktree.c:1016,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/worktree.c:1016,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:1019,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:1020,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/worktree.c:1022,1
    - Dst: worktree_lock_reason
      Src: /src/git/builtin/worktree.c:1025,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:1027,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/worktree.c:1029,1
    - Dst: worktree_prune_reason
      Src: /src/git/builtin/worktree.c:1031,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:1033,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/worktree.c:1035,1
    - Dst: printf
      Src: /src/git/builtin/worktree.c:1037,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:1038,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - wt
    - display
    - path_maxwidth
    - abbrev_len
    argTypes:
    - struct worktree*
    - struct worktree_display*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1001
    functionDepth: 9
    functionLinenumber: 1001
    functionLinenumberEnd: 1039
    functionName: show_worktree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - worktree_prune_reason
    - strbuf_release
    - worktree_lock_reason
    - strbuf_addf
    - refs_shorten_unambiguous_ref
    - repo_find_unique_abbrev
    - strbuf_addstr
    - free
    - printf
    - get_main_ref_store
    linkageType: ''
    returnType: void
    signature: "void show_worktree(struct worktree *wt, struct worktree_display *display,\n\t\t\t
      \ int path_maxwidth, int abbrev_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/worktree.c:1050,1
    - Dst: quote_path
      Src: /src/git/builtin/worktree.c:1051,1
    - Dst: utf8_strwidth
      Src: /src/git/builtin/worktree.c:1052,1
    - Dst: strbuf_detach
      Src: /src/git/builtin/worktree.c:1053,1
    - Dst: strlen
      Src: /src/git/builtin/worktree.c:1057,1
    - Dst: repo_find_unique_abbrev
      Src: /src/git/builtin/worktree.c:1057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - wt
    - abbrev
    - d
    - maxwidth
    argTypes:
    - struct worktree**
    - int*
    - struct worktree_display**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1041
    functionDepth: 5
    functionLinenumber: 1041
    functionLinenumberEnd: 1062
    functionName: measure_widths
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - quote_path
    - utf8_strwidth
    - strlen
    - strbuf_detach
    - ALLOC_GROW
    - repo_find_unique_abbrev
    linkageType: ''
    returnType: void
    signature: "void measure_widths(struct worktree **wt, int *abbrev,\n\t\t\t   struct
      worktree_display **d, int *maxwidth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fspathcmp
      Src: /src/git/builtin/worktree.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1069
    functionName: pathcmp
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 24
    functionsReached:
    - fspathcmp
    linkageType: ''
    returnType: int
    signature: int pathcmp(const void *a_, const void *b_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/builtin/worktree.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - wt
    argTypes:
    - struct worktree**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1079
    functionName: pathsort
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - QSORT
    linkageType: ''
    returnType: void
    signature: void pathsort(struct worktree **wt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/worktree.c:1088,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:1088,1
    - Dst: OPT__VERBOSE
      Src: /src/git/builtin/worktree.c:1089,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:1089,1
    - Dst: OPT_EXPIRY_DATE
      Src: /src/git/builtin/worktree.c:1090,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:1091,1
    - Dst: OPT_SET_INT
      Src: /src/git/builtin/worktree.c:1092,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:1093,1
    - Dst: OPT_END
      Src: /src/git/builtin/worktree.c:1094,1
    - Dst: parse_options
      Src: /src/git/builtin/worktree.c:1098,1
    - Dst: usage_with_options
      Src: /src/git/builtin/worktree.c:1100,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1102,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1102,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1104,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1104,1
    - Dst: get_worktrees
      Src: /src/git/builtin/worktree.c:1106,1
    - Dst: pathsort
      Src: /src/git/builtin/worktree.c:1111,1
    - Dst: measure_widths
      Src: /src/git/builtin/worktree.c:1114,1
    - Dst: show_worktree_porcelain
      Src: /src/git/builtin/worktree.c:1119,1
    - Dst: show_worktree
      Src: /src/git/builtin/worktree.c:1122,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:1126,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:1127,1
    - Dst: free_worktrees
      Src: /src/git/builtin/worktree.c:1128,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1081
    functionDepth: 15
    functionLinenumber: 1081
    functionLinenumberEnd: 1131
    functionName: list
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 167
    functionsReached:
    - parse_options
    - OPT_END
    - die
    - get_worktrees
    - show_worktree_porcelain
    - free_worktrees
    - OPT_SET_INT
    - usage_with_options
    - OPT_BOOL
    - measure_widths
    - show_worktree
    - free
    - pathsort
    - _
    - N_
    - OPT__VERBOSE
    - OPT_EXPIRY_DATE
    linkageType: ''
    returnType: int
    signature: "int list(int ac, const char **av, const char *prefix,\n\t\tstruct
      repository *repo UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STRING
      Src: /src/git/builtin/worktree.c:1138,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:1138,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:1139,1
    - Dst: OPT_END
      Src: /src/git/builtin/worktree.c:1140,1
    - Dst: parse_options
      Src: /src/git/builtin/worktree.c:1145,1
    - Dst: usage_with_options
      Src: /src/git/builtin/worktree.c:1147,1
    - Dst: get_worktrees
      Src: /src/git/builtin/worktree.c:1149,1
    - Dst: find_worktree
      Src: /src/git/builtin/worktree.c:1150,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1152,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1152,1
    - Dst: is_main_worktree
      Src: /src/git/builtin/worktree.c:1153,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1154,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1154,1
    - Dst: worktree_lock_reason
      Src: /src/git/builtin/worktree.c:1156,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1159,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1159,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1161,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1161,1
    - Dst: repo_common_path
      Src: /src/git/builtin/worktree.c:1164,1
    - Dst: write_file
      Src: /src/git/builtin/worktree.c:1165,1
    - Dst: free_worktrees
      Src: /src/git/builtin/worktree.c:1167,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:1168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1133
    functionDepth: 15
    functionLinenumber: 1133
    functionLinenumberEnd: 1170
    functionName: lock_worktree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - get_worktrees
    - die
    - is_main_worktree
    - worktree_lock_reason
    - write_file
    - free_worktrees
    - OPT_STRING
    - free
    - repo_common_path
    - _
    - N_
    - find_worktree
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int lock_worktree(int ac, const char **av, const char *prefix,\n\t\t\t
      struct repository *repo UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPT_END
      Src: /src/git/builtin/worktree.c:1176,1
    - Dst: parse_options
      Src: /src/git/builtin/worktree.c:1182,1
    - Dst: usage_with_options
      Src: /src/git/builtin/worktree.c:1184,1
    - Dst: get_worktrees
      Src: /src/git/builtin/worktree.c:1186,1
    - Dst: find_worktree
      Src: /src/git/builtin/worktree.c:1187,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1189,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1189,1
    - Dst: is_main_worktree
      Src: /src/git/builtin/worktree.c:1190,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1191,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1191,1
    - Dst: worktree_lock_reason
      Src: /src/git/builtin/worktree.c:1192,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1193,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1193,1
    - Dst: repo_common_path
      Src: /src/git/builtin/worktree.c:1195,1
    - Dst: unlink_or_warn
      Src: /src/git/builtin/worktree.c:1196,1
    - Dst: free_worktrees
      Src: /src/git/builtin/worktree.c:1198,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:1199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1172
    functionDepth: 15
    functionLinenumber: 1172
    functionLinenumberEnd: 1201
    functionName: unlock_worktree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - get_worktrees
    - parse_options
    - OPT_END
    - die
    - is_main_worktree
    - worktree_lock_reason
    - unlink_or_warn
    - free_worktrees
    - repo_common_path
    - _
    - free
    - find_worktree
    - usage_with_options
    linkageType: ''
    returnType: int
    signature: "int unlock_worktree(int ac, const char **av, const char *prefix,\n\t\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INDEX_STATE_INIT
      Src: /src/git/builtin/worktree.c:1205,1
    - Dst: get_worktree_git_dir
      Src: /src/git/builtin/worktree.c:1210,1
    - Dst: is_directory
      Src: /src/git/builtin/worktree.c:1212,1
    - Dst: worktree_git_path
      Src: /src/git/builtin/worktree.c:1212,1
    - Dst: read_index_from
      Src: /src/git/builtin/worktree.c:1219,1
    - Dst: worktree_git_path
      Src: /src/git/builtin/worktree.c:1219,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/worktree.c:1225,1
    - Dst: strbuf_reset
      Src: /src/git/builtin/worktree.c:1228,1
    - Dst: strbuf_addf
      Src: /src/git/builtin/worktree.c:1229,1
    - Dst: is_submodule_populated_gently
      Src: /src/git/builtin/worktree.c:1230,1
    - Dst: discard_index
      Src: /src/git/builtin/worktree.c:1237,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:1238,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:1239,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1242,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - wt
    argTypes:
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1203
    functionDepth: 9
    functionLinenumber: 1203
    functionLinenumberEnd: 1243
    functionName: validate_no_submodules
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - INDEX_STATE_INIT
    - strbuf_release
    - die
    - strbuf_reset
    - S_ISGITLINK
    - get_worktree_git_dir
    - strbuf_addf
    - worktree_git_path
    - free
    - is_directory
    - is_submodule_populated_gently
    - read_index_from
    - _
    - discard_index
    linkageType: ''
    returnType: void
    signature: void validate_no_submodules(const struct worktree *wt)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPT__FORCE
      Src: /src/git/builtin/worktree.c:1250,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:1251,1
    - Dst: OPT_BOOL
      Src: /src/git/builtin/worktree.c:1253,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:1254,1
    - Dst: OPT_END
      Src: /src/git/builtin/worktree.c:1255,1
    - Dst: parse_options
      Src: /src/git/builtin/worktree.c:1263,1
    - Dst: usage_with_options
      Src: /src/git/builtin/worktree.c:1266,1
    - Dst: prefix_filename
      Src: /src/git/builtin/worktree.c:1268,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/worktree.c:1269,1
    - Dst: free
      Src: /src/git/builtin/worktree.c:1270,1
    - Dst: get_worktrees
      Src: /src/git/builtin/worktree.c:1272,1
    - Dst: find_worktree
      Src: /src/git/builtin/worktree.c:1273,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1275,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1275,1
    - Dst: is_main_worktree
      Src: /src/git/builtin/worktree.c:1276,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1277,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1277,1
    - Dst: is_directory
      Src: /src/git/builtin/worktree.c:1278,1
    - Dst: find_last_dir_sep
      Src: /src/git/builtin/worktree.c:1279,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1282,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1282,1
    - Dst: strbuf_trim_trailing_dir_sep
      Src: /src/git/builtin/worktree.c:1284,1
    - Dst: strbuf_addstr
      Src: /src/git/builtin/worktree.c:1285,1
    - Dst: check_candidate_path
      Src: /src/git/builtin/worktree.c:1287,1
    - Dst: validate_no_submodules
      Src: /src/git/builtin/worktree.c:1289,1
    - Dst: worktree_lock_reason
      Src: /src/git/builtin/worktree.c:1292,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1295,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1295,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1297,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1297,1
    - Dst: validate_worktree
      Src: /src/git/builtin/worktree.c:1299,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1300,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1300,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:1302,1
    - Dst: rename
      Src: /src/git/builtin/worktree.c:1304,1
    - Dst: die_errno
      Src: /src/git/builtin/worktree.c:1305,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1305,1
    - Dst: update_worktree_location
      Src: /src/git/builtin/worktree.c:1307,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:1309,1
    - Dst: free_worktrees
      Src: /src/git/builtin/worktree.c:1310,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1245
    functionDepth: 15
    functionLinenumber: 1245
    functionLinenumberEnd: 1312
    functionName: move_worktree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_BOOL
    - strbuf_trim_trailing_dir_sep
    - free
    - usage_with_options
    - get_worktrees
    - OPT_END
    - die
    - OPT__FORCE
    - prefix_filename
    - strbuf_release
    - validate_no_submodules
    - strbuf_addstr
    - validate_worktree
    - worktree_lock_reason
    - die_errno
    - update_worktree_location
    - _
    - N_
    - find_worktree
    - free_worktrees
    - is_main_worktree
    - rename
    - find_last_dir_sep
    - check_candidate_path
    - is_directory
    linkageType: ''
    returnType: int
    signature: "int move_worktree(int ac, const char **av, const char *prefix,\n\t\t\t
      struct repository *repo UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_no_submodules
      Src: /src/git/builtin/worktree.c:1336,1
    - Dst: child_process_init
      Src: /src/git/builtin/worktree.c:1338,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/worktree.c:1339,1
    - Dst: strvec_pushf
      Src: /src/git/builtin/worktree.c:1341,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/worktree.c:1343,1
    - Dst: start_command
      Src: /src/git/builtin/worktree.c:1349,1
    - Dst: die_errno
      Src: /src/git/builtin/worktree.c:1351,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1351,1
    - Dst: xread
      Src: /src/git/builtin/worktree.c:1353,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1355,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1355,1
    - Dst: close
      Src: /src/git/builtin/worktree.c:1357,1
    - Dst: finish_command
      Src: /src/git/builtin/worktree.c:1358,1
    - Dst: die_errno
      Src: /src/git/builtin/worktree.c:1360,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - wt
    - original_path
    argTypes:
    - struct worktree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1325
    functionDepth: 10
    functionLinenumber: 1325
    functionLinenumberEnd: 1362
    functionName: check_clean_worktree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - die
    - finish_command
    - child_process_init
    - strvec_pushl
    - die_errno
    - xread
    - validate_no_submodules
    - _
    - close
    - strvec_pushf
    - start_command
    linkageType: ''
    returnType: void
    signature: "void check_clean_worktree(struct worktree *wt,\n\t\t\t\t const char
      *original_path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/builtin/worktree.c:1369,1
    - Dst: remove_dir_recursively
      Src: /src/git/builtin/worktree.c:1370,1
    - Dst: error_errno
      Src: /src/git/builtin/worktree.c:1371,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1371,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:1374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - wt
    argTypes:
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1364
    functionDepth: 8
    functionLinenumber: 1364
    functionLinenumberEnd: 1376
    functionName: delete_git_work_tree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - remove_dir_recursively
    - strbuf_addstr
    - _
    linkageType: ''
    returnType: int
    signature: int delete_git_work_tree(struct worktree *wt)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPT__FORCE
      Src: /src/git/builtin/worktree.c:1383,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:1384,1
    - Dst: OPT_END
      Src: /src/git/builtin/worktree.c:1386,1
    - Dst: parse_options
      Src: /src/git/builtin/worktree.c:1393,1
    - Dst: usage_with_options
      Src: /src/git/builtin/worktree.c:1395,1
    - Dst: get_worktrees
      Src: /src/git/builtin/worktree.c:1397,1
    - Dst: find_worktree
      Src: /src/git/builtin/worktree.c:1398,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1400,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1400,1
    - Dst: is_main_worktree
      Src: /src/git/builtin/worktree.c:1401,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1402,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1402,1
    - Dst: worktree_lock_reason
      Src: /src/git/builtin/worktree.c:1404,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1407,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1407,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1409,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1409,1
    - Dst: validate_worktree
      Src: /src/git/builtin/worktree.c:1411,1
    - Dst: die
      Src: /src/git/builtin/worktree.c:1412,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1412,1
    - Dst: strbuf_release
      Src: /src/git/builtin/worktree.c:1414,1
    - Dst: file_exists
      Src: /src/git/builtin/worktree.c:1416,1
    - Dst: check_clean_worktree
      Src: /src/git/builtin/worktree.c:1418,1
    - Dst: delete_git_work_tree
      Src: /src/git/builtin/worktree.c:1420,1
    - Dst: delete_git_dir
      Src: /src/git/builtin/worktree.c:1426,1
    - Dst: delete_worktrees_dir_if_empty
      Src: /src/git/builtin/worktree.c:1427,1
    - Dst: free_worktrees
      Src: /src/git/builtin/worktree.c:1429,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1378
    functionDepth: 15
    functionLinenumber: 1378
    functionLinenumberEnd: 1431
    functionName: remove_worktree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - file_exists
    - usage_with_options
    - get_worktrees
    - OPT_END
    - die
    - OPT__FORCE
    - strbuf_release
    - delete_git_work_tree
    - validate_worktree
    - worktree_lock_reason
    - _
    - N_
    - delete_worktrees_dir_if_empty
    - find_worktree
    - free_worktrees
    - is_main_worktree
    - check_clean_worktree
    - delete_git_dir
    linkageType: ''
    returnType: int
    signature: "int remove_worktree(int ac, const char **av, const char *prefix,\n\t\t\t
      \  struct repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/worktree.c:1436,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1436,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/worktree.c:1439,1
    - Dst: _
      Src: /src/git/builtin/worktree.c:1439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - iserr
    - path
    - msg
    - cb_data
    argTypes:
    - int
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1442
    functionName: report_repair
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - fprintf_ln
    - _
    linkageType: ''
    returnType: void
    signature: void report_repair(int iserr, const char *path, const char *msg, void
      *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_BOOL
      Src: /src/git/builtin/worktree.c:1450,1
    - Dst: N_
      Src: /src/git/builtin/worktree.c:1451,1
    - Dst: OPT_END
      Src: /src/git/builtin/worktree.c:1452,1
    - Dst: parse_options
      Src: /src/git/builtin/worktree.c:1456,1
    - Dst: repair_worktree_at_path
      Src: /src/git/builtin/worktree.c:1459,1
    - Dst: repair_worktrees
      Src: /src/git/builtin/worktree.c:1460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - UNUSED
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1444
    functionDepth: 15
    functionLinenumber: 1444
    functionLinenumberEnd: 1462
    functionName: repair
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - OPT_BOOL
    - repair_worktree_at_path
    - repair_worktrees
    - N_
    linkageType: ''
    returnType: int
    signature: "int repair(int ac, const char **av, const char *prefix,\n\t\t  struct
      repository *repo UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/worktree.c:1471,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/worktree.c:1472,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/worktree.c:1473,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/worktree.c:1474,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/worktree.c:1475,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/worktree.c:1476,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/worktree.c:1477,1
    - Dst: OPT_SUBCOMMAND
      Src: /src/git/builtin/worktree.c:1478,1
    - Dst: OPT_END
      Src: /src/git/builtin/worktree.c:1479,1
    - Dst: repo_config
      Src: /src/git/builtin/worktree.c:1482,1
    - Dst: parse_options
      Src: /src/git/builtin/worktree.c:1487,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/worktree.c:1489,1
    - Dst: fn
      Src: /src/git/builtin/worktree.c:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ac
    - av
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1464
    functionDepth: 21
    functionLinenumber: 1464
    functionLinenumberEnd: 1493
    functionName: cmd_worktree
    functionSourceFile: /src/git/builtin/worktree.c
    functionUses: 0
    functionsReached:
    - parse_options
    - OPT_END
    - fn
    - prepare_repo_settings
    - OPT_SUBCOMMAND
    - repo_config
    linkageType: ''
    returnType: int
    signature: "int cmd_worktree(int ac,\n\t\t const char **av,\n\t\t const char *prefix,\n\t\t
      struct repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsck_describe_object
      Src: /src/git/builtin/fsck.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: describe_object
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 4
    functionsReached:
    - fsck_describe_object
    linkageType: ''
    returnType: char
    signature: char *describe_object(const struct object_id *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info
      Src: /src/git/builtin/fsck.c:75,1
    - Dst: type_name
      Src: /src/git/builtin/fsck.c:77,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - repo
    - oid
    - type
    argTypes:
    - struct repository*
    - struct object_id*
    - enum object_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 12
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: printable_type
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info
    - type_name
    - _
    linkageType: ''
    returnType: char
    signature: "char *printable_type(struct repository *repo,\n\t\t\t\t  const struct
      object_id *oid,\n\t\t\t\t  enum object_type type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:88,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:88,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:89,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - repo
    - obj
    - err
    argTypes:
    - struct repository*
    - struct object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 13
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: objerror
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - describe_object
    - printable_type
    - fprintf_ln
    - _
    linkageType: ''
    returnType: int
    signature: int objerror(struct repository *repo, struct object *obj, const char
      *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:107,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:107,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:108,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:109,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:113,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:113,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:114,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:115,1
    - Dst: BUG
      Src: /src/git/builtin/fsck.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - o
    - fsck_report
    - msg_type
    - msg_id
    - message
    argTypes:
    - struct fsck_options*
    - void*
    - enum fsck_msg_type
    - enum fsck_msg_id
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 94
    functionDepth: 13
    functionLinenumber: 94
    functionLinenumberEnd: 121
    functionName: fsck_objects_error_func
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - describe_object
    - fprintf_ln
    - _
    - printable_type
    - BUG
    linkageType: ''
    returnType: int
    signature: "int fsck_objects_error_func(struct fsck_options *o,\n\t\t\t\t   void
      *fsck_report,\n\t\t\t\t   enum fsck_msg_type msg_type,\n\t\t\t\t   enum fsck_msg_id
      msg_id UNUSED,\n\t\t\t\t   const char *message)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf_ln
      Src: /src/git/builtin/fsck.c:137,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:137,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:138,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:139,1
    - Dst: printf_ln
      Src: /src/git/builtin/fsck.c:140,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:140,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:141,1
    - Dst: type_name
      Src: /src/git/builtin/fsck.c:141,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:142,1
    - Dst: objerror
      Src: /src/git/builtin/fsck.c:149,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:149,1
    - Dst: is_promisor_object
      Src: /src/git/builtin/fsck.c:155,1
    - Dst: odb_has_object
      Src: /src/git/builtin/fsck.c:164,1
    - Dst: printf_ln
      Src: /src/git/builtin/fsck.c:166,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:166,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:168,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:169,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:170,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:171,1
    - Dst: add_object_array
      Src: /src/git/builtin/fsck.c:177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - obj
    - type
    - data
    - options
    argTypes:
    - struct object*
    - enum object_type
    - void*
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 125
    functionDepth: 14
    functionLinenumber: 125
    functionLinenumberEnd: 179
    functionName: mark_object
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 3
    functionsReached:
    - describe_object
    - objerror
    - add_object_array
    - odb_has_object
    - is_promisor_object
    - _
    - type_name
    - printable_type
    - printf_ln
    linkageType: ''
    returnType: int
    signature: "int mark_object(struct object *obj, enum object_type type,\n\t\t       void
      *data, struct fsck_options *options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_object
      Src: /src/git/builtin/fsck.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: mark_object_reachable
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - mark_object
    linkageType: ''
    returnType: void
    signature: void mark_object_reachable(struct object *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsck_walk
      Src: /src/git/builtin/fsck.c:188,1
    - Dst: free_tree_buffer
      Src: /src/git/builtin/fsck.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 22
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: traverse_one_object
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - fsck_walk
    - free_tree_buffer
    linkageType: ''
    returnType: int
    signature: int traverse_one_object(struct object *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_delayed_progress
      Src: /src/git/builtin/fsck.c:203,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:204,1
    - Dst: traverse_one_object
      Src: /src/git/builtin/fsck.c:206,1
    - Dst: object_array_pop
      Src: /src/git/builtin/fsck.c:206,1
    - Dst: display_progress
      Src: /src/git/builtin/fsck.c:207,1
    - Dst: stop_progress
      Src: /src/git/builtin/fsck.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 23
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: traverse_reachable
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - stop_progress
    - object_array_pop
    - traverse_one_object
    - display_progress
    - start_delayed_progress
    - _
    linkageType: ''
    returnType: int
    signature: int traverse_reachable(struct repository *repo)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - obj
    - UNUSED
    - UNUSED
    - options
    argTypes:
    - struct object*
    - enum object_type
    - void*
    - struct fsck_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 220
    functionName: mark_used
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mark_used(struct object *obj, enum object_type type UNUSED,\n\t\t
      \    void *data UNUSED, struct fsck_options *options UNUSED)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lookup_object
      Src: /src/git/builtin/fsck.c:228,1
    - Dst: odb_read_object_info
      Src: /src/git/builtin/fsck.c:240,1
    - Dst: object_as_type
      Src: /src/git/builtin/fsck.c:243,1
    - Dst: fsck_options_init
      Src: /src/git/builtin/fsck.c:246,1
    - Dst: fsck_walk
      Src: /src/git/builtin/fsck.c:248,1
    - Dst: free_tree_buffer
      Src: /src/git/builtin/fsck.c:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 222
    functionDepth: 22
    functionLinenumber: 222
    functionLinenumberEnd: 253
    functionName: mark_unreachable_referents
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - object_as_type
    - fsck_walk
    - free_tree_buffer
    - odb_read_object_info
    - lookup_object
    - fsck_options_init
    linkageType: ''
    returnType: int
    signature: "int mark_unreachable_referents(const struct object_id *oid,\n\t\t\t\t
      \     struct object_info *oi UNUSED,\n\t\t\t\t      void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_promisor_object
      Src: /src/git/builtin/fsck.c:266,1
    - Dst: has_object_pack
      Src: /src/git/builtin/fsck.c:268,1
    - Dst: printf_ln
      Src: /src/git/builtin/fsck.c:270,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:270,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:271,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - repo
    - obj
    argTypes:
    - struct repository*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 258
    functionDepth: 13
    functionLinenumber: 258
    functionLinenumberEnd: 276
    functionName: check_reachable_object
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - describe_object
    - is_promisor_object
    - _
    - has_object_pack
    - printable_type
    - printf_ln
    linkageType: ''
    returnType: void
    signature: void check_reachable_object(struct repository *repo, struct object
      *obj)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf_ln
      Src: /src/git/builtin/fsck.c:297,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:297,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:298,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:299,1
    - Dst: printf_ln
      Src: /src/git/builtin/fsck.c:317,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:317,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:318,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:319,1
    - Dst: repo_git_path
      Src: /src/git/builtin/fsck.c:321,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:323,1
    - Dst: safe_create_leading_directories_const
      Src: /src/git/builtin/fsck.c:326,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:327,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:327,1
    - Dst: free
      Src: /src/git/builtin/fsck.c:328,1
    - Dst: xfopen
      Src: /src/git/builtin/fsck.c:331,1
    - Dst: odb_stream_blob_to_fd
      Src: /src/git/builtin/fsck.c:333,1
    - Dst: fileno
      Src: /src/git/builtin/fsck.c:333,1
    - Dst: die_errno
      Src: /src/git/builtin/fsck.c:335,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:335,1
    - Dst: fprintf
      Src: /src/git/builtin/fsck.c:337,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:337,1
    - Dst: fclose
      Src: /src/git/builtin/fsck.c:338,1
    - Dst: die_errno
      Src: /src/git/builtin/fsck.c:339,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:339,1
    - Dst: free
      Src: /src/git/builtin/fsck.c:341,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - repo
    - obj
    argTypes:
    - struct repository*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 281
    functionDepth: 13
    functionLinenumber: 281
    functionLinenumberEnd: 351
    functionName: check_unreachable_object
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - error
    - describe_object
    - repo_git_path
    - fclose
    - fileno
    - die_errno
    - safe_create_leading_directories_const
    - xfopen
    - _
    - free
    - odb_stream_blob_to_fd
    - printable_type
    - printf_ln
    - fprintf
    linkageType: ''
    returnType: void
    signature: void check_unreachable_object(struct repository *repo, struct object
      *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:356,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:356,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:356,1
    - Dst: check_reachable_object
      Src: /src/git/builtin/fsck.c:359,1
    - Dst: check_unreachable_object
      Src: /src/git/builtin/fsck.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - repo
    - obj
    argTypes:
    - struct repository*
    - struct object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 14
    functionLinenumber: 353
    functionLinenumberEnd: 362
    functionName: check_object
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 3
    functionsReached:
    - describe_object
    - fprintf_ln
    - check_reachable_object
    - check_unreachable_object
    - _
    linkageType: ''
    returnType: void
    signature: void check_object(struct repository *repo, struct object *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: traverse_reachable
      Src: /src/git/builtin/fsck.c:369,1
    - Dst: odb_for_each_object
      Src: /src/git/builtin/fsck.c:387,1
    - Dst: get_max_object_index
      Src: /src/git/builtin/fsck.c:392,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:394,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:394,1
    - Dst: get_indexed_object
      Src: /src/git/builtin/fsck.c:397,1
    - Dst: check_object
      Src: /src/git/builtin/fsck.c:400,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - repo
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 364
    functionDepth: 24
    functionLinenumber: 364
    functionLinenumberEnd: 402
    functionName: check_connectivity
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - fprintf_ln
    - traverse_reachable
    - check_object
    - odb_for_each_object
    - get_max_object_index
    - _
    - get_indexed_object
    linkageType: ''
    returnType: void
    signature: void check_connectivity(struct repository *repo)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:414,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:414,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:415,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:416,1
    - Dst: fsck_walk
      Src: /src/git/builtin/fsck.c:418,1
    - Dst: objerror
      Src: /src/git/builtin/fsck.c:419,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:419,1
    - Dst: fsck_object
      Src: /src/git/builtin/fsck.c:420,1
    - Dst: printf_ln
      Src: /src/git/builtin/fsck.c:428,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:428,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:429,1
    - Dst: printf_ln
      Src: /src/git/builtin/fsck.c:436,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:436,1
    - Dst: printable_type
      Src: /src/git/builtin/fsck.c:437,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:438,1
    - Dst: describe_object
      Src: /src/git/builtin/fsck.c:440,1
    - Dst: free_tree_buffer
      Src: /src/git/builtin/fsck.c:446,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - repo
    - obj
    - buffer
    - size
    argTypes:
    - struct repository*
    - struct object*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 404
    functionDepth: 22
    functionLinenumber: 404
    functionLinenumberEnd: 448
    functionName: fsck_obj
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - describe_object
    - fprintf_ln
    - fsck_object
    - fsck_walk
    - objerror
    - free_tree_buffer
    - _
    - printable_type
    - printf_ln
    linkageType: ''
    returnType: int
    signature: "int fsck_obj(struct repository *repo,\n\t\t    struct object *obj,
      void *buffer, unsigned long size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_object_buffer
      Src: /src/git/builtin/fsck.c:460,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:463,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:463,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:464,1
    - Dst: fsck_obj
      Src: /src/git/builtin/fsck.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - oid
    - type
    - size
    - buffer
    - eaten
    - cb_data
    argTypes:
    - struct object_id*
    - enum object_type
    - unsigned long
    - void*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 450
    functionDepth: 23
    functionLinenumber: 450
    functionLinenumberEnd: 469
    functionName: fsck_obj_buffer
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - fsck_obj
    - parse_object_buffer
    - _
    linkageType: ''
    returnType: int
    signature: "int fsck_obj_buffer(const struct object_id *oid, enum object_type
      type,\n\t\t\t   unsigned long size, void *buffer, int *eaten, void *cb_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_null_oid
      Src: /src/git/builtin/fsck.c:479,1
    - Dst: lookup_object
      Src: /src/git/builtin/fsck.c:480,1
    - Dst: fsck_put_object_name
      Src: /src/git/builtin/fsck.c:483,1
    - Dst: mark_object_reachable
      Src: /src/git/builtin/fsck.c:487,1
    - Dst: is_promisor_object
      Src: /src/git/builtin/fsck.c:488,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:489,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:489,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - repo
    - refname
    - oid
    - timestamp
    argTypes:
    - struct repository*
    - char*
    - struct object_id*
    - timestamp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 473
    functionDepth: 11
    functionLinenumber: 473
    functionLinenumberEnd: 494
    functionName: fsck_handle_reflog_oid
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - mark_object_reachable
    - is_null_oid
    - lookup_object
    - is_promisor_object
    - fsck_put_object_name
    - _
    linkageType: ''
    returnType: void
    signature: "void fsck_handle_reflog_oid(struct repository *repo,\n\t\t\t\t   const
      char *refname, struct object_id *oid,\n\t\t\t\t   timestamp_t timestamp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:508,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:508,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:509,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:509,1
    - Dst: fsck_handle_reflog_oid
      Src: /src/git/builtin/fsck.c:511,1
    - Dst: fsck_handle_reflog_oid
      Src: /src/git/builtin/fsck.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 8
    argNames:
    - refname
    - ooid
    - noid
    - UNUSED
    - timestamp
    - UNUSED
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 496
    functionDepth: 12
    functionLinenumber: 496
    functionLinenumberEnd: 514
    functionName: fsck_handle_reflog_ent
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fprintf_ln
    - fsck_handle_reflog_oid
    - _
    linkageType: ''
    returnType: int
    signature: "int fsck_handle_reflog_ent(const char *refname,\n\t\t\t\t  struct
      object_id *ooid, struct object_id *noid,\n\t\t\t\t  const char *email UNUSED,\n\t\t\t\t
      \ timestamp_t timestamp, int tz UNUSED,\n\t\t\t\t  const char *message UNUSED,
      void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_worktree_ref
      Src: /src/git/builtin/fsck.c:521,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/builtin/fsck.c:522,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fsck.c:522,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsck.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - logname
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 516
    functionDepth: 5
    functionLinenumber: 516
    functionLinenumberEnd: 527
    functionName: fsck_handle_reflog
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_worktree_ref
    - refs_for_each_reflog_ent
    - get_main_ref_store
    linkageType: ''
    returnType: int
    signature: int fsck_handle_reflog(const char *logname, void *cb_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/builtin/fsck.c:553,1
    - Dst: is_promisor_object
      Src: /src/git/builtin/fsck.c:555,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:563,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:563,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:564,1
    - Dst: is_branch
      Src: /src/git/builtin/fsck.c:569,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:570,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:570,1
    - Dst: ALLOC_GROW
      Src: /src/git/builtin/fsck.c:575,1
    - Dst: xstrdup
      Src: /src/git/builtin/fsck.c:576,1
    - Dst: oidcpy
      Src: /src/git/builtin/fsck.c:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 547
    functionDepth: 11
    functionLinenumber: 547
    functionLinenumberEnd: 581
    functionName: snapshot_ref
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - oidcpy
    - parse_object
    - is_branch
    - is_promisor_object
    - ALLOC_GROW
    - _
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int snapshot_ref(const struct reference *ref, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_object
      Src: /src/git/builtin/fsck.c:588,1
    - Dst: fsck_put_object_name
      Src: /src/git/builtin/fsck.c:590,1
    - Dst: mark_object_reachable
      Src: /src/git/builtin/fsck.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 583
    functionDepth: 4
    functionLinenumber: 583
    functionLinenumberEnd: 595
    functionName: fsck_handle_ref
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - fsck_put_object_name
    - parse_object
    - mark_object_reachable
    linkageType: ''
    returnType: int
    signature: int fsck_handle_ref(const struct reference *ref, void *cb_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_get_oid
      Src: /src/git/builtin/fsck.c:614,1
    - Dst: snapshot_ref
      Src: /src/git/builtin/fsck.c:620,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:623,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:623,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/builtin/fsck.c:632,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fsck.c:632,1
    - Dst: get_worktrees
      Src: /src/git/builtin/fsck.c:635,1
    - Dst: strbuf_worktree_ref
      Src: /src/git/builtin/fsck.c:640,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/builtin/fsck.c:642,1
    - Dst: get_main_ref_store
      Src: /src/git/builtin/fsck.c:642,1
    - Dst: is_null_oid
      Src: /src/git/builtin/fsck.c:645,1
    - Dst: snapshot_ref
      Src: /src/git/builtin/fsck.c:651,1
    - Dst: strbuf_release
      Src: /src/git/builtin/fsck.c:653,1
    - Dst: free_worktrees
      Src: /src/git/builtin/fsck.c:661,1
    - Dst: time
      Src: /src/git/builtin/fsck.c:664,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - repo
    - snap
    - argc
    - argv
    argTypes:
    - struct repository*
    - struct snapshot*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 597
    functionDepth: 15
    functionLinenumber: 597
    functionLinenumberEnd: 665
    functionName: snapshot_refs
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 1
    functionsReached:
    - error
    - get_worktrees
    - strbuf_release
    - free_worktrees
    - refs_resolve_ref_unsafe
    - repo_get_oid
    - is_null_oid
    - refs_for_each_ref_ext
    - strbuf_worktree_ref
    - time
    - _
    - get_main_ref_store
    - snapshot_ref
    linkageType: ''
    returnType: void
    signature: "void snapshot_refs(struct repository *repo,\n\t\t\t  struct snapshot
      *snap, int argc, const char **argv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/builtin/fsck.c:671,1
    - Dst: free
      Src: /src/git/builtin/fsck.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - snap
    argTypes:
    - struct snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 673
    functionName: free_snapshot_refs
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_snapshot_refs(struct snapshot *snap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fsck_handle_ref
      Src: /src/git/builtin/fsck.c:684,1
    - Dst: get_worktrees
      Src: /src/git/builtin/fsck.c:688,1
    - Dst: refs_for_each_reflog
      Src: /src/git/builtin/fsck.c:692,1
    - Dst: get_worktree_ref_store
      Src: /src/git/builtin/fsck.c:692,1
    - Dst: free_worktrees
      Src: /src/git/builtin/fsck.c:695,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:711,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:711,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - repo
    - snap
    argTypes:
    - struct repository*
    - struct snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 675
    functionDepth: 15
    functionLinenumber: 675
    functionLinenumberEnd: 714
    functionName: process_refs
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - refs_for_each_reflog
    - get_worktree_ref_store
    - get_worktrees
    - free_worktrees
    - fprintf_ln
    - fsck_handle_ref
    - _
    linkageType: ''
    returnType: void
    signature: void process_refs(struct repository *repo, struct snapshot *snap)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: null_oid
      Src: /src/git/builtin/fsck.c:731,1
    - Dst: read_loose_object
      Src: /src/git/builtin/fsck.c:737,1
    - Dst: oideq
      Src: /src/git/builtin/fsck.c:738,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:739,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:739,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:740,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:742,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:742,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:743,1
    - Dst: free
      Src: /src/git/builtin/fsck.c:747,1
    - Dst: BUG
      Src: /src/git/builtin/fsck.c:752,1
    - Dst: parse_object_buffer
      Src: /src/git/builtin/fsck.c:754,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:759,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:759,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:760,1
    - Dst: free
      Src: /src/git/builtin/fsck.c:762,1
    - Dst: fsck_obj
      Src: /src/git/builtin/fsck.c:768,1
    - Dst: free
      Src: /src/git/builtin/fsck.c:772,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - oid
    - path
    - cb_data
    argTypes:
    - struct object_id*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 721
    functionDepth: 23
    functionLinenumber: 721
    functionLinenumberEnd: 774
    functionName: fsck_loose
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - BUG
    - fsck_obj
    - read_loose_object
    - _
    - free
    - parse_object_buffer
    - null_oid
    - oideq
    linkageType: ''
    returnType: int
    signature: "int fsck_loose(const struct object_id *oid, const char *path,\n\t\t
      \     void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/builtin/fsck.c:779,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:780,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - basename
    - path
    - UNUSED
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 782
    functionName: fsck_cruft
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - fprintf_ln
    - starts_with
    - _
    linkageType: ''
    returnType: int
    signature: "int fsck_cruft(const char *basename, const char *path,\n\t\t      void
      *data UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: display_progress
      Src: /src/git/builtin/fsck.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nr
    - UNUSED
    - data
    argTypes:
    - unsigned int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 784
    functionDepth: 4
    functionLinenumber: 784
    functionLinenumberEnd: 790
    functionName: fsck_subdir
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - display_progress
    linkageType: ''
    returnType: int
    signature: int fsck_subdir(unsigned int nr, const char *path UNUSED, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:801,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:801,1
    - Dst: start_progress
      Src: /src/git/builtin/fsck.c:804,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:805,1
    - Dst: for_each_loose_file_in_source
      Src: /src/git/builtin/fsck.c:807,1
    - Dst: display_progress
      Src: /src/git/builtin/fsck.c:809,1
    - Dst: stop_progress
      Src: /src/git/builtin/fsck.c:810,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - repo
    - source
    argTypes:
    - struct repository*
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 792
    functionDepth: 4
    functionLinenumber: 792
    functionLinenumberEnd: 811
    functionName: fsck_source
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - for_each_loose_file_in_source
    - stop_progress
    - fprintf_ln
    - display_progress
    - _
    - start_progress
    linkageType: ''
    returnType: void
    signature: void fsck_source(struct repository *repo, struct odb_source *source)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:819,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:819,1
    - Dst: parse_object
      Src: /src/git/builtin/fsck.c:822,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:824,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:824,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:825,1
    - Dst: fsck_put_object_name
      Src: /src/git/builtin/fsck.c:830,1
    - Dst: mark_object_reachable
      Src: /src/git/builtin/fsck.c:831,1
    - Dst: objerror
      Src: /src/git/builtin/fsck.c:833,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:833,1
    - Dst: fsck_cache_tree
      Src: /src/git/builtin/fsck.c:836,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - repo
    - it
    - index_path
    argTypes:
    - struct repository*
    - struct cache_tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 813
    functionDepth: 14
    functionLinenumber: 813
    functionLinenumberEnd: 838
    functionName: fsck_cache_tree
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 1
    functionsReached:
    - error
    - oid_to_hex
    - fprintf_ln
    - objerror
    - parse_object
    - mark_object_reachable
    - fsck_put_object_name
    - _
    - fsck_cache_tree
    linkageType: ''
    returnType: int
    signature: int fsck_cache_tree(struct repository *repo, struct cache_tree *it,
      const char *index_path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/builtin/fsck.c:859,1
    - Dst: parse_object
      Src: /src/git/builtin/fsck.c:862,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:864,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:864,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:865,1
    - Dst: fsck_put_object_name
      Src: /src/git/builtin/fsck.c:871,1
    - Dst: mark_object_reachable
      Src: /src/git/builtin/fsck.c:873,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - istate
    - index_path
    argTypes:
    - struct index_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 840
    functionDepth: 4
    functionLinenumber: 840
    functionLinenumberEnd: 877
    functionName: fsck_resolve_undo
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - error
    - oid_to_hex
    - parse_object
    - mark_object_reachable
    - fsck_put_object_name
    - _
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int fsck_resolve_undo(struct index_state *istate,\n\t\t\t     const
      char *index_path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/git/builtin/fsck.c:859,1
    - Dst: parse_object
      Src: /src/git/builtin/fsck.c:862,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:864,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:864,1
    - Dst: oid_to_hex
      Src: /src/git/builtin/fsck.c:865,1
    - Dst: fsck_put_object_name
      Src: /src/git/builtin/fsck.c:871,1
    - Dst: mark_object_reachable
      Src: /src/git/builtin/fsck.c:873,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 849
    functionDepth: 4
    functionLinenumber: 849
    functionLinenumberEnd: 875
    functionName: for_each_string_list_item
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 92
    functionsReached:
    - error
    - oid_to_hex
    - parse_object
    - mark_object_reachable
    - fsck_put_object_name
    - _
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void for_each_string_list_item(item, resolve_undo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ensure_full_index
      Src: /src/git/builtin/fsck.c:885,1
    - Dst: S_ISGITLINK
      Src: /src/git/builtin/fsck.c:892,1
    - Dst: lookup_blob
      Src: /src/git/builtin/fsck.c:894,1
    - Dst: fsck_put_object_name
      Src: /src/git/builtin/fsck.c:900,1
    - Dst: mark_object_reachable
      Src: /src/git/builtin/fsck.c:904,1
    - Dst: fsck_cache_tree
      Src: /src/git/builtin/fsck.c:907,1
    - Dst: fsck_resolve_undo
      Src: /src/git/builtin/fsck.c:908,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - istate
    - index_path
    - is_current_worktree
    argTypes:
    - struct index_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 879
    functionDepth: 15
    functionLinenumber: 879
    functionLinenumberEnd: 909
    functionName: fsck_index
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - ensure_full_index
    - S_ISGITLINK
    - mark_object_reachable
    - fsck_resolve_undo
    - fsck_put_object_name
    - lookup_blob
    - fsck_cache_tree
    linkageType: ''
    returnType: void
    signature: "void fsck_index(struct index_state *istate, const char *index_path,\n\t\t
      \      int is_current_worktree)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_unknown_object
      Src: /src/git/builtin/fsck.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 911
    functionDepth: 4
    functionLinenumber: 911
    functionLinenumberEnd: 919
    functionName: mark_object_for_connectivity
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - lookup_unknown_object
    linkageType: ''
    returnType: int
    signature: "int mark_object_for_connectivity(const struct object_id *oid,\n\t\t\t\t\tstruct
      object_info *oi UNUSED,\n\t\t\t\t\tvoid *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: repo_for_each_pack
      Src: /src/git/builtin/fsck.c:929,1
    - Dst: start_delayed_progress
      Src: /src/git/builtin/fsck.c:931,1
    - Dst: load_pack_revindex_from_disk
      Src: /src/git/builtin/fsck.c:937,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:940,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:940,1
    - Dst: load_pack_revindex
      Src: /src/git/builtin/fsck.c:943,1
    - Dst: verify_pack_revindex
      Src: /src/git/builtin/fsck.c:944,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:945,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:945,1
    - Dst: display_progress
      Src: /src/git/builtin/fsck.c:948,1
    - Dst: stop_progress
      Src: /src/git/builtin/fsck.c:950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - r
    - show_progress
    argTypes:
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 921
    functionDepth: 5
    functionLinenumber: 921
    functionLinenumberEnd: 953
    functionName: check_pack_rev_indexes
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - error
    - verify_pack_revindex
    - stop_progress
    - display_progress
    - repo_for_each_pack
    - start_delayed_progress
    - _
    - load_pack_revindex
    - load_pack_revindex_from_disk
    linkageType: ''
    returnType: int
    signature: int check_pack_rev_indexes(struct repository *r, int show_progress)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_pack_revindex_from_disk
      Src: /src/git/builtin/fsck.c:937,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:940,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:940,1
    - Dst: load_pack_revindex
      Src: /src/git/builtin/fsck.c:943,1
    - Dst: verify_pack_revindex
      Src: /src/git/builtin/fsck.c:944,1
    - Dst: error
      Src: /src/git/builtin/fsck.c:945,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:945,1
    - Dst: display_progress
      Src: /src/git/builtin/fsck.c:948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 936
    functionDepth: 5
    functionLinenumber: 936
    functionLinenumberEnd: 949
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 9
    functionsReached:
    - error
    - verify_pack_revindex
    - load_pack_revindex_from_disk
    - display_progress
    - _
    - load_pack_revindex
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(r, p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: start_progress
      Src: /src/git/builtin/fsck.c:961,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:961,1
    - Dst: fprintf_ln
      Src: /src/git/builtin/fsck.c:964,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:964,1
    - Dst: child_process_init
      Src: /src/git/builtin/fsck.c:966,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/fsck.c:968,1
    - Dst: strvec_push
      Src: /src/git/builtin/fsck.c:970,1
    - Dst: strvec_push
      Src: /src/git/builtin/fsck.c:972,1
    - Dst: run_command
      Src: /src/git/builtin/fsck.c:974,1
    - Dst: display_progress
      Src: /src/git/builtin/fsck.c:977,1
    - Dst: stop_progress
      Src: /src/git/builtin/fsck.c:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 955
    functionDepth: 8
    functionLinenumber: 955
    functionLinenumberEnd: 979
    functionName: fsck_refs
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - strvec_push
    - stop_progress
    - fprintf_ln
    - child_process_init
    - run_command
    - strvec_pushl
    - display_progress
    - _
    - start_progress
    linkageType: ''
    returnType: void
    signature: void fsck_refs(struct repository *r)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: disable_replace_refs
      Src: /src/git/builtin/fsck.c:1024,1
    - Dst: parse_options
      Src: /src/git/builtin/fsck.c:1027,1
    - Dst: fsck_options_init
      Src: /src/git/builtin/fsck.c:1029,1
    - Dst: fsck_options_init
      Src: /src/git/builtin/fsck.c:1032,1
    - Dst: isatty
      Src: /src/git/builtin/fsck.c:1039,1
    - Dst: fsck_enable_object_names
      Src: /src/git/builtin/fsck.c:1049,1
    - Dst: repo_config
      Src: /src/git/builtin/fsck.c:1051,1
    - Dst: prepare_repo_settings
      Src: /src/git/builtin/fsck.c:1052,1
    - Dst: fsck_refs
      Src: /src/git/builtin/fsck.c:1055,1
    - Dst: snapshot_refs
      Src: /src/git/builtin/fsck.c:1063,1
    - Dst: odb_reprepare
      Src: /src/git/builtin/fsck.c:1066,1
    - Dst: odb_for_each_object
      Src: /src/git/builtin/fsck.c:1069,1
    - Dst: odb_prepare_alternates
      Src: /src/git/builtin/fsck.c:1072,1
    - Dst: fsck_source
      Src: /src/git/builtin/fsck.c:1074,1
    - Dst: open_pack_index
      Src: /src/git/builtin/fsck.c:1083,1
    - Dst: start_progress
      Src: /src/git/builtin/fsck.c:1088,1
    - Dst: _
      Src: /src/git/builtin/fsck.c:1089,1
    - Dst: verify_pack
      Src: /src/git/builtin/fsck.c:1094,1
    - Dst: stop_progress
      Src: /src/git/builtin/fsck.c:1100,1
    - Dst: fsck_finish
      Src: /src/git/builtin/fsck.c:1103,1
    - Dst: process_refs
      Src: /src/git/builtin/fsck.c:1108,1
    - Dst: get_worktrees
      Src: /src/git/builtin/fsck.c:1124,1
    - Dst: INDEX_STATE_INIT
      Src: /src/git/builtin/fsck.c:1128,1
    - Dst: xstrdup
      Src: /src/git/builtin/fsck.c:1136,1
    - Dst: worktree_git_path
      Src: /src/git/builtin/fsck.c:1136,1
    - Dst: get_worktree_git_dir
      Src: /src/git/builtin/fsck.c:1137,1
    - Dst: read_index_from
      Src: /src/git/builtin/fsck.c:1139,1
    - Dst: fsck_index
      Src: /src/git/builtin/fsck.c:1140,1
    - Dst: discard_index
      Src: /src/git/builtin/fsck.c:1142,1
    - Dst: free
      Src: /src/git/builtin/fsck.c:1143,1
    - Dst: free
      Src: /src/git/builtin/fsck.c:1144,1
    - Dst: free_worktrees
      Src: /src/git/builtin/fsck.c:1146,1
    - Dst: check_pack_rev_indexes
      Src: /src/git/builtin/fsck.c:1149,1
    - Dst: verify_bitmap_files
      Src: /src/git/builtin/fsck.c:1150,1
    - Dst: check_connectivity
      Src: /src/git/builtin/fsck.c:1153,1
    - Dst: odb_prepare_alternates
      Src: /src/git/builtin/fsck.c:1158,1
    - Dst: child_process_init
      Src: /src/git/builtin/fsck.c:1160,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/fsck.c:1162,1
    - Dst: strvec_push
      Src: /src/git/builtin/fsck.c:1165,1
    - Dst: strvec_push
      Src: /src/git/builtin/fsck.c:1167,1
    - Dst: run_command
      Src: /src/git/builtin/fsck.c:1168,1
    - Dst: odb_prepare_alternates
      Src: /src/git/builtin/fsck.c:1176,1
    - Dst: child_process_init
      Src: /src/git/builtin/fsck.c:1178,1
    - Dst: strvec_pushl
      Src: /src/git/builtin/fsck.c:1180,1
    - Dst: strvec_push
      Src: /src/git/builtin/fsck.c:1183,1
    - Dst: strvec_push
      Src: /src/git/builtin/fsck.c:1185,1
    - Dst: run_command
      Src: /src/git/builtin/fsck.c:1186,1
    - Dst: free_snapshot_refs
      Src: /src/git/builtin/fsck.c:1191,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 102
    argCount: 4
    argNames:
    - argc
    - argv
    - prefix
    - repo
    argTypes:
    - int
    - char**
    - char*
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1008
    functionDepth: 25
    functionLinenumber: 1008
    functionLinenumberEnd: 1193
    functionName: cmd_fsck
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 0
    functionsReached:
    - fsck_index
    - strvec_push
    - parse_options
    - stop_progress
    - check_connectivity
    - odb_prepare_alternates
    - verify_bitmap_files
    - snapshot_refs
    - free
    - fsck_options_init
    - read_index_from
    - repo_config
    - discard_index
    - get_worktrees
    - child_process_init
    - disable_replace_refs
    - process_refs
    - fsck_source
    - isatty
    - fsck_enable_object_names
    - fsck_finish
    - strvec_pushl
    - get_worktree_git_dir
    - odb_for_each_object
    - check_pack_rev_indexes
    - _
    - xstrdup
    - INDEX_STATE_INIT
    - free_worktrees
    - run_command
    - free_snapshot_refs
    - fsck_refs
    - prepare_repo_settings
    - verify_pack
    - worktree_git_path
    - odb_reprepare
    - open_pack_index
    - start_progress
    linkageType: ''
    returnType: int
    signature: "int cmd_fsck(int argc,\n\t     const char **argv,\n\t     const char
      *prefix,\n\t     struct repository *repo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open_pack_index
      Src: /src/git/builtin/fsck.c:1083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1082
    functionDepth: 10
    functionLinenumber: 1082
    functionLinenumberEnd: 1086
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 9
    functionsReached:
    - open_pack_index
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(repo, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verify_pack
      Src: /src/git/builtin/fsck.c:1094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1092
    functionDepth: 5
    functionLinenumber: 1092
    functionLinenumberEnd: 1099
    functionName: repo_for_each_pack
    functionSourceFile: /src/git/builtin/fsck.c
    functionUses: 9
    functionsReached:
    - verify_pack
    linkageType: ''
    returnType: void
    signature: void repo_for_each_pack(repo, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_ctr.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cid
    - value
    argTypes:
    - enum trace2_counter_id
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: tr2_counter_increment
    functionSourceFile: /src/git/trace2/tr2_ctr.c
    functionUses: 1
    functionsReached:
    - tr2tls_get_self
    linkageType: ''
    returnType: void
    signature: void tr2_counter_increment(enum trace2_counter_id cid, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_ctr.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 84
    functionName: tr2_update_final_counters
    functionSourceFile: /src/git/trace2/tr2_ctr.c
    functionUses: 2
    functionsReached:
    - tr2tls_get_self
    linkageType: ''
    returnType: void
    signature: void tr2_update_final_counters(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_ctr.c:88,1
    - Dst: fn_apply
      Src: /src/git/trace2/tr2_ctr.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - fn_apply
    argTypes:
    - tr2_tgt_evt_counter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: tr2_emit_per_thread_counters
    functionSourceFile: /src/git/trace2/tr2_ctr.c
    functionUses: 2
    functionsReached:
    - fn_apply
    - tr2tls_get_self
    linkageType: ''
    returnType: void
    signature: void tr2_emit_per_thread_counters(tr2_tgt_evt_counter_t *fn_apply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fn_apply
      Src: /src/git/trace2/tr2_ctr.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fn_apply
    argTypes:
    - tr2_tgt_evt_counter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 120
    functionName: tr2_emit_final_counters
    functionSourceFile: /src/git/trace2/tr2_ctr.c
    functionUses: 1
    functionsReached:
    - fn_apply
    linkageType: ''
    returnType: void
    signature: void tr2_emit_final_counters(tr2_tgt_evt_counter_t *fn_apply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getnanotime
      Src: /src/git/trace2/tr2_tls.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: tr2tls_start_process_clock
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 1
    functionsReached:
    - getnanotime
    linkageType: ''
    returnType: void
    signature: void tr2tls_start_process_clock(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/trace2/tr2_tls.c:39,1
    - Dst: xcalloc
      Src: /src/git/trace2/tr2_tls.c:48,1
    - Dst: tr2tls_locked_increment
      Src: /src/git/trace2/tr2_tls.c:51,1
    - Dst: strbuf_init
      Src: /src/git/trace2/tr2_tls.c:53,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tls.c:55,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tls.c:56,1
    - Dst: strbuf_setlen
      Src: /src/git/trace2/tr2_tls.c:58,1
    - Dst: strbuf_detach
      Src: /src/git/trace2/tr2_tls.c:59,1
    - Dst: pthread_setspecific
      Src: /src/git/trace2/tr2_tls.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - thread_base_name
    - us_thread_start
    argTypes:
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 7
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: tr2tls_create_self
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 1
    functionsReached:
    - pthread_setspecific
    - strbuf_addf
    - tr2tls_locked_increment
    - strbuf_setlen
    - strbuf_detach
    - strbuf_addstr
    - xcalloc
    - strbuf_init
    linkageType: ''
    returnType: struct tr2tls_thread_ctx
    signature: "struct tr2tls_thread_ctx *tr2tls_create_self(const char *thread_base_name,\n\t\t\t\t\t
      \    uint64_t us_thread_start)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/git/trace2/tr2_tls.c:73,1
    - Dst: tr2tls_create_self
      Src: /src/git/trace2/tr2_tls.c:81,1
    - Dst: getnanotime
      Src: /src/git/trace2/tr2_tls.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 8
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: tr2tls_get_self
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 3
    functionsReached:
    - getnanotime
    - pthread_getspecific
    - tr2tls_create_self
    linkageType: ''
    returnType: struct tr2tls_thread_ctx
    signature: struct tr2tls_thread_ctx *tr2tls_get_self(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/git/trace2/tr2_tls.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: tr2tls_is_main_thread
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 2
    functionsReached:
    - pthread_getspecific
    linkageType: ''
    returnType: int
    signature: int tr2tls_is_main_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tls.c:98,1
    - Dst: pthread_setspecific
      Src: /src/git/trace2/tr2_tls.c:100,1
    - Dst: free
      Src: /src/git/trace2/tr2_tls.c:102,1
    - Dst: free
      Src: /src/git/trace2/tr2_tls.c:103,1
    - Dst: free
      Src: /src/git/trace2/tr2_tls.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 9
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: tr2tls_unset_self
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 1
    functionsReached:
    - pthread_setspecific
    - tr2tls_get_self
    - free
    linkageType: ''
    returnType: void
    signature: void tr2tls_unset_self(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tls.c:109,1
    - Dst: ALLOC_GROW
      Src: /src/git/trace2/tr2_tls.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - us_now
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 9
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: tr2tls_push_self
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 1
    functionsReached:
    - ALLOC_GROW
    - tr2tls_get_self
    linkageType: ''
    returnType: void
    signature: void tr2tls_push_self(uint64_t us_now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tls.c:117,1
    - Dst: BUG
      Src: /src/git/trace2/tr2_tls.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 9
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: tr2tls_pop_self
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 1
    functionsReached:
    - BUG
    - tr2tls_get_self
    linkageType: ''
    returnType: void
    signature: void tr2tls_pop_self(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tls.c:127,1
    - Dst: tr2tls_pop_self
      Src: /src/git/trace2/tr2_tls.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 10
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: tr2tls_pop_unwind_self
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 2
    functionsReached:
    - tr2tls_get_self
    - tr2tls_pop_self
    linkageType: ''
    returnType: void
    signature: void tr2tls_pop_unwind_self(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tls.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - us
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 9
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: tr2tls_region_elasped_self
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 4
    functionsReached:
    - tr2tls_get_self
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t tr2tls_region_elasped_self(uint64_t us)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - us
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: tr2tls_absolute_elapsed
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t tr2tls_absolute_elapsed(uint64_t us)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/trace2/tr2_tls.c:158,1
    - Dst: free
      Src: /src/git/trace2/tr2_tls.c:159,1
    - Dst: free
      Src: /src/git/trace2/tr2_tls.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: tr2tls_key_destructor
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tr2tls_key_destructor(void *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_start_process_clock
      Src: /src/git/trace2/tr2_tls.c:165,1
    - Dst: pthread_key_create
      Src: /src/git/trace2/tr2_tls.c:167,1
    - Dst: init_recursive_mutex
      Src: /src/git/trace2/tr2_tls.c:168,1
    - Dst: tr2tls_create_self
      Src: /src/git/trace2/tr2_tls.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 8
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: tr2tls_init
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 1
    functionsReached:
    - tr2tls_create_self
    - init_recursive_mutex
    - pthread_key_create
    - tr2tls_start_process_clock
    linkageType: ''
    returnType: void
    signature: void tr2tls_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_unset_self
      Src: /src/git/trace2/tr2_tls.c:176,1
    - Dst: pthread_mutex_destroy
      Src: /src/git/trace2/tr2_tls.c:179,1
    - Dst: pthread_key_delete
      Src: /src/git/trace2/tr2_tls.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 10
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: tr2tls_release
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 1
    functionsReached:
    - tr2tls_unset_self
    - pthread_key_delete
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void tr2tls_release(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/trace2/tr2_tls.c:187,1
    - Dst: pthread_mutex_unlock
      Src: /src/git/trace2/tr2_tls.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: tr2tls_locked_increment
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 4
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int tr2tls_locked_increment(int *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/git/trace2/tr2_tls.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: tr2tls_lock
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void tr2tls_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/git/trace2/tr2_tls.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: tr2tls_unlock
    functionSourceFile: /src/git/trace2/tr2_tls.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void tr2tls_unlock(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2_sysenv_get
      Src: /src/git/trace2/tr2_dst.c:32,1
    - Dst: atoi
      Src: /src/git/trace2/tr2_dst.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: tr2_dst_want_warning
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - tr2_sysenv_get
    - atoi
    linkageType: ''
    returnType: int
    signature: int tr2_dst_want_warning(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/git/trace2/tr2_dst.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - struct tr2_dst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: tr2_dst_trace_disable
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void tr2_dst_trace_disable(struct tr2_dst *dst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tr2_sysenv_get
      Src: /src/git/trace2/tr2_dst.c:75,1
    - Dst: atoi
      Src: /src/git/trace2/tr2_dst.c:76,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_dst.c:84,1
    - Dst: is_dir_sep
      Src: /src/git/trace2/tr2_dst.c:85,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_dst.c:86,1
    - Dst: strbuf_addbuf
      Src: /src/git/trace2/tr2_dst.c:90,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_dst.c:91,1
    - Dst: stat
      Src: /src/git/trace2/tr2_dst.c:92,1
    - Dst: opendir
      Src: /src/git/trace2/tr2_dst.c:98,1
    - Dst: readdir
      Src: /src/git/trace2/tr2_dst.c:99,1
    - Dst: closedir
      Src: /src/git/trace2/tr2_dst.c:102,1
    - Dst: open
      Src: /src/git/trace2/tr2_dst.c:106,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_dst.c:112,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_dst.c:113,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - dst
    - tgt_prefix
    argTypes:
    - struct tr2_dst*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 115
    functionName: tr2_dst_too_many_files
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - atoi
    - open
    - is_dir_sep
    - stat
    - strbuf_addch
    - opendir
    - strbuf_addbuf
    - strbuf_addstr
    - tr2_sysenv_get
    - closedir
    - readdir
    linkageType: ''
    returnType: int
    signature: int tr2_dst_too_many_files(struct tr2_dst *dst, const char *tgt_prefix)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tr2_sid_get
      Src: /src/git/trace2/tr2_dst.c:120,1
    - Dst: strrchr
      Src: /src/git/trace2/tr2_dst.c:125,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_dst.c:129,1
    - Dst: is_dir_sep
      Src: /src/git/trace2/tr2_dst.c:130,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_dst.c:131,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_dst.c:132,1
    - Dst: tr2_dst_too_many_files
      Src: /src/git/trace2/tr2_dst.c:135,1
    - Dst: strbuf_setlen
      Src: /src/git/trace2/tr2_dst.c:139,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_dst.c:140,1
    - Dst: open
      Src: /src/git/trace2/tr2_dst.c:143,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_dst.c:148,1
    - Dst: tr2_dst_want_warning
      Src: /src/git/trace2/tr2_dst.c:149,1
    - Dst: warning
      Src: /src/git/trace2/tr2_dst.c:150,1
    - Dst: tr2_sysenv_display_name
      Src: /src/git/trace2/tr2_dst.c:152,1
    - Dst: tr2_dst_want_warning
      Src: /src/git/trace2/tr2_dst.c:158,1
    - Dst: warning
      Src: /src/git/trace2/tr2_dst.c:159,1
    - Dst: tr2_sysenv_display_name
      Src: /src/git/trace2/tr2_dst.c:161,1
    - Dst: strerror
      Src: /src/git/trace2/tr2_dst.c:162,1
    - Dst: tr2_dst_trace_disable
      Src: /src/git/trace2/tr2_dst.c:164,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_dst.c:165,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_dst.c:169,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - dst
    - tgt_prefix
    argTypes:
    - struct tr2_dst*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 175
    functionName: tr2_dst_try_auto_path
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - tr2_dst_want_warning
    - open
    - strrchr
    - is_dir_sep
    - tr2_sid_get
    - strbuf_setlen
    - strbuf_addf
    - strerror
    - strbuf_addch
    - tr2_sysenv_display_name
    - tr2_dst_trace_disable
    - strbuf_addstr
    - warning
    - tr2_dst_too_many_files
    linkageType: ''
    returnType: int
    signature: int tr2_dst_try_auto_path(struct tr2_dst *dst, const char *tgt_prefix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/trace2/tr2_dst.c:179,1
    - Dst: tr2_dst_want_warning
      Src: /src/git/trace2/tr2_dst.c:181,1
    - Dst: warning
      Src: /src/git/trace2/tr2_dst.c:182,1
    - Dst: tr2_sysenv_display_name
      Src: /src/git/trace2/tr2_dst.c:184,1
    - Dst: strerror
      Src: /src/git/trace2/tr2_dst.c:185,1
    - Dst: tr2_dst_trace_disable
      Src: /src/git/trace2/tr2_dst.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dst
    - tgt_value
    argTypes:
    - struct tr2_dst*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: tr2_dst_try_path
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - tr2_dst_want_warning
    - open
    - strerror
    - tr2_dst_trace_disable
    - tr2_sysenv_display_name
    - warning
    linkageType: ''
    returnType: int
    signature: int tr2_dst_try_path(struct tr2_dst *dst, const char *tgt_value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/git/trace2/tr2_dst.c:208,1
    - Dst: strlcpy
      Src: /src/git/trace2/tr2_dst.c:213,1
    - Dst: connect
      Src: /src/git/trace2/tr2_dst.c:215,1
    - Dst: close
      Src: /src/git/trace2/tr2_dst.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - path
    - sock_type
    - out_fd
    argTypes:
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 224
    functionName: tr2_dst_try_uds_connect
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - close
    - socket
    - connect
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int tr2_dst_try_uds_connect(const char *path, int sock_type, int *out_fd)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/trace2/tr2_dst.c:247,1
    - Dst: skip_prefix
      Src: /src/git/trace2/tr2_dst.c:250,1
    - Dst: skip_prefix
      Src: /src/git/trace2/tr2_dst.c:253,1
    - Dst: tr2_dst_want_warning
      Src: /src/git/trace2/tr2_dst.c:257,1
    - Dst: warning
      Src: /src/git/trace2/tr2_dst.c:258,1
    - Dst: tr2_sysenv_display_name
      Src: /src/git/trace2/tr2_dst.c:260,1
    - Dst: tr2_dst_trace_disable
      Src: /src/git/trace2/tr2_dst.c:262,1
    - Dst: is_absolute_path
      Src: /src/git/trace2/tr2_dst.c:266,1
    - Dst: strlen
      Src: /src/git/trace2/tr2_dst.c:267,1
    - Dst: tr2_dst_want_warning
      Src: /src/git/trace2/tr2_dst.c:268,1
    - Dst: warning
      Src: /src/git/trace2/tr2_dst.c:269,1
    - Dst: tr2_sysenv_display_name
      Src: /src/git/trace2/tr2_dst.c:270,1
    - Dst: tr2_dst_trace_disable
      Src: /src/git/trace2/tr2_dst.c:272,1
    - Dst: tr2_dst_try_uds_connect
      Src: /src/git/trace2/tr2_dst.c:277,1
    - Dst: tr2_dst_try_uds_connect
      Src: /src/git/trace2/tr2_dst.c:283,1
    - Dst: tr2_dst_want_warning
      Src: /src/git/trace2/tr2_dst.c:288,1
    - Dst: warning
      Src: /src/git/trace2/tr2_dst.c:289,1
    - Dst: tr2_sysenv_display_name
      Src: /src/git/trace2/tr2_dst.c:290,1
    - Dst: strerror
      Src: /src/git/trace2/tr2_dst.c:291,1
    - Dst: tr2_dst_trace_disable
      Src: /src/git/trace2/tr2_dst.c:293,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 2
    argNames:
    - dst
    - tgt_value
    argTypes:
    - struct tr2_dst*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 302
    functionName: tr2_dst_try_unix_domain_socket
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - tr2_dst_want_warning
    - is_absolute_path
    - tr2_dst_try_uds_connect
    - tr2_dst_trace_disable
    - strerror
    - tr2_sysenv_display_name
    - strlen
    - warning
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int tr2_dst_try_unix_domain_socket(struct tr2_dst *dst,\n\t\t\t\t\t
      \ const char *tgt_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/git/trace2/tr2_dst.c:308,1
    - Dst: tr2_sysenv_display_name
      Src: /src/git/trace2/tr2_dst.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - tgt_value
    argTypes:
    - struct tr2_dst*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: tr2_dst_malformed_warning
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - tr2_sysenv_display_name
    - warning
    linkageType: ''
    returnType: void
    signature: "void tr2_dst_malformed_warning(struct tr2_dst *dst,\n\t\t\t\t      const
      char *tgt_value)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tr2_sysenv_get
      Src: /src/git/trace2/tr2_dst.c:322,1
    - Dst: strcmp
      Src: /src/git/trace2/tr2_dst.c:324,1
    - Dst: strcmp
      Src: /src/git/trace2/tr2_dst.c:324,1
    - Dst: strcasecmp
      Src: /src/git/trace2/tr2_dst.c:325,1
    - Dst: strcmp
      Src: /src/git/trace2/tr2_dst.c:330,1
    - Dst: strcasecmp
      Src: /src/git/trace2/tr2_dst.c:330,1
    - Dst: strlen
      Src: /src/git/trace2/tr2_dst.c:335,1
    - Dst: isdigit
      Src: /src/git/trace2/tr2_dst.c:335,1
    - Dst: atoi
      Src: /src/git/trace2/tr2_dst.c:336,1
    - Dst: is_absolute_path
      Src: /src/git/trace2/tr2_dst.c:340,1
    - Dst: is_directory
      Src: /src/git/trace2/tr2_dst.c:341,1
    - Dst: tr2_dst_try_auto_path
      Src: /src/git/trace2/tr2_dst.c:342,1
    - Dst: tr2_dst_try_path
      Src: /src/git/trace2/tr2_dst.c:344,1
    - Dst: starts_with
      Src: /src/git/trace2/tr2_dst.c:348,1
    - Dst: tr2_dst_try_unix_domain_socket
      Src: /src/git/trace2/tr2_dst.c:349,1
    - Dst: tr2_dst_malformed_warning
      Src: /src/git/trace2/tr2_dst.c:353,1
    - Dst: tr2_dst_trace_disable
      Src: /src/git/trace2/tr2_dst.c:354,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - dst
    argTypes:
    - struct tr2_dst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 312
    functionDepth: 6
    functionLinenumber: 312
    functionLinenumberEnd: 356
    functionName: tr2_dst_get_trace_fd
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - tr2_dst_try_unix_domain_socket
    - is_absolute_path
    - atoi
    - is_directory
    - tr2_dst_try_path
    - strcasecmp
    - tr2_dst_trace_disable
    - starts_with
    - isdigit
    - strlen
    - strcmp
    - tr2_sysenv_get
    - tr2_dst_try_auto_path
    - tr2_dst_malformed_warning
    linkageType: ''
    returnType: int
    signature: int tr2_dst_get_trace_fd(struct tr2_dst *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2_dst_get_trace_fd
      Src: /src/git/trace2/tr2_dst.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - struct tr2_dst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 7
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: tr2_dst_trace_want
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - tr2_dst_get_trace_fd
    linkageType: ''
    returnType: int
    signature: int tr2_dst_trace_want(struct tr2_dst *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2_dst_get_trace_fd
      Src: /src/git/trace2/tr2_dst.c:365,1
    - Dst: strbuf_complete_line
      Src: /src/git/trace2/tr2_dst.c:368,1
    - Dst: sigchain_push
      Src: /src/git/trace2/tr2_dst.c:385,1
    - Dst: write
      Src: /src/git/trace2/tr2_dst.c:386,1
    - Dst: sigchain_pop
      Src: /src/git/trace2/tr2_dst.c:387,1
    - Dst: tr2_dst_trace_disable
      Src: /src/git/trace2/tr2_dst.c:391,1
    - Dst: tr2_dst_want_warning
      Src: /src/git/trace2/tr2_dst.c:392,1
    - Dst: warning
      Src: /src/git/trace2/tr2_dst.c:393,1
    - Dst: tr2_sysenv_display_name
      Src: /src/git/trace2/tr2_dst.c:394,1
    - Dst: strerror
      Src: /src/git/trace2/tr2_dst.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - buf_line
    argTypes:
    - struct tr2_dst*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 363
    functionDepth: 7
    functionLinenumber: 363
    functionLinenumberEnd: 396
    functionName: tr2_dst_write_line
    functionSourceFile: /src/git/trace2/tr2_dst.c
    functionUses: 0
    functionsReached:
    - tr2_dst_want_warning
    - strbuf_complete_line
    - sigchain_push
    - write
    - sigchain_pop
    - tr2_dst_trace_disable
    - strerror
    - tr2_sysenv_display_name
    - tr2_dst_get_trace_fd
    - warning
    linkageType: ''
    returnType: void
    signature: void tr2_dst_write_line(struct tr2_dst *dst, struct strbuf *buf_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ns
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: NS_TO_SEC
    functionSourceFile: /src/git/trace2/tr2_tgt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NS_TO_SEC(ns)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2_dst_trace_want
      Src: /src/git/trace2/tr2_tgt_normal.c:31,1
    - Dst: tr2_sysenv_get
      Src: /src/git/trace2/tr2_tgt_normal.c:38,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/trace2/tr2_tgt_normal.c:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: fn_init
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - tr2_sysenv_get
    - git_parse_maybe_bool
    - tr2_dst_trace_want
    linkageType: ''
    returnType: int
    signature: int fn_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2_dst_trace_disable
      Src: /src/git/trace2/tr2_tgt_normal.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: fn_term
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 0
    functionsReached:
    - tr2_dst_trace_disable
    linkageType: ''
    returnType: void
    signature: void fn_term(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/trace2/tr2_tgt_normal.c:53,1
    - Dst: tr2_tbuf_local_time
      Src: /src/git/trace2/tr2_tgt_normal.c:58,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:59,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_normal.c:60,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:63,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_normal.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - file
    - line
    - buf
    argTypes:
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: normal_fmt_prepare
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 0
    functionsReached:
    - tr2_tbuf_local_time
    - strbuf_addf
    - strbuf_setlen
    - strbuf_addch
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void normal_fmt_prepare(const char *file, int line, struct strbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: normal_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_normal.c:74,1
    - Dst: strbuf_addbuf
      Src: /src/git/trace2/tr2_tgt_normal.c:75,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_normal.c:76,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - line
    - buf_payload
    argTypes:
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 8
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: normal_io_write_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 0
    functionsReached:
    - strbuf_addbuf
    - tr2_dst_write_line
    - normal_fmt_prepare
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: "void normal_io_write_fl(const char *file, int line,\n\t\t\t       const
      struct strbuf *buf_payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:84,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:85,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 9
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: fn_version_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void fn_version_fl(const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:94,1
    - Dst: sq_append_quote_argv_pretty
      Src: /src/git/trace2/tr2_tgt_normal.c:95,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:96,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - argv
    argTypes:
    - char*
    - int
    - uint64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 9
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: fn_start_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - normal_io_write_fl
    - strbuf_release
    - sq_append_quote_argv_pretty
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void fn_start_fl(const char *file, int line,\n\t\t\tuint64_t us_elapsed_absolute
      UNUSED, const char **argv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:106,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:107,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - code
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 9
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: fn_exit_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_exit_fl(const char *file, int line, uint64_t us_elapsed_absolute,\n\t\t
      \      int code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:116,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:118,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - us_elapsed_absolute
    - signo
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 9
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: fn_signal
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void fn_signal(uint64_t us_elapsed_absolute, int signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:127,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:128,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - us_elapsed_absolute
    - code
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 9
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: fn_atexit
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void fn_atexit(uint64_t us_elapsed_absolute, int code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/git/trace2/tr2_tgt_normal.c:138,1
    - Dst: strbuf_vaddf
      Src: /src/git/trace2/tr2_tgt_normal.c:139,1
    - Dst: va_end
      Src: /src/git/trace2/tr2_tgt_normal.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - fmt
    - ap
    argTypes:
    - struct strbuf*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: maybe_append_string_va
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 0
    functionsReached:
    - va_end
    - strbuf_vaddf
    - va_copy
    linkageType: ''
    returnType: void
    signature: "void maybe_append_string_va(struct strbuf *buf, const char *fmt,\n\t\t\t\t
      \  va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:150,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_normal.c:152,1
    - Dst: maybe_append_string_va
      Src: /src/git/trace2/tr2_tgt_normal.c:153,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:155,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 9
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: fn_error_va_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - maybe_append_string_va
    - strbuf_addch
    - strbuf_addstr
    - normal_io_write_fl
    linkageType: ''
    returnType: void
    signature: "void fn_error_va_fl(const char *file, int line, const char *fmt,\n\t\t\t
      \  va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:163,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:164,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - pathname
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 9
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: fn_command_path_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void fn_command_path_fl(const char *file, int line, const char *pathname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:174,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:176,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:179,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:182,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - file
    - line
    - parent_names
    argTypes:
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 9
    functionLinenumber: 168
    functionLinenumberEnd: 184
    functionName: fn_command_ancestry_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void fn_command_ancestry_fl(const char *file, int line, const char
      **parent_names)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:191,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:193,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:194,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - file
    - line
    - name
    - hierarchy
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 9
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: fn_command_name_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_command_name_fl(const char *file, int line, const char *name,\n\t\t\t
      \      const char *hierarchy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:202,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:203,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - mode
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 9
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: fn_command_mode_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void fn_command_mode_fl(const char *file, int line, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:212,1
    - Dst: sq_append_quote_argv_pretty
      Src: /src/git/trace2/tr2_tgt_normal.c:213,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:214,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - file
    - line
    - alias
    - argv
    argTypes:
    - char*
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 9
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: fn_alias_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - normal_io_write_fl
    - strbuf_release
    - sq_append_quote_argv_pretty
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_alias_fl(const char *file, int line, const char *alias,\n\t\t\tconst
      char **argv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:224,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:227,1
    - Dst: sq_quote_buf_pretty
      Src: /src/git/trace2/tr2_tgt_normal.c:228,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:229,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_normal.c:237,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:239,1
    - Dst: sq_append_quote_argv_pretty
      Src: /src/git/trace2/tr2_tgt_normal.c:240,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:242,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - cmd
    argTypes:
    - char*
    - int
    - uint64_t
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 218
    functionDepth: 9
    functionLinenumber: 218
    functionLinenumberEnd: 244
    functionName: fn_child_start_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - sq_append_quote_argv_pretty
    - strbuf_addf
    - strbuf_addch
    - sq_quote_buf_pretty
    - strbuf_addstr
    - normal_io_write_fl
    linkageType: ''
    returnType: void
    signature: "void fn_child_start_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute UNUSED,\n\t\t\t      const struct child_process *cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:254,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:256,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - cid
    - pid
    - code
    - us_elapsed_child
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 246
    functionDepth: 9
    functionLinenumber: 246
    functionLinenumberEnd: 258
    functionName: fn_child_exit_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_child_exit_fl(const char *file, int line,\n\t\t\t     uint64_t
      us_elapsed_absolute UNUSED,\n\t\t\t     int cid, int pid,\n\t\t\t     int code,
      uint64_t us_elapsed_child)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:268,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:270,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - cid
    - pid
    - ready
    - us_elapsed_child
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - int
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 260
    functionDepth: 9
    functionLinenumber: 260
    functionLinenumberEnd: 272
    functionName: fn_child_ready_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_child_ready_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute UNUSED,\n\t\t\t      int cid, int pid,\n\t\t\t      const
      char *ready, uint64_t us_elapsed_child)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:280,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:282,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_normal.c:283,1
    - Dst: sq_append_quote_argv_pretty
      Src: /src/git/trace2/tr2_tgt_normal.c:285,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:286,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - exec_id
    - exe
    - argv
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 9
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: fn_exec_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - sq_append_quote_argv_pretty
    - strbuf_addf
    - strbuf_addch
    - strbuf_addstr
    - normal_io_write_fl
    linkageType: ''
    returnType: void
    signature: "void fn_exec_fl(const char *file, int line,\n\t\t       uint64_t us_elapsed_absolute
      UNUSED,\n\t\t       int exec_id, const char *exe, const char **argv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:296,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:298,1
    - Dst: strerror
      Src: /src/git/trace2/tr2_tgt_normal.c:298,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:299,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - exec_id
    - code
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 9
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: fn_exec_result_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strerror
    - normal_io_write_fl
    - strbuf_addf
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: "void fn_exec_result_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute UNUSED,\n\t\t\t      int exec_id, int code)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: config_scope_name
      Src: /src/git/trace2/tr2_tgt_normal.c:308,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:310,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:312,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:313,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - file
    - line
    - param
    - value
    - kvi
    argTypes:
    - char*
    - int
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 9
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: fn_param_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    - config_scope_name
    linkageType: ''
    returnType: void
    signature: "void fn_param_fl(const char *file, int line, const char *param,\n\t\t\tconst
      char *value, const struct key_value_info *kvi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_normal.c:322,1
    - Dst: sq_quote_buf_pretty
      Src: /src/git/trace2/tr2_tgt_normal.c:323,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:324,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - line
    - repo
    argTypes:
    - char*
    - int
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 9
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: fn_repo_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - sq_quote_buf_pretty
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void fn_repo_fl(const char *file, int line,\n\t\t       const struct
      repository *repo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maybe_append_string_va
      Src: /src/git/trace2/tr2_tgt_normal.c:335,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:336,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - uint64_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 9
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: fn_printf_va_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - normal_io_write_fl
    - strbuf_release
    - maybe_append_string_va
    linkageType: ''
    returnType: void
    signature: "void fn_printf_va_fl(const char *file, int line,\n\t\t\t    uint64_t
      us_elapsed_absolute UNUSED,\n\t\t\t    const char *fmt,\n\t\t\t    va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NS_TO_SEC
      Src: /src/git/trace2/tr2_tgt_normal.c:346,1
    - Dst: NS_TO_SEC
      Src: /src/git/trace2/tr2_tgt_normal.c:347,1
    - Dst: NS_TO_SEC
      Src: /src/git/trace2/tr2_tgt_normal.c:348,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:350,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:357,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - meta
    - timer
    - is_final_data
    argTypes:
    - struct tr2_timer_metadata*
    - struct tr2_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 340
    functionDepth: 9
    functionLinenumber: 340
    functionLinenumberEnd: 359
    functionName: fn_timer
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - NS_TO_SEC
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_timer(const struct tr2_timer_metadata *meta,\n\t\t     const
      struct tr2_timer *timer,\n\t\t     int is_final_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_normal.c:368,1
    - Dst: normal_io_write_fl
      Src: /src/git/trace2/tr2_tgt_normal.c:372,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_normal.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - meta
    - counter
    - is_final_data
    argTypes:
    - struct tr2_counter_metadata*
    - struct tr2_counter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 361
    functionDepth: 9
    functionLinenumber: 361
    functionLinenumberEnd: 374
    functionName: fn_counter
    functionSourceFile: /src/git/trace2/tr2_tgt_normal.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - normal_io_write_fl
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_counter(const struct tr2_counter_metadata *meta,\n\t\t       const
      struct tr2_counter *counter,\n\t\t       int is_final_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tr2_dst_trace_want
      Src: /src/git/trace2/tr2_tgt_event.c:52,1
    - Dst: tr2_sysenv_get
      Src: /src/git/trace2/tr2_tgt_event.c:61,1
    - Dst: atoi
      Src: /src/git/trace2/tr2_tgt_event.c:62,1
    - Dst: tr2_sysenv_get
      Src: /src/git/trace2/tr2_tgt_event.c:65,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/trace2/tr2_tgt_event.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 8
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: fn_init
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - tr2_sysenv_get
    - git_parse_maybe_bool
    - atoi
    - tr2_dst_trace_want
    linkageType: ''
    returnType: int
    signature: int fn_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2_dst_trace_disable
      Src: /src/git/trace2/tr2_tgt_event.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: fn_term
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 0
    functionsReached:
    - tr2_dst_trace_disable
    linkageType: ''
    returnType: void
    signature: void fn_term(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tgt_event.c:92,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:95,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:96,1
    - Dst: tr2_sid_get
      Src: /src/git/trace2/tr2_tgt_event.c:96,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:97,1
    - Dst: strcmp
      Src: /src/git/trace2/tr2_tgt_event.c:102,1
    - Dst: strcmp
      Src: /src/git/trace2/tr2_tgt_event.c:103,1
    - Dst: tr2_tbuf_utc_datetime_extended
      Src: /src/git/trace2/tr2_tgt_event.c:104,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:105,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:109,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:110,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - event_name
    - file
    - line
    - repo
    - jw
    argTypes:
    - char*
    - char*
    - int
    - struct repository*
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 88
    functionDepth: 9
    functionLinenumber: 88
    functionLinenumberEnd: 115
    functionName: event_fmt_prepare
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 0
    functionsReached:
    - jw_object_string
    - tr2_sid_get
    - tr2tls_get_self
    - tr2_tbuf_utc_datetime_extended
    - jw_object_intmax
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void event_fmt_prepare(const char *event_name, const char *file,\n\t\t\t
      \     int line, const struct repository *repo,\n\t\t\t      struct json_writer
      *jw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:122,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:123,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:124,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:126,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 10
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: fn_too_many_files_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 0
    functionsReached:
    - jw_object_begin
    - jw_end
    - tr2_dst_write_line
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: void fn_too_many_files_fl(const char *file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:135,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:136,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:137,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:138,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:139,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:141,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:142,1
    - Dst: fn_too_many_files_fl
      Src: /src/git/trace2/tr2_tgt_event.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 11
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: fn_version_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - tr2_dst_write_line
    - fn_too_many_files_fl
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: void fn_version_fl(const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:155,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:156,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:157,1
    - Dst: jw_object_inline_begin_array
      Src: /src/git/trace2/tr2_tgt_event.c:158,1
    - Dst: jw_array_argv
      Src: /src/git/trace2/tr2_tgt_event.c:159,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:160,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:161,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:163,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - argv
    argTypes:
    - char*
    - int
    - uint64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 10
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: fn_start_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_end
    - jw_array_argv
    - jw_object_double
    - tr2_dst_write_line
    - jw_object_inline_begin_array
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_start_fl(const char *file, int line,\n\t\t\tuint64_t us_elapsed_absolute,
      const char **argv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:174,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:175,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:176,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:177,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:178,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:180,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - code
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 10
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: fn_exit_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_end
    - jw_object_double
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_exit_fl(const char *file, int line, uint64_t us_elapsed_absolute,\n\t\t
      \      int code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:190,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:191,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:192,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:193,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:194,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:196,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - us_elapsed_absolute
    - signo
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 184
    functionDepth: 10
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: fn_signal
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_end
    - jw_object_double
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: void fn_signal(uint64_t us_elapsed_absolute, int signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:206,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:207,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:208,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:209,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:210,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:212,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - us_elapsed_absolute
    - code
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 200
    functionDepth: 10
    functionLinenumber: 200
    functionLinenumberEnd: 214
    functionName: fn_atexit
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_end
    - jw_object_double
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: void fn_atexit(uint64_t us_elapsed_absolute, int code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/git/trace2/tr2_tgt_event.c:223,1
    - Dst: strbuf_vaddf
      Src: /src/git/trace2/tr2_tgt_event.c:224,1
    - Dst: va_end
      Src: /src/git/trace2/tr2_tgt_event.c:225,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:227,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_event.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - jw
    - field_name
    - fmt
    - ap
    argTypes:
    - struct json_writer*
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 231
    functionName: maybe_add_string_va
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_vaddf
    - va_copy
    - jw_object_string
    - va_end
    linkageType: ''
    returnType: void
    signature: "void maybe_add_string_va(struct json_writer *jw, const char *field_name,\n\t\t\t\tconst
      char *fmt, va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:239,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:240,1
    - Dst: maybe_add_string_va
      Src: /src/git/trace2/tr2_tgt_event.c:241,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:249,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:250,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:252,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 233
    functionDepth: 10
    functionLinenumber: 233
    functionLinenumberEnd: 254
    functionName: fn_error_va_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - maybe_add_string_va
    - tr2_dst_write_line
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_error_va_fl(const char *file, int line, const char *fmt,\n\t\t\t
      \  va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:261,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:262,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:263,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:264,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:266,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - file
    - line
    - pathname
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 10
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: fn_command_path_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - tr2_dst_write_line
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: void fn_command_path_fl(const char *file, int line, const char *pathname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:276,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:277,1
    - Dst: jw_object_inline_begin_array
      Src: /src/git/trace2/tr2_tgt_event.c:278,1
    - Dst: jw_array_string
      Src: /src/git/trace2/tr2_tgt_event.c:281,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:283,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:284,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:286,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - file
    - line
    - parent_names
    argTypes:
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 270
    functionDepth: 10
    functionLinenumber: 270
    functionLinenumberEnd: 288
    functionName: fn_command_ancestry_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_end
    - jw_array_string
    - tr2_dst_write_line
    - jw_object_inline_begin_array
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: void fn_command_ancestry_fl(const char *file, int line, const char
      **parent_names)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:296,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:297,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:298,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:300,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:301,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:303,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - file
    - line
    - name
    - hierarchy
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 10
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: fn_command_name_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - tr2_dst_write_line
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_command_name_fl(const char *file, int line, const char *name,\n\t\t\t
      \      const char *hierarchy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:312,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:313,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:314,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:315,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:317,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - file
    - line
    - mode
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 307
    functionDepth: 10
    functionLinenumber: 307
    functionLinenumberEnd: 319
    functionName: fn_command_mode_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - tr2_dst_write_line
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: void fn_command_mode_fl(const char *file, int line, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:327,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:328,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:329,1
    - Dst: jw_object_inline_begin_array
      Src: /src/git/trace2/tr2_tgt_event.c:330,1
    - Dst: jw_array_argv
      Src: /src/git/trace2/tr2_tgt_event.c:331,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:332,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:333,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:335,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - file
    - line
    - alias
    - argv
    argTypes:
    - char*
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 10
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: fn_alias_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - jw_array_argv
    - tr2_dst_write_line
    - jw_object_inline_begin_array
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_alias_fl(const char *file, int line, const char *alias,\n\t\t\tconst
      char **argv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:346,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:347,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:348,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:350,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:351,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:355,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:358,1
    - Dst: jw_object_bool
      Src: /src/git/trace2/tr2_tgt_event.c:359,1
    - Dst: jw_object_inline_begin_array
      Src: /src/git/trace2/tr2_tgt_event.c:360,1
    - Dst: jw_array_string
      Src: /src/git/trace2/tr2_tgt_event.c:362,1
    - Dst: jw_array_argv
      Src: /src/git/trace2/tr2_tgt_event.c:363,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:364,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:365,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:367,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - cmd
    argTypes:
    - char*
    - int
    - uint64_t
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 339
    functionDepth: 10
    functionLinenumber: 339
    functionLinenumberEnd: 369
    functionName: fn_child_start_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - jw_array_string
    - jw_array_argv
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_object_inline_begin_array
    - jw_release
    - event_fmt_prepare
    - jw_object_bool
    linkageType: ''
    returnType: void
    signature: "void fn_child_start_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute UNUSED,\n\t\t\t      const struct child_process *cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:380,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:381,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:382,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:383,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:384,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:385,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:386,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:388,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 7
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - cid
    - pid
    - code
    - us_elapsed_child
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 371
    functionDepth: 10
    functionLinenumber: 371
    functionLinenumberEnd: 391
    functionName: fn_child_exit_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_end
    - jw_object_double
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_child_exit_fl(const char *file, int line,\n\t\t\t     uint64_t
      us_elapsed_absolute UNUSED,\n\t\t\t     int cid, int pid,\n\t\t\t     int code,
      uint64_t us_elapsed_child)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:402,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:403,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:404,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:405,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:406,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:407,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:408,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:410,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 7
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - cid
    - pid
    - ready
    - us_elapsed_child
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - int
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 393
    functionDepth: 10
    functionLinenumber: 393
    functionLinenumberEnd: 413
    functionName: fn_child_ready_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - jw_object_double
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_child_ready_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute UNUSED,\n\t\t\t      int cid, int pid,\n\t\t\t      const
      char *ready, uint64_t us_elapsed_child)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:421,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:422,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:423,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:425,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - file
    - line
    - us_elapsed_absolute
    argTypes:
    - char*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 415
    functionDepth: 10
    functionLinenumber: 415
    functionLinenumberEnd: 427
    functionName: fn_thread_start_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_end
    - tr2_dst_write_line
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_thread_start_fl(const char *file, int line,\n\t\t\t       uint64_t
      us_elapsed_absolute UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:437,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:438,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:439,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:440,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:442,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - us_elapsed_thread
    argTypes:
    - char*
    - int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 429
    functionDepth: 10
    functionLinenumber: 429
    functionLinenumberEnd: 444
    functionName: fn_thread_exit_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_end
    - jw_object_double
    - tr2_dst_write_line
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_thread_exit_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute UNUSED,\n\t\t\t      uint64_t us_elapsed_thread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:453,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:454,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:455,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:457,1
    - Dst: jw_object_inline_begin_array
      Src: /src/git/trace2/tr2_tgt_event.c:458,1
    - Dst: jw_array_argv
      Src: /src/git/trace2/tr2_tgt_event.c:459,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:460,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:461,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:463,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - exec_id
    - exe
    - argv
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 446
    functionDepth: 10
    functionLinenumber: 446
    functionLinenumberEnd: 465
    functionName: fn_exec_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - jw_array_argv
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_object_inline_begin_array
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_exec_fl(const char *file, int line,\n\t\t       uint64_t us_elapsed_absolute
      UNUSED,\n\t\t       int exec_id, const char *exe, const char **argv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:474,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:475,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:476,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:477,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:478,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:480,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - exec_id
    - code
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 467
    functionDepth: 10
    functionLinenumber: 467
    functionLinenumberEnd: 482
    functionName: fn_exec_result_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_end
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_exec_result_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute UNUSED,\n\t\t\t      int exec_id, int code)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: config_scope_name
      Src: /src/git/trace2/tr2_tgt_event.c:490,1
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:492,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:493,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:494,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:495,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:497,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:498,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:500,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - file
    - line
    - param
    - value
    - kvi
    argTypes:
    - char*
    - int
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 484
    functionDepth: 10
    functionLinenumber: 484
    functionLinenumberEnd: 502
    functionName: fn_param_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - tr2_dst_write_line
    - config_scope_name
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_param_fl(const char *file, int line, const char *param,\n\t\t\tconst
      char *value, const struct key_value_info *kvi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:510,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:511,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:512,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:513,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:515,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - file
    - line
    - repo
    argTypes:
    - char*
    - int
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 504
    functionDepth: 10
    functionLinenumber: 504
    functionLinenumberEnd: 517
    functionName: fn_repo_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - tr2_dst_write_line
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_repo_fl(const char *file, int line,\n\t\t       const struct
      repository *repo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tgt_event.c:527,1
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:531,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:532,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:533,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:535,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:537,1
    - Dst: maybe_add_string_va
      Src: /src/git/trace2/tr2_tgt_event.c:538,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:539,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:541,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 8
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - category
    - label
    - repo
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - uint64_t
    - char*
    - char*
    - struct repository*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 519
    functionDepth: 10
    functionLinenumber: 519
    functionLinenumberEnd: 544
    functionName: fn_region_enter_printf_va_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - tr2tls_get_self
    - maybe_add_string_va
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_region_enter_printf_va_fl(const char *file, int line,\n\t\t\t\t\t
      uint64_t us_elapsed_absolute UNUSED,\n\t\t\t\t\t const char *category,\n\t\t\t\t\t
      const char *label,\n\t\t\t\t\t const struct repository *repo,\n\t\t\t\t\t const
      char *fmt, va_list ap)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tgt_event.c:552,1
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:557,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:558,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:559,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:560,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:562,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:564,1
    - Dst: maybe_add_string_va
      Src: /src/git/trace2/tr2_tgt_event.c:565,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:566,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:568,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 9
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - us_elapsed_region
    - category
    - label
    - repo
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - uint64_t
    - uint64_t
    - char*
    - char*
    - struct repository*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 546
    functionDepth: 10
    functionLinenumber: 546
    functionLinenumberEnd: 571
    functionName: fn_region_leave_printf_va_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - jw_object_double
    - tr2tls_get_self
    - maybe_add_string_va
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_region_leave_printf_va_fl(\n\tconst char *file, int line,
      uint64_t us_elapsed_absolute UNUSED,\n\tuint64_t us_elapsed_region, const char
      *category, const char *label,\n\tconst struct repository *repo, const char *fmt,
      va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tgt_event.c:579,1
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:585,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:586,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:587,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:588,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:589,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:590,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:591,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:592,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:593,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:595,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 8
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - us_elapsed_region
    - category
    - repo
    - key
    - value
    argTypes:
    - char*
    - int
    - uint64_t
    - uint64_t
    - char*
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 573
    functionDepth: 10
    functionLinenumber: 573
    functionLinenumberEnd: 598
    functionName: fn_data_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - jw_object_double
    - tr2tls_get_self
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_data_fl(const char *file, int line, uint64_t us_elapsed_absolute,\n\t\t
      \      uint64_t us_elapsed_region, const char *category,\n\t\t       const struct
      repository *repo, const char *key,\n\t\t       const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tgt_event.c:607,1
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:613,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:614,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:615,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:616,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:617,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:618,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:619,1
    - Dst: jw_object_sub_jw
      Src: /src/git/trace2/tr2_tgt_event.c:620,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:621,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:623,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 8
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - us_elapsed_region
    - category
    - repo
    - key
    - value
    argTypes:
    - char*
    - int
    - uint64_t
    - uint64_t
    - char*
    - struct repository*
    - char*
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 600
    functionDepth: 10
    functionLinenumber: 600
    functionLinenumberEnd: 626
    functionName: fn_data_json_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - jw_object_double
    - tr2tls_get_self
    - jw_release
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_object_sub_jw
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_data_json_fl(const char *file, int line,\n\t\t\t    uint64_t
      us_elapsed_absolute,\n\t\t\t    uint64_t us_elapsed_region, const char *category,\n\t\t\t
      \   const struct repository *repo, const char *key,\n\t\t\t    const struct
      json_writer *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:636,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:637,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:638,1
    - Dst: maybe_add_string_va
      Src: /src/git/trace2/tr2_tgt_event.c:639,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:640,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:642,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - uint64_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 628
    functionDepth: 10
    functionLinenumber: 628
    functionLinenumberEnd: 644
    functionName: fn_printf_va_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_end
    - jw_object_double
    - maybe_add_string_va
    - tr2_dst_write_line
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_printf_va_fl(const char *file, int line,\n\t\t\t    uint64_t
      us_elapsed_absolute,\n\t\t\t    const char *fmt, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NS_TO_SEC
      Src: /src/git/trace2/tr2_tgt_event.c:652,1
    - Dst: NS_TO_SEC
      Src: /src/git/trace2/tr2_tgt_event.c:653,1
    - Dst: NS_TO_SEC
      Src: /src/git/trace2/tr2_tgt_event.c:654,1
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:656,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:657,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:658,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:659,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:660,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:661,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:662,1
    - Dst: jw_object_double
      Src: /src/git/trace2/tr2_tgt_event.c:663,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:664,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:666,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - meta
    - timer
    - is_final_data
    argTypes:
    - struct tr2_timer_metadata*
    - struct tr2_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 646
    functionDepth: 10
    functionLinenumber: 646
    functionLinenumberEnd: 668
    functionName: fn_timer
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - jw_object_double
    - tr2_dst_write_line
    - jw_object_intmax
    - NS_TO_SEC
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_timer(const struct tr2_timer_metadata *meta,\n\t\t     const
      struct tr2_timer *timer,\n\t\t     int is_final_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jw_object_begin
      Src: /src/git/trace2/tr2_tgt_event.c:677,1
    - Dst: event_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_event.c:678,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:679,1
    - Dst: jw_object_string
      Src: /src/git/trace2/tr2_tgt_event.c:680,1
    - Dst: jw_object_intmax
      Src: /src/git/trace2/tr2_tgt_event.c:681,1
    - Dst: jw_end
      Src: /src/git/trace2/tr2_tgt_event.c:682,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_event.c:684,1
    - Dst: jw_release
      Src: /src/git/trace2/tr2_tgt_event.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - meta
    - counter
    - is_final_data
    argTypes:
    - struct tr2_counter_metadata*
    - struct tr2_counter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 670
    functionDepth: 10
    functionLinenumber: 670
    functionLinenumberEnd: 686
    functionName: fn_counter
    functionSourceFile: /src/git/trace2/tr2_tgt_event.c
    functionUses: 1
    functionsReached:
    - jw_object_begin
    - jw_object_string
    - jw_end
    - tr2_dst_write_line
    - jw_object_intmax
    - jw_release
    - event_fmt_prepare
    linkageType: ''
    returnType: void
    signature: "void fn_counter(const struct tr2_counter_metadata *meta,\n\t\t       const
      struct tr2_counter *counter,\n\t\t       int is_final_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/git/trace2/tr2_sid.c:36,1
    - Dst: tr2_tbuf_utc_datetime
      Src: /src/git/trace2/tr2_sid.c:41,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_sid.c:42,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_sid.c:44,1
    - Dst: xgethostname
      Src: /src/git/trace2/tr2_sid.c:45,1
    - Dst: strbuf_add
      Src: /src/git/trace2/tr2_sid.c:46,1
    - Dst: struct git_hash_algo*::init_fn
      Src: /src/git/trace2/tr2_sid.c:48,1
    - Dst: git_hash_update
      Src: /src/git/trace2/tr2_sid.c:49,1
    - Dst: strlen
      Src: /src/git/trace2/tr2_sid.c:49,1
    - Dst: git_hash_final
      Src: /src/git/trace2/tr2_sid.c:50,1
    - Dst: hash_to_hex_algop_r
      Src: /src/git/trace2/tr2_sid.c:51,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_sid.c:52,1
    - Dst: strbuf_add
      Src: /src/git/trace2/tr2_sid.c:53,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_sid.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 57
    functionName: tr2_sid_append_my_sid_component
    functionSourceFile: /src/git/trace2/tr2_sid.c
    functionUses: 0
    functionsReached:
    - hash_to_hex_algop_r
    - tr2_tbuf_utc_datetime
    - git_hash_final
    - strbuf_addf
    - strbuf_addch
    - xgethostname
    - strlen
    - strbuf_addstr
    - getpid
    - git_hash_update
    - struct git_hash_algo*::init_fn
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void tr2_sid_append_my_sid_component(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/trace2/tr2_sid.c:78,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_sid.c:85,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_sid.c:86,1
    - Dst: tr2_sid_append_my_sid_component
      Src: /src/git/trace2/tr2_sid.c:90,1
    - Dst: setenv
      Src: /src/git/trace2/tr2_sid.c:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 71
    functionDepth: 5
    functionLinenumber: 71
    functionLinenumberEnd: 93
    functionName: tr2_sid_compute
    functionSourceFile: /src/git/trace2/tr2_sid.c
    functionUses: 0
    functionsReached:
    - tr2_sid_append_my_sid_component
    - strbuf_addch
    - setenv
    - strbuf_addstr
    - getenv
    linkageType: ''
    returnType: void
    signature: void tr2_sid_compute(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2_sid_compute
      Src: /src/git/trace2/tr2_sid.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: tr2_sid_get
    functionSourceFile: /src/git/trace2/tr2_sid.c
    functionUses: 4
    functionsReached:
    - tr2_sid_compute
    linkageType: ''
    returnType: char
    signature: char *tr2_sid_get(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2_sid_compute
      Src: /src/git/trace2/tr2_sid.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: tr2_sid_depth
    functionSourceFile: /src/git/trace2/tr2_sid.c
    functionUses: 0
    functionsReached:
    - tr2_sid_compute
    linkageType: ''
    returnType: int
    signature: int tr2_sid_depth(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_sid.c: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: tr2_sid_release
    functionSourceFile: /src/git/trace2/tr2_sid.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void tr2_sid_release(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2_sysenv_get
      Src: /src/git/trace2/tr2_cfg.c:29,1
    - Dst: string_list_split_f
      Src: /src/git/trace2/tr2_cfg.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 5
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: tr2_cfg_load_patterns
    functionSourceFile: /src/git/trace2/tr2_cfg.c
    functionUses: 0
    functionsReached:
    - tr2_sysenv_get
    - string_list_split_f
    linkageType: ''
    returnType: size_t
    signature: size_t tr2_cfg_load_patterns(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/trace2/tr2_cfg.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: tr2_cfg_free_patterns
    functionSourceFile: /src/git/trace2/tr2_cfg.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    linkageType: ''
    returnType: void
    signature: void tr2_cfg_free_patterns(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2_sysenv_get
      Src: /src/git/trace2/tr2_cfg.c:57,1
    - Dst: string_list_split_f
      Src: /src/git/trace2/tr2_cfg.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 64
    functionName: tr2_load_env_vars
    functionSourceFile: /src/git/trace2/tr2_cfg.c
    functionUses: 0
    functionsReached:
    - tr2_sysenv_get
    - string_list_split_f
    linkageType: ''
    returnType: size_t
    signature: size_t tr2_load_env_vars(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_clear
      Src: /src/git/trace2/tr2_cfg.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: tr2_cfg_free_env_vars
    functionSourceFile: /src/git/trace2/tr2_cfg.c
    functionUses: 1
    functionsReached:
    - string_list_clear
    linkageType: ''
    returnType: void
    signature: void tr2_cfg_free_env_vars(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_string_list_item
      Src: /src/git/trace2/tr2_cfg.c:87,1
    - Dst: wildmatch
      Src: /src/git/trace2/tr2_cfg.c:88,1
    - Dst: trace2_def_param_fl
      Src: /src/git/trace2/tr2_cfg.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - ctx
    - d
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: tr2_cfg_cb
    functionSourceFile: /src/git/trace2/tr2_cfg.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - trace2_def_param_fl
    - wildmatch
    linkageType: ''
    returnType: int
    signature: "int tr2_cfg_cb(const char *key, const char *value,\n\t\t      const
      struct config_context *ctx, void *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2_cfg_load_patterns
      Src: /src/git/trace2/tr2_cfg.c:103,1
    - Dst: read_early_config
      Src: /src/git/trace2/tr2_cfg.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 17
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: tr2_cfg_list_config_fl
    functionSourceFile: /src/git/trace2/tr2_cfg.c
    functionUses: 1
    functionsReached:
    - tr2_cfg_load_patterns
    - read_early_config
    linkageType: ''
    returnType: void
    signature: void tr2_cfg_list_config_fl(const char *file, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kvi_from_param
      Src: /src/git/trace2/tr2_cfg.c:112,1
    - Dst: tr2_load_env_vars
      Src: /src/git/trace2/tr2_cfg.c:113,1
    - Dst: for_each_string_list_item
      Src: /src/git/trace2/tr2_cfg.c:116,1
    - Dst: getenv
      Src: /src/git/trace2/tr2_cfg.c:117,1
    - Dst: trace2_def_param_fl
      Src: /src/git/trace2/tr2_cfg.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 107
    functionDepth: 6
    functionLinenumber: 107
    functionLinenumberEnd: 121
    functionName: tr2_list_env_vars_fl
    functionSourceFile: /src/git/trace2/tr2_cfg.c
    functionUses: 1
    functionsReached:
    - for_each_string_list_item
    - kvi_from_param
    - tr2_load_env_vars
    - trace2_def_param_fl
    - getenv
    linkageType: ''
    returnType: void
    signature: void tr2_list_env_vars_fl(const char *file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2_cfg_load_patterns
      Src: /src/git/trace2/tr2_cfg.c:132,1
    - Dst: tr2_cfg_cb
      Src: /src/git/trace2/tr2_cfg.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - file
    - line
    - key
    - value
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 6
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: tr2_cfg_set_fl
    functionSourceFile: /src/git/trace2/tr2_cfg.c
    functionUses: 1
    functionsReached:
    - tr2_cfg_cb
    - tr2_cfg_load_patterns
    linkageType: ''
    returnType: void
    signature: "void tr2_cfg_set_fl(const char *file, int line, const char *key,\n\t\t
      \   const char *value)"
  - 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: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: MY_MAX
    functionSourceFile: /src/git/trace2/tr2_tmr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MY_MAX(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: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: MY_MIN
    functionSourceFile: /src/git/trace2/tr2_tmr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MY_MIN(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tmr.c:39,1
    - Dst: getnanotime
      Src: /src/git/trace2/tr2_tmr.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tid
    argTypes:
    - enum trace2_timer_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 9
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: tr2_start_timer
    functionSourceFile: /src/git/trace2/tr2_tmr.c
    functionUses: 1
    functionsReached:
    - getnanotime
    - tr2tls_get_self
    linkageType: ''
    returnType: void
    signature: void tr2_start_timer(enum trace2_timer_id tid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tmr.c:51,1
    - Dst: assert
      Src: /src/git/trace2/tr2_tmr.c:56,1
    - Dst: getnanotime
      Src: /src/git/trace2/tr2_tmr.c:62,1
    - Dst: MY_MIN
      Src: /src/git/trace2/tr2_tmr.c:77,1
    - Dst: MY_MAX
      Src: /src/git/trace2/tr2_tmr.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - tid
    argTypes:
    - enum trace2_timer_id
    assertStmts:
    - condition: (t->recursion_count > 0)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/git/trace2/tr2_tmr.c
    constantsTouched: []
    func_position:
      end: 86
      start: 49
    functionDepth: 9
    functionLinenumber: 49
    functionLinenumberEnd: 86
    functionName: tr2_stop_timer
    functionSourceFile: /src/git/trace2/tr2_tmr.c
    functionUses: 1
    functionsReached:
    - MY_MAX
    - assert
    - tr2tls_get_self
    - MY_MIN
    - getnanotime
    linkageType: ''
    returnType: void
    signature: void tr2_stop_timer(enum trace2_timer_id tid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tmr.c:90,1
    - Dst: MY_MIN
      Src: /src/git/trace2/tr2_tmr.c:126,1
    - Dst: MY_MAX
      Src: /src/git/trace2/tr2_tmr.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 88
    functionDepth: 9
    functionLinenumber: 88
    functionLinenumberEnd: 132
    functionName: tr2_update_final_timers
    functionSourceFile: /src/git/trace2/tr2_tmr.c
    functionUses: 2
    functionsReached:
    - MY_MAX
    - tr2tls_get_self
    - MY_MIN
    linkageType: ''
    returnType: void
    signature: void tr2_update_final_timers(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tmr.c:136,1
    - Dst: fn_apply
      Src: /src/git/trace2/tr2_tmr.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - fn_apply
    argTypes:
    - tr2_tgt_evt_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 9
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: tr2_emit_per_thread_timers
    functionSourceFile: /src/git/trace2/tr2_tmr.c
    functionUses: 2
    functionsReached:
    - fn_apply
    - tr2tls_get_self
    linkageType: ''
    returnType: void
    signature: void tr2_emit_per_thread_timers(tr2_tgt_evt_timer_t *fn_apply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fn_apply
      Src: /src/git/trace2/tr2_tmr.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fn_apply
    argTypes:
    - tr2_tgt_evt_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: tr2_emit_final_timers
    functionSourceFile: /src/git/trace2/tr2_tmr.c
    functionUses: 1
    functionsReached:
    - fn_apply
    linkageType: ''
    returnType: void
    signature: void tr2_emit_final_timers(tr2_tgt_evt_timer_t *fn_apply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: TR2_INDENT_LENGTH
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TR2_INDENT_LENGTH(ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr2_dst_trace_want
      Src: /src/git/trace2/tr2_tgt_perf.c:40,1
    - Dst: tr2_sysenv_get
      Src: /src/git/trace2/tr2_tgt_perf.c:47,1
    - Dst: git_parse_maybe_bool
      Src: /src/git/trace2/tr2_tgt_perf.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 8
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: fn_init
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - tr2_sysenv_get
    - git_parse_maybe_bool
    - tr2_dst_trace_want
    linkageType: ''
    returnType: int
    signature: int fn_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2_dst_trace_disable
      Src: /src/git/trace2/tr2_tgt_perf.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: fn_term
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 0
    functionsReached:
    - tr2_dst_trace_disable
    linkageType: ''
    returnType: void
    signature: void fn_term(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_setlen
      Src: /src/git/trace2/tr2_tgt_perf.c:77,1
    - Dst: tr2_tbuf_local_time
      Src: /src/git/trace2/tr2_tgt_perf.c:83,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:84,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:85,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:92,1
    - Dst: strbuf_addbuf
      Src: /src/git/trace2/tr2_tgt_perf.c:95,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:98,1
    - Dst: strbuf_add
      Src: /src/git/trace2/tr2_tgt_perf.c:99,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:104,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:108,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:110,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:113,1
    - Dst: tr2_sid_depth
      Src: /src/git/trace2/tr2_tgt_perf.c:113,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:114,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:120,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:122,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:123,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:126,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:129,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:132,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:135,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:137,1
    - Dst: strbuf_addchars
      Src: /src/git/trace2/tr2_tgt_perf.c:141,1
    - Dst: TR2_INDENT_LENGTH
      Src: /src/git/trace2/tr2_tgt_perf.c:141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 9
    argNames:
    - event_name
    - ctx
    - file
    - line
    - repo
    - p_us_elapsed_absolute
    - p_us_elapsed_relative
    - category
    - buf
    argTypes:
    - char*
    - struct tr2tls_thread_ctx*
    - char*
    - int
    - struct repository*
    - uint64_t*
    - uint64_t*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 68
    functionDepth: 7
    functionLinenumber: 68
    functionLinenumberEnd: 142
    functionName: perf_fmt_prepare
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 0
    functionsReached:
    - strbuf_addchars
    - strbuf_release
    - tr2_tbuf_local_time
    - TR2_INDENT_LENGTH
    - strbuf_addf
    - strbuf_setlen
    - strbuf_addch
    - strbuf_addbuf
    - tr2_sid_depth
    - strbuf_addstr
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void perf_fmt_prepare(const char *event_name,\n\t\t\t     struct tr2tls_thread_ctx
      *ctx, const char *file,\n\t\t\t     int line, const struct repository *repo,\n\t\t\t
      \    uint64_t *p_us_elapsed_absolute,\n\t\t\t     uint64_t *p_us_elapsed_relative,\n\t\t\t
      \    const char *category, struct strbuf *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr2tls_get_self
      Src: /src/git/trace2/tr2_tgt_perf.c:151,1
    - Dst: perf_fmt_prepare
      Src: /src/git/trace2/tr2_tgt_perf.c:154,1
    - Dst: strbuf_addbuf
      Src: /src/git/trace2/tr2_tgt_perf.c:157,1
    - Dst: tr2_dst_write_line
      Src: /src/git/trace2/tr2_tgt_perf.c:158,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - file
    - line
    - event_name
    - repo
    - p_us_elapsed_absolute
    - p_us_elapsed_relative
    - category
    - buf_payload
    argTypes:
    - char*
    - int
    - char*
    - struct repository*
    - uint64_t*
    - uint64_t*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 144
    functionDepth: 9
    functionLinenumber: 144
    functionLinenumberEnd: 160
    functionName: perf_io_write_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - perf_fmt_prepare
    - tr2tls_get_self
    - strbuf_addbuf
    - tr2_dst_write_line
    linkageType: ''
    returnType: void
    signature: "void perf_io_write_fl(const char *file, int line, const char *event_name,\n\t\t\t
      \    const struct repository *repo,\n\t\t\t     uint64_t *p_us_elapsed_absolute,\n\t\t\t
      \    uint64_t *p_us_elapsed_relative,\n\t\t\t     const char *category,\n\t\t\t
      \    const struct strbuf *buf_payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:167,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:169,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 10
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: fn_version_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void fn_version_fl(const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sq_append_quote_argv_pretty
      Src: /src/git/trace2/tr2_tgt_perf.c:180,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:182,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - argv
    argTypes:
    - char*
    - int
    - uint64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 10
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: fn_start_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - sq_append_quote_argv_pretty
    linkageType: ''
    returnType: void
    signature: "void fn_start_fl(const char *file, int line,\n\t\t\tuint64_t us_elapsed_absolute,
      const char **argv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:193,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:195,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - code
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 10
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: fn_exit_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_exit_fl(const char *file, int line, uint64_t us_elapsed_absolute,\n\t\t
      \      int code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:205,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:207,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - us_elapsed_absolute
    - signo
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 10
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: fn_signal
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void fn_signal(uint64_t us_elapsed_absolute, int signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:217,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:219,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - us_elapsed_absolute
    - code
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 10
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: fn_atexit
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: void fn_atexit(uint64_t us_elapsed_absolute, int code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/git/trace2/tr2_tgt_perf.c:230,1
    - Dst: strbuf_vaddf
      Src: /src/git/trace2/tr2_tgt_perf.c:231,1
    - Dst: va_end
      Src: /src/git/trace2/tr2_tgt_perf.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - fmt
    - ap
    argTypes:
    - struct strbuf*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: maybe_append_string_va
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 2
    functionsReached:
    - va_end
    - strbuf_vaddf
    - va_copy
    linkageType: ''
    returnType: void
    signature: "void maybe_append_string_va(struct strbuf *buf, const char *fmt,\n\t\t\t\t
      \  va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maybe_append_string_va
      Src: /src/git/trace2/tr2_tgt_perf.c:243,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:245,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 10
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: fn_error_va_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - maybe_append_string_va
    linkageType: ''
    returnType: void
    signature: "void fn_error_va_fl(const char *file, int line, const char *fmt,\n\t\t\t
      \  va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:255,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:257,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - pathname
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 10
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: fn_command_path_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void fn_command_path_fl(const char *file, int line, const char *pathname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:267,1
    - Dst: sq_append_quote_argv_pretty
      Src: /src/git/trace2/tr2_tgt_perf.c:269,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:270,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:272,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - file
    - line
    - parent_names
    argTypes:
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 262
    functionDepth: 10
    functionLinenumber: 262
    functionLinenumberEnd: 275
    functionName: fn_command_ancestry_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - sq_append_quote_argv_pretty
    - strbuf_addch
    - perf_io_write_fl
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void fn_command_ancestry_fl(const char *file, int line, const char
      **parent_names)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:283,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:285,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:287,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - file
    - line
    - name
    - hierarchy
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 277
    functionDepth: 10
    functionLinenumber: 277
    functionLinenumberEnd: 290
    functionName: fn_command_name_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addf
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void fn_command_name_fl(const char *file, int line, const char *name,\n\t\t\t
      \      const char *hierarchy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:297,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:299,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - mode
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 10
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: fn_command_mode_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: void fn_command_mode_fl(const char *file, int line, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:310,1
    - Dst: sq_append_quote_argv_pretty
      Src: /src/git/trace2/tr2_tgt_perf.c:311,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:312,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:314,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - file
    - line
    - alias
    - argv
    argTypes:
    - char*
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 10
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: fn_alias_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - sq_append_quote_argv_pretty
    - strbuf_addf
    - strbuf_addch
    - perf_io_write_fl
    linkageType: ''
    returnType: void
    signature: "void fn_alias_fl(const char *file, int line, const char *alias,\n\t\t\tconst
      char **argv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:327,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:332,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:337,1
    - Dst: sq_quote_buf_pretty
      Src: /src/git/trace2/tr2_tgt_perf.c:338,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:341,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:343,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:345,1
    - Dst: sq_append_quote_argv_pretty
      Src: /src/git/trace2/tr2_tgt_perf.c:347,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:348,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:350,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - cmd
    argTypes:
    - char*
    - int
    - uint64_t
    - struct child_process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 319
    functionDepth: 10
    functionLinenumber: 319
    functionLinenumberEnd: 353
    functionName: fn_child_start_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - sq_append_quote_argv_pretty
    - strbuf_addf
    - strbuf_addch
    - sq_quote_buf_pretty
    - perf_io_write_fl
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void fn_child_start_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute,\n\t\t\t      const struct child_process *cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:362,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:364,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - cid
    - pid
    - code
    - us_elapsed_child
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 355
    functionDepth: 10
    functionLinenumber: 355
    functionLinenumberEnd: 367
    functionName: fn_child_exit_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_child_exit_fl(const char *file, int line,\n\t\t\t     uint64_t
      us_elapsed_absolute, int cid, int pid,\n\t\t\t     int code, uint64_t us_elapsed_child)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:376,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:378,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - cid
    - pid
    - ready
    - us_elapsed_child
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - int
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 369
    functionDepth: 10
    functionLinenumber: 369
    functionLinenumberEnd: 381
    functionName: fn_child_ready_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_child_ready_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute, int cid, int pid,\n\t\t\t      const char *ready, uint64_t
      us_elapsed_child)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:389,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - line
    - us_elapsed_absolute
    argTypes:
    - char*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 383
    functionDepth: 10
    functionLinenumber: 383
    functionLinenumberEnd: 392
    functionName: fn_thread_start_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: "void fn_thread_start_fl(const char *file, int line,\n\t\t\t       uint64_t
      us_elapsed_absolute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:401,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - us_elapsed_thread
    argTypes:
    - char*
    - int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 394
    functionDepth: 10
    functionLinenumber: 394
    functionLinenumberEnd: 404
    functionName: fn_thread_exit_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: "void fn_thread_exit_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute,\n\t\t\t      uint64_t us_elapsed_thread)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:412,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:413,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:415,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:417,1
    - Dst: sq_append_quote_argv_pretty
      Src: /src/git/trace2/tr2_tgt_perf.c:419,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:420,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:422,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - exec_id
    - exe
    - argv
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 406
    functionDepth: 10
    functionLinenumber: 406
    functionLinenumberEnd: 425
    functionName: fn_exec_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - sq_append_quote_argv_pretty
    - strbuf_addf
    - strbuf_addch
    - perf_io_write_fl
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void fn_exec_fl(const char *file, int line, uint64_t us_elapsed_absolute,\n\t\t
      \      int exec_id, const char *exe, const char **argv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:434,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:436,1
    - Dst: strerror
      Src: /src/git/trace2/tr2_tgt_perf.c:436,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:438,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - exec_id
    - code
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 427
    functionDepth: 10
    functionLinenumber: 427
    functionLinenumberEnd: 441
    functionName: fn_exec_result_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strerror
    - strbuf_addf
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: "void fn_exec_result_fl(const char *file, int line,\n\t\t\t      uint64_t
      us_elapsed_absolute, int exec_id,\n\t\t\t      int code)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: config_scope_name
      Src: /src/git/trace2/tr2_tgt_perf.c:450,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:451,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:453,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:454,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:456,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:458,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - file
    - line
    - param
    - value
    - kvi
    argTypes:
    - char*
    - int
    - char*
    - char*
    - struct key_value_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 443
    functionDepth: 10
    functionLinenumber: 443
    functionLinenumberEnd: 460
    functionName: fn_param_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - strbuf_addf
    - perf_io_write_fl
    - strbuf_addstr
    - config_scope_name
    linkageType: ''
    returnType: void
    signature: "void fn_param_fl(const char *file, int line, const char *param,\n\t\t\tconst
      char *value, const struct key_value_info *kvi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_tgt_perf.c:468,1
    - Dst: sq_quote_buf_pretty
      Src: /src/git/trace2/tr2_tgt_perf.c:469,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:471,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - line
    - repo
    argTypes:
    - char*
    - int
    - struct repository*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 462
    functionDepth: 10
    functionLinenumber: 462
    functionLinenumberEnd: 474
    functionName: fn_repo_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - sq_quote_buf_pretty
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addstr
    linkageType: ''
    returnType: void
    signature: "void fn_repo_fl(const char *file, int line,\n\t\t       const struct
      repository *repo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:487,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:489,1
    - Dst: maybe_append_string_va
      Src: /src/git/trace2/tr2_tgt_perf.c:490,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:493,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 8
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - category
    - label
    - repo
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - uint64_t
    - char*
    - char*
    - struct repository*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 476
    functionDepth: 10
    functionLinenumber: 476
    functionLinenumberEnd: 496
    functionName: fn_region_enter_printf_va_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - maybe_append_string_va
    - strbuf_addf
    - strbuf_addch
    - perf_io_write_fl
    linkageType: ''
    returnType: void
    signature: "void fn_region_enter_printf_va_fl(const char *file, int line,\n\t\t\t\t\t
      uint64_t us_elapsed_absolute,\n\t\t\t\t\t const char *category,\n\t\t\t\t\t
      const char *label,\n\t\t\t\t\t const struct repository *repo,\n\t\t\t\t\t const
      char *fmt, va_list ap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:507,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_tgt_perf.c:509,1
    - Dst: maybe_append_string_va
      Src: /src/git/trace2/tr2_tgt_perf.c:510,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:513,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 9
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - us_elapsed_region
    - category
    - label
    - repo
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - uint64_t
    - uint64_t
    - char*
    - char*
    - struct repository*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 498
    functionDepth: 10
    functionLinenumber: 498
    functionLinenumberEnd: 516
    functionName: fn_region_leave_printf_va_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    - maybe_append_string_va
    - strbuf_addf
    - strbuf_addch
    - perf_io_write_fl
    linkageType: ''
    returnType: void
    signature: "void fn_region_leave_printf_va_fl(\n\tconst char *file, int line,
      uint64_t us_elapsed_absolute,\n\tuint64_t us_elapsed_region, const char *category,
      const char *label,\n\tconst struct repository *repo, const char *fmt, va_list
      ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:526,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:528,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - us_elapsed_region
    - category
    - repo
    - key
    - value
    argTypes:
    - char*
    - int
    - uint64_t
    - uint64_t
    - char*
    - struct repository*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 518
    functionDepth: 10
    functionLinenumber: 518
    functionLinenumberEnd: 531
    functionName: fn_data_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_data_fl(const char *file, int line, uint64_t us_elapsed_absolute,\n\t\t
      \      uint64_t us_elapsed_region, const char *category,\n\t\t       const struct
      repository *repo, const char *key,\n\t\t       const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:542,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:544,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - us_elapsed_region
    - category
    - repo
    - key
    - value
    argTypes:
    - char*
    - int
    - uint64_t
    - uint64_t
    - char*
    - struct repository*
    - char*
    - struct json_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 533
    functionDepth: 10
    functionLinenumber: 533
    functionLinenumberEnd: 547
    functionName: fn_data_json_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_data_json_fl(const char *file, int line,\n\t\t\t    uint64_t
      us_elapsed_absolute,\n\t\t\t    uint64_t us_elapsed_region, const char *category,\n\t\t\t
      \   const struct repository *repo, const char *key,\n\t\t\t    const struct
      json_writer *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maybe_append_string_va
      Src: /src/git/trace2/tr2_tgt_perf.c:556,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:558,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - file
    - line
    - us_elapsed_absolute
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - uint64_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 549
    functionDepth: 10
    functionLinenumber: 549
    functionLinenumberEnd: 561
    functionName: fn_printf_va_fl
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - maybe_append_string_va
    linkageType: ''
    returnType: void
    signature: "void fn_printf_va_fl(const char *file, int line,\n\t\t\t    uint64_t
      us_elapsed_absolute, const char *fmt,\n\t\t\t    va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NS_TO_SEC
      Src: /src/git/trace2/tr2_tgt_perf.c:569,1
    - Dst: NS_TO_SEC
      Src: /src/git/trace2/tr2_tgt_perf.c:570,1
    - Dst: NS_TO_SEC
      Src: /src/git/trace2/tr2_tgt_perf.c:571,1
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:573,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:580,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - meta
    - timer
    - is_final_data
    argTypes:
    - struct tr2_timer_metadata*
    - struct tr2_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 563
    functionDepth: 10
    functionLinenumber: 563
    functionLinenumberEnd: 583
    functionName: fn_timer
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - NS_TO_SEC
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_timer(const struct tr2_timer_metadata *meta,\n\t\t     const
      struct tr2_timer *timer,\n\t\t     int is_final_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/trace2/tr2_tgt_perf.c:592,1
    - Dst: perf_io_write_fl
      Src: /src/git/trace2/tr2_tgt_perf.c:596,1
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_tgt_perf.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - meta
    - counter
    - is_final_data
    argTypes:
    - struct tr2_counter_metadata*
    - struct tr2_counter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 585
    functionDepth: 10
    functionLinenumber: 585
    functionLinenumberEnd: 599
    functionName: fn_counter
    functionSourceFile: /src/git/trace2/tr2_tgt_perf.c
    functionUses: 1
    functionsReached:
    - perf_io_write_fl
    - strbuf_release
    - strbuf_addf
    linkageType: ''
    returnType: void
    signature: "void fn_counter(const struct tr2_counter_metadata *meta,\n\t\t       const
      struct tr2_counter *counter,\n\t\t       int is_final_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/git/trace2/tr2_tbuf.c:10,1
    - Dst: localtime_r
      Src: /src/git/trace2/tr2_tbuf.c:12,1
    - Dst: xsnprintf
      Src: /src/git/trace2/tr2_tbuf.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tb
    argTypes:
    - struct tr2_tbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 4
    functionDepth: 2
    functionLinenumber: 4
    functionLinenumberEnd: 16
    functionName: tr2_tbuf_local_time
    functionSourceFile: /src/git/trace2/tr2_tbuf.c
    functionUses: 2
    functionsReached:
    - gettimeofday
    - localtime_r
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tr2_tbuf_local_time(struct tr2_tbuf *tb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/git/trace2/tr2_tbuf.c:24,1
    - Dst: gmtime_r
      Src: /src/git/trace2/tr2_tbuf.c:26,1
    - Dst: xsnprintf
      Src: /src/git/trace2/tr2_tbuf.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tb
    argTypes:
    - struct tr2_tbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: tr2_tbuf_utc_datetime_extended
    functionSourceFile: /src/git/trace2/tr2_tbuf.c
    functionUses: 1
    functionsReached:
    - gettimeofday
    - gmtime_r
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tr2_tbuf_utc_datetime_extended(struct tr2_tbuf *tb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/git/trace2/tr2_tbuf.c:40,1
    - Dst: gmtime_r
      Src: /src/git/trace2/tr2_tbuf.c:42,1
    - Dst: xsnprintf
      Src: /src/git/trace2/tr2_tbuf.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tb
    argTypes:
    - struct tr2_tbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: tr2_tbuf_utc_datetime
    functionSourceFile: /src/git/trace2/tr2_tbuf.c
    functionUses: 1
    functionsReached:
    - gettimeofday
    - gmtime_r
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tr2_tbuf_utc_datetime(struct tr2_tbuf *tb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: starts_with
      Src: /src/git/trace2/tr2_sysenv.c:68,1
    - Dst: ARRAY_SIZE
      Src: /src/git/trace2/tr2_sysenv.c:71,1
    - Dst: strcmp
      Src: /src/git/trace2/tr2_sysenv.c:72,1
    - Dst: config_error_nonbool
      Src: /src/git/trace2/tr2_sysenv.c:74,1
    - Dst: free
      Src: /src/git/trace2/tr2_sysenv.c:75,1
    - Dst: xstrdup
      Src: /src/git/trace2/tr2_sysenv.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - key
    - value
    - UNUSED
    - UNUSED
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: tr2_sysenv_cb
    functionSourceFile: /src/git/trace2/tr2_sysenv.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - starts_with
    - strcmp
    - free
    - config_error_nonbool
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int tr2_sysenv_cb(const char *key, const char *value,\n\t\t\t const
      struct config_context *ctx UNUSED,\n\t\t\t void *d UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/trace2/tr2_sysenv.c:93,1
    - Dst: BUG
      Src: /src/git/trace2/tr2_sysenv.c:94,1
    - Dst: read_very_early_config
      Src: /src/git/trace2/tr2_sysenv.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 17
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: tr2_sysenv_load
    functionSourceFile: /src/git/trace2/tr2_sysenv.c
    functionUses: 1
    functionsReached:
    - read_very_early_config
    - ARRAY_SIZE
    - BUG
    linkageType: ''
    returnType: void
    signature: void tr2_sysenv_load(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/trace2/tr2_sysenv.c:106,1
    - Dst: getenv
      Src: /src/git/trace2/tr2_sysenv.c:109,1
    - Dst: free
      Src: /src/git/trace2/tr2_sysenv.c:111,1
    - Dst: xstrdup
      Src: /src/git/trace2/tr2_sysenv.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - var
    argTypes:
    - enum tr2_sysenv_variable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: tr2_sysenv_get
    functionSourceFile: /src/git/trace2/tr2_sysenv.c
    functionUses: 8
    functionsReached:
    - getenv
    - BUG
    - xstrdup
    - free
    linkageType: ''
    returnType: char
    signature: char *tr2_sysenv_get(enum tr2_sysenv_variable var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/trace2/tr2_sysenv.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - var
    argTypes:
    - enum tr2_sysenv_variable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: tr2_sysenv_display_name
    functionSourceFile: /src/git/trace2/tr2_sysenv.c
    functionUses: 5
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char *tr2_sysenv_display_name(enum tr2_sysenv_variable var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/trace2/tr2_sysenv.c:136,1
    - Dst: free
      Src: /src/git/trace2/tr2_sysenv.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: tr2_sysenv_release
    functionSourceFile: /src/git/trace2/tr2_sysenv.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - free
    linkageType: ''
    returnType: void
    signature: void tr2_sysenv_release(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/git/trace2/tr2_cmd_name.c:11,1
    - Dst: strbuf_reset
      Src: /src/git/trace2/tr2_cmd_name.c:13,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_cmd_name.c:15,1
    - Dst: strbuf_addch
      Src: /src/git/trace2/tr2_cmd_name.c:16,1
    - Dst: strbuf_addstr
      Src: /src/git/trace2/tr2_cmd_name.c:18,1
    - Dst: setenv
      Src: /src/git/trace2/tr2_cmd_name.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 9
    functionDepth: 4
    functionLinenumber: 9
    functionLinenumberEnd: 21
    functionName: tr2_cmd_name_append_hierarchy
    functionSourceFile: /src/git/trace2/tr2_cmd_name.c
    functionUses: 1
    functionsReached:
    - strbuf_reset
    - strbuf_addch
    - setenv
    - strbuf_addstr
    - getenv
    linkageType: ''
    returnType: void
    signature: void tr2_cmd_name_append_hierarchy(const char *name)
  - 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: tr2_cmd_name_get_hierarchy
    functionSourceFile: /src/git/trace2/tr2_cmd_name.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *tr2_cmd_name_get_hierarchy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/trace2/tr2_cmd_name.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: tr2_cmd_name_release
    functionSourceFile: /src/git/trace2/tr2_cmd_name.c
    functionUses: 1
    functionsReached:
    - strbuf_release
    linkageType: ''
    returnType: void
    signature: void tr2_cmd_name_release(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/git/sha256/openssl.h:14,1
    - Dst: EVP_MD_CTX_new
      Src: /src/git/sha256/openssl.h:16,1
    - Dst: die
      Src: /src/git/sha256/openssl.h:18,1
    - Dst: EVP_DigestInit_ex
      Src: /src/git/sha256/openssl.h:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct openssl_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: openssl_SHA256_Init
    functionSourceFile: /src/git/sha256/openssl.h
    functionUses: 0
    functionsReached:
    - die
    - EVP_DigestInit_ex
    - EVP_sha256
    - EVP_MD_CTX_new
    linkageType: ''
    returnType: void
    signature: void openssl_SHA256_Init(struct openssl_SHA256_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/git/sha256/openssl.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - struct openssl_SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: openssl_SHA256_Update
    functionSourceFile: /src/git/sha256/openssl.h
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: void
    signature: "void openssl_SHA256_Update(struct openssl_SHA256_CTX *ctx,\n\t\t\t\t\tconst
      void *data,\n\t\t\t\t\tsize_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/git/sha256/openssl.h:33,1
    - Dst: EVP_MD_CTX_free
      Src: /src/git/sha256/openssl.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - struct openssl_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: openssl_SHA256_Final
    functionSourceFile: /src/git/sha256/openssl.h
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: "void openssl_SHA256_Final(unsigned char *digest,\n\t\t\t\t       struct
      openssl_SHA256_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/git/sha256/openssl.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct openssl_SHA256_CTX*
    - struct openssl_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: openssl_SHA256_Clone
    functionSourceFile: /src/git/sha256/openssl.h
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_copy_ex
    linkageType: ''
    returnType: void
    signature: "void openssl_SHA256_Clone(struct openssl_SHA256_CTX *dst,\n\t\t\t\t\tconst
      struct openssl_SHA256_CTX *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_init
      Src: /src/git/sha256/nettle.h:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - nettle_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: nettle_SHA256_Init
    functionSourceFile: /src/git/sha256/nettle.h
    functionUses: 0
    functionsReached:
    - sha256_init
    linkageType: ''
    returnType: void
    signature: void nettle_SHA256_Init(nettle_SHA256_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_update
      Src: /src/git/sha256/nettle.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - nettle_SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: nettle_SHA256_Update
    functionSourceFile: /src/git/sha256/nettle.h
    functionUses: 0
    functionsReached:
    - sha256_update
    linkageType: ''
    returnType: void
    signature: "void nettle_SHA256_Update(nettle_SHA256_CTX *ctx,\n\t\t\t\t\tconst
      void *data,\n\t\t\t\t\tsize_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_digest
      Src: /src/git/sha256/nettle.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - nettle_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: nettle_SHA256_Final
    functionSourceFile: /src/git/sha256/nettle.h
    functionUses: 0
    functionsReached:
    - sha256_digest
    linkageType: ''
    returnType: void
    signature: "void nettle_SHA256_Final(unsigned char *digest,\n\t\t\t\t       nettle_SHA256_CTX
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/git/sha256/gcrypt.h:12,1
    - Dst: die
      Src: /src/git/sha256/gcrypt.h:14,1
    - Dst: gcry_strerror
      Src: /src/git/sha256/gcrypt.h:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - gcrypt_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: gcrypt_SHA256_Init
    functionSourceFile: /src/git/sha256/gcrypt.h
    functionUses: 0
    functionsReached:
    - gcry_md_open
    - die
    - gcry_strerror
    linkageType: ''
    returnType: void
    signature: void gcrypt_SHA256_Init(gcrypt_SHA256_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_write
      Src: /src/git/sha256/gcrypt.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - gcrypt_SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: gcrypt_SHA256_Update
    functionSourceFile: /src/git/sha256/gcrypt.h
    functionUses: 0
    functionsReached:
    - gcry_md_write
    linkageType: ''
    returnType: void
    signature: void gcrypt_SHA256_Update(gcrypt_SHA256_CTX *ctx, const void *data,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/sha256/gcrypt.h:24,1
    - Dst: gcry_md_read
      Src: /src/git/sha256/gcrypt.h:24,1
    - Dst: gcry_md_close
      Src: /src/git/sha256/gcrypt.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - gcrypt_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: gcrypt_SHA256_Final
    functionSourceFile: /src/git/sha256/gcrypt.h
    functionUses: 0
    functionsReached:
    - gcry_md_read
    - gcry_md_close
    - memcpy
    linkageType: ''
    returnType: void
    signature: void gcrypt_SHA256_Final(unsigned char *digest, gcrypt_SHA256_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_copy
      Src: /src/git/sha256/gcrypt.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - gcrypt_SHA256_CTX*
    - gcrypt_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: gcrypt_SHA256_Clone
    functionSourceFile: /src/git/sha256/gcrypt.h
    functionUses: 0
    functionsReached:
    - gcry_md_copy
    linkageType: ''
    returnType: void
    signature: void gcrypt_SHA256_Clone(gcrypt_SHA256_CTX *dst, const gcrypt_SHA256_CTX
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - blk_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 21
    functionName: blk_SHA256_Init
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void blk_SHA256_Init(blk_SHA256_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - uint32_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: ror
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 1053
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ror(uint32_t x, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: ch
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 826
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ch(uint32_t x, uint32_t y, uint32_t z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: maj
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t maj(uint32_t x, uint32_t y, uint32_t z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ror
      Src: /src/git/sha256/block/sha256.c:40,1
    - Dst: ror
      Src: /src/git/sha256/block/sha256.c:40,1
    - Dst: ror
      Src: /src/git/sha256/block/sha256.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: sigma0
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 0
    functionsReached:
    - ror
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sigma0(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ror
      Src: /src/git/sha256/block/sha256.c:45,1
    - Dst: ror
      Src: /src/git/sha256/block/sha256.c:45,1
    - Dst: ror
      Src: /src/git/sha256/block/sha256.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: sigma1
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 0
    functionsReached:
    - ror
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sigma1(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ror
      Src: /src/git/sha256/block/sha256.c:50,1
    - Dst: ror
      Src: /src/git/sha256/block/sha256.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: gamma0
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 0
    functionsReached:
    - ror
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t gamma0(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ror
      Src: /src/git/sha256/block/sha256.c:55,1
    - Dst: ror
      Src: /src/git/sha256/block/sha256.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: gamma1
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 0
    functionsReached:
    - ror
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t gamma1(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_be32
      Src: /src/git/sha256/block/sha256.c:70,1
    - Dst: gamma1
      Src: /src/git/sha256/block/sha256.c:74,1
    - Dst: gamma0
      Src: /src/git/sha256/block/sha256.c:74,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:82,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:83,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:84,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:85,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:86,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:87,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:88,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:89,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:90,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:91,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:92,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:93,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:94,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:95,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:96,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:97,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:98,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:99,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:100,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:101,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:102,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:103,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:104,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:105,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:106,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:107,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:108,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:109,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:110,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:111,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:112,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:113,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:114,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:115,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:116,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:117,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:118,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:119,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:120,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:121,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:122,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:123,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:124,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:125,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:126,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:127,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:128,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:129,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:130,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:131,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:132,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:133,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:134,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:135,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:136,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:137,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:138,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:139,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:140,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:141,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:142,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:143,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:144,1
    - Dst: RND
      Src: /src/git/sha256/block/sha256.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 73
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - blk_SHA256_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 149
    functionName: blk_SHA256_Transform
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 0
    functionsReached:
    - RND
    - gamma1
    - gamma0
    - get_be32
    linkageType: ''
    returnType: void
    signature: void blk_SHA256_Transform(blk_SHA256_CTX *ctx, const unsigned char
      *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - ki
    - )
    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: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: RND
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RND(a,b,c,d,e,f,g,h,i,ki)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/sha256/block/sha256.c:162,1
    - Dst: blk_SHA256_Transform
      Src: /src/git/sha256/block/sha256.c:168,1
    - Dst: blk_SHA256_Transform
      Src: /src/git/sha256/block/sha256.c:171,1
    - Dst: memcpy
      Src: /src/git/sha256/block/sha256.c:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - blk_SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 177
    functionName: blk_SHA256_Update
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 0
    functionsReached:
    - blk_SHA256_Transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void blk_SHA256_Update(blk_SHA256_CTX *ctx, const void *data, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/git/sha256/block/sha256.c:186,1
    - Dst: htonl
      Src: /src/git/sha256/block/sha256.c:187,1
    - Dst: blk_SHA256_Update
      Src: /src/git/sha256/block/sha256.c:190,1
    - Dst: blk_SHA256_Update
      Src: /src/git/sha256/block/sha256.c:191,1
    - Dst: put_be32
      Src: /src/git/sha256/block/sha256.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char*
    - blk_SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 196
    functionName: blk_SHA256_Final
    functionSourceFile: /src/git/sha256/block/sha256.c
    functionUses: 0
    functionsReached:
    - put_be32
    - blk_SHA256_Update
    - htonl
    linkageType: ''
    returnType: void
    signature: void blk_SHA256_Final(unsigned char *digest, blk_SHA256_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:83,1
    - Dst: g_strdup_printf
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: make_label
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: char
    signature: char *make_label(struct credential *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:92,1
    - Dst: g_hash_table_insert
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:95,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:95,1
    - Dst: g_hash_table_insert
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:97,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:97,1
    - Dst: g_hash_table_insert
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:99,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:99,1
    - Dst: g_hash_table_insert
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:101,1
    - Dst: g_strdup_printf
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:101,1
    - Dst: g_hash_table_insert
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:103,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: make_attr_list
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_strdup
    - g_strdup_printf
    - g_hash_table_new_full
    linkageType: ''
    returnType: GHashTable
    signature: GHashTable *make_attr_list(struct credential *c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: secret_service_get_sync
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:118,1
    - Dst: g_critical
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:120,1
    - Dst: g_error_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:121,1
    - Dst: make_attr_list
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:125,1
    - Dst: secret_service_search_sync
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:126,1
    - Dst: g_hash_table_unref
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:132,1
    - Dst: g_critical
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:134,1
    - Dst: g_error_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:135,1
    - Dst: secret_item_get_secret
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:146,1
    - Dst: secret_item_get_attributes
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:147,1
    - Dst: g_hash_table_lookup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:149,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:151,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:152,1
    - Dst: secret_value_get_text
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:155,1
    - Dst: g_strsplit
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:163,1
    - Dst: g_strv_length
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:164,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:165,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:166,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:168,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:169,1
    - Dst: g_strv_length
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:171,1
    - Dst: g_str_has_prefix
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:172,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:173,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:174,1
    - Dst: g_str_has_prefix
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:175,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:176,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:177,1
    - Dst: g_strfreev
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:180,1
    - Dst: g_hash_table_unref
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:183,1
    - Dst: secret_value_unref
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:184,1
    - Dst: g_list_free_full
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:185,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 189
    functionName: keyring_get
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 0
    functionsReached:
    - g_critical
    - g_hash_table_lookup
    - secret_item_get_attributes
    - secret_value_get_text
    - secret_value_unref
    - g_list_free_full
    - g_hash_table_unref
    - g_error_free
    - secret_service_get_sync
    - g_strsplit
    - secret_service_search_sync
    - g_free
    - g_strdup
    - g_strv_length
    - g_str_has_prefix
    - make_attr_list
    - secret_item_get_secret
    - g_strfreev
    linkageType: ''
    returnType: int
    signature: int keyring_get(struct credential *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: make_label
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:210,1
    - Dst: make_attr_list
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:211,1
    - Dst: g_string_new
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:212,1
    - Dst: g_string_append_printf
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:214,1
    - Dst: g_string_append_printf
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:218,1
    - Dst: secret_password_storev_sync
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:221,1
    - Dst: g_string_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:228,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:229,1
    - Dst: g_hash_table_unref
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:230,1
    - Dst: g_critical
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:233,1
    - Dst: g_error_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 239
    functionName: keyring_store
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 0
    functionsReached:
    - g_critical
    - make_label
    - g_string_free
    - g_string_new
    - g_string_append_printf
    - g_hash_table_unref
    - g_error_free
    - g_free
    - secret_password_storev_sync
    - make_attr_list
    linkageType: ''
    returnType: int
    signature: int keyring_store(struct credential *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:259,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:260,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:262,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:263,1
    - Dst: keyring_get
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:264,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:265,1
    - Dst: credential_clear
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:266,1
    - Dst: credential_clear
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:269,1
    - Dst: make_attr_list
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:272,1
    - Dst: secret_password_clearv_sync
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:273,1
    - Dst: g_hash_table_unref
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:277,1
    - Dst: g_critical
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:280,1
    - Dst: g_error_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 286
    functionName: keyring_erase
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 0
    functionsReached:
    - g_critical
    - make_attr_list
    - keyring_get
    - g_hash_table_unref
    - g_error_free
    - credential_clear
    - strcmp
    - g_strdup
    - secret_password_clearv_sync
    linkageType: ''
    returnType: int
    signature: int keyring_erase(struct credential *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: credential_init
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void credential_init(struct credential *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:308,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:309,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:310,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:311,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:312,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:313,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:314,1
    - Dst: credential_init
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 317
    functionName: credential_clear
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 12
    functionsReached:
    - credential_init
    - g_free
    linkageType: ''
    returnType: void
    signature: void credential_clear(struct credential *c)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getline
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:327,1
    - Dst: strchr
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:336,1
    - Dst: g_warning
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:338,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:339,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:344,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:345,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:346,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:347,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:348,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:349,1
    - Dst: strrchr
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:350,1
    - Dst: atoi
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:353,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:355,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:356,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:357,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:358,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:359,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:360,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:361,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:362,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:363,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:364,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:365,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:366,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:369,1
    - Dst: g_free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:370,1
    - Dst: g_strdup
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:371,1
    - Dst: free
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:382,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 385
    functionName: credential_read
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 4
    functionsReached:
    - atoi
    - strrchr
    - getline
    - g_warning
    - strchr
    - g_free
    - strcmp
    - free
    - g_strdup
    linkageType: ''
    returnType: int
    signature: int credential_read(struct credential *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fp
    - key
    - value
    argTypes:
    - FILE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 392
    functionName: credential_write_item
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void credential_write_item(FILE *fp, const char *key, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: credential_write_item
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:397,1
    - Dst: credential_write_item
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:398,1
    - Dst: credential_write_item
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:399,1
    - Dst: credential_write_item
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct credential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 403
    functionName: credential_write
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 2
    functionsReached:
    - credential_write_item
    linkageType: ''
    returnType: void
    signature: void credential_write(const struct credential *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:408,1
    - Dst: fprintf
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:411,1
    - Dst: fprintf
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:413,1
    - Dst: fprintf
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:415,1
    - Dst: fprintf
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 418
    functionName: usage
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 66
    functionsReached:
    - fprintf
    - strrchr
    linkageType: ''
    returnType: void
    signature: void usage(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:428,1
    - Dst: exit
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:429,1
    - Dst: g_set_application_name
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:432,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:435,1
    - Dst: credential_read
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:442,1
    - Dst: credential_write
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:449,1
    - Dst: credential_clear
      Src: /src/git/contrib/credential/libsecret/git-credential-libsecret.c:452,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 454
    functionName: main
    functionSourceFile: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    functionUses: 6
    functionsReached:
    - g_set_application_name
    - credential_write
    - exit
    - usage
    - credential_clear
    - strcmp
    - credential_read
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:23,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:27,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:31,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:35,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:39,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:43,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:47,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 50
    functionName: clear_credential
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - CFRelease
    linkageType: ''
    returnType: void
    signature: void clear_credential(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: STRING_WITH_LENGTH
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_WITH_LENGTH(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CFDictionaryCreateMutable
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:60,1
    - Dst: va_start
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:66,1
    - Dst: va_arg
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:67,1
    - Dst: va_arg
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:69,1
    - Dst: CFDictionarySetValue
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:71,1
    - Dst: va_end
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - CFAllocatorRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 76
    functionName: create_dictionary
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_arg
    - CFDictionarySetValue
    - va_start
    - CFDictionaryCreateMutable
    linkageType: ''
    returnType: CFDictionaryRef
    signature: CFDictionaryRef create_dictionary(CFAllocatorRef allocator, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: CREATE_SEC_ATTRIBUTES
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_SEC_ATTRIBUTES(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:92,1
    - Dst: fwrite
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:93,1
    - Dst: putchar
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - what
    - buf
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: write_item
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 2
    functionsReached:
    - fwrite
    - printf
    - putchar
    linkageType: ''
    returnType: void
    signature: void write_item(const char *what, const char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:101,1
    - Dst: strbuf_add
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:102,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:102,1
    - Dst: strbuf_add
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - sb
    - what
    - buf
    - n
    argTypes:
    - struct strbuf*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: write_item_strbuf
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - strlen
    - strbuf_add
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void write_item_strbuf(struct strbuf *sb, const char *what, const char
      *buf, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CFStringGetMaximumSizeForEncoding
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:113,1
    - Dst: CFStringGetLength
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:113,1
    - Dst: xmalloc
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:114,1
    - Dst: CFStringGetCString
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:115,1
    - Dst: write_item_strbuf
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:116,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:116,1
    - Dst: free
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sb
    - what
    - ref
    argTypes:
    - struct strbuf*
    - char*
    - CFStringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: write_item_strbuf_cfstring
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - CFStringGetCString
    - CFStringGetLength
    - write_item_strbuf
    - xmalloc
    - strlen
    - free
    - CFStringGetMaximumSizeForEncoding
    linkageType: ''
    returnType: void
    signature: void write_item_strbuf_cfstring(struct strbuf *sb, const char *what,
      CFStringRef ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CFNumberGetValue
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:127,1
    - Dst: xsnprintf
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:129,1
    - Dst: write_item_strbuf
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:130,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sb
    - what
    - ref
    argTypes:
    - struct strbuf*
    - char*
    - CFNumberRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: write_item_strbuf_cfnumber
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - strlen
    - CFNumberGetValue
    - xsnprintf
    - write_item_strbuf
    linkageType: ''
    returnType: void
    signature: void write_item_strbuf_cfnumber(struct strbuf *sb, const char *what,
      CFNumberRef ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CFDataGetBytePtr
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:140,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:141,1
    - Dst: CFDataGetLength
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:143,1
    - Dst: write_item_strbuf
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - sb
    - what
    - ref
    argTypes:
    - struct strbuf*
    - char*
    - CFDataRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: write_item_strbuf_cfdata
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - CFDataGetLength
    - strlen
    - CFDataGetBytePtr
    - write_item_strbuf
    linkageType: ''
    returnType: void
    signature: void write_item_strbuf_cfdata(struct strbuf *sb, const char *what,
      CFDataRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:149,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:149,1
    - Dst: write_item_strbuf_cfstring
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:150,1
    - Dst: write_item_strbuf_cfnumber
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:151,1
    - Dst: write_item_strbuf_cfstring
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:152,1
    - Dst: write_item_strbuf_cfstring
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:153,1
    - Dst: write_item_strbuf_cfdata
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - sb
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 5
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: encode_state_seen
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - write_item_strbuf_cfstring
    - strlen
    - write_item_strbuf_cfnumber
    - write_item_strbuf_cfdata
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: void encode_state_seen(struct strbuf *sb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CFDictionaryGetValue
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:163,1
    - Dst: write_item
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:166,1
    - Dst: CFStringCreateCopy
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:169,1
    - Dst: CFStringGetCStringPtr
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:171,1
    - Dst: write_item
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:174,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:174,1
    - Dst: CFStringGetMaximumSizeForEncoding
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:180,1
    - Dst: CFStringGetLength
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:181,1
    - Dst: xmalloc
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:182,1
    - Dst: CFStringGetCString
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:183,1
    - Dst: write_item
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:187,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:187,1
    - Dst: free
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - item
    argTypes:
    - CFDictionaryRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 190
    functionName: find_username_in_item
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - write_item
    - CFStringGetCString
    - CFStringGetLength
    - CFStringGetCStringPtr
    - CFDictionaryGetValue
    - strlen
    - xmalloc
    - free
    - CFStringGetMaximumSizeForEncoding
    - CFStringCreateCopy
    linkageType: ''
    returnType: void
    signature: void find_username_in_item(CFDictionaryRef item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CREATE_SEC_ATTRIBUTES
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:199,1
    - Dst: SecItemCopyMatching
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:203,1
    - Dst: CFDictionaryGetValue
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:208,1
    - Dst: CFDataCreateCopy
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:209,1
    - Dst: write_item
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:211,1
    - Dst: CFDataGetBytePtr
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:212,1
    - Dst: CFDataGetLength
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:213,1
    - Dst: find_username_in_item
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:215,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:217,1
    - Dst: write_item
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:219,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:219,1
    - Dst: strbuf_init
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:223,1
    - Dst: encode_state_seen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:224,1
    - Dst: write_item
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:225,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:225,1
    - Dst: strbuf_release
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:226,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 192
    functionDepth: 6
    functionLinenumber: 192
    functionLinenumberEnd: 237
    functionName: find_internet_password
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - CFDataGetLength
    - CFDataCreateCopy
    - strbuf_release
    - SecItemCopyMatching
    - write_item
    - CFDataGetBytePtr
    - CFDictionaryGetValue
    - CFRelease
    - strlen
    - encode_state_seen
    - find_username_in_item
    - CREATE_SEC_ATTRIBUTES
    - strbuf_init
    linkageType: ''
    returnType: OSStatus
    signature: OSStatus find_internet_password(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CFArrayCreate
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:245,1
    - Dst: create_dictionary
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:249,1
    - Dst: CFDictionaryGetCount
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:260,1
    - Dst: CFDictionaryCreateMutableCopy
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:261,1
    - Dst: CFDictionarySetValue
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:264,1
    - Dst: SecItemCopyMatching
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:265,1
    - Dst: CFDataGetBytePtr
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:272,1
    - Dst: memchr
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:273,1
    - Dst: CFDataGetLength
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:273,1
    - Dst: CFDataCreateWithBytesNoCopy
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:275,1
    - Dst: CFEqual
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:283,1
    - Dst: SecItemDelete
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:284,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:287,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:288,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:291,1
    - Dst: SecItemDelete
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:293,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:296,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - itemRef
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 300
    functionName: delete_ref
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 29
    functionsReached:
    - CFDataGetLength
    - CFEqual
    - memchr
    - SecItemCopyMatching
    - SecItemDelete
    - CFDataGetBytePtr
    - CFDictionaryCreateMutableCopy
    - create_dictionary
    - CFDictionaryGetCount
    - CFRelease
    - CFDataCreateWithBytesNoCopy
    - CFDictionarySetValue
    - CFArrayCreate
    linkageType: ''
    returnType: OSStatus
    signature: OSStatus delete_ref(const void *itemRef)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CREATE_SEC_ATTRIBUTES
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:316,1
    - Dst: SecItemCopyMatching
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:319,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:320,1
    - Dst: CFArrayGetCount
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:323,1
    - Dst: delete_ref
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:324,1
    - Dst: CFArrayGetValueAtIndex
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:324,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 334
    functionName: delete_internet_password
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - SecItemCopyMatching
    - delete_ref
    - CFRelease
    - CFArrayGetValueAtIndex
    - CREATE_SEC_ATTRIBUTES
    - CFArrayGetCount
    linkageType: ''
    returnType: OSStatus
    signature: OSStatus delete_internet_password(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_init
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:349,1
    - Dst: encode_state_seen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:350,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:351,1
    - Dst: strbuf_release
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:352,1
    - Dst: strbuf_release
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:355,1
    - Dst: CFDataCreateMutableCopy
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:358,1
    - Dst: CFDataAppendBytes
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:360,1
    - Dst: STRING_WITH_LENGTH
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:361,1
    - Dst: CFDataAppendBytes
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:362,1
    - Dst: CFDataGetBytePtr
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:363,1
    - Dst: CFDataGetLength
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:364,1
    - Dst: CFDataAppendBytes
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:367,1
    - Dst: STRING_WITH_LENGTH
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:368,1
    - Dst: CFDataAppendBytes
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:369,1
    - Dst: CFDataGetBytePtr
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:370,1
    - Dst: CFDataGetLength
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:371,1
    - Dst: CREATE_SEC_ATTRIBUTES
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:374,1
    - Dst: SecItemAdd
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:377,1
    - Dst: CREATE_SEC_ATTRIBUTES
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:380,1
    - Dst: SecItemUpdate
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:381,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:382,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:385,1
    - Dst: CFRelease
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:386,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 336
    functionDepth: 6
    functionLinenumber: 336
    functionLinenumberEnd: 389
    functionName: add_internet_password
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - CFDataGetLength
    - strbuf_release
    - STRING_WITH_LENGTH
    - CFDataGetBytePtr
    - CFDataAppendBytes
    - CFRelease
    - encode_state_seen
    - SecItemAdd
    - SecItemUpdate
    - strcmp
    - CREATE_SEC_ATTRIBUTES
    - CFDataCreateMutableCopy
    - strbuf_init
    linkageType: ''
    returnType: OSStatus
    signature: OSStatus add_internet_password(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: getline
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:397,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:400,1
    - Dst: strchr
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:404,1
    - Dst: die
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:406,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:409,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:410,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:412,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:414,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:416,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:418,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:420,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:422,1
    - Dst: clear_credential
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:426,1
    - Dst: exit
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:427,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:430,1
    - Dst: strchr
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:431,1
    - Dst: atoi
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:435,1
    - Dst: CFNumberCreate
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:436,1
    - Dst: CFStringCreateWithCString
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:440,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:444,1
    - Dst: CFStringCreateWithCString
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:445,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:448,1
    - Dst: CFStringCreateWithCString
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:449,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:453,1
    - Dst: CFDataCreate
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:454,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:456,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:457,1
    - Dst: CFDataCreate
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:458,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:460,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:461,1
    - Dst: CFDataCreate
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:462,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:464,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:465,1
    - Dst: strlen
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:466,1
    - Dst: strncmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:467,1
    - Dst: xstrdup
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:468,1
    - Dst: free
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:477,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 478
    functionName: read_credential
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 0
    functionsReached:
    - CFStringCreateWithCString
    - CFDataCreate
    - die
    - atoi
    - getline
    - exit
    - strchr
    - strlen
    - clear_credential
    - CFNumberCreate
    - strcmp
    - free
    - strncmp
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void read_credential(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:487,1
    - Dst: open
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:489,1
    - Dst: die
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:490,1
    - Dst: read_credential
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:492,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:494,1
    - Dst: find_internet_password
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:495,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:496,1
    - Dst: add_internet_password
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:497,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:498,1
    - Dst: delete_internet_password
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:499,1
    - Dst: die
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:503,1
    - Dst: clear_credential
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:505,1
    - Dst: free
      Src: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c:508,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 480
    functionDepth: 7
    functionLinenumber: 480
    functionLinenumberEnd: 511
    functionName: main
    functionSourceFile: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
    functionUses: 6
    functionsReached:
    - find_internet_password
    - open
    - die
    - add_internet_password
    - read_credential
    - delete_internet_password
    - clear_credential
    - strcmp
    - free
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - 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: ARRAY_SIZE
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 217
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:16,1
    - Dst: va_start
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:22,1
    - Dst: vsnprintf
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:23,1
    - Dst: fprintf
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:24,1
    - Dst: va_end
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:25,1
    - Dst: exit
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: die
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 1408
    functionsReached:
    - exit
    - va_end
    - va_start
    - vsnprintf
    - fprintf
    - format
    linkageType: ''
    returnType: void
    signature: void die(const char *err, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:31,1
    - Dst: malloc
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:33,1
    - Dst: die
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: xmalloc
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 194
    functionsReached:
    - malloc
    - die
    linkageType: ''
    returnType: void
    signature: void *xmalloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:44,1
    - Dst: wcslen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:44,1
    - Dst: wcslen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:45,1
    - Dst: die
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:46,1
    - Dst: wcsncat
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: target_append
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - wcslen
    - die
    - wcsncat
    linkageType: ''
    returnType: void
    signature: void target_append(const WCHAR *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:55,1
    - Dst: WideCharToMultiByte
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:59,1
    - Dst: xmalloc
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:61,1
    - Dst: WideCharToMultiByte
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:63,1
    - Dst: die
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:64,1
    - Dst: printf
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:66,1
    - Dst: fwrite
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:67,1
    - Dst: putchar
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:68,1
    - Dst: free
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - what
    - wbuf
    - wlen
    argTypes:
    - char*
    - LPCWSTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 70
    functionName: write_item
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 4
    functionsReached:
    - putchar
    - die
    - WideCharToMultiByte
    - fwrite
    - xmalloc
    - free
    - printf
    linkageType: ''
    returnType: void
    signature: void write_item(const char *what, LPCWSTR wbuf, int wlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wcsstr
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:80,1
    - Dst: wcsstr
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - find
    argTypes:
    - LPCWSTR
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: wcsstr_last
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 0
    functionsReached:
    - wcsstr
    linkageType: ''
    returnType: LPCWSTR
    signature: LPCWSTR wcsstr_last(LPCWSTR str, LPCWSTR find)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wcsstr_last
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:92,1
    - Dst: wcsstr
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:92,1
    - Dst: wcslen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:94,1
    - Dst: wcslen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:103,1
    - Dst: wcslen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:107,1
    - Dst: wcsncmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - ptarget
    - want
    - delim
    - last
    argTypes:
    - LPCWSTR*
    - LPCWSTR
    - LPCWSTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 110
    functionName: match_part_with_last
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 0
    functionsReached:
    - wcsstr_last
    - wcslen
    - wcsstr
    - wcsncmp
    linkageType: ''
    returnType: int
    signature: int match_part_with_last(LPCWSTR *ptarget, LPCWSTR want, LPCWSTR delim,
      int last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_part_with_last
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptarget
    - want
    - delim
    argTypes:
    - LPCWSTR*
    - LPCWSTR
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: match_part
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 0
    functionsReached:
    - match_part_with_last
    linkageType: ''
    returnType: int
    signature: int match_part(LPCWSTR *ptarget, LPCWSTR want, LPCWSTR delim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_part_with_last
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptarget
    - want
    - delim
    argTypes:
    - LPCWSTR*
    - LPCWSTR
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: match_part_last
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 0
    functionsReached:
    - match_part_with_last
    linkageType: ''
    returnType: int
    signature: int match_part_last(LPCWSTR *ptarget, LPCWSTR want, LPCWSTR delim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:124,1
    - Dst: wcsncpy_s
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:125,1
    - Dst: wcscmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:128,1
    - Dst: free
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cred
    argTypes:
    - CREDENTIALW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: match_cred_password
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 0
    functionsReached:
    - wcsncpy_s
    - xmalloc
    - wcscmp
    - free
    linkageType: ''
    returnType: int
    signature: int match_cred_password(const CREDENTIALW *cred)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:136,1
    - Dst: match_part
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:139,1
    - Dst: match_part
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:140,1
    - Dst: match_part_last
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:141,1
    - Dst: match_part
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:142,1
    - Dst: match_part
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:143,1
    - Dst: match_cred_password
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:144,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 2
    argNames:
    - cred
    - match_password
    argTypes:
    - CREDENTIALW*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: match_cred
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 0
    functionsReached:
    - match_part
    - wcscmp
    - match_cred_password
    - match_part_last
    linkageType: ''
    returnType: int
    signature: int match_cred(const CREDENTIALW *cred, int match_password)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CredEnumerateW
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:159,1
    - Dst: match_cred
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:164,1
    - Dst: write_item
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:165,1
    - Dst: wcslen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:166,1
    - Dst: xmalloc
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:168,1
    - Dst: wcsncpy_s
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:169,1
    - Dst: wcstok_s
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:170,1
    - Dst: write_item
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:171,1
    - Dst: wcslen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:171,1
    - Dst: wcstok_s
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:173,1
    - Dst: wcscmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:174,1
    - Dst: write_item
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:175,1
    - Dst: wcslen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:175,1
    - Dst: wcstok_s
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:177,1
    - Dst: free
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:179,1
    - Dst: write_item
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:181,1
    - Dst: wcscmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:187,1
    - Dst: write_item
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:188,1
    - Dst: CredFree
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:196,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 197
    functionName: get_credential
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 0
    functionsReached:
    - wcslen
    - write_item
    - match_cred
    - wcscmp
    - wcsncpy_s
    - xmalloc
    - CredFree
    - wcstok_s
    - free
    - CredEnumerateW
    linkageType: ''
    returnType: void
    signature: void get_credential(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _scwprintf
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:210,1
    - Dst: xmalloc
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:211,1
    - Dst: _snwprintf_s
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:212,1
    - Dst: _wcsdup
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:214,1
    - Dst: wcslen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:221,1
    - Dst: _wcsdup
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:222,1
    - Dst: wcslen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:229,1
    - Dst: free
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:237,1
    - Dst: CredWriteW
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:239,1
    - Dst: die
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 241
    functionName: store_credential
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 1
    functionsReached:
    - _wcsdup
    - _scwprintf
    - wcslen
    - die
    - xmalloc
    - free
    - _snwprintf_s
    - CredWriteW
    linkageType: ''
    returnType: void
    signature: void store_credential(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CredEnumerateW
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:249,1
    - Dst: match_cred
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:253,1
    - Dst: CredDeleteW
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:254,1
    - Dst: CredFree
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: erase_credential
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 0
    functionsReached:
    - CredEnumerateW
    - CredDeleteW
    - match_cred
    - CredFree
    linkageType: ''
    returnType: void
    signature: void erase_credential(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:262,1
    - Dst: xmalloc
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:263,1
    - Dst: MultiByteToWideChar
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: utf8_to_utf16_dup
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 0
    functionsReached:
    - MultiByteToWideChar
    - xmalloc
    linkageType: ''
    returnType: WCHAR
    signature: WCHAR *utf8_to_utf16_dup(const char *str)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:273,1
    - Dst: fgets
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:275,1
    - Dst: strlen
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:277,1
    - Dst: die
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:288,1
    - Dst: strchr
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:293,1
    - Dst: die
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:295,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:298,1
    - Dst: utf8_to_utf16_dup
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:299,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:300,1
    - Dst: utf8_to_utf16_dup
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:301,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:302,1
    - Dst: utf8_to_utf16_dup
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:303,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:304,1
    - Dst: utf8_to_utf16_dup
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:305,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:306,1
    - Dst: utf8_to_utf16_dup
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:307,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:308,1
    - Dst: utf8_to_utf16_dup
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:309,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:310,1
    - Dst: utf8_to_utf16_dup
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:311,1
    - Dst: free
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:319,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 320
    functionName: read_credential
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 1
    functionsReached:
    - fgets
    - die
    - utf8_to_utf16_dup
    - strchr
    - strlen
    - strcmp
    - free
    - calloc
    linkageType: ''
    returnType: void
    signature: void read_credential(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:328,1
    - Dst: _setmode
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:331,1
    - Dst: _fileno
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:331,1
    - Dst: _setmode
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:332,1
    - Dst: _fileno
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:332,1
    - Dst: read_credential
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:334,1
    - Dst: wcscpy
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:340,1
    - Dst: target_append
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:341,1
    - Dst: target_append
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:342,1
    - Dst: target_append
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:344,1
    - Dst: target_append
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:345,1
    - Dst: target_append
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:348,1
    - Dst: target_append
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:350,1
    - Dst: target_append
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:351,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:354,1
    - Dst: get_credential
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:355,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:356,1
    - Dst: store_credential
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:357,1
    - Dst: strcmp
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:358,1
    - Dst: erase_credential
      Src: /src/git/contrib/credential/wincred/git-credential-wincred.c:359,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 322
    functionDepth: 5
    functionLinenumber: 322
    functionLinenumberEnd: 362
    functionName: main
    functionSourceFile: /src/git/contrib/credential/wincred/git-credential-wincred.c
    functionUses: 6
    functionsReached:
    - die
    - erase_credential
    - read_credential
    - get_credential
    - _setmode
    - store_credential
    - wcscpy
    - strcmp
    - _fileno
    - target_append
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/contrib/libgit-sys/public_symbol_export.c:21,1
    - Dst: git_configset_init
      Src: /src/git/contrib/libgit-sys/public_symbol_export.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: libgit_configset_alloc
    functionSourceFile: /src/git/contrib/libgit-sys/public_symbol_export.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - git_configset_init
    linkageType: ''
    returnType: struct libgit_config_set
    signature: struct libgit_config_set *libgit_configset_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_clear
      Src: /src/git/contrib/libgit-sys/public_symbol_export.c:28,1
    - Dst: free
      Src: /src/git/contrib/libgit-sys/public_symbol_export.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct libgit_config_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: libgit_configset_free
    functionSourceFile: /src/git/contrib/libgit-sys/public_symbol_export.c
    functionUses: 0
    functionsReached:
    - git_configset_clear
    - free
    linkageType: ''
    returnType: void
    signature: void libgit_configset_free(struct libgit_config_set *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_add_file
      Src: /src/git/contrib/libgit-sys/public_symbol_export.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cs
    - filename
    argTypes:
    - struct libgit_config_set*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 11
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: libgit_configset_add_file
    functionSourceFile: /src/git/contrib/libgit-sys/public_symbol_export.c
    functionUses: 0
    functionsReached:
    - git_configset_add_file
    linkageType: ''
    returnType: int
    signature: int libgit_configset_add_file(struct libgit_config_set *cs, const char
      *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_int
      Src: /src/git/contrib/libgit-sys/public_symbol_export.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cs
    - key
    - dest
    argTypes:
    - struct libgit_config_set*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: libgit_configset_get_int
    functionSourceFile: /src/git/contrib/libgit-sys/public_symbol_export.c
    functionUses: 0
    functionsReached:
    - git_configset_get_int
    linkageType: ''
    returnType: int
    signature: "int libgit_configset_get_int(struct libgit_config_set *cs, const char
      *key,\n\t\t\t     int *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_configset_get_string
      Src: /src/git/contrib/libgit-sys/public_symbol_export.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cs
    - key
    - dest
    argTypes:
    - struct libgit_config_set*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: libgit_configset_get_string
    functionSourceFile: /src/git/contrib/libgit-sys/public_symbol_export.c
    functionUses: 0
    functionsReached:
    - git_configset_get_string
    linkageType: ''
    returnType: int
    signature: "int libgit_configset_get_string(struct libgit_config_set *cs, const
      char *key,\n\t\t\t\tchar **dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_user_agent
      Src: /src/git/contrib/libgit-sys/public_symbol_export.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: libgit_user_agent
    functionSourceFile: /src/git/contrib/libgit-sys/public_symbol_export.c
    functionUses: 0
    functionsReached:
    - git_user_agent
    linkageType: ''
    returnType: char
    signature: char *libgit_user_agent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: git_user_agent_sanitized
      Src: /src/git/contrib/libgit-sys/public_symbol_export.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: libgit_user_agent_sanitized
    functionSourceFile: /src/git/contrib/libgit-sys/public_symbol_export.c
    functionUses: 0
    functionsReached:
    - git_user_agent_sanitized
    linkageType: ''
    returnType: char
    signature: char *libgit_user_agent_sanitized(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ewah_bit_popcount64
    functionSourceFile: /src/git/ewah/ewok.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ewah_bit_popcount64(uint64_t 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: ewah_bit_ctz64
    functionSourceFile: /src/git/ewah/ewok.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ewah_bit_ctz64(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: ewah_bit_ctz64
    functionSourceFile: /src/git/ewah/ewok.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ewah_bit_ctz64(uint64_t x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/git/ewah/ewah_io.c:39,1
    - Dst: write_fun
      Src: /src/git/ewah/ewah_io.c:40,1
    - Dst: htonl
      Src: /src/git/ewah/ewah_io.c:44,1
    - Dst: write_fun
      Src: /src/git/ewah/ewah_io.c:45,1
    - Dst: htonll
      Src: /src/git/ewah/ewah_io.c:54,1
    - Dst: write_fun
      Src: /src/git/ewah/ewah_io.c:56,1
    - Dst: htonll
      Src: /src/git/ewah/ewah_io.c:64,1
    - Dst: write_fun
      Src: /src/git/ewah/ewah_io.c:66,1
    - Dst: htonl
      Src: /src/git/ewah/ewah_io.c:72,1
    - Dst: write_fun
      Src: /src/git/ewah/ewah_io.c:74,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - struct ewah_bitmap*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 78
    functionName: ewah_serialize_to
    functionSourceFile: /src/git/ewah/ewah_io.c
    functionUses: 1
    functionsReached:
    - htonl
    - htonll
    - write_fun
    linkageType: ''
    returnType: int
    signature: "int ewah_serialize_to(struct ewah_bitmap *self,\n\t\t      int (*write_fun)(void
      *, const void *, size_t),\n\t\t      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_add
      Src: /src/git/ewah/ewah_io.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - user_data
    - data
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: write_strbuf
    functionSourceFile: /src/git/ewah/ewah_io.c
    functionUses: 0
    functionsReached:
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int write_strbuf(void *user_data, const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ewah_serialize_to
      Src: /src/git/ewah/ewah_io.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sb
    argTypes:
    - struct ewah_bitmap*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: ewah_serialize_strbuf
    functionSourceFile: /src/git/ewah/ewah_io.c
    functionUses: 3
    functionsReached:
    - ewah_serialize_to
    linkageType: ''
    returnType: int
    signature: int ewah_serialize_strbuf(struct ewah_bitmap *self, struct strbuf *sb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/ewah/ewah_io.c:99,1
    - Dst: get_be32
      Src: /src/git/ewah/ewah_io.c:100,1
    - Dst: error
      Src: /src/git/ewah/ewah_io.c:105,1
    - Dst: get_be32
      Src: /src/git/ewah/ewah_io.c:106,1
    - Dst: REALLOC_ARRAY
      Src: /src/git/ewah/ewah_io.c:110,1
    - Dst: st_mult
      Src: /src/git/ewah/ewah_io.c:118,1
    - Dst: error
      Src: /src/git/ewah/ewah_io.c:120,1
    - Dst: memcpy
      Src: /src/git/ewah/ewah_io.c:123,1
    - Dst: ntohll
      Src: /src/git/ewah/ewah_io.c:128,1
    - Dst: error
      Src: /src/git/ewah/ewah_io.c:131,1
    - Dst: get_be32
      Src: /src/git/ewah/ewah_io.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - map
    - len
    argTypes:
    - struct ewah_bitmap*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 137
    functionName: ewah_read_mmap
    functionSourceFile: /src/git/ewah/ewah_io.c
    functionUses: 4
    functionsReached:
    - error
    - ntohll
    - get_be32
    - memcpy
    - REALLOC_ARRAY
    - st_mult
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t ewah_read_mmap(struct ewah_bitmap *self, const void *map, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - word
    argTypes:
    - eword_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: rlw_get_run_bit
    functionSourceFile: /src/git/ewah/ewok_rlw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rlw_get_run_bit(const eword_t *word)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - word
    - b
    argTypes:
    - eword_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: rlw_set_run_bit
    functionSourceFile: /src/git/ewah/ewok_rlw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rlw_set_run_bit(eword_t *word, int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - word
    argTypes:
    - eword_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: rlw_xor_run_bit
    functionSourceFile: /src/git/ewah/ewok_rlw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rlw_xor_run_bit(eword_t *word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - word
    - l
    argTypes:
    - eword_t*
    - eword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: rlw_set_running_len
    functionSourceFile: /src/git/ewah/ewok_rlw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rlw_set_running_len(eword_t *word, eword_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - word
    argTypes:
    - eword_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: rlw_get_running_len
    functionSourceFile: /src/git/ewah/ewok_rlw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: eword_t
    signature: eword_t rlw_get_running_len(const eword_t *word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - word
    argTypes:
    - eword_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: rlw_get_literal_words
    functionSourceFile: /src/git/ewah/ewok_rlw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: eword_t
    signature: eword_t rlw_get_literal_words(const eword_t *word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - word
    - l
    argTypes:
    - eword_t*
    - eword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: rlw_set_literal_words
    functionSourceFile: /src/git/ewah/ewok_rlw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rlw_set_literal_words(eword_t *word, eword_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewok_rlw.h:81,1
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewok_rlw.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - eword_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: rlw_size
    functionSourceFile: /src/git/ewah/ewok_rlw.h
    functionUses: 0
    functionsReached:
    - rlw_get_running_len
    - rlw_get_literal_words
    linkageType: ''
    returnType: eword_t
    signature: eword_t rlw_size(const eword_t *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct rlw_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: rlwit_word_size
    functionSourceFile: /src/git/ewah/ewok_rlw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rlwit_word_size(struct rlw_iterator *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct rlw_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: rlwit_literal_words
    functionSourceFile: /src/git/ewah/ewok_rlw.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rlwit_literal_words(struct rlw_iterator *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: EWAH_MASK
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EWAH_MASK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: EWAH_BLOCK
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EWAH_BLOCK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/ewah/bitmap.c:27,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/ewah/bitmap.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - word_alloc
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: bitmap_word_alloc
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 5
    functionsReached:
    - xmalloc
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct bitmap
    signature: struct bitmap *bitmap_word_alloc(size_t word_alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_word_alloc
      Src: /src/git/ewah/bitmap.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: bitmap_new
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 12
    functionsReached:
    - bitmap_word_alloc
    linkageType: ''
    returnType: struct bitmap
    signature: struct bitmap *bitmap_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_word_alloc
      Src: /src/git/ewah/bitmap.c:40,1
    - Dst: COPY_ARRAY
      Src: /src/git/ewah/bitmap.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: bitmap_dup
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 1
    functionsReached:
    - COPY_ARRAY
    - bitmap_word_alloc
    linkageType: ''
    returnType: struct bitmap
    signature: struct bitmap *bitmap_dup(const struct bitmap *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/ewah/bitmap.c:48,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/ewah/bitmap.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - word_alloc
    argTypes:
    - struct bitmap*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: bitmap_grow
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 0
    functionsReached:
    - MEMZERO_ARRAY
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void bitmap_grow(struct bitmap *self, size_t word_alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EWAH_BLOCK
      Src: /src/git/ewah/bitmap.c:54,1
    - Dst: bitmap_grow
      Src: /src/git/ewah/bitmap.c:56,1
    - Dst: EWAH_MASK
      Src: /src/git/ewah/bitmap.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - struct bitmap*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: bitmap_set
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 21
    functionsReached:
    - EWAH_BLOCK
    - bitmap_grow
    - EWAH_MASK
    linkageType: ''
    returnType: void
    signature: void bitmap_set(struct bitmap *self, size_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EWAH_BLOCK
      Src: /src/git/ewah/bitmap.c:62,1
    - Dst: EWAH_MASK
      Src: /src/git/ewah/bitmap.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - struct bitmap*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: bitmap_unset
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 5
    functionsReached:
    - EWAH_BLOCK
    - EWAH_MASK
    linkageType: ''
    returnType: void
    signature: void bitmap_unset(struct bitmap *self, size_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EWAH_BLOCK
      Src: /src/git/ewah/bitmap.c:70,1
    - Dst: EWAH_MASK
      Src: /src/git/ewah/bitmap.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - struct bitmap*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: bitmap_get
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 19
    functionsReached:
    - EWAH_BLOCK
    - EWAH_MASK
    linkageType: ''
    returnType: int
    signature: int bitmap_get(struct bitmap *self, size_t pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ewah_new
      Src: /src/git/ewah/bitmap.c:77,1
    - Dst: ewah_add
      Src: /src/git/ewah/bitmap.c:88,1
    - Dst: ewah_add_empty_words
      Src: /src/git/ewah/bitmap.c:91,1
    - Dst: ewah_add
      Src: /src/git/ewah/bitmap.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 100
    functionName: bitmap_to_ewah
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 2
    functionsReached:
    - ewah_new
    - ewah_add
    - ewah_add_empty_words
    linkageType: ''
    returnType: struct ewah_bitmap
    signature: struct ewah_bitmap *bitmap_to_ewah(struct bitmap *bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_new
      Src: /src/git/ewah/bitmap.c:104,1
    - Dst: ewah_iterator_init
      Src: /src/git/ewah/bitmap.c:109,1
    - Dst: ewah_iterator_next
      Src: /src/git/ewah/bitmap.c:111,1
    - Dst: ALLOC_GROW
      Src: /src/git/ewah/bitmap.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ewah
    argTypes:
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 118
    functionName: ewah_to_bitmap
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 3
    functionsReached:
    - ewah_iterator_init
    - ALLOC_GROW
    - ewah_iterator_next
    - bitmap_new
    linkageType: ''
    returnType: struct bitmap
    signature: struct bitmap *ewah_to_bitmap(struct ewah_bitmap *ewah)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - struct bitmap*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: bitmap_and_not
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitmap_and_not(struct bitmap *self, struct bitmap *other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_grow
      Src: /src/git/ewah/bitmap.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - struct bitmap*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: bitmap_or
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 5
    functionsReached:
    - bitmap_grow
    linkageType: ''
    returnType: void
    signature: void bitmap_or(struct bitmap *self, const struct bitmap *other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ewah_iterator_init
      Src: /src/git/ewah/bitmap.c:146,1
    - Dst: ewah_iterator_next
      Src: /src/git/ewah/bitmap.c:149,1
    - Dst: ewah_iterator_next
      Src: /src/git/ewah/bitmap.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - struct ewah_bitmap*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 181
    functionName: ewah_bitmap_is_subset
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 1
    functionsReached:
    - ewah_iterator_init
    - ewah_iterator_next
    linkageType: ''
    returnType: int
    signature: int ewah_bitmap_is_subset(struct ewah_bitmap *self, struct bitmap *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC_ARRAY
      Src: /src/git/ewah/bitmap.c:193,1
    - Dst: MEMZERO_ARRAY
      Src: /src/git/ewah/bitmap.c:194,1
    - Dst: ewah_iterator_init
      Src: /src/git/ewah/bitmap.c:198,1
    - Dst: ewah_iterator_next
      Src: /src/git/ewah/bitmap.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - struct bitmap*
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 202
    functionName: bitmap_or_ewah
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 3
    functionsReached:
    - ewah_iterator_init
    - REALLOC_ARRAY
    - ewah_iterator_next
    - MEMZERO_ARRAY
    linkageType: ''
    returnType: void
    signature: void bitmap_or_ewah(struct bitmap *self, struct ewah_bitmap *other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ewah_bit_popcount64
      Src: /src/git/ewah/bitmap.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: bitmap_popcount
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 4
    functionsReached:
    - ewah_bit_popcount64
    linkageType: ''
    returnType: size_t
    signature: size_t bitmap_popcount(struct bitmap *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ewah_iterator_init
      Src: /src/git/ewah/bitmap.c:220,1
    - Dst: ewah_iterator_next
      Src: /src/git/ewah/bitmap.c:222,1
    - Dst: ewah_bit_popcount64
      Src: /src/git/ewah/bitmap.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 226
    functionName: ewah_bitmap_popcount
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 1
    functionsReached:
    - ewah_iterator_init
    - ewah_bit_popcount64
    - ewah_iterator_next
    linkageType: ''
    returnType: size_t
    signature: size_t ewah_bitmap_popcount(struct ewah_bitmap *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: bitmap_is_empty
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bitmap_is_empty(struct bitmap *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - struct bitmap*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 261
    functionName: bitmap_equals
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bitmap_equals(struct bitmap *self, struct bitmap *other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ewah_iterator_init
      Src: /src/git/ewah/bitmap.c:269,1
    - Dst: ewah_iterator_next
      Src: /src/git/ewah/bitmap.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - struct bitmap*
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 280
    functionName: bitmap_equals_ewah
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 1
    functionsReached:
    - ewah_iterator_init
    - ewah_iterator_next
    linkageType: ''
    returnType: int
    signature: int bitmap_equals_ewah(struct bitmap *self, struct ewah_bitmap *other)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - struct bitmap*
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 301
    functionName: bitmap_is_subset
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bitmap_is_subset(struct bitmap *self, struct bitmap *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/ewah/bitmap.c:308,1
    - Dst: free
      Src: /src/git/ewah/bitmap.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - struct bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: bitmap_free
    functionSourceFile: /src/git/ewah/bitmap.c
    functionUses: 20
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void bitmap_free(struct bitmap *bitmap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_rlw.c:32,1
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_rlw.c:34,1
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewah_rlw.c:35,1
    - Dst: rlw_get_run_bit
      Src: /src/git/ewah/ewah_rlw.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct rlw_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: next_word
    functionSourceFile: /src/git/ewah/ewah_rlw.c
    functionUses: 0
    functionsReached:
    - rlw_get_running_len
    - rlw_get_literal_words
    - rlw_get_run_bit
    linkageType: ''
    returnType: int
    signature: int next_word(struct rlw_iterator *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_word
      Src: /src/git/ewah/ewah_rlw.c:48,1
    - Dst: rlwit_literal_words
      Src: /src/git/ewah/ewah_rlw.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - it
    - from_ewah
    argTypes:
    - struct rlw_iterator*
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: rlwit_init
    functionSourceFile: /src/git/ewah/ewah_rlw.c
    functionUses: 0
    functionsReached:
    - next_word
    - rlwit_literal_words
    linkageType: ''
    returnType: void
    signature: void rlwit_init(struct rlw_iterator *it, struct ewah_bitmap *from_ewah)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rlwit_word_size
      Src: /src/git/ewah/ewah_rlw.c:73,1
    - Dst: next_word
      Src: /src/git/ewah/ewah_rlw.c:74,1
    - Dst: rlwit_literal_words
      Src: /src/git/ewah/ewah_rlw.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - it
    - x
    argTypes:
    - struct rlw_iterator*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 81
    functionName: rlwit_discard_first_words
    functionSourceFile: /src/git/ewah/ewah_rlw.c
    functionUses: 0
    functionsReached:
    - next_word
    - rlwit_literal_words
    - rlwit_word_size
    linkageType: ''
    returnType: void
    signature: void rlwit_discard_first_words(struct rlw_iterator *it, size_t x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rlwit_word_size
      Src: /src/git/ewah/ewah_rlw.c:88,1
    - Dst: ewah_add_empty_words
      Src: /src/git/ewah/ewah_rlw.c:94,1
    - Dst: ewah_add_dirty_words
      Src: /src/git/ewah/ewah_rlw.c:101,1
    - Dst: rlwit_discard_first_words
      Src: /src/git/ewah/ewah_rlw.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - it
    - out
    - max
    - negate
    argTypes:
    - struct rlw_iterator*
    - struct ewah_bitmap*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 109
    functionName: rlwit_discharge
    functionSourceFile: /src/git/ewah/ewah_rlw.c
    functionUses: 0
    functionsReached:
    - rlwit_discard_first_words
    - ewah_add_empty_words
    - ewah_add_dirty_words
    - rlwit_word_size
    linkageType: ''
    returnType: size_t
    signature: "size_t rlwit_discharge(\n\tstruct rlw_iterator *it, struct ewah_bitmap
      *out, size_t max, int negate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: min_size
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t min_size(size_t a, size_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: max_size
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t max_size(size_t a, size_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/ewah/ewah_bitmap.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - new_size
    argTypes:
    - struct ewah_bitmap*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: buffer_grow
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    linkageType: ''
    returnType: void
    signature: void buffer_grow(struct ewah_bitmap *self, size_t new_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_grow
      Src: /src/git/ewah/ewah_bitmap.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - struct ewah_bitmap*
    - eword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: buffer_push
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 0
    functionsReached:
    - buffer_grow
    linkageType: ''
    returnType: void
    signature: void buffer_push(struct ewah_bitmap *self, eword_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_push
      Src: /src/git/ewah/ewah_bitmap.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - struct ewah_bitmap*
    - eword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: buffer_push_rlw
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 0
    functionsReached:
    - buffer_push
    linkageType: ''
    returnType: void
    signature: void buffer_push_rlw(struct ewah_bitmap *self, eword_t value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rlw_get_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:58,1
    - Dst: rlw_size
      Src: /src/git/ewah/ewah_bitmap.c:58,1
    - Dst: rlw_set_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:59,1
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:60,1
    - Dst: rlw_get_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:61,1
    - Dst: buffer_push_rlw
      Src: /src/git/ewah/ewah_bitmap.c:62,1
    - Dst: rlw_set_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:63,1
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewah_bitmap.c:67,1
    - Dst: min_size
      Src: /src/git/ewah/ewah_bitmap.c:68,1
    - Dst: rlw_set_running_len
      Src: /src/git/ewah/ewah_bitmap.c:70,1
    - Dst: buffer_push_rlw
      Src: /src/git/ewah/ewah_bitmap.c:74,1
    - Dst: rlw_set_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:76,1
    - Dst: rlw_set_running_len
      Src: /src/git/ewah/ewah_bitmap.c:77,1
    - Dst: buffer_push_rlw
      Src: /src/git/ewah/ewah_bitmap.c:82,1
    - Dst: rlw_set_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:85,1
    - Dst: rlw_set_running_len
      Src: /src/git/ewah/ewah_bitmap.c:86,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - self
    - v
    - number
    argTypes:
    - struct ewah_bitmap*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 90
    functionName: add_empty_words
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 2
    functionsReached:
    - rlw_set_run_bit
    - rlw_get_literal_words
    - rlw_get_run_bit
    - rlw_size
    - rlw_set_running_len
    - rlw_get_running_len
    - min_size
    - buffer_push_rlw
    linkageType: ''
    returnType: size_t
    signature: size_t add_empty_words(struct ewah_bitmap *self, int v, size_t number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_empty_words
      Src: /src/git/ewah/ewah_bitmap.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - v
    - number
    argTypes:
    - struct ewah_bitmap*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: ewah_add_empty_words
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 2
    functionsReached:
    - add_empty_words
    linkageType: ''
    returnType: size_t
    signature: size_t ewah_add_empty_words(struct ewah_bitmap *self, int v, size_t
      number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:103,1
    - Dst: buffer_push_rlw
      Src: /src/git/ewah/ewah_bitmap.c:106,1
    - Dst: rlw_set_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:108,1
    - Dst: buffer_push
      Src: /src/git/ewah/ewah_bitmap.c:109,1
    - Dst: rlw_set_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:113,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:116,1
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:116,1
    - Dst: buffer_push
      Src: /src/git/ewah/ewah_bitmap.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - new_data
    argTypes:
    - struct ewah_bitmap*
    - eword_t
    assertStmts:
    - condition: (rlw_get_literal_words(self->rlw) == current_num + 1)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/git/ewah/ewah_bitmap.c
    constantsTouched: []
    func_position:
      end: 120
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 120
    functionName: add_literal
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 0
    functionsReached:
    - assert
    - rlw_get_literal_words
    - buffer_push
    - rlw_set_literal_words
    - buffer_push_rlw
    linkageType: ''
    returnType: size_t
    signature: size_t add_literal(struct ewah_bitmap *self, eword_t new_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:129,1
    - Dst: min_size
      Src: /src/git/ewah/ewah_bitmap.c:130,1
    - Dst: rlw_set_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:132,1
    - Dst: buffer_grow
      Src: /src/git/ewah/ewah_bitmap.c:134,1
    - Dst: memcpy
      Src: /src/git/ewah/ewah_bitmap.c:141,1
    - Dst: buffer_push_rlw
      Src: /src/git/ewah/ewah_bitmap.c:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - buffer
    - number
    - negate
    argTypes:
    - struct ewah_bitmap*
    - eword_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 155
    functionName: ewah_add_dirty_words
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 1
    functionsReached:
    - buffer_grow
    - rlw_get_literal_words
    - memcpy
    - min_size
    - rlw_set_literal_words
    - buffer_push_rlw
    linkageType: ''
    returnType: void
    signature: "void ewah_add_dirty_words(\n\tstruct ewah_bitmap *self, const eword_t
      *buffer,\n\tsize_t number, int negate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:159,1
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewah_bitmap.c:160,1
    - Dst: rlw_set_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:163,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:164,1
    - Dst: rlw_get_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:164,1
    - Dst: rlw_get_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:167,1
    - Dst: rlw_set_running_len
      Src: /src/git/ewah/ewah_bitmap.c:169,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:170,1
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewah_bitmap.c:170,1
    - Dst: buffer_push_rlw
      Src: /src/git/ewah/ewah_bitmap.c:173,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:175,1
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewah_bitmap.c:175,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:176,1
    - Dst: rlw_get_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:176,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:177,1
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:177,1
    - Dst: rlw_set_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:179,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:180,1
    - Dst: rlw_get_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:180,1
    - Dst: rlw_set_running_len
      Src: /src/git/ewah/ewah_bitmap.c:182,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:183,1
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewah_bitmap.c:183,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:184,1
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - struct ewah_bitmap*
    - int
    assertStmts:
    - condition: (rlw_get_running_len(self->rlw) == run_len + 1)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/git/ewah/ewah_bitmap.c
    - condition: (rlw_get_running_len(self->rlw) == 0)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/git/ewah/ewah_bitmap.c
    - condition: (rlw_get_running_len(self->rlw) == 1)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/git/ewah/ewah_bitmap.c
    - condition: (rlw_get_run_bit(self->rlw) == v)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/git/ewah/ewah_bitmap.c
    - condition: (rlw_get_run_bit(self->rlw) == 0)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/git/ewah/ewah_bitmap.c
    - condition: (rlw_get_run_bit(self->rlw) == v)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/git/ewah/ewah_bitmap.c
    - condition: (rlw_get_literal_words(self->rlw) == 0)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/git/ewah/ewah_bitmap.c
    - condition: (rlw_get_literal_words(self->rlw) == 0)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/git/ewah/ewah_bitmap.c
    constantsTouched: []
    func_position:
      end: 187
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 187
    functionName: add_empty_word
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 0
    functionsReached:
    - assert
    - rlw_set_run_bit
    - rlw_get_literal_words
    - rlw_get_run_bit
    - rlw_set_running_len
    - rlw_get_running_len
    - buffer_push_rlw
    linkageType: ''
    returnType: size_t
    signature: size_t add_empty_word(struct ewah_bitmap *self, int v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_empty_word
      Src: /src/git/ewah/ewah_bitmap.c:194,1
    - Dst: add_empty_word
      Src: /src/git/ewah/ewah_bitmap.c:197,1
    - Dst: add_literal
      Src: /src/git/ewah/ewah_bitmap.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - word
    argTypes:
    - struct ewah_bitmap*
    - eword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: ewah_add
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 1
    functionsReached:
    - add_empty_word
    - add_literal
    linkageType: ''
    returnType: size_t
    signature: size_t ewah_add(struct ewah_bitmap *self, eword_t word)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/git/ewah/ewah_bitmap.c:205,1
    - Dst: DIV_ROUND_UP
      Src: /src/git/ewah/ewah_bitmap.c:206,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:208,1
    - Dst: add_empty_words
      Src: /src/git/ewah/ewah_bitmap.c:214,1
    - Dst: add_literal
      Src: /src/git/ewah/ewah_bitmap.c:216,1
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:220,1
    - Dst: rlw_set_running_len
      Src: /src/git/ewah/ewah_bitmap.c:221,1
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewah_bitmap.c:222,1
    - Dst: add_literal
      Src: /src/git/ewah/ewah_bitmap.c:223,1
    - Dst: rlw_set_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:233,1
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:234,1
    - Dst: add_empty_word
      Src: /src/git/ewah/ewah_bitmap.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - struct ewah_bitmap*
    - size_t
    assertStmts:
    - condition: (i >= self->bit_size)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/git/ewah/ewah_bitmap.c
    constantsTouched: []
    func_position:
      end: 237
      start: 202
    functionDepth: 5
    functionLinenumber: 202
    functionLinenumberEnd: 237
    functionName: ewah_set
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 4
    functionsReached:
    - add_empty_words
    - assert
    - DIV_ROUND_UP
    - rlw_get_literal_words
    - add_empty_word
    - rlw_set_running_len
    - rlw_get_running_len
    - rlw_set_literal_words
    - add_literal
    linkageType: ''
    returnType: void
    signature: void ewah_set(struct ewah_bitmap *self, size_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rlw_get_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:248,1
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewah_bitmap.c:249,1
    - Dst: callback
      Src: /src/git/ewah/ewah_bitmap.c:251,1
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewah_bitmap.c:253,1
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:258,1
    - Dst: callback
      Src: /src/git/ewah/ewah_bitmap.c:262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - payload
    argTypes:
    - struct ewah_bitmap*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 268
    functionName: ewah_each_bit
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 4
    functionsReached:
    - rlw_get_running_len
    - rlw_get_literal_words
    - rlw_get_run_bit
    - callback
    linkageType: ''
    returnType: void
    signature: void ewah_each_bit(struct ewah_bitmap *self, void (*callback)(size_t,
      void*), void *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: ewah_clear
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ewah_clear(struct ewah_bitmap *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/git/ewah/ewah_bitmap.c:286,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/ewah/ewah_bitmap.c:288,1
    - Dst: ewah_clear
      Src: /src/git/ewah/ewah_bitmap.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: ewah_new
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 8
    functionsReached:
    - xmalloc
    - ALLOC_ARRAY
    - ewah_clear
    linkageType: ''
    returnType: struct ewah_bitmap
    signature: struct ewah_bitmap *ewah_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/ewah/ewah_bitmap.c:300,1
    - Dst: free
      Src: /src/git/ewah/ewah_bitmap.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: ewah_free
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 11
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ewah_free(struct ewah_bitmap *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rlw_get_running_len
      Src: /src/git/ewah/ewah_bitmap.c:315,1
    - Dst: rlw_get_literal_words
      Src: /src/git/ewah/ewah_bitmap.c:316,1
    - Dst: rlw_get_run_bit
      Src: /src/git/ewah/ewah_bitmap.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct ewah_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 329
    functionName: read_new_rlw
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 0
    functionsReached:
    - rlw_get_running_len
    - rlw_get_literal_words
    - rlw_get_run_bit
    linkageType: ''
    returnType: void
    signature: void read_new_rlw(struct ewah_iterator *it)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:340,1
    - Dst: assert
      Src: /src/git/ewah/ewah_bitmap.c:345,1
    - Dst: read_new_rlw
      Src: /src/git/ewah/ewah_bitmap.c:352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - next
    - it
    argTypes:
    - eword_t*
    - struct ewah_iterator*
    assertStmts:
    - condition: (it->pointer < it->buffer_size)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/git/ewah/ewah_bitmap.c
    - condition: (it->literals < it->lw)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/git/ewah/ewah_bitmap.c
    constantsTouched: []
    func_position:
      end: 356
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 356
    functionName: ewah_iterator_next
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 7
    functionsReached:
    - read_new_rlw
    - assert
    linkageType: ''
    returnType: int
    signature: int ewah_iterator_next(eword_t *next, struct ewah_iterator *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_new_rlw
      Src: /src/git/ewah/ewah_bitmap.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - it
    - parent
    argTypes:
    - struct ewah_iterator*
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 372
    functionName: ewah_iterator_init
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 7
    functionsReached:
    - read_new_rlw
    linkageType: ''
    returnType: void
    signature: void ewah_iterator_init(struct ewah_iterator *it, struct ewah_bitmap
      *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/ewah/ewah_bitmap.c:379,1
    - Dst: ALLOC_ARRAY
      Src: /src/git/ewah/ewah_bitmap.c:381,1
    - Dst: ewah_iterator_init
      Src: /src/git/ewah/ewah_bitmap.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - it
    - parents
    - nr
    argTypes:
    - struct ewah_or_iterator*
    - struct ewah_bitmap**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 384
    functionName: ewah_or_iterator_init
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 1
    functionsReached:
    - ewah_iterator_init
    - memset
    - ALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void ewah_or_iterator_init(struct ewah_or_iterator *it,\n\t\t\t   struct
      ewah_bitmap **parents, size_t nr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ewah_iterator_next
      Src: /src/git/ewah/ewah_bitmap.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - next
    - it
    argTypes:
    - eword_t*
    - struct ewah_or_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 400
    functionName: ewah_or_iterator_next
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 5
    functionsReached:
    - ewah_iterator_next
    linkageType: ''
    returnType: int
    signature: int ewah_or_iterator_next(eword_t *next, struct ewah_or_iterator *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/ewah/ewah_bitmap.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct ewah_or_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: ewah_or_iterator_release
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 5
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ewah_or_iterator_release(struct ewah_or_iterator *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rlwit_init
      Src: /src/git/ewah/ewah_bitmap.c:416,1
    - Dst: rlwit_init
      Src: /src/git/ewah/ewah_bitmap.c:417,1
    - Dst: rlwit_word_size
      Src: /src/git/ewah/ewah_bitmap.c:419,1
    - Dst: rlwit_word_size
      Src: /src/git/ewah/ewah_bitmap.c:419,1
    - Dst: rlwit_discharge
      Src: /src/git/ewah/ewah_bitmap.c:434,1
    - Dst: ewah_add_empty_words
      Src: /src/git/ewah/ewah_bitmap.c:437,1
    - Dst: rlwit_discard_first_words
      Src: /src/git/ewah/ewah_bitmap.c:440,1
    - Dst: min_size
      Src: /src/git/ewah/ewah_bitmap.c:444,1
    - Dst: ewah_add
      Src: /src/git/ewah/ewah_bitmap.c:452,1
    - Dst: rlwit_discard_first_words
      Src: /src/git/ewah/ewah_bitmap.c:458,1
    - Dst: rlwit_discard_first_words
      Src: /src/git/ewah/ewah_bitmap.c:459,1
    - Dst: rlwit_word_size
      Src: /src/git/ewah/ewah_bitmap.c:463,1
    - Dst: rlwit_discharge
      Src: /src/git/ewah/ewah_bitmap.c:464,1
    - Dst: rlwit_discharge
      Src: /src/git/ewah/ewah_bitmap.c:466,1
    - Dst: max_size
      Src: /src/git/ewah/ewah_bitmap.c:468,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - ewah_i
    - ewah_j
    - out
    argTypes:
    - struct ewah_bitmap*
    - struct ewah_bitmap*
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 469
    functionName: ewah_xor
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 2
    functionsReached:
    - min_size
    - max_size
    - ewah_add_empty_words
    - rlwit_word_size
    - ewah_add
    - rlwit_init
    - rlwit_discharge
    - rlwit_discard_first_words
    linkageType: ''
    returnType: void
    signature: "void ewah_xor(\n\tstruct ewah_bitmap *ewah_i,\n\tstruct ewah_bitmap
      *ewah_j,\n\tstruct ewah_bitmap *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ewah_new
      Src: /src/git/ewah/ewah_bitmap.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 481
    functionName: ewah_pool_new
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 3
    functionsReached:
    - ewah_new
    linkageType: ''
    returnType: struct ewah_bitmap
    signature: struct ewah_bitmap *ewah_pool_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ewah_free
      Src: /src/git/ewah/ewah_bitmap.c:490,1
    - Dst: ewah_clear
      Src: /src/git/ewah/ewah_bitmap.c:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 496
    functionName: ewah_pool_free
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 5
    functionsReached:
    - ewah_free
    - ewah_clear
    linkageType: ''
    returnType: void
    signature: void ewah_pool_free(struct ewah_bitmap *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct ewah_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 508
    functionName: ewah_checksum
    functionSourceFile: /src/git/ewah/ewah_bitmap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ewah_checksum(struct ewah_bitmap *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_iterator*::vtable::advance
      Src: /src/git/refs/iterator.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: ref_iterator_advance
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 2
    functionsReached:
    - struct ref_iterator*::vtable::advance
    linkageType: ''
    returnType: int
    signature: int ref_iterator_advance(struct ref_iterator *ref_iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_iterator*::vtable::seek
      Src: /src/git/refs/iterator.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - flags
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: ref_iterator_seek
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 4
    functionsReached:
    - struct ref_iterator*::vtable::seek
    linkageType: ''
    returnType: int
    signature: "int ref_iterator_seek(struct ref_iterator *ref_iterator, const char
      *refname,\n\t\t      unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_iterator*::vtable::release
      Src: /src/git/refs/iterator.c:27,1
    - Dst: free
      Src: /src/git/refs/iterator.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: ref_iterator_free
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 1
    functionsReached:
    - struct ref_iterator*::vtable::release
    - free
    linkageType: ''
    returnType: void
    signature: void ref_iterator_free(struct ref_iterator *ref_iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/refs/iterator.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - iter
    - vtable
    argTypes:
    - struct ref_iterator*
    - struct ref_iterator_vtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: base_ref_iterator_init
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void base_ref_iterator_init(struct ref_iterator *iter,\n\t\t\t    struct
      ref_iterator_vtable *vtable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: empty_ref_iterator_advance
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int empty_ref_iterator_advance(struct ref_iterator *ref_iterator UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - UNUSED
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: empty_ref_iterator_seek
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int empty_ref_iterator_seek(struct ref_iterator *ref_iterator UNUSED,\n\t\t\t\t
      \  const char *refname UNUSED,\n\t\t\t\t   unsigned int flags UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: empty_ref_iterator_release
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void empty_ref_iterator_release(struct ref_iterator *ref_iterator UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/refs/iterator.c:69,1
    - Dst: base_ref_iterator_init
      Src: /src/git/refs/iterator.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 7
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: empty_ref_iterator_begin
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - base_ref_iterator_init
    - xcalloc
    linkageType: ''
    returnType: struct ref_iterator
    signature: struct ref_iterator *empty_ref_iterator_begin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: is_empty_ref_iterator
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_empty_ref_iterator(struct ref_iterator *ref_iterator)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs/iterator.c:114,1
    - Dst: parse_worktree_ref
      Src: /src/git/refs/iterator.c:126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - iter_worktree
    - iter_common
    - cb_data
    argTypes:
    - struct ref_iterator*
    - struct ref_iterator*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 138
    functionName: ref_iterator_select
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - parse_worktree_ref
    - strcmp
    linkageType: ''
    returnType: enum iterator_selection
    signature: "enum iterator_selection ref_iterator_select(struct ref_iterator *iter_worktree,\n\t\t\t\t\t
      \   struct ref_iterator *iter_common,\n\t\t\t\t\t    void *cb_data UNUSED)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ref_iterator_advance
      Src: /src/git/refs/iterator.c:148,1
    - Dst: ref_iterator_advance
      Src: /src/git/refs/iterator.c:153,1
    - Dst: ref_iterator_advance
      Src: /src/git/refs/iterator.c:163,1
    - Dst: struct merge_ref_iterator*::select
      Src: /src/git/refs/iterator.c:174,1
    - Dst: ref_iterator_advance
      Src: /src/git/refs/iterator.c:191,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 206
    functionName: merge_ref_iterator_advance
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - ref_iterator_advance
    - struct merge_ref_iterator*::select
    linkageType: ''
    returnType: int
    signature: int merge_ref_iterator_advance(struct ref_iterator *ref_iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ref_iterator_seek
      Src: /src/git/refs/iterator.c:219,1
    - Dst: ref_iterator_seek
      Src: /src/git/refs/iterator.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - flags
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 228
    functionName: merge_ref_iterator_seek
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - ref_iterator_seek
    linkageType: ''
    returnType: int
    signature: "int merge_ref_iterator_seek(struct ref_iterator *ref_iterator,\n\t\t\t\t
      \  const char *refname, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ref_iterator_free
      Src: /src/git/refs/iterator.c:234,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/iterator.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: merge_ref_iterator_release
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - ref_iterator_free
    linkageType: ''
    returnType: void
    signature: void merge_ref_iterator_release(struct ref_iterator *ref_iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/refs/iterator.c:248,1
    - Dst: base_ref_iterator_init
      Src: /src/git/refs/iterator.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - iter0
    - iter1
    - select
    - cb_data
    argTypes:
    - struct ref_iterator*
    - struct ref_iterator*
    - ref_iterator_select_fn*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 266
    functionName: merge_ref_iterator_begin
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - base_ref_iterator_init
    - xcalloc
    linkageType: ''
    returnType: struct ref_iterator
    signature: "struct ref_iterator *merge_ref_iterator_begin(\n\t\tstruct ref_iterator
      *iter0, struct ref_iterator *iter1,\n\t\tref_iterator_select_fn *select, void
      *cb_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs/iterator.c:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - front
    - back
    - cb_data
    argTypes:
    - struct ref_iterator*
    - struct ref_iterator*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 292
    functionName: overlay_iterator_select
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum iterator_selection
    signature: "enum iterator_selection overlay_iterator_select(\n\t\tstruct ref_iterator
      *front, struct ref_iterator *back,\n\t\tvoid *cb_data UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_ref_iterator
      Src: /src/git/refs/iterator.c:302,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/iterator.c:303,1
    - Dst: is_empty_ref_iterator
      Src: /src/git/refs/iterator.c:305,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/iterator.c:306,1
    - Dst: merge_ref_iterator_begin
      Src: /src/git/refs/iterator.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - front
    - back
    argTypes:
    - struct ref_iterator*
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 8
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: overlay_ref_iterator_begin
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - merge_ref_iterator_begin
    - ref_iterator_free
    - is_empty_ref_iterator
    linkageType: ''
    returnType: struct ref_iterator
    signature: "struct ref_iterator *overlay_ref_iterator_begin(\n\t\tstruct ref_iterator
      *front, struct ref_iterator *back)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - refname
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: compare_prefix
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_prefix(const char *refname, const char *prefix)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ref_iterator_advance
      Src: /src/git/refs/iterator.c:341,1
    - Dst: compare_prefix
      Src: /src/git/refs/iterator.c:342,1
    - Dst: strlen
      Src: /src/git/refs/iterator.c:365,1
    - Dst: BUG
      Src: /src/git/refs/iterator.c:366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 374
    functionName: prefix_ref_iterator_advance
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - BUG
    - compare_prefix
    - strlen
    - ref_iterator_advance
    linkageType: ''
    returnType: int
    signature: int prefix_ref_iterator_advance(struct ref_iterator *ref_iterator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/refs/iterator.c:383,1
    - Dst: xstrdup_or_null
      Src: /src/git/refs/iterator.c:384,1
    - Dst: ref_iterator_seek
      Src: /src/git/refs/iterator.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - flags
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 387
    functionName: prefix_ref_iterator_seek
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - ref_iterator_seek
    - xstrdup_or_null
    - free
    linkageType: ''
    returnType: int
    signature: "int prefix_ref_iterator_seek(struct ref_iterator *ref_iterator,\n\t\t\t\t
      \   const char *refname, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ref_iterator_free
      Src: /src/git/refs/iterator.c:393,1
    - Dst: free
      Src: /src/git/refs/iterator.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 395
    functionName: prefix_ref_iterator_release
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 0
    functionsReached:
    - ref_iterator_free
    - free
    linkageType: ''
    returnType: void
    signature: void prefix_ref_iterator_release(struct ref_iterator *ref_iterator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/iterator.c:413,1
    - Dst: base_ref_iterator_init
      Src: /src/git/refs/iterator.c:416,1
    - Dst: xstrdup
      Src: /src/git/refs/iterator.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - iter0
    - prefix
    - trim
    argTypes:
    - struct ref_iterator*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 423
    functionName: prefix_ref_iterator_begin
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 1
    functionsReached:
    - base_ref_iterator_init
    - xstrdup
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct ref_iterator
    signature: "struct ref_iterator *prefix_ref_iterator_begin(struct ref_iterator
      *iter0,\n\t\t\t\t\t       const char *prefix,\n\t\t\t\t\t       int trim)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ref_iterator_advance
      Src: /src/git/refs/iterator.c:430,1
    - Dst: fn
      Src: /src/git/refs/iterator.c:431,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/iterator.c:439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - iter
    - fn
    - cb_data
    argTypes:
    - struct ref_iterator*
    - refs_for_each_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 441
    functionName: do_for_each_ref_iterator
    functionSourceFile: /src/git/refs/iterator.c
    functionUses: 4
    functionsReached:
    - fn
    - ref_iterator_free
    - ref_iterator_advance
    linkageType: ''
    returnType: int
    signature: "int do_for_each_ref_iterator(struct ref_iterator *iter,\n\t\t\t     refs_for_each_cb
      fn, void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/refs/ref-cache.c:11,1
    - Dst: strcmp
      Src: /src/git/refs/ref-cache.c:16,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - dir
    - entry
    argTypes:
    - struct ref_dir*
    - struct ref_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 19
    functionName: add_entry_to_dir
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - ALLOC_GROW
    - strcmp
    linkageType: ''
    returnType: void
    signature: void add_entry_to_dir(struct ref_dir *dir, struct ref_entry *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/refs/ref-cache.c:24,1
    - Dst: BUG
      Src: /src/git/refs/ref-cache.c:28,1
    - Dst: struct ref_dir*::cache::fill_ref_dir
      Src: /src/git/refs/ref-cache.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct ref_entry*
    assertStmts:
    - condition: (entry->flag & REF_DIR)
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/git/refs/ref-cache.c
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: get_ref_dir
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - struct ref_dir*::cache::fill_ref_dir
    - BUG
    - assert
    linkageType: ''
    returnType: struct ref_dir
    signature: struct ref_dir *get_ref_dir(struct ref_entry *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/refs/ref-cache.c:42,1
    - Dst: oidcpy
      Src: /src/git/refs/ref-cache.c:43,1
    - Dst: xstrdup_or_null
      Src: /src/git/refs/ref-cache.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - refname
    - referent
    - oid
    - flag
    argTypes:
    - char*
    - char*
    - struct object_id*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: create_ref_entry
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - FLEX_ALLOC_STR
    - oidcpy
    linkageType: ''
    returnType: struct ref_entry
    signature: "struct ref_entry *create_ref_entry(const char *refname,\n\t\t\t\t
      \  const char *referent,\n\t\t\t\t   const struct object_id *oid, int flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/refs/ref-cache.c:53,1
    - Dst: create_dir_entry
      Src: /src/git/refs/ref-cache.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - refs
    - fill_ref_dir
    argTypes:
    - struct ref_store*
    - fill_ref_dir_fn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 7
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: create_ref_cache
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - create_dir_entry
    - xcalloc
    linkageType: ''
    returnType: struct ref_cache
    signature: "struct ref_cache *create_ref_cache(struct ref_store *refs,\n\t\t\t\t
      \  fill_ref_dir_fn *fill_ref_dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_ref_dir
      Src: /src/git/refs/ref-cache.c:70,1
    - Dst: free
      Src: /src/git/refs/ref-cache.c:72,1
    - Dst: free
      Src: /src/git/refs/ref-cache.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct ref_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: free_ref_entry
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - clear_ref_dir
    - free
    linkageType: ''
    returnType: void
    signature: void free_ref_entry(struct ref_entry *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_ref_entry
      Src: /src/git/refs/ref-cache.c:81,1
    - Dst: free
      Src: /src/git/refs/ref-cache.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct ref_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: free_ref_cache
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - free
    - free_ref_entry
    linkageType: ''
    returnType: void
    signature: void free_ref_cache(struct ref_cache *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_ref_entry
      Src: /src/git/refs/ref-cache.c:92,1
    - Dst: FREE_AND_NULL
      Src: /src/git/refs/ref-cache.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dir
    argTypes:
    - struct ref_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: clear_ref_dir
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 1
    functionsReached:
    - FREE_AND_NULL
    - free_ref_entry
    linkageType: ''
    returnType: void
    signature: void clear_ref_dir(struct ref_dir *dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLEX_ALLOC_MEM
      Src: /src/git/refs/ref-cache.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cache
    - dirname
    - len
    argTypes:
    - struct ref_cache*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: create_dir_entry
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 1
    functionsReached:
    - FLEX_ALLOC_MEM
    linkageType: ''
    returnType: struct ref_entry
    signature: "struct ref_entry *create_dir_entry(struct ref_cache *cache,\n\t\t\t\t
      \  const char *dirname, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs/ref-cache.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: ref_entry_cmp
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ref_entry_cmp(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/git/refs/ref-cache.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key_
    - ent_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: ref_entry_cmp_sslice
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int ref_entry_cmp_sslice(const void *key_, const void *ent_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sort_ref_dir
      Src: /src/git/refs/ref-cache.c:140,1
    - Dst: bsearch
      Src: /src/git/refs/ref-cache.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - dir
    - refname
    - len
    argTypes:
    - struct ref_dir*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: search_ref_dir
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - sort_ref_dir
    - bsearch
    linkageType: ''
    returnType: int
    signature: int search_ref_dir(struct ref_dir *dir, const char *refname, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: search_ref_dir
      Src: /src/git/refs/ref-cache.c:161,1
    - Dst: get_ref_dir
      Src: /src/git/refs/ref-cache.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dir
    - subdirname
    - len
    argTypes:
    - struct ref_dir*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: search_for_subdir
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - search_ref_dir
    - get_ref_dir
    linkageType: ''
    returnType: struct ref_dir
    signature: "struct ref_dir *search_for_subdir(struct ref_dir *dir,\n\t\t\t\t\t
      const char *subdirname, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/git/refs/ref-cache.c:183,1
    - Dst: strchr
      Src: /src/git/refs/ref-cache.c:183,1
    - Dst: search_for_subdir
      Src: /src/git/refs/ref-cache.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dir
    - refname
    argTypes:
    - struct ref_dir*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: find_containing_dir
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - search_for_subdir
    - strchr
    linkageType: ''
    returnType: struct ref_dir
    signature: "struct ref_dir *find_containing_dir(struct ref_dir *dir,\n\t\t\t\t\t
      \  const char *refname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs/ref-cache.c:204,1
    - Dst: die
      Src: /src/git/refs/ref-cache.c:211,1
    - Dst: oideq
      Src: /src/git/refs/ref-cache.c:213,1
    - Dst: die
      Src: /src/git/refs/ref-cache.c:214,1
    - Dst: warning
      Src: /src/git/refs/ref-cache.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ref1
    - ref2
    argTypes:
    - struct ref_entry*
    - struct ref_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: is_dup_ref
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - warning
    - die
    - oideq
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_dup_ref(const struct ref_entry *ref1, const struct ref_entry
      *ref2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QSORT
      Src: /src/git/refs/ref-cache.c:236,1
    - Dst: is_dup_ref
      Src: /src/git/refs/ref-cache.c:241,1
    - Dst: free_ref_entry
      Src: /src/git/refs/ref-cache.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - dir
    argTypes:
    - struct ref_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 247
    functionName: sort_ref_dir
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 1
    functionsReached:
    - QSORT
    - is_dup_ref
    - free_ref_entry
    linkageType: ''
    returnType: void
    signature: void sort_ref_dir(struct ref_dir *dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - dirname
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: overlaps_prefix
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum prefix_state
    signature: "enum prefix_state overlaps_prefix(const char *dirname,\n\t\t\t\t\t
      const char *prefix)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prime_ref_dir
      Src: /src/git/refs/ref-cache.c:299,1
    - Dst: get_ref_dir
      Src: /src/git/refs/ref-cache.c:299,1
    - Dst: overlaps_prefix
      Src: /src/git/refs/ref-cache.c:301,1
    - Dst: prime_ref_dir
      Src: /src/git/refs/ref-cache.c:308,1
    - Dst: get_ref_dir
      Src: /src/git/refs/ref-cache.c:308,1
    - Dst: prime_ref_dir
      Src: /src/git/refs/ref-cache.c:311,1
    - Dst: get_ref_dir
      Src: /src/git/refs/ref-cache.c:311,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - dir
    - prefix
    argTypes:
    - struct ref_dir*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 319
    functionName: prime_ref_dir
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 1
    functionsReached:
    - overlaps_prefix
    - prime_ref_dir
    - get_ref_dir
    linkageType: ''
    returnType: void
    signature: void prime_ref_dir(struct ref_dir *dir, const char *prefix)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sort_ref_dir
      Src: /src/git/refs/ref-cache.c:397,1
    - Dst: overlaps_prefix
      Src: /src/git/refs/ref-cache.c:410,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/ref-cache.c:420,1
    - Dst: get_ref_dir
      Src: /src/git/refs/ref-cache.c:424,1
    - Dst: memset
      Src: /src/git/refs/ref-cache.c:428,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 436
    functionName: cache_ref_iterator_advance
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - memset
    - sort_ref_dir
    - overlaps_prefix
    - get_ref_dir
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: int cache_ref_iterator_advance(struct ref_iterator *ref_iterator)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_ref_dir
      Src: /src/git/refs/ref-cache.c:444,1
    - Dst: find_containing_dir
      Src: /src/git/refs/ref-cache.c:446,1
    - Dst: prime_ref_dir
      Src: /src/git/refs/ref-cache.c:453,1
    - Dst: free
      Src: /src/git/refs/ref-cache.c:460,1
    - Dst: xstrdup
      Src: /src/git/refs/ref-cache.c:461,1
    - Dst: FREE_AND_NULL
      Src: /src/git/refs/ref-cache.c:464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - iter
    - prefix
    argTypes:
    - struct cache_ref_iterator*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 438
    functionDepth: 4
    functionLinenumber: 438
    functionLinenumberEnd: 469
    functionName: cache_ref_iterator_set_prefix
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - get_ref_dir
    - find_containing_dir
    - prime_ref_dir
    - free
    - FREE_AND_NULL
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int cache_ref_iterator_set_prefix(struct cache_ref_iterator *iter,\n\t\t\t\t\t
      const char *prefix)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cache_ref_iterator_set_prefix
      Src: /src/git/refs/ref-cache.c:478,1
    - Dst: get_ref_dir
      Src: /src/git/refs/ref-cache.c:484,1
    - Dst: prime_ref_dir
      Src: /src/git/refs/ref-cache.c:487,1
    - Dst: FREE_AND_NULL
      Src: /src/git/refs/ref-cache.c:495,1
    - Dst: sort_ref_dir
      Src: /src/git/refs/ref-cache.c:506,1
    - Dst: strchr
      Src: /src/git/refs/ref-cache.c:508,1
    - Dst: strlen
      Src: /src/git/refs/ref-cache.c:509,1
    - Dst: strncmp
      Src: /src/git/refs/ref-cache.c:512,1
    - Dst: get_ref_dir
      Src: /src/git/refs/ref-cache.c:525,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/ref-cache.c:527,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - flags
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 471
    functionDepth: 5
    functionLinenumber: 471
    functionLinenumberEnd: 547
    functionName: cache_ref_iterator_seek
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - sort_ref_dir
    - cache_ref_iterator_set_prefix
    - get_ref_dir
    - strchr
    - strlen
    - prime_ref_dir
    - ALLOC_GROW
    - strncmp
    - FREE_AND_NULL
    linkageType: ''
    returnType: int
    signature: "int cache_ref_iterator_seek(struct ref_iterator *ref_iterator,\n\t\t\t\t
      \  const char *refname, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/refs/ref-cache.c:553,1
    - Dst: free
      Src: /src/git/refs/ref-cache.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 555
    functionName: cache_ref_iterator_release
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cache_ref_iterator_release(struct ref_iterator *ref_iterator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/ref-cache.c:571,1
    - Dst: base_ref_iterator_init
      Src: /src/git/refs/ref-cache.c:573,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/ref-cache.c:574,1
    - Dst: cache_ref_iterator_seek
      Src: /src/git/refs/ref-cache.c:580,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/ref-cache.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - cache
    - prefix
    - repo
    - prime_dir
    argTypes:
    - struct ref_cache*
    - char*
    - struct repository*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 563
    functionDepth: 6
    functionLinenumber: 563
    functionLinenumberEnd: 587
    functionName: cache_ref_iterator_begin
    functionSourceFile: /src/git/refs/ref-cache.c
    functionUses: 0
    functionsReached:
    - base_ref_iterator_init
    - ALLOC_GROW
    - CALLOC_ARRAY
    - cache_ref_iterator_seek
    - ref_iterator_free
    linkageType: ''
    returnType: struct ref_iterator
    signature: "struct ref_iterator *cache_ref_iterator_begin(struct ref_cache *cache,\n\t\t\t\t\t
      \     const char *prefix,\n\t\t\t\t\t      struct repository *repo,\n\t\t\t\t\t
      \     int prime_dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace_want
      Src: /src/git/refs/debug.c:20,1
    - Dst: xmalloc
      Src: /src/git/refs/debug.c:23,1
    - Dst: xmalloc
      Src: /src/git/refs/debug.c:24,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:28,1
    - Dst: base_ref_store_init
      Src: /src/git/refs/debug.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - gitdir
    - store
    argTypes:
    - char*
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 33
    functionName: maybe_debug_wrap_ref_store
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - trace_want
    - trace_printf_key
    - base_ref_store_init
    linkageType: ''
    returnType: struct ref_store
    signature: struct ref_store *maybe_debug_wrap_ref_store(const char *gitdir, struct
      ref_store *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::release
      Src: /src/git/refs/debug.c:38,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - refs
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: debug_release
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_store*::refs::be::release
    linkageType: ''
    returnType: void
    signature: void debug_release(struct ref_store *refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::create_on_disk
      Src: /src/git/refs/debug.c:45,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - refs
    - flags
    - err
    argTypes:
    - struct ref_store*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: debug_create_on_disk
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_ref_store*::refs::be::create_on_disk
    - trace_printf_key
    linkageType: ''
    returnType: int
    signature: int debug_create_on_disk(struct ref_store *refs, int flags, struct
      strbuf *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::remove_on_disk
      Src: /src/git/refs/debug.c:53,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - refs
    - err
    argTypes:
    - struct ref_store*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: debug_remove_on_disk
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_store*::refs::be::remove_on_disk
    linkageType: ''
    returnType: int
    signature: int debug_remove_on_disk(struct ref_store *refs, struct strbuf *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::transaction_prepare
      Src: /src/git/refs/debug.c:65,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - refs
    - transaction
    - err
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: debug_transaction_prepare
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_ref_store*::refs::be::transaction_prepare
    - trace_printf_key
    linkageType: ''
    returnType: int
    signature: "int debug_transaction_prepare(struct ref_store *refs,\n\t\t\t\t     struct
      ref_transaction *transaction,\n\t\t\t\t     struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oid_to_hex_r
      Src: /src/git/refs/debug.c:80,1
    - Dst: oid_to_hex_r
      Src: /src/git/refs/debug.c:82,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - i
    - refname
    - old_oid
    - new_oid
    - flags
    - type
    - msg
    argTypes:
    - int
    - char*
    - struct object_id*
    - struct object_id*
    - unsigned int
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: print_update
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - oid_to_hex_r
    - trace_printf_key
    linkageType: ''
    returnType: void
    signature: "void print_update(int i, const char *refname,\n\t\t\t const struct
      object_id *old_oid,\n\t\t\t const struct object_id *new_oid, unsigned int flags,\n\t\t\t
      unsigned int type, const char *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:93,1
    - Dst: print_update
      Src: /src/git/refs/debug.c:96,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - transaction
    argTypes:
    - struct ref_transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: print_transaction
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - print_update
    - trace_printf_key
    linkageType: ''
    returnType: void
    signature: void print_transaction(struct ref_transaction *transaction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::transaction_finish
      Src: /src/git/refs/debug.c:109,1
    - Dst: print_transaction
      Src: /src/git/refs/debug.c:111,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - refs
    - transaction
    - err
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: debug_transaction_finish
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - print_transaction
    - struct debug_ref_store*::refs::be::transaction_finish
    linkageType: ''
    returnType: int
    signature: "int debug_transaction_finish(struct ref_store *refs,\n\t\t\t\t    struct
      ref_transaction *transaction,\n\t\t\t\t    struct strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::transaction_abort
      Src: /src/git/refs/debug.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - refs
    - transaction
    - err
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: debug_transaction_abort
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_ref_store*::refs::be::transaction_abort
    linkageType: ''
    returnType: int
    signature: "int debug_transaction_abort(struct ref_store *refs,\n\t\t\t\t   struct
      ref_transaction *transaction,\n\t\t\t\t   struct strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::optimize
      Src: /src/git/refs/debug.c:130,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref_store
    - opts
    argTypes:
    - struct ref_store*
    - struct refs_optimize_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: debug_optimize
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_ref_store*::refs::be::optimize
    - trace_printf_key
    linkageType: ''
    returnType: int
    signature: int debug_optimize(struct ref_store *ref_store, struct refs_optimize_opts
      *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::optimize_required
      Src: /src/git/refs/debug.c:140,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ref_store
    - opts
    - required
    argTypes:
    - struct ref_store*
    - struct refs_optimize_opts*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: debug_optimize_required
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_store*::refs::be::optimize_required
    linkageType: ''
    returnType: int
    signature: "int debug_optimize_required(struct ref_store *ref_store,\n\t\t\t\t
      \  struct refs_optimize_opts *opts,\n\t\t\t\t   bool *required)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::rename_ref
      Src: /src/git/refs/debug.c:150,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ref_store
    - oldref
    - newref
    - logmsg
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: debug_rename_ref
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_store*::refs::be::rename_ref
    linkageType: ''
    returnType: int
    signature: "int debug_rename_ref(struct ref_store *ref_store, const char *oldref,\n\t\t\t
      \   const char *newref, const char *logmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::copy_ref
      Src: /src/git/refs/debug.c:162,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ref_store
    - oldref
    - newref
    - logmsg
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: debug_copy_ref
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_store*::refs::be::copy_ref
    linkageType: ''
    returnType: int
    signature: "int debug_copy_ref(struct ref_store *ref_store, const char *oldref,\n\t\t\t
      \ const char *newref, const char *logmsg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_iterator*::iter::vtable::advance
      Src: /src/git/refs/debug.c:177,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:179,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 186
    functionName: debug_ref_iterator_advance
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_iterator*::iter::vtable::advance
    linkageType: ''
    returnType: int
    signature: int debug_ref_iterator_advance(struct ref_iterator *ref_iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_iterator*::iter::vtable::seek
      Src: /src/git/refs/debug.c:193,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - flags
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: debug_ref_iterator_seek
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_ref_iterator*::iter::vtable::seek
    - trace_printf_key
    linkageType: ''
    returnType: int
    signature: "int debug_ref_iterator_seek(struct ref_iterator *ref_iterator,\n\t\t\t\t
      \  const char *refname, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_iterator*::iter::vtable::release
      Src: /src/git/refs/debug.c:203,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: debug_ref_iterator_release
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_iterator*::iter::vtable::release
    linkageType: ''
    returnType: void
    signature: void debug_ref_iterator_release(struct ref_iterator *ref_iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::iterator_begin
      Src: /src/git/refs/debug.c:219,1
    - Dst: xcalloc
      Src: /src/git/refs/debug.c:221,1
    - Dst: base_ref_iterator_init
      Src: /src/git/refs/debug.c:222,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ref_store
    - prefix
    - exclude_patterns
    - flags
    argTypes:
    - struct ref_store*
    - char*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 213
    functionDepth: 7
    functionLinenumber: 213
    functionLinenumberEnd: 227
    functionName: debug_ref_iterator_begin
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - base_ref_iterator_init
    - trace_printf_key
    - struct debug_ref_store*::refs::be::iterator_begin
    - xcalloc
    linkageType: ''
    returnType: struct ref_iterator
    signature: "struct ref_iterator *\ndebug_ref_iterator_begin(struct ref_store *ref_store,
      const char *prefix,\n\t\t\t const char **exclude_patterns, unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidcpy
      Src: /src/git/refs/debug.c:236,1
    - Dst: null_oid
      Src: /src/git/refs/debug.c:236,1
    - Dst: struct debug_ref_store*::refs::be::read_raw_ref
      Src: /src/git/refs/debug.c:237,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:241,1
    - Dst: oid_to_hex
      Src: /src/git/refs/debug.c:242,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - ref_store
    - refname
    - oid
    - referent
    - type
    - failure_errno
    argTypes:
    - struct ref_store*
    - char*
    - struct object_id*
    - struct strbuf*
    - unsigned int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: debug_read_raw_ref
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - struct debug_ref_store*::refs::be::read_raw_ref
    - oidcpy
    - trace_printf_key
    - null_oid
    linkageType: ''
    returnType: int
    signature: "int debug_read_raw_ref(struct ref_store *ref_store, const char *refname,\n\t\t\t
      \     struct object_id *oid, struct strbuf *referent,\n\t\t\t      unsigned
      int *type, int *failure_errno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ref_store*::be::read_symbolic_ref
      Src: /src/git/refs/debug.c:258,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:260,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ref_store
    - refname
    - referent
    argTypes:
    - struct ref_store*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 267
    functionName: debug_read_symbolic_ref
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct ref_store*::be::read_symbolic_ref
    linkageType: ''
    returnType: int
    signature: "int debug_read_symbolic_ref(struct ref_store *ref_store, const char
      *refname,\n\t\t\t\t   struct strbuf *referent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::reflog_iterator_begin
      Src: /src/git/refs/debug.c:274,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ref_store
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: debug_reflog_iterator_begin
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_ref_store*::refs::be::reflog_iterator_begin
    - trace_printf_key
    linkageType: ''
    returnType: struct ref_iterator
    signature: 'struct ref_iterator *

      debug_reflog_iterator_begin(struct ref_store *ref_store)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/git/refs/debug.c:295,1
    - Dst: oid_to_hex_r
      Src: /src/git/refs/debug.c:297,1
    - Dst: oid_to_hex_r
      Src: /src/git/refs/debug.c:299,1
    - Dst: struct debug_reflog*::fn
      Src: /src/git/refs/debug.c:301,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 8
    argNames:
    - refname
    - old_oid
    - new_oid
    - committer
    - timestamp
    - tz
    - msg
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 308
    functionName: debug_print_reflog_ent
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_reflog*::fn
    - strchrnul
    - trace_printf_key
    - oid_to_hex_r
    linkageType: ''
    returnType: int
    signature: "int debug_print_reflog_ent(const char *refname,\n\t\t\t\t  struct
      object_id *old_oid,\n\t\t\t\t  struct object_id *new_oid,\n\t\t\t\t  const char
      *committer, timestamp_t timestamp,\n\t\t\t\t  int tz, const char *msg, void
      *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::for_each_reflog_ent
      Src: /src/git/refs/debug.c:321,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ref_store
    - refname
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - char*
    - each_reflog_ent_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 325
    functionName: debug_for_each_reflog_ent
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_store*::refs::be::for_each_reflog_ent
    linkageType: ''
    returnType: int
    signature: "int debug_for_each_reflog_ent(struct ref_store *ref_store,\n\t\t\t\t
      \    const char *refname, each_reflog_ent_fn fn,\n\t\t\t\t     void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::for_each_reflog_ent_reverse
      Src: /src/git/refs/debug.c:338,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ref_store
    - refname
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - char*
    - each_reflog_ent_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 342
    functionName: debug_for_each_reflog_ent_reverse
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_ref_store*::refs::be::for_each_reflog_ent_reverse
    - trace_printf_key
    linkageType: ''
    returnType: int
    signature: "int debug_for_each_reflog_ent_reverse(struct ref_store *ref_store,\n\t\t\t\t\t
      \    const char *refname,\n\t\t\t\t\t     each_reflog_ent_fn fn,\n\t\t\t\t\t
      \    void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::reflog_exists
      Src: /src/git/refs/debug.c:347,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref_store
    - refname
    argTypes:
    - struct ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: debug_reflog_exists
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_ref_store*::refs::be::reflog_exists
    - trace_printf_key
    linkageType: ''
    returnType: int
    signature: int debug_reflog_exists(struct ref_store *ref_store, const char *refname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::create_reflog
      Src: /src/git/refs/debug.c:356,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ref_store
    - refname
    - err
    argTypes:
    - struct ref_store*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: debug_create_reflog
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_store*::refs::be::create_reflog
    linkageType: ''
    returnType: int
    signature: "int debug_create_reflog(struct ref_store *ref_store, const char *refname,\n\t\t\t
      \      struct strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::delete_reflog
      Src: /src/git/refs/debug.c:364,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref_store
    - refname
    argTypes:
    - struct ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: debug_delete_reflog
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_store*::refs::be::delete_reflog
    linkageType: ''
    returnType: int
    signature: int debug_delete_reflog(struct ref_store *ref_store, const char *refname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:381,1
    - Dst: struct debug_reflog_expiry_should_prune*::prepare
      Src: /src/git/refs/debug.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - refname
    - oid
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: debug_reflog_expiry_prepare
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_reflog_expiry_should_prune*::prepare
    linkageType: ''
    returnType: void
    signature: "void debug_reflog_expiry_prepare(const char *refname,\n\t\t\t\t\tconst
      struct object_id *oid,\n\t\t\t\t\tvoid *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_reflog_expiry_should_prune*::should_prune
      Src: /src/git/refs/debug.c:392,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ooid
    - noid
    - email
    - timestamp
    - tz
    - message
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: debug_reflog_expiry_should_prune_fn
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_reflog_expiry_should_prune*::should_prune
    - trace_printf_key
    linkageType: ''
    returnType: int
    signature: "int debug_reflog_expiry_should_prune_fn(struct object_id *ooid,\n\t\t\t\t\t
      \      struct object_id *noid,\n\t\t\t\t\t       const char *email,\n\t\t\t\t\t
      \      timestamp_t timestamp, int tz,\n\t\t\t\t\t       const char *message,
      void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_reflog_expiry_should_prune*::cleanup
      Src: /src/git/refs/debug.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: debug_reflog_expiry_cleanup
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - struct debug_reflog_expiry_should_prune*::cleanup
    linkageType: ''
    returnType: void
    signature: void debug_reflog_expiry_cleanup(void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::reflog_expire
      Src: /src/git/refs/debug.c:417,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ref_store
    - refname
    - flags
    - prepare_fn
    - should_prune_fn
    - cleanup_fn
    - policy_cb_data
    argTypes:
    - struct ref_store*
    - char*
    - unsigned int
    - reflog_expiry_prepare_fn
    - reflog_expiry_should_prune_fn
    - reflog_expiry_cleanup_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 424
    functionName: debug_reflog_expire
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_store*::refs::be::reflog_expire
    linkageType: ''
    returnType: int
    signature: "int debug_reflog_expire(struct ref_store *ref_store, const char *refname,\n\t\t\t
      \      unsigned int flags,\n\t\t\t       reflog_expiry_prepare_fn prepare_fn,\n\t\t\t
      \      reflog_expiry_should_prune_fn should_prune_fn,\n\t\t\t       reflog_expiry_cleanup_fn
      cleanup_fn,\n\t\t\t       void *policy_cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct debug_ref_store*::refs::be::fsck
      Src: /src/git/refs/debug.c:431,1
    - Dst: trace_printf_key
      Src: /src/git/refs/debug.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ref_store
    - o
    - wt
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: debug_fsck
    functionSourceFile: /src/git/refs/debug.c
    functionUses: 0
    functionsReached:
    - trace_printf_key
    - struct debug_ref_store*::refs::be::fsck
    linkageType: ''
    returnType: int
    signature: "int debug_fsck(struct ref_store *ref_store,\n\t\t      struct fsck_options
      *o,\n\t\t      struct worktree *wt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: reftable_backend_on_reload
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_destroy
    linkageType: ''
    returnType: void
    signature: void reftable_backend_on_reload(void *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_new_stack
      Src: /src/git/refs/reftable-backend.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - be
    - path
    - _opts
    argTypes:
    - struct reftable_backend*
    - char*
    - struct reftable_write_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 8
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: reftable_backend_init
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_new_stack
    linkageType: ''
    returnType: int
    signature: "int reftable_backend_init(struct reftable_backend *be,\n\t\t\t\t const
      char *path,\n\t\t\t\t const struct reftable_write_options *_opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_stack_destroy
      Src: /src/git/refs/reftable-backend.c:61,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct reftable_backend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: reftable_backend_release
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_destroy
    - reftable_stack_destroy
    linkageType: ''
    returnType: void
    signature: void reftable_backend_release(struct reftable_backend *be)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: reftable_stack_init_ref_iterator
      Src: /src/git/refs/reftable-backend.c:76,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/refs/reftable-backend.c:81,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/refs/reftable-backend.c:85,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:89,1
    - Dst: strbuf_reset
      Src: /src/git/refs/reftable-backend.c:95,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/reftable-backend.c:96,1
    - Dst: reftable_ref_record_val1
      Src: /src/git/refs/reftable-backend.c:98,1
    - Dst: reftable_stack_hash_id
      Src: /src/git/refs/reftable-backend.c:101,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:109,1
    - Dst: reftable_stack_hash_id
      Src: /src/git/refs/reftable-backend.c:109,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:112,1
    - Dst: reftable_ref_record_val1
      Src: /src/git/refs/reftable-backend.c:112,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:116,1
    - Dst: assert
      Src: /src/git/refs/reftable-backend.c:120,1
    - Dst: reftable_ref_record_release
      Src: /src/git/refs/reftable-backend.c:121,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 5
    argNames:
    - be
    - refname
    - oid
    - referent
    - type
    argTypes:
    - struct reftable_backend*
    - char*
    - struct object_id*
    - struct strbuf*
    - unsigned int*
    assertStmts:
    - condition: (ret != REFTABLE_API_ERROR)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/git/refs/reftable-backend.c
    constantsTouched: []
    func_position:
      end: 123
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 123
    functionName: reftable_backend_read_ref
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - assert
    - strbuf_reset
    - reftable_stack_hash_id
    - reftable_iterator_seek_ref
    - reftable_ref_record_release
    - reftable_iterator_next_ref
    - reftable_ref_record_val1
    - strbuf_addstr
    - strcmp
    - BUG
    - reftable_stack_init_ref_iterator
    - oidread
    linkageType: ''
    returnType: int
    signature: "int reftable_backend_read_ref(struct reftable_backend *be,\n\t\t\t\t
      \    const char *refname,\n\t\t\t\t     struct object_id *oid,\n\t\t\t\t     struct
      strbuf *referent,\n\t\t\t\t     unsigned int *type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:163,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ref_store
    - required_flags
    - caller
    argTypes:
    - struct ref_store*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 173
    functionName: reftable_be_downcast
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: struct reftable_ref_store
    signature: "struct reftable_ref_store *reftable_be_downcast(struct ref_store *ref_store,\n\t\t\t\t\t\t
      \      unsigned int required_flags,\n\t\t\t\t\t\t       const char *caller)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strmap_get
      Src: /src/git/refs/reftable-backend.c:182,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:188,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/reftable-backend.c:191,1
    - Dst: reftable_backend_init
      Src: /src/git/refs/reftable-backend.c:192,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:195,1
    - Dst: strmap_put
      Src: /src/git/refs/reftable-backend.c:199,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - out
    - store
    - worktree_name
    argTypes:
    - struct reftable_backend**
    - struct reftable_ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 175
    functionDepth: 9
    functionLinenumber: 175
    functionLinenumberEnd: 204
    functionName: backend_for_worktree
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - CALLOC_ARRAY
    - strbuf_addf
    - strmap_get
    - strmap_put
    - free
    - reftable_backend_init
    linkageType: ''
    returnType: int
    signature: "int backend_for_worktree(struct reftable_backend **out,\n\t\t\t\tstruct
      reftable_ref_store *store,\n\t\t\t\tconst char *worktree_name)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: parse_worktree_ref
      Src: /src/git/refs/reftable-backend.c:235,1
    - Dst: strbuf_reset
      Src: /src/git/refs/reftable-backend.c:245,1
    - Dst: strbuf_add
      Src: /src/git/refs/reftable-backend.c:246,1
    - Dst: backend_for_worktree
      Src: /src/git/refs/reftable-backend.c:257,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:278,1
    - Dst: reftable_stack_reload
      Src: /src/git/refs/reftable-backend.c:283,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - out
    - store
    - refname
    - rewritten_ref
    - reload
    argTypes:
    - struct reftable_backend**
    - struct reftable_ref_store*
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 219
    functionDepth: 10
    functionLinenumber: 219
    functionLinenumberEnd: 285
    functionName: backend_for
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - parse_worktree_ref
    - strbuf_reset
    - backend_for_worktree
    - reftable_stack_reload
    - BUG
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int backend_for(struct reftable_backend **out,\n\t\t       struct
      reftable_ref_store *store,\n\t\t       const char *refname,\n\t\t       const
      char **rewritten_ref,\n\t\t       int reload)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_bare_repository
      Src: /src/git/refs/reftable-backend.c:291,1
    - Dst: refs_reflog_exists
      Src: /src/git/refs/reftable-backend.c:295,1
    - Dst: should_autocreate_reflog
      Src: /src/git/refs/reftable-backend.c:299,1
    - Dst: refs_reflog_exists
      Src: /src/git/refs/reftable-backend.c:301,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - refs
    - refname
    argTypes:
    - struct reftable_ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 305
    functionName: should_write_log
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - refs_reflog_exists
    - is_bare_repository
    - should_autocreate_reflog
    - BUG
    linkageType: ''
    returnType: int
    signature: int should_write_log(struct reftable_ref_store *refs, const char *refname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:312,1
    - Dst: xstrndup
      Src: /src/git/refs/reftable-backend.c:315,1
    - Dst: xstrndup
      Src: /src/git/refs/reftable-backend.c:317,1
    - Dst: atol
      Src: /src/git/refs/reftable-backend.c:318,1
    - Dst: atoi
      Src: /src/git/refs/reftable-backend.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - log
    - split
    argTypes:
    - struct reftable_log_record*
    - struct ident_split*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 307
    functionDepth: 11
    functionLinenumber: 307
    functionLinenumberEnd: 331
    functionName: fill_reftable_log_record
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - atol
    - atoi
    - xstrndup
    - reftable_log_record_release
    linkageType: ''
    returnType: void
    signature: void fill_reftable_log_record(struct reftable_log_record *log, const
      struct ident_split *split)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:339,1
    - Dst: git_config_ulong
      Src: /src/git/refs/reftable-backend.c:340,1
    - Dst: die
      Src: /src/git/refs/reftable-backend.c:342,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:344,1
    - Dst: git_config_ulong
      Src: /src/git/refs/reftable-backend.c:345,1
    - Dst: die
      Src: /src/git/refs/reftable-backend.c:347,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:349,1
    - Dst: git_config_bool
      Src: /src/git/refs/reftable-backend.c:350,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:351,1
    - Dst: git_config_ulong
      Src: /src/git/refs/reftable-backend.c:352,1
    - Dst: die
      Src: /src/git/refs/reftable-backend.c:354,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:356,1
    - Dst: git_config_int64
      Src: /src/git/refs/reftable-backend.c:357,1
    - Dst: die
      Src: /src/git/refs/reftable-backend.c:359,1
    - Dst: die
      Src: /src/git/refs/reftable-backend.c:361,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - var
    - value
    - ctx
    - _opts
    argTypes:
    - char*
    - char*
    - struct config_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 333
    functionDepth: 6
    functionLinenumber: 333
    functionLinenumberEnd: 366
    functionName: reftable_be_config
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - git_config_int64
    - die
    - git_config_ulong
    - strcmp
    - git_config_bool
    linkageType: ''
    returnType: int
    signature: "int reftable_be_config(const char *var, const char *value,\n\t\t\t
      \     const struct config_context *ctx,\n\t\t\t      void *_opts)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/refs/reftable-backend.c:373,1
    - Dst: umask
      Src: /src/git/refs/reftable-backend.c:380,1
    - Dst: umask
      Src: /src/git/refs/reftable-backend.c:381,1
    - Dst: refs_compute_filesystem_location
      Src: /src/git/refs/reftable-backend.c:383,1
    - Dst: base_ref_store_init
      Src: /src/git/refs/reftable-backend.c:386,1
    - Dst: strmap_init
      Src: /src/git/refs/reftable-backend.c:387,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:399,1
    - Dst: calc_shared_perm
      Src: /src/git/refs/reftable-backend.c:401,1
    - Dst: git_env_bool
      Src: /src/git/refs/reftable-backend.c:403,1
    - Dst: repo_config
      Src: /src/git/refs/reftable-backend.c:406,1
    - Dst: strbuf_addbuf
      Src: /src/git/refs/reftable-backend.c:422,1
    - Dst: strbuf_reset
      Src: /src/git/refs/reftable-backend.c:424,1
    - Dst: strbuf_realpath
      Src: /src/git/refs/reftable-backend.c:425,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/reftable-backend.c:427,1
    - Dst: reftable_backend_init
      Src: /src/git/refs/reftable-backend.c:428,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/reftable-backend.c:442,1
    - Dst: reftable_backend_init
      Src: /src/git/refs/reftable-backend.c:444,1
    - Dst: chdir_notify_reparent
      Src: /src/git/refs/reftable-backend.c:450,1
    - Dst: assert
      Src: /src/git/refs/reftable-backend.c:453,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:454,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:455,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:456,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 4
    argNames:
    - repo
    - payload
    - gitdir
    - opts
    argTypes:
    - struct repository*
    - char*
    - char*
    - struct ref_store_init_options*
    assertStmts:
    - condition: (refs->err != REFTABLE_API_ERROR)
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/git/refs/reftable-backend.c
    constantsTouched: []
    func_position:
      end: 458
      start: 368
    functionDepth: 19
    functionLinenumber: 368
    functionLinenumberEnd: 458
    functionName: reftable_be_init
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - git_env_bool
    - umask
    - strbuf_realpath
    - base_ref_store_init
    - strbuf_reset
    - refs_compute_filesystem_location
    - assert
    - chdir_notify_reparent
    - calc_shared_perm
    - repo_config
    - strbuf_addbuf
    - xcalloc
    - strbuf_addstr
    - reftable_backend_init
    - BUG
    - strmap_init
    linkageType: ''
    returnType: struct ref_store
    signature: "struct ref_store *reftable_be_init(struct repository *repo,\n\t\t\t\t\t
      \ const char *payload,\n\t\t\t\t\t  const char *gitdir,\n\t\t\t\t\t  const struct
      ref_store_init_options *opts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:462,1
    - Dst: reftable_backend_release
      Src: /src/git/refs/reftable-backend.c:467,1
    - Dst: reftable_backend_release
      Src: /src/git/refs/reftable-backend.c:469,1
    - Dst: strmap_for_each_entry
      Src: /src/git/refs/reftable-backend.c:471,1
    - Dst: reftable_backend_release
      Src: /src/git/refs/reftable-backend.c:473,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:474,1
    - Dst: strmap_clear
      Src: /src/git/refs/reftable-backend.c:476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ref_store
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 460
    functionDepth: 5
    functionLinenumber: 460
    functionLinenumberEnd: 477
    functionName: reftable_be_release
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - strmap_clear
    - reftable_backend_release
    - strmap_for_each_entry
    - free
    - reftable_be_downcast
    linkageType: ''
    returnType: void
    signature: void reftable_be_release(struct ref_store *ref_store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:484,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:487,1
    - Dst: safe_create_dir
      Src: /src/git/refs/reftable-backend.c:488,1
    - Dst: strbuf_reset
      Src: /src/git/refs/reftable-backend.c:489,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ref_store
    - UNUSED
    - UNUSED
    argTypes:
    - struct ref_store*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 479
    functionDepth: 4
    functionLinenumber: 479
    functionLinenumberEnd: 493
    functionName: reftable_be_create_on_disk
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - strbuf_reset
    - strbuf_addf
    - safe_create_dir
    - reftable_be_downcast
    linkageType: ''
    returnType: int
    signature: "int reftable_be_create_on_disk(struct ref_store *ref_store,\n\t\t\t\t
      \     int flags UNUSED,\n\t\t\t\t      struct strbuf *err UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:499,1
    - Dst: reftable_be_release
      Src: /src/git/refs/reftable-backend.c:508,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:510,1
    - Dst: remove_dir_recursively
      Src: /src/git/refs/reftable-backend.c:511,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:512,1
    - Dst: strerror
      Src: /src/git/refs/reftable-backend.c:513,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ref_store
    - err
    argTypes:
    - struct ref_store*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 495
    functionDepth: 8
    functionLinenumber: 495
    functionLinenumberEnd: 519
    functionName: reftable_be_remove_on_disk
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - remove_dir_recursively
    - reftable_be_release
    - strerror
    - strbuf_addf
    - reftable_be_downcast
    linkageType: ''
    returnType: int
    signature: "int reftable_be_remove_on_disk(struct ref_store *ref_store,\n\t\t\t\t
      \     struct strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/git/refs/reftable-backend.c:555,1
    - Dst: strncmp
      Src: /src/git/refs/reftable-backend.c:566,1
    - Dst: xstrfmt
      Src: /src/git/refs/reftable-backend.c:593,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/refs/reftable-backend.c:594,1
    - Dst: trace2_counter_add
      Src: /src/git/refs/reftable-backend.c:597,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct reftable_ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 543
    functionDepth: 5
    functionLinenumber: 543
    functionLinenumberEnd: 604
    functionName: should_exclude_current_ref
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - xstrfmt
    - reftable_iterator_seek_ref
    - strlen
    - free
    - strncmp
    - trace2_counter_add
    linkageType: ''
    returnType: int
    signature: int should_exclude_current_ref(struct reftable_ref_iterator *iter)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: reftable_iterator_next_ref
      Src: /src/git/refs/reftable-backend.c:616,1
    - Dst: starts_with
      Src: /src/git/refs/reftable-backend.c:624,1
    - Dst: is_root_ref
      Src: /src/git/refs/reftable-backend.c:626,1
    - Dst: strncmp
      Src: /src/git/refs/reftable-backend.c:631,1
    - Dst: should_exclude_current_ref
      Src: /src/git/refs/reftable-backend.c:636,1
    - Dst: parse_worktree_ref
      Src: /src/git/refs/reftable-backend.c:640,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:646,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:650,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:652,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/reftable-backend.c:656,1
    - Dst: oidclr
      Src: /src/git/refs/reftable-backend.c:661,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:664,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:667,1
    - Dst: check_refname_format
      Src: /src/git/refs/reftable-backend.c:670,1
    - Dst: refname_is_safe
      Src: /src/git/refs/reftable-backend.c:671,1
    - Dst: die
      Src: /src/git/refs/reftable-backend.c:672,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:672,1
    - Dst: oidclr
      Src: /src/git/refs/reftable-backend.c:673,1
    - Dst: ref_resolves_to_object
      Src: /src/git/refs/reftable-backend.c:683,1
    - Dst: memset
      Src: /src/git/refs/reftable-backend.c:687,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 58
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 606
    functionDepth: 6
    functionLinenumber: 606
    functionLinenumberEnd: 703
    functionName: reftable_ref_iterator_advance
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - memset
    - die
    - parse_worktree_ref
    - refs_resolve_ref_unsafe
    - is_root_ref
    - starts_with
    - is_null_oid
    - should_exclude_current_ref
    - refname_is_safe
    - oidclr
    - ref_resolves_to_object
    - reftable_iterator_next_ref
    - check_refname_format
    - _
    - strncmp
    - BUG
    - oidread
    linkageType: ''
    returnType: int
    signature: int reftable_ref_iterator_advance(struct ref_iterator *ref_iterator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/git/refs/reftable-backend.c:712,1
    - Dst: xstrdup_or_null
      Src: /src/git/refs/reftable-backend.c:716,1
    - Dst: strlen
      Src: /src/git/refs/reftable-backend.c:717,1
    - Dst: reftable_iterator_seek_ref
      Src: /src/git/refs/reftable-backend.c:719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - flags
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 722
    functionName: reftable_ref_iterator_seek
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_seek_ref
    - xstrdup_or_null
    - FREE_AND_NULL
    - strlen
    linkageType: ''
    returnType: int
    signature: "int reftable_ref_iterator_seek(struct ref_iterator *ref_iterator,\n\t\t\t\t
      \     const char *refname, unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_ref_record_release
      Src: /src/git/refs/reftable-backend.c:728,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:729,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:732,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:733,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 736
    functionName: reftable_ref_iterator_release
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_destroy
    - reftable_ref_record_release
    - free
    linkageType: ''
    returnType: void
    signature: void reftable_ref_iterator_release(struct ref_iterator *ref_iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 749
    functionName: qsort_strcmp
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int qsort_strcmp(const void *va, const void *vb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_glob_special
      Src: /src/git/refs/reftable-backend.c:767,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:774,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:775,1
    - Dst: QSORT
      Src: /src/git/refs/reftable-backend.c:779,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:780,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 785
    functionName: filter_exclude_patterns
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - QSORT
    - ALLOC_GROW
    - is_glob_special
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char **filter_exclude_patterns(const char **exclude_patterns)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/refs/reftable-backend.c:796,1
    - Dst: base_ref_iterator_init
      Src: /src/git/refs/reftable-backend.c:797,1
    - Dst: filter_exclude_patterns
      Src: /src/git/refs/reftable-backend.c:801,1
    - Dst: reftable_stack_reload
      Src: /src/git/refs/reftable-backend.c:807,1
    - Dst: reftable_stack_init_ref_iterator
      Src: /src/git/refs/reftable-backend.c:811,1
    - Dst: reftable_ref_iterator_seek
      Src: /src/git/refs/reftable-backend.c:815,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - refs
    - stack
    - prefix
    - exclude_patterns
    - flags
    argTypes:
    - struct reftable_ref_store*
    - struct reftable_stack*
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 787
    functionDepth: 8
    functionLinenumber: 787
    functionLinenumberEnd: 823
    functionName: ref_iterator_for_stack
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - base_ref_iterator_init
    - filter_exclude_patterns
    - xcalloc
    - reftable_stack_reload
    - reftable_ref_iterator_seek
    - reftable_stack_init_ref_iterator
    linkageType: ''
    returnType: struct reftable_ref_iterator
    signature: "struct reftable_ref_iterator *ref_iterator_for_stack(struct reftable_ref_store
      *refs,\n\t\t\t\t\t\t\t    struct reftable_stack *stack,\n\t\t\t\t\t\t\t    const
      char *prefix,\n\t\t\t\t\t\t\t    const char **exclude_patterns,\n\t\t\t\t\t\t\t
      \   int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:836,1
    - Dst: ref_iterator_for_stack
      Src: /src/git/refs/reftable-backend.c:838,1
    - Dst: ref_iterator_for_stack
      Src: /src/git/refs/reftable-backend.c:853,1
    - Dst: merge_ref_iterator_begin
      Src: /src/git/refs/reftable-backend.c:855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ref_store
    - prefix
    - exclude_patterns
    - flags
    argTypes:
    - struct ref_store*
    - char*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 825
    functionDepth: 9
    functionLinenumber: 825
    functionLinenumberEnd: 857
    functionName: reftable_be_iterator_begin
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - merge_ref_iterator_begin
    - ref_iterator_for_stack
    - reftable_be_downcast
    linkageType: ''
    returnType: struct ref_iterator
    signature: "struct ref_iterator *reftable_be_iterator_begin(struct ref_store *ref_store,\n\t\t\t\t\t\t
      \      const char *prefix,\n\t\t\t\t\t\t       const char **exclude_patterns,\n\t\t\t\t\t\t
      \      unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:867,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:874,1
    - Dst: reftable_backend_read_ref
      Src: /src/git/refs/reftable-backend.c:878,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - ref_store
    - refname
    - oid
    - referent
    - type
    - failure_errno
    argTypes:
    - struct ref_store*
    - char*
    - struct object_id*
    - struct strbuf*
    - unsigned int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 859
    functionDepth: 11
    functionLinenumber: 859
    functionLinenumberEnd: 887
    functionName: reftable_be_read_raw_ref
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_backend_read_ref
    - reftable_be_downcast
    - backend_for
    linkageType: ''
    returnType: int
    signature: "int reftable_be_read_raw_ref(struct ref_store *ref_store,\n\t\t\t\t
      \   const char *refname,\n\t\t\t\t    struct object_id *oid,\n\t\t\t\t    struct
      strbuf *referent,\n\t\t\t\t    unsigned int *type,\n\t\t\t\t    int *failure_errno)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:894,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:900,1
    - Dst: reftable_backend_read_ref
      Src: /src/git/refs/reftable-backend.c:904,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ref_store
    - refname
    - referent
    argTypes:
    - struct ref_store*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 889
    functionDepth: 11
    functionLinenumber: 889
    functionLinenumberEnd: 912
    functionName: reftable_be_read_symbolic_ref
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_backend_read_ref
    - reftable_be_downcast
    - backend_for
    linkageType: ''
    returnType: int
    signature: "int reftable_be_read_symbolic_ref(struct ref_store *ref_store,\n\t\t\t\t\t
      const char *refname,\n\t\t\t\t\t struct strbuf *referent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_addition_destroy
      Src: /src/git/refs/reftable-backend.c:940,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:941,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:943,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tx_data
    argTypes:
    - struct reftable_transaction_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 935
    functionDepth: 9
    functionLinenumber: 935
    functionLinenumberEnd: 945
    functionName: free_transaction_data
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_addition_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void free_transaction_data(struct reftable_transaction_data *tx_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:968,1
    - Dst: reftable_stack_new_addition
      Src: /src/git/refs/reftable-backend.c:983,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/reftable-backend.c:987,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:991,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - out
    - refs
    - tx_data
    - update
    - err
    argTypes:
    - struct write_transaction_table_arg**
    - struct reftable_ref_store*
    - struct reftable_transaction_data*
    - struct ref_update*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 951
    functionDepth: 11
    functionLinenumber: 951
    functionLinenumberEnd: 1010
    functionName: prepare_transaction_update
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_stack_new_addition
    - strbuf_addstr
    - backend_for
    - ALLOC_GROW
    linkageType: ''
    returnType: int
    signature: "int prepare_transaction_update(struct write_transaction_table_arg
      **out,\n\t\t\t\t      struct reftable_ref_store *refs,\n\t\t\t\t      struct
      reftable_transaction_data *tx_data,\n\t\t\t\t      struct ref_update *update,\n\t\t\t\t
      \     struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:1027,1
    - Dst: prepare_transaction_update
      Src: /src/git/refs/reftable-backend.c:1029,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:1033,1
    - Dst: oidcpy
      Src: /src/git/refs/reftable-backend.c:1036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - refs
    - tx_data
    - update
    - current_oid
    - err
    argTypes:
    - struct reftable_ref_store*
    - struct reftable_transaction_data*
    - struct ref_update*
    - struct object_id*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1017
    functionDepth: 12
    functionLinenumber: 1017
    functionLinenumberEnd: 1040
    functionName: queue_transaction_update
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - prepare_transaction_update
    - BUG
    - ALLOC_GROW
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int queue_transaction_update(struct reftable_ref_store *refs,\n\t\t\t\t
      \   struct reftable_transaction_data *tx_data,\n\t\t\t\t    struct ref_update
      *update,\n\t\t\t\t    struct object_id *current_oid,\n\t\t\t\t    struct strbuf
      *err)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:1065,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1073,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1073,1
    - Dst: queue_transaction_update
      Src: /src/git/refs/reftable-backend.c:1078,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:1091,1
    - Dst: string_list_has_string
      Src: /src/git/refs/reftable-backend.c:1097,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1099,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1100,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs/reftable-backend.c:1106,1
    - Dst: reftable_backend_read_ref
      Src: /src/git/refs/reftable-backend.c:1113,1
    - Dst: ref_update_expects_existing_old_ref
      Src: /src/git/refs/reftable-backend.c:1117,1
    - Dst: string_list_append
      Src: /src/git/refs/reftable-backend.c:1128,1
    - Dst: xmalloc
      Src: /src/git/refs/reftable-backend.c:1129,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:1130,1
    - Dst: ref_update_has_null_new_value
      Src: /src/git/refs/reftable-backend.c:1136,1
    - Dst: queue_transaction_update
      Src: /src/git/refs/reftable-backend.c:1137,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1147,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1147,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/reftable-backend.c:1149,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/reftable-backend.c:1159,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1164,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1164,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:1173,1
    - Dst: string_list_has_string
      Src: /src/git/refs/reftable-backend.c:1176,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1177,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1178,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs/reftable-backend.c:1192,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1215,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1215,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/reftable-backend.c:1218,1
    - Dst: ref_update_check_old_target
      Src: /src/git/refs/reftable-backend.c:1223,1
    - Dst: oideq
      Src: /src/git/refs/reftable-backend.c:1227,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:1246,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1247,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1247,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/reftable-backend.c:1249,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:1252,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1253,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1253,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/reftable-backend.c:1255,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:1257,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1258,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1258,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/reftable-backend.c:1260,1
    - Dst: oid_to_hex
      Src: /src/git/refs/reftable-backend.c:1261,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1264,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1264,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/reftable-backend.c:1266,1
    - Dst: oid_to_hex
      Src: /src/git/refs/reftable-backend.c:1267,1
    - Dst: oid_to_hex
      Src: /src/git/refs/reftable-backend.c:1268,1
    - Dst: oideq
      Src: /src/git/refs/reftable-backend.c:1286,1
    - Dst: queue_transaction_update
      Src: /src/git/refs/reftable-backend.c:1287,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 89
    argCount: 11
    argNames:
    - refs
    - tx_data
    - transaction
    - be
    - u
    - update_idx
    - refnames_to_check
    - head_type
    - head_referent
    - referent
    - err
    argTypes:
    - struct reftable_ref_store*
    - struct reftable_transaction_data*
    - struct ref_transaction*
    - struct reftable_backend*
    - struct ref_update*
    - size_t
    - struct string_list*
    - unsigned int
    - struct strbuf*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1042
    functionDepth: 13
    functionLinenumber: 1042
    functionLinenumberEnd: 1291
    functionName: prepare_single_update
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_backend_read_ref
    - refs_resolve_ref_unsafe
    - strbuf_addf
    - is_null_oid
    - xmalloc
    - ref_update_has_null_new_value
    - strcmp
    - ref_update_expects_existing_old_ref
    - ref_update_original_update_refname
    - memcpy
    - oid_to_hex
    - queue_transaction_update
    - string_list_append
    - _
    - ref_transaction_add_update
    - backend_for
    - string_list_has_string
    - ref_update_check_old_target
    - oideq
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error prepare_single_update(struct reftable_ref_store
      *refs,\n\t\t\t\t\t\t\tstruct reftable_transaction_data *tx_data,\n\t\t\t\t\t\t\tstruct
      ref_transaction *transaction,\n\t\t\t\t\t\t\tstruct reftable_backend *be,\n\t\t\t\t\t\t\tstruct
      ref_update *u,\n\t\t\t\t\t\t\tsize_t update_idx,\n\t\t\t\t\t\t\tstruct string_list
      *refnames_to_check,\n\t\t\t\t\t\t\tunsigned int head_type,\n\t\t\t\t\t\t\tstruct
      strbuf *head_referent,\n\t\t\t\t\t\t\tstruct strbuf *referent,\n\t\t\t\t\t\t\tstruct
      strbuf *err)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:1298,1
    - Dst: xcalloc
      Src: /src/git/refs/reftable-backend.c:1312,1
    - Dst: prepare_transaction_update
      Src: /src/git/refs/reftable-backend.c:1320,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/reftable-backend.c:1331,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:1346,1
    - Dst: reftable_backend_read_ref
      Src: /src/git/refs/reftable-backend.c:1350,1
    - Dst: prepare_single_update
      Src: /src/git/refs/reftable-backend.c:1357,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs/reftable-backend.c:1362,1
    - Dst: refs_verify_refnames_available
      Src: /src/git/refs/reftable-backend.c:1371,1
    - Dst: free_transaction_data
      Src: /src/git/refs/reftable-backend.c:1384,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1387,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1387,1
    - Dst: reftable_error_str
      Src: /src/git/refs/reftable-backend.c:1388,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:1390,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:1391,1
    - Dst: string_list_clear
      Src: /src/git/refs/reftable-backend.c:1392,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - ref_store
    - transaction
    - err
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1293
    functionDepth: 14
    functionLinenumber: 1293
    functionLinenumberEnd: 1395
    functionName: reftable_be_transaction_prepare
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - string_list_clear
    - strbuf_release
    - reftable_backend_read_ref
    - strbuf_addf
    - prepare_single_update
    - refs_verify_refnames_available
    - _
    - ref_transaction_maybe_set_rejected
    - free_transaction_data
    - xcalloc
    - CALLOC_ARRAY
    - prepare_transaction_update
    - reftable_error_str
    - reftable_be_downcast
    - backend_for
    linkageType: ''
    returnType: int
    signature: "int reftable_be_transaction_prepare(struct ref_store *ref_store,\n\t\t\t\t\t
      \  struct ref_transaction *transaction,\n\t\t\t\t\t   struct strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_transaction_data
      Src: /src/git/refs/reftable-backend.c:1402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ref_store
    - transaction
    - UNUSED
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1397
    functionDepth: 10
    functionLinenumber: 1397
    functionLinenumberEnd: 1405
    functionName: reftable_be_transaction_abort
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - free_transaction_data
    linkageType: ''
    returnType: int
    signature: "int reftable_be_transaction_abort(struct ref_store *ref_store UNUSED,\n\t\t\t\t\t
      struct ref_transaction *transaction,\n\t\t\t\t\t struct strbuf *err UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:1419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1420
    functionName: transaction_update_cmp
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int transaction_update_cmp(const void *a, const void *b)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: reftable_stack_next_update_index
      Src: /src/git/refs/reftable-backend.c:1425,1
    - Dst: git_committer_info
      Src: /src/git/refs/reftable-backend.c:1432,1
    - Dst: split_ident_line
      Src: /src/git/refs/reftable-backend.c:1433,1
    - Dst: strlen
      Src: /src/git/refs/reftable-backend.c:1433,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:1434,1
    - Dst: QSORT
      Src: /src/git/refs/reftable-backend.c:1436,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/refs/reftable-backend.c:1443,1
    - Dst: ref_update_has_null_new_value
      Src: /src/git/refs/reftable-backend.c:1467,1
    - Dst: reftable_stack_init_log_iterator
      Src: /src/git/refs/reftable-backend.c:1471,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/refs/reftable-backend.c:1484,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/refs/reftable-backend.c:1488,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:1491,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:1496,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1498,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:1503,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:1504,1
    - Dst: should_write_log
      Src: /src/git/refs/reftable-backend.c:1511,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/reftable-backend.c:1516,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:1530,1
    - Dst: memset
      Src: /src/git/refs/reftable-backend.c:1532,1
    - Dst: split_ident_line
      Src: /src/git/refs/reftable-backend.c:1535,1
    - Dst: strlen
      Src: /src/git/refs/reftable-backend.c:1536,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:1537,1
    - Dst: fill_reftable_log_record
      Src: /src/git/refs/reftable-backend.c:1542,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1550,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:1551,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:1553,1
    - Dst: xstrndup
      Src: /src/git/refs/reftable-backend.c:1556,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/refs/reftable-backend.c:1571,1
    - Dst: ref_update_has_null_new_value
      Src: /src/git/refs/reftable-backend.c:1574,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/refs/reftable-backend.c:1581,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:1592,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:1593,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:1594,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:1596,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/refs/reftable-backend.c:1599,1
    - Dst: reftable_writer_add_logs
      Src: /src/git/refs/reftable-backend.c:1610,1
    - Dst: assert
      Src: /src/git/refs/reftable-backend.c:1616,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:1618,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:1619,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 107
    argCount: 2
    argNames:
    - writer
    - cb_data
    argTypes:
    - struct reftable_writer*
    - void*
    assertStmts:
    - condition: (ret != REFTABLE_API_ERROR)
      pos:
        line_end: 1615
        line_start: 1615
        source_file: /src/git/refs/reftable-backend.c
    constantsTouched: []
    func_position:
      end: 1621
      start: 1422
    functionDepth: 12
    functionLinenumber: 1422
    functionLinenumberEnd: 1621
    functionName: write_transaction_table
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - should_write_log
    - reftable_iterator_next_log
    - refs_resolve_ref_unsafe
    - is_null_oid
    - ref_update_has_null_new_value
    - strcmp
    - reftable_iterator_seek_log
    - free
    - fill_reftable_log_record
    - reftable_log_record_release
    - reftable_stack_init_log_iterator
    - memcpy
    - reftable_writer_add_logs
    - QSORT
    - split_ident_line
    - reftable_writer_add_ref
    - memset
    - reftable_iterator_destroy
    - git_committer_info
    - xstrdup
    - reftable_stack_next_update_index
    - reftable_writer_set_limits
    - assert
    - xstrndup
    - strlen
    - ALLOC_GROW
    - BUG
    linkageType: ''
    returnType: int
    signature: int write_transaction_table(struct reftable_writer *writer, void *cb_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reftable_addition_add
      Src: /src/git/refs/reftable-backend.c:1633,1
    - Dst: reftable_addition_commit
      Src: /src/git/refs/reftable-backend.c:1638,1
    - Dst: assert
      Src: /src/git/refs/reftable-backend.c:1644,1
    - Dst: free_transaction_data
      Src: /src/git/refs/reftable-backend.c:1645,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:1649,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1649,1
    - Dst: reftable_error_str
      Src: /src/git/refs/reftable-backend.c:1650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - ref_store
    - transaction
    - err
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts:
    - condition: (ret != REFTABLE_API_ERROR)
      pos:
        line_end: 1643
        line_start: 1643
        source_file: /src/git/refs/reftable-backend.c
    constantsTouched: []
    func_position:
      end: 1654
      start: 1623
    functionDepth: 10
    functionLinenumber: 1623
    functionLinenumberEnd: 1654
    functionName: reftable_be_transaction_finish
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - assert
    - reftable_addition_add
    - strbuf_addf
    - free_transaction_data
    - reftable_addition_commit
    - _
    - reftable_error_str
    linkageType: ''
    returnType: int
    signature: "int reftable_be_transaction_finish(struct ref_store *ref_store UNUSED,\n\t\t\t\t\t
      \ struct ref_transaction *transaction,\n\t\t\t\t\t  struct strbuf *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:1660,1
    - Dst: reftable_stack_auto_compact
      Src: /src/git/refs/reftable-backend.c:1672,1
    - Dst: reftable_stack_compact_all
      Src: /src/git/refs/reftable-backend.c:1674,1
    - Dst: error
      Src: /src/git/refs/reftable-backend.c:1676,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1676,1
    - Dst: reftable_error_str
      Src: /src/git/refs/reftable-backend.c:1677,1
    - Dst: reftable_stack_clean
      Src: /src/git/refs/reftable-backend.c:1681,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ref_store
    - opts
    argTypes:
    - struct ref_store*
    - struct refs_optimize_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1656
    functionDepth: 11
    functionLinenumber: 1656
    functionLinenumberEnd: 1687
    functionName: reftable_be_optimize
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - error
    - reftable_stack_auto_compact
    - reftable_stack_clean
    - reftable_stack_compact_all
    - _
    - reftable_error_str
    - reftable_be_downcast
    linkageType: ''
    returnType: int
    signature: "int reftable_be_optimize(struct ref_store *ref_store,\n\t\t\t\tstruct
      refs_optimize_opts *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:1693,1
    - Dst: reftable_stack_compaction_required
      Src: /src/git/refs/reftable-backend.c:1708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ref_store
    - opts
    - required
    argTypes:
    - struct ref_store*
    - struct refs_optimize_opts*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1689
    functionDepth: 4
    functionLinenumber: 1689
    functionLinenumberEnd: 1710
    functionName: reftable_be_optimize_required
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_be_downcast
    - reftable_stack_compaction_required
    linkageType: ''
    returnType: int
    signature: "int reftable_be_optimize_required(struct ref_store *ref_store,\n\t\t\t\t\t
      struct refs_optimize_opts *opts,\n\t\t\t\t\t bool *required)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: git_committer_info
      Src: /src/git/refs/reftable-backend.c:1744,1
    - Dst: split_ident_line
      Src: /src/git/refs/reftable-backend.c:1745,1
    - Dst: strlen
      Src: /src/git/refs/reftable-backend.c:1745,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:1746,1
    - Dst: reftable_stack_read_ref
      Src: /src/git/refs/reftable-backend.c:1748,1
    - Dst: error
      Src: /src/git/refs/reftable-backend.c:1749,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1749,1
    - Dst: error
      Src: /src/git/refs/reftable-backend.c:1753,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:1753,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:1762,1
    - Dst: string_list_insert
      Src: /src/git/refs/reftable-backend.c:1771,1
    - Dst: refs_verify_refname_available
      Src: /src/git/refs/reftable-backend.c:1772,1
    - Dst: error
      Src: /src/git/refs/reftable-backend.c:1775,1
    - Dst: reftable_stack_next_update_index
      Src: /src/git/refs/reftable-backend.c:1787,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/refs/reftable-backend.c:1790,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1799,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1802,1
    - Dst: reftable_writer_add_refs
      Src: /src/git/refs/reftable-backend.c:1806,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:1822,1
    - Dst: memset
      Src: /src/git/refs/reftable-backend.c:1823,1
    - Dst: fill_reftable_log_record
      Src: /src/git/refs/reftable-backend.c:1824,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1825,1
    - Dst: xstrndup
      Src: /src/git/refs/reftable-backend.c:1828,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:1829,1
    - Dst: reftable_backend_read_ref
      Src: /src/git/refs/reftable-backend.c:1832,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:1836,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:1837,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:1845,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1847,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1849,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1851,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1853,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:1861,1
    - Dst: memset
      Src: /src/git/refs/reftable-backend.c:1862,1
    - Dst: fill_reftable_log_record
      Src: /src/git/refs/reftable-backend.c:1863,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1864,1
    - Dst: xstrndup
      Src: /src/git/refs/reftable-backend.c:1867,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:1868,1
    - Dst: reftable_stack_init_log_iterator
      Src: /src/git/refs/reftable-backend.c:1876,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/refs/reftable-backend.c:1880,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/refs/reftable-backend.c:1885,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:1888,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:1893,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:1898,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1900,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:1907,1
    - Dst: memset
      Src: /src/git/refs/reftable-backend.c:1908,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:1909,1
    - Dst: memset
      Src: /src/git/refs/reftable-backend.c:1920,1
    - Dst: reftable_writer_add_logs
      Src: /src/git/refs/reftable-backend.c:1923,1
    - Dst: assert
      Src: /src/git/refs/reftable-backend.c:1928,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:1929,1
    - Dst: string_list_clear
      Src: /src/git/refs/reftable-backend.c:1930,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:1931,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:1933,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:1934,1
    - Dst: ARRAY_SIZE
      Src: /src/git/refs/reftable-backend.c:1935,1
    - Dst: reftable_ref_record_release
      Src: /src/git/refs/reftable-backend.c:1936,1
    - Dst: reftable_ref_record_release
      Src: /src/git/refs/reftable-backend.c:1937,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:1938,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 129
    argCount: 2
    argNames:
    - writer
    - cb_data
    argTypes:
    - struct reftable_writer*
    - void*
    assertStmts:
    - condition: (ret != REFTABLE_API_ERROR)
      pos:
        line_end: 1927
        line_start: 1927
        source_file: /src/git/refs/reftable-backend.c
    constantsTouched: []
    func_position:
      end: 1940
      start: 1730
    functionDepth: 12
    functionLinenumber: 1730
    functionLinenumberEnd: 1940
    functionName: write_copy_table
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_next_log
    - reftable_backend_read_ref
    - strcmp
    - reftable_stack_read_ref
    - reftable_iterator_seek_log
    - free
    - error
    - strbuf_release
    - fill_reftable_log_record
    - string_list_insert
    - reftable_log_record_release
    - reftable_stack_init_log_iterator
    - memcpy
    - reftable_writer_add_logs
    - split_ident_line
    - string_list_clear
    - memset
    - ARRAY_SIZE
    - reftable_writer_add_refs
    - refs_verify_refname_available
    - _
    - reftable_iterator_destroy
    - git_committer_info
    - xstrdup
    - reftable_stack_next_update_index
    - reftable_writer_set_limits
    - assert
    - xstrndup
    - strlen
    - reftable_ref_record_release
    - ALLOC_GROW
    - BUG
    linkageType: ''
    returnType: int
    signature: int write_copy_table(struct reftable_writer *writer, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:1948,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:1962,1
    - Dst: reftable_stack_add
      Src: /src/git/refs/reftable-backend.c:1965,1
    - Dst: assert
      Src: /src/git/refs/reftable-backend.c:1969,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ref_store
    - oldrefname
    - newrefname
    - logmsg
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (ret != REFTABLE_API_ERROR)
      pos:
        line_end: 1968
        line_start: 1968
        source_file: /src/git/refs/reftable-backend.c
    constantsTouched: []
    func_position:
      end: 1971
      start: 1942
    functionDepth: 11
    functionLinenumber: 1942
    functionLinenumberEnd: 1971
    functionName: reftable_be_rename_ref
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - assert
    - reftable_be_downcast
    - reftable_stack_add
    - backend_for
    linkageType: ''
    returnType: int
    signature: "int reftable_be_rename_ref(struct ref_store *ref_store,\n\t\t\t\t
      \ const char *oldrefname,\n\t\t\t\t  const char *newrefname,\n\t\t\t\t  const
      char *logmsg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:1979,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:1992,1
    - Dst: reftable_stack_add
      Src: /src/git/refs/reftable-backend.c:1995,1
    - Dst: assert
      Src: /src/git/refs/reftable-backend.c:1999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ref_store
    - oldrefname
    - newrefname
    - logmsg
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (ret != REFTABLE_API_ERROR)
      pos:
        line_end: 1998
        line_start: 1998
        source_file: /src/git/refs/reftable-backend.c
    constantsTouched: []
    func_position:
      end: 2001
      start: 1973
    functionDepth: 11
    functionLinenumber: 1973
    functionLinenumberEnd: 2001
    functionName: reftable_be_copy_ref
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - assert
    - reftable_be_downcast
    - reftable_stack_add
    - backend_for
    linkageType: ''
    returnType: int
    signature: "int reftable_be_copy_ref(struct ref_store *ref_store,\n\t\t\t\tconst
      char *oldrefname,\n\t\t\t\tconst char *newrefname,\n\t\t\t\tconst char *logmsg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: reftable_iterator_next_log
      Src: /src/git/refs/reftable-backend.c:2018,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:2027,1
    - Dst: check_refname_format
      Src: /src/git/refs/reftable-backend.c:2030,1
    - Dst: strbuf_reset
      Src: /src/git/refs/reftable-backend.c:2034,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/reftable-backend.c:2035,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2012
    functionDepth: 4
    functionLinenumber: 2012
    functionLinenumberEnd: 2046
    functionName: reftable_reflog_iterator_advance
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_next_log
    - strbuf_reset
    - strcmp
    - strbuf_addstr
    - check_refname_format
    linkageType: ''
    returnType: int
    signature: int reftable_reflog_iterator_advance(struct ref_iterator *ref_iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:2052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - UNUSED
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2054
    functionName: reftable_reflog_iterator_seek
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: "int reftable_reflog_iterator_seek(struct ref_iterator *ref_iterator
      UNUSED,\n\t\t\t\t\t const char *refname UNUSED,\n\t\t\t\t\t unsigned int flags
      UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:2060,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:2061,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:2062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2056
    functionDepth: 3
    functionLinenumber: 2056
    functionLinenumberEnd: 2063
    functionName: reftable_reflog_iterator_release
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - reftable_iterator_destroy
    - reftable_log_record_release
    linkageType: ''
    returnType: void
    signature: void reftable_reflog_iterator_release(struct ref_iterator *ref_iterator)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/refs/reftable-backend.c:2077,1
    - Dst: base_ref_iterator_init
      Src: /src/git/refs/reftable-backend.c:2078,1
    - Dst: strbuf_init
      Src: /src/git/refs/reftable-backend.c:2079,1
    - Dst: reftable_stack_reload
      Src: /src/git/refs/reftable-backend.c:2086,1
    - Dst: reftable_stack_init_log_iterator
      Src: /src/git/refs/reftable-backend.c:2090,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/refs/reftable-backend.c:2094,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - refs
    - stack
    argTypes:
    - struct reftable_ref_store*
    - struct reftable_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2071
    functionDepth: 8
    functionLinenumber: 2071
    functionLinenumberEnd: 2101
    functionName: reflog_iterator_for_stack
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_seek_log
    - base_ref_iterator_init
    - reftable_stack_init_log_iterator
    - xcalloc
    - reftable_stack_reload
    - strbuf_init
    linkageType: ''
    returnType: struct reftable_reflog_iterator
    signature: "struct reftable_reflog_iterator *reflog_iterator_for_stack(struct
      reftable_ref_store *refs,\n\t\t\t\t\t\t\t\t  struct reftable_stack *stack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:2106,1
    - Dst: reflog_iterator_for_stack
      Src: /src/git/refs/reftable-backend.c:2109,1
    - Dst: reflog_iterator_for_stack
      Src: /src/git/refs/reftable-backend.c:2113,1
    - Dst: merge_ref_iterator_begin
      Src: /src/git/refs/reftable-backend.c:2115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ref_store
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2103
    functionDepth: 9
    functionLinenumber: 2103
    functionLinenumberEnd: 2117
    functionName: reftable_be_reflog_iterator_begin
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reflog_iterator_for_stack
    - merge_ref_iterator_begin
    - reftable_be_downcast
    linkageType: ''
    returnType: struct ref_iterator
    signature: struct ref_iterator *reftable_be_reflog_iterator_begin(struct ref_store
      *ref_store)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:2127,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:2128,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:2135,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:2135,1
    - Dst: fmt_ident
      Src: /src/git/refs/reftable-backend.c:2138,1
    - Dst: fn
      Src: /src/git/refs/reftable-backend.c:2140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - refs
    - log
    - fn
    - cb_data
    argTypes:
    - struct reftable_ref_store*
    - struct reftable_log_record*
    - each_reflog_ent_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2119
    functionDepth: 7
    functionLinenumber: 2119
    functionLinenumberEnd: 2143
    functionName: yield_log_record
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - fn
    - fmt_ident
    - is_null_oid
    - oidread
    linkageType: ''
    returnType: int
    signature: "int yield_log_record(struct reftable_ref_store *refs,\n\t\t\t    struct
      reftable_log_record *log,\n\t\t\t    each_reflog_ent_fn fn,\n\t\t\t    void
      *cb_data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:2151,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:2164,1
    - Dst: reftable_stack_init_log_iterator
      Src: /src/git/refs/reftable-backend.c:2168,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/refs/reftable-backend.c:2172,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/refs/reftable-backend.c:2174,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:2177,1
    - Dst: yield_log_record
      Src: /src/git/refs/reftable-backend.c:2182,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:2188,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:2189,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - ref_store
    - refname
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - char*
    - each_reflog_ent_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2145
    functionDepth: 11
    functionLinenumber: 2145
    functionLinenumberEnd: 2191
    functionName: reftable_be_for_each_reflog_ent_reverse
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_next_log
    - reftable_log_record_release
    - reftable_stack_init_log_iterator
    - strcmp
    - reftable_iterator_seek_log
    - yield_log_record
    - reftable_iterator_destroy
    - reftable_be_downcast
    - backend_for
    linkageType: ''
    returnType: int
    signature: "int reftable_be_for_each_reflog_ent_reverse(struct ref_store *ref_store,\n\t\t\t\t\t\t
      \  const char *refname,\n\t\t\t\t\t\t   each_reflog_ent_fn fn,\n\t\t\t\t\t\t
      \  void *cb_data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:2199,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:2213,1
    - Dst: reftable_stack_init_log_iterator
      Src: /src/git/refs/reftable-backend.c:2217,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/refs/reftable-backend.c:2221,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/refs/reftable-backend.c:2225,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:2228,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:2229,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:2234,1
    - Dst: yield_log_record
      Src: /src/git/refs/reftable-backend.c:2239,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:2245,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:2247,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:2248,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 4
    argNames:
    - ref_store
    - refname
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - char*
    - each_reflog_ent_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2193
    functionDepth: 11
    functionLinenumber: 2193
    functionLinenumberEnd: 2250
    functionName: reftable_be_for_each_reflog_ent
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_next_log
    - reftable_log_record_release
    - reftable_stack_init_log_iterator
    - free
    - strcmp
    - ALLOC_GROW
    - reftable_iterator_seek_log
    - yield_log_record
    - reftable_iterator_destroy
    - reftable_be_downcast
    - backend_for
    linkageType: ''
    returnType: int
    signature: "int reftable_be_for_each_reflog_ent(struct ref_store *ref_store,\n\t\t\t\t\t
      \  const char *refname,\n\t\t\t\t\t   each_reflog_ent_fn fn,\n\t\t\t\t\t   void
      *cb_data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:2256,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:2266,1
    - Dst: reftable_stack_init_log_iterator
      Src: /src/git/refs/reftable-backend.c:2270,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/refs/reftable-backend.c:2274,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/refs/reftable-backend.c:2282,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:2290,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:2293,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:2294,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - ref_store
    - refname
    argTypes:
    - struct ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2252
    functionDepth: 11
    functionLinenumber: 2252
    functionLinenumberEnd: 2298
    functionName: reftable_be_reflog_exists
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_next_log
    - reftable_log_record_release
    - reftable_stack_init_log_iterator
    - strcmp
    - reftable_iterator_seek_log
    - reftable_iterator_destroy
    - reftable_be_downcast
    - backend_for
    linkageType: ''
    returnType: int
    signature: "int reftable_be_reflog_exists(struct ref_store *ref_store,\n\t\t\t\t
      \    const char *refname)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_stack_next_update_index
      Src: /src/git/refs/reftable-backend.c:2310,1
    - Dst: reftable_stack_read_log
      Src: /src/git/refs/reftable-backend.c:2314,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/refs/reftable-backend.c:2318,1
    - Dst: xstrdup
      Src: /src/git/refs/reftable-backend.c:2327,1
    - Dst: reftable_writer_add_log
      Src: /src/git/refs/reftable-backend.c:2330,1
    - Dst: assert
      Src: /src/git/refs/reftable-backend.c:2333,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:2334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - writer
    - cb_data
    argTypes:
    - struct reftable_writer*
    - void*
    assertStmts:
    - condition: (ret != REFTABLE_API_ERROR)
      pos:
        line_end: 2332
        line_start: 2332
        source_file: /src/git/refs/reftable-backend.c
    constantsTouched: []
    func_position:
      end: 2336
      start: 2306
    functionDepth: 5
    functionLinenumber: 2306
    functionLinenumberEnd: 2336
    functionName: write_reflog_existence_table
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_stack_next_update_index
    - reftable_writer_set_limits
    - reftable_writer_add_log
    - assert
    - reftable_log_record_release
    - reftable_stack_read_log
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int write_reflog_existence_table(struct reftable_writer *writer,\n\t\t\t\t\tvoid
      *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:2343,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:2355,1
    - Dst: reftable_stack_add
      Src: /src/git/refs/reftable-backend.c:2360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ref_store
    - refname
    - errmsg
    argTypes:
    - struct ref_store*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2338
    functionDepth: 11
    functionLinenumber: 2338
    functionLinenumberEnd: 2365
    functionName: reftable_be_create_reflog
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_be_downcast
    - reftable_stack_add
    - backend_for
    linkageType: ''
    returnType: int
    signature: "int reftable_be_create_reflog(struct ref_store *ref_store,\n\t\t\t\t
      \    const char *refname,\n\t\t\t\t     struct strbuf *errmsg UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reftable_stack_next_update_index
      Src: /src/git/refs/reftable-backend.c:2377,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/refs/reftable-backend.c:2380,1
    - Dst: reftable_stack_init_log_iterator
      Src: /src/git/refs/reftable-backend.c:2384,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/refs/reftable-backend.c:2393,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/refs/reftable-backend.c:2395,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:2398,1
    - Dst: reftable_writer_add_log
      Src: /src/git/refs/reftable-backend.c:2407,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:2411,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:2412,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - writer
    - cb_data
    argTypes:
    - struct reftable_writer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2372
    functionDepth: 5
    functionLinenumber: 2372
    functionLinenumberEnd: 2414
    functionName: write_reflog_delete_table
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_stack_next_update_index
    - reftable_writer_set_limits
    - reftable_iterator_next_log
    - reftable_writer_add_log
    - reftable_log_record_release
    - reftable_stack_init_log_iterator
    - strcmp
    - reftable_iterator_seek_log
    - reftable_iterator_destroy
    linkageType: ''
    returnType: int
    signature: int write_reflog_delete_table(struct reftable_writer *writer, void
      *cb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:2420,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:2427,1
    - Dst: reftable_stack_add
      Src: /src/git/refs/reftable-backend.c:2432,1
    - Dst: assert
      Src: /src/git/refs/reftable-backend.c:2435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ref_store
    - refname
    argTypes:
    - struct ref_store*
    - char*
    assertStmts:
    - condition: (ret != REFTABLE_API_ERROR)
      pos:
        line_end: 2434
        line_start: 2434
        source_file: /src/git/refs/reftable-backend.c
    constantsTouched: []
    func_position:
      end: 2437
      start: 2416
    functionDepth: 11
    functionLinenumber: 2416
    functionLinenumberEnd: 2437
    functionName: reftable_be_delete_reflog
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - assert
    - reftable_be_downcast
    - reftable_stack_add
    - backend_for
    linkageType: ''
    returnType: int
    signature: "int reftable_be_delete_reflog(struct ref_store *ref_store,\n\t\t\t\t
      \    const char *refname)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: reftable_stack_next_update_index
      Src: /src/git/refs/reftable-backend.c:2451,1
    - Dst: reftable_writer_set_limits
      Src: /src/git/refs/reftable-backend.c:2460,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:2464,1
    - Dst: peel_object
      Src: /src/git/refs/reftable-backend.c:2471,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:2473,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:2474,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:2477,1
    - Dst: reftable_writer_add_ref
      Src: /src/git/refs/reftable-backend.c:2480,1
    - Dst: reftable_writer_add_log
      Src: /src/git/refs/reftable-backend.c:2497,1
    - Dst: reftable_writer_add_log
      Src: /src/git/refs/reftable-backend.c:2503,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - writer
    - cb_data
    argTypes:
    - struct reftable_writer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2448
    functionDepth: 6
    functionLinenumber: 2448
    functionLinenumberEnd: 2509
    functionName: write_reflog_expiry_table
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_stack_next_update_index
    - reftable_writer_set_limits
    - reftable_writer_add_log
    - memcpy
    - is_null_oid
    - peel_object
    - reftable_writer_add_ref
    linkageType: ''
    returnType: int
    signature: int write_reflog_expiry_table(struct reftable_writer *writer, void
      *cb_data)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:2533,1
    - Dst: backend_for
      Src: /src/git/refs/reftable-backend.c:2550,1
    - Dst: reftable_stack_new_addition
      Src: /src/git/refs/reftable-backend.c:2554,1
    - Dst: reftable_stack_init_log_iterator
      Src: /src/git/refs/reftable-backend.c:2559,1
    - Dst: reftable_iterator_seek_log
      Src: /src/git/refs/reftable-backend.c:2563,1
    - Dst: reftable_backend_read_ref
      Src: /src/git/refs/reftable-backend.c:2567,1
    - Dst: prepare_fn
      Src: /src/git/refs/reftable-backend.c:2570,1
    - Dst: reftable_iterator_next_log
      Src: /src/git/refs/reftable-backend.c:2576,1
    - Dst: strcmp
      Src: /src/git/refs/reftable-backend.c:2579,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:2580,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:2584,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:2586,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:2593,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:2593,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:2594,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/reftable-backend.c:2598,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/reftable-backend.c:2612,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:2618,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:2620,1
    - Dst: should_prune_fn
      Src: /src/git/refs/reftable-backend.c:2623,1
    - Dst: memcpy
      Src: /src/git/refs/reftable-backend.c:2631,1
    - Dst: is_null_oid
      Src: /src/git/refs/reftable-backend.c:2636,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:2637,1
    - Dst: reftable_addition_add
      Src: /src/git/refs/reftable-backend.c:2645,1
    - Dst: reftable_addition_commit
      Src: /src/git/refs/reftable-backend.c:2654,1
    - Dst: cleanup_fn
      Src: /src/git/refs/reftable-backend.c:2658,1
    - Dst: assert
      Src: /src/git/refs/reftable-backend.c:2659,1
    - Dst: reftable_iterator_destroy
      Src: /src/git/refs/reftable-backend.c:2661,1
    - Dst: reftable_addition_destroy
      Src: /src/git/refs/reftable-backend.c:2662,1
    - Dst: reftable_log_record_release
      Src: /src/git/refs/reftable-backend.c:2664,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:2665,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:2666,1
    - Dst: free
      Src: /src/git/refs/reftable-backend.c:2667,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 81
    argCount: 7
    argNames:
    - ref_store
    - refname
    - flags
    - prepare_fn
    - should_prune_fn
    - cleanup_fn
    - policy_cb_data
    argTypes:
    - struct ref_store*
    - char*
    - unsigned int
    - reflog_expiry_prepare_fn
    - reflog_expiry_should_prune_fn
    - reflog_expiry_cleanup_fn
    - void*
    assertStmts:
    - condition: (ret != REFTABLE_API_ERROR)
      pos:
        line_end: 2658
        line_start: 2658
        source_file: /src/git/refs/reftable-backend.c
    constantsTouched: []
    func_position:
      end: 2669
      start: 2511
    functionDepth: 11
    functionLinenumber: 2511
    functionLinenumberEnd: 2669
    functionName: reftable_be_reflog_expire
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - reftable_iterator_next_log
    - reftable_backend_read_ref
    - is_null_oid
    - strcmp
    - reftable_iterator_seek_log
    - CALLOC_ARRAY
    - free
    - reftable_be_downcast
    - strbuf_release
    - should_prune_fn
    - reftable_log_record_release
    - reftable_addition_add
    - reftable_stack_init_log_iterator
    - memcpy
    - reftable_stack_new_addition
    - reftable_addition_destroy
    - cleanup_fn
    - reftable_iterator_destroy
    - backend_for
    - assert
    - reftable_addition_commit
    - ALLOC_GROW
    - prepare_fn
    - oidread
    linkageType: ''
    returnType: int
    signature: "int reftable_be_reflog_expire(struct ref_store *ref_store,\n\t\t\t\t
      \    const char *refname,\n\t\t\t\t     unsigned int flags,\n\t\t\t\t     reflog_expiry_prepare_fn
      prepare_fn,\n\t\t\t\t     reflog_expiry_should_prune_fn should_prune_fn,\n\t\t\t\t
      \    reflog_expiry_cleanup_fn cleanup_fn,\n\t\t\t\t     void *policy_cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/refs/reftable-backend.c:2676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - msg
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2671
    functionDepth: 1
    functionLinenumber: 2671
    functionLinenumberEnd: 2677
    functionName: reftable_fsck_verbose_handler
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - fprintf_ln
    linkageType: ''
    returnType: void
    signature: void reftable_fsck_verbose_handler(const char *msg, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:2691,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:2696,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/reftable-backend.c:2698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - info
    - cb_data
    argTypes:
    - struct reftable_fsck_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2683
    functionDepth: 5
    functionLinenumber: 2683
    functionLinenumberEnd: 2699
    functionName: reftable_fsck_error_handler
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - fsck_report_ref
    - BUG
    linkageType: ''
    returnType: int
    signature: "int reftable_fsck_error_handler(struct reftable_fsck_info *info,\n\t\t\t\t
      \      void *cb_data)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: reftable_be_downcast
      Src: /src/git/refs/reftable-backend.c:2705,1
    - Dst: is_main_worktree
      Src: /src/git/refs/reftable-backend.c:2713,1
    - Dst: backend_for_worktree
      Src: /src/git/refs/reftable-backend.c:2716,1
    - Dst: error
      Src: /src/git/refs/reftable-backend.c:2718,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:2718,1
    - Dst: reftable_fsck_check
      Src: /src/git/refs/reftable-backend.c:2724,1
    - Dst: ref_iterator_for_stack
      Src: /src/git/refs/reftable-backend.c:2727,1
    - Dst: error
      Src: /src/git/refs/reftable-backend.c:2729,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:2729,1
    - Dst: reftable_iterator_next_ref
      Src: /src/git/refs/reftable-backend.c:2734,1
    - Dst: error
      Src: /src/git/refs/reftable-backend.c:2738,1
    - Dst: _
      Src: /src/git/refs/reftable-backend.c:2738,1
    - Dst: strbuf_reset
      Src: /src/git/refs/reftable-backend.c:2742,1
    - Dst: is_main_worktree
      Src: /src/git/refs/reftable-backend.c:2743,1
    - Dst: strbuf_addf
      Src: /src/git/refs/reftable-backend.c:2744,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/reftable-backend.c:2745,1
    - Dst: reftable_stack_hash_id
      Src: /src/git/refs/reftable-backend.c:2754,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:2762,1
    - Dst: reftable_stack_hash_id
      Src: /src/git/refs/reftable-backend.c:2763,1
    - Dst: oidread
      Src: /src/git/refs/reftable-backend.c:2766,1
    - Dst: reftable_ref_record_val1
      Src: /src/git/refs/reftable-backend.c:2766,1
    - Dst: refs_fsck_ref
      Src: /src/git/refs/reftable-backend.c:2769,1
    - Dst: refs_fsck_symref
      Src: /src/git/refs/reftable-backend.c:2773,1
    - Dst: BUG
      Src: /src/git/refs/reftable-backend.c:2777,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/reftable-backend.c:2785,1
    - Dst: reftable_ref_record_release
      Src: /src/git/refs/reftable-backend.c:2786,1
    - Dst: strbuf_release
      Src: /src/git/refs/reftable-backend.c:2787,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 3
    argNames:
    - ref_store
    - o
    - wt
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2789
      start: 2701
    functionDepth: 10
    functionLinenumber: 2701
    functionLinenumberEnd: 2789
    functionName: reftable_be_fsck
    functionSourceFile: /src/git/refs/reftable-backend.c
    functionUses: 0
    functionsReached:
    - ref_iterator_for_stack
    - reftable_stack_hash_id
    - strbuf_addf
    - reftable_fsck_check
    - reftable_iterator_next_ref
    - reftable_ref_record_val1
    - reftable_be_downcast
    - error
    - strbuf_release
    - refs_fsck_ref
    - refs_fsck_symref
    - strbuf_addstr
    - _
    - is_main_worktree
    - strbuf_reset
    - backend_for_worktree
    - reftable_ref_record_release
    - ref_iterator_free
    - BUG
    - oidread
    linkageType: ''
    returnType: int
    signature: "int reftable_be_fsck(struct ref_store *ref_store, struct fsck_options
      *o,\n\t\t\t    struct worktree *wt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - snapshot
    argTypes:
    - struct snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: acquire_snapshot
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acquire_snapshot(struct snapshot *snapshot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/git/refs/packed-backend.c:183,1
    - Dst: die_errno
      Src: /src/git/refs/packed-backend.c:184,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - snapshot
    argTypes:
    - struct snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 191
    functionName: clear_snapshot_buffer
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - munmap
    - die_errno
    - free
    linkageType: ''
    returnType: void
    signature: void clear_snapshot_buffer(struct snapshot *snapshot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat_validity_clear
      Src: /src/git/refs/packed-backend.c:200,1
    - Dst: clear_snapshot_buffer
      Src: /src/git/refs/packed-backend.c:201,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - snapshot
    argTypes:
    - struct snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: release_snapshot
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - stat_validity_clear
    - clear_snapshot_buffer
    - free
    linkageType: ''
    returnType: int
    signature: int release_snapshot(struct snapshot *snapshot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - snapshot
    argTypes:
    - struct snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: snapshot_hexsz
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t snapshot_hexsz(const struct snapshot *snapshot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/refs/packed-backend.c:223,1
    - Dst: base_ref_store_init
      Src: /src/git/refs/packed-backend.c:227,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:230,1
    - Dst: strbuf_detach
      Src: /src/git/refs/packed-backend.c:231,1
    - Dst: chdir_notify_reparent
      Src: /src/git/refs/packed-backend.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - repo
    - payload
    - gitdir
    - opts
    argTypes:
    - struct repository*
    - char*
    - char*
    - struct ref_store_init_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 7
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: packed_ref_store_init
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - base_ref_store_init
    - chdir_notify_reparent
    - strbuf_addf
    - strbuf_detach
    - xcalloc
    linkageType: ''
    returnType: struct ref_store
    signature: "struct ref_store *packed_ref_store_init(struct repository *repo,\n\t\t\t\t\tconst
      char *payload UNUSED,\n\t\t\t\t\tconst char *gitdir,\n\t\t\t\t\tconst struct
      ref_store_init_options *opts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs/packed-backend.c:249,1
    - Dst: BUG
      Src: /src/git/refs/packed-backend.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ref_store
    - required_flags
    - caller
    argTypes:
    - struct ref_store*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: packed_downcast
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: struct packed_ref_store
    signature: "struct packed_ref_store *packed_downcast(struct ref_store *ref_store,\n\t\t\t\t\t\tunsigned
      int required_flags,\n\t\t\t\t\t\tconst char *caller)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release_snapshot
      Src: /src/git/refs/packed-backend.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - refs
    argTypes:
    - struct packed_ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 269
    functionName: clear_snapshot
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - release_snapshot
    linkageType: ''
    returnType: void
    signature: void clear_snapshot(struct packed_ref_store *refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:273,1
    - Dst: clear_snapshot
      Src: /src/git/refs/packed-backend.c:274,1
    - Dst: rollback_lock_file
      Src: /src/git/refs/packed-backend.c:275,1
    - Dst: delete_tempfile
      Src: /src/git/refs/packed-backend.c:276,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ref_store
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 271
    functionDepth: 6
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: packed_ref_store_release
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - delete_tempfile
    - clear_snapshot
    - packed_downcast
    - rollback_lock_file
    - free
    linkageType: ''
    returnType: void
    signature: void packed_ref_store_release(struct ref_store *ref_store)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/git/refs/packed-backend.c:284,1
    - Dst: die
      Src: /src/git/refs/packed-backend.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - path
    - p
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: die_unterminated_line
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - die
    linkageType: ''
    returnType: NORETURN
    signature: "NORETURN die_unterminated_line(const char *path,\n\t\t\t\t\t   const
      char *p, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:292,1
    - Dst: die_unterminated_line
      Src: /src/git/refs/packed-backend.c:295,1
    - Dst: die
      Src: /src/git/refs/packed-backend.c:297,1
    - Dst: die
      Src: /src/git/refs/packed-backend.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - path
    - p
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 301
    functionName: die_invalid_line
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - memchr
    - die_unterminated_line
    - die
    linkageType: ''
    returnType: NORETURN
    signature: "NORETURN die_invalid_line(const char *path,\n\t\t\t\t      const char
      *p, size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 323
    functionName: cmp_packed_refname
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_packed_refname(const char *r1, const char *r2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snapshot_hexsz
      Src: /src/git/refs/packed-backend.c:330,1
    - Dst: snapshot_hexsz
      Src: /src/git/refs/packed-backend.c:331,1
    - Dst: cmp_packed_refname
      Src: /src/git/refs/packed-backend.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v1
    - v2
    - cb_data
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 334
    functionName: cmp_packed_ref_records
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - snapshot_hexsz
    - cmp_packed_refname
    linkageType: ''
    returnType: int
    signature: "int cmp_packed_ref_records(const void *v1, const void *v2,\n\t\t\t\t
      \ void *cb_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snapshot_hexsz
      Src: /src/git/refs/packed-backend.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - rec
    - refname
    - start
    - snapshot
    argTypes:
    - char*
    - char*
    - int
    - struct snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 356
    functionName: cmp_record_to_refname
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - snapshot_hexsz
    linkageType: ''
    returnType: int
    signature: "int cmp_record_to_refname(const char *rec, const char *refname,\n\t\t\t\t
      int start, const struct snapshot *snapshot)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_GROW
      Src: /src/git/refs/packed-backend.c:383,1
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:386,1
    - Dst: BUG
      Src: /src/git/refs/packed-backend.c:389,1
    - Dst: snapshot_hexsz
      Src: /src/git/refs/packed-backend.c:390,1
    - Dst: die_invalid_line
      Src: /src/git/refs/packed-backend.c:391,1
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:401,1
    - Dst: BUG
      Src: /src/git/refs/packed-backend.c:404,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/packed-backend.c:408,1
    - Dst: cmp_packed_ref_records
      Src: /src/git/refs/packed-backend.c:415,1
    - Dst: QSORT_S
      Src: /src/git/refs/packed-backend.c:426,1
    - Dst: xmalloc
      Src: /src/git/refs/packed-backend.c:433,1
    - Dst: memcpy
      Src: /src/git/refs/packed-backend.c:435,1
    - Dst: clear_snapshot_buffer
      Src: /src/git/refs/packed-backend.c:443,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:448,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - snapshot
    argTypes:
    - struct snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 449
    functionName: sort_snapshot
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - cmp_packed_ref_records
    - memchr
    - die_invalid_line
    - snapshot_hexsz
    - memcpy
    - xmalloc
    - clear_snapshot_buffer
    - ALLOC_GROW
    - free
    - BUG
    - QSORT_S
    linkageType: ''
    returnType: void
    signature: void sort_snapshot(struct snapshot *snapshot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - p
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: find_start_of_record
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *find_start_of_record(const char *buf, const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - p
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: find_end_of_record
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *find_end_of_record(const char *p, const char *end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_start_of_record
      Src: /src/git/refs/packed-backend.c:501,1
    - Dst: snapshot_hexsz
      Src: /src/git/refs/packed-backend.c:503,1
    - Dst: die_invalid_line
      Src: /src/git/refs/packed-backend.c:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - snapshot
    argTypes:
    - struct snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 506
    functionName: verify_buffer_safe
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - find_start_of_record
    - snapshot_hexsz
    - die_invalid_line
    linkageType: ''
    returnType: void
    signature: void verify_buffer_safe(struct snapshot *snapshot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - refname
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: refname_contains_nul
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: int
    signature: int refname_contains_nul(struct strbuf *refname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsize_t
      Src: /src/git/refs/packed-backend.c:530,1
    - Dst: xmalloc
      Src: /src/git/refs/packed-backend.c:535,1
    - Dst: read_in_full
      Src: /src/git/refs/packed-backend.c:536,1
    - Dst: die_errno
      Src: /src/git/refs/packed-backend.c:538,1
    - Dst: xmmap
      Src: /src/git/refs/packed-backend.c:541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - snapshot
    - fd
    - st
    argTypes:
    - struct snapshot*
    - int
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 525
    functionDepth: 8
    functionLinenumber: 525
    functionLinenumberEnd: 549
    functionName: allocate_snapshot_buffer
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - die_errno
    - xmmap
    - read_in_full
    - xsize_t
    - xmalloc
    linkageType: ''
    returnType: int
    signature: int allocate_snapshot_buffer(struct snapshot *snapshot, int fd, struct
      stat *st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/refs/packed-backend.c:563,1
    - Dst: die_errno
      Src: /src/git/refs/packed-backend.c:575,1
    - Dst: stat_validity_update
      Src: /src/git/refs/packed-backend.c:579,1
    - Dst: fstat
      Src: /src/git/refs/packed-backend.c:581,1
    - Dst: die_errno
      Src: /src/git/refs/packed-backend.c:582,1
    - Dst: allocate_snapshot_buffer
      Src: /src/git/refs/packed-backend.c:584,1
    - Dst: close
      Src: /src/git/refs/packed-backend.c:586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - snapshot
    argTypes:
    - struct snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 557
    functionDepth: 9
    functionLinenumber: 557
    functionLinenumberEnd: 588
    functionName: load_contents
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - open
    - allocate_snapshot_buffer
    - stat_validity_update
    - fstat
    - die_errno
    - close
    linkageType: ''
    returnType: int
    signature: int load_contents(struct snapshot *snapshot)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_start_of_record
      Src: /src/git/refs/packed-backend.c:621,1
    - Dst: cmp_record_to_refname
      Src: /src/git/refs/packed-backend.c:622,1
    - Dst: find_end_of_record
      Src: /src/git/refs/packed-backend.c:624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - snapshot
    - refname
    - mustexist
    - start
    argTypes:
    - struct snapshot*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 636
    functionName: find_reference_location_1
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - find_start_of_record
    - cmp_record_to_refname
    - find_end_of_record
    linkageType: ''
    returnType: char
    signature: "char *find_reference_location_1(struct snapshot *snapshot,\n\t\t\t\t\t
      \    const char *refname, int mustexist,\n\t\t\t\t\t     int start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_reference_location_1
      Src: /src/git/refs/packed-backend.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - snapshot
    - refname
    - mustexist
    argTypes:
    - struct snapshot*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 656
    functionName: find_reference_location
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - find_reference_location_1
    linkageType: ''
    returnType: char
    signature: "char *find_reference_location(struct snapshot *snapshot,\n\t\t\t\t\t
      \  const char *refname, int mustexist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_reference_location_1
      Src: /src/git/refs/packed-backend.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - snapshot
    - refname
    - mustexist
    argTypes:
    - struct snapshot*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 3
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: find_reference_location_end
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - find_reference_location_1
    linkageType: ''
    returnType: char
    signature: "char *find_reference_location_end(struct snapshot *snapshot,\n\t\t\t\t\t
      \      const char *refname,\n\t\t\t\t\t       int mustexist)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/refs/packed-backend.c:708,1
    - Dst: acquire_snapshot
      Src: /src/git/refs/packed-backend.c:712,1
    - Dst: load_contents
      Src: /src/git/refs/packed-backend.c:715,1
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:723,1
    - Dst: die_unterminated_line
      Src: /src/git/refs/packed-backend.c:726,1
    - Dst: xmemdupz
      Src: /src/git/refs/packed-backend.c:730,1
    - Dst: skip_prefix
      Src: /src/git/refs/packed-backend.c:732,1
    - Dst: die_invalid_line
      Src: /src/git/refs/packed-backend.c:733,1
    - Dst: string_list_split_in_place
      Src: /src/git/refs/packed-backend.c:737,1
    - Dst: unsorted_string_list_has_string
      Src: /src/git/refs/packed-backend.c:739,1
    - Dst: unsorted_string_list_has_string
      Src: /src/git/refs/packed-backend.c:741,1
    - Dst: unsorted_string_list_has_string
      Src: /src/git/refs/packed-backend.c:744,1
    - Dst: string_list_clear
      Src: /src/git/refs/packed-backend.c:751,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:752,1
    - Dst: verify_buffer_safe
      Src: /src/git/refs/packed-backend.c:755,1
    - Dst: sort_snapshot
      Src: /src/git/refs/packed-backend.c:758,1
    - Dst: verify_buffer_safe
      Src: /src/git/refs/packed-backend.c:765,1
    - Dst: xmalloc
      Src: /src/git/refs/packed-backend.c:774,1
    - Dst: memcpy
      Src: /src/git/refs/packed-backend.c:776,1
    - Dst: clear_snapshot_buffer
      Src: /src/git/refs/packed-backend.c:777,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - refs
    argTypes:
    - struct packed_ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 706
    functionDepth: 10
    functionLinenumber: 706
    functionLinenumberEnd: 783
    functionName: create_snapshot
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - verify_buffer_safe
    - xmemdupz
    - memchr
    - string_list_clear
    - die_invalid_line
    - acquire_snapshot
    - skip_prefix
    - sort_snapshot
    - load_contents
    - memcpy
    - unsorted_string_list_has_string
    - xmalloc
    - clear_snapshot_buffer
    - xcalloc
    - free
    - string_list_split_in_place
    - die_unterminated_line
    linkageType: ''
    returnType: struct snapshot
    signature: struct snapshot *create_snapshot(struct packed_ref_store *refs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat_validity_check
      Src: /src/git/refs/packed-backend.c:792,1
    - Dst: clear_snapshot
      Src: /src/git/refs/packed-backend.c:793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - refs
    argTypes:
    - struct packed_ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 789
    functionDepth: 5
    functionLinenumber: 789
    functionLinenumberEnd: 794
    functionName: validate_snapshot
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - clear_snapshot
    - stat_validity_check
    linkageType: ''
    returnType: void
    signature: void validate_snapshot(struct packed_ref_store *refs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_lock_file_locked
      Src: /src/git/refs/packed-backend.c:807,1
    - Dst: validate_snapshot
      Src: /src/git/refs/packed-backend.c:808,1
    - Dst: create_snapshot
      Src: /src/git/refs/packed-backend.c:811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - refs
    argTypes:
    - struct packed_ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 805
    functionDepth: 11
    functionLinenumber: 805
    functionLinenumberEnd: 814
    functionName: get_snapshot
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - is_lock_file_locked
    - create_snapshot
    - validate_snapshot
    linkageType: ''
    returnType: struct snapshot
    signature: struct snapshot *get_snapshot(struct packed_ref_store *refs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:821,1
    - Dst: get_snapshot
      Src: /src/git/refs/packed-backend.c:822,1
    - Dst: find_reference_location
      Src: /src/git/refs/packed-backend.c:827,1
    - Dst: get_oid_hex_algop
      Src: /src/git/refs/packed-backend.c:835,1
    - Dst: die_invalid_line
      Src: /src/git/refs/packed-backend.c:836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - ref_store
    - refname
    - oid
    - referent
    - type
    - failure_errno
    argTypes:
    - struct ref_store*
    - char*
    - struct object_id*
    - struct strbuf*
    - unsigned int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 816
    functionDepth: 12
    functionLinenumber: 816
    functionLinenumberEnd: 840
    functionName: packed_read_raw_ref
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - die_invalid_line
    - get_snapshot
    - packed_downcast
    - get_oid_hex_algop
    - find_reference_location
    linkageType: ''
    returnType: int
    signature: "int packed_read_raw_ref(struct ref_store *ref_store, const char *refname,\n\t\t\t
      \      struct object_id *oid, struct strbuf *referent UNUSED,\n\t\t\t       unsigned
      int *type, int *failure_errno)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/git/refs/packed-backend.c:890,1
    - Dst: strbuf_reset
      Src: /src/git/refs/packed-backend.c:891,1
    - Dst: trace2_counter_add
      Src: /src/git/refs/packed-backend.c:908,1
    - Dst: snapshot_hexsz
      Src: /src/git/refs/packed-backend.c:920,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/refs/packed-backend.c:921,1
    - Dst: isspace
      Src: /src/git/refs/packed-backend.c:922,1
    - Dst: die_invalid_line
      Src: /src/git/refs/packed-backend.c:923,1
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:927,1
    - Dst: die_unterminated_line
      Src: /src/git/refs/packed-backend.c:929,1
    - Dst: strbuf_add
      Src: /src/git/refs/packed-backend.c:932,1
    - Dst: refname_contains_nul
      Src: /src/git/refs/packed-backend.c:935,1
    - Dst: die
      Src: /src/git/refs/packed-backend.c:936,1
    - Dst: check_refname_format
      Src: /src/git/refs/packed-backend.c:938,1
    - Dst: refname_is_safe
      Src: /src/git/refs/packed-backend.c:939,1
    - Dst: die
      Src: /src/git/refs/packed-backend.c:940,1
    - Dst: oidclr
      Src: /src/git/refs/packed-backend.c:942,1
    - Dst: starts_with
      Src: /src/git/refs/packed-backend.c:947,1
    - Dst: snapshot_hexsz
      Src: /src/git/refs/packed-backend.c:954,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/refs/packed-backend.c:955,1
    - Dst: die_invalid_line
      Src: /src/git/refs/packed-backend.c:957,1
    - Dst: oidclr
      Src: /src/git/refs/packed-backend.c:967,1
    - Dst: oidclr
      Src: /src/git/refs/packed-backend.c:974,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct packed_ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 886
    functionDepth: 4
    functionLinenumber: 886
    functionLinenumberEnd: 978
    functionName: next_record
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - isspace
    - memset
    - memchr
    - die
    - die_invalid_line
    - strbuf_reset
    - refname_contains_nul
    - parse_oid_hex_algop
    - snapshot_hexsz
    - refname_is_safe
    - starts_with
    - oidclr
    - check_refname_format
    - trace2_counter_add
    - die_unterminated_line
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: int next_record(struct packed_ref_iterator *iter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: next_record
      Src: /src/git/refs/packed-backend.c:986,1
    - Dst: is_per_worktree_ref
      Src: /src/git/refs/packed-backend.c:991,1
    - Dst: ref_resolves_to_object
      Src: /src/git/refs/packed-backend.c:995,1
    - Dst: BUG
      Src: /src/git/refs/packed-backend.c:1001,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 980
    functionDepth: 5
    functionLinenumber: 980
    functionLinenumberEnd: 1012
    functionName: packed_ref_iterator_advance
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - next_record
    - ref_resolves_to_object
    - BUG
    - is_per_worktree_ref
    linkageType: ''
    returnType: int
    signature: int packed_ref_iterator_advance(struct ref_iterator *ref_iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_reference_location
      Src: /src/git/refs/packed-backend.c:1022,1
    - Dst: FREE_AND_NULL
      Src: /src/git/refs/packed-backend.c:1027,1
    - Dst: xstrdup_or_null
      Src: /src/git/refs/packed-backend.c:1030,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - flags
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1014
    functionDepth: 4
    functionLinenumber: 1014
    functionLinenumberEnd: 1036
    functionName: packed_ref_iterator_seek
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - xstrdup_or_null
    - FREE_AND_NULL
    - find_reference_location
    linkageType: ''
    returnType: int
    signature: "int packed_ref_iterator_seek(struct ref_iterator *ref_iterator,\n\t\t\t\t
      \   const char *refname, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:1042,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:1043,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:1044,1
    - Dst: release_snapshot
      Src: /src/git/refs/packed-backend.c:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1038
    functionDepth: 4
    functionLinenumber: 1038
    functionLinenumberEnd: 1046
    functionName: packed_ref_iterator_release
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - release_snapshot
    - strbuf_release
    - free
    linkageType: ''
    returnType: void
    signature: void packed_ref_iterator_release(struct ref_iterator *ref_iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1064
    functionName: jump_list_entry_cmp
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int jump_list_entry_cmp(const void *va, const void *vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_glob_special
      Src: /src/git/refs/packed-backend.c:1070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1074
    functionName: has_glob_special
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - is_glob_special
    linkageType: ''
    returnType: int
    signature: int has_glob_special(const char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: has_glob_special
      Src: /src/git/refs/packed-backend.c:1099,1
    - Dst: find_reference_location
      Src: /src/git/refs/packed-backend.c:1102,1
    - Dst: find_reference_location_end
      Src: /src/git/refs/packed-backend.c:1103,1
    - Dst: ALLOC_GROW
      Src: /src/git/refs/packed-backend.c:1108,1
    - Dst: QSORT
      Src: /src/git/refs/packed-backend.c:1123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - iter
    - snapshot
    - excluded_patterns
    argTypes:
    - struct packed_ref_iterator*
    - struct snapshot*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1076
    functionDepth: 4
    functionLinenumber: 1076
    functionLinenumberEnd: 1154
    functionName: populate_excluded_jump_list
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - QSORT
    - has_glob_special
    - ALLOC_GROW
    - find_reference_location_end
    - find_reference_location
    linkageType: ''
    returnType: void
    signature: "void populate_excluded_jump_list(struct packed_ref_iterator *iter,\n\t\t\t\t\tstruct
      snapshot *snapshot,\n\t\t\t\t\tconst char **excluded_patterns)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:1169,1
    - Dst: get_snapshot
      Src: /src/git/refs/packed-backend.c:1176,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/packed-backend.c:1178,1
    - Dst: base_ref_iterator_init
      Src: /src/git/refs/packed-backend.c:1180,1
    - Dst: populate_excluded_jump_list
      Src: /src/git/refs/packed-backend.c:1183,1
    - Dst: acquire_snapshot
      Src: /src/git/refs/packed-backend.c:1186,1
    - Dst: strbuf_init
      Src: /src/git/refs/packed-backend.c:1187,1
    - Dst: packed_ref_iterator_seek
      Src: /src/git/refs/packed-backend.c:1191,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/packed-backend.c:1193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - ref_store
    - prefix
    - exclude_patterns
    - flags
    argTypes:
    - struct ref_store*
    - char*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1156
    functionDepth: 12
    functionLinenumber: 1156
    functionLinenumberEnd: 1198
    functionName: packed_ref_iterator_begin
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - base_ref_iterator_init
    - packed_ref_iterator_seek
    - get_snapshot
    - packed_downcast
    - acquire_snapshot
    - CALLOC_ARRAY
    - populate_excluded_jump_list
    - ref_iterator_free
    - strbuf_init
    linkageType: ''
    returnType: struct ref_iterator
    signature: "struct ref_iterator *packed_ref_iterator_begin(\n\t\tstruct ref_store
      *ref_store,\n\t\tconst char *prefix, const char **exclude_patterns,\n\t\tunsigned
      int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/git/refs/packed-backend.c:1210,1
    - Dst: oid_to_hex
      Src: /src/git/refs/packed-backend.c:1210,1
    - Dst: fprintf
      Src: /src/git/refs/packed-backend.c:1211,1
    - Dst: oid_to_hex
      Src: /src/git/refs/packed-backend.c:1211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - fh
    - refname
    - oid
    - peeled
    argTypes:
    - FILE*
    - char*
    - struct object_id*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1206
    functionDepth: 3
    functionLinenumber: 1206
    functionLinenumberEnd: 1215
    functionName: write_packed_entry
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int write_packed_entry(FILE *fh, const char *refname,\n\t\t\t      const
      struct object_id *oid,\n\t\t\t      const struct object_id *peeled)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:1220,1
    - Dst: repo_config_get_int
      Src: /src/git/refs/packed-backend.c:1226,1
    - Dst: hold_lock_file_for_update_timeout
      Src: /src/git/refs/packed-backend.c:1235,1
    - Dst: unable_to_lock_message
      Src: /src/git/refs/packed-backend.c:1239,1
    - Dst: close_lock_file_gently
      Src: /src/git/refs/packed-backend.c:1243,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1244,1
    - Dst: strerror
      Src: /src/git/refs/packed-backend.c:1244,1
    - Dst: rollback_lock_file
      Src: /src/git/refs/packed-backend.c:1245,1
    - Dst: clear_snapshot
      Src: /src/git/refs/packed-backend.c:1266,1
    - Dst: get_snapshot
      Src: /src/git/refs/packed-backend.c:1272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ref_store
    - flags
    - err
    argTypes:
    - struct ref_store*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1217
    functionDepth: 19
    functionLinenumber: 1217
    functionLinenumberEnd: 1274
    functionName: packed_refs_lock
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - repo_config_get_int
    - close_lock_file_gently
    - clear_snapshot
    - get_snapshot
    - packed_downcast
    - strbuf_addf
    - strerror
    - hold_lock_file_for_update_timeout
    - rollback_lock_file
    - unable_to_lock_message
    linkageType: ''
    returnType: int
    signature: int packed_refs_lock(struct ref_store *ref_store, int flags, struct
      strbuf *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:1278,1
    - Dst: is_lock_file_locked
      Src: /src/git/refs/packed-backend.c:1283,1
    - Dst: BUG
      Src: /src/git/refs/packed-backend.c:1284,1
    - Dst: rollback_lock_file
      Src: /src/git/refs/packed-backend.c:1285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ref_store
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1276
    functionDepth: 6
    functionLinenumber: 1276
    functionLinenumberEnd: 1286
    functionName: packed_refs_unlock
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - is_lock_file_locked
    - packed_downcast
    - rollback_lock_file
    - BUG
    linkageType: ''
    returnType: void
    signature: void packed_refs_unlock(struct ref_store *ref_store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:1290,1
    - Dst: is_lock_file_locked
      Src: /src/git/refs/packed-backend.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref_store
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1296
    functionName: packed_refs_is_locked
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - is_lock_file_locked
    - packed_downcast
    linkageType: ''
    returnType: int
    signature: int packed_refs_is_locked(struct ref_store *ref_store)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:1301,1
    - Dst: stat
      Src: /src/git/refs/packed-backend.c:1305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ref_store
    - out
    argTypes:
    - struct ref_store*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1298
    functionDepth: 2
    functionLinenumber: 1298
    functionLinenumberEnd: 1314
    functionName: packed_refs_size
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - packed_downcast
    - stat
    linkageType: ''
    returnType: int
    signature: "int packed_refs_size(struct ref_store *ref_store,\n\t\t     size_t
      *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ref_store
    - UNUSED
    - UNUSED
    argTypes:
    - struct ref_store*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1333
    functionName: packed_ref_store_create_on_disk
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int packed_ref_store_create_on_disk(struct ref_store *ref_store UNUSED,\n\t\t\t\t\t
      \  int flags UNUSED,\n\t\t\t\t\t   struct strbuf *err UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:1338,1
    - Dst: remove_path
      Src: /src/git/refs/packed-backend.c:1340,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/packed-backend.c:1341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ref_store
    - err
    argTypes:
    - struct ref_store*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1335
    functionDepth: 4
    functionLinenumber: 1335
    functionLinenumberEnd: 1346
    functionName: packed_ref_store_remove_on_disk
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - packed_downcast
    - remove_path
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: "int packed_ref_store_remove_on_disk(struct ref_store *ref_store,\n\t\t\t\t\t
      \  struct strbuf *err)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: is_lock_file_locked
      Src: /src/git/refs/packed-backend.c:1371,1
    - Dst: BUG
      Src: /src/git/refs/packed-backend.c:1372,1
    - Dst: get_locked_file_path
      Src: /src/git/refs/packed-backend.c:1379,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1380,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:1381,1
    - Dst: create_tempfile
      Src: /src/git/refs/packed-backend.c:1382,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1384,1
    - Dst: strerror
      Src: /src/git/refs/packed-backend.c:1385,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:1386,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:1389,1
    - Dst: fdopen_tempfile
      Src: /src/git/refs/packed-backend.c:1391,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1393,1
    - Dst: strerror
      Src: /src/git/refs/packed-backend.c:1394,1
    - Dst: fprintf
      Src: /src/git/refs/packed-backend.c:1398,1
    - Dst: packed_ref_iterator_begin
      Src: /src/git/refs/packed-backend.c:1408,1
    - Dst: ref_iterator_advance
      Src: /src/git/refs/packed-backend.c:1410,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/packed-backend.c:1411,1
    - Dst: strcmp
      Src: /src/git/refs/packed-backend.c:1429,1
    - Dst: is_null_oid
      Src: /src/git/refs/packed-backend.c:1439,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1440,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs/packed-backend.c:1445,1
    - Dst: oideq
      Src: /src/git/refs/packed-backend.c:1452,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1453,1
    - Dst: oid_to_hex
      Src: /src/git/refs/packed-backend.c:1456,1
    - Dst: oid_to_hex
      Src: /src/git/refs/packed-backend.c:1457,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs/packed-backend.c:1460,1
    - Dst: ref_iterator_advance
      Src: /src/git/refs/packed-backend.c:1477,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/packed-backend.c:1478,1
    - Dst: is_null_oid
      Src: /src/git/refs/packed-backend.c:1497,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1498,1
    - Dst: oid_to_hex
      Src: /src/git/refs/packed-backend.c:1501,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs/packed-backend.c:1504,1
    - Dst: write_packed_entry
      Src: /src/git/refs/packed-backend.c:1516,1
    - Dst: ref_iterator_advance
      Src: /src/git/refs/packed-backend.c:1520,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/packed-backend.c:1521,1
    - Dst: is_null_oid
      Src: /src/git/refs/packed-backend.c:1524,1
    - Dst: write_packed_entry
      Src: /src/git/refs/packed-backend.c:1536,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/packed-backend.c:1546,1
    - Dst: fflush
      Src: /src/git/refs/packed-backend.c:1551,1
    - Dst: fsync_component
      Src: /src/git/refs/packed-backend.c:1552,1
    - Dst: get_tempfile_fd
      Src: /src/git/refs/packed-backend.c:1552,1
    - Dst: close_tempfile_gently
      Src: /src/git/refs/packed-backend.c:1553,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1554,1
    - Dst: get_tempfile_path
      Src: /src/git/refs/packed-backend.c:1555,1
    - Dst: strerror
      Src: /src/git/refs/packed-backend.c:1556,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:1557,1
    - Dst: delete_tempfile
      Src: /src/git/refs/packed-backend.c:1558,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1565,1
    - Dst: get_tempfile_path
      Src: /src/git/refs/packed-backend.c:1566,1
    - Dst: strerror
      Src: /src/git/refs/packed-backend.c:1566,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/packed-backend.c:1570,1
    - Dst: delete_tempfile
      Src: /src/git/refs/packed-backend.c:1571,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 122
    argCount: 3
    argNames:
    - refs
    - transaction
    - err
    argTypes:
    - struct packed_ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1358
    functionDepth: 13
    functionLinenumber: 1358
    functionLinenumberEnd: 1573
    functionName: write_with_updates
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - create_tempfile
    - is_null_oid
    - ref_transaction_maybe_set_rejected
    - strcmp
    - free
    - packed_ref_iterator_begin
    - fdopen_tempfile
    - get_tempfile_path
    - delete_tempfile
    - strbuf_release
    - strerror
    - get_locked_file_path
    - strbuf_addstr
    - write_packed_entry
    - oid_to_hex
    - fflush
    - close_tempfile_gently
    - is_lock_file_locked
    - ref_iterator_advance
    - get_tempfile_fd
    - fsync_component
    - ref_iterator_free
    - BUG
    - fprintf
    - oideq
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error write_with_updates(struct packed_ref_store
      *refs,\n\t\t\t\t\t\t     struct ref_transaction *transaction,\n\t\t\t\t\t\t
      \    struct strbuf *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:1578,1
    - Dst: is_lock_file_locked
      Src: /src/git/refs/packed-backend.c:1586,1
    - Dst: BUG
      Src: /src/git/refs/packed-backend.c:1587,1
    - Dst: is_null_oid
      Src: /src/git/refs/packed-backend.c:1628,1
    - Dst: refs_read_raw_ref
      Src: /src/git/refs/packed-backend.c:1654,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:1666,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - ref_store
    - transaction
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1575
    functionDepth: 3
    functionLinenumber: 1575
    functionLinenumberEnd: 1668
    functionName: is_packed_transaction_needed
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - refs_read_raw_ref
    - packed_downcast
    - is_null_oid
    - is_lock_file_locked
    - BUG
    linkageType: ''
    returnType: int
    signature: "int is_packed_transaction_needed(struct ref_store *ref_store,\n\t\t\t\t
      struct ref_transaction *transaction)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_tempfile_active
      Src: /src/git/refs/packed-backend.c:1681,1
    - Dst: delete_tempfile
      Src: /src/git/refs/packed-backend.c:1682,1
    - Dst: is_lock_file_locked
      Src: /src/git/refs/packed-backend.c:1684,1
    - Dst: packed_refs_unlock
      Src: /src/git/refs/packed-backend.c:1685,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:1689,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - refs
    - transaction
    argTypes:
    - struct packed_ref_store*
    - struct ref_transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1675
    functionDepth: 7
    functionLinenumber: 1675
    functionLinenumberEnd: 1694
    functionName: packed_transaction_cleanup
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - delete_tempfile
    - packed_refs_unlock
    - free
    - is_lock_file_locked
    - is_tempfile_active
    linkageType: ''
    returnType: void
    signature: "void packed_transaction_cleanup(struct packed_ref_store *refs,\n\t\t\t\t
      \      struct ref_transaction *transaction)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:1700,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/packed-backend.c:1716,1
    - Dst: is_lock_file_locked
      Src: /src/git/refs/packed-backend.c:1720,1
    - Dst: packed_refs_lock
      Src: /src/git/refs/packed-backend.c:1721,1
    - Dst: write_with_updates
      Src: /src/git/refs/packed-backend.c:1726,1
    - Dst: packed_transaction_cleanup
      Src: /src/git/refs/packed-backend.c:1734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - ref_store
    - transaction
    - err
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1696
    functionDepth: 20
    functionLinenumber: 1696
    functionLinenumberEnd: 1736
    functionName: packed_transaction_prepare
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - packed_refs_lock
    - packed_downcast
    - write_with_updates
    - packed_transaction_cleanup
    - CALLOC_ARRAY
    - is_lock_file_locked
    linkageType: ''
    returnType: int
    signature: "int packed_transaction_prepare(struct ref_store *ref_store,\n\t\t\t\t
      \     struct ref_transaction *transaction,\n\t\t\t\t      struct strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:1742,1
    - Dst: packed_transaction_cleanup
      Src: /src/git/refs/packed-backend.c:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ref_store
    - transaction
    - UNUSED
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1738
    functionDepth: 8
    functionLinenumber: 1738
    functionLinenumberEnd: 1749
    functionName: packed_transaction_abort
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - packed_downcast
    - packed_transaction_cleanup
    linkageType: ''
    returnType: int
    signature: "int packed_transaction_abort(struct ref_store *ref_store,\n\t\t\t\t
      \   struct ref_transaction *transaction,\n\t\t\t\t    struct strbuf *err UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:1755,1
    - Dst: clear_snapshot
      Src: /src/git/refs/packed-backend.c:1762,1
    - Dst: get_locked_file_path
      Src: /src/git/refs/packed-backend.c:1764,1
    - Dst: rename_tempfile
      Src: /src/git/refs/packed-backend.c:1765,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1766,1
    - Dst: strerror
      Src: /src/git/refs/packed-backend.c:1767,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:1774,1
    - Dst: packed_transaction_cleanup
      Src: /src/git/refs/packed-backend.c:1775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ref_store
    - transaction
    - err
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1751
    functionDepth: 8
    functionLinenumber: 1751
    functionLinenumberEnd: 1777
    functionName: packed_transaction_finish
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - rename_tempfile
    - clear_snapshot
    - packed_downcast
    - strbuf_addf
    - strerror
    - get_locked_file_path
    - packed_transaction_cleanup
    - free
    linkageType: ''
    returnType: int
    signature: "int packed_transaction_finish(struct ref_store *ref_store,\n\t\t\t\t
      \    struct ref_transaction *transaction,\n\t\t\t\t     struct strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref_store
    - UNUSED
    argTypes:
    - struct ref_store*
    - struct refs_optimize_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1779
    functionDepth: 0
    functionLinenumber: 1779
    functionLinenumberEnd: 1788
    functionName: packed_optimize
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int packed_optimize(struct ref_store *ref_store UNUSED,\n\t\t\t   struct
      refs_optimize_opts *opts UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ref_store
    - UNUSED
    - required
    argTypes:
    - struct ref_store*
    - struct refs_optimize_opts*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1790
    functionDepth: 0
    functionLinenumber: 1790
    functionLinenumberEnd: 1799
    functionName: packed_optimize_required
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int packed_optimize_required(struct ref_store *ref_store UNUSED,\n\t\t\t\t
      \   struct refs_optimize_opts *opts UNUSED,\n\t\t\t\t    bool *required)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty_ref_iterator_begin
      Src: /src/git/refs/packed-backend.c:1803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref_store
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1801
    functionDepth: 8
    functionLinenumber: 1801
    functionLinenumberEnd: 1804
    functionName: packed_reflog_iterator_begin
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - empty_ref_iterator_begin
    linkageType: ''
    returnType: struct ref_iterator
    signature: struct ref_iterator *packed_reflog_iterator_begin(struct ref_store
      *ref_store UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:1812,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1817,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:1819,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:1829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - o
    - line_number
    - start
    - eof
    - eol
    argTypes:
    - struct fsck_options*
    - unsigned long
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1806
    functionDepth: 5
    functionLinenumber: 1806
    functionLinenumberEnd: 1833
    functionName: packed_fsck_ref_next_line
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - memchr
    - fsck_report_ref
    - strbuf_addf
    - strbuf_release
    linkageType: ''
    returnType: int
    signature: "int packed_fsck_ref_next_line(struct fsck_options *o,\n\t\t\t\t     unsigned
      long line_number, const char *start,\n\t\t\t\t     const char *eof, const char
      **eol)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmemdupz
      Src: /src/git/refs/packed-backend.c:1844,1
    - Dst: skip_prefix
      Src: /src/git/refs/packed-backend.c:1845,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:1849,1
    - Dst: string_list_split_in_place
      Src: /src/git/refs/packed-backend.c:1856,1
    - Dst: unsorted_string_list_has_string
      Src: /src/git/refs/packed-backend.c:1857,1
    - Dst: free
      Src: /src/git/refs/packed-backend.c:1860,1
    - Dst: string_list_clear
      Src: /src/git/refs/packed-backend.c:1861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - o
    - start
    - eol
    - sorted
    argTypes:
    - struct fsck_options*
    - char*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1835
    functionDepth: 10
    functionLinenumber: 1835
    functionLinenumberEnd: 1863
    functionName: packed_fsck_ref_header
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - string_list_clear
    - fsck_report_ref
    - unsorted_string_list_has_string
    - free
    - string_list_split_in_place
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int packed_fsck_ref_header(struct fsck_options *o,\n\t\t\t\t  const
      char *start, const char *eol,\n\t\t\t\t  unsigned int *sorted)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex_algop
      Src: /src/git/refs/packed-backend.c:1880,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1881,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:1884,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1892,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:1895,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:1903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - o
    - ref_store
    - line_number
    - start
    - eol
    argTypes:
    - struct fsck_options*
    - struct ref_store*
    - unsigned long
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1865
    functionDepth: 5
    functionLinenumber: 1865
    functionLinenumberEnd: 1905
    functionName: packed_fsck_ref_peeled_line
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - parse_oid_hex_algop
    - fsck_report_ref
    - strbuf_addf
    - strbuf_release
    linkageType: ''
    returnType: int
    signature: "int packed_fsck_ref_peeled_line(struct fsck_options *o,\n\t\t\t\t
      \      struct ref_store *ref_store,\n\t\t\t\t       unsigned long line_number,\n\t\t\t\t
      \      const char *start, const char *eol)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex_algop
      Src: /src/git/refs/packed-backend.c:1919,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1920,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:1923,1
    - Dst: isspace
      Src: /src/git/refs/packed-backend.c:1930,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1931,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:1934,1
    - Dst: oid_to_hex
      Src: /src/git/refs/packed-backend.c:1937,1
    - Dst: strbuf_reset
      Src: /src/git/refs/packed-backend.c:1942,1
    - Dst: strbuf_add
      Src: /src/git/refs/packed-backend.c:1943,1
    - Dst: refname_contains_nul
      Src: /src/git/refs/packed-backend.c:1944,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1945,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:1948,1
    - Dst: check_refname_format
      Src: /src/git/refs/packed-backend.c:1954,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:1955,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:1958,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:1964,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 6
    argNames:
    - o
    - ref_store
    - line_number
    - refname
    - start
    - eol
    argTypes:
    - struct fsck_options*
    - struct ref_store*
    - unsigned long
    - struct strbuf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1907
    functionDepth: 5
    functionLinenumber: 1907
    functionLinenumberEnd: 1966
    functionName: packed_fsck_ref_main_line
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - isspace
    - strbuf_release
    - oid_to_hex
    - strbuf_reset
    - refname_contains_nul
    - parse_oid_hex_algop
    - strbuf_addf
    - check_refname_format
    - fsck_report_ref
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int packed_fsck_ref_main_line(struct fsck_options *o,\n\t\t\t\t     struct
      ref_store *ref_store,\n\t\t\t\t     unsigned long line_number,\n\t\t\t\t     struct
      strbuf *refname,\n\t\t\t\t     const char *start, const char *eol)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:1984,1
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:1990,1
    - Dst: cmp_packed_refname
      Src: /src/git/refs/packed-backend.c:2001,1
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:2005,1
    - Dst: strbuf_add
      Src: /src/git/refs/packed-backend.c:2006,1
    - Dst: memchr
      Src: /src/git/refs/packed-backend.c:2007,1
    - Dst: strbuf_add
      Src: /src/git/refs/packed-backend.c:2008,1
    - Dst: strbuf_addf
      Src: /src/git/refs/packed-backend.c:2010,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:2012,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:2021,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:2022,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:2023,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - o
    - ref_store
    - start
    - eof
    argTypes:
    - struct fsck_options*
    - struct ref_store*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 1968
    functionDepth: 5
    functionLinenumber: 1968
    functionLinenumberEnd: 2025
    functionName: packed_fsck_ref_sorted
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - memchr
    - strbuf_release
    - cmp_packed_refname
    - strbuf_addf
    - fsck_report_ref
    - strbuf_add
    linkageType: ''
    returnType: int
    signature: "int packed_fsck_ref_sorted(struct fsck_options *o,\n\t\t\t\t  struct
      ref_store *ref_store,\n\t\t\t\t  const char *start, const char *eof)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packed_fsck_ref_next_line
      Src: /src/git/refs/packed-backend.c:2037,1
    - Dst: packed_fsck_ref_header
      Src: /src/git/refs/packed-backend.c:2039,1
    - Dst: packed_fsck_ref_next_line
      Src: /src/git/refs/packed-backend.c:2046,1
    - Dst: packed_fsck_ref_main_line
      Src: /src/git/refs/packed-backend.c:2047,1
    - Dst: packed_fsck_ref_next_line
      Src: /src/git/refs/packed-backend.c:2051,1
    - Dst: packed_fsck_ref_peeled_line
      Src: /src/git/refs/packed-backend.c:2052,1
    - Dst: strbuf_release
      Src: /src/git/refs/packed-backend.c:2059,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - o
    - ref_store
    - sorted
    - start
    - eof
    argTypes:
    - struct fsck_options*
    - struct ref_store*
    - unsigned int*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2027
    functionDepth: 11
    functionLinenumber: 2027
    functionLinenumberEnd: 2061
    functionName: packed_fsck_ref_content
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - packed_fsck_ref_next_line
    - packed_fsck_ref_peeled_line
    - packed_fsck_ref_header
    - packed_fsck_ref_main_line
    linkageType: ''
    returnType: int
    signature: "int packed_fsck_ref_content(struct fsck_options *o,\n\t\t\t\t   struct
      ref_store *ref_store,\n\t\t\t\t   unsigned int *sorted,\n\t\t\t\t   const char
      *start, const char *eof)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: packed_downcast
      Src: /src/git/refs/packed-backend.c:2067,1
    - Dst: is_main_worktree
      Src: /src/git/refs/packed-backend.c:2075,1
    - Dst: fprintf_ln
      Src: /src/git/refs/packed-backend.c:2079,1
    - Dst: open_nofollow
      Src: /src/git/refs/packed-backend.c:2081,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:2093,1
    - Dst: error_errno
      Src: /src/git/refs/packed-backend.c:2099,1
    - Dst: _
      Src: /src/git/refs/packed-backend.c:2099,1
    - Dst: fstat
      Src: /src/git/refs/packed-backend.c:2101,1
    - Dst: error_errno
      Src: /src/git/refs/packed-backend.c:2102,1
    - Dst: _
      Src: /src/git/refs/packed-backend.c:2102,1
    - Dst: S_ISREG
      Src: /src/git/refs/packed-backend.c:2104,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:2107,1
    - Dst: allocate_snapshot_buffer
      Src: /src/git/refs/packed-backend.c:2113,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/packed-backend.c:2116,1
    - Dst: packed_fsck_ref_content
      Src: /src/git/refs/packed-backend.c:2122,1
    - Dst: packed_fsck_ref_sorted
      Src: /src/git/refs/packed-backend.c:2125,1
    - Dst: close
      Src: /src/git/refs/packed-backend.c:2130,1
    - Dst: clear_snapshot_buffer
      Src: /src/git/refs/packed-backend.c:2131,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - ref_store
    - o
    - wt
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2063
    functionDepth: 12
    functionLinenumber: 2063
    functionLinenumberEnd: 2133
    functionName: packed_fsck
    functionSourceFile: /src/git/refs/packed-backend.c
    functionUses: 0
    functionsReached:
    - error_errno
    - packed_fsck_ref_sorted
    - packed_fsck_ref_content
    - fprintf_ln
    - is_main_worktree
    - allocate_snapshot_buffer
    - packed_downcast
    - fstat
    - clear_snapshot_buffer
    - _
    - close
    - open_nofollow
    - fsck_report_ref
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int packed_fsck(struct ref_store *ref_store,\n\t\t       struct fsck_options
      *o,\n\t\t       struct worktree *wt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_ref_cache
      Src: /src/git/refs/files-backend.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - refs
    argTypes:
    - struct files_ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: clear_loose_ref_cache
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - free_ref_cache
    linkageType: ''
    returnType: void
    signature: void clear_loose_ref_cache(struct files_ref_store *refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/git/refs/files-backend.c:112,1
    - Dst: refs_compute_filesystem_location
      Src: /src/git/refs/files-backend.c:118,1
    - Dst: base_ref_store_init
      Src: /src/git/refs/files-backend.c:121,1
    - Dst: strbuf_detach
      Src: /src/git/refs/files-backend.c:123,1
    - Dst: packed_ref_store_init
      Src: /src/git/refs/files-backend.c:125,1
    - Dst: repo_config_get_bool
      Src: /src/git/refs/files-backend.c:129,1
    - Dst: chdir_notify_reparent
      Src: /src/git/refs/files-backend.c:131,1
    - Dst: chdir_notify_reparent
      Src: /src/git/refs/files-backend.c:132,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - repo
    - payload
    - gitdir
    - opts
    argTypes:
    - struct repository*
    - char*
    - char*
    - struct ref_store_init_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 107
    functionDepth: 19
    functionLinenumber: 107
    functionLinenumberEnd: 138
    functionName: files_ref_store_init
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - packed_ref_store_init
    - base_ref_store_init
    - refs_compute_filesystem_location
    - chdir_notify_reparent
    - repo_config_get_bool
    - strbuf_detach
    - xcalloc
    linkageType: ''
    returnType: struct ref_store
    signature: "struct ref_store *files_ref_store_init(struct repository *repo,\n\t\t\t\t\t
      \     const char *payload,\n\t\t\t\t\t      const char *gitdir,\n\t\t\t\t\t
      \     const struct ref_store_init_options *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - refs
    - caller
    argTypes:
    - struct files_ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: files_assert_main_repository
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: "void files_assert_main_repository(struct files_ref_store *refs,\n\t\t\t\t\t
      const char *caller)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:166,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ref_store
    - required_flags
    - caller
    argTypes:
    - struct ref_store*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 176
    functionName: files_downcast
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 32
    functionsReached:
    - BUG
    linkageType: ''
    returnType: struct files_ref_store
    signature: "struct files_ref_store *files_downcast(struct ref_store *ref_store,\n\t\t\t\t\t
      \     unsigned int required_flags,\n\t\t\t\t\t      const char *caller)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:180,1
    - Dst: free_ref_cache
      Src: /src/git/refs/files-backend.c:181,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:182,1
    - Dst: ref_store_release
      Src: /src/git/refs/files-backend.c:183,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ref_store
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: files_ref_store_release
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - free
    - files_downcast
    - ref_store_release
    - free_ref_cache
    linkageType: ''
    returnType: void
    signature: void files_ref_store_release(struct ref_store *ref_store)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_worktree_ref
      Src: /src/git/refs/files-backend.c:194,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:199,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:203,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:206,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - refs
    - sb
    - refname
    argTypes:
    - struct files_ref_store*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 212
    functionName: files_reflog_path
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - BUG
    - strbuf_addf
    - parse_worktree_ref
    linkageType: ''
    returnType: void
    signature: "void files_reflog_path(struct files_ref_store *refs,\n\t\t\t      struct
      strbuf *sb,\n\t\t\t      const char *refname)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_worktree_ref
      Src: /src/git/refs/files-backend.c:221,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:225,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:228,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:233,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - refs
    - sb
    - refname
    argTypes:
    - struct files_ref_store*
    - struct strbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 238
    functionName: files_ref_path
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - BUG
    - strbuf_addf
    - parse_worktree_ref
    linkageType: ''
    returnType: void
    signature: "void files_ref_path(struct files_ref_store *refs,\n\t\t\t   struct
      strbuf *sb,\n\t\t\t   const char *refname)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs/files-backend.c:250,1
    - Dst: ARRAY_SIZE
      Src: /src/git/refs/files-backend.c:253,1
    - Dst: strlen
      Src: /src/git/refs/files-backend.c:255,1
    - Dst: search_ref_dir
      Src: /src/git/refs/files-backend.c:259,1
    - Dst: create_dir_entry
      Src: /src/git/refs/files-backend.c:262,1
    - Dst: add_entry_to_dir
      Src: /src/git/refs/files-backend.c:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - dir
    - dirname
    argTypes:
    - struct ref_dir*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 265
    functionName: add_per_worktree_entries_to_dir
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - add_entry_to_dir
    - strlen
    - strcmp
    - search_ref_dir
    - create_dir_entry
    linkageType: ''
    returnType: void
    signature: void add_per_worktree_entries_to_dir(struct ref_dir *dir, const char
      *dirname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/files-backend.c:273,1
    - Dst: oidclr
      Src: /src/git/refs/files-backend.c:279,1
    - Dst: is_null_oid
      Src: /src/git/refs/files-backend.c:281,1
    - Dst: check_refname_format
      Src: /src/git/refs/files-backend.c:293,1
    - Dst: refname_is_safe
      Src: /src/git/refs/files-backend.c:294,1
    - Dst: die
      Src: /src/git/refs/files-backend.c:295,1
    - Dst: oidclr
      Src: /src/git/refs/files-backend.c:296,1
    - Dst: add_entry_to_dir
      Src: /src/git/refs/files-backend.c:303,1
    - Dst: create_ref_entry
      Src: /src/git/refs/files-backend.c:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - refs
    - refname
    - dir
    argTypes:
    - struct files_ref_store*
    - char*
    - struct ref_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 304
    functionName: loose_fill_ref_dir_regular_file
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - die
    - create_ref_entry
    - refs_resolve_ref_unsafe
    - refname_is_safe
    - is_null_oid
    - add_entry_to_dir
    - oidclr
    - check_refname_format
    linkageType: ''
    returnType: void
    signature: "void loose_fill_ref_dir_regular_file(struct files_ref_store *refs,\n\t\t\t\t\t
      \   const char *refname,\n\t\t\t\t\t    struct ref_dir *dir)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:315,1
    - Dst: strlen
      Src: /src/git/refs/files-backend.c:318,1
    - Dst: files_ref_path
      Src: /src/git/refs/files-backend.c:322,1
    - Dst: opendir
      Src: /src/git/refs/files-backend.c:324,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:326,1
    - Dst: strbuf_init
      Src: /src/git/refs/files-backend.c:330,1
    - Dst: strbuf_add
      Src: /src/git/refs/files-backend.c:331,1
    - Dst: readdir
      Src: /src/git/refs/files-backend.c:333,1
    - Dst: ends_with
      Src: /src/git/refs/files-backend.c:338,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:340,1
    - Dst: get_dtype
      Src: /src/git/refs/files-backend.c:342,1
    - Dst: strbuf_addch
      Src: /src/git/refs/files-backend.c:344,1
    - Dst: add_entry_to_dir
      Src: /src/git/refs/files-backend.c:345,1
    - Dst: create_dir_entry
      Src: /src/git/refs/files-backend.c:346,1
    - Dst: loose_fill_ref_dir_regular_file
      Src: /src/git/refs/files-backend.c:349,1
    - Dst: strbuf_setlen
      Src: /src/git/refs/files-backend.c:351,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:353,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:354,1
    - Dst: closedir
      Src: /src/git/refs/files-backend.c:355,1
    - Dst: add_per_worktree_entries_to_dir
      Src: /src/git/refs/files-backend.c:357,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ref_store
    - dir
    - dirname
    argTypes:
    - struct ref_store*
    - struct ref_dir*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 311
    functionDepth: 6
    functionLinenumber: 311
    functionLinenumberEnd: 358
    functionName: loose_fill_ref_dir
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - loose_fill_ref_dir_regular_file
    - strbuf_release
    - files_downcast
    - get_dtype
    - closedir
    - strbuf_setlen
    - add_per_worktree_entries_to_dir
    - add_entry_to_dir
    - strbuf_addch
    - opendir
    - strlen
    - strbuf_addstr
    - ends_with
    - files_ref_path
    - readdir
    - create_dir_entry
    - strbuf_init
    - strbuf_add
    linkageType: ''
    returnType: void
    signature: "void loose_fill_ref_dir(struct ref_store *ref_store,\n\t\t\t       struct
      ref_dir *dir, const char *dirname)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: files_ref_path
      Src: /src/git/refs/files-backend.c:369,1
    - Dst: opendir
      Src: /src/git/refs/files-backend.c:371,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:373,1
    - Dst: readdir
      Src: /src/git/refs/files-backend.c:377,1
    - Dst: ends_with
      Src: /src/git/refs/files-backend.c:382,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:385,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:386,1
    - Dst: get_dtype
      Src: /src/git/refs/files-backend.c:388,1
    - Dst: is_root_ref
      Src: /src/git/refs/files-backend.c:389,1
    - Dst: cb
      Src: /src/git/refs/files-backend.c:390,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:399,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:400,1
    - Dst: closedir
      Src: /src/git/refs/files-backend.c:401,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - refs
    - cb_data
    argTypes:
    - struct files_ref_store*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 403
    functionName: for_each_root_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - get_dtype
    - strbuf_reset
    - is_root_ref
    - opendir
    - strbuf_addstr
    - ends_with
    - cb
    - files_ref_path
    - closedir
    - readdir
    linkageType: ''
    returnType: int
    signature: "int for_each_root_ref(struct files_ref_store *refs,\n\t\t\t     int
      (*cb)(const char *refname, void *cb_data),\n\t\t\t     void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loose_fill_ref_dir_regular_file
      Src: /src/git/refs/files-backend.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - refname
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 410
    functionDepth: 6
    functionLinenumber: 410
    functionLinenumberEnd: 415
    functionName: fill_root_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - loose_fill_ref_dir_regular_file
    linkageType: ''
    returnType: int
    signature: int fill_root_ref(const char *refname, void *cb_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_root_ref
      Src: /src/git/refs/files-backend.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - refs
    - dir
    argTypes:
    - struct files_ref_store*
    - struct ref_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 421
    functionDepth: 6
    functionLinenumber: 421
    functionLinenumberEnd: 430
    functionName: add_root_refs
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - for_each_root_ref
    linkageType: ''
    returnType: void
    signature: "void add_root_refs(struct files_ref_store *refs,\n\t\t\t  struct ref_dir
      *dir)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_ref_cache
      Src: /src/git/refs/files-backend.c:443,1
    - Dst: get_ref_dir
      Src: /src/git/refs/files-backend.c:448,1
    - Dst: add_root_refs
      Src: /src/git/refs/files-backend.c:451,1
    - Dst: add_entry_to_dir
      Src: /src/git/refs/files-backend.c:457,1
    - Dst: create_dir_entry
      Src: /src/git/refs/files-backend.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - refs
    - flags
    argTypes:
    - struct files_ref_store*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 432
    functionDepth: 8
    functionLinenumber: 432
    functionLinenumberEnd: 460
    functionName: get_loose_ref_cache
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - add_entry_to_dir
    - get_ref_dir
    - add_root_refs
    - create_ref_cache
    - create_dir_entry
    linkageType: ''
    returnType: struct ref_cache
    signature: "struct ref_cache *get_loose_ref_cache(struct files_ref_store *refs,\n\t\t\t\t\t
      \    unsigned int flags)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:467,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:479,1
    - Dst: files_ref_path
      Src: /src/git/refs/files-backend.c:481,1
    - Dst: lstat
      Src: /src/git/refs/files-backend.c:502,1
    - Dst: refs_read_raw_ref
      Src: /src/git/refs/files-backend.c:507,1
    - Dst: S_ISLNK
      Src: /src/git/refs/files-backend.c:517,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:518,1
    - Dst: strbuf_readlink
      Src: /src/git/refs/files-backend.c:519,1
    - Dst: starts_with
      Src: /src/git/refs/files-backend.c:527,1
    - Dst: check_refname_format
      Src: /src/git/refs/files-backend.c:528,1
    - Dst: strbuf_swap
      Src: /src/git/refs/files-backend.c:529,1
    - Dst: S_ISDIR
      Src: /src/git/refs/files-backend.c:542,1
    - Dst: refs_read_raw_ref
      Src: /src/git/refs/files-backend.c:550,1
    - Dst: open
      Src: /src/git/refs/files-backend.c:563,1
    - Dst: S_ISLNK
      Src: /src/git/refs/files-backend.c:566,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:572,1
    - Dst: strbuf_read
      Src: /src/git/refs/files-backend.c:573,1
    - Dst: close
      Src: /src/git/refs/files-backend.c:575,1
    - Dst: close
      Src: /src/git/refs/files-backend.c:578,1
    - Dst: strbuf_rtrim
      Src: /src/git/refs/files-backend.c:579,1
    - Dst: parse_loose_ref_contents
      Src: /src/git/refs/files-backend.c:582,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:587,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:590,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:591,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 81
    argCount: 7
    argNames:
    - ref_store
    - refname
    - oid
    - referent
    - type
    - failure_errno
    - skip_packed_refs
    argTypes:
    - struct ref_store*
    - char*
    - struct object_id*
    - struct strbuf*
    - unsigned int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 462
    functionDepth: 5
    functionLinenumber: 462
    functionLinenumberEnd: 594
    functionName: read_ref_internal
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - files_downcast
    - refs_read_raw_ref
    - open
    - strbuf_read
    - S_ISLNK
    - strbuf_reset
    - BUG
    - strbuf_release
    - parse_loose_ref_contents
    - strbuf_readlink
    - starts_with
    - check_refname_format
    - close
    - files_ref_path
    - lstat
    - strbuf_swap
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: "int read_ref_internal(struct ref_store *ref_store, const char *refname,\n\t\t\t
      \    struct object_id *oid, struct strbuf *referent,\n\t\t\t     unsigned int
      *type, int *failure_errno, int skip_packed_refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_ref_internal
      Src: /src/git/refs/files-backend.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ref_store
    - refname
    - oid
    - referent
    - type
    - failure_errno
    argTypes:
    - struct ref_store*
    - char*
    - struct object_id*
    - struct strbuf*
    - unsigned int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 596
    functionDepth: 6
    functionLinenumber: 596
    functionLinenumberEnd: 601
    functionName: files_read_raw_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - read_ref_internal
    linkageType: ''
    returnType: int
    signature: "int files_read_raw_ref(struct ref_store *ref_store, const char *refname,\n\t\t\t
      \     struct object_id *oid, struct strbuf *referent,\n\t\t\t      unsigned
      int *type, int *failure_errno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_ref_internal
      Src: /src/git/refs/files-backend.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ref_store
    - refname
    - referent
    argTypes:
    - struct ref_store*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 603
    functionDepth: 6
    functionLinenumber: 603
    functionLinenumberEnd: 614
    functionName: files_read_symbolic_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - read_ref_internal
    linkageType: ''
    returnType: int
    signature: "int files_read_symbolic_ref(struct ref_store *ref_store, const char
      *refname,\n\t\t\t\t   struct strbuf *referent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/git/refs/files-backend.c:622,1
    - Dst: isspace
      Src: /src/git/refs/files-backend.c:623,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:626,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:627,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/refs/files-backend.c:635,1
    - Dst: isspace
      Src: /src/git/refs/files-backend.c:636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 7
    argNames:
    - algop
    - buf
    - oid
    - referent
    - type
    - trailing
    - failure_errno
    argTypes:
    - struct git_hash_algo*
    - char*
    - struct object_id*
    - struct strbuf*
    - unsigned int*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 646
    functionName: parse_loose_ref_contents
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 2
    functionsReached:
    - isspace
    - strbuf_reset
    - parse_oid_hex_algop
    - strbuf_addstr
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int parse_loose_ref_contents(const struct git_hash_algo *algop,\n\t\t\t
      \    const char *buf, struct object_id *oid,\n\t\t\t     struct strbuf *referent,
      unsigned int *type,\n\t\t\t     const char **trailing, int *failure_errno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rollback_lock_file
      Src: /src/git/refs/files-backend.c:652,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:653,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lock
    argTypes:
    - struct ref_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 648
    functionDepth: 6
    functionLinenumber: 648
    functionLinenumberEnd: 656
    functionName: unlock_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - rollback_lock_file
    - free
    linkageType: ''
    returnType: void
    signature: void unlock_ref(struct ref_lock *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/git/refs/files-backend.c:672,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - transaction
    - update
    argTypes:
    - struct ref_transaction*
    - struct ref_update*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 676
    functionName: transaction_has_case_conflicting_update
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: bool
    signature: "bool transaction_has_case_conflicting_update(struct ref_transaction
      *transaction,\n\t\t\t\t\t\t    struct ref_update *update)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/refs/files-backend.c:726,1
    - Dst: files_assert_main_repository
      Src: /src/git/refs/files-backend.c:727,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/files-backend.c:733,1
    - Dst: xstrdup
      Src: /src/git/refs/files-backend.c:735,1
    - Dst: files_ref_path
      Src: /src/git/refs/files-backend.c:737,1
    - Dst: safe_create_leading_directories
      Src: /src/git/refs/files-backend.c:740,1
    - Dst: refs_verify_refname_available
      Src: /src/git/refs/files-backend.c:752,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:760,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:761,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:778,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:789,1
    - Dst: hold_lock_file_for_update_timeout
      Src: /src/git/refs/files-backend.c:794,1
    - Dst: get_files_ref_lock_timeout_ms
      Src: /src/git/refs/files-backend.c:796,1
    - Dst: unable_to_lock_message
      Src: /src/git/refs/files-backend.c:807,1
    - Dst: transaction_has_case_conflicting_update
      Src: /src/git/refs/files-backend.c:810,1
    - Dst: files_read_raw_ref
      Src: /src/git/refs/files-backend.c:835,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:842,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:875,1
    - Dst: remove_dir_recursively
      Src: /src/git/refs/files-backend.c:879,1
    - Dst: refs_verify_refname_available
      Src: /src/git/refs/files-backend.c:882,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:898,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:905,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:909,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:910,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:926,1
    - Dst: strbuf_tolower
      Src: /src/git/refs/files-backend.c:927,1
    - Dst: string_list_append_nodup
      Src: /src/git/refs/files-backend.c:929,1
    - Dst: strbuf_detach
      Src: /src/git/refs/files-backend.c:930,1
    - Dst: string_list_append
      Src: /src/git/refs/files-backend.c:932,1
    - Dst: xmalloc
      Src: /src/git/refs/files-backend.c:935,1
    - Dst: memcpy
      Src: /src/git/refs/files-backend.c:936,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:943,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:947,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 113
    argCount: 8
    argNames:
    - refs
    - transaction
    - update_idx
    - mustexist
    - refnames_to_check
    - lock_p
    - referent
    - err
    argTypes:
    - struct files_ref_store*
    - struct ref_transaction*
    - size_t
    - int
    - struct string_list*
    - struct ref_lock**
    - struct strbuf*
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/git/refs/files-backend.c
    constantsTouched: []
    func_position:
      end: 949
      start: 707
    functionDepth: 8
    functionLinenumber: 707
    functionLinenumberEnd: 949
    functionName: lock_raw_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - xmalloc
    - files_read_raw_ref
    - CALLOC_ARRAY
    - unlock_ref
    - files_assert_main_repository
    - strbuf_release
    - strbuf_tolower
    - strerror
    - memcpy
    - hold_lock_file_for_update_timeout
    - strbuf_addstr
    - files_ref_path
    - remove_dir_recursively
    - refs_verify_refname_available
    - strbuf_detach
    - string_list_append
    - unable_to_lock_message
    - xstrdup
    - assert
    - string_list_append_nodup
    - strbuf_reset
    - get_files_ref_lock_timeout_ms
    - safe_create_leading_directories
    - transaction_has_case_conflicting_update
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error lock_raw_ref(struct files_ref_store *refs,\n\t\t\t\t\t
      \      struct ref_transaction *transaction,\n\t\t\t\t\t       size_t update_idx,\n\t\t\t\t\t
      \      int mustexist,\n\t\t\t\t\t       struct string_list *refnames_to_check,\n\t\t\t\t\t
      \      struct ref_lock **lock_p,\n\t\t\t\t\t       struct strbuf *referent,\n\t\t\t\t\t
      \      struct strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ref_iterator_advance
      Src: /src/git/refs/files-backend.c:965,1
    - Dst: parse_worktree_ref
      Src: /src/git/refs/files-backend.c:967,1
    - Dst: ref_resolves_to_object
      Src: /src/git/refs/files-backend.c:977,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 959
    functionDepth: 4
    functionLinenumber: 959
    functionLinenumberEnd: 989
    functionName: files_ref_iterator_advance
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - ref_resolves_to_object
    - ref_iterator_advance
    - parse_worktree_ref
    linkageType: ''
    returnType: int
    signature: int files_ref_iterator_advance(struct ref_iterator *ref_iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ref_iterator_seek
      Src: /src/git/refs/files-backend.c:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - flags
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 997
    functionName: files_ref_iterator_seek
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - ref_iterator_seek
    linkageType: ''
    returnType: int
    signature: "int files_ref_iterator_seek(struct ref_iterator *ref_iterator,\n\t\t\t\t
      \  const char *refname, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ref_iterator_free
      Src: /src/git/refs/files-backend.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1004
    functionName: files_ref_iterator_release
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - ref_iterator_free
    linkageType: ''
    returnType: void
    signature: void files_ref_iterator_release(struct ref_iterator *ref_iterator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:1026,1
    - Dst: cache_ref_iterator_begin
      Src: /src/git/refs/files-backend.c:1045,1
    - Dst: get_loose_ref_cache
      Src: /src/git/refs/files-backend.c:1045,1
    - Dst: refs_ref_iterator_begin
      Src: /src/git/refs/files-backend.c:1059,1
    - Dst: overlay_ref_iterator_begin
      Src: /src/git/refs/files-backend.c:1063,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/files-backend.c:1065,1
    - Dst: base_ref_iterator_init
      Src: /src/git/refs/files-backend.c:1067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - ref_store
    - prefix
    - exclude_patterns
    - flags
    argTypes:
    - struct ref_store*
    - char*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1012
    functionDepth: 9
    functionLinenumber: 1012
    functionLinenumberEnd: 1073
    functionName: files_ref_iterator_begin
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - files_downcast
    - base_ref_iterator_init
    - refs_ref_iterator_begin
    - get_loose_ref_cache
    - overlay_ref_iterator_begin
    - CALLOC_ARRAY
    - cache_ref_iterator_begin
    linkageType: ''
    returnType: struct ref_iterator
    signature: "struct ref_iterator *files_ref_iterator_begin(\n\t\tstruct ref_store
      *ref_store,\n\t\tconst char *prefix, const char **exclude_patterns,\n\t\tunsigned
      int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/refs/files-backend.c:1141,1
    - Dst: fn
      Src: /src/git/refs/files-backend.c:1144,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:1155,1
    - Dst: remove_dir_recursively
      Src: /src/git/refs/files-backend.c:1157,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:1169,1
    - Dst: safe_create_leading_directories
      Src: /src/git/refs/files-backend.c:1172,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1179,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 3
    argNames:
    - path
    - fn
    - cb
    argTypes:
    - char*
    - create_file_fn
    - void*
    assertStmts:
    - condition: (*path)
      pos:
        line_end: 1140
        line_start: 1140
        source_file: /src/git/refs/files-backend.c
    constantsTouched: []
    func_position:
      end: 1182
      start: 1116
    functionDepth: 8
    functionLinenumber: 1116
    functionLinenumberEnd: 1182
    functionName: raceproof_create_file
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fn
    - assert
    - remove_dir_recursively
    - strbuf_addstr
    - safe_create_leading_directories
    linkageType: ''
    returnType: int
    signature: int raceproof_create_file(const char *path, create_file_fn fn, void
      *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_dir_recursively
      Src: /src/git/refs/files-backend.c:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1184
    functionDepth: 8
    functionLinenumber: 1184
    functionLinenumberEnd: 1192
    functionName: remove_empty_directories
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - remove_dir_recursively
    linkageType: ''
    returnType: int
    signature: int remove_empty_directories(struct strbuf *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hold_lock_file_for_update_timeout
      Src: /src/git/refs/files-backend.c:1202,1
    - Dst: get_files_ref_lock_timeout_ms
      Src: /src/git/refs/files-backend.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - cb
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1199
    functionDepth: 2
    functionLinenumber: 1199
    functionLinenumberEnd: 1205
    functionName: create_reflock
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - hold_lock_file_for_update_timeout
    - get_files_ref_lock_timeout_ms
    linkageType: ''
    returnType: int
    signature: int create_reflock(const char *path, void *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: files_assert_main_repository
      Src: /src/git/refs/files-backend.c:1218,1
    - Dst: assert
      Src: /src/git/refs/files-backend.c:1219,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/files-backend.c:1221,1
    - Dst: files_ref_path
      Src: /src/git/refs/files-backend.c:1223,1
    - Dst: is_null_oid
      Src: /src/git/refs/files-backend.c:1231,1
    - Dst: refs_verify_refname_available
      Src: /src/git/refs/files-backend.c:1232,1
    - Dst: xstrdup
      Src: /src/git/refs/files-backend.c:1236,1
    - Dst: raceproof_create_file
      Src: /src/git/refs/files-backend.c:1241,1
    - Dst: unable_to_lock_message
      Src: /src/git/refs/files-backend.c:1242,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/files-backend.c:1246,1
    - Dst: oidclr
      Src: /src/git/refs/files-backend.c:1248,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:1252,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - refs
    - refname
    - err
    argTypes:
    - struct files_ref_store*
    - char*
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 1218
        line_start: 1218
        source_file: /src/git/refs/files-backend.c
    constantsTouched: []
    func_position:
      end: 1258
      start: 1210
    functionDepth: 9
    functionLinenumber: 1210
    functionLinenumberEnd: 1258
    functionName: lock_ref_oid_basic
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - assert
    - refs_resolve_ref_unsafe
    - unlock_ref
    - is_null_oid
    - raceproof_create_file
    - oidclr
    - refs_verify_refname_available
    - CALLOC_ARRAY
    - files_ref_path
    - files_assert_main_repository
    - unable_to_lock_message
    - xstrdup
    linkageType: ''
    returnType: struct ref_lock
    signature: "struct ref_lock *lock_ref_oid_basic(struct files_ref_store *refs,\n\t\t\t\t\t
      \  const char *refname,\n\t\t\t\t\t   struct strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:1286,1
    - Dst: strbuf_setlen
      Src: /src/git/refs/files-backend.c:1303,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:1305,1
    - Dst: files_ref_path
      Src: /src/git/refs/files-backend.c:1306,1
    - Dst: rmdir
      Src: /src/git/refs/files-backend.c:1307,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:1310,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:1311,1
    - Dst: rmdir
      Src: /src/git/refs/files-backend.c:1312,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1315,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1316,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 3
    argNames:
    - refs
    - refname
    - flags
    argTypes:
    - struct files_ref_store*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1277
    functionDepth: 5
    functionLinenumber: 1277
    functionLinenumberEnd: 1317
    functionName: try_remove_empty_parents
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - files_reflog_path
    - strbuf_reset
    - strbuf_setlen
    - strbuf_addstr
    - rmdir
    - files_ref_path
    linkageType: ''
    returnType: void
    signature: "void try_remove_empty_parents(struct files_ref_store *refs,\n\t\t\t\t
      \    const char *refname,\n\t\t\t\t     unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_refname_format
      Src: /src/git/refs/files-backend.c:1326,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/refs/files-backend.c:1329,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs/files-backend.c:1332,1
    - Dst: null_oid
      Src: /src/git/refs/files-backend.c:1335,1
    - Dst: ref_transaction_commit
      Src: /src/git/refs/files-backend.c:1337,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1344,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1345,1
    - Dst: ref_transaction_free
      Src: /src/git/refs/files-backend.c:1346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - refs
    - r
    argTypes:
    - struct files_ref_store*
    - struct ref_to_prune*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1320
    functionDepth: 4
    functionLinenumber: 1320
    functionLinenumberEnd: 1348
    functionName: prune_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - error
    - strbuf_release
    - ref_transaction_free
    - check_refname_format
    - ref_transaction_add_update
    - ref_store_transaction_begin
    - null_oid
    linkageType: ''
    returnType: void
    signature: void prune_ref(struct files_ref_store *refs, struct ref_to_prune *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prune_ref
      Src: /src/git/refs/files-backend.c:1359,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - refs
    - refs_to_prune
    argTypes:
    - struct files_ref_store*
    - struct ref_to_prune**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1354
    functionDepth: 5
    functionLinenumber: 1354
    functionLinenumberEnd: 1362
    functionName: prune_refs
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 1
    functionsReached:
    - free
    - prune_ref
    linkageType: ''
    returnType: void
    signature: void prune_refs(struct files_ref_store *refs, struct ref_to_prune **refs_to_prune)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_worktree_ref
      Src: /src/git/refs/files-backend.c:1374,1
    - Dst: ref_resolves_to_object
      Src: /src/git/refs/files-backend.c:1383,1
    - Dst: ref_excluded
      Src: /src/git/refs/files-backend.c:1386,1
    - Dst: for_each_string_list_item
      Src: /src/git/refs/files-backend.c:1389,1
    - Dst: wildmatch
      Src: /src/git/refs/files-backend.c:1390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - refs
    - ref
    - opts
    argTypes:
    - struct files_ref_store*
    - struct reference*
    - struct refs_optimize_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1367
    functionDepth: 4
    functionLinenumber: 1367
    functionLinenumberEnd: 1394
    functionName: should_pack_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - for_each_string_list_item
    - parse_worktree_ref
    - ref_resolves_to_object
    - ref_excluded
    - wildmatch
    linkageType: ''
    returnType: int
    signature: "int should_pack_ref(struct files_ref_store *refs,\n\t\t\t   const
      struct reference *ref,\n\t\t\t   struct refs_optimize_opts *opts)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: packed_refs_size
      Src: /src/git/refs/files-backend.c:1408,1
    - Dst: die
      Src: /src/git/refs/files-backend.c:1410,1
    - Dst: log2u
      Src: /src/git/refs/files-backend.c:1436,1
    - Dst: cache_ref_iterator_begin
      Src: /src/git/refs/files-backend.c:1440,1
    - Dst: get_loose_ref_cache
      Src: /src/git/refs/files-backend.c:1440,1
    - Dst: ref_iterator_advance
      Src: /src/git/refs/files-backend.c:1442,1
    - Dst: should_pack_ref
      Src: /src/git/refs/files-backend.c:1443,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/files-backend.c:1446,1
    - Dst: die
      Src: /src/git/refs/files-backend.c:1452,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/files-backend.c:1454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - refs
    - opts
    argTypes:
    - struct files_ref_store*
    - struct refs_optimize_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1396
    functionDepth: 9
    functionLinenumber: 1396
    functionLinenumberEnd: 1456
    functionName: should_pack_refs
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - die
    - log2u
    - ref_iterator_free
    - packed_refs_size
    - get_loose_ref_cache
    - should_pack_ref
    - cache_ref_iterator_begin
    - ref_iterator_advance
    linkageType: ''
    returnType: int
    signature: "int should_pack_refs(struct files_ref_store *refs,\n\t\t\t    struct
      refs_optimize_opts *opts)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:1462,1
    - Dst: should_pack_refs
      Src: /src/git/refs/files-backend.c:1470,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/refs/files-backend.c:1473,1
    - Dst: packed_refs_lock
      Src: /src/git/refs/files-backend.c:1478,1
    - Dst: cache_ref_iterator_begin
      Src: /src/git/refs/files-backend.c:1480,1
    - Dst: get_loose_ref_cache
      Src: /src/git/refs/files-backend.c:1480,1
    - Dst: ref_iterator_advance
      Src: /src/git/refs/files-backend.c:1482,1
    - Dst: should_pack_ref
      Src: /src/git/refs/files-backend.c:1488,1
    - Dst: ref_transaction_update
      Src: /src/git/refs/files-backend.c:1495,1
    - Dst: die
      Src: /src/git/refs/files-backend.c:1498,1
    - Dst: FLEX_ALLOC_STR
      Src: /src/git/refs/files-backend.c:1504,1
    - Dst: oidcpy
      Src: /src/git/refs/files-backend.c:1505,1
    - Dst: die
      Src: /src/git/refs/files-backend.c:1511,1
    - Dst: ref_transaction_commit
      Src: /src/git/refs/files-backend.c:1513,1
    - Dst: die
      Src: /src/git/refs/files-backend.c:1514,1
    - Dst: ref_transaction_free
      Src: /src/git/refs/files-backend.c:1516,1
    - Dst: packed_refs_unlock
      Src: /src/git/refs/files-backend.c:1518,1
    - Dst: prune_refs
      Src: /src/git/refs/files-backend.c:1520,1
    - Dst: ref_iterator_free
      Src: /src/git/refs/files-backend.c:1521,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1522,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - ref_store
    - opts
    argTypes:
    - struct ref_store*
    - struct refs_optimize_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1458
    functionDepth: 20
    functionLinenumber: 1458
    functionLinenumberEnd: 1524
    functionName: files_optimize
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - strbuf_release
    - files_downcast
    - die
    - packed_refs_lock
    - oidcpy
    - ref_iterator_free
    - ref_transaction_update
    - get_loose_ref_cache
    - prune_refs
    - should_pack_ref
    - ref_transaction_free
    - should_pack_refs
    - packed_refs_unlock
    - cache_ref_iterator_begin
    - ref_store_transaction_begin
    - ref_iterator_advance
    - FLEX_ALLOC_STR
    linkageType: ''
    returnType: int
    signature: "int files_optimize(struct ref_store *ref_store,\n\t\t\t  struct refs_optimize_opts
      *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:1530,1
    - Dst: should_pack_refs
      Src: /src/git/refs/files-backend.c:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ref_store
    - opts
    - required
    argTypes:
    - struct ref_store*
    - struct refs_optimize_opts*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1526
    functionDepth: 10
    functionLinenumber: 1526
    functionLinenumberEnd: 1534
    functionName: files_optimize_required
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - files_downcast
    - should_pack_refs
    linkageType: ''
    returnType: int
    signature: "int files_optimize_required(struct ref_store *ref_store,\n\t\t\t\t
      \  struct refs_optimize_opts *opts,\n\t\t\t\t   bool *required)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rename
      Src: /src/git/refs/files-backend.c:1554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - path
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1550
    functionDepth: 0
    functionLinenumber: 1550
    functionLinenumberEnd: 1569
    functionName: rename_tmp_log_callback
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - rename
    linkageType: ''
    returnType: int
    signature: int rename_tmp_log_callback(const char *path, void *cb_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:1578,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:1579,1
    - Dst: raceproof_create_file
      Src: /src/git/refs/files-backend.c:1581,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1584,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1586,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:1588,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1591,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - refs
    - newrefname
    argTypes:
    - struct files_ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1571
    functionDepth: 9
    functionLinenumber: 1571
    functionLinenumberEnd: 1594
    functionName: rename_tmp_log
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - strerror
    - raceproof_create_file
    - files_reflog_path
    linkageType: ''
    returnType: int
    signature: int rename_tmp_log(struct files_ref_store *refs, const char *newrefname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_list_insert
      Src: /src/git/refs/files-backend.c:1624,1
    - Dst: refs_verify_refname_available
      Src: /src/git/refs/files-backend.c:1625,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1628,1
    - Dst: string_list_clear
      Src: /src/git/refs/files-backend.c:1630,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - refs
    - old_refname
    - new_refname
    argTypes:
    - struct ref_store*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1616
    functionDepth: 5
    functionLinenumber: 1616
    functionLinenumberEnd: 1633
    functionName: refs_rename_ref_available
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - error
    - string_list_clear
    - strbuf_release
    - string_list_insert
    - refs_verify_refname_available
    linkageType: ''
    returnType: int
    signature: "int refs_rename_ref_available(struct ref_store *refs,\n\t\t\t      const
      char *old_refname,\n\t\t\t      const char *new_refname)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:1640,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:1651,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:1652,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:1653,1
    - Dst: lstat
      Src: /src/git/refs/files-backend.c:1655,1
    - Dst: S_ISLNK
      Src: /src/git/refs/files-backend.c:1656,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1657,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/files-backend.c:1661,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1664,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1670,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1673,1
    - Dst: refs_rename_ref_available
      Src: /src/git/refs/files-backend.c:1677,1
    - Dst: rename
      Src: /src/git/refs/files-backend.c:1682,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1683,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:1684,1
    - Dst: copy_file
      Src: /src/git/refs/files-backend.c:1688,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1689,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:1690,1
    - Dst: refs_delete_ref
      Src: /src/git/refs/files-backend.c:1694,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1696,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/files-backend.c:1707,1
    - Dst: refs_delete_ref
      Src: /src/git/refs/files-backend.c:1710,1
    - Dst: files_ref_path
      Src: /src/git/refs/files-backend.c:1716,1
    - Dst: remove_empty_directories
      Src: /src/git/refs/files-backend.c:1717,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1718,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1721,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1725,1
    - Dst: rename_tmp_log
      Src: /src/git/refs/files-backend.c:1730,1
    - Dst: lock_ref_oid_basic
      Src: /src/git/refs/files-backend.c:1735,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1738,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1740,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1741,1
    - Dst: oidcpy
      Src: /src/git/refs/files-backend.c:1744,1
    - Dst: write_ref_to_lockfile
      Src: /src/git/refs/files-backend.c:1746,1
    - Dst: commit_ref_update
      Src: /src/git/refs/files-backend.c:1747,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1748,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1749,1
    - Dst: lock_ref_oid_basic
      Src: /src/git/refs/files-backend.c:1757,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1759,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1760,1
    - Dst: write_ref_to_lockfile
      Src: /src/git/refs/files-backend.c:1764,1
    - Dst: commit_ref_update
      Src: /src/git/refs/files-backend.c:1765,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1766,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1767,1
    - Dst: rename
      Src: /src/git/refs/files-backend.c:1771,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1772,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:1773,1
    - Dst: rename
      Src: /src/git/refs/files-backend.c:1775,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:1776,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:1777,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1780,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1781,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1782,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 107
    argCount: 5
    argNames:
    - ref_store
    - oldrefname
    - newrefname
    - logmsg
    - copy
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1635
    functionDepth: 10
    functionLinenumber: 1635
    functionLinenumberEnd: 1785
    functionName: files_copy_or_rename_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - refs_resolve_ref_unsafe
    - oidcpy
    - lock_ref_oid_basic
    - remove_empty_directories
    - error
    - strbuf_release
    - files_downcast
    - commit_ref_update
    - strerror
    - refs_rename_ref_available
    - rename_tmp_log
    - files_ref_path
    - refs_delete_ref
    - write_ref_to_lockfile
    - files_reflog_path
    - rename
    - copy_file
    - lstat
    linkageType: ''
    returnType: int
    signature: "int files_copy_or_rename_ref(struct ref_store *ref_store,\n\t\t\t
      \   const char *oldrefname, const char *newrefname,\n\t\t\t    const char *logmsg,
      int copy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: files_copy_or_rename_ref
      Src: /src/git/refs/files-backend.c:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ref_store
    - oldrefname
    - newrefname
    - logmsg
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1787
    functionDepth: 11
    functionLinenumber: 1787
    functionLinenumberEnd: 1793
    functionName: files_rename_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - files_copy_or_rename_ref
    linkageType: ''
    returnType: int
    signature: "int files_rename_ref(struct ref_store *ref_store,\n\t\t\t    const
      char *oldrefname, const char *newrefname,\n\t\t\t    const char *logmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: files_copy_or_rename_ref
      Src: /src/git/refs/files-backend.c:1799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ref_store
    - oldrefname
    - newrefname
    - logmsg
    argTypes:
    - struct ref_store*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1795
    functionDepth: 11
    functionLinenumber: 1795
    functionLinenumberEnd: 1801
    functionName: files_copy_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - files_copy_or_rename_ref
    linkageType: ''
    returnType: int
    signature: "int files_copy_ref(struct ref_store *ref_store,\n\t\t\t    const char
      *oldrefname, const char *newrefname,\n\t\t\t    const char *logmsg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_lock_file_gently
      Src: /src/git/refs/files-backend.c:1805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - struct ref_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1803
    functionDepth: 2
    functionLinenumber: 1803
    functionLinenumberEnd: 1808
    functionName: close_ref_gently
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - close_lock_file_gently
    linkageType: ''
    returnType: int
    signature: int close_ref_gently(struct ref_lock *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_locked_file_path
      Src: /src/git/refs/files-backend.c:1812,1
    - Dst: lstat
      Src: /src/git/refs/files-backend.c:1815,1
    - Dst: S_ISDIR
      Src: /src/git/refs/files-backend.c:1815,1
    - Dst: strlen
      Src: /src/git/refs/files-backend.c:1821,1
    - Dst: strbuf_attach
      Src: /src/git/refs/files-backend.c:1824,1
    - Dst: remove_empty_directories
      Src: /src/git/refs/files-backend.c:1830,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1831,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:1833,1
    - Dst: commit_lock_file
      Src: /src/git/refs/files-backend.c:1836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - lock
    argTypes:
    - struct ref_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1810
    functionDepth: 9
    functionLinenumber: 1810
    functionLinenumberEnd: 1839
    functionName: commit_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - strbuf_release
    - commit_lock_file
    - strbuf_attach
    - get_locked_file_path
    - strlen
    - free
    - lstat
    - remove_empty_directories
    linkageType: ''
    returnType: int
    signature: int commit_ref(struct ref_lock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/git/refs/files-backend.c:1845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - cb
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1841
    functionDepth: 0
    functionLinenumber: 1841
    functionLinenumberEnd: 1847
    functionName: open_or_create_logfile
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int open_or_create_logfile(const char *path, void *cb)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_bare_repository
      Src: /src/git/refs/files-backend.c:1868,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:1870,1
    - Dst: strbuf_detach
      Src: /src/git/refs/files-backend.c:1871,1
    - Dst: should_autocreate_reflog
      Src: /src/git/refs/files-backend.c:1873,1
    - Dst: raceproof_create_file
      Src: /src/git/refs/files-backend.c:1874,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:1876,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:1877,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:1879,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:1882,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:1883,1
    - Dst: open
      Src: /src/git/refs/files-backend.c:1888,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:1899,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:1900,1
    - Dst: adjust_shared_perm
      Src: /src/git/refs/files-backend.c:1907,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:1909,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:1913,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - refs
    - refname
    - force_create
    - logfd
    - err
    argTypes:
    - struct files_ref_store*
    - char*
    - int
    - int*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1859
    functionDepth: 9
    functionLinenumber: 1859
    functionLinenumberEnd: 1915
    functionName: log_ref_setup
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - adjust_shared_perm
    - is_bare_repository
    - should_autocreate_reflog
    - open
    - strbuf_addf
    - strerror
    - raceproof_create_file
    - strbuf_detach
    - free
    - files_reflog_path
    linkageType: ''
    returnType: int
    signature: "int log_ref_setup(struct files_ref_store *refs,\n\t\t\t const char
      *refname, int force_create,\n\t\t\t int *logfd, struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:1921,1
    - Dst: log_ref_setup
      Src: /src/git/refs/files-backend.c:1924,1
    - Dst: close
      Src: /src/git/refs/files-backend.c:1928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ref_store
    - refname
    - err
    argTypes:
    - struct ref_store*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1917
    functionDepth: 10
    functionLinenumber: 1917
    functionLinenumberEnd: 1931
    functionName: files_create_reflog
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - close
    - log_ref_setup
    - files_downcast
    linkageType: ''
    returnType: int
    signature: "int files_create_reflog(struct ref_store *ref_store, const char *refname,\n\t\t\t
      \      struct strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: git_committer_info
      Src: /src/git/refs/files-backend.c:1941,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:1943,1
    - Dst: oid_to_hex
      Src: /src/git/refs/files-backend.c:1943,1
    - Dst: oid_to_hex
      Src: /src/git/refs/files-backend.c:1943,1
    - Dst: strbuf_addch
      Src: /src/git/refs/files-backend.c:1945,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:1946,1
    - Dst: strbuf_addch
      Src: /src/git/refs/files-backend.c:1948,1
    - Dst: write_in_full
      Src: /src/git/refs/files-backend.c:1949,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1951,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - fd
    - old_oid
    - new_oid
    - committer
    - msg
    argTypes:
    - int
    - struct object_id*
    - struct object_id*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1933
    functionDepth: 8
    functionLinenumber: 1933
    functionLinenumberEnd: 1953
    functionName: log_ref_write_fd
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - oid_to_hex
    - strbuf_addf
    - strbuf_addch
    - strbuf_addstr
    - write_in_full
    - git_committer_info
    linkageType: ''
    returnType: int
    signature: "int log_ref_write_fd(int fd, const struct object_id *old_oid,\n\t\t\t
      \   const struct object_id *new_oid,\n\t\t\t    const char *committer, const
      char *msg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_ref_setup
      Src: /src/git/refs/files-backend.c:1967,1
    - Dst: log_ref_write_fd
      Src: /src/git/refs/files-backend.c:1976,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:1981,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:1982,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:1983,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1984,1
    - Dst: close
      Src: /src/git/refs/files-backend.c:1985,1
    - Dst: close
      Src: /src/git/refs/files-backend.c:1988,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:1992,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:1993,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:1994,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:1995,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 8
    argNames:
    - refs
    - refname
    - old_oid
    - new_oid
    - committer_info
    - msg
    - flags
    - err
    argTypes:
    - struct files_ref_store*
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1955
    functionDepth: 10
    functionLinenumber: 1955
    functionLinenumberEnd: 1999
    functionName: files_log_ref_write
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - log_ref_setup
    - strbuf_release
    - log_ref_write_fd
    - strerror
    - strbuf_addf
    - close
    - files_reflog_path
    linkageType: ''
    returnType: int
    signature: "int files_log_ref_write(struct files_ref_store *refs,\n\t\t\t       const
      char *refname,\n\t\t\t       const struct object_id *old_oid,\n\t\t\t       const
      struct object_id *new_oid,\n\t\t\t       const char *committer_info, const char
      *msg,\n\t\t\t       int flags, struct strbuf *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_lock_file_fd
      Src: /src/git/refs/files-backend.c:2013,1
    - Dst: write_in_full
      Src: /src/git/refs/files-backend.c:2014,1
    - Dst: oid_to_hex
      Src: /src/git/refs/files-backend.c:2014,1
    - Dst: write_in_full
      Src: /src/git/refs/files-backend.c:2015,1
    - Dst: fsync_component
      Src: /src/git/refs/files-backend.c:2016,1
    - Dst: get_lock_file_fd
      Src: /src/git/refs/files-backend.c:2016,1
    - Dst: close_ref_gently
      Src: /src/git/refs/files-backend.c:2017,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2018,1
    - Dst: get_lock_file_path
      Src: /src/git/refs/files-backend.c:2019,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:2020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - refs
    - lock
    - oid
    - err
    argTypes:
    - struct files_ref_store*
    - struct ref_lock*
    - struct object_id*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2005
    functionDepth: 7
    functionLinenumber: 2005
    functionLinenumberEnd: 2024
    functionName: write_ref_to_lockfile
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 1
    functionsReached:
    - oid_to_hex
    - strbuf_addf
    - close_ref_gently
    - fsync_component
    - unlock_ref
    - get_lock_file_fd
    - get_lock_file_path
    - write_in_full
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error write_ref_to_lockfile(struct files_ref_store
      *refs,\n\t\t\t\t\t\t\tstruct ref_lock *lock,\n\t\t\t\t\t\t\tconst struct object_id
      *oid,\n\t\t\t\t\t\t\tstruct strbuf *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: files_assert_main_repository
      Src: /src/git/refs/files-backend.c:2037,1
    - Dst: clear_loose_ref_cache
      Src: /src/git/refs/files-backend.c:2039,1
    - Dst: files_log_ref_write
      Src: /src/git/refs/files-backend.c:2040,1
    - Dst: strbuf_detach
      Src: /src/git/refs/files-backend.c:2042,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2043,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:2045,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:2046,1
    - Dst: strcmp
      Src: /src/git/refs/files-backend.c:2050,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/files-backend.c:2066,1
    - Dst: strcmp
      Src: /src/git/refs/files-backend.c:2070,1
    - Dst: files_log_ref_write
      Src: /src/git/refs/files-backend.c:2072,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:2075,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2076,1
    - Dst: commit_ref
      Src: /src/git/refs/files-backend.c:2081,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2082,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:2083,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:2087,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - refs
    - lock
    - oid
    - logmsg
    - flags
    - err
    argTypes:
    - struct files_ref_store*
    - struct ref_lock*
    - struct object_id*
    - char*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2031
    functionDepth: 11
    functionLinenumber: 2031
    functionLinenumberEnd: 2089
    functionName: commit_ref_update
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 1
    functionsReached:
    - error
    - strbuf_release
    - unlock_ref
    - refs_resolve_ref_unsafe
    - commit_ref
    - clear_loose_ref_cache
    - strbuf_addf
    - strcmp
    - strbuf_detach
    - free
    - files_assert_main_repository
    - files_log_ref_write
    linkageType: ''
    returnType: int
    signature: "int commit_ref_update(struct files_ref_store *refs,\n\t\t\t     struct
      ref_lock *lock,\n\t\t\t     const struct object_id *oid, const char *logmsg,\n\t\t\t
      \    int flags,\n\t\t\t     struct strbuf *err)"
  - 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: 2093
      start: 2092
    functionDepth: 0
    functionLinenumber: 2092
    functionLinenumberEnd: 2093
    functionName: create_ref_symlink
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: create_ref_symlink(a, b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_locked_file_path
      Src: /src/git/refs/files-backend.c:2100,1
    - Dst: unlink
      Src: /src/git/refs/files-backend.c:2101,1
    - Dst: symlink
      Src: /src/git/refs/files-backend.c:2102,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:2103,1
    - Dst: fprintf
      Src: /src/git/refs/files-backend.c:2106,1
    - Dst: warning
      Src: /src/git/refs/files-backend.c:2109,1
    - Dst: _
      Src: /src/git/refs/files-backend.c:2109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - lock
    - target
    argTypes:
    - struct ref_lock*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2094
    functionDepth: 5
    functionLinenumber: 2094
    functionLinenumberEnd: 2121
    functionName: create_ref_symlink
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - get_locked_file_path
    - free
    - unlink
    - warning
    - fprintf
    - _
    - symlink
    linkageType: ''
    returnType: int
    signature: int create_ref_symlink(struct ref_lock *lock, const char *target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdopen_lock_file
      Src: /src/git/refs/files-backend.c:2127,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2128,1
    - Dst: get_lock_file_path
      Src: /src/git/refs/files-backend.c:2129,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:2129,1
    - Dst: fprintf
      Src: /src/git/refs/files-backend.c:2133,1
    - Dst: get_lock_file_fp
      Src: /src/git/refs/files-backend.c:2133,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2134,1
    - Dst: get_lock_file_path
      Src: /src/git/refs/files-backend.c:2135,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:2135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - lock
    - target
    - err
    argTypes:
    - struct ref_lock*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2124
    functionDepth: 2
    functionLinenumber: 2124
    functionLinenumberEnd: 2140
    functionName: create_symref_lock
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - get_lock_file_fp
    - strerror
    - strbuf_addf
    - fdopen_lock_file
    - get_lock_file_path
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int create_symref_lock(struct ref_lock *lock, const char *target,\n\t\t\t
      \     struct strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:2146,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:2151,1
    - Dst: lstat
      Src: /src/git/refs/files-backend.c:2152,1
    - Dst: S_ISREG
      Src: /src/git/refs/files-backend.c:2152,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ref_store
    - refname
    argTypes:
    - struct ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2142
    functionDepth: 5
    functionLinenumber: 2142
    functionLinenumberEnd: 2155
    functionName: files_reflog_exists
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - files_downcast
    - files_reflog_path
    - lstat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int files_reflog_exists(struct ref_store *ref_store,\n\t\t\t       const
      char *refname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:2161,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:2165,1
    - Dst: remove_path
      Src: /src/git/refs/files-backend.c:2166,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ref_store
    - refname
    argTypes:
    - struct ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2157
    functionDepth: 5
    functionLinenumber: 2157
    functionLinenumberEnd: 2169
    functionName: files_delete_reflog
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - files_reflog_path
    - strbuf_release
    - files_downcast
    - remove_path
    linkageType: ''
    returnType: int
    signature: "int files_delete_reflog(struct ref_store *ref_store,\n\t\t\t       const
      char *refname)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_oid_hex_algop
      Src: /src/git/refs/files-backend.c:2184,1
    - Dst: parse_oid_hex_algop
      Src: /src/git/refs/files-backend.c:2185,1
    - Dst: strchr
      Src: /src/git/refs/files-backend.c:2186,1
    - Dst: parse_timestamp
      Src: /src/git/refs/files-backend.c:2188,1
    - Dst: isdigit
      Src: /src/git/refs/files-backend.c:2191,1
    - Dst: isdigit
      Src: /src/git/refs/files-backend.c:2191,1
    - Dst: isdigit
      Src: /src/git/refs/files-backend.c:2192,1
    - Dst: isdigit
      Src: /src/git/refs/files-backend.c:2192,1
    - Dst: strtol
      Src: /src/git/refs/files-backend.c:2195,1
    - Dst: fn
      Src: /src/git/refs/files-backend.c:2200,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 9
    argCount: 5
    argNames:
    - refs
    - refname
    - sb
    - fn
    - cb_data
    argTypes:
    - struct files_ref_store*
    - char*
    - struct strbuf*
    - each_reflog_ent_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2171
    functionDepth: 1
    functionLinenumber: 2171
    functionLinenumberEnd: 2201
    functionName: show_one_reflog_ent
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - fn
    - parse_oid_hex_algop
    - strchr
    - isdigit
    - parse_timestamp
    - strtol
    linkageType: ''
    returnType: int
    signature: "int show_one_reflog_ent(struct files_ref_store *refs,\n\t\t\t       const
      char *refname,\n\t\t\t       struct strbuf *sb,\n\t\t\t       each_reflog_ent_fn
      fn, void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - bob
    - scan
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2212
    functionName: find_beginning_of_line
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *find_beginning_of_line(char *bob, char *scan)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:2220,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:2227,1
    - Dst: fopen
      Src: /src/git/refs/files-backend.c:2228,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2229,1
    - Dst: fseek
      Src: /src/git/refs/files-backend.c:2234,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:2235,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:2236,1
    - Dst: ftell
      Src: /src/git/refs/files-backend.c:2237,1
    - Dst: fseek
      Src: /src/git/refs/files-backend.c:2246,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:2247,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:2248,1
    - Dst: fread
      Src: /src/git/refs/files-backend.c:2251,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:2253,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:2254,1
    - Dst: find_beginning_of_line
      Src: /src/git/refs/files-backend.c:2272,1
    - Dst: strbuf_splice
      Src: /src/git/refs/files-backend.c:2281,1
    - Dst: show_one_reflog_ent
      Src: /src/git/refs/files-backend.c:2284,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:2285,1
    - Dst: strbuf_splice
      Src: /src/git/refs/files-backend.c:2295,1
    - Dst: show_one_reflog_ent
      Src: /src/git/refs/files-backend.c:2296,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:2297,1
    - Dst: strbuf_splice
      Src: /src/git/refs/files-backend.c:2314,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:2321,1
    - Dst: fclose
      Src: /src/git/refs/files-backend.c:2323,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2324,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 4
    argNames:
    - ref_store
    - refname
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - char*
    - each_reflog_ent_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2214
    functionDepth: 5
    functionLinenumber: 2214
    functionLinenumberEnd: 2326
    functionName: files_for_each_reflog_ent_reverse
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - error
    - fclose
    - strbuf_release
    - files_downcast
    - show_one_reflog_ent
    - fseek
    - strbuf_reset
    - ftell
    - strerror
    - fopen
    - strbuf_splice
    - find_beginning_of_line
    - files_reflog_path
    - fread
    - BUG
    linkageType: ''
    returnType: int
    signature: "int files_for_each_reflog_ent_reverse(struct ref_store *ref_store,\n\t\t\t\t\t
      \    const char *refname,\n\t\t\t\t\t     each_reflog_ent_fn fn,\n\t\t\t\t\t
      \    void *cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:2333,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:2339,1
    - Dst: fopen
      Src: /src/git/refs/files-backend.c:2340,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2341,1
    - Dst: strbuf_getwholeline
      Src: /src/git/refs/files-backend.c:2345,1
    - Dst: show_one_reflog_ent
      Src: /src/git/refs/files-backend.c:2346,1
    - Dst: fclose
      Src: /src/git/refs/files-backend.c:2347,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ref_store
    - refname
    - fn
    - cb_data
    argTypes:
    - struct ref_store*
    - char*
    - each_reflog_ent_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2328
    functionDepth: 5
    functionLinenumber: 2328
    functionLinenumberEnd: 2350
    functionName: files_for_each_reflog_ent
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_getwholeline
    - fclose
    - strbuf_release
    - files_downcast
    - show_one_reflog_ent
    - fopen
    - files_reflog_path
    linkageType: ''
    returnType: int
    signature: "int files_for_each_reflog_ent(struct ref_store *ref_store,\n\t\t\t\t
      \    const char *refname,\n\t\t\t\t     each_reflog_ent_fn fn, void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dir_iterator_advance
      Src: /src/git/refs/files-backend.c:2365,1
    - Dst: S_ISREG
      Src: /src/git/refs/files-backend.c:2366,1
    - Dst: check_refname_format
      Src: /src/git/refs/files-backend.c:2368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2358
    functionDepth: 6
    functionLinenumber: 2358
    functionLinenumberEnd: 2377
    functionName: files_reflog_iterator_advance
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - check_refname_format
    - dir_iterator_advance
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int files_reflog_iterator_advance(struct ref_iterator *ref_iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:2383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ref_iterator
    - refname
    - UNUSED
    argTypes:
    - struct ref_iterator*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2379
    functionDepth: 1
    functionLinenumber: 2379
    functionLinenumberEnd: 2384
    functionName: files_reflog_iterator_seek
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: "int files_reflog_iterator_seek(struct ref_iterator *ref_iterator UNUSED,\n\t\t\t\t
      \     const char *refname UNUSED,\n\t\t\t\t      unsigned int flags UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dir_iterator_free
      Src: /src/git/refs/files-backend.c:2390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref_iterator
    argTypes:
    - struct ref_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2386
    functionDepth: 4
    functionLinenumber: 2386
    functionLinenumberEnd: 2391
    functionName: files_reflog_iterator_release
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - dir_iterator_free
    linkageType: ''
    returnType: void
    signature: void files_reflog_iterator_release(struct ref_iterator *ref_iterator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2407,1
    - Dst: dir_iterator_begin
      Src: /src/git/refs/files-backend.c:2409,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2411,1
    - Dst: empty_ref_iterator_begin
      Src: /src/git/refs/files-backend.c:2412,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/files-backend.c:2415,1
    - Dst: base_ref_iterator_init
      Src: /src/git/refs/files-backend.c:2418,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ref_store
    - gitdir
    argTypes:
    - struct ref_store*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2399
    functionDepth: 8
    functionLinenumber: 2399
    functionLinenumberEnd: 2424
    functionName: reflog_iterator_begin
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 2
    functionsReached:
    - strbuf_release
    - base_ref_iterator_init
    - strbuf_addf
    - empty_ref_iterator_begin
    - CALLOC_ARRAY
    - dir_iterator_begin
    linkageType: ''
    returnType: struct ref_iterator
    signature: "struct ref_iterator *reflog_iterator_begin(struct ref_store *ref_store,\n\t\t\t\t\t\t
      \ const char *gitdir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:2429,1
    - Dst: strcmp
      Src: /src/git/refs/files-backend.c:2432,1
    - Dst: reflog_iterator_begin
      Src: /src/git/refs/files-backend.c:2433,1
    - Dst: merge_ref_iterator_begin
      Src: /src/git/refs/files-backend.c:2435,1
    - Dst: reflog_iterator_begin
      Src: /src/git/refs/files-backend.c:2436,1
    - Dst: reflog_iterator_begin
      Src: /src/git/refs/files-backend.c:2437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ref_store
    argTypes:
    - struct ref_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2426
    functionDepth: 9
    functionLinenumber: 2426
    functionLinenumberEnd: 2440
    functionName: files_reflog_iterator_begin
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - reflog_iterator_begin
    - merge_ref_iterator_begin
    - files_downcast
    - strcmp
    linkageType: ''
    returnType: struct ref_iterator
    signature: struct ref_iterator *files_reflog_iterator_begin(struct ref_store *ref_store)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/git/refs/files-backend.c:2459,1
    - Dst: string_list_has_string
      Src: /src/git/refs/files-backend.c:2467,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2469,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs/files-backend.c:2476,1
    - Dst: strcmp
      Src: /src/git/refs/files-backend.c:2488,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:2489,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - update
    - transaction
    - head_ref
    - err
    argTypes:
    - struct ref_update*
    - struct ref_transaction*
    - char*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2446
    functionDepth: 4
    functionLinenumber: 2446
    functionLinenumberEnd: 2492
    functionName: split_head_update
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - string_list_has_string
    - strcmp
    - ref_transaction_add_update
    - BUG
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error split_head_update(struct ref_update *update,\n\t\t\t\t\t\t
      \   struct ref_transaction *transaction,\n\t\t\t\t\t\t    const char *head_ref,\n\t\t\t\t\t\t
      \   struct strbuf *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_list_has_string
      Src: /src/git/refs/files-backend.c:2516,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2518,1
    - Dst: strcmp
      Src: /src/git/refs/files-backend.c:2526,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs/files-backend.c:2537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - update
    - referent
    - transaction
    - err
    argTypes:
    - struct ref_update*
    - char*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2502
    functionDepth: 4
    functionLinenumber: 2502
    functionLinenumberEnd: 2554
    functionName: split_symref_update
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_addf
    - ref_transaction_add_update
    - string_list_has_string
    - strcmp
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error split_symref_update(struct ref_update *update,\n\t\t\t\t\t\t
      \     const char *referent,\n\t\t\t\t\t\t      struct ref_transaction *transaction,\n\t\t\t\t\t\t
      \     struct strbuf *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oideq
      Src: /src/git/refs/files-backend.c:2571,1
    - Dst: is_null_oid
      Src: /src/git/refs/files-backend.c:2586,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2587,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/files-backend.c:2589,1
    - Dst: is_null_oid
      Src: /src/git/refs/files-backend.c:2595,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2596,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/files-backend.c:2598,1
    - Dst: is_null_oid
      Src: /src/git/refs/files-backend.c:2600,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2601,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/files-backend.c:2603,1
    - Dst: oid_to_hex
      Src: /src/git/refs/files-backend.c:2604,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2608,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/files-backend.c:2609,1
    - Dst: oid_to_hex
      Src: /src/git/refs/files-backend.c:2609,1
    - Dst: oid_to_hex
      Src: /src/git/refs/files-backend.c:2610,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - update
    - oid
    - referent
    - err
    argTypes:
    - struct ref_update*
    - struct object_id*
    - struct strbuf*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2562
    functionDepth: 3
    functionLinenumber: 2562
    functionLinenumberEnd: 2613
    functionName: check_old_oid
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - oid_to_hex
    - strbuf_addf
    - is_null_oid
    - oideq
    - ref_update_original_update_refname
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error check_old_oid(struct ref_update *update,\n\t\t\t\t\t\tstruct
      object_id *oid,\n\t\t\t\t\t\tstruct strbuf *referent,\n\t\t\t\t\t\tstruct strbuf
      *err)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ref_update_expects_existing_old_ref
      Src: /src/git/refs/files-backend.c:2643,1
    - Dst: files_assert_main_repository
      Src: /src/git/refs/files-backend.c:2648,1
    - Dst: ref_update_has_null_new_value
      Src: /src/git/refs/files-backend.c:2652,1
    - Dst: split_head_update
      Src: /src/git/refs/files-backend.c:2656,1
    - Dst: strmap_get
      Src: /src/git/refs/files-backend.c:2661,1
    - Dst: lock_raw_ref
      Src: /src/git/refs/files-backend.c:2665,1
    - Dst: strbuf_detach
      Src: /src/git/refs/files-backend.c:2670,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2671,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/files-backend.c:2672,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:2673,1
    - Dst: strmap_put
      Src: /src/git/refs/files-backend.c:2677,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:2686,1
    - Dst: strcmp
      Src: /src/git/refs/files-backend.c:2700,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:2701,1
    - Dst: oidcpy
      Src: /src/git/refs/files-backend.c:2707,1
    - Dst: oidcpy
      Src: /src/git/refs/files-backend.c:2709,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/files-backend.c:2718,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2722,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/files-backend.c:2724,1
    - Dst: ref_update_check_old_target
      Src: /src/git/refs/files-backend.c:2731,1
    - Dst: check_old_oid
      Src: /src/git/refs/files-backend.c:2733,1
    - Dst: split_symref_update
      Src: /src/git/refs/files-backend.c:2745,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2758,1
    - Dst: _
      Src: /src/git/refs/files-backend.c:2758,1
    - Dst: ref_update_original_update_refname
      Src: /src/git/refs/files-backend.c:2761,1
    - Dst: check_old_oid
      Src: /src/git/refs/files-backend.c:2766,1
    - Dst: oidcpy
      Src: /src/git/refs/files-backend.c:2782,1
    - Dst: create_symref_lock
      Src: /src/git/refs/files-backend.c:2787,1
    - Dst: close_ref_gently
      Src: /src/git/refs/files-backend.c:2792,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2793,1
    - Dst: oideq
      Src: /src/git/refs/files-backend.c:2808,1
    - Dst: write_ref_to_lockfile
      Src: /src/git/refs/files-backend.c:2814,1
    - Dst: strbuf_detach
      Src: /src/git/refs/files-backend.c:2818,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2825,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:2828,1
    - Dst: close_ref_gently
      Src: /src/git/refs/files-backend.c:2841,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:2842,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2850,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 122
    argCount: 7
    argNames:
    - refs
    - update
    - update_idx
    - transaction
    - head_ref
    - refnames_to_check
    - err
    argTypes:
    - struct files_ref_store*
    - struct ref_update*
    - size_t
    - struct ref_transaction*
    - char*
    - struct string_list*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2634
    functionDepth: 9
    functionLinenumber: 2634
    functionLinenumberEnd: 2852
    functionName: lock_ref_for_update
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - split_head_update
    - oidcpy
    - refs_resolve_ref_unsafe
    - lock_raw_ref
    - strbuf_addf
    - strmap_get
    - ref_update_has_null_new_value
    - strmap_put
    - strcmp
    - free
    - ref_update_expects_existing_old_ref
    - files_assert_main_repository
    - ref_update_original_update_refname
    - strbuf_release
    - create_symref_lock
    - close_ref_gently
    - strbuf_addstr
    - split_symref_update
    - strbuf_detach
    - write_ref_to_lockfile
    - _
    - check_old_oid
    - ref_update_check_old_target
    - BUG
    - oideq
    linkageType: ''
    returnType: enum ref_transaction_error
    signature: "enum ref_transaction_error lock_ref_for_update(struct files_ref_store
      *refs,\n\t\t\t\t\t\t      struct ref_update *update,\n\t\t\t\t\t\t      size_t
      update_idx,\n\t\t\t\t\t\t      struct ref_transaction *transaction,\n\t\t\t\t\t\t
      \     const char *head_ref,\n\t\t\t\t\t\t      struct string_list *refnames_to_check,\n\t\t\t\t\t\t
      \     struct strbuf *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:2871,1
    - Dst: try_remove_empty_parents
      Src: /src/git/refs/files-backend.c:2872,1
    - Dst: ref_transaction_abort
      Src: /src/git/refs/files-backend.c:2880,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:2881,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:2882,1
    - Dst: packed_refs_unlock
      Src: /src/git/refs/files-backend.c:2886,1
    - Dst: strmap_clear
      Src: /src/git/refs/files-backend.c:2888,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:2890,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - refs
    - transaction
    argTypes:
    - struct files_ref_store*
    - struct ref_transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2894
      start: 2858
    functionDepth: 7
    functionLinenumber: 2858
    functionLinenumberEnd: 2894
    functionName: files_transaction_cleanup
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - error
    - strbuf_release
    - ref_transaction_abort
    - strmap_clear
    - try_remove_empty_parents
    - packed_refs_unlock
    - unlock_ref
    - free
    linkageType: ''
    returnType: void
    signature: "void files_transaction_cleanup(struct files_ref_store *refs,\n\t\t\t\t
      \     struct ref_transaction *transaction)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:2901,1
    - Dst: assert
      Src: /src/git/refs/files-backend.c:2911,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/refs/files-backend.c:2918,1
    - Dst: strmap_init
      Src: /src/git/refs/files-backend.c:2919,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:2930,1
    - Dst: refs_resolve_refdup
      Src: /src/git/refs/files-backend.c:2951,1
    - Dst: FREE_AND_NULL
      Src: /src/git/refs/files-backend.c:2956,1
    - Dst: lock_ref_for_update
      Src: /src/git/refs/files-backend.c:2970,1
    - Dst: ref_transaction_maybe_set_rejected
      Src: /src/git/refs/files-backend.c:2974,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/refs/files-backend.c:2990,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs/files-backend.c:3002,1
    - Dst: refs_verify_refnames_available
      Src: /src/git/refs/files-backend.c:3024,1
    - Dst: packed_refs_lock
      Src: /src/git/refs/files-backend.c:3032,1
    - Dst: is_packed_transaction_needed
      Src: /src/git/refs/files-backend.c:3038,1
    - Dst: ref_transaction_prepare
      Src: /src/git/refs/files-backend.c:3040,1
    - Dst: ref_transaction_free
      Src: /src/git/refs/files-backend.c:3048,1
    - Dst: ref_transaction_abort
      Src: /src/git/refs/files-backend.c:3063,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:3071,1
    - Dst: string_list_clear
      Src: /src/git/refs/files-backend.c:3072,1
    - Dst: files_transaction_cleanup
      Src: /src/git/refs/files-backend.c:3075,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 77
    argCount: 3
    argNames:
    - ref_store
    - transaction
    - err
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 2910
        line_start: 2910
        source_file: /src/git/refs/files-backend.c
    constantsTouched: []
    func_position:
      end: 3080
      start: 2896
    functionDepth: 20
    functionLinenumber: 2896
    functionLinenumberEnd: 3080
    functionName: files_transaction_prepare
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - files_transaction_cleanup
    - ref_transaction_maybe_set_rejected
    - CALLOC_ARRAY
    - free
    - ref_store_transaction_begin
    - files_downcast
    - ref_transaction_abort
    - ref_transaction_prepare
    - ref_transaction_free
    - refs_resolve_refdup
    - string_list_clear
    - is_packed_transaction_needed
    - lock_ref_for_update
    - ref_transaction_add_update
    - FREE_AND_NULL
    - strmap_init
    - assert
    - packed_refs_lock
    - refs_verify_refnames_available
    - BUG
    linkageType: ''
    returnType: int
    signature: "int files_transaction_prepare(struct ref_store *ref_store,\n\t\t\t\t
      \    struct ref_transaction *transaction,\n\t\t\t\t     struct strbuf *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3093,1
    - Dst: _
      Src: /src/git/refs/files-backend.c:3093,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/files-backend.c:3106,1
    - Dst: files_log_ref_write
      Src: /src/git/refs/files-backend.c:3118,1
    - Dst: strbuf_detach
      Src: /src/git/refs/files-backend.c:3121,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3123,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:3125,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:3126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - refs
    - update
    - lock
    - err
    argTypes:
    - struct files_ref_store*
    - struct ref_update*
    - struct ref_lock*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3082
    functionDepth: 11
    functionLinenumber: 3082
    functionLinenumberEnd: 3132
    functionName: parse_and_write_reflog
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - refs_resolve_ref_unsafe
    - unlock_ref
    - strbuf_addf
    - strbuf_detach
    - _
    - free
    - files_log_ref_write
    linkageType: ''
    returnType: int
    signature: "int parse_and_write_reflog(struct files_ref_store *refs,\n\t\t\t\t
      \ struct ref_update *update,\n\t\t\t\t  struct ref_lock *lock,\n\t\t\t\t  struct
      strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_list_has_string
      Src: /src/git/refs/files-backend.c:3138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - cb_data
    argTypes:
    - struct reference*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3139
      start: 3134
    functionDepth: 3
    functionLinenumber: 3134
    functionLinenumberEnd: 3139
    functionName: ref_present
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - string_list_has_string
    linkageType: ''
    returnType: int
    signature: int ref_present(const struct reference *ref, void *cb_data)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/git/refs/files-backend.c:3155,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:3158,1
    - Dst: refs_for_each_ref_ext
      Src: /src/git/refs/files-backend.c:3172,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:3174,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/refs/files-backend.c:3176,1
    - Dst: is_null_oid
      Src: /src/git/refs/files-backend.c:3188,1
    - Dst: BUG
      Src: /src/git/refs/files-backend.c:3189,1
    - Dst: string_list_append
      Src: /src/git/refs/files-backend.c:3191,1
    - Dst: is_root_ref
      Src: /src/git/refs/files-backend.c:3198,1
    - Dst: ref_store_transaction_begin
      Src: /src/git/refs/files-backend.c:3201,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs/files-backend.c:3209,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs/files-backend.c:3215,1
    - Dst: ref_transaction_add_update
      Src: /src/git/refs/files-backend.c:3222,1
    - Dst: packed_refs_lock
      Src: /src/git/refs/files-backend.c:3230,1
    - Dst: refs_verify_refnames_available
      Src: /src/git/refs/files-backend.c:3235,1
    - Dst: packed_refs_unlock
      Src: /src/git/refs/files-backend.c:3238,1
    - Dst: ref_transaction_commit
      Src: /src/git/refs/files-backend.c:3243,1
    - Dst: packed_refs_unlock
      Src: /src/git/refs/files-backend.c:3247,1
    - Dst: ref_transaction_prepare
      Src: /src/git/refs/files-backend.c:3250,1
    - Dst: ref_transaction_commit
      Src: /src/git/refs/files-backend.c:3251,1
    - Dst: ref_transaction_free
      Src: /src/git/refs/files-backend.c:3259,1
    - Dst: ref_transaction_free
      Src: /src/git/refs/files-backend.c:3261,1
    - Dst: string_list_clear
      Src: /src/git/refs/files-backend.c:3263,1
    - Dst: string_list_clear
      Src: /src/git/refs/files-backend.c:3264,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 3
    argNames:
    - refs
    - transaction
    - err
    argTypes:
    - struct files_ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 3154
        line_start: 3154
        source_file: /src/git/refs/files-backend.c
    constantsTouched: []
    func_position:
      end: 3266
      start: 3141
    functionDepth: 20
    functionLinenumber: 3141
    functionLinenumberEnd: 3266
    functionName: files_transaction_finish_initial
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - string_list_clear
    - assert
    - packed_refs_lock
    - is_root_ref
    - refs_verify_refnames_available
    - is_null_oid
    - refs_for_each_ref_ext
    - ref_transaction_prepare
    - packed_refs_unlock
    - string_list_append
    - ref_transaction_free
    - ref_transaction_add_update
    - ref_store_transaction_begin
    - BUG
    linkageType: ''
    returnType: int
    signature: "int files_transaction_finish_initial(struct files_ref_store *refs,\n\t\t\t\t\t
      \   struct ref_transaction *transaction,\n\t\t\t\t\t    struct strbuf *err)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:3273,1
    - Dst: assert
      Src: /src/git/refs/files-backend.c:3281,1
    - Dst: files_transaction_finish_initial
      Src: /src/git/refs/files-backend.c:3284,1
    - Dst: parse_and_write_reflog
      Src: /src/git/refs/files-backend.c:3303,1
    - Dst: NOT_CONSTANT
      Src: /src/git/refs/files-backend.c:3320,1
    - Dst: create_ref_symlink
      Src: /src/git/refs/files-backend.c:3320,1
    - Dst: clear_loose_ref_cache
      Src: /src/git/refs/files-backend.c:3324,1
    - Dst: commit_ref
      Src: /src/git/refs/files-backend.c:3325,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3326,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:3327,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:3352,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:3353,1
    - Dst: unlink_or_warn
      Src: /src/git/refs/files-backend.c:3354,1
    - Dst: try_remove_empty_parents
      Src: /src/git/refs/files-backend.c:3355,1
    - Dst: ref_transaction_commit
      Src: /src/git/refs/files-backend.c:3367,1
    - Dst: ref_transaction_free
      Src: /src/git/refs/files-backend.c:3368,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:3389,1
    - Dst: files_ref_path
      Src: /src/git/refs/files-backend.c:3390,1
    - Dst: unlink_or_msg
      Src: /src/git/refs/files-backend.c:3391,1
    - Dst: clear_loose_ref_cache
      Src: /src/git/refs/files-backend.c:3399,1
    - Dst: files_transaction_cleanup
      Src: /src/git/refs/files-backend.c:3402,1
    - Dst: try_remove_empty_parents
      Src: /src/git/refs/files-backend.c:3414,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3419,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 81
    argCount: 3
    argNames:
    - ref_store
    - transaction
    - err
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts:
    - condition: (err)
      pos:
        line_end: 3280
        line_start: 3280
        source_file: /src/git/refs/files-backend.c
    constantsTouched: []
    func_position:
      end: 3421
      start: 3268
    functionDepth: 21
    functionLinenumber: 3268
    functionLinenumberEnd: 3421
    functionName: files_transaction_finish
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - ref_transaction_commit
    - files_transaction_cleanup
    - clear_loose_ref_cache
    - strbuf_addf
    - files_transaction_finish_initial
    - unlock_ref
    - strbuf_release
    - files_downcast
    - parse_and_write_reflog
    - ref_transaction_free
    - files_ref_path
    - unlink_or_warn
    - NOT_CONSTANT
    - commit_ref
    - try_remove_empty_parents
    - create_ref_symlink
    - files_reflog_path
    - assert
    - strbuf_reset
    - unlink_or_msg
    linkageType: ''
    returnType: int
    signature: "int files_transaction_finish(struct ref_store *ref_store,\n\t\t\t\t
      \   struct ref_transaction *transaction,\n\t\t\t\t    struct strbuf *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:3428,1
    - Dst: files_transaction_cleanup
      Src: /src/git/refs/files-backend.c:3430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ref_store
    - transaction
    - UNUSED
    argTypes:
    - struct ref_store*
    - struct ref_transaction*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3432
      start: 3423
    functionDepth: 8
    functionLinenumber: 3423
    functionLinenumberEnd: 3432
    functionName: files_transaction_abort
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - files_transaction_cleanup
    - files_downcast
    linkageType: ''
    returnType: int
    signature: "int files_transaction_abort(struct ref_store *ref_store,\n\t\t\t\t
      \  struct ref_transaction *transaction,\n\t\t\t\t   struct strbuf *err UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/git/refs/files-backend.c:3454,1
    - Dst: fprintf
      Src: /src/git/refs/files-backend.c:3460,1
    - Dst: oid_to_hex
      Src: /src/git/refs/files-backend.c:3460,1
    - Dst: oid_to_hex
      Src: /src/git/refs/files-backend.c:3461,1
    - Dst: oidcpy
      Src: /src/git/refs/files-backend.c:3462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 8
    argNames:
    - refname
    - ooid
    - noid
    - email
    - timestamp
    - tz
    - message
    - cb_data
    argTypes:
    - char*
    - struct object_id*
    - struct object_id*
    - char*
    - timestamp_t
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3465
      start: 3443
    functionDepth: 3
    functionLinenumber: 3443
    functionLinenumberEnd: 3465
    functionName: expire_reflog_ent
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 2
    functionsReached:
    - oid_to_hex
    - fn
    - fprintf
    - oidcpy
    linkageType: ''
    returnType: int
    signature: "int expire_reflog_ent(const char *refname UNUSED,\n\t\t\t     struct
      object_id *ooid, struct object_id *noid,\n\t\t\t     const char *email, timestamp_t
      timestamp, int tz,\n\t\t\t     const char *message, void *cb_data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:3476,1
    - Dst: memset
      Src: /src/git/refs/files-backend.c:3486,1
    - Dst: lock_ref_oid_basic
      Src: /src/git/refs/files-backend.c:3497,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:3499,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3500,1
    - Dst: refs_reflog_exists
      Src: /src/git/refs/files-backend.c:3517,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:3518,1
    - Dst: files_reflog_path
      Src: /src/git/refs/files-backend.c:3522,1
    - Dst: strbuf_detach
      Src: /src/git/refs/files-backend.c:3523,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/refs/files-backend.c:3532,1
    - Dst: unable_to_lock_message
      Src: /src/git/refs/files-backend.c:3534,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:3535,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3536,1
    - Dst: fdopen_lock_file
      Src: /src/git/refs/files-backend.c:3539,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:3541,1
    - Dst: get_lock_file_path
      Src: /src/git/refs/files-backend.c:3542,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:3542,1
    - Dst: refs_for_each_reflog_ent
      Src: /src/git/refs/files-backend.c:3548,1
    - Dst: is_null_oid
      Src: /src/git/refs/files-backend.c:3562,1
    - Dst: refs_resolve_ref_unsafe
      Src: /src/git/refs/files-backend.c:3566,1
    - Dst: close_lock_file_gently
      Src: /src/git/refs/files-backend.c:3572,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:3573,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:3574,1
    - Dst: rollback_lock_file
      Src: /src/git/refs/files-backend.c:3575,1
    - Dst: write_in_full
      Src: /src/git/refs/files-backend.c:3577,1
    - Dst: get_lock_file_fd
      Src: /src/git/refs/files-backend.c:3577,1
    - Dst: oid_to_hex
      Src: /src/git/refs/files-backend.c:3578,1
    - Dst: write_str_in_full
      Src: /src/git/refs/files-backend.c:3579,1
    - Dst: get_lock_file_fd
      Src: /src/git/refs/files-backend.c:3579,1
    - Dst: close_ref_gently
      Src: /src/git/refs/files-backend.c:3580,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:3581,1
    - Dst: get_lock_file_path
      Src: /src/git/refs/files-backend.c:3582,1
    - Dst: rollback_lock_file
      Src: /src/git/refs/files-backend.c:3583,1
    - Dst: commit_lock_file
      Src: /src/git/refs/files-backend.c:3584,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:3585,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:3586,1
    - Dst: commit_ref
      Src: /src/git/refs/files-backend.c:3587,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:3588,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:3591,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:3592,1
    - Dst: rollback_lock_file
      Src: /src/git/refs/files-backend.c:3596,1
    - Dst: free
      Src: /src/git/refs/files-backend.c:3597,1
    - Dst: unlock_ref
      Src: /src/git/refs/files-backend.c:3598,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 7
    argNames:
    - ref_store
    - refname
    - expire_flags
    - prepare_fn
    - should_prune_fn
    - cleanup_fn
    - policy_cb_data
    argTypes:
    - struct ref_store*
    - char*
    - unsigned int
    - reflog_expiry_prepare_fn
    - reflog_expiry_should_prune_fn
    - reflog_expiry_cleanup_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3467
    functionDepth: 10
    functionLinenumber: 3467
    functionLinenumberEnd: 3600
    functionName: files_reflog_expire
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - hold_lock_file_for_update
    - refs_resolve_ref_unsafe
    - lock_ref_oid_basic
    - is_null_oid
    - unlock_ref
    - free
    - error
    - strbuf_release
    - files_downcast
    - refs_for_each_reflog_ent
    - write_str_in_full
    - commit_lock_file
    - strerror
    - close_ref_gently
    - fdopen_lock_file
    - rollback_lock_file
    - write_in_full
    - close_lock_file_gently
    - memset
    - oid_to_hex
    - commit_ref
    - refs_reflog_exists
    - strbuf_detach
    - get_lock_file_fd
    - files_reflog_path
    - get_lock_file_path
    - unable_to_lock_message
    linkageType: ''
    returnType: int
    signature: "int files_reflog_expire(struct ref_store *ref_store,\n\t\t\t       const
      char *refname,\n\t\t\t       unsigned int expire_flags,\n\t\t\t       reflog_expiry_prepare_fn
      prepare_fn,\n\t\t\t       reflog_expiry_should_prune_fn should_prune_fn,\n\t\t\t
      \      reflog_expiry_cleanup_fn cleanup_fn,\n\t\t\t       void *policy_cb_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:3607,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3622,1
    - Dst: safe_create_dir
      Src: /src/git/refs/files-backend.c:3623,1
    - Dst: adjust_shared_perm
      Src: /src/git/refs/files-backend.c:3624,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:3634,1
    - Dst: files_ref_path
      Src: /src/git/refs/files-backend.c:3635,1
    - Dst: safe_create_dir
      Src: /src/git/refs/files-backend.c:3636,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:3638,1
    - Dst: files_ref_path
      Src: /src/git/refs/files-backend.c:3639,1
    - Dst: safe_create_dir
      Src: /src/git/refs/files-backend.c:3640,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - ref_store
    - flags
    - UNUSED
    argTypes:
    - struct ref_store*
    - int
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3645
      start: 3602
    functionDepth: 5
    functionLinenumber: 3602
    functionLinenumberEnd: 3645
    functionName: files_ref_store_create_on_disk
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - files_downcast
    - strbuf_reset
    - files_ref_path
    - strbuf_addf
    - safe_create_dir
    - adjust_shared_perm
    linkageType: ''
    returnType: int
    signature: "int files_ref_store_create_on_disk(struct ref_store *ref_store,\n\t\t\t\t\t
      \ int flags,\n\t\t\t\t\t  struct strbuf *err UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3659,1
    - Dst: unlink
      Src: /src/git/refs/files-backend.c:3661,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3663,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:3664,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - refname
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3652
    functionDepth: 3
    functionLinenumber: 3652
    functionLinenumberEnd: 3668
    functionName: remove_one_root_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strerror
    - strbuf_addf
    - strbuf_release
    - unlink
    linkageType: ''
    returnType: int
    signature: "int remove_one_root_ref(const char *refname,\n\t\t\t       void *cb_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:3674,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3682,1
    - Dst: remove_dir_recursively
      Src: /src/git/refs/files-backend.c:3683,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3684,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:3685,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:3688,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3690,1
    - Dst: remove_dir_recursively
      Src: /src/git/refs/files-backend.c:3691,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3692,1
    - Dst: strerror
      Src: /src/git/refs/files-backend.c:3693,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:3696,1
    - Dst: for_each_root_ref
      Src: /src/git/refs/files-backend.c:3698,1
    - Dst: struct files_ref_store*::packed_ref_store::be::remove_on_disk
      Src: /src/git/refs/files-backend.c:3705,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ref_store
    - err
    argTypes:
    - struct ref_store*
    - struct strbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3710
      start: 3670
    functionDepth: 8
    functionLinenumber: 3670
    functionLinenumberEnd: 3710
    functionName: files_ref_store_remove_on_disk
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - files_downcast
    - strbuf_reset
    - remove_dir_recursively
    - for_each_root_ref
    - strerror
    - strbuf_addf
    - struct files_ref_store*::packed_ref_store::be::remove_on_disk
    linkageType: ''
    returnType: int
    signature: "int files_ref_store_remove_on_disk(struct ref_store *ref_store,\n\t\t\t\t\t
      \ struct strbuf *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_rtrim
      Src: /src/git/refs/files-backend.c:3738,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/files-backend.c:3742,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/files-backend.c:3748,1
    - Dst: refs_fsck_symref
      Src: /src/git/refs/files-backend.c:3754,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - ref_store
    - o
    - report
    - refname
    - referent
    - symbolic_link
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - struct fsck_ref_report*
    - char*
    - struct strbuf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3757
      start: 3723
    functionDepth: 5
    functionLinenumber: 3723
    functionLinenumberEnd: 3757
    functionName: files_fsck_symref_target
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - refs_fsck_symref
    - fsck_report_ref
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: "int files_fsck_symref_target(struct ref_store *ref_store,\n\t\t\t\t
      \   struct fsck_options *o,\n\t\t\t\t    struct fsck_ref_report *report,\n\t\t\t\t
      \   const char *refname,\n\t\t\t\t    struct strbuf *referent,\n\t\t\t\t    unsigned
      int symbolic_link)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: S_ISLNK
      Src: /src/git/refs/files-backend.c:3777,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/files-backend.c:3780,1
    - Dst: strbuf_add_absolute_path
      Src: /src/git/refs/files-backend.c:3784,1
    - Dst: strbuf_normalize_path
      Src: /src/git/refs/files-backend.c:3785,1
    - Dst: is_dir_sep
      Src: /src/git/refs/files-backend.c:3786,1
    - Dst: strbuf_addch
      Src: /src/git/refs/files-backend.c:3787,1
    - Dst: strbuf_add_real_path
      Src: /src/git/refs/files-backend.c:3789,1
    - Dst: skip_prefix
      Src: /src/git/refs/files-backend.c:3790,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:3794,1
    - Dst: strbuf_addbuf
      Src: /src/git/refs/files-backend.c:3796,1
    - Dst: files_fsck_symref_target
      Src: /src/git/refs/files-backend.c:3798,1
    - Dst: strbuf_read_file
      Src: /src/git/refs/files-backend.c:3803,1
    - Dst: error_errno
      Src: /src/git/refs/files-backend.c:3811,1
    - Dst: _
      Src: /src/git/refs/files-backend.c:3811,1
    - Dst: parse_loose_ref_contents
      Src: /src/git/refs/files-backend.c:3815,1
    - Dst: strbuf_rtrim
      Src: /src/git/refs/files-backend.c:3818,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/files-backend.c:3819,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/files-backend.c:3827,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/files-backend.c:3833,1
    - Dst: refs_fsck_ref
      Src: /src/git/refs/files-backend.c:3839,1
    - Dst: files_fsck_symref_target
      Src: /src/git/refs/files-backend.c:3841,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3847,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3848,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3849,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 5
    argNames:
    - ref_store
    - o
    - target_name
    - path
    - mode
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3851
      start: 3759
    functionDepth: 8
    functionLinenumber: 3759
    functionLinenumberEnd: 3851
    functionName: files_fsck_refs_content
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - error_errno
    - strbuf_release
    - S_ISLNK
    - is_dir_sep
    - strbuf_add_real_path
    - strbuf_read_file
    - parse_loose_ref_contents
    - refs_fsck_ref
    - skip_prefix
    - strbuf_addch
    - strbuf_addbuf
    - strbuf_addstr
    - strbuf_normalize_path
    - files_fsck_symref_target
    - strbuf_add_absolute_path
    - fsck_report_ref
    - _
    - strbuf_rtrim
    linkageType: ''
    returnType: int
    signature: "int files_fsck_refs_content(struct ref_store *ref_store,\n\t\t\t\t
      \  struct fsck_options *o,\n\t\t\t\t   const char *target_name,\n\t\t\t\t   const
      char *path,\n\t\t\t\t   int mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_root_ref
      Src: /src/git/refs/files-backend.c:3862,1
    - Dst: check_refname_format
      Src: /src/git/refs/files-backend.c:3865,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/files-backend.c:3869,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ref_store
    - o
    - refname
    - UNUSED
    - UNUSED
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3877
      start: 3853
    functionDepth: 5
    functionLinenumber: 3853
    functionLinenumberEnd: 3877
    functionName: files_fsck_refs_name
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - fsck_report_ref
    - is_root_ref
    - check_refname_format
    linkageType: ''
    returnType: int
    signature: "int files_fsck_refs_name(struct ref_store *ref_store UNUSED,\n\t\t\t\tstruct
      fsck_options *o,\n\t\t\t\tconst char *refname,\n\t\t\t\tconst char *path UNUSED,\n\t\t\t\tint
      mode UNUSED)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_ln
      Src: /src/git/refs/files-backend.c:3894,1
    - Dst: S_ISREG
      Src: /src/git/refs/files-backend.c:3896,1
    - Dst: S_ISLNK
      Src: /src/git/refs/files-backend.c:3896,1
    - Dst: fsck_report_ref
      Src: /src/git/refs/files-backend.c:3899,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - ref_store
    - o
    - refname
    - path
    - mode
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3912
      start: 3885
    functionDepth: 5
    functionLinenumber: 3885
    functionLinenumberEnd: 3912
    functionName: files_fsck_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - fsck_report_ref
    - fprintf_ln
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int files_fsck_ref(struct ref_store *ref_store,\n\t\t\t  struct fsck_options
      *o,\n\t\t\t  const char *refname,\n\t\t\t  const char *path,\n\t\t\t  int mode)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3925,1
    - Dst: dir_iterator_begin
      Src: /src/git/refs/files-backend.c:3927,1
    - Dst: is_main_worktree
      Src: /src/git/refs/files-backend.c:3929,1
    - Dst: error_errno
      Src: /src/git/refs/files-backend.c:3932,1
    - Dst: _
      Src: /src/git/refs/files-backend.c:3932,1
    - Dst: dir_iterator_advance
      Src: /src/git/refs/files-backend.c:3936,1
    - Dst: S_ISDIR
      Src: /src/git/refs/files-backend.c:3937,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:3940,1
    - Dst: is_main_worktree
      Src: /src/git/refs/files-backend.c:3941,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3942,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3943,1
    - Dst: basename
      Src: /src/git/refs/files-backend.c:3945,1
    - Dst: ends_with
      Src: /src/git/refs/files-backend.c:3951,1
    - Dst: files_fsck_ref
      Src: /src/git/refs/files-backend.c:3954,1
    - Dst: error
      Src: /src/git/refs/files-backend.c:3960,1
    - Dst: _
      Src: /src/git/refs/files-backend.c:3960,1
    - Dst: dir_iterator_free
      Src: /src/git/refs/files-backend.c:3963,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3964,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:3965,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 3
    argNames:
    - ref_store
    - o
    - wt
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3967
      start: 3914
    functionDepth: 8
    functionLinenumber: 3914
    functionLinenumberEnd: 3967
    functionName: files_fsck_refs_dir
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - error
    - error_errno
    - S_ISDIR
    - strbuf_release
    - is_main_worktree
    - dir_iterator_advance
    - strbuf_reset
    - dir_iterator_free
    - ends_with
    - strbuf_addf
    - files_fsck_ref
    - basename
    - _
    - dir_iterator_begin
    linkageType: ''
    returnType: int
    signature: "int files_fsck_refs_dir(struct ref_store *ref_store,\n\t\t\t       struct
      fsck_options *o,\n\t\t\t       struct worktree *wt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:3982,1
    - Dst: is_main_worktree
      Src: /src/git/refs/files-backend.c:3983,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3984,1
    - Dst: strbuf_addstr
      Src: /src/git/refs/files-backend.c:3985,1
    - Dst: strbuf_reset
      Src: /src/git/refs/files-backend.c:3987,1
    - Dst: strbuf_addf
      Src: /src/git/refs/files-backend.c:3988,1
    - Dst: stat
      Src: /src/git/refs/files-backend.c:3990,1
    - Dst: error_errno
      Src: /src/git/refs/files-backend.c:3993,1
    - Dst: files_fsck_ref
      Src: /src/git/refs/files-backend.c:3996,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - refname
    - cb_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3998
      start: 3977
    functionDepth: 6
    functionLinenumber: 3977
    functionLinenumberEnd: 3998
    functionName: files_fsck_root_ref
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - error_errno
    - is_main_worktree
    - strbuf_reset
    - stat
    - strbuf_addf
    - files_fsck_ref
    - strbuf_addstr
    linkageType: ''
    returnType: int
    signature: int files_fsck_root_ref(const char *refname, void *cb_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: files_downcast
      Src: /src/git/refs/files-backend.c:4005,1
    - Dst: files_fsck_refs_dir
      Src: /src/git/refs/files-backend.c:4015,1
    - Dst: for_each_root_ref
      Src: /src/git/refs/files-backend.c:4018,1
    - Dst: struct files_ref_store*::packed_ref_store::be::fsck
      Src: /src/git/refs/files-backend.c:4021,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:4024,1
    - Dst: strbuf_release
      Src: /src/git/refs/files-backend.c:4025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ref_store
    - o
    - wt
    argTypes:
    - struct ref_store*
    - struct fsck_options*
    - struct worktree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4027
      start: 4000
    functionDepth: 9
    functionLinenumber: 4000
    functionLinenumberEnd: 4027
    functionName: files_fsck
    functionSourceFile: /src/git/refs/files-backend.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - files_downcast
    - struct files_ref_store*::packed_ref_store::be::fsck
    - for_each_root_ref
    - files_fsck_refs_dir
    linkageType: ''
    returnType: int
    signature: "int files_fsck(struct ref_store *ref_store,\n\t\t      struct fsck_options
      *o,\n\t\t      struct worktree *wt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidtree_get
      Src: /src/git/odb/source-inmemory.c:25,1
    - Dst: oideq
      Src: /src/git/odb/source-inmemory.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - source
    - oid
    argTypes:
    - struct odb_source_inmemory*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 34
    functionName: find_cached_object
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - oidtree_get
    - oideq
    linkageType: ''
    returnType: struct inmemory_object
    signature: "struct inmemory_object *find_cached_object(struct odb_source_inmemory
      *source,\n\t\t\t\t\t\t\tconst struct object_id *oid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidclr
      Src: /src/git/odb/source-inmemory.c:50,1
    - Dst: xmemdupz
      Src: /src/git/odb/source-inmemory.c:52,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - source
    - oi
    - object
    argTypes:
    - struct odb_source_inmemory*
    - struct object_info*
    - struct inmemory_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 10
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: populate_object_info
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - oidclr
    linkageType: ''
    returnType: void
    signature: "void populate_object_info(struct odb_source_inmemory *source,\n\t\t\t\t
      struct object_info *oi,\n\t\t\t\t const struct inmemory_object *object)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_downcast
      Src: /src/git/odb/source-inmemory.c:63,1
    - Dst: find_cached_object
      Src: /src/git/odb/source-inmemory.c:66,1
    - Dst: populate_object_info
      Src: /src/git/odb/source-inmemory.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - source
    - oid
    - oi
    - UNUSED
    argTypes:
    - struct odb_source*
    - struct object_id*
    - struct object_info*
    - enum object_info_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 11
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: odb_source_inmemory_read_object_info
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - populate_object_info
    - odb_source_inmemory_downcast
    - find_cached_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_read_object_info(struct odb_source *source,\n\t\t\t\t\t\tconst
      struct object_id *oid,\n\t\t\t\t\t\tstruct object_info *oi,\n\t\t\t\t\t\tenum
      object_info_flags flags UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/git/odb/source-inmemory.c:84,1
    - Dst: memcpy
      Src: /src/git/odb/source-inmemory.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - stream
    - buf
    - buf_len
    argTypes:
    - struct odb_read_stream*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: odb_read_stream_inmemory_read
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - container_of
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t odb_read_stream_inmemory_read(struct odb_read_stream *stream,\n\t\t\t\t\t
      \    char *buf, size_t buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct odb_read_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: odb_read_stream_inmemory_close
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int odb_read_stream_inmemory_close(struct odb_read_stream *stream UNUSED)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_downcast
      Src: /src/git/odb/source-inmemory.c:105,1
    - Dst: find_cached_object
      Src: /src/git/odb/source-inmemory.c:109,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/odb/source-inmemory.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - source
    - oid
    argTypes:
    - struct odb_read_stream**
    - struct odb_source*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 101
    functionDepth: 6
    functionLinenumber: 101
    functionLinenumberEnd: 122
    functionName: odb_source_inmemory_read_object_stream
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - odb_source_inmemory_downcast
    - find_cached_object
    - CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_read_object_stream(struct odb_read_stream
      **out,\n\t\t\t\t\t\t  struct odb_source *source,\n\t\t\t\t\t\t  const struct
      object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: populate_object_info
      Src: /src/git/odb/source-inmemory.c:139,1
    - Dst: struct odb_source_inmemory_for_each_object_data*::cb
      Src: /src/git/odb/source-inmemory.c:140,1
    - Dst: struct odb_source_inmemory_for_each_object_data*::cb
      Src: /src/git/odb/source-inmemory.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - oid
    - node_data
    - cb_data
    argTypes:
    - struct object_id*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 131
    functionDepth: 11
    functionLinenumber: 131
    functionLinenumberEnd: 144
    functionName: odb_source_inmemory_for_each_object_cb
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - struct odb_source_inmemory_for_each_object_data*::cb
    - populate_object_info
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_for_each_object_cb(const struct object_id
      *oid,\n\t\t\t\t\t\t  void *node_data, void *cb_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_downcast
      Src: /src/git/odb/source-inmemory.c:152,1
    - Dst: oidtree_each
      Src: /src/git/odb/source-inmemory.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - source
    - request
    - cb
    - cb_data
    - opts
    argTypes:
    - struct odb_source*
    - struct object_info*
    - odb_for_each_object_cb
    - void*
    - struct odb_for_each_object_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: odb_source_inmemory_for_each_object
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - oidtree_each
    - odb_source_inmemory_downcast
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_for_each_object(struct odb_source *source,\n\t\t\t\t\t
      \      const struct object_info *request,\n\t\t\t\t\t       odb_for_each_object_cb
      cb,\n\t\t\t\t\t       void *cb_data,\n\t\t\t\t\t       const struct odb_for_each_object_options
      *opts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oid_common_prefix_hexlen
      Src: /src/git/odb/source-inmemory.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - oid
    - UNUSED
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: find_abbrev_len_cb
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - oid_common_prefix_hexlen
    linkageType: ''
    returnType: int
    signature: "int find_abbrev_len_cb(const struct object_id *oid,\n\t\t\t      struct
      object_info *oi UNUSED,\n\t\t\t      void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_for_each_object
      Src: /src/git/odb/source-inmemory.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - source
    - oid
    - min_len
    - out
    argTypes:
    - struct odb_source*
    - struct object_id*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 208
    functionName: odb_source_inmemory_find_abbrev_len
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - odb_source_inmemory_for_each_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_find_abbrev_len(struct odb_source *source,\n\t\t\t\t\t
      \      const struct object_id *oid,\n\t\t\t\t\t       unsigned min_len,\n\t\t\t\t\t
      \      unsigned *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - UNUSED
    - UNUSED
    - cb_data
    argTypes:
    - struct object_id*
    - struct object_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: count_objects_cb
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int count_objects_cb(const struct object_id *oid UNUSED,\n\t\t\t    struct
      object_info *oi UNUSED,\n\t\t\t    void *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_for_each_object
      Src: /src/git/odb/source-inmemory.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - UNUSED
    - out
    argTypes:
    - struct odb_source*
    - enum odb_count_objects_flags
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 5
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: odb_source_inmemory_count_objects
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - odb_source_inmemory_for_each_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_count_objects(struct odb_source *source,\n\t\t\t\t\t
      \    enum odb_count_objects_flags flags UNUSED,\n\t\t\t\t\t     unsigned long
      *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_downcast
      Src: /src/git/odb/source-inmemory.c:236,1
    - Dst: hash_object_file
      Src: /src/git/odb/source-inmemory.c:239,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/odb/source-inmemory.c:242,1
    - Dst: oidtree_init
      Src: /src/git/odb/source-inmemory.c:243,1
    - Dst: oidtree_contains
      Src: /src/git/odb/source-inmemory.c:244,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/odb/source-inmemory.c:248,1
    - Dst: xmemdupz
      Src: /src/git/odb/source-inmemory.c:251,1
    - Dst: oidtree_insert
      Src: /src/git/odb/source-inmemory.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - source
    - buf
    - len
    - type
    - oid
    - compat_oid
    - UNUSED
    argTypes:
    - struct odb_source*
    - void*
    - unsigned long
    - enum object_type
    - struct object_id*
    - struct object_id*
    - enum odb_write_object_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 229
    functionDepth: 10
    functionLinenumber: 229
    functionLinenumberEnd: 256
    functionName: odb_source_inmemory_write_object
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - xmemdupz
    - oidtree_insert
    - hash_object_file
    - oidtree_init
    - oidtree_contains
    - odb_source_inmemory_downcast
    - CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_write_object(struct odb_source *source,\n\t\t\t\t\t
      \   const void *buf, unsigned long len,\n\t\t\t\t\t    enum object_type type,\n\t\t\t\t\t
      \   struct object_id *oid,\n\t\t\t\t\t    struct object_id *compat_oid UNUSED,\n\t\t\t\t\t
      \   enum odb_write_object_flags flags UNUSED)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/odb/source-inmemory.c:268,1
    - Dst: odb_write_stream_read
      Src: /src/git/odb/source-inmemory.c:272,1
    - Dst: error
      Src: /src/git/odb/source-inmemory.c:274,1
    - Dst: memcpy
      Src: /src/git/odb/source-inmemory.c:278,1
    - Dst: error
      Src: /src/git/odb/source-inmemory.c:283,1
    - Dst: odb_source_inmemory_write_object
      Src: /src/git/odb/source-inmemory.c:287,1
    - Dst: free
      Src: /src/git/odb/source-inmemory.c:293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - source
    - stream
    - len
    - oid
    argTypes:
    - struct odb_source*
    - struct odb_write_stream*
    - size_t
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 258
    functionDepth: 11
    functionLinenumber: 258
    functionLinenumberEnd: 295
    functionName: odb_source_inmemory_write_object_stream
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - error
    - odb_source_inmemory_write_object
    - memcpy
    - CALLOC_ARRAY
    - free
    - odb_write_stream_read
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_write_object_stream(struct odb_source *source,\n\t\t\t\t\t\t
      \  struct odb_write_stream *stream,\n\t\t\t\t\t\t   size_t len,\n\t\t\t\t\t\t
      \  struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_downcast
      Src: /src/git/odb/source-inmemory.c:300,1
    - Dst: find_cached_object
      Src: /src/git/odb/source-inmemory.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - source
    - oid
    argTypes:
    - struct odb_source*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 6
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: odb_source_inmemory_freshen_object
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - odb_source_inmemory_downcast
    - find_cached_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_freshen_object(struct odb_source *source,\n\t\t\t\t\t
      \     const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/odb/source-inmemory.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - UNUSED
    argTypes:
    - struct odb_source*
    - struct odb_transaction**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: odb_source_inmemory_begin_transaction
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - error
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_begin_transaction(struct odb_source *source
      UNUSED,\n\t\t\t\t\t\t struct odb_transaction **out UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - UNUSED
    argTypes:
    - struct odb_source*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: odb_source_inmemory_read_alternates
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_read_alternates(struct odb_source *source
      UNUSED,\n\t\t\t\t\t       struct strvec *out UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/git/odb/source-inmemory.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - alternate
    argTypes:
    - struct odb_source*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: odb_source_inmemory_write_alternate
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - error
    linkageType: ''
    returnType: int
    signature: "int odb_source_inmemory_write_alternate(struct odb_source *source
      UNUSED,\n\t\t\t\t\t       const char *alternate UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: odb_source_inmemory_close
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void odb_source_inmemory_close(struct odb_source *source UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: odb_source_inmemory_reprepare
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void odb_source_inmemory_reprepare(struct odb_source *source UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/odb/source-inmemory.c:337,1
    - Dst: free
      Src: /src/git/odb/source-inmemory.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - UNUSED
    - node_data
    - cb_data
    argTypes:
    - struct object_id*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 340
    functionName: inmemory_object_free
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: "int inmemory_object_free(const struct object_id *oid UNUSED,\n\t\t\t\tvoid
      *node_data,\n\t\t\t\tvoid *cb_data UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_inmemory_downcast
      Src: /src/git/odb/source-inmemory.c:344,1
    - Dst: oidtree_each
      Src: /src/git/odb/source-inmemory.c:349,1
    - Dst: oidtree_clear
      Src: /src/git/odb/source-inmemory.c:351,1
    - Dst: free
      Src: /src/git/odb/source-inmemory.c:352,1
    - Dst: free
      Src: /src/git/odb/source-inmemory.c:355,1
    - Dst: free
      Src: /src/git/odb/source-inmemory.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 342
    functionDepth: 5
    functionLinenumber: 342
    functionLinenumberEnd: 357
    functionName: odb_source_inmemory_free
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 0
    functionsReached:
    - oidtree_clear
    - oidtree_each
    - odb_source_inmemory_downcast
    - free
    linkageType: ''
    returnType: void
    signature: void odb_source_inmemory_free(struct odb_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/odb/source-inmemory.c:363,1
    - Dst: odb_source_init
      Src: /src/git/odb/source-inmemory.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - odb
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 382
    functionName: odb_source_inmemory_new
    functionSourceFile: /src/git/odb/source-inmemory.c
    functionUses: 12
    functionsReached:
    - odb_source_init
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct odb_source_inmemory
    signature: struct odb_source_inmemory *odb_source_inmemory_new(struct object_database
      *odb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::close
      Src: /src/git/odb/source.h:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: odb_source_close
    functionSourceFile: /src/git/odb/source.h
    functionUses: 1
    functionsReached:
    - struct odb_source*::close
    linkageType: ''
    returnType: void
    signature: void odb_source_close(struct odb_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::reprepare
      Src: /src/git/odb/source.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: odb_source_reprepare
    functionSourceFile: /src/git/odb/source.h
    functionUses: 1
    functionsReached:
    - struct odb_source*::reprepare
    linkageType: ''
    returnType: void
    signature: void odb_source_reprepare(struct odb_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::read_object_info
      Src: /src/git/odb/source.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - source
    - oid
    - oi
    - flags
    argTypes:
    - struct odb_source*
    - struct object_id*
    - struct object_info*
    - enum object_info_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 324
    functionName: odb_source_read_object_info
    functionSourceFile: /src/git/odb/source.h
    functionUses: 3
    functionsReached:
    - struct odb_source*::read_object_info
    linkageType: ''
    returnType: int
    signature: "int odb_source_read_object_info(struct odb_source *source,\n\t\t\t\t\t
      \     const struct object_id *oid,\n\t\t\t\t\t      struct object_info *oi,\n\t\t\t\t\t
      \     enum object_info_flags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::read_object_stream
      Src: /src/git/odb/source.h:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - source
    - oid
    argTypes:
    - struct odb_read_stream**
    - struct odb_source*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: odb_source_read_object_stream
    functionSourceFile: /src/git/odb/source.h
    functionUses: 1
    functionsReached:
    - struct odb_source*::read_object_stream
    linkageType: ''
    returnType: int
    signature: "int odb_source_read_object_stream(struct odb_read_stream **out,\n\t\t\t\t\t\tstruct
      odb_source *source,\n\t\t\t\t\t\tconst struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::for_each_object
      Src: /src/git/odb/source.h:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - source
    - request
    - cb
    - cb_data
    - opts
    argTypes:
    - struct odb_source*
    - struct object_info*
    - odb_for_each_object_cb
    - void*
    - struct odb_for_each_object_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: odb_source_for_each_object
    functionSourceFile: /src/git/odb/source.h
    functionUses: 3
    functionsReached:
    - struct odb_source*::for_each_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_for_each_object(struct odb_source *source,\n\t\t\t\t\t
      \    const struct object_info *request,\n\t\t\t\t\t     odb_for_each_object_cb
      cb,\n\t\t\t\t\t     void *cb_data,\n\t\t\t\t\t     const struct odb_for_each_object_options
      *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::count_objects
      Src: /src/git/odb/source.h:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - source
    - flags
    - out
    argTypes:
    - struct odb_source*
    - enum odb_count_objects_flags
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 12
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: odb_source_count_objects
    functionSourceFile: /src/git/odb/source.h
    functionUses: 2
    functionsReached:
    - struct odb_source*::count_objects
    linkageType: ''
    returnType: int
    signature: "int odb_source_count_objects(struct odb_source *source,\n\t\t\t\t\t
      \  enum odb_count_objects_flags flags,\n\t\t\t\t\t   unsigned long *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::find_abbrev_len
      Src: /src/git/odb/source.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - source
    - oid
    - min_len
    - out
    argTypes:
    - struct odb_source*
    - struct object_id*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: odb_source_find_abbrev_len
    functionSourceFile: /src/git/odb/source.h
    functionUses: 2
    functionsReached:
    - struct odb_source*::find_abbrev_len
    linkageType: ''
    returnType: int
    signature: "int odb_source_find_abbrev_len(struct odb_source *source,\n\t\t\t\t\t
      \    const struct object_id *oid,\n\t\t\t\t\t     unsigned min_len,\n\t\t\t\t\t
      \    unsigned *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::freshen_object
      Src: /src/git/odb/source.h:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - oid
    argTypes:
    - struct odb_source*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: odb_source_freshen_object
    functionSourceFile: /src/git/odb/source.h
    functionUses: 2
    functionsReached:
    - struct odb_source*::freshen_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_freshen_object(struct odb_source *source,\n\t\t\t\t\t
      \   const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::write_object
      Src: /src/git/odb/source.h:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - source
    - buf
    - len
    - type
    - oid
    - compat_oid
    - flags
    argTypes:
    - struct odb_source*
    - void*
    - unsigned long
    - enum object_type
    - struct object_id*
    - struct object_id*
    - enum odb_write_object_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: odb_source_write_object
    functionSourceFile: /src/git/odb/source.h
    functionUses: 9
    functionsReached:
    - struct odb_source*::write_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_write_object(struct odb_source *source,\n\t\t\t\t\t
      \ const void *buf, unsigned long len,\n\t\t\t\t\t  enum object_type type,\n\t\t\t\t\t
      \ struct object_id *oid,\n\t\t\t\t\t  struct object_id *compat_oid,\n\t\t\t\t\t
      \ enum odb_write_object_flags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::write_object_stream
      Src: /src/git/odb/source.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - source
    - stream
    - len
    - oid
    argTypes:
    - struct odb_source*
    - struct odb_write_stream*
    - size_t
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 430
    functionName: odb_source_write_object_stream
    functionSourceFile: /src/git/odb/source.h
    functionUses: 2
    functionsReached:
    - struct odb_source*::write_object_stream
    linkageType: ''
    returnType: int
    signature: "int odb_source_write_object_stream(struct odb_source *source,\n\t\t\t\t\t\t
      struct odb_write_stream *stream,\n\t\t\t\t\t\t size_t len,\n\t\t\t\t\t\t struct
      object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::read_alternates
      Src: /src/git/odb/source.h:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - out
    argTypes:
    - struct odb_source*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: odb_source_read_alternates
    functionSourceFile: /src/git/odb/source.h
    functionUses: 2
    functionsReached:
    - struct odb_source*::read_alternates
    linkageType: ''
    returnType: int
    signature: "int odb_source_read_alternates(struct odb_source *source,\n\t\t\t\t\t
      \    struct strvec *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::write_alternate
      Src: /src/git/odb/source.h:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - alternate
    argTypes:
    - struct odb_source*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 457
    functionName: odb_source_write_alternate
    functionSourceFile: /src/git/odb/source.h
    functionUses: 1
    functionsReached:
    - struct odb_source*::write_alternate
    linkageType: ''
    returnType: int
    signature: "int odb_source_write_alternate(struct odb_source *source,\n\t\t\t\t\t
      \     const char *alternate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::begin_transaction
      Src: /src/git/odb/source.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - out
    argTypes:
    - struct odb_source*
    - struct odb_transaction**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: odb_source_begin_transaction
    functionSourceFile: /src/git/odb/source.h
    functionUses: 0
    functionsReached:
    - struct odb_source*::begin_transaction
    linkageType: ''
    returnType: int
    signature: "int odb_source_begin_transaction(struct odb_source *source,\n\t\t\t\t\t
      \      struct odb_transaction **out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_begin_transaction
      Src: /src/git/odb/transaction.c:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - odb
    argTypes:
    - struct object_database*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 13
    functionName: odb_transaction_begin
    functionSourceFile: /src/git/odb/transaction.c
    functionUses: 6
    functionsReached:
    - odb_source_begin_transaction
    linkageType: ''
    returnType: struct odb_transaction
    signature: struct odb_transaction *odb_transaction_begin(struct object_database
      *odb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/git/odb/transaction.c:23,1
    - Dst: struct odb_transaction*::commit
      Src: /src/git/odb/transaction.c:25,1
    - Dst: free
      Src: /src/git/odb/transaction.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - transaction
    argTypes:
    - struct odb_transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: odb_transaction_commit
    functionSourceFile: /src/git/odb/transaction.c
    functionUses: 6
    functionsReached:
    - ASSERT
    - struct odb_transaction*::commit
    - free
    linkageType: ''
    returnType: void
    signature: void odb_transaction_commit(struct odb_transaction *transaction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_transaction*::write_object_stream
      Src: /src/git/odb/transaction.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - transaction
    - stream
    - len
    - oid
    argTypes:
    - struct odb_transaction*
    - struct odb_write_stream*
    - size_t
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: odb_transaction_write_object_stream
    functionSourceFile: /src/git/odb/transaction.c
    functionUses: 1
    functionsReached:
    - struct odb_transaction*::write_object_stream
    linkageType: ''
    returnType: int
    signature: "int odb_transaction_write_object_stream(struct odb_transaction *transaction,\n\t\t\t\t\tstruct
      odb_write_stream *stream,\n\t\t\t\t\tsize_t len, struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_stream_filter
      Src: /src/git/odb/streaming.c:36,1
    - Dst: odb_read_stream_close
      Src: /src/git/odb/streaming.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _fs
    argTypes:
    - struct odb_read_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: close_istream_filtered
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 0
    functionsReached:
    - odb_read_stream_close
    - free_stream_filter
    linkageType: ''
    returnType: int
    signature: int close_istream_filtered(struct odb_read_stream *_fs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/odb/streaming.c:52,1
    - Dst: stream_filter
      Src: /src/git/odb/streaming.c:64,1
    - Dst: stream_filter
      Src: /src/git/odb/streaming.c:76,1
    - Dst: odb_read_stream_read
      Src: /src/git/odb/streaming.c:89,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - _fs
    - buf
    - sz
    argTypes:
    - struct odb_read_stream*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 98
    functionName: read_istream_filtered
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 0
    functionsReached:
    - stream_filter
    - odb_read_stream_read
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t read_istream_filtered(struct odb_read_stream *_fs, char *buf,\n\t\t\t\t
      \    size_t sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/odb/streaming.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - st
    - filter
    argTypes:
    - struct odb_read_stream*
    - struct stream_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: attach_stream_filter
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 0
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct odb_read_stream
    signature: "struct odb_read_stream *attach_stream_filter(struct odb_read_stream
      *st,\n\t\t\t\t\t\t    struct stream_filter *filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/odb/streaming.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _st
    argTypes:
    - struct odb_read_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: close_istream_incore
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int close_istream_incore(struct odb_read_stream *_st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/git/odb/streaming.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - _st
    - buf
    - sz
    argTypes:
    - struct odb_read_stream*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 148
    functionName: read_istream_incore
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_istream_incore(struct odb_read_stream *_st, char *buf,
      size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_object_info_extended
      Src: /src/git/odb/streaming.c:175,1
    - Dst: CALLOC_ARRAY
      Src: /src/git/odb/streaming.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - out
    - odb
    - oid
    argTypes:
    - struct odb_read_stream**
    - struct object_database*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 150
    functionDepth: 11
    functionLinenumber: 150
    functionLinenumberEnd: 186
    functionName: open_istream_incore
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 0
    functionsReached:
    - odb_read_object_info_extended
    - CALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int open_istream_incore(struct odb_read_stream **out,\n\t\t\t       struct
      object_database *odb,\n\t\t\t       const struct object_id *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_prepare_alternates
      Src: /src/git/odb/streaming.c:198,1
    - Dst: odb_source_read_object_stream
      Src: /src/git/odb/streaming.c:200,1
    - Dst: open_istream_incore
      Src: /src/git/odb/streaming.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - out
    - odb
    - oid
    argTypes:
    - struct odb_read_stream**
    - struct object_database*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 12
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: istream_source
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 0
    functionsReached:
    - odb_prepare_alternates
    - open_istream_incore
    - odb_source_read_object_stream
    linkageType: ''
    returnType: int
    signature: "int istream_source(struct odb_read_stream **out,\n\t\t\t  struct object_database
      *odb,\n\t\t\t  const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_read_stream*::close
      Src: /src/git/odb/streaming.c:212,1
    - Dst: free
      Src: /src/git/odb/streaming.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct odb_read_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: odb_read_stream_close
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 9
    functionsReached:
    - struct odb_read_stream*::close
    - free
    linkageType: ''
    returnType: int
    signature: int odb_read_stream_close(struct odb_read_stream *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_read_stream*::read
      Src: /src/git/odb/streaming.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st
    - buf
    - sz
    argTypes:
    - struct odb_read_stream*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: odb_read_stream_read
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 7
    functionsReached:
    - struct odb_read_stream*::read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t odb_read_stream_read(struct odb_read_stream *st, void *buf,
      size_t sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lookup_replace_object
      Src: /src/git/odb/streaming.c:227,1
    - Dst: istream_source
      Src: /src/git/odb/streaming.c:228,1
    - Dst: attach_stream_filter
      Src: /src/git/odb/streaming.c:235,1
    - Dst: odb_read_stream_close
      Src: /src/git/odb/streaming.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - odb
    - oid
    - filter
    argTypes:
    - struct object_database*
    - struct object_id*
    - struct stream_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 222
    functionDepth: 13
    functionLinenumber: 222
    functionLinenumberEnd: 244
    functionName: odb_read_stream_open
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 5
    functionsReached:
    - odb_read_stream_close
    - attach_stream_filter
    - lookup_replace_object
    - istream_source
    linkageType: ''
    returnType: struct odb_read_stream
    signature: "struct odb_read_stream *odb_read_stream_open(struct object_database
      *odb,\n\t\t\t\t\t     const struct object_id *oid,\n\t\t\t\t\t     struct stream_filter
      *filter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_write_stream*::read
      Src: /src/git/odb/streaming.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st
    - buf
    - sz
    argTypes:
    - struct odb_write_stream*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: odb_write_stream_read
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 4
    functionsReached:
    - struct odb_write_stream*::read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t odb_write_stream_read(struct odb_write_stream *st, void *buf,
      size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/odb/streaming.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct odb_write_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: odb_write_stream_release
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void odb_write_stream_release(struct odb_write_stream *st)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: odb_read_stream_open
      Src: /src/git/odb/streaming.c:266,1
    - Dst: free_stream_filter
      Src: /src/git/odb/streaming.c:269,1
    - Dst: odb_read_stream_read
      Src: /src/git/odb/streaming.c:277,1
    - Dst: lseek
      Src: /src/git/odb/streaming.c:293,1
    - Dst: write_in_full
      Src: /src/git/odb/streaming.c:297,1
    - Dst: lseek
      Src: /src/git/odb/streaming.c:302,1
    - Dst: xwrite
      Src: /src/git/odb/streaming.c:303,1
    - Dst: odb_read_stream_close
      Src: /src/git/odb/streaming.c:308,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 42
    argCount: 5
    argNames:
    - odb
    - fd
    - oid
    - filter
    - can_seek
    argTypes:
    - struct object_database*
    - int
    - struct object_id*
    - struct stream_filter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 256
    functionDepth: 14
    functionLinenumber: 256
    functionLinenumberEnd: 310
    functionName: odb_stream_blob_to_fd
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 5
    functionsReached:
    - odb_read_stream_close
    - free_stream_filter
    - odb_read_stream_open
    - xwrite
    - lseek
    - write_in_full
    - odb_read_stream_read
    linkageType: ''
    returnType: int
    signature: "int odb_stream_blob_to_fd(struct object_database *odb,\n\t\t\t  int
      fd,\n\t\t\t  const struct object_id *oid,\n\t\t\t  struct stream_filter *filter,\n\t\t\t
      \ int can_seek)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_in_full
      Src: /src/git/odb/streaming.c:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - stream
    - buf
    - len
    argTypes:
    - struct odb_write_stream*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 337
    functionName: read_object_fd
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 0
    functionsReached:
    - read_in_full
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t read_object_fd(struct odb_write_stream *stream,\n\t\t\t      unsigned
      char *buf, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/odb/streaming.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - stream
    - fd
    - size
    argTypes:
    - struct odb_write_stream*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: odb_write_stream_from_fd
    functionSourceFile: /src/git/odb/streaming.c
    functionUses: 1
    functionsReached:
    - CALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void odb_write_stream_from_fd(struct odb_write_stream *stream, int
      fd,\n\t\t\t      size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reparent_relative_path
      Src: /src/git/odb/source-files.c:20,1
    - Dst: free
      Src: /src/git/odb/source-files.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - UNUSED
    - old_cwd
    - new_cwd
    - cb_data
    argTypes:
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 14
    functionDepth: 6
    functionLinenumber: 14
    functionLinenumberEnd: 24
    functionName: odb_source_files_reparent
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - reparent_relative_path
    - free
    linkageType: ''
    returnType: void
    signature: "void odb_source_files_reparent(const char *name UNUSED,\n\t\t\t\t
      \     const char *old_cwd,\n\t\t\t\t      const char *new_cwd,\n\t\t\t\t      void
      *cb_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/odb/source-files.c:28,1
    - Dst: chdir_notify_unregister
      Src: /src/git/odb/source-files.c:29,1
    - Dst: odb_source_loose_free
      Src: /src/git/odb/source-files.c:30,1
    - Dst: packfile_store_free
      Src: /src/git/odb/source-files.c:31,1
    - Dst: odb_source_release
      Src: /src/git/odb/source-files.c:32,1
    - Dst: free
      Src: /src/git/odb/source-files.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: odb_source_files_free
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - odb_source_files_downcast
    - packfile_store_free
    - odb_source_release
    - odb_source_loose_free
    - chdir_notify_unregister
    - free
    linkageType: ''
    returnType: void
    signature: void odb_source_files_free(struct odb_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/odb/source-files.c:38,1
    - Dst: packfile_store_close
      Src: /src/git/odb/source-files.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: odb_source_files_close
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - packfile_store_close
    - odb_source_files_downcast
    linkageType: ''
    returnType: void
    signature: void odb_source_files_close(struct odb_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/odb/source-files.c:44,1
    - Dst: odb_source_loose_reprepare
      Src: /src/git/odb/source-files.c:45,1
    - Dst: packfile_store_reprepare
      Src: /src/git/odb/source-files.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 9
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: odb_source_files_reprepare
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - packfile_store_reprepare
    - odb_source_loose_reprepare
    - odb_source_files_downcast
    linkageType: ''
    returnType: void
    signature: void odb_source_files_reprepare(struct odb_source *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/odb/source-files.c:54,1
    - Dst: packfile_store_read_object_info
      Src: /src/git/odb/source-files.c:56,1
    - Dst: odb_source_loose_read_object_info
      Src: /src/git/odb/source-files.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - source
    - oid
    - oi
    - flags
    argTypes:
    - struct odb_source*
    - struct object_id*
    - struct object_info*
    - enum object_info_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 27
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: odb_source_files_read_object_info
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - packfile_store_read_object_info
    - odb_source_loose_read_object_info
    - odb_source_files_downcast
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_read_object_info(struct odb_source *source,\n\t\t\t\t\t
      \    const struct object_id *oid,\n\t\t\t\t\t     struct object_info *oi,\n\t\t\t\t\t
      \    enum object_info_flags flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/odb/source-files.c:67,1
    - Dst: packfile_store_read_object_stream
      Src: /src/git/odb/source-files.c:68,1
    - Dst: odb_source_loose_read_object_stream
      Src: /src/git/odb/source-files.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - out
    - source
    - oid
    argTypes:
    - struct odb_read_stream**
    - struct odb_source*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 25
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: odb_source_files_read_object_stream
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - packfile_store_read_object_stream
    - odb_source_loose_read_object_stream
    - odb_source_files_downcast
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_read_object_stream(struct odb_read_stream **out,\n\t\t\t\t\t
      \      struct odb_source *source,\n\t\t\t\t\t       const struct object_id *oid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/odb/source-files.c:80,1
    - Dst: odb_source_loose_for_each_object
      Src: /src/git/odb/source-files.c:84,1
    - Dst: packfile_store_for_each_object
      Src: /src/git/odb/source-files.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - source
    - request
    - cb
    - cb_data
    - opts
    argTypes:
    - struct odb_source*
    - struct object_info*
    - odb_for_each_object_cb
    - void*
    - struct odb_for_each_object_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 30
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: odb_source_files_for_each_object
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - packfile_store_for_each_object
    - odb_source_files_downcast
    - odb_source_loose_for_each_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_for_each_object(struct odb_source *source,\n\t\t\t\t\t
      \   const struct object_info *request,\n\t\t\t\t\t    odb_for_each_object_cb
      cb,\n\t\t\t\t\t    void *cb_data,\n\t\t\t\t\t    const struct odb_for_each_object_options
      *opts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/odb/source-files.c:100,1
    - Dst: packfile_store_count_objects
      Src: /src/git/odb/source-files.c:104,1
    - Dst: odb_source_loose_count_objects
      Src: /src/git/odb/source-files.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - source
    - flags
    - out
    argTypes:
    - struct odb_source*
    - enum odb_count_objects_flags
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 96
    functionDepth: 11
    functionLinenumber: 96
    functionLinenumberEnd: 123
    functionName: odb_source_files_count_objects
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - odb_source_loose_count_objects
    - packfile_store_count_objects
    - odb_source_files_downcast
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_count_objects(struct odb_source *source,\n\t\t\t\t\t
      \ enum odb_count_objects_flags flags,\n\t\t\t\t\t  unsigned long *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/odb/source-files.c:130,1
    - Dst: packfile_store_find_abbrev_len
      Src: /src/git/odb/source-files.c:134,1
    - Dst: odb_source_loose_find_abbrev_len
      Src: /src/git/odb/source-files.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - source
    - oid
    - min_len
    - out
    argTypes:
    - struct odb_source*
    - struct object_id*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 13
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: odb_source_files_find_abbrev_len
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - odb_source_loose_find_abbrev_len
    - packfile_store_find_abbrev_len
    - odb_source_files_downcast
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_find_abbrev_len(struct odb_source *source,\n\t\t\t\t\t
      \   const struct object_id *oid,\n\t\t\t\t\t    unsigned min_len,\n\t\t\t\t\t
      \   unsigned *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_downcast
      Src: /src/git/odb/source-files.c:152,1
    - Dst: packfile_store_freshen_object
      Src: /src/git/odb/source-files.c:153,1
    - Dst: odb_source_loose_freshen_object
      Src: /src/git/odb/source-files.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - source
    - oid
    argTypes:
    - struct odb_source*
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 10
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: odb_source_files_freshen_object
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - packfile_store_freshen_object
    - odb_source_files_downcast
    - odb_source_loose_freshen_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_freshen_object(struct odb_source *source,\n\t\t\t\t\t
      \  const struct object_id *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_loose_write_object
      Src: /src/git/odb/source-files.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - source
    - buf
    - len
    - type
    - oid
    - compat_oid
    - flags
    argTypes:
    - struct odb_source*
    - void*
    - unsigned long
    - enum object_type
    - struct object_id*
    - struct object_id*
    - enum odb_write_object_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: odb_source_files_write_object
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - odb_source_loose_write_object
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_write_object(struct odb_source *source,\n\t\t\t\t\t
      const void *buf, unsigned long len,\n\t\t\t\t\t enum object_type type,\n\t\t\t\t\t
      struct object_id *oid,\n\t\t\t\t\t struct object_id *compat_oid,\n\t\t\t\t\t
      enum odb_write_object_flags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_loose_write_stream
      Src: /src/git/odb/source-files.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - source
    - stream
    - len
    - oid
    argTypes:
    - struct odb_source*
    - struct odb_write_stream*
    - size_t
    - struct object_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: odb_source_files_write_object_stream
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - odb_source_loose_write_stream
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_write_object_stream(struct odb_source *source,\n\t\t\t\t\t\tstruct
      odb_write_stream *stream,\n\t\t\t\t\t\tsize_t len,\n\t\t\t\t\t\tstruct object_id
      *oid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odb_transaction_files_begin
      Src: /src/git/odb/source-files.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - source
    - out
    argTypes:
    - struct odb_source*
    - struct odb_transaction**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: odb_source_files_begin_transaction
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - odb_transaction_files_begin
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_begin_transaction(struct odb_source *source,\n\t\t\t\t\t
      \     struct odb_transaction **out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/odb/source-files.c:194,1
    - Dst: strbuf_read_file
      Src: /src/git/odb/source-files.c:195,1
    - Dst: warn_on_fopen_errors
      Src: /src/git/odb/source-files.c:196,1
    - Dst: free
      Src: /src/git/odb/source-files.c:197,1
    - Dst: parse_alternates
      Src: /src/git/odb/source-files.c:200,1
    - Dst: strbuf_release
      Src: /src/git/odb/source-files.c:202,1
    - Dst: free
      Src: /src/git/odb/source-files.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - source
    - out
    argTypes:
    - struct odb_source*
    - struct strvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 205
    functionName: odb_source_files_read_alternates
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - strbuf_release
    - parse_alternates
    - xstrfmt
    - strbuf_read_file
    - free
    - warn_on_fopen_errors
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_read_alternates(struct odb_source *source,\n\t\t\t\t\t
      \   struct strvec *out)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xstrfmt
      Src: /src/git/odb/source-files.c:211,1
    - Dst: hold_lock_file_for_update
      Src: /src/git/odb/source-files.c:216,1
    - Dst: fdopen_lock_file
      Src: /src/git/odb/source-files.c:217,1
    - Dst: error_errno
      Src: /src/git/odb/source-files.c:219,1
    - Dst: _
      Src: /src/git/odb/source-files.c:219,1
    - Dst: fopen
      Src: /src/git/odb/source-files.c:223,1
    - Dst: strbuf_getline
      Src: /src/git/odb/source-files.c:227,1
    - Dst: strcmp
      Src: /src/git/odb/source-files.c:228,1
    - Dst: fprintf_or_die
      Src: /src/git/odb/source-files.c:232,1
    - Dst: strbuf_release
      Src: /src/git/odb/source-files.c:235,1
    - Dst: fclose
      Src: /src/git/odb/source-files.c:236,1
    - Dst: error_errno
      Src: /src/git/odb/source-files.c:238,1
    - Dst: _
      Src: /src/git/odb/source-files.c:238,1
    - Dst: rollback_lock_file
      Src: /src/git/odb/source-files.c:243,1
    - Dst: fprintf_or_die
      Src: /src/git/odb/source-files.c:245,1
    - Dst: commit_lock_file
      Src: /src/git/odb/source-files.c:246,1
    - Dst: error_errno
      Src: /src/git/odb/source-files.c:247,1
    - Dst: _
      Src: /src/git/odb/source-files.c:247,1
    - Dst: free
      Src: /src/git/odb/source-files.c:255,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - source
    - alternate
    argTypes:
    - struct odb_source*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 207
    functionDepth: 6
    functionLinenumber: 207
    functionLinenumberEnd: 257
    functionName: odb_source_files_write_alternate
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - fclose
    - error_errno
    - hold_lock_file_for_update
    - strbuf_release
    - commit_lock_file
    - xstrfmt
    - fopen
    - fprintf_or_die
    - fdopen_lock_file
    - strcmp
    - rollback_lock_file
    - _
    - free
    - strbuf_getline
    linkageType: ''
    returnType: int
    signature: "int odb_source_files_write_alternate(struct odb_source *source,\n\t\t\t\t\t
      \   const char *alternate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALLOC_ARRAY
      Src: /src/git/odb/source-files.c:265,1
    - Dst: odb_source_init
      Src: /src/git/odb/source-files.c:266,1
    - Dst: odb_source_loose_new
      Src: /src/git/odb/source-files.c:267,1
    - Dst: packfile_store_new
      Src: /src/git/odb/source-files.c:268,1
    - Dst: is_absolute_path
      Src: /src/git/odb/source-files.c:290,1
    - Dst: chdir_notify_register
      Src: /src/git/odb/source-files.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - odb
    - path
    - local
    argTypes:
    - struct object_database*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 294
    functionName: odb_source_files_new
    functionSourceFile: /src/git/odb/source-files.c
    functionUses: 0
    functionsReached:
    - is_absolute_path
    - packfile_store_new
    - odb_source_init
    - chdir_notify_register
    - odb_source_loose_new
    - CALLOC_ARRAY
    linkageType: ''
    returnType: struct odb_source_files
    signature: "struct odb_source_files *odb_source_files_new(struct object_database
      *odb,\n\t\t\t\t\t      const char *path,\n\t\t\t\t\t      bool local)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/odb/source-files.h:31,1
    - Dst: container_of
      Src: /src/git/odb/source-files.h:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: odb_source_files_downcast
    functionSourceFile: /src/git/odb/source-files.h
    functionUses: 41
    functionsReached:
    - container_of
    - BUG
    linkageType: ''
    returnType: struct odb_source_files
    signature: struct odb_source_files *odb_source_files_downcast(struct odb_source
      *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/git/odb/source-inmemory.h:29,1
    - Dst: container_of
      Src: /src/git/odb/source-inmemory.h:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: odb_source_inmemory_downcast
    functionSourceFile: /src/git/odb/source-inmemory.h
    functionUses: 6
    functionsReached:
    - container_of
    - BUG
    linkageType: ''
    returnType: struct odb_source_inmemory
    signature: struct odb_source_inmemory *odb_source_inmemory_downcast(struct odb_source
      *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odb_source_files_new
      Src: /src/git/odb/source.c:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - odb
    - path
    - local
    argTypes:
    - struct object_database*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 7
    functionDepth: 3
    functionLinenumber: 7
    functionLinenumberEnd: 12
    functionName: odb_source_new
    functionSourceFile: /src/git/odb/source.c
    functionUses: 3
    functionsReached:
    - odb_source_files_new
    linkageType: ''
    returnType: struct odb_source
    signature: "struct odb_source *odb_source_new(struct object_database *odb,\n\t\t\t\t
      \ const char *path,\n\t\t\t\t  bool local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/git/odb/source.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - source
    - odb
    - type
    - path
    - local
    argTypes:
    - struct odb_source*
    - struct object_database*
    - enum odb_source_type
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 24
    functionName: odb_source_init
    functionSourceFile: /src/git/odb/source.c
    functionUses: 2
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void odb_source_init(struct odb_source *source,\n\t\t     struct object_database
      *odb,\n\t\t     enum odb_source_type type,\n\t\t     const char *path,\n\t\t
      \    bool local)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct odb_source*::free
      Src: /src/git/odb/source.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: odb_source_free
    functionSourceFile: /src/git/odb/source.c
    functionUses: 13
    functionsReached:
    - struct odb_source*::free
    linkageType: ''
    returnType: void
    signature: void odb_source_free(struct odb_source *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/git/odb/source.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct odb_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: odb_source_release
    functionSourceFile: /src/git/odb/source.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void odb_source_release(struct odb_source *source)
Fuzzer filename: /src/git/oss-fuzz/fuzz-config.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- reftable-fsck.h
- ../lockfile.h
- unit-test.h
- bundle.h
- prune-packed.h
- mergesort.h
- iter.h
- remote.h
- locale.h
- trace2/tr2_tgt.h
- skipping.h
- hash-lookup.h
- inffast.h
- sys/resource.h
- ../../trace2.h
- pack-revindex.h
- mingw.c
- log-tree.h
- pack-mtimes.h
- regex_internal.h
- assert.h
- inflate.h
- git-curl-compat.h
- reftable/reftable-constants.h
- ./sha256.h
- GIT_CLAR_DECLS_H
- midx.h
- pthread.h
- msvc-posix.h
- mailmap.h
- tree-walk.h
- advice.h
- reftable/stack.h
- reftable/blocksource.h
- merge-ort.h
- oidset.h
- reftable-system.h
- base85.h
- ../../repository.h
- nettle/sha2.h
- openssl/x509v3.h
- compat/msvc.h
- libcharset.h
- loose.h
- path-walk.h
- ../prio-queue.h
- reftable/pq.h
- reftable/reftable-merged.h
- ../../git-compat-util.h
- pwd.h
- pack-refs.h
- convert.h
- line-log.h
- strvec.h
- thread-utils.h
- graph.h
- inflate9.h
- urlmatch.h
- zip.h
- fstream.h
- CoreFoundation/CoreFoundation.h
- openssl/sha.h
- unistd.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_C
- sha1dc/sha1.h
- expat.h
- limits.h
- copyfile.h
- selftest.h
- kwset.h
- netinet/in.h
- serve.h
- GIT_VERSION_H
- mingw-posix.h
- conio.h
- sha256/nettle.h
- sys/types.h
- process.h
- zstream.h
- banned.h
- tag.h
- ../reftable/reftable-record.h
- setup.h
- stdint.h
- add-interactive.h
- ../ident.h
- object.h
- negotiator/default.h
- sys/statvfs.h
- curl/easy.h
- reftable/constants.h
- shallow.h
- reftable/reftable-error.h
- name-hash.h
- iostream
- libintl.h
- pq.h
- odb.h
- openssl/evp.h
- checkout.h
- config.h
- delta.h
- object-name.h
- version-def.h
- iconv.h
- system.h
- locale/elem-hash.h
- clar/print.h
- ../setup.h
- entry.h
- versioncmp.h
- xdiff-interface.h
- command-list.h
- split-index.h
- xdiff/xutils.h
- pseudo-merge.h
- arpa/inet.h
- transport-internal.h
- lib-reftable.h
- tar.h
- ../iterator.h
- compat/fsmonitor/fsm-health.h
- sys/poll.h
- puff.h
- reftable-merged.h
- wctype.h
- obstack.h
- revision.h
- object-file.h
- cbtree.h
- inttypes.h
- xemit.h
- vecintrin.h
- list-objects-filter.h
- clar/fs.h
- reftable/writer.h
- apply.h
- CommonCrypto/CommonHMAC.h
- ../copy.h
- mailinfo.h
- win32/lazyload.h
- config-list.h
- compat/zlib-compat.h
- ../sane-ctype.h
- ../locale/localeinfo.h
- tempfile.h
- wildmatch.h
- exec-cmd.h
- compat/mingw.h
- regex.h
- ostream
- sys/auxv.h
- version.h
- reftable-iterator.h
- gnu/libc-version.h
- ws2tcpip.h
- read-cache.h
- oid-array.h
- reftable-error.h
- ewok_rlw.h
- reftable/merged.h
- zlib-ng.h
- compat/bswap.h
- locale/coll-lookup.h
- ../revision.h
- openssl/ssl.h
- diagnose.h
- pkt-line.h
- gcrypt.h
- hook.h
- commit-slab.h
- linear-assignment.h
- ntstatus.h
- reflog-walk.h
- ../repo-settings.h
- parse-options.h
- sys/random.h
- stdio.h
- builtin.h
- ubc_check.h
- unpack-trees.h
- commit-reach.h
- refs-internal.h
- replay.h
- reftable-blocksource.h
- winioctl.h
- notes-utils.h
- csum-file.h
- parallel-checkout.h
- Begin.h
- submodule-config.h
- ../hex.h
- walker.h
- simple-ipc.h
- userdiff.h
- pathspec.h
- chunk-format.h
- ../dir.h
- refs.h
- tr2_tbuf.h
- jemalloc/jemalloc.h
- sys/pstat.h
- match-trees.h
- floss.h(floss_getpwuid)
- unix-stream-server.h
- default.h
- hook-list.h
- ewah/ewok.h
- ../repository.h
- psapi.h
- fsmonitor-ll.h
- sys/filio.h
- io.h
- ../worktree.h
- list-objects.h
- compat/precompose_utf8.h
- sigchain.h
- sys/syslimits.h
- ../reftable/reftable-fsck.h
- locale/weight.h
- sddl.h
- clar/summary.h
- reflog.h
- commit-slab-impl.h
- reftable-record.h
- trace2/tr2_sid.h
- reftable/tree.h
- lib-oid.h
- connect.h
- xprepare.h
- unicode-width.h
- inftree9.h
- notes-merge.h
- ../config.h
- strbuf.h
- parse.h
- trace2/tr2_dst.h
- xdiff/xtypes.h
- istream
- diff-merges.h
- json-writer.h
- clar-decls.h
- stack.h
- block.h
- commit-slab-decl.h
- sys/stat.h
- stdarg.h
- merged.h
- stdatomic.h
- ref-cache.h
- trace2/tr2_sysenv.h
- unzip.h
- grep.h
- hashmap.h
- block-sha1/sha1.h
- fsmonitor.h
- compat/compiler.h
- alloc.h
- reachable.h
- color.h
- bundle-uri.h
- path.h
- compat/posix.h
- trace.h
- gpg-interface.h
- sys/param.h
- common-init.h
- math.h
- zlib.h
- editor.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_C
- refs/refs-internal.h
- errno.h
- send-pack.h
- inftrees.h
- help.h
- reftable/record.h
- t/unit-tests/test-lib.h
- clar/fixtures.h
- utf8.h
- mach-o/dyld.h
- libsecret/secret.h
- gzguts.h
- xdiff/xmacros.h
- zfstream.h
- sys/mman.h
- preload-index.h
- xdiffi.h
- compat/obstack.h
- trees.h
- column.h
- sha1dc_git.h
- reftable/system.h
- sys/time.h
- openssl/hmac.h
- wchar.h
- zran.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_H
- trace2/tr2_cmd_name.h
- cache-tree.h
- branch.h
- cstdio
- ../write-or-die.h
- strstream.h
- mingw.h
- blame.h
- shlib-compat.h
- End.h
- notes.h
- openssl/err.h
- rerere.h
- reftable-basics.h
- git-compat-util.h
- trace2/tr2_tls.h
- compat/apple-common-crypto.h
- commit.h
- run-command.h
- reset.h
- tlhelp32.h
- wrapper.h
- time.h
- sys/wait.h
- fsmonitor--daemon.h
- ../dir-iterator.h
- pack-objects.h
- mem-pool.h
- decorate.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_H
- server-info.h
- stddef.h
- for-each-ref.h
- basics.h
- cstring
- chdir-notify.h
- reftable/iter.h
- locale/localeinfo.h
- submodule.h
- sys/sysinfo.h
- openssl/rand.h
- gettext.h
- resolve-undo.h
- unix-socket.h
- sys/un.h
- fcntl.h
- xdiff/xdiffi.h
- hash.h
- fsck.h
- transport.h
- signal.h
- fetch-negotiator.h
- merge-blobs.h
- string.h
- sha256/openssl.h
- prompt.h
- fsm-darwin-gcc.h
- wingdi.h
- ../gettext.h
- xtypes.h
- reftable-writer.h
- gzlog.h
- malloc.h
- inffixed.h
- odb/source-files.h
- iterator.h
- test-tool-utils.h
- compat/fsmonitor/fsm-listen.h
- refspec.h
- ls-refs.h
- rebase-interactive.h
- strings.h
- abspath.h
- clar.h
- ../reftable/reftable-error.h
- dirent.h
- mbsupport.h
- alias.h
- archive.h
- crc32.h
- regcomp.c
- windows.h
- reftable-constants.h
- test-tool.h
- winternl.h
- ../wrapper.h
- dir-iterator.h
- bits/libc-lock.h
- grp.h
- ../environment.h
- negotiator/skipping.h
- trace2/tr2_tmr.h
- strmap.h
- odb/transaction.h
- quote.h
- accctrl.h
- paths.h
- ../trace2.h
- delta-islands.h
- malloc_np.h
- langinfo.h
- credential.h
- winreg.h
- string-list.h
- progress.h
- direct.h
- malloc/malloc.h
- fsm-listen.h
- ../fetch-negotiator.h
- ../strmap.h
- ../../zutil.h
- fetch-pack.h
- add-patch.h
- stdbool.h
- compat/sha1-chunked.h
- xutils.h
- regexec.c
- ../reftable/reftable-stack.h
- levenshtein.h
- sha256/block/sha256.h
- reftable-table.h
- promisor-remote.h
- netinet/tcp.h
- floss.h(floss_execl,floss_execlp,floss_execv,floss_execvp)
- ../../strvec.h
- ntsecapi.h
- fsmonitor-path-utils.h
- win32.h
- reftable-block.h
- gnu-versions.h
- trace2/tr2_tbuf.h
- fmt-merge-msg.h
- crtdbg.h
- blob.h
- oidmap.h
- symlinks.h
- unix.h
- bsd/stdlib.h
- ../git-compat-util.h
- ../chdir-notify.h
- inffix9.h
- trailer.h
- environment.h
- lockfile.h
- trace2/tr2_cfg.h
- read-cache-ll.h
- packed-backend.h
- syslog.h
- ../parse.h
- statinfo.h
- regex_internal.c
- sys/mount.h
- deflate.h
- compat/win32/path-utils.h
- ../reftable/reftable-iterator.h
- termios.h
- ../commit.h
- glib.h
- writer.h
- CoreServices/CoreServices.h
- precompose_utf8.h
- hex-ll.h
- noop.h
- sha256/gcrypt.h
- ../abspath.h
- khash.h
- copy.h
- sys/utsname.h
- commit-graph.h
- sha1collisiondetection/lib/sha1.h
- range-diff.h
- ../path.h
- sparse-index.h
- infback9.h
- wincred.h
- reftable/reftable-stack.h
- wt-status.h
- compat/disk.h
- memory.h
- dispatch/dispatch.h
- table.h
- diffcore.h
- cache.h
- reftable/block.h
- sys/socket.h
- shortlog.h
- alloca.h
- constants.h
- xinclude.h
- crc32_vx_hooks.h
- winnt.h
- ws.h
- reftable/reftable-writer.h
- libgen.h
- ../../environment.h
- odb/source.h
- repack.h
- curl/curl.h
- tree.h
- ../refs.h
- line-range.h
- odb/streaming.h
- sha1/openssl.h
- attr.h
- unixio.h
- skipset.h
- ../strbuf.h
- xdiff/xdiff.h
- compat/nonblock.h
- compat/terminal.h
- iowin32.h
- sideband.h
- merge-ort-wrappers.h
- SHA1DC_CUSTOM_INCLUDE_SHA1_C
- replace-object.h
- upload-pack.h
- ident.h
- http.h
- fsmonitor-settings.h
- xmlparse.h
- rebase.h
- merge-ll.h
- ioapi.h
- connected.h
- test-lib.h
- ctype.h
- write-or-die.h
- clar/sandbox.h
- trace2.h
- blocksource.h
- hex.h
- reftable/reftable-table.h
- ewok.h
- afunix.h
- tr2_sysenv.h
- repo-settings.h
- xmacros.h
- sequencer.h
- pcre2.h
- utime.h
- sys/sysctl.h
- merge.h
- AvailabilityMacros.h
- iomanip.h
- bzlib.h
- ../tag.h
- fsmonitor-ipc.h
- contrib/crc32vx/crc32_vx_hooks.h
- ../tempfile.h
- blast.h
- ../reftable/reftable-basics.h
- git-zlib.h
- date.h
- clar/clar.h
- crypt.h
- pack.h
- SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C
- protocol.h
- nonblock.h
- contrib/libgit-sys/public_symbol_export.h
- sspi.h
- xdiff.h
- libio/iolibio.h
- zconf.h
- clar.suite
- setjmp.h
- worktree.h
- tmp-objdir.h
- sys/select.h
- pack-bitmap.h
- aclapi.h
- repository.h
- Security/Security.h
- ../hash.h
- sys/sendfile.h
- object-file-convert.h
- netdb.h
- oidtree.h
- winsock2.h
- url.h
- ../../json-writer.h
- poll.h
- ints.h
- prio-queue.h
- ../statinfo.h
- odb/source-inmemory.h
- CommonCrypto/CommonDigest.h
- list-objects-filter-options.h
- sub-process.h
- bloom.h
- trace2/tr2_ctr.h
- ref-filter.h
- protocol-caps.h
- negotiator/noop.h
- ../trace.h
- pager.h
- reftable/basics.h
- lazyload.h
- ../fsck.h
- dir.h
- packfile.h
- sys/ioctl.h
- list.h
- reftable/table.h
- varint.h
- patch-ids.h
- mz64conf.h
- record.h
- sha1.h
- zutil.h
- reftable-stack.h
- pretty.h
- diff.h
- bisect.h
- fsm-health.h
- stdlib.h
- notes-cache.h
report: name
sources:
- function_names:
  - RANK
  - UPDATE_HASH
  - INSERT_STRING
  - INSERT_STRING
  - CLEAR_HASH
  - slide_hash
  - read_buf
  - fill_window
  - deflateInit_
  - deflateInit2_
  - deflateStateCheck
  - deflateSetDictionary
  - deflateGetDictionary
  - lm_init
  - deflateReset
  - deflateSetHeader
  - deflatePending
  - deflateUsed
  - deflatePrime
  - deflateParams
  - deflateTune
  - deflateBound_z
  - deflateBound
  - putShortMSB
  - flush_pending
  - HCRC_UPDATE
  - deflate
  - deflateEnd
  - deflateCopy
  - longest_match
  - longest_match
  - check_match
  - FLUSH_BLOCK_ONLY
  - FLUSH_BLOCK
  - MIN
  - block_state::deflate_stored
  - block_state::deflate_fast
  - block_state::deflate_slow
  - block_state::deflate_rle
  - block_state::deflate_huff
  source_file: /src/zlib/deflate.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NIL
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/zlib/deflate.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TOO_FAR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/zlib/deflate.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: EQUAL
      pos:
        line_end: 1592
        line_start: 1591
        source_file: /src/zlib/deflate.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_STORED
      pos:
        line_end: 1648
        line_start: 1647
        source_file: /src/zlib/deflate.c
      type_or_value: '65535'
    structs:
    - fields:
      - name: good_length
        type: ush
      - name: max_lazy
        type: ush
      - name: nice_length
        type: ush
      - name: max_chain
        type: ush
      - name: func
        type: compress_func
      item_type: struct
      name: config_s
      pos:
        line_end: 103
        line_start: 97
        source_file: /src/zlib/deflate.c
    typedefs:
    - item_type: typedef
      name: (*compress_func)(deflate_state *s, int flush)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/zlib/deflate.c
      type: block_state
    union: []
- function_names: []
  source_file: /src/zlib/inffixed.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - put_byte
  - MAX_DIST
  - d_code
  - _tr_tally_lit
  - _tr_tally_dist
  - _tr_tally_lit
  - _tr_tally_dist
  - _tr_tally_lit
  - _tr_tally_dist
  source_file: /src/zlib/deflate.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LENGTH_CODES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/zlib/deflate.h
      type_or_value: '29'
    - item_type: preproc_def
      name: LITERALS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/zlib/deflate.h
      type_or_value: '256'
    - item_type: preproc_def
      name: L_CODES
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/zlib/deflate.h
      type_or_value: (LITERALS+1+LENGTH_CODES)
    - item_type: preproc_def
      name: D_CODES
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/zlib/deflate.h
      type_or_value: '30'
    - item_type: preproc_def
      name: BL_CODES
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/zlib/deflate.h
      type_or_value: '19'
    - item_type: preproc_def
      name: HEAP_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/zlib/deflate.h
      type_or_value: (2*L_CODES+1)
    - item_type: preproc_def
      name: MAX_BITS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/zlib/deflate.h
      type_or_value: '15'
    - item_type: preproc_def
      name: Buf_size
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/zlib/deflate.h
      type_or_value: '16'
    - item_type: preproc_def
      name: INIT_STATE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/zlib/deflate.h
      type_or_value: '42    '
    - item_type: preproc_def
      name: GZIP_STATE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/zlib/deflate.h
      type_or_value: '57    '
    - item_type: preproc_def
      name: EXTRA_STATE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/zlib/deflate.h
      type_or_value: '69    '
    - item_type: preproc_def
      name: NAME_STATE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/zlib/deflate.h
      type_or_value: '73    '
    - item_type: preproc_def
      name: COMMENT_STATE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/zlib/deflate.h
      type_or_value: '91    '
    - item_type: preproc_def
      name: HCRC_STATE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/zlib/deflate.h
      type_or_value: '103    '
    - item_type: preproc_def
      name: BUSY_STATE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/zlib/deflate.h
      type_or_value: '113    '
    - item_type: preproc_def
      name: FINISH_STATE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/zlib/deflate.h
      type_or_value: '666    '
    - item_type: preproc_def
      name: Freq
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/zlib/deflate.h
      type_or_value: fc.freq
    - item_type: preproc_def
      name: Code
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/zlib/deflate.h
      type_or_value: fc.code
    - item_type: preproc_def
      name: Dad
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/zlib/deflate.h
      type_or_value: dl.dad
    - item_type: preproc_def
      name: Len
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/zlib/deflate.h
      type_or_value: dl.len
    - item_type: preproc_def
      name: max_insert_length
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/zlib/deflate.h
      type_or_value: max_lazy_match
    - item_type: preproc_def
      name: LIT_BUFS
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/zlib/deflate.h
      type_or_value: '5'
    - item_type: preproc_def
      name: LIT_BUFS
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/zlib/deflate.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MIN_LOOKAHEAD
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/zlib/deflate.h
      type_or_value: (MAX_MATCH+MIN_MATCH+1)
    - item_type: preproc_def
      name: WIN_INIT
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/zlib/deflate.h
      type_or_value: MAX_MATCH
    structs:
    - fields:
      - name: fc
        type: "union {\n        ush  freq;       /* frequency count */\n        ush
          \ code;       /* bit string */\n    }"
      - name: dl
        type: "union {\n        ush  dad;        /* father node in Huffman tree */\n
          \       ush  len;        /* length of bit string */\n    }"
      item_type: struct
      name: ct_data_s
      pos:
        line_end: 80
        line_start: 71
        source_file: /src/zlib/deflate.h
    - fields:
      - name: '*dyn_tree'
        type: ct_data
      - name: max_code
        type: int
      - name: '*stat_desc'
        type: static_tree_desc
      item_type: struct
      name: tree_desc_s
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/zlib/deflate.h
    - fields:
      - name: strm
        type: z_streamp
      - name: status
        type: int
      - name: '*pending_buf'
        type: Bytef
      - name: pending_buf_size
        type: ulg
      - name: '*pending_out'
        type: Bytef
      - name: pending
        type: ulg
      - name: wrap
        type: int
      - name: gzhead
        type: gz_headerp
      - name: gzindex
        type: ulg
      - name: method
        type: Byte
      - name: last_flush
        type: int
      - name: w_size
        type: uInt
      - name: w_bits
        type: uInt
      - name: w_mask
        type: uInt
      - name: '*window'
        type: Bytef
      - name: window_size
        type: ulg
      - name: '*prev'
        type: Posf
      - name: '*head'
        type: Posf
      - name: ins_h
        type: uInt
      - name: hash_size
        type: uInt
      - name: hash_bits
        type: uInt
      - name: hash_mask
        type: uInt
      - name: hash_shift
        type: uInt
      - name: block_start
        type: long
      - name: match_length
        type: uInt
      - name: prev_match
        type: IPos
      - name: match_available
        type: int
      - name: strstart
        type: uInt
      - name: match_start
        type: uInt
      - name: lookahead
        type: uInt
      - name: prev_length
        type: uInt
      - name: max_chain_length
        type: uInt
      - name: max_lazy_match
        type: uInt
      - name: level
        type: int
      - name: strategy
        type: int
      - name: good_match
        type: uInt
      - name: nice_match
        type: int
      - name: dyn_ltree[HEAP_SIZE]
        type: struct ct_data_s
      - name: dyn_dtree[2*D_CODES+1]
        type: struct ct_data_s
      - name: bl_tree[2*BL_CODES+1]
        type: struct ct_data_s
      - name: l_desc
        type: struct tree_desc_s
      - name: d_desc
        type: struct tree_desc_s
      - name: bl_desc
        type: struct tree_desc_s
      - name: bl_count[MAX_BITS+1]
        type: ush
      - name: heap[2*L_CODES+1]
        type: int
      - name: heap_len
        type: int
      - name: heap_max
        type: int
      - name: depth[2*L_CODES+1]
        type: uch
      - name: lit_bufsize
        type: uInt
      - name: sym_next
        type: uInt
      - name: sym_end
        type: uInt
      - name: opt_len
        type: ulg
      - name: static_len
        type: ulg
      - name: matches
        type: uInt
      - name: insert
        type: uInt
      - name: bi_buf
        type: ush
      - name: bi_valid
        type: int
      - name: bi_used
        type: int
      - name: high_water
        type: ulg
      - name: slid
        type: int
      item_type: struct
      name: internal_state
      pos:
        line_end: 287
        line_start: 103
        source_file: /src/zlib/deflate.h
    typedefs:
    - item_type: typedef
      name: static_tree_desc
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/zlib/deflate.h
      type: static_tree_desc_s
    - item_type: typedef
      name: Pos
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/zlib/deflate.h
      type: ush
    - item_type: typedef
      name: Posf
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/zlib/deflate.h
      type: Pos
    - item_type: typedef
      name: IPos
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/zlib/deflate.h
      type: unsigned
    union: []
- function_names:
  - inflateBackInit_
  - LOAD
  - RESTORE
  - INITBITS
  - PULL
  - PULLBYTE
  - NEEDBITS
  - BITS
  - DROPBITS
  - BYTEBITS
  - ROOM
  - inflateBack
  - inflateBackEnd
  source_file: /src/zlib/infback.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - zlibVersion
  - zlibCompileFlags
  - ZLIB_INTERNAL::z_error
  - zError
  - ZLIB_INTERNAL::zmemcpy
  - ZLIB_INTERNAL::zmemcmp
  - ZLIB_INTERNAL::zmemzero
  - ZLIB_INTERNAL::zcalloc
  - ZLIB_INTERNAL::zcfree
  - ZLIB_INTERNAL::zcalloc
  - ZLIB_INTERNAL::zcfree
  - ZLIB_INTERNAL::zcalloc
  - ZLIB_INTERNAL::zcfree
  source_file: /src/zlib/zutil.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: verbose
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/zlib/zutil.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_PTR
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/zlib/zutil.c
      type_or_value: '10'
    - item_type: preproc_def
      name: _halloc
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/zlib/zutil.c
      type_or_value: halloc
    - item_type: preproc_def
      name: _hfree
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/zlib/zutil.c
      type_or_value: hfree
    structs:
    - fields:
      - name: org_ptr
        type: voidpf
      - name: new_ptr
        type: voidpf
      item_type: struct
      name: ptr_table_s
      pos:
        line_end: 204
        line_start: 201
        source_file: /src/zlib/zutil.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/inflate.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: strm
        type: z_streamp
      - name: mode
        type: inflate_mode
      - name: last
        type: int
      - name: wrap
        type: int
      - name: havedict
        type: int
      - name: flags
        type: int
      - name: dmax
        type: unsigned
      - name: check
        type: unsigned long
      - name: total
        type: unsigned long
      - name: head
        type: gz_headerp
      - name: wbits
        type: unsigned
      - name: wsize
        type: unsigned
      - name: whave
        type: unsigned
      - name: wnext
        type: unsigned
      - name: '*window'
        type: unsigned char
      - name: hold
        type: unsigned long
      - name: bits
        type: unsigned
      - name: length
        type: unsigned
      - name: offset
        type: unsigned
      - name: extra
        type: unsigned
      - name: '*lencode'
        type: code
      - name: '*distcode'
        type: code
      - name: lenbits
        type: unsigned
      - name: distbits
        type: unsigned
      - name: ncode
        type: unsigned
      - name: nlen
        type: unsigned
      - name: ndist
        type: unsigned
      - name: have
        type: unsigned
      - name: '*next'
        type: code
      - name: lens[320]
        type: unsigned short
      - name: work[288]
        type: unsigned short
      - name: codes[ENOUGH]
        type: code
      - name: sane
        type: int
      - name: back
        type: int
      - name: was
        type: unsigned
      item_type: struct
      name: inflate_state
      pos:
        line_end: 125
        line_start: 81
        source_file: /src/zlib/inflate.h
    typedefs: []
    union: []
- function_names:
  - ZLIB_INTERNAL *gz_strwinerror(DWORD error)
  - gz_reset
  - gz_open
  - gzopen
  - gzopen64
  - gzdopen
  - gzopen_w
  - gzbuffer
  - gzrewind
  - gzseek64
  - gzseek
  - gztell64
  - gztell
  - gzoffset64
  - gzoffset
  - gzeof
  - gzerror
  - gzclearerr
  - ZLIB_INTERNAL::gz_error
  - gz_intmax
  source_file: /src/zlib/gzlib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LSEEK
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/zlib/gzlib.c
      type_or_value: llseek
    - item_type: preproc_def
      name: LSEEK
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/zlib/gzlib.c
      type_or_value: _lseeki64
    - item_type: preproc_def
      name: LSEEK
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/zlib/gzlib.c
      type_or_value: lseek64
    - item_type: preproc_def
      name: LSEEK
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/zlib/gzlib.c
      type_or_value: lseek
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/inftrees.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENOUGH_LENS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/zlib/inftrees.h
      type_or_value: '852'
    - item_type: preproc_def
      name: ENOUGH_DISTS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/zlib/inftrees.h
      type_or_value: '592'
    - item_type: preproc_def
      name: ENOUGH_LENS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/zlib/inftrees.h
      type_or_value: '854'
    - item_type: preproc_def
      name: ENOUGH_DISTS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/zlib/inftrees.h
      type_or_value: '594'
    - item_type: preproc_def
      name: ENOUGH
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/zlib/inftrees.h
      type_or_value: (ENOUGH_LENS+ENOUGH_DISTS)
    structs:
    - fields:
      - name: op
        type: unsigned char
      - name: bits
        type: unsigned char
      - name: val
        type: unsigned short
      item_type: struct
      name: code
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/zlib/inftrees.h
    typedefs: []
    union: []
- function_names:
  - compress2_z
  - compress2
  - compress_z
  - compress
  - compressBound_z
  - compressBound
  source_file: /src/zlib/compress.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - put_short
  - bi_reverse
  - bi_flush
  - bi_windup
  - gen_codes
  - send_code
  - send_code
  - send_bits
  - send_bits
  - tr_static_init
  - SEPARATOR
  - gen_trees_header
  - init_block
  - ZLIB_INTERNAL::_tr_init
  - pqremove
  - smaller
  - pqdownheap
  - gen_bitlen
  - build_tree
  - scan_tree
  - send_tree
  - build_bl_tree
  - send_all_trees
  - ZLIB_INTERNAL::_tr_stored_block
  - ZLIB_INTERNAL::_tr_flush_bits
  - ZLIB_INTERNAL::_tr_align
  - compress_block
  - detect_data_type
  - ZLIB_INTERNAL::_tr_tally
  source_file: /src/zlib/trees.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_BL_BITS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/zlib/trees.c
      type_or_value: '7'
    - item_type: preproc_def
      name: END_BLOCK
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/zlib/trees.c
      type_or_value: '256'
    - item_type: preproc_def
      name: REP_3_6
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/zlib/trees.c
      type_or_value: '16'
    - item_type: preproc_def
      name: REPZ_3_10
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/zlib/trees.c
      type_or_value: '17'
    - item_type: preproc_def
      name: REPZ_11_138
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/zlib/trees.c
      type_or_value: '18'
    - item_type: preproc_def
      name: DIST_CODE_LEN
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/zlib/trees.c
      type_or_value: '512 '
    - item_type: preproc_def
      name: TCONST
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/zlib/trees.c
      type_or_value: const
    - item_type: preproc_def
      name: SMALLEST
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/zlib/trees.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*static_tree'
        type: ct_data
      - name: '*extra_bits'
        type: intf
      - name: extra_base
        type: int
      - name: elems
        type: int
      - name: max_length
        type: int
      item_type: struct
      name: static_tree_desc_s
      pos:
        line_end: 122
        line_start: 116
        source_file: /src/zlib/trees.c
    typedefs: []
    union: []
- function_names:
  - z_deflateInit
  - z_inflateInit
  - z_deflateInit2
  - z_inflateInit2
  - z_inflateBackInit
  - deflateInit
  - inflateInit
  - deflateInit2
  - inflateInit2
  - inflateBackInit
  - z_gzgetc
  - gzgetc
  source_file: /src/zlib/zlib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZLIB_VERSION
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/zlib/zlib.h
      type_or_value: '"1.3.2.1-motley"'
    - item_type: preproc_def
      name: ZLIB_VERNUM
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/zlib/zlib.h
      type_or_value: '0x1321'
    - item_type: preproc_def
      name: ZLIB_VER_MAJOR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/zlib/zlib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ZLIB_VER_MINOR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/zlib/zlib.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ZLIB_VER_REVISION
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/zlib/zlib.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ZLIB_VER_SUBREVISION
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/zlib/zlib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_NO_FLUSH
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/zlib/zlib.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Z_PARTIAL_FLUSH
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/zlib/zlib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_SYNC_FLUSH
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/zlib/zlib.h
      type_or_value: '2'
    - item_type: preproc_def
      name: Z_FULL_FLUSH
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/zlib/zlib.h
      type_or_value: '3'
    - item_type: preproc_def
      name: Z_FINISH
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/zlib/zlib.h
      type_or_value: '4'
    - item_type: preproc_def
      name: Z_BLOCK
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/zlib/zlib.h
      type_or_value: '5'
    - item_type: preproc_def
      name: Z_TREES
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/zlib/zlib.h
      type_or_value: '6'
    - item_type: preproc_def
      name: Z_OK
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/zlib/zlib.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Z_STREAM_END
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/zlib/zlib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_NEED_DICT
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/zlib/zlib.h
      type_or_value: '2'
    - item_type: preproc_def
      name: Z_ERRNO
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/zlib/zlib.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: Z_STREAM_ERROR
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/zlib/zlib.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: Z_DATA_ERROR
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/zlib/zlib.h
      type_or_value: (-3)
    - item_type: preproc_def
      name: Z_MEM_ERROR
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/zlib/zlib.h
      type_or_value: (-4)
    - item_type: preproc_def
      name: Z_BUF_ERROR
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/zlib/zlib.h
      type_or_value: (-5)
    - item_type: preproc_def
      name: Z_VERSION_ERROR
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/zlib/zlib.h
      type_or_value: (-6)
    - item_type: preproc_def
      name: Z_NO_COMPRESSION
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/zlib/zlib.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Z_BEST_SPEED
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/zlib/zlib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_BEST_COMPRESSION
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/zlib/zlib.h
      type_or_value: '9'
    - item_type: preproc_def
      name: Z_DEFAULT_COMPRESSION
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/zlib/zlib.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: Z_FILTERED
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/zlib/zlib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_HUFFMAN_ONLY
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/zlib/zlib.h
      type_or_value: '2'
    - item_type: preproc_def
      name: Z_RLE
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/zlib/zlib.h
      type_or_value: '3'
    - item_type: preproc_def
      name: Z_FIXED
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/zlib/zlib.h
      type_or_value: '4'
    - item_type: preproc_def
      name: Z_DEFAULT_STRATEGY
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/zlib/zlib.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Z_BINARY
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/zlib/zlib.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Z_TEXT
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/zlib/zlib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_ASCII
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/zlib/zlib.h
      type_or_value: 'Z_TEXT   '
    - item_type: preproc_def
      name: Z_UNKNOWN
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/zlib/zlib.h
      type_or_value: '2'
    - item_type: preproc_def
      name: Z_DEFLATED
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/zlib/zlib.h
      type_or_value: '8'
    - item_type: preproc_def
      name: Z_NULL
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/zlib/zlib.h
      type_or_value: '0  '
    - item_type: preproc_def
      name: zlib_version
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/zlib/zlib.h
      type_or_value: zlibVersion()
    - item_type: preproc_def
      name: z_gzopen
      pos:
        line_end: 1989
        line_start: 1988
        source_file: /src/zlib/zlib.h
      type_or_value: z_gzopen64
    - item_type: preproc_def
      name: z_gzseek
      pos:
        line_end: 1990
        line_start: 1989
        source_file: /src/zlib/zlib.h
      type_or_value: z_gzseek64
    - item_type: preproc_def
      name: z_gztell
      pos:
        line_end: 1991
        line_start: 1990
        source_file: /src/zlib/zlib.h
      type_or_value: z_gztell64
    - item_type: preproc_def
      name: z_gzoffset
      pos:
        line_end: 1992
        line_start: 1991
        source_file: /src/zlib/zlib.h
      type_or_value: z_gzoffset64
    - item_type: preproc_def
      name: z_adler32_combine
      pos:
        line_end: 1993
        line_start: 1992
        source_file: /src/zlib/zlib.h
      type_or_value: z_adler32_combine64
    - item_type: preproc_def
      name: z_crc32_combine
      pos:
        line_end: 1994
        line_start: 1993
        source_file: /src/zlib/zlib.h
      type_or_value: z_crc32_combine64
    - item_type: preproc_def
      name: z_crc32_combine_gen
      pos:
        line_end: 1995
        line_start: 1994
        source_file: /src/zlib/zlib.h
      type_or_value: z_crc32_combine_gen64
    - item_type: preproc_def
      name: gzopen
      pos:
        line_end: 1997
        line_start: 1996
        source_file: /src/zlib/zlib.h
      type_or_value: gzopen64
    - item_type: preproc_def
      name: gzseek
      pos:
        line_end: 1998
        line_start: 1997
        source_file: /src/zlib/zlib.h
      type_or_value: gzseek64
    - item_type: preproc_def
      name: gztell
      pos:
        line_end: 1999
        line_start: 1998
        source_file: /src/zlib/zlib.h
      type_or_value: gztell64
    - item_type: preproc_def
      name: gzoffset
      pos:
        line_end: 2000
        line_start: 1999
        source_file: /src/zlib/zlib.h
      type_or_value: gzoffset64
    - item_type: preproc_def
      name: adler32_combine
      pos:
        line_end: 2001
        line_start: 2000
        source_file: /src/zlib/zlib.h
      type_or_value: adler32_combine64
    - item_type: preproc_def
      name: crc32_combine
      pos:
        line_end: 2002
        line_start: 2001
        source_file: /src/zlib/zlib.h
      type_or_value: crc32_combine64
    - item_type: preproc_def
      name: crc32_combine_gen
      pos:
        line_end: 2003
        line_start: 2002
        source_file: /src/zlib/zlib.h
      type_or_value: crc32_combine_gen64
    structs:
    - fields:
      - name: '*next_in'
        type: z_const
      - name: avail_in
        type: uInt
      - name: total_in
        type: uLong
      - name: '*next_out'
        type: Bytef
      - name: avail_out
        type: uInt
      - name: total_out
        type: uLong
      - name: '*msg'
        type: z_const
      - name: '*state'
        type: struct internal_state
      - name: zalloc
        type: alloc_func
      - name: zfree
        type: free_func
      - name: opaque
        type: voidpf
      - name: data_type
        type: int
      - name: adler
        type: uLong
      - name: reserved
        type: uLong
      item_type: struct
      name: z_stream_s
      pos:
        line_end: 109
        line_start: 89
        source_file: /src/zlib/zlib.h
    - fields:
      - name: text
        type: int
      - name: time
        type: uLong
      - name: xflags
        type: int
      - name: os
        type: int
      - name: '*extra'
        type: Bytef
      - name: extra_len
        type: uInt
      - name: extra_max
        type: uInt
      - name: '*name'
        type: Bytef
      - name: name_max
        type: uInt
      - name: '*comment'
        type: Bytef
      - name: comm_max
        type: uInt
      - name: hcrc
        type: int
      - name: done
        type: int
      item_type: struct
      name: gz_header_s
      pos:
        line_end: 132
        line_start: 117
        source_file: /src/zlib/zlib.h
    - fields:
      - name: have
        type: unsigned
      - name: '*next'
        type: unsigned char
      - name: pos
        type: z_off64_t
      item_type: struct
      name: gzFile_s
      pos:
        line_end: 1959
        line_start: 1955
        source_file: /src/zlib/zlib.h
    typedefs:
    - item_type: typedef
      name: (*alloc_func)(voidpf opaque, uInt items, uInt size)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/zlib/zlib.h
      type: voidpf
    - item_type: typedef
      name: (*free_func)(voidpf opaque, voidpf address)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/zlib/zlib.h
      type: void
    - item_type: typedef
      name: '*z_streamp'
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/zlib/zlib.h
      type: z_stream
    - item_type: typedef
      name: '*gz_headerp'
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/zlib/zlib.h
      type: gz_header
    - item_type: typedef
      name: "(*in_func)(void FAR *,\n                            z_const unsigned
        char FAR * FAR *)"
      pos:
        line_end: 1134
        line_start: 1133
        source_file: /src/zlib/zlib.h
      type: unsigned
    - item_type: typedef
      name: (*out_func)(void FAR *, unsigned char FAR *, unsigned)
      pos:
        line_end: 1135
        line_start: 1135
        source_file: /src/zlib/zlib.h
      type: int
    - item_type: typedef
      name: '*gzFile'
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/zlib/zlib.h
      type: gzFile_s
    union: []
- function_names: []
  source_file: /src/zlib/trees.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OF
  - OF
  source_file: /src/zlib/zconf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _dist_code
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/zlib/zconf.h
      type_or_value: z__dist_code
    - item_type: preproc_def
      name: _length_code
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/zlib/zconf.h
      type_or_value: z__length_code
    - item_type: preproc_def
      name: _tr_align
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/zlib/zconf.h
      type_or_value: z__tr_align
    - item_type: preproc_def
      name: _tr_flush_bits
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/zlib/zconf.h
      type_or_value: z__tr_flush_bits
    - item_type: preproc_def
      name: _tr_flush_block
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/zlib/zconf.h
      type_or_value: z__tr_flush_block
    - item_type: preproc_def
      name: _tr_init
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/zlib/zconf.h
      type_or_value: z__tr_init
    - item_type: preproc_def
      name: _tr_stored_block
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/zlib/zconf.h
      type_or_value: z__tr_stored_block
    - item_type: preproc_def
      name: _tr_tally
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/zlib/zconf.h
      type_or_value: z__tr_tally
    - item_type: preproc_def
      name: adler32
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/zlib/zconf.h
      type_or_value: z_adler32
    - item_type: preproc_def
      name: adler32_combine
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/zlib/zconf.h
      type_or_value: z_adler32_combine
    - item_type: preproc_def
      name: adler32_combine64
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/zlib/zconf.h
      type_or_value: z_adler32_combine64
    - item_type: preproc_def
      name: adler32_z
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/zlib/zconf.h
      type_or_value: z_adler32_z
    - item_type: preproc_def
      name: compress
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/zlib/zconf.h
      type_or_value: z_compress
    - item_type: preproc_def
      name: compress2
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/zlib/zconf.h
      type_or_value: z_compress2
    - item_type: preproc_def
      name: compress_z
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/zlib/zconf.h
      type_or_value: z_compress_z
    - item_type: preproc_def
      name: compress2_z
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/zlib/zconf.h
      type_or_value: z_compress2_z
    - item_type: preproc_def
      name: compressBound
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/zlib/zconf.h
      type_or_value: z_compressBound
    - item_type: preproc_def
      name: compressBound_z
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/zlib/zconf.h
      type_or_value: z_compressBound_z
    - item_type: preproc_def
      name: crc32
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/zlib/zconf.h
      type_or_value: z_crc32
    - item_type: preproc_def
      name: crc32_combine
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/zlib/zconf.h
      type_or_value: z_crc32_combine
    - item_type: preproc_def
      name: crc32_combine64
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/zlib/zconf.h
      type_or_value: z_crc32_combine64
    - item_type: preproc_def
      name: crc32_combine_gen
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/zlib/zconf.h
      type_or_value: z_crc32_combine_gen
    - item_type: preproc_def
      name: crc32_combine_gen64
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/zlib/zconf.h
      type_or_value: z_crc32_combine_gen64
    - item_type: preproc_def
      name: crc32_combine_op
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/zlib/zconf.h
      type_or_value: z_crc32_combine_op
    - item_type: preproc_def
      name: crc32_z
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/zlib/zconf.h
      type_or_value: z_crc32_z
    - item_type: preproc_def
      name: deflate
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflate
    - item_type: preproc_def
      name: deflateBound
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateBound
    - item_type: preproc_def
      name: deflateBound_z
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateBound_z
    - item_type: preproc_def
      name: deflateCopy
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateCopy
    - item_type: preproc_def
      name: deflateEnd
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateEnd
    - item_type: preproc_def
      name: deflateGetDictionary
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateGetDictionary
    - item_type: preproc_def
      name: deflateInit
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateInit
    - item_type: preproc_def
      name: deflateInit2
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateInit2
    - item_type: preproc_def
      name: deflateInit2_
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateInit2_
    - item_type: preproc_def
      name: deflateInit_
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateInit_
    - item_type: preproc_def
      name: deflateParams
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateParams
    - item_type: preproc_def
      name: deflatePending
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflatePending
    - item_type: preproc_def
      name: deflatePrime
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflatePrime
    - item_type: preproc_def
      name: deflateReset
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateReset
    - item_type: preproc_def
      name: deflateResetKeep
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateResetKeep
    - item_type: preproc_def
      name: deflateSetDictionary
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateSetDictionary
    - item_type: preproc_def
      name: deflateSetHeader
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateSetHeader
    - item_type: preproc_def
      name: deflateTune
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateTune
    - item_type: preproc_def
      name: deflateUsed
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflateUsed
    - item_type: preproc_def
      name: deflate_copyright
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/zlib/zconf.h
      type_or_value: z_deflate_copyright
    - item_type: preproc_def
      name: get_crc_table
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/zlib/zconf.h
      type_or_value: z_get_crc_table
    - item_type: preproc_def
      name: gz_error
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/zlib/zconf.h
      type_or_value: z_gz_error
    - item_type: preproc_def
      name: gz_intmax
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/zlib/zconf.h
      type_or_value: z_gz_intmax
    - item_type: preproc_def
      name: gz_strwinerror
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/zlib/zconf.h
      type_or_value: z_gz_strwinerror
    - item_type: preproc_def
      name: gzbuffer
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzbuffer
    - item_type: preproc_def
      name: gzclearerr
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzclearerr
    - item_type: preproc_def
      name: gzclose
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzclose
    - item_type: preproc_def
      name: gzclose_r
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzclose_r
    - item_type: preproc_def
      name: gzclose_w
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzclose_w
    - item_type: preproc_def
      name: gzdirect
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzdirect
    - item_type: preproc_def
      name: gzdopen
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzdopen
    - item_type: preproc_def
      name: gzeof
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzeof
    - item_type: preproc_def
      name: gzerror
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzerror
    - item_type: preproc_def
      name: gzflush
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzflush
    - item_type: preproc_def
      name: gzfread
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzfread
    - item_type: preproc_def
      name: gzfwrite
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzfwrite
    - item_type: preproc_def
      name: gzgetc
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzgetc
    - item_type: preproc_def
      name: gzgetc_
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzgetc_
    - item_type: preproc_def
      name: gzgets
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzgets
    - item_type: preproc_def
      name: gzoffset
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzoffset
    - item_type: preproc_def
      name: gzoffset64
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzoffset64
    - item_type: preproc_def
      name: gzopen
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzopen
    - item_type: preproc_def
      name: gzopen64
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzopen64
    - item_type: preproc_def
      name: gzopen_w
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzopen_w
    - item_type: preproc_def
      name: gzprintf
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzprintf
    - item_type: preproc_def
      name: gzputc
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzputc
    - item_type: preproc_def
      name: gzputs
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzputs
    - item_type: preproc_def
      name: gzread
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzread
    - item_type: preproc_def
      name: gzrewind
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzrewind
    - item_type: preproc_def
      name: gzseek
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzseek
    - item_type: preproc_def
      name: gzseek64
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzseek64
    - item_type: preproc_def
      name: gzsetparams
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzsetparams
    - item_type: preproc_def
      name: gztell
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/zlib/zconf.h
      type_or_value: z_gztell
    - item_type: preproc_def
      name: gztell64
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/zlib/zconf.h
      type_or_value: z_gztell64
    - item_type: preproc_def
      name: gzungetc
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzungetc
    - item_type: preproc_def
      name: gzvprintf
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzvprintf
    - item_type: preproc_def
      name: gzwrite
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzwrite
    - item_type: preproc_def
      name: inflate
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflate
    - item_type: preproc_def
      name: inflateBack
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateBack
    - item_type: preproc_def
      name: inflateBackEnd
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateBackEnd
    - item_type: preproc_def
      name: inflateBackInit
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateBackInit
    - item_type: preproc_def
      name: inflateBackInit_
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateBackInit_
    - item_type: preproc_def
      name: inflateCodesUsed
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateCodesUsed
    - item_type: preproc_def
      name: inflateCopy
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateCopy
    - item_type: preproc_def
      name: inflateEnd
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateEnd
    - item_type: preproc_def
      name: inflateGetDictionary
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateGetDictionary
    - item_type: preproc_def
      name: inflateGetHeader
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateGetHeader
    - item_type: preproc_def
      name: inflateInit
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateInit
    - item_type: preproc_def
      name: inflateInit2
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateInit2
    - item_type: preproc_def
      name: inflateInit2_
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateInit2_
    - item_type: preproc_def
      name: inflateInit_
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateInit_
    - item_type: preproc_def
      name: inflateMark
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateMark
    - item_type: preproc_def
      name: inflatePrime
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflatePrime
    - item_type: preproc_def
      name: inflateReset
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateReset
    - item_type: preproc_def
      name: inflateReset2
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateReset2
    - item_type: preproc_def
      name: inflateResetKeep
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateResetKeep
    - item_type: preproc_def
      name: inflateSetDictionary
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateSetDictionary
    - item_type: preproc_def
      name: inflateSync
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateSync
    - item_type: preproc_def
      name: inflateSyncPoint
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateSyncPoint
    - item_type: preproc_def
      name: inflateUndermine
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateUndermine
    - item_type: preproc_def
      name: inflateValidate
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflateValidate
    - item_type: preproc_def
      name: inflate_copyright
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflate_copyright
    - item_type: preproc_def
      name: inflate_fast
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflate_fast
    - item_type: preproc_def
      name: inflate_table
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflate_table
    - item_type: preproc_def
      name: inflate_fixed
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/zlib/zconf.h
      type_or_value: z_inflate_fixed
    - item_type: preproc_def
      name: uncompress
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/zlib/zconf.h
      type_or_value: z_uncompress
    - item_type: preproc_def
      name: uncompress2
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/zlib/zconf.h
      type_or_value: z_uncompress2
    - item_type: preproc_def
      name: uncompress_z
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/zlib/zconf.h
      type_or_value: z_uncompress_z
    - item_type: preproc_def
      name: uncompress2_z
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/zlib/zconf.h
      type_or_value: z_uncompress2_z
    - item_type: preproc_def
      name: zError
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/zlib/zconf.h
      type_or_value: z_zError
    - item_type: preproc_def
      name: zcalloc
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/zlib/zconf.h
      type_or_value: z_zcalloc
    - item_type: preproc_def
      name: zcfree
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/zlib/zconf.h
      type_or_value: z_zcfree
    - item_type: preproc_def
      name: zlibCompileFlags
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/zlib/zconf.h
      type_or_value: z_zlibCompileFlags
    - item_type: preproc_def
      name: zlibVersion
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/zlib/zconf.h
      type_or_value: z_zlibVersion
    - item_type: preproc_def
      name: Byte
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/zlib/zconf.h
      type_or_value: z_Byte
    - item_type: preproc_def
      name: Bytef
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/zlib/zconf.h
      type_or_value: z_Bytef
    - item_type: preproc_def
      name: alloc_func
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/zlib/zconf.h
      type_or_value: z_alloc_func
    - item_type: preproc_def
      name: charf
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/zlib/zconf.h
      type_or_value: z_charf
    - item_type: preproc_def
      name: free_func
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/zlib/zconf.h
      type_or_value: z_free_func
    - item_type: preproc_def
      name: gzFile
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/zlib/zconf.h
      type_or_value: z_gzFile
    - item_type: preproc_def
      name: gz_header
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/zlib/zconf.h
      type_or_value: z_gz_header
    - item_type: preproc_def
      name: gz_headerp
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/zlib/zconf.h
      type_or_value: z_gz_headerp
    - item_type: preproc_def
      name: in_func
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/zlib/zconf.h
      type_or_value: z_in_func
    - item_type: preproc_def
      name: intf
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/zlib/zconf.h
      type_or_value: z_intf
    - item_type: preproc_def
      name: out_func
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/zlib/zconf.h
      type_or_value: z_out_func
    - item_type: preproc_def
      name: uInt
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/zlib/zconf.h
      type_or_value: z_uInt
    - item_type: preproc_def
      name: uIntf
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/zlib/zconf.h
      type_or_value: z_uIntf
    - item_type: preproc_def
      name: uLong
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/zlib/zconf.h
      type_or_value: z_uLong
    - item_type: preproc_def
      name: uLongf
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/zlib/zconf.h
      type_or_value: z_uLongf
    - item_type: preproc_def
      name: voidp
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/zlib/zconf.h
      type_or_value: z_voidp
    - item_type: preproc_def
      name: voidpc
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/zlib/zconf.h
      type_or_value: z_voidpc
    - item_type: preproc_def
      name: voidpf
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/zlib/zconf.h
      type_or_value: z_voidpf
    - item_type: preproc_def
      name: gz_header_s
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/zlib/zconf.h
      type_or_value: z_gz_header_s
    - item_type: preproc_def
      name: internal_state
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/zlib/zconf.h
      type_or_value: z_internal_state
    - item_type: preproc_def
      name: z_const
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/zlib/zconf.h
      type_or_value: const
    - item_type: preproc_def
      name: z_longlong
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/zlib/zconf.h
      type_or_value: long long
    - item_type: preproc_def
      name: MAX_MEM_LEVEL
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/zlib/zconf.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_MEM_LEVEL
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/zlib/zconf.h
      type_or_value: '9'
    - item_type: preproc_def
      name: MAX_WBITS
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/zlib/zconf.h
      type_or_value: '15 '
    - item_type: preproc_def
      name: FAR
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/zlib/zconf.h
      type_or_value: _far
    - item_type: preproc_def
      name: FAR
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/zlib/zconf.h
      type_or_value: far
    - item_type: preproc_def
      name: FAR
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/zlib/zconf.h
      type_or_value: _far
    - item_type: preproc_def
      name: FAR
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/zlib/zconf.h
      type_or_value: far
    - item_type: preproc_def
      name: ZEXTERN
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/zlib/zconf.h
      type_or_value: extern __declspec(dllexport)
    - item_type: preproc_def
      name: ZEXTERN
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/zlib/zconf.h
      type_or_value: extern __declspec(dllimport)
    - item_type: preproc_def
      name: ZEXPORT
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/zlib/zconf.h
      type_or_value: WINAPI
    - item_type: preproc_def
      name: ZEXPORTVA
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/zlib/zconf.h
      type_or_value: WINAPIV
    - item_type: preproc_def
      name: ZEXPORTVA
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/zlib/zconf.h
      type_or_value: FAR CDECL
    - item_type: preproc_def
      name: ZEXPORT
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/zlib/zconf.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: ZEXPORTVA
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/zlib/zconf.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: ZEXPORT
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/zlib/zconf.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: ZEXPORTVA
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/zlib/zconf.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: ZEXTERN
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/zlib/zconf.h
      type_or_value: extern
    - item_type: preproc_def
      name: Bytef
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/zlib/zconf.h
      type_or_value: Byte FAR
    - item_type: preproc_def
      name: Z_U4
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/zlib/zconf.h
      type_or_value: unsigned
    - item_type: preproc_def
      name: Z_U4
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/zlib/zconf.h
      type_or_value: unsigned long
    - item_type: preproc_def
      name: Z_U4
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/zlib/zconf.h
      type_or_value: unsigned short
    - item_type: preproc_def
      name: z_off_t
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/zlib/zconf.h
      type_or_value: off_t
    - item_type: preproc_def
      name: SEEK_SET
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/zlib/zconf.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: SEEK_CUR
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/zlib/zconf.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: SEEK_END
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/zlib/zconf.h
      type_or_value: '2       '
    - item_type: preproc_def
      name: z_off_t
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/zlib/zconf.h
      type_or_value: long long
    - item_type: preproc_def
      name: z_off64_t
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/zlib/zconf.h
      type_or_value: off64_t
    - item_type: preproc_def
      name: z_off64_t
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/zlib/zconf.h
      type_or_value: long long
    - item_type: preproc_def
      name: z_off64_t
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/zlib/zconf.h
      type_or_value: __int64
    - item_type: preproc_def
      name: z_off64_t
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/zlib/zconf.h
      type_or_value: offset_t
    - item_type: preproc_def
      name: z_off64_t
      pos:
        line_end: 531
        line_start: 530
        source_file: /src/zlib/zconf.h
      type_or_value: z_off_t
    structs: []
    typedefs:
    - item_type: typedef
      name: z_size_t
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/zlib/zconf.h
      type: unsigned long long
    - item_type: typedef
      name: z_size_t
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/zlib/zconf.h
      type: unsigned long
    - item_type: typedef
      name: z_size_t
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/zlib/zconf.h
      type: unsigned NO_SIZE_T
    - item_type: typedef
      name: z_size_t
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/zlib/zconf.h
      type: size_t
    - item_type: typedef
      name: z_size_t
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/zlib/zconf.h
      type: unsigned long
    - item_type: typedef
      name: Byte
      pos:
        line_end: 402
        line_start: 402
        source_file: /src/zlib/zconf.h
      type: unsigned char
    - item_type: typedef
      name: uInt
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/zlib/zconf.h
      type: unsigned int
    - item_type: typedef
      name: uLong
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/zlib/zconf.h
      type: unsigned long
    - item_type: typedef
      name: Bytef
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/zlib/zconf.h
      type: Byte
    - item_type: typedef
      name: charf
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/zlib/zconf.h
      type: char
    - item_type: typedef
      name: intf
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/zlib/zconf.h
      type: int
    - item_type: typedef
      name: uIntf
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/zlib/zconf.h
      type: uInt
    - item_type: typedef
      name: uLongf
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/zlib/zconf.h
      type: uLong
    - item_type: typedef
      name: '*voidpc'
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/zlib/zconf.h
      type: void
    - item_type: typedef
      name: '*voidpf'
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/zlib/zconf.h
      type: void
    - item_type: typedef
      name: '*voidp'
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/zlib/zconf.h
      type: void
    - item_type: typedef
      name: '*voidpc'
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/zlib/zconf.h
      type: Byte
    - item_type: typedef
      name: '*voidpf'
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/zlib/zconf.h
      type: Byte
    - item_type: typedef
      name: '*voidp'
      pos:
        line_end: 425
        line_start: 425
        source_file: /src/zlib/zconf.h
      type: Byte
    - item_type: typedef
      name: z_crc_t
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/zlib/zconf.h
      type: Z_U4
    - item_type: typedef
      name: z_crc_t
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/zlib/zconf.h
      type: unsigned long
    union: []
- function_names: []
  source_file: /src/zlib/crc32.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_MSG
  - ERR_RETURN
  - F_OPEN
  - F_OPEN
  - zmemzero
  - zmemzero
  - Assert
  - Trace
  - Tracev
  - Tracevv
  - Tracec
  - Tracecv
  - ZALLOC
  - ZFREE
  - TRY_FREE
  - ZSWAP32
  - z_once
  - test_and_set
  - z_once
  source_file: /src/zlib/zutil.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZLIB_INTERNAL
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/zlib/zutil.h
      type_or_value: __attribute__((visibility ("hidden")))
    - item_type: preproc_def
      name: local
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/zlib/zutil.h
      type_or_value: static
    - item_type: preproc_def
      name: Z_U8
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/zlib/zutil.h
      type_or_value: unsigned long
    - item_type: preproc_def
      name: Z_U8
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/zlib/zutil.h
      type_or_value: unsigned long long
    - item_type: preproc_def
      name: Z_U8
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/zlib/zutil.h
      type_or_value: unsigned long long
    - item_type: preproc_def
      name: Z_U8
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/zlib/zutil.h
      type_or_value: unsigned
    - item_type: preproc_def
      name: DEF_WBITS
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/zlib/zutil.h
      type_or_value: MAX_WBITS
    - item_type: preproc_def
      name: DEF_MEM_LEVEL
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/zlib/zutil.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DEF_MEM_LEVEL
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/zlib/zutil.h
      type_or_value: MAX_MEM_LEVEL
    - item_type: preproc_def
      name: STORED_BLOCK
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/zlib/zutil.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STATIC_TREES
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/zlib/zutil.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DYN_TREES
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/zlib/zutil.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MIN_MATCH
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/zlib/zutil.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MAX_MATCH
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/zlib/zutil.h
      type_or_value: '258'
    - item_type: preproc_def
      name: PRESET_DICT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/zlib/zutil.h
      type_or_value: '0x20 '
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/zlib/zutil.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/zlib/zutil.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/zlib/zutil.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/zlib/zutil.h
      type_or_value: '4'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/zlib/zutil.h
      type_or_value: '11'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/zlib/zutil.h
      type_or_value: '8'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/zlib/zutil.h
      type_or_value: '5'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/zlib/zutil.h
      type_or_value: '6'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/zlib/zutil.h
      type_or_value: '7'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/zlib/zutil.h
      type_or_value: '13'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/zlib/zutil.h
      type_or_value: '10'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/zlib/zutil.h
      type_or_value: '16'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/zlib/zutil.h
      type_or_value: '18'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/zlib/zutil.h
      type_or_value: '19'
    - item_type: preproc_def
      name: OS_CODE
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/zlib/zutil.h
      type_or_value: '3     '
    - item_type: preproc_def
      name: zmemcpy
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/zlib/zutil.h
      type_or_value: _fmemcpy
    - item_type: preproc_def
      name: zmemcmp
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/zlib/zutil.h
      type_or_value: _fmemcmp
    - item_type: preproc_def
      name: zmemcpy
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/zlib/zutil.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: zmemcmp
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/zlib/zutil.h
      type_or_value: memcmp
    - item_type: preproc_def
      name: Z_ONCE_INIT
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/zlib/zutil.h
      type_or_value: '{ATOMIC_FLAG_INIT, 0}'
    - item_type: preproc_def
      name: Z_ONCE_INIT
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/zlib/zutil.h
      type_or_value: '{0, 0}'
    structs:
    - fields:
      - name: begun
        type: atomic_flag
      - name: done
        type: atomic_int
      item_type: struct
      name: z_once_t
      pos:
        line_end: 273
        line_start: 270
        source_file: /src/zlib/zutil.h
    - fields:
      - name: begun
        type: int
      - name: done
        type: int
      item_type: struct
      name: z_once_s
      pos:
        line_end: 300
        line_start: 297
        source_file: /src/zlib/zutil.h
    typedefs:
    - item_type: typedef
      name: uch
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/zlib/zutil.h
      type: unsigned char
    - item_type: typedef
      name: uchf
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/zlib/zutil.h
      type: uch
    - item_type: typedef
      name: ush
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/zlib/zutil.h
      type: unsigned short
    - item_type: typedef
      name: ushf
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/zlib/zutil.h
      type: ush
    - item_type: typedef
      name: ulg
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/zlib/zutil.h
      type: unsigned long
    union: []
- function_names:
  - ZLIB_INTERNAL::inflate_fast
  source_file: /src/zlib/inffast.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - byte_swap
  - multmodp
  - x2nmodp
  - make_crc_table
  - write_table
  - write_table32hi
  - write_table64
  - main
  - braid
  - get_crc_table
  - crc32_z
  - crc_word
  - crc_word_big
  - crc32_z
  - crc32
  - crc32_combine_gen64
  - crc32_combine_gen
  - crc32_combine_op
  - crc32_combine64
  - crc32_combine
  source_file: /src/zlib/crc32.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: N
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/zlib/crc32.c
      type_or_value: Z_TESTN
    - item_type: preproc_def
      name: N
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/zlib/crc32.c
      type_or_value: '5'
    - item_type: preproc_def
      name: W
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/zlib/crc32.c
      type_or_value: Z_TESTW
    - item_type: preproc_def
      name: W
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/zlib/crc32.c
      type_or_value: '8         '
    - item_type: preproc_def
      name: W
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/zlib/crc32.c
      type_or_value: '8'
    - item_type: preproc_def
      name: W
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/zlib/crc32.c
      type_or_value: '4'
    - item_type: preproc_def
      name: W
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/zlib/crc32.c
      type_or_value: '4'
    - item_type: preproc_def
      name: POLY
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/zlib/crc32.c
      type_or_value: '0xedb88320         '
    - item_type: preproc_def
      name: Z_BATCH
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/zlib/crc32.c
      type_or_value: '3990                '
    - item_type: preproc_def
      name: Z_BATCH_ZEROS
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/zlib/crc32.c
      type_or_value: '0xa10d3d0c    '
    - item_type: preproc_def
      name: Z_BATCH_MIN
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/zlib/crc32.c
      type_or_value: '800             '
    structs: []
    typedefs:
    - item_type: typedef
      name: z_word_t
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/zlib/crc32.c
      type: Z_U8
    - item_type: typedef
      name: z_word_t
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/zlib/crc32.c
      type: Z_U4
    union: []
- function_names:
  - uncompress2_z
  - uncompress2
  - uncompress_z
  - uncompress
  source_file: /src/zlib/uncompr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/inffast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - zstrerror
  - zstrerror
  - zstrerror
  - GT_OFF
  source_file: /src/zlib/gzguts.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _LARGEFILE_SOURCE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/zlib/gzguts.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ZLIB_INTERNAL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/zlib/gzguts.h
      type_or_value: __attribute__((visibility ("hidden")))
    - item_type: preproc_def
      name: _POSIX_C_SOURCE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/zlib/gzguts.h
      type_or_value: 200112L
    - item_type: preproc_def
      name: vsnprintf
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/zlib/gzguts.h
      type_or_value: _vsnprintf
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/zlib/gzguts.h
      type_or_value: _snprintf
    - item_type: preproc_def
      name: local
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/zlib/gzguts.h
      type_or_value: static
    - item_type: preproc_def
      name: DEF_MEM_LEVEL
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/zlib/gzguts.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DEF_MEM_LEVEL
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/zlib/gzguts.h
      type_or_value: MAX_MEM_LEVEL
    - item_type: preproc_def
      name: GZBUFSIZE
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/zlib/gzguts.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: GZ_NONE
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/zlib/gzguts.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GZ_READ
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/zlib/gzguts.h
      type_or_value: '7247'
    - item_type: preproc_def
      name: GZ_WRITE
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/zlib/gzguts.h
      type_or_value: '31153'
    - item_type: preproc_def
      name: GZ_APPEND
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/zlib/gzguts.h
      type_or_value: '1     '
    - item_type: preproc_def
      name: LOOK
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/zlib/gzguts.h
      type_or_value: '0      '
    - item_type: preproc_def
      name: COPY
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/zlib/gzguts.h
      type_or_value: '1      '
    - item_type: preproc_def
      name: GZIP
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/zlib/gzguts.h
      type_or_value: '2      '
    structs:
    - fields:
      - name: x
        type: struct gzFile_s
      - name: mode
        type: int
      - name: fd
        type: int
      - name: '*path'
        type: char
      - name: size
        type: unsigned
      - name: want
        type: unsigned
      - name: '*in'
        type: unsigned char
      - name: '*out'
        type: unsigned char
      - name: direct
        type: int
      - name: junk
        type: int
      - name: how
        type: int
      - name: again
        type: int
      - name: start
        type: z_off64_t
      - name: eof
        type: int
      - name: past
        type: int
      - name: level
        type: int
      - name: strategy
        type: int
      - name: reset
        type: int
      - name: skip
        type: z_off64_t
      - name: err
        type: int
      - name: '*msg'
        type: char
      - name: strm
        type: z_stream
      item_type: struct
      name: gz_state
      pos:
        line_end: 202
        line_start: 169
        source_file: /src/zlib/gzguts.h
    typedefs:
    - item_type: typedef
      name: '*gz_statep'
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/zlib/gzguts.h
      type: gz_state
    union: []
- function_names:
  - gz_load
  - gz_avail
  - gz_look
  - gz_decomp
  - gz_fetch
  - gz_skip
  - gz_read
  - gzread
  - gzfread
  - gzgetc
  - gzgetc_
  - gzungetc
  - gzgets
  - gzdirect
  - gzclose_r
  source_file: /src/zlib/gzread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gz_init
  - gz_comp
  - gz_zero
  - gz_write
  - gzwrite
  - gzfwrite
  - gzputc
  - gzputs
  - gz_vacate
  - gzvprintf
  - gzprintf
  - gzprintf
  - gzflush
  - gzsetparams
  - gzclose_w
  source_file: /src/zlib/gzwrite.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inflateStateCheck
  - inflateResetKeep
  - inflateReset
  - inflateReset2
  - inflateInit2_
  - inflateInit_
  - inflatePrime
  - updatewindow
  - UPDATE_CHECK
  - UPDATE_CHECK
  - CRC2
  - CRC4
  - LOAD
  - RESTORE
  - INITBITS
  - PULLBYTE
  - NEEDBITS
  - BITS
  - DROPBITS
  - BYTEBITS
  - inflate
  - inflateEnd
  - inflateGetDictionary
  - inflateSetDictionary
  - inflateGetHeader
  - syncsearch
  - inflateSync
  - inflateSyncPoint
  - inflateCopy
  - inflateUndermine
  - inflateValidate
  - inflateMark
  - inflateCodesUsed
  source_file: /src/zlib/inflate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DO1
  - DO2
  - DO4
  - DO8
  - DO16
  - CHOP
  - MOD28
  - MOD
  - MOD
  - MOD28
  - MOD63
  - adler32_z
  - adler32
  - adler32_combine_
  - adler32_combine
  - adler32_combine64
  source_file: /src/zlib/adler32.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BASE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/zlib/adler32.c
      type_or_value: '65521U     '
    - item_type: preproc_def
      name: NMAX
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/zlib/adler32.c
      type_or_value: '5552'
    - item_type: preproc_def
      name: z_off64_t
      pos:
        line_end: 53
        line_start: 40
        source_file: /src/zlib/adler32.c
      type_or_value: "tmp = a >> 32; \\\n        a &= 0xffffffffL; \\\n        a +=
        (tmp << 8) - (tmp << 5) + tmp; \\\n        tmp = a >> 16; \\\n        a &=
        0xffffL; \\\n        a += (tmp << 4) - tmp; \\\n        tmp = a >> 16; \\\n
        \       a &= 0xffffL; \\\n        a += (tmp << 4) - tmp; \\\n        if (a
        >= BASE) a -= BASE; \\\n    } while (0)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZLIB_INTERNAL::inflate_table
  - buildtables
  - inflate_fixed
  - main
  source_file: /src/zlib/inftrees.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'NULL'
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/zlib/inftrees.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MAXBITS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/zlib/inftrees.c
      type_or_value: '15'
    structs: []
    typedefs: []
    union: []
- function_names:
  - gzclose
  source_file: /src/zlib/gzclose.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mem_alloc
  - mem_free
  - mem_setup
  - mem_limit
  - mem_used
  - mem_high
  - mem_done
  - h2b
  - inf
  - cover_support
  - cover_wrap
  - pull
  - push
  - cover_back
  - cover_inflate
  - cover_trees
  - cover_fast
  - main
  source_file: /src/zlib/test/infcover.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/zlib/test/infcover.c
      type_or_value: static
    structs:
    - fields:
      - name: '*ptr'
        type: void
      - name: size
        type: size_t
      - name: '*next'
        type: struct mem_item
      item_type: struct
      name: mem_item
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/zlib/test/infcover.c
    - fields:
      - name: '*first'
        type: struct mem_item
      - name: total
        type: size_t
      - name: limit
        type: size_t
      - name: notlifo
        type: int
      item_type: struct
      name: mem_zone
      pos:
        line_end: 67
        line_start: 62
        source_file: /src/zlib/test/infcover.c
    typedefs: []
    union: []
- function_names:
  - SET_BINARY_MODE
  - fileno
  - perror
  - string_copy
  - myalloc
  - myfree
  - gz_open
  - gzopen
  - gzdopen
  - gzwrite
  - gzread
  - gzclose
  - gzerror
  - error
  - gz_compress_mmap
  - gz_compress
  - gz_uncompress
  - file_compress
  - file_uncompress
  - main
  source_file: /src/zlib/test/minigzip.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _POSIX_C_SOURCE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/zlib/test/minigzip.c
      type_or_value: 200112L
    - item_type: preproc_def
      name: unlink
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/zlib/test/minigzip.c
      type_or_value: delete
    - item_type: preproc_def
      name: GZ_SUFFIX
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/zlib/test/minigzip.c
      type_or_value: '"-gz"'
    - item_type: preproc_def
      name: GZ_SUFFIX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/zlib/test/minigzip.c
      type_or_value: '"/gz"'
    - item_type: preproc_def
      name: unlink
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/zlib/test/minigzip.c
      type_or_value: remove
    - item_type: preproc_def
      name: GZ_SUFFIX
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/zlib/test/minigzip.c
      type_or_value: '".gz"'
    - item_type: preproc_def
      name: SUFFIX_LEN
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/zlib/test/minigzip.c
      type_or_value: (sizeof(GZ_SUFFIX)-1)
    - item_type: preproc_def
      name: BUFLEN
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/zlib/test/minigzip.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: MAX_NAME_LEN
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/zlib/test/minigzip.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: local
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/zlib/test/minigzip.c
      type_or_value: static
    structs:
    - fields:
      - name: '*file'
        type: FILE
      - name: write
        type: int
      - name: err
        type: int
      - name: '*msg'
        type: char
      - name: strm
        type: z_stream
      item_type: struct
      name: gzFile_s
      pos:
        line_end: 195
        line_start: 189
        source_file: /src/zlib/test/minigzip.c
    typedefs: []
    union: []
- function_names:
  - CHECK_ERR
  - myalloc
  - myfree
  - test_compress
  - test_gzio
  - test_deflate
  - test_inflate
  - test_large_deflate
  - test_large_inflate
  - test_flush
  - test_sync
  - test_dict_deflate
  - test_dict_inflate
  - main
  source_file: /src/zlib/test/example.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TESTFILE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/zlib/test/example.c
      type_or_value: '"foo-gz"'
    - item_type: preproc_def
      name: TESTFILE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/zlib/test/example.c
      type_or_value: '"foo/gz"'
    - item_type: preproc_def
      name: TESTFILE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/zlib/test/example.c
      type_or_value: '"foo.gz"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - bail
  - bclose
  - bopen
  - bload
  - bget
  - bget4
  - bskip
  - gzhead
  - put4
  - zpull
  - gzinit
  - gzcopy
  - main
  source_file: /src/zlib/examples/gzjoin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/zlib/examples/gzjoin.c
      type_or_value: static
    - item_type: preproc_def
      name: CHUNK
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/zlib/examples/gzjoin.c
      type_or_value: '32768         '
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: fd
        type: int
      - name: left
        type: unsigned
      - name: '*next'
        type: unsigned char
      - name: '*buf'
        type: unsigned char
      item_type: struct
      name: bin
      pos:
        line_end: 83
        line_start: 77
        source_file: /src/zlib/examples/gzjoin.c
    typedefs: []
    union: []
- function_names:
  - SET_BINARY_MODE
  - def
  - inf
  - zerr
  - main
  source_file: /src/zlib/examples/zpipe.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHUNK
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/zlib/examples/zpipe.c
      type_or_value: '16384'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BAIL
  - PULL2
  - PULL4
  - PULL8
  - PUT2
  - PUT4
  - PUT8
  - log_lock
  - log_touch
  - log_check
  - log_unlock
  - log_head
  - log_mark
  - log_last
  - log_append
  - log_replace
  - log_compress
  - log_log
  - log_recover
  - log_close
  - log_open
  - gzlog_open
  - gzlog_compress
  - gzlog_write
  - gzlog_close
  source_file: /src/zlib/examples/gzlog.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: static
    - item_type: preproc_def
      name: PATIENCE
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: '300'
    - item_type: preproc_def
      name: MAX_STORE
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: '16'
    - item_type: preproc_def
      name: TRIGGER
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: DICT
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: 32768U
    - item_type: preproc_def
      name: NO_OP
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: '0'
    - item_type: preproc_def
      name: APPEND_OP
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: '1'
    - item_type: preproc_def
      name: COMPRESS_OP
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: '2'
    - item_type: preproc_def
      name: REPLACE_OP
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: '3'
    - item_type: preproc_def
      name: LOGID
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: '"\106\035\172"    '
    - item_type: preproc_def
      name: HEAD
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: 'sizeof(log_gzhead)     '
    - item_type: preproc_def
      name: EXTRA
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: 'sizeof(log_gzext)     '
    - item_type: preproc_def
      name: BODY
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/zlib/examples/gzlog.c
      type_or_value: sizeof(log_gzbody)
    structs:
    - fields:
      - name: id[4]
        type: char
      - name: fd
        type: int
      - name: '*path'
        type: char
      - name: '*end'
        type: char
      - name: first
        type: off_t
      - name: back
        type: int
      - name: stored
        type: uint
      - name: last
        type: off_t
      - name: ccrc
        type: ulong
      - name: clen
        type: ulong
      - name: tcrc
        type: ulong
      - name: tlen
        type: ulong
      - name: lock
        type: time_t
      item_type: struct
      name: log
      pos:
        line_end: 302
        line_start: 288
        source_file: /src/zlib/examples/gzlog.c
    typedefs:
    - item_type: typedef
      name: uint
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/zlib/examples/gzlog.c
      type: unsigned int
    - item_type: typedef
      name: ulong
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/zlib/examples/gzlog.c
      type: unsigned long
    union: []
- function_names:
  - bye
  - gcd
  - rotate
  - readin
  - readmore
  - read1
  - skip
  - read4
  - gzheader
  - gzscan
  - gztack
  - main
  source_file: /src/zlib/examples/gzappend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/zlib/examples/gzappend.c
      type_or_value: static
    - item_type: preproc_def
      name: LGCHUNK
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/zlib/examples/gzappend.c
      type_or_value: '14'
    - item_type: preproc_def
      name: CHUNK
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/zlib/examples/gzappend.c
      type_or_value: (1U << LGCHUNK)
    - item_type: preproc_def
      name: DSIZE
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/zlib/examples/gzappend.c
      type_or_value: 32768U
    structs:
    - fields:
      - name: fd
        type: int
      - name: size
        type: int
      - name: left
        type: unsigned
      - name: '*buf'
        type: unsigned char
      - name: '*next'
        type: z_const unsigned
      - name: '*name'
        type: char
      item_type: struct
      name: file
      pos:
        line_end: 176
        line_start: 169
        source_file: /src/zlib/examples/gzappend.c
    typedefs: []
    union: []
- function_names:
  - deflate_index_free
  - add_point
  - deflate_index_build
  - append_bits
  - inflatePreface
  - deflate_index_extract
  - main
  source_file: /src/zlib/examples/zran.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WINSIZE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/zlib/examples/zran.c
      type_or_value: 32768U      // sliding window size
    - item_type: preproc_def
      name: CHUNK
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/zlib/examples/zran.c
      type_or_value: 16384         // file input buffer size
    - item_type: preproc_def
      name: RAW
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/zlib/examples/zran.c
      type_or_value: '-15'
    - item_type: preproc_def
      name: ZLIB
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/zlib/examples/zran.c
      type_or_value: '15'
    - item_type: preproc_def
      name: GZIP
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/zlib/examples/zran.c
      type_or_value: '31'
    - item_type: preproc_def
      name: INFLATEPRIME
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/zlib/examples/zran.c
      type_or_value: inflatePreface
    - item_type: preproc_def
      name: INFLATEPRIME
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/zlib/examples/zran.c
      type_or_value: inflatePrime
    - item_type: preproc_def
      name: SPAN
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/zlib/examples/zran.c
      type_or_value: 1048576L       // desired distance between access points
    - item_type: preproc_def
      name: LEN
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/zlib/examples/zran.c
      type_or_value: 16384           // number of bytes to extract
    structs: []
    typedefs: []
    union: []
- function_names:
  - quit
  - partcompress
  - recompress
  - main
  source_file: /src/zlib/examples/fitblk.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/zlib/examples/fitblk.c
      type_or_value: static
    - item_type: preproc_def
      name: RAWLEN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/zlib/examples/fitblk.c
      type_or_value: '4096    '
    - item_type: preproc_def
      name: EXCESS
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/zlib/examples/fitblk.c
      type_or_value: '256      '
    - item_type: preproc_def
      name: MARGIN
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/zlib/examples/fitblk.c
      type_or_value: '8        '
    structs: []
    typedefs: []
    union: []
- function_names:
  - string_clear
  - string_init
  - string_free
  - string_printf
  - map
  - cleanup
  - count
  - been_here
  - examine
  - enough
  - main
  source_file: /src/zlib/examples/enough.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/zlib/examples/enough.c
      type_or_value: static
    - item_type: preproc_def
      name: PRIbig
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/zlib/examples/enough.c
      type_or_value: '"llu"        // printf format for big_t'
    structs:
    - fields:
      - name: len
        type: size_t
      - name: '*vec'
        type: char
      item_type: struct
      name: tab
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/zlib/examples/enough.c
    - fields:
      - name: '*str'
        type: char
      - name: size
        type: size_t
      - name: len
        type: size_t
      item_type: struct
      name: string_t
      pos:
        line_end: 177
        line_start: 173
        source_file: /src/zlib/examples/enough.c
    - fields:
      - name: max
        type: int
      - name: root
        type: int
      - name: large
        type: int
      - name: size
        type: size_t
      - name: tot
        type: big_t
      - name: out
        type: string_t
      - name: '*code'
        type: int
      - name: '*num'
        type: big_t
      - name: '*done'
        type: struct tab
      item_type: struct
      name: g
      pos:
        line_end: 233
        line_start: 223
        source_file: /src/zlib/examples/enough.c
    typedefs:
    - item_type: typedef
      name: big_t
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/zlib/examples/enough.c
      type: unsigned long long
    - item_type: typedef
      name: code_t
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/zlib/examples/enough.c
      type: big_t
    union: []
- function_names: []
  source_file: /src/zlib/examples/gzlog.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: gzlog
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/zlib/examples/gzlog.h
      type: void
    union: []
- function_names:
  - in
  - out
  - NEXT
  - FLUSHCODE
  - lunpipe
  - gunpipe
  - copymeta
  - gunzip
  - main
  source_file: /src/zlib/examples/gun.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/zlib/examples/gun.c
      type_or_value: static
    - item_type: preproc_def
      name: SIZE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/zlib/examples/gun.c
      type_or_value: '32768U         '
    - item_type: preproc_def
      name: PIECE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/zlib/examples/gun.c
      type_or_value: '16384         '
    structs:
    - fields:
      - name: infile
        type: int
      - name: '*inbuf'
        type: unsigned char
      item_type: struct
      name: ind
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/zlib/examples/gun.c
    - fields:
      - name: outfile
        type: int
      - name: check
        type: int
      - name: crc
        type: unsigned long
      - name: total
        type: unsigned long
      item_type: struct
      name: outd
      pos:
        line_end: 123
        line_start: 118
        source_file: /src/zlib/examples/gun.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/examples/zran.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: out
        type: off_t
      - name: in
        type: off_t
      - name: bits
        type: int
      - name: dict
        type: unsigned
      - name: '*window'
        type: unsigned char
      item_type: struct
      name: point
      pos:
        line_end: 15
        line_start: 9
        source_file: /src/zlib/examples/zran.h
    - fields:
      - name: have
        type: int
      - name: mode
        type: int
      - name: length
        type: off_t
      - name: '*list'
        type: point_t
      - name: strm
        type: z_stream
      item_type: struct
      name: deflate_index
      pos:
        line_end: 24
        line_start: 18
        source_file: /src/zlib/examples/zran.h
    typedefs: []
    union: []
- function_names:
  - SET_BINARY_MODE
  - aprintf
  - BYE
  - gzip_normalize
  - main
  source_file: /src/zlib/examples/gznorm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/zlib/examples/gznorm.c
      type_or_value: static
    - item_type: preproc_def
      name: CHUNK
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/zlib/examples/gznorm.c
      type_or_value: '16384'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/zlib/contrib/iostream/test.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gzfilebuf::is_open
  - gzomanip::gzomanip
  - '&operator<<(gzofstream &s, const gzomanip<T> &m)'
  - setcompressionlevel
  - setcompressionstrategy
  - setcompressionlevel
  - setcompressionstrategy
  source_file: /src/zlib/contrib/iostream/zfstream.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gzfilebuf::gzfilebuf
  - gzfilebuf::~gzfilebuf()
  - gzfilebuf::open
  - gzfilebuf::attach
  - gzfilebuf::close
  - gzfilebuf::setcompressionlevel
  - gzfilebuf::setcompressionstrategy
  - gzfilebuf::seekoff
  - gzfilebuf::underflow
  - gzfilebuf::overflow
  - gzfilebuf::sync
  - gzfilebuf::flushbuf
  - gzfilebuf::fillbuf
  - gzfilestream_common::gzfilestream_common
  - gzfilestream_common::~gzfilestream_common()
  - gzfilestream_common::attach
  - gzfilestream_common::open
  - gzfilestream_common::close
  - gzfilestream_common::rdbuf
  - gzifstream::gzifstream
  - gzifstream::gzifstream
  - gzifstream::gzifstream
  - gzifstream::~gzifstream()
  - gzofstream::gzofstream
  - gzofstream::gzofstream
  - gzofstream::gzofstream
  - gzofstream::~gzofstream()
  source_file: /src/zlib/contrib/iostream/zfstream.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bits
  - stored
  - decode
  - decode
  - construct
  - codes
  - fixed
  - dynamic
  - puff
  source_file: /src/zlib/contrib/puff/puff.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/zlib/contrib/puff/puff.c
      type_or_value: 'static            '
    - item_type: preproc_def
      name: MAXBITS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/zlib/contrib/puff/puff.c
      type_or_value: '15              '
    - item_type: preproc_def
      name: MAXLCODES
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/zlib/contrib/puff/puff.c
      type_or_value: '286           '
    - item_type: preproc_def
      name: MAXDCODES
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/zlib/contrib/puff/puff.c
      type_or_value: '30            '
    - item_type: preproc_def
      name: MAXCODES
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/zlib/contrib/puff/puff.c
      type_or_value: '(MAXLCODES+MAXDCODES)  '
    - item_type: preproc_def
      name: FIXLCODES
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/zlib/contrib/puff/puff.c
      type_or_value: '288           '
    structs:
    - fields:
      - name: '*out'
        type: unsigned char
      - name: outlen
        type: unsigned long
      - name: outcnt
        type: unsigned long
      - name: '*in'
        type: unsigned char
      - name: inlen
        type: unsigned long
      - name: incnt
        type: unsigned long
      - name: bitbuf
        type: int
      - name: bitcnt
        type: int
      - name: env
        type: jmp_buf
      item_type: struct
      name: state
      pos:
        line_end: 112
        line_start: 97
        source_file: /src/zlib/contrib/puff/puff.c
    - fields:
      - name: '*count'
        type: short
      - name: '*symbol'
        type: short
      item_type: struct
      name: huffman
      pos:
        line_end: 208
        line_start: 205
        source_file: /src/zlib/contrib/puff/puff.c
    typedefs: []
    union: []
- function_names:
  - SET_BINARY_MODE
  - bythirds
  - load
  - main
  source_file: /src/zlib/contrib/puff/pufftest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/zlib/contrib/puff/pufftest.c
      type_or_value: static
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/zlib/contrib/puff/bin-writer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/contrib/puff/puff.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NIL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/zlib/contrib/puff/puff.h
      type_or_value: '((unsigned char *)0)      '
    structs: []
    typedefs: []
    union: []
- function_names:
  - MyDoMinus64
  - BeginCountRdtsc
  - GetResRdtsc
  - myGetRDTSC32
  - BeginCountRdtsc
  - GetResRdtsc
  - myGetRDTSC32
  - BeginCountRdtsc
  - GetResRdtsc
  - BeginCountPerfCounter
  - GetMsecSincePerfCounter
  - ReadFileMemory
  - main
  source_file: /src/zlib/contrib/testzlib/testzlib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gzfilebuf::gzfilebuf
  - gzfilebuf::~gzfilebuf()
  - gzfilebuf::setcompression
  - gzfilebuf::open
  - gzfilebuf::attach
  - gzfilebuf::close
  - gzfilebuf::open_mode
  - gzfilebuf::showmanyc
  - gzfilebuf::underflow
  - gzfilebuf::overflow
  - gzfilebuf::setbuf
  - gzfilebuf::sync
  - gzfilebuf::enable_buffer
  - gzfilebuf::disable_buffer
  - gzifstream::gzifstream
  - gzifstream::gzifstream
  - gzifstream::gzifstream
  - gzifstream::open
  - gzifstream::attach
  - gzifstream::close
  - gzofstream::gzofstream
  - gzofstream::gzofstream
  - gzofstream::gzofstream
  - gzofstream::open
  - gzofstream::attach
  - gzofstream::close
  source_file: /src/zlib/contrib/iostream3/zfstream.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIGBUFSIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/zlib/contrib/iostream3/zfstream.cc
      type_or_value: BUFSIZ
    - item_type: preproc_def
      name: SMALLBUFSIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/zlib/contrib/iostream3/zfstream.cc
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - gzfilebuf::is_open
  - gzifstream::rdbuf
  - gzifstream::is_open
  - gzofstream::rdbuf
  - gzofstream::is_open
  - setcompression
  - gzomanip2<T1,T2>::gzomanip2
  - "&\n  operator<<(gzofstream& s, const gzomanip2<T1,T2>& m)"
  - setcompression
  source_file: /src/zlib/contrib/iostream3/zfstream.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/zlib/contrib/iostream3/test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - crc32_le_vgfm_16
  - s390_crc32_vx
  - s390_crc32_setup
  - s390_crc32_init
  source_file: /src/zlib/contrib/crc32vx/crc32_vx.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VX_MIN_LEN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/zlib/contrib/crc32vx/crc32_vx.c
      type_or_value: '64'
    - item_type: preproc_def
      name: VX_ALIGNMENT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/zlib/contrib/crc32vx/crc32_vx.c
      type_or_value: 16L
    - item_type: preproc_def
      name: VX_ALIGN_MASK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/zlib/contrib/crc32vx/crc32_vx.c
      type_or_value: (VX_ALIGNMENT - 1)
    structs: []
    typedefs:
    - item_type: typedef
      name: uv16qi
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/zlib/contrib/crc32vx/crc32_vx.c
      type: unsigned char
    - item_type: typedef
      name: uv4si
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/zlib/contrib/crc32vx/crc32_vx.c
      type: unsigned int
    - item_type: typedef
      name: uv2di
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/zlib/contrib/crc32vx/crc32_vx.c
      type: unsigned long long
    union: []
- function_names: []
  source_file: /src/zlib/contrib/crc32vx/crc32_vx_hooks.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inflateBack9Init_
  - makefixed9
  - INITBITS
  - PULL
  - PULLBYTE
  - NEEDBITS
  - BITS
  - DROPBITS
  - BYTEBITS
  - ROOM
  - inflateBack9
  - inflateBack9End
  source_file: /src/zlib/contrib/infback9/infback9.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WSIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/zlib/contrib/infback9/infback9.c
      type_or_value: 65536UL
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/contrib/infback9/inffix9.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inflateBack9Init
  source_file: /src/zlib/contrib/infback9/infback9.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inflate_table9
  source_file: /src/zlib/contrib/infback9/inftree9.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXBITS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/zlib/contrib/infback9/inftree9.c
      type_or_value: '15'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/contrib/infback9/inftree9.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENOUGH_LENS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/zlib/contrib/infback9/inftree9.h
      type_or_value: '852'
    - item_type: preproc_def
      name: ENOUGH_DISTS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/zlib/contrib/infback9/inftree9.h
      type_or_value: '594'
    - item_type: preproc_def
      name: ENOUGH
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/zlib/contrib/infback9/inftree9.h
      type_or_value: (ENOUGH_LENS+ENOUGH_DISTS)
    structs:
    - fields:
      - name: op
        type: unsigned char
      - name: bits
        type: unsigned char
      - name: val
        type: unsigned short
      item_type: struct
      name: code
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/zlib/contrib/infback9/inftree9.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/contrib/infback9/inflate9.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*window'
        type: unsigned char
      - name: ncode
        type: unsigned
      - name: nlen
        type: unsigned
      - name: ndist
        type: unsigned
      - name: have
        type: unsigned
      - name: '*next'
        type: code
      - name: lens[320]
        type: unsigned short
      - name: work[288]
        type: unsigned short
      - name: codes[ENOUGH]
        type: code
      item_type: struct
      name: inflate_state
      pos:
        line_end: 46
        line_start: 34
        source_file: /src/zlib/contrib/infback9/inflate9.h
    typedefs: []
    union: []
- function_names:
  - SET_BINARY_MODE
  - zstringlen::value
  - izstream::izstream
  - izstream::izstream
  - izstream::izstream
  - ~izstream()
  - izstream::open
  - izstream::open
  - izstream::close
  - izstream::read
  - izstream::error
  - izstream::fp
  - read
  - '& operator>(izstream& zs, T& x)'
  - zstringlen::zstringlen
  - '& operator>(izstream& zs, char* x)'
  - read_string
  - ozstream::ozstream
  - ozstream::ozstream
  - ozstream::ozstream
  - ~ozstream()
  - ozstream::open
  - ozstream::open
  - ozstream::close
  - ozstream::write
  - ozstream::flush
  - ozstream::error
  - ozstream::fp
  - '& os()'
  - ozstream::os_flush
  - write
  - '& operator<(ozstream& zs, const T& x)'
  - zstringlen::zstringlen
  - '& operator<(ozstream& zs, const char* x)'
  - '& operator<(ozstream& zs, char* const& x)'
  - '& operator<<(ozstream& zs, const T& x)'
  source_file: /src/zlib/contrib/iostream2/zstream.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: byte
        type: unsigned char
      - name: word
        type: size_t
      item_type: struct
      name: Val
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/zlib/contrib/iostream2/zstream.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/zlib/contrib/iostream2/zstream_test.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/contrib/minizip/unzip.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Z_BZIP2ED
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/zlib/contrib/minizip/unzip.h
      type_or_value: '12'
    - item_type: preproc_def
      name: UNZ_OK
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/zlib/contrib/minizip/unzip.h
      type_or_value: (0)
    - item_type: preproc_def
      name: UNZ_END_OF_LIST_OF_FILE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/zlib/contrib/minizip/unzip.h
      type_or_value: (-100)
    - item_type: preproc_def
      name: UNZ_ERRNO
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/zlib/contrib/minizip/unzip.h
      type_or_value: (Z_ERRNO)
    - item_type: preproc_def
      name: UNZ_EOF
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/zlib/contrib/minizip/unzip.h
      type_or_value: (0)
    - item_type: preproc_def
      name: UNZ_PARAMERROR
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/zlib/contrib/minizip/unzip.h
      type_or_value: (-102)
    - item_type: preproc_def
      name: UNZ_BADZIPFILE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/zlib/contrib/minizip/unzip.h
      type_or_value: (-103)
    - item_type: preproc_def
      name: UNZ_INTERNALERROR
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/zlib/contrib/minizip/unzip.h
      type_or_value: (-104)
    - item_type: preproc_def
      name: UNZ_CRCERROR
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/zlib/contrib/minizip/unzip.h
      type_or_value: (-105)
    structs:
    - fields:
      - name: unused
        type: int
      item_type: struct
      name: TagunzFile__
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/zlib/contrib/minizip/unzip.h
    - fields:
      - name: tm_sec
        type: int
      - name: tm_min
        type: int
      - name: tm_hour
        type: int
      - name: tm_mday
        type: int
      - name: tm_mon
        type: int
      - name: tm_year
        type: int
      item_type: struct
      name: tm_unz_s
      pos:
        line_end: 92
        line_start: 84
        source_file: /src/zlib/contrib/minizip/unzip.h
    - fields:
      - name: number_entry
        type: ZPOS64_T
      - name: size_comment
        type: uLong
      item_type: struct
      name: unz_global_info64_s
      pos:
        line_end: 101
        line_start: 96
        source_file: /src/zlib/contrib/minizip/unzip.h
    - fields:
      - name: number_entry
        type: uLong
      - name: size_comment
        type: uLong
      item_type: struct
      name: unz_global_info_s
      pos:
        line_end: 108
        line_start: 103
        source_file: /src/zlib/contrib/minizip/unzip.h
    - fields:
      - name: version
        type: uLong
      - name: version_needed
        type: uLong
      - name: flag
        type: uLong
      - name: compression_method
        type: uLong
      - name: dosDate
        type: uLong
      - name: crc
        type: uLong
      - name: compressed_size
        type: ZPOS64_T
      - name: uncompressed_size
        type: ZPOS64_T
      - name: size_filename
        type: uLong
      - name: size_file_extra
        type: uLong
      - name: size_file_comment
        type: uLong
      - name: disk_num_start
        type: uLong
      - name: internal_fa
        type: uLong
      - name: external_fa
        type: uLong
      - name: tmu_date
        type: tm_unz
      item_type: struct
      name: unz_file_info64_s
      pos:
        line_end: 130
        line_start: 111
        source_file: /src/zlib/contrib/minizip/unzip.h
    - fields:
      - name: version
        type: uLong
      - name: version_needed
        type: uLong
      - name: flag
        type: uLong
      - name: compression_method
        type: uLong
      - name: dosDate
        type: uLong
      - name: crc
        type: uLong
      - name: compressed_size
        type: uLong
      - name: uncompressed_size
        type: uLong
      - name: size_filename
        type: uLong
      - name: size_file_extra
        type: uLong
      - name: size_file_comment
        type: uLong
      - name: disk_num_start
        type: uLong
      - name: internal_fa
        type: uLong
      - name: external_fa
        type: uLong
      - name: tmu_date
        type: tm_unz
      item_type: struct
      name: unz_file_info_s
      pos:
        line_end: 151
        line_start: 132
        source_file: /src/zlib/contrib/minizip/unzip.h
    - fields:
      - name: pos_in_zip_directory
        type: uLong
      - name: num_of_file
        type: uLong
      item_type: struct
      name: unz_file_pos_s
      pos:
        line_end: 262
        line_start: 258
        source_file: /src/zlib/contrib/minizip/unzip.h
    - fields:
      - name: pos_in_zip_directory
        type: ZPOS64_T
      - name: num_of_file
        type: ZPOS64_T
      item_type: struct
      name: unz64_file_pos_s
      pos:
        line_end: 276
        line_start: 272
        source_file: /src/zlib/contrib/minizip/unzip.h
    typedefs:
    - item_type: typedef
      name: '*unzFile'
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/zlib/contrib/minizip/unzip.h
      type: unzFile__
    - item_type: typedef
      name: unzFile
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/zlib/contrib/minizip/unzip.h
      type: voidp
    union: []
- function_names:
  - READ_8
  - READ_16
  - READ_32
  - WRITE_8
  - WRITE_16
  - WRITE_32
  - unzRepair
  source_file: /src/zlib/contrib/minizip/mztools.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/contrib/minizip/ints.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PI32
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/zlib/contrib/minizip/ints.h
      type_or_value: '"d"'
    - item_type: preproc_def
      name: PUI32
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/zlib/contrib/minizip/ints.h
      type_or_value: '"u"'
    - item_type: preproc_def
      name: PI32
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/zlib/contrib/minizip/ints.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: PUI32
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/zlib/contrib/minizip/ints.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: PI64
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/zlib/contrib/minizip/ints.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: PUI64
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/zlib/contrib/minizip/ints.h
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: PI64
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/zlib/contrib/minizip/ints.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: PUI64
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/zlib/contrib/minizip/ints.h
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: PI64
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/zlib/contrib/minizip/ints.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: PUI64
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/zlib/contrib/minizip/ints.h
      type_or_value: '"llu"'
    structs: []
    typedefs:
    - item_type: typedef
      name: i8_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/zlib/contrib/minizip/ints.h
      type: signed char
    - item_type: typedef
      name: ui8_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/zlib/contrib/minizip/ints.h
      type: unsigned char
    - item_type: typedef
      name: i16_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/zlib/contrib/minizip/ints.h
      type: short
    - item_type: typedef
      name: ui16_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/zlib/contrib/minizip/ints.h
      type: unsigned short
    - item_type: typedef
      name: i16_t
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/zlib/contrib/minizip/ints.h
      type: int
    - item_type: typedef
      name: ui16_t
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/zlib/contrib/minizip/ints.h
      type: unsigned
    - item_type: typedef
      name: i32_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/zlib/contrib/minizip/ints.h
      type: int
    - item_type: typedef
      name: ui32_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/zlib/contrib/minizip/ints.h
      type: unsigned
    - item_type: typedef
      name: i32_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/zlib/contrib/minizip/ints.h
      type: long
    - item_type: typedef
      name: ui32_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/zlib/contrib/minizip/ints.h
      type: unsigned long
    - item_type: typedef
      name: i64_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/zlib/contrib/minizip/ints.h
      type: long
    - item_type: typedef
      name: ui64_t
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/zlib/contrib/minizip/ints.h
      type: unsigned long
    - item_type: typedef
      name: i64_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/zlib/contrib/minizip/ints.h
      type: long long
    - item_type: typedef
      name: ui64_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/zlib/contrib/minizip/ints.h
      type: unsigned long long
    - item_type: typedef
      name: i64_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/zlib/contrib/minizip/ints.h
      type: long long
    - item_type: typedef
      name: ui64_t
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/zlib/contrib/minizip/ints.h
      type: unsigned long long
    union: []
- function_names:
  - set_seed
  - set_uniq
  - set_rand
  - SET_ALLOC_SIZE
  - SET_ALLOC_SIZE
  - SET_ALLOC_SIZE
  - SET_ALLOC_SIZE
  - SET_ALLOC_SIZE
  - SET_ALLOC_SIZE
  - set_alloc
  - set_free
  - set_alloc
  - set_free
  - set_grow
  - set_node
  - set_sweep
  - set_start
  - set_ok
  - set_clear
  - set_end
  - set_found
  - set_insert
  source_file: /src/zlib/contrib/minizip/skipset.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: state
        type: ui64_t
      - name: inc
        type: ui64_t
      item_type: struct
      name: set_rand_t
      pos:
        line_end: 86
        line_start: 83
        source_file: /src/zlib/contrib/minizip/skipset.h
    - fields:
      - name: key
        type: set_key_t
      - name: size
        type: i16_t
      - name: fill
        type: i16_t
      - name: '**right'
        type: set_node_t
      item_type: struct
      name: set_node_s
      pos:
        line_end: 117
        line_start: 112
        source_file: /src/zlib/contrib/minizip/skipset.h
    - fields:
      - name: '*head'
        type: set_node_t
      - name: '*path'
        type: set_node_t
      - name: '*node'
        type: set_node_t
      - name: depth
        type: i16_t
      - name: ran
        type: ui64_t
      - name: gen
        type: set_rand_t
      - name: env
        type: jmp_buf
      item_type: struct
      name: set_s
      pos:
        line_end: 133
        line_start: 121
        source_file: /src/zlib/contrib/minizip/skipset.h
    typedefs:
    - item_type: typedef
      name: set_node_t
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/zlib/contrib/minizip/skipset.h
      type: set_node_s
    union: []
- function_names:
  - FOPEN_FUNC
  - FTELLO_FUNC
  - FSEEKO_FUNC
  - FOPEN_FUNC
  - FTELLO_FUNC
  - FSEEKO_FUNC
  - filetime
  - filetime
  - filetime
  - check_exist_file
  - do_banner
  - do_help
  - getFileCrc
  - isLargeFile
  - main
  source_file: /src/zlib/contrib/minizip/minizip.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _FILE_OFFSET_BIT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/zlib/contrib/minizip/minizip.c
      type_or_value: '64'
    - item_type: preproc_def
      name: WRITEBUFFERSIZE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/zlib/contrib/minizip/minizip.c
      type_or_value: (16384)
    - item_type: preproc_def
      name: MAXFILENAME
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/zlib/contrib/minizip/minizip.c
      type_or_value: (256)
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZREAD64
  - ZWRITE64
  - ZCLOSE64
  - ZERROR64
  - ZOPEN64
  - ZTELL64
  - ZSEEK64
  source_file: /src/zlib/contrib/minizip/ioapi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _FILE_OFFSET_BIT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: '64'
    - item_type: preproc_def
      name: fopen64
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: fopen
    - item_type: preproc_def
      name: ftello64
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: ftell
    - item_type: preproc_def
      name: fseeko64
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: fseek
    - item_type: preproc_def
      name: fopen64
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: fopen
    - item_type: preproc_def
      name: ftello64
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: ftello
    - item_type: preproc_def
      name: fseeko64
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: fseeko
    - item_type: preproc_def
      name: fopen64
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: fopen
    - item_type: preproc_def
      name: ftello64
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: _ftelli64
    - item_type: preproc_def
      name: fseeko64
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: _fseeki64
    - item_type: preproc_def
      name: ftello64
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: ftell
    - item_type: preproc_def
      name: fseeko64
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: fseek
    - item_type: preproc_def
      name: MAXU32
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: (0xffffffff)
    - item_type: preproc_def
      name: ZLIB_FILEFUNC_SEEK_CUR
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: (1)
    - item_type: preproc_def
      name: ZLIB_FILEFUNC_SEEK_END
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: (2)
    - item_type: preproc_def
      name: ZLIB_FILEFUNC_SEEK_SET
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: (0)
    - item_type: preproc_def
      name: ZLIB_FILEFUNC_MODE_READ
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: (1)
    - item_type: preproc_def
      name: ZLIB_FILEFUNC_MODE_WRITE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: (2)
    - item_type: preproc_def
      name: ZLIB_FILEFUNC_MODE_READWRITEFILTER
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: (3)
    - item_type: preproc_def
      name: ZLIB_FILEFUNC_MODE_EXISTING
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: (4)
    - item_type: preproc_def
      name: ZLIB_FILEFUNC_MODE_CREATE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: (8)
    - item_type: preproc_def
      name: ZCALLBACK
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type_or_value: CALLBACK
    structs:
    - fields:
      - name: zopen_file
        type: open_file_func
      - name: zread_file
        type: read_file_func
      - name: zwrite_file
        type: write_file_func
      - name: ztell_file
        type: tell_file_func
      - name: zseek_file
        type: seek_file_func
      - name: zclose_file
        type: close_file_func
      - name: zerror_file
        type: testerror_file_func
      - name: opaque
        type: voidpf
      item_type: struct
      name: zlib_filefunc_def_s
      pos:
        line_end: 130
        line_start: 120
        source_file: /src/zlib/contrib/minizip/ioapi.h
    - fields:
      - name: zopen64_file
        type: open64_file_func
      - name: zread_file
        type: read_file_func
      - name: zwrite_file
        type: write_file_func
      - name: ztell64_file
        type: tell64_file_func
      - name: zseek64_file
        type: seek64_file_func
      - name: zclose_file
        type: close_file_func
      - name: zerror_file
        type: testerror_file_func
      - name: opaque
        type: voidpf
      item_type: struct
      name: zlib_filefunc64_def_s
      pos:
        line_end: 146
        line_start: 136
        source_file: /src/zlib/contrib/minizip/ioapi.h
    - fields:
      - name: zfile_func64
        type: zlib_filefunc64_def
      - name: zopen32_file
        type: open_file_func
      - name: ztell32_file
        type: tell_file_func
      - name: zseek32_file
        type: seek_file_func
      item_type: struct
      name: zlib_filefunc64_32_def_s
      pos:
        line_end: 158
        line_start: 152
        source_file: /src/zlib/contrib/minizip/ioapi.h
    typedefs:
    - item_type: typedef
      name: ZPOS64_T
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: ui64_t
    - item_type: typedef
      name: (ZCALLBACK *open_file_func)      (voidpf opaque, const char* filename,
        int mode)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: voidpf
    - item_type: typedef
      name: (ZCALLBACK *read_file_func)      (voidpf opaque, voidpf stream, void*
        buf, uLong size)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: uLong
    - item_type: typedef
      name: (ZCALLBACK *write_file_func)     (voidpf opaque, voidpf stream, const
        void* buf, uLong size)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: uLong
    - item_type: typedef
      name: (ZCALLBACK *close_file_func)     (voidpf opaque, voidpf stream)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: int
    - item_type: typedef
      name: (ZCALLBACK *testerror_file_func) (voidpf opaque, voidpf stream)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: int
    - item_type: typedef
      name: (ZCALLBACK *tell_file_func)      (voidpf opaque, voidpf stream)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: long
    - item_type: typedef
      name: (ZCALLBACK *seek_file_func)      (voidpf opaque, voidpf stream, uLong
        offset, int origin)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: long
    - item_type: typedef
      name: (ZCALLBACK *tell64_file_func)    (voidpf opaque, voidpf stream)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: ZPOS64_T
    - item_type: typedef
      name: (ZCALLBACK *seek64_file_func)    (voidpf opaque, voidpf stream, ZPOS64_T
        offset, int origin)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: long
    - item_type: typedef
      name: (ZCALLBACK *open64_file_func)    (voidpf opaque, const void* filename,
        int mode)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/zlib/contrib/minizip/ioapi.h
      type: voidpf
    union: []
- function_names:
  - CRC32
  - decrypt_byte
  - update_keys
  - init_keys
  - zdecode
  - zencode
  - crypthead
  source_file: /src/zlib/contrib/minizip/crypt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RAND_HEAD_LEN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/zlib/contrib/minizip/crypt.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ZCR_SEED2
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/zlib/contrib/minizip/crypt.h
      type_or_value: '3141592654UL      '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/contrib/minizip/zip.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Z_BZIP2ED
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ZIP_OK
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: (0)
    - item_type: preproc_def
      name: ZIP_EOF
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: (0)
    - item_type: preproc_def
      name: ZIP_ERRNO
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: (Z_ERRNO)
    - item_type: preproc_def
      name: ZIP_PARAMERROR
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: (-102)
    - item_type: preproc_def
      name: ZIP_BADZIPFILE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: (-103)
    - item_type: preproc_def
      name: ZIP_INTERNALERROR
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: (-104)
    - item_type: preproc_def
      name: DEF_MEM_LEVEL
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DEF_MEM_LEVEL
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: MAX_MEM_LEVEL
    - item_type: preproc_def
      name: APPEND_STATUS_CREATE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: (0)
    - item_type: preproc_def
      name: APPEND_STATUS_CREATEAFTER
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: (1)
    - item_type: preproc_def
      name: APPEND_STATUS_ADDINZIP
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/zlib/contrib/minizip/zip.h
      type_or_value: (2)
    structs:
    - fields:
      - name: unused
        type: int
      item_type: struct
      name: TagzipFile__
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/zlib/contrib/minizip/zip.h
    - fields:
      - name: tm_sec
        type: int
      - name: tm_min
        type: int
      - name: tm_hour
        type: int
      - name: tm_mday
        type: int
      - name: tm_mon
        type: int
      - name: tm_year
        type: int
      item_type: struct
      name: tm_zip_s
      pos:
        line_end: 97
        line_start: 89
        source_file: /src/zlib/contrib/minizip/zip.h
    - fields:
      - name: tmz_date
        type: tm_zip
      - name: dosDate
        type: uLong
      - name: internal_fa
        type: uLong
      - name: external_fa
        type: uLong
      item_type: struct
      name: zip_fileinfo
      pos:
        line_end: 107
        line_start: 99
        source_file: /src/zlib/contrib/minizip/zip.h
    typedefs:
    - item_type: typedef
      name: '*zipFile'
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/zlib/contrib/minizip/zip.h
      type: zipFile__
    - item_type: typedef
      name: zipFile
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/zlib/contrib/minizip/zip.h
      type: voidp
    - item_type: typedef
      name: '* zipcharpc'
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/zlib/contrib/minizip/zip.h
      type: char
    union: []
- function_names:
  - WINAPI_FAMILY_ONE_PARTITION
  - win32_translate_open_mode
  - win32_build_iowin
  - win32_open64_file_func
  - win32_open64_file_funcA
  - win32_open64_file_funcW
  - win32_open_file_func
  - win32_read_file_func
  - win32_write_file_func
  - MySetFilePointerEx
  - win32_tell_file_func
  - win32_tell64_file_func
  - win32_seek_file_func
  - win32_seek64_file_func
  - win32_close_file_func
  - win32_error_file_func
  - fill_win32_filefunc
  - fill_win32_filefunc64
  - fill_win32_filefunc64A
  - fill_win32_filefunc64W
  source_file: /src/zlib/contrib/minizip/iowin32.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVALID_HANDLE_VALUE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/zlib/contrib/minizip/iowin32.c
      type_or_value: (0xFFFFFFFF)
    - item_type: preproc_def
      name: INVALID_SET_FILE_POINTER
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/zlib/contrib/minizip/iowin32.c
      type_or_value: ((DWORD)-1)
    - item_type: preproc_def
      name: IOWIN32_USING_WINRT_API
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/zlib/contrib/minizip/iowin32.c
      type_or_value: '1'
    structs:
    - fields:
      - name: hf
        type: HANDLE
      - name: error
        type: int
      item_type: struct
      name: WIN32FILE_IOWIN
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/zlib/contrib/minizip/iowin32.c
    typedefs: []
    union: []
- function_names:
  - FOPEN_FUNC
  - FTELLO_FUNC
  - FSEEKO_FUNC
  - FOPEN_FUNC
  - FTELLO_FUNC
  - FSEEKO_FUNC
  - call_zopen64
  - call_zseek64
  - call_ztell64
  - fill_zlib_filefunc64_32_def_from_filefunc32
  - fopen_file_func
  - fopen64_file_func
  - fread_file_func
  - fwrite_file_func
  - ftell_file_func
  - ftell64_file_func
  - fseek_file_func
  - fseek64_file_func
  - fclose_file_func
  - ferror_file_func
  - fill_fopen_filefunc
  - fill_fopen64_filefunc
  source_file: /src/zlib/contrib/minizip/ioapi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ALLOC
  - unz64local_getShort
  - unz64local_getLong
  - unz64local_getLong64
  - strcmpcasenosensitive_internal
  - unzStringFileNameCompare
  - unz64local_SearchCentralDir
  - unz64local_SearchCentralDir64
  - unzOpenInternal
  - unzOpen2
  - unzOpen2_64
  - unzOpen
  - unzOpen64
  - unzClose
  - unzGetGlobalInfo64
  - unzGetGlobalInfo
  - unz64local_DosDateToTmuDate
  - unz64local_GetCurrentFileInfoInternal
  - unzGetCurrentFileInfo64
  - unzGetCurrentFileInfo
  - unzGoToFirstFile
  - unzGoToNextFile
  - unzLocateFile
  - unzGetFilePos64
  - unzGetFilePos
  - unzGoToFilePos64
  - unzGoToFilePos
  - unz64local_CheckCurrentFileCoherencyHeader
  - unzOpenCurrentFile3
  - unzOpenCurrentFile
  - unzOpenCurrentFilePassword
  - unzOpenCurrentFile2
  - unzGetCurrentFileZStreamPos64
  - unzReadCurrentFile
  - unztell
  - unztell64
  - unzeof
  - unzGetLocalExtrafield
  - unzCloseCurrentFile
  - unzGetGlobalComment
  - unzGetOffset64
  - unzGetOffset
  - unzSetOffset64
  - unzSetOffset
  source_file: /src/zlib/contrib/minizip/unzip.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/zlib/contrib/minizip/unzip.c
      type_or_value: static
    - item_type: preproc_def
      name: UNZ_BUFSIZE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/zlib/contrib/minizip/unzip.c
      type_or_value: (16384)
    - item_type: preproc_def
      name: UNZ_MAXFILENAMEINZIP
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/zlib/contrib/minizip/unzip.c
      type_or_value: (256)
    - item_type: preproc_def
      name: SIZECENTRALDIRITEM
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/zlib/contrib/minizip/unzip.c
      type_or_value: (0x2e)
    - item_type: preproc_def
      name: SIZEZIPLOCALHEADER
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/zlib/contrib/minizip/unzip.c
      type_or_value: (0x1e)
    - item_type: preproc_def
      name: CASESENSITIVITYDEFAULTVALUE
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/zlib/contrib/minizip/unzip.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CASESENSITIVITYDEFAULTVALUE
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/zlib/contrib/minizip/unzip.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STRCMPCASENOSENTIVEFUNCTION
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/zlib/contrib/minizip/unzip.c
      type_or_value: strcmpcasenosensitive_internal
    - item_type: preproc_def
      name: BUFREADCOMMENT
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/zlib/contrib/minizip/unzip.c
      type_or_value: (0x400)
    - item_type: preproc_def
      name: CENTRALDIRINVALID
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/zlib/contrib/minizip/unzip.c
      type_or_value: ((ZPOS64_T)(-1))
    structs:
    - fields:
      - name: offset_curfile
        type: ZPOS64_T
      item_type: struct
      name: unz_file_info64_internal_s
      pos:
        line_end: 121
        line_start: 118
        source_file: /src/zlib/contrib/minizip/unzip.c
    - fields:
      - name: '*read_buffer'
        type: char
      - name: stream
        type: z_stream
      - name: pos_in_zipfile
        type: ZPOS64_T
      - name: stream_initialised
        type: uLong
      - name: offset_local_extrafield
        type: ZPOS64_T
      - name: size_local_extrafield
        type: uInt
      - name: pos_local_extrafield
        type: ZPOS64_T
      - name: total_out_64
        type: ZPOS64_T
      - name: crc32
        type: uLong
      - name: crc32_wait
        type: uLong
      - name: rest_read_compressed
        type: ZPOS64_T
      - name: rest_read_uncompressed
        type: ZPOS64_T
      - name: z_filefunc
        type: zlib_filefunc64_32_def
      - name: filestream
        type: voidpf
      - name: compression_method
        type: uLong
      - name: byte_before_the_zipfile
        type: ZPOS64_T
      - name: raw
        type: int
      item_type: struct
      name: file_in_zip64_read_info_s
      pos:
        line_end: 152
        line_start: 126
        source_file: /src/zlib/contrib/minizip/unzip.c
    - fields:
      - name: z_filefunc
        type: zlib_filefunc64_32_def
      - name: is64bitOpenFunction
        type: int
      - name: filestream
        type: voidpf
      - name: gi
        type: unz_global_info64
      - name: byte_before_the_zipfile
        type: ZPOS64_T
      - name: num_file
        type: ZPOS64_T
      - name: pos_in_central_dir
        type: ZPOS64_T
      - name: current_file_ok
        type: ZPOS64_T
      - name: central_pos
        type: ZPOS64_T
      - name: size_central_dir
        type: ZPOS64_T
      - name: offset_central_dir
        type: ZPOS64_T
      - name: cur_file_info
        type: unz_file_info64
      - name: cur_file_info_internal
        type: unz_file_info64_internal
      - name: '* pfile_in_zip_read'
        type: file_in_zip64_read_info_s
      - name: encrypted
        type: int
      - name: isZip64
        type: int
      item_type: struct
      name: unz64_s
      pos:
        line_end: 185
        line_start: 157
        source_file: /src/zlib/contrib/minizip/unzip.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/contrib/minizip/iowin32.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ALLOC
  - MAKEULONG64
  - set_cmp
  - set_drop
  - linkedlist_datablock_internal* allocate_new_datablock(void)
  - free_datablock
  - init_linkedlist
  - free_linkedlist
  - add_data_in_datablock
  - block_init
  - block_stop
  - block_end
  - block_get
  - block_get2
  - block_read
  - block_skip
  - block_central_name
  - zipAlreadyThere
  - zip64local_putValue
  - zip64local_putValue_inmemory
  - zip64local_TmzDateToDosDate
  - zip64local_getByte
  - zip64local_getShort
  - zip64local_getLong
  - zip64local_getLong64
  - zip64local_SearchCentralDir
  - zip64local_SearchCentralDir64
  - LoadCentralDirectoryRecord
  - zipOpen3
  - zipOpen2
  - zipOpen2_64
  - zipOpen
  - zipOpen64
  - Write_LocalFileHeader
  - utf8len
  - isutf8
  - zipOpenNewFileInZip4
  - zipOpenNewFileInZip3
  - zipOpenNewFileInZip3_64
  - zipOpenNewFileInZip2
  - zipOpenNewFileInZip2_64
  - zipOpenNewFileInZip64
  - zipOpenNewFileInZip
  - zip64FlushWriteBuffer
  - zipWriteInFileInZip
  - zipCloseFileInZipRaw
  - zipCloseFileInZipRaw64
  - zipCloseFileInZip
  - Write_Zip64EndOfCentralDirectoryLocator
  - Write_Zip64EndOfCentralDirectoryRecord
  - Write_EndOfCentralDirectoryRecord
  - Write_GlobalComment
  - zipClose
  - zipRemoveExtraInfoBlock
  source_file: /src/zlib/contrib/minizip/zip.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: static
    - item_type: preproc_def
      name: VERSIONMADEBY
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: '(0x0) '
    - item_type: preproc_def
      name: Z_BUFSIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: '(64*1024) '
    - item_type: preproc_def
      name: Z_MAXFILENAMEINZIP
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: (256)
    - item_type: preproc_def
      name: SEEK_CUR
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SEEK_END
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SEEK_SET
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEF_MEM_LEVEL
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: '8'
    - item_type: preproc_def
      name: DEF_MEM_LEVEL
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: MAX_MEM_LEVEL
    - item_type: preproc_def
      name: SIZEDATA_INDATABLOCK
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: (4096-(4*4))
    - item_type: preproc_def
      name: LOCALHEADERMAGIC
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: (0x04034b50)
    - item_type: preproc_def
      name: CENTRALHEADERMAGIC
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: (0x02014b50)
    - item_type: preproc_def
      name: ENDHEADERMAGIC
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: (0x06054b50)
    - item_type: preproc_def
      name: ZIP64ENDHEADERMAGIC
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: (0x6064b50)
    - item_type: preproc_def
      name: ZIP64ENDLOCHEADERMAGIC
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: (0x7064b50)
    - item_type: preproc_def
      name: FLAG_LOCALHEADER_OFFSET
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: (0x06)
    - item_type: preproc_def
      name: CRC_LOCALHEADER_OFFSET
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: (0x0e)
    - item_type: preproc_def
      name: SIZECENTRALHEADER
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: '(0x2e) '
    - item_type: preproc_def
      name: SKIPSET_EXPORT
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: static
    - item_type: preproc_def
      name: BUFREADCOMMENT
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/zlib/contrib/minizip/zip.c
      type_or_value: (0x400)
    structs:
    - fields:
      - name: '* next_datablock'
        type: struct linkedlist_datablock_internal_s
      - name: avail_in_this_block
        type: uLong
      - name: filled_in_this_block
        type: uLong
      - name: unused
        type: uLong
      - name: data[SIZEDATA_INDATABLOCK]
        type: unsigned char
      item_type: struct
      name: linkedlist_datablock_internal_s
      pos:
        line_end: 120
        line_start: 113
        source_file: /src/zlib/contrib/minizip/zip.c
    - fields:
      - name: '* first_block'
        type: linkedlist_datablock_internal
      - name: '* last_block'
        type: linkedlist_datablock_internal
      item_type: struct
      name: linkedlist_data_s
      pos:
        line_end: 126
        line_start: 122
        source_file: /src/zlib/contrib/minizip/zip.c
    - fields:
      - name: '*next'
        type: unsigned char
      - name: left
        type: size_t
      - name: '*node'
        type: linkedlist_datablock_internal
      item_type: struct
      name: block_t
      pos:
        line_end: 140
        line_start: 136
        source_file: /src/zlib/contrib/minizip/zip.c
    - fields:
      - name: stream
        type: z_stream
      - name: stream_initialised
        type: int
      - name: pos_in_buffered_data
        type: uInt
      - name: pos_local_header
        type: ZPOS64_T
      - name: '* central_header'
        type: char
      - name: size_centralExtra
        type: uLong
      - name: size_centralheader
        type: uLong
      - name: size_centralExtraFree
        type: uLong
      - name: flag
        type: uLong
      - name: method
        type: int
      - name: raw
        type: int
      - name: buffered_data[Z_BUFSIZE]
        type: Byte
      - name: dosDate
        type: uLong
      - name: crc32
        type: uLong
      - name: encrypt
        type: int
      - name: zip64
        type: int
      - name: pos_zip64extrainfo
        type: ZPOS64_T
      - name: totalCompressedData
        type: ZPOS64_T
      - name: totalUncompressedData
        type: ZPOS64_T
      item_type: struct
      name: curfile64_info
      pos:
        line_end: 176
        line_start: 143
        source_file: /src/zlib/contrib/minizip/zip.c
    - fields:
      - name: z_filefunc
        type: zlib_filefunc64_32_def
      - name: filestream
        type: voidpf
      - name: central_dir
        type: linkedlist_data
      - name: in_opened_file_inzip
        type: int
      - name: ci
        type: curfile64_info
      - name: begin_pos
        type: ZPOS64_T
      - name: add_position_when_writing_offset
        type: ZPOS64_T
      - name: number_entry
        type: ZPOS64_T
      - name: set
        type: set_t
      - name: block
        type: block_t
      item_type: struct
      name: zip64_internal
      pos:
        line_end: 198
        line_start: 178
        source_file: /src/zlib/contrib/minizip/zip.c
    typedefs:
    - item_type: typedef
      name: '*set_key_t'
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/zlib/contrib/minizip/zip.c
      type: char
    union: []
- function_names: []
  source_file: /src/zlib/contrib/minizip/mztools.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FOPEN_FUNC
  - FTELLO_FUNC
  - FSEEKO_FUNC
  - FOPEN_FUNC
  - FTELLO_FUNC
  - FSEEKO_FUNC
  - change_file_date
  - mymkdir
  - makedir
  - do_banner
  - do_help
  - Display64BitsSize
  - do_list
  - do_extract_currentfile
  - do_extract
  - do_extract_onefile
  - main
  source_file: /src/zlib/contrib/minizip/miniunz.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _FILE_OFFSET_BIT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/zlib/contrib/minizip/miniunz.c
      type_or_value: '64'
    - item_type: preproc_def
      name: CASESENSITIVITY
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/zlib/contrib/minizip/miniunz.c
      type_or_value: (0)
    - item_type: preproc_def
      name: WRITEBUFFERSIZE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/zlib/contrib/minizip/miniunz.c
      type_or_value: (8192)
    - item_type: preproc_def
      name: MAXFILENAME
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/zlib/contrib/minizip/miniunz.c
      type_or_value: (256)
    structs: []
    typedefs: []
    union: []
- function_names:
  - inf
  - outf
  - main
  source_file: /src/zlib/contrib/blast/blast-test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHUNK
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/zlib/contrib/blast/blast-test.c
      type_or_value: '16384'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/zlib/contrib/blast/blast.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: local
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/zlib/contrib/blast/blast.h
      type_or_value: 'static            '
    structs: []
    typedefs:
    - item_type: typedef
      name: (*blast_in)(void *how, unsigned char **buf)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/zlib/contrib/blast/blast.h
      type: unsigned
    - item_type: typedef
      name: (*blast_out)(void *how, unsigned char *buf, unsigned len)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/zlib/contrib/blast/blast.h
      type: int
    union: []
- function_names:
  - bits
  - decode
  - construct
  - decomp
  - blast
  source_file: /src/zlib/contrib/blast/blast.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXBITS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/zlib/contrib/blast/blast.c
      type_or_value: '13              '
    - item_type: preproc_def
      name: MAXWIN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/zlib/contrib/blast/blast.c
      type_or_value: '4096             '
    structs:
    - fields:
      - name: infun
        type: blast_in
      - name: '*inhow'
        type: void
      - name: '*in'
        type: unsigned char
      - name: left
        type: unsigned
      - name: bitbuf
        type: int
      - name: bitcnt
        type: int
      - name: env
        type: jmp_buf
      - name: outfun
        type: blast_out
      - name: '*outhow'
        type: void
      - name: next
        type: unsigned
      - name: first
        type: int
      - name: out[MAXWIN]
        type: unsigned char
      item_type: struct
      name: state
      pos:
        line_end: 57
        line_start: 39
        source_file: /src/zlib/contrib/blast/blast.c
    - fields:
      - name: '*count'
        type: short
      - name: '*symbol'
        type: short
      item_type: struct
      name: huffman
      pos:
        line_end: 104
        line_start: 101
        source_file: /src/zlib/contrib/blast/blast.c
    typedefs: []
    union: []
- function_names:
  - should_break
  - diffcore_break
  - merge_broken
  - diffcore_merge_broken
  source_file: /src/git/diffcore-break.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - short_commit_name
  - peel_committish
  - get_author
  - generate_revert_message
  - create_commit
  - get_ref_information
  - set_up_branch_mode
  - set_up_replay_mode
  - mapped_commit
  - pick_regular_commit
  - replay_result_release
  - replay_result_queue_update
  - replay_revisions
  source_file: /src/git/replay.c
  types:
    enum:
    - enumerators:
      - name: REPLAY_MODE_PICK
      - name: REPLAY_MODE_REVERT
      item_type: enum
      name: replay_mode
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/git/replay.c
    preproc_defs:
    - item_type: preproc_def
      name: the_repository
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/replay.c
      type_or_value: DO_NOT_USE_THE_REPOSITORY
    structs:
    - fields:
      - name: '*onto'
        type: struct commit
      - name: positive_refs
        type: struct strset
      - name: negative_refs
        type: struct strset
      - name: positive_refexprs
        type: size_t
      - name: negative_refexprs
        type: size_t
      item_type: struct
      name: ref_info
      pos:
        line_end: 134
        line_start: 128
        source_file: /src/git/replay.c
    typedefs: []
    union: []
- function_names:
  - LIST_HEAD
  - INIT_LIST_HEAD
  - LIST_HEAD_INIT
  - list_add
  - list_add_tail
  - __list_del
  - list_del
  - list_del_init
  - list_move
  - list_replace
  - list_splice
  - list_entry
  - list_first_entry
  - list_for_each
  - list_for_each_safe
  - list_for_each_prev
  - list_for_each_prev_safe
  - list_empty
  - list_replace_init
  - VOLATILE_LIST_HEAD
  - __volatile_list_del
  - volatile_list_del
  - volatile_list_empty
  - volatile_list_add
  source_file: /src/git/list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIST_H
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/list.h
      type_or_value: '1'
    structs:
    - fields:
      - name: '*next'
        type: struct list_head
      item_type: struct
      name: list_head
      pos:
        line_end: 36
        line_start: 34
        source_file: /src/git/list.h
    - fields:
      - name: '*next'
        type: struct volatile_list_head
      item_type: struct
      name: volatile_list_head
      pos:
        line_end: 175
        line_start: 173
        source_file: /src/git/list.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/for-each-ref.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMMON_USAGE_FOR_EACH_REF
      pos:
        line_end: 18
        line_start: 10
        source_file: /src/git/for-each-ref.h
      type_or_value: "\"[--count=<count>] [--shell|--perl|--python|--tcl]\\n\" \\\n\t\"
        \                        [(--sort=<key>)...] [--format=<format>]\\n\" \\\n\t\"
        \                        [--include-root-refs] [--points-at=<object>]\\n\"
        \\\n\t\"                         [--merged[=<object>]] [--no-merged[=<object>]]\\n\"
        \\\n\t\"                         [--contains[=<object>]] [--no-contains[=<object>]]\\n\"
        \\\n\t\"                         [(--exclude=<pattern>)...] [--start-after=<marker>]\\n\"
        \\\n\t\"                         [ --stdin | (<pattern>...)]\""
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/send-pack.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEND_PACK_PUSH_CERT_NEVER
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/send-pack.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SEND_PACK_PUSH_CERT_IF_ASKED
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/send-pack.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEND_PACK_PUSH_CERT_ALWAYS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/send-pack.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ERROR_SEND_PACK_BAD_REF_STATUS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/send-pack.h
      type_or_value: '1'
    structs:
    - fields:
      - name: '*url'
        type: char
      - name: '*negotiation_include'
        type: struct string_list
      - name: '*negotiation_restrict'
        type: struct string_list
      - name: verbose
        type: unsigned
      - name: '*push_options'
        type: struct string_list
      item_type: struct
      name: send_pack_args
      pos:
        line_end: 37
        line_start: 18
        source_file: /src/git/send-pack.h
    typedefs: []
    union: []
- function_names:
  - config_error_nonbool
  - LOOKUP_CONFIG
  source_file: /src/git/config.h
  types:
    enum:
    - enumerators:
      - name: CONFIG_SCOPE_UNKNOWN
        value: '0'
      - name: CONFIG_SCOPE_GLOBAL
      - name: CONFIG_SCOPE_SYSTEM
      - name: CONFIG_SCOPE_LOCAL
      - name: CONFIG_SCOPE_WORKTREE
      - name: CONFIG_SCOPE_COMMAND
      - name: CONFIG_SCOPE_SUBMODULE
      item_type: enum
      name: config_scope
      pos:
        line_end: 46
        line_start: 38
        source_file: /src/git/config.h
    - enumerators:
      - name: CONFIG_ORIGIN_UNKNOWN
        value: '0'
      - name: CONFIG_ORIGIN_SUBMODULE_BLOB
      - name: CONFIG_ORIGIN_STDIN
      - name: CONFIG_ORIGIN_FILE
      - name: CONFIG_ORIGIN_BLOB
      - name: CONFIG_ORIGIN_CMDLINE
      item_type: enum
      name: config_origin_type
      pos:
        line_end: 63
        line_start: 56
        source_file: /src/git/config.h
    - enumerators:
      - name: CONFIG_EVENT_SECTION
      - name: CONFIG_EVENT_COMMENT
      - name: CONFIG_EVENT_WHITESPACE
      - name: CONFIG_EVENT_ENTRY
      - name: CONFIG_EVENT_EOF
      - name: CONFIG_EVENT_ERROR
      item_type: enum
      name: config_event_t
      pos:
        line_end: 72
        line_start: 65
        source_file: /src/git/config.h
    - enumerators:
      - name: CONFIG_ERROR_UNSET
        value: '0'
      - name: CONFIG_ERROR_DIE
      - name: CONFIG_ERROR_ERROR
      - name: CONFIG_ERROR_SILENT
      item_type: enum
      name: config_error_action
      pos:
        line_end: 115
        line_start: 110
        source_file: /src/git/config.h
    preproc_defs:
    - item_type: preproc_def
      name: CONFIG_INVALID_KEY
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONFIG_NO_SECTION_OR_NAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/config.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CONFIG_NO_LOCK
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/config.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: CONFIG_INVALID_FILE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/config.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CONFIG_NO_WRITE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/config.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CONFIG_NOTHING_SET
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/config.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CONFIG_INVALID_PATTERN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/config.h
      type_or_value: '6'
    - item_type: preproc_def
      name: CONFIG_GENERIC_ERROR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/config.h
      type_or_value: '7'
    - item_type: preproc_def
      name: CONFIG_REGEX_NONE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/config.h
      type_or_value: ((void *)1)
    - item_type: preproc_def
      name: KVI_INIT
      pos:
        line_end: 131
        line_start: 125
        source_file: /src/git/config.h
      type_or_value: "{ \\\n\t.filename = NULL, \\\n\t.linenr = -1, \\\n\t.origin_type
        = CONFIG_ORIGIN_UNKNOWN, \\\n\t.scope = CONFIG_SCOPE_UNKNOWN, \\\n}"
    - item_type: preproc_def
      name: CONFIG_CONTEXT_INIT
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/git/config.h
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: CONFIG_FLAGS_MULTI_REPLACE
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/git/config.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CONFIG_FLAGS_FIXED_VALUE
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/git/config.h
      type_or_value: (1 << 1)
    structs:
    - fields:
      - name: use_stdin
        type: unsigned int
      - name: '*file'
        type: char
      - name: '*blob'
        type: char
      - name: scope
        type: enum config_scope
      item_type: struct
      name: git_config_source
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/git/config.h
    - fields:
      - name: respect_includes
        type: unsigned int
      - name: ignore_repo
        type: unsigned int
      - name: ignore_worktree
        type: unsigned int
      - name: ignore_cmdline
        type: unsigned int
      - name: system_gently
        type: unsigned int
      - name: unconditional_remote_url
        type: unsigned int
      - name: '*commondir'
        type: char
      - name: '*git_dir'
        type: char
      - name: event_fn
        type: config_parser_event_fn_t
      - name: '*event_fn_data'
        type: void
      - name: error_action
        type: "enum config_error_action {\n\t\tCONFIG_ERROR_UNSET = 0, /* use source-specific
          default */\n\t\tCONFIG_ERROR_DIE, /* die() on error */\n\t\tCONFIG_ERROR_ERROR,
          /* error() on error, return -1 */\n\t\tCONFIG_ERROR_SILENT, /* return -1
          */\n\t}"
      item_type: struct
      name: config_options
      pos:
        line_end: 116
        line_start: 87
        source_file: /src/git/config.h
    - fields:
      - name: '*filename'
        type: char
      - name: linenr
        type: int
      - name: origin_type
        type: enum config_origin_type
      - name: scope
        type: enum config_scope
      item_type: struct
      name: key_value_info
      pos:
        line_end: 124
        line_start: 119
        source_file: /src/git/config.h
    - fields:
      - name: '*kvi'
        type: struct key_value_info
      item_type: struct
      name: config_context
      pos:
        line_end: 136
        line_start: 133
        source_file: /src/git/config.h
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*key'
        type: char
      - name: value_list
        type: struct string_list
      item_type: struct
      name: config_set_element
      pos:
        line_end: 472
        line_start: 468
        source_file: /src/git/config.h
    - fields:
      - name: '*e'
        type: struct config_set_element
      - name: value_index
        type: int
      item_type: struct
      name: configset_list_item
      pos:
        line_end: 477
        line_start: 474
        source_file: /src/git/config.h
    - fields:
      - name: '*items'
        type: struct configset_list_item
      - name: nr
        type: unsigned int
      item_type: struct
      name: configset_list
      pos:
        line_end: 488
        line_start: 485
        source_file: /src/git/config.h
    - fields:
      - name: config_hash
        type: struct hashmap
      - name: hash_initialized
        type: int
      - name: list
        type: struct configset_list
      item_type: struct
      name: config_set
      pos:
        line_end: 494
        line_start: 490
        source_file: /src/git/config.h
    typedefs:
    - item_type: typedef
      name: "(*config_parser_event_fn_t)(enum config_event_t type,\n\t\t\t\t\tsize_t
        begin_offset, size_t end_offset,\n\t\t\t\t\tstruct config_source *cs,\n\t\t\t\t\tvoid
        *event_fn_data)"
      pos:
        line_end: 85
        line_start: 82
        source_file: /src/git/config.h
      type: int
    - item_type: typedef
      name: "(*config_fn_t)(const char *, const char *,\n\t\t\t   const struct config_context
        *, void *)"
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/git/config.h
      type: int
    union: []
- function_names:
  - find_ref_storage_backend
  - ref_storage_format_by_name
  - ref_storage_format_to_name
  - update_ref_namespace
  - check_refname_component
  - check_or_sanitize_refname
  - check_refname_format
  - refs_fsck_ref
  - refs_fsck_symref
  - refs_fsck
  - sanitize_refname_component
  - refname_is_safe
  - ref_resolves_to_object
  - refs_resolve_refdup
  - refs_read_ref_full
  - refs_read_ref
  - refs_ref_exists
  - for_each_filter_refs
  - warn_if_dangling_symref
  - refs_warn_dangling_symrefs
  - refs_for_each_tag_ref
  - refs_for_each_branch_ref
  - refs_for_each_remote_ref
  - refs_head_ref_namespaced
  - normalize_glob_ref
  - prettify_refname
  - refname_match
  - expand_ref_prefix
  - repo_default_branch_name
  - substitute_branch_name
  - copy_branchname
  - check_branch_ref
  - check_tag_ref
  - repo_dwim_ref
  - expand_ref
  - repo_dwim_log
  - is_per_worktree_ref
  - is_pseudo_ref
  - is_root_ref_syntax
  - is_root_ref
  - is_current_worktree_ref
  - parse_worktree_ref
  - get_files_ref_lock_timeout_ms
  - refs_delete_ref
  - copy_reflog_msg
  - normalize_reflog_message
  - should_autocreate_reflog
  - is_branch
  - set_read_ref_cutoffs
  - read_ref_at_ent
  - read_ref_at_ent_oldest
  - read_ref_at
  - ref_store_transaction_begin
  - ref_transaction_free
  - ref_transaction_maybe_set_rejected
  - ref_transaction_add_update
  - transaction_refname_valid
  - ref_transaction_update
  - ref_transaction_update_reflog
  - ref_transaction_create
  - ref_transaction_delete
  - ref_transaction_verify
  - refs_update_ref
  - match_parse_rule
  - refs_shorten_unambiguous_ref
  - parse_hide_refs_config
  - ref_is_hidden
  - hidden_refs_to_excludes
  - get_namespaced_exclude_patterns
  - find_descendant_ref
  - refs_head_ref
  - refs_ref_iterator_begin
  - refs_for_each_ref_ext
  - refs_for_each_ref
  - refs_for_each_replace_ref
  - qsort_strcmp
  - find_longest_prefixes_1
  - find_longest_prefixes
  - refs_for_each_ref_in_prefixes
  - refs_read_special_head
  - refs_read_raw_ref
  - refs_read_symbolic_ref
  - refs_resolve_ref_unsafe
  - refs_create_refdir_stubs
  - ref_store_create_on_disk
  - ref_store_remove_on_disk
  - repo_resolve_gitlink_ref
  - lookup_ref_store_map
  - ref_store_init
  - ref_store_release
  - get_main_ref_store
  - register_ref_store_map
  - repo_get_submodule_ref_store
  - get_worktree_ref_store
  - base_ref_store_init
  - refs_optimize
  - refs_optimize_required
  - reference_get_peeled_oid
  - refs_update_symref
  - refs_update_symref_extended
  - ref_update_reject_duplicates
  - transaction_hook_feed_stdin
  - transaction_feed_cb_data_alloc
  - transaction_feed_cb_data_free
  - run_transaction_hook
  - ref_transaction_prepare
  - ref_transaction_abort
  - ref_transaction_commit
  - refs_verify_refnames_available
  - for_each_string_list_item
  - refs_verify_refname_available
  - do_for_each_reflog_helper
  - refs_for_each_reflog
  - refs_for_each_reflog_ent_reverse
  - refs_for_each_reflog_ent
  - refs_reflog_exists
  - refs_create_reflog
  - refs_delete_reflog
  - refs_reflog_expire
  - ref_transaction_for_each_queued_update
  - ref_transaction_for_each_rejected_update
  - refs_delete_refs
  - for_each_string_list_item
  - refs_rename_ref
  - refs_copy_existing_ref
  - ref_update_original_update_refname
  - ref_update_has_null_new_value
  - ref_update_check_old_target
  - migrate_one_ref
  - migrate_one_reflog_entry
  - migrate_one_reflog
  - move_files
  - has_worktrees
  - repo_migrate_ref_storage_format
  - ref_update_expects_existing_old_ref
  - ref_transaction_error_msg
  - refs_compute_filesystem_location
  source_file: /src/git/refs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_REV_PARSE_RULES
      pos:
        line_end: 631
        line_start: 630
        source_file: /src/git/refs.c
      type_or_value: (ARRAY_SIZE(ref_rev_parse_rules) - 1)
    structs:
    - fields:
      - name: '*pattern'
        type: char
      - name: trim_prefix
        type: size_t
      - name: '*fn'
        type: refs_for_each_cb
      - name: '*cb_data'
        type: void
      item_type: struct
      name: for_each_ref_filter
      pos:
        line_end: 451
        line_start: 446
        source_file: /src/git/refs.c
    - fields:
      - name: '*refs'
        type: struct ref_store
      - name: '*fp'
        type: FILE
      - name: '*refnames'
        type: struct string_list
      - name: '*indent'
        type: char
      - name: dry_run
        type: int
      item_type: struct
      name: warn_if_dangling_data
      pos:
        line_end: 496
        line_start: 490
        source_file: /src/git/refs.c
    - fields:
      - name: at_time
        type: timestamp_t
      - name: cnt
        type: int
      - name: reccnt
        type: int
      - name: '*oid'
        type: struct object_id
      - name: found_it
        type: int
      - name: ooid
        type: struct object_id
      - name: noid
        type: struct object_id
      - name: tz
        type: int
      - name: date
        type: timestamp_t
      - name: '**msg'
        type: char
      - name: '*cutoff_time'
        type: timestamp_t
      - name: '*cutoff_tz'
        type: int
      - name: '*cutoff_cnt'
        type: int
      item_type: struct
      name: read_ref_at_cb
      pos:
        line_end: 1090
        line_start: 1075
        source_file: /src/git/refs.c
    - fields:
      - name: index
        type: size_t
      - name: buf
        type: struct strbuf
      item_type: struct
      name: transaction_feed_cb_data
      pos:
        line_end: 2584
        line_start: 2581
        source_file: /src/git/refs.c
    - fields:
      - name: '*fn'
        type: each_reflog_fn
      - name: '*cb_data'
        type: void
      item_type: struct
      name: do_for_each_reflog_help
      pos:
        line_end: 2958
        line_start: 2955
        source_file: /src/git/refs.c
    - fields:
      - name: '*old_refs'
        type: struct ref_store
      - name: '*transaction'
        type: struct ref_transaction
      - name: '*errbuf'
        type: struct strbuf
      - name: sb
        type: struct strbuf
      - name: index
        type: uint64_t
      item_type: struct
      name: migration_data
      pos:
        line_end: 3177
        line_start: 3171
        source_file: /src/git/refs.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/merge-blobs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tm_to_time_t
  - gm_time_t
  - time_to_tm
  - time_to_tm_local
  - local_time_tzoffset
  - local_tzoffset
  - get_time
  - match_string
  - skip_alpha
  - match_alpha
  - set_date
  - set_time
  - is_date_known
  - match_multi_number
  - nodate
  - maybeiso8601
  - match_digit
  - match_tz
  - date_string
  - match_object_header_date
  - parse_date_basic
  - parse_expiry_date
  - parse_date
  - parse_date_type
  - parse_date_format
  - date_mode_release
  - datestamp
  - update_tm
  - pending_number
  - date_now
  - date_yesterday
  - date_time
  - date_midnight
  - date_noon
  - date_tea
  - date_pm
  - date_am
  - date_never
  - approxidate_alpha
  - approxidate_digit
  - approxidate_str
  - approxidate_careful
  - date_overflows
  source_file: /src/git/date.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: year
        type: unsigned int
      item_type: struct
      name: hide = { 0 }
      pos:
        line_end: 229
        line_start: 222
        source_file: /src/git/date.c
    - fields:
      - name: '*name'
        type: char
      - name: offset
        type: int
      - name: dst
        type: int
      item_type: struct
      name: "timezone_names[] = {\n\t{ \"IDLW\", -12, 0, },\t/* International Date
        Line West */\n\t{ \"NT\",   -11, 0, },\t/* Nome */\n\t{ \"CAT\",  -10, 0,
        },\t/* Central Alaska */\n\t{ \"HST\",  -10, 0, },\t/* Hawaii Standard */\n\t{
        \"HDT\",  -10, 1, },\t/* Hawaii Daylight */\n\t{ \"YST\",   -9, 0, },\t/*
        Yukon Standard */\n\t{ \"YDT\",   -9, 1, },\t/* Yukon Daylight */\n\t{ \"PST\",
        \  -8, 0, },\t/* Pacific Standard */\n\t{ \"PDT\",   -8, 1, },\t/* Pacific
        Daylight */\n\t{ \"MST\",   -7, 0, },\t/* Mountain Standard */\n\t{ \"MDT\",
        \  -7, 1, },\t/* Mountain Daylight */\n\t{ \"CST\",   -6, 0, },\t/* Central
        Standard */\n\t{ \"CDT\",   -6, 1, },\t/* Central Daylight */\n\t{ \"EST\",
        \  -5, 0, },\t/* Eastern Standard */\n\t{ \"EDT\",   -5, 1, },\t/* Eastern
        Daylight */\n\t{ \"AST\",   -3, 0, },\t/* Atlantic Standard */\n\t{ \"ADT\",
        \  -3, 1, },\t/* Atlantic Daylight */\n\t{ \"WAT\",   -1, 0, },\t/* West Africa
        */\n\n\t{ \"GMT\",    0, 0, },\t/* Greenwich Mean */\n\t{ \"UTC\",    0, 0,
        },\t/* Universal (Coordinated) */\n\t{ \"Z\",      0, 0, },    /* Zulu, alias
        for UTC */\n\n\t{ \"WET\",    0, 0, },\t/* Western European */\n\t{ \"BST\",
        \   0, 1, },\t/* British Summer */\n\t{ \"CET\",   +1, 0, },\t/* Central European
        */\n\t{ \"MET\",   +1, 0, },\t/* Middle European */\n\t{ \"MEWT\",  +1, 0,
        },\t/* Middle European Winter */\n\t{ \"MEST\",  +1, 1, },\t/* Middle European
        Summer */\n\t{ \"CEST\",  +1, 1, },\t/* Central European Summer */\n\t{ \"MESZ\",
        \ +1, 1, },\t/* Middle European Summer */\n\t{ \"FWT\",   +1, 0, },\t/* French
        Winter */\n\t{ \"FST\",   +1, 1, },\t/* French Summer */\n\t{ \"EET\",   +2,
        0, },\t/* Eastern Europe, USSR Zone 1 */\n\t{ \"EEST\",  +2, 1, },\t/* Eastern
        European Daylight */\n\t{ \"WAST\",  +7, 0, },\t/* West Australian Standard
        */\n\t{ \"WADT\",  +7, 1, },\t/* West Australian Daylight */\n\t{ \"CCT\",
        \  +8, 0, },\t/* China Coast, USSR Zone 7 */\n\t{ \"JST\",   +9, 0, },\t/*
        Japan Standard, USSR Zone 8 */\n\t{ \"EAST\", +10, 0, },\t/* Eastern Australian
        Standard */\n\t{ \"EADT\", +10, 1, },\t/* Eastern Australian Daylight */\n\t{
        \"GST\",  +10, 0, },\t/* Guam Standard, USSR Zone 9 */\n\t{ \"NZT\",  +12,
        0, },\t/* New Zealand */\n\t{ \"NZST\", +12, 0, },\t/* New Zealand Standard
        */\n\t{ \"NZDT\", +12, 1, },\t/* New Zealand Daylight */\n\t{ \"IDLE\", +12,
        0, },\t/* International Date Line East */\n}"
      pos:
        line_end: 381
        line_start: 377
        source_file: /src/git/date.c
    - fields:
      - name: '*name'
        type: char
      - name: (*fn)(struct tm *, struct tm *, int *)
        type: void
      item_type: struct
      name: special
      pos:
        line_end: 1197
        line_start: 1194
        source_file: /src/git/date.c
    - fields:
      - name: '*type'
        type: char
      - name: length
        type: int
      item_type: struct
      name: typelen
      pos:
        line_end: 1217
        line_start: 1214
        source_file: /src/git/date.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/worktree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WT_VALIDATE_WORKTREE_MISSING_OK
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/git/worktree.h
      type_or_value: (1 << 0)
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*path'
        type: char
      - name: '*id'
        type: char
      - name: '*head_ref'
        type: char
      - name: '*lock_reason'
        type: char
      - name: '*prune_reason'
        type: char
      - name: head_oid
        type: struct object_id
      - name: is_detached
        type: int
      - name: is_bare
        type: int
      - name: is_current
        type: int
      - name: lock_reason_valid
        type: int
      - name: prune_reason_valid
        type: int
      item_type: struct
      name: worktree
      pos:
        line_end: 21
        line_start: 7
        source_file: /src/git/worktree.h
    typedefs:
    - item_type: typedef
      name: "(* worktree_repair_fn)(int iserr, const char *path,\n\t\t\t\t    const
        char *msg, void *cb_data)"
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/git/worktree.h
      type: void
    union: []
- function_names: []
  source_file: /src/git/unicode-width.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bitmap_writer_nr_selected_commits
  - bitmap_writer_init
  - free_pseudo_merge_commit_idx
  - pseudo_merge_group_release_cb
  - bitmap_writer_free
  - bitmap_writer_show_progress
  - bitmap_writer_build_type_index
  - bitmap_writer_has_bitmapped_object_id
  - bitmap_writer_push_commit
  - find_object_pos
  - compute_xor_offsets
  - clear_bb_commit
  - bitmap_builder_init
  - bitmap_builder_clear
  - fill_bitmap_tree
  - fill_bitmap_commit
  - store_selected
  - bitmap_writer_build
  - next_commit_index
  - date_compare
  - bitmap_writer_select_commits
  - hashwrite_ewah_helper
  - dump_bitmap
  - oid_access
  - write_selected_commits_v1
  - pseudo_merge_commit_pos_cmp
  - write_pseudo_merges
  - table_cmp
  - write_lookup_table
  - write_hash_cache
  - bitmap_writer_set_checksum
  - bitmap_writer_finish
  source_file: /src/git/pack-bitmap-write.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*commit'
        type: struct commit
      - name: '*bitmap'
        type: struct ewah_bitmap
      - name: '*write_as'
        type: struct ewah_bitmap
      - name: flags
        type: int
      - name: xor_offset
        type: int
      - name: commit_pos
        type: uint32_t
      - name: pseudo_merge
        type: unsigned
      item_type: struct
      name: bitmapped_commit
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/git/pack-bitmap-write.c
    - fields:
      - name: '*reverse_edges'
        type: struct commit_list
      - name: '*commit_mask'
        type: struct bitmap
      - name: '*bitmap'
        type: struct bitmap
      - name: selected
        type: unsigned
      - name: idx
        type: unsigned
      item_type: struct
      name: bb_commit
      pos:
        line_end: 304
        line_start: 296
        source_file: /src/git/pack-bitmap-write.c
    - fields:
      - name: data
        type: struct bb_data
      - name: commits
        type: struct commit_stack
      item_type: struct
      name: bitmap_builder
      pos:
        line_end: 318
        line_start: 315
        source_file: /src/git/pack-bitmap-write.c
    typedefs: []
    union: []
- function_names:
  - readdir_skip_dot_and_dotdot
  - for_each_file_in_dir
  - count_slashes
  - git_fspathcmp
  - fspatheq
  - git_fspathncmp
  - paths_collide
  - fspathhash
  - git_fnmatch
  - fnmatch_icase_mem
  - common_prefix_len
  - common_prefix
  - fill_directory
  - within_depth
  - do_read_blob
  - match_pathspec_item
  - do_match_pathspec
  - match_pathspec_with_flags
  - match_pathspec
  - match_leading_pathspec
  - submodule_path_match
  - report_path_error
  - simple_length
  - no_wildcard
  - parse_path_pattern
  - pl_hashmap_cmp
  - dup_and_filter_pattern
  - clear_pattern_entry_hashmap
  - add_pattern_to_hashsets
  - hashmap_contains_path
  - hashmap_contains_parent
  - add_pattern
  - read_skip_worktree_file_from_index
  - clear_pattern_list
  - trim_trailing_spaces
  - lookup_untracked
  - do_invalidate_gitignore
  - invalidate_gitignore
  - invalidate_directory
  - add_patterns
  - add_patterns_from_buffer
  - add_patterns_from_file_to_list
  - add_patterns_from_blob_to_list
  - add_pattern_list
  - add_patterns_from_file_1
  - add_patterns_from_file
  - match_basename
  - match_pathname
  - last_matching_pattern_from_list
  - path_matches_pattern_list
  - init_sparse_checkout_patterns
  - path_in_sparse_checkout_1
  - path_in_sparse_checkout
  - path_in_cone_mode_sparse_checkout
  - last_matching_pattern_from_lists
  - prep_exclude
  - last_matching_pattern
  - is_excluded
  - dir_entry_new
  - dir_add_name
  - dir_add_ignored
  - directory_exists_in_index_icase
  - directory_exists_in_index
  - treat_directory
  - simplify_away
  - exclude_matches_pathspec
  - get_index_dtype
  - get_dtype
  - resolve_dtype
  - treat_path_fast
  - treat_path
  - add_untracked
  - valid_cached_dir
  - open_cached_dir
  - read_cached_dir
  - close_cached_dir
  - add_path_to_appropriate_result_list
  - read_directory_recursive
  - cmp_dir_entry
  - check_dir_entry_contains
  - treat_leading_path
  - get_ident_string
  - ident_in_untracked
  - set_untracked_ident
  - new_untracked_cache_flags
  - new_untracked_cache
  - add_untracked_cache
  - remove_untracked_cache
  - validate_untracked_cache
  - emit_traversal_statistics
  - read_directory
  - file_exists
  - repo_file_exists
  - cmp_icase
  - dir_inside_of
  - is_inside_dir
  - is_empty_dir
  - git_url_basename
  - strip_dir_trailing_slashes
  - remove_dir_recurse
  - remove_dir_recursively
  - GIT_PATH_FUNC
  - get_sparse_checkout_filename
  - get_sparse_checkout_patterns
  - remove_path
  - dir_clear
  - ouc_offset
  - stat_data_to_disk
  - write_one_dir
  - write_untracked_extension
  - free_untracked
  - free_untracked_cache
  - stat_data_from_disk
  - read_one_dir
  - set_check_only
  - read_stat
  - read_oid
  - load_oid_stat
  - read_untracked_extension
  - invalidate_one_directory
  - invalidate_one_component
  - untracked_cache_invalidate_path
  - untracked_cache_invalidate_trimmed_path
  - untracked_cache_remove_from_index
  - untracked_cache_add_to_index
  - connect_wt_gitdir_in_nested
  - connect_work_tree_and_git_dir
  - relocate_gitdir
  - path_match_flags
  source_file: /src/git/dir.c
  types:
    enum:
    - enumerators:
      - name: path_none
        value: '0'
      - name: path_excluded
      - name: path_recurse
      - name: path_untracked
      item_type: enum
      name: path_treatment
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/git/dir.c
    - enumerators:
      - name: index_nonexistent
        value: '0'
      - name: index_gitdir
      - name: index_directory
      item_type: enum
      name: exist_status
      pos:
        line_end: 1875
        line_start: 1871
        source_file: /src/git/dir.c
    preproc_defs:
    - item_type: preproc_def
      name: PATTERN_MAX_FILE_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/dir.c
      type_or_value: (100 * 1024 * 1024)
    - item_type: preproc_def
      name: DO_MATCH_EXCLUDE
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/git/dir.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: DO_MATCH_DIRECTORY
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/git/dir.c
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: DO_MATCH_LEADING_PATHSPEC
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/git/dir.c
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: PATTERN_NOFOLLOW
      pos:
        line_end: 1138
        line_start: 1137
        source_file: /src/git/dir.c
      type_or_value: (1<<0)
    structs:
    - fields:
      - name: '*fdir'
        type: DIR
      - name: '*untracked'
        type: struct untracked_cache_dir
      - name: nr_files
        type: int
      - name: nr_dirs
        type: int
      - name: '*d_name'
        type: char
      - name: d_type
        type: int
      - name: '*file'
        type: char
      - name: '*ucd'
        type: struct untracked_cache_dir
      item_type: struct
      name: cached_dir
      pos:
        line_end: 71
        line_start: 61
        source_file: /src/git/dir.c
    - fields:
      - name: info_exclude_stat
        type: struct stat_data
      - name: excludes_file_stat
        type: struct stat_data
      - name: dir_flags
        type: uint32_t
      item_type: struct
      name: ondisk_untracked_cache
      pos:
        line_end: 3585
        line_start: 3581
        source_file: /src/git/dir.c
    - fields:
      - name: index
        type: int
      - name: '*check_only'
        type: struct ewah_bitmap
      - name: '*valid'
        type: struct ewah_bitmap
      - name: '*sha1_valid'
        type: struct ewah_bitmap
      - name: out
        type: struct strbuf
      - name: sb_stat
        type: struct strbuf
      - name: sb_sha1
        type: struct strbuf
      item_type: struct
      name: write_data
      pos:
        line_end: 3597
        line_start: 3589
        source_file: /src/git/dir.c
    - fields:
      - name: index
        type: int
      - name: '**ucd'
        type: struct untracked_cache_dir
      - name: '*check_only'
        type: struct ewah_bitmap
      - name: '*valid'
        type: struct ewah_bitmap
      - name: '*sha1_valid'
        type: struct ewah_bitmap
      - name: '*data'
        type: unsigned char
      - name: '*end'
        type: unsigned char
      item_type: struct
      name: read_data
      pos:
        line_end: 3756
        line_start: 3748
        source_file: /src/git/dir.c
    typedefs: []
    union: []
- function_names:
  - _OPT_MERGED_NO_MERGED
  - OPT_MERGED
  - OPT_NO_MERGED
  - OPT_REF_SORT
  - OPT_REF_FILTER_EXCLUDE
  source_file: /src/git/ref-filter.h
  types:
    enum:
    - enumerators:
      - name: REF_SORTING_REVERSE
        value: 1<<0
      - name: REF_SORTING_VERSION
        value: 1<<2
      - name: REF_SORTING_DETACHED_HEAD_FIRST
        value: 1<<3
      - name: REF_SORTING_ICASE
        value: 1<<1
      item_type: enum
      name: ref_sorting_order
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/git/ref-filter.h
    preproc_defs:
    - item_type: preproc_def
      name: QUOTE_NONE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/ref-filter.h
      type_or_value: '0'
    - item_type: preproc_def
      name: QUOTE_SHELL
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/ref-filter.h
      type_or_value: '1'
    - item_type: preproc_def
      name: QUOTE_PERL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/ref-filter.h
      type_or_value: '2'
    - item_type: preproc_def
      name: QUOTE_PYTHON
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/ref-filter.h
      type_or_value: '4'
    - item_type: preproc_def
      name: QUOTE_TCL
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/ref-filter.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FILTER_REFS_TAGS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/ref-filter.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: FILTER_REFS_BRANCHES
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/ref-filter.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: FILTER_REFS_REMOTES
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/ref-filter.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: FILTER_REFS_OTHERS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/ref-filter.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: FILTER_REFS_REGULAR
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/git/ref-filter.h
      type_or_value: "(FILTER_REFS_TAGS | FILTER_REFS_BRANCHES | \\\n\t\t\t\t    FILTER_REFS_REMOTES
        | FILTER_REFS_OTHERS)"
    - item_type: preproc_def
      name: FILTER_REFS_DETACHED_HEAD
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/ref-filter.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: FILTER_REFS_PSEUDOREFS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/ref-filter.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: FILTER_REFS_ROOT_REFS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/ref-filter.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: FILTER_REFS_KIND_MASK
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/git/ref-filter.h
      type_or_value: "(FILTER_REFS_REGULAR | FILTER_REFS_DETACHED_HEAD | \\\n\t\t\t\t
        \   FILTER_REFS_PSEUDOREFS | FILTER_REFS_ROOT_REFS)"
    - item_type: preproc_def
      name: REF_FILTER_INIT
      pos:
        line_end: 113
        line_start: 109
        source_file: /src/git/ref-filter.h
      type_or_value: "{ \\\n\t.points_at = OID_ARRAY_INIT, \\\n\t.exclude = STRVEC_INIT,
        \\\n}"
    - item_type: preproc_def
      name: REF_FORMAT_INIT
      pos:
        line_end: 116
        line_start: 113
        source_file: /src/git/ref-filter.h
      type_or_value: "{             \\\n\t.use_color = GIT_COLOR_UNKNOWN, \\\n}"
    structs:
    - fields:
      - name: objectname
        type: struct object_id
      - name: peeled_oid
        type: struct object_id
      - name: '*rest'
        type: char
      - name: flag
        type: int
      - name: kind
        type: unsigned int
      - name: '*symref'
        type: char
      - name: '*commit'
        type: struct commit
      - name: '*value'
        type: struct atom_value
      - name: '**counts'
        type: struct ahead_behind_count
      - name: '**is_base'
        type: char
      - name: refname[FLEX_ARRAY]
        type: char
      item_type: struct
      name: ref_array_item
      pos:
        line_end: 54
        line_start: 41
        source_file: /src/git/ref-filter.h
    - fields:
      - name: nr
        type: int
      - name: '**items'
        type: struct ref_array_item
      - name: '*revs'
        type: struct rev_info
      - name: '*counts'
        type: struct ahead_behind_count
      - name: counts_nr
        type: size_t
      item_type: struct
      name: ref_array
      pos:
        line_end: 63
        line_start: 56
        source_file: /src/git/ref-filter.h
    - fields:
      - name: '**name_patterns'
        type: char
      - name: '*start_after'
        type: char
      - name: exclude
        type: struct strvec
      - name: points_at
        type: struct oid_array
      - name: '*with_commit'
        type: struct commit_list
      - name: '*no_commit'
        type: struct commit_list
      - name: '*reachable_from'
        type: struct commit_list
      - name: '*unreachable_from'
        type: struct commit_list
      - name: with_commit_tag_algo
        type: unsigned int
      - name: kind
        type: unsigned int
      - name: abbrev
        type: int
      - name: internal
        type: "struct {\n\t\tstruct contains_cache contains_cache;\n\t\tstruct contains_cache
          no_contains_cache;\n\t}"
      item_type: struct
      name: ref_filter
      pos:
        line_end: 88
        line_start: 65
        source_file: /src/git/ref-filter.h
    - fields:
      - name: '*format'
        type: char
      - name: '*rest'
        type: char
      - name: quote_style
        type: int
      - name: use_color
        type: enum git_colorbool
      - name: need_color_reset_at_eol
        type: int
      - name: array_opts
        type: "struct {\n\t\tint max_count;\n\t\tint omit_empty;\n\t}"
      item_type: struct
      name: ref_format
      pos:
        line_end: 107
        line_start: 90
        source_file: /src/git/ref-filter.h
    typedefs: []
    union: []
- function_names:
  - DATE_MODE
  - approxidate
  source_file: /src/git/date.h
  types:
    enum:
    - enumerators:
      - name: DATE_NORMAL
        value: '0'
      - name: DATE_ISO8601
      - name: DATE_RELATIVE
      - name: DATE_SHORT
      - name: DATE_HUMAN
      - name: DATE_ISO8601_STRICT
      - name: DATE_RFC2822
      - name: DATE_STRFTIME
      - name: DATE_RAW
      - name: DATE_UNIX
      item_type: enum
      name: date_mode_type
      pos:
        line_end: 20
        line_start: 9
        source_file: /src/git/date.h
    preproc_defs:
    - item_type: preproc_def
      name: DATE_MODE_INIT
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/git/date.h
      type_or_value: "{ \\\n\t.type = DATE_NORMAL, \\\n}"
    structs:
    - fields:
      - name: type
        type: enum date_mode_type
      - name: local
        type: int
      - name: '*strftime_fmt'
        type: char
      item_type: struct
      name: date_mode
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/git/date.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/notes-utils.h
  types:
    enum:
    - enumerators:
      - name: NOTES_MERGE_RESOLVE_MANUAL
        value: '0'
      - name: NOTES_MERGE_RESOLVE_THEIRS
      - name: NOTES_MERGE_RESOLVE_UNION
      - name: NOTES_MERGE_RESOLVE_OURS
      - name: NOTES_MERGE_RESOLVE_CAT_SORT_UNIQ
      item_type: enum
      name: notes_merge_strategy
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/git/notes-utils.h
    preproc_defs: []
    structs:
    - fields:
      - name: '**trees'
        type: struct notes_tree
      - name: '*cmd'
        type: char
      - name: enabled
        type: int
      - name: combine
        type: combine_notes_fn
      - name: '*refs'
        type: struct string_list
      - name: refs_from_env
        type: int
      - name: mode_from_env
        type: int
      item_type: struct
      name: notes_rewrite_cfg
      pos:
        line_end: 44
        line_start: 36
        source_file: /src/git/notes-utils.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/common-init.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mem_pool_alloc_block
  - mem_pool_init
  - mem_pool_discard
  - mem_pool_alloc
  - mem_pool_strvfmt
  - mem_pool_strfmt
  - mem_pool_calloc
  - mem_pool_strdup
  - mem_pool_strndup
  - mem_pool_contains
  - mem_pool_combine
  source_file: /src/git/mem-pool.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOCK_GROWTH_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/mem-pool.c
      type_or_value: (1024 * 1024 - sizeof(struct mp_block))
    - item_type: preproc_def
      name: GIT_MAX_ALIGNMENT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/mem-pool.c
      type_or_value: offsetof(struct git_max_alignment, aligned)
    structs:
    - fields:
      - name: unalign
        type: char
      - name: aligned
        type: "union {\n\t\tuintmax_t max_align_uintmax;\n\t\tvoid *max_align_pointer;\n\t}"
      item_type: struct
      name: git_max_alignment
      pos:
        line_end: 29
        line_start: 23
        source_file: /src/git/mem-pool.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/rebase.h
  types:
    enum:
    - enumerators:
      - name: REBASE_INVALID
        value: '-1'
      - name: REBASE_TRUE
      - name: REBASE_FALSE
        value: '0'
      - name: REBASE_MERGES
      - name: REBASE_INTERACTIVE
      item_type: enum
      name: rebase_type
      pos:
        line_end: 9
        line_start: 3
        source_file: /src/git/rebase.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/fsmonitor--daemon.h
  types:
    enum:
    - enumerators:
      - name: IS_WORKDIR_PATH
        value: '0'
      - name: IS_DOT_GIT
      - name: IS_INSIDE_DOT_GIT
      - name: IS_INSIDE_DOT_GIT_WITH_COOKIE_PREFIX
      - name: IS_GITDIR
      - name: IS_INSIDE_GITDIR
      - name: IS_INSIDE_GITDIR_WITH_COOKIE_PREFIX
      - name: IS_OUTSIDE_CONE
      item_type: enum
      name: fsmonitor_path_type
      pos:
        line_end: 128
        line_start: 116
        source_file: /src/git/fsmonitor--daemon.h
    preproc_defs: []
    structs:
    - fields:
      - name: listener_thread
        type: pthread_t
      - name: health_thread
        type: pthread_t
      - name: main_lock
        type: pthread_mutex_t
      - name: path_worktree_watch
        type: struct strbuf
      - name: path_gitdir_watch
        type: struct strbuf
      - name: alias
        type: struct alias_info
      - name: nr_paths_watching
        type: int
      - name: '*current_token_data'
        type: struct fsmonitor_token_data
      - name: path_cookie_prefix
        type: struct strbuf
      - name: cookies_cond
        type: pthread_cond_t
      - name: cookie_seq
        type: int
      - name: cookies
        type: struct hashmap
      - name: listen_error_code
        type: int
      - name: health_error_code
        type: int
      - name: '*listen_data'
        type: struct fsm_listen_data
      - name: '*health_data'
        type: struct fsm_health_data
      - name: '*ipc_server_data'
        type: struct ipc_server_data
      - name: path_ipc
        type: struct strbuf
      item_type: struct
      name: fsmonitor_daemon_state
      pos:
        line_end: 61
        line_start: 36
        source_file: /src/git/fsmonitor--daemon.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/advice.h
  types:
    enum:
    - enumerators:
      - name: ADVICE_ADD_EMBEDDED_REPO
      - name: ADVICE_ADD_EMPTY_PATHSPEC
      - name: ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME
      - name: ADVICE_FORCE_DELETE_BRANCH
      - name: ADVICE_MERGE_CONFLICT
      - name: ADVICE_PUSH_FETCH_FIRST
      - name: ADVICE_PUSH_REF_NEEDS_UPDATE
      - name: ADVICE_REBASE_TODO_ERROR
      - name: ADVICE_RM_HINTS
      - name: ADVICE_SPARSE_INDEX_EXPANDED
      - name: ADVICE_SUBMODULES_NOT_UPDATED
      - name: ADVICE_SUBMODULE_ALTERNATE_ERROR_STRATEGY_DIE
      - name: ADVICE_AM_WORK_DIR
      - name: ADVICE_DETACHED_HEAD
      - name: ADVICE_IMPLICIT_IDENTITY
      - name: ADVICE_FETCH_SHOW_FORCED_UPDATES
      - name: ADVICE_PUSH_ALREADY_EXISTS
      - name: ADVICE_PUSH_NON_FF_MATCHING
      - name: ADVICE_PUSH_UPDATE_REJECTED_ALIAS
      - name: ADVICE_RESOLVE_CONFLICT
      - name: ADVICE_SKIPPED_CHERRY_PICKS
      - name: ADVICE_STATUS_U_OPTION
      - name: ADVICE_UPDATE_SPARSE_PATH
      - name: ADVICE_AMBIGUOUS_FETCH_REFSPEC
      - name: ADVICE_DEFAULT_BRANCH_NAME
      - name: ADVICE_OBJECT_NAME_WARNING
      - name: ADVICE_FETCH_SET_HEAD_WARN
      - name: ADVICE_IGNORED_HOOK
      - name: ADVICE_PUSH_NON_FF_CURRENT
      - name: ADVICE_PUSH_UPDATE_REJECTED
      - name: ADVICE_RESET_NO_REFRESH_WARNING
      - name: ADVICE_SET_UPSTREAM_FAILURE
      - name: ADVICE_STATUS_HINTS
      - name: ADVICE_WORKTREE_ADD_ORPHAN
      - name: ADVICE_SUGGEST_DETACHING_HEAD
      - name: ADVICE_ADD_IGNORED_FILE
      - name: ADVICE_COMMIT_BEFORE_MERGE
      - name: ADVICE_DIVERGING
      - name: ADVICE_NESTED_TAG
      - name: ADVICE_GRAFT_FILE_DEPRECATED
      - name: ADVICE_PUSH_NEEDS_FORCE
      - name: ADVICE_PUSH_UNQUALIFIED_REF_NAME
      - name: ADVICE_REF_SYNTAX
      - name: ADVICE_SEQUENCER_IN_USE
      - name: ADVICE_STATUS_AHEAD_BEHIND_WARNING
      - name: ADVICE_WAITING_FOR_EDITOR
      - name: ADVICE_SUBMODULE_MERGE_CONFLICT
      item_type: enum
      name: advice_type
      pos:
        line_end: 60
        line_start: 12
        source_file: /src/git/advice.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/patch-ids.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: patch_id
        type: struct object_id
      - name: '*commit'
        type: struct commit
      item_type: struct
      name: patch_id
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/git/patch-ids.h
    - fields:
      - name: patches
        type: struct hashmap
      - name: diffopts
        type: struct diff_options
      item_type: struct
      name: patch_ids
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/git/patch-ids.h
    typedefs: []
    union: []
- function_names:
  - hold_lock_file_for_update_timeout
  - hold_lock_file_for_update
  - hold_lock_file_for_update_mode
  - is_lock_file_locked
  - fdopen_lock_file
  - get_lock_file_path
  - get_lock_file_fd
  - get_lock_file_fp
  - close_lock_file_gently
  - reopen_lock_file
  - commit_lock_file_to
  source_file: /src/git/lockfile.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOCK_INIT
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/git/lockfile.h
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: LOCK_SUFFIX
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/git/lockfile.h
      type_or_value: '".lock"'
    - item_type: preproc_def
      name: LOCK_SUFFIX_LEN
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/git/lockfile.h
      type_or_value: '5'
    - item_type: preproc_def
      name: LOCK_PID_INFIX
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/git/lockfile.h
      type_or_value: '"~pid"'
    - item_type: preproc_def
      name: LOCK_PID_INFIX_LEN
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/git/lockfile.h
      type_or_value: '4'
    - item_type: preproc_def
      name: LOCK_PID_MAXLEN
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/git/lockfile.h
      type_or_value: '32'
    - item_type: preproc_def
      name: LOCK_DIE_ON_ERROR
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/git/lockfile.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LOCK_REPORT_ON_ERROR
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/git/lockfile.h
      type_or_value: '4'
    - item_type: preproc_def
      name: LOCK_NO_DEREF
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/git/lockfile.h
      type_or_value: '2'
    structs:
    - fields:
      - name: '*tempfile'
        type: struct tempfile
      - name: '*pid_tempfile'
        type: struct tempfile
      item_type: struct
      name: lock_file
      pos:
        line_end: 122
        line_start: 119
        source_file: /src/git/lockfile.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/git-zlib.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: z
        type: struct z_stream_s
      - name: avail_in
        type: unsigned long
      - name: avail_out
        type: unsigned long
      - name: total_in
        type: size_t
      - name: total_out
        type: size_t
      - name: '*next_in'
        type: unsigned char
      - name: '*next_out'
        type: unsigned char
      item_type: struct
      name: git_zstream
      pos:
        line_end: 13
        line_start: 5
        source_file: /src/git/git-zlib.h
    typedefs: []
    union: []
- function_names:
  - always_auth_proactively
  - fread_buffer
  - seek_buffer
  - fwrite_buffer
  - is_hdr_continuation
  - fwrite_wwwauth
  - fwrite_null
  - object_request_headers
  - closedown_active_slot
  - finish_active_slot
  - xmulti_remove_handle
  - process_curl_messages
  - http_options
  - curl_empty_auth_enabled
  - http_append_auth_header
  - init_curl_http_auth
  - http_reauth_prepare
  - var_override
  - set_proxyauth_name_password
  - init_curl_proxy_auth
  - has_cert_password
  - has_proxy_cert_password
  - find_socks_proxy_type
  - is_socks_proxy_protocol
  - set_curl_proxy_type
  - redact_sensitive_header
  - match_curl_h2_trace
  - redact_sensitive_info_header
  - curl_dump_header
  - curl_dump_data
  - curl_dump_info
  - http_trace_curl_no_data
  - setup_curl_trace
  - proto_list_append
  - get_curl_allowed_protocols
  - get_curl_http_version_opt
  - get_curl_handle
  - set_from_env
  - set_long_from_env
  - http_init
  - http_cleanup
  - get_active_slot
  - start_active_slot
  - add_fill_function
  - fill_active_slots
  - step_active_slots
  - run_active_slot
  - release_active_slot
  - finish_all_active_slots
  - needs_quote
  - quote_ref_url
  - append_remote_object_url
  - get_remote_object_url
  - normalize_curl_result
  - handle_curl_result
  - run_one_slot
  - http_copy_default_headers
  - curlinfo_strbuf
  - extract_param
  - extract_content_type
  - write_accept_language
  - http_get_accept_language_header
  - http_opt_request_remainder
  - http_request
  - update_url_from_redirect
  - handle_rate_limit_retry
  - http_request_recoverable
  - http_get_strbuf
  - http_get_file
  - http_fetch_ref
  - fetch_pack_index
  - fetch_and_setup_pack_index
  - repo_for_each_pack
  - http_get_info_packs
  - release_http_pack_request
  - finish_http_pack_request
  - http_install_packfile
  - new_http_pack_request
  - new_direct_http_pack_request
  - fwrite_sha1_file
  - new_http_object_request
  - process_http_object_request
  - finish_http_object_request
  - abort_http_object_request
  - release_http_object_request
  source_file: /src/git/http.c
  types:
    enum:
    - enumerators:
      - name: PROACTIVE_AUTH_NONE
        value: '0'
      - name: PROACTIVE_AUTH_BASIC
      - name: PROACTIVE_AUTH_IF_CREDENTIALS
      - name: PROACTIVE_AUTH_AUTO
      item_type: enum
      name: proactive_auth
      pos:
        line_end: 118
        line_start: 113
        source_file: /src/git/http.c
    preproc_defs:
    - item_type: preproc_def
      name: PREV_BUF_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/http.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: HTTP_REQUEST_STRBUF
      pos:
        line_end: 2219
        line_start: 2218
        source_file: /src/git/http.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HTTP_REQUEST_FILE
      pos:
        line_end: 2220
        line_start: 2219
        source_file: /src/git/http.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: ssl_version
        type: long
      item_type: struct
      name: "sslversions[] = {\n\t{ \"sslv2\", CURL_SSLVERSION_SSLv2 },\n\t{ \"sslv3\",
        CURL_SSLVERSION_SSLv3 },\n\t{ \"tlsv1\", CURL_SSLVERSION_TLSv1 },\n\t{ \"tlsv1.0\",
        CURL_SSLVERSION_TLSv1_0 },\n\t{ \"tlsv1.1\", CURL_SSLVERSION_TLSv1_1 },\n\t{
        \"tlsv1.2\", CURL_SSLVERSION_TLSv1_2 },\n\t{ \"tlsv1.3\", CURL_SSLVERSION_TLSv1_3
        },\n}"
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/git/http.c
    - fields:
      - name: '*name'
        type: char
      - name: curlauth_param
        type: long
      item_type: struct
      name: "proxy_authmethods[] = {\n\t{ \"basic\", CURLAUTH_BASIC },\n\t{ \"digest\",
        CURLAUTH_DIGEST },\n\t{ \"negotiate\", CURLAUTH_GSSNEGOTIATE },\n\t{ \"ntlm\",
        CURLAUTH_NTLM },\n\t{ \"anyauth\", CURLAUTH_ANY },\n\t/*\n\t * CURLAUTH_DIGEST_IE
        has no corresponding command-line option in\n\t * curl(1) and is not included
        in CURLAUTH_ANY, so we leave it out\n\t * here, too\n\t */\n}"
      pos:
        line_end: 85
        line_start: 82
        source_file: /src/git/http.c
    - fields:
      - name: '*name'
        type: char
      - name: curl_deleg_param
        type: long
      item_type: struct
      name: "curl_deleg_levels[] = {\n\t{ \"none\", CURLGSSAPI_DELEGATION_NONE },\n\t{
        \"policy\", CURLGSSAPI_DELEGATION_POLICY_FLAG },\n\t{ \"always\", CURLGSSAPI_DELEGATION_FLAG
        },\n}"
      pos:
        line_end: 102
        line_start: 99
        source_file: /src/git/http.c
    - fields:
      - name: '*name'
        type: char
      - name: curlsym
        type: long
      item_type: struct
      name: socks_proxy_type
      pos:
        line_end: 766
        line_start: 763
        source_file: /src/git/http.c
    - fields:
      - name: '*name'
        type: char
      - name: opt_token
        type: long
      item_type: struct
      name: "choice[] = {\n\t\t{ \"HTTP/1.1\", CURL_HTTP_VERSION_1_1 },\n\t\t{ \"HTTP/2\",
        CURL_HTTP_VERSION_2 }\n\t}"
      pos:
        line_end: 1100
        line_start: 1097
        source_file: /src/git/http.c
    - fields:
      - name: '*data'
        type: void
      - name: (*fill)(void *)
        type: int
      - name: '*next'
        type: struct fill_chain
      item_type: struct
      name: fill_chain
      pos:
        line_end: 1686
        line_start: 1682
        source_file: /src/git/http.c
    typedefs: []
    union: []
- function_names:
  - capture_command
  source_file: /src/git/run-command.h
  types:
    enum:
    - enumerators:
      - name: SBGR_READY
        value: '0'
      - name: SBGR_ERROR
      - name: SBGR_CB_ERROR
      - name: SBGR_TIMEOUT
      - name: SBGR_DIED
      item_type: enum
      name: start_bg_result
      pos:
        line_end: 568
        line_start: 553
        source_file: /src/git/run-command.h
    preproc_defs:
    - item_type: preproc_def
      name: CHILD_PROCESS_INIT
      pos:
        line_end: 152
        line_start: 148
        source_file: /src/git/run-command.h
      type_or_value: "{ \\\n\t.args = STRVEC_INIT, \\\n\t.env = STRVEC_INIT, \\\n}"
    structs:
    - fields:
      - name: args
        type: struct strvec
      - name: env
        type: struct strvec
      - name: pid
        type: pid_t
      - name: trace2_child_id
        type: int
      - name: trace2_child_us_start
        type: uint64_t
      - name: '*trace2_child_class'
        type: char
      - name: '*trace2_hook_name'
        type: char
      - name: in
        type: int
      - name: out
        type: int
      - name: err
        type: int
      - name: '*dir'
        type: char
      - name: no_stdin
        type: unsigned
      - name: no_stdout
        type: unsigned
      - name: no_stderr
        type: unsigned
      - name: git_cmd
        type: unsigned
      - name: silent_exec_failure
        type: unsigned
      - name: use_shell
        type: unsigned
      - name: '*odb_to_close'
        type: struct object_database
      - name: stdout_to_stderr
        type: unsigned
      - name: clean_on_exit
        type: unsigned
      - name: wait_after_clean
        type: unsigned
      - name: (*clean_on_exit_handler)(struct child_process *process)
        type: void
      item_type: struct
      name: child_process
      pos:
        line_end: 146
        line_start: 45
        source_file: /src/git/run-command.h
    - fields:
      - name: (*proc)(int in, int out, void *data)
        type: int
      - name: '*data'
        type: void
      - name: in
        type: int
      - name: out
        type: int
      - name: isolate_sigpipe
        type: int
      item_type: struct
      name: async
      pos:
        line_end: 364
        line_start: 300
        source_file: /src/git/run-command.h
    - fields:
      - name: '*tr2_category'
        type: char
      - name: '*tr2_label'
        type: char
      - name: processes
        type: size_t
      - name: ungroup
        type: unsigned int
      - name: get_next_task
        type: get_next_task_fn
      - name: start_failure
        type: start_failure_fn
      - name: feed_pipe
        type: feed_pipe_fn
      - name: task_finished
        type: task_finished_fn
      - name: '*data'
        type: void
      item_type: struct
      name: run_process_parallel_opts
      pos:
        line_end: 510
        line_start: 462
        source_file: /src/git/run-command.h
    typedefs:
    - item_type: typedef
      name: "(*get_next_task_fn)(struct child_process *cp,\n\t\t\t\tstruct strbuf
        *out,\n\t\t\t\tvoid *pp_cb,\n\t\t\t\tvoid **pp_task_cb)"
      pos:
        line_end: 405
        line_start: 402
        source_file: /src/git/run-command.h
      type: int
    - item_type: typedef
      name: "(*start_failure_fn)(struct strbuf *out,\n\t\t\t\tvoid *pp_cb,\n\t\t\t\tvoid
        *pp_task_cb)"
      pos:
        line_end: 423
        line_start: 421
        source_file: /src/git/run-command.h
      type: int
    - item_type: typedef
      name: "(*feed_pipe_fn)(int child_in,\n\t\t\t\tvoid *pp_cb,\n\t\t\t\tvoid *pp_task_cb)"
      pos:
        line_end: 438
        line_start: 436
        source_file: /src/git/run-command.h
      type: int
    - item_type: typedef
      name: "(*task_finished_fn)(int result,\n\t\t\t\tstruct strbuf *out,\n\t\t\t\tvoid
        *pp_cb,\n\t\t\t\tvoid *pp_task_cb)"
      pos:
        line_end: 456
        line_start: 453
        source_file: /src/git/run-command.h
      type: int
    - item_type: typedef
      name: (start_bg_wait_cb)(const struct child_process *cmd, void *cb_data)
      pos:
        line_end: 581
        line_start: 581
        source_file: /src/git/run-command.h
      type: int
    union: []
- function_names:
  - is_fsmonitor_refreshed
  - mark_fsmonitor_valid
  - mark_fsmonitor_invalid
  source_file: /src/git/fsmonitor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_apply_config
  - parse_whitespace_option
  - parse_ignorewhitespace_option
  - init_apply_state
  - clear_apply_state
  - mute_routine
  - check_apply_state
  - set_default_whitespace_mode
  - free_fragment_list
  - release_patch
  - free_patch
  - free_patch_list
  - image_init
  - image_clear
  - hash_line
  - image_add_line
  - image_prepare
  - image_remove_first_line
  - image_remove_last_line
  - say_patch_name
  - read_patch_file
  - linelen
  - is_dev_null
  - name_terminate
  - squash_slash
  - find_name_gnu
  - sane_tz_len
  - tz_with_colon_len
  - date_len
  - short_time_len
  - fractional_time_len
  - trailing_spaces_len
  - diff_timestamp_len
  - find_name_common
  - find_name
  - find_name_traditional
  - guess_p_value
  - has_epoch_timestamp
  - parse_traditional_patch
  - gitdiff_hdrend
  - gitdiff_verify_name
  - gitdiff_oldname
  - gitdiff_newname
  - parse_mode_line
  - gitdiff_oldmode
  - gitdiff_newmode
  - gitdiff_delete
  - gitdiff_newfile
  - gitdiff_copysrc
  - gitdiff_copydst
  - gitdiff_renamesrc
  - gitdiff_renamedst
  - gitdiff_similarity
  - gitdiff_dissimilarity
  - gitdiff_index
  - gitdiff_unrecognized
  - skip_tree_prefix
  - git_header_name
  - check_header_line
  - parse_git_diff_header
  - parse_num
  - parse_range
  - recount_diff
  - parse_fragment_header
  - find_header
  - record_ws_error
  - check_whitespace
  - check_old_for_crlf
  - adjust_incomplete
  - parse_fragment
  - parse_single_patch
  - metadata_changes
  - inflate_it
  - parse_binary_hunk
  - parse_binary
  - prefix_one
  - prefix_patch
  - add_name_limit
  - use_patch
  - parse_chunk
  - reverse_patches
  - show_stats
  - read_old_data
  - update_pre_post_images
  - fuzzy_matchlines
  - line_by_line_fuzzy_match
  - match_fragment
  - find_pos
  - update_image
  - apply_one_fragment
  - apply_binary_fragment
  - apply_binary
  - apply_fragments
  - read_blob_object
  - read_file_or_gitlink
  - in_fn_table
  - to_be_deleted
  - was_deleted
  - add_to_fn_table
  - prepare_fn_table
  - checkout_target
  - previous_patch
  - verify_index_match
  - load_patch_target
  - load_preimage
  - resolve_to
  - three_way_merge
  - load_current
  - try_threeway
  - apply_data
  - check_preimage
  - check_to_create
  - prepare_symlink_changes
  - path_is_beyond_symlink_1
  - path_is_beyond_symlink
  - check_unsafe_path
  - check_patch
  - check_patch_list
  - read_apply_cache
  - get_current_oid
  - preimage_oid_in_gitlink_patch
  - build_fake_ancestor
  - stat_patch_list
  - numstat_patch_list
  - show_file_mode_name
  - show_mode_change
  - show_rename_copy
  - summary_patch_list
  - patch_stats
  - remove_file
  - add_index_file
  - try_create_file
  - create_one_file
  - add_conflicted_stages_file
  - create_file
  - write_out_one_result
  - write_out_one_reject
  - write_out_results
  - apply_patch
  - apply_option_parse_exclude
  - apply_option_parse_include
  - apply_option_parse_p
  - apply_option_parse_space_change
  - apply_option_parse_whitespace
  - apply_option_parse_directory
  - apply_all_patches
  - apply_parse_options
  source_file: /src/git/apply.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: binary_patch_method
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/git/apply.c
      type_or_value: leading
    - item_type: preproc_def
      name: BINARY_DELTA_DEFLATED
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/git/apply.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BINARY_LITERAL_DEFLATED
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/git/apply.c
      type_or_value: '2'
    - item_type: preproc_def
      name: LINE_COMMON
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/git/apply.c
      type_or_value: '1'
    - item_type: preproc_def
      name: LINE_PATCHED
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/git/apply.c
      type_or_value: '2'
    - item_type: preproc_def
      name: IMAGE_INIT
      pos:
        line_end: 289
        line_start: 286
        source_file: /src/git/apply.c
      type_or_value: "{ \\\n\t.buf = STRBUF_INIT, \\\n}"
    - item_type: preproc_def
      name: SLOP
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/git/apply.c
      type_or_value: (16)
    - item_type: preproc_def
      name: MAX_APPLY_SIZE
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/git/apply.c
      type_or_value: (1024UL * 1024 * 1023)
    - item_type: preproc_def
      name: TERM_SPACE
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/git/apply.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TERM_TAB
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/git/apply.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DIFF_OLD_NAME
      pos:
        line_end: 926
        line_start: 925
        source_file: /src/git/apply.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DIFF_NEW_NAME
      pos:
        line_end: 927
        line_start: 926
        source_file: /src/git/apply.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_TO_BE_DELETED
      pos:
        line_end: 3433
        line_start: 3432
        source_file: /src/git/apply.c
      type_or_value: ((struct patch *) -2)
    - item_type: preproc_def
      name: PATH_WAS_DELETED
      pos:
        line_end: 3434
        line_start: 3433
        source_file: /src/git/apply.c
      type_or_value: ((struct patch *) -1)
    - item_type: preproc_def
      name: SUBMODULE_PATCH_WITHOUT_INDEX
      pos:
        line_end: 3534
        line_start: 3533
        source_file: /src/git/apply.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EXISTS_IN_INDEX
      pos:
        line_end: 3925
        line_start: 3924
        source_file: /src/git/apply.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EXISTS_IN_WORKTREE
      pos:
        line_end: 3926
        line_start: 3925
        source_file: /src/git/apply.c
      type_or_value: '2'
    - item_type: preproc_def
      name: EXISTS_IN_INDEX_AS_ITA
      pos:
        line_end: 3927
        line_start: 3926
        source_file: /src/git/apply.c
      type_or_value: '3'
    structs:
    - fields:
      - name: '*root'
        type: struct strbuf
      - name: '*patch_input_file'
        type: char
      - name: linenr
        type: int
      - name: p_value
        type: int
      item_type: struct
      name: gitdiff_data
      pos:
        line_end: 47
        line_start: 42
        source_file: /src/git/apply.c
    - fields:
      - name: leading
        type: unsigned long
      - name: oldpos
        type: unsigned long
      - name: newpos
        type: unsigned long
      - name: '*patch'
        type: char
      - name: free_patch
        type: unsigned
      - name: size
        type: int
      - name: linenr
        type: int
      - name: '*next'
        type: struct fragment
      item_type: struct
      name: fragment
      pos:
        line_end: 219
        line_start: 205
        source_file: /src/git/apply.c
    - fields:
      - name: len
        type: size_t
      - name: hash
        type: unsigned
      - name: flag
        type: unsigned
      item_type: struct
      name: line
      pos:
        line_end: 276
        line_start: 270
        source_file: /src/git/apply.c
    - fields:
      - name: buf
        type: struct strbuf
      - name: '*line'
        type: struct line
      - name: line_nr
        type: size_t
      item_type: struct
      name: image
      pos:
        line_end: 285
        line_start: 281
        source_file: /src/git/apply.c
    - fields:
      - name: '*str'
        type: char
      - name: (*fn)(struct gitdiff_data *, const char *, struct patch *)
        type: int
      item_type: struct
      name: opentry
      pos:
        line_end: 1382
        line_start: 1379
        source_file: /src/git/apply.c
    typedefs: []
    union: []
- function_names:
  - get_max_object_index
  - get_indexed_object
  - type_name
  - type_from_string_gently
  - hash_obj
  - insert_obj_hash
  - lookup_object
  - grow_object_hash
  - create_object
  - object_as_type
  - lookup_unknown_object
  - lookup_object_by_type
  - peel_object_ext
  - peel_object
  - parse_object_buffer
  - parse_object_or_die
  - parse_object_with_flags
  - parse_object
  - object_list_insert
  - object_list_contains
  - object_list_free
  - object_array_init
  - add_object_array_with_path
  - add_object_array
  - object_array_release_entry
  - object_array_pop
  - object_array_filter
  - object_array_clear
  - clear_object_flags
  - repo_clear_commit_marks
  - parsed_object_pool_new
  - parsed_object_pool_reset_commit_grafts
  - parsed_object_pool_clear
  source_file: /src/git/object.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_oid
  - finish_repacking_promisor_objects
  - repack_promisor_objects
  - pack_geometry_repack_promisors
  source_file: /src/git/repack-promisor.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cmd'
        type: struct child_process
      - name: '*algop'
        type: struct git_hash_algo
      item_type: struct
      name: write_oid_context
      pos:
        line_end: 12
        line_start: 9
        source_file: /src/git/repack-promisor.c
    typedefs: []
    union: []
- function_names:
  - gather_stats
  - convert_is_binary
  - gather_convert_stats
  - gather_convert_stats_ascii
  - get_cached_convert_stats_ascii
  - get_wt_convert_stats_ascii
  - text_eol_is_crlf
  - output_eol
  - check_global_conv_flags_eol
  - has_crlf_in_index
  - will_convert_lf_to_crlf
  - validate_encoding
  - trace_encoding
  - check_roundtrip
  - encode_to_git
  - encode_to_worktree
  - crlf_to_git
  - crlf_to_worktree
  - filter_buffer_or_fd
  - apply_single_file_filter
  - start_multi_file_filter_fn
  - handle_filter_error
  - apply_multi_file_filter
  - async_query_available_blobs
  - apply_filter
  - read_convert_config
  - count_ident
  - ident_to_git
  - ident_to_worktree
  - git_path_check_encoding
  - git_path_check_crlf
  - git_path_check_eol
  - git_path_check_convert
  - git_path_check_ident
  - convert_attrs
  - reset_parsed_attributes
  - would_convert_to_git_filter_fd
  - get_convert_attr_ascii
  - convert_to_git
  - convert_to_git_filter_fd
  - convert_to_working_tree_ca_internal
  - async_convert_to_working_tree_ca
  - convert_to_working_tree_ca
  - renormalize_buffer
  - null_filter_fn
  - null_free_fn
  - is_null_stream_filter
  - lf_to_crlf_filter_fn
  - lf_to_crlf_free_fn
  - lf_to_crlf_filter
  - cascade_filter_fn
  - cascade_free_fn
  - cascade_filter
  - is_foreign_ident
  - ident_drain
  - ident_filter_fn
  - ident_free_fn
  - ident_filter
  - get_stream_filter_ca
  - get_stream_filter
  - free_stream_filter
  - stream_filter
  - init_checkout_metadata
  - clone_checkout_metadata
  - classify_conv_attrs
  source_file: /src/git/convert.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONVERT_STAT_BITS_TXT_LF
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/convert.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CONVERT_STAT_BITS_TXT_CRLF
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/convert.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: CONVERT_STAT_BITS_BIN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/convert.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: CAP_CLEAN
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/git/convert.c
      type_or_value: (1u<<0)
    - item_type: preproc_def
      name: CAP_SMUDGE
      pos:
        line_end: 746
        line_start: 745
        source_file: /src/git/convert.c
      type_or_value: (1u<<1)
    - item_type: preproc_def
      name: CAP_DELAY
      pos:
        line_end: 747
        line_start: 746
        source_file: /src/git/convert.c
      type_or_value: (1u<<2)
    - item_type: preproc_def
      name: FILTER_BUFFER
      pos:
        line_end: 1727
        line_start: 1726
        source_file: /src/git/convert.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: IDENT_DRAINING
      pos:
        line_end: 1833
        line_start: 1832
        source_file: /src/git/convert.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: IDENT_SKIPPING
      pos:
        line_end: 1834
        line_start: 1833
        source_file: /src/git/convert.c
      type_or_value: (-2)
    structs:
    - fields:
      - name: nul
        type: unsigned
      - name: printable
        type: unsigned
      item_type: struct
      name: text_stat
      pos:
        line_end: 42
        line_start: 36
        source_file: /src/git/convert.c
    - fields:
      - name: '*src'
        type: char
      - name: size
        type: size_t
      - name: fd
        type: int
      - name: '*cmd'
        type: char
      - name: '*path'
        type: char
      item_type: struct
      name: filter_params
      pos:
        line_end: 634
        line_start: 628
        source_file: /src/git/convert.c
    - fields:
      - name: subprocess
        type: struct subprocess_entry
      - name: supported_capabilities
        type: unsigned int
      item_type: struct
      name: cmd2process
      pos:
        line_end: 751
        line_start: 748
        source_file: /src/git/convert.c
    - fields:
      - name: '*name'
        type: char
      - name: '*next'
        type: struct convert_driver
      - name: '*smudge'
        type: char
      - name: '*clean'
        type: char
      - name: '*process'
        type: char
      - name: required
        type: int
      item_type: struct
      name: convert_driver
      pos:
        line_end: 993
        line_start: 986
        source_file: /src/git/convert.c
    - fields:
      - name: filter
        type: filter_fn
      - name: free
        type: free_fn
      item_type: struct
      name: stream_filter_vtbl
      pos:
        line_end: 1571
        line_start: 1568
        source_file: /src/git/convert.c
    - fields:
      - name: '*vtbl'
        type: struct stream_filter_vtbl
      item_type: struct
      name: stream_filter
      pos:
        line_end: 1575
        line_start: 1573
        source_file: /src/git/convert.c
    - fields:
      - name: filter
        type: struct stream_filter
      - name: has_held
        type: unsigned
      - name: held
        type: char
      item_type: struct
      name: lf_to_crlf_filter
      pos:
        line_end: 1624
        line_start: 1620
        source_file: /src/git/convert.c
    - fields:
      - name: filter
        type: struct stream_filter
      - name: '*one'
        type: struct stream_filter
      - name: '*two'
        type: struct stream_filter
      - name: buf[FILTER_BUFFER]
        type: char
      - name: end
        type: int
      item_type: struct
      name: cascade_filter
      pos:
        line_end: 1733
        line_start: 1727
        source_file: /src/git/convert.c
    - fields:
      - name: filter
        type: struct stream_filter
      - name: left
        type: struct strbuf
      - name: state
        type: int
      - name: ident[GIT_MAX_HEXSZ + 5]
        type: char
      item_type: struct
      name: ident_filter
      pos:
        line_end: 1839
        line_start: 1834
        source_file: /src/git/convert.c
    typedefs:
    - item_type: typedef
      name: "(*filter_fn)(struct stream_filter *,\n\t\t\t const char *input, size_t
        *isize_p,\n\t\t\t char *output, size_t *osize_p)"
      pos:
        line_end: 1565
        line_start: 1563
        source_file: /src/git/convert.c
      type: int
    - item_type: typedef
      name: (*free_fn)(struct stream_filter *)
      pos:
        line_end: 1566
        line_start: 1566
        source_file: /src/git/convert.c
      type: void
    union: []
- function_names:
  - sort_revindex
  - BUCKET_FOR
  - create_pack_revindex
  - create_pack_revindex_in_memory
  - pack_revindex_filename
  - ridx_min_size
  - load_revindex_from_disk
  - load_pack_revindex_from_disk
  - load_pack_revindex
  - verify_pack_revindex
  - can_use_midx_ridx_chunk
  - load_midx_revindex
  - close_midx_revindex
  - offset_to_pack_pos
  - pack_pos_to_index
  - pack_pos_to_offset
  - pack_pos_to_midx
  - midx_pack_order_cmp
  - midx_key_to_pack_pos
  - midx_to_pack_pos
  - midx_pair_to_pack_pos
  source_file: /src/git/pack-revindex.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DIGIT_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/pack-revindex.c
      type_or_value: (16)
    - item_type: preproc_def
      name: BUCKETS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/pack-revindex.c
      type_or_value: (1 << DIGIT_SIZE)
    - item_type: preproc_def
      name: RIDX_HEADER_SIZE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/git/pack-revindex.c
      type_or_value: (12)
    structs:
    - fields:
      - name: offset
        type: off_t
      - name: nr
        type: unsigned int
      item_type: struct
      name: revindex_entry
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/git/pack-revindex.c
    - fields:
      - name: signature
        type: uint32_t
      - name: version
        type: uint32_t
      - name: hash_id
        type: uint32_t
      item_type: struct
      name: revindex_header
      pos:
        line_end: 203
        line_start: 199
        source_file: /src/git/pack-revindex.c
    - fields:
      - name: pack
        type: uint32_t
      - name: offset
        type: off_t
      - name: preferred_pack
        type: uint32_t
      - name: '*midx'
        type: struct multi_pack_index
      item_type: struct
      name: midx_pack_key
      pos:
        line_end: 506
        line_start: 500
        source_file: /src/git/pack-revindex.c
    typedefs: []
    union: []
- function_names:
  - REPO_GIT_PATH_FUNC
  - GIT_PATH_FUNC
  source_file: /src/git/path.h
  types:
    enum:
    - enumerators:
      - name: SCLD_OK
        value: '0'
      - name: SCLD_EXISTS
        value: '-3'
      - name: SCLD_PERMS
        value: '-2'
      - name: SCLD_FAILED
        value: '-1'
      - name: SCLD_VANISHED
        value: '-4'
      item_type: enum
      name: scld_error
      pos:
        line_end: 251
        line_start: 245
        source_file: /src/git/path.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmit_fmt_is_mail
  source_file: /src/git/pretty.h
  types:
    enum:
    - enumerators:
      - name: CMIT_FMT_RAW
      - name: CMIT_FMT_MEDIUM
      - name: CMIT_FMT_DEFAULT
        value: CMIT_FMT_MEDIUM
      - name: CMIT_FMT_FULL
      - name: CMIT_FMT_SHORT
      - name: CMIT_FMT_FULLER
      - name: CMIT_FMT_ONELINE
      - name: CMIT_FMT_EMAIL
      - name: CMIT_FMT_MBOXRD
      - name: CMIT_FMT_USERFORMAT
      - name: CMIT_FMT_UNSPECIFIED
      item_type: enum
      name: cmit_fmt
      pos:
        line_end: 26
        line_start: 13
        source_file: /src/git/pretty.h
    preproc_defs: []
    structs:
    - fields:
      - name: max_invocations
        type: unsigned int
      item_type: struct
      name: pretty_print_describe_status
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/git/pretty.h
    - fields:
      - name: fmt
        type: enum cmit_fmt
      - name: abbrev
        type: int
      - name: '*after_subject'
        type: char
      - name: preserve_subject
        type: int
      - name: date_mode
        type: struct date_mode
      - name: date_mode_explicit
        type: unsigned
      - name: expand_tabs_in_log
        type: int
      - name: need_8bit_cte
        type: int
      - name: '*notes_message'
        type: char
      - name: '*reflog_info'
        type: struct reflog_walk_info
      - name: '*rev'
        type: struct rev_info
      - name: '*output_encoding'
        type: char
      - name: '*mailmap'
        type: struct string_list
      - name: color
        type: enum git_colorbool
      - name: '*from_ident'
        type: struct ident_split
      - name: encode_email_headers
        type: unsigned
      - name: '*describe_status'
        type: struct pretty_print_describe_status
      - name: in_body_headers
        type: struct string_list
      - name: graph_width
        type: int
      item_type: struct
      name: pretty_print_context
      pos:
        line_end: 60
        line_start: 32
        source_file: /src/git/pretty.h
    - fields:
      - name: notes
        type: unsigned
      - name: source
        type: unsigned
      - name: decorate
        type: unsigned
      item_type: struct
      name: userformat_want
      pos:
        line_end: 77
        line_start: 73
        source_file: /src/git/pretty.h
    typedefs: []
    union: []
- function_names:
  - system_prefix
  - git_get_exec_path_from_argv0
  - git_get_exec_path_procfs
  - git_get_exec_path_bsd_sysctl
  - git_get_exec_path_darwin
  - git_get_exec_path_zos
  - git_get_exec_path_wpgmptr
  - git_resolve_executable_dir
  - system_prefix
  - git_resolve_executable_dir
  - system_path
  - git_set_exec_path
  - git_exec_path
  - add_path
  - setup_path
  - prepare_git_cmd
  - execv_git_cmd
  - execl_git_cmd
  source_file: /src/git/exec-cmd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ARGS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/exec-cmd.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - mark_blob_uninteresting
  - mark_tree_contents_uninteresting
  - mark_tree_uninteresting
  - path_and_oids_cmp
  - paths_and_oids_clear
  - paths_and_oids_insert
  - add_children_by_path
  - mark_trees_uninteresting_sparse
  - mark_one_parent_uninteresting
  - mark_parents_uninteresting
  - add_pending_object_with_path
  - add_pending_object_with_mode
  - add_pending_object
  - add_head_to_pending
  - get_reference
  - add_pending_oid
  - handle_commit
  - everybody_uninteresting
  - relevant_commit
  - one_relevant_parent
  - file_add_remove
  - file_change
  - trace2_bloom_filter_statistics_atexit
  - forbid_bloom_filters
  - convert_pathspec_to_bloom_keyvec
  - prepare_to_use_bloom_filter
  - check_maybe_different_in_bloom_filter
  - rev_compare_tree
  - rev_same_tree_as_empty
  - initialise_treesame
  - compact_treesame
  - update_treesame
  - limiting_can_increase_treesame
  - try_to_simplify_commit
  - process_parents
  - cherry_pick_list
  - still_interesting
  - limit_to_ancestry
  - collect_bottom_commits
  - limit_left_right
  - limit_list
  - add_rev_cmdline
  - add_rev_cmdline_list
  - ref_excluded
  - init_ref_exclusions
  - clear_ref_exclusions
  - add_ref_exclusion
  - hide_refs_config
  - exclude_hidden_refs
  - handle_one_ref
  - init_all_refs_cb
  - handle_refs
  - handle_one_reflog_commit
  - handle_one_reflog_ent
  - handle_one_reflog
  - add_other_reflogs_to_pending
  - add_reflogs_to_pending
  - add_cache_tree
  - add_resolve_undo_to_pending
  - for_each_string_list_item
  - do_add_index_objects_to_pending
  - add_index_objects_to_pending
  - add_one_alternate_ref
  - add_alternate_refs_to_pending
  - add_parents_only
  - repo_init_revisions
  - add_pending_commit_list
  - lookup_other_head
  - prepare_show_merge
  - dotdot_missing
  - handle_dotdot_1
  - handle_dotdot
  - handle_revision_arg_1
  - handle_revision_arg
  - read_pathspec_from_stdin
  - add_grep
  - add_header_grep
  - add_message_grep
  - parse_count
  - parse_age
  - overwrite_argv
  - handle_revision_opt
  - parse_revision_opt
  - revision_opts_finish
  - for_each_bisect_ref
  - for_each_bad_bisect_ref
  - for_each_good_bisect_ref
  - handle_revision_pseudo_opt
  - read_revisions_from_stdin
  - diagnose_missing_default
  - setup_revisions
  - setup_revisions_from_strvec
  - release_revisions_cmdline
  - release_revisions_mailmap
  - release_revisions_bloom_keyvecs
  - free_void_commit_list
  - release_revisions
  - add_child
  - remove_duplicate_parents
  - locate_simplify_state
  - mark_redundant_parents
  - mark_treesame_root_parents
  - leave_one_treesame_to_parent
  - remove_marked_parents
  - simplify_one
  - simplify_merges
  - set_children
  - reset_revision_walk
  - mark_uninteresting
  - trace2_topo_walk_statistics_atexit
  - test_flag_and_insert
  - explore_walk_step
  - explore_to_depth
  - indegree_walk_step
  - compute_indegrees_to_depth
  - release_revisions_topo_walk_info
  - reset_topo_walk
  - init_topo_walk
  - next_topo_commit
  - expand_topo_walk
  - prepare_revision_walk
  - rewrite_one_1
  - merge_queue_into_list
  - rewrite_one
  - rewrite_parents
  - commit_match
  - want_ancestry
  - comparison_date
  - get_commit_action
  - save_parents
  - free_saved_parent
  - free_saved_parents
  - get_saved_parents
  - simplify_commit
  - track_linear
  - get_revision_1
  - entry_unshown
  - gc_boundary
  - create_boundary_commit_list
  - get_revision_internal
  - get_revision
  - get_revision_mark
  - put_revision_mark
  source_file: /src/git/revision.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REV_TREE_SAME
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/git/revision.c
      type_or_value: '0'
    - item_type: preproc_def
      name: REV_TREE_NEW
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/git/revision.c
      type_or_value: "1\t"
    - item_type: preproc_def
      name: REV_TREE_OLD
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/git/revision.c
      type_or_value: "2\t"
    - item_type: preproc_def
      name: REV_TREE_DIFFERENT
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/git/revision.c
      type_or_value: "3\t"
    - item_type: preproc_def
      name: SLOP
      pos:
        line_end: 1300
        line_start: 1299
        source_file: /src/git/revision.c
      type_or_value: '5'
    - item_type: preproc_def
      name: EMPTY_PARENT_LIST
      pos:
        line_end: 4228
        line_start: 4227
        source_file: /src/git/revision.c
      type_or_value: ((struct commit_list *)-1)
    structs:
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*path'
        type: char
      - name: trees
        type: struct oidset
      item_type: struct
      name: path_and_oids_entry
      pos:
        line_end: 117
        line_start: 113
        source_file: /src/git/revision.c
    - fields:
      - name: nparents
        type: unsigned int
      - name: treesame[FLEX_ARRAY]
        type: unsigned char
      item_type: struct
      name: treesame_state
      pos:
        line_end: 852
        line_start: 849
        source_file: /src/git/revision.c
    - fields:
      - name: '*exclusions'
        type: struct ref_exclusions
      - name: '*section'
        type: char
      item_type: struct
      name: exclude_hidden_refs_cb
      pos:
        line_end: 1591
        line_start: 1588
        source_file: /src/git/revision.c
    - fields:
      - name: all_flags
        type: int
      - name: warned_bad_reflog
        type: int
      - name: '*all_revs'
        type: struct rev_info
      - name: '*name_for_errormsg'
        type: char
      - name: '*wt'
        type: struct worktree
      item_type: struct
      name: all_refs_cb
      pos:
        line_end: 1626
        line_start: 1620
        source_file: /src/git/revision.c
    - fields:
      - name: '*revs'
        type: struct rev_info
      - name: flags
        type: unsigned int
      item_type: struct
      name: add_alternate_refs_data
      pos:
        line_end: 1867
        line_start: 1864
        source_file: /src/git/revision.c
    - fields:
      - name: '*simplified'
        type: struct commit
      item_type: struct
      name: merge_simplify_state
      pos:
        line_end: 3322
        line_start: 3320
        source_file: /src/git/revision.c
    - fields:
      - name: min_generation
        type: timestamp_t
      - name: explore_queue
        type: struct prio_queue
      - name: indegree_queue
        type: struct prio_queue
      - name: topo_queue
        type: struct prio_queue
      - name: indegree
        type: struct indegree_slab
      - name: author_date
        type: struct author_date_slab
      item_type: struct
      name: topo_walk_info
      pos:
        line_end: 3677
        line_start: 3670
        source_file: /src/git/revision.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reachable.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "report_recent_object_fn(const struct object *, struct packed_git *,\n\t\t\t\t
        \    off_t, time_t)"
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/reachable.h
      type: void
    union: []
- function_names:
  - child_process_init
  - child_process_clear
  - cleanup_children
  - cleanup_children_on_signal
  - cleanup_children_on_exit
  - mark_child_for_cleanup
  - clear_child_for_cleanup
  - close_pair
  - is_executable
  - locate_in_PATH
  - exists_in_PATH
  - sane_execvp
  - git_shell_path
  - prepare_shell_cmd
  - child_die
  - child_dup2
  - child_close
  - child_close_pair
  - child_error_fn
  - child_warn_fn
  - child_die_fn
  - child_err_spew
  - prepare_cmd
  - prep_childenv
  - CHECK_BUG
  - atfork_prepare
  - atfork_parent
  - set_cloexec
  - wait_or_whine
  - trace_add_env
  - trace_run_command
  - start_command
  - finish_command
  - finish_command_in_signal
  - run_command
  - run_thread
  - die_async
  - async_die_is_recursing
  - in_async
  - async_exit
  - git_atexit_dispatch
  - git_atexit_clear
  - git_atexit
  - in_async
  - async_exit
  - check_pipe
  - start_async
  - finish_async
  - async_with_fork
  - pump_io_round
  - pump_io
  - pipe_command
  - child_is_working
  - child_is_ready_for_cleanup
  - child_is_receiving_input
  - child_is_sending_output
  - kill_children
  - kill_children_signal
  - handle_children_on_signal
  - pp_init
  - pp_cleanup
  - pp_start_one
  - pp_buffer_stdin
  - pp_buffer_io
  - pp_output
  - pp_collect_finished
  - pp_handle_child_IO
  - run_processes_parallel
  - prepare_auto_maintenance
  - run_auto_maintenance
  - sanitize_repo_env
  - prepare_other_repo_env
  - start_bg_command
  source_file: /src/git/run-command.c
  types:
    enum:
    - enumerators:
      - name: CHILD_ERR_CHDIR
      - name: CHILD_ERR_CLOSE
      - name: CHILD_ERR_DUP2
      - name: CHILD_ERR_SIGPROCMASK
      - name: CHILD_ERR_SILENT
      - name: CHILD_ERR_ERRNO
      item_type: enum
      name: child_errcode
      pos:
        line_end: 320
        line_start: 313
        source_file: /src/git/run-command.c
    - enumerators:
      - name: GIT_CP_FREE
      - name: GIT_CP_WORKING
      - name: GIT_CP_WAIT_CLEANUP
      item_type: enum
      name: child_state
      pos:
        line_end: 1477
        line_start: 1473
        source_file: /src/git/run-command.c
    preproc_defs:
    - item_type: preproc_def
      name: atexit
      pos:
        line_end: 1123
        line_start: 1122
        source_file: /src/git/run-command.c
      type_or_value: git_atexit
    structs:
    - fields:
      - name: pid
        type: pid_t
      - name: '*process'
        type: struct child_process
      - name: '*next'
        type: struct child_to_clean
      item_type: struct
      name: child_to_clean
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/git/run-command.c
    - fields:
      - name: err
        type: enum child_errcode
      - name: syserr
        type: int
      item_type: struct
      name: child_err
      pos:
        line_end: 325
        line_start: 322
        source_file: /src/git/run-command.c
    - fields:
      - name: old
        type: sigset_t
      item_type: struct
      name: atfork_state
      pos:
        line_end: 503
        line_start: 498
        source_file: /src/git/run-command.c
    - fields:
      - name: (**handlers)(void)
        type: void
      - name: nr
        type: size_t
      - name: alloc
        type: size_t
      item_type: struct
      name: git_atexit_hdlrs
      pos:
        line_end: 1091
        line_start: 1087
        source_file: /src/git/run-command.c
    - fields:
      - name: fd
        type: int
      - name: type
        type: int
      - name: u
        type: "union {\n\t\tstruct {\n\t\t\tconst char *buf;\n\t\t\tsize_t len;\n\t\t}
          out;\n\t\tstruct {\n\t\t\tstruct strbuf *buf;\n\t\t\tsize_t hint;\n\t\t}
          in;\n\t}"
      - name: error
        type: int
      - name: '*pfd'
        type: struct pollfd
      item_type: struct
      name: io_pump
      pos:
        line_end: 1313
        line_start: 1293
        source_file: /src/git/run-command.c
    - fields:
      - name: state
        type: enum child_state
      - name: process
        type: struct child_process
      - name: err
        type: struct strbuf
      - name: '*data'
        type: void
      item_type: struct
      name: parallel_child
      pos:
        line_end: 1484
        line_start: 1479
        source_file: /src/git/run-command.c
    - fields:
      - name: nr_processes
        type: size_t
      - name: '*children'
        type: struct parallel_child
      - name: '*pfd'
        type: struct pollfd
      - name: shutdown
        type: unsigned
      - name: output_owner
        type: size_t
      - name: buffered_output
        type: struct strbuf
      item_type: struct
      name: parallel_processes
      pos:
        line_end: 1523
        line_start: 1509
        source_file: /src/git/run-command.c
    - fields:
      - name: '*opts'
        type: struct run_process_parallel_opts
      - name: '*pp'
        type: struct parallel_processes
      item_type: struct
      name: parallel_processes_for_signal
      pos:
        line_end: 1528
        line_start: 1525
        source_file: /src/git/run-command.c
    typedefs: []
    union: []
- function_names:
  - mput_char
  - list_config_item
  - define_list_config_array
  - define_list_config_array_extra
  source_file: /src/git/help.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: alloc
        type: int
      - name: cnt
        type: int
      - name: '**names'
        type: "struct cmdname {\n\t\tsize_t len; /* also used for similarity index
          in help.c */\n\t\tchar name[FLEX_ARRAY];\n\t}"
      item_type: struct
      name: cmdnames
      pos:
        line_end: 13
        line_start: 6
        source_file: /src/git/help.h
    - fields:
      - name: len
        type: size_t
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: cmdname
      pos:
        line_end: 12
        line_start: 9
        source_file: /src/git/help.h
    typedefs: []
    union: []
- function_names:
  - upload_pack_data_init
  - upload_pack_data_clear
  - reset_timeout
  - send_client_data
  - write_one_shallow
  - relay_pack_data
  - create_pack_file
  - do_got_oid
  - got_oid
  - ok_to_give_up
  - get_common_commits
  - allow_hidden_refs
  - for_each_namespaced_ref_1
  - is_our_ref
  - do_reachable_revlist
  - has_unreachable
  - check_non_tip
  - send_shallow
  - send_unshallow
  - deepen
  - deepen_by_rev_list
  - send_shallow_list
  - process_shallow
  - process_deepen
  - process_deepen_since
  - process_deepen_not
  - send_err_and_die
  - check_one_filter
  - check_filter_recurse
  - die_if_using_banned_filter
  - receive_needs
  - mark_our_ref
  - check_ref
  - format_symref_info
  - format_session_id
  - write_v0_ref
  - send_ref
  - find_symref
  - parse_object_filter_config
  - upload_pack_config
  - upload_pack_protected_config
  - get_upload_pack_config
  - upload_pack
  - parse_want
  - parse_want_ref
  - parse_have
  - trace2_fetch_info
  - process_args
  - send_acks
  - process_haves_and_send_acks
  - send_wanted_ref_info
  - send_shallow_info
  - upload_pack_v2
  - upload_pack_advertise
  source_file: /src/git/upload-pack.c
  types:
    enum:
    - enumerators:
      - name: ALLOW_TIP_SHA1
        value: '0x01'
      - name: ALLOW_ANY_SHA1
        value: '0x07'
      - name: ALLOW_REACHABLE_SHA1
        value: '0x02'
      item_type: enum
      name: allow_uor
      pos:
        line_end: 59
        line_start: 52
        source_file: /src/git/upload-pack.c
    - enumerators:
      - name: UPLOAD_PROCESS_ARGS
        value: '0'
      - name: UPLOAD_DONE
      - name: UPLOAD_SEND_PACK
      - name: UPLOAD_SEND_ACKS
      item_type: enum
      name: upload_state
      pos:
        line_end: 1766
        line_start: 1761
        source_file: /src/git/upload-pack.c
    preproc_defs:
    - item_type: preproc_def
      name: THEY_HAVE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/upload-pack.c
      type_or_value: (1u << 11)
    - item_type: preproc_def
      name: OUR_REF
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/upload-pack.c
      type_or_value: (1u << 12)
    - item_type: preproc_def
      name: WANTED
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/upload-pack.c
      type_or_value: (1u << 13)
    - item_type: preproc_def
      name: COMMON_KNOWN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/upload-pack.c
      type_or_value: (1u << 14)
    - item_type: preproc_def
      name: SHALLOW
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/upload-pack.c
      type_or_value: (1u << 16)
    - item_type: preproc_def
      name: NOT_SHALLOW
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/upload-pack.c
      type_or_value: (1u << 17)
    - item_type: preproc_def
      name: CLIENT_SHALLOW
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/upload-pack.c
      type_or_value: (1u << 18)
    - item_type: preproc_def
      name: HIDDEN_REF
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/upload-pack.c
      type_or_value: (1u << 19)
    - item_type: preproc_def
      name: ALL_FLAGS
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/git/upload-pack.c
      type_or_value: "(THEY_HAVE | OUR_REF | WANTED | COMMON_KNOWN | SHALLOW | \\\n\t\tNOT_SHALLOW
        | CLIENT_SHALLOW | HIDDEN_REF)"
    structs:
    - fields:
      - name: symref
        type: struct string_list
      - name: want_obj
        type: struct object_array
      - name: have_obj
        type: struct object_array
      - name: wanted_refs
        type: struct strmap
      - name: hidden_refs
        type: struct strvec
      - name: shallows
        type: struct object_array
      - name: deepen_not
        type: struct oidset
      - name: extra_edge_obj
        type: struct object_array
      - name: depth
        type: int
      - name: deepen_since
        type: timestamp_t
      - name: deepen_rev_list
        type: int
      - name: deepen_relative
        type: int
      - name: keepalive
        type: int
      - name: shallow_nr
        type: int
      - name: oldest_have
        type: timestamp_t
      - name: timeout
        type: unsigned int
      - name: multi_ack
        type: "enum {\n\t\tNO_MULTI_ACK = 0,\n\t\tMULTI_ACK = 1,\n\t\tMULTI_ACK_DETAILED
          = 2\n\t}"
      - name: use_sideband
        type: int
      - name: uri_protocols
        type: struct string_list
      - name: allow_uor
        type: enum allow_uor
      - name: filter_options
        type: struct list_objects_filter_options
      - name: allowed_filters
        type: struct string_list
      - name: writer
        type: struct packet_writer
      - name: '*pack_objects_hook'
        type: char
      - name: stateless_rpc
        type: unsigned
      - name: no_done
        type: unsigned
      - name: daemon_mode
        type: unsigned
      - name: filter_capability_requested
        type: unsigned
      - name: use_thin_pack
        type: unsigned
      - name: use_ofs_delta
        type: unsigned
      - name: no_progress
        type: unsigned
      - name: use_include_tag
        type: unsigned
      - name: wait_for_done
        type: unsigned
      - name: allow_filter
        type: unsigned
      - name: allow_filter_fallback
        type: unsigned
      - name: tree_filter_max_depth
        type: unsigned long
      - name: done
        type: unsigned
      - name: allow_ref_in_want
        type: unsigned
      - name: allow_sideband_all
        type: unsigned
      - name: seen_haves
        type: unsigned
      - name: allow_packfile_uris
        type: unsigned
      - name: advertise_sid
        type: unsigned
      - name: sent_capabilities
        type: unsigned
      item_type: struct
      name: upload_pack_data
      pos:
        line_end: 124
        line_start: 65
        source_file: /src/git/upload-pack.c
    - fields:
      - name: buffer[(LARGE_PACKET_DATA_MAX - 1) + 1]
        type: char
      - name: used
        type: int
      - name: packfile_uris_started
        type: unsigned
      - name: packfile_started
        type: unsigned
      item_type: struct
      name: output_state
      pos:
        line_end: 218
        line_start: 207
        source_file: /src/git/upload-pack.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/sparse-index.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPARSE_INDEX_MEMORY_ONLY
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/sparse-index.h
      type_or_value: (1 << 0)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/refspec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TAG_REFSPEC
      pos:
        line_end: 19
        line_start: 3
        source_file: /src/git/refspec.h
      type_or_value: '"refs/tags'
    - item_type: preproc_def
      name: REFSPEC_INIT_FETCH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/refspec.h
      type_or_value: '{ .fetch = 1 }'
    - item_type: preproc_def
      name: REFSPEC_INIT_PUSH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/refspec.h
      type_or_value: '{ .fetch = 0 }'
    structs:
    - fields:
      - name: force
        type: unsigned
      - name: pattern
        type: unsigned
      - name: matching
        type: unsigned
      - name: exact_sha1
        type: unsigned
      - name: negative
        type: unsigned
      - name: '*src'
        type: char
      - name: '*dst'
        type: char
      - name: '*raw'
        type: char
      item_type: struct
      name: refspec_item
      pos:
        line_end: 30
        line_start: 19
        source_file: /src/git/refspec.h
    - fields:
      - name: '*items'
        type: struct refspec_item
      - name: alloc
        type: int
      - name: nr
        type: int
      - name: fetch
        type: unsigned
      item_type: struct
      name: refspec
      pos:
        line_end: 47
        line_start: 41
        source_file: /src/git/refspec.h
    typedefs: []
    union: []
- function_names:
  - do_askpass
  - git_prompt
  - git_read_line_interactively
  source_file: /src/git/prompt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_from_cherry_pick
  - is_from_rebase
  source_file: /src/git/wt-status.h
  types:
    enum:
    - enumerators:
      - name: WT_STATUS_HEADER
        value: '0'
      - name: WT_STATUS_NOBRANCH
      - name: WT_STATUS_UPDATED
      - name: WT_STATUS_UNTRACKED
      - name: WT_STATUS_CHANGED
      - name: WT_STATUS_UNMERGED
      - name: WT_STATUS_LOCAL_BRANCH
      - name: WT_STATUS_REMOTE_BRANCH
      - name: WT_STATUS_ONBRANCH
      - name: WT_STATUS_MAXSLOT
      item_type: enum
      name: color_wt_status
      pos:
        line_end: 22
        line_start: 11
        source_file: /src/git/wt-status.h
    - enumerators:
      - name: SHOW_UNTRACKED_FILES_ERROR
        value: '-1'
      - name: SHOW_NO_UNTRACKED_FILES
        value: '0'
      - name: SHOW_NORMAL_UNTRACKED_FILES
      - name: SHOW_ALL_UNTRACKED_FILES
      item_type: enum
      name: untracked_status_type
      pos:
        line_end: 29
        line_start: 24
        source_file: /src/git/wt-status.h
    - enumerators:
      - name: SHOW_NO_IGNORED
      - name: SHOW_MATCHING_IGNORED
      - name: SHOW_TRADITIONAL_IGNORED
      item_type: enum
      name: show_ignored_type
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/git/wt-status.h
    - enumerators:
      - name: FROM_COMMIT
      - name: FROM_CHERRY_PICK_SINGLE
      - name: FROM_CHERRY_PICK_MULTI
      - name: FROM_MERGE
      - name: FROM_REBASE_PICK
      item_type: enum
      name: commit_whence
      pos:
        line_end: 44
        line_start: 38
        source_file: /src/git/wt-status.h
    - enumerators:
      - name: STATUS_FORMAT_NONE
        value: '0'
      - name: STATUS_FORMAT_PORCELAIN_V2
      - name: STATUS_FORMAT_PORCELAIN
      - name: STATUS_FORMAT_SHORT
      - name: STATUS_FORMAT_LONG
      - name: STATUS_FORMAT_UNSPECIFIED
      item_type: enum
      name: wt_status_format
      pos:
        line_end: 78
        line_start: 70
        source_file: /src/git/wt-status.h
    preproc_defs:
    - item_type: preproc_def
      name: SPARSE_CHECKOUT_DISABLED
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/git/wt-status.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: SPARSE_CHECKOUT_SPARSE_INDEX
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/git/wt-status.h
      type_or_value: '-2'
    structs:
    - fields:
      - name: worktree_status
        type: int
      - name: index_status
        type: int
      - name: stagemask
        type: int
      - name: mode_head
        type: int
      - name: oid_head
        type: struct object_id
      - name: rename_status
        type: int
      - name: rename_score
        type: int
      - name: '*rename_source'
        type: char
      - name: dirty_submodule
        type: unsigned
      - name: new_submodule_commits
        type: unsigned
      item_type: struct
      name: wt_status_change_data
      pos:
        line_end: 68
        line_start: 57
        source_file: /src/git/wt-status.h
    - fields:
      - name: merge_in_progress
        type: int
      - name: am_in_progress
        type: int
      - name: am_empty_patch
        type: int
      - name: rebase_in_progress
        type: int
      - name: rebase_interactive_in_progress
        type: int
      - name: cherry_pick_in_progress
        type: int
      - name: bisect_in_progress
        type: int
      - name: revert_in_progress
        type: int
      - name: detached_at
        type: int
      - name: sparse_checkout_percentage
        type: int
      - name: '*branch'
        type: char
      - name: '*onto'
        type: char
      - name: '*detached_from'
        type: char
      - name: '*bisecting_from'
        type: char
      - name: detached_oid
        type: struct object_id
      - name: revert_head_oid
        type: struct object_id
      - name: cherry_pick_head_oid
        type: struct object_id
      item_type: struct
      name: wt_status_state
      pos:
        line_end: 101
        line_start: 83
        source_file: /src/git/wt-status.h
    - fields:
      - name: '*repo'
        type: struct repository
      - name: is_initial
        type: int
      - name: '*branch'
        type: char
      - name: '*reference'
        type: char
      - name: pathspec
        type: struct pathspec
      - name: verbose
        type: int
      - name: amend
        type: int
      - name: whence
        type: enum commit_whence
      - name: nowarn
        type: int
      - name: use_color
        type: enum git_colorbool
      - name: no_gettext
        type: int
      - name: display_comment_prefix
        type: int
      - name: relative_paths
        type: int
      - name: submodule_summary
        type: int
      - name: show_ignored_mode
        type: enum show_ignored_type
      - name: show_untracked_files
        type: enum untracked_status_type
      - name: '*ignore_submodule_arg'
        type: char
      - name: color_palette[WT_STATUS_MAXSLOT][COLOR_MAXLEN]
        type: char
      - name: colopts
        type: unsigned
      - name: null_termination
        type: int
      - name: commit_template
        type: int
      - name: show_branch
        type: int
      - name: show_stash
        type: int
      - name: hints
        type: int
      - name: ahead_behind_flags
        type: enum ahead_behind_flags
      - name: detect_rename
        type: int
      - name: rename_score
        type: int
      - name: rename_limit
        type: int
      - name: status_format
        type: enum wt_status_format
      - name: added_cut_line
        type: unsigned char
      - name: state
        type: struct wt_status_state
      - name: oid_commit
        type: struct object_id
      - name: committable
        type: int
      - name: workdir_dirty
        type: int
      - name: '*index_file'
        type: char
      - name: '*fp'
        type: FILE
      - name: '*prefix'
        type: char
      - name: change
        type: struct string_list
      - name: untracked
        type: struct string_list
      - name: ignored
        type: struct string_list
      - name: untracked_in_ms
        type: uint32_t
      item_type: struct
      name: wt_status
      pos:
        line_end: 147
        line_start: 103
        source_file: /src/git/wt-status.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/version.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - say
  - say1
  - say2
  - prep_base85
  - decode_85
  - encode_85
  - main
  source_file: /src/git/base85.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pack_refs_core
  source_file: /src/git/pack-refs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CACHE_EXT
  - mem_pool__ce_alloc
  - mem_pool__ce_calloc
  - find_mem_pool
  - set_index_entry
  - replace_index_entry
  - rename_index_entry_at
  - fill_stat_cache_info
  - st_mode_from_ce
  - fake_lstat
  - ce_compare_data
  - ce_compare_link
  - ce_compare_gitlink
  - ce_modified_check_fs
  - ce_match_stat_basic
  - is_racy_stat
  - is_racy_timestamp
  - match_stat_data_racy
  - ie_match_stat
  - ie_modified
  - cache_name_stage_compare
  - cmp_cache_name_compare
  - index_name_stage_pos
  - index_name_pos
  - index_name_pos_sparse
  - index_entry_exists
  - remove_index_entry_at
  - remove_marked_cache_entries
  - remove_file_from_index
  - compare_name
  - index_name_pos_also_unmerged
  - different_name
  - create_alias_ce
  - set_object_name_for_intent_to_add_entry
  - add_to_index
  - add_file_to_index
  - make_empty_cache_entry
  - make_empty_transient_cache_entry
  - verify_path
  - make_cache_entry
  - make_transient_cache_entry
  - chmod_index_entry
  - ce_same_name
  - verify_dotfile
  - verify_path_internal
  - has_file_name
  - strcmp_offset
  - has_dir_name
  - check_file_directory_conflict
  - add_index_entry_with_check
  - add_index_entry
  - refresh_cache_ent
  - show_file
  - repo_refresh_and_write_index
  - refresh_index
  - refresh_cache_entry
  - get_index_format_default
  - align_padding_size
  - align_flex_name
  - ondisk_cache_entry_size
  - ondisk_data_size
  - ondisk_data_size_max
  - ondisk_ce_size
  - verify_hdr
  - read_index_extension
  - create_from_disk
  - check_ce_order
  - tweak_untracked_cache
  - tweak_split_index
  - post_read_index_from
  - estimate_cache_size_from_compressed
  - estimate_cache_size
  - load_index_extensions
  - load_cache_entry_block
  - load_all_cache_entries
  - load_cache_entries_thread
  - load_cache_entries_threaded
  - set_new_index_sparsity
  - do_read_index
  - freshen_shared_index
  - read_index_from
  - is_index_unborn
  - index_state_init
  - release_index
  - discard_index
  - validate_cache_entries
  - unmerged_index
  - repo_index_has_changes
  - write_index_ext_header
  - ce_smudge_racily_clean_entry
  - copy_cache_entry_to_ondisk
  - ce_write_entry
  - verify_index_from
  - repo_verify_index
  - has_racy_timestamp
  - repo_update_index_if_able
  - record_eoie
  - record_ieot
  - do_write_index
  - set_alternate_index_output
  - commit_locked_index
  - do_write_locked_index
  - write_split_index
  - get_shared_index_expire_date
  - should_delete_shared_index
  - clean_shared_index_files
  - write_shared_index
  - too_many_not_shared_entries
  - write_locked_index
  - repo_read_index_unmerged
  - index_name_is_other
  - read_blob_data_from_index
  - move_index_extensions
  - dup_cache_entry
  - discard_cache_entry
  - should_validate_cache_entries
  - read_eoie_extension
  - write_eoie_extension
  - read_ieot_extension
  - write_ieot_extension
  - prefetch_cache_entries
  - read_one_entry_opt
  - read_one_entry
  - read_one_entry_quick
  - overlay_tree_on_index
  - fix_unmerged_status
  - skip_submodule
  - update_callback
  - add_files_to_cache
  source_file: /src/git/read-cache.c
  types:
    enum:
    - enumerators:
      - name: NO_EXPAND_SPARSE
        value: '0'
      - name: EXPAND_SPARSE
        value: '1'
      item_type: enum
      name: index_search_mode
      pos:
        line_end: 96
        line_start: 93
        source_file: /src/git/read-cache.c
    - enumerators:
      - name: PATH_OK
      - name: PATH_INVALID
      - name: PATH_DIR_WITH_SEP
      item_type: enum
      name: verify_path_result
      pos:
        line_end: 834
        line_start: 830
        source_file: /src/git/read-cache.c
    - enumerators:
      - name: WRITE_NO_EXTENSION
        value: '0'
      - name: WRITE_RESOLVE_UNDO_EXTENSION
        value: 1<<2
      - name: WRITE_SPLIT_INDEX_EXTENSION
        value: 1<<0
      - name: WRITE_UNTRACKED_CACHE_EXTENSION
        value: 1<<3
      - name: WRITE_CACHE_TREE_EXTENSION
        value: 1<<1
      - name: WRITE_FSMONITOR_EXTENSION
        value: 1<<4
      item_type: enum
      name: write_extensions
      pos:
        line_end: 2795
        line_start: 2788
        source_file: /src/git/read-cache.c
    preproc_defs:
    - item_type: preproc_def
      name: CE_NAMEMASK
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/read-cache.c
      type_or_value: (0x0fff)
    - item_type: preproc_def
      name: CACHE_EXT_TREE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/git/read-cache.c
      type_or_value: "0x54524545\t"
    - item_type: preproc_def
      name: CACHE_EXT_RESOLVE_UNDO
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/read-cache.c
      type_or_value: '0x52455543 '
    - item_type: preproc_def
      name: CACHE_EXT_LINK
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/git/read-cache.c
      type_or_value: "0x6c696e6b\t  "
    - item_type: preproc_def
      name: CACHE_EXT_UNTRACKED
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/git/read-cache.c
      type_or_value: "0x554E5452\t  "
    - item_type: preproc_def
      name: CACHE_EXT_FSMONITOR
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/git/read-cache.c
      type_or_value: "0x46534D4E\t  "
    - item_type: preproc_def
      name: CACHE_EXT_ENDOFINDEXENTRIES
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/git/read-cache.c
      type_or_value: "0x454F4945\t"
    - item_type: preproc_def
      name: CACHE_EXT_INDEXENTRYOFFSETTABLE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/git/read-cache.c
      type_or_value: '0x49454F54 '
    - item_type: preproc_def
      name: CACHE_EXT_SPARSE_DIRECTORIES
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/git/read-cache.c
      type_or_value: '0x73646972 '
    - item_type: preproc_def
      name: EXTMASK
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/git/read-cache.c
      type_or_value: "(RESOLVE_UNDO_CHANGED | CACHE_TREE_CHANGED | \\\n\t\t CE_ENTRY_ADDED
        | CE_ENTRY_REMOVED | CE_ENTRY_CHANGED | \\\n\t\t SPLIT_INDEX_ORDERED | UNTRACKED_CHANGED
        | FSMONITOR_CHANGED)"
    - item_type: preproc_def
      name: CACHE_ENTRY_PATH_LENGTH
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/git/read-cache.c
      type_or_value: '80'
    - item_type: preproc_def
      name: INDEX_FORMAT_DEFAULT
      pos:
        line_end: 1628
        line_start: 1627
        source_file: /src/git/read-cache.c
      type_or_value: '3'
    - item_type: preproc_def
      name: THREAD_COST
      pos:
        line_end: 2078
        line_start: 2077
        source_file: /src/git/read-cache.c
      type_or_value: (10000)
    - item_type: preproc_def
      name: WRITE_ALL_EXTENSIONS
      pos:
        line_end: 2797
        line_start: 2796
        source_file: /src/git/read-cache.c
      type_or_value: ((enum write_extensions)-1)
    - item_type: preproc_def
      name: EOIE_SIZE
      pos:
        line_end: 3543
        line_start: 3542
        source_file: /src/git/read-cache.c
      type_or_value: '(4 + GIT_SHA1_RAWSZ) '
    - item_type: preproc_def
      name: EOIE_SIZE_WITH_HEADER
      pos:
        line_end: 3544
        line_start: 3543
        source_file: /src/git/read-cache.c
      type_or_value: '(4 + 4 + EOIE_SIZE) '
    - item_type: preproc_def
      name: IEOT_VERSION
      pos:
        line_end: 3646
        line_start: 3645
        source_file: /src/git/read-cache.c
      type_or_value: (1)
    structs:
    - fields:
      - name: ctime
        type: struct cache_time
      - name: mtime
        type: struct cache_time
      - name: dev
        type: uint32_t
      - name: ino
        type: uint32_t
      - name: mode
        type: uint32_t
      - name: uid
        type: uint32_t
      - name: gid
        type: uint32_t
      - name: size
        type: uint32_t
      - name: data[GIT_MAX_RAWSZ + 2 * sizeof(uint16_t)]
        type: unsigned char
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: ondisk_cache_entry
      pos:
        line_end: 1683
        line_start: 1666
        source_file: /src/git/read-cache.c
    - fields:
      - name: offset
        type: int
      item_type: struct
      name: index_entry_offset
      pos:
        line_end: 1975
        line_start: 1971
        source_file: /src/git/read-cache.c
    - fields:
      - name: nr
        type: int
      - name: entries[FLEX_ARRAY]
        type: struct index_entry_offset
      item_type: struct
      name: index_entry_offset_table
      pos:
        line_end: 1981
        line_start: 1977
        source_file: /src/git/read-cache.c
    - fields:
      - name: pthread
        type: pthread_t
      - name: '*istate'
        type: struct index_state
      - name: '*mmap'
        type: char
      - name: mmap_size
        type: size_t
      - name: src_offset
        type: unsigned long
      item_type: struct
      name: load_index_extensions
      pos:
        line_end: 1996
        line_start: 1989
        source_file: /src/git/read-cache.c
    - fields:
      - name: pthread
        type: pthread_t
      - name: '*istate'
        type: struct index_state
      - name: '*ce_mem_pool'
        type: struct mem_pool
      - name: offset
        type: int
      - name: '*mmap'
        type: char
      - name: '*ieot'
        type: struct index_entry_offset_table
      - name: ieot_start
        type: int
      - name: ieot_blocks
        type: int
      - name: consumed
        type: unsigned long
      item_type: struct
      name: load_cache_entries_thread_data
      pos:
        line_end: 2090
        line_start: 2079
        source_file: /src/git/read-cache.c
    - fields:
      - name: '*index'
        type: struct index_state
      - name: '*repo'
        type: struct repository
      - name: '*pathspec'
        type: struct pathspec
      - name: include_sparse
        type: int
      - name: flags
        type: int
      - name: add_errors
        type: int
      - name: ignored_too
        type: int
      item_type: struct
      name: update_callback_data
      pos:
        line_end: 3885
        line_start: 3877
        source_file: /src/git/read-cache.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/tag.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: object
        type: struct object
      - name: '*tagged'
        type: struct object
      - name: '*tag'
        type: char
      - name: date
        type: timestamp_t
      item_type: struct
      name: tag
      pos:
        line_end: 12
        line_start: 7
        source_file: /src/git/tag.h
    typedefs: []
    union: []
- function_names:
  - merge_argument
  - try_merge_command
  - checkout_fast_forward
  source_file: /src/git/merge.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_better_matching_suffix
  - swap_prereleases
  - versioncmp
  source_file: /src/git/versioncmp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S_N
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/versioncmp.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: S_I
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/versioncmp.c
      type_or_value: '0x3'
    - item_type: preproc_def
      name: S_F
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/versioncmp.c
      type_or_value: '0x6'
    - item_type: preproc_def
      name: S_Z
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/versioncmp.c
      type_or_value: '0x9'
    - item_type: preproc_def
      name: CMP
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/versioncmp.c
      type_or_value: '2'
    - item_type: preproc_def
      name: LEN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/versioncmp.c
      type_or_value: '3'
    structs:
    - fields:
      - name: conf_pos
        type: int
      - name: start
        type: int
      - name: len
        type: int
      item_type: struct
      name: suffix_match
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/git/versioncmp.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/prio-queue.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ctr
        type: size_t
      - name: '*data'
        type: void
      item_type: struct
      name: prio_queue_entry
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/git/prio-queue.h
    - fields:
      - name: compare
        type: prio_queue_compare_fn
      - name: insertion_ctr
        type: size_t
      - name: '*cb_data'
        type: void
      - name: alloc
        type: size_t
      - name: '*array'
        type: struct prio_queue_entry
      item_type: struct
      name: prio_queue
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/git/prio-queue.h
    typedefs:
    - item_type: typedef
      name: (*prio_queue_compare_fn)(const void *one, const void *two, void *cb_data)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/git/prio-queue.h
      type: int
    union: []
- function_names:
  - OPT_RERERE_AUTOUPDATE
  source_file: /src/git/rerere.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RERERE_AUTOUPDATE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/rerere.h
      type_or_value: '01'
    - item_type: preproc_def
      name: RERERE_NOAUTOUPDATE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/rerere.h
      type_or_value: '02'
    - item_type: preproc_def
      name: RERERE_READONLY
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/rerere.h
      type_or_value: '04'
    structs:
    - fields:
      - name: '*collection'
        type: struct rerere_dir
      - name: variant
        type: int
      item_type: struct
      name: rerere_id
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/git/rerere.h
    typedefs: []
    union: []
- function_names:
  - obstack_chunk_alloc
  - U
  - kwsalloc
  - kwsincr
  - enqueue
  - treefails
  - treedelta
  - hasevery
  - treenext
  - kwsprep
  - bmexec
  - cwexec
  - kwsexec
  - kwsfree
  source_file: /src/git/kwset.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCHAR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/kwset.c
      type_or_value: (UCHAR_MAX + 1)
    - item_type: preproc_def
      name: obstack_chunk_free
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/git/kwset.c
      type_or_value: free
    - item_type: preproc_def
      name: DEPTH_SIZE
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/git/kwset.c
      type_or_value: (CHAR_BIT + CHAR_BIT/2)
    structs:
    - fields:
      - name: '*llink'
        type: struct tree
      - name: '*rlink'
        type: struct tree
      - name: '*trie'
        type: struct trie
      - name: label
        type: unsigned char
      - name: balance
        type: char
      item_type: struct
      name: tree
      pos:
        line_end: 97
        line_start: 90
        source_file: /src/git/kwset.c
    - fields:
      - name: accepting
        type: unsigned int
      - name: '*links'
        type: struct tree
      - name: '*parent'
        type: struct trie
      - name: '*next'
        type: struct trie
      - name: '*fail'
        type: struct trie
      - name: depth
        type: int
      - name: shift
        type: int
      - name: maxshift
        type: int
      item_type: struct
      name: trie
      pos:
        line_end: 110
        line_start: 100
        source_file: /src/git/kwset.c
    - fields:
      - name: obstack
        type: struct obstack
      - name: words
        type: int
      - name: '*trie'
        type: struct trie
      - name: mind
        type: int
      - name: maxd
        type: int
      - name: delta[NCHAR]
        type: unsigned char
      - name: '*next[NCHAR]'
        type: struct trie
      - name: '*target'
        type: char
      - name: mind2
        type: int
      - name: '*trans'
        type: unsigned char
      item_type: struct
      name: kwset
      pos:
        line_end: 125
        line_start: 113
        source_file: /src/git/kwset.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/git-curl-compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GIT_CURL_HAVE_CURLINFO_RETRY_AFTER
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/git-curl-compat.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GIT_CURL_HAVE_CURLOPT_PROTOCOLS_STR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/git-curl-compat.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GIT_CURL_HAVE_GLOBAL_TRACE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/git/git-curl-compat.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - locale_charset
  - locale_charset
  - get_preferred_languages
  - test_vsnprintf
  - init_gettext_charset
  - git_setup_gettext
  - gettext_width
  - is_utf8_locale
  source_file: /src/git/gettext.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/alloc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - missing__target
  - missing_target
  - cast_size_t_to_curl_off_t
  source_file: /src/git/http.h
  types:
    enum:
    - enumerators:
      - name: HTTP_FOLLOW_NONE
      - name: HTTP_FOLLOW_ALWAYS
      - name: HTTP_FOLLOW_INITIAL
      item_type: enum
      name: http_follow_config
      pos:
        line_end: 90
        line_start: 86
        source_file: /src/git/http.h
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_MAX_REQUESTS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/http.h
      type_or_value: '5'
    - item_type: preproc_def
      name: HTTP_OK
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/git/http.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HTTP_MISSING_TARGET
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/git/http.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HTTP_ERROR
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/git/http.h
      type_or_value: '2'
    - item_type: preproc_def
      name: HTTP_START_FAILED
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/git/http.h
      type_or_value: '3'
    - item_type: preproc_def
      name: HTTP_REAUTH
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/git/http.h
      type_or_value: '4'
    - item_type: preproc_def
      name: HTTP_NOAUTH
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/git/http.h
      type_or_value: '5'
    - item_type: preproc_def
      name: HTTP_NOMATCHPUBLICKEY
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/git/http.h
      type_or_value: '6'
    - item_type: preproc_def
      name: HTTP_RATE_LIMITED
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/git/http.h
      type_or_value: '7'
    structs:
    - fields:
      - name: curl_result
        type: CURLcode
      - name: http_code
        type: long
      - name: auth_avail
        type: long
      - name: http_connectcode
        type: long
      - name: retry_after
        type: long
      item_type: struct
      name: slot_results
      pos:
        line_end: 23
        line_start: 17
        source_file: /src/git/http.h
    - fields:
      - name: '*curl'
        type: CURL
      - name: in_use
        type: int
      - name: curl_result
        type: CURLcode
      - name: http_code
        type: long
      - name: '*finished'
        type: int
      - name: '*results'
        type: struct slot_results
      - name: '*callback_data'
        type: void
      - name: (*callback_func)(void *data)
        type: void
      - name: '*next'
        type: struct active_request_slot
      item_type: struct
      name: active_request_slot
      pos:
        line_end: 35
        line_start: 25
        source_file: /src/git/http.h
    - fields:
      - name: buf
        type: struct strbuf
      - name: posn
        type: size_t
      item_type: struct
      name: buffer
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/git/http.h
    - fields:
      - name: no_cache
        type: unsigned
      - name: '*content_type'
        type: struct strbuf
      - name: '*charset'
        type: struct strbuf
      - name: '*effective_url'
        type: struct strbuf
      - name: '*base_url'
        type: struct strbuf
      - name: '*extra_headers'
        type: struct string_list
      - name: retry_after
        type: long
      item_type: struct
      name: http_get_options
      pos:
        line_end: 173
        line_start: 132
        source_file: /src/git/http.h
    - fields:
      - name: '*url'
        type: char
      - name: '**index_pack_args'
        type: char
      - name: preserve_index_pack_stdout
        type: unsigned
      - name: '*packfile'
        type: FILE
      - name: tmpfile
        type: struct strbuf
      - name: '*slot'
        type: struct active_request_slot
      - name: '*headers'
        type: struct curl_slist
      item_type: struct
      name: http_pack_request
      pos:
        line_end: 228
        line_start: 213
        source_file: /src/git/http.h
    - fields:
      - name: '*url'
        type: char
      - name: tmpfile
        type: struct strbuf
      - name: localfile
        type: int
      - name: curl_result
        type: CURLcode
      - name: errorstr[CURL_ERROR_SIZE]
        type: char
      - name: http_code
        type: long
      - name: oid
        type: struct object_id
      - name: real_oid
        type: struct object_id
      - name: c
        type: struct git_hash_ctx
      - name: stream
        type: git_zstream
      - name: zret
        type: int
      - name: rename
        type: int
      - name: '*slot'
        type: struct active_request_slot
      - name: '*headers'
        type: struct curl_slist
      item_type: struct
      name: http_object_request
      pos:
        line_end: 262
        line_start: 247
        source_file: /src/git/http.h
    typedefs: []
    union: []
- function_names:
  - conflicted_submodule_item_free
  - INITIALIZE_CI
  - VERIFY_CI
  - ASSIGN_AND_VERIFY_CI
  - free_strmap_strings
  - clear_or_reinit_internal_opts
  - format_commit
  - path_msg
  - pool_alloc_filespec
  - pool_diff_queue
  - add_flattened_path
  - unique_path
  - traverse_trees_wrapper_callback
  - traverse_trees_wrapper
  - setup_path_info
  - add_pair
  - collect_rename_info
  - collect_merge_info_callback
  - resolve_trivial_directory_merge
  - handle_deferred_entries
  - collect_merge_info
  - find_first_merges
  - merge_submodule
  - initialize_attr_index
  - merge_3way
  - handle_content_merge
  - apply_dir_rename
  - path_in_way
  - handle_path_level_conflicts
  - get_provisional_directory_renames
  - handle_directory_level_conflicts
  - check_dir_renamed
  - compute_collisions
  - free_collisions
  - check_for_directory_rename
  - apply_directory_rename_modifications
  - process_renames
  - possible_side_renames
  - possible_renames
  - resolve_diffpair_statuses
  - prune_cached_from_relevant
  - use_cached_pairs
  - cache_new_pair
  - possibly_cache_new_pair
  - compare_pairs
  - detect_regular_renames
  - collect_renames
  - detect_and_process_renames
  - sort_dirs_next_to_their_children
  - read_oid_strbuf
  - blob_unchanged
  - tree_entry_order
  - write_tree
  - record_entry_for_tree
  - write_completed_directory
  - process_entry
  - prefetch_for_content_merges
  - process_entries
  - checkout
  - record_conflicted_index_entries
  - print_submodule_conflict_suggestion
  - for_each_string_list_item
  - merge_display_update_messages
  - merge_get_conflicted_files
  - merge_switch_to_result
  - merge_finalize
  - shift_tree_object
  - set_commit_tree
  - make_virtual_commit
  - merge_start
  - merge_check_renames_reusable
  - move_opt_priv_to_result_priv
  - merge_ort_nonrecursive_internal
  - merge_ort_internal
  - merge_incore_nonrecursive
  - merge_incore_recursive
  - merge_recursive_config
  - init_merge_options
  - init_ui_merge_options
  - init_basic_merge_options
  - copy_merge_options
  - clear_merge_options
  - parse_merge_opt
  source_file: /src/git/merge-ort.c
  types:
    enum:
    - enumerators:
      - name: MERGE_BASE
        value: '0'
      - name: MERGE_SIDE1
        value: '1'
      - name: MERGE_SIDE2
        value: '2'
      item_type: enum
      name: merge_side
      pos:
        line_end: 78
        line_start: 74
        source_file: /src/git/merge-ort.c
    - enumerators:
      - name: NB_REGULAR_CONFLICT_TYPES
      - name: ERROR_OBJECT_NOT_A_BLOB
      - name: ERROR_SUBMODULE_CORRUPT
      - name: CONFLICT_FILE_DIRECTORY
      - name: CONFLICT_BINARY
      - name: CONFLICT_MODIFY_DELETE
      - name: CONFLICT_DIR_RENAME_COLLISION
      - name: CONFLICT_SUBMODULE_FAILED_TO_MERGE
      - name: INFO_SUBMODULE_FAST_FORWARDING
      - name: INFO_DIR_RENAME_SKIPPED_DUE_TO_RERENAME
      - name: CONFLICT_SUBMODULE_HISTORY_NOT_AVAILABLE
      - name: CONFLICT_SUBMODULE_NULL_MERGE_BASE
      - name: ERROR_OBJECT_WRITE_FAILED
      - name: ERROR_THREEWAY_CONTENT_MERGE_FAILED
      - name: CONFLICT_SUBMODULE_FAILED_TO_MERGE_BUT_POSSIBLE_RESOLUTION
      - name: ERROR_OBJECT_READ_FAILED
      - name: CONFLICT_SUBMODULE_NOT_INITIALIZED
      - name: INFO_AUTO_MERGING
        value: '0'
      - name: CONFLICT_CONTENTS
      - name: CONFLICT_DISTINCT_MODES
      - name: CONFLICT_RENAME_RENAME
      - name: CONFLICT_RENAME_COLLIDES
      - name: CONFLICT_RENAME_DELETE
      - name: CONFLICT_DIR_RENAME_SUGGESTED
      - name: CONFLICT_DIR_RENAME_SPLIT
      - name: INFO_DIR_RENAME_APPLIED
      - name: CONFLICT_DIR_RENAME_FILE_IN_WAY
      - name: CONFLICT_SUBMODULE_MAY_HAVE_REWINDS
      - name: NB_TOTAL_TYPES
      item_type: enum
      name: conflict_and_info_types
      pos:
        line_end: 585
        line_start: 529
        source_file: /src/git/merge-ort.c
    preproc_defs:
    - item_type: preproc_def
      name: the_repository
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/git/merge-ort.c
      type_or_value: DO_NOT_USE_THE_REPOSITORY
    structs:
    - fields:
      - name: mask
        type: unsigned long
      - name: dirmask
        type: unsigned long
      - name: names[3]
        type: struct name_entry
      item_type: struct
      name: traversal_callback_data
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/git/merge-ort.c
    - fields:
      - name: possible_trivial_merges
        type: struct strintmap
      - name: trivial_merges_okay
        type: unsigned
      - name: target_dirs
        type: struct strset
      item_type: struct
      name: deferred_traversal_data
      pos:
        line_end: 133
        line_start: 88
        source_file: /src/git/merge-ort.c
    - fields:
      - name: pairs[3]
        type: struct diff_queue_struct
      - name: dirs_removed[3]
        type: struct strintmap
      - name: dir_rename_count[3]
        type: struct strmap
      - name: dir_renames[3]
        type: struct strmap
      - name: relevant_sources[3]
        type: struct strintmap
      - name: deferred[3]
        type: struct deferred_traversal_data
      - name: dir_rename_mask
        type: unsigned
      - name: '*callback_data'
        type: struct traversal_callback_data
      - name: callback_data_nr
        type: int
      - name: '*callback_data_traverse_path'
        type: char
      - name: '*merge_trees[3]'
        type: struct tree
      - name: cached_pairs_valid_side
        type: int
      - name: cached_pairs[3]
        type: struct strmap
      - name: cached_target_names[3]
        type: struct strset
      - name: cached_irrelevant[3]
        type: struct strset
      - name: redo_after_renames
        type: unsigned
      - name: needed_limit
        type: int
      item_type: struct
      name: rename_info
      pos:
        line_end: 315
        line_start: 135
        source_file: /src/git/merge-ort.c
    - fields:
      - name: paths
        type: struct strmap
      - name: conflicted
        type: struct strmap
      - name: pool
        type: struct mem_pool
      - name: conflicts
        type: struct strmap
      - name: renames
        type: struct rename_info
      - name: attr_index
        type: struct index_state
      - name: '*current_dir_name'
        type: char
      - name: '*toplevel_dir'
        type: char
      - name: call_depth
        type: int
      - name: conflicted_submodules
        type: struct string_list
      item_type: struct
      name: merge_options_internal
      pos:
        line_end: 420
        line_start: 317
        source_file: /src/git/merge-ort.c
    - fields:
      - name: '*abbrev'
        type: char
      - name: flag
        type: int
      item_type: struct
      name: conflicted_submodule_item
      pos:
        line_end: 425
        line_start: 422
        source_file: /src/git/merge-ort.c
    - fields:
      - name: oid
        type: struct object_id
      - name: mode
        type: unsigned short
      item_type: struct
      name: version_info
      pos:
        line_end: 438
        line_start: 435
        source_file: /src/git/merge-ort.c
    - fields:
      - name: result
        type: struct version_info
      - name: is_null
        type: unsigned
      - name: clean
        type: unsigned
      - name: basename_offset
        type: size_t
      - name: '*directory_name'
        type: char
      item_type: struct
      name: merged_info
      pos:
        line_end: 469
        line_start: 440
        source_file: /src/git/merge-ort.c
    - fields:
      - name: merged
        type: struct merged_info
      - name: stages[3]
        type: struct version_info
      - name: '*pathnames[3]'
        type: char
      - name: df_conflict
        type: unsigned
      - name: path_conflict
        type: unsigned
      - name: filemask
        type: unsigned
      - name: dirmask
        type: unsigned
      - name: match_mask
        type: unsigned
      item_type: struct
      name: conflict_info
      pos:
        line_end: 527
        line_start: 471
        source_file: /src/git/merge-ort.c
    - fields:
      - name: type
        type: enum conflict_and_info_types
      - name: paths
        type: struct strvec
      item_type: struct
      name: logical_conflict_info
      pos:
        line_end: 652
        line_start: 649
        source_file: /src/git/merge-ort.c
    - fields:
      - name: source_files
        type: struct string_list
      - name: reported_already
        type: unsigned
      item_type: struct
      name: collision_info
      pos:
        line_end: 2324
        line_start: 2321
        source_file: /src/git/merge-ort.c
    - fields:
      - name: versions
        type: struct string_list
      - name: offsets
        type: struct string_list
      - name: '*last_directory'
        type: char
      - name: last_directory_len
        type: unsigned
      item_type: struct
      name: directory_versions
      pos:
        line_end: 3815
        line_start: 3774
        source_file: /src/git/merge-ort.c
    typedefs: []
    union: []
- function_names:
  - __ac_isempty
  - __ac_isdel
  - __ac_iseither
  - __ac_set_isdel_false
  - __ac_set_isempty_false
  - __ac_set_isboth_false
  - __ac_set_isdel_true
  - __ac_fsize
  - kroundup32
  - __ac_X31_hash_string
  - kh_str_hash_func
  - kh_str_hash_equal
  - __KHASH_TYPE
  - __KHASH_PROTOTYPES
  - __KHASH_IMPL
  - KHASH_DECLARE
  - KHASH_INIT2
  - KHASH_INIT
  - kh_exist
  - kh_key
  - kh_val
  - kh_value
  - kh_begin
  - kh_end
  - kh_size
  - kh_n_buckets
  - kh_foreach
  - kh_foreach_value
  - oidhash_by_value
  - oideq_by_value
  source_file: /src/git/khash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AC_VERSION_KHASH_H
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/khash.h
      type_or_value: '"0.2.8"'
    structs: []
    typedefs:
    - item_type: typedef
      name: khint32_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/git/khash.h
      type: uint32_t
    - item_type: typedef
      name: khint64_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/git/khash.h
      type: uint64_t
    - item_type: typedef
      name: khint_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/git/khash.h
      type: khint32_t
    - item_type: typedef
      name: khiter_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/git/khash.h
      type: khint_t
    union: []
- function_names:
  - git_SHA1DCInit
  - git_SHA1DCFinal
  - git_SHA1DCUpdate
  source_file: /src/git/sha1dc_git.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BUG_ON_NON_EMPTY_PREFIX
  source_file: /src/git/builtin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - jw_init
  - jw_release
  - append_quoted_string
  - indent_pretty
  - begin
  - assert_in_object
  - assert_in_array
  - maybe_add_comma
  - fmt_double
  - object_common
  - array_common
  - assert_is_terminated
  - jw_object_begin
  - jw_object_string
  - jw_object_intmax
  - jw_object_double
  - jw_object_true
  - jw_object_false
  - jw_object_bool
  - jw_object_null
  - increase_indent
  - kill_indent
  - append_sub_jw
  - jw_object_sub_jw
  - jw_object_inline_begin_object
  - jw_object_inline_begin_array
  - jw_array_begin
  - jw_array_string
  - jw_array_intmax
  - jw_array_double
  - jw_array_true
  - jw_array_false
  - jw_array_bool
  - jw_array_null
  - jw_array_sub_jw
  - jw_array_argc_argv
  - jw_array_argv
  - jw_array_inline_begin_object
  - jw_array_inline_begin_array
  - jw_is_terminated
  - jw_end
  source_file: /src/git/json-writer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_conv_flags
  - fill_loose_path
  - odb_loose_path
  - freshen_file
  - check_and_freshen_file
  - check_and_freshen_source
  - odb_source_loose_has_object
  - format_object_header
  - check_object_signature
  - stream_object_signature
  - open_loose_object
  - quick_has_loose
  - map_fd
  - odb_source_loose_map_object
  - unpack_loose_header
  - unpack_loose_rest
  - parse_loose_header
  - read_object_info_from_path
  - odb_source_loose_read_object_info
  - hash_object_body
  - write_object_file_prepare
  - check_collision
  - finalize_object_file
  - finalize_object_file_flags
  - hash_object_file
  - prepare_loose_object_transaction
  - fsync_loose_object_transaction
  - flush_loose_object_transaction
  - close_loose_object
  - directory_size
  - create_tmpfile
  - start_loose_object_common
  - write_loose_object_common
  - end_loose_object_common
  - write_loose_object
  - odb_source_loose_freshen_object
  - odb_source_loose_write_stream
  - odb_source_loose_write_object
  - force_object_loose
  - hash_format_check_report
  - index_mem
  - index_stream_convert_blob
  - index_pipe
  - index_core
  - already_written
  - prepare_packfile_transaction
  - hash_blob_stream
  - stream_blob_to_pack
  - flush_packfile_transaction
  - odb_transaction_files_write_object_stream
  - index_fd
  - index_path
  - read_pack_header
  - for_each_file_in_obj_subdir
  - for_each_loose_file_in_source
  - for_each_object_wrapper_cb
  - for_each_prefixed_object_wrapper_cb
  - odb_source_loose_for_each_object
  - count_loose_object
  - odb_source_loose_count_objects
  - find_abbrev_len_cb
  - odb_source_loose_find_abbrev_len
  - append_loose_object
  - odb_source_loose_cache
  - odb_source_loose_clear_cache
  - odb_source_loose_reprepare
  - check_stream_oid
  - read_loose_object
  - odb_transaction_files_commit
  - odb_transaction_files_begin
  - odb_source_loose_new
  - odb_source_loose_free
  - read_istream_loose
  - close_istream_loose
  - odb_source_loose_read_object_stream
  source_file: /src/git/object-file.c
  types:
    enum:
    - enumerators:
      - name: ULHR_OK
      - name: ULHR_BAD
      - name: ULHR_TOO_LONG
      item_type: enum
      name: unpack_loose_header_result
      pos:
        line_end: 234
        line_start: 230
        source_file: /src/git/object-file.c
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HEADER_LEN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/object-file.c
      type_or_value: '32'
    - item_type: preproc_def
      name: CHECK_COLLISION_DEST_VANISHED
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/git/object-file.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: SMALL_FILE_SIZE
      pos:
        line_end: 1356
        line_start: 1355
        source_file: /src/git/object-file.c
      type_or_value: (32*1024)
    structs:
    - fields:
      - name: '*pack_tmp_name'
        type: char
      - name: '*f'
        type: struct hashfile
      - name: offset
        type: off_t
      - name: pack_idx_opts
        type: struct pack_idx_option
      - name: '**written'
        type: struct pack_idx_entry
      - name: alloc_written
        type: uint32_t
      - name: nr_written
        type: uint32_t
      item_type: struct
      name: transaction_packfile
      pos:
        line_end: 737
        line_start: 728
        source_file: /src/git/object-file.c
    - fields:
      - name: base
        type: struct odb_transaction
      - name: '*objdir'
        type: struct tmp_objdir
      - name: packfile
        type: struct transaction_packfile
      item_type: struct
      name: odb_transaction_files
      pos:
        line_end: 744
        line_start: 739
        source_file: /src/git/object-file.c
    - fields:
      - name: '*source'
        type: struct odb_source
      - name: '*request'
        type: struct object_info
      - name: cb
        type: odb_for_each_object_cb
      - name: '*cb_data'
        type: void
      item_type: struct
      name: for_each_object_wrapper_data
      pos:
        line_end: 1839
        line_start: 1834
        source_file: /src/git/object-file.c
    - fields:
      - name: '*oid'
        type: struct object_id
      - name: len
        type: unsigned
      item_type: struct
      name: find_abbrev_len_data
      pos:
        line_end: 1967
        line_start: 1964
        source_file: /src/git/object-file.c
    - fields:
      - name: base
        type: struct odb_read_stream
      - name: z
        type: git_zstream
      - name: z_state
        type: "enum {\n\t\tODB_LOOSE_READ_STREAM_INUSE,\n\t\tODB_LOOSE_READ_STREAM_DONE,\n\t\tODB_LOOSE_READ_STREAM_ERROR,\n\t}"
      - name: '*mapped'
        type: void
      - name: mapsize
        type: unsigned long
      - name: hdr[32]
        type: char
      - name: hdr_avail
        type: int
      - name: hdr_used
        type: int
      item_type: struct
      name: odb_loose_read_stream
      pos:
        line_end: 2237
        line_start: 2224
        source_file: /src/git/object-file.c
    typedefs: []
    union: []
- function_names:
  - get_hash_hex_algop
  - get_hash_hex
  - get_oid_hex_algop
  - get_oid_hex_any
  - get_oid_hex
  - parse_oid_hex_algop_impl
  - parse_oid_hex_any
  - parse_oid_hex
  - hash_to_hex_algop_r
  - oid_to_hex_r
  - hash_to_hex_algop
  - hash_to_hex
  - oid_to_hex
  source_file: /src/git/hex.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/merge-ll.h
  types:
    enum:
    - enumerators:
      - name: LL_MERGE_ERROR
        value: '-1'
      - name: LL_MERGE_BINARY_CONFLICT
      - name: LL_MERGE_CONFLICT
      - name: LL_MERGE_OK
        value: '0'
      item_type: enum
      name: ll_merge_result
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/git/merge-ll.h
    preproc_defs:
    - item_type: preproc_def
      name: LL_MERGE_OPTIONS_INIT
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/git/merge-ll.h
      type_or_value: '{ .conflict_style = -1 }'
    structs:
    - fields:
      - name: virtual_ancestor
        type: unsigned
      - name: variant
        type: unsigned
      - name: renormalize
        type: unsigned
      - name: extra_marker_size
        type: unsigned
      - name: conflict_style
        type: int
      - name: xdl_opts
        type: long
      item_type: struct
      name: ll_merge_options
      pos:
        line_end: 85
        line_start: 48
        source_file: /src/git/merge-ll.h
    typedefs: []
    union: []
- function_names:
  - repo_for_eack_pack_data_init
  - repo_for_each_pack_data_next
  - repo_for_each_pack
  source_file: /src/git/packfile.h
  types:
    enum:
    - enumerators:
      - name: KEPT_PACK_ON_DISK
        value: (1 << 0)
      - name: KEPT_PACK_IN_CORE
        value: (1 << 1)
      - name: KEPT_PACK_IN_CORE_OPEN
        value: (1 << 2)
      item_type: enum
      name: kept_pack_type
      pos:
        line_end: 270
        line_start: 266
        source_file: /src/git/packfile.h
    preproc_defs:
    - item_type: preproc_def
      name: PACKDIR_FILE_PACK
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/git/packfile.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PACKDIR_FILE_IDX
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/git/packfile.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PACKDIR_FILE_GARBAGE
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/git/packfile.h
      type_or_value: '4'
    structs:
    - fields:
      - name: '*windows'
        type: struct pack_window
      - name: pack_size
        type: off_t
      - name: '*index_data'
        type: void
      - name: index_size
        type: size_t
      - name: num_objects
        type: uint32_t
      - name: crc_offset
        type: size_t
      - name: bad_objects
        type: struct oidset
      - name: index_version
        type: int
      - name: mtime
        type: time_t
      - name: pack_fd
        type: int
      - name: index
        type: int
      - name: pack_local
        type: unsigned
      - name: hash[GIT_MAX_RAWSZ]
        type: unsigned char
      - name: '*revindex'
        type: struct revindex_entry
      - name: '*revindex_data'
        type: uint32_t
      - name: '*revindex_map'
        type: uint32_t
      - name: revindex_size
        type: size_t
      - name: '*mtimes_map'
        type: uint32_t
      - name: mtimes_size
        type: size_t
      - name: '*repo'
        type: struct repository
      - name: pack_name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: packed_git
      pos:
        line_end: 54
        line_start: 15
        source_file: /src/git/packfile.h
    - fields:
      - name: '*head'
        type: struct packfile_list_entry
      item_type: struct
      name: packfile_list
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/git/packfile.h
    - fields:
      - name: '*next'
        type: struct packfile_list_entry
      - name: '*pack'
        type: struct packed_git
      item_type: struct
      name: packfile_list_entry
      pos:
        line_end: 63
        line_start: 60
        source_file: /src/git/packfile.h
    - fields:
      - name: '*source'
        type: struct odb_source
      - name: packs
        type: struct packfile_list
      - name: kept_cache
        type: "struct {\n\t\tstruct packed_git **packs;\n\t\tunsigned flags;\n\t}"
      - name: '*midx'
        type: struct multi_pack_index
      - name: packs_by_path
        type: struct strmap
      - name: initialized
        type: bool
      - name: skip_mru_updates
        type: bool
      item_type: struct
      name: packfile_store
      pos:
        line_end: 134
        line_start: 81
        source_file: /src/git/packfile.h
    - fields:
      - name: '*source'
        type: struct odb_source
      - name: '*entry'
        type: struct packfile_list_entry
      item_type: struct
      name: repo_for_each_pack_data
      pos:
        line_end: 187
        line_start: 184
        source_file: /src/git/packfile.h
    - fields:
      - name: '*next'
        type: struct pack_window
      - name: '*base'
        type: unsigned char
      - name: offset
        type: off_t
      - name: len
        type: size_t
      - name: last_used
        type: unsigned int
      - name: inuse_cnt
        type: unsigned int
      item_type: struct
      name: pack_window
      pos:
        line_end: 297
        line_start: 290
        source_file: /src/git/packfile.h
    - fields:
      - name: offset
        type: off_t
      - name: '*p'
        type: struct packed_git
      item_type: struct
      name: pack_entry
      pos:
        line_end: 302
        line_start: 299
        source_file: /src/git/packfile.h
    typedefs:
    - item_type: typedef
      name: "each_file_in_pack_dir_fn(const char *full_path, size_t full_path_len,\n\t\t\t\t
        \     const char *file_name, void *data)"
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/git/packfile.h
      type: void
    - item_type: typedef
      name: "each_packed_object_fn(const struct object_id *oid,\n\t\t\t\t  struct
        packed_git *pack,\n\t\t\t\t  uint32_t pos,\n\t\t\t\t  void *data)"
      pos:
        line_end: 353
        line_start: 350
        source_file: /src/git/packfile.h
      type: int
    union: []
- function_names:
  - close_pager_fds
  - finish_pager
  - wait_for_pager_atexit
  - wait_for_pager
  - wait_for_pager_signal
  - core_pager_config
  - git_pager
  - setup_pager_env
  - prepare_pager_args
  - setup_pager
  - pager_in_use
  - term_columns
  - term_clear_line
  - decimal_width
  - pager_command_config
  - check_pager_config
  source_file: /src/git/pager.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_PAGER
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/pager.c
      type_or_value: '"less"'
    structs:
    - fields:
      - name: '*cmd'
        type: char
      - name: want
        type: int
      - name: '*value'
        type: char
      item_type: struct
      name: pager_command_config_data
      pos:
        line_end: 271
        line_start: 267
        source_file: /src/git/pager.c
    typedefs: []
    union: []
- function_names:
  - get_gecos
  - get_gecos
  - xgetpwuid_self
  - copy_gecos
  - add_mailname_host
  - canonical_name
  - add_domainname
  - copy_email
  - ident_default_name
  - ident_default_email
  - ident_default_date
  - reset_ident_date
  - crud
  - has_non_crud
  - strbuf_addstr_without_crud
  - split_ident_line
  - rewrite_ident_line
  - apply_mailmap_to_header
  - ident_env_hint
  - fmt_ident
  - fmt_name
  - git_author_info
  - git_committer_info
  - ident_is_sufficient
  - committer_ident_sufficiently_given
  - author_ident_sufficiently_given
  - set_ident
  - git_ident_config
  - set_env_if
  - prepare_fallback_ident
  - buf_cmp
  - ident_cmp
  source_file: /src/git/ident.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IDENT_NAME_GIVEN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/ident.c
      type_or_value: '01'
    - item_type: preproc_def
      name: IDENT_MAIL_GIVEN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/ident.c
      type_or_value: '02'
    - item_type: preproc_def
      name: IDENT_ALL_GIVEN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/ident.c
      type_or_value: (IDENT_NAME_GIVEN|IDENT_MAIL_GIVEN)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/xdiff-interface.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_XDIFF_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/xdiff-interface.h
      type_or_value: (1024UL * 1024 * 1023)
    structs: []
    typedefs:
    - item_type: typedef
      name: (*xdiff_emit_line_fn)(void *, char *, unsigned long)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/git/xdiff-interface.h
      type: int
    - item_type: typedef
      name: "(*xdiff_emit_hunk_fn)(void *data,\n\t\t\t\t   long old_begin, long old_nr,\n\t\t\t\t
        \  long new_begin, long new_nr,\n\t\t\t\t   const char *func, long funclen)"
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/git/xdiff-interface.h
      type: void
    union: []
- function_names:
  - traverse_commit_list
  source_file: /src/git/list-objects.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*show_commit_fn)(struct commit *, void *)
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/git/list-objects.h
      type: void
    - item_type: typedef
      name: (*show_object_fn)(struct object *, const char *, void *)
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/git/list-objects.h
      type: void
    - item_type: typedef
      name: (*show_edge_fn)(struct commit *)
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/git/list-objects.h
      type: void
    union: []
- function_names: []
  source_file: /src/git/sha1dc_git.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: git_SHA1DCInit
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/sha1dc_git.h
      type_or_value: SHA1DCInit
    - item_type: preproc_def
      name: platform_SHA_CTX
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/sha1dc_git.h
      type_or_value: SHA1_CTX
    - item_type: preproc_def
      name: platform_SHA1_Init
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/sha1dc_git.h
      type_or_value: git_SHA1DCInit
    - item_type: preproc_def
      name: platform_SHA1_Update
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/sha1dc_git.h
      type_or_value: git_SHA1DCUpdate
    - item_type: preproc_def
      name: platform_SHA1_Final
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/sha1dc_git.h
      type_or_value: git_SHA1DCFinal
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_SHA1_Clone
  - git_SHA1_Clone_unsafe
  - git_SHA256_Clone
  - hash_algo_by_ptr
  - hashcmp
  - hasheq
  - hashcpy
  - hashclr
  - oidcmp
  - oideq
  - oidcpy
  - oidread
  - oidclr
  - oiddup
  - oid_set_algo
  - oidhash
  - is_null_oid
  - is_empty_blob_oid
  - is_empty_tree_oid
  source_file: /src/git/hash.h
  types:
    enum:
    - enumerators:
      - name: FOUND
        value: '0'
      - name: SHORT_NAME_AMBIGUOUS
        value: '-2'
      - name: MISSING_OBJECT
        value: '-1'
      - name: DANGLING_SYMLINK
        value: '-4'
      - name: SYMLINK_LOOP
        value: '-5'
      - name: NOT_DIR
        value: '-6'
      item_type: enum
      name: get_oid_result
      pos:
        line_end: 251
        line_start: 235
        source_file: /src/git/hash.h
    preproc_defs:
    - item_type: preproc_def
      name: SHA1_BACKEND
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/hash.h
      type_or_value: '"SHA1_APPLE (No collision detection)"'
    - item_type: preproc_def
      name: SHA1_BACKEND
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/hash.h
      type_or_value: '"SHA1_OPENSSL (No collision detection)"'
    - item_type: preproc_def
      name: SHA1_BACKEND
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/hash.h
      type_or_value: '"SHA1_DC"'
    - item_type: preproc_def
      name: SHA1_BACKEND
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/hash.h
      type_or_value: '"SHA1_BLK (No collision detection)"'
    - item_type: preproc_def
      name: SHA1_UNSAFE_BACKEND
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/hash.h
      type_or_value: '"SHA1_APPLE_UNSAFE"'
    - item_type: preproc_def
      name: platform_SHA_CTX_unsafe
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/hash.h
      type_or_value: CC_SHA1_CTX
    - item_type: preproc_def
      name: platform_SHA1_Init_unsafe
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/hash.h
      type_or_value: CC_SHA1_Init
    - item_type: preproc_def
      name: platform_SHA1_Update_unsafe
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/hash.h
      type_or_value: CC_SHA1_Update
    - item_type: preproc_def
      name: platform_SHA1_Final_unsafe
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/hash.h
      type_or_value: CC_SHA1_Final
    - item_type: preproc_def
      name: SHA1_UNSAFE_BACKEND
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/hash.h
      type_or_value: '"SHA1_OPENSSL_UNSAFE"'
    - item_type: preproc_def
      name: platform_SHA_CTX_unsafe
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/hash.h
      type_or_value: openssl_SHA1_CTX
    - item_type: preproc_def
      name: platform_SHA1_Init_unsafe
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/hash.h
      type_or_value: openssl_SHA1_Init
    - item_type: preproc_def
      name: platform_SHA1_Clone_unsafe
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/hash.h
      type_or_value: openssl_SHA1_Clone
    - item_type: preproc_def
      name: platform_SHA1_Update_unsafe
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/git/hash.h
      type_or_value: openssl_SHA1_Update
    - item_type: preproc_def
      name: platform_SHA1_Final_unsafe
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/hash.h
      type_or_value: openssl_SHA1_Final
    - item_type: preproc_def
      name: platform_SHA_CTX_unsafe
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/hash.h
      type_or_value: SHA_CTX
    - item_type: preproc_def
      name: platform_SHA1_Init_unsafe
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/hash.h
      type_or_value: SHA1_Init
    - item_type: preproc_def
      name: platform_SHA1_Update_unsafe
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/hash.h
      type_or_value: SHA1_Update
    - item_type: preproc_def
      name: platform_SHA1_Final_unsafe
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/hash.h
      type_or_value: SHA1_Final
    - item_type: preproc_def
      name: SHA1_UNSAFE_BACKEND
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/hash.h
      type_or_value: '"SHA1_BLK_UNSAFE"'
    - item_type: preproc_def
      name: platform_SHA_CTX_unsafe
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/hash.h
      type_or_value: blk_SHA_CTX
    - item_type: preproc_def
      name: platform_SHA1_Init_unsafe
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/git/hash.h
      type_or_value: blk_SHA1_Init
    - item_type: preproc_def
      name: platform_SHA1_Update_unsafe
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/git/hash.h
      type_or_value: blk_SHA1_Update
    - item_type: preproc_def
      name: platform_SHA1_Final_unsafe
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/hash.h
      type_or_value: blk_SHA1_Final
    - item_type: preproc_def
      name: SHA256_BACKEND
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/hash.h
      type_or_value: '"SHA256_NETTLE"'
    - item_type: preproc_def
      name: SHA256_BACKEND
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/hash.h
      type_or_value: '"SHA256_GCRYPT"'
    - item_type: preproc_def
      name: SHA256_BACKEND
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/git/hash.h
      type_or_value: '"SHA256_OPENSSL"'
    - item_type: preproc_def
      name: SHA256_BACKEND
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/hash.h
      type_or_value: '"SHA256_BLK"'
    - item_type: preproc_def
      name: platform_SHA_CTX
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/git/hash.h
      type_or_value: SHA_CTX
    - item_type: preproc_def
      name: platform_SHA1_Init
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/git/hash.h
      type_or_value: SHA1_Init
    - item_type: preproc_def
      name: platform_SHA1_Update
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/git/hash.h
      type_or_value: SHA1_Update
    - item_type: preproc_def
      name: platform_SHA1_Final
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/git/hash.h
      type_or_value: SHA1_Final
    - item_type: preproc_def
      name: platform_SHA_CTX_unsafe
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/git/hash.h
      type_or_value: platform_SHA_CTX
    - item_type: preproc_def
      name: platform_SHA1_Init_unsafe
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Init
    - item_type: preproc_def
      name: platform_SHA1_Update_unsafe
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Update
    - item_type: preproc_def
      name: platform_SHA1_Final_unsafe
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Final
    - item_type: preproc_def
      name: platform_SHA1_Clone_unsafe
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Clone
    - item_type: preproc_def
      name: git_SHA_CTX
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/git/hash.h
      type_or_value: platform_SHA_CTX
    - item_type: preproc_def
      name: git_SHA1_Init
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Init
    - item_type: preproc_def
      name: git_SHA1_Update
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Update
    - item_type: preproc_def
      name: git_SHA1_Final
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Final
    - item_type: preproc_def
      name: git_SHA_CTX_unsafe
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/git/hash.h
      type_or_value: platform_SHA_CTX_unsafe
    - item_type: preproc_def
      name: git_SHA1_Init_unsafe
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Init_unsafe
    - item_type: preproc_def
      name: git_SHA1_Update_unsafe
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Update_unsafe
    - item_type: preproc_def
      name: git_SHA1_Final_unsafe
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Final_unsafe
    - item_type: preproc_def
      name: git_SHA1_Clone
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Clone
    - item_type: preproc_def
      name: git_SHA1_Clone_unsafe
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/git/hash.h
      type_or_value: platform_SHA1_Clone_unsafe
    - item_type: preproc_def
      name: platform_SHA256_CTX
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/git/hash.h
      type_or_value: SHA256_CTX
    - item_type: preproc_def
      name: platform_SHA256_Init
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/git/hash.h
      type_or_value: SHA256_Init
    - item_type: preproc_def
      name: platform_SHA256_Update
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/git/hash.h
      type_or_value: SHA256_Update
    - item_type: preproc_def
      name: platform_SHA256_Final
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/git/hash.h
      type_or_value: SHA256_Final
    - item_type: preproc_def
      name: git_SHA256_CTX
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/git/hash.h
      type_or_value: platform_SHA256_CTX
    - item_type: preproc_def
      name: git_SHA256_Init
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/git/hash.h
      type_or_value: platform_SHA256_Init
    - item_type: preproc_def
      name: git_SHA256_Update
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/git/hash.h
      type_or_value: platform_SHA256_Update
    - item_type: preproc_def
      name: git_SHA256_Final
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/git/hash.h
      type_or_value: platform_SHA256_Final
    - item_type: preproc_def
      name: git_SHA256_Clone
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/git/hash.h
      type_or_value: platform_SHA256_Clone
    - item_type: preproc_def
      name: git_SHA1_Update
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/git/hash.h
      type_or_value: git_SHA1_Update_Chunked
    - item_type: preproc_def
      name: GIT_HASH_UNKNOWN
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/git/hash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GIT_HASH_SHA1
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/git/hash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GIT_HASH_SHA256
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/git/hash.h
      type_or_value: '2'
    - item_type: preproc_def
      name: GIT_HASH_NALGOS
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/git/hash.h
      type_or_value: (GIT_HASH_SHA256 + 1)
    - item_type: preproc_def
      name: GIT_HASH_DEFAULT
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/git/hash.h
      type_or_value: GIT_HASH_SHA256
    - item_type: preproc_def
      name: GIT_HASH_DEFAULT
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/git/hash.h
      type_or_value: GIT_HASH_SHA1
    - item_type: preproc_def
      name: GIT_HASH_SHA1_LEGACY
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/git/hash.h
      type_or_value: GIT_HASH_SHA1
    - item_type: preproc_def
      name: GIT_SHA1_FORMAT_ID
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/git/hash.h
      type_or_value: '0x73686131'
    - item_type: preproc_def
      name: GIT_SHA1_RAWSZ
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/git/hash.h
      type_or_value: '20'
    - item_type: preproc_def
      name: GIT_SHA1_HEXSZ
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/git/hash.h
      type_or_value: (2 * GIT_SHA1_RAWSZ)
    - item_type: preproc_def
      name: GIT_SHA1_BLKSZ
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/git/hash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: GIT_SHA256_FORMAT_ID
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/git/hash.h
      type_or_value: '0x73323536'
    - item_type: preproc_def
      name: GIT_SHA256_RAWSZ
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/git/hash.h
      type_or_value: '32'
    - item_type: preproc_def
      name: GIT_SHA256_HEXSZ
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/git/hash.h
      type_or_value: (2 * GIT_SHA256_RAWSZ)
    - item_type: preproc_def
      name: GIT_SHA256_BLKSZ
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/git/hash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: GIT_MAX_RAWSZ
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/git/hash.h
      type_or_value: GIT_SHA256_RAWSZ
    - item_type: preproc_def
      name: GIT_MAX_HEXSZ
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/git/hash.h
      type_or_value: GIT_SHA256_HEXSZ
    - item_type: preproc_def
      name: GIT_MAX_BLKSZ
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/git/hash.h
      type_or_value: GIT_SHA256_BLKSZ
    - item_type: preproc_def
      name: GET_OID_QUIETLY
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/git/hash.h
      type_or_value: '01'
    - item_type: preproc_def
      name: GET_OID_COMMIT
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/git/hash.h
      type_or_value: '02'
    - item_type: preproc_def
      name: GET_OID_COMMITTISH
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/git/hash.h
      type_or_value: '04'
    - item_type: preproc_def
      name: GET_OID_TREE
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/git/hash.h
      type_or_value: '010'
    - item_type: preproc_def
      name: GET_OID_TREEISH
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/git/hash.h
      type_or_value: '020'
    - item_type: preproc_def
      name: GET_OID_BLOB
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/git/hash.h
      type_or_value: '040'
    - item_type: preproc_def
      name: GET_OID_FOLLOW_SYMLINKS
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/git/hash.h
      type_or_value: '0100'
    - item_type: preproc_def
      name: GET_OID_RECORD_PATH
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/git/hash.h
      type_or_value: '0200'
    - item_type: preproc_def
      name: GET_OID_ONLY_TO_DIE
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/git/hash.h
      type_or_value: '04000'
    - item_type: preproc_def
      name: GET_OID_REQUIRE_PATH
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/git/hash.h
      type_or_value: '010000'
    - item_type: preproc_def
      name: GET_OID_HASH_ANY
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/git/hash.h
      type_or_value: '020000'
    - item_type: preproc_def
      name: GET_OID_SKIP_AMBIGUITY_CHECK
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/git/hash.h
      type_or_value: '040000'
    - item_type: preproc_def
      name: GET_OID_GENTLY
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/git/hash.h
      type_or_value: '0100000'
    - item_type: preproc_def
      name: GET_OID_DISAMBIGUATORS
      pos:
        line_end: 234
        line_start: 230
        source_file: /src/git/hash.h
      type_or_value: "(GET_OID_COMMIT | GET_OID_COMMITTISH | \\\n\tGET_OID_TREE |
        GET_OID_TREEISH | \\\n\tGET_OID_BLOB)"
    - item_type: preproc_def
      name: the_hash_algo
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/git/hash.h
      type_or_value: the_repository->hash_algo
    structs:
    - fields:
      - name: hash[GIT_MAX_RAWSZ]
        type: unsigned char
      - name: algo
        type: uint32_t
      item_type: struct
      name: object_id
      pos:
        line_end: 214
        line_start: 211
        source_file: /src/git/hash.h
    - fields:
      - name: '*algop'
        type: struct git_hash_algo
      - name: state
        type: "union {\n\t\tgit_SHA_CTX sha1;\n\t\tgit_SHA_CTX_unsafe sha1_unsafe;\n\t\tgit_SHA256_CTX
          sha256;\n\t}"
      item_type: struct
      name: git_hash_ctx
      pos:
        line_end: 266
        line_start: 259
        source_file: /src/git/hash.h
    - fields:
      - name: '*name'
        type: char
      - name: format_id
        type: uint32_t
      - name: rawsz
        type: size_t
      - name: hexsz
        type: size_t
      - name: blksz
        type: size_t
      - name: init_fn
        type: git_hash_init_fn
      - name: clone_fn
        type: git_hash_clone_fn
      - name: update_fn
        type: git_hash_update_fn
      - name: final_fn
        type: git_hash_final_fn
      - name: final_oid_fn
        type: git_hash_final_oid_fn
      - name: '*empty_tree'
        type: struct object_id
      - name: '*empty_blob'
        type: struct object_id
      - name: '*null_oid'
        type: struct object_id
      - name: '*unsafe'
        type: struct git_hash_algo
      item_type: struct
      name: git_hash_algo
      pos:
        line_end: 319
        line_start: 274
        source_file: /src/git/hash.h
    typedefs:
    - item_type: typedef
      name: (*git_hash_init_fn)(struct git_hash_ctx *ctx)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/git/hash.h
      type: void
    - item_type: typedef
      name: (*git_hash_clone_fn)(struct git_hash_ctx *dst, const struct git_hash_ctx
        *src)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/git/hash.h
      type: void
    - item_type: typedef
      name: (*git_hash_update_fn)(struct git_hash_ctx *ctx, const void *in, size_t
        len)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/git/hash.h
      type: void
    - item_type: typedef
      name: (*git_hash_final_fn)(unsigned char *hash, struct git_hash_ctx *ctx)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/git/hash.h
      type: void
    - item_type: typedef
      name: (*git_hash_final_oid_fn)(struct object_id *oid, struct git_hash_ctx *ctx)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/git/hash.h
      type: void
    union: []
- function_names:
  - GET_PTR_TYPE
  - CLR_PTR_TYPE
  - SET_PTR_TYPE
  - GET_NIBBLE
  - SUBTREE_SHA1_PREFIXCMP
  - note_tree_search
  - note_tree_find
  - note_tree_consolidate
  - note_tree_remove
  - note_tree_insert
  - note_tree_free
  - non_note_cmp
  - add_non_note
  - load_subtree
  - determine_fanout
  - construct_path_with_fanout
  - for_each_note_helper
  - matches_tree_write_stack
  - write_tree_entry
  - tree_write_stack_init_subtree
  - tree_write_stack_finish_subtree
  - write_each_note_helper
  - write_each_non_note_until
  - write_each_note
  - prune_notes_helper
  - combine_notes_concatenate
  - combine_notes_overwrite
  - combine_notes_ignore
  - string_list_add_note_lines
  - string_list_join_lines_helper
  - combine_notes_cat_sort_uniq
  - string_list_add_one_ref
  - string_list_add_refs_by_glob
  - string_list_add_refs_from_colon_sep
  - notes_display_config
  - default_notes_ref
  - init_notes
  - load_notes_trees
  - for_each_string_list_item
  - init_display_notes
  - release_display_notes
  - enable_default_display_notes
  - enable_ref_display_notes
  - disable_display_notes
  - load_display_notes
  - add_note
  - remove_note
  - get_note
  - for_each_note
  - write_notes_tree
  - prune_notes
  - free_notes
  - format_note
  - format_display_notes
  - copy_note
  - expand_notes_ref
  - expand_loose_notes_ref
  source_file: /src/git/notes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTR_TYPE_NULL
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/git/notes.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PTR_TYPE_INTERNAL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/git/notes.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PTR_TYPE_NOTE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/git/notes.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PTR_TYPE_SUBTREE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/git/notes.c
      type_or_value: '3'
    - item_type: preproc_def
      name: KEY_INDEX
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/git/notes.c
      type_or_value: (the_hash_algo->rawsz - 1)
    - item_type: preproc_def
      name: FANOUT_PATH_SEPARATORS
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/git/notes.c
      type_or_value: (the_hash_algo->rawsz - 1)
    - item_type: preproc_def
      name: FANOUT_PATH_SEPARATORS_MAX
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/git/notes.c
      type_or_value: ((GIT_MAX_HEXSZ / 2) - 1)
    - item_type: preproc_def
      name: FANOUT_PATH_MAX
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/git/notes.c
      type_or_value: GIT_MAX_HEXSZ + FANOUT_PATH_SEPARATORS_MAX + 1
    structs:
    - fields:
      - name: '*a[16]'
        type: void
      item_type: struct
      name: int_node
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/git/notes.c
    - fields:
      - name: key_oid
        type: struct object_id
      - name: val_oid
        type: struct object_id
      item_type: struct
      name: leaf_node
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/git/notes.c
    - fields:
      - name: '*next'
        type: struct non_note
      - name: '*path'
        type: char
      - name: mode
        type: unsigned int
      - name: oid
        type: struct object_id
      item_type: struct
      name: non_note
      pos:
        line_end: 61
        line_start: 56
        source_file: /src/git/notes.c
    - fields:
      - name: '*next'
        type: struct tree_write_stack
      - name: buf
        type: struct strbuf
      - name: path[2]
        type: char
      item_type: struct
      name: tree_write_stack
      pos:
        line_end: 641
        line_start: 637
        source_file: /src/git/notes.c
    - fields:
      - name: '*root'
        type: struct tree_write_stack
      - name: '**nn_list'
        type: struct non_note
      - name: '*nn_prev'
        type: struct non_note
      item_type: struct
      name: write_each_note_data
      pos:
        line_end: 738
        line_start: 734
        source_file: /src/git/notes.c
    - fields:
      - name: '*next'
        type: struct note_delete_list
      - name: '*sha1'
        type: unsigned char
      item_type: struct
      name: note_delete_list
      pos:
        line_end: 787
        line_start: 784
        source_file: /src/git/notes.c
    typedefs: []
    union: []
- function_names:
  - transport_color_config
  - transport_get_color
  - set_upstreams
  - get_refs_from_bundle_inner
  - get_refs_from_bundle
  - fetch_fsck_config_cb
  - fetch_refs_from_bundle
  - close_bundle
  - set_git_option
  - connect_setup
  - die_if_server_options
  - handshake
  - get_refs_via_connect
  - get_bundle_uri
  - fetch_refs_via_pack
  - push_had_errors
  - transport_refs_pushed
  - update_one_tracking_ref
  - transport_update_tracking_ref
  - print_ref_status
  - print_ok_ref_status
  - print_one_push_report
  - print_one_push_status
  - measure_abbrev
  - transport_summary_width
  - transport_print_push_status
  - git_transport_push
  - connect_git
  - disconnect_git
  - transport_take_over
  - is_file
  - external_specification_len
  - protocol_allow_list
  - parse_protocol_config
  - get_protocol_config
  - is_transport_allowed
  - parse_transport_option
  - transport_check_allowed
  - transport_get
  - transport_get_hash_algo
  - transport_set_option
  - transport_set_verbosity
  - die_with_unpushed_submodules
  - pre_push_hook_feed_stdin
  - pre_push_hook_data_alloc
  - pre_push_hook_data_free
  - run_pre_push_hook
  - transport_push
  - transport_get_remote_refs
  - transport_ls_refs_options_release
  - transport_fetch_refs
  - transport_get_remote_bundle_uri
  - transport_unlock_pack
  - transport_connect
  - transport_disconnect
  - transport_anonymize_url
  source_file: /src/git/transport.c
  types:
    enum:
    - enumerators:
      - name: TRANSPORT_COLOR_RESET
        value: '0'
      - name: TRANSPORT_COLOR_REJECTED
        value: '1'
      item_type: enum
      name: color_transport
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/git/transport.c
    - enumerators:
      - name: PROTOCOL_ALLOW_NEVER
        value: '0'
      - name: PROTOCOL_ALLOW_ALWAYS
      - name: PROTOCOL_ALLOW_USER_ONLY
      item_type: enum
      name: protocol_allow_config
      pos:
        line_end: 1068
        line_start: 1064
        source_file: /src/git/transport.c
    preproc_defs: []
    structs:
    - fields:
      - name: fd
        type: int
      - name: header
        type: struct bundle_header
      - name: get_refs_from_bundle_called
        type: unsigned
      item_type: struct
      name: bundle_transport_data
      pos:
        line_end: 133
        line_start: 129
        source_file: /src/git/transport.c
    - fields:
      - name: options
        type: struct git_transport_options
      - name: '*conn'
        type: struct child_process
      - name: fd[2]
        type: int
      - name: finished_handshake
        type: unsigned
      - name: version
        type: enum protocol_version
      - name: extra_have
        type: struct oid_array
      - name: shallow
        type: struct oid_array
      item_type: struct
      name: git_transport_data
      pos:
        line_end: 236
        line_start: 228
        source_file: /src/git/transport.c
    - fields:
      - name: buf
        type: struct strbuf
      - name: '*refs'
        type: struct ref
      item_type: struct
      name: feed_pre_push_hook_data
      pos:
        line_end: 1333
        line_start: 1330
        source_file: /src/git/transport.c
    typedefs: []
    union: []
- function_names:
  - PRAGMA
  - DISABLE_WARNING
  - BUILD_ASSERT_OR_ZERO
  - BARF_UNLESS_AN_ARRAY
  - BARF_UNLESS_COPYABLE
  - BARF_UNLESS_SIGNED
  - BARF_UNLESS_UNSIGNED
  - BARF_UNLESS_AN_ARRAY
  - BARF_UNLESS_COPYABLE
  - BARF_UNLESS_SIGNED
  - BARF_UNLESS_UNSIGNED
  - ARRAY_SIZE
  - bitsizeof
  - maximum_signed_value_of_type
  - maximum_unsigned_value_of_type
  - signed_add_overflows
  - unsigned_add_overflows
  - unsigned_mult_overflows
  - unsigned_left_shift_overflows
  - TYPEOF
  - MSB
  - HAS_MULTI_BITS
  - DIV_ROUND_UP
  - decimal_length
  - _have_unix_sockets
  - is_xplatform_dir_sep
  - precompose_argv_prefix
  - precompose_string_if_needed
  - noop_core_config
  - git_has_dos_drive_prefix
  - git_skip_dos_drive_prefix
  - git_is_dir_sep
  - git_offset_1st_component
  - is_valid_path
  - extract_id_from_env
  - is_path_owned_by_current_uid
  - find_last_dir_sep
  - git_has_dir_sep
  - has_dir_sep
  - query_user_email
  - const_error
  - error
  - error_errno
  - CONST_OUTPARAM
  - skip_prefix
  - skip_prefix_impl
  - skip_prefix_mem
  - strip_suffix_mem
  - strip_suffix
  - SWAP
  - on_disk_bytes
  - on_disk_bytes
  - git_open
  - st_add_overflow
  - st_add
  - st_add3
  - st_add4
  - st_mult
  - st_sub
  - st_left_shift
  - cast_size_t_to_ulong
  - cast_size_t_to_uint32_t
  - cast_size_t_to_int
  - u64_mult
  - u64_add
  - xalloca
  - xalloca_free
  - xalloca
  - xalloca_free
  - FREE_AND_NULL
  - ALLOC_ARRAY
  - CALLOC_ARRAY
  - REALLOC_ARRAY
  - MEMZERO_ARRAY
  - COPY_ARRAY
  - copy_array
  - MOVE_ARRAY
  - move_array
  - DUP_ARRAY
  - FLEX_ALLOC_MEM
  - FLEXPTR_ALLOC_MEM
  - FLEX_ALLOC_STR
  - FLEXPTR_ALLOC_STR
  - alloc_nr
  - ALLOC_GROW
  - ALLOC_GROW_BY
  - xstrdup_or_null
  - xsize_t
  - skip_iprefix
  - skip_iprefix_impl
  - skip_iprefix_mem
  - strtoul_ui
  - strtol_i
  - regexec_buf
  - fstat_is_reliable
  - fstat_is_reliable
  - BUG
  - ASSERT
  - bug
  - BUG_if_bug
  - is_missing_file_error
  - exit
  - container_of
  - container_of_or_null_offset
  - container_of_or_null
  - OFFSETOF_VAR
  - OFFSETOF_VAR
  - NOT_CONSTANT
  - assert
  source_file: /src/git/git-compat-util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: have_unix_sockets
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/git/git-compat-util.h
      type_or_value: _have_unix_sockets
    - item_type: preproc_def
      name: __AVAILABILITY_MACROS_USES_AVAILABILITY
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/git/git-compat-util.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_SEP
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/git/git-compat-util.h
      type_or_value: ''':'''
    - item_type: preproc_def
      name: _PATH_DEFPATH
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/git/git-compat-util.h
      type_or_value: '"/usr/local/bin:/usr/bin:/bin"'
    - item_type: preproc_def
      name: platform_core_config
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/git/git-compat-util.h
      type_or_value: noop_core_config
    - item_type: preproc_def
      name: has_dos_drive_prefix
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/git/git-compat-util.h
      type_or_value: git_has_dos_drive_prefix
    - item_type: preproc_def
      name: skip_dos_drive_prefix
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/git/git-compat-util.h
      type_or_value: git_skip_dos_drive_prefix
    - item_type: preproc_def
      name: is_dir_sep
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/git/git-compat-util.h
      type_or_value: git_is_dir_sep
    - item_type: preproc_def
      name: offset_1st_component
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/git/git-compat-util.h
      type_or_value: git_offset_1st_component
    - item_type: preproc_def
      name: fspathcmp
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/git/git-compat-util.h
      type_or_value: git_fspathcmp
    - item_type: preproc_def
      name: fspathncmp
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/git/git-compat-util.h
      type_or_value: git_fspathncmp
    - item_type: preproc_def
      name: ROOT_UID
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/git/git-compat-util.h
      type_or_value: '65535'
    - item_type: preproc_def
      name: ROOT_UID
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/git/git-compat-util.h
      type_or_value: '0'
    - item_type: preproc_def
      name: is_path_owned_by_current_user
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/git/git-compat-util.h
      type_or_value: is_path_owned_by_current_uid
    - item_type: preproc_def
      name: NSIG
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/git/git-compat-util.h
      type_or_value: '100'
    - item_type: preproc_def
      name: NORETURN
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/git/git-compat-util.h
      type_or_value: __attribute__((noreturn))
    - item_type: preproc_def
      name: NORETURN
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/git/git-compat-util.h
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: NORETURN_PTR
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/git/git-compat-util.h
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: NORETURN
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/git/git-compat-util.h
      type_or_value: __declspec(noreturn)
    - item_type: preproc_def
      name: LAST_ARG_MUST_BE_NULL
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/git/git-compat-util.h
      type_or_value: __attribute__((sentinel))
    - item_type: preproc_def
      name: RESULT_MUST_BE_USED
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/git/git-compat-util.h
      type_or_value: __attribute__ ((warn_unused_result))
    - item_type: preproc_def
      name: MAYBE_UNUSED
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/git/git-compat-util.h
      type_or_value: __attribute__((__unused__))
    - item_type: preproc_def
      name: DEFAULT_PACKED_GIT_WINDOW_SIZE
      pos:
        line_end: 569
        line_start: 568
        source_file: /src/git/git-compat-util.h
      type_or_value: (1 * 1024 * 1024)
    - item_type: preproc_def
      name: DEFAULT_PACKED_GIT_WINDOW_SIZE
      pos:
        line_end: 577
        line_start: 573
        source_file: /src/git/git-compat-util.h
      type_or_value: "(sizeof(void*) >= 8 \\\n\t\t?  1 * 1024 * 1024 * 1024 \\\n\t\t:
        32 * 1024 * 1024)"
    - item_type: preproc_def
      name: DEFAULT_PACKED_GIT_LIMIT
      pos:
        line_end: 588
        line_start: 586
        source_file: /src/git/git-compat-util.h
      type_or_value: '((1024L * 1024L) * (size_t)(sizeof(void*) >= 8 ? (32 * 1024L
        * 1024L) : 256))'
    - item_type: preproc_def
      name: DEFAULT_MAX_ALLOWED_TREE_DEPTH
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/git/git-compat-util.h
      type_or_value: '512'
    - item_type: preproc_def
      name: DEFAULT_MAX_ALLOWED_TREE_DEPTH
      pos:
        line_end: 609
        line_start: 608
        source_file: /src/git/git-compat-util.h
      type_or_value: '1280'
    - item_type: preproc_def
      name: DEFAULT_MAX_ALLOWED_TREE_DEPTH
      pos:
        line_end: 611
        line_start: 610
        source_file: /src/git/git-compat-util.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: st_add_overflow
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/git/git-compat-util.h
      type_or_value: __builtin_add_overflow
    - item_type: preproc_def
      name: MAX_IO_SIZE_DEFAULT
      pos:
        line_end: 725
        line_start: 724
        source_file: /src/git/git-compat-util.h
      type_or_value: (8*1024*1024)
    - item_type: preproc_def
      name: MAX_IO_SIZE
      pos:
        line_end: 727
        line_start: 726
        source_file: /src/git/git-compat-util.h
      type_or_value: SSIZE_MAX
    - item_type: preproc_def
      name: MAX_IO_SIZE
      pos:
        line_end: 729
        line_start: 728
        source_file: /src/git/git-compat-util.h
      type_or_value: MAX_IO_SIZE_DEFAULT
    - item_type: preproc_def
      name: DEFAULT_IO_BUFFER_SIZE
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/git/git-compat-util.h
      type_or_value: (128 * 1024)
    - item_type: preproc_def
      name: regcomp
      pos:
        line_end: 1006
        line_start: 1005
        source_file: /src/git/git-compat-util.h
      type_or_value: git_regcomp
    - item_type: preproc_def
      name: FORCE_DIR_SET_GID
      pos:
        line_end: 1010
        line_start: 1009
        source_file: /src/git/git-compat-util.h
      type_or_value: S_ISGID
    - item_type: preproc_def
      name: FORCE_DIR_SET_GID
      pos:
        line_end: 1012
        line_start: 1011
        source_file: /src/git/git-compat-util.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FSYNC_METHOD_DEFAULT
      pos:
        line_end: 1042
        line_start: 1041
        source_file: /src/git/git-compat-util.h
      type_or_value: FSYNC_METHOD_WRITEOUT_ONLY
    - item_type: preproc_def
      name: FSYNC_METHOD_DEFAULT
      pos:
        line_end: 1044
        line_start: 1043
        source_file: /src/git/git-compat-util.h
      type_or_value: FSYNC_METHOD_FSYNC
    - item_type: preproc_def
      name: SHELL_PATH
      pos:
        line_end: 1049
        line_start: 1048
        source_file: /src/git/git-compat-util.h
      type_or_value: '"/bin/sh"'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*report_fn)(const char *, va_list params)
      pos:
        line_end: 455
        line_start: 455
        source_file: /src/git/git-compat-util.h
      type: void
    union: []
- function_names:
  - parse_whitespace_rule
  - whitespace_rule
  - whitespace_error_string
  - ws_check_emit_1
  - ws_check_emit
  - ws_check
  - ws_blank_line
  - ws_fix_copy
  source_file: /src/git/ws.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*rule_name'
        type: char
      - name: rule_bits
        type: unsigned
      - name: loosens_error
        type: unsigned
      item_type: struct
      name: whitespace_rule
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/git/ws.c
    typedefs: []
    union: []
- function_names:
  - skip_prefix_in_csv
  - sideband_allow_control_characters_config
  - sideband_config_callback
  - sideband_apply_url_config
  - use_sideband_colors
  - list_config_color_sideband_slots
  - handle_ansi_sequence
  - strbuf_add_sanitized
  - maybe_colorize_sideband
  - demultiplex_sideband
  - send_sideband
  source_file: /src/git/sideband.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DISPLAY_PREFIX
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/git/sideband.c
      type_or_value: '"remote: "'
    - item_type: preproc_def
      name: ANSI_PREFIX
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/git/sideband.c
      type_or_value: '"\033[K"'
    - item_type: preproc_def
      name: DUMB_SUFFIX
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/git/sideband.c
      type_or_value: '"        "'
    structs:
    - fields:
      - name: '*keyword'
        type: char
      - name: color[COLOR_MAXLEN]
        type: char
      item_type: struct
      name: keyword_entry
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/git/sideband.c
    typedefs: []
    union: []
- function_names:
  - trace2_initialize
  - trace2_cmd_start
  - trace2_cmd_exit
  - trace2_cmd_error_va
  - trace2_cmd_path
  - trace2_cmd_ancestry
  - trace2_cmd_name
  - trace2_cmd_mode
  - trace2_cmd_alias
  - trace2_cmd_list_config
  - trace2_cmd_list_env_vars
  - trace2_cmd_set_config
  - trace2_child_start
  - trace2_child_exit
  - trace2_child_ready
  - trace2_exec
  - trace2_exec_result
  - trace2_thread_start
  - trace2_thread_exit
  - trace2_def_param
  - trace2_def_repo
  - trace2_region_enter
  - trace2_region_enter_printf_va
  - trace2_region_enter_printf
  - trace2_region_leave
  - trace2_region_leave_printf_va
  - trace2_region_leave_printf
  - trace2_data_string
  - trace2_data_intmax
  - trace2_data_json
  - trace2_printf_va
  - trace2_printf
  source_file: /src/git/trace2.h
  types:
    enum:
    - enumerators:
      - name: TRACE2_TIMER_ID_TEST1
        value: '0'
      - name: TRACE2_NUMBER_OF_TIMERS
      - name: TRACE2_TIMER_ID_TEST2
      item_type: enum
      name: trace2_timer_id
      pos:
        line_end: 515
        line_start: 504
        source_file: /src/git/trace2.h
    - enumerators:
      - name: TRACE2_COUNTER_ID_TEST1
        value: '0'
      - name: TRACE2_COUNTER_ID_FSYNC_WRITEOUT_ONLY
      - name: TRACE2_COUNTER_ID_REFTABLE_RESEEKS
      - name: TRACE2_COUNTER_ID_PACKED_REFS_JUMPS
      - name: TRACE2_COUNTER_ID_TEST2
      - name: TRACE2_COUNTER_ID_FSYNC_HARDWARE_FLUSH
      - name: TRACE2_NUMBER_OF_COUNTERS
      item_type: enum
      name: trace2_counter_id
      pos:
        line_end: 564
        line_start: 546
        source_file: /src/git/trace2.h
    - enumerators:
      - name: TRACE2_PROCESS_INFO_STARTUP
      - name: TRACE2_PROCESS_INFO_EXIT
      item_type: enum
      name: trace2_process_info_reason
      pos:
        line_end: 586
        line_start: 583
        source_file: /src/git/trace2.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_rfc3986_unreserved
  - is_casefolding_rfc3986_unreserved
  - is_urlschemechar
  - is_url
  - url_decode_internal
  - url_decode
  - url_decode_mem
  - url_percent_decode
  - url_decode_parameter_name
  - url_decode_parameter_value
  - end_url_with_slash
  - str_end_url_with_slash
  - url_is_local_not_ssh
  - url_get_scheme
  source_file: /src/git/url.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pack_geometry_weight
  - pack_geometry_cmp
  - pack_geometry_init
  - compute_pack_geometry_split
  - pack_geometry_split
  - pack_geometry_preferred_pack
  - remove_redundant_packs
  - pack_geometry_remove_redundant
  - pack_geometry_release
  source_file: /src/git/repack-geometry.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compare_by_type
  - push_to_stack
  - add_path_to_list
  - add_tree_entries
  - walk_path
  - clear_paths_to_lists
  - show_edge
  - setup_pending_objects
  - walk_objects_by_path
  - path_walk_info_init
  - path_walk_info_clear
  source_file: /src/git/path-walk.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TYPE_AND_OID_LIST_INIT
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/git/path-walk.c
      type_or_value: "{ \\\n\t.type = OBJ_NONE, \t \\\n\t.oids = OID_ARRAY_INIT\t
        \\\n}"
    structs:
    - fields:
      - name: type
        type: enum object_type
      - name: oids
        type: struct oid_array
      - name: maybe_interesting
        type: int
      item_type: struct
      name: type_and_oid_list
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/git/path-walk.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*revs'
        type: struct rev_info
      - name: '*info'
        type: struct path_walk_info
      - name: paths_to_lists
        type: struct strmap
      - name: path_stack
        type: struct prio_queue
      - name: path_stack_pushed
        type: struct strset
      - name: exact_pathspecs
        type: unsigned
      item_type: struct
      name: path_walk_context
      pos:
        line_end: 67
        line_start: 37
        source_file: /src/git/path-walk.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/parallel-checkout.h
  types:
    enum:
    - enumerators:
      - name: PC_UNINITIALIZED
        value: '0'
      - name: PC_ACCEPTING_ENTRIES
      - name: PC_RUNNING
      item_type: enum
      name: pc_status
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/git/parallel-checkout.h
    - enumerators:
      - name: PC_ITEM_PENDING
        value: '0'
      - name: PC_ITEM_WRITTEN
      - name: PC_ITEM_FAILED
      - name: PC_ITEM_COLLIDED
      item_type: enum
      name: pc_item_status
      pos:
        line_end: 61
        line_start: 49
        source_file: /src/git/parallel-checkout.h
    preproc_defs:
    - item_type: preproc_def
      name: PC_ITEM_RESULT_BASE_SIZE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/git/parallel-checkout.h
      type_or_value: offsetof(struct pc_item_result, st)
    structs:
    - fields:
      - name: '*ce'
        type: struct cache_entry
      - name: ca
        type: struct conv_attrs
      - name: id
        type: size_t
      - name: '*checkout_counter'
        type: int
      - name: status
        type: enum pc_item_status
      - name: st
        type: struct stat
      item_type: struct
      name: parallel_checkout_item
      pos:
        line_end: 76
        line_start: 63
        source_file: /src/git/parallel-checkout.h
    - fields:
      - name: id
        type: size_t
      - name: oid
        type: struct object_id
      - name: ce_mode
        type: unsigned int
      - name: crlf_action
        type: enum convert_crlf_action
      - name: ident
        type: int
      - name: working_tree_encoding_len
        type: size_t
      - name: name_len
        type: size_t
      item_type: struct
      name: pc_item_fixed_portion
      pos:
        line_end: 95
        line_start: 87
        source_file: /src/git/parallel-checkout.h
    - fields:
      - name: id
        type: size_t
      - name: status
        type: enum pc_item_status
      - name: st
        type: struct stat
      item_type: struct
      name: pc_item_result
      pos:
        line_end: 105
        line_start: 101
        source_file: /src/git/parallel-checkout.h
    typedefs: []
    union: []
- function_names:
  - tar_write_block
  - write_if_needed
  - do_write_blocked
  - finish_record
  - write_blocked
  - write_trailer
  - stream_blocked
  - strbuf_append_ext_header
  - strbuf_append_ext_header_uint
  - ustar_header_chksum
  - get_path_prefix
  - prepare_header
  - write_extended_header
  - write_tar_entry
  - write_global_extended_header
  - find_tar_filter
  - tar_filter_config
  - git_tar_config
  - write_tar_archive
  - tgz_deflate
  - tgz_write_block
  - write_tar_filter_archive
  - init_tar_archiver
  source_file: /src/git/archive-tar.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RECORDSIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/archive-tar.c
      type_or_value: (512)
    - item_type: preproc_def
      name: BLOCKSIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/archive-tar.c
      type_or_value: (RECORDSIZE * 20)
    - item_type: preproc_def
      name: USTAR_MAX_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/archive-tar.c
      type_or_value: ULONG_MAX
    - item_type: preproc_def
      name: USTAR_MAX_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/archive-tar.c
      type_or_value: 077777777777UL
    - item_type: preproc_def
      name: USTAR_MAX_MTIME
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/archive-tar.c
      type_or_value: TIME_MAX
    - item_type: preproc_def
      name: USTAR_MAX_MTIME
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/archive-tar.c
      type_or_value: 077777777777ULL
    structs: []
    typedefs: []
    union: []
- function_names:
  - gettext
  - ngettext
  - FORMAT_PRESERVING
  - git_setup_gettext
  - gettext_width
  - (1) const char *_(const char *msgid)
  - '(1) FORMAT_PRESERVING(2)

    const char *Q_(const char *msgid, const char *plu, unsigned long n)'
  - N_
  source_file: /src/git/gettext.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: git_gettext_enabled
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/gettext.h
      type_or_value: (0)
    structs: []
    typedefs: []
    union: []
- function_names:
  - pack_mtimes_filename
  - load_pack_mtimes_file
  - load_pack_mtimes
  - nth_packed_mtime
  source_file: /src/git/pack-mtimes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MTIMES_HEADER_SIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/pack-mtimes.c
      type_or_value: (12)
    structs:
    - fields:
      - name: signature
        type: uint32_t
      - name: version
        type: uint32_t
      - name: hash_id
        type: uint32_t
      item_type: struct
      name: mtimes_header
      pos:
        line_end: 21
        line_start: 17
        source_file: /src/git/pack-mtimes.c
    typedefs: []
    union: []
- function_names:
  - drop_prefix
  - extract_cmds
  - print_command_list
  - cmd_name_cmp
  - print_cmd_by_category
  - add_cmdname
  - cmdnames_release
  - cmdname_compare
  - uniq
  - exclude_cmds
  - pretty_print_cmdnames
  - list_commands_in_dir
  - load_command_list
  - get_colopts
  - list_commands
  - list_common_cmds_help
  - list_all_main_cmds
  - list_all_other_cmds
  - list_cmds_by_category
  - list_cmds_by_config
  - list_guides_help
  - list_user_interfaces_help
  - list_developer_interfaces_help
  - list_all_cmds_help_external_commands
  - list_all_cmds_help_aliases
  - list_all_cmds_help
  - is_in_cmdlist
  - parse_autocorrect
  - git_unknown_cmd_config
  - levenshtein_compare
  - add_cmd_list
  - SIMILAR_ENOUGH
  - help_unknown_cmd
  - get_version_info
  - cmd_version
  - append_similar_ref
  - guess_refs
  - help_unknown_ref
  source_file: /src/git/help.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AUTOCORRECT_SHOW
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/git/help.c
      type_or_value: (-4)
    - item_type: preproc_def
      name: AUTOCORRECT_PROMPT
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/git/help.c
      type_or_value: (-3)
    - item_type: preproc_def
      name: AUTOCORRECT_NEVER
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/git/help.c
      type_or_value: (-2)
    - item_type: preproc_def
      name: AUTOCORRECT_IMMEDIATELY
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/git/help.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: SIMILARITY_FLOOR
      pos:
        line_end: 637
        line_start: 636
        source_file: /src/git/help.c
      type_or_value: '7'
    structs:
    - fields:
      - name: category
        type: uint32_t
      - name: '*desc'
        type: char
      item_type: struct
      name: category_description
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/git/help.c
    - fields:
      - name: autocorrect
        type: int
      - name: aliases
        type: struct cmdnames
      item_type: struct
      name: help_unknown_cmd_config
      pos:
        line_end: 541
        line_start: 538
        source_file: /src/git/help.c
    - fields:
      - name: '*base_ref'
        type: char
      - name: '*similar_refs'
        type: struct string_list
      item_type: struct
      name: similar_ref_cb
      pos:
        line_end: 859
        line_start: 856
        source_file: /src/git/help.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/fetch-negotiator.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*known_common)(struct fetch_negotiator *, struct commit *)
        type: void
      - name: (*add_tip)(struct fetch_negotiator *, struct commit *)
        type: void
      - name: '*(*next)(struct fetch_negotiator *)'
        type: struct object_id
      - name: (*ack)(struct fetch_negotiator *, struct commit *)
        type: int
      - name: (*have_sent)(struct fetch_negotiator *, struct commit *)
        type: void
      - name: (*release)(struct fetch_negotiator *)
        type: void
      - name: '*data'
        type: void
      item_type: struct
      name: fetch_negotiator
      pos:
        line_end: 62
        line_start: 19
        source_file: /src/git/fetch-negotiator.h
    typedefs: []
    union: []
- function_names:
  - read_gitfile
  - resolve_gitdir
  - discover_git_directory
  source_file: /src/git/setup.h
  types:
    enum:
    - enumerators:
      - name: GIT_DIR_EXPLICIT
        value: '1'
      - name: GIT_DIR_HIT_MOUNT_POINT
        value: '-2'
      - name: GIT_DIR_DISCOVERED
        value: '2'
      - name: GIT_DIR_BARE
        value: '3'
      - name: GIT_DIR_HIT_CEILING
        value: '-1'
      - name: GIT_DIR_INVALID_GITFILE
        value: '-3'
      - name: GIT_DIR_INVALID_OWNERSHIP
        value: '-4'
      - name: GIT_DIR_DISALLOWED_BARE
        value: '-5'
      - name: GIT_DIR_INVALID_FORMAT
        value: '-6'
      - name: GIT_DIR_CWD_FAILURE
        value: '-7'
      item_type: enum
      name: discovery_result
      pos:
        line_end: 78
        line_start: 66
        source_file: /src/git/setup.h
    - enumerators:
      - name: PERM_UMASK
        value: '0'
      - name: PERM_GROUP
        value: '0660'
      - name: OLD_PERM_EVERYBODY
        value: '2'
      - name: PERM_EVERYBODY
        value: '0664'
      - name: OLD_PERM_GROUP
        value: '1'
      item_type: enum
      name: sharedrepo
      pos:
        line_end: 270
        line_start: 264
        source_file: /src/git/setup.h
    preproc_defs:
    - item_type: preproc_def
      name: READ_GITFILE_ERR_STAT_FAILED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/setup.h
      type_or_value: '1'
    - item_type: preproc_def
      name: READ_GITFILE_ERR_NOT_A_FILE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/setup.h
      type_or_value: '2'
    - item_type: preproc_def
      name: READ_GITFILE_ERR_OPEN_FAILED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/setup.h
      type_or_value: '3'
    - item_type: preproc_def
      name: READ_GITFILE_ERR_READ_FAILED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/setup.h
      type_or_value: '4'
    - item_type: preproc_def
      name: READ_GITFILE_ERR_INVALID_FORMAT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/setup.h
      type_or_value: '5'
    - item_type: preproc_def
      name: READ_GITFILE_ERR_NO_PATH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/setup.h
      type_or_value: '6'
    - item_type: preproc_def
      name: READ_GITFILE_ERR_NOT_A_REPO
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/setup.h
      type_or_value: '7'
    - item_type: preproc_def
      name: READ_GITFILE_ERR_TOO_LARGE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/git/setup.h
      type_or_value: '8'
    - item_type: preproc_def
      name: READ_GITFILE_ERR_MISSING
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/setup.h
      type_or_value: '9'
    - item_type: preproc_def
      name: READ_GITFILE_ERR_IS_A_DIR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/setup.h
      type_or_value: '10'
    - item_type: preproc_def
      name: GIT_REPO_VERSION
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/git/setup.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GIT_REPO_VERSION_READ
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/git/setup.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REPOSITORY_FORMAT_INIT
      pos:
        line_end: 213
        line_start: 204
        source_file: /src/git/setup.h
      type_or_value: "{ \\\n\t.version = -1, \\\n\t.is_bare = -1, \\\n\t.hash_algo
        = GIT_HASH_DEFAULT, \\\n\t.ref_storage_format = REF_STORAGE_FORMAT_FILES,
        \\\n\t.unknown_extensions = STRING_LIST_INIT_DUP, \\\n\t.v1_only_extensions
        = STRING_LIST_INIT_DUP, \\\n}"
    - item_type: preproc_def
      name: INIT_DB_QUIET
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/git/setup.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: INIT_DB_EXIST_OK
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/git/setup.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: INIT_DB_SKIP_REFDB
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/git/setup.h
      type_or_value: (1 << 2)
    structs:
    - fields:
      - name: version
        type: int
      - name: precious_objects
        type: int
      - name: '*partial_clone'
        type: char
      - name: worktree_config
        type: int
      - name: relative_worktrees
        type: int
      - name: submodule_path_cfg
        type: int
      - name: is_bare
        type: int
      - name: hash_algo
        type: int
      - name: compat_hash_algo
        type: int
      - name: ref_storage_format
        type: enum ref_storage_format
      - name: '*ref_storage_payload'
        type: char
      - name: sparse_index
        type: int
      - name: '*work_tree'
        type: char
      - name: unknown_extensions
        type: struct string_list
      - name: v1_only_extensions
        type: struct string_list
      item_type: struct
      name: repository_format
      pos:
        line_end: 197
        line_start: 181
        source_file: /src/git/setup.h
    - fields:
      - name: have_repository
        type: int
      - name: '*prefix'
        type: char
      - name: '*original_cwd'
        type: char
      item_type: struct
      name: startup_info
      pos:
        line_end: 277
        line_start: 273
        source_file: /src/git/setup.h
    typedefs: []
    union: []
- function_names:
  - cache_tree
  - cache_tree_free
  - subtree_name_cmp
  - cache_tree_subtree_pos
  - find_subtree
  - cache_tree_sub
  - do_invalidate_path
  - cache_tree_invalidate_path
  - verify_cache
  - discard_unused_subtrees
  - cache_tree_fully_valid
  - must_check_existence
  - update_one
  - cache_tree_update
  - write_one
  - cache_tree_write
  - parse_int
  - read_one
  - cache_tree_read
  - cache_tree_find
  - write_index_as_tree_internal
  - write_in_core_index_as_tree
  - write_index_as_tree
  - prime_cache_tree_sparse_dir
  - prime_cache_tree_rec
  - prime_cache_tree
  - find_cache_tree_from_traversal
  - cache_tree_matches_traversal
  - verify_one_sparse
  - verify_one
  - cache_tree_verify
  source_file: /src/git/cache-tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEBUG_CACHE_TREE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/cache-tree.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cb_node_key
  - cb_node_of
  - cb_internal_best_match
  - cb_insert
  - cb_lookup
  - cb_descend
  - cb_each
  source_file: /src/git/cbtree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_color
  - check_color_config
  - interactive_config_init
  - interactive_config_clear
  - add_p_state_clear
  - err
  - setup_child_process
  - parse_range
  - parse_hunk_header
  - is_octal
  - complete_file
  - normalize_marker
  - parse_diff
  - find_next_line
  - render_hunk
  - render_diff_header
  - merge_hunks
  - reassemble_patch
  - split_hunk
  - recolor_hunk
  - edit_hunk_manually
  - recount_edited_hunk
  - run_apply_check
  - read_single_character
  - prompt_yesno
  - edit_hunk_loop
  - apply_for_checkout
  - summarize_hunk
  - display_hunks
  - apply_patch
  - dec_mod
  - inc_mod
  - get_first_undecided
  - patch_update_file
  - run_add_p_common
  - run_add_p
  - run_add_p_index
  source_file: /src/git/add-patch.c
  types:
    enum:
    - enumerators:
      - name: PROMPT_MODE_CHANGE
        value: '0'
      - name: PROMPT_HUNK
      - name: PROMPT_MODE_MAX
      - name: PROMPT_DELETION
      - name: PROMPT_ADDITION
      item_type: enum
      name: prompt_mode_type
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/git/add-patch.c
    preproc_defs:
    - item_type: preproc_def
      name: SUMMARY_HEADER_WIDTH
      pos:
        line_end: 1486
        line_start: 1485
        source_file: /src/git/add-patch.c
      type_or_value: '20'
    - item_type: preproc_def
      name: SUMMARY_LINE_WIDTH
      pos:
        line_end: 1487
        line_start: 1486
        source_file: /src/git/add-patch.c
      type_or_value: '80'
    - item_type: preproc_def
      name: DISPLAY_HUNKS_LINES
      pos:
        line_end: 1511
        line_start: 1510
        source_file: /src/git/add-patch.c
      type_or_value: '20'
    structs:
    - fields:
      - name: '*diff_cmd[4]'
        type: char
      - name: is_reverse
        type: unsigned
      - name: '*prompt_mode[PROMPT_MODE_MAX]'
        type: char
      - name: '*edit_hunk_hint'
        type: char
      item_type: struct
      name: patch_mode
      pos:
        line_end: 41
        line_start: 31
        source_file: /src/git/add-patch.c
    - fields:
      - name: old_offset
        type: unsigned long
      - name: extra_start
        type: size_t
      - name: suppress_colored_line_range
        type: unsigned
      item_type: struct
      name: hunk_header
      pos:
        line_end: 256
        line_start: 247
        source_file: /src/git/add-patch.c
    - fields:
      - name: start
        type: size_t
      - name: delta
        type: ssize_t
      - name: use
        type: enum { UNDECIDED_HUNK = 0, SKIP_HUNK, USE_HUNK }
      - name: header
        type: struct hunk_header
      item_type: struct
      name: hunk
      pos:
        line_end: 263
        line_start: 258
        source_file: /src/git/add-patch.c
    - fields:
      - name: '*r'
        type: struct repository
      - name: '*index'
        type: struct index_state
      - name: '*index_file'
        type: char
      - name: cfg
        type: struct interactive_config
      - name: answer
        type: struct strbuf
      - name: plain
        type: struct strbuf
      - name: '*file_diff'
        type: "struct file_diff {\n\t\tstruct hunk head;\n\t\tstruct hunk *hunk;\n\t\tsize_t
          hunk_nr, hunk_alloc;\n\t\tunsigned deleted:1, added:1, mode_change:1,binary:1;\n\t}"
      - name: file_diff_nr
        type: size_t
      - name: '*mode'
        type: struct patch_mode
      - name: '*revision'
        type: char
      item_type: struct
      name: add_p_state
      pos:
        line_end: 285
        line_start: 265
        source_file: /src/git/add-patch.c
    - fields:
      - name: head
        type: struct hunk
      - name: '*hunk'
        type: struct hunk
      - name: hunk_nr
        type: size_t
      - name: deleted
        type: unsigned
      item_type: struct
      name: file_diff
      pos:
        line_end: 279
        line_start: 274
        source_file: /src/git/add-patch.c
    typedefs: []
    union: []
- function_names:
  - msort_with_tmp
  - git_stable_qsort
  source_file: /src/git/stable-qsort.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/bundle.h
  types:
    enum:
    - enumerators:
      - name: VERIFY_BUNDLE_VERBOSE
        value: (1 << 0)
      - name: VERIFY_BUNDLE_QUIET
        value: (1 << 1)
      - name: VERIFY_BUNDLE_FSCK
        value: (1 << 2)
      item_type: enum
      name: verify_bundle_flags
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/git/bundle.h
    preproc_defs:
    - item_type: preproc_def
      name: BUNDLE_HEADER_INIT
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/git/bundle.h
      type_or_value: "{ \\\n\t.prerequisites = STRING_LIST_INIT_DUP, \\\n\t.references
        = STRING_LIST_INIT_DUP, \\\n\t.filter = LIST_OBJECTS_FILTER_INIT, \\\n}"
    structs:
    - fields:
      - name: version
        type: unsigned
      - name: prerequisites
        type: struct string_list
      - name: references
        type: struct string_list
      - name: '*hash_algo'
        type: struct git_hash_algo
      - name: filter
        type: struct list_objects_filter_options
      item_type: struct
      name: bundle_header
      pos:
        line_end: 13
        line_start: 7
        source_file: /src/git/bundle.h
    - fields:
      - name: flags
        type: enum verify_bundle_flags
      - name: '*fsck_msg_types'
        type: char
      item_type: struct
      name: unbundle_opts
      pos:
        line_end: 50
        line_start: 41
        source_file: /src/git/bundle.h
    typedefs: []
    union: []
- function_names:
  - parse_oid
  - send_info
  - for_each_string_list_item
  - cap_object_info
  source_file: /src/git/protocol-caps.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: unsigned
      item_type: struct
      name: requested_info
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/git/protocol-caps.c
    typedefs: []
    union: []
- function_names:
  - parse_oid_hex_algop
  source_file: /src/git/hex.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/bisect.h
  types:
    enum:
    - enumerators:
      - name: BISECT_OK
        value: '0'
      - name: BISECT_MERGE_BASE_CHECK
        value: '-3'
      - name: BISECT_NO_TESTABLE_COMMIT
        value: '-4'
      - name: BISECT_ONLY_SKIPPED_LEFT
        value: '-2'
      - name: BISECT_FAILED
        value: '-1'
      - name: BISECT_INTERNAL_SUCCESS_1ST_BAD_FOUND
        value: '-10'
      - name: BISECT_INTERNAL_SUCCESS_MERGE_BASE
        value: '-11'
      item_type: enum
      name: bisect_error
      pos:
        line_end: 54
        line_start: 46
        source_file: /src/git/bisect.h
    preproc_defs:
    - item_type: preproc_def
      name: BISECT_SHOW_ALL
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/bisect.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: REV_LIST_QUIET
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/bisect.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: FIND_BISECTION_ALL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/bisect.h
      type_or_value: (1u<<0)
    - item_type: preproc_def
      name: FIND_BISECTION_FIRST_PARENT_ONLY
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/bisect.h
      type_or_value: (1u<<1)
    structs:
    - fields:
      - name: nr_good
        type: unsigned int
      - name: nr_bad
        type: unsigned int
      item_type: struct
      name: bisect_state
      pos:
        line_end: 63
        line_start: 60
        source_file: /src/git/bisect.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/ident.h
  types:
    enum:
    - enumerators:
      - name: WANT_BLANK_IDENT
      - name: WANT_AUTHOR_IDENT
      - name: WANT_COMMITTER_IDENT
      item_type: enum
      name: want_ident
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/git/ident.h
    preproc_defs:
    - item_type: preproc_def
      name: IDENT_STRICT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/ident.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IDENT_NO_DATE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/ident.h
      type_or_value: '2'
    - item_type: preproc_def
      name: IDENT_NO_NAME
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/ident.h
      type_or_value: '4'
    structs:
    - fields:
      - name: '*name_begin'
        type: char
      - name: '*name_end'
        type: char
      - name: '*mail_begin'
        type: char
      - name: '*mail_end'
        type: char
      - name: '*date_begin'
        type: char
      - name: '*date_end'
        type: char
      - name: '*tz_begin'
        type: char
      - name: '*tz_end'
        type: char
      item_type: struct
      name: ident_split
      pos:
        line_end: 14
        line_start: 5
        source_file: /src/git/ident.h
    typedefs: []
    union: []
- function_names:
  - init_notes_merge_options
  - path_to_oid
  - verify_notes_filepair
  - find_notes_merge_pair_pos
  - diff_tree_remote
  - diff_tree_local
  - check_notes_merge_worktree
  - write_buf_to_worktree
  - write_note_to_worktree
  - ll_merge_in_worktree
  - merge_one_change_manual
  - merge_one_change
  - merge_changes
  - merge_from_diffs
  - notes_merge
  - notes_merge_commit
  - notes_merge_abort
  source_file: /src/git/notes-merge.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: obj
        type: struct object_id
      item_type: struct
      name: notes_merge_pair
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/git/notes-merge.c
    typedefs: []
    union: []
- function_names:
  - bundle_header_init
  - bundle_header_release
  - parse_capability
  - parse_bundle_signature
  - read_bundle_header_fd
  - read_bundle_header
  - is_bundle
  - list_refs
  - iterate_ref_map
  - verify_bundle
  - list_bundle_refs
  - is_tag_in_date_range
  - write_pack_data
  - write_bundle_refs
  - write_bundle_prerequisites
  - create_bundle
  - unbundle
  source_file: /src/git/bundle.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PREREQ_MARK
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/git/bundle.c
      type_or_value: (1u<<16)
    structs:
    - fields:
      - name: version
        type: int
      - name: '*signature'
        type: char
      item_type: struct
      name: "bundle_sigs[] = {\n\t{ 2, v2_bundle_signature },\n\t{ 3, v3_bundle_signature
        },\n}"
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/git/bundle.c
    - fields:
      - name: '*list'
        type: struct string_list
      - name: cur
        type: size_t
      item_type: struct
      name: string_list_iterator
      pos:
        line_end: 205
        line_start: 202
        source_file: /src/git/bundle.c
    - fields:
      - name: '*pending'
        type: struct object_array
      - name: fd
        type: int
      item_type: struct
      name: bundle_prerequisites_info
      pos:
        line_end: 448
        line_start: 445
        source_file: /src/git/bundle.c
    typedefs: []
    union: []
- function_names:
  - for_each_builtin
  - for_each_wanted_builtin
  - tr2_tgt_want_builtins
  - tr2_tgt_disable_builtins
  - tr2_tgt_emit_a_timer
  - tr2_tgt_emit_a_counter
  - tr2main_atexit_handler
  - tr2main_signal_handler
  - trace2_initialize_clock
  - trace2_initialize_fl
  - trace2_is_enabled
  - redact_arg
  - redact_argv
  - free_redacted_argv
  - trace2_cmd_start_fl
  - trace2_cmd_exit_fl
  - trace2_cmd_error_va_fl
  - trace2_cmd_path_fl
  - trace2_cmd_ancestry_fl
  - trace2_cmd_name_fl
  - trace2_cmd_mode_fl
  - trace2_cmd_alias_fl
  - trace2_cmd_list_config_fl
  - trace2_cmd_list_env_vars_fl
  - trace2_cmd_set_config_fl
  - trace2_child_start_fl
  - trace2_child_exit_fl
  - trace2_child_ready_fl
  - trace2_exec_fl
  - trace2_exec_result_fl
  - trace2_thread_start_fl
  - trace2_thread_exit_fl
  - trace2_def_param_fl
  - trace2_def_repo_fl
  - trace2_region_enter_printf_va_fl
  - trace2_region_enter_fl
  - trace2_region_enter_printf_fl
  - trace2_region_leave_printf_va_fl
  - trace2_region_leave_fl
  - trace2_region_leave_printf_fl
  - trace2_data_string_fl
  - trace2_data_intmax_fl
  - trace2_data_json_fl
  - trace2_printf_va_fl
  - trace2_printf_fl
  - trace2_timer_start
  - trace2_timer_stop
  - trace2_counter_add
  - trace2_session_id
  source_file: /src/git/trace2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - unclean
  - merge_ort_nonrecursive
  - merge_ort_recursive
  - get_ref
  - merge_ort_generic
  source_file: /src/git/merge-ort-wrappers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/chdir-notify.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*chdir_notify_callback)(const char *name,\n\t\t\t\t      const char
        *old_cwd,\n\t\t\t\t      const char *new_cwd,\n\t\t\t\t      void *data)"
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/git/chdir-notify.h
      type: void
    union: []
- function_names:
  - DEFINE_LIST_MERGE_INTERNAL
  - DEFINE_LIST_SORT_INTERNAL
  - DECLARE_LIST_SORT
  - DEFINE_LIST_SORT_DEBUG
  - DEFINE_LIST_SORT
  source_file: /src/git/mergesort.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hash_obj
  - insert_decoration
  - grow_decoration
  - add_decoration
  - lookup_decoration
  - clear_decoration
  source_file: /src/git/decorate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BANNED
  - strcpy
  - strcat
  - strncpy
  - strncat
  - strtok
  - strtok_r
  - sprintf
  - vsprintf
  - gmtime
  - localtime
  - ctime
  - ctime_r
  - asctime
  - asctime_r
  - mktemp
  source_file: /src/git/banned.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - update_disambiguate_state
  - finish_object_disambiguation
  - disambiguate_commit_only
  - disambiguate_committish_only
  - disambiguate_tree_only
  - disambiguate_treeish_only
  - disambiguate_blob_only
  - set_disambiguate_hint_config
  - parse_oid_prefix
  - init_object_disambiguation
  - show_ambiguous_object
  - collect_ambiguous
  - repo_collect_ambiguous
  - sort_ambiguous
  - sort_ambiguous_oid_array
  - get_short_oid
  - repo_for_each_abbrev
  - strbuf_repo_add_unique_abbrev
  - strbuf_add_unique_abbrev
  - repo_find_unique_abbrev_r
  - repo_find_unique_abbrev
  - ambiguous_path
  - at_mark
  - upstream_mark
  - push_mark
  - get_oid_basic
  - get_parent
  - get_nth_ancestor
  - repo_peel_to_type
  - peel_onion
  - ref_and_count_parts_valid
  - get_describe_name
  - get_oid_1
  - handle_one_ref
  - get_oid_oneline
  - grab_nth_branch_switch
  - interpret_nth_prior_checkout
  - repo_get_oid_mb
  - interpret_empty_at
  - reinterpret
  - set_shortened_ref
  - branch_interpret_allowed
  - interpret_branch_mark
  - repo_interpret_branch_name
  - object_context_release
  - repo_get_oid_with_flags
  - repo_get_oid
  - get_oidf
  - repo_get_oid_committish
  - repo_get_oid_treeish
  - repo_get_oid_commit
  - repo_get_oid_tree
  - repo_get_oid_blob
  - diagnose_invalid_oid_path
  - diagnose_invalid_index_path
  - resolve_relative_path
  - reject_tree_in_index
  - get_oid_with_context_1
  - maybe_die_on_misspelt_object_name
  - get_oid_with_context
  source_file: /src/git/object-name.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ONELINE_SEEN
      pos:
        line_end: 1157
        line_start: 1156
        source_file: /src/git/object-name.c
      type_or_value: (1u<<20)
    structs:
    - fields:
      - name: len
        type: int
      - name: hex_pfx[GIT_MAX_HEXSZ + 1]
        type: char
      - name: bin_pfx
        type: struct object_id
      - name: '*repo'
        type: struct repository
      - name: fn
        type: disambiguate_hint_fn
      - name: '*cb_data'
        type: void
      - name: candidate
        type: struct object_id
      - name: candidate_exists
        type: unsigned
      - name: candidate_checked
        type: unsigned
      - name: candidate_ok
        type: unsigned
      - name: disambiguate_fn_used
        type: unsigned
      - name: ambiguous
        type: unsigned
      item_type: struct
      name: disambiguate_state
      pos:
        line_end: 49
        line_start: 35
        source_file: /src/git/object-name.c
    - fields:
      - name: '*name'
        type: char
      - name: fn
        type: disambiguate_hint_fn
      item_type: struct
      name: "hints[] = {\n\t\t{ \"none\", NULL },\n\t\t{ \"commit\", disambiguate_commit_only
        },\n\t\t{ \"committish\", disambiguate_committish_only },\n\t\t{ \"tree\",
        disambiguate_tree_only },\n\t\t{ \"treeish\", disambiguate_treeish_only },\n\t\t{
        \"blob\", disambiguate_blob_only }\n\t}"
      pos:
        line_end: 208
        line_start: 205
        source_file: /src/git/object-name.c
    - fields:
      - name: '*ds'
        type: struct disambiguate_state
      - name: advice
        type: struct strbuf
      - name: sb
        type: struct strbuf
      item_type: struct
      name: ambiguous_output
      pos:
        line_end: 290
        line_start: 286
        source_file: /src/git/object-name.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '**list'
        type: struct commit_list
      item_type: struct
      name: handle_one_ref_cb
      pos:
        line_end: 1161
        line_start: 1158
        source_file: /src/git/object-name.c
    - fields:
      - name: remaining
        type: int
      - name: '*sb'
        type: struct strbuf
      item_type: struct
      name: grab_nth_branch_switch_cbdata
      pos:
        line_end: 1239
        line_start: 1236
        source_file: /src/git/object-name.c
    typedefs:
    - item_type: typedef
      name: (*disambiguate_hint_fn)(struct repository *, const struct object_id *,
        void *)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/git/object-name.c
      type: int
    union: []
- function_names: []
  source_file: /src/git/resolve-undo.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mode[3]
        type: unsigned int
      - name: oid[3]
        type: struct object_id
      item_type: struct
      name: resolve_undo_info
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/git/resolve-undo.h
    typedefs: []
    union: []
- function_names:
  - FOREACH_FSCK_MSG_ID
  - MSG_ID
  source_file: /src/git/fsck.h
  types:
    enum:
    - enumerators:
      - name: FSCK_IGNORE
      - name: FSCK_ERROR
      - name: FSCK_INFO
      - name: FSCK_WARN
      - name: FSCK_FATAL
      item_type: enum
      name: fsck_msg_type
      pos:
        line_end: 14
        line_start: 6
        source_file: /src/git/fsck.h
    - enumerators:
      - name: FOREACH_FSCK_MSG_ID
      item_type: enum
      name: fsck_msg_id
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/git/fsck.h
    - enumerators:
      - name: FSCK_OPTIONS_DEFAULT
      - name: FSCK_OPTIONS_STRICT
      - name: FSCK_OPTIONS_REFS
      - name: FSCK_OPTIONS_MISSING_GITMODULES
      item_type: enum
      name: fsck_options_type
      pos:
        line_end: 237
        line_start: 232
        source_file: /src/git/fsck.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*oid'
        type: struct object_id
      - name: object_type
        type: enum object_type
      item_type: struct
      name: fsck_object_report
      pos:
        line_end: 162
        line_start: 159
        source_file: /src/git/fsck.h
    - fields:
      - name: '*path'
        type: char
      item_type: struct
      name: fsck_ref_report
      pos:
        line_end: 166
        line_start: 164
        source_file: /src/git/fsck.h
    - fields:
      - name: '*repo'
        type: struct repository
      - name: walk
        type: fsck_walk_func
      - name: error_func
        type: fsck_error
      - name: strict
        type: unsigned
      - name: verbose
        type: unsigned
      - name: '*msg_type'
        type: enum fsck_msg_type
      - name: skip_oids
        type: struct oidset
      - name: gitmodules_found
        type: struct oidset
      - name: gitmodules_done
        type: struct oidset
      - name: gitattributes_found
        type: struct oidset
      - name: gitattributes_done
        type: struct oidset
      - name: '*object_names'
        type: kh_oid_map_t
      item_type: struct
      name: fsck_options
      pos:
        line_end: 183
        line_start: 170
        source_file: /src/git/fsck.h
    typedefs:
    - item_type: typedef
      name: "(*fsck_walk_func)(struct object *obj, enum object_type object_type,\n\t\t\t
        \     void *data, struct fsck_options *options)"
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/git/fsck.h
      type: int
    - item_type: typedef
      name: "(*fsck_error)(struct fsck_options *o,\n\t\t\t  void *fsck_report,\n\t\t\t
        \ enum fsck_msg_type msg_type, enum fsck_msg_id msg_id,\n\t\t\t  const char
        *message)"
      pos:
        line_end: 141
        line_start: 138
        source_file: /src/git/fsck.h
      type: int
    union: []
- function_names:
  - parse_protocol_version
  - get_protocol_version_config
  - determine_protocol_version_server
  - determine_protocol_version_client
  source_file: /src/git/protocol.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/merge.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - should_use_loose_object_map
  - loose_object_map_init
  - insert_oid_pair
  - insert_loose_map
  - load_one_loose_object_map
  - repo_read_loose_object_map
  - repo_write_loose_object_map
  - write_one_object
  - repo_add_loose_object_map
  - repo_loose_object_map_oid
  - loose_object_map_clear
  source_file: /src/git/loose.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/versioncmp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - run_gpg_verify
  - gpg_verify_tag
  - deref_tag
  - lookup_tag
  - parse_tag_date
  - release_tag_memory
  - parse_tag_buffer
  - parse_tag
  - get_tagged_oid
  source_file: /src/git/tag.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - append_normalized_escapes
  - end_of_token
  - match_host
  - url_normalize_1
  - url_normalize
  - url_parse
  - url_match_prefix
  - match_urls
  - cmp_matches
  - urlmatch_config_entry
  - urlmatch_config_release
  source_file: /src/git/urlmatch.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: URL_ALPHA
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/urlmatch.c
      type_or_value: '"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"'
    - item_type: preproc_def
      name: URL_DIGIT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/urlmatch.c
      type_or_value: '"0123456789"'
    - item_type: preproc_def
      name: URL_ALPHADIGIT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/urlmatch.c
      type_or_value: URL_ALPHA URL_DIGIT
    - item_type: preproc_def
      name: URL_SCHEME_CHARS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/urlmatch.c
      type_or_value: URL_ALPHADIGIT "+.-"
    - item_type: preproc_def
      name: URL_HOST_CHARS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/urlmatch.c
      type_or_value: 'URL_ALPHADIGIT ".-_[:]" '
    - item_type: preproc_def
      name: URL_UNSAFE_CHARS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/urlmatch.c
      type_or_value: '" <>\"%{}|\\^`" '
    - item_type: preproc_def
      name: URL_GEN_RESERVED
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/urlmatch.c
      type_or_value: '":/?#[]@"'
    - item_type: preproc_def
      name: URL_SUB_RESERVED
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/urlmatch.c
      type_or_value: '"!$&''()*+,;="'
    - item_type: preproc_def
      name: URL_RESERVED
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/urlmatch.c
      type_or_value: 'URL_GEN_RESERVED URL_SUB_RESERVED '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/checkout.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/commit-reach.h
  types:
    enum:
    - enumerators:
      - name: MERGE_BASE_IGNORE_MISSING_COMMITS
        value: (1 << 0)
      - name: MERGE_BASE_FIND_ALL
        value: (1 << 1)
      item_type: enum
      name: merge_base_flags
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/git/commit-reach.h
    - enumerators:
      - name: CONTAINS_UNKNOWN
        value: '0'
      - name: CONTAINS_NO
      - name: CONTAINS_YES
      item_type: enum
      name: contains_result
      pos:
        line_end: 76
        line_start: 72
        source_file: /src/git/commit-reach.h
    preproc_defs: []
    structs:
    - fields:
      - name: tip_index
        type: size_t
      - name: base_index
        type: size_t
      - name: ahead
        type: unsigned int
      - name: behind
        type: unsigned int
      item_type: struct
      name: ahead_behind_count
      pos:
        line_end: 132
        line_start: 111
        source_file: /src/git/commit-reach.h
    typedefs: []
    union: []
- function_names:
  - reencode_string_len
  - reencode_string
  source_file: /src/git/utf8.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ucs_char_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/git/utf8.h
      type: unsigned int
    union: []
- function_names:
  - midx_get_checksum_hex
  - midx_get_checksum_hash
  - get_midx_filename
  - get_midx_filename_ext
  - midx_read_oid_fanout
  - midx_read_oid_lookup
  - midx_read_object_offsets
  - get_multi_pack_index
  - load_multi_pack_index_one
  - get_midx_chain_dirname
  - get_midx_chain_filename
  - get_split_midx_filename_ext
  - open_multi_pack_index_chain
  - add_midx_to_chain
  - load_midx_chain_fd_st
  - load_multi_pack_index_chain
  - load_multi_pack_index
  - close_midx
  - midx_for_object
  - midx_for_pack
  - prepare_midx_pack
  - nth_midxed_pack
  - nth_bitmapped_pack
  - bsearch_one_midx
  - bsearch_midx
  - midx_has_oid
  - nth_midxed_object_oid
  - nth_midxed_offset
  - nth_midxed_pack_int_id
  - fill_midx_entry
  - cmp_idx_or_pack_name
  - midx_pack_names_cmp
  - midx_layer_contains_pack
  - midx_contains_pack
  - midx_preferred_pack
  - prepare_multi_pack_index_one
  - midx_checksum_valid
  - clear_midx_file_ext
  - clear_midx_files_ext
  - clear_incremental_midx_files_ext
  - clear_midx_file
  - clear_incremental_midx_files
  - midx_report
  - compare_pair_pos_vs_id
  - midx_display_sparse_progress
  - verify_midx_file
  source_file: /src/git/midx.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIDX_PACK_ERROR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/midx.c
      type_or_value: ((void *)(intptr_t)-1)
    - item_type: preproc_def
      name: MIDX_CHUNK_BITMAPPED_PACKS_WIDTH
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/git/midx.c
      type_or_value: (2 * sizeof(uint32_t))
    - item_type: preproc_def
      name: SPARSE_PROGRESS_INTERVAL
      pos:
        line_end: 913
        line_start: 912
        source_file: /src/git/midx.c
      type_or_value: (1 << 12)
    structs:
    - fields:
      - name: keep
        type: struct strset
      - name: '*ext'
        type: char
      item_type: struct
      name: clear_midx_data
      pos:
        line_end: 762
        line_start: 759
        source_file: /src/git/midx.c
    - fields:
      - name: pos
        type: uint32_t
      - name: pack_int_id
        type: uint32_t
      item_type: struct
      name: pair_pos_vs_id
      pos:
        line_end: 898
        line_start: 894
        source_file: /src/git/midx.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/connect.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONNECT_VERBOSE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/connect.h
      type_or_value: (1u << 0)
    - item_type: preproc_def
      name: CONNECT_DIAG_URL
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/connect.h
      type_or_value: (1u << 1)
    - item_type: preproc_def
      name: CONNECT_IPV4
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/connect.h
      type_or_value: (1u << 2)
    - item_type: preproc_def
      name: CONNECT_IPV6
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/connect.h
      type_or_value: (1u << 3)
    structs: []
    typedefs: []
    union: []
- function_names:
  - list_object_filter_config_name
  - gently_parse_list_objects_filter
  - has_reserved_character
  - parse_combine_subfilter
  - parse_combine_filter
  - allow_unencoded
  - filter_spec_append_urlencode
  - transform_to_combine_type
  - list_objects_filter_die_if_populated
  - parse_list_objects_filter
  - opt_parse_list_objects_filter
  - list_objects_filter_spec
  - expand_list_objects_filter_spec
  - list_objects_filter_release
  - partial_clone_register
  - partial_clone_get_default_filter_spec
  - list_objects_filter_copy
  - list_objects_filter_init
  source_file: /src/git/list-objects-filter-options.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/grep.h
  types:
    enum:
    - enumerators:
      - name: GREP_PATTERN
      - name: GREP_AND
      - name: GREP_PATTERN_BODY
      - name: GREP_PATTERN_HEAD
      - name: GREP_OPEN_PAREN
      - name: GREP_CLOSE_PAREN
      - name: GREP_NOT
      - name: GREP_OR
      item_type: enum
      name: grep_pat_token
      pos:
        line_end: 39
        line_start: 30
        source_file: /src/git/grep.h
    - enumerators:
      - name: GREP_CONTEXT_HEAD
      - name: GREP_CONTEXT_BODY
      item_type: enum
      name: grep_context
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/git/grep.h
    - enumerators:
      - name: GREP_HEADER_FIELD_MIN
        value: '0'
      - name: GREP_HEADER_REFLOG
      - name: GREP_HEADER_COMMITTER
      - name: GREP_HEADER_AUTHOR
        value: GREP_HEADER_FIELD_MIN
      - name: GREP_HEADER_FIELD_MAX
      item_type: enum
      name: grep_header_field
      pos:
        line_end: 54
        line_start: 46
        source_file: /src/git/grep.h
    - enumerators:
      - name: GREP_COLOR_CONTEXT
      - name: GREP_COLOR_LINENO
      - name: GREP_COLOR_FUNCTION
      - name: GREP_COLOR_FILENAME
      - name: GREP_COLOR_COLUMNNO
      - name: GREP_COLOR_MATCH_CONTEXT
      - name: GREP_COLOR_MATCH_SELECTED
      - name: GREP_COLOR_SELECTED
      - name: GREP_COLOR_SEP
      - name: NR_GREP_COLORS
      item_type: enum
      name: grep_color
      pos:
        line_end: 67
        line_start: 56
        source_file: /src/git/grep.h
    - enumerators:
      - name: GREP_NODE_ATOM
      - name: GREP_NODE_AND
      - name: GREP_NODE_NOT
      - name: GREP_NODE_TRUE
      - name: GREP_NODE_OR
      item_type: enum
      name: grep_expr_node
      pos:
        line_end: 96
        line_start: 90
        source_file: /src/git/grep.h
    - enumerators:
      - name: GREP_PATTERN_TYPE_UNSPECIFIED
        value: '0'
      - name: GREP_PATTERN_TYPE_ERE
      - name: GREP_PATTERN_TYPE_BRE
      - name: GREP_PATTERN_TYPE_PCRE
      - name: GREP_PATTERN_TYPE_FIXED
      item_type: enum
      name: grep_pattern_type
      pos:
        line_end: 104
        line_start: 98
        source_file: /src/git/grep.h
    - enumerators:
      - name: GREP_SOURCE_OID
      - name: GREP_SOURCE_BUF
      - name: GREP_SOURCE_FILE
      item_type: enum
      name: grep_source_type
      pos:
        line_end: 232
        line_start: 228
        source_file: /src/git/grep.h
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/grep.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PCRE2_MATCH_INVALID_UTF
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/grep.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GREP_BINARY_DEFAULT
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/git/grep.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GREP_BINARY_NOMATCH
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/git/grep.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GREP_BINARY_TEXT
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/git/grep.h
      type_or_value: '2'
    - item_type: preproc_def
      name: GREP_OPT_INIT
      pos:
        line_end: 203
        line_start: 182
        source_file: /src/git/grep.h
      type_or_value: "{ \\\n\t.relative = 1, \\\n\t.pathname = 1, \\\n\t.max_depth
        = -1, \\\n\t.max_count = -1, \\\n\t.pattern_type_option = GREP_PATTERN_TYPE_UNSPECIFIED,
        \\\n\t.colors = { \\\n\t\t[GREP_COLOR_CONTEXT] = \"\", \\\n\t\t[GREP_COLOR_FILENAME]
        = GIT_COLOR_MAGENTA, \\\n\t\t[GREP_COLOR_FUNCTION] = \"\", \\\n\t\t[GREP_COLOR_LINENO]
        = GIT_COLOR_GREEN, \\\n\t\t[GREP_COLOR_COLUMNNO] = GIT_COLOR_GREEN, \\\n\t\t[GREP_COLOR_MATCH_CONTEXT]
        = GIT_COLOR_BOLD_RED, \\\n\t\t[GREP_COLOR_MATCH_SELECTED] = GIT_COLOR_BOLD_RED,
        \\\n\t\t[GREP_COLOR_SELECTED] = \"\", \\\n\t\t[GREP_COLOR_SEP] = GIT_COLOR_CYAN,
        \\\n\t}, \\\n\t.only_matching = 0, \\\n\t.color = GIT_COLOR_UNKNOWN, \\\n\t.output
        = std_output, \\\n}"
    structs:
    - fields:
      - name: '*next'
        type: struct grep_pat
      - name: '*origin'
        type: char
      - name: 'no'
        type: int
      - name: token
        type: enum grep_pat_token
      - name: '*pattern'
        type: char
      - name: patternlen
        type: size_t
      - name: field
        type: enum grep_header_field
      - name: regexp
        type: regex_t
      - name: '*pcre2_pattern'
        type: pcre2_code
      - name: '*pcre2_match_data'
        type: pcre2_match_data
      - name: '*pcre2_compile_context'
        type: pcre2_compile_context
      - name: '*pcre2_general_context'
        type: pcre2_general_context
      - name: '*pcre2_tables'
        type: uint8_t
      - name: pcre2_jit_on
        type: uint32_t
      - name: fixed
        type: unsigned
      - name: is_fixed
        type: unsigned
      - name: ignore_case
        type: unsigned
      - name: word_regexp
        type: unsigned
      item_type: struct
      name: grep_pat
      pos:
        line_end: 88
        line_start: 69
        source_file: /src/git/grep.h
    - fields:
      - name: node
        type: enum grep_expr_node
      - name: hit
        type: unsigned
      - name: u
        type: "union {\n\t\tstruct grep_pat *atom;\n\t\tstruct grep_expr *unary;\n\t\tstruct
          {\n\t\t\tstruct grep_expr *left;\n\t\t\tstruct grep_expr *right;\n\t\t}
          binary;\n\t}"
      item_type: struct
      name: grep_expr
      pos:
        line_end: 117
        line_start: 106
        source_file: /src/git/grep.h
    - fields:
      - name: '*pattern_list'
        type: struct grep_pat
      - name: '**pattern_tail'
        type: struct grep_pat
      - name: '*header_list'
        type: struct grep_pat
      - name: '**header_tail'
        type: struct grep_pat
      - name: '*pattern_expression'
        type: struct grep_expr
      - name: '*repo'
        type: struct repository
      - name: linenum
        type: int
      - name: columnnum
        type: int
      - name: invert
        type: int
      - name: ignore_case
        type: int
      - name: status_only
        type: int
      - name: name_only
        type: int
      - name: unmatch_name_only
        type: int
      - name: count
        type: int
      - name: word_regexp
        type: int
      - name: all_match
        type: int
      - name: no_body_match
        type: int
      - name: body_hit
        type: int
      - name: binary
        type: int
      - name: allow_textconv
        type: int
      - name: use_reflog_filter
        type: int
      - name: relative
        type: int
      - name: pathname
        type: int
      - name: null_following_name
        type: int
      - name: only_matching
        type: int
      - name: color
        type: enum git_colorbool
      - name: max_depth
        type: int
      - name: funcname
        type: int
      - name: funcbody
        type: int
      - name: extended_regexp_option
        type: int
      - name: pattern_type_option
        type: enum grep_pattern_type
      - name: ignore_locale
        type: int
      - name: colors[NR_GREP_COLORS][COLOR_MAXLEN]
        type: char
      - name: pre_context
        type: unsigned
      - name: post_context
        type: unsigned
      - name: last_shown
        type: unsigned
      - name: show_hunk_mark
        type: int
      - name: file_break
        type: int
      - name: heading
        type: int
      - name: max_count
        type: int
      - name: '*priv'
        type: void
      - name: (*output)(struct grep_opt *opt, const void *data, size_t size)
        type: void
      - name: '*output_priv'
        type: void
      item_type: struct
      name: grep_opt
      pos:
        line_end: 180
        line_start: 119
        source_file: /src/git/grep.h
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: "enum grep_source_type {\n\t\tGREP_SOURCE_OID,\n\t\tGREP_SOURCE_FILE,\n\t\tGREP_SOURCE_BUF,\n\t}"
      - name: '*identifier'
        type: void
      - name: '*repo'
        type: struct repository
      - name: '*buf'
        type: char
      - name: size
        type: unsigned long
      - name: '*path'
        type: char
      - name: '*driver'
        type: struct userdiff_driver
      item_type: struct
      name: grep_source
      pos:
        line_end: 241
        line_start: 225
        source_file: /src/git/grep.h
    typedefs:
    - item_type: typedef
      name: pcre2_code
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/git/grep.h
      type: int
    - item_type: typedef
      name: pcre2_match_data
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/git/grep.h
      type: int
    - item_type: typedef
      name: pcre2_compile_context
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/git/grep.h
      type: int
    - item_type: typedef
      name: pcre2_general_context
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/git/grep.h
      type: int
    union: []
- function_names:
  - tmp_objdir_free
  - tmp_objdir_reparent
  - tmp_objdir_destroy
  - remove_tmp_objdir
  - tmp_objdir_discard_objects
  - env_append
  - env_replace
  - setup_tmp_objdir
  - tmp_objdir_create
  - pack_copy_priority
  - pack_copy_cmp
  - read_dir_paths
  - migrate_one
  - is_loose_object_shard
  - migrate_paths
  - tmp_objdir_migrate
  - tmp_objdir_env
  - tmp_objdir_add_as_alternate
  - tmp_objdir_replace_primary_odb
  source_file: /src/git/tmp-objdir.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: path
        type: struct strbuf
      - name: env
        type: struct strvec
      - name: '*prev_source'
        type: struct odb_source
      - name: will_destroy
        type: int
      item_type: struct
      name: tmp_objdir
      pos:
        line_end: 22
        line_start: 16
        source_file: /src/git/tmp-objdir.c
    typedefs: []
    union: []
- function_names:
  - diff_delta
  - get_delta_hdr_size_sz
  - get_delta_hdr_size
  source_file: /src/git/delta.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DELTA_SIZE_MIN
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/git/delta.h
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fetch_negotiator_init
  - fetch_negotiator_init_noop
  source_file: /src/git/fetch-negotiator.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - update_progress
  - add_one_file
  - add_rebase_files
  - add_one_ref
  - mark_object
  - mark_commit
  - run_one_gc_recent_objects_hook
  - load_gc_recent_objects
  - obj_is_recent
  - want_recent_object
  - add_recent_object
  - add_unseen_recent_objects_to_traversal
  - mark_object_seen
  - mark_reachable_objects
  source_file: /src/git/reachable.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*progress'
        type: struct progress
      - name: count
        type: unsigned long
      item_type: struct
      name: connectivity_progress
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/git/reachable.c
    - fields:
      - name: '*revs'
        type: struct rev_info
      - name: timestamp
        type: timestamp_t
      - name: '*cb'
        type: report_recent_object_fn
      - name: ignore_in_core_kept_packs
        type: int
      - name: extra_recent_oids
        type: struct oidset
      - name: extra_recent_oids_loaded
        type: int
      item_type: struct
      name: recent_data
      pos:
        line_end: 125
        line_start: 117
        source_file: /src/git/reachable.c
    typedefs: []
    union: []
- function_names:
  - gpg_interface_lazy_init
  - get_format_by_name
  - get_format_by_sig
  - get_signature_format
  - valid_signature_format
  - signature_check_clear
  - replace_cstring
  - parse_gpg_trust_level
  - parse_gpg_output
  - verify_gpg_signed_buffer
  - parse_ssh_output
  - verify_ssh_signed_buffer
  - parse_payload_metadata
  - check_signature
  - print_signature_buffer
  - parse_signed_buffer
  - parse_signature
  - set_signing_key
  - git_gpg_config
  - is_literal_ssh_key
  - get_ssh_key_fingerprint
  - get_default_ssh_signing_key
  - get_ssh_key_id
  - get_signing_key_id
  - get_signing_key
  - gpg_trust_level_to_str
  - sign_buffer
  - remove_cr_after
  - sign_buffer_gpg
  - sign_buffer_ssh
  - parse_sign_mode
  source_file: /src/git/gpg-interface.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GPG_STATUS_EXCLUSIVE
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/git/gpg-interface.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: GPG_STATUS_KEYID
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/git/gpg-interface.c
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: GPG_STATUS_UID
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/git/gpg-interface.c
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: GPG_STATUS_FINGERPRINT
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/git/gpg-interface.c
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: GPG_STATUS_TRUST_LEVEL
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/git/gpg-interface.c
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: GPG_STATUS_STDSIG
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/git/gpg-interface.c
      type_or_value: (GPG_STATUS_EXCLUSIVE|GPG_STATUS_KEYID|GPG_STATUS_UID)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*program'
        type: char
      - name: '**verify_args'
        type: char
      - name: '**sigs'
        type: char
      - name: "(*verify_signed_buffer)(struct signature_check *sigc,\n\t\t\t\t    struct
          gpg_format *fmt,\n\t\t\t\t    const char *signature,\n\t\t\t\t    size_t
          signature_size)"
        type: int
      - name: "(*sign_buffer)(struct strbuf *buffer, struct strbuf *signature,\n\t\t\t
          \  const char *signing_key)"
        type: int
      - name: '*(*get_default_key)(void)'
        type: char
      - name: '*(*get_key_id)(void)'
        type: char
      item_type: struct
      name: gpg_format
      pos:
        line_end: 49
        line_start: 36
        source_file: /src/git/gpg-interface.c
    - fields:
      - name: result
        type: char
      - name: '*check'
        type: char
      - name: flags
        type: unsigned int
      item_type: struct
      name: "sigcheck_gpg_status[] = {\n\t{ 'G', \"GOODSIG \", GPG_STATUS_STDSIG },\n\t{
        'B', \"BADSIG \", GPG_STATUS_STDSIG },\n\t{ 'E', \"ERRSIG \", GPG_STATUS_EXCLUSIVE|GPG_STATUS_KEYID
        },\n\t{ 'X', \"EXPSIG \", GPG_STATUS_STDSIG },\n\t{ 'Y', \"EXPKEYSIG \", GPG_STATUS_STDSIG
        },\n\t{ 'R', \"REVKEYSIG \", GPG_STATUS_STDSIG },\n\t{ 0, \"VALIDSIG \", GPG_STATUS_FINGERPRINT
        },\n\t{ 0, \"TRUST_\", GPG_STATUS_TRUST_LEVEL },\n}"
      pos:
        line_end: 187
        line_start: 183
        source_file: /src/git/gpg-interface.c
    - fields:
      - name: '*key'
        type: char
      - name: '*display_key'
        type: char
      - name: value
        type: enum signature_trust_level
      item_type: struct
      name: sigcheck_gpg_trust_level
      pos:
        line_end: 203
        line_start: 199
        source_file: /src/git/gpg-interface.c
    typedefs: []
    union: []
- function_names:
  - prepare_order
  - match_order
  - compare_objs_order
  - order_objects
  - pair_pathtwo
  - diffcore_order
  source_file: /src/git/diffcore-order.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tree_entry_extract
  - tree_entry_len
  - traverse_path_len
  source_file: /src/git/tree-walk.h
  types:
    enum:
    - enumerators:
      - name: TREE_DESC_RAW_MODES
        value: (1 << 0)
      item_type: enum
      name: tree_desc_flags
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/git/tree-walk.h
    - enumerators:
      - name: all_entries_not_interesting
        value: '-1'
      - name: entry_interesting
        value: '1'
      - name: all_entries_interesting
        value: '2'
      - name: entry_not_interesting
        value: '0'
      item_type: enum
      name: interesting
      pos:
        line_end: 226
        line_start: 221
        source_file: /src/git/tree-walk.h
    preproc_defs: []
    structs:
    - fields:
      - name: oid
        type: struct object_id
      - name: '*path'
        type: char
      - name: pathlen
        type: int
      - name: mode
        type: unsigned int
      item_type: struct
      name: name_entry
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/git/tree-walk.h
    - fields:
      - name: '*algo'
        type: struct git_hash_algo
      - name: '*buffer'
        type: void
      - name: entry
        type: struct name_entry
      - name: size
        type: unsigned int
      - name: flags
        type: "enum tree_desc_flags {\n\t\tTREE_DESC_RAW_MODES = (1 << 0),\n\t}"
      item_type: struct
      name: tree_desc
      pos:
        line_end: 43
        line_start: 25
        source_file: /src/git/tree-walk.h
    - fields:
      - name: '*traverse_path'
        type: char
      - name: '*prev'
        type: struct traverse_info
      - name: '*name'
        type: char
      - name: namelen
        type: size_t
      - name: mode
        type: unsigned
      - name: pathlen
        type: size_t
      - name: '*pathspec'
        type: struct pathspec
      - name: df_conflicts
        type: unsigned long
      - name: fn
        type: traverse_callback_t
      - name: '*data'
        type: void
      - name: show_all_errors
        type: int
      item_type: struct
      name: traverse_info
      pos:
        line_end: 175
        line_start: 125
        source_file: /src/git/tree-walk.h
    typedefs:
    - item_type: typedef
      name: (*traverse_callback_t)(int n, unsigned long mask, unsigned long dirmask,
        struct name_entry *entry, struct traverse_info *)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/git/tree-walk.h
      type: int
    union: []
- function_names: []
  source_file: /src/git/levenshtein.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - filter_blobs_none
  - filter_blobs_none__init
  - filter_trees_update_omits
  - filter_trees_depth
  - filter_trees_free
  - filter_trees_depth__init
  - filter_blobs_limit
  - filter_blobs_limit__init
  - filter_sparse
  - filter_sparse_free
  - filter_sparse_oid__init
  - filter_object_type
  - filter_object_type__init
  - process_subfilter
  - filter_combine
  - filter_combine__free
  - filter_combine__finalize_omits
  - filter_combine__init
  - filter_auto__init
  - list_objects_filter__init
  - list_objects_filter__filter_object
  - list_objects_filter__free
  source_file: /src/git/list-objects-filter.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FILTER_SHOWN_BUT_REVISIT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/list-objects-filter.c
      type_or_value: (1<<21)
    structs:
    - fields:
      - name: '*filter'
        type: struct filter
      - name: seen
        type: struct oidset
      - name: omits
        type: struct oidset
      - name: skip_tree
        type: struct object_id
      - name: is_skipping_tree
        type: unsigned
      item_type: struct
      name: subfilter
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/git/list-objects-filter.c
    - fields:
      - name: "(*filter_object_fn)(\n\t\tstruct repository *r,\n\t\tenum list_objects_filter_situation
          filter_situation,\n\t\tstruct object *obj,\n\t\tconst char *pathname,\n\t\tconst
          char *filename,\n\t\tstruct oidset *omits,\n\t\tvoid *filter_data)"
        type: enum list_objects_filter_result
      - name: (*finalize_omits_fn)(struct oidset *omits, void *filter_data)
        type: void
      - name: (*free_fn)(void *filter_data)
        type: void
      - name: '*filter_data'
        type: void
      - name: '*omits'
        type: struct oidset
      item_type: struct
      name: filter
      pos:
        line_end: 69
        line_start: 36
        source_file: /src/git/list-objects-filter.c
    - fields:
      - name: seen_at_depth
        type: struct oidmap
      - name: exclude_depth
        type: unsigned long
      - name: current_depth
        type: unsigned long
      item_type: struct
      name: filter_trees_depth_data
      pos:
        line_end: 138
        line_start: 125
        source_file: /src/git/list-objects-filter.c
    - fields:
      - name: base
        type: struct oidmap_entry
      - name: depth
        type: size_t
      item_type: struct
      name: seen_map_entry
      pos:
        line_end: 143
        line_start: 140
        source_file: /src/git/list-objects-filter.c
    - fields:
      - name: max_bytes
        type: unsigned long
      item_type: struct
      name: filter_blobs_limit_data
      pos:
        line_end: 270
        line_start: 268
        source_file: /src/git/list-objects-filter.c
    - fields:
      - name: default_match
        type: enum pattern_match_result
      - name: child_prov_omit
        type: unsigned
      item_type: struct
      name: frame
      pos:
        line_end: 376
        line_start: 358
        source_file: /src/git/list-objects-filter.c
    - fields:
      - name: pl
        type: struct pattern_list
      - name: nr
        type: size_t
      - name: '*array_frame'
        type: struct frame
      item_type: struct
      name: filter_sparse_data
      pos:
        line_end: 383
        line_start: 378
        source_file: /src/git/list-objects-filter.c
    - fields:
      - name: object_type
        type: enum object_type
      item_type: struct
      name: filter_object_type_data
      pos:
        line_end: 553
        line_start: 551
        source_file: /src/git/list-objects-filter.c
    - fields:
      - name: '*sub'
        type: struct subfilter
      - name: nr
        type: size_t
      item_type: struct
      name: combine_filter_data
      pos:
        line_end: 626
        line_start: 623
        source_file: /src/git/list-objects-filter.c
    typedefs:
    - item_type: typedef
      name: "(*filter_init_fn)(\n\tstruct list_objects_filter_options *filter_options,\n\tstruct
        filter *filter)"
      pos:
        line_end: 756
        line_start: 754
        source_file: /src/git/list-objects-filter.c
      type: void
    union: []
- function_names:
  - stop_progress
  source_file: /src/git/progress.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - midx_snapshot_ref_one
  - midx_snapshot_refs
  - midx_has_unknown_packs
  - midx_included_packs
  - for_each_string_list_item
  - remove_redundant_bitmaps
  - for_each_string_list_item
  - repack_prepare_midx_command
  - repack_fill_midx_stdin_packs
  - write_midx_included_packs
  - midx_compaction_step_base
  - midx_compaction_step_exec_copy
  - midx_compaction_step_exec_write
  - midx_compaction_step_exec_compact
  - midx_compaction_step_exec
  - midx_compaction_step_release
  - repack_make_midx_append_plan
  - repack_make_midx_compaction_plan
  - write_midx_incremental
  - repack_write_midx
  source_file: /src/git/repack-midx.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*f'
        type: struct tempfile
      - name: seen
        type: struct oidset
      - name: preferred
        type: int
      item_type: struct
      name: midx_snapshot_ref_data
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/git/repack-midx.c
    - fields:
      - name: u
        type: "union {\n\t\tstruct multi_pack_index *copy;\n\t\tstruct string_list
          write;\n\t\tstruct {\n\t\t\tstruct multi_pack_index *from;\n\t\t\tstruct
          multi_pack_index *to;\n\t\t} compact;\n\t}"
      - name: objects_nr
        type: uint32_t
      - name: '*csum'
        type: char
      - name: type
        type: "enum {\n\t\tMIDX_COMPACTION_STEP_UNKNOWN,\n\t\tMIDX_COMPACTION_STEP_COPY,\n\t\tMIDX_COMPACTION_STEP_WRITE,\n\t\tMIDX_COMPACTION_STEP_COMPACT,\n\t}"
      item_type: struct
      name: midx_compaction_step
      pos:
        line_end: 408
        line_start: 389
        source_file: /src/git/repack-midx.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/pack-revindex.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RIDX_SIGNATURE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/pack-revindex.h
      type_or_value: '0x52494458 '
    - item_type: preproc_def
      name: RIDX_VERSION
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/pack-revindex.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GIT_TEST_NO_WRITE_REV_INDEX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/pack-revindex.h
      type_or_value: '"GIT_TEST_NO_WRITE_REV_INDEX"'
    - item_type: preproc_def
      name: GIT_TEST_REV_INDEX_DIE_IN_MEMORY
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/git/pack-revindex.h
      type_or_value: '"GIT_TEST_REV_INDEX_DIE_IN_MEMORY"'
    - item_type: preproc_def
      name: GIT_TEST_REV_INDEX_DIE_ON_DISK
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/pack-revindex.h
      type_or_value: '"GIT_TEST_REV_INDEX_DIE_ON_DISK"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/notes-cache.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: tree
        type: struct notes_tree
      - name: '*validity'
        type: char
      item_type: struct
      name: notes_cache
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/git/notes-cache.h
    typedefs: []
    union: []
- function_names:
  - option_parse_push_signed
  - feed_object
  - pack_objects
  - receive_unpack_status
  - receive_status
  - sideband_demux
  - advertise_shallow_grafts_cb
  - advertise_shallow_grafts_buf
  - check_to_send_update
  - next_line
  - generate_push_cert
  - reject_invalid_nonce
  - get_commons_through_negotiation
  - send_pack
  source_file: /src/git/send-pack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHECK_REF_NO_PUSH
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/git/send-pack.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: CHECK_REF_STATUS_REJECTED
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/git/send-pack.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: CHECK_REF_UPTODATE
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/git/send-pack.c
      type_or_value: '-3'
    - item_type: preproc_def
      name: NONCE_LEN_LIMIT
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/git/send-pack.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/hash-lookup.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*oid_access_fn(size_t index, const void *table)'
      pos:
        line_end: 3
        line_start: 3
        source_file: /src/git/hash-lookup.h
      type: object_id
    union: []
- function_names:
  - getenv_safe
  - is_bare_repository
  - have_git_dir
  - get_git_namespace
  - strip_namespace
  - get_log_output_encoding
  - get_commit_output_encoding
  - use_optional_locks
  - print_sha1_ellipsis
  - parse_fsync_components
  - git_default_core_config
  - git_default_sparse_config
  - git_default_i18n_config
  - git_default_branch_config
  - git_default_push_config
  - git_default_attr_config
  - git_default_config
  - repo_config_values_init
  source_file: /src/git/environment.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OBJECT_CREATION_MODE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/git/environment.c
      type_or_value: OBJECT_CREATION_USES_HARDLINKS
    - item_type: preproc_def
      name: PROTECT_HFS_DEFAULT
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/git/environment.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PROTECT_NTFS_DEFAULT
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/git/environment.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: component_bits
        type: enum fsync_component
      item_type: struct
      name: fsync_component_name
      pos:
        line_end: 230
        line_start: 227
        source_file: /src/git/environment.c
    typedefs: []
    union: []
- function_names:
  - starts_with
  - istarts_with
  - starts_with_mem
  - skip_to_optional_arg_default
  - strbuf_init
  - strbuf_release
  - strbuf_detach
  - strbuf_attach
  - strbuf_grow
  - strbuf_trim
  - strbuf_rtrim
  - strbuf_trim_trailing_dir_sep
  - strbuf_trim_trailing_newline
  - strbuf_ltrim
  - strbuf_reencode
  - strbuf_tolower
  - strbuf_split_buf
  - strbuf_add_separated_string_list
  - for_each_string_list_item
  - strbuf_list_free
  - strbuf_cmp
  - strbuf_splice
  - strbuf_insert
  - strbuf_vinsertf
  - strbuf_insertf
  - strbuf_remove
  - strbuf_add
  - strbuf_addstrings
  - strbuf_addbuf
  - strbuf_join_argv
  - strbuf_addchars
  - strbuf_addf
  - add_lines
  - strbuf_add_commented_lines
  - strbuf_commented_addf
  - strbuf_vaddf
  - strbuf_expand_step
  - strbuf_expand_literal
  - strbuf_expand_bad_format
  - strbuf_addbuf_percentquote
  - strbuf_add_percentencode
  - strbuf_fread
  - strbuf_read
  - strbuf_read_once
  - strbuf_write
  - strbuf_readlink
  - strbuf_getcwd
  - strbuf_getwholeline
  - strbuf_getwholeline
  - strbuf_appendwholeline
  - strbuf_getdelim
  - strbuf_getdelim_strip_crlf
  - strbuf_getline
  - strbuf_getline_lf
  - strbuf_getline_nul
  - strbuf_getwholeline_fd
  - strbuf_read_file
  - strbuf_add_lines
  - strbuf_addstr_xml_quoted
  - strbuf_add_urlencode
  - strbuf_addstr_urlencode
  - humanise_count
  - humanise_bytes
  - strbuf_humanise
  - strbuf_humanise_bytes
  - strbuf_humanise_rate
  - printf_ln
  - fprintf_ln
  - xstrdup_tolower
  - xstrdup_toupper
  - xstrvfmt
  - xstrfmt
  - strbuf_addftime
  - cleanup
  - strbuf_stripspace
  - strbuf_strip_file_from_path
  source_file: /src/git/strbuf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: URL_UNSAFE_CHARS
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/git/strbuf.c
      type_or_value: '" <>\"%{}|\\^`:?#[]@!$&''()*+,;="'
    - item_type: preproc_def
      name: STRBUF_MAXLINK
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/git/strbuf.c
      type_or_value: (32767)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/tmp-objdir.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_one_reflog
  - free_complete_reflog
  - complete_reflogs_clear
  - read_complete_reflog
  - get_reflog_recno_by_time
  - init_reflog_walk
  - reflog_walk_info_release
  - add_reflog_for_walk
  - get_reflog_selector
  - get_reflog_message
  - get_reflog_ident
  - get_reflog_timestamp
  - show_reflog_message
  - reflog_walk_empty
  - next_reflog_commit
  - log_timestamp
  - next_reflog_entry
  source_file: /src/git/reflog-walk.c
  types:
    enum:
    - enumerators:
      - name: SELECTOR_NONE
      - name: SELECTOR_INDEX
      - name: SELECTOR_DATE
      item_type: enum
      name: selector_type
      pos:
        line_end: 120
        line_start: 116
        source_file: /src/git/reflog-walk.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*ref'
        type: char
      - name: '*short_ref'
        type: char
      - name: '*items'
        type: "struct reflog_info {\n\t\tstruct object_id ooid, noid;\n\t\tchar *email;\n\t\ttimestamp_t
          timestamp;\n\t\tint tz;\n\t\tchar *message;\n\t}"
      - name: nr
        type: int
      item_type: struct
      name: complete_reflogs
      pos:
        line_end: 22
        line_start: 11
        source_file: /src/git/reflog-walk.c
    - fields:
      - name: ooid
        type: struct object_id
      - name: '*email'
        type: char
      - name: timestamp
        type: timestamp_t
      - name: tz
        type: int
      - name: '*message'
        type: char
      item_type: struct
      name: reflog_info
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/git/reflog-walk.c
    - fields:
      - name: recno
        type: int
      - name: selector
        type: "enum selector_type {\n\t\tSELECTOR_NONE,\n\t\tSELECTOR_INDEX,\n\t\tSELECTOR_DATE\n\t}"
      - name: '*reflogs'
        type: struct complete_reflogs
      item_type: struct
      name: commit_reflog
      pos:
        line_end: 122
        line_start: 114
        source_file: /src/git/reflog-walk.c
    - fields:
      - name: '**logs'
        type: struct commit_reflog
      - name: nr
        type: size_t
      - name: complete_reflogs
        type: struct string_list
      - name: '*last_commit_reflog'
        type: struct commit_reflog
      item_type: struct
      name: reflog_walk_info
      pos:
        line_end: 129
        line_start: 124
        source_file: /src/git/reflog-walk.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/unix-stream-server.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*path_socket'
        type: char
      - name: st_socket
        type: struct stat
      - name: fd_socket
        type: int
      item_type: struct
      name: unix_ss_socket
      pos:
        line_end: 9
        line_start: 5
        source_file: /src/git/unix-stream-server.h
    typedefs: []
    union: []
- function_names:
  - rebase_parse_value
  source_file: /src/git/rebase.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_generic_cmd
  - is_valid_cmd_name
  - make_cmd
  - cd_to_homedir
  - run_shell
  - cmd_main
  source_file: /src/git/shell.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMMAND_DIR
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/shell.c
      type_or_value: '"git-shell-commands"'
    - item_type: preproc_def
      name: HELP_COMMAND
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/shell.c
      type_or_value: COMMAND_DIR "/help"
    - item_type: preproc_def
      name: NOLOGIN_COMMAND
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/shell.c
      type_or_value: COMMAND_DIR "/no-interactive-login"
    - item_type: preproc_def
      name: MAX_INTERACTIVE_COMMAND
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/shell.c
      type_or_value: (4*1024*1024)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*exec)(const char *me, char *arg)
        type: int
      item_type: struct
      name: commands
      pos:
        line_end: 153
        line_start: 150
        source_file: /src/git/shell.c
    typedefs: []
    union: []
- function_names:
  - maybe_flush_or_die
  - fprintf_or_die
  - maybe_fsync
  - fsync_or_die
  - fsync_component
  - fsync_component_or_die
  - write_or_die
  - fwrite_or_die
  - fflush_or_die
  source_file: /src/git/write-or-die.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_refspec
  - refspec_item_init
  - refspec_item_init_fetch
  - refspec_item_init_push
  - refspec_item_clear
  - refspec_init_fetch
  - refspec_init_push
  - refspec_append
  - refspec_appendf
  - refspec_appendn
  - refspec_clear
  - valid_fetch_refspec
  - refspec_ref_prefixes
  - match_refname_with_pattern
  - refspec_match
  - refname_matches_negative_refspec_item
  - refspec_find_negative_match
  - refspec_find_all_matches
  - refspec_find_match
  - apply_negative_refspecs
  - apply_refspecs
  source_file: /src/git/refspec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - config_path_cmp
  - config_name_cmp
  - submodule_cache_alloc
  - submodule_cache_init
  - free_one_config
  - submodule_cache_clear
  - submodule_cache_free
  - hash_oid_string
  - cache_put_path
  - cache_remove_path
  - cache_add
  - cache_lookup_path
  - cache_lookup_name
  - check_submodule_name
  - submodule_url_is_relative
  - count_leading_dotdots
  - url_to_curl_url
  - check_submodule_url
  - name_and_item_from_var
  - lookup_or_create_by_name
  - parse_fetch_recurse
  - parse_submodule_fetchjobs
  - parse_fetch_recurse_submodules_arg
  - option_fetch_parse_recurse_submodules
  - parse_update_recurse
  - parse_update_recurse_submodules_arg
  - parse_push_recurse
  - parse_push_recurse_submodules_arg
  - warn_multiple_config
  - warn_command_line_option
  - parse_config
  - gitmodule_oid_from_commit
  - config_from
  - submodule_cache_check_init
  - config_from_gitmodules
  - gitmodules_cb
  - repo_read_gitmodules
  - gitmodules_config_oid
  - submodule_from_name
  - submodule_from_path
  - traverse_tree_submodules
  - submodules_of_tree
  - submodule_entry_list_release
  - submodule_free
  - config_print_callback
  - print_config_from_gitmodules
  - config_set_in_gitmodules_file_gently
  - gitmodules_fetch_config
  - fetch_config_from_gitmodules
  - gitmodules_update_clone_config
  - update_clone_config_from_gitmodules
  source_file: /src/git/submodule-config.c
  types:
    enum:
    - enumerators:
      - name: lookup_name
      - name: lookup_path
      item_type: enum
      name: lookup_type
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/git/submodule-config.c
    preproc_defs: []
    structs:
    - fields:
      - name: for_path
        type: struct hashmap
      - name: for_name
        type: struct hashmap
      - name: initialized
        type: unsigned
      - name: gitmodules_read
        type: unsigned
      item_type: struct
      name: submodule_cache
      pos:
        line_end: 36
        line_start: 31
        source_file: /src/git/submodule-config.c
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*config'
        type: struct submodule
      item_type: struct
      name: submodule_entry
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/git/submodule-config.c
    - fields:
      - name: '*cache'
        type: struct submodule_cache
      - name: '*treeish_name'
        type: struct object_id
      - name: '*gitmodules_oid'
        type: struct object_id
      - name: overwrite
        type: int
      item_type: struct
      name: parse_config_parameter
      pos:
        line_end: 554
        line_start: 549
        source_file: /src/git/submodule-config.c
    - fields:
      - name: '*max_children'
        type: int
      - name: '*recurse_submodules'
        type: int
      item_type: struct
      name: fetch_config
      pos:
        line_end: 997
        line_start: 994
        source_file: /src/git/submodule-config.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/ls-refs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - diff_flags_or
  - DIFF_XDL_TST
  - DIFF_XDL_SET
  - DIFF_XDL_CLR
  - DIFF_WITH_ALG
  - diff_get_color_opt
  source_file: /src/git/diff.h
  types:
    enum:
    - enumerators:
      - name: DIFF_WORDS_NONE
        value: '0'
      - name: DIFF_WORDS_COLOR
      - name: DIFF_WORDS_PORCELAIN
      - name: DIFF_WORDS_PLAIN
      item_type: enum
      name: diff_words_type
      pos:
        line_end: 231
        line_start: 226
        source_file: /src/git/diff.h
    - enumerators:
      - name: DIFF_SUBMODULE_SHORT
        value: '0'
      - name: DIFF_SUBMODULE_LOG
      - name: DIFF_SUBMODULE_INLINE_DIFF
      item_type: enum
      name: diff_submodule_format
      pos:
        line_end: 237
        line_start: 233
        source_file: /src/git/diff.h
    - enumerators:
      - name: DIFF_FILE_OLD
        value: '4'
      - name: DIFF_FUNCINFO
        value: '8'
      - name: DIFF_FILE_OLD_MOVED_ALT_DIM
        value: '12'
      - name: DIFF_FILE_NEW_MOVED_ALT_DIM
        value: '16'
      - name: DIFF_CONTEXT_BOLD
        value: '20'
      - name: DIFF_CONTEXT
        value: '1'
      - name: DIFF_FILE_NEW
        value: '5'
      - name: DIFF_FILE_OLD_MOVED
        value: '9'
      - name: DIFF_FILE_NEW_MOVED
        value: '13'
      - name: DIFF_CONTEXT_DIM
        value: '17'
      - name: DIFF_FILE_OLD_BOLD
        value: '21'
      - name: DIFF_METAINFO
        value: '2'
      - name: DIFF_COMMIT
        value: '6'
      - name: DIFF_FILE_NEW_MOVED_ALT
        value: '14'
      - name: DIFF_FILE_OLD_DIM
        value: '18'
      - name: DIFF_FILE_OLD_MOVED_ALT
        value: '10'
      - name: DIFF_FILE_NEW_BOLD
        value: '22'
      - name: DIFF_RESET
        value: '0'
      - name: DIFF_FRAGINFO
        value: '3'
      - name: DIFF_WHITESPACE
        value: '7'
      - name: DIFF_FILE_NEW_MOVED_DIM
        value: '15'
      - name: DIFF_FILE_OLD_MOVED_DIM
        value: '11'
      - name: DIFF_FILE_NEW_DIM
        value: '19'
      item_type: enum
      name: color_diff
      pos:
        line_end: 475
        line_start: 451
        source_file: /src/git/diff.h
    preproc_defs:
    - item_type: preproc_def
      name: DIFF_FORMAT_RAW
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/git/diff.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: DIFF_FORMAT_DIFFSTAT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/git/diff.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: DIFF_FORMAT_NUMSTAT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/git/diff.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: DIFF_FORMAT_SUMMARY
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/git/diff.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: DIFF_FORMAT_PATCH
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/git/diff.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: DIFF_FORMAT_SHORTSTAT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/git/diff.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: DIFF_FORMAT_DIRSTAT
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/git/diff.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: DIFF_FORMAT_NAME
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/git/diff.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: DIFF_FORMAT_NAME_STATUS
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/git/diff.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: DIFF_FORMAT_CHECKDIFF
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/git/diff.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: DIFF_FORMAT_NO_OUTPUT
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/git/diff.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: DIFF_FORMAT_CALLBACK
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/git/diff.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: DIFF_FLAGS_INIT
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/git/diff.h
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: WSEH_NEW
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/git/diff.h
      type_or_value: (1<<16)
    - item_type: preproc_def
      name: WSEH_CONTEXT
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/git/diff.h
      type_or_value: (1<<17)
    - item_type: preproc_def
      name: WSEH_OLD
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/git/diff.h
      type_or_value: (1<<18)
    - item_type: preproc_def
      name: OUTPUT_INDICATOR_NEW
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/git/diff.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OUTPUT_INDICATOR_OLD
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/git/diff.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OUTPUT_INDICATOR_CONTEXT
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/git/diff.h
      type_or_value: '2'
    - item_type: preproc_def
      name: COLOR_MOVED_DEFAULT
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/git/diff.h
      type_or_value: COLOR_MOVED_ZEBRA
    - item_type: preproc_def
      name: COLOR_MOVED_MIN_ALNUM_COUNT
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/git/diff.h
      type_or_value: '20'
    - item_type: preproc_def
      name: COLOR_MOVED_WS_ALLOW_INDENTATION_CHANGE
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/git/diff.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: COLOR_MOVED_WS_ERROR
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/git/diff.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: DIFF_SETUP_REVERSE
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/git/diff.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DIFF_SETUP_USE_SIZE_CACHE
      pos:
        line_end: 587
        line_start: 586
        source_file: /src/git/diff.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DIFF_DETECT_RENAME
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/git/diff.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DIFF_DETECT_COPY
      pos:
        line_end: 617
        line_start: 616
        source_file: /src/git/diff.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DIFF_PICKAXE_ALL
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/git/diff.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DIFF_PICKAXE_REGEX
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/git/diff.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DIFF_PICKAXE_KIND_S
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/git/diff.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: DIFF_PICKAXE_KIND_G
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/git/diff.h
      type_or_value: '8 '
    - item_type: preproc_def
      name: DIFF_PICKAXE_KIND_OBJFIND
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/git/diff.h
      type_or_value: '16 '
    - item_type: preproc_def
      name: DIFF_PICKAXE_KINDS_MASK
      pos:
        line_end: 628
        line_start: 625
        source_file: /src/git/diff.h
      type_or_value: "(DIFF_PICKAXE_KIND_S | \\\n\t\t\t\t DIFF_PICKAXE_KIND_G | \\\n\t\t\t\t
        DIFF_PICKAXE_KIND_OBJFIND)"
    - item_type: preproc_def
      name: DIFF_PICKAXE_KINDS_G_REGEX_MASK
      pos:
        line_end: 630
        line_start: 628
        source_file: /src/git/diff.h
      type_or_value: "(DIFF_PICKAXE_KIND_G | \\\n\t\t\t\t\t DIFF_PICKAXE_REGEX)"
    - item_type: preproc_def
      name: DIFF_PICKAXE_KINDS_ALL_OBJFIND_MASK
      pos:
        line_end: 632
        line_start: 630
        source_file: /src/git/diff.h
      type_or_value: "(DIFF_PICKAXE_ALL | \\\n\t\t\t\t\t     DIFF_PICKAXE_KIND_OBJFIND)"
    - item_type: preproc_def
      name: DIFF_PICKAXE_IGNORE_CASE
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/git/diff.h
      type_or_value: '32'
    - item_type: preproc_def
      name: COMMON_DIFF_OPTIONS_HELP
      pos:
        line_end: 666
        line_start: 639
        source_file: /src/git/diff.h
      type_or_value: '"\ncommon diff options:\n" \

        "  -z            output diff-raw with lines terminated with NUL.\n" \

        "  -p            output patch format.\n" \

        "  -u            synonym for -p.\n" \

        "  --patch-with-raw\n" \

        "                output both a patch and the diff-raw format.\n" \

        "  --stat        show diffstat instead of patch.\n" \

        "  --numstat     show numeric diffstat instead of patch.\n" \

        "  --patch-with-stat\n" \

        "                output a patch and prepend its diffstat.\n" \

        "  --name-only   show only names of changed files.\n" \

        "  --name-status show names and status of changed files.\n" \

        "  --full-index  show full object name on index lines.\n" \

        "  --abbrev=<n>  abbreviate object names in diff-tree header and diff-raw.\n"
        \

        "  -R            swap input file pairs.\n" \

        "  -B            detect complete rewrites.\n" \

        "  -M            detect renames.\n" \

        "  -C            detect copies.\n" \

        "  --find-copies-harder\n" \

        "                try unchanged files as candidate for copy detection.\n" \

        "  -l<n>         limit rename attempts up to <n> paths.\n" \

        "  -O<file>      reorder diffs according to the <file>.\n" \

        "  -S<string>    find filepair whose only one side contains the string.\n"
        \

        "  --pickaxe-all\n" \

        "                show all files diff when -S is used and hit is found.\n"
        \

        "  -a  --text    treat all files as text.\n"'
    - item_type: preproc_def
      name: DIFF_STATUS_ADDED
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/git/diff.h
      type_or_value: '''A'''
    - item_type: preproc_def
      name: DIFF_STATUS_COPIED
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/git/diff.h
      type_or_value: '''C'''
    - item_type: preproc_def
      name: DIFF_STATUS_DELETED
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/git/diff.h
      type_or_value: '''D'''
    - item_type: preproc_def
      name: DIFF_STATUS_MODIFIED
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/git/diff.h
      type_or_value: '''M'''
    - item_type: preproc_def
      name: DIFF_STATUS_RENAMED
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/git/diff.h
      type_or_value: '''R'''
    - item_type: preproc_def
      name: DIFF_STATUS_TYPE_CHANGED
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/git/diff.h
      type_or_value: '''T'''
    - item_type: preproc_def
      name: DIFF_STATUS_UNKNOWN
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/git/diff.h
      type_or_value: '''X'''
    - item_type: preproc_def
      name: DIFF_STATUS_UNMERGED
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/git/diff.h
      type_or_value: '''U'''
    - item_type: preproc_def
      name: DIFF_STATUS_FILTER_AON
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/git/diff.h
      type_or_value: '''*'''
    - item_type: preproc_def
      name: DIFF_STATUS_FILTER_BROKEN
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/git/diff.h
      type_or_value: '''B'''
    - item_type: preproc_def
      name: DIFF_SILENT_ON_REMOVED
      pos:
        line_end: 698
        line_start: 697
        source_file: /src/git/diff.h
      type_or_value: '01'
    - item_type: preproc_def
      name: DIFF_RACY_IS_MODIFIED
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/git/diff.h
      type_or_value: '02'
    - item_type: preproc_def
      name: DIFF_INDEX_CACHED
      pos:
        line_end: 703
        line_start: 702
        source_file: /src/git/diff.h
      type_or_value: '01'
    - item_type: preproc_def
      name: DIFF_INDEX_MERGE_BASE
      pos:
        line_end: 704
        line_start: 703
        source_file: /src/git/diff.h
      type_or_value: '02'
    structs:
    - fields:
      - name: recursive
        type: unsigned
      - name: tree_in_recursive
        type: unsigned
      - name: no_recursive_diff_tree_combined
        type: unsigned
      - name: binary
        type: unsigned
      - name: text
        type: unsigned
      - name: full_index
        type: unsigned
      - name: silent_on_remove
        type: unsigned
      - name: find_copies_harder
        type: unsigned
      - name: follow_renames
        type: unsigned
      - name: rename_empty
        type: unsigned
      - name: has_changes
        type: unsigned
      - name: quick
        type: unsigned
      - name: no_index
        type: unsigned
      - name: allow_external
        type: unsigned
      - name: exit_with_status
        type: unsigned
      - name: reverse_diff
        type: unsigned
      - name: check_failed
        type: unsigned
      - name: relative_name
        type: unsigned
      - name: ignore_submodules
        type: unsigned
      - name: dirstat_cumulative
        type: unsigned
      - name: dirstat_by_file
        type: unsigned
      - name: allow_textconv
        type: unsigned
      - name: textconv_set_via_cmdline
        type: unsigned
      - name: diff_from_contents
        type: unsigned
      - name: dirty_submodules
        type: unsigned
      - name: ignore_untracked_in_submodules
        type: unsigned
      - name: ignore_submodule_set
        type: unsigned
      - name: ignore_dirty_submodules
        type: unsigned
      - name: override_submodule_config
        type: unsigned
      - name: dirstat_by_line
        type: unsigned
      - name: funccontext
        type: unsigned
      - name: default_follow_renames
        type: unsigned
      - name: stat_with_summary
        type: unsigned
      - name: suppress_diff_headers
        type: unsigned
      - name: dual_color_diffed_diffs
        type: unsigned
      - name: suppress_hunk_header_line_count
        type: unsigned
      item_type: struct
      name: diff_flags
      pos:
        line_end: 208
        line_start: 120
        source_file: /src/git/diff.h
    - fields:
      - name: '*orderfile'
        type: char
      - name: '*rotate_to'
        type: char
      - name: skip_instead_of_rotate
        type: int
      - name: rotate_to_strict
        type: int
      - name: '*pickaxe'
        type: char
      - name: pickaxe_opts
        type: unsigned
      - name: '**ignore_regex'
        type: regex_t
      - name: ignore_regex_nr
        type: size_t
      - name: '*single_follow'
        type: char
      - name: '*a_prefix'
        type: char
      - name: '*line_prefix'
        type: char
      - name: flags
        type: struct diff_flags
      - name: filter
        type: unsigned int
      - name: use_color
        type: enum git_colorbool
      - name: context
        type: unsigned int
      - name: interhunkcontext
        type: unsigned int
      - name: break_opt
        type: int
      - name: detect_rename
        type: int
      - name: irreversible_delete
        type: int
      - name: skip_stat_unmatch
        type: int
      - name: line_termination
        type: int
      - name: output_format
        type: int
      - name: rename_score
        type: int
      - name: rename_limit
        type: int
      - name: needed_rename_limit
        type: int
      - name: degraded_cc_to_c
        type: int
      - name: show_rename_progress
        type: int
      - name: dirstat_permille
        type: int
      - name: setup
        type: int
      - name: abbrev
        type: int
      - name: max_changes
        type: int
      - name: ita_invisible_in_index
        type: int
      - name: ws_error_highlight
        type: unsigned
      - name: '*prefix'
        type: char
      - name: prefix_length
        type: int
      - name: '*stat_sep'
        type: char
      - name: xdl_opts
        type: int
      - name: ignore_driver_algorithm
        type: int
      - name: '**anchors'
        type: char
      - name: anchors_nr
        type: size_t
      - name: stat_width
        type: int
      - name: stat_name_width
        type: int
      - name: stat_graph_width
        type: int
      - name: stat_count
        type: int
      - name: '*word_regex'
        type: char
      - name: word_diff
        type: enum diff_words_type
      - name: submodule_format
        type: enum diff_submodule_format
      - name: '*objfind'
        type: struct oidset
      - name: found_changes
        type: int
      - name: found_follow
        type: int
      - name: skip_resolving_statuses
        type: int
      - name: (*set_default)(struct diff_options *)
        type: void
      - name: '*file'
        type: FILE
      - name: close_file
        type: int
      - name: output_indicators[3]
        type: char
      - name: pathspec
        type: struct pathspec
      - name: pathchange
        type: pathchange_fn_t
      - name: change
        type: change_fn_t
      - name: add_remove
        type: add_remove_fn_t
      - name: '*change_fn_data'
        type: void
      - name: format_callback
        type: diff_format_fn_t
      - name: '*format_callback_data'
        type: void
      - name: output_prefix
        type: diff_prefix_fn_t
      - name: '*output_prefix_data'
        type: void
      - name: diff_path_counter
        type: int
      - name: '*emitted_symbols'
        type: struct emitted_diff_symbols
      - name: color_moved
        type: "enum {\n\t\tCOLOR_MOVED_NO = 0,\n\t\tCOLOR_MOVED_PLAIN = 1,\n\t\tCOLOR_MOVED_BLOCKS
          = 2,\n\t\tCOLOR_MOVED_ZEBRA = 3,\n\t\tCOLOR_MOVED_ZEBRA_DIM = 4,\n\t}"
      - name: color_moved_ws_handling
        type: unsigned
      - name: '*repo'
        type: struct repository
      - name: '*additional_path_headers'
        type: struct strmap
      - name: no_free
        type: int
      - name: max_depth
        type: int
      - name: max_depth_valid
        type: int
      item_type: struct
      name: diff_options
      pos:
        line_end: 422
        line_start: 243
        source_file: /src/git/diff.h
    - fields:
      - name: nr
        type: int
      - name: alloc
        type: int
      - name: '**files'
        type: "struct diffstat_file {\n\t\tchar *from_name;\n\t\tchar *name;\n\t\tchar
          *print_name;\n\t\tconst char *comments;\n\t\tunsigned is_unmerged:1;\n\t\tunsigned
          is_binary:1;\n\t\tunsigned is_renamed:1;\n\t\tunsigned is_interesting:1;\n\t\tuintmax_t
          added, deleted;\n\t}"
      item_type: struct
      name: diffstat_t
      pos:
        line_end: 449
        line_start: 435
        source_file: /src/git/diff.h
    - fields:
      - name: '*from_name'
        type: char
      - name: '*name'
        type: char
      - name: '*print_name'
        type: char
      - name: '*comments'
        type: char
      - name: is_unmerged
        type: unsigned
      - name: is_binary
        type: unsigned
      - name: is_renamed
        type: unsigned
      - name: is_interesting
        type: unsigned
      - name: added
        type: uintmax_t
      item_type: struct
      name: diffstat_file
      pos:
        line_end: 448
        line_start: 438
        source_file: /src/git/diff.h
    - fields:
      - name: '*next'
        type: struct combine_diff_path
      - name: '*path'
        type: char
      - name: mode
        type: unsigned int
      - name: oid
        type: struct object_id
      - name: parent[FLEX_ARRAY]
        type: "struct combine_diff_parent {\n\t\tchar status;\n\t\tunsigned int mode;\n\t\tstruct
          object_id oid;\n\t\t/*\n\t\t * This per-parent path is filled only when
          doing a combined\n\t\t * diff with revs.combined_all_paths set, and only
          if the path\n\t\t * differs from the post-image (e.g., a rename or copy).\n\t\t
          * Otherwise it is left NULL.\n\t\t */\n\t\tchar *path;\n\t}"
      item_type: struct
      name: combine_diff_path
      pos:
        line_end: 514
        line_start: 497
        source_file: /src/git/diff.h
    - fields:
      - name: status
        type: char
      - name: mode
        type: unsigned int
      - name: oid
        type: struct object_id
      - name: '*path'
        type: char
      item_type: struct
      name: combine_diff_parent
      pos:
        line_end: 513
        line_start: 502
        source_file: /src/git/diff.h
    typedefs:
    - item_type: typedef
      name: "(*pathchange_fn_t)(struct diff_options *options,\n\t\t struct combine_diff_path
        *path)"
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/git/diff.h
      type: int
    - item_type: typedef
      name: "(*change_fn_t)(struct diff_options *options,\n\t\t unsigned old_mode,
        unsigned new_mode,\n\t\t const struct object_id *old_oid,\n\t\t const struct
        object_id *new_oid,\n\t\t int old_oid_valid, int new_oid_valid,\n\t\t const
        char *fullpath,\n\t\t unsigned old_dirty_submodule, unsigned new_dirty_submodule)"
      pos:
        line_end: 86
        line_start: 80
        source_file: /src/git/diff.h
      type: void
    - item_type: typedef
      name: "(*add_remove_fn_t)(struct diff_options *options,\n\t\t    int addremove,
        unsigned mode,\n\t\t    const struct object_id *oid,\n\t\t    int oid_valid,\n\t\t
        \   const char *fullpath, unsigned dirty_submodule)"
      pos:
        line_end: 92
        line_start: 88
        source_file: /src/git/diff.h
      type: void
    - item_type: typedef
      name: "(*diff_format_fn_t)(struct diff_queue_struct *q,\n\t\tstruct diff_options
        *options, void *data)"
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/git/diff.h
      type: void
    - item_type: typedef
      name: '*(*diff_prefix_fn_t)(struct diff_options *opt, void *data)'
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/git/diff.h
      type: char
    union: []
- function_names:
  - always_advertise
  - agent_advertise
  - promisor_remote_advertise
  - promisor_remote_receive
  - object_format_advertise
  - object_format_receive
  - session_id_advertise
  - session_id_receive
  - object_info_advertise
  - protocol_v2_advertise_capabilities
  - get_capability
  - receive_client_capability
  - parse_command
  - process_request
  - protocol_v2_serve_loop
  source_file: /src/git/serve.c
  types:
    enum:
    - enumerators:
      - name: PROCESS_REQUEST_KEYS
      - name: PROCESS_REQUEST_DONE
      item_type: enum
      name: request_state
      pos:
        line_end: 277
        line_start: 274
        source_file: /src/git/serve.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*advertise)(struct repository *r, struct strbuf *value)
        type: int
      - name: (*command)(struct repository *r, struct packet_reader *request)
        type: int
      - name: (*receive)(struct repository *r, const char *value)
        type: void
      item_type: struct
      name: protocol_capability
      pos:
        line_end: 137
        line_start: 102
        source_file: /src/git/serve.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/preload-index.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/split-index.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base_oid
        type: struct object_id
      - name: '*base'
        type: struct index_state
      - name: '*delete_bitmap'
        type: struct ewah_bitmap
      - name: '*replace_bitmap'
        type: struct ewah_bitmap
      - name: '**saved_cache'
        type: struct cache_entry
      - name: saved_cache_nr
        type: unsigned int
      - name: nr_deletions
        type: unsigned int
      - name: nr_replacements
        type: unsigned int
      - name: refcount
        type: int
      item_type: struct
      name: split_index
      pos:
        line_end: 19
        line_start: 9
        source_file: /src/git/split-index.h
    typedefs: []
    union: []
- function_names:
  - create_directories
  - remove_subtree
  - create_file
  - read_blob_entry
  - open_output_fd
  - fstat_checkout_output
  - streaming_write_entry
  - enable_delayed_checkout
  - remove_available_paths
  - string_is_not_null
  - finish_delayed_checkout
  - update_ce_after_write
  - write_entry
  - check_path
  - mark_colliding_entries
  - checkout_entry_ca
  - unlink_entry
  - remove_or_warn
  source_file: /src/git/entry.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/tar.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TYPEFLAG_AUTO
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/tar.h
      type_or_value: '''\0'''
    - item_type: preproc_def
      name: TYPEFLAG_REG
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/tar.h
      type_or_value: '''0'''
    - item_type: preproc_def
      name: TYPEFLAG_LNK
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/tar.h
      type_or_value: '''2'''
    - item_type: preproc_def
      name: TYPEFLAG_DIR
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/tar.h
      type_or_value: '''5'''
    - item_type: preproc_def
      name: TYPEFLAG_GLOBAL_HEADER
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/tar.h
      type_or_value: '''g'''
    - item_type: preproc_def
      name: TYPEFLAG_EXT_HEADER
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/tar.h
      type_or_value: '''x'''
    structs:
    - fields:
      - name: name[100]
        type: char
      - name: mode[8]
        type: char
      - name: uid[8]
        type: char
      - name: gid[8]
        type: char
      - name: size[12]
        type: char
      - name: mtime[12]
        type: char
      - name: chksum[8]
        type: char
      - name: typeflag[1]
        type: char
      - name: linkname[100]
        type: char
      - name: magic[6]
        type: char
      - name: version[2]
        type: char
      - name: uname[32]
        type: char
      - name: gname[32]
        type: char
      - name: devmajor[8]
        type: char
      - name: devminor[8]
        type: char
      - name: prefix[155]
        type: char
      item_type: struct
      name: ustar_header
      pos:
        line_end: 27
        line_start: 10
        source_file: /src/git/tar.h
    typedefs: []
    union: []
- function_names:
  - write_packetized_from_buf_no_flush
  source_file: /src/git/pkt-line.h
  types:
    enum:
    - enumerators:
      - name: PACKET_READ_EOF
      - name: PACKET_READ_NORMAL
      - name: PACKET_READ_FLUSH
      - name: PACKET_READ_DELIM
      - name: PACKET_READ_RESPONSE_END
      item_type: enum
      name: packet_read_status
      pos:
        line_end: 118
        line_start: 112
        source_file: /src/git/pkt-line.h
    preproc_defs:
    - item_type: preproc_def
      name: PACKET_READ_GENTLE_ON_EOF
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/git/pkt-line.h
      type_or_value: (1u<<0)
    - item_type: preproc_def
      name: PACKET_READ_CHOMP_NEWLINE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/git/pkt-line.h
      type_or_value: (1u<<1)
    - item_type: preproc_def
      name: PACKET_READ_DIE_ON_ERR_PACKET
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/git/pkt-line.h
      type_or_value: (1u<<2)
    - item_type: preproc_def
      name: PACKET_READ_GENTLE_ON_READ_ERROR
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/git/pkt-line.h
      type_or_value: (1u<<3)
    - item_type: preproc_def
      name: PACKET_READ_REDACT_URI_PATH
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/git/pkt-line.h
      type_or_value: (1u<<4)
    - item_type: preproc_def
      name: PACKET_READ_USE_SIDEBAND
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/git/pkt-line.h
      type_or_value: (1u<<5)
    - item_type: preproc_def
      name: DEFAULT_PACKET_MAX
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/git/pkt-line.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: LARGE_PACKET_MAX
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/git/pkt-line.h
      type_or_value: '65520'
    - item_type: preproc_def
      name: LARGE_PACKET_DATA_MAX
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/git/pkt-line.h
      type_or_value: (LARGE_PACKET_MAX - 4)
    structs:
    - fields:
      - name: fd
        type: int
      - name: '*src_buffer'
        type: char
      - name: src_len
        type: size_t
      - name: '*buffer'
        type: char
      - name: buffer_size
        type: unsigned
      - name: options
        type: int
      - name: status
        type: enum packet_read_status
      - name: pktlen
        type: int
      - name: '*line'
        type: char
      - name: line_peeked
        type: int
      - name: use_sideband
        type: unsigned
      - name: '*me'
        type: char
      - name: '*hash_algo'
        type: struct git_hash_algo
      - name: scratch
        type: struct strbuf
      item_type: struct
      name: packet_reader
      pos:
        line_end: 199
        line_start: 164
        source_file: /src/git/pkt-line.h
    - fields:
      - name: dest_fd
        type: int
      - name: use_sideband
        type: unsigned
      item_type: struct
      name: packet_writer
      pos:
        line_end: 239
        line_start: 236
        source_file: /src/git/pkt-line.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/trailer.h
  types:
    enum:
    - enumerators:
      - name: WHERE_DEFAULT
      - name: WHERE_BEFORE
      - name: WHERE_START
      - name: WHERE_AFTER
      - name: WHERE_END
      item_type: enum
      name: trailer_where
      pos:
        line_end: 15
        line_start: 9
        source_file: /src/git/trailer.h
    - enumerators:
      - name: EXISTS_DEFAULT
      - name: EXISTS_ADD_IF_DIFFERENT
      - name: EXISTS_ADD
      - name: EXISTS_REPLACE
      - name: EXISTS_ADD_IF_DIFFERENT_NEIGHBOR
      - name: EXISTS_DO_NOTHING
      item_type: enum
      name: trailer_if_exists
      pos:
        line_end: 23
        line_start: 16
        source_file: /src/git/trailer.h
    - enumerators:
      - name: MISSING_DEFAULT
      - name: MISSING_DO_NOTHING
      - name: MISSING_ADD
      item_type: enum
      name: trailer_if_missing
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/git/trailer.h
    preproc_defs:
    - item_type: preproc_def
      name: PROCESS_TRAILER_OPTIONS_INIT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/git/trailer.h
      type_or_value: '{0}'
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: '*text'
        type: char
      - name: where
        type: enum trailer_where
      - name: if_exists
        type: enum trailer_if_exists
      - name: if_missing
        type: enum trailer_if_missing
      item_type: struct
      name: new_trailer_item
      pos:
        line_end: 46
        line_start: 38
        source_file: /src/git/trailer.h
    - fields:
      - name: in_place
        type: int
      - name: trim_empty
        type: int
      - name: only_trailers
        type: int
      - name: only_input
        type: int
      - name: unfold
        type: int
      - name: no_divider
        type: int
      - name: key_only
        type: int
      - name: value_only
        type: int
      - name: '*separator'
        type: struct strbuf
      - name: '*key_value_separator'
        type: struct strbuf
      - name: (*filter)(const struct strbuf *, void *)
        type: int
      - name: '*filter_data'
        type: void
      item_type: struct
      name: process_trailer_options
      pos:
        line_end: 61
        line_start: 48
        source_file: /src/git/trailer.h
    - fields:
      - name: '*raw'
        type: char
      - name: key
        type: struct strbuf
      - name: val
        type: struct strbuf
      - name: internal
        type: "struct {\n\t\tstruct trailer_block *trailer_block;\n\t\tsize_t cur;\n\t}"
      item_type: struct
      name: trailer_iterator
      pos:
        line_end: 174
        line_start: 158
        source_file: /src/git/trailer.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/rebase-interactive.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/branch.h
  types:
    enum:
    - enumerators:
      - name: BRANCH_TRACK_UNSPECIFIED
        value: '-1'
      - name: BRANCH_TRACK_EXPLICIT
      - name: BRANCH_TRACK_ALWAYS
      - name: BRANCH_TRACK_NEVER
        value: '0'
      - name: BRANCH_TRACK_REMOTE
      - name: BRANCH_TRACK_OVERRIDE
      - name: BRANCH_TRACK_INHERIT
      - name: BRANCH_TRACK_SIMPLE
      item_type: enum
      name: branch_track
      pos:
        line_end: 15
        line_start: 6
        source_file: /src/git/branch.h
    preproc_defs:
    - item_type: preproc_def
      name: BRANCH_CONFIG_VERBOSE
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/git/branch.h
      type_or_value: '01'
    structs: []
    typedefs: []
    union: []
- function_names:
  - INITIAL_FREE
  - spanhash_rehash
  - add_spanhash
  - spanhash_cmp
  - hash_chars
  - diffcore_count_changes
  source_file: /src/git/diffcore-delta.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INITIAL_HASH_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/diffcore-delta.c
      type_or_value: '9'
    - item_type: preproc_def
      name: HASHBASE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/diffcore-delta.c
      type_or_value: '107927'
    structs:
    - fields:
      - name: hashval
        type: unsigned int
      - name: cnt
        type: unsigned int
      item_type: struct
      name: spanhash
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/git/diffcore-delta.c
    - fields:
      - name: alloc_log2
        type: int
      - name: free
        type: int
      - name: data[FLEX_ARRAY]
        type: struct spanhash
      item_type: struct
      name: spanhash_top
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/git/diffcore-delta.c
    typedefs: []
    union: []
- function_names:
  - S_ISGITLINK
  - S_ISSPARSEDIR
  - object_type
  - ce_permissions
  - create_ce_mode
  - canon_mode
  - type_from_string
  - parse_mode
  source_file: /src/git/object.h
  types:
    enum:
    - enumerators:
      - name: OBJ_BAD
        value: '-1'
      - name: OBJ_TREE
        value: '2'
      - name: OBJ_COMMIT
        value: '1'
      - name: OBJ_NONE
        value: '0'
      - name: OBJ_BLOB
        value: '3'
      - name: OBJ_TAG
        value: '4'
      - name: OBJ_OFS_DELTA
        value: '6'
      - name: OBJ_REF_DELTA
        value: '7'
      - name: OBJ_ANY
      - name: OBJ_MAX
      item_type: enum
      name: object_type
      pos:
        line_end: 108
        line_start: 96
        source_file: /src/git/object.h
    - enumerators:
      - name: PARSE_OBJECT_SKIP_HASH_CHECK
        value: 1 << 0
      - name: PARSE_OBJECT_DISCARD_TREE
        value: 1 << 1
      item_type: enum
      name: parse_object_flags
      pos:
        line_end: 223
        line_start: 220
        source_file: /src/git/object.h
    - enumerators:
      - name: PEEL_PEELED
        value: '0'
      - name: PEEL_NON_TAG
        value: '-2'
      - name: PEEL_INVALID
        value: '-1'
      - name: PEEL_IS_SYMREF
        value: '-3'
      - name: PEEL_BROKEN
        value: '-4'
      item_type: enum
      name: peel_status
      pos:
        line_end: 287
        line_start: 264
        source_file: /src/git/object.h
    - enumerators:
      - name: PEEL_OBJECT_VERIFY_TAGGED_OBJECT_TYPE
        value: (1 << 0)
      item_type: enum
      name: peel_object_flags
      pos:
        line_end: 298
        line_start: 289
        source_file: /src/git/object.h
    preproc_defs:
    - item_type: preproc_def
      name: OBJECT_ARRAY_INIT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/object.h
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: FLAG_BITS
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/git/object.h
      type_or_value: '29'
    - item_type: preproc_def
      name: TYPE_BITS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/git/object.h
      type_or_value: '3'
    - item_type: preproc_def
      name: S_IFINVALID
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/git/object.h
      type_or_value: '0030000'
    - item_type: preproc_def
      name: S_IFGITLINK
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/git/object.h
      type_or_value: '0160000'
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '**obj_hash'
        type: struct object
      - name: nr_objs
        type: int
      - name: '*blob_state'
        type: struct alloc_state
      - name: '*tree_state'
        type: struct alloc_state
      - name: '*commit_state'
        type: struct alloc_state
      - name: '*tag_state'
        type: struct alloc_state
      - name: '*object_state'
        type: struct alloc_state
      - name: '**grafts'
        type: struct commit_graft
      - name: grafts_alloc
        type: int
      - name: is_shallow
        type: int
      - name: '*shallow_stat'
        type: struct stat_validity
      - name: '*alternate_shallow_file'
        type: char
      - name: commit_graft_prepared
        type: int
      - name: substituted_parent
        type: int
      - name: '*buffer_slab'
        type: struct buffer_slab
      item_type: struct
      name: parsed_object_pool
      pos:
        line_end: 32
        line_start: 8
        source_file: /src/git/object.h
    - fields:
      - name: '*item'
        type: struct object
      - name: '*next'
        type: struct object_list
      item_type: struct
      name: object_list
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/git/object.h
    - fields:
      - name: nr
        type: unsigned int
      - name: alloc
        type: unsigned int
      - name: '*objects'
        type: "struct object_array_entry {\n\t\tstruct object *item;\n\t\t/*\n\t\t
          * name or NULL.  If non-NULL, the memory pointed to\n\t\t * is owned by
          this object *except* if it points at\n\t\t * object_array_slopbuf, which
          is a static copy of the\n\t\t * empty string.\n\t\t */\n\t\tchar *name;\n\t\tchar
          *path;\n\t\tunsigned mode;\n\t}"
      item_type: struct
      name: object_array
      pos:
        line_end: 58
        line_start: 43
        source_file: /src/git/object.h
    - fields:
      - name: '*item'
        type: struct object
      - name: '*name'
        type: char
      - name: '*path'
        type: char
      - name: mode
        type: unsigned
      item_type: struct
      name: object_array_entry
      pos:
        line_end: 57
        line_start: 46
        source_file: /src/git/object.h
    - fields:
      - name: parsed
        type: unsigned
      - name: type
        type: unsigned
      - name: flags
        type: unsigned
      - name: oid
        type: struct object_id
      item_type: struct
      name: object
      pos:
        line_end: 162
        line_start: 157
        source_file: /src/git/object.h
    typedefs:
    - item_type: typedef
      name: (*object_array_each_func_t)(struct object_array_entry *, void *)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/git/object.h
      type: int
    union: []
- function_names:
  - compare_entries
  - check_pack_crc
  - verify_packfile
  - verify_pack_index
  - verify_pack
  source_file: /src/git/pack-check.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: offset
        type: off_t
      - name: nr
        type: unsigned int
      item_type: struct
      name: idx_entry
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/git/pack-check.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/prompt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROMPT_ASKPASS
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/prompt.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: PROMPT_ECHO
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/prompt.h
      type_or_value: (1<<1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/diagnose.h
  types:
    enum:
    - enumerators:
      - name: DIAGNOSE_NONE
      - name: DIAGNOSE_STATS
      - name: DIAGNOSE_ALL
      item_type: enum
      name: diagnose_mode
      pos:
        line_end: 12
        line_start: 8
        source_file: /src/git/diagnose.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - chdir_notify_register
  - chdir_notify_unregister
  - reparent_cb
  - chdir_notify_reparent
  - chdir_notify
  - reparent_relative_path
  source_file: /src/git/chdir-notify.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: cb
        type: chdir_notify_callback
      - name: '*data'
        type: void
      - name: list
        type: struct list_head
      item_type: struct
      name: chdir_notify_entry
      pos:
        line_end: 13
        line_start: 8
        source_file: /src/git/chdir-notify.c
    typedefs: []
    union: []
- function_names:
  - decode_tree_entry
  - init_tree_desc_internal
  - init_tree_desc
  - init_tree_desc_gently
  - fill_tree_descriptor
  - entry_clear
  - entry_extract
  - update_tree_entry_internal
  - update_tree_entry
  - update_tree_entry_gently
  - tree_entry
  - tree_entry_gently
  - trace2_traverse_trees_statistics_atexit
  - setup_traverse_info
  - make_traverse_path
  - strbuf_make_traverse_path
  - check_entry_match
  - extended_entry_extract
  - update_extended_entry
  - free_extended_entry
  - prune_traversal
  - traverse_trees
  - find_tree_entry
  - get_tree_entry
  - get_tree_entry_follow_symlinks
  - match_entry
  - basecmp
  - match_dir_prefix
  - match_wildcard_base
  - do_match
  - tree_entry_interesting
  source_file: /src/git/tree-walk.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GET_TREE_ENTRY_FOLLOW_SYMLINKS_MAX_LINKS
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/git/tree-walk.c
      type_or_value: '40'
    structs:
    - fields:
      - name: '*prev'
        type: struct tree_desc_skip
      - name: '*ptr'
        type: void
      item_type: struct
      name: tree_desc_skip
      pos:
        line_end: 256
        line_start: 253
        source_file: /src/git/tree-walk.c
    - fields:
      - name: d
        type: struct tree_desc
      - name: '*skip'
        type: struct tree_desc_skip
      item_type: struct
      name: tree_desc_x
      pos:
        line_end: 261
        line_start: 258
        source_file: /src/git/tree-walk.c
    - fields:
      - name: '*tree'
        type: void
      - name: size
        type: unsigned long
      - name: oid
        type: struct object_id
      item_type: struct
      name: dir_state
      pos:
        line_end: 565
        line_start: 561
        source_file: /src/git/tree-walk.c
    typedefs: []
    union: []
- function_names:
  - progress_test_force_update
  - progress_interval
  - set_progress_signal
  - clear_progress_signal
  - is_foreground_fd
  - display
  - throughput_string
  - progress_getnanotime
  - display_throughput
  - display_progress
  - start_progress_delay
  - get_default_delay
  - start_delayed_progress
  - start_progress
  - start_sparse_progress
  - start_delayed_sparse_progress
  - finish_if_sparse
  - force_last_update
  - log_trace2
  - stop_progress_msg
  source_file: /src/git/progress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TP_IDX_MAX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/progress.c
      type_or_value: '8'
    structs:
    - fields:
      - name: curr_total
        type: off_t
      - name: prev_total
        type: off_t
      - name: prev_ns
        type: uint64_t
      - name: avg_bytes
        type: unsigned int
      - name: avg_misecs
        type: unsigned int
      - name: last_bytes[TP_IDX_MAX]
        type: unsigned int
      - name: last_misecs[TP_IDX_MAX]
        type: unsigned int
      - name: idx
        type: unsigned int
      - name: display
        type: struct strbuf
      item_type: struct
      name: throughput
      pos:
        line_end: 35
        line_start: 25
        source_file: /src/git/progress.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*title'
        type: char
      - name: last_value
        type: uint64_t
      - name: total
        type: uint64_t
      - name: last_percent
        type: unsigned
      - name: delay
        type: unsigned
      - name: sparse
        type: unsigned
      - name: '*throughput'
        type: struct throughput
      - name: start_ns
        type: uint64_t
      - name: counters_sb
        type: struct strbuf
      - name: title_len
        type: int
      - name: split
        type: int
      item_type: struct
      name: progress
      pos:
        line_end: 50
        line_start: 37
        source_file: /src/git/progress.c
    typedefs: []
    union: []
- function_names:
  - copy_fd
  - copy_times
  - copy_file
  - copy_file_with_time
  source_file: /src/git/copy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/range-diff.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RANGE_DIFF_CREATION_FACTOR_DEFAULT
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/range-diff.h
      type_or_value: '60'
    - item_type: preproc_def
      name: RANGE_DIFF_MAX_MEMORY_DEFAULT
      pos:
        line_end: 9
        line_start: 7
        source_file: /src/git/range-diff.h
      type_or_value: "(sizeof(void*) >= 8 ? \\\n\t\t((size_t)(1024L * 1024L) * (size_t)(4L
        * 1024L)) : "
    - item_type: preproc_def
      name: CREATION_FACTOR_FOR_THE_SAME_SERIES
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/range-diff.h
      type_or_value: '999'
    structs:
    - fields:
      - name: creation_factor
        type: int
      - name: dual_color
        type: unsigned
      - name: left_only
        type: unsigned
      - name: include_merges
        type: unsigned
      - name: max_memory
        type: size_t
      - name: '*diffopt'
        type: struct diff_options
      - name: '*log_arg'
        type: struct strvec
      item_type: struct
      name: range_diff_options
      pos:
        line_end: 26
        line_start: 18
        source_file: /src/git/range-diff.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/delta-islands.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - COST
  - compute_assignment
  source_file: /src/git/linear-assignment.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_unit_factor
  - git_parse_signed
  - git_parse_unsigned
  - git_parse_int
  - git_parse_int64
  - git_parse_uint
  - git_parse_ulong
  - git_parse_ssize_t
  - git_parse_double
  - git_parse_maybe_bool_text
  - git_parse_maybe_bool
  - git_env_bool
  - git_env_ulong
  source_file: /src/git/parse.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - checkout_entry
  source_file: /src/git/entry.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHECKOUT_INIT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/entry.h
      type_or_value: '{ .base_dir = "" }'
    - item_type: preproc_def
      name: TEMPORARY_FILENAME_LENGTH
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/entry.h
      type_or_value: '25'
    structs:
    - fields:
      - name: '*istate'
        type: struct index_state
      - name: '*base_dir'
        type: char
      - name: base_dir_len
        type: int
      - name: '*super_prefix'
        type: char
      - name: '*delayed_checkout'
        type: struct delayed_checkout
      - name: meta
        type: struct checkout_metadata
      - name: force
        type: unsigned
      item_type: struct
      name: checkout
      pos:
        line_end: 20
        line_start: 8
        source_file: /src/git/entry.h
    typedefs: []
    union: []
- function_names:
  - oidtree_init
  - oidtree_clear
  - oidtree_insert
  - oidtree_lookup
  - oidtree_contains
  - oidtree_get
  - iter
  - oidtree_each
  source_file: /src/git/oidtree.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base
        type: struct cb_node
      - name: key
        type: struct object_id
      - name: '*data'
        type: void
      item_type: struct
      name: oidtree_node
      pos:
        line_end: 12
        line_start: 8
        source_file: /src/git/oidtree.c
    - fields:
      - name: oid
        type: struct object_id
      item_type: struct
      name: oidtree_data
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/git/oidtree.c
    - fields:
      - name: cb
        type: oidtree_each_cb
      - name: '*cb_data'
        type: void
      - name: '*last_nibble_at'
        type: size_t
      - name: algo
        type: uint32_t
      - name: last_byte
        type: uint8_t
      item_type: struct
      name: oidtree_each_data
      pos:
        line_end: 96
        line_start: 90
        source_file: /src/git/oidtree.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/server-info.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_default_hash_algo
  - repo_config_values
  - initialize_repository
  - expand_base_dir
  - repo_get_git_dir
  - repo_get_common_dir
  - repo_get_object_directory
  - repo_get_index_file
  - repo_get_graft_file
  - repo_get_work_tree
  - repo_set_commondir
  - repo_set_gitdir
  - repo_set_hash_algo
  - repo_set_compat_hash_algo
  - repo_set_ref_storage_format
  - repo_init_gitdir
  - repo_set_worktree
  - read_and_verify_repository_format
  - repo_init
  - repo_submodule_init
  - repo_clear_path_cache
  - repo_clear
  - repo_read_index
  - repo_hold_locked_index
  source_file: /src/git/repository.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_parameters
  - get_parameter
  - format_write
  - http_status
  - hdr_str
  - hdr_int
  - hdr_date
  - hdr_nocache
  - hdr_cache_forever
  - end_headers
  - not_found
  - forbidden
  - select_getanyfile
  - send_strbuf
  - send_local_file
  - get_text_file
  - get_loose_object
  - get_pack_file
  - get_idx_file
  - http_config
  - select_service
  - write_to_child
  - read_request_eof
  - read_request_fixed_len
  - get_content_length
  - read_request
  - inflate_request
  - copy_request
  - pipe_fixed_length
  - run_service
  - show_text_ref
  - get_info_refs
  - show_head_ref
  - get_head
  - get_info_packs
  - repo_for_each_pack
  - repo_for_each_pack
  - check_content_type
  - service_rpc
  - die_webcgi
  - die_webcgi_recursing
  - getdir
  - bad_request
  - cmd_main
  source_file: /src/git/http-backend.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*config_name'
        type: char
      - name: buffer_input
        type: unsigned
      - name: enabled
        type: signed
      item_type: struct
      name: rpc_service
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/git/http-backend.c
    - fields:
      - name: '*method'
        type: char
      - name: '*pattern'
        type: char
      - name: (*imp)(struct strbuf *, char *)
        type: void
      item_type: struct
      name: service_cmd
      pos:
        line_end: 730
        line_start: 726
        source_file: /src/git/http-backend.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/archive.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARCHIVER_WANT_COMPRESSION_LEVELS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/archive.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ARCHIVER_REMOTE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/archive.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ARCHIVER_HIGH_COMPRESSION_LEVELS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/archive.h
      type_or_value: '4'
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*refname'
        type: char
      - name: '*prefix'
        type: char
      - name: '*base'
        type: char
      - name: baselen
        type: size_t
      - name: '*tree'
        type: struct tree
      - name: '*commit_oid'
        type: struct object_id
      - name: '*commit'
        type: struct commit
      - name: '*mtime_option'
        type: char
      - name: time
        type: timestamp_t
      - name: pathspec
        type: struct pathspec
      - name: verbose
        type: unsigned int
      - name: worktree_attributes
        type: unsigned int
      - name: convert
        type: unsigned int
      - name: compression_level
        type: int
      - name: extra_files
        type: struct string_list
      - name: '*pretty_ctx'
        type: struct pretty_print_context
      item_type: struct
      name: archiver_args
      pos:
        line_end: 27
        line_start: 9
        source_file: /src/git/archive.h
    - fields:
      - name: '*name'
        type: char
      - name: (*write_archive)(const struct archiver *, struct archiver_args *)
        type: int
      - name: flags
        type: unsigned
      - name: '*filter_command'
        type: char
      item_type: struct
      name: archiver
      pos:
        line_end: 47
        line_start: 42
        source_file: /src/git/archive.h
    typedefs:
    - item_type: typedef
      name: "(*write_archive_entry_fn_t)(struct archiver_args *args,\n\t\t\t\t\tconst
        struct object_id *oid,\n\t\t\t\t\tconst char *path, size_t pathlen,\n\t\t\t\t\tunsigned
        int mode,\n\t\t\t\t\tvoid *buffer, unsigned long size)"
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/git/archive.h
      type: int
    union: []
- function_names:
  - convert_to_working_tree
  - async_convert_to_working_tree
  - would_convert_to_git
  source_file: /src/git/convert.h
  types:
    enum:
    - enumerators:
      - name: AUTO_CRLF_FALSE
        value: '0'
      - name: AUTO_CRLF_INPUT
        value: '-1'
      - name: AUTO_CRLF_TRUE
        value: '1'
      item_type: enum
      name: auto_crlf
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/git/convert.h
    - enumerators:
      - name: EOL_UNSET
      - name: EOL_LF
      - name: EOL_CRLF
      - name: EOL_NATIVE
        value: EOL_CRLF
      - name: EOL_NATIVE
        value: EOL_LF
      item_type: enum
      name: eol
      pos:
        line_end: 37
        line_start: 28
        source_file: /src/git/convert.h
    - enumerators:
      - name: CE_NO_DELAY
        value: '0'
      - name: CE_RETRY
        value: '2'
      - name: CE_CAN_DELAY
        value: '1'
      item_type: enum
      name: ce_delay_state
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/git/convert.h
    - enumerators:
      - name: CRLF_UNDEFINED
      - name: CRLF_TEXT
      - name: CRLF_TEXT_CRLF
      - name: CRLF_BINARY
      - name: CRLF_TEXT_INPUT
      - name: CRLF_AUTO
      - name: CRLF_AUTO_INPUT
      - name: CRLF_AUTO_CRLF
      item_type: enum
      name: convert_crlf_action
      pos:
        line_end: 78
        line_start: 69
        source_file: /src/git/convert.h
    - enumerators:
      - name: CA_CLASS_INCORE
      - name: CA_CLASS_INCORE_FILTER
      - name: CA_CLASS_STREAMABLE
      - name: CA_CLASS_INCORE_PROCESS
      item_type: enum
      name: conv_attrs_classification
      pos:
        line_end: 234
        line_start: 206
        source_file: /src/git/convert.h
    preproc_defs:
    - item_type: preproc_def
      name: CONV_EOL_RNDTRP_DIE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/convert.h
      type_or_value: '(1<<0) '
    - item_type: preproc_def
      name: CONV_EOL_RNDTRP_WARN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/convert.h
      type_or_value: '(1<<1) '
    - item_type: preproc_def
      name: CONV_EOL_RENORMALIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/convert.h
      type_or_value: '(1<<2) '
    - item_type: preproc_def
      name: CONV_EOL_KEEP_CRLF
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/convert.h
      type_or_value: '(1<<3) '
    - item_type: preproc_def
      name: CONV_WRITE_OBJECT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/convert.h
      type_or_value: '(1<<4) '
    structs:
    - fields:
      - name: state
        type: enum ce_delay_state
      - name: filters
        type: struct string_list
      - name: paths
        type: struct string_list
      item_type: struct
      name: delayed_checkout
      pos:
        line_end: 61
        line_start: 45
        source_file: /src/git/convert.h
    - fields:
      - name: '*refname'
        type: char
      - name: treeish
        type: struct object_id
      - name: blob
        type: struct object_id
      item_type: struct
      name: checkout_metadata
      pos:
        line_end: 67
        line_start: 63
        source_file: /src/git/convert.h
    - fields:
      - name: '*drv'
        type: struct convert_driver
      - name: attr_action
        type: enum convert_crlf_action
      - name: crlf_action
        type: enum convert_crlf_action
      - name: ident
        type: int
      - name: '*working_tree_encoding'
        type: char
      item_type: struct
      name: conv_attrs
      pos:
        line_end: 88
        line_start: 82
        source_file: /src/git/convert.h
    typedefs: []
    union: []
- function_names:
  - cmp_strmap_entry
  - find_strmap_entry
  - strmap_init
  - strmap_init_with_options
  - strmap_free_entries_
  - strmap_clear
  - strmap_partial_clear
  - create_entry
  - strmap_put
  - strmap_get_entry
  - strmap_get
  - strmap_contains
  - strmap_remove
  - strintmap_incr
  - strset_add
  source_file: /src/git/strmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PATTERNS
  - IPATTERN
  - userdiff_find_by_namelen_cb
  - regexec_supports_multi_byte_chars
  - userdiff_find_by_namelen
  - parse_funcname
  - parse_tristate
  - parse_bool
  - userdiff_config
  - userdiff_find_by_name
  - userdiff_find_by_path
  - userdiff_get_textconv
  - for_each_userdiff_driver_list
  - for_each_userdiff_driver
  source_file: /src/git/userdiff.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: len
        type: size_t
      - name: '*driver'
        type: struct userdiff_driver
      item_type: struct
      name: find_by_namelen_data
      pos:
        line_end: 385
        line_start: 381
        source_file: /src/git/userdiff.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/apply.h
  types:
    enum:
    - enumerators:
      - name: nowarn_ws_error
      - name: correct_ws_error
      - name: warn_on_ws_error
      - name: die_on_ws_error
      item_type: enum
      name: apply_ws_error_action
      pos:
        line_end: 15
        line_start: 10
        source_file: /src/git/apply.h
    - enumerators:
      - name: ignore_ws_none
      - name: ignore_ws_change
      item_type: enum
      name: apply_ws_ignore
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/git/apply.h
    - enumerators:
      - name: verbosity_silent
        value: '-1'
      - name: verbosity_normal
        value: '0'
      - name: verbosity_verbose
        value: '1'
      item_type: enum
      name: apply_verbosity
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/git/apply.h
    preproc_defs:
    - item_type: preproc_def
      name: APPLY_OPT_INACCURATE_EOF
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/git/apply.h
      type_or_value: '(1<<0) '
    - item_type: preproc_def
      name: APPLY_OPT_RECOUNT
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/git/apply.h
      type_or_value: '(1<<1) '
    structs:
    - fields:
      - name: '*prefix'
        type: char
      - name: lock_file
        type: struct lock_file
      - name: apply
        type: int
      - name: cached
        type: int
      - name: check
        type: int
      - name: check_index
        type: int
      - name: update_index
        type: int
      - name: ita_only
        type: int
      - name: diffstat
        type: int
      - name: numstat
        type: int
      - name: summary
        type: int
      - name: allow_overlap
        type: int
      - name: apply_in_reverse
        type: int
      - name: apply_with_reject
        type: int
      - name: no_add
        type: int
      - name: threeway
        type: int
      - name: unidiff_zero
        type: int
      - name: unsafe_paths
        type: int
      - name: allow_empty
        type: int
      - name: '*repo'
        type: struct repository
      - name: '*index_file'
        type: char
      - name: apply_verbosity
        type: enum apply_verbosity
      - name: merge_variant
        type: int
      - name: '*fake_ancestor'
        type: char
      - name: '*patch_input_file'
        type: char
      - name: line_termination
        type: int
      - name: root
        type: struct strbuf
      - name: p_value
        type: int
      - name: p_value_known
        type: int
      - name: p_context
        type: unsigned int
      - name: limit_by_name
        type: struct string_list
      - name: has_include
        type: int
      - name: linenr
        type: int
      - name: removed_symlinks
        type: struct strset
      - name: kept_symlinks
        type: struct strset
      - name: max_change
        type: int
      - name: max_len
        type: int
      - name: fn_table
        type: struct string_list
      - name: (*saved_error_routine)(const char *err, va_list params)
        type: void
      - name: (*saved_warn_routine)(const char *warn, va_list params)
        type: void
      - name: ws_error_action
        type: enum apply_ws_error_action
      - name: ws_ignore_action
        type: enum apply_ws_ignore
      - name: '*whitespace_option'
        type: char
      - name: whitespace_error
        type: int
      - name: squelch_whitespace_errors
        type: int
      - name: applied_after_fixing_ws
        type: int
      item_type: struct
      name: apply_state
      pos:
        line_end: 116
        line_start: 28
        source_file: /src/git/apply.h
    - fields:
      - name: '*new_name'
        type: char
      - name: old_mode
        type: unsigned int
      - name: is_new
        type: int
      - name: rejected
        type: int
      - name: ws_rule
        type: unsigned
      - name: lines_added
        type: int
      - name: score
        type: int
      - name: extension_linenr
        type: int
      - name: is_toplevel_relative
        type: unsigned int
      - name: inaccurate_eof
        type: unsigned int
      - name: is_binary
        type: unsigned int
      - name: is_copy
        type: unsigned int
      - name: is_rename
        type: unsigned int
      - name: recount
        type: unsigned int
      - name: conflicted_threeway
        type: unsigned int
      - name: direct_to_threeway
        type: unsigned int
      - name: crlf_in_old
        type: unsigned int
      - name: '*fragments'
        type: struct fragment
      - name: '*result'
        type: char
      - name: resultsize
        type: size_t
      - name: old_oid_prefix[GIT_MAX_HEXSZ + 1]
        type: char
      - name: new_oid_prefix[GIT_MAX_HEXSZ + 1]
        type: char
      - name: '*next'
        type: struct patch
      - name: threeway_stage[3]
        type: struct object_id
      item_type: struct
      name: patch
      pos:
        line_end: 150
        line_start: 123
        source_file: /src/git/apply.h
    typedefs: []
    union: []
- function_names:
  - HASHMAP_INIT
  - hashmap_clear
  - hashmap_partial_clear
  - hashmap_clear_and_free
  - hashmap_partial_clear_and_free
  - hashmap_entry_init
  - hashmap_get_size
  - hashmap_get_from_hash
  - hashmap_put_entry
  - hashmap_remove_entry
  - hashmap_iter_first
  - hashmap_iter_first_entry
  - hashmap_iter_next_entry_offset
  - hashmap_iter_first_entry_offset
  - hashmap_get_entry
  - hashmap_get_entry_from_hash
  - hashmap_get_next_entry
  - hashmap_for_each_entry_from
  - hashmap_disable_item_counting
  - hashmap_enable_item_counting
  - strintern
  source_file: /src/git/hashmap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: var
      pos:
        line_end: 487
        line_start: 480
        source_file: /src/git/hashmap.h
      type_or_value: "= hashmap_iter_first_entry_offset(map, iter, \\\n\t\t\t\t\t\tOFFSETOF_VAR(var,
        member)); \\\n\t\tvar; \\\n\t\tvar = hashmap_iter_next_entry_offset(iter,
        \\\n\t\t\t\t\t\tOFFSETOF_VAR(var, member)))"
    structs:
    - fields:
      - name: '*next'
        type: struct hashmap_entry
      - name: hash
        type: unsigned int
      item_type: struct
      name: hashmap_entry
      pos:
        line_end: 135
        line_start: 126
        source_file: /src/git/hashmap.h
    - fields:
      - name: '**table'
        type: struct hashmap_entry
      - name: cmpfn
        type: hashmap_cmp_fn
      - name: '*cmpfn_data'
        type: void
      - name: private_size
        type: unsigned int
      - name: tablesize
        type: unsigned int
      - name: grow_at
        type: unsigned int
      - name: shrink_at
        type: unsigned int
      - name: do_count_items
        type: unsigned int
      item_type: struct
      name: hashmap
      pos:
        line_end: 187
        line_start: 165
        source_file: /src/git/hashmap.h
    - fields:
      - name: '*map'
        type: struct hashmap
      - name: '*next'
        type: struct hashmap_entry
      - name: tablepos
        type: unsigned int
      item_type: struct
      name: hashmap_iter
      pos:
        line_end: 444
        line_start: 440
        source_file: /src/git/hashmap.h
    typedefs:
    - item_type: typedef
      name: "(*hashmap_cmp_fn)(const void *hashmap_cmp_fn_data,\n\t\t\t      const
        struct hashmap_entry *entry,\n\t\t\t      const struct hashmap_entry *entry_or_key,\n\t\t\t
        \     const void *keydata)"
      pos:
        line_end: 159
        line_start: 156
        source_file: /src/git/hashmap.h
      type: int
    union: []
- function_names: []
  source_file: /src/git/ctype.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPT_PARSE_LIST_OBJECTS_FILTER
  - list_objects_filter_set_no_filter
  source_file: /src/git/list-objects-filter-options.h
  types:
    enum:
    - enumerators:
      - name: LOFC_DISABLED
        value: '0'
      - name: LOFC_SPARSE_OID
      - name: LOFC_TREE_DEPTH
      - name: LOFC_BLOB_LIMIT
      - name: LOFC_BLOB_NONE
      - name: LOFC_OBJECT_TYPE
      - name: LOFC_COMBINE
      - name: LOFC_AUTO
      - name: LOFC__COUNT
      item_type: enum
      name: list_objects_filter_choice
      pos:
        line_end: 22
        line_start: 12
        source_file: /src/git/list-objects-filter-options.h
    preproc_defs:
    - item_type: preproc_def
      name: LIST_OBJECTS_FILTER_INIT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/git/list-objects-filter-options.h
      type_or_value: '{ .filter_spec = STRBUF_INIT }'
    structs:
    - fields:
      - name: filter_spec
        type: struct strbuf
      - name: choice
        type: enum list_objects_filter_choice
      - name: no_filter
        type: unsigned int
      - name: allow_auto_filter
        type: unsigned int
      - name: '*sparse_oid_name'
        type: char
      - name: blob_limit_value
        type: unsigned long
      - name: tree_exclude_depth
        type: unsigned long
      - name: object_type
        type: enum object_type
      - name: sub_nr
        type: size_t
      - name: '*sub'
        type: struct list_objects_filter_options
      item_type: struct
      name: list_objects_filter_options
      pos:
        line_end: 77
        line_start: 30
        source_file: /src/git/list-objects-filter-options.h
    typedefs: []
    union: []
- function_names:
  - implement_static_commit_slab
  - implement_shared_commit_slab
  - implement_commit_slab
  source_file: /src/git/commit-slab-impl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dir_entry_cmp
  - find_dir_entry__hash
  - find_dir_entry
  - hash_dir_entry
  - add_dir_entry
  - remove_dir_entry
  - hash_index_entry
  - cache_entry_cmp
  - lookup_lazy_params
  - init_dir_mutex
  - cleanup_dir_mutex
  - lock_dir_mutex
  - unlock_dir_mutex
  - compute_dir_lock_nr
  - hash_dir_entry_with_parent_and_prefix
  - handle_range_dir
  - handle_range_1
  - lazy_dir_thread_proc
  - lazy_name_thread_proc
  - lazy_update_dir_ref_counts
  - threaded_lazy_init_name_hash
  - lazy_init_name_hash
  - test_lazy_init_name_hash
  - add_name_hash
  - remove_name_hash
  - slow_same_name
  - same_name
  - index_dir_find
  - adjust_dirname_case
  - index_file_exists
  - free_name_hash
  source_file: /src/git/name-hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LAZY_THREAD_COST
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/git/name-hash.c
      type_or_value: (2000)
    - item_type: preproc_def
      name: LAZY_MAX_MUTEX
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/git/name-hash.c
      type_or_value: (32)
    structs:
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*parent'
        type: struct dir_entry
      - name: nr
        type: int
      - name: namelen
        type: unsigned int
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: dir_entry
      pos:
        line_end: 28
        line_start: 22
        source_file: /src/git/name-hash.c
    - fields:
      - name: '*dir'
        type: struct dir_entry
      - name: hash_dir
        type: unsigned int
      - name: hash_name
        type: unsigned int
      item_type: struct
      name: lazy_entry
      pos:
        line_end: 188
        line_start: 184
        source_file: /src/git/name-hash.c
    - fields:
      - name: pthread
        type: pthread_t
      - name: '*istate'
        type: struct index_state
      - name: '*lazy_entries'
        type: struct lazy_entry
      - name: k_start
        type: int
      - name: k_end
        type: int
      item_type: struct
      name: lazy_dir_thread_data
      pos:
        line_end: 469
        line_start: 463
        source_file: /src/git/name-hash.c
    - fields:
      - name: pthread
        type: pthread_t
      - name: '*istate'
        type: struct index_state
      - name: '*lazy_entries'
        type: struct lazy_entry
      item_type: struct
      name: lazy_name_thread_data
      pos:
        line_end: 484
        line_start: 480
        source_file: /src/git/name-hash.c
    typedefs: []
    union: []
- function_names:
  - match_word
  - get_hex_color
  - parse_ansi_color
  - parse_color
  - parse_attr
  - color_output
  - color_empty
  - color_parse_mem_1
  - OUT
  - color_parse_mem
  - color_parse
  - color_parse_quietly
  - git_config_colorbool
  - check_auto_color
  - want_color_fd
  - git_color_config
  - color_print_strbuf
  - color_vfprintf
  - color_fprintf
  - color_fprintf_ln
  - color_is_nil
  source_file: /src/git/color.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: "enum {\n\t\tCOLOR_UNSPECIFIED = 0,\n\t\tCOLOR_NORMAL,\n\t\tCOLOR_ANSI,
          /* basic 0-7 ANSI colors + \"default\" (value = 9) */\n\t\tCOLOR_256,\n\t\tCOLOR_RGB\n\t}"
      - name: value
        type: unsigned char
      - name: red
        type: unsigned char
      item_type: struct
      name: color
      pos:
        line_end: 57
        line_start: 45
        source_file: /src/git/color.c
    - fields:
      - name: '*name'
        type: char
      - name: len
        type: size_t
      - name: val
        type: int
      item_type: struct
      name: "attrs[] = {\n#define ATTR(x, val, neg) { (x), sizeof(x)-1, (val), (neg)
        }\n\t\tATTR(\"bold\",      1, 22),\n\t\tATTR(\"dim\",       2, 22),\n\t\tATTR(\"italic\",
        \   3, 23),\n\t\tATTR(\"ul\",        4, 24),\n\t\tATTR(\"blink\",     5, 25),\n\t\tATTR(\"reverse\",
        \  7, 27),\n\t\tATTR(\"strike\",    9, 29)\n#undef ATTR\n\t}"
      pos:
        line_end: 199
        line_start: 195
        source_file: /src/git/color.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/submodule.h
  types:
    enum:
    - enumerators:
      - name: RECURSE_SUBMODULES_ONLY
        value: '-5'
      - name: RECURSE_SUBMODULES_CHECK
        value: '-4'
      - name: RECURSE_SUBMODULES_ON_DEMAND
        value: '-1'
      - name: RECURSE_SUBMODULES_NONE
        value: '-2'
      - name: RECURSE_SUBMODULES_ERROR
        value: '-3'
      - name: RECURSE_SUBMODULES_OFF
        value: '0'
      - name: RECURSE_SUBMODULES_DEFAULT
        value: '1'
      - name: RECURSE_SUBMODULES_ON
        value: '2'
      item_type: enum
      name: submodule_recurse_mode
      pos:
        line_end: 24
        line_start: 15
        source_file: /src/git/submodule.h
    - enumerators:
      - name: SM_UPDATE_UNSPECIFIED
        value: '0'
      - name: SM_UPDATE_REBASE
      - name: SM_UPDATE_CHECKOUT
      - name: SM_UPDATE_NONE
      - name: SM_UPDATE_MERGE
      - name: SM_UPDATE_COMMAND
      item_type: enum
      name: submodule_update_type
      pos:
        line_end: 33
        line_start: 26
        source_file: /src/git/submodule.h
    preproc_defs:
    - item_type: preproc_def
      name: SUBMODULE_UPDATE_STRATEGY_INIT
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/git/submodule.h
      type_or_value: "{ \\\n\t.type = SM_UPDATE_UNSPECIFIED, \\\n}"
    - item_type: preproc_def
      name: SUBMODULE_REMOVAL_DIE_ON_ERROR
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/git/submodule.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: SUBMODULE_REMOVAL_IGNORE_UNTRACKED
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/git/submodule.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: SUBMODULE_REMOVAL_IGNORE_IGNORED_UNTRACKED
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/git/submodule.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: SUBMODULE_MOVE_HEAD_DRY_RUN
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/git/submodule.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: SUBMODULE_MOVE_HEAD_FORCE
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/git/submodule.h
      type_or_value: (1<<1)
    structs:
    - fields:
      - name: type
        type: enum submodule_update_type
      - name: '*command'
        type: char
      item_type: struct
      name: submodule_update_strategy
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/git/submodule.h
    typedefs: []
    union: []
- function_names:
  - remove_template_directory
  - remove_tempfiles
  - remove_tempfiles_on_exit
  - remove_tempfiles_on_signal
  - new_tempfile
  - activate_tempfile
  - deactivate_tempfile
  - create_tempfile_mode
  - register_tempfile
  - mks_tempfile_sm
  - mks_tempfile_tsm
  - mks_tempfile_dt
  - xmks_tempfile_m
  - fdopen_tempfile
  - get_tempfile_path
  - get_tempfile_fd
  - get_tempfile_fp
  - close_tempfile_gently
  - reopen_tempfile
  - rename_tempfile
  - delete_tempfile
  - reassign_tempfile_ownership
  source_file: /src/git/tempfile.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/userdiff.h
  types:
    enum:
    - enumerators:
      - name: USERDIFF_DRIVER_TYPE_BUILTIN
        value: 1<<0
      - name: USERDIFF_DRIVER_TYPE_CUSTOM
        value: 1<<1
      item_type: enum
      name: userdiff_driver_type
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/git/userdiff.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*pattern'
        type: char
      - name: '*pattern_owned'
        type: char
      - name: cflags
        type: int
      item_type: struct
      name: userdiff_funcname
      pos:
        line_end: 12
        line_start: 8
        source_file: /src/git/userdiff.h
    - fields:
      - name: '*cmd'
        type: char
      - name: trust_exit_code
        type: unsigned
      item_type: struct
      name: external_diff
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/git/userdiff.h
    - fields:
      - name: '*name'
        type: char
      - name: external
        type: struct external_diff
      - name: '*algorithm'
        type: char
      - name: '*algorithm_owned'
        type: char
      - name: binary
        type: int
      - name: funcname
        type: struct userdiff_funcname
      - name: '*word_regex'
        type: char
      - name: '*word_regex_owned'
        type: char
      - name: '*word_regex_multi_byte'
        type: char
      - name: '*textconv'
        type: char
      - name: '*textconv_owned'
        type: char
      - name: '*textconv_cache'
        type: struct notes_cache
      - name: textconv_want_cache
        type: int
      item_type: struct
      name: userdiff_driver
      pos:
        line_end: 33
        line_start: 19
        source_file: /src/git/userdiff.h
    typedefs:
    - item_type: typedef
      name: "(*each_userdiff_driver_fn)(struct userdiff_driver *,\n\t\t\t\t       enum
        userdiff_driver_type, void *)"
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/userdiff.h
      type: int
    union: []
- function_names: []
  source_file: /src/git/hook.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RUN_HOOKS_OPT_INIT
      pos:
        line_end: 176
        line_start: 170
        source_file: /src/git/hook.h
      type_or_value: "{ \\\n\t.env = STRVEC_INIT, \\\n\t.args = STRVEC_INIT, \\\n\t.stdout_to_stderr
        = 1, \\\n\t.jobs = 0, \\\n}"
    - item_type: preproc_def
      name: RUN_HOOKS_OPT_INIT_FORCE_SERIAL
      pos:
        line_end: 188
        line_start: 182
        source_file: /src/git/hook.h
      type_or_value: "{ \\\n\t.env = STRVEC_INIT, \\\n\t.args = STRVEC_INIT, \\\n\t.stdout_to_stderr
        = 1, \\\n\t.jobs = 1, \\\n}"
    structs:
    - fields:
      - name: kind
        type: "enum {\n\t\tHOOK_TRADITIONAL,\n\t\tHOOK_CONFIGURED,\n\t}"
      - name: u
        type: "union {\n\t\tstruct {\n\t\t\tconst char *path;\n\t\t} traditional;\n\t\tstruct
          {\n\t\t\tconst char *friendly_name;\n\t\t\tconst char *command;\n\t\t\tenum
          config_scope scope;\n\t\t\tbool disabled;\n\t\t\tbool event_disabled;\n\t\t}
          configured;\n\t}"
      - name: parallel
        type: bool
      - name: '*feed_pipe_cb_data'
        type: void
      - name: data_free
        type: hook_data_free_fn
      item_type: struct
      name: hook
      pos:
        line_end: 65
        line_start: 20
        source_file: /src/git/hook.h
    - fields:
      - name: env
        type: struct strvec
      - name: args
        type: struct strvec
      - name: error_if_missing
        type: unsigned int
      - name: jobs
        type: unsigned int
      - name: '*dir'
        type: char
      - name: '*invoked_hook'
        type: int
      - name: stdout_to_stderr
        type: unsigned int
      - name: '*path_to_stdin'
        type: char
      - name: feed_pipe
        type: feed_pipe_fn
      - name: '*feed_pipe_ctx'
        type: void
      - name: feed_pipe_cb_data_alloc
        type: hook_data_alloc_fn
      - name: feed_pipe_cb_data_free
        type: hook_data_free_fn
      item_type: struct
      name: run_hooks_opt
      pos:
        line_end: 164
        line_start: 67
        source_file: /src/git/hook.h
    - fields:
      - name: rc
        type: int
      - name: '*hook_name'
        type: char
      - name: '*hook_command_list'
        type: struct string_list
      - name: hook_to_run_index
        type: size_t
      - name: '*options'
        type: struct run_hooks_opt
      item_type: struct
      name: hook_cb_data
      pos:
        line_end: 207
        line_start: 189
        source_file: /src/git/hook.h
    typedefs:
    - item_type: typedef
      name: (*hook_data_free_fn)(void *data)
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/git/hook.h
      type: void
    - item_type: typedef
      name: '*(*hook_data_alloc_fn)(void *init_ctx)'
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/git/hook.h
      type: void
    union: []
- function_names:
  - check_removed
  - match_stat_with_submodule
  - run_diff_files
  - diff_index_show_file
  - get_stat_data
  - show_new_file
  - show_modified
  - do_oneway_diff
  - oneway_diff
  - diff_cache
  - diff_get_merge_base
  - run_diff_index
  - do_diff_cache
  - index_differs_from
  - idiff_prefix_cb
  - show_interdiff
  source_file: /src/git/diff-lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd2process_cmp
  - subprocess_find_entry
  - subprocess_read_status
  - subprocess_stop
  - subprocess_exit_handler
  - subprocess_start
  - handshake_version
  - handshake_capabilities
  - subprocess_handshake
  source_file: /src/git/sub-process.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - online_cpus
  - init_recursive_mutex
  - dummy_pthread_create
  - dummy_pthread_init
  - dummy_pthread_join
  source_file: /src/git/thread-utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _SC_NPROCESSORS_ONLN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/thread-utils.c
      type_or_value: _SC_NPROC_ONLN
    - item_type: preproc_def
      name: _SC_NPROCESSORS_ONLN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/thread-utils.c
      type_or_value: _SC_CRAY_NCPU
    structs: []
    typedefs: []
    union: []
- function_names:
  - replay_ctx_new
  - init_update_ref_record
  - git_sequencer_config
  - sequencer_init_config
  - is_rebase_i
  - get_dir
  - get_todo_path
  - has_conforming_footer
  - gpg_sign_opt_quoted
  - replay_ctx_release
  - replay_opts_release
  - sequencer_remove_state
  - action_name
  - short_commit_name
  - get_message
  - free_message
  - print_advice
  - write_message
  - read_oneliner
  - empty_tree
  - error_dirty_index
  - update_abort_safety_file
  - fast_forward_to
  - get_cleanup_mode
  - describe_cleanup_mode
  - append_conflicts_hint
  - do_recursive_merge
  - get_cache_tree_oid
  - is_index_unchanged
  - write_author_script
  - parse_key_value_squoted
  - read_author_script
  - read_env_script
  - get_author
  - author_date_from_env
  - run_command_silent_on_success
  - run_git_commit
  - rest_is_empty
  - cleanup_message
  - message_is_empty
  - template_untouched
  - update_head_with_reflog
  - pipe_from_strbuf
  - run_rewrite_hook
  - commit_post_rewrite
  - run_prepare_commit_msg_hook
  - implicit_ident_advice
  - print_commit_summary
  - parse_head
  - try_to_commit
  - write_rebase_head
  - do_commit
  - is_original_commit_empty
  - allow_empty
  - command_to_string
  - command_to_char
  - is_noop
  - is_fixup
  - is_pick_or_similar
  - is_fixup_flag
  - add_commented_lines
  - seen_squash
  - update_comment_bufs
  - update_squash_message_for_fixup
  - append_squash_message
  - update_squash_messages
  - flush_rewritten_pending
  - record_in_rewritten
  - should_edit
  - refer_to_commit
  - sequencer_reflog_action
  - reflog_message
  - do_pick_commit
  - prepare_revs
  - read_and_refresh_cache
  - todo_list_release
  - append_new_todo
  - todo_item_get_arg
  - is_command
  - check_label_or_ref_arg
  - check_merge_commit_insn
  - parse_insn_line
  - sequencer_get_last_command
  - todo_list_parse_insn_buffer
  - count_commands
  - get_item_line_offset
  - get_item_line
  - get_item_line_length
  - strbuf_read_file_or_whine
  - have_finished_the_last_pick
  - sequencer_post_commit_cleanup
  - todo_list_write_total_nr
  - read_populate_todo
  - git_config_string_dup
  - populate_opts_cb
  - parse_strategy_opts
  - read_strategy_opts
  - read_trailers
  - read_populate_opts
  - write_strategy_opts
  - write_basic_state
  - walk_revs_populate_todo
  - create_seq_dir
  - save_head
  - rollback_is_safe
  - reset_merge
  - rollback_single_pick
  - skip_single_pick
  - sequencer_rollback
  - sequencer_skip
  - save_todo
  - save_opts
  - make_patch
  - intend_to_amend
  - error_with_patch
  - error_failed_squash
  - do_exec
  - safe_append
  - do_label
  - lookup_label
  - do_reset
  - do_merge
  - write_update_refs_state
  - for_each_string_list_item
  - todo_list_filter_update_refs
  - do_update_ref
  - do_update_refs
  - is_final_fixup
  - peek_command
  - create_autostash_internal
  - create_autostash
  - create_autostash_ref
  - apply_save_autostash_oid
  - apply_save_autostash
  - save_autostash
  - apply_autostash
  - apply_autostash_oid
  - apply_save_autostash_ref
  - save_autostash_ref
  - apply_autostash_ref
  - checkout_onto
  - stopped_at_head
  - reread_todo_if_changed
  - pick_one_commit
  - pick_commits
  - continue_single_pick
  - commit_staged_changes
  - sequencer_continue
  - single_pick
  - sequencer_pick_revisions
  - sequencer_format_revert_message
  - append_signoff
  - labels_cmp
  - label_oid
  - make_script_with_merges
  - sequencer_make_script
  - todo_list_add_exec_commands
  - todo_list_to_strbuf
  - todo_list_write_to_file
  - skip_unnecessary_picks
  - add_decorations_to_list
  - todo_list_add_update_ref_commands
  - complete_action
  - subject2item_cmp
  - skip_fixupish
  - todo_list_rearrange_squash
  - sequencer_determine_whence
  - sequencer_get_update_refs_state
  source_file: /src/git/sequencer.c
  types:
    enum:
    - enumerators:
      - name: TODO_EDIT_MERGE_MSG
        value: (1 << 0)
      - name: TODO_REPLACE_FIXUP_MSG
        value: (1 << 1)
      - name: TODO_EDIT_FIXUP_MSG
        value: (1 << 2)
      item_type: enum
      name: todo_item_flags
      pos:
        line_end: 1886
        line_start: 1882
        source_file: /src/git/sequencer.c
    preproc_defs:
    - item_type: preproc_def
      name: GIT_REFLOG_ACTION
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/sequencer.c
      type_or_value: '"GIT_REFLOG_ACTION"'
    - item_type: preproc_def
      name: GIT_MAX_LABEL_LENGTH
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/sequencer.c
      type_or_value: ((NAME_MAX) - (LOCK_SUFFIX_LEN) - 16)
    - item_type: preproc_def
      name: ALLOW_EMPTY
      pos:
        line_end: 1086
        line_start: 1085
        source_file: /src/git/sequencer.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: EDIT_MSG
      pos:
        line_end: 1087
        line_start: 1086
        source_file: /src/git/sequencer.c
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: AMEND_MSG
      pos:
        line_end: 1088
        line_start: 1087
        source_file: /src/git/sequencer.c
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: CLEANUP_MSG
      pos:
        line_end: 1089
        line_start: 1088
        source_file: /src/git/sequencer.c
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: VERIFY_MSG
      pos:
        line_end: 1090
        line_start: 1089
        source_file: /src/git/sequencer.c
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: CREATE_ROOT_COMMIT
      pos:
        line_end: 1091
        line_start: 1090
        source_file: /src/git/sequencer.c
      type_or_value: (1<<5)
    structs:
    - fields:
      - name: before
        type: struct object_id
      - name: after
        type: struct object_id
      item_type: struct
      name: update_ref_record
      pos:
        line_end: 255
        line_start: 252
        source_file: /src/git/sequencer.c
    - fields:
      - name: '*parent_label'
        type: char
      - name: '*label'
        type: char
      - name: '*subject'
        type: char
      - name: '*message'
        type: char
      item_type: struct
      name: commit_message
      pos:
        line_end: 477
        line_start: 472
        source_file: /src/git/sequencer.c
    - fields:
      - name: c
        type: char
      - name: '*str'
        type: char
      item_type: struct
      name: "todo_command_info[] = {\n\t[TODO_PICK] = { 'p', \"pick\" },\n\t[TODO_REVERT]
        = { 0,   \"revert\" },\n\t[TODO_EDIT] = { 'e', \"edit\" },\n\t[TODO_REWORD]
        = { 'r', \"reword\" },\n\t[TODO_FIXUP] = { 'f', \"fixup\" },\n\t[TODO_SQUASH]
        = { 's', \"squash\" },\n\t[TODO_EXEC] = { 'x', \"exec\" },\n\t[TODO_BREAK]
        = { 'b', \"break\" },\n\t[TODO_LABEL] = { 'l', \"label\" },\n\t[TODO_RESET]
        = { 't', \"reset\" },\n\t[TODO_MERGE] = { 'm', \"merge\" },\n\t[TODO_UPDATE_REF]
        = { 'u', \"update-ref\" },\n\t[TODO_NOOP] = { 0,   \"noop\" },\n\t[TODO_DROP]
        = { 'd', \"drop\" },\n\t[TODO_COMMENT] = { 0,   NULL },\n}"
      pos:
        line_end: 1822
        line_start: 1819
        source_file: /src/git/sequencer.c
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: label[FLEX_ARRAY]
        type: char
      item_type: struct
      name: labels_entry
      pos:
        line_end: 5736
        line_start: 5733
        source_file: /src/git/sequencer.c
    - fields:
      - name: entry
        type: struct oidmap_entry
      - name: string[FLEX_ARRAY]
        type: char
      item_type: struct
      name: string_entry
      pos:
        line_end: 5753
        line_start: 5750
        source_file: /src/git/sequencer.c
    - fields:
      - name: commit2label
        type: struct oidmap
      - name: labels
        type: struct hashmap
      - name: buf
        type: struct strbuf
      - name: max_label_length
        type: int
      item_type: struct
      name: label_state
      pos:
        line_end: 5760
        line_start: 5755
        source_file: /src/git/sequencer.c
    - fields:
      - name: '*items'
        type: struct todo_item
      - name: items_nr
        type: size_t
      - name: items_alloc
        type: size_t
      - name: '*buf'
        type: struct strbuf
      - name: refs_to_oids
        type: struct string_list
      item_type: struct
      name: todo_add_branch_context
      pos:
        line_end: 6441
        line_start: 6435
        source_file: /src/git/sequencer.c
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: i
        type: int
      - name: subject[FLEX_ARRAY]
        type: char
      item_type: struct
      name: subject2item_entry
      pos:
        line_end: 6660
        line_start: 6656
        source_file: /src/git/sequencer.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/mailmap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAILMAP_NOFOLLOW
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/mailmap.h
      type_or_value: (1<<0)
    structs: []
    typedefs: []
    union: []
- function_names:
  - compare
  - swap
  - prio_queue_reverse
  - clear_prio_queue
  - prio_queue_put
  - sift_down_root
  - prio_queue_get
  - prio_queue_peek
  - prio_queue_replace
  source_file: /src/git/prio-queue.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blame_origin_incref
  source_file: /src/git/blame.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PICKAXE_BLAME_MOVE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/blame.h
      type_or_value: '01'
    - item_type: preproc_def
      name: PICKAXE_BLAME_COPY
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/blame.h
      type_or_value: '02'
    - item_type: preproc_def
      name: PICKAXE_BLAME_COPY_HARDER
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/blame.h
      type_or_value: '04'
    - item_type: preproc_def
      name: PICKAXE_BLAME_COPY_HARDEST
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/blame.h
      type_or_value: '010'
    - item_type: preproc_def
      name: BLAME_DEFAULT_MOVE_SCORE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/blame.h
      type_or_value: '20'
    - item_type: preproc_def
      name: BLAME_DEFAULT_COPY_SCORE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/blame.h
      type_or_value: '40'
    structs:
    - fields:
      - name: refcnt
        type: int
      - name: '*previous'
        type: struct blame_origin
      - name: '*next'
        type: struct blame_origin
      - name: '*commit'
        type: struct commit
      - name: '*suspects'
        type: struct blame_entry
      - name: file
        type: mmfile_t
      - name: num_lines
        type: int
      - name: '*fingerprints'
        type: struct fingerprint
      - name: blob_oid
        type: struct object_id
      - name: mode
        type: unsigned short
      - name: guilty
        type: char
      - name: path[FLEX_ARRAY]
        type: char
      item_type: struct
      name: blame_origin
      pos:
        line_end: 61
        line_start: 20
        source_file: /src/git/blame.h
    - fields:
      - name: '*next'
        type: struct blame_entry
      - name: lno
        type: int
      - name: num_lines
        type: int
      - name: '*suspect'
        type: struct blame_origin
      - name: s_lno
        type: int
      - name: score
        type: unsigned
      - name: ignored
        type: int
      - name: unblamable
        type: int
      item_type: struct
      name: blame_entry
      pos:
        line_end: 97
        line_start: 72
        source_file: /src/git/blame.h
    - fields:
      - name: '*final'
        type: struct commit
      - name: commits
        type: struct prio_queue
      - name: '*repo'
        type: struct repository
      - name: '*revs'
        type: struct rev_info
      - name: '*path'
        type: char
      - name: '*final_buf'
        type: char
      - name: final_buf_size
        type: unsigned long
      - name: '*ent'
        type: struct blame_entry
      - name: ignore_list
        type: struct oidset
      - name: num_lines
        type: int
      - name: '*lineno'
        type: int
      - name: num_read_blob
        type: int
      - name: num_get_patch
        type: int
      - name: num_commits
        type: int
      - name: move_score
        type: unsigned
      - name: copy_score
        type: unsigned
      - name: '*contents_from'
        type: char
      - name: reverse
        type: int
      - name: show_root
        type: int
      - name: xdl_opts
        type: int
      - name: no_whole_file_rename
        type: int
      - name: debug
        type: int
      - name: (*on_sanity_fail)(struct blame_scoreboard *, int)
        type: void
      - name: (*found_guilty_entry)(struct blame_entry *, void *)
        type: void
      - name: '*found_guilty_entry_data'
        type: void
      - name: '*bloom_data'
        type: struct blame_bloom_data
      item_type: struct
      name: blame_scoreboard
      pos:
        line_end: 158
        line_start: 104
        source_file: /src/git/blame.h
    typedefs: []
    union: []
- function_names:
  - trim_last_path_component
  - resolve_symlink
  - get_lock_path
  - get_pid_path
  - create_lock_pid_file
  - read_lock_pid
  - lock_file
  - lock_file_timeout
  - unable_to_lock_message
  - unable_to_lock_die
  - hold_lock_file_for_update_timeout_mode
  - get_locked_file_path
  - commit_lock_file
  - rollback_lock_file
  source_file: /src/git/lockfile.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXDEPTH
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/lockfile.c
      type_or_value: '5'
    - item_type: preproc_def
      name: INITIAL_BACKOFF_MS
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/git/lockfile.c
      type_or_value: 1L
    - item_type: preproc_def
      name: BACKOFF_MAX_MULTIPLIER
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/git/lockfile.c
      type_or_value: '1000'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reset.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GIT_REFLOG_ACTION_ENVIRONMENT
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/reset.h
      type_or_value: '"GIT_REFLOG_ACTION"'
    - item_type: preproc_def
      name: RESET_HEAD_DETACH
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/reset.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: RESET_HEAD_HARD
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/reset.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: RESET_HEAD_RUN_POST_CHECKOUT_HOOK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/reset.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: RESET_HEAD_REFS_ONLY
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/reset.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: RESET_ORIG_HEAD
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/reset.h
      type_or_value: (1<<4)
    structs:
    - fields:
      - name: '*oid'
        type: struct object_id
      - name: '*orig_head'
        type: struct object_id
      - name: '*branch'
        type: char
      - name: flags
        type: unsigned
      - name: '*branch_msg'
        type: char
      - name: '*head_msg'
        type: char
      - name: '*orig_head_msg'
        type: char
      - name: '*default_reflog_action'
        type: char
      item_type: struct
      name: reset_head_opts
      pos:
        line_end: 55
        line_start: 19
        source_file: /src/git/reset.h
    typedefs: []
    union: []
- function_names:
  - string_list_init_nodup
  - string_list_init_dup
  - get_entry_index
  - add_entry
  - string_list_insert
  - string_list_remove
  - string_list_has_string
  - string_list_find_insert_index
  - string_list_lookup
  - string_list_remove_duplicates
  - for_each_string_list
  - filter_string_list
  - item_is_not_empty
  - string_list_remove_empty_items
  - string_list_clear
  - string_list_clear_func
  - string_list_setlen
  - string_list_append_nodup
  - string_list_append
  - cmp_items
  - string_list_sort
  - string_list_sort_u
  - unsorted_string_list_lookup
  - unsorted_string_list_has_string
  - unsorted_string_list_delete_item
  - unsorted_string_list_remove
  - append_one
  - split_string
  - string_list_split
  - string_list_split_in_place
  - string_list_split_f
  - string_list_split_in_place_f
  source_file: /src/git/string-list.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cmp
        type: compare_strings_fn
      item_type: struct
      name: string_list_sort_ctx
      pos:
        line_end: 232
        line_start: 229
        source_file: /src/git/string-list.c
    typedefs: []
    union: []
- function_names:
  - want_color
  - want_color_stderr
  source_file: /src/git/color.h
  types:
    enum:
    - enumerators:
      - name: GIT_COLOR_UNKNOWN
        value: '-1'
      - name: GIT_COLOR_AUTO
        value: '2'
      - name: GIT_COLOR_ALWAYS
        value: '1'
      - name: GIT_COLOR_NEVER
        value: '0'
      item_type: enum
      name: git_colorbool
      pos:
        line_end: 80
        line_start: 75
        source_file: /src/git/color.h
    preproc_defs:
    - item_type: preproc_def
      name: COLOR_MAXLEN
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/color.h
      type_or_value: '75'
    - item_type: preproc_def
      name: GIT_COLOR_NORMAL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/color.h
      type_or_value: '""'
    - item_type: preproc_def
      name: GIT_COLOR_RESET
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/color.h
      type_or_value: '"\033[m"'
    - item_type: preproc_def
      name: GIT_COLOR_BOLD
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/color.h
      type_or_value: '"\033[1m"'
    - item_type: preproc_def
      name: GIT_COLOR_BLACK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/color.h
      type_or_value: '"\033[30m"'
    - item_type: preproc_def
      name: GIT_COLOR_RED
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/color.h
      type_or_value: '"\033[31m"'
    - item_type: preproc_def
      name: GIT_COLOR_GREEN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/color.h
      type_or_value: '"\033[32m"'
    - item_type: preproc_def
      name: GIT_COLOR_YELLOW
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/color.h
      type_or_value: '"\033[33m"'
    - item_type: preproc_def
      name: GIT_COLOR_BLUE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/color.h
      type_or_value: '"\033[34m"'
    - item_type: preproc_def
      name: GIT_COLOR_MAGENTA
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/color.h
      type_or_value: '"\033[35m"'
    - item_type: preproc_def
      name: GIT_COLOR_CYAN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/color.h
      type_or_value: '"\033[36m"'
    - item_type: preproc_def
      name: GIT_COLOR_WHITE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/color.h
      type_or_value: '"\033[37m"'
    - item_type: preproc_def
      name: GIT_COLOR_DEFAULT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/color.h
      type_or_value: '"\033[39m"'
    - item_type: preproc_def
      name: GIT_COLOR_BOLD_BLACK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/color.h
      type_or_value: '"\033[1;30m"'
    - item_type: preproc_def
      name: GIT_COLOR_BOLD_RED
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/git/color.h
      type_or_value: '"\033[1;31m"'
    - item_type: preproc_def
      name: GIT_COLOR_BOLD_GREEN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/color.h
      type_or_value: '"\033[1;32m"'
    - item_type: preproc_def
      name: GIT_COLOR_BOLD_YELLOW
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/color.h
      type_or_value: '"\033[1;33m"'
    - item_type: preproc_def
      name: GIT_COLOR_BOLD_BLUE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/color.h
      type_or_value: '"\033[1;34m"'
    - item_type: preproc_def
      name: GIT_COLOR_BOLD_MAGENTA
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/color.h
      type_or_value: '"\033[1;35m"'
    - item_type: preproc_def
      name: GIT_COLOR_BOLD_CYAN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/color.h
      type_or_value: '"\033[1;36m"'
    - item_type: preproc_def
      name: GIT_COLOR_BOLD_WHITE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/color.h
      type_or_value: '"\033[1;37m"'
    - item_type: preproc_def
      name: GIT_COLOR_BOLD_DEFAULT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/color.h
      type_or_value: '"\033[1;39m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT_BLACK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/color.h
      type_or_value: '"\033[2;30m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT_RED
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/color.h
      type_or_value: '"\033[2;31m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT_GREEN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/color.h
      type_or_value: '"\033[2;32m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT_YELLOW
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/color.h
      type_or_value: '"\033[2;33m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT_BLUE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/git/color.h
      type_or_value: '"\033[2;34m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT_MAGENTA
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/git/color.h
      type_or_value: '"\033[2;35m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT_CYAN
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/color.h
      type_or_value: '"\033[2;36m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT_WHITE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/color.h
      type_or_value: '"\033[2;37m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT_DEFAULT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/git/color.h
      type_or_value: '"\033[2;39m"'
    - item_type: preproc_def
      name: GIT_COLOR_BG_BLACK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/color.h
      type_or_value: '"\033[40m"'
    - item_type: preproc_def
      name: GIT_COLOR_BG_RED
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/color.h
      type_or_value: '"\033[41m"'
    - item_type: preproc_def
      name: GIT_COLOR_BG_GREEN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/color.h
      type_or_value: '"\033[42m"'
    - item_type: preproc_def
      name: GIT_COLOR_BG_YELLOW
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/git/color.h
      type_or_value: '"\033[43m"'
    - item_type: preproc_def
      name: GIT_COLOR_BG_BLUE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/color.h
      type_or_value: '"\033[44m"'
    - item_type: preproc_def
      name: GIT_COLOR_BG_MAGENTA
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/git/color.h
      type_or_value: '"\033[45m"'
    - item_type: preproc_def
      name: GIT_COLOR_BG_CYAN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/color.h
      type_or_value: '"\033[46m"'
    - item_type: preproc_def
      name: GIT_COLOR_BG_WHITE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/git/color.h
      type_or_value: '"\033[47m"'
    - item_type: preproc_def
      name: GIT_COLOR_BG_DEFAULT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/git/color.h
      type_or_value: '"\033[49m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/git/color.h
      type_or_value: '"\033[2m"'
    - item_type: preproc_def
      name: GIT_COLOR_FAINT_ITALIC
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/git/color.h
      type_or_value: '"\033[2;3m"'
    - item_type: preproc_def
      name: GIT_COLOR_REVERSE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/git/color.h
      type_or_value: '"\033[7m"'
    - item_type: preproc_def
      name: GIT_COLOR_NIL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/git/color.h
      type_or_value: '"NIL"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/fmt-merge-msg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_MERGE_LOG_LEN
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/fmt-merge-msg.h
      type_or_value: '20'
    structs:
    - fields:
      - name: add_title
        type: unsigned
      - name: shortlog_len
        type: int
      - name: '*into_name'
        type: char
      item_type: struct
      name: fmt_merge_msg_opts
      pos:
        line_end: 12
        line_start: 7
        source_file: /src/git/fmt-merge-msg.h
    typedefs: []
    union: []
- function_names:
  - git_hash_sha1_init
  - git_hash_sha1_clone
  - git_hash_sha1_update
  - git_hash_sha1_final
  - git_hash_sha1_final_oid
  - git_hash_sha1_init_unsafe
  - git_hash_sha1_clone_unsafe
  - git_hash_sha1_update_unsafe
  - git_hash_sha1_final_unsafe
  - git_hash_sha1_final_oid_unsafe
  - git_hash_sha256_init
  - git_hash_sha256_clone
  - git_hash_sha256_update
  - git_hash_sha256_final
  - git_hash_sha256_final_oid
  - git_hash_unknown_init
  - git_hash_unknown_clone
  - git_hash_unknown_update
  - git_hash_unknown_final
  - git_hash_unknown_final_oid
  - null_oid
  - empty_tree_oid_hex
  - hash_algo_ptr_by_number
  - git_hash_alloc
  - git_hash_free
  - git_hash_init
  - git_hash_clone
  - git_hash_update
  - git_hash_final
  - git_hash_final_oid
  - hash_algo_by_name
  - hash_algo_by_id
  - hash_algo_by_length
  - unsafe_hash_algo
  - oid_common_prefix_hexlen
  source_file: /src/git/hash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/match-trees.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - free_mailmap_info
  - free_mailmap_entry
  - namemap_cmp
  - add_mapping
  - parse_name_and_email
  - read_mailmap_line
  - read_mailmap_file
  - read_mailmap_string
  - read_mailmap_blob
  - read_mailmap
  - clear_mailmap
  - lookup_prefix
  - map_user
  source_file: /src/git/mailmap.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*email'
        type: char
      item_type: struct
      name: mailmap_info
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/git/mailmap.c
    - fields:
      - name: '*name'
        type: char
      - name: '*email'
        type: char
      - name: namemap
        type: struct string_list
      item_type: struct
      name: mailmap_entry
      pos:
        line_end: 23
        line_start: 16
        source_file: /src/git/mailmap.c
    typedefs: []
    union: []
- function_names:
  - strhash
  - strihash
  - memhash
  - memihash
  - memihash_cont
  - alloc_table
  - entry_equals
  - bucket
  - hashmap_bucket
  - rehash
  - find_entry_ptr
  - always_equal
  - hashmap_init
  - free_individual_entries
  - hashmap_partial_clear_
  - hashmap_clear_
  - hashmap_get
  - hashmap_get_next
  - hashmap_add
  - hashmap_remove
  - hashmap_put
  - hashmap_iter_init
  - hashmap_iter_next
  - pool_entry_cmp
  - memintern
  source_file: /src/git/hashmap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FNV32_BASE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/hashmap.c
      type_or_value: ((unsigned int) 0x811c9dc5)
    - item_type: preproc_def
      name: FNV32_PRIME
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/hashmap.c
      type_or_value: ((unsigned int) 0x01000193)
    - item_type: preproc_def
      name: HASHMAP_INITIAL_SIZE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/hashmap.c
      type_or_value: '64'
    - item_type: preproc_def
      name: HASHMAP_RESIZE_BITS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/git/hashmap.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HASHMAP_LOAD_FACTOR
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/git/hashmap.c
      type_or_value: '80'
    structs:
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: len
        type: size_t
      - name: data[FLEX_ARRAY]
        type: unsigned char
      item_type: struct
      name: pool_entry
      pos:
        line_end: 314
        line_start: 310
        source_file: /src/git/hashmap.c
    typedefs: []
    union: []
- function_names:
  - diffgrep_consume
  - diff_grep
  - contains
  - has_changes
  - pickaxe_match
  - pickaxe
  - regcomp_or_die
  - diffcore_pickaxe
  source_file: /src/git/diffcore-pickaxe.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*regexp'
        type: regex_t
      - name: hit
        type: int
      item_type: struct
      name: diffgrep_cb
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/git/diffcore-pickaxe.c
    typedefs:
    - item_type: typedef
      name: "(*pickaxe_fn)(mmfile_t *one, mmfile_t *two,\n\t\t\t  struct diff_options
        *o,\n\t\t\t  regex_t *regexp, kwset_t kws)"
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/git/diffcore-pickaxe.c
      type: int
    union: []
- function_names:
  - zerr_to_string
  - zlib_buf_cap
  - zlib_pre_call
  - zlib_post_call
  - git_inflate_init
  - git_inflate_init_gzip_only
  - git_inflate_end
  - git_inflate
  - git_deflate_bound
  - git_deflate_init
  - do_git_deflate_init
  - git_deflate_init_gzip
  - git_deflate_init_raw
  - git_deflate_abort
  - git_deflate_end
  - git_deflate_end_gently
  - git_deflate
  source_file: /src/git/git-zlib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZLIB_BUF_MAX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/git-zlib.c
      type_or_value: '((uInt) 1024 * 1024 * 1024) '
    - item_type: preproc_def
      name: ULONG_MAX_VALUE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/git-zlib.c
      type_or_value: maximum_unsigned_value_of_type(uLong)
    structs: []
    typedefs: []
    union: []
- function_names:
  - color
  - status_vprintf
  - status_printf_ln
  - status_printf
  - status_printf_more
  - wt_status_prepare
  - wt_longstatus_print_unmerged_header
  - wt_longstatus_print_cached_header
  - wt_longstatus_print_dirty_header
  - wt_longstatus_print_other_header
  - wt_longstatus_print_trailer
  - wt_status_unmerged_status_string
  - wt_status_diff_status_string
  - maxwidth
  - wt_longstatus_print_unmerged_data
  - wt_longstatus_print_change_data
  - short_submodule_status
  - wt_status_collect_changed_cb
  - unmerged_mask
  - wt_status_collect_updated_cb
  - wt_status_collect_changes_trees
  - wt_status_collect_changes_worktree
  - wt_status_collect_changes_index
  - add_file_to_list
  - wt_status_collect_changes_initial
  - wt_status_collect_untracked
  - has_unmerged
  - wt_status_collect
  - wt_status_collect_free_buffers
  - wt_status_state_free_buffers
  - wt_longstatus_print_unmerged
  - wt_longstatus_print_updated
  - wt_status_check_worktree_changes
  - wt_longstatus_print_changed
  - stash_count_refs
  - count_stash_entries
  - wt_longstatus_print_stash_summary
  - wt_longstatus_print_submodule_summary
  - wt_longstatus_print_other
  - wt_status_locate_end
  - wt_status_append_cut_line
  - wt_status_add_cut_line
  - wt_longstatus_print_verbose
  - wt_longstatus_print_tracking
  - uf_was_slow
  - show_merge_in_progress
  - show_am_in_progress
  - read_line_from_git_path
  - split_commit_in_progress
  - abbrev_oid_in_line
  - read_rebase_todolist
  - show_rebase_information
  - print_rebase_state
  - show_rebase_in_progress
  - show_cherry_pick_in_progress
  - show_revert_in_progress
  - show_bisect_in_progress
  - show_sparse_checkout_in_use
  - get_branch
  - grab_1st_switch
  - wt_status_get_detached_from
  - wt_status_check_rebase
  - wt_status_check_bisect
  - wt_status_check_sparse_checkout
  - wt_status_get_state
  - wt_longstatus_print_state
  - wt_longstatus_print
  - wt_shortstatus_unmerged
  - wt_shortstatus_status
  - wt_shortstatus_other
  - wt_shortstatus_print_tracking
  - LABEL
  - wt_shortstatus_print
  - wt_porcelain_print
  - wt_porcelain_v2_print_tracking
  - wt_porcelain_v2_print_stash
  - wt_porcelain_v2_submodule_state
  - wt_porcelain_v2_fix_up_changed
  - wt_porcelain_v2_print_changed_entry
  - wt_porcelain_v2_print_unmerged_entry
  - wt_porcelain_v2_print_other
  - wt_porcelain_v2_print
  - wt_status_print
  - has_unstaged_changes
  - has_uncommitted_changes
  - require_clean_work_tree
  source_file: /src/git/wt-status.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AB_DELAY_WARNING_IN_MS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/wt-status.c
      type_or_value: (2 * 1000)
    - item_type: preproc_def
      name: UF_DELAY_WARNING_IN_MS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/wt-status.c
      type_or_value: (2 * 1000)
    structs:
    - fields:
      - name: buf
        type: struct strbuf
      - name: noid
        type: struct object_id
      item_type: struct
      name: grab_1st_switch_cbdata
      pos:
        line_end: 1678
        line_start: 1675
        source_file: /src/git/wt-status.c
    - fields:
      - name: mode
        type: int
      - name: oid
        type: struct object_id
      item_type: struct
      name: stages[3]
      pos:
        line_end: 2454
        line_start: 2451
        source_file: /src/git/wt-status.c
    typedefs: []
    union: []
- function_names:
  - setup_ref_filter_porcelain_msg
  - ref_to_worktree_map_cmpfnc
  - strbuf_addf_ret
  - err_no_arg
  - err_bad_arg
  - match_atom_arg_value
  - match_atom_bool_arg
  - color_atom_parser
  - refname_atom_parser_internal
  - remote_ref_atom_parser
  - objecttype_atom_parser
  - objectsize_atom_parser
  - deltabase_atom_parser
  - body_atom_parser
  - subject_atom_parser
  - parse_signature_option
  - signature_atom_parser
  - trailers_atom_parser
  - contents_atom_parser
  - describe_atom_option_parser
  - describe_atom_parser
  - raw_atom_parser
  - oid_atom_parser
  - person_name_atom_parser
  - email_atom_option_parser
  - person_email_atom_parser
  - refname_atom_parser
  - parse_align_position
  - align_atom_parser
  - if_atom_parser
  - rest_atom_parser
  - ahead_behind_atom_parser
  - is_base_atom_parser
  - head_atom_parser
  - parse_ref_filter_atom
  - quote_formatting
  - append_atom
  - push_stack_element
  - pop_stack_element
  - end_align_handler
  - align_atom_handler
  - if_then_else_handler
  - if_atom_handler
  - is_empty
  - then_atom_handler
  - else_atom_handler
  - end_atom_handler
  - find_next
  - reject_atom
  - verify_ref_format
  - do_grab_oid
  - grab_oid
  - grab_common_values
  - get_or_parse_object
  - grab_tag_values
  - grab_commit_values
  - find_wholine
  - copy_line
  - copy_name
  - find_end_of_email
  - copy_email
  - copy_subject
  - grab_date
  - grab_person
  - grab_signature
  - find_subpos
  - append_lines
  - grab_describe_values
  - grab_sub_body_contents
  - fill_missing_values
  - grab_values
  - copy_advance
  - normalize_component_count
  - lstrip_ref_components
  - rstrip_ref_components
  - show_ref
  - fill_remote_ref_details
  - get_head_description
  - get_symref
  - get_refname
  - get_object
  - populate_worktree_map
  - lazy_init_worktree_map
  - get_worktree_path
  - populate_value
  - get_ref_atom_value
  - match_pattern
  - match_name_as_path
  - filter_pattern_match
  - filter_exclude_match
  - start_ref_iterator_after
  - for_each_fullref_with_seek
  - for_each_fullref_in_pattern
  - match_points_at
  - new_ref_array_item
  - ref_array_append
  - ref_array_push
  - ref_kind_from_refname
  - filter_ref_kind
  - apply_ref_filter
  - filter_one
  - free_array_item
  - filter_and_format_one
  - ref_array_clear
  - reach_filter
  - filter_ahead_behind
  - filter_is_base
  - do_filter_refs
  - filter_refs
  - can_do_iterative_format
  - filter_and_format_refs
  - compare_detached_head
  - memcasecmp
  - cmp_ref_sorting
  - compare_refs
  - ref_sorting_set_sort_flags_all
  - ref_array_sort
  - append_literal
  - format_ref_array_item
  - print_formatted_ref_array
  - pretty_print_ref
  - parse_sorting_atom
  - parse_ref_sorting
  - ref_sorting_options
  - ref_sorting_release
  - parse_opt_merge_filter
  - ref_filter_init
  - ref_filter_clear
  source_file: /src/git/ref-filter.c
  types:
    enum:
    - enumerators:
      - name: ATOM_OBJECTSIZE
      - name: ATOM_PARENT
      - name: ATOM_COMMITTERDATE
      - name: ATOM_AUTHORDATE
      - name: ATOM_TAG
      - name: ATOM_TAGGERDATE
      - name: ATOM_TRAILERS
      - name: ATOM_UPSTREAM
      - name: ATOM_HEAD
      - name: ATOM_END
      - name: ATOM_REST
      - name: ATOM_REFNAME
      - name: ATOM_OBJECTNAME
      - name: ATOM_NUMPARENT
      - name: ATOM_AUTHOR
      - name: ATOM_COMMITTER
      - name: ATOM_TAGGER
      - name: ATOM_CREATOR
      - name: ATOM_DESCRIBE
      - name: ATOM_CONTENTS
      - name: ATOM_PUSH
      - name: ATOM_ISBASE
      - name: ATOM_AHEADBEHIND
      - name: ATOM_DELTABASE
      - name: ATOM_OBJECT
      - name: ATOM_COMMITTERNAME
      - name: ATOM_AUTHORNAME
      - name: ATOM_TAGGERNAME
      - name: ATOM_CREATORDATE
      - name: ATOM_SUBJECT
      - name: ATOM_SIGNATURE
      - name: ATOM_SYMREF
      - name: ATOM_WORKTREEPATH
      - name: ATOM_THEN
      - name: ATOM_IF
      - name: ATOM_OBJECTTYPE
      - name: ATOM_TREE
      - name: ATOM_TYPE
      - name: ATOM_COMMITTEREMAIL
      - name: ATOM_AUTHOREMAIL
      - name: ATOM_TAGGEREMAIL
      - name: ATOM_BODY
      - name: ATOM_RAW
      - name: ATOM_FLAG
      - name: ATOM_ALIGN
      - name: ATOM_ELSE
      - name: ATOM_COLOR
      item_type: enum
      name: atom_type
      pos:
        line_end: 175
        line_start: 127
        source_file: /src/git/ref-filter.c
    preproc_defs:
    - item_type: preproc_def
      name: REF_FORMATTING_STATE_INIT
      pos:
        line_end: 1000
        line_start: 999
        source_file: /src/git/ref-filter.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: ATOM_SIZE_UNSPECIFIED
      pos:
        line_end: 1024
        line_start: 1023
        source_file: /src/git/ref-filter.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: ATOM_VALUE_INIT
      pos:
        line_end: 1028
        line_start: 1025
        source_file: /src/git/ref-filter.c
      type_or_value: "{ \\\n\t.s_size = ATOM_SIZE_UNSPECIFIED \\\n}"
    - item_type: preproc_def
      name: EXCLUDE_REACHED
      pos:
        line_end: 3139
        line_start: 3138
        source_file: /src/git/ref-filter.c
      type_or_value: '0'
    - item_type: preproc_def
      name: INCLUDE_REACHED
      pos:
        line_end: 3140
        line_start: 3139
        source_file: /src/git/ref-filter.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*gone'
        type: char
      - name: '*ahead'
        type: char
      - name: '*behind'
        type: char
      - name: '*ahead_behind'
        type: char
      item_type: struct
      name: ref_msg
      pos:
        line_end: 41
        line_start: 36
        source_file: /src/git/ref-filter.c
    - fields:
      - name: position
        type: align_type
      - name: width
        type: unsigned int
      item_type: struct
      name: align
      pos:
        line_end: 64
        line_start: 61
        source_file: /src/git/ref-filter.c
    - fields:
      - name: cmp_status
        type: cmp_status
      - name: '*str'
        type: char
      - name: then_atom_seen
        type: unsigned int
      item_type: struct
      name: if_then_else
      pos:
        line_end: 72
        line_start: 66
        source_file: /src/git/ref-filter.c
    - fields:
      - name: option
        type: enum { R_NORMAL, R_SHORT, R_LSTRIP, R_RSTRIP }
      - name: lstrip
        type: int
      item_type: struct
      name: refname_atom
      pos:
        line_end: 77
        line_start: 74
        source_file: /src/git/ref-filter.c
    - fields:
      - name: filter_list
        type: struct string_list
      - name: sepbuf
        type: struct strbuf
      - name: kvsepbuf
        type: struct strbuf
      item_type: struct
      name: ref_trailer_buf
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/git/ref-filter.c
    - fields:
      - name: oid
        type: struct object_id
      - name: type
        type: enum object_type
      - name: size
        type: unsigned long
      - name: disk_size
        type: off_t
      - name: delta_base_oid
        type: struct object_id
      - name: '*content'
        type: void
      - name: '*maybe_object'
        type: struct object
      - name: info
        type: struct object_info
      item_type: struct
      name: expand_data
      pos:
        line_end: 95
        line_start: 85
        source_file: /src/git/ref-filter.c
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*wt'
        type: struct worktree
      item_type: struct
      name: ref_to_worktree_entry
      pos:
        line_end: 100
        line_start: 97
        source_file: /src/git/ref-filter.c
    - fields:
      - name: map
        type: struct hashmap
      - name: '**worktrees'
        type: struct worktree
      item_type: struct
      name: ref_to_worktree_map
      pos:
        line_end: 119
        line_start: 116
        source_file: /src/git/ref-filter.c
    - fields:
      - name: atom_type
        type: enum atom_type
      - name: '*name'
        type: char
      - name: type
        type: cmp_type
      - name: source
        type: info_source
      - name: u
        type: "union {\n\t\tchar color[COLOR_MAXLEN];\n\t\tstruct align align;\n\t\tstruct
          {\n\t\t\tenum {\n\t\t\t\tRR_REF, RR_TRACK, RR_TRACKSHORT, RR_REMOTE_NAME,
          RR_REMOTE_REF\n\t\t\t} option;\n\t\t\tstruct refname_atom refname;\n\t\t\tunsigned
          int nobracket : 1, push : 1, push_remote : 1;\n\t\t} remote_ref;\n\t\tstruct
          {\n\t\t\tenum { C_BARE, C_BODY, C_BODY_DEP, C_LENGTH, C_LINES,\n\t\t\t       C_SIG,
          C_SUB, C_SUB_SANITIZE, C_TRAILERS } option;\n\t\t\tstruct process_trailer_options
          trailer_opts;\n\t\t\tstruct ref_trailer_buf *trailer_buf;\n\t\t\tunsigned
          int nlines;\n\t\t} contents;\n\t\tstruct {\n\t\t\tenum { RAW_BARE, RAW_LENGTH
          } option;\n\t\t} raw_data;\n\t\tstruct {\n\t\t\tcmp_status cmp_status;\n\t\t\tconst
          char *str;\n\t\t} if_then_else;\n\t\tstruct {\n\t\t\tenum { O_FULL, O_LENGTH,
          O_SHORT } option;\n\t\t\tunsigned int length;\n\t\t} oid;\n\t\tstruct {\n\t\t\tenum
          { O_SIZE, O_SIZE_DISK } option;\n\t\t} objectsize;\n\t\tstruct {\n\t\t\tenum
          { N_RAW, N_MAILMAP } option;\n\t\t} name_option;\n\t\tstruct {\n\t\t\tenum
          {\n\t\t\t\tEO_RAW = 0,\n\t\t\t\tEO_TRIM = 1<<0,\n\t\t\t\tEO_LOCALPART =
          1<<1,\n\t\t\t\tEO_MAILMAP = 1<<2,\n\t\t\t} option;\n\t\t} email_option;\n\t\tstruct
          {\n\t\t\tenum { S_BARE, S_GRADE, S_SIGNER, S_KEY,\n\t\t\t       S_FINGERPRINT,
          S_PRI_KEY_FP, S_TRUST_LEVEL } option;\n\t\t} signature;\n\t\tstruct {\n\t\t\tchar
          *name;\n\t\t\tstruct commit *commit;\n\t\t} base;\n\t\tstruct strvec describe_args;\n\t\tstruct
          refname_atom refname;\n\t\tchar *head;\n\t}"
      item_type: struct
      name: used_atom
      pos:
        line_end: 246
        line_start: 187
        source_file: /src/git/ref-filter.c
    - fields:
      - name: '*name'
        type: char
      - name: source
        type: info_source
      - name: cmp_type
        type: cmp_type
      - name: "(*parser)(struct ref_format *format, struct used_atom *atom,\n\t\t
          \     const char *arg, struct strbuf *err)"
        type: int
      item_type: struct
      name: "valid_atom[] = {\n\t[ATOM_REFNAME] = { \"refname\", SOURCE_NONE, FIELD_STR,
        refname_atom_parser },\n\t[ATOM_OBJECTTYPE] = { \"objecttype\", SOURCE_OTHER,
        FIELD_STR, objecttype_atom_parser },\n\t[ATOM_OBJECTSIZE] = { \"objectsize\",
        SOURCE_OTHER, FIELD_ULONG, objectsize_atom_parser },\n\t[ATOM_OBJECTNAME]
        = { \"objectname\", SOURCE_OTHER, FIELD_STR, oid_atom_parser },\n\t[ATOM_DELTABASE]
        = { \"deltabase\", SOURCE_OTHER, FIELD_STR, deltabase_atom_parser },\n\t[ATOM_TREE]
        = { \"tree\", SOURCE_OBJ, FIELD_STR, oid_atom_parser },\n\t[ATOM_PARENT] =
        { \"parent\", SOURCE_OBJ, FIELD_STR, oid_atom_parser },\n\t[ATOM_NUMPARENT]
        = { \"numparent\", SOURCE_OBJ, FIELD_ULONG },\n\t[ATOM_OBJECT] = { \"object\",
        SOURCE_OBJ },\n\t[ATOM_TYPE] = { \"type\", SOURCE_OBJ },\n\t[ATOM_TAG] = {
        \"tag\", SOURCE_OBJ },\n\t[ATOM_AUTHOR] = { \"author\", SOURCE_OBJ },\n\t[ATOM_AUTHORNAME]
        = { \"authorname\", SOURCE_OBJ, FIELD_STR, person_name_atom_parser },\n\t[ATOM_AUTHOREMAIL]
        = { \"authoremail\", SOURCE_OBJ, FIELD_STR, person_email_atom_parser },\n\t[ATOM_AUTHORDATE]
        = { \"authordate\", SOURCE_OBJ, FIELD_TIME },\n\t[ATOM_COMMITTER] = { \"committer\",
        SOURCE_OBJ },\n\t[ATOM_COMMITTERNAME] = { \"committername\", SOURCE_OBJ, FIELD_STR,
        person_name_atom_parser },\n\t[ATOM_COMMITTEREMAIL] = { \"committeremail\",
        SOURCE_OBJ, FIELD_STR, person_email_atom_parser },\n\t[ATOM_COMMITTERDATE]
        = { \"committerdate\", SOURCE_OBJ, FIELD_TIME },\n\t[ATOM_TAGGER] = { \"tagger\",
        SOURCE_OBJ },\n\t[ATOM_TAGGERNAME] = { \"taggername\", SOURCE_OBJ, FIELD_STR,
        person_name_atom_parser },\n\t[ATOM_TAGGEREMAIL] = { \"taggeremail\", SOURCE_OBJ,
        FIELD_STR, person_email_atom_parser },\n\t[ATOM_TAGGERDATE] = { \"taggerdate\",
        SOURCE_OBJ, FIELD_TIME },\n\t[ATOM_CREATOR] = { \"creator\", SOURCE_OBJ },\n\t[ATOM_CREATORDATE]
        = { \"creatordate\", SOURCE_OBJ, FIELD_TIME },\n\t[ATOM_DESCRIBE] = { \"describe\",
        SOURCE_OBJ, FIELD_STR, describe_atom_parser },\n\t[ATOM_SUBJECT] = { \"subject\",
        SOURCE_OBJ, FIELD_STR, subject_atom_parser },\n\t[ATOM_BODY] = { \"body\",
        SOURCE_OBJ, FIELD_STR, body_atom_parser },\n\t[ATOM_TRAILERS] = { \"trailers\",
        SOURCE_OBJ, FIELD_STR, trailers_atom_parser },\n\t[ATOM_CONTENTS] = { \"contents\",
        SOURCE_OBJ, FIELD_STR, contents_atom_parser },\n\t[ATOM_SIGNATURE] = { \"signature\",
        SOURCE_OBJ, FIELD_STR, signature_atom_parser },\n\t[ATOM_RAW] = { \"raw\",
        SOURCE_OBJ, FIELD_STR, raw_atom_parser },\n\t[ATOM_UPSTREAM] = { \"upstream\",
        SOURCE_NONE, FIELD_STR, remote_ref_atom_parser },\n\t[ATOM_PUSH] = { \"push\",
        SOURCE_NONE, FIELD_STR, remote_ref_atom_parser },\n\t[ATOM_SYMREF] = { \"symref\",
        SOURCE_NONE, FIELD_STR, refname_atom_parser },\n\t[ATOM_FLAG] = { \"flag\",
        SOURCE_NONE },\n\t[ATOM_HEAD] = { \"HEAD\", SOURCE_NONE, FIELD_STR, head_atom_parser
        },\n\t[ATOM_COLOR] = { \"color\", SOURCE_NONE, FIELD_STR, color_atom_parser
        },\n\t[ATOM_WORKTREEPATH] = { \"worktreepath\", SOURCE_NONE },\n\t[ATOM_ALIGN]
        = { \"align\", SOURCE_NONE, FIELD_STR, align_atom_parser },\n\t[ATOM_END]
        = { \"end\", SOURCE_NONE },\n\t[ATOM_IF] = { \"if\", SOURCE_NONE, FIELD_STR,
        if_atom_parser },\n\t[ATOM_THEN] = { \"then\", SOURCE_NONE },\n\t[ATOM_ELSE]
        = { \"else\", SOURCE_NONE },\n\t[ATOM_REST] = { \"rest\", SOURCE_NONE, FIELD_STR,
        rest_atom_parser },\n\t[ATOM_AHEADBEHIND] = { \"ahead-behind\", SOURCE_OTHER,
        FIELD_STR, ahead_behind_atom_parser },\n\t[ATOM_ISBASE] = { \"is-base\", SOURCE_OTHER,
        FIELD_STR, is_base_atom_parser },\n\t/*\n\t * Please update $__git_ref_fieldlist
        in git-completion.bash\n\t * when you add new atoms\n\t */\n}"
      pos:
        line_end: 945
        line_start: 939
        source_file: /src/git/ref-filter.c
    - fields:
      - name: '*prev'
        type: struct ref_formatting_stack
      - name: output
        type: struct strbuf
      - name: (*at_end)(struct ref_formatting_stack **stack)
        type: void
      - name: (*at_end_data_free)(void *data)
        type: void
      - name: '*at_end_data'
        type: void
      item_type: struct
      name: ref_formatting_stack
      pos:
        line_end: 1007
        line_start: 1001
        source_file: /src/git/ref-filter.c
    - fields:
      - name: quote_style
        type: int
      - name: '*stack'
        type: struct ref_formatting_stack
      item_type: struct
      name: ref_formatting_state
      pos:
        line_end: 1012
        line_start: 1009
        source_file: /src/git/ref-filter.c
    - fields:
      - name: '*s'
        type: char
      - name: s_size
        type: ssize_t
      - name: "(*handler)(struct atom_value *atomv, struct ref_formatting_state *state,\n\t\t
          \      struct strbuf *err)"
        type: int
      - name: value
        type: uintmax_t
      - name: '*atom'
        type: struct used_atom
      item_type: struct
      name: atom_value
      pos:
        line_end: 1021
        line_start: 1014
        source_file: /src/git/ref-filter.c
    - fields:
      - name: '*prefix'
        type: char
      - name: kind
        type: unsigned int
      item_type: struct
      name: "ref_kind[] = {\n\t\t{ \"refs/heads/\" , FILTER_REFS_BRANCHES },\n\t\t{
        \"refs/remotes/\" , FILTER_REFS_REMOTES },\n\t\t{ \"refs/tags/\", FILTER_REFS_TAGS}\n\t}"
      pos:
        line_end: 2910
        line_start: 2907
        source_file: /src/git/ref-filter.c
    - fields:
      - name: '*array'
        type: struct ref_array
      - name: '*filter'
        type: struct ref_filter
      item_type: struct
      name: ref_filter_cbdata
      pos:
        line_end: 3018
        line_start: 3015
        source_file: /src/git/ref-filter.c
    - fields:
      - name: '*filter'
        type: struct ref_filter
      - name: '*format'
        type: struct ref_format
      - name: internal
        type: "struct ref_filter_and_format_internal {\n\t\tint count;\n\t}"
      item_type: struct
      name: ref_filter_and_format_cbdata
      pos:
        line_end: 3058
        line_start: 3051
        source_file: /src/git/ref-filter.c
    - fields:
      - name: count
        type: int
      item_type: struct
      name: ref_filter_and_format_internal
      pos:
        line_end: 3057
        line_start: 3055
        source_file: /src/git/ref-filter.c
    - fields:
      - name: '*next'
        type: struct ref_sorting
      - name: atom
        type: int
      - name: sort_flags
        type: enum ref_sorting_order
      item_type: struct
      name: ref_sorting
      pos:
        line_end: 3382
        line_start: 3378
        source_file: /src/git/ref-filter.c
    typedefs: []
    union: []
- function_names:
  - init_chunkfile
  - free_chunkfile
  - get_num_chunks
  - add_chunk
  - write_chunkfile
  - read_table_of_contents
  - pair_chunk_fn
  - pair_chunk
  - read_chunk
  - oid_version
  source_file: /src/git/chunk-format.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: uint32_t
      - name: size
        type: uint64_t
      - name: write_fn
        type: chunk_write_fn
      - name: '*start'
        type: void
      item_type: struct
      name: chunk_info
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/git/chunk-format.c
    - fields:
      - name: '*f'
        type: struct hashfile
      - name: '*chunks'
        type: struct chunk_info
      - name: chunks_nr
        type: size_t
      - name: chunks_alloc
        type: size_t
      item_type: struct
      name: chunkfile
      pos:
        line_end: 29
        line_start: 23
        source_file: /src/git/chunk-format.c
    - fields:
      - name: '**p'
        type: unsigned char
      - name: '*size'
        type: size_t
      item_type: struct
      name: pair_chunk_data
      pos:
        line_end: 168
        line_start: 165
        source_file: /src/git/chunk-format.c
    typedefs: []
    union: []
- function_names:
  - sane_istest
  - isascii
  - isspace
  - isdigit
  - isalpha
  - isalnum
  - isprint
  - islower
  - isupper
  - is_glob_special
  - is_regex_special
  - iscntrl
  - ispunct
  - isxdigit
  - tolower
  - toupper
  - is_pathspec_magic
  - sane_case
  - sane_iscase
  source_file: /src/git/sane-ctype.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GIT_SPACE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/sane-ctype.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: GIT_DIGIT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/sane-ctype.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: GIT_ALPHA
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/sane-ctype.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: GIT_GLOB_SPECIAL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/sane-ctype.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: GIT_REGEX_SPECIAL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/sane-ctype.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: GIT_PATHSPEC_MAGIC
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/sane-ctype.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: GIT_CNTRL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/sane-ctype.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: GIT_PUNCT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/sane-ctype.h
      type_or_value: '0x80'
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_cfg_ent
  - reflog_expire_config
  - reflog_clear_expire_config
  - reflog_expire_options_set_refname
  - tree_is_complete
  - commit_is_complete
  - keep_entry
  - mark_reachable
  - is_unreachable
  - should_expire_reflog_ent
  - should_expire_reflog_ent_verbose
  - push_tip_to_list
  - is_head
  - reflog_expiry_prepare
  - reflog_expiry_cleanup
  - count_reflog_ent
  - reflog_delete
  source_file: /src/git/reflog.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INCOMPLETE
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/git/reflog.c
      type_or_value: (1u<<10)
    - item_type: preproc_def
      name: STUDYING
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/git/reflog.c
      type_or_value: (1u<<11)
    - item_type: preproc_def
      name: REACHABLE
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/git/reflog.c
      type_or_value: (1u<<12)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/parse.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sendline
  - recvline_fh
  - recvline
  - write_constant_gently
  - write_constant
  - remove_ext_force
  - do_take_over
  - get_helper
  - disconnect_helper
  - strbuf_set_helper_option
  - string_list_set_helper_option
  - set_helper_option
  - standard_options
  - release_helper
  - fetch_with_fetch
  - get_importer
  - get_exporter
  - fetch_with_import
  - run_connect
  - process_connect_service
  - process_connect
  - connect_helper
  - fetch_refs
  - push_update_ref_status
  - push_update_refs_status
  - set_common_push_options
  - push_refs_with_push
  - push_refs_with_export
  - push_refs
  - has_attribute
  - get_refs_list
  - get_refs_list_using_list
  - get_bundle_uri
  - transport_helper_init
  - transfer_debug
  - STATE_NEEDS_READING
  - STATE_NEEDS_WRITING
  - STATE_NEEDS_CLOSING
  - udt_close_if_finished
  - udt_do_read
  - udt_do_write
  - udt_copy_task_routine
  - tloop_join
  - tloop_spawnwait_tasks
  - udt_kill_transfer
  - tloop_join
  - tloop_spawnwait_tasks
  - bidirectional_transfer_loop
  - reject_atomic_push
  source_file: /src/git/transport-helper.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFFERSIZE
      pos:
        line_end: 1343
        line_start: 1342
        source_file: /src/git/transport-helper.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: PBUFFERSIZE
      pos:
        line_end: 1345
        line_start: 1344
        source_file: /src/git/transport-helper.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: SSTATE_TRANSFERRING
      pos:
        line_end: 1374
        line_start: 1373
        source_file: /src/git/transport-helper.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SSTATE_FLUSHING
      pos:
        line_end: 1379
        line_start: 1378
        source_file: /src/git/transport-helper.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SSTATE_FINISHED
      pos:
        line_end: 1381
        line_start: 1380
        source_file: /src/git/transport-helper.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*helper'
        type: struct child_process
      - name: '*out'
        type: FILE
      - name: fetch
        type: unsigned
      - name: get_refs_list_called
        type: unsigned
      - name: '*export_marks'
        type: char
      - name: '*import_marks'
        type: char
      - name: rs
        type: struct refspec
      - name: transport_options
        type: struct git_transport_options
      item_type: struct
      name: helper_data
      pos:
        line_end: 60
        line_start: 25
        source_file: /src/git/transport-helper.c
    - fields:
      - name: '*hint'
        type: struct ref
      - name: '*report'
        type: struct ref_push_report
      - name: new_report
        type: int
      item_type: struct
      name: push_update_ref_state
      pos:
        line_end: 773
        line_start: 769
        source_file: /src/git/transport-helper.c
    - fields:
      - name: src
        type: int
      - name: dest
        type: int
      - name: src_is_sock
        type: int
      - name: dest_is_sock
        type: int
      - name: state
        type: int
      - name: buf[BUFFERSIZE]
        type: char
      - name: bufuse
        type: size_t
      - name: '*src_name'
        type: char
      - name: '*dest_name'
        type: char
      item_type: struct
      name: unidirectional_transfer
      pos:
        line_end: 1406
        line_start: 1387
        source_file: /src/git/transport-helper.c
    - fields:
      - name: ptg
        type: struct unidirectional_transfer
      - name: gtp
        type: struct unidirectional_transfer
      item_type: struct
      name: bidirectional_transfer_state
      pos:
        line_end: 1481
        line_start: 1476
        source_file: /src/git/transport-helper.c
    typedefs: []
    union: []
- function_names:
  - GUARD_PATHSPEC
  - ps_strncmp
  - ps_strcmp
  - matches_skip_worktree
  source_file: /src/git/pathspec.h
  types:
    enum:
    - enumerators:
      - name: MATCH_SET
      - name: MATCH_UNSET
      - name: MATCH_UNSPECIFIED
      - name: MATCH_VALUE
      item_type: enum
      name: attr_match_mode
      pos:
        line_end: 51
        line_start: 46
        source_file: /src/git/pathspec.h
    - enumerators:
      - name: PS_HEED_SKIP_WORKTREE
        value: '0'
      - name: PS_IGNORE_SKIP_WORKTREE
        value: '1'
      item_type: enum
      name: ps_skip_worktree_action
      pos:
        line_end: 166
        line_start: 163
        source_file: /src/git/pathspec.h
    preproc_defs:
    - item_type: preproc_def
      name: PATHSPEC_FROMTOP
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/pathspec.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: PATHSPEC_MAXDEPTH
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/pathspec.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: PATHSPEC_LITERAL
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/pathspec.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: PATHSPEC_GLOB
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/pathspec.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: PATHSPEC_ICASE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/pathspec.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: PATHSPEC_EXCLUDE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/pathspec.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: PATHSPEC_ATTR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/pathspec.h
      type_or_value: (1<<6)
    - item_type: preproc_def
      name: PATHSPEC_ALL_MAGIC
      pos:
        line_end: 21
        line_start: 13
        source_file: /src/git/pathspec.h
      type_or_value: "(PATHSPEC_FROMTOP\t| \\\n\t PATHSPEC_MAXDEPTH\t| \\\n\t PATHSPEC_LITERAL\t|
        \\\n\t PATHSPEC_GLOB\t\t| \\\n\t PATHSPEC_ICASE\t\t| \\\n\t PATHSPEC_EXCLUDE\t|
        \\\n\t PATHSPEC_ATTR)"
    - item_type: preproc_def
      name: PATHSPEC_ONESTAR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/pathspec.h
      type_or_value: "1\t"
    - item_type: preproc_def
      name: PATHSPEC_PREFER_CWD
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/git/pathspec.h
      type_or_value: '(1<<0) '
    - item_type: preproc_def
      name: PATHSPEC_PREFER_FULL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/git/pathspec.h
      type_or_value: '(1<<1) '
    - item_type: preproc_def
      name: PATHSPEC_MAXDEPTH_VALID
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/git/pathspec.h
      type_or_value: '(1<<2) '
    - item_type: preproc_def
      name: PATHSPEC_SYMLINK_LEADING_PATH
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/git/pathspec.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: PATHSPEC_PREFIX_ORIGIN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/pathspec.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: PATHSPEC_KEEP_ORDER
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/git/pathspec.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: PATHSPEC_LITERAL_PATH
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/git/pathspec.h
      type_or_value: (1<<6)
    - item_type: preproc_def
      name: PATHSPEC_NO_REPOSITORY
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/git/pathspec.h
      type_or_value: (1<<7)
    structs:
    - fields:
      - name: nr
        type: int
      - name: has_wildcard
        type: unsigned int
      - name: recursive
        type: unsigned int
      - name: recurse_submodules
        type: unsigned int
      - name: magic
        type: unsigned
      - name: max_depth
        type: int
      - name: '*items'
        type: "struct pathspec_item {\n\t\tchar *match;\n\t\tchar *original;\n\t\tunsigned
          magic;\n\t\tint len, prefix;\n\t\tint nowildcard_len;\n\t\tint flags;\n\t\tint
          attr_match_nr;\n\t\tstruct attr_match {\n\t\t\tchar *value;\n\t\t\tenum
          attr_match_mode {\n\t\t\t\tMATCH_SET,\n\t\t\t\tMATCH_UNSET,\n\t\t\t\tMATCH_VALUE,\n\t\t\t\tMATCH_UNSPECIFIED\n\t\t\t}
          match_mode;\n\t\t} *attr_match;\n\t\tstruct attr_check *attr_check;\n\t}"
      item_type: struct
      name: pathspec
      pos:
        line_end: 55
        line_start: 29
        source_file: /src/git/pathspec.h
    - fields:
      - name: '*match'
        type: char
      - name: '*original'
        type: char
      - name: magic
        type: unsigned
      - name: len
        type: int
      - name: nowildcard_len
        type: int
      - name: flags
        type: int
      - name: attr_match_nr
        type: int
      - name: '*attr_match'
        type: "struct attr_match {\n\t\t\tchar *value;\n\t\t\tenum attr_match_mode
          {\n\t\t\t\tMATCH_SET,\n\t\t\t\tMATCH_UNSET,\n\t\t\t\tMATCH_VALUE,\n\t\t\t\tMATCH_UNSPECIFIED\n\t\t\t}
          match_mode;\n\t\t}"
      - name: '*attr_check'
        type: struct attr_check
      item_type: struct
      name: pathspec_item
      pos:
        line_end: 54
        line_start: 36
        source_file: /src/git/pathspec.h
    - fields:
      - name: '*value'
        type: char
      - name: match_mode
        type: "enum attr_match_mode {\n\t\t\t\tMATCH_SET,\n\t\t\t\tMATCH_UNSET,\n\t\t\t\tMATCH_VALUE,\n\t\t\t\tMATCH_UNSPECIFIED\n\t\t\t}"
      item_type: struct
      name: attr_match
      pos:
        line_end: 52
        line_start: 44
        source_file: /src/git/pathspec.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/revision.h
  types:
    enum:
    - enumerators:
      - name: commit_ignore
      - name: commit_error
      - name: commit_show
      item_type: enum
      name: commit_action
      pos:
        line_end: 531
        line_start: 527
        source_file: /src/git/revision.h
    - enumerators:
      - name: rewrite_one_ok
      - name: rewrite_one_noparents
      - name: rewrite_one_error
      item_type: enum
      name: rewrite_result
      pos:
        line_end: 542
        line_start: 538
        source_file: /src/git/revision.h
    preproc_defs:
    - item_type: preproc_def
      name: SEEN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/revision.h
      type_or_value: (1u<<0)
    - item_type: preproc_def
      name: UNINTERESTING
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/revision.h
      type_or_value: (1u<<1)
    - item_type: preproc_def
      name: TREESAME
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/revision.h
      type_or_value: (1u<<2)
    - item_type: preproc_def
      name: SHOWN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/revision.h
      type_or_value: (1u<<3)
    - item_type: preproc_def
      name: TMP_MARK
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/revision.h
      type_or_value: '(1u<<4) '
    - item_type: preproc_def
      name: BOUNDARY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/revision.h
      type_or_value: (1u<<5)
    - item_type: preproc_def
      name: CHILD_SHOWN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/revision.h
      type_or_value: (1u<<6)
    - item_type: preproc_def
      name: ADDED
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/git/revision.h
      type_or_value: "(1u<<7)\t"
    - item_type: preproc_def
      name: SYMMETRIC_LEFT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/revision.h
      type_or_value: (1u<<8)
    - item_type: preproc_def
      name: PATCHSAME
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/revision.h
      type_or_value: (1u<<9)
    - item_type: preproc_def
      name: BOTTOM
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/revision.h
      type_or_value: (1u<<10)
    - item_type: preproc_def
      name: PULL_MERGE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/revision.h
      type_or_value: (1u<<15)
    - item_type: preproc_def
      name: TOPO_WALK_EXPLORED
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/revision.h
      type_or_value: (1u<<23)
    - item_type: preproc_def
      name: TOPO_WALK_INDEGREE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/revision.h
      type_or_value: (1u<<24)
    - item_type: preproc_def
      name: NOT_USER_GIVEN
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/revision.h
      type_or_value: (1u<<25)
    - item_type: preproc_def
      name: TRACK_LINEAR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/git/revision.h
      type_or_value: (1u<<26)
    - item_type: preproc_def
      name: ANCESTRY_PATH
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/revision.h
      type_or_value: (1u<<27)
    - item_type: preproc_def
      name: CHILD_VISITED
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/revision.h
      type_or_value: (1u<<28)
    - item_type: preproc_def
      name: ALL_REV_FLAGS
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/git/revision.h
      type_or_value: "(((1u<<11)-1) | NOT_USER_GIVEN | TRACK_LINEAR \\\n\t\t\t\t      |
        PULL_MERGE | CHILD_VISITED)"
    - item_type: preproc_def
      name: DECORATE_SHORT_REFS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/git/revision.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DECORATE_FULL_REFS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/revision.h
      type_or_value: '2'
    - item_type: preproc_def
      name: REF_EXCLUSIONS_INIT
      pos:
        line_end: 119
        line_start: 115
        source_file: /src/git/revision.h
      type_or_value: "{ \\\n\t.excluded_refs = STRING_LIST_INIT_DUP, \\\n\t.hidden_refs
        = STRVEC_INIT, \\\n}"
    - item_type: preproc_def
      name: REV_INFO_INIT
      pos:
        line_end: 419
        line_start: 401
        source_file: /src/git/revision.h
      type_or_value: "{ \\\n\t.abbrev = DEFAULT_ABBREV, \\\n\t.simplify_history =
        1, \\\n\t.pruning.flags.recursive = 1, \\\n\t.pruning.flags.quick = 1, \\\n\t.sort_order
        = REV_SORT_IN_GRAPH_ORDER, \\\n\t.dense = 1, \\\n\t.max_age = -1, \\\n\t.max_age_as_filter
        = -1, \\\n\t.min_age = -1, \\\n\t.skip_count = -1, \\\n\t.max_count = -1,
        \\\n\t.max_parents = -1, \\\n\t.expand_tabs_in_log = -1, \\\n\t.commit_format
        = CMIT_FMT_DEFAULT, \\\n\t.expand_tabs_in_log_default = 8, \\\n\t.rdiff_log_arg
        = STRVEC_INIT, \\\n}"
    - item_type: preproc_def
      name: REVARG_CANNOT_BE_FILENAME
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/git/revision.h
      type_or_value: '01'
    - item_type: preproc_def
      name: REVARG_COMMITTISH
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/git/revision.h
      type_or_value: '02'
    structs:
    - fields:
      - name: nr
        type: unsigned int
      - name: alloc
        type: unsigned int
      - name: '*rev'
        type: "struct rev_cmdline_entry {\n\t\tstruct object *item;\n\t\tconst char
          *name;\n\t\tenum {\n\t\t\tREV_CMD_REF,\n\t\t\tREV_CMD_PARENTS_ONLY,\n\t\t\tREV_CMD_LEFT,\n\t\t\tREV_CMD_RIGHT,\n\t\t\tREV_CMD_MERGE_BASE,\n\t\t\tREV_CMD_REV\n\t\t}
          whence;\n\t\tunsigned flags;\n\t}"
      item_type: struct
      name: rev_cmdline_info
      pos:
        line_end: 89
        line_start: 73
        source_file: /src/git/revision.h
    - fields:
      - name: '*item'
        type: struct object
      - name: '*name'
        type: char
      - name: whence
        type: "enum {\n\t\t\tREV_CMD_REF,\n\t\t\tREV_CMD_PARENTS_ONLY,\n\t\t\tREV_CMD_LEFT,\n\t\t\tREV_CMD_RIGHT,\n\t\t\tREV_CMD_MERGE_BASE,\n\t\t\tREV_CMD_REV\n\t\t}"
      - name: flags
        type: unsigned
      item_type: struct
      name: rev_cmdline_entry
      pos:
        line_end: 88
        line_start: 76
        source_file: /src/git/revision.h
    - fields:
      - name: excluded_refs
        type: struct string_list
      - name: hidden_refs
        type: struct strvec
      - name: hidden_refs_configured
        type: char
      item_type: struct
      name: ref_exclusions
      pos:
        line_end: 110
        line_start: 91
        source_file: /src/git/revision.h
    - fields:
      - name: '*commits'
        type: struct commit_list
      - name: pending
        type: struct object_array
      - name: '*repo'
        type: struct repository
      - name: boundary_commits
        type: struct object_array
      - name: cmdline
        type: struct rev_cmdline_info
      - name: filter
        type: struct list_objects_filter_options
      - name: ref_excludes
        type: struct ref_exclusions
      - name: '*prefix'
        type: char
      - name: '*def'
        type: char
      - name: '*ps_matched'
        type: char
      - name: prune_data
        type: struct pathspec
      - name: rev_input_given
        type: int
      - name: read_from_stdin
        type: int
      - name: sort_order
        type: enum rev_sort_order
      - name: ignore_missing
        type: unsigned int
      - name: dense
        type: unsigned int
      - name: diff
        type: unsigned int
      - name: show_notes
        type: int
      - name: shown_one
        type: unsigned int
      - name: disable_stdin
        type: unsigned int
      - name: track_linear
        type: unsigned int
      - name: date_mode
        type: struct date_mode
      - name: expand_tabs_in_log
        type: int
      - name: expand_tabs_in_log_default
        type: int
      - name: abbrev
        type: unsigned int
      - name: commit_format
        type: enum cmit_fmt
      - name: '*loginfo'
        type: struct log_info
      - name: nr
        type: int
      - name: '*mime_boundary'
        type: char
      - name: '*patch_suffix'
        type: char
      - name: numbered_files
        type: int
      - name: '*reroll_count'
        type: char
      - name: '*message_id'
        type: char
      - name: from_ident
        type: struct ident_split
      - name: '*ref_message_ids'
        type: struct string_list
      - name: add_signoff
        type: int
      - name: '*extra_headers'
        type: char
      - name: '*subject_prefix'
        type: char
      - name: patch_name_max
        type: int
      - name: no_inline
        type: int
      - name: show_log_size
        type: int
      - name: '*mailmap'
        type: struct string_list
      - name: grep_filter
        type: struct grep_opt
      - name: '*graph'
        type: struct git_graph
      - name: skip_count
        type: int
      - name: max_count
        type: int
      - name: max_age
        type: timestamp_t
      - name: max_age_as_filter
        type: timestamp_t
      - name: min_age
        type: timestamp_t
      - name: min_parents
        type: int
      - name: max_parents
        type: int
      - name: (*include_check)(struct commit *, void *)
        type: int
      - name: (*include_check_obj)(struct object *obj, void *)
        type: int
      - name: '*include_check_data'
        type: void
      - name: diffopt
        type: struct diff_options
      - name: pruning
        type: struct diff_options
      - name: '*reflog_info'
        type: struct reflog_walk_info
      - name: children
        type: struct decoration
      - name: merge_simplification
        type: struct decoration
      - name: treesame
        type: struct decoration
      - name: notes_opt
        type: struct display_notes_opt
      - name: '*idiff_oid1'
        type: struct object_id
      - name: '*idiff_oid2'
        type: struct object_id
      - name: '*idiff_title'
        type: char
      - name: '*rdiff1'
        type: char
      - name: '*rdiff2'
        type: char
      - name: rdiff_log_arg
        type: struct strvec
      - name: creation_factor
        type: int
      - name: '*rdiff_title'
        type: char
      - name: count_left
        type: int
      - name: count_right
        type: int
      - name: count_same
        type: int
      - name: line_log_data
        type: struct decoration
      - name: '*saved_parents_slab'
        type: struct saved_parents
      - name: '*previous_parents'
        type: struct commit_list
      - name: '*ancestry_path_bottoms'
        type: struct commit_list
      - name: '*break_bar'
        type: char
      - name: '*sources'
        type: struct revision_sources
      - name: '*topo_walk_info'
        type: struct topo_walk_info
      - name: '**bloom_keyvecs'
        type: struct bloom_keyvec
      - name: bloom_keyvecs_nr
        type: int
      - name: '*bloom_filter_settings'
        type: struct bloom_filter_settings
      - name: keep_pack_cache_flags
        type: unsigned
      - name: '*remerge_objdir'
        type: struct tmp_objdir
      - name: missing_commits
        type: struct oidset
      item_type: struct
      name: rev_info
      pos:
        line_end: 382
        line_start: 123
        source_file: /src/git/revision.h
    - fields:
      - name: '*def'
        type: char
      - name: (*tweak)(struct rev_info *)
        type: void
      - name: assume_dashdash
        type: unsigned int
      - name: revarg_opt
        type: unsigned
      item_type: struct
      name: setup_revision_opt
      pos:
        line_end: 446
        line_start: 439
        source_file: /src/git/revision.h
    typedefs:
    - item_type: typedef
      name: (*rewrite_parent_fn_t)(struct rev_info *revs, struct commit **pp)
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/git/revision.h
      type: rewrite_result
    union: []
- function_names:
  - oidmap_neq
  - oidmap_init
  - oidmap_clear
  - oidmap_clear_with_free
  - oidmap_get
  - oidmap_remove
  - oidmap_put
  source_file: /src/git/oidmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/fsmonitor-settings.h
  types:
    enum:
    - enumerators:
      - name: FSMONITOR_MODE_INCOMPATIBLE
        value: '-1'
      - name: FSMONITOR_MODE_DISABLED
        value: '0'
      - name: FSMONITOR_MODE_HOOK
        value: '1'
      - name: FSMONITOR_MODE_IPC
        value: '2'
      item_type: enum
      name: fsmonitor_mode
      pos:
        line_end: 10
        line_start: 5
        source_file: /src/git/fsmonitor-settings.h
    - enumerators:
      - name: FSMONITOR_REASON_UNTESTED
        value: '0'
      - name: FSMONITOR_REASON_BARE
      - name: FSMONITOR_REASON_ERROR
      - name: FSMONITOR_REASON_REMOTE
      - name: FSMONITOR_REASON_OK
      - name: FSMONITOR_REASON_VFS4GIT
      - name: FSMONITOR_REASON_NOSOCKETS
      item_type: enum
      name: fsmonitor_reason
      pos:
        line_end: 23
        line_start: 15
        source_file: /src/git/fsmonitor-settings.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_missing_commit_check_level
  - append_todo_help
  - edit_todo_list
  - todo_list_check
  - todo_list_check_against_backup
  source_file: /src/git/rebase-interactive.c
  types:
    enum:
    - enumerators:
      - name: MISSING_COMMIT_CHECK_IGNORE
        value: '0'
      - name: MISSING_COMMIT_CHECK_WARN
      - name: MISSING_COMMIT_CHECK_ERROR
      item_type: enum
      name: missing_commit_check_level
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/git/rebase-interactive.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidmap_get_size
  - oidmap_iter_init
  - oidmap_iter_next
  - oidmap_iter_first
  source_file: /src/git/oidmap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDMAP_INIT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/oidmap.h
      type_or_value: '{ { NULL } }'
    structs:
    - fields:
      - name: internal_entry
        type: struct hashmap_entry
      - name: oid
        type: struct object_id
      item_type: struct
      name: oidmap_entry
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/git/oidmap.h
    - fields:
      - name: map
        type: struct hashmap
      item_type: struct
      name: oidmap
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/git/oidmap.h
    - fields:
      - name: h_iter
        type: struct hashmap_iter
      item_type: struct
      name: oidmap_iter
      pos:
        line_end: 91
        line_start: 89
        source_file: /src/git/oidmap.h
    typedefs:
    - item_type: typedef
      name: (*oidmap_free_fn)(void *)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/git/oidmap.h
      type: void
    union: []
- function_names:
  - is_absolute_path
  source_file: /src/git/abspath.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/list-objects-filter.h
  types:
    enum:
    - enumerators:
      - name: LOFR_ZERO
        value: '0'
      - name: LOFR_MARK_SEEN
        value: 1<<0
      - name: LOFR_SKIP_TREE
        value: 1<<2
      - name: LOFR_DO_SHOW
        value: 1<<1
      item_type: enum
      name: list_objects_filter_result
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/git/list-objects-filter.h
    - enumerators:
      - name: LOFS_COMMIT
      - name: LOFS_END_TREE
      - name: LOFS_TAG
      - name: LOFS_BEGIN_TREE
      - name: LOFS_BLOB
      item_type: enum
      name: list_objects_filter_situation
      pos:
        line_end: 62
        line_start: 56
        source_file: /src/git/list-objects-filter.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - abspath_part_inside_repo
  - prefix_path_gently
  - prefix_path
  - path_inside_repo
  - check_filename
  - die_verify_filename
  - looks_like_pathspec
  - verify_filename
  - verify_non_filename
  - get_common_dir
  - get_common_dir_noenv
  - validate_headref
  - is_git_directory
  - is_nonbare_repository_dir
  - is_inside_git_dir
  - is_inside_work_tree
  - setup_work_tree
  - setup_original_cwd
  - read_worktree_config
  - handle_extension_v0
  - parse_reference_uri
  - handle_extension
  - check_repo_format
  - check_repository_format_gently
  - upgrade_repository_format
  - init_repository_format
  - read_repository_format
  - clear_repository_format
  - verify_repository_format
  - read_gitfile_error_die
  - read_gitfile_gently
  - setup_git_env_internal
  - setup_git_env
  - set_git_dir_1
  - update_relative_gitdir
  - set_git_dir
  - setup_explicit_git_dir
  - setup_discovered_git_dir
  - setup_bare_git_dir
  - get_device_or_die
  - canonicalize_ceiling_entry
  - safe_directory_cb
  - ensure_valid_ownership
  - die_upon_dubious_ownership
  - allowed_bare_repo_cb
  - get_allowed_bare_repo
  - allowed_bare_repo_to_string
  - is_implicit_bare_repo
  - setup_git_directory_gently_1
  - discover_git_directory_reason
  - check_repository_format
  - enter_repo
  - set_git_work_tree
  - setup_git_directory_gently
  - git_config_perm
  - setup_git_directory
  - resolve_gitdir_gently
  - sanitize_stdfds
  - daemonize
  - template_dir_cb
  - get_template_dir
  - copy_templates_1
  - copy_templates
  - needs_work_tree_config
  - initialize_repository_version
  - is_reinit
  - create_reference_database
  - create_default_files
  - create_object_directory
  - separate_git_dir
  - read_default_format_config
  - repository_format_configure
  - init_db
  source_file: /src/git/setup.c
  types:
    enum:
    - enumerators:
      - name: ALLOWED_BARE_REPO_EXPLICIT
        value: '0'
      - name: ALLOWED_BARE_REPO_ALL
      item_type: enum
      name: allowed_bare_repo
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/git/setup.c
    - enumerators:
      - name: EXTENSION_ERROR
        value: '-1'
      - name: EXTENSION_OK
        value: '1'
      - name: EXTENSION_UNKNOWN
        value: '0'
      item_type: enum
      name: extension_result
      pos:
        line_end: 607
        line_start: 603
        source_file: /src/git/setup.c
    preproc_defs:
    - item_type: preproc_def
      name: TEST_FILEMODE
      pos:
        line_end: 2263
        line_start: 2262
        source_file: /src/git/setup.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TEST_FILEMODE
      pos:
        line_end: 2265
        line_start: 2264
        source_file: /src/git/setup.c
      type_or_value: '1'
    - item_type: preproc_def
      name: GIT_DEFAULT_HASH_ENVIRONMENT
      pos:
        line_end: 2268
        line_start: 2267
        source_file: /src/git/setup.c
      type_or_value: '"GIT_DEFAULT_HASH"'
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: is_safe
        type: int
      item_type: struct
      name: safe_directory_data
      pos:
        line_end: 1346
        line_start: 1343
        source_file: /src/git/setup.c
    - fields:
      - name: '*path'
        type: char
      - name: initialized
        type: int
      item_type: struct
      name: template_dir_cb_data
      pos:
        line_end: 2213
        line_start: 2210
        source_file: /src/git/setup.c
    - fields:
      - name: hash
        type: int
      - name: ref_format
        type: enum ref_storage_format
      item_type: struct
      name: default_format_config
      pos:
        line_end: 2669
        line_start: 2666
        source_file: /src/git/setup.c
    typedefs: []
    union: []
- function_names:
  - parse_loc
  - match_funcname
  - find_funcname_matching_regexp
  - parse_range_funcname
  - parse_range_arg
  - skip_range_arg
  source_file: /src/git/line-range.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/git/common-main.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fmt_merge_msg_config
  - init_src_data
  - find_merge_parent
  - add_merge_parent
  - handle_line
  - print_joined
  - add_branch_desc
  - util_as_integral
  - record_person_from_buf
  - record_person
  - cmp_string_list_util_as_integral
  - add_people_count
  - credit_people
  - add_people_info
  - shortlog
  - dest_suppressed
  - fmt_merge_msg_title
  - fmt_tag_signature
  - fmt_merge_msg_sigs
  - find_merge_parents
  - fmt_merge_msg
  source_file: /src/git/fmt-merge-msg.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: branch
        type: struct string_list
      - name: head_status
        type: int
      item_type: struct
      name: src_data
      pos:
        line_end: 57
        line_start: 54
        source_file: /src/git/fmt-merge-msg.c
    - fields:
      - name: oid
        type: struct object_id
      - name: is_local_branch
        type: unsigned
      item_type: struct
      name: origin_data
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/git/fmt-merge-msg.c
    - fields:
      - name: alloc
        type: int
      - name: '*item'
        type: "struct merge_parent {\n\t\tstruct object_id given;\n\t\tstruct object_id
          commit;\n\t\tunsigned char used;\n\t}"
      item_type: struct
      name: merge_parents
      pos:
        line_end: 82
        line_start: 75
        source_file: /src/git/fmt-merge-msg.c
    - fields:
      - name: given
        type: struct object_id
      - name: commit
        type: struct object_id
      - name: used
        type: unsigned char
      item_type: struct
      name: merge_parent
      pos:
        line_end: 81
        line_start: 77
        source_file: /src/git/fmt-merge-msg.c
    typedefs: []
    union: []
- function_names:
  - check_remote
  - check_for_incompatible
  - alloc_settings
  - lookup_fsmonitor_settings
  - fsm_settings__get_mode
  - fsm_settings__get_hook_path
  - fsm_settings__set_ipc
  - fsm_settings__set_hook
  - fsm_settings__set_disabled
  - fsm_settings__set_incompatible
  - fsm_settings__get_reason
  - fsm_settings__get_incompatible_msg
  source_file: /src/git/fsmonitor-settings.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mode
        type: enum fsmonitor_mode
      - name: reason
        type: enum fsmonitor_reason
      - name: '*hook_path'
        type: char
      item_type: struct
      name: fsmonitor_settings
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/git/fsmonitor-settings.c
    typedefs: []
    union: []
- function_names:
  - option_parse_diagnose
  - dir_file_stats_objects
  - dir_file_stats
  - count_files
  - loose_objs_stats
  - add_directory_to_archiver
  - create_diagnostics_archive
  source_file: /src/git/diagnose.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: recursive
        type: int
      item_type: struct
      name: archive_dir
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/git/diagnose.c
    - fields:
      - name: mode
        type: enum diagnose_mode
      - name: '*option_name'
        type: char
      item_type: struct
      name: diagnose_option
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/git/diagnose.c
    typedefs: []
    union: []
- function_names:
  - prune_subdir
  - prune_object
  - prune_packed_objects
  source_file: /src/git/prune-packed.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - assert_index_minimum
  - fsmonitor_ewah_callback
  - fsmonitor_hook_version
  - read_fsmonitor_extension
  - fill_fsmonitor_bitmap
  - write_fsmonitor_extension
  - query_fsmonitor_hook
  - invalidate_ce_fsm
  - handle_using_name_hash_icase
  - handle_using_dir_name_hash_icase
  - handle_path_without_trailing_slash
  - handle_path_with_trailing_slash
  - fsmonitor_refresh_callback
  - refresh_fsmonitor
  - initialize_fsmonitor_last_update
  - add_fsmonitor
  - remove_fsmonitor
  - tweak_fsmonitor
  source_file: /src/git/fsmonitor.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INDEX_EXTENSION_VERSION1
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/fsmonitor.c
      type_or_value: (1)
    - item_type: preproc_def
      name: INDEX_EXTENSION_VERSION2
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/fsmonitor.c
      type_or_value: (2)
    - item_type: preproc_def
      name: HOOK_INTERFACE_VERSION1
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/fsmonitor.c
      type_or_value: (1)
    - item_type: preproc_def
      name: HOOK_INTERFACE_VERSION2
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/fsmonitor.c
      type_or_value: (2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup_enlistment_directory
  - run_git
  - set_scalar_config
  - set_config_if_missing
  - have_fsmonitor_support
  - set_recommended_config
  - toggle_maintenance
  - add_or_remove_enlistment
  - start_fsmonitor_daemon
  - stop_fsmonitor_daemon
  - register_dir
  - unregister_dir
  - set_config
  - remote_default_branch
  - delete_enlistment
  - load_builtin_commands
  - cmd_clone
  - cmd_diagnose
  - cmd_list
  - cmd_register
  - get_scalar_repos
  - remove_deleted_enlistment
  - cmd_reconfigure
  - cmd_run
  - cmd_unregister
  - cmd_delete
  - cmd_help
  - cmd_version
  - cmd_main
  source_file: /src/git/scalar.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*key'
        type: char
      - name: '*value'
        type: char
      - name: overwrite_on_reconfigure
        type: int
      item_type: struct
      name: scalar_config
      pos:
        line_end: 96
        line_start: 92
        source_file: /src/git/scalar.c
    - fields:
      - name: '*arg'
        type: char
      item_type: struct
      name: "tasks[] = {\n\t\t{ \"config\", NULL },\n\t\t{ \"commit-graph\", \"commit-graph\"
        },\n\t\t{ \"fetch\", \"prefetch\" },\n\t\t{ \"loose-objects\", \"loose-objects\"
        },\n\t\t{ \"pack-files\", \"incremental-repack\" },\n\t\t{ NULL, NULL }\n\t}"
      pos:
        line_end: 816
        line_start: 814
        source_file: /src/git/scalar.c
    - fields:
      - name: '*name'
        type: char
      - name: (*fn)(int, const char **)
        type: int
      item_type: struct
      name: "builtins[] = {\n\t{ \"clone\", cmd_clone },\n\t{ \"list\", cmd_list },\n\t{
        \"register\", cmd_register },\n\t{ \"unregister\", cmd_unregister },\n\t{
        \"run\", cmd_run },\n\t{ \"reconfigure\", cmd_reconfigure },\n\t{ \"delete\",
        cmd_delete },\n\t{ \"help\", cmd_help },\n\t{ \"version\", cmd_version },\n\t{
        \"diagnose\", cmd_diagnose },\n\t{ NULL, NULL},\n}"
      pos:
        line_end: 1001
        line_start: 998
        source_file: /src/git/scalar.c
    typedefs: []
    union: []
- function_names:
  - get_st_mode_bits
  - get_pathname
  - cleanup_path
  - strbuf_cleanup_path
  - dir_prefix
  - is_dir_file
  - replace_dir
  - make_trie_node
  - add_to_trie
  - trie_find
  - init_common_trie
  - check_common
  - update_common_dir
  - report_linked_checkout_garbage
  - adjust_git_path
  - strbuf_worktree_gitdir
  - repo_git_pathv
  - repo_git_path
  - repo_git_path_append
  - repo_git_path_replace
  - mkpathdup
  - mkpath
  - worktree_git_path
  - do_worktree_path
  - repo_worktree_path
  - repo_worktree_path_append
  - repo_worktree_path_replace
  - do_submodule_path
  - repo_submodule_path
  - repo_submodule_path_append
  - repo_submodule_path_replace
  - repo_common_pathv
  - repo_common_path
  - repo_common_path_append
  - repo_common_path_replace
  - getpw_str
  - interpolate_path
  - calc_shared_perm
  - adjust_shared_perm
  - safe_create_dir
  - safe_create_dir_in_gitdir
  - safe_create_leading_directories_1
  - safe_create_leading_directories
  - safe_create_leading_directories_no_share
  - safe_create_leading_directories_const
  - safe_create_file_with_leading_directories
  - have_same_root
  - relative_path
  - remove_leading_path
  - skip_slashes
  - normalize_path_copy_len
  - normalize_path_copy
  - strbuf_normalize_path
  - longest_ancestor_length
  - chomp_trailing_dir_sep
  - stripped_path_suffix_offset
  - ends_with_path_components
  - strip_path_suffix
  - daemon_avoid_alias
  - is_ntfs_dotgit
  - is_ntfs_dot_generic
  - is_ntfs_dot_str
  - is_ntfs_dotgitmodules
  - is_ntfs_dotgitignore
  - is_ntfs_dotgitattributes
  - is_ntfs_dotmailmap
  - looks_like_command_line_option
  - xdg_config_home_for
  - xdg_config_home
  - xdg_cache_home
  source_file: /src/git/path.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ignore_garbage
        type: unsigned
      - name: is_dir
        type: unsigned
      - name: is_common
        type: unsigned
      - name: '*path'
        type: char
      item_type: struct
      name: common_dir
      pos:
        line_end: 95
        line_start: 88
        source_file: /src/git/path.c
    - fields:
      - name: '*children[256]'
        type: struct trie
      - name: len
        type: int
      - name: '*contents'
        type: char
      - name: '*value'
        type: void
      item_type: struct
      name: trie
      pos:
        line_end: 150
        line_start: 145
        source_file: /src/git/path.c
    typedefs:
    - item_type: typedef
      name: (*match_fn)(const char *unmatched, void *value, void *baton)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/git/path.c
      type: int
    union: []
- function_names:
  - cleanup_space
  - get_sane_name
  - parse_bogus_from
  - unquote_comment
  - unquote_quoted_string
  - unquote_quoted_pair
  - handle_from
  - handle_header
  - slurp_attr
  - has_attr_value
  - handle_content_type
  - handle_content_transfer_encoding
  - is_multipart_boundary
  - cleanup_subject
  - skip_header
  - is_format_patch_separator
  - decode_q_segment
  - decode_b_segment
  - convert_to_utf8
  - decode_header
  - parse_header
  - check_header
  - is_inbody_header
  - decode_transfer_encoding
  - patchbreak
  - is_scissors_line
  - flush_inbody_header_accum
  - check_inbody_header
  - handle_commit_msg
  - handle_patch
  - handle_filter
  - is_rfc2822_header
  - read_one_header_line
  - find_boundary
  - handle_boundary
  - handle_filter_flowed
  - summarize_quoted_cr
  - handle_body
  - output_header_lines
  - handle_info
  - mailinfo
  - mailinfo_parse_quoted_cr_action
  - git_mailinfo_config
  - setup_mailinfo
  - clear_mailinfo
  source_file: /src/git/mailinfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/decorate.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*base'
        type: struct object
      - name: '*decoration'
        type: void
      item_type: struct
      name: decoration_entry
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/git/decorate.h
    - fields:
      - name: '*name'
        type: char
      - name: size
        type: unsigned int
      - name: nr
        type: unsigned int
      - name: '*entries'
        type: struct decoration_entry
      item_type: struct
      name: decoration
      pos:
        line_end: 45
        line_start: 22
        source_file: /src/git/decorate.h
    typedefs: []
    union: []
- function_names:
  - init_add_i_state
  - clear_add_i_state
  - prefix_item_list_clear
  - extend_prefix_length
  - find_unique_prefixes
  - find_unique
  - list
  - list_and_choose
  - add_file_item
  - pathname_entry_cmp
  - collect_changes_cb
  - get_modified_files
  - render_adddel
  - is_valid_prefix
  - print_file_item
  - run_status
  - run_update
  - revert_from_diff
  - run_revert
  - get_untracked_files
  - run_add_untracked
  - run_patch
  - run_diff
  - run_help
  - choose_prompt_help
  - print_command_item
  - command_prompt_help
  - run_add_i
  source_file: /src/git/add-interactive.c
  types:
    enum:
    - enumerators:
      - name: NO_FILTER
        value: '0'
      - name: WORKTREE_ONLY
        value: '1'
      - name: INDEX_ONLY
        value: '2'
      item_type: enum
      name: modified_files_filter
      pos:
        line_end: 469
        line_start: 465
        source_file: /src/git/add-interactive.c
    preproc_defs:
    - item_type: preproc_def
      name: PREFIX_ITEM_LIST_INIT
      pos:
        line_end: 63
        line_start: 57
        source_file: /src/git/add-interactive.c
      type_or_value: "{ \\\n\t.items = STRING_LIST_INIT_DUP, \\\n\t.sorted = STRING_LIST_INIT_NODUP,
        \\\n\t.min_length = 1, \\\n\t.max_length = 4, \\\n}"
    - item_type: preproc_def
      name: LIST_AND_CHOOSE_ERROR
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/git/add-interactive.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: LIST_AND_CHOOSE_QUIT
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/git/add-interactive.c
      type_or_value: (-2)
    structs:
    - fields:
      - name: items
        type: struct string_list
      - name: sorted
        type: struct string_list
      - name: '*selected'
        type: int
      - name: min_length
        type: size_t
      item_type: struct
      name: prefix_item_list
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/git/add-interactive.c
    - fields:
      - name: columns
        type: int
      - name: '*header'
        type: char
      - name: "(*print_item)(int i, int selected, struct string_list_item *item,\n\t\t\t
          \  void *print_item_data)"
        type: void
      - name: '*print_item_data'
        type: void
      item_type: struct
      name: list_options
      pos:
        line_end: 175
        line_start: 169
        source_file: /src/git/add-interactive.c
    - fields:
      - name: list_opts
        type: struct list_options
      - name: '*prompt'
        type: char
      - name: flags
        type: "enum {\n\t\tSINGLETON = (1<<0),\n\t\tIMMEDIATE = (1<<1),\n\t}"
      - name: (*print_help)(struct add_i_state *s)
        type: void
      item_type: struct
      name: list_and_choose_options
      pos:
        line_end: 215
        line_start: 206
        source_file: /src/git/add-interactive.c
    - fields:
      - name: add
        type: uintmax_t
      - name: seen
        type: unsigned
      item_type: struct
      name: adddel
      pos:
        line_end: 364
        line_start: 361
        source_file: /src/git/add-interactive.c
    - fields:
      - name: prefix_length
        type: size_t
      - name: index
        type: struct adddel
      item_type: struct
      name: file_item
      pos:
        line_end: 369
        line_start: 366
        source_file: /src/git/add-interactive.c
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*name'
        type: char
      - name: '*item'
        type: struct file_item
      item_type: struct
      name: pathname_entry
      pos:
        line_end: 382
        line_start: 378
        source_file: /src/git/add-interactive.c
    - fields:
      - name: mode
        type: enum { FROM_WORKTREE = 0, FROM_INDEX = 1 }
      - name: '*reference'
        type: char
      - name: skip_unseen
        type: unsigned
      - name: unmerged_count
        type: size_t
      - name: '*files'
        type: struct string_list
      - name: file_map
        type: struct hashmap
      item_type: struct
      name: collection_status
      pos:
        line_end: 406
        line_start: 397
        source_file: /src/git/add-interactive.c
    - fields:
      - name: '*modified_fmt'
        type: char
      - name: buf
        type: struct strbuf
      - name: only_names
        type: unsigned
      item_type: struct
      name: print_file_item_data
      pos:
        line_end: 570
        line_start: 566
        source_file: /src/git/add-interactive.c
    - fields:
      - name: prefix_length
        type: size_t
      - name: command
        type: command_t
      item_type: struct
      name: command_item
      pos:
        line_end: 1029
        line_start: 1026
        source_file: /src/git/add-interactive.c
    - fields:
      - name: '*color'
        type: char
      item_type: struct
      name: print_command_item_data
      pos:
        line_end: 1033
        line_start: 1031
        source_file: /src/git/add-interactive.c
    - fields:
      - name: '*string'
        type: char
      - name: command
        type: command_t
      item_type: struct
      name: "command_list[] = {\n\t\t{ \"status\", run_status },\n\t\t{ \"update\",
        run_update },\n\t\t{ \"revert\", run_revert },\n\t\t{ \"add untracked\", run_add_untracked
        },\n\t\t{ \"patch\", run_patch },\n\t\t{ \"diff\", run_diff },\n\t\t{ \"quit\",
        NULL },\n\t\t{ \"help\", run_help },\n\t}"
      pos:
        line_end: 1075
        line_start: 1072
        source_file: /src/git/add-interactive.c
    typedefs:
    - item_type: typedef
      name: "(*command_t)(struct add_i_state *s, const struct pathspec *ps,\n\t\t\t
        struct prefix_item_list *files,\n\t\t\t struct list_and_choose_options *opts)"
      pos:
        line_end: 1024
        line_start: 1022
        source_file: /src/git/add-interactive.c
      type: int
    union: []
- function_names: []
  source_file: /src/git/bundle-uri.h
  types:
    enum:
    - enumerators:
      - name: BUNDLE_MODE_NONE
        value: '0'
      - name: BUNDLE_MODE_ALL
      - name: BUNDLE_MODE_ANY
      item_type: enum
      name: bundle_list_mode
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/git/bundle-uri.h
    - enumerators:
      - name: BUNDLE_HEURISTIC_NONE
        value: '0'
      - name: BUNDLE_HEURISTIC__COUNT
      - name: BUNDLE_HEURISTIC_CREATIONTOKEN
      item_type: enum
      name: bundle_list_heuristic
      pos:
        line_end: 66
        line_start: 60
        source_file: /src/git/bundle-uri.h
    preproc_defs:
    - item_type: preproc_def
      name: REMOTE_BUNDLE_INFO_INIT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/bundle-uri.h
      type_or_value: '{ 0 }'
    structs:
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*id'
        type: char
      - name: '*uri'
        type: char
      - name: '*file'
        type: char
      - name: unbundled
        type: unsigned
      - name: creationToken
        type: uint64_t
      item_type: struct
      name: remote_bundle_info
      pos:
        line_end: 50
        line_start: 16
        source_file: /src/git/bundle-uri.h
    - fields:
      - name: version
        type: int
      - name: mode
        type: enum bundle_list_mode
      - name: bundles
        type: struct hashmap
      - name: '*baseURI'
        type: char
      - name: heuristic
        type: enum bundle_list_heuristic
      item_type: struct
      name: bundle_list
      pos:
        line_end: 97
        line_start: 73
        source_file: /src/git/bundle-uri.h
    typedefs:
    - item_type: typedef
      name: "(*bundle_iterator)(struct remote_bundle_info *bundle,\n\t\t\t       void
        *data)"
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/git/bundle-uri.h
      type: int
    union: []
- function_names:
  - strbuf_swap
  - strbuf_avail
  - strbuf_setlen
  - strbuf_reset
  - strbuf_addch
  - strbuf_insertstr
  - strbuf_addstr
  - strbuf_strip_suffix
  - strbuf_split_str
  - strbuf_split_max
  - strbuf_split
  - strbuf_complete
  - strbuf_complete_line
  - skip_to_optional_arg
  - ends_with
  source_file: /src/git/strbuf.h
  types:
    enum:
    - enumerators:
      - name: HUMANISE_RATE
        value: (1 << 0)
      - name: HUMANISE_COMPACT
        value: (1 << 1)
      item_type: enum
      name: humanise_flags
      pos:
        line_end: 379
        line_start: 369
        source_file: /src/git/strbuf.h
    preproc_defs:
    - item_type: preproc_def
      name: STRBUF_INIT
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/git/strbuf.h
      type_or_value: '{ .buf = strbuf_slopbuf }'
    - item_type: preproc_def
      name: STRBUF_ENCODE_SLASH
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/git/strbuf.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STRBUF_ENCODE_HOST_AND_PORT
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/git/strbuf.h
      type_or_value: '2'
    structs:
    - fields:
      - name: alloc
        type: size_t
      - name: len
        type: size_t
      - name: '*buf'
        type: char
      item_type: struct
      name: strbuf
      pos:
        line_end: 77
        line_start: 73
        source_file: /src/git/strbuf.h
    typedefs:
    - item_type: typedef
      name: (*strbuf_getline_fn)(struct strbuf *, FILE *)
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/git/strbuf.h
      type: int
    - item_type: typedef
      name: (*char_predicate)(char ch)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/git/strbuf.h
      type: int
    union: []
- function_names:
  - copy_le16
  - copy_le32
  - copy_le64
  - clamp_max
  - copy_le16_clamp
  - copy_le32_clamp
  - strbuf_add_le
  - clamp32
  - zlib_deflate_raw
  - write_zip_data_desc
  - set_zip_header_data_desc
  - has_only_ascii
  - entry_is_binary
  - write_zip_entry
  - write_zip64_trailer
  - write_zip_trailer
  - dos_time
  - archive_zip_config
  - write_zip_archive
  - init_zip_archiver
  source_file: /src/git/archive-zip.c
  types:
    enum:
    - enumerators:
      - name: ZIP_METHOD_STORE
        value: '0'
      - name: ZIP_METHOD_DEFLATE
        value: '8'
      item_type: enum
      name: zip_method
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/git/archive-zip.c
    preproc_defs:
    - item_type: preproc_def
      name: ZIP_STREAM
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/archive-zip.c
      type_or_value: (1 <<  3)
    - item_type: preproc_def
      name: ZIP_UTF8
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/archive-zip.c
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: ZIP_LOCAL_HEADER_SIZE
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/git/archive-zip.c
      type_or_value: offsetof(struct zip_local_header, _end)
    - item_type: preproc_def
      name: ZIP_DATA_DESC_SIZE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/git/archive-zip.c
      type_or_value: offsetof(struct zip_data_desc, _end)
    - item_type: preproc_def
      name: ZIP64_DATA_DESC_SIZE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/git/archive-zip.c
      type_or_value: offsetof(struct zip64_data_desc, _end)
    - item_type: preproc_def
      name: ZIP_DIR_HEADER_SIZE
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/git/archive-zip.c
      type_or_value: offsetof(struct zip_dir_header, _end)
    - item_type: preproc_def
      name: ZIP_DIR_TRAILER_SIZE
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/git/archive-zip.c
      type_or_value: offsetof(struct zip_dir_trailer, _end)
    - item_type: preproc_def
      name: ZIP_EXTRA_MTIME_SIZE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/git/archive-zip.c
      type_or_value: offsetof(struct zip_extra_mtime, _end)
    - item_type: preproc_def
      name: ZIP_EXTRA_MTIME_PAYLOAD_SIZE
      pos:
        line_end: 134
        line_start: 132
        source_file: /src/git/archive-zip.c
      type_or_value: (ZIP_EXTRA_MTIME_SIZE - offsetof(struct zip_extra_mtime, flags))
    - item_type: preproc_def
      name: ZIP64_EXTRA_SIZE
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/git/archive-zip.c
      type_or_value: offsetof(struct zip64_extra, _end)
    - item_type: preproc_def
      name: ZIP64_EXTRA_PAYLOAD_SIZE
      pos:
        line_end: 137
        line_start: 135
        source_file: /src/git/archive-zip.c
      type_or_value: (ZIP64_EXTRA_SIZE - offsetof(struct zip64_extra, size))
    - item_type: preproc_def
      name: ZIP64_DIR_TRAILER_SIZE
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/git/archive-zip.c
      type_or_value: offsetof(struct zip64_dir_trailer, _end)
    - item_type: preproc_def
      name: ZIP64_DIR_TRAILER_RECORD_SIZE
      pos:
        line_end: 141
        line_start: 138
        source_file: /src/git/archive-zip.c
      type_or_value: "(ZIP64_DIR_TRAILER_SIZE - \\\n\t offsetof(struct zip64_dir_trailer,
        creator_version))"
    - item_type: preproc_def
      name: ZIP64_DIR_TRAILER_LOCATOR_SIZE
      pos:
        line_end: 143
        line_start: 141
        source_file: /src/git/archive-zip.c
      type_or_value: offsetof(struct zip64_dir_trailer_locator, _end)
    - item_type: preproc_def
      name: STREAM_BUFFER_SIZE
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/git/archive-zip.c
      type_or_value: (1024 * 16)
    structs:
    - fields:
      - name: magic[4]
        type: unsigned char
      - name: version[2]
        type: unsigned char
      - name: flags[2]
        type: unsigned char
      - name: compression_method[2]
        type: unsigned char
      - name: mtime[2]
        type: unsigned char
      - name: mdate[2]
        type: unsigned char
      - name: crc32[4]
        type: unsigned char
      - name: compressed_size[4]
        type: unsigned char
      - name: size[4]
        type: unsigned char
      - name: filename_length[2]
        type: unsigned char
      - name: extra_length[2]
        type: unsigned char
      - name: _end[1]
        type: unsigned char
      item_type: struct
      name: zip_local_header
      pos:
        line_end: 53
        line_start: 40
        source_file: /src/git/archive-zip.c
    - fields:
      - name: magic[4]
        type: unsigned char
      - name: crc32[4]
        type: unsigned char
      - name: compressed_size[4]
        type: unsigned char
      - name: size[4]
        type: unsigned char
      - name: _end[1]
        type: unsigned char
      item_type: struct
      name: zip_data_desc
      pos:
        line_end: 61
        line_start: 55
        source_file: /src/git/archive-zip.c
    - fields:
      - name: magic[4]
        type: unsigned char
      - name: crc32[4]
        type: unsigned char
      - name: compressed_size[8]
        type: unsigned char
      - name: size[8]
        type: unsigned char
      - name: _end[1]
        type: unsigned char
      item_type: struct
      name: zip64_data_desc
      pos:
        line_end: 69
        line_start: 63
        source_file: /src/git/archive-zip.c
    - fields:
      - name: magic[4]
        type: unsigned char
      - name: disk[2]
        type: unsigned char
      - name: directory_start_disk[2]
        type: unsigned char
      - name: entries_on_this_disk[2]
        type: unsigned char
      - name: entries[2]
        type: unsigned char
      - name: size[4]
        type: unsigned char
      - name: offset[4]
        type: unsigned char
      - name: comment_length[2]
        type: unsigned char
      - name: _end[1]
        type: unsigned char
      item_type: struct
      name: zip_dir_trailer
      pos:
        line_end: 81
        line_start: 71
        source_file: /src/git/archive-zip.c
    - fields:
      - name: magic[2]
        type: unsigned char
      - name: extra_size[2]
        type: unsigned char
      - name: flags[1]
        type: unsigned char
      - name: mtime[4]
        type: unsigned char
      - name: _end[1]
        type: unsigned char
      item_type: struct
      name: zip_extra_mtime
      pos:
        line_end: 89
        line_start: 83
        source_file: /src/git/archive-zip.c
    - fields:
      - name: magic[2]
        type: unsigned char
      - name: extra_size[2]
        type: unsigned char
      - name: size[8]
        type: unsigned char
      - name: compressed_size[8]
        type: unsigned char
      - name: _end[1]
        type: unsigned char
      item_type: struct
      name: zip64_extra
      pos:
        line_end: 97
        line_start: 91
        source_file: /src/git/archive-zip.c
    - fields:
      - name: magic[4]
        type: unsigned char
      - name: record_size[8]
        type: unsigned char
      - name: creator_version[2]
        type: unsigned char
      - name: version[2]
        type: unsigned char
      - name: disk[4]
        type: unsigned char
      - name: directory_start_disk[4]
        type: unsigned char
      - name: entries_on_this_disk[8]
        type: unsigned char
      - name: entries[8]
        type: unsigned char
      - name: size[8]
        type: unsigned char
      - name: offset[8]
        type: unsigned char
      - name: _end[1]
        type: unsigned char
      item_type: struct
      name: zip64_dir_trailer
      pos:
        line_end: 111
        line_start: 99
        source_file: /src/git/archive-zip.c
    - fields:
      - name: magic[4]
        type: unsigned char
      - name: disk[4]
        type: unsigned char
      - name: offset[8]
        type: unsigned char
      - name: number_of_disks[4]
        type: unsigned char
      - name: _end[1]
        type: unsigned char
      item_type: struct
      name: zip64_dir_trailer_locator
      pos:
        line_end: 119
        line_start: 113
        source_file: /src/git/archive-zip.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/mailinfo.h
  types:
    enum:
    - enumerators:
      - name: quoted_cr_unset
        value: '-1'
      - name: quoted_cr_strip
      - name: quoted_cr_nowarn
      - name: quoted_cr_warn
      item_type: enum
      name: quoted_cr_action
      pos:
        line_end: 14
        line_start: 9
        source_file: /src/git/mailinfo.h
    preproc_defs:
    - item_type: preproc_def
      name: MAX_BOUNDARIES
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/mailinfo.h
      type_or_value: '5'
    structs:
    - fields:
      - name: '*input'
        type: FILE
      - name: '*output'
        type: FILE
      - name: '*patchfile'
        type: FILE
      - name: name
        type: struct strbuf
      - name: email
        type: struct strbuf
      - name: keep_subject
        type: int
      - name: keep_non_patch_brackets_in_subject
        type: int
      - name: quoted_cr
        type: int
      - name: add_message_id
        type: int
      - name: use_scissors
        type: int
      - name: use_inbody_headers
        type: int
      - name: '*metainfo_charset'
        type: char
      - name: '*content[MAX_BOUNDARIES]'
        type: struct strbuf
      - name: '**content_top'
        type: struct strbuf
      - name: charset
        type: struct strbuf
      - name: format_flowed
        type: unsigned int
      - name: delsp
        type: unsigned int
      - name: have_quoted_cr
        type: unsigned int
      - name: '*message_id'
        type: char
      - name: transfer_encoding
        type: "enum  {\n\t\tTE_DONTCARE, TE_QP, TE_BASE64\n\t}"
      - name: patch_lines
        type: int
      - name: filter_stage
        type: int
      - name: header_stage
        type: int
      - name: inbody_header_accum
        type: struct strbuf
      - name: '**p_hdr_data'
        type: struct strbuf
      - name: '**s_hdr_data'
        type: struct strbuf
      - name: log_message
        type: struct strbuf
      - name: input_error
        type: int
      item_type: struct
      name: mailinfo
      pos:
        line_end: 50
        line_start: 16
        source_file: /src/git/mailinfo.h
    typedefs: []
    union: []
- function_names:
  - chdir_len
  - unix_sockaddr_cleanup
  - unix_sockaddr_init
  - unix_stream_connect
  - unix_stream_listen
  source_file: /src/git/unix-socket.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_UNIX_STREAM_LISTEN_BACKLOG
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/unix-socket.c
      type_or_value: (5)
    structs:
    - fields:
      - name: '*orig_dir'
        type: char
      item_type: struct
      name: unix_sockaddr_context
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/git/unix-socket.c
    typedefs: []
    union: []
- function_names:
  - obj_read_lock
  - obj_read_unlock
  - odb_write_object
  source_file: /src/git/odb.h
  types:
    enum:
    - enumerators:
      - name: PACKED_OBJECT_TYPE_UNKNOWN
      - name: PACKED_OBJECT_TYPE_OFS_DELTA
      - name: PACKED_OBJECT_TYPE_FULL
      - name: PACKED_OBJECT_TYPE_REF_DELTA
      item_type: enum
      name: packed_object_type
      pos:
        line_end: 294
        line_start: 289
        source_file: /src/git/odb.h
    - enumerators:
      - name: OBJECT_INFO_LOOKUP_REPLACE
        value: (1 << 0)
      - name: OBJECT_INFO_DIE_IF_CORRUPT
        value: (1 << 3)
      - name: OBJECT_INFO_SECOND_READ
        value: (1 << 4)
      - name: OBJECT_INFO_QUICK
        value: (1 << 1)
      - name: OBJECT_INFO_SKIP_FETCH_OBJECT
        value: (1 << 2)
      - name: OBJECT_INFO_FOR_PREFETCH
        value: (OBJECT_INFO_SKIP_FETCH_OBJECT | OBJECT_INFO_QUICK)
      item_type: enum
      name: object_info_flags
      pos:
        line_end: 339
        line_start: 306
        source_file: /src/git/odb.h
    - enumerators:
      - name: ODB_HAS_OBJECT_RECHECK_PACKED
        value: (1 << 0)
      - name: ODB_HAS_OBJECT_FETCH_PROMISOR
        value: (1 << 1)
      item_type: enum
      name: odb_has_object_flags
      pos:
        line_end: 365
        line_start: 360
        source_file: /src/git/odb.h
    - enumerators:
      - name: ODB_FOR_EACH_OBJECT_LOCAL_ONLY
        value: (1<<0)
      - name: ODB_FOR_EACH_OBJECT_SKIP_IN_CORE_KEPT_PACKS
        value: (1<<3)
      - name: ODB_FOR_EACH_OBJECT_SKIP_ON_DISK_KEPT_PACKS
        value: (1<<4)
      - name: ODB_FOR_EACH_OBJECT_PROMISOR_ONLY
        value: (1<<1)
      - name: ODB_FOR_EACH_OBJECT_PACK_ORDER
        value: (1<<2)
      item_type: enum
      name: odb_for_each_object_flags
      pos:
        line_end: 432
        line_start: 415
        source_file: /src/git/odb.h
    - enumerators:
      - name: ODB_COUNT_OBJECTS_APPROXIMATE
        value: (1 << 0)
      item_type: enum
      name: odb_count_objects_flags
      pos:
        line_end: 496
        line_start: 489
        source_file: /src/git/odb.h
    - enumerators:
      - name: ODB_WRITE_OBJECT_PERSIST
        value: (1 << 0)
      - name: ODB_WRITE_OBJECT_SILENT
        value: (1 << 1)
      item_type: enum
      name: odb_write_object_flags
      pos:
        line_end: 539
        line_start: 526
        source_file: /src/git/odb.h
    preproc_defs:
    - item_type: preproc_def
      name: OBJECT_INFO_INIT
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/git/odb.h
      type_or_value: '{ 0 }'
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*transaction'
        type: struct odb_transaction
      - name: '*sources'
        type: struct odb_source
      - name: '**sources_tail'
        type: struct odb_source
      - name: '*source_by_path'
        type: struct kh_odb_path_map
      - name: loaded_alternates
        type: int
      - name: '*alternate_db'
        type: char
      - name: replace_map
        type: struct oidmap
      - name: replace_map_initialized
        type: unsigned
      - name: replace_mutex
        type: pthread_mutex_t
      - name: '*commit_graph'
        type: struct commit_graph
      - name: commit_graph_attempted
        type: unsigned
      - name: '*inmemory_objects'
        type: struct odb_source
      - name: object_count
        type: unsigned long
      - name: object_count_flags
        type: unsigned
      - name: object_count_valid
        type: unsigned
      - name: submodule_source_paths
        type: struct string_list
      item_type: struct
      name: object_database
      pos:
        line_end: 99
        line_start: 37
        source_file: /src/git/odb.h
    - fields:
      - name: '*typep'
        type: enum object_type
      - name: '*sizep'
        type: unsigned long
      - name: '*disk_sizep'
        type: off_t
      - name: '*delta_base_oid'
        type: struct object_id
      - name: '**contentp'
        type: void
      - name: '*mtimep'
        type: time_t
      - name: whence
        type: "enum {\n\t\tOI_CACHED,\n\t\tOI_LOOSE,\n\t\tOI_PACKED,\n\t}"
      - name: u
        type: "union {\n\t\t/*\n\t\t * struct {\n\t\t * \t... Nothing to expose in
          this case\n\t\t * } cached;\n\t\t * struct {\n\t\t * \t... Nothing to expose
          in this case\n\t\t * } loose;\n\t\t */\n\t\tstruct {\n\t\t\tstruct packed_git
          *pack;\n\t\t\toff_t offset;\n\t\t\tenum packed_object_type {\n\t\t\t\tPACKED_OBJECT_TYPE_UNKNOWN,\n\t\t\t\tPACKED_OBJECT_TYPE_FULL,\n\t\t\t\tPACKED_OBJECT_TYPE_OFS_DELTA,\n\t\t\t\tPACKED_OBJECT_TYPE_REF_DELTA,\n\t\t\t}
          type;\n\t\t} packed;\n\t}"
      item_type: struct
      name: object_info
      pos:
        line_end: 297
        line_start: 250
        source_file: /src/git/odb.h
    - fields:
      - name: flags
        type: enum odb_for_each_object_flags
      - name: '*prefix'
        type: struct object_id
      - name: prefix_hex_len
        type: size_t
      item_type: struct
      name: odb_for_each_object_options
      pos:
        line_end: 460
        line_start: 450
        source_file: /src/git/odb.h
    typedefs:
    - item_type: typedef
      name: odb_for_each_alternate_fn(struct odb_source *, void *)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/git/odb.h
      type: int
    - item_type: typedef
      name: odb_for_each_alternate_ref_fn(const struct object_id *oid, void *)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/git/odb.h
      type: void
    - item_type: typedef
      name: "(*odb_for_each_object_cb)(const struct object_id *oid,\n\t\t\t\t      struct
        object_info *oi,\n\t\t\t\t      void *cb_data)"
      pos:
        line_end: 444
        line_start: 442
        source_file: /src/git/odb.h
      type: int
    union: []
- function_names:
  - locate_object_entry_hash
  - closest_pow2
  - rehash_objects
  - packlist_find
  - prepare_in_pack_by_idx
  - oe_map_new_pack
  - prepare_packing_data
  - clear_packing_data
  - packlist_alloc
  - oe_set_delta_ext
  source_file: /src/git/pack-objects.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_delta_index
  - free_delta_index
  - sizeof_delta_index
  - create_delta
  source_file: /src/git/diff-delta.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_LIMIT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/diff-delta.c
      type_or_value: '64'
    - item_type: preproc_def
      name: RABIN_SHIFT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/diff-delta.c
      type_or_value: '23'
    - item_type: preproc_def
      name: RABIN_WINDOW
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/diff-delta.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_OP_SIZE
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/git/diff-delta.c
      type_or_value: (5 + 5 + 1 + RABIN_WINDOW + 7)
    structs:
    - fields:
      - name: '*ptr'
        type: unsigned char
      - name: val
        type: unsigned int
      item_type: struct
      name: index_entry
      pos:
        line_end: 119
        line_start: 116
        source_file: /src/git/diff-delta.c
    - fields:
      - name: entry
        type: struct index_entry
      - name: '*next'
        type: struct unpacked_index_entry
      item_type: struct
      name: unpacked_index_entry
      pos:
        line_end: 124
        line_start: 121
        source_file: /src/git/diff-delta.c
    - fields:
      - name: memsize
        type: unsigned long
      - name: '*src_buf'
        type: void
      - name: src_size
        type: unsigned long
      - name: hash_mask
        type: unsigned int
      - name: '*hash[FLEX_ARRAY]'
        type: struct index_entry
      item_type: struct
      name: delta_index
      pos:
        line_end: 132
        line_start: 126
        source_file: /src/git/diff-delta.c
    typedefs: []
    union: []
- function_names:
  - write_str_in_full
  - log2u
  source_file: /src/git/wrapper.h
  types:
    enum:
    - enumerators:
      - name: FSYNC_WRITEOUT_ONLY
      - name: FSYNC_HARDWARE_FLUSH
      item_type: enum
      name: fsync_action
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/git/wrapper.h
    preproc_defs:
    - item_type: preproc_def
      name: ACCESS_EACCES_OK
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/git/wrapper.h
      type_or_value: (1U << 0)
    structs: []
    typedefs: []
    union: []
- function_names:
  - register_replace_ref
  - prepare_replace_object
  - do_lookup_replace_object
  - disable_replace_refs
  - replace_refs_enabled
  source_file: /src/git/replace-object.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXREPLACEDEPTH
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/replace-object.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - commit_format_is_empty
  - save_user_format
  - git_pretty_formats_config
  - setup_commit_formats
  - find_commit_format_recursive
  - find_commit_format
  - get_commit_format
  - get_one_line
  - non_ascii
  - has_non_ascii
  - is_rfc822_special
  - needs_rfc822_quoting
  - last_line_length
  - add_rfc822_quoted
  - is_rfc2047_special
  - needs_rfc2047_encoding
  - add_rfc2047
  - show_ident_date
  - strbuf_add_with_color
  - append_line_with_color
  - use_in_body_from
  - pp_user_info
  - is_blank_line
  - skip_blank_lines
  - add_merge_info
  - get_header
  - replace_encoding_header
  - repo_logmsg_reencode
  - mailmap_name
  - format_person_part
  - parse_commit_header
  - istitlechar
  - format_sanitized_subject
  - format_subject
  - parse_commit_message
  - strbuf_wrap
  - rewrap_message_tail
  - format_reflog_person
  - parse_color
  - parse_padding_placeholder
  - match_placeholder_arg_value
  - match_placeholder_bool_arg
  - format_trailer_match_cb
  - for_each_string_list_item
  - expand_string_arg
  - format_set_trailers_options
  - parse_describe_args
  - parse_decoration_option
  - parse_decoration_options
  - free_decoration_options
  - format_commit_one
  - format_and_pad_commit
  - format_commit_item
  - userformat_find_requirements
  - repo_format_commit_message
  - pp_header
  - pp_email_subject
  - pp_utf8_width
  - strbuf_add_tabexpand
  - pp_handle_indent
  - is_mboxrd_from
  - pp_remainder
  - pretty_print_commit
  - pp_commit_easy
  source_file: /src/git/pretty.c
  types:
    enum:
    - enumerators:
      - name: RFC2047_SUBJECT
      - name: RFC2047_ADDRESS
      item_type: enum
      name: rfc2047_type
      pos:
        line_end: 325
        line_start: 322
        source_file: /src/git/pretty.c
    - enumerators:
      - name: no_flush
      - name: flush_both
      - name: flush_left_and_steal
      - name: flush_left
      - name: flush_right
      item_type: enum
      name: flush_type
      pos:
        line_end: 879
        line_start: 873
        source_file: /src/git/pretty.c
    - enumerators:
      - name: trunc_none
      - name: trunc_middle
      - name: trunc_left
      - name: trunc_right
      item_type: enum
      name: trunc_type
      pos:
        line_end: 886
        line_start: 881
        source_file: /src/git/pretty.c
    preproc_defs:
    - item_type: preproc_def
      name: FORMATTING_LIMIT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/pretty.c
      type_or_value: (16 * 1024)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: format
        type: enum cmit_fmt
      - name: is_tformat
        type: int
      - name: expand_tabs_in_log
        type: int
      - name: is_alias
        type: int
      - name: default_date_mode_type
        type: enum date_mode_type
      - name: '*user_format'
        type: char
      item_type: struct
      name: cmt_fmt_map
      pos:
        line_end: 41
        line_start: 33
        source_file: /src/git/pretty.c
    - fields:
      - name: 'off'
        type: size_t
      - name: len
        type: size_t
      item_type: struct
      name: chunk
      pos:
        line_end: 871
        line_start: 868
        source_file: /src/git/pretty.c
    - fields:
      - name: '*repository'
        type: struct repository
      - name: '*commit'
        type: struct commit
      - name: '*pretty_ctx'
        type: struct pretty_print_context
      - name: commit_header_parsed
        type: unsigned
      - name: commit_message_parsed
        type: unsigned
      - name: signature_check
        type: struct signature_check
      - name: flush_type
        type: enum flush_type
      - name: truncate
        type: enum trunc_type
      - name: '*message'
        type: char
      - name: '*commit_encoding'
        type: char
      - name: width
        type: size_t
      - name: auto_color
        type: enum git_colorbool
      - name: padding
        type: int
      - name: author
        type: struct chunk
      - name: committer
        type: struct chunk
      - name: message_off
        type: size_t
      - name: subject_off
        type: size_t
      - name: body_off
        type: size_t
      - name: wrap_start
        type: size_t
      item_type: struct
      name: format_commit_context
      pos:
        line_end: 912
        line_start: 888
        source_file: /src/git/pretty.c
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: "enum {\n\t\t\tDESCRIBE_ARG_BOOL,\n\t\t\tDESCRIBE_ARG_INTEGER,\n\t\t\tDESCRIBE_ARG_STRING,\n\t\t}"
      item_type: struct
      name: "option[] = {\n\t\t{ \"tags\", DESCRIBE_ARG_BOOL},\n\t\t{ \"abbrev\",
        DESCRIBE_ARG_INTEGER },\n\t\t{ \"exclude\", DESCRIBE_ARG_STRING },\n\t\t{
        \"match\", DESCRIBE_ARG_STRING },\n\t}"
      pos:
        line_end: 1341
        line_start: 1334
        source_file: /src/git/pretty.c
    typedefs: []
    union: []
- function_names:
  - xdiff_out_hunk
  - consume_one
  - xdiff_outf
  - trim_common_tail
  - xdi_diff
  - xdi_diff_outf
  - read_mmfile
  - read_mmblob
  - buffer_is_binary
  - ff_regexp
  - xdiff_set_find_func
  - xdiff_clear_find_func
  - xdiff_hash_string
  - xdiff_compare_lines
  - parse_conflict_style_name
  - conflict_style_name
  - git_xmerge_config
  source_file: /src/git/xdiff-interface.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FIRST_FEW_BYTES
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/git/xdiff-interface.c
      type_or_value: '8000'
    structs:
    - fields:
      - name: hunk_fn
        type: xdiff_emit_hunk_fn
      - name: line_fn
        type: xdiff_emit_line_fn
      - name: '*consume_callback_data'
        type: void
      - name: remainder
        type: struct strbuf
      item_type: struct
      name: xdiff_emit_state
      pos:
        line_end: 19
        line_start: 14
        source_file: /src/git/xdiff-interface.c
    - fields:
      - name: nr
        type: int
      - name: '*array'
        type: "struct ff_reg {\n\t\tregex_t re;\n\t\tint negate;\n\t}"
      item_type: struct
      name: ff_regs
      pos:
        line_end: 210
        line_start: 204
        source_file: /src/git/xdiff-interface.c
    - fields:
      - name: re
        type: regex_t
      - name: negate
        type: int
      item_type: struct
      name: ff_reg
      pos:
        line_end: 209
        line_start: 206
        source_file: /src/git/xdiff-interface.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/bloom.h
  types:
    enum:
    - enumerators:
      - name: BLOOM_NOT_COMPUTED
        value: (1 << 0)
      - name: BLOOM_TRUNC_LARGE
        value: (1 << 2)
      - name: BLOOM_TRUNC_EMPTY
        value: (1 << 3)
      - name: BLOOM_UPGRADED
        value: (1 << 4)
      - name: BLOOM_COMPUTED
        value: (1 << 1)
      item_type: enum
      name: bloom_filter_computed
      pos:
        line_end: 124
        line_start: 118
        source_file: /src/git/bloom.h
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_BLOOM_MAX_CHANGES
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/bloom.h
      type_or_value: '512'
    - item_type: preproc_def
      name: DEFAULT_BLOOM_FILTER_SETTINGS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/bloom.h
      type_or_value: '{ 1, 7, 10, DEFAULT_BLOOM_MAX_CHANGES }'
    - item_type: preproc_def
      name: BITS_PER_WORD
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/bloom.h
      type_or_value: '8'
    - item_type: preproc_def
      name: BLOOMDATA_CHUNK_HEADER_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/bloom.h
      type_or_value: 3 * sizeof(uint32_t)
    structs:
    - fields:
      - name: hash_version
        type: uint32_t
      - name: num_hashes
        type: uint32_t
      - name: bits_per_entry
        type: uint32_t
      - name: max_changed_paths
        type: uint32_t
      item_type: struct
      name: bloom_filter_settings
      pos:
        line_end: 41
        line_start: 7
        source_file: /src/git/bloom.h
    - fields:
      - name: '*data'
        type: unsigned char
      - name: len
        type: size_t
      - name: version
        type: int
      - name: '*to_free'
        type: void
      item_type: struct
      name: bloom_filter
      pos:
        line_end: 60
        line_start: 54
        source_file: /src/git/bloom.h
    - fields:
      - name: '*hashes'
        type: uint32_t
      item_type: struct
      name: bloom_key
      pos:
        line_end: 74
        line_start: 72
        source_file: /src/git/bloom.h
    - fields:
      - name: count
        type: size_t
      - name: key[FLEX_ARRAY]
        type: struct bloom_key
      item_type: struct
      name: bloom_keyvec
      pos:
        line_end: 84
        line_start: 81
        source_file: /src/git/bloom.h
    typedefs: []
    union: []
- function_names:
  - uic_mark_stale
  - uic_is_stale
  - uic_printf
  - update_info_file
  - add_info_ref
  - generate_info_refs
  - update_info_refs
  - find_pack_by_name
  - parse_pack_def
  - read_pack_info_file
  - compare_info
  - init_pack_info
  - repo_for_each_pack
  - free_pack_info
  - write_pack_info_file
  - update_info_packs
  - update_server_info
  source_file: /src/git/server-info.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*cur_fp'
        type: FILE
      - name: '*old_fp'
        type: FILE
      - name: cur_sb
        type: struct strbuf
      - name: old_sb
        type: struct strbuf
      item_type: struct
      name: update_info_ctx
      pos:
        line_end: 24
        line_start: 18
        source_file: /src/git/server-info.c
    - fields:
      - name: '*p'
        type: struct packed_git
      - name: old_num
        type: int
      - name: new_num
        type: int
      item_type: struct
      name: pack_info
      pos:
        line_end: 189
        line_start: 185
        source_file: /src/git/server-info.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/unpack-trees.h
  types:
    enum:
    - enumerators:
      - name: ERROR_WOULD_OVERWRITE
        value: '0'
      - name: ERROR_CWD_IN_THE_WAY
      - name: ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN
      - name: ERROR_NOT_UPTODATE_FILE
      - name: ERROR_NOT_UPTODATE_DIR
      - name: ERROR_WOULD_LOSE_UNTRACKED_REMOVED
      - name: ERROR_BIND_OVERLAP
      - name: ERROR_WOULD_LOSE_SUBMODULE
      - name: NB_UNPACK_TREES_ERROR_TYPES
      - name: WARNING_SPARSE_NOT_UPTODATE_FILE
      - name: WARNING_SPARSE_ORPHANED_NOT_OVERWRITTEN
      - name: NB_UNPACK_TREES_WARNING_TYPES
      - name: WARNING_SPARSE_UNMERGED_FILE
      item_type: enum
      name: unpack_trees_error_types
      pos:
        line_end: 35
        line_start: 18
        source_file: /src/git/unpack-trees.h
    - enumerators:
      - name: UNPACK_RESET_NONE
        value: '0'
      - name: UNPACK_RESET_OVERWRITE_UNTRACKED
      - name: UNPACK_RESET_INVALID
        value: '1'
      - name: UNPACK_RESET_PROTECT_UNTRACKED
      item_type: enum
      name: unpack_trees_reset_type
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/git/unpack-trees.h
    - enumerators:
      - name: UPDATE_SPARSITY_SUCCESS
        value: '0'
      - name: UPDATE_SPARSITY_INDEX_UPDATE_FAILURES
        value: '-1'
      - name: UPDATE_SPARSITY_WORKTREE_UPDATE_FAILURES
        value: '-2'
      - name: UPDATE_SPARSITY_WARNINGS
        value: '1'
      item_type: enum
      name: update_sparsity_result
      pos:
        line_end: 120
        line_start: 115
        source_file: /src/git/unpack-trees.h
    preproc_defs:
    - item_type: preproc_def
      name: MAX_UNPACK_TREES
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/unpack-trees.h
      type_or_value: '8'
    structs:
    - fields:
      - name: merge
        type: unsigned int
      - name: reset
        type: enum unpack_trees_reset_type
      - name: '*prefix'
        type: char
      - name: '*super_prefix'
        type: char
      - name: '*pathspec'
        type: struct pathspec
      - name: fn
        type: merge_fn_t
      - name: head_idx
        type: int
      - name: '*df_conflict_entry'
        type: struct cache_entry
      - name: '*unpack_data'
        type: void
      - name: '*dst_index'
        type: struct index_state
      - name: '*src_index'
        type: struct index_state
      - name: meta
        type: struct checkout_metadata
      - name: internal
        type: "struct unpack_trees_options_internal {\n\t\tunsigned int nontrivial_merge,\n\t\t\t
          \    show_all_errors,\n\t\t\t     debug_unpack; /* used by read-tree debugging
          */\n\n\t\tint merge_size; /* used by read-tree debugging */\n\t\tint cache_bottom;\n\t\tconst
          char *msgs[NB_UNPACK_TREES_WARNING_TYPES];\n\t\tstruct strvec msgs_to_free;\n\n\t\t/*\n\t\t
          * Store error messages in an array, each case\n\t\t * corresponding to a
          error message type\n\t\t */\n\t\tstruct string_list unpack_rejects[NB_UNPACK_TREES_WARNING_TYPES];\n\n\t\tstruct
          index_state result;\n\n\t\tstruct pattern_list *pl;\n\t\tstruct dir_struct
          *dir;\n\t}"
      item_type: struct
      name: unpack_trees_options
      pos:
        line_end: 110
        line_start: 56
        source_file: /src/git/unpack-trees.h
    - fields:
      - name: nontrivial_merge
        type: unsigned int
      - name: merge_size
        type: int
      - name: cache_bottom
        type: int
      - name: '*msgs[NB_UNPACK_TREES_WARNING_TYPES]'
        type: char
      - name: msgs_to_free
        type: struct strvec
      - name: unpack_rejects[NB_UNPACK_TREES_WARNING_TYPES]
        type: struct string_list
      - name: result
        type: struct index_state
      - name: '*pl'
        type: struct pattern_list
      - name: '*dir'
        type: struct dir_struct
      item_type: struct
      name: unpack_trees_options_internal
      pos:
        line_end: 109
        line_start: 89
        source_file: /src/git/unpack-trees.h
    typedefs:
    - item_type: typedef
      name: "(*merge_fn_t)(const struct cache_entry * const *src,\n\t\tstruct unpack_trees_options
        *options)"
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/unpack-trees.h
      type: int
    union: []
- function_names:
  - diffcore_rotate
  source_file: /src/git/diffcore-rotate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/json-writer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: JSON_WRITER_INIT
      pos:
        line_end: 98
        line_start: 94
        source_file: /src/git/json-writer.h
      type_or_value: "{ \\\n\t.json = STRBUF_INIT, \\\n\t.open_stack = STRBUF_INIT,
        \\\n}"
    structs:
    - fields:
      - name: json
        type: struct strbuf
      - name: open_stack
        type: struct strbuf
      - name: need_comma
        type: unsigned int
      - name: pretty
        type: unsigned int
      item_type: struct
      name: json_writer
      pos:
        line_end: 92
        line_start: 74
        source_file: /src/git/json-writer.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/transport.h
  types:
    enum:
    - enumerators:
      - name: TRANSPORT_FAMILY_ALL
        value: '0'
      - name: TRANSPORT_FAMILY_IPV6
      - name: TRANSPORT_FAMILY_IPV4
      item_type: enum
      name: transport_family
      pos:
        line_end: 62
        line_start: 58
        source_file: /src/git/transport.h
    preproc_defs:
    - item_type: preproc_def
      name: TRANSPORT_PUSH_ALL
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/git/transport.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_FORCE
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/git/transport.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_DRY_RUN
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/git/transport.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_MIRROR
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/git/transport.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_PORCELAIN
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/git/transport.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_SET_UPSTREAM
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/git/transport.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: TRANSPORT_RECURSE_SUBMODULES_CHECK
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/git/transport.h
      type_or_value: (1<<6)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_PRUNE
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/git/transport.h
      type_or_value: (1<<7)
    - item_type: preproc_def
      name: TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/git/transport.h
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_NO_HOOK
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/git/transport.h
      type_or_value: (1<<9)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_FOLLOW_TAGS
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/git/transport.h
      type_or_value: (1<<10)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_CERT_ALWAYS
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/git/transport.h
      type_or_value: (1<<11)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_CERT_IF_ASKED
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/git/transport.h
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_ATOMIC
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/git/transport.h
      type_or_value: (1<<13)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_OPTIONS
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/git/transport.h
      type_or_value: (1<<14)
    - item_type: preproc_def
      name: TRANSPORT_RECURSE_SUBMODULES_ONLY
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/git/transport.h
      type_or_value: (1<<15)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_FORCE_IF_INCLUDES
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/git/transport.h
      type_or_value: (1<<16)
    - item_type: preproc_def
      name: TRANSPORT_PUSH_AUTO_UPSTREAM
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/git/transport.h
      type_or_value: (1<<17)
    - item_type: preproc_def
      name: TRANS_OPT_UPLOADPACK
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/git/transport.h
      type_or_value: '"uploadpack"'
    - item_type: preproc_def
      name: TRANS_OPT_RECEIVEPACK
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/git/transport.h
      type_or_value: '"receivepack"'
    - item_type: preproc_def
      name: TRANS_OPT_THIN
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/git/transport.h
      type_or_value: '"thin"'
    - item_type: preproc_def
      name: TRANS_OPT_CAS
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/git/transport.h
      type_or_value: '"cas"'
    - item_type: preproc_def
      name: TRANS_OPT_KEEP
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/git/transport.h
      type_or_value: '"keep"'
    - item_type: preproc_def
      name: TRANS_OPT_DEPTH
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/git/transport.h
      type_or_value: '"depth"'
    - item_type: preproc_def
      name: TRANS_OPT_DEEPEN_SINCE
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/git/transport.h
      type_or_value: '"deepen-since"'
    - item_type: preproc_def
      name: TRANS_OPT_DEEPEN_NOT
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/git/transport.h
      type_or_value: '"deepen-not"'
    - item_type: preproc_def
      name: TRANS_OPT_DEEPEN_RELATIVE
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/git/transport.h
      type_or_value: '"deepen-relative"'
    - item_type: preproc_def
      name: TRANS_OPT_FOLLOWTAGS
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/git/transport.h
      type_or_value: '"followtags"'
    - item_type: preproc_def
      name: TRANS_OPT_REJECT_SHALLOW
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/git/transport.h
      type_or_value: '"rejectshallow"'
    - item_type: preproc_def
      name: TRANS_OPT_UPDATE_SHALLOW
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/git/transport.h
      type_or_value: '"updateshallow"'
    - item_type: preproc_def
      name: TRANS_OPT_PUSH_CERT
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/git/transport.h
      type_or_value: '"pushcert"'
    - item_type: preproc_def
      name: TRANS_OPT_FROM_PROMISOR
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/git/transport.h
      type_or_value: '"from-promisor"'
    - item_type: preproc_def
      name: TRANS_OPT_LIST_OBJECTS_FILTER
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/git/transport.h
      type_or_value: '"filter"'
    - item_type: preproc_def
      name: TRANS_OPT_REFETCH
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/git/transport.h
      type_or_value: '"refetch"'
    - item_type: preproc_def
      name: TRANS_OPT_ATOMIC
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/git/transport.h
      type_or_value: '"atomic"'
    - item_type: preproc_def
      name: TRANS_OPT_FORCE_IF_INCLUDES
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/git/transport.h
      type_or_value: '"force-if-includes"'
    - item_type: preproc_def
      name: REJECT_NON_FF_HEAD
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/git/transport.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: REJECT_NON_FF_OTHER
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/git/transport.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: REJECT_ALREADY_EXISTS
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/git/transport.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: REJECT_FETCH_FIRST
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/git/transport.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: REJECT_NEEDS_FORCE
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/git/transport.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: REJECT_REF_NEEDS_UPDATE
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/git/transport.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: TRANSPORT_LS_REFS_OPTIONS_INIT
      pos:
        line_end: 284
        line_start: 281
        source_file: /src/git/transport.h
      type_or_value: "{ \\\n\t.ref_prefixes = STRVEC_INIT, \\\n}"
    - item_type: preproc_def
      name: TRANSPORT_UNLOCK_PACK_IN_SIGNAL_HANDLER
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/git/transport.h
      type_or_value: (1 << 0)
    structs:
    - fields:
      - name: thin
        type: unsigned
      - name: keep
        type: unsigned
      - name: followtags
        type: unsigned
      - name: check_self_contained_and_connected
        type: unsigned
      - name: self_contained_and_connected
        type: unsigned
      - name: update_shallow
        type: unsigned
      - name: reject_shallow
        type: unsigned
      - name: deepen_relative
        type: unsigned
      - name: refetch
        type: unsigned
      - name: from_promisor
        type: unsigned
      - name: connectivity_checked
        type: unsigned
      - name: depth
        type: int
      - name: '*deepen_since'
        type: char
      - name: '*deepen_not'
        type: struct string_list
      - name: '*uploadpack'
        type: char
      - name: '*receivepack'
        type: char
      - name: '*cas'
        type: struct push_cas_option
      - name: filter_options
        type: struct list_objects_filter_options
      - name: '*negotiation_restrict_tips'
        type: struct oid_array
      - name: '*negotiation_include_tips'
        type: struct oid_array
      - name: '*acked_commits'
        type: struct oidset
      item_type: struct
      name: git_transport_options
      pos:
        line_end: 56
        line_start: 8
        source_file: /src/git/transport.h
    - fields:
      - name: '*vtable'
        type: struct transport_vtable
      - name: '*remote'
        type: struct remote
      - name: '*url'
        type: char
      - name: '*data'
        type: void
      - name: '*remote_refs'
        type: struct ref
      - name: got_remote_refs
        type: unsigned
      - name: got_remote_bundle_uri
        type: unsigned
      - name: '*bundles'
        type: struct bundle_list
      - name: cannot_reuse
        type: unsigned
      - name: cloning
        type: unsigned
      - name: stateless_rpc
        type: unsigned
      - name: '*push_options'
        type: struct string_list
      - name: '*server_options'
        type: struct string_list
      - name: pack_lockfiles
        type: struct string_list
      - name: verbose
        type: signed
      - name: progress
        type: unsigned
      - name: '*smart_options'
        type: struct git_transport_options
      - name: family
        type: enum transport_family
      - name: '*hash_algo'
        type: struct git_hash_algo
      item_type: struct
      name: transport
      pos:
        line_end: 141
        line_start: 65
        source_file: /src/git/transport.h
    - fields:
      - name: ref_prefixes
        type: struct strvec
      - name: '*unborn_head_target'
        type: char
      item_type: struct
      name: transport_ls_refs_options
      pos:
        line_end: 280
        line_start: 263
        source_file: /src/git/transport.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/object-file.h
  types:
    enum:
    - enumerators:
      - name: FOF_SKIP_COLLISION_CHECK
        value: '1'
      item_type: enum
      name: finalize_object_file_flags
      pos:
        line_end: 194
        line_start: 192
        source_file: /src/git/object-file.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*source'
        type: struct odb_source
      - name: subdir_seen[8]
        type: uint32_t
      - name: '*cache'
        type: struct oidtree
      - name: '*map'
        type: struct loose_object_map
      item_type: struct
      name: odb_source_loose
      pos:
        line_end: 39
        line_start: 22
        source_file: /src/git/object-file.h
    typedefs:
    - item_type: typedef
      name: "each_loose_object_fn(const struct object_id *oid,\n\t\t\t\t const char
        *path,\n\t\t\t\t void *data)"
      pos:
        line_end: 109
        line_start: 107
        source_file: /src/git/object-file.h
      type: int
    - item_type: typedef
      name: "each_loose_cruft_fn(const char *basename,\n\t\t\t\tconst char *path,\n\t\t\t\tvoid
        *data)"
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/git/object-file.h
      type: int
    - item_type: typedef
      name: "each_loose_subdir_fn(unsigned int nr,\n\t\t\t\t const char *path,\n\t\t\t\t
        void *data)"
      pos:
        line_end: 115
        line_start: 113
        source_file: /src/git/object-file.h
      type: int
    union: []
- function_names:
  - oidset_init
  - oidset_contains
  - oidset_equal
  - oidset_insert
  - oidset_insert_from_set
  - oidset_remove
  - oidset_clear
  - oidset_parse_file
  - oidset_parse_file_carefully
  source_file: /src/git/oidset.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/urlmatch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: URLMATCH_CONFIG_INIT
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/git/urlmatch.h
      type_or_value: "{ \\\n\t.vars = STRING_LIST_INIT_DUP, \\\n}"
    structs:
    - fields:
      - name: '*url'
        type: char
      - name: '*err'
        type: char
      - name: url_len
        type: size_t
      - name: scheme_len
        type: size_t
      - name: user_off
        type: size_t
      - name: user_len
        type: size_t
      - name: passwd_off
        type: size_t
      - name: passwd_len
        type: size_t
      - name: host_off
        type: size_t
      - name: host_len
        type: size_t
      - name: port_off
        type: size_t
      - name: port_len
        type: size_t
      - name: path_off
        type: size_t
      - name: path_len
        type: size_t
      item_type: struct
      name: url_info
      pos:
        line_end: 34
        line_start: 6
        source_file: /src/git/urlmatch.h
    - fields:
      - name: hostmatch_len
        type: size_t
      - name: pathmatch_len
        type: size_t
      - name: user_matched
        type: char
      item_type: struct
      name: urlmatch_item
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/git/urlmatch.h
    - fields:
      - name: vars
        type: struct string_list
      - name: url
        type: struct url_info
      - name: '*section'
        type: char
      - name: '*key'
        type: char
      - name: '*cb'
        type: void
      - name: collect_fn
        type: config_fn_t
      - name: cascade_fn
        type: config_fn_t
      - name: (*select_fn)(const struct urlmatch_item *found, const struct urlmatch_item
          *existing)
        type: int
      - name: (*fallback_match_fn)(const char *url, void *cb)
        type: int
      item_type: struct
      name: urlmatch_config
      pos:
        line_end: 68
        line_start: 45
        source_file: /src/git/urlmatch.h
    typedefs: []
    union: []
- function_names:
  - fill_mmfile_blob
  - free_mmfile
  - three_way_filemerge
  - merge_blobs
  source_file: /src/git/merge-blobs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rotate_left
  - get_bitmask
  - check_bloom_offset
  - load_bloom_filter_from_graph
  - murmur3_seeded_v2
  - murmur3_seeded_v1
  - bloom_key_fill
  - bloom_key_clear
  - add_key_to_filter
  - init_bloom_filters
  - free_one_bloom_filter
  - deinit_bloom_filters
  - bloom_keyvec_new
  - bloom_keyvec_free
  - pathmap_cmp
  - init_truncated_large_filter
  - has_entries_with_high_bit
  - commit_tree_has_high_bit_paths
  - upgrade_filter
  - get_bloom_filter
  - get_or_compute_bloom_filter
  - bloom_filter_contains
  - bloom_filter_contains_vec
  - test_bloom_murmur3_seeded
  source_file: /src/git/bloom.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VISITED
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/git/bloom.c
      type_or_value: (1u<<21)
    - item_type: preproc_def
      name: HIGH_BITS
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/git/bloom.c
      type_or_value: (1u<<22)
    structs:
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: path[FLEX_ARRAY]
        type: char
      item_type: struct
      name: pathmap_hash_entry
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/git/bloom.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/cache-tree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WRITE_TREE_MISSING_OK
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/cache-tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WRITE_TREE_IGNORE_CACHE_TREE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/cache-tree.h
      type_or_value: '2'
    - item_type: preproc_def
      name: WRITE_TREE_DRY_RUN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/cache-tree.h
      type_or_value: '4'
    - item_type: preproc_def
      name: WRITE_TREE_SILENT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/cache-tree.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WRITE_TREE_REPAIR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/cache-tree.h
      type_or_value: '16'
    - item_type: preproc_def
      name: WRITE_TREE_UNREADABLE_INDEX
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/cache-tree.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: WRITE_TREE_UNMERGED_INDEX
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/cache-tree.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: WRITE_TREE_PREFIX_ERROR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/cache-tree.h
      type_or_value: (-3)
    structs:
    - fields:
      - name: '*cache_tree'
        type: struct cache_tree
      - name: count
        type: int
      - name: namelen
        type: int
      - name: used
        type: int
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: cache_tree_sub
      pos:
        line_end: 13
        line_start: 7
        source_file: /src/git/cache-tree.h
    - fields:
      - name: entry_count
        type: int
      - name: oid
        type: struct object_id
      - name: subtree_nr
        type: int
      - name: subtree_alloc
        type: int
      - name: '**down'
        type: struct cache_tree_sub
      item_type: struct
      name: cache_tree
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/git/cache-tree.h
    typedefs: []
    union: []
- function_names:
  - check_signum
  - sigchain_push
  - sigchain_pop
  - sigchain_push_common
  - sigchain_pop_common
  source_file: /src/git/sigchain.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIGCHAIN_MAX_SIGNALS
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/sigchain.c
      type_or_value: '32'
    structs:
    - fields:
      - name: '*old'
        type: sigchain_fun
      - name: n
        type: int
      - name: alloc
        type: int
      item_type: struct
      name: sigchain_signal
      pos:
        line_end: 9
        line_start: 5
        source_file: /src/git/sigchain.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/line-log.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent
        type: struct range_set
      - name: target
        type: struct range_set
      item_type: struct
      name: diff_ranges
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/git/line-log.h
    - fields:
      - name: '*next'
        type: struct line_log_data
      - name: '*path'
        type: char
      - name: ranges
        type: struct range_set
      - name: '*pair'
        type: struct diff_filepair
      - name: diff
        type: struct diff_ranges
      item_type: struct
      name: line_log_data
      pos:
        line_end: 40
        line_start: 34
        source_file: /src/git/line-log.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/linear-assignment.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COST_MAX
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/linear-assignment.h
      type_or_value: (1<<16)
    structs: []
    typedefs: []
    union: []
- function_names:
  - fsmonitor_ipc__is_supported
  - fsmonitor_ipc__get_path
  - fsmonitor_ipc__get_state
  - fsmonitor_ipc__send_query
  - fsmonitor_ipc__send_command
  - fsmonitor_ipc__is_supported
  - fsmonitor_ipc__get_state
  - spawn_daemon
  - fsmonitor_ipc__send_query
  - fsmonitor_ipc__send_command
  source_file: /src/git/fsmonitor-ipc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/dir-iterator.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DIR_ITERATOR_PEDANTIC
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/dir-iterator.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: DIR_ITERATOR_SORTED
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/git/dir-iterator.h
      type_or_value: (1 << 1)
    structs:
    - fields:
      - name: path
        type: struct strbuf
      - name: '*relative_path'
        type: char
      - name: '*basename'
        type: char
      - name: st
        type: struct stat
      item_type: struct
      name: dir_iterator
      pos:
        line_end: 81
        line_start: 63
        source_file: /src/git/dir-iterator.h
    typedefs: []
    union: []
- function_names:
  - compare_paths
  - filename_changed
  - intersect_paths
  - match_string_spaces
  - coalesce_lines
  - grab_blob
  - append_lost
  - consume_hunk
  - consume_line
  - combine_diff
  - interesting
  - adjust_hunk_tail
  - find_next
  - give_context
  - make_hunks
  - show_parent_lno
  - hunk_comment_line
  - show_line_to_eol
  - dump_sline
  - reuse_combine_diff
  - dump_quoted_path
  - show_combined_header
  - show_patch_diff
  - show_raw_diff
  - show_combined_diff
  - free_combined_pair
  - combined_pair
  - handle_combined_callback
  - path_path
  - find_paths_generic
  - find_paths_multitree
  - match_objfind
  - combined_objfind
  - diff_tree_combined
  - diff_tree_combined_merge
  - combine_diff_path_new
  source_file: /src/git/combine-diff.c
  types:
    enum:
    - enumerators:
      - name: MATCH
      - name: NEW
      - name: BASE
      item_type: enum
      name: coalesce_direction
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/git/combine-diff.c
    preproc_defs:
    - item_type: preproc_def
      name: STAT_FORMAT_MASK
      pos:
        line_end: 1373
        line_start: 1368
        source_file: /src/git/combine-diff.c
      type_or_value: "(DIFF_FORMAT_NUMSTAT \\\n\t\t\t  | DIFF_FORMAT_SHORTSTAT \\\n\t\t\t
        \ | DIFF_FORMAT_SUMMARY \\\n\t\t\t  | DIFF_FORMAT_DIRSTAT \\\n\t\t\t  | DIFF_FORMAT_DIFFSTAT)"
    structs:
    - fields:
      - name: '*next'
        type: struct lline
      - name: len
        type: int
      - name: parent_map
        type: unsigned long
      - name: line[FLEX_ARRAY]
        type: char
      item_type: struct
      name: lline
      pos:
        line_end: 113
        line_start: 108
        source_file: /src/git/combine-diff.c
    - fields:
      - name: '*lost_head'
        type: struct lline
      - name: len
        type: int
      item_type: struct
      name: plost
      pos:
        line_end: 119
        line_start: 116
        source_file: /src/git/combine-diff.c
    - fields:
      - name: '*lost'
        type: struct lline
      - name: lenlost
        type: int
      - name: plost
        type: struct plost
      - name: '*bol'
        type: char
      - name: len
        type: int
      - name: flag
        type: unsigned long
      - name: '*p_lno'
        type: unsigned long
      item_type: struct
      name: sline
      pos:
        line_end: 136
        line_start: 122
        source_file: /src/git/combine-diff.c
    - fields:
      - name: lno
        type: unsigned int
      - name: ob
        type: int
      - name: nmask
        type: unsigned long
      - name: num_parent
        type: int
      - name: n
        type: int
      - name: '*sline'
        type: struct sline
      - name: '*lost_bucket'
        type: struct sline
      item_type: struct
      name: combine_diff_state
      pos:
        line_end: 364
        line_start: 356
        source_file: /src/git/combine-diff.c
    typedefs: []
    union: []
- function_names:
  - is_dot_or_dotdot
  - dir_path_match
  - starts_with_dot_slash_native
  - starts_with_dot_dot_slash_native
  - starts_with_dot_slash
  - starts_with_dot_dot_slash
  source_file: /src/git/dir.h
  types:
    enum:
    - enumerators:
      - name: UNDECIDED
        value: '-1'
      - name: MATCHED
        value: '1'
      - name: NOT_MATCHED
        value: '0'
      - name: MATCHED_RECURSIVE
        value: '2'
      item_type: enum
      name: pattern_match_result
      pos:
        line_end: 409
        line_start: 404
        source_file: /src/git/dir.h
    - enumerators:
      - name: PATH_MATCH_NATIVE
        value: 1 << 0
      - name: PATH_MATCH_STARTS_WITH_DOT_DOT_SLASH
        value: 1 << 3
      - name: PATH_MATCH_XPLATFORM
        value: 1 << 1
      - name: PATH_MATCH_STARTS_WITH_DOT_SLASH
        value: 1 << 2
      item_type: enum
      name: path_match_flags
      pos:
        line_end: 657
        line_start: 652
        source_file: /src/git/dir.h
    preproc_defs:
    - item_type: preproc_def
      name: PATTERN_FLAG_NODIR
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/dir.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PATTERN_FLAG_ENDSWITH
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/dir.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PATTERN_FLAG_MUSTBEDIR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/git/dir.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PATTERN_FLAG_NEGATIVE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/dir.h
      type_or_value: '16'
    - item_type: preproc_def
      name: EXC_CMDL
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/git/dir.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EXC_DIRS
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/git/dir.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EXC_FILE
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/git/dir.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DIR_INIT
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/git/dir.h
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: MATCHED_RECURSIVELY
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/git/dir.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MATCHED_RECURSIVELY_LEADING_PATHSPEC
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/git/dir.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MATCHED_FNMATCH
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/git/dir.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MATCHED_EXACTLY
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/git/dir.h
      type_or_value: '4'
    - item_type: preproc_def
      name: REMOVE_DIR_EMPTY_ONLY
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/git/dir.h
      type_or_value: '01'
    - item_type: preproc_def
      name: REMOVE_DIR_KEEP_NESTED_GIT
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/git/dir.h
      type_or_value: '02'
    - item_type: preproc_def
      name: REMOVE_DIR_KEEP_TOPLEVEL
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/git/dir.h
      type_or_value: '04'
    - item_type: preproc_def
      name: REMOVE_DIR_PURGE_ORIGINAL_CWD
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/git/dir.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: PATH_MATCH_KINDS_MASK
      pos:
        line_end: 660
        line_start: 658
        source_file: /src/git/dir.h
      type_or_value: "(PATH_MATCH_STARTS_WITH_DOT_SLASH | \\\n\tPATH_MATCH_STARTS_WITH_DOT_DOT_SLASH)"
    - item_type: preproc_def
      name: PATH_MATCH_PLATFORM_MASK
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/git/dir.h
      type_or_value: (PATH_MATCH_NATIVE | PATH_MATCH_XPLATFORM)
    structs:
    - fields:
      - name: len
        type: unsigned int
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: dir_entry
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/git/dir.h
    - fields:
      - name: '*pl'
        type: struct pattern_list
      - name: patternlen
        type: int
      - name: nowildcardlen
        type: int
      - name: '*base'
        type: char
      - name: baselen
        type: int
      - name: flags
        type: unsigned
      - name: srcpos
        type: int
      - name: pattern[FLEX_ARRAY]
        type: char
      item_type: struct
      name: path_pattern
      pos:
        line_end: 76
        line_start: 56
        source_file: /src/git/dir.h
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*pattern'
        type: char
      - name: patternlen
        type: size_t
      item_type: struct
      name: pattern_entry
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/git/dir.h
    - fields:
      - name: nr
        type: int
      - name: alloc
        type: int
      - name: '*src'
        type: char
      - name: '**patterns'
        type: struct path_pattern
      - name: use_cone_patterns
        type: unsigned
      - name: full_cone
        type: unsigned
      - name: recursive_hashmap
        type: struct hashmap
      - name: parent_hashmap
        type: struct hashmap
      item_type: struct
      name: pattern_list
      pos:
        line_end: 120
        line_start: 92
        source_file: /src/git/dir.h
    - fields:
      - name: '*prev'
        type: struct exclude_stack
      - name: baselen
        type: int
      - name: exclude_ix
        type: int
      - name: '*ucd'
        type: struct untracked_cache_dir
      item_type: struct
      name: exclude_stack
      pos:
        line_end: 133
        line_start: 128
        source_file: /src/git/dir.h
    - fields:
      - name: nr
        type: int
      - name: '*pl'
        type: struct pattern_list
      item_type: struct
      name: exclude_list_group
      pos:
        line_end: 138
        line_start: 135
        source_file: /src/git/dir.h
    - fields:
      - name: stat
        type: struct stat_data
      - name: oid
        type: struct object_id
      - name: valid
        type: int
      item_type: struct
      name: oid_stat
      pos:
        line_end: 144
        line_start: 140
        source_file: /src/git/dir.h
    - fields:
      - name: '**dirs'
        type: struct untracked_cache_dir
      - name: '**untracked'
        type: char
      - name: stat_data
        type: struct stat_data
      - name: untracked_alloc
        type: unsigned int
      - name: untracked_nr
        type: unsigned int
      - name: check_only
        type: unsigned int
      - name: valid
        type: unsigned int
      - name: recurse
        type: unsigned int
      - name: exclude_oid
        type: struct object_id
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: untracked_cache_dir
      pos:
        line_end: 187
        line_start: 174
        source_file: /src/git/dir.h
    - fields:
      - name: ss_info_exclude
        type: struct oid_stat
      - name: ss_excludes_file
        type: struct oid_stat
      - name: '*exclude_per_dir'
        type: char
      - name: '*exclude_per_dir_to_free'
        type: char
      - name: ident
        type: struct strbuf
      - name: dir_flags
        type: unsigned
      - name: '*root'
        type: struct untracked_cache_dir
      - name: dir_created
        type: int
      - name: gitignore_invalidated
        type: int
      - name: dir_invalidated
        type: int
      - name: dir_opened
        type: int
      - name: use_fsmonitor
        type: unsigned int
      item_type: struct
      name: untracked_cache
      pos:
        line_end: 208
        line_start: 189
        source_file: /src/git/dir.h
    - fields:
      - name: flags
        type: "enum {\n\n\t\t/**\n\t\t * Return just ignored files in `entries[]`,
          not untracked files.\n\t\t * This flag is mutually exclusive with `DIR_SHOW_IGNORED_TOO`.\n\t\t
          */\n\t\tDIR_SHOW_IGNORED = 1<<0,\n\n\t\t/* Include a directory that is not
          tracked. */\n\t\tDIR_SHOW_OTHER_DIRECTORIES = 1<<1,\n\n\t\t/* Do not include
          a directory that is not tracked and is empty. */\n\t\tDIR_HIDE_EMPTY_DIRECTORIES
          = 1<<2,\n\n\t\t/**\n\t\t * If set, recurse into a directory that looks like
          a Git directory.\n\t\t * Otherwise it is shown as a directory.\n\t\t */\n\t\tDIR_NO_GITLINKS
          = 1<<3,\n\n\t\t/**\n\t\t * Special mode for git-add. Return ignored files
          in `ignored[]` and\n\t\t * untracked files in `entries[]`. Only returns
          ignored files that match\n\t\t * pathspec exactly (no wildcards). Does not
          recurse into ignored\n\t\t * directories.\n\t\t */\n\t\tDIR_COLLECT_IGNORED
          = 1<<4,\n\n\t\t/**\n\t\t * Similar to `DIR_SHOW_IGNORED`, but return ignored
          files in\n\t\t * `ignored[]` in addition to untracked files in `entries[]`.\n\t\t
          * This flag is mutually exclusive with `DIR_SHOW_IGNORED`.\n\t\t */\n\t\tDIR_SHOW_IGNORED_TOO
          = 1<<5,\n\n\t\tDIR_COLLECT_KILLED_ONLY = 1<<6,\n\n\t\t/**\n\t\t * Only has
          meaning if `DIR_SHOW_IGNORED_TOO` is also set; if this is\n\t\t * set, the
          untracked contents of untracked directories are also\n\t\t * returned in
          `entries[]`.\n\t\t */\n\t\tDIR_KEEP_UNTRACKED_CONTENTS = 1<<7,\n\n\t\t/**\n\t\t
          * Only has meaning if `DIR_SHOW_IGNORED_TOO` is also set; if this is\n\t\t
          * set, returns ignored files and directories that match an exclude\n\t\t
          * pattern. If a directory matches an exclude pattern, then the\n\t\t * directory
          is returned and the contained paths are not. A directory\n\t\t * that does
          not match an exclude pattern will not be returned even if\n\t\t * all of
          its contents are ignored. In this case, the contents are\n\t\t * returned
          as individual entries.\n\t\t *\n\t\t * If this is set, files and directories
          that explicitly match an ignore\n\t\t * pattern are reported. Implicitly
          ignored directories (directories that\n\t\t * do not match an ignore pattern,
          but whose contents are all ignored)\n\t\t * are not reported, instead all
          of the contents are reported.\n\t\t */\n\t\tDIR_SHOW_IGNORED_TOO_MODE_MATCHING
          = 1<<8,\n\n\t\tDIR_SKIP_NESTED_GIT = 1<<9\n\t}"
      - name: nr
        type: int
      - name: ignored_nr
        type: int
      - name: '**entries'
        type: struct dir_entry
      - name: '**ignored'
        type: struct dir_entry
      - name: '*untracked'
        type: struct untracked_cache
      - name: '*exclude_per_dir'
        type: char
      - name: internal
        type: "struct dir_struct_internal {\n\t\t/* Keeps track of allocation of `entries[]`
          array.*/\n\t\tint alloc;\n\n\t\t/* Keeps track of allocation of `ignored[]`
          array. */\n\t\tint ignored_alloc;\n\n\t\t/*\n\t\t * We maintain three groups
          of exclude pattern lists:\n\t\t *\n\t\t * EXC_CMDL lists patterns explicitly
          given on the command line.\n\t\t * EXC_DIRS lists patterns obtained from
          per-directory ignore\n\t\t *          files.\n\t\t * EXC_FILE lists patterns
          from fallback ignore files, e.g.\n\t\t *   - .git/info/exclude\n\t\t *   -
          core.excludesfile\n\t\t *\n\t\t * Each group contains multiple exclude lists,
          a single list\n\t\t * per source.\n\t\t */\n#define EXC_CMDL 0\n#define
          EXC_DIRS 1\n#define EXC_FILE 2\n\t\tstruct exclude_list_group exclude_list_group[3];\n\n\t\t/*\n\t\t
          * Temporary variables which are used during loading of the\n\t\t * per-directory
          exclude lists.\n\t\t *\n\t\t * exclude_stack points to the top of the exclude_stack,
          and\n\t\t * basebuf contains the full path to the current\n\t\t * (sub)directory
          in the traversal. Exclude points to the\n\t\t * matching exclude struct
          if the directory is excluded.\n\t\t */\n\t\tstruct exclude_stack *exclude_stack;\n\t\tstruct
          path_pattern *pattern;\n\t\tstruct strbuf basebuf;\n\n\t\t/* Additional
          metadata related to 'untracked' */\n\t\tstruct oid_stat ss_info_exclude;\n\t\tstruct
          oid_stat ss_excludes_file;\n\t\tunsigned unmanaged_exclude_files;\n\n\t\t/*
          Stats about the traversal */\n\t\tunsigned visited_paths;\n\t\tunsigned
          visited_directories;\n\t}"
      item_type: struct
      name: dir_struct
      pos:
        line_end: 356
        line_start: 215
        source_file: /src/git/dir.h
    - fields:
      - name: alloc
        type: int
      - name: ignored_alloc
        type: int
      - name: exclude_list_group[3]
        type: struct exclude_list_group
      - name: '*exclude_stack'
        type: struct exclude_stack
      - name: '*pattern'
        type: struct path_pattern
      - name: basebuf
        type: struct strbuf
      - name: ss_info_exclude
        type: struct oid_stat
      - name: ss_excludes_file
        type: struct oid_stat
      - name: unmanaged_exclude_files
        type: unsigned
      - name: visited_paths
        type: unsigned
      - name: visited_directories
        type: unsigned
      item_type: struct
      name: dir_struct_internal
      pos:
        line_end: 355
        line_start: 309
        source_file: /src/git/dir.h
    typedefs:
    - item_type: typedef
      name: (*file_iterator)(const char *path, const void *data)
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/git/dir.h
      type: int
    union: []
- function_names: []
  source_file: /src/git/base85.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CC_EQ
  - ISASCII
  - ISASCII
  - ISBLANK
  - ISBLANK
  - ISGRAPH
  - ISGRAPH
  - ISPRINT
  - ISDIGIT
  - ISALNUM
  - ISALPHA
  - ISCNTRL
  - ISLOWER
  - ISPUNCT
  - ISSPACE
  - ISUPPER
  - ISXDIGIT
  - dowild
  - wildmatch
  source_file: /src/git/wildmatch.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WM_ABORT_ALL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/wildmatch.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: WM_ABORT_TO_STARSTAR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/wildmatch.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: NEGATE_CLASS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/wildmatch.c
      type_or_value: '''!'''
    - item_type: preproc_def
      name: NEGATE_CLASS2
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/wildmatch.c
      type_or_value: '''^'''
    structs: []
    typedefs:
    - item_type: typedef
      name: uchar
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/git/wildmatch.c
      type: unsigned char
    union: []
- function_names:
  - fetch_using_walker
  - fetch_single_packfile
  - cmd_main
  source_file: /src/git/http-fetch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - memory_limit_check
  - xstrdup
  - do_xmalloc
  - xmalloc
  - do_xmallocz
  - xmallocz
  - xmallocz_gently
  - xmemdupz
  - xstrndup
  - xstrncmpz
  - xrealloc
  - xcalloc
  - xsetenv
  - xopen
  - handle_nonblock
  - xread
  - xwrite
  - xpread
  - read_in_full
  - write_in_full
  - pread_in_full
  - xdup
  - xfopen
  - xfdopen
  - fopen_for_writing
  - warn_on_inaccessible
  - warn_on_fopen_errors
  - fopen_or_warn
  - xmkstemp
  - git_mkdstemps_mode
  - git_mkdtemp
  - git_mkstemps_mode
  - git_mkstemp_mode
  - xmkstemp_mode
  - fsync_loop
  - git_fsync
  - warn_if_unremovable
  - unlink_or_msg
  - unlink_or_warn
  - rmdir_or_warn
  - access_error_is_ok
  - access_or_warn
  - access_or_die
  - xgetcwd
  - xsnprintf
  - write_file_buf
  - write_file
  - sleep_millisec
  - xgethostname
  - is_missing_file
  - is_empty_or_missing_file
  - open_nofollow
  - csprng_bytes
  - git_rand
  - mmap_limit_check
  - xmmap_gently
  - mmap_os_err
  - xmmap
  source_file: /src/git/wrapper.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SystemFunction036
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/wrapper.c
      type_or_value: NTAPI SystemFunction036
    - item_type: preproc_def
      name: TMP_MAX
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/git/wrapper.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: SYMLINK_ERRNO
      pos:
        line_end: 761
        line_start: 760
        source_file: /src/git/wrapper.c
      type_or_value: EFTYPE
    - item_type: preproc_def
      name: SYMLINK_ERRNO
      pos:
        line_end: 763
        line_start: 762
        source_file: /src/git/wrapper.c
      type_or_value: EMLINK
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_bug_if_BUG
  - common_exit
  source_file: /src/git/common-exit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_terminal_dumb
  - git_editor
  - git_sequence_editor
  - launch_specified_editor
  - launch_editor
  - launch_sequence_editor
  - strbuf_edit_interactively
  source_file: /src/git/editor.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_EDITOR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/editor.c
      type_or_value: '"vi"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - add_pathspec_matches_against_index
  - find_pathspecs_matching_against_index
  - find_pathspecs_matching_skip_worktree
  - prefix_magic
  - strcspn_escaped
  - invalid_value_char
  - attr_value_unescape
  - parse_pathspec_attr_match
  - get_literal_global
  - get_glob_global
  - get_noglob_global
  - get_icase_global
  - get_global_magic
  - parse_long_magic
  - parse_short_magic
  - parse_element_magic
  - init_pathspec_item
  - pathspec_item_cmp
  - pathspec_magic_names
  - unsupported_magic
  - parse_pathspec
  - parse_pathspec_file
  - copy_pathspec
  - clear_pathspec
  - match_pathspec_attrs
  - pathspec_needs_expanded_index
  source_file: /src/git/pathspec.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bit
        type: unsigned
      - name: mnemonic
        type: char
      - name: '*name'
        type: char
      item_type: struct
      name: pathspec_magic
      pos:
        line_end: 104
        line_start: 100
        source_file: /src/git/pathspec.c
    typedefs: []
    union: []
- function_names:
  - patch_id_defined
  - commit_patch_id
  - patch_id_neq
  - init_patch_ids
  - free_patch_ids
  - init_patch_id_entry
  - patch_id_iter_first
  - patch_id_iter_next
  - has_commit_patch_id
  - add_commit_patch_id
  source_file: /src/git/patch-ids.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/chunk-format.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHUNK_TOC_ENTRY_SIZE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/chunk-format.h
      type_or_value: (sizeof(uint32_t) + sizeof(uint64_t))
    - item_type: preproc_def
      name: CHUNK_NOT_FOUND
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/chunk-format.h
      type_or_value: (-2)
    structs: []
    typedefs:
    - item_type: typedef
      name: (*chunk_write_fn)(struct hashfile *f, void *data)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/git/chunk-format.h
      type: int
    - item_type: typedef
      name: "(*chunk_read_fn)(const unsigned char *chunk_start,\n\t\t\t     size_t
        chunk_size, void *data)"
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/chunk-format.h
      type: int
    union: []
- function_names:
  - is_another_server_alive
  - unix_ss_create
  - unix_ss_free
  - unix_ss_was_stolen
  source_file: /src/git/unix-stream-server.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_LOCK_TIMEOUT
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/unix-stream-server.c
      type_or_value: (100)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/varint.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/protocol-caps.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oid_array_next_unique
  source_file: /src/git/oid-array.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OID_ARRAY_INIT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/oid-array.h
      type_or_value: '{ 0 }'
    structs:
    - fields:
      - name: '*oid'
        type: struct object_id
      - name: nr
        type: size_t
      - name: alloc
        type: size_t
      - name: sorted
        type: int
      item_type: struct
      name: oid_array
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/git/oid-array.h
    typedefs:
    - item_type: typedef
      name: "(*for_each_oid_fn)(const struct object_id *oid,\n\t\t\t       void *data)"
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/git/oid-array.h
      type: int
    union: []
- function_names:
  - levenshtein
  source_file: /src/git/levenshtein.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - has_glob_specials
  source_file: /src/git/refs.h
  types:
    enum:
    - enumerators:
      - name: REF_TRANSACTION_ERROR_GENERIC
        value: '-1'
      - name: REF_TRANSACTION_ERROR_CREATE_EXISTS
        value: '-3'
      - name: REF_TRANSACTION_ERROR_NAME_CONFLICT
        value: '-2'
      - name: REF_TRANSACTION_ERROR_INCORRECT_OLD_VALUE
        value: '-5'
      - name: REF_TRANSACTION_ERROR_NONEXISTENT_REF
        value: '-4'
      - name: REF_TRANSACTION_ERROR_INVALID_NEW_VALUE
        value: '-6'
      - name: REF_TRANSACTION_ERROR_EXPECTED_SYMREF
        value: '-7'
      - name: REF_TRANSACTION_ERROR_CASE_CONFLICT
        value: '-8'
      item_type: enum
      name: ref_transaction_error
      pos:
        line_end: 36
        line_start: 19
        source_file: /src/git/refs.h
    - enumerators:
      - name: REF_ISSYMREF
        value: (1 << 0)
      - name: REF_ISPACKED
        value: (1 << 1)
      - name: REF_BAD_NAME
        value: (1 << 3)
      - name: REF_ISBROKEN
        value: (1 << 2)
      item_type: enum
      name: reference_status
      pos:
        line_end: 357
        line_start: 336
        source_file: /src/git/refs.h
    - enumerators:
      - name: REFS_FOR_EACH_INCLUDE_BROKEN
        value: (1 << 0)
      - name: REFS_FOR_EACH_PER_WORKTREE_ONLY
        value: (1 << 1)
      - name: REFS_FOR_EACH_OMIT_DANGLING_SYMREFS
        value: (1 << 2)
      - name: REFS_FOR_EACH_INCLUDE_ROOT_REFS
        value: (1 << 3)
      item_type: enum
      name: refs_for_each_flag
      pos:
        line_end: 440
        line_start: 409
        source_file: /src/git/refs.h
    - enumerators:
      - name: UPDATE_REFS_MSG_ON_ERR
      - name: UPDATE_REFS_DIE_ON_ERR
      - name: UPDATE_REFS_QUIET_ON_ERR
      item_type: enum
      name: action_on_err
      pos:
        line_end: 754
        line_start: 750
        source_file: /src/git/refs.h
    - enumerators:
      - name: REF_TRANSACTION_FLAG_INITIAL
        value: (1 << 0)
      - name: REF_TRANSACTION_ALLOW_FAILURE
        value: (1 << 1)
      item_type: enum
      name: ref_transaction_flag
      pos:
        line_end: 776
        line_start: 756
        source_file: /src/git/refs.h
    - enumerators:
      - name: REF_WORKTREE_CURRENT
      - name: REF_WORKTREE_OTHER
      - name: REF_WORKTREE_SHARED
      - name: REF_WORKTREE_MAIN
      item_type: enum
      name: ref_worktree_type
      pos:
        line_end: 1106
        line_start: 1098
        source_file: /src/git/refs.h
    - enumerators:
      - name: EXPIRE_REFLOGS_DRY_RUN
        value: 1 << 0
      - name: EXPIRE_REFLOGS_UPDATE_REF
        value: 1 << 1
      - name: EXPIRE_REFLOGS_REWRITE
        value: 1 << 2
      item_type: enum
      name: expire_reflog_flags
      pos:
        line_end: 1127
        line_start: 1123
        source_file: /src/git/refs.h
    - enumerators:
      - name: NAMESPACE_HEAD
      - name: NAMESPACE_BRANCHES
      - name: NAMESPACE_STASH
      - name: NAMESPACE_REMOTE_REFS
      - name: NAMESPACE_TAGS
      - name: NAMESPACE_REPLACE
      - name: NAMESPACE_NOTES
      - name: NAMESPACE_PREFETCH
      - name: NAMESPACE_REWRITTEN
      - name: NAMESPACE__COUNT
      item_type: enum
      name: ref_namespace
      pos:
        line_end: 1253
        line_start: 1240
        source_file: /src/git/refs.h
    - enumerators:
      - name: REF_ITERATOR_SEEK_SET_PREFIX
        value: (1 << 0)
      item_type: enum
      name: ref_iterator_seek_flag
      pos:
        line_end: 1405
        line_start: 1397
        source_file: /src/git/refs.h
    preproc_defs:
    - item_type: preproc_def
      name: RESOLVE_REF_READING
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/git/refs.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: RESOLVE_REF_NO_RECURSE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/git/refs.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: RESOLVE_REF_ALLOW_BAD_NAME
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/git/refs.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: NOT_A_SYMREF
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/git/refs.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: REF_STORE_CREATE_ON_DISK_IS_WORKTREE
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/git/refs.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: REFS_OPTIMIZE_PRUNE
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/git/refs.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: REFS_OPTIMIZE_AUTO
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/git/refs.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: REFNAME_ALLOW_ONELEVEL
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/git/refs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REFNAME_REFSPEC_PATTERN
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/git/refs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: REF_NO_DEREF
      pos:
        line_end: 850
        line_start: 849
        source_file: /src/git/refs.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: REF_FORCE_CREATE_REFLOG
      pos:
        line_end: 856
        line_start: 855
        source_file: /src/git/refs.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: REF_SKIP_OID_VERIFICATION
      pos:
        line_end: 862
        line_start: 861
        source_file: /src/git/refs.h
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: REF_SKIP_REFNAME_VERIFICATION
      pos:
        line_end: 867
        line_start: 866
        source_file: /src/git/refs.h
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: REF_SKIP_CREATE_REFLOG
      pos:
        line_end: 873
        line_start: 872
        source_file: /src/git/refs.h
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: REF_LOG_USE_PROVIDED_OIDS
      pos:
        line_end: 880
        line_start: 879
        source_file: /src/git/refs.h
      type_or_value: (1 << 13)
    - item_type: preproc_def
      name: REF_TRANSACTION_UPDATE_ALLOWED_FLAGS
      pos:
        line_end: 888
        line_start: 885
        source_file: /src/git/refs.h
      type_or_value: "(REF_NO_DEREF | REF_FORCE_CREATE_REFLOG | REF_SKIP_OID_VERIFICATION
        | \\\n\t REF_SKIP_REFNAME_VERIFICATION | REF_SKIP_CREATE_REFLOG | REF_LOG_USE_PROVIDED_OIDS)"
    - item_type: preproc_def
      name: REPO_MIGRATE_REF_STORAGE_FORMAT_DRYRUN
      pos:
        line_end: 1321
        line_start: 1320
        source_file: /src/git/refs.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: REPO_MIGRATE_REF_STORAGE_FORMAT_SKIP_REFLOG
      pos:
        line_end: 1322
        line_start: 1321
        source_file: /src/git/refs.h
      type_or_value: (1 << 1)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*target'
        type: char
      - name: '*oid'
        type: struct object_id
      - name: '*peeled_oid'
        type: struct object_id
      - name: flags
        type: unsigned
      item_type: struct
      name: reference
      pos:
        line_end: 383
        line_start: 360
        source_file: /src/git/refs.h
    - fields:
      - name: '*prefix'
        type: char
      - name: '*pattern'
        type: char
      - name: '*namespace'
        type: char
      - name: '**exclude_patterns'
        type: char
      - name: trim_prefix
        type: size_t
      - name: flags
        type: enum refs_for_each_flag
      item_type: struct
      name: refs_for_each_ref_options
      pos:
        line_end: 497
        line_start: 457
        source_file: /src/git/refs.h
    - fields:
      - name: flags
        type: unsigned int
      - name: '*exclusions'
        type: struct ref_exclusions
      - name: '*includes'
        type: struct string_list
      item_type: struct
      name: refs_optimize_opts
      pos:
        line_end: 557
        line_start: 553
        source_file: /src/git/refs.h
    - fields:
      - name: '*ref'
        type: char
      - name: decoration
        type: enum decoration_type
      - name: exact
        type: unsigned
      item_type: struct
      name: ref_namespace_info
      pos:
        line_end: 1238
        line_start: 1225
        source_file: /src/git/refs.h
    typedefs:
    - item_type: typedef
      name: refs_for_each_cb(const struct reference *ref, void *cb_data)
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/git/refs.h
      type: int
    - item_type: typedef
      name: "each_reflog_ent_fn(const char *refname,\n\t\t\t       struct object_id
        *old_oid,\n\t\t\t       struct object_id *new_oid,\n\t\t\t       const char
        *committer,\n\t\t\t       timestamp_t timestamp,\n\t\t\t       int tz, const
        char *msg,\n\t\t\t       void *cb_data)"
      pos:
        line_end: 658
        line_start: 652
        source_file: /src/git/refs.h
      type: int
    - item_type: typedef
      name: each_reflog_fn(const char *refname, void *cb_data)
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/git/refs.h
      type: int
    - item_type: typedef
      name: "ref_transaction_for_each_queued_update_fn(const char *refname,\n\t\t\t\t\t\t
        \      const struct object_id *old_oid,\n\t\t\t\t\t\t       const struct object_id
        *new_oid,\n\t\t\t\t\t\t       void *cb_data)"
      pos:
        line_end: 1023
        line_start: 1020
        source_file: /src/git/refs.h
      type: void
    - item_type: typedef
      name: "ref_transaction_for_each_rejected_update_fn(const char *refname,\n\t\t\t\t\t\t\t
        const struct object_id *old_oid,\n\t\t\t\t\t\t\t const struct object_id *new_oid,\n\t\t\t\t\t\t\t
        const char *old_target,\n\t\t\t\t\t\t\t const char *new_target,\n\t\t\t\t\t\t\t
        enum ref_transaction_error err,\n\t\t\t\t\t\t\t const char *details,\n\t\t\t\t\t\t\t
        void *cb_data)"
      pos:
        line_end: 1039
        line_start: 1032
        source_file: /src/git/refs.h
      type: void
    - item_type: typedef
      name: "reflog_expiry_prepare_fn(const char *refname,\n\t\t\t\t      const struct
        object_id *oid,\n\t\t\t\t      void *cb_data)"
      pos:
        line_end: 1147
        line_start: 1145
        source_file: /src/git/refs.h
      type: void
    - item_type: typedef
      name: "reflog_expiry_should_prune_fn(struct object_id *ooid,\n\t\t\t\t\t  struct
        object_id *noid,\n\t\t\t\t\t  const char *email,\n\t\t\t\t\t  timestamp_t
        timestamp, int tz,\n\t\t\t\t\t  const char *message, void *cb_data)"
      pos:
        line_end: 1152
        line_start: 1148
        source_file: /src/git/refs.h
      type: int
    - item_type: typedef
      name: reflog_expiry_cleanup_fn(void *cb_data)
      pos:
        line_end: 1153
        line_start: 1153
        source_file: /src/git/refs.h
      type: void
    union: []
- function_names: []
  source_file: /src/git/mem-pool.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next_block'
        type: struct mp_block
      - name: '*next_free'
        type: char
      - name: '*end'
        type: char
      - name: space[FLEX_ARRAY]
        type: uintmax_t
      item_type: struct
      name: mp_block
      pos:
        line_end: 8
        line_start: 3
        source_file: /src/git/mem-pool.h
    - fields:
      - name: '*mp_block'
        type: struct mp_block
      - name: block_alloc
        type: size_t
      - name: pool_alloc
        type: size_t
      item_type: struct
      name: mem_pool
      pos:
        line_end: 21
        line_start: 10
        source_file: /src/git/mem-pool.h
    typedefs: []
    union: []
- function_names:
  - valid_remote
  - alias_url
  - add_url
  - add_pushurl
  - add_pushurl_alias
  - add_url_alias
  - remotes_hash_cmp
  - make_remote
  - remote_clear
  - add_merge
  - branches_hash_cmp
  - find_branch
  - die_on_missing_branch
  - make_branch
  - merge_clear
  - branch_release
  - make_rewrite
  - rewrites_release
  - add_instead_of
  - skip_spaces
  - warn_about_deprecated_remote_type
  - read_remotes_file
  - read_branches_file
  - handle_config
  - alias_all_urls
  - read_config
  - valid_remote_nick
  - remotes_remote_for_branch
  - remote_for_branch
  - remotes_pushremote_for_branch
  - pushremote_for_branch
  - remote_ref_for_branch
  - validate_remote_url
  - remotes_remote_get_1
  - remotes_remote_get
  - remote_get
  - remote_get_early
  - remotes_pushremote_get
  - pushremote_get
  - remote_is_configured
  - for_each_remote
  - handle_duplicate
  - ref_remove_duplicates
  - remote_has_url
  - push_url_of_remote
  - ref_push_report_free
  - remote_find_tracking
  - alloc_ref_with_prefix
  - alloc_ref
  - copy_ref
  - copy_ref_list
  - free_one_ref
  - free_refs
  - count_refspec_match
  - tail_link_ref
  - alloc_delete_ref
  - try_explicit_object_name
  - make_linked_ref
  - guess_ref
  - match_explicit_lhs
  - show_push_unqualified_ref_name_error
  - match_explicit
  - match_explicit_refs
  - get_ref_match
  - tail_ref
  - add_to_tips
  - add_missing_tags
  - find_ref_by_name
  - prepare_ref_index
  - check_push_refs
  - match_push_refs
  - set_ref_status_for_push
  - set_merge
  - repo_branch_get
  - branch_get
  - repo_default_remote
  - repo_remote_from_url
  - branch_has_merge_config
  - branch_merge_matches
  - error_buf
  - branch_get_upstream
  - tracking_for_push_dest
  - branch_get_push_1
  - branch_get_push
  - ignore_symref_update
  - get_expanded_map
  - find_ref_by_name_abbrev
  - get_remote_ref
  - get_local_ref
  - get_fetch_map
  - resolve_remote_symref
  - stat_branch_pair
  - stat_tracking_info
  - resolve_compare_branch
  - format_branch_comparison
  - format_tracking_info
  - one_local_ref
  - get_local_heads
  - guess_remote_head
  - get_stale_heads_cb
  - get_stale_heads
  - clear_cas_option
  - add_cas_entry
  - parse_push_cas_option
  - parseopt_push_cas_option
  - is_empty_cas
  - remote_tracking
  - peek_reflog
  - check_and_collect_until
  - is_reachable_in_reflog
  - check_if_includes_upstream
  - apply_cas
  - apply_push_cas
  - remote_state_new
  - remote_state_clear
  - chop_last_dir
  - relative_url
  - valid_remote_name
  source_file: /src/git/remote.c
  types:
    enum:
    - enumerators:
      - name: FROM_SRC
      - name: FROM_DST
      item_type: enum
      name: map_direction
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/git/remote.c
    preproc_defs:
    - item_type: preproc_def
      name: MERGE_BASES_BATCH_SIZE
      pos:
        line_end: 2706
        line_start: 2705
        source_file: /src/git/remote.c
      type_or_value: '8'
    structs:
    - fields:
      - name: len
        type: size_t
      - name: '*s'
        type: char
      item_type: struct
      name: counted_string
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/git/remote.c
    - fields:
      - name: '*str'
        type: char
      - name: len
        type: int
      item_type: struct
      name: remotes_hash_key
      pos:
        line_end: 111
        line_start: 108
        source_file: /src/git/remote.c
    - fields:
      - name: '*str'
        type: char
      - name: len
        type: int
      item_type: struct
      name: branches_hash_key
      pos:
        line_end: 204
        line_start: 201
        source_file: /src/git/remote.c
    - fields:
      - name: '*ref_names'
        type: struct string_list
      - name: '**stale_refs_tail'
        type: struct ref
      - name: '*rs'
        type: struct refspec
      item_type: struct
      name: stale_heads_info
      pos:
        line_end: 2512
        line_start: 2508
        source_file: /src/git/remote.c
    - fields:
      - name: '*remote_commit'
        type: struct commit
      - name: '*local_commits'
        type: struct commit_stack
      - name: remote_reflog_timestamp
        type: timestamp_t
      item_type: struct
      name: check_and_collect_until_cb_data
      pos:
        line_end: 2662
        line_start: 2658
        source_file: /src/git/remote.c
    typedefs: []
    union: []
- function_names:
  - read_patches
  - patch_util_cmp
  - find_exact_matches
  - diffsize_consume
  - diffsize_hunk
  - diffsize
  - get_correspondences
  - output_pair_header
  - get_filespec
  - patch_diff
  - output_prefix_cb
  - output
  - show_range_diff
  - is_range_diff_range
  source_file: /src/git/range-diff.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: e
        type: struct hashmap_entry
      - name: '*diff'
        type: char
      - name: i
        type: int
      - name: diffsize
        type: int
      - name: diff_offset
        type: size_t
      - name: matching
        type: int
      - name: oid
        type: struct object_id
      item_type: struct
      name: patch_util
      pos:
        line_end: 34
        line_start: 23
        source_file: /src/git/range-diff.c
    typedefs: []
    union: []
- function_names:
  - record_resolve_undo
  - resolve_undo_write
  - for_each_string_list_item
  - resolve_undo_read
  - resolve_undo_clear_index
  - unmerge_index_entry
  - unmerge_index
  source_file: /src/git/resolve-undo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - graph_show_line_prefix
  - parse_graph_colors_config
  - graph_set_column_colors
  - column_get_color_code
  - graph_line_addch
  - graph_line_addchars
  - graph_line_addstr
  - graph_line_addcolor
  - graph_line_write_column
  - diff_output_prefix_callback
  - graph_setup_line_prefix
  - graph_init
  - graph_clear
  - graph_update_state
  - graph_ensure_capacity
  - graph_is_interesting
  - next_interesting_parent
  - first_interesting_parent
  - graph_get_current_column_color
  - graph_increment_column_color
  - graph_find_commit_color
  - graph_find_new_column_by_commit
  - graph_insert_into_new_columns
  - graph_update_columns
  - graph_num_dashed_parents
  - graph_num_expansion_rows
  - graph_needs_pre_commit_line
  - graph_update
  - graph_is_mapping_correct
  - graph_pad_horizontally
  - graph_output_padding_line
  - graph_width
  - graph_output_skip_line
  - graph_output_pre_commit_line
  - graph_output_commit_char
  - graph_draw_octopus_merge
  - graph_output_commit_line
  - graph_output_post_merge_line
  - graph_output_collapsing_line
  - graph_next_line
  - graph_padding_line
  - graph_is_commit_finished
  - graph_show_commit
  - graph_show_oneline
  - graph_show_padding
  - graph_show_remainder
  - graph_show_strbuf
  - graph_show_commit_msg
  source_file: /src/git/graph.c
  types:
    enum:
    - enumerators:
      - name: GRAPH_PADDING
      - name: GRAPH_PRE_COMMIT
      - name: GRAPH_POST_MERGE
      - name: GRAPH_COMMIT
      - name: GRAPH_SKIP
      - name: GRAPH_COLLAPSING
      item_type: enum
      name: graph_state
      pos:
        line_end: 71
        line_start: 64
        source_file: /src/git/graph.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*commit'
        type: struct commit
      - name: color
        type: unsigned short
      item_type: struct
      name: column
      pos:
        line_end: 62
        line_start: 52
        source_file: /src/git/graph.c
    - fields:
      - name: '*buf'
        type: struct strbuf
      - name: width
        type: size_t
      item_type: struct
      name: graph_line
      pos:
        line_end: 118
        line_start: 115
        source_file: /src/git/graph.c
    - fields:
      - name: '*commit'
        type: struct commit
      - name: '*revs'
        type: struct rev_info
      - name: num_parents
        type: int
      - name: width
        type: int
      - name: expansion_row
        type: int
      - name: state
        type: enum graph_state
      - name: prev_state
        type: enum graph_state
      - name: commit_index
        type: int
      - name: prev_commit_index
        type: int
      - name: merge_layout
        type: int
      - name: edges_added
        type: int
      - name: prev_edges_added
        type: int
      - name: column_capacity
        type: int
      - name: num_columns
        type: int
      - name: num_new_columns
        type: int
      - name: mapping_size
        type: int
      - name: '*columns'
        type: struct column
      - name: '*new_columns'
        type: struct column
      - name: '*mapping'
        type: int
      - name: '*old_mapping'
        type: int
      - name: default_column_color
        type: unsigned short
      - name: prefix_buf
        type: struct strbuf
      item_type: struct
      name: git_graph
      pos:
        line_end: 317
        line_start: 153
        source_file: /src/git/graph.c
    typedefs: []
    union: []
- function_names:
  - subprocess_get_child_process
  source_file: /src/git/sub-process.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*cmd'
        type: char
      - name: process
        type: struct child_process
      item_type: struct
      name: subprocess_entry
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/git/sub-process.h
    - fields:
      - name: '*name'
        type: char
      - name: flag
        type: unsigned int
      item_type: struct
      name: subprocess_capability
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/git/sub-process.h
    typedefs:
    - item_type: typedef
      name: (*subprocess_start_fn)(struct subprocess_entry *entry)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/git/sub-process.h
      type: int
    union: []
- function_names:
  - construct_sparse_dir_entry
  - convert_to_sparse_rec
  - set_sparse_index_config
  - index_has_unmerged_entries
  - is_sparse_index_allowed
  - convert_to_sparse
  - set_index_entry
  - add_path_to_index
  - expand_index
  - ensure_full_index
  - ensure_correct_sparsity
  - clear_path_found_data
  - max_common_dir_prefix
  - path_found
  - clear_skip_worktree_from_present_files_sparse
  - clear_skip_worktree_from_present_files_full
  - clear_skip_worktree_from_present_files
  - expand_to_path
  source_file: /src/git/sparse-index.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ADVICE_MSG
      pos:
        line_end: 37
        line_start: 29
        source_file: /src/git/sparse-index.c
      type_or_value: "\"The sparse index is expanding to a full index, a slow operation.\\n\"
        \  \\\n\t\"Your working directory likely has contents that are outside of\\n\"
        \    \\\n\t\"your sparse-checkout patterns. Use 'git sparse-checkout list'
        to\\n\"   \\\n\t\"see your sparse-checkout definition and compare it to your
        working\\n\" \\\n\t\"directory contents. Cleaning up any merge conflicts or
        staged\\n\"      \\\n\t\"changes before running 'git sparse-checkout clean'
        or 'git\\n\"         \\\n\t\"sparse-checkout reapply' may assist in this cleanup.\""
    - item_type: preproc_def
      name: PATH_FOUND_DATA_INIT
      pos:
        line_end: 497
        line_start: 494
        source_file: /src/git/sparse-index.c
      type_or_value: "{ \\\n\t.dir = STRBUF_INIT \\\n}"
    structs:
    - fields:
      - name: '*write'
        type: struct index_state
      - name: '*pl'
        type: struct pattern_list
      item_type: struct
      name: modify_index_context
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/git/sparse-index.c
    - fields:
      - name: dir
        type: struct strbuf
      - name: lstat_count
        type: size_t
      item_type: struct
      name: path_found_data
      pos:
        line_end: 492
        line_start: 480
        source_file: /src/git/sparse-index.c
    typedefs: []
    union: []
- function_names:
  - hex_to_bytes
  source_file: /src/git/hex-ll.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - notes_cache_match_validity
  - notes_cache_init
  - notes_cache_write
  - notes_cache_get
  - notes_cache_put
  source_file: /src/git/notes-cache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ATTR_TRUE
  - ATTR_FALSE
  - ATTR_UNSET
  source_file: /src/git/attr.h
  types:
    enum:
    - enumerators:
      - name: GIT_ATTR_CHECKIN
      - name: GIT_ATTR_INDEX
      - name: GIT_ATTR_CHECKOUT
      item_type: enum
      name: git_attr_direction
      pos:
        line_end: 226
        line_start: 222
        source_file: /src/git/attr.h
    preproc_defs:
    - item_type: preproc_def
      name: ATTR_MAX_LINE_LENGTH
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/git/attr.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: ATTR_MAX_FILE_SIZE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/git/attr.h
      type_or_value: (100 * 1024 * 1024)
    structs:
    - fields:
      - name: '*attr'
        type: struct git_attr
      - name: '*value'
        type: char
      item_type: struct
      name: attr_check_item
      pos:
        line_end: 175
        line_start: 172
        source_file: /src/git/attr.h
    - fields:
      - name: nr
        type: int
      - name: alloc
        type: int
      - name: '*items'
        type: struct attr_check_item
      - name: all_attrs_nr
        type: int
      - name: '*all_attrs'
        type: struct all_attrs_item
      - name: '*stack'
        type: struct attr_stack
      item_type: struct
      name: attr_check
      pos:
        line_end: 189
        line_start: 182
        source_file: /src/git/attr.h
    - fields:
      - name: '*attr'
        type: struct git_attr
      - name: '*setto'
        type: char
      item_type: struct
      name: attr_state
      pos:
        line_end: 250
        line_start: 247
        source_file: /src/git/attr.h
    - fields:
      - name: '*pattern'
        type: char
      - name: patternlen
        type: int
      - name: nowildcardlen
        type: int
      - name: flags
        type: unsigned
      item_type: struct
      name: pattern
      pos:
        line_end: 257
        line_start: 252
        source_file: /src/git/attr.h
    - fields:
      - name: u
        type: "union {\n\t\tstruct pattern pat;\n\t\tconst struct git_attr *attr;\n\t}"
      - name: is_macro
        type: char
      - name: num_attr
        type: size_t
      - name: state[FLEX_ARRAY]
        type: struct attr_state
      item_type: struct
      name: match_attr
      pos:
        line_end: 280
        line_start: 272
        source_file: /src/git/attr.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/pack-refs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACK_REFS_OPTS
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/git/pack-refs.h
      type_or_value: '"[--all] [--no-prune] [--auto] [--include <pattern>] [--exclude
        <pattern>]"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - island_bitmap_new
  - island_bitmap_or
  - island_bitmap_is_subset
  - ISLAND_BITMAP_BLOCK
  - ISLAND_BITMAP_MASK
  - island_bitmap_set
  - island_bitmap_get
  - in_same_island
  - island_delta_cmp
  - create_or_get_island_marks
  - set_island_marks
  - mark_remote_island_1
  - tree_depth_compare
  - resolve_tree_islands
  - free_config_regexes
  - free_remote_islands
  - island_config_callback
  - add_ref_to_island
  - find_island_for_ref
  - get_core_island
  - deduplicate_islands
  - load_delta_islands
  - propagate_island_marks
  - free_island_marks
  - compute_pack_layers
  source_file: /src/git/delta-islands.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: hash
        type: uint64_t
      - name: oids
        type: struct oid_array
      item_type: struct
      name: remote_island
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/git/delta-islands.c
    - fields:
      - name: refcount
        type: uint32_t
      - name: bits[FLEX_ARRAY]
        type: uint32_t
      item_type: struct
      name: island_bitmap
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/git/delta-islands.c
    - fields:
      - name: '*entry'
        type: struct object_entry
      - name: depth
        type: unsigned int
      item_type: struct
      name: tree_islands_todo
      pos:
        line_end: 228
        line_start: 225
        source_file: /src/git/delta-islands.c
    - fields:
      - name: '*remote_islands'
        type: kh_str_t
      - name: '*rx'
        type: regex_t
      - name: nr
        type: size_t
      - name: alloc
        type: size_t
      item_type: struct
      name: island_load_data
      pos:
        line_end: 316
        line_start: 311
        source_file: /src/git/delta-islands.c
    typedefs: []
    union: []
- function_names:
  - repo_oid_to_algop
  - decode_tree_entry_raw
  - convert_tree_object
  - convert_tag_object
  - convert_commit_object
  - convert_object_file
  source_file: /src/git/object-file-convert.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/merge-ort.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: clean
        type: int
      - name: '*tree'
        type: struct tree
      - name: '*path_messages'
        type: struct strmap
      - name: '*priv'
        type: void
      - name: _properly_initialized
        type: unsigned
      item_type: struct
      name: merge_result
      pos:
        line_end: 45
        line_start: 11
        source_file: /src/git/merge-ort.h
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*ancestor'
        type: char
      - name: '*branch1'
        type: char
      - name: '*branch2'
        type: char
      - name: detect_renames
        type: int
      - name: detect_directory_renames
        type: "enum {\n\t\tMERGE_DIRECTORY_RENAMES_NONE = 0,\n\t\tMERGE_DIRECTORY_RENAMES_CONFLICT
          = 1,\n\t\tMERGE_DIRECTORY_RENAMES_TRUE = 2\n\t}"
      - name: rename_limit
        type: int
      - name: rename_score
        type: int
      - name: show_rename_progress
        type: int
      - name: xdl_opts
        type: long
      - name: conflict_style
        type: int
      - name: recursive_variant
        type: "enum {\n\t\tMERGE_VARIANT_NORMAL = 0,\n\t\tMERGE_VARIANT_OURS,\n\t\tMERGE_VARIANT_THEIRS\n\t}"
      - name: verbosity
        type: int
      - name: buffer_output
        type: unsigned
      - name: obuf
        type: struct strbuf
      - name: '*subtree_shift'
        type: char
      - name: renormalize
        type: unsigned
      - name: mergeability_only
        type: unsigned
      - name: record_conflict_msgs_as_headers
        type: unsigned
      - name: '*msg_header_prefix'
        type: char
      - name: '*priv'
        type: struct merge_options_internal
      item_type: struct
      name: merge_options
      pos:
        line_end: 91
        line_start: 48
        source_file: /src/git/merge-ort.h
    - fields:
      - name: oid
        type: struct object_id
      - name: mode
        type: int
      - name: stage
        type: int
      item_type: struct
      name: stage_info
      pos:
        line_end: 148
        line_start: 144
        source_file: /src/git/merge-ort.h
    typedefs: []
    union: []
- function_names:
  - hashfile_total
  - hashwrite_u8
  - hashwrite_be32
  - hashwrite_be64
  source_file: /src/git/csum-file.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CSUM_CLOSE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/csum-file.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CSUM_FSYNC
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/csum-file.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CSUM_HASH_IN_STREAM
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/csum-file.h
      type_or_value: '4'
    structs:
    - fields:
      - name: fd
        type: int
      - name: check_fd
        type: int
      - name: offset
        type: unsigned int
      - name: ctx
        type: struct git_hash_ctx
      - name: total
        type: off_t
      - name: '*tp'
        type: struct progress
      - name: '*name'
        type: char
      - name: do_crc
        type: int
      - name: crc32
        type: uint32_t
      - name: buffer_len
        type: size_t
      - name: '*buffer'
        type: unsigned char
      - name: '*check_buffer'
        type: unsigned char
      - name: '*algop'
        type: struct git_hash_algo
      - name: skip_hash
        type: int
      item_type: struct
      name: hashfile
      pos:
        line_end: 30
        line_start: 9
        source_file: /src/git/csum-file.h
    - fields:
      - name: offset
        type: off_t
      - name: ctx
        type: struct git_hash_ctx
      item_type: struct
      name: hashfile_checkpoint
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/git/csum-file.h
    - fields:
      - name: '*progress'
        type: struct progress
      - name: buffer_len
        type: size_t
      item_type: struct
      name: hashfd_options
      pos:
        line_end: 56
        line_start: 47
        source_file: /src/git/csum-file.h
    typedefs: []
    union: []
- function_names:
  - set_option
  - parse_git_refs
  - detect_hash_algo
  - parse_info_refs
  - free_discovery
  - show_http_message
  - get_protocol_http_header
  - check_smart_http
  - discover_refs
  - get_refs
  - output_refs
  - rpc_read_from_out
  - rpc_out
  - rpc_seek
  - check_pktline
  - rpc_in
  - run_slot
  - probe_rpc
  - post_rpc
  - rpc_service
  - fetch_dumb
  - fetch_git
  - fetch
  - parse_fetch
  - parse_get
  - push_dav
  - push_git
  - push
  - parse_push
  - stateless_connect
  - cmd_main
  source_file: /src/git/remote-curl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RPC_STATE_INIT
      pos:
        line_end: 644
        line_start: 643
        source_file: /src/git/remote-curl.c
      type_or_value: '{ 0 }'
    structs:
    - fields:
      - name: verbosity
        type: int
      - name: depth
        type: unsigned long
      - name: '*deepen_since'
        type: char
      - name: deepen_not
        type: struct string_list
      - name: push_options
        type: struct string_list
      - name: '*filter'
        type: char
      - name: progress
        type: unsigned
      - name: '*hash_algo'
        type: struct git_hash_algo
      item_type: struct
      name: options
      pos:
        line_end: 59
        line_start: 33
        source_file: /src/git/remote-curl.c
    - fields:
      - name: '*service'
        type: char
      - name: '*buf_alloc'
        type: char
      - name: '*buf'
        type: char
      - name: len
        type: size_t
      - name: '*refs'
        type: struct ref
      - name: shallow
        type: struct oid_array
      - name: version
        type: enum protocol_version
      - name: proto_git
        type: unsigned
      item_type: struct
      name: discovery
      pos:
        line_end: 235
        line_start: 226
        source_file: /src/git/remote-curl.c
    - fields:
      - name: '*service_name'
        type: char
      - name: '*service_url'
        type: char
      - name: '*hdr_content_type'
        type: char
      - name: '*hdr_accept'
        type: char
      - name: '*hdr_accept_language'
        type: char
      - name: '*protocol_header'
        type: char
      - name: '*buf'
        type: char
      - name: alloc
        type: size_t
      - name: len
        type: size_t
      - name: pos
        type: size_t
      - name: in
        type: int
      - name: out
        type: int
      - name: any_written
        type: int
      - name: gzip_request
        type: unsigned
      - name: initial_buffer
        type: unsigned
      - name: write_line_lengths
        type: unsigned
      - name: flush_read_but_not_sent
        type: unsigned
      item_type: struct
      name: rpc_state
      pos:
        line_end: 641
        line_start: 610
        source_file: /src/git/remote-curl.c
    - fields:
      - name: len_buf[4]
        type: char
      - name: len_filled
        type: int
      - name: remaining
        type: int
      item_type: struct
      name: check_pktline_state
      pos:
        line_end: 775
        line_start: 771
        source_file: /src/git/remote-curl.c
    - fields:
      - name: '*rpc'
        type: struct rpc_state
      - name: '*slot'
        type: struct active_request_slot
      - name: check_pktline
        type: int
      - name: pktline_state
        type: struct check_pktline_state
      item_type: struct
      name: rpc_in_data
      pos:
        line_end: 821
        line_start: 816
        source_file: /src/git/remote-curl.c
    typedefs: []
    union: []
- function_names:
  - index_dir_exists
  source_file: /src/git/name-hash.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - unborn_config
  - ref_match
  - send_ref
  - send_possibly_unborn_head
  - ls_refs_config
  - ls_refs
  - ls_refs_advertise
  source_file: /src/git/ls-refs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TOO_MANY_PREFIXES
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/ls-refs.c
      type_or_value: '65536'
    structs:
    - fields:
      - name: peel
        type: unsigned
      - name: symrefs
        type: unsigned
      - name: prefixes
        type: struct strvec
      - name: buf
        type: struct strbuf
      - name: hidden_refs
        type: struct strvec
      - name: unborn
        type: unsigned
      item_type: struct
      name: ls_refs_data
      pos:
        line_end: 75
        line_start: 68
        source_file: /src/git/ls-refs.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/sequencer.h
  types:
    enum:
    - enumerators:
      - name: REPLAY_REVERT
      - name: REPLAY_INTERACTIVE_REBASE
      - name: REPLAY_PICK
      item_type: enum
      name: replay_action
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/git/sequencer.h
    - enumerators:
      - name: COMMIT_MSG_CLEANUP_SPACE
      - name: COMMIT_MSG_CLEANUP_SCISSORS
      - name: COMMIT_MSG_CLEANUP_ALL
      - name: COMMIT_MSG_CLEANUP_NONE
      item_type: enum
      name: commit_msg_cleanup_mode
      pos:
        line_end: 31
        line_start: 26
        source_file: /src/git/sequencer.h
    - enumerators:
      - name: TODO_PICK
        value: '0'
      - name: TODO_FIXUP
      - name: TODO_REWORD
      - name: TODO_EDIT
      - name: TODO_REVERT
      - name: TODO_SQUASH
      - name: TODO_EXEC
      - name: TODO_BREAK
      - name: TODO_LABEL
      - name: TODO_RESET
      - name: TODO_NOOP
      - name: TODO_UPDATE_REF
      - name: TODO_MERGE
      - name: TODO_COMMENT
      - name: TODO_DROP
      item_type: enum
      name: todo_command
      pos:
        line_end: 119
        line_start: 99
        source_file: /src/git/sequencer.h
    preproc_defs:
    - item_type: preproc_def
      name: APPEND_SIGNOFF_DEDUP
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/sequencer.h
      type_or_value: (1u << 0)
    - item_type: preproc_def
      name: REPLAY_OPTS_INIT
      pos:
        line_end: 92
        line_start: 85
        source_file: /src/git/sequencer.h
      type_or_value: "{\t\t\t\\\n\t.edit = -1,\t\t\t\t\\\n\t.action = -1,\t\t\t\t\\\n\t.trailer_args
        = STRVEC_INIT,\t\t\\\n\t.xopts = STRVEC_INIT,\t\t\t\\\n\t.ctx = replay_ctx_new(),\t\t\\\n}"
    - item_type: preproc_def
      name: TODO_LIST_INIT
      pos:
        line_end: 140
        line_start: 137
        source_file: /src/git/sequencer.h
      type_or_value: "{ \\\n\t.buf = STRBUF_INIT, \\\n}"
    - item_type: preproc_def
      name: TODO_LIST_KEEP_EMPTY
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/git/sequencer.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: TODO_LIST_SHORTEN_IDS
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/git/sequencer.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: TODO_LIST_ABBREVIATE_CMDS
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/git/sequencer.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: TODO_LIST_REBASE_MERGES
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/git/sequencer.h
      type_or_value: (1U << 3)
    - item_type: preproc_def
      name: TODO_LIST_REBASE_COUSINS
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/git/sequencer.h
      type_or_value: (1U << 4)
    - item_type: preproc_def
      name: TODO_LIST_APPEND_TODO_HELP
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/git/sequencer.h
      type_or_value: (1U << 5)
    - item_type: preproc_def
      name: TODO_LIST_ROOT_WITH_ONTO
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/git/sequencer.h
      type_or_value: (1U << 6)
    - item_type: preproc_def
      name: TODO_LIST_REAPPLY_CHERRY_PICKS
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/git/sequencer.h
      type_or_value: (1U << 7)
    - item_type: preproc_def
      name: TODO_LIST_WARN_SKIPPED_CHERRY_PICKS
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/git/sequencer.h
      type_or_value: (1U << 8)
    - item_type: preproc_def
      name: SUMMARY_INITIAL_COMMIT
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/git/sequencer.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: SUMMARY_SHOW_AUTHOR_DATE
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/git/sequencer.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: READ_ONELINER_SKIP_IF_EMPTY
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/git/sequencer.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: READ_ONELINER_WARN_MISSING
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/git/sequencer.h
      type_or_value: (1 << 1)
    structs:
    - fields:
      - name: action
        type: enum replay_action
      - name: edit
        type: int
      - name: record_origin
        type: int
      - name: no_commit
        type: int
      - name: signoff
        type: int
      - name: allow_ff
        type: int
      - name: allow_rerere_auto
        type: int
      - name: allow_empty
        type: int
      - name: allow_empty_message
        type: int
      - name: drop_redundant_commits
        type: int
      - name: keep_redundant_commits
        type: int
      - name: verbose
        type: int
      - name: quiet
        type: int
      - name: reschedule_failed_exec
        type: int
      - name: committer_date_is_author_date
        type: int
      - name: ignore_date
        type: int
      - name: commit_use_reference
        type: int
      - name: trailer_args
        type: struct strvec
      - name: mainline
        type: int
      - name: '*gpg_sign'
        type: char
      - name: default_msg_cleanup
        type: enum commit_msg_cleanup_mode
      - name: explicit_cleanup
        type: int
      - name: '*default_strategy'
        type: char
      - name: '*strategy'
        type: char
      - name: xopts
        type: struct strvec
      - name: '*reflog_action'
        type: char
      - name: squash_onto
        type: struct object_id
      - name: have_squash_onto
        type: int
      - name: '*revs'
        type: struct rev_info
      - name: '*ctx'
        type: struct replay_ctx
      item_type: struct
      name: replay_opts
      pos:
        line_end: 84
        line_start: 36
        source_file: /src/git/sequencer.h
    - fields:
      - name: command
        type: enum todo_command
      - name: '*commit'
        type: struct commit
      - name: flags
        type: unsigned int
      - name: arg_len
        type: int
      - name: offset_in_buf
        type: size_t
      item_type: struct
      name: todo_item
      pos:
        line_end: 128
        line_start: 121
        source_file: /src/git/sequencer.h
    - fields:
      - name: buf
        type: struct strbuf
      - name: '*items'
        type: struct todo_item
      - name: nr
        type: int
      - name: done_nr
        type: int
      item_type: struct
      name: todo_list
      pos:
        line_end: 135
        line_start: 130
        source_file: /src/git/sequencer.h
    typedefs: []
    union: []
- function_names:
  - ws_tab_width
  source_file: /src/git/ws.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS_BLANK_AT_EOL
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/ws.h
      type_or_value: (1<<6)
    - item_type: preproc_def
      name: WS_SPACE_BEFORE_TAB
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/ws.h
      type_or_value: (1<<7)
    - item_type: preproc_def
      name: WS_INDENT_WITH_NON_TAB
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/ws.h
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: WS_CR_AT_EOL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/ws.h
      type_or_value: (1<<9)
    - item_type: preproc_def
      name: WS_BLANK_AT_EOF
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/ws.h
      type_or_value: (1<<10)
    - item_type: preproc_def
      name: WS_TAB_IN_INDENT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/ws.h
      type_or_value: (1<<11)
    - item_type: preproc_def
      name: WS_INCOMPLETE_LINE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/ws.h
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: WS_TRAILING_SPACE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/ws.h
      type_or_value: (WS_BLANK_AT_EOL|WS_BLANK_AT_EOF)
    - item_type: preproc_def
      name: WS_DEFAULT_RULE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/ws.h
      type_or_value: (WS_TRAILING_SPACE|WS_SPACE_BEFORE_TAB|8)
    - item_type: preproc_def
      name: WS_TAB_WIDTH_MASK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/ws.h
      type_or_value: ((1<<6)-1)
    - item_type: preproc_def
      name: WS_RULE_MASK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/ws.h
      type_or_value: ((1<<16)-1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/copy.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COPY_READ_ERROR
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/copy.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: COPY_WRITE_ERROR
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/copy.h
      type_or_value: (-3)
    structs: []
    typedefs: []
    union: []
- function_names:
  - free_rerere_dirs
  - free_rerere_id
  - rerere_id_hex
  - fit_variant
  - assign_variant
  - rerere_path
  - is_rr_file
  - scan_rerere_dir
  - find_rerere_dir
  - has_rerere_resolution
  - new_rerere_id_hex
  - new_rerere_id
  - read_rr
  - write_rr
  - ferr_write
  - ferr_puts
  - rerere_io_putstr
  - rerere_io_putmem
  - rerere_file_getline
  - is_cmarker
  - rerere_strbuf_putconflict
  - handle_conflict
  - handle_path
  - handle_file
  - check_one_conflict
  - find_conflict
  - rerere_remaining
  - try_merge
  - merge
  - update_paths
  - remove_variant
  - do_rerere_one_path
  - do_plain_rerere
  - git_rerere_config
  - GIT_PATH_FUNC
  - setup_rerere
  - repo_rerere
  - rerere_mem_getline
  - handle_cache
  - rerere_forget_one_path
  - rerere_forget
  - rerere_created_at
  - rerere_last_used_at
  - unlink_rr_item
  - prune_one
  - is_rr_cache_dirname
  - rerere_gc
  - rerere_clear
  source_file: /src/git/rerere.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RESOLVED
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/rerere.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PUNTED
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/rerere.c
      type_or_value: '1'
    - item_type: preproc_def
      name: THREE_STAGED
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/rerere.c
      type_or_value: '2'
    - item_type: preproc_def
      name: RR_HAS_POSTIMAGE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/rerere.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RR_HAS_PREIMAGE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/rerere.c
      type_or_value: '2'
    structs:
    - fields:
      - name: status_alloc
        type: int
      - name: '*status'
        type: unsigned char
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: rerere_dir
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/git/rerere.c
    - fields:
      - name: (*getline)(struct strbuf *, struct rerere_io *)
        type: int
      - name: '*output'
        type: FILE
      - name: wrerror
        type: int
      item_type: struct
      name: rerere_io
      pos:
        line_end: 289
        line_start: 284
        source_file: /src/git/rerere.c
    - fields:
      - name: io
        type: struct rerere_io
      - name: '*input'
        type: FILE
      item_type: struct
      name: rerere_io_file
      pos:
        line_end: 322
        line_start: 319
        source_file: /src/git/rerere.c
    - fields:
      - name: io
        type: struct rerere_io
      - name: input
        type: struct strbuf
      item_type: struct
      name: rerere_io_mem
      pos:
        line_end: 946
        line_start: 943
        source_file: /src/git/rerere.c
    typedefs: []
    union: []
- function_names:
  - xml_entities
  - curl_setup_http_get
  - curl_setup_http
  - get_dav_token_headers
  - process_response
  - start_fetch_loose
  - start_mkcol
  - start_fetch_packed
  - start_put
  - start_move
  - refresh_lock
  - check_locks
  - release_request
  - finish_request
  - fill_active_slot
  - add_fetch_request
  - add_send_request
  - fetch_indices
  - one_remote_object
  - handle_lockprop_ctx
  - handle_new_lock_ctx
  - xml_start_tag
  - xml_end_tag
  - xml_cdata
  - lock_remote
  - unlock_remote
  - remove_locks
  - remove_locks_on_signal
  - get_oid_hex_from_objpath
  - process_ls_object
  - process_ls_ref
  - handle_remote_ls_ctx
  - remote_ls
  - get_remote_object_list
  - locking_available
  - add_one_object
  - process_blob
  - process_tree
  - get_delta
  - update_remote
  - one_remote_ref
  - get_dav_remote_heads
  - add_remote_info_ref
  - update_remote_info_refs
  - remote_exists
  - fetch_symref
  - verify_merge_base
  - delete_remote_branch
  - run_request_queue
  - cmd_main
  source_file: /src/git/http-push.c
  types:
    enum:
    - enumerators:
      - name: XML_STATUS_OK
        value: '1'
      - name: XML_STATUS_ERROR
        value: '0'
      item_type: enum
      name: XML_Status
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/git/http-push.c
    - enumerators:
      - name: NEED_FETCH
      - name: RUN_FETCH_LOOSE
      - name: RUN_MKCOL
      - name: RUN_FETCH_PACKED
      - name: NEED_PUSH
      - name: RUN_PUT
      - name: RUN_MOVE
      - name: ABORTED
      - name: COMPLETE
      item_type: enum
      name: transfer_state
      pos:
        line_end: 122
        line_start: 112
        source_file: /src/git/http-push.c
    - enumerators:
      - name: DAV_HEADER_IF
        value: (1u << 0)
      - name: DAV_HEADER_TIMEOUT
        value: (1u << 2)
      - name: DAV_HEADER_LOCK
        value: (1u << 1)
      item_type: enum
      name: dav_header_flag
      pos:
        line_end: 185
        line_start: 181
        source_file: /src/git/http-push.c
    preproc_defs:
    - item_type: preproc_def
      name: XML_STATUS_OK
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/http-push.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_STATUS_ERROR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/http-push.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PREV_BUF_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/http-push.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: DAV_LOCK
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/http-push.c
      type_or_value: '"LOCK"'
    - item_type: preproc_def
      name: DAV_MKCOL
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/http-push.c
      type_or_value: '"MKCOL"'
    - item_type: preproc_def
      name: DAV_MOVE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/http-push.c
      type_or_value: '"MOVE"'
    - item_type: preproc_def
      name: DAV_PROPFIND
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/git/http-push.c
      type_or_value: '"PROPFIND"'
    - item_type: preproc_def
      name: DAV_PUT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/git/http-push.c
      type_or_value: '"PUT"'
    - item_type: preproc_def
      name: DAV_UNLOCK
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/http-push.c
      type_or_value: '"UNLOCK"'
    - item_type: preproc_def
      name: DAV_DELETE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/http-push.c
      type_or_value: '"DELETE"'
    - item_type: preproc_def
      name: DAV_PROP_LOCKWR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/http-push.c
      type_or_value: (1u << 0)
    - item_type: preproc_def
      name: DAV_PROP_LOCKEX
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/http-push.c
      type_or_value: (1u << 1)
    - item_type: preproc_def
      name: DAV_LOCK_OK
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/git/http-push.c
      type_or_value: (1u << 2)
    - item_type: preproc_def
      name: DAV_CTX_LOCKENTRY
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/http-push.c
      type_or_value: '".multistatus.response.propstat.prop.supportedlock.lockentry"'
    - item_type: preproc_def
      name: DAV_CTX_LOCKTYPE_WRITE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/git/http-push.c
      type_or_value: '".multistatus.response.propstat.prop.supportedlock.lockentry.locktype.write"'
    - item_type: preproc_def
      name: DAV_CTX_LOCKTYPE_EXCLUSIVE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/git/http-push.c
      type_or_value: '".multistatus.response.propstat.prop.supportedlock.lockentry.lockscope.exclusive"'
    - item_type: preproc_def
      name: DAV_ACTIVELOCK_OWNER
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/git/http-push.c
      type_or_value: '".prop.lockdiscovery.activelock.owner.href"'
    - item_type: preproc_def
      name: DAV_ACTIVELOCK_TIMEOUT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/git/http-push.c
      type_or_value: '".prop.lockdiscovery.activelock.timeout"'
    - item_type: preproc_def
      name: DAV_ACTIVELOCK_TOKEN
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/git/http-push.c
      type_or_value: '".prop.lockdiscovery.activelock.locktoken.href"'
    - item_type: preproc_def
      name: DAV_PROPFIND_RESP
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/git/http-push.c
      type_or_value: '".multistatus.response"'
    - item_type: preproc_def
      name: DAV_PROPFIND_NAME
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/git/http-push.c
      type_or_value: '".multistatus.response.href"'
    - item_type: preproc_def
      name: DAV_PROPFIND_COLLECTION
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/git/http-push.c
      type_or_value: '".multistatus.response.propstat.prop.resourcetype.collection"'
    - item_type: preproc_def
      name: PROPFIND_SUPPORTEDLOCK_REQUEST
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/git/http-push.c
      type_or_value: '"<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<D:propfind xmlns:D=\"DAV:\">\n<D:prop
        xmlns:R=\"%s\">\n<D:supportedlock/>\n</D:prop>\n</D:propfind>"'
    - item_type: preproc_def
      name: PROPFIND_ALL_REQUEST
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/git/http-push.c
      type_or_value: '"<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<D:propfind xmlns:D=\"DAV:\">\n<D:allprop/>\n</D:propfind>"'
    - item_type: preproc_def
      name: LOCK_REQUEST
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/git/http-push.c
      type_or_value: '"<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<D:lockinfo xmlns:D=\"DAV:\">\n<D:lockscope><D:exclusive/></D:lockscope>\n<D:locktype><D:write/></D:locktype>\n<D:owner>\n<D:href>mailto:%s</D:href>\n</D:owner>\n</D:lockinfo>"'
    - item_type: preproc_def
      name: LOCK_TIME
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/git/http-push.c
      type_or_value: '600'
    - item_type: preproc_def
      name: LOCK_REFRESH
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/git/http-push.c
      type_or_value: '30'
    - item_type: preproc_def
      name: LOCAL
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/git/http-push.c
      type_or_value: (1u<<11)
    - item_type: preproc_def
      name: REMOTE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/git/http-push.c
      type_or_value: (1u<<12)
    - item_type: preproc_def
      name: FETCHING
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/git/http-push.c
      type_or_value: (1u<<13)
    - item_type: preproc_def
      name: PUSHING
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/git/http-push.c
      type_or_value: (1u<<14)
    - item_type: preproc_def
      name: MAXDEPTH
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/git/http-push.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PROCESS_FILES
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/git/http-push.c
      type_or_value: (1u << 0)
    - item_type: preproc_def
      name: PROCESS_DIRS
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/git/http-push.c
      type_or_value: (1u << 1)
    - item_type: preproc_def
      name: RECURSIVE
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/git/http-push.c
      type_or_value: (1u << 2)
    - item_type: preproc_def
      name: IS_DIR
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/git/http-push.c
      type_or_value: (1u << 0)
    structs:
    - fields:
      - name: '*url'
        type: char
      - name: '*path'
        type: char
      - name: path_len
        type: int
      - name: has_info_refs
        type: int
      - name: can_update_info_refs
        type: int
      - name: has_info_packs
        type: int
      - name: packs
        type: struct packfile_list
      - name: '*locks'
        type: struct remote_lock
      item_type: struct
      name: repo
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/git/http-push.c
    - fields:
      - name: '*obj'
        type: struct object
      - name: '*target'
        type: struct packed_git
      - name: '*url'
        type: char
      - name: '*dest'
        type: char
      - name: '*lock'
        type: struct remote_lock
      - name: '*headers'
        type: struct curl_slist
      - name: buffer
        type: struct buffer
      - name: state
        type: enum transfer_state
      - name: curl_result
        type: CURLcode
      - name: errorstr[CURL_ERROR_SIZE]
        type: char
      - name: http_code
        type: long
      - name: '*userData'
        type: void
      - name: '*slot'
        type: struct active_request_slot
      - name: '*next'
        type: struct transfer_request
      item_type: struct
      name: transfer_request
      pos:
        line_end: 139
        line_start: 124
        source_file: /src/git/http-push.c
    - fields:
      - name: '*name'
        type: char
      - name: len
        type: int
      - name: '*cdata'
        type: char
      - name: (*userFunc)(struct xml_ctx *ctx, int tag_closed)
        type: void
      - name: '*userData'
        type: void
      item_type: struct
      name: xml_ctx
      pos:
        line_end: 149
        line_start: 143
        source_file: /src/git/http-push.c
    - fields:
      - name: '*url'
        type: char
      - name: '*owner'
        type: char
      - name: '*token'
        type: char
      - name: tmpfile_suffix[GIT_MAX_HEXSZ + 1]
        type: char
      - name: start_time
        type: time_t
      - name: timeout
        type: long
      - name: refreshing
        type: int
      - name: '*next'
        type: struct remote_lock
      item_type: struct
      name: remote_lock
      pos:
        line_end: 160
        line_start: 151
        source_file: /src/git/http-push.c
    - fields:
      - name: '*path'
        type: char
      - name: (*userFunc)(struct remote_ls_ctx *ls)
        type: void
      - name: '*userData'
        type: void
      - name: flags
        type: int
      - name: '*dentry_name'
        type: char
      - name: dentry_flags
        type: int
      - name: '*parent'
        type: struct remote_ls_ctx
      item_type: struct
      name: remote_ls_ctx
      pos:
        line_end: 178
        line_start: 170
        source_file: /src/git/http-push.c
    typedefs: []
    union: []
- function_names:
  - strmap_get_size
  - strmap_empty
  - strmap_for_each_entry
  - strintmap_for_each_entry
  - strintmap_init
  - strintmap_init_with_options
  - strintmap_clear
  - strintmap_partial_clear
  - strintmap_contains
  - strintmap_remove
  - strintmap_empty
  - strintmap_get_size
  - strintmap_get
  - strintmap_set
  - strset_for_each_entry
  - strset_init
  - strset_init_with_options
  - strset_clear
  - strset_partial_clear
  - strset_contains
  - strset_remove
  - strset_empty
  - strset_get_size
  source_file: /src/git/strmap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRMAP_INIT
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/git/strmap.h
      type_or_value: "{ \\\n\t\t\t.map = HASHMAP_INIT(cmp_strmap_entry, NULL),  \\\n\t\t\t.strdup_strings
        = 1,                          \\\n\t\t    }"
    - item_type: preproc_def
      name: STRINTMAP_INIT
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/git/strmap.h
      type_or_value: "{ \\\n\t\t\t.map = STRMAP_INIT,   \\\n\t\t\t.default_value =
        0,   \\\n\t\t       }"
    - item_type: preproc_def
      name: STRSET_INIT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/strmap.h
      type_or_value: '{ .map = STRMAP_INIT }'
    structs:
    - fields:
      - name: map
        type: struct hashmap
      - name: '*pool'
        type: struct mem_pool
      - name: strdup_strings
        type: unsigned int
      item_type: struct
      name: strmap
      pos:
        line_end: 10
        line_start: 6
        source_file: /src/git/strmap.h
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*key'
        type: char
      - name: '*value'
        type: void
      item_type: struct
      name: strmap_entry
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/git/strmap.h
    - fields:
      - name: map
        type: struct strmap
      - name: default_value
        type: int
      item_type: struct
      name: strintmap
      pos:
        line_end: 130
        line_start: 127
        source_file: /src/git/strmap.h
    - fields:
      - name: map
        type: struct strmap
      item_type: struct
      name: strset
      pos:
        line_end: 217
        line_start: 215
        source_file: /src/git/strmap.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/diff-merges.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - odb_mkstemp
  - odb_is_source_usable
  - parse_alternates
  - odb_add_alternate_recursively
  - odb_add_to_alternates_file
  - odb_add_to_alternates_memory
  - odb_set_temporary_primary_source
  - odb_restore_primary_source
  - compute_alternate_path
  - odb_find_source
  - odb_find_source_or_die
  - odb_add_submodule_source_by_path
  - fill_alternate_refs_command
  - read_alternate_refs
  - refs_from_alternate_cb
  - odb_for_each_alternate_ref
  - odb_for_each_alternate
  - odb_prepare_alternates
  - odb_has_alternates
  - enable_obj_read_lock
  - disable_obj_read_lock
  - register_all_submodule_sources
  - do_oid_object_info_extended
  - oid_object_info_convert
  - odb_read_object_info_extended
  - odb_read_object_info
  - odb_pretend_object
  - odb_read_object
  - odb_read_object_peeled
  - odb_has_object
  - odb_freshen_object
  - odb_for_each_object_ext
  - odb_for_each_object
  - odb_count_objects
  - msb
  - odb_find_abbrev_len
  - odb_assert_oid_type
  - odb_write_object_ext
  - odb_write_object_stream
  - odb_new
  - odb_close
  - odb_free_sources
  - odb_free
  - odb_reprepare
  source_file: /src/git/odb.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*fn'
        type: odb_for_each_alternate_ref_fn
      - name: '*payload'
        type: void
      item_type: struct
      name: alternate_refs_data
      pos:
        line_end: 434
        line_start: 431
        source_file: /src/git/odb.c
    typedefs: []
    union: []
- function_names:
  - cmd_main
  - find_variables
  - print_variable
  - print_variables
  - string_list_init
  - string_list_append
  - cmp_string
  - string_list_sort
  - sorted_string_list_member
  - note_variable
  - note_variables
  - do_getc
  - do_ungetc
  - subst_from_stdin
  source_file: /src/git/sh-i18n--envsubst.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**item'
        type: char
      - name: nitems
        type: size_t
      - name: nitems_max
        type: size_t
      item_type: struct
      name: string_list_ty
      pos:
        line_end: 193
        line_start: 188
        source_file: /src/git/sh-i18n--envsubst.c
    typedefs:
    - item_type: typedef
      name: string_list_ty
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/git/sh-i18n--envsubst.c
      type: string_list_ty
    union: []
- function_names: []
  source_file: /src/git/exec-cmd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERRORMSG
  - super_prefixed
  - setup_unpack_trees_porcelain
  - clear_unpack_trees_porcelain
  - do_add_entry
  - add_entry
  - add_rejected_path
  - display_error_msgs
  - display_warning_msgs
  - check_submodule_move_head
  - load_gitmodules_file
  - get_progress
  - setup_collided_checkout_detection
  - report_collided_checkout
  - must_checkout
  - check_updates
  - apply_sparse_checkout
  - warn_conflicted_path
  - call_unpack_fn
  - mark_ce_used
  - mark_all_ce_unused
  - locate_in_src_index
  - mark_ce_used_same_name
  - next_cache_entry
  - add_same_unmerged
  - unpack_index_entry
  - restore_cache_bottom
  - switch_cache_bottom
  - are_same_oid
  - all_trees_same_as_cache_tree
  - index_pos_by_traverse_info
  - traverse_by_cache_tree
  - traverse_trees_recursive
  - do_compare_entry_piecewise
  - do_compare_entry
  - compare_entry
  - ce_in_traverse_path
  - create_ce_entry
  - entry_is_new_sparse_dir
  - unpack_single_entry
  - unpack_failed
  - find_cache_pos
  - sparse_dir_matches_path
  - find_cache_entry
  - debug_path
  - debug_name_entry
  - debug_unpack_callback
  - is_sparse_directory_entry
  - unpack_sparse_callback
  - unpack_callback
  - clear_ce_flags_dir
  - clear_ce_flags_1
  - clear_ce_flags
  - mark_new_skip_worktree
  - populate_from_existing_patterns
  - update_sparsity_for_prefix
  - unpack_trees
  - update_sparsity
  - reject_merge
  - same
  - verify_uptodate_1
  - verify_uptodate
  - verify_uptodate_sparse
  - invalidate_ce_path
  - verify_clean_submodule
  - verify_clean_subdirectory
  - icase_exists
  - check_ok_to_remove
  - verify_absent_1
  - verify_absent
  - verify_absent_if_directory
  - verify_absent_sparse
  - merged_entry
  - merged_sparse_dir
  - deleted_entry
  - keep_entry
  - show_stage_entry
  - threeway_merge
  - twoway_merge
  - bind_merge
  - oneway_merge
  - stash_worktree_untracked_merge
  source_file: /src/git/unpack-trees.c
  types:
    enum:
    - enumerators:
      - name: COMPLETELY_ABSENT
      - name: ABSENT_ANY_DIRECTORY
      item_type: enum
      name: absent_checking_type
      pos:
        line_end: 2413
        line_start: 2410
        source_file: /src/git/unpack-trees.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decorate_get_color
  - parse_decorate_color_config
  - decorate_get_color_opt
  - add_name_decoration
  - get_name_decoration
  - match_ref_pattern
  - ref_filter_match
  - for_each_string_list_item
  - for_each_string_list_item
  - for_each_string_list_item
  - add_ref_decoration
  - add_graft_decoration
  - load_ref_decorations
  - load_branch_decorations
  - show_parents
  - show_children
  - current_pointed_by_HEAD
  - show_name
  - format_decorations
  - show_decorations
  - fmt_output_subject
  - fmt_output_commit
  - fmt_output_email_subject
  - log_write_email_headers
  - show_sig_lines
  - show_signature
  - which_parent
  - is_common_merge
  - show_one_mergetag
  - show_mergetag
  - next_commentary_block
  - show_diff_of_diff
  - show_log
  - log_tree_diff_flush
  - do_diff_combined
  - setup_additional_headers
  - cleanup_additional_headers
  - do_remerge_diff
  - log_tree_diff
  - log_tree_commit
  source_file: /src/git/log-tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - batch_fsync_enabled
  source_file: /src/git/write-or-die.h
  types:
    enum:
    - enumerators:
      - name: FSYNC_COMPONENT_NONE
      - name: FSYNC_COMPONENT_COMMIT_GRAPH
        value: 1 << 3
      - name: FSYNC_COMPONENT_PACK
        value: 1 << 1
      - name: FSYNC_COMPONENT_PACK_METADATA
        value: 1 << 2
      - name: FSYNC_COMPONENT_LOOSE_OBJECT
        value: 1 << 0
      - name: FSYNC_COMPONENT_INDEX
        value: 1 << 4
      - name: FSYNC_COMPONENT_REFERENCE
        value: 1 << 5
      - name: FSYNC_COMPONENT_OBJECT_MAP
        value: 1 << 6
      item_type: enum
      name: fsync_component
      pos:
        line_end: 24
        line_start: 15
        source_file: /src/git/write-or-die.h
    - enumerators:
      - name: FSYNC_METHOD_FSYNC
      - name: FSYNC_METHOD_WRITEOUT_ONLY
      - name: FSYNC_METHOD_BATCH
      item_type: enum
      name: fsync_method
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/git/write-or-die.h
    preproc_defs:
    - item_type: preproc_def
      name: FSYNC_COMPONENTS_OBJECTS
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/git/write-or-die.h
      type_or_value: "(FSYNC_COMPONENT_LOOSE_OBJECT | \\\n\t\t\t\t  FSYNC_COMPONENT_PACK)"
    - item_type: preproc_def
      name: FSYNC_COMPONENTS_DERIVED_METADATA
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/git/write-or-die.h
      type_or_value: "(FSYNC_COMPONENT_PACK_METADATA | \\\n\t\t\t\t\t   FSYNC_COMPONENT_COMMIT_GRAPH)"
    - item_type: preproc_def
      name: FSYNC_COMPONENTS_DEFAULT
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/git/write-or-die.h
      type_or_value: "((FSYNC_COMPONENTS_OBJECTS | \\\n\t\t\t\t   FSYNC_COMPONENTS_DERIVED_METADATA)
        & \\\n\t\t\t\t  ~FSYNC_COMPONENT_LOOSE_OBJECT)"
    - item_type: preproc_def
      name: FSYNC_COMPONENTS_COMMITTED
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/git/write-or-die.h
      type_or_value: "(FSYNC_COMPONENTS_OBJECTS | \\\n\t\t\t\t    FSYNC_COMPONENT_REFERENCE)"
    - item_type: preproc_def
      name: FSYNC_COMPONENTS_ADDED
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/git/write-or-die.h
      type_or_value: "(FSYNC_COMPONENTS_COMMITTED | \\\n\t\t\t\tFSYNC_COMPONENT_INDEX)"
    - item_type: preproc_def
      name: FSYNC_COMPONENTS_ALL
      pos:
        line_end: 49
        line_start: 42
        source_file: /src/git/write-or-die.h
      type_or_value: "(FSYNC_COMPONENT_LOOSE_OBJECT | \\\n\t\t\t      FSYNC_COMPONENT_PACK
        | \\\n\t\t\t      FSYNC_COMPONENT_PACK_METADATA | \\\n\t\t\t      FSYNC_COMPONENT_COMMIT_GRAPH
        | \\\n\t\t\t      FSYNC_COMPONENT_INDEX | \\\n\t\t\t      FSYNC_COMPONENT_REFERENCE
        | \\\n\t\t\t      FSYNC_COMPONENT_OBJECT_MAP)"
    - item_type: preproc_def
      name: FSYNC_COMPONENTS_PLATFORM_DEFAULT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/write-or-die.h
      type_or_value: FSYNC_COMPONENTS_DEFAULT
    structs: []
    typedefs: []
    union: []
- function_names:
  - fetch_objects
  - promisor_remote_new
  - promisor_remote_lookup
  - promisor_remote_move_to_tail
  - promisor_remote_config
  - promisor_remote_init
  - promisor_remote_clear
  - repo_promisor_remote_reinit
  - repo_promisor_remote_find
  - repo_has_promisor_remote
  - repo_has_accepted_promisor_remote
  - remove_fetched_oids
  - try_promisor_remotes
  - promisor_remote_get_direct
  - allow_unsanitized
  - is_known_field
  - is_valid_field
  - fields_from_config
  - initialize_fields_list
  - fields_sent
  - fields_checked
  - fields_stored
  - promisor_info_free
  - promisor_info_list_clear
  - set_one_field
  - set_fields
  - for_each_string_list_item
  - promisor_config_info_list
  - promisor_remote_info
  - match_field_against_config
  - all_fields_match
  - for_each_string_list_item
  - for_each_string_list_item
  - has_control_char
  - should_accept_remote
  - skip_field_name_prefix
  - parse_one_advertised_remote
  - store_one_field
  - valid_filter
  - valid_token
  - store_info_new
  - store_info_free
  - promisor_store_advertised_fields
  - accept_from_server
  - filter_promisor_remote
  - for_each_string_list_item
  - promisor_remote_reply
  - mark_promisor_remotes_as_accepted
  - promisor_remote_construct_filter
  source_file: /src/git/promisor-remote.c
  types:
    enum:
    - enumerators:
      - name: ACCEPT_NONE
        value: '0'
      - name: ACCEPT_KNOWN_URL
      - name: ACCEPT_KNOWN_NAME
      - name: ACCEPT_ALL
      item_type: enum
      name: accept_promisor
      pos:
        line_end: 575
        line_start: 570
        source_file: /src/git/promisor-remote.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*promisors'
        type: struct promisor_remote
      - name: '**promisors_tail'
        type: struct promisor_remote
      item_type: struct
      name: promisor_remote_config
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/git/promisor-remote.c
    - fields:
      - name: '*name'
        type: char
      - name: '*url'
        type: char
      - name: '*filter'
        type: char
      - name: '*token'
        type: char
      item_type: struct
      name: promisor_info
      pos:
        line_end: 446
        line_start: 441
        source_file: /src/git/promisor-remote.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: config_info
        type: struct string_list
      - name: store_filter
        type: bool
      - name: store_token
        type: bool
      item_type: struct
      name: store_info
      pos:
        line_end: 799
        line_start: 794
        source_file: /src/git/promisor-remote.c
    typedefs: []
    union: []
- function_names:
  - exclude_helpers_from_list
  - match_token
  - list_cmds
  - commit_pager_choice
  - setup_auto_pager
  - print_system_path
  - handle_options
  - handle_alias
  - run_builtin
  - get_builtin
  - is_builtin
  - list_builtins
  - load_builtin_commands
  - strip_extension
  - handle_builtin
  - execv_dashed_external
  - is_deprecated_command
  - run_argv
  - cmd_main
  source_file: /src/git/git.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RUN_SETUP
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/git.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: RUN_SETUP_GENTLY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/git.c
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: USE_PAGER
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/git.c
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: NEED_WORK_TREE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/git.c
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: DELAY_PAGER_CONFIG
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/git.c
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: NO_PARSEOPT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/git.c
      type_or_value: '(1<<5) '
    - item_type: preproc_def
      name: DEPRECATED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/git.c
      type_or_value: (1<<6)
    structs:
    - fields:
      - name: '*cmd'
        type: char
      - name: (*fn)(int, const char **, const char *, struct repository *)
        type: int
      - name: option
        type: unsigned int
      item_type: struct
      name: cmd_struct
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/git/git.c
    typedefs: []
    union: []
- function_names:
  - restore_sigpipe_to_default
  - init_git
  source_file: /src/git/common-init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/oidtree.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: tree
        type: struct cb_tree
      - name: mem_pool
        type: struct mem_pool
      item_type: struct
      name: oidtree
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/git/oidtree.h
    typedefs:
    - item_type: typedef
      name: "(*oidtree_each_cb)(const struct object_id *oid,\n\t\t\t       void *node_data,\n\t\t\t
        \      void *cb_data)"
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/git/oidtree.h
      type: int
    union: []
- function_names: []
  source_file: /src/git/repository.h
  types:
    enum:
    - enumerators:
      - name: REF_STORAGE_FORMAT_UNKNOWN
      - name: REF_STORAGE_FORMAT_FILES
      - name: REF_STORAGE_FORMAT_REFTABLE
      item_type: enum
      name: ref_storage_format
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/git/repository.h
    preproc_defs:
    - item_type: preproc_def
      name: REF_STORAGE_FORMAT_DEFAULT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/repository.h
      type_or_value: REF_STORAGE_FORMAT_REFTABLE
    - item_type: preproc_def
      name: REF_STORAGE_FORMAT_DEFAULT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/repository.h
      type_or_value: REF_STORAGE_FORMAT_FILES
    structs:
    - fields:
      - name: '*squash_msg'
        type: char
      - name: '*merge_msg'
        type: char
      - name: '*merge_rr'
        type: char
      - name: '*merge_mode'
        type: char
      - name: '*merge_head'
        type: char
      - name: '*fetch_head'
        type: char
      - name: '*shallow'
        type: char
      item_type: struct
      name: repo_path_cache
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/git/repository.h
    - fields:
      - name: '*gitdir'
        type: char
      - name: '*commondir'
        type: char
      - name: '*objects'
        type: struct object_database
      - name: '*parsed_objects'
        type: struct parsed_object_pool
      - name: '*refs_private'
        type: struct ref_store
      - name: disable_ref_updates
        type: bool
      - name: submodule_ref_stores
        type: struct strmap
      - name: worktree_ref_stores
        type: struct strmap
      - name: cached_paths
        type: struct repo_path_cache
      - name: '*graft_file'
        type: char
      - name: '*index_file'
        type: char
      - name: '*worktree'
        type: char
      - name: worktree_initialized
        type: bool
      - name: worktree_config_is_bogus
        type: bool
      - name: '*submodule_prefix'
        type: char
      - name: settings
        type: struct repo_settings
      - name: '*config'
        type: struct config_set
      - name: '*submodule_cache'
        type: struct submodule_cache
      - name: '*index'
        type: struct index_state
      - name: '*remote_state'
        type: struct remote_state
      - name: '*hash_algo'
        type: struct git_hash_algo
      - name: '*compat_hash_algo'
        type: struct git_hash_algo
      - name: config_values_private_
        type: struct repo_config_values
      - name: ref_storage_format
        type: enum ref_storage_format
      - name: '*ref_storage_payload'
        type: char
      - name: trace2_repo_id
        type: int
      - name: commit_graph_disabled
        type: int
      - name: '*hook_config_cache'
        type: struct strmap
      - name: hook_jobs
        type: unsigned int
      - name: event_jobs
        type: struct strmap
      - name: disabled_events
        type: struct string_list
      - name: '*repository_format_partial_clone'
        type: char
      - name: '*promisor_remote_config'
        type: struct promisor_remote_config
      - name: repository_format_worktree_config
        type: int
      - name: repository_format_relative_worktrees
        type: int
      - name: repository_format_precious_objects
        type: int
      - name: repository_format_submodule_path_cfg
        type: int
      - name: different_commondir
        type: unsigned
      - name: check_deprecated_config
        type: bool
      - name: initialized
        type: bool
      item_type: struct
      name: repository
      pos:
        line_end: 204
        line_start: 40
        source_file: /src/git/repository.h
    - fields:
      - name: '*commondir'
        type: char
      - name: '*object_dir'
        type: char
      - name: '*graft_file'
        type: char
      - name: '*index_file'
        type: char
      - name: '*alternate_db'
        type: char
      - name: disable_ref_updates
        type: bool
      - name: skip_initializing_odb
        type: bool
      item_type: struct
      name: set_gitdir_args
      pos:
        line_end: 229
        line_start: 221
        source_file: /src/git/repository.h
    typedefs: []
    union: []
- function_names:
  - find_tracked_branch
  - should_setup_rebase
  - install_branch_config_multiple_remotes
  - for_each_string_list_item
  - install_branch_config
  - inherit_tracking
  - setup_tracking
  - read_branch_desc
  - validate_branchname
  - prepare_checked_out_branches
  - branch_checked_out
  - validate_new_branchname
  - check_tracking_branch
  - validate_remote_tracking_branch
  - dwim_branch_start
  - create_branch
  - dwim_and_setup_tracking
  - submodule_create_branch
  - create_branches_recursively
  - remove_merge_branch_state
  - remove_branch_state
  - die_if_checked_out
  source_file: /src/git/branch.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: spec
        type: struct refspec_item
      - name: '*srcs'
        type: struct string_list
      - name: '*remote'
        type: char
      - name: matches
        type: int
      item_type: struct
      name: tracking
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/git/branch.c
    - fields:
      - name: '*tracking'
        type: struct tracking
      - name: ambiguous_remotes
        type: struct string_list
      item_type: struct
      name: find_tracked_branch_cb
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/git/branch.c
    typedefs: []
    union: []
- function_names:
  - CAP
  - ssl_socket_perror
  - socket_perror
  - ssl_socket_connect
  - host_matches
  - verify_hostname
  - ssl_socket_connect
  - socket_read
  - socket_write
  - socket_shutdown
  - buffer_gets
  - imap_info
  - imap_warn
  - next_arg
  - issue_imap_cmd
  - imap_exec
  - imap_exec_m
  - skip_imap_list_l
  - skip_list
  - parse_capability
  - parse_response_code
  - get_cmd_result
  - imap_close_server
  - imap_close_store
  - hexchar
  - ENCODED_SIZE
  - plain_base64
  - cram
  - oauthbearer_base64
  - xoauth2_base64
  - auth_plain
  - auth_cram_md5
  - auth_oauthbearer
  - auth_xoauth2
  - server_fill_credential
  - try_auth_method
  - imap_open_store
  - lf_to_crlf
  - imap_store_msg
  - wrap_in_html
  - count_messages
  - split_msg
  - git_imap_config
  - append_msgs_to_imap
  - list_imap_folders
  - setup_curl
  - curl_append_msgs_to_imap
  - curl_list_imap_folders
  - cmd_main
  source_file: /src/git/imap-send.c
  types:
    enum:
    - enumerators:
      - name: NOLOGIN
        value: '0'
      - name: STARTTLS
      - name: UIDPLUS
      - name: NAMESPACE
      - name: LITERALPLUS
      - name: AUTH_PLAIN
      - name: AUTH_CRAM_MD5
      - name: AUTH_OAUTHBEARER
      - name: AUTH_XOAUTH2
      item_type: enum
      name: CAPABILITY
      pos:
        line_end: 155
        line_start: 145
        source_file: /src/git/imap-send.c
    preproc_defs:
    - item_type: preproc_def
      name: USE_CURL_DEFAULT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/imap-send.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_CURL_DEFAULT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/imap-send.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DRV_OK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/git/imap-send.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DRV_MSG_BAD
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/imap-send.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: DRV_BOX_BAD
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/git/imap-send.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: DRV_STORE_BAD
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/git/imap-send.c
      type_or_value: '-3'
    - item_type: preproc_def
      name: RESP_OK
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/git/imap-send.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RESP_NO
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/git/imap-send.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RESP_BAD
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/git/imap-send.c
      type_or_value: '2'
    - item_type: preproc_def
      name: auth_plain
      pos:
        line_end: 1087
        line_start: 1086
        source_file: /src/git/imap-send.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: auth_cram_md5
      pos:
        line_end: 1088
        line_start: 1087
        source_file: /src/git/imap-send.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: auth_oauthbearer
      pos:
        line_end: 1089
        line_start: 1088
        source_file: /src/git/imap-send.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: auth_xoauth2
      pos:
        line_end: 1090
        line_start: 1089
        source_file: /src/git/imap-send.c
      type_or_value: 'NULL'
    structs:
    - fields:
      - name: '*tunnel'
        type: char
      - name: '*host'
        type: char
      - name: port
        type: int
      - name: '*folder'
        type: char
      - name: '*user'
        type: char
      - name: '*pass'
        type: char
      - name: use_ssl
        type: int
      - name: ssl_verify
        type: int
      - name: use_html
        type: int
      - name: '*auth_method'
        type: char
      item_type: struct
      name: imap_server_conf
      pos:
        line_end: 91
        line_start: 80
        source_file: /src/git/imap-send.c
    - fields:
      - name: fd[2]
        type: int
      item_type: struct
      name: imap_socket
      pos:
        line_end: 100
        line_start: 93
        source_file: /src/git/imap-send.c
    - fields:
      - name: sock
        type: struct imap_socket
      - name: bytes
        type: int
      - name: offset
        type: int
      - name: buf[1024]
        type: char
      item_type: struct
      name: imap_buffer
      pos:
        line_end: 107
        line_start: 102
        source_file: /src/git/imap-send.c
    - fields:
      - name: uidnext
        type: int
      - name: caps
        type: unsigned
      - name: nexttag
        type: int
      - name: '*in_progress'
        type: struct imap_cmd
      - name: buf
        type: struct imap_buffer
      item_type: struct
      name: imap
      pos:
        line_end: 118
        line_start: 111
        source_file: /src/git/imap-send.c
    - fields:
      - name: '*cfg'
        type: struct imap_server_conf
      - name: '*name'
        type: char
      - name: uidvalidity
        type: int
      - name: '*imap'
        type: struct imap
      - name: '*prefix'
        type: char
      item_type: struct
      name: imap_store
      pos:
        line_end: 127
        line_start: 120
        source_file: /src/git/imap-send.c
    - fields:
      - name: (*cont)(struct imap_store *ctx, const char *prompt)
        type: int
      - name: '*ctx'
        type: void
      - name: '*data'
        type: char
      - name: dlen
        type: int
      item_type: struct
      name: imap_cmd_cb
      pos:
        line_end: 134
        line_start: 129
        source_file: /src/git/imap-send.c
    - fields:
      - name: '*next'
        type: struct imap_cmd
      - name: cb
        type: struct imap_cmd_cb
      - name: '*cmd'
        type: char
      - name: tag
        type: int
      item_type: struct
      name: imap_cmd
      pos:
        line_end: 141
        line_start: 136
        source_file: /src/git/imap-send.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/commit-graph.h
  types:
    enum:
    - enumerators:
      - name: COMMIT_GRAPH_WRITE_APPEND
        value: (1 << 0)
      - name: COMMIT_GRAPH_WRITE_SPLIT
        value: (1 << 2)
      - name: COMMIT_GRAPH_WRITE_BLOOM_FILTERS
        value: (1 << 3)
      - name: COMMIT_GRAPH_NO_WRITE_BLOOM_FILTERS
        value: (1 << 4)
      - name: COMMIT_GRAPH_WRITE_PROGRESS
        value: (1 << 1)
      item_type: enum
      name: commit_graph_write_flags
      pos:
        line_end: 152
        line_start: 146
        source_file: /src/git/commit-graph.h
    - enumerators:
      - name: COMMIT_GRAPH_SPLIT_UNSPECIFIED
        value: '0'
      - name: COMMIT_GRAPH_SPLIT_MERGE_PROHIBITED
        value: '1'
      - name: COMMIT_GRAPH_SPLIT_REPLACE
        value: '2'
      item_type: enum
      name: commit_graph_split_flags
      pos:
        line_end: 158
        line_start: 154
        source_file: /src/git/commit-graph.h
    preproc_defs:
    - item_type: preproc_def
      name: GIT_TEST_COMMIT_GRAPH
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/commit-graph.h
      type_or_value: '"GIT_TEST_COMMIT_GRAPH"'
    - item_type: preproc_def
      name: GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/commit-graph.h
      type_or_value: '"GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE"'
    - item_type: preproc_def
      name: GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/commit-graph.h
      type_or_value: '"GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS"'
    - item_type: preproc_def
      name: GIT_COMMIT_GRAPH_PARANOIA
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/commit-graph.h
      type_or_value: '"GIT_COMMIT_GRAPH_PARANOIA"'
    - item_type: preproc_def
      name: COMMIT_GRAPH_VERIFY_SHALLOW
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/git/commit-graph.h
      type_or_value: (1 << 0)
    structs:
    - fields:
      - name: '*data'
        type: unsigned char
      - name: data_len
        type: size_t
      - name: '*hash_algo'
        type: struct git_hash_algo
      - name: num_chunks
        type: unsigned char
      - name: num_commits
        type: uint32_t
      - name: oid
        type: struct object_id
      - name: '*filename'
        type: char
      - name: '*odb_source'
        type: struct odb_source
      - name: num_commits_in_base
        type: uint32_t
      - name: read_generation_data
        type: unsigned int
      - name: '*base_graph'
        type: struct commit_graph
      - name: '*chunk_oid_fanout'
        type: uint32_t
      - name: '*chunk_oid_lookup'
        type: unsigned char
      - name: '*chunk_commit_data'
        type: unsigned char
      - name: '*chunk_generation_data'
        type: unsigned char
      - name: '*chunk_generation_data_overflow'
        type: unsigned char
      - name: chunk_generation_data_overflow_size
        type: size_t
      - name: '*chunk_extra_edges'
        type: unsigned char
      - name: chunk_extra_edges_size
        type: size_t
      - name: '*chunk_base_graphs'
        type: unsigned char
      - name: chunk_base_graphs_size
        type: size_t
      - name: '*chunk_bloom_indexes'
        type: unsigned char
      - name: '*chunk_bloom_data'
        type: unsigned char
      - name: chunk_bloom_data_size
        type: size_t
      - name: '*topo_levels'
        type: struct topo_level_slab
      - name: '*bloom_filter_settings'
        type: struct bloom_filter_settings
      item_type: struct
      name: commit_graph
      pos:
        line_end: 114
        line_start: 83
        source_file: /src/git/commit-graph.h
    - fields:
      - name: size_multiple
        type: int
      - name: max_commits
        type: int
      - name: expire_time
        type: timestamp_t
      - name: split_flags
        type: enum commit_graph_split_flags
      - name: max_new_filters
        type: int
      item_type: struct
      name: commit_graph_opts
      pos:
        line_end: 166
        line_start: 160
        source_file: /src/git/commit-graph.h
    - fields:
      - name: graph_pos
        type: uint32_t
      - name: generation
        type: timestamp_t
      item_type: struct
      name: commit_graph_data
      pos:
        line_end: 199
        line_start: 196
        source_file: /src/git/commit-graph.h
    typedefs: []
    union: []
- function_names:
  - pack_version_ok
  - pack_version_ok_native
  source_file: /src/git/pack.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACK_SIGNATURE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/pack.h
      type_or_value: "0x5041434b\t"
    - item_type: preproc_def
      name: PACK_VERSION
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/pack.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PACK_IDX_SIGNATURE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/pack.h
      type_or_value: "0xff744f63\t"
    - item_type: preproc_def
      name: WRITE_IDX_VERIFY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/pack.h
      type_or_value: '01 '
    - item_type: preproc_def
      name: WRITE_IDX_STRICT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/pack.h
      type_or_value: '02'
    - item_type: preproc_def
      name: WRITE_REV
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/pack.h
      type_or_value: '04'
    - item_type: preproc_def
      name: WRITE_REV_VERIFY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/pack.h
      type_or_value: '010'
    - item_type: preproc_def
      name: WRITE_MTIMES
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/git/pack.h
      type_or_value: '020'
    - item_type: preproc_def
      name: MAX_PACK_OBJECT_HEADER
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/git/pack.h
      type_or_value: '10'
    - item_type: preproc_def
      name: PH_ERROR_EOF
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/git/pack.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: PH_ERROR_PACK_SIGNATURE
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/git/pack.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: PH_ERROR_PROTOCOL
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/git/pack.h
      type_or_value: (-3)
    structs:
    - fields:
      - name: hdr_signature
        type: uint32_t
      - name: hdr_version
        type: uint32_t
      - name: hdr_entries
        type: uint32_t
      item_type: struct
      name: pack_header
      pos:
        line_end: 21
        line_start: 17
        source_file: /src/git/pack.h
    - fields:
      - name: flags
        type: unsigned
      - name: version
        type: uint32_t
      - name: off32_limit
        type: uint32_t
      - name: anomaly_alloc
        type: int
      - name: '*anomaly'
        type: uint32_t
      - name: delta_base_cache_limit
        type: size_t
      item_type: struct
      name: pack_idx_option
      pos:
        line_end: 63
        line_start: 42
        source_file: /src/git/pack.h
    - fields:
      - name: idx_signature
        type: uint32_t
      - name: idx_version
        type: uint32_t
      item_type: struct
      name: pack_idx_header
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/git/pack.h
    - fields:
      - name: oid
        type: struct object_id
      - name: crc32
        type: uint32_t
      - name: offset
        type: off_t
      item_type: struct
      name: pack_idx_entry
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/git/pack.h
    typedefs:
    - item_type: typedef
      name: "(*verify_fn)(const struct object_id *oid,\n\t\t\t enum object_type type,\n\t\t\t
        unsigned long size,\n\t\t\t void *buffer, int *eaten,\n\t\t\t void *fn_data)"
      pos:
        line_end: 91
        line_start: 87
        source_file: /src/git/pack.h
      type: int
    union: []
- function_names:
  - list_for_each_dir
  - after_or_end
  - token_len_without_separator
  - same_token
  - same_value
  - same_trailer
  - is_blank_line
  - strbuf_replace
  - free_trailer_item
  - free_arg_item
  - last_non_space_char
  - trailer_from_arg
  - add_arg_to_input_list
  - check_if_different
  - apply_command
  - apply_item_command
  - apply_arg_if_exists
  - apply_arg_if_missing
  - find_same_and_apply_arg
  - list_for_each_dir
  - process_trailers_lists
  - list_for_each_safe
  - trailer_set_where
  - trailer_set_if_exists
  - trailer_set_if_missing
  - duplicate_conf
  - get_conf_item
  - git_trailer_default_config
  - git_trailer_config
  - trailer_config_init
  - token_from_item
  - token_matches_item
  - find_separator
  - parse_trailer
  - add_trailer_item
  - add_arg_item
  - parse_trailers_from_config
  - parse_trailers_from_command_line_args
  - list_for_each
  - validate_trailer_args
  - next_line
  - last_line
  - find_end_of_log_message
  - find_trailer_block_start
  - ends_with_blank_line
  - unfold_value
  - trailer_block_new
  - trailer_block_get
  - parse_trailers
  - free_trailers
  - list_for_each_safe
  - trailer_block_start
  - trailer_block_end
  - blank_line_before_trailer_block
  - trailer_block_release
  - format_trailers
  - list_for_each
  - format_trailers_from_commit
  - trailer_iterator_init
  - trailer_iterator_advance
  - trailer_iterator_release
  - trailer_create_in_place_tempfile
  - amend_strbuf_with_trailers
  - write_file_in_place
  - amend_file_with_trailers
  - process_trailers
  source_file: /src/git/trailer.c
  types:
    enum:
    - enumerators:
      - name: TRAILER_KEY
      - name: TRAILER_IF_EXISTS
      - name: TRAILER_WHERE
      - name: TRAILER_COMMAND
      - name: TRAILER_CMD
      - name: TRAILER_IF_MISSING
      item_type: enum
      name: trailer_info_type
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/git/trailer.c
    preproc_defs:
    - item_type: preproc_def
      name: TRAILER_ARG_STRING
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/git/trailer.c
      type_or_value: '"$ARG"'
    structs:
    - fields:
      - name: blank_line_before_trailer
        type: int
      - name: start
        type: size_t
      - name: '**trailers'
        type: char
      - name: trailer_nr
        type: size_t
      item_type: struct
      name: trailer_block
      pos:
        line_end: 38
        line_start: 18
        source_file: /src/git/trailer.c
    - fields:
      - name: '*name'
        type: char
      - name: '*key'
        type: char
      - name: '*command'
        type: char
      - name: '*cmd'
        type: char
      - name: where
        type: enum trailer_where
      - name: if_exists
        type: enum trailer_if_exists
      - name: if_missing
        type: enum trailer_if_missing
      item_type: struct
      name: conf_info
      pos:
        line_end: 48
        line_start: 40
        source_file: /src/git/trailer.c
    - fields:
      - name: list
        type: struct list_head
      - name: '*token'
        type: char
      - name: '*value'
        type: char
      item_type: struct
      name: trailer_item
      pos:
        line_end: 60
        line_start: 52
        source_file: /src/git/trailer.c
    - fields:
      - name: list
        type: struct list_head
      - name: '*token'
        type: char
      - name: '*value'
        type: char
      - name: conf
        type: struct conf_info
      item_type: struct
      name: arg_item
      pos:
        line_end: 67
        line_start: 62
        source_file: /src/git/trailer.c
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: enum trailer_info_type
      item_type: struct
      name: "trailer_config_items[] = {\n\t{ \"key\", TRAILER_KEY },\n\t{ \"command\",
        TRAILER_COMMAND },\n\t{ \"cmd\", TRAILER_CMD },\n\t{ \"where\", TRAILER_WHERE
        },\n\t{ \"ifexists\", TRAILER_IF_EXISTS },\n\t{ \"ifmissing\", TRAILER_IF_MISSING
        }\n}"
      pos:
        line_end: 474
        line_start: 471
        source_file: /src/git/trailer.c
    typedefs: []
    union: []
- function_names:
  - DTYPE
  - DTYPE
  source_file: /src/git/statinfo.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MTIME_CHANGED
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/statinfo.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: CTIME_CHANGED
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/statinfo.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: OWNER_CHANGED
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/statinfo.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: MODE_CHANGED
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/git/statinfo.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: INODE_CHANGED
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/statinfo.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: DATA_CHANGED
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/statinfo.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: TYPE_CHANGED
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/statinfo.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: DT_UNKNOWN
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/git/statinfo.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DT_DIR
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/git/statinfo.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DT_REG
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/git/statinfo.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DT_LNK
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/git/statinfo.h
      type_or_value: '3'
    structs:
    - fields:
      - name: sec
        type: uint32_t
      - name: nsec
        type: uint32_t
      item_type: struct
      name: cache_time
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/git/statinfo.h
    - fields:
      - name: sd_ctime
        type: struct cache_time
      - name: sd_mtime
        type: struct cache_time
      - name: sd_dev
        type: unsigned int
      - name: sd_ino
        type: unsigned int
      - name: sd_uid
        type: unsigned int
      - name: sd_gid
        type: unsigned int
      - name: sd_size
        type: unsigned int
      item_type: struct
      name: stat_data
      pos:
        line_end: 23
        line_start: 15
        source_file: /src/git/statinfo.h
    - fields:
      - name: '*sd'
        type: struct stat_data
      item_type: struct
      name: stat_validity
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/git/statinfo.h
    typedefs: []
    union: []
- function_names:
  - credential_init
  - credential_clear
  - credential_next_state
  - credential_clear_secrets
  - credential_set_capability
  - credential_set_all_capabilities
  - announce_one
  - credential_announce_capabilities
  - credential_match
  - CHECK
  - credential_config_callback
  - proto_is_http
  - select_all
  - match_partial_url
  - credential_apply_config
  - credential_describe
  - credential_format
  - credential_ask_one
  - credential_getpass
  - credential_has_capability
  - credential_read
  - credential_write_item
  - credential_write
  - run_credential_helper
  - credential_do
  - credential_fill
  - credential_approve
  - credential_reject
  - check_url_component
  - credential_from_url_1
  - credential_from_potentially_partial_url
  - credential_from_url_gently
  - credential_from_url
  source_file: /src/git/credential.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_verbose
  - cache_one_alternate
  - for_each_cached_alternate
  - die_in_commit_graph_only
  - deref_without_lazy_fetch
  - rev_list_insert_ref
  - rev_list_insert_ref_oid
  - consume_shallow_list
  - get_ack
  - send_request
  - insert_one_alternate_object
  - next_flush
  - mark_tips
  - send_filter
  - add_oids_to_set
  - find_common
  - mark_complete
  - mark_complete_oid
  - mark_recent_complete_commits
  - add_refs_to_oidset
  - is_unmatched_ref
  - filter_refs
  - mark_alternate_complete
  - mark_complete_and_common_ref
  - everything_local
  - sideband_demux
  - create_promisor_file
  - parse_gitmodules_oids
  - add_index_pack_keep_option
  - get_pack
  - ref_compare_name
  - cmp_ref_by_name
  - do_fetch_pack
  - add_shallow_requests
  - add_wants
  - add_common
  - add_haves
  - write_fetch_command_and_capabilities
  - send_fetch_request
  - process_section_header
  - process_ack
  - receive_shallow_info
  - cmp_name_ref
  - receive_wanted_refs
  - receive_packfile_uris
  - do_check_stateless_delimiter
  - do_fetch_pack_v2
  - fetch_pack_fsck_config
  - fetch_pack_config_cb
  - fetch_pack_config
  - fetch_pack_setup
  - remove_duplicates_in_refs
  - update_shallow
  - iterate_ref_map
  - fetch_pack_fsck_objects
  - fetch_pack
  - add_to_object_array
  - clear_common_flag
  - negotiate_using_fetch
  - report_unmatched_refs
  source_file: /src/git/fetch-pack.c
  types:
    enum:
    - enumerators:
      - name: NAK
        value: '0'
      - name: ACK
      - name: ACK_continue
      - name: ACK_common
      - name: ACK_ready
      item_type: enum
      name: ack_type
      pos:
        line_end: 202
        line_start: 196
        source_file: /src/git/fetch-pack.c
    - enumerators:
      - name: FETCH_CHECK_LOCAL
        value: '0'
      - name: FETCH_SEND_REQUEST
      - name: FETCH_PROCESS_ACKS
      - name: FETCH_GET_PACK
      - name: FETCH_DONE
      item_type: enum
      name: fetch_state
      pos:
        line_end: 1694
        line_start: 1688
        source_file: /src/git/fetch-pack.c
    preproc_defs:
    - item_type: preproc_def
      name: COMPLETE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/fetch-pack.c
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: ALTERNATE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/git/fetch-pack.c
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: COMMON
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/fetch-pack.c
      type_or_value: (1U << 6)
    - item_type: preproc_def
      name: REACH_SCRATCH
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/git/fetch-pack.c
      type_or_value: (1U << 7)
    - item_type: preproc_def
      name: MAX_IN_VAIN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/git/fetch-pack.c
      type_or_value: '256'
    - item_type: preproc_def
      name: ALLOW_TIP_SHA1
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/git/fetch-pack.c
      type_or_value: '01'
    - item_type: preproc_def
      name: ALLOW_REACHABLE_SHA1
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/git/fetch-pack.c
      type_or_value: '02'
    - item_type: preproc_def
      name: INITIAL_FLUSH
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/git/fetch-pack.c
      type_or_value: '16'
    - item_type: preproc_def
      name: PIPESAFE_FLUSH
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/git/fetch-pack.c
      type_or_value: '32'
    - item_type: preproc_def
      name: LARGE_FLUSH
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/git/fetch-pack.c
      type_or_value: '16384'
    structs:
    - fields:
      - name: '**items'
        type: struct object
      - name: nr
        type: size_t
      item_type: struct
      name: alternate_object_cache
      pos:
        line_end: 94
        line_start: 91
        source_file: /src/git/fetch-pack.c
    typedefs: []
    union: []
- function_names:
  - oidset_size
  - oidset_iter_init
  - oidset_iter_next
  - oidset_iter_first
  source_file: /src/git/oidset.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDSET_INIT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/oidset.h
      type_or_value: '{ { 0 } }'
    structs:
    - fields:
      - name: set
        type: kh_oid_set_t
      item_type: struct
      name: oidset
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/git/oidset.h
    - fields:
      - name: '*set'
        type: kh_oid_set_t
      - name: iter
        type: khiter_t
      item_type: struct
      name: oidset_iter
      pos:
        line_end: 103
        line_start: 100
        source_file: /src/git/oidset.h
    typedefs:
    - item_type: typedef
      name: (*oidset_parse_tweak_fn)(struct object_id *, void *)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/git/oidset.h
      type: int
    union: []
- function_names: []
  source_file: /src/git/sideband.h
  types:
    enum:
    - enumerators:
      - name: SIDEBAND_PROTOCOL_ERROR
        value: '-2'
      - name: SIDEBAND_FLUSH
        value: '0'
      - name: SIDEBAND_PRIMARY
        value: '1'
      - name: SIDEBAND_REMOTE_ERROR
        value: '-1'
      item_type: enum
      name: sideband_type
      pos:
        line_end: 8
        line_start: 3
        source_file: /src/git/sideband.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/gpg-interface.h
  types:
    enum:
    - enumerators:
      - name: TRUST_UNDEFINED
      - name: TRUST_MARGINAL
      - name: TRUST_NEVER
      - name: TRUST_ULTIMATE
      - name: TRUST_FULLY
      item_type: enum
      name: signature_trust_level
      pos:
        line_end: 15
        line_start: 9
        source_file: /src/git/gpg-interface.h
    - enumerators:
      - name: SIGNATURE_PAYLOAD_UNDEFINED
      - name: SIGNATURE_PAYLOAD_TAG
      - name: SIGNATURE_PAYLOAD_COMMIT
      - name: SIGNATURE_PAYLOAD_PUSH_CERT
      item_type: enum
      name: payload_type
      pos:
        line_end: 22
        line_start: 17
        source_file: /src/git/gpg-interface.h
    - enumerators:
      - name: SIGN_BUFFER_USE_DEFAULT_KEY
        value: (1 << 0)
      item_type: enum
      name: sign_buffer_flags
      pos:
        line_end: 83
        line_start: 77
        source_file: /src/git/gpg-interface.h
    - enumerators:
      - name: SIGN_ABORT
      - name: SIGN_VERBATIM
      - name: SIGN_WARN_VERBATIM
      - name: SIGN_ABORT_IF_INVALID
      - name: SIGN_WARN_STRIP
      - name: SIGN_STRIP
      - name: SIGN_STRIP_IF_INVALID
      - name: SIGN_SIGN_IF_INVALID
      item_type: enum
      name: sign_mode
      pos:
        line_end: 124
        line_start: 115
        source_file: /src/git/gpg-interface.h
    preproc_defs:
    - item_type: preproc_def
      name: GPG_VERIFY_VERBOSE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/gpg-interface.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: GPG_VERIFY_RAW
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/gpg-interface.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: GPG_VERIFY_OMIT_STATUS
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/gpg-interface.h
      type_or_value: (1<<2)
    structs:
    - fields:
      - name: '*payload'
        type: char
      - name: payload_len
        type: size_t
      - name: payload_type
        type: enum payload_type
      - name: payload_timestamp
        type: timestamp_t
      - name: '*output'
        type: char
      - name: '*gpg_status'
        type: char
      - name: result
        type: char
      - name: '*signer'
        type: char
      - name: '*key'
        type: char
      - name: '*fingerprint'
        type: char
      - name: '*primary_key_fingerprint'
        type: char
      - name: trust_level
        type: enum signature_trust_level
      item_type: struct
      name: signature_check
      pos:
        line_end: 45
        line_start: 24
        source_file: /src/git/gpg-interface.h
    typedefs: []
    union: []
- function_names:
  - is_known_hook
  - find_hook
  - hook_free
  - list_hooks_add_default
  - hook_config_lookup_all
  - hook_cache_clear
  - is_friendly_name
  - warn_jobs_on_friendly_names
  - build_hook_config_map
  - get_hook_config_cache
  - list_hooks_add_configured
  - list_hooks
  - hook_exists
  - pick_next_hook
  - notify_start_failure
  - notify_hook_finished
  - run_hooks_opt_clear
  - merge_output_if_parallel
  - warn_non_parallel_hooks_override
  - resolve_hook_config_jobs
  - get_hook_jobs
  - run_hooks_opt
  - run_hooks
  - run_hooks_l
  source_file: /src/git/hook.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*command'
        type: char
      - name: scope
        type: enum config_scope
      - name: disabled
        type: bool
      - name: parallel
        type: bool
      item_type: struct
      name: hook_config_cache_entry
      pos:
        line_end: 130
        line_start: 125
        source_file: /src/git/hook.c
    - fields:
      - name: commands
        type: struct strmap
      - name: event_hooks
        type: struct strmap
      - name: disabled_hooks
        type: struct string_list
      - name: parallel_hooks
        type: struct strmap
      - name: event_jobs
        type: struct strmap
      - name: jobs
        type: unsigned int
      item_type: struct
      name: hook_all_config_cb
      pos:
        line_end: 150
        line_start: 143
        source_file: /src/git/hook.c
    typedefs: []
    union: []
- function_names:
  - check_connected
  - repo_for_each_pack
  source_file: /src/git/connected.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - config_file_fgetc
  - config_file_ungetc
  - config_file_ftell
  - config_buf_fgetc
  - config_buf_ungetc
  - config_buf_ftell
  - handle_path_include
  - add_trailing_starstar_for_dir
  - prepare_include_condition_pattern
  - include_by_gitdir
  - include_by_branch
  - add_remote_url
  - populate_remote_urls
  - forbid_remote_url
  - at_least_one_url_matches_glob
  - for_each_string_list_item
  - include_by_remote_url
  - include_condition_is_true
  - git_config_include
  - git_config_push_split_parameter
  - git_config_push_parameter
  - git_config_push_env
  - iskeychar
  - git_config_parse_key
  - config_parse_pair
  - kvi_from_param
  - git_config_parse_parameter
  - parse_config_env_list
  - git_config_from_parameters
  - get_next_char
  - parse_value
  - get_value
  - get_extended_base_var
  - get_base_var
  - do_event
  - kvi_from_source
  - git_parse_source
  - die_bad_number
  - git_config_int
  - git_config_uint
  - git_config_int64
  - git_config_ulong
  - git_config_ssize_t
  - git_config_double
  - git_config_bool_or_int
  - git_config_bool
  - git_config_string
  - git_config_pathname
  - git_config_expiry_date
  - git_config_color
  - do_config_from
  - do_config_from_file
  - git_config_from_stdin
  - git_config_from_file_with_options
  - git_config_from_file
  - git_config_from_mem
  - git_config_from_blob_oid
  - git_config_from_blob_ref
  - git_system_config
  - git_global_config
  - git_global_config_paths
  - git_config_system
  - do_git_config_sequence
  - config_with_options
  - configset_iter
  - read_early_config
  - read_very_early_config
  - configset_find_element
  - configset_add_value
  - config_set_element_cmp
  - git_configset_init
  - git_configset_clear
  - config_set_callback
  - git_configset_add_file
  - git_configset_get_value
  - git_configset_get_value_multi
  - check_multi_string
  - git_configset_get_string_multi
  - git_configset_get
  - git_configset_get_string
  - git_configset_get_string_tmp
  - git_configset_get_int
  - git_configset_get_uint
  - git_configset_get_ulong
  - git_configset_get_bool
  - git_configset_get_bool_or_int
  - git_configset_get_maybe_bool
  - git_configset_get_pathname
  - comment_char_config_release
  - COMMENT_KEY_SHIFT
  - COMMENT_KEY_MASK
  - set_comment_key_flags
  - get_comment_key_flags
  - comment_key_name
  - comment_char_callback
  - add_config_scope_arg
  - can_unset_comment_char_config
  - add_unset_auto_comment_char_advice
  - add_comment_char_advice
  - REPO_CONFIG_INIT
  - repo_config_release
  - check_auto_comment_char_config
  - check_auto_comment_char_config
  - check_deprecated_config
  - repo_config_callback
  - repo_read_config
  - git_config_check_init
  - repo_config_clear
  - repo_config
  - repo_config_get
  - repo_config_get_value
  - repo_config_get_value_multi
  - repo_config_get_string_multi
  - repo_config_get_string
  - repo_config_get_string_tmp
  - repo_config_get_int
  - repo_config_get_uint
  - repo_config_get_ulong
  - repo_config_get_bool
  - repo_config_get_bool_or_int
  - repo_config_get_maybe_bool
  - repo_config_get_pathname
  - read_protected_config
  - git_protected_config
  - repo_config_get_expiry
  - repo_config_get_expiry_in_days
  - repo_config_get_split_index
  - repo_config_get_max_percent_split_change
  - repo_config_get_index_threads
  - git_die_config_linenr
  - git_die_config
  - config_store_data_clear
  - matches
  - store_aux_event
  - store_aux
  - write_error
  - store_create_section
  - write_section
  - write_pair
  - maybe_remove_section
  - repo_config_set_in_file_gently
  - repo_config_set_in_file
  - repo_config_set_gently
  - repo_config_set_worktree_gently
  - repo_config_set
  - git_config_prepare_comment_string
  - validate_comment_string
  - repo_config_set_multivar_in_file_gently
  - repo_config_set_multivar_in_file
  - repo_config_set_multivar_gently
  - repo_config_set_multivar
  - section_name_match
  - section_name_is_ok
  - repo_config_copy_or_rename_section_in_file
  - repo_config_rename_section_in_file
  - repo_config_rename_section
  - repo_config_copy_section_in_file
  - repo_config_copy_section
  - config_error_nonbool
  - parse_config_key
  - config_origin_type_name
  - config_scope_name
  - lookup_config
  source_file: /src/git/config.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONFIG_SOURCE_INIT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/git/config.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: CONFIG_INCLUDE_INIT
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/git/config.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: MAX_INCLUDE_DEPTH
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/git/config.c
      type_or_value: '10'
    - item_type: preproc_def
      name: COMMENT_CHAR_CFG_INIT
      pos:
        line_end: 2002
        line_start: 1999
        source_file: /src/git/config.c
      type_or_value: "{\t\t\t\\\n\t\t.key_flags = STRINTMAP_INIT,\t\\\n\t}"
    - item_type: preproc_def
      name: KEY_SEEN_ONCE
      pos:
        line_end: 2013
        line_start: 2012
        source_file: /src/git/config.c
      type_or_value: 1u
    - item_type: preproc_def
      name: KEY_SEEN_TWICE
      pos:
        line_end: 2014
        line_start: 2013
        source_file: /src/git/config.c
      type_or_value: 2u
    - item_type: preproc_def
      name: CONFIG_STORE_INIT
      pos:
        line_end: 2578
        line_start: 2577
        source_file: /src/git/config.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: GIT_CONFIG_MAX_LINE_LEN
      pos:
        line_end: 3332
        line_start: 3331
        source_file: /src/git/config.c
      type_or_value: (512 * 1024)
    structs:
    - fields:
      - name: '*prev'
        type: struct config_source
      - name: u
        type: "union {\n\t\tFILE *file;\n\t\tstruct config_buf {\n\t\t\tconst char
          *buf;\n\t\t\tsize_t len;\n\t\t\tsize_t pos;\n\t\t} buf;\n\t}"
      - name: origin_type
        type: enum config_origin_type
      - name: '*name'
        type: char
      - name: default_error_action
        type: enum config_error_action
      - name: linenr
        type: int
      - name: eof
        type: int
      - name: total_len
        type: size_t
      - name: value
        type: struct strbuf
      - name: var
        type: struct strbuf
      - name: subsection_case_sensitive
        type: unsigned
      - name: (*do_fgetc)(struct config_source *c)
        type: int
      - name: (*do_ungetc)(int c, struct config_source *conf)
        type: int
      - name: (*do_ftell)(struct config_source *c)
        type: long
      item_type: struct
      name: config_source
      pos:
        line_end: 62
        line_start: 39
        source_file: /src/git/config.c
    - fields:
      - name: '*buf'
        type: char
      - name: len
        type: size_t
      - name: pos
        type: size_t
      item_type: struct
      name: config_buf
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/git/config.c
    - fields:
      - name: depth
        type: int
      - name: fn
        type: config_fn_t
      - name: '*data'
        type: void
      - name: '*opts'
        type: struct config_options
      - name: '*config_source'
        type: struct git_config_source
      - name: '*repo'
        type: struct repository
      - name: '*remote_urls'
        type: struct string_list
      item_type: struct
      name: config_include_data
      pos:
        line_end: 128
        line_start: 116
        source_file: /src/git/config.c
    - fields:
      - name: previous_type
        type: enum config_event_t
      - name: previous_offset
        type: size_t
      - name: '*opts'
        type: struct config_options
      item_type: struct
      name: parse_event_data
      pos:
        line_end: 983
        line_start: 979
        source_file: /src/git/config.c
    - fields:
      - name: last_key_id
        type: unsigned
      - name: auto_set
        type: bool
      - name: auto_set_in_file
        type: bool
      - name: key_flags
        type: struct strintmap
      - name: alloc
        type: size_t
      - name: '*item'
        type: "struct comment_char_config_item {\n\t\tunsigned key_id;\n\t\tchar *path;\n\t\tenum
          config_scope scope;\n\t}"
      item_type: struct
      name: comment_char_config
      pos:
        line_end: 1997
        line_start: 1986
        source_file: /src/git/config.c
    - fields:
      - name: key_id
        type: unsigned
      - name: '*path'
        type: char
      - name: scope
        type: enum config_scope
      item_type: struct
      name: comment_char_config_item
      pos:
        line_end: 1996
        line_start: 1992
        source_file: /src/git/config.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: comment_char_config
        type: struct comment_char_config
      item_type: struct
      name: repo_config
      pos:
        line_end: 2197
        line_start: 2194
        source_file: /src/git/config.c
    - fields:
      - name: baselen
        type: size_t
      - name: '*key'
        type: char
      - name: do_not_match
        type: int
      - name: '*fixed_value'
        type: char
      - name: '*value_pattern'
        type: regex_t
      - name: multi_replace
        type: int
      - name: '*parsed'
        type: "struct {\n\t\tsize_t begin, end;\n\t\tenum config_event_t type;\n\t\tint
          is_keys_section;\n\t}"
      - name: parsed_nr
        type: unsigned int
      - name: key_seen
        type: unsigned int
      item_type: struct
      name: config_store_data
      pos:
        line_end: 2576
        line_start: 2562
        source_file: /src/git/config.c
    typedefs: []
    union: []
- function_names:
  - git_test_write_commit_graph_or_die
  - graph_data_width
  - graph_min_size
  - set_commit_pos
  - commit_pos_cmp
  - get_configured_generation_version
  - commit_graph_position
  - commit_graph_generation
  - commit_graph_generation_from_graph
  - commit_graph_data_at
  - commit_gen_cmp
  - get_commit_graph_filename
  - get_split_graph_filename
  - get_commit_graph_chain_filename
  - alloc_commit_graph
  - commit_graph_compatible
  - open_commit_graph
  - load_commit_graph_one_fd_st
  - graph_read_oid_fanout
  - graph_read_oid_lookup
  - graph_read_commit_data
  - graph_read_generation_data
  - graph_read_bloom_index
  - graph_read_bloom_data
  - parse_commit_graph
  - load_commit_graph_one
  - load_commit_graph_v1
  - validate_mixed_generation_chain
  - validate_mixed_bloom_settings
  - add_graph_to_chain
  - open_commit_graph_chain
  - load_commit_graph_chain_fd_st
  - load_commit_graph_chain
  - read_commit_graph_one
  - prepare_commit_graph
  - generation_numbers_enabled
  - corrected_commit_dates_enabled
  - get_bloom_filter_settings
  - close_commit_graph
  - bsearch_graph
  - load_oid_from_graph
  - insert_parent_or_die
  - fill_commit_graph_info
  - set_commit_tree
  - fill_commit_in_graph
  - search_commit_pos_in_graph
  - find_commit_pos_in_graph
  - repo_find_commit_pos_in_graph
  - lookup_commit_in_graph
  - parse_commit_in_graph_one
  - parse_commit_in_graph
  - load_commit_graph_info
  - load_tree_for_commit
  - get_commit_tree_in_graph_one
  - get_commit_tree_in_graph
  - write_graph_chunk_fanout
  - write_graph_chunk_oids
  - commit_to_oid
  - write_graph_chunk_data
  - compute_generation_offset
  - write_graph_chunk_generation_data
  - write_graph_chunk_generation_data_overflow
  - write_graph_chunk_extra_edges
  - write_graph_chunk_bloom_indexes
  - trace2_bloom_filter_settings
  - write_graph_chunk_bloom_data
  - add_packed_commits_oi
  - add_packed_commits
  - add_missing_parents
  - close_reachable
  - compute_generation_from_max
  - compute_reachable_generation_numbers
  - get_topo_level
  - set_topo_level
  - compute_topological_levels
  - get_generation_from_graph_data
  - set_generation_v2
  - compute_generation_numbers
  - set_generation_in_graph_data
  - ensure_generations_valid
  - trace2_bloom_filter_write_statistics
  - compute_bloom_filters
  - add_ref_to_set
  - write_commit_graph_reachable
  - fill_oids_from_packs
  - fill_oids_from_commits
  - fill_oids_from_all_packs
  - copy_oids_to_commits
  - write_graph_chunk_base_1
  - write_graph_chunk_base
  - write_commit_graph_file
  - split_graph_merge_strategy
  - merge_commit_graph
  - commit_compare
  - sort_and_scan_merged_commits
  - merge_commit_graphs
  - mark_commit_graphs
  - expire_commit_graphs
  - write_commit_graph
  - graph_report
  - commit_graph_checksum_valid
  - verify_one_commit_graph
  - verify_commit_graph
  - free_commit_graph
  - disable_commit_graph
  source_file: /src/git/commit-graph.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GRAPH_SIGNATURE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/commit-graph.c
      type_or_value: '0x43475048 '
    - item_type: preproc_def
      name: GRAPH_CHUNKID_OIDFANOUT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/commit-graph.c
      type_or_value: '0x4f494446 '
    - item_type: preproc_def
      name: GRAPH_CHUNKID_OIDLOOKUP
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/commit-graph.c
      type_or_value: '0x4f49444c '
    - item_type: preproc_def
      name: GRAPH_CHUNKID_DATA
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/commit-graph.c
      type_or_value: '0x43444154 '
    - item_type: preproc_def
      name: GRAPH_CHUNKID_GENERATION_DATA
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/commit-graph.c
      type_or_value: '0x47444132 '
    - item_type: preproc_def
      name: GRAPH_CHUNKID_GENERATION_DATA_OVERFLOW
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/commit-graph.c
      type_or_value: '0x47444f32 '
    - item_type: preproc_def
      name: GRAPH_CHUNKID_EXTRAEDGES
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/git/commit-graph.c
      type_or_value: '0x45444745 '
    - item_type: preproc_def
      name: GRAPH_CHUNKID_BLOOMINDEXES
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/git/commit-graph.c
      type_or_value: '0x42494458 '
    - item_type: preproc_def
      name: GRAPH_CHUNKID_BLOOMDATA
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/commit-graph.c
      type_or_value: '0x42444154 '
    - item_type: preproc_def
      name: GRAPH_CHUNKID_BASE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/commit-graph.c
      type_or_value: '0x42415345 '
    - item_type: preproc_def
      name: GRAPH_VERSION_1
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/commit-graph.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GRAPH_VERSION
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/commit-graph.c
      type_or_value: GRAPH_VERSION_1
    - item_type: preproc_def
      name: GRAPH_EXTRA_EDGES_NEEDED
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/git/commit-graph.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: GRAPH_EDGE_LAST_MASK
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/commit-graph.c
      type_or_value: '0x7fffffff'
    - item_type: preproc_def
      name: GRAPH_PARENT_NONE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/git/commit-graph.c
      type_or_value: '0x70000000'
    - item_type: preproc_def
      name: GRAPH_LAST_EDGE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/git/commit-graph.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: GRAPH_HEADER_SIZE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/git/commit-graph.c
      type_or_value: '8'
    - item_type: preproc_def
      name: GRAPH_FANOUT_SIZE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/git/commit-graph.c
      type_or_value: (4 * 256)
    - item_type: preproc_def
      name: CORRECTED_COMMIT_DATE_OFFSET_OVERFLOW
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/git/commit-graph.c
      type_or_value: (1ULL << 31)
    - item_type: preproc_def
      name: REACHABLE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/commit-graph.c
      type_or_value: (1u<<15)
    - item_type: preproc_def
      name: VERIFY_COMMIT_GRAPH_ERROR_HASH
      pos:
        line_end: 2743
        line_start: 2742
        source_file: /src/git/commit-graph.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*r'
        type: struct repository
      - name: '*odb_source'
        type: struct odb_source
      - name: '*graph_name'
        type: char
      - name: oids
        type: struct oid_array
      - name: commits
        type: struct commit_stack
      - name: num_extra_edges
        type: int
      - name: num_generation_data_overflows
        type: int
      - name: approx_nr_objects
        type: unsigned long
      - name: '*progress'
        type: struct progress
      - name: progress_done
        type: int
      - name: progress_cnt
        type: uint64_t
      - name: '*base_graph_name'
        type: char
      - name: num_commit_graphs_before
        type: int
      - name: num_commit_graphs_after
        type: int
      - name: '**commit_graph_filenames_before'
        type: char
      - name: '**commit_graph_filenames_after'
        type: char
      - name: '**commit_graph_hash_after'
        type: char
      - name: new_num_commits_in_base
        type: uint32_t
      - name: '*new_base_graph'
        type: struct commit_graph
      - name: append
        type: unsigned
      - name: '*topo_levels'
        type: struct topo_level_slab
      - name: '*opts'
        type: struct commit_graph_opts
      - name: total_bloom_filter_data_size
        type: size_t
      - name: '*bloom_settings'
        type: struct bloom_filter_settings
      - name: count_bloom_filter_computed
        type: int
      - name: count_bloom_filter_not_computed
        type: int
      - name: count_bloom_filter_trunc_empty
        type: int
      - name: count_bloom_filter_trunc_large
        type: int
      - name: count_bloom_filter_upgraded
        type: int
      item_type: struct
      name: write_commit_graph_context
      pos:
        line_end: 1169
        line_start: 1129
        source_file: /src/git/commit-graph.c
    - fields:
      - name: '*r'
        type: struct repository
      - name: '*commits'
        type: struct commit_stack
      - name: '*progress'
        type: struct progress
      - name: progress_cnt
        type: int
      - name: (*get_generation)(struct commit *c, void *data)
        type: timestamp_t
      - name: (*set_generation)(struct commit *c, timestamp_t gen, void *data)
        type: void
      - name: '*data'
        type: void
      item_type: struct
      name: compute_generation_info
      pos:
        line_end: 1627
        line_start: 1618
        source_file: /src/git/commit-graph.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*commits'
        type: struct oidset
      - name: '*progress'
        type: struct progress
      item_type: struct
      name: refs_cb_data
      pos:
        line_end: 1884
        line_start: 1880
        source_file: /src/git/commit-graph.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/transport-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: "(*set_option)(struct transport *connection, const char *name,\n\t\t\t
          \ const char *value)"
        type: int
      - name: "*(*get_refs_list)(struct transport *transport, int for_push,\n\t\t\t\t
          \    struct transport_ls_refs_options *transport_options)"
        type: struct ref
      - name: (*get_bundle_uri)(struct transport *transport)
        type: int
      - name: (*fetch_refs)(struct transport *transport, int refs_nr, struct ref **refs)
        type: int
      - name: (*push_refs)(struct transport *transport, struct ref *refs, int flags)
        type: int
      - name: "(*connect)(struct transport *connection, const char *name,\n\t\t       const
          char *executable, int fd[2])"
        type: int
      - name: (*disconnect)(struct transport *connection)
        type: int
      item_type: struct
      name: transport_vtable
      pos:
        line_end: 68
        line_start: 8
        source_file: /src/git/transport-internal.h
    typedefs: []
    union: []
- function_names:
  - copy_cache_entry
  - create_ce_flags
  - ce_namelen
  - ce_size
  - ce_stage
  - ce_uptodate
  - ce_skip_worktree
  - ce_mark_uptodate
  - ce_intent_to_add
  - cache_entry_size
  - INDEX_STATE_INIT
  - index_pos_to_insert_pos
  source_file: /src/git/read-cache-ll.h
  types:
    enum:
    - enumerators:
      - name: INDEX_EXPANDED
        value: '0'
      - name: INDEX_PARTIALLY_SPARSE
      - name: INDEX_COLLAPSED
      item_type: enum
      name: sparse_index_mode
      pos:
        line_end: 163
        line_start: 142
        source_file: /src/git/read-cache-ll.h
    preproc_defs:
    - item_type: preproc_def
      name: CACHE_SIGNATURE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/read-cache-ll.h
      type_or_value: "0x44495243\t"
    - item_type: preproc_def
      name: INDEX_FORMAT_LB
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/read-cache-ll.h
      type_or_value: '2'
    - item_type: preproc_def
      name: INDEX_FORMAT_UB
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/read-cache-ll.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CE_STAGEMASK
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/read-cache-ll.h
      type_or_value: (0x3000)
    - item_type: preproc_def
      name: CE_EXTENDED
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/read-cache-ll.h
      type_or_value: (0x4000)
    - item_type: preproc_def
      name: CE_VALID
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/read-cache-ll.h
      type_or_value: (0x8000)
    - item_type: preproc_def
      name: CE_STAGESHIFT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/read-cache-ll.h
      type_or_value: '12'
    - item_type: preproc_def
      name: CE_UPDATE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: CE_REMOVE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 17)
    - item_type: preproc_def
      name: CE_UPTODATE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 18)
    - item_type: preproc_def
      name: CE_ADDED
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 19)
    - item_type: preproc_def
      name: CE_HASHED
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 20)
    - item_type: preproc_def
      name: CE_FSMONITOR_VALID
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 21)
    - item_type: preproc_def
      name: CE_WT_REMOVE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/read-cache-ll.h
      type_or_value: '(1 << 22) '
    - item_type: preproc_def
      name: CE_CONFLICTED
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 23)
    - item_type: preproc_def
      name: CE_UNPACKED
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: CE_NEW_SKIP_WORKTREE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 25)
    - item_type: preproc_def
      name: CE_MATCHED
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 26)
    - item_type: preproc_def
      name: CE_UPDATE_IN_BASE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 27)
    - item_type: preproc_def
      name: CE_STRIP_NAME
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 28)
    - item_type: preproc_def
      name: CE_INTENT_TO_ADD
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 29)
    - item_type: preproc_def
      name: CE_SKIP_WORKTREE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 30)
    - item_type: preproc_def
      name: CE_EXTENDED2
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1U << 31)
    - item_type: preproc_def
      name: CE_EXTENDED_FLAGS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/git/read-cache-ll.h
      type_or_value: (CE_INTENT_TO_ADD | CE_SKIP_WORKTREE)
    - item_type: preproc_def
      name: SOMETHING_CHANGED
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/git/read-cache-ll.h
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: CE_ENTRY_CHANGED
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CE_ENTRY_REMOVED
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CE_ENTRY_ADDED
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: RESOLVE_UNDO_CHANGED
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: CACHE_TREE_CHANGED
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: SPLIT_INDEX_ORDERED
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: UNTRACKED_CHANGED
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: FSMONITOR_CHANGED
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: COMMIT_LOCK
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: SKIP_IF_UNCHANGED
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/git/read-cache-ll.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: ADD_CACHE_OK_TO_ADD
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/git/read-cache-ll.h
      type_or_value: "1\t\t"
    - item_type: preproc_def
      name: ADD_CACHE_OK_TO_REPLACE
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/git/read-cache-ll.h
      type_or_value: "2\t"
    - item_type: preproc_def
      name: ADD_CACHE_SKIP_DFCHECK
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/git/read-cache-ll.h
      type_or_value: "4\t"
    - item_type: preproc_def
      name: ADD_CACHE_JUST_APPEND
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/git/read-cache-ll.h
      type_or_value: "8\t\t"
    - item_type: preproc_def
      name: ADD_CACHE_NEW_ONLY
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/git/read-cache-ll.h
      type_or_value: "16\t\t"
    - item_type: preproc_def
      name: ADD_CACHE_KEEP_CACHE_TREE
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/git/read-cache-ll.h
      type_or_value: "32\t"
    - item_type: preproc_def
      name: ADD_CACHE_RENORMALIZE
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/git/read-cache-ll.h
      type_or_value: '64        '
    - item_type: preproc_def
      name: ADD_CACHE_VERBOSE
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/git/read-cache-ll.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ADD_CACHE_PRETEND
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/git/read-cache-ll.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ADD_CACHE_IGNORE_ERRORS
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/git/read-cache-ll.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ADD_CACHE_IGNORE_REMOVAL
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/git/read-cache-ll.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ADD_CACHE_INTENT
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/git/read-cache-ll.h
      type_or_value: '16'
    - item_type: preproc_def
      name: CE_MATCH_IGNORE_VALID
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/git/read-cache-ll.h
      type_or_value: '01'
    - item_type: preproc_def
      name: CE_MATCH_RACY_IS_DIRTY
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/git/read-cache-ll.h
      type_or_value: '02'
    - item_type: preproc_def
      name: CE_MATCH_IGNORE_SKIP_WORKTREE
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/git/read-cache-ll.h
      type_or_value: '04'
    - item_type: preproc_def
      name: CE_MATCH_IGNORE_MISSING
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/git/read-cache-ll.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: CE_MATCH_REFRESH
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/git/read-cache-ll.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: CE_MATCH_IGNORE_FSMONITOR
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/git/read-cache-ll.h
      type_or_value: 0X20
    - item_type: preproc_def
      name: REFRESH_REALLY
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/git/read-cache-ll.h
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: REFRESH_UNMERGED
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/git/read-cache-ll.h
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: REFRESH_QUIET
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/git/read-cache-ll.h
      type_or_value: '(1 << 2) '
    - item_type: preproc_def
      name: REFRESH_IGNORE_MISSING
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/git/read-cache-ll.h
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: REFRESH_IGNORE_SUBMODULES
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/git/read-cache-ll.h
      type_or_value: '(1 << 4) '
    - item_type: preproc_def
      name: REFRESH_IN_PORCELAIN
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/git/read-cache-ll.h
      type_or_value: '(1 << 5) '
    - item_type: preproc_def
      name: REFRESH_PROGRESS
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/git/read-cache-ll.h
      type_or_value: '(1 << 6) '
    - item_type: preproc_def
      name: REFRESH_IGNORE_SKIP_WORKTREE
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/git/read-cache-ll.h
      type_or_value: '(1 << 7) '
    structs:
    - fields:
      - name: hdr_signature
        type: uint32_t
      - name: hdr_version
        type: uint32_t
      - name: hdr_entries
        type: uint32_t
      item_type: struct
      name: cache_header
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/git/read-cache-ll.h
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: ce_stat_data
        type: struct stat_data
      - name: ce_mode
        type: unsigned int
      - name: ce_flags
        type: unsigned int
      - name: mem_pool_allocated
        type: unsigned int
      - name: ce_namelen
        type: unsigned int
      - name: index
        type: unsigned int
      - name: oid
        type: struct object_id
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: cache_entry
      pos:
        line_end: 31
        line_start: 21
        source_file: /src/git/read-cache-ll.h
    - fields:
      - name: '**cache'
        type: struct cache_entry
      - name: version
        type: unsigned int
      - name: cache_nr
        type: unsigned int
      - name: '*resolve_undo'
        type: struct string_list
      - name: '*cache_tree'
        type: struct cache_tree
      - name: '*split_index'
        type: struct split_index
      - name: timestamp
        type: struct cache_time
      - name: name_hash_initialized
        type: unsigned
      - name: sparse_index
        type: enum sparse_index_mode
      - name: name_hash
        type: struct hashmap
      - name: dir_hash
        type: struct hashmap
      - name: oid
        type: struct object_id
      - name: '*untracked'
        type: struct untracked_cache
      - name: '*fsmonitor_last_update'
        type: char
      - name: '*fsmonitor_dirty'
        type: struct ewah_bitmap
      - name: '*ce_mem_pool'
        type: struct mem_pool
      - name: '*progress'
        type: struct progress
      - name: '*repo'
        type: struct repository
      - name: '*sparse_checkout_patterns'
        type: struct pattern_list
      item_type: struct
      name: index_state
      pos:
        line_end: 190
        line_start: 165
        source_file: /src/git/read-cache-ll.h
    typedefs:
    - item_type: typedef
      name: (*must_prefetch_predicate)(const struct cache_entry *)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/git/read-cache-ll.h
      type: int
    union: []
- function_names:
  - count_distance
  - clear_distance
  - weight
  - weight_set
  - count_interesting_parents
  - approx_halfway
  - show_list
  - best_bisection
  - compare_commit_dist
  - best_bisection_sorted
  - do_find_bisection
  - find_bisection
  - register_ref
  - read_bisect_refs
  - read_bisect_paths
  - join_oid_array_hex
  - filter_skipped
  - get_prn
  - sqrti
  - skip_away
  - managed_skipped
  - bisect_rev_setup
  - bisect_common
  - error_if_skipped_commits
  - is_expected_rev
  - bisect_checkout
  - get_commit_reference
  - get_bad_and_good_commits
  - handle_bad_merge_base
  - handle_skipped_merge_base
  - check_merge_bases
  - check_ancestors
  - check_good_are_ancestors_of_bad
  - show_commit
  - read_bisect_terms
  - bisect_next_all
  - exp2i
  - estimate_bisect_steps
  - mark_for_removal
  - bisect_clean_state
  source_file: /src/git/bisect.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COUNTED
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/bisect.c
      type_or_value: (1u<<16)
    - item_type: preproc_def
      name: DEBUG_BISECT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/git/bisect.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PRN_MODULO
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/git/bisect.c
      type_or_value: '32768'
    structs:
    - fields:
      - name: '*commit'
        type: struct commit
      - name: distance
        type: int
      item_type: struct
      name: commit_dist
      pos:
        line_end: 213
        line_start: 210
        source_file: /src/git/bisect.c
    typedefs: []
    union: []
- function_names:
  - munge_st_size
  - fill_stat_data
  - set_times
  - fake_lstat_data
  - match_stat_data
  - stat_validity_clear
  - stat_validity_check
  - stat_validity_update
  source_file: /src/git/statinfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/wildmatch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WM_CASEFOLD
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/wildmatch.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WM_PATHNAME
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/wildmatch.h
      type_or_value: '2'
    - item_type: preproc_def
      name: WM_NOMATCH
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/wildmatch.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WM_MATCH
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/wildmatch.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ce_mode_from_stat
  - ce_to_dtype
  - ce_path_match
  source_file: /src/git/read-cache.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oid_array_append
  - void_hashcmp
  - oid_array_sort
  - oid_access
  - oid_array_lookup
  - oid_array_clear
  - oid_array_for_each
  - oid_array_for_each_unique
  - oid_array_filter
  source_file: /src/git/oid-array.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - longest_path_match
  - reset_lstat_cache
  - lstat_cache_matchlen
  - lstat_cache
  - threaded_has_symlink_leading_path
  - has_symlink_leading_path
  - check_leading_path
  - threaded_check_leading_path
  - has_dirs_only_path
  - threaded_has_dirs_only_path
  - do_remove_scheduled_dirs
  - schedule_dir_for_removal
  - remove_scheduled_dirs
  - invalidate_lstat_cache
  - lstat_cache_aware_rmdir
  source_file: /src/git/symlinks.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FL_DIR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/symlinks.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: FL_NOENT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/symlinks.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: FL_SYMLINK
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/git/symlinks.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: FL_LSTATERR
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/symlinks.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: FL_ERR
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/git/symlinks.c
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: FL_FULLPATH
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/symlinks.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: USE_ONLY_LSTAT
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/git/symlinks.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/repo-settings.h
  types:
    enum:
    - enumerators:
      - name: UNTRACKED_CACHE_KEEP
      - name: UNTRACKED_CACHE_WRITE
      - name: UNTRACKED_CACHE_REMOVE
      item_type: enum
      name: untracked_cache_setting
      pos:
        line_end: 10
        line_start: 6
        source_file: /src/git/repo-settings.h
    - enumerators:
      - name: FETCH_NEGOTIATION_CONSECUTIVE
      - name: FETCH_NEGOTIATION_SKIPPING
      - name: FETCH_NEGOTIATION_NOOP
      item_type: enum
      name: fetch_negotiation_setting
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/git/repo-settings.h
    - enumerators:
      - name: LOG_REFS_UNSET
        value: '-1'
      - name: LOG_REFS_ALWAYS
      - name: LOG_REFS_NORMAL
      - name: LOG_REFS_NONE
        value: '0'
      item_type: enum
      name: log_refs_config
      pos:
        line_end: 23
        line_start: 18
        source_file: /src/git/repo-settings.h
    preproc_defs:
    - item_type: preproc_def
      name: REPO_SETTINGS_INIT
      pos:
        line_end: 84
        line_start: 73
        source_file: /src/git/repo-settings.h
      type_or_value: "{ \\\n\t.shared_repository = -1, \\\n\t.index_version = -1,
        \\\n\t.core_untracked_cache = UNTRACKED_CACHE_KEEP, \\\n\t.fetch_negotiation_algorithm
        = FETCH_NEGOTIATION_CONSECUTIVE, \\\n\t.warn_ambiguous_refs = -1, \\\n\t.delta_base_cache_limit
        = DEFAULT_DELTA_BASE_CACHE_LIMIT, \\\n\t.packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE,
        \\\n\t.packed_git_limit = DEFAULT_PACKED_GIT_LIMIT, \\\n\t.max_allowed_tree_depth
        = DEFAULT_MAX_ALLOWED_TREE_DEPTH, \\\n}"
    structs:
    - fields:
      - name: initialized
        type: int
      - name: core_commit_graph
        type: int
      - name: commit_graph_generation_version
        type: int
      - name: commit_graph_changed_paths_version
        type: int
      - name: gc_write_commit_graph
        type: int
      - name: fetch_write_commit_graph
        type: int
      - name: command_requires_full_index
        type: int
      - name: sparse_index
        type: int
      - name: pack_read_reverse_index
        type: int
      - name: pack_use_bitmap_boundary_traversal
        type: int
      - name: pack_use_multi_pack_reuse
        type: int
      - name: shared_repository
        type: int
      - name: shared_repository_initialized
        type: int
      - name: read_replace_refs
        type: int
      - name: '*fsmonitor'
        type: struct fsmonitor_settings
      - name: index_version
        type: int
      - name: index_skip_hash
        type: int
      - name: core_untracked_cache
        type: enum untracked_cache_setting
      - name: pack_use_sparse
        type: int
      - name: pack_use_path_walk
        type: int
      - name: fetch_negotiation_algorithm
        type: enum fetch_negotiation_setting
      - name: core_multi_pack_index
        type: int
      - name: warn_ambiguous_refs
        type: int
      - name: delta_base_cache_limit
        type: size_t
      - name: packed_git_window_size
        type: size_t
      - name: packed_git_limit
        type: size_t
      - name: big_file_threshold
        type: unsigned long
      - name: max_allowed_tree_depth
        type: int
      - name: '*hooks_path'
        type: char
      item_type: struct
      name: repo_settings
      pos:
        line_end: 72
        line_start: 25
        source_file: /src/git/repo-settings.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/upload-pack.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lookup_commit_reference_gently
  - lookup_commit_reference
  - lookup_commit_or_die
  - lookup_commit_object
  - lookup_commit
  - lookup_commit_reference_by_name
  - lookup_commit_reference_by_name_gently
  - parse_commit_date
  - commit_graft_oid_access
  - commit_graft_pos
  - unparse_commit
  - register_commit_graft
  - read_graft_line
  - read_graft_file
  - prepare_commit_graft
  - lookup_commit_graft
  - for_each_commit_graft
  - allocate_commit_buffer_slab
  - free_commit_buffer_slab
  - set_commit_buffer
  - get_cached_commit_buffer
  - repo_get_commit_buffer
  - repo_unuse_commit_buffer
  - free_commit_buffer
  - set_commit_tree
  - repo_get_commit_tree
  - get_commit_tree_oid
  - release_commit_memory
  - detach_commit_buffer
  - parse_commit_buffer
  - repo_parse_commit_internal
  - repo_parse_commit_gently
  - parse_commit_or_die
  - find_commit_subject
  - commit_subject_length
  - commit_list_insert
  - commit_list_contains
  - commit_list_count
  - commit_list_copy
  - commit_list_reverse
  - commit_list_free
  - commit_list_insert_by_date
  - commit_list_compare_by_date
  - commit_list_sort_by_date
  - pop_most_recent_commit
  - clear_commit_marks_1
  - clear_commit_marks_many
  - clear_commit_marks
  - pop_commit
  - record_author_date
  - compare_commits_by_author_date
  - compare_commits_by_gen_then_commit_date
  - compare_commits_by_commit_date
  - sort_in_topological_order
  - add_one_commit
  - collect_one_reflog_ent
  - get_fork_point
  - add_header_signature
  - parse_signed_commit
  - parse_buffer_signed_by_header
  - remove_signature
  - handle_signed_tag
  - verify_commit_buffer
  - check_commit_signature
  - verify_merge_signature
  - append_merge_tag_headers
  - convert_commit_extra_headers
  - add_extra_header
  - read_commit_extra_headers
  - for_each_mergetag
  - standard_header_field
  - excluded_header_field
  - read_commit_extra_header_lines
  - free_commit_extra_headers
  - commit_tree
  - has_invalid_utf8
  - ensure_utf8
  - write_commit_tree
  - commit_tree_extended
  - merge_remote_util
  - set_merge_remote_desc
  - get_merge_parent
  - commit_list_append
  - find_commit_header
  - ignored_log_message_bytes
  - run_commit_hook
  - commit_stack_init
  - commit_stack_grow
  - commit_stack_push
  - commit_stack_pop
  - commit_stack_clear
  source_file: /src/git/commit.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*buffer'
        type: void
      - name: size
        type: unsigned long
      item_type: struct
      name: commit_buffer
      pos:
        line_end: 352
        line_start: 349
        source_file: /src/git/commit.c
    - fields:
      - name: stack
        type: struct commit_stack
      - name: initial
        type: unsigned int
      item_type: struct
      name: rev_collect
      pos:
        line_end: 1040
        line_start: 1037
        source_file: /src/git/commit.c
    - fields:
      - name: '*start'
        type: char
      - name: '*end'
        type: char
      item_type: struct
      name: sigbuf
      pos:
        line_end: 1238
        line_start: 1235
        source_file: /src/git/commit.c
    - fields:
      - name: '*sig'
        type: struct strbuf
      - name: '*algo'
        type: struct git_hash_algo
      item_type: struct
      name: sig_pairs
      pos:
        line_end: 1804
        line_start: 1801
        source_file: /src/git/commit.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/object-name.h
  types:
    enum:
    - enumerators:
      - name: INTERPRET_BRANCH_LOCAL
        value: (1 << 0)
      - name: INTERPRET_BRANCH_REMOTE
        value: (1 << 1)
      - name: INTERPRET_BRANCH_HEAD
        value: (1 << 2)
      item_type: enum
      name: interpret_branch_kind
      pos:
        line_end: 107
        line_start: 103
        source_file: /src/git/object-name.h
    preproc_defs:
    - item_type: preproc_def
      name: MINIMUM_ABBREV
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/git/object-name.h
      type_or_value: minimum_abbrev
    - item_type: preproc_def
      name: DEFAULT_ABBREV
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/git/object-name.h
      type_or_value: default_abbrev
    - item_type: preproc_def
      name: FALLBACK_DEFAULT_ABBREV
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/git/object-name.h
      type_or_value: '7'
    structs:
    - fields:
      - name: mode
        type: unsigned short
      - name: symlink_path
        type: struct strbuf
      - name: '*path'
        type: char
      item_type: struct
      name: object_context
      pos:
        line_end: 22
        line_start: 9
        source_file: /src/git/object-name.h
    - fields:
      - name: allowed
        type: enum interpret_branch_kind
      - name: nonfatal_dangling_mark
        type: unsigned
      item_type: struct
      name: interpret_branch_name_options
      pos:
        line_end: 124
        line_start: 109
        source_file: /src/git/object-name.h
    typedefs:
    - item_type: typedef
      name: each_abbrev_fn(const struct object_id *oid, void *)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/git/object-name.h
      type: int
    union: []
- function_names:
  - read_tree_at
  - read_tree
  - base_name_compare
  - df_name_compare
  - name_compare
  - lookup_tree
  - parse_tree_buffer
  - repo_parse_tree_gently
  - free_tree_buffer
  - repo_parse_tree_indirect
  source_file: /src/git/tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/promisor-remote.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct promisor_remote
      - name: '*partial_clone_filter'
        type: char
      - name: '*advertised_filter'
        type: char
      - name: accepted
        type: unsigned int
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: promisor_remote
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/git/promisor-remote.h
    typedefs: []
    union: []
- function_names:
  - prepare_pack_objects
  - pack_objects_args_release
  - repack_remove_redundant_pack
  - write_pack_opts_pack_prefix
  - write_pack_opts_is_local
  - finish_pack_objects_cmd
  - existing_packs_collect
  - existing_packs_has_non_kept
  - existing_pack_mark_for_deletion
  - existing_pack_unmark_for_deletion
  - existing_pack_is_marked_for_deletion
  - existing_packs_mark_retained
  - existing_pack_is_retained
  - existing_packs_mark_for_deletion_1
  - for_each_string_list_item
  - existing_packs_retain_cruft
  - existing_packs_mark_for_deletion
  - existing_packs_retain_midx_packs
  - remove_redundant_packs_1
  - for_each_string_list_item
  - existing_packs_remove_redundant
  - existing_packs_release
  - generated_pack_populate
  - generated_pack_has_ext
  - generated_pack_install
  source_file: /src/git/repack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DELETE_PACK
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/git/repack.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RETAIN_PACK
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/git/repack.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: optional
        type: unsigned
      item_type: struct
      name: "exts[] = {\n\t{\".pack\"},\n\t{\".rev\", 1},\n\t{\".mtimes\", 1},\n\t{\".bitmap\",
        1},\n\t{\".promisor\", 1},\n\t{\".idx\"},\n}"
      pos:
        line_end: 326
        line_start: 323
        source_file: /src/git/repack.c
    - fields:
      - name: '*tempfiles[ARRAY_SIZE(exts)]'
        type: struct tempfile
      item_type: struct
      name: generated_pack
      pos:
        line_end: 337
        line_start: 335
        source_file: /src/git/repack.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/serve.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - define_commit_slab
  source_file: /src/git/commit-slab.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - packet_trace_identity
  - get_trace_prefix
  - packet_trace_pack
  - packet_trace
  - packet_flush
  - packet_delim
  - packet_response_end
  - packet_flush_gently
  - packet_buf_flush
  - packet_buf_delim
  - set_packet_header
  - hex
  - format_packet
  - packet_write_fmt_1
  - packet_write_fmt
  - packet_write_fmt_gently
  - do_packet_write
  - packet_write_gently
  - packet_write
  - packet_fwrite
  - packet_fwrite_fmt
  - packet_fflush
  - packet_buf_write
  - write_packetized_from_fd_no_flush
  - write_packetized_from_buf_no_flush_count
  - get_packet_data
  - packet_length
  - find_packfile_uri_path
  - packet_read_with_status
  - packet_read
  - packet_read_line
  - packet_read_line_gently
  - read_packetized_to_strbuf
  - recv_sideband
  - packet_reader_init
  - packet_reader_read
  - packet_reader_peek
  - packet_writer_init
  - packet_writer_write
  - packet_writer_error
  - packet_writer_delim
  - packet_writer_flush
  source_file: /src/git/pkt-line.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lookup_stored_bitmap
  - read_bitmap
  - read_bitmap_1
  - bitmap_num_objects_total
  - bitmap_num_objects
  - bitmap_name_hash
  - bitmap_repo
  - load_bitmap_header
  - store_bitmap
  - read_be32
  - read_u8
  - nth_bitmap_object_oid
  - load_bitmap_entries_v1
  - midx_bitmap_filename
  - pack_bitmap_filename
  - open_midx_bitmap_1
  - open_pack_bitmap_1
  - load_reverse_index
  - load_all_type_bitmaps
  - load_bitmap
  - open_pack_bitmap
  - repo_for_each_pack
  - open_midx_bitmap
  - open_bitmap
  - prepare_bitmap_git
  - prepare_midx_bitmap_git
  - bitmap_index_contains_pack
  - bitmap_lookup_table_get_triplet_by_pointer
  - bitmap_lookup_table_get_triplet
  - triplet_cmp
  - bitmap_bsearch_pos
  - bitmap_bsearch_triplet_by_pos
  - lazy_bitmap_for_commit
  - find_bitmap_for_commit
  - bitmap_for_commit
  - bitmap_position_extended
  - bitmap_position_packfile
  - bitmap_position_midx
  - bitmap_position
  - ext_index_add_object
  - show_object
  - show_commit
  - apply_pseudo_merges_for_commit_1
  - add_to_include_set
  - should_include
  - should_include_obj
  - add_commit_to_bitmap
  - fill_in_bitmap
  - show_boundary_commit
  - show_boundary_object
  - cascade_pseudo_merges_1
  - find_boundary_objects
  - pseudo_merge_bitmap_for_commit
  - unsatisfy_all_pseudo_merges
  - find_objects
  - show_extended_objects
  - init_type_iterator
  - show_objects_for_type
  - in_bitmapped_pack
  - find_tip_objects
  - filter_bitmap_exclude_type
  - filter_bitmap_blob_none
  - get_size_by_pos
  - filter_bitmap_blob_limit
  - filter_bitmap_tree_depth
  - filter_bitmap_object_type
  - filter_bitmap
  - can_filter_bitmap
  - filter_packed_objects_from_bitmap
  - for_each_bitmapped_object
  - prepare_bitmap_walk
  - try_partial_reuse
  - reuse_partial_packfile_from_bitmap_1
  - bitmapped_pack_cmp
  - reuse_partial_packfile_from_bitmap
  - bitmap_walk_contains
  - traverse_bitmap_commit_list
  - count_object_type
  - count_bitmap_commit_list
  - test_bitmap_type
  - test_show_object
  - test_show_commit
  - bitmap_total_entry_count
  - bitmap_test_data_prepare
  - bitmap_test_data_release
  - test_bitmap_walk
  - test_bitmap_commits
  - test_bitmap_commits_with_offset
  - test_bitmap_hashes
  - bit_pos_to_object_id
  - test_bitmap_pseudo_merges
  - dump_ewah_object_ids
  - test_bitmap_pseudo_merge_commits
  - test_bitmap_pseudo_merge_objects
  - rebuild_bitmap
  - create_bitmap_mapping
  - free_bitmap_index
  - bitmap_has_oid_in_uninteresting
  - get_disk_usage_for_type
  - get_disk_usage_for_extended
  - get_disk_usage_from_bitmap
  - bitmap_is_midx
  - bitmap_preferred_tips
  - for_each_preferred_bitmap_tip
  - for_each_string_list_item
  - bitmap_is_preferred_refname
  - for_each_string_list_item
  - verify_bitmap_file
  - verify_bitmap_files
  - repo_for_each_pack
  source_file: /src/git/pack-bitmap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_XOR_OFFSET
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/git/pack-bitmap.c
      type_or_value: '160'
    structs:
    - fields:
      - name: oid
        type: struct object_id
      - name: '*root'
        type: struct ewah_bitmap
      - name: '*xor'
        type: struct stored_bitmap
      - name: map_pos
        type: size_t
      - name: flags
        type: int
      item_type: struct
      name: stored_bitmap
      pos:
        line_end: 35
        line_start: 29
        source_file: /src/git/pack-bitmap.c
    - fields:
      - name: '*pack'
        type: struct packed_git
      - name: '*midx'
        type: struct multi_pack_index
      - name: '*base'
        type: struct bitmap_index
      - name: base_nr
        type: uint32_t
      - name: '*map'
        type: unsigned char
      - name: map_size
        type: size_t
      - name: map_pos
        type: size_t
      - name: '*commits'
        type: struct ewah_bitmap
      - name: '*trees'
        type: struct ewah_bitmap
      - name: '*blobs'
        type: struct ewah_bitmap
      - name: '*tags'
        type: struct ewah_bitmap
      - name: '**commits_all'
        type: struct ewah_bitmap
      - name: '**trees_all'
        type: struct ewah_bitmap
      - name: '**blobs_all'
        type: struct ewah_bitmap
      - name: '**tags_all'
        type: struct ewah_bitmap
      - name: '*bitmaps'
        type: kh_oid_map_t
      - name: entry_count
        type: uint32_t
      - name: '*hashes'
        type: uint32_t
      - name: '*checksum'
        type: unsigned char
      - name: '*table_lookup'
        type: unsigned char
      - name: pseudo_merges
        type: struct pseudo_merge_map
      - name: ext_index
        type: "struct eindex {\n\t\tstruct object **objects;\n\t\tuint32_t *hashes;\n\t\tuint32_t
          count, alloc;\n\t\tkh_oid_pos_t *positions;\n\t}"
      - name: '*result'
        type: struct bitmap
      - name: '*haves'
        type: struct bitmap
      - name: version
        type: unsigned int
      item_type: struct
      name: bitmap_index
      pos:
        line_end: 143
        line_start: 45
        source_file: /src/git/pack-bitmap.c
    - fields:
      - name: '**objects'
        type: struct object
      - name: '*hashes'
        type: uint32_t
      - name: count
        type: uint32_t
      - name: '*positions'
        type: kh_oid_pos_t
      item_type: struct
      name: eindex
      pos:
        line_end: 133
        line_start: 128
        source_file: /src/git/pack-bitmap.c
    - fields:
      - name: '*bitmap_git'
        type: struct bitmap_index
      - name: '*base'
        type: struct bitmap
      - name: '*seen'
        type: struct bitmap
      item_type: struct
      name: include_data
      pos:
        line_end: 780
        line_start: 776
        source_file: /src/git/pack-bitmap.c
    - fields:
      - name: commit_pos
        type: uint32_t
      - name: offset
        type: uint64_t
      - name: xor_row
        type: uint32_t
      item_type: struct
      name: bitmap_lookup_table_triplet
      pos:
        line_end: 786
        line_start: 782
        source_file: /src/git/pack-bitmap.c
    - fields:
      - name: oid
        type: struct object_id
      - name: offset
        type: uint64_t
      item_type: struct
      name: bitmap_lookup_table_xor_item
      pos:
        line_end: 791
        line_start: 788
        source_file: /src/git/pack-bitmap.c
    - fields:
      - name: '*bitmap_git'
        type: struct bitmap_index
      - name: '*base'
        type: struct bitmap
      item_type: struct
      name: bitmap_show_data
      pos:
        line_end: 1137
        line_start: 1134
        source_file: /src/git/pack-bitmap.c
    - fields:
      - name: '*bitmap_git'
        type: struct bitmap_index
      - name: '*base'
        type: struct bitmap
      - name: boundary
        type: struct object_array
      item_type: struct
      name: bitmap_boundary_cb
      pos:
        line_end: 1311
        line_start: 1306
        source_file: /src/git/pack-bitmap.c
    - fields:
      - name: '*bitmap_git'
        type: struct bitmap_index
      - name: '*base'
        type: struct bitmap
      - name: '*commits'
        type: struct bitmap
      - name: '*trees'
        type: struct bitmap
      - name: '*blobs'
        type: struct bitmap
      - name: '*tags'
        type: struct bitmap
      - name: '*prg'
        type: struct progress
      - name: seen
        type: size_t
      - name: '*base_tdata'
        type: struct bitmap_test_data
      item_type: struct
      name: bitmap_test_data
      pos:
        line_end: 2670
        line_start: 2659
        source_file: /src/git/pack-bitmap.c
    typedefs: []
    union: []
- function_names:
  - show_commit
  - show_object
  - process_blob
  - process_tree_contents
  - process_tree
  - process_tag
  - mark_edge_parents_uninteresting
  - add_edge_parents
  - mark_edges_uninteresting
  - add_pending_tree
  - traverse_non_commits
  - do_traverse
  - traverse_commit_list_filtered
  source_file: /src/git/list-objects.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*revs'
        type: struct rev_info
      - name: show_object
        type: show_object_fn
      - name: show_commit
        type: show_commit_fn
      - name: '*show_data'
        type: void
      - name: '*filter'
        type: struct filter
      - name: depth
        type: int
      item_type: struct
      name: traversal_context
      pos:
        line_end: 27
        line_start: 20
        source_file: /src/git/list-objects.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/merge-ort-wrappers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - repo_cfg_bool
  - repo_cfg_int
  - repo_cfg_ulong
  - prepare_repo_settings
  - repo_settings_clear
  - repo_settings_get_big_file_threshold
  - repo_settings_set_big_file_threshold
  - repo_settings_get_log_all_ref_updates
  - repo_settings_get_warn_ambiguous_refs
  - repo_settings_get_hooks_path
  - repo_settings_get_shared_repository
  - repo_settings_set_shared_repository
  - repo_settings_reset_shared_repository
  source_file: /src/git/repo-settings.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/prune-packed.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRUNE_PACKED_DRY_RUN
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/prune-packed.h
      type_or_value: '01'
    - item_type: preproc_def
      name: PRUNE_PACKED_VERBOSE
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/prune-packed.h
      type_or_value: '02'
    structs: []
    typedefs: []
    union: []
- function_names:
  - locate_rename_dst
  - add_rename_dst
  - register_rename_src
  - basename_same
  - inexact_prefetch
  - estimate_similarity
  - record_rename_pair
  - score_compare
  - hash_filespec
  - find_identical_files
  - hashmap_for_each_entry_from
  - insert_file_table
  - find_exact_renames
  - get_dirname
  - dirname_munge
  - get_highest_rename_path
  - dir_rename_already_determinable
  - increment_count
  - update_dir_rename_counts
  - initialize_dir_rename_info
  - partial_clear_dir_rename_count
  - cleanup_dir_rename_info
  - get_basename
  - idx_possible_rename
  - basename_prefetch
  - find_basename_matches
  - record_if_better
  - too_many_rename_candidates
  - find_renames
  - remove_unneeded_paths_from_src
  - handle_early_known_dir_renames
  - free_filespec_data
  - pool_free_filespec
  - pool_diff_free_filepair
  - diffcore_rename_extended
  - diffcore_rename
  source_file: /src/git/diffcore-rename.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_CANDIDATE_PER_DST
      pos:
        line_end: 1064
        line_start: 1063
        source_file: /src/git/diffcore-rename.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '*p'
        type: struct diff_filepair
      - name: '*filespec_to_free'
        type: struct diff_filespec
      - name: is_rename
        type: int
      item_type: struct
      name: diff_rename_dst
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/git/diffcore-rename.c
    - fields:
      - name: '*p'
        type: struct diff_filepair
      - name: score
        type: unsigned short
      item_type: struct
      name: diff_rename_src
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/git/diffcore-rename.c
    - fields:
      - name: src
        type: int
      - name: dst
        type: int
      - name: score
        type: unsigned short
      - name: name_score
        type: short
      item_type: struct
      name: diff_score
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/git/diffcore-rename.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: skip_unmodified
        type: int
      item_type: struct
      name: inexact_prefetch_options
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/git/diffcore-rename.c
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: index
        type: int
      - name: '*filespec'
        type: struct diff_filespec
      item_type: struct
      name: file_similarity
      pos:
        line_end: 261
        line_start: 257
        source_file: /src/git/diffcore-rename.c
    - fields:
      - name: idx_map
        type: struct strintmap
      - name: dir_rename_guess
        type: struct strmap
      - name: '*dir_rename_count'
        type: struct strmap
      - name: '*relevant_source_dirs'
        type: struct strintmap
      - name: setup
        type: unsigned
      item_type: struct
      name: dir_rename_info
      pos:
        line_end: 377
        line_start: 371
        source_file: /src/git/diffcore-rename.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*relevant_sources'
        type: struct strintmap
      - name: '*sources'
        type: struct strintmap
      - name: '*dests'
        type: struct strintmap
      - name: '*info'
        type: struct dir_rename_info
      item_type: struct
      name: basename_prefetch_options
      pos:
        line_end: 836
        line_start: 830
        source_file: /src/git/diffcore-rename.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/shortlog.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: struct string_list
      - name: summary
        type: int
      - name: wrap_lines
        type: int
      - name: sort_by_number
        type: int
      - name: wrap
        type: int
      - name: in1
        type: int
      - name: in2
        type: int
      - name: user_format
        type: int
      - name: abbrev
        type: int
      - name: date_mode
        type: struct date_mode
      - name: groups
        type: "enum {\n\t\tSHORTLOG_GROUP_AUTHOR = (1 << 0),\n\t\tSHORTLOG_GROUP_COMMITTER
          = (1 << 1),\n\t\tSHORTLOG_GROUP_TRAILER = (1 << 2),\n\t\tSHORTLOG_GROUP_FORMAT
          = (1 << 3),\n\t}"
      - name: trailers
        type: struct string_list
      - name: format
        type: struct string_list
      - name: email
        type: int
      - name: mailmap
        type: struct string_list
      - name: '*file'
        type: FILE
      item_type: struct
      name: shortlog
      pos:
        line_end: 32
        line_start: 8
        source_file: /src/git/shortlog.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/notes-merge.h
  types:
    enum:
    - enumerators:
      - name: NOTES_MERGE_VERBOSITY_DEFAULT
        value: '2'
      - name: NOTES_MERGE_VERBOSITY_MAX
        value: '5'
      item_type: enum
      name: notes_merge_verbosity
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/git/notes-merge.h
    preproc_defs:
    - item_type: preproc_def
      name: NOTES_MERGE_WORKTREE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/notes-merge.h
      type_or_value: '"NOTES_MERGE_WORKTREE"'
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*local_ref'
        type: char
      - name: '*remote_ref'
        type: char
      - name: commit_msg
        type: struct strbuf
      - name: verbosity
        type: int
      - name: strategy
        type: enum notes_merge_strategy
      - name: has_worktree
        type: unsigned
      item_type: struct
      name: notes_merge_options
      pos:
        line_end: 25
        line_start: 17
        source_file: /src/git/notes-merge.h
    typedefs: []
    union: []
- function_names:
  - COL_LAYOUT
  - explicitly_enable_column
  - column_active
  source_file: /src/git/column.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COL_LAYOUT_MASK
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/column.h
      type_or_value: '0x000F'
    - item_type: preproc_def
      name: COL_ENABLE_MASK
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/column.h
      type_or_value: '0x0030   '
    - item_type: preproc_def
      name: COL_PARSEOPT
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/column.h
      type_or_value: '0x0040   '
    - item_type: preproc_def
      name: COL_DENSE
      pos:
        line_end: 8
        line_start: 6
        source_file: /src/git/column.h
      type_or_value: '0x0080   '
    - item_type: preproc_def
      name: COL_DISABLED
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/column.h
      type_or_value: '0x0000   '
    - item_type: preproc_def
      name: COL_ENABLED
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/column.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: COL_AUTO
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/column.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: COL_COLUMN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/column.h
      type_or_value: '0   '
    - item_type: preproc_def
      name: COL_ROW
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/column.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: COL_PLAIN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/column.h
      type_or_value: '15   '
    structs:
    - fields:
      - name: width
        type: int
      - name: padding
        type: int
      - name: '*indent'
        type: char
      - name: '*nl'
        type: char
      item_type: struct
      name: column_options
      pos:
        line_end: 26
        line_start: 21
        source_file: /src/git/column.h
    typedefs: []
    union: []
- function_names:
  - git_attr_name
  - hashmap_lock
  - hashmap_unlock
  - attr_hash_entry_cmp
  - attr_hashmap_get
  - attr_hashmap_add
  - all_attrs_init
  - attr_name_reserved
  - attr_name_valid
  - report_invalid_attr
  - git_attr_internal
  - git_attr
  - parse_attr
  - parse_attr_line
  - attr_stack_free
  - drop_attr_stack
  - vector_lock
  - vector_unlock
  - check_vector_add
  - check_vector_remove
  - drop_all_attr_stacks
  - attr_check_alloc
  - attr_check_initl
  - attr_check_dup
  - attr_check_append
  - attr_check_reset
  - attr_check_clear
  - attr_check_free
  - handle_attr_line
  - read_attr_from_array
  - git_attr_set_direction
  - read_attr_from_file
  - read_attr_from_buf
  - read_attr_from_blob
  - read_attr_from_index
  - read_attr
  - git_attr_system_file
  - git_attr_global_file
  - git_attr_system_is_enabled
  - push_stack
  - bootstrap_attr_stack
  - prepare_attr_stack
  - path_matches
  - attr_state_queue_push
  - attr_state_queue_pop
  - attr_state_queue_release
  - fill_one
  - fill
  - determine_macros
  - collect_some_attrs
  - set_git_attr_source
  - compute_default_attr_source
  - default_attr_source
  - interned_mode_string
  - builtin_object_mode_attr
  - compute_builtin_attr
  - git_check_attr
  - git_all_attrs
  - attr_start
  source_file: /src/git/attr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ATTR__TRUE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/attr.c
      type_or_value: git_attr__true
    - item_type: preproc_def
      name: ATTR__FALSE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/attr.c
      type_or_value: git_attr__false
    - item_type: preproc_def
      name: ATTR__UNSET
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/git/attr.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ATTR__UNKNOWN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/attr.c
      type_or_value: git_attr__unknown
    - item_type: preproc_def
      name: READ_ATTR_MACRO_OK
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/git/attr.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: READ_ATTR_NOFOLLOW
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/git/attr.c
      type_or_value: (1<<1)
    structs:
    - fields:
      - name: attr_nr
        type: unsigned int
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: git_attr
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/git/attr.c
    - fields:
      - name: map
        type: struct hashmap
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: attr_hashmap
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/git/attr.c
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*key'
        type: char
      - name: keylen
        type: size_t
      - name: '*value'
        type: void
      item_type: struct
      name: attr_hash_entry
      pos:
        line_end: 71
        line_start: 66
        source_file: /src/git/attr.c
    - fields:
      - name: '*attr'
        type: struct git_attr
      - name: '*value'
        type: char
      - name: '*macro'
        type: struct match_attr
      item_type: struct
      name: all_attrs_item
      pos:
        line_end: 138
        line_start: 129
        source_file: /src/git/attr.c
    - fields:
      - name: '*prev'
        type: struct attr_stack
      - name: '*origin'
        type: char
      - name: originlen
        type: size_t
      - name: num_matches
        type: unsigned
      - name: alloc
        type: unsigned
      - name: '**attrs'
        type: struct match_attr
      item_type: struct
      name: attr_stack
      pos:
        line_end: 436
        line_start: 429
        source_file: /src/git/attr.c
    - fields:
      - name: nr
        type: size_t
      - name: alloc
        type: size_t
      - name: '**checks'
        type: struct attr_check
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: check_vector
      pos:
        line_end: 477
        line_start: 472
        source_file: /src/git/attr.c
    - fields:
      - name: '**items'
        type: struct attr_state
      - name: alloc
        type: size_t
      item_type: struct
      name: attr_state_queue
      pos:
        line_end: 1070
        line_start: 1067
        source_file: /src/git/attr.c
    - fields:
      - name: val
        type: unsigned int
      - name: str[7]
        type: char
      item_type: struct
      name: "mode_string[] = {\n\t\t{ .val = 0040000 },\n\t\t{ .val = 0100644 },\n\t\t{
        .val = 0100755 },\n\t\t{ .val = 0120000 },\n\t\t{ .val = 0160000 },\n\t}"
      pos:
        line_end: 1249
        line_start: 1246
        source_file: /src/git/attr.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/pack-bitmap.h
  types:
    enum:
    - enumerators:
      - name: BITMAP_OPT_FULL_DAG
        value: '0x1'
      - name: BITMAP_OPT_LOOKUP_TABLE
        value: '0x10'
      - name: BITMAP_OPT_PSEUDO_MERGES
        value: '0x20'
      - name: BITMAP_OPT_HASH_CACHE
        value: '0x4'
      item_type: enum
      name: pack_bitmap_opts
      pos:
        line_end: 41
        line_start: 36
        source_file: /src/git/pack-bitmap.h
    - enumerators:
      - name: BITMAP_FLAG_REUSE
        value: '0x1'
      item_type: enum
      name: pack_bitmap_flags
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/git/pack-bitmap.h
    preproc_defs:
    - item_type: preproc_def
      name: BITMAP_PSEUDO_MERGE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/pack-bitmap.h
      type_or_value: (1u<<21)
    - item_type: preproc_def
      name: NEEDS_BITMAP
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/pack-bitmap.h
      type_or_value: (1u<<22)
    - item_type: preproc_def
      name: BITMAP_LOOKUP_TABLE_TRIPLET_WIDTH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/pack-bitmap.h
      type_or_value: (16)
    - item_type: preproc_def
      name: GIT_TEST_PACK_USE_BITMAP_BOUNDARY_TRAVERSAL
      pos:
        line_end: 111
        line_start: 109
        source_file: /src/git/pack-bitmap.h
      type_or_value: '"GIT_TEST_PACK_USE_BITMAP_BOUNDARY_TRAVERSAL"'
    structs:
    - fields:
      - name: magic[ARRAY_SIZE(BITMAP_IDX_SIGNATURE)]
        type: char
      - name: version
        type: uint16_t
      - name: options
        type: uint16_t
      - name: entry_count
        type: uint32_t
      - name: checksum[GIT_MAX_RAWSZ]
        type: unsigned char
      item_type: struct
      name: bitmap_disk_header
      pos:
        line_end: 22
        line_start: 16
        source_file: /src/git/pack-bitmap.h
    - fields:
      - name: '*p'
        type: struct packed_git
      - name: bitmap_pos
        type: uint32_t
      - name: bitmap_nr
        type: uint32_t
      - name: '*from_midx'
        type: struct multi_pack_index
      - name: pack_int_id
        type: uint32_t
      item_type: struct
      name: bitmapped_pack
      pos:
        line_end: 66
        line_start: 58
        source_file: /src/git/pack-bitmap.h
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*commits'
        type: struct ewah_bitmap
      - name: '*trees'
        type: struct ewah_bitmap
      - name: '*blobs'
        type: struct ewah_bitmap
      - name: '*tags'
        type: struct ewah_bitmap
      - name: '*bitmaps'
        type: kh_oid_map_t
      - name: '*to_pack'
        type: struct packing_data
      - name: '*midx'
        type: struct multi_pack_index
      - name: '*selected'
        type: struct bitmapped_commit
      - name: selected_nr
        type: unsigned int
      - name: pseudo_merge_groups
        type: struct string_list
      - name: '*pseudo_merge_commits'
        type: kh_oid_map_t
      - name: pseudo_merges_nr
        type: uint32_t
      - name: '*progress'
        type: struct progress
      - name: show_progress
        type: int
      - name: pack_checksum[GIT_MAX_RAWSZ]
        type: unsigned char
      item_type: struct
      name: bitmap_writer
      pos:
        line_end: 155
        line_start: 134
        source_file: /src/git/pack-bitmap.h
    typedefs:
    - item_type: typedef
      name: "(*show_reachable_fn)(\n\tconst struct object_id *oid,\n\tenum object_type
        type,\n\tint flags,\n\tuint32_t hash,\n\tstruct packed_git *found_pack,\n\toff_t
        found_offset,\n\tvoid *payload)"
      pos:
        line_end: 54
        line_start: 47
        source_file: /src/git/pack-bitmap.h
      type: int
    union: []
- function_names:
  - score_missing
  - score_differs
  - score_matches
  - fill_tree_desc_strict
  - base_name_entries_compare
  - score_trees
  - match_trees
  - splice_tree
  - shift_tree
  - shift_tree_by
  source_file: /src/git/match-trees.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/environment.h
  types:
    enum:
    - enumerators:
      - name: AUTOREBASE_NEVER
        value: '0'
      - name: AUTOREBASE_REMOTE
      - name: AUTOREBASE_ALWAYS
      - name: AUTOREBASE_LOCAL
      item_type: enum
      name: rebase_setup_type
      pos:
        line_end: 186
        line_start: 181
        source_file: /src/git/environment.h
    - enumerators:
      - name: PUSH_DEFAULT_NOTHING
        value: '0'
      - name: PUSH_DEFAULT_SIMPLE
      - name: PUSH_DEFAULT_MATCHING
      - name: PUSH_DEFAULT_CURRENT
      - name: PUSH_DEFAULT_UPSTREAM
      - name: PUSH_DEFAULT_UNSPECIFIED
      item_type: enum
      name: push_default_type
      pos:
        line_end: 196
        line_start: 189
        source_file: /src/git/environment.h
    - enumerators:
      - name: OBJECT_CREATION_USES_HARDLINKS
        value: '0'
      - name: OBJECT_CREATION_USES_RENAMES
        value: '1'
      item_type: enum
      name: object_creation_mode
      pos:
        line_end: 202
        line_start: 199
        source_file: /src/git/environment.h
    preproc_defs:
    - item_type: preproc_def
      name: GIT_DIR_ENVIRONMENT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/environment.h
      type_or_value: '"GIT_DIR"'
    - item_type: preproc_def
      name: GIT_COMMON_DIR_ENVIRONMENT
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/environment.h
      type_or_value: '"GIT_COMMON_DIR"'
    - item_type: preproc_def
      name: GIT_NAMESPACE_ENVIRONMENT
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/environment.h
      type_or_value: '"GIT_NAMESPACE"'
    - item_type: preproc_def
      name: GIT_WORK_TREE_ENVIRONMENT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/environment.h
      type_or_value: '"GIT_WORK_TREE"'
    - item_type: preproc_def
      name: GIT_PREFIX_ENVIRONMENT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/environment.h
      type_or_value: '"GIT_PREFIX"'
    - item_type: preproc_def
      name: DEFAULT_GIT_DIR_ENVIRONMENT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/environment.h
      type_or_value: '".git"'
    - item_type: preproc_def
      name: DB_ENVIRONMENT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/environment.h
      type_or_value: '"GIT_OBJECT_DIRECTORY"'
    - item_type: preproc_def
      name: INDEX_ENVIRONMENT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/environment.h
      type_or_value: '"GIT_INDEX_FILE"'
    - item_type: preproc_def
      name: GRAFT_ENVIRONMENT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/environment.h
      type_or_value: '"GIT_GRAFT_FILE"'
    - item_type: preproc_def
      name: GIT_SHALLOW_FILE_ENVIRONMENT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/environment.h
      type_or_value: '"GIT_SHALLOW_FILE"'
    - item_type: preproc_def
      name: TEMPLATE_DIR_ENVIRONMENT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/environment.h
      type_or_value: '"GIT_TEMPLATE_DIR"'
    - item_type: preproc_def
      name: CONFIG_ENVIRONMENT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/environment.h
      type_or_value: '"GIT_CONFIG"'
    - item_type: preproc_def
      name: CONFIG_DATA_ENVIRONMENT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/environment.h
      type_or_value: '"GIT_CONFIG_PARAMETERS"'
    - item_type: preproc_def
      name: CONFIG_COUNT_ENVIRONMENT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/environment.h
      type_or_value: '"GIT_CONFIG_COUNT"'
    - item_type: preproc_def
      name: EXEC_PATH_ENVIRONMENT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/environment.h
      type_or_value: '"GIT_EXEC_PATH"'
    - item_type: preproc_def
      name: CEILING_DIRECTORIES_ENVIRONMENT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/environment.h
      type_or_value: '"GIT_CEILING_DIRECTORIES"'
    - item_type: preproc_def
      name: NO_REPLACE_OBJECTS_ENVIRONMENT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/environment.h
      type_or_value: '"GIT_NO_REPLACE_OBJECTS"'
    - item_type: preproc_def
      name: GIT_REPLACE_REF_BASE_ENVIRONMENT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/environment.h
      type_or_value: '"GIT_REPLACE_REF_BASE"'
    - item_type: preproc_def
      name: NO_LAZY_FETCH_ENVIRONMENT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/environment.h
      type_or_value: '"GIT_NO_LAZY_FETCH"'
    - item_type: preproc_def
      name: GITATTRIBUTES_FILE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/environment.h
      type_or_value: '".gitattributes"'
    - item_type: preproc_def
      name: INFOATTRIBUTES_FILE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/environment.h
      type_or_value: '"info/attributes"'
    - item_type: preproc_def
      name: ATTRIBUTE_MACRO_PREFIX
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/environment.h
      type_or_value: '"[attr]"'
    - item_type: preproc_def
      name: GITMODULES_FILE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/environment.h
      type_or_value: '".gitmodules"'
    - item_type: preproc_def
      name: GITMODULES_INDEX
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/environment.h
      type_or_value: '":.gitmodules"'
    - item_type: preproc_def
      name: GITMODULES_HEAD
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/environment.h
      type_or_value: '"HEAD:.gitmodules"'
    - item_type: preproc_def
      name: GIT_NOTES_REF_ENVIRONMENT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/environment.h
      type_or_value: '"GIT_NOTES_REF"'
    - item_type: preproc_def
      name: GIT_NOTES_DEFAULT_REF
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/environment.h
      type_or_value: '"refs/notes/commits"'
    - item_type: preproc_def
      name: GIT_NOTES_DISPLAY_REF_ENVIRONMENT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/environment.h
      type_or_value: '"GIT_NOTES_DISPLAY_REF"'
    - item_type: preproc_def
      name: GIT_NOTES_REWRITE_REF_ENVIRONMENT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/environment.h
      type_or_value: '"GIT_NOTES_REWRITE_REF"'
    - item_type: preproc_def
      name: GIT_NOTES_REWRITE_MODE_ENVIRONMENT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/environment.h
      type_or_value: '"GIT_NOTES_REWRITE_MODE"'
    - item_type: preproc_def
      name: GIT_LITERAL_PATHSPECS_ENVIRONMENT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/git/environment.h
      type_or_value: '"GIT_LITERAL_PATHSPECS"'
    - item_type: preproc_def
      name: GIT_GLOB_PATHSPECS_ENVIRONMENT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/environment.h
      type_or_value: '"GIT_GLOB_PATHSPECS"'
    - item_type: preproc_def
      name: GIT_NOGLOB_PATHSPECS_ENVIRONMENT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/environment.h
      type_or_value: '"GIT_NOGLOB_PATHSPECS"'
    - item_type: preproc_def
      name: GIT_ICASE_PATHSPECS_ENVIRONMENT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/environment.h
      type_or_value: '"GIT_ICASE_PATHSPECS"'
    - item_type: preproc_def
      name: GIT_QUARANTINE_ENVIRONMENT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/environment.h
      type_or_value: '"GIT_QUARANTINE_PATH"'
    - item_type: preproc_def
      name: GIT_OPTIONAL_LOCKS_ENVIRONMENT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/environment.h
      type_or_value: '"GIT_OPTIONAL_LOCKS"'
    - item_type: preproc_def
      name: GIT_TEXT_DOMAIN_DIR_ENVIRONMENT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/environment.h
      type_or_value: '"GIT_TEXTDOMAINDIR"'
    - item_type: preproc_def
      name: GIT_ATTR_SOURCE_ENVIRONMENT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/environment.h
      type_or_value: '"GIT_ATTR_SOURCE"'
    - item_type: preproc_def
      name: GIT_REFERENCE_BACKEND_ENVIRONMENT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/environment.h
      type_or_value: '"GIT_REFERENCE_BACKEND"'
    - item_type: preproc_def
      name: GIT_ADVICE_ENVIRONMENT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/environment.h
      type_or_value: '"GIT_ADVICE"'
    - item_type: preproc_def
      name: GIT_PROTOCOL_ENVIRONMENT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/environment.h
      type_or_value: '"GIT_PROTOCOL"'
    - item_type: preproc_def
      name: GIT_PROTOCOL_HEADER
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/git/environment.h
      type_or_value: '"Git-Protocol"'
    - item_type: preproc_def
      name: GIT_IMPLICIT_WORK_TREE_ENVIRONMENT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/git/environment.h
      type_or_value: '"GIT_IMPLICIT_WORK_TREE"'
    - item_type: preproc_def
      name: ALTERNATE_DB_ENVIRONMENT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/git/environment.h
      type_or_value: '"GIT_ALTERNATE_OBJECT_DIRECTORIES"'
    structs:
    - fields:
      - name: '*attributes_file'
        type: char
      - name: apply_sparse_checkout
        type: int
      - name: branch_track
        type: enum branch_track
      item_type: struct
      name: repo_config_values
      pos:
        line_end: 96
        line_start: 89
        source_file: /src/git/environment.h
    typedefs: []
    union: []
- function_names:
  - preload_thread
  - preload_index
  - repo_read_index_preload
  source_file: /src/git/preload-index.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PARALLEL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/preload-index.c
      type_or_value: (20)
    - item_type: preproc_def
      name: THREAD_COST
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/preload-index.c
      type_or_value: (500)
    structs:
    - fields:
      - name: n
        type: unsigned long
      - name: '*progress'
        type: struct progress
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: progress_data
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/git/preload-index.c
    - fields:
      - name: pthread
        type: pthread_t
      - name: '*index'
        type: struct index_state
      - name: pathspec
        type: struct pathspec
      - name: '*progress'
        type: struct progress_data
      - name: offset
        type: int
      - name: t2_nr_lstat
        type: int
      item_type: struct
      name: thread_data
      pos:
        line_end: 44
        line_start: 37
        source_file: /src/git/preload-index.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/line-range.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*(*nth_line_fn_t)(void *data, long lno)'
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/git/line-range.h
      type: char
    union: []
- function_names:
  - strvec_init
  - strvec_push_nodup
  - strvec_push
  - strvec_pushf
  - strvec_pushl
  - strvec_pushv
  - strvec_splice
  - strvec_replace
  - strvec_remove
  - strvec_pop
  - strvec_split
  - strvec_clear
  - strvec_detach
  source_file: /src/git/strvec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/log-tree.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*commit'
        type: struct commit
      item_type: struct
      name: log_info
      pos:
        line_end: 9
        line_start: 7
        source_file: /src/git/log-tree.h
    - fields:
      - name: '*include_ref_pattern'
        type: struct string_list
      - name: '*exclude_ref_pattern'
        type: struct string_list
      - name: '*exclude_ref_config_pattern'
        type: struct string_list
      item_type: struct
      name: decoration_filter
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/git/log-tree.h
    - fields:
      - name: '*prefix'
        type: char
      - name: '*suffix'
        type: char
      - name: '*separator'
        type: char
      - name: '*pointer'
        type: char
      - name: '*tag'
        type: char
      item_type: struct
      name: decoration_options
      pos:
        line_end: 23
        line_start: 17
        source_file: /src/git/log-tree.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/connected.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHECK_CONNECTED_INIT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/git/connected.h
      type_or_value: '{ 0 }'
    structs:
    - fields:
      - name: quiet
        type: int
      - name: '*shallow_file'
        type: char
      - name: '*transport'
        type: struct transport
      - name: err_fd
        type: int
      - name: progress
        type: int
      - name: '**env'
        type: char
      - name: is_deepening_fetch
        type: unsigned
      - name: '*exclude_hidden_refs_section'
        type: char
      item_type: struct
      name: check_connected_options
      pos:
        line_end: 55
        line_start: 17
        source_file: /src/git/connected.h
    typedefs:
    - item_type: typedef
      name: '*(*oid_iterate_fn)(void *)'
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/git/connected.h
      type: object_id
    union: []
- function_names: []
  source_file: /src/git/kwset.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: index
        type: int
      - name: offset[1]
        type: size_t
      - name: size[1]
        type: size_t
      item_type: struct
      name: kwsmatch
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/git/kwset.h
    typedefs:
    - item_type: typedef
      name: '* kwset_t'
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/git/kwset.h
      type: kwset_t
    union: []
- function_names:
  - need_bs_quote
  - sq_quote_buf
  - sq_quote_buf_pretty
  - sq_quotef
  - sq_quote_argv
  - sq_quote_argv_pretty
  - sq_append_quote_argv_pretty
  - sq_dequote_step
  - sq_dequote
  - sq_dequote_to_strvec
  - X8
  - X16
  - cq_must_quote
  - next_quote_pos
  - quote_c_style_counted
  - EMIT
  - EMITBUF
  - quote_c_style
  - quote_two_c_style
  - write_name_quoted
  - write_name_quoted_relative
  - quote_path
  - unquote_c_style
  - perl_quote_buf
  - perl_quote_buf_with_len
  - python_quote_buf
  - tcl_quote_buf
  - basic_regex_quote_buf
  source_file: /src/git/quote.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lookup_blob
  - parse_blob_buffer
  source_file: /src/git/blob.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/fetch-pack.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*uploadpack'
        type: char
      - name: unpacklimit
        type: int
      - name: depth
        type: int
      - name: '*deepen_since'
        type: char
      - name: '*deepen_not'
        type: struct string_list
      - name: filter_options
        type: struct list_objects_filter_options
      - name: '*server_options'
        type: struct string_list
      - name: '*negotiation_restrict_tips'
        type: struct oid_array
      - name: '*negotiation_include_tips'
        type: struct oid_array
      - name: deepen_relative
        type: unsigned
      - name: quiet
        type: unsigned
      - name: keep_pack
        type: unsigned
      - name: lock_pack
        type: unsigned
      - name: use_thin_pack
        type: unsigned
      - name: fetch_all
        type: unsigned
      - name: stdin_refs
        type: unsigned
      - name: diag_url
        type: unsigned
      - name: verbose
        type: unsigned
      - name: no_progress
        type: unsigned
      - name: include_tag
        type: unsigned
      - name: stateless_rpc
        type: unsigned
      - name: check_self_contained_and_connected
        type: unsigned
      - name: self_contained_and_connected
        type: unsigned
      - name: cloning
        type: unsigned
      - name: update_shallow
        type: unsigned
      - name: reject_shallow_remote
        type: unsigned
      - name: deepen
        type: unsigned
      - name: refetch
        type: unsigned
      - name: from_promisor
        type: unsigned
      - name: connectivity_checked
        type: unsigned
      item_type: struct
      name: fetch_pack_args
      pos:
        line_end: 69
        line_start: 10
        source_file: /src/git/fetch-pack.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/notes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NOTES_INIT_EMPTY
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/git/notes.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NOTES_INIT_WRITABLE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/git/notes.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FOR_EACH_NOTE_DONT_UNPACK_SUBTREES
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/git/notes.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FOR_EACH_NOTE_YIELD_SUBTREES
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/git/notes.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NOTES_PRUNE_VERBOSE
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/git/notes.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NOTES_PRUNE_DRYRUN
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/git/notes.h
      type_or_value: '2'
    structs:
    - fields:
      - name: '*root'
        type: struct int_node
      - name: '*first_non_note'
        type: struct non_note
      - name: '*ref'
        type: char
      - name: '*update_ref'
        type: char
      - name: combine_notes
        type: combine_notes_fn
      - name: initialized
        type: int
      - name: dirty
        type: int
      item_type: struct
      name: notes_tree
      pos:
        line_end: 59
        line_start: 51
        source_file: /src/git/notes.h
    - fields:
      - name: use_default_notes
        type: int
      - name: extra_notes_refs
        type: struct string_list
      item_type: struct
      name: display_notes_opt
      pos:
        line_end: 271
        line_start: 258
        source_file: /src/git/notes.h
    typedefs:
    - item_type: typedef
      name: "(*combine_notes_fn)(struct object_id *cur_oid,\n\t\t\t\tconst struct
        object_id *new_oid)"
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/notes.h
      type: int
    - item_type: typedef
      name: "each_note_fn(const struct object_id *object_oid,\n\t\tconst struct object_id
        *note_oid, char *note_path,\n\t\tvoid *cb_data)"
      pos:
        line_end: 215
        line_start: 213
        source_file: /src/git/notes.h
      type: int
    union: []
- function_names: []
  source_file: /src/git/quote.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CQUOTE_NODQ
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/git/quote.h
      type_or_value: '01'
    - item_type: preproc_def
      name: QUOTE_PATH_QUOTE_SP
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/git/quote.h
      type_or_value: '01'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/add-patch.h
  types:
    enum:
    - enumerators:
      - name: ADD_P_ADD
      - name: ADD_P_WORKTREE
      - name: ADD_P_CHECKOUT
      - name: ADD_P_RESET
      - name: ADD_P_STASH
      item_type: enum
      name: add_p_mode
      pos:
        line_end: 53
        line_start: 47
        source_file: /src/git/add-patch.h
    - enumerators:
      - name: ADD_P_DISALLOW_EDIT
        value: (1 << 0)
      item_type: enum
      name: add_p_flags
      pos:
        line_end: 58
        line_start: 55
        source_file: /src/git/add-patch.h
    preproc_defs:
    - item_type: preproc_def
      name: INTERACTIVE_OPTIONS_INIT
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/git/add-patch.h
      type_or_value: "{ \\\n\t.context = -1, \\\n\t.interhunkcontext = -1, \\\n\t.auto_advance
        = 1, \\\n}"
    structs:
    - fields:
      - name: context
        type: int
      - name: interhunkcontext
        type: int
      - name: auto_advance
        type: int
      item_type: struct
      name: interactive_options
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/git/add-patch.h
    - fields:
      - name: use_color_interactive
        type: enum git_colorbool
      - name: use_color_diff
        type: enum git_colorbool
      - name: header_color[COLOR_MAXLEN]
        type: char
      - name: help_color[COLOR_MAXLEN]
        type: char
      - name: prompt_color[COLOR_MAXLEN]
        type: char
      - name: error_color[COLOR_MAXLEN]
        type: char
      - name: reset_color_interactive[COLOR_MAXLEN]
        type: char
      - name: fraginfo_color[COLOR_MAXLEN]
        type: char
      - name: context_color[COLOR_MAXLEN]
        type: char
      - name: file_old_color[COLOR_MAXLEN]
        type: char
      - name: file_new_color[COLOR_MAXLEN]
        type: char
      - name: reset_color_diff[COLOR_MAXLEN]
        type: char
      - name: use_single_key
        type: int
      - name: '*interactive_diff_filter'
        type: char
      - name: context
        type: int
      - name: auto_advance
        type: int
      item_type: struct
      name: interactive_config
      pos:
        line_end: 40
        line_start: 21
        source_file: /src/git/add-patch.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/remote.h
  types:
    enum:
    - enumerators:
      - name: FOLLOW_REMOTE_NEVER
        value: '-1'
      - name: FOLLOW_REMOTE_ALWAYS
        value: '2'
      - name: FOLLOW_REMOTE_CREATE
        value: '0'
      - name: FOLLOW_REMOTE_WARN
        value: '1'
      item_type: enum
      name: follow_remote_head_settings
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/git/remote.h
    - enumerators:
      - name: FETCH_HEAD_MERGE
        value: '-1'
      - name: FETCH_HEAD_NOT_FOR_MERGE
        value: '0'
      - name: FETCH_HEAD_IGNORE
        value: '1'
      item_type: enum
      name: fetch_head_status
      pos:
        line_end: 192
        line_start: 188
        source_file: /src/git/remote.h
    - enumerators:
      - name: MATCH_REFS_NONE
        value: '0'
      - name: MATCH_REFS_ALL
        value: (1 << 0)
      - name: MATCH_REFS_MIRROR
        value: (1 << 1)
      - name: MATCH_REFS_FOLLOW_TAGS
        value: (1 << 3)
      - name: MATCH_REFS_PRUNE
        value: (1 << 2)
      item_type: enum
      name: match_refs_flags
      pos:
        line_end: 377
        line_start: 371
        source_file: /src/git/remote.h
    - enumerators:
      - name: AHEAD_BEHIND_UNSPECIFIED
        value: '-1'
      - name: AHEAD_BEHIND_QUICK
        value: '0'
      - name: AHEAD_BEHIND_FULL
        value: '1'
      item_type: enum
      name: ahead_behind_flags
      pos:
        line_end: 384
        line_start: 380
        source_file: /src/git/remote.h
    preproc_defs:
    - item_type: preproc_def
      name: REF_NORMAL
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/git/remote.h
      type_or_value: (1u << 0)
    - item_type: preproc_def
      name: REF_BRANCHES
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/git/remote.h
      type_or_value: (1u << 1)
    - item_type: preproc_def
      name: REF_TAGS
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/git/remote.h
      type_or_value: (1u << 2)
    - item_type: preproc_def
      name: REMOTE_GUESS_HEAD_ALL
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/git/remote.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: REMOTE_GUESS_HEAD_QUIET
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/git/remote.h
      type_or_value: (1 << 1)
    structs:
    - fields:
      - name: '*base'
        type: char
      - name: baselen
        type: size_t
      - name: '*instead_of'
        type: struct counted_string
      - name: instead_of_nr
        type: int
      - name: instead_of_alloc
        type: int
      item_type: struct
      name: rewrite
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/git/remote.h
    - fields:
      - name: '**rewrite'
        type: struct rewrite
      - name: rewrite_alloc
        type: int
      - name: rewrite_nr
        type: int
      item_type: struct
      name: rewrites
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/git/remote.h
    - fields:
      - name: '**remotes'
        type: struct remote
      - name: remotes_alloc
        type: int
      - name: remotes_nr
        type: int
      - name: remotes_hash
        type: struct hashmap
      - name: branches_hash
        type: struct hashmap
      - name: '*current_branch'
        type: struct branch
      - name: '*pushremote_name'
        type: char
      - name: rewrites
        type: struct rewrites
      - name: rewrites_push
        type: struct rewrites
      - name: initialized
        type: int
      item_type: struct
      name: remote_state
      pos:
        line_end: 59
        line_start: 44
        source_file: /src/git/remote.h
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*name'
        type: char
      - name: origin
        type: int
      - name: '*foreign_vcs'
        type: char
      - name: url
        type: struct strvec
      - name: pushurl
        type: struct strvec
      - name: push
        type: struct refspec
      - name: fetch
        type: struct refspec
      - name: fetch_tags
        type: int
      - name: skip_default_update
        type: int
      - name: mirror
        type: int
      - name: prune
        type: int
      - name: prune_tags
        type: int
      - name: '*receivepack'
        type: char
      - name: '*uploadpack'
        type: char
      - name: '*http_proxy'
        type: char
      - name: '*http_proxy_authmethod'
        type: char
      - name: server_options
        type: struct string_list
      - name: negotiation_restrict
        type: struct string_list
      - name: negotiation_include
        type: struct string_list
      - name: follow_remote_head
        type: enum follow_remote_head_settings
      - name: '*no_warn_branch'
        type: char
      item_type: struct
      name: remote
      pos:
        line_end: 124
        line_start: 71
        source_file: /src/git/remote.h
    - fields:
      - name: '*ref_name'
        type: char
      - name: '*old_oid'
        type: struct object_id
      - name: '*new_oid'
        type: struct object_id
      - name: forced_update
        type: unsigned int
      - name: '*next'
        type: struct ref_push_report
      item_type: struct
      name: ref_push_report
      pos:
        line_end: 151
        line_start: 145
        source_file: /src/git/remote.h
    - fields:
      - name: '*next'
        type: struct ref
      - name: old_oid
        type: struct object_id
      - name: new_oid
        type: struct object_id
      - name: old_oid_expect
        type: struct object_id
      - name: '*symref'
        type: char
      - name: '*tracking_ref'
        type: char
      - name: force
        type: unsigned int
      - name: match_status
        type: "enum {\n\t\tREF_NOT_MATCHED = 0, /* initial value */\n\t\tREF_MATCHED,\n\t\tREF_UNADVERTISED_NOT_ALLOWED\n\t}"
      - name: fetch_head_status
        type: "enum fetch_head_status {\n\t\tFETCH_HEAD_MERGE = -1,\n\t\tFETCH_HEAD_NOT_FOR_MERGE
          = 0,\n\t\tFETCH_HEAD_IGNORE = 1\n\t}"
      - name: status
        type: "enum {\n\t\tREF_STATUS_NONE = 0,\n\t\tREF_STATUS_OK,\n\t\tREF_STATUS_REJECT_NONFASTFORWARD,\n\t\tREF_STATUS_REJECT_ALREADY_EXISTS,\n\t\tREF_STATUS_REJECT_NODELETE,\n\t\tREF_STATUS_REJECT_FETCH_FIRST,\n\t\tREF_STATUS_REJECT_NEEDS_FORCE,\n\t\tREF_STATUS_REJECT_STALE,\n\t\tREF_STATUS_REJECT_SHALLOW,\n\t\tREF_STATUS_REJECT_REMOTE_UPDATED,\n\t\tREF_STATUS_UPTODATE,\n\t\tREF_STATUS_REMOTE_REJECT,\n\t\tREF_STATUS_EXPECTING_REPORT,\n\t\tREF_STATUS_ATOMIC_PUSH_FAILED\n\t}"
      - name: '*remote_status'
        type: char
      - name: '*report'
        type: struct ref_push_report
      - name: '*peer_ref'
        type: struct ref
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: ref
      pos:
        line_end: 214
        line_start: 155
        source_file: /src/git/remote.h
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*name'
        type: char
      - name: '*refname'
        type: char
      - name: '*remote_name'
        type: char
      - name: '*pushremote_name'
        type: char
      - name: set_merge
        type: int
      - name: '**merge'
        type: struct refspec_item
      - name: merge_nr
        type: int
      - name: merge_alloc
        type: int
      - name: '*push_tracking_ref'
        type: char
      item_type: struct
      name: branch
      pos:
        line_end: 336
        line_start: 306
        source_file: /src/git/remote.h
    - fields:
      - name: use_tracking_for_rest
        type: unsigned
      - name: use_force_if_includes
        type: unsigned
      - name: '*entry'
        type: "struct push_cas {\n\t\tstruct object_id expect;\n\t\tunsigned use_tracking:1;\n\t\tchar
          *refname;\n\t}"
      - name: nr
        type: int
      - name: alloc
        type: int
      item_type: struct
      name: push_cas_option
      pos:
        line_end: 424
        line_start: 414
        source_file: /src/git/remote.h
    - fields:
      - name: expect
        type: struct object_id
      - name: use_tracking
        type: unsigned
      - name: '*refname'
        type: char
      item_type: struct
      name: push_cas
      pos:
        line_end: 421
        line_start: 417
        source_file: /src/git/remote.h
    typedefs:
    - item_type: typedef
      name: each_remote_fn(struct remote *remote, void *priv)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/git/remote.h
      type: int
    union: []
- function_names:
  - display_mode_esc_sequence_len
  - bisearch
  - git_wcwidth
  - pick_one_utf8_char
  - utf8_width
  - utf8_strnwidth
  - utf8_strwidth
  - is_utf8
  - strbuf_add_indented_text
  - strbuf_add_wrapped_text
  - strbuf_add_wrapped_bytes
  - strbuf_utf8_replace
  - same_utf_encoding
  - is_encoding_utf8
  - same_encoding
  - utf8_fprintf
  - reencode_string_iconv
  - fallback_encoding
  - reencode_string_len
  - has_bom_prefix
  - has_prohibited_utf_bom
  - is_missing_required_utf_bom
  - mbs_chrlen
  - next_hfs_char
  - is_hfs_dot_generic
  - is_hfs_dot_str
  - is_hfs_dotgit
  - is_hfs_dotgitmodules
  - is_hfs_dotgitignore
  - is_hfs_dotgitattributes
  - is_hfs_dotmailmap
  - skip_utf8_bom
  - strbuf_utf8_align
  source_file: /src/git/utf8.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: first
        type: ucs_char_t
      - name: last
        type: ucs_char_t
      item_type: struct
      name: interval
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/git/utf8.c
    typedefs:
    - item_type: typedef
      name: '* iconv_ibp'
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/git/utf8.c
      type: char
    - item_type: typedef
      name: '* iconv_ibp'
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/git/utf8.c
      type: char
    union: []
- function_names:
  - check_ref
  - check_ref_type
  - die_initial_contact
  - server_supports_v2
  - ensure_server_supports_v2
  - server_feature_v2
  - server_supports_feature
  - process_capabilities_v2
  - discover_version
  - parse_one_symref_info
  - annotate_refs_with_symref_info
  - process_capabilities
  - process_dummy_ref
  - check_no_capabilities
  - process_ref
  - process_shallow
  - get_remote_heads
  - process_ref_v2
  - check_stateless_delimiter
  - send_capabilities
  - get_remote_bundle_uri
  - get_remote_refs
  - parse_feature_value
  - server_supports_hash
  - parse_feature_request
  - next_server_feature_value
  - server_feature_value
  - server_supports
  - url_scheme_name
  - host_end
  - STR_
  - STR
  - get_host_and_port
  - enable_keepalive
  - ai_name
  - git_tcp_connect_sock
  - git_tcp_connect_sock
  - git_connection_is_socket
  - git_tcp_connect
  - git_proxy_command_options
  - git_use_proxy
  - git_proxy_connect
  - get_port
  - parse_connect_url
  - get_ssh_command
  - override_ssh_variant
  - determine_ssh_variant
  - git_connect_git
  - push_ssh_options
  - fill_ssh_args
  - git_connect
  - finish_connect
  source_file: /src/git/connect.c
  types:
    enum:
    - enumerators:
      - name: EXPECTING_FIRST_REF
        value: '0'
      - name: EXPECTING_SHALLOW
      - name: EXPECTING_REF
      - name: EXPECTING_DONE
      item_type: enum
      name: get_remote_heads_state
      pos:
        line_end: 334
        line_start: 329
        source_file: /src/git/connect.c
    - enumerators:
      - name: VARIANT_AUTO
      - name: VARIANT_PLINK
      - name: VARIANT_SSH
      - name: VARIANT_SIMPLE
      - name: VARIANT_PUTTY
      - name: VARIANT_TORTOISEPLINK
      item_type: enum
      name: ssh_variant
      pos:
        line_end: 1144
        line_start: 1137
        source_file: /src/git/connect.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - for_each_string_list_item
  source_file: /src/git/string-list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRING_LIST_INIT_NODUP
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/git/string-list.h
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: STRING_LIST_INIT_DUP
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/git/string-list.h
      type_or_value: '{ .strdup_strings = 1 }'
    structs:
    - fields:
      - name: '*string'
        type: char
      - name: '*util'
        type: void
      item_type: struct
      name: string_list_item
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/git/string-list.h
    - fields:
      - name: '*items'
        type: struct string_list_item
      - name: nr
        type: size_t
      - name: alloc
        type: size_t
      - name: strdup_strings
        type: unsigned int
      - name: cmp
        type: compare_strings_fn
      item_type: struct
      name: string_list
      pos:
        line_end: 92
        line_start: 86
        source_file: /src/git/string-list.h
    typedefs:
    - item_type: typedef
      name: (*compare_strings_fn)(const char *, const char *)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/git/string-list.h
      type: int
    - item_type: typedef
      name: (*string_list_each_func_t)(struct string_list_item *, void *)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/git/string-list.h
      type: int
    - item_type: typedef
      name: (*string_list_clear_func_t)(void *p, const char *str)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/git/string-list.h
      type: void
    union: []
- function_names:
  - packing_data_lock
  - packing_data_unlock
  - pack_name_hash
  - pack_name_hash_v2
  - oe_type
  - oe_set_type
  - oe_in_pack_pos
  - oe_set_in_pack_pos
  - oe_in_pack
  - oe_set_in_pack
  - oe_tree_depth
  - oe_set_layer
  - oe_cruft_mtime
  - oe_set_cruft_mtime
  source_file: /src/git/pack-objects.h
  types:
    enum:
    - enumerators:
      - name: DFS_NONE
        value: '0'
      - name: DFS_ACTIVE
      - name: DFS_DONE
      - name: DFS_NUM_STATES
      item_type: enum
      name: dfs_state
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/git/pack-objects.h
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_DELTA_CACHE_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/pack-objects.h
      type_or_value: (256 * 1024 * 1024)
    - item_type: preproc_def
      name: DEFAULT_DELTA_BASE_CACHE_LIMIT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/pack-objects.h
      type_or_value: (96 * 1024 * 1024)
    - item_type: preproc_def
      name: OE_DFS_STATE_BITS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/pack-objects.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OE_DEPTH_BITS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/pack-objects.h
      type_or_value: '12'
    - item_type: preproc_def
      name: OE_IN_PACK_BITS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/pack-objects.h
      type_or_value: '10'
    - item_type: preproc_def
      name: OE_Z_DELTA_BITS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/pack-objects.h
      type_or_value: '20'
    - item_type: preproc_def
      name: OE_SIZE_BITS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/pack-objects.h
      type_or_value: '31'
    - item_type: preproc_def
      name: OE_DELTA_SIZE_BITS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/pack-objects.h
      type_or_value: '23'
    structs:
    - fields:
      - name: idx
        type: struct pack_idx_entry
      - name: '*delta_data'
        type: void
      - name: in_pack_offset
        type: off_t
      - name: hash
        type: uint32_t
      - name: size_
        type: unsigned
      - name: size_valid
        type: unsigned
      - name: delta_idx
        type: uint32_t
      - name: delta_child_idx
        type: uint32_t
      - name: delta_sibling_idx
        type: uint32_t
      - name: delta_size_
        type: unsigned
      - name: delta_size_valid
        type: unsigned
      - name: in_pack_header_size
        type: unsigned char
      - name: in_pack_idx
        type: unsigned
      - name: z_delta_size
        type: unsigned
      - name: type_valid
        type: unsigned
      - name: no_try_delta
        type: unsigned
      - name: type_
        type: unsigned
      - name: in_pack_type
        type: unsigned
      - name: preferred_base
        type: unsigned
      - name: tagged
        type: unsigned
      - name: filled
        type: unsigned
      - name: dfs_state
        type: unsigned
      - name: depth
        type: unsigned
      - name: ext_base
        type: unsigned
      item_type: struct
      name: object_entry
      pos:
        line_end: 120
        line_start: 88
        source_file: /src/git/pack-objects.h
    - fields:
      - name: start
        type: size_t
      - name: nr
        type: size_t
      item_type: struct
      name: packing_region
      pos:
        line_end: 129
        line_start: 126
        source_file: /src/git/pack-objects.h
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*objects'
        type: struct object_entry
      - name: nr_objects
        type: uint32_t
      - name: '*regions'
        type: struct packing_region
      - name: nr_regions
        type: size_t
      - name: '*index'
        type: int32_t
      - name: index_size
        type: uint32_t
      - name: '*in_pack_pos'
        type: unsigned int
      - name: '*delta_size'
        type: unsigned long
      - name: '**in_pack_by_idx'
        type: struct packed_git
      - name: '**in_pack'
        type: struct packed_git
      - name: odb_lock
        type: pthread_mutex_t
      - name: '*ext_bases'
        type: struct object_entry
      - name: nr_ext
        type: uint32_t
      - name: oe_size_limit
        type: uintmax_t
      - name: oe_delta_size_limit
        type: uintmax_t
      - name: '*tree_depth'
        type: unsigned int
      - name: '*layer'
        type: unsigned char
      - name: '*cruft_mtime'
        type: uint32_t
      item_type: struct
      name: packing_data
      pos:
        line_end: 182
        line_start: 131
        source_file: /src/git/pack-objects.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/fsmonitor-path-utils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: alias
        type: struct strbuf
      - name: points_to
        type: struct strbuf
      item_type: struct
      name: alias_info
      pos:
        line_end: 9
        line_start: 5
        source_file: /src/git/fsmonitor-path-utils.h
    - fields:
      - name: is_remote
        type: int
      - name: '*typename'
        type: char
      item_type: struct
      name: fs_info
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/git/fsmonitor-path-utils.h
    typedefs: []
    union: []
- function_names:
  - compare_bundles
  - init_bundle_list
  - clear_remote_bundle_info
  - clear_bundle_list
  - for_all_bundles_in_list
  - summarize_bundle
  - print_bundle_list
  - bundle_list_update
  - config_to_bundle_list
  - bundle_uri_parse_config_format
  - find_temp_filename
  - download_https_uri_to_file
  - copy_uri_to_file
  - unbundle_from_file
  - download_bundle_to_file
  - append_bundle
  - compare_creation_token_decreasing
  - fetch_bundles_by_token
  - download_bundle_list
  - fetch_bundle_list_in_config_format
  - fetch_bundle_uri_internal
  - attempt_unbundle
  - unbundle_all_bundles
  - unlink_bundle
  - fetch_bundle_uri
  - fetch_bundle_list
  - bundle_uri_advertise
  - config_to_packet_line
  - bundle_uri_command
  - bundle_uri_parse_line
  source_file: /src/git/bundle-uri.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: heuristic
        type: enum bundle_list_heuristic
      - name: '*name'
        type: char
      item_type: struct
      name: "heuristics[BUNDLE_HEURISTIC__COUNT] = {\n\t{ BUNDLE_HEURISTIC_NONE, \"\"},\n\t{
        BUNDLE_HEURISTIC_CREATIONTOKEN, \"creationToken\" },\n}"
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/git/bundle-uri.c
    - fields:
      - name: '*r'
        type: struct repository
      - name: '*list'
        type: struct bundle_list
      - name: mode
        type: enum bundle_list_mode
      - name: count
        type: int
      - name: depth
        type: int
      item_type: struct
      name: bundle_list_context
      pos:
        line_end: 470
        line_start: 464
        source_file: /src/git/bundle-uri.c
    - fields:
      - name: '**items'
        type: struct remote_bundle_info
      - name: alloc
        type: size_t
      - name: nr
        type: size_t
      item_type: struct
      name: bundles_for_sorting
      pos:
        line_end: 514
        line_start: 510
        source_file: /src/git/bundle-uri.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/credential.h
  types:
    enum:
    - enumerators:
      - name: CREDENTIAL_OP_INITIAL
        value: '1'
      - name: CREDENTIAL_OP_RESPONSE
        value: '3'
      - name: CREDENTIAL_OP_HELPER
        value: '2'
      item_type: enum
      name: credential_op_type
      pos:
        line_end: 111
        line_start: 107
        source_file: /src/git/credential.h
    preproc_defs:
    - item_type: preproc_def
      name: CREDENTIAL_INIT
      pos:
        line_end: 204
        line_start: 195
        source_file: /src/git/credential.h
      type_or_value: "{ \\\n\t.helpers = STRING_LIST_INIT_DUP, \\\n\t.password_expiry_utc
        = TIME_MAX, \\\n\t.wwwauth_headers = STRVEC_INIT, \\\n\t.state_headers = STRVEC_INIT,
        \\\n\t.state_headers_to_send = STRVEC_INIT, \\\n\t.sanitize_prompt = 1, \\\n\t.protect_protocol
        = 1, \\\n}"
    structs:
    - fields:
      - name: request_initial
        type: unsigned
      item_type: struct
      name: credential_capability
      pos:
        line_end: 117
        line_start: 113
        source_file: /src/git/credential.h
    - fields:
      - name: helpers
        type: struct string_list
      - name: wwwauth_headers
        type: struct strvec
      - name: state_headers
        type: struct strvec
      - name: state_headers_to_send
        type: struct strvec
      - name: header_is_last_match
        type: unsigned
      - name: approved
        type: unsigned
      - name: capa_authtype
        type: struct credential_capability
      - name: capa_state
        type: struct credential_capability
      - name: '*username'
        type: char
      - name: '*password'
        type: char
      - name: '*credential'
        type: char
      - name: '*protocol'
        type: char
      - name: '*host'
        type: char
      - name: '*path'
        type: char
      - name: '*oauth_refresh_token'
        type: char
      - name: password_expiry_utc
        type: timestamp_t
      - name: '*authtype'
        type: char
      item_type: struct
      name: credential
      pos:
        line_end: 193
        line_start: 130
        source_file: /src/git/credential.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/path-walk.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATH_WALK_INFO_INIT
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/git/path-walk.h
      type_or_value: "{   \\\n\t.blobs = 1,\t\t\\\n\t.trees = 1,\t\t\\\n\t.commits
        = 1,\t\t\\\n\t.tags = 1,\t\t\\\n}"
    structs:
    - fields:
      - name: '*revs'
        type: struct rev_info
      - name: path_fn
        type: path_fn
      - name: '*path_fn_data'
        type: void
      - name: commits
        type: int
      - name: trees
        type: int
      - name: blobs
        type: int
      - name: tags
        type: int
      - name: prune_all_uninteresting
        type: int
      - name: edge_aggressive
        type: int
      - name: '*pl'
        type: struct pattern_list
      item_type: struct
      name: path_walk_info
      pos:
        line_end: 68
        line_start: 19
        source_file: /src/git/path-walk.h
    typedefs:
    - item_type: typedef
      name: "(*path_fn)(const char *path,\n\t\t       struct oid_array *oids,\n\t\t
        \      enum object_type type,\n\t\t       void *data)"
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/git/path-walk.h
      type: int
    union: []
- function_names:
  - vfreportf
  - vreportf
  - usage_builtin
  - die_message_builtin
  - die_builtin
  - error_builtin
  - warn_builtin
  - die_is_recursing_builtin
  - set_die_routine
  - get_die_message_routine
  - set_error_routine
  - get_error_routine
  - set_warn_routine
  - get_warn_routine
  - set_die_is_recursing_routine
  - usagef
  - usage
  - show_usage_if_asked_helper
  - show_usage_if_asked
  - die
  - fmt_with_err
  - die_errno
  - die_message
  - die_message_errno
  - error_errno
  - error
  - warning_errno
  - warning
  - BUG_vfl_common
  - BUG_vfl
  - BUG_fl
  - bug_fl
  - you_still_use_that
  source_file: /src/git/usage.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - std_output
  - parse_pattern_type_arg
  - grep_config
  - grep_init
  - create_grep_pat
  - do_append_grep_pat
  - append_header_grep_pattern
  - append_grep_pattern
  - append_grep_pat
  - grep_opt_dup
  - compile_regexp_failed
  - is_fixed
  - pcre2_malloc
  - pcre2_free
  - pcre2_jit_functional
  - compile_pcre2_pattern
  - pcre2match
  - free_pcre2_pattern
  - compile_pcre2_pattern
  - pcre2match
  - free_pcre2_pattern
  - compile_fixed_regexp
  - compile_regexp
  - grep_not_expr
  - grep_binexp
  - grep_or_expr
  - grep_and_expr
  - compile_pattern_atom
  - compile_pattern_not
  - compile_pattern_and
  - compile_pattern_or
  - compile_pattern_expr
  - grep_true_expr
  - prep_header_patterns
  - grep_splice_or
  - compile_grep_patterns
  - free_pattern_expr
  - free_grep_pat
  - free_grep_patterns
  - end_of_line
  - word_char
  - output_color
  - output_sep
  - show_name
  - patmatch
  - strip_timestamp
  - headerless_match_one_pattern
  - match_one_pattern
  - match_expr_eval
  - match_expr
  - match_line
  - match_next_pattern
  - grep_next_match
  - show_line_header
  - show_line
  - grep_attr_lock
  - grep_attr_unlock
  - match_funcname
  - show_funcname_line
  - show_pre_context
  - should_lookahead
  - look_ahead
  - fill_textconv_grep
  - is_empty_line
  - grep_source_1
  - clr_hit_marker
  - chk_hit_marker
  - grep_source
  - grep_source_init_buf
  - grep_buffer
  - grep_source_init_file
  - grep_source_init_oid
  - grep_source_clear
  - grep_source_clear_data
  - grep_source_load_oid
  - grep_source_load_file
  - grep_source_load
  - grep_source_load_driver
  - grep_source_is_binary
  source_file: /src/git/grep.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GREP_PCRE2_DEBUG_MALLOC
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/git/grep.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*field'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: "header_field[] = {\n\t{ \"author \", 7 },\n\t{ \"committer \", 10 },\n\t{
        \"reflog \", 7 },\n}"
      pos:
        line_end: 939
        line_start: 936
        source_file: /src/git/grep.c
    typedefs: []
    union: []
- function_names:
  - cb_init
  source_file: /src/git/cbtree.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*child[2]'
        type: struct cb_node
      - name: byte
        type: uint32_t
      - name: otherbits
        type: uint8_t
      item_type: struct
      name: cb_node
      pos:
        line_end: 25
        line_start: 17
        source_file: /src/git/cbtree.h
    - fields:
      - name: '*root'
        type: struct cb_node
      - name: key_offset
        type: ptrdiff_t
      item_type: struct
      name: cb_tree
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/git/cbtree.h
    typedefs:
    - item_type: typedef
      name: (*cb_iter)(struct cb_node *, void *arg)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/git/cbtree.h
      type: int
    union: []
- function_names:
  - optbug
  - optname
  - get_arg
  - fix_filename
  - do_get_int_value
  - get_int_value
  - set_int_value
  - signed_int_fits
  - do_get_value
  - build_cmdmode_list
  - optnamearg
  - get_value
  - parse_short_opt
  - has_string
  - is_alias
  - register_abbrev
  - parse_long_opt
  - parse_nodash_opt
  - parse_subcommand
  - check_typos
  - parse_options_check
  - parse_options_check_harder
  - has_subcommands
  - parse_options_start_1
  - parse_options_start
  - show_negated_gitcomp
  - show_gitcomp
  - preprocess_options
  - free_preprocessed_options
  - parse_options_step
  - parse_options_end
  - parse_options
  - usage_argh
  - usage_indent
  - usage_padding
  - find_option_by_long_name
  - usage_with_options_internal
  - usage_with_options
  - show_usage_with_options_if_asked
  - usage_msg_opt
  - usage_msg_optf
  - die_for_incompatible_opt4
  source_file: /src/git/parse-options.c
  types:
    enum:
    - enumerators:
      - name: OPT_LONG
        value: '0'
      - name: OPT_SHORT
        value: 1<<0
      - name: OPT_UNSET
        value: 1<<1
      item_type: enum
      name: opt_parsed
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/git/parse-options.c
    preproc_defs:
    - item_type: preproc_def
      name: USAGE_NORMAL
      pos:
        line_end: 984
        line_start: 983
        source_file: /src/git/parse-options.c
      type_or_value: '0'
    - item_type: preproc_def
      name: USAGE_FULL
      pos:
        line_end: 985
        line_start: 984
        source_file: /src/git/parse-options.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USAGE_TO_STDOUT
      pos:
        line_end: 986
        line_start: 985
        source_file: /src/git/parse-options.c
      type_or_value: '0'
    - item_type: preproc_def
      name: USAGE_TO_STDERR
      pos:
        line_end: 987
        line_start: 986
        source_file: /src/git/parse-options.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USAGE_OPTS_WIDTH
      pos:
        line_end: 1294
        line_start: 1293
        source_file: /src/git/parse-options.c
      type_or_value: '26'
    structs:
    - fields:
      - name: value
        type: intmax_t
      - name: '*value_ptr'
        type: void
      - name: precision
        type: size_t
      - name: '*opt'
        type: struct option
      - name: '*arg'
        type: char
      - name: flags
        type: enum opt_parsed
      - name: '*next'
        type: struct parse_opt_cmdmode_list
      item_type: struct
      name: parse_opt_cmdmode_list
      pos:
        line_end: 345
        line_start: 337
        source_file: /src/git/parse-options.c
    - fields:
      - name: '*option'
        type: struct option
      - name: flags
        type: enum opt_parsed
      item_type: struct
      name: parsed_option
      pos:
        line_end: 494
        line_start: 491
        source_file: /src/git/parse-options.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/loose.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*to_compat'
        type: kh_oid_map_t
      - name: '*to_storage'
        type: kh_oid_map_t
      item_type: struct
      name: loose_object_map
      pos:
        line_end: 11
        line_start: 8
        source_file: /src/git/loose.h
    typedefs: []
    union: []
- function_names:
  - create_notes_commit
  - commit_notes
  - parse_notes_merge_strategy
  - parse_combine_notes_fn
  - notes_rewrite_config
  - init_copy_notes_for_rewrite
  - copy_note_for_rewrite
  - finish_copy_notes_for_rewrite
  source_file: /src/git/notes-utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/midx.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIDX_SIGNATURE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/midx.h
      type_or_value: '0x4d494458 '
    - item_type: preproc_def
      name: MIDX_VERSION_V1
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/midx.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MIDX_VERSION_V2
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/midx.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MIDX_BYTE_FILE_VERSION
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/midx.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MIDX_BYTE_HASH_VERSION
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/midx.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MIDX_BYTE_NUM_CHUNKS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/midx.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MIDX_BYTE_NUM_PACKS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/midx.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MIDX_HEADER_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/midx.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MIDX_CHUNK_ALIGNMENT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/midx.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MIDX_CHUNKID_PACKNAMES
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/midx.h
      type_or_value: '0x504e414d '
    - item_type: preproc_def
      name: MIDX_CHUNKID_BITMAPPEDPACKS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/midx.h
      type_or_value: '0x42544d50 '
    - item_type: preproc_def
      name: MIDX_CHUNKID_OIDFANOUT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/midx.h
      type_or_value: '0x4f494446 '
    - item_type: preproc_def
      name: MIDX_CHUNKID_OIDLOOKUP
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/midx.h
      type_or_value: '0x4f49444c '
    - item_type: preproc_def
      name: MIDX_CHUNKID_OBJECTOFFSETS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/midx.h
      type_or_value: '0x4f4f4646 '
    - item_type: preproc_def
      name: MIDX_CHUNKID_LARGEOFFSETS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/midx.h
      type_or_value: '0x4c4f4646 '
    - item_type: preproc_def
      name: MIDX_CHUNKID_REVINDEX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/midx.h
      type_or_value: '0x52494458 '
    - item_type: preproc_def
      name: MIDX_CHUNKID_BASE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/midx.h
      type_or_value: '0x42415345 '
    - item_type: preproc_def
      name: MIDX_CHUNK_OFFSET_WIDTH
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/midx.h
      type_or_value: (2 * sizeof(uint32_t))
    - item_type: preproc_def
      name: MIDX_LARGE_OFFSET_NEEDED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/midx.h
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: GIT_TEST_MULTI_PACK_INDEX
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/midx.h
      type_or_value: '"GIT_TEST_MULTI_PACK_INDEX"'
    - item_type: preproc_def
      name: GIT_TEST_MULTI_PACK_INDEX_WRITE_INCREMENTAL
      pos:
        line_end: 37
        line_start: 35
        source_file: /src/git/midx.h
      type_or_value: '"GIT_TEST_MULTI_PACK_INDEX_WRITE_INCREMENTAL"'
    - item_type: preproc_def
      name: MIDX_PROGRESS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/git/midx.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: MIDX_WRITE_REV_INDEX
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/git/midx.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: MIDX_WRITE_BITMAP
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/git/midx.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: MIDX_WRITE_BITMAP_HASH_CACHE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/git/midx.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: MIDX_WRITE_BITMAP_LOOKUP_TABLE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/git/midx.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: MIDX_WRITE_INCREMENTAL
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/git/midx.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: MIDX_WRITE_COMPACT
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/git/midx.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: MIDX_WRITE_NO_CHAIN
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/git/midx.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: MIDX_EXT_REV
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/git/midx.h
      type_or_value: '"rev"'
    - item_type: preproc_def
      name: MIDX_EXT_BITMAP
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/git/midx.h
      type_or_value: '"bitmap"'
    - item_type: preproc_def
      name: MIDX_EXT_MIDX
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/git/midx.h
      type_or_value: '"midx"'
    structs:
    - fields:
      - name: '*source'
        type: struct odb_source
      - name: '*data'
        type: unsigned char
      - name: data_len
        type: size_t
      - name: '*revindex_data'
        type: uint32_t
      - name: '*revindex_map'
        type: uint32_t
      - name: revindex_len
        type: size_t
      - name: signature
        type: uint32_t
      - name: version
        type: unsigned char
      - name: hash_len
        type: unsigned char
      - name: num_chunks
        type: unsigned char
      - name: num_packs
        type: uint32_t
      - name: num_objects
        type: uint32_t
      - name: preferred_pack_idx
        type: int
      - name: has_chain
        type: int
      - name: '*chunk_pack_names'
        type: unsigned char
      - name: chunk_pack_names_len
        type: size_t
      - name: '*chunk_bitmapped_packs'
        type: uint32_t
      - name: chunk_bitmapped_packs_len
        type: size_t
      - name: '*chunk_oid_fanout'
        type: uint32_t
      - name: '*chunk_oid_lookup'
        type: unsigned char
      - name: '*chunk_object_offsets'
        type: unsigned char
      - name: '*chunk_large_offsets'
        type: unsigned char
      - name: chunk_large_offsets_len
        type: size_t
      - name: '*chunk_revindex'
        type: unsigned char
      - name: chunk_revindex_len
        type: size_t
      - name: '*base_midx'
        type: struct multi_pack_index
      - name: num_objects_in_base
        type: uint32_t
      - name: num_packs_in_base
        type: uint32_t
      - name: '**pack_names'
        type: char
      - name: '*pack_names_sorted'
        type: size_t
      - name: '**packs'
        type: struct packed_git
      item_type: struct
      name: multi_pack_index
      pos:
        line_end: 77
        line_start: 38
        source_file: /src/git/midx.h
    typedefs: []
    union: []
- function_names:
  - parse_diff_color_slot
  - parse_dirstat_params
  - parse_submodule_params
  - git_config_rename
  - parse_algorithm_value
  - parse_one_token
  - parse_ws_error_highlight
  - init_diff_ui_defaults
  - git_diff_heuristic_config
  - parse_color_moved
  - parse_color_moved_ws
  - git_diff_ui_config
  - git_diff_basic_config
  - quote_two
  - external_diff
  - count_lines
  - fill_mmfile
  - diff_filespec_size
  - count_trailing_blank
  - check_blank_at_eof
  - emit_line_0
  - emit_line
  - append_emitted_diff_symbol
  - free_emitted_diff_symbols
  - fill_es_indent_data
  - compute_ws_delta
  - cmp_in_block_with_wsd
  - interned_diff_symbol_cmp
  - prepare_entry
  - add_lines_to_move_detection
  - pmb_advance_or_null
  - fill_potential_moved_blocks
  - adjust_last_block
  - mark_color_as_moved
  - dim_moved_lines
  - emit_line_ws_markup
  - emit_diff_symbol_from_struct
  - emit_diff_symbol
  - diff_emit_submodule_del
  - diff_emit_submodule_add
  - diff_emit_submodule_untracked
  - diff_emit_submodule_modified
  - diff_emit_submodule_header
  - diff_emit_submodule_error
  - diff_emit_submodule_pipethrough
  - new_blank_line_at_eof
  - emit_add_line
  - emit_del_line
  - emit_context_line
  - emit_incomplete_line_marker
  - emit_hunk_header
  - claim_diff_tempfile
  - remove_tempfile
  - add_line_count
  - emit_rewrite_lines
  - emit_rewrite_diff
  - diff_words_append
  - fn_out_diff_words_write_helper
  - color_words_output_graph_prefix
  - fn_out_diff_words_aux
  - find_word_boundaries
  - diff_words_fill
  - diff_words_show
  - diff_words_flush
  - diff_filespec_load_driver
  - userdiff_word_regex
  - init_diff_words_data
  - free_diff_words_data
  - diff_get_color
  - diff_line_prefix
  - sane_truncate_line
  - find_lno
  - fn_out_consume
  - quick_consume
  - discard_pending_rm
  - flush_rhunk
  - line_range_hunk_fn
  - line_range_line_fn
  - pprint_rename
  - diffstat_add
  - diffstat_consume
  - scale_linear
  - show_graph
  - fill_print_name
  - print_stat_summary_inserts_deletes
  - print_stat_summary
  - utf8_ish_width
  - show_stats
  - show_shortstats
  - show_numstat
  - gather_dirstat
  - dirstat_compare
  - conclude_dirstat
  - show_dirstat
  - show_dirstat_by_line
  - free_diffstat_file
  - free_diffstat_info
  - is_conflict_marker
  - checkdiff_consume_hunk
  - checkdiff_consume
  - deflate_it
  - emit_binary_diff_body
  - emit_binary_diff
  - diff_filespec_is_binary
  - diff_funcname_pattern
  - diff_set_mnemonic_prefix
  - diff_set_noprefix
  - diff_set_default_prefix
  - get_textconv
  - additional_headers
  - add_formatted_header
  - add_formatted_headers
  - diff_filepair_is_phoney
  - set_diff_algorithm
  - builtin_diff
  - get_compact_summary
  - builtin_diffstat
  - builtin_checkdiff
  - alloc_filespec
  - free_filespec
  - fill_filespec
  - reuse_worktree_file
  - diff_populate_gitlink
  - diff_populate_filespec
  - diff_free_filespec_blob
  - diff_free_filespec_data
  - prep_temp_blob
  - prepare_temp_file
  - add_external_diff_name
  - run_external_diff
  - similarity_index
  - diff_abbrev_oid
  - fill_metainfo
  - run_diff_cmd
  - diff_fill_oid_info
  - strip_prefix
  - run_diff
  - run_diffstat
  - run_checkdiff
  - repo_diff_setup
  - prepare_filter_bits
  - filter_bit_tst
  - diff_filter_bit
  - diff_check_follow_pathspec
  - diff_setup_done
  - parse_long_opt
  - diff_opt_stat
  - parse_dirstat_opt
  - diff_opt_diff_filter
  - enable_patch_output
  - diff_opt_ws_error_highlight
  - diff_opt_find_object
  - diff_opt_anchored
  - diff_opt_binary
  - diff_opt_break_rewrites
  - diff_opt_char
  - diff_opt_color_moved
  - diff_opt_color_moved_ws
  - diff_opt_color_words
  - diff_opt_compact_summary
  - diff_opt_diff_algorithm
  - diff_opt_diff_algorithm_no_arg
  - diff_opt_dirstat
  - diff_opt_find_copies
  - diff_opt_find_renames
  - diff_opt_follow
  - diff_opt_ignore_submodules
  - diff_opt_line_prefix
  - diff_opt_no_prefix
  - diff_opt_default_prefix
  - diff_opt_output
  - diff_opt_patience
  - diff_opt_ignore_regex
  - diff_opt_pickaxe_regex
  - diff_opt_pickaxe_string
  - diff_opt_relative
  - diff_opt_submodule
  - diff_opt_textconv
  - diff_opt_unified
  - diff_opt_word_diff
  - diff_opt_word_diff_regex
  - diff_opt_rotate_to
  - diff_opt_max_depth
  - add_diff_options
  - diff_opt_parse
  - parse_rename_score
  - diff_q
  - diff_queue
  - diff_free_filepair
  - diff_queue_init
  - diff_queue_clear
  - diff_aligned_abbrev
  - diff_flush_raw
  - diff_unmodified_pair
  - diff_flush_patch
  - diff_flush_patch_quietly
  - diff_flush_stat
  - diff_flush_checkdiff
  - diff_queue_is_empty
  - diff_debug_filespec
  - diff_debug_filepair
  - diff_debug_queue
  - diff_resolve_rename_copy
  - check_pair_status
  - flush_one_pair
  - show_file_mode_name
  - show_mode_change
  - show_rename_copy
  - diff_summary
  - remove_space
  - flush_one_hunk
  - patch_id_consume
  - patch_id_add_string
  - patch_id_add_mode
  - diff_get_patch_id
  - diff_flush_patch_id
  - is_summary_empty
  - diff_warn_rename_limit
  - create_filepairs_for_header_only_notifications
  - diff_flush_patch_all_file_pairs
  - diff_free_file
  - diff_free_ignore_regex
  - diff_free
  - diff_flush
  - match_filter
  - diffcore_apply_filter
  - diff_filespec_is_identical
  - diff_filespec_check_stat_unmatch
  - diffcore_skip_stat_unmatch
  - diffnamecmp
  - diffcore_fix_diff_index
  - diff_add_if_missing
  - diff_queued_diff_prefetch
  - init_diffstat_widths
  - diffcore_std
  - diff_result_code
  - diff_can_quit_early
  - is_submodule_ignored
  - compute_diffstat
  - diff_queue_addremove
  - diff_queue_change
  - diff_addremove
  - diff_change
  - diff_same
  - diff_unmerge
  - run_textconv
  - fill_textconv
  - textconv_object
  - setup_diff_pager
  source_file: /src/git/diff.c
  types:
    enum:
    - enumerators:
      - name: DIFF_SYMBOL_BINARY_DIFF_HEADER_DELTA
      - name: DIFF_SYMBOL_STATS_SUMMARY_NO_FILES
      - name: DIFF_SYMBOL_WORD_DIFF
      - name: DIFF_SYMBOL_SUBMODULE_DEL
      - name: DIFF_SYMBOL_SUBMODULE_ERROR
      - name: DIFF_SYMBOL_HEADER
      - name: DIFF_SYMBOL_WORDS
      - name: DIFF_SYMBOL_CONTEXT_INCOMPLETE
      - name: DIFF_SYMBOL_CONTEXT_MARKER
      - name: DIFF_SYMBOL_BINARY_DIFF_HEADER_LITERAL
      - name: DIFF_SYMBOL_STATS_SUMMARY_ABBREV
      - name: DIFF_SYMBOL_SUBMODULE_PIPETHROUGH
      - name: DIFF_SYMBOL_SUBMODULE_UNTRACKED
      - name: DIFF_SYMBOL_STAT_SEP
      - name: DIFF_SYMBOL_FILEPAIR_PLUS
      - name: DIFF_SYMBOL_CONTEXT
      - name: DIFF_SYMBOL_PLUS
      - name: DIFF_SYMBOL_SEPARATOR
      - name: DIFF_SYMBOL_BINARY_DIFF_HEADER
      - name: DIFF_SYMBOL_BINARY_DIFF_BODY
      - name: DIFF_SYMBOL_STATS_SUMMARY_INSERTS_DELETES
      - name: DIFF_SYMBOL_SUMMARY
      - name: DIFF_SYMBOL_SUBMODULE_MODIFIED
      - name: DIFF_SYMBOL_REWRITE_DIFF
      - name: DIFF_SYMBOL_FILEPAIR_MINUS
      - name: DIFF_SYMBOL_MINUS
      - name: DIFF_SYMBOL_BINARY_DIFF_FOOTER
      - name: DIFF_SYMBOL_STATS_LINE
      - name: DIFF_SYMBOL_SUBMODULE_HEADER
      - name: DIFF_SYMBOL_SUBMODULE_ADD
      - name: DIFF_SYMBOL_BINARY_FILES
      - name: DIFF_SYMBOL_WORDS_PORCELAIN
      - name: DIFF_SYMBOL_CONTEXT_FRAGINFO
      item_type: enum
      name: diff_symbol
      pos:
        line_end: 849
        line_start: 815
        source_file: /src/git/diff.c
    preproc_defs:
    - item_type: preproc_def
      name: FAST_WORKING_DIRECTORY
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/git/diff.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FAST_WORKING_DIRECTORY
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/diff.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DIFF_SYMBOL_CONTENT_BLANK_LINE_EOF
      pos:
        line_end: 859
        line_start: 858
        source_file: /src/git/diff.c
      type_or_value: (1<<19)
    - item_type: preproc_def
      name: DIFF_SYMBOL_MOVED_LINE
      pos:
        line_end: 860
        line_start: 859
        source_file: /src/git/diff.c
      type_or_value: (1<<20)
    - item_type: preproc_def
      name: DIFF_SYMBOL_MOVED_LINE_ALT
      pos:
        line_end: 861
        line_start: 860
        source_file: /src/git/diff.c
      type_or_value: (1<<21)
    - item_type: preproc_def
      name: DIFF_SYMBOL_MOVED_LINE_UNINTERESTING
      pos:
        line_end: 862
        line_start: 861
        source_file: /src/git/diff.c
      type_or_value: (1<<22)
    - item_type: preproc_def
      name: DIFF_SYMBOL_CONTENT_WS_MASK
      pos:
        line_end: 864
        line_start: 863
        source_file: /src/git/diff.c
      type_or_value: (WSEH_NEW | WSEH_OLD | WSEH_CONTEXT | WS_RULE_MASK)
    - item_type: preproc_def
      name: EMITTED_DIFF_SYMBOL_INIT
      pos:
        line_end: 887
        line_start: 886
        source_file: /src/git/diff.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: EMITTED_DIFF_SYMBOLS_INIT
      pos:
        line_end: 893
        line_start: 892
        source_file: /src/git/diff.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: INDENT_BLANKLINE
      pos:
        line_end: 928
        line_start: 927
        source_file: /src/git/diff.c
      type_or_value: INT_MIN
    - item_type: preproc_def
      name: DIFF_SYMBOL_MOVED_LINE_ZEBRA_MASK
      pos:
        line_end: 1192
        line_start: 1190
        source_file: /src/git/diff.c
      type_or_value: (DIFF_SYMBOL_MOVED_LINE | DIFF_SYMBOL_MOVED_LINE_ALT)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: hex[GIT_MAX_HEXSZ + 1]
        type: char
      - name: mode[10]
        type: char
      - name: '*tempfile'
        type: struct tempfile
      item_type: struct
      name: diff_tempfile
      pos:
        line_end: 595
        line_start: 580
        source_file: /src/git/diff.c
    - fields:
      - name: color_diff
        type: int
      - name: ws_rule
        type: unsigned
      - name: blank_at_eof_in_preimage
        type: int
      - name: blank_at_eof_in_postimage
        type: int
      - name: lno_in_preimage
        type: int
      - name: lno_in_postimage
        type: int
      - name: last_line_kind
        type: int
      - name: '**label_path'
        type: char
      - name: '*diff_words'
        type: struct diff_words_data
      - name: '*opt'
        type: struct diff_options
      - name: '*header'
        type: struct strbuf
      item_type: struct
      name: emit_callback
      pos:
        line_end: 609
        line_start: 597
        source_file: /src/git/diff.c
    - fields:
      - name: orig_line_fn
        type: xdiff_emit_line_fn
      - name: '*orig_cb_data'
        type: void
      - name: '*ranges'
        type: struct range_set
      - name: cur_range
        type: unsigned int
      - name: lno_post
        type: long
      - name: lno_pre
        type: long
      - name: func[80]
        type: char
      - name: funclen
        type: long
      - name: rhunk
        type: struct strbuf
      - name: rhunk_old_begin
        type: long
      - name: rhunk_new_begin
        type: long
      - name: rhunk_active
        type: int
      - name: rhunk_has_changes
        type: int
      - name: pending_rm
        type: struct strbuf
      - name: pending_rm_count
        type: int
      - name: pending_rm_pre_begin
        type: long
      - name: ret
        type: int
      item_type: struct
      name: line_range_callback
      pos:
        line_end: 655
        line_start: 625
        source_file: /src/git/diff.c
    - fields:
      - name: '*line'
        type: char
      - name: len
        type: int
      - name: flags
        type: int
      - name: indent_off
        type: int
      - name: indent_width
        type: int
      - name: id
        type: unsigned
      - name: s
        type: enum diff_symbol
      item_type: struct
      name: emitted_diff_symbol
      pos:
        line_end: 885
        line_start: 877
        source_file: /src/git/diff.c
    - fields:
      - name: '*buf'
        type: struct emitted_diff_symbol
      - name: nr
        type: int
      item_type: struct
      name: emitted_diff_symbols
      pos:
        line_end: 891
        line_start: 888
        source_file: /src/git/diff.c
    - fields:
      - name: '*es'
        type: struct emitted_diff_symbol
      - name: '*next_line'
        type: struct moved_entry
      - name: '*next_match'
        type: struct moved_entry
      item_type: struct
      name: moved_entry
      pos:
        line_end: 920
        line_start: 916
        source_file: /src/git/diff.c
    - fields:
      - name: '*match'
        type: struct moved_entry
      - name: wsd
        type: int
      item_type: struct
      name: moved_block
      pos:
        line_end: 925
        line_start: 922
        source_file: /src/git/diff.c
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*es'
        type: struct emitted_diff_symbol
      item_type: struct
      name: interned_diff_symbol
      pos:
        line_end: 1019
        line_start: 1016
        source_file: /src/git/diff.c
    - fields:
      - name: '*add'
        type: struct moved_entry
      item_type: struct
      name: moved_entry_list
      pos:
        line_end: 1053
        line_start: 1051
        source_file: /src/git/diff.c
    - fields:
      - name: text
        type: mmfile_t
      - name: alloc
        type: unsigned long
      - name: '*orig'
        type: "struct diff_words_orig {\n\t\tconst char *begin, *end;\n\t}"
      - name: orig_nr
        type: int
      item_type: struct
      name: diff_words_buffer
      pos:
        line_end: 1966
        line_start: 1959
        source_file: /src/git/diff.c
    - fields:
      - name: '*begin'
        type: char
      item_type: struct
      name: diff_words_orig
      pos:
        line_end: 1964
        line_start: 1962
        source_file: /src/git/diff.c
    - fields:
      - name: '*prefix'
        type: char
      - name: '*suffix'
        type: char
      - name: '*color'
        type: char
      item_type: struct
      name: diff_words_style_elem
      pos:
        line_end: 1984
        line_start: 1979
        source_file: /src/git/diff.c
    - fields:
      - name: type
        type: enum diff_words_type
      - name: new_word
        type: struct diff_words_style_elem
      - name: '*newline'
        type: char
      item_type: struct
      name: diff_words_style
      pos:
        line_end: 1990
        line_start: 1986
        source_file: /src/git/diff.c
    - fields:
      - name: minus
        type: struct diff_words_buffer
      - name: '*current_plus'
        type: char
      - name: last_minus
        type: int
      - name: '*opt'
        type: struct diff_options
      - name: '*word_regex'
        type: regex_t
      - name: type
        type: enum diff_words_type
      - name: '*style'
        type: struct diff_words_style
      item_type: struct
      name: diff_words_data
      pos:
        line_end: 2006
        line_start: 1998
        source_file: /src/git/diff.c
    - fields:
      - name: '*name'
        type: char
      - name: changed
        type: unsigned long
      item_type: struct
      name: dirstat_file
      pos:
        line_end: 3282
        line_start: 3279
        source_file: /src/git/diff.c
    - fields:
      - name: '*files'
        type: struct dirstat_file
      - name: alloc
        type: int
      item_type: struct
      name: dirstat_dir
      pos:
        line_end: 3287
        line_start: 3284
        source_file: /src/git/diff.c
    - fields:
      - name: '*filename'
        type: char
      - name: lineno
        type: int
      - name: conflict_marker_size
        type: int
      - name: '*o'
        type: struct diff_options
      - name: ws_rule
        type: unsigned
      - name: status
        type: unsigned
      - name: last_line_kind
        type: int
      item_type: struct
      name: checkdiff_t
      pos:
        line_end: 3519
        line_start: 3511
        source_file: /src/git/diff.c
    - fields:
      - name: '*ctx'
        type: struct git_hash_ctx
      - name: patchlen
        type: int
      item_type: struct
      name: patch_id_t
      pos:
        line_end: 6831
        line_start: 6828
        source_file: /src/git/diff.c
    typedefs: []
    union: []
- function_names:
  - cache_def_clear
  source_file: /src/git/symlinks.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CACHE_DEF_INIT
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/git/symlinks.h
      type_or_value: "{ \\\n\t.path = STRBUF_INIT, \\\n}"
    structs:
    - fields:
      - name: path
        type: struct strbuf
      - name: flags
        type: unsigned int
      - name: track_flags
        type: unsigned int
      - name: prefix_len_stat_func
        type: int
      item_type: struct
      name: cache_def
      pos:
        line_end: 10
        line_start: 5
        source_file: /src/git/symlinks.h
    typedefs: []
    union: []
- function_names:
  - patch_delta
  - PARSE_CP_PARAM
  source_file: /src/git/patch-delta.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/pack-mtimes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MTIMES_SIGNATURE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/pack-mtimes.h
      type_or_value: '0x4d544d45 '
    - item_type: preproc_def
      name: MTIMES_VERSION
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/pack-mtimes.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/pseudo-merge.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pattern'
        type: regex_t
      - name: matches
        type: struct strmap
      - name: '**merges'
        type: struct commit
      - name: merges_nr
        type: size_t
      - name: merges_alloc
        type: size_t
      - name: decay
        type: double
      - name: max_merges
        type: int
      - name: sample_rate
        type: double
      - name: stable_size
        type: int
      - name: threshold
        type: timestamp_t
      - name: stable_threshold
        type: timestamp_t
      item_type: struct
      name: pseudo_merge_group
      pos:
        line_end: 51
        line_start: 26
        source_file: /src/git/pseudo-merge.h
    - fields:
      - name: '**stable'
        type: struct commit
      - name: '**unstable'
        type: struct commit
      - name: stable_nr
        type: size_t
      - name: unstable_nr
        type: size_t
      item_type: struct
      name: pseudo_merge_matches
      pos:
        line_end: 60
        line_start: 55
        source_file: /src/git/pseudo-merge.h
    - fields:
      - name: '*pseudo_merge'
        type: uint32_t
      - name: nr
        type: size_t
      item_type: struct
      name: pseudo_merge_commit_idx
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/git/pseudo-merge.h
    - fields:
      - name: '*v'
        type: struct pseudo_merge
      - name: nr
        type: size_t
      - name: commits_nr
        type: size_t
      - name: '*map'
        type: unsigned char
      - name: '*commits'
        type: unsigned char
      - name: map_size
        type: size_t
      item_type: struct
      name: pseudo_merge_map
      pos:
        line_end: 126
        line_start: 106
        source_file: /src/git/pseudo-merge.h
    - fields:
      - name: '*commits'
        type: struct ewah_bitmap
      - name: '*bitmap'
        type: struct ewah_bitmap
      - name: at
        type: off_t
      - name: bitmap_at
        type: off_t
      - name: satisfied
        type: unsigned
      item_type: struct
      name: pseudo_merge
      pos:
        line_end: 157
        line_start: 139
        source_file: /src/git/pseudo-merge.h
    typedefs: []
    union: []
- function_names:
  - get_blame_suspects
  - set_blame_suspects
  - blame_origin_decref
  - make_origin
  - get_origin
  - verify_working_tree_path
  - append_parent
  - append_merge_parents
  - set_commit_buffer_from_strbuf
  - fake_working_tree_commit
  - diff_hunks
  - get_next_line
  - find_line_starts
  - get_fingerprint
  - free_fingerprint
  - fingerprint_similarity
  - fingerprint_subtract
  - get_line_fingerprints
  - free_line_fingerprints
  - map_line_number
  - get_similarity
  - find_best_line_matches
  - fuzzy_find_matching_lines_recurse
  - fuzzy_find_matching_lines
  - fill_origin_fingerprints
  - drop_origin_fingerprints
  - fill_origin_blob
  - drop_origin_blob
  - blame_merge
  - compare_blame_final
  - compare_blame_suspect
  - blame_sort_final
  - compare_commits_by_reverse_commit_date
  - sanity_check_refcnt
  - blame_coalesce
  - queue_blames
  - fill_blob_sha1_and_mode
  - maybe_changed_path
  - add_bloom_key
  - find_origin
  - find_rename
  - add_blame_entry
  - dup_entry
  - blame_nth_line
  - split_overlap
  - split_blame
  - decref_split
  - reverse_blame
  - split_blame_at
  - are_lines_adjacent
  - scan_parent_range
  - guess_line_blames
  - ignore_blame_entry
  - blame_chunk
  - blame_chunk_cb
  - pass_blame_to_parent
  - blame_entry_score
  - copy_split_if_better
  - handle_split
  - handle_split_cb
  - find_copy_in_blob
  - filter_small
  - find_move_in_parent
  - setup_blame_list
  - find_copy_in_parent
  - pass_whole_blame
  - first_scapegoat
  - num_scapegoats
  - distribute_blame
  - pass_blame
  - assign_blame
  - prepare_lines
  - find_single_final
  - dwim_reverse_initial
  - find_single_initial
  - init_scoreboard
  - setup_scoreboard
  - blame_entry_prepend
  - setup_blame_bloom_data
  - cleanup_scoreboard
  source_file: /src/git/blame.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CERTAIN_NOTHING_MATCHES
      pos:
        line_end: 609
        line_start: 608
        source_file: /src/git/blame.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: CERTAINTY_NOT_CALCULATED
      pos:
        line_end: 610
        line_start: 609
        source_file: /src/git/blame.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: FINGERPRINT_FILE_THRESHOLD
      pos:
        line_end: 1669
        line_start: 1668
        source_file: /src/git/blame.c
      type_or_value: '10'
    - item_type: preproc_def
      name: MAXSG
      pos:
        line_end: 2406
        line_start: 2405
        source_file: /src/git/blame.c
      type_or_value: '16'
    structs:
    - fields:
      - name: map
        type: struct hashmap
      - name: '*entries'
        type: struct fingerprint_entry
      item_type: struct
      name: fingerprint
      pos:
        line_end: 386
        line_start: 379
        source_file: /src/git/blame.c
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: count
        type: int
      item_type: struct
      name: fingerprint_entry
      pos:
        line_end: 400
        line_start: 391
        source_file: /src/git/blame.c
    - fields:
      - name: destination_start
        type: int
      item_type: struct
      name: line_number_mapping
      pos:
        line_end: 536
        line_start: 533
        source_file: /src/git/blame.c
    - fields:
      - name: '*settings'
        type: struct bloom_filter_settings
      - name: '**keys'
        type: struct bloom_key
      - name: nr
        type: int
      - name: alloc
        type: int
      item_type: struct
      name: blame_bloom_data
      pos:
        line_end: 1267
        line_start: 1257
        source_file: /src/git/blame.c
    - fields:
      - name: is_parent
        type: int
      - name: s_lno
        type: int
      item_type: struct
      name: blame_line_tracker
      pos:
        line_end: 1654
        line_start: 1651
        source_file: /src/git/blame.c
    - fields:
      - name: '*parent'
        type: struct blame_origin
      - name: '*target'
        type: struct blame_origin
      - name: offset
        type: long
      - name: ignore_diffs
        type: int
      - name: '**dstq'
        type: struct blame_entry
      - name: '**srcq'
        type: struct blame_entry
      item_type: struct
      name: blame_chunk_cb_data
      pos:
        line_end: 1919
        line_start: 1912
        source_file: /src/git/blame.c
    - fields:
      - name: '*sb'
        type: struct blame_scoreboard
      - name: '*ent'
        type: struct blame_entry
      - name: '*parent'
        type: struct blame_origin
      - name: '*split'
        type: struct blame_entry
      - name: plno
        type: long
      - name: tlno
        type: long
      item_type: struct
      name: handle_split_cb_data
      pos:
        line_end: 2074
        line_start: 2067
        source_file: /src/git/blame.c
    - fields:
      - name: '*ent'
        type: struct blame_entry
      - name: split[3]
        type: struct blame_entry
      item_type: struct
      name: blame_list
      pos:
        line_end: 2203
        line_start: 2200
        source_file: /src/git/blame.c
    typedefs:
    - item_type: typedef
      name: "*(*blame_find_alg)(struct repository *,\n\t\t\t\t\t       struct commit
        *,\n\t\t\t\t\t       struct blame_origin *,\n\t\t\t\t\t       struct blame_bloom_data
        *)"
      pos:
        line_end: 2410
        line_start: 2407
        source_file: /src/git/blame.c
      type: blame_origin
    union: []
- function_names:
  - repo_parse_commit
  - repo_parse_commit_no_graph
  - copy_commit_list
  - reverse_commit_list
  - free_commit_list
  source_file: /src/git/commit.h
  types:
    enum:
    - enumerators:
      - name: DECORATION_NONE
        value: '0'
      - name: DECORATION_REF_TAG
      - name: DECORATION_REF_STASH
      - name: DECORATION_REF_LOCAL
      - name: DECORATION_REF_REMOTE
      - name: DECORATION_REF_HEAD
      - name: DECORATION_GRAFTED
      item_type: enum
      name: decoration_type
      pos:
        line_end: 59
        line_start: 51
        source_file: /src/git/commit.h
    - enumerators:
      - name: REV_SORT_IN_GRAPH_ORDER
        value: '0'
      - name: REV_SORT_BY_COMMIT_DATE
      - name: REV_SORT_BY_AUTHOR_DATE
      item_type: enum
      name: rev_sort_order
      pos:
        line_end: 249
        line_start: 245
        source_file: /src/git/commit.h
    preproc_defs:
    - item_type: preproc_def
      name: COMMIT_NOT_FROM_GRAPH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/commit.h
      type_or_value: '0xFFFFFFFF'
    - item_type: preproc_def
      name: GENERATION_NUMBER_INFINITY
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/commit.h
      type_or_value: ((1ULL << 63) - 1)
    - item_type: preproc_def
      name: GENERATION_NUMBER_V1_MAX
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/commit.h
      type_or_value: '0x3FFFFFFF'
    - item_type: preproc_def
      name: GENERATION_NUMBER_ZERO
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/commit.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GENERATION_NUMBER_V2_OFFSET_MAX
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/commit.h
      type_or_value: ((1ULL << 31) - 1)
    - item_type: preproc_def
      name: INFINITE_DEPTH
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/git/commit.h
      type_or_value: '0x7fffffff'
    - item_type: preproc_def
      name: COMMIT_STACK_INIT
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/git/commit.h
      type_or_value: '{ 0 }'
    structs:
    - fields:
      - name: '*item'
        type: struct commit
      - name: '*next'
        type: struct commit_list
      item_type: struct
      name: commit_list
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/git/commit.h
    - fields:
      - name: object
        type: struct object
      - name: date
        type: timestamp_t
      - name: '*parents'
        type: struct commit_list
      - name: '*maybe_tree'
        type: struct tree
      - name: index
        type: unsigned int
      item_type: struct
      name: commit
      pos:
        line_end: 38
        line_start: 26
        source_file: /src/git/commit.h
    - fields:
      - name: '*next'
        type: struct name_decoration
      - name: type
        type: int
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: name_decoration
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/git/commit.h
    - fields:
      - name: oid
        type: struct object_id
      - name: nr_parent
        type: int
      - name: parent[FLEX_ARRAY]
        type: struct object_id
      item_type: struct
      name: commit_graft
      pos:
        line_end: 267
        line_start: 263
        source_file: /src/git/commit.h
    - fields:
      - name: '*next'
        type: struct commit_extra_header
      - name: '*key'
        type: char
      - name: '*value'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: commit_extra_header
      pos:
        line_end: 296
        line_start: 291
        source_file: /src/git/commit.h
    - fields:
      - name: '*obj'
        type: struct object
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: merge_remote_desc
      pos:
        line_end: 338
        line_start: 335
        source_file: /src/git/commit.h
    - fields:
      - name: '**items'
        type: struct commit
      - name: nr
        type: size_t
      item_type: struct
      name: commit_stack
      pos:
        line_end: 413
        line_start: 410
        source_file: /src/git/commit.h
    typedefs:
    - item_type: typedef
      name: (*each_commit_graft_fn)(const struct commit_graft *, void *)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/git/commit.h
      type: int
    - item_type: typedef
      name: "(*each_mergetag_fn)(struct commit *commit, struct commit_extra_header
        *extra,\n\t\t\t\tvoid *cb_data)"
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/git/commit.h
      type: int
    union: []
- function_names: []
  source_file: /src/git/add-interactive.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*r'
        type: struct repository
      - name: cfg
        type: struct interactive_config
      item_type: struct
      name: add_i_state
      pos:
        line_end: 11
        line_start: 8
        source_file: /src/git/add-interactive.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/sigchain.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*sigchain_fun)(int)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/git/sigchain.h
      type: void
    union: []
- function_names:
  - parse_advise_color_slot
  - advise_get_color
  - vadvise
  - advise
  - advice_enabled
  - advise_if_enabled
  - git_default_advice_config
  - list_config_advices
  - error_resolve_conflict
  - die_resolve_conflict
  - die_conclude_merge
  - die_ff_impossible
  - advise_on_updating_sparse_paths
  - detach_advice
  - advise_on_moving_dirty_path
  source_file: /src/git/advice.c
  types:
    enum:
    - enumerators:
      - name: ADVICE_COLOR_RESET
        value: '0'
      - name: ADVICE_COLOR_HINT
        value: '1'
      item_type: enum
      name: color_advice
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/git/advice.c
    - enumerators:
      - name: ADVICE_LEVEL_NONE
        value: '0'
      - name: ADVICE_LEVEL_ENABLED
      - name: ADVICE_LEVEL_DISABLED
      item_type: enum
      name: advice_level
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/git/advice.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*key'
        type: char
      - name: level
        type: enum advice_level
      item_type: struct
      name: "advice_setting[] = {\n\t[ADVICE_ADD_EMBEDDED_REPO]\t\t\t= { \"addEmbeddedRepo\"
        },\n\t[ADVICE_ADD_EMPTY_PATHSPEC]\t\t\t= { \"addEmptyPathspec\" },\n\t[ADVICE_ADD_IGNORED_FILE]\t\t\t=
        { \"addIgnoredFile\" },\n\t[ADVICE_AMBIGUOUS_FETCH_REFSPEC]\t\t= { \"ambiguousFetchRefspec\"
        },\n\t[ADVICE_AM_WORK_DIR] \t\t\t\t= { \"amWorkDir\" },\n\t[ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME]
        \t= { \"checkoutAmbiguousRemoteBranchName\" },\n\t[ADVICE_COMMIT_BEFORE_MERGE]\t\t\t=
        { \"commitBeforeMerge\" },\n\t[ADVICE_DEFAULT_BRANCH_NAME]\t\t\t= { \"defaultBranchName\"
        },\n\t[ADVICE_DETACHED_HEAD]\t\t\t\t= { \"detachedHead\" },\n\t[ADVICE_DIVERGING]\t\t\t\t=
        { \"diverging\" },\n\t[ADVICE_FETCH_SET_HEAD_WARN]\t\t\t= { \"fetchRemoteHEADWarn\"
        },\n\t[ADVICE_FETCH_SHOW_FORCED_UPDATES]\t\t= { \"fetchShowForcedUpdates\"
        },\n\t[ADVICE_FORCE_DELETE_BRANCH]\t\t\t= { \"forceDeleteBranch\" },\n\t[ADVICE_GRAFT_FILE_DEPRECATED]\t\t\t=
        { \"graftFileDeprecated\" },\n\t[ADVICE_IGNORED_HOOK]\t\t\t\t= { \"ignoredHook\"
        },\n\t[ADVICE_IMPLICIT_IDENTITY]\t\t\t= { \"implicitIdentity\" },\n\t[ADVICE_MERGE_CONFLICT]\t\t\t\t=
        { \"mergeConflict\" },\n\t[ADVICE_NESTED_TAG]\t\t\t\t= { \"nestedTag\" },\n\t[ADVICE_OBJECT_NAME_WARNING]\t\t\t=
        { \"objectNameWarning\" },\n\t[ADVICE_PUSH_ALREADY_EXISTS]\t\t\t= { \"pushAlreadyExists\"
        },\n\t[ADVICE_PUSH_FETCH_FIRST]\t\t\t= { \"pushFetchFirst\" },\n\t[ADVICE_PUSH_NEEDS_FORCE]\t\t\t=
        { \"pushNeedsForce\" },\n\t[ADVICE_PUSH_NON_FF_CURRENT]\t\t\t= { \"pushNonFFCurrent\"
        },\n\t[ADVICE_PUSH_NON_FF_MATCHING]\t\t\t= { \"pushNonFFMatching\" },\n\t[ADVICE_PUSH_REF_NEEDS_UPDATE]\t\t\t=
        { \"pushRefNeedsUpdate\" },\n\t[ADVICE_PUSH_UNQUALIFIED_REF_NAME]\t\t= { \"pushUnqualifiedRefName\"
        },\n\t[ADVICE_PUSH_UPDATE_REJECTED]\t\t\t= { \"pushUpdateRejected\" },\n\t[ADVICE_PUSH_UPDATE_REJECTED_ALIAS]\t\t=
        { \"pushNonFastForward\" }, /* backwards compatibility */\n\t[ADVICE_REBASE_TODO_ERROR]\t\t\t=
        { \"rebaseTodoError\" },\n\t[ADVICE_REF_SYNTAX]\t\t\t\t= { \"refSyntax\" },\n\t[ADVICE_RESET_NO_REFRESH_WARNING]\t\t=
        { \"resetNoRefresh\" },\n\t[ADVICE_RESOLVE_CONFLICT]\t\t\t= { \"resolveConflict\"
        },\n\t[ADVICE_RM_HINTS]\t\t\t\t= { \"rmHints\" },\n\t[ADVICE_SEQUENCER_IN_USE]\t\t\t=
        { \"sequencerInUse\" },\n\t[ADVICE_SET_UPSTREAM_FAILURE]\t\t\t= { \"setUpstreamFailure\"
        },\n\t[ADVICE_SKIPPED_CHERRY_PICKS]\t\t\t= { \"skippedCherryPicks\" },\n\t[ADVICE_SPARSE_INDEX_EXPANDED]\t\t\t=
        { \"sparseIndexExpanded\" },\n\t[ADVICE_STATUS_AHEAD_BEHIND_WARNING]\t\t=
        { \"statusAheadBehindWarning\" },\n\t[ADVICE_STATUS_HINTS]\t\t\t\t= { \"statusHints\"
        },\n\t[ADVICE_STATUS_U_OPTION]\t\t\t= { \"statusUoption\" },\n\t[ADVICE_SUBMODULES_NOT_UPDATED]
        \t\t= { \"submodulesNotUpdated\" },\n\t[ADVICE_SUBMODULE_ALTERNATE_ERROR_STRATEGY_DIE]
        = { \"submoduleAlternateErrorStrategyDie\" },\n\t[ADVICE_SUBMODULE_MERGE_CONFLICT]
        \              = { \"submoduleMergeConflict\" },\n\t[ADVICE_SUGGEST_DETACHING_HEAD]\t\t\t=
        { \"suggestDetachingHead\" },\n\t[ADVICE_UPDATE_SPARSE_PATH]\t\t\t= { \"updateSparsePath\"
        },\n\t[ADVICE_WAITING_FOR_EDITOR]\t\t\t= { \"waitingForEditor\" },\n\t[ADVICE_WORKTREE_ADD_ORPHAN]\t\t\t=
        { \"worktreeAddOrphan\" },\n}"
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/git/advice.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/strvec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRVEC_INIT
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/git/strvec.h
      type_or_value: "{ \\\n\t.v = empty_strvec, \\\n}"
    structs:
    - fields:
      - name: '**v'
        type: char
      - name: nr
        type: size_t
      - name: alloc
        type: size_t
      item_type: struct
      name: strvec
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/git/strvec.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/fsmonitor-ll.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - range_set_grow
  - range_set_init
  - range_set_release
  - range_set_copy
  - range_set_move
  - range_set_append_unsafe
  - range_set_append
  - range_cmp
  - range_set_check_invariants
  - sort_and_merge_range_set
  - range_set_union
  - range_set_difference
  - diff_ranges_init
  - diff_ranges_release
  - line_log_data_init
  - line_log_data_clear
  - free_line_log_data
  - search_line_log_data
  - line_log_data_insert
  - collect_diff_cb
  - collect_diff
  - dump_range_set
  - dump_line_log_data
  - dump_diff_ranges
  - ranges_overlap
  - diff_ranges_filter_touched
  - range_set_shift_diff
  - range_set_map_across_diff
  - check_single_commit
  - fill_blob_sha1
  - fill_line_ends
  - nth_line
  - parse_lines
  - for_each_string_list_item
  - line_log_data_copy_one
  - line_log_data_copy
  - line_log_data_merge
  - add_line_range
  - clear_commit_line_range
  - lookup_line_range
  - same_paths_in_pathspec_and_range
  - parse_pathspec_from_ranges
  - line_log_init
  - move_diff_queue
  - filter_diffs_for_paths
  - diff_might_be_rename
  - queue_diffs
  - process_diff_filepair
  - diff_filepair_dup
  - process_all_files
  - line_log_print
  - bloom_filter_check
  - process_ranges_ordinary_commit
  - process_ranges_merge_commit
  - line_log_process_ranges_arbitrary_commit
  - line_log_rewrite_one
  - line_log_filter
  - free_void_line_log_data
  - line_log_free
  source_file: /src/git/line-log.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RANGE_SET_INIT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/line-log.c
      type_or_value: '{0}'
    structs:
    - fields:
      - name: '*diff'
        type: struct diff_ranges
      item_type: struct
      name: collect_diff_cbdata
      pos:
        line_end: 317
        line_start: 315
        source_file: /src/git/line-log.c
    - fields:
      - name: '*spec'
        type: struct diff_filespec
      - name: lines
        type: long
      - name: '*line_ends'
        type: unsigned long
      item_type: struct
      name: nth_line_cb
      pos:
        line_end: 551
        line_start: 547
        source_file: /src/git/line-log.c
    typedefs: []
    union: []
- function_names:
  - compare_commits_by_gen
  - queue_has_nonstale
  - paint_down_to_common
  - merge_bases_many
  - get_octopus_merge_bases
  - remove_redundant_no_gen
  - remove_redundant_with_gen
  - remove_redundant
  - get_merge_bases_many_0
  - repo_get_merge_bases_many
  - repo_get_merge_bases_many_dirty
  - repo_get_merge_bases
  - repo_is_descendant_of
  - repo_in_merge_bases_many
  - repo_in_merge_bases
  - reduce_heads
  - reduce_heads_replace
  - ref_newer
  - in_commit_list
  - contains_test
  - push_to_contains_stack
  - contains_tag_algo
  - commit_contains
  - can_all_from_reach_with_flag
  - can_all_from_reach
  - get_reachable_subset
  - insert_no_dup
  - get_bit_array
  - free_bit_array
  - ahead_behind
  - compare_commit_and_index_by_generation
  - tips_reachable_from_bases
  - get_best
  - set_best
  - get_branch_base_for_tip
  source_file: /src/git/commit-reach.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PARENT1
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/commit-reach.c
      type_or_value: (1u<<16)
    - item_type: preproc_def
      name: PARENT2
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/commit-reach.c
      type_or_value: (1u<<17)
    - item_type: preproc_def
      name: STALE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/commit-reach.c
      type_or_value: (1u<<18)
    - item_type: preproc_def
      name: RESULT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/commit-reach.c
      type_or_value: (1u<<19)
    structs:
    - fields:
      - name: nr
        type: int
      - name: '*contains_stack'
        type: "struct contains_stack_entry {\n\t\tstruct commit *commit;\n\t\tstruct
          commit_list *parents;\n\t}"
      item_type: struct
      name: contains_stack
      pos:
        line_end: 698
        line_start: 692
        source_file: /src/git/commit-reach.c
    - fields:
      - name: '*commit'
        type: struct commit
      - name: '*parents'
        type: struct commit_list
      item_type: struct
      name: contains_stack_entry
      pos:
        line_end: 697
        line_start: 694
        source_file: /src/git/commit-reach.c
    - fields:
      - name: '*commit'
        type: struct commit
      - name: index
        type: unsigned int
      - name: generation
        type: timestamp_t
      item_type: struct
      name: commit_and_index
      pos:
        line_end: 1147
        line_start: 1143
        source_file: /src/git/commit-reach.c
    typedefs: []
    union: []
- function_names:
  - DIFF_FILE_VALID
  - DIFF_PAIR_UNMERGED
  - DIFF_PAIR_RENAME
  - DIFF_PAIR_BROKEN
  - DIFF_PAIR_TYPE_CHANGED
  - DIFF_PAIR_MODE_CHANGED
  source_file: /src/git/diffcore.h
  types:
    enum:
    - enumerators:
      - name: NOT_RELEVANT
        value: '0'
      - name: RELEVANT_FOR_SELF
        value: '2'
      - name: RELEVANT_FOR_ANCESTOR
        value: '1'
      item_type: enum
      name: dir_rename_relevance
      pos:
        line_end: 187
        line_start: 183
        source_file: /src/git/diffcore.h
    - enumerators:
      - name: RELEVANT_NO_MORE
        value: '0'
      - name: RELEVANT_CONTENT
        value: '1'
      - name: RELEVANT_LOCATION
        value: '2'
      item_type: enum
      name: file_rename_relevance
      pos:
        line_end: 193
        line_start: 189
        source_file: /src/git/diffcore.h
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SCORE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/diffcore.h
      type_or_value: '60000.0'
    - item_type: preproc_def
      name: DEFAULT_RENAME_SCORE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/diffcore.h
      type_or_value: '30000 '
    - item_type: preproc_def
      name: DEFAULT_BREAK_SCORE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/diffcore.h
      type_or_value: '30000 '
    - item_type: preproc_def
      name: DEFAULT_MERGE_SCORE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/diffcore.h
      type_or_value: '36000 '
    - item_type: preproc_def
      name: MINIMUM_BREAK_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/diffcore.h
      type_or_value: '400 '
    - item_type: preproc_def
      name: DIRTY_SUBMODULE_UNTRACKED
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/git/diffcore.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DIRTY_SUBMODULE_MODIFIED
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/diffcore.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DIFF_QUEUE_INIT
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/git/diffcore.h
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: DIFF_DEBUG
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/git/diffcore.h
      type_or_value: '0'
    structs:
    - fields:
      - name: start
        type: long
      item_type: struct
      name: range
      pos:
        line_end: 24
        line_start: 22
        source_file: /src/git/diffcore.h
    - fields:
      - name: alloc
        type: unsigned int
      - name: '*ranges'
        type: struct range
      item_type: struct
      name: range_set
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/git/diffcore.h
    - fields:
      - name: oid
        type: struct object_id
      - name: '*path'
        type: char
      - name: '*data'
        type: void
      - name: '*cnt_data'
        type: void
      - name: size
        type: unsigned long
      - name: count
        type: int
      - name: rename_used
        type: int
      - name: mode
        type: unsigned short
      - name: oid_valid
        type: unsigned
      - name: should_free
        type: unsigned
      - name: should_munmap
        type: unsigned
      - name: dirty_submodule
        type: unsigned
      - name: is_stdin
        type: unsigned
      - name: has_more_entries
        type: unsigned
      - name: is_binary
        type: signed int
      - name: '*driver'
        type: struct userdiff_driver
      item_type: struct
      name: diff_filespec
      pos:
        line_end: 75
        line_start: 51
        source_file: /src/git/diffcore.h
    - fields:
      - name: check_size_only
        type: unsigned
      - name: check_binary
        type: unsigned
      - name: (*missing_object_cb)(void *)
        type: void
      - name: '*missing_object_data'
        type: void
      item_type: struct
      name: diff_populate_filespec_options
      pos:
        line_end: 98
        line_start: 88
        source_file: /src/git/diffcore.h
    - fields:
      - name: '*one'
        type: struct diff_filespec
      - name: '*two'
        type: struct diff_filespec
      - name: '*line_ranges'
        type: struct range_set
      - name: score
        type: unsigned short int
      - name: status
        type: char
      - name: broken_pair
        type: unsigned
      - name: renamed_pair
        type: unsigned
      - name: is_unmerged
        type: unsigned
      - name: done_skip_stat_unmatch
        type: unsigned
      - name: skip_stat_unmatch_result
        type: unsigned
      item_type: struct
      name: diff_filepair
      pos:
        line_end: 131
        line_start: 116
        source_file: /src/git/diffcore.h
    - fields:
      - name: '**queue'
        type: struct diff_filepair
      - name: alloc
        type: int
      - name: nr
        type: int
      item_type: struct
      name: diff_queue_struct
      pos:
        line_end: 169
        line_start: 165
        source_file: /src/git/diffcore.h
    - fields:
      - name: '*obj'
        type: void
      - name: orig_order
        type: int
      - name: order
        type: int
      item_type: struct
      name: obj_order
      pos:
        line_end: 217
        line_start: 211
        source_file: /src/git/diffcore.h
    typedefs:
    - item_type: typedef
      name: '*(*obj_path_fn_t)(void *obj)'
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/git/diffcore.h
      type: char
    union: []
- function_names:
  - parallel_checkout_status
  - get_parallel_checkout_configs
  - init_parallel_checkout
  - finish_parallel_checkout
  - is_eligible_for_parallel_checkout
  - enqueue_checkout
  - pc_queue_size
  - advance_progress_meter
  - handle_results
  - reset_fd
  - write_pc_item_to_fd
  - close_and_clear
  - write_pc_item
  - send_one_item
  - send_batch
  - setup_workers
  - finish_workers
  - assert_pc_item_result_size
  - parse_and_save_result
  - gather_results_from_workers
  - write_items_sequentially
  - run_parallel_checkout
  source_file: /src/git/parallel-checkout.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cp
        type: struct child_process
      - name: next_item_to_complete
        type: size_t
      item_type: struct
      name: pc_worker
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/git/parallel-checkout.c
    - fields:
      - name: status
        type: enum pc_status
      - name: '*items'
        type: struct parallel_checkout_item
      - name: nr
        type: size_t
      - name: '*progress'
        type: struct progress
      - name: '*progress_cnt'
        type: unsigned int
      item_type: struct
      name: parallel_checkout
      pos:
        line_end: 31
        line_start: 25
        source_file: /src/git/parallel-checkout.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/alias.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_tree_gently
  - parse_tree
  - repo_parse_tree
  - parse_tree_indirect
  source_file: /src/git/tree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: READ_TREE_RECURSIVE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/tree.h
      type_or_value: '1'
    structs:
    - fields:
      - name: object
        type: struct object
      - name: '*buffer'
        type: void
      - name: size
        type: unsigned long
      item_type: struct
      name: tree
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/git/tree.h
    typedefs:
    - item_type: typedef
      name: (*read_tree_fn_t)(const struct object_id *, struct strbuf *, const char
        *, unsigned int, void *)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/git/tree.h
      type: int
    union: []
- function_names:
  - check_tracking_name
  - unique_tracking_name
  source_file: /src/git/checkout.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACKING_NAME_DATA_INIT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/checkout.c
      type_or_value: '{ 0 }'
    structs:
    - fields:
      - name: '*src_ref'
        type: char
      - name: '*dst_ref'
        type: char
      - name: '*dst_oid'
        type: struct object_id
      - name: num_matches
        type: int
      - name: '*default_remote'
        type: char
      - name: '*default_dst_ref'
        type: char
      - name: '*default_dst_oid'
        type: struct object_id
      item_type: struct
      name: tracking_name_data
      pos:
        line_end: 19
        line_start: 11
        source_file: /src/git/checkout.c
    typedefs: []
    union: []
- function_names:
  - register_archiver
  - init_archivers
  - format_subst
  - object_file_to_archive
  - get_archive_attrs
  - check_attr_export_ignore
  - check_attr_export_subst
  - write_archive_entry
  - queue_directory
  - write_directory
  - queue_or_write_archive_entry
  - write_archive_entries
  - lookup_archiver
  - reject_entry
  - reject_outside
  - path_exists
  - parse_pathspec_arg
  - parse_treeish_arg
  - extra_file_info_clear
  - add_file_cb
  - number_callback
  - parse_archive_args
  - write_archive
  - match_extension
  - archive_format_from_filename
  source_file: /src/git/archive.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*up'
        type: struct directory
      - name: oid
        type: struct object_id
      - name: baselen
        type: int
      - name: mode
        type: unsigned
      - name: path[FLEX_ARRAY]
        type: char
      item_type: struct
      name: directory
      pos:
        line_end: 122
        line_start: 116
        source_file: /src/git/archive.c
    - fields:
      - name: '*args'
        type: struct archiver_args
      - name: write_entry
        type: write_archive_entry_fn_t
      - name: '*bottom'
        type: struct directory
      item_type: struct
      name: archiver_context
      pos:
        line_end: 128
        line_start: 124
        source_file: /src/git/archive.c
    - fields:
      - name: '*base'
        type: char
      - name: stat
        type: struct stat
      - name: '*content'
        type: void
      item_type: struct
      name: extra_file_info
      pos:
        line_end: 302
        line_start: 298
        source_file: /src/git/archive.c
    - fields:
      - name: pathspec
        type: struct pathspec
      - name: '*args'
        type: struct archiver_args
      item_type: struct
      name: path_exists_context
      pos:
        line_end: 399
        line_start: 396
        source_file: /src/git/archive.c
    typedefs: []
    union: []
- function_names:
  - take2
  - oid_pos
  - bsearch_hash
  source_file: /src/git/hash-lookup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/shallow.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHALLOW_LOCK_INIT
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/git/shallow.h
      type_or_value: "{ \\\n\t.lock = LOCK_INIT, \\\n}"
    - item_type: preproc_def
      name: PRUNE_SHOW_ONLY
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/shallow.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PRUNE_QUICK
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/shallow.h
      type_or_value: '2'
    structs:
    - fields:
      - name: lock
        type: struct lock_file
      item_type: struct
      name: shallow_lock
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/git/shallow.h
    - fields:
      - name: '*shallow'
        type: struct oid_array
      - name: '*ours'
        type: size_t
      - name: '*theirs'
        type: size_t
      - name: '*ref'
        type: struct oid_array
      - name: '**used_shallow'
        type: uint32_t
      - name: '*need_reachability_test'
        type: int
      - name: '*reachable'
        type: int
      - name: '*shallow_ref'
        type: int
      - name: commits
        type: struct commit_stack
      item_type: struct
      name: shallow_info
      pos:
        line_end: 75
        line_start: 63
        source_file: /src/git/shallow.h
    typedefs: []
    union: []
- function_names:
  - config_alias_cb
  - alias_lookup
  - list_aliases
  - quote_cmdline
  - split_cmdline
  - split_cmdline_strerror
  source_file: /src/git/alias.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLIT_CMDLINE_BAD_ENDING
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/git/alias.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SPLIT_CMDLINE_UNCLOSED_QUOTE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/git/alias.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SPLIT_CMDLINE_ARGC_OVERFLOW
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/git/alias.c
      type_or_value: '3'
    structs:
    - fields:
      - name: '*alias'
        type: char
      - name: '*v'
        type: char
      - name: '*list'
        type: struct string_list
      item_type: struct
      name: config_alias_data
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/git/alias.c
    typedefs: []
    union: []
- function_names:
  - hexval
  - hex2chr
  source_file: /src/git/hex-ll.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/repack.h
  types:
    enum:
    - enumerators:
      - name: REPACK_WRITE_MIDX_NONE
      - name: REPACK_WRITE_MIDX_DEFAULT
      - name: REPACK_WRITE_MIDX_INCREMENTAL
      item_type: enum
      name: repack_write_midx_mode
      pos:
        line_end: 144
        line_start: 140
        source_file: /src/git/repack.h
    preproc_defs:
    - item_type: preproc_def
      name: PACK_OBJECTS_ARGS_INIT
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/git/repack.h
      type_or_value: "{ \\\n\t.delta_base_offset = 1, \\\n\t.pack_kept_objects = -1,
        \\\n}"
    - item_type: preproc_def
      name: EXISTING_PACKS_INIT
      pos:
        line_end: 71
        line_start: 66
        source_file: /src/git/repack.h
      type_or_value: "{ \\\n\t.kept_packs = STRING_LIST_INIT_DUP, \\\n\t.non_kept_packs
        = STRING_LIST_INIT_DUP, \\\n\t.cruft_packs = STRING_LIST_INIT_DUP, \\\n}"
    structs:
    - fields:
      - name: '*window'
        type: char
      - name: '*window_memory'
        type: char
      - name: '*depth'
        type: char
      - name: '*threads'
        type: char
      - name: max_pack_size
        type: unsigned long
      - name: no_reuse_delta
        type: int
      - name: no_reuse_object
        type: int
      - name: quiet
        type: int
      - name: local
        type: int
      - name: name_hash_version
        type: int
      - name: path_walk
        type: int
      - name: delta_base_offset
        type: int
      - name: pack_kept_objects
        type: int
      - name: filter_options
        type: struct list_objects_filter_options
      item_type: struct
      name: pack_objects_args
      pos:
        line_end: 21
        line_start: 6
        source_file: /src/git/repack.h
    - fields:
      - name: '*po_args'
        type: struct pack_objects_args
      - name: '*destination'
        type: char
      - name: '*packdir'
        type: char
      - name: '*packtmp'
        type: char
      item_type: struct
      name: write_pack_opts
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/git/repack.h
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*source'
        type: struct odb_source
      - name: kept_packs
        type: struct string_list
      - name: non_kept_packs
        type: struct string_list
      - name: cruft_packs
        type: struct string_list
      - name: midx_packs
        type: struct string_list
      item_type: struct
      name: existing_packs
      pos:
        line_end: 64
        line_start: 57
        source_file: /src/git/repack.h
    - fields:
      - name: '**pack'
        type: struct packed_git
      - name: pack_nr
        type: uint32_t
      - name: split
        type: uint32_t
      - name: '**promisor_pack'
        type: struct packed_git
      - name: promisor_pack_nr
        type: uint32_t
      - name: promisor_split
        type: uint32_t
      - name: midx_layer_threshold
        type: uint32_t
      - name: midx_layer_threshold_set
        type: bool
      - name: midx_tip_rewritten
        type: bool
      - name: split_factor
        type: int
      item_type: struct
      name: pack_geometry
      pos:
        line_end: 118
        line_start: 104
        source_file: /src/git/repack.h
    - fields:
      - name: '*existing'
        type: struct existing_packs
      - name: '*geometry'
        type: struct pack_geometry
      - name: '*names'
        type: struct string_list
      - name: '*refs_snapshot'
        type: char
      - name: '*packdir'
        type: char
      - name: show_progress
        type: int
      - name: write_bitmaps
        type: int
      - name: midx_must_contain_cruft
        type: int
      - name: midx_split_factor
        type: int
      - name: midx_new_layer_threshold
        type: int
      - name: mode
        type: enum repack_write_midx_mode
      item_type: struct
      name: repack_write_midx_opts
      pos:
        line_end: 158
        line_start: 146
        source_file: /src/git/repack.h
    typedefs: []
    union: []
- function_names:
  - is_directory
  - strip_last_component
  - get_next_component
  - get_root_part
  - strbuf_realpath_1
  - strbuf_realpath
  - strbuf_realpath_forgiving
  - real_pathdup
  - absolute_path
  - absolute_pathdup
  - prefix_filename
  - prefix_filename_except_for_dash
  - strbuf_add_absolute_path
  - strbuf_add_real_path
  source_file: /src/git/abspath.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXSYMLINKS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/git/abspath.c
      type_or_value: '32'
    - item_type: preproc_def
      name: REALPATH_MANY_MISSING
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/git/abspath.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: REALPATH_DIE_ON_ERROR
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/git/abspath.c
      type_or_value: (1 << 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - next_directory_entry
  - push_level
  - pop_level
  - prepare_next_entry_data
  - dir_iterator_advance
  - dir_iterator_free
  - dir_iterator_begin
  source_file: /src/git/dir-iterator.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*dir'
        type: DIR
      - name: entries
        type: struct string_list
      - name: entries_idx
        type: size_t
      - name: prefix_len
        type: size_t
      item_type: struct
      name: dir_iterator_level
      pos:
        line_end: 22
        line_start: 6
        source_file: /src/git/dir-iterator.c
    - fields:
      - name: base
        type: struct dir_iterator
      - name: levels_nr
        type: size_t
      - name: levels_alloc
        type: size_t
      - name: '*levels'
        type: struct dir_iterator_level
      - name: flags
        type: unsigned int
      item_type: struct
      name: dir_iterator_int
      pos:
        line_end: 52
        line_start: 29
        source_file: /src/git/dir-iterator.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/url.h
  types:
    enum:
    - enumerators:
      - name: URL_SCHEME_UNKNOWN
        value: '0'
      - name: URL_SCHEME_GIT
      - name: URL_SCHEME_LOCAL
      - name: URL_SCHEME_FILE
      - name: URL_SCHEME_SSH
      item_type: enum
      name: url_scheme
      pos:
        line_end: 31
        line_start: 25
        source_file: /src/git/url.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_alternate_shallow_file
  - register_shallow
  - unregister_shallow
  - is_repository_shallow
  - reset_repository_shallow
  - commit_shallow_file
  - rollback_shallow_file
  - free_depth_in_slab
  - get_shallows_or_depth
  - get_shallows_depth
  - get_shallow_commits
  - show_commit
  - get_shallow_commits_by_rev_list
  - check_shallow_file_for_update
  - write_one_shallow
  - write_shallow_commits_1
  - write_shallow_commits
  - setup_temporary_shallow
  - setup_alternate_shallow
  - advertise_shallow_grafts_cb
  - advertise_shallow_grafts
  - prune_shallow
  - prepare_shallow_info
  - clear_shallow_info
  - remove_nonexistent_theirs_shallow
  - paint_alloc
  - paint_down
  - mark_uninteresting
  - assign_shallow_commits_to_refs
  - add_ref
  - update_refstatus
  - post_assign_shallow
  - delayed_reachability_test
  source_file: /src/git/shallow.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEEN_ONLY
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/git/shallow.c
      type_or_value: '1'
    - item_type: preproc_def
      name: VERBOSE
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/git/shallow.c
      type_or_value: '2'
    - item_type: preproc_def
      name: QUICK
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/git/shallow.c
      type_or_value: '4'
    - item_type: preproc_def
      name: POOL_SIZE
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/git/shallow.c
      type_or_value: (512 * 1024)
    structs:
    - fields:
      - name: '*out'
        type: struct strbuf
      - name: use_pack_protocol
        type: int
      - name: count
        type: int
      - name: flags
        type: unsigned
      item_type: struct
      name: write_shallow_data
      pos:
        line_end: 356
        line_start: 351
        source_file: /src/git/shallow.c
    - fields:
      - name: ref_bitmap
        type: struct ref_bitmap
      - name: nr_bits
        type: unsigned
      - name: '**pools'
        type: char
      - name: '*free'
        type: char
      - name: pool_count
        type: unsigned
      item_type: struct
      name: paint_info
      pos:
        line_end: 589
        line_start: 583
        source_file: /src/git/shallow.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/walker.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: void
      - name: (*fetch_ref)(struct walker *, struct ref *ref)
        type: int
      - name: (*prefetch)(struct walker *, const struct object_id *oid)
        type: void
      - name: (*fetch)(struct walker *, const struct object_id *oid)
        type: int
      - name: (*cleanup)(struct walker *)
        type: void
      - name: get_verbosely
        type: int
      - name: get_progress
        type: int
      - name: get_recover
        type: int
      - name: corrupt_object_found
        type: int
      item_type: struct
      name: walker
      pos:
        line_end: 16
        line_start: 5
        source_file: /src/git/walker.h
    typedefs: []
    union: []
- function_names:
  - pthread_mutex_init
  - pthread_cond_init
  - pthread_key_create
  - pthread_create
  - pthread_join
  - pthread_getspecific
  source_file: /src/git/thread-utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_THREADS
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/thread-utils.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_THREADS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/thread-utils.h
      type_or_value: '0'
    - item_type: preproc_def
      name: pthread_t
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/thread-utils.h
      type_or_value: int
    - item_type: preproc_def
      name: pthread_mutex_t
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/thread-utils.h
      type_or_value: int
    - item_type: preproc_def
      name: pthread_cond_t
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/thread-utils.h
      type_or_value: int
    - item_type: preproc_def
      name: pthread_key_t
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/thread-utils.h
      type_or_value: int
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/simple-ipc.h
  types:
    enum:
    - enumerators:
      - name: IPC_STATE__LISTENING
        value: '0'
      - name: IPC_STATE__OTHER_ERROR
      - name: IPC_STATE__PATH_NOT_FOUND
      - name: IPC_STATE__NOT_LISTENING
      - name: IPC_STATE__INVALID_PATH
      item_type: enum
      name: ipc_active_state
      pos:
        line_end: 36
        line_start: 7
        source_file: /src/git/simple-ipc.h
    preproc_defs:
    - item_type: preproc_def
      name: IPC_CLIENT_CONNECT_OPTIONS_INIT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/git/simple-ipc.h
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: SIMPLE_IPC_QUIT
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/git/simple-ipc.h
      type_or_value: '-2'
    structs:
    - fields:
      - name: wait_if_busy
        type: unsigned int
      - name: wait_if_not_found
        type: unsigned int
      - name: uds_disallow_chdir
        type: unsigned int
      item_type: struct
      name: ipc_client_connect_options
      pos:
        line_end: 65
        line_start: 45
        source_file: /src/git/simple-ipc.h
    - fields:
      - name: fd
        type: int
      item_type: struct
      name: ipc_client_connection
      pos:
        line_end: 78
        line_start: 76
        source_file: /src/git/simple-ipc.h
    - fields:
      - name: nr_threads
        type: int
      - name: uds_disallow_chdir
        type: unsigned int
      item_type: struct
      name: ipc_server_opts
      pos:
        line_end: 167
        line_start: 159
        source_file: /src/git/simple-ipc.h
    typedefs:
    - item_type: typedef
      name: "(ipc_server_reply_cb)(struct ipc_server_reply_data *,\n\t\t\t\t  const
        char *response,\n\t\t\t\t  size_t response_len)"
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/git/simple-ipc.h
      type: int
    - item_type: typedef
      name: "(ipc_server_application_cb)(void *application_data,\n\t\t\t\t\tconst
        char *request,\n\t\t\t\t\tsize_t request_len,\n\t\t\t\t\tipc_server_reply_cb
        *reply_cb,\n\t\t\t\t\tstruct ipc_server_reply_data *reply_data)"
      pos:
        line_end: 146
        line_start: 142
        source_file: /src/git/simple-ipc.h
      type: int
    union: []
- function_names:
  - write_midx_header
  - fill_pack_info
  - pack_info_compare
  - idx_or_pack_name_cmp
  - midx_pack_perm
  - should_include_pack
  - add_pack_to_midx
  - midx_oid_compare
  - nth_midxed_pack_midx_entry
  - fill_pack_entry
  - midx_fanout_grow
  - midx_fanout_sort
  - midx_fanout_add_midx_fanout_1
  - midx_fanout_add_midx_fanout
  - midx_fanout_add_pack_fanout
  - midx_fanout_add
  - midx_fanout_add_compact
  - compute_sorted_entries
  - write_midx_pack_names
  - write_midx_bitmapped_packs
  - write_midx_oid_fanout
  - write_midx_oid_lookup
  - write_midx_object_offsets
  - write_midx_large_offsets
  - write_midx_revindex
  - midx_pack_order_cmp
  - midx_pack_order
  - write_midx_reverse_index
  - prepare_midx_packing_data
  - add_ref_to_pending
  - bitmap_oid_access
  - bitmap_show_commit
  - read_refs_snapshot
  - find_commits_for_midx_bitmap
  - write_midx_bitmap
  - fill_pack_from_midx
  - fill_packs_from_midx
  - compactible_packs_between
  - fill_packs_from_midx_range
  - link_midx_to_chain
  - clear_midx_files
  - midx_needs_update
  - midx_hashcmp
  - write_midx_internal
  - write_midx_file
  - write_midx_file_only
  - write_midx_file_compact
  - expire_midx_packs
  - compare_by_mtime
  - want_included_pack
  - fill_included_packs_all
  - fill_included_packs_batch
  - midx_repack
  source_file: /src/git/midx-write.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACK_EXPIRED
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/midx-write.c
      type_or_value: UINT_MAX
    - item_type: preproc_def
      name: BITMAP_POS_UNKNOWN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/midx-write.c
      type_or_value: (~((uint32_t)0))
    - item_type: preproc_def
      name: MIDX_CHUNK_FANOUT_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/midx-write.c
      type_or_value: (sizeof(uint32_t) * 256)
    - item_type: preproc_def
      name: MIDX_CHUNK_LARGE_OFFSET_WIDTH
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/midx-write.c
      type_or_value: (sizeof(uint64_t))
    - item_type: preproc_def
      name: NO_PREFERRED_PACK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/midx-write.c
      type_or_value: (~((uint32_t)0))
    structs:
    - fields:
      - name: orig_pack_int_id
        type: uint32_t
      - name: '*pack_name'
        type: char
      - name: '*p'
        type: struct packed_git
      - name: bitmap_pos
        type: uint32_t
      - name: bitmap_nr
        type: uint32_t
      - name: expired
        type: unsigned
      item_type: struct
      name: pack_info
      pos:
        line_end: 61
        line_start: 52
        source_file: /src/git/midx-write.c
    - fields:
      - name: '*info'
        type: struct pack_info
      - name: nr
        type: size_t
      - name: alloc
        type: size_t
      - name: '*m'
        type: struct multi_pack_index
      - name: '*base_midx'
        type: struct multi_pack_index
      - name: '*progress'
        type: struct progress
      - name: pack_paths_checked
        type: unsigned
      - name: '*entries'
        type: struct pack_midx_entry
      - name: entries_nr
        type: size_t
      - name: '*pack_perm'
        type: uint32_t
      - name: '*pack_order'
        type: uint32_t
      - name: large_offsets_needed
        type: unsigned
      - name: num_large_offsets
        type: uint32_t
      - name: preferred_pack_idx
        type: uint32_t
      - name: version
        type: int
      - name: incremental
        type: int
      - name: num_multi_pack_indexes_before
        type: uint32_t
      - name: '*compact_from'
        type: struct multi_pack_index
      - name: '*compact_to'
        type: struct multi_pack_index
      - name: compact
        type: int
      - name: '*to_include'
        type: struct string_list
      - name: '*repo'
        type: struct repository
      - name: '*source'
        type: struct odb_source
      item_type: struct
      name: write_midx_context
      pos:
        line_end: 122
        line_start: 90
        source_file: /src/git/midx-write.c
    - fields:
      - name: oid
        type: struct object_id
      - name: pack_int_id
        type: uint32_t
      - name: pack_mtime
        type: time_t
      - name: offset
        type: uint64_t
      - name: preferred
        type: unsigned
      item_type: struct
      name: pack_midx_entry
      pos:
        line_end: 200
        line_start: 194
        source_file: /src/git/midx-write.c
    - fields:
      - name: '*entries'
        type: struct pack_midx_entry
      - name: nr
        type: size_t
      item_type: struct
      name: midx_fanout
      pos:
        line_end: 260
        line_start: 257
        source_file: /src/git/midx-write.c
    - fields:
      - name: nr
        type: uint32_t
      - name: pack
        type: uint32_t
      - name: offset
        type: off_t
      item_type: struct
      name: midx_pack_order_data
      pos:
        line_end: 641
        line_start: 637
        source_file: /src/git/midx-write.c
    - fields:
      - name: '*commits'
        type: struct commit_stack
      - name: '*ctx'
        type: struct write_midx_context
      item_type: struct
      name: bitmap_commit_cb
      pos:
        line_end: 781
        line_start: 778
        source_file: /src/git/midx-write.c
    - fields:
      - name: '*non_split'
        type: char
      - name: '*split'
        type: char
      item_type: struct
      name: "midx_exts[] = {\n\t{NULL, MIDX_EXT_MIDX},\n\t{MIDX_EXT_BITMAP, MIDX_EXT_BITMAP},\n\t{MIDX_EXT_REV,
        MIDX_EXT_REV},\n}"
      pos:
        line_end: 1063
        line_start: 1060
        source_file: /src/git/midx-write.c
    - fields:
      - name: '*source'
        type: struct odb_source
      - name: '*packs_to_include'
        type: struct string_list
      - name: '*packs_to_drop'
        type: struct string_list
      - name: '*compact_from'
        type: struct multi_pack_index
      - name: '*compact_to'
        type: struct multi_pack_index
      - name: '*preferred_pack_name'
        type: char
      - name: '*refs_snapshot'
        type: char
      - name: '*incremental_base'
        type: char
      - name: flags
        type: unsigned
      item_type: struct
      name: write_midx_opts
      pos:
        line_end: 1251
        line_start: 1238
        source_file: /src/git/midx-write.c
    - fields:
      - name: mtime
        type: timestamp_t
      - name: referenced_objects
        type: uint32_t
      - name: pack_int_id
        type: uint32_t
      item_type: struct
      name: repack_info
      pos:
        line_end: 1974
        line_start: 1970
        source_file: /src/git/midx-write.c
    typedefs: []
    union: []
- function_names:
  - TRACE_KEY_INIT
  - trace_printf
  - trace_printf_key
  - trace_argv_printf
  - trace_strbuf
  - trace_performance
  - trace_performance_since
  - trace_performance_leave
  - trace_pass_fl
  source_file: /src/git/trace.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_CONTEXT
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/git/trace.h
      type_or_value: __FILE__
    structs:
    - fields:
      - name: '* const key'
        type: char
      - name: fd
        type: int
      - name: initialized
        type: unsigned int
      - name: need_close
        type: unsigned int
      item_type: struct
      name: trace_key
      pos:
        line_end: 86
        line_start: 81
        source_file: /src/git/trace.h
    typedefs: []
    union: []
- function_names:
  - alloc_state_alloc
  - alloc_state_free_and_null
  - alloc_node
  - alloc_blob_node
  - alloc_tree_node
  - alloc_tag_node
  - alloc_object_node
  - alloc_commit_index
  - init_commit_node
  - alloc_commit_node
  source_file: /src/git/alloc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOCKING
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/alloc.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: nr
        type: int
      - name: '*p'
        type: void
      - name: '**slabs'
        type: void
      - name: slab_nr
        type: int
      item_type: struct
      name: alloc_state
      pos:
        line_end: 36
        line_start: 29
        source_file: /src/git/alloc.c
    typedefs: []
    union:
    - fields:
      - name: object
        type: struct object
      - name: blob
        type: struct blob
      - name: tree
        type: struct tree
      - name: commit
        type: struct commit
      - name: tag
        type: struct tag
      item_type: union
      name: any_object
      pos:
        line_end: 27
        line_start: 21
        source_file: /src/git/alloc.c
- function_names:
  - lookup_replace_object
  source_file: /src/git/replace-object.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: original
        type: struct oidmap_entry
      - name: replacement
        type: struct object_id
      item_type: struct
      name: replace_object
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/git/replace-object.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/protocol.h
  types:
    enum:
    - enumerators:
      - name: protocol_unknown_version
        value: '-1'
      - name: protocol_v1
        value: '1'
      - name: protocol_v0
        value: '0'
      - name: protocol_v2
        value: '2'
      item_type: enum
      name: protocol_version
      pos:
        line_end: 29
        line_start: 24
        source_file: /src/git/protocol.h
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_GIT_PORT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/protocol.h
      type_or_value: '9418'
    structs: []
    typedefs: []
    union: []
- function_names:
  - redact_non_printables
  - git_user_agent
  - os_info
  - git_user_agent_sanitized
  - get_uname_info
  source_file: /src/git/version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/pager.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decode_varint
  - encode_varint
  source_file: /src/git/varint.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/submodule-config.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: '*name'
        type: char
      - name: '*url'
        type: char
      - name: fetch_recurse
        type: enum submodule_recurse_mode
      - name: '*ignore'
        type: char
      - name: '*branch'
        type: char
      - name: update_strategy
        type: struct submodule_update_strategy
      - name: gitmodules_oid
        type: struct object_id
      - name: recommend_shallow
        type: int
      item_type: struct
      name: submodule
      pos:
        line_end: 44
        line_start: 33
        source_file: /src/git/submodule-config.h
    - fields:
      - name: '*name_entry'
        type: struct name_entry
      - name: '*repo'
        type: struct repository
      - name: '*submodule'
        type: struct submodule
      item_type: struct
      name: submodule_tree_entry
      pos:
        line_end: 122
        line_start: 109
        source_file: /src/git/submodule-config.h
    - fields:
      - name: '*entries'
        type: struct submodule_tree_entry
      - name: entry_nr
        type: int
      - name: entry_alloc
        type: int
      item_type: struct
      name: submodule_entry_list
      pos:
        line_end: 128
        line_start: 124
        source_file: /src/git/submodule-config.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/editor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_trace_fd
  - trace_override_envvar
  - trace_disable
  - prepare_trace_line
  - trace_write
  - trace_verbatim
  - print_trace_line
  - trace_vprintf_fl
  - trace_argv_vprintf_fl
  - trace_strbuf_fl
  - trace_performance_enter
  - trace_performance_vprintf_fl
  - trace_printf_key_fl
  - trace_argv_printf_fl
  - trace_performance_fl
  - trace_performance_leave_fl
  - quote_crnl
  - trace_repo_setup
  - trace_want
  - highres_nanos
  - highres_nanos
  - highres_nanos
  - gettimeofday_nanos
  - getnanotime
  - print_command_performance_atexit
  - trace_command_performance
  source_file: /src/git/trace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_directory_contents
  - get_mode
  - populate_common
  - populate_from_pipe
  - populate_from_stdin
  - noindex_filespec
  - queue_diff
  - append_basename
  - fixup_paths
  - diff_no_index
  source_file: /src/git/diff-no-index.c
  types:
    enum:
    - enumerators:
      - name: SPECIAL_NONE
      - name: SPECIAL_STDIN
      - name: SPECIAL_PIPE
      item_type: enum
      name: special
      pos:
        line_end: 78
        line_start: 74
        source_file: /src/git/diff-no-index.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - combine_small_cruft_packs
  - write_cruft_pack
  source_file: /src/git/repack-cruft.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reflog-walk.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - initgroups
  - get_canon_hostname
  - get_ip_address
  - logreport
  - logerror
  - loginfo
  - daemon_die
  - path_ok
  - daemon_error
  - run_access_hook
  - run_service
  - copy_to_log
  - run_service_command
  - upload_pack
  - upload_archive
  - receive_pack
  - enable_service
  - make_service_overridable
  - parse_host_and_port
  - sanitize_client
  - canonicalize_client
  - parse_host_arg
  - parse_extra_args
  - lookup_hostname
  - hostinfo_clear
  - set_keep_alive
  - execute
  - addrcmp
  - add_child
  - kill_some_child
  - check_dead_children
  - handle
  - child_handler
  - set_reuse_addr
  - ip2str
  - setup_named_sock
  - setup_named_sock
  - socksetup
  - service_loop
  - drop_privileges
  - prepare_credentials
  - drop_privileges
  - prepare_credentials
  - serve
  - cmd_main
  source_file: /src/git/daemon.c
  types:
    enum:
    - enumerators:
      - name: LOG_DESTINATION_UNSET
        value: '-1'
      - name: LOG_DESTINATION_SYSLOG
        value: '2'
      - name: LOG_DESTINATION_STDERR
        value: '1'
      - name: LOG_DESTINATION_NONE
        value: '0'
      item_type: enum
      name: log_destination
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/git/daemon.c
    preproc_defs:
    - item_type: preproc_def
      name: HOSTINFO_INIT
      pos:
        line_end: 79
        line_start: 73
        source_file: /src/git/daemon.c
      type_or_value: "{ \\\n\t.hostname = STRBUF_INIT, \\\n\t.canon_hostname = STRBUF_INIT,
        \\\n\t.ip_address = STRBUF_INIT, \\\n\t.tcp_port = STRBUF_INIT, \\\n}"
    structs:
    - fields:
      - name: hostname
        type: struct strbuf
      - name: canon_hostname
        type: struct strbuf
      - name: ip_address
        type: struct strbuf
      - name: tcp_port
        type: struct strbuf
      - name: hostname_lookup_done
        type: unsigned int
      - name: saw_extended_args
        type: unsigned int
      item_type: struct
      name: hostinfo
      pos:
        line_end: 72
        line_start: 65
        source_file: /src/git/daemon.c
    - fields:
      - name: '*name'
        type: char
      - name: '*config_name'
        type: char
      - name: fn
        type: daemon_service_fn
      - name: enabled
        type: int
      - name: overridable
        type: int
      item_type: struct
      name: daemon_service
      pos:
        line_end: 298
        line_start: 292
        source_file: /src/git/daemon.c
    - fields:
      - name: '*next'
        type: struct child
      - name: cld
        type: struct child_process
      - name: address
        type: struct sockaddr_storage
      item_type: struct
      name: child
      pos:
        line_end: 811
        line_start: 807
        source_file: /src/git/daemon.c
    - fields:
      - name: '*list'
        type: int
      - name: nr
        type: size_t
      - name: alloc
        type: size_t
      item_type: struct
      name: socketlist
      pos:
        line_end: 936
        line_start: 932
        source_file: /src/git/daemon.c
    - fields:
      - name: '*pass'
        type: struct passwd
      - name: gid
        type: gid_t
      item_type: struct
      name: credentials
      pos:
        line_end: 1197
        line_start: 1194
        source_file: /src/git/daemon.c
    typedefs:
    - item_type: typedef
      name: (*daemon_service_fn)(const struct strvec *env)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/git/daemon.c
      type: int
    union:
    - fields:
      - name: sa
        type: struct sockaddr
      - name: sai
        type: struct sockaddr_in
      item_type: union
      name: ss
      pos:
        line_end: 1150
        line_start: 1144
        source_file: /src/git/daemon.c
- function_names: []
  source_file: /src/git/iterator.h
  types:
    enum:
    - enumerators:
      - name: ITER_SELECT_DONE
        value: ITER_DONE
      - name: ITER_SELECT_ERROR
        value: ITER_ERROR
      - name: ITER_CURRENT_SELECTION_1
        value: '0x01'
      - name: ITER_CURRENT_SELECTION_MASK
        value: '0x01'
      - name: ITER_CURRENT_SELECTION_0
        value: '0x00'
      - name: ITER_YIELD_CURRENT
        value: '0x02'
      - name: ITER_SKIP_SECONDARY
        value: '0x04'
      - name: ITER_SELECT_0
        value: ITER_CURRENT_SELECTION_0 | ITER_YIELD_CURRENT
      - name: ITER_SELECT_0_SKIP_1
        value: ITER_SELECT_0 | ITER_SKIP_SECONDARY
      - name: ITER_SKIP_0
        value: ITER_CURRENT_SELECTION_1 | ITER_SKIP_SECONDARY
      - name: ITER_SELECT_1_SKIP_0
        value: ITER_SELECT_1 | ITER_SKIP_SECONDARY
      - name: ITER_SKIP_1
        value: ITER_CURRENT_SELECTION_0 | ITER_SKIP_SECONDARY
      - name: ITER_SELECT_1
        value: ITER_CURRENT_SELECTION_1 | ITER_YIELD_CURRENT
      item_type: enum
      name: iterator_selection
      pos:
        line_end: 78
        line_start: 29
        source_file: /src/git/iterator.h
    preproc_defs:
    - item_type: preproc_def
      name: ITER_OK
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/iterator.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ITER_DONE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/iterator.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: ITER_ERROR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/iterator.h
      type_or_value: '-2'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/replay.h
  types:
    enum:
    - enumerators:
      - name: REPLAY_EMPTY_COMMIT_DROP
      - name: REPLAY_EMPTY_COMMIT_ABORT
      - name: REPLAY_EMPTY_COMMIT_KEEP
      item_type: enum
      name: replay_empty_commit_action
      pos:
        line_end: 19
        line_start: 12
        source_file: /src/git/replay.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*advance'
        type: char
      - name: '*onto'
        type: char
      - name: '*ref'
        type: char
      - name: '*revert'
        type: char
      - name: contained
        type: int
      - name: empty
        type: enum replay_empty_commit_action
      item_type: struct
      name: replay_revisions_options
      pos:
        line_end: 64
        line_start: 24
        source_file: /src/git/replay.h
    - fields:
      - name: '*updates'
        type: "struct replay_ref_update {\n\t\tchar *refname;\n\t\tstruct object_id
          old_oid;\n\t\tstruct object_id new_oid;\n\t}"
      - name: updates_nr
        type: size_t
      item_type: struct
      name: replay_result
      pos:
        line_end: 78
        line_start: 67
        source_file: /src/git/replay.h
    - fields:
      - name: '*refname'
        type: char
      - name: old_oid
        type: struct object_id
      - name: new_oid
        type: struct object_id
      item_type: struct
      name: replay_ref_update
      pos:
        line_end: 76
        line_start: 72
        source_file: /src/git/replay.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/graph.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPT_BIT_F
  - OPT_COUNTUP_F
  - OPT_SET_INT_F
  - OPT_BOOL_F
  - OPT_CALLBACK_F
  - OPT_STRING_F
  - OPT_INTEGER_F
  - OPT_END
  - OPT_GROUP
  - OPT_BIT
  - OPT_BITOP
  - OPT_NEGBIT
  - OPT_COUNTUP
  - OPT_SET_INT
  - OPT_BOOL
  - OPT_HIDDEN_BOOL
  - OPT_CMDMODE_F
  - OPT_CMDMODE
  - OPT_INTEGER
  - OPT_UNSIGNED
  - OPT_STRING
  - OPT_STRING_LIST
  - OPT_STRVEC
  - OPT_UYN
  - OPT_EXPIRY_DATE
  - OPT_CALLBACK
  - OPT_NUMBER_CALLBACK
  - OPT_FILENAME
  - OPT_COLOR_FLAG
  - OPT_NOOP_NOARG
  - OPT_NOOP_ARG
  - OPT_ALIAS
  - OPT_SUBCOMMAND_F
  - OPT_SUBCOMMAND
  - die_for_incompatible_opt3
  - die_for_incompatible_opt2
  - BUG_ON_OPT_NEG
  - BUG_ON_OPT_ARG
  - BUG_ON_OPT_NEG_NOARG
  - OPT__VERBOSE
  - OPT__QUIET
  - OPT__VERBOSITY
  - OPT__DRY_RUN
  - OPT__FORCE
  - OPT__ABBREV
  - OPT__SUPER_PREFIX
  - OPT__COLOR
  - OPT_COLUMN
  - OPT_PASSTHRU
  - OPT_PASSTHRU_ARGV
  - _OPT_CONTAINS_OR_WITH
  - OPT_CONTAINS
  - OPT_NO_CONTAINS
  - OPT_WITH
  - OPT_WITHOUT
  - OPT_CLEANUP
  - OPT_PATHSPEC_FROM_FILE
  - OPT_PATHSPEC_FILE_NUL
  - OPT_AUTOSTASH
  - OPT_DIFF_UNIFIED
  - OPT_DIFF_INTERHUNK_CONTEXT
  - OPT_IPVERSION
  source_file: /src/git/parse-options.h
  types:
    enum:
    - enumerators:
      - name: OPTION_END
      - name: OPTION_NUMBER
      - name: OPTION_ALIAS
      - name: OPTION_GROUP
      - name: OPTION_SUBCOMMAND
      - name: OPTION_BIT
      - name: OPTION_NEGBIT
      - name: OPTION_BITOP
      - name: OPTION_COUNTUP
      - name: OPTION_SET_INT
      - name: OPTION_UNSIGNED
      - name: OPTION_CALLBACK
      - name: OPTION_LOWLEVEL_CALLBACK
      - name: OPTION_STRING
      - name: OPTION_INTEGER
      - name: OPTION_FILENAME
      item_type: enum
      name: parse_opt_type
      pos:
        line_end: 31
        line_start: 11
        source_file: /src/git/parse-options.h
    - enumerators:
      - name: PARSE_OPT_KEEP_DASHDASH
        value: 1 << 0
      - name: PARSE_OPT_KEEP_ARGV0
        value: 1 << 2
      - name: PARSE_OPT_STOP_AT_NON_OPTION
        value: 1 << 1
      - name: PARSE_OPT_NO_INTERNAL_HELP
        value: 1 << 4
      - name: PARSE_OPT_KEEP_UNKNOWN_OPT
        value: 1 << 3
      - name: PARSE_OPT_ONE_SHOT
        value: 1 << 5
      - name: PARSE_OPT_SHELL_EVAL
        value: 1 << 6
      - name: PARSE_OPT_SUBCOMMAND_OPTIONAL
        value: 1 << 7
      item_type: enum
      name: parse_opt_flags
      pos:
        line_end: 42
        line_start: 33
        source_file: /src/git/parse-options.h
    - enumerators:
      - name: PARSE_OPT_OPTARG
        value: 1 << 0
      - name: PARSE_OPT_NOARG
        value: 1 << 1
      - name: PARSE_OPT_HIDDEN
        value: 1 << 3
      - name: PARSE_OPT_NONEG
        value: 1 << 2
      - name: PARSE_OPT_LASTARG_DEFAULT
        value: 1 << 4
      - name: PARSE_OPT_NODASH
        value: 1 << 5
      - name: PARSE_OPT_LITERAL_ARGHELP
        value: 1 << 6
      - name: PARSE_OPT_FROM_ALIAS
        value: 1 << 7
      - name: PARSE_OPT_NOCOMPLETE
        value: 1 << 9
      - name: PARSE_OPT_COMP_ARG
        value: 1 << 10
      - name: PARSE_OPT_CMDMODE
        value: 1 << 11
      item_type: enum
      name: parse_opt_option_flags
      pos:
        line_end: 56
        line_start: 44
        source_file: /src/git/parse-options.h
    - enumerators:
      - name: PARSE_OPT_COMPLETE
        value: '-3'
      - name: PARSE_OPT_NON_OPTION
      - name: PARSE_OPT_DONE
        value: '0'
      - name: PARSE_OPT_ERROR
        value: '-1'
      - name: PARSE_OPT_HELP
        value: '-2'
      - name: PARSE_OPT_SUBCOMMAND
      - name: PARSE_OPT_UNKNOWN
      item_type: enum
      name: parse_opt_result
      pos:
        line_end: 66
        line_start: 58
        source_file: /src/git/parse-options.h
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: enum parse_opt_type
      - name: short_name
        type: int
      - name: '*long_name'
        type: char
      - name: '*value'
        type: void
      - name: precision
        type: size_t
      - name: '*argh'
        type: char
      - name: '*help'
        type: char
      - name: flags
        type: enum parse_opt_option_flags
      - name: '*callback'
        type: parse_opt_cb
      - name: defval
        type: intptr_t
      - name: '*ll_callback'
        type: parse_opt_ll_cb
      - name: extra
        type: intptr_t
      - name: '*subcommand_fn'
        type: parse_opt_subcommand_fn
      item_type: struct
      name: option
      pos:
        line_end: 168
        line_start: 153
        source_file: /src/git/parse-options.h
    - fields:
      - name: '**argv'
        type: char
      - name: '**out'
        type: char
      - name: argc
        type: int
      - name: '*opt'
        type: char
      - name: flags
        type: enum parse_opt_flags
      - name: has_subcommands
        type: unsigned
      - name: '*prefix'
        type: char
      - name: '**alias_groups'
        type: char
      - name: '*cmdmode_list'
        type: struct parse_opt_cmdmode_list
      item_type: struct
      name: parse_opt_ctx_t
      pos:
        line_end: 506
        line_start: 496
        source_file: /src/git/parse-options.h
    typedefs:
    - item_type: typedef
      name: parse_opt_cb(const struct option *, const char *arg, int unset)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/git/parse-options.h
      type: int
    - item_type: typedef
      name: "parse_opt_ll_cb(struct parse_opt_ctx_t *ctx,\n\t\t\t\t\t      const struct
        option *opt,\n\t\t\t\t\t      const char *arg, int unset)"
      pos:
        line_end: 74
        line_start: 72
        source_file: /src/git/parse-options.h
      type: parse_opt_result
    - item_type: typedef
      name: "parse_opt_subcommand_fn(int argc, const char **argv,\n\t\t\t\t    const
        char *prefix, struct repository *repo)"
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/git/parse-options.h
      type: int
    union: []
- function_names: []
  source_file: /src/git/blob.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: object
        type: struct object
      item_type: struct
      name: blob
      pos:
        line_end: 9
        line_start: 7
        source_file: /src/git/blob.h
    typedefs: []
    union: []
- function_names:
  - odb_pack_name
  - sz_fmt
  - packfile_list_clear
  - packfile_list_remove_internal
  - packfile_list_remove
  - packfile_list_prepend
  - packfile_list_append
  - packfile_list_find_oid
  - pack_report
  - check_packed_git_idx
  - load_idx
  - open_pack_index
  - get_pack_fanout
  - alloc_packed_git
  - pack_path_from_idx
  - parse_pack_index
  - scan_windows
  - unuse_one_window
  - close_pack_windows
  - close_pack_fd
  - close_pack_index
  - close_pack_revindex
  - close_pack_mtimes
  - close_pack
  - unlink_pack_path
  - find_lru_pack
  - close_one_pack
  - get_max_fd_limit
  - pack_basename
  - open_packed_git_1
  - open_packed_git
  - in_window
  - use_pack
  - unuse_pack
  - add_packed_git
  - packfile_store_add_pack
  - packfile_store_load_pack
  - report_helper
  - report_pack_garbage
  - for_each_file_in_pack_subdir
  - for_each_file_in_pack_dir
  - prepare_pack
  - prepare_packed_git_one
  - sort_pack
  - packfile_store_prepare
  - packfile_store_reprepare
  - packfile_store_get_packs
  - packfile_store_count_objects
  - unpack_object_header_buffer
  - get_size_from_delta_sz
  - get_size_from_delta
  - unpack_object_header
  - mark_bad_packed_object
  - has_packed_and_bad
  - get_delta_base
  - get_delta_base_oid
  - retry_bad_packed_offset
  - packed_to_object_type
  - pack_entry_hash
  - get_delta_base_cache_entry
  - delta_base_cache_key_eq
  - delta_base_cache_hash_cmp
  - in_delta_base_cache
  - detach_delta_base_cache_entry
  - cache_or_unpack_entry
  - release_delta_base_cache
  - clear_delta_base_cache
  - add_delta_base_cache
  - packed_object_info_with_index_pos
  - packed_object_info
  - unpack_compressed_entry
  - write_pack_access_log
  - unpack_entry
  - bsearch_pack
  - nth_packed_object_id
  - check_pack_index_ptr
  - nth_packed_object_offset
  - find_pack_entry_one
  - is_pack_valid
  - fill_pack_entry
  - find_pack_entry
  - packfile_store_freshen_object
  - packfile_store_read_object_info
  - maybe_invalidate_kept_pack_cache
  - packfile_store_get_kept_pack_cache
  - has_object_pack
  - has_object_kept_pack
  - for_each_object_in_pack
  - packfile_store_for_each_object_wrapper
  - match_hash
  - for_each_prefixed_object_in_midx
  - for_each_prefixed_object_in_pack
  - packfile_store_for_each_prefixed_object
  - packfile_store_for_each_object
  - extend_abbrev_len
  - find_abbrev_len_for_midx
  - find_abbrev_len_for_pack
  - packfile_store_find_abbrev_len
  - add_promisor_object
  - is_promisor_object
  - parse_pack_header_option
  - packfile_store_new
  - packfile_store_free
  - packfile_store_close
  - read_istream_pack_non_delta
  - close_istream_pack_non_delta
  - packfile_read_object_stream
  - packfile_store_read_object_stream
  source_file: /src/git/packfile.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SZ_FMT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/packfile.c
      type_or_value: PRIuMAX
    - item_type: preproc_def
      name: POI_STACK_PREALLOC
      pos:
        line_end: 1372
        line_start: 1371
        source_file: /src/git/packfile.c
      type_or_value: '64'
    - item_type: preproc_def
      name: UNPACK_ENTRY_STACK_PREALLOC
      pos:
        line_end: 1789
        line_start: 1788
        source_file: /src/git/packfile.c
      type_or_value: '64'
    structs:
    - fields:
      - name: '*source'
        type: struct odb_source
      - name: '*garbage'
        type: struct string_list
      item_type: struct
      name: prepare_pack_data
      pos:
        line_end: 988
        line_start: 985
        source_file: /src/git/packfile.c
    - fields:
      - name: '*p'
        type: struct packed_git
      - name: base_offset
        type: off_t
      item_type: struct
      name: delta_base_cache_key
      pos:
        line_end: 1449
        line_start: 1446
        source_file: /src/git/packfile.c
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: key
        type: struct delta_base_cache_key
      - name: lru
        type: struct list_head
      - name: '*data'
        type: void
      - name: size
        type: unsigned long
      - name: type
        type: enum object_type
      item_type: struct
      name: delta_base_cache_entry
      pos:
        line_end: 1458
        line_start: 1451
        source_file: /src/git/packfile.c
    - fields:
      - name: obj_offset
        type: off_t
      - name: curpos
        type: off_t
      - name: size
        type: unsigned long
      item_type: struct
      name: unpack_entry_stack_ent
      pos:
        line_end: 1793
        line_start: 1789
        source_file: /src/git/packfile.c
    - fields:
      - name: '*store'
        type: struct packfile_store
      - name: '*request'
        type: struct object_info
      - name: cb
        type: odb_for_each_object_cb
      - name: '*cb_data'
        type: void
      item_type: struct
      name: packfile_store_for_each_object_wrapper_data
      pos:
        line_end: 2372
        line_start: 2367
        source_file: /src/git/packfile.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*set'
        type: struct oidset
      item_type: struct
      name: add_promisor_object_data
      pos:
        line_end: 2737
        line_start: 2734
        source_file: /src/git/packfile.c
    - fields:
      - name: base
        type: struct odb_read_stream
      - name: '*pack'
        type: struct packed_git
      - name: z
        type: git_zstream
      - name: z_state
        type: "enum {\n\t\tODB_PACKED_READ_STREAM_UNINITIALIZED,\n\t\tODB_PACKED_READ_STREAM_INUSE,\n\t\tODB_PACKED_READ_STREAM_DONE,\n\t\tODB_PACKED_READ_STREAM_ERROR,\n\t}"
      - name: pos
        type: off_t
      item_type: struct
      name: odb_packed_read_stream
      pos:
        line_end: 2876
        line_start: 2865
        source_file: /src/git/packfile.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/object-file-convert.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - update_refs
  - reset_head
  source_file: /src/git/reset.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - REFLOG_EXPIRE_OPTIONS_INIT
  source_file: /src/git/reflog.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REFLOG_EXPIRE_TOTAL
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/reflog.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: REFLOG_EXPIRE_UNREACH
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/reflog.h
      type_or_value: (1 << 1)
    structs:
    - fields:
      - name: '*next'
        type: struct reflog_expire_entry_option
      - name: expire_total
        type: timestamp_t
      - name: expire_unreachable
        type: timestamp_t
      - name: pattern[FLEX_ARRAY]
        type: char
      item_type: struct
      name: reflog_expire_entry_option
      pos:
        line_end: 12
        line_start: 7
        source_file: /src/git/reflog.h
    - fields:
      - name: '*entries'
        type: struct reflog_expire_entry_option
      - name: stalefix
        type: int
      - name: explicit_expiry
        type: int
      - name: default_expire_total
        type: timestamp_t
      - name: expire_total
        type: timestamp_t
      - name: default_expire_unreachable
        type: timestamp_t
      - name: expire_unreachable
        type: timestamp_t
      - name: recno
        type: int
      item_type: struct
      name: reflog_expire_options
      pos:
        line_end: 23
        line_start: 14
        source_file: /src/git/reflog.h
    - fields:
      - name: unreachable_expire_kind
        type: "enum {\n\t\tUE_NORMAL,\n\t\tUE_ALWAYS,\n\t\tUE_HEAD\n\t}"
      - name: '*mark_list'
        type: struct commit_list
      - name: mark_limit
        type: unsigned long
      - name: opts
        type: struct reflog_expire_options
      - name: '*tip_commit'
        type: struct commit
      - name: '*tips'
        type: struct commit_list
      - name: dry_run
        type: unsigned int
      item_type: struct
      name: expire_reflog_policy_cb
      pos:
        line_end: 57
        line_start: 45
        source_file: /src/git/reflog.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/unix-socket.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNIX_STREAM_LISTEN_OPTS_INIT
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/unix-socket.h
      type_or_value: '{ 0 }'
    structs:
    - fields:
      - name: listen_backlog_size
        type: int
      - name: disallow_chdir
        type: unsigned int
      item_type: struct
      name: unix_stream_listen_opts
      pos:
        line_end: 6
        line_start: 3
        source_file: /src/git/unix-socket.h
    typedefs: []
    union: []
- function_names:
  - FAST_ARRAY_ALLOC
  - FAST_ARRAY_FREE
  - is_dir_prefix
  - check_recursion_depth
  - should_recurse
  - tree_entry_pathcmp
  - emit_diff_first_parent_only
  - emit_path
  - skip_uninteresting
  - update_tp_entries
  - ll_diff_tree_paths
  - diff_tree_paths
  - diff_might_be_rename
  - try_to_follow_renames
  - ll_diff_tree_oid
  - diff_tree_oid
  - diff_root_tree_oid
  source_file: /src/git/tree-diff.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S_DIFFTREE_IFXMIN_NEQ
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/tree-diff.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: S_IFXMIN_NEQ
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/tree-diff.c
      type_or_value: S_DIFFTREE_IFXMIN_NEQ
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_tempfile
  - mks_tempfile_s
  - mks_tempfile_m
  - mks_tempfile
  - mks_tempfile_ts
  - mks_tempfile_tm
  - mks_tempfile_t
  - xmks_tempfile
  - is_tempfile_active
  source_file: /src/git/tempfile.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: struct volatile_list_head
      - name: fd
        type: int
      - name: '*volatile fp'
        type: FILE
      - name: owner
        type: pid_t
      - name: filename
        type: struct strbuf
      - name: '*directory'
        type: char
      item_type: struct
      name: tempfile
      pos:
        line_end: 84
        line_start: 77
        source_file: /src/git/tempfile.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/fsmonitor-ipc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - suppress
  - common_setup
  - set_none
  - set_separate
  - set_first_parent
  - set_combined
  - set_dense_combined
  - set_remerge_diff
  - func_by_opt
  - set_diff_merges
  - diff_merges_config
  - diff_merges_suppress_m_parsing
  - diff_merges_parse_opts
  - diff_merges_suppress
  - diff_merges_default_to_first_parent
  - diff_merges_default_to_dense_combined
  - diff_merges_set_dense_combined_if_unset
  - diff_merges_setup_revs
  source_file: /src/git/diff-merges.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*diff_merges_setup_func_t)(struct rev_info *)
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/git/diff-merges.c
      type: void
    union: []
- function_names:
  - declare_commit_slab
  - COMMIT_SLAB_INIT
  - declare_commit_slab_prototypes
  - define_shared_commit_slab
  source_file: /src/git/commit-slab-decl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMMIT_SLAB_SIZE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/commit-slab-decl.h
      type_or_value: (512*1024-32)
    structs: []
    typedefs: []
    union: []
- function_names:
  - start_object_request
  - finish_object_request
  - process_object_response
  - release_object_request
  - fill_active_slot
  - list_for_each_safe
  - prefetch
  - is_alternate_allowed
  - process_alternates_response
  - fetch_alternates
  - fetch_indices
  - http_fetch_pack
  - abort_object_request
  - fetch_object
  - list_for_each
  - fetch
  - fetch_ref
  - cleanup
  - get_http_walker
  source_file: /src/git/http-walker.c
  types:
    enum:
    - enumerators:
      - name: WAITING
      - name: COMPLETE
      - name: ABORTED
      - name: ACTIVE
      item_type: enum
      name: object_request_state
      pos:
        line_end: 26
        line_start: 21
        source_file: /src/git/http-walker.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*base'
        type: char
      - name: got_indices
        type: int
      - name: packs
        type: struct packfile_list
      - name: '*next'
        type: struct alt_base
      item_type: struct
      name: alt_base
      pos:
        line_end: 19
        line_start: 14
        source_file: /src/git/http-walker.c
    - fields:
      - name: '*walker'
        type: struct walker
      - name: oid
        type: struct object_id
      - name: '*repo'
        type: struct alt_base
      - name: state
        type: enum object_request_state
      - name: '*req'
        type: struct http_object_request
      - name: node
        type: struct list_head
      item_type: struct
      name: object_request
      pos:
        line_end: 35
        line_start: 28
        source_file: /src/git/http-walker.c
    - fields:
      - name: '*walker'
        type: struct walker
      - name: '*base'
        type: char
      - name: '*url'
        type: struct strbuf
      - name: '*buffer'
        type: struct strbuf
      - name: '*slot'
        type: struct active_request_slot
      - name: http_specific
        type: int
      item_type: struct
      name: alternates_request
      pos:
        line_end: 44
        line_start: 37
        source_file: /src/git/http-walker.c
    - fields:
      - name: '*url'
        type: char
      - name: got_alternates
        type: int
      - name: '*alt'
        type: struct alt_base
      item_type: struct
      name: walker_data
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/git/http-walker.c
    typedefs: []
    union: []
- function_names:
  - XY2LINEAR
  - item_length
  - layout
  - compute_column_width
  - shrink_columns
  - display_plain
  - display_cell
  - display_table
  - print_columns
  - finalize_colopts
  - parse_option
  - parse_config
  - column_config
  - git_column_config
  - parseopt_column_callback
  - run_column_filter
  - stop_column_filter
  source_file: /src/git/column.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LAYOUT_SET
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/git/column.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ENABLE_SET
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/git/column.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*list'
        type: struct string_list
      - name: colopts
        type: unsigned int
      - name: opts
        type: struct column_options
      - name: rows
        type: int
      - name: '*len'
        type: int
      - name: '*width'
        type: int
      item_type: struct
      name: column_data
      pos:
        line_end: 23
        line_start: 15
        source_file: /src/git/column.c
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: unsigned int
      - name: mask
        type: unsigned int
      item_type: struct
      name: colopt
      pos:
        line_end: 230
        line_start: 226
        source_file: /src/git/column.c
    typedefs: []
    union: []
- function_names:
  - parse_opt_abbrev_cb
  - parse_opt_expiry_date_cb
  - parse_opt_color_flag_cb
  - parse_opt_verbosity_cb
  - parse_opt_commits
  - parse_opt_commit
  - parse_opt_object_name
  - parse_opt_object_id
  - parse_opt_tertiary
  - parse_options_count
  - parse_options_dup
  - parse_options_concat
  - parse_opt_string_list
  - parse_opt_strvec
  - parse_opt_noop_cb
  - recreate_opt
  - parse_opt_passthru
  - parse_opt_passthru_argv
  - parse_opt_tracking_mode
  source_file: /src/git/parse-options-cb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gitexp
  - pseudo_merge_group_size
  - pseudo_merge_group_init
  - pseudo_merge_group_release
  - pseudo_merge_config
  - load_pseudo_merges_from_config
  - for_each_string_list_item
  - find_pseudo_merge_group_for_ref
  - push_pseudo_merge
  - pseudo_merge_idx
  - select_pseudo_merges_1
  - commit_date_cmp
  - sort_pseudo_merge_matches
  - select_pseudo_merges
  - free_pseudo_merge_map
  - pseudo_merge_ext_at
  - pseudo_merge_bitmap
  - use_pseudo_merge
  - pseudo_merge_at
  - read_pseudo_merge_commit_at
  - nth_pseudo_merge_ext
  - apply_pseudo_merge
  - pseudo_merge_commit_cmp
  - find_pseudo_merge
  - apply_pseudo_merges_for_commit
  - cascade_pseudo_merges
  - pseudo_merge_for_parents
  source_file: /src/git/pseudo-merge.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_PSEUDO_MERGE_DECAY
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/pseudo-merge.c
      type_or_value: '1.0'
    - item_type: preproc_def
      name: DEFAULT_PSEUDO_MERGE_MAX_MERGES
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/pseudo-merge.c
      type_or_value: '64'
    - item_type: preproc_def
      name: DEFAULT_PSEUDO_MERGE_SAMPLE_RATE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/pseudo-merge.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DEFAULT_PSEUDO_MERGE_THRESHOLD
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/pseudo-merge.c
      type_or_value: approxidate("1.week.ago")
    - item_type: preproc_def
      name: DEFAULT_PSEUDO_MERGE_STABLE_THRESHOLD
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/pseudo-merge.c
      type_or_value: approxidate("1.month.ago")
    - item_type: preproc_def
      name: DEFAULT_PSEUDO_MERGE_STABLE_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/pseudo-merge.c
      type_or_value: '512'
    - item_type: preproc_def
      name: MIN_PSEUDO_MERGE_SIZE
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/git/pseudo-merge.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PSEUDO_MERGE_COMMIT_RAWSZ
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/git/pseudo-merge.c
      type_or_value: (sizeof(uint32_t)+sizeof(uint64_t))
    structs:
    - fields:
      - name: nr
        type: uint32_t
      - name: '*ptr'
        type: unsigned char
      item_type: struct
      name: pseudo_merge_commit_ext
      pos:
        line_end: 503
        line_start: 500
        source_file: /src/git/pseudo-merge.c
    - fields:
      - name: commit_pos
        type: uint32_t
      - name: pseudo_merge_ofs
        type: uint64_t
      item_type: struct
      name: pseudo_merge_commit
      pos:
        line_end: 580
        line_start: 577
        source_file: /src/git/pseudo-merge.c
    typedefs: []
    union: []
- function_names:
  - reset_pack_idx_option
  - sha1_compare
  - cmp_uint32
  - need_large_offset
  - write_idx_file
  - pack_order_cmp
  - write_rev_header
  - write_rev_index_positions
  - write_rev_trailer
  - write_rev_file
  - write_rev_file_order
  - write_mtimes_header
  - write_mtimes_objects
  - write_mtimes_trailer
  - write_mtimes_file
  - write_pack_header
  - fixup_pack_header_footer
  - index_pack_lockfile
  - encode_in_pack_object_header
  - create_tmp_packfile
  - rename_tmp_packfile
  - rename_tmp_packfile_idx
  - stage_tmp_packfiles
  - write_promisor_file
  source_file: /src/git/pack-write.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_merge_attributes
  - reset_merge_attributes
  - ll_binary_merge
  - ll_xdl_merge
  - ll_union_merge
  - create_temp
  - ll_ext_merge
  - read_merge_config
  - initialize_ll_merge
  - find_ll_merge_driver
  - normalize_file
  - ll_merge
  - ll_merge_marker_size
  source_file: /src/git/merge-ll.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LL_BINARY_MERGE
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/git/merge-ll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: LL_TEXT_MERGE
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/git/merge-ll.c
      type_or_value: '1'
    - item_type: preproc_def
      name: LL_UNION_MERGE
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/git/merge-ll.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*description'
        type: char
      - name: fn
        type: ll_merge_fn
      - name: '*recursive'
        type: char
      - name: '*next'
        type: struct ll_merge_driver
      - name: '*cmdline'
        type: char
      item_type: struct
      name: ll_merge_driver
      pos:
        line_end: 38
        line_start: 31
        source_file: /src/git/merge-ll.c
    typedefs:
    - item_type: typedef
      name: "(*ll_merge_fn)(const struct ll_merge_driver *,\n\t\t\t   mmbuffer_t *result,\n\t\t\t
        \  const char *path,\n\t\t\t   mmfile_t *orig, const char *orig_name,\n\t\t\t
        \  mmfile_t *src1, const char *name1,\n\t\t\t   mmfile_t *src2, const char
        *name2,\n\t\t\t   const struct ll_merge_options *opts,\n\t\t\t   int marker_size)"
      pos:
        line_end: 29
        line_start: 22
        source_file: /src/git/merge-ll.c
      type: ll_merge_result
    union: []
- function_names:
  - verify_buffer_or_die
  - flush
  - hashflush
  - free_hashfile
  - finalize_hashfile
  - discard_hashfile
  - hashwrite
  - hashfd_check
  - hashfd_ext
  - hashfd
  - hashfile_checkpoint_init
  - hashfile_checkpoint
  - hashfile_truncate
  - crc32_begin
  - crc32_end
  - hashfile_checksum_valid
  source_file: /src/git/csum-file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_gitmodules_unmerged
  - is_writing_gitmodules_ok
  - is_staging_gitmodules_ok
  - for_each_remote_ref_submodule
  - update_path_in_gitmodules
  - remove_path_from_gitmodules
  - stage_updated_gitmodules
  - set_diffopt_flags_from_submodule_config
  - git_default_submodule_config
  - option_parse_recurse_submodules_worktree_updater
  - is_tree_submodule_active
  - for_each_string_list_item
  - is_submodule_active
  - is_submodule_populated_gently
  - die_in_unpopulated_submodule
  - die_path_inside_submodule
  - parse_submodule_update_type
  - parse_submodule_update_strategy
  - submodule_update_strategy_release
  - submodule_update_type_to_string
  - handle_ignore_submodules_arg
  - prepare_submodule_diff_summary
  - print_submodule_diff_summary
  - prepare_submodule_repo_env
  - prepare_submodule_repo_env_in_gitdir
  - open_submodule
  - show_submodule_header
  - show_submodule_diff_summary
  - show_submodule_inline_diff
  - should_update_submodules
  - submodule_from_ce
  - default_name_or_path
  - changed_submodule_data_clear
  - collect_changed_submodules_cb
  - collect_changed_submodules
  - free_submodules_data
  - has_remote
  - append_oid_to_argv
  - check_has_commit
  - submodule_has_commits
  - submodule_needs_pushing
  - find_unpushed_submodules
  - push_submodule
  - submodule_push_check
  - push_unpushed_submodules
  - append_oid_to_array
  - check_for_new_submodule_commits
  - repo_has_absorbed_submodules
  - calculate_changed_submodule_paths
  - for_each_string_list_item
  - submodule_touches_in_range
  - get_fetch_recurse_config
  - get_non_gitmodules_submodule
  - fetch_task_free
  - get_submodule_repo_for
  - fetch_task_create
  - get_fetch_task_from_index
  - get_fetch_task_from_changed
  - get_next_submodule
  - fetch_start_failure
  - commit_missing_in_sub
  - fetch_finish
  - fetch_submodules
  - is_submodule_modified
  - submodule_uses_gitfile
  - bad_to_remove_submodule
  - submodule_unset_core_worktree
  - submodule_has_dirty_index
  - submodule_reset_index
  - submodule_move_head
  - check_casefolding_conflict
  - find_conflict_by_gitdir_cb
  - submodule_conflicts_with_existing
  - validate_submodule_encoded_git_dir
  - validate_submodule_legacy_git_dir
  - validate_submodule_git_dir
  - validate_submodule_path
  - relocate_single_git_dir_into_superproject
  - absorb_git_dir_into_superproject_recurse
  - absorb_git_dir_into_superproject
  - get_superproject_working_tree
  - submodule_to_gitdir
  - submodule_name_to_gitdir
  source_file: /src/git/submodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPF_INIT
      pos:
        line_end: 1417
        line_start: 1411
        source_file: /src/git/submodule.c
      type_or_value: "{ \\\n\t.args = STRVEC_INIT, \\\n\t.changed_submodule_names
        = STRING_LIST_INIT_DUP, \\\n\t.seen_submodule_names = STRING_LIST_INIT_DUP,
        \\\n\t.submodules_with_errors = STRBUF_INIT, \\\n}"
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*changed'
        type: struct string_list
      - name: '*commit_oid'
        type: struct object_id
      item_type: struct
      name: collect_changed_submodules_cb_data
      pos:
        line_end: 765
        line_start: 761
        source_file: /src/git/submodule.c
    - fields:
      - name: '*super_oid'
        type: struct object_id
      - name: '*path'
        type: char
      - name: new_commits
        type: struct oid_array
      item_type: struct
      name: changed_submodule_data
      pos:
        line_end: 822
        line_start: 809
        source_file: /src/git/submodule.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: result
        type: int
      - name: '*path'
        type: char
      - name: '*super_oid'
        type: struct object_id
      item_type: struct
      name: has_commit_data
      pos:
        line_end: 955
        line_start: 950
        source_file: /src/git/submodule.c
    - fields:
      - name: index_count
        type: int
      - name: changed_count
        type: int
      - name: args
        type: struct strvec
      - name: '*r'
        type: struct repository
      - name: '*prefix'
        type: char
      - name: command_line_option
        type: int
      - name: default_option
        type: int
      - name: quiet
        type: int
      - name: result
        type: int
      - name: changed_submodule_names
        type: struct string_list
      - name: seen_submodule_names
        type: struct string_list
      - name: '**oid_fetch_tasks'
        type: struct fetch_task
      - name: oid_fetch_tasks_nr
        type: int
      - name: submodules_with_errors
        type: struct strbuf
      item_type: struct
      name: submodule_parallel_fetch
      pos:
        line_end: 1410
        line_start: 1375
        source_file: /src/git/submodule.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*sub'
        type: struct submodule
      - name: free_sub
        type: unsigned
      - name: '*default_argv'
        type: char
      - name: git_args
        type: struct strvec
      - name: '*commits'
        type: struct oid_array
      item_type: struct
      name: fetch_task
      pos:
        line_end: 1455
        line_start: 1447
        source_file: /src/git/submodule.c
    - fields:
      - name: '*gitdir'
        type: char
      - name: '*submodule_name'
        type: char
      - name: conflict_found
        type: bool
      item_type: struct
      name: submodule_from_gitdir_cb
      pos:
        line_end: 2307
        line_start: 2303
        source_file: /src/git/submodule.c
    typedefs: []
    union: []
- function_names:
  - free_worktree
  - free_worktrees
  - add_head_info
  - is_current_worktree
  - get_current_worktree
  - is_main_worktree_bare
  - get_main_worktree
  - get_linked_worktree
  - get_worktrees_internal
  - get_worktrees
  - get_worktrees_without_reading_head
  - get_worktree_git_dir
  - find_worktree_by_suffix
  - find_worktree
  - find_worktree_by_path
  - is_main_worktree
  - worktree_lock_reason
  - worktree_prune_reason
  - strbuf_addf_gently
  - validate_worktree
  - update_worktree_location
  - is_worktree_being_rebased
  - is_worktree_being_bisected
  - is_shared_symref
  - find_shared_symref
  - submodule_uses_worktrees
  - strbuf_worktree_ref
  - other_head_refs
  - repair_gitfile
  - repair_noop
  - repair_worktrees
  - repair_worktree_after_gitdir_move
  - repair_worktrees_after_gitdir_move
  - is_main_worktree_path
  - infer_backlink
  - repair_worktree_at_path
  - should_prune_worktree
  - move_config_setting
  - init_worktree_config
  - write_worktree_linking_files
  source_file: /src/git/worktree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - walker_say
  - report_missing
  - process_tree
  - process_commit
  - process_tag
  - process_object
  - process
  - loop
  - interpret_target
  - mark_complete
  - walker_targets_stdin
  - walker_targets_free
  - walker_fetch
  - walker_free
  source_file: /src/git/walker.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMPLETE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/git/walker.c
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: SEEN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/git/walker.c
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: TO_SCAN
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/git/walker.c
      type_or_value: (1U << 2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - STR
  - MSG_ID
  - prepare_msg_ids
  - parse_msg_id
  - list_config_fsck_msg_ids
  - fsck_msg_type
  - parse_msg_type
  - is_valid_msg_type
  - fsck_set_msg_type_from_ids
  - fsck_set_msg_type
  - fsck_set_msg_types
  - object_on_skiplist
  - fsck_vreport
  - report
  - fsck_report_ref
  - fsck_enable_object_names
  - fsck_get_object_name
  - fsck_put_object_name
  - fsck_describe_object
  - fsck_walk_tree
  - fsck_walk_commit
  - fsck_walk_tag
  - fsck_walk
  - name_stack_push
  - name_stack_pop
  - name_stack_clear
  - is_less_than_slash
  - verify_ordered
  - fsck_tree
  - verify_headers
  - parse_timestamp_from_buf
  - fsck_ident
  - fsck_commit
  - fsck_tag
  - fsck_tag_standalone
  - fsck_gitmodules_fn
  - fsck_blob
  - fsck_object
  - fsck_buffer
  - fsck_objects_error_function
  - fsck_refs_error_function
  - fsck_blobs
  - fsck_finish
  - fsck_has_queued_checks
  - fsck_options_init
  - fsck_options_clear
  - git_fsck_config
  - fsck_objects_error_cb_print_missing_gitmodules
  source_file: /src/git/fsck.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TREE_UNORDERED
      pos:
        line_end: 536
        line_start: 535
        source_file: /src/git/fsck.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: TREE_HAS_DUPS
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/git/fsck.c
      type_or_value: (-2)
    structs:
    - fields:
      - name: '*id_string'
        type: char
      - name: '*downcased'
        type: char
      - name: '*camelcased'
        type: char
      - name: msg_type
        type: enum fsck_msg_type
      item_type: struct
      name: "msg_id_info[FSCK_MSG_MAX + 1] = {\n\tFOREACH_FSCK_MSG_ID(MSG_ID)\n\t{
        NULL, NULL, NULL, -1 }\n}"
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/git/fsck.c
    - fields:
      - name: '**names'
        type: char
      - name: nr
        type: size_t
      item_type: struct
      name: name_stack
      pos:
        line_end: 508
        line_start: 505
        source_file: /src/git/fsck.c
    - fields:
      - name: '*oid'
        type: struct object_id
      - name: '*options'
        type: struct fsck_options
      - name: ret
        type: int
      item_type: struct
      name: fsck_gitmodules_data
      pos:
        line_end: 1136
        line_start: 1132
        source_file: /src/git/fsck.c
    typedefs: []
    union: []
- function_names:
  - write_filtered_pack
  source_file: /src/git/repack-filtered.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_split_index
  - read_link_extension
  - write_link_extension
  - mark_base_index_entries
  - move_cache_to_base_index
  - mark_entry_for_delete
  - replace_entry
  - merge_base_index
  - compare_ce_content
  - prepare_to_write_split_index
  - finish_writing_split_index
  - discard_split_index
  - save_or_free_index_entry
  - replace_index_entry_in_base
  - add_split_index
  - remove_split_index
  source_file: /src/git/split-index.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - appended
  source_file: /src/git/t/t4051/appended1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/t/t4051/includes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hello
  source_file: /src/git/t/t4051/hello.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/t/t4051/appended2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dummy
  source_file: /src/git/t/t4051/dummy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__getcwd
  source_file: /src/git/t/helper/test-getcwd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__csprng
  source_file: /src/git/t/helper/test-csprng.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__subprocess
  source_file: /src/git/t/helper/test-subprocess.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup_midx
  - read_midx_file
  - read_midx_checksum
  - read_midx_preferred_pack
  - read_midx_bitmapped_packs
  - cmd__read_midx
  source_file: /src/git/t/helper/test-read-midx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__fsmonitor_client
  - get_token_from_index
  - do_send_query
  - do_send_flush
  - hammer_thread_proc
  - do_hammer
  - cmd__fsmonitor_client
  source_file: /src/git/t/helper/test-fsmonitor-client.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pthread_id
        type: pthread_t
      - name: thread_nr
        type: int
      - name: nr_requests
        type: int
      - name: '*token'
        type: char
      - name: sum_successful
        type: int
      - name: sum_errors
        type: int
      item_type: struct
      name: hammer_thread_data
      pos:
        line_end: 97
        line_start: 87
        source_file: /src/git/t/helper/test-fsmonitor-client.c
    typedefs: []
    union: []
- function_names:
  - t_res
  - t_todo
  - t_skip
  - do_skip
  - t_skip_todo
  - t_todo_after_fail
  - t_fail_after_todo
  - t_messages
  - t_empty
  - cmd__example_tap
  source_file: /src/git/t/helper/test-example-tap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_uncompressed_zlib
  - write_pack_object
  - generate_fast_pack
  - generate_pack_with_large_object
  - cmd__synthesize__pack
  - cmd__synthesize
  source_file: /src/git/t/helper/test-synthesize.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOCK_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/t/helper/test-synthesize.c
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: FAST_PACK_4G1_BLOB_SIZE
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/git/t/helper/test-synthesize.c
      type_or_value: ((size_t)4 * 1024 * 1024 * 1024 + 1)
    - item_type: preproc_def
      name: FAST_PACK_4G1_N_FULL_BLOCKS
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/git/t/helper/test-synthesize.c
      type_or_value: '65537'
    structs:
    - fields:
      - name: format_id
        type: uint32_t
      - name: '*suffix'
        type: unsigned char
      - name: suffix_len
        type: size_t
      - name: '*commit_oid'
        type: char
      item_type: struct
      name: fast_pack
      pos:
        line_end: 147
        line_start: 142
        source_file: /src/git/t/helper/test-synthesize.c
    typedefs: []
    union: []
- function_names:
  - die_usage
  - cmd__submodule_config
  source_file: /src/git/t/helper/test-submodule-config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__write_cache
  source_file: /src/git/t/helper/test-write-cache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__string_list
  source_file: /src/git/t/helper/test-string-list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compute_hash
  - cmd__hash_speed
  source_file: /src/git/t/helper/test-hash-speed.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_SECONDS
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/t/helper/test-hash-speed.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__dump_fsmonitor
  source_file: /src/git/t/helper/test-dump-fsmonitor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__serve_v2
  source_file: /src/git/t/helper/test-serve-v2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X
  - cmd__sigchain
  source_file: /src/git/t/helper/test-sigchain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FLAG_DEF
  - parse_flags
  - notnull
  - arg_flags
  - get_store
  - cmd_create_symref
  - cmd_delete_refs
  - cmd_rename_ref
  - each_ref
  - cmd_for_each_ref
  - cmd_for_each_ref__exclude
  - cmd_resolve_ref
  - cmd_verify_ref
  - each_reflog
  - cmd_for_each_reflog
  - each_reflog_ent
  - cmd_for_each_reflog_ent
  - cmd_for_each_reflog_ent_reverse
  - cmd_reflog_exists
  - cmd_create_reflog
  - cmd_delete_reflog
  - cmd_delete_ref
  - cmd_update_ref
  - cmd__ref_store
  source_file: /src/git/t/helper/test-ref-store.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: mask
        type: uint64_t
      item_type: struct
      name: flag_definition
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/git/t/helper/test-ref-store.c
    - fields:
      - name: '*name'
        type: char
      - name: (*func)(struct ref_store *refs, const char **argv)
        type: int
      item_type: struct
      name: command
      pos:
        line_end: 312
        line_start: 309
        source_file: /src/git/t/helper/test-ref-store.c
    typedefs: []
    union: []
- function_names:
  - cmd__read_cache
  source_file: /src/git/t/helper/test-read-cache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_commit
  - run_revision_walk
  - cmd__revision_walking
  source_file: /src/git/t/helper/test-revision-walking.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - driver_cb
  - cmd__userdiff_config
  - cmd__userdiff
  source_file: /src/git/t/helper/test-userdiff.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - object_info
  - cmd__partial_clone
  source_file: /src/git/t/helper/test-partial-clone.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_main
  source_file: /src/git/t/helper/test-fake-ssh.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_zlib
  - cmd__zlib
  source_file: /src/git/t/helper/test-zlib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/t/helper/test-tool-utils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*fn)(int argc, const char **argv)
        type: int
      item_type: struct
      name: test_cmd
      pos:
        line_end: 6
        line_start: 3
        source_file: /src/git/t/helper/test-tool-utils.h
    typedefs: []
    union: []
- function_names:
  - cmd__truncate
  source_file: /src/git/t/helper/test-truncate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - normalize_ceiling_entry
  - normalize_argv_string
  - posix_basename
  - posix_dirname
  - test_function
  - check_dotfile
  - cmp_by_st_size
  - my_random
  - my_sqrt
  - protect_ntfs_hfs_benchmark
  - cmd__path_utils
  source_file: /src/git/t/helper/test-path-utils.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*from'
        type: char
      - name: '*to'
        type: char
      - name: '*alternative'
        type: char
      item_type: struct
      name: test_data
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/git/t/helper/test-path-utils.c
    typedefs: []
    union: []
- function_names:
  - cmd__match_trees
  source_file: /src/git/t/helper/test-match-trees.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__find_pack
  - repo_for_each_pack
  source_file: /src/git/t/helper/test-find-pack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__scrap_cache_tree
  source_file: /src/git/t/helper/test-scrap-cache-tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compare_untracked
  - compare_dir
  - dump
  - cmd__dump_untracked_cache
  source_file: /src/git/t/helper/test-dump-untracked-cache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_entry_cmp
  - alloc_test_entry
  - hash
  - perf_hashmap
  - cmd__hashmap
  source_file: /src/git/t/helper/test-hashmap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_METHOD_FNV
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/t/helper/test-hashmap.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HASH_METHOD_I
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/t/helper/test-hashmap.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HASH_METHOD_IDIV10
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/t/helper/test-hashmap.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HASH_METHOD_0
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/t/helper/test-hashmap.c
      type_or_value: '3'
    - item_type: preproc_def
      name: HASH_METHOD_X2
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/git/t/helper/test-hashmap.c
      type_or_value: '4'
    - item_type: preproc_def
      name: TEST_SPARSE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/git/t/helper/test-hashmap.c
      type_or_value: '8'
    - item_type: preproc_def
      name: TEST_ADD
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/t/helper/test-hashmap.c
      type_or_value: '16'
    - item_type: preproc_def
      name: TEST_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/t/helper/test-hashmap.c
      type_or_value: '100000'
    - item_type: preproc_def
      name: DELIM
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/git/t/helper/test-hashmap.c
      type_or_value: '" \t\r\n"'
    structs:
    - fields:
      - name: padding
        type: int
      - name: ent
        type: struct hashmap_entry
      - name: key[FLEX_ARRAY]
        type: char
      item_type: struct
      name: test_entry
      pos:
        line_end: 12
        line_start: 6
        source_file: /src/git/t/helper/test-hashmap.c
    typedefs: []
    union: []
- function_names:
  - cmd__advise_if_enabled
  source_file: /src/git/t/helper/test-advise.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - error_name
  - cmd__dir_iterator
  source_file: /src/git/t/helper/test-dir-iterator.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__progress
  source_file: /src/git/t/helper/test-progress.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - proc_receive_verison
  - proc_receive_read_commands
  - proc_receive_read_push_options
  - cmd__proc_receive
  source_file: /src/git/t/helper/test-proc-receive.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct command
      - name: '*error_string'
        type: char
      - name: skip_update
        type: unsigned int
      - name: index
        type: int
      - name: old_oid
        type: struct object_id
      - name: new_oid
        type: struct object_id
      - name: ref_name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: command
      pos:
        line_end: 34
        line_start: 25
        source_file: /src/git/t/helper/test-proc-receive.c
    typedefs: []
    union: []
- function_names:
  - dump_run
  - time_runs
  - analyze_run
  - cmd__lazy_init_name_hash
  source_file: /src/git/t/helper/test-lazy-init-name-hash.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*parent'
        type: struct dir_entry
      - name: nr
        type: int
      - name: namelen
        type: unsigned int
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: dir_entry
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/git/t/helper/test-lazy-init-name-hash.c
    typedefs: []
    union: []
- function_names:
  - option_parse_type
  - cmd__env_helper
  source_file: /src/git/t/helper/test-env-helper.c
  types:
    enum:
    - enumerators:
      - name: ENV_HELPER_TYPE_BOOL
        value: '1'
      - name: ENV_HELPER_TYPE_ULONG
      item_type: enum
      name: cmdmode
      pos:
        line_end: 12
        line_start: 9
        source_file: /src/git/t/helper/test-env-helper.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__windows_named_pipe
  source_file: /src/git/t/helper/test-windows-named-pipe.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_BUFSIZE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/t/helper/test-windows-named-pipe.c
      type_or_value: (4096)
    structs: []
    typedefs: []
    union: []
- function_names:
  - die_usage
  - cmd_main
  source_file: /src/git/t/helper/test-tool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_help
  - dump_blocks
  - dump_table
  - dump_stack
  - dump_reftable
  - cmd__dump_reftable
  source_file: /src/git/t/helper/test-reftable.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - timespec_arg
  - cmd__chmtime
  source_file: /src/git/t/helper/test-chmtime.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - iterate_cb
  - parse_int_cb
  - early_config_cb
  - cmd__config
  source_file: /src/git/t/helper/test-config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__genzeros
  source_file: /src/git/t/helper/test-genzeros.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - show_bit
  - cmd__dump_split_index
  source_file: /src/git/t/helper/test-dump-split-index.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_compress
  - write_ref_delta
  - cmd__pack_deltas
  source_file: /src/git/t/helper/test-pack-deltas.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parallel_next
  - no_job
  - task_finished
  - task_finished_quiet
  - test_stdin_pipe_feed
  - next_test
  - test_finished
  - test_failed
  - testsuite
  - my_random
  - quote_stress_test
  - quote_echo
  - inherit_handle
  - inherit_handle_child
  - cmd__run_command
  source_file: /src/git/t/helper/test-run-command.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TESTSUITE_INIT
      pos:
        line_end: 115
        line_start: 111
        source_file: /src/git/t/helper/test-run-command.c
      type_or_value: "{ \\\n\t.tests = STRING_LIST_INIT_DUP, \\\n\t.failed = STRING_LIST_INIT_DUP,
        \\\n}"
    structs:
    - fields:
      - name: tests
        type: struct string_list
      - name: next
        type: int
      - name: quiet
        type: int
      - name: '*shell_path'
        type: char
      item_type: struct
      name: testsuite
      pos:
        line_end: 110
        line_start: 105
        source_file: /src/git/t/helper/test-run-command.c
    typedefs: []
    union: []
- function_names:
  - cmd__sha256
  source_file: /src/git/t/helper/test-sha256.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__name_hash
  source_file: /src/git/t/helper/test-name-hash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__simple_ipc
  - app__unhandled_command
  - app__big_command
  - app__chunk_command
  - app__slow_command
  - app__sendbytes_command
  - test_app_cb
  - daemon__run_server
  - bg_wait_cb
  - daemon__start_server
  - client__probe_server
  - client__send_ipc
  - client__stop_server
  - do_sendbytes
  - client__sendbytes
  - multiple_thread_proc
  - client__multiple
  - cmd__simple_ipc
  source_file: /src/git/t/helper/test-simple-ipc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIG_ROWS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/t/helper/test-simple-ipc.c
      type_or_value: (10000)
    - item_type: preproc_def
      name: CHUNK_ROWS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/git/t/helper/test-simple-ipc.c
      type_or_value: (10000)
    - item_type: preproc_def
      name: SLOW_ROWS
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/git/t/helper/test-simple-ipc.c
      type_or_value: (1000)
    - item_type: preproc_def
      name: SLOW_DELAY_MS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/git/t/helper/test-simple-ipc.c
      type_or_value: (10)
    structs:
    - fields:
      - name: '*subcommand'
        type: char
      - name: '*path'
        type: char
      - name: '*token'
        type: char
      - name: nr_threads
        type: int
      - name: max_wait_sec
        type: int
      - name: bytecount
        type: int
      - name: batchsize
        type: int
      - name: bytevalue
        type: char
      item_type: struct
      name: cl_args
      pos:
        line_end: 236
        line_start: 224
        source_file: /src/git/t/helper/test-simple-ipc.c
    - fields:
      - name: pthread_id
        type: pthread_t
      - name: '*next'
        type: struct multiple_thread_data
      - name: '*path'
        type: char
      - name: bytecount
        type: int
      - name: batchsize
        type: int
      - name: sum_errors
        type: int
      - name: sum_good
        type: int
      - name: letter
        type: char
      item_type: struct
      name: multiple_thread_data
      pos:
        line_end: 497
        line_start: 488
        source_file: /src/git/t/helper/test-simple-ipc.c
    typedefs: []
    union: []
- function_names:
  - cmd__genrandom
  source_file: /src/git/t/helper/test-genrandom.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pack_line
  - pack
  - pack_raw_stdin
  - unpack
  - unpack_sideband
  - send_split_sideband
  - receive_sideband
  - cmd__pkt_line
  source_file: /src/git/t/helper/test-pkt-line.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__hexdump
  source_file: /src/git/t/helper/test-hexdump.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dump_graph_info
  - dump_graph_bloom_filters
  - cmd__read_graph
  source_file: /src/git/t/helper/test-read-graph.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_sync
  - GetPrivilege
  - cmd_dropcaches
  - cmd_sync
  - cmd_dropcaches
  - cmd_sync
  - cmd_dropcaches
  - cmd_sync
  - cmd_dropcaches
  - cmd__drop_caches
  source_file: /src/git/t/helper/test-drop-caches.c
  types:
    enum:
    - enumerators:
      - name: SystemMemoryListInformation
        value: '80'
      item_type: enum
      name: _SYSTEM_INFORMATION_CLASS
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/git/t/helper/test-drop-caches.c
    - enumerators:
      - name: MemoryCaptureAccessedBits
      - name: MemoryCaptureAndResetAccessedBits
      - name: MemoryPurgeStandbyList
      - name: MemoryFlushModifiedList
      - name: MemoryEmptyWorkingSets
      - name: MemoryPurgeLowPriorityStandbyList
      - name: MemoryCommandMax
      item_type: enum
      name: _SYSTEM_MEMORY_LIST_COMMAND
      pos:
        line_end: 57
        line_start: 49
        source_file: /src/git/t/helper/test-drop-caches.c
    preproc_defs:
    - item_type: preproc_def
      name: STATUS_SUCCESS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/t/helper/test-drop-caches.c
      type_or_value: (0x00000000L)
    - item_type: preproc_def
      name: STATUS_PRIVILEGE_NOT_HELD
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/t/helper/test-drop-caches.c
      type_or_value: (0xC0000061L)
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__online_cpus
  source_file: /src/git/t/helper/test-online-cpus.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - emit_block
  - cmd__path_walk
  source_file: /src/git/t/helper/test-path-walk.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: batch_nr
        type: uintmax_t
      - name: commit_nr
        type: uintmax_t
      - name: tree_nr
        type: uintmax_t
      - name: blob_nr
        type: uintmax_t
      - name: tag_nr
        type: uintmax_t
      item_type: struct
      name: path_walk_test_data
      pos:
        line_end: 28
        line_start: 21
        source_file: /src/git/t/helper/test-path-walk.c
    typedefs: []
    union: []
- function_names:
  - cmd__cache_tree
  source_file: /src/git/t/helper/test-cache-tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__parse_pathspec_file
  source_file: /src/git/t/helper/test-parse-pathspec-file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__wildmatch
  source_file: /src/git/t/helper/test-wildmatch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_i
  - ut_001return
  - ut_002exit
  - ut_003error
  - ut_004child
  - ut_005exec
  - ut_006data
  - ut_007BUG
  - ut_008bug
  - ut_009bug_BUG
  - ut_010bug_BUG
  - ut_100timer
  - ut_101timer_thread_proc
  - ut_101timer
  - ut_200counter
  - ut_201counter_thread_proc
  - ut_201counter
  - ut_300redact_start
  - ut_301redact_child_start
  - ut_302redact_exec
  - ut_303redact_def_param
  - ut_400ancestry
  - for_each_ut
  - print_usage
  - cmd__trace2
  source_file: /src/git/t/helper/test-trace2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MyOk
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/t/helper/test-trace2.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MyError
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/t/helper/test-trace2.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USAGE_PREFIX
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/git/t/helper/test-trace2.c
      type_or_value: '"test-tool trace2"'
    structs:
    - fields:
      - name: '*ut_fn'
        type: fn_unit_test
      - name: '*ut_name'
        type: char
      - name: '*ut_usage'
        type: char
      item_type: struct
      name: unit_test
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/git/t/helper/test-trace2.c
    - fields:
      - name: count
        type: int
      - name: delay
        type: int
      item_type: struct
      name: ut_101_data
      pos:
        line_end: 271
        line_start: 268
        source_file: /src/git/t/helper/test-trace2.c
    - fields:
      - name: v1
        type: int
      - name: v2
        type: int
      item_type: struct
      name: ut_201_data
      pos:
        line_end: 367
        line_start: 364
        source_file: /src/git/t/helper/test-trace2.c
    typedefs:
    - item_type: typedef
      name: (fn_unit_test)(int argc, const char **argv)
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/git/t/helper/test-trace2.c
      type: int
    union: []
- function_names:
  - str_or_null
  - rot13
  - get_value
  - packet_key_val_read
  - assert_remote_capability
  - read_capabilities
  - check_and_write_capabilities
  - free_delay_entries
  - add_delay_entry
  - reply_list_available_blobs_cmd
  - command_loop
  - packet_initialize
  - cmd__rot13_filter
  source_file: /src/git/t/helper/test-rot13-filter.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: requested
        type: int
      - name: '*output'
        type: char
      item_type: struct
      name: delay_entry
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/git/t/helper/test-rot13-filter.c
    typedefs: []
    union: []
- function_names:
  - dump_mtimes
  - cmd__pack_mtimes
  - repo_for_each_pack
  source_file: /src/git/t/helper/test-pack-mtimes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_submodule
  - cmd__submodule_check_name
  - cmd__submodule_check_url
  - cmd__submodule_is_active
  - cmd__submodule_resolve_relative_url
  - cmd__submodule_config_list
  - cmd__submodule_config_set
  - cmd__submodule_config_unset
  - cmd__submodule_config_writeable
  - cmd__submodule
  source_file: /src/git/t/helper/test-submodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_TOOL_CHECK_NAME_USAGE
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/git/t/helper/test-submodule.c
      type_or_value: '"test-tool submodule check-name"'
    - item_type: preproc_def
      name: TEST_TOOL_CHECK_URL_USAGE
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/git/t/helper/test-submodule.c
      type_or_value: '"test-tool submodule check-url"'
    - item_type: preproc_def
      name: TEST_TOOL_IS_ACTIVE_USAGE
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/git/t/helper/test-submodule.c
      type_or_value: '"test-tool submodule is-active <name>"'
    - item_type: preproc_def
      name: TEST_TOOL_RESOLVE_RELATIVE_URL_USAGE
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/git/t/helper/test-submodule.c
      type_or_value: '"test-tool submodule resolve-relative-url <up_path> <remoteurl>
        <url>"'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*check_fn_t)(const char *)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/git/t/helper/test-submodule.c
      type: int
    union: []
- function_names:
  - make_obj1
  - make_obj2
  - make_obj3
  - make_obj4
  - make_obj5
  - make_obj6
  - make_arr1
  - make_arr2
  - make_arr3
  - make_arr4
  - make_nest1
  - make_inline1
  - make_inline2
  - make_mixed1
  - cmp
  - t
  - p
  - unit_tests
  - get_s
  - get_i
  - get_d
  - get_trimmed_line
  - scripted
  - cmd__json_writer
  source_file: /src/git/t/helper/test-json-writer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LINE_LENGTH
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/git/t/helper/test-json-writer.c
      type_or_value: (64 * 1024)
    structs:
    - fields:
      - name: '*parts'
        type: struct string_list
      - name: consumed_nr
        type: size_t
      - name: nr
        type: int
      item_type: struct
      name: line
      pos:
        line_end: 401
        line_start: 397
        source_file: /src/git/t/helper/test-json-writer.c
    typedefs: []
    union: []
- function_names:
  - die_usage
  - cmd__submodule_nested_repo_config
  source_file: /src/git/t/helper/test-submodule-nested-repo-config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__crontab
  source_file: /src/git/t/helper/test-crontab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - show_relative_dates
  - show_human_dates
  - show_dates
  - parse_dates
  - parse_approxidate
  - parse_approx_timestamp
  - getnanos
  - cmd__date
  source_file: /src/git/t/helper/test-date.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bitmap_list_commits
  - bitmap_list_commits_with_offset
  - bitmap_dump_hashes
  - bitmap_dump_pseudo_merges
  - bitmap_dump_pseudo_merge_commits
  - bitmap_dump_pseudo_merge_objects
  - add_packed_object
  - idx_oid_cmp
  - bitmap_write
  - repo_for_each_pack
  - cmd__bitmap
  source_file: /src/git/t/helper/test-bitmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_regex_bug
  - cmd__regex
  source_file: /src/git/t/helper/test-regex.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: flag
        type: int
      item_type: struct
      name: reg_flag
      pos:
        line_end: 6
        line_start: 3
        source_file: /src/git/t/helper/test-regex.c
    typedefs: []
    union: []
- function_names:
  - cmd__delete_gpgsig
  source_file: /src/git/t/helper/test-delete-gpgsig.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_parse_commit_in_graph
  - test_get_commit_tree_in_graph
  - cmd__repository
  source_file: /src/git/t/helper/test-repository.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__sha1
  - cmd__sha1_is_sha1dc
  - cmd__sha1_unsafe
  source_file: /src/git/t/helper/test-sha1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - minstd_rand
  - compare_strings
  - sort_stdin
  - dist_sawtooth
  - dist_rand
  - dist_stagger
  - dist_plateau
  - dist_shuffle
  - DIST
  - get_dist_by_name
  - mode_copy
  - mode_reverse
  - mode_reverse_1st_half
  - mode_reverse_2nd_half
  - compare_ints
  - mode_sort
  - mode_dither
  - unriffle
  - unriffle_recursively
  - mode_unriffle
  - prev_pow2
  - unriffle_recursively_skewed
  - mode_unriffle_skewed
  - MODE
  - get_mode_by_name
  - generate
  - compare_numbers
  - clear_numbers
  - test
  - run_tests
  - cmd__mergesort
  source_file: /src/git/t/helper/test-mergesort.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*text'
        type: char
      - name: '*next'
        type: struct line
      item_type: struct
      name: line
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/git/t/helper/test-mergesort.c
    - fields:
      - name: '*name'
        type: char
      - name: (*fn)(int *arr, int n, int m)
        type: void
      item_type: struct
      name: dist
      pos:
        line_end: 108
        line_start: 105
        source_file: /src/git/t/helper/test-mergesort.c
    - fields:
      - name: '*name'
        type: char
      - name: (*fn)(int *arr, int n)
        type: void
      item_type: struct
      name: mode
      pos:
        line_end: 228
        line_start: 225
        source_file: /src/git/t/helper/test-mergesort.c
    - fields:
      - name: get_next
        type: int
      item_type: struct
      name: stats
      pos:
        line_end: 276
        line_start: 274
        source_file: /src/git/t/helper/test-mergesort.c
    - fields:
      - name: value
        type: int
      - name: '*next'
        type: struct number
      item_type: struct
      name: number
      pos:
        line_end: 281
        line_start: 278
        source_file: /src/git/t/helper/test-mergesort.c
    typedefs: []
    union: []
- function_names:
  - cmd__bundle_uri_parse
  - cmd_ls_remote
  - cmd__bundle_uri
  source_file: /src/git/t/helper/test-bundle-uri.c
  types:
    enum:
    - enumerators:
      - name: KEY_VALUE_PAIRS
      - name: CONFIG_FILE
      item_type: enum
      name: input_mode
      pos:
        line_end: 12
        line_start: 9
        source_file: /src/git/t/helper/test-bundle-uri.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dump_one
  - dump_cache_tree
  - cmd__dump_cache_tree
  source_file: /src/git/t/helper/test-dump-cache-tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_hash_impl
  source_file: /src/git/t/helper/test-hash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mode34_callback
  - length_callback
  - number_callback
  - collect_expect
  - show
  - cmd__parse_options
  - print_args
  - parse_options_flags__cmd
  - cmd__parse_options_flags
  - subcmd_one
  - subcmd_two
  - parse_subcommand__cmd
  - cmd__parse_subcommand
  source_file: /src/git/t/helper/test-parse-options.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: called
        type: int
      - name: '*arg'
        type: char
      - name: unset
        type: int
      item_type: struct
      name: length_cb
      pos:
        line_end: 21
        line_start: 17
        source_file: /src/git/t/helper/test-parse-options.c
    typedefs: []
    union: []
- function_names:
  - add_string_to_filter
  - print_bloom_filter
  - get_bloom_filter_for_commit
  - cmd__bloom
  source_file: /src/git/t/helper/test-bloom.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__mktemp
  source_file: /src/git/t/helper/test-mktemp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/t/helper/test-tool.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__pcre2_config
  source_file: /src/git/t/helper/test-pcre2-config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__delta
  source_file: /src/git/t/helper/test-delta.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_sorted_commit_ids
  - cmd__reach
  source_file: /src/git/t/helper/test-reach.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd__xml_encode
  source_file: /src/git/t/helper/test-xml-encode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t_vcreate_string_list_dup
  - t_create_string_list_dup
  - t_string_list_clear
  - t_string_list_equal
  - t_string_list_split
  - t_string_list_split_f
  - test_string_list__split_f
  - t_string_list_split_in_place_f
  - test_string_list__split_in_place_f
  - test_string_list__split
  - t_string_list_split_in_place
  - test_string_list__split_in_place
  - prefix_cb
  - t_string_list_filter
  - test_string_list__filter
  - t_string_list_has_string
  - test_string_list__has_string
  - t_string_list_insert
  - test_string_list__insert
  - t_string_list_sort
  - test_string_list__sort
  - t_string_list_remove
  - test_string_list__remove
  - t_string_list_remove_duplicates
  - test_string_list__remove_duplicates
  - t_string_list_sort_u
  - test_string_list__sort_u
  - t_string_list_remove_empty_items
  - test_string_list__remove_empty_items
  - t_string_list_unsorted_string_list_has_string
  - test_string_list__unsorted_string_list_has_string
  - t_string_list_unsorted_string_list_delete_item
  - test_string_list__unsorted_string_list_delete_item
  source_file: /src/git/t/unit-tests/u-string-list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t_trailer_iterator
  - test_trailer__empty_input
  - test_trailer__no_newline_start
  - test_trailer__newline_start
  - test_trailer__no_body_text
  - test_trailer__body_text_no_divider
  - test_trailer__body_no_divider_2nd_block
  - test_trailer__body_and_divider
  - test_trailer__non_trailer_in_block
  - test_trailer__too_many_non_trailers
  - test_trailer__one_non_trailer_no_git_trailers
  source_file: /src/git/t/unit-tests/u-trailer.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*raw'
        type: char
      - name: '*key'
        type: char
      - name: '*val'
        type: char
      item_type: struct
      name: contents
      pos:
        line_end: 9
        line_start: 5
        source_file: /src/git/t/unit-tests/u-trailer.c
    typedefs: []
    union: []
- function_names:
  - test_utf8_width__strnwidth_chinese
  - test_utf8_width__strwidth_chinese
  - test_utf8_width__strnwidth_japanese_korean
  - test_utf8_width__strnwidth_cjk_with_ansi
  - test_utf8_width__strbuf_utf8_align
  source_file: /src/git/t/unit-tests/u-utf8-width.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fill_array
  - add_to_oid_array
  - t_enumeration
  - TEST_ENUMERATION
  - t_lookup
  - TEST_LOOKUP
  - test_oid_array__initialize
  - test_oid_array__enumerate_unique
  - test_oid_array__enumerate_duplicate
  - test_oid_array__lookup
  - test_oid_array__lookup_non_existent
  - test_oid_array__lookup_duplicates
  - test_oid_array__lookup_non_existent_dup
  - test_oid_array__lookup_almost_dup
  - test_oid_array__lookup_single_dup
  source_file: /src/git/t/unit-tests/u-oid-array.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_strcmp_offset
  - test_strcmp_offset__empty
  - test_strcmp_offset__equal
  - test_strcmp_offset__different
  - test_strcmp_offset__mismatch
  - test_strcmp_offset__different_length
  source_file: /src/git/t/unit-tests/u-strcmp-offset.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_reftable_readwrite__buffer
  - write_table
  - test_reftable_readwrite__log_buffer_size
  - test_reftable_readwrite__log_overflow
  - test_reftable_readwrite__log_write_limits
  - test_reftable_readwrite__log_write_read
  - test_reftable_readwrite__log_zlib_corruption
  - test_reftable_readwrite__table_read_write_sequential
  - test_reftable_readwrite__table_write_small_table
  - test_reftable_readwrite__table_read_api
  - t_table_read_write_seek
  - test_reftable_readwrite__table_read_write_seek_linear
  - test_reftable_readwrite__table_read_write_seek_linear_sha256
  - test_reftable_readwrite__table_read_write_seek_index
  - t_table_refs_for
  - test_reftable_readwrite__table_refs_for_no_index
  - test_reftable_readwrite__table_refs_for_obj_index
  - test_reftable_readwrite__write_empty_table
  - test_reftable_readwrite__write_object_id_min_length
  - test_reftable_readwrite__write_object_id_length
  - test_reftable_readwrite__write_empty_key
  - test_reftable_readwrite__write_key_order
  - test_reftable_readwrite__write_multiple_indices
  - test_reftable_readwrite__write_multi_level_index
  - test_reftable_readwrite__corrupt_table_empty
  - test_reftable_readwrite__corrupt_table
  source_file: /src/git/t/unit-tests/u-reftable-readwrite.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_reftable_block__read_write
  - test_reftable_block__log_read_write
  - test_reftable_block__obj_read_write
  - test_reftable_block__ref_read_write
  - test_reftable_block__iterator
  source_file: /src/git/t/unit-tests/u-reftable-block.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - t_copy
  - test_reftable_record__varint_roundtrip
  - test_reftable_record__varint_overflow
  - set_hash
  - test_reftable_record__ref_record_comparison
  - test_reftable_record__ref_record_compare_name
  - test_reftable_record__ref_record_roundtrip
  - test_reftable_record__log_record_comparison
  - test_reftable_record__log_record_compare_key
  - test_reftable_record__log_record_roundtrip
  - test_reftable_record__key_roundtrip
  - test_reftable_record__obj_record_comparison
  - test_reftable_record__obj_record_roundtrip
  - test_reftable_record__index_record_comparison
  - test_reftable_record__index_record_roundtrip
  source_file: /src/git/t/unit-tests/u-reftable-record.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - intcmp
  - show
  - test_prio_queue
  - TEST_INPUT
  - test_prio_queue__basic
  - test_prio_queue__mixed
  - test_prio_queue__empty
  - test_prio_queue__replace
  - test_prio_queue__stack
  - test_prio_queue__reverse_stack
  - test_prio_queue__replace_stack
  source_file: /src/git/t/unit-tests/u-prio-queue.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MISSING
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/t/unit-tests/u-prio-queue.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: DUMP
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/t/unit-tests/u-prio-queue.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: STACK
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/t/unit-tests/u-prio-queue.c
      type_or_value: '-3'
    - item_type: preproc_def
      name: GET
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/t/unit-tests/u-prio-queue.c
      type_or_value: '-4'
    - item_type: preproc_def
      name: REVERSE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/t/unit-tests/u-prio-queue.c
      type_or_value: '-5'
    - item_type: preproc_def
      name: REPLACE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/t/unit-tests/u-prio-queue.c
      type_or_value: '-6'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_WITHIN_DEPTH
  - test_dir__within_depth
  source_file: /src/git/t/unit-tests/u-dir.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/t/unit-tests/unit-test.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_example_decorate__initialize
  - test_example_decorate__cleanup
  - test_example_decorate__add
  - test_example_decorate__readd
  - test_example_decorate__lookup
  - test_example_decorate__loop
  source_file: /src/git/t/unit-tests/u-example-decorate.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*one'
        type: struct object
      - name: n
        type: struct decoration
      - name: decoration_a
        type: int
      item_type: struct
      name: test_vars
      pos:
        line_end: 11
        line_start: 7
        source_file: /src/git/t/unit-tests/u-example-decorate.c
    typedefs: []
    union: []
- function_names:
  - TEST
  - if_test
  - TEST_LOCATION
  - check
  - check_pointer_eq
  - check_int
  - check_uint
  - check_char
  - check_str
  - TEST_TODO
  - TEST__STR
  - TEST__MAKE_LOCATION
  source_file: /src/git/t/unit-tests/test-lib.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: i
        type: intmax_t
      - name: u
        type: uintmax_t
      - name: c
        type: char
      - name: '*p'
        type: void
      item_type: union
      name: test__tmp
      pos:
        line_end: 169
        line_start: 164
        source_file: /src/git/t/unit-tests/test-lib.h
- function_names:
  - integer_needle_lesseq
  - realloc_stub
  - test_reftable_basics__binsearch
  - test_reftable_basics__names_length
  - test_reftable_basics__names_equal
  - test_reftable_basics__parse_names
  - test_reftable_basics__parse_names_missing_newline
  - test_reftable_basics__parse_names_drop_empty_string
  - test_reftable_basics__common_prefix_size
  - test_reftable_basics__put_get_be64
  - test_reftable_basics__put_get_be32
  - test_reftable_basics__put_get_be24
  - test_reftable_basics__put_get_be16
  - test_reftable_basics__alloc_grow
  - test_reftable_basics__alloc_grow_or_null
  source_file: /src/git/t/unit-tests/u-reftable-basics.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: needle
        type: int
      - name: '*haystack'
        type: int
      item_type: struct
      name: integer_needle_lesseq_args
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/git/t/unit-tests/u-reftable-basics.c
    - fields:
      - name: needle
        type: int
      - name: expected_idx
        type: size_t
      item_type: struct
      name: "testcases[] = {\n\t\t{-9000, 0},\n\t\t{-1, 0},\n\t\t{0, 0},\n\t\t{2,
        0},\n\t\t{3, 1},\n\t\t{4, 1},\n\t\t{7, 3},\n\t\t{9, 4},\n\t\t{10, 4},\n\t\t{11,
        5},\n\t\t{9000, 5},\n\t}"
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/git/t/unit-tests/u-reftable-basics.c
    - fields:
      - name: '*a'
        type: char
      - name: want
        type: int
      item_type: struct
      name: "cases[] = {\n\t\t{\"abcdef\", \"abc\", 3},\n\t\t{ \"abc\", \"ab\", 2
        },\n\t\t{ \"\", \"abc\", 0 },\n\t\t{ \"abc\", \"abd\", 2 },\n\t\t{ \"abc\",
        \"pqr\", 0 },\n\t}"
      pos:
        line_end: 132
        line_start: 129
        source_file: /src/git/t/unit-tests/u-reftable-basics.c
    typedefs: []
    union: []
- function_names:
  - t_compare
  - store
  - test_reftable_tree__tree_search
  - test_reftable_tree__infix_walk
  source_file: /src/git/t/unit-tests/u-reftable-tree.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**arr'
        type: void
      - name: len
        type: size_t
      item_type: struct
      name: curry
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/git/t/unit-tests/u-reftable-tree.c
    typedefs: []
    union: []
- function_names:
  - TEST_CHAR_CLASS
  - test_ctype__isspace
  - test_ctype__isdigit
  - test_ctype__isalpha
  - test_ctype__isalnum
  - test_ctype__is_glob_special
  - test_ctype__is_regex_special
  - test_ctype__is_pathspec_magic
  - test_ctype__isascii
  - test_ctype__islower
  - test_ctype__isupper
  - test_ctype__iscntrl
  - test_ctype__ispunct
  - test_ctype__isxdigit
  - test_ctype__isprint
  source_file: /src/git/t/unit-tests/u-ctype.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DIGIT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/t/unit-tests/u-ctype.c
      type_or_value: '"0123456789"'
    - item_type: preproc_def
      name: LOWER
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/t/unit-tests/u-ctype.c
      type_or_value: '"abcdefghijklmnopqrstuvwxyz"'
    - item_type: preproc_def
      name: UPPER
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/t/unit-tests/u-ctype.c
      type_or_value: '"ABCDEFGHIJKLMNOPQRSTUVWXYZ"'
    - item_type: preproc_def
      name: PUNCT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/t/unit-tests/u-ctype.c
      type_or_value: '"!\"#$%&''()*+,-./:;<=>?@[\\]^_`{|}~"'
    - item_type: preproc_def
      name: ASCII
      pos:
        line_end: 28
        line_start: 19
        source_file: /src/git/t/unit-tests/u-ctype.c
      type_or_value: "\"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\"
        \\\n\t\"\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f\"
        \\\n\t\"\\x20\\x21\\x22\\x23\\x24\\x25\\x26\\x27\\x28\\x29\\x2a\\x2b\\x2c\\x2d\\x2e\\x2f\"
        \\\n\t\"\\x30\\x31\\x32\\x33\\x34\\x35\\x36\\x37\\x38\\x39\\x3a\\x3b\\x3c\\x3d\\x3e\\x3f\"
        \\\n\t\"\\x40\\x41\\x42\\x43\\x44\\x45\\x46\\x47\\x48\\x49\\x4a\\x4b\\x4c\\x4d\\x4e\\x4f\"
        \\\n\t\"\\x50\\x51\\x52\\x53\\x54\\x55\\x56\\x57\\x58\\x59\\x5a\\x5b\\x5c\\x5d\\x5e\\x5f\"
        \\\n\t\"\\x60\\x61\\x62\\x63\\x64\\x65\\x66\\x67\\x68\\x69\\x6a\\x6b\\x6c\\x6d\\x6e\\x6f\"
        \\\n\t\"\\x70\\x71\\x72\\x73\\x74\\x75\\x76\\x77\\x78\\x79\\x7a\\x7b\\x7c\\x7d\\x7e\\x7f\""
    - item_type: preproc_def
      name: CNTRL
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/git/t/unit-tests/u-ctype.c
      type_or_value: "\"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\"
        \\\n\t\"\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f\"
        \\\n\t\"\\x7f\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_free_fn
  - test_oidmap__initialize
  - test_oidmap__cleanup
  - test_oidmap__replace
  - test_oidmap__get
  - test_oidmap__remove
  - key_val_contains
  - test_oidmap__iterate
  - test_oidmap__clear_without_free_callback
  - test_oidmap__clear_with_free_callback
  source_file: /src/git/t/unit-tests/u-oidmap.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: entry
        type: struct oidmap_entry
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: test_entry
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/git/t/unit-tests/u-oidmap.c
    typedefs: []
    union: []
- function_names:
  - FILL_TREE
  - fill_tree_loc
  - check_contains
  - check_each_cb
  - check_each
  - test_oidtree__initialize
  - test_oidtree__cleanup
  - test_oidtree__contains
  - test_oidtree__each
  - test_oidtree__insert_overwrites_data
  source_file: /src/git/t/unit-tests/u-oidtree.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: i
        type: size_t
      - name: expected_hexes
        type: struct strvec
      - name: '*query'
        type: char
      item_type: struct
      name: expected_hex_iter
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/git/t/unit-tests/u-oidtree.c
    typedefs: []
    union: []
- function_names:
  - clear_dir
  - count_dir_entries
  - get_tmp_template
  - get_tmp_dir
  - test_reftable_stack__read_file
  - write_test_ref
  - write_n_ref_tables
  - write_test_log
  - test_reftable_stack__add_one
  - test_reftable_stack__uptodate
  - test_reftable_stack__transaction_api
  - test_reftable_stack__transaction_with_reload
  - test_reftable_stack__transaction_api_performs_auto_compaction
  - test_reftable_stack__auto_compaction_fails_gracefully
  - write_error
  - test_reftable_stack__update_index_check
  - test_reftable_stack__lock_failure
  - test_reftable_stack__add
  - test_reftable_stack__iterator
  - test_reftable_stack__log_normalize
  - test_reftable_stack__tombstone
  - test_reftable_stack__hash_id
  - test_reftable_stack__suggest_compaction_segment
  - test_reftable_stack__suggest_compaction_segment_nothing
  - test_reftable_stack__reflog_expire
  - write_nothing
  - test_reftable_stack__empty_add
  - fastlogN
  - test_reftable_stack__auto_compaction
  - test_reftable_stack__auto_compaction_factor
  - test_reftable_stack__auto_compaction_with_locked_tables
  - test_reftable_stack__add_performs_auto_compaction
  - test_reftable_stack__compaction_with_locked_tables
  - test_reftable_stack__compaction_concurrent
  - unclean_stack_close
  - test_reftable_stack__compaction_concurrent_clean
  - test_reftable_stack__read_across_reload
  - test_reftable_stack__reload_with_missing_table
  - write_limits_after_ref
  - test_reftable_stack__invalid_limit_updates
  source_file: /src/git/t/unit-tests/u-reftable-stack.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*log'
        type: struct reftable_log_record
      - name: update_index
        type: uint64_t
      item_type: struct
      name: write_log_arg
      pos:
        line_end: 139
        line_start: 136
        source_file: /src/git/t/unit-tests/u-reftable-stack.c
    typedefs: []
    union: []
- function_names:
  - cl_setup_hash_algo
  - cl_parse_oid
  - cl_parse_any_oid
  source_file: /src/git/t/unit-tests/lib-oid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cl_assert_object_info
  - test_odb_inmemory__initialize
  - test_odb_inmemory__cleanup
  - test_odb_inmemory__new
  - test_odb_inmemory__read_missing_object
  - test_odb_inmemory__read_empty_tree
  - test_odb_inmemory__read_written_object
  - test_odb_inmemory__read_stream_object
  - add_one_object
  - test_odb_inmemory__for_each_object
  - abort_after_two_objects
  - test_odb_inmemory__for_each_object_can_abort_iteration
  - test_odb_inmemory__count_objects
  - test_odb_inmemory__find_abbrev_len
  - test_odb_inmemory__freshen_object
  - membuf_write_stream_read
  - test_odb_inmemory__write_object_stream
  source_file: /src/git/t/unit-tests/u-odb-inmemory.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RANDOM_OID
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/t/unit-tests/u-odb-inmemory.c
      type_or_value: '"da39a3ee5e6b4b0d3255bfef95601890afd80709"'
    - item_type: preproc_def
      name: FOOBAR_OID
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/t/unit-tests/u-odb-inmemory.c
      type_or_value: '"f6ea0495187600e7b2288c8ac19c5886383a4632"'
    structs:
    - fields:
      - name: base
        type: struct odb_write_stream
      - name: '*buf'
        type: char
      - name: offset
        type: size_t
      - name: size
        type: size_t
      item_type: struct
      name: membuf_write_stream
      pos:
        line_end: 273
        line_start: 268
        source_file: /src/git/t/unit-tests/u-odb-inmemory.c
    typedefs: []
    union: []
- function_names:
  - make_relative
  - msg_with_prefix
  - test_msg
  - test_plan
  - test_done
  - test_skip
  - test_skip_all
  - test__run_describe
  - test__run_begin
  - print_description
  - test__run_end
  - test_fail
  - test_pass
  - test_todo
  - test_assert
  - test__todo_begin
  - test__todo_end
  - check_bool_loc
  - check_pointer_eq_loc
  - check_int_loc
  - check_uint_loc
  - print_one_char
  - print_char
  - check_char_loc
  - print_str
  - check_str_loc
  source_file: /src/git/t/unit-tests/test-lib.c
  types:
    enum:
    - enumerators:
      - name: RESULT_NONE
      - name: RESULT_SKIP
      - name: RESULT_FAILURE
      - name: RESULT_SUCCESS
      - name: RESULT_TODO
      item_type: enum
      name: result
      pos:
        line_end: 10
        line_start: 4
        source_file: /src/git/t/unit-tests/test-lib.c
    preproc_defs: []
    structs:
    - fields:
      - name: result
        type: enum result
      - name: count
        type: int
      - name: failed
        type: unsigned
      - name: lazy_plan
        type: unsigned
      - name: running
        type: unsigned
      - name: skip_all
        type: unsigned
      - name: todo
        type: unsigned
      - name: location[100]
        type: char
      - name: description[100]
        type: char
      item_type: struct
      name: "ctx = {\n\t.lazy_plan = 1,\n\t.result = RESULT_NONE,\n}"
      pos:
        line_end: 22
        line_start: 12
        source_file: /src/git/t/unit-tests/test-lib.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/t/unit-tests/lib-reftable.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_entry_cmp
  - get_value
  - alloc_test_entry
  - get_test_entry
  - key_val_contains
  - setup
  - t_replace
  - t_get
  - t_add
  - hashmap_for_each_entry_from
  - t_remove
  - t_iterate
  - t_alloc
  - test_hashmap__intern
  - test_hashmap__replace_case_sensitive
  - test_hashmap__replace_case_insensitive
  - test_hashmap__get_case_sensitive
  - test_hashmap__get_case_insensitive
  - test_hashmap__add_case_sensitive
  - test_hashmap__add_case_insensitive
  - test_hashmap__remove_case_sensitive
  - test_hashmap__remove_case_insensitive
  - test_hashmap__iterate_case_sensitive
  - test_hashmap__iterate_case_insensitive
  - test_hashmap__alloc_case_sensitive
  - test_hashmap__alloc_case_insensitive
  source_file: /src/git/t/unit-tests/u-hashmap.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: padding
        type: int
      - name: ent
        type: struct hashmap_entry
      - name: key[FLEX_ARRAY]
        type: char
      item_type: struct
      name: test_entry
      pos:
        line_end: 9
        line_start: 4
        source_file: /src/git/t/unit-tests/u-hashmap.c
    typedefs: []
    union: []
- function_names:
  - test_many_pool_allocations
  - test_mem_pool__big_block
  - test_mem_pool__tiny_block
  source_file: /src/git/t/unit-tests/u-mem-pool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - merged_iter_pqueue_check
  - pq_entry_equal
  - test_reftable_pq__record
  - test_reftable_pq__index
  - test_reftable_pq__merged_iter_pqueue_top
  source_file: /src/git/t/unit-tests/u-reftable-pq.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_url_normalizable
  - check_normalized_url
  - compare_normalized_urls
  - check_normalized_url_length
  - test_urlmatch_normalization__scheme
  - test_urlmatch_normalization__authority
  - test_urlmatch_normalization__port
  - test_urlmatch_normalization__port_normalization
  - test_urlmatch_normalization__general_escape
  - test_urlmatch_normalization__high_bit
  - test_urlmatch_normalization__utf8_escape
  - test_urlmatch_normalization__username_pass
  - test_urlmatch_normalization__length
  - test_urlmatch_normalization__dots
  - test_urlmatch_normalization__equivalents
  - check_parsed_path
  - test_urlmatch_normalization__parse_scp
  - test_urlmatch_normalization__parse_url_form
  - test_urlmatch_normalization__parse_strips_query_and_fragment
  source_file: /src/git/t/unit-tests/u-urlmatch-normalization.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_reftable_table__seek_once
  - test_reftable_table__reseek
  - test_reftable_table__block_iterator
  source_file: /src/git/t/unit-tests/u-reftable-table.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: block_type
        type: uint8_t
      - name: header_off
        type: uint16_t
      - name: restart_count
        type: uint16_t
      - name: record_count
        type: uint16_t
      item_type: struct
      name: "expected_blocks[] = {\n\t\t{\n\t\t\t.block_type = REFTABLE_BLOCK_TYPE_REF,\n\t\t\t.header_off
        = 24,\n\t\t\t.restart_count = 10,\n\t\t\t.record_count = 158,\n\t\t},\n\t\t{\n\t\t\t.block_type
        = REFTABLE_BLOCK_TYPE_REF,\n\t\t\t.restart_count = 10,\n\t\t\t.record_count
        = 159,\n\t\t},\n\t\t{\n\t\t\t.block_type = REFTABLE_BLOCK_TYPE_REF,\n\t\t\t.restart_count
        = 10,\n\t\t\t.record_count = 159,\n\t\t},\n\t\t{\n\t\t\t.block_type = REFTABLE_BLOCK_TYPE_REF,\n\t\t\t.restart_count
        = 2,\n\t\t\t.record_count = 24,\n\t\t},\n\t\t{\n\t\t\t.block_type = REFTABLE_BLOCK_TYPE_INDEX,\n\t\t\t.restart_count
        = 1,\n\t\t\t.record_count = 4,\n\t\t},\n\t\t{\n\t\t\t.block_type = REFTABLE_BLOCK_TYPE_OBJ,\n\t\t\t.restart_count
        = 1,\n\t\t\t.record_count = 1,\n\t\t},\n\t}"
      pos:
        line_end: 106
        line_start: 101
        source_file: /src/git/t/unit-tests/u-reftable-table.c
    typedefs: []
    union: []
- function_names:
  - cmd_main
  source_file: /src/git/t/unit-tests/unit-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_gentle_parse
  - test_list_objects_filter_options__regular_filters
  - test_list_objects_filter_options__auto_allowed
  - test_list_objects_filter_options__combine_auto_fails
  source_file: /src/git/t/unit-tests/u-list-objects-filter-options.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup
  - setup_populated
  - assert_sane_strbuf
  - test_strbuf__static_init
  - test_strbuf__dynamic_init
  - t_addch
  - t_addstr
  - test_strbuf__add_single_char
  - test_strbuf__add_empty_char
  - test_strbuf__add_append_char
  - test_strbuf__add_single_str
  - test_strbuf__add_append_str
  source_file: /src/git/t/unit-tests/u-strbuf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cl_reftable_set_hash
  - strbuf_writer_write
  - strbuf_writer_flush
  - cl_reftable_strbuf_writer
  - cl_reftable_write_to_buf
  source_file: /src/git/t/unit-tests/lib-reftable.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - merged_table_from_records
  - tables_destroy
  - test_reftable_merged__single_record
  - test_reftable_merged__refs
  - test_reftable_merged__seek_multiple_times
  - test_reftable_merged__seek_multiple_times_no_drain
  - merged_table_from_log_records
  - test_reftable_merged__logs
  - test_reftable_merged__default_write_opts
  source_file: /src/git/t/unit-tests/u-reftable-merged.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_strvec
  - test_strvec__init
  - test_strvec__dynamic_init
  - test_strvec__clear
  - test_strvec__push
  - test_strvec__pushf
  - test_strvec__pushl
  - test_strvec__pushv
  - test_strvec__splice_just_initialized_strvec
  - test_strvec__splice_with_same_size_replacement
  - test_strvec__splice_with_smaller_replacement
  - test_strvec__splice_with_bigger_replacement
  - test_strvec__splice_with_empty_replacement
  - test_strvec__splice_with_empty_original
  - test_strvec__splice_at_tail
  - test_strvec__replace_at_head
  - test_strvec__replace_at_tail
  - test_strvec__replace_in_between
  - test_strvec__replace_with_substring
  - test_strvec__remove_at_head
  - test_strvec__remove_at_tail
  - test_strvec__remove_in_between
  - test_strvec__pop_empty_array
  - test_strvec__pop_non_empty_array
  - test_strvec__split_empty_string
  - test_strvec__split_single_item
  - test_strvec__split_multiple_items
  - test_strvec__split_whitespace_only
  - test_strvec__split_multiple_consecutive_whitespaces
  - test_strvec__detach
  source_file: /src/git/t/unit-tests/u-strvec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_hash_data
  - TEST_HASH_STR
  - TEST_HASH_LITERAL
  - test_hash__empty_string
  - test_hash__single_character
  - test_hash__multi_character
  - test_hash__message_digest
  - test_hash__alphabet
  - test_hash__aaaaaaaaaa_100000
  - test_hash__alphabet_100000
  - test_hash__zero_blob_literal
  - test_hash__three_blob_literal
  - test_hash__zero_tree_literal
  source_file: /src/git/t/unit-tests/u-hash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/t/unit-tests/lib-oid.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - va_copy
  - va_copy
  - stat
  - mkdir
  - chdir
  - access
  - strdup
  - strcasecmp
  - strncpy
  - S_ISDIR
  - p_snprintf
  - localtime_r
  - MAX
  - CL_TRACE
  - clar_abort
  - cl_trace_register
  - clar_report_errors
  - clar_report_all
  - clar_time_now
  - clar_time_diff
  - clar_time_now
  - clar_time_diff
  - clar_run_test
  - clar_run_suite
  - clar_usage
  - clar_parse_args
  - clar_test_init
  - clar_test_run
  - clar_test_shutdown
  - clar_test
  - abort_test
  - clar__skip
  - clar__failv
  - clar__failf
  - clar__fail
  - clar__assert
  - clar__assert_equal
  - clar__assert_compare_i
  - clar__assert_compare_u
  - cl_set_cleanup
  - clar__set_invokepoint
  - clar__clear_invokepoint
  source_file: /src/git/t/unit-tests/clar/clar.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _MAIN_CC
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/git/t/unit-tests/clar/clar.c
      type_or_value: __cdecl
    - item_type: preproc_def
      name: W_OK
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/git/t/unit-tests/clar/clar.c
      type_or_value: '02'
    - item_type: preproc_def
      name: p_vsnprintf
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/git/t/unit-tests/clar/clar.c
      type_or_value: _vsnprintf
    - item_type: preproc_def
      name: p_snprintf
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/git/t/unit-tests/clar/clar.c
      type_or_value: snprintf
    - item_type: preproc_def
      name: p_vsnprintf
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/git/t/unit-tests/clar/clar.c
      type_or_value: vsnprintf
    - item_type: preproc_def
      name: p_snprintf
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/git/t/unit-tests/clar/clar.c
      type_or_value: snprintf
    - item_type: preproc_def
      name: p_vsnprintf
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/git/t/unit-tests/clar/clar.c
      type_or_value: vsnprintf
    - item_type: preproc_def
      name: clar_time
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/git/t/unit-tests/clar/clar.c
      type_or_value: DWORD
    - item_type: preproc_def
      name: clar_time
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/git/t/unit-tests/clar/clar.c
      type_or_value: struct timeval
    structs:
    - fields:
      - name: '*file'
        type: char
      - name: '*function'
        type: char
      - name: line_number
        type: uintmax_t
      - name: '*error_msg'
        type: char
      - name: '*description'
        type: char
      - name: '*next'
        type: struct clar_error
      item_type: struct
      name: clar_error
      pos:
        line_end: 122
        line_start: 114
        source_file: /src/git/t/unit-tests/clar/clar.c
    - fields:
      - name: suite_idx
        type: size_t
      - name: '*filter'
        type: char
      - name: '*next'
        type: struct clar_explicit
      item_type: struct
      name: clar_explicit
      pos:
        line_end: 129
        line_start: 124
        source_file: /src/git/t/unit-tests/clar/clar.c
    - fields:
      - name: '*test'
        type: char
      - name: test_number
        type: int
      - name: '*suite'
        type: char
      - name: status
        type: enum cl_test_status
      - name: start
        type: time_t
      - name: elapsed
        type: double
      - name: '*errors'
        type: struct clar_error
      - name: '*last_error'
        type: struct clar_error
      - name: '*next'
        type: struct clar_report
      item_type: struct
      name: clar_report
      pos:
        line_end: 144
        line_start: 131
        source_file: /src/git/t/unit-tests/clar/clar.c
    - fields:
      - name: '*filename'
        type: char
      - name: '*fp'
        type: FILE
      item_type: struct
      name: clar_summary
      pos:
        line_end: 149
        line_start: 146
        source_file: /src/git/t/unit-tests/clar/clar.c
    - fields:
      - name: test_status
        type: enum cl_test_status
      - name: '*active_test'
        type: char
      - name: '*active_suite'
        type: char
      - name: total_skipped
        type: int
      - name: total_errors
        type: int
      - name: tests_ran
        type: int
      - name: suites_ran
        type: int
      - name: output_format
        type: enum cl_output_format
      - name: exit_on_error
        type: int
      - name: verbosity
        type: int
      - name: write_summary
        type: int
      - name: '*summary_filename'
        type: char
      - name: '*summary'
        type: struct clar_summary
      - name: '*explicit'
        type: struct clar_explicit
      - name: '*last_explicit'
        type: struct clar_explicit
      - name: '*reports'
        type: struct clar_report
      - name: '*last_report'
        type: struct clar_report
      - name: '*invoke_file'
        type: char
      - name: '*invoke_func'
        type: char
      - name: invoke_line
        type: size_t
      - name: (*local_cleanup)(void *)
        type: void
      - name: '*local_cleanup_payload'
        type: void
      - name: trampoline
        type: jmp_buf
      - name: trampoline_enabled
        type: int
      - name: '*pfn_trace_cb'
        type: cl_trace_cb
      - name: '*trace_payload'
        type: void
      item_type: struct
      name: _clar
      pos:
        line_end: 191
        line_start: 151
        source_file: /src/git/t/unit-tests/clar/clar.c
    - fields:
      - name: '*name'
        type: char
      - name: (*ptr)(void)
        type: void
      item_type: struct
      name: clar_func
      pos:
        line_end: 196
        line_start: 193
        source_file: /src/git/t/unit-tests/clar/clar.c
    - fields:
      - name: '*name'
        type: char
      - name: initialize
        type: struct clar_func
      - name: cleanup
        type: struct clar_func
      - name: '*tests'
        type: struct clar_func
      - name: test_count
        type: size_t
      - name: enabled
        type: int
      item_type: struct
      name: clar_suite
      pos:
        line_end: 205
        line_start: 198
        source_file: /src/git/t/unit-tests/clar/clar.c
    typedefs:
    - item_type: typedef
      name: STAT_T
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/git/t/unit-tests/clar/clar.c
      type: _stat
    - item_type: typedef
      name: STAT_T
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/git/t/unit-tests/clar/clar.c
      type: stat
    - item_type: typedef
      name: STAT_T
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/git/t/unit-tests/clar/clar.c
      type: stat
    union: []
- function_names:
  - cl_invoke
  - cl_must_pass_
  - cl_must_fail_
  - cl_assert_
  - cl_check_pass_
  - cl_check_fail_
  - cl_check_
  - cl_must_pass
  - cl_must_fail
  - cl_assert
  - cl_check_pass
  - cl_check_fail
  - cl_check
  - cl_fail
  - cl_failf
  - cl_warning
  - cl_skip
  - cl_assert_equal_s
  - cl_assert_equal_s_
  - cl_assert_equal_wcs
  - cl_assert_equal_wcs_
  - cl_assert_equal_strn
  - cl_assert_equal_strn_
  - cl_assert_equal_wcsn
  - cl_assert_equal_wcsn_
  - cl_assert_compare_i_
  - cl_assert_compare_i
  - cl_assert_equal_i_
  - cl_assert_equal_i
  - cl_assert_equal_i_fmt
  - cl_assert_lt_i_
  - cl_assert_lt_i
  - cl_assert_le_i_
  - cl_assert_le_i
  - cl_assert_gt_i_
  - cl_assert_gt_i
  - cl_assert_ge_i_
  - cl_assert_ge_i
  - cl_assert_compare_u_
  - cl_assert_compare_u
  - cl_assert_equal_u_
  - cl_assert_equal_u
  - cl_assert_lt_u_
  - cl_assert_lt_u
  - cl_assert_le_u_
  - cl_assert_le_u
  - cl_assert_gt_u_
  - cl_assert_gt_u
  - cl_assert_ge_u_
  - cl_assert_ge_u
  - cl_assert_equal_b
  - cl_assert_equal_p
  source_file: /src/git/t/unit-tests/clar/clar.h
  types:
    enum:
    - enumerators:
      - name: CL_TEST_OK
      - name: CL_TEST_SKIP
      - name: CL_TEST_NOTRUN
      - name: CL_TEST_FAILURE
      item_type: enum
      name: cl_test_status
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/git/t/unit-tests/clar/clar.h
    - enumerators:
      - name: CL_OUTPUT_CLAP
      - name: CL_OUTPUT_TAP
      item_type: enum
      name: cl_output_format
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/git/t/unit-tests/clar/clar.h
    - enumerators:
      - name: CL_TRACE__SUITE_BEGIN
      - name: CL_TRACE__TEST__BEGIN
      - name: CL_TRACE__TEST__END
      - name: CL_TRACE__TEST__RUN_BEGIN
      - name: CL_TRACE__SUITE_END
      - name: CL_TRACE__TEST__RUN_END
      - name: CL_TRACE__TEST__LONGJMP
      item_type: enum
      name: cl_trace_event
      pos:
        line_end: 86
        line_start: 78
        source_file: /src/git/t/unit-tests/clar/clar.h
    - enumerators:
      - name: CLAR_COMPARISON_EQ
      - name: CLAR_COMPARISON_LT
      - name: CLAR_COMPARISON_GT
      - name: CLAR_COMPARISON_GE
      - name: CLAR_COMPARISON_LE
      item_type: enum
      name: clar_comparison
      pos:
        line_end: 258
        line_start: 252
        source_file: /src/git/t/unit-tests/clar/clar.h
    preproc_defs:
    - item_type: preproc_def
      name: CLAR_MAX_PATH
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/t/unit-tests/clar/clar.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: CLAR_MAX_PATH
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/t/unit-tests/clar/clar.h
      type_or_value: MAX_PATH
    - item_type: preproc_def
      name: CLAR_MAX_PATH
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/t/unit-tests/clar/clar.h
      type_or_value: PATH_MAX
    - item_type: preproc_def
      name: CLAR_MAX_PATH
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/t/unit-tests/clar/clar.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: CLAR_CURRENT_FILE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/t/unit-tests/clar/clar.h
      type_or_value: __FILE__
    - item_type: preproc_def
      name: CLAR_CURRENT_LINE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/t/unit-tests/clar/clar.h
      type_or_value: __LINE__
    - item_type: preproc_def
      name: CLAR_CURRENT_FUNC
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/t/unit-tests/clar/clar.h
      type_or_value: __func__
    - item_type: preproc_def
      name: CLAR_CURRENT_FILE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/t/unit-tests/clar/clar.h
      type_or_value: '"file"'
    - item_type: preproc_def
      name: CLAR_CURRENT_LINE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/t/unit-tests/clar/clar.h
      type_or_value: '42'
    - item_type: preproc_def
      name: CLAR_CURRENT_FUNC
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/t/unit-tests/clar/clar.h
      type_or_value: '"func"'
    structs: []
    typedefs:
    - item_type: typedef
      name: "(cl_trace_cb)(\n\tcl_trace_event ev,\n\tconst char *suite_name,\n\tconst
        char *test_name,\n\tvoid *payload)"
      pos:
        line_end: 92
        line_start: 88
        source_file: /src/git/t/unit-tests/clar/clar.h
      type: void
    union: []
- function_names: []
  source_file: /src/git/t/unit-tests/clar/test/main.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/t/unit-tests/clar/test/selftest.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_full
  - read_file
  - execute
  - assert_output
  - read_full
  - read_file
  - execute
  - assert_output
  - test_selftest__help
  - test_selftest__without_arguments
  - test_selftest__specific_test
  - test_selftest__stop_on_failure
  - test_selftest__quiet
  - test_selftest__tap
  - test_selftest__suite_names
  - test_selftest__summary_without_filename
  - test_selftest__summary_with_filename
  - test_selftest__pointer_equal
  - test_selftest__pointer_unequal
  source_file: /src/git/t/unit-tests/clar/test/selftest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/t/unit-tests/clar/test/suites/main.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - file_size
  - test_combined__cleanup
  - test_combined__1
  - test_combined__2
  - test_combined__strings
  - test_combined__strings_with_length
  - test_combined__int
  - test_combined__int_note
  - test_combined__int_fmt
  - test_combined__bool
  - test_combined__multiline_description
  - test_combined__null_string
  - test_combined__failf
  - test_combined__compare_i
  - test_combined__compare_i_with_format
  - test_combined__compare_u
  - test_combined__compare_u_with_format
  source_file: /src/git/t/unit-tests/clar/test/suites/combined.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_pointer__equal
  - test_pointer__unequal
  source_file: /src/git/t/unit-tests/clar/test/suites/pointer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - wcscpy_s
  - wcscat_s
  - fs__dotordotdot
  - fs_rmdir_rmdir
  - translate_path
  - fs_rmdir_helper
  - fs_rm_wait
  - fs_rm
  - fs_copydir_helper
  - fs_copy
  - cl_fs_cleanup
  - basename_r
  - joinpath
  - fs_copydir_helper
  - fs_copyfile_helper
  - fs_copy
  - fs_rmdir_helper
  - fs_rm
  - cl_fs_cleanup
  source_file: /src/git/t/unit-tests/clar/clar/fs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USE_SENDFILE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/t/unit-tests/clar/clar/fs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RM_RETRY_COUNT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/t/unit-tests/clar/clar/fs.h
      type_or_value: '5'
    - item_type: preproc_def
      name: RM_RETRY_DELAY
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/t/unit-tests/clar/clar/fs.h
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fixture_path
  - cl_fixture
  - cl_fixture_sandbox
  - cl_fixture_basename
  - cl_fixture_cleanup
  source_file: /src/git/t/unit-tests/clar/clar/fixtures.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_valid_tmp_path
  - find_tmp_path
  - canonicalize_tmp_path
  - clar_tempdir_shutdown
  - build_tempdir_path
  - clar_tempdir_init
  - append
  - clar_sandbox_create
  - clar_sandbox_cleanup
  - clar_tempdir_path
  - clar_sandbox_path
  source_file: /src/git/t/unit-tests/clar/clar/sandbox.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clar_summary_close_tag
  - clar_summary_testsuites
  - clar_summary_testsuite
  - clar_summary_testcase
  - clar_summary_failure
  - clar_summary_skipped
  - clar_summary_init
  - clar_summary_shutdown
  source_file: /src/git/t/unit-tests/clar/clar/summary.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clar_print_clap_init
  - clar_print_clap_shutdown
  - clar_print_indented
  - clar_print_clap_error
  - clar_print_clap_ontest
  - clar_print_clap_onsuite
  - clar_print_clap_onabort
  - clar_print_tap_init
  - clar_print_tap_shutdown
  - clar_print_tap_error
  - print_escaped
  - clar_print_tap_ontest
  - clar_print_tap_onsuite
  - clar_print_tap_onabort
  - PRINT
  - clar_print_init
  - clar_print_shutdown
  - clar_print_error
  - clar_print_ontest
  - clar_print_onsuite
  - clar_print_onabortv
  - clar_print_onabort
  source_file: /src/git/t/unit-tests/clar/clar/print.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/t/unit-tests/clar/example/main.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_example__simple_assert
  source_file: /src/git/t/unit-tests/clar/example/example.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/git/t/t0200/test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - f
  - g
  source_file: /src/git/t/t7615/theirs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - f
  - g
  source_file: /src/git/t/t7615/base.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - g
  - h
  source_file: /src/git/t/t7615/ours.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cleanup_space
  - get_sane_name
  - parse_bogus_from
  - unquote_comment
  - unquote_quoted_string
  - unquote_quoted_pair
  - handle_from
  - handle_header
  - slurp_attr
  - has_attr_value
  - handle_content_type
  - handle_content_transfer_encoding
  - is_multipart_boundary
  - cleanup_subject
  - cmp_header
  - is_format_patch_separator
  - decode_q_segment
  - decode_b_segment
  - convert_to_utf8
  - decode_header
  - check_header
  - is_inbody_header
  - decode_transfer_encoding
  - patchbreak
  - is_scissors_line
  - flush_inbody_header_accum
  - check_inbody_header
  - handle_commit_msg
  - handle_patch
  - handle_filter
  - is_rfc2822_header
  - read_one_header_line
  - find_boundary
  - handle_boundary
  - handle_filter_flowed
  - handle_body
  - output_header_lines
  - handle_info
  - mailinfo
  - git_mailinfo_config
  - setup_mailinfo
  - clear_mailinfo
  source_file: /src/git/t/t4256/1/mailinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HDR_PARSED
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/git/t/t4256/1/mailinfo.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/git/oss-fuzz/fuzz-date.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/git/oss-fuzz/fuzz-pack-headers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_main
  source_file: /src/git/oss-fuzz/dummy-cmd-main.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/git/oss-fuzz/fuzz-credential-from-url-gently.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/git/oss-fuzz/fuzz-parse-attr-line.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/git/oss-fuzz/fuzz-pack-idx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/git/oss-fuzz/fuzz-commit-graph.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/git/oss-fuzz/fuzz-url-decode-mem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - config_parser_callback
  - LLVMFuzzerTestOneInput
  source_file: /src/git/oss-fuzz/fuzz-config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHECK_DVMASK
  source_file: /src/git/sha1dc/ubc_check.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DVMASKSIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/sha1dc/ubc_check.h
      type_or_value: '1'
    structs:
    - fields:
      - name: dvType
        type: int
      - name: dvK
        type: int
      - name: dvB
        type: int
      - name: testt
        type: int
      - name: maski
        type: int
      - name: maskb
        type: int
      - name: dm[80]
        type: uint32_t
      item_type: struct
      name: dv_info_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/git/sha1dc/ubc_check.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/sha1dc/sha1.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: total
        type: uint64_t
      - name: ihv[5]
        type: uint32_t
      - name: buffer[64]
        type: unsigned char
      - name: found_collision
        type: int
      - name: safe_hash
        type: int
      - name: detect_coll
        type: int
      - name: ubc_check
        type: int
      - name: reduced_round_coll
        type: int
      - name: callback
        type: collision_block_callback
      - name: ihv1[5]
        type: uint32_t
      - name: ihv2[5]
        type: uint32_t
      - name: m1[80]
        type: uint32_t
      - name: m2[80]
        type: uint32_t
      - name: states[80][5]
        type: uint32_t
      item_type: struct
      name: SHA1_CTX
      pos:
        line_end: 54
        line_start: 38
        source_file: /src/git/sha1dc/sha1.h
    typedefs:
    - item_type: typedef
      name: (*sha1_recompression_type)(uint32_t*, uint32_t*, const uint32_t*, const
        uint32_t*)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/git/sha1dc/sha1.h
      type: void
    - item_type: typedef
      name: (*collision_block_callback)(uint64_t, const uint32_t*, const uint32_t*,
        const uint32_t*, const uint32_t*)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/git/sha1dc/sha1.h
      type: void
    union: []
- function_names:
  - rotate_right
  - rotate_left
  - sha1_bswap32
  - sha1_mix
  - sha1_load
  - sha1_load
  - sha1_store
  - sha1_f1
  - sha1_f2
  - sha1_f3
  - sha1_f4
  - HASHCLASH_SHA1COMPRESS_ROUND1_STEP
  - HASHCLASH_SHA1COMPRESS_ROUND2_STEP
  - HASHCLASH_SHA1COMPRESS_ROUND3_STEP
  - HASHCLASH_SHA1COMPRESS_ROUND4_STEP
  - HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW
  - HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW
  - HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW
  - HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW
  - SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
  - SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
  - SHA1COMPRESS_FULL_ROUND2_STEP
  - SHA1COMPRESS_FULL_ROUND3_STEP
  - SHA1COMPRESS_FULL_ROUND4_STEP
  - SHA1_STORE_STATE
  - sha1_compression
  - sha1_compression_W
  - sha1_compression_states
  - SHA1_RECOMPRESS
  - sha1_recompression_step
  - sha1_process
  - SHA1DCInit
  - SHA1DCSetSafeHash
  - SHA1DCSetUseUBC
  - SHA1DCSetUseDetectColl
  - SHA1DCSetDetectReducedRoundCollision
  - SHA1DCSetCallback
  - SHA1DCUpdate
  - SHA1DCFinal
  source_file: /src/git/sha1dc/sha1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA1DC_INIT_SAFE_HASH_DEFAULT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/sha1dc/sha1.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ubc_check
  source_file: /src/git/sha1dc/ubc_check.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rev_list_push
  - clear_marks
  - mark_common
  - get_rev
  - known_common
  - add_tip
  - next
  - ack
  - have_sent
  - release
  - default_negotiator_init
  source_file: /src/git/negotiator/default.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMMON
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/negotiator/default.c
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: COMMON_REF
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/negotiator/default.c
      type_or_value: (1U << 3)
    - item_type: preproc_def
      name: SEEN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/negotiator/default.c
      type_or_value: (1U << 4)
    - item_type: preproc_def
      name: POPPED
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/negotiator/default.c
      type_or_value: (1U << 5)
    structs:
    - fields:
      - name: rev_list
        type: struct prio_queue
      - name: non_common_revs
        type: int
      item_type: struct
      name: negotiation_state
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/git/negotiator/default.c
    typedefs: []
    union: []
- function_names:
  - known_common
  - add_tip
  - next
  - ack
  - have_sent
  - release
  - noop_negotiator_init
  source_file: /src/git/negotiator/noop.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/negotiator/default.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/negotiator/noop.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/negotiator/skipping.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compare
  - rev_list_push
  - clear_marks
  - mark_common
  - push_parent
  - get_rev
  - known_common
  - add_tip
  - next
  - ack
  - have_sent
  - release
  - skipping_negotiator_init
  source_file: /src/git/negotiator/skipping.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMMON
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/negotiator/skipping.c
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: ADVERTISED
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/negotiator/skipping.c
      type_or_value: (1U << 3)
    - item_type: preproc_def
      name: SEEN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/negotiator/skipping.c
      type_or_value: (1U << 4)
    - item_type: preproc_def
      name: POPPED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/negotiator/skipping.c
      type_or_value: (1U << 5)
    structs:
    - fields:
      - name: '*commit'
        type: struct commit
      - name: original_ttl
        type: uint16_t
      - name: ttl
        type: uint16_t
      item_type: struct
      name: entry
      pos:
        line_end: 45
        line_start: 37
        source_file: /src/git/negotiator/skipping.c
    - fields:
      - name: rev_list
        type: struct prio_queue
      - name: non_common_revs
        type: int
      item_type: struct
      name: data
      pos:
        line_end: 54
        line_start: 47
        source_file: /src/git/negotiator/skipping.c
    typedefs: []
    union: []
- function_names:
  - xdl_bogosqrt
  - xdl_emit_diffrec
  - xdl_mmfile_first
  - xdl_mmfile_size
  - xdl_cha_init
  - xdl_cha_free
  - xdl_cha_alloc
  - xdl_guess_lines
  - xdl_blankline
  - ends_with_optional_cr
  - xdl_recmatch
  - xdl_hash_record_with_whitespace
  - REASSOC_FENCE
  - xdl_hash_record_verbatim
  - xdl_hashbits
  - xdl_num_out
  - xdl_format_hunk_hdr
  - xdl_emit_hunk_hdr
  - xdl_fall_back_diff
  - xdl_alloc_grow_helper
  source_file: /src/git/xdiff/xutils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/xdiff/xemit.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*emit_func_t)(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,\n\t\t\t
        \  xdemitconf_t const *xecfg)"
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/xdiff/xemit.h
      type: int
    union: []
- function_names:
  - XDL_MIN
  - XDL_MAX
  - XDL_ABS
  - XDL_ISDIGIT
  - XDL_ISSPACE
  - XDL_ADDBITS
  - XDL_MASKBITS
  - XDL_HASHLONG
  - XDL_LE32_PUT
  - XDL_LE32_GET
  - XDL_ALLOC_ARRAY
  - XDL_CALLOC_ARRAY
  - XDL_ALLOC_GROW
  source_file: /src/git/xdiff/xmacros.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xdl_append_merge
  - xdl_cleanup_merge
  - xdl_merge_cmp_lines
  - xdl_recs_copy_0
  - xdl_recs_copy
  - xdl_orig_copy
  - is_eol_crlf
  - is_cr_needed
  - fill_conflict_hunk
  - xdl_fill_merge_buffer
  - recmatch
  - xdl_refine_zdiff3_conflicts
  - xdl_refine_conflicts
  - line_contains_alnum
  - lines_contain_alnum
  - xdl_merge_two_conflicts
  - xdl_simplify_non_conflicts
  - xdl_do_merge
  - xdl_merge
  source_file: /src/git/xdiff/xmerge.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct s_xdmerge
      - name: mode
        type: int
      - name: i1
        type: long
      - name: chg1
        type: long
      - name: i0
        type: long
      - name: chg0
        type: long
      item_type: struct
      name: s_xdmerge
      pos:
        line_end: 47
        line_start: 24
        source_file: /src/git/xdiff/xmerge.c
    typedefs: []
    union: []
- function_names:
  - LINE_END
  - LINE_END_PTR
  - LINE_MAP
  - NEXT_PTR
  - CNT
  - REC
  - cmp_recs
  - CMP
  - TABLE_HASH
  - scanA
  - try_lcs
  - fall_back_to_classic_diff
  - free_index
  - find_lcs
  - histogram_diff
  - xdl_do_histogram_diff
  source_file: /src/git/xdiff/xhistogram.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PTR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/xdiff/xhistogram.c
      type_or_value: UINT_MAX
    - item_type: preproc_def
      name: MAX_CNT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/xdiff/xhistogram.c
      type_or_value: UINT_MAX
    structs:
    - fields:
      - name: '**records'
        type: "struct record {\n\t\tunsigned int ptr, cnt;\n\t\tstruct record *next;\n\t}"
      - name: rcha
        type: chastore_t
      - name: '*next_ptrs'
        type: unsigned int
      - name: table_bits
        type: unsigned int
      - name: max_chain_length
        type: unsigned int
      - name: cnt
        type: unsigned int
      - name: '*env'
        type: xdfenv_t
      - name: '*xpp'
        type: xpparam_t
      item_type: struct
      name: histindex
      pos:
        line_end: 72
        line_start: 51
        source_file: /src/git/xdiff/xhistogram.c
    - fields:
      - name: ptr
        type: unsigned int
      - name: '*next'
        type: struct record
      item_type: struct
      name: record
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/git/xdiff/xhistogram.c
    - fields:
      - name: begin1
        type: unsigned int
      - name: begin2
        type: unsigned int
      item_type: struct
      name: region
      pos:
        line_end: 77
        line_start: 74
        source_file: /src/git/xdiff/xhistogram.c
    typedefs: []
    union: []
- function_names:
  - xdl_hash_record
  source_file: /src/git/xdiff/xutils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/xdiff/xprepare.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xdl_emit_record
  - saturating_add
  - xdl_get_hunk
  - def_ff
  - match_func_rec
  - is_func_rec
  - get_func_line
  - is_empty_rec
  - xdl_emit_diff
  source_file: /src/git/xdiff/xemit.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: len
        type: long
      - name: buf[80]
        type: char
      item_type: struct
      name: func_line
      pos:
        line_end: 136
        line_start: 133
        source_file: /src/git/xdiff/xemit.c
    typedefs: []
    union: []
- function_names:
  - is_anchor
  - insert_record
  - fill_hashmap
  - binary_search
  - find_longest_common_sequence
  - match
  - walk_common_sequence
  - fall_back_to_classic_diff
  - patience_diff
  - xdl_do_patience_diff
  source_file: /src/git/xdiff/xpatience.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NON_UNIQUE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/xdiff/xpatience.c
      type_or_value: ULONG_MAX
    structs:
    - fields:
      - name: nr
        type: int
      - name: '*entries'
        type: "struct entry {\n\t\tsize_t minimal_perfect_hash;\n\t\t/*\n\t\t * 0
          = unused entry, 1 = first line, 2 = second, etc.\n\t\t * line2 is NON_UNIQUE
          if the line is not unique\n\t\t * in either the first or the second file.\n\t\t
          */\n\t\tunsigned long line1, line2;\n\t\t/*\n\t\t * \"next\" & \"previous\"
          are used for the longest common\n\t\t * sequence;\n\t\t * initially, \"next\"
          reflects only the order in file1.\n\t\t */\n\t\tstruct entry *next, *previous;\n\t}"
      - name: has_matches
        type: unsigned long
      - name: '*env'
        type: xdfenv_t
      - name: '*xpp'
        type: xpparam_t
      item_type: struct
      name: hashmap
      pos:
        line_end: 68
        line_start: 47
        source_file: /src/git/xdiff/xpatience.c
    - fields:
      - name: minimal_perfect_hash
        type: size_t
      - name: line1
        type: unsigned long
      - name: '*next'
        type: struct entry
      item_type: struct
      name: entry
      pos:
        line_end: 63
        line_start: 49
        source_file: /src/git/xdiff/xpatience.c
    typedefs: []
    union: []
- function_names:
  - xdl_init_classifier
  - xdl_free_classifier
  - xdl_classify_record
  - xdl_free_ctx
  - xdl_prepare_ctx
  - xdl_free_env
  - xdl_clean_mmatch
  - xdl_cleanup_records
  - xdl_trim_ends
  - xdl_optimize_ctxs
  - xdl_prepare_env
  source_file: /src/git/xdiff/xprepare.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XDL_KPDIS_RUN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/xdiff/xprepare.c
      type_or_value: '4'
    - item_type: preproc_def
      name: XDL_MAX_EQLIMIT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/xdiff/xprepare.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: XDL_SIMSCAN_WINDOW
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/xdiff/xprepare.c
      type_or_value: '100'
    - item_type: preproc_def
      name: XDL_GUESS_NLINES1
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/xdiff/xprepare.c
      type_or_value: '256'
    - item_type: preproc_def
      name: XDL_GUESS_NLINES2
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/xdiff/xprepare.c
      type_or_value: '20'
    - item_type: preproc_def
      name: DISCARD
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/xdiff/xprepare.c
      type_or_value: '0'
    - item_type: preproc_def
      name: KEEP
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/xdiff/xprepare.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INVESTIGATE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/xdiff/xprepare.c
      type_or_value: '2'
    structs:
    - fields:
      - name: line_hash
        type: uint64_t
      - name: '*next'
        type: struct s_xdlclass
      - name: '*ptr'
        type: uint8_t
      - name: size
        type: size_t
      - name: idx
        type: long
      - name: len1
        type: long
      item_type: struct
      name: s_xdlclass
      pos:
        line_end: 42
        line_start: 35
        source_file: /src/git/xdiff/xprepare.c
    - fields:
      - name: hbits
        type: unsigned int
      - name: hsize
        type: long
      - name: '**rchash'
        type: xdlclass_t
      - name: ncha
        type: chastore_t
      - name: '**rcrecs'
        type: xdlclass_t
      - name: alloc
        type: long
      - name: count
        type: long
      - name: flags
        type: long
      item_type: struct
      name: s_xdlclassifier
      pos:
        line_end: 53
        line_start: 44
        source_file: /src/git/xdiff/xprepare.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/xdiff/xtypes.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct s_chanode
      - name: icurr
        type: long
      item_type: struct
      name: s_chanode
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/git/xdiff/xtypes.h
    - fields:
      - name: '*head'
        type: chanode_t
      - name: isize
        type: long
      - name: '*ancur'
        type: chanode_t
      - name: '*sncur'
        type: chanode_t
      - name: scurr
        type: long
      item_type: struct
      name: s_chastore
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/git/xdiff/xtypes.h
    - fields:
      - name: '*ptr'
        type: uint8_t
      - name: size
        type: size_t
      - name: minimal_perfect_hash
        type: size_t
      item_type: struct
      name: s_xrecord
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/git/xdiff/xtypes.h
    - fields:
      - name: '*recs'
        type: xrecord_t
      - name: nrec
        type: size_t
      - name: dstart
        type: ptrdiff_t
      - name: '*changed'
        type: bool
      - name: '*reference_index'
        type: size_t
      - name: nreff
        type: size_t
      item_type: struct
      name: s_xdfile
      pos:
        line_end: 53
        line_start: 46
        source_file: /src/git/xdiff/xtypes.h
    - fields:
      - name: xdf1
        type: xdfile_t
      item_type: struct
      name: s_xdfenv
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/git/xdiff/xtypes.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/xdiff/xinclude.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/xdiff/xdiffi.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mxcost
        type: long
      - name: snake_cnt
        type: long
      - name: heur_min
        type: long
      item_type: struct
      name: s_xdalgoenv
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/git/xdiff/xdiffi.h
    - fields:
      - name: '*next'
        type: struct s_xdchange
      - name: i1
        type: long
      - name: chg1
        type: long
      - name: ignore
        type: int
      item_type: struct
      name: s_xdchange
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/git/xdiff/xdiffi.h
    typedefs: []
    union: []
- function_names:
  - XDF_DIFF_ALG
  - xdl_malloc
  - xdl_calloc
  - xdl_free
  - xdl_realloc
  source_file: /src/git/xdiff/xdiff.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XDF_NEED_MINIMAL
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: XDF_IGNORE_WHITESPACE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: XDF_IGNORE_WHITESPACE_CHANGE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: XDF_IGNORE_WHITESPACE_AT_EOL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: XDF_IGNORE_CR_AT_EOL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: XDF_WHITESPACE_FLAGS
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: "(XDF_IGNORE_WHITESPACE | \\\n\t\t\t      XDF_IGNORE_WHITESPACE_CHANGE
        | \\\n\t\t\t      XDF_IGNORE_WHITESPACE_AT_EOL | \\\n\t\t\t      XDF_IGNORE_CR_AT_EOL)"
    - item_type: preproc_def
      name: XDF_IGNORE_BLANK_LINES
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: XDF_PATIENCE_DIFF
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: XDF_HISTOGRAM_DIFF
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 15)
    - item_type: preproc_def
      name: XDF_DIFF_ALGORITHM_MASK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (XDF_PATIENCE_DIFF | XDF_HISTOGRAM_DIFF | XDF_NEED_MINIMAL)
    - item_type: preproc_def
      name: XDF_INDENT_HEURISTIC
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 23)
    - item_type: preproc_def
      name: XDL_EMIT_FUNCNAMES
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: XDL_EMIT_NO_HUNK_HDR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: XDL_EMIT_FUNCCONTEXT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: XDL_MERGE_MINIMAL
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XDL_MERGE_EAGER
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XDL_MERGE_ZEALOUS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XDL_MERGE_ZEALOUS_ALNUM
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: '3'
    - item_type: preproc_def
      name: XDL_MERGE_FAVOR_OURS
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XDL_MERGE_FAVOR_THEIRS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XDL_MERGE_FAVOR_UNION
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: '3'
    - item_type: preproc_def
      name: XDL_MERGE_DIFF3
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XDL_MERGE_ZEALOUS_DIFF3
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DEFAULT_CONFLICT_MARKER_SIZE
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/git/xdiff/xdiff.h
      type_or_value: '7'
    structs:
    - fields:
      - name: '*ptr'
        type: char
      - name: size
        type: long
      item_type: struct
      name: s_mmfile
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/git/xdiff/xdiff.h
    - fields:
      - name: '*ptr'
        type: char
      - name: size
        type: long
      item_type: struct
      name: s_mmbuffer
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/git/xdiff/xdiff.h
    - fields:
      - name: flags
        type: unsigned long
      - name: '**ignore_regex'
        type: regex_t
      - name: ignore_regex_nr
        type: size_t
      - name: '**anchors'
        type: char
      - name: anchors_nr
        type: size_t
      item_type: struct
      name: s_xpparam
      pos:
        line_end: 90
        line_start: 80
        source_file: /src/git/xdiff/xdiff.h
    - fields:
      - name: '*priv'
        type: void
      - name: "(*out_hunk)(void *,\n\t\t\tlong old_begin, long old_nr,\n\t\t\tlong
          new_begin, long new_nr,\n\t\t\tconst char *func, long funclen)"
        type: int
      - name: (*out_line)(void *, mmbuffer_t *, int)
        type: int
      item_type: struct
      name: s_xdemitcb
      pos:
        line_end: 99
        line_start: 92
        source_file: /src/git/xdiff/xdiff.h
    - fields:
      - name: ctxlen
        type: long
      - name: interhunkctxlen
        type: long
      - name: flags
        type: unsigned long
      - name: find_func
        type: find_func_t
      - name: '*find_func_priv'
        type: void
      - name: hunk_func
        type: xdl_emit_hunk_consume_func_t
      item_type: struct
      name: s_xdemitconf
      pos:
        line_end: 114
        line_start: 107
        source_file: /src/git/xdiff/xdiff.h
    - fields:
      - name: bsize
        type: long
      item_type: struct
      name: s_bdiffparam
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/git/xdiff/xdiff.h
    - fields:
      - name: xpp
        type: xpparam_t
      - name: marker_size
        type: int
      - name: level
        type: int
      - name: favor
        type: int
      - name: style
        type: int
      - name: '*ancestor'
        type: char
      - name: '*file1'
        type: char
      - name: '*file2'
        type: char
      item_type: struct
      name: s_xmparam
      pos:
        line_end: 141
        line_start: 132
        source_file: /src/git/xdiff/xdiff.h
    typedefs:
    - item_type: typedef
      name: (*find_func_t)(const char *line, long line_len, char *buffer, long buffer_size,
        void *priv)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/git/xdiff/xdiff.h
      type: long
    - item_type: typedef
      name: "(*xdl_emit_hunk_consume_func_t)(long start_a, long count_a,\n\t\t\t\t\t
        \   long start_b, long count_b,\n\t\t\t\t\t    void *cb_data)"
      pos:
        line_end: 105
        line_start: 103
        source_file: /src/git/xdiff/xdiff.h
      type: int
    union: []
- function_names:
  - get_hash
  - xdl_split
  - xdl_recs_cmp
  - xdl_do_diff
  - xdl_add_change
  - recs_match
  - get_indent
  - measure_split
  - score_add_split
  - score_cmp
  - group_init
  - group_next
  - group_previous
  - group_slide_down
  - group_slide_up
  - xdl_change_compact
  - xdl_build_script
  - xdl_free_script
  - xdl_mark_ignorable_lines
  - record_matches_regex
  - xdl_mark_ignorable_regex
  - xdl_diff
  source_file: /src/git/xdiff/xdiffi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XDL_MAX_COST_MIN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '256'
    - item_type: preproc_def
      name: XDL_HEUR_MIN_COST
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '256'
    - item_type: preproc_def
      name: XDL_LINE_MAX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: (long)((1UL << (CHAR_BIT * sizeof(long) - 1)) - 1)
    - item_type: preproc_def
      name: XDL_SNAKE_CNT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '20'
    - item_type: preproc_def
      name: XDL_K_HEUR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_INDENT
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '200'
    - item_type: preproc_def
      name: MAX_BLANKS
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '20'
    - item_type: preproc_def
      name: START_OF_FILE_PENALTY
      pos:
        line_end: 534
        line_start: 533
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '1'
    - item_type: preproc_def
      name: END_OF_FILE_PENALTY
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '21'
    - item_type: preproc_def
      name: TOTAL_BLANK_WEIGHT
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: (-30)
    - item_type: preproc_def
      name: POST_BLANK_WEIGHT
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '6'
    - item_type: preproc_def
      name: RELATIVE_INDENT_PENALTY
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: (-4)
    - item_type: preproc_def
      name: RELATIVE_INDENT_WITH_BLANK_PENALTY
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '10'
    - item_type: preproc_def
      name: RELATIVE_OUTDENT_PENALTY
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '24'
    - item_type: preproc_def
      name: RELATIVE_OUTDENT_WITH_BLANK_PENALTY
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '17'
    - item_type: preproc_def
      name: RELATIVE_DEDENT_PENALTY
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '23'
    - item_type: preproc_def
      name: RELATIVE_DEDENT_WITH_BLANK_PENALTY
      pos:
        line_end: 563
        line_start: 562
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '17'
    - item_type: preproc_def
      name: INDENT_WEIGHT
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '60'
    - item_type: preproc_def
      name: INDENT_HEURISTIC_MAX_SLIDING
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/git/xdiff/xdiffi.c
      type_or_value: '100'
    structs:
    - fields:
      - name: i1
        type: long
      - name: min_lo
        type: int
      item_type: struct
      name: s_xdpsplit
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/git/xdiff/xdiffi.c
    - fields:
      - name: end_of_file
        type: int
      - name: indent
        type: int
      - name: pre_blank
        type: int
      - name: pre_indent
        type: int
      - name: post_blank
        type: int
      - name: post_indent
        type: int
      item_type: struct
      name: split_measurement
      pos:
        line_end: 467
        line_start: 434
        source_file: /src/git/xdiff/xdiffi.c
    - fields:
      - name: effective_indent
        type: int
      - name: penalty
        type: int
      item_type: struct
      name: split_score
      pos:
        line_end: 475
        line_start: 469
        source_file: /src/git/xdiff/xdiffi.c
    - fields:
      - name: start
        type: long
      - name: end
        type: long
      item_type: struct
      name: xdlgroup
      pos:
        line_end: 701
        line_start: 689
        source_file: /src/git/xdiff/xdiffi.c
    typedefs: []
    union: []
- function_names:
  - openssl_SHA1_Init
  - openssl_SHA1_Update
  - openssl_SHA1_Final
  - openssl_SHA1_Clone
  source_file: /src/git/sha1/openssl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: platform_SHA_CTX
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/sha1/openssl.h
      type_or_value: openssl_SHA1_CTX
    - item_type: preproc_def
      name: platform_SHA1_Init
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/sha1/openssl.h
      type_or_value: openssl_SHA1_Init
    - item_type: preproc_def
      name: platform_SHA1_Clone
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/sha1/openssl.h
      type_or_value: openssl_SHA1_Clone
    - item_type: preproc_def
      name: platform_SHA1_Update
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/sha1/openssl.h
      type_or_value: openssl_SHA1_Update
    - item_type: preproc_def
      name: platform_SHA1_Final
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/sha1/openssl.h
      type_or_value: openssl_SHA1_Final
    structs:
    - fields:
      - name: '*ectx'
        type: EVP_MD_CTX
      item_type: struct
      name: openssl_SHA1_CTX
      pos:
        line_end: 7
        line_start: 5
        source_file: /src/git/sha1/openssl.h
    typedefs:
    - item_type: typedef
      name: openssl_SHA1_CTX
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/git/sha1/openssl.h
      type: openssl_SHA1_CTX
    union: []
- function_names:
  - block_source_release_data
  - block_source_close
  - block_source_read_data
  - block_source_size
  - reftable_buf_release_data
  - reftable_buf_close
  - reftable_buf_read_data
  - reftable_buf_size
  - block_source_from_buf
  - file_size
  - file_release_data
  - file_close
  - file_read_data
  - reftable_block_source_from_file
  source_file: /src/git/reftable/blocksource.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mmap
        type: struct reftable_mmap
      item_type: struct
      name: file_block_source
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/git/reftable/blocksource.c
    typedefs: []
    union: []
- function_names:
  - iterator_seek
  - iterator_next
  - empty_iterator_seek
  - empty_iterator_next
  - empty_iterator_close
  - iterator_set_empty
  - filtering_ref_iterator_close
  - filtering_ref_iterator_seek
  - filtering_ref_iterator_next
  - iterator_from_filtering_ref_iterator
  - indexed_table_ref_iter_close
  - indexed_table_ref_iter_next_block
  - indexed_table_ref_iter_seek
  - indexed_table_ref_iter_next
  - indexed_table_ref_iter_new
  - iterator_from_indexed_table_ref_iter
  - reftable_iterator_destroy
  - reftable_iterator_seek_ref
  - reftable_iterator_next_ref
  - reftable_iterator_seek_log_at
  - reftable_iterator_seek_log
  - reftable_iterator_next_log
  source_file: /src/git/reftable/iter.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-error.h
  types:
    enum:
    - enumerators:
      - name: REFTABLE_IO_ERROR
        value: '-2'
      - name: REFTABLE_FORMAT_ERROR
        value: '-3'
      - name: REFTABLE_API_ERROR
        value: '-6'
      - name: REFTABLE_NOT_EXIST_ERROR
        value: '-4'
      - name: REFTABLE_LOCK_ERROR
        value: '-5'
      - name: REFTABLE_ZLIB_ERROR
        value: '-7'
      - name: REFTABLE_EMPTY_TABLE_ERROR
        value: '-8'
      - name: REFTABLE_REFNAME_ERROR
        value: '-10'
      - name: REFTABLE_ENTRY_TOO_BIG_ERROR
        value: '-11'
      - name: REFTABLE_OUTDATED_ERROR
        value: '-12'
      - name: REFTABLE_OUT_OF_MEMORY_ERROR
        value: '-13'
      item_type: enum
      name: reftable_error
      pos:
        line_end: 65
        line_start: 17
        source_file: /src/git/reftable/reftable-error.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - string_view_consume
  - reftable_record_type
  source_file: /src/git/reftable/record.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*buf'
        type: uint8_t
      - name: len
        type: size_t
      item_type: struct
      name: string_view
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/git/reftable/record.h
    - fields:
      - name: (*key)(const void *rec, struct reftable_buf *dest)
        type: int
      - name: type
        type: uint8_t
      - name: (*copy_from)(void *dest, const void *src, uint32_t hash_size)
        type: int
      - name: (*val_type)(const void *rec)
        type: uint8_t
      - name: (*encode)(const void *rec, struct string_view dest, uint32_t hash_size)
        type: int
      - name: "(*decode)(void *rec, struct reftable_buf key, uint8_t extra,\n\t\t
          \     struct string_view src, uint32_t hash_size,\n\t\t      struct reftable_buf
          *scratch)"
        type: int
      - name: (*release)(void *rec)
        type: void
      - name: (*is_deletion)(const void *rec)
        type: int
      - name: (*equal)(const void *a, const void *b, uint32_t hash_size)
        type: int
      - name: (*cmp)(const void *a, const void *b)
        type: int
      item_type: struct
      name: reftable_record_vtable
      pos:
        line_end: 77
        line_start: 42
        source_file: /src/git/reftable/record.h
    - fields:
      - name: offset
        type: uint64_t
      - name: last_key
        type: struct reftable_buf
      item_type: struct
      name: reftable_index_record
      pos:
        line_end: 105
        line_start: 102
        source_file: /src/git/reftable/record.h
    - fields:
      - name: '*hash_prefix'
        type: uint8_t
      - name: hash_prefix_len
        type: int
      - name: '*offsets'
        type: uint64_t
      - name: offset_len
        type: int
      item_type: struct
      name: reftable_obj_record
      pos:
        line_end: 114
        line_start: 108
        source_file: /src/git/reftable/record.h
    - fields:
      - name: type
        type: uint8_t
      - name: u
        type: "union {\n\t\tstruct reftable_ref_record ref;\n\t\tstruct reftable_log_record
          log;\n\t\tstruct reftable_obj_record obj;\n\t\tstruct reftable_index_record
          idx;\n\t}"
      item_type: struct
      name: reftable_record
      pos:
        line_end: 130
        line_start: 122
        source_file: /src/git/reftable/record.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-blocksource.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ops'
        type: struct reftable_block_source_vtable
      - name: '*arg'
        type: void
      item_type: struct
      name: reftable_block_source
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/git/reftable/reftable-blocksource.h
    - fields:
      - name: '*data'
        type: uint8_t
      - name: len
        type: size_t
      - name: source
        type: struct reftable_block_source
      item_type: struct
      name: reftable_block_data
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/git/reftable/reftable-blocksource.h
    - fields:
      - name: (*size)(void *source)
        type: uint64_t
      - name: "(*read_data)(void *source, struct reftable_block_data *dest,\n\t\t\tuint64_t
          off, uint32_t size)"
        type: ssize_t
      - name: (*release_data)(void *source, struct reftable_block_data *data)
        type: void
      - name: (*close)(void *source)
        type: void
      item_type: struct
      name: reftable_block_source_vtable
      pos:
        line_end: 46
        line_start: 30
        source_file: /src/git/reftable/reftable-blocksource.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/writer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*write)(void *, const void *, size_t)
        type: ssize_t
      - name: (*flush)(void *)
        type: int
      - name: '*write_arg'
        type: void
      - name: pending_padding
        type: int
      - name: last_key
        type: struct reftable_buf
      - name: scratch
        type: struct reftable_buf
      - name: next
        type: uint64_t
      - name: min_update_index
        type: uint64_t
      - name: opts
        type: struct reftable_write_options
      - name: '*block'
        type: uint8_t
      - name: '*block_writer'
        type: struct block_writer
      - name: block_writer_data
        type: struct block_writer
      - name: '*index'
        type: struct reftable_index_record
      - name: index_len
        type: size_t
      - name: index_cap
        type: size_t
      - name: '*obj_index_tree'
        type: struct tree_node
      - name: stats
        type: struct reftable_stats
      item_type: struct
      name: reftable_writer
      pos:
        line_end: 50
        line_start: 16
        source_file: /src/git/reftable/writer.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-merged.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/merged.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**tables'
        type: struct reftable_table
      - name: tables_len
        type: size_t
      - name: hash_id
        type: enum reftable_hash
      - name: suppress_deletions
        type: int
      - name: min
        type: uint64_t
      - name: max
        type: uint64_t
      item_type: struct
      name: reftable_merged_table
      pos:
        line_end: 25
        line_start: 14
        source_file: /src/git/reftable/merged.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-table.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: is_present
        type: int
      - name: offset
        type: uint64_t
      - name: index_offset
        type: uint64_t
      item_type: struct
      name: reftable_table_offsets
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/git/reftable/reftable-table.h
    - fields:
      - name: '*name'
        type: char
      - name: source
        type: struct reftable_block_source
      - name: size
        type: uint64_t
      - name: hash_id
        type: enum reftable_hash
      - name: block_size
        type: uint32_t
      - name: min_update_index
        type: uint64_t
      - name: max_update_index
        type: uint64_t
      - name: object_id_len
        type: int
      - name: version
        type: int
      - name: ref_offsets
        type: struct reftable_table_offsets
      - name: obj_offsets
        type: struct reftable_table_offsets
      - name: log_offsets
        type: struct reftable_table_offsets
      - name: refcount
        type: uint64_t
      item_type: struct
      name: reftable_table
      pos:
        line_end: 55
        line_start: 32
        source_file: /src/git/reftable/reftable-table.h
    - fields:
      - name: '*iter_arg'
        type: void
      item_type: struct
      name: reftable_table_iterator
      pos:
        line_end: 105
        line_start: 103
        source_file: /src/git/reftable/reftable-table.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-iterator.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ops'
        type: struct reftable_iterator_vtable
      - name: '*iter_arg'
        type: void
      item_type: struct
      name: reftable_iterator
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/git/reftable/reftable-iterator.h
    typedefs: []
    union: []
- function_names:
  - reftable_rand
  - tmpfile_from_pattern
  - tmpfile_close
  - tmpfile_delete
  - tmpfile_rename
  - flock_acquire
  - flock_close
  - flock_release
  - flock_commit
  - reftable_fsync
  - reftable_time_ms
  - reftable_mmap
  - reftable_munmap
  source_file: /src/git/reftable/system.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-stack.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: time
        type: uint64_t
      - name: min_update_index
        type: uint64_t
      item_type: struct
      name: reftable_log_expiry_config
      pos:
        line_end: 119
        line_start: 113
        source_file: /src/git/reftable/reftable-stack.h
    - fields:
      - name: bytes
        type: uint64_t
      - name: entries_written
        type: uint64_t
      - name: attempts
        type: int
      - name: failures
        type: int
      item_type: struct
      name: reftable_compaction_stats
      pos:
        line_end: 160
        line_start: 154
        source_file: /src/git/reftable/reftable-stack.h
    typedefs: []
    union: []
- function_names:
  - reftable_error_str
  source_file: /src/git/reftable/error.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/blocksource.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-writer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: unpadded
        type: unsigned
      - name: block_size
        type: uint32_t
      - name: skip_index_objects
        type: unsigned
      - name: restart_interval
        type: uint16_t
      - name: hash_id
        type: enum reftable_hash
      - name: default_permissions
        type: unsigned int
      - name: exact_log_message
        type: unsigned
      - name: disable_auto_compact
        type: unsigned
      - name: auto_compaction_factor
        type: uint8_t
      - name: lock_timeout_ms
        type: long
      - name: (*on_reload)(void *payload)
        type: void
      - name: '*on_reload_payload'
        type: void
      item_type: struct
      name: reftable_write_options
      pos:
        line_end: 71
        line_start: 17
        source_file: /src/git/reftable/reftable-writer.h
    - fields:
      - name: entries
        type: int
      - name: restarts
        type: uint32_t
      - name: blocks
        type: int
      - name: index_blocks
        type: int
      - name: max_index_level
        type: int
      - name: offset
        type: uint64_t
      - name: index_offset
        type: uint64_t
      item_type: struct
      name: reftable_block_stats
      pos:
        line_end: 91
        line_start: 74
        source_file: /src/git/reftable/reftable-writer.h
    - fields:
      - name: blocks
        type: int
      - name: ref_stats
        type: struct reftable_block_stats
      - name: obj_stats
        type: struct reftable_block_stats
      - name: idx_stats
        type: struct reftable_block_stats
      - name: log_stats
        type: struct reftable_block_stats
      - name: object_id_len
        type: int
      item_type: struct
      name: reftable_stats
      pos:
        line_end: 108
        line_start: 94
        source_file: /src/git/reftable/reftable-writer.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-record.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*refname'
        type: char
      - name: refname_cap
        type: size_t
      - name: update_index
        type: uint64_t
      - name: value_type
        type: "enum {\n\t\t/* tombstone to hide deletions from earlier tables */\n\t\tREFTABLE_REF_DELETION
          = 0x0,\n\n\t\t/* a simple ref */\n\t\tREFTABLE_REF_VAL1 = 0x1,\n\t\t/* a
          tag, plus its peeled hash */\n\t\tREFTABLE_REF_VAL2 = 0x2,\n\n\t\t/* a symbolic
          reference */\n\t\tREFTABLE_REF_SYMREF = 0x3,\n#define REFTABLE_NR_REF_VALUETYPES
          4\n\t}"
      - name: value
        type: "union {\n\t\tunsigned char val1[REFTABLE_HASH_SIZE_MAX];\n\t\tstruct
          {\n\t\t\tunsigned char value[REFTABLE_HASH_SIZE_MAX]; /* first hash  */\n\t\t\tunsigned
          char target_value[REFTABLE_HASH_SIZE_MAX]; /* second hash */\n\t\t} val2;\n\t\tchar
          *symref; /* referent, malloced 0-terminated string */\n\t}"
      item_type: struct
      name: reftable_ref_record
      pos:
        line_end: 49
        line_start: 22
        source_file: /src/git/reftable/reftable-record.h
    - fields:
      - name: '*refname'
        type: char
      - name: refname_cap
        type: size_t
      - name: update_index
        type: uint64_t
      - name: value_type
        type: "enum {\n\t\t/* tombstone to hide deletions from earlier tables */\n\t\tREFTABLE_LOG_DELETION
          = 0x0,\n\n\t\t/* a simple update */\n\t\tREFTABLE_LOG_UPDATE = 0x1,\n#define
          REFTABLE_NR_LOG_VALUETYPES 2\n\t}"
      - name: value
        type: "union {\n\t\tstruct {\n\t\t\tunsigned char new_hash[REFTABLE_HASH_SIZE_MAX];\n\t\t\tunsigned
          char old_hash[REFTABLE_HASH_SIZE_MAX];\n\t\t\tchar *name;\n\t\t\tchar *email;\n\t\t\tuint64_t
          time;\n\t\t\tint16_t tz_offset;\n\t\t\tchar *message;\n\t\t\tsize_t message_cap;\n\t\t}
          update;\n\t}"
      item_type: struct
      name: reftable_log_record
      pos:
        line_end: 97
        line_start: 70
        source_file: /src/git/reftable/reftable-record.h
    typedefs: []
    union: []
- function_names:
  - writer_reftable_block_stats
  - padded_write
  - options_set_defaults
  - writer_version
  - writer_write_header
  - writer_reinit_block_writer
  - reftable_writer_new
  - reftable_writer_set_limits
  - writer_release
  - reftable_writer_free
  - obj_index_tree_node_compare
  - writer_index_hash
  - writer_add_record
  - reftable_writer_add_ref
  - reftable_writer_add_refs
  - reftable_writer_add_log_verbatim
  - reftable_writer_add_log
  - reftable_writer_add_logs
  - writer_finish_section
  - update_common
  - write_object_record
  - object_record_free
  - writer_dump_object_index
  - writer_finish_public_section
  - reftable_writer_close
  - writer_clear_index
  - writer_flush_nonempty_block
  - writer_flush_block
  - reftable_writer_stats
  source_file: /src/git/reftable/writer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OBJ_INDEX_TREE_NODE_INIT
      pos:
        line_end: 233
        line_start: 229
        source_file: /src/git/reftable/writer.c
      type_or_value: "{                           \\\n\t\t.hash = REFTABLE_BUF_INIT
        \\\n\t}"
    structs:
    - fields:
      - name: hash
        type: struct reftable_buf
      - name: '*offsets'
        type: uint64_t
      - name: offset_len
        type: size_t
      - name: offset_cap
        type: size_t
      item_type: struct
      name: obj_index_tree_node
      pos:
        line_end: 227
        line_start: 222
        source_file: /src/git/reftable/writer.c
    - fields:
      - name: '*last'
        type: struct reftable_buf
      - name: max
        type: size_t
      item_type: struct
      name: common_prefix_arg
      pos:
        line_end: 594
        line_start: 591
        source_file: /src/git/reftable/writer.c
    - fields:
      - name: '*w'
        type: struct reftable_writer
      - name: err
        type: int
      item_type: struct
      name: write_record_arg
      pos:
        line_end: 611
        line_start: 608
        source_file: /src/git/reftable/writer.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/system.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REFTABLE_TMPFILE_INIT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/reftable/system.h
      type_or_value: ((struct reftable_tmpfile) { .fd = -1, })
    - item_type: preproc_def
      name: REFTABLE_FLOCK_INIT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/git/reftable/system.h
      type_or_value: ((struct reftable_flock){ .fd = -1, })
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: fd
        type: int
      - name: '*priv'
        type: void
      item_type: struct
      name: reftable_tmpfile
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/git/reftable/system.h
    - fields:
      - name: '*path'
        type: char
      - name: fd
        type: int
      - name: '*priv'
        type: void
      item_type: struct
      name: reftable_flock
      pos:
        line_end: 77
        line_start: 73
        source_file: /src/git/reftable/system.h
    - fields:
      - name: '*data'
        type: void
      - name: size
        type: size_t
      - name: '*priv'
        type: void
      item_type: struct
      name: reftable_mmap
      pos:
        line_end: 120
        line_start: 116
        source_file: /src/git/reftable/system.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/table.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/stack.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list_st
        type: struct stat
      - name: '*list_file'
        type: char
      - name: list_fd
        type: int
      - name: '*reftable_dir'
        type: char
      - name: opts
        type: struct reftable_write_options
      - name: '**tables'
        type: struct reftable_table
      - name: tables_len
        type: size_t
      - name: '*merged'
        type: struct reftable_merged_table
      - name: stats
        type: struct reftable_compaction_stats
      item_type: struct
      name: reftable_stack
      pos:
        line_end: 28
        line_start: 15
        source_file: /src/git/reftable/stack.h
    - fields:
      - name: start
        type: size_t
      - name: bytes
        type: uint64_t
      item_type: struct
      name: segment
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/git/reftable/stack.h
    typedefs: []
    union: []
- function_names:
  - merged_iter_close
  - merged_iter_advance_subiter
  - merged_iter_seek
  - merged_iter_next_entry
  - merged_iter_seek_void
  - merged_iter_next_void
  - iterator_from_merged_iter
  - reftable_merged_table_new
  - reftable_merged_table_free
  - reftable_merged_table_max_update_index
  - reftable_merged_table_min_update_index
  - merged_table_init_iter
  - reftable_merged_table_init_ref_iterator
  - reftable_merged_table_init_log_iterator
  - reftable_merged_table_hash_id
  source_file: /src/git/reftable/merged.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: iter
        type: struct reftable_iterator
      - name: rec
        type: struct reftable_record
      item_type: struct
      name: merged_subiter
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/git/reftable/merged.c
    - fields:
      - name: '*subiters'
        type: struct merged_subiter
      - name: pq
        type: struct merged_iter_pqueue
      - name: subiters_len
        type: size_t
      - name: suppress_deletions
        type: int
      - name: advance_index
        type: ssize_t
      item_type: struct
      name: merged_iter
      pos:
        line_end: 30
        line_start: 24
        source_file: /src/git/reftable/merged.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/iter.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FILTERING_REF_ITERATOR_INIT
      pos:
        line_end: 53
        line_start: 49
        source_file: /src/git/reftable/iter.h
      type_or_value: "{                           \\\n\t\t.oid = REFTABLE_BUF_INIT
        \ \\\n\t}"
    - item_type: preproc_def
      name: INDEXED_TABLE_REF_ITER_INIT
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/git/reftable/iter.h
      type_or_value: "{ \\\n\t.cur = BLOCK_ITER_INIT, \\\n\t.oid = REFTABLE_BUF_INIT,
        \\\n}"
    structs:
    - fields:
      - name: (*seek)(void *iter_arg, struct reftable_record *want)
        type: int
      - name: (*next)(void *iter_arg, struct reftable_record *rec)
        type: int
      - name: (*close)(void *iter_arg)
        type: void
      item_type: struct
      name: reftable_iterator_vtable
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/git/reftable/iter.h
    - fields:
      - name: oid
        type: struct reftable_buf
      - name: it
        type: struct reftable_iterator
      item_type: struct
      name: filtering_ref_iterator
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/git/reftable/iter.h
    - fields:
      - name: '*table'
        type: struct reftable_table
      - name: oid
        type: struct reftable_buf
      - name: '*offsets'
        type: uint64_t
      - name: offset_idx
        type: int
      - name: offset_len
        type: int
      - name: block
        type: struct reftable_block
      - name: cur
        type: struct block_iter
      - name: is_finished
        type: int
      item_type: struct
      name: indexed_table_ref_iter
      pos:
        line_end: 73
        line_start: 60
        source_file: /src/git/reftable/iter.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-constants.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REFTABLE_BLOCK_TYPE_LOG
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/reftable/reftable-constants.h
      type_or_value: '''g'''
    - item_type: preproc_def
      name: REFTABLE_BLOCK_TYPE_INDEX
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/reftable/reftable-constants.h
      type_or_value: '''i'''
    - item_type: preproc_def
      name: REFTABLE_BLOCK_TYPE_REF
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/reftable/reftable-constants.h
      type_or_value: '''r'''
    - item_type: preproc_def
      name: REFTABLE_BLOCK_TYPE_OBJ
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/reftable/reftable-constants.h
      type_or_value: '''o'''
    - item_type: preproc_def
      name: REFTABLE_BLOCK_TYPE_ANY
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/reftable/reftable-constants.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pq_less
  - merged_iter_pqueue_remove
  - merged_iter_pqueue_add
  - merged_iter_pqueue_release
  source_file: /src/git/reftable/pq.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-basics.h
  types:
    enum:
    - enumerators:
      - name: REFTABLE_HASH_SHA1
        value: '89'
      - name: REFTABLE_HASH_SHA256
        value: '247'
      item_type: enum
      name: reftable_hash
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/git/reftable/reftable-basics.h
    preproc_defs:
    - item_type: preproc_def
      name: REFTABLE_BUF_INIT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/reftable/reftable-basics.h
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: REFTABLE_HASH_SIZE_SHA1
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/reftable/reftable-basics.h
      type_or_value: '20'
    - item_type: preproc_def
      name: REFTABLE_HASH_SIZE_SHA256
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/reftable/reftable-basics.h
      type_or_value: '32'
    - item_type: preproc_def
      name: REFTABLE_HASH_SIZE_MAX
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/reftable/reftable-basics.h
      type_or_value: REFTABLE_HASH_SIZE_SHA256
    structs:
    - fields:
      - name: alloc
        type: size_t
      - name: len
        type: size_t
      - name: '*buf'
        type: char
      item_type: struct
      name: reftable_buf
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/git/reftable/reftable-basics.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-fsck.h
  types:
    enum:
    - enumerators:
      - name: REFTABLE_FSCK_ERROR_TABLE_NAME
        value: '0'
      - name: REFTABLE_FSCK_MAX_VALUE
      item_type: enum
      name: reftable_fsck_error
      pos:
        line_end: 11
        line_start: 6
        source_file: /src/git/reftable/reftable-fsck.h
    preproc_defs: []
    structs:
    - fields:
      - name: error
        type: enum reftable_fsck_error
      - name: '*msg'
        type: char
      - name: '*path'
        type: char
      item_type: struct
      name: reftable_fsck_info
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/git/reftable/reftable-fsck.h
    typedefs:
    - item_type: typedef
      name: "reftable_fsck_report_fn(struct reftable_fsck_info *info,\n\t\t\t\t    void
        *cb_data)"
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/reftable/reftable-fsck.h
      type: int
    - item_type: typedef
      name: reftable_fsck_verbose_fn(const char *msg, void *cb_data)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/git/reftable/reftable-fsck.h
      type: void
    union: []
- function_names:
  - merged_iter_pqueue_top
  - merged_iter_pqueue_is_empty
  source_file: /src/git/reftable/pq.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: index
        type: size_t
      - name: '*rec'
        type: struct reftable_record
      item_type: struct
      name: pq_entry
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/git/reftable/pq.h
    - fields:
      - name: '*heap'
        type: struct pq_entry
      - name: len
        type: size_t
      - name: cap
        type: size_t
      item_type: struct
      name: merged_iter_pqueue
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/git/reftable/pq.h
    typedefs: []
    union: []
- function_names:
  - table_offsets_for
  - reftable_table_hash_id
  - reftable_table_name
  - parse_footer
  - table_iter_init
  - table_iter_next_in_block
  - table_iter_block_done
  - table_init_block
  - table_iter_close
  - table_iter_next_block
  - table_iter_next
  - table_iter_seek_to
  - table_iter_seek_start
  - table_iter_seek_linear
  - table_iter_seek_indexed
  - table_iter_seek
  - table_iter_seek_void
  - table_iter_next_void
  - table_iter_close_void
  - iterator_from_table_iter
  - table_init_iter
  - reftable_table_init_ref_iterator
  - reftable_table_init_log_iterator
  - reftable_table_new
  - reftable_table_incref
  - reftable_table_decref
  - reftable_table_refs_for_indexed
  - reftable_table_refs_for_unindexed
  - reftable_table_refs_for
  - reftable_table_max_update_index
  - reftable_table_min_update_index
  - reftable_table_iterator_init
  - reftable_table_iterator_release
  - reftable_table_iterator_next
  source_file: /src/git/reftable/table.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*table'
        type: struct reftable_table
      - name: typ
        type: uint8_t
      - name: block_off
        type: uint64_t
      - name: block
        type: struct reftable_block
      - name: bi
        type: struct block_iter
      - name: is_finished
        type: int
      item_type: struct
      name: table_iter
      pos:
        line_end: 136
        line_start: 129
        source_file: /src/git/reftable/table.c
    typedefs: []
    union: []
- function_names:
  - header_size
  - footer_size
  - block_writer_register_restart
  - block_writer_init
  - block_writer_type
  - block_writer_add
  - block_writer_finish
  - read_block
  - reftable_block_init
  - reftable_block_release
  - reftable_block_type
  - reftable_block_first_key
  - block_restart_offset
  - block_iter_init
  - block_iter_seek_start
  - restart_needle_less
  - block_iter_next
  - block_iter_reset
  - block_iter_close
  - block_iter_seek_key
  - block_iter_seek_void
  - block_iter_next_void
  - block_iter_close_void
  - reftable_block_init_iterator
  - block_writer_release
  source_file: /src/git/reftable/block.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: error
        type: int
      - name: needle
        type: struct reftable_buf
      - name: '*block'
        type: struct reftable_block
      item_type: struct
      name: restart_needle_less_args
      pos:
        line_end: 406
        line_start: 402
        source_file: /src/git/reftable/block.c
    typedefs: []
    union: []
- function_names:
  - fsync
  source_file: /src/git/reftable/reftable-system.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/reftable-block.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: header_off
        type: uint32_t
      - name: block_data
        type: struct reftable_block_data
      - name: hash_size
        type: uint32_t
      - name: '*zstream'
        type: struct z_stream_s
      - name: '*uncompressed_data'
        type: unsigned char
      - name: uncompressed_cap
        type: size_t
      - name: restart_count
        type: uint16_t
      - name: restart_off
        type: uint32_t
      - name: full_block_size
        type: uint32_t
      - name: block_type
        type: uint8_t
      item_type: struct
      name: reftable_block
      pos:
        line_end: 51
        line_start: 22
        source_file: /src/git/reftable/reftable-block.h
    typedefs: []
    union: []
- function_names:
  - stack_filename
  - reftable_write_data
  - fd_writer_write
  - fd_writer_flush
  - fd_read_lines
  - read_lines
  - reftable_stack_init_ref_iterator
  - reftable_stack_init_log_iterator
  - reftable_stack_merged_table
  - has_name
  - reftable_stack_destroy
  - stack_copy_tables
  - reftable_stack_reload_once
  - reftable_stack_reload_maybe_reuse
  - reftable_new_stack
  - stack_uptodate
  - reftable_stack_reload
  - reftable_addition_close
  - reftable_stack_init_addition
  - stack_try_add
  - reftable_stack_add
  - format_name
  - reftable_addition_destroy
  - reftable_addition_commit
  - reftable_stack_new_addition
  - reftable_addition_add
  - reftable_stack_next_update_index
  - stack_write_compact
  - stack_compact_locked
  - stack_compact_range
  - reftable_stack_compact_all
  - segment_size
  - suggest_compaction_segment
  - stack_segments_for_compaction
  - update_segment_if_compaction_required
  - reftable_stack_compaction_required
  - reftable_stack_auto_compact
  - reftable_stack_compaction_stats
  - reftable_stack_read_ref
  - reftable_stack_read_log
  - is_table_name
  - remove_maybe_stale_table
  - reftable_stack_clean_locked
  - reftable_stack_clean
  - reftable_stack_hash_id
  source_file: /src/git/reftable/stack.c
  types:
    enum:
    - enumerators:
      - name: STACK_COMPACT_RANGE_BEST_EFFORT
        value: (1 << 0)
      item_type: enum
      name: stack_compact_range_flags
      pos:
        line_end: 1138
        line_start: 1131
        source_file: /src/git/reftable/stack.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*opts'
        type: struct reftable_write_options
      - name: fd
        type: int
      item_type: struct
      name: fd_writer
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/git/reftable/stack.c
    - fields:
      - name: tables_list_lock
        type: struct reftable_flock
      - name: '*stack'
        type: struct reftable_stack
      - name: '**new_tables'
        type: char
      - name: new_tables_len
        type: size_t
      - name: next_update_index
        type: uint64_t
      item_type: struct
      name: reftable_addition
      pos:
        line_end: 635
        line_start: 628
        source_file: /src/git/reftable/stack.c
    typedefs: []
    union: []
- function_names:
  - tree_search
  - tree_insert
  - infix_walk
  - tree_free
  source_file: /src/git/reftable/tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - reftable_malloc
  - reftable_realloc
  - reftable_free
  - reftable_calloc
  - reftable_strdup
  - reftable_set_alloc
  - reftable_buf_init
  - reftable_buf_release
  - reftable_buf_reset
  - reftable_buf_setlen
  - reftable_buf_cmp
  - reftable_buf_add
  - reftable_buf_addstr
  - reftable_buf_detach
  - binsearch
  - free_names
  - names_length
  - parse_names
  - names_equal
  - common_prefix_size
  - hash_size
  source_file: /src/git/reftable/basics.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - reftable_put_be16
  - reftable_put_be24
  - reftable_put_be32
  - reftable_put_be64
  - reftable_get_be16
  - reftable_get_be24
  - reftable_get_be32
  - reftable_get_be64
  - reftable_alloc_size
  - REFTABLE_ALLOC_ARRAY
  - REFTABLE_CALLOC_ARRAY
  - REFTABLE_REALLOC_ARRAY
  - reftable_alloc_grow
  - REFTABLE_ALLOC_GROW
  - REFTABLE_ALLOC_GROW_OR_NULL
  - REFTABLE_FREE_AND_NULL
  - REFTABLE_BANNED
  - malloc
  - realloc
  - free
  - calloc
  - strdup
  - REFTABLE_SWAP
  source_file: /src/git/reftable/basics.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REFTABLE_UNUSED
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/reftable/basics.h
      type_or_value: __attribute__((__unused__))
    - item_type: preproc_def
      name: REFTABLE_FORMAT_ID_SHA1
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/git/reftable/basics.h
      type_or_value: ((uint32_t) 0x73686131)
    - item_type: preproc_def
      name: REFTABLE_FORMAT_ID_SHA256
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/git/reftable/basics.h
      type_or_value: ((uint32_t) 0x73323536)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/block.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOCK_ITER_INIT
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/git/reftable/block.h
      type_or_value: "{ \\\n\t.last_key = REFTABLE_BUF_INIT, \\\n\t.scratch = REFTABLE_BUF_INIT,
        \\\n}"
    structs:
    - fields:
      - name: '*zstream'
        type: struct z_stream_s
      - name: '*compressed'
        type: unsigned char
      - name: compressed_cap
        type: size_t
      - name: '*block'
        type: uint8_t
      - name: block_size
        type: uint32_t
      - name: header_off
        type: uint32_t
      - name: restart_interval
        type: uint16_t
      - name: hash_size
        type: uint32_t
      - name: next
        type: uint32_t
      - name: '*restarts'
        type: uint32_t
      - name: restart_len
        type: uint32_t
      - name: restart_cap
        type: uint32_t
      - name: last_key
        type: struct reftable_buf
      - name: scratch
        type: struct reftable_buf
      - name: entries
        type: int
      item_type: struct
      name: block_writer
      pos:
        line_end: 45
        line_start: 20
        source_file: /src/git/reftable/block.h
    - fields:
      - name: next_off
        type: uint32_t
      - name: '*block'
        type: struct reftable_block
      - name: last_key
        type: struct reftable_buf
      - name: scratch
        type: struct reftable_buf
      item_type: struct
      name: block_iter
      pos:
        line_end: 74
        line_start: 66
        source_file: /src/git/reftable/block.h
    typedefs: []
    union: []
- function_names:
  - get_var_int
  - put_var_int
  - reftable_is_block_type
  - reftable_ref_record_val1
  - reftable_ref_record_val2
  - decode_string
  - encode_string
  - reftable_encode_key
  - reftable_decode_keylen
  - reftable_decode_key
  - reftable_ref_record_key
  - reftable_ref_record_copy_from
  - reftable_ref_record_release_void
  - reftable_ref_record_release
  - reftable_ref_record_val_type
  - reftable_ref_record_encode
  - reftable_ref_record_decode
  - reftable_ref_record_is_deletion_void
  - reftable_ref_record_equal_void
  - reftable_ref_record_cmp_void
  - reftable_obj_record_key
  - reftable_obj_record_release
  - reftable_obj_record_copy_from
  - reftable_obj_record_val_type
  - reftable_obj_record_encode
  - reftable_obj_record_decode
  - not_a_deletion
  - reftable_obj_record_equal_void
  - reftable_obj_record_cmp_void
  - reftable_log_record_key
  - reftable_log_record_copy_from
  - reftable_log_record_release_void
  - reftable_log_record_release
  - reftable_log_record_val_type
  - reftable_log_record_encode
  - reftable_log_record_decode
  - null_streq
  - reftable_log_record_equal_void
  - reftable_log_record_cmp_void
  - reftable_log_record_equal
  - reftable_log_record_is_deletion_void
  - reftable_index_record_key
  - reftable_index_record_copy_from
  - reftable_index_record_release
  - reftable_index_record_val_type
  - reftable_index_record_encode
  - reftable_index_record_decode
  - reftable_index_record_equal
  - reftable_index_record_cmp
  - reftable_record_key
  - reftable_record_encode
  - reftable_record_copy_from
  - reftable_record_val_type
  - reftable_record_decode
  - reftable_record_release
  - reftable_record_is_deletion
  - reftable_record_cmp
  - reftable_record_equal
  - hash_equal
  - reftable_ref_record_equal
  - reftable_ref_record_compare_name
  - reftable_ref_record_is_deletion
  - reftable_log_record_compare_key
  - reftable_log_record_is_deletion
  - reftable_record_data
  - reftable_record_vtable
  - reftable_record_init
  source_file: /src/git/reftable/record.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/tree.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*key'
        type: void
      - name: '*left'
        type: struct tree_node
      item_type: struct
      name: tree_node
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/git/reftable/tree.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/reftable/constants.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_RESTARTS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/reftable/constants.h
      type_or_value: ((1 << 16) - 1)
    - item_type: preproc_def
      name: DEFAULT_BLOCK_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/reftable/constants.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: DEFAULT_GEOMETRIC_FACTOR
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/reftable/constants.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - table_has_valid_name
  - table_check_name
  - table_checks
  - reftable_fsck_check
  source_file: /src/git/reftable/fsck.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*table_check_fn)(struct reftable_table *table,\n\t\t\t      reftable_fsck_report_fn
        report_fn,\n\t\t\t      void *cb_data)"
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/git/reftable/fsck.c
      type: int
    union: []
- function_names: []
  source_file: /src/git/tools/precompiled.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - use_FREE_AND_NULL
  - need_no_if
  source_file: /src/git/tools/coccinelle/tests/free.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_mmap
  - git_munmap
  source_file: /src/git/compat/win32mmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gitstrlcpy
  source_file: /src/git/compat/strlcpy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HCAST
  - open_in_gdb
  - err_win_to_posix
  - is_file_in_use_error
  - read_yes_no_answer
  - ask_yes_no_if_possible
  - retry_ask_yes_no
  - mingw_core_config
  - is_wdir_sep
  - make_relative_to
  - process_phantom_symlink
  - process_phantom_symlinks
  - normalize_ntpath
  - legacy_delete_file
  - try_delete_file
  - mingw_unlink
  - is_dir_empty
  - mingw_rmdir
  - needs_hiding
  - set_hidden_flag
  - mingw_mkdir
  - mingw_open_append
  - mingw_open_existing
  - is_local_named_pipe_path
  - mingw_open
  - ctrl_ignore
  - mingw_fgetc
  - mingw_fopen
  - mingw_freopen
  - mingw_fflush
  - mingw_write
  - mingw_access
  - mingw_chdir
  - mingw_chmod
  - filetime_to_hnsec
  - filetime_to_timespec
  - has_valid_directory_prefix
  - read_reparse_point
  - mingw_lstat
  - get_file_info_by_handle
  - mingw_stat
  - mingw_fstat
  - time_t_to_filetime
  - mingw_utime
  - mingw_strftime
  - sleep
  - mkstemp
  - gettimeofday
  - pipe
  - gmtime_r
  - localtime_r
  - mingw_getcwd
  - quote_arg_msvc
  - quote_arg_msys2
  - parse_interpreter
  - lookup_prog
  - path_lookup
  - mingw_locate_in_PATH
  - wcschrnul
  - wenvcmp
  - make_environment_block
  - do_unset_environment_variables
  - match_last_path_component
  - is_msys2_sh
  - mingw_spawnve_fd
  - mingw_spawnv
  - mingw_spawnvpe
  - try_shell_exec
  - mingw_execv
  - mingw_execvp
  - mingw_kill
  - mingw_getenv
  - mingw_putenv
  - ensure_socket_initialization
  - mingw_gethostname
  - mingw_gethostbyname
  - mingw_getaddrinfo
  - mingw_socket
  - mingw_connect
  - mingw_bind
  - mingw_setsockopt
  - mingw_shutdown
  - mingw_listen
  - mingw_accept
  - mingw_rename
  - mingw_getpagesize
  - get_extended_user_info
  - mingw_query_user_email
  - getpwuid
  - ticktack
  - start_timer_thread
  - stop_timer_thread
  - is_timeval_eq
  - setitimer
  - sigaction
  - mingw_signal
  - mingw_raise
  - link
  - symlink
  - readlink
  - waitpid
  - xutftowcsn
  - xwcstoutf
  - setup_windows_environment
  - get_current_user_sid
  - user_sid_to_user_name
  - acls_supported
  - is_path_owned_by_current_sid
  - is_valid_win32_path
  - die_startup
  - malloc_startup
  - wcstoutfdup_startup
  - maybe_redirect_std_handle
  - maybe_redirect_std_handles
  - adjust_symlink_flags
  - wmain
  - uname
  - mingw_have_unix_sockets
  source_file: /src/git/compat/mingw.c
  types:
    enum:
    - enumerators:
      - name: HIDE_DOTFILES_FALSE
        value: '0'
      - name: HIDE_DOTFILES_TRUE
      - name: HIDE_DOTFILES_DOTGITONLY
      item_type: enum
      name: hide_dotfiles_type
      pos:
        line_end: 270
        line_start: 266
        source_file: /src/git/compat/mingw.c
    - enumerators:
      - name: PHANTOM_SYMLINK_RETRY
      - name: PHANTOM_SYMLINK_DIRECTORY
      - name: PHANTOM_SYMLINK_DONE
      item_type: enum
      name: phantom_symlink_result
      pos:
        line_end: 339
        line_start: 335
        source_file: /src/git/compat/mingw.c
    - enumerators:
      - name: NameDisplay
        value: '3'
      - name: NameUserPrincipal
        value: '8'
      item_type: enum
      name: EXTENDED_NAME_FORMAT
      pos:
        line_end: 2634
        line_start: 2631
        source_file: /src/git/compat/mingw.c
    preproc_defs:
    - item_type: preproc_def
      name: STATUS_DELETE_PENDING
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/compat/mingw.c
      type_or_value: ((NTSTATUS) 0xC0000056)
    - item_type: preproc_def
      name: GETENV_MAX_RETAIN
      pos:
        line_end: 2293
        line_start: 2292
        source_file: /src/git/compat/mingw.c
      type_or_value: '64'
    - item_type: preproc_def
      name: FILE_RENAME_FLAG_REPLACE_IF_EXISTS
      pos:
        line_end: 2515
        line_start: 2514
        source_file: /src/git/compat/mingw.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: FILE_RENAME_FLAG_POSIX_SEMANTICS
      pos:
        line_end: 2516
        line_start: 2515
        source_file: /src/git/compat/mingw.c
      type_or_value: '0x00000002'
    structs:
    - fields:
      - name: '*next'
        type: struct phantom_symlink_info
      - name: '*wlink'
        type: wchar_t
      - name: '*wtarget'
        type: wchar_t
      item_type: struct
      name: phantom_symlink_info
      pos:
        line_end: 398
        line_start: 394
        source_file: /src/git/compat/mingw.c
    - fields:
      - name: ReparseTag
        type: DWORD
      - name: ReparseDataLength
        type: WORD
      - name: Reserved
        type: WORD
      - name: DUMMYUNIONNAME
        type: "union {\n\t\tstruct {\n\t\t\tWORD   SubstituteNameOffset;\n\t\t\tWORD
          \  SubstituteNameLength;\n\t\t\tWORD   PrintNameOffset;\n\t\t\tWORD   PrintNameLength;\n\t\t\tULONG
          \ Flags;\n\t\t\tWCHAR PathBuffer[1];\n\t\t} SymbolicLinkReparseBuffer;\n\t\tstruct
          {\n\t\t\tWORD   SubstituteNameOffset;\n\t\t\tWORD   SubstituteNameLength;\n\t\t\tWORD
          \  PrintNameOffset;\n\t\t\tWORD   PrintNameLength;\n\t\t\tWCHAR PathBuffer[1];\n\t\t}
          MountPointReparseBuffer;\n\t\tstruct {\n\t\t\tBYTE   DataBuffer[1];\n\t\t}
          GenericReparseBuffer;\n\t}"
      item_type: struct
      name: _REPARSE_DATA_BUFFER
      pos:
        line_end: 1156
        line_start: 1129
        source_file: /src/git/compat/mingw.c
    - fields:
      - name: '*next'
        type: struct pinfo_t
      - name: pid
        type: pid_t
      - name: proc
        type: HANDLE
      item_type: struct
      name: pinfo_t
      pos:
        line_end: 1882
        line_start: 1878
        source_file: /src/git/compat/mingw.c
    - fields:
      - name: Flags
        type: DWORD
      - name: RootDirectory
        type: HANDLE
      - name: FileNameLength
        type: DWORD
      - name: FileName[MAX_PATH]
        type: WCHAR
      item_type: struct
      name: rename_info = { 0 }
      pos:
        line_end: 2534
        line_start: 2517
        source_file: /src/git/compat/mingw.c
    typedefs:
    - item_type: typedef
      name: (*open_fn_t)(wchar_t const *wfilename, int oflags, ...)
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/git/compat/mingw.c
      type: int
    union: []
- function_names:
  - adler32
  - crc32
  - inflate
  - inflateEnd
  - inflateInit
  - inflateInit2
  - inflateReset
  - deflate
  - deflateBound
  - deflateEnd
  - deflateInit
  - deflateInit2
  - deflateReset
  - deflateSetHeader
  - deflateBound
  - deflateSetHeader
  source_file: /src/git/compat/zlib-compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: z_stream_s
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/compat/zlib-compat.h
      type_or_value: zng_stream_s
    - item_type: preproc_def
      name: gz_header_s
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/compat/zlib-compat.h
      type_or_value: zng_gz_header_s
    structs:
    - fields:
      - name: os
        type: int
      item_type: struct
      name: gz_header_s
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/git/compat/zlib-compat.h
    typedefs: []
    union: []
- function_names:
  - gitstrcasestr
  source_file: /src/git/compat/strcasestr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/nonblock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/sha1-chunked.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - enable_pipe_nonblock
  - enable_pipe_nonblock
  - enable_pipe_nonblock
  source_file: /src/git/compat/nonblock.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inet_pton4
  - inet_pton6
  - inet_pton
  source_file: /src/git/compat/inet_pton.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NS_INT16SZ
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/compat/inet_pton.c
      type_or_value: '2'
    - item_type: preproc_def
      name: NS_INADDRSZ
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/compat/inet_pton.c
      type_or_value: '4'
    - item_type: preproc_def
      name: NS_IN6ADDRSZ
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/compat/inet_pton.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_SHA1_Update_Chunked
  source_file: /src/git/compat/sha1-chunked.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gitstrtoumax
  source_file: /src/git/compat/strtoumax.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_pread
  source_file: /src/git/compat/pread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_open_with_retry
  - git_open_cloexec
  source_file: /src/git/compat/open.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - githstrerror
  source_file: /src/git/compat/hstrerror.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compat_mkdir_wo_trailing_slash
  source_file: /src/git/compat/mkdir.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - opendir
  - readdir
  - closedir
  source_file: /src/git/compat/precompose_utf8.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dirent
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/compat/precompose_utf8.h
      type_or_value: dirent_prec_psx
    - item_type: preproc_def
      name: DIR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/compat/precompose_utf8.h
      type_or_value: PREC_DIR
    structs:
    - fields:
      - name: d_ino
        type: ino_t
      - name: max_name_len
        type: size_t
      - name: d_type
        type: unsigned char
      - name: d_name[NAME_MAX+1]
        type: char
      item_type: struct
      name: dirent_prec_psx
      pos:
        line_end: 21
        line_start: 9
        source_file: /src/git/compat/precompose_utf8.h
    - fields:
      - name: ic_precompose
        type: iconv_t
      - name: '*dirp'
        type: DIR
      - name: '*dirent_nfc'
        type: struct dirent_prec_psx
      item_type: struct
      name: PREC_DIR
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/git/compat/precompose_utf8.h
    typedefs: []
    union: []
- function_names:
  - gitbasename
  - gitdirname
  source_file: /src/git/compat/basename.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_compiler_info
  - get_libc_info
  source_file: /src/git/compat/compiler.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_regcomp
  source_file: /src/git/compat/regcomp_enhanced.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/msvc-posix.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/compat/msvc-posix.h
      type_or_value: __inline
    - item_type: preproc_def
      name: __inline__
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/compat/msvc-posix.h
      type_or_value: __inline
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/compat/msvc-posix.h
      type_or_value: _stricmp
    - item_type: preproc_def
      name: strncasecmp
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/compat/msvc-posix.h
      type_or_value: _strnicmp
    - item_type: preproc_def
      name: ftruncate
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/compat/msvc-posix.h
      type_or_value: _chsize
    - item_type: preproc_def
      name: strtoull
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/compat/msvc-posix.h
      type_or_value: _strtoui64
    - item_type: preproc_def
      name: strtoll
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/compat/msvc-posix.h
      type_or_value: _strtoi64
    - item_type: preproc_def
      name: ftello
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/compat/msvc-posix.h
      type_or_value: _ftelli64
    - item_type: preproc_def
      name: O_ACCMODE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/compat/msvc-posix.h
      type_or_value: (_O_RDONLY | _O_WRONLY | _O_RDWR)
    structs: []
    typedefs:
    - item_type: typedef
      name: sigset_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/git/compat/msvc-posix.h
      type: int
    union: []
- function_names:
  - git_fopen
  source_file: /src/git/compat/fopen.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_fileno
  source_file: /src/git/compat/fileno.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_vsnprintf
  - git_snprintf
  source_file: /src/git/compat/snprintf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SNPRINTF_SIZE_CORR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/compat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SNPRINTF_SIZE_CORR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/compat/snprintf.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_access
  source_file: /src/git/compat/access.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mingw_SSL_set_fd
  - mingw_SSL_set_rfd
  - mingw_SSL_set_wfd
  - convert_slashes
  - is_valid_path
  - xutftowcs
  - xutftowcs_path
  source_file: /src/git/compat/mingw.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: platform_core_config
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/compat/mingw.h
      type_or_value: mingw_core_config
    - item_type: preproc_def
      name: SSL_set_fd
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/compat/mingw.h
      type_or_value: mingw_SSL_set_fd
    - item_type: preproc_def
      name: SSL_set_rfd
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/compat/mingw.h
      type_or_value: mingw_SSL_set_rfd
    - item_type: preproc_def
      name: SSL_set_wfd
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/compat/mingw.h
      type_or_value: mingw_SSL_set_wfd
    - item_type: preproc_def
      name: PATH_SEP
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/compat/mingw.h
      type_or_value: ''';'''
    - item_type: preproc_def
      name: query_user_email
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/compat/mingw.h
      type_or_value: mingw_query_user_email
    - item_type: preproc_def
      name: is_path_owned_by_current_user
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/compat/mingw.h
      type_or_value: is_path_owned_by_current_sid
    - item_type: preproc_def
      name: have_unix_sockets
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/git/compat/mingw.h
      type_or_value: mingw_have_unix_sockets
    structs: []
    typedefs: []
    union: []
- function_names:
  - GIT_GNUC_PREREQ
  - GIT_GNUC_PREREQ
  - mkdir
  - git_time
  - git_setitimer
  - setitimer
  - stat
  - fstat
  - lstat
  - getpagesize
  - fopen
  - gitstrchrnul
  - QSORT
  - sane_qsort
  - STABLE_QSORT
  - QSORT_S
  - ST_CTIME_NSEC
  - ST_MTIME_NSEC
  - ST_CTIME_NSEC
  - ST_MTIME_NSEC
  - ST_CTIME_NSEC
  - ST_MTIME_NSEC
  - va_copy
  - va_copy
  - flockfile
  - funlockfile
  - getc_unlocked
  - fileno
  - access
  source_file: /src/git/compat/posix.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/compat/posix.h
      type_or_value: '64'
    - item_type: preproc_def
      name: UNUSED
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/git/compat/posix.h
      type_or_value: "__attribute__((unused)) \\\n\t__attribute__((deprecated (\"parameter
        declared as UNUSED\")))"
    - item_type: preproc_def
      name: UNUSED
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/git/compat/posix.h
      type_or_value: "__attribute__((unused)) \\\n\t__attribute__((deprecated))"
    - item_type: preproc_def
      name: _POSIX_C_SOURCE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/compat/posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/compat/posix.h
      type_or_value: '600'
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/compat/posix.h
      type_or_value: '500'
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/git/compat/posix.h
      type_or_value: '600 '
    - item_type: preproc_def
      name: _XOPEN_SOURCE_EXTENDED
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/git/compat/posix.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: _ALL_SOURCE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/compat/posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _GNU_SOURCE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/git/compat/posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _BSD_SOURCE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/git/compat/posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _DEFAULT_SOURCE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/git/compat/posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _NETBSD_SOURCE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/git/compat/posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _SGI_SOURCE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/git/compat/posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/git/compat/posix.h
      type_or_value: '0x0603'
    - item_type: preproc_def
      name: _ALL_SOURCE
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/git/compat/posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: time
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/git/compat/posix.h
      type_or_value: git_time
    - item_type: preproc_def
      name: basename
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/git/compat/posix.h
      type_or_value: gitbasename
    - item_type: preproc_def
      name: dirname
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/git/compat/posix.h
      type_or_value: gitdirname
    - item_type: preproc_def
      name: NI_MAXHOST
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/git/compat/posix.h
      type_or_value: '1025'
    - item_type: preproc_def
      name: NI_MAXSERV
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/git/compat/posix.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/git/compat/posix.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: NAME_MAX
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/git/compat/posix.h
      type_or_value: '255'
    - item_type: preproc_def
      name: PRItime
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/git/compat/posix.h
      type_or_value: PRIuMAX
    - item_type: preproc_def
      name: parse_timestamp
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/git/compat/posix.h
      type_or_value: strtoumax
    - item_type: preproc_def
      name: TIME_MAX
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/git/compat/posix.h
      type_or_value: UINTMAX_MAX
    - item_type: preproc_def
      name: TIME_MIN
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/git/compat/posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: rmdir
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/git/compat/posix.h
      type_or_value: lstat_cache_aware_rmdir
    - item_type: preproc_def
      name: PROT_READ
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/git/compat/posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PROT_WRITE
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/git/compat/posix.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MAP_PRIVATE
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/git/compat/posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: mmap
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/git/compat/posix.h
      type_or_value: git_mmap
    - item_type: preproc_def
      name: munmap
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/git/compat/posix.h
      type_or_value: git_munmap
    - item_type: preproc_def
      name: MAP_FAILED
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/git/compat/posix.h
      type_or_value: ((void *)-1)
    - item_type: preproc_def
      name: S_IFMT
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/git/compat/posix.h
      type_or_value: '0170000'
    - item_type: preproc_def
      name: S_IFREG
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/git/compat/posix.h
      type_or_value: '0100000'
    - item_type: preproc_def
      name: S_IFDIR
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/git/compat/posix.h
      type_or_value: '0040000'
    - item_type: preproc_def
      name: S_IFLNK
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/git/compat/posix.h
      type_or_value: '0120000'
    - item_type: preproc_def
      name: S_IFBLK
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/git/compat/posix.h
      type_or_value: '0060000'
    - item_type: preproc_def
      name: S_IFCHR
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/git/compat/posix.h
      type_or_value: '0020000'
    - item_type: preproc_def
      name: S_IFIFO
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/git/compat/posix.h
      type_or_value: '0010000'
    - item_type: preproc_def
      name: S_IFSOCK
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/git/compat/posix.h
      type_or_value: '0140000'
    - item_type: preproc_def
      name: pread
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/git/compat/posix.h
      type_or_value: git_pread
    - item_type: preproc_def
      name: setenv
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/git/compat/posix.h
      type_or_value: gitsetenv
    - item_type: preproc_def
      name: mkdtemp
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/git/compat/posix.h
      type_or_value: git_mkdtemp
    - item_type: preproc_def
      name: unsetenv
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/git/compat/posix.h
      type_or_value: gitunsetenv
    - item_type: preproc_def
      name: strcasestr
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/git/compat/posix.h
      type_or_value: gitstrcasestr
    - item_type: preproc_def
      name: strlcpy
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/git/compat/posix.h
      type_or_value: gitstrlcpy
    - item_type: preproc_def
      name: strtoumax
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/git/compat/posix.h
      type_or_value: gitstrtoumax
    - item_type: preproc_def
      name: strtoimax
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/git/compat/posix.h
      type_or_value: gitstrtoimax
    - item_type: preproc_def
      name: hstrerror
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/git/compat/posix.h
      type_or_value: githstrerror
    - item_type: preproc_def
      name: memmem
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/git/compat/posix.h
      type_or_value: gitmemmem
    - item_type: preproc_def
      name: strdup
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/git/compat/posix.h
      type_or_value: gitstrdup
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/git/compat/posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/git/compat/posix.h
      type_or_value: git_snprintf
    - item_type: preproc_def
      name: vsnprintf
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/git/compat/posix.h
      type_or_value: git_vsnprintf
    - item_type: preproc_def
      name: open
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/git/compat/posix.h
      type_or_value: git_open_with_retry
    - item_type: preproc_def
      name: strchrnul
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/git/compat/posix.h
      type_or_value: gitstrchrnul
    - item_type: preproc_def
      name: atexit
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/git/compat/posix.h
      type_or_value: git_atexit
    - item_type: preproc_def
      name: HOST_NAME_MAX
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/git/compat/posix.h
      type_or_value: '256'
    - item_type: preproc_def
      name: qsort
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/git/compat/posix.h
      type_or_value: git_stable_qsort
    - item_type: preproc_def
      name: qsort_s
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/git/compat/posix.h
      type_or_value: git_qsort_s
    structs:
    - fields:
      - name: it_interval
        type: struct timeval
      - name: it_value
        type: struct timeval
      item_type: struct
      name: itimerval
      pos:
        line_end: 204
        line_start: 201
        source_file: /src/git/compat/posix.h
    typedefs:
    - item_type: typedef
      name: intptr_t
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/git/compat/posix.h
      type: long
    - item_type: typedef
      name: uintptr_t
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/git/compat/posix.h
      type: unsigned long
    - item_type: typedef
      name: timestamp_t
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/git/compat/posix.h
      type: uintmax_t
    union: []
- function_names: []
  source_file: /src/git/compat/msvc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CALL_CHUNKFUN
  - CALL_FREEFUN
  - _obstack_begin
  - _obstack_begin_1
  - _obstack_newchunk
  - _obstack_allocated_p
  - obstack_free
  - _obstack_memory_used
  - print_and_abort
  source_file: /src/git/compat/obstack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OBSTACK_INTERFACE_VERSION
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/compat/obstack.c
      type_or_value: '1'
    - item_type: preproc_def
      name: COPYING_UNIT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/git/compat/obstack.c
      type_or_value: int
    structs:
    - fields:
      - name: c
        type: char
      - name: u
        type: union fooround
      item_type: struct
      name: fooalign
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/git/compat/obstack.c
    typedefs: []
    union:
    - fields:
      - name: i
        type: uintmax_t
      - name: d
        type: long double
      - name: '*p'
        type: void
      item_type: union
      name: fooround
      pos:
        line_end: 63
        line_start: 58
        source_file: /src/git/compat/obstack.c
- function_names:
  - git_mmap
  - git_munmap
  source_file: /src/git/compat/mmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - msort_with_tmp
  - git_qsort_s
  source_file: /src/git/compat/qsort_s.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - warn_if_raster_font
  - is_console
  - write_console
  - set_console_attr
  - erase_in_line
  - set_attr
  - console_thread
  - winansi_exit
  - die_lasterr
  - winansi_dup2
  - duplicate_handle
  - swap_osfhnd
  - detect_msys_tty
  - winansi_isatty
  - winansi_init
  - winansi_get_osfhandle
  source_file: /src/git/compat/winansi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FD_CONSOLE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/compat/winansi.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FD_SWAPPED
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/compat/winansi.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: FD_MSYS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/compat/winansi.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: BUFFER_SIZE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/git/compat/winansi.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_PARAMS
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/git/compat/winansi.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FOREGROUND_ALL
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/git/compat/winansi.c
      type_or_value: (FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
    - item_type: preproc_def
      name: BACKGROUND_ALL
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/git/compat/winansi.c
      type_or_value: (BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE)
    - item_type: preproc_def
      name: ObjectNameInformation
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/git/compat/winansi.c
      type_or_value: '1'
    structs:
    - fields:
      - name: Name
        type: UNICODE_STRING
      - name: NameBuffer[FLEX_ARRAY]
        type: WCHAR
      item_type: struct
      name: _OBJECT_NAME_INFORMATION
      pos:
        line_end: 524
        line_start: 520
        source_file: /src/git/compat/winansi.c
    typedefs: []
    union: []
- function_names:
  - S_ISLNK
  - S_ISSOCK
  - WIFEXITED
  - WIFSIGNALED
  - WEXITSTATUS
  - WTERMSIG
  - fchmod
  - fork
  - alarm
  - fsync
  - sync
  - getuid
  - getpwnam
  - fcntl
  - sigemptyset
  - sigprocmask
  - getppid
  - getpgid
  - tcgetpgrp
  - unlink
  - unlink
  - getrlimit
  - git_ntohl
  source_file: /src/git/compat/mingw-posix.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: hstrerror
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: strerror
    - item_type: preproc_def
      name: S_IFLNK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0120000 '
    - item_type: preproc_def
      name: S_IRGRP
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: S_IWGRP
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: S_IXGRP
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: S_IRWXG
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: (S_IRGRP | S_IWGRP | S_IXGRP)
    - item_type: preproc_def
      name: S_IROTH
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: S_IWOTH
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: S_IXOTH
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: S_IRWXO
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: (S_IROTH | S_IWOTH | S_IXOTH)
    - item_type: preproc_def
      name: S_ISUID
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0004000'
    - item_type: preproc_def
      name: S_ISGID
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0002000'
    - item_type: preproc_def
      name: S_ISVTX
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0001000'
    - item_type: preproc_def
      name: EWOULDBLOCK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: EAGAIN
    - item_type: preproc_def
      name: ELOOP
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: EMLINK
    - item_type: preproc_def
      name: SHUT_WR
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: SD_SEND
    - item_type: preproc_def
      name: SIGHUP
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIGQUIT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SIGKILL
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SIGPIPE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SIGALRM
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SIGCHLD
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '17'
    - item_type: preproc_def
      name: F_GETFD
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: F_SETFD
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FD_CLOEXEC
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: O_NOINHERIT
    - item_type: preproc_def
      name: EAFNOSUPPORT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: WSAEAFNOSUPPORT
    - item_type: preproc_def
      name: ECONNABORTED
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: WSAECONNABORTED
    - item_type: preproc_def
      name: ENOTSOCK
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: WSAENOTSOCK
    - item_type: preproc_def
      name: SA_RESTART
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SA_NOCLDSTOP
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ITIMER_REAL
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SIG_BLOCK
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SIG_UNBLOCK
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: mkdir
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_mkdir
    - item_type: preproc_def
      name: WNOHANG
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '1'
    - item_type: preproc_def
      name: kill
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_kill
    - item_type: preproc_def
      name: locate_in_PATH
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_locate_in_PATH
    - item_type: preproc_def
      name: rmdir
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_rmdir
    - item_type: preproc_def
      name: open
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_open
    - item_type: preproc_def
      name: fgetc
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_fgetc
    - item_type: preproc_def
      name: fopen
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_fopen
    - item_type: preproc_def
      name: freopen
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_freopen
    - item_type: preproc_def
      name: fflush
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_fflush
    - item_type: preproc_def
      name: write
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_write
    - item_type: preproc_def
      name: access
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_access
    - item_type: preproc_def
      name: chdir
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_chdir
    - item_type: preproc_def
      name: chmod
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_chmod
    - item_type: preproc_def
      name: getcwd
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_getcwd
    - item_type: preproc_def
      name: getenv
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_getenv
    - item_type: preproc_def
      name: putenv
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_putenv
    - item_type: preproc_def
      name: unsetenv
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_putenv
    - item_type: preproc_def
      name: gethostname
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_gethostname
    - item_type: preproc_def
      name: gethostbyname
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_gethostbyname
    - item_type: preproc_def
      name: getaddrinfo
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_getaddrinfo
    - item_type: preproc_def
      name: socket
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_socket
    - item_type: preproc_def
      name: connect
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_connect
    - item_type: preproc_def
      name: bind
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_bind
    - item_type: preproc_def
      name: setsockopt
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_setsockopt
    - item_type: preproc_def
      name: shutdown
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_shutdown
    - item_type: preproc_def
      name: listen
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_listen
    - item_type: preproc_def
      name: accept
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_accept
    - item_type: preproc_def
      name: rename
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_rename
    - item_type: preproc_def
      name: getpagesize
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_getpagesize
    - item_type: preproc_def
      name: fsync_no_flush
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: win32_fsync_no_flush
    - item_type: preproc_def
      name: FSYNC_COMPONENTS_PLATFORM_DEFAULT
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: (FSYNC_COMPONENTS_DEFAULT | FSYNC_COMPONENT_LOOSE_OBJECT)
    - item_type: preproc_def
      name: FSYNC_METHOD_DEFAULT
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: (FSYNC_METHOD_BATCH)
    - item_type: preproc_def
      name: RLIMIT_NOFILE
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: off_t
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: off64_t
    - item_type: preproc_def
      name: lseek
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: _lseeki64
    - item_type: preproc_def
      name: st_atime
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: st_atim.tv_sec
    - item_type: preproc_def
      name: st_mtime
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: st_mtim.tv_sec
    - item_type: preproc_def
      name: st_ctime
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: st_ctim.tv_sec
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_stat
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_fstat
    - item_type: preproc_def
      name: lstat
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_lstat
    - item_type: preproc_def
      name: utime
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_utime
    - item_type: preproc_def
      name: strftime
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_strftime
    - item_type: preproc_def
      name: execvp
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_execvp
    - item_type: preproc_def
      name: execv
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_execv
    - item_type: preproc_def
      name: ntohl
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: git_ntohl
    - item_type: preproc_def
      name: signal
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_signal
    - item_type: preproc_def
      name: raise
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: mingw_raise
    - item_type: preproc_def
      name: isatty
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: winansi_isatty
    - item_type: preproc_def
      name: dup2
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: winansi_dup2
    - item_type: preproc_def
      name: PRIuMAX
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '"I64u"'
    - item_type: preproc_def
      name: PRId64
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/git/compat/mingw-posix.h
      type_or_value: '"I64d"'
    structs:
    - fields:
      - name: '*pw_name'
        type: char
      - name: '*pw_gecos'
        type: char
      - name: '*pw_dir'
        type: char
      item_type: struct
      name: passwd
      pos:
        line_end: 90
        line_start: 86
        source_file: /src/git/compat/mingw-posix.h
    - fields:
      - name: sa_handler
        type: sig_handler_t
      - name: sa_flags
        type: unsigned
      item_type: struct
      name: sigaction
      pos:
        line_end: 96
        line_start: 93
        source_file: /src/git/compat/mingw-posix.h
    - fields:
      - name: it_value
        type: struct timeval
      item_type: struct
      name: itimerval
      pos:
        line_end: 102
        line_start: 100
        source_file: /src/git/compat/mingw-posix.h
    - fields:
      - name: sysname[16]
        type: char
      - name: nodename[1]
        type: char
      - name: release[16]
        type: char
      - name: version[16]
        type: char
      - name: machine[1]
        type: char
      item_type: struct
      name: utsname
      pos:
        line_end: 111
        line_start: 105
        source_file: /src/git/compat/mingw-posix.h
    - fields:
      - name: rlim_cur
        type: unsigned int
      item_type: struct
      name: rlimit
      pos:
        line_end: 321
        line_start: 319
        source_file: /src/git/compat/mingw-posix.h
    - fields:
      - name: tv_sec
        type: time_t
      - name: tv_nsec
        type: long
      item_type: struct
      name: timespec
      pos:
        line_end: 347
        line_start: 344
        source_file: /src/git/compat/mingw-posix.h
    - fields:
      - name: st_dev
        type: _dev_t
      - name: st_ino
        type: _ino_t
      - name: st_mode
        type: _mode_t
      - name: st_nlink
        type: short
      - name: st_uid
        type: short
      - name: st_gid
        type: short
      - name: st_rdev
        type: _dev_t
      - name: st_size
        type: off64_t
      - name: st_atim
        type: struct timespec
      - name: st_mtim
        type: struct timespec
      - name: st_ctim
        type: struct timespec
      item_type: struct
      name: mingw_stat
      pos:
        line_end: 363
        line_start: 351
        source_file: /src/git/compat/mingw-posix.h
    typedefs:
    - item_type: typedef
      name: sigset_t
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/git/compat/mingw-posix.h
      type: _sigset_t
    - item_type: typedef
      name: uid_t
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/git/compat/mingw-posix.h
      type: int
    - item_type: typedef
      name: socklen_t
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/git/compat/mingw-posix.h
      type: int
    - item_type: typedef
      name: pid_t
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/git/compat/mingw-posix.h
      type: int
    - item_type: typedef
      name: (__cdecl *sig_handler_t)(int)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/git/compat/mingw-posix.h
      type: void
    union: []
- function_names:
  - gitsetenv
  source_file: /src/git/compat/setenv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gitunsetenv
  source_file: /src/git/compat/unsetenv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gitstrtoimax
  source_file: /src/git/compat/strtoimax.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/msvc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_disk_info
  source_file: /src/git/compat/disk.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __BPTR_ALIGN
  - __PTR_ALIGN
  - obstack_base
  - obstack_chunk_size
  - obstack_next_free
  - obstack_alignment_mask
  - obstack_init
  - obstack_begin
  - obstack_specify_allocation
  - obstack_specify_allocation_with_arg
  - obstack_chunkfun
  - obstack_freefun
  - obstack_1grow_fast
  - obstack_blank_fast
  - obstack_memory_used
  - obstack_object_size
  - obstack_room
  - obstack_make_room
  - obstack_empty_p
  - obstack_grow
  - obstack_grow0
  - obstack_1grow
  - obstack_ptr_grow
  - obstack_int_grow
  - obstack_ptr_grow_fast
  - obstack_int_grow_fast
  - obstack_blank
  - obstack_alloc
  - obstack_copy
  - obstack_copy0
  - obstack_finish
  - obstack_free
  - obstack_object_size
  - obstack_room
  - obstack_empty_p
  - obstack_make_room
  - obstack_grow
  - obstack_grow0
  - obstack_1grow
  - obstack_ptr_grow
  - obstack_int_grow
  - obstack_ptr_grow_fast
  - obstack_int_grow_fast
  - obstack_blank
  - obstack_alloc
  - obstack_copy
  - obstack_copy0
  - obstack_finish
  - obstack_free
  source_file: /src/git/compat/obstack.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _OBSTACK_H
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/git/compat/obstack.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PTR_INT_TYPE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/git/compat/obstack.h
      type_or_value: __PTRDIFF_TYPE__
    - item_type: preproc_def
      name: PTR_INT_TYPE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/git/compat/obstack.h
      type_or_value: ptrdiff_t
    structs:
    - fields:
      - name: '*limit'
        type: char
      - name: '*prev'
        type: struct _obstack_chunk
      - name: contents[4]
        type: char
      item_type: struct
      name: _obstack_chunk
      pos:
        line_end: 149
        line_start: 144
        source_file: /src/git/compat/obstack.h
    - fields:
      - name: chunk_size
        type: long
      - name: '*chunk'
        type: struct _obstack_chunk
      - name: '*object_base'
        type: char
      - name: '*next_free'
        type: char
      - name: '*chunk_limit'
        type: char
      - name: temp
        type: "union\n  {\n    PTR_INT_TYPE tempint;\n    void *tempptr;\n  }"
      - name: alignment_mask
        type: int
      - name: chunkfun
        type: "union {\n    void *(*plain) (long);\n    struct _obstack_chunk *(*extra)
          (void *, long);\n  }"
      - name: freefun
        type: "union {\n    void (*plain) (void *);\n    void (*extra) (void *, struct
          _obstack_chunk *);\n  }"
      - name: '*extra_arg'
        type: void
      - name: use_extra_arg
        type: unsigned
      - name: maybe_empty_object
        type: unsigned
      - name: alloc_failed
        type: unsigned
      item_type: struct
      name: obstack
      pos:
        line_end: 182
        line_start: 151
        source_file: /src/git/compat/obstack.h
    typedefs: []
    union: []
- function_names:
  - restore_term_on_signal
  - write_err
  - print_background_resume_msg
  - restore_terminal_on_suspend
  - reset_job_signals
  - close_term_fd
  - restore_term
  - save_term
  - disable_bits
  - disable_echo
  - enable_non_canonical
  - getchar_with_timeout
  - restore_term
  - save_term
  - disable_bits
  - disable_echo
  - enable_non_canonical
  - mingw_getchar
  - getchar_with_timeout
  - git_terminal_prompt
  - sequence_entry_cmp
  - is_known_escape_sequence
  - read_key_without_echo
  - save_term
  - restore_term
  - git_terminal_prompt
  - read_key_without_echo
  source_file: /src/git/compat/terminal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INPUT_PATH
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/compat/terminal.c
      type_or_value: '"/dev/tty"'
    - item_type: preproc_def
      name: OUTPUT_PATH
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/compat/terminal.c
      type_or_value: '"/dev/tty"'
    - item_type: preproc_def
      name: INPUT_PATH
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/git/compat/terminal.c
      type_or_value: '"CONIN$"'
    - item_type: preproc_def
      name: OUTPUT_PATH
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/git/compat/terminal.c
      type_or_value: '"CONOUT$"'
    - item_type: preproc_def
      name: FORCE_TEXT
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/git/compat/terminal.c
      type_or_value: '"t"'
    - item_type: preproc_def
      name: getchar
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/git/compat/terminal.c
      type_or_value: mingw_getchar
    structs:
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: sequence[FLEX_ARRAY]
        type: char
      item_type: struct
      name: escape_sequence_entry
      pos:
        line_end: 477
        line_start: 474
        source_file: /src/git/compat/terminal.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/terminal.h
  types:
    enum:
    - enumerators:
      - name: SAVE_TERM_DUPLEX
        value: 1 << 0
      - name: SAVE_TERM_STDIN
        value: 1 << 1
      item_type: enum
      name: save_term_flags
      pos:
        line_end: 8
        line_start: 3
        source_file: /src/git/compat/terminal.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - file_attr_to_st_mode
  - get_file_attr
  source_file: /src/git/compat/win32.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mode_native_to_git
  - git_stat
  - git_fstat
  - git_lstat
  source_file: /src/git/compat/stat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _POSIX_C_SOURCE
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/git/compat/stat.c
      type_or_value: 200112L
    structs: []
    typedefs: []
    union: []
- function_names:
  - default_swab32
  - default_bswap64
  - __has_builtin
  - bswap32
  - bswap64
  - bswap32
  - bswap64
  - ntohl
  - htonl
  - ntohll
  - htonll
  - ntohl
  - htonl
  - ntohl
  - htonl
  - ntohll
  - htonll
  - ntohll
  - htonll
  - get_be16
  - get_be32
  - get_be64
  - put_be32
  - put_be64
  source_file: /src/git/compat/bswap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GIT_LITTLE_ENDIAN
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/compat/bswap.h
      type_or_value: '1234'
    - item_type: preproc_def
      name: GIT_BIG_ENDIAN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/git/compat/bswap.h
      type_or_value: '4321'
    - item_type: preproc_def
      name: GIT_BYTE_ORDER
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/compat/bswap.h
      type_or_value: GIT_LITTLE_ENDIAN
    - item_type: preproc_def
      name: GIT_BYTE_ORDER
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/git/compat/bswap.h
      type_or_value: __BYTE_ORDER
    - item_type: preproc_def
      name: GIT_LITTLE_ENDIAN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/git/compat/bswap.h
      type_or_value: __LITTLE_ENDIAN
    - item_type: preproc_def
      name: GIT_BIG_ENDIAN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/git/compat/bswap.h
      type_or_value: __BIG_ENDIAN
    - item_type: preproc_def
      name: GIT_BYTE_ORDER
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/git/compat/bswap.h
      type_or_value: BYTE_ORDER
    - item_type: preproc_def
      name: GIT_LITTLE_ENDIAN
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/git/compat/bswap.h
      type_or_value: LITTLE_ENDIAN
    - item_type: preproc_def
      name: GIT_BIG_ENDIAN
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/git/compat/bswap.h
      type_or_value: BIG_ENDIAN
    - item_type: preproc_def
      name: GIT_BYTE_ORDER
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/git/compat/bswap.h
      type_or_value: __BYTE_ORDER__
    - item_type: preproc_def
      name: GIT_LITTLE_ENDIAN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/git/compat/bswap.h
      type_or_value: __ORDER_LITTLE_ENDIAN__
    - item_type: preproc_def
      name: GIT_BIG_ENDIAN
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/git/compat/bswap.h
      type_or_value: __ORDER_BIG_ENDIAN__
    - item_type: preproc_def
      name: GIT_BIG_ENDIAN
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/git/compat/bswap.h
      type_or_value: '4321'
    - item_type: preproc_def
      name: GIT_LITTLE_ENDIAN
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/git/compat/bswap.h
      type_or_value: '1234'
    - item_type: preproc_def
      name: GIT_BYTE_ORDER
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/git/compat/bswap.h
      type_or_value: GIT_BIG_ENDIAN
    - item_type: preproc_def
      name: GIT_BYTE_ORDER
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/git/compat/bswap.h
      type_or_value: GIT_LITTLE_ENDIAN
    - item_type: preproc_def
      name: GIT_BYTE_ORDER
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/git/compat/bswap.h
      type_or_value: GIT_BIG_ENDIAN
    - item_type: preproc_def
      name: GIT_BYTE_ORDER
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/git/compat/bswap.h
      type_or_value: GIT_LITTLE_ENDIAN
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_md5
  - git_CC_HMAC
  - git_CC_error_check
  - git_CC_EVP_EncodeBlock
  - git_CC_EVP_DecodeBlock
  source_file: /src/git/compat/apple-common-crypto.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HMAC
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/compat/apple-common-crypto.h
      type_or_value: git_CC_HMAC
    - item_type: preproc_def
      name: EVP_EncodeBlock
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/compat/apple-common-crypto.h
      type_or_value: git_CC_EVP_EncodeBlock
    - item_type: preproc_def
      name: EVP_DecodeBlock
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/git/compat/apple-common-crypto.h
      type_or_value: git_CC_EVP_DecodeBlock
    structs: []
    typedefs: []
    union: []
- function_names:
  - gitmemmem
  source_file: /src/git/compat/memmem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inet_ntop4
  - inet_ntop6
  - inet_ntop
  source_file: /src/git/compat/inet_ntop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NS_INADDRSZ
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/compat/inet_ntop.c
      type_or_value: '4'
    - item_type: preproc_def
      name: NS_IN6ADDRSZ
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/compat/inet_ntop.c
      type_or_value: '16'
    - item_type: preproc_def
      name: NS_INT16SZ
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/compat/inet_ntop.c
      type_or_value: '2'
    structs:
    - fields:
      - name: base
        type: int
      item_type: struct
      name: best
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/git/compat/inet_ntop.c
    typedefs: []
    union: []
- function_names:
  - gitstrdup
  source_file: /src/git/compat/strdup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - has_non_ascii
  - probe_utf8_pathname_composition
  - precompose_string_if_needed
  - precompose_argv_prefix
  - precompose_utf8_opendir
  - precompose_utf8_readdir
  - precompose_utf8_closedir
  source_file: /src/git/compat/precompose_utf8.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*iconv_ibp'
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/git/compat/precompose_utf8.c
      type: char
    union: []
- function_names:
  - trace2_collect_process_info
  source_file: /src/git/compat/stub/procinfo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - return_0
  - pthread_mutex_init
  - pthread_mutex_destroy
  - pthread_mutexattr_init
  - pthread_mutexattr_destroy
  - pthread_mutexattr_settype
  - pthread_cond_init
  - pthread_cond_destroy
  - pthread_join
  - pthread_equal
  - pthread_exit
  - pthread_key_create
  - pthread_key_delete
  - pthread_setspecific
  - pthread_getspecific
  - pthread_sigmask
  source_file: /src/git/compat/win32/pthread.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: pthread_mutex_t
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/compat/win32/pthread.h
      type_or_value: CRITICAL_SECTION
    - item_type: preproc_def
      name: pthread_mutex_lock
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/compat/win32/pthread.h
      type_or_value: EnterCriticalSection
    - item_type: preproc_def
      name: pthread_mutex_unlock
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/compat/win32/pthread.h
      type_or_value: LeaveCriticalSection
    - item_type: preproc_def
      name: PTHREAD_MUTEX_RECURSIVE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/compat/win32/pthread.h
      type_or_value: '0'
    - item_type: preproc_def
      name: pthread_cond_t
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/compat/win32/pthread.h
      type_or_value: CONDITION_VARIABLE
    - item_type: preproc_def
      name: pthread_cond_signal
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/compat/win32/pthread.h
      type_or_value: WakeConditionVariable
    - item_type: preproc_def
      name: pthread_cond_broadcast
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/compat/win32/pthread.h
      type_or_value: WakeAllConditionVariable
    structs:
    - fields:
      - name: handle
        type: HANDLE
      - name: '*(*start_routine)(void*)'
        type: void
      - name: '*arg'
        type: void
      - name: tid
        type: DWORD
      item_type: struct
      name: pthread_t
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/git/compat/win32/pthread.h
    typedefs:
    - item_type: typedef
      name: pthread_mutexattr_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/git/compat/win32/pthread.h
      type: int
    - item_type: typedef
      name: pthread_key_t
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/git/compat/win32/pthread.h
      type: DWORD
    union: []
- function_names:
  - win32_start_routine
  - pthread_create
  - win32_pthread_join
  - pthread_self
  - pthread_cond_wait
  source_file: /src/git/compat/win32/pthread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/win32/alloca.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - openlog
  - syslog
  source_file: /src/git/compat/win32/syslog.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DECLARE_PROC_ADDR
  - INIT_PROC_ADDR
  - get_proc_addr
  source_file: /src/git/compat/win32/lazyload.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*const dll'
        type: char
      - name: '*const function'
        type: char
      - name: pfunction
        type: FARVOIDPROC
      - name: initialized
        type: unsigned
      item_type: struct
      name: proc_addr
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/git/compat/win32/lazyload.h
    typedefs:
    - item_type: typedef
      name: (*FARVOIDPROC)(void)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/git/compat/win32/lazyload.h
      type: void
    union: []
- function_names:
  - win32_fsync_no_flush
  source_file: /src/git/compat/win32/flush.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLUSH_FLAGS_FILE_DATA_ONLY
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/compat/win32/flush.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/win32/syslog.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOG_PID
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/compat/win32/syslog.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: LOG_EMERG
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/compat/win32/syslog.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LOG_ALERT
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/compat/win32/syslog.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LOG_CRIT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/compat/win32/syslog.h
      type_or_value: '2'
    - item_type: preproc_def
      name: LOG_ERR
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/compat/win32/syslog.h
      type_or_value: '3'
    - item_type: preproc_def
      name: LOG_WARNING
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/compat/win32/syslog.h
      type_or_value: '4'
    - item_type: preproc_def
      name: LOG_NOTICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/compat/win32/syslog.h
      type_or_value: '5'
    - item_type: preproc_def
      name: LOG_INFO
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/compat/win32/syslog.h
      type_or_value: '6'
    - item_type: preproc_def
      name: LOG_DEBUG
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/compat/win32/syslog.h
      type_or_value: '7'
    - item_type: preproc_def
      name: LOG_DAEMON
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/compat/win32/syslog.h
      type_or_value: (3<<3)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/win32/dirent.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DT_UNKNOWN
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/compat/win32/dirent.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DT_DIR
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/compat/win32/dirent.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DT_REG
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/compat/win32/dirent.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DT_LNK
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/compat/win32/dirent.h
      type_or_value: '3'
    structs:
    - fields:
      - name: d_type
        type: unsigned char
      - name: d_name[MAX_PATH * 3]
        type: char
      item_type: struct
      name: dirent
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/git/compat/win32/dirent.h
    typedefs:
    - item_type: typedef
      name: DIR
      pos:
        line_end: 3
        line_start: 3
        source_file: /src/git/compat/win32/dirent.h
      type: DIR
    union: []
- function_names:
  - win32_find_last_dir_sep
  - win32_has_dir_sep
  - has_dir_sep
  source_file: /src/git/compat/win32/path-utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: has_dos_drive_prefix
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/compat/win32/path-utils.h
      type_or_value: win32_has_dos_drive_prefix
    - item_type: preproc_def
      name: skip_dos_drive_prefix
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/git/compat/win32/path-utils.h
      type_or_value: win32_skip_dos_drive_prefix
    - item_type: preproc_def
      name: is_dir_sep
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/compat/win32/path-utils.h
      type_or_value: is_xplatform_dir_sep
    - item_type: preproc_def
      name: find_last_dir_sep
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/compat/win32/path-utils.h
      type_or_value: win32_find_last_dir_sep
    - item_type: preproc_def
      name: offset_1st_component
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/compat/win32/path-utils.h
      type_or_value: win32_offset_1st_component
    - item_type: preproc_def
      name: fspathcmp
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/compat/win32/path-utils.h
      type_or_value: win32_fspathcmp
    - item_type: preproc_def
      name: fspathncmp
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/compat/win32/path-utils.h
      type_or_value: win32_fspathncmp
    structs: []
    typedefs: []
    union: []
- function_names:
  - extend_path
  - wWinMain
  source_file: /src/git/compat/win32/headless.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_pid
  - get_processes
  - get_ancestry
  - get_is_being_debugged
  - get_peak_memory_info
  - KV
  - trace2_collect_process_info
  source_file: /src/git/compat/win32/trace2_win32_process_info.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NR_PIDS_LIMIT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/compat/win32/trace2_win32_process_info.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - finddata2dirent
  - opendir
  - readdir
  - closedir
  source_file: /src/git/compat/win32/dirent.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dd_dir
        type: struct dirent
      - name: dd_handle
        type: HANDLE
      - name: dd_stat
        type: int
      item_type: struct
      name: DIR
      pos:
        line_end: 6
        line_start: 2
        source_file: /src/git/compat/win32/dirent.c
    typedefs: []
    union: []
- function_names:
  - win32_has_dos_drive_prefix
  - win32_skip_dos_drive_prefix
  - win32_offset_1st_component
  - win32_fspathncmp
  - win32_fspathcmp
  source_file: /src/git/compat/win32/path-utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - initialize_pipe_name
  - get_active_state
  - ipc_get_active_state
  - connect_to_server
  - ipc_client_try_connect
  - ipc_client_close_connection
  - ipc_client_send_command_to_connection
  - ipc_client_send_command
  - dup_fd_from_pipe
  - queue_overlapped_connect
  - wait_for_connection
  - do_io_reply_callback
  - do_io
  - use_connection
  - wait_for_startup_barrier
  - server_thread_proc
  - init_sa
  - release_sa
  - get_sa
  - create_new_pipe
  - ipc_server_init_async
  - ipc_server_start_async
  - ipc_server_stop_async
  - ipc_server_await
  - ipc_server_free
  source_file: /src/git/compat/simple-ipc/ipc-win32.c
  types:
    enum:
    - enumerators:
      - name: MAGIC_SERVER_REPLY_DATA
      - name: MAGIC_SERVER_THREAD_DATA
      - name: MAGIC_SERVER_DATA
      item_type: enum
      name: magic
      pos:
        line_end: 333
        line_start: 329
        source_file: /src/git/compat/simple-ipc/ipc-win32.c
    - enumerators:
      - name: CR_CONNECTED
        value: '0'
      - name: CR_WAIT_ERROR
      - name: CR_SHUTDOWN
      - name: CR_CONNECT_PENDING
      - name: CR_CONNECT_ERROR
      item_type: enum
      name: connect_result
      pos:
        line_end: 384
        line_start: 378
        source_file: /src/git/compat/simple-ipc/ipc-win32.c
    preproc_defs:
    - item_type: preproc_def
      name: WAIT_STEP_MS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/git/compat/simple-ipc/ipc-win32.c
      type_or_value: (50)
    - item_type: preproc_def
      name: WINDOWS_CONNECTION_TIMEOUT_MS
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/git/compat/simple-ipc/ipc-win32.c
      type_or_value: (30000)
    - item_type: preproc_def
      name: NR_EA
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/git/compat/simple-ipc/ipc-win32.c
      type_or_value: (1)
    structs:
    - fields:
      - name: magic
        type: enum magic
      - name: fd
        type: int
      - name: '*server_thread_data'
        type: struct ipc_server_thread_data
      item_type: struct
      name: ipc_server_reply_data
      pos:
        line_end: 339
        line_start: 335
        source_file: /src/git/compat/simple-ipc/ipc-win32.c
    - fields:
      - name: magic
        type: enum magic
      - name: '*next_thread'
        type: struct ipc_server_thread_data
      - name: '*server_data'
        type: struct ipc_server_data
      - name: pthread_id
        type: pthread_t
      - name: hPipe
        type: HANDLE
      item_type: struct
      name: ipc_server_thread_data
      pos:
        line_end: 347
        line_start: 341
        source_file: /src/git/compat/simple-ipc/ipc-win32.c
    - fields:
      - name: magic
        type: enum magic
      - name: '*application_cb'
        type: ipc_server_application_cb
      - name: '*application_data'
        type: void
      - name: buf_path
        type: struct strbuf
      - name: wpath[MAX_PATH]
        type: wchar_t
      - name: hEventStopRequested
        type: HANDLE
      - name: '*thread_list'
        type: struct ipc_server_thread_data
      - name: is_stopped
        type: int
      - name: startup_barrier
        type: pthread_mutex_t
      - name: started
        type: int
      item_type: struct
      name: ipc_server_data
      pos:
        line_end: 376
        line_start: 363
        source_file: /src/git/compat/simple-ipc/ipc-win32.c
    - fields:
      - name: pEveryoneSID
        type: PSID
      - name: pACL
        type: PACL
      - name: pSD
        type: PSECURITY_DESCRIPTOR
      - name: lpSA
        type: LPSECURITY_ATTRIBUTES
      item_type: struct
      name: my_sa_data
      pos:
        line_end: 632
        line_start: 626
        source_file: /src/git/compat/simple-ipc/ipc-win32.c
    typedefs: []
    union: []
- function_names:
  - ipc_server_run
  source_file: /src/git/compat/simple-ipc/ipc-shared.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ipc_get_active_state
  - connect_to_server
  - ipc_client_try_connect
  - ipc_client_close_connection
  - ipc_client_send_command_to_connection
  - ipc_client_send_command
  - set_socket_blocking_flag
  - fifo_dequeue
  - fifo_enqueue
  - worker_thread__wait_for_connection
  - do_io_reply_callback
  - worker_thread__wait_for_io_start
  - worker_thread__do_io
  - thread_block_sigpipe
  - worker_thread_proc
  - accept_thread__wait_for_connection
  - accept_thread_proc
  - create_listener_socket
  - setup_listener_socket
  - ipc_server_init_async
  - ipc_server_start_async
  - ipc_server_stop_async
  - ipc_server_await
  - ipc_server_free
  source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
  types:
    enum:
    - enumerators:
      - name: MAGIC_SERVER_REPLY_DATA
      - name: MAGIC_WORKER_THREAD_DATA
      - name: MAGIC_SERVER_DATA
      - name: MAGIC_ACCEPT_THREAD_DATA
      item_type: enum
      name: magic
      pos:
        line_end: 272
        line_start: 267
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
    preproc_defs:
    - item_type: preproc_def
      name: WAIT_STEP_MS
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
      type_or_value: (50)
    - item_type: preproc_def
      name: MY_CONNECTION_TIMEOUT_MS
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
      type_or_value: (1000)
    - item_type: preproc_def
      name: MY_WAIT_POLL_TIMEOUT_MS
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
      type_or_value: (10)
    - item_type: preproc_def
      name: MY_ACCEPT_POLL_TIMEOUT_MS
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
      type_or_value: (60 * 1000)
    - item_type: preproc_def
      name: FIFO_SCALE
      pos:
        line_end: 766
        line_start: 765
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
      type_or_value: (100)
    - item_type: preproc_def
      name: LISTEN_BACKLOG
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
      type_or_value: (50)
    structs:
    - fields:
      - name: magic
        type: enum magic
      - name: fd
        type: int
      - name: '*worker_thread_data'
        type: struct ipc_worker_thread_data
      item_type: struct
      name: ipc_server_reply_data
      pos:
        line_end: 278
        line_start: 274
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
    - fields:
      - name: magic
        type: enum magic
      - name: '*next_thread'
        type: struct ipc_worker_thread_data
      - name: '*server_data'
        type: struct ipc_server_data
      - name: pthread_id
        type: pthread_t
      item_type: struct
      name: ipc_worker_thread_data
      pos:
        line_end: 285
        line_start: 280
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
    - fields:
      - name: magic
        type: enum magic
      - name: '*server_data'
        type: struct ipc_server_data
      - name: '*server_socket'
        type: struct unix_ss_socket
      - name: fd_send_shutdown
        type: int
      - name: fd_wait_shutdown
        type: int
      - name: pthread_id
        type: pthread_t
      item_type: struct
      name: ipc_accept_thread_data
      pos:
        line_end: 296
        line_start: 287
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
    - fields:
      - name: magic
        type: enum magic
      - name: '*application_cb'
        type: ipc_server_application_cb
      - name: '*application_data'
        type: void
      - name: buf_path
        type: struct strbuf
      - name: '*accept_thread'
        type: struct ipc_accept_thread_data
      - name: '*worker_thread_list'
        type: struct ipc_worker_thread_data
      - name: work_available_mutex
        type: pthread_mutex_t
      - name: work_available_cond
        type: pthread_cond_t
      - name: '*fifo_fds'
        type: int
      - name: queue_size
        type: int
      - name: back_pos
        type: int
      - name: front_pos
        type: int
      - name: started
        type: int
      - name: shutdown_requested
        type: int
      - name: is_stopped
        type: int
      item_type: struct
      name: ipc_server_data
      pos:
        line_end: 333
        line_start: 308
        source_file: /src/git/compat/simple-ipc/ipc-unix-socket.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/poll/poll.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: pollfd
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/compat/poll/poll.h
      type_or_value: compat_pollfd
    - item_type: preproc_def
      name: POLLIN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/compat/poll/poll.h
      type_or_value: '0x0001      '
    - item_type: preproc_def
      name: POLLPRI
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/compat/poll/poll.h
      type_or_value: '0x0002      '
    - item_type: preproc_def
      name: POLLOUT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/compat/poll/poll.h
      type_or_value: '0x0004      '
    - item_type: preproc_def
      name: POLLERR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/compat/poll/poll.h
      type_or_value: '0x0008      '
    - item_type: preproc_def
      name: POLLHUP
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/compat/poll/poll.h
      type_or_value: '0x0010      '
    - item_type: preproc_def
      name: POLLNVAL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/compat/poll/poll.h
      type_or_value: '0x0020      '
    - item_type: preproc_def
      name: POLLRDNORM
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/compat/poll/poll.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: POLLRDBAND
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/compat/poll/poll.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: POLLWRNORM
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/compat/poll/poll.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: POLLWRBAND
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/compat/poll/poll.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: INFTIM
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/git/compat/poll/poll.h
      type_or_value: (-1)
    structs:
    - fields:
      - name: fd
        type: int
      - name: events
        type: short
      - name: revents
        type: short
      item_type: struct
      name: pollfd
      pos:
        line_end: 55
        line_start: 50
        source_file: /src/git/compat/poll/poll.h
    typedefs:
    - item_type: typedef
      name: nfds_t
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/git/compat/poll/poll.h
      type: unsigned long
    union: []
- function_names:
  - IsConsoleHandle
  - IsSocketHandle
  - win32_compute_revents
  - win32_compute_revents_socket
  - compute_revents
  - poll
  source_file: /src/git/compat/poll/poll.c
  types:
    enum:
    - enumerators:
      - name: FilePipeLocalInformation
        value: '24'
      item_type: enum
      name: _FILE_INFORMATION_CLASS
      pos:
        line_end: 124
        line_start: 122
        source_file: /src/git/compat/poll/poll.c
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/compat/poll/poll.c
      type_or_value: '0x0603'
    - item_type: preproc_def
      name: INFTIM
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/git/compat/poll/poll.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: MSG_PEEK
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/git/compat/poll/poll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PIPE_BUF
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/git/compat/poll/poll.c
      type_or_value: '512'
    structs:
    - fields:
      - name: NamedPipeType
        type: ULONG
      - name: NamedPipeConfiguration
        type: ULONG
      - name: MaximumInstances
        type: ULONG
      - name: CurrentInstances
        type: ULONG
      - name: InboundQuota
        type: ULONG
      - name: ReadDataAvailable
        type: ULONG
      - name: OutboundQuota
        type: ULONG
      - name: WriteQuotaAvailable
        type: ULONG
      - name: NamedPipeState
        type: ULONG
      - name: NamedPipeEnd
        type: ULONG
      item_type: struct
      name: _FILE_PIPE_LOCAL_INFORMATION
      pos:
        line_end: 111
        line_start: 100
        source_file: /src/git/compat/poll/poll.c
    - fields:
      - name: u
        type: "union {\n    DWORD Status;\n    PVOID Pointer;\n  }"
      - name: Information
        type: ULONG_PTR
      item_type: struct
      name: _IO_STATUS_BLOCK
      pos:
        line_end: 120
        line_start: 113
        source_file: /src/git/compat/poll/poll.c
    typedefs:
    - item_type: typedef
      name: "(WINAPI *PNtQueryInformationFile)\n\t (HANDLE, IO_STATUS_BLOCK *, VOID
        *, ULONG, FILE_INFORMATION_CLASS)"
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/git/compat/poll/poll.c
      type: DWORD
    union: []
- function_names:
  - fsmonitor_ipc__get_path
  source_file: /src/git/compat/fsmonitor/fsm-ipc-win32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_remote_protocol
  - fsmonitor__get_fs_info
  - fsmonitor__is_fs_remote
  - fsmonitor__get_alias
  - fsmonitor__resolve_alias
  source_file: /src/git/compat/fsmonitor/fsm-path-utils-win32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fsm_health__ctor
  - fsm_health__dtor
  - fsm_health__loop
  - fsm_health__stop_async
  source_file: /src/git/compat/fsmonitor/fsm-health-darwin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/fsmonitor/fsm-health.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - normalize_path_in_utf8
  - check_for_shortnames
  - get_relative_longname
  - fsm_listen__stop_async
  - create_watch
  - destroy_watch
  - start_rdcw_watch
  - recv_rdcw_watch
  - cancel_rdcw_watch
  - process_1_worktree_event
  - process_worktree_events
  - process_gitdir_events
  - fsm_listen__loop
  - fsm_listen__ctor
  - fsm_listen__dtor
  source_file: /src/git/compat/fsmonitor/fsm-listen-win32.c
  types:
    enum:
    - enumerators:
      - name: GRR_NO_CONVERSION_NEEDED
      - name: GRR_SHUTDOWN
      - name: GRR_HAVE_CONVERSION
      item_type: enum
      name: get_relative_result
      pos:
        line_end: 180
        line_start: 176
        source_file: /src/git/compat/fsmonitor/fsm-listen-win32.c
    preproc_defs:
    - item_type: preproc_def
      name: MAX_RDCW_BUF_FALLBACK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/compat/fsmonitor/fsm-listen-win32.c
      type_or_value: (65536)
    - item_type: preproc_def
      name: MAX_RDCW_BUF
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/compat/fsmonitor/fsm-listen-win32.c
      type_or_value: (65536 * 8)
    - item_type: preproc_def
      name: LISTENER_SHUTDOWN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/git/compat/fsmonitor/fsm-listen-win32.c
      type_or_value: '0'
    - item_type: preproc_def
      name: LISTENER_HAVE_DATA_WORKTREE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/git/compat/fsmonitor/fsm-listen-win32.c
      type_or_value: '1'
    - item_type: preproc_def
      name: LISTENER_HAVE_DATA_GITDIR
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/git/compat/fsmonitor/fsm-listen-win32.c
      type_or_value: '2'
    structs:
    - fields:
      - name: buffer[MAX_RDCW_BUF]
        type: char
      - name: buf_len
        type: DWORD
      - name: count
        type: DWORD
      - name: path
        type: struct strbuf
      - name: wpath_longname[MAX_PATH + 1]
        type: wchar_t
      - name: wpath_longname_len
        type: DWORD
      - name: hDir
        type: HANDLE
      - name: hEvent
        type: HANDLE
      - name: overlapped
        type: OVERLAPPED
      - name: is_active
        type: BOOL
      - name: has_shortnames
        type: BOOL
      - name: has_tilde
        type: BOOL
      - name: dotgit_shortname[16]
        type: wchar_t
      item_type: struct
      name: one_watch
      pos:
        line_end: 57
        line_start: 23
        source_file: /src/git/compat/fsmonitor/fsm-listen-win32.c
    - fields:
      - name: '*watch_worktree'
        type: struct one_watch
      - name: '*watch_gitdir'
        type: struct one_watch
      - name: hEventShutdown
        type: HANDLE
      - name: hListener[3]
        type: HANDLE
      - name: nr_listener_handles
        type: int
      item_type: struct
      name: fsm_listen_data
      pos:
        line_end: 71
        line_start: 59
        source_file: /src/git/compat/fsmonitor/fsm-listen-win32.c
    typedefs: []
    union: []
- function_names:
  - fsmonitor_ipc__get_path
  source_file: /src/git/compat/fsmonitor/fsm-ipc-darwin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/fsmonitor/fsm-listen.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fsmonitor__get_fs_info
  - fsmonitor__is_fs_remote
  - fsmonitor__get_alias
  - fsmonitor__resolve_alias
  source_file: /src/git/compat/fsmonitor/fsm-path-utils-darwin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: kFSEventStreamEventFlagNone
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagMustScanSubDirs
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagUserDropped
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagKernelDropped
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagEventIdsWrapped
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagHistoryDone
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagRootChanged
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagMount
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagUnmount
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemCreated
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemRemoved
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemInodeMetaMod
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemRenamed
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemModified
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemFinderInfoMod
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemChangeOwner
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemXattrMod
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemIsFile
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemIsDir
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00020000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemIsSymlink
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagOwnEvent
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00080000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemIsHardlink
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00100000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemIsLastHardlink
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00200000'
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemCloned
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x00400000'
    - item_type: preproc_def
      name: kCFStringEncodingUTF8
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x08000100'
    - item_type: preproc_def
      name: kFSEventStreamCreateFlagNoDefer
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: kFSEventStreamCreateFlagWatchRoot
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: kFSEventStreamCreateFlagFileEvents
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: kFSEventStreamEventIdSinceNow
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type_or_value: 0xFFFFFFFFFFFFFFFFULL
    structs:
    - fields:
      - name: version
        type: long long
      - name: '*cb_data'
        type: void
      item_type: struct
      name: FSEventStreamContext
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
    typedefs:
    - item_type: typedef
      name: FSEventStreamCreateFlags
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: unsigned int
    - item_type: typedef
      name: '*FSEventStreamRef'
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: __FSEventStream
    - item_type: typedef
      name: ConstFSEventStreamRef
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: FSEventStreamRef
    - item_type: typedef
      name: CFStringEncoding
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: unsigned int
    - item_type: typedef
      name: '*CFStringRef'
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: __CFString
    - item_type: typedef
      name: '*CFArrayRef'
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: __CFArray
    - item_type: typedef
      name: '*CFRunLoopRef'
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: __CFRunLoop
    - item_type: typedef
      name: FSEventStreamContext
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: FSEventStreamContext
    - item_type: typedef
      name: FSEventStreamEventFlags
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: unsigned int
    - item_type: typedef
      name: FSEventStreamEventId
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: unsigned long long
    - item_type: typedef
      name: "(*FSEventStreamCallback)(ConstFSEventStreamRef streamRef,\n\t\t\t\t      void
        *context,\n\t\t\t\t      __SIZE_TYPE__ num_of_events,\n\t\t\t\t      void
        *event_paths,\n\t\t\t\t      const FSEventStreamEventFlags event_flags[],\n\t\t\t\t
        \     const FSEventStreamEventId event_ids[])"
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: void
    - item_type: typedef
      name: CFTimeInterval
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/git/compat/fsmonitor/fsm-darwin-gcc.h
      type: double
    union: []
- function_names:
  - lookup_bhfi
  - bhfi_eq
  - has_worktree_moved
  - fsm_health__ctor
  - fsm_health__dtor
  - call_all
  - fsm_health__loop
  - fsm_health__stop_async
  source_file: /src/git/compat/fsmonitor/fsm-health-win32.c
  types:
    enum:
    - enumerators:
      - name: CTX_INIT
        value: '0'
      - name: CTX_TIMER
      - name: CTX_TERM
      item_type: enum
      name: interval_fn_ctx
      pos:
        line_end: 21
        line_start: 17
        source_file: /src/git/compat/fsmonitor/fsm-health-win32.c
    preproc_defs:
    - item_type: preproc_def
      name: WAIT_FREQ_MS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/compat/fsmonitor/fsm-health-win32.c
      type_or_value: (60 * 1000)
    - item_type: preproc_def
      name: HEALTH_SHUTDOWN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/compat/fsmonitor/fsm-health-win32.c
      type_or_value: '0'
    structs:
    - fields:
      - name: hEventShutdown
        type: HANDLE
      - name: hHandles[1]
        type: HANDLE
      - name: nr_handles
        type: int
      - name: wt_moved
        type: "struct wt_moved\n\t{\n\t\twchar_t wpath[MAX_PATH + 1];\n\t\tBY_HANDLE_FILE_INFORMATION
          bhfi;\n\t}"
      item_type: struct
      name: fsm_health_data
      pos:
        line_end: 39
        line_start: 26
        source_file: /src/git/compat/fsmonitor/fsm-health-win32.c
    - fields:
      - name: wpath[MAX_PATH + 1]
        type: wchar_t
      - name: bhfi
        type: BY_HANDLE_FILE_INFORMATION
      item_type: struct
      name: wt_moved
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/git/compat/fsmonitor/fsm-health-win32.c
    typedefs:
    - item_type: typedef
      name: "(interval_fn)(struct fsmonitor_daemon_state *state,\n\t\t\t  enum interval_fn_ctx
        ctx)"
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/compat/fsmonitor/fsm-health-win32.c
      type: int
    union: []
- function_names:
  - check_vfs4git
  - fsm_os__incompatible
  source_file: /src/git/compat/fsmonitor/fsm-settings-win32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - log_flags_set
  - ef_is_root_changed
  - ef_is_root_delete
  - ef_is_root_renamed
  - ef_is_dropped
  - ef_ignore_xattr
  - my_add_path
  - fsevent_callback
  - fsm_listen__ctor
  - fsm_listen__dtor
  - fsm_listen__stop_async
  - fsm_listen__loop
  source_file: /src/git/compat/fsmonitor/fsm-listen-darwin.c
  types:
    enum:
    - enumerators:
      - name: SHUTDOWN_EVENT
        value: '0'
      - name: FORCE_ERROR_STOP
      - name: FORCE_SHUTDOWN
      item_type: enum
      name: shutdown_style
      pos:
        line_end: 53
        line_start: 49
        source_file: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    preproc_defs:
    - item_type: preproc_def
      name: kFSEventStreamEventFlagItemCloned
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/compat/fsmonitor/fsm-listen-darwin.c
      type_or_value: '0x00400000'
    structs:
    - fields:
      - name: cfsr_worktree_path
        type: CFStringRef
      - name: cfsr_gitdir_path
        type: CFStringRef
      - name: cfar_paths_to_watch
        type: CFArrayRef
      - name: nr_paths_watching
        type: int
      - name: stream
        type: FSEventStreamRef
      - name: dq
        type: dispatch_queue_t
      - name: dq_finished
        type: pthread_cond_t
      - name: dq_lock
        type: pthread_mutex_t
      - name: shutdown_style
        type: "enum shutdown_style {\n\t\tSHUTDOWN_EVENT = 0,\n\t\tFORCE_SHUTDOWN,\n\t\tFORCE_ERROR_STOP,\n\t}"
      - name: stream_scheduled
        type: unsigned int
      - name: stream_started
        type: unsigned int
      item_type: struct
      name: fsm_listen_data
      pos:
        line_end: 57
        line_start: 35
        source_file: /src/git/compat/fsmonitor/fsm-listen-darwin.c
    typedefs: []
    union: []
- function_names:
  - check_uds_volume
  - fsm_os__incompatible
  source_file: /src/git/compat/fsmonitor/fsm-settings-darwin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_proc_stat
  - stat_parent_pid
  - push_ancestry_name
  - trace2_collect_process_info
  source_file: /src/git/compat/linux/procinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STAT_PARENT_PID_READ_N
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/compat/linux/procinfo.c
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_proc_info
  - push_ancestry_name
  - trace2_collect_process_info
  source_file: /src/git/compat/darwin/procinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NR_PIDS_LIMIT
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/compat/darwin/procinfo.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - regfree
  - regexec
  - regcomp
  - regerror
  - re_set_registers
  - re_match_2
  - re_match
  - re_search
  - re_compile_pattern
  - re_set_syntax
  - re_search_2
  - re_compile_fastmap
  source_file: /src/git/compat/regex/regex.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: alloca
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/git/compat/regex/regex.c
      type_or_value: alloca_is_bad_you_should_never_use_it
    - item_type: preproc_def
      name: bool
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/git/compat/regex/regex.c
      type_or_value: int
    - item_type: preproc_def
      name: 'true'
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/git/compat/regex/regex.c
      type_or_value: (1)
    - item_type: preproc_def
      name: 'false'
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/git/compat/regex/regex.c
      type_or_value: (0)
    structs: []
    typedefs: []
    union: []
- function_names:
  - MAX
  - internal_function::re_string_allocate
  - internal_function::re_string_construct
  - internal_function::re_string_realloc_buffers
  - internal_function::re_string_construct_common
  - internal_function::build_wcs_buffer
  - internal_function::build_wcs_upper_buffer
  - internal_function::re_string_skip_chars
  - internal_function::build_upper_buffer
  - internal_function::re_string_translate_buffer
  - internal_function::re_string_reconstruct
  - re_string_peek_byte_case
  - re_string_fetch_byte_case
  - internal_function::re_string_destruct
  - internal_function::re_string_context_at
  - internal_function::re_node_set_alloc
  - internal_function::re_node_set_init_1
  - internal_function::re_node_set_init_2
  - internal_function::re_node_set_init_copy
  - internal_function::re_node_set_add_intersect
  - internal_function::re_node_set_init_union
  - internal_function::re_node_set_merge
  - internal_function::re_node_set_insert
  - internal_function::re_node_set_insert_last
  - re_node_set_compare
  - re_node_set_contains
  - internal_function::re_node_set_remove_at
  - internal_function::re_dfa_add_node
  - internal_function::calc_state_hash
  - internal_function::re_acquire_state
  - internal_function::re_acquire_state_context
  - register_state
  - free_state
  - internal_function::create_ci_newstate
  - internal_function::create_cd_newstate
  source_file: /src/git/compat/regex/regex_internal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - btowc
  - re_compile_pattern
  - re_set_syntax
  - re_compile_fastmap
  - re_set_fastmap
  - re_compile_fastmap_iter
  - regcomp
  - regerror
  - free_dfa_content
  - regfree
  - libc_freeres_fn
  - re_compile_internal
  - init_dfa
  - internal_function::init_word_char
  - free_workarea_compile
  - create_initial_state
  - optimize_utf8
  - analyze
  - postorder
  - preorder
  - optimize_subexps
  - lower_subexps
  - lower_subexp
  - calc_first
  - calc_next
  - link_nfa_nodes
  - internal_function::duplicate_node_closure
  - search_duplicated_node
  - duplicate_node
  - calc_inveclosure
  - calc_eclosure
  - calc_eclosure_iter
  - internal_function::fetch_token
  - internal_function
  - internal_function::peek_token_bracket
  - parse
  - parse_reg_exp
  - parse_branch
  - parse_expression
  - parse_sub_exp
  - parse_dup_op
  - build_range_exp
  - build_collating_symbol
  - strlen
  - parse_bracket_element
  - parse_bracket_symbol
  - build_equiv_class
  - build_charclass
  - BUILD_CHARCLASS_LOOP
  - build_charclass_op
  - fetch_number
  - free_charset
  - create_tree
  - create_token_tree
  - mark_opt_subexp
  - free_token
  - free_tree
  - duplicate_tree
  source_file: /src/git/compat/regex/regcomp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REG_NOERROR_IDX
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: '0'
    - item_type: preproc_def
      name: REG_NOMATCH_IDX
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_NOERROR_IDX + sizeof "Success")
    - item_type: preproc_def
      name: REG_BADPAT_IDX
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_NOMATCH_IDX + sizeof "No match")
    - item_type: preproc_def
      name: REG_ECOLLATE_IDX
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_BADPAT_IDX + sizeof "Invalid regular expression")
    - item_type: preproc_def
      name: REG_ECTYPE_IDX
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_ECOLLATE_IDX + sizeof "Invalid collation character")
    - item_type: preproc_def
      name: REG_EESCAPE_IDX
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_ECTYPE_IDX + sizeof "Invalid character class name")
    - item_type: preproc_def
      name: REG_ESUBREG_IDX
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_EESCAPE_IDX + sizeof "Trailing backslash")
    - item_type: preproc_def
      name: REG_EBRACK_IDX
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_ESUBREG_IDX + sizeof "Invalid back reference")
    - item_type: preproc_def
      name: REG_EPAREN_IDX
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_EBRACK_IDX + sizeof "Unmatched [ or [^")
    - item_type: preproc_def
      name: REG_EBRACE_IDX
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(")
    - item_type: preproc_def
      name: REG_BADBR_IDX
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_EBRACE_IDX + sizeof "Unmatched \\{")
    - item_type: preproc_def
      name: REG_ERANGE_IDX
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}")
    - item_type: preproc_def
      name: REG_ESPACE_IDX
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_ERANGE_IDX + sizeof "Invalid range end")
    - item_type: preproc_def
      name: REG_BADRPT_IDX
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_ESPACE_IDX + sizeof "Memory exhausted")
    - item_type: preproc_def
      name: REG_EEND_IDX
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression")
    - item_type: preproc_def
      name: REG_ESIZE_IDX
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_EEND_IDX + sizeof "Premature end of regular expression")
    - item_type: preproc_def
      name: REG_ERPAREN_IDX
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: (REG_ESIZE_IDX + sizeof "Regular expression too big")
    - item_type: preproc_def
      name: BRACKET_NAME_BUF_SIZE
      pos:
        line_end: 2622
        line_start: 2621
        source_file: /src/git/compat/regex/regcomp.c
      type_or_value: '32'
    structs: []
    typedefs:
    - item_type: typedef
      name: intptr_t
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/git/compat/regex/regcomp.c
      type: long
    - item_type: typedef
      name: uintptr_t
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/git/compat/regex/regcomp.c
      type: unsigned long
    union: []
- function_names:
  - regexec
  - attribute_compat_text_section::__compat_regexec
  - re_match
  - re_search
  - re_match_2
  - re_search_2
  - re_search_2_stub
  - re_search_stub
  - re_copy_regs
  - re_set_registers
  - re_search_internal
  - prune_impossible_nodes
  - acquire_init_state_context
  - internal_function::check_matching
  - internal_function::check_halt_node_context
  - internal_function::check_halt_state_context
  - internal_function::proceed_next_node
  - internal_function::push_fail_stack
  - internal_function::pop_fail_stack
  - internal_function
  - internal_function::free_fail_stack_return
  - internal_function::update_regs
  - STATE_NODE_CONTAINS
  - internal_function::sift_states_backward
  - internal_function::build_sifted_states
  - internal_function::clean_state_log_if_needed
  - internal_function::merge_state_array
  - internal_function::update_cur_sifted_state
  - internal_function::add_epsilon_src_nodes
  - internal_function::sub_epsilon_src_nodes
  - internal_function::check_dst_limits
  - internal_function::check_dst_limits_calc_pos_1
  - internal_function::check_dst_limits_calc_pos
  - internal_function::check_subexp_limits
  - internal_function::sift_states_bkref
  - internal_function::sift_states_iter_mb
  - internal_function::transit_state
  - internal_function::merge_state_with_log
  - internal_function::find_recover_state
  - internal_function::check_subexp_matching_top
  - transit_state_sb
  - internal_function::transit_state_mb
  - internal_function::transit_state_bkref
  - internal_function
  - internal_function::get_subexp_sub
  - internal_function::find_subexp_node
  - internal_function::check_arrival
  - internal_function::check_arrival_add_next_nodes
  - internal_function::check_arrival_expand_ecl
  - internal_function::check_arrival_expand_ecl_sub
  - internal_function::expand_bkref_cache
  - internal_function::build_trtable
  - internal_function::group_nodes_into_DFAstates
  - internal_function::check_node_accept_bytes
  - internal_function::find_collation_sequence_value
  - internal_function::check_node_accept
  - internal_function::extend_buffers
  - internal_function::match_ctx_init
  - internal_function::match_ctx_clean
  - internal_function::match_ctx_free
  - internal_function::match_ctx_add_entry
  - internal_function::search_cur_bkref_entry
  - internal_function::match_ctx_add_subtop
  - internal_function::match_ctx_add_sublast
  - internal_function::sift_ctx_init
  source_file: /src/git/compat/regex/regexec.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dests_node[SBC_MAX]
        type: re_node_set
      - name: dests_ch[SBC_MAX]
        type: bitset_t
      item_type: struct
      name: dests_alloc
      pos:
        line_end: 3329
        line_start: 3325
        source_file: /src/git/compat/regex/regexec.c
    typedefs: []
    union: []
- function_names:
  - __libc_lock_init
  - __libc_lock_lock
  - __libc_lock_unlock
  - isblank
  - is_blank
  - gettext
  - gettext
  - gettext_noop
  - BE
  - BE
  - __attribute
  - bitset_set
  - bitset_clear
  - bitset_contain
  - bitset_empty
  - bitset_set_all
  - bitset_copy
  - IS_EPSILON_NODE
  - re_string_peek_byte
  - re_string_fetch_byte
  - re_string_first_byte
  - re_string_is_single_byte_char
  - re_string_eoi
  - re_string_cur_idx
  - re_string_get_buffer
  - re_string_length
  - re_string_byte_at
  - re_string_skip_bytes
  - re_string_set_index
  - __libc_use_alloca
  - __libc_use_alloca
  - __libc_use_alloca
  - re_malloc
  - re_realloc
  - re_free
  - IS_WORD_CONTEXT
  - IS_NEWLINE_CONTEXT
  - IS_BEGBUF_CONTEXT
  - IS_ENDBUF_CONTEXT
  - IS_ORDINARY_CONTEXT
  - IS_WORD_CHAR
  - IS_NEWLINE
  - IS_WIDE_WORD_CHAR
  - IS_WIDE_NEWLINE
  - NOT_SATISFY_PREV_CONSTRAINT
  - NOT_SATISFY_NEXT_CONSTRAINT
  - re_node_set_init_empty
  - re_node_set_remove
  - re_node_set_empty
  - re_node_set_free
  - bitset_not
  - bitset_merge
  - bitset_mask
  - re_string_char_size_at
  - re_string_wchar_at
  - re_string_elem_size_at
  source_file: /src/git/compat/regex/regex_internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _REGEX_INTERNAL_H
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _RE_DEFINE_LOCALE_FUNCTIONS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: ((size_t) -1)
    - item_type: preproc_def
      name: MB_CUR_MAX
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SBC_MAX
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '256'
    - item_type: preproc_def
      name: COLL_ELEM_LEN_MAX
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NEWLINE_CHAR
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '''\n'''
    - item_type: preproc_def
      name: WIDE_NEWLINE_CHAR
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: L'\n'
    - item_type: preproc_def
      name: __wctype
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: wctype
    - item_type: preproc_def
      name: __iswctype
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: iswctype
    - item_type: preproc_def
      name: __btowc
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: btowc
    - item_type: preproc_def
      name: __mbrtowc
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: mbrtowc
    - item_type: preproc_def
      name: __mempcpy
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: mempcpy
    - item_type: preproc_def
      name: __wcrtomb
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: wcrtomb
    - item_type: preproc_def
      name: __regfree
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: regfree
    - item_type: preproc_def
      name: BITSET_WORD_MAX
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: ULONG_MAX
    - item_type: preproc_def
      name: BITSET_WORD_BITS
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: (sizeof (bitset_word_t) * CHAR_BIT)
    - item_type: preproc_def
      name: BITSET_WORDS
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: (SBC_MAX / BITSET_WORD_BITS)
    - item_type: preproc_def
      name: PREV_WORD_CONSTRAINT
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: PREV_NOTWORD_CONSTRAINT
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: NEXT_WORD_CONSTRAINT
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: NEXT_NOTWORD_CONSTRAINT
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: PREV_NEWLINE_CONSTRAINT
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: NEXT_NEWLINE_CONSTRAINT
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: PREV_BEGBUF_CONSTRAINT
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: NEXT_ENDBUF_CONSTRAINT
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: WORD_DELIM_CONSTRAINT
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: NOT_WORD_DELIM_CONSTRAINT
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: internal_function
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: __attribute ((regparm (3), stdcall))
    - item_type: preproc_def
      name: BIN_TREE_STORAGE_SIZE
      pos:
        line_end: 494
        line_start: 492
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: ((1024 - sizeof (void *)) / sizeof (bin_tree_t))
    - item_type: preproc_def
      name: CONTEXT_WORD
      pos:
        line_end: 503
        line_start: 502
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONTEXT_NEWLINE
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: (CONTEXT_WORD << 1)
    - item_type: preproc_def
      name: CONTEXT_BEGBUF
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: (CONTEXT_NEWLINE << 1)
    - item_type: preproc_def
      name: CONTEXT_ENDBUF
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/git/compat/regex/regex_internal.h
      type_or_value: (CONTEXT_BEGBUF << 1)
    structs:
    - fields:
      - name: alloc
        type: int
      - name: nelem
        type: int
      - name: '*elems'
        type: int
      item_type: struct
      name: re_node_set
      pos:
        line_end: 219
        line_start: 214
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: '*mbchars'
        type: wchar_t
      - name: '*char_classes'
        type: wctype_t
      - name: non_match
        type: unsigned int
      - name: nmbchars
        type: int
      - name: ncoll_syms
        type: int
      - name: nequiv_classes
        type: int
      - name: nranges
        type: int
      - name: nchar_classes
        type: int
      item_type: struct
      name: re_charset_t
      pos:
        line_end: 317
        line_start: 273
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: opr
        type: "union\n  {\n    unsigned char c;\t\t/* for CHARACTER */\n    re_bitset_ptr_t
          sbcset;\t/* for SIMPLE_BRACKET */\n#ifdef RE_ENABLE_I18N\n    re_charset_t
          *mbcset;\t/* for COMPLEX_BRACKET */\n#endif /* RE_ENABLE_I18N */\n    int
          idx;\t\t\t/* for BACK_REF */\n    re_context_type ctx_type;\t/* for ANCHOR
          */\n  }"
      - name: constraint
        type: unsigned int
      - name: duplicated
        type: unsigned int
      - name: opt_subexp
        type: unsigned int
      - name: word_char
        type: unsigned int
      item_type: struct
      name: re_token_t
      pos:
        line_end: 347
        line_start: 320
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: '*raw_mbs'
        type: unsigned char
      - name: '*mbs'
        type: unsigned char
      - name: raw_mbs_idx
        type: int
      - name: valid_len
        type: int
      - name: valid_raw_len
        type: int
      - name: bufs_len
        type: int
      - name: cur_idx
        type: int
      - name: raw_len
        type: int
      - name: len
        type: int
      - name: raw_stop
        type: int
      - name: stop
        type: int
      - name: tip_context
        type: unsigned int
      - name: trans
        type: RE_TRANSLATE_TYPE
      - name: word_char
        type: re_const_bitset_ptr_t
      - name: icase
        type: unsigned char
      - name: is_utf8
        type: unsigned char
      - name: map_notascii
        type: unsigned char
      - name: mbs_allocated
        type: unsigned char
      - name: offsets_needed
        type: unsigned char
      - name: newline_anchor
        type: unsigned char
      - name: word_ops_used
        type: unsigned char
      - name: mb_cur_max
        type: int
      item_type: struct
      name: re_string_t
      pos:
        line_end: 405
        line_start: 351
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: '*parent'
        type: struct bin_tree_t
      - name: '*left'
        type: struct bin_tree_t
      - name: '*right'
        type: struct bin_tree_t
      - name: '*first'
        type: struct bin_tree_t
      - name: '*next'
        type: struct bin_tree_t
      - name: token
        type: re_token_t
      - name: node_idx
        type: int
      item_type: struct
      name: bin_tree_t
      pos:
        line_end: 489
        line_start: 476
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: '*next'
        type: struct bin_tree_storage_t
      - name: data[BIN_TREE_STORAGE_SIZE]
        type: bin_tree_t
      item_type: struct
      name: bin_tree_storage_t
      pos:
        line_end: 499
        line_start: 495
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: hash
        type: unsigned int
      - name: nodes
        type: re_node_set
      - name: non_eps_nodes
        type: re_node_set
      - name: inveclosure
        type: re_node_set
      - name: '*entrance_nodes'
        type: re_node_set
      - name: '**trtable'
        type: struct re_dfastate_t
      - name: context
        type: unsigned int
      - name: halt
        type: unsigned int
      - name: accept_mb
        type: unsigned int
      - name: has_backref
        type: unsigned int
      - name: has_constraint
        type: unsigned int
      item_type: struct
      name: re_dfastate_t
      pos:
        line_end: 547
        line_start: 530
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: num
        type: int
      - name: alloc
        type: int
      - name: '**array'
        type: re_dfastate_t
      item_type: struct
      name: re_state_table_entry
      pos:
        line_end: 555
        line_start: 550
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: next_idx
        type: int
      - name: alloc
        type: int
      - name: '**array'
        type: re_dfastate_t
      item_type: struct
      name: state_array_t
      pos:
        line_end: 564
        line_start: 559
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: node
        type: int
      - name: str_idx
        type: int
      - name: path
        type: state_array_t
      item_type: struct
      name: re_sub_match_last_t
      pos:
        line_end: 573
        line_start: 568
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: str_idx
        type: int
      - name: node
        type: int
      - name: '*path'
        type: state_array_t
      - name: alasts
        type: int
      - name: nlasts
        type: int
      - name: '**lasts'
        type: re_sub_match_last_t
      item_type: struct
      name: re_sub_match_top_t
      pos:
        line_end: 587
        line_start: 579
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: node
        type: int
      - name: str_idx
        type: int
      - name: subexp_from
        type: int
      - name: subexp_to
        type: int
      - name: more
        type: char
      - name: unused
        type: char
      - name: eps_reachable_subexps_map
        type: unsigned short int
      item_type: struct
      name: re_backref_cache_entry
      pos:
        line_end: 598
        line_start: 589
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: input
        type: re_string_t
      - name: eflags
        type: int
      - name: match_last
        type: int
      - name: last_node
        type: int
      - name: '**state_log'
        type: re_dfastate_t
      - name: state_log_top
        type: int
      - name: nbkref_ents
        type: int
      - name: abkref_ents
        type: int
      - name: '*bkref_ents'
        type: struct re_backref_cache_entry
      - name: max_mb_elem_len
        type: int
      - name: nsub_tops
        type: int
      - name: asub_tops
        type: int
      - name: '**sub_tops'
        type: re_sub_match_top_t
      item_type: struct
      name: re_match_context_t
      pos:
        line_end: 625
        line_start: 600
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: '**sifted_states'
        type: re_dfastate_t
      - name: '**limited_states'
        type: re_dfastate_t
      - name: last_node
        type: int
      - name: last_str_idx
        type: int
      - name: limits
        type: re_node_set
      item_type: struct
      name: re_sift_context_t
      pos:
        line_end: 634
        line_start: 627
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: idx
        type: int
      - name: node
        type: int
      - name: '*regs'
        type: regmatch_t
      - name: eps_via_nodes
        type: re_node_set
      item_type: struct
      name: re_fail_stack_ent_t
      pos:
        line_end: 642
        line_start: 636
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: num
        type: int
      - name: alloc
        type: int
      - name: '*stack'
        type: struct re_fail_stack_ent_t
      item_type: struct
      name: re_fail_stack_t
      pos:
        line_end: 649
        line_start: 644
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: '*nodes'
        type: re_token_t
      - name: nodes_alloc
        type: size_t
      - name: nodes_len
        type: size_t
      - name: '*nexts'
        type: int
      - name: '*org_indices'
        type: int
      - name: '*edests'
        type: re_node_set
      - name: '*eclosures'
        type: re_node_set
      - name: '*inveclosures'
        type: re_node_set
      - name: '*state_table'
        type: struct re_state_table_entry
      - name: '*init_state'
        type: re_dfastate_t
      - name: '*init_state_word'
        type: re_dfastate_t
      - name: '*init_state_nl'
        type: re_dfastate_t
      - name: '*init_state_begbuf'
        type: re_dfastate_t
      - name: '*str_tree'
        type: bin_tree_t
      - name: '*str_tree_storage'
        type: bin_tree_storage_t
      - name: sb_char
        type: re_bitset_ptr_t
      - name: str_tree_storage_idx
        type: int
      - name: state_hash_mask
        type: unsigned int
      - name: init_node
        type: int
      - name: nbackref
        type: int
      - name: used_bkref_map
        type: bitset_word_t
      - name: completed_bkref_map
        type: bitset_word_t
      - name: has_plural_match
        type: unsigned int
      - name: has_mb_node
        type: unsigned int
      - name: is_utf8
        type: unsigned int
      - name: map_notascii
        type: unsigned int
      - name: word_ops_used
        type: unsigned int
      - name: mb_cur_max
        type: int
      - name: word_char
        type: bitset_t
      - name: syntax
        type: reg_syntax_t
      - name: '*subexp_map'
        type: int
      item_type: struct
      name: re_dfa_t
      pos:
        line_end: 698
        line_start: 651
        source_file: /src/git/compat/regex/regex_internal.h
    - fields:
      - name: type
        type: bracket_elem_type
      - name: opr
        type: "union\n  {\n    unsigned char ch;\n    unsigned char *name;\n    wchar_t
          wch;\n  }"
      item_type: struct
      name: bracket_elem_t
      pos:
        line_end: 725
        line_start: 716
        source_file: /src/git/compat/regex/regex_internal.h
    typedefs:
    - item_type: typedef
      name: bitset_word_t
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/git/compat/regex/regex_internal.h
      type: unsigned long int
    - item_type: typedef
      name: bitset_t[BITSET_WORDS]
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/git/compat/regex/regex_internal.h
      type: bitset_word_t
    - item_type: typedef
      name: '*re_bitset_ptr_t'
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/git/compat/regex/regex_internal.h
      type: bitset_word_t
    - item_type: typedef
      name: '*re_const_bitset_ptr_t'
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/git/compat/regex/regex_internal.h
      type: bitset_word_t
    - item_type: typedef
      name: re_string_t
      pos:
        line_end: 406
        line_start: 406
        source_file: /src/git/compat/regex/regex_internal.h
      type: re_string_t
    - item_type: typedef
      name: re_dfa_t
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/git/compat/regex/regex_internal.h
      type: re_dfa_t
    - item_type: typedef
      name: bin_tree_t
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/git/compat/regex/regex_internal.h
      type: bin_tree_t
    - item_type: typedef
      name: bin_tree_storage_t
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/git/compat/regex/regex_internal.h
      type: bin_tree_storage_t
    - item_type: typedef
      name: re_dfastate_t
      pos:
        line_end: 548
        line_start: 548
        source_file: /src/git/compat/regex/regex_internal.h
      type: re_dfastate_t
    union: []
- function_names:
  - __REPB_PREFIX
  - __REPB_PREFIX
  source_file: /src/git/compat/regex/regex.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _REGEX_H
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/compat/regex/regex.h
      type_or_value: '1'
    - item_type: preproc_def
      name: __USE_GNU
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/compat/regex/regex.h
      type_or_value: '1'
    - item_type: preproc_def
      name: regcomp
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/compat/regex/regex.h
      type_or_value: git_regcomp
    - item_type: preproc_def
      name: regexec
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/compat/regex/regex.h
      type_or_value: git_regexec
    - item_type: preproc_def
      name: regerror
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/compat/regex/regex.h
      type_or_value: git_regerror
    - item_type: preproc_def
      name: regfree
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/compat/regex/regex.h
      type_or_value: git_regfree
    - item_type: preproc_def
      name: RE_BACKSLASH_ESCAPE_IN_LISTS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/git/compat/regex/regex.h
      type_or_value: ((unsigned long int) 1)
    - item_type: preproc_def
      name: RE_BK_PLUS_QM
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
    - item_type: preproc_def
      name: RE_CHAR_CLASSES
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_BK_PLUS_QM << 1)
    - item_type: preproc_def
      name: RE_CONTEXT_INDEP_ANCHORS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_CHAR_CLASSES << 1)
    - item_type: preproc_def
      name: RE_CONTEXT_INDEP_OPS
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_CONTEXT_INDEP_ANCHORS << 1)
    - item_type: preproc_def
      name: RE_CONTEXT_INVALID_OPS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_CONTEXT_INDEP_OPS << 1)
    - item_type: preproc_def
      name: RE_DOT_NEWLINE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_CONTEXT_INVALID_OPS << 1)
    - item_type: preproc_def
      name: RE_DOT_NOT_NULL
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_DOT_NEWLINE << 1)
    - item_type: preproc_def
      name: RE_HAT_LISTS_NOT_NEWLINE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_DOT_NOT_NULL << 1)
    - item_type: preproc_def
      name: RE_INTERVALS
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_HAT_LISTS_NOT_NEWLINE << 1)
    - item_type: preproc_def
      name: RE_LIMITED_OPS
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_INTERVALS << 1)
    - item_type: preproc_def
      name: RE_NEWLINE_ALT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_LIMITED_OPS << 1)
    - item_type: preproc_def
      name: RE_NO_BK_BRACES
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_NEWLINE_ALT << 1)
    - item_type: preproc_def
      name: RE_NO_BK_PARENS
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_NO_BK_BRACES << 1)
    - item_type: preproc_def
      name: RE_NO_BK_REFS
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_NO_BK_PARENS << 1)
    - item_type: preproc_def
      name: RE_NO_BK_VBAR
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_NO_BK_REFS << 1)
    - item_type: preproc_def
      name: RE_NO_EMPTY_RANGES
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_NO_BK_VBAR << 1)
    - item_type: preproc_def
      name: RE_UNMATCHED_RIGHT_PAREN_ORD
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_NO_EMPTY_RANGES << 1)
    - item_type: preproc_def
      name: RE_NO_POSIX_BACKTRACKING
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
    - item_type: preproc_def
      name: RE_NO_GNU_OPS
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_NO_POSIX_BACKTRACKING << 1)
    - item_type: preproc_def
      name: RE_INVALID_INTERVAL_ORD
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_NO_GNU_OPS << 1)
    - item_type: preproc_def
      name: RE_ICASE
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_INVALID_INTERVAL_ORD << 1)
    - item_type: preproc_def
      name: RE_CARET_ANCHORS_HERE
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_ICASE << 1)
    - item_type: preproc_def
      name: RE_CONTEXT_INVALID_DUP
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_CARET_ANCHORS_HERE << 1)
    - item_type: preproc_def
      name: RE_NO_SUB
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (RE_CONTEXT_INVALID_DUP << 1)
    - item_type: preproc_def
      name: RE_SYNTAX_EMACS
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/git/compat/regex/regex.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RE_SYNTAX_AWK
      pos:
        line_end: 206
        line_start: 200
        source_file: /src/git/compat/regex/regex.h
      type_or_value: "(RE_BACKSLASH_ESCAPE_IN_LISTS   | RE_DOT_NOT_NULL\t\t\t\\\n
        \  | RE_NO_BK_PARENS              | RE_NO_BK_REFS\t\t\t\\\n   | RE_NO_BK_VBAR
        \               | RE_NO_EMPTY_RANGES\t\t\t\\\n   | RE_DOT_NEWLINE\t\t  | RE_CONTEXT_INDEP_ANCHORS\t\t\\\n
        \  | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)"
    - item_type: preproc_def
      name: RE_SYNTAX_GNU_AWK
      pos:
        line_end: 212
        line_start: 207
        source_file: /src/git/compat/regex/regex.h
      type_or_value: "((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS\t\t\\\n
        \  | RE_INVALID_INTERVAL_ORD)\t\t\t\t\t\t\\\n   & ~(RE_DOT_NOT_NULL | RE_CONTEXT_INDEP_OPS\t\t\t\t\\\n
        \      | RE_CONTEXT_INVALID_OPS ))"
    - item_type: preproc_def
      name: RE_SYNTAX_POSIX_AWK
      pos:
        line_end: 217
        line_start: 213
        source_file: /src/git/compat/regex/regex.h
      type_or_value: "(RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS\t\t\\\n
        \  | RE_INTERVALS\t    | RE_NO_GNU_OPS\t\t\t\t\\\n   | RE_INVALID_INTERVAL_ORD)"
    - item_type: preproc_def
      name: RE_SYNTAX_GREP
      pos:
        line_end: 222
        line_start: 218
        source_file: /src/git/compat/regex/regex.h
      type_or_value: "(RE_BK_PLUS_QM              | RE_CHAR_CLASSES\t\t\t\t\\\n   |
        RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS\t\t\t\t\\\n   | RE_NEWLINE_ALT)"
    - item_type: preproc_def
      name: RE_SYNTAX_EGREP
      pos:
        line_end: 228
        line_start: 223
        source_file: /src/git/compat/regex/regex.h
      type_or_value: "(RE_CHAR_CLASSES        | RE_CONTEXT_INDEP_ANCHORS\t\t\t\\\n
        \  | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE\t\t\t\\\n   | RE_NEWLINE_ALT
        \      | RE_NO_BK_PARENS\t\t\t\t\\\n   | RE_NO_BK_VBAR)"
    - item_type: preproc_def
      name: RE_SYNTAX_POSIX_EGREP
      pos:
        line_end: 232
        line_start: 229
        source_file: /src/git/compat/regex/regex.h
      type_or_value: "(RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES\t\t\t\\\n
        \  | RE_INVALID_INTERVAL_ORD)"
    - item_type: preproc_def
      name: RE_SYNTAX_ED
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/git/compat/regex/regex.h
      type_or_value: RE_SYNTAX_POSIX_BASIC
    - item_type: preproc_def
      name: RE_SYNTAX_SED
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/git/compat/regex/regex.h
      type_or_value: RE_SYNTAX_POSIX_BASIC
    - item_type: preproc_def
      name: _RE_SYNTAX_POSIX_COMMON
      pos:
        line_end: 242
        line_start: 239
        source_file: /src/git/compat/regex/regex.h
      type_or_value: "(RE_CHAR_CLASSES | RE_DOT_NEWLINE      | RE_DOT_NOT_NULL\t\t\\\n
        \  | RE_INTERVALS  | RE_NO_EMPTY_RANGES)"
    - item_type: preproc_def
      name: RE_SYNTAX_POSIX_BASIC
      pos:
        line_end: 245
        line_start: 243
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP)
    - item_type: preproc_def
      name: RE_SYNTAX_POSIX_MINIMAL_BASIC
      pos:
        line_end: 251
        line_start: 249
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
    - item_type: preproc_def
      name: RE_SYNTAX_POSIX_EXTENDED
      pos:
        line_end: 257
        line_start: 252
        source_file: /src/git/compat/regex/regex.h
      type_or_value: "(_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS\t\t\t\\\n
        \  | RE_CONTEXT_INDEP_OPS   | RE_NO_BK_BRACES\t\t\t\t\\\n   | RE_NO_BK_PARENS
        \       | RE_NO_BK_VBAR\t\t\t\t\\\n   | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD)"
    - item_type: preproc_def
      name: RE_SYNTAX_POSIX_MINIMAL_EXTENDED
      pos:
        line_end: 265
        line_start: 260
        source_file: /src/git/compat/regex/regex.h
      type_or_value: "(_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS\t\t\t\\\n
        \  | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES\t\t\t\t\\\n   | RE_NO_BK_PARENS
        \       | RE_NO_BK_REFS\t\t\t\t\\\n   | RE_NO_BK_VBAR\t    | RE_UNMATCHED_RIGHT_PAREN_ORD)"
    - item_type: preproc_def
      name: RE_DUP_MAX
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (0x7fff)
    - item_type: preproc_def
      name: REG_EXTENDED
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/git/compat/regex/regex.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REG_ICASE
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (REG_EXTENDED << 1)
    - item_type: preproc_def
      name: REG_NEWLINE
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (REG_ICASE << 1)
    - item_type: preproc_def
      name: REG_NOSUB
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (REG_NEWLINE << 1)
    - item_type: preproc_def
      name: REG_NOTBOL
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/git/compat/regex/regex.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REG_NOTEOL
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: REG_STARTEND
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/git/compat/regex/regex.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: __RE_TRANSLATE_TYPE
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/git/compat/regex/regex.h
      type_or_value: unsigned char *
    - item_type: preproc_def
      name: RE_TRANSLATE_TYPE
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/git/compat/regex/regex.h
      type_or_value: __RE_TRANSLATE_TYPE
    - item_type: preproc_def
      name: REGS_UNALLOCATED
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/git/compat/regex/regex.h
      type_or_value: '0'
    - item_type: preproc_def
      name: REGS_REALLOCATE
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/git/compat/regex/regex.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REGS_FIXED
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/git/compat/regex/regex.h
      type_or_value: '2'
    - item_type: preproc_def
      name: RE_NREGS
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/git/compat/regex/regex.h
      type_or_value: '30'
    - item_type: preproc_def
      name: __restrict
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/git/compat/regex/regex.h
      type_or_value: restrict
    - item_type: preproc_def
      name: __restrict_arr
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/git/compat/regex/regex.h
      type_or_value: __restrict
    structs:
    - fields:
      - name: '*__REPB_PREFIX(buffer)'
        type: unsigned char
      - name: __REPB_PREFIX(allocated)
        type: unsigned long int
      - name: __REPB_PREFIX(used)
        type: unsigned long int
      - name: __REPB_PREFIX(syntax)
        type: reg_syntax_t
      - name: '*__REPB_PREFIX(fastmap)'
        type: char
      - name: __REPB_PREFIX(translate)
        type: __RE_TRANSLATE_TYPE
      - name: re_nsub
        type: size_t
      - name: __REPB_PREFIX(can_be_null)
        type: unsigned
      - name: __REPB_PREFIX(regs_allocated)
        type: unsigned
      - name: __REPB_PREFIX(fastmap_accurate)
        type: unsigned
      - name: __REPB_PREFIX(no_sub)
        type: unsigned
      - name: __REPB_PREFIX(not_bol)
        type: unsigned
      - name: __REPB_PREFIX(not_eol)
        type: unsigned
      - name: __REPB_PREFIX(newline_anchor)
        type: unsigned
      item_type: struct
      name: re_pattern_buffer
      pos:
        line_end: 430
        line_start: 366
        source_file: /src/git/compat/regex/regex.h
    - fields:
      - name: num_regs
        type: unsigned
      - name: '*start'
        type: regoff_t
      - name: '*end'
        type: regoff_t
      item_type: struct
      name: re_registers
      pos:
        line_end: 446
        line_start: 441
        source_file: /src/git/compat/regex/regex.h
    - fields:
      - name: rm_so
        type: regoff_t
      - name: rm_eo
        type: regoff_t
      item_type: struct
      name: regmatch_t
      pos:
        line_end: 465
        line_start: 461
        source_file: /src/git/compat/regex/regex.h
    typedefs:
    - item_type: typedef
      name: s_reg_t
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/git/compat/regex/regex.h
      type: long int
    - item_type: typedef
      name: active_reg_t
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/git/compat/regex/regex.h
      type: unsigned long int
    - item_type: typedef
      name: reg_syntax_t
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/git/compat/regex/regex.h
      type: unsigned long int
    - item_type: typedef
      name: regex_t
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/git/compat/regex/regex.h
      type: re_pattern_buffer
    - item_type: typedef
      name: regoff_t
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/git/compat/regex/regex.h
      type: int
    union: []
- function_names: []
  source_file: /src/git/block-sha1/sha1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: platform_SHA_CTX
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/block-sha1/sha1.h
      type_or_value: blk_SHA_CTX
    - item_type: preproc_def
      name: platform_SHA1_Init
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/block-sha1/sha1.h
      type_or_value: blk_SHA1_Init
    - item_type: preproc_def
      name: platform_SHA1_Update
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/block-sha1/sha1.h
      type_or_value: blk_SHA1_Update
    - item_type: preproc_def
      name: platform_SHA1_Final
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/block-sha1/sha1.h
      type_or_value: blk_SHA1_Final
    structs:
    - fields:
      - name: size
        type: unsigned long long
      - name: H[5]
        type: unsigned int
      - name: W[16]
        type: unsigned int
      item_type: struct
      name: blk_SHA_CTX
      pos:
        line_end: 12
        line_start: 8
        source_file: /src/git/block-sha1/sha1.h
    typedefs: []
    union: []
- function_names:
  - SHA_ROT
  - SHA_ROL
  - SHA_ROR
  - setW
  - setW
  - setW
  - W
  - SHA_SRC
  - SHA_MIX
  - SHA_ROUND
  - T_0_15
  - T_16_19
  - T_20_39
  - T_40_59
  - T_60_79
  - blk_SHA1_Block
  - blk_SHA1_Init
  - blk_SHA1_Update
  - blk_SHA1_Final
  source_file: /src/git/block-sha1/sha1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - object_entry_hashcmp
  - for_each_mark
  - dump_marks_fn
  - write_branch_report
  - write_crash_report
  - die_nicely
  - set_checkpoint_signal
  - checkpoint_signal
  - set_checkpoint_signal
  - alloc_objects
  - new_object
  - find_object
  - insert_object
  - invalidate_pack_id
  - hc_str
  - insert_mark
  - find_mark
  - to_atom
  - lookup_branch
  - new_branch
  - hc_entries
  - new_tree_content
  - release_tree_content
  - release_tree_content_recursive
  - grow_tree_content
  - new_tree_entry
  - release_tree_entry
  - dup_tree_content
  - start_packfile
  - create_index
  - keep_pack
  - unkeep_all_packs
  - loosen_small_pack
  - end_packfile
  - cycle_packfile
  - store_object
  - truncate_pack
  - stream_blob
  - gfi_unpack_entry
  - load_tree
  - tecmp0
  - tecmp1
  - mktree
  - store_tree
  - tree_content_replace
  - tree_content_set
  - tree_content_remove
  - tree_content_get
  - update_branch
  - dump_branches
  - dump_tags
  - dump_marks
  - insert_object_entry
  - insert_oid_entry
  - read_mark_file
  - read_marks
  - read_next_command
  - skip_optional_lf
  - parse_mark
  - parse_original_identifier
  - parse_data
  - validate_raw_date
  - parse_ident
  - parse_and_store_blob
  - parse_new_blob
  - unload_one_branch
  - load_branch
  - convert_num_notes_to_fanout
  - construct_path_with_fanout
  - do_change_note_fanout
  - change_note_fanout
  - parse_mapped_oid_hex
  - parse_mark_ref
  - parse_mark_ref_eol
  - parse_mark_ref_space
  - parse_path
  - parse_path_eol
  - parse_path_space
  - file_change_m
  - file_change_d
  - file_change_cr
  - note_change_n
  - file_change_deleteall
  - parse_from_commit
  - parse_from_existing
  - parse_objectish
  - parse_from
  - parse_objectish_with_prefix
  - parse_merge
  - parse_one_signature
  - discard_one_signature
  - add_gpgsig_to_commit
  - store_signature
  - import_one_signature
  - finalize_commit_buffer
  - warn_invalid_signature
  - handle_signature_if_invalid
  - parse_new_commit
  - handle_tag_signature_if_invalid
  - handle_tag_signature
  - parse_new_tag
  - parse_reset_branch
  - cat_blob_write
  - cat_blob
  - parse_get_mark
  - parse_cat_blob
  - dereference
  - insert_mapped_mark
  - build_mark_map_one
  - build_mark_map
  - for_each_string_list_item
  - parse_treeish_dataref
  - print_ls
  - parse_ls
  - checkpoint
  - parse_checkpoint
  - parse_progress
  - parse_alias
  - make_fast_import_path
  - option_import_marks
  - option_date_format
  - ulong_arg
  - option_depth
  - option_active_branches
  - option_export_marks
  - option_cat_blob_fd
  - option_export_pack_edges
  - option_rewrite_submodules
  - parse_one_option
  - check_unsafe_feature
  - parse_one_feature
  - parse_feature
  - parse_option
  - git_pack_config
  - parse_argv
  - cmd_fast_import
  source_file: /src/git/builtin/fast-import.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACK_ID_BITS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/builtin/fast-import.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_PACK_ID
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/builtin/fast-import.c
      type_or_value: ((1<<PACK_ID_BITS)-1)
    - item_type: preproc_def
      name: DEPTH_BITS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/builtin/fast-import.c
      type_or_value: '13'
    - item_type: preproc_def
      name: MAX_DEPTH
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/builtin/fast-import.c
      type_or_value: ((1<<DEPTH_BITS)-1)
    - item_type: preproc_def
      name: NO_DELTA
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/builtin/fast-import.c
      type_or_value: S_ISUID
    - item_type: preproc_def
      name: PACK_SIZE_THRESHOLD
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/builtin/fast-import.c
      type_or_value: (the_hash_algo->rawsz * 3)
    structs:
    - fields:
      - name: idx
        type: struct pack_idx_entry
      - name: ent
        type: struct hashmap_entry
      - name: type
        type: uint32_t
      item_type: struct
      name: object_entry
      pos:
        line_end: 56
        line_start: 50
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: '*next_pool'
        type: struct object_entry_pool
      - name: '*next_free'
        type: struct object_entry
      - name: '*end'
        type: struct object_entry
      - name: entries[FLEX_ARRAY]
        type: struct object_entry
      item_type: struct
      name: object_entry_pool
      pos:
        line_end: 79
        line_start: 74
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: data
        type: "union {\n\t\tstruct object_id *oids[1024];\n\t\tstruct object_entry
          *marked[1024];\n\t\tstruct mark_set *sets[1024];\n\t}"
      - name: shift
        type: unsigned int
      item_type: struct
      name: mark_set
      pos:
        line_end: 88
        line_start: 81
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: data
        type: struct strbuf
      - name: offset
        type: off_t
      - name: depth
        type: unsigned int
      - name: no_swap
        type: unsigned
      item_type: struct
      name: last_object
      pos:
        line_end: 95
        line_start: 90
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: '*next_atom'
        type: struct atom_str
      - name: str_len
        type: unsigned short
      - name: str_dat[FLEX_ARRAY]
        type: char
      item_type: struct
      name: atom_str
      pos:
        line_end: 101
        line_start: 97
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: '*tree'
        type: struct tree_content
      - name: '*name'
        type: struct atom_str
      - name: versions[2]
        type: "struct tree_entry_ms {\n\t\tuint16_t mode;\n\t\tstruct object_id oid;\n\t}"
      item_type: struct
      name: tree_entry
      pos:
        line_end: 111
        line_start: 104
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: mode
        type: uint16_t
      - name: oid
        type: struct object_id
      item_type: struct
      name: tree_entry_ms
      pos:
        line_end: 110
        line_start: 107
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: entry_capacity
        type: unsigned int
      - name: entry_count
        type: unsigned int
      - name: delta_depth
        type: unsigned int
      - name: '*entries[FLEX_ARRAY]'
        type: struct tree_entry
      item_type: struct
      name: tree_content
      pos:
        line_end: 118
        line_start: 113
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: entry_capacity
        type: unsigned int
      - name: '*next_avail'
        type: struct avail_tree_content
      item_type: struct
      name: avail_tree_content
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: '*table_next_branch'
        type: struct branch
      - name: '*active_next_branch'
        type: struct branch
      - name: '*name'
        type: char
      - name: branch_tree
        type: struct tree_entry
      - name: last_commit
        type: uintmax_t
      - name: num_notes
        type: uintmax_t
      - name: active
        type: unsigned
      - name: delete
        type: unsigned
      - name: pack_id
        type: unsigned
      - name: oid
        type: struct object_id
      item_type: struct
      name: branch
      pos:
        line_end: 136
        line_start: 125
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: '*next_tag'
        type: struct tag
      - name: '*name'
        type: char
      - name: pack_id
        type: unsigned int
      - name: oid
        type: struct object_id
      item_type: struct
      name: tag
      pos:
        line_end: 143
        line_start: 138
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: '*next'
        type: struct hash_list
      - name: oid
        type: struct object_id
      item_type: struct
      name: hash_list
      pos:
        line_end: 148
        line_start: 145
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: '*prev'
        type: struct recent_command
      - name: '*next'
        type: struct recent_command
      - name: '*buf'
        type: char
      item_type: struct
      name: recent_command
      pos:
        line_end: 161
        line_start: 157
        source_file: /src/git/builtin/fast-import.c
    - fields:
      - name: '*hash_algo'
        type: char
      - name: '*sig_format'
        type: char
      - name: data
        type: struct strbuf
      item_type: struct
      name: signature_data
      pos:
        line_end: 2743
        line_start: 2739
        source_file: /src/git/builtin/fast-import.c
    typedefs:
    - item_type: typedef
      name: (*mark_set_inserter_t)(struct mark_set **s, struct object_id *oid, uintmax_t
        mark)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/git/builtin/fast-import.c
      type: void
    - item_type: typedef
      name: (*each_mark_fn_t)(uintmax_t mark, void *obj, void *cbp)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/git/builtin/fast-import.c
      type: void
    union: []
- function_names:
  - parse_ref_action_mode
  - get_ref_action_mode
  - handle_ref_update
  - cmd_replay
  source_file: /src/git/builtin/replay.c
  types:
    enum:
    - enumerators:
      - name: REF_ACTION_UPDATE
      - name: REF_ACTION_PRINT
      item_type: enum
      name: ref_action_mode
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/git/builtin/replay.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_refs_migrate
  - cmd_refs_verify
  - cmd_refs_list
  - cmd_refs_exists
  - cmd_refs_optimize
  - cmd_refs
  source_file: /src/git/builtin/refs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REFS_MIGRATE_USAGE
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/git/builtin/refs.c
      type_or_value: N_("git refs migrate --ref-format=<format> [--no-reflog] [--dry-run]")
    - item_type: preproc_def
      name: REFS_VERIFY_USAGE
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/git/builtin/refs.c
      type_or_value: N_("git refs verify [--strict] [--verbose]")
    - item_type: preproc_def
      name: REFS_EXISTS_USAGE
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/git/builtin/refs.c
      type_or_value: N_("git refs exists <ref>")
    - item_type: preproc_def
      name: REFS_OPTIMIZE_USAGE
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/git/builtin/refs.c
      type_or_value: N_("git refs optimize " PACK_REFS_OPTS)
    structs: []
    typedefs: []
    union: []
- function_names:
  - output_attr
  - check_attr
  - check_attr_stdin_paths
  - error_with_usage
  - cmd_check_attr
  source_file: /src/git/builtin/check-attr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - show_merge_base
  - get_commit_reference
  - handle_independent
  - handle_octopus
  - handle_is_ancestor
  - handle_fork_point
  - cmd_merge_base
  source_file: /src/git/builtin/merge-base.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - new_parent
  - parse_parent_arg_callback
  - parse_message_arg_callback
  - parse_file_arg_callback
  - cmd_commit_tree
  source_file: /src/git/builtin/commit-tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_temp_file
  - cmd_unpack_file
  source_file: /src/git/builtin/unpack-file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - guess_repository_type
  - shared_callback
  - cmd_init_db
  source_file: /src/git/builtin/init-db.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cache_credential
  - lookup_credential
  - remove_credential
  - check_expirations
  - read_request
  - serve_one_client
  - serve_cache_loop
  - serve_cache
  - init_socket_directory
  - cmd_credential_cache_daemon
  - cmd_credential_cache_daemon
  source_file: /src/git/builtin/credential-cache--daemon.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: item
        type: struct credential
      - name: expiration
        type: timestamp_t
      item_type: struct
      name: credential_cache_entry
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/git/builtin/credential-cache--daemon.c
    typedefs: []
    union: []
- function_names:
  - git_fetch_config
  - parse_refmap_arg
  - unlock_pack
  - unlock_pack_atexit
  - unlock_pack_on_signal
  - add_merge_config
  - create_fetch_oidset
  - refname_hash_entry_cmp
  - refname_hash_add
  - add_one_refname
  - refname_hash_init
  - refname_hash_exists
  - clear_item
  - add_already_queued_tags
  - find_non_local_tags
  - filter_prefetch_refspec
  - get_ref_map
  - s_update_ref
  - refcol_width
  - display_state_init
  - display_state_release
  - print_remote_to_local
  - find_and_replace
  - print_compact
  - display_ref_update
  - ref_update_display_info_append
  - ref_update_display_info_set_failed
  - ref_update_display_info_free
  - ref_update_display_info_display
  - update_local_ref
  - iterate_ref_map
  - open_fetch_head
  - append_fetch_head
  - commit_fetch_head
  - close_fetch_head
  - store_updated_refs
  - check_exist_and_connected
  - fetch_and_consume_refs
  - prune_refs
  - check_not_current_branch
  - truncate_fetch_head
  - set_option
  - add_oid
  - add_negotiation_tips
  - prepare_transport
  - backfill_tags
  - strip_refshead
  - set_head_advice_msg
  - report_set_head
  - set_head
  - ref_transaction_rejection_handler
  - commit_ref_transaction
  - do_fetch
  - get_one_remote_for_fetch
  - get_remote_group
  - add_remote_or_group
  - add_options_to_argv
  - fetch_next_remote
  - fetch_failed_to_start
  - fetch_finished
  - fetch_multiple
  - fetch_one_setup_partial
  - fetch_one
  - cmd_fetch
  source_file: /src/git/builtin/fetch.c
  types:
    enum:
    - enumerators:
      - name: DISPLAY_FORMAT_FULL
      - name: DISPLAY_FORMAT_PORCELAIN
      - name: DISPLAY_FORMAT_COMPACT
      item_type: enum
      name: display_format
      pos:
        line_end: 64
        line_start: 60
        source_file: /src/git/builtin/fetch.c
    preproc_defs:
    - item_type: preproc_def
      name: FORCED_UPDATES_DELAY_WARNING_IN_MS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/builtin/fetch.c
      type_or_value: (10 * 1000)
    - item_type: preproc_def
      name: PRUNE_BY_DEFAULT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/git/builtin/fetch.c
      type_or_value: '0 '
    - item_type: preproc_def
      name: PRUNE_TAGS_BY_DEFAULT
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/git/builtin/fetch.c
      type_or_value: '0 '
    structs:
    - fields:
      - name: buf
        type: struct strbuf
      - name: refcol_width
        type: int
      - name: format
        type: enum display_format
      - name: '*url'
        type: char
      - name: url_len
        type: int
      item_type: struct
      name: display_state
      pos:
        line_end: 74
        line_start: 66
        source_file: /src/git/builtin/fetch.c
    - fields:
      - name: display_format
        type: enum display_format
      - name: all
        type: int
      - name: prune
        type: int
      - name: prune_tags
        type: int
      - name: show_forced_updates
        type: int
      - name: recurse_submodules
        type: int
      - name: parallel
        type: int
      - name: submodule_fetch_jobs
        type: int
      item_type: struct
      name: fetch_config
      pos:
        line_end: 112
        line_start: 103
        source_file: /src/git/builtin/fetch.c
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: oid
        type: struct object_id
      - name: ignore
        type: int
      - name: refname[FLEX_ARRAY]
        type: char
      item_type: struct
      name: refname_hash_entry
      pos:
        line_end: 263
        line_start: 258
        source_file: /src/git/builtin/fetch.c
    - fields:
      - name: failed
        type: bool
      - name: success_code
        type: char
      - name: fail_code
        type: char
      - name: '*summary'
        type: char
      - name: '*fail_detail'
        type: char
      - name: '*success_detail'
        type: char
      - name: '*ref'
        type: char
      - name: '*remote'
        type: char
      - name: old_oid
        type: struct object_id
      - name: new_oid
        type: struct object_id
      item_type: struct
      name: ref_update_display_info
      pos:
        line_end: 874
        line_start: 863
        source_file: /src/git/builtin/fetch.c
    - fields:
      - name: '*info'
        type: struct ref_update_display_info
      - name: alloc
        type: size_t
      item_type: struct
      name: ref_update_display_info_array
      pos:
        line_end: 879
        line_start: 876
        source_file: /src/git/builtin/fetch.c
    - fields:
      - name: '*fp'
        type: FILE
      - name: buf
        type: struct strbuf
      item_type: struct
      name: fetch_head
      pos:
        line_end: 1126
        line_start: 1123
        source_file: /src/git/builtin/fetch.c
    - fields:
      - name: '*retcode'
        type: int
      - name: conflict_msg_shown
        type: bool
      - name: case_sensitive_msg_shown
        type: bool
      - name: '*remote_name'
        type: char
      - name: '*rejected_refs'
        type: struct strmap
      item_type: struct
      name: ref_rejection_data
      pos:
        line_end: 1808
        line_start: 1802
        source_file: /src/git/builtin/fetch.c
    - fields:
      - name: '*name'
        type: char
      - name: '*list'
        type: struct string_list
      item_type: struct
      name: remote_group_data
      pos:
        line_end: 2189
        line_start: 2186
        source_file: /src/git/builtin/fetch.c
    - fields:
      - name: '**argv'
        type: char
      - name: '*remotes'
        type: struct string_list
      - name: next
        type: int
      - name: '*config'
        type: struct fetch_config
      item_type: struct
      name: parallel_fetch_state
      pos:
        line_end: 2276
        line_start: 2271
        source_file: /src/git/builtin/fetch.c
    typedefs: []
    union: []
- function_names:
  - connection_closed
  - connection_fatally_broken
  - connection_closed
  - connection_fatally_broken
  - send_request
  - spawn_daemon
  - do_cache
  - get_socket_path
  - announce_capabilities
  - cmd_credential_cache
  - cmd_credential_cache
  source_file: /src/git/builtin/credential-cache.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLAG_SPAWN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/builtin/credential-cache.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FLAG_RELAY
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/builtin/credential-cache.c
      type_or_value: '0x2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - linelen
  - str_isspace
  - am_state_init
  - am_state_release
  - am_option_parse_quoted_cr
  - am_option_parse_empty
  - am_path
  - write_state_text
  - write_state_count
  - write_state_bool
  - say
  - am_in_progress
  - read_state_file
  - read_am_author_script
  - write_author_script
  - read_commit_msg
  - write_commit_msg
  - am_load
  - am_destroy
  - run_applypatch_msg_hook
  - run_post_rewrite_hook
  - copy_notes_for_rebase
  - is_mail
  - detect_patch_format
  - split_mail_mbox
  - split_mail_conv
  - stgit_patch_to_mail
  - split_mail_stgit_series
  - hg_patch_to_mail
  - split_mail
  - am_setup
  - am_next
  - msgnum
  - die_user_resolve
  - am_append_signoff
  - parse_mail
  - get_mail_commit_oid
  - get_commit_info
  - write_commit_patch
  - write_index_patch
  - parse_mail_rebase
  - run_apply
  - build_fake_ancestor
  - fall_back_threeway
  - do_commit
  - validate_resume_state
  - do_interactive
  - am_run
  - am_resolve
  - fast_forward_to
  - merge_tree
  - clean_index
  - am_rerere_clear
  - am_skip
  - safe_to_abort
  - am_abort
  - show_patch
  - parse_opt_patchformat
  - parse_opt_show_current_patch
  - cmd_am
  source_file: /src/git/builtin/am.c
  types:
    enum:
    - enumerators:
      - name: PATCH_FORMAT_UNKNOWN
        value: '0'
      - name: PATCH_FORMAT_STGIT_SERIES
      - name: PATCH_FORMAT_HG
      - name: PATCH_FORMAT_MBOX
      - name: PATCH_FORMAT_STGIT
      - name: PATCH_FORMAT_MBOXRD
      item_type: enum
      name: patch_format
      pos:
        line_end: 71
        line_start: 64
        source_file: /src/git/builtin/am.c
    - enumerators:
      - name: KEEP_FALSE
        value: '0'
      - name: KEEP_NON_PATCH
      - name: KEEP_TRUE
      item_type: enum
      name: keep_type
      pos:
        line_end: 77
        line_start: 73
        source_file: /src/git/builtin/am.c
    - enumerators:
      - name: SCISSORS_UNSET
        value: '-1'
      - name: SCISSORS_FALSE
        value: '0'
      - name: SCISSORS_TRUE
      item_type: enum
      name: scissors_type
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/git/builtin/am.c
    - enumerators:
      - name: SIGNOFF_FALSE
        value: '0'
      - name: SIGNOFF_EXPLICIT
      - name: SIGNOFF_TRUE
        value: '1'
      item_type: enum
      name: signoff_type
      pos:
        line_end: 89
        line_start: 85
        source_file: /src/git/builtin/am.c
    - enumerators:
      - name: RESUME_FALSE
        value: '0'
      - name: RESUME_SKIP
      - name: RESUME_ABORT
      - name: RESUME_APPLY
      - name: RESUME_RESOLVED
      - name: RESUME_QUIT
      - name: RESUME_SHOW_PATCH_RAW
      - name: RESUME_SHOW_PATCH_DIFF
      - name: RESUME_ALLOW_EMPTY
      item_type: enum
      name: resume_type
      pos:
        line_end: 101
        line_start: 91
        source_file: /src/git/builtin/am.c
    - enumerators:
      - name: STOP_ON_EMPTY_COMMIT
        value: '0'
      - name: DROP_EMPTY_COMMIT
      - name: KEEP_EMPTY_COMMIT
      item_type: enum
      name: empty_action
      pos:
        line_end: 107
        line_start: 103
        source_file: /src/git/builtin/am.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*dir'
        type: char
      - name: cur
        type: int
      - name: last
        type: int
      - name: '*author_name'
        type: char
      - name: '*author_email'
        type: char
      - name: '*author_date'
        type: char
      - name: '*msg'
        type: char
      - name: msg_len
        type: size_t
      - name: orig_commit
        type: struct object_id
      - name: prec
        type: int
      - name: interactive
        type: int
      - name: no_verify
        type: int
      - name: threeway
        type: int
      - name: quiet
        type: int
      - name: signoff
        type: int
      - name: utf8
        type: int
      - name: keep
        type: int
      - name: message_id
        type: int
      - name: scissors
        type: int
      - name: quoted_cr
        type: int
      - name: empty_type
        type: int
      - name: git_apply_opts
        type: struct strvec
      - name: '*resolvemsg'
        type: char
      - name: committer_date_is_author_date
        type: int
      - name: ignore_date
        type: int
      - name: allow_rerere_autoupdate
        type: int
      - name: '*sign_commit'
        type: char
      - name: rebasing
        type: int
      item_type: struct
      name: am_state
      pos:
        line_end: 149
        line_start: 109
        source_file: /src/git/builtin/am.c
    typedefs:
    - item_type: typedef
      name: (*mail_conv_fn)(FILE *out, FILE *in, int keep_cr)
      pos:
        line_end: 735
        line_start: 735
        source_file: /src/git/builtin/am.c
      type: int
    union: []
- function_names:
  - parse_mode_or_die
  - parse_oid_or_die
  - cmd_diff_pairs
  source_file: /src/git/builtin/diff-pairs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - commit_name_neq
  - find_commit_name
  - replace_name
  - add_to_known_names
  - get_name
  - compare_pt
  - lazy_queue_get
  - lazy_queue_put
  - lazy_queue_empty
  - lazy_queue_clear
  - finish_depth_computation
  - append_name
  - append_suffix
  - describe_commit
  - process_commit
  - process_object
  - describe_blob
  - describe
  - option_parse_exact_match
  - cmd_describe
  source_file: /src/git/builtin/describe.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_TAGS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/builtin/describe.c
      type_or_value: (FLAG_BITS - 1)
    - item_type: preproc_def
      name: DEFAULT_CANDIDATES
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/builtin/describe.c
      type_or_value: '10'
    - item_type: preproc_def
      name: LAZY_QUEUE_INIT
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/git/builtin/describe.c
      type_or_value: '{ { compare_commits_by_commit_date }, false }'
    structs:
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: peeled
        type: struct object_id
      - name: '*tag'
        type: struct tag
      - name: prio
        type: unsigned
      - name: name_checked
        type: unsigned
      - name: misnamed
        type: unsigned
      - name: oid
        type: struct object_id
      - name: '*path'
        type: char
      item_type: struct
      name: commit_name
      pos:
        line_end: 73
        line_start: 64
        source_file: /src/git/builtin/describe.c
    - fields:
      - name: '*name'
        type: struct commit_name
      - name: depth
        type: int
      - name: found_order
        type: int
      - name: flag_within
        type: unsigned
      item_type: struct
      name: possible_tag
      pos:
        line_end: 240
        line_start: 235
        source_file: /src/git/builtin/describe.c
    - fields:
      - name: queue
        type: struct prio_queue
      - name: get_pending
        type: bool
      item_type: struct
      name: lazy_queue
      pos:
        line_end: 256
        line_start: 253
        source_file: /src/git/builtin/describe.c
    - fields:
      - name: '*current_commit'
        type: struct commit
      - name: '*looking_for'
        type: struct object_id
      - name: '*dst'
        type: struct strbuf
      - name: '*revs'
        type: struct rev_info
      item_type: struct
      name: process_commit_data
      pos:
        line_end: 542
        line_start: 537
        source_file: /src/git/builtin/describe.c
    typedefs: []
    union: []
- function_names:
  - cmd_apply
  source_file: /src/git/builtin/apply.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - last_modified_entry_hashcmp
  - active_paths_for
  - active_paths_free
  - last_modified_release
  - add_path_from_diff
  - populate_paths_from_revs
  - last_modified_emit
  - mark_path
  - last_modified_diff
  - pass_to_parent
  - maybe_changed_path
  - process_parent
  - last_modified_run
  - last_modified_init
  - cmd_last_modified
  source_file: /src/git/builtin/last-modified.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PARENT1
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/builtin/last-modified.c
      type_or_value: '(1u<<16) '
    - item_type: preproc_def
      name: PARENT2
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/builtin/last-modified.c
      type_or_value: '(1u<<17) '
    structs:
    - fields:
      - name: hashent
        type: struct hashmap_entry
      - name: oid
        type: struct object_id
      - name: key
        type: struct bloom_key
      - name: diff_idx
        type: size_t
      - name: path[FLEX_ARRAY]
        type: char
      item_type: struct
      name: last_modified_entry
      pos:
        line_end: 31
        line_start: 25
        source_file: /src/git/builtin/last-modified.c
    - fields:
      - name: paths
        type: struct hashmap
      - name: rev
        type: struct rev_info
      - name: show_trees
        type: bool
      - name: nul_termination
        type: bool
      - name: max_depth
        type: int
      - name: '**all_paths'
        type: char
      - name: all_paths_nr
        type: size_t
      - name: active_paths
        type: struct active_paths_for_commit
      - name: '*scratch'
        type: struct bitmap
      item_type: struct
      name: last_modified
      pos:
        line_end: 65
        line_start: 52
        source_file: /src/git/builtin/last-modified.c
    - fields:
      - name: '*lm'
        type: struct last_modified
      - name: '*commit'
        type: struct commit
      item_type: struct
      name: last_modified_callback_data
      pos:
        line_end: 102
        line_start: 99
        source_file: /src/git/builtin/last-modified.c
    typedefs: []
    union: []
- function_names:
  - cmd_verify_tag
  source_file: /src/git/builtin/verify-tag.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_upload_pack
  source_file: /src/git/builtin/upload-pack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - llist_item_put
  - llist_item_get
  - llist_init
  - llist_free
  - llist_copy
  - llist_insert
  - llist_insert_back
  - llist_insert_sorted_unique
  - llist_sorted_remove
  - llist_sorted_difference_inplace
  - pack_list_insert
  - pack_list_free
  - pack_list_size
  - pack_list_difference
  - cmp_two_packs
  - sizeof_union
  - get_pack_redundancy
  - pack_set_bytecount
  - cmp_remaining_objects
  - sort_pack_list
  - minimize
  - load_all_objects
  - cmp_local_packs
  - scan_alt_odb_packs
  - add_pack
  - add_pack_file
  - load_all
  - cmd_pack_redundant
  source_file: /src/git/builtin/pack-redundant.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLKSIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/builtin/pack-redundant.c
      type_or_value: '512'
    structs:
    - fields:
      - name: '*next'
        type: struct llist_item
      - name: oid
        type: struct object_id
      item_type: struct
      name: llist_item
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/git/builtin/pack-redundant.c
    - fields:
      - name: '*front'
        type: struct llist_item
      - name: '*back'
        type: struct llist_item
      - name: size
        type: size_t
      item_type: struct
      name: llist
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/git/builtin/pack-redundant.c
    - fields:
      - name: '*next'
        type: struct pack_list
      - name: '*pack'
        type: struct packed_git
      - name: '*unique_objects'
        type: struct llist
      - name: '*remaining_objects'
        type: struct llist
      - name: all_objects_size
        type: size_t
      item_type: struct
      name: pack_list
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/git/builtin/pack-redundant.c
    typedefs: []
    union: []
- function_names:
  - cmd_pack_refs
  source_file: /src/git/builtin/pack-refs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - run_command_on_repo
  - cmd_for_each_repo
  source_file: /src/git/builtin/for-each-repo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clean_pack_garbage
  - report_pack_garbage
  - process_log_file
  - process_log_file_at_exit
  - gc_config_is_timestamp_never
  - gc_config_release
  - gc_config
  - parse_schedule
  - maintenance_run_opts_release
  - pack_refs_condition
  - maintenance_task_pack_refs
  - count_reflog_entries
  - reflog_expire_condition
  - maintenance_task_reflog_expire
  - maintenance_task_worktree_prune
  - worktree_prune_condition
  - maintenance_task_rerere_gc
  - rerere_gc_condition
  - too_many_loose_objects
  - find_base_packs
  - repo_for_each_pack
  - too_many_packs
  - repo_for_each_pack
  - total_ram
  - estimate_repack_memory
  - keep_one_pack
  - add_repack_all_option
  - add_repack_incremental_option
  - need_to_gc
  - lock_repo_for_gc
  - report_last_gc_error
  - gc_foreground_tasks
  - cmd_gc
  - maintenance_opt_schedule
  - dfs_on_ref
  - should_write_commit_graph
  - run_write_commit_graph
  - maintenance_task_commit_graph
  - fetch_remote
  - maintenance_task_prefetch
  - maintenance_task_gc_foreground
  - maintenance_task_gc_background
  - gc_condition
  - prune_packed
  - loose_object_count
  - loose_object_auto_condition
  - bail_on_loose
  - write_loose_object_to_stdin
  - pack_loose
  - maintenance_task_loose_objects
  - incremental_repack_auto_condition
  - repo_for_each_pack
  - multi_pack_index_write
  - multi_pack_index_expire
  - get_auto_pack_size
  - repo_for_each_pack
  - multi_pack_index_repack
  - maintenance_task_incremental_repack
  - maintenance_task_geometric_repack
  - geometric_repack_auto_condition
  - maybe_run_task
  - maintenance_run_tasks
  - parse_maintenance_strategy
  - initialize_task_config
  - task_option_parse
  - maintenance_run
  - get_maintpath
  - maintenance_register
  - for_each_string_list_item
  - maintenance_unregister
  - for_each_string_list_item
  - get_frequency
  - get_extra_config_parameters
  - get_extra_launchctl_strings
  - get_schedule_cmd
  - get_random_minute
  - is_launchctl_available
  - launchctl_service_name
  - launchctl_service_filename
  - launchctl_get_uid
  - launchctl_boot_plist
  - launchctl_remove_plist
  - launchctl_remove_plists
  - launchctl_list_contains_plist
  - launchctl_schedule_plist
  - launchctl_add_plists
  - launchctl_update_schedule
  - is_schtasks_available
  - schtasks_task_name
  - schtasks_remove_task
  - schtasks_remove_tasks
  - schtasks_schedule_task
  - schtasks_schedule_tasks
  - schtasks_update_schedule
  - check_crontab_process
  - is_crontab_available
  - crontab_update_schedule
  - real_is_systemd_timer_available
  - is_systemd_timer_available
  - xdg_config_home_systemd
  - systemd_timer_delete_timer_file
  - systemd_timer_delete_service_template
  - systemd_timer_write_timer_file
  - systemd_timer_write_service_template
  - systemd_timer_enable_unit
  - systemd_timer_delete_stale_timer_templates
  - systemd_timer_delete_unit_files
  - systemd_timer_delete_units
  - systemd_timer_setup_units
  - systemd_timer_update_schedule
  - parse_scheduler
  - maintenance_opt_scheduler
  - resolve_scheduler
  - validate_scheduler
  - update_background_schedule
  - maintenance_start
  - maintenance_stop
  - maintenance_is_needed
  - cmd_maintenance
  source_file: /src/git/builtin/gc.c
  types:
    enum:
    - enumerators:
      - name: SCHEDULE_NONE
        value: '0'
      - name: SCHEDULE_DAILY
        value: '2'
      - name: SCHEDULE_WEEKLY
        value: '1'
      - name: SCHEDULE_HOURLY
        value: '3'
      item_type: enum
      name: schedule_priority
      pos:
        line_end: 239
        line_start: 234
        source_file: /src/git/builtin/gc.c
    - enumerators:
      - name: TASK_PREFETCH
      - name: TASK_INCREMENTAL_REPACK
      - name: TASK_LOOSE_OBJECTS
      - name: TASK_GEOMETRIC_REPACK
      - name: TASK_GC
      - name: TASK_COMMIT_GRAPH
      - name: TASK_PACK_REFS
      - name: TASK_REFLOG_EXPIRE
      - name: TASK_WORKTREE_PRUNE
      - name: TASK_RERERE_GC
      - name: TASK__COUNT
      item_type: enum
      name: maintenance_task_label
      pos:
        line_end: 268
        line_start: 254
        source_file: /src/git/builtin/gc.c
    - enumerators:
      - name: TASK_PHASE_FOREGROUND
      - name: TASK_PHASE_BACKGROUND
      item_type: enum
      name: task_phase
      pos:
        line_end: 1755
        line_start: 1752
        source_file: /src/git/builtin/gc.c
    - enumerators:
      - name: MAINTENANCE_TYPE_SCHEDULED
        value: (1 << 0)
      - name: MAINTENANCE_TYPE_MANUAL
        value: (1 << 1)
      item_type: enum
      name: maintenance_type
      pos:
        line_end: 1834
        line_start: 1829
        source_file: /src/git/builtin/gc.c
    - enumerators:
      - name: SCHEDULER_INVALID
        value: '-1'
      - name: SCHEDULER_CRON
      - name: SCHEDULER_LAUNCHCTL
      - name: SCHEDULER_AUTO
      - name: SCHEDULER_SYSTEMD
      - name: SCHEDULER_SCHTASKS
      item_type: enum
      name: scheduler
      pos:
        line_end: 3258
        line_start: 3251
        source_file: /src/git/builtin/gc.c
    preproc_defs:
    - item_type: preproc_def
      name: FAILED_RUN
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/builtin/gc.c
      type_or_value: '"failed to run %s"'
    - item_type: preproc_def
      name: GC_CONFIG_INIT
      pos:
        line_end: 165
        line_start: 150
        source_file: /src/git/builtin/gc.c
      type_or_value: "{ \\\n\t.pack_refs = 1, \\\n\t.prune_reflogs = 1, \\\n\t.cruft_packs
        = 1, \\\n\t.aggressive_depth = 50, \\\n\t.aggressive_window = 250, \\\n\t.gc_auto_threshold
        = 6700, \\\n\t.gc_auto_pack_limit = 50, \\\n\t.detach_auto = 1, \\\n\t.gc_log_expire
        = xstrdup(\"1.day.ago\"), \\\n\t.prune_expire = xstrdup(\"2.weeks.ago\"),
        \\\n\t.prune_worktrees_expire = xstrdup(\"3.months.ago\"), \\\n\t.max_delta_cache_size
        = DEFAULT_DELTA_CACHE_SIZE, \\\n\t.delta_base_cache_limit = DEFAULT_DELTA_BASE_CACHE_LIMIT,
        \\\n}"
    - item_type: preproc_def
      name: MAINTENANCE_RUN_OPTS_INIT
      pos:
        line_end: 281
        line_start: 278
        source_file: /src/git/builtin/gc.c
      type_or_value: "{ \\\n\t.detach = -1, \\\n}"
    - item_type: preproc_def
      name: TWO_GIGABYTES
      pos:
        line_end: 1490
        line_start: 1489
        source_file: /src/git/builtin/gc.c
      type_or_value: (INT32_MAX)
    - item_type: preproc_def
      name: BEGIN_LINE
      pos:
        line_end: 2832
        line_start: 2831
        source_file: /src/git/builtin/gc.c
      type_or_value: '"# BEGIN GIT MAINTENANCE SCHEDULE"'
    - item_type: preproc_def
      name: END_LINE
      pos:
        line_end: 2833
        line_start: 2832
        source_file: /src/git/builtin/gc.c
      type_or_value: '"# END GIT MAINTENANCE SCHEDULE"'
    - item_type: preproc_def
      name: SYSTEMD_UNIT_FORMAT
      pos:
        line_end: 2966
        line_start: 2965
        source_file: /src/git/builtin/gc.c
      type_or_value: '"git-maintenance@%s.%s"'
    structs:
    - fields:
      - name: pack_refs
        type: int
      - name: prune_reflogs
        type: int
      - name: cruft_packs
        type: int
      - name: max_cruft_size
        type: unsigned long
      - name: aggressive_depth
        type: int
      - name: aggressive_window
        type: int
      - name: gc_auto_threshold
        type: int
      - name: gc_auto_pack_limit
        type: int
      - name: detach_auto
        type: int
      - name: '*gc_log_expire'
        type: char
      - name: '*prune_expire'
        type: char
      - name: '*prune_worktrees_expire'
        type: char
      - name: '*repack_filter'
        type: char
      - name: '*repack_filter_to'
        type: char
      - name: '*repack_expire_to'
        type: char
      - name: big_pack_threshold
        type: unsigned long
      - name: max_delta_cache_size
        type: unsigned long
      - name: delta_base_cache_limit
        type: size_t
      item_type: struct
      name: gc_config
      pos:
        line_end: 148
        line_start: 125
        source_file: /src/git/builtin/gc.c
    - fields:
      - name: '*tasks'
        type: enum maintenance_task_label
      - name: tasks_nr
        type: size_t
      - name: auto_flag
        type: int
      - name: detach
        type: int
      - name: quiet
        type: int
      - name: schedule
        type: enum schedule_priority
      item_type: struct
      name: maintenance_run_opts
      pos:
        line_end: 277
        line_start: 270
        source_file: /src/git/builtin/gc.c
    - fields:
      - name: policy
        type: struct expire_reflog_policy_cb
      - name: count
        type: size_t
      - name: limit
        type: size_t
      item_type: struct
      name: count_reflog_entries_data
      pos:
        line_end: 328
        line_start: 324
        source_file: /src/git/builtin/gc.c
    - fields:
      - name: num_not_in_graph
        type: int
      - name: limit
        type: int
      item_type: struct
      name: cg_auto_data
      pos:
        line_end: 1101
        line_start: 1098
        source_file: /src/git/builtin/gc.c
    - fields:
      - name: '*in'
        type: FILE
      - name: count
        type: int
      - name: batch_size
        type: int
      item_type: struct
      name: write_loose_object_data
      pos:
        line_end: 1303
        line_start: 1299
        source_file: /src/git/builtin/gc.c
    - fields:
      - name: '*name'
        type: char
      - name: foreground
        type: maintenance_task_fn
      - name: background
        type: maintenance_task_fn
      - name: auto_condition
        type: maintenance_auto_fn
      item_type: struct
      name: maintenance_task
      pos:
        line_end: 1697
        line_start: 1676
        source_file: /src/git/builtin/gc.c
    - fields:
      - name: tasks[TASK__COUNT]
        type: "struct {\n\t\tunsigned type;\n\t\tenum schedule_priority schedule;\n\t}"
      item_type: struct
      name: maintenance_strategy
      pos:
        line_end: 1841
        line_start: 1836
        source_file: /src/git/builtin/gc.c
    - fields:
      - name: '*name'
        type: char
      - name: (*is_available)(void)
        type: int
      - name: (*update_schedule)(int run_maintenance, int fd)
        type: int
      item_type: struct
      name: "scheduler_fn[] = {\n\t[SCHEDULER_CRON] = {\n\t\t.name = \"crontab\",\n\t\t.is_available
        = is_crontab_available,\n\t\t.update_schedule = crontab_update_schedule,\n\t},\n\t[SCHEDULER_SYSTEMD]
        = {\n\t\t.name = \"systemctl\",\n\t\t.is_available = is_systemd_timer_available,\n\t\t.update_schedule
        = systemd_timer_update_schedule,\n\t},\n\t[SCHEDULER_LAUNCHCTL] = {\n\t\t.name
        = \"launchctl\",\n\t\t.is_available = is_launchctl_available,\n\t\t.update_schedule
        = launchctl_update_schedule,\n\t},\n\t[SCHEDULER_SCHTASKS] = {\n\t\t.name
        = \"schtasks\",\n\t\t.is_available = is_schtasks_available,\n\t\t.update_schedule
        = schtasks_update_schedule,\n\t},\n}"
      pos:
        line_end: 3264
        line_start: 3260
        source_file: /src/git/builtin/gc.c
    - fields:
      - name: scheduler
        type: enum scheduler
      item_type: struct
      name: maintenance_start_opts
      pos:
        line_end: 3321
        line_start: 3319
        source_file: /src/git/builtin/gc.c
    typedefs:
    - item_type: typedef
      name: "(*maintenance_task_fn)(struct maintenance_run_opts *opts,\n\t\t\t\t   struct
        gc_config *cfg)"
      pos:
        line_end: 1673
        line_start: 1672
        source_file: /src/git/builtin/gc.c
      type: int
    - item_type: typedef
      name: (*maintenance_auto_fn)(struct gc_config *cfg)
      pos:
        line_end: 1674
        line_start: 1674
        source_file: /src/git/builtin/gc.c
      type: int
    union: []
- function_names:
  - is_rev_argument
  - show
  - show_with_type
  - show_rev
  - show_flag
  - show_default
  - show_reference
  - anti_reference
  - show_abbrev
  - show_datestring
  - show_file
  - try_difference
  - try_parent_shorthands
  - parseopt_dump
  - skipspaces
  - findspace
  - cmd_parseopt
  - cmd_sq_quote
  - die_no_single_rev
  - opt_with_value
  - handle_ref_opt
  - print_path
  - cmd_rev_parse
  source_file: /src/git/builtin/rev-parse.c
  types:
    enum:
    - enumerators:
      - name: FORMAT_RELATIVE
      - name: FORMAT_DEFAULT
      - name: FORMAT_CANONICAL
      item_type: enum
      name: format_type
      pos:
        line_end: 641
        line_start: 634
        source_file: /src/git/builtin/rev-parse.c
    - enumerators:
      - name: DEFAULT_RELATIVE
      - name: DEFAULT_RELATIVE_IF_SHARED
      - name: DEFAULT_CANONICAL
      - name: DEFAULT_UNMODIFIED
      item_type: enum
      name: default_type
      pos:
        line_end: 652
        line_start: 643
        source_file: /src/git/builtin/rev-parse.c
    preproc_defs:
    - item_type: preproc_def
      name: DO_REVS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/builtin/rev-parse.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DO_NOREV
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/builtin/rev-parse.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DO_FLAGS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/git/builtin/rev-parse.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DO_NONFLAGS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/builtin/rev-parse.c
      type_or_value: '8'
    - item_type: preproc_def
      name: NORMAL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/builtin/rev-parse.c
      type_or_value: '0'
    - item_type: preproc_def
      name: REVERSED
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/builtin/rev-parse.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SHOW_SYMBOLIC_ASIS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/git/builtin/rev-parse.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SHOW_SYMBOLIC_FULL
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/builtin/rev-parse.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - option_parse_message
  - option_read_message
  - get_strategy
  - append_strategy
  - option_parse_strategy
  - option_parse_compact_summary
  - save_state
  - read_empty
  - reset_hard
  - restore_state
  - finish_up_to_date
  - squash_message
  - finish
  - merge_name
  - parse_branch_merge_options
  - git_merge_config
  - read_tree_trivial
  - write_tree_trivial
  - try_merge_strategy
  - count_diff_files
  - count_unmerged_entries
  - add_strategies
  - read_merge_msg
  - abort_commit
  - prepare_to_commit
  - merge_trivial
  - finish_automerge
  - suggest_conflicts
  - evaluate_result
  - setup_with_upstream
  - write_merge_heads
  - write_merge_state
  - default_edit_option
  - reduce_parents
  - prepare_merge_message
  - handle_fetch_head
  - collect_parents
  - merging_a_throwaway_tag
  - cmd_merge
  source_file: /src/git/builtin/merge.c
  types:
    enum:
    - enumerators:
      - name: FF_NO
      - name: FF_ONLY
      - name: FF_ALLOW
      item_type: enum
      name: ff_type
      pos:
        line_end: 115
        line_start: 111
        source_file: /src/git/builtin/merge.c
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_TWOHEAD
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/builtin/merge.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: DEFAULT_OCTOPUS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/builtin/merge.c
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: NO_FAST_FORWARD
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/builtin/merge.c
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: NO_TRIVIAL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/git/builtin/merge.c
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: MERGE_SHOW_DIFFSTAT
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/git/builtin/merge.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MERGE_SHOW_COMPACTSUMMARY
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/git/builtin/merge.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: attr
        type: unsigned
      item_type: struct
      name: strategy
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/git/builtin/merge.c
    typedefs: []
    union: []
- function_names:
  - backfill_context_clear
  - download_batch
  - fill_missing_blobs
  - reject_unsupported_rev_list_options
  - do_backfill
  - cmd_backfill
  source_file: /src/git/builtin/backfill.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: current_batch
        type: struct oid_array
      - name: min_batch_size
        type: size_t
      - name: sparse
        type: int
      - name: include_edges
        type: int
      - name: revs
        type: struct rev_info
      item_type: struct
      name: backfill_context
      pos:
        line_end: 39
        line_start: 32
        source_file: /src/git/builtin/backfill.c
    typedefs: []
    union: []
- function_names:
  - mktag_fsck_error_func
  - verify_object_in_tag
  - cmd_mktag
  source_file: /src/git/builtin/mktag.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_object_dir
  - handle_object_dir_option
  - add_common_options
  - git_multi_pack_index_write_config
  - read_packs_from_stdin
  - cmd_multi_pack_index_write
  - cmd_multi_pack_index_compact
  - cmd_multi_pack_index_verify
  - cmd_multi_pack_index_expire
  - cmd_multi_pack_index_repack
  - cmd_multi_pack_index
  source_file: /src/git/builtin/multi-pack-index.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUILTIN_MIDX_WRITE_USAGE
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/git/builtin/multi-pack-index.c
      type_or_value: "N_(\"git multi-pack-index [<options>] write [--preferred-pack=<pack>]\\n\"
        \\\n\t   \"  [--[no-]bitmap] [--[no-]incremental] [--[no-]stdin-packs]\\n\"
        \\\n\t   \"  [--refs-snapshot=<path>] [--[no-]write-chain-file]\\n\" \\\n\t
        \  \"  [--base=<checksum>]\")"
    - item_type: preproc_def
      name: BUILTIN_MIDX_COMPACT_USAGE
      pos:
        line_end: 25
        line_start: 21
        source_file: /src/git/builtin/multi-pack-index.c
      type_or_value: "N_(\"git multi-pack-index [<options>] compact [--[no-]incremental]\\n\"
        \\\n\t   \"  [--[no-]bitmap] [--base=<checksum>] [--[no-]write-chain-file]\\n\"
        \\\n\t   \"  <from> <to>\")"
    - item_type: preproc_def
      name: BUILTIN_MIDX_VERIFY_USAGE
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/git/builtin/multi-pack-index.c
      type_or_value: N_("git multi-pack-index [<options>] verify")
    - item_type: preproc_def
      name: BUILTIN_MIDX_EXPIRE_USAGE
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/git/builtin/multi-pack-index.c
      type_or_value: N_("git multi-pack-index [<options>] expire")
    - item_type: preproc_def
      name: BUILTIN_MIDX_REPACK_USAGE
      pos:
        line_end: 34
        line_start: 32
        source_file: /src/git/builtin/multi-pack-index.c
      type_or_value: N_("git multi-pack-index [<options>] repack [--batch-size=<size>]")
    structs:
    - fields:
      - name: '*object_dir'
        type: char
      - name: '*preferred_pack'
        type: char
      - name: '*incremental_base'
        type: char
      - name: '*refs_snapshot'
        type: char
      - name: batch_size
        type: unsigned long
      - name: flags
        type: unsigned
      - name: stdin_packs
        type: int
      item_type: struct
      name: opts_multi_pack_index
      pos:
        line_end: 72
        line_start: 64
        source_file: /src/git/builtin/multi-pack-index.c
    typedefs: []
    union: []
- function_names:
  - change_data_free
  - fill_commit_message
  - commit_tree_ext
  - commit_tree_with_edited_message
  - parse_ref_action
  - revwalk_contains_merges
  - setup_revwalk
  - handle_ref_update
  - handle_reference_updates
  - commit_became_empty
  - parse_opt_empty
  - cmd_history_fixup
  - cmd_history_reword
  - write_ondisk_index
  - split_commit
  - cmd_history_split
  - cmd_history
  source_file: /src/git/builtin/history.c
  types:
    enum:
    - enumerators:
      - name: COMMIT_TREE_EDIT_MESSAGE
        value: (1 << 0)
      item_type: enum
      name: commit_tree_flags
      pos:
        line_end: 98
        line_start: 96
        source_file: /src/git/builtin/history.c
    - enumerators:
      - name: REF_ACTION_DEFAULT
      - name: REF_ACTION_HEAD
      - name: REF_ACTION_BRANCHES
      item_type: enum
      name: ref_action
      pos:
        line_end: 190
        line_start: 186
        source_file: /src/git/builtin/history.c
    preproc_defs:
    - item_type: preproc_def
      name: GIT_HISTORY_FIXUP_USAGE
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/git/builtin/history.c
      type_or_value: N_("git history fixup <commit> [--dry-run] [--update-refs=(branches|head)]
        [--reedit-message] [--empty=(drop|keep|abort)]")
    - item_type: preproc_def
      name: GIT_HISTORY_REWORD_USAGE
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/git/builtin/history.c
      type_or_value: N_("git history reword <commit> [--dry-run] [--update-refs=(branches|head)]")
    - item_type: preproc_def
      name: GIT_HISTORY_SPLIT_USAGE
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/git/builtin/history.c
      type_or_value: N_("git history split <commit> [--dry-run] [--update-refs=(branches|head)]
        [--] [<pathspec>...]")
    structs: []
    typedefs: []
    union: []
- function_names:
  - fsmonitor_config
  - do_as_client__send_stop
  - do_as_client__status
  - cookies_cmp
  - with_lock__wait_for_cookie
  - with_lock__mark_cookies_seen
  - with_lock__abort_all_cookies
  - fsmonitor_new_token_data
  - fsmonitor_batch__new
  - fsmonitor_batch__free_list
  - fsmonitor_batch__add_path
  - fsmonitor_batch__combine
  - with_lock__truncate_old_batches
  - fsmonitor_free_token_data
  - with_lock__do_force_resync
  - fsmonitor_force_resync
  - with_lock__format_response_token
  - fsmonitor_parse_client_token
  - do_handle_client
  - handle_client
  - fsmonitor_classify_path_workdir_relative
  - fsmonitor_classify_path_gitdir_relative
  - try_classify_workdir_abs_path
  - fsmonitor_classify_path_absolute
  - fsmonitor_publish
  - fsm_health__thread_proc
  - fsm_listen__thread_proc
  - fsmonitor_run_daemon_1
  - fsmonitor_run_daemon
  - try_to_run_foreground_daemon
  - bg_wait_cb
  - try_to_start_background_daemon
  - cmd_fsmonitor__daemon
  - cmd_fsmonitor__daemon
  source_file: /src/git/builtin/fsmonitor--daemon.c
  types:
    enum:
    - enumerators:
      - name: FCIR_ERROR
        value: '-1'
      - name: FCIR_SEEN
      - name: FCIR_INIT
      - name: FCIR_ABORT
      item_type: enum
      name: fsmonitor_cookie_item_result
      pos:
        line_end: 127
        line_start: 122
        source_file: /src/git/builtin/fsmonitor--daemon.c
    preproc_defs:
    - item_type: preproc_def
      name: FSMONITOR__IPC_THREADS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/builtin/fsmonitor--daemon.c
      type_or_value: '"fsmonitor.ipcthreads"'
    - item_type: preproc_def
      name: FSMONITOR__START_TIMEOUT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/git/builtin/fsmonitor--daemon.c
      type_or_value: '"fsmonitor.starttimeout"'
    - item_type: preproc_def
      name: FSMONITOR__ANNOUNCE_STARTUP
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/builtin/fsmonitor--daemon.c
      type_or_value: '"fsmonitor.announcestartup"'
    - item_type: preproc_def
      name: MY_TIME_DELAY_SECONDS
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/git/builtin/fsmonitor--daemon.c
      type_or_value: '(5 * 60) '
    - item_type: preproc_def
      name: FSMONITOR_DIR
      pos:
        line_end: 994
        line_start: 993
        source_file: /src/git/builtin/fsmonitor--daemon.c
      type_or_value: '"fsmonitor--daemon"'
    - item_type: preproc_def
      name: FSMONITOR_COOKIE_DIR
      pos:
        line_end: 995
        line_start: 994
        source_file: /src/git/builtin/fsmonitor--daemon.c
      type_or_value: '"cookies"'
    - item_type: preproc_def
      name: FSMONITOR_COOKIE_PREFIX
      pos:
        line_end: 996
        line_start: 995
        source_file: /src/git/builtin/fsmonitor--daemon.c
      type_or_value: (FSMONITOR_DIR "/" FSMONITOR_COOKIE_DIR "/")
    - item_type: preproc_def
      name: MY_COMBINE_LIMIT
      pos:
        line_end: 1084
        line_start: 1083
        source_file: /src/git/builtin/fsmonitor--daemon.c
      type_or_value: (1024)
    structs:
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: '*name'
        type: char
      - name: result
        type: enum fsmonitor_cookie_item_result
      item_type: struct
      name: fsmonitor_cookie_item
      pos:
        line_end: 133
        line_start: 129
        source_file: /src/git/builtin/fsmonitor--daemon.c
    - fields:
      - name: token_id
        type: struct strbuf
      - name: '*batch_head'
        type: struct fsmonitor_batch
      - name: '*batch_tail'
        type: struct fsmonitor_batch
      - name: client_ref_count
        type: uint64_t
      item_type: struct
      name: fsmonitor_token_data
      pos:
        line_end: 352
        line_start: 347
        source_file: /src/git/builtin/fsmonitor--daemon.c
    - fields:
      - name: '*next'
        type: struct fsmonitor_batch
      - name: batch_seq_nr
        type: uint64_t
      - name: '**interned_paths'
        type: char
      - name: nr
        type: size_t
      - name: pinned_time
        type: time_t
      item_type: struct
      name: fsmonitor_batch
      pos:
        line_end: 360
        line_start: 354
        source_file: /src/git/builtin/fsmonitor--daemon.c
    typedefs: []
    union: []
- function_names:
  - free_stash_info
  - check_stash_topology
  - assert_stash_like
  - parse_stash_revision
  - get_stash_info
  - do_clear_stash
  - clear_stash
  - reset_tree
  - diff_tree_binary
  - apply_cached
  - reset_head
  - is_path_a_directory
  - add_diff_to_buf
  - restore_untracked
  - unstage_changes_unless_new
  - do_apply_stash
  - apply_stash
  - reject_reflog_ent
  - reflog_is_empty
  - do_drop_stash
  - get_stash_info_assert
  - drop_stash
  - pop_stash
  - branch_stash
  - list_stash
  - git_stash_config
  - diff_include_untracked
  - show_stash
  - do_store_stash
  - store_stash
  - add_pathspecs
  - get_untracked_files
  - check_changes_tracked_files
  - check_changes
  - save_untracked_files
  - stash_staged
  - stash_patch
  - stash_working_tree
  - do_create_stash
  - create_stash
  - do_push_stash
  - push_stash
  - push_stash_unassumed
  - save_stash
  - write_commit_with_parents
  - do_import_stash
  - import_stash
  - collect_stash_entries
  - do_export_stash
  - export_stash
  - cmd_stash
  source_file: /src/git/builtin/stash.c
  types:
    enum:
    - enumerators:
      - name: ACTION_NONE
      - name: ACTION_TO_REF
      - name: ACTION_PRINT
      item_type: enum
      name: export_action
      pos:
        line_end: 2363
        line_start: 2359
        source_file: /src/git/builtin/stash.c
    preproc_defs:
    - item_type: preproc_def
      name: INCLUDE_ALL_FILES
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/builtin/stash.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BUILTIN_STASH_LIST_USAGE
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/git/builtin/stash.c
      type_or_value: N_("git stash list [<log-options>]")
    - item_type: preproc_def
      name: BUILTIN_STASH_SHOW_USAGE
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/git/builtin/stash.c
      type_or_value: N_("git stash show [-u | --include-untracked | --only-untracked]
        [<diff-options>] [<stash>]")
    - item_type: preproc_def
      name: BUILTIN_STASH_DROP_USAGE
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/git/builtin/stash.c
      type_or_value: N_("git stash drop [-q | --quiet] [<stash>]")
    - item_type: preproc_def
      name: BUILTIN_STASH_POP_USAGE
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/git/builtin/stash.c
      type_or_value: N_("git stash pop [--index] [-q | --quiet] [<stash>]")
    - item_type: preproc_def
      name: BUILTIN_STASH_APPLY_USAGE
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/git/builtin/stash.c
      type_or_value: N_("git stash apply [--index] [-q | --quiet] [--label-ours=<label>]
        [--label-theirs=<label>] [--label-base=<label>] [<stash>]")
    - item_type: preproc_def
      name: BUILTIN_STASH_BRANCH_USAGE
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/git/builtin/stash.c
      type_or_value: N_("git stash branch <branchname> [<stash>]")
    - item_type: preproc_def
      name: BUILTIN_STASH_STORE_USAGE
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/git/builtin/stash.c
      type_or_value: N_("git stash store [(-m | --message) <message>] [-q | --quiet]
        <commit>")
    - item_type: preproc_def
      name: BUILTIN_STASH_PUSH_USAGE
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/git/builtin/stash.c
      type_or_value: "N_(\"git stash [push] [-p | --patch] [-S | --staged] [-k | --[no-]keep-index]
        [-q | --quiet]\\n\" \\\n\t   \"          [-u | --include-untracked] [-a |
        --all] [(-m | --message) <message>]\\n\" \\\n\t   \"          [--pathspec-from-file=<file>
        [--pathspec-file-nul]]\\n\" \\\n\t   \"          [--] [<pathspec>...]\")"
    - item_type: preproc_def
      name: BUILTIN_STASH_SAVE_USAGE
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/git/builtin/stash.c
      type_or_value: "N_(\"git stash save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index]
        [-q | --quiet]\\n\" \\\n\t   \"          [-u | --include-untracked] [-a |
        --all] [<message>]\")"
    - item_type: preproc_def
      name: BUILTIN_STASH_CREATE_USAGE
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/git/builtin/stash.c
      type_or_value: N_("git stash create [<message>]")
    - item_type: preproc_def
      name: BUILTIN_STASH_EXPORT_USAGE
      pos:
        line_end: 63
        line_start: 61
        source_file: /src/git/builtin/stash.c
      type_or_value: N_("git stash export (--print | --to-ref <ref>) [<stash>...]")
    - item_type: preproc_def
      name: BUILTIN_STASH_IMPORT_USAGE
      pos:
        line_end: 65
        line_start: 63
        source_file: /src/git/builtin/stash.c
      type_or_value: N_("git stash import <commit>")
    - item_type: preproc_def
      name: BUILTIN_STASH_CLEAR_USAGE
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/git/builtin/stash.c
      type_or_value: '"git stash clear"'
    - item_type: preproc_def
      name: STASH_INFO_INIT
      pos:
        line_end: 182
        line_start: 179
        source_file: /src/git/builtin/stash.c
      type_or_value: "{ \\\n\t.revision = STRBUF_INIT, \\\n}"
    structs:
    - fields:
      - name: w_commit
        type: struct object_id
      - name: b_commit
        type: struct object_id
      - name: i_commit
        type: struct object_id
      - name: u_commit
        type: struct object_id
      - name: c_commit
        type: struct object_id
      - name: w_tree
        type: struct object_id
      - name: b_tree
        type: struct object_id
      - name: i_tree
        type: struct object_id
      - name: u_tree
        type: struct object_id
      - name: revision
        type: struct strbuf
      - name: is_stash_ref
        type: int
      - name: has_u
        type: int
      item_type: struct
      name: stash_info
      pos:
        line_end: 177
        line_start: 164
        source_file: /src/git/builtin/stash.c
    - fields:
      - name: '*r'
        type: struct repository
      - name: '**items'
        type: struct commit_list
      - name: count
        type: size_t
      item_type: struct
      name: stash_entry_data
      pos:
        line_end: 2235
        line_start: 2231
        source_file: /src/git/builtin/stash.c
    typedefs: []
    union: []
- function_names:
  - is_from_line
  - is_gtfrom
  - split_one
  - populate_maildir_list
  - maildir_filename_cmp
  - split_maildir
  - split_mbox
  - cmd_mailsplit
  source_file: /src/git/builtin/mailsplit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - action_name
  - revert_or_cherry_pick_usage
  - parse_opt_empty
  - option_parse_m
  - verify_opt_compatible
  - run_sequencer
  - cmd_revert
  - cmd_cherry_pick
  source_file: /src/git/builtin/revert.c
  types:
    enum:
    - enumerators:
      - name: EMPTY_COMMIT_UNSPECIFIED
        value: '-1'
      - name: STOP_ON_EMPTY_COMMIT
      - name: KEEP_EMPTY_COMMIT
      - name: DROP_EMPTY_COMMIT
      item_type: enum
      name: empty_action
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/git/builtin/revert.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - free_note_data
  - list_each_note
  - copy_obj_to_fd
  - write_commented_object
  - prepare_note_data
  - write_note_data
  - append_separator
  - concat_messages
  - parse_msg_arg
  - parse_file_arg
  - parse_reuse_arg
  - parse_reedit_arg
  - parse_separator_arg
  - notes_copy_from_stdin
  - init_notes_check
  - list
  - add
  - copy
  - append_edit
  - show
  - merge_abort
  - merge_commit
  - git_config_get_notes_strategy
  - merge
  - remove_one_note
  - remove_cmd
  - prune
  - get_ref
  - cmd_notes
  source_file: /src/git/builtin/notes.c
  types:
    enum:
    - enumerators:
      - name: UNSPECIFIED
        value: '-1'
      - name: NO_STRIPSPACE
        value: '0'
      - name: STRIPSPACE
        value: '1'
      item_type: enum
      name: notes_stripspace
      pos:
        line_end: 109
        line_start: 105
        source_file: /src/git/builtin/notes.c
    preproc_defs:
    - item_type: preproc_def
      name: IGNORE_MISSING
      pos:
        line_end: 1018
        line_start: 1017
        source_file: /src/git/builtin/notes.c
      type_or_value: '1'
    structs:
    - fields:
      - name: stripspace
        type: enum notes_stripspace
      - name: buf
        type: struct strbuf
      item_type: struct
      name: note_msg
      pos:
        line_end: 114
        line_start: 111
        source_file: /src/git/builtin/notes.c
    - fields:
      - name: use_editor
        type: int
      - name: stripspace
        type: int
      - name: '*edit_path'
        type: char
      - name: buf
        type: struct strbuf
      - name: '**messages'
        type: struct note_msg
      - name: msg_nr
        type: size_t
      - name: msg_alloc
        type: size_t
      item_type: struct
      name: note_data
      pos:
        line_end: 124
        line_start: 116
        source_file: /src/git/builtin/notes.c
    typedefs: []
    union: []
- function_names:
  - better_branch_name
  - cmd_merge_recursive
  source_file: /src/git/builtin/merge-recursive.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_config_vars
  - set_config_sections
  - list_config_help
  - parse_help_format
  - get_man_viewer_info
  - check_emacsclient_version
  - exec_woman_emacs
  - exec_man_konqueror
  - exec_man_man
  - exec_man_cmd
  - add_man_viewer
  - supported_man_viewer
  - do_add_man_viewer_info
  - add_man_viewer_path
  - add_man_viewer_cmd
  - add_man_viewer_info
  - git_help_config
  - is_git_command
  - cmd_to_page
  - setup_man_path
  - exec_viewer
  - show_man_page
  - show_info_page
  - get_html_page_path
  - open_html
  - show_html_page
  - check_git_cmd
  - no_help_format
  - opt_mode_usage
  - cmd_help
  source_file: /src/git/builtin/help.c
  types:
    enum:
    - enumerators:
      - name: HELP_FORMAT_NONE
      - name: HELP_FORMAT_INFO
      - name: HELP_FORMAT_MAN
      - name: HELP_FORMAT_WEB
      item_type: enum
      name: help_format
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/git/builtin/help.c
    - enumerators:
      - name: SHOW_CONFIG_HUMAN
      - name: SHOW_CONFIG_SECTIONS
      - name: SHOW_CONFIG_VARS
      item_type: enum
      name: show_config_type
      pos:
        line_end: 46
        line_start: 42
        source_file: /src/git/builtin/help.c
    - enumerators:
      - name: HELP_ACTION_ALL
        value: '1'
      - name: HELP_ACTION_CONFIG
      - name: HELP_ACTION_USER_INTERFACES
      - name: HELP_ACTION_GUIDES
      - name: HELP_ACTION_DEVELOPER_INTERFACES
      - name: HELP_ACTION_CONFIG_FOR_COMPLETION
      - name: HELP_ACTION_CONFIG_SECTIONS_FOR_COMPLETION
      - name: HELP_ACTION_ALIASES_FOR_COMPLETION
      item_type: enum
      name: help_action
      pos:
        line_end: 57
        line_start: 48
        source_file: /src/git/builtin/help.c
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_HELP_FORMAT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/builtin/help.c
      type_or_value: '"man"'
    structs:
    - fields:
      - name: '*next'
        type: struct man_viewer_list
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: man_viewer_list
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/git/builtin/help.c
    - fields:
      - name: '*next'
        type: struct man_viewer_info_list
      - name: '*info'
        type: char
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: man_viewer_info_list
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/git/builtin/help.c
    - fields:
      - name: '*prefix'
        type: char
      - name: '*placeholder'
        type: char
      - name: (*fn)(struct string_list *list, const char *prefix)
        type: void
      - name: found
        type: int
      item_type: struct
      name: slot_expansion
      pos:
        line_end: 114
        line_start: 109
        source_file: /src/git/builtin/help.c
    typedefs: []
    union: []
- function_names:
  - parse_options_cmd_bundle
  - cmd_bundle_create
  - open_bundle
  - cmd_bundle_verify
  - cmd_bundle_list_heads
  - cmd_bundle_unbundle
  - cmd_bundle
  source_file: /src/git/builtin/bundle.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUILTIN_BUNDLE_CREATE_USAGE
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/git/builtin/bundle.c
      type_or_value: "N_(\"git bundle create [-q | --quiet | --progress]\\n\" \\\n\t
        \  \"                  [--version=<version>] <file> <git-rev-list-args>\")"
    - item_type: preproc_def
      name: BUILTIN_BUNDLE_VERIFY_USAGE
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/git/builtin/bundle.c
      type_or_value: N_("git bundle verify [-q | --quiet] <file>")
    - item_type: preproc_def
      name: BUILTIN_BUNDLE_LIST_HEADS_USAGE
      pos:
        line_end: 24
        line_start: 22
        source_file: /src/git/builtin/bundle.c
      type_or_value: N_("git bundle list-heads <file> [<refname>...]")
    - item_type: preproc_def
      name: BUILTIN_BUNDLE_UNBUNDLE_USAGE
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/git/builtin/bundle.c
      type_or_value: N_("git bundle unbundle [--progress] <file> [<refname>...]")
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_symref
  - cmd_symbolic_ref
  source_file: /src/git/builtin/symbolic-ref.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_diff_index
  source_file: /src/git/builtin/diff-index.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bits_to_msg
  - real_report_garbage
  - loose_garbage
  - count_loose
  - count_cruft
  - print_alternate
  - cmd_count_objects
  - repo_for_each_pack
  source_file: /src/git/builtin/count-objects.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_update_server_info
  source_file: /src/git/builtin/update-server-info.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - list_tags
  - for_each_tag_name
  - collect_tags
  - delete_tags
  - verify_tag
  - do_sign
  - git_tag_config
  - write_tag_body
  - build_tag_object
  - create_tag
  - create_reflog_msg
  - parse_msg_arg
  - cmd_tag
  source_file: /src/git/builtin/tag.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: message_given
        type: unsigned int
      - name: use_editor
        type: unsigned int
      - name: sign
        type: unsigned int
      - name: cleanup_mode
        type: "enum {\n\t\tCLEANUP_NONE,\n\t\tCLEANUP_SPACE,\n\t\tCLEANUP_ALL\n\t}"
      item_type: struct
      name: create_tag_options
      pos:
        line_end: 288
        line_start: 279
        source_file: /src/git/builtin/tag.c
    - fields:
      - name: given
        type: int
      - name: buf
        type: struct strbuf
      item_type: struct
      name: msg_arg
      pos:
        line_end: 436
        line_start: 433
        source_file: /src/git/builtin/tag.c
    typedefs:
    - item_type: typedef
      name: "(*each_tag_name_fn)(const char *name, const char *ref,\n\t\t\t\tconst
        struct object_id *oid, void *cb_data)"
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/git/builtin/tag.c
      type: int
    union: []
- function_names:
  - parse_opt_sign_mode
  - parse_opt_tag_of_filtered_mode
  - parse_opt_reencode_mode
  - anonymized_entry_cmp
  - add_anonymized_entry
  - anonymize_str
  - anonymize_path
  - mark_to_ptr
  - ptr_to_mark
  - mark_object
  - mark_next_object
  - get_object_mark
  - rewrite_commit
  - show_progress
  - anonymize_blob
  - export_blob
  - depth_first
  - print_path_1
  - anonymize_path_component
  - print_path
  - generate_fake_oid
  - anonymize_oid
  - show_filemodify
  - anonymize_ref_component
  - anonymize_refname
  - anonymize_commit_message
  - anonymize_ident
  - anonymize_ident_line
  - find_commit_multiline_header
  - print_signature
  - append_signatures_for_header
  - handle_commit
  - anonymize_tag
  - handle_tag
  - get_commit
  - get_tags_and_duplicates
  - handle_tags_and_duplicates
  - export_marks
  - import_marks
  - handle_deletes
  - parse_opt_anonymize_map
  - cmd_fast_export
  source_file: /src/git/builtin/fast-export.c
  types:
    enum:
    - enumerators:
      - name: TAG_FILTERING_ABORT
      - name: REWRITE
      - name: DROP
      item_type: enum
      name: tag_of_filtered_mode
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/git/builtin/fast-export.c
    - enumerators:
      - name: REENCODE_ABORT
      - name: REENCODE_NO
      - name: REENCODE_YES
      item_type: enum
      name: reencode_mode
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/git/builtin/fast-export.c
    preproc_defs: []
    structs:
    - fields:
      - name: hash
        type: struct hashmap_entry
      - name: '*anon'
        type: char
      - name: orig[FLEX_ARRAY]
        type: char
      item_type: struct
      name: anonymized_entry
      pos:
        line_end: 122
        line_start: 118
        source_file: /src/git/builtin/fast-export.c
    - fields:
      - name: hash
        type: struct hashmap_entry
      - name: '*orig'
        type: char
      - name: orig_len
        type: size_t
      item_type: struct
      name: anonymized_entry_key
      pos:
        line_end: 128
        line_start: 124
        source_file: /src/git/builtin/fast-export.c
    typedefs: []
    union: []
- function_names:
  - write_tempfile_record
  - checkout_file
  - checkout_all
  - option_parse_stage
  - cmd_checkout_index
  source_file: /src/git/builtin/checkout-index.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHECKOUT_ALL
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/builtin/checkout-index.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - report
  - remove_test_directory
  - get_mtime_path
  - xmkdir
  - xstat_mtime_dir
  - create_file
  - xunlink
  - xrmdir
  - avoid_racy
  - test_if_untracked_cache_is_supported
  - mark_ce_flags
  - remove_one_path
  - process_lstat_error
  - add_one_path
  - process_directory
  - process_path
  - add_cacheinfo
  - chmod_path
  - update_one
  - read_index_info
  - read_one_ent
  - unresolve_one
  - do_unresolve
  - do_reupdate
  - refresh
  - refresh_callback
  - really_refresh_callback
  - chmod_callback
  - resolve_undo_clear_callback
  - parse_new_style_cacheinfo
  - cacheinfo_callback
  - stdin_cacheinfo_callback
  - stdin_callback
  - unresolve_callback
  - reupdate_callback
  - cmd_update_index
  source_file: /src/git/builtin/update-index.c
  types:
    enum:
    - enumerators:
      - name: UC_UNSPECIFIED
        value: '-1'
      - name: UC_DISABLE
        value: '0'
      - name: UC_ENABLE
      - name: UC_TEST
      - name: UC_FORCE
      item_type: enum
      name: uc_mode
      pos:
        line_end: 63
        line_start: 57
        source_file: /src/git/builtin/update-index.c
    preproc_defs:
    - item_type: preproc_def
      name: MARK_FLAG
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/git/builtin/update-index.c
      type_or_value: '1'
    - item_type: preproc_def
      name: UNMARK_FLAG
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/git/builtin/update-index.c
      type_or_value: '2'
    structs:
    - fields:
      - name: flags
        type: unsigned int
      - name: '*has_errors'
        type: int
      item_type: struct
      name: refresh_params
      pos:
        line_end: 731
        line_start: 728
        source_file: /src/git/builtin/update-index.c
    typedefs: []
    union: []
- function_names:
  - print_helper_status
  - send_pack_config
  - cmd_send_pack
  source_file: /src/git/builtin/send-pack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - command_loop
  - cmd_remote_fd
  source_file: /src/git/builtin/remote-fd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXCOMMAND
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/builtin/remote-fd.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - rebase_options_release
  - get_replay_opts
  - edit_todo_file
  - get_revision_ranges
  - init_basic_state
  - do_interactive_rebase
  - run_sequencer_rebase
  - is_merge
  - imply_merge
  - state_dir_path
  - read_basic_state
  - rebase_write_basic_state
  - cleanup_autostash
  - finish_rebase
  - move_to_original_branch
  - run_am
  - run_specific_rebase
  - parse_rebase_merges_value
  - rebase_config
  - checkout_up_to_date
  - is_linear_history
  - can_fast_forward
  - fill_branch_base
  - parse_opt_am
  - parse_opt_merge
  - parse_opt_interactive
  - parse_empty_value
  - parse_opt_keep_empty
  - parse_opt_empty
  - parse_opt_rebase_merges
  - error_on_missing_default_upstream
  - check_exec_cmd
  - cmd_rebase
  source_file: /src/git/builtin/rebase.c
  types:
    enum:
    - enumerators:
      - name: REBASE_UNSPECIFIED
        value: '-1'
      - name: REBASE_MERGE
      - name: REBASE_APPLY
      item_type: enum
      name: rebase_type
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/git/builtin/rebase.c
    - enumerators:
      - name: EMPTY_UNSPECIFIED
        value: '-1'
      - name: EMPTY_DROP
      - name: EMPTY_KEEP
      - name: EMPTY_STOP
      item_type: enum
      name: empty_type
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/git/builtin/rebase.c
    - enumerators:
      - name: ACTION_NONE
        value: '0'
      - name: ACTION_SKIP
      - name: ACTION_ABORT
      - name: ACTION_CONTINUE
      - name: ACTION_QUIT
      - name: ACTION_EDIT_TODO
      - name: ACTION_SHOW_CURRENT_PATCH
      item_type: enum
      name: action
      pos:
        line_end: 75
        line_start: 67
        source_file: /src/git/builtin/rebase.c
    preproc_defs:
    - item_type: preproc_def
      name: REBASE_OPTIONS_INIT
      pos:
        line_end: 159
        line_start: 139
        source_file: /src/git/builtin/rebase.c
      type_or_value: "{\t\t\t  \t\\\n\t\t.type = REBASE_UNSPECIFIED,\t  \t\\\n\t\t.empty
        = EMPTY_UNSPECIFIED,\t  \t\\\n\t\t.keep_empty = 1,\t\t\t\\\n\t\t.default_backend
        = xstrdup(\"merge\"),  \t\\\n\t\t.flags = REBASE_NO_QUIET, \t\t\\\n\t\t.git_am_opts
        = STRVEC_INIT,\t\t\\\n\t\t.exec = STRING_LIST_INIT_NODUP,\t\t\\\n\t\t.trailer_args
        = STRVEC_INIT,\t\t\\\n\t\t.git_format_patch_opt = STRBUF_INIT,\t\\\n\t\t.fork_point
        = -1,\t\t\t\\\n\t\t.reapply_cherry_picks = -1,             \\\n\t\t.allow_empty_message
        = 1,               \\\n\t\t.autosquash = -1,                       \\\n\t\t.rebase_merges
        = -1,                    \\\n\t\t.config_rebase_merges = -1,             \\\n\t\t.update_refs
        = -1,                      \\\n\t\t.config_update_refs = -1,               \\\n\t\t.strategy_opts
        = STRING_LIST_INIT_NODUP,\\\n\t}"
    structs:
    - fields:
      - name: type
        type: enum rebase_type
      - name: empty
        type: enum empty_type
      - name: '*default_backend'
        type: char
      - name: '*state_dir'
        type: char
      - name: '*upstream'
        type: struct commit
      - name: '*upstream_name'
        type: char
      - name: '*upstream_arg'
        type: char
      - name: '*head_name'
        type: char
      - name: '*orig_head'
        type: struct commit
      - name: '*onto'
        type: struct commit
      - name: '*onto_name'
        type: char
      - name: '*revisions'
        type: char
      - name: '*switch_to'
        type: char
      - name: root
        type: int
      - name: '*squash_onto'
        type: struct object_id
      - name: '*restrict_revision'
        type: struct commit
      - name: dont_finish_rebase
        type: int
      - name: flags
        type: "enum {\n\t\tREBASE_NO_QUIET = 1<<0,\n\t\tREBASE_VERBOSE = 1<<1,\n\t\tREBASE_DIFFSTAT
          = 1<<2,\n\t\tREBASE_FORCE = 1<<3,\n\t\tREBASE_INTERACTIVE_EXPLICIT = 1<<4,\n\t}"
      - name: git_am_opts
        type: struct strvec
      - name: action
        type: enum action
      - name: '*reflog_action'
        type: char
      - name: signoff
        type: int
      - name: trailer_args
        type: struct strvec
      - name: allow_rerere_autoupdate
        type: int
      - name: keep_empty
        type: int
      - name: autosquash
        type: int
      - name: '*gpg_sign_opt'
        type: char
      - name: autostash
        type: int
      - name: committer_date_is_author_date
        type: int
      - name: ignore_date
        type: int
      - name: exec
        type: struct string_list
      - name: allow_empty_message
        type: int
      - name: rebase_merges
        type: int
      - name: '*strategy'
        type: char
      - name: strategy_opts
        type: struct string_list
      - name: git_format_patch_opt
        type: struct strbuf
      - name: reschedule_failed_exec
        type: int
      - name: reapply_cherry_picks
        type: int
      - name: fork_point
        type: int
      - name: update_refs
        type: int
      - name: config_autosquash
        type: int
      - name: config_rebase_merges
        type: int
      - name: config_update_refs
        type: int
      item_type: struct
      name: rebase_options
      pos:
        line_end: 137
        line_start: 87
        source_file: /src/git/builtin/rebase.c
    typedefs: []
    union: []
- function_names:
  - packet_to_pc_item
  - report_result
  - release_pc_item_data
  - worker_loop
  - cmd_checkout__worker
  source_file: /src/git/builtin/checkout--worker.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hash_fd
  - hash_object
  - hash_stdin_paths
  - cmd_hash_object
  source_file: /src/git/builtin/hash-object.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tail_match
  - cmd_ls_remote
  source_file: /src/git/builtin/ls-remote.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - option_parse_where
  - option_parse_if_exists
  - option_parse_if_missing
  - new_trailers_clear
  - list_for_each_safe
  - option_parse_trailer
  - parse_opt_parse
  - read_input_file
  - interpret_trailers
  - cmd_interpret_trailers
  source_file: /src/git/builtin/interpret-trailers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - internal_prefix_pathspec
  - add_slash
  - submodule_gitfile_path
  - index_range_of_same_dir
  - empty_dir_has_sparse_contents
  - remove_empty_src_dirs
  - pathmap_cmp
  - cmd_mv
  source_file: /src/git/builtin/mv.c
  types:
    enum:
    - enumerators:
      - name: WORKING_DIRECTORY
        value: (1 << 1)
      - name: SPARSE
        value: (1 << 3)
      - name: MOVE_VIA_PARENT_DIR
        value: (1 << 5)
      - name: INDEX
        value: (1 << 2)
      - name: SKIP_WORKTREE_DIR
        value: (1 << 4)
      item_type: enum
      name: update_mode
      pos:
        line_end: 48
        line_start: 36
        source_file: /src/git/builtin/mv.c
    preproc_defs:
    - item_type: preproc_def
      name: DUP_BASENAME
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/git/builtin/mv.c
      type_or_value: '1'
    - item_type: preproc_def
      name: KEEP_TRAILING_SLASH
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/git/builtin/mv.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SUBMODULE_WITH_GITDIR
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/git/builtin/mv.c
      type_or_value: ((const char *)1)
    structs:
    - fields:
      - name: ent
        type: struct hashmap_entry
      - name: '*path'
        type: char
      item_type: struct
      name: pathmap_entry
      pos:
        line_end: 195
        line_start: 192
        source_file: /src/git/builtin/mv.c
    typedefs: []
    union: []
- function_names:
  - get_system_info
  - get_populated_hooks
  - get_bug_template
  - get_header
  - cmd_bugreport
  source_file: /src/git/builtin/bugreport.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - add_merge_entry
  - explanation
  - result
  - origin
  - show_outf
  - show_diff
  - show_result_list
  - show_result
  - same_entry
  - both_empty
  - create_entry
  - traverse_path
  - resolve
  - unresolved_directory
  - ENTRY_OID
  - link_entry
  - unresolved
  - threeway_callback
  - trivial_merge_trees
  - get_tree_descriptor
  - trivial_merge
  - real_merge
  - cmd_merge_tree
  source_file: /src/git/builtin/merge-tree.c
  types:
    enum:
    - enumerators:
      - name: MODE_UNKNOWN
      - name: MODE_REAL
      - name: MODE_TRIVIAL
      item_type: enum
      name: mode
      pos:
        line_end: 410
        line_start: 406
        source_file: /src/git/builtin/merge-tree.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct merge_list
      - name: '*link'
        type: struct merge_list
      - name: stage
        type: unsigned int
      - name: mode
        type: unsigned int
      - name: '*path'
        type: char
      - name: '*blob'
        type: struct blob
      item_type: struct
      name: merge_list
      pos:
        line_end: 33
        line_start: 25
        source_file: /src/git/builtin/merge-tree.c
    - fields:
      - name: mode
        type: int
      - name: allow_unrelated_histories
        type: int
      - name: show_messages
        type: int
      - name: name_only
        type: int
      - name: use_stdin
        type: int
      - name: merge_options
        type: struct merge_options
      item_type: struct
      name: merge_tree_options
      pos:
        line_end: 419
        line_start: 412
        source_file: /src/git/builtin/merge-tree.c
    typedefs: []
    union: []
- function_names:
  - cmd_show_index
  source_file: /src/git/builtin/show-index.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: oid
        type: struct object_id
      - name: crc
        type: uint32_t
      - name: 'off'
        type: uint32_t
      item_type: struct
      name: '*entries'
      pos:
        line_end: 91
        line_start: 87
        source_file: /src/git/builtin/show-index.c
    typedefs: []
    union: []
- function_names:
  - get_layout_bare
  - get_layout_shallow
  - get_object_format
  - get_references_format
  - repo_info_field_cmp
  - get_repo_info_field
  - print_field
  - print_fields
  - print_all_fields
  - print_keys
  - parse_format_cb
  - cmd_repo_info
  - stats_table_vaddf
  - stats_table_addf
  - stats_table_count_addf
  - stats_table_object_count_addf
  - stats_table_size_addf
  - stats_table_object_size_addf
  - get_total_reference_count
  - get_total_object_values
  - stats_table_setup_structure
  - stats_table_print_structure
  - stats_table_clear
  - print_keyvalue
  - print_object_data
  - structure_keyvalue_print
  - count_references
  - structure_count_references
  - check_largest
  - count_tree_entries
  - count_objects
  - structure_count_objects
  - cmd_repo_structure
  - cmd_repo
  source_file: /src/git/builtin/repo.c
  types:
    enum:
    - enumerators:
      - name: FORMAT_TABLE
      - name: FORMAT_NEWLINE_TERMINATED
      - name: FORMAT_NUL_TERMINATED
      item_type: enum
      name: output_format
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/git/builtin/repo.c
    preproc_defs:
    - item_type: preproc_def
      name: REPO_INFO_USAGE
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/git/builtin/repo.c
      type_or_value: "\"git repo info [--format=(lines|nul) | -z] [--all | <key>...]\",
        \\\n\t\"git repo info --keys [--format=(lines|nul) | -z]\""
    - item_type: preproc_def
      name: REPO_STRUCTURE_USAGE
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/git/builtin/repo.c
      type_or_value: '"git repo structure [--format=(table|lines|nul) | -z]"'
    - item_type: preproc_def
      name: INDEX_WIDTH
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/git/builtin/repo.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '*key'
        type: char
      - name: '*get_value'
        type: get_value_fn
      item_type: struct
      name: repo_info_field
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/git/builtin/repo.c
    - fields:
      - name: oid
        type: struct object_id
      - name: value
        type: size_t
      item_type: struct
      name: object_data
      pos:
        line_end: 255
        line_start: 252
        source_file: /src/git/builtin/repo.c
    - fields:
      - name: tag_size
        type: struct object_data
      - name: commit_size
        type: struct object_data
      - name: tree_size
        type: struct object_data
      - name: blob_size
        type: struct object_data
      - name: parent_count
        type: struct object_data
      - name: tree_entries
        type: struct object_data
      item_type: struct
      name: largest_objects
      pos:
        line_end: 265
        line_start: 257
        source_file: /src/git/builtin/repo.c
    - fields:
      - name: branches
        type: size_t
      - name: remotes
        type: size_t
      - name: tags
        type: size_t
      - name: others
        type: size_t
      item_type: struct
      name: ref_stats
      pos:
        line_end: 272
        line_start: 267
        source_file: /src/git/builtin/repo.c
    - fields:
      - name: tags
        type: size_t
      - name: commits
        type: size_t
      - name: trees
        type: size_t
      - name: blobs
        type: size_t
      item_type: struct
      name: object_values
      pos:
        line_end: 279
        line_start: 274
        source_file: /src/git/builtin/repo.c
    - fields:
      - name: type_counts
        type: struct object_values
      - name: inflated_sizes
        type: struct object_values
      - name: disk_sizes
        type: struct object_values
      - name: largest
        type: struct largest_objects
      item_type: struct
      name: object_stats
      pos:
        line_end: 286
        line_start: 281
        source_file: /src/git/builtin/repo.c
    - fields:
      - name: refs
        type: struct ref_stats
      - name: objects
        type: struct object_stats
      item_type: struct
      name: repo_structure
      pos:
        line_end: 291
        line_start: 288
        source_file: /src/git/builtin/repo.c
    - fields:
      - name: rows
        type: struct string_list
      - name: annotations
        type: struct string_list
      - name: name_col_width
        type: int
      - name: value_col_width
        type: int
      - name: unit_col_width
        type: int
      item_type: struct
      name: stats_table
      pos:
        line_end: 300
        line_start: 293
        source_file: /src/git/builtin/repo.c
    - fields:
      - name: '*value'
        type: char
      - name: '*unit'
        type: char
      - name: index
        type: size_t
      - name: '*oid'
        type: struct object_id
      item_type: struct
      name: stats_table_entry
      pos:
        line_end: 310
        line_start: 305
        source_file: /src/git/builtin/repo.c
    - fields:
      - name: '*stats'
        type: struct ref_stats
      - name: '*revs'
        type: struct rev_info
      - name: '*progress'
        type: struct progress
      item_type: struct
      name: count_references_data
      pos:
        line_end: 692
        line_start: 688
        source_file: /src/git/builtin/repo.c
    - fields:
      - name: '*odb'
        type: struct object_database
      - name: '*stats'
        type: struct object_stats
      - name: '*progress'
        type: struct progress
      item_type: struct
      name: count_objects_data
      pos:
        line_end: 751
        line_start: 747
        source_file: /src/git/builtin/repo.c
    typedefs:
    - item_type: typedef
      name: get_value_fn(struct repository *repo, struct strbuf *buf)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/git/builtin/repo.c
      type: int
    union: []
- function_names:
  - collect_reflog
  - expire_unreachable_callback
  - expire_total_callback
  - cmd_reflog_show
  - show_reflog
  - cmd_reflog_list
  - cmd_reflog_expire
  - cmd_reflog_delete
  - cmd_reflog_exists
  - cmd_reflog_drop
  - cmd_reflog_write
  - cmd_reflog
  source_file: /src/git/builtin/reflog.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUILTIN_REFLOG_SHOW_USAGE
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/git/builtin/reflog.c
      type_or_value: N_("git reflog [show] [<log-options>] [<ref>]")
    - item_type: preproc_def
      name: BUILTIN_REFLOG_LIST_USAGE
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/git/builtin/reflog.c
      type_or_value: N_("git reflog list")
    - item_type: preproc_def
      name: BUILTIN_REFLOG_EXISTS_USAGE
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/git/builtin/reflog.c
      type_or_value: N_("git reflog exists <ref>")
    - item_type: preproc_def
      name: BUILTIN_REFLOG_WRITE_USAGE
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/git/builtin/reflog.c
      type_or_value: N_("git reflog write <ref> <old-oid> <new-oid> <message>")
    - item_type: preproc_def
      name: BUILTIN_REFLOG_DELETE_USAGE
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/git/builtin/reflog.c
      type_or_value: "N_(\"git reflog delete [--rewrite] [--updateref]\\n\" \\\n\t
        \  \"                  [--dry-run | -n] [--verbose] <ref>@{<specifier>}...\")"
    - item_type: preproc_def
      name: BUILTIN_REFLOG_DROP_USAGE
      pos:
        line_end: 33
        line_start: 31
        source_file: /src/git/builtin/reflog.c
      type_or_value: N_("git reflog drop [--all [--single-worktree] | <refs>...]")
    - item_type: preproc_def
      name: BUILTIN_REFLOG_EXPIRE_USAGE
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/git/builtin/reflog.c
      type_or_value: "N_(\"git reflog expire [--expire=<time>] [--expire-unreachable=<time>]\\n\"
        \\\n\t   \"                  [--rewrite] [--updateref] [--stale-fix]\\n\"
        \\\n\t   \"                  [--dry-run | -n] [--verbose] [--all [--single-worktree]
        | <refs>...]\")"
    structs:
    - fields:
      - name: '*worktree'
        type: struct worktree
      - name: reflogs
        type: struct string_list
      item_type: struct
      name: worktree_reflogs
      pos:
        line_end: 88
        line_start: 85
        source_file: /src/git/builtin/reflog.c
    typedefs: []
    union: []
- function_names:
  - expand_objectsize
  - show_recursive
  - show_tree_fmt
  - show_tree_common
  - show_tree_common_default_long
  - show_tree_default
  - show_tree_long
  - show_tree_name_only
  - show_tree_object
  - cmd_ls_tree
  source_file: /src/git/builtin/ls-tree.c
  types:
    enum:
    - enumerators:
      - name: LS_RECURSIVE
        value: 1 << 0
      - name: LS_TREE_ONLY
        value: 1 << 1
      - name: LS_SHOW_TREES
        value: 1 << 2
      item_type: enum
      name: ls_tree_path_options
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/git/builtin/ls-tree.c
    - enumerators:
      - name: MODE_DEFAULT
        value: '0'
      - name: MODE_OBJECT_ONLY
      - name: MODE_LONG
      - name: MODE_NAME_ONLY
      - name: MODE_NAME_STATUS
      item_type: enum
      name: ls_tree_cmdmode
      pos:
        line_end: 299
        line_start: 293
        source_file: /src/git/builtin/ls-tree.c
    preproc_defs: []
    structs:
    - fields:
      - name: null_termination
        type: unsigned
      - name: abbrev
        type: int
      - name: ls_options
        type: "enum ls_tree_path_options {\n\t\tLS_RECURSIVE = 1 << 0,\n\t\tLS_TREE_ONLY
          = 1 << 1,\n\t\tLS_SHOW_TREES = 1 << 2,\n\t}"
      - name: pathspec
        type: struct pathspec
      - name: '*prefix'
        type: char
      - name: '*format'
        type: char
      item_type: struct
      name: ls_tree_options
      pos:
        line_end: 55
        line_start: 44
        source_file: /src/git/builtin/ls-tree.c
    - fields:
      - name: mode
        type: enum ls_tree_cmdmode
      - name: '*const fmt'
        type: char
      - name: fn
        type: read_tree_fn_t
      item_type: struct
      name: ls_tree_cmdmode_to_fmt
      pos:
        line_end: 305
        line_start: 301
        source_file: /src/git/builtin/ls-tree.c
    typedefs: []
    union: []
- function_names:
  - cmd_merge_ours
  source_file: /src/git/builtin/merge-ours.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flush_current_id
  - remove_space
  - scan_hunk_header
  - get_one_patchid
  - generate_id_list
  - git_patch_id_config
  - cmd_patch_id
  source_file: /src/git/builtin/patch-id.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: stable
        type: int
      - name: verbatim
        type: int
      item_type: struct
      name: patch_id_opts
      pos:
        line_end: 201
        line_start: 198
        source_file: /src/git/builtin/patch-id.c
    typedefs: []
    union: []
- function_names:
  - chmod_pathspec
  - renormalize_tracked_files
  - prune_directory
  - refresh
  - interactive_add
  - edit_patch
  - ignore_removal_cb
  - add_config
  - check_embedded_repo
  - add_files
  - cmd_add
  source_file: /src/git/builtin/add.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ADDREMOVE_DEFAULT
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/git/builtin/add.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_fmt_merge_msg
  source_file: /src/git/builtin/fmt-merge-msg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_annotate
  source_file: /src/git/builtin/annotate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - for_each_ref_core
  - cmd_for_each_ref
  source_file: /src/git/builtin/for-each-ref.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_diagnose
  source_file: /src/git/builtin/diagnose.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_prune_packed
  source_file: /src/git/builtin/prune-packed.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_opt_explicit_encoding
  - parse_opt_quoted_cr
  - cmd_mailinfo
  source_file: /src/git/builtin/mailinfo.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: policy
        type: "enum {\n\t\tCHARSET_DEFAULT,\n\t\tCHARSET_NO_REENCODE,\n\t\tCHARSET_EXPLICIT,\n\t}"
      - name: '*charset'
        type: char
      item_type: struct
      name: metainfo_charset
      pos:
        line_end: 27
        line_start: 19
        source_file: /src/git/builtin/mailinfo.c
    typedefs: []
    union: []
- function_names:
  - oe_delta
  - oe_delta_size
  - oe_size
  - oe_set_delta
  - oe_delta_sibling
  - oe_delta_child
  - oe_set_delta_child
  - oe_set_delta_sibling
  - oe_set_size
  - oe_set_delta_size
  - IN_PACK
  - SIZE
  - SET_SIZE
  - DELTA_SIZE
  - DELTA
  - DELTA_CHILD
  - DELTA_SIBLING
  - SET_DELTA
  - SET_DELTA_EXT
  - SET_DELTA_SIZE
  - SET_DELTA_CHILD
  - SET_DELTA_SIBLING
  - validate_name_hash_version
  - pack_name_hash_fn
  - index_commit_for_bitmap
  - get_delta
  - do_compress
  - write_large_blob_data
  - check_pack_inflate
  - copy_pack_data
  - oe_size_greater_than
  - write_no_reuse_object
  - write_reuse_object
  - write_object
  - write_one
  - mark_tagged
  - oe_layer
  - add_to_write_order
  - add_descendants_to_write_order
  - add_family_to_write_order
  - compute_layer_order
  - compute_write_order
  - record_reused_object
  - find_reused_offset
  - write_reused_pack_one
  - write_reused_pack_verbatim
  - write_reused_pack
  - write_excluded_by_configs
  - write_pack_file
  - no_try_delta
  - have_duplicate_entry
  - want_cruft_object_mtime
  - want_found_object
  - want_object_in_pack_one
  - want_object_in_pack_mtime
  - want_object_in_pack
  - create_object_entry
  - add_object_entry
  - add_object_entry_from_bitmap
  - pbase_tree_cache_ix
  - pbase_tree_cache_ix_incr
  - pbase_tree_get
  - pbase_tree_put
  - name_cmp_len
  - add_pbase_object
  - done_pbase_path_pos
  - check_pbase_path
  - add_preferred_base_object
  - add_preferred_base
  - cleanup_preferred_base
  - can_reuse_delta
  - prefetch_to_pack
  - check_object
  - pack_offset_sort
  - drop_reused_delta
  - break_delta_chains
  - get_object_details
  - type_size_sort
  - delta_cacheable
  - cache_lock
  - cache_unlock
  - progress_lock
  - progress_unlock
  - oe_size_less_than
  - oe_set_tree_depth
  - oe_get_size_slow
  - try_delta
  - check_delta_limit
  - free_unpacked
  - find_deltas
  - init_threaded_search
  - cleanup_threaded_search
  - threaded_find_deltas
  - ll_find_deltas
  - obj_is_packed
  - add_tag_chain
  - add_ref_tag
  - should_attempt_deltas
  - find_deltas_for_region
  - find_deltas_by_region
  - threaded_find_deltas_by_path
  - ll_find_deltas_by_region
  - prepare_pack
  - git_pack_config
  - add_object_entry_from_pack
  - show_object_pack_hint
  - show_commit_pack_hint
  - pack_mtime_cmp
  - stdin_packs_include_check_obj
  - stdin_packs_include_check
  - stdin_packs_add_pack_entries
  - stdin_packs_read_input
  - repo_for_each_pack
  - read_stdin_packs
  - add_cruft_object_entry
  - show_cruft_object
  - show_cruft_commit
  - cruft_include_check_obj
  - cruft_include_check
  - set_cruft_mtime
  - mark_pack_kept_in_core
  - for_each_string_list_item
  - enumerate_cruft_objects
  - enumerate_and_traverse_cruft_objects
  - read_cruft_objects
  - repo_for_each_pack
  - read_object_list_from_stdin
  - show_commit
  - show_object
  - show_object__ma_allow_any
  - show_object__ma_allow_promisor
  - option_parse_missing_action
  - show_edge
  - add_object_in_unpacked_pack
  - add_objects_in_unpacked_packs
  - add_loose_object
  - add_unreachable_loose_objects
  - has_sha1_pack_kept_or_nonlocal
  - repo_for_each_pack
  - loosened_object_can_be_discarded
  - loosen_unused_packed_objects
  - repo_for_each_pack
  - pack_options_allow_reuse
  - get_object_list_from_bitmap
  - record_recent_object
  - record_recent_commit
  - mark_bitmap_preferred_tip
  - is_oid_uninteresting
  - add_objects_by_path
  - get_object_list_path_walk
  - get_object_list
  - add_extra_kept_packs
  - repo_for_each_pack
  - option_parse_quiet
  - option_parse_index_version
  - option_parse_unpack_unreachable
  - option_parse_cruft_expiration
  - is_not_in_promisor_pack_obj
  - is_not_in_promisor_pack
  - parse_stdin_packs_mode
  - cmd_pack_objects
  - repo_for_each_pack
  source_file: /src/git/builtin/pack-objects.c
  types:
    enum:
    - enumerators:
      - name: MA_ERROR
        value: '0'
      - name: MA_ALLOW_ANY
      - name: MA_ALLOW_PROMISOR
      item_type: enum
      name: missing_action
      pos:
        line_end: 274
        line_start: 270
        source_file: /src/git/builtin/pack-objects.c
    - enumerators:
      - name: STDIN_PACKS_MODE_NONE
      - name: STDIN_PACKS_MODE_STANDARD
      - name: STDIN_PACKS_MODE_FOLLOW
      item_type: enum
      name: stdin_packs_mode
      pos:
        line_end: 292
        line_start: 288
        source_file: /src/git/builtin/pack-objects.c
    - enumerators:
      - name: WRITE_ONE_SKIP
        value: '-1'
      - name: WRITE_ONE_RECURSIVE
        value: '2'
      - name: WRITE_ONE_BREAK
        value: '0'
      - name: WRITE_ONE_WRITTEN
        value: '1'
      item_type: enum
      name: write_one_status
      pos:
        line_end: 790
        line_start: 785
        source_file: /src/git/builtin/pack-objects.c
    - enumerators:
      - name: STDIN_PACK_INCLUDE
        value: (1<<0)
      - name: STDIN_PACK_EXCLUDE_CLOSED
        value: (1<<1)
      - name: STDIN_PACK_EXCLUDE_OPEN
        value: (1<<2)
      item_type: enum
      name: stdin_pack_info_kind
      pos:
        line_end: 3883
        line_start: 3879
        source_file: /src/git/builtin/pack-objects.c
    preproc_defs: []
    structs:
    - fields:
      - name: e
        type: struct oidmap_entry
      - name: '*pack_hash_hex'
        type: char
      - name: '*uri'
        type: char
      item_type: struct
      name: configured_exclusion
      pos:
        line_end: 282
        line_start: 278
        source_file: /src/git/builtin/pack-objects.c
    - fields:
      - name: original
        type: off_t
      - name: difference
        type: off_t
      item_type: struct
      name: reused_chunk
      pos:
        line_end: 1047
        line_start: 1040
        source_file: /src/git/builtin/pack-objects.c
    - fields:
      - name: oid
        type: struct object_id
      - name: ref
        type: int
      - name: temporary
        type: int
      - name: '*tree_data'
        type: void
      - name: tree_size
        type: unsigned long
      item_type: struct
      name: pbase_tree_cache
      pos:
        line_end: 1911
        line_start: 1905
        source_file: /src/git/builtin/pack-objects.c
    - fields:
      - name: '*next'
        type: struct pbase_tree
      - name: pcache
        type: struct pbase_tree_cache
      item_type: struct
      name: pbase_tree
      pos:
        line_end: 1931
        line_start: 1923
        source_file: /src/git/builtin/pack-objects.c
    - fields:
      - name: '*entry'
        type: struct object_entry
      - name: '*data'
        type: void
      - name: '*index'
        type: struct delta_index
      - name: depth
        type: unsigned
      item_type: struct
      name: unpacked
      pos:
        line_end: 2674
        line_start: 2669
        source_file: /src/git/builtin/pack-objects.c
    - fields:
      - name: thread
        type: pthread_t
      - name: '**list'
        type: struct object_entry
      - name: '*regions'
        type: struct packing_region
      - name: list_size
        type: unsigned
      - name: remaining
        type: unsigned
      - name: window
        type: int
      - name: depth
        type: int
      - name: working
        type: int
      - name: data_ready
        type: int
      - name: mutex
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: '*processed'
        type: unsigned
      item_type: struct
      name: thread_params
      pos:
        line_end: 3125
        line_start: 3112
        source_file: /src/git/builtin/pack-objects.c
    - fields:
      - name: '*p'
        type: struct packed_git
      - name: kind
        type: enum stdin_pack_info_kind
      item_type: struct
      name: stdin_pack_info
      pos:
        line_end: 3888
        line_start: 3885
        source_file: /src/git/builtin/pack-objects.c
    typedefs: []
    union: []
- function_names:
  - session_is_interactive
  - auto_decoration_style
  - parse_decoration_style
  - log_config_init
  - log_config_release
  - clear_decorations_callback
  - decorate_callback
  - log_line_range_callback
  - cmd_log_init_defaults
  - set_default_decoration_filter
  - cmd_log_init_finish
  - cmd_log_init
  - cmd_log_walk_no_free
  - cmd_log_walk
  - git_log_config
  - cmd_whatchanged
  - show_tagger
  - show_blob_object
  - show_tag_object
  - show_tree_object
  - show_setup_revisions_tweak
  - cmd_show
  - cmd_log_reflog
  - log_setup_revisions_tweak
  - cmd_log
  - format_config_init
  - format_config_release
  - parse_cover_from_description
  - add_header
  - git_format_config
  - open_next_file
  - get_patch_ids
  - gen_message_id
  - print_signature
  - find_branch_name
  - show_diffstat
  - read_desc_file
  - prepare_cover_text
  - get_notes_refs
  - get_notes_args
  - generate_shortlog_cover_letter
  - generate_commit_list_cover
  - make_cover_letter
  - clean_message_id
  - set_outdir
  - keep_callback
  - subject_prefix_callback
  - rfc_callback
  - numbered_callback
  - no_numbered_callback
  - output_directory_callback
  - thread_callback
  - attach_callback
  - inline_callback
  - header_callback
  - from_callback
  - base_callback
  - get_base_commit
  - prepare_bases
  - print_bases
  - diff_title
  - infer_range_diff_ranges
  - cmd_format_patch
  - add_pending_commit
  - print_commit
  - collect_diff_blob_oids
  - always_match
  - prefetch_cherry_blobs
  - cmd_cherry
  source_file: /src/git/builtin/log.c
  types:
    enum:
    - enumerators:
      - name: COVER_UNSET
      - name: COVER_AUTO
      - name: COVER_ON
      - name: COVER_OFF
      item_type: enum
      name: cover_setting
      pos:
        line_end: 862
        line_start: 857
        source_file: /src/git/builtin/log.c
    - enumerators:
      - name: THREAD_UNSET
      - name: THREAD_DEEP
      - name: THREAD_SHALLOW
      item_type: enum
      name: thread_level
      pos:
        line_end: 868
        line_start: 864
        source_file: /src/git/builtin/log.c
    - enumerators:
      - name: COVER_FROM_NONE
      - name: COVER_FROM_AUTO
      - name: COVER_FROM_MESSAGE
      - name: COVER_FROM_SUBJECT
      item_type: enum
      name: cover_from_description
      pos:
        line_end: 875
        line_start: 870
        source_file: /src/git/builtin/log.c
    - enumerators:
      - name: AUTO_BASE_NEVER
      - name: AUTO_BASE_ALWAYS
      - name: AUTO_BASE_WHEN_ABLE
      item_type: enum
      name: auto_base_setting
      pos:
        line_end: 881
        line_start: 877
        source_file: /src/git/builtin/log.c
    preproc_defs:
    - item_type: preproc_def
      name: MAIL_DEFAULT_WRAP
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/builtin/log.c
      type_or_value: '72'
    - item_type: preproc_def
      name: COVER_FROM_AUTO_MAX_SUBJECT_LEN
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/builtin/log.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FORMAT_PATCH_NAME_MAX_DEFAULT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/builtin/log.c
      type_or_value: '64'
    structs:
    - fields:
      - name: '*rev'
        type: struct rev_info
      - name: '*prefix'
        type: char
      - name: args
        type: struct string_list
      item_type: struct
      name: line_opt_callback_data
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/git/builtin/log.c
    - fields:
      - name: default_abbrev_commit
        type: int
      - name: default_show_root
        type: int
      - name: default_follow
        type: int
      - name: default_show_signature
        type: int
      - name: default_encode_email_headers
        type: int
      - name: decoration_style
        type: int
      - name: decoration_given
        type: int
      - name: use_mailmap_config
        type: int
      - name: '*fmt_patch_subject_prefix'
        type: char
      - name: fmt_patch_name_max
        type: int
      - name: '*fmt_pretty'
        type: char
      - name: '*default_date_mode'
        type: char
      item_type: struct
      name: log_config
      pos:
        line_end: 129
        line_start: 107
        source_file: /src/git/builtin/log.c
    - fields:
      - name: log
        type: struct log_config
      - name: thread
        type: enum thread_level
      - name: do_signoff
        type: int
      - name: auto_base
        type: enum auto_base_setting
      - name: '*base_commit'
        type: char
      - name: '*from'
        type: char
      - name: '*signature'
        type: char
      - name: '*signature_file'
        type: char
      - name: config_cover_letter
        type: enum cover_setting
      - name: '*fmt_cover_letter_commit_list'
        type: char
      - name: '*config_output_directory'
        type: char
      - name: cover_from_description_mode
        type: enum cover_from_description
      - name: show_notes
        type: int
      - name: notes_opt
        type: struct display_notes_opt
      - name: numbered_cmdline_opt
        type: int
      - name: numbered
        type: int
      - name: auto_number
        type: int
      - name: '*default_attach'
        type: char
      - name: extra_hdr
        type: struct string_list
      - name: extra_to
        type: struct string_list
      - name: extra_cc
        type: struct string_list
      - name: keep_subject
        type: int
      - name: subject_prefix
        type: int
      - name: sprefix
        type: struct strbuf
      - name: '*fmt_patch_suffix'
        type: char
      item_type: struct
      name: format_config
      pos:
        line_end: 909
        line_start: 883
        source_file: /src/git/builtin/log.c
    - fields:
      - name: '*cfg'
        type: struct format_config
      - name: '*revs'
        type: struct rev_info
      item_type: struct
      name: keep_callback_data
      pos:
        line_end: 1537
        line_start: 1534
        source_file: /src/git/builtin/log.c
    - fields:
      - name: base_commit
        type: struct object_id
      - name: nr_patch_id
        type: int
      - name: '*patch_id'
        type: struct object_id
      item_type: struct
      name: base_tree_info
      pos:
        line_end: 1699
        line_start: 1695
        source_file: /src/git/builtin/log.c
    typedefs: []
    union: []
- function_names:
  - replace_idents_using_mailmap
  - filter_object
  - stream_blob
  - cat_one_file
  - is_atom
  - expand_atom
  - expand_format
  - batch_write
  - print_object_or_die
  - print_default_format
  - report_object_status
  - batch_object_write
  - batch_one_object
  - batch_object_cb
  - collect_object
  - batch_unordered_object
  - parse_cmd_contents
  - parse_cmd_info
  - dispatch_calls
  - free_cmds
  - batch_objects_command
  - batch_one_object_oi
  - batch_one_object_packed
  - batch_one_object_bitmapped
  - batch_each_object
  - repo_for_each_pack
  - batch_objects
  - git_cat_file_config
  - batch_option_callback
  - cmd_cat_file
  source_file: /src/git/builtin/cat-file.c
  types:
    enum:
    - enumerators:
      - name: BATCH_MODE_CONTENTS
      - name: BATCH_MODE_QUEUE_AND_DISPATCH
      - name: BATCH_MODE_INFO
      item_type: enum
      name: batch_mode
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/git/builtin/cat-file.c
    preproc_defs:
    - item_type: preproc_def
      name: EXPAND_DATA_INIT
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/git/builtin/cat-file.c
      type_or_value: '{ .mode = S_IFINVALID }'
    - item_type: preproc_def
      name: DEFAULT_FORMAT
      pos:
        line_end: 799
        line_start: 798
        source_file: /src/git/builtin/cat-file.c
      type_or_value: '"%(objectname) %(objecttype) %(objectsize)"'
    structs:
    - fields:
      - name: objects_filter
        type: struct list_objects_filter_options
      - name: enabled
        type: int
      - name: follow_symlinks
        type: int
      - name: batch_mode
        type: enum batch_mode
      - name: buffer_output
        type: int
      - name: all_objects
        type: int
      - name: unordered
        type: int
      - name: transform_mode
        type: int
      - name: input_delim
        type: char
      - name: output_delim
        type: char
      - name: '*format'
        type: char
      item_type: struct
      name: batch_options
      pos:
        line_end: 50
        line_start: 38
        source_file: /src/git/builtin/cat-file.c
    - fields:
      - name: oid
        type: struct object_id
      - name: type
        type: enum object_type
      - name: size
        type: unsigned long
      - name: mode
        type: unsigned short
      - name: disk_size
        type: off_t
      - name: '*rest'
        type: char
      - name: delta_base_oid
        type: struct object_id
      - name: mark_query
        type: int
      - name: split_on_whitespace
        type: int
      - name: info
        type: struct object_info
      - name: skip_object_info
        type: unsigned
      item_type: struct
      name: expand_data
      pos:
        line_end: 308
        line_start: 273
        source_file: /src/git/builtin/cat-file.c
    - fields:
      - name: '*opt'
        type: struct batch_options
      - name: '*expand'
        type: struct expand_data
      - name: '*seen'
        type: struct oidset
      - name: '*scratch'
        type: struct strbuf
      item_type: struct
      name: object_cb_data
      pos:
        line_end: 632
        line_start: 627
        source_file: /src/git/builtin/cat-file.c
    - fields:
      - name: fn
        type: parse_cmd_fn_t
      - name: '*line'
        type: char
      item_type: struct
      name: queued_cmd
      pos:
        line_end: 674
        line_start: 671
        source_file: /src/git/builtin/cat-file.c
    - fields:
      - name: '*name'
        type: char
      - name: fn
        type: parse_cmd_fn_t
      - name: takes_args
        type: unsigned
      item_type: struct
      name: parse_cmd
      pos:
        line_end: 726
        line_start: 722
        source_file: /src/git/builtin/cat-file.c
    - fields:
      - name: callback
        type: for_each_object_fn
      - name: '*payload'
        type: void
      item_type: struct
      name: for_each_object_payload
      pos:
        line_end: 806
        line_start: 803
        source_file: /src/git/builtin/cat-file.c
    typedefs:
    - item_type: typedef
      name: "(*parse_cmd_fn_t)(struct batch_options *, const char *,\n\t\t\t       struct
        strbuf *, struct expand_data *)"
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/git/builtin/cat-file.c
      type: void
    - item_type: typedef
      name: "(*for_each_object_fn)(const struct object_id *oid, struct packed_git
        *pack,\n\t\t\t\t  off_t offset, void *data)"
      pos:
        line_end: 801
        line_start: 800
        source_file: /src/git/builtin/cat-file.c
      type: int
    union: []
- function_names:
  - output_pattern
  - check_ignore
  - check_ignore_stdin_paths
  - cmd_check_ignore
  source_file: /src/git/builtin/check-ignore.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - list_tree
  - index_output_cb
  - exclude_per_directory_cb
  - debug_stage
  - debug_merge
  - git_read_tree_config
  - cmd_read_tree
  source_file: /src/git/builtin/read-tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_credential_file
  - print_entry
  - print_line
  - rewrite_credential_file
  - is_rfc3986_reserved_or_unreserved
  - store_credential_file
  - store_credential
  - remove_credential
  - lookup_credential
  - cmd_credential_store
  source_file: /src/git/builtin/credential-store.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_arg
  - parse_refname
  - parse_next_refname
  - parse_next_arg
  - parse_next_oid
  - print_rejected_refs
  - handle_ref_transaction_error
  - parse_cmd_update
  - parse_cmd_symref_update
  - parse_cmd_create
  - parse_cmd_symref_create
  - parse_cmd_delete
  - parse_cmd_symref_delete
  - parse_cmd_verify
  - parse_cmd_symref_verify
  - report_ok
  - parse_cmd_option
  - parse_cmd_start
  - parse_cmd_prepare
  - parse_cmd_abort
  - parse_cmd_commit
  - update_refs_stdin
  - cmd_update_ref
  source_file: /src/git/builtin/update-ref.c
  types:
    enum:
    - enumerators:
      - name: UPDATE_REFS_OPEN
      - name: UPDATE_REFS_PREPARED
      - name: UPDATE_REFS_CLOSED
      - name: UPDATE_REFS_STARTED
      item_type: enum
      name: update_refs_state
      pos:
        line_end: 670
        line_start: 661
        source_file: /src/git/builtin/update-ref.c
    preproc_defs:
    - item_type: preproc_def
      name: PARSE_SHA1_OLD
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/git/builtin/update-ref.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PARSE_SHA1_ALLOW_EMPTY
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/git/builtin/update-ref.c
      type_or_value: '0x02'
    structs:
    - fields:
      - name: allow_update_failures
        type: bool
      item_type: struct
      name: command_options
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/git/builtin/update-ref.c
    - fields:
      - name: '*prefix'
        type: char
      - name: "(*fn)(struct ref_transaction *, const char *, const char *,\n\t\t   struct
          command_options *)"
        type: void
      - name: args
        type: unsigned
      - name: state
        type: enum update_refs_state
      item_type: struct
      name: parse_cmd
      pos:
        line_end: 678
        line_start: 672
        source_file: /src/git/builtin/update-ref.c
    typedefs: []
    union: []
- function_names:
  - parse_or_die
  - get_component_or_die
  - extract_component
  - cmd_url_parse
  source_file: /src/git/builtin/url-parse.c
  types:
    enum:
    - enumerators:
      - name: URL_NONE
        value: '0'
      - name: URL_PASSWORD
      - name: URL_USER
      - name: URL_SCHEME
      - name: URL_HOST
      - name: URL_PORT
      - name: URL_PATH
      item_type: enum
      name: url_component
      pos:
        line_end: 27
        line_start: 19
        source_file: /src/git/builtin/url-parse.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - collapse_slashes
  - check_ref_format_branch
  - cmd_check_ref_format
  source_file: /src/git/builtin/check-ref-format.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fetch_remote
  - add_branch
  - parse_mirror_opt
  - check_remote_collision
  - add
  - abbrev_ref
  - abbrev_branch
  - config_read_branches
  - read_branches
  - get_ref_states
  - get_push_ref_states
  - get_push_ref_states_noquery
  - get_head_names
  - add_known_remote
  - add_branch_for_removal
  - compute_renamed_ref
  - rename_one_reflog_entry
  - rename_one_reflog
  - rename_one_ref
  - migrate_file
  - config_read_push_default
  - handle_push_default
  - mv
  - rm
  - clear_push_info
  - free_remote_ref_states
  - append_ref_to_tracked_list
  - get_remote_ref_states
  - add_remote_to_show_info
  - show_remote_info_item
  - add_local_to_show_info
  - show_local_info_item
  - add_push_to_show_info
  - cmp_string_with_push
  - show_push_info_item
  - get_one_entry
  - show_all
  - show
  - report_set_head_auto
  - set_head
  - prune_remote
  - prune
  - get_remote_default
  - update
  - remove_all_fetch_refspecs
  - add_branches
  - set_remote_branches
  - set_branches
  - get_url
  - set_url
  - cmd_remote
  source_file: /src/git/builtin/remote.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GET_REF_STATES
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/git/builtin/remote.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: GET_HEAD_NAMES
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/git/builtin/remote.c
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: GET_PUSH_REF_STATES
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/git/builtin/remote.c
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: MIRROR_NONE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/git/builtin/remote.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MIRROR_FETCH
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/git/builtin/remote.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MIRROR_PUSH
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/git/builtin/remote.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MIRROR_BOTH
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/git/builtin/remote.c
      type_or_value: (MIRROR_FETCH|MIRROR_PUSH)
    - item_type: preproc_def
      name: REF_STATES_INIT
      pos:
        line_end: 390
        line_start: 382
        source_file: /src/git/builtin/remote.c
      type_or_value: "{ \\\n\t.new_refs = STRING_LIST_INIT_DUP, \\\n\t.skipped = STRING_LIST_INIT_DUP,
        \\\n\t.stale = STRING_LIST_INIT_DUP, \\\n\t.tracked = STRING_LIST_INIT_DUP,
        \\\n\t.heads = STRING_LIST_INIT_DUP, \\\n\t.push = STRING_LIST_INIT_DUP, \\\n}"
    - item_type: preproc_def
      name: SHOW_INFO_INIT
      pos:
        line_end: 1192
        line_start: 1188
        source_file: /src/git/builtin/remote.c
      type_or_value: "{ \\\n\t.list = STRING_LIST_INIT_DUP, \\\n\t.states = REF_STATES_INIT,
        \\\n}"
    structs:
    - fields:
      - name: '*remote_name'
        type: char
      - name: merge
        type: struct string_list
      - name: rebase
        type: enum rebase_type
      - name: '*push_remote_name'
        type: char
      item_type: struct
      name: branch_info
      pos:
        line_end: 284
        line_start: 279
        source_file: /src/git/builtin/remote.c
    - fields:
      - name: '*remote'
        type: struct remote
      - name: new_refs
        type: struct string_list
      - name: queried
        type: int
      item_type: struct
      name: ref_states
      pos:
        line_end: 380
        line_start: 376
        source_file: /src/git/builtin/remote.c
    - fields:
      - name: '*dest'
        type: char
      - name: forced
        type: int
      - name: status
        type: "enum {\n\t\tPUSH_STATUS_CREATE = 0,\n\t\tPUSH_STATUS_DELETE,\n\t\tPUSH_STATUS_UPTODATE,\n\t\tPUSH_STATUS_FASTFORWARD,\n\t\tPUSH_STATUS_OUTOFDATE,\n\t\tPUSH_STATUS_NOTQUERIED\n\t}"
      item_type: struct
      name: push_info
      pos:
        line_end: 438
        line_start: 427
        source_file: /src/git/builtin/remote.c
    - fields:
      - name: '*next'
        type: struct known_remote
      - name: '*remote'
        type: struct remote
      item_type: struct
      name: known_remote
      pos:
        line_end: 544
        line_start: 541
        source_file: /src/git/builtin/remote.c
    - fields:
      - name: '*to_delete'
        type: struct remote
      - name: '*list'
        type: struct known_remote
      item_type: struct
      name: known_remotes
      pos:
        line_end: 549
        line_start: 546
        source_file: /src/git/builtin/remote.c
    - fields:
      - name: '*remote'
        type: struct remote
      - name: '*branches'
        type: struct string_list
      - name: '*keep'
        type: struct known_remotes
      item_type: struct
      name: branches_for_remote
      pos:
        line_end: 570
        line_start: 566
        source_file: /src/git/builtin/remote.c
    - fields:
      - name: '*old_name'
        type: char
      - name: '*new_name'
        type: char
      - name: '*transaction'
        type: struct ref_transaction
      - name: '*progress'
        type: struct progress
      - name: '*err'
        type: struct strbuf
      - name: progress_nr
        type: uint32_t
      - name: index
        type: uint64_t
      item_type: struct
      name: rename_info
      pos:
        line_end: 617
        line_start: 609
        source_file: /src/git/builtin/remote.c
    - fields:
      - name: '*old_name'
        type: char
      - name: scope
        type: enum config_scope
      - name: origin
        type: struct strbuf
      - name: linenr
        type: int
      item_type: struct
      name: push_default_info
      pos:
        line_end: 795
        line_start: 789
        source_file: /src/git/builtin/remote.c
    - fields:
      - name: list
        type: struct string_list
      - name: states
        type: struct ref_states
      - name: width
        type: int
      - name: any_rebase
        type: int
      item_type: struct
      name: show_info
      pos:
        line_end: 1186
        line_start: 1181
        source_file: /src/git/builtin/remote.c
    typedefs: []
    union: []
- function_names:
  - parse_max_memory
  - cmd_range_diff
  source_file: /src/git/builtin/range-diff.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_lock
  - read_unlock
  - counter_lock
  - counter_unlock
  - work_lock
  - work_unlock
  - deepest_delta_lock
  - deepest_delta_unlock
  - lock_mutex
  - unlock_mutex
  - init_thread
  - cleanup_thread
  - mark_link
  - check_object
  - check_objects
  - flush
  - fill
  - use
  - open_pack_file
  - parse_pack_header
  - bad_object
  - get_thread_data
  - set_thread_data
  - free_base_data
  - prune_base_data
  - is_delta_type
  - unpack_entry_data
  - unpack_raw_entry
  - unpack_data
  - get_data_from_pack
  - compare_ofs_delta_bases
  - find_ofs_delta
  - find_ofs_delta_children
  - compare_ref_delta_bases
  - find_ref_delta
  - find_ref_delta_children
  - compare_objects
  - check_collison
  - record_outgoing_link
  - maybe_record_name_entry
  - do_record_outgoing_links
  - sha1_object
  - get_base_data
  - make_base
  - resolve_delta
  - compare_ofs_delta_entry
  - compare_ref_delta_entry
  - threaded_second_pass
  - parse_pack_objects
  - resolve_deltas
  - conclude_pack
  - write_compressed
  - append_obj_to_pack
  - delta_pos_compare
  - fix_unresolved_deltas
  - derive_filename
  - write_special_file
  - rename_tmp_packfile
  - final
  - git_index_pack_config
  - cmp_uint32
  - read_v2_anomalous_offsets
  - read_idx_option
  - show_pack_info
  - repack_local_links
  - cmd_index_pack
  source_file: /src/git/builtin/index-pack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLAG_LINK
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/git/builtin/index-pack.c
      type_or_value: (1u<<20)
    - item_type: preproc_def
      name: FLAG_CHECKED
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/git/builtin/index-pack.c
      type_or_value: (1u<<21)
    structs:
    - fields:
      - name: idx
        type: struct pack_idx_entry
      - name: size
        type: size_t
      - name: hdr_size
        type: unsigned char
      - name: type
        type: signed char
      - name: real_type
        type: signed char
      item_type: struct
      name: object_entry
      pos:
        line_end: 43
        line_start: 37
        source_file: /src/git/builtin/index-pack.c
    - fields:
      - name: delta_depth
        type: unsigned
      - name: base_object_no
        type: int
      item_type: struct
      name: object_stat
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/git/builtin/index-pack.c
    - fields:
      - name: '*base'
        type: struct base_data
      - name: '*obj'
        type: struct object_entry
      - name: ref_first
        type: int
      - name: ofs_first
        type: int
      - name: retain_data
        type: int
      - name: children_remaining
        type: int
      - name: list
        type: struct list_head
      - name: '*data'
        type: void
      - name: size
        type: unsigned long
      item_type: struct
      name: base_data
      pos:
        line_end: 74
        line_start: 50
        source_file: /src/git/builtin/index-pack.c
    - fields:
      - name: thread
        type: pthread_t
      - name: pack_fd
        type: int
      item_type: struct
      name: thread_local_data
      pos:
        line_end: 107
        line_start: 104
        source_file: /src/git/builtin/index-pack.c
    - fields:
      - name: offset
        type: off_t
      - name: obj_no
        type: int
      item_type: struct
      name: ofs_delta_entry
      pos:
        line_end: 116
        line_start: 113
        source_file: /src/git/builtin/index-pack.c
    - fields:
      - name: oid
        type: struct object_id
      - name: obj_no
        type: int
      item_type: struct
      name: ref_delta_entry
      pos:
        line_end: 121
        line_start: 118
        source_file: /src/git/builtin/index-pack.c
    - fields:
      - name: '*entry'
        type: struct object_entry
      - name: '*st'
        type: struct odb_read_stream
      - name: '*buf'
        type: unsigned char
      - name: buf_size
        type: unsigned long
      item_type: struct
      name: compare_data
      pos:
        line_end: 768
        line_start: 763
        source_file: /src/git/builtin/index-pack.c
    typedefs: []
    union: []
- function_names:
  - cmd_write_tree
  source_file: /src/git/builtin/write-tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - prune_tmp_file
  - perform_reachability_traversal
  - is_object_reachable
  - prune_object
  - prune_cruft
  - prune_subdir
  - remove_temporary_files
  - cmd_prune
  source_file: /src/git/builtin/prune.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_ours_cache_pos
  - print_error_files
  - submodules_absorb_gitdir_if_needed
  - check_local_mod
  - cmd_rm
  source_file: /src/git/builtin/rm.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nr
        type: int
      - name: '*entry'
        type: "struct {\n\t\tconst char *name;\n\t\tchar is_submodule;\n\t}"
      item_type: struct
      name: list
      pos:
        line_end: 40
        line_start: 34
        source_file: /src/git/builtin/rm.c
    typedefs: []
    union: []
- function_names:
  - show_reference
  - list_replace_refs
  - for_each_replace_name
  - delete_replace_ref
  - check_ref_valid
  - replace_object_oid
  - replace_object
  - export_object
  - import_object
  - edit_and_replace
  - replace_parents
  - check_one_mergetag
  - check_mergetags
  - create_graft
  - convert_graft_file
  - cmd_replace
  source_file: /src/git/builtin/replace.c
  types:
    enum:
    - enumerators:
      - name: REPLACE_FORMAT_SHORT
      - name: REPLACE_FORMAT_MEDIUM
      - name: REPLACE_FORMAT_LONG
      item_type: enum
      name: replace_format
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/git/builtin/replace.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*pattern'
        type: char
      - name: format
        type: enum replace_format
      item_type: struct
      name: show_data
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/git/builtin/replace.c
    - fields:
      - name: argc
        type: int
      - name: '**argv'
        type: char
      item_type: struct
      name: check_mergetag_data
      pos:
        line_end: 410
        line_start: 407
        source_file: /src/git/builtin/replace.c
    typedefs:
    - item_type: typedef
      name: "(*each_replace_name_fn)(const char *name, const char *ref,\n\t\t\t\t
        \   const struct object_id *oid)"
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/git/builtin/replace.c
      type: int
    union: []
- function_names:
  - outf
  - diff_two
  - cmd_rerere
  source_file: /src/git/builtin/rerere.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_mailmap
  - cmd_check_mailmap
  source_file: /src/git/builtin/check-mailmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - committer
  - author
  - editor
  - sequence_editor
  - pager
  - default_branch
  - shell_path
  - git_attr_val_system
  - git_attr_val_global
  - git_config_val_system
  - git_config_val_global
  - list_vars
  - get_git_var
  - show_config
  - cmd_var
  source_file: /src/git/builtin/var.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*(*read)(int)'
        type: char
      - name: multivalued
        type: int
      item_type: struct
      name: git_var
      pos:
        line_end: 121
        line_start: 117
        source_file: /src/git/builtin/var.c
    typedefs: []
    union: []
- function_names:
  - git_branch_config
  - branch_get_color
  - branch_merged
  - check_branch_commit
  - delete_branch_config
  - delete_branches
  - calc_maxwidth
  - quote_literal_for_format
  - build_format
  - print_ref_list
  - print_current_branch_name
  - reject_rebase_or_bisect_branch
  - replace_each_worktree_head_symref
  - copy_or_rename_branch
  - edit_branch_description
  - cmd_branch
  source_file: /src/git/builtin/branch.c
  types:
    enum:
    - enumerators:
      - name: BRANCH_COLOR_RESET
        value: '0'
      - name: BRANCH_COLOR_REMOTE
        value: '2'
      - name: BRANCH_COLOR_LOCAL
        value: '3'
      - name: BRANCH_COLOR_PLAIN
        value: '1'
      - name: BRANCH_COLOR_CURRENT
        value: '4'
      - name: BRANCH_COLOR_UPSTREAM
        value: '5'
      - name: BRANCH_COLOR_WORKTREE
        value: '6'
      item_type: enum
      name: color_branch
      pos:
        line_end: 66
        line_start: 58
        source_file: /src/git/builtin/branch.c
    preproc_defs:
    - item_type: preproc_def
      name: IS_HEAD
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/git/builtin/branch.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IS_ORPHAN
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/git/builtin/branch.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - show_one
  - show_ref
  - add_existing
  - cmd_show_ref__exclude_existing
  - cmd_show_ref__verify
  - cmd_show_ref__patterns
  - cmd_show_ref__exists
  - hash_callback
  - exclude_existing_callback
  - cmd_show_ref
  source_file: /src/git/builtin/show-ref.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: quiet
        type: int
      - name: hash_only
        type: int
      - name: abbrev
        type: int
      - name: deref_tags
        type: int
      item_type: struct
      name: show_one_options
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/git/builtin/show-ref.c
    - fields:
      - name: '*show_one_opts'
        type: struct show_one_options
      - name: '**patterns'
        type: char
      - name: found_match
        type: int
      - name: show_head
        type: int
      item_type: struct
      name: show_ref_data
      pos:
        line_end: 66
        line_start: 61
        source_file: /src/git/builtin/show-ref.c
    - fields:
      - name: enabled
        type: int
      - name: '*pattern'
        type: char
      item_type: struct
      name: exclude_existing_options
      pos:
        line_end: 114
        line_start: 107
        source_file: /src/git/builtin/show-ref.c
    - fields:
      - name: show_head
        type: int
      - name: branches_only
        type: int
      - name: tags_only
        type: int
      item_type: struct
      name: patterns_options
      pos:
        line_end: 199
        line_start: 195
        source_file: /src/git/builtin/show-ref.c
    typedefs: []
    union: []
- function_names:
  - cmd_diff_files
  source_file: /src/git/builtin/diff-files.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - disable_cutoff
  - set_commit_cutoff
  - adjust_cutoff_timestamp_for_slop
  - commit_is_before_cutoff
  - is_valid_rev_name
  - get_commit_rev_name
  - effective_distance
  - is_better_name
  - create_or_update_name
  - get_parent_name
  - name_rev
  - subpath_matches
  - init_name_rev_command
  - init_format_rev_command
  - add_to_tip_table
  - tipcmp
  - cmp_by_tag_and_age
  - name_ref
  - name_tips
  - nth_tip_table_ent
  - get_exact_ref_match
  - get_rev_name
  - get_format_rev
  - show_name
  - name_rev_line
  - ishex
  - cmd_name_rev
  - format_nul_cb
  - parse_stdin_mode
  - cmd_format_rev
  source_file: /src/git/builtin/name-rev.c
  types:
    enum:
    - enumerators:
      - name: NAME_REV
        value: '1'
      - name: FORMAT_REV
        value: '2'
      item_type: enum
      name: command_type
      pos:
        line_end: 284
        line_start: 281
        source_file: /src/git/builtin/name-rev.c
    - enumerators:
      - name: TEXT
        value: '1'
      - name: REVS
        value: '2'
      item_type: enum
      name: stdin_mode
      pos:
        line_end: 289
        line_start: 286
        source_file: /src/git/builtin/name-rev.c
    preproc_defs:
    - item_type: preproc_def
      name: CUTOFF_DATE_SLOP
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/builtin/name-rev.c
      type_or_value: '86400'
    - item_type: preproc_def
      name: MERGE_TRAVERSAL_WEIGHT
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/git/builtin/name-rev.c
      type_or_value: '65535'
    structs:
    - fields:
      - name: '*tip_name'
        type: char
      - name: taggerdate
        type: timestamp_t
      - name: generation
        type: int
      - name: distance
        type: int
      - name: from_tag
        type: int
      item_type: struct
      name: rev_name
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/git/builtin/name-rev.c
    - fields:
      - name: tags_only
        type: int
      - name: name_only
        type: int
      - name: ref_filters
        type: struct string_list
      - name: exclude_filters
        type: struct string_list
      item_type: struct
      name: name_ref_data
      pos:
        line_end: 274
        line_start: 269
        source_file: /src/git/builtin/name-rev.c
    - fields:
      - name: ctx
        type: struct pretty_print_context
      - name: want
        type: struct userformat_want
      item_type: struct
      name: pretty_format
      pos:
        line_end: 279
        line_start: 276
        source_file: /src/git/builtin/name-rev.c
    - fields:
      - name: type
        type: enum command_type
      - name: u
        type: "union {\n\t\tint name_only;\n\t\tstruct pretty_format *pretty_format;\n\t}"
      item_type: struct
      name: command
      pos:
        line_end: 297
        line_start: 291
        source_file: /src/git/builtin/name-rev.c
    - fields:
      - name: '*table'
        type: "struct tip_table_entry {\n\t\tstruct object_id oid;\n\t\tconst char
          *refname;\n\t\tstruct commit *commit;\n\t\ttimestamp_t taggerdate;\n\t\tunsigned
          int from_tag:1;\n\t\tunsigned int deref:1;\n\t}"
      - name: nr
        type: int
      - name: alloc
        type: int
      - name: sorted
        type: int
      item_type: struct
      name: tip_table
      pos:
        line_end: 325
        line_start: 313
        source_file: /src/git/builtin/name-rev.c
    - fields:
      - name: oid
        type: struct object_id
      - name: '*refname'
        type: char
      - name: '*commit'
        type: struct commit
      - name: taggerdate
        type: timestamp_t
      - name: from_tag
        type: unsigned int
      - name: deref
        type: unsigned int
      item_type: struct
      name: tip_table_entry
      pos:
        line_end: 321
        line_start: 314
        source_file: /src/git/builtin/name-rev.c
    - fields:
      - name: nul_input
        type: bool
      - name: nul_output
        type: bool
      item_type: struct
      name: format_nul_data
      pos:
        line_end: 777
        line_start: 774
        source_file: /src/git/builtin/name-rev.c
    typedefs: []
    union: []
- function_names:
  - run_gpg_verify
  - verify_commit
  - cmd_verify_commit
  source_file: /src/git/builtin/verify-commit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_patterns_to_file
  - sparse_checkout_list
  - clean_tracked_sparse_directories
  - update_working_directory
  - escaped_pattern
  - write_cone_to_file
  - write_patterns_and_update
  - set_config
  - update_cone_mode
  - update_modes
  - sparse_checkout_init
  - insert_recursive_pattern
  - strbuf_to_cone_pattern
  - add_patterns_from_input
  - add_patterns_cone_mode
  - add_patterns_literal
  - modify_pattern_list
  - sanitize_paths
  - sparse_checkout_add
  - sparse_checkout_set
  - sparse_checkout_reapply
  - list_file_iterator
  - list_every_file_in_dir
  - sparse_checkout_clean
  - sparse_checkout_disable
  - check_rules
  - sparse_checkout_check_rules
  - cmd_sparse_checkout
  source_file: /src/git/builtin/sparse-checkout.c
  types:
    enum:
    - enumerators:
      - name: MODE_NO_PATTERNS
        value: '0'
      - name: MODE_CONE_PATTERNS
        value: '2'
      - name: MODE_ALL_PATTERNS
        value: '1'
      item_type: enum
      name: sparse_checkout_mode
      pos:
        line_end: 373
        line_start: 369
        source_file: /src/git/builtin/sparse-checkout.c
    - enumerators:
      - name: REPLACE
      - name: ADD
      item_type: enum
      name: modify_type
      pos:
        line_end: 628
        line_start: 625
        source_file: /src/git/builtin/sparse-checkout.c
    preproc_defs: []
    structs:
    - fields:
      - name: cone_mode
        type: int
      - name: sparse_index
        type: int
      item_type: struct
      name: sparse_checkout_init_opts
      pos:
        line_end: 452
        line_start: 449
        source_file: /src/git/builtin/sparse-checkout.c
    - fields:
      - name: skip_checks
        type: int
      - name: use_stdin
        type: int
      item_type: struct
      name: sparse_checkout_add_opts
      pos:
        line_end: 787
        line_start: 784
        source_file: /src/git/builtin/sparse-checkout.c
    - fields:
      - name: cone_mode
        type: int
      - name: sparse_index
        type: int
      - name: skip_checks
        type: int
      - name: use_stdin
        type: int
      item_type: struct
      name: sparse_checkout_set_opts
      pos:
        line_end: 834
        line_start: 829
        source_file: /src/git/builtin/sparse-checkout.c
    - fields:
      - name: cone_mode
        type: int
      - name: sparse_index
        type: int
      item_type: struct
      name: sparse_checkout_reapply_opts
      pos:
        line_end: 899
        line_start: 896
        source_file: /src/git/builtin/sparse-checkout.c
    - fields:
      - name: cone_mode
        type: int
      - name: null_termination
        type: int
      - name: '*rules_file'
        type: char
      item_type: struct
      name: sparse_checkout_check_rules_opts
      pos:
        line_end: 1095
        line_start: 1091
        source_file: /src/git/builtin/sparse-checkout.c
    typedefs: []
    union: []
- function_names:
  - cmd_credential
  source_file: /src/git/builtin/credential.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - add_sought_entry
  - cmd_fetch_pack
  source_file: /src/git/builtin/fetch-pack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - list
  - for_each_string_list_item
  - run
  - cmd_hook
  source_file: /src/git/builtin/hook.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUILTIN_HOOK_RUN_USAGE
      pos:
        line_end: 12
        line_start: 9
        source_file: /src/git/builtin/hook.c
      type_or_value: "N_(\"git hook run [--allow-unknown-hook-name] [--ignore-missing]
        [--to-stdin=<path>] [(-j|--jobs) <n>]\\n\" \\\n\t   \"<hook-name> [-- <hook-args>]\")"
    - item_type: preproc_def
      name: BUILTIN_HOOK_LIST_USAGE
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/git/builtin/hook.c
      type_or_value: N_("git hook list [--allow-unknown-hook-name] [-z] [--show-scope]
        <hook-name>")
    structs: []
    typedefs: []
    union: []
- function_names:
  - missing_objects_map_entry_free
  - get_object_disk_usage
  - add_missing_object_entry
  - print_missing_object
  - finish_object__ma
  - finish_commit
  - show_commit
  - finish_object
  - show_object
  - show_edge
  - print_var_str
  - print_var_int
  - show_bisect_vars
  - show_object_fast
  - print_disk_usage
  - parse_missing_action_value
  - try_bitmap_count
  - try_bitmap_traversal
  - try_bitmap_disk_usage
  - prepare_maximal_independent
  - cmd_rev_list
  source_file: /src/git/builtin/rev-list.c
  types:
    enum:
    - enumerators:
      - name: MA_ERROR
        value: '0'
      - name: MA_PRINT
      - name: MA_PRINT_INFO
      - name: MA_ALLOW_PROMISOR
      - name: MA_ALLOW_ANY
      item_type: enum
      name: missing_action
      pos:
        line_end: 111
        line_start: 105
        source_file: /src/git/builtin/rev-list.c
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_OIDSET_SIZE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/git/builtin/rev-list.c
      type_or_value: (16*1024)
    structs:
    - fields:
      - name: '*revs'
        type: struct rev_info
      - name: flags
        type: int
      - name: show_timestamp
        type: int
      - name: hdr_termination
        type: int
      - name: '*header_prefix'
        type: char
      item_type: struct
      name: rev_list_info
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/git/builtin/rev-list.c
    - fields:
      - name: entry
        type: struct oidmap_entry
      - name: '*path'
        type: char
      - name: type
        type: unsigned
      item_type: struct
      name: missing_objects_map_entry
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/git/builtin/rev-list.c
    typedefs: []
    union: []
- function_names:
  - CONFIG_LOCATION_OPTIONS
  - CONFIG_TYPE_OPTIONS
  - CONFIG_DISPLAY_OPTIONS
  - OPT_CALLBACK_VALUE
  - option_parse_type
  - check_argc
  - show_config_origin
  - show_config_scope
  - format_config_int64
  - format_config_bool
  - format_config_bool_or_int
  - format_config_bool_or_str
  - format_config_path
  - format_config_expiry_date
  - format_config_color
  - format_config
  - show_all_config
  - collect_config
  - get_value
  - normalize_value
  - git_get_color_config
  - get_color
  - git_get_colorbool_config
  - get_colorbool
  - check_write
  - urlmatch_collect_fn
  - get_urlmatch
  - default_user_config
  - location_options_init
  - location_options_release
  - display_options_init
  - display_options_init_list
  - cmd_config_list
  - cmd_config_get
  - cmd_config_set
  - cmd_config_unset
  - cmd_config_rename_section
  - cmd_config_remove_section
  - show_editor
  - cmd_config_edit
  - cmd_config_actions
  - cmd_config
  source_file: /src/git/builtin/config.c
  types:
    enum:
    - enumerators:
      - name: TYPE_NONE
        value: '0'
      - name: TYPE_BOOL
      - name: TYPE_INT
      - name: TYPE_PATH
      - name: TYPE_BOOL_OR_INT
      - name: TYPE_EXPIRY_DATE
      - name: TYPE_COLOR
      - name: TYPE_BOOL_OR_STR
      item_type: enum
      name: config_type
      pos:
        line_end: 97
        line_start: 88
        source_file: /src/git/builtin/config.c
    preproc_defs:
    - item_type: preproc_def
      name: CONFIG_LOCATION_OPTIONS_INIT
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/git/builtin/config.c
      type_or_value: "{ \\\n\t.respect_includes_opt = -1, \\\n}"
    - item_type: preproc_def
      name: CONFIG_DISPLAY_OPTIONS_INIT
      pos:
        line_end: 137
        line_start: 131
        source_file: /src/git/builtin/config.c
      type_or_value: "{ \\\n\t.term = '\\n', \\\n\t.delim = '=', \\\n\t.key_delim
        = ' ', \\\n\t.type = TYPE_NONE, \\\n}"
    - item_type: preproc_def
      name: GET_VALUE_ALL
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/git/builtin/config.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: GET_VALUE_KEY_REGEXP
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/git/builtin/config.c
      type_or_value: (1 << 1)
    structs:
    - fields:
      - name: source
        type: struct git_config_source
      - name: options
        type: struct config_options
      - name: '*file_to_free'
        type: char
      - name: use_global_config
        type: int
      - name: use_system_config
        type: int
      - name: use_local_config
        type: int
      - name: use_worktree_config
        type: int
      - name: respect_includes_opt
        type: int
      item_type: struct
      name: config_location_options
      pos:
        line_end: 83
        line_start: 74
        source_file: /src/git/builtin/config.c
    - fields:
      - name: end_nul
        type: int
      - name: omit_values
        type: int
      - name: show_origin
        type: int
      - name: show_scope
        type: int
      - name: show_keys
        type: int
      - name: type
        type: enum config_type
      - name: '*default_value'
        type: char
      - name: term
        type: int
      - name: delim
        type: int
      - name: key_delim
        type: int
      item_type: struct
      name: config_display_options
      pos:
        line_end: 130
        line_start: 118
        source_file: /src/git/builtin/config.c
    - fields:
      - name: '*items'
        type: struct strbuf
      - name: nr
        type: int
      - name: alloc
        type: int
      item_type: struct
      name: strbuf_list
      pos:
        line_end: 242
        line_start: 238
        source_file: /src/git/builtin/config.c
    - fields:
      - name: '*display_opts'
        type: struct config_display_options
      - name: '*values'
        type: struct strbuf_list
      - name: '*value_pattern'
        type: char
      - name: '*key'
        type: char
      - name: '*regexp'
        type: regex_t
      - name: '*key_regexp'
        type: regex_t
      - name: do_not_match
        type: int
      - name: get_value_flags
        type: unsigned
      - name: flags
        type: unsigned
      item_type: struct
      name: collect_config_data
      pos:
        line_end: 479
        line_start: 469
        source_file: /src/git/builtin/config.c
    - fields:
      - name: get_color_found
        type: int
      - name: '*get_color_slot'
        type: char
      - name: parsed_color[COLOR_MAXLEN]
        type: char
      item_type: struct
      name: get_color_config_data
      pos:
        line_end: 688
        line_start: 684
        source_file: /src/git/builtin/config.c
    - fields:
      - name: get_colorbool_found
        type: enum git_colorbool
      - name: get_diff_color_found
        type: enum git_colorbool
      - name: get_color_ui_found
        type: enum git_colorbool
      - name: '*get_colorbool_slot'
        type: char
      item_type: struct
      name: get_colorbool_config_data
      pos:
        line_end: 738
        line_start: 733
        source_file: /src/git/builtin/config.c
    - fields:
      - name: value_is_null
        type: char
      - name: value
        type: struct strbuf
      - name: kvi
        type: struct key_value_info
      item_type: struct
      name: urlmatch_current_candidate_value
      pos:
        line_end: 806
        line_start: 802
        source_file: /src/git/builtin/config.c
    typedefs: []
    union: []
- function_names:
  - add_common_options
  - graph_verify
  - write_option_parse_split
  - read_one_commit
  - write_option_max_new_filters
  - git_commit_graph_write_config
  - graph_write
  - cmd_commit_graph
  source_file: /src/git/builtin/commit-graph.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUILTIN_COMMIT_GRAPH_VERIFY_USAGE
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/git/builtin/commit-graph.c
      type_or_value: N_("git commit-graph verify [--object-dir <dir>] [--shallow]
        [--[no-]progress]")
    - item_type: preproc_def
      name: BUILTIN_COMMIT_GRAPH_WRITE_USAGE
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/git/builtin/commit-graph.c
      type_or_value: "N_(\"git commit-graph write [--object-dir <dir>] [--append]\\n\"
        \\\n\t   \"                       [--split[=<strategy>]] [--reachable | --stdin-packs
        | --stdin-commits]\\n\" \\\n\t   \"                       [--changed-paths]
        [--[no-]max-new-filters <n>] [--[no-]progress]\\n\" \\\n\t   \"                       <split-options>\")"
    structs:
    - fields:
      - name: '*obj_dir'
        type: char
      - name: reachable
        type: int
      - name: stdin_packs
        type: int
      - name: stdin_commits
        type: int
      - name: append
        type: int
      - name: split
        type: int
      - name: shallow
        type: int
      - name: progress
        type: int
      - name: enable_changed_paths
        type: int
      item_type: struct
      name: opts_commit_graph
      pos:
        line_end: 51
        line_start: 41
        source_file: /src/git/builtin/commit-graph.c
    typedefs: []
    union: []
- function_names:
  - write_eolinfo
  - write_name
  - write_name_to_buf
  - get_tag
  - print_debug
  - show_dir_entry
  - show_other_files
  - show_killed_files
  - show_submodule
  - expand_objectsize
  - show_ce_fmt
  - show_ce
  - show_ru_info
  - ce_excluded
  - construct_fullname
  - show_files
  - prune_index
  - get_common_prefix_len
  - option_parse_exclude
  - option_parse_exclude_from
  - option_parse_exclude_standard
  - cmd_ls_files
  source_file: /src/git/builtin/ls-files.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - free_terms
  - set_terms
  - one_of
  - is_bisect_success
  - write_in_file
  - write_to_file
  - append_to_file
  - print_file_to_stdout
  - check_term_format
  - write_terms
  - bisect_reset
  - log_commit
  - bisect_write
  - check_and_set_terms
  - inc_nr
  - decide_next
  - bisect_status
  - bisect_log_printf
  - bisect_print_status
  - bisect_next_check
  - get_terms
  - bisect_terms
  - bisect_append_log_quoted
  - add_bisect_ref
  - prepare_revs
  - bisect_skipped_commits
  - bisect_successful
  - bisect_next
  - bisect_auto_next
  - bisect_start
  - file_is_not_empty
  - bisect_autostart
  - bisect_state
  - bisect_log
  - process_replay_line
  - bisect_replay
  - bisect_skip
  - bisect_visualize
  - get_first_good
  - do_bisect_run
  - verify_good
  - bisect_run
  - cmd_bisect__reset
  - cmd_bisect__terms
  - cmd_bisect__start
  - cmd_bisect__next
  - cmd_bisect__log
  - cmd_bisect__replay
  - cmd_bisect__skip
  - cmd_bisect__visualize
  - cmd_bisect__run
  - cmd_bisect
  source_file: /src/git/builtin/bisect.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_BAD_USAGE
      pos:
        line_end: 33
        line_start: 31
        source_file: /src/git/builtin/bisect.c
      type_or_value: N_("git bisect (bad|new|<term-new>) [<rev>]")
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_GOOD_USAGE
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/git/builtin/bisect.c
      type_or_value: N_("git bisect (good|old|<term-old>) [<rev>...]")
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_TERMS_USAGE
      pos:
        line_end: 37
        line_start: 35
        source_file: /src/git/builtin/bisect.c
      type_or_value: '"git bisect terms [--term-(good|old) | --term-(bad|new)]"'
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_SKIP_USAGE
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/git/builtin/bisect.c
      type_or_value: N_("git bisect skip [(<rev>|<range>)...]")
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_NEXT_USAGE
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/git/builtin/bisect.c
      type_or_value: '"git bisect next"'
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_RESET_USAGE
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/git/builtin/bisect.c
      type_or_value: N_("git bisect reset [<commit>]")
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_VISUALIZE_USAGE
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/git/builtin/bisect.c
      type_or_value: '"git bisect (visualize|view)"'
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_REPLAY_USAGE
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/git/builtin/bisect.c
      type_or_value: N_("git bisect replay <logfile>")
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_LOG_USAGE
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/git/builtin/bisect.c
      type_or_value: '"git bisect log"'
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_RUN_USAGE
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/git/builtin/bisect.c
      type_or_value: N_("git bisect run <cmd> [<arg>...]")
    - item_type: preproc_def
      name: BUILTIN_GIT_BISECT_HELP_USAGE
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/git/builtin/bisect.c
      type_or_value: '"git bisect help"'
    structs:
    - fields:
      - name: '*revs'
        type: struct rev_info
      - name: object_flags
        type: unsigned int
      item_type: struct
      name: add_bisect_ref_data
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/git/builtin/bisect.c
    - fields:
      - name: '*term_good'
        type: char
      - name: '*term_bad'
        type: char
      item_type: struct
      name: bisect_terms
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/git/builtin/bisect.c
    typedefs: []
    union: []
- function_names:
  - parse_deny_action
  - receive_pack_config
  - show_ref
  - show_ref_cb
  - show_one_alternate_ref
  - write_head_info
  - proc_receive_ref_append
  - proc_receive_ref_matches
  - report_message
  - rp_warning
  - rp_error
  - copy_to_sideband
  - prepare_sideband_async
  - finish_sideband_async
  - hmac_hash
  - prepare_push_cert_nonce
  - constant_memequal
  - check_nonce
  - check_cert_push_options
  - prepare_push_cert_sha1
  - feed_receive_hook_cb
  - receive_hook_feed_state_alloc
  - receive_hook_feed_state_free
  - run_receive_hook
  - run_update_hook
  - find_command_by_refname
  - read_proc_receive_report
  - run_proc_receive_hook
  - for_each_string_list_item
  - refuse_unconfigured_deny
  - refuse_unconfigured_deny_delete_current
  - update_shallow_ref
  - push_to_deploy
  - push_to_checkout
  - update_worktree
  - update
  - run_update_post_hook
  - check_aliased_update_internal
  - check_aliased_update
  - check_aliased_updates
  - command_singleton_iterator
  - set_connectivity_errors
  - iterate_receive_command_list
  - reject_updates_to_hidden
  - should_process_cmd
  - BUG_if_skipped_connectivity_check
  - ref_transaction_rejection_handler
  - execute_commands_non_atomic
  - execute_commands_atomic
  - execute_commands
  - queue_command
  - free_commands
  - queue_commands_from_cert
  - read_head_info
  - read_push_options
  - parse_pack_header
  - push_header_arg
  - unpack
  - unpack_with_sideband
  - prepare_shallow_update
  - update_shallow_info
  - report
  - report_v2
  - delete_only
  - cmd_receive_pack
  source_file: /src/git/builtin/receive-pack.c
  types:
    enum:
    - enumerators:
      - name: DENY_UNCONFIGURED
      - name: DENY_IGNORE
      - name: DENY_WARN
      - name: DENY_UPDATE_INSTEAD
      - name: DENY_REFUSE
      item_type: enum
      name: deny_action
      pos:
        line_end: 56
        line_start: 50
        source_file: /src/git/builtin/receive-pack.c
    - enumerators:
      - name: PHASE_DELETIONS
      - name: PHASE_OTHERS
      item_type: enum
      name: processing_phase
      pos:
        line_end: 1920
        line_start: 1917
        source_file: /src/git/builtin/receive-pack.c
    preproc_defs:
    - item_type: preproc_def
      name: RUN_PROC_RECEIVE_SCHEDULED
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/git/builtin/receive-pack.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RUN_PROC_RECEIVE_RETURNED
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/git/builtin/receive-pack.c
      type_or_value: '2'
    structs:
    - fields:
      - name: want_add
        type: unsigned int
      - name: '*ref_prefix'
        type: char
      - name: '*next'
        type: struct proc_receive_ref
      item_type: struct
      name: proc_receive_ref
      pos:
        line_end: 123
        line_start: 116
        source_file: /src/git/builtin/receive-pack.c
    - fields:
      - name: '*next'
        type: struct command
      - name: '*error_string'
        type: char
      - name: '*error_string_owned'
        type: char
      - name: '*report'
        type: struct ref_push_report
      - name: skip_update
        type: unsigned int
      - name: index
        type: int
      - name: old_oid
        type: struct object_id
      - name: new_oid
        type: struct object_id
      - name: ref_name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: command
      pos:
        line_end: 389
        line_start: 377
        source_file: /src/git/builtin/receive-pack.c
    - fields:
      - name: '*cmd'
        type: struct command
      - name: '*report'
        type: struct ref_push_report
      - name: skip_broken
        type: int
      - name: buf
        type: struct strbuf
      item_type: struct
      name: receive_hook_feed_state
      pos:
        line_end: 846
        line_start: 841
        source_file: /src/git/builtin/receive-pack.c
    - fields:
      - name: '*cmds'
        type: struct command
      - name: '*si'
        type: struct shallow_info
      item_type: struct
      name: iterate_data
      pos:
        line_end: 1816
        line_start: 1813
        source_file: /src/git/builtin/receive-pack.c
    typedefs: []
    union: []
- function_names:
  - opt_parse_porcelain
  - opt_parse_m
  - opt_parse_rename_score
  - determine_whence
  - status_init_config
  - rollback_index_files
  - commit_index_files
  - list_paths
  - add_remove_files
  - create_base_index
  - refresh_cache_or_die
  - prepare_index
  - run_status
  - is_a_merge
  - assert_split_ident
  - export_one
  - parse_force_date
  - set_ident_var
  - determine_author_info
  - author_date_is_interesting
  - adjust_comment_line_char
  - prepare_amend_commit
  - change_data_free
  - prepare_to_commit
  - find_author_by_nickname
  - handle_ignored_arg
  - parse_untracked_setting_name
  - handle_untracked_files_arg
  - read_commit_message
  - finalize_deferred_config
  - check_fixup_reword_options
  - parse_and_validate_options
  - dry_run_commit
  - parse_status_slot
  - git_status_config
  - cmd_status
  - git_commit_config
  - cmd_commit
  source_file: /src/git/builtin/commit.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: status_format
        type: enum wt_status_format
      - name: show_branch
        type: int
      - name: ahead_behind
        type: enum ahead_behind_flags
      item_type: struct
      name: status_deferred_config
      pos:
        line_end: 1249
        line_start: 1245
        source_file: /src/git/builtin/commit.c
    typedefs: []
    union: []
- function_names:
  - repack_config
  - option_parse_write_midx
  - cmd_repack
  source_file: /src/git/builtin/repack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALL_INTO_ONE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/builtin/repack.c
      type_or_value: '1'
    - item_type: preproc_def
      name: LOOSEN_UNREACHABLE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/builtin/repack.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PACK_CRUFT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/builtin/repack.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DELETE_PACK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/git/builtin/repack.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RETAIN_PACK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/builtin/repack.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DEFAULT_MIDX_SPLIT_FACTOR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/builtin/repack.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DEFAULT_MIDX_NEW_LAYER_THRESHOLD
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/builtin/repack.c
      type_or_value: '8'
    structs:
    - fields:
      - name: '*po_args'
        type: struct pack_objects_args
      - name: '*cruft_po_args'
        type: struct pack_objects_args
      - name: midx_split_factor
        type: int
      - name: midx_new_layer_threshold
        type: int
      item_type: struct
      name: repack_config_ctx
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/git/builtin/repack.c
    typedefs: []
    union: []
- function_names:
  - git_clean_config
  - clean_get_color
  - clean_print_color
  - exclude_cb
  - remove_dirs
  - pretty_print_dels
  - pretty_print_menus
  - prompt_help_cmd
  - print_highlight_menu_stuff
  - find_unique
  - parse_choice
  - list_and_choose
  - clean_cmd
  - filter_by_patterns_cmd
  - select_by_numbers_cmd
  - ask_each_cmd
  - quit_cmd
  - help_cmd
  - interactive_main_loop
  - correct_untracked_entries
  - cmd_clean
  source_file: /src/git/builtin/clean.c
  types:
    enum:
    - enumerators:
      - name: CLEAN_COLOR_RESET
        value: '0'
      - name: CLEAN_COLOR_HELP
        value: '4'
      - name: CLEAN_COLOR_HEADER
        value: '3'
      - name: CLEAN_COLOR_PROMPT
        value: '2'
      - name: CLEAN_COLOR_PLAIN
        value: '1'
      - name: CLEAN_COLOR_ERROR
        value: '5'
      item_type: enum
      name: color_clean
      pos:
        line_end: 55
        line_start: 48
        source_file: /src/git/builtin/clean.c
    - enumerators:
      - name: MENU_STUFF_TYPE_STRING_LIST
        value: '1'
      - name: MENU_STUFF_TYPE_MENU_ITEM
      item_type: enum
      name: menu_stuff_type
      pos:
        line_end: 98
        line_start: 95
        source_file: /src/git/builtin/clean.c
    preproc_defs:
    - item_type: preproc_def
      name: MENU_OPTS_SINGLETON
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/git/builtin/clean.c
      type_or_value: '01'
    - item_type: preproc_def
      name: MENU_OPTS_IMMEDIATE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/git/builtin/clean.c
      type_or_value: '02'
    - item_type: preproc_def
      name: MENU_OPTS_LIST_ONLY
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/git/builtin/clean.c
      type_or_value: '04'
    - item_type: preproc_def
      name: MENU_RETURN_NO_LOOP
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/git/builtin/clean.c
      type_or_value: '10'
    structs:
    - fields:
      - name: '*header'
        type: char
      - name: '*prompt'
        type: char
      - name: flags
        type: int
      item_type: struct
      name: menu_opts
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/git/builtin/clean.c
    - fields:
      - name: hotkey
        type: char
      - name: '*title'
        type: char
      - name: selected
        type: int
      - name: (*fn)(void)
        type: int
      item_type: struct
      name: menu_item
      pos:
        line_end: 93
        line_start: 88
        source_file: /src/git/builtin/clean.c
    - fields:
      - name: type
        type: enum menu_stuff_type
      - name: nr
        type: int
      - name: '*stuff'
        type: void
      item_type: struct
      name: menu_stuff
      pos:
        line_end: 104
        line_start: 100
        source_file: /src/git/builtin/clean.c
    typedefs: []
    union: []
- function_names:
  - UTIL_TO_INT
  - compare_by_counter
  - compare_by_list
  - insert_one_record
  - parse_ident
  - read_from_stdin
  - insert_records_from_trailers
  - shortlog_needs_dedup
  - insert_records_from_format
  - shortlog_add_commit
  - get_from_rev
  - parse_uint
  - parse_wrap_args
  - parse_group_option
  - shortlog_init
  - shortlog_finish_setup
  - cmd_shortlog
  - add_wrapped_shortlog_msg
  - shortlog_output
  source_file: /src/git/builtin/shortlog.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_WRAPLEN
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/git/builtin/shortlog.c
      type_or_value: '76'
    - item_type: preproc_def
      name: DEFAULT_INDENT1
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/git/builtin/shortlog.c
      type_or_value: '6'
    - item_type: preproc_def
      name: DEFAULT_INDENT2
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/git/builtin/shortlog.c
      type_or_value: '9'
    structs: []
    typedefs: []
    union: []
- function_names:
  - diff_tree_commit_oid
  - stdin_diff_commit
  - stdin_diff_trees
  - diff_tree_stdin
  - diff_tree_tweak_rev
  - cmd_diff_tree
  source_file: /src/git/builtin/diff-tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - recurse_submodules_cb
  - get_repo_path_1
  - get_repo_path
  - add_one_reference
  - setup_reference
  - copy_alternates
  - mkdir_if_missing
  - copy_or_link_directory
  - clone_local
  - remove_junk
  - remove_junk_on_signal
  - find_remote_branch
  - wanted_peer_refs
  - write_remote_refs
  - write_followtags
  - iterate_ref_map
  - update_remote_refs
  - update_head
  - git_sparse_checkout_init
  - checkout
  - git_clone_config
  - write_one_config
  - write_config
  - write_refspec_config
  - dissociate_from_references
  - path_exists
  - cmd_clone
  source_file: /src/git/builtin/clone.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: wants_head
        type: int
      - name: detach
        type: int
      item_type: struct
      name: clone_opts
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/git/builtin/clone.c
    typedefs: []
    union: []
- function_names:
  - parse_config_rebase
  - parse_opt_rebase
  - argv_push_verbosity
  - argv_push_force
  - set_reflog_message
  - config_get_ff
  - config_get_rebase
  - git_pull_config
  - get_merge_heads
  - get_only_remote
  - die_no_merge_candidates
  - parse_repo_refspecs
  - run_fetch
  - pull_into_void
  - rebase_submodules
  - update_submodules
  - run_merge
  - get_upstream_branch
  - get_tracking_branch
  - get_rebase_fork_point
  - get_octopus_merge_base
  - get_rebase_newbase_and_upstream
  - run_rebase
  - get_can_ff
  - already_up_to_date
  - show_advice_pull_non_ff
  - cmd_pull
  source_file: /src/git/builtin/pull.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - grep_lock
  - grep_unlock
  - add_work
  - get_work
  - work_done
  - free_repos
  - run
  - strbuf_out
  - start_threads
  - wait_all
  - grep_cmd_config
  - grep_source_name
  - grep_oid
  - grep_file
  - append_path
  - run_pager
  - grep_submodule
  - grep_cache
  - grep_tree
  - collect_blob_oids_for_tree
  - collect_blob_oids_for_treeish
  - prefetch_grep_blobs
  - grep_object
  - grep_objects
  - grep_directory
  - context_callback
  - file_callback
  - not_callback
  - and_callback
  - open_callback
  - close_callback
  - pattern_callback
  - cmd_grep
  source_file: /src/git/builtin/grep.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TODO_SIZE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/git/builtin/grep.c
      type_or_value: '128'
    structs:
    - fields:
      - name: source
        type: struct grep_source
      - name: done
        type: char
      - name: out
        type: struct strbuf
      item_type: struct
      name: work_item
      pos:
        line_end: 60
        line_start: 56
        source_file: /src/git/builtin/grep.c
    typedefs: []
    union: []
- function_names:
  - label_cb
  - set_diff_algorithm
  - diff_algorithm_cb
  - cmd_merge_file
  source_file: /src/git/builtin/merge-file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blob_path
  - stuff_change
  - builtin_diff_b_f
  - builtin_diff_blobs
  - builtin_diff_index
  - builtin_diff_tree
  - builtin_diff_combined
  - refresh_index_quietly
  - builtin_diff_files
  - symdiff_prepare
  - symdiff_release
  - cmd_diff
  source_file: /src/git/builtin/diff.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DIFF_NO_INDEX_EXPLICIT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/builtin/diff.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DIFF_NO_INDEX_IMPLICIT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/builtin/diff.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*skip'
        type: struct bitmap
      - name: warn
        type: int
      - name: '*base'
        type: char
      item_type: struct
      name: symdiff
      pos:
        line_end: 295
        line_start: 291
        source_file: /src/git/builtin/diff.c
    typedefs: []
    union: []
- function_names:
  - cmd_get_tar_commit_id
  source_file: /src/git/builtin/get-tar-commit-id.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RECORDSIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/builtin/get-tar-commit-id.c
      type_or_value: (512)
    - item_type: preproc_def
      name: HEADERSIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/git/builtin/get-tar-commit-id.c
      type_or_value: (2 * RECORDSIZE)
    structs: []
    typedefs: []
    union: []
- function_names:
  - nth_line_cb
  - get_ac_line
  - commit_info_destroy
  - get_commit_info
  - write_filename_info
  - emit_one_suspect_detail
  - found_guilty_entry
  - format_time
  - emit_porcelain_details
  - emit_porcelain_per_line_details
  - emit_porcelain
  - parse_color_fields
  - setup_default_color_by_age
  - determine_line_heat
  - emit_other
  - output
  - read_ancestry
  - update_auto_abbrev
  - find_alignment
  - sanity_check_on_fail
  - parse_score
  - add_prefix
  - git_blame_config
  - blame_copy_callback
  - blame_move_callback
  - blame_diff_algorithm_minimal
  - blame_diff_algorithm_callback
  - is_a_rev
  - peel_to_commit_oid
  - build_ignorelist
  - for_each_string_list_item
  - for_each_string_list_item
  - cmd_blame
  source_file: /src/git/builtin/blame.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEBUG_BLAME
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/git/builtin/blame.c
      type_or_value: '0'
    - item_type: preproc_def
      name: METAINFO_SHOWN
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/git/builtin/blame.c
      type_or_value: (1u<<12)
    - item_type: preproc_def
      name: MORE_THAN_ONE_PATH
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/git/builtin/blame.c
      type_or_value: (1u<<13)
    - item_type: preproc_def
      name: COMMIT_INFO_INIT
      pos:
        line_end: 126
        line_start: 117
        source_file: /src/git/builtin/blame.c
      type_or_value: "{ \\\n\t.author = STRBUF_INIT, \\\n\t.author_mail = STRBUF_INIT,
        \\\n\t.author_tz = STRBUF_INIT, \\\n\t.committer = STRBUF_INIT, \\\n\t.committer_mail
        = STRBUF_INIT, \\\n\t.committer_tz = STRBUF_INIT, \\\n\t.summary = STRBUF_INIT,
        \\\n}"
    - item_type: preproc_def
      name: OUTPUT_ANNOTATE_COMPAT
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<0)
    - item_type: preproc_def
      name: OUTPUT_LONG_OBJECT_NAME
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<1)
    - item_type: preproc_def
      name: OUTPUT_RAW_TIMESTAMP
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<2)
    - item_type: preproc_def
      name: OUTPUT_PORCELAIN
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<3)
    - item_type: preproc_def
      name: OUTPUT_SHOW_NAME
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<4)
    - item_type: preproc_def
      name: OUTPUT_SHOW_NUMBER
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<5)
    - item_type: preproc_def
      name: OUTPUT_SHOW_SCORE
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<6)
    - item_type: preproc_def
      name: OUTPUT_NO_AUTHOR
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<7)
    - item_type: preproc_def
      name: OUTPUT_SHOW_EMAIL
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<8)
    - item_type: preproc_def
      name: OUTPUT_LINE_PORCELAIN
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<9)
    - item_type: preproc_def
      name: OUTPUT_COLOR_LINE
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<10)
    - item_type: preproc_def
      name: OUTPUT_SHOW_AGE_WITH_COLOR
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/git/builtin/blame.c
      type_or_value: (1U<<11)
    structs:
    - fields:
      - name: '*progress'
        type: struct progress
      - name: blamed_lines
        type: int
      item_type: struct
      name: progress_info
      pos:
        line_end: 92
        line_start: 89
        source_file: /src/git/builtin/blame.c
    - fields:
      - name: author
        type: struct strbuf
      - name: author_mail
        type: struct strbuf
      - name: author_time
        type: timestamp_t
      - name: author_tz
        type: struct strbuf
      - name: committer
        type: struct strbuf
      - name: committer_mail
        type: struct strbuf
      - name: committer_time
        type: timestamp_t
      - name: committer_tz
        type: struct strbuf
      - name: summary
        type: struct strbuf
      item_type: struct
      name: commit_info
      pos:
        line_end: 115
        line_start: 102
        source_file: /src/git/builtin/blame.c
    - fields:
      - name: hop
        type: timestamp_t
      - name: col[COLOR_MAXLEN]
        type: char
      item_type: struct
      name: color_field
      pos:
        line_end: 402
        line_start: 399
        source_file: /src/git/builtin/blame.c
    typedefs: []
    union: []
- function_names:
  - cmd_upload_archive_writer
  - error_clnt
  - process_input
  - cmd_upload_archive
  source_file: /src/git/builtin/upload-archive.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ARGS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/builtin/upload-archive.c
      type_or_value: (64)
    structs: []
    typedefs: []
    union: []
- function_names:
  - branch_info_release
  - post_checkout_hook
  - update_some
  - read_tree_some
  - skip_same_name
  - check_stage
  - check_stages
  - checkout_stage
  - checkout_merged
  - mark_ce_for_checkout_overlay
  - mark_ce_for_checkout_no_overlay
  - checkout_worktree
  - checkout_paths
  - show_local_changes
  - describe_detached_head
  - reset_tree
  - setup_branch_path
  - init_topts
  - merge_working_tree
  - report_tracking
  - update_refs_for_switch
  - add_pending_uninteresting_ref
  - describe_one_orphan
  - suggest_reattach
  - orphaned_commit_warning
  - switch_branches
  - git_checkout_config
  - setup_new_branch_info_and_source_tree
  - parse_remote_branch
  - parse_branchname_arg
  - switch_unborn_to_new_branch
  - die_expecting_a_branch
  - die_if_some_operation_in_progress
  - die_if_switching_to_a_branch_in_use
  - checkout_branch
  - parse_opt_conflict
  - add_common_options
  - add_common_switch_branch_options
  - add_checkout_path_options
  - checkout_main
  - cmd_checkout
  - cmd_switch
  - cmd_restore
  source_file: /src/git/builtin/checkout.c
  types:
    enum:
    - enumerators:
      - name: CHECKOUT_CHECKOUT
        value: '1'
      - name: CHECKOUT_RESTORE
        value: '3'
      - name: CHECKOUT_SWITCH
        value: '2'
      item_type: enum
      name: checkout_command
      pos:
        line_end: 1287
        line_start: 1283
        source_file: /src/git/builtin/checkout.c
    preproc_defs:
    - item_type: preproc_def
      name: CHECKOUT_OPTS_INIT
      pos:
        line_end: 101
        line_start: 94
        source_file: /src/git/builtin/checkout.c
      type_or_value: "{ \\\n\t.conflict_style = -1, \\\n\t.merge = -1, \\\n\t.patch_context
        = -1, \\\n\t.patch_interhunk_context = -1, \\\n\t.auto_advance = 1, \\\n}"
    - item_type: preproc_def
      name: MERGE_WORKING_TREE_UNPACK_FAILED
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/git/builtin/checkout.c
      type_or_value: (-2)
    - item_type: preproc_def
      name: ORPHAN_CUTOFF
      pos:
        line_end: 1015
        line_start: 1014
        source_file: /src/git/builtin/checkout.c
      type_or_value: '4'
    structs:
    - fields:
      - name: patch_mode
        type: int
      - name: patch_context
        type: int
      - name: patch_interhunk_context
        type: int
      - name: auto_advance
        type: int
      - name: quiet
        type: int
      - name: merge
        type: int
      - name: force
        type: int
      - name: force_detach
        type: int
      - name: implicit_detach
        type: int
      - name: writeout_stage
        type: int
      - name: overwrite_ignore
        type: int
      - name: ignore_skipworktree
        type: int
      - name: ignore_other_worktrees
        type: int
      - name: show_progress
        type: int
      - name: count_checkout_paths
        type: int
      - name: overlay_mode
        type: int
      - name: dwim_new_local_branch
        type: int
      - name: discard_changes
        type: int
      - name: accept_ref
        type: int
      - name: accept_pathspec
        type: int
      - name: switch_branch_doing_nothing_is_ok
        type: int
      - name: only_merge_on_switching_branches
        type: int
      - name: can_switch_when_in_progress
        type: int
      - name: orphan_from_empty_tree
        type: int
      - name: empty_pathspec_ok
        type: int
      - name: checkout_index
        type: int
      - name: checkout_worktree
        type: int
      - name: '*ignore_unmerged_opt'
        type: char
      - name: ignore_unmerged
        type: int
      - name: pathspec_file_nul
        type: int
      - name: '*pathspec_from_file'
        type: char
      - name: '*new_branch'
        type: char
      - name: '*new_branch_force'
        type: char
      - name: '*new_orphan_branch'
        type: char
      - name: new_branch_log
        type: int
      - name: track
        type: enum branch_track
      - name: diff_options
        type: struct diff_options
      - name: conflict_style
        type: int
      - name: branch_exists
        type: int
      - name: '*prefix'
        type: char
      - name: pathspec
        type: struct pathspec
      - name: '*from_treeish'
        type: char
      - name: '*source_tree'
        type: struct tree
      item_type: struct
      name: checkout_opts
      pos:
        line_end: 92
        line_start: 46
        source_file: /src/git/builtin/checkout.c
    - fields:
      - name: '*name'
        type: char
      - name: '*path'
        type: char
      - name: '*commit'
        type: struct commit
      - name: '*refname'
        type: char
      - name: oid
        type: struct object_id
      - name: '*checkout'
        type: char
      item_type: struct
      name: branch_info
      pos:
        line_end: 115
        line_start: 104
        source_file: /src/git/builtin/checkout.c
    typedefs: []
    union: []
- function_names:
  - create_output_file
  - run_remote_archiver
  - cmd_archive
  source_file: /src/git/builtin/archive.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PARSE_OPT_KEEP_ALL
      pos:
        line_end: 76
        line_start: 72
        source_file: /src/git/builtin/archive.c
      type_or_value: "( PARSE_OPT_KEEP_DASHDASH | \t\\\n\t\t\t     PARSE_OPT_KEEP_ARGV0
        | \t\\\n\t\t\t     PARSE_OPT_KEEP_UNKNOWN_OPT |\t\\\n\t\t\t     PARSE_OPT_NO_INTERNAL_HELP\t)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_color_code
  - get_color_reset_code
  - interesting
  - commit_to_name
  - name_commit
  - name_parent
  - name_first_parent_chain
  - name_commits
  - mark_seen
  - join_revs
  - show_one_commit
  - find_digit_prefix
  - version_cmp
  - compare_ref_name
  - sort_ref_range
  - append_ref
  - append_head_ref
  - append_remote_ref
  - append_tag_ref
  - append_matching_ref
  - snarf_refs
  - rev_is_head
  - show_merge_base
  - show_independent
  - append_one_rev
  - git_show_branch_config
  - omit_in_dense
  - parse_reflog_param
  - cmd_show_branch
  source_file: /src/git/builtin/show-branch.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNINTERESTING
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/builtin/show-branch.c
      type_or_value: '01'
    - item_type: preproc_def
      name: REV_SHIFT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/builtin/show-branch.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_REVS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/builtin/show-branch.c
      type_or_value: '(FLAG_BITS - REV_SHIFT) '
    - item_type: preproc_def
      name: DEFAULT_REFLOG
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/builtin/show-branch.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '*head_name'
        type: char
      - name: generation
        type: int
      item_type: struct
      name: commit_name
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/git/builtin/show-branch.c
    typedefs: []
    union: []
- function_names:
  - append_to_tree
  - ent_compare
  - write_tree
  - mktree_line
  - cmd_mktree
  source_file: /src/git/builtin/mktree.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mode
        type: unsigned
      - name: oid
        type: struct object_id
      - name: len
        type: int
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: treeent
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/git/builtin/mktree.c
    typedefs: []
    union: []
- function_names:
  - strip_escapes
  - parse_argv
  - send_git_request
  - run_child
  - command_loop
  - cmd_remote_ext
  source_file: /src/git/builtin/remote-ext.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXCOMMAND
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/git/builtin/remote-ext.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - difftool_config
  - print_tool_help
  - parse_index_info
  - add_path
  - use_wt_file
  - working_tree_entry_cmp
  - pair_cmp
  - add_left_or_right
  - path_entry_cmp
  - changed_files
  - ensure_leading_directories
  - get_symlink
  - checkout_path
  - write_file_in_directory
  - write_standin_files
  - run_dir_diff
  - run_file_diff
  - cmd_difftool
  source_file: /src/git/builtin/difftool.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: has_symlinks
        type: int
      - name: symlinks
        type: int
      - name: trust_exit_code
        type: int
      item_type: struct
      name: difftool_options
      pos:
        line_end: 46
        line_start: 42
        source_file: /src/git/builtin/difftool.c
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: path[FLEX_ARRAY]
        type: char
      item_type: struct
      name: working_tree_entry
      pos:
        line_end: 150
        line_start: 147
        source_file: /src/git/builtin/difftool.c
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: left[PATH_MAX]
        type: char
      - name: path[FLEX_ARRAY]
        type: char
      item_type: struct
      name: pair_entry
      pos:
        line_end: 173
        line_start: 169
        source_file: /src/git/builtin/difftool.c
    - fields:
      - name: entry
        type: struct hashmap_entry
      - name: path[FLEX_ARRAY]
        type: char
      item_type: struct
      name: path_entry
      pos:
        line_end: 209
        line_start: 206
        source_file: /src/git/builtin/difftool.c
    typedefs: []
    union: []
- function_names:
  - lookup_object_buffer
  - add_object_buffer
  - fill
  - use
  - get_data
  - add_delta_to_list
  - write_cached_object
  - check_object
  - write_rest
  - write_object
  - resolve_delta
  - added_object
  - unpack_non_delta_entry
  - feed_input_zstream
  - stream_blob
  - resolve_against_held
  - unpack_delta_entry
  - unpack_one
  - unpack_all
  - cmd_unpack_objects
  source_file: /src/git/builtin/unpack-objects.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLAG_OPEN
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/git/builtin/unpack-objects.c
      type_or_value: (1u<<20)
    - item_type: preproc_def
      name: FLAG_WRITTEN
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/git/builtin/unpack-objects.c
      type_or_value: (1u<<21)
    structs:
    - fields:
      - name: '*buffer'
        type: char
      - name: size
        type: unsigned long
      item_type: struct
      name: obj_buffer
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/git/builtin/unpack-objects.c
    - fields:
      - name: base_oid
        type: struct object_id
      - name: nr
        type: unsigned
      - name: base_offset
        type: off_t
      - name: size
        type: unsigned long
      - name: '*delta'
        type: void
      - name: '*next'
        type: struct delta_info
      item_type: struct
      name: delta_info
      pos:
        line_end: 166
        line_start: 159
        source_file: /src/git/builtin/unpack-objects.c
    - fields:
      - name: offset
        type: off_t
      - name: oid
        type: struct object_id
      - name: '*obj'
        type: struct object
      item_type: struct
      name: obj_info
      pos:
        line_end: 189
        line_start: 185
        source_file: /src/git/builtin/unpack-objects.c
    - fields:
      - name: '*zstream'
        type: git_zstream
      - name: status
        type: int
      item_type: struct
      name: input_zstream_data
      pos:
        line_end: 363
        line_start: 360
        source_file: /src/git/builtin/unpack-objects.c
    typedefs: []
    union: []
- function_names:
  - verify_one_pack
  - cmd_verify_pack
  source_file: /src/git/builtin/verify-pack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VERIFY_PACK_VERBOSE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/git/builtin/verify-pack.c
      type_or_value: '01'
    - item_type: preproc_def
      name: VERIFY_PACK_STAT_ONLY
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/git/builtin/verify-pack.c
      type_or_value: '02'
    structs: []
    typedefs: []
    union: []
- function_names:
  - merge_entry
  - merge_one_path
  - merge_all
  - cmd_merge_index
  source_file: /src/git/builtin/merge-index.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_merge
  - reset_index
  - print_new_head_line
  - update_index_from_diff
  - read_from_tree
  - set_reflog_message
  - die_if_unmerged_cache
  - parse_args
  - reset_refs
  - git_reset_config
  - cmd_reset
  source_file: /src/git/builtin/reset.c
  types:
    enum:
    - enumerators:
      - name: MIXED
      - name: HARD
      - name: MERGE
      - name: SOFT
      - name: KEEP
      - name: NONE
      item_type: enum
      name: reset_type
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/git/builtin/reset.c
    preproc_defs:
    - item_type: preproc_def
      name: REFRESH_INDEX_DELAY_WARNING_IN_MS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/builtin/reset.c
      type_or_value: (2 * 1000)
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_push_color_slot
  - push_get_color
  - refspec_append_mapped
  - set_refspecs
  - die_push_simple
  - get_upstream_ref
  - setup_default_push_refspecs
  - advise_pull_before_push
  - advise_checkout_pull_push
  - advise_ref_already_exists
  - advise_ref_fetch_first
  - advise_ref_needs_force
  - advise_ref_needs_update
  - push_with_options
  - do_push
  - option_parse_recurse_submodules
  - set_push_cert_flags
  - git_push_config
  - cmd_push
  source_file: /src/git/builtin/push.c
  types:
    enum:
    - enumerators:
      - name: PUSH_COLOR_RESET
        value: '0'
      - name: PUSH_COLOR_ERROR
        value: '1'
      item_type: enum
      name: color_push
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/git/builtin/push.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_default_remote
  - resolve_relative_url
  - get_default_remote_submodule
  - module_get_default_remote
  - get_submodule_displaypath
  - compute_rev_name
  - module_list_release
  - module_list_compute
  - module_list_active
  - get_up_path
  - for_each_listed_submodule
  - runcommand_in_submodule_cb
  - module_foreach
  - validate_and_set_submodule_gitdir
  - create_default_gitdir_config
  - init_submodule
  - init_submodule_cb
  - module_init
  - print_status
  - handle_submodule_head_ref
  - status_submodule
  - status_submodule_cb
  - module_status
  - module_cb_release
  - module_cb_list_release
  - verify_submodule_committish
  - print_submodule_summary
  - generate_submodule_summary
  - prepare_submodule_summary
  - submodule_summary_callback
  - get_diff_cmd
  - compute_summary_module_list
  - module_summary
  - module_gitdir
  - module_migrate
  - sync_submodule
  - sync_submodule_cb
  - module_sync
  - deinit_submodule
  - deinit_submodule_cb
  - module_deinit
  - add_possible_reference_from_superproject
  - prepare_possible_alternates
  - clone_submodule_sm_gitdir
  - dir_contains_only_dotgit
  - clone_submodule
  - module_clone
  - determine_submodule_update_strategy
  - submodule_update_clone_release
  - update_data_release
  - next_submodule_warn_missing
  - prepare_to_clone_next_submodule
  - update_clone_get_next_task
  - update_clone_start_failure
  - update_clone_task_finished
  - git_update_clone_config
  - is_tip_reachable
  - fetch_in_submodule
  - run_update_command
  - run_update_procedure
  - remote_submodule_branch
  - ensure_core_worktree
  - submodule_update_type_to_label
  - update_data_to_args
  - update_submodule
  - update_submodules
  - module_update
  - push_check
  - absorb_git_dirs
  - module_set_url
  - module_set_branch
  - module_create_branch
  - append_fetch_remotes
  - add_submodule
  - config_submodule_in_gitmodules
  - configure_added_submodule
  - die_on_index_match
  - die_on_repo_without_commits
  - module_add
  - cmd_submodule__helper
  source_file: /src/git/builtin/submodule--helper.c
  types:
    enum:
    - enumerators:
      - name: DIFF_INDEX
      - name: DIFF_FILES
      item_type: enum
      name: diff_cmd
      pos:
        line_end: 941
        line_start: 938
        source_file: /src/git/builtin/submodule--helper.c
    - enumerators:
      - name: SUBMODULE_ALTERNATE_ERROR_DIE
      - name: SUBMODULE_ALTERNATE_ERROR_INFO
      - name: SUBMODULE_ALTERNATE_ERROR_IGNORE
      item_type: enum
      name: SUBMODULE_ALTERNATE_ERROR_MODE
      pos:
        line_end: 1752
        line_start: 1748
        source_file: /src/git/builtin/submodule--helper.c
    preproc_defs:
    - item_type: preproc_def
      name: OPT_QUIET
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: OPT_CACHED
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: OPT_RECURSIVE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: OPT_FORCE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: MODULE_LIST_INIT
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: FOREACH_CB_INIT
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: INIT_CB_INIT
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: STATUS_CB_INIT
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: MODULE_CB_INIT
      pos:
        line_end: 901
        line_start: 900
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: MODULE_CB_LIST_INIT
      pos:
        line_end: 912
        line_start: 911
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: SUMMARY_CB_INIT
      pos:
        line_end: 937
        line_start: 936
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: SYNC_CB_INIT
      pos:
        line_end: 1427
        line_start: 1426
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: DEINIT_CB_INIT
      pos:
        line_end: 1576
        line_start: 1575
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: MODULE_CLONE_DATA_INIT
      pos:
        line_end: 1745
        line_start: 1741
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: "{ \\\n\t.single_branch = -1, \\\n\t.ref_storage_format = REF_STORAGE_FORMAT_UNKNOWN,
        \\\n}"
    - item_type: preproc_def
      name: SUBMODULE_ALTERNATE_SETUP_INIT
      pos:
        line_end: 1758
        line_start: 1755
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: "{ \\\n\t.error_mode = SUBMODULE_ALTERNATE_ERROR_IGNORE, \\\n}"
    - item_type: preproc_def
      name: SUBMODULE_UPDATE_CLONE_INIT
      pos:
        line_end: 2179
        line_start: 2178
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: UPDATE_DATA_INIT
      pos:
        line_end: 2226
        line_start: 2217
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: "{ \\\n\t.update_strategy = SUBMODULE_UPDATE_STRATEGY_INIT, \\\n\t.list
        = MODULE_LIST_INIT, \\\n\t.ref_storage_format = REF_STORAGE_FORMAT_UNKNOWN,
        \\\n\t.recommend_shallow = -1, \\\n\t.references = STRING_LIST_INIT_DUP, \\\n\t.single_branch
        = -1, \\\n\t.max_jobs = 1, \\\n}"
    - item_type: preproc_def
      name: ADD_DATA_INIT
      pos:
        line_end: 3376
        line_start: 3372
        source_file: /src/git/builtin/submodule--helper.c
      type_or_value: "{ \\\n\t.depth = -1, \\\n\t.ref_storage_format = REF_STORAGE_FORMAT_UNKNOWN,
        \\\n}"
    structs:
    - fields:
      - name: '**entries'
        type: struct cache_entry
      - name: alloc
        type: int
      item_type: struct
      name: module_list
      pos:
        line_end: 213
        line_start: 210
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: argc
        type: int
      - name: '**argv'
        type: char
      - name: '*prefix'
        type: char
      - name: '*super_prefix'
        type: char
      - name: quiet
        type: int
      - name: recursive
        type: int
      item_type: struct
      name: foreach_cb
      pos:
        line_end: 320
        line_start: 313
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: '*prefix'
        type: char
      - name: '*super_prefix'
        type: char
      - name: flags
        type: unsigned int
      item_type: struct
      name: init_cb
      pos:
        line_end: 473
        line_start: 469
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: '*prefix'
        type: char
      - name: '*super_prefix'
        type: char
      - name: flags
        type: unsigned int
      item_type: struct
      name: status_cb
      pos:
        line_end: 712
        line_start: 708
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: mod_src
        type: unsigned int
      - name: mod_dst
        type: unsigned int
      - name: oid_src
        type: struct object_id
      - name: oid_dst
        type: struct object_id
      - name: status
        type: char
      - name: '*sm_path'
        type: char
      item_type: struct
      name: module_cb
      pos:
        line_end: 899
        line_start: 892
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: '**entries'
        type: struct module_cb
      - name: alloc
        type: int
      item_type: struct
      name: module_cb_list
      pos:
        line_end: 910
        line_start: 907
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: argc
        type: int
      - name: '**argv'
        type: char
      - name: '*prefix'
        type: char
      - name: '*super_prefix'
        type: char
      - name: cached
        type: unsigned int
      - name: for_status
        type: unsigned int
      - name: files
        type: unsigned int
      - name: summary_limit
        type: int
      item_type: struct
      name: summary_cb
      pos:
        line_end: 935
        line_start: 926
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: '*prefix'
        type: char
      - name: '*super_prefix'
        type: char
      - name: flags
        type: unsigned int
      item_type: struct
      name: sync_cb
      pos:
        line_end: 1425
        line_start: 1421
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: '*prefix'
        type: char
      - name: flags
        type: unsigned int
      item_type: struct
      name: deinit_cb
      pos:
        line_end: 1574
        line_start: 1571
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: '*prefix'
        type: char
      - name: '*path'
        type: char
      - name: '*name'
        type: char
      - name: '*url'
        type: char
      - name: depth
        type: int
      - name: '*filter_options'
        type: struct list_objects_filter_options
      - name: ref_storage_format
        type: enum ref_storage_format
      - name: quiet
        type: unsigned int
      - name: progress
        type: unsigned int
      - name: dissociate
        type: unsigned int
      - name: require_init
        type: unsigned int
      - name: single_branch
        type: int
      item_type: struct
      name: module_clone_data
      pos:
        line_end: 1740
        line_start: 1727
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: '*submodule_name'
        type: char
      - name: error_mode
        type: "enum SUBMODULE_ALTERNATE_ERROR_MODE {\n\t\tSUBMODULE_ALTERNATE_ERROR_DIE,\n\t\tSUBMODULE_ALTERNATE_ERROR_INFO,\n\t\tSUBMODULE_ALTERNATE_ERROR_IGNORE\n\t}"
      - name: '*reference'
        type: struct string_list
      item_type: struct
      name: submodule_alternate_setup
      pos:
        line_end: 1754
        line_start: 1746
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: '*sub'
        type: struct submodule
      - name: oid
        type: struct object_id
      - name: just_cloned
        type: unsigned
      item_type: struct
      name: update_clone_data
      pos:
        line_end: 2158
        line_start: 2154
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: current
        type: int
      - name: '*update_data'
        type: struct update_data
      - name: '*update_clone'
        type: struct update_clone_data
      - name: update_clone_nr
        type: int
      - name: update_clone_alloc
        type: int
      - name: quickstop
        type: unsigned
      - name: '**failed_clones'
        type: struct cache_entry
      - name: failed_clones_nr
        type: int
      item_type: struct
      name: submodule_update_clone
      pos:
        line_end: 2177
        line_start: 2160
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: '*prefix'
        type: char
      - name: '*super_prefix'
        type: char
      - name: '*displaypath'
        type: char
      - name: update_default
        type: enum submodule_update_type
      - name: suboid
        type: struct object_id
      - name: references
        type: struct string_list
      - name: update_strategy
        type: struct submodule_update_strategy
      - name: '*filter_options'
        type: struct list_objects_filter_options
      - name: list
        type: struct module_list
      - name: ref_storage_format
        type: enum ref_storage_format
      - name: depth
        type: int
      - name: max_jobs
        type: int
      - name: single_branch
        type: int
      - name: recommend_shallow
        type: int
      - name: require_init
        type: unsigned int
      - name: force
        type: unsigned int
      - name: quiet
        type: unsigned int
      - name: nofetch
        type: unsigned int
      - name: remote
        type: unsigned int
      - name: progress
        type: unsigned int
      - name: dissociate
        type: unsigned int
      - name: init
        type: unsigned int
      - name: warn_if_uninitialized
        type: unsigned int
      - name: recursive
        type: unsigned int
      - name: oid
        type: struct object_id
      - name: just_cloned
        type: unsigned int
      - name: '*sm_path'
        type: char
      item_type: struct
      name: update_data
      pos:
        line_end: 2216
        line_start: 2186
        source_file: /src/git/builtin/submodule--helper.c
    - fields:
      - name: '*prefix'
        type: char
      - name: '*branch'
        type: char
      - name: '*reference_path'
        type: char
      - name: '*sm_path'
        type: char
      - name: '*sm_name'
        type: char
      - name: '*repo'
        type: char
      - name: '*realrepo'
        type: char
      - name: ref_storage_format
        type: enum ref_storage_format
      - name: depth
        type: int
      - name: force
        type: unsigned int
      - name: quiet
        type: unsigned int
      - name: progress
        type: unsigned int
      - name: dissociate
        type: unsigned int
      item_type: struct
      name: add_data
      pos:
        line_end: 3371
        line_start: 3357
        source_file: /src/git/builtin/submodule--helper.c
    typedefs:
    - item_type: typedef
      name: "(*each_submodule_fn)(const struct cache_entry *list_item,\n\t\t\t\t  void
        *cb_data)"
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/builtin/submodule--helper.c
      type: void
    union: []
- function_names:
  - comment_lines
  - cmd_stripspace
  source_file: /src/git/builtin/stripspace.c
  types:
    enum:
    - enumerators:
      - name: STRIP_DEFAULT
        value: '0'
      - name: COMMENT_LINES
      - name: STRIP_COMMENTS
      item_type: enum
      name: stripspace_mode
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/git/builtin/stripspace.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - column_config
  - cmd_column
  source_file: /src/git/builtin/column.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - git_worktree_config
  - delete_git_dir
  - delete_worktrees_dir_if_empty
  - prune_worktree
  - prune_cmp
  - prune_dups
  - prune_worktrees
  - prune
  - remove_junk
  - remove_junk_on_signal
  - worktree_basename
  - check_candidate_path
  - copy_sparse_checkout
  - copy_filtered_worktree_config
  - checkout_worktree
  - make_worktree_orphan
  - setup_alternate_ref_dir
  - add_worktree
  - print_preparing_worktree_line
  - first_valid_ref
  - can_use_local_refs
  - can_use_remote_refs
  - dwim_orphan
  - dwim_branch
  - add
  - show_worktree_porcelain
  - show_worktree
  - measure_widths
  - pathcmp
  - pathsort
  - list
  - lock_worktree
  - unlock_worktree
  - validate_no_submodules
  - move_worktree
  - check_clean_worktree
  - delete_git_work_tree
  - remove_worktree
  - report_repair
  - repair
  - cmd_worktree
  source_file: /src/git/builtin/worktree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUILTIN_WORKTREE_ADD_USAGE
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/git/builtin/worktree.c
      type_or_value: "N_(\"git worktree add [-f] [--detach] [--checkout] [--lock [--reason
        <string>]]\\n\" \\\n\t   \"                 [--orphan] [(-b | -B) <new-branch>]
        <path> [<commit-ish>]\")"
    - item_type: preproc_def
      name: BUILTIN_WORKTREE_LIST_USAGE
      pos:
        line_end: 36
        line_start: 34
        source_file: /src/git/builtin/worktree.c
      type_or_value: N_("git worktree list [-v | --porcelain [-z]]")
    - item_type: preproc_def
      name: BUILTIN_WORKTREE_LOCK_USAGE
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/git/builtin/worktree.c
      type_or_value: N_("git worktree lock [--reason <string>] <worktree>")
    - item_type: preproc_def
      name: BUILTIN_WORKTREE_MOVE_USAGE
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/git/builtin/worktree.c
      type_or_value: N_("git worktree move <worktree> <new-path>")
    - item_type: preproc_def
      name: BUILTIN_WORKTREE_PRUNE_USAGE
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/git/builtin/worktree.c
      type_or_value: N_("git worktree prune [-n] [-v] [--expire <expire>]")
    - item_type: preproc_def
      name: BUILTIN_WORKTREE_REMOVE_USAGE
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/git/builtin/worktree.c
      type_or_value: N_("git worktree remove [-f] <worktree>")
    - item_type: preproc_def
      name: BUILTIN_WORKTREE_REPAIR_USAGE
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/git/builtin/worktree.c
      type_or_value: N_("git worktree repair [<path>...]")
    - item_type: preproc_def
      name: BUILTIN_WORKTREE_UNLOCK_USAGE
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/git/builtin/worktree.c
      type_or_value: N_("git worktree unlock <worktree>")
    - item_type: preproc_def
      name: WORKTREE_ADD_DWIM_ORPHAN_INFER_TEXT
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/git/builtin/worktree.c
      type_or_value: _("No possible source branch, inferring '--orphan'")
    - item_type: preproc_def
      name: WORKTREE_ADD_ORPHAN_WITH_DASH_B_HINT_TEXT
      pos:
        line_end: 58
        line_start: 52
        source_file: /src/git/builtin/worktree.c
      type_or_value: "_(\"If you meant to create a worktree containing a new unborn
        branch\\n\" \\\n\t\"(branch with no commits) for this repository, you can
        do so\\n\" \\\n\t\"using the --orphan flag:\\n\" \\\n\t\"\\n\" \\\n\t\"    git
        worktree add --orphan -b %s %s\\n\")"
    - item_type: preproc_def
      name: WORKTREE_ADD_ORPHAN_NO_DASH_B_HINT_TEXT
      pos:
        line_end: 65
        line_start: 59
        source_file: /src/git/builtin/worktree.c
      type_or_value: "_(\"If you meant to create a worktree containing a new unborn
        branch\\n\" \\\n\t\"(branch with no commits) for this repository, you can
        do so\\n\" \\\n\t\"using the --orphan flag:\\n\" \\\n\t\"\\n\" \\\n\t\"    git
        worktree add --orphan %s\\n\")"
    structs:
    - fields:
      - name: force
        type: int
      - name: detach
        type: int
      - name: quiet
        type: int
      - name: checkout
        type: int
      - name: orphan
        type: int
      - name: relative_paths
        type: int
      - name: '*keep_locked'
        type: char
      item_type: struct
      name: add_opts
      pos:
        line_end: 126
        line_start: 118
        source_file: /src/git/builtin/worktree.c
    - fields:
      - name: '*path'
        type: char
      - name: width
        type: int
      item_type: struct
      name: worktree_display
      pos:
        line_end: 998
        line_start: 995
        source_file: /src/git/builtin/worktree.c
    typedefs: []
    union: []
- function_names:
  - describe_object
  - printable_type
  - objerror
  - fsck_objects_error_func
  - mark_object
  - mark_object_reachable
  - traverse_one_object
  - traverse_reachable
  - mark_used
  - mark_unreachable_referents
  - check_reachable_object
  - check_unreachable_object
  - check_object
  - check_connectivity
  - fsck_obj
  - fsck_obj_buffer
  - fsck_handle_reflog_oid
  - fsck_handle_reflog_ent
  - fsck_handle_reflog
  - snapshot_ref
  - fsck_handle_ref
  - snapshot_refs
  - free_snapshot_refs
  - process_refs
  - fsck_loose
  - fsck_cruft
  - fsck_subdir
  - fsck_source
  - fsck_cache_tree
  - fsck_resolve_undo
  - for_each_string_list_item
  - fsck_index
  - mark_object_for_connectivity
  - check_pack_rev_indexes
  - repo_for_each_pack
  - fsck_refs
  - cmd_fsck
  - repo_for_each_pack
  - repo_for_each_pack
  source_file: /src/git/builtin/fsck.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REACHABLE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/builtin/fsck.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: SEEN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/builtin/fsck.c
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: HAS_OBJ
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/builtin/fsck.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: USED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/builtin/fsck.c
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: ERROR_OBJECT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/git/builtin/fsck.c
      type_or_value: '01'
    - item_type: preproc_def
      name: ERROR_REACHABLE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/builtin/fsck.c
      type_or_value: '02'
    - item_type: preproc_def
      name: ERROR_PACK
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/git/builtin/fsck.c
      type_or_value: '04'
    - item_type: preproc_def
      name: ERROR_REFS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/git/builtin/fsck.c
      type_or_value: '010'
    - item_type: preproc_def
      name: ERROR_COMMIT_GRAPH
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/git/builtin/fsck.c
      type_or_value: '020'
    - item_type: preproc_def
      name: ERROR_MULTI_PACK_INDEX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/builtin/fsck.c
      type_or_value: '040'
    - item_type: preproc_def
      name: ERROR_PACK_REV_INDEX
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/git/builtin/fsck.c
      type_or_value: '0100'
    - item_type: preproc_def
      name: ERROR_BITMAP
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/builtin/fsck.c
      type_or_value: '0200'
    structs:
    - fields:
      - name: '*refname'
        type: char
      - name: oid
        type: struct object_id
      item_type: struct
      name: ref_snapshot
      pos:
        line_end: 532
        line_start: 528
        source_file: /src/git/builtin/fsck.c
    - fields:
      - name: nr
        type: size_t
      - name: alloc
        type: size_t
      - name: '*ref'
        type: struct ref_snapshot
      item_type: struct
      name: snapshot
      pos:
        line_end: 539
        line_start: 534
        source_file: /src/git/builtin/fsck.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*snap'
        type: struct snapshot
      item_type: struct
      name: snapshot_ref_data
      pos:
        line_end: 544
        line_start: 541
        source_file: /src/git/builtin/fsck.c
    - fields:
      - name: '*repo'
        type: struct repository
      - name: '*progress'
        type: struct progress
      item_type: struct
      name: for_each_loose_cb
      pos:
        line_end: 718
        line_start: 715
        source_file: /src/git/builtin/fsck.c
    typedefs: []
    union: []
- function_names:
  - tr2_counter_increment
  - tr2_update_final_counters
  - tr2_emit_per_thread_counters
  - tr2_emit_final_counters
  source_file: /src/git/trace2/tr2_ctr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/trace2/tr2_ctr.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: value
        type: uint64_t
      item_type: struct
      name: tr2_counter
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/git/trace2/tr2_ctr.h
    - fields:
      - name: '*category'
        type: char
      - name: '*name'
        type: char
      - name: want_per_thread_events
        type: unsigned int
      item_type: struct
      name: tr2_counter_metadata
      pos:
        line_end: 64
        line_start: 55
        source_file: /src/git/trace2/tr2_ctr.h
    - fields:
      - name: counter[TRACE2_NUMBER_OF_COUNTERS]
        type: struct tr2_counter
      item_type: struct
      name: tr2_counter_block
      pos:
        line_end: 73
        line_start: 71
        source_file: /src/git/trace2/tr2_ctr.h
    typedefs: []
    union: []
- function_names:
  - tr2tls_start_process_clock
  - tr2tls_create_self
  - tr2tls_get_self
  - tr2tls_is_main_thread
  - tr2tls_unset_self
  - tr2tls_push_self
  - tr2tls_pop_self
  - tr2tls_pop_unwind_self
  - tr2tls_region_elasped_self
  - tr2tls_absolute_elapsed
  - tr2tls_key_destructor
  - tr2tls_init
  - tr2tls_release
  - tr2tls_locked_increment
  - tr2tls_lock
  - tr2tls_unlock
  source_file: /src/git/trace2/tr2_tls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TR2_REGION_NESTING_INITIAL_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/trace2/tr2_tls.c
      type_or_value: (100)
    structs: []
    typedefs: []
    union: []
- function_names:
  - tr2_dst_want_warning
  - tr2_dst_trace_disable
  - tr2_dst_too_many_files
  - tr2_dst_try_auto_path
  - tr2_dst_try_path
  - tr2_dst_try_uds_connect
  - tr2_dst_try_unix_domain_socket
  - tr2_dst_malformed_warning
  - tr2_dst_get_trace_fd
  - tr2_dst_trace_want
  - tr2_dst_write_line
  source_file: /src/git/trace2/tr2_dst.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_AUTO_ATTEMPTS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/git/trace2/tr2_dst.c
      type_or_value: '10'
    - item_type: preproc_def
      name: DISCARD_SENTINEL_NAME
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/git/trace2/tr2_dst.c
      type_or_value: '"git-trace2-discard"'
    - item_type: preproc_def
      name: PREFIX_AF_UNIX
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/git/trace2/tr2_dst.c
      type_or_value: '"af_unix:"'
    - item_type: preproc_def
      name: PREFIX_AF_UNIX_STREAM
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/git/trace2/tr2_dst.c
      type_or_value: '"af_unix:stream:"'
    - item_type: preproc_def
      name: PREFIX_AF_UNIX_DGRAM
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/git/trace2/tr2_dst.c
      type_or_value: '"af_unix:dgram:"'
    - item_type: preproc_def
      name: TR2_DST_UDS_TRY_STREAM
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/git/trace2/tr2_dst.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: TR2_DST_UDS_TRY_DGRAM
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/git/trace2/tr2_dst.c
      type_or_value: (1 << 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - NS_TO_SEC
  source_file: /src/git/trace2/tr2_tgt.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pdst'
        type: struct tr2_dst
      - name: '*pfn_init'
        type: tr2_tgt_init_t
      - name: '*pfn_term'
        type: tr2_tgt_term_t
      - name: '*pfn_version_fl'
        type: tr2_tgt_evt_version_fl_t
      - name: '*pfn_start_fl'
        type: tr2_tgt_evt_start_fl_t
      - name: '*pfn_exit_fl'
        type: tr2_tgt_evt_exit_fl_t
      - name: '*pfn_signal'
        type: tr2_tgt_evt_signal_t
      - name: '*pfn_atexit'
        type: tr2_tgt_evt_atexit_t
      - name: '*pfn_error_va_fl'
        type: tr2_tgt_evt_error_va_fl_t
      - name: '*pfn_command_path_fl'
        type: tr2_tgt_evt_command_path_fl_t
      - name: '*pfn_command_ancestry_fl'
        type: tr2_tgt_evt_command_ancestry_fl_t
      - name: '*pfn_command_name_fl'
        type: tr2_tgt_evt_command_name_fl_t
      - name: '*pfn_command_mode_fl'
        type: tr2_tgt_evt_command_mode_fl_t
      - name: '*pfn_alias_fl'
        type: tr2_tgt_evt_alias_fl_t
      - name: '*pfn_child_start_fl'
        type: tr2_tgt_evt_child_start_fl_t
      - name: '*pfn_child_exit_fl'
        type: tr2_tgt_evt_child_exit_fl_t
      - name: '*pfn_child_ready_fl'
        type: tr2_tgt_evt_child_ready_fl_t
      - name: '*pfn_thread_start_fl'
        type: tr2_tgt_evt_thread_start_fl_t
      - name: '*pfn_thread_exit_fl'
        type: tr2_tgt_evt_thread_exit_fl_t
      - name: '*pfn_exec_fl'
        type: tr2_tgt_evt_exec_fl_t
      - name: '*pfn_exec_result_fl'
        type: tr2_tgt_evt_exec_result_fl_t
      - name: '*pfn_param_fl'
        type: tr2_tgt_evt_param_fl_t
      - name: '*pfn_repo_fl'
        type: tr2_tgt_evt_repo_fl_t
      - name: '*pfn_region_enter_printf_va_fl'
        type: tr2_tgt_evt_region_enter_printf_va_fl_t
      - name: '*pfn_region_leave_printf_va_fl'
        type: tr2_tgt_evt_region_leave_printf_va_fl_t
      - name: '*pfn_data_fl'
        type: tr2_tgt_evt_data_fl_t
      - name: '*pfn_data_json_fl'
        type: tr2_tgt_evt_data_json_fl_t
      - name: '*pfn_printf_va_fl'
        type: tr2_tgt_evt_printf_va_fl_t
      - name: '*pfn_timer'
        type: tr2_tgt_evt_timer_t
      - name: '*pfn_counter'
        type: tr2_tgt_evt_counter_t
      item_type: struct
      name: tr2_tgt
      pos:
        line_end: 152
        line_start: 119
        source_file: /src/git/trace2/tr2_tgt.h
    typedefs:
    - item_type: typedef
      name: (tr2_tgt_init_t)(void)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/git/trace2/tr2_tgt.h
      type: int
    - item_type: typedef
      name: (tr2_tgt_term_t)(void)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: (tr2_tgt_evt_version_fl_t)(const char *file, int line)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_start_fl_t)(const char *file, int line,\n\t\t\t\t     uint64_t
        us_elapsed_absolute,\n\t\t\t\t     const char **argv)"
      pos:
        line_end: 24
        line_start: 22
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_exit_fl_t)(const char *file, int line,\n\t\t\t\t    uint64_t
        us_elapsed_absolute, int code)"
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: (tr2_tgt_evt_signal_t)(uint64_t us_elapsed_absolute, int signo)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: (tr2_tgt_evt_atexit_t)(uint64_t us_elapsed_absolute, int code)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_error_va_fl_t)(const char *file, int line,\n\t\t\t\t\tconst
        char *fmt, va_list ap)"
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_command_path_fl_t)(const char *file, int line,\n\t\t\t\t\t
        \   const char *command_path)"
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_command_ancestry_fl_t)(const char *file, int line,\n\t\t\t\t\t\tconst
        char **parent_names)"
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_command_name_fl_t)(const char *file, int line,\n\t\t\t\t\t
        \   const char *name,\n\t\t\t\t\t    const char *hierarchy)"
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_command_mode_fl_t)(const char *file, int line,\n\t\t\t\t\t
        \   const char *mode)"
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_alias_fl_t)(const char *file, int line,\n\t\t\t\t     const
        char *alias, const char **argv)"
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_child_start_fl_t)(const char *file, int line,\n\t\t\t\t\t
        \  uint64_t us_elapsed_absolute,\n\t\t\t\t\t   const struct child_process
        *cmd)"
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_child_exit_fl_t)(const char *file, int line,\n\t\t\t\t\t
        \ uint64_t us_elapsed_absolute, int cid,\n\t\t\t\t\t  int pid, int code,\n\t\t\t\t\t
        \ uint64_t us_elapsed_child)"
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_child_ready_fl_t)(const char *file, int line,\n\t\t\t\t\t
        \  uint64_t us_elapsed_absolute,\n\t\t\t\t\t   int cid, int pid, const char
        *ready,\n\t\t\t\t\t   uint64_t us_elapsed_child)"
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_thread_start_fl_t)(const char *file, int line,\n\t\t\t\t\t
        \   uint64_t us_elapsed_absolute)"
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_thread_exit_fl_t)(const char *file, int line,\n\t\t\t\t\t
        \  uint64_t us_elapsed_absolute,\n\t\t\t\t\t   uint64_t us_elapsed_thread)"
      pos:
        line_end: 62
        line_start: 60
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_exec_fl_t)(const char *file, int line,\n\t\t\t\t    uint64_t
        us_elapsed_absolute, int exec_id,\n\t\t\t\t    const char *exe, const char
        **argv)"
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_exec_result_fl_t)(const char *file, int line,\n\t\t\t\t\t
        \  uint64_t us_elapsed_absolute,\n\t\t\t\t\t   int exec_id, int code)"
      pos:
        line_end: 69
        line_start: 67
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_param_fl_t)(const char *file, int line,\n\t\t\t\t     const
        char *param, const char *value,\n\t\t\t\t     const struct key_value_info
        *kvi)"
      pos:
        line_end: 74
        line_start: 72
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_repo_fl_t)(const char *file, int line,\n\t\t\t\t    const
        struct repository *repo)"
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_region_enter_printf_va_fl_t)(\n\tconst char *file, int line,
        uint64_t us_elapsed_absolute,\n\tconst char *category, const char *label,
        const struct repository *repo,\n\tconst char *fmt, va_list ap)"
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_region_leave_printf_va_fl_t)(\n\tconst char *file, int line,
        uint64_t us_elapsed_absolute,\n\tuint64_t us_elapsed_region, const char *category,
        const char *label,\n\tconst struct repository *repo, const char *fmt, va_list
        ap)"
      pos:
        line_end: 86
        line_start: 83
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_data_fl_t)(const char *file, int line,\n\t\t\t\t    uint64_t
        us_elapsed_absolute,\n\t\t\t\t    uint64_t us_elapsed_region,\n\t\t\t\t    const
        char *category,\n\t\t\t\t    const struct repository *repo,\n\t\t\t\t    const
        char *key, const char *value)"
      pos:
        line_end: 93
        line_start: 88
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_data_json_fl_t)(const char *file, int line,\n\t\t\t\t\t
        uint64_t us_elapsed_absolute,\n\t\t\t\t\t uint64_t us_elapsed_region,\n\t\t\t\t\t
        const char *category,\n\t\t\t\t\t const struct repository *repo,\n\t\t\t\t\t
        const char *key,\n\t\t\t\t\t const struct json_writer *value)"
      pos:
        line_end: 100
        line_start: 94
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_printf_va_fl_t)(const char *file, int line,\n\t\t\t\t\t
        uint64_t us_elapsed_absolute,\n\t\t\t\t\t const char *fmt, va_list ap)"
      pos:
        line_end: 104
        line_start: 102
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_timer_t)(const struct tr2_timer_metadata *meta,\n\t\t\t\t
        \ const struct tr2_timer *timer,\n\t\t\t\t  int is_final_data)"
      pos:
        line_end: 108
        line_start: 106
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    - item_type: typedef
      name: "(tr2_tgt_evt_counter_t)(const struct tr2_counter_metadata *meta,\n\t\t\t\t
        \   const struct tr2_counter *counter,\n\t\t\t\t    int is_final_data)"
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/git/trace2/tr2_tgt.h
      type: void
    union: []
- function_names: []
  source_file: /src/git/trace2/tr2_tmr.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: total_ns
        type: uint64_t
      - name: min_ns
        type: uint64_t
      - name: max_ns
        type: uint64_t
      - name: start_ns
        type: uint64_t
      - name: interval_count
        type: uint64_t
      - name: recursion_count
        type: unsigned int
      item_type: struct
      name: tr2_timer
      pos:
        line_end: 85
        line_start: 53
        source_file: /src/git/trace2/tr2_tmr.h
    - fields:
      - name: '*category'
        type: char
      - name: '*name'
        type: char
      - name: want_per_thread_events
        type: unsigned int
      item_type: struct
      name: tr2_timer_metadata
      pos:
        line_end: 99
        line_start: 90
        source_file: /src/git/trace2/tr2_tmr.h
    - fields:
      - name: timer[TRACE2_NUMBER_OF_TIMERS]
        type: struct tr2_timer
      item_type: struct
      name: tr2_timer_block
      pos:
        line_end: 108
        line_start: 106
        source_file: /src/git/trace2/tr2_tmr.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/trace2/tr2_dst.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sysenv_var
        type: enum tr2_sysenv_variable
      - name: fd
        type: int
      - name: initialized
        type: unsigned int
      - name: need_close
        type: unsigned int
      - name: too_many_files
        type: unsigned int
      item_type: struct
      name: tr2_dst
      pos:
        line_end: 12
        line_start: 6
        source_file: /src/git/trace2/tr2_dst.h
    typedefs: []
    union: []
- function_names:
  - fn_init
  - fn_term
  - normal_fmt_prepare
  - normal_io_write_fl
  - fn_version_fl
  - fn_start_fl
  - fn_exit_fl
  - fn_signal
  - fn_atexit
  - maybe_append_string_va
  - fn_error_va_fl
  - fn_command_path_fl
  - fn_command_ancestry_fl
  - fn_command_name_fl
  - fn_command_mode_fl
  - fn_alias_fl
  - fn_child_start_fl
  - fn_child_exit_fl
  - fn_child_ready_fl
  - fn_exec_fl
  - fn_exec_result_fl
  - fn_param_fl
  - fn_repo_fl
  - fn_printf_va_fl
  - fn_timer
  - fn_counter
  source_file: /src/git/trace2/tr2_tgt_normal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TR2FMT_NORMAL_FL_WIDTH
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/trace2/tr2_tgt_normal.c
      type_or_value: (50)
    structs: []
    typedefs: []
    union: []
- function_names:
  - fn_init
  - fn_term
  - event_fmt_prepare
  - fn_too_many_files_fl
  - fn_version_fl
  - fn_start_fl
  - fn_exit_fl
  - fn_signal
  - fn_atexit
  - maybe_add_string_va
  - fn_error_va_fl
  - fn_command_path_fl
  - fn_command_ancestry_fl
  - fn_command_name_fl
  - fn_command_mode_fl
  - fn_alias_fl
  - fn_child_start_fl
  - fn_child_exit_fl
  - fn_child_ready_fl
  - fn_thread_start_fl
  - fn_thread_exit_fl
  - fn_exec_fl
  - fn_exec_result_fl
  - fn_param_fl
  - fn_repo_fl
  - fn_region_enter_printf_va_fl
  - fn_region_leave_printf_va_fl
  - fn_data_fl
  - fn_data_json_fl
  - fn_printf_va_fl
  - fn_timer
  - fn_counter
  source_file: /src/git/trace2/tr2_tgt_event.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TR2_EVENT_VERSION
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/trace2/tr2_tgt_event.c
      type_or_value: '"4"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tr2_sid_append_my_sid_component
  - tr2_sid_compute
  - tr2_sid_get
  - tr2_sid_depth
  - tr2_sid_release
  source_file: /src/git/trace2/tr2_sid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TR2_ENVVAR_PARENT_SID
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/trace2/tr2_sid.c
      type_or_value: '"GIT_TRACE2_PARENT_SID"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/trace2/tr2_cmd_name.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tr2_cfg_load_patterns
  - tr2_cfg_free_patterns
  - tr2_load_env_vars
  - tr2_cfg_free_env_vars
  - tr2_cfg_cb
  - tr2_cfg_list_config_fl
  - tr2_list_env_vars_fl
  - tr2_cfg_set_fl
  source_file: /src/git/trace2/tr2_cfg.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*file'
        type: char
      - name: line
        type: int
      item_type: struct
      name: tr2_cfg_data
      pos:
        line_end: 75
        line_start: 72
        source_file: /src/git/trace2/tr2_cfg.c
    typedefs: []
    union: []
- function_names:
  - MY_MAX
  - MY_MIN
  - tr2_start_timer
  - tr2_stop_timer
  - tr2_update_final_timers
  - tr2_emit_per_thread_timers
  - tr2_emit_final_timers
  source_file: /src/git/trace2/tr2_tmr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/trace2/tr2_cfg.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TR2_INDENT_LENGTH
  - fn_init
  - fn_term
  - perf_fmt_prepare
  - perf_io_write_fl
  - fn_version_fl
  - fn_start_fl
  - fn_exit_fl
  - fn_signal
  - fn_atexit
  - maybe_append_string_va
  - fn_error_va_fl
  - fn_command_path_fl
  - fn_command_ancestry_fl
  - fn_command_name_fl
  - fn_command_mode_fl
  - fn_alias_fl
  - fn_child_start_fl
  - fn_child_exit_fl
  - fn_child_ready_fl
  - fn_thread_start_fl
  - fn_thread_exit_fl
  - fn_exec_fl
  - fn_exec_result_fl
  - fn_param_fl
  - fn_repo_fl
  - fn_region_enter_printf_va_fl
  - fn_region_leave_printf_va_fl
  - fn_data_fl
  - fn_data_json_fl
  - fn_printf_va_fl
  - fn_timer
  - fn_counter
  source_file: /src/git/trace2/tr2_tgt_perf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TR2FMT_PERF_FL_WIDTH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/trace2/tr2_tgt_perf.c
      type_or_value: (28)
    - item_type: preproc_def
      name: TR2FMT_PERF_MAX_EVENT_NAME
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/git/trace2/tr2_tgt_perf.c
      type_or_value: (12)
    - item_type: preproc_def
      name: TR2FMT_PERF_REPO_WIDTH
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/trace2/tr2_tgt_perf.c
      type_or_value: (3)
    - item_type: preproc_def
      name: TR2FMT_PERF_CATEGORY_WIDTH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/trace2/tr2_tgt_perf.c
      type_or_value: (12)
    - item_type: preproc_def
      name: TR2_INDENT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/trace2/tr2_tgt_perf.c
      type_or_value: (2)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/trace2/tr2_sysenv.h
  types:
    enum:
    - enumerators:
      - name: TR2_SYSENV_CFG_PARAM
        value: '0'
      - name: TR2_SYSENV_ENV_VARS
      - name: TR2_SYSENV_DST_DEBUG
      - name: TR2_SYSENV_NORMAL
      - name: TR2_SYSENV_NORMAL_BRIEF
      - name: TR2_SYSENV_EVENT
      - name: TR2_SYSENV_EVENT_BRIEF
      - name: TR2_SYSENV_EVENT_NESTING
      - name: TR2_SYSENV_PERF
      - name: TR2_SYSENV_PERF_BRIEF
      - name: TR2_SYSENV_MUST_BE_LAST
      - name: TR2_SYSENV_MAX_FILES
      item_type: enum
      name: tr2_sysenv_variable
      pos:
        line_end: 30
        line_start: 11
        source_file: /src/git/trace2/tr2_sysenv.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/trace2/tr2_tbuf.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: buf[32]
        type: char
      item_type: struct
      name: tr2_tbuf
      pos:
        line_end: 10
        line_start: 8
        source_file: /src/git/trace2/tr2_tbuf.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/trace2/tr2_tls.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TR2_MAX_THREAD_NAME
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/git/trace2/tr2_tls.h
      type_or_value: (24)
    structs:
    - fields:
      - name: '*thread_name'
        type: char
      - name: '*array_us_start'
        type: uint64_t
      - name: alloc
        type: size_t
      - name: nr_open_regions
        type: size_t
      - name: thread_id
        type: int
      - name: timer_block
        type: struct tr2_timer_block
      - name: counter_block
        type: struct tr2_counter_block
      - name: used_any_timer
        type: unsigned int
      - name: used_any_per_thread_timer
        type: unsigned int
      - name: used_any_counter
        type: unsigned int
      - name: used_any_per_thread_counter
        type: unsigned int
      item_type: struct
      name: tr2tls_thread_ctx
      pos:
        line_end: 29
        line_start: 17
        source_file: /src/git/trace2/tr2_tls.h
    typedefs: []
    union: []
- function_names:
  - tr2_tbuf_local_time
  - tr2_tbuf_utc_datetime_extended
  - tr2_tbuf_utc_datetime
  source_file: /src/git/trace2/tr2_tbuf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tr2_sysenv_cb
  - tr2_sysenv_load
  - tr2_sysenv_get
  - tr2_sysenv_display_name
  - tr2_sysenv_release
  source_file: /src/git/trace2/tr2_sysenv.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*env_var_name'
        type: char
      - name: '*git_config_name'
        type: char
      - name: '*value'
        type: char
      - name: getenv_called
        type: unsigned int
      item_type: struct
      name: tr2_sysenv_entry
      pos:
        line_end: 17
        line_start: 11
        source_file: /src/git/trace2/tr2_sysenv.c
    typedefs: []
    union: []
- function_names:
  - tr2_cmd_name_append_hierarchy
  - tr2_cmd_name_get_hierarchy
  - tr2_cmd_name_release
  source_file: /src/git/trace2/tr2_cmd_name.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TR2_ENVVAR_PARENT_NAME
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/trace2/tr2_cmd_name.c
      type_or_value: '"GIT_TRACE2_PARENT_NAME"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/trace2/tr2_sid.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - openssl_SHA256_Init
  - openssl_SHA256_Update
  - openssl_SHA256_Final
  - openssl_SHA256_Clone
  source_file: /src/git/sha256/openssl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: platform_SHA256_CTX
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/sha256/openssl.h
      type_or_value: openssl_SHA256_CTX
    - item_type: preproc_def
      name: platform_SHA256_Init
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/git/sha256/openssl.h
      type_or_value: openssl_SHA256_Init
    - item_type: preproc_def
      name: platform_SHA256_Clone
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/git/sha256/openssl.h
      type_or_value: openssl_SHA256_Clone
    - item_type: preproc_def
      name: platform_SHA256_Update
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/sha256/openssl.h
      type_or_value: openssl_SHA256_Update
    - item_type: preproc_def
      name: platform_SHA256_Final
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/sha256/openssl.h
      type_or_value: openssl_SHA256_Final
    structs:
    - fields:
      - name: '*ectx'
        type: EVP_MD_CTX
      item_type: struct
      name: openssl_SHA256_CTX
      pos:
        line_end: 7
        line_start: 5
        source_file: /src/git/sha256/openssl.h
    typedefs:
    - item_type: typedef
      name: openssl_SHA256_CTX
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/git/sha256/openssl.h
      type: openssl_SHA256_CTX
    union: []
- function_names:
  - nettle_SHA256_Init
  - nettle_SHA256_Update
  - nettle_SHA256_Final
  source_file: /src/git/sha256/nettle.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: platform_SHA256_CTX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/git/sha256/nettle.h
      type_or_value: nettle_SHA256_CTX
    - item_type: preproc_def
      name: platform_SHA256_Init
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/sha256/nettle.h
      type_or_value: nettle_SHA256_Init
    - item_type: preproc_def
      name: platform_SHA256_Update
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/sha256/nettle.h
      type_or_value: nettle_SHA256_Update
    - item_type: preproc_def
      name: platform_SHA256_Final
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/git/sha256/nettle.h
      type_or_value: nettle_SHA256_Final
    structs: []
    typedefs:
    - item_type: typedef
      name: nettle_SHA256_CTX
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/git/sha256/nettle.h
      type: sha256_ctx
    union: []
- function_names:
  - gcrypt_SHA256_Init
  - gcrypt_SHA256_Update
  - gcrypt_SHA256_Final
  - gcrypt_SHA256_Clone
  source_file: /src/git/sha256/gcrypt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA256_DIGEST_SIZE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/git/sha256/gcrypt.h
      type_or_value: '32'
    - item_type: preproc_def
      name: platform_SHA256_CTX
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/sha256/gcrypt.h
      type_or_value: gcrypt_SHA256_CTX
    - item_type: preproc_def
      name: platform_SHA256_Init
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/git/sha256/gcrypt.h
      type_or_value: gcrypt_SHA256_Init
    - item_type: preproc_def
      name: platform_SHA256_Clone
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/git/sha256/gcrypt.h
      type_or_value: gcrypt_SHA256_Clone
    - item_type: preproc_def
      name: platform_SHA256_Update
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/sha256/gcrypt.h
      type_or_value: gcrypt_SHA256_Update
    - item_type: preproc_def
      name: platform_SHA256_Final
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/git/sha256/gcrypt.h
      type_or_value: gcrypt_SHA256_Final
    structs: []
    typedefs:
    - item_type: typedef
      name: gcrypt_SHA256_CTX
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/git/sha256/gcrypt.h
      type: gcry_md_hd_t
    union: []
- function_names: []
  source_file: /src/git/sha256/block/sha256.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: blk_SHA256_BLKSIZE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/git/sha256/block/sha256.h
      type_or_value: '64'
    - item_type: preproc_def
      name: platform_SHA256_CTX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/git/sha256/block/sha256.h
      type_or_value: blk_SHA256_CTX
    - item_type: preproc_def
      name: platform_SHA256_Init
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/git/sha256/block/sha256.h
      type_or_value: blk_SHA256_Init
    - item_type: preproc_def
      name: platform_SHA256_Update
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/git/sha256/block/sha256.h
      type_or_value: blk_SHA256_Update
    - item_type: preproc_def
      name: platform_SHA256_Final
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/git/sha256/block/sha256.h
      type_or_value: blk_SHA256_Final
    structs:
    - fields:
      - name: state[8]
        type: uint32_t
      - name: size
        type: uint64_t
      - name: offset
        type: uint32_t
      - name: buf[blk_SHA256_BLKSIZE]
        type: uint8_t
      item_type: struct
      name: blk_SHA256_CTX
      pos:
        line_end: 10
        line_start: 5
        source_file: /src/git/sha256/block/sha256.h
    typedefs:
    - item_type: typedef
      name: blk_SHA256_CTX
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/git/sha256/block/sha256.h
      type: blk_SHA256_CTX
    union: []
- function_names:
  - blk_SHA256_Init
  - ror
  - ch
  - maj
  - sigma0
  - sigma1
  - gamma0
  - gamma1
  - blk_SHA256_Transform
  - RND
  - blk_SHA256_Update
  - blk_SHA256_Final
  source_file: /src/git/sha256/block/sha256.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLKSIZE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/git/sha256/block/sha256.c
      type_or_value: blk_SHA256_BLKSIZE
    structs: []
    typedefs: []
    union: []
- function_names:
  - make_label
  - make_attr_list
  - keyring_get
  - keyring_store
  - keyring_erase
  - credential_init
  - credential_clear
  - credential_read
  - credential_write_item
  - credential_write
  - usage
  - main
  source_file: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CREDENTIAL_INIT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
      type_or_value: '{ 0 }'
    - item_type: preproc_def
      name: CREDENTIAL_OP_END
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
      type_or_value: '{ NULL, NULL }'
    structs:
    - fields:
      - name: '*protocol'
        type: char
      - name: '*host'
        type: char
      - name: port
        type: unsigned short
      - name: '*path'
        type: char
      - name: '*username'
        type: char
      - name: '*password'
        type: char
      - name: '*password_expiry_utc'
        type: char
      - name: '*oauth_refresh_token'
        type: char
      item_type: struct
      name: credential
      pos:
        line_end: 43
        line_start: 34
        source_file: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    - fields:
      - name: '*name'
        type: char
      - name: op
        type: credential_op_cb
      item_type: struct
      name: credential_operation
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
    typedefs:
    - item_type: typedef
      name: (*credential_op_cb)(struct credential *)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/git/contrib/credential/libsecret/git-credential-libsecret.c
      type: int
    union: []
- function_names:
  - clear_credential
  - STRING_WITH_LENGTH
  - create_dictionary
  - CREATE_SEC_ATTRIBUTES
  - write_item
  - write_item_strbuf
  - write_item_strbuf_cfstring
  - write_item_strbuf_cfnumber
  - write_item_strbuf_cfdata
  - encode_state_seen
  - find_username_in_item
  - find_internet_password
  - delete_ref
  - delete_internet_password
  - add_internet_password
  - read_credential
  - main
  source_file: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENCODING
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/git/contrib/credential/osxkeychain/git-credential-osxkeychain.c
      type_or_value: kCFStringEncodingUTF8
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - die
  - xmalloc
  - target_append
  - write_item
  - wcsstr_last
  - match_part_with_last
  - match_part
  - match_part_last
  - match_cred_password
  - match_cred
  - get_credential
  - store_credential
  - erase_credential
  - utf8_to_utf16_dup
  - read_credential
  - main
  source_file: /src/git/contrib/credential/wincred/git-credential-wincred.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KB
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/git/contrib/credential/wincred/git-credential-wincred.c
      type_or_value: (1024)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/contrib/libgit-sys/public_symbol_export.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libgit_configset_alloc
  - libgit_configset_free
  - libgit_configset_add_file
  - libgit_configset_get_int
  - libgit_configset_get_string
  - libgit_user_agent
  - libgit_user_agent_sanitized
  source_file: /src/git/contrib/libgit-sys/public_symbol_export.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cs
        type: struct config_set
      item_type: struct
      name: libgit_config_set
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/git/contrib/libgit-sys/public_symbol_export.c
    typedefs: []
    union: []
- function_names:
  - ewah_bit_popcount64
  - ewah_bit_ctz64
  - ewah_bit_ctz64
  source_file: /src/git/ewah/ewok.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BITS_IN_EWORD
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/ewah/ewok.h
      type_or_value: (sizeof(eword_t) * 8)
    structs:
    - fields:
      - name: '*buffer'
        type: eword_t
      - name: buffer_size
        type: size_t
      - name: alloc_size
        type: size_t
      - name: bit_size
        type: size_t
      - name: '*rlw'
        type: eword_t
      item_type: struct
      name: ewah_bitmap
      pos:
        line_end: 62
        line_start: 56
        source_file: /src/git/ewah/ewok.h
    - fields:
      - name: '*buffer'
        type: eword_t
      - name: buffer_size
        type: size_t
      - name: pointer
        type: size_t
      - name: compressed
        type: eword_t
      - name: rl
        type: eword_t
      - name: b
        type: int
      item_type: struct
      name: ewah_iterator
      pos:
        line_end: 124
        line_start: 116
        source_file: /src/git/ewah/ewok.h
    - fields:
      - name: '*its'
        type: struct ewah_iterator
      - name: nr
        type: size_t
      item_type: struct
      name: ewah_or_iterator
      pos:
        line_end: 153
        line_start: 150
        source_file: /src/git/ewah/ewok.h
    - fields:
      - name: '*words'
        type: eword_t
      - name: word_alloc
        type: size_t
      item_type: struct
      name: bitmap
      pos:
        line_end: 183
        line_start: 180
        source_file: /src/git/ewah/ewok.h
    typedefs:
    - item_type: typedef
      name: eword_t
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/git/ewah/ewok.h
      type: uint64_t
    - item_type: typedef
      name: (*ewah_callback)(size_t pos, void *)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/git/ewah/ewok.h
      type: void
    union: []
- function_names:
  - ewah_serialize_to
  - write_strbuf
  - ewah_serialize_strbuf
  - ewah_read_mmap
  source_file: /src/git/ewah/ewah_io.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rlw_get_run_bit
  - rlw_set_run_bit
  - rlw_xor_run_bit
  - rlw_set_running_len
  - rlw_get_running_len
  - rlw_get_literal_words
  - rlw_set_literal_words
  - rlw_size
  - rlwit_word_size
  - rlwit_literal_words
  source_file: /src/git/ewah/ewok_rlw.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RLW_RUNNING_BITS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/git/ewah/ewok_rlw.h
      type_or_value: (sizeof(eword_t) * 4)
    - item_type: preproc_def
      name: RLW_LITERAL_BITS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/git/ewah/ewok_rlw.h
      type_or_value: (sizeof(eword_t) * 8 - 1 - RLW_RUNNING_BITS)
    - item_type: preproc_def
      name: RLW_LARGEST_RUNNING_COUNT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/ewah/ewok_rlw.h
      type_or_value: (((eword_t)1 << RLW_RUNNING_BITS) - 1)
    - item_type: preproc_def
      name: RLW_LARGEST_LITERAL_COUNT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/git/ewah/ewok_rlw.h
      type_or_value: (((eword_t)1 << RLW_LITERAL_BITS) - 1)
    - item_type: preproc_def
      name: RLW_LARGEST_RUNNING_COUNT_SHIFT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/git/ewah/ewok_rlw.h
      type_or_value: (RLW_LARGEST_RUNNING_COUNT << 1)
    - item_type: preproc_def
      name: RLW_RUNNING_LEN_PLUS_BIT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/git/ewah/ewok_rlw.h
      type_or_value: (((eword_t)1 << (RLW_RUNNING_BITS + 1)) - 1)
    structs:
    - fields:
      - name: '*buffer'
        type: eword_t
      - name: size
        type: size_t
      - name: pointer
        type: size_t
      - name: literal_word_start
        type: size_t
      - name: rlw
        type: "struct {\n\t\tconst eword_t *word;\n\t\tint literal_words;\n\t\tint
          running_len;\n\t\tint literal_word_offset;\n\t\tint running_bit;\n\t}"
      item_type: struct
      name: rlw_iterator
      pos:
        line_end: 96
        line_start: 83
        source_file: /src/git/ewah/ewok_rlw.h
    typedefs: []
    union: []
- function_names:
  - EWAH_MASK
  - EWAH_BLOCK
  - bitmap_word_alloc
  - bitmap_new
  - bitmap_dup
  - bitmap_grow
  - bitmap_set
  - bitmap_unset
  - bitmap_get
  - bitmap_to_ewah
  - ewah_to_bitmap
  - bitmap_and_not
  - bitmap_or
  - ewah_bitmap_is_subset
  - bitmap_or_ewah
  - bitmap_popcount
  - ewah_bitmap_popcount
  - bitmap_is_empty
  - bitmap_equals
  - bitmap_equals_ewah
  - bitmap_is_subset
  - bitmap_free
  source_file: /src/git/ewah/bitmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - next_word
  - rlwit_init
  - rlwit_discard_first_words
  - rlwit_discharge
  source_file: /src/git/ewah/ewah_rlw.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - min_size
  - max_size
  - buffer_grow
  - buffer_push
  - buffer_push_rlw
  - add_empty_words
  - ewah_add_empty_words
  - add_literal
  - ewah_add_dirty_words
  - add_empty_word
  - ewah_add
  - ewah_set
  - ewah_each_bit
  - ewah_clear
  - ewah_new
  - ewah_free
  - read_new_rlw
  - ewah_iterator_next
  - ewah_iterator_init
  - ewah_or_iterator_init
  - ewah_or_iterator_next
  - ewah_or_iterator_release
  - ewah_xor
  - ewah_pool_new
  - ewah_pool_free
  - ewah_checksum
  source_file: /src/git/ewah/ewah_bitmap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BITMAP_POOL_MAX
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/git/ewah/ewah_bitmap.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/compiler-tricks/not-constant.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ref_iterator_advance
  - ref_iterator_seek
  - ref_iterator_free
  - base_ref_iterator_init
  - empty_ref_iterator_advance
  - empty_ref_iterator_seek
  - empty_ref_iterator_release
  - empty_ref_iterator_begin
  - is_empty_ref_iterator
  - ref_iterator_select
  - merge_ref_iterator_advance
  - merge_ref_iterator_seek
  - merge_ref_iterator_release
  - merge_ref_iterator_begin
  - overlay_iterator_select
  - overlay_ref_iterator_begin
  - compare_prefix
  - prefix_ref_iterator_advance
  - prefix_ref_iterator_seek
  - prefix_ref_iterator_release
  - prefix_ref_iterator_begin
  - do_for_each_ref_iterator
  source_file: /src/git/refs/iterator.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base
        type: struct ref_iterator
      item_type: struct
      name: empty_ref_iterator
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/git/refs/iterator.c
    - fields:
      - name: base
        type: struct ref_iterator
      - name: '*iter0'
        type: struct ref_iterator
      - name: '*iter1'
        type: struct ref_iterator
      - name: '*select'
        type: ref_iterator_select_fn
      - name: '*cb_data'
        type: void
      - name: '**current'
        type: struct ref_iterator
      item_type: struct
      name: merge_ref_iterator
      pos:
        line_end: 94
        line_start: 80
        source_file: /src/git/refs/iterator.c
    - fields:
      - name: base
        type: struct ref_iterator
      - name: '*iter0'
        type: struct ref_iterator
      - name: '*prefix'
        type: char
      - name: trim
        type: int
      item_type: struct
      name: prefix_ref_iterator
      pos:
        line_end: 318
        line_start: 312
        source_file: /src/git/refs/iterator.c
    typedefs: []
    union: []
- function_names:
  - add_entry_to_dir
  - get_ref_dir
  - create_ref_entry
  - create_ref_cache
  - free_ref_entry
  - free_ref_cache
  - clear_ref_dir
  - create_dir_entry
  - ref_entry_cmp
  - ref_entry_cmp_sslice
  - search_ref_dir
  - search_for_subdir
  - find_containing_dir
  - is_dup_ref
  - sort_ref_dir
  - overlaps_prefix
  - prime_ref_dir
  - cache_ref_iterator_advance
  - cache_ref_iterator_set_prefix
  - cache_ref_iterator_seek
  - cache_ref_iterator_release
  - cache_ref_iterator_begin
  source_file: /src/git/refs/ref-cache.c
  types:
    enum:
    - enumerators:
      - name: PREFIX_CONTAINS_DIR
      - name: PREFIX_WITHIN_DIR
      - name: PREFIX_EXCLUDES_DIR
      item_type: enum
      name: prefix_state
      pos:
        line_end: 257
        line_start: 248
        source_file: /src/git/refs/ref-cache.c
    preproc_defs: []
    structs:
    - fields:
      - name: len
        type: size_t
      - name: '*str'
        type: char
      item_type: struct
      name: string_slice
      pos:
        line_end: 119
        line_start: 116
        source_file: /src/git/refs/ref-cache.c
    - fields:
      - name: '*dir'
        type: struct ref_dir
      - name: prefix_state
        type: enum prefix_state
      - name: index
        type: int
      item_type: struct
      name: cache_ref_iterator_level
      pos:
        line_end: 340
        line_start: 324
        source_file: /src/git/refs/ref-cache.c
    - fields:
      - name: base
        type: struct ref_iterator
      - name: levels_nr
        type: size_t
      - name: levels_alloc
        type: size_t
      - name: '*prefix'
        type: char
      - name: '*levels'
        type: struct cache_ref_iterator_level
      - name: '*repo'
        type: struct repository
      - name: '*cache'
        type: struct ref_cache
      - name: prime_dir
        type: int
      item_type: struct
      name: cache_ref_iterator
      pos:
        line_end: 378
        line_start: 346
        source_file: /src/git/refs/ref-cache.c
    typedefs: []
    union: []
- function_names:
  - maybe_debug_wrap_ref_store
  - debug_release
  - debug_create_on_disk
  - debug_remove_on_disk
  - debug_transaction_prepare
  - print_update
  - print_transaction
  - debug_transaction_finish
  - debug_transaction_abort
  - debug_optimize
  - debug_optimize_required
  - debug_rename_ref
  - debug_copy_ref
  - debug_ref_iterator_advance
  - debug_ref_iterator_seek
  - debug_ref_iterator_release
  - debug_ref_iterator_begin
  - debug_read_raw_ref
  - debug_read_symbolic_ref
  - debug_reflog_iterator_begin
  - debug_print_reflog_ent
  - debug_for_each_reflog_ent
  - debug_for_each_reflog_ent_reverse
  - debug_reflog_exists
  - debug_create_reflog
  - debug_delete_reflog
  - debug_reflog_expiry_prepare
  - debug_reflog_expiry_should_prune_fn
  - debug_reflog_expiry_cleanup
  - debug_reflog_expire
  - debug_fsck
  source_file: /src/git/refs/debug.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base
        type: struct ref_store
      - name: '*refs'
        type: struct ref_store
      item_type: struct
      name: debug_ref_store
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/git/refs/debug.c
    - fields:
      - name: base
        type: struct ref_iterator
      - name: '*iter'
        type: struct ref_iterator
      item_type: struct
      name: debug_ref_iterator
      pos:
        line_end: 170
        line_start: 167
        source_file: /src/git/refs/debug.c
    - fields:
      - name: '*refname'
        type: char
      - name: '*fn'
        type: each_reflog_ent_fn
      - name: '*cb_data'
        type: void
      item_type: struct
      name: debug_reflog
      pos:
        line_end: 282
        line_start: 278
        source_file: /src/git/refs/debug.c
    - fields:
      - name: '*prepare'
        type: reflog_expiry_prepare_fn
      - name: '*should_prune'
        type: reflog_expiry_should_prune_fn
      - name: '*cleanup'
        type: reflog_expiry_cleanup_fn
      - name: '*cb_data'
        type: void
      item_type: struct
      name: debug_reflog_expiry_should_prune
      pos:
        line_end: 373
        line_start: 368
        source_file: /src/git/refs/debug.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/refs/ref-cache.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REF_DIR
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/git/refs/ref-cache.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: REF_INCOMPLETE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/git/refs/ref-cache.h
      type_or_value: '0x20'
    structs:
    - fields:
      - name: '*root'
        type: struct ref_entry
      - name: '*ref_store'
        type: struct ref_store
      - name: '*fill_ref_dir'
        type: fill_ref_dir_fn
      item_type: struct
      name: ref_cache
      pos:
        line_end: 28
        line_start: 17
        source_file: /src/git/refs/ref-cache.h
    - fields:
      - name: oid
        type: struct object_id
      - name: '*referent'
        type: char
      item_type: struct
      name: ref_value
      pos:
        line_end: 45
        line_start: 36
        source_file: /src/git/refs/ref-cache.h
    - fields:
      - name: nr
        type: int
      - name: sorted
        type: int
      - name: '*cache'
        type: struct ref_cache
      - name: '**entries'
        type: struct ref_entry
      item_type: struct
      name: ref_dir
      pos:
        line_end: 88
        line_start: 73
        source_file: /src/git/refs/ref-cache.h
    - fields:
      - name: flag
        type: unsigned char
      - name: u
        type: "union {\n\t\tstruct ref_value value; /* if not (flags&REF_DIR) */\n\t\tstruct
          ref_dir subdir; /* if (flags&REF_DIR) */\n\t}"
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: ref_entry
      pos:
        line_end: 156
        line_start: 144
        source_file: /src/git/refs/ref-cache.h
    typedefs:
    - item_type: typedef
      name: "fill_ref_dir_fn(struct ref_store *ref_store,\n\t\t\t     struct ref_dir
        *dir, const char *dirname)"
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/git/refs/ref-cache.h
      type: void
    union: []
- function_names: []
  source_file: /src/git/refs/refs-internal.h
  types:
    enum:
    - enumerators:
      - name: REF_TRANSACTION_OPEN
        value: '0'
      - name: REF_TRANSACTION_PREPARED
        value: '1'
      - name: REF_TRANSACTION_CLOSED
        value: '2'
      item_type: enum
      name: ref_transaction_state
      pos:
        line_end: 212
        line_start: 208
        source_file: /src/git/refs/refs-internal.h
    preproc_defs:
    - item_type: preproc_def
      name: REF_HAVE_NEW
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/git/refs/refs-internal.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: REF_HAVE_OLD
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/git/refs/refs-internal.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: REF_LOG_ONLY
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/git/refs/refs-internal.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: REF_HAVE_PEELED
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/git/refs/refs-internal.h
      type_or_value: (1 << 15)
    - item_type: preproc_def
      name: SYMREF_MAXDEPTH
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/git/refs/refs-internal.h
      type_or_value: '5'
    - item_type: preproc_def
      name: REF_STORE_READ
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/git/refs/refs-internal.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: REF_STORE_WRITE
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/git/refs/refs-internal.h
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: REF_STORE_ODB
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/git/refs/refs-internal.h
      type_or_value: '(1 << 2) '
    - item_type: preproc_def
      name: REF_STORE_MAIN
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/git/refs/refs-internal.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: REF_STORE_ALL_CAPS
      pos:
        line_end: 400
        line_start: 396
        source_file: /src/git/refs/refs-internal.h
      type_or_value: "(REF_STORE_READ | \\\n\t\t\t\t REF_STORE_WRITE | \\\n\t\t\t\t
        REF_STORE_ODB | \\\n\t\t\t\t REF_STORE_MAIN)"
    structs:
    - fields:
      - name: new_oid
        type: struct object_id
      - name: old_oid
        type: struct object_id
      - name: peeled
        type: struct object_id
      - name: '*new_target'
        type: char
      - name: '*old_target'
        type: char
      - name: flags
        type: unsigned int
      - name: '*backend_data'
        type: void
      - name: type
        type: unsigned int
      - name: '*msg'
        type: char
      - name: '*committer_info'
        type: char
      - name: index
        type: uint64_t
      - name: rejection_err
        type: enum ref_transaction_error
      - name: '*rejection_details'
        type: char
      - name: '*parent_update'
        type: struct ref_update
      - name: refname[FLEX_ARRAY]
        type: char
      item_type: struct
      name: ref_update
      pos:
        line_end: 158
        line_start: 87
        source_file: /src/git/refs/refs-internal.h
    - fields:
      - name: '*update_indices'
        type: size_t
      - name: alloc
        type: size_t
      - name: nr
        type: size_t
      item_type: struct
      name: ref_transaction_rejections
      pos:
        line_end: 224
        line_start: 220
        source_file: /src/git/refs/refs-internal.h
    - fields:
      - name: '*ref_store'
        type: struct ref_store
      - name: '**updates'
        type: struct ref_update
      - name: refnames
        type: struct string_list
      - name: alloc
        type: size_t
      - name: nr
        type: size_t
      - name: state
        type: enum ref_transaction_state
      - name: '*rejections'
        type: struct ref_transaction_rejections
      - name: '*backend_data'
        type: void
      - name: flags
        type: unsigned int
      - name: max_index
        type: uint64_t
      item_type: struct
      name: ref_transaction
      pos:
        line_end: 242
        line_start: 231
        source_file: /src/git/refs/refs-internal.h
    - fields:
      - name: '*vtable'
        type: struct ref_iterator_vtable
      - name: ref
        type: struct reference
      item_type: struct
      name: ref_iterator
      pos:
        line_end: 268
        line_start: 265
        source_file: /src/git/refs/refs-internal.h
    - fields:
      - name: '*advance'
        type: ref_iterator_advance_fn
      - name: '*seek'
        type: ref_iterator_seek_fn
      - name: '*release'
        type: ref_iterator_release_fn
      item_type: struct
      name: ref_iterator_vtable
      pos:
        line_end: 385
        line_start: 381
        source_file: /src/git/refs/refs-internal.h
    - fields:
      - name: access_flags
        type: unsigned int
      - name: log_all_ref_updates
        type: enum log_refs_config
      item_type: struct
      name: ref_store_init_options
      pos:
        line_end: 414
        line_start: 405
        source_file: /src/git/refs/refs-internal.h
    - fields:
      - name: '*name'
        type: char
      - name: '*init'
        type: ref_store_init_fn
      - name: '*release'
        type: ref_store_release_fn
      - name: '*create_on_disk'
        type: ref_store_create_on_disk_fn
      - name: '*remove_on_disk'
        type: ref_store_remove_on_disk_fn
      - name: '*transaction_prepare'
        type: ref_transaction_prepare_fn
      - name: '*transaction_finish'
        type: ref_transaction_finish_fn
      - name: '*transaction_abort'
        type: ref_transaction_abort_fn
      - name: '*optimize'
        type: optimize_fn
      - name: '*optimize_required'
        type: optimize_required_fn
      - name: '*rename_ref'
        type: rename_ref_fn
      - name: '*copy_ref'
        type: copy_ref_fn
      - name: '*iterator_begin'
        type: ref_iterator_begin_fn
      - name: '*read_raw_ref'
        type: read_raw_ref_fn
      - name: '*read_symbolic_ref'
        type: read_symbolic_ref_fn
      - name: '*reflog_iterator_begin'
        type: reflog_iterator_begin_fn
      - name: '*for_each_reflog_ent'
        type: for_each_reflog_ent_fn
      - name: '*for_each_reflog_ent_reverse'
        type: for_each_reflog_ent_reverse_fn
      - name: '*reflog_exists'
        type: reflog_exists_fn
      - name: '*create_reflog'
        type: create_reflog_fn
      - name: '*delete_reflog'
        type: delete_reflog_fn
      - name: '*reflog_expire'
        type: reflog_expire_fn
      - name: '*fsck'
        type: fsck_fn
      item_type: struct
      name: ref_storage_be
      pos:
        line_end: 606
        line_start: 572
        source_file: /src/git/refs/refs-internal.h
    - fields:
      - name: '*be'
        type: struct ref_storage_be
      - name: '*repo'
        type: struct repository
      - name: '*gitdir'
        type: char
      item_type: struct
      name: ref_store
      pos:
        line_end: 628
        line_start: 617
        source_file: /src/git/refs/refs-internal.h
    typedefs:
    - item_type: typedef
      name: "ref_iterator_select_fn(\n\t\tstruct ref_iterator *iter0, struct ref_iterator
        *iter1,\n\t\tvoid *cb_data)"
      pos:
        line_end: 295
        line_start: 293
        source_file: /src/git/refs/refs-internal.h
      type: iterator_selection
    - item_type: typedef
      name: ref_iterator_advance_fn(struct ref_iterator *ref_iterator)
      pos:
        line_end: 365
        line_start: 365
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "ref_iterator_seek_fn(struct ref_iterator *ref_iterator,\n\t\t\t\t const
        char *refname, unsigned int flags)"
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: ref_iterator_release_fn(struct ref_iterator *ref_iterator)
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/git/refs/refs-internal.h
      type: void
    - item_type: typedef
      name: "*ref_store_init_fn(struct repository *repo,\n\t\t\t\t\t    const char
        *payload,\n\t\t\t\t\t    const char *gitdir,\n\t\t\t\t\t    const struct ref_store_init_options
        *opts)"
      pos:
        line_end: 424
        line_start: 421
        source_file: /src/git/refs/refs-internal.h
      type: ref_store
    - item_type: typedef
      name: ref_store_release_fn(struct ref_store *refs)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/git/refs/refs-internal.h
      type: void
    - item_type: typedef
      name: "ref_store_create_on_disk_fn(struct ref_store *refs,\n\t\t\t\t\tint flags,\n\t\t\t\t\tstruct
        strbuf *err)"
      pos:
        line_end: 432
        line_start: 430
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "ref_store_remove_on_disk_fn(struct ref_store *refs,\n\t\t\t\t\tstruct
        strbuf *err)"
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "ref_transaction_prepare_fn(struct ref_store *refs,\n\t\t\t\t       struct
        ref_transaction *transaction,\n\t\t\t\t       struct strbuf *err)"
      pos:
        line_end: 442
        line_start: 440
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "ref_transaction_finish_fn(struct ref_store *refs,\n\t\t\t\t      struct
        ref_transaction *transaction,\n\t\t\t\t      struct strbuf *err)"
      pos:
        line_end: 446
        line_start: 444
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "ref_transaction_abort_fn(struct ref_store *refs,\n\t\t\t\t     struct
        ref_transaction *transaction,\n\t\t\t\t     struct strbuf *err)"
      pos:
        line_end: 450
        line_start: 448
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "optimize_fn(struct ref_store *ref_store,\n\t\t\tstruct refs_optimize_opts
        *opts)"
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "optimize_required_fn(struct ref_store *ref_store,\n\t\t\t\t struct refs_optimize_opts
        *opts,\n\t\t\t\t bool *required)"
      pos:
        line_end: 457
        line_start: 455
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "rename_ref_fn(struct ref_store *ref_store,\n\t\t\t  const char *oldref,
        const char *newref,\n\t\t\t  const char *logmsg)"
      pos:
        line_end: 461
        line_start: 459
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "copy_ref_fn(struct ref_store *ref_store,\n\t\t\t  const char *oldref,
        const char *newref,\n\t\t\t  const char *logmsg)"
      pos:
        line_end: 464
        line_start: 462
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "*ref_iterator_begin_fn(\n\t\tstruct ref_store *ref_store,\n\t\tconst
        char *prefix, const char **exclude_patterns,\n\t\tunsigned int flags)"
      pos:
        line_end: 476
        line_start: 473
        source_file: /src/git/refs/refs-internal.h
      type: ref_iterator
    - item_type: typedef
      name: "*reflog_iterator_begin_fn(\n\t\tstruct ref_store *ref_store)"
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/git/refs/refs-internal.h
      type: ref_iterator
    - item_type: typedef
      name: "for_each_reflog_ent_fn(struct ref_store *ref_store,\n\t\t\t\t   const
        char *refname,\n\t\t\t\t   each_reflog_ent_fn fn,\n\t\t\t\t   void *cb_data)"
      pos:
        line_end: 490
        line_start: 487
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "for_each_reflog_ent_reverse_fn(struct ref_store *ref_store,\n\t\t\t\t\t
        \  const char *refname,\n\t\t\t\t\t   each_reflog_ent_fn fn,\n\t\t\t\t\t   void
        *cb_data)"
      pos:
        line_end: 494
        line_start: 491
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: reflog_exists_fn(struct ref_store *ref_store, const char *refname)
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "create_reflog_fn(struct ref_store *ref_store, const char *refname,\n\t\t\t
        \    struct strbuf *err)"
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: delete_reflog_fn(struct ref_store *ref_store, const char *refname)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "reflog_expire_fn(struct ref_store *ref_store,\n\t\t\t     const char
        *refname,\n\t\t\t     unsigned int flags,\n\t\t\t     reflog_expiry_prepare_fn
        prepare_fn,\n\t\t\t     reflog_expiry_should_prune_fn should_prune_fn,\n\t\t\t
        \    reflog_expiry_cleanup_fn cleanup_fn,\n\t\t\t     void *policy_cb_data)"
      pos:
        line_end: 505
        line_start: 499
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "read_raw_ref_fn(struct ref_store *ref_store, const char *refname,\n\t\t\t
        \   struct object_id *oid, struct strbuf *referent,\n\t\t\t    unsigned int
        *type, int *failure_errno)"
      pos:
        line_end: 551
        line_start: 549
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "read_symbolic_ref_fn(struct ref_store *ref_store, const char *refname,\n\t\t\t\t
        struct strbuf *referent)"
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/git/refs/refs-internal.h
      type: int
    - item_type: typedef
      name: "fsck_fn(struct ref_store *ref_store,\n\t\t    struct fsck_options *o,\n\t\t
        \   struct worktree *wt)"
      pos:
        line_end: 570
        line_start: 568
        source_file: /src/git/refs/refs-internal.h
      type: int
    union: []
- function_names:
  - reftable_backend_on_reload
  - reftable_backend_init
  - reftable_backend_release
  - reftable_backend_read_ref
  - reftable_be_downcast
  - backend_for_worktree
  - backend_for
  - should_write_log
  - fill_reftable_log_record
  - reftable_be_config
  - reftable_be_init
  - reftable_be_release
  - reftable_be_create_on_disk
  - reftable_be_remove_on_disk
  - should_exclude_current_ref
  - reftable_ref_iterator_advance
  - reftable_ref_iterator_seek
  - reftable_ref_iterator_release
  - qsort_strcmp
  - filter_exclude_patterns
  - ref_iterator_for_stack
  - reftable_be_iterator_begin
  - reftable_be_read_raw_ref
  - reftable_be_read_symbolic_ref
  - free_transaction_data
  - prepare_transaction_update
  - queue_transaction_update
  - prepare_single_update
  - reftable_be_transaction_prepare
  - reftable_be_transaction_abort
  - transaction_update_cmp
  - write_transaction_table
  - reftable_be_transaction_finish
  - reftable_be_optimize
  - reftable_be_optimize_required
  - write_copy_table
  - reftable_be_rename_ref
  - reftable_be_copy_ref
  - reftable_reflog_iterator_advance
  - reftable_reflog_iterator_seek
  - reftable_reflog_iterator_release
  - reflog_iterator_for_stack
  - reftable_be_reflog_iterator_begin
  - yield_log_record
  - reftable_be_for_each_reflog_ent_reverse
  - reftable_be_for_each_reflog_ent
  - reftable_be_reflog_exists
  - write_reflog_existence_table
  - reftable_be_create_reflog
  - write_reflog_delete_table
  - reftable_be_delete_reflog
  - write_reflog_expiry_table
  - reftable_be_reflog_expire
  - reftable_fsck_verbose_handler
  - reftable_fsck_error_handler
  - reftable_be_fsck
  source_file: /src/git/refs/reftable-backend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REF_UPDATE_VIA_HEAD
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/git/refs/reftable-backend.c
      type_or_value: (1 << 8)
    structs:
    - fields:
      - name: '*stack'
        type: struct reftable_stack
      - name: it
        type: struct reftable_iterator
      item_type: struct
      name: reftable_backend
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: base
        type: struct ref_store
      - name: main_backend
        type: struct reftable_backend
      - name: worktree_backend
        type: struct reftable_backend
      - name: worktree_backends
        type: struct strmap
      - name: write_options
        type: struct reftable_write_options
      - name: store_flags
        type: unsigned int
      - name: log_all_ref_updates
        type: enum log_refs_config
      - name: err
        type: int
      item_type: struct
      name: reftable_ref_store
      pos:
        line_end: 147
        line_start: 124
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: base
        type: struct ref_iterator
      - name: '*refs'
        type: struct reftable_ref_store
      - name: iter
        type: struct reftable_iterator
      - name: ref
        type: struct reftable_ref_record
      - name: oid
        type: struct object_id
      - name: peeled_oid
        type: struct object_id
      - name: '*prefix'
        type: char
      - name: prefix_len
        type: size_t
      - name: '**exclude_patterns'
        type: char
      - name: exclude_patterns_index
        type: size_t
      - name: exclude_patterns_strlen
        type: size_t
      - name: flags
        type: unsigned int
      - name: err
        type: int
      item_type: struct
      name: reftable_ref_iterator
      pos:
        line_end: 535
        line_start: 520
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: '*update'
        type: struct ref_update
      - name: current_oid
        type: struct object_id
      item_type: struct
      name: reftable_transaction_update
      pos:
        line_end: 916
        line_start: 913
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: '*refs'
        type: struct reftable_ref_store
      - name: '*be'
        type: struct reftable_backend
      - name: '*addition'
        type: struct reftable_addition
      - name: '*updates'
        type: struct reftable_transaction_update
      - name: updates_nr
        type: size_t
      - name: updates_alloc
        type: size_t
      - name: updates_expected
        type: size_t
      - name: max_index
        type: uint64_t
      item_type: struct
      name: write_transaction_table_arg
      pos:
        line_end: 927
        line_start: 918
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: '*args'
        type: struct write_transaction_table_arg
      - name: args_nr
        type: size_t
      item_type: struct
      name: reftable_transaction_data
      pos:
        line_end: 932
        line_start: 929
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: '*refs'
        type: struct reftable_ref_store
      - name: '*stack'
        type: struct reftable_stack
      - name: '*err'
        type: struct strbuf
      - name: '*refname'
        type: char
      - name: '*target'
        type: char
      - name: '*logmsg'
        type: char
      item_type: struct
      name: write_create_symref_arg
      pos:
        line_end: 1718
        line_start: 1711
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: '*refs'
        type: struct reftable_ref_store
      - name: '*be'
        type: struct reftable_backend
      - name: '*oldname'
        type: char
      - name: '*newname'
        type: char
      - name: '*logmsg'
        type: char
      - name: delete_old
        type: int
      item_type: struct
      name: write_copy_arg
      pos:
        line_end: 1727
        line_start: 1720
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: base
        type: struct ref_iterator
      - name: '*refs'
        type: struct reftable_ref_store
      - name: iter
        type: struct reftable_iterator
      - name: log
        type: struct reftable_log_record
      - name: last_name
        type: struct strbuf
      - name: err
        type: int
      item_type: struct
      name: reftable_reflog_iterator
      pos:
        line_end: 2009
        line_start: 2002
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: '*refs'
        type: struct reftable_ref_store
      - name: '*refname'
        type: char
      - name: '*stack'
        type: struct reftable_stack
      item_type: struct
      name: write_reflog_existence_arg
      pos:
        line_end: 2303
        line_start: 2299
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: '*stack'
        type: struct reftable_stack
      - name: '*refname'
        type: char
      item_type: struct
      name: write_reflog_delete_arg
      pos:
        line_end: 2369
        line_start: 2366
        source_file: /src/git/refs/reftable-backend.c
    - fields:
      - name: '*refs'
        type: struct reftable_ref_store
      - name: '*stack'
        type: struct reftable_stack
      - name: '*records'
        type: struct reftable_log_record
      - name: update_oid
        type: struct object_id
      - name: '*refname'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: reflog_expiry_arg
      pos:
        line_end: 2445
        line_start: 2438
        source_file: /src/git/refs/reftable-backend.c
    typedefs: []
    union: []
- function_names:
  - acquire_snapshot
  - clear_snapshot_buffer
  - release_snapshot
  - snapshot_hexsz
  - packed_ref_store_init
  - packed_downcast
  - clear_snapshot
  - packed_ref_store_release
  - die_unterminated_line
  - die_invalid_line
  - cmp_packed_refname
  - cmp_packed_ref_records
  - cmp_record_to_refname
  - sort_snapshot
  - find_start_of_record
  - find_end_of_record
  - verify_buffer_safe
  - refname_contains_nul
  - allocate_snapshot_buffer
  - load_contents
  - find_reference_location_1
  - find_reference_location
  - find_reference_location_end
  - create_snapshot
  - validate_snapshot
  - get_snapshot
  - packed_read_raw_ref
  - next_record
  - packed_ref_iterator_advance
  - packed_ref_iterator_seek
  - packed_ref_iterator_release
  - jump_list_entry_cmp
  - has_glob_special
  - populate_excluded_jump_list
  - packed_ref_iterator_begin
  - write_packed_entry
  - packed_refs_lock
  - packed_refs_unlock
  - packed_refs_is_locked
  - packed_refs_size
  - packed_ref_store_create_on_disk
  - packed_ref_store_remove_on_disk
  - write_with_updates
  - is_packed_transaction_needed
  - packed_transaction_cleanup
  - packed_transaction_prepare
  - packed_transaction_abort
  - packed_transaction_finish
  - packed_optimize
  - packed_optimize_required
  - packed_reflog_iterator_begin
  - packed_fsck_ref_next_line
  - packed_fsck_ref_header
  - packed_fsck_ref_peeled_line
  - packed_fsck_ref_main_line
  - packed_fsck_ref_sorted
  - packed_fsck_ref_content
  - packed_fsck
  source_file: /src/git/refs/packed-backend.c
  types:
    enum:
    - enumerators:
      - name: MMAP_NONE
      - name: MMAP_TEMPORARY
      - name: MMAP_OK
      item_type: enum
      name: mmap_strategy
      pos:
        line_end: 41
        line_start: 22
        source_file: /src/git/refs/packed-backend.c
    preproc_defs:
    - item_type: preproc_def
      name: SMALL_FILE_SIZE
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/git/refs/packed-backend.c
      type_or_value: (32*1024)
    - item_type: preproc_def
      name: REF_KNOWS_PEELED
      pos:
        line_end: 848
        line_start: 847
        source_file: /src/git/refs/packed-backend.c
      type_or_value: '0x40'
    structs:
    - fields:
      - name: '*refs'
        type: struct packed_ref_store
      - name: mmapped
        type: int
      - name: '*buf'
        type: char
      - name: peeled
        type: enum { PEELED_NONE, PEELED_TAGS, PEELED_FULLY }
      - name: referrers
        type: unsigned int
      - name: validity
        type: struct stat_validity
      item_type: struct
      name: snapshot
      pos:
        line_end: 121
        line_start: 73
        source_file: /src/git/refs/packed-backend.c
    - fields:
      - name: base
        type: struct ref_store
      - name: store_flags
        type: unsigned int
      - name: '*path'
        type: char
      - name: '*snapshot'
        type: struct snapshot
      - name: lock
        type: struct lock_file
      - name: '*tempfile'
        type: struct tempfile
      item_type: struct
      name: packed_ref_store
      pos:
        line_end: 164
        line_start: 138
        source_file: /src/git/refs/packed-backend.c
    - fields:
      - name: '*start'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: snapshot_record
      pos:
        line_end: 305
        line_start: 302
        source_file: /src/git/refs/packed-backend.c
    - fields:
      - name: base
        type: struct ref_iterator
      - name: '*snapshot'
        type: struct snapshot
      - name: '*prefix'
        type: char
      - name: '*pos'
        type: char
      - name: '*eof'
        type: char
      - name: '*jump'
        type: "struct jump_list_entry {\n\t\tconst char *start;\n\t\tconst char *end;\n\t}"
      - name: jump_nr
        type: size_t
      - name: jump_cur
        type: size_t
      - name: oid
        type: struct object_id
      - name: refname_buf
        type: struct strbuf
      - name: '*repo'
        type: struct repository
      - name: flags
        type: unsigned int
      item_type: struct
      name: packed_ref_iterator
      pos:
        line_end: 878
        line_start: 852
        source_file: /src/git/refs/packed-backend.c
    - fields:
      - name: '*start'
        type: char
      - name: '*end'
        type: char
      item_type: struct
      name: jump_list_entry
      pos:
        line_end: 868
        line_start: 865
        source_file: /src/git/refs/packed-backend.c
    - fields:
      - name: own_lock
        type: int
      item_type: struct
      name: packed_transaction_backend_data
      pos:
        line_end: 1672
        line_start: 1669
        source_file: /src/git/refs/packed-backend.c
    typedefs: []
    union: []
- function_names:
  - clear_loose_ref_cache
  - files_ref_store_init
  - files_assert_main_repository
  - files_downcast
  - files_ref_store_release
  - files_reflog_path
  - files_ref_path
  - add_per_worktree_entries_to_dir
  - loose_fill_ref_dir_regular_file
  - loose_fill_ref_dir
  - for_each_root_ref
  - fill_root_ref
  - add_root_refs
  - get_loose_ref_cache
  - read_ref_internal
  - files_read_raw_ref
  - files_read_symbolic_ref
  - parse_loose_ref_contents
  - unlock_ref
  - transaction_has_case_conflicting_update
  - lock_raw_ref
  - files_ref_iterator_advance
  - files_ref_iterator_seek
  - files_ref_iterator_release
  - files_ref_iterator_begin
  - raceproof_create_file
  - remove_empty_directories
  - create_reflock
  - lock_ref_oid_basic
  - try_remove_empty_parents
  - prune_ref
  - prune_refs
  - should_pack_ref
  - should_pack_refs
  - files_optimize
  - files_optimize_required
  - rename_tmp_log_callback
  - rename_tmp_log
  - refs_rename_ref_available
  - files_copy_or_rename_ref
  - files_rename_ref
  - files_copy_ref
  - close_ref_gently
  - commit_ref
  - open_or_create_logfile
  - log_ref_setup
  - files_create_reflog
  - log_ref_write_fd
  - files_log_ref_write
  - write_ref_to_lockfile
  - commit_ref_update
  - create_ref_symlink
  - create_ref_symlink
  - create_symref_lock
  - files_reflog_exists
  - files_delete_reflog
  - show_one_reflog_ent
  - find_beginning_of_line
  - files_for_each_reflog_ent_reverse
  - files_for_each_reflog_ent
  - files_reflog_iterator_advance
  - files_reflog_iterator_seek
  - files_reflog_iterator_release
  - reflog_iterator_begin
  - files_reflog_iterator_begin
  - split_head_update
  - split_symref_update
  - check_old_oid
  - lock_ref_for_update
  - files_transaction_cleanup
  - files_transaction_prepare
  - parse_and_write_reflog
  - ref_present
  - files_transaction_finish_initial
  - files_transaction_finish
  - files_transaction_abort
  - expire_reflog_ent
  - files_reflog_expire
  - files_ref_store_create_on_disk
  - remove_one_root_ref
  - files_ref_store_remove_on_disk
  - files_fsck_symref_target
  - files_fsck_refs_content
  - files_fsck_refs_name
  - files_fsck_ref
  - files_fsck_refs_dir
  - files_fsck_root_ref
  - files_fsck
  source_file: /src/git/refs/files-backend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REF_IS_PRUNING
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/git/refs/files-backend.c
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: REF_DELETING
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/git/refs/files-backend.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: REF_NEEDS_COMMIT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/git/refs/files-backend.c
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: REF_UPDATE_VIA_HEAD
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/git/refs/files-backend.c
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: REF_DELETED_RMDIR
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/git/refs/files-backend.c
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: REF_LOG_VIA_SPLIT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/git/refs/files-backend.c
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: TMP_RENAMED_LOG
      pos:
        line_end: 1543
        line_start: 1542
        source_file: /src/git/refs/files-backend.c
      type_or_value: '"refs/.tmp-renamed-log"'
    structs:
    - fields:
      - name: '*ref_name'
        type: char
      - name: lk
        type: struct lock_file
      - name: old_oid
        type: struct object_id
      - name: count
        type: unsigned int
      item_type: struct
      name: ref_lock
      pos:
        line_end: 79
        line_start: 74
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: base
        type: struct ref_store
      - name: store_flags
        type: unsigned int
      - name: '*gitcommondir'
        type: char
      - name: log_all_ref_updates
        type: enum log_refs_config
      - name: prefer_symlink_refs
        type: int
      - name: '*loose'
        type: struct ref_cache
      - name: '*packed_ref_store'
        type: struct ref_store
      item_type: struct
      name: files_ref_store
      pos:
        line_end: 92
        line_start: 81
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: '*refs'
        type: struct files_ref_store
      - name: '*dir'
        type: struct ref_dir
      item_type: struct
      name: fill_root_ref_data
      pos:
        line_end: 407
        line_start: 404
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: base
        type: struct ref_iterator
      - name: '*iter0'
        type: struct ref_iterator
      - name: '*repo'
        type: struct repository
      - name: flags
        type: unsigned int
      item_type: struct
      name: files_ref_iterator
      pos:
        line_end: 956
        line_start: 950
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: '*lk'
        type: struct lock_file
      - name: '*repo'
        type: struct repository
      item_type: struct
      name: create_reflock_cb
      pos:
        line_end: 1196
        line_start: 1193
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: '*next'
        type: struct ref_to_prune
      - name: oid
        type: struct object_id
      - name: name[FLEX_ARRAY]
        type: char
      item_type: struct
      name: ref_to_prune
      pos:
        line_end: 1263
        line_start: 1259
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: '*tmp_renamed_log'
        type: char
      - name: true_errno
        type: int
      item_type: struct
      name: rename_cb
      pos:
        line_end: 1547
        line_start: 1544
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: base
        type: struct ref_iterator
      - name: '*ref_store'
        type: struct ref_store
      - name: '*dir_iterator'
        type: struct dir_iterator
      item_type: struct
      name: files_reflog_iterator
      pos:
        line_end: 2355
        line_start: 2351
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: '*packed_transaction'
        type: struct ref_transaction
      - name: packed_refs_locked
        type: int
      - name: ref_locks
        type: struct strmap
      item_type: struct
      name: files_transaction_backend_data
      pos:
        line_end: 2618
        line_start: 2614
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: '*should_prune_fn'
        type: reflog_expiry_should_prune_fn
      - name: '*policy_cb'
        type: void
      - name: '*newlog'
        type: FILE
      - name: last_kept_oid
        type: struct object_id
      - name: rewrite
        type: unsigned int
      item_type: struct
      name: expire_reflog_cb
      pos:
        line_end: 3440
        line_start: 3433
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: '*gitdir'
        type: char
      - name: '*err'
        type: struct strbuf
      item_type: struct
      name: remove_one_root_ref_data
      pos:
        line_end: 3649
        line_start: 3646
        source_file: /src/git/refs/files-backend.c
    - fields:
      - name: '*refs'
        type: struct files_ref_store
      - name: '*o'
        type: struct fsck_options
      - name: '*wt'
        type: struct worktree
      - name: refname
        type: struct strbuf
      - name: path
        type: struct strbuf
      item_type: struct
      name: files_fsck_root_ref_data
      pos:
        line_end: 3974
        line_start: 3968
        source_file: /src/git/refs/files-backend.c
    typedefs:
    - item_type: typedef
      name: create_file_fn(const char *path, void *cb)
      pos:
        line_end: 1102
        line_start: 1102
        source_file: /src/git/refs/files-backend.c
      type: int
    - item_type: typedef
      name: "(*files_fsck_refs_fn)(struct ref_store *ref_store,\n\t\t\t\t  struct
        fsck_options *o,\n\t\t\t\t  const char *refname,\n\t\t\t\t  const char *path,\n\t\t\t\t
        \ int mode)"
      pos:
        line_end: 3720
        line_start: 3716
        source_file: /src/git/refs/files-backend.c
      type: int
    union: []
- function_names: []
  source_file: /src/git/refs/packed-backend.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_cached_object
  - populate_object_info
  - odb_source_inmemory_read_object_info
  - odb_read_stream_inmemory_read
  - odb_read_stream_inmemory_close
  - odb_source_inmemory_read_object_stream
  - odb_source_inmemory_for_each_object_cb
  - odb_source_inmemory_for_each_object
  - find_abbrev_len_cb
  - odb_source_inmemory_find_abbrev_len
  - count_objects_cb
  - odb_source_inmemory_count_objects
  - odb_source_inmemory_write_object
  - odb_source_inmemory_write_object_stream
  - odb_source_inmemory_freshen_object
  - odb_source_inmemory_begin_transaction
  - odb_source_inmemory_read_alternates
  - odb_source_inmemory_write_alternate
  - odb_source_inmemory_close
  - odb_source_inmemory_reprepare
  - inmemory_object_free
  - odb_source_inmemory_free
  - odb_source_inmemory_new
  source_file: /src/git/odb/source-inmemory.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: enum object_type
      - name: '*buf'
        type: void
      - name: size
        type: unsigned long
      item_type: struct
      name: inmemory_object
      pos:
        line_end: 12
        line_start: 8
        source_file: /src/git/odb/source-inmemory.c
    - fields:
      - name: base
        type: struct odb_read_stream
      - name: '*buf'
        type: unsigned char
      - name: offset
        type: size_t
      item_type: struct
      name: odb_read_stream_inmemory
      pos:
        line_end: 77
        line_start: 73
        source_file: /src/git/odb/source-inmemory.c
    - fields:
      - name: '*inmemory'
        type: struct odb_source_inmemory
      - name: '*request'
        type: struct object_info
      - name: cb
        type: odb_for_each_object_cb
      - name: '*cb_data'
        type: void
      item_type: struct
      name: odb_source_inmemory_for_each_object_data
      pos:
        line_end: 128
        line_start: 123
        source_file: /src/git/odb/source-inmemory.c
    - fields:
      - name: '*oid'
        type: struct object_id
      - name: len
        type: unsigned
      item_type: struct
      name: find_abbrev_len_data
      pos:
        line_end: 174
        line_start: 171
        source_file: /src/git/odb/source-inmemory.c
    typedefs: []
    union: []
- function_names:
  - odb_source_close
  - odb_source_reprepare
  - odb_source_read_object_info
  - odb_source_read_object_stream
  - odb_source_for_each_object
  - odb_source_count_objects
  - odb_source_find_abbrev_len
  - odb_source_freshen_object
  - odb_source_write_object
  - odb_source_write_object_stream
  - odb_source_read_alternates
  - odb_source_write_alternate
  - odb_source_begin_transaction
  source_file: /src/git/odb/source.h
  types:
    enum:
    - enumerators:
      - name: ODB_SOURCE_UNKNOWN
      - name: ODB_SOURCE_FILES
      - name: ODB_SOURCE_INMEMORY
      item_type: enum
      name: odb_source_type
      pos:
        line_end: 18
        line_start: 6
        source_file: /src/git/odb/source.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct odb_source
      - name: '*odb'
        type: struct object_database
      - name: type
        type: enum odb_source_type
      - name: local
        type: bool
      - name: will_destroy
        type: int
      - name: '*path'
        type: char
      - name: (*free)(struct odb_source *source)
        type: void
      - name: (*close)(struct odb_source *source)
        type: void
      - name: (*reprepare)(struct odb_source *source)
        type: void
      - name: "(*read_object_info)(struct odb_source *source,\n\t\t\t\tconst struct
          object_id *oid,\n\t\t\t\tstruct object_info *oi,\n\t\t\t\tenum object_info_flags
          flags)"
        type: int
      - name: "(*read_object_stream)(struct odb_read_stream **out,\n\t\t\t\t  struct
          odb_source *source,\n\t\t\t\t  const struct object_id *oid)"
        type: int
      - name: "(*for_each_object)(struct odb_source *source,\n\t\t\t       const struct
          object_info *request,\n\t\t\t       odb_for_each_object_cb cb,\n\t\t\t       void
          *cb_data,\n\t\t\t       const struct odb_for_each_object_options *opts)"
        type: int
      - name: "(*count_objects)(struct odb_source *source,\n\t\t\t     enum odb_count_objects_flags
          flags,\n\t\t\t     unsigned long *out)"
        type: int
      - name: "(*find_abbrev_len)(struct odb_source *source,\n\t\t\t       const struct
          object_id *oid,\n\t\t\t       unsigned min_length,\n\t\t\t       unsigned
          *out)"
        type: int
      - name: "(*freshen_object)(struct odb_source *source,\n\t\t\t      const struct
          object_id *oid)"
        type: int
      - name: "(*write_object)(struct odb_source *source,\n\t\t\t    const void *buf,
          unsigned long len,\n\t\t\t    enum object_type type,\n\t\t\t    struct object_id
          *oid,\n\t\t\t    struct object_id *compat_oid,\n\t\t\t    enum odb_write_object_flags
          flags)"
        type: int
      - name: "(*write_object_stream)(struct odb_source *source,\n\t\t\t\t   struct
          odb_write_stream *stream, size_t len,\n\t\t\t\t   struct object_id *oid)"
        type: int
      - name: "(*begin_transaction)(struct odb_source *source,\n\t\t\t\t struct odb_transaction
          **out)"
        type: int
      - name: "(*read_alternates)(struct odb_source *source,\n\t\t\t       struct
          strvec *out)"
        type: int
      - name: "(*write_alternate)(struct odb_source *source,\n\t\t\t       const char
          *alternate)"
        type: int
      item_type: struct
      name: odb_source
      pos:
        line_end: 254
        line_start: 36
        source_file: /src/git/odb/source.h
    typedefs: []
    union: []
- function_names:
  - odb_transaction_begin
  - odb_transaction_commit
  - odb_transaction_write_object_stream
  source_file: /src/git/odb/transaction.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - close_istream_filtered
  - read_istream_filtered
  - attach_stream_filter
  - close_istream_incore
  - read_istream_incore
  - open_istream_incore
  - istream_source
  - odb_read_stream_close
  - odb_read_stream_read
  - odb_read_stream_open
  - odb_write_stream_read
  - odb_write_stream_release
  - odb_stream_blob_to_fd
  - read_object_fd
  - odb_write_stream_from_fd
  source_file: /src/git/odb/streaming.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FILTER_BUFFER
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/git/odb/streaming.c
      type_or_value: (1024*16)
    structs:
    - fields:
      - name: base
        type: struct odb_read_stream
      - name: '*upstream'
        type: struct odb_read_stream
      - name: '*filter'
        type: struct stream_filter
      - name: ibuf[FILTER_BUFFER]
        type: char
      - name: obuf[FILTER_BUFFER]
        type: char
      - name: i_end
        type: int
      - name: o_end
        type: int
      - name: input_finished
        type: int
      item_type: struct
      name: odb_filtered_read_stream
      pos:
        line_end: 30
        line_start: 21
        source_file: /src/git/odb/streaming.c
    - fields:
      - name: base
        type: struct odb_read_stream
      - name: '*buf'
        type: char
      - name: read_ptr
        type: unsigned long
      item_type: struct
      name: odb_incore_read_stream
      pos:
        line_end: 125
        line_start: 121
        source_file: /src/git/odb/streaming.c
    - fields:
      - name: fd
        type: int
      - name: remaining
        type: size_t
      item_type: struct
      name: read_object_fd_data
      pos:
        line_end: 314
        line_start: 311
        source_file: /src/git/odb/streaming.c
    typedefs: []
    union: []
- function_names:
  - odb_source_files_reparent
  - odb_source_files_free
  - odb_source_files_close
  - odb_source_files_reprepare
  - odb_source_files_read_object_info
  - odb_source_files_read_object_stream
  - odb_source_files_for_each_object
  - odb_source_files_count_objects
  - odb_source_files_find_abbrev_len
  - odb_source_files_freshen_object
  - odb_source_files_write_object
  - odb_source_files_write_object_stream
  - odb_source_files_begin_transaction
  - odb_source_files_read_alternates
  - odb_source_files_write_alternate
  - odb_source_files_new
  source_file: /src/git/odb/source-files.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - odb_source_files_downcast
  source_file: /src/git/odb/source-files.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base
        type: struct odb_source
      - name: '*loose'
        type: struct odb_source_loose
      - name: '*packed'
        type: struct packfile_store
      item_type: struct
      name: odb_source_files
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/git/odb/source-files.h
    typedefs: []
    union: []
- function_names:
  - odb_source_inmemory_downcast
  source_file: /src/git/odb/source-inmemory.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base
        type: struct odb_source
      - name: '*objects'
        type: struct oidtree
      item_type: struct
      name: odb_source_inmemory
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/git/odb/source-inmemory.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/odb/transaction.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*source'
        type: struct odb_source
      - name: (*commit)(struct odb_transaction *transaction)
        type: void
      - name: "(*write_object_stream)(struct odb_transaction *transaction,\n\t\t\t\t
          \  struct odb_write_stream *stream, size_t len,\n\t\t\t\t   struct object_id
          *oid)"
        type: int
      item_type: struct
      name: odb_transaction
      pos:
        line_end: 32
        line_start: 14
        source_file: /src/git/odb/transaction.h
    typedefs: []
    union: []
- function_names:
  - odb_source_new
  - odb_source_init
  - odb_source_free
  - odb_source_release
  source_file: /src/git/odb/source.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/git/odb/streaming.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STREAMING_H
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/git/odb/streaming.h
      type_or_value: '1'
    structs:
    - fields:
      - name: close
        type: odb_read_stream_close_fn
      - name: read
        type: odb_read_stream_read_fn
      - name: type
        type: enum object_type
      - name: size
        type: size_t
      item_type: struct
      name: odb_read_stream
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/git/odb/streaming.h
    - fields:
      - name: (*read)(struct odb_write_stream *, unsigned char *, size_t)
        type: ssize_t
      - name: '*data'
        type: void
      - name: is_finished
        type: int
      item_type: struct
      name: odb_write_stream
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/git/odb/streaming.h
    typedefs:
    - item_type: typedef
      name: (*odb_read_stream_close_fn)(struct odb_read_stream *)
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/git/odb/streaming.h
      type: int
    - item_type: typedef
      name: (*odb_read_stream_read_fn)(struct odb_read_stream *, char *, size_t)
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/git/odb/streaming.h
      type: ssize_t
    union: []
